<?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>221205</bug_id>
          
          <creation_ts>2021-02-01 07:08:48 -0800</creation_ts>
          <short_desc>Update WebRTC usrsctp to M88</short_desc>
          <delta_ts>2021-02-02 09:46:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local 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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1724223</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-01 07:08:48 -0800</bug_when>
    <thetext>Update WebRTC usrsctp to M88</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724226</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-01 07:10:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/72649242&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724228</commentid>
    <comment_count>2</comment_count>
      <attachid>418869</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-01 07:11:10 -0800</bug_when>
    <thetext>Created attachment 418869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724708</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-02 09:46:36 -0800</bug_when>
    <thetext>Committed r272216: &lt;https://trac.webkit.org/changeset/272216&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418869.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418869</attachid>
            <date>2021-02-01 07:11:10 -0800</date>
            <delta_ts>2021-02-02 09:46:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221205-20210201161107.patch</filename>
            <type>text/plain</type>
            <size>199681</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAxMDgzMmE2YjkwOWU5MmVlMTVhMzBmMzE5YzExYmFiYThkODJkYWUxLi43MDgx
YzlmZGE2NWVjZjY0MDQwYWQ1NTgwYjg4ZTk1ZDI5YzI1ZjBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTYgQEAKKzIwMjEtMDItMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXZWJSVEMgdXNyc2N0
cCB0byBNODgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTIwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi8uZ2l0aHViL3dvcmtmbG93
cy9idWlsZC13aXRoLWNtYWtlLnltbDogUmVtb3ZlZC4KKyAgICAgICAgKiBTb3VyY2UvdGhpcmRf
cGFydHkvdXNyc2N0cC91c3JzY3RwbGliL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNvdXJj
ZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9DTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNj
dHBsaWIvbmV0aW5ldC9zY3RwLmg6CisgICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5L3VzcnNj
dHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9hc2NvbmYuYzoKKyAgICAgICAg
KHNjdHBfcHJvY2Vzc19hc2NvbmZfc2V0X3ByaW1hcnkpOgorICAgICAgICAoc2N0cF9oYW5kbGVf
YXNjb25mKToKKyAgICAgICAgKHNjdHBfaGFuZGxlX2FzY29uZl9hY2spOgorICAgICAgICAoc2N0
cF9hc2NvbmZfaXRlcmF0b3JfZXBfZW5kKToKKyAgICAgICAgKHNjdHBfYXNjb25mX2l0ZXJhdG9y
X3N0Y2IpOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIv
dXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfYXNjb25mLmg6CisgICAgICAgICogU291cmNlL3RoaXJk
X3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9hdXRoLmM6
CisgICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3Rw
bGliL25ldGluZXQvc2N0cF9hdXRoLmg6CisgICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5L3Vz
cnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9ic2RfYWRkci5jOgorICAg
ICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9u
ZXRpbmV0L3NjdHBfYnNkX2FkZHIuaDoKKyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNy
c2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2NjX2Z1bmN0aW9ucy5jOgor
ICAgICAgICAoc2N0cF9lbmZvcmNlX2N3bmRfbGltaXQpOgorICAgICAgICAoc2N0cF9jd25kX3Vw
ZGF0ZV9hZnRlcl9mcik6CisgICAgICAgIChjY19id19zYW1lKToKKyAgICAgICAgKGNjX2J3X2Rl
Y3JlYXNlKToKKyAgICAgICAgKHNjdHBfY3duZF91cGRhdGVfYWZ0ZXJfc2Fja19jb21tb24pOgor
ICAgICAgICAoc2N0cF9jd25kX3VwZGF0ZV9hZnRlcl9lY25fZWNob19jb21tb24pOgorICAgICAg
ICAoc2N0cF9jd25kX3VwZGF0ZV9hZnRlcl9vdXRwdXQpOgorICAgICAgICAoc2N0cF9jd25kX3Vw
ZGF0ZV9hZnRlcl9zYWNrKToKKyAgICAgICAgKHNjdHBfY3duZF91cGRhdGVfYWZ0ZXJfZWNuX2Vj
aG8pOgorICAgICAgICAoc2N0cF9jd25kX3VwZGF0ZV9ydGNjX2FmdGVyX2Vjbl9lY2hvKToKKyAg
ICAgICAgKHNjdHBfY3duZF91cGRhdGVfcnRjY190c25fYWNrbm93bGVkZ2VkKToKKyAgICAgICAg
KHNjdHBfY3duZF9wcmVwYXJlX3J0Y2NfbmV0X2Zvcl9zYWNrKToKKyAgICAgICAgKHNjdHBfY3du
ZF9uZXdfcnRjY190cmFuc21pc3Npb25fYmVnaW5zKToKKyAgICAgICAgKHNjdHBfc2V0X3J0Y2Nf
aW5pdGlhbF9jY19wYXJhbSk6CisgICAgICAgIChzY3RwX2N3bmRfcnRjY19zb2NrZXRfb3B0aW9u
KToKKyAgICAgICAgKHNjdHBfY3duZF91cGRhdGVfcnRjY19hZnRlcl9zYWNrKToKKyAgICAgICAg
KHNjdHBfaHNfY3duZF91cGRhdGVfYWZ0ZXJfc2Fjayk6CisgICAgICAgIChodGNwX2FscGhhX3Vw
ZGF0ZSk6CisgICAgICAgIChodGNwX2NvbmdfYXZvaWQpOgorICAgICAgICAoc2N0cF9odGNwX2N3
bmRfdXBkYXRlX2FmdGVyX3NhY2spOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3Jz
Y3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfY29uc3RhbnRzLmg6CisgICAg
ICAgICogU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25l
dGluZXQvc2N0cF9oZWFkZXIuaDoKKyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0
cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2luZGF0YS5jOgorICAgICAgICAo
c2N0cF9tYXJrX25vbl9yZXZva2FibGUpOgorICAgICAgICAoc2N0cF9wbGFjZV9jb250cm9sX2lu
X3N0cmVhbSk6CisgICAgICAgIChzY3RwX3F1ZXVlX2RhdGFfdG9fc3RyZWFtKToKKyAgICAgICAg
KHNjdHBfaW5qZWN0X29sZF91bm9yZGVyZWRfZGF0YSk6CisgICAgICAgIChzY3RwX2RlbGl2ZXJf
cmVhc21fY2hlY2spOgorICAgICAgICAoc2N0cF9wcm9jZXNzX2FfZGF0YV9jaHVuayk6CisgICAg
ICAgIChzY3RwX3NhY2tfY2hlY2spOgorICAgICAgICAoc2N0cF9wcm9jZXNzX3NlZ21lbnRfcmFu
Z2UpOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNy
c2N0cGxpYi9uZXRpbmV0L3NjdHBfaW5kYXRhLmg6CisgICAgICAgICogU291cmNlL3RoaXJkX3Bh
cnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9pbnB1dC5jOgor
ICAgICAgICAoc2N0cF9wcm9jZXNzX2luaXQpOgorICAgICAgICAoc2N0cF9oYW5kbGVfaGVhcnRi
ZWF0X2Fjayk6CisgICAgICAgIChzY3RwX2hhbmRsZV9lcnJvcik6CisgICAgICAgIChzY3RwX3By
b2Nlc3NfY29va2llX2V4aXN0aW5nKToKKyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNy
c2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2lucHV0Lmg6CisgICAgICAg
ICogU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGlu
ZXQvc2N0cF9vcy5oOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNj
dHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfb3NfdXNlcnNwYWNlLmg6CisgICAgICAgICog
U291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQv
c2N0cF9vdXRwdXQuYzoKKyAgICAgICAgKHNjdHBfY2hvb3NlX2JvdW5kc3BlY2lmaWNfc3RjYik6
CisgICAgICAgIChzY3RwX3NlbGVjdF9udGhfcHJlZmVycmVkX2FkZHJfZnJvbV9pZm5fYm91bmRh
bGwpOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNy
c2N0cGxpYi9uZXRpbmV0L3NjdHBfb3V0cHV0Lmg6CisgICAgICAgICogU291cmNlL3RoaXJkX3Bh
cnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9wY2IuYzoKKyAg
ICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIv
bmV0aW5ldC9zY3RwX3BjYi5oOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3Rw
L3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfc3NfZnVuY3Rpb25zLmM6CisgICAg
ICAgIChzY3RwX3NzX3ByaW9fY2xlYXIpOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91
c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfc3RydWN0cy5oOgorICAg
ICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9u
ZXRpbmV0L3NjdHBfc3lzY3RsLmM6CisgICAgICAgIChzY3RwX2luaXRfc3lzY3Rscyk6CisgICAg
ICAgICogU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25l
dGluZXQvc2N0cF9zeXNjdGwuaDoKKyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0
cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3RpbWVyLmM6CisgICAgICAgICog
U291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQv
c2N0cF90aW1lci5oOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNj
dHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfdWlvLmg6CisgICAgICAgICogU291cmNlL3Ro
aXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF91c2Vy
c3BhY2UuYzoKKyAgICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGli
L3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3VzcnJlcS5jOgorICAgICAgICAoc2N0cF9maW5pc2gp
OgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0
cGxpYi9uZXRpbmV0L3NjdHBfdmFyLmg6CisgICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5L3Vz
cnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cHV0aWwuYzoKKyAgICAgICAg
KHNjdHBfYXVkaXRpbmcpOgorICAgICAgICAoc2N0cF90aW1lb3V0X2hhbmRsZXIpOgorICAgICAg
ICAoc2N0cF90aW1lcl9zdGFydCk6CisgICAgICAgIChzY3RwX25vdGlmeV9yZW1vdGVfZXJyb3Ip
OgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0
cGxpYi9uZXRpbmV0L3NjdHB1dGlsLmg6CisgICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5L3Vz
cnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQ2L3NjdHA2X3VzcnJlcS5jOgorICAg
ICAgICAoaW42X3Npbl8yX3Y0bWFwc2luNik6CisgICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5
L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfZW52aXJvbm1lbnQuYzoKKyAgICAg
ICAgKGluaXRfcmFuZG9tKToKKyAgICAgICAgKHJlYWRfcmFuZG9tKToKKyAgICAgICAgKGZpbmlz
aF9yYW5kb20pOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBs
aWIvdXNyc2N0cGxpYi91c2VyX2Vudmlyb25tZW50Lmg6CisgICAgICAgICogU291cmNlL3RoaXJk
X3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfaW5wY2IuaDoKKyAgICAg
ICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNl
cl9pcDZfdmFyLmg6CisgICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0
cGxpYi91c3JzY3RwbGliL3VzZXJfaXBfaWNtcC5oOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9w
YXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91c2VyX21hbGxvYy5oOgorICAgICAg
ICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91c2Vy
X21idWYuYzoKKyAgICAgICAgKG1idWZfaW5pdGlhbGl6ZSk6CisgICAgICAgICogU291cmNlL3Ro
aXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfcXVldWUuaDoKKyAg
ICAgICAgKiBTb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIv
dXNlcl9yZWN2X3RocmVhZC5jOgorICAgICAgICAocmVjdl9mdW5jdGlvbl9yYXcpOgorICAgICAg
ICAocmVjdl9mdW5jdGlvbl9yYXc2KToKKyAgICAgICAgKHJlY3ZfZnVuY3Rpb25fdWRwKToKKyAg
ICAgICAgKHJlY3ZfZnVuY3Rpb25fdWRwNik6CisgICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5
L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfcm91dGUuaDoKKyAgICAgICAgKiBT
b3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9zb2Nr
ZXQuYzoKKyAgICAgICAgKHVzcnNjdHBfaW5pdF9ub3RocmVhZHMpOgorICAgICAgICAodXNyc2N0
cF9zb2NrZXQpOgorICAgICAgICAqIFNvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBs
aWIvdXNyc2N0cGxpYi91c2VyX3NvY2tldHZhci5oOgorCiAyMDIxLTAxLTI1ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN5bmMgbGlid2VicnRjIHdpdGgg
TTg3IGxhdGVzdCBicmFuY2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliLy5naXRodWIvd29ya2Zsb3dz
L2J1aWxkLXdpdGgtY21ha2UueW1sIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQt
d2l0aC1jbWFrZS55bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViYTlkNjljMzFm
ZDhmZTI4MmYwMWUwYTBhNmEwMDllMDBhZTVmNWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvLmdpdGh1Yi93b3JrZmxvd3MvYnVpbGQtd2l0
aC1jbWFrZS55bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi1uYW1lOiBCdWlsZCB3
aXRoIENNYWtlCi0KLW9uOgotICBwdXNoOgotICAgIGJyYW5jaGVzOiBbIG1hc3RlciwgZ2l0aHVi
LWFjdGlvbnMgXQotICBwdWxsX3JlcXVlc3Q6Ci0gICAgYnJhbmNoZXM6IFsgbWFzdGVyIF0KLQot
am9iczoKLSAgYnVpbGQ6Ci0KLSAgICBzdHJhdGVneToKLSAgICAgIG1hdHJpeDoKLSAgICAgICAg
cGxhdGZvcm06IFt1YnVudHUtbGF0ZXN0LCBtYWNvcy1sYXRlc3QsIHdpbmRvd3MtbGF0ZXN0XQot
ICAgICAgICBjbWFrZV9idWlsZF90eXBlOiBbRGVidWcsIFJlbFdpdGhEZWJJbmZvXQotICAgICAg
ICBzY3RwX2ludmFyaWFudHM6IFtPTiwgT0ZGXQotICAgICAgICBzY3RwX2luZXQ2OiBbT04sIE9G
Rl0KLSAgICAgICAgc2N0cF9pbmV0OiBbT04sIE9GRl0KLSAgICAgICAgc2N0cF9kZWJ1ZzogW09O
LCBPRkZdCi0KLSAgICBydW5zLW9uOiAke3sgbWF0cml4LnBsYXRmb3JtIH19Ci0KLSAgICBzdGVw
czoKLSAgICAtIHVzZXM6IGFjdGlvbnMvY2hlY2tvdXRAdjIKLSAgICAgIHdpdGg6Ci0gICAgICAg
IHBhdGg6ICd1c3JzY3RwX3NvdXJjZScKLQotICAgIC0gbmFtZTogUHJlcGFyZSBkaXJzCi0gICAg
ICBzaGVsbDogYmFzaAotICAgICAgcnVuOiB8Ci0gICAgICAgIG1rZGlyIC1wIGNtYWtlX2J1aWxk
Ci0gICAgICAgIG1rZGlyIC1wIGNtYWtlX2luc3RhbGwKLSAgICAgICAgCi0gICAgLSBuYW1lOiBH
ZW5lcmF0ZSBDTWFrZSBwcm9qZWN0Ci0gICAgICBzaGVsbDogYmFzaAotICAgICAgcnVuOiB8Ci0g
ICAgICAgIGNkIGNtYWtlX2J1aWxkCi0gICAgICAgIGNtYWtlIC1EQ01BS0VfQlVJTERfVFlQRT0k
e3sgbWF0cml4LmNtYWtlX2J1aWxkX3R5cGUgfX0gXAotICAgICAgICAgICAgICAtRENNQUtFX1BP
U0lUSU9OX0lOREVQRU5ERU5UX0NPREU9T04gXAotICAgICAgICAgICAgICAtRENNQUtFX1ZFUkJP
U0VfTUFLRUZJTEU6Qk9PTD1PTiBcCi0gICAgICAgICAgICAgIC1Ec2N0cF9kZWJ1Zz0ke3sgbWF0
cml4LnNjdHBfZGVidWcgfX0gXAotICAgICAgICAgICAgICAtRHNjdHBfaW52YXJpYW50cz0ke3sg
bWF0cml4LnNjdHBfaW52YXJpYW50cyB9fSBcCi0gICAgICAgICAgICAgIC1Ec2N0cF9pbmV0Nj0k
e3sgbWF0cml4LnNjdHBfaW5ldDYgfX0gXAotICAgICAgICAgICAgICAtRHNjdHBfaW5ldD0ke3sg
bWF0cml4LnNjdHBfaW5ldCB9fSBcCi0gICAgICAgICAgICAgIC1Ec2N0cF9idWlsZF9wcm9ncmFt
cz1PTiBcCi0gICAgICAgICAgICAgIC1Ec2N0cF9idWlsZF9mdXp6ZXI9T0ZGIFwKLSAgICAgICAg
ICAgICAgLURDTUFLRV9JTlNUQUxMX1BSRUZJWD0ke0dJVEhVQl9XT1JLU1BBQ0V9L2NtYWtlX2lu
c3RhbGwgXAotICAgICAgICAgICAgICAke0dJVEhVQl9XT1JLU1BBQ0V9L3VzcnNjdHBfc291cmNl
Ci0gICAgICAgIAotICAgIC0gbmFtZTogQnVpbGQgYW5kIGluc3RhbGwgcHJvamVjdAotICAgICAg
c2hlbGw6IGJhc2gKLSAgICAgIHJ1bjogfAotICAgICAgICBjbWFrZSAtLWJ1aWxkIGNtYWtlX2J1
aWxkIFwKLSAgICAgICAgICAgICAgLS1wYXJhbGxlbCAyIFwKLSAgICAgICAgICAgICAgLS1jb25m
aWcgJHt7IG1hdHJpeC5jbWFrZV9idWlsZF90eXBlIH19IFwKLSAgICAgICAgICAgICAgLS10YXJn
ZXQgaW5zdGFsbCBcCi0gICAgICAgICAgICAgIC0tY2xlYW4tZmlyc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3Jz
Y3RwbGliL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvQ01ha2VMaXN0cy50eHQKaW5kZXggMzcy
NzBkMWQzNzk1YjJhNTNiNTk0NzMwMDRhZjZjNWRkYjk0NWRjMC4uYmE5MzVmNTc1MGJlNmE1YWU5
NTA1MDlhYzk2ODk0NzZjMDFjZmU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91
c3JzY3RwL3VzcnNjdHBsaWIvQ01ha2VMaXN0cy50eHQKQEAgLTY5LDcgKzY5LDcgQEAgZW5kaWYg
KCkKIAogb3B0aW9uKHNjdHBfd2Vycm9yICJUcmVhdCB3YXJuaW5nIGFzIGVycm9yIiAxKQogCi1v
cHRpb24oc2N0cF9saW5rX3Byb2dyYW1zX3N0YXRpYyAiTGluayBleGFtcGxlIHByb2dyYW1zIHN0
YXRpYyIgMCkKK29wdGlvbihzY3RwX2J1aWxkX3NoYXJlZF9saWIgIkJ1aWxkIFVTUlNDVFAgYXMg
c2hhcmVkIGxpYnJhcnkiIDApCiAKIG9wdGlvbihzY3RwX2J1aWxkX3Byb2dyYW1zICJCdWlsZCBl
eGFtcGxlIHByb2dyYW1zIiAxKQogCkBAIC04MywxMiArODMsNiBAQCBpZiAoc2N0cF9zYW5pdGl6
ZXJfYWRkcmVzcyBBTkQgc2N0cF9zYW5pdGl6ZXJfbWVtb3J5KQogCW1lc3NhZ2UoRkFUQUxfRVJS
T1IgIkNhbiBub3QgY29tcGlsZSB3aXRoIGJvdGggc2FuaXRpemVyIG9wdGlvbnMiKQogZW5kaWYg
KCkKIAotaWYgKHNjdHBfbGlua19wcm9ncmFtc19zdGF0aWMgT1IgV0lOMzIpCi0Jc2V0KHByb2dy
YW1zX2xpbmtfbGlicmFyeSAidXNyc2N0cC1zdGF0aWMiKQotZWxzZSAoKQotCXNldChwcm9ncmFt
c19saW5rX2xpYnJhcnkgInVzcnNjdHAiKQotZW5kaWYgKCkKLQogCiAjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENIRUNLIEZPUiBUWVBFUyBBTkQg
RlVOQ1RJT05TCkBAIC0yNTksOSArMjUzLDkgQEAgZWxzZWlmIChDTUFLRV9DX0NPTVBJTEVSX0lE
IE1BVENIRVMgIkNsYW5nIiBPUiBDTUFLRV9DX0NPTVBJTEVSX0lEIE1BVENIRVMgIkFwcGwKIAll
bmRpZiAoKQogCiAJaWYgKHNjdHBfYnVpbGRfZnV6emVyKQotCQlzZXQoQ01BS0VfQlVJTERfVFlQ
RSAiREVCVUciKQorCQlzZXQoQ01BS0VfQlVJTERfVFlQRSAiUmVsV2l0aERlYkluZm8iKQogCQlh
ZGRfZGVmaW5pdGlvbnMoLURGVVpaSU5HX0JVSUxEX01PREVfVU5TQUZFX0ZPUl9QUk9EVUNUSU9O
KQotCQlzZXQoQ01BS0VfQ19GTEFHUyAiJHtDTUFLRV9DX0ZMQUdTfSAtTzEgLWZzYW5pdGl6ZT1m
dXp6ZXItbm8tbGluayIpCisJCXNldChDTUFLRV9DX0ZMQUdTICIke0NNQUtFX0NfRkxBR1N9IC1m
c2FuaXRpemU9ZnV6emVyLW5vLWxpbmsiKQogCWVuZGlmICgpCiBlbmRpZiAoKQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNj
dHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0
cGxpYi9DTWFrZUxpc3RzLnR4dAppbmRleCA4OTljYThlMGRlNGJmNzQxMmFkYmJkM2E2Mjg0NzFh
MzZlMDM0NDRkLi5iZDc0YTk5ZmE5MmVjMDMyNWJhZTQyMzEyMTlhYzJmNDU1OTI0YTlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3Vz
cnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGli
L3VzcnNjdHBsaWIvQ01ha2VMaXN0cy50eHQKQEAgLTEsNiArMSw2IEBACiAjCiAjIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE1IE9sZWcgQWxleGVlbmtvdgotIyBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
OSBGZWxpeCBXZWlucmFuaworIyBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMCBGZWxpeCBXZWlucmFu
awogIwogIyBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwpAQCAtMzYsMTAgKzM2LDEyIEBACiAKIHNl
dChWRVJTSU9OICIxLjAuMCIpCiAKK2luY2x1ZGUoR05VSW5zdGFsbERpcnMpCiBzZXQocHJlZml4
IAkJCQkJJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0pCiBzZXQoZXhlY19wcmVmaXggCQkJJHtwcmVm
aXh9KQotc2V0KGxpYmRpciAJCQkJCSR7ZXhlY19wcmVmaXh9L2xpYikKLXNldChpbmNsdWRlZGly
IAkJCQkke3ByZWZpeH0vaW5jbHVkZS91c3JzY3RwKQorc2V0KGxpYmRpciAJCQkJCSR7ZXhlY19w
cmVmaXh9LyR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9KQorc2V0KGluY2x1ZGVkaXIgCQkJCSR7cHJl
Zml4fS8ke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0vdXNyc2N0cCkKKwogc2V0KENNQUtFX1JF
UVVJUkVEX0lOQ0xVREVTICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfSkKIHNldChDTUFLRV9N
QUNPU1hfUlBBVEggCQkxKQogCkBAIC03Niw3ICs3OCw5IEBAIGVuZGlmICgpCiAjIE1JU0MKICMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotCitpZiAo
c2N0cF9idWlsZF9zaGFyZWRfbGliKQorCXNldChCVUlMRF9TSEFSRURfTElCUyAxKQorZW5kaWYg
KCkKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwog
IyBMSUJSQVJZIEZJTEVTCkBAIC0xNjMsMzAgKzE2NywyOCBAQCBsaXN0KEFQUEVORCB1c3JzY3Rw
X3NvdXJjZXMKIAl1c2VyX3NvY2tldC5jCiApCiAKLWFkZF9saWJyYXJ5KHVzcnNjdHAgU0hBUkVE
ICR7dXNyc2N0cF9zb3VyY2VzfSAke3VzcnNjdHBfaGVhZGVyc30pCi1hZGRfbGlicmFyeSh1c3Jz
Y3RwLXN0YXRpYyBTVEFUSUMgJHt1c3JzY3RwX3NvdXJjZXN9ICR7dXNyc2N0cF9oZWFkZXJzfSkK
K2FkZF9saWJyYXJ5KHVzcnNjdHAgJHt1c3JzY3RwX3NvdXJjZXN9ICR7dXNyc2N0cF9oZWFkZXJz
fSkKIAogdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXModXNyc2N0cCBQVUJMSUMgJHtDTUFLRV9D
VVJSRU5UX1NPVVJDRV9ESVJ9KQotdGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXModXNyc2N0cC1z
dGF0aWMgUFVCTElDICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfSkKIAogaWYgKFdJTjMyKQog
CW1lc3NhZ2UoU1RBVFVTICJsaW5rIGxpYnJhcnk6IHdzMl8zMiIpCi0JdGFyZ2V0X2xpbmtfbGli
cmFyaWVzKHVzcnNjdHAgd3MyXzMyIGlwaGxwYXBpLmxpYikKLQl0YXJnZXRfbGlua19saWJyYXJp
ZXModXNyc2N0cC1zdGF0aWMgd3MyXzMyIGlwaGxwYXBpLmxpYikKKwl0YXJnZXRfbGlua19saWJy
YXJpZXModXNyc2N0cCB3czJfMzIgaXBobHBhcGkpCiBlbmRpZiAoKQogCi1zZXRfdGFyZ2V0X3By
b3BlcnRpZXModXNyc2N0cC1zdGF0aWMgUFJPUEVSVElFUyBPVVRQVVRfTkFNRSAidXNyc2N0cCIp
CiBzZXRfdGFyZ2V0X3Byb3BlcnRpZXModXNyc2N0cCBQUk9QRVJUSUVTIElNUE9SVF9TVUZGSVgg
Il9pbXBvcnQubGliIikKIHNldF90YXJnZXRfcHJvcGVydGllcyh1c3JzY3RwIFBST1BFUlRJRVMg
U09WRVJTSU9OIDEgVkVSU0lPTiAxLjAuMCkKIAotaWYgKE5PVCBERUZJTkVEIENNQUtFX0lOU1RB
TExfTElCRElSKQotCVNFVChDTUFLRV9JTlNUQUxMX0xJQkRJUiBsaWIpCi1lbmRpZiAoKQorIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBJTlNUQUxM
IExJQlJBUlkgQU5EIEhFQURFUgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIwogCitpbnN0YWxsKFRBUkdFVFMgdXNyc2N0cCBERVNUSU5BVElPTiAke0NN
QUtFX0lOU1RBTExfTElCRElSfSkKK2luc3RhbGwoRklMRVMgdXNyc2N0cC5oIERFU1RJTkFUSU9O
ICR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfSkKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBJTlNUQUxMIExJQlJBUlkgQU5EIEhFQURFUgor
IyBHRU5FUkFURSBBTkQgSU5TVEFMTCBQS0ctQ09ORklHIEZJTEUKICMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotaW5zdGFsbChUQVJHRVRTIHVzcnNj
dHAgdXNyc2N0cC1zdGF0aWMgREVTVElOQVRJT04gJHtDTUFLRV9JTlNUQUxMX0xJQkRJUn0pCi1p
bnN0YWxsKEZJTEVTIHVzcnNjdHAuaCBERVNUSU5BVElPTiBpbmNsdWRlKQorY29uZmlndXJlX2Zp
bGUoIiR7UFJPSkVDVF9TT1VSQ0VfRElSfS91c3JzY3RwLnBjLmluIiAiJHtDTUFLRV9DVVJSRU5U
X0JJTkFSWV9ESVJ9L3VzcnNjdHAucGMiIEBPTkxZKQoraW5zdGFsbChGSUxFUyAiJHtDTUFLRV9D
VVJSRU5UX0JJTkFSWV9ESVJ9L3VzcnNjdHAucGMiIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RB
TExfTElCRElSfS9wa2djb25maWciKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9u
ZXRpbmV0L3NjdHAuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwLmgKaW5kZXgg
OGQ4YmYzMWZlODAwNmE4MDgzODgzZmIxNzUyMzJjYjZlMWM4MGI1Yy4uZjBkYzM1YWQ1NjliYTY3
NjY0Njk3NTk3NmI0YzZhMzQwZDk5MmI5ZiAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxp
Yi9uZXRpbmV0L3NjdHAuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cC5o
CkBAIC0zNCw3ICszNCw3IEBACiAKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5l
ZChfX1VzZXJzcGFjZV9fKQogI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotX19GQlNESUQoIiRGcmVl
QlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHAuaCAzNTYzNTcgMjAyMC0wMS0wNCAyMDozMzoxMlog
dHVleGVuICQiKTsKK19fRkJTRElEKCIkRnJlZUJTRDogaGVhZC9zeXMvbmV0aW5ldC9zY3RwLmgg
MzY2NzUwIDIwMjAtMTAtMTYgMTA6NDQ6NDhaIHR1ZXhlbiAkIik7CiAjZW5kaWYKIAogI2lmbmRl
ZiBfTkVUSU5FVF9TQ1RQX0hfCkBAIC00MywxMCArNDMsOCBAQCBfX0ZCU0RJRCgiJEZyZWVCU0Q6
IGhlYWQvc3lzL25ldGluZXQvc2N0cC5oIDM1NjM1NyAyMDIwLTAxLTA0IDIwOjMzOjEyWiB0dWV4
ZW4gJAogI2lmIGRlZmluZWQoX19BUFBMRV9fKSB8fCBkZWZpbmVkKF9fbGludXhfXykKICNpbmNs
dWRlIDxzdGRpbnQuaD4KICNlbmRpZgotCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAKLQogI2lm
ICFkZWZpbmVkKF9XSU4zMikKICNkZWZpbmUgU0NUUF9QQUNLRUQgX19hdHRyaWJ1dGVfXygocGFj
a2VkKSkKICNlbHNlCkBAIC0xOTEsNyArMTg5LDYgQEAgc3RydWN0IHNjdHBfcGFyYW1oZHIgewog
I2RlZmluZSBTQ1RQX1NUUkVBTV9SRVNFVF9JTkNPTUlORwkweDAwMDAwMDAxCiAjZGVmaW5lIFND
VFBfU1RSRUFNX1JFU0VUX09VVEdPSU5HCTB4MDAwMDAwMDIKIAotCiAvKiBoZXJlIG9uIGRvd24g
YXJlIG1vcmUgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgKi8KICNkZWZpbmUgU0NUUF9TRVRfREVC
VUdfTEVWRUwJCTB4MDAwMDEwMDUKICNkZWZpbmUgU0NUUF9DTFJfU1RBVF9MT0cgICAgICAgICAg
ICAgICAweDAwMDAxMDA3CkBAIC0yMTMsNyArMjEwLDYgQEAgc3RydWN0IHNjdHBfcGFyYW1oZHIg
ewogI2RlZmluZSBTQ1RQX1BDQl9TVEFUVVMJCQkweDAwMDAxMTA0CiAjZGVmaW5lIFNDVFBfR0VU
X05PTkNFX1ZBTFVFUyAgICAgICAgICAgMHgwMDAwMTEwNQogCi0KIC8qIFNwZWNpYWwgaG9vayBm
b3IgZHluYW1pY2FsbHkgc2V0dGluZyBwcmltYXJ5IGZvciBhbGwgYXNzb2MncywKICAqIHRoaXMg
aXMgYSB3cml0ZSBvbmx5IG9wdGlvbiB0aGF0IHJlcXVpcmVzIHJvb3QgcHJpdmlsZWdlLgogICov
CkBAIC0zMzYsNyArMzMyLDYgQEAgc3RydWN0IHNjdHBfcGFyYW1oZHIgewogLyogRmlyc3QtY29t
ZSwgZmlyc3Qtc2VydmUgKi8KICNkZWZpbmUgU0NUUF9TU19GSVJTVF9DT01FCQkweDAwMDAwMDA1
CiAKLQogLyogZnJhZ21lbnQgaW50ZXJsZWF2ZSBjb25zdGFudHMKICAqIHNldHRpbmcgbXVzdCBi
ZSBvbmUgb2YgdGhlc2Ugb3IKICAqIEVJTlZBTCByZXR1cm5lZC4KQEAgLTYwNyw3ICs2MDIsNiBA
QCBzdHJ1Y3Qgc2N0cF9lcnJvcl9hdXRoX2ludmFsaWRfaG1hYyB7CiAjZGVmaW5lIFNDVFBfTU9C
SUxJVFlfRkFTVEhBTkRPRkYgICAgICAgIDB4MDAwMDAwMDIKICNkZWZpbmUgU0NUUF9NT0JJTElU
WV9QUklNX0RFTEVURUQgICAgICAgMHgwMDAwMDAwNAogCi0KIC8qIFNtYWxsZXN0IFBNVFUgYWxs
b3dlZCB3aGVuIGRpc2FibGluZyBQTVRVIGRpc2NvdmVyeSAqLwogI2RlZmluZSBTQ1RQX1NNQUxM
RVNUX1BNVFUgNTEyCiAvKiBMYXJnZXN0IFBNVFUgYWxsb3dlZCB3aGVuIGRpc2FibGluZyBQTVRV
IGRpc2NvdmVyeSAqLwpAQCAtNjMyLDkgKzYyNiw5IEBAIHN0cnVjdCBzY3RwX2Vycm9yX2F1dGhf
aW52YWxpZF9obWFjIHsKICAqLwogI2RlZmluZSBTQ1RQX01BWF9TQUNLX0RFTEFZIDUwMCAvKiBw
ZXIgUkZDNDk2MCAqLwogI2RlZmluZSBTQ1RQX01BWF9IQl9JTlRFUlZBTCAxNDQwMDAwMCAvKiA0
IGhvdXJzIGluIG1zICovCisjZGVmaW5lIFNDVFBfTUlOX0NPT0tJRV9MSUZFICAgICAxMDAwIC8q
IDEgc2Vjb25kIGluIG1zICovCiAjZGVmaW5lIFNDVFBfTUFYX0NPT0tJRV9MSUZFICAzNjAwMDAw
IC8qIDEgaG91ciBpbiBtcyAqLwogCi0KIC8qIFR5cGVzIG9mIGxvZ2dpbmcvS1RSIHRyYWNpbmcg
IHRoYXQgY2FuIGJlIGVuYWJsZWQgdmlhIHRoZQogICogc3lzY3RsIG5ldC5pbmV0LnNjdHAuc2N0
cF9sb2dnaW5nLiBZb3UgbXVzdCBhbHNvIGVuYWJsZQogICogU1VCU1lTIHRyYWNpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3Vz
cnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9hc2NvbmYuYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3Rw
bGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2FzY29uZi5jCmluZGV4IDgxZTJhY2ZkNTBhMWZi
MjUyMzlkZGViNjlkM2Y4NjRkNTRiYjkwZjMuLmNkMjk0NDM4OWYxOGYwNDM3ZGI3OGIwNjNkNGM1
MWExNTI0MTc2ODIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3Rw
X2FzY29uZi5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2FzY29uZi5j
CkBAIC0zNCw3ICszNCw3IEBACiAKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5l
ZChfX1VzZXJzcGFjZV9fKQogI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotX19GQlNESUQoIiRGcmVl
QlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfYXNjb25mLmMgMzYzMTk0IDIwMjAtMDctMTQgMjA6
MzI6NTBaIHR1ZXhlbiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0QkIik7CiAjZW5kaWYKIAogI2lu
Y2x1ZGUgPG5ldGluZXQvc2N0cF9vcy5oPgpAQCAtNTg0LDcgKzU4NCw2IEBAIHNjdHBfcHJvY2Vz
c19hc2NvbmZfc2V0X3ByaW1hcnkoc3RydWN0IHNvY2thZGRyICpzcmMsCiAJCSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU0NUUF9NT0JJTElUWV9QUklNX0RFTEVURUQpICYmCiAJCSAg
ICAoc3RjYi0+YXNvYy5wcmltYXJ5X2Rlc3RpbmF0aW9uLT5kZXN0X3N0YXRlICYKIAkJICAgICBT
Q1RQX0FERFJfVU5DT05GSVJNRUQpID09IDApIHsKLQogCQkJc2N0cF90aW1lcl9zdG9wKFNDVFBf
VElNRVJfVFlQRV9QUklNX0RFTEVURUQsCiAJCQkgICAgICAgICAgICAgICAgc3RjYi0+c2N0cF9l
cCwgc3RjYiwgTlVMTCwKIAkJCSAgICAgICAgICAgICAgICBTQ1RQX0ZST01fU0NUUF9BU0NPTkYg
KyBTQ1RQX0xPQ18xKTsKQEAgLTczOCw3ICs3MzcsNyBAQCBzY3RwX2hhbmRsZV9hc2NvbmYoc3Ry
dWN0IG1idWYgKm0sIHVuc2lnbmVkIGludCBvZmZzZXQsCiAJCQlzY3RwX21fZnJlZW0obV9hY2sp
OwogCQkJcmV0dXJuOwogCQl9Ci0JCWlmIChwYXJhbV9sZW5ndGggPD0gc2l6ZW9mKHN0cnVjdCBz
Y3RwX3BhcmFtaGRyKSkgeworCQlpZiAocGFyYW1fbGVuZ3RoIDwgc2l6ZW9mKHN0cnVjdCBzY3Rw
X2FzY29uZl9wYXJhbWhkcikpIHsKIAkJCVNDVFBEQkcoU0NUUF9ERUJVR19BU0NPTkYxLCAiaGFu
ZGxlX2FzY29uZjogcGFyYW0gbGVuZ3RoICgldSkgdG9vIHNob3J0XG4iLCBwYXJhbV9sZW5ndGgp
OwogCQkJc2N0cF9tX2ZyZWVtKG1fYWNrKTsKIAkJCXJldHVybjsKQEAgLTEwMDgsNyArMTAwNyw2
IEBAIHNjdHBfYXNjb25mX25ldHNfY2xlYW51cChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIHN0cnVj
dCBzY3RwX2lmbiAqaWZuKQogCX0KIH0KIAotCiB2b2lkCiBzY3RwX2Fzc29jX2ltbWVkaWF0ZV9y
ZXRyYW5zKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfbmV0cyAqZHN0bmV0KQog
ewpAQCAtMTM2OSw3ICsxMzY3LDYgQEAgc2N0cF9hc2NvbmZfcXVldWVfbWdtdChzdHJ1Y3Qgc2N0
cF90Y2IgKnN0Y2IsIHN0cnVjdCBzY3RwX2lmYSAqaWZhLAogCXJldHVybiAoMCk7CiB9CiAKLQog
LyoKICAqIGFkZCBhbiBhc2NvbmYgb3BlcmF0aW9uIGZvciB0aGUgZ2l2ZW4gaWZhIGFuZCB0eXBl
LgogICogdHlwZSA9IFNDVFBfQUREX0lQX0FERFJFU1MsIFNDVFBfREVMX0lQX0FERFJFU1MsIFND
VFBfU0VUX1BSSU1fQUREUi4KQEAgLTE3ODAsNyArMTc3Nyw3IEBAIHNjdHBfaGFuZGxlX2FzY29u
Zl9hY2soc3RydWN0IG1idWYgKm0sIGludCBvZmZzZXQsCiAJCQlzY3RwX2FzY29uZl9hY2tfY2xl
YXIoc3RjYik7CiAJCQlyZXR1cm47CiAJCX0KLQkJaWYgKHBhcmFtX2xlbmd0aCA8IHNpemVvZihz
dHJ1Y3Qgc2N0cF9wYXJhbWhkcikpIHsKKwkJaWYgKHBhcmFtX2xlbmd0aCA8IHNpemVvZihzdHJ1
Y3Qgc2N0cF9hc2NvbmZfcGFyYW1oZHIpKSB7CiAJCQlzY3RwX2FzY29uZl9hY2tfY2xlYXIoc3Rj
Yik7CiAJCQlyZXR1cm47CiAJCX0KQEAgLTIwNjEsNyArMjA1OCw2IEBAIHNjdHBfYWRkcl9tZ210
X2Fzc29jKHN0cnVjdCBzY3RwX2lucGNiICppbnAsIHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAl9
CiB9CiAKLQogaW50CiBzY3RwX2FzY29uZl9pdGVyYXRvcl9lcChzdHJ1Y3Qgc2N0cF9pbnBjYiAq
aW5wLCB2b2lkICpwdHIsIHVpbnQzMl90IHZhbCBTQ1RQX1VOVVNFRCkKIHsKQEAgLTIxMjUsNyAr
MjEyMSw2IEBAIHNjdHBfYXNjb25mX2l0ZXJhdG9yX2VwX2VuZChzdHJ1Y3Qgc2N0cF9pbnBjYiAq
aW5wLCB2b2lkICpwdHIsIHVpbnQzMl90IHZhbCBTQ1RQCiAJCQkJCWxhZGRyLT5hY3Rpb24gPSAw
OwogCQkJCQlicmVhazsKIAkJCQl9Ci0KIAkJCX0KIAkJfSBlbHNlIGlmIChsLT5hY3Rpb24gPT0g
U0NUUF9ERUxfSVBfQUREUkVTUykgewogCQkJTElTVF9GT1JFQUNIX1NBRkUobGFkZHIsICZpbnAt
PnNjdHBfYWRkcl9saXN0LCBzY3RwX254dF9hZGRyLCBubGFkZHIpIHsKQEAgLTIyNzIsNyArMjI2
Nyw2IEBAIHNjdHBfYXNjb25mX2l0ZXJhdG9yX3N0Y2Ioc3RydWN0IHNjdHBfaW5wY2IgKmlucCwg
c3RydWN0IHNjdHBfdGNiICpzdGNiLAogCQkJCQkgKi8KIAkJCQkJc3RjYi0+YXNvYy5jY19mdW5j
dGlvbnMuc2N0cF9zZXRfaW5pdGlhbF9jY19wYXJhbShzdGNiLCBuZXQpOwogCQkJCQluZXQtPlJU
TyA9IDA7Ci0KIAkJCQl9CiAJCQl9CiAJCX0gZWxzZSBpZiAodHlwZSA9PSBTQ1RQX1NFVF9QUklN
X0FERFIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2Fz
Y29uZi5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91
c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfYXNjb25mLmgKaW5kZXgg
ZTE3MWEwYjU2MTc2MzJmMGIwNWIwMTM3MjU2YmZkNjMwZjZiNjYzOC4uMzg2ODk0OTIwODQ2MDFm
NjNmNmRiNzg2YTQwMTg4NzFhOThkN2U2MSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxp
Yi9uZXRpbmV0L3NjdHBfYXNjb25mLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0
L3NjdHBfYXNjb25mLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2lmIGRlZmluZWQoX19GcmVlQlNE
X18pICYmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+Ci1f
X0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF9hc2NvbmYuaCAzNjIzNzcg
MjAyMC0wNi0xOSAxMjozNToyOVogdHVleGVuICQiKTsKK19fRkJTRElEKCIkRnJlZUJTRDogaGVh
ZC9zeXMvbmV0aW5ldC9zY3RwX2FzY29uZi5oIDM2NTA3MSAyMDIwLTA5LTAxIDIxOjE5OjE0WiBt
amcgJCIpOwogI2VuZGlmCiAKICNpZm5kZWYgX05FVElORVRfU0NUUF9BU0NPTkZfSF8KQEAgLTYx
LDcgKzYxLDYgQEAgZXh0ZXJuIHVpbnQzMl90CiBzY3RwX2FkZHJfbWdtdF9lcF9zYShzdHJ1Y3Qg
c2N0cF9pbnBjYiAqLCBzdHJ1Y3Qgc29ja2FkZHIgKiwgdWludDMyX3QsCiAgICAgICAgICAgICAg
ICAgICAgICB1aW50MzJfdCk7CiAKLQogZXh0ZXJuIGludCBzY3RwX2FzY29uZl9pdGVyYXRvcl9l
cChzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wLCB2b2lkICpwdHIsCiAJCQkJICAgdWludDMyX3QgdmFs
KTsKIGV4dGVybiB2b2lkIHNjdHBfYXNjb25mX2l0ZXJhdG9yX3N0Y2Ioc3RydWN0IHNjdHBfaW5w
Y2IgKmlucCwKQEAgLTY5LDcgKzY4LDYgQEAgZXh0ZXJuIHZvaWQgc2N0cF9hc2NvbmZfaXRlcmF0
b3Jfc3RjYihzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wLAogCQkJCSAgICAgIHZvaWQgKnB0ciwgdWlu
dDMyX3QgdHlwZSk7CiBleHRlcm4gdm9pZCBzY3RwX2FzY29uZl9pdGVyYXRvcl9lbmQodm9pZCAq
cHRyLCB1aW50MzJfdCB2YWwpOwogCi0KIGV4dGVybiBpbnQzMl90CiBzY3RwX3NldF9wcmltYXJ5
X2lwX2FkZHJlc3Nfc2Eoc3RydWN0IHNjdHBfdGNiICosCiAgICAgc3RydWN0IHNvY2thZGRyICop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfYXV0aC5jIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3Vz
cnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfYXV0aC5jCmluZGV4IDNhOGZhYzA3MzEx
Y2JiYWJkYjliNWU3MWNiOTI4MDA1ZGMwYzY1MWMuLjkyODFlMDc4MDM5Njk3NjFhOGQ2NzVkNGZm
MGQ0YTFhZWMxZjQ1NTUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9z
Y3RwX2F1dGguYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9hdXRoLmMK
QEAgLTM0LDcgKzM0LDcgQEAKIAogI2lmIGRlZmluZWQoX19GcmVlQlNEX18pICYmICFkZWZpbmVk
KF9fVXNlcnNwYWNlX18pCiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+Ci1fX0ZCU0RJRCgiJEZyZWVC
U0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF9hdXRoLmMgMzYyMDU0IDIwMjAtMDYtMTEgMTM6MzQ6
MDlaIHR1ZXhlbiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0
cF9hdXRoLmMgMzY1MDcxIDIwMjAtMDktMDEgMjE6MTk6MTRaIG1qZyAkIik7CiAjZW5kaWYKIAog
I2luY2x1ZGUgPG5ldGluZXQvc2N0cF9vcy5oPgpAQCAtNTMsNyArNTMsNiBAQCBfX0ZCU0RJRCgi
JEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF9hdXRoLmMgMzYyMDU0IDIwMjAtMDYtMTEg
MTM6MzQ6MDlaIHR1ZQogI2RlZmluZSBTQ1RQX0FVVEhfREVCVUcyCShTQ1RQX0JBU0VfU1lTQ1RM
KHNjdHBfZGVidWdfb24pICYgU0NUUF9ERUJVR19BVVRIMikKICNlbmRpZiAvKiBTQ1RQX0RFQlVH
ICovCiAKLQogdm9pZAogc2N0cF9jbGVhcl9jaHVua2xpc3Qoc2N0cF9hdXRoX2Noa2xpc3RfdCAq
Y2hrbGlzdCkKIHsKQEAgLTEwMSw3ICsxMDAsNiBAQCBzY3RwX2NvcHlfY2h1bmtsaXN0KHNjdHBf
YXV0aF9jaGtsaXN0X3QgKmxpc3QpCiAJcmV0dXJuIChuZXdfbGlzdCk7CiB9CiAKLQogLyoKICAq
IGFkZCBhIGNodW5rIHRvIHRoZSByZXF1aXJlZCBjaHVua3MgbGlzdAogICovCkBAIC0yNDEsNyAr
MjM5LDYgQEAgc2N0cF91bnBhY2tfYXV0aF9jaHVua3MoY29uc3QgdWludDhfdCAqcHRyLCB1aW50
OF90IG51bV9jaHVua3MsCiAJcmV0dXJuIChzaXplKTsKIH0KIAotCiAvKgogICogYWxsb2NhdGUg
c3RydWN0dXJlIHNwYWNlIGZvciBhIGtleSBvZiBsZW5ndGgga2V5bGVuCiAgKi8KQEAgLTQ1OCw3
ICs0NTUsNiBAQCBzY3RwX2NvbXB1dGVfaGFzaGtleShzY3RwX2tleV90ICprZXkxLCBzY3RwX2tl
eV90ICprZXkyLCBzY3RwX2tleV90ICpzaGFyZWQpCiAJcmV0dXJuIChuZXdfa2V5KTsKIH0KIAot
CiBzY3RwX3NoYXJlZGtleV90ICoKIHNjdHBfYWxsb2Nfc2hhcmVka2V5KHZvaWQpCiB7CkBAIC02
MzIsNyArNjI4LDYgQEAgc2N0cF9jb3B5X3NrZXlsaXN0KGNvbnN0IHN0cnVjdCBzY3RwX2tleWhl
YWQgKnNyYywgc3RydWN0IHNjdHBfa2V5aGVhZCAqZGVzdCkKIAlyZXR1cm4gKGNvdW50KTsKIH0K
IAotCiBzY3RwX2htYWNsaXN0X3QgKgogc2N0cF9hbGxvY19obWFjbGlzdCh1aW50MTZfdCBudW1f
aG1hY3MpCiB7CkBAIC04MjYsNyArODIxLDYgQEAgc2N0cF9mcmVlX2F1dGhpbmZvKHNjdHBfYXV0
aGluZm9fdCAqYXV0aGluZm8pCiAJLyogU0NUUF9GUkVFKGF1dGhpbmZvLCBTQ1RQX01fQVVUSF8/
Pyk7ICovCiB9CiAKLQogdWludDMyX3QKIHNjdHBfZ2V0X2F1dGhfY2h1bmtfbGVuKHVpbnQxNl90
IGhtYWNfYWxnbykKIHsKQEAgLTExNjYsNyArMTE2MCw2IEBAIHNjdHBfYXV0aF9pc19zdXBwb3J0
ZWRfaG1hYyhzY3RwX2htYWNsaXN0X3QgKmxpc3QsIHVpbnQxNl90IGlkKQogCXJldHVybiAoMCk7
CiB9CiAKLQogLyotCiAgKiBjbGVhciBhbnkgY2FjaGVkIGtleShzKSBpZiB0aGV5IG1hdGNoIHRo
ZSBnaXZlbiBrZXkgaWQgb24gYW4gYXNzb2NpYXRpb24uCiAgKiB0aGUgY2FjaGVkIGtleShzKSB3
aWxsIGJlIHJlY29tcHV0ZWQgYW5kIHJlLWNhY2hlZCBhdCBuZXh0IHVzZS4KQEAgLTE1NzksNyAr
MTU3Miw2IEBAIHNjdHBfZmlsbF9obWFjX2RpZ2VzdF9tKHN0cnVjdCBtYnVmICptLCB1aW50MzJf
dCBhdXRoX29mZnNldCwKIAkJCQkgIG0sIGF1dGhfb2Zmc2V0LCBhdXRoLT5obWFjKTsKIH0KIAot
CiBzdGF0aWMgdm9pZAogc2N0cF96ZXJvX20oc3RydWN0IG1idWYgKm0sIHVpbnQzMl90IG1fb2Zm
c2V0LCB1aW50MzJfdCBzaXplKQogewpAQCAtMTY0NSwxMCArMTYzNyw4IEBAIHNjdHBfaGFuZGxl
X2F1dGgoc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF9hdXRoX2NodW5rICphdXRo
LAogCQkiU0NUUCBBVVRIIENodW5rOiBzaGFyZWQga2V5ICV1LCBITUFDIGlkICV1XG4iLAogCQlz
aGFyZWRfa2V5X2lkLCBobWFjX2lkKTsKIAotI2lmIGRlZmluZWQoX19Vc2Vyc3BhY2VfXykKLSNp
ZmRlZiBGVVpaSU5HX0JVSUxEX01PREVfVU5TQUZFX0ZPUl9QUk9EVUNUSU9OCisjaWYgZGVmaW5l
ZChfX1VzZXJzcGFjZV9fKSAmJiBkZWZpbmVkKEZVWlpJTkdfQlVJTERfTU9ERV9VTlNBRkVfRk9S
X1BST0RVQ1RJT04pCiAJcmV0dXJuICgwKTsKLSNlbmRpZgogI2VuZGlmCiAJLyogaXMgdGhlIGlu
ZGljYXRlZCBITUFDIHN1cHBvcnRlZD8gKi8KIAlpZiAoIXNjdHBfYXV0aF9pc19zdXBwb3J0ZWRf
aG1hYyhzdGNiLT5hc29jLmxvY2FsX2htYWNzLCBobWFjX2lkKSkgewpAQCAtMTgwMCw3ICsxNzkw
LDYgQEAgc2N0cF9ub3RpZnlfYXV0aGVudGljYXRpb24oc3RydWN0IHNjdHBfdGNiICpzdGNiLCB1
aW50MzJfdCBpbmRpY2F0aW9uLAogCSAgICAmc3RjYi0+c2N0cF9zb2NrZXQtPnNvX3JjdiwgMSwg
U0NUUF9SRUFEX0xPQ0tfTk9UX0hFTEQsIHNvX2xvY2tlZCk7CiB9CiAKLQogLyotCiAgKiB2YWxp
ZGF0ZXMgdGhlIEFVVEhlbnRpY2F0aW9uIHJlbGF0ZWQgcGFyYW1ldGVycyBpbiBhbiBJTklUL0lO
SVQtQUNLCiAgKiBOb3RlOiBjdXJyZW50bHkgb25seSB1c2VkIGZvciBJTklUIGFzIElOSVQtQUNL
IGlzIGhhbmRsZWQgaW5saW5lCkBAIC0xOTE1LDcgKzE5MDQsNiBAQCBzY3RwX3ZhbGlkYXRlX2lu
aXRfYXV0aF9wYXJhbXMoc3RydWN0IG1idWYgKm0sIGludCBvZmZzZXQsIGludCBsaW1pdCkKIAkJ
CQkJc2F3X2FzY29uZiA9IDE7CiAJCQkJaWYgKGNodW5rcy0+Y2h1bmtfdHlwZXNbaV0gPT0gU0NU
UF9BU0NPTkZfQUNLKQogCQkJCQlzYXdfYXNjb25mX2FjayA9IDE7Ci0KIAkJCX0KIAkJCWlmIChu
dW1fY2h1bmtzKQogCQkJCWdvdF9jaGtsaXN0ID0gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3Vz
cnNjdHBsaWIvbmV0aW5ldC9zY3RwX2F1dGguaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5l
dC9zY3RwX2F1dGguaAppbmRleCAzZGM1YTU5ZTI4Y2MxZjM3MzM0OGFmYmMwN2Y5YTc1NzJkMmY3
MjRmLi5kNDNhZGE5MGRhNjI0ZWRiZWFiY2NmMTQwMzdkNTdmYWM5MjI3NWYyIDEwMDc1NQotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAv
dXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9hdXRoLmgKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIv
dXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfYXV0aC5oCkBAIC0zNCw3ICszNCw3IEBACiAKICNpZiBk
ZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogI2luY2x1ZGUg
PHN5cy9jZGVmcy5oPgotX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBf
YXV0aC5oIDMzODc0OSAyMDE4LTA5LTE4IDEwOjUzOjA3WiB0dWV4ZW4gJCIpOworX19GQlNESUQo
IiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfYXV0aC5oIDM2NTA3MSAyMDIwLTA5LTAx
IDIxOjE5OjE0WiBtamcgJCIpOwogI2VuZGlmCiAKICNpZm5kZWYgX05FVElORVRfU0NUUF9BVVRI
X0hfCkBAIC05OSw4ICs5OSw2IEBAIHR5cGVkZWYgc3RydWN0IHNjdHBfYXV0aGluZm9ybWF0aW9u
IHsKIAl1aW50MTZfdCByZWN2X2tleWlkOwkvKiBsYXN0IHJlY3Yga2V5aWQgKGNhY2hlZCkgKi8K
IH0gc2N0cF9hdXRoaW5mb190OwogCi0KLQogLyoKICAqIE1hY3JvcwogICovCkBAIC0xNDksNyAr
MTQ3LDYgQEAgZXh0ZXJuIHZvaWQgc2N0cF9hdXRoX2tleV9hY3F1aXJlKHN0cnVjdCBzY3RwX3Rj
YiAqc3RjYiwgdWludDE2X3Qga2V5aWQpOwogZXh0ZXJuIHZvaWQgc2N0cF9hdXRoX2tleV9yZWxl
YXNlKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgdWludDE2X3Qga2V5aWQsCiAgICAgaW50IHNvX2xv
Y2tlZCk7CiAKLQogLyogaG1hYyBsaXN0IGhhbmRsaW5nICovCiBleHRlcm4gc2N0cF9obWFjbGlz
dF90ICpzY3RwX2FsbG9jX2htYWNsaXN0KHVpbnQxNl90IG51bV9obWFjcyk7CiBleHRlcm4gdm9p
ZCBzY3RwX2ZyZWVfaG1hY2xpc3Qoc2N0cF9obWFjbGlzdF90ICpsaXN0KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91
c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2JzZF9hZGRyLmMgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91
c3JzY3RwbGliL25ldGluZXQvc2N0cF9ic2RfYWRkci5jCmluZGV4IDQwZTMwOGY4ZjJlYjQ2ZGQ3
YWUxYjdiYTZjZDAyZjY5NTNjYTM4MjkuLmZhN2I4Nzc2NmJkNDJhOWZjOTYyODc3MWM2MTQ0NTkz
ZGZlN2ZhODIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2Jz
ZF9hZGRyLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfYnNkX2FkZHIu
YwpAQCAtMzQsNyArMzQsNyBAQAogCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmlu
ZWQoX19Vc2Vyc3BhY2VfXykKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJl
ZUJTRDogaGVhZC9zeXMvbmV0aW5ldC9zY3RwX2JzZF9hZGRyLmMgMzU4MDgwIDIwMjAtMDItMTgg
MTk6NDE6NTVaIHR1ZXhlbiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGlu
ZXQvc2N0cF9ic2RfYWRkci5jIDM2NjQyNiAyMDIwLTEwLTA0IDE1OjM3OjM0WiB0dWV4ZW4gJCIp
OwogI2VuZGlmCiAKICNpbmNsdWRlIDxuZXRpbmV0L3NjdHBfb3MuaD4KQEAgLTc4LDggKzc4LDgg
QEAgTUFMTE9DX0RFRklORShTQ1RQX01fTUNPUkUsICJzY3RwX21jb3JlIiwgInNjdHAgbWNvcmUg
cXVldWUiKTsKIAogLyogR2xvYmFsIE5PTi1WTkVUIHN0cnVjdHVyZSB0aGF0IGNvbnRyb2xzIHRo
ZSBpdGVyYXRvciAqLwogc3RydWN0IGl0ZXJhdG9yX2NvbnRyb2wgc2N0cF9pdF9jdGw7Ci0KICNp
ZiAhKGRlZmluZWQoX19GcmVlQlNEX18pICYmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pKQorCiBz
dGF0aWMgdm9pZAogc2N0cF9jbGVhbnVwX2l0cXVldWUodm9pZCkKIHsKQEAgLTI0NCw3ICsyNDQs
NiBAQCBzY3RwX2dhdGhlcl9pbnRlcm5hbF9pZmFfZmxhZ3Moc3RydWN0IHNjdHBfaWZhICppZmEp
CiAjZW5kaWYgLyogX19Vc2Vyc3BhY2VfXyAqLwogI2VuZGlmIC8qIElORVQ2ICovCiAKLQogI2lm
ICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiBzdGF0aWMgdWludDMyX3QKIHNjdHBfaXNfZGVzaXJl
ZF9pbnRlcmZhY2VfdHlwZShzdHJ1Y3QgaWZuZXQgKmlmbikKQEAgLTI5NCwxMyArMjkzLDE0IEBA
IHNjdHBfaXNfZGVzaXJlZF9pbnRlcmZhY2VfdHlwZShzdHJ1Y3QgaWZuZXQgKmlmbikKIAlyZXR1
cm4gKHJlc3VsdCk7CiB9CiAjZW5kaWYKLQogI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiAhZGVm
aW5lZChfX1VzZXJzcGFjZV9fKQorCiBpbnQKIHNjdHBfaXNfdm13YXJlX2ludGVyZmFjZShzdHJ1
Y3QgaWZuZXQgKmlmbikKIHsKIAlyZXR1cm4gKHN0cm5jbXAoaWZuZXRfbmFtZShpZm4pLCAidm1u
ZXQiLCA1KSA9PSAwKTsKIH0KKwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKF9XSU4zMikgJiYgZGVm
aW5lZChfX1VzZXJzcGFjZV9fKQpAQCAtNDc2LDcgKzQ3Niw2IEBAIHNjdHBfaW5pdF9pZm5zX2Zv
cl92cmYoaW50IHZyZmlkKQogI2VuZGlmCiB9CiAjZW5kaWYKLQogI2lmIGRlZmluZWQoX19BUFBM
RV9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogc3RhdGljIHZvaWQKIHNjdHBfaW5pdF9p
Zm5zX2Zvcl92cmYoaW50IHZyZmlkKQpAQCAtNTU1LDcgKzU1NCw2IEBAIHNjdHBfaW5pdF9pZm5z
X2Zvcl92cmYoaW50IHZyZmlkKQogCWlmbmV0X2xpc3RfZnJlZShpZm5ldGxpc3QpOwogfQogI2Vu
ZGlmCi0KICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9f
KQogc3RhdGljIHZvaWQKIHNjdHBfaW5pdF9pZm5zX2Zvcl92cmYoaW50IHZyZmlkKQpAQCAtNzE5
LDcgKzcxNyw2IEBAIHNjdHBfYWRkcl9jaGFuZ2Uoc3RydWN0IGlmYWRkciAqaWZhLCBpbnQgY21k
KQogI2VuZGlmCiAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopaWZhLCBpZmEt
PmlmYV9hZGRyLCBpZmFfZmxhZ3MsIDEpOwogCX0gZWxzZSB7Ci0KIAkJc2N0cF9kZWxfYWRkcl9m
cm9tX3ZyZihTQ1RQX0RFRkFVTFRfVlJGSUQsIGlmYS0+aWZhX2FkZHIsCiAjaWYgZGVmaW5lZChf
X0FQUExFX18pICYmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAJCSAgICAgICAgICAgICAgICAg
ICAgICAgaWZuZXRfaW5kZXgoaWZhLT5pZmFfaWZwKSwKQEAgLTc5MSw3ICs3ODgsNyBAQCBzY3Rw
X2dldF9tYnVmX2Zvcl9tc2codW5zaWduZWQgaW50IHNwYWNlX25lZWRlZCwgaW50IHdhbnRfaGVh
ZGVyLAogCQkJbV9mcmVlbShtKTsKIAkJCXJldHVybiAoTlVMTCk7CiAJCX0KLQkJS0FTU0VSVChT
Q1RQX0JVRl9ORVhUKG0pID09IE5VTEwsICgiJXM6IG5vIGNoYWluIGFsbG93ZWQiLCBfX0ZVTkNU
SU9OX18pKTsKKwkJS0FTU0VSVChTQ1RQX0JVRl9ORVhUKG0pID09IE5VTEwsICgiJXM6IG5vIGNo
YWluIGFsbG93ZWQiLCBfX2Z1bmNfXykpOwogCX0KICNlbmRpZgogI2lmZGVmIFNDVFBfTUJVRl9M
T0dHSU5HCkBAIC04NDUsNyArODQyLDYgQEAgc2N0cF9nZXRfbWJ1Zl9mb3JfbXNnKHVuc2lnbmVk
IGludCBzcGFjZV9uZWVkZWQsIGludCB3YW50X2hlYWRlciwKIAlyZXR1cm4gKG0pOwogfQogCi0K
ICNpZmRlZiBTQ1RQX1BBQ0tFVF9MT0dHSU5HCiB2b2lkCiBzY3RwX3BhY2tldF9sb2coc3RydWN0
IG1idWYgKm0pCkBAIC05MjEsNyArOTE3LDYgQEAgc2N0cF9wYWNrZXRfbG9nKHN0cnVjdCBtYnVm
ICptKQogCQkgICAgICAgICAgICBTQ1RQX0JBU0VfVkFSKHBhY2tldF9sb2dfZW5kKSk7CiAJCVND
VFBfQkFTRV9WQVIocGFja2V0X2xvZ19lbmQpID0gMDsKIAkJZ290byBub19sb2c7Ci0KIAl9CiAJ
bGVuYXQgPSAoaW50ICopJlNDVFBfQkFTRV9WQVIocGFja2V0X2xvZ19idWZmZXIpW3RoaXNiZWdp
bl07CiAJKmxlbmF0ID0gdG90YWxfbGVuOwpAQCAtOTQ3LDcgKzk0Miw2IEBAIHNjdHBfcGFja2V0
X2xvZyhzdHJ1Y3QgbWJ1ZiAqbSkKIAlhdG9taWNfc3VidHJhY3RfaW50KCZTQ1RQX0JBU0VfVkFS
KHBhY2tldF9sb2dfd3JpdGVycyksIDEpOwogfQogCi0KIGludAogc2N0cF9jb3B5X291dF9wYWNr
ZXRfbG9nKHVpbnQ4X3QgKnRhcmdldCwgaW50IGxlbmd0aCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3Rw
bGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2JzZF9hZGRyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3Rw
bGliL25ldGluZXQvc2N0cF9ic2RfYWRkci5oCmluZGV4IDA1ZDFiM2ZlZWZhMjQxMDE4MWEyZjkw
ZDk0ZjY4MmM4NzdkYWQ1YjcuLmQ2YWI5MWI1YjViODYyZmJmMGFlYzlmM2YzZWQ0NmM1NjlkMDEy
MGIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2JzZF9hZGRy
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91
c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfYnNkX2FkZHIuaApAQCAt
MzQsNyArMzQsNyBAQAogCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19V
c2Vyc3BhY2VfXykKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJlZUJTRDog
aGVhZC9zeXMvbmV0aW5ldC9zY3RwX2JzZF9hZGRyLmggMzUzNDgwIDIwMTktMTAtMTMgMTg6MTc6
MDhaIHR1ZXhlbiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0
cF9ic2RfYWRkci5oIDM2NTA3MSAyMDIwLTA5LTAxIDIxOjE5OjE0WiBtamcgJCIpOwogI2VuZGlm
CiAKICNpZm5kZWYgX05FVElORVRfU0NUUF9CU0RfQUREUl9IXwpAQCAtNDksNyArNDksNiBAQCB2
b2lkIHNjdHBfd2FrZXVwX2l0ZXJhdG9yKHZvaWQpOwogCiB2b2lkIHNjdHBfc3RhcnR1cF9pdGVy
YXRvcih2b2lkKTsKIAotCiAjaWZkZWYgSU5FVDYKIHZvaWQgc2N0cF9nYXRoZXJfaW50ZXJuYWxf
aWZhX2ZsYWdzKHN0cnVjdCBzY3RwX2lmYSAqaWZhKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNj
dHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfY2NfZnVuY3Rpb25zLmMgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91
c3JzY3RwbGliL25ldGluZXQvc2N0cF9jY19mdW5jdGlvbnMuYwppbmRleCBkY2Y2Mjk4NTc5YTAx
NzYxZmZiYzhjNzNjMzgxZmNhY2Y2NDA5NDI1Li41N2JjZGFhYTVhMDVkMzkyNjBmNGQzNTU2MTky
ODVjZjBlNzk2OTcyIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0
cF9jY19mdW5jdGlvbnMuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9j
Y19mdW5jdGlvbnMuYwpAQCAtMzQsNyArMzQsNyBAQAogCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0Rf
XykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9f
RkJTRElEKCIkRnJlZUJTRDogaGVhZC9zeXMvbmV0aW5ldC9zY3RwX2NjX2Z1bmN0aW9ucy5jIDM1
OTQwNSAyMDIwLTAzLTI4IDIwOjI1OjQ1WiB0dWV4ZW4gJCIpOworX19GQlNESUQoIiRGcmVlQlNE
OiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfY2NfZnVuY3Rpb25zLmMgMzY2NTE3IDIwMjAtMTAtMDcg
MTU6MjI6NDhaIHR1ZXhlbiAkIik7CiAjZW5kaWYKIAogI2luY2x1ZGUgPG5ldGluZXQvc2N0cF9v
cy5oPgpAQCAtNjQsNyArNjQsNyBAQCBzY3RwX2VuZm9yY2VfY3duZF9saW1pdChzdHJ1Y3Qgc2N0
cF9hc3NvY2lhdGlvbiAqYXNzb2MsIHN0cnVjdCBzY3RwX25ldHMgKm5ldCkKIAlpZiAoKGFzc29j
LT5tYXhfY3duZCA+IDApICYmCiAJICAgIChuZXQtPmN3bmQgPiBhc3NvYy0+bWF4X2N3bmQpICYm
CiAJICAgIChuZXQtPmN3bmQgPiAobmV0LT5tdHUgLSBzaXplb2Yoc3RydWN0IHNjdHBoZHIpKSkp
IHsKLQkJbmV0LT5jd25kID0gYXNzb2MtPm1heF9jd25kIDsKKwkJbmV0LT5jd25kID0gYXNzb2Mt
Pm1heF9jd25kOwogCQlpZiAobmV0LT5jd25kIDwgKG5ldC0+bXR1IC0gc2l6ZW9mKHN0cnVjdCBz
Y3RwaGRyKSkpIHsKIAkJCW5ldC0+Y3duZCA9IG5ldC0+bXR1IC0gc2l6ZW9mKHN0cnVjdCBzY3Rw
aGRyKTsKIAkJfQpAQCAtMTYzLDcgKzE2Myw2IEBAIHNjdHBfY3duZF91cGRhdGVfYWZ0ZXJfZnIo
c3RydWN0IHNjdHBfdGNiICpzdGNiLAogCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodWludDY0X3QpbmV0LT5tdHUgKgogCQkJCQkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAodWludDY0X3QpbmV0LT5zc3RocmVzaCkgLwogCQkJCQkJICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90KXRfc3N0aHJlc2gpOwotCiAJCQkJCX0KIAkJCQkJ
aWYgKGFzb2MtPnNjdHBfY210X29uX29mZiA9PSBTQ1RQX0NNVF9SUFYyKSB7CiAJCQkJCQl1aW50
MzJfdCBzcnR0OwpAQCAtMjUxLDE1ICsyNTAsMTQgQEAgc2N0cF9jd25kX3VwZGF0ZV9hZnRlcl9m
cihzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAjZGVmaW5lIFNDVFBfSU5TVF9ORVVUUkFMIDIgLyog
TmV1dHJhbCwgbm8gaW5kaWNhdGlvbiAqLwogI2RlZmluZSBTQ1RQX0lOU1RfR0FJTklORyAzIC8q
IEdhaW5pbmcsIHN0ZXAgZG93biBwb3NzaWJsZSAqLwogCi0KICNpZiBkZWZpbmVkKF9fRnJlZUJT
RF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogc3RhdGljIGludAogY2NfYndfc2FtZShz
dHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIHN0cnVjdCBzY3RwX25ldHMgKm5ldCwgdWludDY0X3QgbmJ3
LAotCSAgIHVpbnQ2NF90IHJ0dF9vZmZzZXQsIHVpbnQ2NF90IHZ0YWcsIHVpbnQ4X3QgaW5zdF9p
bmQpCisgICAgICAgICAgIHVpbnQ2NF90IHJ0dF9vZmZzZXQsIHVpbnQ2NF90IHZ0YWcsIHVpbnQ4
X3QgaW5zdF9pbmQpCiAjZWxzZQogc3RhdGljIGludAogY2NfYndfc2FtZShzdHJ1Y3Qgc2N0cF90
Y2IgKnN0Y2IgU0NUUF9VTlVTRUQsIHN0cnVjdCBzY3RwX25ldHMgKm5ldCwgdWludDY0X3QgbmJ3
LAotCSAgIHVpbnQ2NF90IHJ0dF9vZmZzZXQsIHVpbnQ4X3QgaW5zdF9pbmQpCisgICAgICAgICAg
IHVpbnQ2NF90IHJ0dF9vZmZzZXQsIHVpbnQ4X3QgaW5zdF9pbmQpCiAjZW5kaWYKIHsKICNpZiBk
ZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQpAQCAtNDEwLDEx
ICs0MDgsMTEgQEAgY2NfYndfc2FtZShzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IgU0NUUF9VTlVTRUQs
IHN0cnVjdCBzY3RwX25ldHMgKm5ldCwgdWludDY0X3QgbmIKICNpZiBkZWZpbmVkKF9fRnJlZUJT
RF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogc3RhdGljIGludAogY2NfYndfZGVjcmVh
c2Uoc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF9uZXRzICpuZXQsIHVpbnQ2NF90
IG5idywgdWludDY0X3QgcnR0X29mZnNldCwKLQkgICAgICAgdWludDY0X3QgdnRhZywgdWludDhf
dCBpbnN0X2luZCkKKyAgICAgICAgICAgICAgIHVpbnQ2NF90IHZ0YWcsIHVpbnQ4X3QgaW5zdF9p
bmQpCiAjZWxzZQogc3RhdGljIGludAogY2NfYndfZGVjcmVhc2Uoc3RydWN0IHNjdHBfdGNiICpz
dGNiIFNDVFBfVU5VU0VELCBzdHJ1Y3Qgc2N0cF9uZXRzICpuZXQsIHVpbnQ2NF90IG5idywgdWlu
dDY0X3QgcnR0X29mZnNldCwKLQkgICAgICAgdWludDhfdCBpbnN0X2luZCkKKyAgICAgICAgICAg
ICAgIHVpbnQ4X3QgaW5zdF9pbmQpCiAjZW5kaWYKIHsKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9f
KSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQpAQCAtODE3LDcgKzgxNSw2IEBAIHNjdHBfY3du
ZF91cGRhdGVfYWZ0ZXJfc2Fja19jb21tb24oc3RydWN0IHNjdHBfdGNiICpzdGNiLAogCS8qIHVw
ZGF0ZSBjd25kIGFuZCBFYXJseSBGUiAgICovCiAJLyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKi8KIAlUQUlMUV9GT1JFQUNIKG5ldCwgJmFzb2MtPm5ldHMsIHNjdHBfbmV4dCkgewotCiAj
aWZkZWYgSkFOQV9DTVRfRkFTVF9SRUNPVkVSWQogCQkvKgogCQkgKiBDTVQgZmFzdCByZWNvdmVy
eSBjb2RlLiBOZWVkIHRvIGRlYnVnLgpAQCAtODM3LDcgKzgzNCw3IEBAIHNjdHBfY3duZF91cGRh
dGVfYWZ0ZXJfc2Fja19jb21tb24oc3RydWN0IHNjdHBfdGNiICpzdGNiLAogCQkJY29udGludWU7
CiAJCX0KICNpZmRlZiBKQU5BX0NNVF9GQVNUX1JFQ09WRVJZCi0gICAgICAgICAgICAgICAgLyog
Q01UIGZhc3QgcmVjb3ZlcnkgY29kZQorCQkvKiBDTVQgZmFzdCByZWNvdmVyeSBjb2RlCiAJCSAq
LwogCQkvKgogCQkgIGlmIChzY3RwX2NtdF9vbl9vZmYgPiAwICYmIG5ldC0+ZmFzdF9yZXRyYW5f
bG9zc19yZWNvdmVyeSAmJiBuZXQtPndpbGxfZXhpdF9mYXN0X3JlY292ZXJ5ID09IDApIHsKQEAg
LTEwMDgsNyArMTAwNSw3IEBAIHNjdHBfY3duZF91cGRhdGVfYWZ0ZXJfc2Fja19jb21tb24oc3Ry
dWN0IHNjdHBfdGNiICpzdGNiLAogCQkJICAgICAgICBuZXQtPnBhcnRpYWxfYnl0ZXNfYWNrZWQg
Kz0gbmV0LT5uZXRfYWNrOwogCiAJCQkJaWYgKChuZXQtPmZsaWdodF9zaXplICsgbmV0LT5uZXRf
YWNrID49IG5ldC0+Y3duZCkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChuZXQtPnBhcnRpYWxfYnl0ZXNfYWNrZWQgPj0gbmV0LT5jd25kKSkgeworCQkJCSAgICAobmV0
LT5wYXJ0aWFsX2J5dGVzX2Fja2VkID49IG5ldC0+Y3duZCkpIHsKIAkJCQkJbmV0LT5wYXJ0aWFs
X2J5dGVzX2Fja2VkIC09IG5ldC0+Y3duZDsKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAh
ZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogCQkJCQlvbGRfY3duZCA9IG5ldC0+Y3duZDsKQEAgLTEx
MDEsNyArMTA5OCw2IEBAIHNjdHBfY3duZF91cGRhdGVfZXhpdF9wZl9jb21tb24oc3RydWN0IHNj
dHBfdGNiICpzdGNiIFNDVFBfVU5VU0VELCBzdHJ1Y3Qgc2N0cF9uCiAJICAgICAgICAodm9pZCAq
KW5ldCwgbmV0LT5jd25kKTsKIH0KIAotCiBzdGF0aWMgdm9pZAogc2N0cF9jd25kX3VwZGF0ZV9h
ZnRlcl90aW1lb3V0KHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfbmV0cyAqbmV0
KQogewpAQCAtMTE3OSw3ICsxMTc1LDcgQEAgc2N0cF9jd25kX3VwZGF0ZV9hZnRlcl90aW1lb3V0
KHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfbmV0cyAqbmV0KQogCiBzdGF0aWMg
dm9pZAogc2N0cF9jd25kX3VwZGF0ZV9hZnRlcl9lY25fZWNob19jb21tb24oc3RydWN0IHNjdHBf
dGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF9uZXRzICpuZXQsCi0JCQkJCSAgICBpbnQgaW5fd2luZG93
LCBpbnQgbnVtX3BrdF9sb3N0LCBpbnQgdXNlX3J0Y2MpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgaW5fd2luZG93LCBpbnQgbnVtX3BrdF9sb3N0LCBpbnQgdXNl
X3J0Y2MpCiB7CiAJaW50IG9sZF9jd25kID0gbmV0LT5jd25kOwogCWlmICgodXNlX3J0Y2MpICYm
IChuZXQtPmxhbl90eXBlID09IFNDVFBfTEFOX0xPQ0FMKSAmJiAobmV0LT5jY19tb2QucnRjYy51
c2VfZGNjY19lY24pKSB7CkBAIC0xMjA3LDEwICsxMjAzLDkgQEAgc2N0cF9jd25kX3VwZGF0ZV9h
ZnRlcl9lY25fZWNob19jb21tb24oc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF9u
ZXRzICoKIAkJCWlmIChTQ1RQX0JBU0VfU1lTQ1RMKHNjdHBfbG9nZ2luZ19sZXZlbCkgJiBTQ1RQ
X0NXTkRfTU9OSVRPUl9FTkFCTEUpIHsKIAkJCQlzY3RwX2xvZ19jd25kKHN0Y2IsIG5ldCwgKG5l
dC0+Y3duZCAtIG9sZF9jd25kKSwgU0NUUF9DV05EX0xPR19GUk9NX1NBVCk7CiAJCQl9Ci0KIAkJ
fQogCQlTQ1RQX1NUQVRfSU5DUihzY3Rwc19lY25lcmVkdWNlZGN3bmQpOwotCX0gIGVsc2Ugewor
CX0gZWxzZSB7CiAJCWlmIChpbl93aW5kb3cgPT0gMCkgewogCQkJU0NUUF9TVEFUX0lOQ1Ioc2N0
cHNfZWNuZXJlZHVjZWRjd25kKTsKIAkJCW5ldC0+c3N0aHJlc2ggPSBuZXQtPmN3bmQgLyAyOwpA
QCAtMTM1Nyw3ICsxMzUyLDcgQEAgc2N0cF9jd25kX3VwZGF0ZV9hZnRlcl9wYWNrZXRfZHJvcHBl
ZChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAKIHN0YXRpYyB2b2lkCiBzY3RwX2N3bmRfdXBkYXRl
X2FmdGVyX291dHB1dChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCi0JCQkgICAgICBzdHJ1Y3Qgc2N0
cF9uZXRzICpuZXQsIGludCBidXJzdF9saW1pdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0cnVjdCBzY3RwX25ldHMgKm5ldCwgaW50IGJ1cnN0X2xpbWl0KQogewogCWludCBvbGRf
Y3duZCA9IG5ldC0+Y3duZDsKIApAQCAtMTM4MSw4ICsxMzc2LDggQEAgc2N0cF9jd25kX3VwZGF0
ZV9hZnRlcl9vdXRwdXQoc3RydWN0IHNjdHBfdGNiICpzdGNiLAogCiBzdGF0aWMgdm9pZAogc2N0
cF9jd25kX3VwZGF0ZV9hZnRlcl9zYWNrKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKLQkJCSAgICBz
dHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKLQkJCSAgICBpbnQgYWNjdW1fbW92ZWQsIGlu
dCByZW5lZ2VkX2FsbCwgaW50IHdpbGxfZXhpdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgYWNjdW1fbW92ZWQsIGludCByZW5lZ2VkX2FsbCwgaW50IHdpbGxfZXhpdCkKIHsK
IAkvKiBQYXNzaW5nIGEgemVybyBhcmd1bWVudCBpbiBsYXN0IGRpc2FibGVzIHRoZSBydGNjIGFs
Z29yaXRobSAqLwogCXNjdHBfY3duZF91cGRhdGVfYWZ0ZXJfc2Fja19jb21tb24oc3RjYiwgYXNv
YywgYWNjdW1fbW92ZWQsIHJlbmVnZWRfYWxsLCB3aWxsX2V4aXQsIDApOwpAQCAtMTM5MCw3ICsx
Mzg1LDcgQEAgc2N0cF9jd25kX3VwZGF0ZV9hZnRlcl9zYWNrKHN0cnVjdCBzY3RwX3RjYiAqc3Rj
YiwKIAogc3RhdGljIHZvaWQKIHNjdHBfY3duZF91cGRhdGVfYWZ0ZXJfZWNuX2VjaG8oc3RydWN0
IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF9uZXRzICpuZXQsCi0JaW50IGluX3dpbmRvdywg
aW50IG51bV9wa3RfbG9zdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlu
X3dpbmRvdywgaW50IG51bV9wa3RfbG9zdCkKIHsKIAkvKiBQYXNzaW5nIGEgemVybyBhcmd1bWVu
dCBpbiBsYXN0IGRpc2FibGVzIHRoZSBydGNjIGFsZ29yaXRobSAqLwogCXNjdHBfY3duZF91cGRh
dGVfYWZ0ZXJfZWNuX2VjaG9fY29tbW9uKHN0Y2IsIG5ldCwgaW5fd2luZG93LCBudW1fcGt0X2xv
c3QsIDApOwpAQCAtMTQwMywyMiArMTM5OCwyMCBAQCBzY3RwX2N3bmRfdXBkYXRlX2FmdGVyX2Vj
bl9lY2hvKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfbmV0cyAqbmV0LAogICov
CiBzdGF0aWMgdm9pZAogc2N0cF9jd25kX3VwZGF0ZV9ydGNjX2FmdGVyX2Vjbl9lY2hvKHN0cnVj
dCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfbmV0cyAqbmV0LAotCQkJCSAgICAgaW50IGlu
X3dpbmRvdywgaW50IG51bV9wa3RfbG9zdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgaW5fd2luZG93LCBpbnQgbnVtX3BrdF9sb3N0KQogewogCXNjdHBfY3duZF91
cGRhdGVfYWZ0ZXJfZWNuX2VjaG9fY29tbW9uKHN0Y2IsIG5ldCwgaW5fd2luZG93LCBudW1fcGt0
X2xvc3QsIDEpOwogfQogCi0KLXN0YXRpYwotdm9pZCBzY3RwX2N3bmRfdXBkYXRlX3J0Y2NfdHNu
X2Fja25vd2xlZGdlZChzdHJ1Y3Qgc2N0cF9uZXRzICpuZXQsCi0JCQkJCSAgICBzdHJ1Y3Qgc2N0
cF90bWl0X2NodW5rICp0cDEpCitzdGF0aWMgdm9pZCBzY3RwX2N3bmRfdXBkYXRlX3J0Y2NfdHNu
X2Fja25vd2xlZGdlZChzdHJ1Y3Qgc2N0cF9uZXRzICpuZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2N0cF90bWl0X2NodW5rICp0
cDEpCiB7CiAJbmV0LT5jY19tb2QucnRjYy5id19ieXRlcyArPSB0cDEtPnNlbmRfc2l6ZTsKIH0K
IAogc3RhdGljIHZvaWQKIHNjdHBfY3duZF9wcmVwYXJlX3J0Y2NfbmV0X2Zvcl9zYWNrKHN0cnVj
dCBzY3RwX3RjYiAqc3RjYiBTQ1RQX1VOVVNFRCwKLQkJCQkgICAgc3RydWN0IHNjdHBfbmV0cyAq
bmV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjdHBfbmV0
cyAqbmV0KQogewogCWlmIChuZXQtPmNjX21vZC5ydGNjLnRsc19uZWVkc19zZXQgPiAwKSB7CiAJ
CS8qIFdlIGhhZCBhIGJ3IG1lYXN1cm1lbnQgZ29pbmcgb24gKi8KQEAgLTE0MzEsNyArMTQyNCw3
IEBAIHNjdHBfY3duZF9wcmVwYXJlX3J0Y2NfbmV0X2Zvcl9zYWNrKHN0cnVjdCBzY3RwX3RjYiAq
c3RjYiBTQ1RQX1VOVVNFRCwKIAogc3RhdGljIHZvaWQKIHNjdHBfY3duZF9uZXdfcnRjY190cmFu
c21pc3Npb25fYmVnaW5zKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKLQkJCQkgICAgICAgc3RydWN0
IHNjdHBfbmV0cyAqbmV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IHNjdHBfbmV0cyAqbmV0KQogewogI2lmIGRlZmluZWQoX19GcmVlQlNEX18pICYmICFk
ZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAJdWludDY0X3QgdnRhZywgcHJvYmVwb2ludDsKQEAgLTE0
OTIsNyArMTQ4NSw3IEBAIHNjdHBfY3duZF9uZXdfcnRjY190cmFuc21pc3Npb25fYmVnaW5zKHN0
cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAogc3RhdGljIHZvaWQKIHNjdHBfc2V0X3J0Y2NfaW5pdGlh
bF9jY19wYXJhbShzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCi0JCQkgICAgICAgc3RydWN0IHNjdHBf
bmV0cyAqbmV0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzY3RwX25l
dHMgKm5ldCkKIHsKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJz
cGFjZV9fKQogCXVpbnQ2NF90IHZ0YWcsIHByb2JlcG9pbnQ7CkBAIC0xNTI3LDE1ICsxNTIwLDE0
IEBAIHNjdHBfc2V0X3J0Y2NfaW5pdGlhbF9jY19wYXJhbShzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2Is
CiAJbmV0LT5jY19tb2QucnRjYy51c2VfZGNjY19lY24gPSBTQ1RQX0JBU0VfU1lTQ1RMKHNjdHBf
dXNlX2RjY2NfZWNuKTsKIAluZXQtPmNjX21vZC5ydGNjLnN0ZXBfY250ID0gMDsKIAluZXQtPmNj
X21vZC5ydGNjLmxhc3Rfc3RlcF9zdGF0ZSA9IDA7Ci0KLQogfQogCiBzdGF0aWMgaW50CiBzY3Rw
X2N3bmRfcnRjY19zb2NrZXRfb3B0aW9uKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgaW50IHNldG9y
Z2V0LAotCQkJICAgICBzdHJ1Y3Qgc2N0cF9jY19vcHRpb24gKmNjX29wdCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RydWN0IHNjdHBfY2Nfb3B0aW9uICpjY19vcHQpCiB7CiAJc3Ry
dWN0IHNjdHBfbmV0cyAqbmV0OworCiAJaWYgKHNldG9yZ2V0ID09IDEpIHsKIAkJLyogYSBzZXQg
Ki8KIAkJaWYgKGNjX29wdC0+b3B0aW9uID09IFNDVFBfQ0NfT1BUX1JUQ0NfU0VUTU9ERSkgewpA
QCAtMTYwMCw4ICsxNTkyLDggQEAgc2N0cF9jd25kX3VwZGF0ZV9ydGNjX3BhY2tldF90cmFuc21p
dHRlZChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IgU0NUUF9VTlVTRUQsCiAKIHN0YXRpYyB2b2lkCiBz
Y3RwX2N3bmRfdXBkYXRlX3J0Y2NfYWZ0ZXJfc2FjayhzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCi0J
CQkJIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLAotCQkJCSBpbnQgYWNjdW1fbW92ZWQs
IGludCByZW5lZ2VkX2FsbCwgaW50IHdpbGxfZXhpdCkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IGFjY3VtX21vdmVkLCBpbnQgcmVuZWdlZF9hbGwsIGludCB3
aWxsX2V4aXQpCiB7CiAJLyogUGFzc2luZyBhIG9uZSBhcmd1bWVudCBhdCB0aGUgbGFzdCBlbmFi
bGVzIHRoZSBydGNjIGFsZ29yaXRobSAqLwogCXNjdHBfY3duZF91cGRhdGVfYWZ0ZXJfc2Fja19j
b21tb24oc3RjYiwgYXNvYywgYWNjdW1fbW92ZWQsIHJlbmVnZWRfYWxsLCB3aWxsX2V4aXQsIDEp
OwpAQCAtMTg0MiwxNSArMTgzNCwxNCBAQCBzY3RwX2hzX2N3bmRfdXBkYXRlX2FmdGVyX2ZyKHN0
cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAogc3RhdGljIHZvaWQKIHNjdHBfaHNfY3duZF91cGRhdGVf
YWZ0ZXJfc2FjayhzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCi0JCSBzdHJ1Y3Qgc2N0cF9hc3NvY2lh
dGlvbiAqYXNvYywKLQkJIGludCBhY2N1bV9tb3ZlZCwgaW50IHJlbmVnZWRfYWxsIFNDVFBfVU5V
U0VELCBpbnQgd2lsbF9leGl0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj
dCBzY3RwX2Fzc29jaWF0aW9uICphc29jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBhY2N1bV9tb3ZlZCwgaW50IHJlbmVnZWRfYWxsIFNDVFBfVU5VU0VELCBpbnQgd2lsbF9l
eGl0KQogewogCXN0cnVjdCBzY3RwX25ldHMgKm5ldDsKIAkvKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqLwogCS8qIHVwZGF0ZSBjd25kIGFuZCBFYXJseSBGUiAgICovCiAJLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKi8KIAlUQUlMUV9GT1JFQUNIKG5ldCwgJmFzb2MtPm5ldHMs
IHNjdHBfbmV4dCkgewotCiAjaWZkZWYgSkFOQV9DTVRfRkFTVF9SRUNPVkVSWQogCQkvKgogCQkg
KiBDTVQgZmFzdCByZWNvdmVyeSBjb2RlLiBOZWVkIHRvIGRlYnVnLgpAQCAtMTg3MCw3ICsxODYx
LDcgQEAgc2N0cF9oc19jd25kX3VwZGF0ZV9hZnRlcl9zYWNrKHN0cnVjdCBzY3RwX3RjYiAqc3Rj
YiwKIAkJCWNvbnRpbnVlOwogCQl9CiAjaWZkZWYgSkFOQV9DTVRfRkFTVF9SRUNPVkVSWQotICAg
ICAgICAgICAgICAgIC8qIENNVCBmYXN0IHJlY292ZXJ5IGNvZGUKKwkJLyogQ01UIGZhc3QgcmVj
b3ZlcnkgY29kZQogCQkgKi8KIAkJLyoKIAkJaWYgKHNjdHBfY210X29uX29mZiA+IDAgJiYgbmV0
LT5mYXN0X3JldHJhbl9sb3NzX3JlY292ZXJ5ICYmIG5ldC0+d2lsbF9leGl0X2Zhc3RfcmVjb3Zl
cnkgPT0gMCkgewpAQCAtMTkzNCw3ICsxOTI1LDYgQEAgc2N0cF9oc19jd25kX3VwZGF0ZV9hZnRl
cl9zYWNrKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAl9CiB9CiAKLQogLyoKICAqIEgtVENQIGNv
bmdlc3Rpb24gY29udHJvbC4gVGhlIGFsZ29yaXRobSBpcyBkZXRhaWxlZCBpbjoKICAqIFIuTi5T
aG9ydGVuLCBELkouTGVpdGg6CkBAIC0xOTQzLDcgKzE5MzMsNiBAQCBzY3RwX2hzX2N3bmRfdXBk
YXRlX2FmdGVyX3NhY2soc3RydWN0IHNjdHBfdGNiICpzdGNiLAogICogaHR0cDovL3d3dy5oYW1p
bHRvbi5pZS9uZXQvaHRjcDMucGRmCiAgKi8KIAotCiBzdGF0aWMgaW50IHVzZV9ydHRfc2NhbGlu
ZyA9IDE7CiBzdGF0aWMgaW50IHVzZV9iYW5kd2lkdGhfc3dpdGNoID0gMTsKIApAQCAtMjA4MSwx
OSArMjA3MCwxOSBAQCBodGNwX2FscGhhX3VwZGF0ZShzdHJ1Y3QgaHRjcCAqY2EpCiAKIAlpZiAo
ZGlmZiA+ICh1aW50MzJfdCloeikgewogCQlkaWZmIC09IGh6OwotCQlmYWN0b3IgPSAxKyAoIDEw
KmRpZmYgKyAoKGRpZmYvMikqKGRpZmYvMikvaHopKS9oejsKKwkJZmFjdG9yID0gMSsgKDEwICog
ZGlmZiArICgoZGlmZiAvIDIpICogKGRpZmYgLyAyKSAvIGh6KSkgLyBoejsKIAl9CiAKIAlpZiAo
dXNlX3J0dF9zY2FsaW5nICYmIG1pblJUVCkgewotCQl1aW50MzJfdCBzY2FsZSA9IChoejw8Mykv
KDEwKm1pblJUVCk7Ci0JCXNjYWxlID0gbWluKG1heChzY2FsZSwgMVU8PDIpLCAxMFU8PDMpOyAv
KiBjbGFtcGluZyByYXRpbyB0byBpbnRlcnZhbCBbMC41LDEwXTw8MyAqLwotCQlmYWN0b3IgPSAo
ZmFjdG9yPDwzKS9zY2FsZTsKLQkJaWYgKCFmYWN0b3IpCisJCXVpbnQzMl90IHNjYWxlID0gKGh6
IDw8IDMpIC8gKDEwICogbWluUlRUKTsKKwkJc2NhbGUgPSBtaW4obWF4KHNjYWxlLCAxVSA8PCAy
KSwgMTBVIDw8IDMpOyAvKiBjbGFtcGluZyByYXRpbyB0byBpbnRlcnZhbCBbMC41LDEwXTw8MyAq
LworCQlmYWN0b3IgPSAoZmFjdG9yIDw8IDMpIC8gc2NhbGU7CisJCWlmIChmYWN0b3IgIT0gMCkK
IAkJCWZhY3RvciA9IDE7CiAJfQogCi0JY2EtPmFscGhhID0gMipmYWN0b3IqKCgxPDw3KS1jYS0+
YmV0YSk7Ci0JaWYgKCFjYS0+YWxwaGEpCisJY2EtPmFscGhhID0gMiAqIGZhY3RvciAqICgoMSA8
PCA3KSAtIGNhLT5iZXRhKTsKKwlpZiAoY2EtPmFscGhhICE9IDApCiAJCWNhLT5hbHBoYSA9IEFM
UEhBX0JBU0U7CiB9CiAKQEAgLTIxMzEsMTAgKzIxMjAsMTAgQEAgaHRjcF9jb25nX2F2b2lkKHN0
cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfbmV0cyAqbmV0KQogewogCS8qLQogCSAq
IEhvdyB0byBoYW5kbGUgdGhlc2UgZnVuY3Rpb25zPwotICAgICAgICAgKglpZiAoIXRjcF9pc19j
d25kX2xpbWl0ZWQoc2ssIGluX2ZsaWdodCkpIFJSUyAtIGdvb2QgcXVlc3Rpb24uCisJICoJaWYg
KCF0Y3BfaXNfY3duZF9saW1pdGVkKHNrLCBpbl9mbGlnaHQpKSBSUlMgLSBnb29kIHF1ZXN0aW9u
LgogCSAqCQlyZXR1cm47CiAJICovCi0gICAgICAgIGlmIChuZXQtPmN3bmQgPD0gbmV0LT5zc3Ro
cmVzaCkgeworCWlmIChuZXQtPmN3bmQgPD0gbmV0LT5zc3RocmVzaCkgewogCQkvKiBXZSBhcmUg
aW4gc2xvdyBzdGFydCAqLwogCQlpZiAobmV0LT5mbGlnaHRfc2l6ZSArIG5ldC0+bmV0X2FjayA+
PSBuZXQtPmN3bmQpIHsKIAkJCWlmIChuZXQtPm5ldF9hY2sgPiAobmV0LT5tdHUgKiBTQ1RQX0JB
U0VfU1lTQ1RMKHNjdHBfTDJfYWJjX3ZhcmlhYmxlKSkpIHsKQEAgLTIxNTAsNyArMjEzOSw2IEBA
IGh0Y3BfY29uZ19hdm9pZChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIHN0cnVjdCBzY3RwX25ldHMg
Km5ldCkKIAkJCQkJc2N0cF9sb2dfY3duZChzdGNiLCBuZXQsIG5ldC0+bmV0X2FjaywKIAkJCQkJ
CVNDVFBfQ1dORF9MT0dfRlJPTV9TUyk7CiAJCQkJfQotCiAJCQl9CiAJCQlzY3RwX2VuZm9yY2Vf
Y3duZF9saW1pdCgmc3RjYi0+YXNvYywgbmV0KTsKIAkJfSBlbHNlIHsKQEAgLTIxNjcsNyArMjE1
NSw3IEBAIGh0Y3BfY29uZ19hdm9pZChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIHN0cnVjdCBzY3Rw
X25ldHMgKm5ldCkKIAkJICovCiAJCS8qIFdoYXQgaXMgc25kX2N3bmRfY250Pz8gKi8KIAkJaWYg
KCgobmV0LT5wYXJ0aWFsX2J5dGVzX2Fja2VkL25ldC0+bXR1ICogbmV0LT5jY19tb2QuaHRjcF9j
YS5hbHBoYSkgPj4gNykqbmV0LT5tdHUgPj0gbmV0LT5jd25kKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAvKi0KKwkJCS8qLQogCQkJICogRG9lcyBTQ1RQIGhhdmUgYSBjd25kIGNsYW1wPwog
CQkJICogaWYgKG5ldC0+c25kX2N3bmQgPCBuZXQtPnNuZF9jd25kX2NsYW1wKSAtIE5vcGUgKFJS
UykuCiAJCQkgKi8KQEAgLTIyMzgsNyArMjIyNiw2IEBAIHNjdHBfaHRjcF9jd25kX3VwZGF0ZV9h
ZnRlcl9zYWNrKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAkvKiB1cGRhdGUgY3duZCBhbmQgRWFy
bHkgRlIgICAqLwogCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAJVEFJTFFfRk9S
RUFDSChuZXQsICZhc29jLT5uZXRzLCBzY3RwX25leHQpIHsKLQogI2lmZGVmIEpBTkFfQ01UX0ZB
U1RfUkVDT1ZFUlkKIAkJLyoKIAkJICogQ01UIGZhc3QgcmVjb3ZlcnkgY29kZS4gTmVlZCB0byBk
ZWJ1Zy4KQEAgLTIyNTgsNyArMjI0NSw3IEBAIHNjdHBfaHRjcF9jd25kX3VwZGF0ZV9hZnRlcl9z
YWNrKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAkJCWNvbnRpbnVlOwogCQl9CiAjaWZkZWYgSkFO
QV9DTVRfRkFTVF9SRUNPVkVSWQotICAgICAgICAgICAgICAgIC8qIENNVCBmYXN0IHJlY292ZXJ5
IGNvZGUKKwkJLyogQ01UIGZhc3QgcmVjb3ZlcnkgY29kZQogCQkgKi8KIAkJLyoKIAkJaWYgKHNj
dHBfY210X29uX29mZiA+IDAgJiYgbmV0LT5mYXN0X3JldHJhbl9sb3NzX3JlY292ZXJ5ICYmIG5l
dC0+d2lsbF9leGl0X2Zhc3RfcmVjb3ZlcnkgPT0gMCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIv
dXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfY29uc3RhbnRzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGli
L25ldGluZXQvc2N0cF9jb25zdGFudHMuaAppbmRleCBiOTMyZDdmMTkxNDllMTE2YzZjNDMxNzVj
ZjIxNWJhZTEyYzVlNzk3Li5iOGUyZjJkNTgxZjNiMjY2NjU2OTQ2NWIyYWY2ZDJmMGRiZjdiMTY3
IDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9jb25zdGFudHMu
aAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3Vz
cnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9jb25zdGFudHMuaApAQCAt
MzQsNyArMzQsNyBAQAogCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19V
c2Vyc3BhY2VfXykKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJlZUJTRDog
aGVhZC9zeXMvbmV0aW5ldC9zY3RwX2NvbnN0YW50cy5oIDM2MzQ0MCAyMDIwLTA3LTIzIDAxOjM1
OjI0WiB0dWV4ZW4gJCIpOworX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3Nj
dHBfY29uc3RhbnRzLmggMzY1MDcxIDIwMjAtMDktMDEgMjE6MTk6MTRaIG1qZyAkIik7CiAjZW5k
aWYKIAogI2lmbmRlZiBfTkVUSU5FVF9TQ1RQX0NPTlNUQU5UU19IXwpAQCAtNDIsOCArNDIsOCBA
QCBfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF9jb25zdGFudHMuaCAz
NjM0NDAgMjAyMC0wNy0yMyAwMTozNToyNAogCiAjaWYgZGVmaW5lZChfV0lOMzIpICYmIGRlZmlu
ZWQoX19Vc2Vyc3BhY2VfXykKIGV4dGVybiB2b2lkIGdldHdpbnRpbWVvZmRheShzdHJ1Y3QgdGlt
ZXZhbCAqdHYpOwotI2VuZGlmCiAKKyNlbmRpZgogLyogSUFOQSBhc3NpZ25lZCBwb3J0IG51bWJl
ciBmb3IgU0NUUCBvdmVyIFVEUCBlbmNhcHN1bGF0aW9uICovCiAjZGVmaW5lIFNDVFBfT1ZFUl9V
RFBfVFVOTkVMSU5HX1BPUlQgOTg5OQogCkBAIC05MiwxMyArOTIsMTEgQEAgZXh0ZXJuIHZvaWQg
Z2V0d2ludGltZW9mZGF5KHN0cnVjdCB0aW1ldmFsICp0dik7CiAvKiAjZGVmaW5lIFNDVFBfQVVE
SVRJTkdfRU5BQkxFRCAxIHVzZWQgZm9yIGRlYnVnL2F1ZGl0aW5nICovCiAjZGVmaW5lIFNDVFBf
QVVESVRfU0laRSAyNTYKIAotCiAjZGVmaW5lIFNDVFBfS1RSSEVBRF9OQU1FICJzY3RwX2l0ZXJh
dG9yIgogI2RlZmluZSBTQ1RQX0tUSFJFQURfUEFHRVMgMAogCiAjZGVmaW5lIFNDVFBfTUNPUkVf
TkFNRSAic2N0cF9jb3JlX3dvcmtlciIKIAotCiAvKiBJZiB5b3Ugc3VwcG9ydCBNdWx0aS1WUkYg
aG93IGJpZyB0bwogICogbWFrZSB0aGUgaW5pdGlhbCBhcnJheSBvZiBWUkYncyB0by4KICAqLwpA
QCAtMjY4LDcgKzI2Niw2IEBAIGV4dGVybiB2b2lkIGdldHdpbnRpbWVvZmRheShzdHJ1Y3QgdGlt
ZXZhbCAqdHYpOwogCiAjZGVmaW5lIFNDVFBfTE9DS19VTktOT1dOIDIKIAotCiAvKiBudW1iZXIg
b2YgYXNzb2NpYXRpb25zIGJ5IGRlZmF1bHQgZm9yIHpvbmUgYWxsb2NhdGlvbiAqLwogI2RlZmlu
ZSBTQ1RQX01BWF9OVU1fT0ZfQVNPQwk0MDAwMAogLyogaG93IG1hbnkgYWRkcmVzc2VzIHBlciBh
c3NvYyByZW1vdGUgYW5kIGxvY2FsICovCkBAIC0zOTMsNyArMzkwLDYgQEAgZXh0ZXJuIHZvaWQg
Z2V0d2ludGltZW9mZGF5KHN0cnVjdCB0aW1ldmFsICp0dik7CiAjZGVmaW5lIElTX1NDVFBfQ09O
VFJPTChhKSAoKChhKS0+Y2h1bmtfdHlwZSAhPSBTQ1RQX0RBVEEpICYmICgoYSktPmNodW5rX3R5
cGUgIT0gU0NUUF9JREFUQSkpCiAjZGVmaW5lIElTX1NDVFBfREFUQShhKSAoKChhKS0+Y2h1bmtf
dHlwZSA9PSBTQ1RQX0RBVEEpIHx8ICgoYSktPmNodW5rX3R5cGUgPT0gU0NUUF9JREFUQSkpCiAK
LQogLyogU0NUUCBwYXJhbWV0ZXIgdHlwZXMgKi8KIC8qKioqKioqKioqKioqMHgwMDAwIHNlcmll
cyoqKioqKioqKioqKiovCiAjZGVmaW5lIFNDVFBfSEVBUlRCRUFUX0lORk8JCTB4MDAwMQpAQCAt
NDU4LDcgKzQ1NCw2IEBAIGV4dGVybiB2b2lkIGdldHdpbnRpbWVvZmRheShzdHJ1Y3QgdGltZXZh
bCAqdHYpOwogLyogbWFzayB0byBnZXQgc3RpY2t5ICovCiAjZGVmaW5lIFNDVFBfU1RJQ0tZX09Q
VElPTlNfTUFTSwkweDBjCiAKLQogLyoKICAqIFNDVFAgc3RhdGVzIGZvciBpbnRlcm5hbCBzdGF0
ZSBtYWNoaW5lCiAgKi8KQEAgLTU2MiwxMiArNTU3LDExIEBAIGV4dGVybiB2b2lkIGdldHdpbnRp
bWVvZmRheShzdHJ1Y3QgdGltZXZhbCAqdHYpOwogI2RlZmluZSBTQ1RQX0lTX1RJTUVSX1RZUEVf
VkFMSUQodCkJKCgodCkgPiBTQ1RQX1RJTUVSX1RZUEVfTk9ORSkgJiYgXAogCQkJCQkgKCh0KSA8
IFNDVFBfVElNRVJfVFlQRV9MQVNUKSkKIAotCiAjaWYgZGVmaW5lZChfX0FQUExFX18pICYmICFk
ZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAvKiBOdW1iZXIgb2YgdGlja3MgdG8gcnVuIHRoZSBtYWlu
IHRpbWVyIGF0IGluIG1zZWMgKi8KICNkZWZpbmUgU0NUUF9NQUlOX1RJTUVSX0RFRkFVTFQJCTEw
Ci0jZW5kaWYKIAorI2VuZGlmCiAvKiBtYXggbnVtYmVyIG9mIFRTTidzIGR1cCdkIHRoYXQgSSB3
aWxsIGhvbGQgKi8KICNkZWZpbmUgU0NUUF9NQVhfRFVQX1RTTlMJMjAKIApAQCAtNjE4LDcgKzYx
Miw2IEBAIGV4dGVybiB2b2lkIGdldHdpbnRpbWVvZmRheShzdHJ1Y3QgdGltZXZhbCAqdHYpOwog
I2RlZmluZSBTQ1RQX1JUT19MT1dFUl9CT1VORAkoMTAwMCkJLyogMSBzZWMgaXMgbXMgKi8KICNk
ZWZpbmUgU0NUUF9SVE9fSU5JVElBTAkoMzAwMCkJLyogMyBzZWMgaW4gbXMgKi8KIAotCiAjZGVm
aW5lIFNDVFBfSU5QX0tJTExfVElNRU9VVCAyMAkvKiBudW1iZXIgb2YgbXMgdG8gcmV0cnkga2ls
bCBvZiBpbnBjYiAqLwogI2RlZmluZSBTQ1RQX0FTT0NfS0lMTF9USU1FT1VUIDEwCS8qIG51bWJl
ciBvZiBtcyB0byByZXRyeSBraWxsIG9mIGlucGNiICovCiAKQEAgLTYyOSw3ICs2MjIsNiBAQCBl
eHRlcm4gdm9pZCBnZXR3aW50aW1lb2ZkYXkoc3RydWN0IHRpbWV2YWwgKnR2KTsKIAogI2RlZmlu
ZSBTQ1RQX0RFRl9QTVRVX1JBSVNFX1NFQwk2MDAJLyogMTAgbWluIGJldHdlZW4gcmFpc2UgYXR0
ZW1wdHMgKi8KIAotCiAvKiBIb3cgbWFueSBzdHJlYW1zIEkgcmVxdWVzdCBpbml0aWFsbHkgYnkg
ZGVmYXVsdCAqLwogI2RlZmluZSBTQ1RQX09TVFJFQU1fSU5JVElBTCAxMAogI2RlZmluZSBTQ1RQ
X0lTVFJFQU1fSU5JVElBTCAyMDQ4CkBAIC03MTIsNyArNzA0LDYgQEAgZXh0ZXJuIHZvaWQgZ2V0
d2ludGltZW9mZGF5KHN0cnVjdCB0aW1ldmFsICp0dik7CiAjZGVmaW5lIFNDVFBfTlVNQkVSX09G
X1NFQ1JFVFMJOAkvKiBvciA4ICogNCA9IDMyIG9jdGV0cyAqLwogI2RlZmluZSBTQ1RQX1NFQ1JF
VF9TSVpFCTMyCS8qIG51bWJlciBvZiBvY3RldHMgaW4gYSAyNTYgYml0cyAqLwogCi0KIC8qCiAg
KiBTQ1RQIHVwcGVyIGxheWVyIG5vdGlmaWNhdGlvbnMKICAqLwpAQCAtODM1LDcgKzgyNiw2IEBA
IGV4dGVybiB2b2lkIGdldHdpbnRpbWVvZmRheShzdHJ1Y3QgdGltZXZhbCAqdHYpOwogI2RlZmlu
ZSBTQ1RQX0RPTk9UX1NFVFNDT1BFIDAKICNkZWZpbmUgU0NUUF9ET19TRVRTQ09QRSAxCiAKLQog
LyogVGhpcyB2YWx1ZSBkZXRlcm1pbmVzIHRoZSBkZWZhdWx0IGZvciB3aGVuCiAgKiB3ZSB0cnkg
dG8gYWRkIG1vcmUgb24gdGhlIHNlbmQgcXVldWUuLCBpZgogICogdGhlcmUgaXMgcm9vbS4gVGhp
cyBwcmV2ZW50cyB1cyBmcm9tIGN5Y2xpbmcKQEAgLTkxOCw3ICs5MDgsNiBAQCBleHRlcm4gdm9p
ZCBnZXR3aW50aW1lb2ZkYXkoc3RydWN0IHRpbWV2YWwgKnR2KTsKIAkJCQkJfSBcCiAgICAgICAg
ICAgICAgICAgICB9IHdoaWxlICgwKQogCi0KICNkZWZpbmUgU0NUUF9SRVRSQU5fRE9ORSAtMQog
I2RlZmluZSBTQ1RQX1JFVFJBTl9FWElUIC0yCiAKQEAgLTk3NCw3ICs5NjMsNiBAQCBleHRlcm4g
dm9pZCBnZXR3aW50aW1lb2ZkYXkoc3RydWN0IHRpbWV2YWwgKnR2KTsKICNkZWZpbmUgU0NUUF9T
T19MT0NLRUQJCTEKICNkZWZpbmUgU0NUUF9TT19OT1RfTE9DS0VECTAKIAotCiAvKi0KICAqIEZv
ciBhZGRyZXNzIGxvY2tzLCBkbyB3ZSBob2xkIHRoZSBsb2NrPwogICovCkBAIC0xMDA4LDcgKzk5
Niw2IEBAIGV4dGVybiB2b2lkIGdldHdpbnRpbWVvZmRheShzdHJ1Y3QgdGltZXZhbCAqdHYpOwog
I2RlZmluZSBTQ1RQX0dFVFBUSU1FX1RJTUVWQUwoeCkgZ2V0dGltZW9mZGF5KHgsIE5VTEwpCiAj
ZW5kaWYKICNlbmRpZgotCiAjaWYgZGVmaW5lZChfS0VSTkVMKQogI2RlZmluZSBTQ1RQX0dFVFRJ
TUVfVElNRVZBTCh4KSAoZ2V0bWljcm91cHRpbWUoeCkpCiAjZGVmaW5lIFNDVFBfR0VUUFRJTUVf
VElNRVZBTCh4KSAobWljcm91cHRpbWUoeCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3Rw
bGliL25ldGluZXQvc2N0cF9oZWFkZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9z
Y3RwX2hlYWRlci5oCmluZGV4IDYwMjkyMWQwZTJiZDBmNWM0MTkzZGRmOTM4ZDhkNmExMzhkZjE1
OTcuLjkyMjZhOWVmOTlmMjYwZDkyZWIxYjZlMThlZDhlZWQyY2RhMzA1MzQgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91
c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2hlYWRlci5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGli
L3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2hlYWRlci5oCkBAIC0zNCw3ICszNCw3IEBACiAKICNp
ZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogI2luY2x1
ZGUgPHN5cy9jZGVmcy5oPgotX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3Nj
dHBfaGVhZGVyLmggMzA5NjgyIDIwMTYtMTItMDcgMTk6MzA6NTlaIHR1ZXhlbiAkIik7CitfX0ZC
U0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF9oZWFkZXIuaCAzNjYxMTQgMjAy
MC0wOS0yNCAxMjoyNjowNlogdHVleGVuICQiKTsKICNlbmRpZgogCiAjaWZuZGVmIF9ORVRJTkVU
X1NDVFBfSEVBREVSX0hfCkBAIC02Niw3ICs2Niw2IEBAIHN0cnVjdCBzY3RwX2lwdjRhZGRyX3Bh
cmFtIHsKIAogI2RlZmluZSBTQ1RQX1Y2X0FERFJfQllURVMgMTYKIAotCiBzdHJ1Y3Qgc2N0cF9p
cHY2YWRkcl9wYXJhbSB7CiAJc3RydWN0IHNjdHBfcGFyYW1oZHIgcGg7LyogdHlwZT1TQ1RQX0lQ
VjZfUEFSQU1fVFlQRSwgbGVuPTIwICovCiAJdWludDhfdCBhZGRyW1NDVFBfVjZfQUREUl9CWVRF
U107CS8qIElQVjYgYWRkcmVzcyAqLwpAQCAtMTEwLDE0ICsxMDksMTIgQEAgc3RydWN0IHNjdHBf
aGVhcnRiZWF0X2luZm9fcGFyYW0gewogCWNoYXIgYWRkcmVzc1tTQ1RQX0FERFJNQVhdOwogfSBT
Q1RQX1BBQ0tFRDsKIAotCiAvKiBkcmFmdC1pZXRmLXRzdndnLXByc2N0cCAqLwogLyogUFItU0NU
UCBzdXBwb3J0ZWQgcGFyYW1ldGVyICovCiBzdHJ1Y3Qgc2N0cF9wcnNjdHBfc3VwcG9ydGVkX3Bh
cmFtIHsKIAlzdHJ1Y3Qgc2N0cF9wYXJhbWhkciBwaDsKIH0gU0NUUF9QQUNLRUQ7CiAKLQogLyog
ZHJhZnQtaWV0Zi10c3Z3Zy1hZGRpcC1zY3RwICovCiBzdHJ1Y3Qgc2N0cF9hc2NvbmZfcGFyYW1o
ZHIgewkvKiBhbiBBU0NPTkYgInBhcmFtZXRlciIgKi8KIAlzdHJ1Y3Qgc2N0cF9wYXJhbWhkciBw
aDsvKiBhIFNDVFAgcGFyYW1ldGVyIGhlYWRlciAqLwpAQCAtMTI5LDE0ICsxMjYsMTIgQEAgc3Ry
dWN0IHNjdHBfYXNjb25mX2FkZHJfcGFyYW0gewkvKiBhbiBBU0NPTkYgYWRkcmVzcyBwYXJhbWV0
ZXIgKi8KIAlzdHJ1Y3Qgc2N0cF9pcHY2YWRkcl9wYXJhbSBhZGRycDsJLyogbWF4IHN0b3JhZ2Ug
c2l6ZSAqLwogfSBTQ1RQX1BBQ0tFRDsKIAotCiBzdHJ1Y3Qgc2N0cF9hc2NvbmZfdGFnX3BhcmFt
IHsJLyogYW4gQVNDT05GIE5BVC1WdGFnIHBhcmFtZXRlciAqLwogCXN0cnVjdCBzY3RwX2FzY29u
Zl9wYXJhbWhkciBhcGg7CS8qIGFzY29uZiAicGFyYW1ldGVyIiAqLwotICAgICAgICB1aW50MzJf
dCBsb2NhbF92dGFnOwotICAgICAgICB1aW50MzJfdCByZW1vdGVfdnRhZzsKKwl1aW50MzJfdCBs
b2NhbF92dGFnOworCXVpbnQzMl90IHJlbW90ZV92dGFnOwogfSBTQ1RQX1BBQ0tFRDsKIAotCiBz
dHJ1Y3Qgc2N0cF9hc2NvbmZfYWRkcnY0X3BhcmFtIHsJLyogYW4gQVNDT05GIGFkZHJlc3MgKHY0
KSBwYXJhbWV0ZXIgKi8KIAlzdHJ1Y3Qgc2N0cF9hc2NvbmZfcGFyYW1oZHIgYXBoOwkvKiBhc2Nv
bmYgInBhcmFtZXRlciIgKi8KIAlzdHJ1Y3Qgc2N0cF9pcHY0YWRkcl9wYXJhbSBhZGRycDsJLyog
bWF4IHN0b3JhZ2Ugc2l6ZSAqLwpAQCAtMTQ5LDcgKzE0NCw2IEBAIHN0cnVjdCBzY3RwX3N1cHBv
cnRlZF9jaHVua190eXBlc19wYXJhbSB7CiAJdWludDhfdCBjaHVua190eXBlc1tdOwogfSBTQ1RQ
X1BBQ0tFRDsKIAotCiAvKgogICogU3RydWN0dXJlcyBmb3IgREFUQSBjaHVua3MKICAqLwpAQCAt
MjYwLDcgKzI1NCw2IEBAIHN0cnVjdCBzY3RwX2luaXRfbXNnIHsKICNkZWZpbmUgc2N0cF9pbml0
X2Fja19jaHVuawlzY3RwX2luaXRfY2h1bmsKICNkZWZpbmUgc2N0cF9pbml0X2Fja19tc2cJc2N0
cF9pbml0X21zZwogCi0KIC8qIFNlbGVjdGl2ZSBBY2sgKFNBQ0spICovCiBzdHJ1Y3Qgc2N0cF9n
YXBfYWNrX2Jsb2NrIHsKIAl1aW50MTZfdCBzdGFydDsJCS8qIEdhcCBBY2sgYmxvY2sgc3RhcnQg
Ki8KQEAgLTI5Nyw3ICsyOTAsNiBAQCBzdHJ1Y3Qgc2N0cF9ucl9zYWNrX2NodW5rIHsKIAlzdHJ1
Y3Qgc2N0cF9ucl9zYWNrIG5yX3NhY2s7CiB9IFNDVFBfUEFDS0VEOwogCi0KIC8qIEhlYXJ0YmVh
dCBSZXF1ZXN0IChIRUFSVEJFQVQpICovCiBzdHJ1Y3Qgc2N0cF9oZWFydGJlYXQgewogCXN0cnVj
dCBzY3RwX2hlYXJ0YmVhdF9pbmZvX3BhcmFtIGhiX2luZm87CkBAIC0zMTIsNyArMzA0LDYgQEAg
c3RydWN0IHNjdHBfaGVhcnRiZWF0X2NodW5rIHsKICNkZWZpbmUgc2N0cF9oZWFydGJlYXRfYWNr
CQlzY3RwX2hlYXJ0YmVhdAogI2RlZmluZSBzY3RwX2hlYXJ0YmVhdF9hY2tfY2h1bmsJc2N0cF9o
ZWFydGJlYXRfY2h1bmsKIAotCiAvKiBBYm9ydCBBc3Nzb2NpYXRpb24gKEFCT1JUKSAqLwogc3Ry
dWN0IHNjdHBfYWJvcnRfY2h1bmsgewogCXN0cnVjdCBzY3RwX2NodW5raGRyIGNoOwpAQCAtMzI0
LDI3ICszMTUsMjMgQEAgc3RydWN0IHNjdHBfYWJvcnRfbXNnIHsKIAlzdHJ1Y3Qgc2N0cF9hYm9y
dF9jaHVuayBtc2c7CiB9IFNDVFBfUEFDS0VEOwogCi0KIC8qIFNodXRkb3duIEFzc29jaWF0aW9u
IChTSFVURE9XTikgKi8KIHN0cnVjdCBzY3RwX3NodXRkb3duX2NodW5rIHsKIAlzdHJ1Y3Qgc2N0
cF9jaHVua2hkciBjaDsKIAl1aW50MzJfdCBjdW11bGF0aXZlX3Rzbl9hY2s7CiB9IFNDVFBfUEFD
S0VEOwogCi0KIC8qIFNodXRkb3duIEFja25vd2xlZGdtZW50IChTSFVURE9XTiBBQ0spICovCiBz
dHJ1Y3Qgc2N0cF9zaHV0ZG93bl9hY2tfY2h1bmsgewogCXN0cnVjdCBzY3RwX2NodW5raGRyIGNo
OwogfSBTQ1RQX1BBQ0tFRDsKIAotCiAvKiBPcGVyYXRpb24gRXJyb3IgKEVSUk9SKSAqLwogc3Ry
dWN0IHNjdHBfZXJyb3JfY2h1bmsgewogCXN0cnVjdCBzY3RwX2NodW5raGRyIGNoOwogCS8qIG9w
dGlvbmFsIGVycm9yIGNhdXNlcyBmb2xsb3cgKi8KIH0gU0NUUF9QQUNLRUQ7CiAKLQogLyogQ29v
a2llIEVjaG8gKENPT0tJRSBFQ0hPKSAqLwogc3RydWN0IHNjdHBfY29va2llX2VjaG9fY2h1bmsg
ewogCXN0cnVjdCBzY3RwX2NodW5raGRyIGNoOwpAQCAtNDM2LDcgKzQyMyw2IEBAIHN0cnVjdCBz
Y3RwX2NodW5rX2Rlc2MgewogCXVpbnQzMl90IHRzbl9pZmFueTsKIH0gU0NUUF9QQUNLRUQ7CiAK
LQogc3RydWN0IHNjdHBfcGt0ZHJvcF9jaHVuayB7CiAJc3RydWN0IHNjdHBfY2h1bmtoZHIgY2g7
CiAJdWludDMyX3QgYm90dGxlX2J3OwpAQCAtNDg3LDEwICs0NzMsMTAgQEAgc3RydWN0IHNjdHBf
c3RyZWFtX3Jlc2V0X3Jlc3BvbnNlX3RzbiB7CiB9IFNDVFBfUEFDS0VEOwogCiBzdHJ1Y3Qgc2N0
cF9zdHJlYW1fcmVzZXRfYWRkX3N0cm0gewotICBzdHJ1Y3Qgc2N0cF9wYXJhbWhkciBwaDsKLSAg
dWludDMyX3QgcmVxdWVzdF9zZXE7Ci0gIHVpbnQxNl90IG51bWJlcl9vZl9zdHJlYW1zOwotICB1
aW50MTZfdCByZXNlcnZlZDsKKwlzdHJ1Y3Qgc2N0cF9wYXJhbWhkciBwaDsKKwl1aW50MzJfdCBy
ZXF1ZXN0X3NlcTsKKwl1aW50MTZfdCBudW1iZXJfb2Zfc3RyZWFtczsKKwl1aW50MTZfdCByZXNl
cnZlZDsKIH0gU0NUUF9QQUNLRUQ7CiAKICNkZWZpbmUgU0NUUF9TVFJFQU1fUkVTRVRfUkVTVUxU
X05PVEhJTkdfVE9fRE8gICAweDAwMDAwMDAwIC8qIFhYWDogdW51c2VkICovCkBAIC01NjMsNDMg
KzU0OSw0MSBAQCBzdHJ1Y3Qgc2N0cF9hdXRoX2NodW5rIHsKICNpZm5kZWYgU0NUUF9NQVhfT1ZF
UkhFQUQKICNpZmRlZiBJTkVUNgogI2RlZmluZSBTQ1RQX01BWF9PVkVSSEVBRCAoc2l6ZW9mKHN0
cnVjdCBzY3RwX2RhdGFfY2h1bmspICsgXAotCQkJICAgc2l6ZW9mKHN0cnVjdCBzY3RwaGRyKSAr
IFwKLQkJCSAgIHNpemVvZihzdHJ1Y3Qgc2N0cF9lY25lX2NodW5rKSArIFwKLQkJCSAgIHNpemVv
ZihzdHJ1Y3Qgc2N0cF9zYWNrX2NodW5rKSArIFwKLQkJCSAgIHNpemVvZihzdHJ1Y3QgaXA2X2hk
cikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHNjdHBoZHIpICsg
XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBzY3RwX2VjbmVfY2h1
bmspICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBzY3RwX3Nh
Y2tfY2h1bmspICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBp
cDZfaGRyKSkKIAogI2RlZmluZSBTQ1RQX01FRF9PVkVSSEVBRCAoc2l6ZW9mKHN0cnVjdCBzY3Rw
X2RhdGFfY2h1bmspICsgXAotCQkJICAgc2l6ZW9mKHN0cnVjdCBzY3RwaGRyKSArIFwKLQkJCSAg
IHNpemVvZihzdHJ1Y3QgaXA2X2hkcikpCi0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVvZihzdHJ1Y3Qgc2N0cGhkcikgKyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
b2Yoc3RydWN0IGlwNl9oZHIpKQogCiAjZGVmaW5lIFNDVFBfTUlOX09WRVJIRUFEIChzaXplb2Yo
c3RydWN0IGlwNl9oZHIpICsgXAotCQkJICAgc2l6ZW9mKHN0cnVjdCBzY3RwaGRyKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3Qgc2N0cGhkcikpCiAKICNlbHNlCiAj
ZGVmaW5lIFNDVFBfTUFYX09WRVJIRUFEIChzaXplb2Yoc3RydWN0IHNjdHBfZGF0YV9jaHVuaykg
KyBcCi0JCQkgICBzaXplb2Yoc3RydWN0IHNjdHBoZHIpICsgXAotCQkJICAgc2l6ZW9mKHN0cnVj
dCBzY3RwX2VjbmVfY2h1bmspICsgXAotCQkJICAgc2l6ZW9mKHN0cnVjdCBzY3RwX3NhY2tfY2h1
bmspICsgXAotCQkJICAgc2l6ZW9mKHN0cnVjdCBpcCkpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplb2Yoc3RydWN0IHNjdHBoZHIpICsgXAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZW9mKHN0cnVjdCBzY3RwX2VjbmVfY2h1bmspICsgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZW9mKHN0cnVjdCBzY3RwX3NhY2tfY2h1bmspICsgXAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpcCkpCiAKICNkZWZpbmUgU0NUUF9NRURfT1ZF
UkhFQUQgKHNpemVvZihzdHJ1Y3Qgc2N0cF9kYXRhX2NodW5rKSArIFwKLQkJCSAgIHNpemVvZihz
dHJ1Y3Qgc2N0cGhkcikgKyBcCi0JCQkgICBzaXplb2Yoc3RydWN0IGlwKSkKLQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBzY3RwaGRyKSArIFwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaXApKQogCiAjZGVmaW5lIFNDVFBfTUlOX09W
RVJIRUFEIChzaXplb2Yoc3RydWN0IGlwKSArIFwKLQkJCSAgIHNpemVvZihzdHJ1Y3Qgc2N0cGhk
cikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHNjdHBoZHIpKQog
CiAjZW5kaWYgLyogSU5FVDYgKi8KICNlbmRpZiAvKiAhU0NUUF9NQVhfT1ZFUkhFQUQgKi8KIAog
I2RlZmluZSBTQ1RQX01FRF9WNF9PVkVSSEVBRCAoc2l6ZW9mKHN0cnVjdCBzY3RwX2RhdGFfY2h1
bmspICsgXAotCQkJICAgICAgc2l6ZW9mKHN0cnVjdCBzY3RwaGRyKSArIFwKLQkJCSAgICAgIHNp
emVvZihzdHJ1Y3QgaXApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0
cnVjdCBzY3RwaGRyKSArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihz
dHJ1Y3QgaXApKQogCiAjZGVmaW5lIFNDVFBfTUlOX1Y0X09WRVJIRUFEIChzaXplb2Yoc3RydWN0
IGlwKSArIFwKLQkJCSAgICAgIHNpemVvZihzdHJ1Y3Qgc2N0cGhkcikpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHNjdHBoZHIpKQogCiAjaWYgZGVmaW5lZChf
V0lOMzIpICYmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAjaW5jbHVkZSA8cGFja29mZi5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfaW5kYXRhLmMgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNy
c2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9pbmRhdGEuYwppbmRleCA4MDZmNjMwOTI3
YWE4ODQ3NjZjNjExNTQ3NTBjMDdhYjZmNTdhYTNkLi4zYmNlOWU5OWE2NmEwMjNiNzdiMTQ1MzNm
OGQzMGIxYjBlMzQ1NTdhIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQv
c2N0cF9pbmRhdGEuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9pbmRh
dGEuYwpAQCAtMzQsNyArMzQsNyBAQAogCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRl
ZmluZWQoX19Vc2Vyc3BhY2VfXykKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIk
RnJlZUJTRDogaGVhZC9zeXMvbmV0aW5ldC9zY3RwX2luZGF0YS5jIDM2MzQ0MCAyMDIwLTA3LTIz
IDAxOjM1OjI0WiB0dWV4ZW4gJCIpOworX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRp
bmV0L3NjdHBfaW5kYXRhLmMgMzY3NTIwIDIwMjAtMTEtMDkgMTM6MTI6MDdaIHR1ZXhlbiAkIik7
CiAjZW5kaWYKIAogI2luY2x1ZGUgPG5ldGluZXQvc2N0cF9vcy5oPgpAQCAtNzQsNyArNzQsNiBA
QCBzY3RwX2FkZF9jaGtfdG9fY29udHJvbChzdHJ1Y3Qgc2N0cF9xdWV1ZWRfdG9fcmVhZCAqY29u
dHJvbCwKIAkJCXN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLAogCQkJc3RydWN0IHNjdHBf
dG1pdF9jaHVuayAqY2hrLCBpbnQgaG9sZF9ybG9jayk7CiAKLQogdm9pZAogc2N0cF9zZXRfcndu
ZChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jKQog
ewpAQCAtMTM0LDggKzEzMyw2IEBAIHNjdHBfY2FsY19yd25kKHN0cnVjdCBzY3RwX3RjYiAqc3Rj
Yiwgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpCiAJcmV0dXJuIChjYWxjKTsKIH0KIAot
Ci0KIC8qCiAgKiBCdWlsZCBvdXQgb3VyIHJlYWRxIGVudHJ5IGJhc2VkIG9uIHRoZSBpbmNvbWlu
ZyBwYWNrZXQuCiAgKi8KQEAgLTMwNiwxOSArMzAzLDE4IEBAIHNjdHBfYnVpbGRfY3RsX25jaHVu
ayhzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wLCBzdHJ1Y3Qgc2N0cF9zbmRyY3ZpbmZvICpzaW5mbykK
IAlyZXR1cm4gKHJldCk7CiB9CiAKLQogc3RhdGljIHZvaWQKIHNjdHBfbWFya19ub25fcmV2b2th
YmxlKHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLCB1aW50MzJfdCB0c24pCiB7Ci0JdWlu
dDMyX3QgZ2FwLCBpLCBjdW1hY2twMTsKLQlpbnQgZm5kID0gMDsKLQlpbnQgaW5fcj0wLCBpbl9u
cj0wOworCXVpbnQzMl90IGdhcCwgaTsKKwlpbnQgaW5fciwgaW5fbnI7CisKIAlpZiAoU0NUUF9C
QVNFX1NZU0NUTChzY3RwX2RvX2RyYWluKSA9PSAwKSB7CiAJCXJldHVybjsKIAl9Ci0JY3VtYWNr
cDEgPSBhc29jLT5jdW11bGF0aXZlX3RzbiArIDE7Ci0JaWYgKFNDVFBfVFNOX0dUKGN1bWFja3Ax
LCB0c24pKSB7Ci0JCS8qIHRoaXMgdHNuIGlzIGJlaGluZCB0aGUgY3VtIGFjayBhbmQgdGh1cyB3
ZSBkb24ndAorCWlmIChTQ1RQX1RTTl9HRShhc29jLT5jdW11bGF0aXZlX3RzbiwgdHNuKSkgewor
CQkvKgorCQkgKiBUaGlzIHRzbiBpcyBiZWhpbmQgdGhlIGN1bSBhY2sgYW5kIHRodXMgd2UgZG9u
J3QKIAkJICogbmVlZCB0byB3b3JyeSBhYm91dCBpdCBiZWluZyBtb3ZlZCBmcm9tIG9uZSB0byB0
aGUgb3RoZXIuCiAJCSAqLwogCQlyZXR1cm47CkBAIC0zMjYsMzMgKzMyMiwyNyBAQCBzY3RwX21h
cmtfbm9uX3Jldm9rYWJsZShzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywgdWludDMyX3Qg
dHNuKQogCVNDVFBfQ0FMQ19UU05fVE9fR0FQKGdhcCwgdHNuLCBhc29jLT5tYXBwaW5nX2FycmF5
X2Jhc2VfdHNuKTsKIAlpbl9yID0gU0NUUF9JU19UU05fUFJFU0VOVChhc29jLT5tYXBwaW5nX2Fy
cmF5LCBnYXApOwogCWluX25yID0gU0NUUF9JU19UU05fUFJFU0VOVChhc29jLT5ucl9tYXBwaW5n
X2FycmF5LCBnYXApOwotCWlmICgoaW5fciA9PSAwKSAmJiAoaW5fbnIgPT0gMCkpIHsKLSNpZmRl
ZiBJTlZBUklBTlRTCi0JCXBhbmljKCJUaGluZ3MgYXJlIHJlYWxseSBtZXNzZWQgdXAgbm93Iik7
Ci0jZWxzZQotCQlTQ1RQX1BSSU5URigiZ2FwOiV4IHRzbjoleFxuIiwgZ2FwLCB0c24pOwotCQlz
Y3RwX3ByaW50X21hcHBpbmdfYXJyYXkoYXNvYyk7Ci0jZW5kaWYKLQl9Ci0JaWYgKGluX25yID09
IDApCisJS0FTU0VSVChpbl9yIHx8IGluX25yLCAoIiVzOiBUaGluZ3MgYXJlIHJlYWxseSBtZXNz
ZWQgdXAgbm93IiwgX19mdW5jX18pKTsKKwlpZiAoIWluX25yKSB7CiAJCVNDVFBfU0VUX1RTTl9Q
UkVTRU5UKGFzb2MtPm5yX21hcHBpbmdfYXJyYXksIGdhcCk7Ci0JaWYgKGluX3IpCisJCWlmIChT
Q1RQX1RTTl9HVCh0c24sIGFzb2MtPmhpZ2hlc3RfdHNuX2luc2lkZV9ucl9tYXApKSB7CisJCQlh
c29jLT5oaWdoZXN0X3Rzbl9pbnNpZGVfbnJfbWFwID0gdHNuOworCQl9CisJfQorCWlmIChpbl9y
KSB7CiAJCVNDVFBfVU5TRVRfVFNOX1BSRVNFTlQoYXNvYy0+bWFwcGluZ19hcnJheSwgZ2FwKTsK
LQlpZiAoU0NUUF9UU05fR1QodHNuLCBhc29jLT5oaWdoZXN0X3Rzbl9pbnNpZGVfbnJfbWFwKSkg
ewotCQlhc29jLT5oaWdoZXN0X3Rzbl9pbnNpZGVfbnJfbWFwID0gdHNuOwotCX0KLQlpZiAodHNu
ID09IGFzb2MtPmhpZ2hlc3RfdHNuX2luc2lkZV9tYXApIHsKLQkJLyogV2UgbXVzdCBiYWNrIGRv
d24gdG8gc2VlIHdoYXQgdGhlIG5ldyBoaWdoZXN0IGlzICovCi0JCWZvciAoaSA9IHRzbiAtIDE7
IFNDVFBfVFNOX0dFKGksIGFzb2MtPm1hcHBpbmdfYXJyYXlfYmFzZV90c24pOyBpLS0pIHsKLQkJ
CVNDVFBfQ0FMQ19UU05fVE9fR0FQKGdhcCwgaSwgYXNvYy0+bWFwcGluZ19hcnJheV9iYXNlX3Rz
bik7Ci0JCQlpZiAoU0NUUF9JU19UU05fUFJFU0VOVChhc29jLT5tYXBwaW5nX2FycmF5LCBnYXAp
KSB7Ci0JCQkJYXNvYy0+aGlnaGVzdF90c25faW5zaWRlX21hcCA9IGk7Ci0JCQkJZm5kID0gMTsK
LQkJCQlicmVhazsKKwkJaWYgKHRzbiA9PSBhc29jLT5oaWdoZXN0X3Rzbl9pbnNpZGVfbWFwKSB7
CisJCQkvKiBXZSBtdXN0IGJhY2sgZG93biB0byBzZWUgd2hhdCB0aGUgbmV3IGhpZ2hlc3QgaXMu
ICovCisJCQlmb3IgKGkgPSB0c24gLSAxOyBTQ1RQX1RTTl9HRShpLCBhc29jLT5tYXBwaW5nX2Fy
cmF5X2Jhc2VfdHNuKTsgaS0tKSB7CisJCQkJU0NUUF9DQUxDX1RTTl9UT19HQVAoZ2FwLCBpLCBh
c29jLT5tYXBwaW5nX2FycmF5X2Jhc2VfdHNuKTsKKwkJCQlpZiAoU0NUUF9JU19UU05fUFJFU0VO
VChhc29jLT5tYXBwaW5nX2FycmF5LCBnYXApKSB7CisJCQkJCWFzb2MtPmhpZ2hlc3RfdHNuX2lu
c2lkZV9tYXAgPSBpOworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJCQlpZiAoIVNDVFBfVFNO
X0dFKGksIGFzb2MtPm1hcHBpbmdfYXJyYXlfYmFzZV90c24pKSB7CisJCQkJYXNvYy0+aGlnaGVz
dF90c25faW5zaWRlX21hcCA9IGFzb2MtPm1hcHBpbmdfYXJyYXlfYmFzZV90c24gLSAxOwogCQkJ
fQotCQl9Ci0JCWlmICghZm5kKSB7Ci0JCQlhc29jLT5oaWdoZXN0X3Rzbl9pbnNpZGVfbWFwID0g
YXNvYy0+bWFwcGluZ19hcnJheV9iYXNlX3RzbiAtIDE7CiAJCX0KIAl9CiB9CkBAIC00MDcsNyAr
Mzk3LDcgQEAgc2N0cF9wbGFjZV9jb250cm9sX2luX3N0cmVhbShzdHJ1Y3Qgc2N0cF9zdHJlYW1f
aW4gKnN0cm0sCiAJCQkJaWYgKHVub3JkZXJlZCkgewogCQkJCQljb250cm9sLT5vbl9zdHJtX3Eg
PSBTQ1RQX09OX1VOT1JERVJFRDsKIAkJCQl9IGVsc2UgewotCQkJCQljb250cm9sLT5vbl9zdHJt
X3EgPSBTQ1RQX09OX09SREVSRUQgOworCQkJCQljb250cm9sLT5vbl9zdHJtX3EgPSBTQ1RQX09O
X09SREVSRUQ7CiAJCQkJfQogCQkJCWJyZWFrOwogCQkJfSBlbHNlIGlmIChTQ1RQX01JRF9FUShh
c29jLT5pZGF0YV9zdXBwb3J0ZWQsIGF0LT5taWQsIGNvbnRyb2wtPm1pZCkpIHsKQEAgLTQyOCw5
ICs0MTgsOSBAQCBzY3RwX3BsYWNlX2NvbnRyb2xfaW5fc3RyZWFtKHN0cnVjdCBzY3RwX3N0cmVh
bV9pbiAqc3RybSwKIAkJCQkJfQogCQkJCQlUQUlMUV9JTlNFUlRfQUZURVIocSwgYXQsIGNvbnRy
b2wsIG5leHRfaW5zdHJtKTsKIAkJCQkJaWYgKHVub3JkZXJlZCkgewotCQkJCQkJY29udHJvbC0+
b25fc3RybV9xID0gU0NUUF9PTl9VTk9SREVSRUQgOworCQkJCQkJY29udHJvbC0+b25fc3RybV9x
ID0gU0NUUF9PTl9VTk9SREVSRUQ7CiAJCQkJCX0gZWxzZSB7Ci0JCQkJCQljb250cm9sLT5vbl9z
dHJtX3EgPSBTQ1RQX09OX09SREVSRUQgOworCQkJCQkJY29udHJvbC0+b25fc3RybV9xID0gU0NU
UF9PTl9PUkRFUkVEOwogCQkJCQl9CiAJCQkJCWJyZWFrOwogCQkJCX0KQEAgLTU2Myw3ICs1NTMs
NiBAQCBzY3RwX3F1ZXVlX2RhdGFfdG9fc3RyZWFtKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAkJ
c2N0cF9hYm9ydF9hbl9hc3NvY2lhdGlvbihzdGNiLT5zY3RwX2VwLCBzdGNiLCBvcF9lcnIsIFND
VFBfU09fTk9UX0xPQ0tFRCk7CiAJCSphYm9ydF9mbGFnID0gMTsKIAkJcmV0dXJuOwotCiAJfQog
CXF1ZXVlX25lZWRlZCA9IDE7CiAJYXNvYy0+c2l6ZV9vbl9hbGxfc3RyZWFtcyArPSBjb250cm9s
LT5sZW5ndGg7CkBAIC02NzQsNyArNjYzLDYgQEAgc2N0cF9xdWV1ZV9kYXRhX3RvX3N0cmVhbShz
dHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAJfQogfQogCi0KIHN0YXRpYyB2b2lkCiBzY3RwX3NldHVw
X3RhaWxfcG9pbnRlcihzdHJ1Y3Qgc2N0cF9xdWV1ZWRfdG9fcmVhZCAqY29udHJvbCkKIHsKQEAg
LTEwNzksNyArMTA2Nyw2IEBAIHBsYWNlX2NodW5rOgogCQkJICAgICAgICAgICAgICAgICAgICBT
Q1RQX0ZST01fU0NUUF9JTkRBVEEgKyBTQ1RQX0xPQ181KTsKIAkJCXJldHVybjsKIAkJfQotCiAJ
fQogCWlmIChpbnNlcnRlZCA9PSAwKSB7CiAJCS8qIEl0cyBhdCB0aGUgZW5kICovCkBAIC0xMTM0
LDcgKzExMjEsNyBAQCBzY3RwX2RlbGl2ZXJfcmVhc21fY2hlY2soc3RydWN0IHNjdHBfdGNiICpz
dGNiLCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKIAkJCS8qIFdlIGp1c3QgcHV0IHRo
ZSBsYXN0IGJpdCBvbiAqLwogCQkJaWYgKGNvbnRyb2wtPm9uX3N0cm1fcSkgewogI2lmZGVmIElO
VkFSSUFOVFMKLQkJCQlpZiAoY29udHJvbC0+b25fc3RybV9xICE9IFNDVFBfT05fVU5PUkRFUkVE
ICkgeworCQkJCWlmIChjb250cm9sLT5vbl9zdHJtX3EgIT0gU0NUUF9PTl9VTk9SREVSRUQpIHsK
IAkJCQkJcGFuaWMoIkh1aCBjb250cm9sOiAlcCBvbl9xOiAlZCAtLSBub3QgdW5vcmRlcmVkPyIs
CiAJCQkJCSAgICAgIGNvbnRyb2wsIGNvbnRyb2wtPm9uX3N0cm1fcSk7CiAJCQkJfQpAQCAtMTE5
OCw3ICsxMTg1LDcgQEAgZG9uZV91bjoKIAkJaWYgKGNvbnRyb2wtPmVuZF9hZGRlZCkgewogCQkJ
aWYgKGNvbnRyb2wtPm9uX3N0cm1fcSkgewogI2lmZGVmIElOVkFSSUFOVFMKLQkJCQlpZiAoY29u
dHJvbC0+b25fc3RybV9xICE9IFNDVFBfT05fT1JERVJFRCApIHsKKwkJCQlpZiAoY29udHJvbC0+
b25fc3RybV9xICE9IFNDVFBfT05fT1JERVJFRCkgewogCQkJCQlwYW5pYygiSHVoIGNvbnRyb2w6
ICVwIG9uX3E6ICVkIC0tIG5vdCBvcmRlcmVkPyIsCiAJCQkJCSAgICAgIGNvbnRyb2wsIGNvbnRy
b2wtPm9uX3N0cm1fcSk7CiAJCQkJfQpAQCAtMTI1MSw3ICsxMjM4LDcgQEAgZGVsaXZlcl9tb3Jl
OgogCQkJCS8qIFdlIGFyZSBkb25lIHdpdGggaXQgYWZ0ZXJ3YXJkcyAqLwogCQkJCWlmIChjb250
cm9sLT5vbl9zdHJtX3EpIHsKICNpZmRlZiBJTlZBUklBTlRTCi0JCQkJCWlmIChjb250cm9sLT5v
bl9zdHJtX3EgIT0gU0NUUF9PTl9PUkRFUkVEICkgeworCQkJCQlpZiAoY29udHJvbC0+b25fc3Ry
bV9xICE9IFNDVFBfT05fT1JERVJFRCkgewogCQkJCQkJcGFuaWMoIkh1aCBjb250cm9sOiAlcCBv
bl9xOiAlZCAtLSBub3Qgb3JkZXJlZD8iLAogCQkJCQkJICAgICAgY29udHJvbCwgY29udHJvbC0+
b25fc3RybV9xKTsKIAkJCQkJfQpAQCAtMTMxMyw3ICsxMzAwLDYgQEAgb3V0OgogCXJldHVybiAo
cmV0KTsKIH0KIAotCiB1aW50MzJfdAogc2N0cF9hZGRfY2hrX3RvX2NvbnRyb2woc3RydWN0IHNj
dHBfcXVldWVkX3RvX3JlYWQgKmNvbnRyb2wsCiAJCQlzdHJ1Y3Qgc2N0cF9zdHJlYW1faW4gKnN0
cm0sCkBAIC0yMjUwLDcgKzIyMzYsNiBAQCBzY3RwX3Byb2Nlc3NfYV9kYXRhX2NodW5rKHN0cnVj
dCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJCQkJdW5z
aWduZWQgY2hhciBpbnNlcnRlZCA9IDA7CiAJCQkJVEFJTFFfRk9SRUFDSF9TQUZFKGxjb250cm9s
LCAmYXNvYy0+cGVuZGluZ19yZXBseV9xdWV1ZSwgbmV4dCwgbmxjb250cm9sKSB7CiAJCQkJCWlm
IChTQ1RQX1RTTl9HVChjb250cm9sLT5zaW5mb190c24sIGxjb250cm9sLT5zaW5mb190c24pKSB7
Ci0KIAkJCQkJCWNvbnRpbnVlOwogCQkJCQl9IGVsc2UgewogCQkJCQkJLyogZm91bmQgaXQgKi8K
QEAgLTI0MjYsNyArMjQxMSw2IEBAIHN0YXRpYyBjb25zdCBpbnQ4X3Qgc2N0cF9tYXBfbG9va3Vw
X3RhYlsyNTZdID0gewogICAwLCAxLCAwLCAyLCAwLCAxLCAwLCA4CiB9OwogCi0KIHZvaWQKIHNj
dHBfc2xpZGVfbWFwcGluZ19hcnJheXMoc3RydWN0IHNjdHBfdGNiICpzdGNiKQogewpAQCAtMjU2
Miw3ICsyNTQ2LDYgQEAgc2N0cF9zbGlkZV9tYXBwaW5nX2FycmF5cyhzdHJ1Y3Qgc2N0cF90Y2Ig
KnN0Y2IpCiAJCQkgKiB3ZSB3aWxsIGJlIGFibGUgdG8gc2xpZGUgaXQgZm9yd2FyZC4gUmVhbGx5
IEkKIAkJCSAqIGRvbid0IHRoaW5rIHRoaXMgc2hvdWxkIGhhcHBlbiA6LTAKIAkJCSAqLwotCiAJ
CQlpZiAoU0NUUF9CQVNFX1NZU0NUTChzY3RwX2xvZ2dpbmdfbGV2ZWwpICYgU0NUUF9NQVBfTE9H
R0lOR19FTkFCTEUpIHsKIAkJCQlzY3RwX2xvZ19tYXAoKHVpbnQzMl90KSBkaXN0YW5jZSwgKHVp
bnQzMl90KSBzbGlkZV9mcm9tLAogCQkJCQkgICAgICh1aW50MzJfdCkgYXNvYy0+bWFwcGluZ19h
cnJheV9zaXplLApAQCAtMjU3NCw3ICsyNTU3LDYgQEAgc2N0cF9zbGlkZV9tYXBwaW5nX2FycmF5
cyhzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IpCiAJCQlmb3IgKGlpID0gMDsgaWkgPCBkaXN0YW5jZTsg
aWkrKykgewogCQkJCWFzb2MtPm1hcHBpbmdfYXJyYXlbaWldID0gYXNvYy0+bWFwcGluZ19hcnJh
eVtzbGlkZV9mcm9tICsgaWldOwogCQkJCWFzb2MtPm5yX21hcHBpbmdfYXJyYXlbaWldID0gYXNv
Yy0+bnJfbWFwcGluZ19hcnJheVtzbGlkZV9mcm9tICsgaWldOwotCiAJCQl9CiAJCQlmb3IgKGlp
ID0gZGlzdGFuY2U7IGlpIDwgYXNvYy0+bWFwcGluZ19hcnJheV9zaXplOyBpaSsrKSB7CiAJCQkJ
YXNvYy0+bWFwcGluZ19hcnJheVtpaV0gPSAwOwpAQCAtMjY0NiwyMCArMjYyOCwxNiBAQCBzY3Rw
X3NhY2tfY2hlY2soc3RydWN0IHNjdHBfdGNiICpzdGNiLCBpbnQgd2FzX2FfZ2FwKQogCQkgICAg
KHN0Y2ItPmFzb2MubnVtZHVwdHNucykgfHwgICAgICAgICAgLyogd2UgaGF2ZSBkdXAncyAqLwog
CQkgICAgKGlzX2FfZ2FwKSB8fCAgICAgICAgICAgICAgICAgICAgICAgLyogaXMgc3RpbGwgYSBn
YXAgKi8KIAkJICAgIChzdGNiLT5hc29jLmRlbGF5ZWRfYWNrID09IDApIHx8ICAgIC8qIERlbGF5
ZWQgc2FjayBkaXNhYmxlZCAqLwotCQkgICAgKHN0Y2ItPmFzb2MuZGF0YV9wa3RzX3NlZW4gPj0g
c3RjYi0+YXNvYy5zYWNrX2ZyZXEpCS8qIGhpdCBsaW1pdCBvZiBwa3RzICovCi0JCQkpIHsKLQor
CQkgICAgKHN0Y2ItPmFzb2MuZGF0YV9wa3RzX3NlZW4gPj0gc3RjYi0+YXNvYy5zYWNrX2ZyZXEp
KSB7CS8qIGhpdCBsaW1pdCBvZiBwa3RzICovCiAJCQlpZiAoKHN0Y2ItPmFzb2Muc2N0cF9jbXRf
b25fb2ZmID4gMCkgJiYKIAkJCSAgICAoU0NUUF9CQVNFX1NZU0NUTChzY3RwX2NtdF91c2VfZGFj
KSkgJiYKIAkJCSAgICAoc3RjYi0+YXNvYy5zZW5kX3NhY2sgPT0gMCkgJiYKIAkJCSAgICAoc3Rj
Yi0+YXNvYy5udW1kdXB0c25zID09IDApICYmCiAJCQkgICAgKHN0Y2ItPmFzb2MuZGVsYXllZF9h
Y2spICYmCiAJCQkgICAgKCFTQ1RQX09TX1RJTUVSX1BFTkRJTkcoJnN0Y2ItPmFzb2MuZGFja190
aW1lci50aW1lcikpKSB7Ci0KIAkJCQkvKgogCQkJCSAqIENNVCBEQUMgYWxnb3JpdGhtOiBXaXRo
IENNVCwKIAkJCQkgKiBkZWxheSBhY2tzIGV2ZW4gaW4gdGhlIGZhY2Ugb2YKLQogCQkJCSAqIHJl
b3JkZXJpbmcuIFRoZXJlZm9yZSwgaWYgYWNrcwogCQkJCSAqIHRoYXQgZG8gbm90IGhhdmUgdG8g
YmUgc2VudAogCQkJCSAqIGJlY2F1c2Ugb2YgdGhlIGFib3ZlIHJlYXNvbnMsCkBAIC0zMTQxLDcg
KzMxMTksNiBAQCBzY3RwX3Byb2Nlc3Nfc2VnbWVudF9yYW5nZShzdHJ1Y3Qgc2N0cF90Y2IgKnN0
Y2IsIHN0cnVjdCBzY3RwX3RtaXRfY2h1bmsgKipwX3RwMQogCQkJCQkJCQl0cDEtPmRvX3J0dCA9
IDA7CiAJCQkJCQkJfQogCQkJCQkJfQotCiAJCQkJCX0KIAkJCQkJaWYgKHRwMS0+c2VudCA8PSBT
Q1RQX0RBVEFHUkFNX1JFU0VORCkgewogCQkJCQkJaWYgKFNDVFBfVFNOX0dUKHRwMS0+cmVjLmRh
dGEudHNuLApAQCAtMzIxNiw3ICszMTkzLDYgQEAgc2N0cF9wcm9jZXNzX3NlZ21lbnRfcmFuZ2Uo
c3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF90bWl0X2NodW5rICoqcF90cDEKIAly
ZXR1cm4gKHdha2VfaGltKTsJLyogUmV0dXJuIHZhbHVlIG9ubHkgdXNlZCBmb3IgbnItc2FjayAq
LwogfQogCi0KIHN0YXRpYyBpbnQKIHNjdHBfaGFuZGxlX3NlZ21lbnRzKHN0cnVjdCBtYnVmICpt
LCBpbnQgKm9mZnNldCwgc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF9hc3NvY2lh
dGlvbiAqYXNvYywKIAkJdWludDMyX3QgbGFzdF90c24sIHVpbnQzMl90ICpiaWdnZXN0X3Rzbl9h
Y2tlZCwKQEAgLTMzMzcsNyArMzMxMyw2IEBAIHNjdHBfY2hlY2tfZm9yX3Jldm9rZWQoc3RydWN0
IHNjdHBfdGNiICpzdGNiLAogCX0KIH0KIAotCiBzdGF0aWMgdm9pZAogc2N0cF9zdHJpa2VfZ2Fw
X2Fja19jaHVua3Moc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlv
biAqYXNvYywKIAkJCSAgIHVpbnQzMl90IGJpZ2dlc3RfdHNuX2Fja2VkLCB1aW50MzJfdCBiaWdn
ZXN0X3Rzbl9uZXdseV9hY2tlZCwgdWludDMyX3QgdGhpc19zYWNrX2xvd2VzdF9uZXdhY2ssIGlu
dCBhY2N1bV9tb3ZlZCkKQEAgLTM0MDYsNyArMzM4MSw2IEBAIHNjdHBfc3RyaWtlX2dhcF9hY2tf
Y2h1bmtzKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFz
b2MsCiAJCQkJCWNvbnRpbnVlOwogCQkJCX0KIAkJCX0KLQogCQl9CiAJCWlmIChTQ1RQX1RTTl9H
VCh0cDEtPnJlYy5kYXRhLnRzbiwgYXNvYy0+dGhpc19zYWNrX2hpZ2hlc3RfZ2FwKSAmJgogCQkg
ICAgICAgICAgICAgICAgIShhY2N1bV9tb3ZlZCAmJiBhc29jLT5mYXN0X3JldHJhbl9sb3NzX3Jl
Y292ZXJ5KSkgewpAQCAtMzUxNiw3ICszNDkwLDYgQEAgc2N0cF9zdHJpa2VfZ2FwX2Fja19jaHVu
a3Moc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywK
IAkJCQkoMSkKICNlbmRpZgogCQkJCSkgewotCiAJCQkJaWYgKFNDVFBfVFNOX0dFKGJpZ2dlc3Rf
dHNuX25ld2x5X2Fja2VkLAogCQkJCSAgICAgICAgICAgICAgICB0cDEtPnJlYy5kYXRhLmZhc3Rf
cmV0cmFuX3RzbikpIHsKIAkJCQkJLyoKQEAgLTM3MDMsOSArMzY3Niw3IEBAIHNjdHBfc3RyaWtl
X2dhcF9hY2tfY2h1bmtzKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfYXNzb2Np
YXRpb24gKmFzb2MsCiAJCQkJCXRwMS0+d2hvVG8tPmZpbmRfcHNldWRvX2N1bWFjayA9IDE7CiAJ
CQkJCXRwMS0+d2hvVG8tPmZpbmRfcnR4X3BzZXVkb19jdW1hY2sgPSAxOwogCQkJCX0KLQogCQkJ
fSBlbHNlIHsvKiBDTVQgaXMgT0ZGICovCi0KICNpZmRlZiBTQ1RQX0ZSX1RPX0FMVEVSTkFURQog
CQkJCS8qIENhbiB3ZSBmaW5kIGFuIGFsdGVybmF0ZT8gKi8KIAkJCQlhbHQgPSBzY3RwX2ZpbmRf
YWx0ZXJuYXRlX25ldChzdGNiLCB0cDEtPndob1RvLCAwKTsKQEAgLTM5MTYsMTEgKzM4ODcsMTAg
QEAgc2N0cF9mc19hdWRpdChzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYykKIAlyZXR1cm4g
KHJldCk7CiB9CiAKLQogc3RhdGljIHZvaWQKIHNjdHBfd2luZG93X3Byb2JlX3JlY292ZXJ5KHN0
cnVjdCBzY3RwX3RjYiAqc3RjYiwKLQkgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjdHBfYXNz
b2NpYXRpb24gKmFzb2MsCi0JCQkgICBzdHJ1Y3Qgc2N0cF90bWl0X2NodW5rICp0cDEpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzY3RwX3RtaXRfY2h1bmsgKnRwMSkKIHsK
IAl0cDEtPndpbmRvd19wcm9iZSA9IDA7CiAJaWYgKCh0cDEtPnNlbnQgPj0gU0NUUF9EQVRBR1JB
TV9BQ0tFRCkgfHwgKHRwMS0+ZGF0YSA9PSBOVUxMKSkgewpAQCAtNDExNiw3ICs0MDg2LDYgQEAg
c2N0cF9leHByZXNzX2hhbmRsZV9zYWNrKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgdWludDMyX3Qg
Y3VtYWNrLAogCQkJCQl0cDEtPndob1RvLT5uZXdfcHNldWRvX2N1bWFjayA9IDE7CiAJCQkJCXRw
MS0+d2hvVG8tPmZpbmRfcHNldWRvX2N1bWFjayA9IDE7CiAJCQkJCXRwMS0+d2hvVG8tPmZpbmRf
cnR4X3BzZXVkb19jdW1hY2sgPSAxOwotCiAJCQkJCWlmIChTQ1RQX0JBU0VfU1lTQ1RMKHNjdHBf
bG9nZ2luZ19sZXZlbCkgJiBTQ1RQX0NXTkRfTE9HR0lOR19FTkFCTEUpIHsKIAkJCQkJCS8qIHNh
X2lnbm9yZSBOT19OVUxMX0NISyAqLwogCQkJCQkJc2N0cF9sb2dfY3duZChzdGNiLCB0cDEtPndo
b1RvLCB0cDEtPnJlYy5kYXRhLnRzbiwgU0NUUF9DV05EX0xPR19GUk9NX1NBQ0spOwpAQCAtNDE2
NSw3ICs0MTM0LDYgQEAgc2N0cF9leHByZXNzX2hhbmRsZV9zYWNrKHN0cnVjdCBzY3RwX3RjYiAq
c3RjYiwgdWludDMyX3QgY3VtYWNrLAogCQkJCWJyZWFrOwogCQkJfQogCQl9Ci0KIAl9CiAjaWYg
ZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogCWlmIChzdGNiLT5zY3RwX2VwLT5yZWN2X2NhbGxiYWNr
KSB7CkBAIC00NzU0LDggKzQ3MjIsNiBAQCBzY3RwX2hhbmRsZV9zYWNrKHN0cnVjdCBtYnVmICpt
LCBpbnQgb2Zmc2V0X3NlZywgaW50IG9mZnNldF9kdXAsCiAJCQkJCXRwMS0+d2hvVG8tPm5ld19w
c2V1ZG9fY3VtYWNrID0gMTsKIAkJCQkJdHAxLT53aG9Uby0+ZmluZF9wc2V1ZG9fY3VtYWNrID0g
MTsKIAkJCQkJdHAxLT53aG9Uby0+ZmluZF9ydHhfcHNldWRvX2N1bWFjayA9IDE7Ci0KLQogCQkJ
CQlpZiAoU0NUUF9CQVNFX1NZU0NUTChzY3RwX2xvZ2dpbmdfbGV2ZWwpICYgU0NUUF9TQUNLX0xP
R0dJTkdfRU5BQkxFKSB7CiAJCQkJCQlzY3RwX2xvZ19zYWNrKGFzb2MtPmxhc3RfYWNrZWRfc2Vx
LAogCQkJCQkJICAgICAgICAgICAgICBjdW1fYWNrLApAQCAtNDc5Myw3ICs0NzU5LDYgQEAgc2N0
cF9oYW5kbGVfc2FjayhzdHJ1Y3QgbWJ1ZiAqbSwgaW50IG9mZnNldF9zZWcsIGludCBvZmZzZXRf
ZHVwLAogCWFzb2MtPnRoaXNfc2Fja19oaWdoZXN0X2dhcCA9IGxhc3RfdHNuOwogCiAJaWYgKChu
dW1fc2VnID4gMCkgfHwgKG51bV9ucl9zZWcgPiAwKSkgewotCiAJCS8qCiAJCSAqIHRoaXNTYWNr
SGlnaGVzdEdhcCB3aWxsIGluY3JlYXNlIHdoaWxlIGhhbmRsaW5nIE5FVwogCQkgKiBzZWdtZW50
cyB0aGlzX3NhY2tfaGlnaGVzdF9uZXdhY2sgd2lsbCBpbmNyZWFzZSB3aGlsZQpAQCAtNDgyOCw3
ICs0NzkzLDYgQEAgc2N0cF9oYW5kbGVfc2FjayhzdHJ1Y3QgbWJ1ZiAqbSwgaW50IG9mZnNldF9z
ZWcsIGludCBvZmZzZXRfZHVwLAogCQkJCXNjdHBfdGltZXJfc3RvcChTQ1RQX1RJTUVSX1RZUEVf
U0VORCwgc3RjYi0+c2N0cF9lcCwKIAkJCQkgICAgICAgICAgICAgICAgc3RjYiwgbmV0LAogCQkJ
CSAgICAgICAgICAgICAgICBTQ1RQX0ZST01fU0NUUF9JTkRBVEEgKyBTQ1RQX0xPQ18zMSk7Ci0K
IAkJfQogCX0gZWxzZSB7CiAJCWlmIChhY2N1bV9tb3ZlZCkgewpAQCAtNTI0Myw3ICs1MjA3LDYg
QEAgYWdhaW46CiAJCQkJaWYgKCFTQ1RQX09TX1RJTUVSX1BFTkRJTkcoJm5ldC0+cnh0X3RpbWVy
LnRpbWVyKSkgewogCQkJCQlzY3RwX3RpbWVyX3N0YXJ0KFNDVFBfVElNRVJfVFlQRV9TRU5ELAog
CQkJCQkgICAgICAgICAgICAgICAgIHN0Y2ItPnNjdHBfZXAsIHN0Y2IsIG5ldCk7Ci0KIAkJCQl9
CiAJCQl9IGVsc2UgaWYgKFNDVFBfT1NfVElNRVJfUEVORElORygmbmV0LT5yeHRfdGltZXIudGlt
ZXIpKSB7CiAJCQkJc2N0cF90aW1lcl9zdG9wKFNDVFBfVElNRVJfVFlQRV9TRU5ELCBzdGNiLT5z
Y3RwX2VwLApAQCAtNTQ2Nyw3ICs1NDMwLDYgQEAgc2N0cF9raWNrX3Byc2N0cF9yZW9yZGVyX3F1
ZXVlKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAkJCQkJCQkgIGNvbnRyb2wsCiAJCQkJCQkJICAm
c3RjYi0+c2N0cF9zb2NrZXQtPnNvX3JjdiwgMSwKIAkJCQkJCQkgIFNDVFBfUkVBRF9MT0NLX0hF
TEQsIFNDVFBfU09fTk9UX0xPQ0tFRCk7Ci0KIAkJCQl9CiAJCQkJbWlkID0gc3RybWluLT5sYXN0
X21pZF9kZWxpdmVyZWQgKyAxOwogCQkJfSBlbHNlIHsKQEAgLTU0ODgsMTUgKzU0NTAsMTIgQEAg
c2N0cF9raWNrX3Byc2N0cF9yZW9yZGVyX3F1ZXVlKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAl9
CiB9CiAKLQotCiBzdGF0aWMgdm9pZAogc2N0cF9mbHVzaF9yZWFzc21fZm9yX3N0cl9zZXEoc3Ry
dWN0IHNjdHBfdGNiICpzdGNiLAogCXN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLCBzdHJ1
Y3Qgc2N0cF9zdHJlYW1faW4gKnN0cm0sCiAJc3RydWN0IHNjdHBfcXVldWVkX3RvX3JlYWQgKmNv
bnRyb2wsIGludCBvcmRlcmVkLCB1aW50MzJfdCBjdW10c24pCiB7CiAJc3RydWN0IHNjdHBfdG1p
dF9jaHVuayAqY2hrLCAqbmNoazsKLQlpbnQgY250X3JlbW92ZWQgPSAwOwogCiAJLyoKIAkgKiBG
b3Igbm93IGxhcmdlIG1lc3NhZ2VzIGhlbGQgb24gdGhlIHN0cmVhbSByZWFzbSB0aGF0IGFyZQpA
QCAtNTUwNiwxNyArNTQ2NSwxOCBAQCBzY3RwX2ZsdXNoX3JlYXNzbV9mb3Jfc3RyX3NlcShzdHJ1
Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAJICogZGVsaXZlcnkgZnVuY3Rpb24uLi4gdG8gc2VlIGlmIGl0
IGNhbiBiZSBkZWxpdmVyZWQuLi4gQnV0CiAJICogZm9yIG5vdyB3ZSBqdXN0IGR1bXAgZXZlcnl0
aGluZyBvbiB0aGUgcXVldWUuCiAJICovCi0JaWYgKCFhc29jLT5pZGF0YV9zdXBwb3J0ZWQgJiYg
IW9yZGVyZWQgJiYgU0NUUF9UU05fR1QoY29udHJvbC0+ZnNuX2luY2x1ZGVkLCBjdW10c24pKSB7
CisJaWYgKCFhc29jLT5pZGF0YV9zdXBwb3J0ZWQgJiYgIW9yZGVyZWQgJiYKKwkgICAgY29udHJv
bC0+Zmlyc3RfZnJhZ19zZWVuICYmCisJICAgIFNDVFBfVFNOX0dUKGNvbnRyb2wtPmZzbl9pbmNs
dWRlZCwgY3VtdHNuKSkgewogCQlyZXR1cm47CiAJfQogCVRBSUxRX0ZPUkVBQ0hfU0FGRShjaGss
ICZjb250cm9sLT5yZWFzbSwgc2N0cF9uZXh0LCBuY2hrKSB7CiAJCS8qIFB1cmdlIGhhbmdpbmcg
Y2h1bmtzICovCi0JCWlmICghYXNvYy0+aWRhdGFfc3VwcG9ydGVkICYmIChvcmRlcmVkID09IDAp
KSB7CisJCWlmICghYXNvYy0+aWRhdGFfc3VwcG9ydGVkICYmICFvcmRlcmVkKSB7CiAJCQlpZiAo
U0NUUF9UU05fR1QoY2hrLT5yZWMuZGF0YS50c24sIGN1bXRzbikpIHsKIAkJCQlicmVhazsKIAkJ
CX0KIAkJfQotCQljbnRfcmVtb3ZlZCsrOwogCQlUQUlMUV9SRU1PVkUoJmNvbnRyb2wtPnJlYXNt
LCBjaGssIHNjdHBfbmV4dCk7CiAJCWlmIChhc29jLT5zaXplX29uX3JlYXNtX3F1ZXVlID49IGNo
ay0+c2VuZF9zaXplKSB7CiAJCQlhc29jLT5zaXplX29uX3JlYXNtX3F1ZXVlIC09IGNoay0+c2Vu
ZF9zaXplOwpAQCAtNTYwNiw3ICs1NTY2LDcgQEAgc2N0cF9oYW5kbGVfZm9yd2FyZF90c24oc3Ry
dWN0IHNjdHBfdGNiICpzdGNiLAogCXVuc2lnbmVkIGludCBpLCBmd2Rfc3osIG1fc2l6ZTsKIAl1
aW50MzJfdCBzdHJfc2VxOwogCXN0cnVjdCBzY3RwX3N0cmVhbV9pbiAqc3RybTsKLQlzdHJ1Y3Qg
c2N0cF9xdWV1ZWRfdG9fcmVhZCAqY29udHJvbCwgKnN2OworCXN0cnVjdCBzY3RwX3F1ZXVlZF90
b19yZWFkICpjb250cm9sLCAqbmNvbnRyb2wsICpzdjsKIAogCWFzb2MgPSAmc3RjYi0+YXNvYzsK
IAlpZiAoKGZ3ZF9zeiA9IG50b2hzKGZ3ZC0+Y2guY2h1bmtfbGVuZ3RoKSkgPCBzaXplb2Yoc3Ry
dWN0IHNjdHBfZm9yd2FyZF90c25fY2h1bmspKSB7CkBAIC01NjgyLDcgKzU2NDIsNyBAQCBzY3Rw
X2hhbmRsZV9mb3J3YXJkX3RzbihzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAKIAkJLyogRmx1c2gg
YWxsIHRoZSB1bi1vcmRlcmVkIGRhdGEgYmFzZWQgb24gY3VtLXRzbiAqLwogCQlTQ1RQX0lOUF9S
RUFEX0xPQ0soc3RjYi0+c2N0cF9lcCk7Ci0JCWZvciAoc2lkID0gMCA7IHNpZCA8IGFzb2MtPnN0
cmVhbWluY250OyBzaWQrKykgeworCQlmb3IgKHNpZCA9IDA7IHNpZCA8IGFzb2MtPnN0cmVhbWlu
Y250OyBzaWQrKykgewogCQkJc3RybSA9ICZhc29jLT5zdHJtaW5bc2lkXTsKIAkJCWlmICghVEFJ
TFFfRU1QVFkoJnN0cm0tPnVub19pbnF1ZXVlKSkgewogCQkJCXNjdHBfZmx1c2hfcmVhc3NtX2Zv
cl9zdHJfc2VxKHN0Y2IsIGFzb2MsIHN0cm0sIFRBSUxRX0ZJUlNUKCZzdHJtLT51bm9faW5xdWV1
ZSksIDAsIG5ld19jdW1fdHNuKTsKQEAgLTU3NjMsMTQgKzU3MjMsMTQgQEAgc2N0cF9oYW5kbGVf
Zm9yd2FyZF90c24oc3RydWN0IHNjdHBfdGNiICpzdGNiLAogCQkJfQogCQkJc3RybSA9ICZhc29j
LT5zdHJtaW5bc2lkXTsKIAkJCWlmIChvcmRlcmVkKSB7Ci0JCQkJVEFJTFFfRk9SRUFDSChjb250
cm9sLCAmc3RybS0+aW5xdWV1ZSwgbmV4dF9pbnN0cm0pIHsKKwkJCQlUQUlMUV9GT1JFQUNIX1NB
RkUoY29udHJvbCwgJnN0cm0tPmlucXVldWUsIG5leHRfaW5zdHJtLCBuY29udHJvbCkgewogCQkJ
CQlpZiAoU0NUUF9NSURfR0UoYXNvYy0+aWRhdGFfc3VwcG9ydGVkLCBtaWQsIGNvbnRyb2wtPm1p
ZCkpIHsKIAkJCQkJCXNjdHBfZmx1c2hfcmVhc3NtX2Zvcl9zdHJfc2VxKHN0Y2IsIGFzb2MsIHN0
cm0sIGNvbnRyb2wsIG9yZGVyZWQsIG5ld19jdW1fdHNuKTsKIAkJCQkJfQogCQkJCX0KIAkJCX0g
ZWxzZSB7CiAJCQkJaWYgKGFzb2MtPmlkYXRhX3N1cHBvcnRlZCkgewotCQkJCQlUQUlMUV9GT1JF
QUNIKGNvbnRyb2wsICZzdHJtLT51bm9faW5xdWV1ZSwgbmV4dF9pbnN0cm0pIHsKKwkJCQkJVEFJ
TFFfRk9SRUFDSF9TQUZFKGNvbnRyb2wsICZzdHJtLT51bm9faW5xdWV1ZSwgbmV4dF9pbnN0cm0s
IG5jb250cm9sKSB7CiAJCQkJCQlpZiAoU0NUUF9NSURfR0UoYXNvYy0+aWRhdGFfc3VwcG9ydGVk
LCBtaWQsIGNvbnRyb2wtPm1pZCkpIHsKIAkJCQkJCQlzY3RwX2ZsdXNoX3JlYXNzbV9mb3Jfc3Ry
X3NlcShzdGNiLCBhc29jLCBzdHJtLCBjb250cm9sLCBvcmRlcmVkLCBuZXdfY3VtX3Rzbik7CiAJ
CQkJCQl9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9pbmRh
dGEuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNy
c2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2luZGF0YS5oCmluZGV4IDgy
OWEwMTRmMmQ2NDljNzc5MzI4NGY0YmZiZmEyOWU4NjUzYWE4ZWQuLjY1MTQ5M2I5MTdkMzYwNmNk
OTc2ZGM1Mjc5MDU3MTdmNTUyZGQ5ZTQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIv
bmV0aW5ldC9zY3RwX2luZGF0YS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9z
Y3RwX2luZGF0YS5oCkBAIC0zNCw3ICszNCw3IEBACiAKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9f
KSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotX19G
QlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfaW5kYXRhLmggMzYxMTE2IDIw
MjAtMDUtMTYgMTk6MjY6MzlaIHR1ZXhlbiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQv
c3lzL25ldGluZXQvc2N0cF9pbmRhdGEuaCAzNjUwNzEgMjAyMC0wOS0wMSAyMToxOToxNFogbWpn
ICQiKTsKICNlbmRpZgogCiAjaWZuZGVmIF9ORVRJTkVUX1NDVFBfSU5EQVRBX0hfCkBAIC00NCwx
MiArNDQsMTEgQEAgX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfaW5k
YXRhLmggMzYxMTE2IDIwMjAtMDUtMTYgMTk6MjY6MzlaIHQKIAogc3RydWN0IHNjdHBfcXVldWVk
X3RvX3JlYWQgKgogc2N0cF9idWlsZF9yZWFkcV9lbnRyeShzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2Is
Ci0gICAgc3RydWN0IHNjdHBfbmV0cyAqbmV0LAotICAgIHVpbnQzMl90IHRzbiwgdWludDMyX3Qg
cHBpZCwKLSAgICB1aW50MzJfdCBjb250ZXh0LCB1aW50MTZfdCBzaWQsCi0gICAgdWludDMyX3Qg
bWlkLCB1aW50OF90IGZsYWdzLAotICAgIHN0cnVjdCBtYnVmICpkbSk7Ci0KKyAgICAgICAgICAg
ICAgICAgICAgICAgc3RydWN0IHNjdHBfbmV0cyAqbmV0LAorICAgICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCB0c24sIHVpbnQzMl90IHBwaWQsCisgICAgICAgICAgICAgICAgICAgICAgIHVp
bnQzMl90IGNvbnRleHQsIHVpbnQxNl90IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgdWlu
dDMyX3QgbWlkLCB1aW50OF90IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
bWJ1ZiAqZG0pOwogCiAjZGVmaW5lIHNjdHBfYnVpbGRfcmVhZHFfZW50cnlfbWFjKF9jdGwsIGlu
X2l0LCBjb250ZXh0LCBuZXQsIHRzbiwgcHBpZCwgc2lkLCBmbGFncywgZG0sIHRmc24sIG1pZCkg
ZG8geyBcCiAJaWYgKF9jdGwpIHsgXApAQCAtNzYsMTEgKzc1LDkgQEAgc2N0cF9idWlsZF9yZWFk
cV9lbnRyeShzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAJfSBcCiB9IHdoaWxlICgwKQogCi0KLQog
c3RydWN0IG1idWYgKgogc2N0cF9idWlsZF9jdGxfbmNodW5rKHN0cnVjdCBzY3RwX2lucGNiICpp
bnAsCi0JCSAgICAgIHN0cnVjdCBzY3RwX3NuZHJjdmluZm8gKnNpbmZvKTsKKyAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3Qgc2N0cF9zbmRyY3ZpbmZvICpzaW5mbyk7CiAKIHZvaWQgc2N0cF9z
ZXRfcnduZChzdHJ1Y3Qgc2N0cF90Y2IgKiwgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKik7CiAK
QEAgLTg5LDcgKzg2LDcgQEAgc2N0cF9jYWxjX3J3bmQoc3RydWN0IHNjdHBfdGNiICpzdGNiLCBz
dHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYyk7CiAKIHZvaWQKIHNjdHBfZXhwcmVzc19oYW5k
bGVfc2FjayhzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIHVpbnQzMl90IGN1bWFjaywKLQkJCSB1aW50
MzJfdCByd25kLCBpbnQgKmFib3J0X25vdywgaW50IGVjbmVfc2Vlbik7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludDMyX3QgcnduZCwgaW50ICphYm9ydF9ub3csIGludCBlY25lX3NlZW4p
OwogCiB2b2lkCiBzY3RwX2hhbmRsZV9zYWNrKHN0cnVjdCBtYnVmICptLCBpbnQgb2Zmc2V0X3Nl
ZywgaW50IG9mZnNldF9kdXAsCkBAIC0xMDEsNyArOTgsNyBAQCBzY3RwX2hhbmRsZV9zYWNrKHN0
cnVjdCBtYnVmICptLCBpbnQgb2Zmc2V0X3NlZywgaW50IG9mZnNldF9kdXAsCiAvKiBkcmFmdC1p
ZXRmLXRzdndnLXVzY3RwICovCiB2b2lkCiBzY3RwX2hhbmRsZV9mb3J3YXJkX3RzbihzdHJ1Y3Qg
c2N0cF90Y2IgKiwKLQkJCXN0cnVjdCBzY3RwX2ZvcndhcmRfdHNuX2NodW5rICosIGludCAqLCBz
dHJ1Y3QgbWJ1ZiAqLCBpbnQpOworICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjdHBf
Zm9yd2FyZF90c25fY2h1bmsgKiwgaW50ICosIHN0cnVjdCBtYnVmICosIGludCk7CiAKIHN0cnVj
dCBzY3RwX3RtaXRfY2h1bmsgKgogc2N0cF90cnlfYWR2YW5jZV9wZWVyX2Fja19wb2ludChzdHJ1
Y3Qgc2N0cF90Y2IgKiwgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKik7CkBAIC0xMTMsOCArMTEw
LDggQEAgc2N0cF91cGRhdGVfYWNrZWQoc3RydWN0IHNjdHBfdGNiICosIHN0cnVjdCBzY3RwX3No
dXRkb3duX2NodW5rICosIGludCAqKTsKIAogaW50CiBzY3RwX3Byb2Nlc3NfZGF0YShzdHJ1Y3Qg
bWJ1ZiAqKiwgaW50LCBpbnQgKiwgaW50LAotCQkgIHN0cnVjdCBzY3RwX2lucGNiICosIHN0cnVj
dCBzY3RwX3RjYiAqLAotCQkgIHN0cnVjdCBzY3RwX25ldHMgKiwgdWludDMyX3QgKik7CisgICAg
ICAgICAgICAgICAgICBzdHJ1Y3Qgc2N0cF9pbnBjYiAqLCBzdHJ1Y3Qgc2N0cF90Y2IgKiwKKyAg
ICAgICAgICAgICAgICAgIHN0cnVjdCBzY3RwX25ldHMgKiwgdWludDMyX3QgKik7CiAKIHZvaWQg
c2N0cF9zbGlkZV9tYXBwaW5nX2FycmF5cyhzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3Vz
cnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9pbnB1dC5jIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBs
aWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfaW5wdXQuYwppbmRleCBkOWJhNDZkNWY3Y2VmZGE2
ZjhkYWJjM2Q2NDQ3MmE4ODc3MWRkNzBlLi41MTcxODlmYjZhOTc3ZGE3ZmQ1N2U4NzIwODk3NTc0
YjBmZTQ5M2FiIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9p
bnB1dC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2lucHV0LmMKQEAg
LTM0LDcgKzM0LDcgQEAKIAogI2lmIGRlZmluZWQoX19GcmVlQlNEX18pICYmICFkZWZpbmVkKF9f
VXNlcnNwYWNlX18pCiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+Ci1fX0ZCU0RJRCgiJEZyZWVCU0Q6
IGhlYWQvc3lzL25ldGluZXQvc2N0cF9pbnB1dC5jIDM2NDI2OCAyMDIwLTA4LTE2IDExOjUwOjM3
WiB0dWV4ZW4gJCIpOworX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBf
aW5wdXQuYyAzNjg2MjIgMjAyMC0xMi0xMyAyMzo1MTo1MVogdHVleGVuICQiKTsKICNlbmRpZgog
CiAjaW5jbHVkZSA8bmV0aW5ldC9zY3RwX29zLmg+CkBAIC0zMjQsNyArMzI0LDYgQEAgc2N0cF9w
cm9jZXNzX2luaXQoc3RydWN0IHNjdHBfaW5pdF9jaHVuayAqY3AsIHN0cnVjdCBzY3RwX3RjYiAq
c3RjYikKIAkJCWlmIChTQ1RQX0JBU0VfU1lTQ1RMKHNjdHBfbG9nZ2luZ19sZXZlbCkgJiAoU0NU
UF9DV05EX01PTklUT1JfRU5BQkxFfFNDVFBfQ1dORF9MT0dHSU5HX0VOQUJMRSkpIHsKIAkJCQlz
Y3RwX2xvZ19jd25kKHN0Y2IsIGxuZXQsIDAsIFNDVFBfQ1dORF9JTklUSUFMSVpBVElPTik7CiAJ
CQl9Ci0KIAkJfQogCX0KIAlTQ1RQX1RDQl9TRU5EX0xPQ0soc3RjYik7CkBAIC03NTUsMTkgKzc1
NCwxOCBAQCBzY3RwX2hhbmRsZV9oZWFydGJlYXRfYWNrKHN0cnVjdCBzY3RwX2hlYXJ0YmVhdF9j
aHVuayAqY3AsCiAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0NUUF9NT0JJTElU
WV9GQVNUSEFORE9GRikpICYmCiAJCSAgICBzY3RwX2lzX21vYmlsaXR5X2ZlYXR1cmVfb24oc3Rj
Yi0+c2N0cF9lcCwKIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ1RQX01PQklM
SVRZX1BSSU1fREVMRVRFRCkpIHsKLQogCQkJc2N0cF90aW1lcl9zdG9wKFNDVFBfVElNRVJfVFlQ
RV9QUklNX0RFTEVURUQsCiAJCQkgICAgICAgICAgICAgICAgc3RjYi0+c2N0cF9lcCwgc3RjYiwg
TlVMTCwKIAkJCSAgICAgICAgICAgICAgICBTQ1RQX0ZST01fU0NUUF9JTlBVVCArIFNDVFBfTE9D
XzYpOwogCQkJaWYgKHNjdHBfaXNfbW9iaWxpdHlfZmVhdHVyZV9vbihzdGNiLT5zY3RwX2VwLAot
CQkJCQlTQ1RQX01PQklMSVRZX0ZBU1RIQU5ET0ZGKSkgeworCQkJICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTQ1RQX01PQklMSVRZX0ZBU1RIQU5ET0ZGKSkgewogCQkJCXNjdHBfYXNz
b2NfaW1tZWRpYXRlX3JldHJhbnMoc3RjYiwKLQkJCQkJc3RjYi0+YXNvYy5wcmltYXJ5X2Rlc3Rp
bmF0aW9uKTsKKwkJCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0Y2ItPmFzb2MucHJp
bWFyeV9kZXN0aW5hdGlvbik7CiAJCQl9CiAJCQlpZiAoc2N0cF9pc19tb2JpbGl0eV9mZWF0dXJl
X29uKHN0Y2ItPnNjdHBfZXAsCi0JCQkJCVNDVFBfTU9CSUxJVFlfQkFTRSkpIHsKKwkJCQkgICAg
ICAgICAgICAgICAgICAgICAgICBTQ1RQX01PQklMSVRZX0JBU0UpKSB7CiAJCQkJc2N0cF9tb3Zl
X2NodW5rc19mcm9tX25ldChzdGNiLAotCQkJCQlzdGNiLT5hc29jLmRlbGV0ZWRfcHJpbWFyeSk7
CisJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICBzdGNiLT5hc29jLmRlbGV0ZWRfcHJpbWFy
eSk7CiAJCQl9CiAJCQlzY3RwX2RlbGV0ZV9wcmltX3RpbWVyKHN0Y2ItPnNjdHBfZXAsIHN0Y2Ip
OwogCQl9CkBAIC04NDIsNyArODQwLDYgQEAgc2N0cF9oYW5kbGVfbmF0X21pc3Npbmdfc3RhdGUo
c3RydWN0IHNjdHBfdGNiICpzdGNiLAogCXJldHVybiAoMSk7CiB9CiAKLQogLyogUmV0dXJucyAx
IGlmIHRoZSBzdGNiIHdhcyBhYm9ydGVkLCAwIG90aGVyd2lzZSAqLwogc3RhdGljIGludAogc2N0
cF9oYW5kbGVfYWJvcnQoc3RydWN0IHNjdHBfYWJvcnRfY2h1bmsgKmFib3J0LApAQCAtOTQ1LDcg
Kzk0Miw2IEBAIHNjdHBfc3RhcnRfbmV0X3RpbWVycyhzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IpCiAJ
fQogfQogCi0KIHN0YXRpYyB2b2lkCiBzY3RwX2hhbmRsZV9zaHV0ZG93bihzdHJ1Y3Qgc2N0cF9z
aHV0ZG93bl9jaHVuayAqY3AsCiAgICAgc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0
cF9uZXRzICpuZXQsIGludCAqYWJvcnRfZmxhZykKQEAgLTEyOTgsMTMgKzEyOTQsMTAgQEAgc2N0
cF9oYW5kbGVfZXJyb3Ioc3RydWN0IHNjdHBfY2h1bmtoZHIgKmNoLAogCQkJCXN0cnVjdCBzY3Rw
X2Vycm9yX3N0YWxlX2Nvb2tpZSAqc3RhbGVfY29va2llOwogCiAJCQkJc3RhbGVfY29va2llID0g
KHN0cnVjdCBzY3RwX2Vycm9yX3N0YWxlX2Nvb2tpZSAqKWNhdXNlOwotCQkJCWFzb2MtPmNvb2tp
ZV9wcmVzZXJ2ZV9yZXEgPSBudG9obChzdGFsZV9jb29raWUtPnN0YWxlX3RpbWUpOwotCQkJCS8q
IERvdWJsZSBpdCB0byBiZSBtb3JlIHJvYnVzdCBvbiBSVFggKi8KLQkJCQlpZiAoYXNvYy0+Y29v
a2llX3ByZXNlcnZlX3JlcSA8PSBVSU5UMzJfTUFYIC8gMikgewotCQkJCQlhc29jLT5jb29raWVf
cHJlc2VydmVfcmVxICo9IDI7Ci0JCQkJfSBlbHNlIHsKLQkJCQkJYXNvYy0+Y29va2llX3ByZXNl
cnZlX3JlcSA9IFVJTlQzMl9NQVg7Ci0JCQkJfQorCQkJCS8qIHN0YWJsZV90aW1lIGlzIGluIHVz
ZWMsIGNvbnZlcnQgdG8gbXNlYy4gKi8KKwkJCQlhc29jLT5jb29raWVfcHJlc2VydmVfcmVxID0g
bnRvaGwoc3RhbGVfY29va2llLT5zdGFsZV90aW1lKSAvIDEwMDA7CisJCQkJLyogRG91YmxlIGl0
IHRvIGJlIG1vcmUgcm9idXN0IG9uIFJUWC4gKi8KKwkJCQlhc29jLT5jb29raWVfcHJlc2VydmVf
cmVxICo9IDI7CiAJCQkJYXNvYy0+c3RhbGVfY29va2llX2NvdW50Kys7CiAJCQkJaWYgKGFzb2Mt
PnN0YWxlX2Nvb2tpZV9jb3VudCA+CiAJCQkJICAgIGFzb2MtPm1heF9pbml0X3RpbWVzKSB7CkBA
IC0xNTczLDcgKzE1NjYsNiBAQCBzY3RwX3Byb2Nlc3NfY29va2llX25ldyhzdHJ1Y3QgbWJ1ZiAq
bSwgaW50IGlwaGxlbiwgaW50IG9mZnNldCwKICNlbmRpZgogICAgIHVpbnQzMl90IHZyZl9pZCwg
dWludDE2X3QgcG9ydCk7CiAKLQogLyoKICAqIGhhbmRsZSBhIHN0YXRlIGNvb2tpZSBmb3IgYW4g
ZXhpc3RpbmcgYXNzb2NpYXRpb24gbTogaW5wdXQgcGFja2V0IG1idWYKICAqIGNoYWluLS0gYXNz
dW1lcyBhIHB1bGx1cCBvbiBJUC9TQ1RQL0NPT0tJRS1FQ0hPIGNodW5rIG5vdGU6IHRoaXMgaXMg
YQpAQCAtMTU5NCwxMiArMTU4NiwxMiBAQCBzY3RwX3Byb2Nlc3NfY29va2llX2V4aXN0aW5nKHN0
cnVjdCBtYnVmICptLCBpbnQgaXBobGVuLCBpbnQgb2Zmc2V0LAogewogCXN0cnVjdCBzY3RwX2Fz
c29jaWF0aW9uICphc29jOwogCXN0cnVjdCBzY3RwX2luaXRfY2h1bmsgKmluaXRfY3AsIGluaXRf
YnVmOworCXN0cnVjdCBzY3RwX2luaXRfYWNrX2NodW5rICppbml0YWNrX2NwLCBpbml0YWNrX2J1
ZjsKIAlzdHJ1Y3Qgc2N0cF9hc2NvbmZfYWRkciAqYXBhcmFtLCAqbmFwYXJhbTsKIAlzdHJ1Y3Qg
c2N0cF9hc2NvbmZfYWNrICphYWNrLCAqbmFhY2s7CiAJc3RydWN0IHNjdHBfdG1pdF9jaHVuayAq
Y2hrLCAqbmNoazsKIAlzdHJ1Y3Qgc2N0cF9zdHJlYW1fcmVzZXRfbGlzdCAqc3RycnN0LCAqbnN0
cnJzdDsKIAlzdHJ1Y3Qgc2N0cF9xdWV1ZWRfdG9fcmVhZCAqc3EsICpuc3E7Ci0Jc3RydWN0IHNj
dHBfaW5pdF9hY2tfY2h1bmsgKmluaXRhY2tfY3AsIGluaXRhY2tfYnVmOwogCXN0cnVjdCBzY3Rw
X25ldHMgKm5ldDsKIAlzdHJ1Y3QgbWJ1ZiAqb3BfZXJyOwogCXN0cnVjdCB0aW1ldmFsIG9sZDsK
QEAgLTE2ODEsNyArMTY3Myw3IEBAIHNjdHBfcHJvY2Vzc19jb29raWVfZXhpc3Rpbmcoc3RydWN0
IG1idWYgKm0sIGludCBpcGhsZW4sIGludCBvZmZzZXQsCiAJCQkgKiAgIC0tLS1JTklULUFDSyh0
YWc9dCktLT4KIAkJCSAqICAgLS0tLUlOSVQodGFnPXQpLS0tLS0tPiAqMQogCQkJICogICA8LS0t
SU5JVC1BQ0sodGFnPWEpLS0tCi0gICAgICAgICAgICAgICAgICAgICAgICAgKiAgIDwtLS0tQ0Uo
dGFnPXQpLS0tLS0tLS0tLS0tLSAqMgorCQkJICogICA8LS0tLUNFKHRhZz10KS0tLS0tLS0tLS0t
LS0gKjIKIAkJCSAqCiAJCQkgKiBBdCBwb2ludCAqMSB3ZSBzaG91bGQgYmUgZ2VuZXJhdGluZyBh
IGRpZmZlcmVudAogCQkJICogdGFnIHQnLiBXaGljaCBtZWFucyB3ZSB3b3VsZCB0aHJvdyBhd2F5
IHRoZSBDRSBhbmQgc2VuZApAQCAtMTY5MCw3ICsxNjgyLDYgQEAgc2N0cF9wcm9jZXNzX2Nvb2tp
ZV9leGlzdGluZyhzdHJ1Y3QgbWJ1ZiAqbSwgaW50IGlwaGxlbiwgaW50IG9mZnNldCwKIAkJCWlm
IChob3dfaW5keCA8IHNpemVvZihhc29jLT5jb29raWVfaG93KSkKIAkJCQlhc29jLT5jb29raWVf
aG93W2hvd19pbmR4XSA9IDE3OwogCQkJcmV0dXJuIChOVUxMKTsKLQogCQl9CiAJCXN3aXRjaCAo
U0NUUF9HRVRfU1RBVEUoc3RjYikpIHsKIAkJCWNhc2UgU0NUUF9TVEFURV9DT09LSUVfV0FJVDoK
QEAgLTE3NzQsNyArMTc2NSw3IEBAIHNjdHBfcHJvY2Vzc19jb29raWVfZXhpc3Rpbmcoc3RydWN0
IG1idWYgKm0sIGludCBpcGhsZW4sIGludCBvZmZzZXQsCiAJCQkJaWYgKHN0Y2ItPmFzb2Muc2N0
cF9hdXRvY2xvc2VfdGlja3MgJiYKIAkJCQkgICAgKHNjdHBfaXNfZmVhdHVyZV9vbihpbnAsIFND
VFBfUENCX0ZMQUdTX0FVVE9DTE9TRSkpKSB7CiAJCQkJCXNjdHBfdGltZXJfc3RhcnQoU0NUUF9U
SU1FUl9UWVBFX0FVVE9DTE9TRSwKLQkJCQkJCQkgaW5wLCBzdGNiLCBOVUxMKTsKKwkJCQkJICAg
ICAgICAgICAgICAgICBpbnAsIHN0Y2IsIE5VTEwpOwogCQkJCX0KIAkJCQlicmVhazsKIAkJCWRl
ZmF1bHQ6CkBAIC0xNzkxLDggKzE3ODIsOCBAQCBzY3RwX3Byb2Nlc3NfY29va2llX2V4aXN0aW5n
KHN0cnVjdCBtYnVmICptLCBpbnQgaXBobGVuLCBpbnQgb2Zmc2V0LAogCQkgKiByZWFsbHkgc2hv
dWxkIG5vdCBmYWlsLgogCQkgKi8KIAkJaWYgKHNjdHBfbG9hZF9hZGRyZXNzZXNfZnJvbV9pbml0
KHN0Y2IsIG0sCi0JCQkJCQkgIGluaXRfb2Zmc2V0ICsgc2l6ZW9mKHN0cnVjdCBzY3RwX2luaXRf
Y2h1bmspLAotCQkJCQkJICBpbml0YWNrX29mZnNldCwgc3JjLCBkc3QsIGluaXRfc3JjLCBzdGNi
LT5hc29jLnBvcnQpKSB7CisJCQkgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRfb2Zmc2V0
ICsgc2l6ZW9mKHN0cnVjdCBzY3RwX2luaXRfY2h1bmspLAorCQkJICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbml0YWNrX29mZnNldCwgc3JjLCBkc3QsIGluaXRfc3JjLCBzdGNiLT5hc29jLnBv
cnQpKSB7CiAJCQlpZiAoaG93X2luZHggPCBzaXplb2YoYXNvYy0+Y29va2llX2hvdykpCiAJCQkJ
YXNvYy0+Y29va2llX2hvd1tob3dfaW5keF0gPSA0OwogCQkJcmV0dXJuIChOVUxMKTsKQEAgLTE4
ODMsNyArMTg3NCw3IEBAIHNjdHBfcHJvY2Vzc19jb29raWVfZXhpc3Rpbmcoc3RydWN0IG1idWYg
Km0sIGludCBpcGhsZW4sIGludCBvZmZzZXQsCiAJCWlmIChzdGNiLT5hc29jLnNjdHBfYXV0b2Ns
b3NlX3RpY2tzICYmCiAJCSAgICBzY3RwX2lzX2ZlYXR1cmVfb24oaW5wLCBTQ1RQX1BDQl9GTEFH
U19BVVRPQ0xPU0UpKSB7CiAJCQlzY3RwX3RpbWVyX3N0YXJ0KFNDVFBfVElNRVJfVFlQRV9BVVRP
Q0xPU0UsIGlucCwgc3RjYiwKLQkJCQkJIE5VTEwpOworCQkJICAgICAgICAgICAgICAgICBOVUxM
KTsKIAkJfQogCQlhc29jLT5teV9yd25kID0gbnRvaGwoaW5pdGFja19jcC0+aW5pdC5hX3J3bmQp
OwogCQlpZiAoYXNvYy0+cHJlX29wZW5fc3RyZWFtcyA8IGFzb2MtPnN0cmVhbW91dGNudCkgewpA
QCAtMTg5OCw3ICsxODg5LDggQEAgc2N0cF9wcm9jZXNzX2Nvb2tpZV9leGlzdGluZyhzdHJ1Y3Qg
bWJ1ZiAqbSwgaW50IGlwaGxlbiwgaW50IG9mZnNldCwKIAkJCSAqIGtpY2sgdXMgc28gaXQgQ09V
TEQgc3RpbGwgdGFrZSBhIHRpbWVvdXQKIAkJCSAqIHRvIG1vdmUgdGhlc2UuLiBidXQgaXQgY2Fu
J3QgaHVydCB0byBtYXJrIHRoZW0uCiAJCQkgKi8KLQkJICAgICAgICBUQUlMUV9GT1JFQUNIKGNo
aywgJnN0Y2ItPmFzb2Muc2VudF9xdWV1ZSwgc2N0cF9uZXh0KSB7CisKKwkJCVRBSUxRX0ZPUkVB
Q0goY2hrLCAmc3RjYi0+YXNvYy5zZW50X3F1ZXVlLCBzY3RwX25leHQpIHsKIAkJCQlpZiAoY2hr
LT5zZW50IDwgU0NUUF9EQVRBR1JBTV9SRVNFTkQpIHsKIAkJCQkJY2hrLT5zZW50ID0gU0NUUF9E
QVRBR1JBTV9SRVNFTkQ7CiAJCQkJCXNjdHBfZmxpZ2h0X3NpemVfZGVjcmVhc2UoY2hrKTsKQEAg
LTE5MDcsNyArMTg5OSw2IEBAIHNjdHBfcHJvY2Vzc19jb29raWVfZXhpc3Rpbmcoc3RydWN0IG1i
dWYgKm0sIGludCBpcGhsZW4sIGludCBvZmZzZXQsCiAJCQkJCXNwZWNfZmxhZysrOwogCQkJCX0K
IAkJCX0KLQogCQl9CiAJCS8qIHByb2Nlc3MgdGhlIElOSVQgaW5mbyAocGVlcidzIGluZm8pICov
CiAJCXJldHZhbCA9IHNjdHBfcHJvY2Vzc19pbml0KGluaXRfY3AsIHN0Y2IpOwpAQCAtMTkxNyw4
ICsxOTA4LDggQEAgc2N0cF9wcm9jZXNzX2Nvb2tpZV9leGlzdGluZyhzdHJ1Y3QgbWJ1ZiAqbSwg
aW50IGlwaGxlbiwgaW50IG9mZnNldCwKIAkJCXJldHVybiAoTlVMTCk7CiAJCX0KIAkJaWYgKHNj
dHBfbG9hZF9hZGRyZXNzZXNfZnJvbV9pbml0KHN0Y2IsIG0sCi0JCQkJCQkgIGluaXRfb2Zmc2V0
ICsgc2l6ZW9mKHN0cnVjdCBzY3RwX2luaXRfY2h1bmspLAotCQkJCQkJICBpbml0YWNrX29mZnNl
dCwgc3JjLCBkc3QsIGluaXRfc3JjLCBzdGNiLT5hc29jLnBvcnQpKSB7CisJCSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbml0X29mZnNldCArIHNpemVvZihzdHJ1Y3Qgc2N0cF9p
bml0X2NodW5rKSwKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRhY2tf
b2Zmc2V0LCBzcmMsIGRzdCwgaW5pdF9zcmMsIHN0Y2ItPmFzb2MucG9ydCkpIHsKIAkJCWlmICho
b3dfaW5keCA8IHNpemVvZihhc29jLT5jb29raWVfaG93KSkKIAkJCQlhc29jLT5jb29raWVfaG93
W2hvd19pbmR4XSA9IDEwOwogCQkJcmV0dXJuIChOVUxMKTsKQEAgLTE5MzMsOCArMTkyNCw3IEBA
IHNjdHBfcHJvY2Vzc19jb29raWVfZXhpc3Rpbmcoc3RydWN0IG1idWYgKm0sIGludCBpcGhsZW4s
IGludCBvZmZzZXQsCiAjaWYgZGVmaW5lZChfX0FQUExFX18pICYmICFkZWZpbmVkKF9fVXNlcnNw
YWNlX18pCiAJCQkJc3RydWN0IHNvY2tldCAqc287CiAjZW5kaWYKLQkJCQlzdGNiLT5zY3RwX2Vw
LT5zY3RwX2ZsYWdzIHw9Ci0JCQkJCVNDVFBfUENCX0ZMQUdTX0NPTk5FQ1RFRDsKKwkJCQlzdGNi
LT5zY3RwX2VwLT5zY3RwX2ZsYWdzIHw9IFNDVFBfUENCX0ZMQUdTX0NPTk5FQ1RFRDsKICNpZiBk
ZWZpbmVkKF9fQVBQTEVfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKIAkJCQlzbyA9IFND
VFBfSU5QX1NPKHN0Y2ItPnNjdHBfZXApOwogCQkJCWF0b21pY19hZGRfaW50KCZzdGNiLT5hc29j
LnJlZmNudCwgMSk7CkBAIC0yMDQ4LDEyICsyMDM4LDEwIEBAIHNjdHBfcHJvY2Vzc19jb29raWVf
ZXhpc3Rpbmcoc3RydWN0IG1idWYgKm0sIGludCBpcGhsZW4sIGludCBvZmZzZXQsCiAJCWFzb2Mt
PmluaXRfc2VxX251bWJlciA9IG50b2hsKGluaXRhY2tfY3AtPmluaXQuaW5pdGlhbF90c24pOwog
CQlhc29jLT5zZW5kaW5nX3NlcSA9IGFzb2MtPmFzY29uZl9zZXFfb3V0ID0gYXNvYy0+c3RyX3Jl
c2V0X3NlcV9vdXQgPSBhc29jLT5pbml0X3NlcV9udW1iZXI7CiAJCWFzb2MtPmFzY29uZl9zZXFf
b3V0X2Fja2VkID0gYXNvYy0+YXNjb25mX3NlcV9vdXQgLSAxOwotCiAJCWFzb2MtPmFzY29uZl9z
ZXFfaW4gPSBhc29jLT5sYXN0X2Fja2VkX3NlcSA9IGFzb2MtPmluaXRfc2VxX251bWJlciAtIDE7
Ci0KIAkJYXNvYy0+c3RyX3Jlc2V0X3NlcV9pbiA9IGFzb2MtPmluaXRfc2VxX251bWJlcjsKLQog
CQlhc29jLT5hZHZhbmNlZF9wZWVyX2Fja19wb2ludCA9IGFzb2MtPmxhc3RfYWNrZWRfc2VxOwor
CQlhc29jLT5zZW5kX3NhY2sgPSAxOwogCQlpZiAoYXNvYy0+bWFwcGluZ19hcnJheSkgewogCQkJ
bWVtc2V0KGFzb2MtPm1hcHBpbmdfYXJyYXksIDAsCiAJCQkgICAgICAgYXNvYy0+bWFwcGluZ19h
cnJheV9zaXplKTsKQEAgLTIwOTEsNTcgKzIwNzksNTYgQEAgc2N0cF9wcm9jZXNzX2Nvb2tpZV9l
eGlzdGluZyhzdHJ1Y3QgbWJ1ZiAqbSwgaW50IGlwaGxlbiwgaW50IG9mZnNldCwKIAkJCXN0Y2It
PmFzb2Muc3RybW91dFtpXS5uZXh0X21pZF91bm9yZGVyZWQgPSAwOwogCQkJc3RjYi0+YXNvYy5z
dHJtb3V0W2ldLmxhc3RfbXNnX2luY29tcGxldGUgPSAwOwogCQl9Ci0KLSAJCVRBSUxRX0ZPUkVB
Q0hfU0FGRShzdHJyc3QsICZhc29jLT5yZXNldEhlYWQsIG5leHRfcmVzcCwgbnN0cnJzdCkgewot
IAkJCVRBSUxRX1JFTU9WRSgmYXNvYy0+cmVzZXRIZWFkLCBzdHJyc3QsIG5leHRfcmVzcCk7Ci0g
CQkJU0NUUF9GUkVFKHN0cnJzdCwgU0NUUF9NX1NUUkVTRVQpOwotIAkJfQotIAkJVEFJTFFfRk9S
RUFDSF9TQUZFKHNxLCAmYXNvYy0+cGVuZGluZ19yZXBseV9xdWV1ZSwgbmV4dCwgbnNxKSB7Ci0g
CQkJVEFJTFFfUkVNT1ZFKCZhc29jLT5wZW5kaW5nX3JlcGx5X3F1ZXVlLCBzcSwgbmV4dCk7Ci0g
CQkJaWYgKHNxLT5kYXRhKSB7Ci0gCQkJCXNjdHBfbV9mcmVlbShzcS0+ZGF0YSk7Ci0gCQkJCXNx
LT5kYXRhID0gTlVMTDsKLSAJCQl9Ci0gCQkJc2N0cF9mcmVlX3JlbW90ZV9hZGRyKHNxLT53aG9G
cm9tKTsKLSAJCQlzcS0+d2hvRnJvbSA9IE5VTEw7Ci0gCQkJc3EtPnN0Y2IgPSBOVUxMOwotIAkJ
CXNjdHBfZnJlZV9hX3JlYWRxKHN0Y2IsIHNxKTsKLSAJCX0KLSAJCVRBSUxRX0ZPUkVBQ0hfU0FG
RShjaGssICZhc29jLT5jb250cm9sX3NlbmRfcXVldWUsIHNjdHBfbmV4dCwgbmNoaykgewotIAkJ
CVRBSUxRX1JFTU9WRSgmYXNvYy0+Y29udHJvbF9zZW5kX3F1ZXVlLCBjaGssIHNjdHBfbmV4dCk7
Ci0gCQkJaWYgKGNoay0+ZGF0YSkgewotIAkJCQlzY3RwX21fZnJlZW0oY2hrLT5kYXRhKTsKLSAJ
CQkJY2hrLT5kYXRhID0gTlVMTDsKLSAJCQl9Ci0gCQkJaWYgKGNoay0+aG9sZHNfa2V5X3JlZikK
LSAJCQkJc2N0cF9hdXRoX2tleV9yZWxlYXNlKHN0Y2IsIGNoay0+YXV0aF9rZXlpZCwgU0NUUF9T
T19MT0NLRUQpOwotIAkJCXNjdHBfZnJlZV9yZW1vdGVfYWRkcihjaGstPndob1RvKTsKLSAJCQlT
Q1RQX1pPTkVfRlJFRShTQ1RQX0JBU0VfSU5GTyhpcGlfem9uZV9jaHVuayksIGNoayk7Ci0gCQkJ
U0NUUF9ERUNSX0NIS19DT1VOVCgpOwotIAkJfQotIAkJVEFJTFFfRk9SRUFDSF9TQUZFKGNoaywg
JmFzb2MtPmFzY29uZl9zZW5kX3F1ZXVlLCBzY3RwX25leHQsIG5jaGspIHsKLSAJCQlUQUlMUV9S
RU1PVkUoJmFzb2MtPmFzY29uZl9zZW5kX3F1ZXVlLCBjaGssIHNjdHBfbmV4dCk7Ci0gCQkJaWYg
KGNoay0+ZGF0YSkgewotIAkJCQlzY3RwX21fZnJlZW0oY2hrLT5kYXRhKTsKLSAJCQkJY2hrLT5k
YXRhID0gTlVMTDsKLSAJCQl9Ci0gCQkJaWYgKGNoay0+aG9sZHNfa2V5X3JlZikKLSAJCQkJc2N0
cF9hdXRoX2tleV9yZWxlYXNlKHN0Y2IsIGNoay0+YXV0aF9rZXlpZCwgU0NUUF9TT19MT0NLRUQp
OwotIAkJCXNjdHBfZnJlZV9yZW1vdGVfYWRkcihjaGstPndob1RvKTsKLSAJCQlTQ1RQX1pPTkVf
RlJFRShTQ1RQX0JBU0VfSU5GTyhpcGlfem9uZV9jaHVuayksIGNoayk7Ci0gCQkJU0NUUF9ERUNS
X0NIS19DT1VOVCgpOwotIAkJfQotIAkJVEFJTFFfRk9SRUFDSF9TQUZFKGFwYXJhbSwgJmFzb2Mt
PmFzY29uZl9xdWV1ZSwgbmV4dCwgbmFwYXJhbSkgewotIAkJCVRBSUxRX1JFTU9WRSgmYXNvYy0+
YXNjb25mX3F1ZXVlLCBhcGFyYW0sIG5leHQpOwotIAkJCVNDVFBfRlJFRShhcGFyYW0sU0NUUF9N
X0FTQ19BRERSKTsKLSAJCX0KLSAJCVRBSUxRX0ZPUkVBQ0hfU0FGRShhYWNrLCAmYXNvYy0+YXNj
b25mX2Fja19zZW50LCBuZXh0LCBuYWFjaykgewotIAkJCVRBSUxRX1JFTU9WRSgmYXNvYy0+YXNj
b25mX2Fja19zZW50LCBhYWNrLCBuZXh0KTsKLSAJCQlpZiAoYWFjay0+ZGF0YSAhPSBOVUxMKSB7
Ci0gCQkJCXNjdHBfbV9mcmVlbShhYWNrLT5kYXRhKTsKLSAJCQl9Ci0gCQkJU0NUUF9aT05FX0ZS
RUUoU0NUUF9CQVNFX0lORk8oaXBpX3pvbmVfYXNjb25mX2FjayksIGFhY2spOwotIAkJfQorCQlU
QUlMUV9GT1JFQUNIX1NBRkUoc3RycnN0LCAmYXNvYy0+cmVzZXRIZWFkLCBuZXh0X3Jlc3AsIG5z
dHJyc3QpIHsKKwkJCVRBSUxRX1JFTU9WRSgmYXNvYy0+cmVzZXRIZWFkLCBzdHJyc3QsIG5leHRf
cmVzcCk7CisJCQlTQ1RQX0ZSRUUoc3RycnN0LCBTQ1RQX01fU1RSRVNFVCk7CisJCX0KKwkJVEFJ
TFFfRk9SRUFDSF9TQUZFKHNxLCAmYXNvYy0+cGVuZGluZ19yZXBseV9xdWV1ZSwgbmV4dCwgbnNx
KSB7CisJCQlUQUlMUV9SRU1PVkUoJmFzb2MtPnBlbmRpbmdfcmVwbHlfcXVldWUsIHNxLCBuZXh0
KTsKKwkJCWlmIChzcS0+ZGF0YSkgeworCQkJCXNjdHBfbV9mcmVlbShzcS0+ZGF0YSk7CisJCQkJ
c3EtPmRhdGEgPSBOVUxMOworCQkJfQorCQkJc2N0cF9mcmVlX3JlbW90ZV9hZGRyKHNxLT53aG9G
cm9tKTsKKwkJCXNxLT53aG9Gcm9tID0gTlVMTDsKKwkJCXNxLT5zdGNiID0gTlVMTDsKKwkJCXNj
dHBfZnJlZV9hX3JlYWRxKHN0Y2IsIHNxKTsKKwkJfQorCQlUQUlMUV9GT1JFQUNIX1NBRkUoY2hr
LCAmYXNvYy0+Y29udHJvbF9zZW5kX3F1ZXVlLCBzY3RwX25leHQsIG5jaGspIHsKKwkJCVRBSUxR
X1JFTU9WRSgmYXNvYy0+Y29udHJvbF9zZW5kX3F1ZXVlLCBjaGssIHNjdHBfbmV4dCk7CisJCQlp
ZiAoY2hrLT5kYXRhKSB7CisJCQkJc2N0cF9tX2ZyZWVtKGNoay0+ZGF0YSk7CisJCQkJY2hrLT5k
YXRhID0gTlVMTDsKKwkJCX0KKwkJCWlmIChjaGstPmhvbGRzX2tleV9yZWYpCisJCQkJc2N0cF9h
dXRoX2tleV9yZWxlYXNlKHN0Y2IsIGNoay0+YXV0aF9rZXlpZCwgU0NUUF9TT19MT0NLRUQpOwor
CQkJc2N0cF9mcmVlX3JlbW90ZV9hZGRyKGNoay0+d2hvVG8pOworCQkJU0NUUF9aT05FX0ZSRUUo
U0NUUF9CQVNFX0lORk8oaXBpX3pvbmVfY2h1bmspLCBjaGspOworCQkJU0NUUF9ERUNSX0NIS19D
T1VOVCgpOworCQl9CisJCVRBSUxRX0ZPUkVBQ0hfU0FGRShjaGssICZhc29jLT5hc2NvbmZfc2Vu
ZF9xdWV1ZSwgc2N0cF9uZXh0LCBuY2hrKSB7CisJCQlUQUlMUV9SRU1PVkUoJmFzb2MtPmFzY29u
Zl9zZW5kX3F1ZXVlLCBjaGssIHNjdHBfbmV4dCk7CisJCQlpZiAoY2hrLT5kYXRhKSB7CisJCQkJ
c2N0cF9tX2ZyZWVtKGNoay0+ZGF0YSk7CisJCQkJY2hrLT5kYXRhID0gTlVMTDsKKwkJCX0KKwkJ
CWlmIChjaGstPmhvbGRzX2tleV9yZWYpCisJCQkJc2N0cF9hdXRoX2tleV9yZWxlYXNlKHN0Y2Is
IGNoay0+YXV0aF9rZXlpZCwgU0NUUF9TT19MT0NLRUQpOworCQkJc2N0cF9mcmVlX3JlbW90ZV9h
ZGRyKGNoay0+d2hvVG8pOworCQkJU0NUUF9aT05FX0ZSRUUoU0NUUF9CQVNFX0lORk8oaXBpX3pv
bmVfY2h1bmspLCBjaGspOworCQkJU0NUUF9ERUNSX0NIS19DT1VOVCgpOworCQl9CisJCVRBSUxR
X0ZPUkVBQ0hfU0FGRShhcGFyYW0sICZhc29jLT5hc2NvbmZfcXVldWUsIG5leHQsIG5hcGFyYW0p
IHsKKwkJCVRBSUxRX1JFTU9WRSgmYXNvYy0+YXNjb25mX3F1ZXVlLCBhcGFyYW0sIG5leHQpOwor
CQkJU0NUUF9GUkVFKGFwYXJhbSxTQ1RQX01fQVNDX0FERFIpOworCQl9CisJCVRBSUxRX0ZPUkVB
Q0hfU0FGRShhYWNrLCAmYXNvYy0+YXNjb25mX2Fja19zZW50LCBuZXh0LCBuYWFjaykgeworCQkJ
VEFJTFFfUkVNT1ZFKCZhc29jLT5hc2NvbmZfYWNrX3NlbnQsIGFhY2ssIG5leHQpOworCQkJaWYg
KGFhY2stPmRhdGEgIT0gTlVMTCkgeworCQkJCXNjdHBfbV9mcmVlbShhYWNrLT5kYXRhKTsKKwkJ
CX0KKwkJCVNDVFBfWk9ORV9GUkVFKFNDVFBfQkFTRV9JTkZPKGlwaV96b25lX2FzY29uZl9hY2sp
LCBhYWNrKTsKKwkJfQogCiAJCS8qIHByb2Nlc3MgdGhlIElOSVQtQUNLIGluZm8gKG15IGluZm8p
ICovCiAJCWFzb2MtPm15X3Z0YWcgPSBudG9obChpbml0YWNrX2NwLT5pbml0LmluaXRpYXRlX3Rh
Zyk7CkBAIC0yMTUxLDcgKzIxMzgsNyBAQCBzY3RwX3Byb2Nlc3NfY29va2llX2V4aXN0aW5nKHN0
cnVjdCBtYnVmICptLCBpbnQgaXBobGVuLCBpbnQgb2Zmc2V0LAogCQlMSVNUX1JFTU9WRShzdGNi
LCBzY3RwX2Fzb2NzKTsKIAkJLyogcmUtaW5zZXJ0IHRvIG5ldyB2dGFnIHBvc2l0aW9uICovCiAJ
CWhlYWQgPSAmU0NUUF9CQVNFX0lORk8oc2N0cF9hc29jaGFzaClbU0NUUF9QQ0JIQVNIX0FTT0Mo
c3RjYi0+YXNvYy5teV92dGFnLAotCQkJCQkJCQkgICAgU0NUUF9CQVNFX0lORk8oaGFzaGFzb2Nt
YXJrKSldOworCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNDVFBfQkFTRV9JTkZPKGhhc2hhc29jbWFyaykpXTsKIAkJLyoKIAkJICogcHV0
IGl0IGluIHRoZSBidWNrZXQgaW4gdGhlIHZ0YWcgaGFzaCBvZiBhc3NvYydzIGZvciB0aGUKIAkJ
ICogc3lzdGVtCkBAIC0yMTgxLDggKzIxNjgsOCBAQCBzY3RwX3Byb2Nlc3NfY29va2llX2V4aXN0
aW5nKHN0cnVjdCBtYnVmICptLCBpbnQgaXBobGVuLCBpbnQgb2Zmc2V0LAogCQluZXQtPmhiX3Jl
c3BvbmRlZCA9IDE7CiAKIAkJaWYgKHNjdHBfbG9hZF9hZGRyZXNzZXNfZnJvbV9pbml0KHN0Y2Is
IG0sCi0JCQkJCQkgIGluaXRfb2Zmc2V0ICsgc2l6ZW9mKHN0cnVjdCBzY3RwX2luaXRfY2h1bmsp
LAotCQkJCQkJICBpbml0YWNrX29mZnNldCwgc3JjLCBkc3QsIGluaXRfc3JjLCBzdGNiLT5hc29j
LnBvcnQpKSB7CisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0X29mZnNl
dCArIHNpemVvZihzdHJ1Y3Qgc2N0cF9pbml0X2NodW5rKSwKKwkJICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluaXRhY2tfb2Zmc2V0LCBzcmMsIGRzdCwgaW5pdF9zcmMsIHN0Y2It
PmFzb2MucG9ydCkpIHsKIAkJCWlmIChob3dfaW5keCA8IHNpemVvZihhc29jLT5jb29raWVfaG93
KSkKIAkJCQlhc29jLT5jb29raWVfaG93W2hvd19pbmR4XSA9IDE0OwogCkBAIC0yMjAzLDcgKzIx
OTAsNiBAQCBzY3RwX3Byb2Nlc3NfY29va2llX2V4aXN0aW5nKHN0cnVjdCBtYnVmICptLCBpbnQg
aXBobGVuLCBpbnQgb2Zmc2V0LAogCXJldHVybiAoTlVMTCk7CiB9CiAKLQogLyoKICAqIGhhbmRs
ZSBhIHN0YXRlIGNvb2tpZSBmb3IgYSBuZXcgYXNzb2NpYXRpb24gbTogaW5wdXQgcGFja2V0IG1i
dWYgY2hhaW4tLQogICogYXNzdW1lcyBhIHB1bGx1cCBvbiBJUC9TQ1RQL0NPT0tJRS1FQ0hPIGNo
dW5rIG5vdGU6IHRoaXMgaXMgYSAic3BsaXQiIG1idWYKQEAgLTIzMTksMTAgKzIzMDUsNiBAQCBz
Y3RwX3Byb2Nlc3NfY29va2llX25ldyhzdHJ1Y3QgbWJ1ZiAqbSwgaW50IGlwaGxlbiwgaW50IG9m
ZnNldCwKIAkJICAgICAgICAgICAgICAgICAgICAgICB2cmZfaWQsIHBvcnQpOwogCQlyZXR1cm4g
KE5VTEwpOwogCX0KLQkvKiBnZXQgdGhlIGNvcnJlY3Qgc2N0cF9uZXRzICovCi0JaWYgKG5ldHAp
Ci0JCSpuZXRwID0gc2N0cF9maW5kbmV0KHN0Y2IsIGluaXRfc3JjKTsKLQogCWFzb2MgPSAmc3Rj
Yi0+YXNvYzsKIAkvKiBnZXQgc2NvcGUgdmFyaWFibGVzIG91dCBvZiBjb29raWUgKi8KIAlhc29j
LT5zY29wZS5pcHY0X2xvY2FsX3Njb3BlID0gY29va2llLT5pcHY0X3Njb3BlOwpAQCAtMjM3OCwx
MCArMjM2MCw3IEBAIHNjdHBfcHJvY2Vzc19jb29raWVfbmV3KHN0cnVjdCBtYnVmICptLCBpbnQg
aXBobGVuLCBpbnQgb2Zmc2V0LAogCWFzb2MtPmFkdmFuY2VkX3BlZXJfYWNrX3BvaW50ID0gYXNv
Yy0+bGFzdF9hY2tlZF9zZXE7CiAKIAkvKiBwcm9jZXNzIHRoZSBJTklUIGluZm8gKHBlZXIncyBp
bmZvKSAqLwotCWlmIChuZXRwKQotCQlyZXR2YWwgPSBzY3RwX3Byb2Nlc3NfaW5pdChpbml0X2Nw
LCBzdGNiKTsKLQllbHNlCi0JCXJldHZhbCA9IDA7CisJcmV0dmFsID0gc2N0cF9wcm9jZXNzX2lu
aXQoaW5pdF9jcCwgc3RjYik7CiAJaWYgKHJldHZhbCA8IDApIHsKICNpZiBkZWZpbmVkKF9fQVBQ
TEVfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKIAkJYXRvbWljX2FkZF9pbnQoJnN0Y2It
PmFzb2MucmVmY250LCAxKTsKQEAgLTI1NjQsMTkgKzI1NDMsMjEgQEAgc2N0cF9wcm9jZXNzX2Nv
b2tpZV9uZXcoc3RydWN0IG1idWYgKm0sIGludCBpcGhsZW4sIGludCBvZmZzZXQsCiAJCSAqLwog
CQk7CiAJfQotCS8qIHNpbmNlIHdlIGRpZCBub3Qgc2VuZCBhIEhCIG1ha2Ugc3VyZSB3ZSBkb24n
dCBkb3VibGUgdGhpbmdzICovCi0JaWYgKChuZXRwKSAmJiAoKm5ldHApKQotCQkoKm5ldHApLT5o
Yl9yZXNwb25kZWQgPSAxOwotCiAJaWYgKHN0Y2ItPmFzb2Muc2N0cF9hdXRvY2xvc2VfdGlja3Mg
JiYKIAkgICAgc2N0cF9pc19mZWF0dXJlX29uKGlucCwgU0NUUF9QQ0JfRkxBR1NfQVVUT0NMT1NF
KSkgewogCQlzY3RwX3RpbWVyX3N0YXJ0KFNDVFBfVElNRVJfVFlQRV9BVVRPQ0xPU0UsIGlucCwg
c3RjYiwgTlVMTCk7CiAJfQogCSh2b2lkKVNDVFBfR0VUVElNRV9USU1FVkFMKCZzdGNiLT5hc29j
LnRpbWVfZW50ZXJlZCk7Ci0JaWYgKChuZXRwICE9IE5VTEwpICYmICgqbmV0cCAhPSBOVUxMKSkg
eworCSpuZXRwID0gc2N0cF9maW5kbmV0KHN0Y2IsIGluaXRfc3JjKTsKKwlpZiAoKm5ldHAgIT0g
TlVMTCkgewogCQlzdHJ1Y3QgdGltZXZhbCBvbGQ7CiAKLQkJLyogY2FsY3VsYXRlIHRoZSBSVFQg
YW5kIHNldCB0aGUgZW5jYXBzIHBvcnQgKi8KKwkJLyoKKwkJICogU2luY2Ugd2UgZGlkIG5vdCBz
ZW5kIGEgSEIsIG1ha2Ugc3VyZSB3ZSBkb24ndCBkb3VibGUKKwkJICogdGhpbmdzLgorCQkgKi8K
KwkJKCpuZXRwKS0+aGJfcmVzcG9uZGVkID0gMTsKKwkJLyogQ2FsY3VsYXRlIHRoZSBSVFQuICov
CiAJCW9sZC50dl9zZWMgPSBjb29raWUtPnRpbWVfZW50ZXJlZC50dl9zZWM7CiAJCW9sZC50dl91
c2VjID0gY29va2llLT50aW1lX2VudGVyZWQudHZfdXNlYzsKIAkJc2N0cF9jYWxjdWxhdGVfcnRv
KHN0Y2IsIGFzb2MsICpuZXRwLCAmb2xkLCBTQ1RQX1JUVF9GUk9NX05PTl9EQVRBKTsKQEAgLTI1
OTQsNyArMjU3NSw2IEBAIHNjdHBfcHJvY2Vzc19jb29raWVfbmV3KHN0cnVjdCBtYnVmICptLCBp
bnQgaXBobGVuLCBpbnQgb2Zmc2V0LAogCSAgICAmc3RvcmUuc2EsIGNvb2tpZS0+bG9jYWxfc2Nv
cGUsIGNvb2tpZS0+c2l0ZV9zY29wZSwKIAkgICAgY29va2llLT5pcHY0X3Njb3BlLCBjb29raWUt
Pmxvb3BiYWNrX3Njb3BlKTsKIAotCiAJcmV0dXJuIChzdGNiKTsKIH0KIApAQCAtMjYzNSwxMSAr
MjYxNSwxNSBAQCBzY3RwX2hhbmRsZV9jb29raWVfZWNobyhzdHJ1Y3QgbWJ1ZiAqbSwgaW50IGlw
aGxlbiwgaW50IG9mZnNldCwKIAlzdHJ1Y3QgbWJ1ZiAqbV9zaWc7CiAJdWludDhfdCBjYWxjX3Np
Z1tTQ1RQX1NJR05BVFVSRV9TSVpFXSwgdG1wX3NpZ1tTQ1RQX1NJR05BVFVSRV9TSVpFXTsKIAl1
aW50OF90ICpzaWc7CisjaWYgZGVmaW5lZChfX1VzZXJzcGFjZV9fKSAmJiBkZWZpbmVkKEZVWlpJ
TkdfQlVJTERfTU9ERV9VTlNBRkVfRk9SX1BST0RVQ1RJT04pCisJdWludDhfdCBjb29raWVfb2sg
PSAxOworI2Vsc2UKIAl1aW50OF90IGNvb2tpZV9vayA9IDA7CisjZW5kaWYKIAl1bnNpZ25lZCBp
bnQgc2lnX29mZnNldCwgY29va2llX29mZnNldDsKIAl1bnNpZ25lZCBpbnQgY29va2llX2xlbjsK
IAlzdHJ1Y3QgdGltZXZhbCBub3c7Ci0Jc3RydWN0IHRpbWV2YWwgdGltZV9leHBpcmVzOworCXN0
cnVjdCB0aW1ldmFsIHRpbWVfZW50ZXJlZCwgdGltZV9leHBpcmVzOwogCWludCBub3RpZmljYXRp
b24gPSAwOwogCXN0cnVjdCBzY3RwX25ldHMgKm5ldGw7CiAJaW50IGhhZF9hX2V4aXN0aW5nX3Rj
YiA9IDA7CkBAIC0yNzkxLDEzICsyNzc1LDM0IEBAIHNjdHBfaGFuZGxlX2Nvb2tpZV9lY2hvKHN0
cnVjdCBtYnVmICptLCBpbnQgaXBobGVuLCBpbnQgb2Zmc2V0LAogCQlyZXR1cm4gKE5VTEwpOwog
CX0KIAorCWlmIChzY3RwX3RpY2tzX3RvX21zZWNzKGNvb2tpZS0+Y29va2llX2xpZmUpID4gU0NU
UF9NQVhfQ09PS0lFX0xJRkUpIHsKKwkJU0NUUERCRyhTQ1RQX0RFQlVHX0lOUFVUMiwgImhhbmRs
ZV9jb29raWVfZWNobzogSW52YWxpZCBjb29raWUgbGlmZXRpbWVcbiIpOworCQlyZXR1cm4gKE5V
TEwpOworCX0KKwl0aW1lX2VudGVyZWQudHZfc2VjID0gY29va2llLT50aW1lX2VudGVyZWQudHZf
c2VjOworCXRpbWVfZW50ZXJlZC50dl91c2VjID0gY29va2llLT50aW1lX2VudGVyZWQudHZfdXNl
YzsKKwlpZiAoKHRpbWVfZW50ZXJlZC50dl9zZWMgPCAwKSB8fAorCSAgICAodGltZV9lbnRlcmVk
LnR2X3VzZWMgPCAwKSB8fAorCSAgICAodGltZV9lbnRlcmVkLnR2X3VzZWMgPj0gMTAwMDAwMCkp
IHsKKwkJLyogSW52YWxpZCB0aW1lIHN0YW1wLiBDb29raWUgbXVzdCBoYXZlIGJlZW4gbW9kaWZp
ZWQuICovCisJCVNDVFBEQkcoU0NUUF9ERUJVR19JTlBVVDIsICJoYW5kbGVfY29va2llX2VjaG86
IEludmFsaWQgdGltZSBzdGFtcFxuIik7CisJCXJldHVybiAoTlVMTCk7CisJfQorCSh2b2lkKVND
VFBfR0VUVElNRV9USU1FVkFMKCZub3cpOworI2lmICEoZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYg
IWRlZmluZWQoX19Vc2Vyc3BhY2VfXykpCisJaWYgKHRpbWVyY21wKCZub3csICZ0aW1lX2VudGVy
ZWQsIDwpKSB7CisjZWxzZQorCWlmICh0aW1ldmFsY21wKCZub3csICZ0aW1lX2VudGVyZWQsIDwp
KSB7CisjZW5kaWYKKwkJU0NUUERCRyhTQ1RQX0RFQlVHX0lOUFVUMiwgImhhbmRsZV9jb29raWVf
ZWNobzogY29va2llIGdlbmVyYXRlZCBpbiB0aGUgZnV0dXJlIVxuIik7CisJCXJldHVybiAoTlVM
TCk7CisJfQogCS8qCi0JICogY2hlY2sgdGhlIGNvb2tpZSB0aW1lc3RhbXBzIHRvIGJlIHN1cmUg
aXQncyBub3Qgc3RhbGUKKwkgKiBDaGVjayB0aGUgY29va2llIHRpbWVzdGFtcHMgdG8gYmUgc3Vy
ZSBpdCdzIG5vdCBzdGFsZS4KKwkgKiBjb29raWVfbGlmZSBpcyBpbiB0aWNrcywgc28gd2UgY29u
dmVydCB0byBzZWNvbmRzLgogCSAqLwotCSh2b2lkKVNDVFBfR0VUVElNRV9USU1FVkFMKCZub3cp
OwotCS8qIEV4cGlyZSB0aW1lIGlzIGluIFRpY2tzLCBzbyB3ZSBjb252ZXJ0IHRvIHNlY29uZHMg
Ki8KLQl0aW1lX2V4cGlyZXMudHZfc2VjID0gY29va2llLT50aW1lX2VudGVyZWQudHZfc2VjICsg
c2N0cF90aWNrc190b19zZWNzKGNvb2tpZS0+Y29va2llX2xpZmUpOwotCXRpbWVfZXhwaXJlcy50
dl91c2VjID0gY29va2llLT50aW1lX2VudGVyZWQudHZfdXNlYzsKKwl0aW1lX2V4cGlyZXMudHZf
c2VjID0gdGltZV9lbnRlcmVkLnR2X3NlYyArIHNjdHBfdGlja3NfdG9fc2Vjcyhjb29raWUtPmNv
b2tpZV9saWZlKTsKKwl0aW1lX2V4cGlyZXMudHZfdXNlYyA9IHRpbWVfZW50ZXJlZC50dl91c2Vj
OwogI2lmICEoZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykp
CiAJaWYgKHRpbWVyY21wKCZub3csICZ0aW1lX2V4cGlyZXMsID4pKQogI2Vsc2UKQEAgLTI4MjAs
OCArMjgyNSw3IEBAIHNjdHBfaGFuZGxlX2Nvb2tpZV9lY2hvKHN0cnVjdCBtYnVmICptLCBpbnQg
aXBobGVuLCBpbnQgb2Zmc2V0LAogCQlTQ1RQX0JVRl9MRU4ob3BfZXJyKSA9IHNpemVvZihzdHJ1
Y3Qgc2N0cF9lcnJvcl9zdGFsZV9jb29raWUpOwogCQljYXVzZSA9IG10b2Qob3BfZXJyLCBzdHJ1
Y3Qgc2N0cF9lcnJvcl9zdGFsZV9jb29raWUgKik7CiAJCWNhdXNlLT5jYXVzZS5jb2RlID0gaHRv
bnMoU0NUUF9DQVVTRV9TVEFMRV9DT09LSUUpOwotCQljYXVzZS0+Y2F1c2UubGVuZ3RoID0gaHRv
bnMoKHNpemVvZihzdHJ1Y3Qgc2N0cF9wYXJhbWhkcikgKwotCQkgICAgKHNpemVvZih1aW50MzJf
dCkpKSk7CisJCWNhdXNlLT5jYXVzZS5sZW5ndGggPSBodG9ucyhzaXplb2Yoc3RydWN0IHNjdHBf
ZXJyb3Jfc3RhbGVfY29va2llKSk7CiAjaWYgIShkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVm
aW5lZChfX1VzZXJzcGFjZV9fKSkKIAkJdGltZXJzdWIoJm5vdywgJnRpbWVfZXhwaXJlcywgJmRp
ZmYpOwogI2Vsc2UKQEAgLTMxNDUsNyArMzE0OSw2IEBAIHNjdHBfaGFuZGxlX2Nvb2tpZV9lY2hv
KHN0cnVjdCBtYnVmICptLCBpbnQgaXBobGVuLCBpbnQgb2Zmc2V0LAogCQkJU0NUUF9UQ0JfTE9D
SygoKnN0Y2IpKTsKIAkJCWF0b21pY19zdWJ0cmFjdF9pbnQoJigqc3RjYiktPmFzb2MucmVmY250
LCAxKTsKIAotCiAJCQkvKiBub3cgd2UgbXVzdCBjaGVjayB0byBzZWUgaWYgd2Ugd2VyZSBhYm9y
dGVkIHdoaWxlCiAJCQkgKiB0aGUgbW92ZSB3YXMgZ29pbmcgb24gYW5kIHRoZSBsb2NrL3VubG9j
ayBoYXBwZW5lZC4KIAkJCSAqLwpAQCAtMzIyNSw3ICszMjI4LDYgQEAgc2N0cF9oYW5kbGVfY29v
a2llX2FjayhzdHJ1Y3Qgc2N0cF9jb29raWVfYWNrX2NodW5rICpjcCBTQ1RQX1VOVVNFRCwKIAkJ
aWYgKGFzb2MtPnN0YXRlICYgU0NUUF9TVEFURV9TSFVURE9XTl9QRU5ESU5HKSB7CiAJCQlzY3Rw
X3RpbWVyX3N0YXJ0KFNDVFBfVElNRVJfVFlQRV9TSFVURE9XTkdVQVJELAogCQkJICAgICAgICAg
ICAgICAgICBzdGNiLT5zY3RwX2VwLCBzdGNiLCBOVUxMKTsKLQogCQl9CiAJCS8qIHVwZGF0ZSBS
VE8gKi8KIAkJU0NUUF9TVEFUX0lOQ1JfQ09VTlRFUjMyKHNjdHBzX2FjdGl2ZWVzdGFiKTsKQEAg
LTMyNzQsNyArMzI3Niw2IEBAIHNjdHBfaGFuZGxlX2Nvb2tpZV9hY2soc3RydWN0IHNjdHBfY29v
a2llX2Fja19jaHVuayAqY3AgU0NUUF9VTlVTRUQsCiAJCXNjdHBfdGltZXJfc3RhcnQoU0NUUF9U
SU1FUl9UWVBFX0hFQVJUQkVBVCwgc3RjYi0+c2N0cF9lcCwKIAkJICAgIHN0Y2IsIG5ldCk7CiAK
LQogCQlpZiAoc3RjYi0+YXNvYy5zY3RwX2F1dG9jbG9zZV90aWNrcyAmJgogCQkgICAgc2N0cF9p
c19mZWF0dXJlX29uKHN0Y2ItPnNjdHBfZXAsIFNDVFBfUENCX0ZMQUdTX0FVVE9DTE9TRSkpIHsK
IAkJCXNjdHBfdGltZXJfc3RhcnQoU0NUUF9USU1FUl9UWVBFX0FVVE9DTE9TRSwKQEAgLTM4MzYs
NyArMzgzNyw2IEBAIHNjdHBfcmVzZXRfY2xlYXJfcGVuZGluZyhzdHJ1Y3Qgc2N0cF90Y2IgKnN0
Y2IsIHVpbnQzMl90IG51bWJlcl9lbnRyaWVzLCB1aW50MTZfCiAJfQogfQogCi0KIHN0cnVjdCBz
Y3RwX3N0cmVhbV9yZXNldF9yZXF1ZXN0ICoKIHNjdHBfZmluZF9zdHJlYW1fcmVzZXQoc3RydWN0
IHNjdHBfdGNiICpzdGNiLCB1aW50MzJfdCBzZXEsIHN0cnVjdCBzY3RwX3RtaXRfY2h1bmsgKipi
Y2hrKQogewpAQCAtMzkwNSw3ICszOTA1LDYgQEAgc2N0cF9jbGVhbl91cF9zdHJlYW1fcmVzZXQo
c3RydWN0IHNjdHBfdGNiICpzdGNiKQogCXNjdHBfZnJlZV9hX2NodW5rKHN0Y2IsIGNoaywgU0NU
UF9TT19OT1RfTE9DS0VEKTsKIH0KIAotCiBzdGF0aWMgaW50CiBzY3RwX2hhbmRsZV9zdHJlYW1f
cmVzZXRfcmVzcG9uc2Uoc3RydWN0IHNjdHBfdGNiICpzdGNiLAogCQkJCSAgdWludDMyX3Qgc2Vx
LCB1aW50MzJfdCBhY3Rpb24sCkBAIC0zOTgyLDcgKzM5ODEsNyBAQCBzY3RwX2hhbmRsZV9zdHJl
YW1fcmVzZXRfcmVzcG9uc2Uoc3RydWN0IHNjdHBfdGNiICpzdGNiLAogCQkJCWlmIChhY3Rpb24g
PT0gU0NUUF9TVFJFQU1fUkVTRVRfUkVTVUxUX1BFUkZPUk1FRCkgewogCQkJCQkvKiBQdXQgdGhl
IG5ldyBzdHJlYW1zIGludG8gZWZmZWN0ICovCiAJCQkJCWludCBpOwotCQkJCQlmb3IgKCBpID0g
YXNvYy0+c3RyZWFtb3V0Y250OyBpPCAoYXNvYy0+c3RyZWFtb3V0Y250ICsgbnVtX3N0cmVhbSk7
IGkrKykgeworCQkJCQlmb3IgKGkgPSBhc29jLT5zdHJlYW1vdXRjbnQ7IGkgPCAoYXNvYy0+c3Ry
ZWFtb3V0Y250ICsgbnVtX3N0cmVhbSk7IGkrKykgewogCQkJCQkJYXNvYy0+c3RybW91dFtpXS5z
dGF0ZSA9IFNDVFBfU1RSRUFNX09QRU47CiAJCQkJCX0KIAkJCQkJYXNvYy0+c3RyZWFtb3V0Y250
ICs9IG51bV9zdHJlYW07CkBAIC00MzY2LDcgKzQzNjUsNiBAQCBzY3RwX2hhbmRsZV9zdHJfcmVz
ZXRfYWRkX3N0cm0oc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF90bWl0X2NodW5r
ICpjaAogCQlzY3RwX2FkZF9zdHJlYW1fcmVzZXRfcmVzdWx0KGNoaywgc2VxLCBhc29jLT5sYXN0
X3Jlc2V0X2FjdGlvblsxXSk7CiAJfSBlbHNlIHsKIAkJc2N0cF9hZGRfc3RyZWFtX3Jlc2V0X3Jl
c3VsdChjaGssIHNlcSwgU0NUUF9TVFJFQU1fUkVTRVRfUkVTVUxUX0VSUl9CQURfU0VRTk8pOwot
CiAJfQogfQogCkBAIC00NjE3LDcgKzQ2MTUsNiBAQCBzY3RwX2hhbmRsZV9wYWNrZXRfZHJvcHBl
ZChzdHJ1Y3Qgc2N0cF9wa3Rkcm9wX2NodW5rICpjcCwKIAlzdHJ1Y3Qgc2N0cF9pZGF0YV9jaHVu
ayAqaWRhdGFfY2h1bms7CiAJdWludDMyX3QgYm90dGxlX2J3LCBvbl9xdWV1ZTsKIAl1aW50MzJf
dCBvZmZzZXQsIGNoa19sZW47Ci0JdWludDE2X3QgdHJ1bmNfbGVuOwogCXVpbnQxNl90IHBrdGRy
cF9sZW47CiAJdWludDhfdCBwa3RkcnBfZmxhZ3M7CiAKQEAgLTQ2MjcsMTMgKzQ2MjQsMTAgQEAg
c2N0cF9oYW5kbGVfcGFja2V0X2Ryb3BwZWQoc3RydWN0IHNjdHBfcGt0ZHJvcF9jaHVuayAqY3As
CiAJcGt0ZHJwX2xlbiA9IG50b2hzKGNwLT5jaC5jaHVua19sZW5ndGgpOwogCUtBU1NFUlQobGlt
aXQgPD0gcGt0ZHJwX2xlbiwgKCJJbmNvbnNpc3RlbnQgbGltaXQiKSk7CiAJaWYgKHBrdGRycF9m
bGFncyAmIFNDVFBfUEFDS0VUX1RSVU5DQVRFRCkgewotCQl0cnVuY19sZW4gPSBudG9ocyhjcC0+
dHJ1bmNfbGVuKTsKLQkJaWYgKHRydW5jX2xlbiA8PSBwa3RkcnBfbGVuIC0gc2l6ZW9mKHN0cnVj
dCBzY3RwX3BrdGRyb3BfY2h1bmspKSB7CisJCWlmIChudG9ocyhjcC0+dHJ1bmNfbGVuKSA8PSBw
a3RkcnBfbGVuIC0gc2l6ZW9mKHN0cnVjdCBzY3RwX3BrdGRyb3BfY2h1bmspKSB7CiAJCQkvKiBU
aGUgcGVlciBwbGF5cyBnYW1lcyB3aXRoIHVzLiAqLwogCQkJcmV0dXJuOwogCQl9Ci0JfSBlbHNl
IHsKLQkJdHJ1bmNfbGVuID0gMDsKIAl9CiAJbGltaXQgLT0gc2l6ZW9mKHN0cnVjdCBzY3RwX3Br
dGRyb3BfY2h1bmspOwogCW9mZnNldCA9IDA7CkBAIC01NzUxLDcgKzU3NDUsNyBAQCBzY3RwX3By
b2Nlc3NfY29udHJvbChzdHJ1Y3QgbWJ1ZiAqbSwgaW50IGlwaGxlbiwgaW50ICpvZmZzZXQsIGlu
dCBsZW5ndGgsCiAJCQkJaWYgKG9wX2VyciAhPSBOVUxMKSB7CiAJCQkJCWxlbiA9IG1pbihTQ1RQ
X1NJWkUzMihjaGtfbGVuZ3RoKSwgKHVpbnQzMl90KShsZW5ndGggLSAqb2Zmc2V0KSk7CiAJCQkJ
CWNhdXNlID0gbXRvZChvcF9lcnIsIHN0cnVjdCBzY3RwX2dlbl9lcnJvcl9jYXVzZSAqKTsKLQkJ
CQkJY2F1c2UtPmNvZGUgPSAgaHRvbnMoU0NUUF9DQVVTRV9VTlJFQ09HX0NIVU5LKTsKKwkJCQkJ
Y2F1c2UtPmNvZGUgPSBodG9ucyhTQ1RQX0NBVVNFX1VOUkVDT0dfQ0hVTkspOwogCQkJCQljYXVz
ZS0+bGVuZ3RoID0gaHRvbnMoKHVpbnQxNl90KShsZW4gKyBzaXplb2Yoc3RydWN0IHNjdHBfZ2Vu
X2Vycm9yX2NhdXNlKSkpOwogCQkJCQlTQ1RQX0JVRl9MRU4ob3BfZXJyKSA9IHNpemVvZihzdHJ1
Y3Qgc2N0cF9nZW5fZXJyb3JfY2F1c2UpOwogCQkJCQlTQ1RQX0JVRl9ORVhUKG9wX2VycikgPSBT
Q1RQX01fQ09QWU0obSwgKm9mZnNldCwgbGVuLCBNX05PV0FJVCk7CkBAIC01Nzc1LDcgKzU3Njks
NiBAQCBzY3RwX3Byb2Nlc3NfY29udHJvbChzdHJ1Y3QgbWJ1ZiAqbSwgaW50IGlwaGxlbiwgaW50
ICpvZmZzZXQsIGludCBsZW5ndGgsCiAJCQlicmVhazsKIAkJfQkJLyogc3dpdGNoIChjaC0+Y2h1
bmtfdHlwZSkgKi8KIAotCiAJbmV4dF9jaHVuazoKIAkJLyogZ2V0IHRoZSBuZXh0IGNodW5rICov
CiAJCSpvZmZzZXQgKz0gU0NUUF9TSVpFMzIoY2hrX2xlbmd0aCk7CkBAIC01Nzk3LDcgKzU3OTAs
NiBAQCBzY3RwX3Byb2Nlc3NfY29udHJvbChzdHJ1Y3QgbWJ1ZiAqbSwgaW50IGlwaGxlbiwgaW50
ICpvZmZzZXQsIGludCBsZW5ndGgsCiAJcmV0dXJuIChzdGNiKTsKIH0KIAotCiAvKgogICogY29t
bW9uIGlucHV0IGNodW5rIHByb2Nlc3NpbmcgKHY0IGFuZCB2NikKICAqLwpAQCAtNjE3MSw3ICs2
MTYzLDkgQEAgc2N0cF9jb21tb25faW5wdXRfcHJvY2Vzc2luZyhzdHJ1Y3QgbWJ1ZiAqKm1tLCBp
bnQgaXBobGVuLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3QKIAkJCXN0Y2IgPSBOVUxMOwogCQkJZ290
byBvdXQ7CiAJCX0KLQkJZGF0YV9wcm9jZXNzZWQgPSAxOworCQlpZiAocmV0dmFsID09IDApIHsK
KwkJCWRhdGFfcHJvY2Vzc2VkID0gMTsKKwkJfQogCQkvKgogCQkgKiBBbnl0aGluZyBpbXBvcnRh
bnQgbmVlZHMgdG8gaGF2ZSBiZWVuIG1fY29weSdlZCBpbgogCQkgKiBwcm9jZXNzX2RhdGEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
dXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX2lucHV0LmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0
cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9pbnB1dC5oCmluZGV4IDU1YTE3NGJhZWZhZmE5
ZGI0MmE1ODViZWU0M2M3ZTA2MGFiMDdhOTUuLjQ3YWUyMTI3YmUxNDk5M2Y3OWE1OTBjZmY5OThi
Y2ZmMWEwMjI0NjcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3Rw
X2lucHV0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfaW5wdXQuaApA
QCAtMzQsNyArMzQsNyBAQAogCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQo
X19Vc2Vyc3BhY2VfXykKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJlZUJT
RDogaGVhZC9zeXMvbmV0aW5ldC9zY3RwX2lucHV0LmggMzI2NjcyIDIwMTctMTItMDcgMjI6MTk6
MDhaIHR1ZXhlbiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0
cF9pbnB1dC5oIDM2NTA3MSAyMDIwLTA5LTAxIDIxOjE5OjE0WiBtamcgJCIpOwogI2VuZGlmCiAK
ICNpZm5kZWYgX05FVElORVRfU0NUUF9JTlBVVF9IXwpAQCAtNTYsOSArNTYsOSBAQCBzdHJ1Y3Qg
c2N0cF9zdHJlYW1fcmVzZXRfcmVxdWVzdCAqCiBzY3RwX2ZpbmRfc3RyZWFtX3Jlc2V0KHN0cnVj
dCBzY3RwX3RjYiAqc3RjYiwgdWludDMyX3Qgc2VxLAogICAgIHN0cnVjdCBzY3RwX3RtaXRfY2h1
bmsgKipiY2hrKTsKIAotdm9pZCBzY3RwX3Jlc2V0X2luX3N0cmVhbShzdHJ1Y3Qgc2N0cF90Y2Ig
KnN0Y2IsIHVpbnQzMl90IG51bWJlcl9lbnRyaWVzLAotICAgIHVpbnQxNl90ICpsaXN0KTsKLQor
dm9pZAorc2N0cF9yZXNldF9pbl9zdHJlYW0oc3RydWN0IHNjdHBfdGNiICpzdGNiLCB1aW50MzJf
dCBudW1iZXJfZW50cmllcywgCisgICAgICAgICAgICAgICAgICAgICB1aW50MTZfdCAqbGlzdCk7
CiAKIGludCBzY3RwX2lzX3RoZXJlX3Vuc2VudF9kYXRhKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwg
aW50IHNvX2xvY2tlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5l
dC9zY3RwX29zLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9vcy5oCmluZGV4
IGUwMWI5NTc3N2EzYzViOTVkYjU0MWI4NzYyZTQzZTVjNzk4ZDM4YTIuLjBlMDNjZTllNTlkOGYw
MDIyYWU3YTZjMGRmNmI0Nzg4YjczMWJkNTAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBs
aWIvbmV0aW5ldC9zY3RwX29zLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3Nj
dHBfb3MuaApAQCAtMzQsNyArMzQsNyBAQAogCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYg
IWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElE
KCIkRnJlZUJTRDogaGVhZC9zeXMvbmV0aW5ldC9zY3RwX29zLmggMzYxODcyIDIwMjAtMDYtMDYg
MTg6MjA6MDlaIHR1ZXhlbiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGlu
ZXQvc2N0cF9vcy5oIDM2NTA3MSAyMDIwLTA5LTAxIDIxOjE5OjE0WiBtamcgJCIpOwogI2VuZGlm
CiAKICNpZm5kZWYgX05FVElORVRfU0NUUF9PU19IXwpAQCAtNjksMTUgKzY5LDEyIEBAIF9fRkJT
RElEKCIkRnJlZUJTRDogaGVhZC9zeXMvbmV0aW5ldC9zY3RwX29zLmggMzYxODcyIDIwMjAtMDYt
MDYgMTg6MjA6MDlaIHR1ZXhlCiAjZWxzZQogI2RlZmluZSBNT0RVTEVfR0xPQkFMKF9CKSAoX0Ip
CiAjZW5kaWYKLQogI2lmIGRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNpbmNsdWRlIDxuZXRpbmV0
L3NjdHBfb3NfdXNlcnNwYWNlLmg+CiAjZW5kaWYKLQogI2lmIGRlZmluZWQoX19BUFBMRV9fKSAm
JiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogI2luY2x1ZGUgPG5ldGluZXQvc2N0cF9vc19tYWNv
c3guaD4KICNlbmRpZgotCiAjaWYgZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fVXNlcnNw
YWNlX18pCiAjaW5jbHVkZSA8bmV0aW5ldC9zY3RwX29zX3dpbmRvd3MuaD4KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91
c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfb3NfdXNlcnNwYWNlLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAv
dXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9vc191c2Vyc3BhY2UuaAppbmRleCAz
YTk0MDdhODIyYmUyOTBkNzc1YmUyZGUxMjY2YjgxMDJmNGFkNTAzLi4xNDc2NjYwNTQwYzUzODQ0
YjNhNjIxMzE3NmExYTQ1NTlmMGQzMjZjIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGli
L25ldGluZXQvc2N0cF9vc191c2Vyc3BhY2UuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25l
dGluZXQvc2N0cF9vc191c2Vyc3BhY2UuaApAQCAtMjgzLDcgKzI4Myw3IEBAIHR5cGVkZWYgY2hh
ciogY2FkZHJfdDsKIAogI2Vsc2UgLyogIWRlZmluZWQoVXNlcnNwYWNlX29zX1dpbmRvd3MpICov
CiAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2lmIGRlZmluZWQoX19EcmFnb25GbHlfXykgfHwg
ZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19O
ZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfX25hdGl2ZV9jbGll
bnRfXykgfHwgZGVmaW5lZChfX0Z1Y2hzaWFfXykKKyNpZiBkZWZpbmVkKF9fRHJhZ29uRmx5X18p
IHx8IGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVk
KF9fTmV0QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19uYXRpdmVf
Y2xpZW50X18pIHx8IGRlZmluZWQoX19GdWNoc2lhX18pIHx8IGRlZmluZWQoX19FTVNDUklQVEVO
X1BUSFJFQURTX18pCiAjaW5jbHVkZSA8cHRocmVhZC5oPgogI2VuZGlmCiB0eXBlZGVmIHB0aHJl
YWRfbXV0ZXhfdCB1c2VybGFuZF9tdXRleF90OwpAQCAtNTA5LDcgKzUwOSw3IEBAIHN0cnVjdCBz
eCB7aW50IGR1bW15O307CiAjaWYgIWRlZmluZWQoX1dJTjMyKQogI2luY2x1ZGUgPG5ldGluZXQv
aXA2Lmg+CiAjZW5kaWYKLSNpZiBkZWZpbmVkKF9fQVBQTEVfXykgfHwgZGVmaW5lZChfX0ZyZWVC
U0RfXykgfHwgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVm
aW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfV0lOMzIpCisjaWYgZGVmaW5lZChfX0FQUExF
X18pIHx8IGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZp
bmVkKF9fTmV0QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX1dJTjMy
KSB8fCBkZWZpbmVkKF9fRU1TQ1JJUFRFTl9fKQogI2luY2x1ZGUgInVzZXJfaXA2X3Zhci5oIgog
I2Vsc2UKICNpbmNsdWRlIDxuZXRpbmV0Ni9pcDZfdmFyLmg+CkBAIC0xMTMyLDcgKzExMzIsNyBA
QCBzY3RwX2dldF9tYnVmX2Zvcl9tc2codW5zaWduZWQgaW50IHNwYWNlX25lZWRlZCwgaW50IHdh
bnRfaGVhZGVyLCBpbnQgaG93LCBpbnQgYQogCiAjZGVmaW5lIFNDVFBfSVNfTElTVEVOSU5HKGlu
cCkgKChpbnAtPnNjdHBfZmxhZ3MgJiBTQ1RQX1BDQl9GTEFHU19BQ0NFUFRJTkcpICE9IDApCiAK
LSNpZiBkZWZpbmVkKF9fQVBQTEVfXykgfHwgZGVmaW5lZChfX0RyYWdvbkZseV9fKSB8fCBkZWZp
bmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX25hdGl2ZV9jbGllbnRfXykgfHwgZGVmaW5lZChf
X05ldEJTRF9fKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX0Z1Y2hzaWFfXykKKyNp
ZiBkZWZpbmVkKF9fQVBQTEVfXykgfHwgZGVmaW5lZChfX0RyYWdvbkZseV9fKSB8fCBkZWZpbmVk
KF9fbGludXhfXykgfHwgZGVmaW5lZChfX25hdGl2ZV9jbGllbnRfXykgfHwgZGVmaW5lZChfX05l
dEJTRF9fKSB8fCBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX0Z1Y2hzaWFfXykgfHwgZGVm
aW5lZChfX0VNU0NSSVBURU5fXykKIGludAogdGltaW5nc2FmZV9iY21wKGNvbnN0IHZvaWQgKiwg
Y29uc3Qgdm9pZCAqLCBzaXplX3QpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3Jz
Y3RwbGliL25ldGluZXQvc2N0cF9vdXRwdXQuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5l
dC9zY3RwX291dHB1dC5jCmluZGV4IDIxNDI0YjY5NDU5YmY0NDU4ZTA5OTE1MmU2MDkzNDk0NmE5
OGVhNDguLjZhN2RmZjk5YzI0OWFlMWZlNjkwNTEyOThiNDU3ZmE3ZjQwZmM1MDEgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0
cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX291dHB1dC5jCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3Rw
bGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX291dHB1dC5jCkBAIC0zNCw3ICszNCw3IEBACiAK
ICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogI2lu
Y2x1ZGUgPHN5cy9jZGVmcy5oPgotX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0
L3NjdHBfb3V0cHV0LmMgMzY0OTM3IDIwMjAtMDgtMjggMjA6MDU6MThaIHR1ZXhlbiAkIik7Citf
X0ZCU0RJRCgiJEZyZWVCU0QkIik7CiAjZW5kaWYKIAogI2luY2x1ZGUgPG5ldGluZXQvc2N0cF9v
cy5oPgpAQCAtNzksNyArNzksNiBAQCBfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGlu
ZXQvc2N0cF9vdXRwdXQuYyAzNjQ5MzcgMjAyMC0wOC0yOCAyMDowNToxOFogdAogI2lmIGRlZmlu
ZWQoX19Vc2Vyc3BhY2VfXykgJiYgZGVmaW5lZChJTkVUNikKICNpbmNsdWRlIDxuZXRpbmV0Ni9z
Y3RwNl92YXIuaD4KICNlbmRpZgotCiAjaWYgZGVmaW5lZChfX0FQUExFX18pICYmICFkZWZpbmVk
KF9fVXNlcnNwYWNlX18pCiAjaWYgIShkZWZpbmVkKEFQUExFX0xFT1BBUkQpIHx8IGRlZmluZWQo
QVBQTEVfU05PV0xFT1BBUkQpKQogI2RlZmluZSBTQ1RQX01BWF9MSU5LSERSIDE2CkBAIC0xODkw
LDcgKzE4ODksNiBAQCBjb25zdCBzdHJ1Y3Qgc2Fja190cmFjayBzYWNrX2FycmF5WzI1Nl0gPSB7
CiAJfQogfTsKIAotCiBpbnQKIHNjdHBfaXNfYWRkcmVzc19pbl9zY29wZShzdHJ1Y3Qgc2N0cF9p
ZmEgKmlmYSwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2N0cF9zY29waW5nICpz
Y29wZSwKQEAgLTIwNTksNyArMjA1Nyw2IEBAIHNjdHBfYWRkX2FkZHJfdG9fbWJ1ZihzdHJ1Y3Qg
bWJ1ZiAqbSwgc3RydWN0IHNjdHBfaWZhICppZmEsIHVpbnQxNl90ICpsZW4pCiAjZW5kaWYKIH0K
IAotCiBzdHJ1Y3QgbWJ1ZiAqCiBzY3RwX2FkZF9hZGRyZXNzZXNfdG9faV9pYShzdHJ1Y3Qgc2N0
cF9pbnBjYiAqaW5wLCBzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHJ1Y3Qgc2N0cF9zY29waW5nICpzY29wZSwKQEAgLTI0ODAsNyArMjQ3Nyw2IEBA
IHNjdHBfaXNfYWRkcl9yZXN0cmljdGVkKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNj
dHBfaWZhICppZmEpCiAJcmV0dXJuICgwKTsKIH0KIAotCiBpbnQKIHNjdHBfaXNfYWRkcl9pbl9l
cChzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wLCBzdHJ1Y3Qgc2N0cF9pZmEgKmlmYSkKIHsKQEAgLTI1
MDEsOCArMjQ5Nyw2IEBAIHNjdHBfaXNfYWRkcl9pbl9lcChzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5w
LCBzdHJ1Y3Qgc2N0cF9pZmEgKmlmYSkKIAlyZXR1cm4gKDApOwogfQogCi0KLQogc3RhdGljIHN0
cnVjdCBzY3RwX2lmYSAqCiBzY3RwX2Nob29zZV9ib3VuZHNwZWNpZmljX2lucChzdHJ1Y3Qgc2N0
cF9pbnBjYiAqaW5wLAogCQkJICAgICAgc2N0cF9yb3V0ZV90ICpybywKQEAgLTI2MzcsOCArMjYz
MSw2IEBAIHNjdHBfY2hvb3NlX2JvdW5kc3BlY2lmaWNfaW5wKHN0cnVjdCBzY3RwX2lucGNiICpp
bnAsCiAJcmV0dXJuIChOVUxMKTsKIH0KIAotCi0KIHN0YXRpYyBzdHJ1Y3Qgc2N0cF9pZmEgKgog
c2N0cF9jaG9vc2VfYm91bmRzcGVjaWZpY19zdGNiKHN0cnVjdCBzY3RwX2lucGNiICppbnAsCiAJ
CQkgICAgICAgc3RydWN0IHNjdHBfdGNiICpzdGNiLApAQCAtMjY2Nyw3ICsyNjU5LDcgQEAgc2N0
cF9jaG9vc2VfYm91bmRzcGVjaWZpY19zdGNiKHN0cnVjdCBzY3RwX2lucGNiICppbnAsCiAKIAlp
Zm4gPSBTQ1RQX0dFVF9JRk5fVk9JRF9GUk9NX1JPVVRFKHJvKTsKIAlpZm5faW5kZXggPSBTQ1RQ
X0dFVF9JRl9JTkRFWF9GUk9NX1JPVVRFKHJvKTsKLQlzY3RwX2lmbiA9IHNjdHBfZmluZF9pZm4o
IGlmbiwgaWZuX2luZGV4KTsKKwlzY3RwX2lmbiA9IHNjdHBfZmluZF9pZm4oaWZuLCBpZm5faW5k
ZXgpOwogCiAJLyoKIAkgKiBmaXJzdCBxdWVzdGlvbiwgaXMgdGhlIGlmbiB3ZSB3aWxsIGVtaXQg
b24gaW4gb3VyIGxpc3Q/ICBJZiBzbywKQEAgLTI3NDcsNyArMjczOSw2IEBAIHNjdHBfY2hvb3Nl
X2JvdW5kc3BlY2lmaWNfc3RjYihzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wLAogCQkJCXJldHVybiAo
c2lmYSk7CiAJCQl9CiAJCX0KLQogCX0KIAkvKgogCSAqIGlmIHdlIGNhbid0IGZpbmQgb25lIGxp
a2UgdGhhdCB0aGVuIHdlIG11c3QgbG9vayBhdCBhbGwKQEAgLTI4MzksMTQgKzI4MzAsMTMgQEAg
c2N0cF9zZWxlY3RfbnRoX3ByZWZlcnJlZF9hZGRyX2Zyb21faWZuX2JvdW5kYWxsKHN0cnVjdCBz
Y3RwX2lmbiAqaWZuLAogI2Vsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wIFNDVFBfVU5VU0VELAogI2VuZGlm
Ci0JCQkJCQkgc3RydWN0IHNjdHBfdGNiICpzdGNiLAotCQkJCQkJIGludCBub25fYXNvY19hZGRy
X29rLAotCQkJCQkJIHVpbnQ4X3QgZGVzdF9pc19sb29wLAotCQkJCQkJIHVpbnQ4X3QgZGVzdF9p
c19wcml2LAotCQkJCQkJIGludCBhZGRyX3dhbnRlZCwKLQkJCQkJCSBzYV9mYW1pbHlfdCBmYW0s
Ci0JCQkJCQkgc2N0cF9yb3V0ZV90ICpybwotCQkJCQkJICkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5vbl9hc29j
X2FkZHJfb2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdWludDhfdCBkZXN0X2lzX2xvb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdWludDhfdCBkZXN0X2lzX3ByaXYsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFkZHJfd2FudGVkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhX2ZhbWlseV90IGZh
bSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3Rw
X3JvdXRlX3QgKnJvKQogewogCXN0cnVjdCBzY3RwX2lmYSAqaWZhLCAqc2lmYTsKIAlpbnQgbnVt
X2VsaWdpYmxlX2FkZHIgPSAwOwpAQCAtMjk2NSw3ICsyOTU1LDYgQEAgc2N0cF9zZWxlY3RfbnRo
X3ByZWZlcnJlZF9hZGRyX2Zyb21faWZuX2JvdW5kYWxsKHN0cnVjdCBzY3RwX2lmbiAqaWZuLAog
CXJldHVybiAoTlVMTCk7CiB9CiAKLQogc3RhdGljIGludAogc2N0cF9jb3VudF9udW1fcHJlZmVy
cmVkX2JvdW5kYWxsKHN0cnVjdCBzY3RwX2lmbiAqaWZuLAogI2lmIGRlZmluZWQoX19GcmVlQlNE
X18pICYmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCkBAIC0zMzg1LDggKzMzNzQsNiBAQCBvdXQ6
CiAJcmV0dXJuIChzaWZhKTsKIH0KIAotCi0KIC8qIHRjYiBtYXkgYmUgTlVMTCAqLwogc3RydWN0
IHNjdHBfaWZhICoKIHNjdHBfc291cmNlX2FkZHJlc3Nfc2VsZWN0aW9uKHN0cnVjdCBzY3RwX2lu
cGNiICppbnAsCkBAIC01MDY4LDcgKzUwNTUsNiBAQCBpbnQgc29fbG9ja2VkKQogCX0KIH0KIAot
CiB2b2lkCiBzY3RwX3NlbmRfaW5pdGlhdGUoc3RydWN0IHNjdHBfaW5wY2IgKmlucCwgc3RydWN0
IHNjdHBfdGNiICpzdGNiLCBpbnQgc29fbG9ja2VkKQogewpAQCAtNTI3Nyw3ICs1MjYzLDcgQEAg
c2N0cF9zZW5kX2luaXRpYXRlKHN0cnVjdCBzY3RwX2lucGNiICppbnAsIHN0cnVjdCBzY3RwX3Rj
YiAqc3RjYiwgaW50IHNvX2xvY2tlZCkKIAl9CiAKIAkvKiBub3cgYW55IGNvb2tpZSB0aW1lIGV4
dGVuc2lvbnMgKi8KLQlpZiAoc3RjYi0+YXNvYy5jb29raWVfcHJlc2VydmVfcmVxKSB7CisJaWYg
KHN0Y2ItPmFzb2MuY29va2llX3ByZXNlcnZlX3JlcSA+IDApIHsKIAkJc3RydWN0IHNjdHBfY29v
a2llX3BlcnNlcnZlX3BhcmFtICpjb29raWVfcHJlc2VydmU7CiAKIAkJaWYgKHBhZGRpbmdfbGVu
ID4gMCkgewpAQCAtNTY1NCw3ICs1NjQwLDYgQEAgc2N0cF9hcmV0aGVyZV91bnJlY29nbml6ZWRf
cGFyYW1ldGVycyhzdHJ1Y3QgbWJ1ZiAqaW5faW5pdHBrdCwKIAkJCQlhdCArPSBTQ1RQX1NJWkUz
MihwbGVuKTsKIAkJCX0KIAkJCWJyZWFrOwotCiAJCX0KIAkJcGhkciA9IHNjdHBfZ2V0X25leHRf
cGFyYW0obWF0LCBhdCwgJnBhcmFtcywgc2l6ZW9mKHBhcmFtcykpOwogCX0KQEAgLTYyNjYsNyAr
NjI1MSw2IEBAIHNjdHBfc2VuZF9pbml0aWF0ZV9hY2soc3RydWN0IHNjdHBfaW5wY2IgKmlucCwg
c3RydWN0IHNjdHBfdGNiICpzdGNiLAogCQkJCX0KIAogCQkJCW5ldC0+c3JjX2FkZHJfc2VsZWN0
ZWQgPSAxOwotCiAJCQl9CiAJCQlzdGMubGFkZHJlc3NbMF0gPSBuZXQtPnJvLl9zX2FkZHItPmFk
ZHJlc3Muc2luLnNpbl9hZGRyLnNfYWRkcjsKIAkJCXN0Yy5sYWRkcmVzc1sxXSA9IDA7CkBAIC02
NjkxLDcgKzY2NzUsNiBAQCBzY3RwX3NlbmRfaW5pdGlhdGVfYWNrKHN0cnVjdCBzY3RwX2lucGNi
ICppbnAsIHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAlTQ1RQX1NUQVRfSU5DUl9DT1VOVEVSNjQo
c2N0cHNfb3V0Y29udHJvbGNodW5rcyk7CiB9CiAKLQogc3RhdGljIHZvaWQKIHNjdHBfcHJ1bmVf
cHJzY3RwKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKICAgICBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlv
biAqYXNvYywKQEAgLTY5NzcsNyArNjk2MCw2IEBAIG91dF9ub3c6CiAJcmV0dXJuIChlcnJvcik7
CiB9CiAKLQogc3RhdGljIHN0cnVjdCBtYnVmICoKIHNjdHBfY29weV9tYnVmY2hhaW4oc3RydWN0
IG1idWYgKmNsb25lY2hhaW4sCiAJCSAgICBzdHJ1Y3QgbWJ1ZiAqb3V0Y2hhaW4sCkBAIC03Mjgy
LDcgKzcyNjQsNiBAQCBzY3RwX3NlbmRhbGxfaXRlcmF0b3Ioc3RydWN0IHNjdHBfaW5wY2IgKmlu
cCwgc3RydWN0IHNjdHBfdGNiICpzdGNiLCB2b2lkICpwdHIsCiAJCQkJCSAgICAgICAgICAgICAg
ICAgTlVMTCk7CiAJCQkJfQogCQkJfQotCiAJCX0KIAl9CiAJdW5fc2VudCA9ICgoc3RjYi0+YXNv
Yy50b3RhbF9vdXRwdXRfcXVldWVfc2l6ZSAtIHN0Y2ItPmFzb2MudG90YWxfZmxpZ2h0KSArCkBA
IC03NDY2LDcgKzc0NDcsNiBAQCBzY3RwX3NlbmRhbGwoc3RydWN0IHNjdHBfaW5wY2IgKmlucCwg
c3RydWN0IHVpbyAqdWlvLCBzdHJ1Y3QgbWJ1ZiAqbSwKIAlyZXR1cm4gKDApOwogfQogCi0KIHZv
aWQKIHNjdHBfdG9zc19vbGRfY29va2llcyhzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIHN0cnVjdCBz
Y3RwX2Fzc29jaWF0aW9uICphc29jKQogewpAQCAtNzUxNCw3ICs3NDk0LDYgQEAgc2N0cF90b3Nz
X29sZF9hc2NvbmYoc3RydWN0IHNjdHBfdGNiICpzdGNiKQogCX0KIH0KIAotCiBzdGF0aWMgdm9p
ZAogc2N0cF9jbGVhbl91cF9kYXRhbGlzdChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAgICAgc3Ry
dWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCkBAIC03OTcwLDcgKzc5NDksNiBAQCByZV9sb29r
OgogCQkJCXNwLT50YWlsX21idWYgPSBzcC0+ZGF0YSA9IE5VTEw7CiAJCQkJc3AtPmxlbmd0aCA9
IDA7CiAjZW5kaWYKLQogCQkJfQogCQkJc2N0cF9tX2ZyZWUobSk7CiAJCQltID0gc3AtPmRhdGE7
CkBAIC04MjMwLDcgKzgyMDgsNiBAQCBvdXRfb2Y6CiAJcmV0dXJuICh0b19tb3ZlKTsKIH0KIAot
CiBzdGF0aWMgdm9pZAogc2N0cF9maWxsX291dHF1ZXVlKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwK
ICAgICBzdHJ1Y3Qgc2N0cF9uZXRzICpuZXQsIGludCBmcmFnX3BvaW50LCBpbnQgZWVvcl9tb2Rl
LCBpbnQgKnF1aXRfbm93LCBpbnQgc29fbG9ja2VkKQpAQCAtODQ3Nyw3ICs4NDU0LDYgQEAgc2N0
cF9tZWRfY2h1bmtfb3V0cHV0KHN0cnVjdCBzY3RwX2lucGNiICppbnAsCiAJCQkJYnJlYWs7CiAJ
CQl9CiAJCX0KLQogCX0KIAlpZiAoKG5vX2RhdGFfY2h1bmtzID09IDApICYmCiAJICAgIChza2lw
X2ZpbGxfdXAgPT0gMCkgJiYKQEAgLTg1NjUsNyArODU0MSw3IEBAIHNjdHBfbWVkX2NodW5rX291
dHB1dChzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wLAogCX0KIAlvbGRfc3RhcnRfYXQgPSBOVUxMOwog
YWdhaW5fb25lX21vcmVfdGltZToKLQlmb3IgKG5ldCA9IHN0YXJ0X2F0IDsgbmV0ICE9IE5VTEw7
IG5ldCA9IFRBSUxRX05FWFQobmV0LCBzY3RwX25leHQpKSB7CisJZm9yIChuZXQgPSBzdGFydF9h
dDsgbmV0ICE9IE5VTEw7IG5ldCA9IFRBSUxRX05FWFQobmV0LCBzY3RwX25leHQpKSB7CiAJCS8q
IGhvdyBtdWNoIGNhbiB3ZSBzZW5kPyAqLwogCQkvKiBTQ1RQREJHKCJFeGFtaW5lIGZvciBzZW5k
aW5nIG5ldDoleFxuIiwgKHVpbnQzMl90KW5ldCk7ICovCiAJCWlmIChvbGRfc3RhcnRfYXQgJiYg
KG9sZF9zdGFydF9hdCA9PSBuZXQpKSB7CkBAIC05NDA3LDcgKzkzODMsNyBAQCBhZ2Fpbl9vbmVf
bW9yZV90aW1lOgogCQkJCSAqIHRoZSB0b3Agb2YgdGhlIGZvciwgYnV0IGp1c3QgdG8gbWFrZSBz
dXJlCiAJCQkJICogSSB3aWxsIHJlc2V0IHRoZXNlIGFnYWluIGhlcmUuCiAJCQkJICovCi0JCQkJ
Y3RsX2NudCA9IGJ1bmRsZV9hdCA9IDA7CisJCQkJY3RsX2NudCA9IDA7CiAJCQkJY29udGludWU7
IC8qIFRoaXMgdGFrZXMgdXMgYmFjayB0byB0aGUgZm9yKCkgZm9yIHRoZSBuZXRzLiAqLwogCQkJ
fSBlbHNlIHsKIAkJCQlhc29jLT5pZnBfaGFkX2Vub2J1ZiA9IDA7CkBAIC05NzIxLDcgKzk2OTcs
NiBAQCBzY3RwX3NlbmRfY29va2llX2FjayhzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IpCiAJcmV0dXJu
OwogfQogCi0KIHZvaWQKIHNjdHBfc2VuZF9zaHV0ZG93bl9hY2soc3RydWN0IHNjdHBfdGNiICpz
dGNiLCBzdHJ1Y3Qgc2N0cF9uZXRzICpuZXQpCiB7CkBAIC05OTcyLDcgKzk5NDcsNiBAQCBzY3Rw
X3NlbmRfYXNjb25mX2FjayhzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IpCiAJcmV0dXJuOwogfQogCi0K
IHN0YXRpYyBpbnQKIHNjdHBfY2h1bmtfcmV0cmFuc21pc3Npb24oc3RydWN0IHNjdHBfaW5wY2Ig
KmlucCwKICAgICBzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCkBAIC0xMDAxNCw3ICs5OTg4LDcgQEAg
c2N0cF9jaHVua19yZXRyYW5zbWlzc2lvbihzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wLAogCX0KICNl
bmRpZgogCVNDVFBfVENCX0xPQ0tfQVNTRVJUKHN0Y2IpOwotCXRtcl9zdGFydGVkID0gY3RsX2Nu
dCA9IGJ1bmRsZV9hdCA9IGVycm9yID0gMDsKKwl0bXJfc3RhcnRlZCA9IGN0bF9jbnQgPSAwOwog
CW5vX2ZyYWdtZW50ZmxnID0gMTsKIAlmd2RfdHNuID0gMDsKIAkqY250X291dCA9IDA7CkBAIC0x
MDQzOSw4ICsxMDQxMyw2IEBAIHNjdHBfY2h1bmtfcmV0cmFuc21pc3Npb24oc3RydWN0IHNjdHBf
aW5wY2IgKmlucCwKIAkJCQkJICovCiAJCQkJCWF0b21pY19hZGRfaW50KCYoKGFzb2MpLT50b3Rh
bF9vdXRwdXRfcXVldWVfc2l6ZSksZGF0YV9saXN0W2ldLT5ib29rX3NpemUpOwogCQkJCQlkYXRh
X2xpc3RbaV0tPmJvb2tfc2l6ZSAqPSAyOwotCi0KIAkJCQl9IGVsc2UgewogCQkJCQlpZiAoU0NU
UF9CQVNFX1NZU0NUTChzY3RwX2xvZ2dpbmdfbGV2ZWwpICYgU0NUUF9MT0dfUldORF9FTkFCTEUp
IHsKIAkJCQkJCXNjdHBfbG9nX3J3bmQoU0NUUF9ERUNSRUFTRV9QRUVSX1JXTkQsCkBAIC0xMDcy
MCw3ICsxMDY5Miw2IEBAIGRvX2l0X2FnYWluOgogCQkJCX0KIAkJCX0KIAkJfQotCiAJfQogCWJ1
cnN0X2NudCA9IDA7CiAJZG8gewpAQCAtMTA4MTAsNyArMTA3ODEsNiBAQCBkb19pdF9hZ2FpbjoK
IAlyZXR1cm47CiB9CiAKLQogaW50CiBzY3RwX291dHB1dCgKIAlzdHJ1Y3Qgc2N0cF9pbnBjYiAq
aW5wLApAQCAtMTEzMzQsNyArMTEzMDQsNiBAQCBzY3RwX3NlbmRfc2FjayhzdHJ1Y3Qgc2N0cF90
Y2IgKnN0Y2IsIGludCBzb19sb2NrZWQpCiAJfQogCWlmICgodHlwZSA9PSBTQ1RQX05SX1NFTEVD
VElWRV9BQ0spICYmCiAJICAgIChsaW1pdF9yZWFjaGVkID09IDApKSB7Ci0KIAkJbWVyZ2VhYmxl
ID0gMDsKIAogCQlpZiAoYXNvYy0+aGlnaGVzdF90c25faW5zaWRlX25yX21hcCA+IGFzb2MtPm1h
cHBpbmdfYXJyYXlfYmFzZV90c24pIHsKQEAgLTEyOTczLDcgKzEyOTQyLDYgQEAgc2N0cF9zZW5k
X3N0cl9yZXNldF9yZXEoc3RydWN0IHNjdHBfdGNiICpzdGNiLAogCQkJCVRBSUxRX1JFTU9WRSgm
b2xkc3RyZWFtW2ldLm91dHF1ZXVlLCBzcCwgbmV4dCk7CiAJCQkJVEFJTFFfSU5TRVJUX1RBSUwo
JnN0Y2ItPmFzb2Muc3RybW91dFtpXS5vdXRxdWV1ZSwgc3AsIG5leHQpOwogCQkJfQotCiAJCX0K
IAkJLyogbm93IHRoZSBuZXcgc3RyZWFtcyAqLwogCQlzdGNiLT5hc29jLnNzX2Z1bmN0aW9ucy5z
Y3RwX3NzX2luaXQoc3RjYiwgJnN0Y2ItPmFzb2MsIDEpOwpAQCAtMTMyMzEsOCArMTMxOTksNiBA
QCBzY3RwX2NvcHlfb25lKHN0cnVjdCBzY3RwX3N0cmVhbV9xdWV1ZV9wZW5kaW5nICpzcCwKICNl
bmRpZgogfQogCi0KLQogc3RhdGljIHN0cnVjdCBzY3RwX3N0cmVhbV9xdWV1ZV9wZW5kaW5nICoK
IHNjdHBfY29weV9pdF9pbihzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAgICAgc3RydWN0IHNjdHBf
YXNzb2NpYXRpb24gKmFzb2MsCkBAIC0xMzM1Myw3ICsxMzMxOSw2IEBAIG91dF9ub3c6CiAJcmV0
dXJuIChzcCk7CiB9CiAKLQogaW50CiBzY3RwX3Nvc2VuZChzdHJ1Y3Qgc29ja2V0ICpzbywKICAg
ICAgICAgICAgIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKQEAgLTEzNDI3LDcgKzEzMzkyLDYgQEAg
c2N0cF9zb3NlbmQoc3RydWN0IHNvY2tldCAqc28sCiAJcmV0dXJuIChlcnJvcik7CiB9CiAKLQog
aW50CiBzY3RwX2xvd2VyX3Nvc2VuZChzdHJ1Y3Qgc29ja2V0ICpzbywKICAgICAgICAgICAgICAg
ICAgIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKQEAgLTEzNjY1LDcgKzEzNjI5LDYgQEAgc2N0cF9s
b3dlcl9zb3NlbmQoc3RydWN0IHNvY2tldCAqc28sCiAJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKE5V
TEwsIE5VTEwsIE5VTEwsIFNDVFBfRlJPTV9TQ1RQX09VVFBVVCwgRUlOVkFMKTsKIAkJCWVycm9y
ID0gRUlOVkFMOwogCQkJZ290byBvdXRfdW5sb2NrZWQ7Ci0KIAkJfQogCQlpZiAoKChpbnAtPnNj
dHBfZmxhZ3MgJiBTQ1RQX1BDQl9GTEFHU19CT1VORF9WNikgPT0gMCkgJiYKIAkJICAgIChhZGRy
LT5zYV9mYW1pbHkgPT0gQUZfSU5FVDYpKSB7CkBAIC0xNDIwNiw3ICsxNDE2OSw2IEBAIHNraXBf
cHJlYmxvY2s6CiAJCQkJc3RybS0+bGFzdF9tc2dfaW5jb21wbGV0ZSA9IDA7CiAjZW5kaWYKIAkJ
CQlnb3RvIGRvX2FfY29weV9pbjsKLQogCQkJfQogCQkJaWYgKHNwLT5wcm9jZXNzaW5nKSB7CiAJ
CQkJU0NUUF9UQ0JfU0VORF9VTkxPQ0soc3RjYik7CkBAIC0xNDI2OSw3ICsxNDIzMSw5IEBAIHNr
aXBfcHJlYmxvY2s6CiAJCQkJCQlzY3RwX21fZnJlZW0obW0pOwogCQkJCQl9CiAJCQkJCVNDVFBf
VENCX1NFTkRfTE9DSyhzdGNiKTsKLQkJCQkJaWYgKHNwICE9IE5VTEwpIHsKKwkJCQkJaWYgKCgo
c3RjYi0+YXNvYy5zdGF0ZSAmIFNDVFBfU1RBVEVfQUJPVVRfVE9fQkVfRlJFRUQpID09IDApICYm
CisJCQkJCSAgICAoKHN0Y2ItPmFzb2Muc3RhdGUgJiBTQ1RQX1NUQVRFX1dBU19BQk9SVEVEKSA9
PSAwKSAmJgorCQkJCQkgICAgKHNwICE9IE5VTEwpKSB7CiAJCQkJCQlzcC0+cHJvY2Vzc2luZyA9
IDA7CiAJCQkJCX0KIAkJCQkJU0NUUF9UQ0JfU0VORF9VTkxPQ0soc3RjYik7CkBAIC0xNDI4Nyw5
ICsxNDI1MSw2IEBAIHNraXBfcHJlYmxvY2s6CiAJCQkJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKE5V
TEwsIHN0Y2IsIE5VTEwsIFNDVFBfRlJPTV9TQ1RQX09VVFBVVCwgRUNPTk5SRVNFVCk7CiAJCQkJ
CQllcnJvciA9IEVDT05OUkVTRVQ7CiAJCQkJCX0KLQkJCQkJaWYgKHNwICE9IE5VTEwpIHsKLQkJ
CQkJCXNwLT5wcm9jZXNzaW5nID0gMDsKLQkJCQkJfQogCQkJCQlTQ1RQX1RDQl9TRU5EX1VOTE9D
SyhzdGNiKTsKIAkJCQkJZ290byBvdXQ7CiAJCQkJfQpAQCAtMTQ0MDYsNyArMTQzNjcsNiBAQCBz
a2lwX3ByZWJsb2NrOgogCQkJICAgIChzdGNiLT5hc29jLnRvdGFsX2ZsaWdodCA+IDApICYmCiAJ
CQkgICAgKHN0Y2ItPmFzb2Muc3RyZWFtX3F1ZXVlX2NudCA8IFNDVFBfTUFYX0RBVEFfQlVORExJ
TkcpICYmCiAJCQkgICAgKHVuX3NlbnQgPCAoaW50KShzdGNiLT5hc29jLnNtYWxsZXN0X210dSAt
IFNDVFBfTUlOX09WRVJIRUFEKSkpIHsKLQogCQkJCS8qLQogCQkJCSAqIE9rLCBOYWdsZSBpcyBz
ZXQgb24gYW5kIHdlIGhhdmUgZGF0YSBvdXRzdGFuZGluZy4KIAkJCQkgKiBEb24ndCBzZW5kIGFu
eXRoaW5nIGFuZCBsZXQgU0FDS3MgZHJpdmUgb3V0IHRoZQpAQCAtMTQ0MjYsNyArMTQzODYsNiBA
QCBza2lwX3ByZWJsb2NrOgogCQkJCW5hZ2xlX2FwcGxpZXMgPSAwOwogCQkJfQogCQkJaWYgKFND
VFBfQkFTRV9TWVNDVEwoc2N0cF9sb2dnaW5nX2xldmVsKSAmIFNDVFBfQkxLX0xPR0dJTkdfRU5B
QkxFKSB7Ci0KIAkJCQlzY3RwX21pc2NfaW50cyhTQ1RQX0NXTkRMT0dfUFJFU0VORCwgcXVldWVf
b25seV9mb3JfaW5pdCwgcXVldWVfb25seSwKIAkJCQkJICAgICAgIG5hZ2xlX2FwcGxpZXMsIHVu
X3NlbnQpOwogCQkJCXNjdHBfbWlzY19pbnRzKFNDVFBfQ1dORExPR19QUkVTRU5ELCBzdGNiLT5h
c29jLnRvdGFsX291dHB1dF9xdWV1ZV9zaXplLApAQCAtMTQ1MTgsNyArMTQ0NzcsOSBAQCBza2lw
X3ByZWJsb2NrOgogCQkJCQl9CiAJCQkJCVNPQ0tCVUZfVU5MT0NLKCZzby0+c29fc25kKTsKIAkJ
CQkJU0NUUF9UQ0JfU0VORF9MT0NLKHN0Y2IpOwotCQkJCQlpZiAoc3AgIT0gTlVMTCkgeworCQkJ
CQlpZiAoKChzdGNiLT5hc29jLnN0YXRlICYgU0NUUF9TVEFURV9BQk9VVF9UT19CRV9GUkVFRCkg
PT0gMCkgJiYKKwkJCQkJICAgICgoc3RjYi0+YXNvYy5zdGF0ZSAmIFNDVFBfU1RBVEVfV0FTX0FC
T1JURUQpID09IDApICYmCisJCQkJCSAgICAoc3AgIT0gTlVMTCkpIHsKIAkJCQkJCXNwLT5wcm9j
ZXNzaW5nID0gMDsKIAkJCQkJfQogCQkJCQlTQ1RQX1RDQl9TRU5EX1VOTE9DSyhzdGNiKTsKQEAg
LTE0NTM1LDEwICsxNDQ5Niw4IEBAIHNraXBfcHJlYmxvY2s6CiAJCQl9CiAJCQlTT0NLQlVGX1VO
TE9DSygmc28tPnNvX3NuZCk7CiAJCQlTQ1RQX1RDQl9TRU5EX0xPQ0soc3RjYik7Ci0JCQlpZiAo
c3RjYi0+YXNvYy5zdGF0ZSAmIFNDVFBfU1RBVEVfQUJPVVRfVE9fQkVfRlJFRUQpIHsKLQkJCQlp
ZiAoc3AgIT0gTlVMTCkgewotCQkJCQlzcC0+cHJvY2Vzc2luZyA9IDA7Ci0JCQkJfQorCQkJaWYg
KChzdGNiLT5hc29jLnN0YXRlICYgU0NUUF9TVEFURV9BQk9VVF9UT19CRV9GUkVFRCkgfHwKKwkJ
CSAgICAoc3RjYi0+YXNvYy5zdGF0ZSAmIFNDVFBfU1RBVEVfV0FTX0FCT1JURUQpKSB7CiAJCQkJ
U0NUUF9UQ0JfU0VORF9VTkxPQ0soc3RjYik7CiAJCQkJZ290byBvdXRfdW5sb2NrZWQ7CiAJCQl9
CkBAIC0xNDgzMyw3ICsxNDc5Miw2IEBAIG91dF91bmxvY2tlZDoKIAlyZXR1cm4gKGVycm9yKTsK
IH0KIAotCiAvKgogICogZ2VuZXJhdGUgYW4gQVVUSGVudGljYXRpb24gY2h1bmssIGlmIHJlcXVp
cmVkCiAgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX291
dHB1dC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91
c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfb3V0cHV0LmgKaW5kZXgg
NDg0OWMyYjQ5MjVkM2QxMTViMmUwNTMwZjk2NzMyZWQ1YjA4YmFiZi4uZGFkMTBlMDBhNzdmMGNi
ODQ2NTQ4MTUxNDYyMjMzNWMwZDIyODAyMCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxp
Yi9uZXRpbmV0L3NjdHBfb3V0cHV0LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0
L3NjdHBfb3V0cHV0LmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2lmIGRlZmluZWQoX19GcmVlQlNE
X18pICYmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+Ci1f
X0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF9vdXRwdXQuaCAzNjIwNTQg
MjAyMC0wNi0xMSAxMzozNDowOVogdHVleGVuICQiKTsKK19fRkJTRElEKCIkRnJlZUJTRDogaGVh
ZC9zeXMvbmV0aW5ldC9zY3RwX291dHB1dC5oIDM2NjExNCAyMDIwLTA5LTI0IDEyOjI2OjA2WiB0
dWV4ZW4gJCIpOwogI2VuZGlmCiAKICNpZm5kZWYgX05FVElORVRfU0NUUF9PVVRQVVRfSF8KQEAg
LTQ0LDM4ICs0NCwzNCBAQCBfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0
cF9vdXRwdXQuaCAzNjIwNTQgMjAyMC0wNi0xMSAxMzozNDowOVogdAogCiAjaWYgZGVmaW5lZChf
S0VSTkVMKSB8fCBkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAKLQogc3RydWN0IG1idWYgKgogc2N0
cF9hZGRfYWRkcmVzc2VzX3RvX2lfaWEoc3RydWN0IHNjdHBfaW5wY2IgKmlucCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKLQkJCSAgIHN0cnVjdCBz
Y3RwX3Njb3BpbmcgKnNjb3BlLAotCQkJICAgc3RydWN0IG1idWYgKm1fYXQsCi0JCQkgICBpbnQg
Y250X2luaXRzX3RvLAotCQkJICAgdWludDE2X3QgKnBhZGRpbmdfbGVuLCB1aW50MTZfdCAqY2h1
bmtfbGVuKTsKLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjdHBfc2NvcGlu
ZyAqc2NvcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbWJ1ZiAqbV9hdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbnRfaW5pdHNfdG8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50MTZfdCAqcGFkZGluZ19sZW4sIHVpbnQxNl90ICpjaHVua19s
ZW4pOwogCiBpbnQgc2N0cF9pc19hZGRyX3Jlc3RyaWN0ZWQoc3RydWN0IHNjdHBfdGNiICosIHN0
cnVjdCBzY3RwX2lmYSAqKTsKIAotCiBpbnQKIHNjdHBfaXNfYWRkcmVzc19pbl9zY29wZShzdHJ1
Y3Qgc2N0cF9pZmEgKmlmYSwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2N0cF9z
Y29waW5nICpzY29wZSwKLQkJCSBpbnQgZG9fdXBkYXRlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgZG9fdXBkYXRlKTsKIAogaW50CiBzY3RwX2lzX2FkZHJfaW5fZXAoc3RydWN0IHNj
dHBfaW5wY2IgKmlucCwgc3RydWN0IHNjdHBfaWZhICppZmEpOwogCiBzdHJ1Y3Qgc2N0cF9pZmEg
Kgogc2N0cF9zb3VyY2VfYWRkcmVzc19zZWxlY3Rpb24oc3RydWN0IHNjdHBfaW5wY2IgKmlucCwK
LQkJCSAgICAgIHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKLQkJCSAgICAgIHNjdHBfcm91dGVfdCAq
cm8sIHN0cnVjdCBzY3RwX25ldHMgKm5ldCwKLQkJCSAgICAgIGludCBub25fYXNvY19hZGRyX29r
LCB1aW50MzJfdCB2cmZfaWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0
IHNjdHBfdGNiICpzdGNiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2N0cF9yb3V0
ZV90ICpybywgc3RydWN0IHNjdHBfbmV0cyAqbmV0LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IG5vbl9hc29jX2FkZHJfb2ssIHVpbnQzMl90IHZyZl9pZCk7CiAKICNpZiBkZWZp
bmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgfHwgZGVmaW5lZChfX1VzZXJz
cGFjZV9fKQotaW50Ci1zY3RwX3Y2c3JjX21hdGNoX25leHRob3Aoc3RydWN0IHNvY2thZGRyX2lu
NiAqc3JjNiwgc2N0cF9yb3V0ZV90ICpybyk7Ci1pbnQKLXNjdHBfdjRzcmNfbWF0Y2hfbmV4dGhv
cChzdHJ1Y3Qgc2N0cF9pZmEgKnNpZmEsIHNjdHBfcm91dGVfdCAqcm8pOworaW50IHNjdHBfdjZz
cmNfbWF0Y2hfbmV4dGhvcChzdHJ1Y3Qgc29ja2FkZHJfaW42ICpzcmM2LCBzY3RwX3JvdXRlX3Qg
KnJvKTsKKworaW50IHNjdHBfdjRzcmNfbWF0Y2hfbmV4dGhvcChzdHJ1Y3Qgc2N0cF9pZmEgKnNp
ZmEsIHNjdHBfcm91dGVfdCAqcm8pOwogI2VuZGlmCiAKIHZvaWQgc2N0cF9zZW5kX2luaXRpYXRl
KHN0cnVjdCBzY3RwX2lucGNiICosIHN0cnVjdCBzY3RwX3RjYiAqLCBpbnQpOwpAQCAtOTMsMjQg
Kzg5LDIzIEBAIHNjdHBfc2VuZF9pbml0aWF0ZV9hY2soc3RydWN0IHNjdHBfaW5wY2IgKiwgc3Ry
dWN0IHNjdHBfdGNiICosCiAKIHN0cnVjdCBtYnVmICoKIHNjdHBfYXJldGhlcmVfdW5yZWNvZ25p
emVkX3BhcmFtZXRlcnMoc3RydWN0IG1idWYgKiwgaW50LCBpbnQgKiwKLQkJCQkgICAgICBzdHJ1
Y3Qgc2N0cF9jaHVua2hkciAqLCBpbnQgKiwgaW50ICopOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2N0cF9jaHVua2hkciAqLCBpbnQgKiwgaW50ICopOwog
dm9pZCBzY3RwX3F1ZXVlX29wX2VycihzdHJ1Y3Qgc2N0cF90Y2IgKiwgc3RydWN0IG1idWYgKik7
CiAKIGludAogc2N0cF9zZW5kX2Nvb2tpZV9lY2hvKHN0cnVjdCBtYnVmICosIGludCwgaW50LCBz
dHJ1Y3Qgc2N0cF90Y2IgKiwKLSAgICBzdHJ1Y3Qgc2N0cF9uZXRzICopOworICAgICAgICAgICAg
ICAgICAgICAgIHN0cnVjdCBzY3RwX25ldHMgKik7CiAKIHZvaWQgc2N0cF9zZW5kX2Nvb2tpZV9h
Y2soc3RydWN0IHNjdHBfdGNiICopOwogCiB2b2lkCiBzY3RwX3NlbmRfaGVhcnRiZWF0X2Fjayhz
dHJ1Y3Qgc2N0cF90Y2IgKiwgc3RydWN0IG1idWYgKiwgaW50LCBpbnQsCi0gICAgc3RydWN0IHNj
dHBfbmV0cyAqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzY3RwX25ldHMgKik7
CiAKIHZvaWQKIHNjdHBfcmVtb3ZlX2Zyb21fd2hlZWwoc3RydWN0IHNjdHBfdGNiICpzdGNiLAot
CQkJCQkgICBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywKLQkJCQkJICAgc3RydWN0IHNj
dHBfc3RyZWFtX291dCAqc3RycSwgaW50IGhvbGRzX2xvY2spOwotCisgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLAorICAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3Qgc2N0cF9zdHJlYW1fb3V0ICpzdHJxLCBpbnQgaG9sZHNfbG9jayk7CiAKIHZv
aWQgc2N0cF9zZW5kX3NodXRkb3duKHN0cnVjdCBzY3RwX3RjYiAqLCBzdHJ1Y3Qgc2N0cF9uZXRz
ICopOwogCkBAIC0xMzksMTAgKzEzNCw5IEBAIHZvaWQgc2N0cF9maXhfZWNuX2VjaG8oc3RydWN0
IHNjdHBfYXNzb2NpYXRpb24gKik7CiAKIHZvaWQgc2N0cF9tb3ZlX2NodW5rc19mcm9tX25ldChz
dHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIHN0cnVjdCBzY3RwX25ldHMgKm5ldCk7CiAKLQogI2RlZmlu
ZSBTQ1RQX0RBVEFfQ0hVTktfT1ZFUkhFQUQoc3RjYikgKChzdGNiKS0+YXNvYy5pZGF0YV9zdXBw
b3J0ZWQgPyBcCi0JCQkJCXNpemVvZihzdHJ1Y3Qgc2N0cF9pZGF0YV9jaHVuaykgOiBcCi0JCQkJ
CXNpemVvZihzdHJ1Y3Qgc2N0cF9kYXRhX2NodW5rKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHNjdHBfaWRhdGFfY2h1bmspIDogXAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3Qgc2N0cF9k
YXRhX2NodW5rKSkKIAogI2lmIGRlZmluZWQoX19GcmVlQlNEX18pICYmICFkZWZpbmVkKF9fVXNl
cnNwYWNlX18pCiBpbnQKQEAgLTE3OSwxOCArMTczLDE1IEBAIHZvaWQKIHNjdHBfc2VuZF9wYWNr
ZXRfZHJvcHBlZChzdHJ1Y3Qgc2N0cF90Y2IgKiwgc3RydWN0IHNjdHBfbmV0cyAqLCBzdHJ1Y3Qg
bWJ1ZiAqLAogICAgIGludCwgaW50LCBpbnQpOwogCi0KLQogdm9pZCBzY3RwX3NlbmRfY3dyKHN0
cnVjdCBzY3RwX3RjYiAqLCBzdHJ1Y3Qgc2N0cF9uZXRzICosIHVpbnQzMl90LCB1aW50OF90KTsK
IAotCiB2b2lkCiBzY3RwX2FkZF9zdHJlYW1fcmVzZXRfcmVzdWx0KHN0cnVjdCBzY3RwX3RtaXRf
Y2h1bmsgKiwgdWludDMyX3QsIHVpbnQzMl90KTsKIAogdm9pZAogc2N0cF9zZW5kX2RlZmVycmVk
X3Jlc2V0X3Jlc3BvbnNlKHN0cnVjdCBzY3RwX3RjYiAqLAotCQkJCSAgc3RydWN0IHNjdHBfc3Ry
ZWFtX3Jlc2V0X2xpc3QgKiwKLQkJCQkgIGludCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IHNjdHBfc3RyZWFtX3Jlc2V0X2xpc3QgKiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQpOwogCiB2b2lkCiBzY3RwX2FkZF9zdHJlYW1fcmVzZXRf
cmVzdWx0X3RzbihzdHJ1Y3Qgc2N0cF90bWl0X2NodW5rICosCkBAIC0yMTAsMTIgKzIwMSwxMyBA
QCBzY3RwX3NlbmRfYWJvcnQoc3RydWN0IG1idWYgKiwgaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwg
c3RydWN0IHNvY2thZGRyICosCiAjZW5kaWYKICAgICAgICAgICAgICAgICB1aW50MzJfdCwgdWlu
dDE2X3QpOwogCi12b2lkIHNjdHBfc2VuZF9vcGVycl90byhzdHJ1Y3Qgc29ja2FkZHIgKiwgc3Ry
dWN0IHNvY2thZGRyICosCi0gICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2N0cGhkciAq
LCB1aW50MzJfdCwgc3RydWN0IG1idWYgKiwKK3ZvaWQKK3NjdHBfc2VuZF9vcGVycl90byhzdHJ1
Y3Qgc29ja2FkZHIgKiwgc3RydWN0IHNvY2thZGRyICosCisgICAgICAgICAgICAgICAgICAgc3Ry
dWN0IHNjdHBoZHIgKiwgdWludDMyX3QsIHN0cnVjdCBtYnVmICosCiAjaWYgZGVmaW5lZChfX0Zy
ZWVCU0RfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHVpbnQ4X3QsIHVpbnQzMl90LCB1aW50MTZfdCwKKyAgICAgICAgICAgICAgICAgICB1aW50
OF90LCB1aW50MzJfdCwgdWludDE2X3QsCiAjZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAg
IHVpbnQzMl90LCB1aW50MTZfdCk7CisgICAgICAgICAgICAgICAgICAgdWludDMyX3QsIHVpbnQx
Nl90KTsKIAogI2VuZGlmIC8qIF9LRVJORUwgfHwgX19Vc2Vyc3BhY2VfXyAqLwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNj
dHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9wY2IuYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3Vz
cnNjdHBsaWIvbmV0aW5ldC9zY3RwX3BjYi5jCmluZGV4IGYwMjk0ODU4NzAyNjU5MjA4MjMwYmY4
ZDA4OTI3MmY4MmFmOGM3MWIuLmNjZWI5ZTNkM2YyOTZiNjgyYWZjMTY1MjUyMmViNjNkNWU2YTEx
ZTkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3BjYi5jCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0
cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3BjYi5jCkBAIC0zNCw3ICszNCw3
IEBACiAKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9f
KQogI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9u
ZXRpbmV0L3NjdHBfcGNiLmMgMzY0MjY4IDIwMjAtMDgtMTYgMTE6NTA6MzdaIHR1ZXhlbiAkIik7
CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF9wY2IuYyAzNjY0ODMg
MjAyMC0xMC0wNiAxMToyOTowOFogdHVleGVuICQiKTsKICNlbmRpZgogCiAjaW5jbHVkZSA8bmV0
aW5ldC9zY3RwX29zLmg+CkBAIC0yNTAsNyArMjUwLDYgQEAgc2N0cF9hbGxvY2F0ZV92cmYoaW50
IHZyZl9pZCkKIAlyZXR1cm4gKHZyZik7CiB9CiAKLQogc3RydWN0IHNjdHBfaWZuICoKIHNjdHBf
ZmluZF9pZm4odm9pZCAqaWZuLCB1aW50MzJfdCBpZm5faW5kZXgpCiB7CkBAIC0yNzMsNyArMjcy
LDYgQEAgc2N0cF9maW5kX2lmbih2b2lkICppZm4sIHVpbnQzMl90IGlmbl9pbmRleCkKIAlyZXR1
cm4gKE5VTEwpOwogfQogCi0KIHN0cnVjdCBzY3RwX3ZyZiAqCiBzY3RwX2ZpbmRfdnJmKHVpbnQz
Ml90IHZyZl9pZCkKIHsKQEAgLTI4OSw3ICsyODcsNiBAQCBzY3RwX2ZpbmRfdnJmKHVpbnQzMl90
IHZyZl9pZCkKIAlyZXR1cm4gKE5VTEwpOwogfQogCi0KIHZvaWQKIHNjdHBfZnJlZV92cmYoc3Ry
dWN0IHNjdHBfdnJmICp2cmYpCiB7CkBAIC0zMDUsNyArMzAyLDYgQEAgc2N0cF9mcmVlX3ZyZihz
dHJ1Y3Qgc2N0cF92cmYgKnZyZikKIAl9CiB9CiAKLQogdm9pZAogc2N0cF9mcmVlX2lmbihzdHJ1
Y3Qgc2N0cF9pZm4gKnNjdHBfaWZucCkKIHsKQEAgLTMxOSw3ICszMTUsNiBAQCBzY3RwX2ZyZWVf
aWZuKHN0cnVjdCBzY3RwX2lmbiAqc2N0cF9pZm5wKQogCX0KIH0KIAotCiB2b2lkCiBzY3RwX3Vw
ZGF0ZV9pZm5fbXR1KHVpbnQzMl90IGlmbl9pbmRleCwgdWludDMyX3QgbXR1KQogewpAQCAtMzMx
LDcgKzMyNiw2IEBAIHNjdHBfdXBkYXRlX2lmbl9tdHUodWludDMyX3QgaWZuX2luZGV4LCB1aW50
MzJfdCBtdHUpCiAJfQogfQogCi0KIHZvaWQKIHNjdHBfZnJlZV9pZmEoc3RydWN0IHNjdHBfaWZh
ICpzY3RwX2lmYXApCiB7CkBAIC0zNDUsNyArMzM5LDYgQEAgc2N0cF9mcmVlX2lmYShzdHJ1Y3Qg
c2N0cF9pZmEgKnNjdHBfaWZhcCkKIAl9CiB9CiAKLQogc3RhdGljIHZvaWQKIHNjdHBfZGVsZXRl
X2lmbihzdHJ1Y3Qgc2N0cF9pZm4gKnNjdHBfaWZucCwgaW50IGhvbGRfYWRkcl9sb2NrKQogewpA
QCAtMzcwLDcgKzM2Myw2IEBAIHNjdHBfZGVsZXRlX2lmbihzdHJ1Y3Qgc2N0cF9pZm4gKnNjdHBf
aWZucCwgaW50IGhvbGRfYWRkcl9sb2NrKQogCXNjdHBfZnJlZV9pZm4oc2N0cF9pZm5wKTsKIH0K
IAotCiB2b2lkCiBzY3RwX21hcmtfaWZhX2FkZHJfZG93bih1aW50MzJfdCB2cmZfaWQsIHN0cnVj
dCBzb2NrYWRkciAqYWRkciwKIAkJCWNvbnN0IGNoYXIgKmlmX25hbWUsIHVpbnQzMl90IGlmbl9p
bmRleCkKQEAgLTM4Myw3ICszNzUsNiBAQCBzY3RwX21hcmtfaWZhX2FkZHJfZG93bih1aW50MzJf
dCB2cmZfaWQsIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKIAlpZiAodnJmID09IE5VTEwpIHsKIAkJ
U0NUUERCRyhTQ1RQX0RFQlVHX1BDQjQsICJDYW4ndCBmaW5kIHZyZl9pZCAweCV4XG4iLCB2cmZf
aWQpOwogCQlnb3RvIG91dDsKLQogCX0KIAlzY3RwX2lmYXAgPSBzY3RwX2ZpbmRfaWZhX2J5X2Fk
ZHIoYWRkciwgdnJmLT52cmZfaWQsIFNDVFBfQUREUl9MT0NLRUQpOwogCWlmIChzY3RwX2lmYXAg
PT0gTlVMTCkgewpAQCAtNDE0LDcgKzQwNSw2IEBAIHNjdHBfbWFya19pZmFfYWRkcl9kb3duKHVp
bnQzMl90IHZyZl9pZCwgc3RydWN0IHNvY2thZGRyICphZGRyLAogCVNDVFBfSVBJX0FERFJfUlVO
TE9DSygpOwogfQogCi0KIHZvaWQKIHNjdHBfbWFya19pZmFfYWRkcl91cCh1aW50MzJfdCB2cmZf
aWQsIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKIAkJICAgICAgY29uc3QgY2hhciAqaWZfbmFtZSwg
dWludDMyX3QgaWZuX2luZGV4KQpAQCAtNDI3LDcgKzQxNyw2IEBAIHNjdHBfbWFya19pZmFfYWRk
cl91cCh1aW50MzJfdCB2cmZfaWQsIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKIAlpZiAodnJmID09
IE5VTEwpIHsKIAkJU0NUUERCRyhTQ1RQX0RFQlVHX1BDQjQsICJDYW4ndCBmaW5kIHZyZl9pZCAw
eCV4XG4iLCB2cmZfaWQpOwogCQlnb3RvIG91dDsKLQogCX0KIAlzY3RwX2lmYXAgPSBzY3RwX2Zp
bmRfaWZhX2J5X2FkZHIoYWRkciwgdnJmLT52cmZfaWQsIFNDVFBfQUREUl9MT0NLRUQpOwogCWlm
IChzY3RwX2lmYXAgPT0gTlVMTCkgewpAQCAtNDU4LDcgKzQ0Nyw2IEBAIHNjdHBfbWFya19pZmFf
YWRkcl91cCh1aW50MzJfdCB2cmZfaWQsIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKIAlTQ1RQX0lQ
SV9BRERSX1JVTkxPQ0soKTsKIH0KIAotCiAvKi0KICAqIEFkZCBhbiBpZmEgdG8gYW4gaWZuLgog
ICogUmVnaXN0ZXIgdGhlIGludGVyZmFjZSBhcyBuZWNlc3NhcnkuCkBAIC00OTUsNyArNDgzLDYg
QEAgc2N0cF9hZGRfaWZhX3RvX2lmbihzdHJ1Y3Qgc2N0cF9pZm4gKnNjdHBfaWZucCwgc3RydWN0
IHNjdHBfaWZhICpzY3RwX2lmYXApCiAJfQogfQogCi0KIC8qLQogICogUmVtb3ZlIGFuIGlmYSBm
cm9tIGl0cyBpZm4uCiAgKiBJZiBubyBtb3JlIGFkZHJlc3NlcyBleGlzdCwgcmVtb3ZlIHRoZSBp
Zm4gdG9vLiBPdGhlcndpc2UsIHJlLXJlZ2lzdGVyCkBAIC01NDMsNyArNTMwLDYgQEAgc2N0cF9y
ZW1vdmVfaWZhX2Zyb21faWZuKHN0cnVjdCBzY3RwX2lmYSAqc2N0cF9pZmFwKQogCX0KIH0KIAot
CiBzdHJ1Y3Qgc2N0cF9pZmEgKgogc2N0cF9hZGRfYWRkcl90b192cmYodWludDMyX3QgdnJmX2lk
LCB2b2lkICppZm4sIHVpbnQzMl90IGlmbl9pbmRleCwKIAkJICAgICB1aW50MzJfdCBpZm5fdHlw
ZSwgY29uc3QgY2hhciAqaWZfbmFtZSwgdm9pZCAqaWZhLApAQCAtOTIxLDcgKzkwNyw2IEBAIHNj
dHBfZGVsX2FkZHJfZnJvbV92cmYodWludDMyX3QgdnJmX2lkLCBzdHJ1Y3Qgc29ja2FkZHIgKmFk
ZHIsCiAJcmV0dXJuOwogfQogCi0KIHN0YXRpYyBpbnQKIHNjdHBfZG9lc19zdGNiX293bl90aGlz
X2FkZHIoc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc29ja2FkZHIgKnRvKQogewpAQCAt
MTEzNiwxNCArMTEyMSwxMiBAQCBzY3RwX2RvZXNfc3RjYl9vd25fdGhpc19hZGRyKHN0cnVjdCBz
Y3RwX3RjYiAqc3RjYiwgc3RydWN0IHNvY2thZGRyICp0bykKIAkJCQkvKiBUU05IICovCiAJCQkJ
YnJlYWs7CiAJCQl9Ci0KIAkJfQogCX0KIAlTQ1RQX0lQSV9BRERSX1JVTkxPQ0soKTsKIAlyZXR1
cm4gKDApOwogfQogCi0KIHN0YXRpYyBzdHJ1Y3Qgc2N0cF90Y2IgKgogc2N0cF90Y2Jfc3BlY2lh
bF9sb2NhdGUoc3RydWN0IHNjdHBfaW5wY2IgKippbnBfcCwgc3RydWN0IHNvY2thZGRyICpmcm9t
LAogICAgIHN0cnVjdCBzb2NrYWRkciAqdG8sIHN0cnVjdCBzY3RwX25ldHMgKipuZXRwLCB1aW50
MzJfdCB2cmZfaWQpCkBAIC0xMjc3LDcgKzEyNjAsNiBAQCBzY3RwX3RjYl9zcGVjaWFsX2xvY2F0
ZShzdHJ1Y3Qgc2N0cF9pbnBjYiAqKmlucF9wLCBzdHJ1Y3Qgc29ja2FkZHIgKmZyb20sCiAJCQlp
bnQgbWF0Y2ggPSAwOwogCiAJCQlMSVNUX0ZPUkVBQ0gobGFkZHIsICZpbnAtPnNjdHBfYWRkcl9s
aXN0LCBzY3RwX254dF9hZGRyKSB7Ci0KIAkJCQlpZiAobGFkZHItPmlmYSA9PSBOVUxMKSB7CiAJ
CQkJCVNDVFBEQkcoU0NUUF9ERUJVR19QQ0IxLCAiJXM6IE5VTEwgaWZhXG4iLCBfX2Z1bmNfXyk7
CiAJCQkJCWNvbnRpbnVlOwpAQCAtMTM3Myw3ICsxMzU1LDYgQEAgc2N0cF90Y2Jfc3BlY2lhbF9s
b2NhdGUoc3RydWN0IHNjdHBfaW5wY2IgKippbnBfcCwgc3RydWN0IHNvY2thZGRyICpmcm9tLAog
CQl9CiAJCS8qIERvZXMgdGhpcyBUQ0IgaGF2ZSBhIG1hdGNoaW5nIGFkZHJlc3M/ICovCiAJCVRB
SUxRX0ZPUkVBQ0gobmV0LCAmc3RjYi0+YXNvYy5uZXRzLCBzY3RwX25leHQpIHsKLQogCQkJaWYg
KG5ldC0+cm8uX2xfYWRkci5zYS5zYV9mYW1pbHkgIT0gZnJvbS0+c2FfZmFtaWx5KSB7CiAJCQkJ
Lyogbm90IHRoZSBzYW1lIGZhbWlseSwgY2FuJ3QgYmUgYSBtYXRjaCAqLwogCQkJCWNvbnRpbnVl
OwpAQCAtMTQ1Miw3ICsxNDMzLDYgQEAgc2N0cF90Y2Jfc3BlY2lhbF9sb2NhdGUoc3RydWN0IHNj
dHBfaW5wY2IgKippbnBfcCwgc3RydWN0IHNvY2thZGRyICpmcm9tLAogCXJldHVybiAoTlVMTCk7
CiB9CiAKLQogLyoKICAqIHJ1bGVzIGZvciB1c2UKICAqCkBAIC0xODE5LDcgKzE3OTksNiBAQCBu
dWxsX3JldHVybjoKIAlyZXR1cm4gKE5VTEwpOwogfQogCi0KIC8qCiAgKiBGaW5kIGFuIGFzc29j
aWF0aW9uIGZvciBhIHNwZWNpZmljIGVuZHBvaW50IHVzaW5nIHRoZSBhc3NvY2lhdGlvbiBpZCBn
aXZlbgogICogb3V0IGluIHRoZSBDT01NX1VQIG5vdGlmaWNhdGlvbgpAQCAtMTg3MSw3ICsxODUw
LDYgQEAgc2N0cF9maW5kYXNvY19lcF9hc29jaWRfbG9ja2VkKHN0cnVjdCBzY3RwX2lucGNiICpp
bnAsIHNjdHBfYXNzb2NfdCBhc29jX2lkLCBpbnQKIAlyZXR1cm4gKE5VTEwpOwogfQogCi0KIHN0
cnVjdCBzY3RwX3RjYiAqCiBzY3RwX2ZpbmRhc3NvY2lhdGlvbl9lcF9hc29jaWQoc3RydWN0IHNj
dHBfaW5wY2IgKmlucCwgc2N0cF9hc3NvY190IGFzb2NfaWQsIGludCB3YW50X2xvY2spCiB7CkBA
IC0xODgzLDcgKzE4NjEsNiBAQCBzY3RwX2ZpbmRhc3NvY2lhdGlvbl9lcF9hc29jaWQoc3RydWN0
IHNjdHBfaW5wY2IgKmlucCwgc2N0cF9hc3NvY190IGFzb2NfaWQsIGludAogCXJldHVybiAoc3Rj
Yik7CiB9CiAKLQogLyoKICAqIEVuZHBvaW50IHByb2JlIGV4cGVjdHMgdGhhdCB0aGUgSU5QX0lO
Rk8gaXMgbG9ja2VkLgogICovCkBAIC0yMTMxLDcgKzIxMDgsNiBAQCBzY3RwX2VuZHBvaW50X3By
b2JlKHN0cnVjdCBzb2NrYWRkciAqbmFtLCBzdHJ1Y3Qgc2N0cHBjYmhlYWQgKmhlYWQsCiAJcmV0
dXJuIChOVUxMKTsKIH0KIAotCiBzdGF0aWMgc3RydWN0IHNjdHBfaW5wY2IgKgogc2N0cF9pc3Bv
cnRfaW51c2Uoc3RydWN0IHNjdHBfaW5wY2IgKmlucCwgdWludDE2X3QgbHBvcnQsIHVpbnQzMl90
IHZyZl9pZCkKIHsKQEAgLTIxOTIsNyArMjE2OCw2IEBAIHNjdHBfaXNwb3J0X2ludXNlKHN0cnVj
dCBzY3RwX2lucGNiICppbnAsIHVpbnQxNl90IGxwb3J0LCB1aW50MzJfdCB2cmZfaWQpCiAJcmV0
dXJuIChOVUxMKTsKIH0KIAotCiBpbnQKIHNjdHBfc3dhcF9pbnBjYl9mb3JfbGlzdGVuKHN0cnVj
dCBzY3RwX2lucGNiICppbnApCiB7CkBAIC0yMjQ0LDcgKzIyMTksNiBAQCBzY3RwX3N3YXBfaW5w
Y2JfZm9yX2xpc3RlbihzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wKQogCXJldHVybiAoMCk7CiB9CiAK
LQogc3RydWN0IHNjdHBfaW5wY2IgKgogc2N0cF9wY2JfZmluZGVwKHN0cnVjdCBzb2NrYWRkciAq
bmFtLCBpbnQgZmluZF90Y3BfcG9vbCwgaW50IGhhdmVfbG9jaywKIAkJdWludDMyX3QgdnJmX2lk
KQpAQCAtMjMzMCw3ICsyMzA0LDYgQEAgc2N0cF9wY2JfZmluZGVwKHN0cnVjdCBzb2NrYWRkciAq
bmFtLCBpbnQgZmluZF90Y3BfcG9vbCwgaW50IGhhdmVfbG9jaywKIAlyZXR1cm4gKGlucCk7CiB9
CiAKLQogLyoKICAqIEZpbmQgYW4gYXNzb2NpYXRpb24gZm9yIGFuIGVuZHBvaW50IHdpdGggdGhl
IHBvaW50ZXIgdG8gd2hvbSB5b3Ugd2FudCB0bwogICogc2VuZCB0byBhbmQgdGhlIGVuZHBvaW50
IHBvaW50ZXIuIFRoZSBhZGRyZXNzIGNhbiBiZSBJUHY0IG9yIElQdjYuIFdlIG1heQpAQCAtMjM4
Miw3ICsyMzU1LDYgQEAgc2N0cF9maW5kYXNzb2NpYXRpb25fYWRkcl9zYShzdHJ1Y3Qgc29ja2Fk
ZHIgKmZyb20sIHN0cnVjdCBzb2NrYWRkciAqdG8sCiAJcmV0dXJuIChzdGNiKTsKIH0KIAotCiAv
KgogICogVGhpcyByb3V0aW5lIHdpbGwgZ3J1YiB0aHJvdWdoIHRoZSBtYnVmIHRoYXQgaXMgYSBJ
TklUIG9yIElOSVQtQUNLIGFuZAogICogZmluZCBhbGwgYWRkcmVzc2VzIHRoYXQgdGhlIHNlbmRl
ciBoYXMgc3BlY2lmaWVkIGluIGFueSBhZGRyZXNzIGxpc3QuIEVhY2gKQEAgLTI1OTEsNyArMjU2
Myw2IEBAIHNjdHBfZmluZGFzc29jX2J5X3Z0YWcoc3RydWN0IHNvY2thZGRyICpmcm9tLCBzdHJ1
Y3Qgc29ja2FkZHIgKnRvLCB1aW50MzJfdCB2dGFnCiAJcmV0dXJuIChOVUxMKTsKIH0KIAotCiAv
KgogICogRmluZCBhbiBhc3NvY2lhdGlvbiB3aXRoIHRoZSBwb2ludGVyIHRvIHRoZSBpbmJvdW5k
IElQIHBhY2tldC4gVGhpcyBjYW4gYmUKICAqIGEgSVB2NCBvciBJUHY2IHBhY2tldC4KQEAgLTI3
NjEsNyArMjczMiw2IEBAIHNjdHBfZmluZGFzc29jaWF0aW9uX2VwX2FzY29uZihzdHJ1Y3QgbWJ1
ZiAqbSwgaW50IG9mZnNldCwKIAlyZXR1cm4gKHN0Y2IpOwogfQogCi0KIC8qCiAgKiBhbGxvY2F0
ZSBhIHNjdHBfaW5wY2IgYW5kIHNldHVwIGEgdGVtcG9yYXJ5IGJpbmRpbmcgdG8gYSBwb3J0L2Fs
bAogICogYWRkcmVzc2VzLiBUaGlzIHdheSBpZiB3ZSBkb24ndCBnZXQgYSBiaW5kIHdlIGJ5IGRl
ZmF1bHQgcGljayBhIGVwaGVtZXJhbApAQCAtMzA2OCw3ICszMDM4LDYgQEAgc2N0cF9pbnBjYl9h
bGxvYyhzdHJ1Y3Qgc29ja2V0ICpzbywgdWludDMyX3QgdnJmX2lkKQogCXJldHVybiAoZXJyb3Ip
OwogfQogCi0KIHZvaWQKIHNjdHBfbW92ZV9wY2JfYW5kX2Fzc29jKHN0cnVjdCBzY3RwX2lucGNi
ICpvbGRfaW5wLCBzdHJ1Y3Qgc2N0cF9pbnBjYiAqbmV3X2lucCwKICAgICBzdHJ1Y3Qgc2N0cF90
Y2IgKnN0Y2IpCkBAIC0zMjU4LDggKzMyMjcsOCBAQCBzY3RwX3JlbW92ZV9sYWRkcihzdHJ1Y3Qg
c2N0cF9sYWRkciAqbGFkZHIpCiAJU0NUUF9aT05FX0ZSRUUoU0NUUF9CQVNFX0lORk8oaXBpX3pv
bmVfbGFkZHIpLCBsYWRkcik7CiAJU0NUUF9ERUNSX0xBRERSX0NPVU5UKCk7CiB9Ci0KICNpZiAh
KGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19BUFBMRV9fKSB8fCBkZWZpbmVkKF9f
VXNlcnNwYWNlX18pKQorCiAvKgogICogRG9uJ3Qga25vdyB3aHksIGJ1dCB3aXRob3V0IHRoaXMg
dGhlcmUgaXMgYW4gdW5rbm93biByZWZlcmVuY2Ugd2hlbgogICogY29tcGlsaW5nIE5ldEJTRC4u
LiBobW0KQEAgLTMyNjcsNyArMzIzNiw2IEBAIHNjdHBfcmVtb3ZlX2xhZGRyKHN0cnVjdCBzY3Rw
X2xhZGRyICpsYWRkcikKIGV4dGVybiB2b2lkIGluNl9zaW42XzJfc2luKHN0cnVjdCBzb2NrYWRk
cl9pbiAqLCBzdHJ1Y3Qgc29ja2FkZHJfaW42ICpzaW42KTsKICNlbmRpZgogCi0KIC8qIHNjdHBf
aWZhcCBpcyB1c2VkIHRvIGJ5cGFzcyBub3JtYWwgbG9jYWwgYWRkcmVzcyB2YWxpZGF0aW9uIGNo
ZWNrcyAqLwogaW50CiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19Vc2Vy
c3BhY2VfXykKQEAgLTM3OTgsNyArMzc2Niw2IEBAIHNjdHBfaW5wY2JfYmluZChzdHJ1Y3Qgc29j
a2V0ICpzbywgc3RydWN0IHNvY2thZGRyICphZGRyLAogCXJldHVybiAoMCk7CiB9CiAKLQogc3Rh
dGljIHZvaWQKIHNjdHBfaXRlcmF0b3JfaW5wX2JlaW5nX2ZyZWVkKHN0cnVjdCBzY3RwX2lucGNi
ICppbnApCiB7CkBAIC0zODk0LDcgKzM4NjEsNiBAQCBzY3RwX2lucGNiX2ZyZWUoc3RydWN0IHNj
dHBfaW5wY2IgKmlucCwgaW50IGltbWVkaWF0ZSwgaW50IGZyb20pCiAJaW50IGNudDsKIAlzY3Rw
X3NoYXJlZGtleV90ICpzaGFyZWRfa2V5LCAqbnNoYXJlZF9rZXk7CiAKLQogI2lmIGRlZmluZWQo
X19BUFBMRV9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogCXNjdHBfbG9ja19hc3NlcnQo
U0NUUF9JTlBfU08oaW5wKSk7CiAjZW5kaWYKQEAgLTM5MjQsNyArMzg5MCw2IEBAIHNjdHBfaW5w
Y2JfZnJlZShzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wLCBpbnQgaW1tZWRpYXRlLCBpbnQgZnJvbSkK
IAkJaW5wLT5zY3RwX2ZsYWdzIHw9IFNDVFBfUENCX0ZMQUdTX0RPTlRfV0FLRTsKIAkJaW5wLT5z
Y3RwX2ZsYWdzICY9IH5TQ1RQX1BDQl9GTEFHU19XQUtFSU5QVVQ7CiAJCWlucC0+c2N0cF9mbGFn
cyAmPSB+U0NUUF9QQ0JfRkxBR1NfV0FLRU9VVFBVVDsKLQogCX0KIAkvKiBGaXJzdCB0aW1lIHRo
cm91Z2ggd2UgaGF2ZSB0aGUgc29ja2V0IGxvY2ssIGFmdGVyIHRoYXQgbm8gbW9yZS4gKi8KIAlz
Y3RwX3RpbWVyX3N0b3AoU0NUUF9USU1FUl9UWVBFX05FV0NPT0tJRSwgaW5wLCBOVUxMLCBOVUxM
LApAQCAtNDE3NSwxMyArNDE0MCwxMSBAQCBzY3RwX2lucGNiX2ZyZWUoc3RydWN0IHNjdHBfaW5w
Y2IgKmlucCwgaW50IGltbWVkaWF0ZSwgaW50IGZyb20pCiAjaWZkZWYgU0NUUF9MT0dfQ0xPU0lO
RwogCXNjdHBfbG9nX2Nsb3NpbmcoaW5wLCBOVUxMLCA1KTsKICNlbmRpZgotCiAjaWYgIShkZWZp
bmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX1VzZXJzcGFjZV9fKSkKICNpZiAhKGRlZmluZWQoX19G
cmVlQlNEX18pICAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKSkKIAlydCA9IGlwX3BjYi0+aW5w
X3JvdXRlLnJvX3J0OwogI2VuZGlmCiAjZW5kaWYKLQogCWlmICgoaW5wLT5zY3RwX2Fzb2NpZGhh
c2gpICE9IE5VTEwpIHsKIAkJU0NUUF9IQVNIX0ZSRUUoaW5wLT5zY3RwX2Fzb2NpZGhhc2gsIGlu
cC0+aGFzaGFzb2NpZG1hcmspOwogCQlpbnAtPnNjdHBfYXNvY2lkaGFzaCA9IE5VTEw7CkBAIC00
MjE2LDcgKzQxNzksNiBAQCBzY3RwX2lucGNiX2ZyZWUoc3RydWN0IHNjdHBfaW5wY2IgKmlucCwg
aW50IGltbWVkaWF0ZSwgaW50IGZyb20pCiAJCSh2b2lkKXNjdHBfbV9mcmVlKGlwX3BjYi0+aW5w
X29wdGlvbnMpOwogCQlpcF9wY2ItPmlucF9vcHRpb25zID0gMDsKIAl9Ci0KICNpZiAhKGRlZmlu
ZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fVXNlcnNwYWNlX18pKQogI2lmICFkZWZpbmVkKF9fRnJl
ZUJTRF9fKQogCWlmIChydCkgewpAQCAtNDIyNSw3ICs0MTg3LDYgQEAgc2N0cF9pbnBjYl9mcmVl
KHN0cnVjdCBzY3RwX2lucGNiICppbnAsIGludCBpbW1lZGlhdGUsIGludCBmcm9tKQogCX0KICNl
bmRpZgogI2VuZGlmCi0KICNpZmRlZiBJTkVUNgogI2lmICEoZGVmaW5lZChfV0lOMzIpIHx8IGRl
ZmluZWQoX19Vc2Vyc3BhY2VfXykpCiAjaWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmlu
ZWQoX19BUFBMRV9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKSkKQEAgLTQzMDMsNyArNDI2
NCw2IEBAIHNjdHBfaW5wY2JfZnJlZShzdHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wLCBpbnQgaW1tZWRp
YXRlLCBpbnQgZnJvbSkKICNlbmRpZgogfQogCi0KIHN0cnVjdCBzY3RwX25ldHMgKgogc2N0cF9m
aW5kbmV0KHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNvY2thZGRyICphZGRyKQogewpA
QCAtNDMxNiw3ICs0Mjc2LDYgQEAgc2N0cF9maW5kbmV0KHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwg
c3RydWN0IHNvY2thZGRyICphZGRyKQogCXJldHVybiAoTlVMTCk7CiB9CiAKLQogaW50CiBzY3Rw
X2lzX2FkZHJlc3Nfb25fbG9jYWxfaG9zdChzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsIHVpbnQzMl90
IHZyZl9pZCkKIHsKQEAgLTQ4NTUsNyArNDgxNCw2IEBAIHNjdHBfYWRkX3JlbW90ZV9hZGRyKHN0
cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNvY2thZGRyICpuZXdhZGRyLAogCXJldHVybiAo
MCk7CiB9CiAKLQogc3RhdGljIHVpbnQzMl90CiBzY3RwX2Fsb2NfYV9hc3NvY19pZChzdHJ1Y3Qg
c2N0cF9pbnBjYiAqaW5wLCBzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IpCiB7CkBAIC00OTk3LDcgKzQ5
NTUsMTUgQEAgc2N0cF9hbG9jX2Fzc29jKHN0cnVjdCBzY3RwX2lucGNiICppbnAsIHN0cnVjdCBz
b2NrYWRkciAqZmlyc3RhZGRyLAogCQlpZiAoKG50b2hzKHNpbi0+c2luX3BvcnQpID09IDApIHx8
CiAJCSAgICAoc2luLT5zaW5fYWRkci5zX2FkZHIgPT0gSU5BRERSX0FOWSkgfHwKIAkJICAgIChz
aW4tPnNpbl9hZGRyLnNfYWRkciA9PSBJTkFERFJfQlJPQURDQVNUKSB8fAotCQkgICAgSU5fTVVM
VElDQVNUKG50b2hsKHNpbi0+c2luX2FkZHIuc19hZGRyKSkpIHsKKwkJICAgIElOX01VTFRJQ0FT
VChudG9obChzaW4tPnNpbl9hZGRyLnNfYWRkcikpIHx8CisjaWYgZGVmaW5lZChfX1VzZXJzcGFj
ZV9fKQorCQkgICAgKCgoaW5wLT5zY3RwX2ZsYWdzICYgU0NUUF9QQ0JfRkxBR1NfQk9VTkRfQ09O
TikgIT0gMCkgfHwKKwkJICAgICAoKChpbnAtPnNjdHBfZmxhZ3MgJiBTQ1RQX1BDQl9GTEFHU19C
T1VORF9WNikgIT0gMCkgJiYKKwkJICAgICAgKFNDVFBfSVBWNl9WNk9OTFkoaW5wKSAhPSAwKSkp
KSB7CisjZWxzZQorCQkgICAgKCgoaW5wLT5zY3RwX2ZsYWdzICYgU0NUUF9QQ0JfRkxBR1NfQk9V
TkRfVjYpICE9IDApICYmCisJCSAgICAgKFNDVFBfSVBWNl9WNk9OTFkoaW5wKSAhPSAwKSkpIHsK
KyNlbmRpZgogCQkJLyogSW52YWxpZCBhZGRyZXNzICovCiAJCQlTQ1RQX0lOUF9SVU5MT0NLKGlu
cCk7CiAJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwgTlVMTCwgU0NUUF9GUk9NX1ND
VFBfUENCLCBFSU5WQUwpOwpAQCAtNTAxNiw3ICs0OTgyLDggQEAgc2N0cF9hbG9jX2Fzc29jKHN0
cnVjdCBzY3RwX2lucGNiICppbnAsIHN0cnVjdCBzb2NrYWRkciAqZmlyc3RhZGRyLAogCQlzaW42
ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKilmaXJzdGFkZHI7CiAJCWlmICgobnRvaHMoc2luNi0+
c2luNl9wb3J0KSA9PSAwKSB8fAogCQkgICAgSU42X0lTX0FERFJfVU5TUEVDSUZJRUQoJnNpbjYt
PnNpbjZfYWRkcikgfHwKLQkJICAgIElONl9JU19BRERSX01VTFRJQ0FTVCgmc2luNi0+c2luNl9h
ZGRyKSkgeworCQkgICAgSU42X0lTX0FERFJfTVVMVElDQVNUKCZzaW42LT5zaW42X2FkZHIpIHx8
CisJCSAgICAoKGlucC0+c2N0cF9mbGFncyAmIFNDVFBfUENCX0ZMQUdTX0JPVU5EX1Y2KSA9PSAw
KSkgewogCQkJLyogSW52YWxpZCBhZGRyZXNzICovCiAJCQlTQ1RQX0lOUF9SVU5MT0NLKGlucCk7
CiAJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwgTlVMTCwgU0NUUF9GUk9NX1NDVFBf
UENCLCBFSU5WQUwpOwpAQCAtNTAzNCw3ICs1MDAxLDggQEAgc2N0cF9hbG9jX2Fzc29jKHN0cnVj
dCBzY3RwX2lucGNiICppbnAsIHN0cnVjdCBzb2NrYWRkciAqZmlyc3RhZGRyLAogCiAJCXNjb25u
ID0gKHN0cnVjdCBzb2NrYWRkcl9jb25uICopZmlyc3RhZGRyOwogCQlpZiAoKG50b2hzKHNjb25u
LT5zY29ubl9wb3J0KSA9PSAwKSB8fAotCQkgICAgKHNjb25uLT5zY29ubl9hZGRyID09IE5VTEwp
KSB7CisJCSAgICAoc2Nvbm4tPnNjb25uX2FkZHIgPT0gTlVMTCkgfHwKKwkJICAgICgoaW5wLT5z
Y3RwX2ZsYWdzICYgU0NUUF9QQ0JfRkxBR1NfQk9VTkRfQ09OTikgPT0gMCkpIHsKIAkJCS8qIElu
dmFsaWQgYWRkcmVzcyAqLwogCQkJU0NUUF9JTlBfUlVOTE9DSyhpbnApOwogCQkJU0NUUF9MVFJB
Q0VfRVJSX1JFVChpbnAsIE5VTEwsIE5VTEwsIFNDVFBfRlJPTV9TQ1RQX1BDQiwgRUlOVkFMKTsK
QEAgLTUxMTUsNyArNTA4Myw3IEBAIHNjdHBfYWxvY19hc3NvYyhzdHJ1Y3Qgc2N0cF9pbnBjYiAq
aW5wLCBzdHJ1Y3Qgc29ja2FkZHIgKmZpcnN0YWRkciwKIAlMSVNUX0lOU0VSVF9IRUFEKGhlYWQs
IHN0Y2IsIHNjdHBfYXNvY3MpOwogCVNDVFBfSU5QX0lORk9fV1VOTE9DSygpOwogCi0JaWYgKChl
cnIgPSBzY3RwX2FkZF9yZW1vdGVfYWRkcihzdGNiLCBmaXJzdGFkZHIsIE5VTEwsIHBvcnQsIFND
VFBfRE9fU0VUU0NPUEUsIFNDVFBfQUxMT0NfQVNPQykpKSB7CisJaWYgKHNjdHBfYWRkX3JlbW90
ZV9hZGRyKHN0Y2IsIGZpcnN0YWRkciwgTlVMTCwgcG9ydCwgU0NUUF9ET19TRVRTQ09QRSwgU0NU
UF9BTExPQ19BU09DKSkgewogCQkvKiBmYWlsdXJlLi4gbWVtb3J5IGVycm9yPyAqLwogCQlpZiAo
YXNvYy0+c3RybW91dCkgewogCQkJU0NUUF9GUkVFKGFzb2MtPnN0cm1vdXQsIFNDVFBfTV9TVFJN
Tyk7CkBAIC01MTYzLDcgKzUxMzEsNiBAQCBzY3RwX2Fsb2NfYXNzb2Moc3RydWN0IHNjdHBfaW5w
Y2IgKmlucCwgc3RydWN0IHNvY2thZGRyICpmaXJzdGFkZHIsCiAJcmV0dXJuIChzdGNiKTsKIH0K
IAotCiB2b2lkCiBzY3RwX3JlbW92ZV9uZXQoc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qg
c2N0cF9uZXRzICpuZXQpCiB7CkBAIC01MzE5LDcgKzUyODYsNiBAQCBzY3RwX2lzX2luX3RpbWV3
YWl0KHVpbnQzMl90IHRhZywgdWludDE2X3QgbHBvcnQsIHVpbnQxNl90IHJwb3J0KQogCXJldHVy
biAoZm91bmQpOwogfQogCi0KIHZvaWQKIHNjdHBfYWRkX3Z0YWdfdG9fdGltZXdhaXQodWludDMy
X3QgdGFnLCB1aW50MzJfdCB0aW1lLCB1aW50MTZfdCBscG9ydCwgdWludDE2X3QgcnBvcnQpCiB7
CkBAIC01OTc5LDggKzU5NDUsNiBAQCBzY3RwX2ZyZWVfYXNzb2Moc3RydWN0IHNjdHBfaW5wY2Ig
KmlucCwgc3RydWN0IHNjdHBfdGNiICpzdGNiLCBpbnQgZnJvbV9pbnBjYmZyZQogCXJldHVybiAo
MSk7CiB9CiAKLQotCiAvKgogICogZGV0ZXJtaW5lIGlmIGEgZGVzdGluYXRpb24gaXMgInJlYWNo
YWJsZSIgYmFzZWQgdXBvbiB0aGUgYWRkcmVzc2VzIGJvdW5kCiAgKiB0byB0aGUgY3VycmVudCBl
bmRwb2ludCAoZS5nLiBvbmx5IHY0IG9yIHY2IGN1cnJlbnRseSBib3VuZCkKQEAgLTYxNTAsNyAr
NjExNCw2IEBAIHNjdHBfYWRkX2xvY2FsX2FkZHJfZXAoc3RydWN0IHNjdHBfaW5wY2IgKmlucCwg
c3RydWN0IHNjdHBfaWZhICppZmEsIHVpbnQzMl90IGFjCiAJcmV0dXJuOwogfQogCi0KIC8qCiAg
KiBzZWxlY3QgYSBuZXcgKGhvcGVmdWxseSByZWFjaGFibGUpIGRlc3RpbmF0aW9uIG5ldCAoc2hv
dWxkIG9ubHkgYmUgdXNlZAogICogd2hlbiB3ZSBkZWxldGVkIGFuIGVwIGFkZHIgdGhhdCBpcyB0
aGUgb25seSB1c2FibGUgc291cmNlIGFkZHJlc3MgdG8gcmVhY2gKQEAgLTYxNzQsNyArNjEzNyw2
IEBAIHNjdHBfc2VsZWN0X3ByaW1hcnlfZGVzdGluYXRpb24oc3RydWN0IHNjdHBfdGNiICpzdGNi
KQogCS8qIEkgY2FuJ3QgdGhlcmUgZnJvbSBoZXJlISAuLi53ZSdyZSBnb25uYSBkaWUgc2hvcnRs
eS4uLiAqLwogfQogCi0KIC8qCiAgKiBEZWxldGUgdGhlIGFkZHJlc3MgZnJvbSB0aGUgZW5kcG9p
bnQgbG9jYWwgYWRkcmVzcyBsaXN0LiBUaGVyZSBpcyBub3RoaW5nCiAgKiB0byBiZSBkb25lIGlm
IHdlIGFyZSBib3VuZCB0byBhbGwgYWRkcmVzc2VzCkBAIC02NjE0LDcgKzY1NzYsNiBAQCBzY3Rw
X3BjYl9pbml0KHZvaWQpCiAjZW5kaWYKICNlbmRpZgogCi0KIAkvKiBpbml0IHRoZSBoYXNoIHRh
YmxlIG9mIGVuZHBvaW50cyAqLwogI2lmIGRlZmluZWQoX19GcmVlQlNEX18pICYmICFkZWZpbmVk
KF9fVXNlcnNwYWNlX18pCiAJVFVOQUJMRV9JTlRfRkVUQ0goIm5ldC5pbmV0LnNjdHAudGNiaGFz
aHNpemUiLCAmU0NUUF9CQVNFX1NZU0NUTChzY3RwX2hhc2h0YmxzaXplKSk7CkBAIC02NjI4LDgg
KzY1ODksNiBAQCBzY3RwX3BjYl9pbml0KHZvaWQpCiAJU0NUUF9CQVNFX0lORk8oc2N0cF90Y3Bl
cGhhc2gpID0gU0NUUF9IQVNIX0lOSVQoU0NUUF9CQVNFX1NZU0NUTChzY3RwX2hhc2h0YmxzaXpl
KSwKIAkJCQkJCQkmU0NUUF9CQVNFX0lORk8oaGFzaHRjcG1hcmspKTsKIAlTQ1RQX0JBU0VfSU5G
TyhoYXNodGJsc2l6ZSkgPSBTQ1RQX0JBU0VfU1lTQ1RMKHNjdHBfaGFzaHRibHNpemUpOwotCi0K
IAlTQ1RQX0JBU0VfSU5GTyhzY3RwX3ZyZmhhc2gpID0gU0NUUF9IQVNIX0lOSVQoU0NUUF9TSVpF
X09GX1ZSRl9IQVNILAogCQkJCQkJICAgICAgJlNDVFBfQkFTRV9JTkZPKGhhc2h2cmZtYXJrKSk7
CiAKQEAgLTY2NzQsNyArNjYzMyw2IEBAIHNjdHBfcGNiX2luaXQodm9pZCkKIAkJICAgICAgIHNp
emVvZihzdHJ1Y3Qgc2N0cF9hc2NvbmZfYWNrKSwKIAkJICAgICAgIChzY3RwX21heF9udW1iZXJf
b2ZfYXNzb2MgKiBTQ1RQX0JBU0VfU1lTQ1RMKHNjdHBfY2h1bmtzY2FsZSkpKTsKIAotCiAJLyog
TWFzdGVyIExvY2sgSU5JVCBmb3IgaW5mbyBzdHJ1Y3R1cmUgKi8KIAlTQ1RQX0lOUF9JTkZPX0xP
Q0tfSU5JVCgpOwogCVNDVFBfU1RBVExPR19JTklUX0xPQ0soKTsKQEAgLTY3NDYsNyArNjcwNCw3
IEBAIHNjdHBfcGNiX2luaXQodm9pZCkKICNlbmRpZgogI2lmIGRlZmluZWQoX19Vc2Vyc3BhY2Vf
XykKIAltYnVmX2luaXRpYWxpemUoTlVMTCk7Ci0gICAgLy8gV2ViS2l0IGNoYW5nZSwgdGhpcyBj
b25mbGljdHMgd2l0aCBhdG9taWNfaW5pdAorCS8vIFdlYktpdCBjaGFuZ2UsIHRoaXMgY29uZmxp
Y3RzIHdpdGggYXRvbWljX2luaXQKIAkvLyBhdG9taWNfaW5pdCgpOwogI2lmIGRlZmluZWQoSU5F
VCkgfHwgZGVmaW5lZChJTkVUNikKIAlpZiAoc3RhcnRfdGhyZWFkcykKQEAgLTY5OTYsNyArNjk1
NCw2IEBAIHJldHJ5OgogI2VuZGlmCiB9CiAKLQogaW50CiBzY3RwX2xvYWRfYWRkcmVzc2VzX2Zy
b21faW5pdChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIHN0cnVjdCBtYnVmICptLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCwgaW50IGxpbWl0LApAQCAtNzA3Myw2ICs3
MDMwLDcgQEAgc2N0cF9sb2FkX2FkZHJlc3Nlc19mcm9tX2luaXQoc3RydWN0IHNjdHBfdGNiICpz
dGNiLCBzdHJ1Y3QgbWJ1ZiAqbSwKIAlwZWVyX3N1cHBvcnRzX3Byc2N0cCA9IDA7CiAJcGVlcl9z
dXBwb3J0c19hdXRoID0gMDsKIAlwZWVyX3N1cHBvcnRzX2FzY29uZiA9IDA7CisJcGVlcl9zdXBw
b3J0c19hc2NvbmZfYWNrID0gMDsKIAlwZWVyX3N1cHBvcnRzX3JlY29uZmlnID0gMDsKIAlwZWVy
X3N1cHBvcnRzX25yc2FjayA9IDA7CiAJcGVlcl9zdXBwb3J0c19wa3Rkcm9wID0gMDsKQEAgLTc0
NTksNyArNzQxNyw2IEBAIHNjdHBfbG9hZF9hZGRyZXNzZXNfZnJvbV9pbml0KHN0cnVjdCBzY3Rw
X3RjYiAqc3RjYiwgc3RydWN0IG1idWYgKm0sCiAJCQkJZGVmYXVsdDoKIAkJCQkJLyogb25lIEkg
aGF2ZSBub3QgbGVhcm5lZCB5ZXQgKi8KIAkJCQkJYnJlYWs7Ci0KIAkJCQl9CiAJCQl9CiAJCX0g
ZWxzZSBpZiAocHR5cGUgPT0gU0NUUF9SQU5ET00pIHsKQEAgLTc1NDIsNyArNzQ5OSw2IEBAIHNj
dHBfbG9hZF9hZGRyZXNzZXNfZnJvbV9pbml0KHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0
IG1idWYgKm0sCiAJCQkJCXNhd19hc2NvbmYgPSAxOwogCQkJCWlmIChjaHVua3MtPmNodW5rX3R5
cGVzW2ldID09IFNDVFBfQVNDT05GX0FDSykKIAkJCQkJc2F3X2FzY29uZl9hY2sgPSAxOwotCiAJ
CQl9CiAJCQlnb3RfY2hrbGlzdCA9IDE7CiAJCX0gZWxzZSBpZiAoKHB0eXBlID09IFNDVFBfSEVB
UlRCRUFUX0lORk8pIHx8CkBAIC03NTU0LDcgKzc1MTAsNyBAQCBzY3RwX2xvYWRfYWRkcmVzc2Vz
X2Zyb21faW5pdChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIHN0cnVjdCBtYnVmICptLAogCQkJICAg
KHB0eXBlID09IFNDVFBfREVMX0lQX0FERFJFU1MpIHx8CiAJCQkgICAocHR5cGUgPT0gU0NUUF9F
UlJPUl9DQVVTRV9JTkQpIHx8CiAJCQkgICAocHR5cGUgPT0gU0NUUF9TVUNDRVNTX1JFUE9SVCkp
IHsKLQkJCS8qIGRvbid0IGNhcmUgKi8gOworCQkJLyogZG9uJ3QgY2FyZSAqLwogCQl9IGVsc2Ug
ewogCQkJaWYgKChwdHlwZSAmIDB4ODAwMCkgPT0gMHgwMDAwKSB7CiAJCQkJLyoKQEAgLTc4MTUs
NyArNzc3MSw3IEBAIHNjdHBfZHJhaW5fbWJ1ZnMoc3RydWN0IHNjdHBfdGNiICpzdGNiKQogCWZv
ciAoc3RybWF0ID0gMDsgc3RybWF0IDwgYXNvYy0+c3RyZWFtaW5jbnQ7IHN0cm1hdCsrKSB7CiAJ
CVRBSUxRX0ZPUkVBQ0hfU0FGRShjb250cm9sLCAmYXNvYy0+c3RybWluW3N0cm1hdF0uaW5xdWV1
ZSwgbmV4dF9pbnN0cm0sIG5jb250cm9sKSB7CiAjaWZkZWYgSU5WQVJJQU5UUwotCQkJaWYgKGNv
bnRyb2wtPm9uX3N0cm1fcSAhPSBTQ1RQX09OX09SREVSRUQgKSB7CisJCQlpZiAoY29udHJvbC0+
b25fc3RybV9xICE9IFNDVFBfT05fT1JERVJFRCkgewogCQkJCXBhbmljKCJIdWggY29udHJvbDog
JXAgb25fcTogJWQgLS0gbm90IG9yZGVyZWQ/IiwKIAkJCQkgICAgICBjb250cm9sLCBjb250cm9s
LT5vbl9zdHJtX3EpOwogCQkJfQpAQCAtNzg3NSw3ICs3ODMxLDcgQEAgc2N0cF9kcmFpbl9tYnVm
cyhzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IpCiAJCX0KIAkJVEFJTFFfRk9SRUFDSF9TQUZFKGNvbnRy
b2wsICZhc29jLT5zdHJtaW5bc3RybWF0XS51bm9faW5xdWV1ZSwgbmV4dF9pbnN0cm0sIG5jb250
cm9sKSB7CiAjaWZkZWYgSU5WQVJJQU5UUwotCQkJaWYgKGNvbnRyb2wtPm9uX3N0cm1fcSAhPSBT
Q1RQX09OX1VOT1JERVJFRCApIHsKKwkJCWlmIChjb250cm9sLT5vbl9zdHJtX3EgIT0gU0NUUF9P
Tl9VTk9SREVSRUQpIHsKIAkJCQlwYW5pYygiSHVoIGNvbnRyb2w6ICVwIG9uX3E6ICVkIC0tIG5v
dCB1bm9yZGVyZWQ/IiwKIAkJCQkgICAgICBjb250cm9sLCBjb250cm9sLT5vbl9zdHJtX3EpOwog
CQkJfQpAQCAtODExMyw3ICs4MDY5LDYgQEAgc2N0cF9pbml0aWF0ZV9pdGVyYXRvcihpbnBfZnVu
YyBpbnBmLAogCQl9CiAJCVNDVFBfSU5QX0lORk9fUlVOTE9DSygpOwogCQlpdC0+aXRlcmF0b3Jf
ZmxhZ3MgPSBTQ1RQX0lURVJBVE9SX0RPX0FMTF9JTlA7Ci0KIAl9CiAJU0NUUF9JUElfSVRFUkFU
T1JfV1FfTE9DSygpOwogCWlmIChTQ1RQX0JBU0VfVkFSKHNjdHBfcGNiX2luaXRpYWxpemVkKSA9
PSAwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9wY2Iu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0
cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3BjYi5oCmluZGV4IDczYjMyNTQ5
YjBhZDk3ZDliOGRhNTI4ZGU2OGRjYWUyMjRkZTNlOTIuLjAzODI0MzBkMjJkYTUzNGRiNmRlNDFj
N2I1MTUwNzU5ZDU4MDk0NmUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5l
dC9zY3RwX3BjYi5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3BjYi5o
CkBAIC0zNCw3ICszNCw3IEBACiAKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5l
ZChfX1VzZXJzcGFjZV9fKQogI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotX19GQlNESUQoIiRGcmVl
QlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfcGNiLmggMzYyMTA2IDIwMjAtMDYtMTIgMTY6MzE6
MTNaIHR1ZXhlbiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0
cF9wY2IuaCAzNjUwNzEgMjAyMC0wOS0wMSAyMToxOToxNFogbWpnICQiKTsKICNlbmRpZgogCiAj
aWZuZGVmIF9ORVRJTkVUX1NDVFBfUENCX0hfCkBAIC0xNDcsNyArMTQ3LDYgQEAgc3RydWN0IHNj
dHBfdGFnYmxvY2sgewogCXN0cnVjdCBzY3RwX3RpbWV3YWl0IHZ0YWdfYmxvY2tbU0NUUF9OVU1C
RVJfSU5fVlRBR19CTE9DS107CiB9OwogCi0KIHN0cnVjdCBzY3RwX2VwaW5mbyB7CiAjaWYgZGVm
aW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNpZmRlZiBJTkVU
CkBAIC0yNzcsNyArMjc2LDYgQEAgc3RydWN0IHNjdHBfZXBpbmZvIHsKICNlbmRpZgogfTsKIAot
CiBzdHJ1Y3Qgc2N0cF9iYXNlX2luZm8gewogCS8qIEFsbCBzdGF0aWMgc3RydWN0dXJlcyB0aGF0
CiAJICogYW5jaG9yIHRoZSBzeXN0ZW0gbXVzdCBiZSBoZXJlLgpAQCAtNDQwLDcgKzQzOCw2IEBA
IHN0cnVjdCBzY3RwX3BjYnRzbl9ybG9nIHsKIH07CiAjZGVmaW5lIFNDVFBfUkVBRF9MT0dfU0la
RSAxMzUJLyogd2UgY2hvb3NlIHRoZSBudW1iZXIgdG8gbWFrZSBhIHBjYiBhIHBhZ2UgKi8KIAot
CiBzdHJ1Y3Qgc2N0cF9pbnBjYiB7CiAJLyotCiAJICogcHV0IGFuIGlucGNiIGluIGZyb250IG9m
IGl0IGFsbCwga2luZCBvZiBhIHdhc3RlIGJ1dCB3ZSBuZWVkIHRvCkBAIC00NTEsNyArNDQ4LDYg
QEAgc3RydWN0IHNjdHBfaW5wY2IgewogCQljaGFyIGFsaWduWyhzaXplb2Yoc3RydWN0IGlucGNi
KSArIFNDVFBfQUxJR05NMSkgJgogCQkgICAgICAgIH5TQ1RQX0FMSUdOTTFdOwogCX0gICAgIGlw
X2lucDsKLQogI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9f
KQogCS8qIGxlYXZlIHNvbWUgc3BhY2UgaW4gY2FzZSBpMzg2IGlucGNiIGlzIGJpZ2dlciB0aGFu
IHBwYyAqLwogCXVpbnQ4X3QJCXBhZGRpbmdbMTI4XTsKQEAgLTQ2MSw3ICs0NTcsNyBAQCBzdHJ1
Y3Qgc2N0cF9pbnBjYiB7CiAJc3RydWN0IHNjdHBfcmVhZGhlYWQgcmVhZF9xdWV1ZTsKIAogCUxJ
U1RfRU5UUlkoc2N0cF9pbnBjYikgc2N0cF9saXN0OwkvKiBsaXN0cyBhbGwgZW5kcG9pbnRzICov
Ci0gICAgICAgIC8qIGhhc2ggb2YgYWxsIGVuZHBvaW50cyBmb3IgbW9kZWwgKi8KKwkvKiBoYXNo
IG9mIGFsbCBlbmRwb2ludHMgZm9yIG1vZGVsICovCiAJTElTVF9FTlRSWShzY3RwX2lucGNiKSBz
Y3RwX2hhc2g7CiAJLyogY291bnQgb2YgbG9jYWwgYWRkcmVzc2VzIGJvdW5kLCAwIGlmIGJvdW5k
IGFsbCAqLwogCWludCBsYWRkcl9jb3VudDsKQEAgLTY0MCwxMSArNjM2LDggQEAgc3RydWN0IHNj
dHBfdGNiIHsKICNlbmRpZgogfTsKIAotCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRl
ZmluZWQoX19Vc2Vyc3BhY2VfXykKLQogI2luY2x1ZGUgPG5ldGluZXQvc2N0cF9sb2NrX2JzZC5o
PgotCiAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykK
IC8qCiAgKiBBcHBsZSBNYWNPUyBYIDEwLjQgIlRpZ2VyIgpAQCAtNjc4LDcgKzY3MSw3IEBAIHN0
cnVjdCBzY3RwX3RjYiB7CiAgKiB0aGUgcmVhbCBkZWZpbml0aW9uLgogICovCiAjaWYgZGVmaW5l
ZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKLVZORVRfREVDTEFSRShz
dHJ1Y3Qgc2N0cF9iYXNlX2luZm8sIHN5c3RlbV9iYXNlX2luZm8pIDsKK1ZORVRfREVDTEFSRShz
dHJ1Y3Qgc2N0cF9iYXNlX2luZm8sIHN5c3RlbV9iYXNlX2luZm8pOwogI2Vsc2UKIGV4dGVybiBz
dHJ1Y3Qgc2N0cF9iYXNlX2luZm8gc3lzdGVtX2Jhc2VfaW5mbzsKICNlbmRpZgpAQCAtNzIwLDEy
ICs3MTMsOSBAQCB2b2lkIHNjdHBfdXBkYXRlX2lmbl9tdHUodWludDMyX3QgaWZuX2luZGV4LCB1
aW50MzJfdCBtdHUpOwogdm9pZCBzY3RwX2ZyZWVfaWZuKHN0cnVjdCBzY3RwX2lmbiAqc2N0cF9p
Zm5wKTsKIHZvaWQgc2N0cF9mcmVlX2lmYShzdHJ1Y3Qgc2N0cF9pZmEgKnNjdHBfaWZhcCk7CiAK
LQogdm9pZCBzY3RwX2RlbF9hZGRyX2Zyb21fdnJmKHVpbnQzMl90IHZyZmlkLCBzdHJ1Y3Qgc29j
a2FkZHIgKmFkZHIsCiAJCQkgICAgdWludDMyX3QgaWZuX2luZGV4LCBjb25zdCBjaGFyICppZl9u
YW1lKTsKIAotCi0KIHN0cnVjdCBzY3RwX25ldHMgKnNjdHBfZmluZG5ldChzdHJ1Y3Qgc2N0cF90
Y2IgKiwgc3RydWN0IHNvY2thZGRyICopOwogCiBzdHJ1Y3Qgc2N0cF9pbnBjYiAqc2N0cF9wY2Jf
ZmluZGVwKHN0cnVjdCBzb2NrYWRkciAqLCBpbnQsIGludCwgdWludDMyX3QpOwpAQCAtODA2LDcg
Kzc5Niw2IEBAIHNjdHBfYWxvY19hc3NvYyhzdHJ1Y3Qgc2N0cF9pbnBjYiAqLCBzdHJ1Y3Qgc29j
a2FkZHIgKiwKIAogaW50IHNjdHBfZnJlZV9hc3NvYyhzdHJ1Y3Qgc2N0cF9pbnBjYiAqLCBzdHJ1
Y3Qgc2N0cF90Y2IgKiwgaW50LCBpbnQpOwogCi0KIHZvaWQgc2N0cF9kZWxldGVfZnJvbV90aW1l
d2FpdCh1aW50MzJfdCwgdWludDE2X3QsIHVpbnQxNl90KTsKIAogaW50IHNjdHBfaXNfaW5fdGlt
ZXdhaXQodWludDMyX3QgdGFnLCB1aW50MTZfdCBscG9ydCwgdWludDE2X3QgcnBvcnQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91
c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfc3NfZnVuY3Rpb25zLmMg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAv
dXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9zc19mdW5jdGlvbnMuYwppbmRleCBm
YWQ0MjQ2N2MyMGM5NzU1YjY5MjdlYzM2NWY5NTI3YTkyMTcyY2I5Li40MzFjYmYyM2FlODRmOGY1
ZjFlZDFmZmNlY2YxZDBmZWFlN2RkZmEwIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGli
L25ldGluZXQvc2N0cF9zc19mdW5jdGlvbnMuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25l
dGluZXQvc2N0cF9zc19mdW5jdGlvbnMuYwpAQCAtMzAsNyArMzAsNyBAQAogCiAjaWYgZGVmaW5l
ZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNpbmNsdWRlIDxzeXMv
Y2RlZnMuaD4KLV9fRkJTRElEKCIkRnJlZUJTRDogaGVhZC9zeXMvbmV0aW5ldC9zY3RwX3NzX2Z1
bmN0aW9ucy5jIDM2MjE3MyAyMDIwLTA2LTE0IDA5OjUwOjAwWiB0dWV4ZW4gJCIpOworX19GQlNE
SUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfc3NfZnVuY3Rpb25zLmMgMzY1MDcx
IDIwMjAtMDktMDEgMjE6MTk6MTRaIG1qZyAkIik7CiAjZW5kaWYKIAogI2luY2x1ZGUgPG5ldGlu
ZXQvc2N0cF9wY2IuaD4KQEAgLTE4NSw3ICsxODUsNiBAQCBzY3RwX3NzX2RlZmF1bHRfcmVtb3Zl
KHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAJ
cmV0dXJuOwogfQogCi0KIHN0YXRpYyBzdHJ1Y3Qgc2N0cF9zdHJlYW1fb3V0ICoKIHNjdHBfc3Nf
ZGVmYXVsdF9zZWxlY3Qoc3RydWN0IHNjdHBfdGNiICpzdGNiIFNDVFBfVU5VU0VELCBzdHJ1Y3Qg
c2N0cF9uZXRzICpuZXQsCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzY3RwX2Fzc29j
aWF0aW9uICphc29jKQpAQCAtMzk2LDcgKzM5NSw2IEBAIHJycF9hZ2FpbjoKIAlyZXR1cm47CiB9
CiAKLQogLyoKICAqIFByaW9yaXR5IGFsZ29yaXRobS4KICAqIEFsd2F5cyBwcmVmZXJzIHN0cmVh
bXMgYmFzZWQgb24gdGhlaXIgcHJpb3JpdHkgaWQuCkBAIC00MTgsNyArNDE2LDYgQEAgc2N0cF9z
c19wcmlvX2NsZWFyKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfYXNzb2NpYXRp
b24gKmFzb2MsCiAJCVRBSUxRX1JFTU9WRSgmYXNvYy0+c3NfZGF0YS5vdXQud2hlZWwsIHN0cnEs
IHNzX3BhcmFtcy5wcmlvLm5leHRfc3Bva2UpOwogCQlzdHJxLT5zc19wYXJhbXMucHJpby5uZXh0
X3Nwb2tlLnRxZV9uZXh0ID0gTlVMTDsKIAkJc3RycS0+c3NfcGFyYW1zLnByaW8ubmV4dF9zcG9r
ZS50cWVfcHJldiA9IE5VTEw7Ci0KIAl9CiAJYXNvYy0+c3NfZGF0YS5sYXN0X291dF9zdHJlYW0g
PSBOVUxMOwogCWlmIChob2xkc19sb2NrID09IDApIHsKQEAgLTkwMyw3ICs5MDAsNiBAQCBzY3Rw
X3NzX2ZjZnNfcmVtb3ZlKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgc3RydWN0IHNjdHBfYXNzb2Np
YXRpb24gKmFzb2MsCiAJcmV0dXJuOwogfQogCi0KIHN0YXRpYyBzdHJ1Y3Qgc2N0cF9zdHJlYW1f
b3V0ICoKIHNjdHBfc3NfZmNmc19zZWxlY3Qoc3RydWN0IHNjdHBfdGNiICpzdGNiIFNDVFBfVU5V
U0VELCBzdHJ1Y3Qgc2N0cF9uZXRzICpuZXQsCiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBz
Y3RwX2Fzc29jaWF0aW9uICphc29jKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9u
ZXRpbmV0L3NjdHBfc3RydWN0cy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBf
c3RydWN0cy5oCmluZGV4IDFmNWYxNTNlOTg3N2RkZjQ3YmRiMWUzNzQzMzE5ZTVlYTc2ZTc0ODgu
LjcwOGFiNzAyZjExOGUyY2ViMWFmNGJkNTFjNzEzNjZiOTVmNTRkNjMgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3Jz
Y3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3N0cnVjdHMuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91
c3JzY3RwbGliL25ldGluZXQvc2N0cF9zdHJ1Y3RzLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2lm
IGRlZmluZWQoX19GcmVlQlNEX18pICYmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAjaW5jbHVk
ZSA8c3lzL2NkZWZzLmg+Ci1fX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0
cF9zdHJ1Y3RzLmggMzY0MjY4IDIwMjAtMDgtMTYgMTE6NTA6MzdaIHR1ZXhlbiAkIik7CitfX0ZC
U0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF9zdHJ1Y3RzLmggMzY1MDcxIDIw
MjAtMDktMDEgMjE6MTk6MTRaIG1qZyAkIik7CiAjZW5kaWYKIAogI2lmbmRlZiBfTkVUSU5FVF9T
Q1RQX1NUUlVDVFNfSF8KQEAgLTY1LDcgKzY1LDYgQEAgc3RydWN0IHNjdHBfdGltZXIgewogCXVp
bnQzMl90IHN0b3BwZWRfZnJvbTsKIH07CiAKLQogc3RydWN0IHNjdHBfZm9vX3N0dWZmIHsKIAlz
dHJ1Y3Qgc2N0cF9pbnBjYiAqaW5wOwogCXVpbnQzMl90ICAgICAgICBsaW5lbm87CkBAIC03Myw3
ICs3Miw2IEBAIHN0cnVjdCBzY3RwX2Zvb19zdHVmZiB7CiAJaW50ICAgICAgICAgICAgIHVwZG93
bjsKIH07CiAKLQogLyoKICAqIFRoaXMgaXMgdGhlIGluZm9ybWF0aW9uIHdlIHRyYWNrIG9uIGVh
Y2ggaW50ZXJmYWNlIHRoYXQgd2Uga25vdyBhYm91dCBmcm9tCiAgKiB0aGUgZGlzdGFudCBlbmQu
CkBAIC0xNjMsNyArMTYxLDYgQEAgc3RydWN0IHNjdHBfaXRlcmF0b3IgewogI2RlZmluZSBTQ1RQ
X0lURVJBVE9SX0RPX0FMTF9JTlAJMHgwMDAwMDAwMQogI2RlZmluZSBTQ1RQX0lURVJBVE9SX0RP
X1NJTkdMRV9JTlAJMHgwMDAwMDAwMgogCi0KIFRBSUxRX0hFQUQoc2N0cGl0ZXJhdG9ycywgc2N0
cF9pdGVyYXRvcik7CiAKIHN0cnVjdCBzY3RwX2NvcHlfYWxsIHsKQEAgLTI5Myw3ICsyOTAsNiBA
QCBzdHJ1Y3QgcnRjY19jYyB7CiAJdWludDhfdCAgbGFzdF9pbnN0X2luZDsgLyogTGFzdCBzYXZl
ZCBpbnN0IGluZGljYXRpb24gKi8KIH07CiAKLQogc3RydWN0IHNjdHBfbmV0cyB7CiAJVEFJTFFf
RU5UUlkoc2N0cF9uZXRzKSBzY3RwX25leHQ7CS8qIG5leHQgbGluayAqLwogCkBAIC00MzYsNyAr
NDMyLDYgQEAgc3RydWN0IHNjdHBfbmV0cyB7CiAjZW5kaWYKIH07CiAKLQogc3RydWN0IHNjdHBf
ZGF0YV9jaHVua3JlYyB7CiAJdWludDMyX3QgdHNuOwkJLyogdGhlIFRTTiBvZiB0aGlzIHRyYW5z
bWl0ICovCiAJdWludDMyX3QgbWlkOwkJLyogdGhlIG1lc3NhZ2UgaWRlbnRpZmllciBvZiB0aGlz
IHRyYW5zbWl0ICovCkBAIC00NzUsNyArNDcwLDYgQEAgc3RydWN0IGNoa19pZCB7CiAJdWludDhf
dCBjYW5fdGFrZV9kYXRhOwogfTsKIAotCiBzdHJ1Y3Qgc2N0cF90bWl0X2NodW5rIHsKIAl1bmlv
biB7CiAJCXN0cnVjdCBzY3RwX2RhdGFfY2h1bmtyZWMgZGF0YTsKQEAgLTYwNCw3ICs1OTgsNiBA
QCBzdHJ1Y3Qgc2N0cF9zdHJlYW1faW4gewogVEFJTFFfSEVBRChzY3Rwd2hlZWxfbGlzdGhlYWQs
IHNjdHBfc3RyZWFtX291dCk7CiBUQUlMUV9IRUFEKHNjdHBsaXN0X2xpc3RoZWFkLCBzY3RwX3N0
cmVhbV9xdWV1ZV9wZW5kaW5nKTsKIAotCiAvKiBSb3VuZC1yb2JpbiBzY2hlZHVsZXJzICovCiBz
dHJ1Y3Qgc3NfcnIgewogCS8qIG5leHQgbGluayBpbiB3aGVlbCAqLwpAQCAtOTIxLDcgKzkxNCw2
IEBAIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uIHsKIAkvKiBsYXN0IHBsYWNlIEkgZ290IGEgY29u
dHJvbCBmcm9tICovCiAJc3RydWN0IHNjdHBfbmV0cyAqbGFzdF9jb250cm9sX2NodW5rX2Zyb207
CiAKLQogCS8qCiAJICogd2FpdCB0byB0aGUgcG9pbnQgdGhlIGN1bS1hY2sgcGFzc2VzIHJlcS0+
c2VuZF9yZXNldF9hdF90c24gZm9yCiAJICogYW55IHJlcSBvbiB0aGUgbGlzdC4KQEAgLTk4NSw3
ICs5NzcsNiBAQCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiB7CiAJLyogT3JpZ2luYWwgc2VxIG51
bWJlciBJIHVzZWQgPz9xdWVzdGlvbmFibGUgdG8ga2VlcD8/ICovCiAJdWludDMyX3QgaW5pdF9z
ZXFfbnVtYmVyOwogCi0KIAkvKiBUaGUgQWR2YW5jZWQgUGVlciBBY2sgUG9pbnQsIGFzIHJlcXVp
cmVkIGJ5IHRoZSBQUi1TQ1RQICovCiAJLyogKEExIGluIFNlY3Rpb24gNC4yKSAqLwogCXVpbnQz
Ml90IGFkdmFuY2VkX3BlZXJfYWNrX3BvaW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0
cGxpYi9uZXRpbmV0L3NjdHBfc3lzY3RsLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQv
c2N0cF9zeXNjdGwuYwppbmRleCA5MTA2ODExOGUxNzY4OWE0YTQ2MGY0YzRhZTk2ZjUzODdiMjY1
MzUzLi5iYjQ5ZTE3Mzg1ZTdkMDg1YTNmNTUzODdmNTQ4Mjk3Y2Y1NDI3ODc1IDEwMDc1NQotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAv
dXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9zeXNjdGwuYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxp
Yi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9zeXNjdGwuYwpAQCAtMzQsNyArMzQsNyBAQAogCiAj
aWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNpbmNs
dWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJlZUJTRDogaGVhZC9zeXMvbmV0aW5ldC9z
Y3RwX3N5c2N0bC5jIDM2MTkzNCAyMDIwLTA2LTA4IDIwOjIzOjIwWiB0dWV4ZW4gJCIpOworX19G
QlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfc3lzY3RsLmMgMzY1MDcxIDIw
MjAtMDktMDEgMjE6MTk6MTRaIG1qZyAkIik7CiAjZW5kaWYKIAogI2luY2x1ZGUgPG5ldGluZXQv
c2N0cF9vcy5oPgpAQCAtMTc1LDggKzE3NSw4IEBAIHNjdHBfaW5pdF9zeXNjdGxzKCkKIAlTQ1RQ
X0JBU0VfU1lTQ1RMKHNjdHBfb3V0cHV0X3VubG9ja2VkKSA9IFNDVFBDVExfT1VUUFVUX1VOTE9D
S0VEX0RFRkFVTFQ7CiAjZW5kaWYKIH0KLQogI2lmIGRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5l
ZChfX1VzZXJzcGFjZV9fKQorCiB2b2lkCiBzY3RwX2ZpbmlzaF9zeXNjdGxzKCkKIHsKQEAgLTcy
Nyw4ICs3MjcsOCBAQCBzY3RwX3N5c2N0bF9oYW5kbGVfdWRwX3R1bm5lbGluZyhTWVNDVExfSEFO
RExFUl9BUkdTKQogCX0KIAlyZXR1cm4gKGVycm9yKTsKIH0KLQogI2lmIGRlZmluZWQoX19BUFBM
RV9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQorCiBpbnQgc2N0cF9pc192bXdhcmVfaW50
ZXJmYWNlKHN0cnVjdCBpZm5ldCAqKTsKIAogc3RhdGljIGludApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBs
aWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfc3lzY3RsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGli
L25ldGluZXQvc2N0cF9zeXNjdGwuaAppbmRleCBlYjg4ODMzOGNhODY2MjA2MTE2MGQ5MGZhYmJj
OTEwYTkwN2E4MTlkLi4wMDZhMTFmMzFkNjVlNTEzZmFhM2YyMzhlZTUwNGUzOGI5NDI3MDBmIDEw
MDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9zeXNjdGwuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAv
dXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF9zeXNjdGwuaApAQCAtMzQsNyArMzQs
NyBAQAogCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2Vf
XykKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJlZUJTRDogaGVhZC9zeXMv
bmV0aW5ldC9zY3RwX3N5c2N0bC5oIDM2MTg5NSAyMDIwLTA2LTA3IDE0OjM5OjIwWiB0dWV4ZW4g
JCIpOworX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfc3lzY3RsLmgg
MzY2NzUwIDIwMjAtMTAtMTYgMTA6NDQ6NDhaIHR1ZXhlbiAkIik7CiAjZW5kaWYKIAogI2lmbmRl
ZiBfTkVUSU5FVF9TQ1RQX1NZU0NUTF9IXwpAQCAtMjQxLDcgKzI0MSw2IEBAIHN0cnVjdCBzY3Rw
X3N5c2N0bCB7CiAjZGVmaW5lIFNDVFBDVExfRlJNQVhCVVJTVF9NQVgJCTB4RkZGRkZGRkYKICNk
ZWZpbmUgU0NUUENUTF9GUk1BWEJVUlNUX0RFRkFVTFQJU0NUUF9ERUZfRlJNQVhfQlVSU1QKIAot
CiAvKiBtYXhjaHVua3M6IERlZmF1bHQgbWF4IGNodW5rcyBvbiBxdWV1ZSBwZXIgYXNvYyAqLwog
I2RlZmluZSBTQ1RQQ1RMX01BWENIVU5LU19ERVNDCQkiRGVmYXVsdCBtYXggY2h1bmtzIG9uIHF1
ZXVlIHBlciBhc29jIgogI2RlZmluZSBTQ1RQQ1RMX01BWENIVU5LU19NSU4JCTAKQEAgLTM0NCwx
MCArMzQzLDEwIEBAIHN0cnVjdCBzY3RwX3N5c2N0bCB7CiAjZGVmaW5lIFNDVFBDVExfSU5JVF9S
VE9fTUFYX01BWAkweEZGRkZGRkZGCiAjZGVmaW5lIFNDVFBDVExfSU5JVF9SVE9fTUFYX0RFRkFV
TFQJU0NUUF9SVE9fVVBQRVJfQk9VTkQKIAotLyogdmFsaWRfY29va2llX2xpZmU6IERlZmF1bHQg
Y29va2llIGxpZmV0aW1lIGluIHNlYyAqLwotI2RlZmluZSBTQ1RQQ1RMX1ZBTElEX0NPT0tJRV9M
SUZFX0RFU0MJIkRlZmF1bHQgY29va2llIGxpZmV0aW1lIGluIHNlY29uZHMiCi0jZGVmaW5lIFND
VFBDVExfVkFMSURfQ09PS0lFX0xJRkVfTUlOCTAKLSNkZWZpbmUgU0NUUENUTF9WQUxJRF9DT09L
SUVfTElGRV9NQVgJMHhGRkZGRkZGRgorLyogdmFsaWRfY29va2llX2xpZmU6IERlZmF1bHQgY29v
a2llIGxpZmV0aW1lIGluIG1zICovCisjZGVmaW5lIFNDVFBDVExfVkFMSURfQ09PS0lFX0xJRkVf
REVTQwkJIkRlZmF1bHQgY29va2llIGxpZmV0aW1lIGluIG1zIgorI2RlZmluZSBTQ1RQQ1RMX1ZB
TElEX0NPT0tJRV9MSUZFX01JTgkJU0NUUF9NSU5fQ09PS0lFX0xJRkUKKyNkZWZpbmUgU0NUUENU
TF9WQUxJRF9DT09LSUVfTElGRV9NQVgJCVNDVFBfTUFYX0NPT0tJRV9MSUZFCiAjZGVmaW5lIFND
VFBDVExfVkFMSURfQ09PS0lFX0xJRkVfREVGQVVMVAlTQ1RQX0RFRkFVTFRfQ09PS0lFX0xJRkUK
IAogLyogaW5pdF9ydHhfbWF4OiBEZWZhdWx0IG1heGltdW0gbnVtYmVyIG9mIHJldHJhbnNtaXNz
aW9uIGZvciBJTklUIGNodW5rcyAqLwpAQCAtNTk1LDE2ICs1OTQsMTIgQEAgc3RydWN0IHNjdHBf
c3lzY3RsIHsKICNkZWZpbmUgU0NUUENUTF9JR05PUkVfVk1XQVJFX0lOVEVSRkFDRVNfTUlOCQkw
CiAjZGVmaW5lIFNDVFBDVExfSUdOT1JFX1ZNV0FSRV9JTlRFUkZBQ0VTX01BWAkJMQogI2RlZmlu
ZSBTQ1RQQ1RMX0lHTk9SRV9WTVdBUkVfSU5URVJGQUNFU19ERUZBVUxUCVNDVFBDVExfSUdOT1JF
X1ZNV0FSRV9JTlRFUkZBQ0VTX01BWAotI2VuZGlmCiAKLSNpZiBkZWZpbmVkKF9fQVBQTEVfXykg
JiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNkZWZpbmUgU0NUUENUTF9PVVRQVVRfVU5MT0NL
RURfREVTQwkiVW5sb2NrIHNvY2tldCB3aGVuIHNlbmRpbmcgcGFja2V0cyBkb3duIHRvIElQIgog
I2RlZmluZSBTQ1RQQ1RMX09VVFBVVF9VTkxPQ0tFRF9NSU4JMAogI2RlZmluZSBTQ1RQQ1RMX09V
VFBVVF9VTkxPQ0tFRF9NQVgJMQogI2RlZmluZSBTQ1RQQ1RMX09VVFBVVF9VTkxPQ0tFRF9ERUZB
VUxUCVNDVFBDVExfT1VUUFVUX1VOTE9DS0VEX01JTgotI2VuZGlmCiAKLSNpZiBkZWZpbmVkKF9f
QVBQTEVfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNkZWZpbmUJU0NUUENUTF9BRERS
X1dBVENIRE9HX0xJTUlUX0RFU0MJIkFkZHJlc3Mgd2F0Y2hkb2cgbGltaXQiCiAjZGVmaW5lCVND
VFBDVExfQUREUl9XQVRDSERPR19MSU1JVF9NSU4JCTAKICNkZWZpbmUJU0NUUENUTF9BRERSX1dB
VENIRE9HX0xJTUlUX01BWAkJMHhGRkZGRkZGRgpAQCAtNjE0LDggKzYwOSw4IEBAIHN0cnVjdCBz
Y3RwX3N5c2N0bCB7CiAjZGVmaW5lCVNDVFBDVExfVlRBR19XQVRDSERPR19MSU1JVF9NSU4JCTAK
ICNkZWZpbmUJU0NUUENUTF9WVEFHX1dBVENIRE9HX0xJTUlUX01BWAkJMHhGRkZGRkZGRgogI2Rl
ZmluZQlTQ1RQQ1RMX1ZUQUdfV0FUQ0hET0dfTElNSVRfREVGQVVMVAlTQ1RQQ1RMX1ZUQUdfV0FU
Q0hET0dfTElNSVRfTUlOCi0jZW5kaWYKIAorI2VuZGlmCiAjaWYgZGVmaW5lZChfS0VSTkVMKSB8
fCBkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVm
aW5lZChfX0FQUExFX18pIHx8IGRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNpZiBkZWZpbmVkKFNZ
U0NUTF9ERUNMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBf
dGltZXIuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
dXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3RpbWVyLmMKaW5kZXgg
YWQwNjJiMzVlZWEwMWM0NjEyMTM3MGQ2YmY0YzZiZDRiMTY5MzExYi4uYTBjYTRhYWJmNDc1MmRl
ZTVkZGU4N2ZlNmY4ODgyNmY2Mzk4ZmRiYyAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxp
Yi9uZXRpbmV0L3NjdHBfdGltZXIuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQv
c2N0cF90aW1lci5jCkBAIC0zNCw3ICszNCw3IEBACiAKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9f
KSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotX19G
QlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfdGltZXIuYyAzNjIwNTQgMjAy
MC0wNi0xMSAxMzozNDowOVogdHVleGVuICQiKTsKK19fRkJTRElEKCIkRnJlZUJTRDogaGVhZC9z
eXMvbmV0aW5ldC9zY3RwX3RpbWVyLmMgMzY1MDcxIDIwMjAtMDktMDEgMjE6MTk6MTRaIG1qZyAk
Iik7CiAjZW5kaWYKIAogI2RlZmluZSBfSVBfVkhMCkBAIC00OTksNyArNDk5LDYgQEAgc2N0cF9t
YXJrX2FsbF9mb3JfcmVzZW5kKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAl1aW50MzJfdCB0c25s
YXN0LCB0c25maXJzdDsKIAlpbnQgcmVjb3ZlcnlfY250ID0gMDsKIAotCiAJLyogbm9uZSBpbiBm
bGlnaHQgbm93ICovCiAJYXVkaXRfdGYgPSAwOwogCWZpciA9IDA7CkBAIC04MTAsNyArODA5LDYg
QEAgc2N0cF9tYXJrX2FsbF9mb3JfcmVzZW5kKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAlyZXR1
cm4gKDApOwogfQogCi0KIGludAogc2N0cF90M3J4dF90aW1lcihzdHJ1Y3Qgc2N0cF9pbnBjYiAq
aW5wLAogICAgIHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3Vz
cnNjdHBsaWIvbmV0aW5ldC9zY3RwX3RpbWVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGlu
ZXQvc2N0cF90aW1lci5oCmluZGV4IGVlMWM0OTMwODFlZTQ2NDhmOGQ1Mzg3YjQ1ZWFkMGY4ZTIw
ZmE0ZDcuLjhjZmJiY2E1ZGExYzkyNDNlMDYxNTFlODA1ZjRkZjAzYWRiOGQ0ZTAgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0
cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3RpbWVyLmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBs
aWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfdGltZXIuaApAQCAtMzQsNyArMzQsNyBAQAogCiAj
aWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNpbmNs
dWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJlZUJTRDogaGVhZC9zeXMvbmV0aW5ldC9z
Y3RwX3RpbWVyLmggMzU5MTk1IDIwMjAtMDMtMjEgMTY6MTI6MTlaIHR1ZXhlbiAkIik7CitfX0ZC
U0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF90aW1lci5oIDM2NTA3MSAyMDIw
LTA5LTAxIDIxOjE5OjE0WiBtamcgJCIpOwogI2VuZGlmCiAKICNpZm5kZWYgX05FVElORVRfU0NU
UF9USU1FUl9IXwpAQCAtOTksNiArOTksNSBAQCB2b2lkIHNjdHBfc2xvd3RpbW8odm9pZCk7CiB2
b2lkIHNjdHBfZ2Moc3RydWN0IGlucGNiaW5mbyAqKTsKICNlbmRpZgogI2VuZGlmCi0KICNlbmRp
ZgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF91
aW8uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNy
c2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3Vpby5oCmluZGV4IDYyOThm
OTMzNGE1MGVjYjdkMjQzYWM0ZDRlYWIwNzMxZTQzOWNjZGMuLjE4OTU2ZjFhMTQzZmQ2MzM4YTEx
YjYwNmMyZmM1MjZmMTJiZGFlNDEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0
aW5ldC9zY3RwX3Vpby5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3Vp
by5oCkBAIC0zNCw3ICszNCw3IEBACiAKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVm
aW5lZChfX1VzZXJzcGFjZV9fKQogI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotX19GQlNESUQoIiRG
cmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBfdWlvLmggMzYyNDczIDIwMjAtMDYtMjEgMjM6
MTI6NTZaIHR1ZXhlbiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQv
c2N0cF91aW8uaCAzNjUwNzEgMjAyMC0wOS0wMSAyMToxOToxNFogbWpnICQiKTsKICNlbmRpZgog
CiAjaWZuZGVmIF9ORVRJTkVUX1NDVFBfVUlPX0hfCkBAIC00NSw3ICs0NSw2IEBAIF9fRkJTRElE
KCIkRnJlZUJTRDogaGVhZC9zeXMvbmV0aW5ldC9zY3RwX3Vpby5oIDM2MjQ3MyAyMDIwLTA2LTIx
IDIzOjEyOjU2WiB0dWV4CiAjZGVmaW5lIF9LRVJORUwKICNlbmRpZgogI2VuZGlmCi0KICNpZiAh
ZGVmaW5lZChfV0lOMzIpCiAjaWYgIWRlZmluZWQoX0tFUk5FTCkKICNpbmNsdWRlIDxzdGRpbnQu
aD4KQEAgLTEyOSw3ICsxMjgsNiBAQCBzdHJ1Y3Qgc2N0cF9pbml0bXNnIHsKICAqIGFsbCBzZW5k
cmN2aW5mbydzIG5lZWQgYSB2ZXJmaWQgZm9yIFNFTkRJTkcgb25seS4KICAqLwogCi0KICNkZWZp
bmUgU0NUUF9BTElHTl9SRVNWX1BBRCA5MgogI2RlZmluZSBTQ1RQX0FMSUdOX1JFU1ZfUEFEX1NI
T1JUIDc2CiAKQEAgLTQ0MSw3ICs0MzksNiBAQCBzdHJ1Y3Qgc2N0cF9zZXRhZGFwdGlvbiB7CiAJ
dWludDMyX3Qgc3NiX2FkYXB0aW9uX2luZDsKIH07CiAKLQogLyoKICAqIFBhcnRpYWwgRGVsaXZl
cnkgQVBJIGV2ZW50CiAgKi8KQEAgLTQ1OCw3ICs0NTUsNiBAQCBzdHJ1Y3Qgc2N0cF9wZGFwaV9l
dmVudCB7CiAvKiBpbmRpY2F0aW9uIHZhbHVlcyAqLwogI2RlZmluZSBTQ1RQX1BBUlRJQUxfREVM
SVZFUllfQUJPUlRFRAkweDAwMDEKIAotCiAvKgogICogYXV0aGVudGljYXRpb24ga2V5IGV2ZW50
CiAgKi8KQEAgLTQ3OCw3ICs0NzQsNiBAQCBzdHJ1Y3Qgc2N0cF9hdXRoa2V5X2V2ZW50IHsKICNk
ZWZpbmUgU0NUUF9BVVRIX05PX0FVVEgJMHgwMDAyCiAjZGVmaW5lIFNDVFBfQVVUSF9GUkVFX0tF
WQkweDAwMDMKIAotCiBzdHJ1Y3Qgc2N0cF9zZW5kZXJfZHJ5X2V2ZW50IHsKIAl1aW50MTZfdCBz
ZW5kZXJfZHJ5X3R5cGU7CiAJdWludDE2X3Qgc2VuZGVyX2RyeV9mbGFnczsKQEAgLTQ4Niw3ICs0
ODEsNiBAQCBzdHJ1Y3Qgc2N0cF9zZW5kZXJfZHJ5X2V2ZW50IHsKIAlzY3RwX2Fzc29jX3Qgc2Vu
ZGVyX2RyeV9hc3NvY19pZDsKIH07CiAKLQogLyoKICAqIFN0cmVhbSByZXNldCBldmVudCAtIHN1
YnNjcmliZSB0byBTQ1RQX1NUUkVBTV9SRVNFVF9FVkVOVAogICovCkBAIC01MzQsNyArNTI4LDYg
QEAgc3RydWN0IHNjdHBfc3RyZWFtX2NoYW5nZV9ldmVudCB7CiAjZGVmaW5lIFNDVFBfU1RSRUFN
X0NIQU5HRV9ERU5JRUQJMHgwMDA0CiAjZGVmaW5lIFNDVFBfU1RSRUFNX0NIQU5HRV9GQUlMRUQJ
MHgwMDA4CiAKLQogLyogU0NUUCBub3RpZmljYXRpb24gZXZlbnQgKi8KIHN0cnVjdCBzY3RwX3Rs
diB7CiAJdWludDE2X3Qgc25fdHlwZTsKQEAgLTExMzcsNyArMTEzMCw2IEBAIHN0cnVjdCBzY3Rw
c3RhdCB7CiAjZGVmaW5lIFNDVFBfU1RBVF9ERUNSX0NPVU5URVI2NChfeCkgU0NUUF9TVEFUX0RF
Q1IoX3gpCiAjZGVmaW5lIFNDVFBfU1RBVF9ERUNSX0dBVUdFMzIoX3gpIFNDVFBfU1RBVF9ERUNS
KF94KQogCi0KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIEFuZCBz
b21ldGhpbmcgZm9yIHVzIG9sZCB0aW1lcnMgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKi8KQEAgLTExNzEsNyArMTE2Myw2IEBAIHN0cnVjdCBzY3Rwc3RhdCB7CiAjZW5k
aWYKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAotCiBzdHJ1Y3QgeHNj
dHBfaW5wY2IgewogCXVpbnQzMl90IGxhc3Q7CiAJdWludDMyX3QgZmxhZ3M7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAv
dXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF91c2Vyc3BhY2UuYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGli
L3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3VzZXJzcGFjZS5jCmluZGV4IDhlMmViZjQ2MjNiZWIw
ODA4OTcwZDgxZjhiY2QzZTY4Mzg1NmRkMmYuLmJhNjRhYWZmNzcwZGVlZDM5OWYyNTI2ZGI4ODUx
ZTI1YTg4YTlhMWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3Rw
X3VzZXJzcGFjZS5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3VzZXJz
cGFjZS5jCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSA8c3lzL3RpbWViLmg+CiAjaW5jbHVk
ZSA8aXBobHBhcGkuaD4KICNpZiAhZGVmaW5lZChfX01JTkdXMzJfXykKLSNwcmFnbWEgY29tbWVu
dChsaWIsICJJUEhMUEFQSS5saWIiKQorI3ByYWdtYSBjb21tZW50KGxpYiwgImlwaGxwYXBpLmxp
YiIpCiAjZW5kaWYKICNlbmRpZgogI2luY2x1ZGUgPG5ldGluZXQvc2N0cF9vc191c2Vyc3BhY2Uu
aD4KQEAgLTEyNiw3ICsxMjYsNyBAQCBzY3RwX3VzZXJzcGFjZV9nZXRfbXR1X2Zyb21faWZuKHVp
bnQzMl90IGlmX2luZGV4LCBpbnQgYWYpCiB9CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoX19BUFBM
RV9fKSB8fCBkZWZpbmVkKF9fRHJhZ29uRmx5X18pIHx8IGRlZmluZWQoX19saW51eF9fKSB8fCBk
ZWZpbmVkKF9fbmF0aXZlX2NsaWVudF9fKSB8fCBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRlZmlu
ZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fRnVjaHNpYV9fKQorI2lmIGRlZmluZWQoX19BUFBMRV9f
KSB8fCBkZWZpbmVkKF9fRHJhZ29uRmx5X18pIHx8IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZp
bmVkKF9fbmF0aXZlX2NsaWVudF9fKSB8fCBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRlZmluZWQo
X1dJTjMyKSB8fCBkZWZpbmVkKF9fRnVjaHNpYV9fKSB8fCBkZWZpbmVkKF9fRU1TQ1JJUFRFTl9f
KQogaW50CiB0aW1pbmdzYWZlX2JjbXAoY29uc3Qgdm9pZCAqYjEsIGNvbnN0IHZvaWQgKmIyLCBz
aXplX3QgbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3Rw
X3VzcnJlcS5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHBfdXNycmVxLmMKaW5k
ZXggNzhkNzk1Y2MxMzU2OWZkNjdkMmI1YmM1YTE3NjQ5OTFiNDM1OTVhMS4uZTVmYmE5NjcxN2Iy
YTRjYWNjMDlmZjJhYThiZWRhNmQ5MGUxYTIyYSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0
cGxpYi9uZXRpbmV0L3NjdHBfdXNycmVxLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRp
bmV0L3NjdHBfdXNycmVxLmMKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2lmIGRlZmluZWQoX19GcmVl
QlNEX18pICYmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+
Ci1fX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF91c3JyZXEuYyAzNjQz
NTMgMjAyMC0wOC0xOCAxOToyNTowM1ogdHVleGVuICQiKTsKK19fRkJTRElEKCIkRnJlZUJTRDog
aGVhZC9zeXMvbmV0aW5ldC9zY3RwX3VzcnJlcS5jIDM2Njc1MCAyMDIwLTEwLTE2IDEwOjQ0OjQ4
WiB0dWV4ZW4gJCIpOwogI2VuZGlmCiAKICNpbmNsdWRlIDxuZXRpbmV0L3NjdHBfb3MuaD4KQEAg
LTY0LDcgKzY0LDYgQEAgX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHBf
dXNycmVxLmMgMzY0MzUzIDIwMjAtMDgtMTggMTk6MjU6MDNaIHQKICNpZiBkZWZpbmVkKF9fRnJl
ZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogI2luY2x1ZGUgPHN5cy9ldmVudGhh
bmRsZXIuaD4KICNlbmRpZgotCiAjaWYgZGVmaW5lZChIQVZFX1NDVFBfUEVFTE9GRl9TT0NLT1BU
KQogI2luY2x1ZGUgPG5ldGluZXQvc2N0cF9wZWVsb2ZmLmg+CiAjZW5kaWYJCQkJLyogSEFWRV9T
Q1RQX1BFRUxPRkZfU09DS09QVCAqLwpAQCAtMTkyLDYgKzE5MSw5IEBAIHNjdHBfZmluaXNoKHZv
aWQpCiAjaWYgZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAJc2N0
cF9maW5pc2hfc3lzY3RscygpOwogI2VuZGlmCisjaWYgZGVmaW5lZChfX1VzZXJzcGFjZV9fKQor
CWZpbmlzaF9yYW5kb20oKTsKKyNlbmRpZgogfQogI2VuZGlmCiAKQEAgLTU3MSw3ICs1NzMsNiBA
QCBTWVNDVExfUFJPQyhfbmV0X2luZXRfc2N0cCwgT0lEX0FVVE8sIGdldGNyZWQsCiAgICAgIkdl
dCB0aGUgdWNyZWQgb2YgYSBTQ1RQIGNvbm5lY3Rpb24iKTsKICNlbmRpZgogCi0KICNpZmRlZiBJ
TkVUCiAjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19Vc2Vyc3BhY2VfXykKIGludApA
QCAtODYzLDEwICs4NjQsNyBAQCBzY3RwX2Nsb3NlKHN0cnVjdCBzb2NrZXQgKnNvKQogI2VuZGlm
CiAJcmV0dXJuOwogfQotCiAjZWxzZQotCi0KIGludAogc2N0cF9kZXRhY2goc3RydWN0IHNvY2tl
dCAqc28pCiB7CkBAIC05NDgsNyArOTQ2LDYgQEAgc2N0cF9zZW5kbShzdHJ1Y3Qgc29ja2V0ICpz
bywgaW50IGZsYWdzLCBzdHJ1Y3QgbWJ1ZiAqbSwgc3RydWN0IHNvY2thZGRyICphZGRyLAogICAg
IHN0cnVjdCBtYnVmICpjb250cm9sLCBzdHJ1Y3QgcHJvYyAqcCk7CiAKICNlbmRpZgotCiBpbnQK
ICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogc2N0
cF9zZW5kbShzdHJ1Y3Qgc29ja2V0ICpzbywgaW50IGZsYWdzLCBzdHJ1Y3QgbWJ1ZiAqbSwgc3Ry
dWN0IHNvY2thZGRyICphZGRyLApAQCAtMTI1Nyw3ICsxMjU0LDYgQEAgc2N0cF9mbHVzaChzdHJ1
Y3Qgc29ja2V0ICpzbywgaW50IGhvdykKIAkJc28tPnNvX3NuZC5zYl9jYyA9IDA7CiAJCXNvLT5z
b19zbmQuc2JfbWJjbnQgPSAwOwogCQlzby0+c29fc25kLnNiX21iID0gTlVMTDsKLQogCX0KIAly
ZXR1cm4gKDApOwogfQpAQCAtMTQzOSw4ICsxNDM1LDYgQEAgc2N0cF9maWxsX3VzZXJfYWRkcmVz
cyhzdHJ1Y3Qgc29ja2FkZHIgKmRzdCwgc3RydWN0IHNvY2thZGRyICpzcmMpCiAJcmV0dXJuICgw
KTsKIH0KIAotCi0KIHN0YXRpYyBzaXplX3QKIHNjdHBfZmlsbF91cF9hZGRyZXNzZXNfdnJmKHN0
cnVjdCBzY3RwX2lucGNiICppbnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
c2N0cF90Y2IgKnN0Y2IsCkBAIC0xOTkzLDcgKzE5ODcsNiBAQCBzY3RwX2RvX2Nvbm5lY3RfeChz
dHJ1Y3Qgc29ja2V0ICpzbywgc3RydWN0IHNjdHBfaW5wY2IgKmlucCwgdm9pZCAqb3B0dmFsLAog
CS8qIEZJWCBNRTogZG8gd2Ugd2FudCB0byBwYXNzIGluIGEgdnJmIG9uIHRoZSBjb25uZWN0IGNh
bGw/ICovCiAJdnJmX2lkID0gaW5wLT5kZWZfdnJmX2lkOwogCi0KIAkvKiBXZSBhcmUgR09PRCB0
byBnbyAqLwogCXN0Y2IgPSBzY3RwX2Fsb2NfYXNzb2MoaW5wLCBzYSwgJmVycm9yLCAwLCB2cmZf
aWQsCiAJICAgICAgICAgICAgICAgICAgICAgICBpbnAtPnNjdHBfZXAucHJlX29wZW5fc3RyZWFt
X2NvdW50LApAQCAtMjA3OSw3ICsyMDcyLDYgQEAgc2N0cF9kb19jb25uZWN0X3goc3RydWN0IHNv
Y2tldCAqc28sIHN0cnVjdCBzY3RwX2lucGNiICppbnAsIHZvaWQgKm9wdHZhbCwKIAl9IFwKIH0K
IAotCiAjZGVmaW5lIFNDVFBfQ0hFQ0tfQU5EX0NBU1QoZGVzdHAsIHNyY3AsIHR5cGUsIHNpemUp
IHtcCiAJaWYgKHNpemUgPCBzaXplb2YodHlwZSkpIHsgXAogCQlTQ1RQX0xUUkFDRV9FUlJfUkVU
KGlucCwgTlVMTCwgTlVMTCwgU0NUUF9GUk9NX1NDVFBfVVNSUkVRLCBFSU5WQUwpOyBcCkBAIC0z
MjQzLDggKzMyMzUsNiBAQCBzY3RwX2dldG9wdChzdHJ1Y3Qgc29ja2V0ICpzbywgaW50IG9wdG5h
bWUsIHZvaWQgKm9wdHZhbCwgc2l6ZV90ICpvcHRzaXplLAogCQkgKi8KIAkJc3N0YXQtPnNzdGF0
X3BlbmRkYXRhID0gKHN0Y2ItPmFzb2MuY250X29uX3JlYXNtX3F1ZXVlICsKIAkJCQkJIHN0Y2It
PmFzb2MuY250X29uX2FsbF9zdHJlYW1zKTsKLQotCiAJCXNzdGF0LT5zc3RhdF9pbnN0cm1zID0g
c3RjYi0+YXNvYy5zdHJlYW1pbmNudDsKIAkJc3N0YXQtPnNzdGF0X291dHN0cm1zID0gc3RjYi0+
YXNvYy5zdHJlYW1vdXRjbnQ7CiAJCXNzdGF0LT5zc3RhdF9mcmFnbWVudGF0aW9uX3BvaW50ID0g
c2N0cF9nZXRfZnJhZ19wb2ludChzdGNiLCAmc3RjYi0+YXNvYyk7CkBAIC0zNzUzLDQzICszNzQz
LDI3IEBAIHNjdHBfZ2V0b3B0KHN0cnVjdCBzb2NrZXQgKnNvLCBpbnQgb3B0bmFtZSwgdm9pZCAq
b3B0dmFsLCBzaXplX3QgKm9wdHNpemUsCiAJCWJyZWFrOwogCX0KIAljYXNlIFNDVFBfUkVDVlJD
VklORk86Ci0JewotCQlpbnQgb25vZmY7Ci0KIAkJaWYgKCpvcHRzaXplIDwgc2l6ZW9mKGludCkp
IHsKIAkJCVNDVFBfTFRSQUNFX0VSUl9SRVQoaW5wLCBOVUxMLCBOVUxMLCBTQ1RQX0ZST01fU0NU
UF9VU1JSRVEsIEVJTlZBTCk7CiAJCQllcnJvciA9IEVJTlZBTDsKIAkJfSBlbHNlIHsKIAkJCVND
VFBfSU5QX1JMT0NLKGlucCk7Ci0JCQlvbm9mZiA9IHNjdHBfaXNfZmVhdHVyZV9vbihpbnAsIFND
VFBfUENCX0ZMQUdTX1JFQ1ZSQ1ZJTkZPKTsKKwkJCSooaW50ICopb3B0dmFsID0gc2N0cF9pc19m
ZWF0dXJlX29uKGlucCwgU0NUUF9QQ0JfRkxBR1NfUkVDVlJDVklORk8pOwogCQkJU0NUUF9JTlBf
UlVOTE9DSyhpbnApOwotCQl9Ci0JCWlmIChlcnJvciA9PSAwKSB7Ci0JCQkvKiByZXR1cm4gdGhl
IG9wdGlvbiB2YWx1ZSAqLwotCQkJKihpbnQgKilvcHR2YWwgPSBvbm9mZjsKIAkJCSpvcHRzaXpl
ID0gc2l6ZW9mKGludCk7CiAJCX0KIAkJYnJlYWs7Ci0JfQogCWNhc2UgU0NUUF9SRUNWTlhUSU5G
TzoKLQl7Ci0JCWludCBvbm9mZjsKLQogCQlpZiAoKm9wdHNpemUgPCBzaXplb2YoaW50KSkgewog
CQkJU0NUUF9MVFJBQ0VfRVJSX1JFVChpbnAsIE5VTEwsIE5VTEwsIFNDVFBfRlJPTV9TQ1RQX1VT
UlJFUSwgRUlOVkFMKTsKIAkJCWVycm9yID0gRUlOVkFMOwogCQl9IGVsc2UgewogCQkJU0NUUF9J
TlBfUkxPQ0soaW5wKTsKLQkJCW9ub2ZmID0gc2N0cF9pc19mZWF0dXJlX29uKGlucCwgU0NUUF9Q
Q0JfRkxBR1NfUkVDVk5YVElORk8pOworCQkJKihpbnQgKilvcHR2YWwgPSBzY3RwX2lzX2ZlYXR1
cmVfb24oaW5wLCBTQ1RQX1BDQl9GTEFHU19SRUNWTlhUSU5GTyk7CiAJCQlTQ1RQX0lOUF9SVU5M
T0NLKGlucCk7Ci0JCX0KLQkJaWYgKGVycm9yID09IDApIHsKLQkJCS8qIHJldHVybiB0aGUgb3B0
aW9uIHZhbHVlICovCi0JCQkqKGludCAqKW9wdHZhbCA9IG9ub2ZmOwogCQkJKm9wdHNpemUgPSBz
aXplb2YoaW50KTsKIAkJfQogCQlicmVhazsKLQl9CiAJY2FzZSBTQ1RQX0RFRkFVTFRfU05ESU5G
TzoKIAl7CiAJCXN0cnVjdCBzY3RwX3NuZGluZm8gKmluZm87CkBAIC01NDMyLDcgKzU0MDYsNiBA
QCBzY3RwX3NldG9wdChzdHJ1Y3Qgc29ja2V0ICpzbywgaW50IG9wdG5hbWUsIHZvaWQgKm9wdHZh
bCwgc2l6ZV90IG9wdHNpemUsCiAJCQkJfQogCQkJCVNDVFBfSU5QX1JVTkxPQ0soaW5wKTsKIAkJ
CX0KLQogCQl9CiAJCWJyZWFrOwogCX0KQEAgLTU2NzEsNyArNTY0NCw3IEBAIHNjdHBfc2V0b3B0
KHN0cnVjdCBzb2NrZXQgKnNvLCBpbnQgb3B0bmFtZSwgdm9pZCAqb3B0dmFsLCBzaXplX3Qgb3B0
c2l6ZSwKIAkJCWJyZWFrOwogCQl9CiAJCS8qIERvIGFueSBzdHJlYW1zIGhhdmUgZGF0YSBxdWV1
ZWQ/ICovCi0JCWZvciAoIGkgPSAwOyBpPCBzdGNiLT5hc29jLnN0cmVhbW91dGNudDsgaSsrKSB7
CisJCWZvciAoaSA9IDA7IGkgPCBzdGNiLT5hc29jLnN0cmVhbW91dGNudDsgaSsrKSB7CiAJCQlp
ZiAoIVRBSUxRX0VNUFRZKCZzdGNiLT5hc29jLnN0cm1vdXRbaV0ub3V0cXVldWUpKSB7CiAJCQkJ
Z290byBidXN5X291dDsKIAkJCX0KQEAgLTYwODAsOCArNjA1Myw4IEBAIHNjdHBfc2V0b3B0KHN0
cnVjdCBzb2NrZXQgKnNvLCBpbnQgb3B0bmFtZSwgdm9pZCAqb3B0dmFsLCBzaXplX3Qgb3B0c2l6
ZSwKIAkJaWYgKChzdGNiICE9IE5VTEwpICYmIChuZXQgPT0gTlVMTCkpIHsKICNpZmRlZiBJTkVU
CiAJCQlpZiAoYWRkci0+c2FfZmFtaWx5ID09IEFGX0lORVQpIHsKLQogCQkJCXN0cnVjdCBzb2Nr
YWRkcl9pbiAqc2luOworCiAJCQkJc2luID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWFkZHI7CiAJ
CQkJaWYgKHNpbi0+c2luX2FkZHIuc19hZGRyICE9IElOQUREUl9BTlkpIHsKIAkJCQkJU0NUUF9M
VFJBQ0VfRVJSX1JFVChpbnAsIE5VTEwsIE5VTEwsIFNDVFBfRlJPTV9TQ1RQX1VTUlJFUSwgRUlO
VkFMKTsKQEAgLTY1MjAsMTggKzY0OTMsMjAgQEAgc2N0cF9zZXRvcHQoc3RydWN0IHNvY2tldCAq
c28sIGludCBvcHRuYW1lLCB2b2lkICpvcHR2YWwsIHNpemVfdCBvcHRzaXplLAogCiAJCVNDVFBf
Q0hFQ0tfQU5EX0NBU1Qoc2Fzb2MsIG9wdHZhbCwgc3RydWN0IHNjdHBfYXNzb2NwYXJhbXMsIG9w
dHNpemUpOwogCQlTQ1RQX0ZJTkRfU1RDQihpbnAsIHN0Y2IsIHNhc29jLT5zYXNvY19hc3NvY19p
ZCk7Ci0JCWlmIChzYXNvYy0+c2Fzb2NfY29va2llX2xpZmUpIHsKKwkJaWYgKHNhc29jLT5zYXNv
Y19jb29raWVfbGlmZSA+IDApIHsKIAkJCS8qIGJvdW5kYXJ5IGNoZWNrIHRoZSBjb29raWUgbGlm
ZSAqLwotCQkJaWYgKHNhc29jLT5zYXNvY19jb29raWVfbGlmZSA8IDEwMDApCi0JCQkJc2Fzb2Mt
PnNhc29jX2Nvb2tpZV9saWZlID0gMTAwMDsKKwkJCWlmIChzYXNvYy0+c2Fzb2NfY29va2llX2xp
ZmUgPCBTQ1RQX01JTl9DT09LSUVfTElGRSkgeworCQkJCXNhc29jLT5zYXNvY19jb29raWVfbGlm
ZSA9IFNDVFBfTUlOX0NPT0tJRV9MSUZFOworCQkJfQogCQkJaWYgKHNhc29jLT5zYXNvY19jb29r
aWVfbGlmZSA+IFNDVFBfTUFYX0NPT0tJRV9MSUZFKSB7CiAJCQkJc2Fzb2MtPnNhc29jX2Nvb2tp
ZV9saWZlID0gU0NUUF9NQVhfQ09PS0lFX0xJRkU7CiAJCQl9CiAJCX0KIAkJaWYgKHN0Y2IpIHsK
LQkJCWlmIChzYXNvYy0+c2Fzb2NfYXNvY21heHJ4dCkKKwkJCWlmIChzYXNvYy0+c2Fzb2NfYXNv
Y21heHJ4dCA+IDApIHsKIAkJCQlzdGNiLT5hc29jLm1heF9zZW5kX3RpbWVzID0gc2Fzb2MtPnNh
c29jX2Fzb2NtYXhyeHQ7Ci0JCQlpZiAoc2Fzb2MtPnNhc29jX2Nvb2tpZV9saWZlKSB7CisJCQl9
CisJCQlpZiAoc2Fzb2MtPnNhc29jX2Nvb2tpZV9saWZlID4gMCkgewogCQkJCXN0Y2ItPmFzb2Mu
Y29va2llX2xpZmUgPSBzY3RwX21zZWNzX3RvX3RpY2tzKHNhc29jLT5zYXNvY19jb29raWVfbGlm
ZSk7CiAJCQl9CiAJCQlTQ1RQX1RDQl9VTkxPQ0soc3RjYik7CkBAIC02NTQxLDkgKzY1MTYsMTAg
QEAgc2N0cF9zZXRvcHQoc3RydWN0IHNvY2tldCAqc28sIGludCBvcHRuYW1lLCB2b2lkICpvcHR2
YWwsIHNpemVfdCBvcHRzaXplLAogCQkJICAgICgoaW5wLT5zY3RwX2ZsYWdzICYgU0NUUF9QQ0Jf
RkxBR1NfVURQVFlQRSkgJiYKIAkJCSAgICAgKHNhc29jLT5zYXNvY19hc3NvY19pZCA9PSBTQ1RQ
X0ZVVFVSRV9BU1NPQykpKSB7CiAJCQkJU0NUUF9JTlBfV0xPQ0soaW5wKTsKLQkJCQlpZiAoc2Fz
b2MtPnNhc29jX2Fzb2NtYXhyeHQpCisJCQkJaWYgKHNhc29jLT5zYXNvY19hc29jbWF4cnh0ID4g
MCkgewogCQkJCQlpbnAtPnNjdHBfZXAubWF4X3NlbmRfdGltZXMgPSBzYXNvYy0+c2Fzb2NfYXNv
Y21heHJ4dDsKLQkJCQlpZiAoc2Fzb2MtPnNhc29jX2Nvb2tpZV9saWZlKSB7CisJCQkJfQorCQkJ
CWlmIChzYXNvYy0+c2Fzb2NfY29va2llX2xpZmUgPiAwKSB7CiAJCQkJCWlucC0+c2N0cF9lcC5k
ZWZfY29va2llX2xpZmUgPSBzY3RwX21zZWNzX3RvX3RpY2tzKHNhc29jLT5zYXNvY19jb29raWVf
bGlmZSk7CiAJCQkJfQogCQkJCVNDVFBfSU5QX1dVTkxPQ0soaW5wKTsKQEAgLTcyMjMsOCArNzE5
OSw4IEBAIHNjdHBfc2V0b3B0KHN0cnVjdCBzb2NrZXQgKnNvLCBpbnQgb3B0bmFtZSwgdm9pZCAq
b3B0dmFsLCBzaXplX3Qgb3B0c2l6ZSwKIAkJaWYgKChzdGNiICE9IE5VTEwpICYmIChuZXQgPT0g
TlVMTCkpIHsKICNpZmRlZiBJTkVUCiAJCQlpZiAoYWRkci0+c2FfZmFtaWx5ID09IEFGX0lORVQp
IHsKLQogCQkJCXN0cnVjdCBzb2NrYWRkcl9pbiAqc2luOworCiAJCQkJc2luID0gKHN0cnVjdCBz
b2NrYWRkcl9pbiAqKWFkZHI7CiAJCQkJaWYgKHNpbi0+c2luX2FkZHIuc19hZGRyICE9IElOQURE
Ul9BTlkpIHsKIAkJCQkJU0NUUF9MVFJBQ0VfRVJSX1JFVChpbnAsIE5VTEwsIE5VTEwsIFNDVFBf
RlJPTV9TQ1RQX1VTUlJFUSwgRUlOVkFMKTsKQEAgLTc0MDQsOCArNzM4MCw4IEBAIHNjdHBfc2V0
b3B0KHN0cnVjdCBzb2NrZXQgKnNvLCBpbnQgb3B0bmFtZSwgdm9pZCAqb3B0dmFsLCBzaXplX3Qg
b3B0c2l6ZSwKIAkJaWYgKChzdGNiICE9IE5VTEwpICYmIChuZXQgPT0gTlVMTCkpIHsKICNpZmRl
ZiBJTkVUCiAJCQlpZiAoYWRkci0+c2FfZmFtaWx5ID09IEFGX0lORVQpIHsKLQogCQkJCXN0cnVj
dCBzb2NrYWRkcl9pbiAqc2luOworCiAJCQkJc2luID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWFk
ZHI7CiAJCQkJaWYgKHNpbi0+c2luX2FkZHIuc19hZGRyICE9IElOQUREUl9BTlkpIHsKIAkJCQkJ
U0NUUF9MVFJBQ0VfRVJSX1JFVChpbnAsIE5VTEwsIE5VTEwsIFNDVFBfRlJPTV9TQ1RQX1VTUlJF
USwgRUlOVkFMKTsKQEAgLTc4ODcsNyArNzg2Myw3IEBAIHNjdHBfY29ubmVjdChzdHJ1Y3Qgc29j
a2V0ICpzbywgc3RydWN0IG1idWYgKm5hbSwgc3RydWN0IHByb2MgKnApCiAjaWYgZGVmaW5lZChf
X1VzZXJzcGFjZV9fKQogCS8qIFRPRE8gX19Vc2Vyc3BhY2VfXyBmYWxscyBpbnRvIHRoaXMgY29k
ZSBmb3IgSVB2NiBzdHVmZiBhdCB0aGUgbW9tZW50Li4uICovCiAjZW5kaWYKLSNpZiAhZGVmaW5l
ZChfV0lOMzIpICYmICFkZWZpbmVkKF9fbGludXhfXykKKyNpZiAhZGVmaW5lZChfV0lOMzIpICYm
ICFkZWZpbmVkKF9fbGludXhfXykgJiYgIWRlZmluZWQoX19FTVNDUklQVEVOX18pCiAJc3dpdGNo
IChhZGRyLT5zYV9mYW1pbHkpIHsKICNpZmRlZiBJTkVUNgogCWNhc2UgQUZfSU5FVDY6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3Vz
cnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cF92YXIuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGli
L3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3Zhci5oCmluZGV4IGQyNDMzZDYwNzIyODVhZTJhZWYz
ZmVlNDZjNzQwZTI5NGJmNjAwZjEuLjNjZGZkZmU3NmI5YjVmNWY0NDM3ZmQzNDQ1NDkzMTM3ZDBh
NTk4NDAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3Zhci5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNy
c2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3RwX3Zhci5oCkBAIC0zNCw3ICsz
NCw3IEBACiAKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFj
ZV9fKQogI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgotX19GQlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5
cy9uZXRpbmV0L3NjdHBfdmFyLmggMzYzMzIzIDIwMjAtMDctMTkgMTI6MzQ6MTlaIHR1ZXhlbiAk
Iik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cF92YXIuaCAzNjUw
NzEgMjAyMC0wOS0wMSAyMToxOToxNFogbWpnICQiKTsKICNlbmRpZgogCiAjaWZuZGVmIF9ORVRJ
TkVUX1NDVFBfVkFSX0hfCkBAIC00OCw3ICs0OCw2IEBAIF9fRkJTRElEKCIkRnJlZUJTRDogaGVh
ZC9zeXMvbmV0aW5ldC9zY3RwX3Zhci5oIDM2MzMyMyAyMDIwLTA3LTE5IDEyOjM0OjE5WiB0dWV4
CiBleHRlcm4gc3RydWN0IHByX3VzcnJlcXMgc2N0cF91c3JyZXFzOwogI2VuZGlmCiAKLQogI2Rl
ZmluZSBzY3RwX2ZlYXR1cmVfb24oaW5wLCBmZWF0dXJlKSAgKGlucC0+c2N0cF9mZWF0dXJlcyB8
PSBmZWF0dXJlKQogI2RlZmluZSBzY3RwX2ZlYXR1cmVfb2ZmKGlucCwgZmVhdHVyZSkgKGlucC0+
c2N0cF9mZWF0dXJlcyAmPSB+ZmVhdHVyZSkKICNkZWZpbmUgc2N0cF9pc19mZWF0dXJlX29uKGlu
cCwgZmVhdHVyZSkgKChpbnAtPnNjdHBfZmVhdHVyZXMgJiBmZWF0dXJlKSA9PSBmZWF0dXJlKQpA
QCAtMTg3LDcgKzE4Niw2IEBAIGV4dGVybiBzdHJ1Y3QgcHJfdXNycmVxcyBzY3RwX3VzcnJlcXM7
CiB9CiAKICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9f
KQotCiAjZGVmaW5lIHNjdHBfZnJlZV9yZW1vdGVfYWRkcihfX25ldCkgeyBcCiAJaWYgKChfX25l
dCkpIHsgIFwKIAkJaWYgKFNDVFBfREVDUkVNRU5UX0FORF9DSEVDS19SRUZDT1VOVCgmKF9fbmV0
KS0+cmVmX2NvdW50KSkgeyBcCkBAIC0yMjcsOSArMjI1LDcgQEAgZXh0ZXJuIHN0cnVjdCBwcl91
c3JyZXFzIHNjdHBfdXNycmVxczsKIAkgICAgU0NUUF9CVUZfVFlQRShtKSAhPSBNVF9PT0JEQVRB
KSBcCiAJCWF0b21pY19hZGRfaW50KCYoc2IpLT5zYl9jdGwsU0NUUF9CVUZfTEVOKChtKSkpOyBc
CiB9Ci0KICNlbHNlCQkJCS8qIEZyZWVCU0QgVmVyc2lvbiA8PSA1MDAwMDAgb3Igbm9uLUZyZWVC
U0QgKi8KLQogI2RlZmluZSBzY3RwX2ZyZWVfcmVtb3RlX2FkZHIoX19uZXQpIHsgXAogCWlmICgo
X19uZXQpKSB7IFwKIAkJaWYgKFNDVFBfREVDUkVNRU5UX0FORF9DSEVDS19SRUZDT1VOVCgmKF9f
bmV0KS0+cmVmX2NvdW50KSkgeyBcCkBAIC0zNjcsNyArMzYzLDYgQEAgc3RydWN0IHNjdHBfaW5w
Y2I7CiBzdHJ1Y3Qgc2N0cF90Y2I7CiBzdHJ1Y3Qgc2N0cGhkcjsKIAotCiAjaWYgZGVmaW5lZChf
X0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19Vc2Vyc3BhY2VfXykK
IHZvaWQgc2N0cF9jbG9zZShzdHJ1Y3Qgc29ja2V0ICpzbyk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3Vz
cnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHB1dGlsLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3Rw
bGliL25ldGluZXQvc2N0cHV0aWwuYwppbmRleCBmMDUwNjEwYWI1ZDIzZWU1ODA5NWY4NGQwNmY5
ODVjY2ExMDA5MDAzLi40MTkxMGVjNDlkNGIzYzdlOTM4OWVmNzNlNDU1NWUxODU3Y2I3Njc1IDEw
MDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cHV0aWwuYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNy
c2N0cGxpYi91c3JzY3RwbGliL25ldGluZXQvc2N0cHV0aWwuYwpAQCAtMzQsNyArMzQsNyBAQAog
CiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19Vc2Vyc3BhY2VfXykKICNp
bmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJlZUJTRDogaGVhZC9zeXMvbmV0aW5l
dC9zY3RwdXRpbC5jIDM2NDI2OCAyMDIwLTA4LTE2IDExOjUwOjM3WiB0dWV4ZW4gJCIpOworX19G
QlNESUQoIiRGcmVlQlNEOiBoZWFkL3N5cy9uZXRpbmV0L3NjdHB1dGlsLmMgMzY2NDgyIDIwMjAt
MTAtMDYgMTE6MDg6NTJaIHR1ZXhlbiAkIik7CiAjZW5kaWYKIAogI2luY2x1ZGUgPG5ldGluZXQv
c2N0cF9vcy5oPgpAQCAtNzYwLDcgKzc2MCw2IEBAIHNjdHBfYXVkaXRpbmcoaW50IGZyb20sIHN0
cnVjdCBzY3RwX2lucGNiICppbnAsIHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAkJCSAgICBzdGNi
LT5hc29jLnRvdGFsX2ZsaWdodCwgdG90X291dCk7CiAJCS8qIG5vdyBjb3JyZWN0aXZlIGFjdGlv
biAqLwogCQlUQUlMUV9GT1JFQUNIKGxuZXQsICZzdGNiLT5hc29jLm5ldHMsIHNjdHBfbmV4dCkg
ewotCiAJCQl0b3Rfb3V0ID0gMDsKIAkJCVRBSUxRX0ZPUkVBQ0goY2hrLCAmc3RjYi0+YXNvYy5z
ZW50X3F1ZXVlLCBzY3RwX25leHQpIHsKIAkJCQlpZiAoKGNoay0+d2hvVG8gPT0gbG5ldCkgJiYK
QEAgLTE0ODAsNyArMTQ3OSw2IEBAIHNjdHBfZXhwYW5kX21hcHBpbmdfYXJyYXkoc3RydWN0IHNj
dHBfYXNzb2NpYXRpb24gKmFzb2MsIHVpbnQzMl90IG5lZWRlZCkKIAlyZXR1cm4gKDApOwogfQog
Ci0KIHN0YXRpYyB2b2lkCiBzY3RwX2l0ZXJhdG9yX3dvcmsoc3RydWN0IHNjdHBfaXRlcmF0b3Ig
Kml0KQogewpAQCAtMTY4Miw3ICsxNjgwLDYgQEAgc2N0cF9pdGVyYXRvcl93b3JrZXIodm9pZCkK
IAlyZXR1cm47CiB9CiAKLQogc3RhdGljIHZvaWQKIHNjdHBfaGFuZGxlX2FkZHJfd3Eodm9pZCkK
IHsKQEAgLTE3OTcsNyArMTc5NCw2IEBAIHNjdHBfdGltZW91dF9oYW5kbGVyKHZvaWQgKnQpCiAJ
Q1VSVk5FVF9TRVQoKHN0cnVjdCB2bmV0ICopdG1yLT52bmV0KTsKIAlORVRfRVBPQ0hfRU5URVIo
ZXQpOwogI2VuZGlmCi0JZGlkX291dHB1dCA9IDE7CiAJcmVsZWFzZWRfYXNvY19yZWZlcmVuY2Ug
PSBmYWxzZTsKIAogI2lmZGVmIFNDVFBfQVVESVRJTkdfRU5BQkxFRApAQCAtMjA3Niw3ICsyMDcy
LDYgQEAgc2N0cF90aW1lb3V0X2hhbmRsZXIodm9pZCAqdCkKIAkJb3BfZXJyID0gc2N0cF9nZW5l
cmF0ZV9jYXVzZShTQ1RQX0JBU0VfU1lTQ1RMKHNjdHBfZGlhZ19pbmZvX2NvZGUpLAogCQkgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJTaHV0ZG93biBndWFyZCB0aW1lciBleHBpcmVkIik7
CiAJCXNjdHBfYWJvcnRfYW5fYXNzb2NpYXRpb24oaW5wLCBzdGNiLCBvcF9lcnIsIFNDVFBfU09f
Tk9UX0xPQ0tFRCk7Ci0JCWRpZF9vdXRwdXQgPSB0cnVlOwogCQkvKiBubyBuZWVkIHRvIHVubG9j
ayBvbiB0Y2IgaXRzIGdvbmUgKi8KIAkJZ290byBvdXRfZGVjcjsKIAljYXNlIFNDVFBfVElNRVJf
VFlQRV9BVVRPQ0xPU0U6CkBAIC0yMTcwLDcgKzIxNjUsNiBAQCBzY3RwX3RpbWVvdXRfaGFuZGxl
cih2b2lkICp0KQogI2lmZGVmIElOVkFSSUFOVFMKIAkJcGFuaWMoIlVua25vd24gdGltZXIgdHlw
ZSAlZCIsIHR5cGUpOwogI2Vsc2UKLQkJZGlkX291dHB1dCA9IGZhbHNlOwogCQlnb3RvIG91dDsK
ICNlbmRpZgogCX0KQEAgLTIxNzksNyArMjE3Myw3IEBAIHNjdHBfdGltZW91dF9oYW5kbGVyKHZv
aWQgKnQpCiAJaWYgKGlucCAhPSBOVUxMKQogCQlzY3RwX2F1ZGl0aW5nKDUsIGlucCwgc3RjYiwg
bmV0KTsKICNlbmRpZgotCWlmIChkaWRfb3V0cHV0ICYmIChzdGNiICE9IE5VTEwpICkgeworCWlm
IChkaWRfb3V0cHV0ICYmIChzdGNiICE9IE5VTEwpKSB7CiAJCS8qCiAJCSAqIE5vdyB3ZSBuZWVk
IHRvIGNsZWFuIHVwIHRoZSBjb250cm9sIGNodW5rIGNoYWluIGlmIGFuCiAJCSAqIEVDTkUgaXMg
b24gaXQuIEl0IG11c3QgYmUgbWFya2VkIGFzIFVOU0VOVCBhZ2FpbiBzbyBuZXh0CkBAIC0yMjY3
LDcgKzIyNjEsNiBAQCBzY3RwX3RpbWVyX3N0YXJ0KGludCB0X3R5cGUsIHN0cnVjdCBzY3RwX2lu
cGNiICppbnAsIHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwKIAkgICAgICAgICgic2N0cF90aW1lcl9z
dGFydCBvZiB0eXBlICVkOiBpbnAgPSAlcCwgc3RjYi0+c2N0cF9lcCAlcCIsCiAJICAgICAgICAg
dF90eXBlLCBzdGNiLCBzdGNiLT5zY3RwX2VwKSk7CiAJdG1yID0gTlVMTDsKLQl0b190aWNrcyA9
IDA7CiAJaWYgKHN0Y2IgIT0gTlVMTCkgewogCQlTQ1RQX1RDQl9MT0NLX0FTU0VSVChzdGNiKTsK
IAl9IGVsc2UgaWYgKGlucCAhPSBOVUxMKSB7CkBAIC0zMDMyLDcgKzMwMjUsNiBAQCBzY3RwX210
dV9zaXplX3Jlc2V0KHN0cnVjdCBzY3RwX2lucGNiICppbnAsCiAJfQogfQogCi0KIC8qCiAgKiBH
aXZlbiBhbiBhc3NvY2lhdGlvbiBhbmQgc3RhcnRpbmcgdGltZSBvZiB0aGUgY3VycmVudCBSVFQg
cGVyaW9kLCB1cGRhdGUKICAqIFJUTyBpbiBudW1iZXIgb2YgbXNlY3MuIG5ldCBzaG91bGQgcG9p
bnQgdG8gdGhlIGN1cnJlbnQgbmV0d29yay4KQEAgLTMxOTQsOCArMzE4Niw2IEBAIHNjdHBfbV9n
ZXRwdHIoc3RydWN0IG1idWYgKm0sIGludCBvZmYsIGludCBsZW4sIHVpbnQ4X3QgKiBpbl9wdHIp
CiAJfQogfQogCi0KLQogc3RydWN0IHNjdHBfcGFyYW1oZHIgKgogc2N0cF9nZXRfbmV4dF9wYXJh
bShzdHJ1Y3QgbWJ1ZiAqbSwKICAgICBpbnQgb2Zmc2V0LApAQCAtMzIwNyw3ICszMTk3LDYgQEAg
c2N0cF9nZXRfbmV4dF9wYXJhbShzdHJ1Y3QgbWJ1ZiAqbSwKIAkgICAgKHVpbnQ4X3QgKikgcHVs
bCkpOwogfQogCi0KIHN0cnVjdCBtYnVmICoKIHNjdHBfYWRkX3BhZF90b21idWYoc3RydWN0IG1i
dWYgKm0sIGludCBwYWRsZW4pCiB7CkBAIC0zNTE1LDcgKzM1MDQsNiBAQCBzY3RwX25vdGlmeV9w
ZWVyX2FkZHJfY2hhbmdlKHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgdWludDMyX3Qgc3RhdGUsCiAJ
ICAgICAgICAgICAgICAgICAgc29fbG9ja2VkKTsKIH0KIAotCiBzdGF0aWMgdm9pZAogc2N0cF9u
b3RpZnlfc2VuZF9mYWlsZWQoc3RydWN0IHNjdHBfdGNiICpzdGNiLCB1aW50OF90IHNlbnQsIHVp
bnQzMl90IGVycm9yLAogICAgIHN0cnVjdCBzY3RwX3RtaXRfY2h1bmsgKmNoaywgaW50IHNvX2xv
Y2tlZCkKQEAgLTM2NDcsNyArMzYzNSw2IEBAIHNjdHBfbm90aWZ5X3NlbmRfZmFpbGVkKHN0cnVj
dCBzY3RwX3RjYiAqc3RjYiwgdWludDhfdCBzZW50LCB1aW50MzJfdCBlcnJvciwKIAkgICAgICAg
ICAgICAgICAgICBzb19sb2NrZWQpOwogfQogCi0KIHN0YXRpYyB2b2lkCiBzY3RwX25vdGlmeV9z
ZW5kX2ZhaWxlZDIoc3RydWN0IHNjdHBfdGNiICpzdGNiLCB1aW50MzJfdCBlcnJvciwKIAkJCSBz
dHJ1Y3Qgc2N0cF9zdHJlYW1fcXVldWVfcGVuZGluZyAqc3AsIGludCBzb19sb2NrZWQpCkBAIC0z
NzQ0LDggKzM3MzEsNiBAQCBzY3RwX25vdGlmeV9zZW5kX2ZhaWxlZDIoc3RydWN0IHNjdHBfdGNi
ICpzdGNiLCB1aW50MzJfdCBlcnJvciwKIAkgICAgJnN0Y2ItPnNjdHBfc29ja2V0LT5zb19yY3Ys
IDEsIFNDVFBfUkVBRF9MT0NLX05PVF9IRUxELCBzb19sb2NrZWQpOwogfQogCi0KLQogc3RhdGlj
IHZvaWQKIHNjdHBfbm90aWZ5X2FkYXB0YXRpb25fbGF5ZXIoc3RydWN0IHNjdHBfdGNiICpzdGNi
KQogewpAQCAtNDAwMCw3ICszOTg1LDYgQEAgc2N0cF9ub3RpZnlfc2VuZGVyX2RyeV9ldmVudChz
dHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAJICAgICAgICAgICAgICAgICAgJnN0Y2ItPnNjdHBfc29j
a2V0LT5zb19yY3YsIDEsIFNDVFBfUkVBRF9MT0NLX05PVF9IRUxELCBzb19sb2NrZWQpOwogfQog
Ci0KIHZvaWQKIHNjdHBfbm90aWZ5X3N0cmVhbV9yZXNldF9hZGQoc3RydWN0IHNjdHBfdGNiICpz
dGNiLCB1aW50MTZfdCBudW1iZXJpbiwgdWludDE2X3QgbnVtYmVyb3V0LCBpbnQgZmxhZykKIHsK
QEAgLTQxMDcsOCArNDA5MSw2IEBAIHNjdHBfbm90aWZ5X3N0cmVhbV9yZXNldF90c24oc3RydWN0
IHNjdHBfdGNiICpzdGNiLCB1aW50MzJfdCBzZW5kaW5nX3RzbiwgdWludDMyCiAJICAgICZzdGNi
LT5zY3RwX3NvY2tldC0+c29fcmN2LCAxLCBTQ1RQX1JFQURfTE9DS19OT1RfSEVMRCwgU0NUUF9T
T19OT1RfTE9DS0VEKTsKIH0KIAotCi0KIHN0YXRpYyB2b2lkCiBzY3RwX25vdGlmeV9zdHJlYW1f
cmVzZXQoc3RydWN0IHNjdHBfdGNiICpzdGNiLAogICAgIGludCBudW1iZXJfZW50cmllcywgdWlu
dDE2X3QgKiBsaXN0LCBpbnQgZmxhZykKQEAgLTQxNzMsNyArNDE1NSw2IEBAIHNjdHBfbm90aWZ5
X3N0cmVhbV9yZXNldChzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAJICAgICAgICAgICAgICAgICAg
JnN0Y2ItPnNjdHBfc29ja2V0LT5zb19yY3YsIDEsIFNDVFBfUkVBRF9MT0NLX05PVF9IRUxELCBT
Q1RQX1NPX05PVF9MT0NLRUQpOwogfQogCi0KIHN0YXRpYyB2b2lkCiBzY3RwX25vdGlmeV9yZW1v
dGVfZXJyb3Ioc3RydWN0IHNjdHBfdGNiICpzdGNiLCB1aW50MTZfdCBlcnJvciwgc3RydWN0IHNj
dHBfZXJyb3JfY2h1bmsgKmNodW5rKQogewpAQCAtNDIzMywxMyArNDIxNCwxMiBAQCBzY3RwX25v
dGlmeV9yZW1vdGVfZXJyb3Ioc3RydWN0IHNjdHBfdGNiICpzdGNiLCB1aW50MTZfdCBlcnJvciwg
c3RydWN0IHNjdHBfZXJybwogCQlzY3RwX2FkZF90b19yZWFkcShzdGNiLT5zY3RwX2VwLCBzdGNi
LAogCQkgICAgICAgICAgICAgICAgICBjb250cm9sLAogCQkgICAgICAgICAgICAgICAgICAmc3Rj
Yi0+c2N0cF9zb2NrZXQtPnNvX3JjdiwgMSwKLQkJCQkgIFNDVFBfUkVBRF9MT0NLX05PVF9IRUxE
LCBTQ1RQX1NPX05PVF9MT0NLRUQpOworCQkgICAgICAgICAgICAgICAgICBTQ1RQX1JFQURfTE9D
S19OT1RfSEVMRCwgU0NUUF9TT19OT1RfTE9DS0VEKTsKIAl9IGVsc2UgewogCQlzY3RwX21fZnJl
ZW0obV9ub3RpZnkpOwogCX0KIH0KIAotCiB2b2lkCiBzY3RwX3VscF9ub3RpZnkodWludDMyX3Qg
bm90aWZpY2F0aW9uLCBzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsCiAgICAgdWludDMyX3QgZXJyb3Is
IHZvaWQgKmRhdGEsIGludCBzb19sb2NrZWQpCkBAIC01NTEwLDcgKzU0OTAsNiBAQCBzY3RwX2Zy
ZWVfYnVmc3BhY2Uoc3RydWN0IHNjdHBfdGNiICpzdGNiLCBzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlv
biAqYXNvYywKIAkJCXN0Y2ItPnNjdHBfc29ja2V0LT5zb19zbmQuc2JfY2MgLT0gdHAxLT5ib29r
X3NpemU7CiAJCX0gZWxzZSB7CiAJCQlzdGNiLT5zY3RwX3NvY2tldC0+c29fc25kLnNiX2NjID0g
MDsKLQogCQl9CiAJfQogfQpAQCAtNjE1OSw3ICs2MTM4LDYgQEAgc2N0cF9zb3JlY3Ztc2coc3Ry
dWN0IHNvY2tldCAqc28sCiAjaWYgZGVmaW5lZChfX0FQUExFX18pICYmICFkZWZpbmVkKF9fVXNl
cnNwYWNlX18pCiAJZXJyb3IgPSBzYmxvY2soJnNvLT5zb19yY3YsIFNCTE9DS1dBSVQoaW5fZmxh
Z3MpKTsKICNlbmRpZgotCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19V
c2Vyc3BhY2VfXykKIAllcnJvciA9IHNibG9jaygmc28tPnNvX3JjdiwgKGJsb2NrX2FsbG93ZWQg
PyBTQkxfV0FJVCA6IDApKTsKICNlbmRpZgpAQCAtNzEyMiw3ICs3MTAwLDYgQEAgc2N0cF9zb3Jl
Y3Ztc2coc3RydWN0IHNvY2tldCAqc28sCiAJcmV0dXJuIChlcnJvcik7CiB9CiAKLQogI2lmZGVm
IFNDVFBfTUJVRl9MT0dHSU5HCiBzdHJ1Y3QgbWJ1ZiAqCiBzY3RwX21fZnJlZShzdHJ1Y3QgbWJ1
ZiAqbSkKQEAgLTcxOTAsNyArNzE2Nyw2IEBAIHNjdHBfZHluYW1pY19zZXRfcHJpbWFyeShzdHJ1
Y3Qgc29ja2FkZHIgKnNhLCB1aW50MzJfdCB2cmZfaWQpCiAjaWYgZGVmaW5lZChfX1VzZXJzcGFj
ZV9fKQogLyogbm8gc2N0cF9zb3JlY2VpdmUgZm9yIF9fVXNlcnNwYWNlX18gbm93ICovCiAjZW5k
aWYKLQogI2lmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiBpbnQKIHNjdHBfc29yZWNlaXZlKAlz
dHJ1Y3Qgc29ja2V0ICpzbywKQEAgLTcyNzksNyArNzI1NSw2IEBAIHNjdHBfc29yZWNlaXZlKAlz
dHJ1Y3Qgc29ja2V0ICpzbywKIAlyZXR1cm4gKGVycm9yKTsKIH0KIAotCiAjaWYgZGVmaW5lZChf
V0lOMzIpICYmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAvKgogICogR2VuZXJhbCByb3V0aW5l
IHRvIGFsbG9jYXRlIGEgaGFzaCB0YWJsZSB3aXRoIGNvbnRyb2wgb2YgbWVtb3J5IGZsYWdzLgpA
QCAtNzMyNyw3ICs3MzAyLDYgQEAgc2N0cF9oYXNoaW5pdF9mbGFncyhpbnQgZWxlbWVudHMsIHN0
cnVjdCBtYWxsb2NfdHlwZSAqdHlwZSwKIAlyZXR1cm4gKGhhc2h0YmwpOwogfQogI2VuZGlmCi0K
ICNlbHNlIC8qICBfX1VzZXJzcGFjZV9fIGlmZGVmIGFib3ZlIHNjdHBfc29yZWNlaXZlICovCiAv
KgogICogX19Vc2Vyc3BhY2VfXyBEZWZpbmluZyBzY3RwX2hhc2hpbml0X2ZsYWdzKCkgYW5kIHNj
dHBfaGFzaGRlc3Ryb3koKSBmb3IgdXNlcmxhbmQuCkBAIC03Mzc4LDcgKzczNTIsNiBAQCBzY3Rw
X2hhc2hpbml0X2ZsYWdzKGludCBlbGVtZW50cywgc3RydWN0IG1hbGxvY190eXBlICp0eXBlLAog
CXJldHVybiAoaGFzaHRibCk7CiB9CiAKLQogdm9pZAogc2N0cF9oYXNoZGVzdHJveSh2b2lkICp2
aGFzaHRibCwgc3RydWN0IG1hbGxvY190eXBlICp0eXBlLCB1X2xvbmcgaGFzaG1hc2spCiB7CkBA
IC03MzkzLDcgKzczNjYsNiBAQCBzY3RwX2hhc2hkZXN0cm95KHZvaWQgKnZoYXNodGJsLCBzdHJ1
Y3QgbWFsbG9jX3R5cGUgKnR5cGUsIHVfbG9uZyBoYXNobWFzaykKIAlGUkVFKGhhc2h0YmwsIHR5
cGUpOwogfQogCi0KIHZvaWQKIHNjdHBfaGFzaGZyZWVkZXN0cm95KHZvaWQgKnZoYXNodGJsLCBz
dHJ1Y3QgbWFsbG9jX3R5cGUgKnR5cGUsIHVfbG9uZyBoYXNobWFzaykKIHsKQEAgLTc0MTgsMTAg
KzczOTAsNyBAQCBzY3RwX2hhc2hmcmVlZGVzdHJveSh2b2lkICp2aGFzaHRibCwgc3RydWN0IG1h
bGxvY190eXBlICp0eXBlLCB1X2xvbmcgaGFzaG1hc2spCiAJRlJFRShoYXNodGJsLCB0eXBlKTsK
IH0KIAotCiAjZW5kaWYKLQotCiBpbnQKIHNjdHBfY29ubmVjdHhfaGVscGVyX2FkZChzdHJ1Y3Qg
c2N0cF90Y2IgKnN0Y2IsIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKIAkJCSBpbnQgdG90YWRkciwg
aW50ICplcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldC9zY3Rw
dXRpbC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91
c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHB1dGlsLmgKaW5kZXggNzY0
NjE2OTUwNTVlNTJmNDliNDE2OGYzMmUxMjY3YjIxMTE2NTYwYS4uMTRhYWY1MzBhMTY3YzFmYzUx
YTAzODRhYjQ0ZTE3ZDhhOGNkNzA5NyAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9u
ZXRpbmV0L3NjdHB1dGlsLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0L3NjdHB1
dGlsLmgKQEAgLTM0LDcgKzM0LDcgQEAKIAogI2lmIGRlZmluZWQoX19GcmVlQlNEX18pICYmICFk
ZWZpbmVkKF9fVXNlcnNwYWNlX18pCiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+Ci1fX0ZCU0RJRCgi
JEZyZWVCU0Q6IGhlYWQvc3lzL25ldGluZXQvc2N0cHV0aWwuaCAzNjQyNjggMjAyMC0wOC0xNiAx
MTo1MDozN1ogdHVleGVuICQiKTsKK19fRkJTRElEKCIkRnJlZUJTRDogaGVhZC9zeXMvbmV0aW5l
dC9zY3RwdXRpbC5oIDM2NTA3MSAyMDIwLTA5LTAxIDIxOjE5OjE0WiBtamcgJCIpOwogI2VuZGlm
CiAKICNpZm5kZWYgX05FVElORVRfU0NUUF9VVElMX0hfCkBAIC02NCw3ICs2NCw2IEBAIHNjdHBf
bG9nX3RyYWNlKHVpbnQzMl90IGZyLCBjb25zdCBjaGFyICpzdHIgU0NUUF9VTlVTRUQsIHVpbnQz
Ml90IGEsIHVpbnQzMl90IGIsCiAKICNkZWZpbmUgc2N0cF9nZXRfYXNzb2NpZChzdGNiKSAoKHNj
dHBfYXNzb2NfdClzdGNiLT5hc29jLmFzc29jX2lkKQogCi0KIC8qCiAgKiBGdW5jdGlvbiBwcm90
b3R5cGVzCiAgKi8KQEAgLTE3Myw3ICsxNzIsNiBAQCBzY3RwX3B1bGxfb2ZmX2NvbnRyb2xfdG9f
bmV3X2lucChzdHJ1Y3Qgc2N0cF9pbnBjYiAqb2xkX2lucCwKICAgICBzdHJ1Y3Qgc2N0cF9pbnBj
YiAqbmV3X2lucCwKICAgICBzdHJ1Y3Qgc2N0cF90Y2IgKnN0Y2IsIGludCB3YWl0ZmxhZ3MpOwog
Ci0KIHZvaWQgc2N0cF9zdG9wX3RpbWVyc19mb3Jfc2h1dGRvd24oc3RydWN0IHNjdHBfdGNiICop
OwogCiAvKiBTdG9wIGFsbCB0aW1lcnMgZm9yIGFzc29jaWF0aW9uIGFuZCByZW1vdGUgYWRkcmVz
c2VzLiAqLwpAQCAtMTk2LDcgKzE5NCw2IEBAIHNjdHBfYWJvcnRfYXNzb2NpYXRpb24oc3RydWN0
IHNjdHBfaW5wY2IgKiwgc3RydWN0IHNjdHBfdGNiICosIHN0cnVjdCBtYnVmICosCiAjZW5kaWYK
ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QsIHVpbnQxNl90KTsKIAotCiAvKiBXZSBj
aG9vc2UgdG8gYWJvcnQgdmlhIHVzZXIgaW5wdXQgKi8KIHZvaWQKIHNjdHBfYWJvcnRfYW5fYXNz
b2NpYXRpb24oc3RydWN0IHNjdHBfaW5wY2IgKiwgc3RydWN0IHNjdHBfdGNiICosCkBAIC0zNjQs
NyArMzYxLDYgQEAgdm9pZCBzY3RwX2xvZ19zdHJtX2RlbF9hbHQoc3RydWN0IHNjdHBfdGNiICpz
dGNiLCB1aW50MzJfdCwgdWludDE2X3QsIHVpbnQxNl90LAogCiB2b2lkIHNjdHBfbG9nX25hZ2xl
X2V2ZW50KHN0cnVjdCBzY3RwX3RjYiAqc3RjYiwgaW50IGFjdGlvbik7CiAKLQogI2lmZGVmIFND
VFBfTUJVRl9MT0dHSU5HCiB2b2lkCiBzY3RwX2xvZ19tYihzdHJ1Y3QgbWJ1ZiAqbSwgaW50IGZy
b20pOwpAQCAtMzk4LDcgKzM5NCw2IEBAIHZvaWQgc2N0cF9sb2dfbWFwKHVpbnQzMl90LCB1aW50
MzJfdCwgdWludDMyX3QsIGludCk7CiB2b2lkIHNjdHBfcHJpbnRfbWFwcGluZ19hcnJheShzdHJ1
Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYyk7CiB2b2lkIHNjdHBfY2xyX3N0YXRfbG9nKHZvaWQp
OwogCi0KICNpZmRlZiBTQ1RQX0FVRElUSU5HX0VOQUJMRUQKIHZvaWQKIHNjdHBfYXVkaXRpbmco
aW50LCBzdHJ1Y3Qgc2N0cF9pbnBjYiAqLCBzdHJ1Y3Qgc2N0cF90Y2IgKiwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91
c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldDYvc2N0cDZfdXNycmVxLmMgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91
c3JzY3RwbGliL25ldGluZXQ2L3NjdHA2X3VzcnJlcS5jCmluZGV4IDFmYzgxZGFhODdkZmRlODJm
MjcwOGJkMzgzZDMyMjYxNDU2NzFmMmIuLjVhOTMxZGQ1YTJmY2RhMjU0ZmE3Y2Q0ZGI2MmViNzNl
NWE5ZTZlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvbmV0aW5ldDYvc2N0cDZf
dXNycmVxLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi9uZXRpbmV0Ni9zY3RwNl91c3JyZXEu
YwpAQCAtMzQsNyArMzQsNyBAQAogCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmlu
ZWQoX19Vc2Vyc3BhY2VfXykKICNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KLV9fRkJTRElEKCIkRnJl
ZUJTRDogaGVhZC9zeXMvbmV0aW5ldDYvc2N0cDZfdXNycmVxLmMgMzYxODk1IDIwMjAtMDYtMDcg
MTQ6Mzk6MjBaIHR1ZXhlbiAkIik7CitfX0ZCU0RJRCgiJEZyZWVCU0Q6IGhlYWQvc3lzL25ldGlu
ZXQ2L3NjdHA2X3VzcnJlcS5jIDM2NTA3MSAyMDIwLTA5LTAxIDIxOjE5OjE0WiBtamcgJCIpOwog
I2VuZGlmCiAKICNpbmNsdWRlIDxuZXRpbmV0L3NjdHBfb3MuaD4KQEAgLTEwNSw3ICsxMDUsNyBA
QCB2b2lkCiBpbjZfc2luXzJfdjRtYXBzaW42KGNvbnN0IHN0cnVjdCBzb2NrYWRkcl9pbiAqc2lu
LCBzdHJ1Y3Qgc29ja2FkZHJfaW42ICpzaW42KQogewogCW1lbXNldChzaW42LCAwLCBzaXplb2Yo
c3RydWN0IHNvY2thZGRyX2luNikpOwotIAlzaW42LT5zaW42X2ZhbWlseSA9IEFGX0lORVQ2Owor
CXNpbjYtPnNpbjZfZmFtaWx5ID0gQUZfSU5FVDY7CiAjaWZkZWYgSEFWRV9TSU42X0xFTgogCXNp
bjYtPnNpbjZfbGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbjYpOwogI2VuZGlmCkBAIC0x
MTYsOSArMTE2LDkgQEAgaW42X3Npbl8yX3Y0bWFwc2luNihjb25zdCBzdHJ1Y3Qgc29ja2FkZHJf
aW4gKnNpbiwgc3RydWN0IHNvY2thZGRyX2luNiAqc2luNikKIAkoKHVpbnQzMl90ICopJnNpbjYt
PnNpbjZfYWRkcilbMl0gPSBodG9ubCgweGZmZmYpOwogCSgodWludDMyX3QgKikmc2luNi0+c2lu
Nl9hZGRyKVszXSA9IHNpbi0+c2luX2FkZHIuc19hZGRyOwogI2Vsc2UKLSAJc2luNi0+c2luNl9h
ZGRyLnM2X2FkZHIzMlswXSA9IDA7CisJc2luNi0+c2luNl9hZGRyLnM2X2FkZHIzMlswXSA9IDA7
CiAJc2luNi0+c2luNl9hZGRyLnM2X2FkZHIzMlsxXSA9IDA7Ci0gCXNpbjYtPnNpbjZfYWRkci5z
Nl9hZGRyMzJbMl0gPSBodG9ubCgweGZmZmYpOworCXNpbjYtPnNpbjZfYWRkci5zNl9hZGRyMzJb
Ml0gPSBodG9ubCgweGZmZmYpOwogCXNpbjYtPnNpbjZfYWRkci5zNl9hZGRyMzJbM10gPSBzaW4t
PnNpbl9hZGRyLnNfYWRkcjsKICNlbmRpZgogfQpAQCAtMjk5LDcgKzI5OSw2IEBAIHNjdHA2X2lu
cHV0KHN0cnVjdCBtYnVmICoqaV9wYWssIGludCAqb2ZmcCkKIAlyZXR1cm4gKHNjdHA2X2lucHV0
X3dpdGhfcG9ydChpX3Bhaywgb2ZmcCwgMCkpOwogfQogI2VuZGlmCi0KICNpZiBkZWZpbmVkKF9f
RnJlZUJTRF9fKQogaW50CiBzY3RwNl9pbnB1dChzdHJ1Y3QgbWJ1ZiAqKmlfcGFrLCBpbnQgKm9m
ZnAsIGludCBwcm90byBTQ1RQX1VOVVNFRCkKQEAgLTY1OCw3ICs2NTcsNiBAQCBvdXQ6CiBTWVND
VExfUFJPQyhfbmV0X2luZXQ2X3NjdHA2LCBPSURfQVVUTywgZ2V0Y3JlZCwgQ1RMVFlQRV9PUEFR
VUUgfCBDVExGTEFHX1JXLAogICAgIDAsIDAsCiAgICAgc2N0cDZfZ2V0Y3JlZCwgIlMsdWNyZWQi
LCAiR2V0IHRoZSB1Y3JlZCBvZiBhIFNDVFA2IGNvbm5lY3Rpb24iKTsKLQogI2VuZGlmCiAKIC8q
IFRoaXMgaXMgdGhlIHNhbWUgYXMgdGhlIHNjdHBfYWJvcnQoKSBjb3VsZCBiZSBtYWRlIGNvbW1v
biAqLwpAQCAtOTExLDcgKzkwOSw2IEBAIG91dDoKIAlyZXR1cm4gKGVycm9yKTsKIH0KIAotCiAj
aWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19V
c2Vyc3BhY2VfXykKICNpZiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogc3RhdGljIHZvaWQKQEAg
LTk0OSwxNiArOTQ2LDEzIEBAIHNjdHA2X2Rpc2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc28pCiAJ
cmV0dXJuIChzY3RwX2Rpc2Nvbm5lY3Qoc28pKTsKIH0KIAotCiBpbnQKICNpZiBkZWZpbmVkKF9f
RnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX1VzZXJzcGFjZV9fKQogc2N0cF9zZW5kbShzdHJ1Y3Qg
c29ja2V0ICpzbywgaW50IGZsYWdzLCBzdHJ1Y3QgbWJ1ZiAqbSwgc3RydWN0IHNvY2thZGRyICph
ZGRyLAogICAgIHN0cnVjdCBtYnVmICpjb250cm9sLCBzdHJ1Y3QgdGhyZWFkICpwKTsKLQogI2Vs
c2UKIHNjdHBfc2VuZG0oc3RydWN0IHNvY2tldCAqc28sIGludCBmbGFncywgc3RydWN0IG1idWYg
Km0sIHN0cnVjdCBzb2NrYWRkciAqYWRkciwKICAgICBzdHJ1Y3QgbWJ1ZiAqY29udHJvbCwgc3Ry
dWN0IHByb2MgKnApOwotCiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmlu
ZWQoX19Vc2Vyc3BhY2VfXykKQEAgLTE1NjAsNyArMTU1NCw2IEBAIHNjdHA2X2luNmdldGFkZHIo
c3RydWN0IHNvY2tldCAqc28sIHN0cnVjdCBtYnVmICpuYW0pCiAJcmV0dXJuIChlcnJvcik7CiB9
CiAKLQogI2lmICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCiBzdGF0aWMgaW50CiBzY3RwNl9nZXRw
ZWVyYWRkcihzdHJ1Y3Qgc29ja2V0ICpzbywgc3RydWN0IHNvY2thZGRyICoqbmFtKQpAQCAtMTcx
MCw3ICsxNzAzLDcgQEAgc2N0cDZfdXNycmVxKHNvLCByZXEsIG0sIG5hbSwgY29udHJvbCwgcCkK
IAkJc3dpdGNoIChmYW1pbHkpIHsKIAkJY2FzZSBQRl9JTkVUOgogCQkJZXJyb3IgPSBpbl9jb250
cm9sKHNvLCAobG9uZyltLCAoY2FkZHJfdCluYW0sCi0JCQkgICAgKHN0cnVjdCBpZm5ldCAqKWNv
bnRyb2wgKTsKKwkJCSAgICAoc3RydWN0IGlmbmV0ICopY29udHJvbCk7CiAJCQlicmVhazsKICNp
ZmRlZiBJTkVUNgogCQljYXNlIFBGX0lORVQ2OgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0
cGxpYi91c2VyX2Vudmlyb25tZW50LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfZW52aXJv
bm1lbnQuYwppbmRleCBkYzlkOThhMzkyMDEwNThmZWUxOTNlNzIwZjI5MjFjOTMxZmIxMGY3Li4x
ODg3NzE4OTExZTZlNGRlMTYxMjE1YmE3MDFmMGEwYmFkNmM4OTQwIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0
cGxpYi91c3JzY3RwbGliL3VzZXJfZW52aXJvbm1lbnQuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3Rw
bGliL3VzZXJfZW52aXJvbm1lbnQuYwpAQCAtMzAsMTggKzMwLDIzIEBACiAKIC8qIF9fVXNlcnNw
YWNlX18gKi8KIAotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2lmICFkZWZpbmVkKF9XSU4zMikKKyNp
ZiBkZWZpbmVkKF9XSU4zMikKKyNpZiAhZGVmaW5lZChfQ1JUX1JBTkRfUykgJiYgIWRlZmluZWQo
RlVaWklOR19CVUlMRF9NT0RFX1VOU0FGRV9GT1JfUFJPRFVDVElPTikKKyNkZWZpbmUgX0NSVF9S
QU5EX1MKKyNlbmRpZgorI2Vsc2UKICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDxuZXRp
bmV0L3NjdHBfb3NfdXNlcnNwYWNlLmg+CiAjZW5kaWYKKyNpZmRlZiBJTlZBUklBTlRTCisjaW5j
bHVkZSA8bmV0aW5ldC9zY3RwX3BjYi5oPgorI2VuZGlmCiAjaW5jbHVkZSA8dXNlcl9lbnZpcm9u
bWVudC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogLyogI2luY2x1ZGUgPHN5cy9wYXJhbS5o
PiBkZWZpbmVzIE1JTiAqLwogI2lmICFkZWZpbmVkKE1JTikKICNkZWZpbmUgTUlOKGFyZzEsYXJn
MikgKChhcmcxKSA8IChhcmcyKSA/IChhcmcxKSA6IChhcmcyKSkKICNlbmRpZgotI2luY2x1ZGUg
PHN0cmluZy5oPgogCiAjZGVmaW5lIHVIWiAxMDAwCiAKQEAgLTY0LDY5ICs2OSwzMTYgQEAgdXNl
cmxhbmRfbXV0ZXhfdCBhdG9taWNfbXR4OwogICogcHJvdmlkZSBfc29tZV8ga2luZCBvZiByYW5k
b21uZXNzLiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQKICAqIGluc2lkZSBvdGhlciBSTkcncywg
bGlrZSBhcmM0cmFuZG9tKDkpLgogICovCi0jaWZkZWYgRlVaWklOR19CVUlMRF9NT0RFX1VOU0FG
RV9GT1JfUFJPRFVDVElPTgorI2lmIGRlZmluZWQoRlVaWklOR19CVUlMRF9NT0RFX1VOU0FGRV9G
T1JfUFJPRFVDVElPTikKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwordm9pZAoraW5pdF9yYW5kb20o
dm9pZCkKK3sKKwlyZXR1cm47Cit9CisKK3ZvaWQKK3JlYWRfcmFuZG9tKHZvaWQgKmJ1Ziwgc2l6
ZV90IHNpemUpCit7CisJbWVtc2V0KGJ1ZiwgJ0EnLCBzaXplKTsKKwlyZXR1cm47Cit9CisKK3Zv
aWQKK2ZpbmlzaF9yYW5kb20odm9pZCkKK3sKKwlyZXR1cm47Cit9CisvKiBUaGlzIGRlZmluZSBj
YW4gYmUgdXNlZCB0byBvcHRpb25hbGx5IHVzZSBPcGVuU1NMJ3MgcmFuZG9tIG51bWJlciB1dGls
aXR5LAorICogd2hpY2ggaXMgY2FwYWJsZSBvZiBieXBhc3NpbmcgdGhlIGNocm9taXVtIHNhbmRi
b3ggd2hpY2ggbm9ybWFsbHkgd291bGQKKyAqIHByZXZlbnQgb3BlbmluZyBmaWxlcywgaW5jbHVk
aW5nIC9kZXYvdXJhbmRvbS4KKyAqLworI2VsaWYgZGVmaW5lZChTQ1RQX1VTRV9PUEVOU1NMX1JB
TkQpCisjaW5jbHVkZSA8b3BlbnNzbC9yYW5kLmg+CisKKy8qIFJlcXVpcmluZyBCb3JpbmdTU0wg
YmVjYXVzZSBpdCBndWFyYW50ZWVzIHRoYXQgUkFORF9ieXRlcyB3aWxsIHN1Y2NlZWQuICovCisj
aWZuZGVmIE9QRU5TU0xfSVNfQk9SSU5HU1NMCisjZXJyb3IgT25seSBCb3JpbmdTU0wgaXMgc3Vw
cG9ydGVkIHdpdGggU0NUUF9VU0VfT1BFTlNTTF9SQU5ELgorI2VuZGlmCisKK3ZvaWQKK2luaXRf
cmFuZG9tKHZvaWQpCit7CisJcmV0dXJuOworfQorCit2b2lkCityZWFkX3JhbmRvbSh2b2lkICpi
dWYsIHNpemVfdCBzaXplKQoreworCVJBTkRfYnl0ZXMoKHVpbnQ4X3QgKilidWYsIHNpemUpOwor
CXJldHVybjsKK30KKwordm9pZAorZmluaXNoX3JhbmRvbSh2b2lkKQoreworCXJldHVybjsKK30K
KyNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykgfHwg
ZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfX05ldEJTRF9fKSB8fCBkZWZpbmVkKF9f
QVBQTEVfXykgfHwgZGVmaW5lZChfX0JpdHJpZ19fKQorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCiB2
b2lkCiBpbml0X3JhbmRvbSh2b2lkKQogewogCXJldHVybjsKIH0KIAotaW50Ci1yZWFkX3JhbmRv
bSh2b2lkICpidWYsIGludCBjb3VudCkKK3ZvaWQKK3JlYWRfcmFuZG9tKHZvaWQgKmJ1Ziwgc2l6
ZV90IHNpemUpCiB7Ci0JbWVtc2V0KGJ1ZiwgJ0EnLCBjb3VudCk7Ci0JcmV0dXJuIChjb3VudCk7
CisJYXJjNHJhbmRvbV9idWYoYnVmLCBzaXplKTsKKwlyZXR1cm47CiB9Ci0jZWxpZiBkZWZpbmVk
KF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRHJhZ29uRmx5X18pIHx8IGRlZmluZWQoX19PcGVu
QlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19BUFBMRV9fKQorCit2
b2lkCitmaW5pc2hfcmFuZG9tKHZvaWQpCit7CisJcmV0dXJuOworfQorI2VsaWYgZGVmaW5lZChf
V0lOMzIpCisjaW5jbHVkZSA8c3RkbGliLmg+CisKIHZvaWQKIGluaXRfcmFuZG9tKHZvaWQpCiB7
CiAJcmV0dXJuOwogfQogCi1pbnQKLXJlYWRfcmFuZG9tKHZvaWQgKmJ1ZiwgaW50IGNvdW50KQor
dm9pZAorcmVhZF9yYW5kb20odm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKLQlpZiAoY291bnQg
Pj0gMCkgewotCQlhcmM0cmFuZG9tX2J1ZihidWYsIGNvdW50KTsKKwl1bnNpZ25lZCBpbnQgcmFu
ZHZhbDsKKwlzaXplX3QgcG9zaXRpb24sIHJlbWFpbmluZzsKKworCXBvc2l0aW9uID0gMDsKKwl3
aGlsZSAocG9zaXRpb24gPCBzaXplKSB7CisJCWlmIChyYW5kX3MoJnJhbmR2YWwpID09IDApIHsK
KwkJCXJlbWFpbmluZyA9IE1JTihzaXplIC0gcG9zaXRpb24sIHNpemVvZih1bnNpZ25lZCBpbnQp
KTsKKwkJCW1lbWNweSgoY2hhciAqKWJ1ZiArIHBvc2l0aW9uLCAmcmFuZHZhbCwgcmVtYWluaW5n
KTsKKwkJCXBvc2l0aW9uICs9IHNpemVvZih1bnNpZ25lZCBpbnQpOworCQl9CiAJfQotCXJldHVy
biAoY291bnQpOworCXJldHVybjsKIH0KLSNlbHNlCisKK3ZvaWQKK2ZpbmlzaF9yYW5kb20odm9p
ZCkKK3sKKwlyZXR1cm47Cit9CisjZWxpZiAoZGVmaW5lZChfX0FORFJPSURfXykgJiYgKF9fQU5E
Uk9JRF9BUElfXyA8IDI4KSkgfHwgZGVmaW5lZChfX0VNU0NSSVBURU5fXykKKyNpbmNsdWRlIDxm
Y250bC5oPgorCitzdGF0aWMgaW50IGZkID0gLTE7CisKK3ZvaWQKK2luaXRfcmFuZG9tKHZvaWQp
Cit7CisJZmQgPSBvcGVuKCIvZGV2L3VyYW5kb20iLCBPX1JET05MWSk7CisJcmV0dXJuOworfQor
Cit2b2lkCityZWFkX3JhbmRvbSh2b2lkICpidWYsIHNpemVfdCBzaXplKQoreworCXNpemVfdCBw
b3NpdGlvbjsKKwlzc2l6ZV90IG47CisKKwlwb3NpdGlvbiA9IDA7CisJd2hpbGUgKHBvc2l0aW9u
IDwgc2l6ZSkgeworCQluID0gcmVhZChmZCwgKGNoYXIgKilidWYgKyBwb3NpdGlvbiwgc2l6ZSAt
IHBvc2l0aW9uKTsKKwkJaWYgKG4gPiAwKSB7CisJCQlwb3NpdGlvbiArPSBuOworCQl9CisJfQor
CXJldHVybjsKK30KKwordm9pZAorZmluaXNoX3JhbmRvbSh2b2lkKQoreworCWNsb3NlKGZkKTsK
KwlyZXR1cm47Cit9CisjZWxpZiBkZWZpbmVkKF9fQU5EUk9JRF9fKSAmJiAoX19BTkRST0lEX0FQ
SV9fID49IDI4KQorI2luY2x1ZGUgPHN5cy9yYW5kb20uaD4KKwogdm9pZAogaW5pdF9yYW5kb20o
dm9pZCkKIHsKLQlzdHJ1Y3QgdGltZXZhbCBub3c7Ci0JdW5zaWduZWQgaW50IHNlZWQ7CisJcmV0
dXJuOworfQorCit2b2lkCityZWFkX3JhbmRvbSh2b2lkICpidWYsIHNpemVfdCBzaXplKQorewor
CXNpemVfdCBwb3NpdGlvbjsKKwlzc2l6ZV90IG47CisKKwlwb3NpdGlvbiA9IDA7CisJd2hpbGUg
KHBvc2l0aW9uIDwgc2l6ZSkgeworCQluID0gZ2V0cmFuZG9tKChjaGFyICopYnVmICsgcG9zaXRp
b24sIHNpemUgLSBwb3NpdGlvbiwgMCk7CisJCWlmIChuID4gMCkgeworCQkJcG9zaXRpb24gKz0g
bjsKKwkJfQorCX0KKwlyZXR1cm47Cit9CisKK3ZvaWQKK2ZpbmlzaF9yYW5kb20odm9pZCkKK3sK
KwlyZXR1cm47Cit9CisjZWxpZiBkZWZpbmVkKF9fbGludXhfXykKKyNpbmNsdWRlIDxmY250bC5o
PgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+CiAKLQkodm9p
ZClTQ1RQX0dFVFRJTUVfVElNRVZBTCgmbm93KTsKLQlzZWVkID0gMDsKLQlzZWVkIHw9ICh1bnNp
Z25lZCBpbnQpbm93LnR2X3NlYzsKLQlzZWVkIHw9ICh1bnNpZ25lZCBpbnQpbm93LnR2X3VzZWM7
Ci0jaWYgIWRlZmluZWQoX1dJTjMyKSAmJiEgZGVmaW5lZChfX25hdGl2ZV9jbGllbnRfXykKLQlz
ZWVkIHw9IGdldHBpZCgpOworI2lmIGRlZmluZWQoX19oYXNfZmVhdHVyZSkKKyNpZiBfX2hhc19m
ZWF0dXJlKG1lbW9yeV9zYW5pdGl6ZXIpCit2b2lkIF9fbXNhbl91bnBvaXNvbih2b2lkICosIHNp
emVfdCk7CiAjZW5kaWYKLSNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX25hdGl2ZV9j
bGllbnRfXykKLQlzcmFuZChzZWVkKTsKLSNlbHNlCi0Jc3JhbmRvbShzZWVkKTsKICNlbmRpZgor
CisjaWZkZWYgX19OUl9nZXRyYW5kb20KKyNpZiAhZGVmaW5lZChHUk5EX05PTkJMT0NLKQorI2Rl
ZmluZSBHUk5EX05PTkJMT0NLIDEKKyNlbmRpZgorc3RhdGljIGludCBnZXRyYW5kb21fYXZhaWxh
YmxlID0gMDsKKyNlbmRpZgorc3RhdGljIGludCBmZCA9IC0xOworCit2b2lkCitpbml0X3JhbmRv
bSh2b2lkKQoreworI2lmZGVmIF9fTlJfZ2V0cmFuZG9tCisJY2hhciBkdW1teTsKKwlzc2l6ZV90
IG4gPSBzeXNjYWxsKF9fTlJfZ2V0cmFuZG9tLCAmZHVtbXksIHNpemVvZihkdW1teSksIEdSTkRf
Tk9OQkxPQ0spOworCWlmIChuID4gMCB8fCBlcnJubyA9PSBFSU5UUiB8fCBlcnJubyA9PSBFQUdB
SU4pIHsKKwkJLyogRWl0aGVyIGdldHJhbmRvbSBzdWNjZWVkZWQsIHdhcyBpbnRlcnJ1cHRlZCBv
ciBpcyB3YWl0aW5nIGZvciBlbnRyb3B5OworCQkgKiBhbGwgb2Ygd2hpY2ggbWVhbiB0aGUgc3lz
Y2FsbCBpcyBhdmFpbGFibGUuCisJCSAqLworCQlnZXRyYW5kb21fYXZhaWxhYmxlID0gMTsKKwl9
IGVsc2UgeworI2lmZGVmIElOVkFSSUFOVFMKKwkJaWYgKGVycm5vICE9IEVOT1NZUykgeworCQkJ
cGFuaWMoImdldHJhbmRvbSBzeXNjYWxsIHJldHVybmVkIHVuZXhwZWN0ZWQgZXJyb3I6ICVkIiwg
ZXJybm8pOworCQl9CisjZW5kaWYKKwkJLyogSWYgdGhlIHN5c2NhbGwgaXNuJ3QgYXZhaWxhYmxl
LCBmYWxsIGJhY2sgdG8gL2Rldi91cmFuZG9tLiAqLworI2VuZGlmCisJCWZkID0gb3BlbigiL2Rl
di91cmFuZG9tIiwgT19SRE9OTFkpOworI2lmZGVmIF9fTlJfZ2V0cmFuZG9tCisJfQorI2VuZGlm
CisJcmV0dXJuOworfQorCit2b2lkCityZWFkX3JhbmRvbSh2b2lkICpidWYsIHNpemVfdCBzaXpl
KQoreworCXNpemVfdCBwb3NpdGlvbjsKKwlzc2l6ZV90IG47CisKKwlwb3NpdGlvbiA9IDA7CisJ
d2hpbGUgKHBvc2l0aW9uIDwgc2l6ZSkgeworI2lmZGVmIF9fTlJfZ2V0cmFuZG9tCisJCWlmIChn
ZXRyYW5kb21fYXZhaWxhYmxlKSB7CisJCQkvKiBVc2luZyBzeXNjYWxsIGRpcmVjdGx5IGJlY2F1
c2UgZ2V0cmFuZG9tIGlzbid0IHByZXNlbnQgaW4gZ2xpYmMgPCAyLjI1LgorCQkJICovCisJCQlu
ID0gc3lzY2FsbChfX05SX2dldHJhbmRvbSwgKGNoYXIgKilidWYgKyBwb3NpdGlvbiwgc2l6ZSAt
IHBvc2l0aW9uLCAwKTsKKwkJCWlmIChuID4gMCkgeworI2lmIGRlZmluZWQoX19oYXNfZmVhdHVy
ZSkKKyNpZiBfX2hhc19mZWF0dXJlKG1lbW9yeV9zYW5pdGl6ZXIpCisJCQkJLyogTmVlZCB0byBk
byB0aGlzIGJlY2F1c2UgTVNhbiBkb2Vzbid0IHJlYWxpemUgdGhhdCBzeXNjYWxsIGhhcworCQkJ
CSAqIGluaXRpYWxpemVkIHRoZSBvdXRwdXQgYnVmZmVyLgorCQkJCSAqLworCQkJCV9fbXNhbl91
bnBvaXNvbihidWYgKyBwb3NpdGlvbiwgbik7CisjZW5kaWYKKyNlbmRpZgorCQkJCXBvc2l0aW9u
ICs9IG47CisJCQl9IGVsc2UgaWYgKGVycm5vICE9IEVJTlRSICYmIGVycm5vICE9IEVBR0FJTikg
eworI2lmZGVmIElOVkFSSUFOVFMKKwkJCQlwYW5pYygiZ2V0cmFuZG9tIHN5c2NhbGwgcmV0dXJu
ZWQgdW5leHBlY3RlZCBlcnJvcjogJWQiLCBlcnJubyk7CisjZW5kaWYKKwkJCX0KKwkJfSBlbHNl
CisjZW5kaWYgLyogX19OUl9nZXRyYW5kb20gKi8KKwkJeworCQkJbiA9IHJlYWQoZmQsIChjaGFy
ICopYnVmICsgcG9zaXRpb24sIHNpemUgLSBwb3NpdGlvbik7CisJCQlpZiAobiA+IDApIHsKKwkJ
CQlwb3NpdGlvbiArPSBuOworCQkJfQorCQl9CisJfQorCXJldHVybjsKK30KKwordm9pZAorZmlu
aXNoX3JhbmRvbSh2b2lkKQoreworCWlmIChmZCAhPSAtMSkgeworCQljbG9zZShmZCk7CisJfQor
CXJldHVybjsKK30KKyNlbGlmIGRlZmluZWQoX19GdWNoc2lhX18pCisjaW5jbHVkZSA8emlyY29u
L3N5c2NhbGxzLmg+CisKK3ZvaWQKK2luaXRfcmFuZG9tKHZvaWQpCit7CisJcmV0dXJuOworfQor
Cit2b2lkCityZWFkX3JhbmRvbSh2b2lkICpidWYsIHNpemVfdCBzaXplKQoreworCXp4X2Nwcm5n
X2RyYXcoYnVmLCBzaXplKTsKKwlyZXR1cm47Cit9CisKK3ZvaWQKK2ZpbmlzaF9yYW5kb20odm9p
ZCkKK3sKIAlyZXR1cm47CiB9CisjZWxpZiBkZWZpbmVkKF9fbmF0aXZlX2NsaWVudF9fKQorI2lu
Y2x1ZGUgPG5hY2wvbmFjbF9yYW5kb20uaD4KIAotaW50Ci1yZWFkX3JhbmRvbSh2b2lkICpidWYs
IGludCBjb3VudCkKK3ZvaWQKK2luaXRfcmFuZG9tKHZvaWQpCiB7Ci0JdWludDMyX3QgcmFuZHZh
bDsKLQlpbnQgc2l6ZSwgaTsKKwlyZXR1cm47Cit9CiAKLQkvKiBGaWxsIGJ1ZltdIHdpdGggcmFu
ZG9tKDkpIG91dHB1dCAqLwotCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSs9IChpbnQpc2l6ZW9m
KHVpbnQzMl90KSkgewotCQlyYW5kdmFsID0gcmFuZG9tKCk7Ci0JCXNpemUgPSBNSU4oY291bnQg
LSBpLCAoaW50KXNpemVvZih1aW50MzJfdCkpOwotCQltZW1jcHkoJigoY2hhciAqKWJ1ZilbaV0s
ICZyYW5kdmFsLCAoc2l6ZV90KXNpemUpOwordm9pZAorcmVhZF9yYW5kb20odm9pZCAqYnVmLCBz
aXplX3Qgc2l6ZSkKK3sKKwlzaXplX3QgcG9zaXRpb247CisJc2l6ZV90IG47CisKKwlwb3NpdGlv
biA9IDA7CisJd2hpbGUgKHBvc2l0aW9uIDwgc2l6ZSkgeworCQlpZiAobmFjbF9zZWN1cmVfcmFu
ZG9tKChjaGFyICopYnVmICsgcG9zaXRpb24sIHNpemUgLSBwb3NpdGlvbiwgJm4pID09IDApCisJ
CQlwb3NpdGlvbiArPSBuOworCQl9CiAJfQorCXJldHVybjsKK30KIAotCXJldHVybiAoY291bnQp
Owordm9pZAorZmluaXNoX3JhbmRvbSh2b2lkKQoreworCXJldHVybjsKIH0KKyNlbHNlCisjZXJy
b3IgIlVua25vd24gcGxhdGZvcm0uIFBsZWFzZSBwcm92aWRlIHBsYXRmb3JtIHNwZWNpZmljIFJO
Ry4iCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9lbnZpcm9u
bWVudC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91
c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91c2VyX2Vudmlyb25tZW50LmgKaW5kZXggMGMy
ZWM5ZGIyMzVmNDAyNjA1M2JjZjZhMmY1YzYzZDAyMjk1YmFlOS4uZDg4ZmRiNzdlNjZlOWEyYWM2
Mjk0MDVhNzdmNzZjZWQ1ZjRhNDE1NSAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91
c2VyX2Vudmlyb25tZW50LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91c2VyX2Vudmlyb25t
ZW50LmgKQEAgLTY4LDcgKzY4LDggQEAgZXh0ZXJuIGludCBubWJjbHVzdGVyczsKICNlbmRpZgog
CiB2b2lkIGluaXRfcmFuZG9tKHZvaWQpOwotaW50IHJlYWRfcmFuZG9tKHZvaWQgKiwgaW50KTsK
K3ZvaWQgcmVhZF9yYW5kb20odm9pZCAqLCBzaXplX3QpOwordm9pZCBmaW5pc2hfcmFuZG9tKHZv
aWQpOwogCiAvKiBlcnJubydzIG1heSBkaWZmZXIgcGVyIE9TLiAgZXJybm8uaCBub3cgaW5jbHVk
ZWQgaW4gc2N0cF9vc191c2Vyc3BhY2UuaCAqLwogLyogU291cmNlOiAvdXNyL3NyYy9zeXMvc3lz
L2Vycm5vLmggKi8KQEAgLTkwLDcgKzkxLDExIEBAIGV4dGVybiB1X3Nob3J0IGlwX2lkOwogI2lm
IGRlZmluZWQoSU5WQVJJQU5UUykKICNpbmNsdWRlIDxzdGRsaWIuaD4KIAorI2lmIGRlZmluZWQo
X1dJTjMyKQogc3RhdGljIGlubGluZSB2b2lkCisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIF9f
YXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpCisjZW5kaWYKIHRlcm1pbmF0ZV9ub25fZ3JhY2Vm
dWwodm9pZCkgewogCWFib3J0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGli
L3VzZXJfaW5wY2IuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9pbnBjYi5oCmluZGV4IDM1
ZDU5Yzg1OGYyMWRjN2QxMjJlZmNlNmY5NTAyZDExZTk0ZmYyNGEuLjJlNmU5MzM0ZWE1YjJjOGU3
M2IyMTc3MTlkMjU3ZjM4YmIzMDUwZjkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIv
dXNlcl9pbnBjYi5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9pbnBjYi5oCkBAIC0x
MCw3ICsxMCw3IEBACiAgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRo
ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRo
ZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwogICogICAgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlz
IHNvZnR3YXJlCiAgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfaXA2X3Zhci5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3Vz
cnNjdHBsaWIvdXNyc2N0cGxpYi91c2VyX2lwNl92YXIuaAppbmRleCBlMWM4ZjI0MTU2NGUxNjVl
ZWM0ZjBjMzE2NzllODA3OWUyMzFjMTIwLi5iOTcwZmI4ZmE1ZGVkZWYzNTVjZjBkMWZjYjA4Mjk2
MDQ2YTEyYWVkIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfaXA2X3Zhci5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNy
c2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9pcDZfdmFyLmgKQEAgLTM5LDcgKzM5LDcg
QEAKICAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICogNC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9m
IGl0cyBjb250cmlidXRvcnMKKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNp
dHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCiAgKiAgICBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUK
ICAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKQEAg
LTg3LDEzICs4NywxMSBAQCBzdHJ1Y3QgaXA2X2hkciB7CiAjaWYgZGVmaW5lZChfV0lOMzIpCiAj
ZGVmaW5lIHM2X2FkZHIxNiB1LldvcmQKICNlbmRpZgotI2lmICFkZWZpbmVkKF9XSU4zMikKLSNp
ZiAhZGVmaW5lZChfX2xpbnV4X18pCisjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChf
X2xpbnV4X18pICYmICFkZWZpbmVkKF9fRU1TQ1JJUFRFTl9fKQogI2RlZmluZSBzNl9hZGRyOCAg
X191Nl9hZGRyLl9fdTZfYWRkcjgKICNkZWZpbmUgczZfYWRkcjE2IF9fdTZfYWRkci5fX3U2X2Fk
ZHIxNgogI2RlZmluZSBzNl9hZGRyMzIgX191Nl9hZGRyLl9fdTZfYWRkcjMyCiAjZW5kaWYKLSNl
bmRpZgogCiAjaWYgIWRlZmluZWQoX19GcmVlQlNEX18pICYmICFkZWZpbmVkKF9fT3BlbkJTRF9f
KSAmJiAhZGVmaW5lZChfX0RyYWdvbkZseV9fKQogc3RydWN0IHJvdXRlX2luNiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNj
dHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfaXBfaWNtcC5oIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0
cGxpYi91c2VyX2lwX2ljbXAuaAppbmRleCAwNDkzMTRlMjA1MDI1MDFkZDU3N2E5NjVkOGJiY2Q5
ODQzZGVhYjQyLi5hOTkzNDExYTE3YTJiYmExMDJmZDQzNzJmNTRkNzE5N2Y1ZmNkMjAwIDEwMDc1
NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3Vz
cnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfaXBfaWNtcC5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGli
L3VzcnNjdHBsaWIvdXNlcl9pcF9pY21wLmgKQEAgLTEwLDcgKzEwLDcgQEAKICAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogNC4gTmVpdGhlciB0
aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
cnMKKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1l
cyBvZiBpdHMgY29udHJpYnV0b3JzCiAgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKICAqICAgIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3Rw
bGliL3VzcnNjdHBsaWIvdXNlcl9tYWxsb2MuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9t
YWxsb2MuaAppbmRleCAxNjEyNDUyMTY4NDcyOWEzYmQzNzI2MGRhYzA3MzQxOTQwNzcxOWQ3Li5j
NTg4ZTA5NGFmYWNmODRmZWI4MDVlM2VmMTI1MTdhY2E2MzA5MjMxIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0
cGxpYi91c3JzY3RwbGliL3VzZXJfbWFsbG9jLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91
c2VyX21hbGxvYy5oCkBAIC0xMiw3ICsxMiw3IEBACiAgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQogICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhl
IFVuaXZlcnNpdHkgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAzLiBOZWl0
aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRy
aWJ1dG9ycwogICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCiAgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGli
L3VzZXJfbWJ1Zi5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91c2VyX21idWYuYwppbmRleCA5ZTU2
NmUzMDI1OTA5MDJiYmY5OTAzNzBmN2Q5YjkxZGZkNjYzYjljLi41N2I1MzJiYjcxN2FlYzM0MGJm
MWMxNjQzOGU2MTA4YTljMzE4NGEwIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3Vz
ZXJfbWJ1Zi5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9tYnVmLmMKQEAgLTUwNiw3
ICs1MDYsNyBAQCBtYnVmX2luaXRpYWxpemUodm9pZCAqZHVtbXkpCiAjZWxzZQogCXpvbmVfbWJ1
ZiA9IHVtZW1fY2FjaGVfY3JlYXRlKE1CVUZfTUVNX05BTUUsIE1TSVpFLCAwLAogCSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1iX2N0b3JfbWJ1ZiwgbWJfZHRvcl9tYnVmLCBOVUxMLAot
CSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VVUxMLAorCSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwsCiAJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg
MCk7CiAjZW5kaWYKIAkvKnpvbmVfZXh0X3JlZmNudCA9IHVtZW1fY2FjaGVfY3JlYXRlKE1CVUZf
RVhUUkVGQ05UX01FTV9OQU1FLCBzaXplb2YodV9pbnQpLCAwLApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBs
aWIvdXNyc2N0cGxpYi91c2VyX3F1ZXVlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfcXVl
dWUuaAppbmRleCBjZGUxY2NlY2YxNTAyNDQ1ZGMzZTYyMzI4ZjA0OTYxYzY1MTljMGU5Li5mY2Qz
NjhiZGQyNjdiNDE5Y2FlZTVkNzdlYWVhNTUzYjBkODE5N2ZmIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxp
Yi91c3JzY3RwbGliL3VzZXJfcXVldWUuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJf
cXVldWUuaApAQCAtMTAsNyArMTAsNyBAQAogICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKICAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiA0LiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2
ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogMy4gTmVpdGhlciB0
aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
cnMKICAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20gdGhpcyBzb2Z0d2FyZQogICogICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCiAgKgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91c2Vy
X3JlY3ZfdGhyZWFkLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfcmVjdl90aHJlYWQuYwpp
bmRleCAzYzE2NTdiNGE2NmU3MmI4ZjI4Y2IyNjQ0ZTRjMGFiMjBiMDQ2MmM1Li5iYjQzNmNkMjBk
OWU4ZTJkMDAzZTc2M2ZkNTY3NTBmODRiZDg2ZjYxIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3Jz
Y3RwbGliL3VzZXJfcmVjdl90aHJlYWQuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJf
cmVjdl90aHJlYWQuYwpAQCAtNjAsNyArNjAsNyBAQAogI2luY2x1ZGUgPG5ldC9yb3V0ZS5oPgog
I2VuZGlmCiAvKiBsb2NhbCBtYWNyb3MgYW5kIGRhdGF0eXBlcyB1c2VkIHRvIGdldCBJUCBhZGRy
ZXNzZXMgc3lzdGVtIGluZGVwZW5kZW50bHkgKi8KLSNpZiAhZGVmaW5lZChJUF9QS1RJTkZPICkg
JiYgIWRlZmluZWQoSVBfUkVDVkRTVEFERFIpCisjaWYgIWRlZmluZWQoSVBfUEtUSU5GTykgJiYg
IWRlZmluZWQoSVBfUkVDVkRTVEFERFIpCiAjIGVycm9yICJDYW4ndCBkZXRlcm1pbmUgc29ja2V0
IG9wdGlvbiB0byB1c2UgdG8gZ2V0IFVEUCBJUCIKICNlbmRpZgogCkBAIC0zNzEsMTMgKzM3MSwy
MCBAQCByZWN2X2Z1bmN0aW9uX3Jhdyh2b2lkICphcmcpCiAJCQl9IHdoaWxlIChuY291bnRlciA+
IDApOwogCQl9CiAKKwkJb2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBpcCkgKyBzaXplb2Yoc3RydWN0
IHNjdHBoZHIpICsgc2l6ZW9mKHN0cnVjdCBzY3RwX2NodW5raGRyKTsKKwkJaWYgKFNDVFBfQlVG
X0xFTihyZWN2bWJ1ZlswXSkgPCBvZmZzZXQpIHsKKwkJCQlpZiAoKHJlY3ZtYnVmWzBdID0gbV9w
dWxsdXAocmVjdm1idWZbMF0sIG9mZnNldCkpID09IE5VTEwpIHsKKwkJCQlTQ1RQX1NUQVRfSU5D
UihzY3Rwc19oZHJvcHMpOworCQkJCWNvbnRpbnVlOworCQkJfQorCQl9CiAJCWlwaGRyID0gbXRv
ZChyZWN2bWJ1ZlswXSwgc3RydWN0IGlwICopOwogCQlzaCA9IChzdHJ1Y3Qgc2N0cGhkciAqKSgo
Y2FkZHJfdClpcGhkciArIHNpemVvZihzdHJ1Y3QgaXApKTsKIAkJY2ggPSAoc3RydWN0IHNjdHBf
Y2h1bmtoZHIgKikoKGNhZGRyX3Qpc2ggKyBzaXplb2Yoc3RydWN0IHNjdHBoZHIpKTsKLQkJb2Zm
c2V0ID0gc2l6ZW9mKHN0cnVjdCBpcCkgKyBzaXplb2Yoc3RydWN0IHNjdHBoZHIpOworCQlvZmZz
ZXQgLT0gc2l6ZW9mKHN0cnVjdCBzY3RwX2NodW5raGRyKTsKIAogCQlpZiAoaXBoZHItPmlwX3Rv
cyAhPSAwKSB7Ci0JCQllY24gPSBpcGhkci0+aXBfdG9zICYgMHgwMjsKKwkJCWVjbiA9IGlwaGRy
LT5pcF90b3MgJiAweDAzOwogCQl9CiAKIAkJZHN0LnNpbl9mYW1pbHkgPSBBRl9JTkVUOwpAQCAt
NTc5LDkgKzU4NiwxNiBAQCByZWN2X2Z1bmN0aW9uX3JhdzYodm9pZCAqYXJnKQogCQkJY29udGlu
dWU7CiAJCX0KIAorCQlvZmZzZXQgPSBzaXplb2Yoc3RydWN0IHNjdHBoZHIpICsgc2l6ZW9mKHN0
cnVjdCBzY3RwX2NodW5raGRyKTsKKwkJaWYgKFNDVFBfQlVGX0xFTihyZWN2bWJ1ZjZbMF0pIDwg
b2Zmc2V0KSB7CisJCQlpZiAoKHJlY3ZtYnVmNlswXSA9IG1fcHVsbHVwKHJlY3ZtYnVmNlswXSwg
b2Zmc2V0KSkgPT0gTlVMTCkgeworCQkJCVNDVFBfU1RBVF9JTkNSKHNjdHBzX2hkcm9wcyk7CisJ
CQkJY29udGludWU7CisJCQl9CisJCX0KIAkJc2ggPSBtdG9kKHJlY3ZtYnVmNlswXSwgc3RydWN0
IHNjdHBoZHIgKik7CiAJCWNoID0gKHN0cnVjdCBzY3RwX2NodW5raGRyICopKChjYWRkcl90KXNo
ICsgc2l6ZW9mKHN0cnVjdCBzY3RwaGRyKSk7Ci0JCW9mZnNldCA9IHNpemVvZihzdHJ1Y3Qgc2N0
cGhkcik7CisJCW9mZnNldCAtPSBzaXplb2Yoc3RydWN0IHNjdHBfY2h1bmtoZHIpOwogCiAJCWRz
dC5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OwogI2lmZGVmIEhBVkVfU0lONl9MRU4KQEAgLTc5Mywx
MCArODA3LDE3IEBAIHJlY3ZfZnVuY3Rpb25fdWRwKHZvaWQgKmFyZykKIAkJCWNvbnRpbnVlOwog
CQl9CiAKLQkJLypvZmZzZXQgPSBzaXplb2Yoc3RydWN0IHNjdHBoZHIpICsgc2l6ZW9mKHN0cnVj
dCBzY3RwX2NodW5raGRyKTsqLworCQlvZmZzZXQgPSBzaXplb2Yoc3RydWN0IHNjdHBoZHIpICsg
c2l6ZW9mKHN0cnVjdCBzY3RwX2NodW5raGRyKTsKKwkJaWYgKFNDVFBfQlVGX0xFTih1ZHByZWN2
bWJ1ZlswXSkgPCBvZmZzZXQpIHsKKwkJCWlmICgodWRwcmVjdm1idWZbMF0gPSBtX3B1bGx1cCh1
ZHByZWN2bWJ1ZlswXSwgb2Zmc2V0KSkgPT0gTlVMTCkgeworCQkJCVNDVFBfU1RBVF9JTkNSKHNj
dHBzX2hkcm9wcyk7CisJCQkJY29udGludWU7CisJCQl9CisJCX0KIAkJc2ggPSBtdG9kKHVkcHJl
Y3ZtYnVmWzBdLCBzdHJ1Y3Qgc2N0cGhkciAqKTsKIAkJY2ggPSAoc3RydWN0IHNjdHBfY2h1bmto
ZHIgKikoKGNhZGRyX3Qpc2ggKyBzaXplb2Yoc3RydWN0IHNjdHBoZHIpKTsKLQkJb2Zmc2V0ID0g
c2l6ZW9mKHN0cnVjdCBzY3RwaGRyKTsKKwkJb2Zmc2V0IC09IHNpemVvZihzdHJ1Y3Qgc2N0cF9j
aHVua2hkcik7CisKIAkJcG9ydCA9IHNyYy5zaW5fcG9ydDsKIAkJc3JjLnNpbl9wb3J0ID0gc2gt
PnNyY19wb3J0OwogCQlkc3Quc2luX3BvcnQgPSBzaC0+ZGVzdF9wb3J0OwpAQCAtOTgxLDkgKzEw
MDIsMTYgQEAgcmVjdl9mdW5jdGlvbl91ZHA2KHZvaWQgKmFyZykKIAkJCWNvbnRpbnVlOwogCQl9
CiAKKwkJb2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBzY3RwaGRyKSArIHNpemVvZihzdHJ1Y3Qgc2N0
cF9jaHVua2hkcik7CisJCWlmIChTQ1RQX0JVRl9MRU4odWRwcmVjdm1idWY2WzBdKSA8IG9mZnNl
dCkgeworCQkJaWYgKCh1ZHByZWN2bWJ1ZjZbMF0gPSBtX3B1bGx1cCh1ZHByZWN2bWJ1ZjZbMF0s
IG9mZnNldCkpID09IE5VTEwpIHsKKwkJCQlTQ1RQX1NUQVRfSU5DUihzY3Rwc19oZHJvcHMpOwor
CQkJCWNvbnRpbnVlOworCQkJfQorCQl9CiAJCXNoID0gbXRvZCh1ZHByZWN2bWJ1ZjZbMF0sIHN0
cnVjdCBzY3RwaGRyICopOwogCQljaCA9IChzdHJ1Y3Qgc2N0cF9jaHVua2hkciAqKSgoY2FkZHJf
dClzaCArIHNpemVvZihzdHJ1Y3Qgc2N0cGhkcikpOwotCQlvZmZzZXQgPSBzaXplb2Yoc3RydWN0
IHNjdHBoZHIpOworCQlvZmZzZXQgLT0gc2l6ZW9mKHN0cnVjdCBzY3RwX2NodW5raGRyKTsKIAog
CQlwb3J0ID0gc3JjLnNpbjZfcG9ydDsKIAkJc3JjLnNpbjZfcG9ydCA9IHNoLT5zcmNfcG9ydDsK
QEAgLTExNzIsNyArMTIwMCw3IEBAIHJlY3ZfdGhyZWFkX2luaXQodm9pZCkKIAkJCX0KIAkJfQog
CX0KLQlpZiAoU0NUUF9CQVNFX1ZBUih1c2Vyc3BhY2VfdWRwc2N0cCkgPT0gLTEpIHsKKwlpZiAo
KFNDVFBfQkFTRV9WQVIodXNlcnNwYWNlX3VkcHNjdHApID09IC0xKSAmJiAoU0NUUF9CQVNFX1NZ
U0NUTChzY3RwX3VkcF90dW5uZWxpbmdfcG9ydCkgIT0gMCkpIHsKIAkJaWYgKChTQ1RQX0JBU0Vf
VkFSKHVzZXJzcGFjZV91ZHBzY3RwKSA9IHNvY2tldChBRl9JTkVULCBTT0NLX0RHUkFNLCBJUFBS
T1RPX1VEUCkpID09IC0xKSB7CiAjaWYgZGVmaW5lZChfV0lOMzIpCiAJCQlTQ1RQREJHKFNDVFBf
REVCVUdfVVNSLCAiQ2FuJ3QgY3JlYXRlIHNvY2tldCBmb3IgU0NUUC9VRFAvSVB2NCAoZXJybm8g
PSAlZCkuXG4iLCBXU0FHZXRMYXN0RXJyb3IoKSk7CkBAIC0xMzA5LDcgKzEzMzcsNyBAQCByZWN2
X3RocmVhZF9pbml0KHZvaWQpCiAJCQl9CiAJCX0KIAl9Ci0JaWYgKFNDVFBfQkFTRV9WQVIodXNl
cnNwYWNlX3VkcHNjdHA2KSA9PSAtMSkgeworCWlmICgoU0NUUF9CQVNFX1ZBUih1c2Vyc3BhY2Vf
dWRwc2N0cDYpID09IC0xKSAmJiAoU0NUUF9CQVNFX1NZU0NUTChzY3RwX3VkcF90dW5uZWxpbmdf
cG9ydCkgIT0gMCkpIHsKIAkJaWYgKChTQ1RQX0JBU0VfVkFSKHVzZXJzcGFjZV91ZHBzY3RwNikg
PSBzb2NrZXQoQUZfSU5FVDYsIFNPQ0tfREdSQU0sIElQUFJPVE9fVURQKSkgPT0gLTEpIHsKICNp
ZiBkZWZpbmVkKF9XSU4zMikKIAkJCVNDVFBEQkcoU0NUUF9ERUJVR19VU1IsICJDYW4ndCBjcmVh
dGUgc29ja2V0IGZvciBTQ1RQL1VEUC9JUHY2IChlcnJubyA9ICVkKS5cbiIsIFdTQUdldExhc3RF
cnJvcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9yb3V0ZS5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3Vz
cnNjdHBsaWIvdXNyc2N0cGxpYi91c2VyX3JvdXRlLmgKaW5kZXggODJiMDdkNzY5YTljZWMzOWMw
NDEzZjBmNTQ5YzRkMjA2MmQ3ZmU1YS4uNGFiZjJlYWM5ODBmNDI0ZDliNjI5N2E3MjZiMGZiZjI0
ODI3ZmEyZCAxMDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91c2VyX3JvdXRlLmgKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3Rw
L3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91c2VyX3JvdXRlLmgKQEAgLTEwLDcgKzEwLDcgQEAKICAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogNC4g
TmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0cyBj
b250cmlidXRvcnMKKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9y
IHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCiAgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKICAqICAg
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0
cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9zb2NrZXQuYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBs
aWIvdXNlcl9zb2NrZXQuYwppbmRleCAxNmY0ZGVjZWJhNDcwOTI3OWViM2UyNmIzMDhmNDA3OTli
ODgxMTAxLi41MTNhNWE5YTQwNTMxODdkNzBmNjk3MGEzN2VmZWNjNDM1MGQ1NWQ5IDEwMDc1NQot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNj
dHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJfc29ja2V0LmMKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNy
c2N0cGxpYi91c2VyX3NvY2tldC5jCkBAIC0xMTUsOCArMTE1LDggQEAgdXNyc2N0cF9pbml0KHVp
bnQxNl90IHBvcnQsCiAKIHZvaWQKIHVzcnNjdHBfaW5pdF9ub3RocmVhZHModWludDE2X3QgcG9y
dCwKLQkJICAgICAgIGludCAoKmNvbm5fb3V0cHV0KSh2b2lkICphZGRyLCB2b2lkICpidWZmZXIs
IHNpemVfdCBsZW5ndGgsIHVpbnQ4X3QgdG9zLCB1aW50OF90IHNldF9kZiksCi0JCSAgICAgICB2
b2lkICgqZGVidWdfcHJpbnRmKShjb25zdCBjaGFyICpmb3JtYXQsIC4uLikpCisgICAgICAgICAg
ICAgICAgICAgICAgIGludCAoKmNvbm5fb3V0cHV0KSh2b2lkICphZGRyLCB2b2lkICpidWZmZXIs
IHNpemVfdCBsZW5ndGgsIHVpbnQ4X3QgdG9zLCB1aW50OF90IHNldF9kZiksCisgICAgICAgICAg
ICAgICAgICAgICAgIHZvaWQgKCpkZWJ1Z19wcmludGYpKGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4u
KSkKIHsKIAlpbml0X3N5bmMoKTsKIAlzY3RwX2luaXQocG9ydCwgY29ubl9vdXRwdXQsIGRlYnVn
X3ByaW50ZiwgMCk7CkBAIC0xMzI4LDcgKzEzMjgsNyBAQCB1c3JzY3RwX3NvY2tldChpbnQgZG9t
YWluLCBpbnQgdHlwZSwgaW50IHByb3RvY29sLAogCSAgICAgICB1aW50MzJfdCBzYl90aHJlc2hv
bGQsCiAJICAgICAgIHZvaWQgKnVscF9pbmZvKQogewotCXN0cnVjdCBzb2NrZXQgKnNvOworCXN0
cnVjdCBzb2NrZXQgKnNvID0gTlVMTDsKIAogCWlmICgocHJvdG9jb2wgPT0gSVBQUk9UT19TQ1RQ
KSAmJiAoU0NUUF9CQVNFX1ZBUihzY3RwX3BjYl9pbml0aWFsaXplZCkgPT0gMCkpIHsKIAkJZXJy
bm8gPSBFUFJPVE9OT1NVUFBPUlQ7CkBAIC0xOTc4LDExICsxOTc4LDggQEAgaW50IHVzcnNjdHBf
Y29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzbywgc3RydWN0IHNvY2thZGRyICpuYW1lLCBpbnQgbmFt
ZWxlbikKIAlzdHJ1Y3Qgc29ja2FkZHIgKnNhID0gTlVMTDsKIAogCWVycm5vID0gZ2V0c29ja2Fk
ZHIoJnNhLCAoY2FkZHJfdCluYW1lLCBuYW1lbGVuKTsKLSAgICBpZiAoZXJybm8pIHsKLSAgICAg
ICAgaWYgKHNhKQotICAgICAgICAgICAgRlJFRShzYSwgTV9TT05BTUUpOwotICAgICAgICByZXR1
cm4gKC0xKTsKLSAgICB9CisJaWYgKGVycm5vKQorCQlyZXR1cm4gKC0xKTsKIAogCWVycm5vID0g
dXNlcl9jb25uZWN0KHNvLCBzYSk7CiAJRlJFRShzYSwgTV9TT05BTUUpOwpAQCAtMzMwMCw3ICsz
Mjk3LDcgQEAgdXNyc2N0cF9jb25uaW5wdXQodm9pZCAqYWRkciwgY29uc3Qgdm9pZCAqYnVmZmVy
LCBzaXplX3QgbGVuZ3RoLCB1aW50OF90IGVjbl9iaXQKIAlzdHJ1Y3QgbWJ1ZiAqbSwgKm1tOwog
CXN0cnVjdCBzY3RwaGRyICpzaDsKIAlzdHJ1Y3Qgc2N0cF9jaHVua2hkciAqY2g7Ci0JaW50IHJl
bWFpbmluZzsKKwlpbnQgcmVtYWluaW5nLCBvZmZzZXQ7CiAKIAlTQ1RQX1NUQVRfSU5DUihzY3Rw
c19yZWN2cGFja2V0cyk7CiAJU0NUUF9TVEFUX0lOQ1JfQ09VTlRFUjY0KHNjdHBzX2lucGFja2V0
cyk7CkBAIC0zMzMwLDE3ICszMzI3LDE5IEBAIHVzcnNjdHBfY29ubmlucHV0KHZvaWQgKmFkZHIs
IGNvbnN0IHZvaWQgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCwgdWludDhfdCBlY25fYml0CiAJfQog
CUtBU1NFUlQocmVtYWluaW5nID09IDAsICgidXNyc2N0cF9jb25uaW5wdXQ6ICV6dSBieXRlcyBs
ZWZ0IiwgcmVtYWluaW5nKSk7CiAJbV9jb3B5YmFjayhtLCAwLCAoaW50KWxlbmd0aCwgKGNhZGRy
X3QpYnVmZmVyKTsKLQlpZiAoU0NUUF9CVUZfTEVOKG0pIDwgKGludCkoc2l6ZW9mKHN0cnVjdCBz
Y3RwaGRyKSArIHNpemVvZihzdHJ1Y3Qgc2N0cF9jaHVua2hkcikpKSB7Ci0JCWlmICgobSA9IG1f
cHVsbHVwKG0sIHNpemVvZihzdHJ1Y3Qgc2N0cGhkcikgKyBzaXplb2Yoc3RydWN0IHNjdHBfY2h1
bmtoZHIpKSkgPT0gTlVMTCkgeworCW9mZnNldCA9IHNpemVvZihzdHJ1Y3Qgc2N0cGhkcikgKyBz
aXplb2Yoc3RydWN0IHNjdHBfY2h1bmtoZHIpOworCWlmIChTQ1RQX0JVRl9MRU4obSkgPCBvZmZz
ZXQpIHsKKwkJaWYgKChtID0gbV9wdWxsdXAobSwgb2Zmc2V0KSkgPT0gTlVMTCkgewogCQkJU0NU
UF9TVEFUX0lOQ1Ioc2N0cHNfaGRyb3BzKTsKIAkJCXJldHVybjsKIAkJfQogCX0KLQlzaCA9IG10
b2QobSwgc3RydWN0IHNjdHBoZHIgKik7OworCXNoID0gbXRvZChtLCBzdHJ1Y3Qgc2N0cGhkciAq
KTsKIAljaCA9IChzdHJ1Y3Qgc2N0cF9jaHVua2hkciAqKSgoY2FkZHJfdClzaCArIHNpemVvZihz
dHJ1Y3Qgc2N0cGhkcikpOworCW9mZnNldCAtPSBzaXplb2Yoc3RydWN0IHNjdHBfY2h1bmtoZHIp
OwogCXNyYy5zY29ubl9wb3J0ID0gc2gtPnNyY19wb3J0OwogCWRzdC5zY29ubl9wb3J0ID0gc2gt
PmRlc3RfcG9ydDsKLQlzY3RwX2NvbW1vbl9pbnB1dF9wcm9jZXNzaW5nKCZtLCAwLCBzaXplb2Yo
c3RydWN0IHNjdHBoZHIpLCAoaW50KWxlbmd0aCwKKwlzY3RwX2NvbW1vbl9pbnB1dF9wcm9jZXNz
aW5nKCZtLCAwLCBvZmZzZXQsIChpbnQpbGVuZ3RoLAogCSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHN0cnVjdCBzb2NrYWRkciAqKSZzcmMsCiAJICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc3RydWN0IHNvY2thZGRyICopJmRzdCwKIAkgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNoLCBjaCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvdXNyc2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9zb2NrZXR2
YXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvdXNy
c2N0cC91c3JzY3RwbGliL3VzcnNjdHBsaWIvdXNlcl9zb2NrZXR2YXIuaAppbmRleCA2Yjc5YjU5
MDhjMDY5ZmYxZjY2ZGQyZmNmNWM2MWM0NDA1MGQyMTRhLi5lOGVjY2M3ZmIxMDRkM2FiODcxN2M5
ZWQxNGVlYWRmNjZiOWQ5MjE3IDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L3VzcnNjdHAvdXNyc2N0cGxpYi91c3JzY3RwbGliL3VzZXJf
c29ja2V0dmFyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS91c3JzY3RwL3VzcnNjdHBsaWIvdXNyc2N0cGxpYi91c2VyX3NvY2tldHZhci5oCkBA
IC0xMCw3ICsxMCw3IEBACiAgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqIDQuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgbm9y
IHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9m
IHRoZSBVbml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwogICogICAg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0
aGlzIHNvZnR3YXJlCiAgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KICAqCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>