<?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>184797</bug_id>
          
          <creation_ts>2018-04-19 15:21:12 -0700</creation_ts>
          <short_desc>Rename JSDOMWindowProxy to JSWindowProxy</short_desc>
          <delta_ts>2018-04-20 09:33:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>mkwst</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1416086</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-19 15:21:12 -0700</bug_when>
    <thetext>Rename JSDOMWindowProxy to JSWindowProxy for consistency with WindowProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416090</commentid>
    <comment_count>1</comment_count>
      <attachid>338369</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-19 15:22:48 -0700</bug_when>
    <thetext>Created attachment 338369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416092</commentid>
    <comment_count>2</comment_count>
      <attachid>338370</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-19 15:25:07 -0700</bug_when>
    <thetext>Created attachment 338370
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416149</commentid>
    <comment_count>3</comment_count>
      <attachid>338370</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-19 19:15:45 -0700</bug_when>
    <thetext>Comment on attachment 338370
Patch

Clearing flags on attachment: 338370

Committed r230831: &lt;https://trac.webkit.org/changeset/230831&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416150</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-04-19 19:15:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416151</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-19 19:16:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/39585235&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416270</commentid>
    <comment_count>6</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-04-20 08:41:33 -0700</bug_when>
    <thetext>This change broke the Windows build:
https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/8921</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416276</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-20 09:03:59 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #6)
&gt; This change broke the Windows build:
&gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; 8921

Thanks, will fix now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1416286</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-04-20 09:33:21 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; (In reply to Ryan Haddad from comment #6)
&gt; &gt; This change broke the Windows build:
&gt; &gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; &gt; 8921
&gt; 
&gt; Thanks, will fix now.

Fixed in https://trac.webkit.org/r230840.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338369</attachid>
            <date>2018-04-19 15:22:48 -0700</date>
            <delta_ts>2018-04-19 15:25:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184797-20180419152247.patch</filename>
            <type>text/plain</type>
            <size>65107</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjczODdjNWYyYzhjODhm
YWY2OWRhN2FmMjg2NzkzZDg0ZWI1MDQyMS4uZGEyMDAyYjc0NjQ1ZmI0NTliNzU4YWQ1MGExYTk4
NWU0ZTUwM2U2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE4LTA0LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEpTRE9NV2luZG93
UHJveHkgdG8gSlNXaW5kb3dQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg0Nzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lIEpTRE9NV2luZG93UHJveHkgdG8gSlNXaW5kb3dQcm94eSBm
b3IgY29uc2lzdGVuY3kgd2l0aCBXaW5kb3dQcm94eS4KKworICAgICAgICAqIFNvdXJjZXMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy9JRExUeXBlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0V2luZG93UHJv
eHkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnByb3h5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRv
SlNET01XaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NV2luZG93Ojp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RXZlbnRUYXJnZXRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudFRhcmdldDo6
dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNSZW1vdGVET01XaW5kb3dCYXNlOjpKU1JlbW90ZURP
TVdpbmRvd0Jhc2UpOgorICAgICAgICAoV2ViQ29yZTo6dG9KU1JlbW90ZURPTVdpbmRvdyk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmg6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
V2luZG93UHJveHk6OkpTV2luZG93UHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQ
cm94eTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQcm94eTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2luZG93UHJveHk6OmRlc3Ryb3kpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQcm94eTo6c2V0V2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTV2luZG93UHJveHk6OmF0dGFjaERlYnVnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
V2luZG93UHJveHk6OndyYXBwZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQ
cm94eTo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KU1dpbmRvd1Byb3h5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dpbmRvd1By
b3h5Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1Byb3h5LmguCisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKFdlYkNvcmU6OnRv
SlNXaW5kb3dQcm94eSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0Rm9yV2lu
ZG93UHJveHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
aW5kb3dQcm94eTo6Y3JlYXRlSlNXaW5kb3dQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpXaW5k
b3dQcm94eTo6anNXaW5kb3dQcm94aWVzQXNWZWN0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2luZG93UHJveHk6OmNyZWF0ZUpTV2luZG93UHJveHlXaXRoSW5pdGlhbGl6ZWRTY3JpcHQp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpXaW5kb3dQcm94eTo6anNXaW5kb3dQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dQ
cm94eTo6ZXhpc3RpbmdKU1dpbmRvd1Byb3h5IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEFkZFRvSW5jbHVkZXNGb3JJRExU
eXBlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlT3Zlcmxv
YWREaXNwYXRjaGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3ZlcmxvYWRE
aXNwYXRjaGVyKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKiBwYWdlL2Nz
cC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNl
Y3VyaXR5UG9saWN5OjpkaWRDcmVhdGVXaW5kb3dQcm94eSBjb25zdCk6CisgICAgICAgICogcGFn
ZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg6CisKIDIwMTgtMDQtMTcgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgSW50ZXJuYWxGdW5jdGlvbiBoaWVy
YXJjaHkgc2hvdWxkIGJlIGluIElzb1N1YnNwYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5k
ZXggNDJiMjdjMGFkZmMyY2RkMTZhYjlmNjU2MWNkZjE4ZmVlOGZlMThjOC4uOTVkOTg0NWMwYjU0
ZjM1OWJjNjRjNmMzMDdkNDg1MWMzY2EzZmNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTgtMDQtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZW5hbWUgSlNET01XaW5kb3dQcm94eSB0byBKU1dpbmRvd1Byb3h5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ3OTcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgSlNE
T01XaW5kb3dQcm94eSB0byBKU1dpbmRvd1Byb3h5IGZvciBjb25zaXN0ZW5jeSB3aXRoIFdpbmRv
d1Byb3h5LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC9I
ZWFwU25hcHNob3QuanM6CisgICAgICAgIChIZWFwU25hcHNob3QucHJvdG90eXBlLl9pc05vZGVH
bG9iYWxPYmplY3QpOgorCiAyMDE4LTA0LTE2ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZA
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbid0IHNlbGVjdCBhbmQgY29w
eSB0ZXh0IGZyb20gTmV0d29yayB0YWIgcG9wb3ZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CmluZGV4IGYwNzExNjlkYTc2MDc0YjgxM2Q5ZGY0YzE5MjdhNmVmNTc3ZTg5NTMuLjU0OTVjM2U3
OGRkZDg1ZGFkMWQ2M2IwMzU3ZDBmM2U3MmQyZjk0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNC0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBKU0RPTVdpbmRvd1Byb3h5IHRvIEpTV2luZG93
UHJveHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NDc5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bmFtZSBKU0RPTVdpbmRvd1Byb3h5IHRvIEpTV2luZG93UHJveHkgZm9yIGNvbnNpc3RlbmN5IHdp
dGggV2luZG93UHJveHkuCisKKyAgICAgICAgKiBET00vRE9NVXRpbGl0eS5tbToKKyAgICAgICAg
KGNyZWF0ZURPTVdyYXBwZXIpOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAg
ICAgICgtW1dlYkZyYW1lIF9zdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0cmluZzp3
aXRoR2xvYmFsT2JqZWN0OmluU2NyaXB0V29ybGQ6XSk6CisKIDIwMTgtMDQtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgV2luZG93UHJveHlDb250
cm9sbGVyIHRvIFdpbmRvd1Byb3h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNTgw
Y2JmNjVjYjE5ZGM2MzY5OTJkZWEyMTcxOGM5ZTZkOTViZTZiMi4uMmZiMDc1YjllMTY5NWRlNmM4
YzU2NmE5MzhlYmQ0NzM4NGZjM2ZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE4LTA0LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVuYW1lIEpTRE9NV2luZG93UHJveHkgdG8gSlNXaW5kb3dQcm94eQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0Nzk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIEpTRE9N
V2luZG93UHJveHkgdG8gSlNXaW5kb3dQcm94eSBmb3IgY29uc2lzdGVuY3kgd2l0aCBXaW5kb3dQ
cm94eS4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjpzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0SW5TY3JpcHRXb3JsZCk6CisKIDIwMTgtMDQtMTcgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
cm9sbG91dCBvZiByMjMwNjMyLiBSZWdyZXNzaW9uIGluIG1lbW9yeSB1c2FnZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggM2Y4Zjk5ODc3MDNhYWQ1YzUyYmNiMDQxNzk5YjIzZmQwMGU5ZTkxMy4uYTJiMzRl
MzQ2ZjQ3ZGVlMTI3ZTE5NTFhMTQyNTVmNWFmMzhhMzAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM5
MSw3ICszOTEsNiBAQCBiaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5jcHAKIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAogYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcAotYmluZGluZ3MvanMv
SlNET01XaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5jcHAKIGJpbmRp
bmdzL2pzL0pTRE9NV3JhcHBlckNhY2hlLmNwcAogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHAKQEAgLTQ1Miw2ICs0NTEsNyBAQCBiaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9y
Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cAorYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcAogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5j
cHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyTmF2aWdhdG9yQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY4NWUxNGFi
MWVjZjIzODkwMWM1NzE4NmNlODMwZGRlNzJkYzI4ZDQuLmY4ZDQ0MjE1YjlhM2FmMmFjZjA0N2Iw
ZDZlODQxZWYxOGM0NTJkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3NDMsNyArMzc0Myw3IEBACiAJCUJDQkI4QUJBMTNG
MUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkI4QUI2MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJ
bnRlcnZhbFRyZWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0JCOEFCQjEzRjFBRkIwMDA3MzRERjAgLyogUE9EUmVkQmxhY2tUcmVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JCOEFCNzEzRjFB
RkIwMDA3MzRERjAgLyogUE9EUmVkQmxhY2tUcmVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNCRDIxQUIwRTQxN0FENDAwQTA3MEYyIC8qIFVS
TEhhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QkQyMUFBMEU0MTdBRDQwMEEwNzBGMiAvKiBVUkxIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNCRkI1M0QwRENEMjlDRjAwMTlCM0U1IC8q
IEpTRE9NV2luZG93UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1Byb3h5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkNCRkI1
M0QwRENEMjlDRjAwMTlCM0U1IC8qIEpTV2luZG93UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBK
U1dpbmRvd1Byb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMEU4NzQx
QkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oICovOyB9OwogCQlCQ0M1QkUw
MTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M1QkRGRjBDMEU5MzExMDAxMUMyREIgLyog
SlNDU1NTdHlsZVNoZWV0LmggKi87IH07CiAJCUJDQ0JBRDQxMEMxOEMxNDIwMENFODkwRiAvKiBK
U0hUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0NCQUQzRjBDMThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjczOCw4
ICsxMjczOCw4IEBACiAJCUJDQkI4QUI2MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRy
ZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUE9ESW50ZXJ2YWxUcmVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkI4QUI3MTNGMUFGQjAwMDczNERGMCAv
KiBQT0RSZWRCbGFja1RyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUE9E
UmVkQmxhY2tUcmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkQyMUFBMEU0
MTdBRDQwMEEwNzBGMiAvKiBVUkxIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFVSTEhhc2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNCRkI1M0EwRENE
MjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNET01XaW5kb3dQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1Byb3h5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NV2luZG93UHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8q
IEpTV2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNXaW5kb3dQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQkZCNTNC
MERDRDI5Q0YwMDE5QjNFNSAvKiBKU1dpbmRvd1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTV2luZG93UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkNDMEU4NzMxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MUGljdHVyZUVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0MwRTg3NDFCRkU3MEU5MDA4RjdGNTAg
LyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEhUTUxQaWN0dXJlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1
QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1N0eWxlU2hlZXQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjM2ODUsOCArMjM2ODUsNiBAQAogCQkJCUJDNjkzMjcyMEQ3
RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCAqLywKIAkJCQk0NjBDQkYzMzFENEJD
Q0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLywKIAkJCQk0NjBDQkYz
NDFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggKi8sCi0JCQkJQkNC
RkI1M0EwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93UHJveHkuY3BwICovLAotCQkJCUJD
QkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1Byb3h5LmggKi8sCiAJCQkJNDE3
MEEyRTkxRDhDMENDMDAwMzE4NDUyIC8qIEpTRE9NV3JhcHBlci5jcHAgKi8sCiAJCQkJNjVFMEU5
NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oICovLAogCQkJCTdDNDVDOUNCMUUz
RThFNDkwMEFBQjU1OCAvKiBKU0RPTVdyYXBwZXJDYWNoZS5jcHAgKi8sCkBAIC0yMzcwMSw2ICsy
MzY5OSw4IEBACiAJCQkJNDZCQ0JCQzEyMDg1MDA4MDAwNzEwNjM4IC8qIEpTUmVtb3RlRE9NV2lu
ZG93QmFzZS5jcHAgKi8sCiAJCQkJNDZCQ0JCQzAyMDg1MDA3RjAwNzEwNjM4IC8qIEpTUmVtb3Rl
RE9NV2luZG93QmFzZS5oICovLAogCQkJCTkzMUFFM0I4MUZCODBFQUUwMEY1RUZCMiAvKiBKU1Zh
bHVlSW5XcmFwcGVkT2JqZWN0LmggKi8sCisJCQkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8q
IEpTV2luZG93UHJveHkuY3BwICovLAorCQkJCUJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBK
U1dpbmRvd1Byb3h5LmggKi8sCiAJCQkJRTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlLmNwcCAqLywKIAkJCQlFMUMzNkQzMzBFQjBBMDk0MDA3NDEwQkMg
LyogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCAqLywKIAkJCQk3MDlBMDFGRDFFM0QwQkNDMDA2
QjBENEMgLyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oICovLApAQCAtMjgzMTAsNyArMjgzMTAs
NiBAQAogCQkJCUJDNjkzMjc0MEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTY1MkZCQkJDMERFMjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRv
d0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8q
IEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNCRkI1M0QwRENE
MjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1
RTBFOTQ0MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDNDVDOUQzMUUzRkNCRDcwMEFBQjU1OCAvKiBKU0RPTVdyYXBwZXJDYWNoZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNBODA2MUUxRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2Uu
aCBpbiBIZWFkZXJzICovLApAQCAtMjg5MTEsNiArMjg5MTAsNyBAQAogCQkJCTMxQzBGRjQwMEU0
Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNURBNUUwRkQxMDJCOTUzODAwMDg4Q0Y5IC8qIEpTV2ViU29ja2V0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2NURGMzIwNjA5RDFDQzYwMDAwQkUzMjUgLyogSlNXaGVlbEV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlCQ0JGQjUzRDBEQ0QyOUNGMDAxOUIzRTUgLyogSlNXaW5kb3dQcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDQUE1QzYwRThCRDIzNjAwQTczRUNBIC8qIEpTV29y
a2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTgyNTY5MDBFRjJCMDJEMDA5MzMyNDIgLyogSlNX
b3JrZXJHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDMzZEMzUwRUIwQTA5NDAw
NzQxMEJDIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IDIzYTNlMzg4NDJmYzUxNGFhMTk5NzBjOGEyMDdi
YmM4NWJjYzE4MWYuLjVmZTc3ZTgzZjIzZGEyYjFiNDIwZDFlMzkyZGVhOWRjMDdmYjFjODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlEYXRhOwogY2xhc3MgSURCVmFs
dWU7Ci1jbGFzcyBKU0RPTVdpbmRvd1Byb3h5OworY2xhc3MgSlNXaW5kb3dQcm94eTsKIGNsYXNz
IERPTVByb21pc2U7CiBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CiAKQEAgLTI3NCw3ICsyNzQsNyBA
QCBzdHJ1Y3QgSURMU2NoZWR1bGVkQWN0aW9uIDogSURMVHlwZTxzdGQ6OnVuaXF1ZV9wdHI8U2No
ZWR1bGVkQWN0aW9uPj4geyB9OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSA6IElETFdyYXBwZXI8VD4geyB9OwogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IElETEV2ZW50TGlzdGVuZXIgOiBJRExXcmFwcGVyPFQ+IHsgfTsKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBJRExYUGF0aE5TUmVzb2x2ZXIgOiBJRExXcmFwcGVyPFQ+IHsg
fTsKLXN0cnVjdCBJRExXaW5kb3dQcm94eSA6IElETFdyYXBwZXI8SlNET01XaW5kb3dQcm94eT4g
eyB9Oworc3RydWN0IElETFdpbmRvd1Byb3h5IDogSURMV3JhcHBlcjxKU1dpbmRvd1Byb3h5PiB7
IH07CiAKIHN0cnVjdCBJRExJREJLZXkgOiBJRExXcmFwcGVyPElEQktleT4geyB9Owogc3RydWN0
IElETElEQktleURhdGEgOiBJRExXcmFwcGVyPElEQktleURhdGE+IHsgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDA4MzBi
Y2ZiNWE1ODU3YWU2M2Q1ZmNkNjc5M2E3MzNhYmE5ODQ2ZDMuLjgxNjZjNzYxYTBmOGY1ZGJjY2U1
NDMwNWI3MmIzNDg4Nzg3ZDljOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtNTIsNyArNTIsNiBAQAogI2luY2x1ZGUgIkpT
RE9NV2luZG93QmFzZS5jcHAiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uY3BwIgogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93UHJvcGVydGllcy5jcHAiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQ
cm94eS5jcHAiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmNwcCIKICNpbmNsdWRlICJKU0RPTVdy
YXBwZXJDYWNoZS5jcHAiCiAjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5j
cHAiCkBAIC05OCw2ICs5Nyw3IEBACiAjaW5jbHVkZSAiSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU1ZpZGVvVHJhY2tDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTVmlkZW9UcmFj
a0xpc3RDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTV2luZG93UHJveHkuY3BwIgogI2luY2x1ZGUg
IkpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckdsb2JhbFNj
b3BlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFdpbmRvd1Byb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRXaW5kb3dQcm94eS5o
CmluZGV4IDY2MTQ4Y2JjZTU2OTlmMDRkZmNhYWJiNDE1MjA2MDc1M2FjNGIyNzguLjgyYzFmZjQ4
MTkyZGU1YzIwODJkYjdiM2RlMGFjM2JhYTRiMzRjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFdpbmRvd1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0V2luZG93UHJveHkuaApAQCAtMjcsNyArMjcs
NyBAQAogCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRCYXNl
LmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQcm94eS5oIgorI2luY2x1ZGUgIkpTV2luZG93UHJv
eHkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA1ODljOTQwNzFmMmI2YmQ3OGU2ZTViNzI0
Mjk0MzgzMTY0ODVlODY0Li5kYTM1YzE2ODEzYjc5MjU5YzJlYmQ0MTkzYTRkZmU3MjRlNTg4ZDE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAK
QEAgLTc4LDcgKzc4LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5k
b3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgICZkZWZhdWx0TGFuZ3Vh
Z2UKIH07CiAKLUpTRE9NV2luZG93QmFzZTo6SlNET01XaW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxET01XaW5kb3c+JiYgd2luZG93LCBKU0RPTVdpbmRvd1By
b3h5KiBwcm94eSkKK0pTRE9NV2luZG93QmFzZTo6SlNET01XaW5kb3dCYXNlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxET01XaW5kb3c+JiYgd2luZG93LCBKU1dpbmRvd1By
b3h5KiBwcm94eSkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsIHByb3h5
LT53b3JsZCgpLCAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKICAgICAsIG1fd2luZG93Q2xv
c2VXYXRjaHBvaW50cygod2luZG93ICYmIHdpbmRvdy0+ZnJhbWUoKSkgPyBJc1dhdGNoZWQgOiBJ
c0ludmFsaWRhdGVkKQogICAgICwgbV93cmFwcGVkKFdURk1vdmUod2luZG93KSkKQEAgLTg2LDcg
Kzg2LDcgQEAgSlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUmVmUHRyPERPTVdpbmRvdz4KIHsKIH0KIAotdm9pZCBKU0RPTVdpbmRv
d0Jhc2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01XaW5kb3dQcm94eSogcHJveHkpCit2
b2lkIEpTRE9NV2luZG93QmFzZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1dpbmRvd1Byb3h5
KiBwcm94eSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgcHJveHkpOwogICAgIEFT
U0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CkBAIC0yNDMsNyArMjQzLDcgQEAgdm9pZCBKU0RP
TVdpbmRvd0Jhc2U6OndpbGxSZW1vdmVGcm9tV2luZG93UHJveHkoKQogICAgIHNldEN1cnJlbnRF
dmVudCgwKTsKIH0KIAotSlNET01XaW5kb3dQcm94eSogSlNET01XaW5kb3dCYXNlOjpwcm94eSgp
IGNvbnN0CitKU1dpbmRvd1Byb3h5KiBKU0RPTVdpbmRvd0Jhc2U6OnByb3h5KCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9wcm94eTsKIH0KQEAgLTI3MSw4ICsyNzEsOCBAQCBKU0RPTVdpbmRvdyog
dG9KU0RPTVdpbmRvdyhKU0M6OlZNJiB2bSwgSlNWYWx1ZSB2YWx1ZSkKICAgICAgICAgY29uc3Qg
Q2xhc3NJbmZvKiBjbGFzc0luZm8gPSBvYmplY3QtPmNsYXNzSW5mbyh2bSk7CiAgICAgICAgIGlm
IChjbGFzc0luZm8gPT0gSlNET01XaW5kb3c6OmluZm8oKSkKICAgICAgICAgICAgIHJldHVybiBq
c0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpOwotICAgICAgICBpZiAoY2xhc3NJbmZvID09IEpT
RE9NV2luZG93UHJveHk6OmluZm8oKSkKLSAgICAgICAgICAgIHJldHVybiBqc0R5bmFtaWNDYXN0
PEpTRE9NV2luZG93Kj4odm0sIGpzQ2FzdDxKU0RPTVdpbmRvd1Byb3h5Kj4ob2JqZWN0KS0+d2lu
ZG93KCkpOworICAgICAgICBpZiAoY2xhc3NJbmZvID09IEpTV2luZG93UHJveHk6OmluZm8oKSkK
KyAgICAgICAgICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93Kj4odm0sIGpzQ2Fz
dDxKU1dpbmRvd1Byb3h5Kj4ob2JqZWN0KS0+d2luZG93KCkpOwogICAgICAgICB2YWx1ZSA9IG9i
amVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDhj
ZGI5NGI0ZTgzYjJiOTBkNDU3MTVlNDg5ZmE1MmE4ZjQ0YmY2N2IuLmY1NzA5YTlmY2EwOTUxYTA0
YWQxN2Y2MGZhNTNlNWUzNjI0YmY2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5oCkBAIC00NCwxMyArNDQsMTMgQEAgY2xhc3MgRE9NV3JhcHBlcldv
cmxkOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBKU0RPTVdpbmRvdzsKIGNsYXNzIEpTRE9NV2luZG93
QmFzZVByaXZhdGU7Ci1jbGFzcyBKU0RPTVdpbmRvd1Byb3h5OworY2xhc3MgSlNXaW5kb3dQcm94
eTsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01XaW5kb3dCYXNlIDogcHVibGljIEpTRE9N
R2xvYmFsT2JqZWN0IHsKICAgICB0eXBlZGVmIEpTRE9NR2xvYmFsT2JqZWN0IEJhc2U7CiBwcm90
ZWN0ZWQ6Ci0gICAgSlNET01XaW5kb3dCYXNlKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJl
ZlB0cjxET01XaW5kb3c+JiYsIEpTRE9NV2luZG93UHJveHkqKTsKLSAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTVdpbmRvd1Byb3h5Kik7CisgICAgSlNET01XaW5kb3dCYXNl
KEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZlB0cjxET01XaW5kb3c+JiYsIEpTV2luZG93
UHJveHkqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU1dpbmRvd1Byb3h5
Kik7CiAKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCkBAIC02MCw3ICs2MCw3
IEBAIHB1YmxpYzoKICAgICBET01XaW5kb3cmIHdyYXBwZWQoKSBjb25zdCB7IHJldHVybiAqbV93
cmFwcGVkOyB9CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0OwogCi0gICAgLy8gQ2FsbGVkIGp1c3QgYmVmb3JlIHJlbW92aW5nIHRoaXMg
d2luZG93IGZyb20gdGhlIEpTRE9NV2luZG93UHJveHkuCisgICAgLy8gQ2FsbGVkIGp1c3QgYmVm
b3JlIHJlbW92aW5nIHRoaXMgd2luZG93IGZyb20gdGhlIEpTV2luZG93UHJveHkuCiAgICAgdm9p
ZCB3aWxsUmVtb3ZlRnJvbVdpbmRvd1Byb3h5KCk7CiAKICAgICBERUNMQVJFX0lORk87CkBAIC04
MCw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJpbnRFcnJvck1lc3NhZ2UoY29uc3Qg
U3RyaW5nJikgY29uc3Q7CiAKLSAgICBKU0RPTVdpbmRvd1Byb3h5KiBwcm94eSgpIGNvbnN0Owor
ICAgIEpTV2luZG93UHJveHkqIHByb3h5KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBmaXJl
RnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93Kik7CiAKQEAgLTk3LDEx
ICs5NywxMSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHByb21pc2VSZWplY3Rpb25UcmFj
a2VyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNQcm9taXNl
KiwgSlNDOjpKU1Byb21pc2VSZWplY3Rpb25PcGVyYXRpb24pOwogCiAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwotICAgIEpTRE9NV2luZG93UHJveHkqIG1fcHJveHk7CisgICAgSlNX
aW5kb3dQcm94eSogbV9wcm94eTsKIH07CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgRE9NV2luZG93Jik7Ci0vLyBUaGUgZm9sbG93aW5nIHJldHVy
biBhIEpTRE9NV2luZG93UHJveHkgb3IganNOdWxsKCkKKy8vIFRoZSBmb2xsb3dpbmcgcmV0dXJu
IGEgSlNXaW5kb3dQcm94eSBvciBqc051bGwoKQogLy8gSlNET01HbG9iYWxPYmplY3QqIGlzIGln
bm9yZWQsIGFjY2Vzc2luZyBhIHdpbmRvdyBpbiBhbnkgY29udGV4dCB3aWxsIHVzZSB0aGF0IERP
TVdpbmRvdydzIHByb3RvdHlwZSBjaGFpbi4KIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiwgRE9NV2luZG93JiB3aW5kb3cp
IHsgcmV0dXJuIHRvSlMoc3RhdGUsIHdpbmRvdyk7IH0KIGlubGluZSBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IERPTVdpbmRvdyogd2luZG93KSB7IHJldHVybiB3aW5kb3cgPyB0b0pTKHN0YXRlLCBnbG9iYWxP
YmplY3QsICp3aW5kb3cpIDogSlNDOjpqc051bGwoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IGEyZjY4NDc1NDMzZDNlY2Q4
MTNiYWM2ZWVlZWQ5MDU4OTFkZjUwOTguLjkwMjE0Y2U2N2VjYmJjZWE0MjI2YjBmYWU2NzcxYjA5
MDI3NmQyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJKU0RPTUNvbnZlcnROdWxs
YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKICNpbmNsdWRlICJKU0RP
TUNvbnZlcnRTdHJpbmdzLmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQcm94eS5oIgogI2luY2x1
ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJK
U0hUTUxBdWRpb0VsZW1lbnQuaCIKQEAgLTM4LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKU0hUTUxP
cHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNJREJGYWN0b3J5LmgiCiAjaW5jbHVkZSAiSlNS
ZW1vdGVET01XaW5kb3cuaCIKKyNpbmNsdWRlICJKU1dpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAi
SlNXb3JrZXIuaCIKICNpbmNsdWRlICJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCIKQEAgLTQ2Nyw4ICs0NjcsOCBAQCBET01XaW5kb3cqIEpTRE9NV2luZG93
Ojp0b1dyYXBwZWQoVk0mIHZtLCBKU1ZhbHVlIHZhbHVlKQogICAgIEpTT2JqZWN0KiBvYmplY3Qg
PSBhc09iamVjdCh2YWx1ZSk7CiAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNET01XaW5kb3c+
KHZtKSkKICAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpLT53cmFw
cGVkKCk7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pKSB7
Ci0gICAgICAgIGlmIChhdXRvKiBqc0RPTVdpbmRvdyA9IGpzRHluYW1pY0Nhc3Q8SlNET01XaW5k
b3cqPih2bSwganNDYXN0PEpTRE9NV2luZG93UHJveHkqPihvYmplY3QpLT53aW5kb3coKSkpCisg
ICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNXaW5kb3dQcm94eT4odm0pKSB7CisgICAgICAgIGlm
IChhdXRvKiBqc0RPTVdpbmRvdyA9IGpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3cqPih2bSwganND
YXN0PEpTV2luZG93UHJveHkqPihvYmplY3QpLT53aW5kb3coKSkpCiAgICAgICAgICAgICByZXR1
cm4gJmpzRE9NV2luZG93LT53cmFwcGVkKCk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg5ODI3MzQ0YzE5NGE4YjBiZDA5MTk0NDNkYTJl
NWVjMDZhZGVjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDE1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
LSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTRE9N
V2luZG93UHJveHkuaCIKLQotI2luY2x1ZGUgIkFic3RyYWN0RnJhbWUuaCIKLSNpbmNsdWRlICJD
b21tb25WTS5oIgotI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkpTRE9NV2lu
ZG93LmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSAiSlNF
dmVudFRhcmdldC5oIgotI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU09iamVjdC5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9u
Z0lubGluZXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jb25zdCBDbGFzc0luZm8gSlNE
T01XaW5kb3dQcm94eTo6c19pbmZvID0geyAiSlNET01XaW5kb3dQcm94eSIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNET01XaW5kb3dQcm94
eSkgfTsKLQotaW5saW5lIEpTRE9NV2luZG93UHJveHk6OkpTRE9NV2luZG93UHJveHkoVk0mIHZt
LCBTdHJ1Y3R1cmUmIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKLSAgICA6IEJh
c2Uodm0sICZzdHJ1Y3R1cmUpCi0gICAgLCBtX3dvcmxkKHdvcmxkKQotewotfQotCi12b2lkIEpT
RE9NV2luZG93UHJveHk6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQWJzdHJhY3RET01XaW5kb3cm
IHdpbmRvdykKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgQVNTRVJUKGlu
aGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAgICBzZXRXaW5kb3cod2luZG93KTsKLX0KLQotSlNET01X
aW5kb3dQcm94eSYgSlNET01XaW5kb3dQcm94eTo6Y3JlYXRlKEpTQzo6Vk0mIHZtLCBBYnN0cmFj
dERPTVdpbmRvdyYgd2luZG93LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQotewotICAgIGF1dG8m
IHN0cnVjdHVyZSA9ICpKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCAwLCBqc051bGwoKSwgSlND
OjpUeXBlSW5mbyhKU0M6OlB1cmVGb3J3YXJkaW5nUHJveHlUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7Ci0gICAgYXV0byYgcHJveHkgPSAqbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRl
Q2VsbDxKU0RPTVdpbmRvd1Byb3h5Pih2bS5oZWFwKSkgSlNET01XaW5kb3dQcm94eSh2bSwgc3Ry
dWN0dXJlLCB3b3JsZCk7Ci0gICAgcHJveHkuZmluaXNoQ3JlYXRpb24odm0sIHdpbmRvdyk7Ci0g
ICAgcmV0dXJuIHByb3h5OwotfQotCi12b2lkIEpTRE9NV2luZG93UHJveHk6OmRlc3Ryb3koSlND
ZWxsKiBjZWxsKQotewotICAgIHN0YXRpY19jYXN0PEpTRE9NV2luZG93UHJveHkqPihjZWxsKS0+
SlNET01XaW5kb3dQcm94eTo6fkpTRE9NV2luZG93UHJveHkoKTsKLX0KLQotdm9pZCBKU0RPTVdp
bmRvd1Byb3h5OjpzZXRXaW5kb3coVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgd2luZG93KQot
ewotICAgIEFTU0VSVCh3aW5kb3cuY2xhc3NJbmZvKCkgPT0gSlNET01XaW5kb3c6OmluZm8oKSB8
fCB3aW5kb3cuY2xhc3NJbmZvKCkgPT0gSlNSZW1vdGVET01XaW5kb3c6OmluZm8oKSk7Ci0gICAg
c2V0VGFyZ2V0KHZtLCAmd2luZG93KTsKLSAgICBzdHJ1Y3R1cmUoKS0+c2V0R2xvYmFsT2JqZWN0
KHZtLCAmd2luZG93KTsKLSAgICBHQ0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmdhcmJhZ2VDb2xs
ZWN0U29vbigpOwotfQotCi12b2lkIEpTRE9NV2luZG93UHJveHk6OnNldFdpbmRvdyhBYnN0cmFj
dERPTVdpbmRvdyYgZG9tV2luZG93KQotewotICAgIC8vIFJlcGxhY2luZyBKU0RPTVdpbmRvdyB2
aWEgdGVsbGluZyBKU0RPTVdpbmRvd1Byb3h5IHRvIHVzZSB0aGUgc2FtZSBET01XaW5kb3cgaXQg
YWxyZWFkeSB1c2VzIG1ha2VzIG5vIHNlbnNlLAotICAgIC8vIHNvIHdlJ2QgYmV0dGVyIG5ldmVy
IHRyeSB0by4KLSAgICBBU1NFUlQoIXdpbmRvdygpIHx8ICZkb21XaW5kb3cgIT0gJndyYXBwZWQo
KSk7Ci0KLSAgICBib29sIGlzUmVtb3RlRE9NV2luZG93ID0gaXM8UmVtb3RlRE9NV2luZG93Pihk
b21XaW5kb3cpOwotCi0gICAgVk0mIHZtID0gY29tbW9uVk0oKTsKLSAgICBhdXRvJiBwcm90b3R5
cGVTdHJ1Y3R1cmUgPSBpc1JlbW90ZURPTVdpbmRvdyA/ICpKU1JlbW90ZURPTVdpbmRvd1Byb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRyLCBqc051bGwoKSkgOiAqSlNET01XaW5k
b3dQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgbnVsbHB0ciwganNOdWxsKCkpOwotCi0g
ICAgLy8gRXhwbGljaXRseSBwcm90ZWN0IHRoZSBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVj
dGVkIHdoZW4gd2UgYWxsb2NhdGUgdGhlIGdsb2JhbCBvYmplY3QuCi0gICAgLy8gKE9uY2UgdGhl
IGdsb2JhbCBvYmplY3QgaXMgZnVsbHkgY29uc3RydWN0ZWQsIGl0IHdpbGwgbWFyayBpdHMgb3du
IHByb3RvdHlwZS4pCi0gICAgLy8gRklYTUU6IFdoeSBkbyB3ZSBuZWVkIHRvIHByb3RlY3QgdGhp
cyB3aGVuIHRoZXJlJ3MgYSBwb2ludGVyIHRvIGl0IG9uIHRoZSBzdGFjaz8KLSAgICAvLyBQZXJo
YXBzIHRoZSBpc3N1ZSBpcyB0aGF0IHN0cnVjdHVyZSBvYmplY3RzIGFyZW4ndCBzZWVuIHdoZW4g
c2Nhbm5pbmcgdGhlIHN0YWNrPwotICAgIFN0cm9uZzxKU05vbkZpbmFsT2JqZWN0PiBwcm90b3R5
cGUodm0sIGlzUmVtb3RlRE9NV2luZG93ID8gc3RhdGljX2Nhc3Q8SlNOb25GaW5hbE9iamVjdCo+
KEpTUmVtb3RlRE9NV2luZG93UHJvdG90eXBlOjpjcmVhdGUodm0sIG51bGxwdHIsICZwcm90b3R5
cGVTdHJ1Y3R1cmUpKSA6IHN0YXRpY19jYXN0PEpTTm9uRmluYWxPYmplY3QqPihKU0RPTVdpbmRv
d1Byb3RvdHlwZTo6Y3JlYXRlKHZtLCBudWxscHRyLCAmcHJvdG90eXBlU3RydWN0dXJlKSkpOwot
Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIHdpbmRvdyA9IG51bGxwdHI7Ci0gICAgaWYgKGlzUmVt
b3RlRE9NV2luZG93KSB7Ci0gICAgICAgIGF1dG8mIHdpbmRvd1N0cnVjdHVyZSA9ICpKU1JlbW90
ZURPTVdpbmRvdzo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRyLCBwcm90b3R5cGUuZ2V0KCkp
OwotICAgICAgICB3aW5kb3cgPSBKU1JlbW90ZURPTVdpbmRvdzo6Y3JlYXRlKHZtLCAmd2luZG93
U3RydWN0dXJlLCBkb3duY2FzdDxSZW1vdGVET01XaW5kb3c+KGRvbVdpbmRvdyksIHRoaXMpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8mIHdpbmRvd1N0cnVjdHVyZSA9ICpKU0RPTVdpbmRv
dzo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRyLCBwcm90b3R5cGUuZ2V0KCkpOwotICAgICAg
ICB3aW5kb3cgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlKHZtLCAmd2luZG93U3RydWN0dXJlLCBkb3du
Y2FzdDxET01XaW5kb3c+KGRvbVdpbmRvdyksIHRoaXMpOwotICAgIH0KLQotICAgIHByb3RvdHlw
ZS0+c3RydWN0dXJlKCktPnNldEdsb2JhbE9iamVjdCh2bSwgd2luZG93KTsKLQotICAgIGF1dG8m
IHByb3BlcnRpZXNTdHJ1Y3R1cmUgPSAqSlNET01XaW5kb3dQcm9wZXJ0aWVzOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIHdpbmRvdywgSlNFdmVudFRhcmdldDo6cHJvdG90eXBlKHZtLCAqd2luZG93KSk7
Ci0gICAgYXV0byYgcHJvcGVydGllcyA9ICpKU0RPTVdpbmRvd1Byb3BlcnRpZXM6OmNyZWF0ZSgm
cHJvcGVydGllc1N0cnVjdHVyZSwgKndpbmRvdyk7Ci0gICAgcHJvdG90eXBlLT5zdHJ1Y3R1cmUo
KS0+c2V0UHJvdG90eXBlV2l0aG91dFRyYW5zaXRpb24odm0sICZwcm9wZXJ0aWVzKTsKLQotICAg
IHNldFdpbmRvdyh2bSwgKndpbmRvdyk7Ci0KLSAgICBBU1NFUlQod2luZG93LT5nbG9iYWxPYmpl
Y3QoKSA9PSB3aW5kb3cpOwotICAgIEFTU0VSVChwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpID09
IHdpbmRvdyk7Ci19Ci0KLXZvaWQgSlNET01XaW5kb3dQcm94eTo6YXR0YWNoRGVidWdnZXIoSlND
OjpEZWJ1Z2dlciogZGVidWdnZXIpCi17Ci0gICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gd2luZG93
KCk7Ci0gICAgSlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsT2JqZWN0LT52bSgpKTsKLQotICAgIGlm
IChkZWJ1Z2dlcikKLSAgICAgICAgZGVidWdnZXItPmF0dGFjaChnbG9iYWxPYmplY3QpOwotICAg
IGVsc2UgaWYgKGF1dG8qIGN1cnJlbnREZWJ1Z2dlciA9IGdsb2JhbE9iamVjdC0+ZGVidWdnZXIo
KSkKLSAgICAgICAgY3VycmVudERlYnVnZ2VyLT5kZXRhY2goZ2xvYmFsT2JqZWN0LCBKU0M6OkRl
YnVnZ2VyOjpUZXJtaW5hdGluZ0RlYnVnZ2luZ1Nlc3Npb24pOwotfQotCi1BYnN0cmFjdERPTVdp
bmRvdyYgSlNET01XaW5kb3dQcm94eTo6d3JhcHBlZCgpIGNvbnN0Ci17Ci0gICAgYXV0byogd2lu
ZG93ID0gdGhpcy0+d2luZG93KCk7Ci0gICAgaWYgKGF1dG8qIGpzV2luZG93ID0ganNEeW5hbWlj
Q2FzdDxKU1JlbW90ZURPTVdpbmRvd0Jhc2UqPih3aW5kb3ctPnZtKCksIHdpbmRvdykpCi0gICAg
ICAgIHJldHVybiBqc1dpbmRvdy0+d3JhcHBlZCgpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNET01X
aW5kb3dCYXNlKj4od2luZG93KS0+d3JhcHBlZCgpOwotfQotCi1BYnN0cmFjdERPTVdpbmRvdyog
SlNET01XaW5kb3dQcm94eTo6dG9XcmFwcGVkKFZNJiB2bSwgSlNPYmplY3QqIHZhbHVlKQotewot
ICAgIGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93UHJveHkqPih2bSwg
dmFsdWUpOwotICAgIHJldHVybiB3cmFwcGVyID8gJndyYXBwZXItPndyYXBwZWQoKSA6IG51bGxw
dHI7Ci19Ci0KLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBXaW5kb3dQcm94eSYgd2lu
ZG93UHJveHkpCi17Ci0gICAgcmV0dXJuICZ3aW5kb3dQcm94eS5qc1dpbmRvd1Byb3h5KGN1cnJl
bnRXb3JsZCgqc3RhdGUpKTsKLX0KLQotSlNET01XaW5kb3dQcm94eSYgdG9KU0RPTVdpbmRvd1By
b3h5KFdpbmRvd1Byb3h5JiB3aW5kb3dQcm94eSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKLXsK
LSAgICByZXR1cm4gd2luZG93UHJveHkuanNXaW5kb3dQcm94eSh3b3JsZCk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93UHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI5YzkyZWU2MTI1YzEy
MTZiODg4NjMxMjM2YjZhOWU5YmU3ZWM3Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1By
b3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA4LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRl
ICJKU0RPTVdpbmRvdy5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJveHkuaD4KLQot
bmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBEZWJ1Z2dlcjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBBYnN0cmFjdERPTVdpbmRvdzsKLWNsYXNzIEFic3RyYWN0RnJhbWU7Ci1jbGFz
cyBXaW5kb3dQcm94eTsKLQotY2xhc3MgSlNET01XaW5kb3dQcm94eSBmaW5hbCA6IHB1YmxpYyBK
U0M6OkpTUHJveHkgewotICAgIHVzaW5nIEJhc2UgPSBKU0M6OkpTUHJveHk7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIEpTRE9NV2luZG93UHJveHkmIGNyZWF0ZShKU0M6OlZNJiwgQWJzdHJhY3RET01X
aW5kb3cmLCBET01XcmFwcGVyV29ybGQmKTsKLSAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2Vs
bCopOwotCi0gICAgREVDTEFSRV9JTkZPOwotCi0gICAgSlNET01HbG9iYWxPYmplY3QqIHdpbmRv
dygpIGNvbnN0IHsgcmV0dXJuIEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4odGFyZ2V0
KCkpOyB9Ci0gICAgdm9pZCBzZXRXaW5kb3coSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7
Ci0gICAgdm9pZCBzZXRXaW5kb3coQWJzdHJhY3RET01XaW5kb3cmKTsKLQotICAgIEFic3RyYWN0
RE9NV2luZG93JiB3cmFwcGVkKCkgY29uc3Q7Ci0gICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIEFi
c3RyYWN0RE9NV2luZG93KiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6SlNPYmplY3QqKTsKLQot
ICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQoKSB7IHJldHVybiBtX3dvcmxkOyB9Ci0KLSAgICB2
b2lkIGF0dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsKLQotcHJpdmF0ZToKLSAgICBKU0RP
TVdpbmRvd1Byb3h5KEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSYsIERPTVdyYXBwZXJXb3JsZCYp
OwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEFic3RyYWN0RE9NV2luZG93Jik7
Ci0KLSAgICBSZWY8RE9NV3JhcHBlcldvcmxkPiBtX3dvcmxkOwotfTsKLQotLy8gSlNET01XaW5k
b3dQcm94eSBpcyBhIGxpdHRsZSBvZGQgaW4gdGhhdCBpdCdzIG5vdCBhIHRyYWRpdGlvbmFsIHdy
YXBwZXIgYW5kIGhhcyBubyBiYWNrIHBvaW50ZXIuCi0vLyBJdCBpcywgaG93ZXZlciwgc3Ryb25n
bHkgb3duZWQgYnkgQWJzdHJhY3RGcmFtZSB2aWEgaXRzIFdpbmRvd1Byb3h5LCBzbyB3ZSBjYW4g
Z2V0IG9uZSBmcm9tIGEgV2luZG93UHJveHkuCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIFdpbmRvd1Byb3h5Jik7Ci1pbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCBXaW5kb3dQcm94eSogd2luZG93UHJveHkpIHsgcmV0dXJuIHdpbmRvd1By
b3h5ID8gdG9KUyhzdGF0ZSwgKndpbmRvd1Byb3h5KSA6IEpTQzo6anNOdWxsKCk7IH0KLQotSlNE
T01XaW5kb3dQcm94eSYgdG9KU0RPTVdpbmRvd1Byb3h5KFdpbmRvd1Byb3h5JiwgRE9NV3JhcHBl
cldvcmxkJik7Ci1pbmxpbmUgSlNET01XaW5kb3dQcm94eSogdG9KU0RPTVdpbmRvd1Byb3h5KFdp
bmRvd1Byb3h5KiB3aW5kb3dQcm94eSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkgeyByZXR1cm4g
d2luZG93UHJveHkgPyAmdG9KU0RPTVdpbmRvd1Byb3h5KCp3aW5kb3dQcm94eSwgd29ybGQpIDog
bnVsbHB0cjsgfQotCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKaW5kZXggODliZGYxY2Jl
MWQ4ZjRmNTA2NDk1YmU5NjRiMGMxOWE5OGM2N2M1OS4uZjVmNzM3ZWY2NzIyODc0NTY1MzdhNjZh
ODYzNGQyNDI4YWU1OTJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudFRhcmdldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudFRhcmdldEN1c3RvbS5jcHAKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJFdmVu
dFRhcmdldEhlYWRlcnMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldEludGVyZmFjZXMuaCIKICNp
bmNsdWRlICJKU0RPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkpTRE9NV2luZG93UHJveHkuaCIKICNp
bmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJKU1dpbmRvd1Byb3h5LmgiCiAj
aW5jbHVkZSAiSlNXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIk9mZnNjcmVlbkNhbnZh
cy5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC02Miw3ICs2Miw3IEBAIEpT
VmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEV2ZW50VGFyZ2V0JiB0YXJnCiAKIEV2ZW50VGFyZ2V0KiBKU0V2ZW50VGFyZ2V0Ojp0b1dy
YXBwZWQoVk0mIHZtLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIFRSWV9UT19VTldSQVBfV0lUSF9J
TlRFUkZBQ0UoRE9NV2luZG93UHJveHkpCisgICAgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFD
RShXaW5kb3dQcm94eSkKICAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKERPTVdpbmRv
dykKICAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKFdvcmtlckdsb2JhbFNjb3BlKQog
ICAgIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UoRXZlbnRUYXJnZXQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcAppbmRl
eCA4ZWUxNGYwYzk0MjI4NTA0NzMxMTcyODkwNmJiZTA1MDkzZmI0YzRmLi40N2UzNDAxOTBmN2Iw
NDQ3MmRkY2NhNTdmMjY4ZTk2YTk5NDJmOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93QmFzZS5jcHAKQEAgLTI2LDggKzI2LDggQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaCIK
IAotI2luY2x1ZGUgIkpTRE9NV2luZG93UHJveHkuaCIKICNpbmNsdWRlICJKU1JlbW90ZURPTVdp
bmRvdy5oIgorI2luY2x1ZGUgIkpTV2luZG93UHJveHkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIApAQCAtNTAsNyArNTAsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1Jl
bW90ZURPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPQogICAgIG51bGxw
dHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogfTsKIAotSlNSZW1vdGVET01XaW5kb3dCYXNlOjpKU1Jl
bW90ZURPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPFJl
bW90ZURPTVdpbmRvdz4mJiB3aW5kb3csIEpTRE9NV2luZG93UHJveHkqIHByb3h5KQorSlNSZW1v
dGVET01XaW5kb3dCYXNlOjpKU1JlbW90ZURPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUmVmUHRyPFJlbW90ZURPTVdpbmRvdz4mJiB3aW5kb3csIEpTV2luZG93UHJv
eHkqIHByb3h5KQogICAgIDogSlNET01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgcHJveHkt
PndvcmxkKCksICZzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQogICAgICwgbV93cmFwcGVkKFdU
Rk1vdmUod2luZG93KSkKIHsKQEAgLTc2LDggKzc2LDggQEAgSlNSZW1vdGVET01XaW5kb3cqIHRv
SlNSZW1vdGVET01XaW5kb3coSlNDOjpWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIGNv
bnN0IENsYXNzSW5mbyogY2xhc3NJbmZvID0gb2JqZWN0LT5jbGFzc0luZm8odm0pOwogICAgICAg
ICBpZiAoY2xhc3NJbmZvID09IEpTUmVtb3RlRE9NV2luZG93OjppbmZvKCkpCiAgICAgICAgICAg
ICByZXR1cm4ganNDYXN0PEpTUmVtb3RlRE9NV2luZG93Kj4ob2JqZWN0KTsKLSAgICAgICAgaWYg
KGNsYXNzSW5mbyA9PSBKU0RPTVdpbmRvd1Byb3h5OjppbmZvKCkpCi0gICAgICAgICAgICByZXR1
cm4ganNEeW5hbWljQ2FzdDxKU1JlbW90ZURPTVdpbmRvdyo+KHZtLCBqc0Nhc3Q8SlNET01XaW5k
b3dQcm94eSo+KG9iamVjdCktPndpbmRvdygpKTsKKyAgICAgICAgaWYgKGNsYXNzSW5mbyA9PSBK
U1dpbmRvd1Byb3h5OjppbmZvKCkpCisgICAgICAgICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxK
U1JlbW90ZURPTVdpbmRvdyo+KHZtLCBqc0Nhc3Q8SlNXaW5kb3dQcm94eSo+KG9iamVjdCktPndp
bmRvdygpKTsKICAgICAgICAgdmFsdWUgPSBvYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSk7
CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuaAppbmRleCA4YjE4MjVmZGFiN2IzMjQzMTA1
ZGQyZGM4NjQyZDlhYTIxYzY5NDI1Li42NGRmY2QzOTU5NjA2ZGMyNjE5MGI0YTZmMjE3ZmVmZTk4
YWQzZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURP
TVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURP
TVdpbmRvd0Jhc2UuaApAQCAtMzEsMTIgKzMxLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgSlNET01XaW5kb3dQcm94eTsKK2NsYXNzIEpTV2luZG93UHJveHk7CiBjbGFzcyBK
U1JlbW90ZURPTVdpbmRvdzsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNSZW1vdGVET01XaW5k
b3dCYXNlIDogcHVibGljIEpTRE9NR2xvYmFsT2JqZWN0IHsKIHByb3RlY3RlZDoKLSAgICBKU1Jl
bW90ZURPTVdpbmRvd0Jhc2UoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmUHRyPFJlbW90
ZURPTVdpbmRvdz4mJiwgSlNET01XaW5kb3dQcm94eSopOworICAgIEpTUmVtb3RlRE9NV2luZG93
QmFzZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWZQdHI8UmVtb3RlRE9NV2luZG93PiYm
LCBKU1dpbmRvd1Byb3h5Kik7CiAKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjljZjViNTkwNTBhM2M1MTkwN2RlNDQwNzNhOTYyY2JjNGM4ZGI3MjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmNwcApAQCAt
MCwwICsxLDE1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1dpbmRvd1Byb3h5Lmgi
CisKKyNpbmNsdWRlICJBYnN0cmFjdEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tbW9uVk0uaCIKKyNp
bmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgorI2luY2x1
ZGUgIkpTRE9NV2luZG93UHJvcGVydGllcy5oIgorI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIK
KyNpbmNsdWRlICJKU1JlbW90ZURPTVdpbmRvdy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWJ1Z2dlci5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25n
SW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IENsYXNzSW5mbyBKU1dp
bmRvd1Byb3h5OjpzX2luZm8gPSB7ICJKU1dpbmRvd1Byb3h5IiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dpbmRvd1Byb3h5KSB9OworCitp
bmxpbmUgSlNXaW5kb3dQcm94eTo6SlNXaW5kb3dQcm94eShWTSYgdm0sIFN0cnVjdHVyZSYgc3Ry
dWN0dXJlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQorICAgIDogQmFzZSh2bSwgJnN0cnVjdHVy
ZSkKKyAgICAsIG1fd29ybGQod29ybGQpCit7Cit9CisKK3ZvaWQgSlNXaW5kb3dQcm94eTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBBYnN0cmFjdERPTVdpbmRvdyYgd2luZG93KQoreworICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkp
OworICAgIHNldFdpbmRvdyh3aW5kb3cpOworfQorCitKU1dpbmRvd1Byb3h5JiBKU1dpbmRvd1By
b3h5OjpjcmVhdGUoSlNDOjpWTSYgdm0sIEFic3RyYWN0RE9NV2luZG93JiB3aW5kb3csIERPTVdy
YXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgYXV0byYgc3RydWN0dXJlID0gKkpTQzo6U3RydWN0
dXJlOjpjcmVhdGUodm0sIDAsIGpzTnVsbCgpLCBKU0M6OlR5cGVJbmZvKEpTQzo6UHVyZUZvcndh
cmRpbmdQcm94eVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICBhdXRvJiBwcm94
eSA9ICpuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTV2luZG93UHJveHk+KHZtLmhl
YXApKSBKU1dpbmRvd1Byb3h5KHZtLCBzdHJ1Y3R1cmUsIHdvcmxkKTsKKyAgICBwcm94eS5maW5p
c2hDcmVhdGlvbih2bSwgd2luZG93KTsKKyAgICByZXR1cm4gcHJveHk7Cit9CisKK3ZvaWQgSlNX
aW5kb3dQcm94eTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAgc3RhdGljX2Nhc3Q8SlNX
aW5kb3dQcm94eSo+KGNlbGwpLT5KU1dpbmRvd1Byb3h5Ojp+SlNXaW5kb3dQcm94eSgpOworfQor
Cit2b2lkIEpTV2luZG93UHJveHk6OnNldFdpbmRvdyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0
JiB3aW5kb3cpCit7CisgICAgQVNTRVJUKHdpbmRvdy5jbGFzc0luZm8oKSA9PSBKU0RPTVdpbmRv
dzo6aW5mbygpIHx8IHdpbmRvdy5jbGFzc0luZm8oKSA9PSBKU1JlbW90ZURPTVdpbmRvdzo6aW5m
bygpKTsKKyAgICBzZXRUYXJnZXQodm0sICZ3aW5kb3cpOworICAgIHN0cnVjdHVyZSgpLT5zZXRH
bG9iYWxPYmplY3Qodm0sICZ3aW5kb3cpOworICAgIEdDQ29udHJvbGxlcjo6c2luZ2xldG9uKCku
Z2FyYmFnZUNvbGxlY3RTb29uKCk7Cit9CisKK3ZvaWQgSlNXaW5kb3dQcm94eTo6c2V0V2luZG93
KEFic3RyYWN0RE9NV2luZG93JiBkb21XaW5kb3cpCit7CisgICAgLy8gUmVwbGFjaW5nIEpTRE9N
V2luZG93IHZpYSB0ZWxsaW5nIEpTV2luZG93UHJveHkgdG8gdXNlIHRoZSBzYW1lIERPTVdpbmRv
dyBpdCBhbHJlYWR5IHVzZXMgbWFrZXMgbm8gc2Vuc2UsCisgICAgLy8gc28gd2UnZCBiZXR0ZXIg
bmV2ZXIgdHJ5IHRvLgorICAgIEFTU0VSVCghd2luZG93KCkgfHwgJmRvbVdpbmRvdyAhPSAmd3Jh
cHBlZCgpKTsKKworICAgIGJvb2wgaXNSZW1vdGVET01XaW5kb3cgPSBpczxSZW1vdGVET01XaW5k
b3c+KGRvbVdpbmRvdyk7CisKKyAgICBWTSYgdm0gPSBjb21tb25WTSgpOworICAgIGF1dG8mIHBy
b3RvdHlwZVN0cnVjdHVyZSA9IGlzUmVtb3RlRE9NV2luZG93ID8gKkpTUmVtb3RlRE9NV2luZG93
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIG51bGxwdHIsIGpzTnVsbCgpKSA6ICpKU0RP
TVdpbmRvd1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRyLCBqc051bGwoKSk7
CisKKyAgICAvLyBFeHBsaWNpdGx5IHByb3RlY3QgdGhlIHByb3RvdHlwZSBzbyBpdCBpc24ndCBj
b2xsZWN0ZWQgd2hlbiB3ZSBhbGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4KKyAgICAvLyAoT25j
ZSB0aGUgZ2xvYmFsIG9iamVjdCBpcyBmdWxseSBjb25zdHJ1Y3RlZCwgaXQgd2lsbCBtYXJrIGl0
cyBvd24gcHJvdG90eXBlLikKKyAgICAvLyBGSVhNRTogV2h5IGRvIHdlIG5lZWQgdG8gcHJvdGVj
dCB0aGlzIHdoZW4gdGhlcmUncyBhIHBvaW50ZXIgdG8gaXQgb24gdGhlIHN0YWNrPworICAgIC8v
IFBlcmhhcHMgdGhlIGlzc3VlIGlzIHRoYXQgc3RydWN0dXJlIG9iamVjdHMgYXJlbid0IHNlZW4g
d2hlbiBzY2FubmluZyB0aGUgc3RhY2s/CisgICAgU3Ryb25nPEpTTm9uRmluYWxPYmplY3Q+IHBy
b3RvdHlwZSh2bSwgaXNSZW1vdGVET01XaW5kb3cgPyBzdGF0aWNfY2FzdDxKU05vbkZpbmFsT2Jq
ZWN0Kj4oSlNSZW1vdGVET01XaW5kb3dQcm90b3R5cGU6OmNyZWF0ZSh2bSwgbnVsbHB0ciwgJnBy
b3RvdHlwZVN0cnVjdHVyZSkpIDogc3RhdGljX2Nhc3Q8SlNOb25GaW5hbE9iamVjdCo+KEpTRE9N
V2luZG93UHJvdG90eXBlOjpjcmVhdGUodm0sIG51bGxwdHIsICZwcm90b3R5cGVTdHJ1Y3R1cmUp
KSk7CisKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogd2luZG93ID0gbnVsbHB0cjsKKyAgICBpZiAo
aXNSZW1vdGVET01XaW5kb3cpIHsKKyAgICAgICAgYXV0byYgd2luZG93U3RydWN0dXJlID0gKkpT
UmVtb3RlRE9NV2luZG93OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIG51bGxwdHIsIHByb3RvdHlwZS5n
ZXQoKSk7CisgICAgICAgIHdpbmRvdyA9IEpTUmVtb3RlRE9NV2luZG93OjpjcmVhdGUodm0sICZ3
aW5kb3dTdHJ1Y3R1cmUsIGRvd25jYXN0PFJlbW90ZURPTVdpbmRvdz4oZG9tV2luZG93KSwgdGhp
cyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byYgd2luZG93U3RydWN0dXJlID0gKkpTRE9N
V2luZG93OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIG51bGxwdHIsIHByb3RvdHlwZS5nZXQoKSk7Cisg
ICAgICAgIHdpbmRvdyA9IEpTRE9NV2luZG93OjpjcmVhdGUodm0sICZ3aW5kb3dTdHJ1Y3R1cmUs
IGRvd25jYXN0PERPTVdpbmRvdz4oZG9tV2luZG93KSwgdGhpcyk7CisgICAgfQorCisgICAgcHJv
dG90eXBlLT5zdHJ1Y3R1cmUoKS0+c2V0R2xvYmFsT2JqZWN0KHZtLCB3aW5kb3cpOworCisgICAg
YXV0byYgcHJvcGVydGllc1N0cnVjdHVyZSA9ICpKU0RPTVdpbmRvd1Byb3BlcnRpZXM6OmNyZWF0
ZVN0cnVjdHVyZSh2bSwgd2luZG93LCBKU0V2ZW50VGFyZ2V0Ojpwcm90b3R5cGUodm0sICp3aW5k
b3cpKTsKKyAgICBhdXRvJiBwcm9wZXJ0aWVzID0gKkpTRE9NV2luZG93UHJvcGVydGllczo6Y3Jl
YXRlKCZwcm9wZXJ0aWVzU3RydWN0dXJlLCAqd2luZG93KTsKKyAgICBwcm90b3R5cGUtPnN0cnVj
dHVyZSgpLT5zZXRQcm90b3R5cGVXaXRob3V0VHJhbnNpdGlvbih2bSwgJnByb3BlcnRpZXMpOwor
CisgICAgc2V0V2luZG93KHZtLCAqd2luZG93KTsKKworICAgIEFTU0VSVCh3aW5kb3ctPmdsb2Jh
bE9iamVjdCgpID09IHdpbmRvdyk7CisgICAgQVNTRVJUKHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkgPT0gd2luZG93KTsKK30KKwordm9pZCBKU1dpbmRvd1Byb3h5OjphdHRhY2hEZWJ1Z2dlcihK
U0M6OkRlYnVnZ2VyKiBkZWJ1Z2dlcikKK3sKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSB3aW5k
b3coKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3QtPnZtKCkpOworCisgICAg
aWYgKGRlYnVnZ2VyKQorICAgICAgICBkZWJ1Z2dlci0+YXR0YWNoKGdsb2JhbE9iamVjdCk7Cisg
ICAgZWxzZSBpZiAoYXV0byogY3VycmVudERlYnVnZ2VyID0gZ2xvYmFsT2JqZWN0LT5kZWJ1Z2dl
cigpKQorICAgICAgICBjdXJyZW50RGVidWdnZXItPmRldGFjaChnbG9iYWxPYmplY3QsIEpTQzo6
RGVidWdnZXI6OlRlcm1pbmF0aW5nRGVidWdnaW5nU2Vzc2lvbik7Cit9CisKK0Fic3RyYWN0RE9N
V2luZG93JiBKU1dpbmRvd1Byb3h5Ojp3cmFwcGVkKCkgY29uc3QKK3sKKyAgICBhdXRvKiB3aW5k
b3cgPSB0aGlzLT53aW5kb3coKTsKKyAgICBpZiAoYXV0byoganNXaW5kb3cgPSBqc0R5bmFtaWND
YXN0PEpTUmVtb3RlRE9NV2luZG93QmFzZSo+KHdpbmRvdy0+dm0oKSwgd2luZG93KSkKKyAgICAg
ICAgcmV0dXJuIGpzV2luZG93LT53cmFwcGVkKCk7CisgICAgcmV0dXJuIGpzQ2FzdDxKU0RPTVdp
bmRvd0Jhc2UqPih3aW5kb3cpLT53cmFwcGVkKCk7Cit9CisKK0Fic3RyYWN0RE9NV2luZG93KiBK
U1dpbmRvd1Byb3h5Ojp0b1dyYXBwZWQoVk0mIHZtLCBKU09iamVjdCogdmFsdWUpCit7CisgICAg
YXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNXaW5kb3dQcm94eSo+KHZtLCB2YWx1ZSk7
CisgICAgcmV0dXJuIHdyYXBwZXIgPyAmd3JhcHBlci0+d3JhcHBlZCgpIDogbnVsbHB0cjsKK30K
KworSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIFdpbmRvd1Byb3h5JiB3aW5kb3dQcm94
eSkKK3sKKyAgICByZXR1cm4gJndpbmRvd1Byb3h5LmpzV2luZG93UHJveHkoY3VycmVudFdvcmxk
KCpzdGF0ZSkpOworfQorCitKU1dpbmRvd1Byb3h5JiB0b0pTV2luZG93UHJveHkoV2luZG93UHJv
eHkmIHdpbmRvd1Byb3h5LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIHJldHVybiB3
aW5kb3dQcm94eS5qc1dpbmRvd1Byb3h5KHdvcmxkKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94
eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ4MTYxNWI2NzZkNTBlNTBjM2ZlNDFiOTljNTEyZGFkMzFjMGQ5MWYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmgKQEAgLTAs
MCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU1Byb3h5Lmg+CisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgRGVi
dWdnZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQWJzdHJhY3RET01XaW5k
b3c7CitjbGFzcyBBYnN0cmFjdEZyYW1lOworY2xhc3MgV2luZG93UHJveHk7CisKK2NsYXNzIEpT
V2luZG93UHJveHkgZmluYWwgOiBwdWJsaWMgSlNDOjpKU1Byb3h5IHsKKyAgICB1c2luZyBCYXNl
ID0gSlNDOjpKU1Byb3h5OworcHVibGljOgorICAgIHN0YXRpYyBKU1dpbmRvd1Byb3h5JiBjcmVh
dGUoSlNDOjpWTSYsIEFic3RyYWN0RE9NV2luZG93JiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAg
c3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKKworICAgIERFQ0xBUkVfSU5GTzsKKworICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiB3aW5kb3coKSBjb25zdCB7IHJldHVybiBKU0M6OmpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KHRhcmdldCgpKTsgfQorICAgIHZvaWQgc2V0V2luZG93KEpTQzo6
Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOworICAgIHZvaWQgc2V0V2luZG93KEFic3RyYWN0RE9N
V2luZG93Jik7CisKKyAgICBBYnN0cmFjdERPTVdpbmRvdyYgd3JhcHBlZCgpIGNvbnN0OworICAg
IHN0YXRpYyBXRUJDT1JFX0VYUE9SVCBBYnN0cmFjdERPTVdpbmRvdyogdG9XcmFwcGVkKEpTQzo6
Vk0mLCBKU0M6OkpTT2JqZWN0Kik7CisKKyAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkKCkgeyBy
ZXR1cm4gbV93b3JsZDsgfQorCisgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2Vy
Kik7CisKK3ByaXZhdGU6CisgICAgSlNXaW5kb3dQcm94eShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1
cmUmLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
LCBBYnN0cmFjdERPTVdpbmRvdyYpOworCisgICAgUmVmPERPTVdyYXBwZXJXb3JsZD4gbV93b3Js
ZDsKK307CisKKy8vIEpTV2luZG93UHJveHkgaXMgYSBsaXR0bGUgb2RkIGluIHRoYXQgaXQncyBu
b3QgYSB0cmFkaXRpb25hbCB3cmFwcGVyIGFuZCBoYXMgbm8gYmFjayBwb2ludGVyLgorLy8gSXQg
aXMsIGhvd2V2ZXIsIHN0cm9uZ2x5IG93bmVkIGJ5IEFic3RyYWN0RnJhbWUgdmlhIGl0cyBXaW5k
b3dQcm94eSwgc28gd2UgY2FuIGdldCBvbmUgZnJvbSBhIFdpbmRvd1Byb3h5LgorSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBXaW5kb3dQcm94eSYpOworaW5saW5lIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgV2luZG93UHJveHkqIHdpbmRvd1Byb3h5
KSB7IHJldHVybiB3aW5kb3dQcm94eSA/IHRvSlMoc3RhdGUsICp3aW5kb3dQcm94eSkgOiBKU0M6
OmpzTnVsbCgpOyB9CisKK0pTV2luZG93UHJveHkmIHRvSlNXaW5kb3dQcm94eShXaW5kb3dQcm94
eSYsIERPTVdyYXBwZXJXb3JsZCYpOworaW5saW5lIEpTV2luZG93UHJveHkqIHRvSlNXaW5kb3dQ
cm94eShXaW5kb3dQcm94eSogd2luZG93UHJveHksIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpIHsg
cmV0dXJuIHdpbmRvd1Byb3h5ID8gJnRvSlNXaW5kb3dQcm94eSgqd2luZG93UHJveHksIHdvcmxk
KSA6IG51bGxwdHI7IH0KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDgzODdiYjM0N2Qy
NmNhZWZkODAxNDBiZjBmZmU5OGYzOGRkMjM3OTQuLjZlMmU0MDgyNjRkYmYxOGM0ODliOWM5ODdi
NTA5YTg1ZmUwMDYyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVy
OjpnZXRBbGxXb3JsZHMoVmVjdG9yPFJlZjxET01XcmFwcGVyV29ybGQ+PiYgd29ybGRzKQogICAg
IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4oY29tbW9uVk0oKS5jbGllbnREYXRhKS0+Z2V0
QWxsV29ybGRzKHdvcmxkcyk7CiB9CiAKLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlw
dEZvcldpbmRvd1Byb3h5KEpTRE9NV2luZG93UHJveHkmIHdpbmRvd1Byb3h5KQordm9pZCBTY3Jp
cHRDb250cm9sbGVyOjppbml0U2NyaXB0Rm9yV2luZG93UHJveHkoSlNXaW5kb3dQcm94eSYgd2lu
ZG93UHJveHkpCiB7CiAgICAgYXV0byYgd29ybGQgPSB3aW5kb3dQcm94eS53b3JsZCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggMmJm
YWQyYTU1MWI3ZDMwYjY0N2MyYmYxMjg5ZGEzNDcwNmM3YmRiNC4uZDZlNTkwMDFmMjhjMjUzNjJh
ZGRhNDM3ZmQ4OWRhMGUxOTNiY2JkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuaApAQCAtMjIsNyArMjIsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQcm94eS5o
IgorI2luY2x1ZGUgIkpTV2luZG93UHJveHkuaCIKICNpbmNsdWRlICJXaW5kb3dQcm94eS5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1N0cm9uZy5oPgpAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBOUE9iamVjdCogd2luZG93U2NyaXB0TlBPYmplY3QoKTsKICNlbmRpZgogCi0gICAgdm9p
ZCBpbml0U2NyaXB0Rm9yV2luZG93UHJveHkoSlNET01XaW5kb3dQcm94eSYpOworICAgIHZvaWQg
aW5pdFNjcmlwdEZvcldpbmRvd1Byb3h5KEpTV2luZG93UHJveHkmKTsKIAogcHJpdmF0ZToKICAg
ICB2b2lkIHNldHVwTW9kdWxlU2NyaXB0SGFuZGxlcnMoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlJiwgRE9NV3JhcHBlcldvcmxkJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKaW5kZXggOWQ3YTYzNGJjZDJlZWM1ZGQxZGVj
MWZiYzNhMjhhYTAyNTZiZTM2YS4uZDMxZGZkYjQ1MmE0OTVkZDZlYzExZGQ3MDhlNDg2ODYxNzkw
MDhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2luZG93UHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNwcApAQCAt
NzIsMjYgKzcyLDI2IEBAIHZvaWQgV2luZG93UHJveHk6OmRlc3Ryb3lKU1dpbmRvd1Byb3h5KERP
TVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAgd29ybGQuZGlkRGVzdHJveVdpbmRvd1Byb3h5KHRo
aXMpOwogfQogCi1KU0RPTVdpbmRvd1Byb3h5JiBXaW5kb3dQcm94eTo6Y3JlYXRlSlNXaW5kb3dQ
cm94eShET01XcmFwcGVyV29ybGQmIHdvcmxkKQorSlNXaW5kb3dQcm94eSYgV2luZG93UHJveHk6
OmNyZWF0ZUpTV2luZG93UHJveHkoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKICAgICBBU1NF
UlQoIW1fanNXaW5kb3dQcm94aWVzLmNvbnRhaW5zKCZ3b3JsZCkpOwogICAgIEFTU0VSVChtX2Zy
YW1lLndpbmRvdygpKTsKIAogICAgIFZNJiB2bSA9IHdvcmxkLnZtKCk7CiAKLSAgICBTdHJvbmc8
SlNET01XaW5kb3dQcm94eT4ganNXaW5kb3dQcm94eSh2bSwgJkpTRE9NV2luZG93UHJveHk6OmNy
ZWF0ZSh2bSwgKm1fZnJhbWUud2luZG93KCksIHdvcmxkKSk7Ci0gICAgU3Ryb25nPEpTRE9NV2lu
ZG93UHJveHk+IGpzV2luZG93UHJveHkyKGpzV2luZG93UHJveHkpOworICAgIFN0cm9uZzxKU1dp
bmRvd1Byb3h5PiBqc1dpbmRvd1Byb3h5KHZtLCAmSlNXaW5kb3dQcm94eTo6Y3JlYXRlKHZtLCAq
bV9mcmFtZS53aW5kb3coKSwgd29ybGQpKTsKKyAgICBTdHJvbmc8SlNXaW5kb3dQcm94eT4ganNX
aW5kb3dQcm94eTIoanNXaW5kb3dQcm94eSk7CiAgICAgbV9qc1dpbmRvd1Byb3hpZXMuYWRkKCZ3
b3JsZCwganNXaW5kb3dQcm94eSk7CiAgICAgd29ybGQuZGlkQ3JlYXRlV2luZG93UHJveHkodGhp
cyk7CiAgICAgcmV0dXJuICpqc1dpbmRvd1Byb3h5LmdldCgpOwogfQogCi1WZWN0b3I8SlNDOjpT
dHJvbmc8SlNET01XaW5kb3dQcm94eT4+IFdpbmRvd1Byb3h5Ojpqc1dpbmRvd1Byb3hpZXNBc1Zl
Y3RvcigpIGNvbnN0CitWZWN0b3I8SlNDOjpTdHJvbmc8SlNXaW5kb3dQcm94eT4+IFdpbmRvd1By
b3h5Ojpqc1dpbmRvd1Byb3hpZXNBc1ZlY3RvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvcHlU
b1ZlY3RvcihtX2pzV2luZG93UHJveGllcy52YWx1ZXMoKSk7CiB9CiAKLUpTRE9NV2luZG93UHJv
eHkmIFdpbmRvd1Byb3h5OjpjcmVhdGVKU1dpbmRvd1Byb3h5V2l0aEluaXRpYWxpemVkU2NyaXB0
KERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCitKU1dpbmRvd1Byb3h5JiBXaW5kb3dQcm94eTo6Y3Jl
YXRlSlNXaW5kb3dQcm94eVdpdGhJbml0aWFsaXplZFNjcmlwdChET01XcmFwcGVyV29ybGQmIHdv
cmxkKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOwogICAgIGF1dG8mIHdp
bmRvd1Byb3h5ID0gY3JlYXRlSlNXaW5kb3dQcm94eSh3b3JsZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2luZG93UHJveHkuaAppbmRleCA5NGUzNzI5YWQwNzBiODU0M2EyZTYzMTM1ZGFl
OTU5NDgyZDE2M2QzLi5mYzNlYzAxYTBjNjY4NTdiZjNhMjYwZjU4ZWU5NTRlMzQwNmQ0NWJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmgKQEAgLTIwLDcgKzIwLDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJKU0RPTVdpbmRvd1Byb3h5LmgiCisjaW5j
bHVkZSAiSlNXaW5kb3dQcm94eS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQWJz
dHJhY3RGcmFtZTsKIGNsYXNzIFdpbmRvd1Byb3h5IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICB1c2luZyBQcm94eU1hcCA9IEhhc2hNYXA8UmVmUHRyPERPTVdy
YXBwZXJXb3JsZD4sIEpTQzo6U3Ryb25nPEpTRE9NV2luZG93UHJveHk+PjsKKyAgICB1c2luZyBQ
cm94eU1hcCA9IEhhc2hNYXA8UmVmUHRyPERPTVdyYXBwZXJXb3JsZD4sIEpTQzo6U3Ryb25nPEpT
V2luZG93UHJveHk+PjsKIAogICAgIGV4cGxpY2l0IFdpbmRvd1Byb3h5KEFic3RyYWN0RnJhbWUm
KTsKICAgICB+V2luZG93UHJveHkoKTsKQEAgLTQzLDEyICs0MywxMiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkZXN0cm95SlNXaW5kb3dQcm94eShET01XcmFwcGVyV29ybGQmKTsKIAogICAgIFByb3h5
TWFwOjpWYWx1ZXNDb25zdEl0ZXJhdG9yUmFuZ2UganNXaW5kb3dQcm94aWVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9qc1dpbmRvd1Byb3hpZXMudmFsdWVzKCk7IH0KLSAgICBWZWN0b3I8SlNDOjpTdHJv
bmc8SlNET01XaW5kb3dQcm94eT4+IGpzV2luZG93UHJveGllc0FzVmVjdG9yKCkgY29uc3Q7Cisg
ICAgVmVjdG9yPEpTQzo6U3Ryb25nPEpTV2luZG93UHJveHk+PiBqc1dpbmRvd1Byb3hpZXNBc1Zl
Y3RvcigpIGNvbnN0OwogCiAgICAgUHJveHlNYXAgcmVsZWFzZUpTV2luZG93UHJveGllcygpIHsg
cmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9qc1dpbmRvd1Byb3hpZXMsIFByb3h5TWFwKCkpOyB9CiAg
ICAgdm9pZCBzZXRKU1dpbmRvd1Byb3hpZXMoUHJveHlNYXAmJiB3aW5kb3dQcm94aWVzKSB7IG1f
anNXaW5kb3dQcm94aWVzID0gV1RGTW92ZSh3aW5kb3dQcm94aWVzKTsgfQogCi0gICAgSlNET01X
aW5kb3dQcm94eSYganNXaW5kb3dQcm94eShET01XcmFwcGVyV29ybGQmIHdvcmxkKQorICAgIEpT
V2luZG93UHJveHkmIGpzV2luZG93UHJveHkoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKICAgICB7
CiAgICAgICAgIGF1dG8gaXQgPSBtX2pzV2luZG93UHJveGllcy5maW5kKCZ3b3JsZCk7CiAgICAg
ICAgIGlmIChpdCAhPSBtX2pzV2luZG93UHJveGllcy5lbmQoKSkKQEAgLTU3LDcgKzU3LDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gY3JlYXRlSlNXaW5kb3dQcm94eVdpdGhJbml0aWFsaXpl
ZFNjcmlwdCh3b3JsZCk7CiAgICAgfQogCi0gICAgSlNET01XaW5kb3dQcm94eSogZXhpc3RpbmdK
U1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3JsZCYgd29ybGQpIGNvbnN0CisgICAgSlNXaW5kb3dQ
cm94eSogZXhpc3RpbmdKU1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3JsZCYgd29ybGQpIGNvbnN0
CiAgICAgewogICAgICAgICBhdXRvIGl0ID0gbV9qc1dpbmRvd1Byb3hpZXMuZmluZCgmd29ybGQp
OwogICAgICAgICByZXR1cm4gKGl0ICE9IG1fanNXaW5kb3dQcm94aWVzLmVuZCgpKSA/IGl0LT52
YWx1ZS5nZXQoKSA6IG51bGxwdHI7CkBAIC03Niw4ICs3Niw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGF0dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsgLy8gQXR0YWNoZXMvZGV0YWNoZXMgaW4g
YWxsIHdvcmxkcy93aW5kb3cgcHJveGllcy4KIAogcHJpdmF0ZToKLSAgICBKU0RPTVdpbmRvd1By
b3h5JiBjcmVhdGVKU1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3JsZCYpOwotICAgIFdFQkNPUkVf
RVhQT1JUIEpTRE9NV2luZG93UHJveHkmIGNyZWF0ZUpTV2luZG93UHJveHlXaXRoSW5pdGlhbGl6
ZWRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CisgICAgSlNXaW5kb3dQcm94eSYgY3JlYXRlSlNX
aW5kb3dQcm94eShET01XcmFwcGVyV29ybGQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBKU1dpbmRv
d1Byb3h5JiBjcmVhdGVKU1dpbmRvd1Byb3h5V2l0aEluaXRpYWxpemVkU2NyaXB0KERPTVdyYXBw
ZXJXb3JsZCYpOwogCiAgICAgQWJzdHJhY3RGcmFtZSYgbV9mcmFtZTsKICAgICBQcm94eU1hcCBt
X2pzV2luZG93UHJveGllczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMGY1ZGNmZWZjZjEzYzVhZTE2YmU4YTY5Yjg5ZTg0
NGRhNGFhM2FlYi4uYWE5NGY4N2I0ZTc5ZTY3ZGJjZWI0ZjBhNWM1Nzk3MTgxYWIxY2E4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTQyMiw3ICs0MjIsNyBAQCBzdWIgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUKICAgICB9
CiAKICAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIldpbmRvd1Byb3h5IikgewotICAgICAgICBBZGRU
b0luY2x1ZGVzKCJKU0RPTVdpbmRvd1Byb3h5LmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25h
bCk7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTV2luZG93UHJveHkuaCIsICRpbmNsdWRlc1Jl
ZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0V2lu
ZG93UHJveHkuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTI1MTQsNyArMjUxNCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAg
ICB9CiAgICAgfQogCi0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzIEpTRE9NV2luZG93
UHJveHk7XG5cbiIpIGlmICRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIG9yICRpbnRlcmZh
Y2VOYW1lIGVxICJSZW1vdGVET01XaW5kb3ciOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJj
bGFzcyBKU1dpbmRvd1Byb3h5O1xuXG4iKSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IjsKIAogICAgIG15ICRleHBv
cnRNYWNybyA9IEdldEV4cG9ydE1hY3JvRm9ySlNDbGFzcygkaW50ZXJmYWNlKTsKIApAQCAtMjUy
Nyw3ICsyNTI3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB1c2luZyBET01XcmFwcGVkID0gJGltcGxUeXBlO1xuIikgaWYgJGhhc1BhcmVudDsK
IAogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJmYWNlTmFt
ZSBlcSAiUmVtb3RlRE9NV2luZG93IikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHN0YXRpYyAkY2xhc3NOYW1lKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIFJlZjwkaW1wbFR5cGU+JiYgaW1wbCwgSlNET01XaW5kb3dQcm94eSogcHJv
eHkpXG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNz
TmFtZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8
JGltcGxUeXBlPiYmIGltcGwsIEpTV2luZG93UHJveHkqIHByb3h5KVxuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAge1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgICAgICRjbGFzc05hbWUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0
ZUNlbGw8JGNsYXNzTmFtZT4odm0uaGVhcCkpICR7Y2xhc3NOYW1lfSh2bSwgc3RydWN0dXJlLCBX
VEZNb3ZlKGltcGwpLCBwcm94eSk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgcHJveHkpO1xuIik7CkBAIC0yODM2LDcg
KzI4MzYsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgICMgQ29uc3RydWN0b3IKICAgICBp
ZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZU5hbWUgZXEgIlJl
bW90ZURPTVdpbmRvdyIpIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xh
c3NOYW1lKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZjwkaW1wbFR5cGU+JiYsIEpTRE9N
V2luZG93UHJveHkqKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRj
bGFzc05hbWUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPCRpbXBsVHlwZT4mJiwgSlNX
aW5kb3dQcm94eSopO1xuIik7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRz
SW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpKSB7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1
cmUqLCBSZWY8JGltcGxUeXBlPiYmKTtcbiIpOwogICAgIH0gZWxzaWYgKCFOZWVkc0ltcGxlbWVu
dGF0aW9uQ2xhc3MoJGludGVyZmFjZSkpIHsKQEAgLTI4NDYsNyArMjg0Niw3IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgIH0KIAogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IiB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IikgewotICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9N
V2luZG93UHJveHkqKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTV2luZG93UHJveHkqKTtcbiIpOwogICAgIH0g
ZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29y
a2VyR2xvYmFsU2NvcGUiKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQcm94eSopO1xuIik7CiAgICAgfSBl
bHNlIHsKQEAgLTI5NzYsNyArMjk3Niw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgaWYg
KE5lZWRzSW1wbGVtZW50YXRpb25DbGFzcygkaW50ZXJmYWNlKSkgewogICAgICAgICBteSAkdG9X
cmFwcGVkVHlwZSA9ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciIg
PyAiUmVmUHRyPCR7aW1wbFR5cGV9PiIgOiAiJHtpbXBsVHlwZX0qIjsKLSAgICAKKyAgICAgICAg
JGhlYWRlckluY2x1ZGVzeyJKU0RPTVdyYXBwZXIuaCJ9ID0gMTsKKwogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAidGVtcGxhdGU8PiBzdHJ1Y3QgSlNET01XcmFwcGVyQ29udmVydGVyVHJh
aXRzPCR7aW1wbFR5cGV9PiB7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICB1c2luZyBXcmFwcGVyQ2xhc3MgPSAke2NsYXNzTmFtZX07XG4iKTsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB1c2luZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gJHt0b1dyYXBw
ZWRUeXBlfTtcbiIpOwpAQCAtMzQwNSwxMSArMzQwNiwxMSBAQCBzdWIgR2VuZXJhdGVPdmVybG9h
ZERpc3BhdGNoZXIKICAgICAgICAgICAgICAgICBmb3IgbXkgJHN1YnR5cGUgKEBzdWJ0eXBlcykg
ewogICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUo
JHN1YnR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0J1ZmZlclNvdXJjZVR5cGUoJHN1YnR5cGUp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN1YnR5cGUtPm5hbWUgZXEgIkRPTVdp
bmRvdyIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygi
SlNET01XaW5kb3dQcm94eS5oIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRnZW5l
cmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNE
T01XaW5kb3dQcm94eT4odm0pIHx8IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHM8SlNET01XaW5kb3c+KHZtKSkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRU
b0ltcGxJbmNsdWRlcygiSlNXaW5kb3dQcm94eS5oIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+
aW5oZXJpdHM8SlNXaW5kb3dQcm94eT4odm0pIHx8IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkiKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCRzdWJ0eXBlLT5uYW1lIGVxICJSZW1vdGVET01XaW5kb3ciKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NV2luZG93UHJveHku
aCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJ
Zk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIChh
c09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTRE9NV2luZG93UHJveHk+KHZt
KSB8fCBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTUmVtb3RlRE9NV2lu
ZG93Pih2bSkpIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVk
ZXMoIkpTV2luZG93UHJveHkuaCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkZ2Vu
ZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0Fy
Zy5pc09iamVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpT
V2luZG93UHJveHk+KHZtKSB8fCBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
PEpTUmVtb3RlRE9NV2luZG93Pih2bSkpIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJ
Zk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFz
T2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlMiIC4gJHN1YnR5cGUtPm5hbWUg
LiAiPih2bSkiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTQyMTksOCArNDIyMCw4
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAjIENvbnN0cnVjdG9yCiAgICAg
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2VOYW1lIGVxICJS
ZW1vdGVET01XaW5kb3ciKSB7Ci0gICAgICAgIEFkZEluY2x1ZGVzRm9ySW1wbGVtZW50YXRpb25U
eXBlSW5JbXBsKCJKU0RPTVdpbmRvd1Byb3h5Iik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IFJlZjwkaW1wbFR5cGU+JiYgaW1wbCwgSlNET01XaW5kb3dQcm94eSogcHJveHkpXG4iKTsKKyAg
ICAgICAgQWRkSW5jbHVkZXNGb3JJbXBsZW1lbnRhdGlvblR5cGVJbkltcGwoIkpTV2luZG93UHJv
eHkiKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFzc05h
bWUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPCRpbXBsVHlwZT4mJiBpbXBsLCBK
U1dpbmRvd1Byb3h5KiBwcm94eSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICA6ICRwYXJlbnRDbGFzc05hbWUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSwgcHJveHkp
XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ9XG5cbiIpOwpAQCAtNDI0Miw3ICs0MjQzLDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KIAogICAgICMgRmluaXNoIENyZWF0aW9uCiAgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2VOYW1lIGVxICJSZW1vdGVET01XaW5k
b3ciKSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01XaW5kb3dQcm94eSogcHJveHkpXG4iKTsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU1dpbmRvd1Byb3h5KiBwcm94eSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSwgcHJveHkpO1xuXG4iKTsKICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRv
ci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAKaW5kZXggZDVmZjFjMDY3YmM3OTM4MDg3ZDRkMWUzMDU4ZTc5OTI4YjJhZWNlZi4u
MDhmYjUwM2QwMjFkOTgwYTIwOWU5NzY4MmNiOWQwNGZkZjYxNTRiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAg
LTU3LDcgKzU3LDcgQEAKICNpbmNsdWRlICJKU0RPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJK
U0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93QmFzZS5oIgotI2luY2x1ZGUgIkpT
RE9NV2luZG93UHJveHkuaCIKKyNpbmNsdWRlICJKU1dpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAi
SlNET01XcmFwcGVyQ2FjaGUuaCIKICNpbmNsdWRlICJKU0RvY3VtZW50LmgiCiAjaW5jbHVkZSAi
SlNFbGVtZW50LmgiCkBAIC03MDI5LDcgKzcwMjksNyBAQCBzdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3Zl
cgogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRl
ZE1ldGhvZDZCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgaWYg
KGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdB
cmcpLT5pbmhlcml0czxKU1Rlc3RPYmo+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2Q4Qm9keShzdGF0ZSwgY2FzdGVkVGhp
cywgdGhyb3dTY29wZSk7Ci0gICAgICAgIGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgp
ICYmIChhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTRE9NV2luZG93UHJv
eHk+KHZtKSB8fCBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTRE9NV2lu
ZG93Pih2bSkpKQorICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiAo
YXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU1dpbmRvd1Byb3h5Pih2bSkg
fHwgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0RPTVdpbmRvdz4odm0p
KSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2Fk
ZWRNZXRob2Q5Qm9keShzdGF0ZSwgY2FzdGVkVGhpcywgdGhyb3dTY29wZSk7CiAgICAgICAgIGlm
IChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5n
QXJnKS0+aW5oZXJpdHM8SlNCbG9iPih2bSkpCiAgICAgICAgICAgICByZXR1cm4ganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kMTNCb2R5KHN0YXRlLCBjYXN0ZWRUaGlz
LCB0aHJvd1Njb3BlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggMmM2YzBkZGU0YjVkY2FkM2I5
Mzk1MmJiOWUxZTgzZTA5MmJiMmRhMy4uYTg0MjY1YWE3OTM2YzM0ODkyY2M5ZTA3MWE5OTBiOWFk
MWU1MTE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAKICNpbmNsdWRl
ICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd1Byb3h5Lmgi
CisjaW5jbHVkZSAiSlNXaW5kb3dQcm94eS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJNYXRoTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhRmVhdHVyZU5hbWVzLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRl
eCAwYzIwMzZmNzZmYThiMjkwMzA0ZTk3NmZhYTA0MGM5Y2M1OGVkODYxLi5mYzJmZDEyYmFkNzc5
MGVmNmFmOGI2OTM4NjhmMWY4YjE0Yjg0YWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTQxLDggKzQxLDggQEAKICNpbmNs
dWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd1Byb3h5Lmgi
CiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiSlNXaW5kb3dQ
cm94eS5oIgogI2luY2x1ZGUgIlBhcnNpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQaW5nTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCkBAIC0xNDUsNyArMTQ1LDcgQEAg
Ym9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93UnVubmluZ09yRGlzcGxheWluZ0luc2Vj
dXJlQ29udGVudChjb25zdCBVUkwmIHUKICAgICByZXR1cm4gYWxsb3c7CiB9CiAKLXZvaWQgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpkaWRDcmVhdGVXaW5kb3dQcm94eShKU0RPTVdpbmRvd1Byb3h5
JiB3aW5kb3dQcm94eSkgY29uc3QKK3ZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRDcmVh
dGVXaW5kb3dQcm94eShKU1dpbmRvd1Byb3h5JiB3aW5kb3dQcm94eSkgY29uc3QKIHsKICAgICBh
dXRvKiB3aW5kb3cgPSB3aW5kb3dQcm94eS53aW5kb3coKTsKICAgICBBU1NFUlQod2luZG93KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGlj
eS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5k
ZXggZDBlMzViYjEyOTJlM2VkOGU0ZjYzNGE2YTYxNmY1ZDU3MzA5M2YxNy4uMjkzZDc1NmIxN2Fi
NmYwNjE2OWM0ZjMyZDA3ODAzMjViNDdlODRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgQ29u
dGVudFNlY3VyaXR5UG9saWN5RGlyZWN0aXZlTGlzdDsKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBv
bGljeVNvdXJjZTsKIGNsYXNzIERPTVN0cmluZ0xpc3Q7CiBjbGFzcyBGcmFtZTsKLWNsYXNzIEpT
RE9NV2luZG93UHJveHk7CitjbGFzcyBKU1dpbmRvd1Byb3h5OwogY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2lu
OwpAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb3B5U3RhdGVGcm9tKGNvbnN0
IENvbnRlbnRTZWN1cml0eVBvbGljeSopOwogICAgIHZvaWQgY29weVVwZ3JhZGVJbnNlY3VyZVJl
cXVlc3RTdGF0ZUZyb20oY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5Jik7CiAKLSAgICB2b2lk
IGRpZENyZWF0ZVdpbmRvd1Byb3h5KEpTRE9NV2luZG93UHJveHkmKSBjb25zdDsKKyAgICB2b2lk
IGRpZENyZWF0ZVdpbmRvd1Byb3h5KEpTV2luZG93UHJveHkmKSBjb25zdDsKIAogICAgIGVudW0g
Y2xhc3MgUG9saWN5RnJvbSB7CiAgICAgICAgIEFQSSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90L0hlYXBTbmFwc2hv
dC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNu
YXBzaG90L0hlYXBTbmFwc2hvdC5qcwppbmRleCAxZjJmN2ExMWEwODljNGRhZTFiMzE5MzdhNGE0
NzUxMDllZWI0NDM5Li5hOGYyYzMzMDMxNzdhNjVmODY5ZWYwYWNhNTBjZWIxYmJjMmY4M2IwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0hl
YXBTbmFwc2hvdC9IZWFwU25hcHNob3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90LmpzCkBAIC03MDks
NyArNzA5LDcgQEAgSGVhcFNuYXBzaG90ID0gY2xhc3MgSGVhcFNuYXBzaG90CiAgICAgewogICAg
ICAgICBsZXQgY2xhc3NOYW1lID0gdGhpcy5fbm9kZUNsYXNzTmFtZXNUYWJsZVt0aGlzLl9ub2Rl
c1tub2RlSW5kZXggKyBub2RlQ2xhc3NOYW1lT2Zmc2V0XV07CiAgICAgICAgIHJldHVybiBjbGFz
c05hbWUgPT09ICJXaW5kb3ciCi0gICAgICAgICAgICB8fCBjbGFzc05hbWUgPT09ICJKU0RPTVdp
bmRvd1Byb3h5IgorICAgICAgICAgICAgfHwgY2xhc3NOYW1lID09PSAiSlNXaW5kb3dQcm94eSIK
ICAgICAgICAgICAgIHx8IGNsYXNzTmFtZSA9PT0gIkdsb2JhbE9iamVjdCI7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NVXRpbGl0eS5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01VdGlsaXR5Lm1tCmluZGV4IDk3OTEyNjZiMDUw
Nzk5YzAwMzA1ZWVjNWFhYzQ5MWU2MjQ4ODE5ZGYuLmJiNjM1NDM0MmQxOTEwMGIxMWMwZDI0NDhi
YTY5MjNmMDM2NGFjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9E
T01VdGlsaXR5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01VdGlsaXR5
Lm1tCkBAIC01MSw3ICs1MSw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0pTQ1NTUnVsZUxpc3QuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvSlNDU1NTdHlsZURlY2xhcmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0pTRE9NSW1wbGVtZW50YXRpb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvSlNET01XaW5kb3dQ
cm94eS5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaD4KICNp
bXBvcnQgPFdlYkNvcmUvSlNEZXByZWNhdGVkQ1NTT01SR0JDb2xvci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9KU0RlcHJlY2F0ZWRDU1NPTVJlY3QuaD4KQEAgLTY4LDYgKzY3LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvSlNTdHlsZVNoZWV0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTU3R5bGVTaGVldExp
c3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNUcmVlV2Fsa2VyLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0pTV2luZG93UHJveHkuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNYUGF0aEV4cHJlc3Npb24uaD4K
ICNpbXBvcnQgPFdlYkNvcmUvSlNYUGF0aFJlc3VsdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJT
Y3JpcHRPYmplY3RQcml2YXRlLmg+CkBAIC04NSw3ICs4NSw2IEBAIHN0YXRpYyBXZWJTY3JpcHRP
YmplY3QgKmNyZWF0ZURPTVdyYXBwZXIoSlNDOjpKU09iamVjdCYganNXcmFwcGVyKQogICAgIFdS
QVAoRGVwcmVjYXRlZENTU09NVmFsdWUpCiAgICAgV1JBUChEZXByZWNhdGVkQ1NTT01Db3VudGVy
KQogICAgIFdSQVAoRE9NSW1wbGVtZW50YXRpb24pCi0gICAgV1JBUChET01XaW5kb3dQcm94eSkK
ICAgICBXUkFQKEV2ZW50KQogICAgIFdSQVAoSFRNTE9wdGlvbnNDb2xsZWN0aW9uKQogICAgIFdS
QVAoTWVkaWFMaXN0KQpAQCAtOTksNiArOTgsNyBAQCBzdGF0aWMgV2ViU2NyaXB0T2JqZWN0ICpj
cmVhdGVET01XcmFwcGVyKEpTQzo6SlNPYmplY3QmIGpzV3JhcHBlcikKICAgICBXUkFQKFN0eWxl
U2hlZXQpCiAgICAgV1JBUChTdHlsZVNoZWV0TGlzdCkKICAgICBXUkFQKFRyZWVXYWxrZXIpCisg
ICAgV1JBUChXaW5kb3dQcm94eSkKICAgICBXUkFQKFhQYXRoRXhwcmVzc2lvbikKICAgICBXUkFQ
KFhQYXRoUmVzdWx0KQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbQppbmRleCAwMzM4NTFjNjI4NGQ5Y2JhOGJiOTdlNTA0ZWY3NzQ0MDUyZjg0MmVmLi5mZDky
NDUzZjMzNTBhOWMyNTJjY2Q2OTg0ZTIyOTA5NTk1YzM4ODY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTIwOTIsOCArMjA5Miw4IEBAIHN0YXRp
YyBXZWJGcmFtZUxvYWRUeXBlIHRvV2ViRnJhbWVMb2FkVHlwZShGcmFtZUxvYWRUeXBlIGZyYW1l
TG9hZFR5cGUpCiAgICAgLy8gVGhlIGdsb2JhbCBvYmplY3QgaXMgcHJvYmFibHkgYSBwcm94eSBv
YmplY3Q/IC0gaWYgc28sIHdlIGtub3cgaG93IHRvIHVzZSB0aGlzIQogICAgIEpTQzo6SlNPYmpl
Y3QqIGdsb2JhbE9iamVjdE9iaiA9IHRvSlMoZ2xvYmFsT2JqZWN0UmVmKTsKICAgICBKU0M6OlZN
JiB2bSA9ICpnbG9iYWxPYmplY3RPYmotPnZtKCk7Ci0gICAgaWYgKCFzdHJjbXAoZ2xvYmFsT2Jq
ZWN0T2JqLT5jbGFzc0luZm8odm0pLT5jbGFzc05hbWUsICJKU0RPTVdpbmRvd1Byb3h5IikpCi0g
ICAgICAgIGFueVdvcmxkR2xvYmFsT2JqZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTRE9NV2lu
ZG93Kj4odm0sIHN0YXRpY19jYXN0PEpTRE9NV2luZG93UHJveHkqPihnbG9iYWxPYmplY3RPYmop
LT53aW5kb3coKSk7CisgICAgaWYgKCFzdHJjbXAoZ2xvYmFsT2JqZWN0T2JqLT5jbGFzc0luZm8o
dm0pLT5jbGFzc05hbWUsICJKU1dpbmRvd1Byb3h5IikpCisgICAgICAgIGFueVdvcmxkR2xvYmFs
T2JqZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93Kj4odm0sIHN0YXRpY19jYXN0
PEpTV2luZG93UHJveHkqPihnbG9iYWxPYmplY3RPYmopLT53aW5kb3coKSk7CiAKICAgICBpZiAo
IWFueVdvcmxkR2xvYmFsT2JqZWN0KQogICAgICAgICByZXR1cm4gQCIiOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViRnJhbWUuY3BwCmluZGV4IDY4MmFkMDEzNzQwZDlkMTg5NDBhNTgyMDBiMTgyM2Zl
MDJmNGFlYjguLmFiMmY2OWVlNDM1YjE1YmNjYTg2YjRiMTYwY2E3YjcyNjJlMGVkMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFtZS5jcHAKQEAgLTIwMDMsOCArMjAwMyw4IEBAIEhSRVNV
TFQgV2ViRnJhbWU6OnN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHRJblNjcmlwdFdvcmxkKElX
ZWJTY3JpcHRXb3JsZCogaVdvCiAgICAgLy8gVGhlIGdsb2JhbCBvYmplY3QgaXMgcHJvYmFibHkg
YSBwcm94eSBvYmplY3Q/IC0gaWYgc28sIHdlIGtub3cgaG93IHRvIHVzZSB0aGlzIQogICAgIEpT
Qzo6SlNPYmplY3QqIGdsb2JhbE9iamVjdE9iaiA9IHRvSlMoZ2xvYmFsT2JqZWN0UmVmKTsKICAg
ICBhdXRvJiB2bSA9ICpnbG9iYWxPYmplY3RPYmotPnZtKCk7Ci0gICAgaWYgKGdsb2JhbE9iamVj
dE9iai0+aW5oZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pKQotICAgICAgICBhbnlXb3JsZEds
b2JhbE9iamVjdCA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvdyo+KHZtLCBzdGF0aWNf
Y2FzdDxKU0RPTVdpbmRvd1Byb3h5Kj4oZ2xvYmFsT2JqZWN0T2JqKS0+d2luZG93KCkpOworICAg
IGlmIChnbG9iYWxPYmplY3RPYmotPmluaGVyaXRzPEpTV2luZG93UHJveHk+KHZtKSkKKyAgICAg
ICAgYW55V29ybGRHbG9iYWxPYmplY3QgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3cq
Pih2bSwgc3RhdGljX2Nhc3Q8SlNXaW5kb3dQcm94eSo+KGdsb2JhbE9iamVjdE9iaiktPndpbmRv
dygpKTsKIAogICAgIGlmICghYW55V29ybGRHbG9iYWxPYmplY3QpCiAgICAgICAgIHJldHVybiBF
X0lOVkFMSURBUkc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338370</attachid>
            <date>2018-04-19 15:25:07 -0700</date>
            <delta_ts>2018-04-19 19:15:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184797-20180419152506.patch</filename>
            <type>text/plain</type>
            <size>69586</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjczODdjNWYyYzhjODhm
YWY2OWRhN2FmMjg2NzkzZDg0ZWI1MDQyMS4uZGEyMDAyYjc0NjQ1ZmI0NTliNzU4YWQ1MGExYTk4
NWU0ZTUwM2U2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE4LTA0LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEpTRE9NV2luZG93
UHJveHkgdG8gSlNXaW5kb3dQcm94eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTg0Nzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVuYW1lIEpTRE9NV2luZG93UHJveHkgdG8gSlNXaW5kb3dQcm94eSBm
b3IgY29uc2lzdGVuY3kgd2l0aCBXaW5kb3dQcm94eS4KKworICAgICAgICAqIFNvdXJjZXMudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy9JRExUeXBlcy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0V2luZG93UHJv
eHkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnByb3h5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OnRv
SlNET01XaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NV2luZG93Ojp0b1dyYXBwZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RXZlbnRUYXJnZXRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudFRhcmdldDo6
dG9XcmFwcGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNSZW1vdGVET01XaW5kb3dCYXNlOjpKU1JlbW90ZURP
TVdpbmRvd0Jhc2UpOgorICAgICAgICAoV2ViQ29yZTo6dG9KU1JlbW90ZURPTVdpbmRvdyk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmg6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
V2luZG93UHJveHk6OkpTV2luZG93UHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQ
cm94eTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQcm94eTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTV2luZG93UHJveHk6OmRlc3Ryb3kpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQcm94eTo6c2V0V2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTV2luZG93UHJveHk6OmF0dGFjaERlYnVnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
V2luZG93UHJveHk6OndyYXBwZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNXaW5kb3dQ
cm94eTo6dG9XcmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KU1dpbmRvd1Byb3h5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dpbmRvd1By
b3h5Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1Byb3h5LmguCisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAgICAgKFdlYkNvcmU6OnRv
SlNXaW5kb3dQcm94eSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjppbml0U2NyaXB0Rm9yV2lu
ZG93UHJveHkpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
aW5kb3dQcm94eTo6Y3JlYXRlSlNXaW5kb3dQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpXaW5k
b3dQcm94eTo6anNXaW5kb3dQcm94aWVzQXNWZWN0b3IgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2luZG93UHJveHk6OmNyZWF0ZUpTV2luZG93UHJveHlXaXRoSW5pdGlhbGl6ZWRTY3JpcHQp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dpbmRvd1Byb3h5Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpXaW5kb3dQcm94eTo6anNXaW5kb3dQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpXaW5kb3dQ
cm94eTo6ZXhpc3RpbmdKU1dpbmRvd1Byb3h5IGNvbnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEFkZFRvSW5jbHVkZXNGb3JJRExU
eXBlKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlT3Zlcmxv
YWREaXNwYXRjaGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3ZlcmxvYWRE
aXNwYXRjaGVyKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKiBwYWdlL2Nz
cC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNl
Y3VyaXR5UG9saWN5OjpkaWRDcmVhdGVXaW5kb3dQcm94eSBjb25zdCk6CisgICAgICAgICogcGFn
ZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg6CisKIDIwMTgtMDQtMTcgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgSW50ZXJuYWxGdW5jdGlvbiBoaWVy
YXJjaHkgc2hvdWxkIGJlIGluIElzb1N1YnNwYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5k
ZXggNDJiMjdjMGFkZmMyY2RkMTZhYjlmNjU2MWNkZjE4ZmVlOGZlMThjOC4uOTVkOTg0NWMwYjU0
ZjM1OWJjNjRjNmMzMDdkNDg1MWMzY2EzZmNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTgtMDQtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZW5hbWUgSlNET01XaW5kb3dQcm94eSB0byBKU1dpbmRvd1Byb3h5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQ3OTcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgSlNE
T01XaW5kb3dQcm94eSB0byBKU1dpbmRvd1Byb3h5IGZvciBjb25zaXN0ZW5jeSB3aXRoIFdpbmRv
d1Byb3h5LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC9I
ZWFwU25hcHNob3QuanM6CisgICAgICAgIChIZWFwU25hcHNob3QucHJvdG90eXBlLl9pc05vZGVH
bG9iYWxPYmplY3QpOgorCiAyMDE4LTA0LTE2ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZA
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENhbid0IHNlbGVjdCBhbmQgY29w
eSB0ZXh0IGZyb20gTmV0d29yayB0YWIgcG9wb3ZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CmluZGV4IGYwNzExNjlkYTc2MDc0YjgxM2Q5ZGY0YzE5MjdhNmVmNTc3ZTg5NTMuLjU0OTVjM2U3
OGRkZDg1ZGFkMWQ2M2IwMzU3ZDBmM2U3MmQyZjk0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wNC0xOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBKU0RPTVdpbmRvd1Byb3h5IHRvIEpTV2luZG93
UHJveHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NDc5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bmFtZSBKU0RPTVdpbmRvd1Byb3h5IHRvIEpTV2luZG93UHJveHkgZm9yIGNvbnNpc3RlbmN5IHdp
dGggV2luZG93UHJveHkuCisKKyAgICAgICAgKiBET00vRE9NVXRpbGl0eS5tbToKKyAgICAgICAg
KGNyZWF0ZURPTVdyYXBwZXIpOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAg
ICAgICgtW1dlYkZyYW1lIF9zdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0cmluZzp3
aXRoR2xvYmFsT2JqZWN0OmluU2NyaXB0V29ybGQ6XSk6CisKIDIwMTgtMDQtMTggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgV2luZG93UHJveHlDb250
cm9sbGVyIHRvIFdpbmRvd1Byb3h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNTgw
Y2JmNjVjYjE5ZGM2MzY5OTJkZWEyMTcxOGM5ZTZkOTViZTZiMi4uMmZiMDc1YjllMTY5NWRlNmM4
YzU2NmE5MzhlYmQ0NzM4NGZjM2ZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE4LTA0LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgUmVuYW1lIEpTRE9NV2luZG93UHJveHkgdG8gSlNXaW5kb3dQcm94eQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0Nzk3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIEpTRE9N
V2luZG93UHJveHkgdG8gSlNXaW5kb3dQcm94eSBmb3IgY29uc2lzdGVuY3kgd2l0aCBXaW5kb3dQ
cm94eS4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1lOjpzdHJp
bmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0SW5TY3JpcHRXb3JsZCk6CisKIDIwMTgtMDQtMTcgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
cm9sbG91dCBvZiByMjMwNjMyLiBSZWdyZXNzaW9uIGluIG1lbW9yeSB1c2FnZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggM2Y4Zjk5ODc3MDNhYWQ1YzUyYmNiMDQxNzk5YjIzZmQwMGU5ZTkxMy4uYTJiMzRl
MzQ2ZjQ3ZGVlMTI3ZTE5NTFhMTQyNTVmNWFmMzhhMzAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM5
MSw3ICszOTEsNiBAQCBiaW5kaW5ncy9qcy9KU0RPTVByb21pc2VEZWZlcnJlZC5jcHAKIGJpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAogYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcAotYmluZGluZ3MvanMv
SlNET01XaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL0pTRE9NV3JhcHBlci5jcHAKIGJpbmRp
bmdzL2pzL0pTRE9NV3JhcHBlckNhY2hlLmNwcAogYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3Rv
bS5jcHAKQEAgLTQ1Miw2ICs0NTEsNyBAQCBiaW5kaW5ncy9qcy9KU1dlYkdMMlJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwCiBiaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAKIGJpbmRpbmdzL2pzL0pTV2ViR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9y
Q3VzdG9tLmNwcAogYmluZGluZ3MvanMvSlNXZWJHUFVSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNw
cAorYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5jcHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmNwcAogYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUN1c3RvbS5j
cHAKIGJpbmRpbmdzL2pzL0pTV29ya2VyTmF2aWdhdG9yQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY4NWUxNGFi
MWVjZjIzODkwMWM1NzE4NmNlODMwZGRlNzJkYzI4ZDQuLmY4ZDQ0MjE1YjlhM2FmMmFjZjA0N2Iw
ZDZlODQxZWYxOGM0NTJkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3NDMsNyArMzc0Myw3IEBACiAJCUJDQkI4QUJBMTNG
MUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkI4QUI2MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJ
bnRlcnZhbFRyZWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0JCOEFCQjEzRjFBRkIwMDA3MzRERjAgLyogUE9EUmVkQmxhY2tUcmVlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JCOEFCNzEzRjFB
RkIwMDA3MzRERjAgLyogUE9EUmVkQmxhY2tUcmVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNCRDIxQUIwRTQxN0FENDAwQTA3MEYyIC8qIFVS
TEhhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
QkQyMUFBMEU0MTdBRDQwMEEwNzBGMiAvKiBVUkxIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNCRkI1M0QwRENEMjlDRjAwMTlCM0U1IC8q
IEpTRE9NV2luZG93UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1Byb3h5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQkNCRkI1
M0QwRENEMjlDRjAwMTlCM0U1IC8qIEpTV2luZG93UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBK
U1dpbmRvd1Byb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkNDMEU4NzYxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDMEU4NzQx
QkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5oICovOyB9OwogCQlCQ0M1QkUw
MTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M1QkRGRjBDMEU5MzExMDAxMUMyREIgLyog
SlNDU1NTdHlsZVNoZWV0LmggKi87IH07CiAJCUJDQ0JBRDQxMEMxOEMxNDIwMENFODkwRiAvKiBK
U0hUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0NCQUQzRjBDMThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjczOCw4
ICsxMjczOCw4IEBACiAJCUJDQkI4QUI2MTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRy
ZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUE9ESW50ZXJ2YWxUcmVlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkI4QUI3MTNGMUFGQjAwMDczNERGMCAv
KiBQT0RSZWRCbGFja1RyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUE9E
UmVkQmxhY2tUcmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkQyMUFBMEU0
MTdBRDQwMEEwNzBGMiAvKiBVUkxIYXNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFVSTEhhc2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNCRkI1M0EwRENE
MjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNET01XaW5kb3dQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1Byb3h5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NV2luZG93UHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8q
IEpTV2luZG93UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNXaW5kb3dQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQkZCNTNC
MERDRDI5Q0YwMDE5QjNFNSAvKiBKU1dpbmRvd1Byb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTV2luZG93UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkNDMEU4NzMxQkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MUGljdHVyZUVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0MwRTg3NDFCRkU3MEU5MDA4RjdGNTAg
LyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEhUTUxQaWN0dXJlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1
QkRGRTBDMEU5MzExMDAxMUMyREIgLyogSlNDU1NTdHlsZVNoZWV0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU1N0eWxlU2hlZXQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjM2ODUsOCArMjM2ODUsNiBAQAogCQkJCUJDNjkzMjcyMEQ3
RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCAqLywKIAkJCQk0NjBDQkYzMzFENEJD
Q0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmNwcCAqLywKIAkJCQk0NjBDQkYz
NDFENEJDQ0ZFMDA5MkU4OEUgLyogSlNET01XaW5kb3dQcm9wZXJ0aWVzLmggKi8sCi0JCQkJQkNC
RkI1M0EwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93UHJveHkuY3BwICovLAotCQkJCUJD
QkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1Byb3h5LmggKi8sCiAJCQkJNDE3
MEEyRTkxRDhDMENDMDAwMzE4NDUyIC8qIEpTRE9NV3JhcHBlci5jcHAgKi8sCiAJCQkJNjVFMEU5
NDMxMTMzQzg5RjAwQjRDQjEwIC8qIEpTRE9NV3JhcHBlci5oICovLAogCQkJCTdDNDVDOUNCMUUz
RThFNDkwMEFBQjU1OCAvKiBKU0RPTVdyYXBwZXJDYWNoZS5jcHAgKi8sCkBAIC0yMzcwMSw2ICsy
MzY5OSw4IEBACiAJCQkJNDZCQ0JCQzEyMDg1MDA4MDAwNzEwNjM4IC8qIEpTUmVtb3RlRE9NV2lu
ZG93QmFzZS5jcHAgKi8sCiAJCQkJNDZCQ0JCQzAyMDg1MDA3RjAwNzEwNjM4IC8qIEpTUmVtb3Rl
RE9NV2luZG93QmFzZS5oICovLAogCQkJCTkzMUFFM0I4MUZCODBFQUUwMEY1RUZCMiAvKiBKU1Zh
bHVlSW5XcmFwcGVkT2JqZWN0LmggKi8sCisJCQkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8q
IEpTV2luZG93UHJveHkuY3BwICovLAorCQkJCUJDQkZCNTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBK
U1dpbmRvd1Byb3h5LmggKi8sCiAJCQkJRTFDMzZEMzIwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlLmNwcCAqLywKIAkJCQlFMUMzNkQzMzBFQjBBMDk0MDA3NDEwQkMg
LyogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCAqLywKIAkJCQk3MDlBMDFGRDFFM0QwQkNDMDA2
QjBENEMgLyogTW9kdWxlRmV0Y2hGYWlsdXJlS2luZC5oICovLApAQCAtMjgzMTAsNyArMjgzMTAs
NiBAQAogCQkJCUJDNjkzMjc0MEQ3RTI5MzkwMEFFNDREMSAvKiBKU0RPTVdpbmRvd0Jhc2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTY1MkZCQkJDMERFMjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRv
d0N1c3RvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYwQ0JGMzYxRDRCQ0QwRTAwOTJFODhFIC8q
IEpTRE9NV2luZG93UHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNCRkI1M0QwRENE
MjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1
RTBFOTQ0MTEzM0M4OUYwMEI0Q0IxMCAvKiBKU0RPTVdyYXBwZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDNDVDOUQzMUUzRkNCRDcwMEFBQjU1OCAvKiBKU0RPTVdyYXBwZXJDYWNoZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNBODA2MUUxRTAzQjU4NTAwOEExRjI2IC8qIEpTRG91YmxlUmFuZ2Uu
aCBpbiBIZWFkZXJzICovLApAQCAtMjg5MTEsNiArMjg5MTAsNyBAQAogCQkJCTMxQzBGRjQwMEU0
Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNURBNUUwRkQxMDJCOTUzODAwMDg4Q0Y5IC8qIEpTV2ViU29ja2V0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2NURGMzIwNjA5RDFDQzYwMDAwQkUzMjUgLyogSlNXaGVlbEV2ZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlCQ0JGQjUzRDBEQ0QyOUNGMDAxOUIzRTUgLyogSlNXaW5kb3dQcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDQUE1QzYwRThCRDIzNjAwQTczRUNBIC8qIEpTV29y
a2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTgyNTY5MDBFRjJCMDJEMDA5MzMyNDIgLyogSlNX
b3JrZXJHbG9iYWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDMzZEMzUwRUIwQTA5NDAw
NzQxMEJDIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IDIzYTNlMzg4NDJmYzUxNGFhMTk5NzBjOGEyMDdi
YmM4NWJjYzE4MWYuLjVmZTc3ZTgzZjIzZGEyYjFiNDIwZDFlMzkyZGVhOWRjMDdmYjFjODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAtNTEsNyArNTEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlEYXRhOwogY2xhc3MgSURCVmFs
dWU7Ci1jbGFzcyBKU0RPTVdpbmRvd1Byb3h5OworY2xhc3MgSlNXaW5kb3dQcm94eTsKIGNsYXNz
IERPTVByb21pc2U7CiBjbGFzcyBTY2hlZHVsZWRBY3Rpb247CiAKQEAgLTI3NCw3ICsyNzQsNyBA
QCBzdHJ1Y3QgSURMU2NoZWR1bGVkQWN0aW9uIDogSURMVHlwZTxzdGQ6OnVuaXF1ZV9wdHI8U2No
ZWR1bGVkQWN0aW9uPj4geyB9OwogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSA6IElETFdyYXBwZXI8VD4geyB9OwogdGVtcGxhdGU8dHlwZW5hbWUg
VD4gc3RydWN0IElETEV2ZW50TGlzdGVuZXIgOiBJRExXcmFwcGVyPFQ+IHsgfTsKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBJRExYUGF0aE5TUmVzb2x2ZXIgOiBJRExXcmFwcGVyPFQ+IHsg
fTsKLXN0cnVjdCBJRExXaW5kb3dQcm94eSA6IElETFdyYXBwZXI8SlNET01XaW5kb3dQcm94eT4g
eyB9Oworc3RydWN0IElETFdpbmRvd1Byb3h5IDogSURMV3JhcHBlcjxKU1dpbmRvd1Byb3h5PiB7
IH07CiAKIHN0cnVjdCBJRExJREJLZXkgOiBJRExXcmFwcGVyPElEQktleT4geyB9Owogc3RydWN0
IElETElEQktleURhdGEgOiBJRExXcmFwcGVyPElEQktleURhdGE+IHsgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4IDA4MzBi
Y2ZiNWE1ODU3YWU2M2Q1ZmNkNjc5M2E3MzNhYmE5ODQ2ZDMuLjgxNjZjNzYxYTBmOGY1ZGJjY2U1
NDMwNWI3MmIzNDg4Nzg3ZDljOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtNTIsNyArNTIsNiBAQAogI2luY2x1ZGUgIkpT
RE9NV2luZG93QmFzZS5jcHAiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uY3BwIgogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93UHJvcGVydGllcy5jcHAiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQ
cm94eS5jcHAiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmNwcCIKICNpbmNsdWRlICJKU0RPTVdy
YXBwZXJDYWNoZS5jcHAiCiAjaW5jbHVkZSAiSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5j
cHAiCkBAIC05OCw2ICs5Nyw3IEBACiAjaW5jbHVkZSAiSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU1ZpZGVvVHJhY2tDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTVmlkZW9UcmFj
a0xpc3RDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTV2luZG93UHJveHkuY3BwIgogI2luY2x1ZGUg
IkpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcCIKICNpbmNsdWRlICJKU1dvcmtlckdsb2JhbFNj
b3BlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1hNTERvY3VtZW50Q3VzdG9tLmNwcCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFdpbmRvd1Byb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRXaW5kb3dQcm94eS5o
CmluZGV4IDY2MTQ4Y2JjZTU2OTlmMDRkZmNhYWJiNDE1MjA2MDc1M2FjNGIyNzguLjgyYzFmZjQ4
MTkyZGU1YzIwODJkYjdiM2RlMGFjM2JhYTRiMzRjN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFdpbmRvd1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0V2luZG93UHJveHkuaApAQCAtMjcsNyArMjcs
NyBAQAogCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRCYXNl
LmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQcm94eS5oIgorI2luY2x1ZGUgIkpTV2luZG93UHJv
eHkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCA1ODljOTQwNzFmMmI2YmQ3OGU2ZTViNzI0
Mjk0MzgzMTY0ODVlODY0Li5kYTM1YzE2ODEzYjc5MjU5YzJlYmQ0MTkzYTRkZmU3MjRlNTg4ZDE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAK
QEAgLTc4LDcgKzc4LDcgQEAgY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5k
b3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0gewogICAgICZkZWZhdWx0TGFuZ3Vh
Z2UKIH07CiAKLUpTRE9NV2luZG93QmFzZTo6SlNET01XaW5kb3dCYXNlKFZNJiB2bSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxET01XaW5kb3c+JiYgd2luZG93LCBKU0RPTVdpbmRvd1By
b3h5KiBwcm94eSkKK0pTRE9NV2luZG93QmFzZTo6SlNET01XaW5kb3dCYXNlKFZNJiB2bSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZlB0cjxET01XaW5kb3c+JiYgd2luZG93LCBKU1dpbmRvd1By
b3h5KiBwcm94eSkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsIHByb3h5
LT53b3JsZCgpLCAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKICAgICAsIG1fd2luZG93Q2xv
c2VXYXRjaHBvaW50cygod2luZG93ICYmIHdpbmRvdy0+ZnJhbWUoKSkgPyBJc1dhdGNoZWQgOiBJ
c0ludmFsaWRhdGVkKQogICAgICwgbV93cmFwcGVkKFdURk1vdmUod2luZG93KSkKQEAgLTg2LDcg
Kzg2LDcgQEAgSlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUmVmUHRyPERPTVdpbmRvdz4KIHsKIH0KIAotdm9pZCBKU0RPTVdpbmRv
d0Jhc2U6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01XaW5kb3dQcm94eSogcHJveHkpCit2
b2lkIEpTRE9NV2luZG93QmFzZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU1dpbmRvd1Byb3h5
KiBwcm94eSkKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSwgcHJveHkpOwogICAgIEFT
U0VSVChpbmhlcml0cyh2bSwgaW5mbygpKSk7CkBAIC0yNDMsNyArMjQzLDcgQEAgdm9pZCBKU0RP
TVdpbmRvd0Jhc2U6OndpbGxSZW1vdmVGcm9tV2luZG93UHJveHkoKQogICAgIHNldEN1cnJlbnRF
dmVudCgwKTsKIH0KIAotSlNET01XaW5kb3dQcm94eSogSlNET01XaW5kb3dCYXNlOjpwcm94eSgp
IGNvbnN0CitKU1dpbmRvd1Byb3h5KiBKU0RPTVdpbmRvd0Jhc2U6OnByb3h5KCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9wcm94eTsKIH0KQEAgLTI3MSw4ICsyNzEsOCBAQCBKU0RPTVdpbmRvdyog
dG9KU0RPTVdpbmRvdyhKU0M6OlZNJiB2bSwgSlNWYWx1ZSB2YWx1ZSkKICAgICAgICAgY29uc3Qg
Q2xhc3NJbmZvKiBjbGFzc0luZm8gPSBvYmplY3QtPmNsYXNzSW5mbyh2bSk7CiAgICAgICAgIGlm
IChjbGFzc0luZm8gPT0gSlNET01XaW5kb3c6OmluZm8oKSkKICAgICAgICAgICAgIHJldHVybiBq
c0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpOwotICAgICAgICBpZiAoY2xhc3NJbmZvID09IEpT
RE9NV2luZG93UHJveHk6OmluZm8oKSkKLSAgICAgICAgICAgIHJldHVybiBqc0R5bmFtaWNDYXN0
PEpTRE9NV2luZG93Kj4odm0sIGpzQ2FzdDxKU0RPTVdpbmRvd1Byb3h5Kj4ob2JqZWN0KS0+d2lu
ZG93KCkpOworICAgICAgICBpZiAoY2xhc3NJbmZvID09IEpTV2luZG93UHJveHk6OmluZm8oKSkK
KyAgICAgICAgICAgIHJldHVybiBqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93Kj4odm0sIGpzQ2Fz
dDxKU1dpbmRvd1Byb3h5Kj4ob2JqZWN0KS0+d2luZG93KCkpOwogICAgICAgICB2YWx1ZSA9IG9i
amVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDhj
ZGI5NGI0ZTgzYjJiOTBkNDU3MTVlNDg5ZmE1MmE4ZjQ0YmY2N2IuLmY1NzA5YTlmY2EwOTUxYTA0
YWQxN2Y2MGZhNTNlNWUzNjI0YmY2ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5oCkBAIC00NCwxMyArNDQsMTMgQEAgY2xhc3MgRE9NV3JhcHBlcldv
cmxkOwogY2xhc3MgRnJhbWU7CiBjbGFzcyBKU0RPTVdpbmRvdzsKIGNsYXNzIEpTRE9NV2luZG93
QmFzZVByaXZhdGU7Ci1jbGFzcyBKU0RPTVdpbmRvd1Byb3h5OworY2xhc3MgSlNXaW5kb3dQcm94
eTsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNET01XaW5kb3dCYXNlIDogcHVibGljIEpTRE9N
R2xvYmFsT2JqZWN0IHsKICAgICB0eXBlZGVmIEpTRE9NR2xvYmFsT2JqZWN0IEJhc2U7CiBwcm90
ZWN0ZWQ6Ci0gICAgSlNET01XaW5kb3dCYXNlKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJl
ZlB0cjxET01XaW5kb3c+JiYsIEpTRE9NV2luZG93UHJveHkqKTsKLSAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTQzo6Vk0mLCBKU0RPTVdpbmRvd1Byb3h5Kik7CisgICAgSlNET01XaW5kb3dCYXNl
KEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZlB0cjxET01XaW5kb3c+JiYsIEpTV2luZG93
UHJveHkqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBKU1dpbmRvd1Byb3h5
Kik7CiAKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCkBAIC02MCw3ICs2MCw3
IEBAIHB1YmxpYzoKICAgICBET01XaW5kb3cmIHdyYXBwZWQoKSBjb25zdCB7IHJldHVybiAqbV93
cmFwcGVkOyB9CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0OwogCi0gICAgLy8gQ2FsbGVkIGp1c3QgYmVmb3JlIHJlbW92aW5nIHRoaXMg
d2luZG93IGZyb20gdGhlIEpTRE9NV2luZG93UHJveHkuCisgICAgLy8gQ2FsbGVkIGp1c3QgYmVm
b3JlIHJlbW92aW5nIHRoaXMgd2luZG93IGZyb20gdGhlIEpTV2luZG93UHJveHkuCiAgICAgdm9p
ZCB3aWxsUmVtb3ZlRnJvbVdpbmRvd1Byb3h5KCk7CiAKICAgICBERUNMQVJFX0lORk87CkBAIC04
MCw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJpbnRFcnJvck1lc3NhZ2UoY29uc3Qg
U3RyaW5nJikgY29uc3Q7CiAKLSAgICBKU0RPTVdpbmRvd1Byb3h5KiBwcm94eSgpIGNvbnN0Owor
ICAgIEpTV2luZG93UHJveHkqIHByb3h5KCkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBmaXJl
RnJhbWVDbGVhcmVkV2F0Y2hwb2ludHNGb3JXaW5kb3coRE9NV2luZG93Kik7CiAKQEAgLTk3LDEx
ICs5NywxMSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHByb21pc2VSZWplY3Rpb25UcmFj
a2VyKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNQcm9taXNl
KiwgSlNDOjpKU1Byb21pc2VSZWplY3Rpb25PcGVyYXRpb24pOwogCiAgICAgUmVmUHRyPERPTVdp
bmRvdz4gbV93cmFwcGVkOwotICAgIEpTRE9NV2luZG93UHJveHkqIG1fcHJveHk7CisgICAgSlNX
aW5kb3dQcm94eSogbV9wcm94eTsKIH07CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgRE9NV2luZG93Jik7Ci0vLyBUaGUgZm9sbG93aW5nIHJldHVy
biBhIEpTRE9NV2luZG93UHJveHkgb3IganNOdWxsKCkKKy8vIFRoZSBmb2xsb3dpbmcgcmV0dXJu
IGEgSlNXaW5kb3dQcm94eSBvciBqc051bGwoKQogLy8gSlNET01HbG9iYWxPYmplY3QqIGlzIGln
bm9yZWQsIGFjY2Vzc2luZyBhIHdpbmRvdyBpbiBhbnkgY29udGV4dCB3aWxsIHVzZSB0aGF0IERP
TVdpbmRvdydzIHByb3RvdHlwZSBjaGFpbi4KIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiwgRE9NV2luZG93JiB3aW5kb3cp
IHsgcmV0dXJuIHRvSlMoc3RhdGUsIHdpbmRvdyk7IH0KIGlubGluZSBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IERPTVdpbmRvdyogd2luZG93KSB7IHJldHVybiB3aW5kb3cgPyB0b0pTKHN0YXRlLCBnbG9iYWxP
YmplY3QsICp3aW5kb3cpIDogSlNDOjpqc051bGwoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IGEyZjY4NDc1NDMzZDNlY2Q4
MTNiYWM2ZWVlZWQ5MDU4OTFkZjUwOTguLjkwMjE0Y2U2N2VjYmJjZWE0MjI2YjBmYWU2NzcxYjA5
MDI3NmQyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJKU0RPTUNvbnZlcnROdWxs
YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydE51bWJlcnMuaCIKICNpbmNsdWRlICJKU0RP
TUNvbnZlcnRTdHJpbmdzLmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQcm94eS5oIgogI2luY2x1
ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJK
U0hUTUxBdWRpb0VsZW1lbnQuaCIKQEAgLTM4LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKU0hUTUxP
cHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNJREJGYWN0b3J5LmgiCiAjaW5jbHVkZSAiSlNS
ZW1vdGVET01XaW5kb3cuaCIKKyNpbmNsdWRlICJKU1dpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAi
SlNXb3JrZXIuaCIKICNpbmNsdWRlICJMb2NhdGlvbi5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCIKQEAgLTQ2Nyw4ICs0NjcsOCBAQCBET01XaW5kb3cqIEpTRE9NV2luZG93
Ojp0b1dyYXBwZWQoVk0mIHZtLCBKU1ZhbHVlIHZhbHVlKQogICAgIEpTT2JqZWN0KiBvYmplY3Qg
PSBhc09iamVjdCh2YWx1ZSk7CiAgICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNET01XaW5kb3c+
KHZtKSkKICAgICAgICAgcmV0dXJuICZqc0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpLT53cmFw
cGVkKCk7Ci0gICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pKSB7
Ci0gICAgICAgIGlmIChhdXRvKiBqc0RPTVdpbmRvdyA9IGpzRHluYW1pY0Nhc3Q8SlNET01XaW5k
b3cqPih2bSwganNDYXN0PEpTRE9NV2luZG93UHJveHkqPihvYmplY3QpLT53aW5kb3coKSkpCisg
ICAgaWYgKG9iamVjdC0+aW5oZXJpdHM8SlNXaW5kb3dQcm94eT4odm0pKSB7CisgICAgICAgIGlm
IChhdXRvKiBqc0RPTVdpbmRvdyA9IGpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3cqPih2bSwganND
YXN0PEpTV2luZG93UHJveHkqPihvYmplY3QpLT53aW5kb3coKSkpCiAgICAgICAgICAgICByZXR1
cm4gJmpzRE9NV2luZG93LT53cmFwcGVkKCk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTg5ODI3MzQ0YzE5NGE4YjBiZDA5MTk0NDNkYTJl
NWVjMDZhZGVjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1Byb3h5LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDE1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBv
ZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
LSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTRE9N
V2luZG93UHJveHkuaCIKLQotI2luY2x1ZGUgIkFic3RyYWN0RnJhbWUuaCIKLSNpbmNsdWRlICJD
b21tb25WTS5oIgotI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkpTRE9NV2lu
ZG93LmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSAiSlNF
dmVudFRhcmdldC5oIgotI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKLSNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU09iamVjdC5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9u
Z0lubGluZXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jb25zdCBDbGFzc0luZm8gSlNE
T01XaW5kb3dQcm94eTo6c19pbmZvID0geyAiSlNET01XaW5kb3dQcm94eSIsICZCYXNlOjpzX2lu
Zm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNET01XaW5kb3dQcm94
eSkgfTsKLQotaW5saW5lIEpTRE9NV2luZG93UHJveHk6OkpTRE9NV2luZG93UHJveHkoVk0mIHZt
LCBTdHJ1Y3R1cmUmIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKLSAgICA6IEJh
c2Uodm0sICZzdHJ1Y3R1cmUpCi0gICAgLCBtX3dvcmxkKHdvcmxkKQotewotfQotCi12b2lkIEpT
RE9NV2luZG93UHJveHk6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgQWJzdHJhY3RET01XaW5kb3cm
IHdpbmRvdykKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgQVNTRVJUKGlu
aGVyaXRzKHZtLCBpbmZvKCkpKTsKLSAgICBzZXRXaW5kb3cod2luZG93KTsKLX0KLQotSlNET01X
aW5kb3dQcm94eSYgSlNET01XaW5kb3dQcm94eTo6Y3JlYXRlKEpTQzo6Vk0mIHZtLCBBYnN0cmFj
dERPTVdpbmRvdyYgd2luZG93LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQotewotICAgIGF1dG8m
IHN0cnVjdHVyZSA9ICpKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCAwLCBqc051bGwoKSwgSlND
OjpUeXBlSW5mbyhKU0M6OlB1cmVGb3J3YXJkaW5nUHJveHlUeXBlLCBTdHJ1Y3R1cmVGbGFncyks
IGluZm8oKSk7Ci0gICAgYXV0byYgcHJveHkgPSAqbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRl
Q2VsbDxKU0RPTVdpbmRvd1Byb3h5Pih2bS5oZWFwKSkgSlNET01XaW5kb3dQcm94eSh2bSwgc3Ry
dWN0dXJlLCB3b3JsZCk7Ci0gICAgcHJveHkuZmluaXNoQ3JlYXRpb24odm0sIHdpbmRvdyk7Ci0g
ICAgcmV0dXJuIHByb3h5OwotfQotCi12b2lkIEpTRE9NV2luZG93UHJveHk6OmRlc3Ryb3koSlND
ZWxsKiBjZWxsKQotewotICAgIHN0YXRpY19jYXN0PEpTRE9NV2luZG93UHJveHkqPihjZWxsKS0+
SlNET01XaW5kb3dQcm94eTo6fkpTRE9NV2luZG93UHJveHkoKTsKLX0KLQotdm9pZCBKU0RPTVdp
bmRvd1Byb3h5OjpzZXRXaW5kb3coVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgd2luZG93KQot
ewotICAgIEFTU0VSVCh3aW5kb3cuY2xhc3NJbmZvKCkgPT0gSlNET01XaW5kb3c6OmluZm8oKSB8
fCB3aW5kb3cuY2xhc3NJbmZvKCkgPT0gSlNSZW1vdGVET01XaW5kb3c6OmluZm8oKSk7Ci0gICAg
c2V0VGFyZ2V0KHZtLCAmd2luZG93KTsKLSAgICBzdHJ1Y3R1cmUoKS0+c2V0R2xvYmFsT2JqZWN0
KHZtLCAmd2luZG93KTsKLSAgICBHQ0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmdhcmJhZ2VDb2xs
ZWN0U29vbigpOwotfQotCi12b2lkIEpTRE9NV2luZG93UHJveHk6OnNldFdpbmRvdyhBYnN0cmFj
dERPTVdpbmRvdyYgZG9tV2luZG93KQotewotICAgIC8vIFJlcGxhY2luZyBKU0RPTVdpbmRvdyB2
aWEgdGVsbGluZyBKU0RPTVdpbmRvd1Byb3h5IHRvIHVzZSB0aGUgc2FtZSBET01XaW5kb3cgaXQg
YWxyZWFkeSB1c2VzIG1ha2VzIG5vIHNlbnNlLAotICAgIC8vIHNvIHdlJ2QgYmV0dGVyIG5ldmVy
IHRyeSB0by4KLSAgICBBU1NFUlQoIXdpbmRvdygpIHx8ICZkb21XaW5kb3cgIT0gJndyYXBwZWQo
KSk7Ci0KLSAgICBib29sIGlzUmVtb3RlRE9NV2luZG93ID0gaXM8UmVtb3RlRE9NV2luZG93Pihk
b21XaW5kb3cpOwotCi0gICAgVk0mIHZtID0gY29tbW9uVk0oKTsKLSAgICBhdXRvJiBwcm90b3R5
cGVTdHJ1Y3R1cmUgPSBpc1JlbW90ZURPTVdpbmRvdyA/ICpKU1JlbW90ZURPTVdpbmRvd1Byb3Rv
dHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRyLCBqc051bGwoKSkgOiAqSlNET01XaW5k
b3dQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgbnVsbHB0ciwganNOdWxsKCkpOwotCi0g
ICAgLy8gRXhwbGljaXRseSBwcm90ZWN0IHRoZSBwcm90b3R5cGUgc28gaXQgaXNuJ3QgY29sbGVj
dGVkIHdoZW4gd2UgYWxsb2NhdGUgdGhlIGdsb2JhbCBvYmplY3QuCi0gICAgLy8gKE9uY2UgdGhl
IGdsb2JhbCBvYmplY3QgaXMgZnVsbHkgY29uc3RydWN0ZWQsIGl0IHdpbGwgbWFyayBpdHMgb3du
IHByb3RvdHlwZS4pCi0gICAgLy8gRklYTUU6IFdoeSBkbyB3ZSBuZWVkIHRvIHByb3RlY3QgdGhp
cyB3aGVuIHRoZXJlJ3MgYSBwb2ludGVyIHRvIGl0IG9uIHRoZSBzdGFjaz8KLSAgICAvLyBQZXJo
YXBzIHRoZSBpc3N1ZSBpcyB0aGF0IHN0cnVjdHVyZSBvYmplY3RzIGFyZW4ndCBzZWVuIHdoZW4g
c2Nhbm5pbmcgdGhlIHN0YWNrPwotICAgIFN0cm9uZzxKU05vbkZpbmFsT2JqZWN0PiBwcm90b3R5
cGUodm0sIGlzUmVtb3RlRE9NV2luZG93ID8gc3RhdGljX2Nhc3Q8SlNOb25GaW5hbE9iamVjdCo+
KEpTUmVtb3RlRE9NV2luZG93UHJvdG90eXBlOjpjcmVhdGUodm0sIG51bGxwdHIsICZwcm90b3R5
cGVTdHJ1Y3R1cmUpKSA6IHN0YXRpY19jYXN0PEpTTm9uRmluYWxPYmplY3QqPihKU0RPTVdpbmRv
d1Byb3RvdHlwZTo6Y3JlYXRlKHZtLCBudWxscHRyLCAmcHJvdG90eXBlU3RydWN0dXJlKSkpOwot
Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIHdpbmRvdyA9IG51bGxwdHI7Ci0gICAgaWYgKGlzUmVt
b3RlRE9NV2luZG93KSB7Ci0gICAgICAgIGF1dG8mIHdpbmRvd1N0cnVjdHVyZSA9ICpKU1JlbW90
ZURPTVdpbmRvdzo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRyLCBwcm90b3R5cGUuZ2V0KCkp
OwotICAgICAgICB3aW5kb3cgPSBKU1JlbW90ZURPTVdpbmRvdzo6Y3JlYXRlKHZtLCAmd2luZG93
U3RydWN0dXJlLCBkb3duY2FzdDxSZW1vdGVET01XaW5kb3c+KGRvbVdpbmRvdyksIHRoaXMpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8mIHdpbmRvd1N0cnVjdHVyZSA9ICpKU0RPTVdpbmRv
dzo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRyLCBwcm90b3R5cGUuZ2V0KCkpOwotICAgICAg
ICB3aW5kb3cgPSBKU0RPTVdpbmRvdzo6Y3JlYXRlKHZtLCAmd2luZG93U3RydWN0dXJlLCBkb3du
Y2FzdDxET01XaW5kb3c+KGRvbVdpbmRvdyksIHRoaXMpOwotICAgIH0KLQotICAgIHByb3RvdHlw
ZS0+c3RydWN0dXJlKCktPnNldEdsb2JhbE9iamVjdCh2bSwgd2luZG93KTsKLQotICAgIGF1dG8m
IHByb3BlcnRpZXNTdHJ1Y3R1cmUgPSAqSlNET01XaW5kb3dQcm9wZXJ0aWVzOjpjcmVhdGVTdHJ1
Y3R1cmUodm0sIHdpbmRvdywgSlNFdmVudFRhcmdldDo6cHJvdG90eXBlKHZtLCAqd2luZG93KSk7
Ci0gICAgYXV0byYgcHJvcGVydGllcyA9ICpKU0RPTVdpbmRvd1Byb3BlcnRpZXM6OmNyZWF0ZSgm
cHJvcGVydGllc1N0cnVjdHVyZSwgKndpbmRvdyk7Ci0gICAgcHJvdG90eXBlLT5zdHJ1Y3R1cmUo
KS0+c2V0UHJvdG90eXBlV2l0aG91dFRyYW5zaXRpb24odm0sICZwcm9wZXJ0aWVzKTsKLQotICAg
IHNldFdpbmRvdyh2bSwgKndpbmRvdyk7Ci0KLSAgICBBU1NFUlQod2luZG93LT5nbG9iYWxPYmpl
Y3QoKSA9PSB3aW5kb3cpOwotICAgIEFTU0VSVChwcm90b3R5cGUtPmdsb2JhbE9iamVjdCgpID09
IHdpbmRvdyk7Ci19Ci0KLXZvaWQgSlNET01XaW5kb3dQcm94eTo6YXR0YWNoRGVidWdnZXIoSlND
OjpEZWJ1Z2dlciogZGVidWdnZXIpCi17Ci0gICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gd2luZG93
KCk7Ci0gICAgSlNMb2NrSG9sZGVyIGxvY2soZ2xvYmFsT2JqZWN0LT52bSgpKTsKLQotICAgIGlm
IChkZWJ1Z2dlcikKLSAgICAgICAgZGVidWdnZXItPmF0dGFjaChnbG9iYWxPYmplY3QpOwotICAg
IGVsc2UgaWYgKGF1dG8qIGN1cnJlbnREZWJ1Z2dlciA9IGdsb2JhbE9iamVjdC0+ZGVidWdnZXIo
KSkKLSAgICAgICAgY3VycmVudERlYnVnZ2VyLT5kZXRhY2goZ2xvYmFsT2JqZWN0LCBKU0M6OkRl
YnVnZ2VyOjpUZXJtaW5hdGluZ0RlYnVnZ2luZ1Nlc3Npb24pOwotfQotCi1BYnN0cmFjdERPTVdp
bmRvdyYgSlNET01XaW5kb3dQcm94eTo6d3JhcHBlZCgpIGNvbnN0Ci17Ci0gICAgYXV0byogd2lu
ZG93ID0gdGhpcy0+d2luZG93KCk7Ci0gICAgaWYgKGF1dG8qIGpzV2luZG93ID0ganNEeW5hbWlj
Q2FzdDxKU1JlbW90ZURPTVdpbmRvd0Jhc2UqPih3aW5kb3ctPnZtKCksIHdpbmRvdykpCi0gICAg
ICAgIHJldHVybiBqc1dpbmRvdy0+d3JhcHBlZCgpOwotICAgIHJldHVybiBqc0Nhc3Q8SlNET01X
aW5kb3dCYXNlKj4od2luZG93KS0+d3JhcHBlZCgpOwotfQotCi1BYnN0cmFjdERPTVdpbmRvdyog
SlNET01XaW5kb3dQcm94eTo6dG9XcmFwcGVkKFZNJiB2bSwgSlNPYmplY3QqIHZhbHVlKQotewot
ICAgIGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93UHJveHkqPih2bSwg
dmFsdWUpOwotICAgIHJldHVybiB3cmFwcGVyID8gJndyYXBwZXItPndyYXBwZWQoKSA6IG51bGxw
dHI7Ci19Ci0KLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBXaW5kb3dQcm94eSYgd2lu
ZG93UHJveHkpCi17Ci0gICAgcmV0dXJuICZ3aW5kb3dQcm94eS5qc1dpbmRvd1Byb3h5KGN1cnJl
bnRXb3JsZCgqc3RhdGUpKTsKLX0KLQotSlNET01XaW5kb3dQcm94eSYgdG9KU0RPTVdpbmRvd1By
b3h5KFdpbmRvd1Byb3h5JiB3aW5kb3dQcm94eSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKLXsK
LSAgICByZXR1cm4gd2luZG93UHJveHkuanNXaW5kb3dQcm94eSh3b3JsZCk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93UHJveHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODI5YzkyZWU2MTI1YzEy
MTZiODg4NjMxMjM2YjZhOWU5YmU3ZWM3Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1By
b3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA4LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRl
ICJKU0RPTVdpbmRvdy5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUHJveHkuaD4KLQot
bmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBEZWJ1Z2dlcjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBBYnN0cmFjdERPTVdpbmRvdzsKLWNsYXNzIEFic3RyYWN0RnJhbWU7Ci1jbGFz
cyBXaW5kb3dQcm94eTsKLQotY2xhc3MgSlNET01XaW5kb3dQcm94eSBmaW5hbCA6IHB1YmxpYyBK
U0M6OkpTUHJveHkgewotICAgIHVzaW5nIEJhc2UgPSBKU0M6OkpTUHJveHk7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIEpTRE9NV2luZG93UHJveHkmIGNyZWF0ZShKU0M6OlZNJiwgQWJzdHJhY3RET01X
aW5kb3cmLCBET01XcmFwcGVyV29ybGQmKTsKLSAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2Vs
bCopOwotCi0gICAgREVDTEFSRV9JTkZPOwotCi0gICAgSlNET01HbG9iYWxPYmplY3QqIHdpbmRv
dygpIGNvbnN0IHsgcmV0dXJuIEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4odGFyZ2V0
KCkpOyB9Ci0gICAgdm9pZCBzZXRXaW5kb3coSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7
Ci0gICAgdm9pZCBzZXRXaW5kb3coQWJzdHJhY3RET01XaW5kb3cmKTsKLQotICAgIEFic3RyYWN0
RE9NV2luZG93JiB3cmFwcGVkKCkgY29uc3Q7Ci0gICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIEFi
c3RyYWN0RE9NV2luZG93KiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6SlNPYmplY3QqKTsKLQot
ICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQoKSB7IHJldHVybiBtX3dvcmxkOyB9Ci0KLSAgICB2
b2lkIGF0dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsKLQotcHJpdmF0ZToKLSAgICBKU0RP
TVdpbmRvd1Byb3h5KEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSYsIERPTVdyYXBwZXJXb3JsZCYp
OwotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEFic3RyYWN0RE9NV2luZG93Jik7
Ci0KLSAgICBSZWY8RE9NV3JhcHBlcldvcmxkPiBtX3dvcmxkOwotfTsKLQotLy8gSlNET01XaW5k
b3dQcm94eSBpcyBhIGxpdHRsZSBvZGQgaW4gdGhhdCBpdCdzIG5vdCBhIHRyYWRpdGlvbmFsIHdy
YXBwZXIgYW5kIGhhcyBubyBiYWNrIHBvaW50ZXIuCi0vLyBJdCBpcywgaG93ZXZlciwgc3Ryb25n
bHkgb3duZWQgYnkgQWJzdHJhY3RGcmFtZSB2aWEgaXRzIFdpbmRvd1Byb3h5LCBzbyB3ZSBjYW4g
Z2V0IG9uZSBmcm9tIGEgV2luZG93UHJveHkuCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSosIFdpbmRvd1Byb3h5Jik7Ci1pbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCBXaW5kb3dQcm94eSogd2luZG93UHJveHkpIHsgcmV0dXJuIHdpbmRvd1By
b3h5ID8gdG9KUyhzdGF0ZSwgKndpbmRvd1Byb3h5KSA6IEpTQzo6anNOdWxsKCk7IH0KLQotSlNE
T01XaW5kb3dQcm94eSYgdG9KU0RPTVdpbmRvd1Byb3h5KFdpbmRvd1Byb3h5JiwgRE9NV3JhcHBl
cldvcmxkJik7Ci1pbmxpbmUgSlNET01XaW5kb3dQcm94eSogdG9KU0RPTVdpbmRvd1Byb3h5KFdp
bmRvd1Byb3h5KiB3aW5kb3dQcm94eSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkgeyByZXR1cm4g
d2luZG93UHJveHkgPyAmdG9KU0RPTVdpbmRvd1Byb3h5KCp3aW5kb3dQcm94eSwgd29ybGQpIDog
bnVsbHB0cjsgfQotCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXRDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFRhcmdldEN1c3RvbS5jcHAKaW5kZXggODliZGYxY2Jl
MWQ4ZjRmNTA2NDk1YmU5NjRiMGMxOWE5OGM2N2M1OS4uZjVmNzM3ZWY2NzIyODc0NTY1MzdhNjZh
ODYzNGQyNDI4YWU1OTJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudFRhcmdldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFdmVudFRhcmdldEN1c3RvbS5jcHAKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJFdmVu
dFRhcmdldEhlYWRlcnMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldEludGVyZmFjZXMuaCIKICNp
bmNsdWRlICJKU0RPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkpTRE9NV2luZG93UHJveHkuaCIKICNp
bmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJKU1dpbmRvd1Byb3h5LmgiCiAj
aW5jbHVkZSAiSlNXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIk9mZnNjcmVlbkNhbnZh
cy5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC02Miw3ICs2Miw3IEBAIEpT
VmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEV2ZW50VGFyZ2V0JiB0YXJnCiAKIEV2ZW50VGFyZ2V0KiBKU0V2ZW50VGFyZ2V0Ojp0b1dy
YXBwZWQoVk0mIHZtLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIFRSWV9UT19VTldSQVBfV0lUSF9J
TlRFUkZBQ0UoRE9NV2luZG93UHJveHkpCisgICAgVFJZX1RPX1VOV1JBUF9XSVRIX0lOVEVSRkFD
RShXaW5kb3dQcm94eSkKICAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKERPTVdpbmRv
dykKICAgICBUUllfVE9fVU5XUkFQX1dJVEhfSU5URVJGQUNFKFdvcmtlckdsb2JhbFNjb3BlKQog
ICAgIFRSWV9UT19VTldSQVBfV0lUSF9JTlRFUkZBQ0UoRXZlbnRUYXJnZXQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmNwcAppbmRl
eCA4ZWUxNGYwYzk0MjI4NTA0NzMxMTcyODkwNmJiZTA1MDkzZmI0YzRmLi40N2UzNDAxOTBmN2Iw
NDQ3MmRkY2NhNTdmMjY4ZTk2YTk5NDJmOWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUmVtb3RlRE9NV2luZG93QmFzZS5jcHAKQEAgLTI2LDggKzI2LDggQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1JlbW90ZURPTVdpbmRvd0Jhc2UuaCIK
IAotI2luY2x1ZGUgIkpTRE9NV2luZG93UHJveHkuaCIKICNpbmNsdWRlICJKU1JlbW90ZURPTVdp
bmRvdy5oIgorI2luY2x1ZGUgIkpTV2luZG93UHJveHkuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpT
QzsKIApAQCAtNTAsNyArNTAsNyBAQCBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU1Jl
bW90ZURPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPQogICAgIG51bGxw
dHIsIC8vIGRlZmF1bHRMYW5ndWFnZQogfTsKIAotSlNSZW1vdGVET01XaW5kb3dCYXNlOjpKU1Jl
bW90ZURPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmUHRyPFJl
bW90ZURPTVdpbmRvdz4mJiB3aW5kb3csIEpTRE9NV2luZG93UHJveHkqIHByb3h5KQorSlNSZW1v
dGVET01XaW5kb3dCYXNlOjpKU1JlbW90ZURPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUmVmUHRyPFJlbW90ZURPTVdpbmRvdz4mJiB3aW5kb3csIEpTV2luZG93UHJv
eHkqIHByb3h5KQogICAgIDogSlNET01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgcHJveHkt
PndvcmxkKCksICZzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQogICAgICwgbV93cmFwcGVkKFdU
Rk1vdmUod2luZG93KSkKIHsKQEAgLTc2LDggKzc2LDggQEAgSlNSZW1vdGVET01XaW5kb3cqIHRv
SlNSZW1vdGVET01XaW5kb3coSlNDOjpWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiAgICAgICAgIGNv
bnN0IENsYXNzSW5mbyogY2xhc3NJbmZvID0gb2JqZWN0LT5jbGFzc0luZm8odm0pOwogICAgICAg
ICBpZiAoY2xhc3NJbmZvID09IEpTUmVtb3RlRE9NV2luZG93OjppbmZvKCkpCiAgICAgICAgICAg
ICByZXR1cm4ganNDYXN0PEpTUmVtb3RlRE9NV2luZG93Kj4ob2JqZWN0KTsKLSAgICAgICAgaWYg
KGNsYXNzSW5mbyA9PSBKU0RPTVdpbmRvd1Byb3h5OjppbmZvKCkpCi0gICAgICAgICAgICByZXR1
cm4ganNEeW5hbWljQ2FzdDxKU1JlbW90ZURPTVdpbmRvdyo+KHZtLCBqc0Nhc3Q8SlNET01XaW5k
b3dQcm94eSo+KG9iamVjdCktPndpbmRvdygpKTsKKyAgICAgICAgaWYgKGNsYXNzSW5mbyA9PSBK
U1dpbmRvd1Byb3h5OjppbmZvKCkpCisgICAgICAgICAgICByZXR1cm4ganNEeW5hbWljQ2FzdDxK
U1JlbW90ZURPTVdpbmRvdyo+KHZtLCBqc0Nhc3Q8SlNXaW5kb3dQcm94eSo+KG9iamVjdCktPndp
bmRvdygpKTsKICAgICAgICAgdmFsdWUgPSBvYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSk7
CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNSZW1vdGVET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JlbW90ZURPTVdpbmRvd0Jhc2UuaAppbmRleCA4YjE4MjVmZGFiN2IzMjQzMTA1
ZGQyZGM4NjQyZDlhYTIxYzY5NDI1Li42NGRmY2QzOTU5NjA2ZGMyNjE5MGI0YTZmMjE3ZmVmZTk4
YWQzZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURP
TVdpbmRvd0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JlbW90ZURP
TVdpbmRvd0Jhc2UuaApAQCAtMzEsMTIgKzMxLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgSlNET01XaW5kb3dQcm94eTsKK2NsYXNzIEpTV2luZG93UHJveHk7CiBjbGFzcyBK
U1JlbW90ZURPTVdpbmRvdzsKIAogY2xhc3MgV0VCQ09SRV9FWFBPUlQgSlNSZW1vdGVET01XaW5k
b3dCYXNlIDogcHVibGljIEpTRE9NR2xvYmFsT2JqZWN0IHsKIHByb3RlY3RlZDoKLSAgICBKU1Jl
bW90ZURPTVdpbmRvd0Jhc2UoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmUHRyPFJlbW90
ZURPTVdpbmRvdz4mJiwgSlNET01XaW5kb3dQcm94eSopOworICAgIEpTUmVtb3RlRE9NV2luZG93
QmFzZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBSZWZQdHI8UmVtb3RlRE9NV2luZG93PiYm
LCBKU1dpbmRvd1Byb3h5Kik7CiAKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2luZG93UHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjljZjViNTkwNTBhM2M1MTkwN2RlNDQwNzNhOTYyY2JjNGM4ZGI3MjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmNwcApAQCAt
MCwwICsxLDE1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1dpbmRvd1Byb3h5Lmgi
CisKKyNpbmNsdWRlICJBYnN0cmFjdEZyYW1lLmgiCisjaW5jbHVkZSAiQ29tbW9uVk0uaCIKKyNp
bmNsdWRlICJHQ0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgorI2luY2x1
ZGUgIkpTRE9NV2luZG93UHJvcGVydGllcy5oIgorI2luY2x1ZGUgIkpTRXZlbnRUYXJnZXQuaCIK
KyNpbmNsdWRlICJKU1JlbW90ZURPTVdpbmRvdy5oIgorI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9EZWJ1Z2dlci5oPgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25n
SW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IENsYXNzSW5mbyBKU1dp
bmRvd1Byb3h5OjpzX2luZm8gPSB7ICJKU1dpbmRvd1Byb3h5IiwgJkJhc2U6OnNfaW5mbywgbnVs
bHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dpbmRvd1Byb3h5KSB9OworCitp
bmxpbmUgSlNXaW5kb3dQcm94eTo6SlNXaW5kb3dQcm94eShWTSYgdm0sIFN0cnVjdHVyZSYgc3Ry
dWN0dXJlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQorICAgIDogQmFzZSh2bSwgJnN0cnVjdHVy
ZSkKKyAgICAsIG1fd29ybGQod29ybGQpCit7Cit9CisKK3ZvaWQgSlNXaW5kb3dQcm94eTo6Zmlu
aXNoQ3JlYXRpb24oVk0mIHZtLCBBYnN0cmFjdERPTVdpbmRvdyYgd2luZG93KQoreworICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkp
OworICAgIHNldFdpbmRvdyh3aW5kb3cpOworfQorCitKU1dpbmRvd1Byb3h5JiBKU1dpbmRvd1By
b3h5OjpjcmVhdGUoSlNDOjpWTSYgdm0sIEFic3RyYWN0RE9NV2luZG93JiB3aW5kb3csIERPTVdy
YXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgYXV0byYgc3RydWN0dXJlID0gKkpTQzo6U3RydWN0
dXJlOjpjcmVhdGUodm0sIDAsIGpzTnVsbCgpLCBKU0M6OlR5cGVJbmZvKEpTQzo6UHVyZUZvcndh
cmRpbmdQcm94eVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICBhdXRvJiBwcm94
eSA9ICpuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTV2luZG93UHJveHk+KHZtLmhl
YXApKSBKU1dpbmRvd1Byb3h5KHZtLCBzdHJ1Y3R1cmUsIHdvcmxkKTsKKyAgICBwcm94eS5maW5p
c2hDcmVhdGlvbih2bSwgd2luZG93KTsKKyAgICByZXR1cm4gcHJveHk7Cit9CisKK3ZvaWQgSlNX
aW5kb3dQcm94eTo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCit7CisgICAgc3RhdGljX2Nhc3Q8SlNX
aW5kb3dQcm94eSo+KGNlbGwpLT5KU1dpbmRvd1Byb3h5Ojp+SlNXaW5kb3dQcm94eSgpOworfQor
Cit2b2lkIEpTV2luZG93UHJveHk6OnNldFdpbmRvdyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0
JiB3aW5kb3cpCit7CisgICAgQVNTRVJUKHdpbmRvdy5jbGFzc0luZm8oKSA9PSBKU0RPTVdpbmRv
dzo6aW5mbygpIHx8IHdpbmRvdy5jbGFzc0luZm8oKSA9PSBKU1JlbW90ZURPTVdpbmRvdzo6aW5m
bygpKTsKKyAgICBzZXRUYXJnZXQodm0sICZ3aW5kb3cpOworICAgIHN0cnVjdHVyZSgpLT5zZXRH
bG9iYWxPYmplY3Qodm0sICZ3aW5kb3cpOworICAgIEdDQ29udHJvbGxlcjo6c2luZ2xldG9uKCku
Z2FyYmFnZUNvbGxlY3RTb29uKCk7Cit9CisKK3ZvaWQgSlNXaW5kb3dQcm94eTo6c2V0V2luZG93
KEFic3RyYWN0RE9NV2luZG93JiBkb21XaW5kb3cpCit7CisgICAgLy8gUmVwbGFjaW5nIEpTRE9N
V2luZG93IHZpYSB0ZWxsaW5nIEpTV2luZG93UHJveHkgdG8gdXNlIHRoZSBzYW1lIERPTVdpbmRv
dyBpdCBhbHJlYWR5IHVzZXMgbWFrZXMgbm8gc2Vuc2UsCisgICAgLy8gc28gd2UnZCBiZXR0ZXIg
bmV2ZXIgdHJ5IHRvLgorICAgIEFTU0VSVCghd2luZG93KCkgfHwgJmRvbVdpbmRvdyAhPSAmd3Jh
cHBlZCgpKTsKKworICAgIGJvb2wgaXNSZW1vdGVET01XaW5kb3cgPSBpczxSZW1vdGVET01XaW5k
b3c+KGRvbVdpbmRvdyk7CisKKyAgICBWTSYgdm0gPSBjb21tb25WTSgpOworICAgIGF1dG8mIHBy
b3RvdHlwZVN0cnVjdHVyZSA9IGlzUmVtb3RlRE9NV2luZG93ID8gKkpTUmVtb3RlRE9NV2luZG93
UHJvdG90eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIG51bGxwdHIsIGpzTnVsbCgpKSA6ICpKU0RP
TVdpbmRvd1Byb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBudWxscHRyLCBqc051bGwoKSk7
CisKKyAgICAvLyBFeHBsaWNpdGx5IHByb3RlY3QgdGhlIHByb3RvdHlwZSBzbyBpdCBpc24ndCBj
b2xsZWN0ZWQgd2hlbiB3ZSBhbGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVjdC4KKyAgICAvLyAoT25j
ZSB0aGUgZ2xvYmFsIG9iamVjdCBpcyBmdWxseSBjb25zdHJ1Y3RlZCwgaXQgd2lsbCBtYXJrIGl0
cyBvd24gcHJvdG90eXBlLikKKyAgICAvLyBGSVhNRTogV2h5IGRvIHdlIG5lZWQgdG8gcHJvdGVj
dCB0aGlzIHdoZW4gdGhlcmUncyBhIHBvaW50ZXIgdG8gaXQgb24gdGhlIHN0YWNrPworICAgIC8v
IFBlcmhhcHMgdGhlIGlzc3VlIGlzIHRoYXQgc3RydWN0dXJlIG9iamVjdHMgYXJlbid0IHNlZW4g
d2hlbiBzY2FubmluZyB0aGUgc3RhY2s/CisgICAgU3Ryb25nPEpTTm9uRmluYWxPYmplY3Q+IHBy
b3RvdHlwZSh2bSwgaXNSZW1vdGVET01XaW5kb3cgPyBzdGF0aWNfY2FzdDxKU05vbkZpbmFsT2Jq
ZWN0Kj4oSlNSZW1vdGVET01XaW5kb3dQcm90b3R5cGU6OmNyZWF0ZSh2bSwgbnVsbHB0ciwgJnBy
b3RvdHlwZVN0cnVjdHVyZSkpIDogc3RhdGljX2Nhc3Q8SlNOb25GaW5hbE9iamVjdCo+KEpTRE9N
V2luZG93UHJvdG90eXBlOjpjcmVhdGUodm0sIG51bGxwdHIsICZwcm90b3R5cGVTdHJ1Y3R1cmUp
KSk7CisKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogd2luZG93ID0gbnVsbHB0cjsKKyAgICBpZiAo
aXNSZW1vdGVET01XaW5kb3cpIHsKKyAgICAgICAgYXV0byYgd2luZG93U3RydWN0dXJlID0gKkpT
UmVtb3RlRE9NV2luZG93OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIG51bGxwdHIsIHByb3RvdHlwZS5n
ZXQoKSk7CisgICAgICAgIHdpbmRvdyA9IEpTUmVtb3RlRE9NV2luZG93OjpjcmVhdGUodm0sICZ3
aW5kb3dTdHJ1Y3R1cmUsIGRvd25jYXN0PFJlbW90ZURPTVdpbmRvdz4oZG9tV2luZG93KSwgdGhp
cyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byYgd2luZG93U3RydWN0dXJlID0gKkpTRE9N
V2luZG93OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIG51bGxwdHIsIHByb3RvdHlwZS5nZXQoKSk7Cisg
ICAgICAgIHdpbmRvdyA9IEpTRE9NV2luZG93OjpjcmVhdGUodm0sICZ3aW5kb3dTdHJ1Y3R1cmUs
IGRvd25jYXN0PERPTVdpbmRvdz4oZG9tV2luZG93KSwgdGhpcyk7CisgICAgfQorCisgICAgcHJv
dG90eXBlLT5zdHJ1Y3R1cmUoKS0+c2V0R2xvYmFsT2JqZWN0KHZtLCB3aW5kb3cpOworCisgICAg
YXV0byYgcHJvcGVydGllc1N0cnVjdHVyZSA9ICpKU0RPTVdpbmRvd1Byb3BlcnRpZXM6OmNyZWF0
ZVN0cnVjdHVyZSh2bSwgd2luZG93LCBKU0V2ZW50VGFyZ2V0Ojpwcm90b3R5cGUodm0sICp3aW5k
b3cpKTsKKyAgICBhdXRvJiBwcm9wZXJ0aWVzID0gKkpTRE9NV2luZG93UHJvcGVydGllczo6Y3Jl
YXRlKCZwcm9wZXJ0aWVzU3RydWN0dXJlLCAqd2luZG93KTsKKyAgICBwcm90b3R5cGUtPnN0cnVj
dHVyZSgpLT5zZXRQcm90b3R5cGVXaXRob3V0VHJhbnNpdGlvbih2bSwgJnByb3BlcnRpZXMpOwor
CisgICAgc2V0V2luZG93KHZtLCAqd2luZG93KTsKKworICAgIEFTU0VSVCh3aW5kb3ctPmdsb2Jh
bE9iamVjdCgpID09IHdpbmRvdyk7CisgICAgQVNTRVJUKHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0
KCkgPT0gd2luZG93KTsKK30KKwordm9pZCBKU1dpbmRvd1Byb3h5OjphdHRhY2hEZWJ1Z2dlcihK
U0M6OkRlYnVnZ2VyKiBkZWJ1Z2dlcikKK3sKKyAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSB3aW5k
b3coKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9jayhnbG9iYWxPYmplY3QtPnZtKCkpOworCisgICAg
aWYgKGRlYnVnZ2VyKQorICAgICAgICBkZWJ1Z2dlci0+YXR0YWNoKGdsb2JhbE9iamVjdCk7Cisg
ICAgZWxzZSBpZiAoYXV0byogY3VycmVudERlYnVnZ2VyID0gZ2xvYmFsT2JqZWN0LT5kZWJ1Z2dl
cigpKQorICAgICAgICBjdXJyZW50RGVidWdnZXItPmRldGFjaChnbG9iYWxPYmplY3QsIEpTQzo6
RGVidWdnZXI6OlRlcm1pbmF0aW5nRGVidWdnaW5nU2Vzc2lvbik7Cit9CisKK0Fic3RyYWN0RE9N
V2luZG93JiBKU1dpbmRvd1Byb3h5Ojp3cmFwcGVkKCkgY29uc3QKK3sKKyAgICBhdXRvKiB3aW5k
b3cgPSB0aGlzLT53aW5kb3coKTsKKyAgICBpZiAoYXV0byoganNXaW5kb3cgPSBqc0R5bmFtaWND
YXN0PEpTUmVtb3RlRE9NV2luZG93QmFzZSo+KHdpbmRvdy0+dm0oKSwgd2luZG93KSkKKyAgICAg
ICAgcmV0dXJuIGpzV2luZG93LT53cmFwcGVkKCk7CisgICAgcmV0dXJuIGpzQ2FzdDxKU0RPTVdp
bmRvd0Jhc2UqPih3aW5kb3cpLT53cmFwcGVkKCk7Cit9CisKK0Fic3RyYWN0RE9NV2luZG93KiBK
U1dpbmRvd1Byb3h5Ojp0b1dyYXBwZWQoVk0mIHZtLCBKU09iamVjdCogdmFsdWUpCit7CisgICAg
YXV0byogd3JhcHBlciA9IGpzRHluYW1pY0Nhc3Q8SlNXaW5kb3dQcm94eSo+KHZtLCB2YWx1ZSk7
CisgICAgcmV0dXJuIHdyYXBwZXIgPyAmd3JhcHBlci0+d3JhcHBlZCgpIDogbnVsbHB0cjsKK30K
KworSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIFdpbmRvd1Byb3h5JiB3aW5kb3dQcm94
eSkKK3sKKyAgICByZXR1cm4gJndpbmRvd1Byb3h5LmpzV2luZG93UHJveHkoY3VycmVudFdvcmxk
KCpzdGF0ZSkpOworfQorCitKU1dpbmRvd1Byb3h5JiB0b0pTV2luZG93UHJveHkoV2luZG93UHJv
eHkmIHdpbmRvd1Byb3h5LCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIHJldHVybiB3
aW5kb3dQcm94eS5qc1dpbmRvd1Byb3h5KHdvcmxkKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94
eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXaW5kb3dQcm94eS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ4MTYxNWI2NzZkNTBlNTBjM2ZlNDFiOTljNTEyZGFkMzFjMGQ5MWYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dpbmRvd1Byb3h5LmgKQEAgLTAs
MCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKKyNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9KU1Byb3h5Lmg+CisKK25hbWVzcGFjZSBKU0MgeworY2xhc3MgRGVi
dWdnZXI7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQWJzdHJhY3RET01XaW5k
b3c7CitjbGFzcyBBYnN0cmFjdEZyYW1lOworY2xhc3MgV2luZG93UHJveHk7CisKK2NsYXNzIEpT
V2luZG93UHJveHkgZmluYWwgOiBwdWJsaWMgSlNDOjpKU1Byb3h5IHsKKyAgICB1c2luZyBCYXNl
ID0gSlNDOjpKU1Byb3h5OworcHVibGljOgorICAgIHN0YXRpYyBKU1dpbmRvd1Byb3h5JiBjcmVh
dGUoSlNDOjpWTSYsIEFic3RyYWN0RE9NV2luZG93JiwgRE9NV3JhcHBlcldvcmxkJik7CisgICAg
c3RhdGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKKworICAgIERFQ0xBUkVfSU5GTzsKKworICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiB3aW5kb3coKSBjb25zdCB7IHJldHVybiBKU0M6OmpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KHRhcmdldCgpKTsgfQorICAgIHZvaWQgc2V0V2luZG93KEpTQzo6
Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOworICAgIHZvaWQgc2V0V2luZG93KEFic3RyYWN0RE9N
V2luZG93Jik7CisKKyAgICBBYnN0cmFjdERPTVdpbmRvdyYgd3JhcHBlZCgpIGNvbnN0OworICAg
IHN0YXRpYyBXRUJDT1JFX0VYUE9SVCBBYnN0cmFjdERPTVdpbmRvdyogdG9XcmFwcGVkKEpTQzo6
Vk0mLCBKU0M6OkpTT2JqZWN0Kik7CisKKyAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkKCkgeyBy
ZXR1cm4gbV93b3JsZDsgfQorCisgICAgdm9pZCBhdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2Vy
Kik7CisKK3ByaXZhdGU6CisgICAgSlNXaW5kb3dQcm94eShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1
cmUmLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0m
LCBBYnN0cmFjdERPTVdpbmRvdyYpOworCisgICAgUmVmPERPTVdyYXBwZXJXb3JsZD4gbV93b3Js
ZDsKK307CisKKy8vIEpTV2luZG93UHJveHkgaXMgYSBsaXR0bGUgb2RkIGluIHRoYXQgaXQncyBu
b3QgYSB0cmFkaXRpb25hbCB3cmFwcGVyIGFuZCBoYXMgbm8gYmFjayBwb2ludGVyLgorLy8gSXQg
aXMsIGhvd2V2ZXIsIHN0cm9uZ2x5IG93bmVkIGJ5IEFic3RyYWN0RnJhbWUgdmlhIGl0cyBXaW5k
b3dQcm94eSwgc28gd2UgY2FuIGdldCBvbmUgZnJvbSBhIFdpbmRvd1Byb3h5LgorSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBXaW5kb3dQcm94eSYpOworaW5saW5lIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgV2luZG93UHJveHkqIHdpbmRvd1Byb3h5
KSB7IHJldHVybiB3aW5kb3dQcm94eSA/IHRvSlMoc3RhdGUsICp3aW5kb3dQcm94eSkgOiBKU0M6
OmpzTnVsbCgpOyB9CisKK0pTV2luZG93UHJveHkmIHRvSlNXaW5kb3dQcm94eShXaW5kb3dQcm94
eSYsIERPTVdyYXBwZXJXb3JsZCYpOworaW5saW5lIEpTV2luZG93UHJveHkqIHRvSlNXaW5kb3dQ
cm94eShXaW5kb3dQcm94eSogd2luZG93UHJveHksIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpIHsg
cmV0dXJuIHdpbmRvd1Byb3h5ID8gJnRvSlNXaW5kb3dQcm94eSgqd2luZG93UHJveHksIHdvcmxk
KSA6IG51bGxwdHI7IH0KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDgzODdiYjM0N2Qy
NmNhZWZkODAxNDBiZjBmZmU5OGYzOGRkMjM3OTQuLjZlMmU0MDgyNjRkYmYxOGM0ODliOWM5ODdi
NTA5YTg1ZmUwMDYyYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVy
OjpnZXRBbGxXb3JsZHMoVmVjdG9yPFJlZjxET01XcmFwcGVyV29ybGQ+PiYgd29ybGRzKQogICAg
IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4oY29tbW9uVk0oKS5jbGllbnREYXRhKS0+Z2V0
QWxsV29ybGRzKHdvcmxkcyk7CiB9CiAKLXZvaWQgU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlw
dEZvcldpbmRvd1Byb3h5KEpTRE9NV2luZG93UHJveHkmIHdpbmRvd1Byb3h5KQordm9pZCBTY3Jp
cHRDb250cm9sbGVyOjppbml0U2NyaXB0Rm9yV2luZG93UHJveHkoSlNXaW5kb3dQcm94eSYgd2lu
ZG93UHJveHkpCiB7CiAgICAgYXV0byYgd29ybGQgPSB3aW5kb3dQcm94eS53b3JsZCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmgKaW5kZXggMmJm
YWQyYTU1MWI3ZDMwYjY0N2MyYmYxMjg5ZGEzNDcwNmM3YmRiNC4uZDZlNTkwMDFmMjhjMjUzNjJh
ZGRhNDM3ZmQ4OWRhMGUxOTNiY2JkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuaApAQCAtMjIsNyArMjIsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQcm94eS5o
IgorI2luY2x1ZGUgIkpTV2luZG93UHJveHkuaCIKICNpbmNsdWRlICJXaW5kb3dQcm94eS5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1N0cm9uZy5oPgpAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBOUE9iamVjdCogd2luZG93U2NyaXB0TlBPYmplY3QoKTsKICNlbmRpZgogCi0gICAgdm9p
ZCBpbml0U2NyaXB0Rm9yV2luZG93UHJveHkoSlNET01XaW5kb3dQcm94eSYpOworICAgIHZvaWQg
aW5pdFNjcmlwdEZvcldpbmRvd1Byb3h5KEpTV2luZG93UHJveHkmKTsKIAogcHJpdmF0ZToKICAg
ICB2b2lkIHNldHVwTW9kdWxlU2NyaXB0SGFuZGxlcnMoTG9hZGFibGVNb2R1bGVTY3JpcHQmLCBK
U0M6OkpTSW50ZXJuYWxQcm9taXNlJiwgRE9NV3JhcHBlcldvcmxkJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5jcHAKaW5kZXggOWQ3YTYzNGJjZDJlZWM1ZGQxZGVj
MWZiYzNhMjhhYTAyNTZiZTM2YS4uZDMxZGZkYjQ1MmE0OTVkZDZlYzExZGQ3MDhlNDg2ODYxNzkw
MDhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2luZG93UHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmNwcApAQCAt
NzIsMjYgKzcyLDI2IEBAIHZvaWQgV2luZG93UHJveHk6OmRlc3Ryb3lKU1dpbmRvd1Byb3h5KERP
TVdyYXBwZXJXb3JsZCYgd29ybGQpCiAgICAgd29ybGQuZGlkRGVzdHJveVdpbmRvd1Byb3h5KHRo
aXMpOwogfQogCi1KU0RPTVdpbmRvd1Byb3h5JiBXaW5kb3dQcm94eTo6Y3JlYXRlSlNXaW5kb3dQ
cm94eShET01XcmFwcGVyV29ybGQmIHdvcmxkKQorSlNXaW5kb3dQcm94eSYgV2luZG93UHJveHk6
OmNyZWF0ZUpTV2luZG93UHJveHkoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKIHsKICAgICBBU1NF
UlQoIW1fanNXaW5kb3dQcm94aWVzLmNvbnRhaW5zKCZ3b3JsZCkpOwogICAgIEFTU0VSVChtX2Zy
YW1lLndpbmRvdygpKTsKIAogICAgIFZNJiB2bSA9IHdvcmxkLnZtKCk7CiAKLSAgICBTdHJvbmc8
SlNET01XaW5kb3dQcm94eT4ganNXaW5kb3dQcm94eSh2bSwgJkpTRE9NV2luZG93UHJveHk6OmNy
ZWF0ZSh2bSwgKm1fZnJhbWUud2luZG93KCksIHdvcmxkKSk7Ci0gICAgU3Ryb25nPEpTRE9NV2lu
ZG93UHJveHk+IGpzV2luZG93UHJveHkyKGpzV2luZG93UHJveHkpOworICAgIFN0cm9uZzxKU1dp
bmRvd1Byb3h5PiBqc1dpbmRvd1Byb3h5KHZtLCAmSlNXaW5kb3dQcm94eTo6Y3JlYXRlKHZtLCAq
bV9mcmFtZS53aW5kb3coKSwgd29ybGQpKTsKKyAgICBTdHJvbmc8SlNXaW5kb3dQcm94eT4ganNX
aW5kb3dQcm94eTIoanNXaW5kb3dQcm94eSk7CiAgICAgbV9qc1dpbmRvd1Byb3hpZXMuYWRkKCZ3
b3JsZCwganNXaW5kb3dQcm94eSk7CiAgICAgd29ybGQuZGlkQ3JlYXRlV2luZG93UHJveHkodGhp
cyk7CiAgICAgcmV0dXJuICpqc1dpbmRvd1Byb3h5LmdldCgpOwogfQogCi1WZWN0b3I8SlNDOjpT
dHJvbmc8SlNET01XaW5kb3dQcm94eT4+IFdpbmRvd1Byb3h5Ojpqc1dpbmRvd1Byb3hpZXNBc1Zl
Y3RvcigpIGNvbnN0CitWZWN0b3I8SlNDOjpTdHJvbmc8SlNXaW5kb3dQcm94eT4+IFdpbmRvd1By
b3h5Ojpqc1dpbmRvd1Byb3hpZXNBc1ZlY3RvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvcHlU
b1ZlY3RvcihtX2pzV2luZG93UHJveGllcy52YWx1ZXMoKSk7CiB9CiAKLUpTRE9NV2luZG93UHJv
eHkmIFdpbmRvd1Byb3h5OjpjcmVhdGVKU1dpbmRvd1Byb3h5V2l0aEluaXRpYWxpemVkU2NyaXB0
KERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCitKU1dpbmRvd1Byb3h5JiBXaW5kb3dQcm94eTo6Y3Jl
YXRlSlNXaW5kb3dQcm94eVdpdGhJbml0aWFsaXplZFNjcmlwdChET01XcmFwcGVyV29ybGQmIHdv
cmxkKQogewogICAgIEpTTG9ja0hvbGRlciBsb2NrKHdvcmxkLnZtKCkpOwogICAgIGF1dG8mIHdp
bmRvd1Byb3h5ID0gY3JlYXRlSlNXaW5kb3dQcm94eSh3b3JsZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2luZG93UHJveHkuaAppbmRleCA5NGUzNzI5YWQwNzBiODU0M2EyZTYzMTM1ZGFl
OTU5NDgyZDE2M2QzLi5mYzNlYzAxYTBjNjY4NTdiZjNhMjYwZjU4ZWU5NTRlMzQwNmQ0NWJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XaW5kb3dQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dpbmRvd1Byb3h5LmgKQEAgLTIwLDcgKzIwLDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJKU0RPTVdpbmRvd1Byb3h5LmgiCisjaW5j
bHVkZSAiSlNXaW5kb3dQcm94eS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQWJz
dHJhY3RGcmFtZTsKIGNsYXNzIFdpbmRvd1Byb3h5IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKLSAgICB1c2luZyBQcm94eU1hcCA9IEhhc2hNYXA8UmVmUHRyPERPTVdy
YXBwZXJXb3JsZD4sIEpTQzo6U3Ryb25nPEpTRE9NV2luZG93UHJveHk+PjsKKyAgICB1c2luZyBQ
cm94eU1hcCA9IEhhc2hNYXA8UmVmUHRyPERPTVdyYXBwZXJXb3JsZD4sIEpTQzo6U3Ryb25nPEpT
V2luZG93UHJveHk+PjsKIAogICAgIGV4cGxpY2l0IFdpbmRvd1Byb3h5KEFic3RyYWN0RnJhbWUm
KTsKICAgICB+V2luZG93UHJveHkoKTsKQEAgLTQzLDEyICs0MywxMiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkZXN0cm95SlNXaW5kb3dQcm94eShET01XcmFwcGVyV29ybGQmKTsKIAogICAgIFByb3h5
TWFwOjpWYWx1ZXNDb25zdEl0ZXJhdG9yUmFuZ2UganNXaW5kb3dQcm94aWVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9qc1dpbmRvd1Byb3hpZXMudmFsdWVzKCk7IH0KLSAgICBWZWN0b3I8SlNDOjpTdHJv
bmc8SlNET01XaW5kb3dQcm94eT4+IGpzV2luZG93UHJveGllc0FzVmVjdG9yKCkgY29uc3Q7Cisg
ICAgVmVjdG9yPEpTQzo6U3Ryb25nPEpTV2luZG93UHJveHk+PiBqc1dpbmRvd1Byb3hpZXNBc1Zl
Y3RvcigpIGNvbnN0OwogCiAgICAgUHJveHlNYXAgcmVsZWFzZUpTV2luZG93UHJveGllcygpIHsg
cmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9qc1dpbmRvd1Byb3hpZXMsIFByb3h5TWFwKCkpOyB9CiAg
ICAgdm9pZCBzZXRKU1dpbmRvd1Byb3hpZXMoUHJveHlNYXAmJiB3aW5kb3dQcm94aWVzKSB7IG1f
anNXaW5kb3dQcm94aWVzID0gV1RGTW92ZSh3aW5kb3dQcm94aWVzKTsgfQogCi0gICAgSlNET01X
aW5kb3dQcm94eSYganNXaW5kb3dQcm94eShET01XcmFwcGVyV29ybGQmIHdvcmxkKQorICAgIEpT
V2luZG93UHJveHkmIGpzV2luZG93UHJveHkoRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKICAgICB7
CiAgICAgICAgIGF1dG8gaXQgPSBtX2pzV2luZG93UHJveGllcy5maW5kKCZ3b3JsZCk7CiAgICAg
ICAgIGlmIChpdCAhPSBtX2pzV2luZG93UHJveGllcy5lbmQoKSkKQEAgLTU3LDcgKzU3LDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gY3JlYXRlSlNXaW5kb3dQcm94eVdpdGhJbml0aWFsaXpl
ZFNjcmlwdCh3b3JsZCk7CiAgICAgfQogCi0gICAgSlNET01XaW5kb3dQcm94eSogZXhpc3RpbmdK
U1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3JsZCYgd29ybGQpIGNvbnN0CisgICAgSlNXaW5kb3dQ
cm94eSogZXhpc3RpbmdKU1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3JsZCYgd29ybGQpIGNvbnN0
CiAgICAgewogICAgICAgICBhdXRvIGl0ID0gbV9qc1dpbmRvd1Byb3hpZXMuZmluZCgmd29ybGQp
OwogICAgICAgICByZXR1cm4gKGl0ICE9IG1fanNXaW5kb3dQcm94aWVzLmVuZCgpKSA/IGl0LT52
YWx1ZS5nZXQoKSA6IG51bGxwdHI7CkBAIC03Niw4ICs3Niw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IGF0dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsgLy8gQXR0YWNoZXMvZGV0YWNoZXMgaW4g
YWxsIHdvcmxkcy93aW5kb3cgcHJveGllcy4KIAogcHJpdmF0ZToKLSAgICBKU0RPTVdpbmRvd1By
b3h5JiBjcmVhdGVKU1dpbmRvd1Byb3h5KERPTVdyYXBwZXJXb3JsZCYpOwotICAgIFdFQkNPUkVf
RVhQT1JUIEpTRE9NV2luZG93UHJveHkmIGNyZWF0ZUpTV2luZG93UHJveHlXaXRoSW5pdGlhbGl6
ZWRTY3JpcHQoRE9NV3JhcHBlcldvcmxkJik7CisgICAgSlNXaW5kb3dQcm94eSYgY3JlYXRlSlNX
aW5kb3dQcm94eShET01XcmFwcGVyV29ybGQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBKU1dpbmRv
d1Byb3h5JiBjcmVhdGVKU1dpbmRvd1Byb3h5V2l0aEluaXRpYWxpemVkU2NyaXB0KERPTVdyYXBw
ZXJXb3JsZCYpOwogCiAgICAgQWJzdHJhY3RGcmFtZSYgbV9mcmFtZTsKICAgICBQcm94eU1hcCBt
X2pzV2luZG93UHJveGllczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMGY1ZGNmZWZjZjEzYzVhZTE2YmU4YTY5Yjg5ZTg0
NGRhNGFhM2FlYi4uYWE5NGY4N2I0ZTc5ZTY3ZGJjZWI0ZjBhNWM1Nzk3MTgxYWIxY2E4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTQyMiw3ICs0MjIsNyBAQCBzdWIgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUKICAgICB9
CiAKICAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIldpbmRvd1Byb3h5IikgewotICAgICAgICBBZGRU
b0luY2x1ZGVzKCJKU0RPTVdpbmRvd1Byb3h5LmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25h
bCk7CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkpTV2luZG93UHJveHkuaCIsICRpbmNsdWRlc1Jl
ZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgQWRkVG9JbmNsdWRlcygiSlNET01Db252ZXJ0V2lu
ZG93UHJveHkuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTI1MTQsNyArMjUxNCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAg
ICB9CiAgICAgfQogCi0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzIEpTRE9NV2luZG93
UHJveHk7XG5cbiIpIGlmICRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIG9yICRpbnRlcmZh
Y2VOYW1lIGVxICJSZW1vdGVET01XaW5kb3ciOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJj
bGFzcyBKU1dpbmRvd1Byb3h5O1xuXG4iKSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IjsKIAogICAgIG15ICRleHBv
cnRNYWNybyA9IEdldEV4cG9ydE1hY3JvRm9ySlNDbGFzcygkaW50ZXJmYWNlKTsKIApAQCAtMjUy
Nyw3ICsyNTI3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICB1c2luZyBET01XcmFwcGVkID0gJGltcGxUeXBlO1xuIikgaWYgJGhhc1BhcmVudDsK
IAogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50ZXJmYWNlTmFt
ZSBlcSAiUmVtb3RlRE9NV2luZG93IikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHN0YXRpYyAkY2xhc3NOYW1lKiBjcmVhdGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIFJlZjwkaW1wbFR5cGU+JiYgaW1wbCwgSlNET01XaW5kb3dQcm94eSogcHJv
eHkpXG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNz
TmFtZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWY8
JGltcGxUeXBlPiYmIGltcGwsIEpTV2luZG93UHJveHkqIHByb3h5KVxuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAge1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgICAgICRjbGFzc05hbWUqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0
ZUNlbGw8JGNsYXNzTmFtZT4odm0uaGVhcCkpICR7Y2xhc3NOYW1lfSh2bSwgc3RydWN0dXJlLCBX
VEZNb3ZlKGltcGwpLCBwcm94eSk7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbih2bSwgcHJveHkpO1xuIik7CkBAIC0yODM2LDcg
KzI4MzYsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgICMgQ29uc3RydWN0b3IKICAgICBp
ZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgfHwgJGludGVyZmFjZU5hbWUgZXEgIlJl
bW90ZURPTVdpbmRvdyIpIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xh
c3NOYW1lKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIFJlZjwkaW1wbFR5cGU+JiYsIEpTRE9N
V2luZG93UHJveHkqKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRj
bGFzc05hbWUoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgUmVmPCRpbXBsVHlwZT4mJiwgSlNX
aW5kb3dQcm94eSopO1xuIik7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRz
SW50ZXJmYWNlKCRpbnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpKSB7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1
cmUqLCBSZWY8JGltcGxUeXBlPiYmKTtcbiIpOwogICAgIH0gZWxzaWYgKCFOZWVkc0ltcGxlbWVu
dGF0aW9uQ2xhc3MoJGludGVyZmFjZSkpIHsKQEAgLTI4NDYsNyArMjg0Niw3IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgIH0KIAogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IiB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiUmVtb3RlRE9NV2luZG93IikgewotICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTRE9N
V2luZG93UHJveHkqKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTV2luZG93UHJveHkqKTtcbiIpOwogICAgIH0g
ZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiV29y
a2VyR2xvYmFsU2NvcGUiKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIEpTQzo6SlNQcm94eSopO1xuIik7CiAgICAgfSBl
bHNlIHsKQEAgLTI5NzYsNyArMjk3Niw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogCiAgICAgaWYg
KE5lZWRzSW1wbGVtZW50YXRpb25DbGFzcygkaW50ZXJmYWNlKSkgewogICAgICAgICBteSAkdG9X
cmFwcGVkVHlwZSA9ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciIg
PyAiUmVmUHRyPCR7aW1wbFR5cGV9PiIgOiAiJHtpbXBsVHlwZX0qIjsKLSAgICAKKyAgICAgICAg
JGhlYWRlckluY2x1ZGVzeyJKU0RPTVdyYXBwZXIuaCJ9ID0gMTsKKwogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAidGVtcGxhdGU8PiBzdHJ1Y3QgSlNET01XcmFwcGVyQ29udmVydGVyVHJh
aXRzPCR7aW1wbFR5cGV9PiB7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICB1c2luZyBXcmFwcGVyQ2xhc3MgPSAke2NsYXNzTmFtZX07XG4iKTsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB1c2luZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gJHt0b1dyYXBw
ZWRUeXBlfTtcbiIpOwpAQCAtMzQwNSwxMSArMzQwNiwxMSBAQCBzdWIgR2VuZXJhdGVPdmVybG9h
ZERpc3BhdGNoZXIKICAgICAgICAgICAgICAgICBmb3IgbXkgJHN1YnR5cGUgKEBzdWJ0eXBlcykg
ewogICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUo
JHN1YnR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0J1ZmZlclNvdXJjZVR5cGUoJHN1YnR5cGUp
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN1YnR5cGUtPm5hbWUgZXEgIkRPTVdp
bmRvdyIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygi
SlNET01XaW5kb3dQcm94eS5oIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRnZW5l
cmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNE
T01XaW5kb3dQcm94eT4odm0pIHx8IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJp
dHM8SlNET01XaW5kb3c+KHZtKSkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRU
b0ltcGxJbmNsdWRlcygiSlNXaW5kb3dQcm94eS5oIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rp
bmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+
aW5oZXJpdHM8SlNXaW5kb3dQcm94eT4odm0pIHx8IGFzT2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJn
KS0+aW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkiKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzaWYgKCRzdWJ0eXBlLT5uYW1lIGVxICJSZW1vdGVET01XaW5kb3ciKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NV2luZG93UHJveHku
aCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJ
Zk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIChh
c09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTRE9NV2luZG93UHJveHk+KHZt
KSB8fCBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTUmVtb3RlRE9NV2lu
ZG93Pih2bSkpIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVk
ZXMoIkpTV2luZG93UHJveHkuaCIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkZ2Vu
ZXJhdGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0Fy
Zy5pc09iamVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpT
V2luZG93UHJveHk+KHZtKSB8fCBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRz
PEpTUmVtb3RlRE9NV2luZG93Pih2bSkpIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJ
Zk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIGFz
T2JqZWN0KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlMiIC4gJHN1YnR5cGUtPm5hbWUg
LiAiPih2bSkiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTQyMTksOCArNDIyMCw4
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAjIENvbnN0cnVjdG9yCiAgICAg
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2VOYW1lIGVxICJS
ZW1vdGVET01XaW5kb3ciKSB7Ci0gICAgICAgIEFkZEluY2x1ZGVzRm9ySW1wbGVtZW50YXRpb25U
eXBlSW5JbXBsKCJKU0RPTVdpbmRvd1Byb3h5Iik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IFJlZjwkaW1wbFR5cGU+JiYgaW1wbCwgSlNET01XaW5kb3dQcm94eSogcHJveHkpXG4iKTsKKyAg
ICAgICAgQWRkSW5jbHVkZXNGb3JJbXBsZW1lbnRhdGlvblR5cGVJbkltcGwoIkpTV2luZG93UHJv
eHkiKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFzc05h
bWUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVmPCRpbXBsVHlwZT4mJiBpbXBsLCBK
U1dpbmRvd1Byb3h5KiBwcm94eSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICA6ICRwYXJlbnRDbGFzc05hbWUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSwgcHJveHkp
XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ9XG5cbiIpOwpAQCAtNDI0Miw3ICs0MjQzLDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KIAogICAgICMgRmluaXNoIENyZWF0aW9uCiAgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2VOYW1lIGVxICJSZW1vdGVET01XaW5k
b3ciKSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmZp
bmlzaENyZWF0aW9uKFZNJiB2bSwgSlNET01XaW5kb3dQcm94eSogcHJveHkpXG4iKTsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHZtLCBKU1dpbmRvd1Byb3h5KiBwcm94eSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbih2bSwgcHJveHkpO1xuXG4iKTsKICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRv
ci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RET01KSVQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RET01KSVQuaAppbmRleCA4MTMyOWE0NTU2YzBiMTJhZDUyYmY1MzVmNTA1NWIyYjQzMWY3ZTg5
Li4wYjc4MWU2MmUzYmUyZjIxYjM4OTE3MGRhZGYyZWNkMzFlZjAxZTIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklULmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5o
CkBAIC0yMCw2ICsyMCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSlNET01XcmFw
cGVyLmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiVGVzdERPTUpJVC5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0RPTUpJVEdldHRlclNldHRlci5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3Ry
dWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmgKaW5kZXggMWNiYjdhZTZmZGI3YzY2MTYzZjllNDRmZjg0NDk1YmIw
MjU3NmJlYi4uZTEwNGNlZGQ3Zjk4MThhY2VlMTk5MGYwYTcwYjRhNzgxN2Q2ZmI0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oCkBAIC0yMSw2ICsyMSw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkpTRE9NQ29udmVydERpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJKU0RP
TVdyYXBwZXIuaCIKICNpbmNsdWRlICJKU0V2ZW50LmgiCiAjaW5jbHVkZSAiVGVzdEV2ZW50Q29u
c3RydWN0b3IuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAppbmRleCBmNmNkZmVmMjQxNzQ5NDQ3
Y2VkZjRmZDdmN2UzMTVlZTFjOTM2MTVjLi45YWMyMjIwMGQ4OGIzOWUwNDI1NmYyNDQ3OWM1Zjc3
N2YxOGVlYmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaApAQCAtMjAsNiArMjAsNyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIkpTRXZl
bnRUYXJnZXQuaCIKICNpbmNsdWRlICJUZXN0RXZlbnRUYXJnZXQuaCIKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmgKaW5kZXgg
MGUzNjk4OWI5M2M0OGY3MjIxODlkODY3MmUzZDdlZjk0NGQ4NmVjOC4uOGY4ZDJjMzg4YmY3YmI5
NzIyN2E0ZTk2ODY2YzkyZjNkMTFkZmRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCkBAIC0yMCw2ICsyMCw3IEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiSlNO
b2RlLmgiCiAjaW5jbHVkZSAiVGVzdE5vZGUuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCBkNWZmMWMwNjdi
Yzc5MzgwODdkNGQxZTMwNThlNzk5MjhiMmFlY2VmLi5iYTQ1YmI5OGYyMWE2MzM5MDlkMmJlOGUw
YTFmZTJkYzcyNmEzNDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtNTcsNyArNTcsNiBAQAogI2luY2x1ZGUg
IkpTRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAi
SlNET01XaW5kb3dCYXNlLmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dQcm94eS5oIgogI2luY2x1
ZGUgIkpTRE9NV3JhcHBlckNhY2hlLmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkpTRWxlbWVudC5oIgpAQCAtNzQsNiArNzMsNyBAQAogI2luY2x1ZGUgIkpTVGVzdFN0YW5k
YWxvbmVEaWN0aW9uYXJ5LmgiCiAjaW5jbHVkZSAiSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9u
LmgiCiAjaW5jbHVkZSAiSlNUZXN0U3ViT2JqLmgiCisjaW5jbHVkZSAiSlNXaW5kb3dQcm94eS5o
IgogI2luY2x1ZGUgIkpTWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTcw
MjksNyArNzAyOSw3IEBAIHN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk92ZXJsb2FkZWRNZXRob2RPdmVyCiAgICAgICAgICAgICByZXR1
cm4ganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kNkJvZHkoc3RhdGUs
IGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwogICAgICAgICBpZiAoZGlzdGluZ3Vpc2hpbmdBcmcu
aXNPYmplY3QoKSAmJiBhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzPEpTVGVz
dE9iaj4odm0pKQogICAgICAgICAgICAgcmV0dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
T3ZlcmxvYWRlZE1ldGhvZDhCb2R5KHN0YXRlLCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKLSAg
ICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgKGFzT2JqZWN0KGRpc3Rp
bmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNET01XaW5kb3dQcm94eT4odm0pIHx8IGFzT2JqZWN0
KGRpc3Rpbmd1aXNoaW5nQXJnKS0+aW5oZXJpdHM8SlNET01XaW5kb3c+KHZtKSkpCisgICAgICAg
IGlmIChkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlz
aGluZ0FyZyktPmluaGVyaXRzPEpTV2luZG93UHJveHk+KHZtKSB8fCBhc09iamVjdChkaXN0aW5n
dWlzaGluZ0FyZyktPmluaGVyaXRzPEpTRE9NV2luZG93Pih2bSkpKQogICAgICAgICAgICAgcmV0
dXJuIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uT3ZlcmxvYWRlZE1ldGhvZDlCb2R5KHN0YXRl
LCBjYXN0ZWRUaGlzLCB0aHJvd1Njb3BlKTsKICAgICAgICAgaWYgKGRpc3Rpbmd1aXNoaW5nQXJn
LmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0czxKU0Js
b2I+KHZtKSkKICAgICAgICAgICAgIHJldHVybiBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk92
ZXJsb2FkZWRNZXRob2QxM0JvZHkoc3RhdGUsIGNhc3RlZFRoaXMsIHRocm93U2NvcGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBy
b21pc2VSZWplY3Rpb25FdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5oCmluZGV4IGYxNTg0MjJmZGM1ODUw
MTAzZDYyMGVlOTliZjAwOTY5MDk4MmNiZDcuLjQ0MjY4MjQzNGIwMmMxNDk1ZWQ1NTA2N2ZiOTRm
M2EyM2ZmYjQ3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmgK
QEAgLTIxLDYgKzIxLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0
RGljdGlvbmFyeS5oIgorI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgogI2luY2x1ZGUgIkpTRXZl
bnQuaCIKICNpbmNsdWRlICJUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmgiCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmgKaW5k
ZXggYWY5YTkzNWU3YTljNzFjMzcwNjRiMzI0YmVjM2M0YTQxMjcyNjJlZi4uYTEzMzVmYWRjOTE1
ZDQ1NGNjNWE0Yjg4Nzc1ZWQ0OGRhNTMyM2I4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVy
aXRhbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmgKQEAgLTIwLDYgKzIwLDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJK
U1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5oIgogI2luY2x1ZGUgIlRlc3RTZXJpYWxpemF0aW9u
SW5kaXJlY3RJbmhlcml0YW5jZS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdC5oCmluZGV4IDdlZjUyODY0MDc2MTcyNTE5YjMyMTgwYTlhOTEyMjQyMDAzNzViNGIuLjA2
NzM4NTRjMmYwMWNjZTQzYzhlZjhhZDFmZWE0MTY0YmI4MWVkZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemF0aW9uSW5oZXJpdC5oCkBAIC0yMCw2ICsyMCw3IEBACiAKICNwcmFnbWEgb25j
ZQogCisjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiSlNUZXN0U2VyaWFsaXph
dGlvbi5oIgogI2luY2x1ZGUgIlRlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5oIgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXphdGlvbkluaGVyaXRGaW5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuaAppbmRleCA3ZWZjZjM1YTZh
ZWJhNWM2M2QyYzM1ZTQ0YTIyMzFmYTBlNDJiMDdiLi5kMTZmODVmYzUzZmIwZGUwOWY5MWJkNjlk
ZjVlNjgxYzkxNjNjZDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdEZpbmFsLmgKQEAgLTIwLDYgKzIwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRl
ICJKU0RPTVdyYXBwZXIuaCIKICNpbmNsdWRlICJKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5o
IgogI2luY2x1ZGUgIlRlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmgiCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKaW5kZXggMmM2YzBkZGU0YjVkY2FkM2I5Mzk1MmJiOWUxZTgzZTA5MmJiMmRhMy4u
YTg0MjY1YWE3OTM2YzM0ODkyY2M5ZTA3MWE5OTBiOWFkMWU1MTE2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd1Byb3h5LmgiCisjaW5jbHVkZSAiSlNXaW5kb3dQcm94
eS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIk1lZGlhRmVhdHVyZU5hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9j
c3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCAwYzIwMzZmNzZmYThiMjkwMzA0ZTk3
NmZhYTA0MGM5Y2M1OGVkODYxLi5mYzJmZDEyYmFkNzc5MGVmNmFmOGI2OTM4NjhmMWY4YjE0Yjg0
YWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBv
bGljeS5jcHAKQEAgLTQxLDggKzQxLDggQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmgiCisjaW5jbHVkZSAiSlNXaW5kb3dQcm94eS5oIgogI2luY2x1ZGUgIlBhcnNp
bmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJQaW5nTG9hZGVyLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCkBAIC0xNDUsNyArMTQ1LDcgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OmFsbG93UnVubmluZ09yRGlzcGxheWluZ0luc2VjdXJlQ29udGVudChjb25zdCBVUkwmIHUK
ICAgICByZXR1cm4gYWxsb3c7CiB9CiAKLXZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRD
cmVhdGVXaW5kb3dQcm94eShKU0RPTVdpbmRvd1Byb3h5JiB3aW5kb3dQcm94eSkgY29uc3QKK3Zv
aWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRDcmVhdGVXaW5kb3dQcm94eShKU1dpbmRvd1By
b3h5JiB3aW5kb3dQcm94eSkgY29uc3QKIHsKICAgICBhdXRvKiB3aW5kb3cgPSB3aW5kb3dQcm94
eS53aW5kb3coKTsKICAgICBBU1NFUlQod2luZG93KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5kZXggZDBlMzViYjEyOTJlM2VkOGU0ZjYz
NGE2YTYxNmY1ZDU3MzA5M2YxNy4uMjkzZDc1NmIxN2FiNmYwNjE2OWM0ZjMyZDA3ODAzMjViNDdl
ODRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5RGlyZWN0
aXZlTGlzdDsKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZTsKIGNsYXNzIERPTVN0
cmluZ0xpc3Q7CiBjbGFzcyBGcmFtZTsKLWNsYXNzIEpTRE9NV2luZG93UHJveHk7CitjbGFzcyBK
U1dpbmRvd1Byb3h5OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwpAQCAtNzEsNyArNzEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBjb3B5U3RhdGVGcm9tKGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeSop
OwogICAgIHZvaWQgY29weVVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RTdGF0ZUZyb20oY29uc3QgQ29u
dGVudFNlY3VyaXR5UG9saWN5Jik7CiAKLSAgICB2b2lkIGRpZENyZWF0ZVdpbmRvd1Byb3h5KEpT
RE9NV2luZG93UHJveHkmKSBjb25zdDsKKyAgICB2b2lkIGRpZENyZWF0ZVdpbmRvd1Byb3h5KEpT
V2luZG93UHJveHkmKSBjb25zdDsKIAogICAgIGVudW0gY2xhc3MgUG9saWN5RnJvbSB7CiAgICAg
ICAgIEFQSSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1dvcmtlcnMvSGVhcFNuYXBzaG90L0hlYXBTbmFwc2hvdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90L0hlYXBTbmFwc2hvdC5qcwpp
bmRleCAxZjJmN2ExMWEwODljNGRhZTFiMzE5MzdhNGE0NzUxMDllZWI0NDM5Li5hOGYyYzMzMDMx
NzdhNjVmODY5ZWYwYWNhNTBjZWIxYmJjMmY4M2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC9IZWFwU25hcHNob3Qu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFw
U25hcHNob3QvSGVhcFNuYXBzaG90LmpzCkBAIC03MDksNyArNzA5LDcgQEAgSGVhcFNuYXBzaG90
ID0gY2xhc3MgSGVhcFNuYXBzaG90CiAgICAgewogICAgICAgICBsZXQgY2xhc3NOYW1lID0gdGhp
cy5fbm9kZUNsYXNzTmFtZXNUYWJsZVt0aGlzLl9ub2Rlc1tub2RlSW5kZXggKyBub2RlQ2xhc3NO
YW1lT2Zmc2V0XV07CiAgICAgICAgIHJldHVybiBjbGFzc05hbWUgPT09ICJXaW5kb3ciCi0gICAg
ICAgICAgICB8fCBjbGFzc05hbWUgPT09ICJKU0RPTVdpbmRvd1Byb3h5IgorICAgICAgICAgICAg
fHwgY2xhc3NOYW1lID09PSAiSlNXaW5kb3dQcm94eSIKICAgICAgICAgICAgIHx8IGNsYXNzTmFt
ZSA9PT0gIkdsb2JhbE9iamVjdCI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9ET00vRE9NVXRpbGl0eS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01VdGlsaXR5Lm1tCmluZGV4IDk3OTEyNjZiMDUwNzk5YzAwMzA1ZWVjNWFhYzQ5MWU2MjQ4
ODE5ZGYuLmJiNjM1NDM0MmQxOTEwMGIxMWMwZDI0NDhiYTY5MjNmMDM2NGFjZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01VdGlsaXR5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01VdGlsaXR5Lm1tCkBAIC01MSw3ICs1MSw2IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0pTQ1NTUnVsZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNDU1NT
dHlsZURlY2xhcmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRE9NSW1wbGVtZW50YXRpb24u
aD4KLSNpbXBvcnQgPFdlYkNvcmUvSlNET01XaW5kb3dQcm94eS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9KU0RlcHJlY2F0ZWRDU1NPTUNvdW50ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNEZXByZWNh
dGVkQ1NTT01SR0JDb2xvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9KU0RlcHJlY2F0ZWRDU1NPTVJl
Y3QuaD4KQEAgLTY4LDYgKzY3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSlNTdHlsZVNoZWV0Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0pTU3R5bGVTaGVldExpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUv
SlNUcmVlV2Fsa2VyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0pTV2luZG93UHJveHkuaD4KICNpbXBv
cnQgPFdlYkNvcmUvSlNYUGF0aEV4cHJlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvSlNYUGF0
aFJlc3VsdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmg+CkBA
IC04NSw3ICs4NSw2IEBAIHN0YXRpYyBXZWJTY3JpcHRPYmplY3QgKmNyZWF0ZURPTVdyYXBwZXIo
SlNDOjpKU09iamVjdCYganNXcmFwcGVyKQogICAgIFdSQVAoRGVwcmVjYXRlZENTU09NVmFsdWUp
CiAgICAgV1JBUChEZXByZWNhdGVkQ1NTT01Db3VudGVyKQogICAgIFdSQVAoRE9NSW1wbGVtZW50
YXRpb24pCi0gICAgV1JBUChET01XaW5kb3dQcm94eSkKICAgICBXUkFQKEV2ZW50KQogICAgIFdS
QVAoSFRNTE9wdGlvbnNDb2xsZWN0aW9uKQogICAgIFdSQVAoTWVkaWFMaXN0KQpAQCAtOTksNiAr
OTgsNyBAQCBzdGF0aWMgV2ViU2NyaXB0T2JqZWN0ICpjcmVhdGVET01XcmFwcGVyKEpTQzo6SlNP
YmplY3QmIGpzV3JhcHBlcikKICAgICBXUkFQKFN0eWxlU2hlZXQpCiAgICAgV1JBUChTdHlsZVNo
ZWV0TGlzdCkKICAgICBXUkFQKFRyZWVXYWxrZXIpCisgICAgV1JBUChXaW5kb3dQcm94eSkKICAg
ICBXUkFQKFhQYXRoRXhwcmVzc2lvbikKICAgICBXUkFQKFhQYXRoUmVzdWx0KQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCAwMzM4NTFjNjI4NGQ5
Y2JhOGJiOTdlNTA0ZWY3NzQ0MDUyZjg0MmVmLi5mZDkyNDUzZjMzNTBhOWMyNTJjY2Q2OTg0ZTIy
OTA5NTk1YzM4ODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJh
bWUubW0KQEAgLTIwOTIsOCArMjA5Miw4IEBAIHN0YXRpYyBXZWJGcmFtZUxvYWRUeXBlIHRvV2Vi
RnJhbWVMb2FkVHlwZShGcmFtZUxvYWRUeXBlIGZyYW1lTG9hZFR5cGUpCiAgICAgLy8gVGhlIGds
b2JhbCBvYmplY3QgaXMgcHJvYmFibHkgYSBwcm94eSBvYmplY3Q/IC0gaWYgc28sIHdlIGtub3cg
aG93IHRvIHVzZSB0aGlzIQogICAgIEpTQzo6SlNPYmplY3QqIGdsb2JhbE9iamVjdE9iaiA9IHRv
SlMoZ2xvYmFsT2JqZWN0UmVmKTsKICAgICBKU0M6OlZNJiB2bSA9ICpnbG9iYWxPYmplY3RPYmot
PnZtKCk7Ci0gICAgaWYgKCFzdHJjbXAoZ2xvYmFsT2JqZWN0T2JqLT5jbGFzc0luZm8odm0pLT5j
bGFzc05hbWUsICJKU0RPTVdpbmRvd1Byb3h5IikpCi0gICAgICAgIGFueVdvcmxkR2xvYmFsT2Jq
ZWN0ID0gSlNDOjpqc0R5bmFtaWNDYXN0PEpTRE9NV2luZG93Kj4odm0sIHN0YXRpY19jYXN0PEpT
RE9NV2luZG93UHJveHkqPihnbG9iYWxPYmplY3RPYmopLT53aW5kb3coKSk7CisgICAgaWYgKCFz
dHJjbXAoZ2xvYmFsT2JqZWN0T2JqLT5jbGFzc0luZm8odm0pLT5jbGFzc05hbWUsICJKU1dpbmRv
d1Byb3h5IikpCisgICAgICAgIGFueVdvcmxkR2xvYmFsT2JqZWN0ID0gSlNDOjpqc0R5bmFtaWND
YXN0PEpTRE9NV2luZG93Kj4odm0sIHN0YXRpY19jYXN0PEpTV2luZG93UHJveHkqPihnbG9iYWxP
YmplY3RPYmopLT53aW5kb3coKSk7CiAKICAgICBpZiAoIWFueVdvcmxkR2xvYmFsT2JqZWN0KQog
ICAgICAgICByZXR1cm4gQCIiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRnJhbWUuY3BwCmluZGV4
IDY4MmFkMDEzNzQwZDlkMTg5NDBhNTgyMDBiMTgyM2ZlMDJmNGFlYjguLmFiMmY2OWVlNDM1YjE1
YmNjYTg2YjRiMTYwY2E3YjcyNjJlMGVkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJGcmFt
ZS5jcHAKQEAgLTIwMDMsOCArMjAwMyw4IEBAIEhSRVNVTFQgV2ViRnJhbWU6OnN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHRJblNjcmlwdFdvcmxkKElXZWJTY3JpcHRXb3JsZCogaVdvCiAgICAg
Ly8gVGhlIGdsb2JhbCBvYmplY3QgaXMgcHJvYmFibHkgYSBwcm94eSBvYmplY3Q/IC0gaWYgc28s
IHdlIGtub3cgaG93IHRvIHVzZSB0aGlzIQogICAgIEpTQzo6SlNPYmplY3QqIGdsb2JhbE9iamVj
dE9iaiA9IHRvSlMoZ2xvYmFsT2JqZWN0UmVmKTsKICAgICBhdXRvJiB2bSA9ICpnbG9iYWxPYmpl
Y3RPYmotPnZtKCk7Ci0gICAgaWYgKGdsb2JhbE9iamVjdE9iai0+aW5oZXJpdHM8SlNET01XaW5k
b3dQcm94eT4odm0pKQotICAgICAgICBhbnlXb3JsZEdsb2JhbE9iamVjdCA9IEpTQzo6anNEeW5h
bWljQ2FzdDxKU0RPTVdpbmRvdyo+KHZtLCBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1Byb3h5Kj4o
Z2xvYmFsT2JqZWN0T2JqKS0+d2luZG93KCkpOworICAgIGlmIChnbG9iYWxPYmplY3RPYmotPmlu
aGVyaXRzPEpTV2luZG93UHJveHk+KHZtKSkKKyAgICAgICAgYW55V29ybGRHbG9iYWxPYmplY3Qg
PSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3cqPih2bSwgc3RhdGljX2Nhc3Q8SlNXaW5k
b3dQcm94eSo+KGdsb2JhbE9iamVjdE9iaiktPndpbmRvdygpKTsKIAogICAgIGlmICghYW55V29y
bGRHbG9iYWxPYmplY3QpCiAgICAgICAgIHJldHVybiBFX0lOVkFMSURBUkc7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>