<?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>204283</bug_id>
          
          <creation_ts>2019-11-16 23:22:55 -0800</creation_ts>
          <short_desc>Add initial support for WebRTC HEVC</short_desc>
          <delta_ts>2023-07-07 10:09:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210173</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=258794</see_also>
          <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>agouaillard</cc>
    
    <cc>annulen</cc>
    
    <cc>dibotero</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>sun.shin</cc>
    
    <cc>tommyw</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1590930</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-11-16 23:22:55 -0800</bug_when>
    <thetext>Add initial support for WebRTC HEVC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590931</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-11-16 23:23:09 -0800</bug_when>
    <thetext>See https://github.com/open-webrtc-toolkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590932</commentid>
    <comment_count>2</comment_count>
      <attachid>383716</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-11-16 23:25:37 -0800</bug_when>
    <thetext>Created attachment 383716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590940</commentid>
    <comment_count>3</comment_count>
      <attachid>383719</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-11-17 02:53:18 -0800</bug_when>
    <thetext>Created attachment 383719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635454</commentid>
    <comment_count>4</comment_count>
      <attachid>394903</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-03-30 04:33:13 -0700</bug_when>
    <thetext>Created attachment 394903
Rebased on top of M82</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636492</commentid>
    <comment_count>5</comment_count>
      <attachid>395167</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-01 08:09:55 -0700</bug_when>
    <thetext>Created attachment 395167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636529</commentid>
    <comment_count>6</comment_count>
      <attachid>395176</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-01 09:26:01 -0700</bug_when>
    <thetext>Created attachment 395176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636547</commentid>
    <comment_count>7</comment_count>
      <attachid>395180</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-01 09:57:44 -0700</bug_when>
    <thetext>Created attachment 395180
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636816</commentid>
    <comment_count>8</comment_count>
      <attachid>395246</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-02 00:21:48 -0700</bug_when>
    <thetext>Created attachment 395246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636846</commentid>
    <comment_count>9</comment_count>
      <attachid>395257</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-02 03:12:35 -0700</bug_when>
    <thetext>Created attachment 395257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636857</commentid>
    <comment_count>10</comment_count>
      <attachid>395261</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-02 05:05:55 -0700</bug_when>
    <thetext>Created attachment 395261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636931</commentid>
    <comment_count>11</comment_count>
      <attachid>395261</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-04-02 10:12:57 -0700</bug_when>
    <thetext>Comment on attachment 395261
Patch

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

&gt; LayoutTests/webrtc/h265.html:58
&gt; +                setTimeout(() =&gt; reject(&quot;Test timed out&quot;), 2000);

Will 2 seconds long be long enough on a heavily loaded machine?

&gt; LayoutTests/webrtc/h265.html:74
&gt; +            setTimeout(() =&gt; reject(&quot;Test timed out&quot;), 2000);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637292</commentid>
    <comment_count>12</comment_count>
      <attachid>395361</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-03 02:53:24 -0700</bug_when>
    <thetext>Created attachment 395361
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637300</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-03 03:46:08 -0700</bug_when>
    <thetext>Committed r259452: &lt;https://trac.webkit.org/changeset/259452&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395361.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637301</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-03 03:47:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/61253198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638711</commentid>
    <comment_count>15</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2020-04-07 12:02:47 -0700</bug_when>
    <thetext>The new test webrtc/h265.html

added in https://trac.webkit.org/changeset/259452/webkit

Is a constant timeout on iOS

history:
https://results.webkit.org/?suite=layout-tests&amp;test=webrtc%2Fh265.html

Can this get resolved soon?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638932</commentid>
    <comment_count>16</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-04-07 21:00:22 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #15)
&gt; The new test webrtc/h265.html
&gt; 
&gt; added in https://trac.webkit.org/changeset/259452/webkit
&gt; 
&gt; Is a constant timeout on iOS
Filed https://bugs.webkit.org/show_bug.cgi?id=210173 to track.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861250</commentid>
    <comment_count>17</comment_count>
    <who name="[MSFT] Diego Perez Botero">dibotero</who>
    <bug_when>2022-04-13 14:05:47 -0700</bug_when>
    <thetext>I still see &quot;WebRTC H265 Codec&quot; as an experimental feature defaulting to DISABLED on iOS. Are there plans to enable H265 for WebRTC on iOS in the near future?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1964903</commentid>
    <comment_count>18</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2023-07-03 17:28:35 -0700</bug_when>
    <thetext>Adding related bugs:

- Enabling HEVC by default: https://bugs.webkit.org/show_bug.cgi?id=242921
- Implementing RFC 7798 Packetization: https://bugs.webkit.org/show_bug.cgi?id=258794

@youenn could you please review the bugs?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383716</attachid>
            <date>2019-11-16 23:25:37 -0800</date>
            <delta_ts>2019-11-17 02:53:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204283-20191117152535.patch</filename>
            <type>text/plain</type>
            <size>269579</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAwOTk0ODdlYjMwOWQyMzM4NmY5YWZjMTIwNWQxNTdhNGE3MjdhNDVkLi43OTYw
ZmI3ZWUyODMwZmNhYWUyZDAzNjdmZjRmMzI1ZDdiM2EyMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDkgQEAKKzIwMTktMTEtMTYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQg
Zm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgSEVWQyBwYWNrZXRpemF0aW9uIGFuZCBIRVZDIGNvZGVjIHN1cHBvcnQgYmFz
ZWQgb24KKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL29wZW4td2VicnRjLXRvb2xraXQgd29y
ay4KKworICAgICAgICAqIFNvdXJjZS93ZWJydGMvQlVJTEQuZ246CisgICAgICAgICogU291cmNl
L3dlYnJ0Yy9hcGkvdmlkZW8vYnVpbHRpbl92aWRlb19iaXRyYXRlX2FsbG9jYXRvcl9mYWN0b3J5
LmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUu
aDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMu
Y2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVj
Lmg6CisgICAgICAgICh3ZWJydGM6OlZpZGVvQ29kZWNIMjY1OjpvcGVyYXRvciE9IGNvbnN0KToK
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5j
YzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rl
ci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNv
ZGVyX2NvbmZpZy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3Mv
dmlkZW9fZW5jb2Rlcl9jb25maWcuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2J1aWxkX292
ZXJyaWRlcy9idWlsZC5nbmk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jYWxsL3J0cF9wYXls
b2FkX3BhcmFtcy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlM
RC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29t
bW9uLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1
L2gyNjVfY29tbW9uLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYzogQWRk
ZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19w
YXJzZXIuaDogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2
NS9oMjY1X3Zwc19wYXJzZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29t
bW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2M6CisgICAgICAgICogU291cmNl
L3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oOgorICAgICAgICAqIFNvdXJjZS93
ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2gyNjVfc3BzX3BhcnNlci5jYzogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJz
ZXIuaDogQWRkZWQuCisgICAgICAgICh3ZWJydGM6OkgyNjVTcHNQYXJzZXI6OndpZHRoKToKKyAg
ICAgICAgKHdlYnJ0Yzo6SDI2NVNwc1BhcnNlcjo6aGVpZ2h0KToKKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2M6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuY2M6
IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
cnRwX2Zvcm1hdF9oMjY1Lmg6IEFkZGVkLgorICAgICAgICAod2VicnRjOjpSdHBQYWNrZXRpemVy
SDI2NTo6UGFja2V0OjpQYWNrZXQpOgorICAgICAgICAod2VicnRjOjpSdHBQYWNrZXRpemVySDI2
NTo6UGFja2V0VW5pdDo6UGFja2V0VW5pdCk6CisgICAgICAgICh3ZWJydGM6OlJ0cERlcGFja2V0
aXplckgyNjU6On5SdHBEZXBhY2tldGl6ZXJIMjY1KToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9zZW5kZXJfdmlkZW8uY2M6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmg6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2
NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRj
L21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9tdWx0aXBsZXgvbXVsdGlwbGV4X2VuY29kZXJf
YWRhcHRlci5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5n
L2VuY29kZWRfZnJhbWUuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNv
dXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcv
aW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRj
L21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmg6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQuY2M6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNj
OgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9p
bmZvLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvQlVJTEQuZ246CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9hcGkvb3JnL3dlYnJ0Yy9IYXJkd2FyZVZpZGVvRW5j
b2RlckZhY3RvcnkuamF2YToKKyAgICAgICAgKEhhcmR3YXJlVmlkZW9FbmNvZGVyRmFjdG9yeS5n
ZXRTdXBwb3J0ZWRDb2RlY3MpOgorICAgICAgICAoSGFyZHdhcmVWaWRlb0VuY29kZXJGYWN0b3J5
LmlzSGFyZHdhcmVTdXBwb3J0ZWRJbkN1cnJlbnRTZGspOgorICAgICAgICAoSGFyZHdhcmVWaWRl
b0VuY29kZXJGYWN0b3J5LmlzSGFyZHdhcmVTdXBwb3J0ZWRJbkN1cnJlbnRTZGtIMjY1KToKKyAg
ICAgICAgKEhhcmR3YXJlVmlkZW9FbmNvZGVyRmFjdG9yeSk6CisgICAgICAgIChIYXJkd2FyZVZp
ZGVvRW5jb2RlckZhY3RvcnkuZ2V0S2V5RnJhbWVJbnRlcnZhbFNlYyk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL0hhcmR3YXJlVmlkZW9F
bmNvZGVyLmphdmE6CisgICAgICAgIChIYXJkd2FyZVZpZGVvRW5jb2Rlci5kZWxpdmVyRW5jb2Rl
ZEltYWdlKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qYXZhL29y
Zy93ZWJydGMvTWVkaWFDb2RlY1V0aWxzLmphdmE6CisgICAgICAgIChNZWRpYUNvZGVjVXRpbHMu
Li4uZ2V0Q29kZWNQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9hbmRy
b2lkL3NyYy9qYXZhL29yZy93ZWJydGMvTWVkaWFDb2RlY1ZpZGVvRGVjb2RlckZhY3RvcnkuamF2
YToKKyAgICAgICAgKE1lZGlhQ29kZWNWaWRlb0RlY29kZXJGYWN0b3J5LmdldFN1cHBvcnRlZENv
ZGVjcyk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcv
d2VicnRjL1ZpZGVvQ29kZWNUeXBlLmphdmE6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsv
YW5kcm9pZC9zcmMvam5pL2FuZHJvaWRfbWVkaWFfY29kZWNfY29tbW9uLmg6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvam5pL2FuZHJvaWRfbWVkaWFfZGVjb2Rlci5j
YzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qbmkvYW5kcm9pZF9t
ZWRpYV9lbmNvZGVyLmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3Jj
L2puaS92aWRlb19lbmNvZGVyX3dyYXBwZXIuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5K05hdGl2
ZS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9u
L1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeS5tbToKKyAgICAgICAgKC1bUlRDUGVlckNvbm5lY3Rp
b25GYWN0b3J5IGluaXRXaXRoTmF0aXZlUGVlckNvbm5lY3Rpb25GYWN0b3J5Ol0pOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRj
L1ZpZGVvQ29kZWNUeXBlLmphdmEuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oOiBBZGRlZC4K
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY1IG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXSk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRl
b0RlY29kZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0
b3J5IGNyZWF0ZURlY29kZXI6XSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5IHN1cHBvcnRlZENvZGVjc10pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5t
OgorICAgICAgICAoK1tSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSBzdXBwb3J0ZWRDb2Rl
Y3NdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkgY3JlYXRlRW5j
b2RlcjpdKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qYXZhL29yZy93
ZWJydGMvVmlkZW9Db2RlY1R5cGUuamF2YS4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tOiBBZGRl
ZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dl
YnJ0Yy9WaWRlb0NvZGVjVHlwZS5qYXZhLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NS5tOiBB
ZGRlZC4KKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUgY3JlYXRlRGVjb2Rl
cjpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUgc3VwcG9ydGVkQ29k
ZWNzXSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dlYnJ0
Yy9WaWRlb0NvZGVjVHlwZS5qYXZhLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tOiBBZGRlZC4KKyAg
ICAgICAgKFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtczo6UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1z
KToKKyAgICAgICAgKGgyNjVEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2spOgorICAgICAgICAo
LVtSVENWaWRlb0RlY29kZXJIMjY1IGluaXRdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVy
SDI2NSBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgc3RhcnREZWNv
ZGVXaXRoTnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NSBk
ZWNvZGU6bWlzc2luZ0ZyYW1lczpjb2RlY1NwZWNpZmljSW5mbzpyZW5kZXJUaW1lTXM6XSk6Cisg
ICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgc2V0Q2FsbGJhY2s6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgcmVsZWFzZURlY29kZXJdKToKKyAgICAgICAgKC1bUlRDVmlk
ZW9EZWNvZGVySDI2NSByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JU
Q1ZpZGVvRGVjb2RlckgyNjUgY29uZmlndXJlRGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NSBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dKToK
KyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NSBzZXRWaWRlb0Zvcm1hdDpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NSBpbXBsZW1lbnRhdGlvbk5hbWVdKToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9F
bmNvZGVyRmFjdG9yeUgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dlYnJ0Yy9WaWRlb0Nv
ZGVjVHlwZS5qYXZhLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5tOiBBZGRlZC4KKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUgc3VwcG9ydGVkQ29kZWNzXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY1IGNyZWF0ZUVuY29kZXI6XSk6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRW5jb2RlckgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dlYnJ0Yy9WaWRlb0NvZGVj
VHlwZS5qYXZhLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92
aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSBpbml0V2l0aENvZGVjSW5mbzpdKToKKyAgICAgICAgKC1bUlRDVmlk
ZW9FbmNvZGVySDI2NSBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUg
c3RhcnRFbmNvZGVXaXRoU2V0dGluZ3M6bnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSBlbmNvZGU6Y29kZWNTcGVjaWZpY0luZm86ZnJhbWVUeXBlczpdKToK
KyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRDYWxsYmFjazpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRCaXRyYXRlOmZyYW1lcmF0ZTpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9FbmNvZGVySDI2NSByZWxlYXNlRW5jb2Rlcl0pOgorICAgICAgICAoLVtSVENW
aWRlb0VuY29kZXJIMjY1IHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JU
Q1ZpZGVvRW5jb2RlckgyNjUgY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAg
ICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAg
ICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAgICAg
ICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IHNldEJpdHJhdGVCcHM6XSk6CisgICAgICAgICgtW1JU
Q1ZpZGVvRW5jb2RlckgyNjUgc2V0RW5jb2RlckJpdHJhdGVCcHM6XSk6CisgICAgICAgICgtW1JU
Q1ZpZGVvRW5jb2RlckgyNjUgZnJhbWVXYXNFbmNvZGVkOmZsYWdzOnNhbXBsZUJ1ZmZlcjp3aWR0
aDpoZWlnaHQ6cmVuZGVyVGltZU1zOnRpbWVzdGFtcDpyb3RhdGlvbjpdKToKKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBzY2FsaW5nU2V0dGluZ3NdKToKKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5jYzoK
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
bmFsdV9yZXdyaXRlci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZl
L3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbToKKyAgICAgICAgKHdlYnJ0Yzo6T2Jq
Q1ZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5
Lm1tOgorICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlk
ZW9FbmNvZGVyKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Rlc3Qvc2NlbmFyaW8vdmlkZW9f
c3RyZWFtLmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvdGVzdC92aWRlb19jb2RlY19zZXR0
aW5ncy5oOgorICAgICAgICAod2VicnRjOjp0ZXN0OjpDb2RlY1NldHRpbmdzKToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2M6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmg6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9zZW5kX3N0YXRpc3RpY3NfcHJveHkuY2M6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19yZWNlaXZlX3N0cmVhbS5jYzoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjOgorICAg
ICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTExLTE1
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCBHVEsvV1BFIERlYnVnIGJ1aWxkIGZpeCBhZnRlciByMjUyNDcyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvQlVJTEQuZ24gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9CVUlMRC5nbgppbmRleCA5
MjA3YTFkNjkwNDYwMzc1MTNhYWNlMDA3MDdhYzI2YjYwYmZmYmFhLi40MTEwZDgwNzg2Mjk1OTlj
OTFlZTkzMGRjNzc2Y2I5OTA4N2U5ODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9CVUlMRC5nbgpAQCAtMTkyLDYgKzE5MiwxMCBAQCBjb25m
aWcoImNvbW1vbl9pbmhlcml0ZWRfY29uZmlnIikgewogICBpZiAoaXNfdWJzYW4pIHsKICAgICBj
ZmxhZ3MgKz0gWyAiLWZzYW5pdGl6ZT1mbG9hdC1jYXN0LW92ZXJmbG93IiBdCiAgIH0KKworICBp
ZiAoIXJ0Y191c2VfaDI2NSkgeworICAgIGRlZmluZXMgKz0gWyAiRElTQUJMRV9IMjY1IiBdCisg
IH0KIH0KIAogIyBUT0RPKGJ1Z3Mud2VicnRjLm9yZy85NjkzKTogUmVtb3ZlIHRoZSBwb3NzaWJp
bGl0eSB0byBzdXBwcmVzcyB0aGlzIHdhcm5pbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby9idWlsdGluX3ZpZGVvX2JpdHJh
dGVfYWxsb2NhdG9yX2ZhY3RvcnkuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9hcGkvdmlkZW8vYnVpbHRpbl92aWRlb19iaXRyYXRlX2FsbG9jYXRvcl9mYWN0
b3J5LmNjCmluZGV4IDg5OTEzNjczMzk2OWQ0ZTU5NjRjNzhlNDIwNTZhM2VkMTA3NDFmZDUuLjRm
M2Y2NjgzMjc4ZWM4OWFhMjIyZDFmMzRkNzhhZjE5NTM2MjFmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby9idWlsdGluX3Zp
ZGVvX2JpdHJhdGVfYWxsb2NhdG9yX2ZhY3RvcnkuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL2J1aWx0aW5fdmlkZW9fYml0cmF0ZV9h
bGxvY2F0b3JfZmFjdG9yeS5jYwpAQCAtNDAsNiArNDAsNyBAQCBjbGFzcyBCdWlsdGluVmlkZW9C
aXRyYXRlQWxsb2NhdG9yRmFjdG9yeQogICAgICAgY2FzZSBrVmlkZW9Db2RlY1ZQOToKICAgICAg
ICAgcmF0ZV9hbGxvY2F0b3IucmVzZXQobmV3IFN2Y1JhdGVBbGxvY2F0b3IoY29kZWMpKTsKICAg
ICAgICAgYnJlYWs7CisgICAgICAvLyBUT0RPOiBhZGQgYW4gYWxsb2NhdG9yIGhlcmUgZm9yIEgu
MjY1CiAgICAgICBkZWZhdWx0OgogICAgICAgICByYXRlX2FsbG9jYXRvci5yZXNldChuZXcgRGVm
YXVsdFZpZGVvQml0cmF0ZUFsbG9jYXRvcihjb2RlYykpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19j
b2RlY190eXBlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9h
cGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5oCmluZGV4IDJlNDA2YzA3NTU0ZTQ1ZTk2ODkzYTg4
NDgyOWU2MjU4MTZjZGNhYTYuLjYyYWFiZjRkZmJjODY0YWQ1NDI0OTQxMDc2NTVjNWJmYjQxMGNm
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaApAQCAtMjEs
NiArMjEsOSBAQCBlbnVtIFZpZGVvQ29kZWNUeXBlIHsKICAga1ZpZGVvQ29kZWNWUDgsCiAgIGtW
aWRlb0NvZGVjVlA5LAogICBrVmlkZW9Db2RlY0gyNjQsCisjaWZuZGVmIERJU0FCTEVfSDI2NQor
ICBrVmlkZW9Db2RlY0gyNjUsCisjZW5kaWYKICAga1ZpZGVvQ29kZWNNdWx0aXBsZXgsCiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9h
cGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2RlYy5jYwppbmRleCBi
ODQxNTc1M2NmMTI5OWQxODY3ODllOWEyZDJjMDg0ODQ1ZjRiNjQyLi5iODE5YjY5MTlmNDFlNmNm
NWY5YWY2OGRiNjJhYWUxMjIyODZiMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19j
b2RlY3MvdmlkZW9fY29kZWMuY2MKQEAgLTQ2LDYgKzQ2LDE3IEBAIGJvb2wgVmlkZW9Db2RlY0gy
NjQ6Om9wZXJhdG9yPT0oY29uc3QgVmlkZW9Db2RlY0gyNjQmIG90aGVyKSBjb25zdCB7CiAgICAg
ICAgICAgbnVtYmVyT2ZUZW1wb3JhbExheWVycyA9PSBvdGhlci5udW1iZXJPZlRlbXBvcmFsTGF5
ZXJzKTsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK2Jvb2wgVmlkZW9Db2RlY0gyNjU6Om9w
ZXJhdG9yPT0oY29uc3QgVmlkZW9Db2RlY0gyNjUmIG90aGVyKSBjb25zdCB7CisgIHJldHVybiAo
ZnJhbWVEcm9wcGluZ09uID09IG90aGVyLmZyYW1lRHJvcHBpbmdPbiAmJgorICAgICAgICAgIGtl
eUZyYW1lSW50ZXJ2YWwgPT0gb3RoZXIua2V5RnJhbWVJbnRlcnZhbCAmJgorICAgICAgICAgIHZw
c0xlbiA9PSBvdGhlci52cHNMZW4gJiYgc3BzTGVuID09IG90aGVyLnNwc0xlbiAmJgorICAgICAg
ICAgIHBwc0xlbiA9PSBvdGhlci5wcHNMZW4gJiYKKyAgICAgICAgICAoc3BzTGVuID09IDAgfHwg
bWVtY21wKHNwc0RhdGEsIG90aGVyLnNwc0RhdGEsIHNwc0xlbikgPT0gMCkgJiYKKyAgICAgICAg
ICAocHBzTGVuID09IDAgfHwgbWVtY21wKHBwc0RhdGEsIG90aGVyLnBwc0RhdGEsIHBwc0xlbikg
PT0gMCkpOworfQorI2VuZGlmCisKIGJvb2wgU3BhdGlhbExheWVyOjpvcGVyYXRvcj09KGNvbnN0
IFNwYXRpYWxMYXllciYgb3RoZXIpIGNvbnN0IHsKICAgcmV0dXJuICh3aWR0aCA9PSBvdGhlci53
aWR0aCAmJiBoZWlnaHQgPT0gb3RoZXIuaGVpZ2h0ICYmCiAgICAgICAgICAgbnVtYmVyT2ZUZW1w
b3JhbExheWVycyA9PSBvdGhlci5udW1iZXJPZlRlbXBvcmFsTGF5ZXJzICYmCkBAIC0xMDQsOSAr
MTE1LDI0IEBAIGNvbnN0IFZpZGVvQ29kZWNIMjY0JiBWaWRlb0NvZGVjOjpIMjY0KCkgY29uc3Qg
ewogICByZXR1cm4gY29kZWNfc3BlY2lmaWNfLkgyNjQ7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CitWaWRlb0NvZGVjSDI2NSogVmlkZW9Db2RlYzo6SDI2NSgpIHsKKyAgUlRDX0RDSEVDS19F
UShjb2RlY1R5cGUsIGtWaWRlb0NvZGVjSDI2NSk7CisgIHJldHVybiAmY29kZWNfc3BlY2lmaWNf
LkgyNjU7Cit9CisKK2NvbnN0IFZpZGVvQ29kZWNIMjY1JiBWaWRlb0NvZGVjOjpIMjY1KCkgY29u
c3QgeworICBSVENfRENIRUNLX0VRKGNvZGVjVHlwZSwga1ZpZGVvQ29kZWNIMjY1KTsKKyAgcmV0
dXJuIGNvZGVjX3NwZWNpZmljXy5IMjY1OworfQorI2VuZGlmCisKIHN0YXRpYyBjb25zdCBjaGFy
KiBrUGF5bG9hZE5hbWVWcDggPSAiVlA4IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBrUGF5bG9hZE5h
bWVWcDkgPSAiVlA5IjsKIHN0YXRpYyBjb25zdCBjaGFyKiBrUGF5bG9hZE5hbWVIMjY0ID0gIkgy
NjQiOworI2lmbmRlZiBESVNBQkxFX0gyNjUKK3N0YXRpYyBjb25zdCBjaGFyKiBrUGF5bG9hZE5h
bWVIMjY1ID0gIkgyNjUiOworI2VuZGlmCiBzdGF0aWMgY29uc3QgY2hhcioga1BheWxvYWROYW1l
R2VuZXJpYyA9ICJHZW5lcmljIjsKIHN0YXRpYyBjb25zdCBjaGFyKiBrUGF5bG9hZE5hbWVNdWx0
aXBsZXggPSAiTXVsdGlwbGV4IjsKIApAQCAtMTE4LDYgKzE0NCwxMCBAQCBjb25zdCBjaGFyKiBD
b2RlY1R5cGVUb1BheWxvYWRTdHJpbmcoVmlkZW9Db2RlY1R5cGUgdHlwZSkgewogICAgICAgcmV0
dXJuIGtQYXlsb2FkTmFtZVZwOTsKICAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NDoKICAgICAgIHJl
dHVybiBrUGF5bG9hZE5hbWVIMjY0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtW
aWRlb0NvZGVjSDI2NToKKyAgICAgIHJldHVybiBrUGF5bG9hZE5hbWVIMjY1OworI2VuZGlmCiAg
ICAgLy8gT3RoZXIgY29kZWNzIGRlZmF1bHQgdG8gZ2VuZXJpYy4KICAgICBkZWZhdWx0OgogICAg
ICAgcmV0dXJuIGtQYXlsb2FkTmFtZUdlbmVyaWM7CkBAIC0xMzMsNiArMTYzLDEwIEBAIFZpZGVv
Q29kZWNUeXBlIFBheWxvYWRTdHJpbmdUb0NvZGVjVHlwZShjb25zdCBzdGQ6OnN0cmluZyYgbmFt
ZSkgewogICAgIHJldHVybiBrVmlkZW9Db2RlY0gyNjQ7CiAgIGlmIChhYnNsOjpFcXVhbHNJZ25v
cmVDYXNlKG5hbWUsIGtQYXlsb2FkTmFtZU11bHRpcGxleCkpCiAgICAgcmV0dXJuIGtWaWRlb0Nv
ZGVjTXVsdGlwbGV4OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgaWYgKGFic2w6OkVxdWFsc0ln
bm9yZUNhc2UobmFtZSwga1BheWxvYWROYW1lSDI2NSkpCisgICAgcmV0dXJuIGtWaWRlb0NvZGVj
SDI2NTsKKyNlbmRpZgogICByZXR1cm4ga1ZpZGVvQ29kZWNHZW5lcmljOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9f
Y29kZWNzL3ZpZGVvX2NvZGVjLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmgKaW5kZXggYTI0OGQxOTM4MmYx
Yjk3MjNlM2U1NGZkODc1ZGE4NGNhZTVlODFkMi4uMjAwMTgxNzE0ZDFjZmQyY2E3ZjgwOWFiOGUz
ZmMyYmJiYzBhYmQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2RlYy5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9f
Y29kZWMuaApAQCAtODMsNiArODMsMjMgQEAgc3RydWN0IFZpZGVvQ29kZWNIMjY0IHsKICAgdWlu
dDhfdCBudW1iZXJPZlRlbXBvcmFsTGF5ZXJzOwogfTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUK
K3N0cnVjdCBWaWRlb0NvZGVjSDI2NSB7CisgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaWRlb0Nv
ZGVjSDI2NSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJhdG9yIT0oY29uc3QgVmlkZW9Db2Rl
Y0gyNjUmIG90aGVyKSBjb25zdCB7CisgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICB9
CisgIGJvb2wgZnJhbWVEcm9wcGluZ09uOworICBpbnQga2V5RnJhbWVJbnRlcnZhbDsKKyAgY29u
c3QgdWludDhfdCogdnBzRGF0YTsKKyAgc2l6ZV90IHZwc0xlbjsKKyAgY29uc3QgdWludDhfdCog
c3BzRGF0YTsKKyAgc2l6ZV90IHNwc0xlbjsKKyAgY29uc3QgdWludDhfdCogcHBzRGF0YTsKKyAg
c2l6ZV90IHBwc0xlbjsKK307CisjZW5kaWYKKwogLy8gVHJhbnNsYXRlcyBmcm9tIG5hbWUgb2Yg
Y29kZWMgdG8gY29kZWMgdHlwZSBhbmQgdmljZSB2ZXJzYS4KIFJUQ19FWFBPUlQgY29uc3QgY2hh
ciogQ29kZWNUeXBlVG9QYXlsb2FkU3RyaW5nKFZpZGVvQ29kZWNUeXBlIHR5cGUpOwogUlRDX0VY
UE9SVCBWaWRlb0NvZGVjVHlwZSBQYXlsb2FkU3RyaW5nVG9Db2RlY1R5cGUoY29uc3Qgc3RkOjpz
dHJpbmcmIG5hbWUpOwpAQCAtOTEsNiArMTA4LDkgQEAgdW5pb24gVmlkZW9Db2RlY1VuaW9uIHsK
ICAgVmlkZW9Db2RlY1ZQOCBWUDg7CiAgIFZpZGVvQ29kZWNWUDkgVlA5OwogICBWaWRlb0NvZGVj
SDI2NCBIMjY0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgVmlkZW9Db2RlY0gyNjUgSDI2NTsK
KyNlbmRpZgogfTsKIAogZW51bSBjbGFzcyBWaWRlb0NvZGVjTW9kZSB7IGtSZWFsdGltZVZpZGVv
LCBrU2NyZWVuc2hhcmluZyB9OwpAQCAtMTUyLDYgKzE3MiwxMCBAQCBjbGFzcyBSVENfRVhQT1JU
IFZpZGVvQ29kZWMgewogICBjb25zdCBWaWRlb0NvZGVjVlA5JiBWUDkoKSBjb25zdDsKICAgVmlk
ZW9Db2RlY0gyNjQqIEgyNjQoKTsKICAgY29uc3QgVmlkZW9Db2RlY0gyNjQmIEgyNjQoKSBjb25z
dDsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIFZpZGVvQ29kZWNIMjY1KiBIMjY1KCk7CisgIGNv
bnN0IFZpZGVvQ29kZWNIMjY1JiBIMjY1KCkgY29uc3Q7CisjZW5kaWYKIAogIHByaXZhdGU6CiAg
IC8vIFRPRE8oaHRhKTogQ29uc2lkZXIgcmVwbGFjaW5nIHRoZSB1bmlvbiB3aXRoIGEgcG9pbnRl
ciB0eXBlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVy
LmNjCmluZGV4IGQzZjE2YTAwNTMwMzJjYjNlOGU5MzA1MWFiNzM4ZGIxZjE2Yzg5YTAuLjk5NDY1
ZTUzNmM4Mzk0ODYyN2JiZDVmM2IyY2QwYmM4OTc0MjIyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9f
ZW5jb2Rlci5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2MKQEAgLTU4LDYgKzU4LDIzIEBAIFZp
ZGVvQ29kZWNIMjY0IFZpZGVvRW5jb2Rlcjo6R2V0RGVmYXVsdEgyNjRTZXR0aW5ncygpIHsKICAg
cmV0dXJuIGgyNjRfc2V0dGluZ3M7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitWaWRlb0Nv
ZGVjSDI2NSBWaWRlb0VuY29kZXI6OkdldERlZmF1bHRIMjY1U2V0dGluZ3MoKSB7CisgIFZpZGVv
Q29kZWNIMjY1IGgyNjVfc2V0dGluZ3M7CisgIG1lbXNldCgmaDI2NV9zZXR0aW5ncywgMCwgc2l6
ZW9mKGgyNjVfc2V0dGluZ3MpKTsKKworICAvLyBoMjY1X3NldHRpbmdzLnByb2ZpbGUgPSBrUHJv
ZmlsZUJhc2U7CisgIGgyNjVfc2V0dGluZ3MuZnJhbWVEcm9wcGluZ09uID0gdHJ1ZTsKKyAgaDI2
NV9zZXR0aW5ncy5rZXlGcmFtZUludGVydmFsID0gMzAwMDsKKyAgaDI2NV9zZXR0aW5ncy5zcHNE
YXRhID0gbnVsbHB0cjsKKyAgaDI2NV9zZXR0aW5ncy5zcHNMZW4gPSAwOworICBoMjY1X3NldHRp
bmdzLnBwc0RhdGEgPSBudWxscHRyOworICBoMjY1X3NldHRpbmdzLnBwc0xlbiA9IDA7CisKKyAg
cmV0dXJuIGgyNjVfc2V0dGluZ3M7Cit9CisjZW5kaWYKKwogVmlkZW9FbmNvZGVyOjpTY2FsaW5n
U2V0dGluZ3M6OlNjYWxpbmdTZXR0aW5ncygpID0gZGVmYXVsdDsKIAogVmlkZW9FbmNvZGVyOjpT
Y2FsaW5nU2V0dGluZ3M6OlNjYWxpbmdTZXR0aW5ncyhLT2ZmKSA6IFNjYWxpbmdTZXR0aW5ncygp
IHt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oCmlu
ZGV4IDBlZTU1MjFiOTVjYTIxMmIyOTQ3Y2VjNTJjYzAxZjVmZWMwNmYxYTUuLjJjODA4NTIwMjk5
ZWQ0YTU5MTA4YjcxMDBjZWE2ZDQzNTEwZDZhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rl
ci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92
aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oCkBAIC0yODYsNiArMjg2LDkgQEAgY2xhc3MgUlRD
X0VYUE9SVCBWaWRlb0VuY29kZXIgewogICBzdGF0aWMgVmlkZW9Db2RlY1ZQOCBHZXREZWZhdWx0
VnA4U2V0dGluZ3MoKTsKICAgc3RhdGljIFZpZGVvQ29kZWNWUDkgR2V0RGVmYXVsdFZwOVNldHRp
bmdzKCk7CiAgIHN0YXRpYyBWaWRlb0NvZGVjSDI2NCBHZXREZWZhdWx0SDI2NFNldHRpbmdzKCk7
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBzdGF0aWMgVmlkZW9Db2RlY0gyNjUgR2V0RGVmYXVs
dEgyNjVTZXR0aW5ncygpOworI2VuZGlmCiAKICAgdmlydHVhbCB+VmlkZW9FbmNvZGVyKCkge30K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
YXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rl
cl9jb25maWcuY2MKaW5kZXggMmIxYWRjMDIxYjhjY2RkMTJhNDM1ZDdkODRmMzc3MzBiMmZhNGQ4
Ni4uZWUyZjJkYmM5ODYyOTkyYzk0Zjk5NTE1NzlhMWRiZDZjNTQ4NzA0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19lbmNvZGVyX2NvbmZpZy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNj
CkBAIC05Miw2ICs5MiwxMCBAQCB2b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6RW5jb2RlclNwZWNp
ZmljU2V0dGluZ3M6OkZpbGxFbmNvZGVyU3BlY2lmaWNTZXR0aW5ncygKICAgICBGaWxsVmlkZW9D
b2RlY1ZwOChjb2RlYy0+VlA4KCkpOwogICB9IGVsc2UgaWYgKGNvZGVjLT5jb2RlY1R5cGUgPT0g
a1ZpZGVvQ29kZWNWUDkpIHsKICAgICBGaWxsVmlkZW9Db2RlY1ZwOShjb2RlYy0+VlA5KCkpOwor
I2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgfSBlbHNlIGlmIChjb2RlYy0+Y29kZWNUeXBlID09IGtW
aWRlb0NvZGVjSDI2NSkgeworICAgIEZpbGxWaWRlb0NvZGVjSDI2NShjb2RlYy0+SDI2NSgpKTsK
KyNlbmRpZgogICB9IGVsc2UgewogICAgIFJUQ19OT1RSRUFDSEVEKCkgPDwgIkVuY29kZXIgc3Bl
Y2lmaWNzIHNldC91c2VkIGZvciB1bmtub3duIGNvZGVjIHR5cGUuIjsKICAgfQpAQCAtMTAyLDYg
KzEwNiwxMyBAQCB2b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6RW5jb2RlclNwZWNpZmljU2V0dGlu
Z3M6OkZpbGxWaWRlb0NvZGVjSDI2NCgKICAgUlRDX05PVFJFQUNIRUQoKTsKIH0KIAorI2lmbmRl
ZiBESVNBQkxFX0gyNjUKK3ZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNvZGVyU3BlY2lmaWNT
ZXR0aW5nczo6RmlsbFZpZGVvQ29kZWNIMjY1KAorICAgIFZpZGVvQ29kZWNIMjY1KiBoMjY1X3Nl
dHRpbmdzKSBjb25zdCB7CisgIFJUQ19OT1RSRUFDSEVEKCk7Cit9CisjZW5kaWYKKwogdm9pZCBW
aWRlb0VuY29kZXJDb25maWc6OkVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2Rl
Y1ZwOCgKICAgICBWaWRlb0NvZGVjVlA4KiB2cDhfc2V0dGluZ3MpIGNvbnN0IHsKICAgUlRDX05P
VFJFQUNIRUQoKTsKQEAgLTEyMSw2ICsxMzIsMTcgQEAgdm9pZCBWaWRlb0VuY29kZXJDb25maWc6
OkgyNjRFbmNvZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbFZpZGVvQ29kZWNIMjY0KAogICAqaDI2
NF9zZXR0aW5ncyA9IHNwZWNpZmljc187CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitWaWRl
b0VuY29kZXJDb25maWc6OkgyNjVFbmNvZGVyU3BlY2lmaWNTZXR0aW5nczo6SDI2NUVuY29kZXJT
cGVjaWZpY1NldHRpbmdzKAorICAgIGNvbnN0IFZpZGVvQ29kZWNIMjY1JiBzcGVjaWZpY3MpCisg
ICAgOiBzcGVjaWZpY3NfKHNwZWNpZmljcykge30KKwordm9pZCBWaWRlb0VuY29kZXJDb25maWc6
OkgyNjVFbmNvZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbFZpZGVvQ29kZWNIMjY1KAorICAgIFZp
ZGVvQ29kZWNIMjY1KiBoMjY1X3NldHRpbmdzKSBjb25zdCB7CisgICpoMjY1X3NldHRpbmdzID0g
c3BlY2lmaWNzXzsKK30KKyNlbmRpZgorCiBWaWRlb0VuY29kZXJDb25maWc6OlZwOEVuY29kZXJT
cGVjaWZpY1NldHRpbmdzOjpWcDhFbmNvZGVyU3BlY2lmaWNTZXR0aW5ncygKICAgICBjb25zdCBW
aWRlb0NvZGVjVlA4JiBzcGVjaWZpY3MpCiAgICAgOiBzcGVjaWZpY3NfKHNwZWNpZmljcykge30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Fw
aS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9j
b25maWcuaAppbmRleCAzOTliM2NjZDM4NjgzMjUxODJkNzNhNWI2YzQ0NjA4YjYyMTQ4MDFlLi4z
ZWRkZTAyODljZjYyYTMzYWVhYzllMGNhYTViYzk3MjJkZTUwMTI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3Zp
ZGVvX2VuY29kZXJfY29uZmlnLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5oCkBAIC02
NSw2ICs2NSw5IEBAIGNsYXNzIFZpZGVvRW5jb2RlckNvbmZpZyB7CiAgICAgdmlydHVhbCB2b2lk
IEZpbGxWaWRlb0NvZGVjVnA4KFZpZGVvQ29kZWNWUDgqIHZwOF9zZXR0aW5ncykgY29uc3Q7CiAg
ICAgdmlydHVhbCB2b2lkIEZpbGxWaWRlb0NvZGVjVnA5KFZpZGVvQ29kZWNWUDkqIHZwOV9zZXR0
aW5ncykgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIEZpbGxWaWRlb0NvZGVjSDI2NChWaWRlb0Nv
ZGVjSDI2NCogaDI2NF9zZXR0aW5ncykgY29uc3Q7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAg
IHZpcnR1YWwgdm9pZCBGaWxsVmlkZW9Db2RlY0gyNjUoVmlkZW9Db2RlY0gyNjUqIGgyNjVfc2V0
dGluZ3MpIGNvbnN0OworI2VuZGlmCiAKICAgIHByaXZhdGU6CiAgICAgfkVuY29kZXJTcGVjaWZp
Y1NldHRpbmdzKCkgb3ZlcnJpZGUge30KQEAgLTgwLDYgKzgzLDE2IEBAIGNsYXNzIFZpZGVvRW5j
b2RlckNvbmZpZyB7CiAgICAgVmlkZW9Db2RlY0gyNjQgc3BlY2lmaWNzXzsKICAgfTsKIAorI2lm
bmRlZiBESVNBQkxFX0gyNjUKKyAgY2xhc3MgSDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzIDog
cHVibGljIEVuY29kZXJTcGVjaWZpY1NldHRpbmdzIHsKKyAgIHB1YmxpYzoKKyAgICBleHBsaWNp
dCBIMjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3QgVmlkZW9Db2RlY0gyNjUmIHNwZWNp
Zmljcyk7CisgICAgdm9pZCBGaWxsVmlkZW9Db2RlY0gyNjUoVmlkZW9Db2RlY0gyNjUqIGgyNjVf
c2V0dGluZ3MpIGNvbnN0IG92ZXJyaWRlOworCisgICBwcml2YXRlOgorICAgIFZpZGVvQ29kZWNI
MjY1IHNwZWNpZmljc187CisgIH07CisjZW5kaWYKICAgY2xhc3MgVnA4RW5jb2RlclNwZWNpZmlj
U2V0dGluZ3MgOiBwdWJsaWMgRW5jb2RlclNwZWNpZmljU2V0dGluZ3MgewogICAgcHVibGljOgog
ICAgIGV4cGxpY2l0IFZwOEVuY29kZXJTcGVjaWZpY1NldHRpbmdzKGNvbnN0IFZpZGVvQ29kZWNW
UDgmIHNwZWNpZmljcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9idWlsZF9vdmVycmlkZXMvYnVpbGQuZ25pIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYnVpbGRfb3ZlcnJpZGVzL2J1aWxkLmduaQppbmRl
eCA2NjkwNDRkYjgxY2IyMTg1YmUzNzRiMGIxMDAyNzA5M2M1NjgzYzM1Li42MDI1Y2RkZDA0N2Uw
OWIxZDBkMjVlMDM0MWE1ZmNjNTk1OTcwMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9idWlsZF9vdmVycmlkZXMvYnVpbGQuZ25pCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRl
cy9idWlsZC5nbmkKQEAgLTM1LDYgKzM1LDEyIEBAIGxpbnRfc3VwcHJlc3Npb25zX2ZpbGUgPSAi
Ly90b29sc193ZWJydGMvYW5kcm9pZC9zdXBwcmVzc2lvbnMueG1sIgogIyBzbyB3ZSBqdXN0IGln
bm9yZSB0aGF0IGFzc2VydC4gU2VlIGh0dHBzOi8vY3JidWcuY29tLzY0ODk0OCBmb3IgbW9yZSBp
bmZvLgogaWdub3JlX2VsZjMyX2xpbWl0YXRpb25zID0gdHJ1ZQogCitpZiAoaXNfd2luIHx8IGlz
X2lvcyB8fCBpc19hbmRyb2lkKSB7CisgIHJ0Y191c2VfaDI2NSA9IHRydWUKK30gZWxzZSB7Cisg
IHJ0Y191c2VfaDI2NSA9IGZhbHNlCit9CisKICMgVXNlIGJ1bmRsZWQgaGVybWV0aWMgWGNvZGUg
aW5zdGFsbGF0aW9uIG1haW50YWludGVkIGJ5IENocm9taXVtLAogIyBleGNlcHQgZm9yIGxvY2Fs
IGlPUyBidWlsZHMgd2hlcmUgaXQncyB1bnN1cHBvcnRlZC4KIGlmIChob3N0X29zID09ICJtYWMi
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9jYWxsL3J0cF9wYXlsb2FkX3BhcmFtcy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NhbGwvcnRwX3BheWxvYWRfcGFyYW1zLmNjCmluZGV4IGFmN2JmZDJj
YWNhYTM2ZTI2ZmJhNGYwYzc0MGE1OWZlZTNiMjhhMTAuLjBkNGEwZTkzNjUxMzEzYmMxYjFlZjMz
MTU5YmFjYWEyYWExMzgwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NhbGwvcnRwX3BheWxvYWRfcGFyYW1zLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NhbGwvcnRwX3BheWxvYWRfcGFyYW1z
LmNjCkBAIC0xMDIsNiArMTAyLDE0IEBAIHZvaWQgUG9wdWxhdGVSdHBXaXRoQ29kZWNTcGVjaWZp
Y3MoY29uc3QgQ29kZWNTcGVjaWZpY0luZm8mIGluZm8sCiAgICAgICB9CiAgICAgICByZXR1cm47
CiAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NTog
eworICAgICAgYXV0byBoMjY1X2hlYWRlciA9IHJ0cC0+dmlkZW9fdHlwZV9oZWFkZXIuZW1wbGFj
ZTxSVFBWaWRlb0hlYWRlckgyNjU+KCk7CisgICAgICBoMjY1X2hlYWRlci5wYWNrZXRpemF0aW9u
X21vZGUgPQorICAgICAgICAgIGluZm8uY29kZWNTcGVjaWZpYy5IMjY1LnBhY2tldGl6YXRpb25f
bW9kZTsKKyAgICB9CisgICAgcmV0dXJuOworI2VuZGlmCiAgICAgY2FzZSBrVmlkZW9Db2RlY011
bHRpcGxleDoKICAgICBjYXNlIGtWaWRlb0NvZGVjR2VuZXJpYzoKICAgICAgIHJ0cC0+Y29kZWMg
PSBrVmlkZW9Db2RlY0dlbmVyaWM7CkBAIC0yNzQsNiArMjgyLDkgQEAgdm9pZCBSdHBQYXlsb2Fk
UGFyYW1zOjpTZXRHZW5lcmljKGNvbnN0IENvZGVjU3BlY2lmaWNJbmZvKiBjb2RlY19zcGVjaWZp
Y19pbmZvLAogICAgICAgICAgICAgICAgICAgICAgIGlzX2tleWZyYW1lLCBydHBfdmlkZW9faGVh
ZGVyKTsKICAgICAgIH0KICAgICAgIHJldHVybjsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAg
Y2FzZSBWaWRlb0NvZGVjVHlwZTo6a1ZpZGVvQ29kZWNIMjY1OgorI2VuZGlmCiAgICAgY2FzZSBW
aWRlb0NvZGVjVHlwZTo6a1ZpZGVvQ29kZWNNdWx0aXBsZXg6CiAgICAgICByZXR1cm47CiAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nv
bW1vbl92aWRlby9CVUlMRC5nbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbgppbmRleCBjMGNkOTU5OTQ4NzJiNGEzMTA0NTMy
ZmNlMzYwODc3NTU4NmMxNjE1Li5kM2NiODU2YTVmZmNlNjczMjBkNDNmMWQ0N2ZhOGZlNDA4MjA0
ODMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9jb21tb25fdmlkZW8vQlVJTEQuZ24KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduCkBAIC00MSw2ICs0MSwxOSBAQCBy
dGNfc3RhdGljX2xpYnJhcnkoImNvbW1vbl92aWRlbyIpIHsKICAgICAidmlkZW9fcmVuZGVyX2Zy
YW1lcy5oIiwKICAgXQogCisgIGlmIChydGNfdXNlX2gyNjUpIHsKKyAgICBzb3VyY2VzICs9IFsK
KyAgICAgICJoMjY1L2gyNjVfY29tbW9uLmNjIiwKKyAgICAgICJoMjY1L2gyNjVfY29tbW9uLmgi
LAorICAgICAgImgyNjUvaDI2NV9wcHNfcGFyc2VyLmNjIiwKKyAgICAgICJoMjY1L2gyNjVfcHBz
X3BhcnNlci5oIiwKKyAgICAgICJoMjY1L2gyNjVfc3BzX3BhcnNlci5jYyIsCisgICAgICAiaDI2
NS9oMjY1X3Nwc19wYXJzZXIuaCIsCisgICAgICAiaDI2NS9oMjY1X3Zwc19wYXJzZXIuY2MiLAor
ICAgICAgImgyNjUvaDI2NV92cHNfcGFyc2VyLmgiLAorICAgIF0KKyAgfQorCiAgIGRlcHMgPSBb
CiAgICAgIi4uL2FwaTpzY29wZWRfcmVmcHRyIiwKICAgICAiLi4vYXBpL3Rhc2tfcXVldWUiLApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29t
bW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5jYwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYjJjYWMyMjc1OWQ4YmRiYmZmYmYwZjcxNGU5MTQ3ZTY0MjNiNjNmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9u
X3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uY2MKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiAgQ29w
eXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
IEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBp
bnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRo
ZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAq
ICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2Ug
dHJlZS4KKyAqLworCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIK
KworbmFtZXNwYWNlIHdlYnJ0YyB7CituYW1lc3BhY2UgSDI2NSB7CisKK2NvbnN0IHVpbnQ4X3Qg
a05hbHVUeXBlTWFzayA9IDB4N0U7CisKK3N0ZDo6dmVjdG9yPE5hbHVJbmRleD4gRmluZE5hbHVJ
bmRpY2VzKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBidWZmZXJfc2l6ZSkgeworICAvLyBUaGlzIGlzIHNvcnRhIGxp
a2UgQm95ZXItTW9vcmUsIGJ1dCB3aXRoIG9ubHkgdGhlIGZpcnN0IG9wdGltaXphdGlvbiBzdGVw
OgorICAvLyBnaXZlbiBhIDMtYnl0ZSBzZXF1ZW5jZSB3ZSdyZSBsb29raW5nIGF0LCBpZiB0aGUg
M3JkIGJ5dGUgaXNuJ3QgMSBvciAwLAorICAvLyBza2lwIGFoZWFkIHRvIHRoZSBuZXh0IDMtYnl0
ZSBzZXF1ZW5jZS4gMHMgYW5kIDFzIGFyZSByZWxhdGl2ZWx5IHJhcmUsIHNvCisgIC8vIHRoaXMg
d2lsbCBza2lwIHRoZSBtYWpvcml0eSBvZiByZWFkcy9jaGVja3MuCisgIHN0ZDo6dmVjdG9yPE5h
bHVJbmRleD4gc2VxdWVuY2VzOworICBpZiAoYnVmZmVyX3NpemUgPCBrTmFsdVNob3J0U3RhcnRT
ZXF1ZW5jZVNpemUpCisgICAgcmV0dXJuIHNlcXVlbmNlczsKKworICBjb25zdCBzaXplX3QgZW5k
ID0gYnVmZmVyX3NpemUgLSBrTmFsdVNob3J0U3RhcnRTZXF1ZW5jZVNpemU7CisgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgZW5kOykgeworICAgIGlmIChidWZmZXJbaSArIDJdID4gMSkgeworICAg
ICAgaSArPSAzOworICAgIH0gZWxzZSBpZiAoYnVmZmVyW2kgKyAyXSA9PSAxICYmIGJ1ZmZlcltp
ICsgMV0gPT0gMCAmJiBidWZmZXJbaV0gPT0gMCkgeworICAgICAgLy8gV2UgZm91bmQgYSBzdGFy
dCBzZXF1ZW5jZSwgbm93IGNoZWNrIGlmIGl0IHdhcyBhIDMgb2YgNCBieXRlIG9uZS4KKyAgICAg
IE5hbHVJbmRleCBpbmRleCA9IHtpLCBpICsgMywgMH07CisgICAgICBpZiAoaW5kZXguc3RhcnRf
b2Zmc2V0ID4gMCAmJiBidWZmZXJbaW5kZXguc3RhcnRfb2Zmc2V0IC0gMV0gPT0gMCkKKyAgICAg
ICAgLS1pbmRleC5zdGFydF9vZmZzZXQ7CisKKyAgICAgIC8vIFVwZGF0ZSBsZW5ndGggb2YgcHJl
dmlvdXMgZW50cnkuCisgICAgICBhdXRvIGl0ID0gc2VxdWVuY2VzLnJiZWdpbigpOworICAgICAg
aWYgKGl0ICE9IHNlcXVlbmNlcy5yZW5kKCkpCisgICAgICAgIGl0LT5wYXlsb2FkX3NpemUgPSBp
bmRleC5zdGFydF9vZmZzZXQgLSBpdC0+cGF5bG9hZF9zdGFydF9vZmZzZXQ7CisKKyAgICAgIHNl
cXVlbmNlcy5wdXNoX2JhY2soaW5kZXgpOworCisgICAgICBpICs9IDM7CisgICAgfSBlbHNlIHsK
KyAgICAgICsraTsKKyAgICB9CisgIH0KKworICAvLyBVcGRhdGUgbGVuZ3RoIG9mIGxhc3QgZW50
cnksIGlmIGFueS4KKyAgYXV0byBpdCA9IHNlcXVlbmNlcy5yYmVnaW4oKTsKKyAgaWYgKGl0ICE9
IHNlcXVlbmNlcy5yZW5kKCkpCisgICAgaXQtPnBheWxvYWRfc2l6ZSA9IGJ1ZmZlcl9zaXplIC0g
aXQtPnBheWxvYWRfc3RhcnRfb2Zmc2V0OworCisgIHJldHVybiBzZXF1ZW5jZXM7Cit9CisKK05h
bHVUeXBlIFBhcnNlTmFsdVR5cGUodWludDhfdCBkYXRhKSB7CisgIHJldHVybiBzdGF0aWNfY2Fz
dDxOYWx1VHlwZT4oKGRhdGEgJiBrTmFsdVR5cGVNYXNrKSA+PiAxKTsKK30KKworc3RkOjp2ZWN0
b3I8dWludDhfdD4gUGFyc2VSYnNwKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgp
IHsKKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gb3V0OworICBvdXQucmVzZXJ2ZShsZW5ndGgpOwor
CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOykgeworICAgIC8vIEJlIGNhcmVmdWwg
YWJvdXQgb3Zlci91bmRlcmZsb3cgaGVyZS4gYnl0ZV9sZW5ndGhfIC0gMyBjYW4gdW5kZXJmbG93
LCBhbmQKKyAgICAvLyBpICsgMyBjYW4gb3ZlcmZsb3csIGJ1dCBieXRlX2xlbmd0aF8gLSBpIGNh
bid0LCBiZWNhdXNlIGkgPCBieXRlX2xlbmd0aF8KKyAgICAvLyBhYm92ZSwgYW5kIHRoYXQgZXhw
cmVzc2lvbiB3aWxsIHByb2R1Y2UgdGhlIG51bWJlciBvZiBieXRlcyBsZWZ0IGluCisgICAgLy8g
dGhlIHN0cmVhbSBpbmNsdWRpbmcgdGhlIGJ5dGUgYXQgaS4KKyAgICBpZiAobGVuZ3RoIC0gaSA+
PSAzICYmICFkYXRhW2ldICYmICFkYXRhW2kgKyAxXSAmJiBkYXRhW2kgKyAyXSA9PSAzKSB7Cisg
ICAgICAvLyBUd28gcmJzcCBieXRlcy4KKyAgICAgIG91dC5wdXNoX2JhY2soZGF0YVtpKytdKTsK
KyAgICAgIG91dC5wdXNoX2JhY2soZGF0YVtpKytdKTsKKyAgICAgIC8vIFNraXAgdGhlIGVtdWxh
dGlvbiBieXRlLgorICAgICAgaSsrOworICAgIH0gZWxzZSB7CisgICAgICAvLyBTaW5nbGUgcmJz
cCBieXRlLgorICAgICAgb3V0LnB1c2hfYmFjayhkYXRhW2krK10pOworICAgIH0KKyAgfQorICBy
ZXR1cm4gb3V0OworfQorCit2b2lkIFdyaXRlUmJzcChjb25zdCB1aW50OF90KiBieXRlcywgc2l6
ZV90IGxlbmd0aCwgcnRjOjpCdWZmZXIqIGRlc3RpbmF0aW9uKSB7CisgIHN0YXRpYyBjb25zdCB1
aW50OF90IGtaZXJvc0luU3RhcnRTZXF1ZW5jZSA9IDI7CisgIHN0YXRpYyBjb25zdCB1aW50OF90
IGtFbXVsYXRpb25CeXRlID0gMHgwM3U7CisgIHNpemVfdCBudW1fY29uc2VjdXRpdmVfemVyb3Mg
PSAwOworICBkZXN0aW5hdGlvbi0+RW5zdXJlQ2FwYWNpdHkoZGVzdGluYXRpb24tPnNpemUoKSAr
IGxlbmd0aCk7CisKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAg
IHVpbnQ4X3QgYnl0ZSA9IGJ5dGVzW2ldOworICAgIGlmIChieXRlIDw9IGtFbXVsYXRpb25CeXRl
ICYmCisgICAgICAgIG51bV9jb25zZWN1dGl2ZV96ZXJvcyA+PSBrWmVyb3NJblN0YXJ0U2VxdWVu
Y2UpIHsKKyAgICAgIC8vIE5lZWQgdG8gZXNjYXBlLgorICAgICAgZGVzdGluYXRpb24tPkFwcGVu
ZERhdGEoa0VtdWxhdGlvbkJ5dGUpOworICAgICAgbnVtX2NvbnNlY3V0aXZlX3plcm9zID0gMDsK
KyAgICB9CisgICAgZGVzdGluYXRpb24tPkFwcGVuZERhdGEoYnl0ZSk7CisgICAgaWYgKGJ5dGUg
PT0gMCkgeworICAgICAgKytudW1fY29uc2VjdXRpdmVfemVyb3M7CisgICAgfSBlbHNlIHsKKyAg
ICAgIG51bV9jb25zZWN1dGl2ZV96ZXJvcyA9IDA7CisgICAgfQorICB9Cit9CisKK30gIC8vIG5h
bWVzcGFjZSBIMjY1Cit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1
X2NvbW1vbi5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29t
bW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wN2JiMjc3NGVlMTBhYjEz
ZTkyMjVkNDQwNWQ1MTY5M2FjNzEwNDEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21t
b24uaApAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdl
YlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAq
ICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRo
ZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBy
aWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBj
b250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRI
T1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpZm5kZWYg
Q09NTU9OX1ZJREVPX0gyNjVfSDI2NV9DT01NT05fSF8KKyNkZWZpbmUgQ09NTU9OX1ZJREVPX0gy
NjVfSDI2NV9DT01NT05fSF8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+
CisKKyNpbmNsdWRlICJydGNfYmFzZS9idWZmZXIuaCIKKworbmFtZXNwYWNlIHdlYnJ0YyB7CisK
K25hbWVzcGFjZSBIMjY1IHsKKy8vIFRoZSBzaXplIG9mIGEgZnVsbCBOQUxVIHN0YXJ0IHNlcXVl
bmNlIHswIDAgMCAxfSwgdXNlZCBmb3IgdGhlIGZpcnN0IE5BTFUKKy8vIG9mIGFuIGFjY2VzcyB1
bml0LCBhbmQgZm9yIFNQUyBhbmQgUFBTIGJsb2Nrcy4KK2NvbnN0IHNpemVfdCBrTmFsdUxvbmdT
dGFydFNlcXVlbmNlU2l6ZSA9IDQ7CisKKy8vIFRoZSBzaXplIG9mIGEgc2hvcnRlbmVkIE5BTFUg
c3RhcnQgc2VxdWVuY2UgezAgMCAxfSwgdGhhdCBtYXkgYmUgdXNlZCBpZgorLy8gbm90IHRoZSBm
aXJzdCBOQUxVIG9mIGFuIGFjY2VzcyB1bml0IG9yIGFuIFNQUyBvciBQUFMgYmxvY2suCitjb25z
dCBzaXplX3Qga05hbHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXplID0gMzsKKworLy8gVGhlIHNpemUg
b2YgdGhlIE5BTFUgdHlwZSBieXRlICgxKS4KK2NvbnN0IHNpemVfdCBrTmFsdVR5cGVTaXplID0g
MTsKKworZW51bSBOYWx1VHlwZSA6IHVpbnQ4X3QgeworICBrVHJhaWxOID0gMCwKKyAga1RyYWls
UiA9IDEsCisgIGtUc2FOID0gMiwKKyAga1RzYVIgPSAzLAorICBrU3RzYU4gPSA0LAorICBrU3Rz
YVIgPSA1LAorICBrUmFkbE4gPSA2LAorICBrUmFkbFIgPSA3LAorICBrQmxhV0xwID0gMTYsCisg
IGtCbGFXUmFkbCA9IDE3LAorICBrQmxhTkxwID0gMTgsCisgIGtJZHJXUmFkbCA9IDE5LAorICBr
SWRyTkxwID0gMjAsCisgIGtDcmEgPSAyMSwKKyAga1JzdklyYXBWY2wyMyA9IDIzLAorICBrVnBz
ID0gMzIsCisgIGtTcHMgPSAzMywKKyAga1BwcyA9IDM0LAorICBrQXVkID0gMzUsCisgIGtQcmVm
aXhTZWkgPSAzOSwKKyAga1N1ZmZpeFNlaSA9IDQwLAorICBrQVAgPSA0OCwKKyAga0ZVID0gNDkK
K307CisKK2VudW0gU2xpY2VUeXBlIDogdWludDhfdCB7IGtQID0gMCwga0IgPSAxLCBrSSA9IDIs
IGtTcCA9IDMsIGtTaSA9IDQgfTsKKworc3RydWN0IE5hbHVJbmRleCB7CisgIC8vIFN0YXJ0IGlu
ZGV4IG9mIE5BTFUsIGluY2x1ZGluZyBzdGFydCBzZXF1ZW5jZS4KKyAgc2l6ZV90IHN0YXJ0X29m
ZnNldDsKKyAgLy8gU3RhcnQgaW5kZXggb2YgTkFMVSBwYXlsb2FkLCB0eXBpY2FsbHkgdHlwZSBo
ZWFkZXIuCisgIHNpemVfdCBwYXlsb2FkX3N0YXJ0X29mZnNldDsKKyAgLy8gTGVuZ3RoIG9mIE5B
TFUgcGF5bG9hZCwgaW4gYnl0ZXMsIGNvdW50aW5nIGZyb20gcGF5bG9hZF9zdGFydF9vZmZzZXQu
CisgIHNpemVfdCBwYXlsb2FkX3NpemU7Cit9OworCisvLyBSZXR1cm5zIGEgdmVjdG9yIG9mIHRo
ZSBOQUxVIGluZGljZXMgaW4gdGhlIGdpdmVuIGJ1ZmZlci4KK3N0ZDo6dmVjdG9yPE5hbHVJbmRl
eD4gRmluZE5hbHVJbmRpY2VzKGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJfc2l6ZSk7CisKKy8vIEdldCB0
aGUgTkFMIHR5cGUgZnJvbSB0aGUgaGVhZGVyIGJ5dGUgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHN0
YXJ0IHNlcXVlbmNlLgorTmFsdVR5cGUgUGFyc2VOYWx1VHlwZSh1aW50OF90IGRhdGEpOworCisv
LyBNZXRob2RzIGZvciBwYXJzaW5nIGFuZCB3cml0aW5nIFJCU1AuIFNlZSBzZWN0aW9uIDcuNC4y
IG9mIHRoZSBIMjY1IHNwZWMuCisvLworLy8gVGhlIGZvbGxvd2luZyBzZXF1ZW5jZXMgYXJlIGls
bGVnYWwsIGFuZCBuZWVkIHRvIGJlIGVzY2FwZWQgd2hlbiBlbmNvZGluZzoKKy8vIDAwIDAwIDAw
IC0+IDAwIDAwIDAzIDAwCisvLyAwMCAwMCAwMSAtPiAwMCAwMCAwMyAwMQorLy8gMDAgMDAgMDIg
LT4gMDAgMDAgMDMgMDIKKy8vIEFuZCB0aGluZ3MgaW4gdGhlIHNvdXJjZSB0aGF0IGxvb2sgbGlr
ZSB0aGUgZW11bGF0aW9uIGJ5dGUgcGF0dGVybiAoMDAgMDAgMDMpCisvLyBuZWVkIHRvIGhhdmUg
YW4gZXh0cmEgZW11bGF0aW9uIGJ5dGUgYWRkZWQsIHNvIGl0J3MgcmVtb3ZlZCB3aGVuIGRlY29k
aW5nOgorLy8gMDAgMDAgMDMgLT4gMDAgMDAgMDMgMDMKKy8vCisvLyBEZWNvZGluZyBpcyBzaW1w
bHkgYSBtYXR0ZXIgb2YgZmluZGluZyBhbnkgMDAgMDAgMDMgc2VxdWVuY2UgYW5kIHJlbW92aW5n
CisvLyB0aGUgMDMgZW11bGF0aW9uIGJ5dGUuCisKKy8vIFBhcnNlIHRoZSBnaXZlbiBkYXRhIGFu
ZCByZW1vdmUgYW55IGVtdWxhdGlvbiBieXRlIGVzY2FwaW5nLgorc3RkOjp2ZWN0b3I8dWludDhf
dD4gUGFyc2VSYnNwKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworCisvLyBX
cml0ZSB0aGUgZ2l2ZW4gZGF0YSB0byB0aGUgZGVzdGluYXRpb24gYnVmZmVyLCBpbnNlcnRpbmcg
YW5kIGVtdWxhdGlvbgorLy8gYnl0ZXMgaW4gb3JkZXIgdG8gZXNjYXBlIGFueSBkYXRhIHRoZSBj
b3VsZCBiZSBpbnRlcnByZXRlZCBhcyBhIHN0YXJ0CisvLyBzZXF1ZW5jZS4KK3ZvaWQgV3JpdGVS
YnNwKGNvbnN0IHVpbnQ4X3QqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBydGM6OkJ1ZmZlciogZGVz
dGluYXRpb24pOworfSAgLy8gbmFtZXNwYWNlIEgyNjUKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMK
KworI2VuZGlmICAvLyBDT01NT05fVklERU9fSDI2NV9IMjY1X0NPTU1PTl9IXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVv
L2gyNjUvaDI2NV9wcHNfcGFyc2VyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmNjCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQxODQxMWNlZDMyN2M4NGE2NWVjOTNmNGRmYzdiZTkyY2ZmMmUyNmIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25f
dmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuY2MKQEAgLTAsMCArMSwyMDkgQEAKKy8qCisgKiAg
Q29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25h
bCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGlu
IHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkK
KyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3Vy
Y2UgdHJlZS4KKyAqLworCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFy
c2VyLmgiCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVk
ZSAiY29tbW9uX3ZpZGVvL2gyNjQvaDI2NF9jb21tb24uaCIKKyNpbmNsdWRlICJjb21tb25fdmlk
ZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9idWZmZXIuaCIK
KyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKKyNkZWZpbmUgUkVUVVJOX0VNUFRZX09O
X0ZBSUwoeCkgXAorICBpZiAoISh4KSkgeyAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJu
IGFic2w6Om51bGxvcHQ7ICAgICAgICBcCisgIH0KKworbmFtZXNwYWNlIHsKK2NvbnN0IGludCBr
TWF4UGljSW5pdFFwRGVsdGFWYWx1ZSA9IDI1OworY29uc3QgaW50IGtNaW5QaWNJbml0UXBEZWx0
YVZhbHVlID0gLTI2OworfSAgLy8gbmFtZXNwYWNlCisKK25hbWVzcGFjZSB3ZWJydGMgeworCisv
LyBHZW5lcmFsIG5vdGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2Yg
dGhlIEguMjY1IHN0YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8v
IGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworYWJzbDo6b3B0aW9uYWw8SDI2
NVBwc1BhcnNlcjo6UHBzU3RhdGU+IEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzKAorICAgIGNvbnN0
IHVpbnQ4X3QqIGRhdGEsCisgICAgc2l6ZV90IGxlbmd0aCkgeworICAvLyBGaXJzdCwgcGFyc2Ug
b3V0IHJic3AsIHdoaWNoIGlzIGJhc2ljYWxseSB0aGUgc291cmNlIGJ1ZmZlciBtaW51cyBlbXVs
YXRpb24KKyAgLy8gYnl0ZXMgKHRoZSBsYXN0IGJ5dGUgb2YgYSAweDAwIDB4MDAgMHgwMyBzZXF1
ZW5jZSkuIFJCU1AgaXMgZGVmaW5lZCBpbgorICAvLyBzZWN0aW9uIDcuMy4xIG9mIHRoZSBILjI2
NCBzdGFuZGFyZC4KKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gdW5wYWNrZWRfYnVmZmVyID0gSDI2
NDo6UGFyc2VSYnNwKGRhdGEsIGxlbmd0aCk7CisgIHJ0Yzo6Qml0QnVmZmVyIGJpdF9idWZmZXIo
dW5wYWNrZWRfYnVmZmVyLmRhdGEoKSwgdW5wYWNrZWRfYnVmZmVyLnNpemUoKSk7CisgIHJldHVy
biBQYXJzZUludGVybmFsKCZiaXRfYnVmZmVyKTsKK30KKworYm9vbCBIMjY1UHBzUGFyc2VyOjpQ
YXJzZVBwc0lkcyhjb25zdCB1aW50OF90KiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf
dCogc3BzX2lkKSB7CisgIFJUQ19EQ0hFQ0socHBzX2lkKTsKKyAgUlRDX0RDSEVDSyhzcHNfaWQp
OworICAvLyBGaXJzdCwgcGFyc2Ugb3V0IHJic3AsIHdoaWNoIGlzIGJhc2ljYWxseSB0aGUgc291
cmNlIGJ1ZmZlciBtaW51cyBlbXVsYXRpb24KKyAgLy8gYnl0ZXMgKHRoZSBsYXN0IGJ5dGUgb2Yg
YSAweDAwIDB4MDAgMHgwMyBzZXF1ZW5jZSkuIFJCU1AgaXMgZGVmaW5lZCBpbgorICAvLyBzZWN0
aW9uIDcuMy4xIG9mIHRoZSBILjI2NSBzdGFuZGFyZC4KKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4g
dW5wYWNrZWRfYnVmZmVyID0gSDI2NDo6UGFyc2VSYnNwKGRhdGEsIGxlbmd0aCk7CisgIHJ0Yzo6
Qml0QnVmZmVyIGJpdF9idWZmZXIodW5wYWNrZWRfYnVmZmVyLmRhdGEoKSwgdW5wYWNrZWRfYnVm
ZmVyLnNpemUoKSk7CisgIHJldHVybiBQYXJzZVBwc0lkc0ludGVybmFsKCZiaXRfYnVmZmVyLCBw
cHNfaWQsIHNwc19pZCk7Cit9CisKK2Fic2w6Om9wdGlvbmFsPHVpbnQzMl90PiBIMjY1UHBzUGFy
c2VyOjpQYXJzZVBwc0lkRnJvbVNsaWNlU2VnbWVudExheWVyUmJzcCgKKyAgICBjb25zdCB1aW50
OF90KiBkYXRhLAorICAgIHNpemVfdCBsZW5ndGgsCisgICAgdWludDhfdCBuYWx1X3R5cGUpIHsK
KyAgcnRjOjpCaXRCdWZmZXIgc2xpY2VfcmVhZGVyKGRhdGEsIGxlbmd0aCk7CisKKyAgLy8gZmly
c3Rfc2xpY2Vfc2VnbWVudF9pbl9waWNfZmxhZzogdSgxKQorICB1aW50MzJfdCBmaXJzdF9zbGlj
ZV9zZWdtZW50X2luX3BpY19mbGFnID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAg
ICBzbGljZV9yZWFkZXIuUmVhZEJpdHMoJmZpcnN0X3NsaWNlX3NlZ21lbnRfaW5fcGljX2ZsYWcs
IDEpKTsKKworICBpZiAobmFsdV90eXBlID49IEgyNjU6Ok5hbHVUeXBlOjprQmxhV0xwICYmCisg
ICAgICBuYWx1X3R5cGUgPD0gSDI2NTo6TmFsdVR5cGU6OmtSc3ZJcmFwVmNsMjMpIHsKKyAgICAv
LyBub19vdXRwdXRfb2ZfcHJpb3JfcGljc19mbGFnOiB1KDEpCisgICAgUkVUVVJOX0VNUFRZX09O
X0ZBSUwoc2xpY2VfcmVhZGVyLkNvbnN1bWVCaXRzKDEpKTsKKyAgfQorCisgIC8vIHNsaWNlX3Bp
Y19wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICB1aW50MzJfdCBzbGljZV9waWNfcGFyYW1ldGVy
X3NldF9pZCA9IDA7CisgIGlmICghc2xpY2VfcmVhZGVyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigm
c2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQpKQorICAgIHJldHVybiBhYnNsOjpudWxsb3B0Owor
CisgIHJldHVybiBzbGljZV9waWNfcGFyYW1ldGVyX3NldF9pZDsKK30KKworYWJzbDo6b3B0aW9u
YWw8SDI2NVBwc1BhcnNlcjo6UHBzU3RhdGU+IEgyNjVQcHNQYXJzZXI6OlBhcnNlSW50ZXJuYWwo
CisgICAgcnRjOjpCaXRCdWZmZXIqIGJpdF9idWZmZXIpIHsKKyAgUHBzU3RhdGUgcHBzOworCisg
IFJFVFVSTl9FTVBUWV9PTl9GQUlMKFBhcnNlUHBzSWRzSW50ZXJuYWwoYml0X2J1ZmZlciwgJnBw
cy5pZCwgJnBwcy5zcHNfaWQpKTsKKworICB1aW50MzJfdCBiaXRzX3RtcDsKKyAgdWludDMyX3Qg
Z29sb21iX2lnbm9yZWQ7CisgIC8vIGVudHJvcHlfY29kaW5nX21vZGVfZmxhZzogdSgxKQorICB1
aW50MzJfdCBlbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWc7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlM
KGJpdF9idWZmZXItPlJlYWRCaXRzKCZlbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWcsIDEpKTsKKyAg
cHBzLmVudHJvcHlfY29kaW5nX21vZGVfZmxhZyA9IGVudHJvcHlfY29kaW5nX21vZGVfZmxhZyAh
PSAwOworICAvLyBib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZzog
dSgxKQorICB1aW50MzJfdCBib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRf
ZmxhZzsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVmZmVyLT5SZWFkQml0
cygmYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVzZW50X2ZsYWcsIDEpKTsKKyAg
cHBzLmJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnID0KKyAgICAg
IGJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnICE9IDA7CisKKyAg
Ly8gbnVtX3NsaWNlX2dyb3Vwc19taW51czE6IHVlKHYpCisgIHVpbnQzMl90IG51bV9zbGljZV9n
cm91cHNfbWludXMxOworICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgIGJpdF9idWZmZXIt
PlJlYWRFeHBvbmVudGlhbEdvbG9tYigmbnVtX3NsaWNlX2dyb3Vwc19taW51czEpKTsKKyAgaWYg
KG51bV9zbGljZV9ncm91cHNfbWludXMxID4gMCkgeworICAgIHVpbnQzMl90IHNsaWNlX2dyb3Vw
X21hcF90eXBlOworICAgIC8vIHNsaWNlX2dyb3VwX21hcF90eXBlOiB1ZSh2KQorICAgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKAorICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xv
bWIoJnNsaWNlX2dyb3VwX21hcF90eXBlKSk7CisgICAgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBl
ID09IDApIHsKKyAgICAgIGZvciAodWludDMyX3QgaV9ncm91cCA9IDA7IGlfZ3JvdXAgPD0gbnVt
X3NsaWNlX2dyb3Vwc19taW51czE7CisgICAgICAgICAgICsraV9ncm91cCkgeworICAgICAgICAv
LyBydW5fbGVuZ3RoX21pbnVzMVtpR3JvdXBdOiB1ZSh2KQorICAgICAgICBSRVRVUk5fRU1QVFlf
T05fRkFJTCgKKyAgICAgICAgICAgIGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigm
Z29sb21iX2lnbm9yZWQpKTsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21h
cF90eXBlID09IDEpIHsKKyAgICAgIC8vIFRPRE8oc3ByYW5nKTogSW1wbGVtZW50IHN1cHBvcnQg
Zm9yIGRpc3BlcnNlZCBzbGljZSBncm91cCBtYXAgdHlwZS4KKyAgICAgIC8vIFNlZSA4LjIuMi4y
IFNwZWNpZmljYXRpb24gZm9yIGRpc3BlcnNlZCBzbGljZSBncm91cCBtYXAgdHlwZS4KKyAgICB9
IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBlID09IDIpIHsKKyAgICAgIGZvciAodWludDMy
X3QgaV9ncm91cCA9IDA7IGlfZ3JvdXAgPD0gbnVtX3NsaWNlX2dyb3Vwc19taW51czE7CisgICAg
ICAgICAgICsraV9ncm91cCkgeworICAgICAgICAvLyB0b3BfbGVmdFtpR3JvdXBdOiB1ZSh2KQor
ICAgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgICAgIGJpdF9idWZmZXItPlJl
YWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgICAgICAgLy8gYm90dG9t
X3JpZ2h0W2lHcm91cF06IHVlKHYpCisgICAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAg
ICAgICAgICAgYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3Jl
ZCkpOworICAgICAgfQorICAgIH0gZWxzZSBpZiAoc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0gMyB8
fCBzbGljZV9ncm91cF9tYXBfdHlwZSA9PSA0IHx8CisgICAgICAgICAgICAgICBzbGljZV9ncm91
cF9tYXBfdHlwZSA9PSA1KSB7CisgICAgICAvLyBzbGljZV9ncm91cF9jaGFuZ2VfZGlyZWN0aW9u
X2ZsYWc6IHUoMSkKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRC
aXRzKCZiaXRzX3RtcCwgMSkpOworICAgICAgLy8gc2xpY2VfZ3JvdXBfY2hhbmdlX3JhdGVfbWlu
dXMxOiB1ZSh2KQorICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4
cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAgIH0gZWxzZSBpZiAoc2xpY2Vf
Z3JvdXBfbWFwX3R5cGUgPT0gNikgeworICAgICAgLy8gcGljX3NpemVfaW5fbWFwX3VuaXRzX21p
bnVzMTogdWUodikKKyAgICAgIHVpbnQzMl90IHBpY19zaXplX2luX21hcF91bml0c19taW51czE7
CisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFk
RXhwb25lbnRpYWxHb2xvbWIoJnBpY19zaXplX2luX21hcF91bml0c19taW51czEpKTsKKyAgICAg
IHVpbnQzMl90IHNsaWNlX2dyb3VwX2lkX2JpdHMgPSAwOworICAgICAgdWludDMyX3QgbnVtX3Ns
aWNlX2dyb3VwcyA9IG51bV9zbGljZV9ncm91cHNfbWludXMxICsgMTsKKyAgICAgIC8vIElmIG51
bV9zbGljZV9ncm91cHMgaXMgbm90IGEgcG93ZXIgb2YgdHdvIGFuIGFkZGl0aW9uYWwgYml0IGlz
IHJlcXVpcmVkCisgICAgICAvLyB0byBhY2NvdW50IGZvciB0aGUgY2VpbCgpIG9mIGxvZzIoKSBi
ZWxvdy4KKyAgICAgIGlmICgobnVtX3NsaWNlX2dyb3VwcyAmIChudW1fc2xpY2VfZ3JvdXBzIC0g
MSkpICE9IDApCisgICAgICAgICsrc2xpY2VfZ3JvdXBfaWRfYml0czsKKyAgICAgIHdoaWxlIChu
dW1fc2xpY2VfZ3JvdXBzID4gMCkgeworICAgICAgICBudW1fc2xpY2VfZ3JvdXBzID4+PSAxOwor
ICAgICAgICArK3NsaWNlX2dyb3VwX2lkX2JpdHM7CisgICAgICB9CisgICAgICBmb3IgKHVpbnQz
Ml90IGkgPSAwOyBpIDw9IHBpY19zaXplX2luX21hcF91bml0c19taW51czE7IGkrKykgeworICAg
ICAgICAvLyBzbGljZV9ncm91cF9pZFtpXTogdSh2KQorICAgICAgICAvLyBSZXByZXNlbnRlZCBi
eSBjZWlsKGxvZzIobnVtX3NsaWNlX2dyb3Vwc19taW51czEgKyAxKSkgYml0cy4KKyAgICAgICAg
UkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFkQml0cygm
Yml0c190bXAsIHNsaWNlX2dyb3VwX2lkX2JpdHMpKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAg
Ly8gbnVtX3JlZl9pZHhfbDBfZGVmYXVsdF9hY3RpdmVfbWludXMxOiB1ZSh2KQorICBSRVRVUk5f
RU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9p
Z25vcmVkKSk7CisgIC8vIG51bV9yZWZfaWR4X2wxX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogdWUo
dikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29s
b21iKCZnb2xvbWJfaWdub3JlZCkpOworICAvLyB3ZWlnaHRlZF9wcmVkX2ZsYWc6IHUoMSkKKyAg
dWludDMyX3Qgd2VpZ2h0ZWRfcHJlZF9mbGFnOworICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRf
YnVmZmVyLT5SZWFkQml0cygmd2VpZ2h0ZWRfcHJlZF9mbGFnLCAxKSk7CisgIHBwcy53ZWlnaHRl
ZF9wcmVkX2ZsYWcgPSB3ZWlnaHRlZF9wcmVkX2ZsYWcgIT0gMDsKKyAgLy8gd2VpZ2h0ZWRfYmlw
cmVkX2lkYzogdSgyKQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0
cygmcHBzLndlaWdodGVkX2JpcHJlZF9pZGMsIDIpKTsKKworICAvLyBwaWNfaW5pdF9xcF9taW51
czI2OiBzZSh2KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgIGJpdF9idWZmZXItPlJl
YWRTaWduZWRFeHBvbmVudGlhbEdvbG9tYigmcHBzLnBpY19pbml0X3FwX21pbnVzMjYpKTsKKyAg
Ly8gU2FuaXR5LWNoZWNrIHBhcnNlZCB2YWx1ZQorICBpZiAocHBzLnBpY19pbml0X3FwX21pbnVz
MjYgPiBrTWF4UGljSW5pdFFwRGVsdGFWYWx1ZSB8fAorICAgICAgcHBzLnBpY19pbml0X3FwX21p
bnVzMjYgPCBrTWluUGljSW5pdFFwRGVsdGFWYWx1ZSkgeworICAgIFJFVFVSTl9FTVBUWV9PTl9G
QUlMKGZhbHNlKTsKKyAgfQorICAvLyBwaWNfaW5pdF9xc19taW51czI2OiBzZSh2KQorICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9t
Yl9pZ25vcmVkKSk7CisgIC8vIGNocm9tYV9xcF9pbmRleF9vZmZzZXQ6IHNlKHYpCisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21i
X2lnbm9yZWQpKTsKKyAgLy8gZGVibG9ja2luZ19maWx0ZXJfY29udHJvbF9wcmVzZW50X2ZsYWc6
IHUoMSkKKyAgLy8gY29uc3RyYWluZWRfaW50cmFfcHJlZF9mbGFnOiB1KDEpCisgIFJFVFVSTl9F
TVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRCaXRzKCZiaXRzX3RtcCwgMikpOworICAvLyBy
ZWR1bmRhbnRfcGljX2NudF9wcmVzZW50X2ZsYWc6IHUoMSkKKyAgUkVUVVJOX0VNUFRZX09OX0ZB
SUwoCisgICAgICBiaXRfYnVmZmVyLT5SZWFkQml0cygmcHBzLnJlZHVuZGFudF9waWNfY250X3By
ZXNlbnRfZmxhZywgMSkpOworCisgIHJldHVybiBwcHM7Cit9CisKK2Jvb2wgSDI2NVBwc1BhcnNl
cjo6UGFyc2VQcHNJZHNJbnRlcm5hbChydGM6OkJpdEJ1ZmZlciogYml0X2J1ZmZlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBzcHNfaWQpIHsK
KyAgLy8gcGljX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIGlmICghYml0X2J1ZmZlci0+UmVh
ZEV4cG9uZW50aWFsR29sb21iKHBwc19pZCkpCisgICAgcmV0dXJuIGZhbHNlOworICAvLyBzZXFf
cGFyYW1ldGVyX3NldF9pZDogdWUodikKKyAgaWYgKCFiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRp
YWxHb2xvbWIoc3BzX2lkKSkKKyAgICByZXR1cm4gZmFsc2U7CisgIHJldHVybiB0cnVlOworfQor
Cit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRl
by9oMjY1L2gyNjVfcHBzX3BhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmYTQ3MTg4M2RjYWVhZjVhNTM0
YWMzMTM5YTM2OTA3ZjMwNGZlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJz
ZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2Vi
UlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICog
IHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhl
IHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJp
Z2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNv
bnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhP
UlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2lmbmRlZiBD
T01NT05fVklERU9fSDI2NV9QUFNfUEFSU0VSX0hfCisjZGVmaW5lIENPTU1PTl9WSURFT19IMjY1
X1BQU19QQVJTRVJfSF8KKworI2luY2x1ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKKworbmFt
ZXNwYWNlIHJ0YyB7CitjbGFzcyBCaXRCdWZmZXI7Cit9CisKK25hbWVzcGFjZSB3ZWJydGMgewor
CisvLyBBIGNsYXNzIGZvciBwYXJzaW5nIG91dCBwaWN0dXJlIHBhcmFtZXRlciBzZXQgKFBQUykg
ZGF0YSBmcm9tIGEgSDI2NSBOQUxVLgorY2xhc3MgSDI2NVBwc1BhcnNlciB7CisgcHVibGljOgor
ICAvLyBUaGUgcGFyc2VkIHN0YXRlIG9mIHRoZSBQUFMuIE9ubHkgc29tZSBzZWxlY3QgdmFsdWVz
IGFyZSBzdG9yZWQuCisgIC8vIEFkZCBtb3JlIGFzIHRoZXkgYXJlIGFjdHVhbGx5IG5lZWRlZC4K
KyAgc3RydWN0IFBwc1N0YXRlIHsKKyAgICBQcHNTdGF0ZSgpID0gZGVmYXVsdDsKKworICAgIGJv
b2wgYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVzZW50X2ZsYWcgPSBmYWxzZTsK
KyAgICBib29sIHdlaWdodGVkX3ByZWRfZmxhZyA9IGZhbHNlOworICAgIGJvb2wgZW50cm9weV9j
b2RpbmdfbW9kZV9mbGFnID0gZmFsc2U7CisgICAgdWludDMyX3Qgd2VpZ2h0ZWRfYmlwcmVkX2lk
YyA9IGZhbHNlOworICAgIHVpbnQzMl90IHJlZHVuZGFudF9waWNfY250X3ByZXNlbnRfZmxhZyA9
IDA7CisgICAgaW50IHBpY19pbml0X3FwX21pbnVzMjYgPSAwOworICAgIHVpbnQzMl90IGlkID0g
MDsKKyAgICB1aW50MzJfdCBzcHNfaWQgPSAwOworICB9OworCisgIC8vIFVucGFjayBSQlNQIGFu
ZCBwYXJzZSBQUFMgc3RhdGUgZnJvbSB0aGUgc3VwcGxpZWQgYnVmZmVyLgorICBzdGF0aWMgYWJz
bDo6b3B0aW9uYWw8UHBzU3RhdGU+IFBhcnNlUHBzKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVf
dCBsZW5ndGgpOworCisgIHN0YXRpYyBib29sIFBhcnNlUHBzSWRzKGNvbnN0IHVpbnQ4X3QqIGRh
dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQzMl90KiBwcHNfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVpbnQzMl90KiBzcHNfaWQpOworCisgIHN0YXRpYyBhYnNsOjpvcHRpb25hbDx1aW50MzJf
dD4gUGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3AoCisgICAgICBjb25zdCB1aW50
OF90KiBkYXRhLAorICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgIHVpbnQ4X3QgbmFsdV90eXBl
KTsKKworIHByb3RlY3RlZDoKKyAgLy8gUGFyc2UgdGhlIFBQUyBzdGF0ZSwgZm9yIGEgYml0IGJ1
ZmZlciB3aGVyZSBSQlNQIGRlY29kaW5nIGhhcyBhbHJlYWR5IGJlZW4KKyAgLy8gcGVyZm9ybWVk
LgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8UHBzU3RhdGU+IFBhcnNlSW50ZXJuYWwocnRjOjpC
aXRCdWZmZXIqIGJpdF9idWZmZXIpOworICBzdGF0aWMgYm9vbCBQYXJzZVBwc0lkc0ludGVybmFs
KHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnQzMl90KiBwcHNfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdWludDMyX3QqIHNwc19pZCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisKKyNl
bmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfUFBTX1BBUlNFUl9IXwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9zcHNfcGFyc2VyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmNjCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0
MzNmNGIwZWU5MjBjMjMzZjFiNjE4MTUwZDJkM2Y4OGZlZDBlYzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8v
aDI2NS9oMjY1X3Nwc19wYXJzZXIuY2MKQEAgLTAsMCArMSwxOTIgQEAKKy8qCisgKiAgQ29weXJp
Z2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJT
RC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRl
bGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBm
aWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBi
ZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJl
ZS4KKyAqLworCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1
ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvYml0X2J1ZmZl
ci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKworbmFtZXNwYWNlIHsKK3R5cGVk
ZWYgYWJzbDo6b3B0aW9uYWw8d2VicnRjOjpIMjY1U3BzUGFyc2VyOjpTcHNTdGF0ZT4gT3B0aW9u
YWxTcHM7CisKKyNkZWZpbmUgUkVUVVJOX0VNUFRZX09OX0ZBSUwoeCkgXAorICBpZiAoISh4KSkg
eyAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIE9wdGlvbmFsU3BzKCk7ICAgICAgIFwK
KyAgfQorfSAgLy8gbmFtZXNwYWNlCisKK25hbWVzcGFjZSB3ZWJydGMgeworCitIMjY1U3BzUGFy
c2VyOjpTcHNTdGF0ZTo6U3BzU3RhdGUoKSA9IGRlZmF1bHQ7CisKKy8vIEdlbmVyYWwgbm90ZTog
dGhpcyBpcyBiYXNlZCBvZmYgdGhlIDAyLzIwMTggdmVyc2lvbiBvZiB0aGUgSC4yNjUgc3RhbmRh
cmQuCisvLyBZb3UgY2FuIGZpbmQgaXQgb24gdGhpcyBwYWdlOgorLy8gaHR0cDovL3d3dy5pdHUu
aW50L3JlYy9ULVJFQy1ILjI2NQorCisvLyBVbnBhY2sgUkJTUCBhbmQgcGFyc2UgU1BTIHN0YXRl
IGZyb20gdGhlIHN1cHBsaWVkIGJ1ZmZlci4KK2Fic2w6Om9wdGlvbmFsPEgyNjVTcHNQYXJzZXI6
OlNwc1N0YXRlPiBIMjY1U3BzUGFyc2VyOjpQYXJzZVNwcygKKyAgICBjb25zdCB1aW50OF90KiBk
YXRhLAorICAgIHNpemVfdCBsZW5ndGgpIHsKKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gdW5wYWNr
ZWRfYnVmZmVyID0gSDI2NTo6UGFyc2VSYnNwKGRhdGEsIGxlbmd0aCk7CisgIHJ0Yzo6Qml0QnVm
ZmVyIGJpdF9idWZmZXIodW5wYWNrZWRfYnVmZmVyLmRhdGEoKSwgdW5wYWNrZWRfYnVmZmVyLnNp
emUoKSk7CisgIHJldHVybiBQYXJzZVNwc1VwVG9WdWkoJmJpdF9idWZmZXIpOworfQorCithYnNs
OjpvcHRpb25hbDxIMjY1U3BzUGFyc2VyOjpTcHNTdGF0ZT4gSDI2NVNwc1BhcnNlcjo6UGFyc2VT
cHNVcFRvVnVpKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBidWZmZXIpIHsKKyAgLy8gTm93LCB3ZSBu
ZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhyb3VnaCB0aGUgYWN0dWFsIEhFVkMg
U1BTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIuMi4xICgiR2VuZXJhbCBzZXF1ZW5j
ZSBwYXJhbWV0ZXIgc2V0IGRhdGEKKyAgLy8gc3ludGF4Iikgb2YgdGhlIEguMjY1IHN0YW5kYXJk
IGZvciBhIGNvbXBsZXRlIGRlc2NyaXB0aW9uLgorICAvLyBTaW5jZSB3ZSBvbmx5IGNhcmUgYWJv
dXQgcmVzb2x1dGlvbiwgd2UgaWdub3JlIHRoZSBtYWpvcml0eSBvZiBmaWVsZHMsIGJ1dAorICAv
LyB3ZSBzdGlsbCBoYXZlIHRvIGFjdGl2ZWx5IHBhcnNlIHRocm91Z2ggYSBsb3Qgb2YgdGhlIGRh
dGEsIHNpbmNlIG1hbnkgb2YKKyAgLy8gdGhlIGZpZWxkcyBoYXZlIHZhcmlhYmxlIHNpemUuCisg
IC8vIFdlJ3JlIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluOgorICAvLyBjaHJvbWFfZm9ybWF0
X2lkYyAtPiBhZmZlY3RzIGNyb3AgdW5pdHMKKyAgLy8gcGljX3t3aWR0aCxoZWlnaHR9XyogLT4g
cmVzb2x1dGlvbiBvZiB0aGUgZnJhbWUgaW4gbWFjcm9ibG9ja3MgKDE2eDE2KS4KKyAgLy8gZnJh
bWVfY3JvcF8qX29mZnNldCAtPiBjcm9wIGluZm9ybWF0aW9uCisKKyAgU3BzU3RhdGUgc3BzOwor
CisgIC8vIFRoZSBnb2xvbWIgdmFsdWVzIHdlIGhhdmUgdG8gcmVhZCwgbm90IGp1c3QgY29uc3Vt
ZS4KKyAgdWludDMyX3QgZ29sb21iX2lnbm9yZWQ7CisKKyAgLy8gc2VwYXJhdGVfY29sb3VyX3Bs
YW5lX2ZsYWcgaXMgb3B0aW9uYWwgKGFzc3VtZWQgMCksIGJ1dCBoYXMgaW1wbGljYXRpb25zCisg
IC8vIGFib3V0IHRoZSBDaHJvbWFBcnJheVR5cGUsIHdoaWNoIG1vZGlmaWVzIGhvdyB3ZSB0cmVh
dCBjcm9wIGNvb3JkaW5hdGVzLgorICB1aW50MzJfdCBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxh
ZyA9IDA7CisKKyAgLy8gY2hyb21hX2Zvcm1hdF9pZGMgd2lsbCBiZSBDaHJvbWFBcnJheVR5cGUg
aWYgc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgaXMKKyAgLy8gMC4gSXQgZGVmYXVsdHMgdG8g
MSwgd2hlbiBub3Qgc3BlY2lmaWVkLgorICB1aW50MzJfdCBjaHJvbWFfZm9ybWF0X2lkYyA9IDE7
CisKKyAgLy8gc3BzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQ6IHUoNCkKKyAgdWludDMyX3Qgc3Bz
X3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQgPSAwOworICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZm
ZXItPlJlYWRCaXRzKCZzcHNfdmlkZW9fcGFyYW1ldGVyX3NldF9pZCwgNCkpOworICAvLyBzcHNf
bWF4X3N1Yl9sYXllcnNfbWludXMxOiB1KDMpCisgIHVpbnQzMl90IHNwc19tYXhfc3ViX2xheWVy
c19taW51czEgPSAwOworICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZz
cHNfbWF4X3N1Yl9sYXllcnNfbWludXMxLCAzKSk7CisgIC8vIHNwc190ZW1wb3JhbF9pZF9uZXN0
aW5nX2ZsYWc6IHUoMSkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0
cygxKSk7CisgIC8vIHByb2ZpbGVfdGllcl9sZXZlbCgxLCBzcHNfbWF4X3N1Yl9sYXllcnNfbWlu
dXMxKS4gV2UgYXJlIGFjdXRhbGx5IG5vdAorICAvLyB1c2luZyB0aGVtLCBzbyByZWFkL3NraXAg
b3ZlciBpdC4KKyAgLy8gZ2VuZXJhbF9wcm9maWxlX3NwYWNlK2dlbmVyYWxfdGllcl9mbGFnK2dl
bmVyYWxfcHJmaWxlX2lkYzogdSg4KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNv
bnN1bWVCeXRlcygxKSk7CisgIC8vIGdlbmVyYWxfcHJvZmlsZV9jb21wYXRhYmlsaXRpeV9mbGFn
WzMyXQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRlcyg0KSk7Cisg
IC8vIGdlbmVyYWxfcHJvZ3Jlc3NpdmVfc291cmNlX2ZsYWcgKyBpbnRlcmxhY2VkX3NvdXJjZV9m
bGFnKworICAvLyBub24tcGFja2VkX2NvbnN0cmFpbnQgZmxhZyArIGZyYW1lX29ubHlfY29uc3Ry
YWludF9mbGFnOiB1KDQpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJp
dHMoNCkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVfaWRjIGRlY2lkZWQgZmxhZ3Mgb3IgcmVzZXJ2
ZWQuICB1KDQzKQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQz
KSk7CisgIC8vIGdlbmVyYWxfaW5ibGRfZmxhZyBvciByZXNlcnZlZCAwOiB1KDEpCisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJpdHMoMSkpOworICAvLyBnZW5lcmFsX2xl
dmVsX2lkYzogdSg4KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRl
cygxKSk7CisgIC8vIGlmIG1heF9zdWJfbGF5ZXJzX21pbnVzMSA+PTEsIHJlYWQgdGhlIHN1Ymxh
eWVyIHByb2ZpbGUgaW5mb3JtYXRpb24KKyAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHN1Yl9sYXll
cl9wcm9maWxlX3ByZXNlbnRfZmxhZ3M7CisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJfbGF5
ZXJfbGV2ZWxfcHJlc2VudF9mbGFnczsKKyAgdWludDMyX3Qgc3ViX2xheWVyX3Byb2ZpbGVfcHJl
c2VudCA9IDA7CisgIHVpbnQzMl90IHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50ID0gMDsKKyAgZm9y
ICh1aW50MzJfdCBpID0gMDsgaSA8IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGkrKykgewor
ICAgIC8vIHN1YmxheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnIGFuZCBzdWJsYXllcl9sZXZlbF9w
cmVzbmV0X2ZsYWc6ICB1KDIpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFk
Qml0cygmc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudCwgMSkpOworICAgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKGJ1ZmZlci0+UmVhZEJpdHMoJnN1Yl9sYXllcl9sZXZlbF9wcmVzZW50LCAxKSk7Cisg
ICAgc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFncy5wdXNoX2JhY2soc3ViX2xheWVyX3By
b2ZpbGVfcHJlc2VudCk7CisgICAgc3ViX2xheWVyX2xldmVsX3ByZXNlbnRfZmxhZ3MucHVzaF9i
YWNrKHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50KTsKKyAgfQorICBpZiAoc3BzX21heF9zdWJfbGF5
ZXJzX21pbnVzMSA+IDApIHsKKyAgICBmb3IgKHVpbnQzMl90IGogPSBzcHNfbWF4X3N1Yl9sYXll
cnNfbWludXMxOyBqIDwgODsgaisrKSB7CisgICAgICAvLyByZXNlcnZlZCAyIGJpdHM6IHUoMikK
KyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJpdHMoMikpOworICAg
IH0KKyAgfQorICBmb3IgKHVpbnQzMl90IGsgPSAwOyBrIDwgc3BzX21heF9zdWJfbGF5ZXJzX21p
bnVzMTsgaysrKSB7CisgICAgaWYgKHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3Nba10p
IHsgIC8vCisgICAgICAvLyBzdWJfbGF5ZXIgcHJvZmlsZV9zcGFjZS90aWVyX2ZsYWcvcHJvZmls
ZV9pZGMuIGlnbm9yZWQuIHUoOCkKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+
Q29uc3VtZUJ5dGVzKDEpKTsKKyAgICAgIC8vIHByb2ZpbGVfY29tcGF0YWJpbGl0eV9mbGFnOiAg
dSgzMikKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJ5dGVzKDQp
KTsKKyAgICAgIC8vIHN1Yl9sYXllciBwcm9ncmVzc2l2ZV9zb3VyY2VfZmxhZy9pbnRlcmxhY2Vk
X3NvdXJjZV9mbGFnLworICAgICAgLy8gbm9uX3BhY2tlZF9jb25zdHJhaW50X2ZsYWcvZnJhbWVf
b25seV9jb25zdHJhaW50X2ZsYWc6IHUoNCkKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1
ZmZlci0+Q29uc3VtZUJpdHMoNCkpOworICAgICAgLy8gZm9sbG93aW5nIDQzLWJpdHMgYXJlIHBy
b2ZpbGVfaWRjIHNwZWNpZmljLiBXZSBzaW1wbHkgcmVhZC9za2lwIGl0LgorICAgICAgLy8gdSg0
MykKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJpdHMoNDMpKTsK
KyAgICAgIC8vIDEtYml0IHByb2ZpbGVfaWRjIHNwZWNpZmljIGluYmxkIGZsYWcuICBXZSBzaW1w
bHkgcmVhZC9za2lwIGl0LiB1KDEpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXIt
PkNvbnN1bWVCaXRzKDEpKTsKKyAgICB9CisgICAgaWYgKHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50
X2ZsYWdzW2tdKSB7CisgICAgICAvLyBzdWJfbGF5ZXJfbGV2ZWxfaWRjOiB1KDgpCisgICAgICBS
RVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRlcygxKSk7CisgICAgfQorICB9
CisgIC8vIHNwc19zZXFfcGFyYW1ldGVyX3NldF9pZDogdWUodikKKyAgUkVUVVJOX0VNUFRZX09O
X0ZBSUwoYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7Cisg
IC8vIGNocm9tZV9mb3JtYXRfaWRjOiB1ZSh2KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZm
ZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY2hyb21hX2Zvcm1hdF9pZGMpKTsKKyAgaWYgKGNo
cm9tYV9mb3JtYXRfaWRjID09IDMpIHsKKyAgICAvLyBzZXBlcmF0ZV9jb2xvdXJfcGxhbmVfZmxh
ZzogdSgxKQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEJpdHMoJnNlcGFy
YXRlX2NvbG91cl9wbGFuZV9mbGFnLCAxKSk7CisgIH0KKyAgdWludDMyX3QgcGljX3dpZHRoX2lu
X2x1bWFfc2FtcGxlcyA9IDA7CisgIHVpbnQzMl90IHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVz
ID0gMDsKKyAgLy8gcGljX3dpZHRoX2luX2x1bWFfc2FtcGxlczogdWUodikKKyAgUkVUVVJOX0VN
UFRZX09OX0ZBSUwoCisgICAgICBidWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmcGljX3dp
ZHRoX2luX2x1bWFfc2FtcGxlcykpOworICAvLyBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczog
dWUodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBidWZmZXItPlJlYWRFeHBvbmVu
dGlhbEdvbG9tYigmcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXMpKTsKKyAgLy8gY29uZm9ybWFu
Y2Vfd2luZG93X2ZsYWc6IHUoMSkKKyAgdWludDMyX3QgY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcg
PSAwOworICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZjb25mb3JtYW5j
ZV93aW5kb3dfZmxhZywgMSkpOworCisgIHVpbnQzMl90IGNvbmZfd2luX2xlZnRfb2Zmc2V0ID0g
MDsKKyAgdWludDMyX3QgY29uZl93aW5fcmlnaHRfb2Zmc2V0ID0gMDsKKyAgdWludDMyX3QgY29u
Zl93aW5fdG9wX29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX2JvdHRvbV9vZmZzZXQg
PSAwOworICBpZiAoY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcpIHsKKyAgICAvLyBjb25mX3dpbl9s
ZWZ0X29mZnNldDogdWUodikKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRF
eHBvbmVudGlhbEdvbG9tYigmY29uZl93aW5fbGVmdF9vZmZzZXQpKTsKKyAgICAvLyBjb25mX3dp
bl9yaWdodF9vZmZzZXQ6IHVlKHYpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5S
ZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX3JpZ2h0X29mZnNldCkpOworICAgIC8vIGNv
bmZfd2luX3RvcF9vZmZzZXQ6IHVlKHYpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVy
LT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX3RvcF9vZmZzZXQpKTsKKyAgICAvLyBj
b25mX3dpbl9ib3R0b21fb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAor
ICAgICAgICBidWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY29uZl93aW5fYm90dG9tX29m
ZnNldCkpOworICB9CisKKyAgLy8gRmFyIGVub3VnaCEgV2UgZG9uJ3QgdXNlIHRoZSByZXN0IG9m
IHRoZSBTUFMuCisKKyAgc3BzLnZwc19pZCA9IHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOwor
CisgIC8vIFN0YXJ0IHdpdGggdGhlIHJlc29sdXRpb24gZGV0ZXJtaW5lZCBieSB0aGUgcGljX3dp
ZHRoL3BpY19oZWlnaHQgZmllbGRzLgorICBzcHMud2lkdGggPSBwaWNfd2lkdGhfaW5fbHVtYV9z
YW1wbGVzOworICBzcHMuaGVpZ2h0ID0gcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXM7CisKKyAg
aWYgKGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAgaW50IHN1Yl93aWR0aF9jID0gKCgx
ID09IGNocm9tYV9mb3JtYXRfaWRjKSB8fCAoMiA9PSBjaHJvbWFfZm9ybWF0X2lkYykpICYmCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVf
ZmxhZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgPyAyCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIDogMTsKKyAgICBpbnQgc3ViX2hlaWdodF9jID0KKyAgICAgICAgKDEgPT0gY2hyb21h
X2Zvcm1hdF9pZGMpICYmICgwID09IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnKSA/IDIgOiAx
OworICAgIC8vIHRoZSBvZmZzZXQgaW5jbHVkZXMgdGhlIHBpeGVsIHdpdGhpbiBjb25mb3JtYW5j
ZSB3aW5kb3cuIHNvIGRvbid0IG5lZWQgdG8KKyAgICAvLyArMSBhcyBwZXIgc3BlYworICAgIHNw
cy53aWR0aCAtPSBzdWJfd2lkdGhfYyAqIChjb25mX3dpbl9yaWdodF9vZmZzZXQgKyBjb25mX3dp
bl9sZWZ0X29mZnNldCk7CisgICAgc3BzLmhlaWdodCAtPSBzdWJfaGVpZ2h0X2MgKiAoY29uZl93
aW5fdG9wX29mZnNldCArIGNvbmZfd2luX2JvdHRvbV9vZmZzZXQpOworICB9CisKKyAgcmV0dXJu
IE9wdGlvbmFsU3BzKHNwcyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRl
by9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTBmODZiNjk4MzI2MzFiZTcyNTY5YjlhZTIwYmMyYzYwYjgwOTI1ZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92
aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiAgQ29w
eXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
IEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBp
bnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRo
ZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAq
ICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2Ug
dHJlZS4KKyAqLworCisjaWZuZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfU1BTX1BBUlNFUl9I
XworI2RlZmluZSBDT01NT05fVklERU9fSDI2NV9IMjY1X1NQU19QQVJTRVJfSF8KKworI2luY2x1
ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKKworbmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBCaXRC
dWZmZXI7Cit9CisKK25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBBIGNsYXNzIGZvciBwYXJzaW5n
IG91dCBzZXF1ZW5jZSBwYXJhbWV0ZXIgc2V0IChTUFMpIGRhdGEgZnJvbSBhbiBIMjY1IE5BTFUu
CitjbGFzcyBIMjY1U3BzUGFyc2VyIHsKKyBwdWJsaWM6CisgIC8vIFRoZSBwYXJzZWQgc3RhdGUg
b2YgdGhlIFNQUy4gT25seSBzb21lIHNlbGVjdCB2YWx1ZXMgYXJlIHN0b3JlZC4KKyAgLy8gQWRk
IG1vcmUgYXMgdGhleSBhcmUgYWN0dWFsbHkgbmVlZGVkLgorICBzdHJ1Y3QgU3BzU3RhdGUgewor
ICAgIFNwc1N0YXRlKCk7CisKKyAgICB1aW50MzJfdCB3aWR0aCA9IDA7CisgICAgdWludDMyX3Qg
aGVpZ2h0ID0gMDsKKyAgICB1aW50MzJfdCBkZWx0YV9waWNfb3JkZXJfYWx3YXlzX3plcm9fZmxh
ZyA9IDA7CisgICAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgPSAwOworICAg
IHVpbnQzMl90IGZyYW1lX21ic19vbmx5X2ZsYWcgPSAwOworICAgIHVpbnQzMl90IGxvZzJfbWF4
X2ZyYW1lX251bV9taW51czQgPSAwOworICAgIHVpbnQzMl90IGxvZzJfbWF4X3BpY19vcmRlcl9j
bnRfbHNiX21pbnVzNCA9IDA7CisgICAgdWludDMyX3QgcGljX29yZGVyX2NudF90eXBlID0gMDsK
KyAgICB1aW50MzJfdCBtYXhfbnVtX3JlZl9mcmFtZXMgPSAwOworICAgIHVpbnQzMl90IHZ1aV9w
YXJhbXNfcHJlc2VudCA9IDA7CisgICAgdWludDMyX3QgaWQgPSAwOworICAgIHVpbnQzMl90IHZw
c19pZCA9IDA7CisgIH07CisKKyAgLy8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFNQUyBzdGF0ZSBm
cm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCisgIHN0YXRpYyBhYnNsOjpvcHRpb25hbDxTcHNTdGF0
ZT4gUGFyc2VTcHMoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGxlbmd0aCk7CisKKyBwcm90
ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBTUFMgc3RhdGUsIHVwIHRpbGwgdGhlIFZVSSBwYXJ0LCBm
b3IgYSBiaXQgYnVmZmVyIHdoZXJlIFJCU1AKKyAgLy8gZGVjb2RpbmcgaGFzIGFscmVhZHkgYmVl
biBwZXJmb3JtZWQuCisgIHN0YXRpYyBhYnNsOjpvcHRpb25hbDxTcHNTdGF0ZT4gUGFyc2VTcHNV
cFRvVnVpKHJ0Yzo6Qml0QnVmZmVyKiBidWZmZXIpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdl
YnJ0YworI2VuZGlmICAvLyBDT01NT05fVklERU9fSDI2NV9IMjY1X1NQU19QQVJTRVJfSF8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1v
bl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5jYwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yMzkxYWU1MWRmMGY5MDg5MDE2YjQ5ODg0YzE1ZjJjMTQxOGQ1NGU2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
Y29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsNjIgQEAKKy8q
CisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRk
aXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAor
ICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9y
cyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRo
ZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rv
cj4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisjaW5jbHVk
ZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmgiCisjaW5jbHVkZSAicnRjX2Jh
c2UvYml0X2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKworbmFtZXNw
YWNlIHsKK3R5cGVkZWYgYWJzbDo6b3B0aW9uYWw8d2VicnRjOjpIMjY1VnBzUGFyc2VyOjpWcHNT
dGF0ZT4gT3B0aW9uYWxWcHM7CisKKyNkZWZpbmUgUkVUVVJOX0VNUFRZX09OX0ZBSUwoeCkgXAor
ICBpZiAoISh4KSkgeyAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIE9wdGlvbmFsVnBz
KCk7ICAgICAgIFwKKyAgfQorfSAgLy8gbmFtZXNwYWNlCisKK25hbWVzcGFjZSB3ZWJydGMgewor
CitIMjY1VnBzUGFyc2VyOjpWcHNTdGF0ZTo6VnBzU3RhdGUoKSA9IGRlZmF1bHQ7CisKKy8vIEdl
bmVyYWwgbm90ZTogdGhpcyBpcyBiYXNlZCBvZmYgdGhlIDAyLzIwMTggdmVyc2lvbiBvZiB0aGUg
SC4yNjUgc3RhbmRhcmQuCisvLyBZb3UgY2FuIGZpbmQgaXQgb24gdGhpcyBwYWdlOgorLy8gaHR0
cDovL3d3dy5pdHUuaW50L3JlYy9ULVJFQy1ILjI2NQorCisvLyBVbnBhY2sgUkJTUCBhbmQgcGFy
c2UgU1BTIHN0YXRlIGZyb20gdGhlIHN1cHBsaWVkIGJ1ZmZlci4KK2Fic2w6Om9wdGlvbmFsPEgy
NjVWcHNQYXJzZXI6OlZwc1N0YXRlPiBIMjY1VnBzUGFyc2VyOjpQYXJzZVZwcygKKyAgICBjb25z
dCB1aW50OF90KiBkYXRhLAorICAgIHNpemVfdCBsZW5ndGgpIHsKKyAgc3RkOjp2ZWN0b3I8dWlu
dDhfdD4gdW5wYWNrZWRfYnVmZmVyID0gSDI2NTo6UGFyc2VSYnNwKGRhdGEsIGxlbmd0aCk7Cisg
IHJ0Yzo6Qml0QnVmZmVyIGJpdF9idWZmZXIodW5wYWNrZWRfYnVmZmVyLmRhdGEoKSwgdW5wYWNr
ZWRfYnVmZmVyLnNpemUoKSk7CisgIHJldHVybiBQYXJzZUludGVybmFsKCZiaXRfYnVmZmVyKTsK
K30KKworYWJzbDo6b3B0aW9uYWw8SDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU+IEgyNjVWcHNQYXJz
ZXI6OlBhcnNlSW50ZXJuYWwoCisgICAgcnRjOjpCaXRCdWZmZXIqIGJ1ZmZlcikgeworICAvLyBO
b3csIHdlIG5lZWQgdG8gdXNlIGEgYml0IGJ1ZmZlciB0byBwYXJzZSB0aHJvdWdoIHRoZSBhY3R1
YWwgSEVWQyBWUFMKKyAgLy8gZm9ybWF0LiBTZWUgU2VjdGlvbiA3LjMuMi4xICgiVmlkZW8gcGFy
YW1ldGVyIHNldCBSQlNQIHN5bnRheCIpIG9mIHRoZQorICAvLyBILjI2NSBzdGFuZGFyZCBmb3Ig
YSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKworICBWcHNTdGF0ZSB2cHM7CisKKyAgLy8gdnBzX3Zp
ZGVvX3BhcmFtZXRlcl9zZXRfaWQ6IHUoNCkKKyAgdWludDMyX3QgdnBzX3ZpZGVvX3BhcmFtZXRl
cl9zZXRfaWQgPSAwOworICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZ2
cHNfdmlkZW9fcGFyYW1ldGVyX3NldF9pZCwgNCkpOworCisgIHZwcy5pZCA9IHZwc192aWRlb19w
YXJhbWV0ZXJfc2V0X2lkOworICB2cHMuaWQgPSAwOworICByZXR1cm4gT3B0aW9uYWxWcHModnBz
KTsKK30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNf
cGFyc2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21t
b25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGEyNzc1ZjQzZGYx
N2QxOGUwOWRjNDAwN2U2MjNhNjMyMDg1YTdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92
cHNfcGFyc2VyLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTgg
VGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vu
c2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290
IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9w
ZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4g
IEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRo
ZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNp
Zm5kZWYgQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9WUFNfUEFSU0VSX0hfCisjZGVmaW5lIENPTU1P
Tl9WSURFT19IMjY1X0gyNjVfVlBTX1BBUlNFUl9IXworCisjaW5jbHVkZSAiYWJzbC90eXBlcy9v
cHRpb25hbC5oIgorCituYW1lc3BhY2UgcnRjIHsKK2NsYXNzIEJpdEJ1ZmZlcjsKK30KKworbmFt
ZXNwYWNlIHdlYnJ0YyB7CisKKy8vIEEgY2xhc3MgZm9yIHBhcnNpbmcgb3V0IHNlcXVlbmNlIHBh
cmFtZXRlciBzZXQgKFZQUykgZGF0YSBmcm9tIGFuIEgyNjUgTkFMVS4KK2NsYXNzIEgyNjVWcHNQ
YXJzZXIgeworIHB1YmxpYzoKKyAgLy8gVGhlIHBhcnNlZCBzdGF0ZSBvZiB0aGUgVlBTLiBPbmx5
IHNvbWUgc2VsZWN0IHZhbHVlcyBhcmUgc3RvcmVkLgorICAvLyBBZGQgbW9yZSBhcyB0aGV5IGFy
ZSBhY3R1YWxseSBuZWVkZWQuCisgIHN0cnVjdCBWcHNTdGF0ZSB7CisgICAgVnBzU3RhdGUoKTsK
KworICAgIHVpbnQzMl90IGlkID0gMDsKKyAgfTsKKworICAvLyBVbnBhY2sgUkJTUCBhbmQgcGFy
c2UgVlBTIHN0YXRlIGZyb20gdGhlIHN1cHBsaWVkIGJ1ZmZlci4KKyAgc3RhdGljIGFic2w6Om9w
dGlvbmFsPFZwc1N0YXRlPiBQYXJzZVZwcyhjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVu
Z3RoKTsKKworIHByb3RlY3RlZDoKKyAgLy8gUGFyc2UgdGhlIFZQUyBzdGF0ZSwgZm9yIGEgYml0
IGJ1ZmZlciB3aGVyZSBSQlNQIGRlY29kaW5nIGhhcyBhbHJlYWR5IGJlZW4KKyAgLy8gcGVyZm9y
bWVkLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8VnBzU3RhdGU+IFBhcnNlSW50ZXJuYWwocnRj
OjpCaXRCdWZmZXIqIGJpdF9idWZmZXIpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0Ywor
I2VuZGlmICAvLyBDT01NT05fVklERU9fSDI2NV9IMjY1X1ZQU19QQVJTRVJfSF8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2Uv
bWVkaWFfY29uc3RhbnRzLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2MKaW5kZXggNWJkNGI3NTRkMjQ3MGVk
NDFhMDc3NDEzNWE0ZGMxMWNlNDEzOWUxMC4uYWU5MzE0OWMzMGVlM2RhM2ExYmY0ZmE1YTZhYjkx
NjBlMGQ0YTU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2MKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMu
Y2MKQEAgLTEwNiw2ICsxMDYsOSBAQCBjb25zdCBjaGFyIGtDb21mb3J0Tm9pc2VDb2RlY05hbWVb
XSA9ICJDTiI7CiBjb25zdCBjaGFyIGtWcDhDb2RlY05hbWVbXSA9ICJWUDgiOwogY29uc3QgY2hh
ciBrVnA5Q29kZWNOYW1lW10gPSAiVlA5IjsKIGNvbnN0IGNoYXIga0gyNjRDb2RlY05hbWVbXSA9
ICJIMjY0IjsKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citjb25zdCBjaGFyIGtIMjY1Q29kZWNOYW1l
W10gPSAiSDI2NSI7CisjZW5kaWYKIAogLy8gUkZDIDYxODQgUlRQIFBheWxvYWQgRm9ybWF0IGZv
ciBILjI2NCB2aWRlbwogY29uc3QgY2hhciBrSDI2NEZtdHBQcm9maWxlTGV2ZWxJZFtdID0gInBy
b2ZpbGUtbGV2ZWwtaWQiOwpAQCAtMTEzLDYgKzExNiwxMyBAQCBjb25zdCBjaGFyIGtIMjY0Rm10
cExldmVsQXN5bW1ldHJ5QWxsb3dlZFtdID0gImxldmVsLWFzeW1tZXRyeS1hbGxvd2VkIjsKIGNv
bnN0IGNoYXIga0gyNjRGbXRwUGFja2V0aXphdGlvbk1vZGVbXSA9ICJwYWNrZXRpemF0aW9uLW1v
ZGUiOwogY29uc3QgY2hhciBrSDI2NEZtdHBTcHJvcFBhcmFtZXRlclNldHNbXSA9ICJzcHJvcC1w
YXJhbWV0ZXItc2V0cyI7CiBjb25zdCBjaGFyIGtIMjY0UHJvZmlsZUxldmVsQ29uc3RyYWluZWRC
YXNlbGluZVtdID0gIjQyZTAxZiI7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorLy8gUkZDIDc3OTgg
UlRQIFBheWxvYWQgRm9ybWF0IGZvciBILjI2NSB2aWRlbworY29uc3QgY2hhciBrSDI2NUZtdHBQ
cm9maWxlU3BhY2VbXSA9ICJwcm9maWxlLXNwYWNlIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwUHJv
ZmlsZUlkW10gPSAicHJvZmlsZS1pZCI7Citjb25zdCBjaGFyIGtIMjY1Rm10cFRpZXJGbGFnW10g
PSAidGllci1mbGFnIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwTGV2ZWxJZFtdID0gImxldmVsLWlk
IjsKKyNlbmRpZgogCiBjb25zdCBpbnQga0RlZmF1bHRWaWRlb01heEZyYW1lcmF0ZSA9IDYwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
ZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaAppbmRleCAxMzZlOWYx
OWEwMGMyZjg3M2FhOWMxYmRhODNhZTQ1NTAzNzNlNjM5Li4yYzFmNGRkYWFiNjZmZTE3YmEwMmFh
NGVkZjhjZDEyMWUwMjAzYTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29u
c3RhbnRzLmgKQEAgLTEzNSw2ICsxMzUsOSBAQCBleHRlcm4gY29uc3QgY2hhciBrQ29tZm9ydE5v
aXNlQ29kZWNOYW1lW107CiBSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtWcDhDb2RlY05h
bWVbXTsKIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFtZVtdOwogUlRD
X0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NENvZGVjTmFtZVtdOworI2lmbmRlZiBESVNB
QkxFX0gyNjUKK1JUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjVDb2RlY05hbWVbXTsK
KyNlbmRpZgogCiAvLyBSRkMgNjE4NCBSVFAgUGF5bG9hZCBGb3JtYXQgZm9yIEguMjY0IHZpZGVv
CiBSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY0Rm10cFByb2ZpbGVMZXZlbElkW107
CkBAIC0xNDMsNiArMTQ2LDEzIEBAIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRG
bXRwUGFja2V0aXphdGlvbk1vZGVbXTsKIGV4dGVybiBjb25zdCBjaGFyIGtIMjY0Rm10cFNwcm9w
UGFyYW1ldGVyU2V0c1tdOwogZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRQcm9maWxlTGV2ZWxDb25z
dHJhaW5lZEJhc2VsaW5lW107CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisvLyBSRkMgNzc5OCBS
VFAgUGF5bG9hZCBGb3JtYXQgZm9yIEguMjY1IHZpZGVvCitSVENfRVhQT1JUIGV4dGVybiBjb25z
dCBjaGFyIGtIMjY1Rm10cFByb2ZpbGVTcGFjZVtdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3Qg
Y2hhciBrSDI2NUZtdHBQcm9maWxlSWRbXTsKK1JUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIg
a0gyNjVGbXRwVGllckZsYWdbXTsKK1JUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjVG
bXRwTGV2ZWxJZFtdOworI2VuZGlmCiBleHRlcm4gY29uc3QgaW50IGtEZWZhdWx0VmlkZW9NYXhG
cmFtZXJhdGU7CiAKIGV4dGVybiBjb25zdCBzaXplX3Qga0NvbmZlcmVuY2VNYXhOdW1TcGF0aWFs
TGF5ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9CVUlMRC5nbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24KaW5kZXggNzNmMzc4
ZjhkOTY0ZmVlZTIwMjY1MDEyNDcyMjM5MjJjODM5MGE3Ni4uZTZkZjUxZDUyZDU1ZTdhMzA5Zjg4
YjgyYzBjNTE5MGQwNTE4Y2U4OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9CVUlMRC5nbgorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL0JVSUxE
LmduCkBAIC0yMDksNiArMjA5LDE3IEBAIHJ0Y19zdGF0aWNfbGlicmFyeSgicnRwX3J0Y3AiKSB7
CiAgICAgZGVmaW5lcyA9IFsgIkJXRV9URVNUX0xPR0dJTkdfQ09NUElMRV9USU1FX0VOQUJMRT0w
IiBdCiAgIH0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisgICAg
ICAic291cmNlL3J0cF9mb3JtYXRfaDI2NS5jYyIsCisgICAgICAic291cmNlL3J0cF9mb3JtYXRf
aDI2NS5oIiwKKyAgICBdCisgIH0KKworICBpZiAoIXJ0Y191c2VfaDI2NSkgeworICAgIGRlZmlu
ZXMgKz0gWyJESVNBQkxFX0gyNjUiXQorICB9CisKICAgZGVwcyA9IFsKICAgICAiOnJ0cF9ydGNw
X2Zvcm1hdCIsCiAgICAgIjpydHBfdmlkZW9faGVhZGVyIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNl
L2gyNjVfc3BzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2gyNjVfc3BzX3BhcnNlci5jYwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43YjY5YmFiMmE2Y2Q2NzUxNGI4NDQ2NWE2OGVlZDkwYWVjOTc4NTYwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMTg5IEBACisv
KgorICogSW50ZWwgTGljZW5zZQorICovCisKKyNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgiCisKKyNpbmNsdWRlICJydGNfYmFzZS9iaXRf
YnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvYnl0ZV9idWZmZXIuaCIKKyNpbmNsdWRlICJy
dGNfYmFzZS9sb2dnaW5nLmgiCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNkZWZpbmUgUkVUVVJO
X0ZBTFNFX09OX0ZBSUwoeCkgXAorICBpZiAoISh4KSkgeyAgICAgICAgICAgICAgICAgICBcCisg
ICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgIFwKKyAgfQorCituYW1lc3BhY2Ugd2VicnRj
IHsKKworSDI2NVNwc1BhcnNlcjo6SDI2NVNwc1BhcnNlcihjb25zdCB1aW50OF90KiBzcHMsIHNp
emVfdCBieXRlX2xlbmd0aCkKKyAgICA6IHNwc18oc3BzKSwgYnl0ZV9sZW5ndGhfKGJ5dGVfbGVu
Z3RoKSwgd2lkdGhfKCksIGhlaWdodF8oKSB7Cit9CisKK2Jvb2wgSDI2NVNwc1BhcnNlcjo6UGFy
c2UoKSB7CisgIC8vIEdlbmVyYWwgbm90ZTogdGhpcyBpcyBiYXNlZCBvZmYgdGhlIDA0LzIwMTUg
dmVyc2lvbiBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIC8vIFlvdSBjYW4gZmluZCBpdCBvbiB0
aGlzIHBhZ2U6CisgIC8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworICBj
b25zdCBjaGFyKiBzcHNfYnl0ZXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcHNf
KTsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhlIHNv
dXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRlIG9m
IGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8gc2Vj
dGlvbiA3LjMuMS4xIG9mIHRoZSBILjI2NSBzdGFuZGFyZCwgc2ltaWxhciB0byBIMjY0LgorICBy
dGM6OkJ5dGVCdWZmZXJXcml0ZXIgcmJzcF9idWZmZXI7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgYnl0ZV9sZW5ndGhfOykgeworICAgIC8vIEJlIGNhcmVmdWwgYWJvdXQgb3Zlci91bmRlcmZs
b3cgaGVyZS4gYnl0ZV9sZW5ndGhfIC0gMyBjYW4gdW5kZXJmbG93LCBhbmQKKyAgICAvLyBpICsg
MyBjYW4gb3ZlcmZsb3csIGJ1dCBieXRlX2xlbmd0aF8gLSBpIGNhbid0LCBiZWNhdXNlIGkgPCBi
eXRlX2xlbmd0aF8KKyAgICAvLyBhYm92ZSwgYW5kIHRoYXQgZXhwcmVzc2lvbiB3aWxsIHByb2R1
Y2UgdGhlIG51bWJlciBvZiBieXRlcyBsZWZ0IGluCisgICAgLy8gdGhlIHN0cmVhbSBpbmNsdWRp
bmcgdGhlIGJ5dGUgYXQgaS4KKyAgICBpZiAoYnl0ZV9sZW5ndGhfIC0gaSA+PSAzICYmIHNwc19b
aV0gPT0gMCAmJiBzcHNfW2kgKyAxXSA9PSAwICYmCisgICAgICAgIHNwc19baSArIDJdID09IDMp
IHsKKyAgICAgIC8vIFR3byByYnNwIGJ5dGVzICsgdGhlIGVtdWxhdGlvbiBieXRlLgorICAgICAg
cmJzcF9idWZmZXIuV3JpdGVCeXRlcyhzcHNfYnl0ZXMgKyBpLCAyKTsKKyAgICAgIGkgKz0gMzsK
KyAgICB9IGVsc2UgeworICAgICAgLy8gU2luZ2xlIHJic3AgYnl0ZS4KKyAgICAgIHJic3BfYnVm
ZmVyLldyaXRlQnl0ZXMoc3BzX2J5dGVzICsgaSwgMSk7CisgICAgICBpKys7CisgICAgfQorICB9
CisKKyAgLy8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhyb3Vn
aCB0aGUgYWN0dWFsIEhFVkMgU1BTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIuMS4x
ICgiU2VxdWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhIHN5bnRheCIpIG9mIHRoZQorICAvLyBILjI2
NSBzdGFuZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2luY2Ugd2Ugb25s
eSBjYXJlIGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkgb2YgZmllbGRz
LCBidXQKKyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJvdWdoIGEgbG90
IG9mIHRoZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2ZSB2YXJpYWJs
ZSBzaXplLgorICAvLyBVbmxpa2UgSDI2NCwgZm9yIEgyNjUsIHRoZSBwaWN0dXJlIHNpemUgaXMg
aW5kaWNhdGVkIGJ5IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMKKyAgLy8gYW5kIHBpY19oZWln
aHRfaW5fbHVtYV9zYW1wbGVzLCAgaWYgY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcgIT0xOworICAv
LyBXaGVuIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnIGlzIDEsICB0aGUgd2lkdGggaXMgYWRqdXN0
ZWQgd2l0aCBjb25fd2luX3h4X29mZnNldAorICAvLworICBydGM6OkJpdEJ1ZmZlciBwYXJzZXIo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4ocmJzcF9idWZmZXIuRGF0YSgpKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJic3BfYnVmZmVyLkxlbmd0aCgpKTsKKworICAvLyBUaGUg
Z29sb21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNvbnN1bWUuCisgIHVpbnQz
Ml90IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnIGlz
IG9wdGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9ucworICAvLyBhYm91dCB0
aGUgQ2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2UgdHJlYXQgY3JvcCBjb29y
ZGluYXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgPSAwOworICAv
LyBjaHJvbWFfZm9ybWF0X2lkYyB3aWxsIGJlIENocm9tYUFycmF5VHlwZSBpZiBzZXBhcmF0ZV9j
b2xvdXJfcGxhbmVfZmxhZyBpcworICAvLyAwLiBJdCBkZWZhdWx0cyB0byAxLCB3aGVuIG5vdCBz
cGVjaWZpZWQuCisgIHVpbnQzMl90IGNocm9tYV9mb3JtYXRfaWRjID0gMTsKKworCisgIC8vIHNw
c192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBh
cnNlci5Db25zdW1lQml0cyg0KSk7CisgIC8vIHNwc19tYXhfc3ViX2xheWVyc19taW51czE6IHUo
MykKKyAgdWludDMyX3Qgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSA9IDA7CisgIFJFVFVSTl9G
QUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSwg
MykpOworICAvLyBzcHNfdGVtcG9yYWxfaWRfbmVzdGluZ19mbGFnOiB1KDEpCisgIFJFVFVSTl9G
QUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygxKSk7CisgIC8vIHByb2ZpbGVfdGllcl9s
ZXZlbCgxLCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxKS4gV2UgYXJlIGFjdXRhbGx5IG5vdAor
ICAvLyB1c2luZyB0aGVtLCBzbyByZWFkL3NraXAgb3ZlciBpdC4KKyAgLy8gZ2VuZXJhbF9wcm9m
aWxlX3NwYWNlK2dlbmVyYWxfdGllcl9mbGFnK2dlbmVyYWxfcHJmaWxlX2lkYzogdSg4KQorICBS
RVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDEpKTsKKyAgLy8gZ2VuZXJh
bF9wcm9maWxlX2NvbXBhdGFiaWxpdGl5X2ZsYWdbMzJdCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlM
KHBhcnNlci5Db25zdW1lQnl0ZXMoNCkpOworICAvLyBnZW5lcmFsX3Byb2dyZXNzaXZlX3NvdXJj
ZV9mbGFnICsgaW50ZXJsYWNlZF9zb3VyY2VfZmxhZysgbm9uLXBhY2tlZF9jb25zdHJhaW50Cisg
IC8vIGZsYWcgKyBmcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzogdSg0KQorICBSRVRVUk5fRkFM
U0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNCkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVf
aWRjIGRlY2lkZWQgZmxhZ3Mgb3IgcmVzZXJ2ZWQuICB1KDQzKQorICBSRVRVUk5fRkFMU0VfT05f
RkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNDMpKTsKKyAgLy8gZ2VuZXJhbF9pbmJsZF9mbGFnIG9y
IHJlc2VydmVkIDA6IHUoMSkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVC
aXRzKDEpKTsKKyAgLy8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJOX0ZBTFNFX09O
X0ZBSUwocGFyc2VyLkNvbnN1bWVCeXRlcygxKSk7CisgIC8vIGlmIG1heF9zdWJfbGF5ZXJzX21p
bnVzMSA+PTEsIHJlYWQgdGhlIHN1YmxheWVyIHByb2ZpbGUgaW5mb3JtYXRpb24KKyAgc3RkOjp2
ZWN0b3I8dWludDMyX3Q+IHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3M7CisgIHN0ZDo6
dmVjdG9yPHVpbnQzMl90PiBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnczsKKyAgdWludDMy
X3Qgc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudCA9IDA7CisgIHVpbnQzMl90IHN1Yl9sYXllcl9s
ZXZlbF9wcmVzZW50ID0gMDsKKyAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHNwc19tYXhfc3Vi
X2xheWVyc19taW51czE7IGkrKykgeworICAgICAgLy9zdWJsYXllcl9wcm9maWxlX3ByZXNlbnRf
ZmxhZyBhbmQgc3VibGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAgICAgUkVUVVJO
X0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRCaXRzKCZzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50
LCAxKSk7CisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEJpdHMoJnN1Yl9s
YXllcl9sZXZlbF9wcmVzZW50LCAxKSk7CisgICAgICBzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50
X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50KTsKKyAgICAgIHN1Yl9s
YXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfbGV2ZWxfcHJlc2Vu
dCk7CisgIH0KKyAgaWYgKHNwc19tYXhfc3ViX2xheWVyc19taW51czEgPiAwKSB7CisgICAgICBm
b3IgKHVpbnQzMl90IGogPSBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBqIDwgODsgaisrKSB7
CisgICAgICAgIC8vIHJlc2VydmVkIDIgYml0czogdSgyKQorICAgICAgICAgIFJFVFVSTl9GQUxT
RV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygyKSk7CisgICAgICB9CisgIH0KKyAgZm9yICh1
aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGsrKykgeworICAg
ICAgaWYoc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnc1trXSkgey8vCisgICAgICAgIC8v
IHN1Yl9sYXllciBwcm9maWxlX3NwYWNlL3RpZXJfZmxhZy9wcm9maWxlX2lkYy4gaWdub3JlZC4g
dSg4KQorICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDEp
KTsKKyAgICAgICAgLy8gcHJvZmlsZV9jb21wYXRhYmlsaXR5X2ZsYWc6ICB1KDMyKQorICAgICAg
ICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDQpKTsKKyAgICAgICAg
Ly8gc3ViX2xheWVyIHByb2dyZXNzaXZlX3NvdXJjZV9mbGFnL2ludGVybGFjZWRfc291cmNlX2Zs
YWcvCisgICAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2ZyYW1lX29ubHlfY29u
c3RyYWludF9mbGFnOiB1KDQpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5D
b25zdW1lQml0cyg0KSk7CisgICAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFyZSBwcm9maWxl
X2lkYyBzcGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4gdSg0MykKKyAgICAgICAgUkVU
VVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDQzKSk7CisgICAgICAgIC8vIDEt
Yml0IHByb2ZpbGVfaWRjIHNwZWNpZmljIGluYmxkIGZsYWcuICBXZSBzaW1wbHkgcmVhZC9za2lw
IGl0LiB1KDEpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0
cygxKSk7CisgICAgICB9CisgICAgICBpZiAoc3ViX2xheWVyX2xldmVsX3ByZXNlbnRfZmxhZ3Nb
a10pIHsKKyAgICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAgICAgICAgIFJF
VFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoMSkpOworICAgICAgfQorICB9
CisgIC8vc3BzX3NlcV9wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBSRVRVUk5fRkFMU0VfT05f
RkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAv
LyBjaHJvbWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2Vy
LlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY2hyb21hX2Zvcm1hdF9pZGMpKTsKKyAgaWYgKGNocm9t
YV9mb3JtYXRfaWRjID09IDMpIHsKKyAgICAvLyBzZXBlcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZzog
dSgxKQorICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmc2VwYXJhdGVf
Y29sb3VyX3BsYW5lX2ZsYWcsIDEpKTsKKyAgfQorICB1aW50MzJfdCBwaWNfd2lkdGhfaW5fbHVt
YV9zYW1wbGVzID0gMDsKKyAgdWludDMyX3QgcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXMgPSAw
OworICAvLyBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2KQorICBSRVRVUk5fRkFMU0Vf
T05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfd2lkdGhfaW5fbHVtYV9z
YW1wbGVzKSk7CisgIC8vIHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2KQorICBSRVRV
Uk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfaGVpZ2h0
X2luX2x1bWFfc2FtcGxlcykpOworICAvLyBjb25mb3JtYW5jZV93aW5kb3dfZmxhZzogdSgxKQor
ICB1aW50MzJfdCBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyA9IDA7CisgIFJFVFVSTl9GQUxTRV9P
Tl9GQUlMKHBhcnNlci5SZWFkQml0cygmY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcsIDEpKTsKKwor
ICB1aW50MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2lu
X3JpZ2h0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3RvcF9vZmZzZXQgPSAwOwor
ICB1aW50MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zmc2V0ID0gMDsKKyAgaWYgKGNvbmZvcm1hbmNl
X3dpbmRvd19mbGFnKSB7CisgICAgICAvLyBjb25mX3dpbl9sZWZ0X29mZnNldDogdWUodikKKyAg
ICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNv
bmZfd2luX2xlZnRfb2Zmc2V0KSk7CisgICAgICAvLyBjb25mX3dpbl9yaWdodF9vZmZzZXQ6IHVl
KHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29s
b21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAgIC8vIGNvbmZfd2luX3RvcF9vZmZz
ZXQ6IHVlKHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50
aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAgICAvLyBjb25mX3dpbl9ib3R0
b21fb2Zmc2V0OiB1ZSh2KQorICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRF
eHBvbmVudGlhbEdvbG9tYigmY29uZl93aW5fYm90dG9tX29mZnNldCkpOworICB9CisKKyAgLy9G
b3IgZW5vdWdoIHRvIGdldCB0aGUgcmVzb2x1dGlvbiBpbmZvcm1hdGlvbi4gY2FsY2FsdWF0ZSBh
Y2NvcmRpbmcgdG8gSEVWQyBzcGVjIDcuNC4zLjIKKyAgaW50IHdpZHRoID0gMDsKKyAgaW50IGhl
aWdodCA9IDA7CisKKyAgd2lkdGggPSBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOworICBoZWln
aHQgPSBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczsKKworICBpZiAoY29uZm9ybWFuY2Vfd2lu
ZG93X2ZsYWcpIHsKKyAgICBpbnQgc3ViX3dpZHRoX2MgPSAoKDEgPT0gY2hyb21hX2Zvcm1hdF9p
ZGMpIHx8ICgyID09IGNocm9tYV9mb3JtYXRfaWRjKSkgJiYKKyAgICAgICAgICAgICAgICAgICAg
ICAgICgwID09IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnKSA/IDIgOiAxOworICAgIGludCBz
dWJfaGVpZ2h0X2MgPSAoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgJiYgKDAgPT0gc2VwYXJhdGVf
Y29sb3VyX3BsYW5lX2ZsYWcpID8gMiA6IDE7CisgICAgLy90aGUgb2Zmc2V0IGluY2x1ZGVzIHRo
ZSBwaXhlbCB3aXRoaW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVkIHRvICsxIGFz
IHBlciBzcGVjCisgICAgd2lkdGggLT0gc3ViX3dpZHRoX2MqKGNvbmZfd2luX3JpZ2h0X29mZnNl
dCArIGNvbmZfd2luX2xlZnRfb2Zmc2V0KTsKKyAgICBoZWlnaHQgLT0gc3ViX2hlaWdodF9jKihj
b25mX3dpbl90b3Bfb2Zmc2V0ICsgY29uZl93aW5fYm90dG9tX29mZnNldCk7CisgIH0KKworICB3
aWR0aF8gPSB3aWR0aDsKKyAgaGVpZ2h0XyA9IGhlaWdodDsKKyAgcmV0dXJuIHRydWU7CisKK30K
KworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNf
cGFyc2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDc4Y2Q4
YTNmMWI2Y2ZkN2ZiODk5NzA5NDBhYjEyZTg2NGY1YWViCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9z
b3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqICBJbnRlbCBM
aWNlbnNlCisgKi8KKworI2lmbmRlZiBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfSDI2
NV9TUFNfUEFSU0VSX0hfCisjZGVmaW5lIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9I
MjY1X1NQU19QQVJTRVJfSF8KKworLy8jaW5jbHVkZSAid2VicnRjL2Jhc2UvY29tbW9uLmgiCisj
aW5jbHVkZSAid2VicnRjL2NvbW1vbl90eXBlcy5oIgorbmFtZXNwYWNlIHdlYnJ0YyB7CisKKy8v
IEEgY2xhc3MgZm9yIHBhcnNpbmcgb3V0IHNlcXVlbmNlIHBhcmFtZXRlciBzZXQgKFNQUykgZGF0
YSBmcm9tIGFuIEgyNjUgTkFMVS4KKy8vIEN1cnJlbnRseSwgb25seSByZXNvbHV0aW9uIGlzIHJl
YWQgd2l0aG91dCBiZWluZyBpZ25vcmVkLgorY2xhc3MgSDI2NVNwc1BhcnNlciB7CisgcHVibGlj
OgorICBIMjY1U3BzUGFyc2VyKGNvbnN0IHVpbnQ4X3QqIHNwcywgc2l6ZV90IGJ5dGVfbGVuZ3Ro
KTsKKyAgLy8gUGFyc2VzIHRoZSBTUFMgdG8gY29tcGxldGlvbi4gUmV0dXJucyB0cnVlIGlmIHRo
ZSBTUFMgd2FzIHBhcnNlZCBjb3JyZWN0bHkuCisgIGJvb2wgUGFyc2UoKTsKKyAgdWludDE2X3Qg
d2lkdGgoKSB7IHJldHVybiB3aWR0aF87IH0KKyAgdWludDE2X3QgaGVpZ2h0KCkgeyByZXR1cm4g
aGVpZ2h0XzsgfQorCisgcHJpdmF0ZToKKyAgY29uc3QgdWludDhfdCogY29uc3Qgc3BzXzsKKyAg
Y29uc3Qgc2l6ZV90IGJ5dGVfbGVuZ3RoXzsKKworICB1aW50MTZfdCB3aWR0aF87CisgIHVpbnQx
Nl90IGhlaWdodF87Cit9OworCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisjZW5kaWYgIC8vIFdF
QlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9IMjY1X1NQU19QQVJTRVJfSF8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRw
X3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0LmNjCmluZGV4
IGU4NzAyMzJhNGQ1MWUxNTJkZjYwZTcwMDYzYzQwM2IxNGIyZDNkYTYuLjcxYzhlYjlhYTlhZmU4
NzRkOTljNWE1MGQyYjRiMDI1Mjg4ZTI5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3Jt
YXQuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5jYwpAQCAtMTMsMTAgKzEzLDE2IEBACiAj
aW5jbHVkZSAiYWJzbC9tZW1vcnkvbWVtb3J5LmgiCiAjaW5jbHVkZSAiYWJzbC90eXBlcy92YXJp
YW50LmgiCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY0
LmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL3J0cF9mb3JtYXRfaDI2NS5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRj
cC9zb3VyY2UvcnRwX2Zvcm1hdF92aWRlb19nZW5lcmljLmgiCiAjaW5jbHVkZSAibW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF92cDguaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS9ydHBfZm9ybWF0X3ZwOS5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29k
aW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZuZGVmIERJU0FCTEVf
SDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUv
aDI2NV9nbG9iYWxzLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9j
b2RlY3MvdnA4L2luY2x1ZGUvdnA4X2dsb2JhbHMuaCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVv
X2NvZGluZy9jb2RlY3MvdnA5L2luY2x1ZGUvdnA5X2dsb2JhbHMuaCIKICNpbmNsdWRlICJydGNf
YmFzZS9jaGVja3MuaCIKQEAgLTQ5LDYgKzU1LDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxSdHBQYWNr
ZXRpemVyPiBSdHBQYWNrZXRpemVyOjpDcmVhdGUoCiAgICAgICAgICAgYWJzbDo6Z2V0PFJUUFZp
ZGVvSGVhZGVyVlA4PihydHBfdmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKICAgICAg
IHJldHVybiBhYnNsOjptYWtlX3VuaXF1ZTxSdHBQYWNrZXRpemVyVnA4PihwYXlsb2FkLCBsaW1p
dHMsIHZwOCk7CiAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0Nv
ZGVjSDI2NTogeworICAgICAgUlRDX0NIRUNLKGZyYWdtZW50YXRpb24pOworICAgICAgY29uc3Qg
YXV0byYgaDI2NSA9CisgICAgICAgICAgYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4ocnRw
X3ZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisgICAgICByZXR1cm4gYWJzbDo6bWFr
ZV91bmlxdWU8UnRwUGFja2V0aXplckgyNjU+KAorICAgICAgICAgIHBheWxvYWQsIGxpbWl0cywg
aDI2NS5wYWNrZXRpemF0aW9uX21vZGUsICpmcmFnbWVudGF0aW9uKTsKKyAgICB9CisjZW5kaWYK
ICAgICBjYXNlIGtWaWRlb0NvZGVjVlA5OiB7CiAgICAgICBjb25zdCBhdXRvJiB2cDkgPQogICAg
ICAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlclZQOT4ocnRwX3ZpZGVvX2hlYWRlci52aWRl
b190eXBlX2hlYWRlcik7CkBAIC0xNDcsNiArMTYyLDEwIEBAIFJ0cERlcGFja2V0aXplciogUnRw
RGVwYWNrZXRpemVyOjpDcmVhdGUoYWJzbDo6b3B0aW9uYWw8VmlkZW9Db2RlY1R5cGU+IHR5cGUp
IHsKICAgc3dpdGNoICgqdHlwZSkgewogICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAg
cmV0dXJuIG5ldyBSdHBEZXBhY2tldGl6ZXJIMjY0KCk7CisjaWZuZGVmIERJU0FCTEVfSDI2NQor
ICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAgICAgcmV0dXJuIG5ldyBSdHBEZXBhY2tldGl6
ZXJIMjY1KCk7CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjVlA4OgogICAgICAgcmV0dXJu
IG5ldyBSdHBEZXBhY2tldGl6ZXJWcDgoKTsKICAgICBjYXNlIGtWaWRlb0NvZGVjVlA5OgpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmNjIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1h
dF9oMjY1LmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwMjZiZTQ4YjkxOWUwNzkyNTdhNTYzMzYxZWY5ZWM5NGJj
ZTQ4MjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuY2MKQEAg
LTAsMCArMSw2NDggQEAKKy8qCisgKiAgSW50ZWwgTGljZW5zZQorICovCisKKyNpbmNsdWRlIDxz
dHJpbmcuaD4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisj
aW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJjb21t
b25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8v
aDI2NS9oMjY1X3Nwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1
X3Zwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90
eXBlcy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2J5dGVfaW8uaCIKKyNp
bmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNpbmNs
dWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfcGFja2V0X3RvX3NlbmQuaCIKKyNpbmNs
dWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2Uvc3lzdGVtL2ZhbGx0
aHJvdWdoLmgiCit1c2luZyBuYW1lc3BhY2UgcnRjOworCituYW1lc3BhY2Ugd2VicnRjIHsKK25h
bWVzcGFjZSB7CisKK2VudW0gTmFsdVR5cGUgeworICBrVHJhaWxOID0gMCwKKyAga1RyYWlsUiA9
IDEsCisgIGtUc2FOID0gMiwKKyAga1RzYVIgPSAzLAorICBrU3RzYU4gPSA0LAorICBrU3RzYVIg
PSA1LAorICBrUmFkbE4gPSA2LAorICBrUmFkbFIgPSA3LAorICBrQmxhV0xwID0gMTYsCisgIGtC
bGFXUmFkbCA9IDE3LAorICBrQmxhTkxwID0gMTgsCisgIGtJZHJXUmFkbCA9IDE5LAorICBrSWRy
TkxwID0gMjAsCisgIGtDcmEgPSAyMSwKKyAga1ZwcyA9IDMyLAorICBrSGV2Y1NwcyA9IDMzLAor
ICBrSGV2Y1BwcyA9IDM0LAorICBrSGV2Y0F1ZCA9IDM1LAorICBrUHJlZml4U2VpID0gMzksCisg
IGtTdWZmaXhTZWkgPSA0MCwKKyAga0hldmNBcCA9IDQ4LAorICBrSGV2Y0Z1ID0gNDkKK307CisK
Ky8qCisgICAwICAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAgMiAgICAgICAg
ICAgICAgICAgICAzCisgICAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkg
MCAxIDIgMyA0IDUgNiA3IDggOSAwIDEKKyAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAgfCAgICBQYXlsb2FkSGRyIChU
eXBlPTQ5KSAgICAgICB8ICAgRlUgaGVhZGVyICAgfCBET05MIChjb25kKSAgIHwKKyAgKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LXwKKyovCisvLyBVbmxpa2UgSC4yNjQsIEhFVkMgTkFMIGhlYWRlciBpcyAyLWJ5dGVzLgorc3Rh
dGljIGNvbnN0IHNpemVfdCBrSGV2Y05hbEhlYWRlclNpemUgPSAyOworLy8gSC4yNjUncyBGVSBp
cyBjb25zdHJ1Y3RlZCBvZiAyLWJ5dGUgcGF5bG9hZCBoZWFkZXIsIGFuZCAxLWJ5dGUgRlUgaGVh
ZGVyCitzdGF0aWMgY29uc3Qgc2l6ZV90IGtIZXZjRnVIZWFkZXJTaXplID0gMTsKK3N0YXRpYyBj
b25zdCBzaXplX3Qga0hldmNMZW5ndGhGaWVsZFNpemUgPSAyOworc3RhdGljIGNvbnN0IHNpemVf
dCBrSGV2Y0FwSGVhZGVyU2l6ZSA9CisgICAga0hldmNOYWxIZWFkZXJTaXplICsga0hldmNMZW5n
dGhGaWVsZFNpemU7CisKK2VudW0gSGV2Y05hbEhkck1hc2tzIHsKKyAga0hldmNGQml0ID0gMHg4
MCwKKyAga0hldmNUeXBlTWFzayA9IDB4N0UsCisgIGtIZXZjTGF5ZXJJREhNYXNrID0gMHgxLAor
ICBrSGV2Y0xheWVySURMTWFzayA9IDB4RjgsCisgIGtIZXZjVElETWFzayA9IDB4NywKKyAga0hl
dmNUeXBlTWFza04gPSAweDgxLAorICBrSGV2Y1R5cGVNYXNrSW5GdUhlYWRlciA9IDB4M0YKK307
CisKKy8vIEJpdCBtYXNrcyBmb3IgRlUgaGVhZGVycy4KK2VudW0gSGV2Y0Z1RGVmcyB7IGtIZXZj
U0JpdCA9IDB4ODAsIGtIZXZjRUJpdCA9IDB4NDAsIGtIZXZjRnVUeXBlQml0ID0gMHgzRiB9Owor
CisvLyBUT0RPKHBib3MpOiBBdm9pZCBwYXJzaW5nIHRoaXMgaGVyZSBhcyB3ZWxsIGFzIGluc2lk
ZSB0aGUgaml0dGVyIGJ1ZmZlci4KK2Jvb2wgUGFyc2VBcFN0YXJ0T2Zmc2V0cyhjb25zdCB1aW50
OF90KiBuYWx1X3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoX3Jl
bWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxzaXplX3Q+KiBv
ZmZzZXRzKSB7CisgIHNpemVfdCBvZmZzZXQgPSAwOworICB3aGlsZSAobGVuZ3RoX3JlbWFpbmlu
ZyA+IDApIHsKKyAgICAvLyBCdWZmZXIgZG9lc24ndCBjb250YWluIHJvb20gZm9yIGFkZGl0aW9u
YWwgbmFsdSBsZW5ndGguCisgICAgaWYgKGxlbmd0aF9yZW1haW5pbmcgPCBzaXplb2YodWludDE2
X3QpKQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIHVpbnQxNl90IG5hbHVfc2l6ZSA9IEJ5dGVS
ZWFkZXI8dWludDE2X3Q+OjpSZWFkQmlnRW5kaWFuKG5hbHVfcHRyKTsKKyAgICBuYWx1X3B0ciAr
PSBzaXplb2YodWludDE2X3QpOworICAgIGxlbmd0aF9yZW1haW5pbmcgLT0gc2l6ZW9mKHVpbnQx
Nl90KTsKKyAgICBpZiAobmFsdV9zaXplID4gbGVuZ3RoX3JlbWFpbmluZykKKyAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBuYWx1X3B0ciArPSBuYWx1X3NpemU7CisgICAgbGVuZ3RoX3JlbWFpbmlu
ZyAtPSBuYWx1X3NpemU7CisKKyAgICBvZmZzZXRzLT5wdXNoX2JhY2sob2Zmc2V0ICsga0hldmNB
cEhlYWRlclNpemUpOworICAgIG9mZnNldCArPSBrSGV2Y0xlbmd0aEZpZWxkU2l6ZSArIG5hbHVf
c2l6ZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlCisKK1J0cFBh
Y2tldGl6ZXJIMjY1OjpSdHBQYWNrZXRpemVySDI2NSgKKyAgICBydGM6OkFycmF5Vmlldzxjb25z
dCB1aW50OF90PiBwYXlsb2FkLAorICAgIFBheWxvYWRTaXplTGltaXRzIGxpbWl0cywKKyAgICBI
MjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlLAorICAgIGNvbnN0IFJUUEZy
YWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24pCisgICAgOiBsaW1pdHNfKGxpbWl0cyks
CisgICAgICBudW1fcGFja2V0c19sZWZ0XygwKSB7CisgIC8vIEd1YXJkIGFnYWluc3QgdW5pbml0
aWFsaXplZCBtZW1vcnkgaW4gcGFja2V0aXphdGlvbl9tb2RlLgorICBSVENfQ0hFQ0socGFja2V0
aXphdGlvbl9tb2RlID09IEgyNjVQYWNrZXRpemF0aW9uTW9kZTo6Tm9uSW50ZXJsZWF2ZWQgfHwK
KyAgICAgICAgICAgIHBhY2tldGl6YXRpb25fbW9kZSA9PSBIMjY1UGFja2V0aXphdGlvbk1vZGU6
OlNpbmdsZU5hbFVuaXQpOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnJhZ21lbnRhdGlv
bi5mcmFnbWVudGF0aW9uVmVjdG9yU2l6ZTsgKytpKSB7CisgICAgY29uc3QgdWludDhfdCogZnJh
Z21lbnQgPQorICAgICAgICBwYXlsb2FkLmRhdGEoKSArIGZyYWdtZW50YXRpb24uZnJhZ21lbnRh
dGlvbk9mZnNldFtpXTsKKyAgICBjb25zdCBzaXplX3QgZnJhZ21lbnRfbGVuZ3RoID0gZnJhZ21l
bnRhdGlvbi5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldOworICAgIGlucHV0X2ZyYWdtZW50c18ucHVz
aF9iYWNrKEZyYWdtZW50KGZyYWdtZW50LCBmcmFnbWVudF9sZW5ndGgpKTsKKyAgfQorCisgIGlm
ICghR2VuZXJhdGVQYWNrZXRzKHBhY2tldGl6YXRpb25fbW9kZSkpIHsKKyAgICAvLyBJZiBmYWls
ZWQgdG8gZ2VuZXJhdGUgYWxsIHRoZSBwYWNrZXRzLCBkaXNjYXJkIGFscmVhZHkgZ2VuZXJhdGVk
CisgICAgLy8gcGFja2V0cyBpbiBjYXNlIHRoZSBjYWxsZXIgd291bGQgaWdub3JlIHJldHVybiB2
YWx1ZSBhbmQgc3RpbGwgdHJ5IHRvCisgICAgLy8gY2FsbCBOZXh0UGFja2V0KCkuCisgICAgbnVt
X3BhY2tldHNfbGVmdF8gPSAwOworICAgIHdoaWxlICghcGFja2V0c18uZW1wdHkoKSkgeworICAg
ICAgcGFja2V0c18ucG9wKCk7CisgICAgfQorICB9Cit9CisKK1J0cFBhY2tldGl6ZXJIMjY1Ojp+
UnRwUGFja2V0aXplckgyNjUoKSB7fQorCitzaXplX3QgUnRwUGFja2V0aXplckgyNjU6Ok51bVBh
Y2tldHMoKSBjb25zdCB7CisgIHJldHVybiBudW1fcGFja2V0c19sZWZ0XzsKK30KKworUnRwUGFj
a2V0aXplckgyNjU6OkZyYWdtZW50OjpGcmFnbWVudChjb25zdCB1aW50OF90KiBidWZmZXIsIHNp
emVfdCBsZW5ndGgpCisgICAgOiBidWZmZXIoYnVmZmVyKSwgbGVuZ3RoKGxlbmd0aCkge30KK1J0
cFBhY2tldGl6ZXJIMjY1OjpGcmFnbWVudDo6RnJhZ21lbnQoY29uc3QgRnJhZ21lbnQmIGZyYWdt
ZW50KQorICAgIDogYnVmZmVyKGZyYWdtZW50LmJ1ZmZlciksIGxlbmd0aChmcmFnbWVudC5sZW5n
dGgpIHt9CisKKworYm9vbCBSdHBQYWNrZXRpemVySDI2NTo6R2VuZXJhdGVQYWNrZXRzKAorICAg
IEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUpIHsKKyAgLy8gRm9yIEhF
VkMgd2UgZm9sbG93IG5vbi1pbnRlcmxlYXZlZCBtb2RlIGZvciB0aGUgcGFja2V0aXphdGlvbiwK
KyAgLy8gYW5kIGRvbid0IHN1cHBvcnQgc2luZ2xlLW5hbHUgbW9kZSBhdCBwcmVzZW50LgorICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpOykgeworICAgIGlu
dCBmcmFnbWVudF9sZW4gPSBpbnB1dF9mcmFnbWVudHNfW2ldLmxlbmd0aDsKKyAgICBpbnQgc2lu
Z2xlX3BhY2tldF9jYXBhY2l0eSA9IGxpbWl0c18ubWF4X3BheWxvYWRfbGVuOworICAgIGlmIChp
bnB1dF9mcmFnbWVudHNfLnNpemUoKSA9PSAxKQorICAgICAgc2luZ2xlX3BhY2tldF9jYXBhY2l0
eSAtPSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgICBlbHNlIGlmIChp
ID09IDApCisgICAgICBzaW5nbGVfcGFja2V0X2NhcGFjaXR5IC09IGxpbWl0c18uZmlyc3RfcGFj
a2V0X3JlZHVjdGlvbl9sZW47CisgICAgZWxzZSBpZiAoaSArIDEgPT0gaW5wdXRfZnJhZ21lbnRz
Xy5zaXplKCkpIHsKKyAgICAgIC8vIFByZXRlbmQgdGhhdCBsYXN0IGZyYWdtZW50IGlzIGxhcmdl
ciBpbnN0ZWFkIG9mIG1ha2luZyBsYXN0IHBhY2tldAorICAgICAgLy8gc21hbGxlci4KKyAgICAg
IHNpbmdsZV9wYWNrZXRfY2FwYWNpdHkgLT0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25f
bGVuOworICAgIH0KKyAgICBpZiAoZnJhZ21lbnRfbGVuID4gc2luZ2xlX3BhY2tldF9jYXBhY2l0
eSkgeworICAgICAgUGFja2V0aXplRnUoaSk7CisgICAgICArK2k7CisgICAgfSBlbHNlIHsKKyAg
ICAgIFBhY2tldGl6ZVNpbmdsZU5hbHUoaSk7CisgICAgICArK2k7CisgICAgfQorICB9CisgIHJl
dHVybiB0cnVlOworfQorCitib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXRpemVGdShzaXpl
X3QgZnJhZ21lbnRfaW5kZXgpIHsKKyAgLy8gRnJhZ21lbnQgcGF5bG9hZCBpbnRvIHBhY2tldHMg
KEZVKS4KKyAgLy8gU3RyaXAgb3V0IHRoZSBvcmlnaW5hbCBoZWFkZXIgYW5kIGxlYXZlIHJvb20g
Zm9yIHRoZSBGVSBoZWFkZXIuCisgIGNvbnN0IEZyYWdtZW50JiBmcmFnbWVudCA9IGlucHV0X2Zy
YWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOworICBQYXlsb2FkU2l6ZUxpbWl0cyBsaW1pdHMgPSBs
aW1pdHNfOworICBsaW1pdHMubWF4X3BheWxvYWRfbGVuIC09IGtIZXZjRnVIZWFkZXJTaXplICsg
a0hldmNOYWxIZWFkZXJTaXplOworCisgIC8vIFVwZGF0ZSBzaW5nbGUvZmlyc3QvbGFzdCBwYWNr
ZXQgcmVkdWN0aW9ucyB1bmxlc3MgaXQgaXMgc2luZ2xlL2ZpcnN0L2xhc3QKKyAgLy8gZnJhZ21l
bnQuCisgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSAhPSAxKSB7CisgICAgLy8gaWYgdGhp
cyBmcmFnbWVudCBpcyBwdXQgaW50byBhIHNpbmdsZSBwYWNrZXQsIGl0IG1pZ2h0IHN0aWxsIGJl
IHRoZQorICAgIC8vIGZpcnN0IG9yIHRoZSBsYXN0IHBhY2tldCBpbiB0aGUgd2hvbGUgc2VxdWVu
Y2Ugb2YgcGFja2V0cy4KKyAgICBpZiAoZnJhZ21lbnRfaW5kZXggPT0gaW5wdXRfZnJhZ21lbnRz
Xy5zaXplKCkgLSAxKSB7CisgICAgICBsaW1pdHMuc2luZ2xlX3BhY2tldF9yZWR1Y3Rpb25fbGVu
ID0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICAgIH0gZWxzZSBpZiAoZnJh
Z21lbnRfaW5kZXggPT0gMCkgeworICAgICAgbGltaXRzLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9u
X2xlbiA9IGxpbWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgfSBlbHNlIHsK
KyAgICAgIGxpbWl0cy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSAwOworICAgIH0KKyAg
fQorICBpZiAoZnJhZ21lbnRfaW5kZXggIT0gMCkKKyAgICBsaW1pdHMuZmlyc3RfcGFja2V0X3Jl
ZHVjdGlvbl9sZW4gPSAwOworICBpZiAoZnJhZ21lbnRfaW5kZXggIT0gaW5wdXRfZnJhZ21lbnRz
Xy5zaXplKCkgLSAxKQorICAgIGxpbWl0cy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuID0gMDsK
KworICAvLyBTdHJpcCBvdXQgdGhlIG9yaWdpbmFsIGhlYWRlci4KKyAgc2l6ZV90IHBheWxvYWRf
bGVmdCA9IGZyYWdtZW50Lmxlbmd0aCAtIGtIZXZjTmFsSGVhZGVyU2l6ZTsKKyAgaW50IG9mZnNl
dCA9IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKworICBzdGQ6OnZlY3RvcjxpbnQ+IHBheWxvYWRfc2l6
ZXMgPSBTcGxpdEFib3V0RXF1YWxseShwYXlsb2FkX2xlZnQsIGxpbWl0cyk7CisgIGlmIChwYXls
b2FkX3NpemVzLmVtcHR5KCkpCisgICAgcmV0dXJuIGZhbHNlOworCisgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgcGF5bG9hZF9zaXplcy5zaXplKCk7ICsraSkgeworICAgIGludCBwYWNrZXRfbGVu
Z3RoID0gcGF5bG9hZF9zaXplc1tpXTsKKyAgICBSVENfQ0hFQ0tfR1QocGFja2V0X2xlbmd0aCwg
MCk7CisgICAgdWludDE2X3QgaGVhZGVyID0gKGZyYWdtZW50LmJ1ZmZlclswXSA8PCA4KSB8IGZy
YWdtZW50LmJ1ZmZlclsxXTsKKyAgICBwYWNrZXRzXy5wdXNoKFBhY2tldFVuaXQoRnJhZ21lbnQo
ZnJhZ21lbnQuYnVmZmVyICsgb2Zmc2V0LCBwYWNrZXRfbGVuZ3RoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLypmaXJzdF9mcmFnbWVudD0qL2kgPT0gMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLypsYXN0X2ZyYWdtZW50PSovaSA9PSBwYXlsb2FkX3NpemVzLnNpemUo
KSAtIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBoZWFkZXIpKTsKKyAg
ICBvZmZzZXQgKz0gcGFja2V0X2xlbmd0aDsKKyAgICBwYXlsb2FkX2xlZnQgLT0gcGFja2V0X2xl
bmd0aDsKKyAgfQorICBudW1fcGFja2V0c19sZWZ0XyArPSBwYXlsb2FkX3NpemVzLnNpemUoKTsK
KyAgUlRDX0NIRUNLX0VRKDAsIHBheWxvYWRfbGVmdCk7CisgIHJldHVybiB0cnVlOworfQorCisK
K2Jvb2wgUnRwUGFja2V0aXplckgyNjU6OlBhY2tldGl6ZVNpbmdsZU5hbHUoc2l6ZV90IGZyYWdt
ZW50X2luZGV4KSB7CisgIC8vIEFkZCBhIHNpbmdsZSBOQUxVIHRvIHRoZSBxdWV1ZSwgbm8gYWdn
cmVnYXRpb24uCisgIHNpemVfdCBwYXlsb2FkX3NpemVfbGVmdCA9IGxpbWl0c18ubWF4X3BheWxv
YWRfbGVuOworICBpZiAoaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgPT0gMSkKKyAgICBwYXlsb2Fk
X3NpemVfbGVmdCAtPSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgZWxz
ZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1p
dHNfLmZpcnN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBlbHNlIGlmIChmcmFnbWVudF9pbmRl
eCArIDEgPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkpCisgICAgcGF5bG9hZF9zaXplX2xlZnQg
LT0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBjb25zdCBGcmFnbWVudCog
ZnJhZ21lbnQgPSAmaW5wdXRfZnJhZ21lbnRzX1tmcmFnbWVudF9pbmRleF07CisgIGlmIChwYXls
b2FkX3NpemVfbGVmdCA8IGZyYWdtZW50LT5sZW5ndGgpIHsKKyAgICBSVENfTE9HKExTX0VSUk9S
KSA8PCAiRmFpbGVkIHRvIGZpdCBhIGZyYWdtZW50IHRvIHBhY2tldCBpbiBTaW5nbGVOYWx1ICIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAicGFja2V0aXphdGlvbiBtb2RlLiBQYXlsb2FkIHNp
emUgbGVmdCAiCisgICAgICAgICAgICAgICAgICAgICAgPDwgcGF5bG9hZF9zaXplX2xlZnQgPDwg
IiwgZnJhZ21lbnQgbGVuZ3RoICIKKyAgICAgICAgICAgICAgICAgICAgICA8PCBmcmFnbWVudC0+
bGVuZ3RoIDw8ICIsIHBhY2tldCBjYXBhY2l0eSAiCisgICAgICAgICAgICAgICAgICAgICAgPDwg
bGltaXRzXy5tYXhfcGF5bG9hZF9sZW47CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIFJUQ19D
SEVDS19HVChmcmFnbWVudC0+bGVuZ3RoLCAwdSk7CisgIHBhY2tldHNfLnB1c2goUGFja2V0VW5p
dCgqZnJhZ21lbnQsIHRydWUgLyogZmlyc3QgKi8sIHRydWUgLyogbGFzdCAqLywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIGFnZ3JlZ2F0ZWQgKi8sIGZyYWdtZW50LT5idWZm
ZXJbMF0pKTsKKyAgKytudW1fcGFja2V0c19sZWZ0XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2lu
dCBSdHBQYWNrZXRpemVySDI2NTo6UGFja2V0aXplQXAoc2l6ZV90IGZyYWdtZW50X2luZGV4KSB7
CisgIC8vIEFnZ3JlZ2F0ZSBmcmFnbWVudHMgaW50byBvbmUgcGFja2V0IChTVEFQLUEpLgorICBz
aXplX3QgcGF5bG9hZF9zaXplX2xlZnQgPSBsaW1pdHNfLm1heF9wYXlsb2FkX2xlbjsKKyAgaWYg
KGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0g
bGltaXRzXy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgIGVsc2UgaWYgKGZyYWdtZW50
X2luZGV4ID09IDApCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5maXJzdF9wYWNr
ZXRfcmVkdWN0aW9uX2xlbjsKKyAgaW50IGFnZ3JlZ2F0ZWRfZnJhZ21lbnRzID0gMDsKKyAgc2l6
ZV90IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoID0gMDsKKyAgY29uc3QgRnJhZ21lbnQqIGZyYWdt
ZW50ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOworICBSVENfQ0hFQ0tfR0Uo
cGF5bG9hZF9zaXplX2xlZnQsIGZyYWdtZW50LT5sZW5ndGgpOworICArK251bV9wYWNrZXRzX2xl
ZnRfOworCisgIGF1dG8gcGF5bG9hZF9zaXplX25lZWRlZCA9IFsmXSB7CisgICAgc2l6ZV90IGZy
YWdtZW50X3NpemUgPSBmcmFnbWVudC0+bGVuZ3RoICsgZnJhZ21lbnRfaGVhZGVyc19sZW5ndGg7
CisgICAgaWYgKGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpIHsKKyAgICAgIC8vIFNpbmds
ZSBmcmFnbWVudCwgc2luZ2xlIHBhY2tldCwgcGF5bG9hZF9zaXplX2xlZnQgYWxyZWFkeSBhZGp1
c3RlZAorICAgICAgLy8gd2l0aCBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbi4K
KyAgICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICAgIH0KKyAgICBpZiAoZnJhZ21lbnRfaW5k
ZXggPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKSB7CisgICAgICAvLyBMYXN0IGZyYWdt
ZW50LCBzbyBTdHJhcEEgbWlnaHQgYmUgdGhlIGxhc3QgcGFja2V0LgorICAgICAgcmV0dXJuIGZy
YWdtZW50X3NpemUgKyBsaW1pdHNfLmxhc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgfQor
ICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICB9OworCisgIHdoaWxlIChwYXlsb2FkX3NpemVf
bGVmdCA+PSBwYXlsb2FkX3NpemVfbmVlZGVkKCkpIHsKKyAgICBSVENfQ0hFQ0tfR1QoZnJhZ21l
bnQtPmxlbmd0aCwgMCk7CisgICAgcGFja2V0c18ucHVzaChQYWNrZXRVbml0KCpmcmFnbWVudCwg
YWdncmVnYXRlZF9mcmFnbWVudHMgPT0gMCwgZmFsc2UsIHRydWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZyYWdtZW50LT5idWZmZXJbMF0pKTsKKyAgICBwYXlsb2FkX3NpemVfbGVm
dCAtPSBmcmFnbWVudC0+bGVuZ3RoOworICAgIHBheWxvYWRfc2l6ZV9sZWZ0IC09IGZyYWdtZW50
X2hlYWRlcnNfbGVuZ3RoOworCisgICAgZnJhZ21lbnRfaGVhZGVyc19sZW5ndGggPSBrSGV2Y0xl
bmd0aEZpZWxkU2l6ZTsKKyAgICAvLyBJZiB3ZSBhcmUgZ29pbmcgdG8gdHJ5IHRvIGFnZ3JlZ2F0
ZSBtb3JlIGZyYWdtZW50cyBpbnRvIHRoaXMgcGFja2V0CisgICAgLy8gd2UgbmVlZCB0byBhZGQg
dGhlIFNUQVAtQSBOQUxVIGhlYWRlciBhbmQgYSBsZW5ndGggZmllbGQgZm9yIHRoZSBmaXJzdAor
ICAgIC8vIE5BTFUgb2YgdGhpcyBwYWNrZXQuCisgICAgaWYgKGFnZ3JlZ2F0ZWRfZnJhZ21lbnRz
ID09IDApCisgICAgICBmcmFnbWVudF9oZWFkZXJzX2xlbmd0aCArPSBrSGV2Y05hbEhlYWRlclNp
emUgKyBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAgICArK2FnZ3JlZ2F0ZWRfZnJhZ21lbnRzOwor
CisgICAgLy8gTmV4dCBmcmFnbWVudC4KKyAgICArK2ZyYWdtZW50X2luZGV4OworICAgIGlmIChm
cmFnbWVudF9pbmRleCA9PSBpbnB1dF9mcmFnbWVudHNfLnNpemUoKSkKKyAgICAgIGJyZWFrOwor
ICAgIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOworICB9Cisg
IFJUQ19DSEVDS19HVChhZ2dyZWdhdGVkX2ZyYWdtZW50cywgMCk7CisgIHBhY2tldHNfLmJhY2so
KS5sYXN0X2ZyYWdtZW50ID0gdHJ1ZTsKKyAgcmV0dXJuIGZyYWdtZW50X2luZGV4OworfQorCiti
b29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpOZXh0UGFja2V0KFJ0cFBhY2tldFRvU2VuZCogcnRwX3Bh
Y2tldCkgeworICBSVENfRENIRUNLKHJ0cF9wYWNrZXQpOworCisgIGlmIChwYWNrZXRzXy5lbXB0
eSgpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgUGFja2V0VW5pdCBwYWNrZXQgPSBw
YWNrZXRzXy5mcm9udCgpOworCisgIGlmIChwYWNrZXQuZmlyc3RfZnJhZ21lbnQgJiYgcGFja2V0
Lmxhc3RfZnJhZ21lbnQpIHsKKyAgICAvLyBTaW5nbGUgTkFMIHVuaXQgcGFja2V0LgorICAgIHNp
emVfdCBieXRlc190b19zZW5kID0gcGFja2V0LnNvdXJjZV9mcmFnbWVudC5sZW5ndGg7CisgICAg
dWludDhfdCogYnVmZmVyID0gcnRwX3BhY2tldC0+QWxsb2NhdGVQYXlsb2FkKGJ5dGVzX3RvX3Nl
bmQpOworICAgIG1lbWNweShidWZmZXIsIHBhY2tldC5zb3VyY2VfZnJhZ21lbnQuYnVmZmVyLCBi
eXRlc190b19zZW5kKTsKKyAgICBwYWNrZXRzXy5wb3AoKTsKKyAgICBpbnB1dF9mcmFnbWVudHNf
LnBvcF9mcm9udCgpOworICB9IGVsc2UgaWYgKHBhY2tldC5hZ2dyZWdhdGVkKSB7CisgICAgYm9v
bCBpc19sYXN0X3BhY2tldCA9IG51bV9wYWNrZXRzX2xlZnRfID09IDE7CisgICAgTmV4dEFnZ3Jl
Z2F0ZVBhY2tldChydHBfcGFja2V0LCBpc19sYXN0X3BhY2tldCk7CisgIH0gZWxzZSB7CisgICAg
TmV4dEZyYWdtZW50UGFja2V0KHJ0cF9wYWNrZXQpOworICB9CisgIHJ0cF9wYWNrZXQtPlNldE1h
cmtlcihwYWNrZXRzXy5lbXB0eSgpKTsKKyAgLS1udW1fcGFja2V0c19sZWZ0XzsKKyAgcmV0dXJu
IHRydWU7Cit9CisKK3ZvaWQgUnRwUGFja2V0aXplckgyNjU6Ok5leHRBZ2dyZWdhdGVQYWNrZXQo
UnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sIGxhc3QpIHsKKyAgc2l6ZV90IHBheWxvYWRfY2FwYWNpdHkg
PSBydHBfcGFja2V0LT5GcmVlQ2FwYWNpdHkoKTsKKyAgUlRDX0NIRUNLX0dFKHBheWxvYWRfY2Fw
YWNpdHksIGtIZXZjTmFsSGVhZGVyU2l6ZSk7CisgIHVpbnQ4X3QqIGJ1ZmZlciA9IHJ0cF9wYWNr
ZXQtPkFsbG9jYXRlUGF5bG9hZChwYXlsb2FkX2NhcGFjaXR5KTsKKworICBQYWNrZXRVbml0KiBw
YWNrZXQgPSAmcGFja2V0c18uZnJvbnQoKTsKKyAgUlRDX0NIRUNLKHBhY2tldC0+Zmlyc3RfZnJh
Z21lbnQpOworICB1aW50OF90IHBheWxvYWRfaGRyX2ggPSBwYWNrZXQtPmhlYWRlciA+PiA4Owor
ICB1aW50OF90IHBheWxvYWRfaGRyX2wgPSBwYWNrZXQtPmhlYWRlciAmIDB4RkY7CisgIHVpbnQ4
X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRfaGRyX2ggJiBrSGV2Y0xheWVySURITWFzazsKKworICBw
YXlsb2FkX2hkcl9oID0KKyAgICAgIChwYXlsb2FkX2hkcl9oICYga0hldmNUeXBlTWFza04pIHwg
KGtIZXZjQXAgPDwgMSkgfCBsYXllcl9pZF9oOworCisgIGJ1ZmZlclswXSA9IHBheWxvYWRfaGRy
X2g7CisgIGJ1ZmZlclsxXSA9IHBheWxvYWRfaGRyX2w7CisgIGludCBpbmRleCA9IGtIZXZjTmFs
SGVhZGVyU2l6ZTsKKyAgYm9vbCBpc19sYXN0X2ZyYWdtZW50ID0gcGFja2V0LT5sYXN0X2ZyYWdt
ZW50OworICB3aGlsZSAocGFja2V0LT5hZ2dyZWdhdGVkKSB7CisgICAgLy8gQWRkIE5BTCB1bml0
IGxlbmd0aCBmaWVsZC4KKyAgICBjb25zdCBGcmFnbWVudCYgZnJhZ21lbnQgPSBwYWNrZXQtPnNv
dXJjZV9mcmFnbWVudDsKKyAgICBCeXRlV3JpdGVyPHVpbnQxNl90Pjo6V3JpdGVCaWdFbmRpYW4o
JmJ1ZmZlcltpbmRleF0sIGZyYWdtZW50Lmxlbmd0aCk7CisgICAgaW5kZXggKz0ga0hldmNMZW5n
dGhGaWVsZFNpemU7CisgICAgLy8gQWRkIE5BTCB1bml0LgorICAgIG1lbWNweSgmYnVmZmVyW2lu
ZGV4XSwgZnJhZ21lbnQuYnVmZmVyLCBmcmFnbWVudC5sZW5ndGgpOworICAgIGluZGV4ICs9IGZy
YWdtZW50Lmxlbmd0aDsKKyAgICBwYWNrZXRzXy5wb3AoKTsKKyAgICBpbnB1dF9mcmFnbWVudHNf
LnBvcF9mcm9udCgpOworICAgIGlmIChpc19sYXN0X2ZyYWdtZW50KQorICAgICAgYnJlYWs7Cisg
ICAgcGFja2V0ID0gJnBhY2tldHNfLmZyb250KCk7CisgICAgaXNfbGFzdF9mcmFnbWVudCA9IHBh
Y2tldC0+bGFzdF9mcmFnbWVudDsKKyAgfQorICBSVENfQ0hFQ0soaXNfbGFzdF9mcmFnbWVudCk7
CisgIHJ0cF9wYWNrZXQtPlNldFBheWxvYWRTaXplKGluZGV4KTsKK30KKwordm9pZCBSdHBQYWNr
ZXRpemVySDI2NTo6TmV4dEZyYWdtZW50UGFja2V0KFJ0cFBhY2tldFRvU2VuZCogcnRwX3BhY2tl
dCkgeworICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFja2V0c18uZnJvbnQoKTsKKyAgLy8gTkFM
IHVuaXQgZnJhZ21lbnRlZCBvdmVyIG11bHRpcGxlIHBhY2tldHMgKEZVKS4KKyAgLy8gV2UgZG8g
bm90IHNlbmQgb3JpZ2luYWwgTkFMVSBoZWFkZXIsIHNvIGl0IHdpbGwgYmUgcmVwbGFjZWQgYnkg
dGhlCisgIC8vIFBheWxvYWRIZHIgb2YgdGhlIGZpcnN0IHBhY2tldC4KKyAgdWludDhfdCBwYXls
b2FkX2hkcl9oID0KKyAgICAgIHBhY2tldC0+aGVhZGVyID4+IDg7ICAvLyAxLWJpdCBGLCA2LWJp
dCB0eXBlLCAxLWJpdCBsYXllcklEIGhpZ2hlc3QtYml0CisgIHVpbnQ4X3QgcGF5bG9hZF9oZHJf
bCA9IHBhY2tldC0+aGVhZGVyICYgMHhGRjsKKyAgdWludDhfdCBsYXllcl9pZF9oID0gcGF5bG9h
ZF9oZHJfaCAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1aW50OF90IGZ1X2hlYWRlciA9IDA7Cisg
IC8vIFMgfCBFIHw2IGJpdCB0eXBlLgorICBmdV9oZWFkZXIgfD0gKHBhY2tldC0+Zmlyc3RfZnJh
Z21lbnQgPyBrSGV2Y1NCaXQgOiAwKTsKKyAgZnVfaGVhZGVyIHw9IChwYWNrZXQtPmxhc3RfZnJh
Z21lbnQgPyBrSGV2Y0VCaXQgOiAwKTsKKyAgdWludDhfdCB0eXBlID0gKHBheWxvYWRfaGRyX2gg
JiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICBmdV9oZWFkZXIgfD0gdHlwZTsKKyAgLy8gTm93IHVw
ZGF0ZSBwYXlsb2FkX2hkcl9oIHdpdGggRlUgdHlwZS4KKyAgcGF5bG9hZF9oZHJfaCA9CisgICAg
ICAocGF5bG9hZF9oZHJfaCAmIGtIZXZjVHlwZU1hc2tOKSB8IChrSGV2Y0Z1IDw8IDEpIHwgbGF5
ZXJfaWRfaDsKKyAgY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50ID0gcGFja2V0LT5zb3VyY2VfZnJh
Z21lbnQ7CisgIHVpbnQ4X3QqIGJ1ZmZlciA9IHJ0cF9wYWNrZXQtPkFsbG9jYXRlUGF5bG9hZCgK
KyAgICAgIGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplICsgZnJhZ21lbnQu
bGVuZ3RoKTsKKyAgYnVmZmVyWzBdID0gcGF5bG9hZF9oZHJfaDsKKyAgYnVmZmVyWzFdID0gcGF5
bG9hZF9oZHJfbDsKKyAgYnVmZmVyWzJdID0gZnVfaGVhZGVyOworCisgIGlmIChwYWNrZXQtPmxh
c3RfZnJhZ21lbnQpIHsKKyAgICBtZW1jcHkoYnVmZmVyICsga0hldmNGdUhlYWRlclNpemUgKyBr
SGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZlciwKKyAgICAgICAgICAgZnJhZ21lbnQu
bGVuZ3RoKTsKKyAgfSBlbHNlIHsKKyAgICBtZW1jcHkoYnVmZmVyICsga0hldmNGdUhlYWRlclNp
emUgKyBrSGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZlciwKKyAgICAgICAgICAgZnJh
Z21lbnQubGVuZ3RoKTsKKyAgfQorICBwYWNrZXRzXy5wb3AoKTsKK30KKworYm9vbCBSdHBEZXBh
Y2tldGl6ZXJIMjY1OjpQYXJzZShQYXJzZWRQYXlsb2FkKiBwYXJzZWRfcGF5bG9hZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGF5bG9hZF9kYXRhX2xlbmd0
aCkgeworICBSVENfQ0hFQ0socGFyc2VkX3BheWxvYWQgIT0gbnVsbHB0cik7CisgIGlmIChwYXls
b2FkX2RhdGFfbGVuZ3RoID09IDApIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRW1wdHkg
cGF5bG9hZC4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIG9mZnNldF8gPSAwOworICBs
ZW5ndGhfID0gcGF5bG9hZF9kYXRhX2xlbmd0aDsKKyAgbW9kaWZpZWRfYnVmZmVyXy5yZXNldCgp
OworCisgIHVpbnQ4X3QgbmFsX3R5cGUgPSAocGF5bG9hZF9kYXRhWzBdICYga0hldmNUeXBlTWFz
aykgPj4gMTsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlcigpCisgICAgICAudmlkZW9f
dHlwZV9oZWFkZXIuZW1wbGFjZTxSVFBWaWRlb0hlYWRlckgyNjU+KCk7CisKKyAgaWYgKG5hbF90
eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprRlUpIHsKKyAgICAvLyBGcmFnbWVudGVkIE5BTCB1bml0
cyAoRlUtQSkuCisgICAgaWYgKCFQYXJzZUZ1TmFsdShwYXJzZWRfcGF5bG9hZCwgcGF5bG9hZF9k
YXRhKSkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgfSBlbHNlIHsKKyAgICAvLyBXZSBoYW5kbGUg
U1RBUC1BIGFuZCBzaW5nbGUgTkFMVSdzIHRoZSBzYW1lIHdheSBoZXJlLiBUaGUgaml0dGVyIGJ1
ZmZlcgorICAgIC8vIHdpbGwgZGVwYWNrZXRpemUgdGhlIFNUQVAtQSBpbnRvIE5BTCB1bml0cyBs
YXRlci4KKyAgICAvLyBUT0RPKHNwcmFuZyk6IFBhcnNlIFNUQVAtQSBvZmZzZXRzIGhlcmUgYW5k
IHN0b3JlIGluIGZyYWdtZW50YXRpb24gdmVjLgorICAgIGlmICghUHJvY2Vzc0FwT3JTaW5nbGVO
YWx1KHBhcnNlZF9wYXlsb2FkLCBwYXlsb2FkX2RhdGEpKQorICAgICAgcmV0dXJuIGZhbHNlOwor
ICB9CisKKyAgY29uc3QgdWludDhfdCogcGF5bG9hZCA9CisgICAgICBtb2RpZmllZF9idWZmZXJf
ID8gbW9kaWZpZWRfYnVmZmVyXy0+ZGF0YSgpIDogcGF5bG9hZF9kYXRhOworCisgIHBhcnNlZF9w
YXlsb2FkLT5wYXlsb2FkID0gcGF5bG9hZCArIG9mZnNldF87CisgIHBhcnNlZF9wYXlsb2FkLT5w
YXlsb2FkX2xlbmd0aCA9IGxlbmd0aF87CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJ0cERl
cGFja2V0aXplckgyNjU6OlByb2Nlc3NBcE9yU2luZ2xlTmFsdSgKKyAgICBSdHBEZXBhY2tldGl6
ZXI6OlBhcnNlZFBheWxvYWQqIHBhcnNlZF9wYXlsb2FkLAorICAgIGNvbnN0IHVpbnQ4X3QqIHBh
eWxvYWRfZGF0YSkgeworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyKCkud2lkdGggPSAw
OworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyKCkuaGVpZ2h0ID0gMDsKKyAgcGFyc2Vk
X3BheWxvYWQtPnZpZGVvX2hlYWRlcigpLmNvZGVjID0ga1ZpZGVvQ29kZWNIMjY1OworICBwYXJz
ZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyKCkuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lID0gdHJ1
ZTsKKyAgYXV0byYgaDI2NV9oZWFkZXIgPSBhYnNsOjpnZXQ8UlRQVmlkZW9IZWFkZXJIMjY1PigK
KyAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIoKS52aWRlb190eXBlX2hlYWRlcik7
CisKKyAgY29uc3QgdWludDhfdCogbmFsdV9zdGFydCA9IHBheWxvYWRfZGF0YSArIGtIZXZjTmFs
SGVhZGVyU2l6ZTsKKyAgY29uc3Qgc2l6ZV90IG5hbHVfbGVuZ3RoID0gbGVuZ3RoXyAtIGtIZXZj
TmFsSGVhZGVyU2l6ZTsKKyAgdWludDhfdCBuYWxfdHlwZSA9IChwYXlsb2FkX2RhdGFbMF0gJiBr
SGV2Y1R5cGVNYXNrKSA+PiAxOworICBzdGQ6OnZlY3RvcjxzaXplX3Q+IG5hbHVfc3RhcnRfb2Zm
c2V0czsKKyAgaWYgKG5hbF90eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprQVApIHsKKyAgICAvLyBT
a2lwIHRoZSBTdGFwQSBoZWFkZXIgKFN0YXBBIE5BTCB0eXBlICsgbGVuZ3RoKS4KKyAgICBpZiAo
bGVuZ3RoXyA8PSBrSGV2Y0FwSGVhZGVyU2l6ZSkgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikg
PDwgIkFQIGhlYWRlciB0cnVuY2F0ZWQuIjsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisK
KyAgICBpZiAoIVBhcnNlQXBTdGFydE9mZnNldHMobmFsdV9zdGFydCwgbmFsdV9sZW5ndGgsICZu
YWx1X3N0YXJ0X29mZnNldHMpKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiQVAgcGFj
a2V0IHdpdGggaW5jb3JyZWN0IE5BTFUgcGFja2V0IGxlbmd0aHMuIjsKKyAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICBoMjY1X2hlYWRlci5wYWNrZXRpemF0aW9uX3R5cGUgPSBrSDI2
NUFQOworICAgIC8vIG5hbF90eXBlID0gKHBheWxvYWRfZGF0YVtrSGV2Y0FwSGVhZGVyU2l6ZV0g
JiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICB9IGVsc2UgeworICAgIGgyNjVfaGVhZGVyLnBhY2tl
dGl6YXRpb25fdHlwZSA9IGtIMjY1U2luZ2xlTmFsdTsKKyAgICBuYWx1X3N0YXJ0X29mZnNldHMu
cHVzaF9iYWNrKDApOworICB9CisgIGgyNjVfaGVhZGVyLm5hbHVfdHlwZSA9IG5hbF90eXBlOwor
ICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyKCkuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVU
eXBlOjprVmlkZW9GcmFtZURlbHRhOworCisgIG5hbHVfc3RhcnRfb2Zmc2V0cy5wdXNoX2JhY2so
bGVuZ3RoXyArIGtIZXZjTGVuZ3RoRmllbGRTaXplKTsgIC8vIEVuZCBvZmZzZXQuCisgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbmFsdV9zdGFydF9vZmZzZXRzLnNpemUoKSAtIDE7ICsraSkgewor
ICAgIHNpemVfdCBzdGFydF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29mZnNldHNbaV07CisgICAgLy8g
RW5kIG9mZnNldCBpcyBhY3R1YWxseSBzdGFydCBvZmZzZXQgZm9yIG5leHQgdW5pdCwgZXhjbHVk
aW5nIGxlbmd0aCBmaWVsZAorICAgIC8vIHNvIHJlbW92ZSB0aGF0IGZyb20gdGhpcyB1bml0cyBs
ZW5ndGguCisgICAgc2l6ZV90IGVuZF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29mZnNldHNbaSArIDFd
IC0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAgaWYgKGVuZF9vZmZzZXQgLSBzdGFydF9vZmZz
ZXQgPCBrSGV2Y05hbEhlYWRlclNpemUpIHsgIC8vIFNhbWUgYXMgSC4yNjQuCisgICAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiQVAgcGFja2V0IHRvbyBzaG9ydCI7CisgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgSDI2NU5hbHVJbmZvIG5hbHU7CisgICAgbmFsdS50eXBlID0gKHBh
eWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdICYga0hldmNUeXBlTWFzaykgPj4gMTsKKyAgICBuYWx1
LnZwc19pZCA9IC0xOworICAgIG5hbHUuc3BzX2lkID0gLTE7CisgICAgbmFsdS5wcHNfaWQgPSAt
MTsKKyAgICBzdGFydF9vZmZzZXQgKz0ga0hldmNOYWxIZWFkZXJTaXplOworICAgIHN3aXRjaCAo
bmFsdS50eXBlKSB7CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprVnBzOiB7CisgICAgICAg
IGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiB2cHMgPSBIMjY1VnBzUGFy
c2VyOjpQYXJzZVZwcygKKyAgICAgICAgICAgICZwYXlsb2FkX2RhdGFbc3RhcnRfb2Zmc2V0XSwg
ZW5kX29mZnNldCAtIHN0YXJ0X29mZnNldCk7CisgICAgICAgIGlmICh2cHMpIHsKKyAgICAgICAg
ICBuYWx1LnZwc19pZCA9IHZwcy0+aWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgUlRD
X0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUyBpZCBmcm9tIFZQUyBzbGlj
ZS4iOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1
OjpOYWx1VHlwZTo6a1NwczogeworICAgICAgICAvLyBDaGVjayBpZiBWVUkgaXMgcHJlc2VudCBp
biBTUFMgYW5kIGlmIGl0IG5lZWRzIHRvIGJlIG1vZGlmaWVkIHRvCisgICAgICAgIC8vIGF2b2lk
IGV4Y2Vzc2l2ZSBkZWNvZGVyIGxhdGVuY3kuCisKKyAgICAgICAgLy8gQ29weSBhbnkgcHJldmlv
dXMgZGF0YSBmaXJzdCAobGlrZWx5IGp1c3QgdGhlIGZpcnN0IGhlYWRlcikuCisgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gb3V0cHV0X2J1ZmZlcihuZXcgcnRjOjpCdWZmZXIo
KSk7CisgICAgICAgIGlmIChzdGFydF9vZmZzZXQpCisgICAgICAgICAgb3V0cHV0X2J1ZmZlci0+
QXBwZW5kRGF0YShwYXlsb2FkX2RhdGEsIHN0YXJ0X29mZnNldCk7CisKKyAgICAgICAgYWJzbDo6
b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IHNwcyA9IEgyNjVTcHNQYXJzZXI6OlBh
cnNlU3BzKAorICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdLCBlbmRfb2Zm
c2V0IC0gc3RhcnRfb2Zmc2V0KTsKKworICAgICAgICBpZiAoc3BzKSB7CisgICAgICAgICAgcGFy
c2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlcigpLndpZHRoID0gc3BzLT53aWR0aDsKKyAgICAgICAg
ICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyKCkuaGVpZ2h0ID0gc3BzLT5oZWlnaHQ7Cisg
ICAgICAgICAgbmFsdS5zcHNfaWQgPSBzcHMtPmlkOworICAgICAgICAgIG5hbHUudnBzX2lkID0g
c3BzLT52cHNfaWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJO
SU5HKQorICAgICAgICAgICAgICA8PCAiRmFpbGVkIHRvIHBhcnNlIFNQUyBhbmQgVlBTIGlkIGZy
b20gU1BTIHNsaWNlLiI7CisgICAgICAgIH0KKyAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVv
X2hlYWRlcigpLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVLZXk7Cisg
ICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1Bwczog
eworICAgICAgICB1aW50MzJfdCBwcHNfaWQ7CisgICAgICAgIHVpbnQzMl90IHNwc19pZDsKKyAg
ICAgICAgaWYgKEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRzKCZwYXlsb2FkX2RhdGFbc3RhcnRf
b2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9vZmZz
ZXQgLSBzdGFydF9vZmZzZXQsICZwcHNfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmc3BzX2lkKSkgeworICAgICAgICAgIG5hbHUucHBzX2lkID0gcHBzX2lkOwor
ICAgICAgICAgIG5hbHUuc3BzX2lkID0gc3BzX2lkOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBwYXJz
ZSBQUFMgaWQgYW5kIFNQUyBpZCBmcm9tIFBQUyBzbGljZS4iOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkcldSYWRsOgor
ICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McDoKKyAgICAgIGNhc2UgSDI2NTo6TmFs
dVR5cGU6OmtDcmE6CisgICAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIoKS5mcmFt
ZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICAgICAgICBSVENfRkFM
TFRIUk9VR0goKTsKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtUcmFpbE46CisgICAgICBj
YXNlIEgyNjU6Ok5hbHVUeXBlOjprVHJhaWxSOiB7CisgICAgICAgIGFic2w6Om9wdGlvbmFsPHVp
bnQzMl90PiBwcHNfaWQgPQorICAgICAgICAgICAgSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJZEZy
b21TbGljZVNlZ21lbnRMYXllclJic3AoCisgICAgICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtz
dGFydF9vZmZzZXRdLCBlbmRfb2Zmc2V0IC0gc3RhcnRfb2Zmc2V0LAorICAgICAgICAgICAgICAg
IG5hbHUudHlwZSk7CisgICAgICAgIGlmIChwcHNfaWQpIHsKKyAgICAgICAgICBuYWx1LnBwc19p
ZCA9ICpwcHNfaWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJO
SU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFBQUyBpZCBmcm9tIHNsaWNlIG9mIHR5cGU6ICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHN0YXRpY19jYXN0PGludD4obmFsdS50eXBl
KTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAgIC8vIFNsaWNlcyBi
ZWxvdyBkb24ndCBjb250YWluIFNQUyBvciBQUFMgaWRzLgorICAgICAgY2FzZSBIMjY1OjpOYWx1
VHlwZTo6a0F1ZDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtUc2FOOgorICAgICAgY2Fz
ZSBIMjY1OjpOYWx1VHlwZTo6a1RzYVI6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3Rz
YU46CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3RzYVI6CisgICAgICBjYXNlIEgyNjU6
Ok5hbHVUeXBlOjprUmFkbE46CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUmFkbFI6Cisg
ICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprQmxhV0xwOgorICAgICAgY2FzZSBIMjY1OjpOYWx1
VHlwZTo6a0JsYVdSYWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1ByZWZpeFNlaToK
KyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtTdWZmaXhTZWk6CisgICAgICAgIGJyZWFrOwor
ICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0FQOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a0ZVOgorICAgICAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJVbmV4cGVjdGVkIEFQIG9y
IEZVIHJlY2VpdmVkLiI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAo
aDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoID09IGtNYXhOYWx1c1BlclBhY2tldCkgeworICAgICAg
UlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgIDw8ICJSZWNlaXZlZCBwYWNrZXQgY29udGFp
bmluZyBtb3JlIHRoYW4gIiA8PCBrTWF4TmFsdXNQZXJQYWNrZXQKKyAgICAgICAgICA8PCAiIE5B
TCB1bml0cy4gV2lsbCBub3Qga2VlcCB0cmFjayBzcHMgYW5kIHBwcyBpZHMgZm9yIGFsbCBvZiB0
aGVtLiI7CisgICAgfSBlbHNlIHsKKyAgICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVy
Lm5hbHVzX2xlbmd0aCsrXSA9IG5hbHU7CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQor
Citib29sIFJ0cERlcGFja2V0aXplckgyNjU6OlBhcnNlRnVOYWx1KAorICAgIFJ0cERlcGFja2V0
aXplcjo6UGFyc2VkUGF5bG9hZCogcGFyc2VkX3BheWxvYWQsCisgICAgY29uc3QgdWludDhfdCog
cGF5bG9hZF9kYXRhKSB7CisgIGlmIChsZW5ndGhfIDwga0hldmNGdUhlYWRlclNpemUgKyBrSGV2
Y05hbEhlYWRlclNpemUpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRlUgTkFMIHVuaXRz
IHRydW5jYXRlZC4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICB1aW50OF90IGYgPSBwYXls
b2FkX2RhdGFbMF0gJiBrSGV2Y0ZCaXQ7CisgIHVpbnQ4X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRf
ZGF0YVswXSAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1aW50OF90IGxheWVyX2lkX2xfdW5zaGlm
dGVkID0gcGF5bG9hZF9kYXRhWzFdICYga0hldmNMYXllcklETE1hc2s7CisgIHVpbnQ4X3QgdGlk
ID0gcGF5bG9hZF9kYXRhWzFdICYga0hldmNUSURNYXNrOworCisgIHVpbnQ4X3Qgb3JpZ2luYWxf
bmFsX3R5cGUgPSBwYXlsb2FkX2RhdGFbMl0gJiBrSGV2Y1R5cGVNYXNrSW5GdUhlYWRlcjsKKyAg
Ym9vbCBmaXJzdF9mcmFnbWVudCA9IHBheWxvYWRfZGF0YVsyXSAmIGtIZXZjU0JpdDsKKyAgSDI2
NU5hbHVJbmZvIG5hbHU7CisgIG5hbHUudHlwZSA9IG9yaWdpbmFsX25hbF90eXBlOworICBuYWx1
LnZwc19pZCA9IC0xOworICBuYWx1LnNwc19pZCA9IC0xOworICBuYWx1LnBwc19pZCA9IC0xOwor
ICBpZiAoZmlyc3RfZnJhZ21lbnQpIHsKKyAgICBvZmZzZXRfID0gMTsKKyAgICBsZW5ndGhfIC09
IDE7CisgICAgYWJzbDo6b3B0aW9uYWw8dWludDMyX3Q+IHBwc19pZCA9CisgICAgICAgIEgyNjVQ
cHNQYXJzZXI6OlBhcnNlUHBzSWRGcm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAgICAgICAg
ICAgcGF5bG9hZF9kYXRhICsga0hldmNOYWxIZWFkZXJTaXplICsga0hldmNGdUhlYWRlclNpemUs
CisgICAgICAgICAgICBsZW5ndGhfIC0ga0hldmNGdUhlYWRlclNpemUsIG5hbHUudHlwZSk7Cisg
ICAgaWYgKHBwc19pZCkgeworICAgICAgbmFsdS5wcHNfaWQgPSAqcHBzX2lkOworICAgIH0gZWxz
ZSB7CisgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAgICAgICAgPDwgIkZhaWxlZCB0byBw
YXJzZSBQUFMgZnJvbSBmaXJzdCBmcmFnbWVudCBvZiBGVSBOQUwgIgorICAgICAgICAgICAgICJ1
bml0IHdpdGggb3JpZ2luYWwgdHlwZTogIgorICAgICAgICAgIDw8IHN0YXRpY19jYXN0PGludD4o
bmFsdS50eXBlKTsKKyAgICB9CisgICAgdWludDhfdCogcGF5bG9hZCA9IGNvbnN0X2Nhc3Q8dWlu
dDhfdCo+KHBheWxvYWRfZGF0YSArIG9mZnNldF8pOworICAgIHBheWxvYWRbMF0gPSBmIHwgb3Jp
Z2luYWxfbmFsX3R5cGUgPDwgMSB8IGxheWVyX2lkX2g7CisgICAgcGF5bG9hZFsxXSA9IGxheWVy
X2lkX2xfdW5zaGlmdGVkIHwgdGlkOworICB9IGVsc2UgeworICAgIG9mZnNldF8gPSBrSGV2Y05h
bEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZTsKKyAgICBsZW5ndGhfIC09IChrSGV2Y05h
bEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZSk7CisgIH0KKworICBpZiAob3JpZ2luYWxf
bmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJXUmFkbAorICAgICAgfHwgb3JpZ2luYWxf
bmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJOTHAKKyAgICAgIHx8IG9yaWdpbmFsX25h
bF90eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprQ3JhKSB7CisgICAgcGFyc2VkX3BheWxvYWQtPnZp
ZGVvX2hlYWRlcigpLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVLZXk7
CisgIH0gZWxzZSB7CisgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlcigpLmZyYW1lX3R5
cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVEZWx0YTsKKyAgfQorICBwYXJzZWRfcGF5
bG9hZC0+dmlkZW9faGVhZGVyKCkud2lkdGggPSAwOworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9f
aGVhZGVyKCkuaGVpZ2h0ID0gMDsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlcigpLmNv
ZGVjID0ga1ZpZGVvQ29kZWNIMjY1OworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyKCku
aXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lID0gZmlyc3RfZnJhZ21lbnQ7CisgIGF1dG8mIGgyNjVf
aGVhZGVyID0gYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4oCisgICAgICBwYXJzZWRfcGF5
bG9hZC0+dmlkZW9faGVhZGVyKCkudmlkZW9fdHlwZV9oZWFkZXIpOworICBoMjY1X2hlYWRlci5w
YWNrZXRpemF0aW9uX3R5cGUgPSBrSDI2NUZVOworICBoMjY1X2hlYWRlci5uYWx1X3R5cGUgPSBv
cmlnaW5hbF9uYWxfdHlwZTsKKyAgaWYgKGZpcnN0X2ZyYWdtZW50KSB7CisgICAgaDI2NV9oZWFk
ZXIubmFsdXNbaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoXSA9IG5hbHU7CisgICAgaDI2NV9oZWFk
ZXIubmFsdXNfbGVuZ3RoID0gMTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFt
ZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWI2NGEwZGQ0MmUyYTdjNjQz
Y2YyZWI2ZmNlYmY1NjA1NmUwMGRhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zv
cm1hdF9oMjY1LmgKQEAgLTAsMCArMSwxMjkgQEAKKy8qCisgKiAgSW50ZWwgTGljZW5zZQorICov
CisKKyNpZm5kZWYgV0VCUlRDX01PRFVMRVNfUlRQX1JUQ1BfU09VUkNFX1JUUF9GT1JNQVRfSDI2
NV9IXworI2RlZmluZSBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfUlRQX0ZPUk1BVF9I
MjY1X0hfCisKKyNpbmNsdWRlIDxxdWV1ZT4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSAi
YXBpL2FycmF5X3ZpZXcuaCIKKyNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1v
bl90eXBlcy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQu
aCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfcGFja2V0X3RvX3NlbmQu
aCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0LmgiCisjaW5j
bHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2Jh
bHMuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9j
b25zdHJ1Y3Rvcl9tYWdpYy5oIgorCituYW1lc3BhY2Ugd2VicnRjIHsKKworY2xhc3MgUnRwUGFj
a2V0aXplckgyNjUgOiBwdWJsaWMgUnRwUGFja2V0aXplciB7CisgcHVibGljOgorICAvLyBJbml0
aWFsaXplIHdpdGggcGF5bG9hZCBmcm9tIGVuY29kZXIuCisgIC8vIFRoZSBwYXlsb2FkX2RhdGEg
bXVzdCBiZSBleGFjdGx5IG9uZSBlbmNvZGVkIEguMjY1IGZyYW1lLgorICBSdHBQYWNrZXRpemVy
SDI2NShydGM6OkFycmF5Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2FkLAorICAgICAgICAgICAg
ICAgICAgICBQYXlsb2FkU2l6ZUxpbWl0cyBsaW1pdHMsCisgICAgICAgICAgICAgICAgICAgIEgy
NjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUsCisgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFJUUEZyYWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24pOworCisgICB+
UnRwUGFja2V0aXplckgyNjUoKSBvdmVycmlkZTsKKworICBzaXplX3QgTnVtUGFja2V0cygpIGNv
bnN0IG92ZXJyaWRlOworCisgIC8vIEdldCB0aGUgbmV4dCBwYXlsb2FkIHdpdGggSC4yNjUgcGF5
bG9hZCBoZWFkZXIuCisgIC8vIGJ1ZmZlciBpcyBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIG91dHB1
dCB3aWxsIGJlIHdyaXR0ZW4uCisgIC8vIGJ5dGVzX3RvX3NlbmQgaXMgYW4gb3V0cHV0IHZhcmlh
YmxlIHRoYXQgd2lsbCBjb250YWluIG51bWJlciBvZiBieXRlcworICAvLyB3cml0dGVuIHRvIGJ1
ZmZlci4gVGhlIHBhcmFtZXRlciBsYXN0X3BhY2tldCBpcyB0cnVlIGZvciB0aGUgbGFzdCBwYWNr
ZXQgb2YKKyAgLy8gdGhlIGZyYW1lLCBmYWxzZSBvdGhlcndpc2UgKGkuZS4sIGNhbGwgdGhlIGZ1
bmN0aW9uIGFnYWluIHRvIGdldCB0aGUKKyAgLy8gbmV4dCBwYWNrZXQpLgorICAvLyBSZXR1cm5z
IHRydWUgb24gc3VjY2VzcyBvciBmYWxzZSBpZiB0aGVyZSB3YXMgbm8gcGF5bG9hZCB0byBwYWNr
ZXRpemUuCisgIGJvb2wgTmV4dFBhY2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpIG92
ZXJyaWRlOworCisgcHJpdmF0ZToKKyAgc3RydWN0IFBhY2tldCB7CisgICAgUGFja2V0KHNpemVf
dCBvZmZzZXQsCisgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICBib29sIGZpcnN0
X2ZyYWdtZW50LAorICAgICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAgICAgICAgIGJv
b2wgYWdncmVnYXRlZCwKKyAgICAgICAgICAgdWludDE2X3QgaGVhZGVyKQorICAgICAgICA6IG9m
ZnNldChvZmZzZXQpLAorICAgICAgICAgIHNpemUoc2l6ZSksCisgICAgICAgICAgZmlyc3RfZnJh
Z21lbnQoZmlyc3RfZnJhZ21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQobGFzdF9mcmFn
bWVudCksCisgICAgICAgICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAgICAgICBoZWFk
ZXIoaGVhZGVyKSB7fQorCisgICAgc2l6ZV90IG9mZnNldDsKKyAgICBzaXplX3Qgc2l6ZTsKKyAg
ICBib29sIGZpcnN0X2ZyYWdtZW50OworICAgIGJvb2wgbGFzdF9mcmFnbWVudDsKKyAgICBib29s
IGFnZ3JlZ2F0ZWQ7CisgICAgdWludDE2X3QgaGVhZGVyOyAgLy8gRGlmZmVyZW50IGZyb20gSDI2
NAorICB9OworICBzdHJ1Y3QgRnJhZ21lbnQgeworICAgIEZyYWdtZW50KGNvbnN0IHVpbnQ4X3Qq
IGJ1ZmZlciwgc2l6ZV90IGxlbmd0aCk7CisgICAgZXhwbGljaXQgRnJhZ21lbnQoY29uc3QgRnJh
Z21lbnQmIGZyYWdtZW50KTsKKyAgICBjb25zdCB1aW50OF90KiBidWZmZXIgPSBudWxscHRyOwor
ICAgIHNpemVfdCBsZW5ndGggPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4g
dG1wX2J1ZmZlcjsKKyAgfTsKKyAgc3RydWN0IFBhY2tldFVuaXQgeworICAgIFBhY2tldFVuaXQo
Y29uc3QgRnJhZ21lbnQmIHNvdXJjZV9mcmFnbWVudCwKKyAgICAgICAgICAgICAgIGJvb2wgZmly
c3RfZnJhZ21lbnQsCisgICAgICAgICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAgICAg
ICAgICAgICBib29sIGFnZ3JlZ2F0ZWQsCisgICAgICAgICAgICAgICB1aW50MTZfdCBoZWFkZXIp
CisgICAgICAgIDogc291cmNlX2ZyYWdtZW50KHNvdXJjZV9mcmFnbWVudCksCisgICAgICAgICAg
Zmlyc3RfZnJhZ21lbnQoZmlyc3RfZnJhZ21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQo
bGFzdF9mcmFnbWVudCksCisgICAgICAgICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAg
ICAgICBoZWFkZXIoaGVhZGVyKSB7fQorCisgICAgY29uc3QgRnJhZ21lbnQgc291cmNlX2ZyYWdt
ZW50OworICAgIGJvb2wgZmlyc3RfZnJhZ21lbnQ7CisgICAgYm9vbCBsYXN0X2ZyYWdtZW50Owor
ICAgIGJvb2wgYWdncmVnYXRlZDsKKyAgICB1aW50MTZfdCBoZWFkZXI7CisgIH07CisgIHR5cGVk
ZWYgc3RkOjpxdWV1ZTxQYWNrZXQ+IFBhY2tldFF1ZXVlOworICBzdGQ6OmRlcXVlPEZyYWdtZW50
PiBpbnB1dF9mcmFnbWVudHNfOworICBzdGQ6OnF1ZXVlPFBhY2tldFVuaXQ+IHBhY2tldHNfOwor
CisgIGJvb2wgR2VuZXJhdGVQYWNrZXRzKEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0
aW9uX21vZGUpOworICBib29sIFBhY2tldGl6ZUZ1KHNpemVfdCBmcmFnbWVudF9pbmRleCk7Cisg
IGludCBQYWNrZXRpemVBcChzaXplX3QgZnJhZ21lbnRfaW5kZXgpOworICBib29sIFBhY2tldGl6
ZVNpbmdsZU5hbHUoc2l6ZV90IGZyYWdtZW50X2luZGV4KTsKKworICB2b2lkIE5leHRBZ2dyZWdh
dGVQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0LCBib29sIGxhc3QpOworICB2b2lk
IE5leHRGcmFnbWVudFBhY2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpOworCisgIGNv
bnN0IFBheWxvYWRTaXplTGltaXRzIGxpbWl0c187CisgIHNpemVfdCBudW1fcGFja2V0c19sZWZ0
XzsKKyAgUlRQRnJhZ21lbnRhdGlvbkhlYWRlciBmcmFnbWVudGF0aW9uXzsKKworICBSVENfRElT
QUxMT1dfQ09QWV9BTkRfQVNTSUdOKFJ0cFBhY2tldGl6ZXJIMjY1KTsKK307CisKKy8vIERlcGFj
a2V0aXplciBmb3IgSC4yNjUuCitjbGFzcyBSdHBEZXBhY2tldGl6ZXJIMjY1IDogcHVibGljIFJ0
cERlcGFja2V0aXplciB7CisgcHVibGljOgorICB2aXJ0dWFsIH5SdHBEZXBhY2tldGl6ZXJIMjY1
KCkge30KKworICBib29sIFBhcnNlKFBhcnNlZFBheWxvYWQqIHBhcnNlZF9wYXlsb2FkLAorICAg
ICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSwKKyAgICAgICAgICAgICBzaXpl
X3QgcGF5bG9hZF9kYXRhX2xlbmd0aCkgb3ZlcnJpZGU7CisKKyBwcml2YXRlOgorICBib29sIFBh
cnNlRnVOYWx1KFJ0cERlcGFja2V0aXplcjo6UGFyc2VkUGF5bG9hZCogcGFyc2VkX3BheWxvYWQs
CisgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhKTsKKyAgYm9v
bCBQcm9jZXNzQXBPclNpbmdsZU5hbHUoUnRwRGVwYWNrZXRpemVyOjpQYXJzZWRQYXlsb2FkKiBw
YXJzZWRfcGF5bG9hZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhf
dCogcGF5bG9hZF9kYXRhKTsKKworICBzaXplX3Qgb2Zmc2V0XzsKKyAgc2l6ZV90IGxlbmd0aF87
CisgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gbW9kaWZpZWRfYnVmZmVyXzsKK307Cit9
ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisjZW5kaWYgIC8vIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQ
X1NPVVJDRV9SVFBfRk9STUFUX0gyNjVfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9zZW5k
ZXJfdmlkZW8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVvLmNjCmluZGV4IGQ1Y2FkNDY3
ZDFmZjVhMzIxNjMzYzE1YmM3YzI2MWYzNDc3Nzc5NzQuLjNmYTljZmExNTZlYWU1NTU5NGExMThl
MzcxZDE3NjdkMmJiYTg3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9zZW5kZXJfdmlkZW8u
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy9ydHBfcnRjcC9zb3VyY2UvcnRwX3NlbmRlcl92aWRlby5jYwpAQCAtMjQ4LDYgKzI0OCw4IEBA
IHZvaWQgUlRQU2VuZGVyVmlkZW86OlJlZ2lzdGVyUGF5bG9hZFR5cGUoaW50OF90IHBheWxvYWRf
dHlwZSwKICAgICAgIHZpZGVvX3R5cGUgPSBrVmlkZW9Db2RlY1ZQOTsKICAgICB9IGVsc2UgaWYg
KGFic2w6OkVxdWFsc0lnbm9yZUNhc2UocGF5bG9hZF9uYW1lLCAiSDI2NCIpKSB7CiAgICAgICB2
aWRlb190eXBlID0ga1ZpZGVvQ29kZWNIMjY0OworICAgIH0gZWxzZSBpZiAoYWJzbDo6RXF1YWxz
SWdub3JlQ2FzZShwYXlsb2FkX25hbWUsICJIMjY1IikpIHsKKyAgICAgIHZpZGVvX3R5cGUgPSBr
VmlkZW9Db2RlY0gyNjU7CiAgICAgfSBlbHNlIHsKICAgICAgIHZpZGVvX3R5cGUgPSBrVmlkZW9D
b2RlY0dlbmVyaWM7CiAgICAgfQpAQCAtODYxLDYgKzg2Myw5IEBAIHVpbnQ4X3QgUlRQU2VuZGVy
VmlkZW86OkdldFRlbXBvcmFsSWQoY29uc3QgUlRQVmlkZW9IZWFkZXImIGhlYWRlcikgewogICAg
ICAgcmV0dXJuIHZwOS50ZW1wb3JhbF9pZHg7CiAgICAgfQogICAgIHVpbnQ4X3Qgb3BlcmF0b3Io
KShjb25zdCBSVFBWaWRlb0hlYWRlckgyNjQmKSB7IHJldHVybiBrTm9UZW1wb3JhbElkeDsgfQor
I2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICB1aW50OF90IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlk
ZW9IZWFkZXJIMjY1JikgeyByZXR1cm4ga05vVGVtcG9yYWxJZHg7IH0KKyNlbmRpZgogICAgIHVp
bnQ4X3Qgb3BlcmF0b3IoKShjb25zdCBhYnNsOjptb25vc3RhdGUmKSB7IHJldHVybiBrTm9UZW1w
b3JhbElkeDsgfQogICB9OwogICBzd2l0Y2ggKGhlYWRlci5jb2RlYykgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRj
cC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5o
CmluZGV4IDc4ZjhjNGIyZDE5ODcyYTU1ZWNlMGQ0NmY1NjgyNmQyNWU3OGVhYzUuLmU2ZGFlY2U1
YzA4NDdiNWJhMjJjN2RkODVhZmI1MTI4ZjNlNzMzYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF92aWRlb19oZWFkZXIuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmgKQEAgLTI0
LDE0ICsyNCwyNSBAQAogI2luY2x1ZGUgImFwaS92aWRlby92aWRlb190aW1pbmcuaCIKICNpbmNs
dWRlICJjb21tb25fdHlwZXMuaCIgIC8vIE5PTElOVChidWlsZC9pbmNsdWRlKQogI2luY2x1ZGUg
Im1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgi
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2Nv
ZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1
bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4L2luY2x1ZGUvdnA4X2dsb2JhbHMuaCIKICNpbmNs
dWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA5L2luY2x1ZGUvdnA5X2dsb2JhbHMu
aCIKIAogbmFtZXNwYWNlIHdlYnJ0YyB7CisjaWZuZGVmIERJU0FCTEVfSDI2NQordXNpbmcgUlRQ
VmlkZW9UeXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjptb25vc3RhdGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyVlA4LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlclZQOSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXJI
MjY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hl
YWRlckgyNjU+OworI2Vsc2UKIHVzaW5nIFJUUFZpZGVvVHlwZUhlYWRlciA9IGFic2w6OnZhcmlh
bnQ8YWJzbDo6bW9ub3N0YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSVFBWaWRlb0hlYWRlclZQOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUlRQVmlkZW9IZWFkZXJWUDksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVySDI2ND47CisjZW5kaWYKIAogc3RydWN0IFJUUFZp
ZGVvSGVhZGVyIHsKICAgc3RydWN0IEdlbmVyaWNEZXNjcmlwdG9ySW5mbyB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNz
L2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzBlZWYyMzZjZmU4MmQ1
MmU4M2RkZTVkMjA4NDliOGNjZDhiZjhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNz
L2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogIENv
cHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwg
aW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0
aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5Cisg
KiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNl
IHRyZWUuCisgKi8KKworLy8gVGhpcyBmaWxlIGNvbnRhaW5zIGNvZGVjIGRlcGVuZGVudCBkZWZp
bml0aW9ucyB0aGF0IGFyZSBuZWVkZWQgaW4KKy8vIG9yZGVyIHRvIGNvbXBpbGUgdGhlIFdlYlJU
QyBjb2RlYmFzZSwgZXZlbiBpZiB0aGlzIGNvZGVjIGlzIG5vdCB1c2VkLgorCisjaWZuZGVmIE1P
RFVMRVNfVklERU9fQ09ESU5HX0NPREVDU19IMjY1X0lOQ0xVREVfSDI2NV9HTE9CQUxTX0hfCisj
ZGVmaW5lIE1PRFVMRVNfVklERU9fQ09ESU5HX0NPREVDU19IMjY1X0lOQ0xVREVfSDI2NV9HTE9C
QUxTX0hfCisKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVv
X2NvZGluZy9jb2RlY3MvaDI2NC9pbmNsdWRlL2gyNjRfZ2xvYmFscy5oIgorCituYW1lc3BhY2Ug
d2VicnRjIHsKKworLy8gVGhlIHBhY2tldGl6YXRpb24gdHlwZXMgdGhhdCB3ZSBzdXBwb3J0OiBz
aW5nbGUsIGFnZ3JlZ2F0ZWQsIGFuZCBmcmFnbWVudGVkLgorZW51bSBIMjY1UGFja2V0aXphdGlv
blR5cGVzIHsKKyAga0gyNjVTaW5nbGVOYWx1LCAgLy8gVGhpcyBwYWNrZXQgY29udGFpbnMgYSBz
aW5nbGUgTkFMIHVuaXQuCisgIGtIMjY1QVAsICAgICAgICAgIC8vIFRoaXMgcGFja2V0IGNvbnRh
aW5zIGFnZ3JlZ2F0aW9uIFBhY2tldC4KKyAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBw
YWNrZXQgaGFzIGFuIGFzc29jaWF0ZWQgTkFMIHVuaXQgdHlwZSwKKyAgICAgICAgICAgICAgICAg
ICAgLy8gaXQnbGwgYmUgZm9yIHRoZSBmaXJzdCBzdWNoIGFnZ3JlZ2F0ZWQgcGFja2V0LgorICBr
SDI2NUZVLCAgICAgICAgICAvLyBUaGlzIHBhY2tldCBjb250YWlucyBhIEZVIChmcmFnbWVudGF0
aW9uCisgICAgICAgICAgICAgICAgICAgIC8vIHVuaXQpIHBhY2tldCwgbWVhbmluZyBpdCBpcyBh
IHBhcnQgb2YgYSBmcmFtZQorICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHdhcyB0b28gbGFy
Z2UgdG8gZml0IGludG8gYSBzaW5nbGUgcGFja2V0LgorfTsKKworc3RydWN0IEgyNjVOYWx1SW5m
byB7CisgIHVpbnQ4X3QgdHlwZTsKKyAgaW50IHZwc19pZDsKKyAgaW50IHNwc19pZDsKKyAgaW50
IHBwc19pZDsKK307CisKK2VudW0gY2xhc3MgSDI2NVBhY2tldGl6YXRpb25Nb2RlIHsKKyAgTm9u
SW50ZXJsZWF2ZWQgPSAwLCAgLy8gTW9kZSAxIC0gU1RBUC1BLCBGVS1BIGlzIGFsbG93ZWQKKyAg
U2luZ2xlTmFsVW5pdCAgICAgICAgLy8gTW9kZSAwIC0gb25seSBzaW5nbGUgTkFMVSBhbGxvd2Vk
Cit9OworCitzdHJ1Y3QgUlRQVmlkZW9IZWFkZXJIMjY1IHsKKyAgLy8gVGhlIE5BTCB1bml0IHR5
cGUuIElmIHRoaXMgaXMgYSBoZWFkZXIgZm9yIGEgZnJhZ21lbnRlZCBwYWNrZXQsIGl0J3MgdGhl
CisgIC8vIE5BTCB1bml0IHR5cGUgb2YgdGhlIG9yaWdpbmFsIGRhdGEuIElmIHRoaXMgaXMgdGhl
IGhlYWRlciBmb3IgYW4gYWdncmVnYXRlZAorICAvLyBwYWNrZXQsIGl0J3MgdGhlIE5BTCB1bml0
IHR5cGUgb2YgdGhlIGZpcnN0IE5BTCB1bml0IGluIHRoZSBwYWNrZXQuCisgIHVpbnQ4X3QgbmFs
dV90eXBlOworICBIMjY1UGFja2V0aXphdGlvblR5cGVzIHBhY2tldGl6YXRpb25fdHlwZTsKKyAg
SDI2NU5hbHVJbmZvIG5hbHVzW2tNYXhOYWx1c1BlclBhY2tldF07CisgIHNpemVfdCBuYWx1c19s
ZW5ndGg7CisgIC8vIFRoZSBwYWNrZXRpemF0aW9uIHR5cGUgb2YgdGhpcyBidWZmZXIgLSBzaW5n
bGUsIGFnZ3JlZ2F0ZWQgb3IgZnJhZ21lbnRlZC4KKyAgSDI2NVBhY2tldGl6YXRpb25Nb2RlIHBh
Y2tldGl6YXRpb25fbW9kZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKworI2VuZGlm
CisKKyNlbmRpZiAgLy8gTU9EVUxFU19WSURFT19DT0RJTkdfQ09ERUNTX0gyNjVfSU5DTFVERV9I
MjY1X0dMT0JBTFNfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9tdWx0aXBsZXgvbXVsdGlw
bGV4X2VuY29kZXJfYWRhcHRlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9tdWx0aXBsZXgvbXVsdGlwbGV4
X2VuY29kZXJfYWRhcHRlci5jYwppbmRleCAzMWEwZDUwOWZhMjBmZmM4OGExZGE5YzBjYzc2ZGY1
YjZkMzEwZmJkLi44ZGIwOGIxYmM0NmFiMGIxNGUwMGJkNjNlZDhjZGYxZjJlMWI5Mzc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3ZpZGVvX2NvZGluZy9jb2RlY3MvbXVsdGlwbGV4L211bHRpcGxleF9lbmNvZGVyX2FkYXB0ZXIu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy92aWRlb19jb2RpbmcvY29kZWNzL211bHRpcGxleC9tdWx0aXBsZXhfZW5jb2Rlcl9hZGFwdGVy
LmNjCkBAIC05NSw2ICs5NSwxMiBAQCBpbnQgTXVsdGlwbGV4RW5jb2RlckFkYXB0ZXI6OkluaXRF
bmNvZGUoCiAgICAgICBrZXlfZnJhbWVfaW50ZXJ2YWxfID0gdmlkZW9fY29kZWMuSDI2NCgpLT5r
ZXlGcmFtZUludGVydmFsOwogICAgICAgdmlkZW9fY29kZWMuSDI2NCgpLT5rZXlGcmFtZUludGVy
dmFsID0gMDsKICAgICAgIGJyZWFrOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtW
aWRlb0NvZGVjSDI2NToKKyAgICAgIGtleV9mcmFtZV9pbnRlcnZhbF8gPSB2aWRlb19jb2RlYy5I
MjY1KCktPmtleUZyYW1lSW50ZXJ2YWw7CisgICAgICB2aWRlb19jb2RlYy5IMjY1KCktPmtleUZy
YW1lSW50ZXJ2YWwgPSAwOworICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAg
ICAgYnJlYWs7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2VuY29kZWRfZnJhbWUuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGlu
Zy9lbmNvZGVkX2ZyYW1lLmNjCmluZGV4IGM3YTc0OTA0Yzg4NGZlZjQwYWYyNjNjZjA0OGM0MDU2
MWY3ZWMzMjAuLjRjYmE4NjMxZjZlMmI3MzRmZDljZDE2Yjk4MTE3ZTQ5OWIzNDAzNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL2VuY29kZWRfZnJhbWUuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9mcmFtZS5j
YwpAQCAtMTUzLDYgKzE1MywxMiBAQCB2b2lkIFZDTUVuY29kZWRGcmFtZTo6Q29weUNvZGVjU3Bl
Y2lmaWMoY29uc3QgUlRQVmlkZW9IZWFkZXIqIGhlYWRlcikgewogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOwogICAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgIGNhc2Uga1ZpZGVv
Q29kZWNIMjY1OiB7CisgICAgICAgIF9jb2RlY1NwZWNpZmljSW5mby5jb2RlY1R5cGUgPSBrVmlk
ZW9Db2RlY0gyNjU7CisgICAgICAgIGJyZWFrOworICAgICAgfQorI2VuZGlmCiAgICAgICBkZWZh
dWx0OiB7CiAgICAgICAgIF9jb2RlY1NwZWNpZmljSW5mby5jb2RlY1R5cGUgPSBrVmlkZW9Db2Rl
Y0dlbmVyaWM7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3Bz
X3Bwc190cmFja2VyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjljMzgzNzNkOWY3ZDdkMTAyMmE1YWY2YWFlMGQxYjRlYWM3YjFkODEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MKQEAgLTAsMCArMSwz
MjMgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRo
b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJl
ZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBi
ZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2pl
Y3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSBy
b290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19j
b2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgiCisKKyNpbmNsdWRlIDxzdHJpbmc+Cisj
aW5jbHVkZSA8dXRpbGl0eT4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29t
bW9uLmgiCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNs
dWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21t
b25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8v
aDI2NS9oMjY1X3Zwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9j
b2RlY3MvaDI2NC9pbmNsdWRlL2gyNjRfZ2xvYmFscy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvdmlk
ZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjaW5jbHVkZSAi
bW9kdWxlcy92aWRlb19jb2RpbmcvZnJhbWVfb2JqZWN0LmgiCisjaW5jbHVkZSAibW9kdWxlcy92
aWRlb19jb2RpbmcvcGFja2V0X2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNrcy5o
IgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKworbmFtZXNwYWNlIHdlYnJ0YyB7Citu
YW1lc3BhY2UgdmlkZW9fY29kaW5nIHsKKworbmFtZXNwYWNlIHsKK2NvbnN0IHVpbnQ4X3Qgc3Rh
cnRfY29kZV9oMjY1W10gPSB7MCwgMCwgMCwgMX07Cit9ICAvLyBuYW1lc3BhY2UKKworSDI2NVZw
c1Nwc1Bwc1RyYWNrZXI6OlBhY2tldEFjdGlvbiBIMjY1VnBzU3BzUHBzVHJhY2tlcjo6Q29weUFu
ZEZpeEJpdHN0cmVhbSgKKyAgICBWQ01QYWNrZXQqIHBhY2tldCkgeworICBSVENfRENIRUNLKHBh
Y2tldC0+Y29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjUpOworCisgIGNvbnN0IHVpbnQ4X3QqIGRh
dGEgPSBwYWNrZXQtPmRhdGFQdHI7CisgIGNvbnN0IHNpemVfdCBkYXRhX3NpemUgPSBwYWNrZXQt
PnNpemVCeXRlczsKKyAgY29uc3QgUlRQVmlkZW9IZWFkZXImIHZpZGVvX2hlYWRlciA9IHBhY2tl
dC0+dmlkZW9faGVhZGVyOworICBhdXRvJiBoMjY1X2hlYWRlciA9CisgICAgICBhYnNsOjpnZXQ8
UlRQVmlkZW9IZWFkZXJIMjY1PihwYWNrZXQtPnZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRl
cik7CisKKyAgYm9vbCBhcHBlbmRfdnBzX3Nwc19wcHMgPSBmYWxzZTsKKyAgYXV0byB2cHMgPSB2
cHNfZGF0YV8uZW5kKCk7CisgIGF1dG8gc3BzID0gc3BzX2RhdGFfLmVuZCgpOworICBhdXRvIHBw
cyA9IHBwc19kYXRhXy5lbmQoKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGgyNjVfaGVh
ZGVyLm5hbHVzX2xlbmd0aDsgKytpKSB7CisgICAgY29uc3QgSDI2NU5hbHVJbmZvJiBuYWx1ID0g
aDI2NV9oZWFkZXIubmFsdXNbaV07CisgICAgc3dpdGNoIChuYWx1LnR5cGUpIHsKKyAgICAgIGNh
c2UgSDI2NTo6TmFsdVR5cGU6OmtWcHM6IHsKKyAgICAgICAgdnBzX2RhdGFfW25hbHUudnBzX2lk
XS5zaXplID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5h
bHVUeXBlOjprU3BzOiB7CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0udnBzX2lkID0g
bmFsdS52cHNfaWQ7CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0ud2lkdGggPSBwYWNr
ZXQtPndpZHRoKCk7CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0uaGVpZ2h0ID0gcGFj
a2V0LT5oZWlnaHQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6
Ok5hbHVUeXBlOjprUHBzOiB7CisgICAgICAgIHBwc19kYXRhX1tuYWx1LnBwc19pZF0uc3BzX2lk
ID0gbmFsdS5zcHNfaWQ7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1
OjpOYWx1VHlwZTo6a0lkcldSYWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5M
cDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtDcmE6IHsKKyAgICAgICAgLy8gSWYgdGhp
cyBpcyB0aGUgZmlyc3QgcGFja2V0IG9mIGFuIElEUiwgbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJl
cXVpcmVkCisgICAgICAgIC8vIFNQUy9QUFMgYW5kIGFsc28gY2FsY3VsYXRlIGhvdyBtdWNoIGV4
dHJhIHNwYWNlIHdlIG5lZWQgaW4gdGhlIGJ1ZmZlcgorICAgICAgICAvLyB0byBwcmVwZW5kIHRo
ZSBTUFMvUFBTIHRvIHRoZSBiaXRzdHJlYW0gd2l0aCBzdGFydCBjb2Rlcy4KKyAgICAgICAgaWYg
KHZpZGVvX2hlYWRlci5pc19maXJzdF9wYWNrZXRfaW5fZnJhbWUpIHsKKyAgICAgICAgICBpZiAo
bmFsdS5wcHNfaWQgPT0gLTEpIHsKKyAgICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwg
Ik5vIFBQUyBpZCBpbiBJRFIgbmFsdS4iOworICAgICAgICAgICAgcmV0dXJuIGtSZXF1ZXN0S2V5
ZnJhbWU7CisgICAgICAgICAgfQorCisgICAgICAgICAgcHBzID0gcHBzX2RhdGFfLmZpbmQobmFs
dS5wcHNfaWQpOworICAgICAgICAgIGlmIChwcHMgPT0gcHBzX2RhdGFfLmVuZCgpKSB7CisgICAg
ICAgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAgICAgICAgICAgICAgPDwgIk5vIFBQUyB3
aXRoIGlkICIgPDwgbmFsdS5wcHNfaWQgPDwgIiByZWNlaXZlZCI7CisgICAgICAgICAgICByZXR1
cm4ga1JlcXVlc3RLZXlmcmFtZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBzcHMgPSBzcHNf
ZGF0YV8uZmluZChwcHMtPnNlY29uZC5zcHNfaWQpOworICAgICAgICAgIGlmIChzcHMgPT0gc3Bz
X2RhdGFfLmVuZCgpKSB7CisgICAgICAgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAgICAg
ICAgICAgICAgPDwgIk5vIFNQUyB3aXRoIGlkIDw8ICIgPDwgcHBzLT5zZWNvbmQuc3BzX2lkIDw8
ICIgcmVjZWl2ZWQiOworICAgICAgICAgICAgcmV0dXJuIGtSZXF1ZXN0S2V5ZnJhbWU7CisgICAg
ICAgICAgfQorCisgICAgICAgICAgdnBzID0gdnBzX2RhdGFfLmZpbmQoc3BzLT5zZWNvbmQudnBz
X2lkKTsKKyAgICAgICAgICBpZiAodnBzID09IHZwc19kYXRhXy5lbmQoKSkgeworICAgICAgICAg
ICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgICAgICAgIDw8ICJObyBWUFMgd2l0aCBp
ZCAiIDw8IHNwcy0+c2Vjb25kLnZwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJl
dHVybiBrUmVxdWVzdEtleWZyYW1lOworICAgICAgICAgIH0KKworICAgICAgICAgIC8vIFNpbmNl
IHRoZSBmaXJzdCBwYWNrZXQgb2YgZXZlcnkga2V5ZnJhbWUgc2hvdWxkIGhhdmUgaXRzIHdpZHRo
IGFuZAorICAgICAgICAgIC8vIGhlaWdodCBzZXQgd2Ugc2V0IGl0IGhlcmUgaW4gdGhlIGNhc2Ug
b2YgaXQgYmVpbmcgc3VwcGxpZWQgb3V0IG9mCisgICAgICAgICAgLy8gYmFuZC4KKyAgICAgICAg
ICBwYWNrZXQtPnZpZGVvX2hlYWRlci53aWR0aCA9IHNwcy0+c2Vjb25kLndpZHRoOworICAgICAg
ICAgIHBhY2tldC0+dmlkZW9faGVhZGVyLmhlaWdodCA9IHNwcy0+c2Vjb25kLmhlaWdodDsKKwor
ICAgICAgICAgIC8vIElmIHRoZSBWUFMvU1BTL1BQUyB3YXMgc3VwcGxpZWQgb3V0IG9mIGJhbmQg
dGhlbiB3ZSB3aWxsIGhhdmUgc2F2ZWQKKyAgICAgICAgICAvLyB0aGUgYWN0dWFsIGJpdHN0cmVh
bSBpbiB8ZGF0YXwuCisgICAgICAgICAgLy8gVGhpcyBicmFuY2ggaXMgbm90IHZlcmlmaWVkLgor
ICAgICAgICAgIGlmICh2cHMtPnNlY29uZC5kYXRhICYmIHNwcy0+c2Vjb25kLmRhdGEgJiYgcHBz
LT5zZWNvbmQuZGF0YSkgeworICAgICAgICAgICAgUlRDX0RDSEVDS19HVCh2cHMtPnNlY29uZC5z
aXplLCAwKTsKKyAgICAgICAgICAgIFJUQ19EQ0hFQ0tfR1Qoc3BzLT5zZWNvbmQuc2l6ZSwgMCk7
CisgICAgICAgICAgICBSVENfRENIRUNLX0dUKHBwcy0+c2Vjb25kLnNpemUsIDApOworICAgICAg
ICAgICAgYXBwZW5kX3Zwc19zcHNfcHBzID0gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
KyAgICB9CisgIH0KKworICBSVENfQ0hFQ0soIWFwcGVuZF92cHNfc3BzX3BwcyB8fAorICAgICAg
ICAgICAgKHNwcyAhPSBzcHNfZGF0YV8uZW5kKCkgJiYgcHBzICE9IHBwc19kYXRhXy5lbmQoKSkp
OworCisgIC8vIENhbGN1bGF0ZSBob3cgbXVjaCBzcGFjZSB3ZSBuZWVkIGZvciB0aGUgcmVzdCBv
ZiB0aGUgYml0c3RyZWFtLgorICBzaXplX3QgcmVxdWlyZWRfc2l6ZSA9IDA7CisKKyAgaWYgKGFw
cGVuZF92cHNfc3BzX3BwcykgeworICAgIHJlcXVpcmVkX3NpemUgKz0gdnBzLT5zZWNvbmQuc2l6
ZSArIHNpemVvZihzdGFydF9jb2RlX2gyNjUpOworICAgIHJlcXVpcmVkX3NpemUgKz0gc3BzLT5z
ZWNvbmQuc2l6ZSArIHNpemVvZihzdGFydF9jb2RlX2gyNjUpOworICAgIHJlcXVpcmVkX3NpemUg
Kz0gcHBzLT5zZWNvbmQuc2l6ZSArIHNpemVvZihzdGFydF9jb2RlX2gyNjUpOworICB9CisKKyAg
aWYgKGgyNjVfaGVhZGVyLnBhY2tldGl6YXRpb25fdHlwZSA9PSBrSDI2NUFQKSB7CisgICAgY29u
c3QgdWludDhfdCogbmFsdV9wdHIgPSBkYXRhICsgMTsKKyAgICB3aGlsZSAobmFsdV9wdHIgPCBk
YXRhICsgZGF0YV9zaXplKSB7CisgICAgICBSVENfRENIRUNLKHZpZGVvX2hlYWRlci5pc19maXJz
dF9wYWNrZXRfaW5fZnJhbWUpOworICAgICAgcmVxdWlyZWRfc2l6ZSArPSBzaXplb2Yoc3RhcnRf
Y29kZV9oMjY1KTsKKworICAgICAgLy8gVGhlIGZpcnN0IHR3byBieXRlcyBkZXNjcmliZSB0aGUg
bGVuZ3RoIG9mIGEgc2VnbWVudC4KKyAgICAgIHVpbnQxNl90IHNlZ21lbnRfbGVuZ3RoID0gbmFs
dV9wdHJbMF0gPDwgOCB8IG5hbHVfcHRyWzFdOworICAgICAgbmFsdV9wdHIgKz0gMjsKKworICAg
ICAgcmVxdWlyZWRfc2l6ZSArPSBzZWdtZW50X2xlbmd0aDsKKyAgICAgIG5hbHVfcHRyICs9IHNl
Z21lbnRfbGVuZ3RoOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICBpZiAodmlkZW9faGVhZGVyLmlz
X2ZpcnN0X3BhY2tldF9pbl9mcmFtZSkKKyAgICAgIHJlcXVpcmVkX3NpemUgKz0gc2l6ZW9mKHN0
YXJ0X2NvZGVfaDI2NSk7CisgICAgcmVxdWlyZWRfc2l6ZSArPSBkYXRhX3NpemU7CisgIH0KKwor
ICAvLyBUaGVuIHdlIGNvcHkgdG8gdGhlIG5ldyBidWZmZXIuCisgIHVpbnQ4X3QqIGJ1ZmZlciA9
IG5ldyB1aW50OF90W3JlcXVpcmVkX3NpemVdOworICB1aW50OF90KiBpbnNlcnRfYXQgPSBidWZm
ZXI7CisKKyAgaWYgKGFwcGVuZF92cHNfc3BzX3BwcykgeworICAgIC8vIEluc2VydCBWUFMuCisg
ICAgbWVtY3B5KGluc2VydF9hdCwgc3RhcnRfY29kZV9oMjY1LCBzaXplb2Yoc3RhcnRfY29kZV9o
MjY1KSk7CisgICAgaW5zZXJ0X2F0ICs9IHNpemVvZihzdGFydF9jb2RlX2gyNjUpOworICAgIG1l
bWNweShpbnNlcnRfYXQsIHZwcy0+c2Vjb25kLmRhdGEuZ2V0KCksIHZwcy0+c2Vjb25kLnNpemUp
OworICAgIGluc2VydF9hdCArPSB2cHMtPnNlY29uZC5zaXplOworCisgICAgLy8gSW5zZXJ0IFNQ
Uy4KKyAgICBtZW1jcHkoaW5zZXJ0X2F0LCBzdGFydF9jb2RlX2gyNjUsIHNpemVvZihzdGFydF9j
b2RlX2gyNjUpKTsKKyAgICBpbnNlcnRfYXQgKz0gc2l6ZW9mKHN0YXJ0X2NvZGVfaDI2NSk7Cisg
ICAgbWVtY3B5KGluc2VydF9hdCwgc3BzLT5zZWNvbmQuZGF0YS5nZXQoKSwgc3BzLT5zZWNvbmQu
c2l6ZSk7CisgICAgaW5zZXJ0X2F0ICs9IHNwcy0+c2Vjb25kLnNpemU7CisKKyAgICAvLyBJbnNl
cnQgUFBTLgorICAgIG1lbWNweShpbnNlcnRfYXQsIHN0YXJ0X2NvZGVfaDI2NSwgc2l6ZW9mKHN0
YXJ0X2NvZGVfaDI2NSkpOworICAgIGluc2VydF9hdCArPSBzaXplb2Yoc3RhcnRfY29kZV9oMjY1
KTsKKyAgICBtZW1jcHkoaW5zZXJ0X2F0LCBwcHMtPnNlY29uZC5kYXRhLmdldCgpLCBwcHMtPnNl
Y29uZC5zaXplKTsKKyAgICBpbnNlcnRfYXQgKz0gcHBzLT5zZWNvbmQuc2l6ZTsKKworICAgIC8v
IFVwZGF0ZSBjb2RlYyBoZWFkZXIgdG8gcmVmbGVjdCB0aGUgbmV3bHkgYWRkZWQgU1BTIGFuZCBQ
UFMuCisgICAgSDI2NU5hbHVJbmZvIHZwc19pbmZvOworICAgIHZwc19pbmZvLnR5cGUgPSBIMjY1
OjpOYWx1VHlwZTo6a1ZwczsKKyAgICB2cHNfaW5mby52cHNfaWQgPSB2cHMtPmZpcnN0OworICAg
IHZwc19pbmZvLnNwc19pZCA9IC0xOworICAgIHZwc19pbmZvLnBwc19pZCA9IC0xOworICAgIEgy
NjVOYWx1SW5mbyBzcHNfaW5mbzsKKyAgICBzcHNfaW5mby50eXBlID0gSDI2NTo6TmFsdVR5cGU6
OmtTcHM7CisgICAgc3BzX2luZm8udnBzX2lkID0gdnBzLT5maXJzdDsKKyAgICBzcHNfaW5mby5z
cHNfaWQgPSBzcHMtPmZpcnN0OworICAgIHNwc19pbmZvLnBwc19pZCA9IC0xOworICAgIEgyNjVO
YWx1SW5mbyBwcHNfaW5mbzsKKyAgICBwcHNfaW5mby50eXBlID0gSDI2NTo6TmFsdVR5cGU6OmtQ
cHM7CisgICAgcHBzX2luZm8udnBzX2lkID0gdnBzLT5maXJzdDsKKyAgICBwcHNfaW5mby5zcHNf
aWQgPSBzcHMtPmZpcnN0OworICAgIHBwc19pbmZvLnBwc19pZCA9IHBwcy0+Zmlyc3Q7CisgICAg
aWYgKGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCArIDIgPD0ga01heE5hbHVzUGVyUGFja2V0KSB7
CisgICAgICBoMjY1X2hlYWRlci5uYWx1c1toMjY1X2hlYWRlci5uYWx1c19sZW5ndGgrK10gPSB2
cHNfaW5mbzsKKyAgICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0
aCsrXSA9IHNwc19pbmZvOworICAgICAgaDI2NV9oZWFkZXIubmFsdXNbaDI2NV9oZWFkZXIubmFs
dXNfbGVuZ3RoKytdID0gcHBzX2luZm87CisgICAgfSBlbHNlIHsKKyAgICAgIFJUQ19MT0coTFNf
V0FSTklORykgPDwgIk5vdCBlbm91Z2ggc3BhY2UgaW4gSC4yNjUgY29kZWMgaGVhZGVyIHRvIGlu
c2VydCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTUFMvUFBTIHByb3ZpZGVkIG91
dC1vZi1iYW5kLiI7CisgICAgfQorICB9CisKKyAgLy8gQ29weSB0aGUgcmVzdCBvZiB0aGUgYml0
c3RyZWFtIGFuZCBpbnNlcnQgc3RhcnQgY29kZXMuCisgIGlmIChoMjY1X2hlYWRlci5wYWNrZXRp
emF0aW9uX3R5cGUgPT0ga0gyNjVBUCkgeworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfcHRyID0g
ZGF0YSArIDE7CisgICAgd2hpbGUgKG5hbHVfcHRyIDwgZGF0YSArIGRhdGFfc2l6ZSkgeworICAg
ICAgbWVtY3B5KGluc2VydF9hdCwgc3RhcnRfY29kZV9oMjY1LCBzaXplb2Yoc3RhcnRfY29kZV9o
MjY1KSk7CisgICAgICBpbnNlcnRfYXQgKz0gc2l6ZW9mKHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAg
ICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21l
bnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBu
YWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHNpemVfdCBjb3B5X2Vu
ZCA9IG5hbHVfcHRyIC0gZGF0YSArIHNlZ21lbnRfbGVuZ3RoOworICAgICAgaWYgKGNvcHlfZW5k
ID4gZGF0YV9zaXplKSB7CisgICAgICAgIGRlbGV0ZVtdIGJ1ZmZlcjsKKyAgICAgICAgcmV0dXJu
IGtEcm9wOworICAgICAgfQorCisgICAgICBtZW1jcHkoaW5zZXJ0X2F0LCBuYWx1X3B0ciwgc2Vn
bWVudF9sZW5ndGgpOworICAgICAgaW5zZXJ0X2F0ICs9IHNlZ21lbnRfbGVuZ3RoOworICAgICAg
bmFsdV9wdHIgKz0gc2VnbWVudF9sZW5ndGg7CisgICAgfQorICB9IGVsc2UgeworICAgIGlmICh2
aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSB7CisgICAgICBtZW1jcHkoaW5z
ZXJ0X2F0LCBzdGFydF9jb2RlX2gyNjUsIHNpemVvZihzdGFydF9jb2RlX2gyNjUpKTsKKyAgICAg
IGluc2VydF9hdCArPSBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICB9CisgICAgbWVtY3B5
KGluc2VydF9hdCwgZGF0YSwgZGF0YV9zaXplKTsKKyAgfQorCisgIHBhY2tldC0+ZGF0YVB0ciA9
IGJ1ZmZlcjsKKyAgcGFja2V0LT5zaXplQnl0ZXMgPSByZXF1aXJlZF9zaXplOworICByZXR1cm4g
a0luc2VydDsKK30KKwordm9pZCBIMjY1VnBzU3BzUHBzVHJhY2tlcjo6SW5zZXJ0VnBzU3BzUHBz
TmFsdXMoCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywKKyAgICBjb25zdCBz
dGQ6OnZlY3Rvcjx1aW50OF90PiYgc3BzLAorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+
JiBwcHMpIHsKKyAgY29uc3RleHByIHNpemVfdCBrTmFsdUhlYWRlck9mZnNldCA9IDE7CisgIGlm
ICh2cHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5J
TkcpIDw8ICJWUFMgc2l6ZSAgIiA8PCB2cHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIK
KyAgICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVy
bjsKKyAgfQorICBpZiAoKHZwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtT
cHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2lu
ZyI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChzcHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZz
ZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgc2l6ZSAgIiA8PCBzcHMuc2l6
ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IGtO
YWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAoKHNwc1swXSAmIDB4N2Up
ID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcp
IDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChw
cHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcp
IDw8ICJQUFMgc2l6ZSAgIiA8PCBwcHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsK
KyAgfQorICBpZiAoKHBwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtQcHMp
IHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7
CisgICAgcmV0dXJuOworICB9CisgIGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0
YXRlPiBwYXJzZWRfdnBzID0gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAgICB2cHMuZGF0
YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHZwcy5zaXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7
CisgIGFic2w6Om9wdGlvbmFsPEgyNjVTcHNQYXJzZXI6OlNwc1N0YXRlPiBwYXJzZWRfc3BzID0g
SDI2NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAgICBzcHMuZGF0YSgpICsga05hbHVIZWFkZXJP
ZmZzZXQsIHNwcy5zaXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisgIGFic2w6Om9wdGlvbmFs
PEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBwYXJzZWRfcHBzID0gSDI2NVBwc1BhcnNlcjo6UGFy
c2VQcHMoCisgICAgICBwcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHBwcy5zaXplKCkg
LSBrTmFsdUhlYWRlck9mZnNldCk7CisKKyAgaWYgKCFwYXJzZWRfdnBzKSB7CisgICAgUlRDX0xP
RyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUy4iOworICB9CisKKyAgaWYgKCFw
YXJzZWRfc3BzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNl
IFNQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfcHBzKSB7CisgICAgUlRDX0xPRyhMU19XQVJO
SU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFBQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfdnBz
IHx8ICFwYXJzZWRfcHBzIHx8ICFwYXJzZWRfc3BzKSB7CisgICAgcmV0dXJuOworICB9CisKKyAg
VnBzSW5mbyB2cHNfaW5mbzsKKyAgdnBzX2luZm8uc2l6ZSA9IHZwcy5zaXplKCk7CisgIHVpbnQ4
X3QqIHZwc19kYXRhID0gbmV3IHVpbnQ4X3RbdnBzX2luZm8uc2l6ZV07CisgIG1lbWNweSh2cHNf
ZGF0YSwgdnBzLmRhdGEoKSwgdnBzX2luZm8uc2l6ZSk7CisgIHZwc19pbmZvLmRhdGEucmVzZXQo
dnBzX2RhdGEpOworICB2cHNfZGF0YV9bcGFyc2VkX3Zwcy0+aWRdID0gc3RkOjptb3ZlKHZwc19p
bmZvKTsKKworICBTcHNJbmZvIHNwc19pbmZvOworICBzcHNfaW5mby5zaXplID0gc3BzLnNpemUo
KTsKKyAgc3BzX2luZm8ud2lkdGggPSBwYXJzZWRfc3BzLT53aWR0aDsKKyAgc3BzX2luZm8uaGVp
Z2h0ID0gcGFyc2VkX3Nwcy0+aGVpZ2h0OworICBzcHNfaW5mby52cHNfaWQgPSBwYXJzZWRfc3Bz
LT52cHNfaWQ7CisgIHVpbnQ4X3QqIHNwc19kYXRhID0gbmV3IHVpbnQ4X3Rbc3BzX2luZm8uc2l6
ZV07CisgIG1lbWNweShzcHNfZGF0YSwgc3BzLmRhdGEoKSwgc3BzX2luZm8uc2l6ZSk7CisgIHNw
c19pbmZvLmRhdGEucmVzZXQoc3BzX2RhdGEpOworICBzcHNfZGF0YV9bcGFyc2VkX3Nwcy0+aWRd
ID0gc3RkOjptb3ZlKHNwc19pbmZvKTsKKworICBQcHNJbmZvIHBwc19pbmZvOworICBwcHNfaW5m
by5zaXplID0gcHBzLnNpemUoKTsKKyAgcHBzX2luZm8uc3BzX2lkID0gcGFyc2VkX3Bwcy0+c3Bz
X2lkOworICB1aW50OF90KiBwcHNfZGF0YSA9IG5ldyB1aW50OF90W3Bwc19pbmZvLnNpemVdOwor
ICBtZW1jcHkocHBzX2RhdGEsIHBwcy5kYXRhKCksIHBwc19pbmZvLnNpemUpOworICBwcHNfaW5m
by5kYXRhLnJlc2V0KHBwc19kYXRhKTsKKyAgcHBzX2RhdGFfW3BhcnNlZF9wcHMtPmlkXSA9IHN0
ZDo6bW92ZShwcHNfaW5mbyk7CisKKyAgUlRDX0xPRyhMU19JTkZPKSA8PCAiSW5zZXJ0ZWQgU1BT
IGlkICIgPDwgcGFyc2VkX3Nwcy0+aWQgPDwgIiBhbmQgUFBTIGlkICIKKyAgICAgICAgICAgICAg
ICAgICA8PCBwYXJzZWRfcHBzLT5pZCA8PCAiIChyZWZlcmVuY2luZyBTUFMgIgorICAgICAgICAg
ICAgICAgICAgIDw8IHBhcnNlZF9wcHMtPnNwc19pZCA8PCAiKSI7Cit9CisKK30gIC8vIG5hbWVz
cGFjZSB2aWRlb19jb2RpbmcKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29k
aW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190
cmFja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UzM2Y1YWI4OTQzYThhOWZiOTZmMzY3NDk4YzljZjkyOWFl
NDliNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5o
CkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMg
cHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhh
dCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRz
IGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJp
YnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBm
aWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIE1PRFVM
RVNfVklERU9fQ09ESU5HX0gyNjVfVlBTX1NQU19QUFNfVFJBQ0tFUl9IXworI2RlZmluZSBNT0RV
TEVTX1ZJREVPX0NPRElOR19IMjY1X1ZQU19TUFNfUFBTX1RSQUNLRVJfSF8KKworI2luY2x1ZGUg
PGNzdGRpbnQ+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2
ZWN0b3I+CisKKyNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5o
IgorCituYW1lc3BhY2Ugd2VicnRjIHsKKworY2xhc3MgVkNNUGFja2V0OworCituYW1lc3BhY2Ug
dmlkZW9fY29kaW5nIHsKKworY2xhc3MgSDI2NVZwc1Nwc1Bwc1RyYWNrZXIgeworIHB1YmxpYzoK
KyAgZW51bSBQYWNrZXRBY3Rpb24geyBrSW5zZXJ0LCBrRHJvcCwga1JlcXVlc3RLZXlmcmFtZSB9
OworCisgIFBhY2tldEFjdGlvbiBDb3B5QW5kRml4Qml0c3RyZWFtKFZDTVBhY2tldCogcGFja2V0
KTsKKworICB2b2lkIEluc2VydFZwc1Nwc1Bwc05hbHVzKGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4
X3Q+JiB2cHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8
dWludDhfdD4mIHNwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZl
Y3Rvcjx1aW50OF90PiYgcHBzKTsKKworIHByaXZhdGU6CisgIHN0cnVjdCBWcHNJbmZvIHsKKyAg
ICBzaXplX3Qgc2l6ZSA9IDA7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gZGF0YTsK
KyAgfTsKKworICBzdHJ1Y3QgUHBzSW5mbyB7CisgICAgaW50IHNwc19pZCA9IC0xOworICAgIHNp
emVfdCBzaXplID0gMDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBkYXRhOworICB9
OworCisgIHN0cnVjdCBTcHNJbmZvIHsKKyAgICBpbnQgdnBzX2lkID0gLTE7CisgICAgc2l6ZV90
IHNpemUgPSAwOworICAgIGludCB3aWR0aCA9IC0xOworICAgIGludCBoZWlnaHQgPSAtMTsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBkYXRhOworICB9OworCisgIHN0ZDo6bWFwPHVp
bnQzMl90LCBWcHNJbmZvPiB2cHNfZGF0YV87CisgIHN0ZDo6bWFwPHVpbnQzMl90LCBQcHNJbmZv
PiBwcHNfZGF0YV87CisgIHN0ZDo6bWFwPHVpbnQzMl90LCBTcHNJbmZvPiBzcHNfZGF0YV87Cit9
OworCit9ICAvLyBuYW1lc3BhY2UgdmlkZW9fY29kaW5nCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRj
CisKKyNlbmRpZiAgLy8gTU9EVUxFU19WSURFT19DT0RJTkdfSDI2NF9TUFNfUFBTX1RSQUNLRVJf
SF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L21vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNlLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oCmluZGV4IGU2NmRlYTdhOTU5ZTAy
YTg5MTk4NDBjOWNjYmI4YTVmOGFjNTA4MTQuLmViYmIxMjVlN2QwOWRkMmQwMWQ5NjE4MjllMzc3
NzQ0NzkzZjlhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJm
YWNlLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaApAQCAtMTks
NiArMTksOSBAQAogI2luY2x1ZGUgImFwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oIgog
I2luY2x1ZGUgImNvbW1vbl92aWRlby9nZW5lcmljX2ZyYW1lX2Rlc2NyaXB0b3IvZ2VuZXJpY19m
cmFtZV9pbmZvLmgiCiAjaW5jbHVkZSAibW9kdWxlcy9pbmNsdWRlL21vZHVsZV9jb21tb25fdHlw
ZXMuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2Rp
bmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNlbmRpZgogI2luY2x1ZGUg
Im1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKICNpbmNs
dWRlICJydGNfYmFzZS9zeXN0ZW0vcnRjX2V4cG9ydC5oIgogCkBAIC04OSwxMCArOTIsMTggQEAg
c3RydWN0IENvZGVjU3BlY2lmaWNJbmZvSDI2NCB7CiB9Owogc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3BvZDxDb2RlY1NwZWNpZmljSW5mb0gyNjQ+Ojp2YWx1ZSwgIiIpOwogCisjaWZuZGVmIERJU0FC
TEVfSDI2NQorc3RydWN0IENvZGVjU3BlY2lmaWNJbmZvSDI2NSB7CisgIEgyNjVQYWNrZXRpemF0
aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGU7CisgIGJvb2wgaWRyX2ZyYW1lOworfTsKKyNlbmRp
ZgorCiB1bmlvbiBDb2RlY1NwZWNpZmljSW5mb1VuaW9uIHsKICAgQ29kZWNTcGVjaWZpY0luZm9W
UDggVlA4OwogICBDb2RlY1NwZWNpZmljSW5mb1ZQOSBWUDk7CiAgIENvZGVjU3BlY2lmaWNJbmZv
SDI2NCBIMjY0OworICBDb2RlY1NwZWNpZmljSW5mb0gyNjUgSDI2NTsKIH07CiBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfcG9kPENvZGVjU3BlY2lmaWNJbmZvVW5pb24+Ojp2YWx1ZSwgIiIpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9qaXR0ZXJfYnVmZmVyX2NvbW1vbi5oIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvaml0dGVyX2J1
ZmZlcl9jb21tb24uaAppbmRleCA2Y2NmZTM5MTk5NTRmOGQwOWJiNTM3ZTRhZDkxNzYxZWZhNTFh
MDlmLi41NDkyZWU1YjQxZjM2MGU3YzViYzUxMTA2MDQzN2ViZGVmOTIzYzI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9qaXR0ZXJfYnVmZmVyX2NvbW1vbi5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJf
Y29tbW9uLmgKQEAgLTU0LDYgKzU0LDkgQEAgZW51bSBWQ01GcmFtZUJ1ZmZlclN0YXRlRW51bSB7
CiB9OwogCiBlbnVtIHsga0gyNjRTdGFydENvZGVMZW5ndGhCeXRlcyA9IDQgfTsKKyNpZm5kZWYg
RElTQUJMRV9IMjY1CitlbnVtIHsga0gyNjVTdGFydENvZGVMZW5ndGhCeXRlcyA9IDQgfTsKKyNl
bmRpZgogfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwogCiAjZW5kaWYgIC8vIE1PRFVMRVNfVklERU9f
Q09ESU5HX0pJVFRFUl9CVUZGRVJfQ09NTU9OX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9wYWNrZXQuY2MKaW5kZXggMGM0YTY1OGI4ZjIwMzQ5MTZjMTg1MzQ2ZTRiODE0
MjJjY2ZlOGY4Zi4uYzMyZjg5MGY0N2NjYzE4M2ZhMjMwZjg2YjA4OWJiYTEzOWMxYjBiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy92aWRlb19jb2RpbmcvcGFja2V0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYwpAQCAtNDQsOCAr
NDQsMTMgQEAgVkNNUGFja2V0OjpWQ01QYWNrZXQoY29uc3QgdWludDhfdCogcHRyLAogICAgICAg
bWFya2VyQml0KHJ0cF9oZWFkZXIubWFya2VyQml0KSwKICAgICAgIHRpbWVzTmFja2VkKC0xKSwK
ICAgICAgIGNvbXBsZXRlTkFMVShrTmFsdUluY29tcGxldGUpLAorI2lmbmRlZiBESVNBQkxFX0gy
NjUKKyAgICAgIGluc2VydFN0YXJ0Q29kZSgodmlkZW9IZWFkZXIuY29kZWMgPT0ga1ZpZGVvQ29k
ZWNIMjY0IHx8IHZpZGVvSGVhZGVyLmNvZGVjID09IGtWaWRlb0NvZGVjSDI2NSkgJiYKKyAgICAg
ICAgICAgICAgICAgICAgICB2aWRlb0hlYWRlci5pc19maXJzdF9wYWNrZXRfaW5fZnJhbWUpLAor
I2Vsc2UKICAgICAgIGluc2VydFN0YXJ0Q29kZSh2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9D
b2RlY0gyNjQgJiYKICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0hlYWRlci5pc19maXJzdF9w
YWNrZXRfaW5fZnJhbWUpLAorI2VuZGlmCiAgICAgICB2aWRlb19oZWFkZXIodmlkZW9IZWFkZXIp
LAogICAgICAgcGFja2V0X2luZm8ocnRwX2hlYWRlciwgcmVjZWl2ZV90aW1lX21zKSB7CiAgIGlm
IChpc19maXJzdF9wYWNrZXRfaW5fZnJhbWUoKSAmJiBtYXJrZXJCaXQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9f
Y29kaW5nL3BhY2tldF9idWZmZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjCmluZGV4IGNh
ZTg5NzlhZTEzNjBmNDc0MGUzZTY5MTZiYzVlNmJjY2M2Y2NjZmQuLjE5ZjgwYThkMzE5NWY3Y2Q3
OGE1NWNmYTlhZmRiYWIwNGZhMDQ3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy92aWRlb19jb2RpbmcvcGFja2V0X2J1ZmZlci5jYwpAQCAtMTksOCArMTksMTQgQEAKICNpbmNs
dWRlICJhYnNsL3R5cGVzL3ZhcmlhbnQuaCIKICNpbmNsdWRlICJhcGkvdmlkZW8vZW5jb2RlZF9m
cmFtZS5oIgogI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9u
LmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfdmlkZW9f
aGVhZGVyLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5j
bHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9k
dWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2ZyYW1lX29iamVjdC5oIgogI2lu
Y2x1ZGUgInJ0Y19iYXNlL2F0b21pY19vcHMuaCIKICNpbmNsdWRlICJydGNfYmFzZS9jaGVja3Mu
aCIKQEAgLTMyNCw2ICszMzAsMTUgQEAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ0cEZy
YW1lT2JqZWN0Pj4gUGFja2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAgICAgYm9vbCBoYXNfaDI2
NF9pZHIgPSBmYWxzZTsKICAgICAgIGJvb2wgaXNfaDI2NF9rZXlmcmFtZSA9IGZhbHNlOwogCisg
ICAgICBib29sIGlzX2gyNjUgPSBmYWxzZTsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAgICBp
c19oMjY1ID0gZGF0YV9idWZmZXJfW3N0YXJ0X2luZGV4XS5jb2RlYygpID09IGtWaWRlb0NvZGVj
SDI2NTsKKyAgICAgIGJvb2wgaGFzX2gyNjVfc3BzID0gZmFsc2U7CisgICAgICBib29sIGhhc19o
MjY1X3BwcyA9IGZhbHNlOworICAgICAgYm9vbCBoYXNfaDI2NV9pZHIgPSBmYWxzZTsKKyAgICAg
IGJvb2wgaXNfaDI2NV9rZXlmcmFtZSA9IGZhbHNlOworI2VuZGlmCisgICAgICAgIAogICAgICAg
d2hpbGUgKHRydWUpIHsKICAgICAgICAgKyt0ZXN0ZWRfcGFja2V0czsKICAgICAgICAgZnJhbWVf
c2l6ZSArPSBkYXRhX2J1ZmZlcl9bc3RhcnRfaW5kZXhdLnNpemVCeXRlczsKQEAgLTM0Myw3ICsz
NTgsNyBAQCBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UnRwRnJhbWVPYmplY3Q+PiBQYWNr
ZXRCdWZmZXI6OkZpbmRGcmFtZXMoCiAgICAgICAgIC8vIG9yZGVyIGFmdGVyd2FyZHMuCiAgICAg
ICAgIHBhY2tldF9pbmZvcy5wdXNoX2JhY2soZGF0YV9idWZmZXJfW3N0YXJ0X2luZGV4XS5wYWNr
ZXRfaW5mbyk7CiAKLSAgICAgICAgaWYgKCFpc19oMjY0ICYmIHNlcXVlbmNlX2J1ZmZlcl9bc3Rh
cnRfaW5kZXhdLmZyYW1lX2JlZ2luKQorICAgICAgICBpZiAoIWlzX2gyNjQgJiYgIWlzX2gyNjUg
JiYgc2VxdWVuY2VfYnVmZmVyX1tzdGFydF9pbmRleF0uZnJhbWVfYmVnaW4pCiAgICAgICAgICAg
YnJlYWs7CiAKICAgICAgICAgaWYgKGlzX2gyNjQgJiYgIWlzX2gyNjRfa2V5ZnJhbWUpIHsKQEAg
LTM2Nyw3ICszODIsMjggQEAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ0cEZyYW1lT2Jq
ZWN0Pj4gUGFja2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAgICAgICAgICAgaXNfaDI2NF9rZXlm
cmFtZSA9IHRydWU7CiAgICAgICAgICAgfQogICAgICAgICB9Ci0KKyNpZm5kZWYgRElTQUJMRV9I
MjY1CisgICAgICAgIGlmIChpc19oMjY1ICYmICFpc19oMjY1X2tleWZyYW1lKSB7CisgICAgICAg
ICAgY29uc3QgYXV0byogaDI2NV9oZWFkZXIgPSBhYnNsOjpnZXRfaWY8UlRQVmlkZW9IZWFkZXJI
MjY1PigKKyAgICAgICAgICAgICAgJmRhdGFfYnVmZmVyX1tzdGFydF9pbmRleF0udmlkZW9faGVh
ZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKKyAgICAgICAgICBpZiAoIWgyNjVfaGVhZGVyIHx8IGgy
NjVfaGVhZGVyLT5uYWx1c19sZW5ndGggPj0ga01heE5hbHVzUGVyUGFja2V0KQorICAgICAgICAg
ICAgcmV0dXJuIGZvdW5kX2ZyYW1lczsKKyAgICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8
IGgyNjVfaGVhZGVyLT5uYWx1c19sZW5ndGg7ICsraikgeworICAgICAgICAgICAgaWYgKGgyNjVf
aGVhZGVyLT5uYWx1c1tqXS50eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprU3BzKSB7CisgICAgICAg
ICAgICAgIGhhc19oMjY1X3NwcyA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGgyNjVf
aGVhZGVyLT5uYWx1c1tqXS50eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprUHBzKSB7CisgICAgICAg
ICAgICAgIGhhc19oMjY1X3BwcyA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGgyNjVf
aGVhZGVyLT5uYWx1c1tqXS50eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprSWRyV1JhZGwKKyAgICAg
ICAgICAgICAgICAgICAgICAgfHwgaDI2NV9oZWFkZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6
TmFsdVR5cGU6OmtJZHJOTHAKKyAgICAgICAgICAgICAgICAgICAgICAgfHwgaDI2NV9oZWFkZXIt
Pm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtDcmEpIHsKKyAgICAgICAgICAgICAg
aGFzX2gyNjVfaWRyID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAg
ICAgaWYgKChoYXNfaDI2NV9zcHMgJiYgaGFzX2gyNjVfcHBzKSB8fCBoYXNfaDI2NV9pZHIpIHsK
KyAgICAgICAgICAgIGlzX2gyNjVfa2V5ZnJhbWUgPSB0cnVlOworICAgICAgICAgIH0KKyAgICAg
ICAgfQorI2VuZGlmCiAgICAgICAgIGlmICh0ZXN0ZWRfcGFja2V0cyA9PSBzaXplXykKICAgICAg
ICAgICBicmVhazsKIApAQCAtMzc5LDcgKzQxNSw3IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAg
Ly8gdGhlIHRpbWVzdGFtcCBvZiB0aGF0IHBhY2tldCBpcyB0aGUgc2FtZSBhcyB0aGlzIG9uZS4g
VGhpcyBtYXkgY2F1c2UKICAgICAgICAgLy8gdGhlIFBhY2tldEJ1ZmZlciB0byBoYW5kIG91dCBp
bmNvbXBsZXRlIGZyYW1lcy4KICAgICAgICAgLy8gU2VlOiBodHRwczovL2J1Z3MuY2hyb21pdW0u
b3JnL3Avd2VicnRjL2lzc3Vlcy9kZXRhaWw/aWQ9NzEwNgotICAgICAgICBpZiAoaXNfaDI2NCAm
JgorICAgICAgICBpZiAoKGlzX2gyNjQgfHwgaXNfaDI2NSkgJiYKICAgICAgICAgICAgICghc2Vx
dWVuY2VfYnVmZmVyX1tzdGFydF9pbmRleF0udXNlZCB8fAogICAgICAgICAgICAgIGRhdGFfYnVm
ZmVyX1tzdGFydF9pbmRleF0udGltZXN0YW1wICE9IGZyYW1lX3RpbWVzdGFtcCkpIHsKICAgICAg
ICAgICBicmVhazsKQEAgLTQzMiw2ICs0NjgsNDQgQEAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVf
cHRyPFJ0cEZyYW1lT2JqZWN0Pj4gUGFja2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAgICAgICAg
IHJldHVybiBmb3VuZF9mcmFtZXM7CiAgICAgICAgIH0KICAgICAgIH0KKyAKKyNpZm5kZWYgRElT
QUJMRV9IMjY1CisgICAgICBpZiAoaXNfaDI2NSkgeworICAgICAgICAvLyBXYXJuIGlmIHRoaXMg
aXMgYW4gdW5zYWZlIGZyYW1lLgorICAgICAgICBpZiAoaGFzX2gyNjVfaWRyICYmICghaGFzX2gy
NjVfc3BzIHx8ICFoYXNfaDI2NV9wcHMpKSB7CisgICAgICAgICAgc3RkOjpzdHJpbmdzdHJlYW0g
c3M7CisgICAgICAgICAgc3MgPDwgIlJlY2VpdmVkIEguMjY1LUlEUiBmcmFtZSAiCisgICAgICAg
ICAgICAgPDwgIihTUFM6ICIgPDwgaGFzX2gyNjVfc3BzIDw8ICIsIFBQUzogIiA8PCBoYXNfaDI2
NV9wcHMgPDwgIikuICI7CisgICAgICAgICAgc3MgPDwgIlRyZWF0aW5nIGFzIGRlbHRhIGZyYW1l
IHNpbmNlICIKKyAgICAgICAgICAgICAgICAiV2ViUlRDLVNwc1Bwc0lkcklzSDI2NUtleWZyYW1l
IGlzIGFsd2F5cyBlbmFibGVkLiI7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCBz
cy5zdHIoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgZGVjaWRl
ZCB3aGV0aGVyIHRvIHRyZWF0IHRoaXMgZnJhbWUgYXMgYSBrZXkgZnJhbWUKKyAgICAgICAgLy8g
b3IgZGVsdGEgZnJhbWUgaW4gdGhlIGZyYW1lIGJ1ZmZlciwgd2UgdXBkYXRlIHRoZSBmaWVsZCB0
aGF0CisgICAgICAgIC8vIGRldGVybWluZXMgaWYgdGhlIFJ0cEZyYW1lT2JqZWN0IGlzIGEga2V5
IGZyYW1lIG9yIGRlbHRhIGZyYW1lLgorICAgICAgICBjb25zdCBzaXplX3QgZmlyc3RfcGFja2V0
X2luZGV4ID0gc3RhcnRfc2VxX251bSAlIHNpemVfOworICAgICAgICBSVENfQ0hFQ0tfTFQoZmly
c3RfcGFja2V0X2luZGV4LCBzaXplXyk7CisgICAgICAgIGlmIChpc19oMjY1X2tleWZyYW1lKSB7
CisgICAgICAgICAgZGF0YV9idWZmZXJfW2ZpcnN0X3BhY2tldF9pbmRleF0udmlkZW9faGVhZGVy
LmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVLZXk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgZGF0YV9idWZmZXJfW2ZpcnN0X3BhY2tldF9pbmRleF0udmlkZW9f
aGVhZGVyLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVEZWx0YTsKKyAg
ICAgICAgfQorCisgICAgICAgIC8vIElmIHRoaXMgaXMgbm90IGEga2V5IGZyYW1lLCBtYWtlIHN1
cmUgdGhlcmUgYXJlIG5vIGdhcHMgaW4gdGhlCisgICAgICAgIC8vIHBhY2tldCBzZXF1ZW5jZSBu
dW1iZXJzIHVwIHVudGlsIHRoaXMgcG9pbnQuCisgICAgICAgIGlmICghaXNfaDI2NV9rZXlmcmFt
ZSAmJiBtaXNzaW5nX3BhY2tldHNfLnVwcGVyX2JvdW5kKHN0YXJ0X3NlcV9udW0pICE9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZ19wYWNrZXRzXy5iZWdpbigp
KSB7CisgICAgICAgICAgdWludDE2X3Qgc3RvcF9pbmRleCA9IChpbmRleCArIDEpICUgc2l6ZV87
CisgICAgICAgICAgd2hpbGUgKHN0YXJ0X2luZGV4ICE9IHN0b3BfaW5kZXgpIHsKKyAgICAgICAg
ICAgIHNlcXVlbmNlX2J1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1lX2NyZWF0ZWQgPSBmYWxzZTsK
KyAgICAgICAgICAgIHN0YXJ0X2luZGV4ID0gKHN0YXJ0X2luZGV4ICsgMSkgJSBzaXplXzsKKyAg
ICAgICAgICB9CisKKyAgICAgICAgICByZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAgICB9Cisg
ICAgICB9CisjZW5kaWYKIAogICAgICAgbWlzc2luZ19wYWNrZXRzXy5lcmFzZShtaXNzaW5nX3Bh
Y2tldHNfLmJlZ2luKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc3NpbmdfcGFj
a2V0c18udXBwZXJfYm91bmQoc2VxX251bSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9p
bmZvLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNjCmluZGV4IDljYzFkNGE4MzUwZWVlNGE2NTBh
Mzk3YjZiZTVlZGQ3NmRlNzFmNTAuLjJkZDkwZmY5Mzk3NjM3NTlkZjkwZDM1ZDFjZTY5OGQyNDAx
NTczMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Npb25faW5mby5jYworKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNz
aW9uX2luZm8uY2MKQEAgLTE1Myw2ICsxNTMsMjEgQEAgc3RkOjp2ZWN0b3I8TmFsdUluZm8+IFZD
TVNlc3Npb25JbmZvOjpHZXROYWx1SW5mb3MoKSBjb25zdCB7CiAgIH0KICAgcmV0dXJuIG5hbHVf
aW5mb3M7CiB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorc3RkOjp2ZWN0b3I8SDI2NU5hbHVJbmZv
PiBWQ01TZXNzaW9uSW5mbzo6R2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0IHsKKyAgaWYgKHBhY2tl
dHNfLmVtcHR5KCkgfHwgcGFja2V0c18uZnJvbnQoKS52aWRlb19oZWFkZXIuY29kZWMgIT0ga1Zp
ZGVvQ29kZWNIMjY1KQorICAgIHJldHVybiBzdGQ6OnZlY3RvcjxIMjY1TmFsdUluZm8+KCk7Cisg
IHN0ZDo6dmVjdG9yPEgyNjVOYWx1SW5mbz4gbmFsdV9pbmZvczsKKyAgZm9yIChjb25zdCBWQ01Q
YWNrZXQmIHBhY2tldCA6IHBhY2tldHNfKSB7CisgICAgY29uc3QgYXV0byYgaDI2NSA9CisgICAg
ICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlckgyNjU+KHBhY2tldC52aWRlb19oZWFkZXIudmlk
ZW9fdHlwZV9oZWFkZXIpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaDI2NS5uYWx1c19s
ZW5ndGg7ICsraSkgeworICAgICAgbmFsdV9pbmZvcy5wdXNoX2JhY2soaDI2NS5uYWx1c1tpXSk7
CisgICAgfQorICB9CisgIHJldHVybiBuYWx1X2luZm9zOworfQorI2VuZGlmCiAKIHZvaWQgVkNN
U2Vzc2lvbkluZm86OlNldEdvZkluZm8oY29uc3QgR29mSW5mb1ZQOSYgZ29mX2luZm8sIHNpemVf
dCBpZHgpIHsKICAgaWYgKHBhY2tldHNfLmVtcHR5KCkpCkBAIC0yMTIsNiArMjI3LDExIEBAIHNp
emVfdCBWQ01TZXNzaW9uSW5mbzo6SW5zZXJ0QnVmZmVyKHVpbnQ4X3QqIGZyYW1lX2J1ZmZlciwK
ICAgLy8gVE9ETyhwYm9zKTogUmVtb3ZlIEgyNjQgcGFyc2luZyBmcm9tIHRoaXMgc3RlcCBhbmQg
dXNlIGEgZnJhZ21lbnRhdGlvbgogICAvLyBoZWFkZXIgc3VwcGxpZWQgYnkgdGhlIEgyNjQgZGVw
YWNrZXRpemVyLgogICBjb25zdCBzaXplX3Qga0gyNjROQUxIZWFkZXJMZW5ndGhJbkJ5dGVzID0g
MTsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIGNvbnN0IHNpemVfdCBrSDI2NU5BTEhlYWRlckxl
bmd0aEluQnl0ZXMgPSAyOworICBjb25zdCBhdXRvKiBoMjY1ID0KKyAgICAgIGFic2w6OmdldF9p
ZjxSVFBWaWRlb0hlYWRlckgyNjU+KCZwYWNrZXQudmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVh
ZGVyKTsKKyNlbmRpZgogICBjb25zdCBzaXplX3Qga0xlbmd0aEZpZWxkTGVuZ3RoID0gMjsKICAg
Y29uc3QgYXV0byogaDI2NCA9CiAgICAgICBhYnNsOjpnZXRfaWY8UlRQVmlkZW9IZWFkZXJIMjY0
PigmcGFja2V0LnZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CkBAIC0yMzcsNiArMjU3
LDM2IEBAIHNpemVfdCBWQ01TZXNzaW9uSW5mbzo6SW5zZXJ0QnVmZmVyKHVpbnQ4X3QqIGZyYW1l
X2J1ZmZlciwKICAgICBwYWNrZXQuc2l6ZUJ5dGVzID0gcmVxdWlyZWRfbGVuZ3RoOwogICAgIHJl
dHVybiBwYWNrZXQuc2l6ZUJ5dGVzOwogICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBlbHNl
IGlmIChoMjY1ICYmIGgyNjUtPnBhY2tldGl6YXRpb25fdHlwZSA9PSBrSDI2NUFQKSB7CisgICAg
Ly8gU2ltaWxhciB0byBIMjY0LCBmb3IgSDI2NSBhZ2dyZWdhdGlvbiBwYWNrZXRzLCB3ZSByZWx5
IG9uIGppdHRlciBidWZmZXIKKyAgICAvLyB0byByZW1vdmUgdGhlIHR3byBsZW5ndGggYnl0ZXMg
YmV0d2VlbiBlYWNoIE5BTCB1bml0LCBhbmQgcG90ZW50aWFsbHkgYWRkCisgICAgLy8gc3RhcnQg
Y29kZXMuCisgICAgc2l6ZV90IHJlcXVpcmVkX2xlbmd0aCA9IDA7CisgICAgY29uc3QgdWludDhf
dCogbmFsdV9wdHIgPQorICAgICAgICBwYWNrZXRfYnVmZmVyICsga0gyNjVOQUxIZWFkZXJMZW5n
dGhJbkJ5dGVzOyAgLy8gc2tpcCBwYXlsb2FkaGRyCisgICAgd2hpbGUgKG5hbHVfcHRyIDwgcGFj
a2V0X2J1ZmZlciArIHBhY2tldC5zaXplQnl0ZXMpIHsKKyAgICAgIHNpemVfdCBsZW5ndGggPSBC
dWZmZXJUb1VXb3JkMTYobmFsdV9wdHIpOworICAgICAgcmVxdWlyZWRfbGVuZ3RoICs9CisgICAg
ICAgICAgbGVuZ3RoICsgKHBhY2tldC5pbnNlcnRTdGFydENvZGUgPyBrSDI2NVN0YXJ0Q29kZUxl
bmd0aEJ5dGVzIDogMCk7CisgICAgICBuYWx1X3B0ciArPSBrTGVuZ3RoRmllbGRMZW5ndGggKyBs
ZW5ndGg7CisgICAgfQorICAgIFNoaWZ0U3Vic2VxdWVudFBhY2tldHMocGFja2V0X2l0LCByZXF1
aXJlZF9sZW5ndGgpOworICAgIG5hbHVfcHRyID0gcGFja2V0X2J1ZmZlciArIGtIMjY1TkFMSGVh
ZGVyTGVuZ3RoSW5CeXRlczsKKyAgICB1aW50OF90KiBmcmFtZV9idWZmZXJfcHRyID0gZnJhbWVf
YnVmZmVyICsgb2Zmc2V0OworICAgIHdoaWxlIChuYWx1X3B0ciA8IHBhY2tldF9idWZmZXIgKyBw
YWNrZXQuc2l6ZUJ5dGVzKSB7CisgICAgICBzaXplX3QgbGVuZ3RoID0gQnVmZmVyVG9VV29yZDE2
KG5hbHVfcHRyKTsKKyAgICAgIG5hbHVfcHRyICs9IGtMZW5ndGhGaWVsZExlbmd0aDsKKyAgICAg
IC8vIHNpbmNlIEgyNjUgc2hhcmVzIHRoZSBzYW1lIHN0YXJ0IGNvZGUgYXMgSDI2NCwgdXNlIHRo
ZSBzYW1lIEluc2VydAorICAgICAgLy8gZnVuY3Rpb24gdG8gaGFuZGxlIHN0YXJ0IGNvZGUuCisg
ICAgICBmcmFtZV9idWZmZXJfcHRyICs9IEluc2VydChuYWx1X3B0ciwgbGVuZ3RoLCBwYWNrZXQu
aW5zZXJ0U3RhcnRDb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rf
Y2FzdDx1aW50OF90Kj4oZnJhbWVfYnVmZmVyX3B0cikpOworICAgICAgbmFsdV9wdHIgKz0gbGVu
Z3RoOworICAgIH0KKyAgICBwYWNrZXQuc2l6ZUJ5dGVzID0gcmVxdWlyZWRfbGVuZ3RoOworICAg
IHJldHVybiBwYWNrZXQuc2l6ZUJ5dGVzOworICB9CisjZW5kaWYKICAgU2hpZnRTdWJzZXF1ZW50
UGFja2V0cygKICAgICAgIHBhY2tldF9pdCwgcGFja2V0LnNpemVCeXRlcyArCiAgICAgICAgICAg
ICAgICAgICAgICAocGFja2V0Lmluc2VydFN0YXJ0Q29kZSA/IGtIMjY0U3RhcnRDb2RlTGVuZ3Ro
Qnl0ZXMgOiAwKSk7CkBAIC00NjMsNyArNTEzLDIyIEBAIGludCBWQ01TZXNzaW9uSW5mbzo6SW5z
ZXJ0UGFja2V0KGNvbnN0IFZDTVBhY2tldCYgcGFja2V0LAogICAgICAgICAgSXNOZXdlclNlcXVl
bmNlTnVtYmVyKHBhY2tldC5zZXFOdW0sIGxhc3RfcGFja2V0X3NlcV9udW1fKSkpIHsKICAgICAg
IGxhc3RfcGFja2V0X3NlcV9udW1fID0gcGFja2V0LnNlcU51bTsKICAgICB9CisjaWZuZGVmIERJ
U0FCTEVfSDI2NQorICB9IGVsc2UgaWYgKHBhY2tldC5jb2RlYygpID09IGtWaWRlb0NvZGVjSDI2
NSkgeworICAgIGZyYW1lX3R5cGVfID0gcGFja2V0LnZpZGVvX2hlYWRlci5mcmFtZV90eXBlOwor
ICAgIGlmIChwYWNrZXQuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKCkgJiYKKyAgICAgICAgKGZp
cnN0X3BhY2tldF9zZXFfbnVtXyA9PSAtMSB8fAorICAgICAgICAgSXNOZXdlclNlcXVlbmNlTnVt
YmVyKGZpcnN0X3BhY2tldF9zZXFfbnVtXywgcGFja2V0LnNlcU51bSkpKSB7CisgICAgICBmaXJz
dF9wYWNrZXRfc2VxX251bV8gPSBwYWNrZXQuc2VxTnVtOworICAgIH0KKyAgICBpZiAocGFja2V0
Lm1hcmtlckJpdCAmJgorICAgICAgICAobGFzdF9wYWNrZXRfc2VxX251bV8gPT0gLTEgfHwKKyAg
ICAgICAgIElzTmV3ZXJTZXF1ZW5jZU51bWJlcihwYWNrZXQuc2VxTnVtLCBsYXN0X3BhY2tldF9z
ZXFfbnVtXykpKSB7CisgICAgICBsYXN0X3BhY2tldF9zZXFfbnVtXyA9IHBhY2tldC5zZXFOdW07
CisgICAgfQorI2Vsc2UKICAgfSBlbHNlIHsKKyNlbmRpZgogICAgIC8vIE9ubHkgaW5zZXJ0IG1l
ZGlhIHBhY2tldHMgYmV0d2VlbiBmaXJzdCBhbmQgbGFzdCBwYWNrZXRzICh3aGVuCiAgICAgLy8g
YXZhaWxhYmxlKS4KICAgICAvLyBQbGFjaW5nIGNoZWNrIGhlcmUsIGFzIHRvIHByb3Blcmx5IGFj
Y291bnQgZm9yIGR1cGxpY2F0ZSBwYWNrZXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9p
bmZvLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uaAppbmRleCAwNmEzNDhlZjcyMzU0NzcxYjI4Mzg1
ZjlkNmYyNDViYTkwYTcxY2Q5Li5iNzJmOWRmOGIwZTE0NjA3MjE5M2NjNmNlNDUwYzJmODhjNjlm
MWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9u
X2luZm8uaApAQCAtNjUsNiArNjUsOSBAQCBjbGFzcyBWQ01TZXNzaW9uSW5mbyB7CiAgIGludCBU
bDBQaWNJZCgpIGNvbnN0OwogCiAgIHN0ZDo6dmVjdG9yPE5hbHVJbmZvPiBHZXROYWx1SW5mb3Mo
KSBjb25zdDsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0ZDo6dmVjdG9yPEgyNjVOYWx1SW5m
bz4gR2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0OworI2VuZGlmCiAKICAgdm9pZCBTZXRHb2ZJbmZv
KGNvbnN0IEdvZkluZm9WUDkmIGdvZl9pbmZvLCBzaXplX3QgaWR4KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL0JVSUxELmduIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL0JVSUxELmduCmlu
ZGV4IDExNTgyMjk2ZDYzODYwNzQ1ZGI1NmNlYjg4OTAxMzVjZGI1MDczYjQuLjkxMmE3ODhmNmY1
OWQ3MTYwNzY1NWY3YzVmZDk4Y2VjNzgwY2M2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvQlVJTEQuZ24KQEAgLTU2NCw2ICs1
NjQsMTAgQEAgaWYgKGlzX2lvcyB8fCBpc19tYWMpIHsKICAgICAgICAgIm9iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjQubW0iLAogICAgICAgICAib2Jq
Yy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjRQcm9maWxlTGV2ZWxJZC5oIiwKICAgICAg
ICAgIm9iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY0UHJvZmlsZUxldmVsSWQubW0i
LAorICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NS5oIiwKKyAgICAgICAgIm9iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjUubW0iLAorICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIiwKKyAgICAgICAgIm9iamMvY29tcG9uZW50cy92
aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW0iLAogICAgICAgXQogICAgICAgaWYg
KGlzX2lvcykgewogICAgICAgICBzb3VyY2VzICs9IFsKQEAgLTEyNjQsNiArMTI2OCwxMSBAQCBp
ZiAoaXNfaW9zIHx8IGlzX21hYykgewogICAgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NC5oIiwKICAgICAgICAgICAib2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0LmgiLAogICAgICAgICAgICJv
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NC5oIiwKKyAgICAg
ICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5o
IiwKKyAgICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rl
ckZhY3RvcnlIMjY1LmgiLAorICAgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDVmlkZW9EZWNvZGVySDI2NS5oIiwKKyAgICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY1LmgiLAorICAgICAgICAgICJvYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5oIiwKICAgICAgICAgICAi
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiLAog
ICAgICAgICAgICJvYmpjL2hlbHBlcnMvUlRDQ2FtZXJhUHJldmlld1ZpZXcuaCIsCiAgICAgICAg
ICAgIm9iamMvaGVscGVycy9SVENEaXNwYXRjaGVyLmgiLApAQCAtMTQ1OSw2ICsxNDY4LDExIEBA
IGlmIChpc19pb3MgfHwgaXNfbWFjKSB7CiAgICAgICAgICAgIm9iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0LmgiLAogICAgICAgICAgICJvYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQuaCIsCiAgICAgICAgICAg
Im9iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY0LmgiLAorICAg
ICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElk
LmgiLAorICAgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNv
ZGVyRmFjdG9yeUgyNjUuaCIsCisgICAgICAgICAgIm9iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENWaWRlb0RlY29kZXJIMjY1LmgiLAorICAgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaCIsCisgICAgICAgICAgIm9iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1LmgiLAogICAgICAgICAg
ICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIuaCIs
CiAgICAgICAgICAgIm9iamMvaGVscGVycy9SVENEaXNwYXRjaGVyLmgiLAogICAgICAgICBdCkBA
IC0xNjQ4LDYgKzE2NjIsMTQgQEAgaWYgKGlzX2lvcyB8fCBpc19tYWMpIHsKICAgICAgICAgIm9i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tIiwK
ICAgICAgICAgIm9iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY0
LmgiLAogICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2Rl
ckgyNjQubW0iLAorICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVv
RGVjb2RlckZhY3RvcnlIMjY1LmgiLAorICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY1Lm0iLAorICAgICAgICAib2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaCIsCisgICAgICAgICJvYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5tbSIsCisgICAgICAgICJv
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaCIs
CisgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyRmFj
dG9yeUgyNjUubSIsCisgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlk
ZW9FbmNvZGVySDI2NS5oIiwKKyAgICAgICAgIm9iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENWaWRlb0VuY29kZXJIMjY1Lm1tIiwKICAgICAgIF0KIAogICAgICAgY29uZmlncyArPSBbCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
YW5kcm9pZC9hcGkvb3JnL3dlYnJ0Yy9IYXJkd2FyZVZpZGVvRW5jb2RlckZhY3RvcnkuamF2YSBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL2Fw
aS9vcmcvd2VicnRjL0hhcmR3YXJlVmlkZW9FbmNvZGVyRmFjdG9yeS5qYXZhCmluZGV4IDQxOGMy
YWEwODZmZGFhNjU4Zjc5Yzg5MTY3ZGNjNjNhNzI0MDNkNzEuLmY2ZWE1MDEyY2M3OGIyOGZiYWVl
MTMxODIyYTE3MGE0Nzc4YWFhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL2FwaS9vcmcvd2VicnRjL0hhcmR3YXJlVmlk
ZW9FbmNvZGVyRmFjdG9yeS5qYXZhCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL2FwaS9vcmcvd2VicnRjL0hhcmR3YXJlVmlkZW9FbmNv
ZGVyRmFjdG9yeS5qYXZhCkBAIC0xNDAsNyArMTQwLDggQEAgcHVibGljIGNsYXNzIEhhcmR3YXJl
VmlkZW9FbmNvZGVyRmFjdG9yeSBpbXBsZW1lbnRzIFZpZGVvRW5jb2RlckZhY3RvcnkgewogICAg
IC8vIEdlbmVyYXRlIGEgbGlzdCBvZiBzdXBwb3J0ZWQgY29kZWNzIGluIG9yZGVyIG9mIHByZWZl
cmVuY2U6CiAgICAgLy8gVlA4LCBWUDksIEgyNjQgKGhpZ2ggcHJvZmlsZSksIGFuZCBIMjY0IChi
YXNlbGluZSBwcm9maWxlKS4KICAgICBmb3IgKFZpZGVvQ29kZWNUeXBlIHR5cGUgOgotICAgICAg
ICBuZXcgVmlkZW9Db2RlY1R5cGVbXSB7VmlkZW9Db2RlY1R5cGUuVlA4LCBWaWRlb0NvZGVjVHlw
ZS5WUDksIFZpZGVvQ29kZWNUeXBlLkgyNjR9KSB7CisgICAgICAgIG5ldyBWaWRlb0NvZGVjVHlw
ZVtdIHtWaWRlb0NvZGVjVHlwZS5WUDgsIFZpZGVvQ29kZWNUeXBlLlZQOSwgVmlkZW9Db2RlY1R5
cGUuSDI2NCwKKyAgICAgICAgICAgICAgICBWaWRlb0NvZGVjVHlwZS5IMjY1fSkgewogICAgICAg
TWVkaWFDb2RlY0luZm8gY29kZWMgPSBmaW5kQ29kZWNGb3JUeXBlKHR5cGUpOwogICAgICAgaWYg
KGNvZGVjICE9IG51bGwpIHsKICAgICAgICAgU3RyaW5nIG5hbWUgPSB0eXBlLm5hbWUoKTsKQEAg
LTIwMyw2ICsyMDQsOCBAQCBwdWJsaWMgY2xhc3MgSGFyZHdhcmVWaWRlb0VuY29kZXJGYWN0b3J5
IGltcGxlbWVudHMgVmlkZW9FbmNvZGVyRmFjdG9yeSB7CiAgICAgICAgIHJldHVybiBpc0hhcmR3
YXJlU3VwcG9ydGVkSW5DdXJyZW50U2RrVnA5KGluZm8pOwogICAgICAgY2FzZSBIMjY0OgogICAg
ICAgICByZXR1cm4gaXNIYXJkd2FyZVN1cHBvcnRlZEluQ3VycmVudFNka0gyNjQoaW5mbyk7Cisg
ICAgICBjYXNlIEgyNjU6CisgICAgICAgIHJldHVybiBpc0hhcmR3YXJlU3VwcG9ydGVkSW5DdXJy
ZW50U2RrSDI2NShpbmZvKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CkBAIC0yMzgs
NiArMjQxLDE1IEBAIHB1YmxpYyBjbGFzcyBIYXJkd2FyZVZpZGVvRW5jb2RlckZhY3RvcnkgaW1w
bGVtZW50cyBWaWRlb0VuY29kZXJGYWN0b3J5IHsKICAgICAgICAgICAgICAgICYmIEJ1aWxkLlZF
UlNJT04uU0RLX0lOVCA+PSBCdWlsZC5WRVJTSU9OX0NPREVTLkxPTExJUE9QKTsKICAgfQogCisg
IHByaXZhdGUgYm9vbGVhbiBpc0hhcmR3YXJlU3VwcG9ydGVkSW5DdXJyZW50U2RrSDI2NShNZWRp
YUNvZGVjSW5mbyBpbmZvKSB7CisgICAgU3RyaW5nIG5hbWUgPSBpbmZvLmdldE5hbWUoKTsKKyAg
ICAvLyBRQ09NIEgyNjUgZW5jb2RlciBpcyBzdXBwb3J0ZWQgaW4gS0lUS0FUIG9yIGxhdGVyLgor
ICAgIHJldHVybiAobmFtZS5zdGFydHNXaXRoKFFDT01fUFJFRklYKSAmJiBCdWlsZC5WRVJTSU9O
LlNES19JTlQgPj0gQnVpbGQuVkVSU0lPTl9DT0RFUy5LSVRLQVQpCisgICAgICAgICAgIC8vIEV4
eW5vcyBIMjY1IGVuY29kZXIgaXMgc3VwcG9ydGVkIGluIExPTExJUE9QIG9yIGxhdGVyLgorICAg
ICAgICAgICB8fCAobmFtZS5zdGFydHNXaXRoKEVYWU5PU19QUkVGSVgpCisgICAgICAgICAgICAg
ICAmJiBCdWlsZC5WRVJTSU9OLlNES19JTlQgPj0gQnVpbGQuVkVSU0lPTl9DT0RFUy5MT0xMSVBP
UCk7CisgIH0KKwogICBwcml2YXRlIGJvb2xlYW4gaXNNZWRpYUNvZGVjQWxsb3dlZChNZWRpYUNv
ZGVjSW5mbyBpbmZvKSB7CiAgICAgaWYgKGNvZGVjQWxsb3dlZFByZWRpY2F0ZSA9PSBudWxsKSB7
CiAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI1MSw2ICsyNjMsNyBAQCBwdWJsaWMgY2xhc3MgSGFy
ZHdhcmVWaWRlb0VuY29kZXJGYWN0b3J5IGltcGxlbWVudHMgVmlkZW9FbmNvZGVyRmFjdG9yeSB7
CiAgICAgICBjYXNlIFZQOToKICAgICAgICAgcmV0dXJuIDEwMDsKICAgICAgIGNhc2UgSDI2NDoK
KyAgICAgIGNhc2UgSDI2NToKICAgICAgICAgcmV0dXJuIDIwOwogICAgIH0KICAgICB0aHJvdyBu
ZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbnN1cHBvcnRlZCBWaWRlb0NvZGVjVHlwZSAi
ICsgdHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL0hhcmR3YXJlVmlkZW9FbmNv
ZGVyLmphdmEgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
YW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL0hhcmR3YXJlVmlkZW9FbmNvZGVyLmphdmEKaW5k
ZXggYzU2MjBiYzAzOTE0MDQ0NmViZjY4OGNhOTlhM2Q5OWNmMDk2NTRiOC4uYTNmZmFiNGM1MGE4
Njc5NGEzMWJiNzViNTUzNTAzMzU4NGUwZGMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dlYnJ0
Yy9IYXJkd2FyZVZpZGVvRW5jb2Rlci5qYXZhCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qYXZhL29yZy93ZWJydGMvSGFyZHdh
cmVWaWRlb0VuY29kZXIuamF2YQpAQCAtNTE3LDcgKzUxNyw3IEBAIGNsYXNzIEhhcmR3YXJlVmlk
ZW9FbmNvZGVyIGltcGxlbWVudHMgVmlkZW9FbmNvZGVyIHsKICAgICAgICAgfQogCiAgICAgICAg
IGZpbmFsIEJ5dGVCdWZmZXIgZnJhbWVCdWZmZXI7Ci0gICAgICAgIGlmIChpc0tleUZyYW1lICYm
IGNvZGVjVHlwZSA9PSBWaWRlb0NvZGVjVHlwZS5IMjY0KSB7CisgICAgICAgIGlmIChpc0tleUZy
YW1lICYmIChjb2RlY1R5cGUgPT0gVmlkZW9Db2RlY1R5cGUuSDI2NCB8fCBjb2RlY1R5cGUgPT0g
VmlkZW9Db2RlY1R5cGUuSDI2NSkpIHsKICAgICAgICAgICBMb2dnaW5nLmQoVEFHLAogICAgICAg
ICAgICAgICAiUHJlcGVuZGluZyBjb25maWcgZnJhbWUgb2Ygc2l6ZSAiICsgY29uZmlnQnVmZmVy
LmNhcGFjaXR5KCkKICAgICAgICAgICAgICAgICAgICsgIiB0byBvdXRwdXQgYnVmZmVyIHdpdGgg
b2Zmc2V0ICIgKyBpbmZvLm9mZnNldCArICIsIHNpemUgIiArIGluZm8uc2l6ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9p
ZC9zcmMvamF2YS9vcmcvd2VicnRjL01lZGlhQ29kZWNVdGlscy5qYXZhIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dl
YnJ0Yy9NZWRpYUNvZGVjVXRpbHMuamF2YQppbmRleCA0ZDllMTAxMGU3YTg1NmYzZWM1OTQ4MTUw
MWQ0MjJlZjA0MDA2YjM5Li45YzBiZGZiNmM5NjNhMDRmYWNlZTI3MDU4NzRjN2IxN2NhNTZhMWQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL01lZGlhQ29kZWNVdGlscy5qYXZhCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3Ny
Yy9qYXZhL29yZy93ZWJydGMvTWVkaWFDb2RlY1V0aWxzLmphdmEKQEAgLTkxLDYgKzkxLDcgQEAg
Y2xhc3MgTWVkaWFDb2RlY1V0aWxzIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgIGNhc2Ug
VlA4OgogICAgICAgY2FzZSBWUDk6CisgICAgICBjYXNlIEgyNjU6CiAgICAgICAgIHJldHVybiBu
ZXcgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4oKTsKICAgICAgIGNhc2UgSDI2NDoKICAgICAgICAg
cmV0dXJuIEgyNjRVdGlscy5nZXREZWZhdWx0SDI2NFBhcmFtcyhoaWdoUHJvZmlsZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5k
cm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL01lZGlhQ29kZWNWaWRlb0RlY29kZXJGYWN0b3J5Lmph
dmEgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9p
ZC9zcmMvamF2YS9vcmcvd2VicnRjL01lZGlhQ29kZWNWaWRlb0RlY29kZXJGYWN0b3J5LmphdmEK
aW5kZXggODc0OGZmNzhhYTRjMjg3MDExODIxYTZjZDI5Y2I3MDI5NjE0YjA5OS4uMzgxYzFmNDIy
ZTJhNDlhZmMxZDI2MmJiZmY4NTZjZWMxOTQ2ZGY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dl
YnJ0Yy9NZWRpYUNvZGVjVmlkZW9EZWNvZGVyRmFjdG9yeS5qYXZhCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qYXZhL29yZy93
ZWJydGMvTWVkaWFDb2RlY1ZpZGVvRGVjb2RlckZhY3RvcnkuamF2YQpAQCAtNjYsNyArNjYsOCBA
QCBjbGFzcyBNZWRpYUNvZGVjVmlkZW9EZWNvZGVyRmFjdG9yeSBpbXBsZW1lbnRzIFZpZGVvRGVj
b2RlckZhY3RvcnkgewogICAgIC8vIEdlbmVyYXRlIGEgbGlzdCBvZiBzdXBwb3J0ZWQgY29kZWNz
IGluIG9yZGVyIG9mIHByZWZlcmVuY2U6CiAgICAgLy8gVlA4LCBWUDksIEgyNjQgKGhpZ2ggcHJv
ZmlsZSksIGFuZCBIMjY0IChiYXNlbGluZSBwcm9maWxlKS4KICAgICBmb3IgKFZpZGVvQ29kZWNU
eXBlIHR5cGUgOgotICAgICAgICBuZXcgVmlkZW9Db2RlY1R5cGVbXSB7VmlkZW9Db2RlY1R5cGUu
VlA4LCBWaWRlb0NvZGVjVHlwZS5WUDksIFZpZGVvQ29kZWNUeXBlLkgyNjR9KSB7CisgICAgICAg
IG5ldyBWaWRlb0NvZGVjVHlwZVtdIHtWaWRlb0NvZGVjVHlwZS5WUDgsIFZpZGVvQ29kZWNUeXBl
LlZQOSwgVmlkZW9Db2RlY1R5cGUuSDI2NCwKKyAgICAgICAgICAgICAgICBWaWRlb0NvZGVjVHlw
ZS5IMjY1fSkgewogICAgICAgTWVkaWFDb2RlY0luZm8gY29kZWMgPSBmaW5kQ29kZWNGb3JUeXBl
KHR5cGUpOwogICAgICAgaWYgKGNvZGVjICE9IG51bGwpIHsKICAgICAgICAgU3RyaW5nIG5hbWUg
PSB0eXBlLm5hbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qYXZhL29yZy93ZWJydGMvVmlkZW9Db2RlY1R5
cGUuamF2YSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9h
bmRyb2lkL3NyYy9qYXZhL29yZy93ZWJydGMvVmlkZW9Db2RlY1R5cGUuamF2YQppbmRleCAyZDRl
ZjlhZDY0M2I0MWRiMmEyM2RmOWE1NjU1MDEzZDNmNWRiYWU3Li45NTA1YzI2MzNmNmEwNGExYWYz
OWVhMWNjOTFhMTJiMTEzOTBjYzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL1ZpZGVv
Q29kZWNUeXBlLmphdmEKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dlYnJ0Yy9WaWRlb0NvZGVjVHlwZS5qYXZh
CkBAIC0xNCw3ICsxNCw4IEBAIHBhY2thZ2Ugb3JnLndlYnJ0YzsKIGVudW0gVmlkZW9Db2RlY1R5
cGUgewogICBWUDgoInZpZGVvL3gtdm5kLm9uMi52cDgiKSwKICAgVlA5KCJ2aWRlby94LXZuZC5v
bjIudnA5IiksCi0gIEgyNjQoInZpZGVvL2F2YyIpOworICBIMjY0KCJ2aWRlby9hdmMiKSwKKyAg
SDI2NSgidmlkZW8vaGV2YyIpOwogCiAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1pbWVUeXBlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvYW5kcm9pZC9zcmMvam5pL2FuZHJvaWRfbWVkaWFfY29kZWNfY29tbW9uLmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvam5pL2Fu
ZHJvaWRfbWVkaWFfY29kZWNfY29tbW9uLmgKaW5kZXggYmUyZWIxOWJhNjlkYjFlNGFkYzI0NmI2
M2QyNTY4NWM3YTgxOThjYy4uMWYwMjRlZjc4ZTVjODE4MDQwN2ZhM2QxZjE0ZDg0YTYyNzg4NGFi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL2FuZHJvaWQvc3JjL2puaS9hbmRyb2lkX21lZGlhX2NvZGVjX2NvbW1vbi5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9q
bmkvYW5kcm9pZF9tZWRpYV9jb2RlY19jb21tb24uaApAQCAtNTgsNiArNTgsOSBAQCBlbnVtIHsg
a01heFBlbmRpbmdGcmFtZXNWcDggPSAxIH07CiBlbnVtIHsga01heFBlbmRpbmdGcmFtZXNWcDkg
PSAxIH07CiAvLyBNYXhpbXVtIGFtb3VudCBvZiBwZW5kaW5nIGZyYW1lcyBmb3IgSC4yNjQgZGVj
b2Rlci4KIGVudW0geyBrTWF4UGVuZGluZ0ZyYW1lc0gyNjQgPSA0IH07CisvLyBUT0RPKHpoYW5n
aGUpOiB1cGRhdGUgdGhlIHZhbHVlIGFmdGVyIGNoZWNraW5nIG1vcmUgZGV2aWNlcyBpZiBuZWVk
ZWQuCisvLyBNYXhpbXVtIGFtb3VudCBvZiBwZW5kaW5nIGZyYW1lcyBmb3IgSC4yNjUgZGVjb2Rl
ci4KK2VudW0geyBrTWF4UGVuZGluZ0ZyYW1lc0gyNjUgPSA0IH07CiAvLyBNYXhpbXVtIGFtb3Vu
dCBvZiBkZWNvZGVkIGZyYW1lcyBmb3Igd2hpY2ggcGVyLWZyYW1lIGxvZ2dpbmcgaXMgZW5hYmxl
ZC4KIGVudW0geyBrTWF4RGVjb2RlZExvZ0ZyYW1lcyA9IDEwIH07CiAvLyBNYXhpbXVtIGFtb3Vu
dCBvZiBlbmNvZGVkIGZyYW1lcyBmb3Igd2hpY2ggcGVyLWZyYW1lIGxvZ2dpbmcgaXMgZW5hYmxl
ZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9hbmRyb2lkL3NyYy9qbmkvYW5kcm9pZF9tZWRpYV9kZWNvZGVyLmNjIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2puaS9hbmRy
b2lkX21lZGlhX2RlY29kZXIuY2MKaW5kZXggOGUyZTI1ZmE4NmI5NmQxNjAwNjE3NTdkYzI4YzZh
OTBkMTg5YzNkOC4uZjQxMjQ1NTMxYzVhOGYwNDY2NDk5NmU0NTI0YzRlOTZiOTk2NjJkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2Fu
ZHJvaWQvc3JjL2puaS9hbmRyb2lkX21lZGlhX2RlY29kZXIuY2MKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2puaS9hbmRyb2lk
X21lZGlhX2RlY29kZXIuY2MKQEAgLTIzNiw2ICsyMzYsMTEgQEAgaW50MzJfdCBNZWRpYUNvZGVj
VmlkZW9EZWNvZGVyOjpJbml0RGVjb2RlT25Db2RlY1RocmVhZCgpIHsKICAgICBjYXNlIGtWaWRl
b0NvZGVjSDI2NDoKICAgICAgIG1heF9wZW5kaW5nX2ZyYW1lc18gPSBrTWF4UGVuZGluZ0ZyYW1l
c0gyNjQ7CiAgICAgICBicmVhazsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAgY2FzZSBrVmlk
ZW9Db2RlY0gyNjU6CisgICAgICBtYXhfcGVuZGluZ19mcmFtZXNfID0ga01heFBlbmRpbmdGcmFt
ZXNIMjY1OworICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgbWF4X3Bl
bmRpbmdfZnJhbWVzXyA9IDA7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qbmkvYW5kcm9pZF9tZWRpYV9l
bmNvZGVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L2FuZHJvaWQvc3JjL2puaS9hbmRyb2lkX21lZGlhX2VuY29kZXIuY2MKaW5kZXggYTAzNTcwOGNk
Yjk0ZDAzZTFjNDA2ODQ4NzVhNjcwODhjMjkyZjkwNy4uNjE5MDc2ZTE4YmM3YjAyZjBjODAxNmEy
NTU4ZTg0MTc0NDU3YTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2puaS9hbmRyb2lkX21lZGlhX2VuY29kZXIu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2Fu
ZHJvaWQvc3JjL2puaS9hbmRyb2lkX21lZGlhX2VuY29kZXIuY2MKQEAgLTIyLDYgKzIyLDkgQEAK
ICNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NC9oMjY0X2JpdHN0cmVhbV9wYXJzZXIuaCIKICNp
bmNsdWRlICJjb21tb25fdmlkZW8vaDI2NC9oMjY0X2NvbW1vbi5oIgogI2luY2x1ZGUgImNvbW1v
bl92aWRlby9oMjY0L3Byb2ZpbGVfbGV2ZWxfaWQuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1Cisj
aW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNlbmRpZgogI2luY2x1
ZGUgIm1lZGlhL2Jhc2UvY29kZWMuaCIKICNpbmNsdWRlICJtZWRpYS9iYXNlL21lZGlhX2NvbnN0
YW50cy5oIgogI2luY2x1ZGUgIm1lZGlhL2VuZ2luZS9pbnRlcm5hbF9lbmNvZGVyX2ZhY3Rvcnku
aCIKQEAgLTEwODEsNiArMTA4NCwyNCBAQCBib29sIE1lZGlhQ29kZWNWaWRlb0VuY29kZXI6OkRl
bGl2ZXJQZW5kaW5nT3V0cHV0cyhKTklFbnYqIGpuaSkgewogICAgICAgICAgIGhlYWRlci5mcmFn
bWVudGF0aW9uT2Zmc2V0W2ldID0gbmFsdV9pZHhzW2ldLnBheWxvYWRfc3RhcnRfb2Zmc2V0Owog
ICAgICAgICAgIGhlYWRlci5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldID0gbmFsdV9pZHhzW2ldLnBh
eWxvYWRfc2l6ZTsKICAgICAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgIH0gZWxz
ZSBpZiAoY29kZWNfdHlwZSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICAgICAgY29uc3Qgc3Rk
Ojp2ZWN0b3I8SDI2NTo6TmFsdUluZGV4PiBuYWx1X2lkeHMgPQorICAgICAgICAgICAgSDI2NTo6
RmluZE5hbHVJbmRpY2VzKHBheWxvYWQsIHBheWxvYWRfc2l6ZSk7CisgICAgICAgIGlmIChuYWx1
X2lkeHMuZW1wdHkoKSkgeworICAgICAgICAgIEFMT0dFIDw8ICJTdGFydCBjb2RlIGlzIG5vdCBm
b3VuZCEiOworICAgICAgICAgIEFMT0dFIDw8ICJEYXRhOiIgPDwgaW1hZ2UtPmRhdGEoKVswXSA8
PCAiICIgPDwgaW1hZ2UtPmRhdGEoKVsxXSA8PCAiICIKKyAgICAgICAgICAgICAgICA8PCBpbWFn
ZS0+ZGF0YSgpWzJdIDw8ICIgIiA8PCBpbWFnZS0+ZGF0YSgpWzNdIDw8ICIgIgorICAgICAgICAg
ICAgICAgIDw8IGltYWdlLT5kYXRhKClbNF0gPDwgIiAiIDw8IGltYWdlLT5kYXRhKClbNV07Cisg
ICAgICAgICAgUHJvY2Vzc0hXRXJyb3IodHJ1ZSAvKiByZXNldF9pZl9mYWxsYmFja191bmF2YWls
YWJsZSAqLyk7CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGhl
YWRlci5WZXJpZnlBbmRBbGxvY2F0ZUZyYWdtZW50YXRpb25IZWFkZXIobmFsdV9pZHhzLnNpemUo
KSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFsdV9pZHhzLnNpemUoKTsgaSsr
KSB7CisgICAgICAgICAgaGVhZGVyLmZyYWdtZW50YXRpb25PZmZzZXRbaV0gPSBuYWx1X2lkeHNb
aV0ucGF5bG9hZF9zdGFydF9vZmZzZXQ7CisgICAgICAgICAgaGVhZGVyLmZyYWdtZW50YXRpb25M
ZW5ndGhbaV0gPSBuYWx1X2lkeHNbaV0ucGF5bG9hZF9zaXplOworICAgICAgICB9CisjZW5kaWYK
ICAgICAgIH0KIAogICAgICAgY2FsbGJhY2tfcmVzdWx0ID0gY2FsbGJhY2tfLT5PbkVuY29kZWRJ
bWFnZSgqaW1hZ2UsICZpbmZvLCAmaGVhZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qbmkvdmlkZW9fZW5j
b2Rlcl93cmFwcGVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL2FuZHJvaWQvc3JjL2puaS92aWRlb19lbmNvZGVyX3dyYXBwZXIuY2MKaW5kZXggYTEz
YTAxOWU1YTRiNGMxZDg5MmNhNzI3Yzc3Nzc3NTRlZGI3YzFiZi4uMjg5YmZlYzM4YjM0MWJhYjVk
ZmQ5NWI3YTc2ODU1YjdkMTY0YTJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2puaS92aWRlb19lbmNvZGVyX3dy
YXBwZXIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL2FuZHJvaWQvc3JjL2puaS92aWRlb19lbmNvZGVyX3dyYXBwZXIuY2MKQEAgLTMzOCw4ICsz
MzgsMTYgQEAgaW50MzJfdCBWaWRlb0VuY29kZXJXcmFwcGVyOjpIYW5kbGVSZXR1cm5Db2RlKEpO
SUVudiogam5pLAogUlRQRnJhZ21lbnRhdGlvbkhlYWRlciBWaWRlb0VuY29kZXJXcmFwcGVyOjpQ
YXJzZUZyYWdtZW50YXRpb25IZWFkZXIoCiAgICAgcnRjOjpBcnJheVZpZXc8Y29uc3QgdWludDhf
dD4gYnVmZmVyKSB7CiAgIFJUUEZyYWdtZW50YXRpb25IZWFkZXIgaGVhZGVyOworI2lmbmRlZiBE
SVNBQkxFX0gyNjUKKyAgaWYgKGNvZGVjX3NldHRpbmdzXy5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29k
ZWNIMjY0CisgICAgfHwgY29kZWNfc2V0dGluZ3NfLmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY0gy
NjUpIHsKKyAgICBpZiAoY29kZWNfc2V0dGluZ3NfLmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY0gy
NjQpIHsKKyAgICAgIGgyNjRfYml0c3RyZWFtX3BhcnNlcl8uUGFyc2VCaXRzdHJlYW0oYnVmZmVy
LmRhdGEoKSwgYnVmZmVyLnNpemUoKSk7CisgICAgfQorI2Vsc2UKICAgaWYgKGNvZGVjX3NldHRp
bmdzXy5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY0KSB7CiAgICAgaDI2NF9iaXRzdHJlYW1f
cGFyc2VyXy5QYXJzZUJpdHN0cmVhbShidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpKTsKKyNl
bmRpZgogCiAgICAgLy8gRm9yIEguMjY0IHNlYXJjaCBmb3Igc3RhcnQgY29kZXMuCiAgICAgY29u
c3Qgc3RkOjp2ZWN0b3I8SDI2NDo6TmFsdUluZGV4PiBuYWx1X2lkeHMgPQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3Bl
ZXJjb25uZWN0aW9uL1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeStOYXRpdmUuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS9wZWVyY29ubmVj
dGlvbi9SVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkrTmF0aXZlLmgKaW5kZXggN2E1NzY0NWMwZTFj
MjA5M2ZiNzk0YTU0MDVkMDdlMTk0NWM2MzY1OS4uNTE5ZmY3ZWU4YzdkNDQyZTIwZDk2NDczMTEx
ZDVmZTljYTczNTQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JUQ1BlZXJDb25uZWN0aW9u
RmFjdG9yeStOYXRpdmUuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDUGVlckNvbm5lY3Rpb25GYWN0
b3J5K05hdGl2ZS5oCkBAIC0yMiw2ICsyMiw3IEBAIGNsYXNzIE5ldHdvcmtDb250cm9sbGVyRmFj
dG9yeUludGVyZmFjZTsKIGNsYXNzIFZpZGVvRW5jb2RlckZhY3Rvcnk7CiBjbGFzcyBWaWRlb0Rl
Y29kZXJGYWN0b3J5OwogY2xhc3MgQXVkaW9Qcm9jZXNzaW5nOworY2xhc3MgUGVlckNvbm5lY3Rp
b25GYWN0b3J5SW50ZXJmYWNlOwogCiB9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCiAKQEAgLTg3LDYg
Kzg4LDkgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICAgICAgICAgICAgICAgICAgICAgICAg
IGRlY29kZXJGYWN0b3J5OihudWxsYWJsZSBpZDxSVENWaWRlb0RlY29kZXJGYWN0b3J5PilkZWNv
ZGVyRmFjdG9yeQogICAgICAgICAgICAgICAgICBtZWRpYVRyYW5zcG9ydEZhY3Rvcnk6CiAgICAg
ICAgICAgICAgICAgICAgICAoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6TWVkaWFUcmFuc3BvcnRG
YWN0b3J5PiltZWRpYVRyYW5zcG9ydEZhY3Rvcnk7CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aE5hdGl2ZVBlZXJDb25uZWN0aW9uRmFjdG9yeTooCisgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlPilmYWN0b3J5OwogQGVuZAogCiBO
U19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENQZWVyQ29u
bmVjdGlvbkZhY3RvcnkubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5
Lm1tCmluZGV4IGJiNjk1YjU3YzA4MTdkNTE1ZTMwNjNkZDY1MGJiNTg1OTg4NzUzYWEuLmQzYjBl
N2Y0YjE2NzkwMWNjMTRlZTg5ZTM5N2ZhODhkMTUzYzZkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS9wZWVyY29ubmVj
dGlvbi9SVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JUQ1Bl
ZXJDb25uZWN0aW9uRmFjdG9yeS5tbQpAQCAtMjQwLDYgKzI0MCwxMyBAQAogICB9CiAgIHJldHVy
biBzZWxmOwogfQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTmF0aXZlUGVlckNvbm5lY3Rpb25G
YWN0b3J5OgorICAgIChydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZh
Y3RvcnlJbnRlcmZhY2U+KWZhY3RvcnkgeworICBpZiAoc2VsZiA9IFtzZWxmIGluaXROYXRpdmVd
KSB7CisgICAgX25hdGl2ZUZhY3RvcnkgPSBmYWN0b3J5OworICB9CisgIHJldHVybiBzZWxmOwor
fQogCiAtIChSVENBdWRpb1NvdXJjZSAqKWF1ZGlvU291cmNlV2l0aENvbnN0cmFpbnRzOihudWxs
YWJsZSBSVENNZWRpYUNvbnN0cmFpbnRzICopY29uc3RyYWludHMgewogICBzdGQ6OnVuaXF1ZV9w
dHI8d2VicnRjOjpNZWRpYUNvbnN0cmFpbnRzPiBuYXRpdmVDb25zdHJhaW50czsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMjJkMzU5NGY1NTdmN2I3NWZmNjdmOTQyN2JiNDYxYjBjOWJhNWNlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJp
dmF0ZS5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJU
QyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0
aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBz
b3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdo
dHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250
cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JT
IGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisvKiBUaGlzIGZpbGUg
aXMgYm9ycm93ZWQgZnJvbSBzZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVj
U3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8KKworI2ltcG9ydCAiUlRDQ29kZWNTcGVjaWZp
Y0luZm9IMjY1LmgiCisKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3Zp
ZGVvX2NvZGVjX2ludGVyZmFjZS5oIgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCisvKiBJ
bnRlcmZhY2VzIGZvciBjb252ZXJ0aW5nIHRvL2Zyb20gaW50ZXJuYWwgQysrIGZvcm1hdHMuICov
CitAaW50ZXJmYWNlIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NSAoKQorCistICh3ZWJydGM6OkNv
ZGVjU3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvOworCitAZW5kCisKK05TX0FT
U1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1Nw
ZWNpZmljSW5mb0gyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNmJiYWUxOWM3YmMzMWI4NDU5Zjc1ZGJkMTE5NDg1OTA0NmJmZTNi
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0lu
Zm9IMjY1LmgKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2Vi
UlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICog
IHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhl
IHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJp
Z2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNv
bnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhP
UlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKy8qIFRoaXMgZmls
ZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29k
ZWNTcGVjaWZpY0luZm9IMjY0LmguICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgorCisjaW1wb3J0ICJSVENDb2RlY1NwZWNpZmljSW5mby5oIgorI2ltcG9ydCAiUlRDTWFj
cm9zLmgiCisKKy8qKiBDbGFzcyBmb3IgSDI2NSBzcGVjaWZpYyBjb25maWcuICovCit0eXBlZGVm
IE5TX0VOVU0oTlNVSW50ZWdlciwgUlRDSDI2NVBhY2tldGl6YXRpb25Nb2RlKSB7CisgIFJUQ0gy
NjVQYWNrZXRpemF0aW9uTW9kZU5vbkludGVybGVhdmVkID0gMCwgIC8vIE1vZGUgMSAtIFNUQVAt
QSwgRlUtQSBpcyBhbGxvd2VkCisgIFJUQ0gyNjVQYWNrZXRpemF0aW9uTW9kZVNpbmdsZU5hbFVu
aXQgICAgICAgIC8vIE1vZGUgMCAtIG9ubHkgc2luZ2xlIE5BTFUgYWxsb3dlZAorfTsKKworUlRD
X09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDQ29k
ZWNTcGVjaWZpY0luZm9IMjY1IikpKQorQGludGVyZmFjZSBSVENDb2RlY1NwZWNpZmljSW5mb0gy
NjUgOiBOU09iamVjdCA8UlRDQ29kZWNTcGVjaWZpY0luZm8+CisKK0Bwcm9wZXJ0eShub25hdG9t
aWMsIGFzc2lnbikgUlRDSDI2NVBhY2tldGl6YXRpb25Nb2RlIHBhY2tldGl6YXRpb25Nb2RlOwor
CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk0YTQ2OTg1ZjcyNzc0ZDQ1ZTMzNDA1MDhjZDBhNGMwOGZkMWYxZTUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5t
bQpAQCAtMCwwICsxLDI4IEBACisvKgorICogIENvcHlyaWdodCAyMDE3IFRoZSBXZWJSVEMgcHJv
amVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBj
YW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNl
CisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdy
YW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0
aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxl
IGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworIC8qIFRoaXMgZmlsZSBpcyBi
b3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY0Lm1tICovCisKKyNpbXBvcnQgIlJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQ
cml2YXRlLmgiCisKKy8vIEgyNjUgc3BlY2lmaWMgc2V0dGluZ3MuCitAaW1wbGVtZW50YXRpb24g
UlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1CisKK0BzeW50aGVzaXplIHBhY2tldGl6YXRpb25Nb2Rl
ID0gX3BhY2tldGl6YXRpb25Nb2RlOworCistICh3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKW5h
dGl2ZUNvZGVjU3BlY2lmaWNJbmZvIHsKKyAgd2VicnRjOjpDb2RlY1NwZWNpZmljSW5mbyBjb2Rl
Y1NwZWNpZmljSW5mbzsKKyAgY29kZWNTcGVjaWZpY0luZm8uY29kZWNUeXBlID0gd2VicnRjOjpr
VmlkZW9Db2RlY0gyNjU7CisgIGNvZGVjU3BlY2lmaWNJbmZvLmNvZGVjU3BlY2lmaWMuSDI2NS5w
YWNrZXRpemF0aW9uX21vZGUgPQorICAgICAgKHdlYnJ0Yzo6SDI2NVBhY2tldGl6YXRpb25Nb2Rl
KV9wYWNrZXRpemF0aW9uTW9kZTsKKworICByZXR1cm4gY29kZWNTcGVjaWZpY0luZm87Cit9CisK
K0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3RvcnkubSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rv
cnkubQppbmRleCBiZGIxODUxN2NhZjk4YTdiZTBjZjllZWJmMDQ3OTI2OWRkMmYxYjQwLi5iYjU1
MWUzMzdhNmFhMGM3ZjZmMmRjOGEzYjk1ZjEzYzU2Y2FjZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tCkBAIC0xOCw2ICsxOCwxMCBA
QAogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAjaW1wb3J0ICJhcGkvdmlkZW9fY29kZWMv
UlRDVmlkZW9EZWNvZGVyVlA5LmgiCiAjZW5kaWYKKyNpZiAhZGVmaW5lZChESVNBQkxFX0gyNjUp
CisjaW1wb3J0ICJSVENIMjY1UHJvZmlsZUxldmVsSWQuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVvRGVj
b2RlckgyNjUuaCIKKyNlbmRpZgogCiBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVj
b2RlckZhY3RvcnkKIApAQCAtMjksNiArMzMsMTIgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1
bHRWaWRlb0RlY29kZXJGYWN0b3J5CiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICAgfSBl
bHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY1ZwOU5hbWVd
KSB7CiAgICAgcmV0dXJuIFtSVENWaWRlb0RlY29kZXJWUDkgdnA5RGVjb2Rlcl07CisjZW5kaWYK
KyNpZiAhZGVmaW5lZChESVNBQkxFX0gyNjUpCisgIH0gZWxzZSBpZiAoQGF2YWlsYWJsZShpT1Mg
MTEsICopKSB7CisgICAgaWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0Nv
ZGVjSDI2NU5hbWVdKSB7CisgICAgICByZXR1cm4gW1tSVENWaWRlb0RlY29kZXJIMjY1IGFsbG9j
XSBpbml0XTsKKyAgICB9CiAjZW5kaWYKICAgfQogCkBAIC00MSw2ICs1MSw5IEBAIEBpbXBsZW1l
bnRhdGlvbiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeQogICAgIFtbUlRDVmlkZW9Db2Rl
Y0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOE5hbWVdLAogI2lmIGRl
ZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAgICAgW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5p
dFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZV0sCisjZW5kaWYKKyNpZiAhZGVmaW5lZChE
SVNBQkxFX0gyNjUpCisgICAgW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1l
OmtSVENWaWRlb0NvZGVjSDI2NU5hbWVdLAogI2VuZGlmCiAgIF07CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0gYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0KaW5kZXggYjcyMjk2YjY0
ZjMxYjBlZmI0NWE4YmRkYTYzOWI0ODJhZmFkYmRhMC4uNDY1NjRhNDg4MWYzODY0OTMyZDgyZTAz
N2RlMzQwNTEyNGQ1ZWJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0
VmlkZW9FbmNvZGVyRmFjdG9yeS5tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZp
ZGVvRW5jb2RlckZhY3RvcnkubQpAQCAtMTgsNiArMTgsMTAgQEAKICNpZiBkZWZpbmVkKFJUQ19F
TkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlclZQOS5o
IgogI2VuZGlmCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQorI2ltcG9ydCAiUlRDSDI2NVBy
b2ZpbGVMZXZlbElkLmgiCisjaW1wb3J0ICJSVENWaWRlb0VuY29kZXJIMjY1LmgiCisjZW5kaWYK
IAogQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CiAKQEAgLTQ4
LDEyICs1MiwxOSBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rv
cnkKICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFs
bG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXTsKICNlbmRpZgogCisjaWYg
IWRlZmluZWQoRElTQUJMRV9IMjY1KQorICBSVENWaWRlb0NvZGVjSW5mbyAqaDI2NUluZm8gPSBb
W1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNIMjY1
TmFtZV07CisjZW5kaWYKKwogICByZXR1cm4gQFsKICAgICBjb25zdHJhaW5lZEhpZ2hJbmZvLAog
ICAgIGNvbnN0cmFpbmVkQmFzZWxpbmVJbmZvLAogICAgIHZwOEluZm8sCiAjaWYgZGVmaW5lZChS
VENfRU5BQkxFX1ZQOSkKICAgICB2cDlJbmZvLAorI2VuZGlmCisjaWYgIWRlZmluZWQoRElTQUJM
RV9IMjY1KQorICAgIGgyNjVJbmZvLAogI2VuZGlmCiAgIF07CiB9CkBAIC02Niw2ICs3NywxMiBA
QCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICNpZiBkZWZp
bmVkKFJUQ19FTkFCTEVfVlA5KQogICB9IGVsc2UgaWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3Ry
aW5nOmtSVENWaWRlb0NvZGVjVnA5TmFtZV0pIHsKICAgICByZXR1cm4gW1JUQ1ZpZGVvRW5jb2Rl
clZQOSB2cDlFbmNvZGVyXTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKERJU0FCTEVfSDI2NSkKKyAg
fSBlbHNlIGlmIChAYXZhaWxhYmxlKGlPUyAxMSwgKikpIHsKKyAgICBpZiAoW2luZm8ubmFtZSBp
c0VxdWFsVG9TdHJpbmc6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV0pIHsKKyAgICAgIHJldHVybiBb
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgYWxsb2NdIGluaXRXaXRoQ29kZWNJbmZvOmluZm9dOworICAg
IH0KICNlbmRpZgogICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVBy
b2ZpbGVMZXZlbElkLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhlMzQ4NmQwNmQ0MTI3ZTk3ODM5MjlmZTQwYmVkYjMzYTVjNjdiMmYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5o
CkBAIC0wLDAgKzEsMTYgQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9q
ZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNh
biBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UK
KyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3Jh
bnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRp
bmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUg
aW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbXBvcnQgPEZvdW5kYXRp
b24vRm91bmRhdGlvbi5oPgorCisjaW1wb3J0ICJSVENNYWNyb3MuaCIKKworUlRDX09CSkNfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqY29uc3Qga1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZTsKK1JUQ19P
QkpDX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKmNvbnN0IGtSVENMZXZlbDMxTWFpbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92
aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWFhMzgxMGU2
ZTI1ODFmNmJlNDA0M2UyNjY0MGU1OWQxMDUwYmM2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tCkBAIC0wLDAgKzEsMTggQEAKKy8q
CisgKiAgQ29weXJpZ2h0IDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlv
bmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAg
aW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1h
eQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNv
dXJjZSB0cmVlLgorICoKKyAqLworCisjaW1wb3J0ICJSVENIMjY1UHJvZmlsZUxldmVsSWQuaCIK
KworI2luY2x1ZGUgIm1lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmgiCisKK05TU3RyaW5nICpj
b25zdCBrUlRDVmlkZW9Db2RlY0gyNjVOYW1lID0gQCJIMjY1IjsKKy8vIFRPRE8oamlhbmp1bnop
OiBUaGlzIHZhbHVlIGlzIG5vdCBjb3JyZWN0LgorTlNTdHJpbmcgKmNvbnN0IGtSVENMZXZlbDMx
TWFpbiA9IEAiNGQwMDFmIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9E
ZWNvZGVyRmFjdG9yeUgyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyRmFj
dG9yeUgyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzUwZmQxZTdhNzkzYmE4ZTU5ZGRhM2Y4Mjk3NGZhMzQz
YzE0MmY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29k
ZXJGYWN0b3J5SDI2NS5oCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcg
VGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vu
c2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290
IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9w
ZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4g
IEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRo
ZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNp
bXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaW1wb3J0ICJSVENNYWNyb3MuaCIK
KyNpbXBvcnQgIlJUQ1ZpZGVvRGVjb2RlckZhY3RvcnkuaCIKKworUlRDX09CSkNfRVhQT1JUCitB
UElfQVZBSUxBQkxFKGlvcygxMS4wKSkKK19fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1l
KCJXS19SVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NSIpKSkKK0BpbnRlcmZhY2UgUlRDVmlkZW9E
ZWNvZGVyRmFjdG9yeUgyNjUgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4KK0Bl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgy
NjUubSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUubQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yYTk0Y2JkNDcwNmZhNTg3ZWQ2MDc2NmZhMjcxZDIzOTFiZjE2OWZkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NS5t
CkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9q
ZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNv
dXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNh
biBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UK
KyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3Jh
bnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRp
bmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUg
aW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbXBvcnQgIlJUQ1ZpZGVv
RGVjb2RlckZhY3RvcnlIMjY1LmgiCisKKyNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5o
IgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVySDI2NS5oIgorCitAaW1wbGVtZW50YXRpb24gUlRD
VmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUKKworLSAoaWQ8UlRDVmlkZW9EZWNvZGVyPiljcmVhdGVE
ZWNvZGVyOihSVENWaWRlb0NvZGVjSW5mbyopaW5mbyB7CisgIHJldHVybiBbW1JUQ1ZpZGVvRGVj
b2RlckgyNjUgYWxsb2NdIGluaXRdOworfQorCistIChOU0FycmF5PFJUQ1ZpZGVvQ29kZWNJbmZv
Kj4qKXN1cHBvcnRlZENvZGVjcyB7CisgIE5TU3RyaW5nKiBjb2RlY05hbWUgPSBrUlRDVmlkZW9D
b2RlY0gyNjVOYW1lOworICByZXR1cm4gQFsgW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5p
dFdpdGhOYW1lOmNvZGVjTmFtZSBwYXJhbWV0ZXJzOm5pbF0gXTsKK30KKworQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1LmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmYzMzNhOTc5ZGE4MDQz
ODRkZTQ0ZDAwYzQ3NGNmYTc3MmZjNDYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENWaWRlb0RlY29kZXJIMjY1LmgKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqICBDb3B5
cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt
c3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUg
aW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxs
ZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmls
ZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUg
Zm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUu
CisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJU
Q01hY3Jvcy5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyLmgiCisKK1JUQ19PQkpDX0VYUE9S
VAorQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVf
bmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVySDI2NSIpKSkKK0BpbnRlcmZhY2UgUlRDVmlkZW9EZWNv
ZGVySDI2NSA6IE5TT2JqZWN0IDxSVENWaWRlb0RlY29kZXI+CitAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ1ZpZGVvRGVjb2RlckgyNjUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVhYWQ3MGQyZGY3OWM2Mzc0NmFk
NTUxYTBkNmFhZjdkODI5MmRmOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDVmlkZW9EZWNvZGVySDI2NS5tbQpAQCAtMCwwICsxLDI4MSBAQAorLyoKKyAqICBDb3B5cmln
aHQgKGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNE
LXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl
IGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVs
bGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZp
bGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJl
IGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVl
LgorICoKKyAqLworCisjaW1wb3J0ICJSVENWaWRlb0RlY29kZXJIMjY1LmgiCisKKyNpbXBvcnQg
PFZpZGVvVG9vbGJveC9WaWRlb1Rvb2xib3guaD4KKworI2ltcG9ydCAiYmFzZS9SVENWaWRlb0Zy
YW1lLmgiCisjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRnJhbWVCdWZmZXIuaCIKKyNpbXBvcnQgImNv
bXBvbmVudHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIuaCIKKyNpbXBvcnQg
ImhlbHBlcnMuaCIKKyNpbXBvcnQgImhlbHBlcnMvc2NvcGVkX2NmdHlwZXJlZi5oIgorCisjaWYg
ZGVmaW5lZChXRUJSVENfSU9TKQorI2ltcG9ydCAiaGVscGVycy9VSURldmljZStSVENEZXZpY2Uu
aCIKKyNlbmRpZgorCisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRl
b19lcnJvcl9jb2Rlcy5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNrcy5oIgorI2luY2x1ZGUg
InJ0Y19iYXNlL2xvZ2dpbmcuaCIKKyNpbmNsdWRlICJydGNfYmFzZS90aW1lX3V0aWxzLmgiCisj
aW5jbHVkZSAic2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmgi
CisKKy8vIFN0cnVjdCB0aGF0IHdlIHBhc3MgdG8gdGhlIGRlY29kZXIgcGVyIGZyYW1lIHRvIGRl
Y29kZS4gV2UgcmVjZWl2ZSBpdCBhZ2FpbgorLy8gaW4gdGhlIGRlY29kZXIgY2FsbGJhY2suCitz
dHJ1Y3QgUlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zIHsKKyAgUlRDSDI2NUZyYW1lRGVjb2RlUGFy
YW1zKFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIGNiLCBpbnQ2NF90IHRzKQorICAgICAgOiBjYWxs
YmFjayhjYiksIHRpbWVzdGFtcCh0cykge30KKyAgUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2sgY2Fs
bGJhY2s7CisgIGludDY0X3QgdGltZXN0YW1wOworfTsKKworLy8gVGhpcyBpcyB0aGUgY2FsbGJh
Y2sgZnVuY3Rpb24gdGhhdCBWaWRlb1Rvb2xib3ggY2FsbHMgd2hlbiBkZWNvZGUgaXMKKy8vIGNv
bXBsZXRlLgordm9pZCBoMjY1RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQqIGRlY29k
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogcGFyYW1zLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TU3RhdHVzIHN0YXR1cywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVERlY29kZUluZm9GbGFncyBpbmZv
RmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1ZJbWFnZUJ1ZmZl
clJlZiBpbWFnZUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
TVRpbWUgdGltZXN0YW1wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENN
VGltZSBkdXJhdGlvbikgeworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDSDI2NUZyYW1lRGVjb2RlUGFy
YW1zPiBkZWNvZGVQYXJhbXMoCisgICAgICByZWludGVycHJldF9jYXN0PFJUQ0gyNjVGcmFtZURl
Y29kZVBhcmFtcyo+KHBhcmFtcykpOworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRD
X0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUuIFN0YXR1czogIiA8PCBz
dGF0dXM7CisgICAgcmV0dXJuOworICB9CisgIC8vIFRPRE8odGtjaGluKTogSGFuZGxlIENWTyBw
cm9wZXJseS4KKyAgUlRDQ1ZQaXhlbEJ1ZmZlciogZnJhbWVCdWZmZXIgPQorICAgICAgW1tSVEND
VlBpeGVsQnVmZmVyIGFsbG9jXSBpbml0V2l0aFBpeGVsQnVmZmVyOmltYWdlQnVmZmVyXTsKKyAg
UlRDVmlkZW9GcmFtZSogZGVjb2RlZEZyYW1lID0gW1tSVENWaWRlb0ZyYW1lIGFsbG9jXQorICAg
ICAgaW5pdFdpdGhCdWZmZXI6ZnJhbWVCdWZmZXIKKyAgICAgICAgICAgIHJvdGF0aW9uOlJUQ1Zp
ZGVvUm90YXRpb25fMAorICAgICAgICAgdGltZVN0YW1wTnM6Q01UaW1lR2V0U2Vjb25kcyh0aW1l
c3RhbXApICogcnRjOjprTnVtTmFub3NlY3NQZXJTZWNdOworICBkZWNvZGVkRnJhbWUudGltZVN0
YW1wID0gZGVjb2RlUGFyYW1zLT50aW1lc3RhbXA7CisgIGRlY29kZVBhcmFtcy0+Y2FsbGJhY2so
ZGVjb2RlZEZyYW1lKTsKK30KKworLy8gRGVjb2Rlci4KK0BpbXBsZW1lbnRhdGlvbiBSVENWaWRl
b0RlY29kZXJIMjY1IHsKKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIF92aWRlb0Zvcm1h
dDsKKyAgVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBfZGVjb21wcmVzc2lvblNlc3Npb247Cisg
IFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIF9jYWxsYmFjazsKKyAgT1NTdGF0dXMgX2Vycm9yOwor
fQorCistIChpbnN0YW5jZXR5cGUpaW5pdCB7CisgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKSB7
CisgIH0KKworICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jIHsKKyAgW3NlbGYg
ZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXTsKKyAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6bnVs
bHB0cl07Cit9CisKKy0gKE5TSW50ZWdlcilzdGFydERlY29kZVdpdGhOdW1iZXJPZkNvcmVzOihp
bnQpbnVtYmVyT2ZDb3JlcyB7CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisK
Ky0gKE5TSW50ZWdlcilkZWNvZGU6KFJUQ0VuY29kZWRJbWFnZSopaW5wdXRJbWFnZQorICAgICAg
ICAgIG1pc3NpbmdGcmFtZXM6KEJPT0wpbWlzc2luZ0ZyYW1lcworICAgICAgY29kZWNTcGVjaWZp
Y0luZm86KF9fbnVsbGFibGUgaWQ8UlRDQ29kZWNTcGVjaWZpY0luZm8+KWluZm8KKyAgICAgICAg
ICAgcmVuZGVyVGltZU1zOihpbnQ2NF90KXJlbmRlclRpbWVNcyB7CisgIFJUQ19EQ0hFQ0soaW5w
dXRJbWFnZS5idWZmZXIpOworCisgIGlmIChfZXJyb3IgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9H
KExTX1dBUk5JTkcpIDw8ICJMYXN0IGZyYW1lIGRlY29kZSBmYWlsZWQuIjsKKyAgICBfZXJyb3Ig
PSBub0VycjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisKKyAg
cnRjOjpTY29wZWRDRlR5cGVSZWY8Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmPiBpbnB1dEZv
cm1hdCA9CisgICAgICBydGM6OlNjb3BlZENGKHdlYnJ0Yzo6Q3JlYXRlSDI2NVZpZGVvRm9ybWF0
RGVzY3JpcHRpb24oCisgICAgICAgICAgKHVpbnQ4X3QqKWlucHV0SW1hZ2UuYnVmZmVyLmJ5dGVz
LCBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGgpKTsKKyAgaWYgKGlucHV0Rm9ybWF0KSB7CisgICAg
Q01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9CisgICAgICAgIENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvbkdldERpbWVuc2lvbnMoaW5wdXRGb3JtYXQuZ2V0KCkpOworICAgIFJUQ19MT0coTFNf
SU5GTykgPDwgIlJlc29sdXRpb246ICIgPDwgZGltZW5zaW9ucy53aWR0aCA8PCAiIHggIgorICAg
ICAgICAgICAgICAgICAgICAgPDwgZGltZW5zaW9ucy5oZWlnaHQ7CisgICAgLy8gQ2hlY2sgaWYg
dGhlIHZpZGVvIGZvcm1hdCBoYXMgY2hhbmdlZCwgYW5kIHJlaW5pdGlhbGl6ZSBkZWNvZGVyIGlm
CisgICAgLy8gbmVlZGVkLgorICAgIGlmICghQ01Gb3JtYXREZXNjcmlwdGlvbkVxdWFsKGlucHV0
Rm9ybWF0LmdldCgpLCBfdmlkZW9Gb3JtYXQpKSB7CisgICAgICBbc2VsZiBzZXRWaWRlb0Zvcm1h
dDppbnB1dEZvcm1hdC5nZXQoKV07CisgICAgICBpbnQgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lv
bkVycm9yID0gW3NlbGYgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgICAgICBpZiAocmVz
ZXREZWNvbXByZXNzaW9uU2Vzc2lvbkVycm9yICE9IFdFQlJUQ19WSURFT19DT0RFQ19PSykgewor
ICAgICAgICByZXR1cm4gcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbkVycm9yOworICAgICAgfQor
ICAgIH0KKyAgfQorICBpZiAoIV92aWRlb0Zvcm1hdCkgeworICAgIC8vIFdlIHJlY2VpdmVkIGEg
ZnJhbWUgYnV0IHdlIGRvbid0IGhhdmUgZm9ybWF0IGluZm9ybWF0aW9uIHNvIHdlIGNhbid0Cisg
ICAgLy8gZGVjb2RlIGl0LgorICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBhZnRlciBiYWNrZ3JvdW5k
aW5nLiBXZSBuZWVkIHRvIHdhaXQgZm9yIHRoZSBuZXh0CisgICAgLy8gc3BzL3BwcyBiZWZvcmUg
d2UgY2FuIHJlc3VtZSBzbyB3ZSByZXF1ZXN0IGEga2V5ZnJhbWUgYnkgcmV0dXJuaW5nIGFuCisg
ICAgLy8gZXJyb3IuCisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiTWlzc2luZyB2aWRlbyBm
b3JtYXQuIEZyYW1lIHdpdGggc3BzL3BwcyByZXF1aXJlZC4iOworICAgIHJldHVybiBXRUJSVENf
VklERU9fQ09ERUNfRVJST1I7CisgIH0KKyAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVy
ID0gbnVsbHB0cjsKKyAgaWYgKCF3ZWJydGM6OkgyNjVBbm5leEJCdWZmZXJUb0NNU2FtcGxlQnVm
ZmVyKAorICAgICAgICAgICh1aW50OF90KilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcywgaW5wdXRJ
bWFnZS5idWZmZXIubGVuZ3RoLAorICAgICAgICAgIF92aWRlb0Zvcm1hdCwgJnNhbXBsZUJ1ZmZl
cikpIHsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIFJUQ19E
Q0hFQ0soc2FtcGxlQnVmZmVyKTsKKyAgVlREZWNvZGVGcmFtZUZsYWdzIGRlY29kZUZsYWdzID0K
KyAgICAgIGtWVERlY29kZUZyYW1lX0VuYWJsZUFzeW5jaHJvbm91c0RlY29tcHJlc3Npb247Cisg
IHN0ZDo6dW5pcXVlX3B0cjxSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXM+IGZyYW1lRGVjb2RlUGFy
YW1zOworICBmcmFtZURlY29kZVBhcmFtcy5yZXNldCgKKyAgICAgIG5ldyBSVENIMjY1RnJhbWVE
ZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCBpbnB1dEltYWdlLnRpbWVTdGFtcCkpOworICBPU1N0YXR1
cyBzdGF0dXMgPSBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUoCisgICAgICBfZGVj
b21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlciwgZGVjb2RlRmxhZ3MsCisgICAgICBmcmFt
ZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworI2lmIGRlZmluZWQoV0VCUlRDX0lP
UykKKyAgLy8gUmUtaW5pdGlhbGl6ZSB0aGUgZGVjb2RlciBpZiB3ZSBoYXZlIGFuIGludmFsaWQg
c2Vzc2lvbiB3aGlsZSB0aGUgYXBwIGlzCisgIC8vIGFjdGl2ZSBhbmQgcmV0cnkgdGhlIGRlY29k
ZSByZXF1ZXN0LgorICBpZiAoc3RhdHVzID09IGtWVEludmFsaWRTZXNzaW9uRXJyICYmCisgICAg
ICBbc2VsZiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXSA9PSBXRUJSVENfVklERU9fQ09ERUNf
T0spIHsKKyAgICBmcmFtZURlY29kZVBhcmFtcy5yZXNldCgKKyAgICAgICAgbmV3IFJUQ0gyNjVG
cmFtZURlY29kZVBhcmFtcyhfY2FsbGJhY2ssIGlucHV0SW1hZ2UudGltZVN0YW1wKSk7CisgICAg
c3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAgICAgICBfZGVj
b21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlciwgZGVjb2RlRmxhZ3MsCisgICAgICAgIGZy
YW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7CisgIH0KKyNlbmRpZgorICBDRlJl
bGVhc2Uoc2FtcGxlQnVmZmVyKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19M
T0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lIHdpdGggY29kZTogIiA8PCBz
dGF0dXM7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICByZXR1
cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistICh2b2lkKXNldENhbGxiYWNrOihSVENW
aWRlb0RlY29kZXJDYWxsYmFjayljYWxsYmFjayB7CisgIF9jYWxsYmFjayA9IGNhbGxiYWNrOwor
fQorCistIChOU0ludGVnZXIpcmVsZWFzZURlY29kZXIgeworICAvLyBOZWVkIHRvIGludmFsaWRh
dGUgdGhlIHNlc3Npb24gc28gdGhhdCBjYWxsYmFja3Mgbm8gbG9uZ2VyIG9jY3VyIGFuZCBpdAor
ICAvLyBpcyBzYWZlIHRvIG51bGwgb3V0IHRoZSBjYWxsYmFjay4KKyAgW3NlbGYgZGVzdHJveURl
Y29tcHJlc3Npb25TZXNzaW9uXTsKKyAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6bnVsbHB0cl07Cisg
IF9jYWxsYmFjayA9IG51bGxwdHI7CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9
CisKKyNwcmFnbWEgbWFyayAtIFByaXZhdGUKKworLSAoaW50KXJlc2V0RGVjb21wcmVzc2lvblNl
c3Npb24geworICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworCisgIC8vIE5l
ZWQgdG8gd2FpdCBmb3IgdGhlIGZpcnN0IFNQUyB0byBpbml0aWFsaXplIGRlY29kZXIuCisgIGlm
ICghX3ZpZGVvRm9ybWF0KSB7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKKyAg
fQorCisgIC8vIFNldCBrZXlzIGZvciBPcGVuR0wgYW5kIElPU3VyZmFjZSBjb21wYXRpYmlsdHks
IHdoaWNoIG1ha2VzIHRoZSBlbmNvZGVyCisgIC8vIGNyZWF0ZSBwaXhlbCBidWZmZXJzIHdpdGgg
R1BVIGJhY2tlZCBtZW1vcnkuIFRoZSBpbnRlbnQgaGVyZSBpcyB0byBwYXNzCisgIC8vIHRoZSBw
aXhlbCBidWZmZXJzIGRpcmVjdGx5IHNvIHdlIGF2b2lkIGEgdGV4dHVyZSB1cGxvYWQgbGF0ZXIg
ZHVyaW5nCisgIC8vIHJlbmRlcmluZy4gVGhpcyBjdXJyZW50bHkgaXMgbW9vdCBiZWNhdXNlIHdl
IGFyZSBjb252ZXJ0aW5nIGJhY2sgdG8gYW4KKyAgLy8gSTQyMCBmcmFtZSBhZnRlciBkZWNvZGUs
IGJ1dCBldmVudHVhbGx5IHdlIHdpbGwgYmUgYWJsZSB0byBwbHVtYgorICAvLyBDVlBpeGVsQnVm
ZmVycyBkaXJlY3RseSB0byB0aGUgcmVuZGVyZXIuCisgIC8vIFRPRE8odGtjaGluKTogTWF5YmUg
b25seSBzZXQgT3BlbkdML0lPU3VyZmFjZSBrZXlzIGlmIHdlIGtub3cgdGhhdCB0aGF0CisgIC8v
IHdlIGNhbiBwYXNzIENWUGl4ZWxCdWZmZXJzIGFzIG5hdGl2ZSBoYW5kbGVzIGluIGRlY29kZXIg
b3V0cHV0LgorICBzdGF0aWMgc2l6ZV90IGNvbnN0IGF0dHJpYnV0ZXNTaXplID0gMzsKKyAgQ0ZU
eXBlUmVmIGtleXNbYXR0cmlidXRlc1NpemVdID0geworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykK
KyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTEVTQ29tcGF0aWJpbGl0eUtleSwKKyNlbGlmIGRlZmlu
ZWQoV0VCUlRDX01BQykKKyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXks
CisjZW5kaWYKKyAgICBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZVByb3BlcnRpZXNLZXksCisgICAg
a0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkKKyAgfTsKKyAgQ0ZEaWN0aW9uYXJ5UmVm
IGlvU3VyZmFjZVZhbHVlID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShudWxscHRyLCBudWxscHRy
LCAwKTsKKyAgaW50NjRfdCBudjEydHlwZSA9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4
QmlQbGFuYXJGdWxsUmFuZ2U7CisgIENGTnVtYmVyUmVmIHBpeGVsRm9ybWF0ID0KKyAgICAgIENG
TnVtYmVyQ3JlYXRlKG51bGxwdHIsIGtDRk51bWJlckxvbmdUeXBlLCAmbnYxMnR5cGUpOworICBD
RlR5cGVSZWYgdmFsdWVzW2F0dHJpYnV0ZXNTaXplXSA9IHtrQ0ZCb29sZWFuVHJ1ZSwgaW9TdXJm
YWNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVsRm9y
bWF0fTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMgPQorICAgICAgQ3JlYXRlQ0ZUeXBl
RGljdGlvbmFyeShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXplKTsKKyAgaWYgKGlvU3VyZmFj
ZVZhbHVlKSB7CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVlKTsKKyAgICBpb1N1cmZhY2VW
YWx1ZSA9IG51bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNl
KHBpeGVsRm9ybWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxwdHI7CisgIH0KKyAgVlREZWNv
bXByZXNzaW9uT3V0cHV0Q2FsbGJhY2tSZWNvcmQgcmVjb3JkID0geworICAgICAgaDI2NURlY29t
cHJlc3Npb25PdXRwdXRDYWxsYmFjaywKKyAgICAgIG51bGxwdHIsCisgIH07CisgIE9TU3RhdHVz
IHN0YXR1cyA9CisgICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlKG51bGxwdHIsIF92
aWRlb0Zvcm1hdCwgbnVsbHB0ciwgYXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJnJlY29yZCwgJl9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgIENGUmVsZWFz
ZShhdHRyaWJ1dGVzKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFtzZWxmIGRlc3Ry
b3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19F
UlJPUjsKKyAgfQorICBbc2VsZiBjb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAg
cmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZCljb25maWd1cmVEZWNv
bXByZXNzaW9uU2Vzc2lvbiB7CisgIFJUQ19EQ0hFQ0soX2RlY29tcHJlc3Npb25TZXNzaW9uKTsK
KyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgIC8vIFZUU2Vzc2lvblNldFByb3BlcnR5KF9kZWNv
bXByZXNzaW9uU2Vzc2lvbiwKKyAgLy8ga1ZURGVjb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxU
aW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CisjZW5kaWYKK30KKworLSAodm9pZClkZXN0cm95RGVjb21w
cmVzc2lvblNlc3Npb24geworICBpZiAoX2RlY29tcHJlc3Npb25TZXNzaW9uKSB7CisjaWYgZGVm
aW5lZChXRUJSVENfV0VCS0lUX0JVSUxEKQorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0
Rm9yQXN5bmNocm9ub3VzRnJhbWVzKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjZWxzZQorI2lm
IGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBpZiAoW1VJRGV2aWNlIGlzSU9TMTFPckxhdGVyXSkg
eworICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMo
X2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICB9CisjZW5kaWYKKyNlbmRpZgorICAgIFZURGVj
b21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgICAg
Q0ZSZWxlYXNlKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgX2RlY29tcHJlc3Npb25TZXNz
aW9uID0gbnVsbHB0cjsKKyAgfQorfQorCistICh2b2lkKXNldFZpZGVvRm9ybWF0OihDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25SZWYpdmlkZW9Gb3JtYXQgeworICBpZiAoX3ZpZGVvRm9ybWF0ID09
IHZpZGVvRm9ybWF0KSB7CisgICAgcmV0dXJuOworICB9CisgIGlmIChfdmlkZW9Gb3JtYXQpIHsK
KyAgICBDRlJlbGVhc2UoX3ZpZGVvRm9ybWF0KTsKKyAgfQorICBfdmlkZW9Gb3JtYXQgPSB2aWRl
b0Zvcm1hdDsKKyAgaWYgKF92aWRlb0Zvcm1hdCkgeworICAgIENGUmV0YWluKF92aWRlb0Zvcm1h
dCk7CisgIH0KK30KKworLSAoTlNTdHJpbmcqKWltcGxlbWVudGF0aW9uTmFtZSB7CisgIHJldHVy
biBAIlZpZGVvVG9vbGJveCI7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlk
ZW9FbmNvZGVyRmFjdG9yeUgyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDg0OGRkZThiY2E4YmUzMWJkZjc0
MDI4OWVhYzkxOTNlZTdiZmQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5oCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiAgQ29w
eXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNE
LXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl
IGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVs
bGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZp
bGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJl
IGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVl
LgorICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaW1wb3J0ICJS
VENNYWNyb3MuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVvRW5jb2RlckZhY3RvcnkuaCIKKworUlRDX09C
SkNfRVhQT1JUCitBUElfQVZBSUxBQkxFKGlvcygxMS4wKSkKK19fYXR0cmlidXRlX18oKG9iamNf
cnVudGltZV9uYW1lKCJXS19SVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NSIpKSkKK0BpbnRlcmZh
Y2UgUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUgOiBOU09iamVjdDxSVENWaWRlb0VuY29kZXJG
YWN0b3J5PgorQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29k
ZXJGYWN0b3J5SDI2NS5tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJGYWN0b3J5
SDI2NS5tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFhYmRmYWVjZGYwZGFjY2RjNjY4ZjI3MzJjNDA4MWVlZDc1NjE1
YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckZh
Y3RvcnlIMjY1Lm0KQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUg
V2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQor
ICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2Yg
dGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5
IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxs
IGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFV
VEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9y
dCAiUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaCIKKworI2ltcG9ydCAiUlRDSDI2NVByb2Zp
bGVMZXZlbElkLmgiCisjaW1wb3J0ICJSVENWaWRlb0VuY29kZXJIMjY1LmgiCisKK0BpbXBsZW1l
bnRhdGlvbiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NQorCistIChOU0FycmF5PFJUQ1ZpZGVv
Q29kZWNJbmZvKj4qKXN1cHBvcnRlZENvZGVjcyB7CisgIE5TTXV0YWJsZUFycmF5PFJUQ1ZpZGVv
Q29kZWNJbmZvKj4qIGNvZGVjcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CisgIE5TU3RyaW5n
KiBjb2RlY05hbWUgPSBrUlRDVmlkZW9Db2RlY0gyNjVOYW1lOworCisgIE5TRGljdGlvbmFyeTxO
U1N0cmluZyosIE5TU3RyaW5nKj4qIG1haW5QYXJhbXMgPSBAeworICAgIEAicHJvZmlsZS1sZXZl
bC1pZCIgOiBrUlRDTGV2ZWwzMU1haW4sCisgICAgQCJsZXZlbC1hc3ltbWV0cnktYWxsb3dlZCIg
OiBAIjEiLAorICAgIEAicGFja2V0aXphdGlvbi1tb2RlIiA6IEAiMSIsCisgIH07CisgIFJUQ1Zp
ZGVvQ29kZWNJbmZvKiBjb25zdHJhaW5lZEJhc2VsaW5lSW5mbyA9CisgICAgICBbW1JUQ1ZpZGVv
Q29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6Y29kZWNOYW1lIHBhcmFtZXRlcnM6bWFpblBh
cmFtc107CisgIFtjb2RlY3MgYWRkT2JqZWN0OmNvbnN0cmFpbmVkQmFzZWxpbmVJbmZvXTsKKwor
ICByZXR1cm4gW2NvZGVjcyBjb3B5XTsKK30KKworLSAoaWQ8UlRDVmlkZW9FbmNvZGVyPiljcmVh
dGVFbmNvZGVyOihSVENWaWRlb0NvZGVjSW5mbyopaW5mbyB7CisgIHJldHVybiBbW1JUQ1ZpZGVv
RW5jb2RlckgyNjUgYWxsb2NdIGluaXRXaXRoQ29kZWNJbmZvOmluZm9dOworfQorCitAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NGJlZWYxZWU1
ZTM2MDI2OTU2YmE5YTY5Y2M2MDdlNzg3ZDAzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUuaApAQCAtMCwwICsxLDI0IEBACisvKgorICog
IENvcHlyaWdodCAyMDE3IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
IEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBp
bnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRo
ZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAq
ICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2Ug
dHJlZS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworI2ltcG9y
dCAiUlRDTWFjcm9zLmgiCisjaW1wb3J0ICJSVENWaWRlb0NvZGVjSW5mby5oIgorI2ltcG9ydCAi
UlRDVmlkZW9FbmNvZGVyLmgiCisKK1JUQ19PQkpDX0VYUE9SVAorQVBJX0FWQUlMQUJMRShpb3Mo
MTEuMCkpCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDVmlkZW9FbmNv
ZGVySDI2NSIpKSkKK0BpbnRlcmZhY2UgUlRDVmlkZW9FbmNvZGVySDI2NSA6IE5TT2JqZWN0IDxS
VENWaWRlb0VuY29kZXI+CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVjSW5mbzooUlRD
VmlkZW9Db2RlY0luZm8gKiljb2RlY0luZm87CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlk
ZW9FbmNvZGVySDI2NS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmRiMjBlOTljMzRiNWM1MjgxYzQ5MWFkNDJi
M2RlNDYwMzFhYjAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRl
b0VuY29kZXJIMjY1Lm1tCkBAIC0wLDAgKzEsNjA4IEBACisvKgorICogIENvcHlyaWdodCAoYykg
MjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
bGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFs
IHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRF
TlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQg
aW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgor
ICovCisKKyNpbXBvcnQgIlJUQ1ZpZGVvRW5jb2RlckgyNjUuaCIKKworI2ltcG9ydCA8VmlkZW9U
b29sYm94L1ZpZGVvVG9vbGJveC5oPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2ltcG9ydCAiUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1LmgiCisjaW1wb3J0ICJhcGkvcGVlcmNvbm5lY3Rpb24vUlRD
UnRwRnJhZ21lbnRhdGlvbkhlYWRlcitQcml2YXRlLmgiCisjaW1wb3J0ICJhcGkvcGVlcmNvbm5l
Y3Rpb24vUlRDVmlkZW9Db2RlY0luZm8rUHJpdmF0ZS5oIgorI2ltcG9ydCAiYmFzZS9SVENJNDIw
QnVmZmVyLmgiCisjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRnJhbWUuaCIKKyNpbXBvcnQgImJhc2Uv
UlRDVmlkZW9GcmFtZUJ1ZmZlci5oIgorI2ltcG9ydCAiY29tcG9uZW50cy92aWRlb19mcmFtZV9i
dWZmZXIvUlRDQ1ZQaXhlbEJ1ZmZlci5oIgorI2ltcG9ydCAiaGVscGVycy5oIgorI2lmIGRlZmlu
ZWQoV0VCUlRDX0lPUykKKyNpbXBvcnQgImhlbHBlcnMvVUlEZXZpY2UrUlRDRGV2aWNlLmgiCisj
ZW5kaWYKKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L3Byb2ZpbGVfbGV2ZWxfaWQuaCIK
KyNpbmNsdWRlICJjb21tb25fdmlkZW8vaW5jbHVkZS9iaXRyYXRlX2FkanVzdGVyLmgiCisjaW5j
bHVkZSAibGlieXV2L2NvbnZlcnRfZnJvbS5oIgorI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9t
b2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvaW5j
bHVkZS92aWRlb19lcnJvcl9jb2Rlcy5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2J1ZmZlci5oIgor
I2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKyNpbmNsdWRlICJydGNfYmFzZS90aW1lX3V0
aWxzLmgiCisjaW5jbHVkZSAic2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW9Ub29sYm94
L25hbHVfcmV3cml0ZXIuaCIKKyNpbmNsdWRlICJzeXN0ZW1fd3JhcHBlcnMvaW5jbHVkZS9jbG9j
ay5oIgorCitAaW50ZXJmYWNlIFJUQ1ZpZGVvRW5jb2RlckgyNjUgKCkKKworLSAodm9pZClmcmFt
ZVdhc0VuY29kZWQ6KE9TU3RhdHVzKXN0YXR1cworICAgICAgICAgICAgICAgICAgZmxhZ3M6KFZU
RW5jb2RlSW5mb0ZsYWdzKWluZm9GbGFncworICAgICAgICAgICBzYW1wbGVCdWZmZXI6KENNU2Ft
cGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlcgorICAgICAgICAgICAgICAgICAgd2lkdGg6KGludDMy
X3Qpd2lkdGgKKyAgICAgICAgICAgICAgICAgaGVpZ2h0OihpbnQzMl90KWhlaWdodAorICAgICAg
ICAgICByZW5kZXJUaW1lTXM6KGludDY0X3QpcmVuZGVyVGltZU1zCisgICAgICAgICAgICAgIHRp
bWVzdGFtcDoodWludDMyX3QpdGltZXN0YW1wCisgICAgICAgICAgICAgICByb3RhdGlvbjooUlRD
VmlkZW9Sb3RhdGlvbilyb3RhdGlvbjsKKworQGVuZAorCituYW1lc3BhY2UgeyAgLy8gYW5vbnlt
b3VzIG5hbWVzcGFjZQorCisvLyBUaGUgcmF0aW8gYmV0d2VlbiBrVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X0RhdGFSYXRlTGltaXRzIGFuZAorLy8ga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9B
dmVyYWdlQml0UmF0ZS4gVGhlIGRhdGEgcmF0ZSBsaW1pdCBpcyBzZXQgaGlnaGVyCisvLyB0aGFu
IHRoZSBhdmVyYWdlIGJpdCByYXRlIHRvIGF2b2lkIHVuZGVyc2hvb3RpbmcgdGhlIHRhcmdldC4K
K2NvbnN0IGZsb2F0IGtMaW1pdFRvQXZlcmFnZUJpdFJhdGVGYWN0b3IgPSAxLjVmOworLy8gVGhl
c2UgdGhyZXNob2xkcyBkZXZpYXRlIGZyb20gdGhlIGRlZmF1bHQgaDI2NSBRUCB0aHJlc2hvbGRz
LCBhcyB0aGV5CisvLyBoYXZlIGJlZW4gZm91bmQgdG8gd29yayBiZXR0ZXIgb24gZGV2aWNlcyB0
aGF0IHN1cHBvcnQgVmlkZW9Ub29sYm94Citjb25zdCBpbnQga0xvd2gyNjVRcFRocmVzaG9sZCA9
IDI4OworY29uc3QgaW50IGtIaWdoaDI2NVFwVGhyZXNob2xkID0gMzk7CisKKy8vIFN0cnVjdCB0
aGF0IHdlIHBhc3MgdG8gdGhlIGVuY29kZXIgcGVyIGZyYW1lIHRvIGVuY29kZS4gV2UgcmVjZWl2
ZSBpdCBhZ2FpbgorLy8gaW4gdGhlIGVuY29kZXIgY2FsbGJhY2suCitzdHJ1Y3QgQVBJX0FWQUlM
QUJMRShpb3MoMTEuMCkpIFJUQ0ZyYW1lRW5jb2RlUGFyYW1zIHsKKyAgUlRDRnJhbWVFbmNvZGVQ
YXJhbXMoUlRDVmlkZW9FbmNvZGVySDI2NSogZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50
MzJfdCB3LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGgsCisgICAgICAgICAgICAg
ICAgICAgICAgIGludDY0X3QgcnRtcywKKyAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg
dHMsCisgICAgICAgICAgICAgICAgICAgICAgIFJUQ1ZpZGVvUm90YXRpb24gcikKKyAgICAgIDog
ZW5jb2RlcihlKSwKKyAgICAgICAgd2lkdGgodyksCisgICAgICAgIGhlaWdodChoKSwKKyAgICAg
ICAgcmVuZGVyX3RpbWVfbXMocnRtcyksCisgICAgICAgIHRpbWVzdGFtcCh0cyksCisgICAgICAg
IHJvdGF0aW9uKHIpIHt9CisKKyAgUlRDVmlkZW9FbmNvZGVySDI2NSogZW5jb2RlcjsKKyAgaW50
MzJfdCB3aWR0aDsKKyAgaW50MzJfdCBoZWlnaHQ7CisgIGludDY0X3QgcmVuZGVyX3RpbWVfbXM7
CisgIHVpbnQzMl90IHRpbWVzdGFtcDsKKyAgUlRDVmlkZW9Sb3RhdGlvbiByb3RhdGlvbjsKK307
CisKKy8vIFdlIHJlY2VpdmUgSTQyMEZyYW1lcyBhcyBpbnB1dCwgYnV0IHdlIG5lZWQgdG8gZmVl
ZCBDVlBpeGVsQnVmZmVycyBpbnRvIHRoZQorLy8gZW5jb2Rlci4gVGhpcyBwZXJmb3JtcyB0aGUg
Y29weSBhbmQgZm9ybWF0IGNvbnZlcnNpb24uCisvLyBUT0RPKHRrY2hpbik6IFNlZSBpZiBlbmNv
ZGVyIHdpbGwgYWNjZXB0IGk0MjAgZnJhbWVzIGFuZCBjb21wYXJlIHBlcmZvcm1hbmNlLgorYm9v
bCBDb3B5VmlkZW9GcmFtZVRvUGl4ZWxCdWZmZXIoaWQ8UlRDSTQyMEJ1ZmZlcj4gZnJhbWVCdWZm
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVlBpeGVsQnVmZmVyUmVmIHBp
eGVsQnVmZmVyKSB7CisgIFJUQ19EQ0hFQ0socGl4ZWxCdWZmZXIpOworICBSVENfRENIRUNLX0VR
KENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxCdWZmZXIpLAorICAgICAgICAg
ICAgICAgIGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2UpOwor
ICBSVENfRENIRUNLX0VRKENWUGl4ZWxCdWZmZXJHZXRIZWlnaHRPZlBsYW5lKHBpeGVsQnVmZmVy
LCAwKSwKKyAgICAgICAgICAgICAgICBmcmFtZUJ1ZmZlci5oZWlnaHQpOworICBSVENfRENIRUNL
X0VRKENWUGl4ZWxCdWZmZXJHZXRXaWR0aE9mUGxhbmUocGl4ZWxCdWZmZXIsIDApLAorICAgICAg
ICAgICAgICAgIGZyYW1lQnVmZmVyLndpZHRoKTsKKworICBDVlJldHVybiBjdlJldCA9IENWUGl4
ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOworICBpZiAoY3ZSZXQgIT0g
a0NWUmV0dXJuU3VjY2VzcykgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8g
bG9jayBiYXNlIGFkZHJlc3M6ICIgPDwgY3ZSZXQ7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisK
KyAgdWludDhfdCogZHN0WSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KAorICAgICAgQ1ZQ
aXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCkpOworICBpbnQg
ZHN0U3RyaWRlWSA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvd09mUGxhbmUocGl4ZWxCdWZm
ZXIsIDApOworICB1aW50OF90KiBkc3RVViA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KAor
ICAgICAgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSkp
OworICBpbnQgZHN0U3RyaWRlVVYgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3dPZlBsYW5l
KHBpeGVsQnVmZmVyLCAxKTsKKyAgLy8gQ29udmVydCBJNDIwIHRvIE5WMTIuCisgIGludCByZXQg
PSBsaWJ5dXY6Okk0MjBUb05WMTIoCisgICAgICBmcmFtZUJ1ZmZlci5kYXRhWSwgZnJhbWVCdWZm
ZXIuc3RyaWRlWSwgZnJhbWVCdWZmZXIuZGF0YVUsCisgICAgICBmcmFtZUJ1ZmZlci5zdHJpZGVV
LCBmcmFtZUJ1ZmZlci5kYXRhViwgZnJhbWVCdWZmZXIuc3RyaWRlViwgZHN0WSwKKyAgICAgIGRz
dFN0cmlkZVksIGRzdFVWLCBkc3RTdHJpZGVVViwgZnJhbWVCdWZmZXIud2lkdGgsIGZyYW1lQnVm
ZmVyLmhlaWdodCk7CisgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZl
ciwgMCk7CisgIGlmIChyZXQpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRXJyb3IgY29u
dmVydGluZyBJNDIwIFZpZGVvRnJhbWUgdG8gTlYxMiA6IiA8PCByZXQ7CisgICAgcmV0dXJuIGZh
bHNlOworICB9CisgIHJldHVybiB0cnVlOworfQorCitDVlBpeGVsQnVmZmVyUmVmIENyZWF0ZVBp
eGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJQb29sUmVmIHBpeGVsX2J1ZmZlcl9wb29sKSB7CisgIGlm
ICghcGl4ZWxfYnVmZmVyX3Bvb2wpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVk
IHRvIGdldCBwaXhlbCBidWZmZXIgcG9vbC4iOworICAgIHJldHVybiBudWxscHRyOworICB9Cisg
IENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxfYnVmZmVyOworICBDVlJldHVybiByZXQgPSBDVlBpeGVs
QnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKG51bGxwdHIsIHBpeGVsX2J1ZmZlcl9wb29sLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwaXhl
bF9idWZmZXIpOworICBpZiAocmV0ICE9IGtDVlJldHVyblN1Y2Nlc3MpIHsKKyAgICBSVENfTE9H
KExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBwaXhlbCBidWZmZXI6ICIgPDwgcmV0Owor
ICAgIC8vIFdlIHByb2JhYmx5IHdhbnQgdG8gZHJvcCBmcmFtZXMgaGVyZSwgc2luY2UgZmFpbHVy
ZSBwcm9iYWJseSBtZWFucworICAgIC8vIHRoYXQgdGhlIHBvb2wgaXMgZW1wdHkuCisgICAgcmV0
dXJuIG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIHBpeGVsX2J1ZmZlcjsKK30KKworLy8gVGhpcyBp
cyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBWaWRlb1Rvb2xib3ggY2FsbHMgd2hlbiBlbmNv
ZGUgaXMKKy8vIGNvbXBsZXRlLiBGcm9tIGluc3BlY3Rpb24gdGhpcyBoYXBwZW5zIG9uIGl0cyBv
d24gcXVldWUuCit2b2lkIGNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sodm9pZCogZW5jb2RlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBwYXJhbXMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgT1NTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFZURW5jb2RlSW5mb0ZsYWdzIGluZm9GbGFncywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCisgICAgQVBJ
X0FWQUlMQUJMRShpb3MoMTEuMCkpIHsKKyAgUlRDX0NIRUNLKHBhcmFtcyk7CisgIHN0ZDo6dW5p
cXVlX3B0cjxSVENGcmFtZUVuY29kZVBhcmFtcz4gZW5jb2RlUGFyYW1zKAorICAgICAgcmVpbnRl
cnByZXRfY2FzdDxSVENGcmFtZUVuY29kZVBhcmFtcyo+KHBhcmFtcykpOworICBSVENfQ0hFQ0so
ZW5jb2RlUGFyYW1zLT5lbmNvZGVyKTsKKyAgW2VuY29kZVBhcmFtcy0+ZW5jb2RlciBmcmFtZVdh
c0VuY29kZWQ6c3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdz
OmluZm9GbGFncworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZUJ1ZmZlcjpzYW1w
bGVCdWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ZW5jb2Rl
UGFyYW1zLT53aWR0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDpl
bmNvZGVQYXJhbXMtPmhlaWdodAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlclRp
bWVNczplbmNvZGVQYXJhbXMtPnJlbmRlcl90aW1lX21zCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZXN0YW1wOmVuY29kZVBhcmFtcy0+dGltZXN0YW1wCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOmVuY29kZVBhcmFtcy0+cm90YXRpb25dOworfQor
fSAgLy8gbmFtZXNwYWNlCisKK0BpbXBsZW1lbnRhdGlvbiBSVENWaWRlb0VuY29kZXJIMjY1IHsK
KyAgUlRDVmlkZW9Db2RlY0luZm8qIF9jb2RlY0luZm87CisgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJy
dGM6OkJpdHJhdGVBZGp1c3Rlcj4gX2JpdHJhdGVBZGp1c3RlcjsKKyAgdWludDMyX3QgX3Rhcmdl
dEJpdHJhdGVCcHM7CisgIHVpbnQzMl90IF9lbmNvZGVyQml0cmF0ZUJwczsKKyAgQ0ZTdHJpbmdS
ZWYgX3Byb2ZpbGU7CisgIFJUQ1ZpZGVvRW5jb2RlckNhbGxiYWNrIF9jYWxsYmFjazsKKyAgaW50
MzJfdCBfd2lkdGg7CisgIGludDMyX3QgX2hlaWdodDsKKyAgVlRDb21wcmVzc2lvblNlc3Npb25S
ZWYgX2NvbXByZXNzaW9uU2Vzc2lvbjsKKyAgUlRDVmlkZW9Db2RlY01vZGUgX21vZGU7CisgIGlu
dCBmcmFtZXNMZWZ0OworCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IF9udjEyU2NhbGVCdWZmZXI7
Cit9CisKKy8vIC41IGlzIHNldCBhcyBhIG1pbmludW0gdG8gcHJldmVudCBvdmVyY29tcGVuc2F0
aW5nIGZvciBsYXJnZSB0ZW1wb3JhcnkKKy8vIG92ZXJzaG9vdHMuIFdlIGRvbid0IHdhbnQgdG8g
ZGVncmFkZSB2aWRlbyBxdWFsaXR5IHRvbyBiYWRseS4KKy8vIC45NSBpcyBzZXQgdG8gcHJldmVu
dCBvc2NpbGxhdGlvbnMuIFdoZW4gYSBsb3dlciBiaXRyYXRlIGlzIHNldCBvbiB0aGUKKy8vIGVu
Y29kZXIgdGhhbiBwcmV2aW91c2x5IHNldCwgaXRzIG91dHB1dCBzZWVtcyB0byBoYXZlIGEgYnJp
ZWYgcGVyaW9kIG9mCisvLyBkcmFzdGljYWxseSByZWR1Y2VkIGJpdHJhdGUsIHNvIHdlIHdhbnQg
dG8gYXZvaWQgdGhhdC4gSW4gc3RlYWR5IHN0YXRlCisvLyBjb25kaXRpb25zLCAwLjk1IHNlZW1z
IHRvIGdpdmUgdXMgYmV0dGVyIG92ZXJhbGwgYml0cmF0ZSBvdmVyIGxvbmcgcGVyaW9kcworLy8g
b2YgdGltZS4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVjSW5mbzooUlRDVmlkZW9Db2Rl
Y0luZm8qKWNvZGVjSW5mbyB7CisgIGlmIChzZWxmID0gW3N1cGVyIGluaXRdKSB7CisgICAgX2Nv
ZGVjSW5mbyA9IGNvZGVjSW5mbzsKKyAgICBfYml0cmF0ZUFkanVzdGVyLnJlc2V0KG5ldyB3ZWJy
dGM6OkJpdHJhdGVBZGp1c3RlciguNSwgLjk1KSk7CisgICAgUlRDX0NIRUNLKFtjb2RlY0luZm8u
bmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJIMjY1Il0pOworICB9CisgIHJldHVybiBzZWxmOworfQor
CistICh2b2lkKWRlYWxsb2MgeworICBbc2VsZiBkZXN0cm95Q29tcHJlc3Npb25TZXNzaW9uXTsK
K30KKworLSAoTlNJbnRlZ2VyKXN0YXJ0RW5jb2RlV2l0aFNldHRpbmdzOihSVENWaWRlb0VuY29k
ZXJTZXR0aW5ncyopc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyT2ZDb3Jl
czooaW50KW51bWJlck9mQ29yZXMgeworICBSVENfRENIRUNLKHNldHRpbmdzKTsKKyAgUlRDX0RD
SEVDSyhbc2V0dGluZ3MubmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJIMjY1Il0pOworCisgIF93aWR0
aCA9IHNldHRpbmdzLndpZHRoOworICBfaGVpZ2h0ID0gc2V0dGluZ3MuaGVpZ2h0OworICBfbW9k
ZSA9IHNldHRpbmdzLm1vZGU7CisKKyAgLy8gV2UgY2FuIG9ubHkgc2V0IGF2ZXJhZ2UgYml0cmF0
ZSBvbiB0aGUgSFcgZW5jb2Rlci4KKyAgX3RhcmdldEJpdHJhdGVCcHMgPSBzZXR0aW5ncy5zdGFy
dEJpdHJhdGU7CisgIF9iaXRyYXRlQWRqdXN0ZXItPlNldFRhcmdldEJpdHJhdGVCcHMoX3Rhcmdl
dEJpdHJhdGVCcHMpOworCisgIC8vIFRPRE8odGtjaGluKTogVHJ5IHNldHRpbmcgcGF5bG9hZCBz
aXplIHZpYQorICAvLyBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heGgyNjVTbGljZUJ5dGVz
LgorCisgIHJldHVybiBbc2VsZiByZXNldENvbXByZXNzaW9uU2Vzc2lvbl07Cit9CisKKy0gKE5T
SW50ZWdlcillbmNvZGU6KFJUQ1ZpZGVvRnJhbWUqKWZyYW1lCisgICAgY29kZWNTcGVjaWZpY0lu
Zm86KGlkPFJUQ0NvZGVjU3BlY2lmaWNJbmZvPiljb2RlY1NwZWNpZmljSW5mbworICAgICAgICAg
ICBmcmFtZVR5cGVzOihOU0FycmF5PE5TTnVtYmVyKj4qKWZyYW1lVHlwZXMgeworICBSVENfRENI
RUNLX0VRKGZyYW1lLndpZHRoLCBfd2lkdGgpOworICBSVENfRENIRUNLX0VRKGZyYW1lLmhlaWdo
dCwgX2hlaWdodCk7CisgIGlmICghX2NhbGxiYWNrIHx8ICFfY29tcHJlc3Npb25TZXNzaW9uKSB7
CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19VTklOSVRJQUxJWkVEOworICB9CisgIEJP
T0wgaXNLZXlmcmFtZVJlcXVpcmVkID0gTk87CisKKyAgLy8gR2V0IGEgcGl4ZWwgYnVmZmVyIGZy
b20gdGhlIHBvb2wgYW5kIGNvcHkgZnJhbWUgZGF0YSBvdmVyLgorICBDVlBpeGVsQnVmZmVyUG9v
bFJlZiBwaXhlbEJ1ZmZlclBvb2wgPQorICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25HZXRQaXhl
bEJ1ZmZlclBvb2woX2NvbXByZXNzaW9uU2Vzc2lvbik7CisKKyNpZiBkZWZpbmVkKFdFQlJUQ19J
T1MpCisgIGlmICghcGl4ZWxCdWZmZXJQb29sKSB7CisgICAgLy8gS2luZCBvZiBhIGhhY2suIE9u
IGJhY2tncm91bmRpbmcsIHRoZSBjb21wcmVzc2lvbiBzZXNzaW9uIHNlZW1zIHRvIGdldAorICAg
IC8vIGludmFsaWRhdGVkLCB3aGljaCBjYXVzZXMgdGhpcyBwb29sIGNhbGwgdG8gZmFpbCB3aGVu
IHRoZSBhcHBsaWNhdGlvbgorICAgIC8vIGlzIGZvcmVncm91bmRlZCBhbmQgZnJhbWVzIGFyZSBi
ZWluZyBzZW50IGZvciBlbmNvZGluZyBhZ2Fpbi4KKyAgICAvLyBSZXNldHRpbmcgdGhlIHNlc3Np
b24gd2hlbiB0aGlzIGhhcHBlbnMgZml4ZXMgdGhlIGlzc3VlLgorICAgIC8vIEluIGFkZGl0aW9u
IHdlIHJlcXVlc3QgYSBrZXlmcmFtZSBzbyB2aWRlbyBjYW4gcmVjb3ZlciBxdWlja2x5LgorICAg
IFtzZWxmIHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uXTsKKyAgICBwaXhlbEJ1ZmZlclBvb2wgPQor
ICAgICAgICBWVENvbXByZXNzaW9uU2Vzc2lvbkdldFBpeGVsQnVmZmVyUG9vbChfY29tcHJlc3Np
b25TZXNzaW9uKTsKKyAgICBpc0tleWZyYW1lUmVxdWlyZWQgPSBZRVM7CisgICAgUlRDX0xPRyhM
U19JTkZPKSA8PCAiUmVzZXR0aW5nIGNvbXByZXNzaW9uIHNlc3Npb24gZHVlIHRvIGludmFsaWQg
cG9vbC4iOworICB9CisjZW5kaWYKKworICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0g
bnVsbHB0cjsKKyAgaWYgKFtmcmFtZS5idWZmZXIgaXNLaW5kT2ZDbGFzczpbUlRDQ1ZQaXhlbEJ1
ZmZlciBjbGFzc11dKSB7CisgICAgLy8gTmF0aXZlIGZyYW1lIGJ1ZmZlcgorICAgIFJUQ0NWUGl4
ZWxCdWZmZXIqIHJ0Y1BpeGVsQnVmZmVyID0gKFJUQ0NWUGl4ZWxCdWZmZXIqKWZyYW1lLmJ1ZmZl
cjsKKyAgICBpZiAoIVtydGNQaXhlbEJ1ZmZlciByZXF1aXJlc0Nyb3BwaW5nXSkgeworICAgICAg
Ly8gVGhpcyBwaXhlbCBidWZmZXIgbWlnaHQgaGF2ZSBhIGhpZ2hlciByZXNvbHV0aW9uIHRoYW4g
d2hhdCB0aGUKKyAgICAgIC8vIGNvbXByZXNzaW9uIHNlc3Npb24gaXMgY29uZmlndXJlZCB0by4g
VGhlIGNvbXByZXNzaW9uIHNlc3Npb24gY2FuCisgICAgICAvLyBoYW5kbGUgdGhhdCBhbmQgd2ls
bCBvdXRwdXQgZW5jb2RlZCBmcmFtZXMgaW4gdGhlIGNvbmZpZ3VyZWQKKyAgICAgIC8vIHJlc29s
dXRpb24gcmVnYXJkbGVzcyBvZiB0aGUgaW5wdXQgcGl4ZWwgYnVmZmVyIHJlc29sdXRpb24uCisg
ICAgICBwaXhlbEJ1ZmZlciA9IHJ0Y1BpeGVsQnVmZmVyLnBpeGVsQnVmZmVyOworICAgICAgQ1ZC
dWZmZXJSZXRhaW4ocGl4ZWxCdWZmZXIpOworICAgIH0gZWxzZSB7CisgICAgICAvLyBDcm9wcGlu
ZyByZXF1aXJlZCwgd2UgbmVlZCB0byBjcm9wIGFuZCBzY2FsZSB0byBhIG5ldyBwaXhlbCBidWZm
ZXIuCisgICAgICBwaXhlbEJ1ZmZlciA9IENyZWF0ZVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyUG9v
bCk7CisgICAgICBpZiAoIXBpeGVsQnVmZmVyKSB7CisgICAgICAgIHJldHVybiBXRUJSVENfVklE
RU9fQ09ERUNfRVJST1I7CisgICAgICB9CisgICAgICBpbnQgZHN0V2lkdGggPSBDVlBpeGVsQnVm
ZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOworICAgICAgaW50IGRzdEhlaWdodCA9IENWUGl4ZWxC
dWZmZXJHZXRIZWlnaHQocGl4ZWxCdWZmZXIpOworICAgICAgaWYgKFtydGNQaXhlbEJ1ZmZlciBy
ZXF1aXJlc1NjYWxpbmdUb1dpZHRoOmRzdFdpZHRoIGhlaWdodDpkc3RIZWlnaHRdKSB7CisgICAg
ICAgIGludCBzaXplID0KKyAgICAgICAgICAgIFtydGNQaXhlbEJ1ZmZlciBidWZmZXJTaXplRm9y
Q3JvcHBpbmdBbmRTY2FsaW5nVG9XaWR0aDpkc3RXaWR0aAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OmRzdEhlaWdodF07
CisgICAgICAgIF9udjEyU2NhbGVCdWZmZXIucmVzaXplKHNpemUpOworICAgICAgfSBlbHNlIHsK
KyAgICAgICAgX252MTJTY2FsZUJ1ZmZlci5jbGVhcigpOworICAgICAgfQorICAgICAgX252MTJT
Y2FsZUJ1ZmZlci5zaHJpbmtfdG9fZml0KCk7CisgICAgICBpZiAoIVtydGNQaXhlbEJ1ZmZlciBj
cm9wQW5kU2NhbGVUbzpwaXhlbEJ1ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0
aFRlbXBCdWZmZXI6X252MTJTY2FsZUJ1ZmZlci5kYXRhKCldKSB7CisgICAgICAgIHJldHVybiBX
RUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgICAgICB9CisgICAgfQorICB9CisKKyAgaWYgKCFw
aXhlbEJ1ZmZlcikgeworICAgIC8vIFdlIGRpZCBub3QgaGF2ZSBhIG5hdGl2ZSBmcmFtZSBidWZm
ZXIKKyAgICBwaXhlbEJ1ZmZlciA9IENyZWF0ZVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyUG9vbCk7
CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikgeworICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RF
Q19FUlJPUjsKKyAgICB9CisgICAgUlRDX0RDSEVDSyhwaXhlbEJ1ZmZlcik7CisgICAgaWYgKCFD
b3B5VmlkZW9GcmFtZVRvUGl4ZWxCdWZmZXIoW2ZyYW1lLmJ1ZmZlciB0b0k0MjBdLCBwaXhlbEJ1
ZmZlcikpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY29weSBmcmFt
ZSBkYXRhLiI7CisgICAgICBDVkJ1ZmZlclJlbGVhc2UocGl4ZWxCdWZmZXIpOworICAgICAgcmV0
dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgICB9CisgIH0KKworICAvLyBDaGVjayBp
ZiB3ZSBuZWVkIGEga2V5ZnJhbWUuCisgIGlmICghaXNLZXlmcmFtZVJlcXVpcmVkICYmIGZyYW1l
VHlwZXMpIHsKKyAgICBmb3IgKE5TTnVtYmVyKiBmcmFtZVR5cGUgaW4gZnJhbWVUeXBlcykgewor
ICAgICAgaWYgKChSVENGcmFtZVR5cGUpZnJhbWVUeXBlLmludFZhbHVlID09IFJUQ0ZyYW1lVHlw
ZVZpZGVvRnJhbWVLZXkpIHsKKyAgICAgICAgaXNLZXlmcmFtZVJlcXVpcmVkID0gWUVTOworICAg
ICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBDTVRpbWUgcHJlc2VudGF0aW9u
VGltZVN0YW1wID0KKyAgICAgIENNVGltZU1ha2UoZnJhbWUudGltZVN0YW1wTnMgLyBydGM6OmtO
dW1OYW5vc2Vjc1Blck1pbGxpc2VjLCAxMDAwKTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJv
cGVydGllcyA9IG51bGxwdHI7CisgIGlmIChpc0tleWZyYW1lUmVxdWlyZWQpIHsKKyAgICBDRlR5
cGVSZWYga2V5c1tdID0ge2tWVEVuY29kZUZyYW1lT3B0aW9uS2V5X0ZvcmNlS2V5RnJhbWV9Owor
ICAgIENGVHlwZVJlZiB2YWx1ZXNbXSA9IHtrQ0ZCb29sZWFuVHJ1ZX07CisgICAgZnJhbWVQcm9w
ZXJ0aWVzID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShrZXlzLCB2YWx1ZXMsIDEpOworICB9CisK
KyAgc3RkOjp1bmlxdWVfcHRyPFJUQ0ZyYW1lRW5jb2RlUGFyYW1zPiBlbmNvZGVQYXJhbXM7Cisg
IGVuY29kZVBhcmFtcy5yZXNldChuZXcgUlRDRnJhbWVFbmNvZGVQYXJhbXMoCisgICAgICBzZWxm
LCBfd2lkdGgsIF9oZWlnaHQsIGZyYW1lLnRpbWVTdGFtcE5zIC8gcnRjOjprTnVtTmFub3NlY3NQ
ZXJNaWxsaXNlYywKKyAgICAgIGZyYW1lLnRpbWVTdGFtcCwgZnJhbWUucm90YXRpb24pKTsKKwor
ICAvLyBVcGRhdGUgdGhlIGJpdHJhdGUgaWYgbmVlZGVkLgorICBbc2VsZiBzZXRCaXRyYXRlQnBz
Ol9iaXRyYXRlQWRqdXN0ZXItPkdldEFkanVzdGVkQml0cmF0ZUJwcygpXTsKKworICBPU1N0YXR1
cyBzdGF0dXMgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1lKAorICAgICAgX2NvbXBy
ZXNzaW9uU2Vzc2lvbiwgcGl4ZWxCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwga0NNVGlt
ZUludmFsaWQsCisgICAgICBmcmFtZVByb3BlcnRpZXMsIGVuY29kZVBhcmFtcy5yZWxlYXNlKCks
IG51bGxwdHIpOworICBpZiAoZnJhbWVQcm9wZXJ0aWVzKSB7CisgICAgQ0ZSZWxlYXNlKGZyYW1l
UHJvcGVydGllcyk7CisgIH0KKyAgaWYgKHBpeGVsQnVmZmVyKSB7CisgICAgQ1ZCdWZmZXJSZWxl
YXNlKHBpeGVsQnVmZmVyKTsKKyAgfQorICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRD
X0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBlbmNvZGUgZnJhbWUgd2l0aCBjb2RlOiAiIDw8
IHN0YXR1czsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIHJl
dHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KFJU
Q1ZpZGVvRW5jb2RlckNhbGxiYWNrKWNhbGxiYWNrIHsKKyAgX2NhbGxiYWNrID0gY2FsbGJhY2s7
Cit9CisKKy0gKGludClzZXRCaXRyYXRlOih1aW50MzJfdCliaXRyYXRlS2JpdCBmcmFtZXJhdGU6
KHVpbnQzMl90KWZyYW1lcmF0ZSB7CisgIF90YXJnZXRCaXRyYXRlQnBzID0gMTAwMCAqIGJpdHJh
dGVLYml0OworICBfYml0cmF0ZUFkanVzdGVyLT5TZXRUYXJnZXRCaXRyYXRlQnBzKF90YXJnZXRC
aXRyYXRlQnBzKTsKKyAgW3NlbGYgc2V0Qml0cmF0ZUJwczpfYml0cmF0ZUFkanVzdGVyLT5HZXRB
ZGp1c3RlZEJpdHJhdGVCcHMoKV07CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9
CisKKyNwcmFnbWEgbWFyayAtIFByaXZhdGUKKworLSAoTlNJbnRlZ2VyKXJlbGVhc2VFbmNvZGVy
IHsKKyAgLy8gTmVlZCB0byBkZXN0cm95IHNvIHRoYXQgdGhlIHNlc3Npb24gaXMgaW52YWxpZGF0
ZWQgYW5kIHdvbid0IHVzZSB0aGUKKyAgLy8gY2FsbGJhY2sgYW55bW9yZS4gRG8gbm90IHJlbW92
ZSBjYWxsYmFjayB1bnRpbCB0aGUgc2Vzc2lvbiBpcyBpbnZhbGlkYXRlZAorICAvLyBzaW5jZSBh
c3luYyBlbmNvZGVyIGNhbGxiYWNrcyBjYW4gb2NjdXIgdW50aWwgaW52YWxpZGF0aW9uLgorICBb
c2VsZiBkZXN0cm95Q29tcHJlc3Npb25TZXNzaW9uXTsKKyAgX2NhbGxiYWNrID0gbnVsbHB0cjsK
KyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAoaW50KXJlc2V0Q29tcHJl
c3Npb25TZXNzaW9uIHsKKyAgW3NlbGYgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAg
Ly8gU2V0IHNvdXJjZSBpbWFnZSBidWZmZXIgYXR0cmlidXRlcy4gVGhlc2UgYXR0cmlidXRlcyB3
aWxsIGJlIHByZXNlbnQgb24KKyAgLy8gYnVmZmVycyByZXRyaWV2ZWQgZnJvbSB0aGUgZW5jb2Rl
cidzIHBpeGVsIGJ1ZmZlciBwb29sLgorICBjb25zdCBzaXplX3QgYXR0cmlidXRlc1NpemUgPSAz
OworICBDRlR5cGVSZWYga2V5c1thdHRyaWJ1dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5lZChXRUJS
VENfSU9TKQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5LAorI2Vs
aWYgZGVmaW5lZChXRUJSVENfTUFDKQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJp
bGl0eUtleSwKKyNlbmRpZgorICAgIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tl
eSwKKyAgICBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleQorICB9OworICBDRkRpY3Rp
b25hcnlSZWYgaW9TdXJmYWNlVmFsdWUgPSBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51bGxwdHIs
IG51bGxwdHIsIDApOworICBpbnQ2NF90IG52MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQy
MFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsKKyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3JtYXQgPQor
ICAgICAgQ0ZOdW1iZXJDcmVhdGUobnVsbHB0ciwga0NGTnVtYmVyTG9uZ1R5cGUsICZudjEydHlw
ZSk7CisgIENGVHlwZVJlZiB2YWx1ZXNbYXR0cmlidXRlc1NpemVdID0ge2tDRkJvb2xlYW5UcnVl
LCBpb1N1cmZhY2VWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGl4ZWxGb3JtYXR9OworICBDRkRpY3Rpb25hcnlSZWYgc291cmNlQXR0cmlidXRlcyA9CisgICAg
ICBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KGtleXMsIHZhbHVlcywgYXR0cmlidXRlc1NpemUpOwor
ICBpZiAoaW9TdXJmYWNlVmFsdWUpIHsKKyAgICBDRlJlbGVhc2UoaW9TdXJmYWNlVmFsdWUpOwor
ICAgIGlvU3VyZmFjZVZhbHVlID0gbnVsbHB0cjsKKyAgfQorICBpZiAocGl4ZWxGb3JtYXQpIHsK
KyAgICBDRlJlbGVhc2UocGl4ZWxGb3JtYXQpOworICAgIHBpeGVsRm9ybWF0ID0gbnVsbHB0cjsK
KyAgfQorICBDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGVuY29kZXJfc3BlY3MgPSBudWxscHRyOwor
I2lmIGRlZmluZWQoV0VCUlRDX01BQykgJiYgIWRlZmluZWQoV0VCUlRDX0lPUykKKyAgLy8gQ3Vy
cmVudGx5IGh3IGFjY2wgaXMgc3VwcG9ydGVkIGFib3ZlIDM2MHAgb24gbWFjLCBiZWxvdyAzNjBw
CisgIC8vIHRoZSBjb21wcmVzc2lvbiBzZXNzaW9uIHdpbGwgYmUgY3JlYXRlZCB3aXRoIGh3IGFj
Y2wgZGlzYWJsZWQuCisgIGVuY29kZXJfc3BlY3MgPQorICAgICAgQ0ZEaWN0aW9uYXJ5Q3JlYXRl
TXV0YWJsZShudWxscHRyLCAxLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJh
Y2tzKTsKKyAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoCisgICAgICBlbmNvZGVyX3NwZWNzLAorICAg
ICAga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVk
VmlkZW9FbmNvZGVyLAorICAgICAga0NGQm9vbGVhblRydWUpOworI2VuZGlmCisgIE9TU3RhdHVz
IHN0YXR1cyA9IFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlKAorICAgICAgbnVsbHB0ciwgIC8v
IHVzZSBkZWZhdWx0IGFsbG9jYXRvcgorICAgICAgX3dpZHRoLCBfaGVpZ2h0LCBrQ01WaWRlb0Nv
ZGVjVHlwZV9IRVZDLAorICAgICAgZW5jb2Rlcl9zcGVjcywgIC8vIHVzZSBoYXJkd2FyZSBhY2Nl
bGVyYXRlZCBlbmNvZGVyIGlmIGF2YWlsYWJsZQorICAgICAgc291cmNlQXR0cmlidXRlcywKKyAg
ICAgIG51bGxwdHIsICAvLyB1c2UgZGVmYXVsdCBjb21wcmVzc2VkIGRhdGEgYWxsb2NhdG9yCisg
ICAgICBjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrLCBudWxscHRyLCAmX2NvbXByZXNzaW9uU2Vz
c2lvbik7CisgIGlmIChzb3VyY2VBdHRyaWJ1dGVzKSB7CisgICAgQ0ZSZWxlYXNlKHNvdXJjZUF0
dHJpYnV0ZXMpOworICAgIHNvdXJjZUF0dHJpYnV0ZXMgPSBudWxscHRyOworICB9CisgIGlmIChl
bmNvZGVyX3NwZWNzKSB7CisgICAgQ0ZSZWxlYXNlKGVuY29kZXJfc3BlY3MpOworICAgIGVuY29k
ZXJfc3BlY3MgPSBudWxscHRyOworICB9CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBS
VENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBjb21wcmVzc2lvbiBzZXNzaW9u
OiAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9
CisjaWYgZGVmaW5lZChXRUJSVENfTUFDKSAmJiAhZGVmaW5lZChXRUJSVENfSU9TKQorICBDRkJv
b2xlYW5SZWYgaHdhY2NsX2VuYWJsZWQgPSBudWxscHRyOworICBzdGF0dXMgPSBWVFNlc3Npb25D
b3B5UHJvcGVydHkoCisgICAgICBfY29tcHJlc3Npb25TZXNzaW9uLAorICAgICAga1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9Vc2luZ0hhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIsIG51
bGxwdHIsCisgICAgICAmaHdhY2NsX2VuYWJsZWQpOworICBpZiAoc3RhdHVzID09IG5vRXJyICYm
IChDRkJvb2xlYW5HZXRWYWx1ZShod2FjY2xfZW5hYmxlZCkpKSB7CisgICAgUlRDX0xPRyhMU19J
TkZPKSA8PCAiQ29tcHJlc3Npb24gc2Vzc2lvbiBjcmVhdGVkIHdpdGggaHcgYWNjbCBlbmFibGVk
IjsKKyAgfSBlbHNlIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJDb21wcmVzc2lvbiBzZXNz
aW9uIGNyZWF0ZWQgd2l0aCBodyBhY2NsIGRpc2FibGVkIjsKKyAgfQorI2VuZGlmCisgIFtzZWxm
IGNvbmZpZ3VyZUNvbXByZXNzaW9uU2Vzc2lvbl07CisgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfT0s7Cit9CisKKy0gKHZvaWQpY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uIHsKKyAgUlRD
X0RDSEVDSyhfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgU2V0VlRTZXNzaW9uUHJvcGVydHkoX2Nv
bXByZXNzaW9uU2Vzc2lvbiwgbnVsbHB0ciwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFs
VGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7CisgIC8vIFNldFZUU2Vzc2lvblBy
b3BlcnR5KF9jb21wcmVzc2lvblNlc3Npb24sIG51bGxwdHIsCisgIC8vIGtWVENvbXByZXNzaW9u
UHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBfcHJvZmlsZSk7CisgIFNldFZUU2Vzc2lvblByb3Bl
cnR5KF9jb21wcmVzc2lvblNlc3Npb24sIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAg
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQWxsb3dGcmFtZVJlb3JkZXJpbmcsIGZhbHNlKTsK
KyAgW3NlbGYgc2V0RW5jb2RlckJpdHJhdGVCcHM6X3RhcmdldEJpdHJhdGVCcHNdOworICAvLyBU
T0RPKHRrY2hpbik6IExvb2sgYXQgZW50cm9weSBtb2RlIGFuZCBjb2xvcnNwYWNlIG1hdHJpY2Vz
LgorICAvLyBUT0RPKHRrY2hpbik6IEludmVzdGlnYXRlIHRvIHNlZSBpZiB0aGVyZSdzIGFueSB3
YXkgdG8gbWFrZSB0aGlzIHdvcmsuCisgIC8vIE1heSBuZWVkIGl0IHRvIGludGVyb3Agd2l0aCBB
bmRyb2lkLiBDdXJyZW50bHkgdGhpcyBjYWxsIGp1c3QgZmFpbHMuCisgIC8vIE9uIGluc3BlY3Rp
bmcgZW5jb2RlciBvdXRwdXQgb24gaU9TOCwgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gNi4KKyAgLy8g
aW50ZXJuYWw6OlNldFZUU2Vzc2lvblByb3BlcnR5KGNvbXByZXNzaW9uX3Nlc3Npb25fLAorICAv
LyAgICAga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhGcmFtZURlbGF5Q291bnQsCisgIC8v
ICAgICAxKTsKKworICAvLyBTZXQgYSByZWxhdGl2ZWx5IGxhcmdlIHZhbHVlIGZvciBrZXlmcmFt
ZSBlbWlzc2lvbiAoNzIwMCBmcmFtZXMgb3IgNAorICAvLyBtaW51dGVzKS4KKyAgU2V0VlRTZXNz
aW9uUHJvcGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwgbnVsbHB0ciwKKyAgICAgICAgICAgICAg
ICAgICAgICAga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsLCA3
MjAwKTsKKyAgU2V0VlRTZXNzaW9uUHJvcGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwgbnVsbHB0
ciwKKyAgICAgICAgICAgICAgICAgICAgICAga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhL
ZXlGcmFtZUludGVydmFsRHVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgIDI0MCk7Cisg
IE9TU3RhdHVzIHN0YXR1cyA9CisgICAgICBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0Vu
Y29kZUZyYW1lcyhfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgaWYgKHN0YXR1cyAhPSBub0Vycikg
eworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJDb21wcmVzc2lvbiBzZXNzaW9uIGZhaWxlZCB0
byBwcmVwYXJlIGVuY29kZSBmcmFtZXMuIjsKKyAgfQorfQorCistICh2b2lkKWRlc3Ryb3lDb21w
cmVzc2lvblNlc3Npb24geworICBpZiAoX2NvbXByZXNzaW9uU2Vzc2lvbikgeworICAgIFZUQ29t
cHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBDRlJl
bGVhc2UoX2NvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgX2NvbXByZXNzaW9uU2Vzc2lvbiA9IG51
bGxwdHI7CisgIH0KK30KKworLSAoTlNTdHJpbmcqKWltcGxlbWVudGF0aW9uTmFtZSB7CisgIHJl
dHVybiBAIlZpZGVvVG9vbGJveCI7Cit9CisKKy0gKHZvaWQpc2V0Qml0cmF0ZUJwczoodWludDMy
X3QpYml0cmF0ZUJwcyB7CisgIGlmIChfZW5jb2RlckJpdHJhdGVCcHMgIT0gYml0cmF0ZUJwcykg
eworICAgIFtzZWxmIHNldEVuY29kZXJCaXRyYXRlQnBzOmJpdHJhdGVCcHNdOworICB9Cit9CisK
Ky0gKHZvaWQpc2V0RW5jb2RlckJpdHJhdGVCcHM6KHVpbnQzMl90KWJpdHJhdGVCcHMgeworICBp
ZiAoX2NvbXByZXNzaW9uU2Vzc2lvbikgeworICAgIFNldFZUU2Vzc2lvblByb3BlcnR5KF9jb21w
cmVzc2lvblNlc3Npb24sIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAga1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgYml0cmF0ZUJwcyk7CisKKyAgICAv
LyBUT0RPKHRrY2hpbik6IEFkZCBhIGhlbHBlciBtZXRob2QgdG8gc2V0IGFycmF5IHZhbHVlLgor
ICAgIGludDY0X3QgZGF0YUxpbWl0Qnl0ZXNQZXJTZWNvbmRWYWx1ZSA9CisgICAgICAgIHN0YXRp
Y19jYXN0PGludDY0X3Q+KGJpdHJhdGVCcHMgKiBrTGltaXRUb0F2ZXJhZ2VCaXRSYXRlRmFjdG9y
IC8gOCk7CisgICAgQ0ZOdW1iZXJSZWYgYnl0ZXNQZXJTZWNvbmQgPQorICAgICAgICBDRk51bWJl
ckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJTSW50NjRUeXBlLAorICAgICAg
ICAgICAgICAgICAgICAgICAmZGF0YUxpbWl0Qnl0ZXNQZXJTZWNvbmRWYWx1ZSk7CisgICAgaW50
NjRfdCBvbmVTZWNvbmRWYWx1ZSA9IDE7CisgICAgQ0ZOdW1iZXJSZWYgb25lU2Vjb25kID0gQ0ZO
dW1iZXJDcmVhdGUoCisgICAgICAgIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNJbnQ2
NFR5cGUsICZvbmVTZWNvbmRWYWx1ZSk7CisgICAgY29uc3Qgdm9pZCogbnVtc1syXSA9IHtieXRl
c1BlclNlY29uZCwgb25lU2Vjb25kfTsKKyAgICBDRkFycmF5UmVmIGRhdGFSYXRlTGltaXRzID0K
KyAgICAgICAgQ0ZBcnJheUNyZWF0ZShudWxscHRyLCBudW1zLCAyLCAma0NGVHlwZUFycmF5Q2Fs
bEJhY2tzKTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eSgKKyAg
ICAgICAgX2NvbXByZXNzaW9uU2Vzc2lvbiwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9EYXRh
UmF0ZUxpbWl0cywKKyAgICAgICAgZGF0YVJhdGVMaW1pdHMpOworICAgIGlmIChieXRlc1BlclNl
Y29uZCkgeworICAgICAgQ0ZSZWxlYXNlKGJ5dGVzUGVyU2Vjb25kKTsKKyAgICB9CisgICAgaWYg
KG9uZVNlY29uZCkgeworICAgICAgQ0ZSZWxlYXNlKG9uZVNlY29uZCk7CisgICAgfQorICAgIGlm
IChkYXRhUmF0ZUxpbWl0cykgeworICAgICAgQ0ZSZWxlYXNlKGRhdGFSYXRlTGltaXRzKTsKKyAg
ICB9CisgICAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikg
PDwgIkZhaWxlZCB0byBzZXQgZGF0YSByYXRlIGxpbWl0IjsKKyAgICB9CisKKyAgICBfZW5jb2Rl
ckJpdHJhdGVCcHMgPSBiaXRyYXRlQnBzOworICB9Cit9CisKKy0gKHZvaWQpZnJhbWVXYXNFbmNv
ZGVkOihPU1N0YXR1cylzdGF0dXMKKyAgICAgICAgICAgICAgICAgIGZsYWdzOihWVEVuY29kZUlu
Zm9GbGFncylpbmZvRmxhZ3MKKyAgICAgICAgICAgc2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZl
clJlZilzYW1wbGVCdWZmZXIKKyAgICAgICAgICAgICAgICAgIHdpZHRoOihpbnQzMl90KXdpZHRo
CisgICAgICAgICAgICAgICAgIGhlaWdodDooaW50MzJfdCloZWlnaHQKKyAgICAgICAgICAgcmVu
ZGVyVGltZU1zOihpbnQ2NF90KXJlbmRlclRpbWVNcworICAgICAgICAgICAgICB0aW1lc3RhbXA6
KHVpbnQzMl90KXRpbWVzdGFtcAorICAgICAgICAgICAgICAgcm90YXRpb246KFJUQ1ZpZGVvUm90
YXRpb24pcm90YXRpb24geworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhM
U19FUlJPUikgPDwgImgyNjUgZW5jb2RlIGZhaWxlZC4iOworICAgIHJldHVybjsKKyAgfQorICBp
ZiAoaW5mb0ZsYWdzICYga1ZURW5jb2RlSW5mb19GcmFtZURyb3BwZWQpIHsKKyAgICBSVENfTE9H
KExTX0lORk8pIDw8ICJoMjY1IGVuY29kZXIgZHJvcHBlZCBhIGZyYW1lLiI7CisgICAgcmV0dXJu
OworICB9CisKKyAgQk9PTCBpc0tleWZyYW1lID0gTk87CisgIENGQXJyYXlSZWYgYXR0YWNobWVu
dHMgPQorICAgICAgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBs
ZUJ1ZmZlciwgMCk7CisgIGlmIChhdHRhY2htZW50cyAhPSBudWxscHRyICYmIENGQXJyYXlHZXRD
b3VudChhdHRhY2htZW50cykpIHsKKyAgICBDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudCA9Cisg
ICAgICAgIHN0YXRpY19jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRl
eChhdHRhY2htZW50cywgMCkpOworICAgIGlzS2V5ZnJhbWUgPQorICAgICAgICAhQ0ZEaWN0aW9u
YXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5j
KTsKKyAgfQorCisgIGlmIChpc0tleWZyYW1lKSB7CisgICAgUlRDX0xPRyhMU19JTkZPKSA8PCAi
R2VuZXJhdGVkIGtleWZyYW1lIjsKKyAgfQorCisgIC8vIENvbnZlcnQgdGhlIHNhbXBsZSBidWZm
ZXIgaW50byBhIGJ1ZmZlciBzdWl0YWJsZSBmb3IgUlRQIHBhY2tldGl6YXRpb24uCisgIC8vIFRP
RE8odGtjaGluKTogQWxsb2NhdGUgYnVmZmVycyB0aHJvdWdoIGEgcG9vbC4KKyAgc3RkOjp1bmlx
dWVfcHRyPHJ0Yzo6QnVmZmVyPiBidWZmZXIobmV3IHJ0Yzo6QnVmZmVyKCkpOworICBSVENSdHBG
cmFnbWVudGF0aW9uSGVhZGVyKiBoZWFkZXI7CisgIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8d2Vi
cnRjOjpSVFBGcmFnbWVudGF0aW9uSGVhZGVyPiBoZWFkZXJfY3BwOworICAgIGJvb2wgcmVzdWx0
ID0gSDI2NUNNU2FtcGxlQnVmZmVyVG9Bbm5leEJCdWZmZXIoc2FtcGxlQnVmZmVyLCBpc0tleWZy
YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnVmZmVyLmdldCgpLCAmaGVhZGVyX2NwcCk7CisgICAgaGVhZGVyID0gW1tSVENSdHBGcmFnbWVu
dGF0aW9uSGVhZGVyIGFsbG9jXQorICAgICAgICBpbml0V2l0aE5hdGl2ZUZyYWdtZW50YXRpb25I
ZWFkZXI6aGVhZGVyX2NwcC5nZXQoKV07CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgIFJUQ19M
T0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY29udmVydCBzYW1wbGUgYnVmZmVyLiI7CisgICAg
ICByZXR1cm47CisgICAgfQorICB9CisKKyAgUlRDRW5jb2RlZEltYWdlKiBmcmFtZSA9IFtbUlRD
RW5jb2RlZEltYWdlIGFsbG9jXSBpbml0XTsKKyAgZnJhbWUuYnVmZmVyID0gW05TRGF0YSBkYXRh
V2l0aEJ5dGVzTm9Db3B5OmJ1ZmZlci0+ZGF0YSgpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxlbmd0aDpidWZmZXItPnNpemUoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmcmVlV2hlbkRvbmU6Tk9dOworICBmcmFtZS5lbmNvZGVkV2lkdGggPSB3aWR0
aDsKKyAgZnJhbWUuZW5jb2RlZEhlaWdodCA9IGhlaWdodDsKKyAgZnJhbWUuY29tcGxldGVGcmFt
ZSA9IFlFUzsKKyAgZnJhbWUuZnJhbWVUeXBlID0KKyAgICAgIGlzS2V5ZnJhbWUgPyBSVENGcmFt
ZVR5cGVWaWRlb0ZyYW1lS2V5IDogUlRDRnJhbWVUeXBlVmlkZW9GcmFtZURlbHRhOworICBmcmFt
ZS5jYXB0dXJlVGltZU1zID0gcmVuZGVyVGltZU1zOworICBmcmFtZS50aW1lU3RhbXAgPSB0aW1l
c3RhbXA7CisgIGZyYW1lLnJvdGF0aW9uID0gcm90YXRpb247CisgIGZyYW1lLmNvbnRlbnRUeXBl
ID0gKF9tb2RlID09IFJUQ1ZpZGVvQ29kZWNNb2RlU2NyZWVuc2hhcmluZykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgPyBSVENWaWRlb0NvbnRlbnRUeXBlU2NyZWVuc2hhcmUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgOiBSVENWaWRlb0NvbnRlbnRUeXBlVW5zcGVjaWZpZWQ7CisgIGZy
YW1lLmZsYWdzID0gd2VicnRjOjpWaWRlb1NlbmRUaW1pbmc6OmtJbnZhbGlkOworCisgIC8vIFRP
RE86IFFQIGlzIGlnbm9yZWQgYmVjYXVzZSBvZiB0aGVyZSBpcyBubyBILjI2NSBiaXRzdHJlYW0g
cGFyc2VyLgorCisgIEJPT0wgcmVzID0gX2NhbGxiYWNrKGZyYW1lLCBbW1JUQ0NvZGVjU3BlY2lm
aWNJbmZvSDI2NSBhbGxvY10gaW5pdF0sIGhlYWRlcik7CisgIGlmICghcmVzKSB7CisgICAgUlRD
X0xPRyhMU19FUlJPUikgPDwgIkVuY29kZSBjYWxsYmFjayBmYWlsZWQuIjsKKyAgICByZXR1cm47
CisgIH0KKyAgX2JpdHJhdGVBZGp1c3Rlci0+VXBkYXRlKGZyYW1lLmJ1ZmZlci5sZW5ndGgpOwor
fQorCistIChSVENWaWRlb0VuY29kZXJRcFRocmVzaG9sZHMqKXNjYWxpbmdTZXR0aW5ncyB7Cisg
IHJldHVybiBbW1JUQ1ZpZGVvRW5jb2RlclFwVGhyZXNob2xkcyBhbGxvY10KKyAgICAgIGluaXRX
aXRoVGhyZXNob2xkc0xvdzprTG93aDI2NVFwVGhyZXNob2xkCisgICAgICAgICAgICAgICAgICAg
ICAgIGhpZ2g6a0hpZ2hoMjY1UXBUaHJlc2hvbGRdOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVf
cmV3cml0ZXIuY2MKaW5kZXggZGMyNThkNjA2NGEwZmVlYTAwNmVlMjk4MmUwMDM3YjA1NWJiYTM3
My4uZGRmNzM0NjA1MTE1YmM3Yjc0ZjEyODI5YTRjZGVjY2YzNDQwZmNmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
bmFsdV9yZXdyaXRlci5jYwpAQCAtMjQ4LDYgKzI0OCwyMjkgQEAgYm9vbCBIMjY0QW5uZXhCQnVm
ZmVyVG9DTVNhbXBsZUJ1ZmZlcihjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICByZXR1
cm4gdHJ1ZTsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK2Jvb2wgSDI2NUNNU2FtcGxlQnVm
ZmVyVG9Bbm5leEJCdWZmZXIoCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgaHZjY19zYW1wbGVfYnVm
ZmVyLAorICAgIGJvb2wgaXNfa2V5ZnJhbWUsCisgICAgcnRjOjpCdWZmZXIqIGFubmV4Yl9idWZm
ZXIsCisgICAgc3RkOjp1bmlxdWVfcHRyPFJUUEZyYWdtZW50YXRpb25IZWFkZXI+ICpvdXRfaGVh
ZGVyKSB7CisgIFJUQ19EQ0hFQ0soaHZjY19zYW1wbGVfYnVmZmVyKTsKKyAgUlRDX0RDSEVDSyhv
dXRfaGVhZGVyKTsKKyAgb3V0X2hlYWRlci0+cmVzZXQobnVsbHB0cik7CisKKyAgLy8gR2V0IGZv
cm1hdCBkZXNjcmlwdGlvbiBmcm9tIHRoZSBzYW1wbGUgYnVmZmVyLgorICBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYgZGVzY3JpcHRpb24gPQorICAgICAgQ01TYW1wbGVCdWZmZXJHZXRGb3Jt
YXREZXNjcmlwdGlvbihodmNjX3NhbXBsZV9idWZmZXIpOworICBpZiAoZGVzY3JpcHRpb24gPT0g
bnVsbHB0cikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IHNhbXBs
ZSBidWZmZXIncyBkZXNjcmlwdGlvbi4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIC8v
IEdldCBwYXJhbWV0ZXIgc2V0IGluZm9ybWF0aW9uLgorICBpbnQgbmFsdV9oZWFkZXJfc2l6ZSA9
IDA7CisgIHNpemVfdCBwYXJhbV9zZXRfY291bnQgPSAwOworICBPU1N0YXR1cyBzdGF0dXMgPSBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRIRVZDUGFyYW1ldGVyU2V0QXRJbmRleCgKKyAgICAg
IGRlc2NyaXB0aW9uLCAwLCBudWxscHRyLCBudWxscHRyLCAmcGFyYW1fc2V0X2NvdW50LCAmbmFs
dV9oZWFkZXJfc2l6ZSk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExT
X0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBwYXJhbWV0ZXIgc2V0LiI7CisgICAgcmV0dXJuIGZh
bHNlOworICB9CisgIFJUQ19DSEVDS19FUShuYWx1X2hlYWRlcl9zaXplLCBrQXZjY0hlYWRlckJ5
dGVTaXplKTsKKyAgUlRDX0RDSEVDS19FUShwYXJhbV9zZXRfY291bnQsIDMpOworCisgIC8vIFRy
dW5jYXRlIGFueSBwcmV2aW91cyBkYXRhIGluIHRoZSBidWZmZXIgd2l0aG91dCBjaGFuZ2luZyBp
dHMgY2FwYWNpdHkuCisgIGFubmV4Yl9idWZmZXItPlNldFNpemUoMCk7CisKKyAgc2l6ZV90IG5h
bHVfb2Zmc2V0ID0gMDsKKyAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBmcmFnX29mZnNldHM7CisgIHN0
ZDo6dmVjdG9yPHNpemVfdD4gZnJhZ19sZW5ndGhzOworCisgIC8vIFBsYWNlIGFsbCBwYXJhbWV0
ZXIgc2V0cyBhdCB0aGUgZnJvbnQgb2YgYnVmZmVyLgorICBpZiAoaXNfa2V5ZnJhbWUpIHsKKyAg
ICBzaXplX3QgcGFyYW1fc2V0X3NpemUgPSAwOworICAgIGNvbnN0IHVpbnQ4X3QqIHBhcmFtX3Nl
dCA9IG51bGxwdHI7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbV9zZXRfY291bnQ7
ICsraSkgeworICAgICAgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0SEVWQ1Bh
cmFtZXRlclNldEF0SW5kZXgoCisgICAgICAgICAgZGVzY3JpcHRpb24sIGksICZwYXJhbV9zZXQs
ICZwYXJhbV9zZXRfc2l6ZSwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgICBpZiAoc3RhdHVzICE9
IG5vRXJyKSB7CisgICAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IHBh
cmFtZXRlciBzZXQuIjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgICAgLy8g
VXBkYXRlIGJ1ZmZlci4KKyAgICAgIGFubmV4Yl9idWZmZXItPkFwcGVuZERhdGEoa0FubmV4Qkhl
YWRlckJ5dGVzLCBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAgICBhbm5leGJfYnVm
ZmVyLT5BcHBlbmREYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHBhcmFtX3NldCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtX3NldF9zaXplKTsKKyAgICAg
IC8vIFVwZGF0ZSBmcmFnbWVudGF0aW9uLgorICAgICAgZnJhZ19vZmZzZXRzLnB1c2hfYmFjayhu
YWx1X29mZnNldCArIHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpKTsKKyAgICAgIGZyYWdfbGVu
Z3Rocy5wdXNoX2JhY2socGFyYW1fc2V0X3NpemUpOworICAgICAgbmFsdV9vZmZzZXQgKz0gc2l6
ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykgKyBwYXJhbV9zZXRfc2l6ZTsKKyAgICB9CisgIH0KKwor
ICAvLyBHZXQgYmxvY2sgYnVmZmVyIGZyb20gdGhlIHNhbXBsZSBidWZmZXIuCisgIENNQmxvY2tC
dWZmZXJSZWYgYmxvY2tfYnVmZmVyID0KKyAgICAgIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZl
cihodmNjX3NhbXBsZV9idWZmZXIpOworICBpZiAoYmxvY2tfYnVmZmVyID09IG51bGxwdHIpIHsK
KyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBzYW1wbGUgYnVmZmVyJ3Mg
YmxvY2sgYnVmZmVyLiI7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIENNQmxvY2tCdWZmZXJS
ZWYgY29udGlndW91c19idWZmZXIgPSBudWxscHRyOworICAvLyBNYWtlIHN1cmUgYmxvY2sgYnVm
ZmVyIGlzIGNvbnRpZ3VvdXMuCisgIGlmICghQ01CbG9ja0J1ZmZlcklzUmFuZ2VDb250aWd1b3Vz
KGJsb2NrX2J1ZmZlciwgMCwgMCkpIHsKKyAgICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyQ3JlYXRl
Q29udGlndW91cygKKyAgICAgICAgbnVsbHB0ciwgYmxvY2tfYnVmZmVyLCBudWxscHRyLCBudWxs
cHRyLCAwLCAwLCAwLCAmY29udGlndW91c19idWZmZXIpOworICAgIGlmIChzdGF0dXMgIT0gbm9F
cnIpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZmxhdHRlbiBub24t
Y29udGlndW91cyBibG9jayBidWZmZXI6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IHN0
YXR1czsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgY29udGln
dW91c19idWZmZXIgPSBibG9ja19idWZmZXI7CisgICAgLy8gUmV0YWluIHRvIG1ha2UgY2xlYW51
cCBlYXNpZXIuCisgICAgQ0ZSZXRhaW4oY29udGlndW91c19idWZmZXIpOworICAgIGJsb2NrX2J1
ZmZlciA9IG51bGxwdHI7CisgIH0KKworICAvLyBOb3cgY29weSB0aGUgYWN0dWFsIGRhdGEuCisg
IGNoYXIqIGRhdGFfcHRyID0gbnVsbHB0cjsKKyAgc2l6ZV90IGJsb2NrX2J1ZmZlcl9zaXplID0g
Q01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgoY29udGlndW91c19idWZmZXIpOworICBzdGF0dXMg
PSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIoY29udGlndW91c19idWZmZXIsIDAsIG51bGxw
dHIsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0
YV9wdHIpOworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikg
PDwgIkZhaWxlZCB0byBnZXQgYmxvY2sgYnVmZmVyIGRhdGEuIjsKKyAgICBDRlJlbGVhc2UoY29u
dGlndW91c19idWZmZXIpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBzaXplX3QgYnl0ZXNf
cmVtYWluaW5nID0gYmxvY2tfYnVmZmVyX3NpemU7CisgIHdoaWxlIChieXRlc19yZW1haW5pbmcg
PiAwKSB7CisgICAgLy8gVGhlIHNpemUgdHlwZSBoZXJlIG11c3QgbWF0Y2ggfG5hbHVfaGVhZGVy
X3NpemV8LCB3ZSBleHBlY3QgNCBieXRlcy4KKyAgICAvLyBSZWFkIHRoZSBsZW5ndGggb2YgdGhl
IG5leHQgcGFja2V0IG9mIGRhdGEuIE11c3QgY29udmVydCBmcm9tIGJpZyBlbmRpYW4KKyAgICAv
LyB0byBob3N0IGVuZGlhbi4KKyAgICBSVENfRENIRUNLX0dFKGJ5dGVzX3JlbWFpbmluZywgKHNp
emVfdCluYWx1X2hlYWRlcl9zaXplKTsKKyAgICB1aW50MzJfdCogdWludDMyX2RhdGFfcHRyID0g
cmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KGRhdGFfcHRyKTsKKyAgICB1aW50MzJfdCBwYWNr
ZXRfc2l6ZSA9IENGU3dhcEludDMyQmlnVG9Ib3N0KCp1aW50MzJfZGF0YV9wdHIpOworICAgIC8v
IFVwZGF0ZSBidWZmZXIuCisgICAgYW5uZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShrQW5uZXhCSGVh
ZGVyQnl0ZXMsIHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpKTsKKyAgICBhbm5leGJfYnVmZmVy
LT5BcHBlbmREYXRhKGRhdGFfcHRyICsgbmFsdV9oZWFkZXJfc2l6ZSwgcGFja2V0X3NpemUpOwor
ICAgIC8vIFVwZGF0ZSBmcmFnbWVudGF0aW9uLgorICAgIGZyYWdfb2Zmc2V0cy5wdXNoX2JhY2so
bmFsdV9vZmZzZXQgKyBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAgZnJhZ19sZW5n
dGhzLnB1c2hfYmFjayhwYWNrZXRfc2l6ZSk7CisgICAgbmFsdV9vZmZzZXQgKz0gc2l6ZW9mKGtB
bm5leEJIZWFkZXJCeXRlcykgKyBwYWNrZXRfc2l6ZTsKKworICAgIHNpemVfdCBieXRlc193cml0
dGVuID0gcGFja2V0X3NpemUgKyBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKTsKKyAgICBieXRl
c19yZW1haW5pbmcgLT0gYnl0ZXNfd3JpdHRlbjsKKyAgICBkYXRhX3B0ciArPSBieXRlc193cml0
dGVuOworICB9CisgIFJUQ19EQ0hFQ0tfRVEoYnl0ZXNfcmVtYWluaW5nLCAoc2l6ZV90KTApOwor
CisgIHN0ZDo6dW5pcXVlX3B0cjxSVFBGcmFnbWVudGF0aW9uSGVhZGVyPiBoZWFkZXIobmV3IFJU
UEZyYWdtZW50YXRpb25IZWFkZXIoKSk7CisgIGhlYWRlci0+VmVyaWZ5QW5kQWxsb2NhdGVGcmFn
bWVudGF0aW9uSGVhZGVyKGZyYWdfb2Zmc2V0cy5zaXplKCkpOworICBSVENfRENIRUNLX0VRKGZy
YWdfbGVuZ3Rocy5zaXplKCksIGZyYWdfb2Zmc2V0cy5zaXplKCkpOworICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGZyYWdfb2Zmc2V0cy5zaXplKCk7ICsraSkgeworICAgIGhlYWRlci0+ZnJhZ21l
bnRhdGlvbk9mZnNldFtpXSA9IGZyYWdfb2Zmc2V0c1tpXTsKKyAgICBoZWFkZXItPmZyYWdtZW50
YXRpb25MZW5ndGhbaV0gPSBmcmFnX2xlbmd0aHNbaV07CisgIH0KKyAgKm91dF9oZWFkZXIgPSBz
dGQ6Om1vdmUoaGVhZGVyKTsKKyAgQ0ZSZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgcmV0
dXJuIHRydWU7Cit9CisKK2Jvb2wgSDI2NUFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29u
c3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90IGFubmV4Yl9idWZmZXJfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvX2Zvcm1h
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJS
ZWYqIG91dF9zYW1wbGVfYnVmZmVyKSB7CisgIFJUQ19EQ0hFQ0soYW5uZXhiX2J1ZmZlcik7Cisg
IFJUQ19EQ0hFQ0sob3V0X3NhbXBsZV9idWZmZXIpOworICBSVENfRENIRUNLKHZpZGVvX2Zvcm1h
dCk7CisgICpvdXRfc2FtcGxlX2J1ZmZlciA9IG51bGxwdHI7CisKKyAgQW5uZXhCQnVmZmVyUmVh
ZGVyIHJlYWRlcihhbm5leGJfYnVmZmVyLCBhbm5leGJfYnVmZmVyX3NpemUpOworICBpZiAocmVh
ZGVyLlNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjU6OmtWcHMpKSB7CisgICAgLy8gQnVmZmVyIGNv
bnRhaW5zIGFuIFNQUyBOQUxVIC0gc2tpcCBpdCBhbmQgdGhlIGZvbGxvd2luZyBQUFMKKyAgICBj
b25zdCB1aW50OF90KiBkYXRhOworICAgIHNpemVfdCBkYXRhX2xlbjsKKyAgICBpZiAoIXJlYWRl
ci5SZWFkTmFsdSgmZGF0YSwgJmRhdGFfbGVuKSkgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikg
PDwgIkZhaWxlZCB0byByZWFkIFZQUyI7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAg
IGlmICghcmVhZGVyLlJlYWROYWx1KCZkYXRhLCAmZGF0YV9sZW4pKSB7CisgICAgICBSVENfTE9H
KExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgU1BTIjsKKyAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgaWYgKCFyZWFkZXIuUmVhZE5hbHUoJmRhdGEsICZkYXRhX2xlbikpIHsKKyAg
ICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBQUFMiOworICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICAvLyBObyBTUFMgTkFMVSAtIHN0YXJ0
IHJlYWRpbmcgZnJvbSB0aGUgZmlyc3QgTkFMVSBpbiB0aGUgYnVmZmVyCisgICAgcmVhZGVyLlNl
ZWtUb1N0YXJ0KCk7CisgIH0KKworICAvLyBBbGxvY2F0ZSBtZW1vcnkgYXMgYSBibG9jayBidWZm
ZXIuCisgIC8vIFRPRE8odGtjaGluKTogZmlndXJlIG91dCBob3cgdG8gdXNlIGEgcG9vbC4KKyAg
Q01CbG9ja0J1ZmZlclJlZiBibG9ja19idWZmZXIgPSBudWxscHRyOworICBPU1N0YXR1cyBzdGF0
dXMgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKAorICAgICAgbnVsbHB0ciwg
bnVsbHB0ciwgcmVhZGVyLkJ5dGVzUmVtYWluaW5nKCksIG51bGxwdHIsIG51bGxwdHIsIDAsCisg
ICAgICByZWFkZXIuQnl0ZXNSZW1haW5pbmcoKSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlO
b3dGbGFnLAorICAgICAgJmJsb2NrX2J1ZmZlcik7CisgIGlmIChzdGF0dXMgIT0ga0NNQmxvY2tC
dWZmZXJOb0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRl
IGJsb2NrIGJ1ZmZlci4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIC8vIE1ha2Ugc3Vy
ZSBibG9jayBidWZmZXIgaXMgY29udGlndW91cy4KKyAgQ01CbG9ja0J1ZmZlclJlZiBjb250aWd1
b3VzX2J1ZmZlciA9IG51bGxwdHI7CisgIGlmICghQ01CbG9ja0J1ZmZlcklzUmFuZ2VDb250aWd1
b3VzKGJsb2NrX2J1ZmZlciwgMCwgMCkpIHsKKyAgICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyQ3Jl
YXRlQ29udGlndW91cygKKyAgICAgICAgbnVsbHB0ciwgYmxvY2tfYnVmZmVyLCBudWxscHRyLCBu
dWxscHRyLCAwLCAwLCAwLCAmY29udGlndW91c19idWZmZXIpOworICAgIGlmIChzdGF0dXMgIT0g
bm9FcnIpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZmxhdHRlbiBu
b24tY29udGlndW91cyBibG9jayBidWZmZXI6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8
IHN0YXR1czsKKyAgICAgIENGUmVsZWFzZShibG9ja19idWZmZXIpOworICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICBjb250aWd1b3VzX2J1ZmZlciA9IGJsb2NrX2J1
ZmZlcjsKKyAgICBibG9ja19idWZmZXIgPSBudWxscHRyOworICB9CisKKyAgLy8gR2V0IGEgcmF3
IHBvaW50ZXIgaW50byBhbGxvY2F0ZWQgbWVtb3J5LgorICBzaXplX3QgYmxvY2tfYnVmZmVyX3Np
emUgPSAwOworICBjaGFyKiBkYXRhX3B0ciA9IG51bGxwdHI7CisgIHN0YXR1cyA9IENNQmxvY2tC
dWZmZXJHZXREYXRhUG9pbnRlcihjb250aWd1b3VzX2J1ZmZlciwgMCwgbnVsbHB0ciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZibG9ja19idWZmZXJfc2l6ZSwgJmRh
dGFfcHRyKTsKKyAgaWYgKHN0YXR1cyAhPSBrQ01CbG9ja0J1ZmZlck5vRXJyKSB7CisgICAgUlRD
X0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgYmxvY2sgYnVmZmVyIGRhdGEgcG9pbnRl
ci4iOworICAgIENGUmVsZWFzZShjb250aWd1b3VzX2J1ZmZlcik7CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIFJUQ19EQ0hFQ0soYmxvY2tfYnVmZmVyX3NpemUgPT0gcmVhZGVyLkJ5dGVzUmVt
YWluaW5nKCkpOworCisgIC8vIFdyaXRlIEF2Y2MgTkFMVXMgaW50byBibG9jayBidWZmZXIgbWVt
b3J5LgorICBBdmNjQnVmZmVyV3JpdGVyIHdyaXRlcihyZWludGVycHJldF9jYXN0PHVpbnQ4X3Qq
PihkYXRhX3B0ciksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX2J1ZmZlcl9zaXpl
KTsKKyAgd2hpbGUgKHJlYWRlci5CeXRlc1JlbWFpbmluZygpID4gMCkgeworICAgIGNvbnN0IHVp
bnQ4X3QqIG5hbHVfZGF0YV9wdHIgPSBudWxscHRyOworICAgIHNpemVfdCBuYWx1X2RhdGFfc2l6
ZSA9IDA7CisgICAgaWYgKHJlYWRlci5SZWFkTmFsdSgmbmFsdV9kYXRhX3B0ciwgJm5hbHVfZGF0
YV9zaXplKSkgeworICAgICAgd3JpdGVyLldyaXRlTmFsdShuYWx1X2RhdGFfcHRyLCBuYWx1X2Rh
dGFfc2l6ZSk7CisgICAgfQorICB9CisKKyAgLy8gQ3JlYXRlIHNhbXBsZSBidWZmZXIuCisgIHN0
YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlKG51bGxwdHIsIGNvbnRpZ3VvdXNfYnVmZmVyLCB0
cnVlLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyLCB2
aWRlb19mb3JtYXQsIDEsIDAsIG51bGxwdHIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG51bGxwdHIsIG91dF9zYW1wbGVfYnVmZmVyKTsKKyAgaWYgKHN0YXR1cyAhPSBub0Vy
cikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHNhbXBsZSBi
dWZmZXIuIjsKKyAgICBDRlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOworICAgIHJldHVybiBm
YWxzZTsKKyAgfQorICBDRlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOworICByZXR1cm4gdHJ1
ZTsKK30KKyNlbmRpZgorCiBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgQ3JlYXRlVmlkZW9G
b3JtYXREZXNjcmlwdGlvbigKICAgICBjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICAg
IHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUpIHsKQEAgLTI3OCw2ICs1MDEsNDMgQEAgQ01WaWRl
b0Zvcm1hdERlc2NyaXB0aW9uUmVmIENyZWF0ZVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCiAgIHJl
dHVybiBkZXNjcmlwdGlvbjsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK0NNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBDcmVhdGVIMjY1VmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKKyAgICBj
b25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAorICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3Np
emUpIHsKKyAgY29uc3QgdWludDhfdCogcGFyYW1fc2V0X3B0cnNbM10gPSB7fTsKKyAgc2l6ZV90
IHBhcmFtX3NldF9zaXplc1szXSA9IHt9OworICBBbm5leEJCdWZmZXJSZWFkZXIgcmVhZGVyKGFu
bmV4Yl9idWZmZXIsIGFubmV4Yl9idWZmZXJfc2l6ZSk7CisgIC8vIFNraXAgZXZlcnl0aW5nIGJl
Zm9yZSB0aGUgVlBTLCB0aGVuIHJlYWQgdGhlIFZQUywgU1BTIGFuZCBQUFMKKyAgaWYgKCFyZWFk
ZXIuU2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NTo6a1ZwcykpIHsKKyAgICByZXR1cm4gbnVsbHB0
cjsKKyAgfQorICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmcGFyYW1fc2V0X3B0cnNbMF0sICZwYXJh
bV9zZXRfc2l6ZXNbMF0pKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBy
ZWFkIFZQUyI7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgaWYgKCFyZWFkZXIuUmVhZE5h
bHUoJnBhcmFtX3NldF9wdHJzWzFdLCAmcGFyYW1fc2V0X3NpemVzWzFdKSkgeworICAgIFJUQ19M
T0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBTUFMiOworICAgIHJldHVybiBudWxscHRy
OworICB9CisgIGlmICghcmVhZGVyLlJlYWROYWx1KCZwYXJhbV9zZXRfcHRyc1syXSwgJnBhcmFt
X3NldF9zaXplc1syXSkpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJl
YWQgUFBTIjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorCisgIC8vIFBhcnNlIHRoZSBTUFMg
YW5kIFBQUyBpbnRvIGEgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uLgorICBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25SZWYgZGVzY3JpcHRpb24gPSBudWxscHRyOworICBPU1N0YXR1cyBzdGF0dXMg
PSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGcm9tSEVWQ1BhcmFtZXRlclNldHMoCisg
ICAgICBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAzLCBwYXJhbV9zZXRfcHRycywgcGFyYW1fc2V0X3Np
emVzLCA0LCBudWxscHRyLAorICAgICAgJmRlc2NyaXB0aW9uKTsKKyAgaWYgKHN0YXR1cyAhPSBu
b0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHZpZGVv
IGZvcm1hdCBkZXNjcmlwdGlvbi4iOworICAgIHJldHVybiBudWxscHRyOworICB9CisgIHJldHVy
biBkZXNjcmlwdGlvbjsKK30KKyNlbmRpZgorCiBBbm5leEJCdWZmZXJSZWFkZXI6OkFubmV4QkJ1
ZmZlclJlYWRlcihjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCkKICAgICA6IHN0YXJ0Xyhhbm5l
eGJfYnVmZmVyKSwgbGVuZ3RoXyhsZW5ndGgpIHsKQEAgLTMyNCw2ICs1ODQsMTkgQEAgYm9vbCBB
bm5leEJCdWZmZXJSZWFkZXI6OlNlZWtUb05leHROYWx1T2ZUeXBlKE5hbHVUeXBlIHR5cGUpIHsK
ICAgfQogICByZXR1cm4gZmFsc2U7CiB9CisKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citib29sIEFu
bmV4QkJ1ZmZlclJlYWRlcjo6U2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NTo6TmFsdVR5cGUgdHlw
ZSkgeworICBmb3IgKDsgb2Zmc2V0XyAhPSBvZmZzZXRzXy5lbmQoKTsgKytvZmZzZXRfKSB7Cisg
ICAgaWYgKG9mZnNldF8tPnBheWxvYWRfc2l6ZSA8IDEpCisgICAgICBjb250aW51ZTsKKyAgICBp
ZiAoSDI2NTo6UGFyc2VOYWx1VHlwZSgqKHN0YXJ0XyArIG9mZnNldF8tPnBheWxvYWRfc3RhcnRf
b2Zmc2V0KSkgPT0gdHlwZSkKKyAgICAgIHJldHVybiB0cnVlOworICB9CisgIHJldHVybiBmYWxz
ZTsKK30KKyNlbmRpZgorCiBBdmNjQnVmZmVyV3JpdGVyOjpBdmNjQnVmZmVyV3JpdGVyKHVpbnQ4
X3QqIGNvbnN0IGF2Y2NfYnVmZmVyLCBzaXplX3QgbGVuZ3RoKQogICAgIDogc3RhcnRfKGF2Y2Nf
YnVmZmVyKSwgb2Zmc2V0XygwKSwgbGVuZ3RoXyhsZW5ndGgpIHsKICAgUlRDX0RDSEVDSyhhdmNj
X2J1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oCmluZGV4IGEwYzFhYTkwYWY1NzU5ZGUz
OWI1ZDA2YzIyMWQyODQyOTQzODk4NzYuLjRkYTFjYzU3YzdkMTBhOGJmMzZhMjg4ZDczMWMzYzg2
MTBlZDU3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oCkBAIC0xOCw2ICsxOCw5IEBACiAj
aW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjQvaDI2NF9jb21t
b24uaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9jb21tb24uaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVf
Y29tbW9uX3R5cGVzLmgiCiAjaW5jbHVkZSAicnRjX2Jhc2UvYnVmZmVyLmgiCiAKQEAgLTQ3LDYg
KzUwLDMxIEBAIGJvb2wgSDI2NEFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3QgdWlu
dDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ01TYW1wbGVCdWZmZXJSZWYqIG91dF9zYW1wbGVfYnVmZmVyLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDTU1lbW9yeVBvb2xSZWYgbWVtb3J5X3Bvb2wpOwogCisj
aWZuZGVmIERJU0FCTEVfSDI2NQorLy8gQ29udmVydHMgYSBzYW1wbGUgYnVmZmVyIGVtaXR0ZWQg
ZnJvbSB0aGUgVmlkZW9Ub29sYm94IGVuY29kZXIgaW50byBhIGJ1ZmZlcgorLy8gc3VpdGFibGUg
Zm9yIFJUUC4gVGhlIHNhbXBsZSBidWZmZXIgaXMgaW4gaHZjYyBmb3JtYXQgd2hlcmVhcyB0aGUg
cnRwIGJ1ZmZlcgorLy8gbmVlZHMgdG8gYmUgaW4gQW5uZXggQiBmb3JtYXQuIERhdGEgaXMgd3Jp
dHRlbiBkaXJlY3RseSB0byB8YW5uZXhiX2J1ZmZlcnwKKy8vIGFuZCBhIG5ldyBSVFBGcmFnbWVu
dGF0aW9uSGVhZGVyIGlzIHJldHVybmVkIGluIHxvdXRfaGVhZGVyfC4KK2Jvb2wgSDI2NUNNU2Ft
cGxlQnVmZmVyVG9Bbm5leEJCdWZmZXIoCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgaHZjY19zYW1w
bGVfYnVmZmVyLAorICAgIGJvb2wgaXNfa2V5ZnJhbWUsCisgICAgcnRjOjpCdWZmZXIqIGFubmV4
Yl9idWZmZXIsCisgICAgc3RkOjp1bmlxdWVfcHRyPFJUUEZyYWdtZW50YXRpb25IZWFkZXI+ICpv
dXRfaGVhZGVyKQorICAgIF9fT1NYX0FWQUlMQUJMRV9TVEFSVElORyhfX01BQ18xMF8xMiwgX19J
UEhPTkVfMTFfMCk7CisKKyAvLyBDb252ZXJ0cyBhIGJ1ZmZlciByZWNlaXZlZCBmcm9tIFJUUCBp
bnRvIGEgc2FtcGxlIGJ1ZmZlciBzdWl0YWJsZSBmb3IgdGhlCisvLyBWaWRlb1Rvb2xib3ggZGVj
b2Rlci4gVGhlIFJUUCBidWZmZXIgaXMgaW4gYW5uZXggYiBmb3JtYXQgd2hlcmVhcyB0aGUgc2Ft
cGxlCisvLyBidWZmZXIgaXMgaW4gaHZjYyBmb3JtYXQuCisvLyBJZiB8aXNfa2V5ZnJhbWV8IGlz
IHRydWUgdGhlbiB8dmlkZW9fZm9ybWF0fCBpcyBpZ25vcmVkIHNpbmNlIHRoZSBmb3JtYXQgd2ls
bAorLy8gYmUgcmVhZCBmcm9tIHRoZSBidWZmZXIuIE90aGVyd2lzZSB8dmlkZW9fZm9ybWF0fCBt
dXN0IGJlIHByb3ZpZGVkLgorLy8gQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciByZWxlYXNpbmcg
dGhlIGNyZWF0ZWQgc2FtcGxlIGJ1ZmZlci4KK2Jvb2wgSDI2NUFubmV4QkJ1ZmZlclRvQ01TYW1w
bGVCdWZmZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFubmV4Yl9idWZmZXJfc2l6ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IHZpZGVvX2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01T
YW1wbGVCdWZmZXJSZWYqIG91dF9zYW1wbGVfYnVmZmVyKQorICAgIF9fT1NYX0FWQUlMQUJMRV9T
VEFSVElORyhfX01BQ18xMF8xMiwgX19JUEhPTkVfMTFfMCk7CisjZW5kaWYKKwogLy8gUmV0dXJu
cyBhIHZpZGVvIGZvcm1hdCBkZXNjcmlwdGlvbiBjcmVhdGVkIGZyb20gdGhlIHNwcy9wcHMgaW5m
b3JtYXRpb24gaW4KIC8vIHRoZSBBbm5leCBCIGJ1ZmZlci4gSWYgdGhlcmUgaXMgbm8gc3VjaCBp
bmZvcm1hdGlvbiwgbnVsbHB0ciBpcyByZXR1cm5lZC4KIC8vIFRoZSBjYWxsZXIgaXMgcmVzcG9u
c2libGUgZm9yIHJlbGVhc2luZyB0aGUgZGVzY3JpcHRpb24uCkBAIC01NCw2ICs4MiwxMyBAQCBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgQ3JlYXRlVmlkZW9Gb3JtYXREZXNjcmlwdGlvbigK
ICAgICBjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICAgIHNpemVfdCBhbm5leGJfYnVm
ZmVyX3NpemUpOwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIENyZWF0ZUgyNjVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKAorICAgIGNvbnN0IHVpbnQ4
X3QqIGFubmV4Yl9idWZmZXIsCisgICAgc2l6ZV90IGFubmV4Yl9idWZmZXJfc2l6ZSkKKyAgICBf
X09TWF9BVkFJTEFCTEVfU1RBUlRJTkcoX19NQUNfMTBfMTIsIF9fSVBIT05FXzExXzApOworI2Vu
ZGlmCisKIC8vIEhlbHBlciBjbGFzcyBmb3IgcmVhZGluZyBOQUxVcyBmcm9tIGFuIFJUUCBBbm5l
eCBCIGJ1ZmZlci4KIGNsYXNzIEFubmV4QkJ1ZmZlclJlYWRlciBmaW5hbCB7CiAgcHVibGljOgpA
QCAtNzgsNiArMTEzLDkgQEAgY2xhc3MgQW5uZXhCQnVmZmVyUmVhZGVyIGZpbmFsIHsKICAgLy8g
UmV0dXJuIHRydWUgaWYgYSBOQUxVIG9mIHRoZSBkZXNpcmVkIHR5cGUgaXMgZm91bmQsIGZhbHNl
IGlmIHdlCiAgIC8vIHJlYWNoZWQgdGhlIGVuZCBpbnN0ZWFkCiAgIGJvb2wgU2Vla1RvTmV4dE5h
bHVPZlR5cGUoSDI2NDo6TmFsdVR5cGUgdHlwZSk7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBi
b29sIFNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjU6Ok5hbHVUeXBlIHR5cGUpOworI2VuZGlmCiAK
ICBwcml2YXRlOgogICAvLyBSZXR1cm5zIHRoZSB0aGUgbmV4dCBvZmZzZXQgdGhhdCBjb250YWlu
cyBOQUxVIGRhdGEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5
Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
bmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQppbmRleCBkMWQ4Y2EyM2Q1
YzNlM2MwOWI5ODhhNTRjYWZkYjE2MDNiYjYxNGFiLi5jMzFhMjVhYmU2MTFmZWIxY2FhMzRhYTE1
OWI1YjhlNGNiMmU0ZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0
b3J5Lm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0KQEAgLTk4LDcg
Kzk4LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IE9iakNWaWRlb0RlY29kZXJG
YWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoCiAgICAgaWYgKFtjb2RlY05hbWUgaXNFcXVhbFRv
U3RyaW5nOmNvZGVjSW5mby5uYW1lXSkgewogICAgICAgaWQ8UlRDVmlkZW9EZWNvZGVyPiBkZWNv
ZGVyID0gW2RlY29kZXJfZmFjdG9yeV8gY3JlYXRlRGVjb2Rlcjpjb2RlY0luZm9dOwogCi0gICAg
ICBpZiAoW2RlY29kZXIgaXNLaW5kT2ZDbGFzczpbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rl
ciBjbGFzc11dKSB7CisgICAgICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5k
T2ZDbGFzcyBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuCisgICAgICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KKyAgICAgIC8vIGlmIChbZGVj
b2RlciBpc0tpbmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyIGNsYXNzXV0p
IHsKKyAgICAgIGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlz
RXF1YWw6QCJWUDkiXSkgewogICAgICAgICByZXR1cm4gWyhSVENXcmFwcGVkTmF0aXZlVmlkZW9E
ZWNvZGVyICopZGVjb2RlciByZWxlYXNlV3JhcHBlZERlY29kZXJdOwogICAgICAgfSBlbHNlIHsK
ICAgICAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxPYmpDVmlkZW9EZWNvZGVyPihuZXcgT2Jq
Q1ZpZGVvRGVjb2RlcihkZWNvZGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5j
b2Rlcl9mYWN0b3J5Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbQppbmRl
eCBhNzU1MzA3YzZiN2NmMjU0ODdmNjI5Y2IwMjQ2OWQ3Yjk0YjQ0YTc2Li4zMzQ2OTgxM2FmMzQ0
ZDI5YjRhZmQ2MjljODBhMjJkNDNlN2VkZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9f
ZW5jb2Rlcl9mYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19lbmNvZGVyX2ZhY3Rvcnku
bW0KQEAgLTE1LDYgKzE1LDkgQEAKICNpbXBvcnQgImJhc2UvUlRDVmlkZW9FbmNvZGVyLmgiCiAj
aW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnkuaCIKICNpbXBvcnQgImNvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZhdGUuaCIKKyNpZm5k
ZWYgRElTQUJMRV9IMjY1CisjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVj
U3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmgiCisjZW5kaWYKICNpbXBvcnQgInNkay9vYmpjL2Fw
aS9wZWVyY29ubmVjdGlvbi9SVENFbmNvZGVkSW1hZ2UrUHJpdmF0ZS5oIgogI2ltcG9ydCAic2Rr
L29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIrUHJpdmF0
ZS5oIgogI2ltcG9ydCAic2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JUQ1ZpZGVvQ29kZWNJ
bmZvK1ByaXZhdGUuaCIKQEAgLTY1LDggKzY4LDE2IEBAIGNsYXNzIE9iakNWaWRlb0VuY29kZXIg
OiBwdWJsaWMgVmlkZW9FbmNvZGVyIHsKIAogICAgICAgLy8gSGFuZGxlIHR5cGVzIHRoYXQgY2Fu
IGJlIGNvbnZlcnRlZCBpbnRvIG9uZSBvZiBDb2RlY1NwZWNpZmljSW5mbydzIGhhcmQgY29kZWQg
Y2FzZXMuCiAgICAgICBDb2RlY1NwZWNpZmljSW5mbyBjb2RlY1NwZWNpZmljSW5mbzsKLSAgICAg
IGlmIChbaW5mbyBpc0tpbmRPZkNsYXNzOltSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQgY2xhc3Nd
XSkgeworICAgICAgLy8gQmVjYXVzZSBvZiBzeW1ib2wgY29uZmxpY3QsIGlzS2luZE9mQ2xhc3Mg
ZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLgorICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3ODIuCisgICAgICBpZiAoW05TU3RyaW5nRnJvbUNs
YXNzKFtpbmZvIGNsYXNzXSkgaXNFcXVhbDpAIldLX1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCJd
KSB7CisgICAgICAgIC8vIGlmIChbaW5mbyBpc0tpbmRPZkNsYXNzOltSVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjQgY2xhc3NdXSkgewogICAgICAgICBjb2RlY1NwZWNpZmljSW5mbyA9IFsoUlRDQ29k
ZWNTcGVjaWZpY0luZm9IMjY0ICopaW5mbyBuYXRpdmVDb2RlY1NwZWNpZmljSW5mb107CisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorICAgICAgfSBlbHNlIGlmIChbTlNTdHJpbmdGcm9tQ2xhc3MoW2lu
Zm8gY2xhc3NdKSBpc0VxdWFsOkAiV0tfUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Il0pIHsKKyAg
ICAgICAgLy8gaWYgKFtpbmZvIGlzS2luZE9mQ2xhc3M6W1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NSBjbGFzc11dKSB7CisgICAgICAgIGNvZGVjU3BlY2lmaWNJbmZvID0gWyhSVENDb2RlY1NwZWNp
ZmljSW5mb0gyNjUgKilpbmZvIG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXTsKKyNlbmRpZgogICAg
ICAgfQogCiAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UlRQRnJhZ21lbnRhdGlvbkhlYWRlcj4gZnJh
Z21lbnRhdGlvbkhlYWRlciA9CkBAIC0xNjcsNyArMTc4LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxW
aWRlb0VuY29kZXI+IE9iakNWaWRlb0VuY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0VuY29kZXIo
CiAgICAgY29uc3QgU2RwVmlkZW9Gb3JtYXQgJmZvcm1hdCkgewogICBSVENWaWRlb0NvZGVjSW5m
byAqaW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmF0aXZlU2RwVmlk
ZW9Gb3JtYXQ6Zm9ybWF0XTsKICAgaWQ8UlRDVmlkZW9FbmNvZGVyPiBlbmNvZGVyID0gW2VuY29k
ZXJfZmFjdG9yeV8gY3JlYXRlRW5jb2RlcjppbmZvXTsKLSAgaWYgKFtlbmNvZGVyIGlzS2luZE9m
Q2xhc3M6W1JUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIgY2xhc3NdXSkgeworICAvLyBCZWNh
dXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5kT2ZDbGFzcyBkb2Vzbid0IHdvcmsgYXMgZXhw
ZWN0ZWQuCisgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk4NzgyLgorICAvLyBpZiAoW2VuY29kZXIgaXNLaW5kT2ZDbGFzczpbUlRDV3JhcHBlZE5hdGl2
ZVZpZGVvRW5jb2RlciBjbGFzc11dKSB7CisgIGlmIChbaW5mby5uYW1lIGlzRXF1YWw6QCJWUDgi
XSB8fCBbaW5mby5uYW1lIGlzRXF1YWw6QCJWUDkiXSkgewogICAgIHJldHVybiBbKFJUQ1dyYXBw
ZWROYXRpdmVWaWRlb0VuY29kZXIgKillbmNvZGVyIHJlbGVhc2VXcmFwcGVkRW5jb2Rlcl07CiAg
IH0gZWxzZSB7CiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxPYmpDVmlkZW9FbmNvZGVyPihu
ZXcgT2JqQ1ZpZGVvRW5jb2RlcihlbmNvZGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy90ZXN0L3NjZW5hcmlvL3ZpZGVvX3N0cmVhbS5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Rlc3Qvc2NlbmFy
aW8vdmlkZW9fc3RyZWFtLmNjCmluZGV4IGVlMzg5ZjE0MjVhZTQ4NjJhNGVhY2ExYTY0NjYxYmY0
NGIxMmEzMjYuLmE5MzJkZDVmYTk4YzE2OTk2ZGNkNjBhMDNiZGFmODQxNjRiMWJiNGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Rlc3Qvc2Nl
bmFyaW8vdmlkZW9fc3RyZWFtLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Rlc3Qvc2NlbmFyaW8vdmlkZW9fc3RyZWFtLmNjCkBAIC0yMDAsMTAgKzIw
MCwyOSBAQCBDcmVhdGVIMjY0U3BlY2lmaWNTZXR0aW5ncyhWaWRlb1N0cmVhbUNvbmZpZyBjb25m
aWcpIHsKICAgICAgIFZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NEVuY29kZXJTcGVjaWZpY1NldHRp
bmdzPihoMjY0X3NldHRpbmdzKTsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK3J0Yzo6c2Nv
cGVkX3JlZnB0cjxWaWRlb0VuY29kZXJDb25maWc6OkVuY29kZXJTcGVjaWZpY1NldHRpbmdzPgor
Q3JlYXRlSDI2NVNwZWNpZmljU2V0dGluZ3MoVmlkZW9TdHJlYW1Db25maWcgY29uZmlnKSB7Cisg
IFJUQ19EQ0hFQ0tfRVEoY29uZmlnLmVuY29kZXIubGF5ZXJzLnRlbXBvcmFsLCAxKTsKKyAgUlRD
X0RDSEVDS19FUShjb25maWcuZW5jb2Rlci5sYXllcnMuc3BhdGlhbCwgMSk7CisKKyAgVmlkZW9D
b2RlY0gyNjUgaDI2NV9zZXR0aW5ncyA9IFZpZGVvRW5jb2Rlcjo6R2V0RGVmYXVsdEgyNjVTZXR0
aW5ncygpOworICBoMjY1X3NldHRpbmdzLmZyYW1lRHJvcHBpbmdPbiA9IGNvbmZpZy5lbmNvZGVy
LmZyYW1lX2Ryb3BwaW5nOworICBoMjY1X3NldHRpbmdzLmtleUZyYW1lSW50ZXJ2YWwgPQorICAg
ICAgY29uZmlnLmVuY29kZXIua2V5X2ZyYW1lX2ludGVydmFsLnZhbHVlX29yKDApOworICByZXR1
cm4gbmV3IHJ0Yzo6UmVmQ291bnRlZE9iamVjdDwKKyAgICAgIFZpZGVvRW5jb2RlckNvbmZpZzo6
SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzPihoMjY1X3NldHRpbmdzKTsKK30KKyNlbmRpZgor
CiBydGM6OnNjb3BlZF9yZWZwdHI8VmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNvZGVyU3BlY2lmaWNT
ZXR0aW5ncz4KIENyZWF0ZUVuY29kZXJTcGVjaWZpY1NldHRpbmdzKFZpZGVvU3RyZWFtQ29uZmln
IGNvbmZpZykgewogICB1c2luZyBDb2RlYyA9IFZpZGVvU3RyZWFtQ29uZmlnOjpFbmNvZGVyOjpD
b2RlYzsKICAgc3dpdGNoIChjb25maWcuZW5jb2Rlci5jb2RlYykgeworI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyAgICBjYXNlIENvZGVjOjprVmlkZW9Db2RlY0gyNjU6CisgICAgICByZXR1cm4gQ3Jl
YXRlSDI2NVNwZWNpZmljU2V0dGluZ3MoY29uZmlnKTsKKyNlbmRpZgogICAgIGNhc2UgQ29kZWM6
OmtWaWRlb0NvZGVjSDI2NDoKICAgICAgIHJldHVybiBDcmVhdGVIMjY0U3BlY2lmaWNTZXR0aW5n
cyhjb25maWcpOwogICAgIGNhc2UgQ29kZWM6OmtWaWRlb0NvZGVjVlA4OgpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdGVzdC92aWRlb19jb2Rl
Y19zZXR0aW5ncy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
dGVzdC92aWRlb19jb2RlY19zZXR0aW5ncy5oCmluZGV4IGI1MjUwNDg2ZDc2ZjZlMTUzYWU4NzAz
ZGQ0MjliNTVlMzQ3Zjg1MWIuLjM5YzdiNzViNzhjZmQ1MTkxMzY0NDQ2NWNiOWNiODRhMDI5NGQw
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Rlc3QvdmlkZW9fY29kZWNfc2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy90ZXN0L3ZpZGVvX2NvZGVjX3NldHRpbmdzLmgKQEAgLTU2LDYg
KzU2LDExIEBAIHN0YXRpYyB2b2lkIENvZGVjU2V0dGluZ3MoVmlkZW9Db2RlY1R5cGUgY29kZWNf
dHlwZSwgVmlkZW9Db2RlYyogc2V0dGluZ3MpIHsKICAgICBjYXNlIGtWaWRlb0NvZGVjVlA5Ogog
ICAgICAgKihzZXR0aW5ncy0+VlA5KCkpID0gVmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0VnA5U2V0
dGluZ3MoKTsKICAgICAgIHJldHVybjsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAgY2FzZSBr
VmlkZW9Db2RlY0gyNjU6CisgICAgICAqKHNldHRpbmdzLT5IMjY1KCkpID0gVmlkZW9FbmNvZGVy
OjpHZXREZWZhdWx0SDI2NVNldHRpbmdzKCk7CisgICAgICByZXR1cm47CisjZW5kaWYKICAgICBj
YXNlIGtWaWRlb0NvZGVjSDI2NDoKICAgICAgIC8vIFRPRE8oYnJhbmR0cik6IFNldCB8cXBNYXh8
IGhlcmUsIHdoZW4gdGhlIE9wZW5IMjY0IHdyYXBwZXIgc3VwcG9ydHMgaXQuCiAgICAgICAqKHNl
dHRpbmdzLT5IMjY0KCkpID0gVmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0SDI2NFNldHRpbmdzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92
aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5jYwpp
bmRleCBjZWY1NjAyNzgwYzNmNTM5YTZmYjE0MDFlOGIxMzczODUzZmFmMTg3Li40YThmZTk3YWU4
OWQ3N2ZlMjUzOTJiNTEwY2YzZWNkZTczNGU2NDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2Vp
dmVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Zp
ZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MKQEAgLTM3Nyw3ICszNzcsMjAgQEAgaW50
MzJfdCBSdHBWaWRlb1N0cmVhbVJlY2VpdmVyOjpPblJlY2VpdmVkUGF5bG9hZERhdGEoCiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgfSBlbHNlIGlmIChw
YWNrZXQuY29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICBzd2l0Y2ggKGgyNjVfdHJh
Y2tlcl8uQ29weUFuZEZpeEJpdHN0cmVhbSgmcGFja2V0KSkgeworICAgICAgY2FzZSB2aWRlb19j
b2Rpbmc6OkgyNjVWcHNTcHNQcHNUcmFja2VyOjprUmVxdWVzdEtleWZyYW1lOgorICAgICAgICBr
ZXlmcmFtZV9yZXF1ZXN0X3NlbmRlcl8tPlJlcXVlc3RLZXlGcmFtZSgpOworICAgICAgICBSVENf
RkFMTFRIUk9VR0goKTsKKyAgICAgIGNhc2UgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJh
Y2tlcjo6a0Ryb3A6CisgICAgICAgIHJldHVybiAwOworICAgICAgY2FzZSB2aWRlb19jb2Rpbmc6
OkgyNjVWcHNTcHNQcHNUcmFja2VyOjprSW5zZXJ0OgorICAgICAgICBicmVhazsKKyAgICB9Cisj
ZWxzZQogICB9IGVsc2UgeworI2VuZGlmCiAgICAgdWludDhfdCogZGF0YSA9IG5ldyB1aW50OF90
W3BhY2tldC5zaXplQnl0ZXNdOwogICAgIG1lbWNweShkYXRhLCBwYWNrZXQuZGF0YVB0ciwgcGFj
a2V0LnNpemVCeXRlcyk7CiAgICAgcGFja2V0LmRhdGFQdHIgPSBkYXRhOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVv
X3N0cmVhbV9yZWNlaXZlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oCmluZGV4IDM2NWJlNGFhZmZl
MWU5ODJiYjNkZDM4YWM2NDU3YmU4NGJiMjUxYTcuLmE2MTEzYTFjZmE4OWU3MGViYTkzZDgwODQ0
ZDFlNWExM2RhYWQ5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3Ry
ZWFtX3JlY2VpdmVyLmgKQEAgLTMyLDYgKzMyLDkgQEAKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL2luY2x1ZGUvcnRwX3J0Y3BfZGVmaW5lcy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9f
Y29kaW5nL2gyNjRfc3BzX3Bwc190cmFja2VyLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19j
b2RpbmcvbG9zc19ub3RpZmljYXRpb25fY29udHJvbGxlci5oIgorI2lmbmRlZiBESVNBQkxFX0gy
NjUKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNr
ZXIuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZm
ZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9ydHBfZnJhbWVfcmVmZXJlbmNl
X2ZpbmRlci5oIgogI2luY2x1ZGUgInJ0Y19iYXNlL2NvbnN0cnVjdG9yX21hZ2ljLmgiCkBAIC0y
ODMsNiArMjg2LDExIEBAIGNsYXNzIFJ0cFZpZGVvU3RyZWFtUmVjZWl2ZXIgOiBwdWJsaWMgTG9z
c05vdGlmaWNhdGlvblNlbmRlciwKICAgLy8gTWFwcyBwYXlsb2FkIHR5cGUgdG8gY29kZWMgdHlw
ZSwgZm9yIHBhY2tldGl6YXRpb24uCiAgIHN0ZDo6bWFwPHVpbnQ4X3QsIGFic2w6Om9wdGlvbmFs
PFZpZGVvQ29kZWNUeXBlPj4gcGF5bG9hZF90eXBlX21hcF87CiAKKworI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyAgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlciBoMjY1X3RyYWNrZXJf
OworI2VuZGlmCisKICAgLy8gVE9ETyhqb2hhbik6IFJlbW92ZSBwdF9jb2RlY19wYXJhbXNfIG9u
Y2UKICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3dlYnJ0Yy9pc3N1ZXMvZGV0YWls
P2lkPTY4ODMgaXMgcmVzb2x2ZWQuCiAgIC8vIE1hcHMgYSBwYXlsb2FkIHR5cGUgdG8gYSBtYXAg
b2Ygb3V0LW9mLWJhbmQgc3VwcGxpZWQgY29kZWMgcGFyYW1ldGVycy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3NlbmRfc3RhdGlz
dGljc19wcm94eS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3ZpZGVvL3NlbmRfc3RhdGlzdGljc19wcm94eS5jYwppbmRleCBjMmFhYjA1OWM1Y2JjOWE0NDJi
MTE3NGZmZTgyYzRiOWNmYWU5MTc0Li4wYTljMTI3ODMwOGRkYmVmNjhhZDAwZjYyMDE1ZjNmNDQz
N2U2OGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy92aWRlby9zZW5kX3N0YXRpc3RpY3NfcHJveHkuY2MKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vc2VuZF9zdGF0aXN0aWNzX3Byb3h5LmNj
CkBAIC00Myw2ICs0Myw5IEBAIGVudW0gSGlzdG9ncmFtQ29kZWNUeXBlIHsKICAga1ZpZGVvVnA4
ID0gMSwKICAga1ZpZGVvVnA5ID0gMiwKICAga1ZpZGVvSDI2NCA9IDMsCisjaWZuZGVmIERJU0FC
TEVfSDI2NQorICBrVmlkZW9IMjY1ID0gNCwKKyNlbmRpZgogICBrVmlkZW9NYXggPSA2NCwKIH07
CiAKQEAgLTcwLDYgKzczLDEwIEBAIEhpc3RvZ3JhbUNvZGVjVHlwZSBQYXlsb2FkTmFtZVRvSGlz
dG9ncmFtQ29kZWNUeXBlKAogICAgICAgcmV0dXJuIGtWaWRlb1ZwOTsKICAgICBjYXNlIGtWaWRl
b0NvZGVjSDI2NDoKICAgICAgIHJldHVybiBrVmlkZW9IMjY0OworI2lmbmRlZiBESVNBQkxFX0gy
NjUKKyAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NToKKyAgICAgIHJldHVybiBrVmlkZW9IMjY1Owor
I2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgIHJldHVybiBrVmlkZW9Vbmtub3duOwogICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRl
by92aWRlb19yZWNlaXZlX3N0cmVhbS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3RyZWFtLmNjCmluZGV4IGE1MmRhYzhl
YTA5NzVjZjllNTY2M2U4NzA4NGY1OTg2YzhjODVkODkuLjE1OThlYjVkYTJlOGRlZGFmOTgxNDQ3
MzZjODAwZTk0ZTk5MGY1MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3RyZWFtLmNjCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVf
c3RyZWFtLmNjCkBAIC04Niw2ICs4NiwxMSBAQCBWaWRlb0NvZGVjIENyZWF0ZURlY29kZXJWaWRl
b0NvZGVjKGNvbnN0IFZpZGVvUmVjZWl2ZVN0cmVhbTo6RGVjb2RlciYgZGVjb2RlcikgewogICAg
IGFzc29jaWF0ZWRfY29kZWMuY29kZWNUeXBlID0ga1ZpZGVvQ29kZWNNdWx0aXBsZXg7CiAgICAg
cmV0dXJuIGFzc29jaWF0ZWRfY29kZWM7CiAgIH0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIGVs
c2UgaWYgKGNvZGVjLmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICAqKGNvZGVj
LkgyNjUoKSkgPSBWaWRlb0VuY29kZXI6OkdldERlZmF1bHRIMjY1U2V0dGluZ3MoKTsKKyAgfQor
I2VuZGlmCiAKICAgY29kZWMud2lkdGggPSAzMjA7CiAgIGNvZGVjLmhlaWdodCA9IDE4MDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVv
L3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fc3RyZWFtX2VuY29kZXIuY2MKaW5kZXggMGFmMTYyOGMw
ZjlhZWIxOGMxMGJiZDI4ZGQ5MWQ3OTYwMzJiNzU1Yi4uZWIyOTFkNjlkOTIwYzBjYjFkZTMxMWIy
NmRiYjc3NWZhYTM5ZDlhYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fc3RyZWFtX2VuY29kZXIuY2MKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fc3RyZWFtX2Vu
Y29kZXIuY2MKQEAgLTEzOCw2ICsxMzgsMTMgQEAgYm9vbCBSZXF1aXJlc0VuY29kZXJSZXNldChj
b25zdCBWaWRlb0NvZGVjJiBwcmV2X3NlbmRfY29kZWMsCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgfQogICAgICAgYnJlYWs7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1Zp
ZGVvQ29kZWNIMjY1OgorICAgICAgaWYgKG5ld19zZW5kX2NvZGVjLkgyNjUoKSAhPSBwcmV2X3Nl
bmRfY29kZWMuSDI2NSgpKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICAgICAg
YnJlYWs7CisjZW5kaWYKIAogICAgIGRlZmF1bHQ6CiAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBmYzY0Mjc5YWYyYzUxMDVmYjk4NzE2ZGFhZTQzYjJkNzEw
Njc2NjEzLi44MGMxZmM3ZmU5OTE1OTA2MDM4YTQwNzgyOGU2NGM4NDBkMDI1OTZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjMxLDYgKzEyMzEsMzMgQEAKIAkJNDE3NUVB
MEMyMTY1OTZERDAwQjQ2MzkwIC8qIHZweF9zY2FsZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyMzlCMDgyMTQ3NTdBRDAwMzk2RjgxIC8qIHZweF9z
Y2FsZS5jICovOyB9OwogCQk0MTc1RUEwRDIxNjU5NkREMDBCNDYzOTAgLyogeXYxMmNvbmZpZy5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyMzlCMDky
MTQ3NTdBRDAwMzk2RjgxIC8qIHl2MTJjb25maWcuYyAqLzsgfTsKIAkJNDE3NUVBMEUyMTY1OTZE
RDAwQjQ2MzkwIC8qIHl2MTJleHRlbmQuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMjM5QjBBMjE0NzU3QUUwMDM5NkY4MSAvKiB5djEyZXh0ZW5kLmMg
Ki87IH07CisJCTQxNzdGNEVFMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X2NvbW1vbi5jYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNEU2MjM4MEU3
RDYwMEMwNDQ4NiAvKiBoMjY1X2NvbW1vbi5jYyAqLzsgfTsKKwkJNDE3N0Y0RUYyMzgwRTdENzAw
QzA0NDg2IC8qIGgyNjVfcHBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNEU3MjM4MEU3RDYwMEMwNDQ4NiAvKiBoMjY1X3Bwc19w
YXJzZXIuY2MgKi87IH07CisJCTQxNzdGNEYwMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X3Zwc19w
YXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NzdGNEU4MjM4MEU3RDYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19wYXJzZXIuaCAqLzsgfTsKKwkJNDE3
N0Y0RjEyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfdnBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNEU5MjM4MEU3RDYwMEMwNDQ4
NiAvKiBoMjY1X3Zwc19wYXJzZXIuY2MgKi87IH07CisJCTQxNzdGNEYyMjM4MEU3RDcwMEMwNDQ4
NiAvKiBoMjY1X2NvbW1vbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE3N0Y0RUEyMzgwRTdENjAwQzA0NDg2IC8qIGgyNjVfY29tbW9uLmggKi87IH07
CisJCTQxNzdGNEYzMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X3Bwc19wYXJzZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNEVCMjM4MEU3RDcw
MEMwNDQ4NiAvKiBoMjY1X3Bwc19wYXJzZXIuaCAqLzsgfTsKKwkJNDE3N0Y0RjQyMzgwRTdENzAw
QzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y0RUMyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfc3BzX3Bh
cnNlci5oICovOyB9OworCQk0MTc3RjRGNTIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2NV9zcHNfcGFy
c2VyLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3
N0Y0RUQyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLzsgfTsKKwkJNDE3
N0Y0RkEyMzgwRTgwMDAwQzA0NDg2IC8qIHJ0cF9mb3JtYXRfaDI2NS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y0RjYyMzgwRTdGRjAwQzA0NDg2
IC8qIHJ0cF9mb3JtYXRfaDI2NS5oICovOyB9OworCQk0MTc3RjRGQjIzODBFODAwMDBDMDQ0ODYg
LyogaDI2NV9zcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTc3RjRGNzIzODBFN0ZGMDBDMDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmgg
Ki87IH07CisJCTQxNzdGNEZDMjM4MEU4MDAwMEMwNDQ4NiAvKiBoMjY1X3Nwc19wYXJzZXIuY2Mg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc3RjRGODIz
ODBFN0ZGMDBDMDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovOyB9OworCQk0MTc3RjRGRDIz
ODBFODAwMDBDMDQ0ODYgLyogcnRwX2Zvcm1hdF9oMjY1LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y0RjkyMzgwRTgwMDAwQzA0NDg2IC8qIHJ0
cF9mb3JtYXRfaDI2NS5jYyAqLzsgfTsKKwkJNDE3N0Y1MDAyMzgwRTgxRjAwQzA0NDg2IC8qIGgy
NjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxNzdGNEZFMjM4MEU4MUYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19zcHNf
cHBzX3RyYWNrZXIuY2MgKi87IH07CisJCTQxNzdGNTAxMjM4MEU4MUYwMEMwNDQ4NiAvKiBoMjY1
X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxNzdGNEZGMjM4MEU4MUYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19zcHNfcHBz
X3RyYWNrZXIuaCAqLzsgfTsKKwkJNDE3N0Y1MEYyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ0NvZGVj
U3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTc3RjUwMjIzODBFODQ2MDBDMDQ0ODYgLyogUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1K1ByaXZhdGUuaCAqLzsgfTsKKwkJNDE3N0Y1MTAyMzgwRTg0ODAwQzA0NDg2
IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNTAzMjM4MEU4NDYwMEMwNDQ4NiAvKiBSVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjUubW0gKi87IH07CisJCTQxNzdGNTExMjM4MEU4NDgwMEMwNDQ4NiAv
KiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE3N0Y1MDQyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2Rl
ckgyNjUubW0gKi87IH07CisJCTQxNzdGNTEyMjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENIMjY1UHJv
ZmlsZUxldmVsSWQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTc3RjUwNTIzODBFODQ2MDBDMDQ0ODYgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1t
ICovOyB9OworCQk0MTc3RjUxMzIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9EZWNvZGVySDI2
NS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y1
MDYyMzgwRTg0NzAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUuaCAqLzsgfTsKKwkJNDE3
N0Y1MTQyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY1Lm0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc3RjUwNzIzODBF
ODQ3MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUubSAqLzsgfTsKKwkJNDE3
N0Y1MTUyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y1MDgyMzgwRTg0
NzAwQzA0NDg2IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oICovOyB9OworCQk0MTc3RjUx
NjIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNTA5MjM4MEU4NDcwMEMwNDQ4
NiAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1tICovOyB9OworCQk0MTc3RjUxNzIzODBFODQ4MDBD
MDQ0ODYgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUubSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNTBBMjM4MEU4NDcwMEMwNDQ4NiAvKiBS
VENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NS5tICovOyB9OworCQk0MTc3RjUxODIzODBFODQ4MDBD
MDQ0ODYgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc3RjUwQjIzODBFODQ3MDBDMDQ0ODYgLyogUlRDSDI2
NVByb2ZpbGVMZXZlbElkLmggKi87IH07CisJCTQxNzdGNTE5MjM4MEU4NDgwMEMwNDQ4NiAvKiBS
VENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y1MEMyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVj
b2RlckZhY3RvcnlIMjY1LmggKi87IH07CisJCTQxNzdGNTFBMjM4MEU4NDgwMEMwNDQ4NiAvKiBS
VENWaWRlb0VuY29kZXJIMjY1LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTc3RjUwRDIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVySDI2
NS5oICovOyB9OworCQk0MTc3RjUxQjIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVy
RmFjdG9yeUgyNjUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNzdGNTBFMjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2
NS5oICovOyB9OwogCQk0MTc5NTNCNDIxNjk4MjQyMDAyODI2NkIgLyogbmFsdV9yZXdyaXRlci5j
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzk1M0FD
MjE2OTgyM0QwMDI4MjY2QiAvKiBuYWx1X3Jld3JpdGVyLmNjICovOyB9OwogCQk0MTc5NTNCNTIx
Njk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzk1M0FEMjE2OTgyM0Uw
MDI4MjY2QiAvKiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tICovOyB9OwogCQk0MTc5
NTNCNzIxNjk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzk1M0FGMjE2
OTgyM0YwMDI4MjY2QiAvKiBSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tICovOyB9OwpA
QCAtNTEzNiw2ICs1MTYzLDMzIEBACiAJCTQxNjczMjA1MjEyRTA0OTEwMDEyODBFQiAvKiBwb3N0
cHJvYy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSBwb3N0cHJvYy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTY3MzIwNjIxMkUwNDkxMDAxMjgwRUIgLyogaWRjdF9ibGsuYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBw
YXRoID0gaWRjdF9ibGsuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RDJGMTAx
RkE4Q0MwNDAwMDk3MzQ1IC8qIFZpZGVvUHJvY2Vzc2luZy5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
bmFtZSA9IFZpZGVvUHJvY2Vzc2luZy5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9Q
cml2YXRlRnJhbWV3b3Jrcy9WaWRlb1Byb2Nlc3NpbmcuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0g
U0RLUk9PVDsgfTsKKwkJNDE3N0Y0RTYyMzgwRTdENjAwQzA0NDg2IC8qIGgyNjVfY29tbW9uLmNj
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gaDI2NV9jb21tb24uY2M7IHBh
dGggPSBoMjY1L2gyNjVfY29tbW9uLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTc3RjRFNzIzODBFN0Q2MDBDMDQ0ODYgLyogaDI2NV9wcHNfcGFyc2VyLmNjICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gaDI2NV9wcHNfcGFyc2VyLmNjOyBwYXRoID0gaDI2
NS9oMjY1X3Bwc19wYXJzZXIuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzdG
NEU4MjM4MEU3RDYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19wYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gaDI2NV92cHNfcGFyc2VyLmg7IHBhdGggPSBoMjY1L2gyNjVfdnBz
X3BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3RjRFOTIzODBFN0Q2
MDBDMDQ0ODYgLyogaDI2NV92cHNfcGFyc2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gaDI2NV92cHNfcGFyc2VyLmNjOyBwYXRoID0gaDI2NS9oMjY1X3Zwc19wYXJz
ZXIuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzdGNEVBMjM4MEU3RDYwMEMw
NDQ4NiAvKiBoMjY1X2NvbW1vbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBo
MjY1X2NvbW1vbi5oOyBwYXRoID0gaDI2NS9oMjY1X2NvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTc3RjRFQjIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2NV9wcHNfcGFyc2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IGgyNjVfcHBzX3BhcnNlci5oOyBw
YXRoID0gaDI2NS9oMjY1X3Bwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE3N0Y0RUMyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBoMjY1X3Nwc19wYXJzZXIuaDsgcGF0aCA9IGgyNjUv
aDI2NV9zcHNfcGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzdGNEVE
MjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBoMjY1X3Nwc19wYXJzZXIuY2M7IHBhdGggPSBoMjY1L2gyNjVf
c3BzX3BhcnNlci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y0RjYyMzgw
RTdGRjAwQzA0NDg2IC8qIHJ0cF9mb3JtYXRfaDI2NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBydHBfZm9ybWF0X2gyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE3N0Y0RjcyMzgwRTdGRjAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBoMjY1X3Nwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y0RjgyMzgwRTdGRjAwQzA0NDg2IC8qIGgyNjVfc3BzX3Bh
cnNlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfc3BzX3Bh
cnNlci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y0RjkyMzgwRTgwMDAw
QzA0NDg2IC8qIHJ0cF9mb3JtYXRfaDI2NS5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IHJ0cF9mb3JtYXRfaDI2NS5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE3N0Y0RkUyMzgwRTgxRjAwQzA0NDg2IC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5j
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfdnBzX3Nwc19wcHNf
dHJhY2tlci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y0RkYyMzgwRTgx
RjAwQzA0NDg2IC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y1MDIyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ0NvZGVjU3Bl
Y2lmaWNJbmZvSDI2NStQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
ICJSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE3N0Y1MDMyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3
N0Y1MDQyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENWaWRlb0RlY29kZXJIMjY1Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3RjUwNTIzODBFODQ2MDBDMDQ0ODYgLyog
UlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTc3RjUwNjIzODBFODQ3MDBDMDQ0ODYgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENWaWRlb0RlY29kZXJIMjY1Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzdGNTA3MjM4MEU4NDcwMEMwNDQ4NiAv
KiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9i
amM7IHBhdGggPSBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTc3RjUwODIzODBFODQ3MDBDMDQ0ODYgLyogUlRDQ29kZWNTcGVjaWZp
Y0luZm9IMjY1LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0NvZGVjU3Bl
Y2lmaWNJbmZvSDI2NS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3RjUwOTIz
ODBFODQ3MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJUQ1ZpZGVvRW5jb2RlckgyNjUubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzdGNTBBMjM4MEU4NDcwMEMwNDQ4NiAvKiBSVENWaWRl
b0RlY29kZXJGYWN0b3J5SDI2NS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGgg
PSBSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NS5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTc3RjUwQjIzODBFODQ3MDBDMDQ0ODYgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3RjUwQzIzODBFODQ4MDBDMDQ0ODYg
LyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDE3N0Y1MEQyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRW5jb2Rlckgy
NjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDVmlkZW9FbmNvZGVySDI2
NS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3RjUwRTIzODBFODQ4MDBDMDQ0
ODYgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDE3OTUzQUMyMTY5ODIzRDAwMjgyNjZCIC8qIG5hbHVfcmV3cml0ZXIu
Y2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBuYWx1X3Jld3JpdGVyLmNj
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5NTNBRDIxNjk4MjNFMDAyODI2NkIg
LyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5vYmpjOyBwYXRoID0gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE3OTUzQUUyMTY5ODIzRjAwMjgyNjZCIC8qIFVJRGV2aWNl
K0gyNjRQcm9maWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
IlVJRGV2aWNlK0gyNjRQcm9maWxlLm1tIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTg5MjYsMjMgKzg5ODAsMzYgQEAKIAkJCQk0MTYyMjVGNTIxNjk4MUY0MDBBOTFDOUIgLyogaGVs
cGVycy5oICovLAogCQkJCTQxNzk1M0FDMjE2OTgyM0QwMDI4MjY2QiAvKiBuYWx1X3Jld3JpdGVy
LmNjICovLAogCQkJCTQxMTUyMUQ1MjE2OTgyMjAwMDBBQkFGNyAvKiBuYWx1X3Jld3JpdGVyLmgg
Ki8sCi0JCQkJNDE3OTUzQjIyMTY5ODI0MTAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NCtQcml2YXRlLmggKi8sCiAJCQkJNDE2MjI1RjEyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NC5oICovLAogCQkJCTQxNjIyNUVEMjE2OTgxRjIwMEE5MUM5QiAv
KiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQubW0gKi8sCisJCQkJNDE3OTUzQjIyMTY5ODI0MTAw
MjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8sCisJCQkJNDE3
N0Y1MDgyMzgwRTg0NzAwQzA0NDg2IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oICovLAor
CQkJCTQxNzdGNTAzMjM4MEU4NDYwMEMwNDQ4NiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUu
bW0gKi8sCisJCQkJNDE3N0Y1MDIyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NStQcml2YXRlLmggKi8sCiAJCQkJNDE3OTUzQjMyMTY5ODI0MjAwMjgyNjZCIC8qIFJU
Q0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmggKi8sCiAJCQkJNDE3OTUzQUQyMTY5ODIzRTAw
MjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gKi8sCiAJCQkJNDE2MjI1
RjcyMTY5ODFGNDAwQTkxQzlCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggKi8s
CiAJCQkJNDE3OTUzQUYyMTY5ODIzRjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJG
YWN0b3J5Lm0gKi8sCiAJCQkJNDExNTIxRDQyMTY5ODIxRjAwMEFCQUY3IC8qIFJUQ0gyNjRQcm9m
aWxlTGV2ZWxJZC5oICovLAogCQkJCTQxMTUyMUQ2MjE2OTgyMjAwMDBBQkFGNyAvKiBSVENIMjY0
UHJvZmlsZUxldmVsSWQubW0gKi8sCisJCQkJNDE3N0Y1MEIyMzgwRTg0NzAwQzA0NDg2IC8qIFJU
Q0gyNjVQcm9maWxlTGV2ZWxJZC5oICovLAorCQkJCTQxNzdGNTA1MjM4MEU4NDYwMEMwNDQ4NiAv
KiBSVENIMjY1UHJvZmlsZUxldmVsSWQubW0gKi8sCiAJCQkJNDE2MjI1RjIyMTY5ODFGMzAwQTkx
QzlCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0LmggKi8sCiAJCQkJNDE3OTUzQjAyMTY5
ODI0MDAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0Lm0gKi8sCisJCQkJNDE3
N0Y1MEMyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY1LmggKi8s
CisJCQkJNDE3N0Y1MEEyMzgwRTg0NzAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlI
MjY1Lm0gKi8sCiAJCQkJNDE2MjI1RjMyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ1ZpZGVvRGVjb2Rl
ckgyNjQuaCAqLywKIAkJCQk0MTYyMjVGNDIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNv
ZGVySDI2NC5tbSAqLywKKwkJCQk0MTc3RjUwNjIzODBFODQ3MDBDMDQ0ODYgLyogUlRDVmlkZW9E
ZWNvZGVySDI2NS5oICovLAorCQkJCTQxNzdGNTA0MjM4MEU4NDYwMEMwNDQ4NiAvKiBSVENWaWRl
b0RlY29kZXJIMjY1Lm1tICovLAogCQkJCTQxNjIyNUVGMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENW
aWRlb0VuY29kZXJGYWN0b3J5SDI2NC5oICovLAogCQkJCTQxNzk1M0IxMjE2OTgyNDAwMDI4MjY2
QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tICovLAorCQkJCTQxNzdGNTBFMjM4MEU4
NDgwMEMwNDQ4NiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5oICovLAorCQkJCTQxNzdG
NTA3MjM4MEU4NDcwMEMwNDQ4NiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5tICovLAog
CQkJCTQxNjIyNUVDMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0LmggKi8s
CiAJCQkJNDE2MjI1RjYyMTY5ODFGNDAwQTkxQzlCIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjQubW0g
Ki8sCisJCQkJNDE3N0Y1MEQyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUu
aCAqLywKKwkJCQk0MTc3RjUwOTIzODBFODQ3MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVySDI2
NS5tbSAqLywKIAkJCQk0MTYyMjVFRTIxNjk4MUYyMDBBOTFDOUIgLyogVUlEZXZpY2UrSDI2NFBy
b2ZpbGUuaCAqLywKIAkJCQk0MTc5NTNBRTIxNjk4MjNGMDAyODI2NkIgLyogVUlEZXZpY2UrSDI2
NFByb2ZpbGUubW0gKi8sCiAJCQkpOwpAQCAtODk2Niw2ICs5MDMzLDIxIEBACiAJCQlwYXRoID0g
ZW5jb2Rlci94ODY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk0MTc3RjRF
NTIzODBFN0MxMDBDMDQ0ODYgLyogaDI2NSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNDE3N0Y0RTYyMzgwRTdENjAwQzA0NDg2IC8qIGgyNjVfY29tbW9u
LmNjICovLAorCQkJCTQxNzdGNEVBMjM4MEU3RDYwMEMwNDQ4NiAvKiBoMjY1X2NvbW1vbi5oICov
LAorCQkJCTQxNzdGNEU3MjM4MEU3RDYwMEMwNDQ4NiAvKiBoMjY1X3Bwc19wYXJzZXIuY2MgKi8s
CisJCQkJNDE3N0Y0RUIyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfcHBzX3BhcnNlci5oICovLAor
CQkJCTQxNzdGNEVEMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgKi8sCisJ
CQkJNDE3N0Y0RUMyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5oICovLAorCQkJ
CTQxNzdGNEU5MjM4MEU3RDYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19wYXJzZXIuY2MgKi8sCisJCQkJ
NDE3N0Y0RTgyMzgwRTdENjAwQzA0NDg2IC8qIGgyNjVfdnBzX3BhcnNlci5oICovLAorCQkJKTsK
KwkJCW5hbWUgPSBoMjY1OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNDE3
OTUzREQyMTY5ODNCMjAwMjgyNjZCIC8qIGluY2x1ZGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTEzOTMsNiArMTE0NzUsNyBAQAogCQkJCTQxMzFDNDJG
MjM0QzdEOTYwMDI4QTYxNSAvKiBmcmFtZV9yYXRlX2VzdGltYXRvci5oICovLAogCQkJCTQxMzFD
NDJBMjM0QzdENzAwMDI4QTYxNSAvKiBnZW5lcmljX2ZyYW1lX2Rlc2NyaXB0b3IgKi8sCiAJCQkJ
NUNERDgzNDExRTQzMjU2NDAwNjIxRTkyIC8qIGgyNjQgKi8sCisJCQkJNDE3N0Y0RTUyMzgwRTdD
MTAwQzA0NDg2IC8qIGgyNjUgKi8sCiAJCQkJNDExMDlBQTQxRTVGQTE4MTAwQzA5NTVBIC8qIGlu
Y2x1ZGUgKi8sCiAJCQkJNUNERDgzNjUxRTQzMjVDMjAwNjIxRTkyIC8qIGxpYnl1diAqLywKIAkJ
CQk1QzRCNEMxMDFFNDMxRjc1MDAyNjUxQzggLyogYml0cmF0ZV9hZGp1c3Rlci5jYyAqLywKQEAg
LTEyMjkxLDYgKzEyMzc0LDggQEAKIAkJCQk1Q0QyODVFOTFFNkE2MzlGMDA5NEZEQzggLyogaDI2
NF9zcHJvcF9wYXJhbWV0ZXJfc2V0cy5oICovLAogCQkJCTVDREQ4MzlBMUU0MzlBNkYwMDYyMUU5
MiAvKiBoMjY0X3Nwc19wcHNfdHJhY2tlci5jYyAqLywKIAkJCQk1Q0REODM5QjFFNDM5QTZGMDA2
MjFFOTIgLyogaDI2NF9zcHNfcHBzX3RyYWNrZXIuaCAqLywKKwkJCQk0MTc3RjRGRTIzODBFODFG
MDBDMDQ0ODYgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjICovLAorCQkJCTQxNzdGNEZG
MjM4MEU4MUYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCAqLywKIAkJCQk1
Q0REODM5QzFFNDM5QTZGMDA2MjFFOTIgLyogaGlzdG9ncmFtLmNjICovLAogCQkJCTVDREQ4MzlE
MUU0MzlBNkYwMDYyMUU5MiAvKiBoaXN0b2dyYW0uaCAqLywKIAkJCQk0MTMxQzQ1QTIzNEM4MTUx
MDAyOEE2MTUgLyogaW5jbHVkZSAqLywKQEAgLTEyOTcwLDYgKzEzMDU1LDEwIEBACiAJCTVDREQ4
N0ZBMUU0M0JFMjYwMDYyMUU5MiAvKiBzb3VyY2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTQxNzdGNEY4MjM4MEU3RkYwMEMwNDQ4NiAvKiBoMjY1X3Nw
c19wYXJzZXIuY2MgKi8sCisJCQkJNDE3N0Y0RjcyMzgwRTdGRjAwQzA0NDg2IC8qIGgyNjVfc3Bz
X3BhcnNlci5oICovLAorCQkJCTQxNzdGNEY5MjM4MEU4MDAwMEMwNDQ4NiAvKiBydHBfZm9ybWF0
X2gyNjUuY2MgKi8sCisJCQkJNDE3N0Y0RjYyMzgwRTdGRjAwQzA0NDg2IC8qIHJ0cF9mb3JtYXRf
aDI2NS5oICovLAogCQkJCTQxMzFDNEM4MjM0Qzg0QTEwMDI4QTYxNSAvKiBhYnNvbHV0ZV9jYXB0
dXJlX3RpbWVfcmVjZWl2ZXIuY2MgKi8sCiAJCQkJNDEzMUM0Q0QyMzRDODRBMjAwMjhBNjE1IC8q
IGFic29sdXRlX2NhcHR1cmVfdGltZV9yZWNlaXZlci5oICovLAogCQkJCTQxMzFDNENDMjM0Qzg0
QTIwMDI4QTYxNSAvKiBhYnNvbHV0ZV9jYXB0dXJlX3RpbWVfc2VuZGVyLmNjICovLApAQCAtMTQz
NzAsNiArMTQ0NTksNyBAQAogCQkJCTQxMzFCRjU3MjM0Qjg4MjAwMDI4QTYxNSAvKiBjaGFubmVs
X21hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDMzRDAxMUY3OUIzMzQwMDM4N0I0RCAv
KiBhcml0aF9yb3V0aW5zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzExMTIzNEI4OUUyMDAy
OEE2MTUgLyogcGxhdGZvcm1fdGhyZWFkX3R5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc3
RjUxMzIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEzMUMzN0IyMzRCOTU3RDAwMjhBNjE1IC8qIHJldmVyYl9mcmVxdWVuY3lfcmVz
cG9uc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMDgxMjM0Qjg5OEQwMDI4QTYxNSAvKiBo
dHRwX2NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzMjEyMzRCOERDMjAwMjhBNjE1
IC8qIGZ1bmN0aW9uX3ZpZXcuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ0NjEsNiArMTQ1NTEsNyBA
QAogCQkJCTQxMzFDNEEyMjM0QzgzNEUwMDI4QTYxNSAvKiBidWZmZXJlZF9mcmFtZV9kZWNyeXB0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMDM4MjM0Qjg5OEQwMDI4QTYxNSAvKiBrZWVw
X3JlZl91bnRpbF9kb25lLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODQ5MzFFNkE1RjQxMDA5
NEZEQzggLyogYXVkaW9fZnJhbWVfbWFuaXB1bGF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
NzdGNTFCMjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1NEUxRTZBNjIxMzAwOTRGREM4IC8qIGF1ZGlvX2ZyYW1l
X29wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJGNkEyMjEyNzMyNjIwMDZBRThE
NyAvKiBhdWRpb19sZXZlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBOTAxRTQzQzAwRjAw
NjIxRTkyIC8qIGF1ZGlvX2xvb3AuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ0OTMsNiArMTQ1ODQs
NyBAQAogCQkJCTQxMzFCRjFDMjM0Qjg4MjAwMDI4QTYxNSAvKiB3ZWJydGNfc2RwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1QzA4ODUyOTFFNEE5OUQyMDA0MDM5OTUgLyogYXV0aC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUM2M0Y4REExRTQxNkQ1MzAwMkNBNTMxIC8qIGF1dG9saW5rLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTc3RjRGMDIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2NV92cHNfcGFyc2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEEwODFFNDNCRkIzMDA2MjFFOTIgLyogYmFja2dy
b3VuZF9ub2lzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBMDhCQzcyMTI2OTVERTAwMUQ1RDdC
IC8qIGJhZF9vcHRpb25hbF9hY2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MTgyMjEy
NzQ5NzEwMDYzNEZDRiAvKiBiYWRfdmFyaWFudF9hY2Nlc3MuaCBpbiBIZWFkZXJzICovLApAQCAt
MTQ1NDcsNiArMTQ2MzksNyBAQAogCQkJCTQxOTI0MTc1MjEyNzM4QzIwMDYzNEZDRiAvKiBjYWxs
ZmFjdG9yeWludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCNzcxRTQzQzJCNTAw
NjIxRTkyIC8qIGNiX2NvbnN0cnVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCN0QxRTQz
QzJCNTAwNjIxRTkyIC8qIGNiX21lbV9lbmVyZ3kuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNzdG
NEZBMjM4MEU4MDAwMEMwNDQ4NiAvKiBydHBfZm9ybWF0X2gyNjUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDREQ4Qjc5MUU0M0MyQjUwMDYyMUU5MiAvKiBjYl9tZW1fZW5lcmd5X2F1Z21lbnRhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCN0IxRTQzQzJCNTAwNjIxRTkyIC8qIGNiX21l
bV9lbmVyZ3lfY2FsYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0NTUyMzRDODExODAwMjhB
NjE1IC8qIHJlbGF5X3BvcnRfZmFjdG9yeV9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLApAQCAt
MTQ2MjQsNiArMTQ3MTcsNyBAQAogCQkJCTVDMDg4NTJEMUU0QTk5RDIwMDQwMzk5NSAvKiBkYXRh
dHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Qzg3MUU0M0M2NjAwMDYyMUU5MiAvKiBk
YXViZWNoaWVzXzhfd2F2ZWxldF9jb2VmZnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Rjg4
MUU0M0NCRTAwMDYyMUU5MiAvKiBkZWJ1Z19kdW1wX3dyaXRlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDE3N0Y0RkIyMzgwRTgwMDAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDEzMUMwRkQyMzRCODlFMjAwMjhBNjE1IC8qIHNpZ3Nsb3RfcmVwZWF0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0Y4MUZFMjQ4RjEwMDQwQzMwRiAvKiBkZWNpbWF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTE3MUU0M0JGQjMwMDYyMUU5MiAvKiBkZWNp
c2lvbl9sb2dpYy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDY1NSw2ICsxNDc0OSw3IEBACiAJCQkJ
NDEzMUMzODIyMzRCOTU3RDAwMjhBNjE1IC8qIHJldmVyYl9tb2RlbF9lc3RpbWF0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4NjhFMUU0M0I5MzkwMDYyMUU5MiAvKiBkZWxheV9lc3RpbWF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Njg5MUU0M0I5MzkwMDYyMUU5MiAvKiBkZWxh
eV9lc3RpbWF0b3JfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNzdGNTE1MjM4MEU4
NDgwMEMwNDQ4NiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDREQ4NjhDMUU0M0I5MzkwMDYyMUU5MiAvKiBkZWxheV9lc3RpbWF0b3Jfd3JhcHBlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzQTYyMzRCOTZDMzAwMjhBNjE1IC8qIGF1ZGlvX21p
eGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUwMkNCNzIxMjczNTJEMDBDMjdDRDYgLyogZGVs
YXlfaW5jcmVhc2VfZGV0ZWN0b3JfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKQEAgLTE0ODcw
LDYgKzE0OTY1LDcgQEAKIAkJCQk1Q0REODNERjFFNDM5QTZGMDA2MjFFOTIgLyogaW50ZXJuYWxf
ZGVmaW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCQzAxRTQzQzJCNTAwNjIxRTkyIC8q
IGludGVycG9sYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJCRTFFNDNDMkI1MDA2MjFF
OTIgLyogaW50ZXJwb2xhdGVfc2FtcGxlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE3N0Y1MUEy
MzgwRTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxOUM4MzMxMUZFMjQ1Q0QwMDQwQzMwRiAvKiBpbnRlcnZhbF9idWRnZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxQkU3MUI1MjE1QzQ2MzcwMEE3QjE5NiAvKiBpbnRudW0uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxNDMzQ0ZGMUY3OUIzMzQwMDM4N0I0RCAvKiBpc2FjX2ZpeF90eXBlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTE1MDgwLDYgKzE1MTc2LDcgQEAKIAkJCQk0MTMxQzFFNTIzNEI4
QTRCMDAyOEE2MTUgLyogdHJhbnNwb3J0X2luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFD
MkYzMjM0QjhEQzIwMDI4QTYxNSAvKiBwZWVyX2Nvbm5lY3Rpb25fcHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4N0Q0MUU0M0JDMDYwMDYyMUU5MiAvKiBwaXRjaF9nYWluX3RhYmxlcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDE3N0Y1MDEyMzgwRTgxRjAwQzA0NDg2IC8qIGgyNjVfdnBz
X3Nwc19wcHNfdHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0MzNEMjMxRjc5QjMzNDAw
Mzg3QjREIC8qIHBpdGNoX2dhaW5fdGFibGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDE0
MzIxMjczNzI4MDA2MzRGQ0YgLyogcGl0Y2hfaW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
MUMyRkUyMzRCOERDMjAwMjhBNjE1IC8qIHJ0Y19lcnJvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
NTI0OCw2ICsxNTM0NSw3IEBACiAJCQkJNDEzQTI0NjcxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ01U
TE5TVmlkZW9WaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ3MTFGRTE5OTFBMDAzNzNF
OTkgLyogUlRDTVRMVmlkZW9WaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzMwQTIzNEI4
REMyMDAyOEE2MTUgLyogZmVjX2NvbnRyb2xsZXJfb3ZlcnJpZGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxNzdGNTE5MjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2
NS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NEIzRDQyMTY5ODk2RDAwNDM2M0FDIC8qIFJUQ05h
dGl2ZUk0MjBCdWZmZXIrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NEIzRDIyMTY5
ODk2RDAwNDM2M0FDIC8qIFJUQ05hdGl2ZUk0MjBCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNDRCM0Q1MjE2OTg5NkQwMDQzNjNBQyAvKiBSVENOYXRpdmVNdXRhYmxlSTQyMEJ1ZmZlci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xNTQxNyw2ICsxNTUxNSw3IEBACiAJCQkJNDEzMUMwNUIyMzRC
ODk4RDAwMjhBNjE1IC8qIG1lc3NhZ2VfcXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFD
M0M5MjM0Qjk3RjQwMDI4QTYxNSAvKiBzY3RwX3RyYW5zcG9ydF9pbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDg5NzAxRTQzQkYzQTAwNjIxRTkyIC8qIHNkZXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxNzdGNTBGMjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENDb2RlY1NwZWNpZmljSW5m
b0gyNjUrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NUY2MUQxRkUxRjM4RDAwRUI5
Q0FGIC8qIHNkcF92aWRlb19mb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMDU3MjM0
Qjg5OEQwMDI4QTYxNSAvKiBsb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzU2MzIz
NEM4QzIzMDAyOEE2MTUgLyogbG9nZ2luZ19tYWMuaCBpbiBIZWFkZXJzICovLApAQCAtMTU1MjUs
NiArMTU2MjQsNyBAQAogCQkJCTVDREQ4QTVFMUU0M0JGQjMwMDYyMUU5MiAvKiB0aW1lc3RhbXBf
c2NhbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzMxRDIzNEI4REMyMDAyOEE2MTUgLyog
ZGF0YWdyYW1fdHJhbnNwb3J0X2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg0
MDAxRTQzOUE2RjAwNjIxRTkyIC8qIHRpbWluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE3N0Y1
MTgyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEzMUMxQzQyMzRCOEE0QTAwMjhBNjE1IC8qIGNhbmRpZGF0ZV9wYWlyX2ludGVy
ZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5N0IxRTQzQkYzQTAwNjIxRTkyIC8qIHRt
bWJfaXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMyODIyMzRCOENDNDAwMjhBNjE1IC8q
IGludGVybmFsX2RlY29kZXJfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTU1Nyw2ICsx
NTY1Nyw3IEBACiAJCQkJNDEzMUJGMDMyMzRCODgyMDAwMjhBNjE1IC8qIHNlc3Npb25fZGVzY3Jp
cHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QkYyMUU0M0MyQjUwMDYyMUU5MiAvKiB1
bnBhY2tfYml0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxMEIyMzRCODlFMjAwMjhBNjE1
IC8qIHNpZ3Nsb3RfdGVzdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc3RjRGNDIzODBFN0Q3
MDBDMDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzFD
QjIzNEI4QTRBMDAyOEE2MTUgLyogbm9fb3BfZHRsc190cmFuc3BvcnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxRjI2M0IwMjEyNjgwQTgwMDI3NEY1OSAvKiB1bnVzZWQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxM0EyMTQwMUZFMEYwRUYwMDM3M0U5OSAvKiB1dF9zaW0uaCBpbiBIZWFkZXJzICov
LApAQCAtMTU1NjUsNiArMTU2NjYsNyBAQAogCQkJCTVDREQ4NzNCMUU0M0JBQkUwMDYyMUU5MiAv
KiB2YWRfYXVkaW9fcHJvYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3MzgxRTQzQkFCRTAw
NjIxRTkyIC8qIHZhZF9hdWRpb19wcm9jX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTMxQzNBQzIzNEI5NkMzMDAyOEE2MTUgLyogZWNob19jb250cm9sLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MTc3RjRGMzIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2NV9wcHNfcGFyc2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REODczRTFFNDNCQUJFMDA2MjFFOTIgLyogdmFkX2NpcmN1bGFyX2J1
ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxNEMyMzRCODlFMjAwMjhBNjE1IC8qIG9w
ZW5zc2xfdXRpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg2RDcxRTQzQkEyODAwNjIx
RTkyIC8qIHZhZF9jb3JlLmggaW4gSGVhZGVycyAqLywKQEAgLTE1NjI2LDYgKzE1NzI4LDcgQEAK
IAkJCQk0MTMxQzFDQTIzNEI4QTRBMDAyOEE2MTUgLyogcG9ydF9pbnRlcmZhY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMzFDMDYzMjM0Qjg5OEQwMDI4QTYxNSAvKiBpZ25vcmVfd3VuZGVmLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTIzOUI0QzIxNDc3MTZEMDAzOTZGODEgLyogdmlkZW9fc3Ry
ZWFtX2VuY29kZXJfY3JlYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc3RjRGMjIzODBFN0Q3
MDBDMDQ0ODYgLyogaDI2NV9jb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTA4QkI0MjEy
NjgxQzgwMDFENUQ3QiAvKiB2aWRlb19zdHJlYW1fZW5jb2Rlcl9pbnRlcmZhY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxQTA4QkI1MjEyNjgxQzgwMDFENUQ3QiAvKiB2aWRlb19zdHJlYW1fZW5j
b2Rlcl9vYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzRkIyMzRDN0IwMzAwMjhB
NjE1IC8qIGF1ZGlvX2RlY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzX2NvbmZpZy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNzA4Niw2ICsxNzE4OSw3IEBACiAJCQkJNDEzMUJGNTUyMzRCODgyMDAwMjhB
NjE1IC8qIGljZV9zZXJ2ZXJfcGFyc2luZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4Rjgw
MUU0M0NCRTAwMDYyMUU5MiAvKiBjaGFubmVsX2NvbnRyb2xsZXIuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MTc5NTNEODIxNjk4MzRGMDAyODI2NkIgLyogY2hhbm5lbF9yZWNlaXZlLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDE3N0Y1MTYyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRW5jb2Rl
ckgyNjUubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzFDMTIzNEI4QTRBMDAyOEE2MTUgLyog
dHVybl9zZXJ2ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNEMzIxNjk4MzRGMDAyODI2
NkIgLyogY2hhbm5lbF9zZW5kLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCODQxRTQzQzJC
NTAwNjIxRTkyIC8qIGNoZWJ5c2hldi5jIGluIFNvdXJjZXMgKi8sCkBAIC0xNzE4Niw2ICsxNzI5
MCw3IEBACiAJCQkJNDEzMUMzMEMyMzRCOERDMjAwMjhBNjE1IC8qIGpzZXAuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk1Q0REODRBRTFFNDNBRjEzMDA2MjFFOTIgLyogZWNob19jYW5jZWxsYXRpb25f
aW1wbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUI4MUU2QTYzNDMwMDk0RkRDOCAvKiBl
Y2hvX2NhbmNlbGxlcjMuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTc3RjUxNDIzODBFODQ4MDBD
MDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUubSBpbiBTb3VyY2VzICovLAogCQkJ
CTQxMzFDMzkwMjM0Qjk1N0QwMDI4QTYxNSAvKiByZXZlcmJfbW9kZWwuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQkY4RjIzNEI4OEE2MDAyOEE2MTUgLyogdmlkZW9fc291cmNlX2Jhc2UuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REODVFQTFFNDNCODEwMDA2MjFFOTIgLyogZWNob19jb250
cm9sX21vYmlsZS5jYyBpbiBTb3VyY2VzICovLApAQCAtMTcyNTksNiArMTczNjQsNyBAQAogCQkJ
CTVDREQ4N0JGMUU0M0JDMDUwMDYyMUU5MiAvKiBmaWx0ZXJiYW5rcy5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDhCQTAxRTQzQzJCNTAwNjIxRTkyIC8qIGZpbHRlcmVkX2NiX3ZlY3MuYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxNDMzRDA0MUY3OUIzMzQwMDM4N0I0RCAvKiBmaWx0ZXJzLmMgaW4g
U291cmNlcyAqLywKKwkJCQk0MTc3RjRGRDIzODBFODAwMDBDMDQ0ODYgLyogcnRwX2Zvcm1hdF9o
MjY1LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMxMUEwMDMxRTQ1NzQwMDAwNEYwOTg3IC8qIGZp
bmVfYXVkaW9fYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg5NTAxRTQzQkYzQTAw
NjIxRTkyIC8qIGZpci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4MzFCMUZFMjQyQjIwMDQw
QzMwRiAvKiBmaXJfZmlsdGVyX2MuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3MjcwLDYgKzE3Mzc2
LDcgQEAKIAkJCQk0MTAyRjZCQzIxMjczMzgyMDA2QUU4RDcgLyogZmxleGZlY19yZWNlaXZlX3N0
cmVhbS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NEI5MUU2QTVGOUYwMDk0RkRDOCAvKiBm
bGV4ZmVjX3JlY2VpdmVfc3RyZWFtX2ltcGwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODg4
MzFFNDNCRTNDMDA2MjFFOTIgLyogZmxleGZlY19yZWNlaXZlci5jYyBpbiBTb3VyY2VzICovLAor
CQkJCTQxNzdGNEYxMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X3Zwc19wYXJzZXIuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTMxQzA3NDIzNEI4OThEMDAyOEE2MTUgLyogbWVzc2FnZV9xdWV1ZS5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNTVCMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZl
bnRfYWxyX3N0YXRlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4ODUxRTQzQkUzQzAwNjIx
RTkyIC8qIGZsZXhmZWNfc2VuZGVyLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xNzQ0OSw2ICsxNzU1
Niw3IEBACiAJCQkJNUNERDhBMzIxRTQzQkZCMzAwNjIxRTkyIC8qIG5hY2tfdHJhY2tlci5jYyBp
biBTb3VyY2VzICovLAogCQkJCTQxNzk1M0I0MjE2OTgyNDIwMDI4MjY2QiAvKiBuYWx1X3Jld3Jp
dGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGMjYyMzRCODgyMDAwMjhBNjE1IC8qIGRh
dGFfY2hhbm5lbC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxNzdGNTExMjM4MEU4NDgwMEMwNDQ4
NiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCRDEx
RTQzQzJCNTAwNjIxRTkyIC8qIG5lYXJlc3RfbmVpZ2hib3IuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4QTNCMUU0M0JGQjMwMDYyMUU5MiAvKiBuZXRlcS5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxMzFDMUQ1MjM0QjhBNEIwMDI4QTYxNSAvKiBzdHVuX3NlcnZlci5jYyBpbiBTb3VyY2VzICov
LApAQCAtMTc1MTgsMTIgKzE3NjI2LDE0IEBACiAJCQkJNDE0MzNEMTkxRjc5QjMzNDAwMzg3QjRE
IC8qIHBpdGNoX2xhZ190YWJsZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MTQxMjEyNzM3
MjQwMDYzNEZDRiAvKiBwaXRjaF9zZWFyY2guY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDE0
NDIxMjczNzI4MDA2MzRGQ0YgLyogcGl0Y2hfc2VhcmNoX2ludGVybmFsLmNjIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDE3N0Y0RUUyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfY29tbW9uLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDg4OEYxRTQzQkUzQzAwNjIxRTkyIC8qIHBsYXlvdXRfZGVsYXlf
b3JhY2xlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwNDUyMzRCODk4RDAwMjhBNjE1IC8q
IG1lc3NhZ2VfaGFuZGxlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzg5MjM0Qjk1N0Qw
MDI4QTYxNSAvKiBzdWJ0cmFjdG9yX291dHB1dF9hbmFseXplci5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxMzFDMDVBMjM0Qjg5OEQwMDI4QTYxNSAvKiBhc3luY190Y3Bfc29ja2V0LmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDg5NTYxRTQzQkYzQTAwNjIxRTkyIC8qIHBsaS5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4NzMzMUU0M0JBQkUwMDYyMUU5MiAvKiBwb2xlX3plcm9fZmlsdGVy
LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE3N0Y1MDAyMzgwRTgxRjAwQzA0NDg2IC8qIGgyNjVf
dnBzX3Nwc19wcHNfdHJhY2tlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkQ1MUU0M0My
QjUwMDYyMUU5MiAvKiBwb2x5X3RvX2xzZi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCRDcx
RTQzQzJCNTAwNjIxRTkyIC8qIHBvbHlfdG9fbHNwLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTMx
QzEyRTIzNEI4OUUyMDAyOEE2MTUgLyogcmFjZV9jaGVja2VyLmNjIGluIFNvdXJjZXMgKi8sCkBA
IC0xNzYzOSwxMCArMTc3NDksMTIgQEAKIAkJCQk0MTMxQzFFQTIzNEI4QTRCMDAyOEE2MTUgLyog
cGFja2V0X3RyYW5zcG9ydF9pbnRlcm5hbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDRCM0Qz
MjE2OTg5NkQwMDQzNjNBQyAvKiBSVENOYXRpdmVJNDIwQnVmZmVyLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDEzMUMzOEIyMzRCOTU3RDAwMjhBNjE1IC8qIHJlbmRlcl9yZXZlcmJfbW9kZWwuY2Mg
aW4gU291cmNlcyAqLywKKwkJCQk0MTc3RjRFRjIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2NV9wcHNf
cGFyc2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM1MzkyMzRDOEIxOTAwMjhBNjE1IC8q
IHJ0Y19ldmVudF9yb3V0ZV9jaGFuZ2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQ0QjNEMTIx
Njk4OTY3MDA0MzYzQUMgLyogUlRDTmF0aXZlTXV0YWJsZUk0MjBCdWZmZXIubW0gaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzIyQjIzNEI4QkIyMDAyOEE2MTUgLyogZmllbGRfdHJpYWxfdW5pdHMu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkYzRjIzNEI4ODIwMDAyOEE2MTUgLyogZHRsc19z
cnRwX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxNzdGNTEwMjM4MEU4NDgwMEMw
NDQ4NiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUubW0gaW4gU291cmNlcyAqLywKIAkJCQk0
MTMxQzFEMzIzNEI4QTRCMDAyOEE2MTUgLyogcHNldWRvX3RjcC5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxOUM4MkI5MUZFMjBEQ0QwMDQwQzMwRiAvKiBydGNwX2RlbXV4ZXIuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk1Q0QyODVGQTFFNkE2NDUyMDA5NEZEQzggLyogcnRjcF9uYWNrX3N0YXRzLmNj
IGluIFNvdXJjZXMgKi8sCkBAIC0xNzY3Miw2ICsxNzc4NCw3IEBACiAJCQkJNDE3OTUzQjkyMTY5
ODI0MjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzQ0NjIzNEM4MEFCMDAyOEE2MTUgLyogZnJhbWVyYXRlX2NvbnRyb2xsZXIu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNDQTIxNjk4MjRCMDAyODI2NkIgLyogUlRDVmlk
ZW9FbmNvZGVySDI2NC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQxNzdGNTEyMjM4MEU4NDgwMEMw
NDQ4NiAvKiBSVENIMjY1UHJvZmlsZUxldmVsSWQubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTNF
NjdBMzIxNjk4ODk1MDBFRjM3RUQgLyogUlRDVmlkZW9FbmNvZGVyUXBUaHJlc2hvbGRzLm0gaW4g
U291cmNlcyAqLywKIAkJCQk0MTQ0QjNGNzIxNkIwOUNCMDA0MzYzQUMgLyogUlRDVmlkZW9FbmNv
ZGVyU2V0dGluZ3MrUHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxM0U2NzY1MjE2OTg1
NDYwMEVGMzdFRCAvKiBSVENWaWRlb0VuY29kZXJWUDgubW0gaW4gU291cmNlcyAqLywKQEAgLTE3
ODEyLDYgKzE3OTI1LDcgQEAKIAkJCQk1Q0REODY3MDFFNDNCOEI1MDA2MjFFOTIgLyogc3BsX3Nx
cnQuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzEzMjM0QjhEQzIwMDI4QTYxNSAvKiBtZWRp
YV90cmFuc3BvcnRfaW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMjYzNzMyMTI2
N0I0QTAwMjc0RjU5IC8qIHNwbF9zcXJ0X2Zsb29yLmMgaW4gU291cmNlcyAqLywKKwkJCQk0MTc3
RjRGQzIzODBFODAwMDBDMDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDhCRTkxRTQzQzJCNTAwNjIxRTkyIC8qIHNwbGl0X3ZxLmMgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REODY3MTFFNDNCOEI1MDA2MjFFOTIgLyogc3BsaXR0aW5nX2ZpbHRlci5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDg0QzExRTQzQUYxMzAwNjIxRTkyIC8qIHNwbGl0dGluZ19m
aWx0ZXIuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3ODc3LDYgKzE3OTkxLDcgQEAKIAkJCQk1Q0RE
ODk4MzFFNDNCRjNBMDA2MjFFOTIgLyogdHJhbnNwb3J0X2ZlZWRiYWNrLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDE5MjQxOEUyMTI3NDlDODAwNjM0RkNGIC8qIHRyYW5zcG9ydF9mZWVkYmFja19h
ZGFwdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEwMkY2QTkyMTI3MzI2MjAwNkFFOEQ3IC8q
IHRyYW5zcG9ydF9mZWVkYmFja19wYWNrZXRfbG9zc190cmFja2VyLmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDE3N0Y1MTcyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlI
MjY1Lm0gaW4gU291cmNlcyAqLywKIAkJCQk0MUUwMkNCMDIxMjczNTJEMDBDMjdDRDYgLyogdHJl
bmRsaW5lX2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NEM1MUU0M0FGMTMw
MDYyMUU5MiAvKiB0eXBpbmdfZGV0ZWN0aW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4
REYxRTQzQkUzRDAwNjIxRTkyIC8qIHVscGZlY19nZW5lcmF0b3IuY2MgaW4gU291cmNlcyAqLywK
QEAgLTE3OTcyLDYgKzE4MDg3LDcgQEAKIAkJCQk0MTMxQzI3QTIzNEI4Q0M0MDAyOEE2MTUgLyog
d2VicnRjX21lZGlhX2VuZ2luZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMTVCMjM0Qjg5
RTIwMDI4QTYxNSAvKiBzdHJpbmdfZW5jb2RlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2
RTQxRTQzQkEyODAwNjIxRTkyIC8qIHdlYnJ0Y192YWQuYyBpbiBTb3VyY2VzICovLAorCQkJCTQx
NzdGNEY1MjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzNDRjIzNEI5ODQyMDAyOEE2MTUgLyogcnRjX3N0YXRzLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDEzMUMwNjkyMzRCODk4RDAwMjhBNjE1IC8qIGxvY2F0aW9uLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDhCRjcxRTQzQzJCNTAwNjIxRTkyIC8qIHdpbmRvdzMyX3czMi5j
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWRkMjhkMWUyYjNkMmZkOWU5ZjA5YTcyMTYyOTI2N2Nj
OTZhYjYzYy4uZmU5YmVkMGFhMTA2NGJlMjVkMjc1NTRjMWQ5ZDZlNzRkYmFkNmVmMSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE5LTExLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBXZWJSVEMgSEVWQworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MjgzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJydGMvaDI2
NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy9oMjY1Lmh0bWw6IEFkZGVk
LgorCiAyMDE5LTExLTE2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjUyNTI2LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2VicnRj
L2gyNjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMDY0ZmUzMTc5NjZhZDcxZjRkZjU1NzNk
Y2Y0MWRmYjRiYzEzYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2
NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVmlkZW8gc2hvdWxkIGJlIHJ1bm5pbmcs
IGdvIHRvIGJsYWNrIGFuZCBydW5uaW5nLgorRm9sbG93aW5nLCBzaG91bGQgYmUgYSBzbmFwc2hv
dCBvZiB0aGUgdmlkZW8sIGEgYmxhY2sgZnJhbWUgYW5kIGEgc25hcHNob3Qgb2YgdGhlIHZpZGVv
LgorICAKKworUEFTUyBWZXJpZnkgSDI2NSBhY3RpdmF0aW9uIAorUEFTUyBTZXR0aW5nIHZpZGVv
IGV4Y2hhbmdlIAorUEFTUyBFbnN1cmluZyBjb25uZWN0aW9uIHN0YXRlIGlzIGNvbm5lY3RlZCAK
K1BBU1MgVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayAKK1BBU1Mg
VHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjayAKK1BBU1MgSWYgZGlzYWJs
ZWQsIGJsYWNrIGZyYW1lcyBzaG91bGQgc3RpbGwgYmUgY29taW5nIAorUEFTUyBUcmFjayBpcyBl
bmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjY4ZDhmNjgzM2ZlMzBhMDU4ZDRiZGMxZjk2ODYyOTVlODhlYTkzY2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS5odG1sCkBAIC0wLDAgKzEsMTI2
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIG11dGluZyB2aWRlbzwvdGl0
bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXY+
VmlkZW8gc2hvdWxkIGJlIHJ1bm5pbmcsIGdvIHRvIGJsYWNrIGFuZCBydW5uaW5nLjwvZGl2Pgor
ICAgICAgICA8ZGl2PkZvbGxvd2luZywgc2hvdWxkIGJlIGEgc25hcHNob3Qgb2YgdGhlIHZpZGVv
LCBhIGJsYWNrIGZyYW1lIGFuZCBhIHNuYXBzaG90IG9mIHRoZSB2aWRlby48L2Rpdj4KKyAgICAg
ICAgPHZpZGVvIGlkPSJ2aWRlbyIgYXV0b3BsYXkgcGxheXNJbmxpbmUgd2lkdGg9IjMyMCIgaGVp
Z2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczEiIHdpZHRoPSIz
MjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMiIg
d2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8Y2FudmFzIGlkPSJj
YW52YXMzIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAgIDxzY3Jp
cHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorcHJvbWlz
ZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xlYXJQZWVyQ29ubmVjdGlvbkZhY3RvcnkoKTsKKworICAg
IGNvbnN0IGNvZGVjcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoInZpZGVvIikuY29k
ZWNzOworICAgIGFzc2VydF90cnVlKGNvZGVjcy5zb21lKChjb2RlYykgPT4geyByZXR1cm4gY29k
ZWMubWltZVR5cGUuaW5kZXhPZigiSDI2NSIpIH0pLCAiSDI2NSBpcyBsaXN0ZWQgYXMgYSBjb2Rl
YyIpOworCisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICBwYy5h
ZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGF3YWl0IHBj
LmNyZWF0ZU9mZmVyKCk7CisgICAgcGMuY2xvc2UoKTsKKyAgICBhc3NlcnRfdHJ1ZShkZXNjcmlw
dGlvbi5zZHAuaW5kZXhPZigiSDI2NSIpICE9PSAtMSwgIkgyNjUgY29kZWMgaXMgaW4gdGhlIFNE
UCIpOworfSwgIlZlcmlmeSBIMjY1IGFjdGl2YXRpb24iKQorCit2YXIgdHJhY2s7Cit2YXIgcmVt
b3RlVHJhY2s7Cit2YXIgcmVjZWl2aW5nQ29ubmVjdGlvbjsKK3Byb21pc2VfdGVzdCgodGVzdCkg
PT4geworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworCisgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzoge3dpZHRoOiAzMjAsIGhlaWdodDogMjQwLCBmYWNp
bmdNb2RlOiAiZW52aXJvbm1lbnQifX0pLnRoZW4oKGxvY2FsU3RyZWFtKSA9PiB7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICB0
cmFjayA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisKKyAgICAgICAgICAgIGNy
ZWF0ZUNvbm5lY3Rpb25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgICAgICBm
aXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAg
IH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAgICAgcmVjZWl2aW5nQ29u
bmVjdGlvbiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAgICAgICAgc2Vjb25kQ29ubmVj
dGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcmVt
b3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNrOworICAgICAgICAgICAgICAgICAgICByZXNvbHZl
KHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
IH0sIHsgb2JzZXJ2ZU9mZmVyIDogKG9mZmVyKSA9PiB7CisgICAgICAgICAgICAgICAgb2ZmZXIu
c2RwID0gc2V0Q29kZWMob2ZmZXIuc2RwLCAiSDI2NSIpOworICAgICAgICAgICAgICAgIHJldHVy
biBvZmZlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgc2V0
VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOworICAgICAgICB9
KTsKKyAgICB9KS50aGVuKChyZW1vdGVTdHJlYW0pID0+IHsKKyAgICAgICAgdmlkZW8uc3JjT2Jq
ZWN0ID0gcmVtb3RlU3RyZWFtOworICAgICAgICByZXR1cm4gdmlkZW8ucGxheSgpOworICAgIH0p
OworfSwgIlNldHRpbmcgdmlkZW8gZXhjaGFuZ2UiKTsKKworcHJvbWlzZV90ZXN0KCgpID0+IHsK
KyAgICBpZiAocmVjZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0
ZWQiKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgcmVjZWl2aW5nQ29ubmVjdGlv
bi5vbmNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgICAgIGlmIChyZWNl
aXZpbmdDb25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9PT0gImNvbm5lY3RlZCIpCisgICAgICAg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9OworICAgICAgICBzZXRUaW1lb3V0KCgpID0+
IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CisgICAgfSk7Cit9LCAiRW5zdXJpbmcg
Y29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQiKTsKKworcHJvbWlzZV90ZXN0KCh0ZXN0KSA9
PiB7CisgICAgcmV0dXJuIGNoZWNrVmlkZW9CbGFjayhmYWxzZSwgY2FudmFzMSwgdmlkZW8pOwor
fSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2siKTsKKworcHJv
bWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgdHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAgIHJl
dHVybiBjaGVja1ZpZGVvQmxhY2sodHJ1ZSwgY2FudmFzMiwgdmlkZW8pOworfSwgIlRyYWNrIGlz
IGRpc2FibGVkLCB2aWRlbyBzaG91bGQgYmUgYmxhY2siKTsKKworYXN5bmMgZnVuY3Rpb24gZ2V0
SW5ib3VuZFJUUFN0YXRzTnVtYmVyT2ZEZWNvZGVkRnJhbWVzKGNvbm5lY3Rpb24pCit7CisgICAg
dmFyIHJlcG9ydCA9IGF3YWl0IGNvbm5lY3Rpb24uZ2V0U3RhdHMoKTsKKyAgICB2YXIgZnJhbWVz
RGVjb2RlZDsKKyAgICByZXBvcnQuZm9yRWFjaCgoc3RhdEl0ZW0pID0+IHsKKyAgICAgICAgaWYg
KHN0YXRJdGVtLnR5cGUgPT09ICJpbmJvdW5kLXJ0cCIpCisgICAgICAgICAgICBmcmFtZXNEZWNv
ZGVkID0gc3RhdEl0ZW0uZnJhbWVzRGVjb2RlZDsKKyAgICB9KTsKKyAgICByZXR1cm4gZnJhbWVz
RGVjb2RlZDsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdEZyYW1lRGVjb2RlZEluY3JlYXNlZChj
b25uZWN0aW9uLCBjb3VudCwgcHJldmlvdXNGcmFtZXNOdW1iZXIpCit7CisgICAgaWYgKHByZXZp
b3VzRnJhbWVzTnVtYmVyID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgbGV0IG51bWJlciA9IGF3
YWl0IGdldEluYm91bmRSVFBTdGF0c051bWJlck9mRGVjb2RlZEZyYW1lcyhjb25uZWN0aW9uKTsK
KyAgICAgICAgYXdhaXQgd2FpdEZvcigxMDAwKTsKKyAgICAgICAgcmV0dXJuIHRlc3RGcmFtZURl
Y29kZWRJbmNyZWFzZWQoY29ubmVjdGlvbiwgMCwgbnVtYmVyKTsKKyAgICB9CisKKyAgICB2YXIg
bnVtYmVyID0gYXdhaXQgZ2V0SW5ib3VuZFJUUFN0YXRzTnVtYmVyT2ZEZWNvZGVkRnJhbWVzKGNv
bm5lY3Rpb24pOworICAgIGlmIChwcmV2aW91c0ZyYW1lc051bWJlciAmJiBudW1iZXIgPiBwcmV2
aW91c0ZyYW1lc051bWJlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNvdW50ID49IDIw
KQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoInRlc3QgaW5jcmVhc2luZyBmcmFtZSBl
bmNvZGVkIHRpbWVkIG91dCIpOworCisgICAgYXdhaXQgd2FpdEZvcigxMDAwKTsKKyAgICByZXR1
cm4gdGVzdEZyYW1lRGVjb2RlZEluY3JlYXNlZChjb25uZWN0aW9uLCArK2NvdW50LCBwcmV2aW91
c0ZyYW1lc051bWJlcik7Cit9CisKK3Byb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgIHJldHVy
biB0ZXN0RnJhbWVEZWNvZGVkSW5jcmVhc2VkKHJlY2VpdmluZ0Nvbm5lY3Rpb24pOworfSwgIklm
IGRpc2FibGVkLCBibGFjayBmcmFtZXMgc2hvdWxkIHN0aWxsIGJlIGNvbWluZyIpOworCitwcm9t
aXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICB0cmFjay5lbmFibGVkID0gdHJ1ZTsKKyAgICByZXR1
cm4gY2hlY2tWaWRlb0JsYWNrKGZhbHNlLCBjYW52YXMyLCB2aWRlbyk7Cit9LCAiVHJhY2sgaXMg
ZW5hYmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayAyIik7CisKKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383719</attachid>
            <date>2019-11-17 02:53:18 -0800</date>
            <delta_ts>2020-03-30 04:33:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204283-20191117185316.patch</filename>
            <type>text/plain</type>
            <size>543188</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAwOTk0ODdlYjMwOWQyMzM4NmY5YWZjMTIwNWQxNTdhNGE3MjdhNDVkLi43OTYw
ZmI3ZWUyODMwZmNhYWUyZDAzNjdmZjRmMzI1ZDdiM2EyMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNDkgQEAKKzIwMTktMTEtMTYgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQg
Zm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgSEVWQyBwYWNrZXRpemF0aW9uIGFuZCBIRVZDIGNvZGVjIHN1cHBvcnQgYmFz
ZWQgb24KKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL29wZW4td2VicnRjLXRvb2xraXQgd29y
ay4KKworICAgICAgICAqIFNvdXJjZS93ZWJydGMvQlVJTEQuZ246CisgICAgICAgICogU291cmNl
L3dlYnJ0Yy9hcGkvdmlkZW8vYnVpbHRpbl92aWRlb19iaXRyYXRlX2FsbG9jYXRvcl9mYWN0b3J5
LmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUu
aDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMu
Y2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVj
Lmg6CisgICAgICAgICh3ZWJydGM6OlZpZGVvQ29kZWNIMjY1OjpvcGVyYXRvciE9IGNvbnN0KToK
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5j
YzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rl
ci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNv
ZGVyX2NvbmZpZy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3Mv
dmlkZW9fZW5jb2Rlcl9jb25maWcuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2J1aWxkX292
ZXJyaWRlcy9idWlsZC5nbmk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jYWxsL3J0cF9wYXls
b2FkX3BhcmFtcy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlM
RC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29t
bW9uLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1
L2gyNjVfY29tbW9uLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYzogQWRk
ZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19w
YXJzZXIuaDogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2
NS9oMjY1X3Zwc19wYXJzZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29t
bW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2M6CisgICAgICAgICogU291cmNl
L3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oOgorICAgICAgICAqIFNvdXJjZS93
ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2gyNjVfc3BzX3BhcnNlci5jYzogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJz
ZXIuaDogQWRkZWQuCisgICAgICAgICh3ZWJydGM6OkgyNjVTcHNQYXJzZXI6OndpZHRoKToKKyAg
ICAgICAgKHdlYnJ0Yzo6SDI2NVNwc1BhcnNlcjo6aGVpZ2h0KToKKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2M6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuY2M6
IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
cnRwX2Zvcm1hdF9oMjY1Lmg6IEFkZGVkLgorICAgICAgICAod2VicnRjOjpSdHBQYWNrZXRpemVy
SDI2NTo6UGFja2V0OjpQYWNrZXQpOgorICAgICAgICAod2VicnRjOjpSdHBQYWNrZXRpemVySDI2
NTo6UGFja2V0VW5pdDo6UGFja2V0VW5pdCk6CisgICAgICAgICh3ZWJydGM6OlJ0cERlcGFja2V0
aXplckgyNjU6On5SdHBEZXBhY2tldGl6ZXJIMjY1KToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9zZW5kZXJfdmlkZW8uY2M6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmg6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2
NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRj
L21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9tdWx0aXBsZXgvbXVsdGlwbGV4X2VuY29kZXJf
YWRhcHRlci5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5n
L2VuY29kZWRfZnJhbWUuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNv
dXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2Vy
Lmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcv
aW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRj
L21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmg6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQuY2M6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNj
OgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9p
bmZvLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvQlVJTEQuZ246CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9hcGkvb3JnL3dlYnJ0Yy9IYXJkd2FyZVZpZGVvRW5j
b2RlckZhY3RvcnkuamF2YToKKyAgICAgICAgKEhhcmR3YXJlVmlkZW9FbmNvZGVyRmFjdG9yeS5n
ZXRTdXBwb3J0ZWRDb2RlY3MpOgorICAgICAgICAoSGFyZHdhcmVWaWRlb0VuY29kZXJGYWN0b3J5
LmlzSGFyZHdhcmVTdXBwb3J0ZWRJbkN1cnJlbnRTZGspOgorICAgICAgICAoSGFyZHdhcmVWaWRl
b0VuY29kZXJGYWN0b3J5LmlzSGFyZHdhcmVTdXBwb3J0ZWRJbkN1cnJlbnRTZGtIMjY1KToKKyAg
ICAgICAgKEhhcmR3YXJlVmlkZW9FbmNvZGVyRmFjdG9yeSk6CisgICAgICAgIChIYXJkd2FyZVZp
ZGVvRW5jb2RlckZhY3RvcnkuZ2V0S2V5RnJhbWVJbnRlcnZhbFNlYyk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL0hhcmR3YXJlVmlkZW9F
bmNvZGVyLmphdmE6CisgICAgICAgIChIYXJkd2FyZVZpZGVvRW5jb2Rlci5kZWxpdmVyRW5jb2Rl
ZEltYWdlKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qYXZhL29y
Zy93ZWJydGMvTWVkaWFDb2RlY1V0aWxzLmphdmE6CisgICAgICAgIChNZWRpYUNvZGVjVXRpbHMu
Li4uZ2V0Q29kZWNQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9hbmRy
b2lkL3NyYy9qYXZhL29yZy93ZWJydGMvTWVkaWFDb2RlY1ZpZGVvRGVjb2RlckZhY3RvcnkuamF2
YToKKyAgICAgICAgKE1lZGlhQ29kZWNWaWRlb0RlY29kZXJGYWN0b3J5LmdldFN1cHBvcnRlZENv
ZGVjcyk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcv
d2VicnRjL1ZpZGVvQ29kZWNUeXBlLmphdmE6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsv
YW5kcm9pZC9zcmMvam5pL2FuZHJvaWRfbWVkaWFfY29kZWNfY29tbW9uLmg6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvam5pL2FuZHJvaWRfbWVkaWFfZGVjb2Rlci5j
YzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qbmkvYW5kcm9pZF9t
ZWRpYV9lbmNvZGVyLmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3Jj
L2puaS92aWRlb19lbmNvZGVyX3dyYXBwZXIuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5K05hdGl2
ZS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9u
L1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeS5tbToKKyAgICAgICAgKC1bUlRDUGVlckNvbm5lY3Rp
b25GYWN0b3J5IGluaXRXaXRoTmF0aXZlUGVlckNvbm5lY3Rpb25GYWN0b3J5Ol0pOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRj
L1ZpZGVvQ29kZWNUeXBlLmphdmEuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oOiBBZGRlZC4K
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY1IG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXSk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRl
b0RlY29kZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0
b3J5IGNyZWF0ZURlY29kZXI6XSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5IHN1cHBvcnRlZENvZGVjc10pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5t
OgorICAgICAgICAoK1tSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSBzdXBwb3J0ZWRDb2Rl
Y3NdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkgY3JlYXRlRW5j
b2RlcjpdKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qYXZhL29yZy93
ZWJydGMvVmlkZW9Db2RlY1R5cGUuamF2YS4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tOiBBZGRl
ZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dl
YnJ0Yy9WaWRlb0NvZGVjVHlwZS5qYXZhLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NS5tOiBB
ZGRlZC4KKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUgY3JlYXRlRGVjb2Rl
cjpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUgc3VwcG9ydGVkQ29k
ZWNzXSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dlYnJ0
Yy9WaWRlb0NvZGVjVHlwZS5qYXZhLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tOiBBZGRlZC4KKyAg
ICAgICAgKFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtczo6UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1z
KToKKyAgICAgICAgKGgyNjVEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2spOgorICAgICAgICAo
LVtSVENWaWRlb0RlY29kZXJIMjY1IGluaXRdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVy
SDI2NSBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgc3RhcnREZWNv
ZGVXaXRoTnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NSBk
ZWNvZGU6bWlzc2luZ0ZyYW1lczpjb2RlY1NwZWNpZmljSW5mbzpyZW5kZXJUaW1lTXM6XSk6Cisg
ICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgc2V0Q2FsbGJhY2s6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgcmVsZWFzZURlY29kZXJdKToKKyAgICAgICAgKC1bUlRDVmlk
ZW9EZWNvZGVySDI2NSByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JU
Q1ZpZGVvRGVjb2RlckgyNjUgY29uZmlndXJlRGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NSBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dKToK
KyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NSBzZXRWaWRlb0Zvcm1hdDpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NSBpbXBsZW1lbnRhdGlvbk5hbWVdKToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9F
bmNvZGVyRmFjdG9yeUgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dlYnJ0Yy9WaWRlb0Nv
ZGVjVHlwZS5qYXZhLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5tOiBBZGRlZC4KKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUgc3VwcG9ydGVkQ29kZWNzXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY1IGNyZWF0ZUVuY29kZXI6XSk6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRW5jb2RlckgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dlYnJ0Yy9WaWRlb0NvZGVj
VHlwZS5qYXZhLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92
aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSBpbml0V2l0aENvZGVjSW5mbzpdKToKKyAgICAgICAgKC1bUlRDVmlk
ZW9FbmNvZGVySDI2NSBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUg
c3RhcnRFbmNvZGVXaXRoU2V0dGluZ3M6bnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSBlbmNvZGU6Y29kZWNTcGVjaWZpY0luZm86ZnJhbWVUeXBlczpdKToK
KyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRDYWxsYmFjazpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRCaXRyYXRlOmZyYW1lcmF0ZTpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9FbmNvZGVySDI2NSByZWxlYXNlRW5jb2Rlcl0pOgorICAgICAgICAoLVtSVENW
aWRlb0VuY29kZXJIMjY1IHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgtW1JU
Q1ZpZGVvRW5jb2RlckgyNjUgY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAg
ICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAg
ICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAgICAg
ICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IHNldEJpdHJhdGVCcHM6XSk6CisgICAgICAgICgtW1JU
Q1ZpZGVvRW5jb2RlckgyNjUgc2V0RW5jb2RlckJpdHJhdGVCcHM6XSk6CisgICAgICAgICgtW1JU
Q1ZpZGVvRW5jb2RlckgyNjUgZnJhbWVXYXNFbmNvZGVkOmZsYWdzOnNhbXBsZUJ1ZmZlcjp3aWR0
aDpoZWlnaHQ6cmVuZGVyVGltZU1zOnRpbWVzdGFtcDpyb3RhdGlvbjpdKToKKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBzY2FsaW5nU2V0dGluZ3NdKToKKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5jYzoK
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
bmFsdV9yZXdyaXRlci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZl
L3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbToKKyAgICAgICAgKHdlYnJ0Yzo6T2Jq
Q1ZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5
Lm1tOgorICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlk
ZW9FbmNvZGVyKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Rlc3Qvc2NlbmFyaW8vdmlkZW9f
c3RyZWFtLmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvdGVzdC92aWRlb19jb2RlY19zZXR0
aW5ncy5oOgorICAgICAgICAod2VicnRjOjp0ZXN0OjpDb2RlY1NldHRpbmdzKToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2M6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmg6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9zZW5kX3N0YXRpc3RpY3NfcHJveHkuY2M6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19yZWNlaXZlX3N0cmVhbS5jYzoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjOgorICAg
ICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTExLTE1
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCBHVEsvV1BFIERlYnVnIGJ1aWxkIGZpeCBhZnRlciByMjUyNDcyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy54
Y2NvbmZpZyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3
ZWJydGMueGNjb25maWcKaW5kZXggMzc3ZTlmMjA2ODdmMzc4ZDkzNmY4YzcxODBhZTU3ZjkyYzg0
ZGI4MS4uZGNhMDgzYjVmMTc4YzU0YjY5OThjYzkyMjVkYWZiN2UwOThjM2FlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy54
Y2NvbmZpZworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLnhjY29uZmlnCkBAIC0yNiw3ICsyNiw3IEBAIElOU1RBTExIRFJTX1NDUklQVF9Q
SEFTRSA9IFlFUzsKIFdBUk5JTkdfQ0ZMQUdTID0gLVduby1kZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyAkKGluaGVyaXRlZCk7CiAKIC8vIEZJWE1FOiBTZXQgV0VCUlRDX1VTRV9CVUlMVElOX0lTQUNf
RklYIGFuZCBXRUJSVENfVVNFX0JVSUxUSU5fSVNBQ19GTE9BVCBmb3IgaU9TIGFuZCBNYWMKLUdD
Q19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlMgPSBHVEVTVF9SRUxBVElWRV9QQVRIIFdFQlJUQ19P
UFVTX1NVUFBPUlRfMTIwTVNfUFRJTUU9MCBXRUJSVENfUE9TSVggV0VCUlRDX01BQyBTU0xfVVNF
X09QRU5TU0wgRkVBVFVSRV9FTkFCTEVfU1NMIEhBVkVfU1JUUCBIQVZFX05FVElORVRfSU5fSCBI
QVZFX09QRU5TU0xfU1NMX0ggU0NUUF9QUk9DRVNTX0xFVkVMX0xPQ0tTIFNDVFBfU0lNUExFX0FM
TE9DQVRPUiBTQ1RQX1VTRV9PUEVOU1NMX1NIQTEgX19Vc2Vyc3BhY2VfXyBIQVZFX1NBX0xFTiBI
QVZFX1NDT05OX0xFTiBfX0FQUExFX1VTRV9SRkNfMjI5MiBfX1VzZXJzcGFjZV9vc19EYXJ3aW4g
Tk9OX1dJTkRPV1NfREVGSU5FIEhBVkVfV0VCUlRDX1ZJREVPIEhBVkVfV0VCUlRDX1ZPSUNFIFdF
QlJUQ19JTlRFTExJR0lCSUxJVFlfRU5IQU5DRVI9MCBXRUJSVENfQVBNX0RFQlVHX0RVTVA9MCBX
RUJSVENfTlNfRkxPQVQgV0VCUlRDX1VTRV9CVUlMVElOX0lMQkMgV0VCUlRDX0NPREVDX0lMQkMg
V0VCUlRDX1VTRV9CVUlMVElOX09QVVMgV0VCUlRDX0NPREVDX09QVVMgV0VCUlRDX0NPREVDX0lT
QUMgV0VCUlRDX0NPREVDX1JFRCBIQVZFX1NURElOVF9IIEhBVkVfU1RETElCX0ggSEFWRV9VSU5U
NjRfVCBPUEVOU1NMIEhBVkVfQ09ORklHX0ggV0VCUlRDX1dFQktJVF9CVUlMRCBIQVZFX1BUSFJF
QURfQ09ORF9USU1FRFdBSVRfUkVMQVRJVkUgIEhBVkVfU0NUUCBXRUJSVENfQ09ERUNfRzcxMSBX
RUJSVENfQ09ERUNfRzcyMiBXRUJSVENfT1BVU19WQVJJQUJMRV9DT01QTEVYSVRZPTAgV0VCUlRD
X1VTRV9CVUlMVElOX0lTQUNfRklYPTEgV0VCUlRDX1VTRV9CVUlMVElOX0lTQUNfRkxPQVQ9MCBV
U0VfQlVJTFRJTl9TV19DT0RFQ1MgV0VCUlRDX1dFQktJVF9CVUlMRCAkKGluaGVyaXRlZCk7CitH
Q0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gR1RFU1RfUkVMQVRJVkVfUEFUSCBXRUJSVENf
T1BVU19TVVBQT1JUXzEyME1TX1BUSU1FPTAgV0VCUlRDX1BPU0lYIFdFQlJUQ19NQUMgU1NMX1VT
RV9PUEVOU1NMIEZFQVRVUkVfRU5BQkxFX1NTTCBIQVZFX1NSVFAgSEFWRV9ORVRJTkVUX0lOX0gg
SEFWRV9PUEVOU1NMX1NTTF9IIFNDVFBfUFJPQ0VTU19MRVZFTF9MT0NLUyBTQ1RQX1NJTVBMRV9B
TExPQ0FUT1IgU0NUUF9VU0VfT1BFTlNTTF9TSEExIF9fVXNlcnNwYWNlX18gSEFWRV9TQV9MRU4g
SEFWRV9TQ09OTl9MRU4gX19BUFBMRV9VU0VfUkZDXzIyOTIgX19Vc2Vyc3BhY2Vfb3NfRGFyd2lu
IE5PTl9XSU5ET1dTX0RFRklORSBIQVZFX1dFQlJUQ19WSURFTyBIQVZFX1dFQlJUQ19WT0lDRSBX
RUJSVENfSU5URUxMSUdJQklMSVRZX0VOSEFOQ0VSPTAgV0VCUlRDX0FQTV9ERUJVR19EVU1QPTAg
V0VCUlRDX05TX0ZMT0FUIFdFQlJUQ19VU0VfQlVJTFRJTl9JTEJDIFdFQlJUQ19DT0RFQ19JTEJD
IFdFQlJUQ19VU0VfQlVJTFRJTl9PUFVTIFdFQlJUQ19DT0RFQ19PUFVTIFdFQlJUQ19DT0RFQ19J
U0FDIFdFQlJUQ19DT0RFQ19SRUQgSEFWRV9TVERJTlRfSCBIQVZFX1NURExJQl9IIEhBVkVfVUlO
VDY0X1QgT1BFTlNTTCBIQVZFX0NPTkZJR19IIFdFQlJUQ19XRUJLSVRfQlVJTEQgSEFWRV9QVEhS
RUFEX0NPTkRfVElNRURXQUlUX1JFTEFUSVZFICBIQVZFX1NDVFAgV0VCUlRDX0NPREVDX0c3MTEg
V0VCUlRDX0NPREVDX0c3MjIgV0VCUlRDX09QVVNfVkFSSUFCTEVfQ09NUExFWElUWT0wIFdFQlJU
Q19VU0VfQlVJTFRJTl9JU0FDX0ZJWD0xIFdFQlJUQ19VU0VfQlVJTFRJTl9JU0FDX0ZMT0FUPTAg
VVNFX0JVSUxUSU5fU1dfQ09ERUNTIFdFQlJUQ19XRUJLSVRfQlVJTEQgUlRDX0VOQUJMRV9IMjY1
ICQoaW5oZXJpdGVkKTsKIAogR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OU1tzZGs9bWFjb3N4
Kl0gPSAkKGluaGVyaXRlZCkgV0VCUlRDX1VTRV9WVEJfSEFSRFdBUkVfRU5DT0RFUjsKIEdDQ19Q
UkVQUk9DRVNTT1JfREVGSU5JVElPTlNbc2RrPWlwaG9uZW9zKl0gPSAkKGluaGVyaXRlZCkgV0VC
UlRDX0lPUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1
cmF0aW9ucy9saWJ3ZWJydGNwY3J0Yy54Y2NvbmZpZyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGNwY3J0Yy54Y2NvbmZpZwppbmRleCA5MGZlZTVj
N2M0ZWNmMzA4NDZjZGU3N2E3NzliOTJjNTA0MTg4OWNhLi4xN2IyOGI4YThlZjg4ODUwNGMwZjJj
YjNmYTNlMzg1OTQxYjVmNTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjcGNydGMueGNjb25maWcKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Y3BjcnRjLnhjY29uZmln
CkBAIC0xMiw3ICsxMiw3IEBAIElOU1RBTExfUEFUSCA9IC91c3IvbG9jYWwvbGliOwogUFVCTElD
X0hFQURFUlNfRk9MREVSX1BBVEggPSAvdXNyL2xvY2FsL2luY2x1ZGUvbGlid2VicnRjOwogVVNF
X0hFQURFUk1BUCA9IE5POwogCi1HQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gV0VCUlRD
X1BPU0lYIFdFQlJUQ19NQUMgU1NMX1VTRV9PUEVOU1NMIEZFQVRVUkVfRU5BQkxFX1NTTCBIQVZF
X1NSVFAgSEFWRV9PUEVOU1NMX1NTTF9IIFNDVFBfUFJPQ0VTU19MRVZFTF9MT0NLUyBTQ1RQX1NJ
TVBMRV9BTExPQ0FUT1IgU0NUUF9VU0VfT1BFTlNTTF9TSEExIF9fVXNlcnNwYWNlX18gSEFWRV9T
QV9MRU4gSEFWRV9TQ09OTl9MRU4gX19BUFBMRV9VU0VfUkZDXzIyOTIgX19Vc2Vyc3BhY2Vfb3Nf
RGFyd2luIE5PTl9XSU5ET1dTX0RFRklORSBIQVZFX1dFQlJUQ19WSURFTyBIQVZFX1dFQlJUQ19W
T0lDRSBXRUJSVENfSU5URUxMSUdJQklMSVRZX0VOSEFOQ0VSPTAgV0VCUlRDX0FQTV9ERUJVR19E
VU1QPTAgV0VCUlRDX05TX0ZMT0FUIFdFQlJUQ19VU0VfQlVJTFRJTl9JTEJDIFdFQlJUQ19DT0RF
Q19JTEJDIFdFQlJUQ19VU0VfQlVJTFRJTl9PUFVTIFdFQlJUQ19DT0RFQ19PUFVTIFdFQlJUQ19D
T0RFQ19JU0FDIFdFQlJUQ19DT0RFQ19SRUQgSEFWRV9TVERJTlRfSCBIQVZFX1NURExJQl9IIEhB
VkVfVUlOVDY0X1QgT1BFTlNTTCBIQVZFX0NPTkZJR19IIFdFQlJUQ19XRUJLSVRfQlVJTEQgSEFW
RV9QVEhSRUFEX0NPTkRfVElNRURXQUlUX1JFTEFUSVZFIEhBVkVfTkVUSU5FVF9JTl9IIEhBVkVf
U0NUUCAkKGluaGVyaXRlZCk7CitHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gV0VCUlRD
X1BPU0lYIFdFQlJUQ19NQUMgU1NMX1VTRV9PUEVOU1NMIEZFQVRVUkVfRU5BQkxFX1NTTCBIQVZF
X1NSVFAgSEFWRV9PUEVOU1NMX1NTTF9IIFNDVFBfUFJPQ0VTU19MRVZFTF9MT0NLUyBTQ1RQX1NJ
TVBMRV9BTExPQ0FUT1IgU0NUUF9VU0VfT1BFTlNTTF9TSEExIF9fVXNlcnNwYWNlX18gSEFWRV9T
QV9MRU4gSEFWRV9TQ09OTl9MRU4gX19BUFBMRV9VU0VfUkZDXzIyOTIgX19Vc2Vyc3BhY2Vfb3Nf
RGFyd2luIE5PTl9XSU5ET1dTX0RFRklORSBIQVZFX1dFQlJUQ19WSURFTyBIQVZFX1dFQlJUQ19W
T0lDRSBXRUJSVENfSU5URUxMSUdJQklMSVRZX0VOSEFOQ0VSPTAgV0VCUlRDX0FQTV9ERUJVR19E
VU1QPTAgV0VCUlRDX05TX0ZMT0FUIFdFQlJUQ19VU0VfQlVJTFRJTl9JTEJDIFdFQlJUQ19DT0RF
Q19JTEJDIFdFQlJUQ19VU0VfQlVJTFRJTl9PUFVTIFdFQlJUQ19DT0RFQ19PUFVTIFdFQlJUQ19D
T0RFQ19JU0FDIFdFQlJUQ19DT0RFQ19SRUQgSEFWRV9TVERJTlRfSCBIQVZFX1NURExJQl9IIEhB
VkVfVUlOVDY0X1QgT1BFTlNTTCBIQVZFX0NPTkZJR19IIFdFQlJUQ19XRUJLSVRfQlVJTEQgSEFW
RV9QVEhSRUFEX0NPTkRfVElNRURXQUlUX1JFTEFUSVZFIEhBVkVfTkVUSU5FVF9JTl9IIEhBVkVf
U0NUUCBSVENfRU5BQkxFX0gyNjUgJChpbmhlcml0ZWQpOwogCiBHQ0NfUFJFUFJPQ0VTU09SX0RF
RklOSVRJT05TW3Nkaz1tYWNvc3gqXSA9ICQoaW5oZXJpdGVkKTsKIEdDQ19QUkVQUk9DRVNTT1Jf
REVGSU5JVElPTlNbc2RrPWlwaG9uZW9zKl0gPSAkKGluaGVyaXRlZCkgV0VCUlRDX0lPUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL0JVSUxE
LmduIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvQlVJTEQuZ24K
aW5kZXggOTIwN2ExZDY5MDQ2MDM3NTEzYWFjZTAwNzA3YWMyNmI2MGJmZmJhYS4uNDExMGQ4MDc4
NjI5NTk5YzkxZWU5MzBkYzc3NmNiOTkwODdlOTgyNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvQlVJTEQuZ24KKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvQlVJTEQuZ24KQEAgLTE5Miw2ICsxOTIsMTAg
QEAgY29uZmlnKCJjb21tb25faW5oZXJpdGVkX2NvbmZpZyIpIHsKICAgaWYgKGlzX3Vic2FuKSB7
CiAgICAgY2ZsYWdzICs9IFsgIi1mc2FuaXRpemU9ZmxvYXQtY2FzdC1vdmVyZmxvdyIgXQogICB9
CisKKyAgaWYgKCFydGNfdXNlX2gyNjUpIHsKKyAgICBkZWZpbmVzICs9IFsgIkRJU0FCTEVfSDI2
NSIgXQorICB9CiB9CiAKICMgVE9ETyhidWdzLndlYnJ0Yy5vcmcvOTY5Myk6IFJlbW92ZSB0aGUg
cG9zc2liaWxpdHkgdG8gc3VwcHJlc3MgdGhpcyB3YXJuaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW8vYnVpbHRpbl92aWRl
b19iaXRyYXRlX2FsbG9jYXRvcl9mYWN0b3J5LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL2J1aWx0aW5fdmlkZW9fYml0cmF0ZV9hbGxvY2F0
b3JfZmFjdG9yeS5jYwppbmRleCA4OTkxMzY3MzM5NjlkNGU1OTY0Yzc4ZTQyMDU2YTNlZDEwNzQx
ZmQ1Li40ZjNmNjY4MzI3OGVjODlhYTIyMmQxZjM0ZDc4YWYxOTUzNjIxZjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW8vYnVp
bHRpbl92aWRlb19iaXRyYXRlX2FsbG9jYXRvcl9mYWN0b3J5LmNjCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby9idWlsdGluX3ZpZGVvX2Jp
dHJhdGVfYWxsb2NhdG9yX2ZhY3RvcnkuY2MKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgQnVpbHRp
blZpZGVvQml0cmF0ZUFsbG9jYXRvckZhY3RvcnkKICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDk6
CiAgICAgICAgIHJhdGVfYWxsb2NhdG9yLnJlc2V0KG5ldyBTdmNSYXRlQWxsb2NhdG9yKGNvZGVj
KSk7CiAgICAgICAgIGJyZWFrOworICAgICAgLy8gVE9ETzogYWRkIGFuIGFsbG9jYXRvciBoZXJl
IGZvciBILjI2NQogICAgICAgZGVmYXVsdDoKICAgICAgICAgcmF0ZV9hbGxvY2F0b3IucmVzZXQo
bmV3IERlZmF1bHRWaWRlb0JpdHJhdGVBbGxvY2F0b3IoY29kZWMpKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW8v
dmlkZW9fY29kZWNfdHlwZS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaAppbmRleCAyZTQwNmMwNzU1NGU0NWU5
Njg5M2E4ODQ4MjllNjI1ODE2Y2RjYWE2Li5iN2ExNWNlZDhkYmI4ODNhZThhOWQ2YTVmOGY2NjEw
ODIyMGJiYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9hcGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmgK
QEAgLTIxLDYgKzIxLDkgQEAgZW51bSBWaWRlb0NvZGVjVHlwZSB7CiAgIGtWaWRlb0NvZGVjVlA4
LAogICBrVmlkZW9Db2RlY1ZQOSwKICAga1ZpZGVvQ29kZWNIMjY0LAorI2lmZGVmIFJUQ19FTkFC
TEVfSDI2NQorICBrVmlkZW9Db2RlY0gyNjUsCisjZW5kaWYKICAga1ZpZGVvQ29kZWNNdWx0aXBs
ZXgsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2RlYy5j
YwppbmRleCBiODQxNTc1M2NmMTI5OWQxODY3ODllOWEyZDJjMDg0ODQ1ZjRiNjQyLi5lMTY0ZTBl
NWY1NGZmYTU0ZTE0NjgwOTM1MGRlZjQzZjRlMWY2ZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2Nv
ZGVjLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Fw
aS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2MKQEAgLTQ2LDYgKzQ2LDE3IEBAIGJvb2wgVmlk
ZW9Db2RlY0gyNjQ6Om9wZXJhdG9yPT0oY29uc3QgVmlkZW9Db2RlY0gyNjQmIG90aGVyKSBjb25z
dCB7CiAgICAgICAgICAgbnVtYmVyT2ZUZW1wb3JhbExheWVycyA9PSBvdGhlci5udW1iZXJPZlRl
bXBvcmFsTGF5ZXJzKTsKIH0KIAorI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorYm9vbCBWaWRlb0Nv
ZGVjSDI2NTo6b3BlcmF0b3I9PShjb25zdCBWaWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsK
KyAgcmV0dXJuIChmcmFtZURyb3BwaW5nT24gPT0gb3RoZXIuZnJhbWVEcm9wcGluZ09uICYmCisg
ICAgICAgICAga2V5RnJhbWVJbnRlcnZhbCA9PSBvdGhlci5rZXlGcmFtZUludGVydmFsICYmCisg
ICAgICAgICAgdnBzTGVuID09IG90aGVyLnZwc0xlbiAmJiBzcHNMZW4gPT0gb3RoZXIuc3BzTGVu
ICYmCisgICAgICAgICAgcHBzTGVuID09IG90aGVyLnBwc0xlbiAmJgorICAgICAgICAgIChzcHNM
ZW4gPT0gMCB8fCBtZW1jbXAoc3BzRGF0YSwgb3RoZXIuc3BzRGF0YSwgc3BzTGVuKSA9PSAwKSAm
JgorICAgICAgICAgIChwcHNMZW4gPT0gMCB8fCBtZW1jbXAocHBzRGF0YSwgb3RoZXIucHBzRGF0
YSwgcHBzTGVuKSA9PSAwKSk7Cit9CisjZW5kaWYKKwogYm9vbCBTcGF0aWFsTGF5ZXI6Om9wZXJh
dG9yPT0oY29uc3QgU3BhdGlhbExheWVyJiBvdGhlcikgY29uc3QgewogICByZXR1cm4gKHdpZHRo
ID09IG90aGVyLndpZHRoICYmIGhlaWdodCA9PSBvdGhlci5oZWlnaHQgJiYKICAgICAgICAgICBu
dW1iZXJPZlRlbXBvcmFsTGF5ZXJzID09IG90aGVyLm51bWJlck9mVGVtcG9yYWxMYXllcnMgJiYK
QEAgLTEwNCw5ICsxMTUsMjQgQEAgY29uc3QgVmlkZW9Db2RlY0gyNjQmIFZpZGVvQ29kZWM6Okgy
NjQoKSBjb25zdCB7CiAgIHJldHVybiBjb2RlY19zcGVjaWZpY18uSDI2NDsKIH0KIAorI2lmZGVm
IFJUQ19FTkFCTEVfSDI2NQorVmlkZW9Db2RlY0gyNjUqIFZpZGVvQ29kZWM6OkgyNjUoKSB7Cisg
IFJUQ19EQ0hFQ0tfRVEoY29kZWNUeXBlLCBrVmlkZW9Db2RlY0gyNjUpOworICByZXR1cm4gJmNv
ZGVjX3NwZWNpZmljXy5IMjY1OworfQorCitjb25zdCBWaWRlb0NvZGVjSDI2NSYgVmlkZW9Db2Rl
Yzo6SDI2NSgpIGNvbnN0IHsKKyAgUlRDX0RDSEVDS19FUShjb2RlY1R5cGUsIGtWaWRlb0NvZGVj
SDI2NSk7CisgIHJldHVybiBjb2RlY19zcGVjaWZpY18uSDI2NTsKK30KKyNlbmRpZgorCiBzdGF0
aWMgY29uc3QgY2hhcioga1BheWxvYWROYW1lVnA4ID0gIlZQOCI7CiBzdGF0aWMgY29uc3QgY2hh
cioga1BheWxvYWROYW1lVnA5ID0gIlZQOSI7CiBzdGF0aWMgY29uc3QgY2hhcioga1BheWxvYWRO
YW1lSDI2NCA9ICJIMjY0IjsKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKK3N0YXRpYyBjb25zdCBj
aGFyKiBrUGF5bG9hZE5hbWVIMjY1ID0gIkgyNjUiOworI2VuZGlmCiBzdGF0aWMgY29uc3QgY2hh
cioga1BheWxvYWROYW1lR2VuZXJpYyA9ICJHZW5lcmljIjsKIHN0YXRpYyBjb25zdCBjaGFyKiBr
UGF5bG9hZE5hbWVNdWx0aXBsZXggPSAiTXVsdGlwbGV4IjsKIApAQCAtMTE4LDYgKzE0NCwxMCBA
QCBjb25zdCBjaGFyKiBDb2RlY1R5cGVUb1BheWxvYWRTdHJpbmcoVmlkZW9Db2RlY1R5cGUgdHlw
ZSkgewogICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZVZwOTsKICAgICBjYXNlIGtWaWRlb0NvZGVj
SDI2NDoKICAgICAgIHJldHVybiBrUGF5bG9hZE5hbWVIMjY0OworI2lmZGVmIFJUQ19FTkFCTEVf
SDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAgICAgcmV0dXJuIGtQYXlsb2FkTmFt
ZUgyNjU7CisjZW5kaWYKICAgICAvLyBPdGhlciBjb2RlY3MgZGVmYXVsdCB0byBnZW5lcmljLgog
ICAgIGRlZmF1bHQ6CiAgICAgICByZXR1cm4ga1BheWxvYWROYW1lR2VuZXJpYzsKQEAgLTEzMyw2
ICsxNjMsMTAgQEAgVmlkZW9Db2RlY1R5cGUgUGF5bG9hZFN0cmluZ1RvQ29kZWNUeXBlKGNvbnN0
IHN0ZDo6c3RyaW5nJiBuYW1lKSB7CiAgICAgcmV0dXJuIGtWaWRlb0NvZGVjSDI2NDsKICAgaWYg
KGFic2w6OkVxdWFsc0lnbm9yZUNhc2UobmFtZSwga1BheWxvYWROYW1lTXVsdGlwbGV4KSkKICAg
ICByZXR1cm4ga1ZpZGVvQ29kZWNNdWx0aXBsZXg7CisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1Cisg
IGlmIChhYnNsOjpFcXVhbHNJZ25vcmVDYXNlKG5hbWUsIGtQYXlsb2FkTmFtZUgyNjUpKQorICAg
IHJldHVybiBrVmlkZW9Db2RlY0gyNjU7CisjZW5kaWYKICAgcmV0dXJuIGtWaWRlb0NvZGVjR2Vu
ZXJpYzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2RlYy5oIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2RlYy5o
CmluZGV4IGEyNDhkMTkzODJmMWI5NzIzZTNlNTRmZDg3NWRhODRjYWU1ZTgxZDIuLmIyOGFhNWU4
ZDRhZWE0MzI2YTE0YzFjZTQ3ZGY1NjA5ZjM5OGFjNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29k
ZWMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkv
dmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmgKQEAgLTgzLDYgKzgzLDIzIEBAIHN0cnVjdCBWaWRl
b0NvZGVjSDI2NCB7CiAgIHVpbnQ4X3QgbnVtYmVyT2ZUZW1wb3JhbExheWVyczsKIH07CiAKKyNp
ZmRlZiBSVENfRU5BQkxFX0gyNjUKK3N0cnVjdCBWaWRlb0NvZGVjSDI2NSB7CisgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBWaWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0OworICBib29sIG9wZXJh
dG9yIT0oY29uc3QgVmlkZW9Db2RlY0gyNjUmIG90aGVyKSBjb25zdCB7CisgICAgcmV0dXJuICEo
KnRoaXMgPT0gb3RoZXIpOworICB9CisgIGJvb2wgZnJhbWVEcm9wcGluZ09uOworICBpbnQga2V5
RnJhbWVJbnRlcnZhbDsKKyAgY29uc3QgdWludDhfdCogdnBzRGF0YTsKKyAgc2l6ZV90IHZwc0xl
bjsKKyAgY29uc3QgdWludDhfdCogc3BzRGF0YTsKKyAgc2l6ZV90IHNwc0xlbjsKKyAgY29uc3Qg
dWludDhfdCogcHBzRGF0YTsKKyAgc2l6ZV90IHBwc0xlbjsKK307CisjZW5kaWYKKwogLy8gVHJh
bnNsYXRlcyBmcm9tIG5hbWUgb2YgY29kZWMgdG8gY29kZWMgdHlwZSBhbmQgdmljZSB2ZXJzYS4K
IFJUQ19FWFBPUlQgY29uc3QgY2hhciogQ29kZWNUeXBlVG9QYXlsb2FkU3RyaW5nKFZpZGVvQ29k
ZWNUeXBlIHR5cGUpOwogUlRDX0VYUE9SVCBWaWRlb0NvZGVjVHlwZSBQYXlsb2FkU3RyaW5nVG9D
b2RlY1R5cGUoY29uc3Qgc3RkOjpzdHJpbmcmIG5hbWUpOwpAQCAtOTEsNiArMTA4LDkgQEAgdW5p
b24gVmlkZW9Db2RlY1VuaW9uIHsKICAgVmlkZW9Db2RlY1ZQOCBWUDg7CiAgIFZpZGVvQ29kZWNW
UDkgVlA5OwogICBWaWRlb0NvZGVjSDI2NCBIMjY0OworI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQor
ICBWaWRlb0NvZGVjSDI2NSBIMjY1OworI2VuZGlmCiB9OwogCiBlbnVtIGNsYXNzIFZpZGVvQ29k
ZWNNb2RlIHsga1JlYWx0aW1lVmlkZW8sIGtTY3JlZW5zaGFyaW5nIH07CkBAIC0xNTIsNiArMTcy
LDEwIEBAIGNsYXNzIFJUQ19FWFBPUlQgVmlkZW9Db2RlYyB7CiAgIGNvbnN0IFZpZGVvQ29kZWNW
UDkmIFZQOSgpIGNvbnN0OwogICBWaWRlb0NvZGVjSDI2NCogSDI2NCgpOwogICBjb25zdCBWaWRl
b0NvZGVjSDI2NCYgSDI2NCgpIGNvbnN0OworI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorICBWaWRl
b0NvZGVjSDI2NSogSDI2NSgpOworICBjb25zdCBWaWRlb0NvZGVjSDI2NSYgSDI2NSgpIGNvbnN0
OworI2VuZGlmCiAKICBwcml2YXRlOgogICAvLyBUT0RPKGh0YSk6IENvbnNpZGVyIHJlcGxhY2lu
ZyB0aGUgdW5pb24gd2l0aCBhIHBvaW50ZXIgdHlwZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5j
b2Rlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92
aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYwppbmRleCBkM2YxNmEwMDUzMDMyY2IzZThlOTMw
NTFhYjczOGRiMWYxNmM4OWEwLi5mODkwMWQ3YzJjNjczNjkwZTRmZGQzNGVhMTk0YTYzMmY4NTM0
ZDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVy
LmNjCkBAIC01OCw2ICs1OCwyMyBAQCBWaWRlb0NvZGVjSDI2NCBWaWRlb0VuY29kZXI6OkdldERl
ZmF1bHRIMjY0U2V0dGluZ3MoKSB7CiAgIHJldHVybiBoMjY0X3NldHRpbmdzOwogfQogCisjaWZk
ZWYgUlRDX0VOQUJMRV9IMjY1CitWaWRlb0NvZGVjSDI2NSBWaWRlb0VuY29kZXI6OkdldERlZmF1
bHRIMjY1U2V0dGluZ3MoKSB7CisgIFZpZGVvQ29kZWNIMjY1IGgyNjVfc2V0dGluZ3M7CisgIG1l
bXNldCgmaDI2NV9zZXR0aW5ncywgMCwgc2l6ZW9mKGgyNjVfc2V0dGluZ3MpKTsKKworICAvLyBo
MjY1X3NldHRpbmdzLnByb2ZpbGUgPSBrUHJvZmlsZUJhc2U7CisgIGgyNjVfc2V0dGluZ3MuZnJh
bWVEcm9wcGluZ09uID0gdHJ1ZTsKKyAgaDI2NV9zZXR0aW5ncy5rZXlGcmFtZUludGVydmFsID0g
MzAwMDsKKyAgaDI2NV9zZXR0aW5ncy5zcHNEYXRhID0gbnVsbHB0cjsKKyAgaDI2NV9zZXR0aW5n
cy5zcHNMZW4gPSAwOworICBoMjY1X3NldHRpbmdzLnBwc0RhdGEgPSBudWxscHRyOworICBoMjY1
X3NldHRpbmdzLnBwc0xlbiA9IDA7CisKKyAgcmV0dXJuIGgyNjVfc2V0dGluZ3M7Cit9CisjZW5k
aWYKKwogVmlkZW9FbmNvZGVyOjpTY2FsaW5nU2V0dGluZ3M6OlNjYWxpbmdTZXR0aW5ncygpID0g
ZGVmYXVsdDsKIAogVmlkZW9FbmNvZGVyOjpTY2FsaW5nU2V0dGluZ3M6OlNjYWxpbmdTZXR0aW5n
cyhLT2ZmKSA6IFNjYWxpbmdTZXR0aW5ncygpIHt9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29k
ZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRl
b19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oCmluZGV4IDBlZTU1MjFiOTVjYTIxMmIyOTQ3Y2VjNTJj
YzAxZjVmZWMwNmYxYTUuLjFlMjFkZTBiMzdmZDEzZmU1NTRmMjRkYjEzYjYyNzVmYmQ5MGQ3ZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Fw
aS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oCkBA
IC0yODYsNiArMjg2LDkgQEAgY2xhc3MgUlRDX0VYUE9SVCBWaWRlb0VuY29kZXIgewogICBzdGF0
aWMgVmlkZW9Db2RlY1ZQOCBHZXREZWZhdWx0VnA4U2V0dGluZ3MoKTsKICAgc3RhdGljIFZpZGVv
Q29kZWNWUDkgR2V0RGVmYXVsdFZwOVNldHRpbmdzKCk7CiAgIHN0YXRpYyBWaWRlb0NvZGVjSDI2
NCBHZXREZWZhdWx0SDI2NFNldHRpbmdzKCk7CisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisgIHN0
YXRpYyBWaWRlb0NvZGVjSDI2NSBHZXREZWZhdWx0SDI2NVNldHRpbmdzKCk7CisjZW5kaWYKIAog
ICB2aXJ0dWFsIH5WaWRlb0VuY29kZXIoKSB7fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29k
ZXJfY29uZmlnLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
YXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5jYwppbmRleCAyYjFhZGMwMjFi
OGNjZGQxMmE0MzVkN2Q4NGYzNzczMGIyZmE0ZDg2Li4wM2FlNWU2MGQ3ZDg0OTE2OTFlNjE5ZTJj
ZGNmYzUwYTg5ZTBmMTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19j
b2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcuY2MKQEAgLTkyLDYgKzkyLDEwIEBAIHZvaWQgVmlk
ZW9FbmNvZGVyQ29uZmlnOjpFbmNvZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbEVuY29kZXJTcGVj
aWZpY1NldHRpbmdzKAogICAgIEZpbGxWaWRlb0NvZGVjVnA4KGNvZGVjLT5WUDgoKSk7CiAgIH0g
ZWxzZSBpZiAoY29kZWMtPmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY1ZQOSkgewogICAgIEZpbGxW
aWRlb0NvZGVjVnA5KGNvZGVjLT5WUDkoKSk7CisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisgIH0g
ZWxzZSBpZiAoY29kZWMtPmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICBGaWxs
VmlkZW9Db2RlY0gyNjUoY29kZWMtPkgyNjUoKSk7CisjZW5kaWYKICAgfSBlbHNlIHsKICAgICBS
VENfTk9UUkVBQ0hFRCgpIDw8ICJFbmNvZGVyIHNwZWNpZmljcyBzZXQvdXNlZCBmb3IgdW5rbm93
biBjb2RlYyB0eXBlLiI7CiAgIH0KQEAgLTEwMiw2ICsxMDYsMTMgQEAgdm9pZCBWaWRlb0VuY29k
ZXJDb25maWc6OkVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjQoCiAg
IFJUQ19OT1RSRUFDSEVEKCk7CiB9CiAKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKK3ZvaWQgVmlk
ZW9FbmNvZGVyQ29uZmlnOjpFbmNvZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbFZpZGVvQ29kZWNI
MjY1KAorICAgIFZpZGVvQ29kZWNIMjY1KiBoMjY1X3NldHRpbmdzKSBjb25zdCB7CisgIFJUQ19O
T1RSRUFDSEVEKCk7Cit9CisjZW5kaWYKKwogdm9pZCBWaWRlb0VuY29kZXJDb25maWc6OkVuY29k
ZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY1ZwOCgKICAgICBWaWRlb0NvZGVjVlA4
KiB2cDhfc2V0dGluZ3MpIGNvbnN0IHsKICAgUlRDX05PVFJFQUNIRUQoKTsKQEAgLTEyMSw2ICsx
MzIsMTcgQEAgdm9pZCBWaWRlb0VuY29kZXJDb25maWc6OkgyNjRFbmNvZGVyU3BlY2lmaWNTZXR0
aW5nczo6RmlsbFZpZGVvQ29kZWNIMjY0KAogICAqaDI2NF9zZXR0aW5ncyA9IHNwZWNpZmljc187
CiB9CiAKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKK1ZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NUVu
Y29kZXJTcGVjaWZpY1NldHRpbmdzOjpIMjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoCisgICAg
Y29uc3QgVmlkZW9Db2RlY0gyNjUmIHNwZWNpZmljcykKKyAgICA6IHNwZWNpZmljc18oc3BlY2lm
aWNzKSB7fQorCit2b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1Nl
dHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjUoCisgICAgVmlkZW9Db2RlY0gyNjUqIGgyNjVfc2V0
dGluZ3MpIGNvbnN0IHsKKyAgKmgyNjVfc2V0dGluZ3MgPSBzcGVjaWZpY3NfOworfQorI2VuZGlm
CisKIFZpZGVvRW5jb2RlckNvbmZpZzo6VnA4RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OlZwOEVu
Y29kZXJTcGVjaWZpY1NldHRpbmdzKAogICAgIGNvbnN0IFZpZGVvQ29kZWNWUDgmIHNwZWNpZmlj
cykKICAgICA6IHNwZWNpZmljc18oc3BlY2lmaWNzKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19l
bmNvZGVyX2NvbmZpZy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5oCmluZGV4IDM5OWIzY2Nk
Mzg2ODMyNTE4MmQ3M2E1YjZjNDQ2MDhiNjIxNDgwMWUuLjkwNTMyZWEzNjU0OGU4NGI1N2Q4YzFi
Y2QzZGYxZDczNmIyNDlkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcuaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9f
Y29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmgKQEAgLTY1LDYgKzY1LDkgQEAgY2xhc3MgVmlk
ZW9FbmNvZGVyQ29uZmlnIHsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDgoVmlk
ZW9Db2RlY1ZQOCogdnA4X3NldHRpbmdzKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZp
ZGVvQ29kZWNWcDkoVmlkZW9Db2RlY1ZQOSogdnA5X3NldHRpbmdzKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNIMjY0KFZpZGVvQ29kZWNIMjY0KiBoMjY0X3NldHRpbmdz
KSBjb25zdDsKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKKyAgICB2aXJ0dWFsIHZvaWQgRmlsbFZp
ZGVvQ29kZWNIMjY1KFZpZGVvQ29kZWNIMjY1KiBoMjY1X3NldHRpbmdzKSBjb25zdDsKKyNlbmRp
ZgogCiAgICBwcml2YXRlOgogICAgIH5FbmNvZGVyU3BlY2lmaWNTZXR0aW5ncygpIG92ZXJyaWRl
IHt9CkBAIC04MCw2ICs4MywxNiBAQCBjbGFzcyBWaWRlb0VuY29kZXJDb25maWcgewogICAgIFZp
ZGVvQ29kZWNIMjY0IHNwZWNpZmljc187CiAgIH07CiAKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUK
KyAgY2xhc3MgSDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzIDogcHVibGljIEVuY29kZXJTcGVj
aWZpY1NldHRpbmdzIHsKKyAgIHB1YmxpYzoKKyAgICBleHBsaWNpdCBIMjY1RW5jb2RlclNwZWNp
ZmljU2V0dGluZ3MoY29uc3QgVmlkZW9Db2RlY0gyNjUmIHNwZWNpZmljcyk7CisgICAgdm9pZCBG
aWxsVmlkZW9Db2RlY0gyNjUoVmlkZW9Db2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IG92
ZXJyaWRlOworCisgICBwcml2YXRlOgorICAgIFZpZGVvQ29kZWNIMjY1IHNwZWNpZmljc187Cisg
IH07CisjZW5kaWYKICAgY2xhc3MgVnA4RW5jb2RlclNwZWNpZmljU2V0dGluZ3MgOiBwdWJsaWMg
RW5jb2RlclNwZWNpZmljU2V0dGluZ3MgewogICAgcHVibGljOgogICAgIGV4cGxpY2l0IFZwOEVu
Y29kZXJTcGVjaWZpY1NldHRpbmdzKGNvbnN0IFZpZGVvQ29kZWNWUDgmIHNwZWNpZmljcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9idWls
ZF9vdmVycmlkZXMvYnVpbGQuZ25pIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvYnVpbGRfb3ZlcnJpZGVzL2J1aWxkLmduaQppbmRleCA2NjkwNDRkYjgxY2IyMTg1
YmUzNzRiMGIxMDAyNzA5M2M1NjgzYzM1Li42MDI1Y2RkZDA0N2UwOWIxZDBkMjVlMDM0MWE1ZmNj
NTk1OTcwMjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9idWlsZF9vdmVycmlkZXMvYnVpbGQuZ25pCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkKQEAgLTM1
LDYgKzM1LDEyIEBAIGxpbnRfc3VwcHJlc3Npb25zX2ZpbGUgPSAiLy90b29sc193ZWJydGMvYW5k
cm9pZC9zdXBwcmVzc2lvbnMueG1sIgogIyBzbyB3ZSBqdXN0IGlnbm9yZSB0aGF0IGFzc2VydC4g
U2VlIGh0dHBzOi8vY3JidWcuY29tLzY0ODk0OCBmb3IgbW9yZSBpbmZvLgogaWdub3JlX2VsZjMy
X2xpbWl0YXRpb25zID0gdHJ1ZQogCitpZiAoaXNfd2luIHx8IGlzX2lvcyB8fCBpc19hbmRyb2lk
KSB7CisgIHJ0Y191c2VfaDI2NSA9IHRydWUKK30gZWxzZSB7CisgIHJ0Y191c2VfaDI2NSA9IGZh
bHNlCit9CisKICMgVXNlIGJ1bmRsZWQgaGVybWV0aWMgWGNvZGUgaW5zdGFsbGF0aW9uIG1haW50
YWludGVkIGJ5IENocm9taXVtLAogIyBleGNlcHQgZm9yIGxvY2FsIGlPUyBidWlsZHMgd2hlcmUg
aXQncyB1bnN1cHBvcnRlZC4KIGlmIChob3N0X29zID09ICJtYWMiKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jYWxsL3J0cF9wYXlsb2Fk
X3BhcmFtcy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nh
bGwvcnRwX3BheWxvYWRfcGFyYW1zLmNjCmluZGV4IGFmN2JmZDJjYWNhYTM2ZTI2ZmJhNGYwYzc0
MGE1OWZlZTNiMjhhMTAuLmJiMWIzMjUxNjNjYzVjYWU2YmY5NTQzYWRlNTYzOTkwZGI4ZWRjOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nh
bGwvcnRwX3BheWxvYWRfcGFyYW1zLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NhbGwvcnRwX3BheWxvYWRfcGFyYW1zLmNjCkBAIC0xMDIsNiArMTAy
LDE0IEBAIHZvaWQgUG9wdWxhdGVSdHBXaXRoQ29kZWNTcGVjaWZpY3MoY29uc3QgQ29kZWNTcGVj
aWZpY0luZm8mIGluZm8sCiAgICAgICB9CiAgICAgICByZXR1cm47CiAgICAgfQorI2lmZGVmIFJU
Q19FTkFCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OiB7CisgICAgICBhdXRvIGgy
NjVfaGVhZGVyID0gcnRwLT52aWRlb190eXBlX2hlYWRlci5lbXBsYWNlPFJUUFZpZGVvSGVhZGVy
SDI2NT4oKTsKKyAgICAgIGgyNjVfaGVhZGVyLnBhY2tldGl6YXRpb25fbW9kZSA9CisgICAgICAg
ICAgaW5mby5jb2RlY1NwZWNpZmljLkgyNjUucGFja2V0aXphdGlvbl9tb2RlOworICAgIH0KKyAg
ICByZXR1cm47CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjTXVsdGlwbGV4OgogICAgIGNh
c2Uga1ZpZGVvQ29kZWNHZW5lcmljOgogICAgICAgcnRwLT5jb2RlYyA9IGtWaWRlb0NvZGVjR2Vu
ZXJpYzsKQEAgLTI3NCw2ICsyODIsOSBAQCB2b2lkIFJ0cFBheWxvYWRQYXJhbXM6OlNldEdlbmVy
aWMoY29uc3QgQ29kZWNTcGVjaWZpY0luZm8qIGNvZGVjX3NwZWNpZmljX2luZm8sCiAgICAgICAg
ICAgICAgICAgICAgICAgaXNfa2V5ZnJhbWUsIHJ0cF92aWRlb19oZWFkZXIpOwogICAgICAgfQog
ICAgICAgcmV0dXJuOworI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorICAgIGNhc2UgVmlkZW9Db2Rl
Y1R5cGU6OmtWaWRlb0NvZGVjSDI2NToKKyNlbmRpZgogICAgIGNhc2UgVmlkZW9Db2RlY1R5cGU6
OmtWaWRlb0NvZGVjTXVsdGlwbGV4OgogICAgICAgcmV0dXJuOwogICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vQlVJ
TEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25f
dmlkZW8vQlVJTEQuZ24KaW5kZXggYzBjZDk1OTk0ODcyYjRhMzEwNDUzMmZjZTM2MDg3NzU1ODZj
MTYxNS4uZDNjYjg1NmE1ZmZjZTY3MzIwZDQzZjFkNDdmYThmZTQwODIwNDgzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVv
L0JVSUxELmduCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2NvbW1vbl92aWRlby9CVUlMRC5nbgpAQCAtNDEsNiArNDEsMTkgQEAgcnRjX3N0YXRpY19saWJy
YXJ5KCJjb21tb25fdmlkZW8iKSB7CiAgICAgInZpZGVvX3JlbmRlcl9mcmFtZXMuaCIsCiAgIF0K
IAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisgICAgICAiaDI2NS9o
MjY1X2NvbW1vbi5jYyIsCisgICAgICAiaDI2NS9oMjY1X2NvbW1vbi5oIiwKKyAgICAgICJoMjY1
L2gyNjVfcHBzX3BhcnNlci5jYyIsCisgICAgICAiaDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIsCisg
ICAgICAiaDI2NS9oMjY1X3Nwc19wYXJzZXIuY2MiLAorICAgICAgImgyNjUvaDI2NV9zcHNfcGFy
c2VyLmgiLAorICAgICAgImgyNjUvaDI2NV92cHNfcGFyc2VyLmNjIiwKKyAgICAgICJoMjY1L2gy
NjVfdnBzX3BhcnNlci5oIiwKKyAgICBdCisgIH0KKwogICBkZXBzID0gWwogICAgICIuLi9hcGk6
c2NvcGVkX3JlZnB0ciIsCiAgICAgIi4uL2FwaS90YXNrX3F1ZXVlIiwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1
L2gyNjVfY29tbW9uLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIyY2FjMjI3
NTlkOGJkYmJmZmJmMGY3MTRlOTE0N2U2NDIzYjYzZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gy
NjVfY29tbW9uLmNjCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAx
OCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisg
KiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGlj
ZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJv
b3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHBy
b3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRT
LiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4g
dGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKwor
I2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisKK25hbWVzcGFjZSB3
ZWJydGMgeworbmFtZXNwYWNlIEgyNjUgeworCitjb25zdCB1aW50OF90IGtOYWx1VHlwZU1hc2sg
PSAweDdFOworCitzdGQ6OnZlY3RvcjxOYWx1SW5kZXg+IEZpbmROYWx1SW5kaWNlcyhjb25zdCB1
aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgYnVmZmVyX3NpemUpIHsKKyAgLy8gVGhpcyBpcyBzb3J0YSBsaWtlIEJveWVyLU1vb3Jl
LCBidXQgd2l0aCBvbmx5IHRoZSBmaXJzdCBvcHRpbWl6YXRpb24gc3RlcDoKKyAgLy8gZ2l2ZW4g
YSAzLWJ5dGUgc2VxdWVuY2Ugd2UncmUgbG9va2luZyBhdCwgaWYgdGhlIDNyZCBieXRlIGlzbid0
IDEgb3IgMCwKKyAgLy8gc2tpcCBhaGVhZCB0byB0aGUgbmV4dCAzLWJ5dGUgc2VxdWVuY2UuIDBz
IGFuZCAxcyBhcmUgcmVsYXRpdmVseSByYXJlLCBzbworICAvLyB0aGlzIHdpbGwgc2tpcCB0aGUg
bWFqb3JpdHkgb2YgcmVhZHMvY2hlY2tzLgorICBzdGQ6OnZlY3RvcjxOYWx1SW5kZXg+IHNlcXVl
bmNlczsKKyAgaWYgKGJ1ZmZlcl9zaXplIDwga05hbHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXplKQor
ICAgIHJldHVybiBzZXF1ZW5jZXM7CisKKyAgY29uc3Qgc2l6ZV90IGVuZCA9IGJ1ZmZlcl9zaXpl
IC0ga05hbHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXplOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGVuZDspIHsKKyAgICBpZiAoYnVmZmVyW2kgKyAyXSA+IDEpIHsKKyAgICAgIGkgKz0gMzsKKyAg
ICB9IGVsc2UgaWYgKGJ1ZmZlcltpICsgMl0gPT0gMSAmJiBidWZmZXJbaSArIDFdID09IDAgJiYg
YnVmZmVyW2ldID09IDApIHsKKyAgICAgIC8vIFdlIGZvdW5kIGEgc3RhcnQgc2VxdWVuY2UsIG5v
dyBjaGVjayBpZiBpdCB3YXMgYSAzIG9mIDQgYnl0ZSBvbmUuCisgICAgICBOYWx1SW5kZXggaW5k
ZXggPSB7aSwgaSArIDMsIDB9OworICAgICAgaWYgKGluZGV4LnN0YXJ0X29mZnNldCA+IDAgJiYg
YnVmZmVyW2luZGV4LnN0YXJ0X29mZnNldCAtIDFdID09IDApCisgICAgICAgIC0taW5kZXguc3Rh
cnRfb2Zmc2V0OworCisgICAgICAvLyBVcGRhdGUgbGVuZ3RoIG9mIHByZXZpb3VzIGVudHJ5Lgor
ICAgICAgYXV0byBpdCA9IHNlcXVlbmNlcy5yYmVnaW4oKTsKKyAgICAgIGlmIChpdCAhPSBzZXF1
ZW5jZXMucmVuZCgpKQorICAgICAgICBpdC0+cGF5bG9hZF9zaXplID0gaW5kZXguc3RhcnRfb2Zm
c2V0IC0gaXQtPnBheWxvYWRfc3RhcnRfb2Zmc2V0OworCisgICAgICBzZXF1ZW5jZXMucHVzaF9i
YWNrKGluZGV4KTsKKworICAgICAgaSArPSAzOworICAgIH0gZWxzZSB7CisgICAgICArK2k7Cisg
ICAgfQorICB9CisKKyAgLy8gVXBkYXRlIGxlbmd0aCBvZiBsYXN0IGVudHJ5LCBpZiBhbnkuCisg
IGF1dG8gaXQgPSBzZXF1ZW5jZXMucmJlZ2luKCk7CisgIGlmIChpdCAhPSBzZXF1ZW5jZXMucmVu
ZCgpKQorICAgIGl0LT5wYXlsb2FkX3NpemUgPSBidWZmZXJfc2l6ZSAtIGl0LT5wYXlsb2FkX3N0
YXJ0X29mZnNldDsKKworICByZXR1cm4gc2VxdWVuY2VzOworfQorCitOYWx1VHlwZSBQYXJzZU5h
bHVUeXBlKHVpbnQ4X3QgZGF0YSkgeworICByZXR1cm4gc3RhdGljX2Nhc3Q8TmFsdVR5cGU+KChk
YXRhICYga05hbHVUeXBlTWFzaykgPj4gMSk7Cit9CisKK3N0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFBh
cnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVj
dG9yPHVpbnQ4X3Q+IG91dDsKKyAgb3V0LnJlc2VydmUobGVuZ3RoKTsKKworICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGxlbmd0aDspIHsKKyAgICAvLyBCZSBjYXJlZnVsIGFib3V0IG92ZXIvdW5k
ZXJmbG93IGhlcmUuIGJ5dGVfbGVuZ3RoXyAtIDMgY2FuIHVuZGVyZmxvdywgYW5kCisgICAgLy8g
aSArIDMgY2FuIG92ZXJmbG93LCBidXQgYnl0ZV9sZW5ndGhfIC0gaSBjYW4ndCwgYmVjYXVzZSBp
IDwgYnl0ZV9sZW5ndGhfCisgICAgLy8gYWJvdmUsIGFuZCB0aGF0IGV4cHJlc3Npb24gd2lsbCBw
cm9kdWNlIHRoZSBudW1iZXIgb2YgYnl0ZXMgbGVmdCBpbgorICAgIC8vIHRoZSBzdHJlYW0gaW5j
bHVkaW5nIHRoZSBieXRlIGF0IGkuCisgICAgaWYgKGxlbmd0aCAtIGkgPj0gMyAmJiAhZGF0YVtp
XSAmJiAhZGF0YVtpICsgMV0gJiYgZGF0YVtpICsgMl0gPT0gMykgeworICAgICAgLy8gVHdvIHJi
c3AgYnl0ZXMuCisgICAgICBvdXQucHVzaF9iYWNrKGRhdGFbaSsrXSk7CisgICAgICBvdXQucHVz
aF9iYWNrKGRhdGFbaSsrXSk7CisgICAgICAvLyBTa2lwIHRoZSBlbXVsYXRpb24gYnl0ZS4KKyAg
ICAgIGkrKzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gU2luZ2xlIHJic3AgYnl0ZS4KKyAgICAg
IG91dC5wdXNoX2JhY2soZGF0YVtpKytdKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIG91dDsKK30K
Kwordm9pZCBXcml0ZVJic3AoY29uc3QgdWludDhfdCogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIHJ0
Yzo6QnVmZmVyKiBkZXN0aW5hdGlvbikgeworICBzdGF0aWMgY29uc3QgdWludDhfdCBrWmVyb3NJ
blN0YXJ0U2VxdWVuY2UgPSAyOworICBzdGF0aWMgY29uc3QgdWludDhfdCBrRW11bGF0aW9uQnl0
ZSA9IDB4MDN1OworICBzaXplX3QgbnVtX2NvbnNlY3V0aXZlX3plcm9zID0gMDsKKyAgZGVzdGlu
YXRpb24tPkVuc3VyZUNhcGFjaXR5KGRlc3RpbmF0aW9uLT5zaXplKCkgKyBsZW5ndGgpOworCisg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICB1aW50OF90IGJ5dGUg
PSBieXRlc1tpXTsKKyAgICBpZiAoYnl0ZSA8PSBrRW11bGF0aW9uQnl0ZSAmJgorICAgICAgICBu
dW1fY29uc2VjdXRpdmVfemVyb3MgPj0ga1plcm9zSW5TdGFydFNlcXVlbmNlKSB7CisgICAgICAv
LyBOZWVkIHRvIGVzY2FwZS4KKyAgICAgIGRlc3RpbmF0aW9uLT5BcHBlbmREYXRhKGtFbXVsYXRp
b25CeXRlKTsKKyAgICAgIG51bV9jb25zZWN1dGl2ZV96ZXJvcyA9IDA7CisgICAgfQorICAgIGRl
c3RpbmF0aW9uLT5BcHBlbmREYXRhKGJ5dGUpOworICAgIGlmIChieXRlID09IDApIHsKKyAgICAg
ICsrbnVtX2NvbnNlY3V0aXZlX3plcm9zOworICAgIH0gZWxzZSB7CisgICAgICBudW1fY29uc2Vj
dXRpdmVfemVyb3MgPSAwOworICAgIH0KKyAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgSDI2NQor
fSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1
L2gyNjVfY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdiYjI3NzRlZTEwYWIxM2U5MjI1ZDQ0MDVkNTE2
OTNhYzcxMDQxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgKQEAgLTAsMCAr
MSwxMDAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBh
dXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUg
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAg
dHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNh
biBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHBy
b2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRo
ZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIENPTU1PTl9WSURFT19I
MjY1X0gyNjVfQ09NTU9OX0hfCisjZGVmaW5lIENPTU1PTl9WSURFT19IMjY1X0gyNjVfQ09NTU9O
X0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSAi
cnRjX2Jhc2UvYnVmZmVyLmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCituYW1lc3BhY2UgSDI2
NSB7CisvLyBUaGUgc2l6ZSBvZiBhIGZ1bGwgTkFMVSBzdGFydCBzZXF1ZW5jZSB7MCAwIDAgMX0s
IHVzZWQgZm9yIHRoZSBmaXJzdCBOQUxVCisvLyBvZiBhbiBhY2Nlc3MgdW5pdCwgYW5kIGZvciBT
UFMgYW5kIFBQUyBibG9ja3MuCitjb25zdCBzaXplX3Qga05hbHVMb25nU3RhcnRTZXF1ZW5jZVNp
emUgPSA0OworCisvLyBUaGUgc2l6ZSBvZiBhIHNob3J0ZW5lZCBOQUxVIHN0YXJ0IHNlcXVlbmNl
IHswIDAgMX0sIHRoYXQgbWF5IGJlIHVzZWQgaWYKKy8vIG5vdCB0aGUgZmlyc3QgTkFMVSBvZiBh
biBhY2Nlc3MgdW5pdCBvciBhbiBTUFMgb3IgUFBTIGJsb2NrLgorY29uc3Qgc2l6ZV90IGtOYWx1
U2hvcnRTdGFydFNlcXVlbmNlU2l6ZSA9IDM7CisKKy8vIFRoZSBzaXplIG9mIHRoZSBOQUxVIHR5
cGUgYnl0ZSAoMSkuCitjb25zdCBzaXplX3Qga05hbHVUeXBlU2l6ZSA9IDE7CisKK2VudW0gTmFs
dVR5cGUgOiB1aW50OF90IHsKKyAga1RyYWlsTiA9IDAsCisgIGtUcmFpbFIgPSAxLAorICBrVHNh
TiA9IDIsCisgIGtUc2FSID0gMywKKyAga1N0c2FOID0gNCwKKyAga1N0c2FSID0gNSwKKyAga1Jh
ZGxOID0gNiwKKyAga1JhZGxSID0gNywKKyAga0JsYVdMcCA9IDE2LAorICBrQmxhV1JhZGwgPSAx
NywKKyAga0JsYU5McCA9IDE4LAorICBrSWRyV1JhZGwgPSAxOSwKKyAga0lkck5McCA9IDIwLAor
ICBrQ3JhID0gMjEsCisgIGtSc3ZJcmFwVmNsMjMgPSAyMywKKyAga1ZwcyA9IDMyLAorICBrU3Bz
ID0gMzMsCisgIGtQcHMgPSAzNCwKKyAga0F1ZCA9IDM1LAorICBrUHJlZml4U2VpID0gMzksCisg
IGtTdWZmaXhTZWkgPSA0MCwKKyAga0FQID0gNDgsCisgIGtGVSA9IDQ5Cit9OworCitlbnVtIFNs
aWNlVHlwZSA6IHVpbnQ4X3QgeyBrUCA9IDAsIGtCID0gMSwga0kgPSAyLCBrU3AgPSAzLCBrU2kg
PSA0IH07CisKK3N0cnVjdCBOYWx1SW5kZXggeworICAvLyBTdGFydCBpbmRleCBvZiBOQUxVLCBp
bmNsdWRpbmcgc3RhcnQgc2VxdWVuY2UuCisgIHNpemVfdCBzdGFydF9vZmZzZXQ7CisgIC8vIFN0
YXJ0IGluZGV4IG9mIE5BTFUgcGF5bG9hZCwgdHlwaWNhbGx5IHR5cGUgaGVhZGVyLgorICBzaXpl
X3QgcGF5bG9hZF9zdGFydF9vZmZzZXQ7CisgIC8vIExlbmd0aCBvZiBOQUxVIHBheWxvYWQsIGlu
IGJ5dGVzLCBjb3VudGluZyBmcm9tIHBheWxvYWRfc3RhcnRfb2Zmc2V0LgorICBzaXplX3QgcGF5
bG9hZF9zaXplOworfTsKKworLy8gUmV0dXJucyBhIHZlY3RvciBvZiB0aGUgTkFMVSBpbmRpY2Vz
IGluIHRoZSBnaXZlbiBidWZmZXIuCitzdGQ6OnZlY3RvcjxOYWx1SW5kZXg+IEZpbmROYWx1SW5k
aWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUpOworCisvLyBHZXQgdGhlIE5BTCB0eXBlIGZy
b20gdGhlIGhlYWRlciBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBzdGFydCBzZXF1ZW5jZS4K
K05hbHVUeXBlIFBhcnNlTmFsdVR5cGUodWludDhfdCBkYXRhKTsKKworLy8gTWV0aG9kcyBmb3Ig
cGFyc2luZyBhbmQgd3JpdGluZyBSQlNQLiBTZWUgc2VjdGlvbiA3LjQuMiBvZiB0aGUgSDI2NSBz
cGVjLgorLy8KKy8vIFRoZSBmb2xsb3dpbmcgc2VxdWVuY2VzIGFyZSBpbGxlZ2FsLCBhbmQgbmVl
ZCB0byBiZSBlc2NhcGVkIHdoZW4gZW5jb2Rpbmc6CisvLyAwMCAwMCAwMCAtPiAwMCAwMCAwMyAw
MAorLy8gMDAgMDAgMDEgLT4gMDAgMDAgMDMgMDEKKy8vIDAwIDAwIDAyIC0+IDAwIDAwIDAzIDAy
CisvLyBBbmQgdGhpbmdzIGluIHRoZSBzb3VyY2UgdGhhdCBsb29rIGxpa2UgdGhlIGVtdWxhdGlv
biBieXRlIHBhdHRlcm4gKDAwIDAwIDAzKQorLy8gbmVlZCB0byBoYXZlIGFuIGV4dHJhIGVtdWxh
dGlvbiBieXRlIGFkZGVkLCBzbyBpdCdzIHJlbW92ZWQgd2hlbiBkZWNvZGluZzoKKy8vIDAwIDAw
IDAzIC0+IDAwIDAwIDAzIDAzCisvLworLy8gRGVjb2RpbmcgaXMgc2ltcGx5IGEgbWF0dGVyIG9m
IGZpbmRpbmcgYW55IDAwIDAwIDAzIHNlcXVlbmNlIGFuZCByZW1vdmluZworLy8gdGhlIDAzIGVt
dWxhdGlvbiBieXRlLgorCisvLyBQYXJzZSB0aGUgZ2l2ZW4gZGF0YSBhbmQgcmVtb3ZlIGFueSBl
bXVsYXRpb24gYnl0ZSBlc2NhcGluZy4KK3N0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFBhcnNlUmJzcChj
b25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKworLy8gV3JpdGUgdGhlIGdpdmVu
IGRhdGEgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciwgaW5zZXJ0aW5nIGFuZCBlbXVsYXRpb24K
Ky8vIGJ5dGVzIGluIG9yZGVyIHRvIGVzY2FwZSBhbnkgZGF0YSB0aGUgY291bGQgYmUgaW50ZXJw
cmV0ZWQgYXMgYSBzdGFydAorLy8gc2VxdWVuY2UuCit2b2lkIFdyaXRlUmJzcChjb25zdCB1aW50
OF90KiBieXRlcywgc2l6ZV90IGxlbmd0aCwgcnRjOjpCdWZmZXIqIGRlc3RpbmF0aW9uKTsKK30g
IC8vIG5hbWVzcGFjZSBIMjY1Cit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisKKyNlbmRpZiAgLy8g
Q09NTU9OX1ZJREVPX0gyNjVfSDI2NV9DT01NT05fSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBz
X3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nv
bW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTg0MTFjZWQz
MjdjODRhNjVlYzkzZjRkZmM3YmU5MmNmZjJlMjZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2
NV9wcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMjA5IEBACisvKgorICogIENvcHlyaWdodCAoYykg
MjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
bGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFs
IHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRF
TlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQg
aW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8K
KworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oIgorCisjaW5j
bHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgImNvbW1vbl92aWRl
by9oMjY0L2gyNjRfY29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9j
b21tb24uaCIKKyNpbmNsdWRlICJydGNfYmFzZS9iaXRfYnVmZmVyLmgiCisjaW5jbHVkZSAicnRj
X2Jhc2UvbG9nZ2luZy5oIgorCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAg
aWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBhYnNsOjpudWxsb3B0
OyAgICAgICAgXAorICB9CisKK25hbWVzcGFjZSB7Citjb25zdCBpbnQga01heFBpY0luaXRRcERl
bHRhVmFsdWUgPSAyNTsKK2NvbnN0IGludCBrTWluUGljSW5pdFFwRGVsdGFWYWx1ZSA9IC0yNjsK
K30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworLy8gR2VuZXJhbCBub3Rl
OiB0aGlzIGlzIGJhc2VkIG9mZiB0aGUgMDIvMjAxOCB2ZXJzaW9uIG9mIHRoZSBILjI2NSBzdGFu
ZGFyZC4KKy8vIFlvdSBjYW4gZmluZCBpdCBvbiB0aGlzIHBhZ2U6CisvLyBodHRwOi8vd3d3Lml0
dS5pbnQvcmVjL1QtUkVDLUguMjY1CisKK2Fic2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBw
c1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwcygKKyAgICBjb25zdCB1aW50OF90KiBkYXRh
LAorICAgIHNpemVfdCBsZW5ndGgpIHsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGlj
aCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5
dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlz
IGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMuMSBvZiB0aGUgSC4yNjQgc3RhbmRhcmQuCisg
IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjQ6OlBhcnNlUmJzcChk
YXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZl
ci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5h
bCgmYml0X2J1ZmZlcik7Cit9CisKK2Jvb2wgSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJZHMoY29u
c3QgdWludDhfdCogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHBwc19p
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHNwc19pZCkgewor
ICBSVENfRENIRUNLKHBwc19pZCk7CisgIFJUQ19EQ0hFQ0soc3BzX2lkKTsKKyAgLy8gRmlyc3Qs
IHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZmZXIgbWlu
dXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAweDAwIDB4
MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMuMSBvZiB0
aGUgSC4yNjUgc3RhbmRhcmQuCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZl
ciA9IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRf
YnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOwor
ICByZXR1cm4gUGFyc2VQcHNJZHNJbnRlcm5hbCgmYml0X2J1ZmZlciwgcHBzX2lkLCBzcHNfaWQp
OworfQorCithYnNsOjpvcHRpb25hbDx1aW50MzJfdD4gSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJ
ZEZyb21TbGljZVNlZ21lbnRMYXllclJic3AoCisgICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAg
ICBzaXplX3QgbGVuZ3RoLAorICAgIHVpbnQ4X3QgbmFsdV90eXBlKSB7CisgIHJ0Yzo6Qml0QnVm
ZmVyIHNsaWNlX3JlYWRlcihkYXRhLCBsZW5ndGgpOworCisgIC8vIGZpcnN0X3NsaWNlX3NlZ21l
bnRfaW5fcGljX2ZsYWc6IHUoMSkKKyAgdWludDMyX3QgZmlyc3Rfc2xpY2Vfc2VnbWVudF9pbl9w
aWNfZmxhZyA9IDA7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgc2xpY2VfcmVhZGVy
LlJlYWRCaXRzKCZmaXJzdF9zbGljZV9zZWdtZW50X2luX3BpY19mbGFnLCAxKSk7CisKKyAgaWYg
KG5hbHVfdHlwZSA+PSBIMjY1OjpOYWx1VHlwZTo6a0JsYVdMcCAmJgorICAgICAgbmFsdV90eXBl
IDw9IEgyNjU6Ok5hbHVUeXBlOjprUnN2SXJhcFZjbDIzKSB7CisgICAgLy8gbm9fb3V0cHV0X29m
X3ByaW9yX3BpY3NfZmxhZzogdSgxKQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHNsaWNlX3Jl
YWRlci5Db25zdW1lQml0cygxKSk7CisgIH0KKworICAvLyBzbGljZV9waWNfcGFyYW1ldGVyX3Nl
dF9pZDogdWUodikKKyAgdWludDMyX3Qgc2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQgPSAwOwor
ICBpZiAoIXNsaWNlX3JlYWRlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnNsaWNlX3BpY19wYXJh
bWV0ZXJfc2V0X2lkKSkKKyAgICByZXR1cm4gYWJzbDo6bnVsbG9wdDsKKworICByZXR1cm4gc2xp
Y2VfcGljX3BhcmFtZXRlcl9zZXRfaWQ7Cit9CisKK2Fic2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJz
ZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZUludGVybmFsKAorICAgIHJ0Yzo6Qml0
QnVmZmVyKiBiaXRfYnVmZmVyKSB7CisgIFBwc1N0YXRlIHBwczsKKworICBSRVRVUk5fRU1QVFlf
T05fRkFJTChQYXJzZVBwc0lkc0ludGVybmFsKGJpdF9idWZmZXIsICZwcHMuaWQsICZwcHMuc3Bz
X2lkKSk7CisKKyAgdWludDMyX3QgYml0c190bXA7CisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVk
OworICAvLyBlbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWc6IHUoMSkKKyAgdWludDMyX3QgZW50cm9w
eV9jb2RpbmdfbW9kZV9mbGFnOworICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5S
ZWFkQml0cygmZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnLCAxKSk7CisgIHBwcy5lbnRyb3B5X2Nv
ZGluZ19tb2RlX2ZsYWcgPSBlbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWcgIT0gMDsKKyAgLy8gYm90
dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVzZW50X2ZsYWc6IHUoMSkKKyAgdWludDMy
X3QgYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVzZW50X2ZsYWc7CisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0X2J1ZmZlci0+UmVhZEJpdHMoJmJvdHRvbV9maWVs
ZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnLCAxKSk7CisgIHBwcy5ib3R0b21fZmll
bGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZyA9CisgICAgICBib3R0b21fZmllbGRf
cGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZyAhPSAwOworCisgIC8vIG51bV9zbGljZV9n
cm91cHNfbWludXMxOiB1ZSh2KQorICB1aW50MzJfdCBudW1fc2xpY2VfZ3JvdXBzX21pbnVzMTsK
KyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRp
YWxHb2xvbWIoJm51bV9zbGljZV9ncm91cHNfbWludXMxKSk7CisgIGlmIChudW1fc2xpY2VfZ3Jv
dXBzX21pbnVzMSA+IDApIHsKKyAgICB1aW50MzJfdCBzbGljZV9ncm91cF9tYXBfdHlwZTsKKyAg
ICAvLyBzbGljZV9ncm91cF9tYXBfdHlwZTogdWUodikKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJ
TCgKKyAgICAgICAgYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZzbGljZV9ncm91
cF9tYXBfdHlwZSkpOworICAgIGlmIChzbGljZV9ncm91cF9tYXBfdHlwZSA9PSAwKSB7CisgICAg
ICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAwOyBpX2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNf
bWludXMxOworICAgICAgICAgICArK2lfZ3JvdXApIHsKKyAgICAgICAgLy8gcnVuX2xlbmd0aF9t
aW51czFbaUdyb3VwXTogdWUodikKKyAgICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAg
ICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVk
KSk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChzbGljZV9ncm91cF9tYXBfdHlwZSA9PSAxKSB7
CisgICAgICAvLyBUT0RPKHNwcmFuZyk6IEltcGxlbWVudCBzdXBwb3J0IGZvciBkaXNwZXJzZWQg
c2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisgICAgICAvLyBTZWUgOC4yLjIuMiBTcGVjaWZpY2F0aW9u
IGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisgICAgfSBlbHNlIGlmIChzbGlj
ZV9ncm91cF9tYXBfdHlwZSA9PSAyKSB7CisgICAgICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAw
OyBpX2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNfbWludXMxOworICAgICAgICAgICArK2lfZ3Jv
dXApIHsKKyAgICAgICAgLy8gdG9wX2xlZnRbaUdyb3VwXTogdWUodikKKyAgICAgICAgUkVUVVJO
X0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxH
b2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAgICAgIC8vIGJvdHRvbV9yaWdodFtpR3JvdXBd
OiB1ZSh2KQorICAgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgICAgIGJpdF9i
dWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgICAgIH0K
KyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBlID09IDMgfHwgc2xpY2VfZ3JvdXBf
bWFwX3R5cGUgPT0gNCB8fAorICAgICAgICAgICAgICAgc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0g
NSkgeworICAgICAgLy8gc2xpY2VfZ3JvdXBfY2hhbmdlX2RpcmVjdGlvbl9mbGFnOiB1KDEpCisg
ICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmYml0c190bXAs
IDEpKTsKKyAgICAgIC8vIHNsaWNlX2dyb3VwX2NoYW5nZV9yYXRlX21pbnVzMTogdWUodikKKyAg
ICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9t
YigmZ29sb21iX2lnbm9yZWQpKTsKKyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBl
ID09IDYpIHsKKyAgICAgIC8vIHBpY19zaXplX2luX21hcF91bml0c19taW51czE6IHVlKHYpCisg
ICAgICB1aW50MzJfdCBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxOworICAgICAgUkVUVVJO
X0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29s
b21iKCZwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxKSk7CisgICAgICB1aW50MzJfdCBzbGlj
ZV9ncm91cF9pZF9iaXRzID0gMDsKKyAgICAgIHVpbnQzMl90IG51bV9zbGljZV9ncm91cHMgPSBu
dW1fc2xpY2VfZ3JvdXBzX21pbnVzMSArIDE7CisgICAgICAvLyBJZiBudW1fc2xpY2VfZ3JvdXBz
IGlzIG5vdCBhIHBvd2VyIG9mIHR3byBhbiBhZGRpdGlvbmFsIGJpdCBpcyByZXF1aXJlZAorICAg
ICAgLy8gdG8gYWNjb3VudCBmb3IgdGhlIGNlaWwoKSBvZiBsb2cyKCkgYmVsb3cuCisgICAgICBp
ZiAoKG51bV9zbGljZV9ncm91cHMgJiAobnVtX3NsaWNlX2dyb3VwcyAtIDEpKSAhPSAwKQorICAg
ICAgICArK3NsaWNlX2dyb3VwX2lkX2JpdHM7CisgICAgICB3aGlsZSAobnVtX3NsaWNlX2dyb3Vw
cyA+IDApIHsKKyAgICAgICAgbnVtX3NsaWNlX2dyb3VwcyA+Pj0gMTsKKyAgICAgICAgKytzbGlj
ZV9ncm91cF9pZF9iaXRzOworICAgICAgfQorICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8
PSBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxOyBpKyspIHsKKyAgICAgICAgLy8gc2xpY2Vf
Z3JvdXBfaWRbaV06IHUodikKKyAgICAgICAgLy8gUmVwcmVzZW50ZWQgYnkgY2VpbChsb2cyKG51
bV9zbGljZV9ncm91cHNfbWludXMxICsgMSkpIGJpdHMuCisgICAgICAgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKAorICAgICAgICAgICAgYml0X2J1ZmZlci0+UmVhZEJpdHMoJmJpdHNfdG1wLCBzbGlj
ZV9ncm91cF9pZF9iaXRzKSk7CisgICAgICB9CisgICAgfQorICB9CisgIC8vIG51bV9yZWZfaWR4
X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogdWUodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
Yml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAv
LyBudW1fcmVmX2lkeF9sMV9kZWZhdWx0X2FjdGl2ZV9taW51czE6IHVlKHYpCisgIFJFVFVSTl9F
TVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2ln
bm9yZWQpKTsKKyAgLy8gd2VpZ2h0ZWRfcHJlZF9mbGFnOiB1KDEpCisgIHVpbnQzMl90IHdlaWdo
dGVkX3ByZWRfZmxhZzsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEJp
dHMoJndlaWdodGVkX3ByZWRfZmxhZywgMSkpOworICBwcHMud2VpZ2h0ZWRfcHJlZF9mbGFnID0g
d2VpZ2h0ZWRfcHJlZF9mbGFnICE9IDA7CisgIC8vIHdlaWdodGVkX2JpcHJlZF9pZGM6IHUoMikK
KyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEJpdHMoJnBwcy53ZWlnaHRl
ZF9iaXByZWRfaWRjLCAyKSk7CisKKyAgLy8gcGljX2luaXRfcXBfbWludXMyNjogc2UodikKKyAg
UkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVmZmVyLT5SZWFkU2lnbmVkRXhwb25l
bnRpYWxHb2xvbWIoJnBwcy5waWNfaW5pdF9xcF9taW51czI2KSk7CisgIC8vIFNhbml0eS1jaGVj
ayBwYXJzZWQgdmFsdWUKKyAgaWYgKHBwcy5waWNfaW5pdF9xcF9taW51czI2ID4ga01heFBpY0lu
aXRRcERlbHRhVmFsdWUgfHwKKyAgICAgIHBwcy5waWNfaW5pdF9xcF9taW51czI2IDwga01pblBp
Y0luaXRRcERlbHRhVmFsdWUpIHsKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChmYWxzZSk7Cisg
IH0KKyAgLy8gcGljX2luaXRfcXNfbWludXMyNjogc2UodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZB
SUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOwor
ICAvLyBjaHJvbWFfcXBfaW5kZXhfb2Zmc2V0OiBzZSh2KQorICBSRVRVUk5fRU1QVFlfT05fRkFJ
TChiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7Cisg
IC8vIGRlYmxvY2tpbmdfZmlsdGVyX2NvbnRyb2xfcHJlc2VudF9mbGFnOiB1KDEpCisgIC8vIGNv
bnN0cmFpbmVkX2ludHJhX3ByZWRfZmxhZzogdSgxKQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChi
aXRfYnVmZmVyLT5SZWFkQml0cygmYml0c190bXAsIDIpKTsKKyAgLy8gcmVkdW5kYW50X3BpY19j
bnRfcHJlc2VudF9mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0
X2J1ZmZlci0+UmVhZEJpdHMoJnBwcy5yZWR1bmRhbnRfcGljX2NudF9wcmVzZW50X2ZsYWcsIDEp
KTsKKworICByZXR1cm4gcHBzOworfQorCitib29sIEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRz
SW50ZXJuYWwocnRjOjpCaXRCdWZmZXIqIGJpdF9idWZmZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHBwc19pZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogc3BzX2lkKSB7CisgIC8vIHBpY19wYXJh
bWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBpZiAoIWJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdv
bG9tYihwcHNfaWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgLy8gc2VxX3BhcmFtZXRlcl9zZXRf
aWQ6IHVlKHYpCisgIGlmICghYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKHNwc19p
ZCkpCisgICAgcmV0dXJuIGZhbHNlOworICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNw
YWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bw
c19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmE0NzE4ODNkY2FlYWY1YTUzNGFjMzEzOWEzNjkwN2Yz
MDRmZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmgKQEAgLTAsMCAr
MSw2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1
dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0
cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2Fu
IGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJv
amVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpZm5kZWYgQ09NTU9OX1ZJREVPX0gy
NjVfUFBTX1BBUlNFUl9IXworI2RlZmluZSBDT01NT05fVklERU9fSDI2NV9QUFNfUEFSU0VSX0hf
CisKKyNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisKK25hbWVzcGFjZSBydGMgewor
Y2xhc3MgQml0QnVmZmVyOworfQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworLy8gQSBjbGFzcyBm
b3IgcGFyc2luZyBvdXQgcGljdHVyZSBwYXJhbWV0ZXIgc2V0IChQUFMpIGRhdGEgZnJvbSBhIEgy
NjUgTkFMVS4KK2NsYXNzIEgyNjVQcHNQYXJzZXIgeworIHB1YmxpYzoKKyAgLy8gVGhlIHBhcnNl
ZCBzdGF0ZSBvZiB0aGUgUFBTLiBPbmx5IHNvbWUgc2VsZWN0IHZhbHVlcyBhcmUgc3RvcmVkLgor
ICAvLyBBZGQgbW9yZSBhcyB0aGV5IGFyZSBhY3R1YWxseSBuZWVkZWQuCisgIHN0cnVjdCBQcHNT
dGF0ZSB7CisgICAgUHBzU3RhdGUoKSA9IGRlZmF1bHQ7CisKKyAgICBib29sIGJvdHRvbV9maWVs
ZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnID0gZmFsc2U7CisgICAgYm9vbCB3ZWln
aHRlZF9wcmVkX2ZsYWcgPSBmYWxzZTsKKyAgICBib29sIGVudHJvcHlfY29kaW5nX21vZGVfZmxh
ZyA9IGZhbHNlOworICAgIHVpbnQzMl90IHdlaWdodGVkX2JpcHJlZF9pZGMgPSBmYWxzZTsKKyAg
ICB1aW50MzJfdCByZWR1bmRhbnRfcGljX2NudF9wcmVzZW50X2ZsYWcgPSAwOworICAgIGludCBw
aWNfaW5pdF9xcF9taW51czI2ID0gMDsKKyAgICB1aW50MzJfdCBpZCA9IDA7CisgICAgdWludDMy
X3Qgc3BzX2lkID0gMDsKKyAgfTsKKworICAvLyBVbnBhY2sgUkJTUCBhbmQgcGFyc2UgUFBTIHN0
YXRlIGZyb20gdGhlIHN1cHBsaWVkIGJ1ZmZlci4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFBw
c1N0YXRlPiBQYXJzZVBwcyhjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKwor
ICBzdGF0aWMgYm9vbCBQYXJzZVBwc0lkcyhjb25zdCB1aW50OF90KiBkYXRhLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCog
c3BzX2lkKTsKKworICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8dWludDMyX3Q+IFBhcnNlUHBzSWRG
cm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAgICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAg
ICAgIHNpemVfdCBsZW5ndGgsCisgICAgICB1aW50OF90IG5hbHVfdHlwZSk7CisKKyBwcm90ZWN0
ZWQ6CisgIC8vIFBhcnNlIHRoZSBQUFMgc3RhdGUsIGZvciBhIGJpdCBidWZmZXIgd2hlcmUgUkJT
UCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisgIC8vIHBlcmZvcm1lZC4KKyAgc3RhdGljIGFi
c2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZUludGVybmFsKHJ0Yzo6Qml0QnVmZmVyKiBiaXRf
YnVmZmVyKTsKKyAgc3RhdGljIGJvb2wgUGFyc2VQcHNJZHNJbnRlcm5hbChydGM6OkJpdEJ1ZmZl
ciogYml0X2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf
dCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBz
cHNfaWQpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworCisjZW5kaWYgIC8vIENPTU1P
Tl9WSURFT19IMjY1X1BQU19QQVJTRVJfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNl
ci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92
aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDMzZjRiMGVlOTIwYzIz
M2YxYjYxODE1MGQyZDNmODhmZWQwZWMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9zcHNf
cGFyc2VyLmNjCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBU
aGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAg
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5z
ZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qg
b2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3Bl
cnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAg
QWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhl
IEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2lu
Y2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlICJjb21tb25fdmlk
ZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVf
c3BzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9idWZmZXIuaCIKKyNpbmNsdWRl
ICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25hbWVzcGFjZSB7Cit0eXBlZGVmIGFic2w6Om9wdGlv
bmFsPHdlYnJ0Yzo6SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IE9wdGlvbmFsU3BzOworCisjZGVm
aW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAg
ICAgICAgXAorICAgIHJldHVybiBPcHRpb25hbFNwcygpOyAgICAgICBcCisgIH0KK30gIC8vIG5h
bWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworSDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU6
OlNwc1N0YXRlKCkgPSBkZWZhdWx0OworCisvLyBHZW5lcmFsIG5vdGU6IHRoaXMgaXMgYmFzZWQg
b2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2YgdGhlIEguMjY1IHN0YW5kYXJkLgorLy8gWW91IGNh
biBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMt
SC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFNQUyBzdGF0ZSBmcm9tIHRoZSBzdXBw
bGllZCBidWZmZXIuCithYnNsOjpvcHRpb25hbDxIMjY1U3BzUGFyc2VyOjpTcHNTdGF0ZT4gSDI2
NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICBzaXpl
X3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgy
NjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVy
KHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1
cm4gUGFyc2VTcHNVcFRvVnVpKCZiaXRfYnVmZmVyKTsKK30KKworYWJzbDo6b3B0aW9uYWw8SDI2
NVNwc1BhcnNlcjo6U3BzU3RhdGU+IEgyNjVTcHNQYXJzZXI6OlBhcnNlU3BzVXBUb1Z1aSgKKyAg
ICBydGM6OkJpdEJ1ZmZlciogYnVmZmVyKSB7CisgIC8vIE5vdywgd2UgbmVlZCB0byB1c2UgYSBi
aXQgYnVmZmVyIHRvIHBhcnNlIHRocm91Z2ggdGhlIGFjdHVhbCBIRVZDIFNQUworICAvLyBmb3Jt
YXQuIFNlZSBTZWN0aW9uIDcuMy4yLjIuMSAoIkdlbmVyYWwgc2VxdWVuY2UgcGFyYW1ldGVyIHNl
dCBkYXRhCisgIC8vIHN5bnRheCIpIG9mIHRoZSBILjI2NSBzdGFuZGFyZCBmb3IgYSBjb21wbGV0
ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2luY2Ugd2Ugb25seSBjYXJlIGFib3V0IHJlc29sdXRpb24s
IHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkgb2YgZmllbGRzLCBidXQKKyAgLy8gd2Ugc3RpbGwgaGF2
ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJvdWdoIGEgbG90IG9mIHRoZSBkYXRhLCBzaW5jZSBtYW55
IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2ZSB2YXJpYWJsZSBzaXplLgorICAvLyBXZSdyZSBwYXJ0
aWN1bGFybHkgaW50ZXJlc3RlZCBpbjoKKyAgLy8gY2hyb21hX2Zvcm1hdF9pZGMgLT4gYWZmZWN0
cyBjcm9wIHVuaXRzCisgIC8vIHBpY197d2lkdGgsaGVpZ2h0fV8qIC0+IHJlc29sdXRpb24gb2Yg
dGhlIGZyYW1lIGluIG1hY3JvYmxvY2tzICgxNngxNikuCisgIC8vIGZyYW1lX2Nyb3BfKl9vZmZz
ZXQgLT4gY3JvcCBpbmZvcm1hdGlvbgorCisgIFNwc1N0YXRlIHNwczsKKworICAvLyBUaGUgZ29s
b21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNvbnN1bWUuCisgIHVpbnQzMl90
IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzIG9w
dGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9ucworICAvLyBhYm91dCB0aGUg
Q2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2UgdHJlYXQgY3JvcCBjb29yZGlu
YXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgPSAwOworCisgIC8v
IGNocm9tYV9mb3JtYXRfaWRjIHdpbGwgYmUgQ2hyb21hQXJyYXlUeXBlIGlmIHNlcGFyYXRlX2Nv
bG91cl9wbGFuZV9mbGFnIGlzCisgIC8vIDAuIEl0IGRlZmF1bHRzIHRvIDEsIHdoZW4gbm90IHNw
ZWNpZmllZC4KKyAgdWludDMyX3QgY2hyb21hX2Zvcm1hdF9pZGMgPSAxOworCisgIC8vIHNwc192
aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIHVpbnQzMl90IHNwc192aWRlb19wYXJhbWV0
ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygm
c3BzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQpKTsKKyAgLy8gc3BzX21heF9zdWJfbGF5ZXJz
X21pbnVzMTogdSgzKQorICB1aW50MzJfdCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxID0gMDsK
KyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmc3BzX21heF9zdWJfbGF5
ZXJzX21pbnVzMSwgMykpOworICAvLyBzcHNfdGVtcG9yYWxfaWRfbmVzdGluZ19mbGFnOiB1KDEp
CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJpdHMoMSkpOworICAvLyBw
cm9maWxlX3RpZXJfbGV2ZWwoMSwgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSkuIFdlIGFyZSBh
Y3V0YWxseSBub3QKKyAgLy8gdXNpbmcgdGhlbSwgc28gcmVhZC9za2lwIG92ZXIgaXQuCisgIC8v
IGdlbmVyYWxfcHJvZmlsZV9zcGFjZStnZW5lcmFsX3RpZXJfZmxhZytnZW5lcmFsX3ByZmlsZV9p
ZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkp
OworICAvLyBnZW5lcmFsX3Byb2ZpbGVfY29tcGF0YWJpbGl0aXlfZmxhZ1szMl0KKyAgUkVUVVJO
X0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoNCkpOworICAvLyBnZW5lcmFsX3By
b2dyZXNzaXZlX3NvdXJjZV9mbGFnICsgaW50ZXJsYWNlZF9zb3VyY2VfZmxhZysKKyAgLy8gbm9u
LXBhY2tlZF9jb25zdHJhaW50IGZsYWcgKyBmcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzogdSg0
KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQpKTsKKyAgLy8g
Z2VuZXJhbF9wcm9maWxlX2lkYyBkZWNpZGVkIGZsYWdzIG9yIHJlc2VydmVkLiAgdSg0MykKKyAg
UkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0cyg0MykpOworICAvLyBnZW5l
cmFsX2luYmxkX2ZsYWcgb3IgcmVzZXJ2ZWQgMDogdSgxKQorICBSRVRVUk5fRU1QVFlfT05fRkFJ
TChidWZmZXItPkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkK
KyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBp
ZiBtYXhfc3ViX2xheWVyc19taW51czEgPj0xLCByZWFkIHRoZSBzdWJsYXllciBwcm9maWxlIGlu
Zm9ybWF0aW9uCisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJfbGF5ZXJfcHJvZmlsZV9wcmVz
ZW50X2ZsYWdzOworICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gc3ViX2xheWVyX2xldmVsX3ByZXNl
bnRfZmxhZ3M7CisgIHVpbnQzMl90IHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQgPSAwOworICB1
aW50MzJfdCBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCA9IDA7CisgIGZvciAodWludDMyX3QgaSA9
IDA7IGkgPCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBpKyspIHsKKyAgICAvLyBzdWJsYXll
cl9wcm9maWxlX3ByZXNlbnRfZmxhZyBhbmQgc3VibGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAg
dSgyKQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEJpdHMoJnN1Yl9sYXll
cl9wcm9maWxlX3ByZXNlbnQsIDEpKTsKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXIt
PlJlYWRCaXRzKCZzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCwgMSkpOworICAgIHN1Yl9sYXllcl9w
cm9maWxlX3ByZXNlbnRfZmxhZ3MucHVzaF9iYWNrKHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQp
OworICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJf
bGV2ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNwc19tYXhfc3ViX2xheWVyc19taW51czEgPiAw
KSB7CisgICAgZm9yICh1aW50MzJfdCBqID0gc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTsgaiA8
IDg7IGorKykgeworICAgICAgLy8gcmVzZXJ2ZWQgMiBiaXRzOiB1KDIpCisgICAgICBSRVRVUk5f
RU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDIpKTsKKyAgICB9CisgIH0KKyAgZm9y
ICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGsrKykgewor
ICAgIGlmIChzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdzW2tdKSB7ICAvLworICAgICAg
Ly8gc3ViX2xheWVyIHByb2ZpbGVfc3BhY2UvdGllcl9mbGFnL3Byb2ZpbGVfaWRjLiBpZ25vcmVk
LiB1KDgpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRlcygx
KSk7CisgICAgICAvLyBwcm9maWxlX2NvbXBhdGFiaWxpdHlfZmxhZzogIHUoMzIpCisgICAgICBS
RVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRlcyg0KSk7CisgICAgICAvLyBz
dWJfbGF5ZXIgcHJvZ3Jlc3NpdmVfc291cmNlX2ZsYWcvaW50ZXJsYWNlZF9zb3VyY2VfZmxhZy8K
KyAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2ZyYW1lX29ubHlfY29uc3RyYWlu
dF9mbGFnOiB1KDQpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVC
aXRzKDQpKTsKKyAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFyZSBwcm9maWxlX2lkYyBzcGVj
aWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4KKyAgICAgIC8vIHUoNDMpCisgICAgICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQzKSk7CisgICAgICAvLyAxLWJp
dCBwcm9maWxlX2lkYyBzcGVjaWZpYyBpbmJsZCBmbGFnLiAgV2Ugc2ltcGx5IHJlYWQvc2tpcCBp
dC4gdSgxKQorICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0cygx
KSk7CisgICAgfQorICAgIGlmIChzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnc1trXSkgewor
ICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAgICAgUkVUVVJOX0VNUFRZX09O
X0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkpOworICAgIH0KKyAgfQorICAvLyBzcHNfc2Vx
X3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+
UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAvLyBjaHJvbWVfZm9y
bWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkRXhwb25l
bnRpYWxHb2xvbWIoJmNocm9tYV9mb3JtYXRfaWRjKSk7CisgIGlmIChjaHJvbWFfZm9ybWF0X2lk
YyA9PSAzKSB7CisgICAgLy8gc2VwZXJhdGVfY29sb3VyX3BsYW5lX2ZsYWc6IHUoMSkKKyAgICBS
RVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZzZXBhcmF0ZV9jb2xvdXJfcGxh
bmVfZmxhZywgMSkpOworICB9CisgIHVpbnQzMl90IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMg
PSAwOworICB1aW50MzJfdCBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcyA9IDA7CisgIC8vIHBp
Y193aWR0aF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAor
ICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBpY193aWR0aF9pbl9sdW1hX3Nh
bXBsZXMpKTsKKyAgLy8gcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBp
Y19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzKSk7CisgIC8vIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFn
OiB1KDEpCisgIHVpbnQzMl90IGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnID0gMDsKKyAgUkVUVVJO
X0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcs
IDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNldCA9IDA7CisgIHVpbnQzMl90
IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3RvcF9vZmZz
ZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zmc2V0ID0gMDsKKyAgaWYgKGNv
bmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAgLy8gY29uZl93aW5fbGVmdF9vZmZzZXQ6IHVl
KHYpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xv
bWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7CisgICAgLy8gY29uZl93aW5fcmlnaHRfb2Zmc2V0
OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFs
R29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAvLyBjb25mX3dpbl90b3Bfb2Zm
c2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50
aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAgLy8gY29uZl93aW5fYm90dG9t
X29mZnNldDogdWUodikKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgYnVmZmVy
LT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2JvdHRvbV9vZmZzZXQpKTsKKyAgfQor
CisgIC8vIEZhciBlbm91Z2ghIFdlIGRvbid0IHVzZSB0aGUgcmVzdCBvZiB0aGUgU1BTLgorCisg
IHNwcy52cHNfaWQgPSBzcHNfdmlkZW9fcGFyYW1ldGVyX3NldF9pZDsKKworICAvLyBTdGFydCB3
aXRoIHRoZSByZXNvbHV0aW9uIGRldGVybWluZWQgYnkgdGhlIHBpY193aWR0aC9waWNfaGVpZ2h0
IGZpZWxkcy4KKyAgc3BzLndpZHRoID0gcGljX3dpZHRoX2luX2x1bWFfc2FtcGxlczsKKyAgc3Bz
LmhlaWdodCA9IHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOworCisgIGlmIChjb25mb3JtYW5j
ZV93aW5kb3dfZmxhZykgeworICAgIGludCBzdWJfd2lkdGhfYyA9ICgoMSA9PSBjaHJvbWFfZm9y
bWF0X2lkYykgfHwgKDIgPT0gY2hyb21hX2Zvcm1hdF9pZGMpKSAmJgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKDAgPT0gc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgID8gMgorICAgICAgICAgICAgICAgICAgICAgICAgICA6IDE7Cisg
ICAgaW50IHN1Yl9oZWlnaHRfYyA9CisgICAgICAgICgxID09IGNocm9tYV9mb3JtYXRfaWRjKSAm
JiAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZykgPyAyIDogMTsKKyAgICAvLyB0aGUg
b2Zmc2V0IGluY2x1ZGVzIHRoZSBwaXhlbCB3aXRoaW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBk
b24ndCBuZWVkIHRvCisgICAgLy8gKzEgYXMgcGVyIHNwZWMKKyAgICBzcHMud2lkdGggLT0gc3Vi
X3dpZHRoX2MgKiAoY29uZl93aW5fcmlnaHRfb2Zmc2V0ICsgY29uZl93aW5fbGVmdF9vZmZzZXQp
OworICAgIHNwcy5oZWlnaHQgLT0gc3ViX2hlaWdodF9jICogKGNvbmZfd2luX3RvcF9vZmZzZXQg
KyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0KTsKKyAgfQorCisgIHJldHVybiBPcHRpb25hbFNwcyhz
cHMpOworfQorCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nw
c19wYXJzZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nv
bW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwZjg2YjY5ODMy
NjMxYmU3MjU2OWI5YWUyMGJjMmM2MGI4MDkyNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1
X3Nwc19wYXJzZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAx
OCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisg
KiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGlj
ZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJv
b3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHBy
b3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRT
LiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4g
dGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKwor
I2lmbmRlZiBDT01NT05fVklERU9fSDI2NV9IMjY1X1NQU19QQVJTRVJfSF8KKyNkZWZpbmUgQ09N
TU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VSX0hfCisKKyNpbmNsdWRlICJhYnNsL3R5cGVz
L29wdGlvbmFsLmgiCisKK25hbWVzcGFjZSBydGMgeworY2xhc3MgQml0QnVmZmVyOworfQorCitu
YW1lc3BhY2Ugd2VicnRjIHsKKworLy8gQSBjbGFzcyBmb3IgcGFyc2luZyBvdXQgc2VxdWVuY2Ug
cGFyYW1ldGVyIHNldCAoU1BTKSBkYXRhIGZyb20gYW4gSDI2NSBOQUxVLgorY2xhc3MgSDI2NVNw
c1BhcnNlciB7CisgcHVibGljOgorICAvLyBUaGUgcGFyc2VkIHN0YXRlIG9mIHRoZSBTUFMuIE9u
bHkgc29tZSBzZWxlY3QgdmFsdWVzIGFyZSBzdG9yZWQuCisgIC8vIEFkZCBtb3JlIGFzIHRoZXkg
YXJlIGFjdHVhbGx5IG5lZWRlZC4KKyAgc3RydWN0IFNwc1N0YXRlIHsKKyAgICBTcHNTdGF0ZSgp
OworCisgICAgdWludDMyX3Qgd2lkdGggPSAwOworICAgIHVpbnQzMl90IGhlaWdodCA9IDA7Cisg
ICAgdWludDMyX3QgZGVsdGFfcGljX29yZGVyX2Fsd2F5c196ZXJvX2ZsYWcgPSAwOworICAgIHVp
bnQzMl90IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnID0gMDsKKyAgICB1aW50MzJfdCBmcmFt
ZV9tYnNfb25seV9mbGFnID0gMDsKKyAgICB1aW50MzJfdCBsb2cyX21heF9mcmFtZV9udW1fbWlu
dXM0ID0gMDsKKyAgICB1aW50MzJfdCBsb2cyX21heF9waWNfb3JkZXJfY250X2xzYl9taW51czQg
PSAwOworICAgIHVpbnQzMl90IHBpY19vcmRlcl9jbnRfdHlwZSA9IDA7CisgICAgdWludDMyX3Qg
bWF4X251bV9yZWZfZnJhbWVzID0gMDsKKyAgICB1aW50MzJfdCB2dWlfcGFyYW1zX3ByZXNlbnQg
PSAwOworICAgIHVpbnQzMl90IGlkID0gMDsKKyAgICB1aW50MzJfdCB2cHNfaWQgPSAwOworICB9
OworCisgIC8vIFVucGFjayBSQlNQIGFuZCBwYXJzZSBTUFMgc3RhdGUgZnJvbSB0aGUgc3VwcGxp
ZWQgYnVmZmVyLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3BzU3RhdGU+IFBhcnNlU3BzKGNv
bnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworCisgcHJvdGVjdGVkOgorICAvLyBQ
YXJzZSB0aGUgU1BTIHN0YXRlLCB1cCB0aWxsIHRoZSBWVUkgcGFydCwgZm9yIGEgYml0IGJ1ZmZl
ciB3aGVyZSBSQlNQCisgIC8vIGRlY29kaW5nIGhhcyBhbHJlYWR5IGJlZW4gcGVyZm9ybWVkLgor
ICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3BzU3RhdGU+IFBhcnNlU3BzVXBUb1Z1aShydGM6OkJp
dEJ1ZmZlciogYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKyNlbmRpZiAg
Ly8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VSX0hfCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9o
MjY1X3Zwc19wYXJzZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuY2MKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM5
MWFlNTFkZjBmOTA4OTAxNmI0OTg4NGMxNWYyYzE0MThkNTRlNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9o
MjY1L2gyNjVfdnBzX3BhcnNlci5jYwpAQCAtMCwwICsxLDYyIEBACisvKgorICogIENvcHlyaWdo
dCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt
c3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUg
aW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxs
ZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmls
ZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUg
Zm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUu
CisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRl
ICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRl
by9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9idWZmZXIu
aCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25hbWVzcGFjZSB7Cit0eXBlZGVm
IGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU+IE9wdGlvbmFs
VnBzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsg
ICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBPcHRpb25hbFZwcygpOyAgICAgICBcCisg
IH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworSDI2NVZwc1BhcnNl
cjo6VnBzU3RhdGU6OlZwc1N0YXRlKCkgPSBkZWZhdWx0OworCisvLyBHZW5lcmFsIG5vdGU6IHRo
aXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2YgdGhlIEguMjY1IHN0YW5kYXJk
LgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8vIGh0dHA6Ly93d3cuaXR1Lmlu
dC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFNQUyBzdGF0ZSBm
cm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNsOjpvcHRpb25hbDxIMjY1VnBzUGFyc2VyOjpW
cHNTdGF0ZT4gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAgY29uc3QgdWludDhfdCogZGF0
YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2Vk
X2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZl
ciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXpl
KCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5hbCgmYml0X2J1ZmZlcik7Cit9CisKK2Fic2w6Om9w
dGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiBIMjY1VnBzUGFyc2VyOjpQYXJzZUludGVy
bmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBidWZmZXIpIHsKKyAgLy8gTm93LCB3ZSBuZWVkIHRv
IHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhyb3VnaCB0aGUgYWN0dWFsIEhFVkMgVlBTCisg
IC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIuMSAoIlZpZGVvIHBhcmFtZXRlciBzZXQgUkJT
UCBzeW50YXgiKSBvZiB0aGUKKyAgLy8gSC4yNjUgc3RhbmRhcmQgZm9yIGEgY29tcGxldGUgZGVz
Y3JpcHRpb24uCisKKyAgVnBzU3RhdGUgdnBzOworCisgIC8vIHZwc192aWRlb19wYXJhbWV0ZXJf
c2V0X2lkOiB1KDQpCisgIHVpbnQzMl90IHZwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkID0gMDsK
KyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmdnBzX3ZpZGVvX3BhcmFt
ZXRlcl9zZXRfaWQsIDQpKTsKKworICB2cHMuaWQgPSB2cHNfdmlkZW9fcGFyYW1ldGVyX3NldF9p
ZDsKKyAgdnBzLmlkID0gMDsKKyAgcmV0dXJuIE9wdGlvbmFsVnBzKHZwcyk7Cit9CisKK30gIC8v
IG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV92cHNfcGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThhMjc3NWY0M2RmMTdkMThlMDlkYzQwMDdl
NjIzYTYzMjA4NWE3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oCkBA
IC0wLDAgKzEsNDMgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJv
amVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBj
YW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNl
CisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdy
YW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0
aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxl
IGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIENPTU1PTl9W
SURFT19IMjY1X0gyNjVfVlBTX1BBUlNFUl9IXworI2RlZmluZSBDT01NT05fVklERU9fSDI2NV9I
MjY1X1ZQU19QQVJTRVJfSF8KKworI2luY2x1ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKKwor
bmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBCaXRCdWZmZXI7Cit9CisKK25hbWVzcGFjZSB3ZWJydGMg
eworCisvLyBBIGNsYXNzIGZvciBwYXJzaW5nIG91dCBzZXF1ZW5jZSBwYXJhbWV0ZXIgc2V0IChW
UFMpIGRhdGEgZnJvbSBhbiBIMjY1IE5BTFUuCitjbGFzcyBIMjY1VnBzUGFyc2VyIHsKKyBwdWJs
aWM6CisgIC8vIFRoZSBwYXJzZWQgc3RhdGUgb2YgdGhlIFZQUy4gT25seSBzb21lIHNlbGVjdCB2
YWx1ZXMgYXJlIHN0b3JlZC4KKyAgLy8gQWRkIG1vcmUgYXMgdGhleSBhcmUgYWN0dWFsbHkgbmVl
ZGVkLgorICBzdHJ1Y3QgVnBzU3RhdGUgeworICAgIFZwc1N0YXRlKCk7CisKKyAgICB1aW50MzJf
dCBpZCA9IDA7CisgIH07CisKKyAgLy8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFZQUyBzdGF0ZSBm
cm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCisgIHN0YXRpYyBhYnNsOjpvcHRpb25hbDxWcHNTdGF0
ZT4gUGFyc2VWcHMoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGxlbmd0aCk7CisKKyBwcm90
ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBWUFMgc3RhdGUsIGZvciBhIGJpdCBidWZmZXIgd2hlcmUg
UkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisgIC8vIHBlcmZvcm1lZC4KKyAgc3RhdGlj
IGFic2w6Om9wdGlvbmFsPFZwc1N0YXRlPiBQYXJzZUludGVybmFsKHJ0Yzo6Qml0QnVmZmVyKiBi
aXRfYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKyNlbmRpZiAgLy8gQ09N
TU9OX1ZJREVPX0gyNjVfSDI2NV9WUFNfUEFSU0VSX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50
cy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jh
c2UvbWVkaWFfY29uc3RhbnRzLmNjCmluZGV4IDViZDRiNzU0ZDI0NzBlZDQxYTA3NzQxMzVhNGRj
MTFjZTQxMzllMTAuLmQ5OTM5ZDY2MTE3MWM5ZTgxYjE1YzI1MjJmNzUzZDg4YzNiODNiMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlh
L2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCkBAIC0xMDYsNiAr
MTA2LDkgQEAgY29uc3QgY2hhciBrQ29tZm9ydE5vaXNlQ29kZWNOYW1lW10gPSAiQ04iOwogY29u
c3QgY2hhciBrVnA4Q29kZWNOYW1lW10gPSAiVlA4IjsKIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFt
ZVtdID0gIlZQOSI7CiBjb25zdCBjaGFyIGtIMjY0Q29kZWNOYW1lW10gPSAiSDI2NCI7CisjaWZk
ZWYgUlRDX0VOQUJMRV9IMjY1Citjb25zdCBjaGFyIGtIMjY1Q29kZWNOYW1lW10gPSAiSDI2NSI7
CisjZW5kaWYKIAogLy8gUkZDIDYxODQgUlRQIFBheWxvYWQgRm9ybWF0IGZvciBILjI2NCB2aWRl
bwogY29uc3QgY2hhciBrSDI2NEZtdHBQcm9maWxlTGV2ZWxJZFtdID0gInByb2ZpbGUtbGV2ZWwt
aWQiOwpAQCAtMTEzLDYgKzExNiwxMyBAQCBjb25zdCBjaGFyIGtIMjY0Rm10cExldmVsQXN5bW1l
dHJ5QWxsb3dlZFtdID0gImxldmVsLWFzeW1tZXRyeS1hbGxvd2VkIjsKIGNvbnN0IGNoYXIga0gy
NjRGbXRwUGFja2V0aXphdGlvbk1vZGVbXSA9ICJwYWNrZXRpemF0aW9uLW1vZGUiOwogY29uc3Qg
Y2hhciBrSDI2NEZtdHBTcHJvcFBhcmFtZXRlclNldHNbXSA9ICJzcHJvcC1wYXJhbWV0ZXItc2V0
cyI7CiBjb25zdCBjaGFyIGtIMjY0UHJvZmlsZUxldmVsQ29uc3RyYWluZWRCYXNlbGluZVtdID0g
IjQyZTAxZiI7CisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisvLyBSRkMgNzc5OCBSVFAgUGF5bG9h
ZCBGb3JtYXQgZm9yIEguMjY1IHZpZGVvCitjb25zdCBjaGFyIGtIMjY1Rm10cFByb2ZpbGVTcGFj
ZVtdID0gInByb2ZpbGUtc3BhY2UiOworY29uc3QgY2hhciBrSDI2NUZtdHBQcm9maWxlSWRbXSA9
ICJwcm9maWxlLWlkIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwVGllckZsYWdbXSA9ICJ0aWVyLWZs
YWciOworY29uc3QgY2hhciBrSDI2NUZtdHBMZXZlbElkW10gPSAibGV2ZWwtaWQiOworI2VuZGlm
CiAKIGNvbnN0IGludCBrRGVmYXVsdFZpZGVvTWF4RnJhbWVyYXRlID0gNjA7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2Uv
bWVkaWFfY29uc3RhbnRzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oCmluZGV4IDEzNmU5ZjE5YTAwYzJmODcz
YWE5YzFiZGE4M2FlNDU1MDM3M2U2MzkuLjQwNWE5MTg2NGMyNzJkYzgyMWE4NGYxY2I3ZDAyZmI0
ZmRmNDlhZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmgKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaApA
QCAtMTM1LDYgKzEzNSw5IEBAIGV4dGVybiBjb25zdCBjaGFyIGtDb21mb3J0Tm9pc2VDb2RlY05h
bWVbXTsKIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga1ZwOENvZGVjTmFtZVtdOwogUlRD
X0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrVnA5Q29kZWNOYW1lW107CiBSVENfRVhQT1JUIGV4
dGVybiBjb25zdCBjaGFyIGtIMjY0Q29kZWNOYW1lW107CisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1
CitSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY1Q29kZWNOYW1lW107CisjZW5kaWYK
IAogLy8gUkZDIDYxODQgUlRQIFBheWxvYWQgRm9ybWF0IGZvciBILjI2NCB2aWRlbwogUlRDX0VY
UE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NEZtdHBQcm9maWxlTGV2ZWxJZFtdOwpAQCAtMTQz
LDYgKzE0NiwxMyBAQCBSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY0Rm10cFBhY2tl
dGl6YXRpb25Nb2RlW107CiBleHRlcm4gY29uc3QgY2hhciBrSDI2NEZtdHBTcHJvcFBhcmFtZXRl
clNldHNbXTsKIGV4dGVybiBjb25zdCBjaGFyIGtIMjY0UHJvZmlsZUxldmVsQ29uc3RyYWluZWRC
YXNlbGluZVtdOwogCisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisvLyBSRkMgNzc5OCBSVFAgUGF5
bG9hZCBGb3JtYXQgZm9yIEguMjY1IHZpZGVvCitSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFy
IGtIMjY1Rm10cFByb2ZpbGVTcGFjZVtdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBr
SDI2NUZtdHBQcm9maWxlSWRbXTsKK1JUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjVG
bXRwVGllckZsYWdbXTsKK1JUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjVGbXRwTGV2
ZWxJZFtdOworI2VuZGlmCiBleHRlcm4gY29uc3QgaW50IGtEZWZhdWx0VmlkZW9NYXhGcmFtZXJh
dGU7CiAKIGV4dGVybiBjb25zdCBzaXplX3Qga0NvbmZlcmVuY2VNYXhOdW1TcGF0aWFsTGF5ZXJz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
bW9kdWxlcy9ydHBfcnRjcC9CVUlMRC5nbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24KaW5kZXggNzNmMzc4ZjhkOTY0
ZmVlZTIwMjY1MDEyNDcyMjM5MjJjODM5MGE3Ni4uZTZkZjUxZDUyZDU1ZTdhMzA5Zjg4YjgyYzBj
NTE5MGQwNTE4Y2U4OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL0JVSUxELmduCkBA
IC0yMDksNiArMjA5LDE3IEBAIHJ0Y19zdGF0aWNfbGlicmFyeSgicnRwX3J0Y3AiKSB7CiAgICAg
ZGVmaW5lcyA9IFsgIkJXRV9URVNUX0xPR0dJTkdfQ09NUElMRV9USU1FX0VOQUJMRT0wIiBdCiAg
IH0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisgICAgICAic291
cmNlL3J0cF9mb3JtYXRfaDI2NS5jYyIsCisgICAgICAic291cmNlL3J0cF9mb3JtYXRfaDI2NS5o
IiwKKyAgICBdCisgIH0KKworICBpZiAoIXJ0Y191c2VfaDI2NSkgeworICAgIGRlZmluZXMgKz0g
WyJESVNBQkxFX0gyNjUiXQorICB9CisKICAgZGVwcyA9IFsKICAgICAiOnJ0cF9ydGNwX2Zvcm1h
dCIsCiAgICAgIjpydHBfdmlkZW9faGVhZGVyIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2gyNjVf
c3BzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2gyNjVfc3BzX3BhcnNlci5jYwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YjY5YmFiMmE2Y2Q2NzUxNGI4NDQ2NWE2OGVlZDkwYWVjOTc4NTYwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMTg5IEBACisvKgorICog
SW50ZWwgTGljZW5zZQorICovCisKKyNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9z
b3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgiCisKKyNpbmNsdWRlICJydGNfYmFzZS9iaXRfYnVmZmVy
LmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvYnl0ZV9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFz
ZS9sb2dnaW5nLmgiCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNkZWZpbmUgUkVUVVJOX0ZBTFNF
X09OX0ZBSUwoeCkgXAorICBpZiAoISh4KSkgeyAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0
dXJuIGZhbHNlOyAgICAgICAgICAgICAgIFwKKyAgfQorCituYW1lc3BhY2Ugd2VicnRjIHsKKwor
SDI2NVNwc1BhcnNlcjo6SDI2NVNwc1BhcnNlcihjb25zdCB1aW50OF90KiBzcHMsIHNpemVfdCBi
eXRlX2xlbmd0aCkKKyAgICA6IHNwc18oc3BzKSwgYnl0ZV9sZW5ndGhfKGJ5dGVfbGVuZ3RoKSwg
d2lkdGhfKCksIGhlaWdodF8oKSB7Cit9CisKK2Jvb2wgSDI2NVNwc1BhcnNlcjo6UGFyc2UoKSB7
CisgIC8vIEdlbmVyYWwgbm90ZTogdGhpcyBpcyBiYXNlZCBvZmYgdGhlIDA0LzIwMTUgdmVyc2lv
biBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIC8vIFlvdSBjYW4gZmluZCBpdCBvbiB0aGlzIHBh
Z2U6CisgIC8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworICBjb25zdCBj
aGFyKiBzcHNfYnl0ZXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcHNfKTsKKyAg
Ly8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBi
dWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgw
MCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3
LjMuMS4xIG9mIHRoZSBILjI2NSBzdGFuZGFyZCwgc2ltaWxhciB0byBIMjY0LgorICBydGM6OkJ5
dGVCdWZmZXJXcml0ZXIgcmJzcF9idWZmZXI7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYnl0
ZV9sZW5ndGhfOykgeworICAgIC8vIEJlIGNhcmVmdWwgYWJvdXQgb3Zlci91bmRlcmZsb3cgaGVy
ZS4gYnl0ZV9sZW5ndGhfIC0gMyBjYW4gdW5kZXJmbG93LCBhbmQKKyAgICAvLyBpICsgMyBjYW4g
b3ZlcmZsb3csIGJ1dCBieXRlX2xlbmd0aF8gLSBpIGNhbid0LCBiZWNhdXNlIGkgPCBieXRlX2xl
bmd0aF8KKyAgICAvLyBhYm92ZSwgYW5kIHRoYXQgZXhwcmVzc2lvbiB3aWxsIHByb2R1Y2UgdGhl
IG51bWJlciBvZiBieXRlcyBsZWZ0IGluCisgICAgLy8gdGhlIHN0cmVhbSBpbmNsdWRpbmcgdGhl
IGJ5dGUgYXQgaS4KKyAgICBpZiAoYnl0ZV9sZW5ndGhfIC0gaSA+PSAzICYmIHNwc19baV0gPT0g
MCAmJiBzcHNfW2kgKyAxXSA9PSAwICYmCisgICAgICAgIHNwc19baSArIDJdID09IDMpIHsKKyAg
ICAgIC8vIFR3byByYnNwIGJ5dGVzICsgdGhlIGVtdWxhdGlvbiBieXRlLgorICAgICAgcmJzcF9i
dWZmZXIuV3JpdGVCeXRlcyhzcHNfYnl0ZXMgKyBpLCAyKTsKKyAgICAgIGkgKz0gMzsKKyAgICB9
IGVsc2UgeworICAgICAgLy8gU2luZ2xlIHJic3AgYnl0ZS4KKyAgICAgIHJic3BfYnVmZmVyLldy
aXRlQnl0ZXMoc3BzX2J5dGVzICsgaSwgMSk7CisgICAgICBpKys7CisgICAgfQorICB9CisKKyAg
Ly8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhyb3VnaCB0aGUg
YWN0dWFsIEhFVkMgU1BTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIuMS4xICgiU2Vx
dWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhIHN5bnRheCIpIG9mIHRoZQorICAvLyBILjI2NSBzdGFu
ZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2luY2Ugd2Ugb25seSBjYXJl
IGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkgb2YgZmllbGRzLCBidXQK
KyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJvdWdoIGEgbG90IG9mIHRo
ZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2ZSB2YXJpYWJsZSBzaXpl
LgorICAvLyBVbmxpa2UgSDI2NCwgZm9yIEgyNjUsIHRoZSBwaWN0dXJlIHNpemUgaXMgaW5kaWNh
dGVkIGJ5IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMKKyAgLy8gYW5kIHBpY19oZWlnaHRfaW5f
bHVtYV9zYW1wbGVzLCAgaWYgY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcgIT0xOworICAvLyBXaGVu
IGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnIGlzIDEsICB0aGUgd2lkdGggaXMgYWRqdXN0ZWQgd2l0
aCBjb25fd2luX3h4X29mZnNldAorICAvLworICBydGM6OkJpdEJ1ZmZlciBwYXJzZXIocmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4ocmJzcF9idWZmZXIuRGF0YSgpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJic3BfYnVmZmVyLkxlbmd0aCgpKTsKKworICAvLyBUaGUgZ29sb21i
IHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNvbnN1bWUuCisgIHVpbnQzMl90IGdv
bG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzIG9wdGlv
bmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9ucworICAvLyBhYm91dCB0aGUgQ2hy
b21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2UgdHJlYXQgY3JvcCBjb29yZGluYXRl
cy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgPSAwOworICAvLyBjaHJv
bWFfZm9ybWF0X2lkYyB3aWxsIGJlIENocm9tYUFycmF5VHlwZSBpZiBzZXBhcmF0ZV9jb2xvdXJf
cGxhbmVfZmxhZyBpcworICAvLyAwLiBJdCBkZWZhdWx0cyB0byAxLCB3aGVuIG5vdCBzcGVjaWZp
ZWQuCisgIHVpbnQzMl90IGNocm9tYV9mb3JtYXRfaWRjID0gMTsKKworCisgIC8vIHNwc192aWRl
b19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5D
b25zdW1lQml0cyg0KSk7CisgIC8vIHNwc19tYXhfc3ViX2xheWVyc19taW51czE6IHUoMykKKyAg
dWludDMyX3Qgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSA9IDA7CisgIFJFVFVSTl9GQUxTRV9P
Tl9GQUlMKHBhcnNlci5SZWFkQml0cygmc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSwgMykpOwor
ICAvLyBzcHNfdGVtcG9yYWxfaWRfbmVzdGluZ19mbGFnOiB1KDEpCisgIFJFVFVSTl9GQUxTRV9P
Tl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygxKSk7CisgIC8vIHByb2ZpbGVfdGllcl9sZXZlbCgx
LCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxKS4gV2UgYXJlIGFjdXRhbGx5IG5vdAorICAvLyB1
c2luZyB0aGVtLCBzbyByZWFkL3NraXAgb3ZlciBpdC4KKyAgLy8gZ2VuZXJhbF9wcm9maWxlX3Nw
YWNlK2dlbmVyYWxfdGllcl9mbGFnK2dlbmVyYWxfcHJmaWxlX2lkYzogdSg4KQorICBSRVRVUk5f
RkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDEpKTsKKyAgLy8gZ2VuZXJhbF9wcm9m
aWxlX2NvbXBhdGFiaWxpdGl5X2ZsYWdbMzJdCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNl
ci5Db25zdW1lQnl0ZXMoNCkpOworICAvLyBnZW5lcmFsX3Byb2dyZXNzaXZlX3NvdXJjZV9mbGFn
ICsgaW50ZXJsYWNlZF9zb3VyY2VfZmxhZysgbm9uLXBhY2tlZF9jb25zdHJhaW50CisgIC8vIGZs
YWcgKyBmcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzogdSg0KQorICBSRVRVUk5fRkFMU0VfT05f
RkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNCkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVfaWRjIGRl
Y2lkZWQgZmxhZ3Mgb3IgcmVzZXJ2ZWQuICB1KDQzKQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChw
YXJzZXIuQ29uc3VtZUJpdHMoNDMpKTsKKyAgLy8gZ2VuZXJhbF9pbmJsZF9mbGFnIG9yIHJlc2Vy
dmVkIDA6IHUoMSkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDEp
KTsKKyAgLy8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwo
cGFyc2VyLkNvbnN1bWVCeXRlcygxKSk7CisgIC8vIGlmIG1heF9zdWJfbGF5ZXJzX21pbnVzMSA+
PTEsIHJlYWQgdGhlIHN1YmxheWVyIHByb2ZpbGUgaW5mb3JtYXRpb24KKyAgc3RkOjp2ZWN0b3I8
dWludDMyX3Q+IHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3M7CisgIHN0ZDo6dmVjdG9y
PHVpbnQzMl90PiBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnczsKKyAgdWludDMyX3Qgc3Vi
X2xheWVyX3Byb2ZpbGVfcHJlc2VudCA9IDA7CisgIHVpbnQzMl90IHN1Yl9sYXllcl9sZXZlbF9w
cmVzZW50ID0gMDsKKyAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHNwc19tYXhfc3ViX2xheWVy
c19taW51czE7IGkrKykgeworICAgICAgLy9zdWJsYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZyBh
bmQgc3VibGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAgICAgUkVUVVJOX0ZBTFNF
X09OX0ZBSUwocGFyc2VyLlJlYWRCaXRzKCZzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50LCAxKSk7
CisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEJpdHMoJnN1Yl9sYXllcl9s
ZXZlbF9wcmVzZW50LCAxKSk7CisgICAgICBzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdz
LnB1c2hfYmFjayhzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50KTsKKyAgICAgIHN1Yl9sYXllcl9s
ZXZlbF9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCk7Cisg
IH0KKyAgaWYgKHNwc19tYXhfc3ViX2xheWVyc19taW51czEgPiAwKSB7CisgICAgICBmb3IgKHVp
bnQzMl90IGogPSBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBqIDwgODsgaisrKSB7CisgICAg
ICAgIC8vIHJlc2VydmVkIDIgYml0czogdSgyKQorICAgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9G
QUlMKHBhcnNlci5Db25zdW1lQml0cygyKSk7CisgICAgICB9CisgIH0KKyAgZm9yICh1aW50MzJf
dCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGsrKykgeworICAgICAgaWYo
c3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnc1trXSkgey8vCisgICAgICAgIC8vIHN1Yl9s
YXllciBwcm9maWxlX3NwYWNlL3RpZXJfZmxhZy9wcm9maWxlX2lkYy4gaWdub3JlZC4gdSg4KQor
ICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDEpKTsKKyAg
ICAgICAgLy8gcHJvZmlsZV9jb21wYXRhYmlsaXR5X2ZsYWc6ICB1KDMyKQorICAgICAgICBSRVRV
Uk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDQpKTsKKyAgICAgICAgLy8gc3Vi
X2xheWVyIHByb2dyZXNzaXZlX3NvdXJjZV9mbGFnL2ludGVybGFjZWRfc291cmNlX2ZsYWcvCisg
ICAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2ZyYW1lX29ubHlfY29uc3RyYWlu
dF9mbGFnOiB1KDQpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1l
Qml0cyg0KSk7CisgICAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFyZSBwcm9maWxlX2lkYyBz
cGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4gdSg0MykKKyAgICAgICAgUkVUVVJOX0ZB
TFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDQzKSk7CisgICAgICAgIC8vIDEtYml0IHBy
b2ZpbGVfaWRjIHNwZWNpZmljIGluYmxkIGZsYWcuICBXZSBzaW1wbHkgcmVhZC9za2lwIGl0LiB1
KDEpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygxKSk7
CisgICAgICB9CisgICAgICBpZiAoc3ViX2xheWVyX2xldmVsX3ByZXNlbnRfZmxhZ3Nba10pIHsK
KyAgICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAgICAgICAgIFJFVFVSTl9G
QUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoMSkpOworICAgICAgfQorICB9CisgIC8v
c3BzX3NlcV9wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChw
YXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAvLyBjaHJv
bWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRF
eHBvbmVudGlhbEdvbG9tYigmY2hyb21hX2Zvcm1hdF9pZGMpKTsKKyAgaWYgKGNocm9tYV9mb3Jt
YXRfaWRjID09IDMpIHsKKyAgICAvLyBzZXBlcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZzogdSgxKQor
ICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmc2VwYXJhdGVfY29sb3Vy
X3BsYW5lX2ZsYWcsIDEpKTsKKyAgfQorICB1aW50MzJfdCBwaWNfd2lkdGhfaW5fbHVtYV9zYW1w
bGVzID0gMDsKKyAgdWludDMyX3QgcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXMgPSAwOworICAv
LyBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2KQorICBSRVRVUk5fRkFMU0VfT05fRkFJ
TChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVz
KSk7CisgIC8vIHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2KQorICBSRVRVUk5fRkFM
U0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfaGVpZ2h0X2luX2x1
bWFfc2FtcGxlcykpOworICAvLyBjb25mb3JtYW5jZV93aW5kb3dfZmxhZzogdSgxKQorICB1aW50
MzJfdCBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyA9IDA7CisgIFJFVFVSTl9GQUxTRV9PTl9GQUlM
KHBhcnNlci5SZWFkQml0cygmY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcsIDEpKTsKKworICB1aW50
MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3JpZ2h0
X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3RvcF9vZmZzZXQgPSAwOworICB1aW50
MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zmc2V0ID0gMDsKKyAgaWYgKGNvbmZvcm1hbmNlX3dpbmRv
d19mbGFnKSB7CisgICAgICAvLyBjb25mX3dpbl9sZWZ0X29mZnNldDogdWUodikKKyAgICAgIFJF
VFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2lu
X2xlZnRfb2Zmc2V0KSk7CisgICAgICAvLyBjb25mX3dpbl9yaWdodF9vZmZzZXQ6IHVlKHYpCisg
ICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZj
b25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAgIC8vIGNvbmZfd2luX3RvcF9vZmZzZXQ6IHVl
KHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29s
b21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAgICAvLyBjb25mX3dpbl9ib3R0b21fb2Zm
c2V0OiB1ZSh2KQorICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRFeHBvbmVu
dGlhbEdvbG9tYigmY29uZl93aW5fYm90dG9tX29mZnNldCkpOworICB9CisKKyAgLy9Gb3IgZW5v
dWdoIHRvIGdldCB0aGUgcmVzb2x1dGlvbiBpbmZvcm1hdGlvbi4gY2FsY2FsdWF0ZSBhY2NvcmRp
bmcgdG8gSEVWQyBzcGVjIDcuNC4zLjIKKyAgaW50IHdpZHRoID0gMDsKKyAgaW50IGhlaWdodCA9
IDA7CisKKyAgd2lkdGggPSBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOworICBoZWlnaHQgPSBw
aWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczsKKworICBpZiAoY29uZm9ybWFuY2Vfd2luZG93X2Zs
YWcpIHsKKyAgICBpbnQgc3ViX3dpZHRoX2MgPSAoKDEgPT0gY2hyb21hX2Zvcm1hdF9pZGMpIHx8
ICgyID09IGNocm9tYV9mb3JtYXRfaWRjKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICgw
ID09IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnKSA/IDIgOiAxOworICAgIGludCBzdWJfaGVp
Z2h0X2MgPSAoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgJiYgKDAgPT0gc2VwYXJhdGVfY29sb3Vy
X3BsYW5lX2ZsYWcpID8gMiA6IDE7CisgICAgLy90aGUgb2Zmc2V0IGluY2x1ZGVzIHRoZSBwaXhl
bCB3aXRoaW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVkIHRvICsxIGFzIHBlciBz
cGVjCisgICAgd2lkdGggLT0gc3ViX3dpZHRoX2MqKGNvbmZfd2luX3JpZ2h0X29mZnNldCArIGNv
bmZfd2luX2xlZnRfb2Zmc2V0KTsKKyAgICBoZWlnaHQgLT0gc3ViX2hlaWdodF9jKihjb25mX3dp
bl90b3Bfb2Zmc2V0ICsgY29uZl93aW5fYm90dG9tX29mZnNldCk7CisgIH0KKworICB3aWR0aF8g
PSB3aWR0aDsKKyAgaGVpZ2h0XyA9IGhlaWdodDsKKyAgcmV0dXJuIHRydWU7CisKK30KKworfSAg
Ly8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2Vy
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0
cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDc4Y2Q4YTNmMWI2
Y2ZkN2ZiODk5NzA5NDBhYjEyZTg2NGY1YWViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
aDI2NV9zcHNfcGFyc2VyLmgKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqICBJbnRlbCBMaWNlbnNl
CisgKi8KKworI2lmbmRlZiBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfSDI2NV9TUFNf
UEFSU0VSX0hfCisjZGVmaW5lIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9IMjY1X1NQ
U19QQVJTRVJfSF8KKworLy8jaW5jbHVkZSAid2VicnRjL2Jhc2UvY29tbW9uLmgiCisjaW5jbHVk
ZSAid2VicnRjL2NvbW1vbl90eXBlcy5oIgorbmFtZXNwYWNlIHdlYnJ0YyB7CisKKy8vIEEgY2xh
c3MgZm9yIHBhcnNpbmcgb3V0IHNlcXVlbmNlIHBhcmFtZXRlciBzZXQgKFNQUykgZGF0YSBmcm9t
IGFuIEgyNjUgTkFMVS4KKy8vIEN1cnJlbnRseSwgb25seSByZXNvbHV0aW9uIGlzIHJlYWQgd2l0
aG91dCBiZWluZyBpZ25vcmVkLgorY2xhc3MgSDI2NVNwc1BhcnNlciB7CisgcHVibGljOgorICBI
MjY1U3BzUGFyc2VyKGNvbnN0IHVpbnQ4X3QqIHNwcywgc2l6ZV90IGJ5dGVfbGVuZ3RoKTsKKyAg
Ly8gUGFyc2VzIHRoZSBTUFMgdG8gY29tcGxldGlvbi4gUmV0dXJucyB0cnVlIGlmIHRoZSBTUFMg
d2FzIHBhcnNlZCBjb3JyZWN0bHkuCisgIGJvb2wgUGFyc2UoKTsKKyAgdWludDE2X3Qgd2lkdGgo
KSB7IHJldHVybiB3aWR0aF87IH0KKyAgdWludDE2X3QgaGVpZ2h0KCkgeyByZXR1cm4gaGVpZ2h0
XzsgfQorCisgcHJpdmF0ZToKKyAgY29uc3QgdWludDhfdCogY29uc3Qgc3BzXzsKKyAgY29uc3Qg
c2l6ZV90IGJ5dGVfbGVuZ3RoXzsKKworICB1aW50MTZfdCB3aWR0aF87CisgIHVpbnQxNl90IGhl
aWdodF87Cit9OworCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisjZW5kaWYgIC8vIFdFQlJUQ19N
T0RVTEVTX1JUUF9SVENQX1NPVVJDRV9IMjY1X1NQU19QQVJTRVJfSF8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF9mb3JtYXQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0LmNjCmluZGV4IGU4NzAy
MzJhNGQ1MWUxNTJkZjYwZTcwMDYzYzQwM2IxNGIyZDNkYTYuLjA3MTNiMDRlNzE3OTAwYzcwY2Yy
NmVhMjdjYzU3NWUyZjc5MjU0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2MK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5jYwpAQCAtMTMsMTAgKzEzLDE2IEBACiAjaW5jbHVk
ZSAiYWJzbC9tZW1vcnkvbWVtb3J5LmgiCiAjaW5jbHVkZSAiYWJzbC90eXBlcy92YXJpYW50Lmgi
CiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY0LmgiCisj
aWZkZWYgUlRDX0VOQUJMRV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
cnRwX2Zvcm1hdF9oMjY1LmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3Nv
dXJjZS9ydHBfZm9ybWF0X3ZpZGVvX2dlbmVyaWMuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS9ydHBfZm9ybWF0X3ZwOC5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF9mb3JtYXRfdnA5LmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2Rpbmcv
Y29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZmRlZiBSVENfRU5BQkxFX0gy
NjUKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gy
NjVfZ2xvYmFscy5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29k
ZWNzL3ZwOC9pbmNsdWRlL3ZwOF9nbG9iYWxzLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19j
b2RpbmcvY29kZWNzL3ZwOS9pbmNsdWRlL3ZwOV9nbG9iYWxzLmgiCiAjaW5jbHVkZSAicnRjX2Jh
c2UvY2hlY2tzLmgiCkBAIC00OSw2ICs1NSwxNSBAQCBzdGQ6OnVuaXF1ZV9wdHI8UnRwUGFja2V0
aXplcj4gUnRwUGFja2V0aXplcjo6Q3JlYXRlKAogICAgICAgICAgIGFic2w6OmdldDxSVFBWaWRl
b0hlYWRlclZQOD4ocnRwX3ZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CiAgICAgICBy
ZXR1cm4gYWJzbDo6bWFrZV91bmlxdWU8UnRwUGFja2V0aXplclZwOD4ocGF5bG9hZCwgbGltaXRz
LCB2cDgpOwogICAgIH0KKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0Nv
ZGVjSDI2NTogeworICAgICAgUlRDX0NIRUNLKGZyYWdtZW50YXRpb24pOworICAgICAgY29uc3Qg
YXV0byYgaDI2NSA9CisgICAgICAgICAgYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4ocnRw
X3ZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisgICAgICByZXR1cm4gYWJzbDo6bWFr
ZV91bmlxdWU8UnRwUGFja2V0aXplckgyNjU+KAorICAgICAgICAgIHBheWxvYWQsIGxpbWl0cywg
aDI2NS5wYWNrZXRpemF0aW9uX21vZGUsICpmcmFnbWVudGF0aW9uKTsKKyAgICB9CisjZW5kaWYK
ICAgICBjYXNlIGtWaWRlb0NvZGVjVlA5OiB7CiAgICAgICBjb25zdCBhdXRvJiB2cDkgPQogICAg
ICAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlclZQOT4ocnRwX3ZpZGVvX2hlYWRlci52aWRl
b190eXBlX2hlYWRlcik7CkBAIC0xNDcsNiArMTYyLDEwIEBAIFJ0cERlcGFja2V0aXplciogUnRw
RGVwYWNrZXRpemVyOjpDcmVhdGUoYWJzbDo6b3B0aW9uYWw8VmlkZW9Db2RlY1R5cGU+IHR5cGUp
IHsKICAgc3dpdGNoICgqdHlwZSkgewogICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAg
cmV0dXJuIG5ldyBSdHBEZXBhY2tldGl6ZXJIMjY0KCk7CisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1
CisgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjU6CisgICAgICByZXR1cm4gbmV3IFJ0cERlcGFja2V0
aXplckgyNjUoKTsKKyNlbmRpZgogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6CiAgICAgICByZXR1
cm4gbmV3IFJ0cERlcGFja2V0aXplclZwOCgpOwogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDk6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9y
bWF0X2gyNjUuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU1NWNjMTFmZjM5NGZjM2I2OGNkY2EzYmRjMTUyNzgy
ZDc1MDQ0YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfaDI2NS5jYwpA
QCAtMCwwICsxLDY1MiBAQAorLyoKKyAqICBJbnRlbCBMaWNlbnNlCisgKi8KKworI2luY2x1ZGUg
PHN0cmluZy5oPgorCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjQvaDI2NF9jb21tb24uaCIK
KyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNv
bW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRl
by9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gy
NjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9u
X3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvYnl0ZV9pby5oIgor
I2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfaDI2NS5oIgorI2lu
Y2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9wYWNrZXRfdG9fc2VuZC5oIgorI2lu
Y2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9zeXN0ZW0vZmFs
bHRocm91Z2guaCIKK3VzaW5nIG5hbWVzcGFjZSBydGM7CisKKyNpZmRlZiBSVENfRU5BQkxFX0gy
NjUKKworbmFtZXNwYWNlIHdlYnJ0YyB7CituYW1lc3BhY2UgeworCitlbnVtIE5hbHVUeXBlIHsK
KyAga1RyYWlsTiA9IDAsCisgIGtUcmFpbFIgPSAxLAorICBrVHNhTiA9IDIsCisgIGtUc2FSID0g
MywKKyAga1N0c2FOID0gNCwKKyAga1N0c2FSID0gNSwKKyAga1JhZGxOID0gNiwKKyAga1JhZGxS
ID0gNywKKyAga0JsYVdMcCA9IDE2LAorICBrQmxhV1JhZGwgPSAxNywKKyAga0JsYU5McCA9IDE4
LAorICBrSWRyV1JhZGwgPSAxOSwKKyAga0lkck5McCA9IDIwLAorICBrQ3JhID0gMjEsCisgIGtW
cHMgPSAzMiwKKyAga0hldmNTcHMgPSAzMywKKyAga0hldmNQcHMgPSAzNCwKKyAga0hldmNBdWQg
PSAzNSwKKyAga1ByZWZpeFNlaSA9IDM5LAorICBrU3VmZml4U2VpID0gNDAsCisgIGtIZXZjQXAg
PSA0OCwKKyAga0hldmNGdSA9IDQ5Cit9OworCisvKgorICAgMCAgICAgICAgICAgICAgICAgICAx
ICAgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAgICAgMworICAgMCAxIDIgMyA0IDUg
NiA3IDggOSAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxCisgICst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rCisgIHwgICAgUGF5bG9hZEhkciAoVHlwZT00OSkgICAgICAgfCAgIEZVIGhlYWRlciAg
IHwgRE9OTCAoY29uZCkgICB8CisgICstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy18CisqLworLy8gVW5saWtlIEguMjY0LCBIRVZD
IE5BTCBoZWFkZXIgaXMgMi1ieXRlcy4KK3N0YXRpYyBjb25zdCBzaXplX3Qga0hldmNOYWxIZWFk
ZXJTaXplID0gMjsKKy8vIEguMjY1J3MgRlUgaXMgY29uc3RydWN0ZWQgb2YgMi1ieXRlIHBheWxv
YWQgaGVhZGVyLCBhbmQgMS1ieXRlIEZVIGhlYWRlcgorc3RhdGljIGNvbnN0IHNpemVfdCBrSGV2
Y0Z1SGVhZGVyU2l6ZSA9IDE7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtIZXZjTGVuZ3RoRmllbGRT
aXplID0gMjsKK3N0YXRpYyBjb25zdCBzaXplX3Qga0hldmNBcEhlYWRlclNpemUgPQorICAgIGtI
ZXZjTmFsSGVhZGVyU2l6ZSArIGtIZXZjTGVuZ3RoRmllbGRTaXplOworCitlbnVtIEhldmNOYWxI
ZHJNYXNrcyB7CisgIGtIZXZjRkJpdCA9IDB4ODAsCisgIGtIZXZjVHlwZU1hc2sgPSAweDdFLAor
ICBrSGV2Y0xheWVySURITWFzayA9IDB4MSwKKyAga0hldmNMYXllcklETE1hc2sgPSAweEY4LAor
ICBrSGV2Y1RJRE1hc2sgPSAweDcsCisgIGtIZXZjVHlwZU1hc2tOID0gMHg4MSwKKyAga0hldmNU
eXBlTWFza0luRnVIZWFkZXIgPSAweDNGCit9OworCisvLyBCaXQgbWFza3MgZm9yIEZVIGhlYWRl
cnMuCitlbnVtIEhldmNGdURlZnMgeyBrSGV2Y1NCaXQgPSAweDgwLCBrSGV2Y0VCaXQgPSAweDQw
LCBrSGV2Y0Z1VHlwZUJpdCA9IDB4M0YgfTsKKworLy8gVE9ETyhwYm9zKTogQXZvaWQgcGFyc2lu
ZyB0aGlzIGhlcmUgYXMgd2VsbCBhcyBpbnNpZGUgdGhlIGppdHRlciBidWZmZXIuCitib29sIFBh
cnNlQXBTdGFydE9mZnNldHMoY29uc3QgdWludDhfdCogbmFsdV9wdHIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IGxlbmd0aF9yZW1haW5pbmcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RkOjp2ZWN0b3I8c2l6ZV90Piogb2Zmc2V0cykgeworICBzaXplX3Qgb2Zmc2V0ID0g
MDsKKyAgd2hpbGUgKGxlbmd0aF9yZW1haW5pbmcgPiAwKSB7CisgICAgLy8gQnVmZmVyIGRvZXNu
J3QgY29udGFpbiByb29tIGZvciBhZGRpdGlvbmFsIG5hbHUgbGVuZ3RoLgorICAgIGlmIChsZW5n
dGhfcmVtYWluaW5nIDwgc2l6ZW9mKHVpbnQxNl90KSkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB1aW50MTZfdCBuYWx1X3NpemUgPSBCeXRlUmVhZGVyPHVpbnQxNl90Pjo6UmVhZEJpZ0VuZGlh
bihuYWx1X3B0cik7CisgICAgbmFsdV9wdHIgKz0gc2l6ZW9mKHVpbnQxNl90KTsKKyAgICBsZW5n
dGhfcmVtYWluaW5nIC09IHNpemVvZih1aW50MTZfdCk7CisgICAgaWYgKG5hbHVfc2l6ZSA+IGxl
bmd0aF9yZW1haW5pbmcpCisgICAgICByZXR1cm4gZmFsc2U7CisgICAgbmFsdV9wdHIgKz0gbmFs
dV9zaXplOworICAgIGxlbmd0aF9yZW1haW5pbmcgLT0gbmFsdV9zaXplOworCisgICAgb2Zmc2V0
cy0+cHVzaF9iYWNrKG9mZnNldCArIGtIZXZjQXBIZWFkZXJTaXplKTsKKyAgICBvZmZzZXQgKz0g
a0hldmNMZW5ndGhGaWVsZFNpemUgKyBuYWx1X3NpemU7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9
CisKK30gIC8vIG5hbWVzcGFjZQorCitSdHBQYWNrZXRpemVySDI2NTo6UnRwUGFja2V0aXplckgy
NjUoCisgICAgcnRjOjpBcnJheVZpZXc8Y29uc3QgdWludDhfdD4gcGF5bG9hZCwKKyAgICBQYXls
b2FkU2l6ZUxpbWl0cyBsaW1pdHMsCisgICAgSDI2NVBhY2tldGl6YXRpb25Nb2RlIHBhY2tldGl6
YXRpb25fbW9kZSwKKyAgICBjb25zdCBSVFBGcmFnbWVudGF0aW9uSGVhZGVyJiBmcmFnbWVudGF0
aW9uKQorICAgIDogbGltaXRzXyhsaW1pdHMpLAorICAgICAgbnVtX3BhY2tldHNfbGVmdF8oMCkg
eworICAvLyBHdWFyZCBhZ2FpbnN0IHVuaW5pdGlhbGl6ZWQgbWVtb3J5IGluIHBhY2tldGl6YXRp
b25fbW9kZS4KKyAgUlRDX0NIRUNLKHBhY2tldGl6YXRpb25fbW9kZSA9PSBIMjY1UGFja2V0aXph
dGlvbk1vZGU6Ok5vbkludGVybGVhdmVkIHx8CisgICAgICAgICAgICBwYWNrZXRpemF0aW9uX21v
ZGUgPT0gSDI2NVBhY2tldGl6YXRpb25Nb2RlOjpTaW5nbGVOYWxVbml0KTsKKworICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGZyYWdtZW50YXRpb24uZnJhZ21lbnRhdGlvblZlY3RvclNpemU7ICsr
aSkgeworICAgIGNvbnN0IHVpbnQ4X3QqIGZyYWdtZW50ID0KKyAgICAgICAgcGF5bG9hZC5kYXRh
KCkgKyBmcmFnbWVudGF0aW9uLmZyYWdtZW50YXRpb25PZmZzZXRbaV07CisgICAgY29uc3Qgc2l6
ZV90IGZyYWdtZW50X2xlbmd0aCA9IGZyYWdtZW50YXRpb24uZnJhZ21lbnRhdGlvbkxlbmd0aFtp
XTsKKyAgICBpbnB1dF9mcmFnbWVudHNfLnB1c2hfYmFjayhGcmFnbWVudChmcmFnbWVudCwgZnJh
Z21lbnRfbGVuZ3RoKSk7CisgIH0KKworICBpZiAoIUdlbmVyYXRlUGFja2V0cyhwYWNrZXRpemF0
aW9uX21vZGUpKSB7CisgICAgLy8gSWYgZmFpbGVkIHRvIGdlbmVyYXRlIGFsbCB0aGUgcGFja2V0
cywgZGlzY2FyZCBhbHJlYWR5IGdlbmVyYXRlZAorICAgIC8vIHBhY2tldHMgaW4gY2FzZSB0aGUg
Y2FsbGVyIHdvdWxkIGlnbm9yZSByZXR1cm4gdmFsdWUgYW5kIHN0aWxsIHRyeSB0bworICAgIC8v
IGNhbGwgTmV4dFBhY2tldCgpLgorICAgIG51bV9wYWNrZXRzX2xlZnRfID0gMDsKKyAgICB3aGls
ZSAoIXBhY2tldHNfLmVtcHR5KCkpIHsKKyAgICAgIHBhY2tldHNfLnBvcCgpOworICAgIH0KKyAg
fQorfQorCitSdHBQYWNrZXRpemVySDI2NTo6flJ0cFBhY2tldGl6ZXJIMjY1KCkge30KKworc2l6
ZV90IFJ0cFBhY2tldGl6ZXJIMjY1OjpOdW1QYWNrZXRzKCkgY29uc3QgeworICByZXR1cm4gbnVt
X3BhY2tldHNfbGVmdF87Cit9CisKK1J0cFBhY2tldGl6ZXJIMjY1OjpGcmFnbWVudDo6RnJhZ21l
bnQoY29uc3QgdWludDhfdCogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKQorICAgIDogYnVmZmVyKGJ1
ZmZlciksIGxlbmd0aChsZW5ndGgpIHt9CitSdHBQYWNrZXRpemVySDI2NTo6RnJhZ21lbnQ6OkZy
YWdtZW50KGNvbnN0IEZyYWdtZW50JiBmcmFnbWVudCkKKyAgICA6IGJ1ZmZlcihmcmFnbWVudC5i
dWZmZXIpLCBsZW5ndGgoZnJhZ21lbnQubGVuZ3RoKSB7fQorCisKK2Jvb2wgUnRwUGFja2V0aXpl
ckgyNjU6OkdlbmVyYXRlUGFja2V0cygKKyAgICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0
aXphdGlvbl9tb2RlKSB7CisgIC8vIEZvciBIRVZDIHdlIGZvbGxvdyBub24taW50ZXJsZWF2ZWQg
bW9kZSBmb3IgdGhlIHBhY2tldGl6YXRpb24sCisgIC8vIGFuZCBkb24ndCBzdXBwb3J0IHNpbmds
ZS1uYWx1IG1vZGUgYXQgcHJlc2VudC4KKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbnB1dF9m
cmFnbWVudHNfLnNpemUoKTspIHsKKyAgICBpbnQgZnJhZ21lbnRfbGVuID0gaW5wdXRfZnJhZ21l
bnRzX1tpXS5sZW5ndGg7CisgICAgaW50IHNpbmdsZV9wYWNrZXRfY2FwYWNpdHkgPSBsaW1pdHNf
Lm1heF9wYXlsb2FkX2xlbjsKKyAgICBpZiAoaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgPT0gMSkK
KyAgICAgIHNpbmdsZV9wYWNrZXRfY2FwYWNpdHkgLT0gbGltaXRzXy5zaW5nbGVfcGFja2V0X3Jl
ZHVjdGlvbl9sZW47CisgICAgZWxzZSBpZiAoaSA9PSAwKQorICAgICAgc2luZ2xlX3BhY2tldF9j
YXBhY2l0eSAtPSBsaW1pdHNfLmZpcnN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICAgIGVsc2Ug
aWYgKGkgKyAxID09IGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpKSB7CisgICAgICAvLyBQcmV0ZW5k
IHRoYXQgbGFzdCBmcmFnbWVudCBpcyBsYXJnZXIgaW5zdGVhZCBvZiBtYWtpbmcgbGFzdCBwYWNr
ZXQKKyAgICAgIC8vIHNtYWxsZXIuCisgICAgICBzaW5nbGVfcGFja2V0X2NhcGFjaXR5IC09IGxp
bWl0c18ubGFzdF9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgICB9CisgICAgaWYgKGZyYWdtZW50
X2xlbiA+IHNpbmdsZV9wYWNrZXRfY2FwYWNpdHkpIHsKKyAgICAgIFBhY2tldGl6ZUZ1KGkpOwor
ICAgICAgKytpOworICAgIH0gZWxzZSB7CisgICAgICBQYWNrZXRpemVTaW5nbGVOYWx1KGkpOwor
ICAgICAgKytpOworICAgIH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSdHBQYWNr
ZXRpemVySDI2NTo6UGFja2V0aXplRnUoc2l6ZV90IGZyYWdtZW50X2luZGV4KSB7CisgIC8vIEZy
YWdtZW50IHBheWxvYWQgaW50byBwYWNrZXRzIChGVSkuCisgIC8vIFN0cmlwIG91dCB0aGUgb3Jp
Z2luYWwgaGVhZGVyIGFuZCBsZWF2ZSByb29tIGZvciB0aGUgRlUgaGVhZGVyLgorICBjb25zdCBG
cmFnbWVudCYgZnJhZ21lbnQgPSBpbnB1dF9mcmFnbWVudHNfW2ZyYWdtZW50X2luZGV4XTsKKyAg
UGF5bG9hZFNpemVMaW1pdHMgbGltaXRzID0gbGltaXRzXzsKKyAgbGltaXRzLm1heF9wYXlsb2Fk
X2xlbiAtPSBrSGV2Y0Z1SGVhZGVyU2l6ZSArIGtIZXZjTmFsSGVhZGVyU2l6ZTsKKworICAvLyBV
cGRhdGUgc2luZ2xlL2ZpcnN0L2xhc3QgcGFja2V0IHJlZHVjdGlvbnMgdW5sZXNzIGl0IGlzIHNp
bmdsZS9maXJzdC9sYXN0CisgIC8vIGZyYWdtZW50LgorICBpZiAoaW5wdXRfZnJhZ21lbnRzXy5z
aXplKCkgIT0gMSkgeworICAgIC8vIGlmIHRoaXMgZnJhZ21lbnQgaXMgcHV0IGludG8gYSBzaW5n
bGUgcGFja2V0LCBpdCBtaWdodCBzdGlsbCBiZSB0aGUKKyAgICAvLyBmaXJzdCBvciB0aGUgbGFz
dCBwYWNrZXQgaW4gdGhlIHdob2xlIHNlcXVlbmNlIG9mIHBhY2tldHMuCisgICAgaWYgKGZyYWdt
ZW50X2luZGV4ID09IGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpIC0gMSkgeworICAgICAgbGltaXRz
LnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbiA9IGxpbWl0c18ubGFzdF9wYWNrZXRfcmVkdWN0
aW9uX2xlbjsKKyAgICB9IGVsc2UgaWYgKGZyYWdtZW50X2luZGV4ID09IDApIHsKKyAgICAgIGxp
bWl0cy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSBsaW1pdHNfLmZpcnN0X3BhY2tldF9y
ZWR1Y3Rpb25fbGVuOworICAgIH0gZWxzZSB7CisgICAgICBsaW1pdHMuc2luZ2xlX3BhY2tldF9y
ZWR1Y3Rpb25fbGVuID0gMDsKKyAgICB9CisgIH0KKyAgaWYgKGZyYWdtZW50X2luZGV4ICE9IDAp
CisgICAgbGltaXRzLmZpcnN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuID0gMDsKKyAgaWYgKGZyYWdt
ZW50X2luZGV4ICE9IGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpIC0gMSkKKyAgICBsaW1pdHMubGFz
dF9wYWNrZXRfcmVkdWN0aW9uX2xlbiA9IDA7CisKKyAgLy8gU3RyaXAgb3V0IHRoZSBvcmlnaW5h
bCBoZWFkZXIuCisgIHNpemVfdCBwYXlsb2FkX2xlZnQgPSBmcmFnbWVudC5sZW5ndGggLSBrSGV2
Y05hbEhlYWRlclNpemU7CisgIGludCBvZmZzZXQgPSBrSGV2Y05hbEhlYWRlclNpemU7CisKKyAg
c3RkOjp2ZWN0b3I8aW50PiBwYXlsb2FkX3NpemVzID0gU3BsaXRBYm91dEVxdWFsbHkocGF5bG9h
ZF9sZWZ0LCBsaW1pdHMpOworICBpZiAocGF5bG9hZF9zaXplcy5lbXB0eSgpKQorICAgIHJldHVy
biBmYWxzZTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBheWxvYWRfc2l6ZXMuc2l6ZSgp
OyArK2kpIHsKKyAgICBpbnQgcGFja2V0X2xlbmd0aCA9IHBheWxvYWRfc2l6ZXNbaV07CisgICAg
UlRDX0NIRUNLX0dUKHBhY2tldF9sZW5ndGgsIDApOworICAgIHVpbnQxNl90IGhlYWRlciA9IChm
cmFnbWVudC5idWZmZXJbMF0gPDwgOCkgfCBmcmFnbWVudC5idWZmZXJbMV07CisgICAgcGFja2V0
c18ucHVzaChQYWNrZXRVbml0KEZyYWdtZW50KGZyYWdtZW50LmJ1ZmZlciArIG9mZnNldCwgcGFj
a2V0X2xlbmd0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qZmlyc3RfZnJhZ21l
bnQ9Ki9pID09IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qbGFzdF9mcmFnbWVu
dD0qL2kgPT0gcGF5bG9hZF9zaXplcy5zaXplKCkgLSAxLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmYWxzZSwgaGVhZGVyKSk7CisgICAgb2Zmc2V0ICs9IHBhY2tldF9sZW5ndGg7Cisg
ICAgcGF5bG9hZF9sZWZ0IC09IHBhY2tldF9sZW5ndGg7CisgIH0KKyAgbnVtX3BhY2tldHNfbGVm
dF8gKz0gcGF5bG9hZF9zaXplcy5zaXplKCk7CisgIFJUQ19DSEVDS19FUSgwLCBwYXlsb2FkX2xl
ZnQpOworICByZXR1cm4gdHJ1ZTsKK30KKworCitib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNr
ZXRpemVTaW5nbGVOYWx1KHNpemVfdCBmcmFnbWVudF9pbmRleCkgeworICAvLyBBZGQgYSBzaW5n
bGUgTkFMVSB0byB0aGUgcXVldWUsIG5vIGFnZ3JlZ2F0aW9uLgorICBzaXplX3QgcGF5bG9hZF9z
aXplX2xlZnQgPSBsaW1pdHNfLm1heF9wYXlsb2FkX2xlbjsKKyAgaWYgKGlucHV0X2ZyYWdtZW50
c18uc2l6ZSgpID09IDEpCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5zaW5nbGVf
cGFja2V0X3JlZHVjdGlvbl9sZW47CisgIGVsc2UgaWYgKGZyYWdtZW50X2luZGV4ID09IDApCisg
ICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5maXJzdF9wYWNrZXRfcmVkdWN0aW9uX2xl
bjsKKyAgZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggKyAxID09IGlucHV0X2ZyYWdtZW50c18uc2l6
ZSgpKQorICAgIHBheWxvYWRfc2l6ZV9sZWZ0IC09IGxpbWl0c18ubGFzdF9wYWNrZXRfcmVkdWN0
aW9uX2xlbjsKKyAgY29uc3QgRnJhZ21lbnQqIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19b
ZnJhZ21lbnRfaW5kZXhdOworICBpZiAocGF5bG9hZF9zaXplX2xlZnQgPCBmcmFnbWVudC0+bGVu
Z3RoKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBmaXQgYSBmcmFnbWVu
dCB0byBwYWNrZXQgaW4gU2luZ2xlTmFsdSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgInBh
Y2tldGl6YXRpb24gbW9kZS4gUGF5bG9hZCBzaXplIGxlZnQgIgorICAgICAgICAgICAgICAgICAg
ICAgIDw8IHBheWxvYWRfc2l6ZV9sZWZ0IDw8ICIsIGZyYWdtZW50IGxlbmd0aCAiCisgICAgICAg
ICAgICAgICAgICAgICAgPDwgZnJhZ21lbnQtPmxlbmd0aCA8PCAiLCBwYWNrZXQgY2FwYWNpdHkg
IgorICAgICAgICAgICAgICAgICAgICAgIDw8IGxpbWl0c18ubWF4X3BheWxvYWRfbGVuOworICAg
IHJldHVybiBmYWxzZTsKKyAgfQorICBSVENfQ0hFQ0tfR1QoZnJhZ21lbnQtPmxlbmd0aCwgMHUp
OworICBwYWNrZXRzXy5wdXNoKFBhY2tldFVuaXQoKmZyYWdtZW50LCB0cnVlIC8qIGZpcnN0ICov
LCB0cnVlIC8qIGxhc3QgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSAvKiBh
Z2dyZWdhdGVkICovLCBmcmFnbWVudC0+YnVmZmVyWzBdKSk7CisgICsrbnVtX3BhY2tldHNfbGVm
dF87CisgIHJldHVybiB0cnVlOworfQorCitpbnQgUnRwUGFja2V0aXplckgyNjU6OlBhY2tldGl6
ZUFwKHNpemVfdCBmcmFnbWVudF9pbmRleCkgeworICAvLyBBZ2dyZWdhdGUgZnJhZ21lbnRzIGlu
dG8gb25lIHBhY2tldCAoU1RBUC1BKS4KKyAgc2l6ZV90IHBheWxvYWRfc2l6ZV9sZWZ0ID0gbGlt
aXRzXy5tYXhfcGF5bG9hZF9sZW47CisgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSA9PSAx
KQorICAgIHBheWxvYWRfc2l6ZV9sZWZ0IC09IGxpbWl0c18uc2luZ2xlX3BhY2tldF9yZWR1Y3Rp
b25fbGVuOworICBlbHNlIGlmIChmcmFnbWVudF9pbmRleCA9PSAwKQorICAgIHBheWxvYWRfc2l6
ZV9sZWZ0IC09IGxpbWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgIGludCBhZ2dy
ZWdhdGVkX2ZyYWdtZW50cyA9IDA7CisgIHNpemVfdCBmcmFnbWVudF9oZWFkZXJzX2xlbmd0aCA9
IDA7CisgIGNvbnN0IEZyYWdtZW50KiBmcmFnbWVudCA9ICZpbnB1dF9mcmFnbWVudHNfW2ZyYWdt
ZW50X2luZGV4XTsKKyAgUlRDX0NIRUNLX0dFKHBheWxvYWRfc2l6ZV9sZWZ0LCBmcmFnbWVudC0+
bGVuZ3RoKTsKKyAgKytudW1fcGFja2V0c19sZWZ0XzsKKworICBhdXRvIHBheWxvYWRfc2l6ZV9u
ZWVkZWQgPSBbJl0geworICAgIHNpemVfdCBmcmFnbWVudF9zaXplID0gZnJhZ21lbnQtPmxlbmd0
aCArIGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoOworICAgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNp
emUoKSA9PSAxKSB7CisgICAgICAvLyBTaW5nbGUgZnJhZ21lbnQsIHNpbmdsZSBwYWNrZXQsIHBh
eWxvYWRfc2l6ZV9sZWZ0IGFscmVhZHkgYWRqdXN0ZWQKKyAgICAgIC8vIHdpdGggbGltaXRzXy5z
aW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW4uCisgICAgICByZXR1cm4gZnJhZ21lbnRfc2l6ZTsK
KyAgICB9CisgICAgaWYgKGZyYWdtZW50X2luZGV4ID09IGlucHV0X2ZyYWdtZW50c18uc2l6ZSgp
IC0gMSkgeworICAgICAgLy8gTGFzdCBmcmFnbWVudCwgc28gU3RyYXBBIG1pZ2h0IGJlIHRoZSBs
YXN0IHBhY2tldC4KKyAgICAgIHJldHVybiBmcmFnbWVudF9zaXplICsgbGltaXRzXy5sYXN0X3Bh
Y2tldF9yZWR1Y3Rpb25fbGVuOworICAgIH0KKyAgICByZXR1cm4gZnJhZ21lbnRfc2l6ZTsKKyAg
fTsKKworICB3aGlsZSAocGF5bG9hZF9zaXplX2xlZnQgPj0gcGF5bG9hZF9zaXplX25lZWRlZCgp
KSB7CisgICAgUlRDX0NIRUNLX0dUKGZyYWdtZW50LT5sZW5ndGgsIDApOworICAgIHBhY2tldHNf
LnB1c2goUGFja2V0VW5pdCgqZnJhZ21lbnQsIGFnZ3JlZ2F0ZWRfZnJhZ21lbnRzID09IDAsIGZh
bHNlLCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFnbWVudC0+YnVmZmVy
WzBdKSk7CisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gZnJhZ21lbnQtPmxlbmd0aDsKKyAgICBw
YXlsb2FkX3NpemVfbGVmdCAtPSBmcmFnbWVudF9oZWFkZXJzX2xlbmd0aDsKKworICAgIGZyYWdt
ZW50X2hlYWRlcnNfbGVuZ3RoID0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAgLy8gSWYgd2Ug
YXJlIGdvaW5nIHRvIHRyeSB0byBhZ2dyZWdhdGUgbW9yZSBmcmFnbWVudHMgaW50byB0aGlzIHBh
Y2tldAorICAgIC8vIHdlIG5lZWQgdG8gYWRkIHRoZSBTVEFQLUEgTkFMVSBoZWFkZXIgYW5kIGEg
bGVuZ3RoIGZpZWxkIGZvciB0aGUgZmlyc3QKKyAgICAvLyBOQUxVIG9mIHRoaXMgcGFja2V0Lgor
ICAgIGlmIChhZ2dyZWdhdGVkX2ZyYWdtZW50cyA9PSAwKQorICAgICAgZnJhZ21lbnRfaGVhZGVy
c19sZW5ndGggKz0ga0hldmNOYWxIZWFkZXJTaXplICsga0hldmNMZW5ndGhGaWVsZFNpemU7Cisg
ICAgKythZ2dyZWdhdGVkX2ZyYWdtZW50czsKKworICAgIC8vIE5leHQgZnJhZ21lbnQuCisgICAg
KytmcmFnbWVudF9pbmRleDsKKyAgICBpZiAoZnJhZ21lbnRfaW5kZXggPT0gaW5wdXRfZnJhZ21l
bnRzXy5zaXplKCkpCisgICAgICBicmVhazsKKyAgICBmcmFnbWVudCA9ICZpbnB1dF9mcmFnbWVu
dHNfW2ZyYWdtZW50X2luZGV4XTsKKyAgfQorICBSVENfQ0hFQ0tfR1QoYWdncmVnYXRlZF9mcmFn
bWVudHMsIDApOworICBwYWNrZXRzXy5iYWNrKCkubGFzdF9mcmFnbWVudCA9IHRydWU7CisgIHJl
dHVybiBmcmFnbWVudF9pbmRleDsKK30KKworYm9vbCBSdHBQYWNrZXRpemVySDI2NTo6TmV4dFBh
Y2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpIHsKKyAgUlRDX0RDSEVDSyhydHBfcGFj
a2V0KTsKKworICBpZiAocGFja2V0c18uZW1wdHkoKSkgeworICAgIHJldHVybiBmYWxzZTsKKyAg
fQorCisgIFBhY2tldFVuaXQgcGFja2V0ID0gcGFja2V0c18uZnJvbnQoKTsKKworICBpZiAocGFj
a2V0LmZpcnN0X2ZyYWdtZW50ICYmIHBhY2tldC5sYXN0X2ZyYWdtZW50KSB7CisgICAgLy8gU2lu
Z2xlIE5BTCB1bml0IHBhY2tldC4KKyAgICBzaXplX3QgYnl0ZXNfdG9fc2VuZCA9IHBhY2tldC5z
b3VyY2VfZnJhZ21lbnQubGVuZ3RoOworICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IHJ0cF9wYWNrZXQt
PkFsbG9jYXRlUGF5bG9hZChieXRlc190b19zZW5kKTsKKyAgICBtZW1jcHkoYnVmZmVyLCBwYWNr
ZXQuc291cmNlX2ZyYWdtZW50LmJ1ZmZlciwgYnl0ZXNfdG9fc2VuZCk7CisgICAgcGFja2V0c18u
cG9wKCk7CisgICAgaW5wdXRfZnJhZ21lbnRzXy5wb3BfZnJvbnQoKTsKKyAgfSBlbHNlIGlmIChw
YWNrZXQuYWdncmVnYXRlZCkgeworICAgIGJvb2wgaXNfbGFzdF9wYWNrZXQgPSBudW1fcGFja2V0
c19sZWZ0XyA9PSAxOworICAgIE5leHRBZ2dyZWdhdGVQYWNrZXQocnRwX3BhY2tldCwgaXNfbGFz
dF9wYWNrZXQpOworICB9IGVsc2UgeworICAgIE5leHRGcmFnbWVudFBhY2tldChydHBfcGFja2V0
KTsKKyAgfQorICBydHBfcGFja2V0LT5TZXRNYXJrZXIocGFja2V0c18uZW1wdHkoKSk7CisgIC0t
bnVtX3BhY2tldHNfbGVmdF87CisgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJ0cFBhY2tldGl6
ZXJIMjY1OjpOZXh0QWdncmVnYXRlUGFja2V0KFJ0cFBhY2tldFRvU2VuZCogcnRwX3BhY2tldCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBsYXN0KSB7
CisgIHNpemVfdCBwYXlsb2FkX2NhcGFjaXR5ID0gcnRwX3BhY2tldC0+RnJlZUNhcGFjaXR5KCk7
CisgIFJUQ19DSEVDS19HRShwYXlsb2FkX2NhcGFjaXR5LCBrSGV2Y05hbEhlYWRlclNpemUpOwor
ICB1aW50OF90KiBidWZmZXIgPSBydHBfcGFja2V0LT5BbGxvY2F0ZVBheWxvYWQocGF5bG9hZF9j
YXBhY2l0eSk7CisKKyAgUGFja2V0VW5pdCogcGFja2V0ID0gJnBhY2tldHNfLmZyb250KCk7Cisg
IFJUQ19DSEVDSyhwYWNrZXQtPmZpcnN0X2ZyYWdtZW50KTsKKyAgdWludDhfdCBwYXlsb2FkX2hk
cl9oID0gcGFja2V0LT5oZWFkZXIgPj4gODsKKyAgdWludDhfdCBwYXlsb2FkX2hkcl9sID0gcGFj
a2V0LT5oZWFkZXIgJiAweEZGOworICB1aW50OF90IGxheWVyX2lkX2ggPSBwYXlsb2FkX2hkcl9o
ICYga0hldmNMYXllcklESE1hc2s7CisKKyAgcGF5bG9hZF9oZHJfaCA9CisgICAgICAocGF5bG9h
ZF9oZHJfaCAmIGtIZXZjVHlwZU1hc2tOKSB8IChrSGV2Y0FwIDw8IDEpIHwgbGF5ZXJfaWRfaDsK
KworICBidWZmZXJbMF0gPSBwYXlsb2FkX2hkcl9oOworICBidWZmZXJbMV0gPSBwYXlsb2FkX2hk
cl9sOworICBpbnQgaW5kZXggPSBrSGV2Y05hbEhlYWRlclNpemU7CisgIGJvb2wgaXNfbGFzdF9m
cmFnbWVudCA9IHBhY2tldC0+bGFzdF9mcmFnbWVudDsKKyAgd2hpbGUgKHBhY2tldC0+YWdncmVn
YXRlZCkgeworICAgIC8vIEFkZCBOQUwgdW5pdCBsZW5ndGggZmllbGQuCisgICAgY29uc3QgRnJh
Z21lbnQmIGZyYWdtZW50ID0gcGFja2V0LT5zb3VyY2VfZnJhZ21lbnQ7CisgICAgQnl0ZVdyaXRl
cjx1aW50MTZfdD46OldyaXRlQmlnRW5kaWFuKCZidWZmZXJbaW5kZXhdLCBmcmFnbWVudC5sZW5n
dGgpOworICAgIGluZGV4ICs9IGtIZXZjTGVuZ3RoRmllbGRTaXplOworICAgIC8vIEFkZCBOQUwg
dW5pdC4KKyAgICBtZW1jcHkoJmJ1ZmZlcltpbmRleF0sIGZyYWdtZW50LmJ1ZmZlciwgZnJhZ21l
bnQubGVuZ3RoKTsKKyAgICBpbmRleCArPSBmcmFnbWVudC5sZW5ndGg7CisgICAgcGFja2V0c18u
cG9wKCk7CisgICAgaW5wdXRfZnJhZ21lbnRzXy5wb3BfZnJvbnQoKTsKKyAgICBpZiAoaXNfbGFz
dF9mcmFnbWVudCkKKyAgICAgIGJyZWFrOworICAgIHBhY2tldCA9ICZwYWNrZXRzXy5mcm9udCgp
OworICAgIGlzX2xhc3RfZnJhZ21lbnQgPSBwYWNrZXQtPmxhc3RfZnJhZ21lbnQ7CisgIH0KKyAg
UlRDX0NIRUNLKGlzX2xhc3RfZnJhZ21lbnQpOworICBydHBfcGFja2V0LT5TZXRQYXlsb2FkU2l6
ZShpbmRleCk7Cit9CisKK3ZvaWQgUnRwUGFja2V0aXplckgyNjU6Ok5leHRGcmFnbWVudFBhY2tl
dChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpIHsKKyAgUGFja2V0VW5pdCogcGFja2V0ID0g
JnBhY2tldHNfLmZyb250KCk7CisgIC8vIE5BTCB1bml0IGZyYWdtZW50ZWQgb3ZlciBtdWx0aXBs
ZSBwYWNrZXRzIChGVSkuCisgIC8vIFdlIGRvIG5vdCBzZW5kIG9yaWdpbmFsIE5BTFUgaGVhZGVy
LCBzbyBpdCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZQorICAvLyBQYXlsb2FkSGRyIG9mIHRoZSBm
aXJzdCBwYWNrZXQuCisgIHVpbnQ4X3QgcGF5bG9hZF9oZHJfaCA9CisgICAgICBwYWNrZXQtPmhl
YWRlciA+PiA4OyAgLy8gMS1iaXQgRiwgNi1iaXQgdHlwZSwgMS1iaXQgbGF5ZXJJRCBoaWdoZXN0
LWJpdAorICB1aW50OF90IHBheWxvYWRfaGRyX2wgPSBwYWNrZXQtPmhlYWRlciAmIDB4RkY7Cisg
IHVpbnQ4X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRfaGRyX2ggJiBrSGV2Y0xheWVySURITWFzazsK
KyAgdWludDhfdCBmdV9oZWFkZXIgPSAwOworICAvLyBTIHwgRSB8NiBiaXQgdHlwZS4KKyAgZnVf
aGVhZGVyIHw9IChwYWNrZXQtPmZpcnN0X2ZyYWdtZW50ID8ga0hldmNTQml0IDogMCk7CisgIGZ1
X2hlYWRlciB8PSAocGFja2V0LT5sYXN0X2ZyYWdtZW50ID8ga0hldmNFQml0IDogMCk7CisgIHVp
bnQ4X3QgdHlwZSA9IChwYXlsb2FkX2hkcl9oICYga0hldmNUeXBlTWFzaykgPj4gMTsKKyAgZnVf
aGVhZGVyIHw9IHR5cGU7CisgIC8vIE5vdyB1cGRhdGUgcGF5bG9hZF9oZHJfaCB3aXRoIEZVIHR5
cGUuCisgIHBheWxvYWRfaGRyX2ggPQorICAgICAgKHBheWxvYWRfaGRyX2ggJiBrSGV2Y1R5cGVN
YXNrTikgfCAoa0hldmNGdSA8PCAxKSB8IGxheWVyX2lkX2g7CisgIGNvbnN0IEZyYWdtZW50JiBm
cmFnbWVudCA9IHBhY2tldC0+c291cmNlX2ZyYWdtZW50OworICB1aW50OF90KiBidWZmZXIgPSBy
dHBfcGFja2V0LT5BbGxvY2F0ZVBheWxvYWQoCisgICAgICBrSGV2Y0Z1SGVhZGVyU2l6ZSArIGtI
ZXZjTmFsSGVhZGVyU2l6ZSArIGZyYWdtZW50Lmxlbmd0aCk7CisgIGJ1ZmZlclswXSA9IHBheWxv
YWRfaGRyX2g7CisgIGJ1ZmZlclsxXSA9IHBheWxvYWRfaGRyX2w7CisgIGJ1ZmZlclsyXSA9IGZ1
X2hlYWRlcjsKKworICBpZiAocGFja2V0LT5sYXN0X2ZyYWdtZW50KSB7CisgICAgbWVtY3B5KGJ1
ZmZlciArIGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplLCBmcmFnbWVudC5i
dWZmZXIsCisgICAgICAgICAgIGZyYWdtZW50Lmxlbmd0aCk7CisgIH0gZWxzZSB7CisgICAgbWVt
Y3B5KGJ1ZmZlciArIGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplLCBmcmFn
bWVudC5idWZmZXIsCisgICAgICAgICAgIGZyYWdtZW50Lmxlbmd0aCk7CisgIH0KKyAgcGFja2V0
c18ucG9wKCk7Cit9CisKK2Jvb2wgUnRwRGVwYWNrZXRpemVySDI2NTo6UGFyc2UoUGFyc2VkUGF5
bG9hZCogcGFyc2VkX3BheWxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IHBheWxvYWRfZGF0YV9sZW5ndGgpIHsKKyAgUlRDX0NIRUNLKHBhcnNlZF9wYXls
b2FkICE9IG51bGxwdHIpOworICBpZiAocGF5bG9hZF9kYXRhX2xlbmd0aCA9PSAwKSB7CisgICAg
UlRDX0xPRyhMU19FUlJPUikgPDwgIkVtcHR5IHBheWxvYWQuIjsKKyAgICByZXR1cm4gZmFsc2U7
CisgIH0KKworICBvZmZzZXRfID0gMDsKKyAgbGVuZ3RoXyA9IHBheWxvYWRfZGF0YV9sZW5ndGg7
CisgIG1vZGlmaWVkX2J1ZmZlcl8ucmVzZXQoKTsKKworICB1aW50OF90IG5hbF90eXBlID0gKHBh
eWxvYWRfZGF0YVswXSAmIGtIZXZjVHlwZU1hc2spID4+IDE7CisgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIoKQorICAgICAgLnZpZGVvX3R5cGVfaGVhZGVyLmVtcGxhY2U8UlRQVmlkZW9I
ZWFkZXJIMjY1PigpOworCisgIGlmIChuYWxfdHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0ZVKSB7
CisgICAgLy8gRnJhZ21lbnRlZCBOQUwgdW5pdHMgKEZVLUEpLgorICAgIGlmICghUGFyc2VGdU5h
bHUocGFyc2VkX3BheWxvYWQsIHBheWxvYWRfZGF0YSkpCisgICAgICByZXR1cm4gZmFsc2U7Cisg
IH0gZWxzZSB7CisgICAgLy8gV2UgaGFuZGxlIFNUQVAtQSBhbmQgc2luZ2xlIE5BTFUncyB0aGUg
c2FtZSB3YXkgaGVyZS4gVGhlIGppdHRlciBidWZmZXIKKyAgICAvLyB3aWxsIGRlcGFja2V0aXpl
IHRoZSBTVEFQLUEgaW50byBOQUwgdW5pdHMgbGF0ZXIuCisgICAgLy8gVE9ETyhzcHJhbmcpOiBQ
YXJzZSBTVEFQLUEgb2Zmc2V0cyBoZXJlIGFuZCBzdG9yZSBpbiBmcmFnbWVudGF0aW9uIHZlYy4K
KyAgICBpZiAoIVByb2Nlc3NBcE9yU2luZ2xlTmFsdShwYXJzZWRfcGF5bG9hZCwgcGF5bG9hZF9k
YXRhKSkKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIGNvbnN0IHVpbnQ4X3QqIHBheWxv
YWQgPQorICAgICAgbW9kaWZpZWRfYnVmZmVyXyA/IG1vZGlmaWVkX2J1ZmZlcl8tPmRhdGEoKSA6
IHBheWxvYWRfZGF0YTsKKworICBwYXJzZWRfcGF5bG9hZC0+cGF5bG9hZCA9IHBheWxvYWQgKyBv
ZmZzZXRfOworICBwYXJzZWRfcGF5bG9hZC0+cGF5bG9hZF9sZW5ndGggPSBsZW5ndGhfOworICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSdHBEZXBhY2tldGl6ZXJIMjY1OjpQcm9jZXNzQXBPclNp
bmdsZU5hbHUoCisgICAgUnRwRGVwYWNrZXRpemVyOjpQYXJzZWRQYXlsb2FkKiBwYXJzZWRfcGF5
bG9hZCwKKyAgICBjb25zdCB1aW50OF90KiBwYXlsb2FkX2RhdGEpIHsKKyAgcGFyc2VkX3BheWxv
YWQtPnZpZGVvX2hlYWRlcigpLndpZHRoID0gMDsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hl
YWRlcigpLmhlaWdodCA9IDA7CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIoKS5jb2Rl
YyA9IGtWaWRlb0NvZGVjSDI2NTsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlcigpLmlz
X2ZpcnN0X3BhY2tldF9pbl9mcmFtZSA9IHRydWU7CisgIGF1dG8mIGgyNjVfaGVhZGVyID0gYWJz
bDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4oCisgICAgICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9f
aGVhZGVyKCkudmlkZW9fdHlwZV9oZWFkZXIpOworCisgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfc3Rh
cnQgPSBwYXlsb2FkX2RhdGEgKyBrSGV2Y05hbEhlYWRlclNpemU7CisgIGNvbnN0IHNpemVfdCBu
YWx1X2xlbmd0aCA9IGxlbmd0aF8gLSBrSGV2Y05hbEhlYWRlclNpemU7CisgIHVpbnQ4X3QgbmFs
X3R5cGUgPSAocGF5bG9hZF9kYXRhWzBdICYga0hldmNUeXBlTWFzaykgPj4gMTsKKyAgc3RkOjp2
ZWN0b3I8c2l6ZV90PiBuYWx1X3N0YXJ0X29mZnNldHM7CisgIGlmIChuYWxfdHlwZSA9PSBIMjY1
OjpOYWx1VHlwZTo6a0FQKSB7CisgICAgLy8gU2tpcCB0aGUgU3RhcEEgaGVhZGVyIChTdGFwQSBO
QUwgdHlwZSArIGxlbmd0aCkuCisgICAgaWYgKGxlbmd0aF8gPD0ga0hldmNBcEhlYWRlclNpemUp
IHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJBUCBoZWFkZXIgdHJ1bmNhdGVkLiI7Cisg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFQYXJzZUFwU3RhcnRPZmZzZXRz
KG5hbHVfc3RhcnQsIG5hbHVfbGVuZ3RoLCAmbmFsdV9zdGFydF9vZmZzZXRzKSkgeworICAgICAg
UlRDX0xPRyhMU19FUlJPUikgPDwgIkFQIHBhY2tldCB3aXRoIGluY29ycmVjdCBOQUxVIHBhY2tl
dCBsZW5ndGhzLiI7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaDI2NV9oZWFk
ZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVBUDsKKyAgICAvLyBuYWxfdHlwZSA9IChwYXls
b2FkX2RhdGFba0hldmNBcEhlYWRlclNpemVdICYga0hldmNUeXBlTWFzaykgPj4gMTsKKyAgfSBl
bHNlIHsKKyAgICBoMjY1X2hlYWRlci5wYWNrZXRpemF0aW9uX3R5cGUgPSBrSDI2NVNpbmdsZU5h
bHU7CisgICAgbmFsdV9zdGFydF9vZmZzZXRzLnB1c2hfYmFjaygwKTsKKyAgfQorICBoMjY1X2hl
YWRlci5uYWx1X3R5cGUgPSBuYWxfdHlwZTsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRl
cigpLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVEZWx0YTsKKworICBu
YWx1X3N0YXJ0X29mZnNldHMucHVzaF9iYWNrKGxlbmd0aF8gKyBrSGV2Y0xlbmd0aEZpZWxkU2l6
ZSk7ICAvLyBFbmQgb2Zmc2V0LgorICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG5hbHVfc3RhcnRf
b2Zmc2V0cy5zaXplKCkgLSAxOyArK2kpIHsKKyAgICBzaXplX3Qgc3RhcnRfb2Zmc2V0ID0gbmFs
dV9zdGFydF9vZmZzZXRzW2ldOworICAgIC8vIEVuZCBvZmZzZXQgaXMgYWN0dWFsbHkgc3RhcnQg
b2Zmc2V0IGZvciBuZXh0IHVuaXQsIGV4Y2x1ZGluZyBsZW5ndGggZmllbGQKKyAgICAvLyBzbyBy
ZW1vdmUgdGhhdCBmcm9tIHRoaXMgdW5pdHMgbGVuZ3RoLgorICAgIHNpemVfdCBlbmRfb2Zmc2V0
ID0gbmFsdV9zdGFydF9vZmZzZXRzW2kgKyAxXSAtIGtIZXZjTGVuZ3RoRmllbGRTaXplOworICAg
IGlmIChlbmRfb2Zmc2V0IC0gc3RhcnRfb2Zmc2V0IDwga0hldmNOYWxIZWFkZXJTaXplKSB7ICAv
LyBTYW1lIGFzIEguMjY0LgorICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkFQIHBhY2tldCB0
b28gc2hvcnQiOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIEgyNjVOYWx1SW5m
byBuYWx1OworICAgIG5hbHUudHlwZSA9IChwYXlsb2FkX2RhdGFbc3RhcnRfb2Zmc2V0XSAmIGtI
ZXZjVHlwZU1hc2spID4+IDE7CisgICAgbmFsdS52cHNfaWQgPSAtMTsKKyAgICBuYWx1LnNwc19p
ZCA9IC0xOworICAgIG5hbHUucHBzX2lkID0gLTE7CisgICAgc3RhcnRfb2Zmc2V0ICs9IGtIZXZj
TmFsSGVhZGVyU2l6ZTsKKyAgICBzd2l0Y2ggKG5hbHUudHlwZSkgeworICAgICAgY2FzZSBIMjY1
OjpOYWx1VHlwZTo6a1ZwczogeworICAgICAgICBhYnNsOjpvcHRpb25hbDxIMjY1VnBzUGFyc2Vy
OjpWcHNTdGF0ZT4gdnBzID0gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAgICAgICAgICAm
cGF5bG9hZF9kYXRhW3N0YXJ0X29mZnNldF0sIGVuZF9vZmZzZXQgLSBzdGFydF9vZmZzZXQpOwor
ICAgICAgICBpZiAodnBzKSB7CisgICAgICAgICAgbmFsdS52cHNfaWQgPSB2cHMtPmlkOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIkZhaWxlZCB0
byBwYXJzZSBWUFMgaWQgZnJvbSBWUFMgc2xpY2UuIjsKKyAgICAgICAgfQorICAgICAgICBicmVh
azsKKyAgICAgIH0KKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtTcHM6IHsKKyAgICAgICAg
Ly8gQ2hlY2sgaWYgVlVJIGlzIHByZXNlbnQgaW4gU1BTIGFuZCBpZiBpdCBuZWVkcyB0byBiZSBt
b2RpZmllZCB0bworICAgICAgICAvLyBhdm9pZCBleGNlc3NpdmUgZGVjb2RlciBsYXRlbmN5Lgor
CisgICAgICAgIC8vIENvcHkgYW55IHByZXZpb3VzIGRhdGEgZmlyc3QgKGxpa2VseSBqdXN0IHRo
ZSBmaXJzdCBoZWFkZXIpLgorICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpCdWZmZXI+IG91
dHB1dF9idWZmZXIobmV3IHJ0Yzo6QnVmZmVyKCkpOworICAgICAgICBpZiAoc3RhcnRfb2Zmc2V0
KQorICAgICAgICAgIG91dHB1dF9idWZmZXItPkFwcGVuZERhdGEocGF5bG9hZF9kYXRhLCBzdGFy
dF9vZmZzZXQpOworCisgICAgICAgIGFic2w6Om9wdGlvbmFsPEgyNjVTcHNQYXJzZXI6OlNwc1N0
YXRlPiBzcHMgPSBIMjY1U3BzUGFyc2VyOjpQYXJzZVNwcygKKyAgICAgICAgICAgICZwYXlsb2Fk
X2RhdGFbc3RhcnRfb2Zmc2V0XSwgZW5kX29mZnNldCAtIHN0YXJ0X29mZnNldCk7CisKKyAgICAg
ICAgaWYgKHNwcykgeworICAgICAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIoKS53
aWR0aCA9IHNwcy0+d2lkdGg7CisgICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRl
cigpLmhlaWdodCA9IHNwcy0+aGVpZ2h0OworICAgICAgICAgIG5hbHUuc3BzX2lkID0gc3BzLT5p
ZDsKKyAgICAgICAgICBuYWx1LnZwc19pZCA9IHNwcy0+dnBzX2lkOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgPDwgIkZhaWxl
ZCB0byBwYXJzZSBTUFMgYW5kIFZQUyBpZCBmcm9tIFNQUyBzbGljZS4iOworICAgICAgICB9Cisg
ICAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIoKS5mcmFtZV90eXBlID0gVmlkZW9G
cmFtZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAg
IGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtQcHM6IHsKKyAgICAgICAgdWludDMyX3QgcHBzX2lkOwor
ICAgICAgICB1aW50MzJfdCBzcHNfaWQ7CisgICAgICAgIGlmIChIMjY1UHBzUGFyc2VyOjpQYXJz
ZVBwc0lkcygmcGF5bG9hZF9kYXRhW3N0YXJ0X29mZnNldF0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbmRfb2Zmc2V0IC0gc3RhcnRfb2Zmc2V0LCAmcHBzX2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNwc19pZCkpIHsKKyAgICAg
ICAgICBuYWx1LnBwc19pZCA9IHBwc19pZDsKKyAgICAgICAgICBuYWx1LnNwc19pZCA9IHNwc19p
ZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAg
ICAgICAgICAgIDw8ICJGYWlsZWQgdG8gcGFyc2UgUFBTIGlkIGFuZCBTUFMgaWQgZnJvbSBQUFMg
c2xpY2UuIjsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAgIGNhc2Ug
SDI2NTo6TmFsdVR5cGU6OmtJZHJXUmFkbDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtJ
ZHJOTHA6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprQ3JhOgorICAgICAgICBwYXJzZWRf
cGF5bG9hZC0+dmlkZW9faGVhZGVyKCkuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlk
ZW9GcmFtZUtleTsKKyAgICAgICAgUlRDX0ZBTExUSFJPVUdIKCk7CisgICAgICBjYXNlIEgyNjU6
Ok5hbHVUeXBlOjprVHJhaWxOOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1RyYWlsUjog
eworICAgICAgICBhYnNsOjpvcHRpb25hbDx1aW50MzJfdD4gcHBzX2lkID0KKyAgICAgICAgICAg
IEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRGcm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAg
ICAgICAgICAgICAgICZwYXlsb2FkX2RhdGFbc3RhcnRfb2Zmc2V0XSwgZW5kX29mZnNldCAtIHN0
YXJ0X29mZnNldCwKKyAgICAgICAgICAgICAgICBuYWx1LnR5cGUpOworICAgICAgICBpZiAocHBz
X2lkKSB7CisgICAgICAgICAgbmFsdS5wcHNfaWQgPSAqcHBzX2lkOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIkZhaWxlZCB0byBwYXJzZSBQUFMg
aWQgZnJvbSBzbGljZSBvZiB0eXBlOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCBzdGF0aWNfY2FzdDxpbnQ+KG5hbHUudHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgICB9CisgICAgICAvLyBTbGljZXMgYmVsb3cgZG9uJ3QgY29udGFpbiBTUFMgb3IgUFBT
IGlkcy4KKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtBdWQ6CisgICAgICBjYXNlIEgyNjU6
Ok5hbHVUeXBlOjprVHNhTjoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtUc2FSOgorICAg
ICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1N0c2FOOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a1N0c2FSOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1JhZGxOOgorICAgICAgY2Fz
ZSBIMjY1OjpOYWx1VHlwZTo6a1JhZGxSOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0Js
YVdMcDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtCbGFXUmFkbDoKKyAgICAgIGNhc2Ug
SDI2NTo6TmFsdVR5cGU6OmtQcmVmaXhTZWk6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjpr
U3VmZml4U2VpOgorICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtB
UDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtGVToKKyAgICAgICAgUlRDX0xPRyhMU19X
QVJOSU5HKSA8PCAiVW5leHBlY3RlZCBBUCBvciBGVSByZWNlaXZlZC4iOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCA9PSBr
TWF4TmFsdXNQZXJQYWNrZXQpIHsKKyAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAg
ICA8PCAiUmVjZWl2ZWQgcGFja2V0IGNvbnRhaW5pbmcgbW9yZSB0aGFuICIgPDwga01heE5hbHVz
UGVyUGFja2V0CisgICAgICAgICAgPDwgIiBOQUwgdW5pdHMuIFdpbGwgbm90IGtlZXAgdHJhY2sg
c3BzIGFuZCBwcHMgaWRzIGZvciBhbGwgb2YgdGhlbS4iOworICAgIH0gZWxzZSB7CisgICAgICBo
MjY1X2hlYWRlci5uYWx1c1toMjY1X2hlYWRlci5uYWx1c19sZW5ndGgrK10gPSBuYWx1OworICAg
IH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBSdHBEZXBhY2tldGl6ZXJIMjY1OjpQ
YXJzZUZ1TmFsdSgKKyAgICBSdHBEZXBhY2tldGl6ZXI6OlBhcnNlZFBheWxvYWQqIHBhcnNlZF9w
YXlsb2FkLAorICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSkgeworICBpZiAobGVuZ3Ro
XyA8IGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplKSB7CisgICAgUlRDX0xP
RyhMU19FUlJPUikgPDwgIkZVIE5BTCB1bml0cyB0cnVuY2F0ZWQuIjsKKyAgICByZXR1cm4gZmFs
c2U7CisgIH0KKyAgdWludDhfdCBmID0gcGF5bG9hZF9kYXRhWzBdICYga0hldmNGQml0OworICB1
aW50OF90IGxheWVyX2lkX2ggPSBwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y0xheWVySURITWFzazsK
KyAgdWludDhfdCBsYXllcl9pZF9sX3Vuc2hpZnRlZCA9IHBheWxvYWRfZGF0YVsxXSAmIGtIZXZj
TGF5ZXJJRExNYXNrOworICB1aW50OF90IHRpZCA9IHBheWxvYWRfZGF0YVsxXSAmIGtIZXZjVElE
TWFzazsKKworICB1aW50OF90IG9yaWdpbmFsX25hbF90eXBlID0gcGF5bG9hZF9kYXRhWzJdICYg
a0hldmNUeXBlTWFza0luRnVIZWFkZXI7CisgIGJvb2wgZmlyc3RfZnJhZ21lbnQgPSBwYXlsb2Fk
X2RhdGFbMl0gJiBrSGV2Y1NCaXQ7CisgIEgyNjVOYWx1SW5mbyBuYWx1OworICBuYWx1LnR5cGUg
PSBvcmlnaW5hbF9uYWxfdHlwZTsKKyAgbmFsdS52cHNfaWQgPSAtMTsKKyAgbmFsdS5zcHNfaWQg
PSAtMTsKKyAgbmFsdS5wcHNfaWQgPSAtMTsKKyAgaWYgKGZpcnN0X2ZyYWdtZW50KSB7CisgICAg
b2Zmc2V0XyA9IDE7CisgICAgbGVuZ3RoXyAtPSAxOworICAgIGFic2w6Om9wdGlvbmFsPHVpbnQz
Ml90PiBwcHNfaWQgPQorICAgICAgICBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwc0lkRnJvbVNsaWNl
U2VnbWVudExheWVyUmJzcCgKKyAgICAgICAgICAgIHBheWxvYWRfZGF0YSArIGtIZXZjTmFsSGVh
ZGVyU2l6ZSArIGtIZXZjRnVIZWFkZXJTaXplLAorICAgICAgICAgICAgbGVuZ3RoXyAtIGtIZXZj
RnVIZWFkZXJTaXplLCBuYWx1LnR5cGUpOworICAgIGlmIChwcHNfaWQpIHsKKyAgICAgIG5hbHUu
cHBzX2lkID0gKnBwc19pZDsKKyAgICB9IGVsc2UgeworICAgICAgUlRDX0xPRyhMU19XQVJOSU5H
KQorICAgICAgICAgIDw8ICJGYWlsZWQgdG8gcGFyc2UgUFBTIGZyb20gZmlyc3QgZnJhZ21lbnQg
b2YgRlUgTkFMICIKKyAgICAgICAgICAgICAidW5pdCB3aXRoIG9yaWdpbmFsIHR5cGU6ICIKKyAg
ICAgICAgICA8PCBzdGF0aWNfY2FzdDxpbnQ+KG5hbHUudHlwZSk7CisgICAgfQorICAgIHVpbnQ4
X3QqIHBheWxvYWQgPSBjb25zdF9jYXN0PHVpbnQ4X3QqPihwYXlsb2FkX2RhdGEgKyBvZmZzZXRf
KTsKKyAgICBwYXlsb2FkWzBdID0gZiB8IG9yaWdpbmFsX25hbF90eXBlIDw8IDEgfCBsYXllcl9p
ZF9oOworICAgIHBheWxvYWRbMV0gPSBsYXllcl9pZF9sX3Vuc2hpZnRlZCB8IHRpZDsKKyAgfSBl
bHNlIHsKKyAgICBvZmZzZXRfID0ga0hldmNOYWxIZWFkZXJTaXplICsga0hldmNGdUhlYWRlclNp
emU7CisgICAgbGVuZ3RoXyAtPSAoa0hldmNOYWxIZWFkZXJTaXplICsga0hldmNGdUhlYWRlclNp
emUpOworICB9CisKKyAgaWYgKG9yaWdpbmFsX25hbF90eXBlID09IEgyNjU6Ok5hbHVUeXBlOjpr
SWRyV1JhZGwKKyAgICAgIHx8IG9yaWdpbmFsX25hbF90eXBlID09IEgyNjU6Ok5hbHVUeXBlOjpr
SWRyTkxwCisgICAgICB8fCBvcmlnaW5hbF9uYWxfdHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0Ny
YSkgeworICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIoKS5mcmFtZV90eXBlID0gVmlk
ZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICB9IGVsc2UgeworICAgIHBhcnNlZF9wYXls
b2FkLT52aWRlb19oZWFkZXIoKS5mcmFtZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0Zy
YW1lRGVsdGE7CisgIH0KKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlcigpLndpZHRoID0g
MDsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlcigpLmhlaWdodCA9IDA7CisgIHBhcnNl
ZF9wYXlsb2FkLT52aWRlb19oZWFkZXIoKS5jb2RlYyA9IGtWaWRlb0NvZGVjSDI2NTsKKyAgcGFy
c2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlcigpLmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSA9IGZp
cnN0X2ZyYWdtZW50OworICBhdXRvJiBoMjY1X2hlYWRlciA9IGFic2w6OmdldDxSVFBWaWRlb0hl
YWRlckgyNjU+KAorICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlcigpLnZpZGVvX3R5
cGVfaGVhZGVyKTsKKyAgaDI2NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVGVTsK
KyAgaDI2NV9oZWFkZXIubmFsdV90eXBlID0gb3JpZ2luYWxfbmFsX3R5cGU7CisgIGlmIChmaXJz
dF9mcmFnbWVudCkgeworICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xl
bmd0aF0gPSBuYWx1OworICAgIGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCA9IDE7CisgIH0KKyAg
cmV0dXJuIHRydWU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRf
aDI2NS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJlMTFiODA0NDU0NTdlNmExN2FmYjM4Nzg5Y2IxMDAwNjFlYmNi
NTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaApAQCAtMCww
ICsxLDEzMiBAQAorLyoKKyAqICBJbnRlbCBMaWNlbnNlCisgKi8KKworI2lmbmRlZiBXRUJSVENf
TU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfUlRQX0ZPUk1BVF9IMjY1X0hfCisjZGVmaW5lIFdFQlJU
Q19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9SVFBfRk9STUFUX0gyNjVfSF8KKworI2lmZGVmIFJU
Q19FTkFCTEVfSDI2NQorCisjaW5jbHVkZSA8cXVldWU+CisjaW5jbHVkZSA8c3RyaW5nPgorI2lu
Y2x1ZGUgImFwaS9hcnJheV92aWV3LmgiCisjaW5jbHVkZSAibW9kdWxlcy9pbmNsdWRlL21vZHVs
ZV9jb21tb25fdHlwZXMuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBf
Zm9ybWF0LmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3BhY2tldF90
b19zZW5kLmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5o
IgorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2
NV9nbG9iYWxzLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvYnVmZmVyLmgiCisjaW5jbHVkZSAicnRj
X2Jhc2UvY29uc3RydWN0b3JfbWFnaWMuaCIKKworbmFtZXNwYWNlIHdlYnJ0YyB7CisKK2NsYXNz
IFJ0cFBhY2tldGl6ZXJIMjY1IDogcHVibGljIFJ0cFBhY2tldGl6ZXIgeworIHB1YmxpYzoKKyAg
Ly8gSW5pdGlhbGl6ZSB3aXRoIHBheWxvYWQgZnJvbSBlbmNvZGVyLgorICAvLyBUaGUgcGF5bG9h
ZF9kYXRhIG11c3QgYmUgZXhhY3RseSBvbmUgZW5jb2RlZCBILjI2NSBmcmFtZS4KKyAgUnRwUGFj
a2V0aXplckgyNjUocnRjOjpBcnJheVZpZXc8Y29uc3QgdWludDhfdD4gcGF5bG9hZCwKKyAgICAg
ICAgICAgICAgICAgICAgUGF5bG9hZFNpemVMaW1pdHMgbGltaXRzLAorICAgICAgICAgICAgICAg
ICAgICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlLAorICAgICAgICAg
ICAgICAgICAgICBjb25zdCBSVFBGcmFnbWVudGF0aW9uSGVhZGVyJiBmcmFnbWVudGF0aW9uKTsK
KworICAgflJ0cFBhY2tldGl6ZXJIMjY1KCkgb3ZlcnJpZGU7CisKKyAgc2l6ZV90IE51bVBhY2tl
dHMoKSBjb25zdCBvdmVycmlkZTsKKworICAvLyBHZXQgdGhlIG5leHQgcGF5bG9hZCB3aXRoIEgu
MjY1IHBheWxvYWQgaGVhZGVyLgorICAvLyBidWZmZXIgaXMgYSBwb2ludGVyIHRvIHdoZXJlIHRo
ZSBvdXRwdXQgd2lsbCBiZSB3cml0dGVuLgorICAvLyBieXRlc190b19zZW5kIGlzIGFuIG91dHB1
dCB2YXJpYWJsZSB0aGF0IHdpbGwgY29udGFpbiBudW1iZXIgb2YgYnl0ZXMKKyAgLy8gd3JpdHRl
biB0byBidWZmZXIuIFRoZSBwYXJhbWV0ZXIgbGFzdF9wYWNrZXQgaXMgdHJ1ZSBmb3IgdGhlIGxh
c3QgcGFja2V0IG9mCisgIC8vIHRoZSBmcmFtZSwgZmFsc2Ugb3RoZXJ3aXNlIChpLmUuLCBjYWxs
IHRoZSBmdW5jdGlvbiBhZ2FpbiB0byBnZXQgdGhlCisgIC8vIG5leHQgcGFja2V0KS4KKyAgLy8g
UmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3Mgb3IgZmFsc2UgaWYgdGhlcmUgd2FzIG5vIHBheWxvYWQg
dG8gcGFja2V0aXplLgorICBib29sIE5leHRQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFj
a2V0KSBvdmVycmlkZTsKKworIHByaXZhdGU6CisgIHN0cnVjdCBQYWNrZXQgeworICAgIFBhY2tl
dChzaXplX3Qgb2Zmc2V0LAorICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgYm9v
bCBmaXJzdF9mcmFnbWVudCwKKyAgICAgICAgICAgYm9vbCBsYXN0X2ZyYWdtZW50LAorICAgICAg
ICAgICBib29sIGFnZ3JlZ2F0ZWQsCisgICAgICAgICAgIHVpbnQxNl90IGhlYWRlcikKKyAgICAg
ICAgOiBvZmZzZXQob2Zmc2V0KSwKKyAgICAgICAgICBzaXplKHNpemUpLAorICAgICAgICAgIGZp
cnN0X2ZyYWdtZW50KGZpcnN0X2ZyYWdtZW50KSwKKyAgICAgICAgICBsYXN0X2ZyYWdtZW50KGxh
c3RfZnJhZ21lbnQpLAorICAgICAgICAgIGFnZ3JlZ2F0ZWQoYWdncmVnYXRlZCksCisgICAgICAg
ICAgaGVhZGVyKGhlYWRlcikge30KKworICAgIHNpemVfdCBvZmZzZXQ7CisgICAgc2l6ZV90IHNp
emU7CisgICAgYm9vbCBmaXJzdF9mcmFnbWVudDsKKyAgICBib29sIGxhc3RfZnJhZ21lbnQ7Cisg
ICAgYm9vbCBhZ2dyZWdhdGVkOworICAgIHVpbnQxNl90IGhlYWRlcjsgIC8vIERpZmZlcmVudCBm
cm9tIEgyNjQKKyAgfTsKKyAgc3RydWN0IEZyYWdtZW50IHsKKyAgICBGcmFnbWVudChjb25zdCB1
aW50OF90KiBidWZmZXIsIHNpemVfdCBsZW5ndGgpOworICAgIGV4cGxpY2l0IEZyYWdtZW50KGNv
bnN0IEZyYWdtZW50JiBmcmFnbWVudCk7CisgICAgY29uc3QgdWludDhfdCogYnVmZmVyID0gbnVs
bHB0cjsKKyAgICBzaXplX3QgbGVuZ3RoID0gMDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpC
dWZmZXI+IHRtcF9idWZmZXI7CisgIH07CisgIHN0cnVjdCBQYWNrZXRVbml0IHsKKyAgICBQYWNr
ZXRVbml0KGNvbnN0IEZyYWdtZW50JiBzb3VyY2VfZnJhZ21lbnQsCisgICAgICAgICAgICAgICBi
b29sIGZpcnN0X2ZyYWdtZW50LAorICAgICAgICAgICAgICAgYm9vbCBsYXN0X2ZyYWdtZW50LAor
ICAgICAgICAgICAgICAgYm9vbCBhZ2dyZWdhdGVkLAorICAgICAgICAgICAgICAgdWludDE2X3Qg
aGVhZGVyKQorICAgICAgICA6IHNvdXJjZV9mcmFnbWVudChzb3VyY2VfZnJhZ21lbnQpLAorICAg
ICAgICAgIGZpcnN0X2ZyYWdtZW50KGZpcnN0X2ZyYWdtZW50KSwKKyAgICAgICAgICBsYXN0X2Zy
YWdtZW50KGxhc3RfZnJhZ21lbnQpLAorICAgICAgICAgIGFnZ3JlZ2F0ZWQoYWdncmVnYXRlZCks
CisgICAgICAgICAgaGVhZGVyKGhlYWRlcikge30KKworICAgIGNvbnN0IEZyYWdtZW50IHNvdXJj
ZV9mcmFnbWVudDsKKyAgICBib29sIGZpcnN0X2ZyYWdtZW50OworICAgIGJvb2wgbGFzdF9mcmFn
bWVudDsKKyAgICBib29sIGFnZ3JlZ2F0ZWQ7CisgICAgdWludDE2X3QgaGVhZGVyOworICB9Owor
ICB0eXBlZGVmIHN0ZDo6cXVldWU8UGFja2V0PiBQYWNrZXRRdWV1ZTsKKyAgc3RkOjpkZXF1ZTxG
cmFnbWVudD4gaW5wdXRfZnJhZ21lbnRzXzsKKyAgc3RkOjpxdWV1ZTxQYWNrZXRVbml0PiBwYWNr
ZXRzXzsKKworICBib29sIEdlbmVyYXRlUGFja2V0cyhIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFj
a2V0aXphdGlvbl9tb2RlKTsKKyAgYm9vbCBQYWNrZXRpemVGdShzaXplX3QgZnJhZ21lbnRfaW5k
ZXgpOworICBpbnQgUGFja2V0aXplQXAoc2l6ZV90IGZyYWdtZW50X2luZGV4KTsKKyAgYm9vbCBQ
YWNrZXRpemVTaW5nbGVOYWx1KHNpemVfdCBmcmFnbWVudF9pbmRleCk7CisKKyAgdm9pZCBOZXh0
QWdncmVnYXRlUGFja2V0KFJ0cFBhY2tldFRvU2VuZCogcnRwX3BhY2tldCwgYm9vbCBsYXN0KTsK
KyAgdm9pZCBOZXh0RnJhZ21lbnRQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0KTsK
KworICBjb25zdCBQYXlsb2FkU2l6ZUxpbWl0cyBsaW1pdHNfOworICBzaXplX3QgbnVtX3BhY2tl
dHNfbGVmdF87CisgIFJUUEZyYWdtZW50YXRpb25IZWFkZXIgZnJhZ21lbnRhdGlvbl87CisKKyAg
UlRDX0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihSdHBQYWNrZXRpemVySDI2NSk7Cit9OworCisv
LyBEZXBhY2tldGl6ZXIgZm9yIEguMjY1LgorY2xhc3MgUnRwRGVwYWNrZXRpemVySDI2NSA6IHB1
YmxpYyBSdHBEZXBhY2tldGl6ZXIgeworIHB1YmxpYzoKKyAgdmlydHVhbCB+UnRwRGVwYWNrZXRp
emVySDI2NSgpIHt9CisKKyAgYm9vbCBQYXJzZShQYXJzZWRQYXlsb2FkKiBwYXJzZWRfcGF5bG9h
ZCwKKyAgICAgICAgICAgICBjb25zdCB1aW50OF90KiBwYXlsb2FkX2RhdGEsCisgICAgICAgICAg
ICAgc2l6ZV90IHBheWxvYWRfZGF0YV9sZW5ndGgpIG92ZXJyaWRlOworCisgcHJpdmF0ZToKKyAg
Ym9vbCBQYXJzZUZ1TmFsdShSdHBEZXBhY2tldGl6ZXI6OlBhcnNlZFBheWxvYWQqIHBhcnNlZF9w
YXlsb2FkLAorICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSk7
CisgIGJvb2wgUHJvY2Vzc0FwT3JTaW5nbGVOYWx1KFJ0cERlcGFja2V0aXplcjo6UGFyc2VkUGF5
bG9hZCogcGFyc2VkX3BheWxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSk7CisKKyAgc2l6ZV90IG9mZnNldF87CisgIHNpemVfdCBs
ZW5ndGhfOworICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpCdWZmZXI+IG1vZGlmaWVkX2J1ZmZlcl87
Cit9OworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworI2VuZGlmCisjZW5kaWYgIC8vIFdFQlJUQ19N
T0RVTEVTX1JUUF9SVENQX1NPVVJDRV9SVFBfRk9STUFUX0gyNjVfSF8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF9zZW5kZXJfdmlkZW8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVvLmNj
CmluZGV4IGQ1Y2FkNDY3ZDFmZjVhMzIxNjMzYzE1YmM3YzI2MWYzNDc3Nzc5NzQuLjM1NTVjZTdm
YjVlM2ZiOWYyZjQ5NzAyZTI0YTczOGE2NTk4MDdhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF9zZW5kZXJfdmlkZW8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3NlbmRlcl92aWRlby5jYwpAQCAt
MjQ4LDYgKzI0OCwxMCBAQCB2b2lkIFJUUFNlbmRlclZpZGVvOjpSZWdpc3RlclBheWxvYWRUeXBl
KGludDhfdCBwYXlsb2FkX3R5cGUsCiAgICAgICB2aWRlb190eXBlID0ga1ZpZGVvQ29kZWNWUDk7
CiAgICAgfSBlbHNlIGlmIChhYnNsOjpFcXVhbHNJZ25vcmVDYXNlKHBheWxvYWRfbmFtZSwgIkgy
NjQiKSkgewogICAgICAgdmlkZW9fdHlwZSA9IGtWaWRlb0NvZGVjSDI2NDsKKyNpZmRlZiBSVENf
RU5BQkxFX0gyNjUKKyAgICB9IGVsc2UgaWYgKGFic2w6OkVxdWFsc0lnbm9yZUNhc2UocGF5bG9h
ZF9uYW1lLCAiSDI2NSIpKSB7CisgICAgICB2aWRlb190eXBlID0ga1ZpZGVvQ29kZWNIMjY1Owor
I2VuZGlmCiAgICAgfSBlbHNlIHsKICAgICAgIHZpZGVvX3R5cGUgPSBrVmlkZW9Db2RlY0dlbmVy
aWM7CiAgICAgfQpAQCAtODYxLDYgKzg2NSw5IEBAIHVpbnQ4X3QgUlRQU2VuZGVyVmlkZW86Okdl
dFRlbXBvcmFsSWQoY29uc3QgUlRQVmlkZW9IZWFkZXImIGhlYWRlcikgewogICAgICAgcmV0dXJu
IHZwOS50ZW1wb3JhbF9pZHg7CiAgICAgfQogICAgIHVpbnQ4X3Qgb3BlcmF0b3IoKShjb25zdCBS
VFBWaWRlb0hlYWRlckgyNjQmKSB7IHJldHVybiBrTm9UZW1wb3JhbElkeDsgfQorI2lmZGVmIFJU
Q19FTkFCTEVfSDI2NQorICAgIHVpbnQ4X3Qgb3BlcmF0b3IoKShjb25zdCBSVFBWaWRlb0hlYWRl
ckgyNjUmKSB7IHJldHVybiBrTm9UZW1wb3JhbElkeDsgfQorI2VuZGlmCiAgICAgdWludDhfdCBv
cGVyYXRvcigpKGNvbnN0IGFic2w6Om1vbm9zdGF0ZSYpIHsgcmV0dXJuIGtOb1RlbXBvcmFsSWR4
OyB9CiAgIH07CiAgIHN3aXRjaCAoaGVhZGVyLmNvZGVjKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJj
ZS9ydHBfdmlkZW9faGVhZGVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmgKaW5kZXgg
NzhmOGM0YjJkMTk4NzJhNTVlY2UwZDQ2ZjU2ODI2ZDI1ZTc4ZWFjNS4uODRiOTJjMmQ5NWUyNjMx
NTRlM2RhMjQ4OTgzNGU3ZTdmNjViYjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVv
X2hlYWRlci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaApAQCAtMjQsMTQgKzI0
LDI1IEBACiAjaW5jbHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX3RpbWluZy5oIgogI2luY2x1ZGUgImNv
bW1vbl90eXBlcy5oIiAgLy8gTk9MSU5UKGJ1aWxkL2luY2x1ZGUpCiAjaW5jbHVkZSAibW9kdWxl
cy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZmRl
ZiBSVENfRU5BQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3Mv
aDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy92
aWRlb19jb2RpbmcvY29kZWNzL3ZwOC9pbmNsdWRlL3ZwOF9nbG9iYWxzLmgiCiAjaW5jbHVkZSAi
bW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOS9pbmNsdWRlL3ZwOV9nbG9iYWxzLmgiCiAK
IG5hbWVzcGFjZSB3ZWJydGMgeworI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQordXNpbmcgUlRQVmlk
ZW9UeXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjptb25vc3RhdGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyVlA4LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlclZQOSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXJIMjY0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRl
ckgyNjU+OworI2Vsc2UKIHVzaW5nIFJUUFZpZGVvVHlwZUhlYWRlciA9IGFic2w6OnZhcmlhbnQ8
YWJzbDo6bW9ub3N0YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSVFBWaWRlb0hlYWRlclZQOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUlRQVmlkZW9IZWFkZXJWUDksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJUUFZpZGVvSGVhZGVySDI2ND47CisjZW5kaWYKIAogc3RydWN0IFJUUFZpZGVv
SGVhZGVyIHsKICAgc3RydWN0IEdlbmVyaWNEZXNjcmlwdG9ySW5mbyB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gy
NjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODA5NWM5MTQ1ZDA2MTQ2ZjA1
OWMzNDEyYTgxYTMwYzlhMDllODBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gy
NjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogIENvcHly
aWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC
U0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50
ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUg
ZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAg
YmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRy
ZWUuCisgKi8KKworLy8gVGhpcyBmaWxlIGNvbnRhaW5zIGNvZGVjIGRlcGVuZGVudCBkZWZpbml0
aW9ucyB0aGF0IGFyZSBuZWVkZWQgaW4KKy8vIG9yZGVyIHRvIGNvbXBpbGUgdGhlIFdlYlJUQyBj
b2RlYmFzZSwgZXZlbiBpZiB0aGlzIGNvZGVjIGlzIG5vdCB1c2VkLgorCisjaWZuZGVmIE1PRFVM
RVNfVklERU9fQ09ESU5HX0NPREVDU19IMjY1X0lOQ0xVREVfSDI2NV9HTE9CQUxTX0hfCisjZGVm
aW5lIE1PRFVMRVNfVklERU9fQ09ESU5HX0NPREVDU19IMjY1X0lOQ0xVREVfSDI2NV9HTE9CQUxT
X0hfCisKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKKworI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9f
Y29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisKK25hbWVzcGFjZSB3
ZWJydGMgeworCisvLyBUaGUgcGFja2V0aXphdGlvbiB0eXBlcyB0aGF0IHdlIHN1cHBvcnQ6IHNp
bmdsZSwgYWdncmVnYXRlZCwgYW5kIGZyYWdtZW50ZWQuCitlbnVtIEgyNjVQYWNrZXRpemF0aW9u
VHlwZXMgeworICBrSDI2NVNpbmdsZU5hbHUsICAvLyBUaGlzIHBhY2tldCBjb250YWlucyBhIHNp
bmdsZSBOQUwgdW5pdC4KKyAga0gyNjVBUCwgICAgICAgICAgLy8gVGhpcyBwYWNrZXQgY29udGFp
bnMgYWdncmVnYXRpb24gUGFja2V0LgorICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIHBh
Y2tldCBoYXMgYW4gYXNzb2NpYXRlZCBOQUwgdW5pdCB0eXBlLAorICAgICAgICAgICAgICAgICAg
ICAvLyBpdCdsbCBiZSBmb3IgdGhlIGZpcnN0IHN1Y2ggYWdncmVnYXRlZCBwYWNrZXQuCisgIGtI
MjY1RlUsICAgICAgICAgIC8vIFRoaXMgcGFja2V0IGNvbnRhaW5zIGEgRlUgKGZyYWdtZW50YXRp
b24KKyAgICAgICAgICAgICAgICAgICAgLy8gdW5pdCkgcGFja2V0LCBtZWFuaW5nIGl0IGlzIGEg
cGFydCBvZiBhIGZyYW1lCisgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHRvbyBsYXJn
ZSB0byBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQuCit9OworCitzdHJ1Y3QgSDI2NU5hbHVJbmZv
IHsKKyAgdWludDhfdCB0eXBlOworICBpbnQgdnBzX2lkOworICBpbnQgc3BzX2lkOworICBpbnQg
cHBzX2lkOworfTsKKworZW51bSBjbGFzcyBIMjY1UGFja2V0aXphdGlvbk1vZGUgeworICBOb25J
bnRlcmxlYXZlZCA9IDAsICAvLyBNb2RlIDEgLSBTVEFQLUEsIEZVLUEgaXMgYWxsb3dlZAorICBT
aW5nbGVOYWxVbml0ICAgICAgICAvLyBNb2RlIDAgLSBvbmx5IHNpbmdsZSBOQUxVIGFsbG93ZWQK
K307CisKK3N0cnVjdCBSVFBWaWRlb0hlYWRlckgyNjUgeworICAvLyBUaGUgTkFMIHVuaXQgdHlw
ZS4gSWYgdGhpcyBpcyBhIGhlYWRlciBmb3IgYSBmcmFnbWVudGVkIHBhY2tldCwgaXQncyB0aGUK
KyAgLy8gTkFMIHVuaXQgdHlwZSBvZiB0aGUgb3JpZ2luYWwgZGF0YS4gSWYgdGhpcyBpcyB0aGUg
aGVhZGVyIGZvciBhbiBhZ2dyZWdhdGVkCisgIC8vIHBhY2tldCwgaXQncyB0aGUgTkFMIHVuaXQg
dHlwZSBvZiB0aGUgZmlyc3QgTkFMIHVuaXQgaW4gdGhlIHBhY2tldC4KKyAgdWludDhfdCBuYWx1
X3R5cGU7CisgIEgyNjVQYWNrZXRpemF0aW9uVHlwZXMgcGFja2V0aXphdGlvbl90eXBlOworICBI
MjY1TmFsdUluZm8gbmFsdXNba01heE5hbHVzUGVyUGFja2V0XTsKKyAgc2l6ZV90IG5hbHVzX2xl
bmd0aDsKKyAgLy8gVGhlIHBhY2tldGl6YXRpb24gdHlwZSBvZiB0aGlzIGJ1ZmZlciAtIHNpbmds
ZSwgYWdncmVnYXRlZCBvciBmcmFnbWVudGVkLgorICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFj
a2V0aXphdGlvbl9tb2RlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworCisjZW5kaWYK
KworI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVPX0NPRElOR19DT0RFQ1NfSDI2NV9JTkNMVURFX0gy
NjVfR0xPQkFMU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL211bHRpcGxleC9tdWx0aXBs
ZXhfZW5jb2Rlcl9hZGFwdGVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL211bHRpcGxleC9tdWx0aXBsZXhf
ZW5jb2Rlcl9hZGFwdGVyLmNjCmluZGV4IDMxYTBkNTA5ZmEyMGZmYzg4YTFkYTljMGNjNzZkZjVi
NmQzMTBmYmQuLjU1Mjc0NTMzZGQzMDUwYTVhMTJmOTgxNzMwNzg1NTRhMDVmY2VhMjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL2NvZGVjcy9tdWx0aXBsZXgvbXVsdGlwbGV4X2VuY29kZXJfYWRhcHRlci5j
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3ZpZGVvX2NvZGluZy9jb2RlY3MvbXVsdGlwbGV4L211bHRpcGxleF9lbmNvZGVyX2FkYXB0ZXIu
Y2MKQEAgLTk1LDYgKzk1LDEyIEBAIGludCBNdWx0aXBsZXhFbmNvZGVyQWRhcHRlcjo6SW5pdEVu
Y29kZSgKICAgICAgIGtleV9mcmFtZV9pbnRlcnZhbF8gPSB2aWRlb19jb2RlYy5IMjY0KCktPmtl
eUZyYW1lSW50ZXJ2YWw7CiAgICAgICB2aWRlb19jb2RlYy5IMjY0KCktPmtleUZyYW1lSW50ZXJ2
YWwgPSAwOwogICAgICAgYnJlYWs7CisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisgICAgY2FzZSBr
VmlkZW9Db2RlY0gyNjU6CisgICAgICBrZXlfZnJhbWVfaW50ZXJ2YWxfID0gdmlkZW9fY29kZWMu
SDI2NSgpLT5rZXlGcmFtZUludGVydmFsOworICAgICAgdmlkZW9fY29kZWMuSDI2NSgpLT5rZXlG
cmFtZUludGVydmFsID0gMDsKKyAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgZGVmYXVsdDoKICAg
ICAgIGJyZWFrOwogICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9lbmNvZGVkX2ZyYW1lLmNjIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvZW5jb2RlZF9mcmFtZS5jYwppbmRleCBjN2E3NDkwNGM4ODRmZWY0MGFmMjYzY2YwNDhjNDA1
NjFmN2VjMzIwLi4wZmU5YzkzODQxNjljYjhiNGQ2NmQ0MjlhNDMxNjRhZjMyNmMzNzBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3ZpZGVvX2NvZGluZy9lbmNvZGVkX2ZyYW1lLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2VuY29kZWRfZnJhbWUu
Y2MKQEAgLTE1Myw2ICsxNTMsMTIgQEAgdm9pZCBWQ01FbmNvZGVkRnJhbWU6OkNvcHlDb2RlY1Nw
ZWNpZmljKGNvbnN0IFJUUFZpZGVvSGVhZGVyKiBoZWFkZXIpIHsKICAgICAgICAgfQogICAgICAg
ICBicmVhazsKICAgICAgIH0KKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKKyAgICAgIGNhc2Uga1Zp
ZGVvQ29kZWNIMjY1OiB7CisgICAgICAgIF9jb2RlY1NwZWNpZmljSW5mby5jb2RlY1R5cGUgPSBr
VmlkZW9Db2RlY0gyNjU7CisgICAgICAgIGJyZWFrOworICAgICAgfQorI2VuZGlmCiAgICAgICBk
ZWZhdWx0OiB7CiAgICAgICAgIF9jb2RlY1NwZWNpZmljSW5mby5jb2RlY1R5cGUgPSBrVmlkZW9D
b2RlY0dlbmVyaWM7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNf
c3BzX3Bwc190cmFja2VyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYzNTRiYThkNjA2ZmNjYzk2M2RhMTE3MDY1M2U0ZTk5OWY3MjJhY2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MKQEAgLTAsMCAr
MSwzMjcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBh
dXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUg
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAg
dHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNh
biBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHBy
b2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRo
ZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW5jbHVkZSAibW9kdWxlcy92aWRl
b19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgiCisKKyNpbmNsdWRlIDxzdHJpbmc+
CisjaW5jbHVkZSA8dXRpbGl0eT4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRf
Y29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNp
bmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJj
b21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlk
ZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGlu
Zy9jb2RlY3MvaDI2NC9pbmNsdWRlL2gyNjRfZ2xvYmFscy5oIgorI2luY2x1ZGUgIm1vZHVsZXMv
dmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjaW5jbHVk
ZSAibW9kdWxlcy92aWRlb19jb2RpbmcvZnJhbWVfb2JqZWN0LmgiCisjaW5jbHVkZSAibW9kdWxl
cy92aWRlb19jb2RpbmcvcGFja2V0X2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNr
cy5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKworI2lmZGVmIFJUQ19FTkFCTEVf
SDI2NQorCituYW1lc3BhY2Ugd2VicnRjIHsKK25hbWVzcGFjZSB2aWRlb19jb2RpbmcgeworCitu
YW1lc3BhY2UgeworY29uc3QgdWludDhfdCBzdGFydF9jb2RlX2gyNjVbXSA9IHswLCAwLCAwLCAx
fTsKK30gIC8vIG5hbWVzcGFjZQorCitIMjY1VnBzU3BzUHBzVHJhY2tlcjo6UGFja2V0QWN0aW9u
IEgyNjVWcHNTcHNQcHNUcmFja2VyOjpDb3B5QW5kRml4Qml0c3RyZWFtKAorICAgIFZDTVBhY2tl
dCogcGFja2V0KSB7CisgIFJUQ19EQ0hFQ0socGFja2V0LT5jb2RlYygpID09IGtWaWRlb0NvZGVj
SDI2NSk7CisKKyAgY29uc3QgdWludDhfdCogZGF0YSA9IHBhY2tldC0+ZGF0YVB0cjsKKyAgY29u
c3Qgc2l6ZV90IGRhdGFfc2l6ZSA9IHBhY2tldC0+c2l6ZUJ5dGVzOworICBjb25zdCBSVFBWaWRl
b0hlYWRlciYgdmlkZW9faGVhZGVyID0gcGFja2V0LT52aWRlb19oZWFkZXI7CisgIGF1dG8mIGgy
NjVfaGVhZGVyID0KKyAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlckgyNjU+KHBhY2tldC0+
dmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKKworICBib29sIGFwcGVuZF92cHNfc3Bz
X3BwcyA9IGZhbHNlOworICBhdXRvIHZwcyA9IHZwc19kYXRhXy5lbmQoKTsKKyAgYXV0byBzcHMg
PSBzcHNfZGF0YV8uZW5kKCk7CisgIGF1dG8gcHBzID0gcHBzX2RhdGFfLmVuZCgpOworCisgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoOyArK2kpIHsKKyAg
ICBjb25zdCBIMjY1TmFsdUluZm8mIG5hbHUgPSBoMjY1X2hlYWRlci5uYWx1c1tpXTsKKyAgICBz
d2l0Y2ggKG5hbHUudHlwZSkgeworICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1Zwczogewor
ICAgICAgICB2cHNfZGF0YV9bbmFsdS52cHNfaWRdLnNpemUgPSAwOworICAgICAgICBicmVhazsK
KyAgICAgIH0KKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtTcHM6IHsKKyAgICAgICAgc3Bz
X2RhdGFfW25hbHUuc3BzX2lkXS52cHNfaWQgPSBuYWx1LnZwc19pZDsKKyAgICAgICAgc3BzX2Rh
dGFfW25hbHUuc3BzX2lkXS53aWR0aCA9IHBhY2tldC0+d2lkdGgoKTsKKyAgICAgICAgc3BzX2Rh
dGFfW25hbHUuc3BzX2lkXS5oZWlnaHQgPSBwYWNrZXQtPmhlaWdodCgpOworICAgICAgICBicmVh
azsKKyAgICAgIH0KKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtQcHM6IHsKKyAgICAgICAg
cHBzX2RhdGFfW25hbHUucHBzX2lkXS5zcHNfaWQgPSBuYWx1LnNwc19pZDsKKyAgICAgICAgYnJl
YWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprSWRyV1JhZGw6CisgICAg
ICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprSWRyTkxwOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a0NyYTogeworICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBmaXJzdCBwYWNrZXQgb2YgYW4g
SURSLCBtYWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmVxdWlyZWQKKyAgICAgICAgLy8gU1BTL1BQUyBh
bmQgYWxzbyBjYWxjdWxhdGUgaG93IG11Y2ggZXh0cmEgc3BhY2Ugd2UgbmVlZCBpbiB0aGUgYnVm
ZmVyCisgICAgICAgIC8vIHRvIHByZXBlbmQgdGhlIFNQUy9QUFMgdG8gdGhlIGJpdHN0cmVhbSB3
aXRoIHN0YXJ0IGNvZGVzLgorICAgICAgICBpZiAodmlkZW9faGVhZGVyLmlzX2ZpcnN0X3BhY2tl
dF9pbl9mcmFtZSkgeworICAgICAgICAgIGlmIChuYWx1LnBwc19pZCA9PSAtMSkgeworICAgICAg
ICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiTm8gUFBTIGlkIGluIElEUiBuYWx1LiI7Cisg
ICAgICAgICAgICByZXR1cm4ga1JlcXVlc3RLZXlmcmFtZTsKKyAgICAgICAgICB9CisKKyAgICAg
ICAgICBwcHMgPSBwcHNfZGF0YV8uZmluZChuYWx1LnBwc19pZCk7CisgICAgICAgICAgaWYgKHBw
cyA9PSBwcHNfZGF0YV8uZW5kKCkpIHsKKyAgICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykK
KyAgICAgICAgICAgICAgICA8PCAiTm8gUFBTIHdpdGggaWQgIiA8PCBuYWx1LnBwc19pZCA8PCAi
IHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiBrUmVxdWVzdEtleWZyYW1lOworICAgICAg
ICAgIH0KKworICAgICAgICAgIHNwcyA9IHNwc19kYXRhXy5maW5kKHBwcy0+c2Vjb25kLnNwc19p
ZCk7CisgICAgICAgICAgaWYgKHNwcyA9PSBzcHNfZGF0YV8uZW5kKCkpIHsKKyAgICAgICAgICAg
IFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgICA8PCAiTm8gU1BTIHdpdGggaWQg
PDwgIiA8PCBwcHMtPnNlY29uZC5zcHNfaWQgPDwgIiByZWNlaXZlZCI7CisgICAgICAgICAgICBy
ZXR1cm4ga1JlcXVlc3RLZXlmcmFtZTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2cHMgPSB2
cHNfZGF0YV8uZmluZChzcHMtPnNlY29uZC52cHNfaWQpOworICAgICAgICAgIGlmICh2cHMgPT0g
dnBzX2RhdGFfLmVuZCgpKSB7CisgICAgICAgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAg
ICAgICAgICAgICAgPDwgIk5vIFZQUyB3aXRoIGlkICIgPDwgc3BzLT5zZWNvbmQudnBzX2lkIDw8
ICIgcmVjZWl2ZWQiOworICAgICAgICAgICAgcmV0dXJuIGtSZXF1ZXN0S2V5ZnJhbWU7CisgICAg
ICAgICAgfQorCisgICAgICAgICAgLy8gU2luY2UgdGhlIGZpcnN0IHBhY2tldCBvZiBldmVyeSBr
ZXlmcmFtZSBzaG91bGQgaGF2ZSBpdHMgd2lkdGggYW5kCisgICAgICAgICAgLy8gaGVpZ2h0IHNl
dCB3ZSBzZXQgaXQgaGVyZSBpbiB0aGUgY2FzZSBvZiBpdCBiZWluZyBzdXBwbGllZCBvdXQgb2YK
KyAgICAgICAgICAvLyBiYW5kLgorICAgICAgICAgIHBhY2tldC0+dmlkZW9faGVhZGVyLndpZHRo
ID0gc3BzLT5zZWNvbmQud2lkdGg7CisgICAgICAgICAgcGFja2V0LT52aWRlb19oZWFkZXIuaGVp
Z2h0ID0gc3BzLT5zZWNvbmQuaGVpZ2h0OworCisgICAgICAgICAgLy8gSWYgdGhlIFZQUy9TUFMv
UFBTIHdhcyBzdXBwbGllZCBvdXQgb2YgYmFuZCB0aGVuIHdlIHdpbGwgaGF2ZSBzYXZlZAorICAg
ICAgICAgIC8vIHRoZSBhY3R1YWwgYml0c3RyZWFtIGluIHxkYXRhfC4KKyAgICAgICAgICAvLyBU
aGlzIGJyYW5jaCBpcyBub3QgdmVyaWZpZWQuCisgICAgICAgICAgaWYgKHZwcy0+c2Vjb25kLmRh
dGEgJiYgc3BzLT5zZWNvbmQuZGF0YSAmJiBwcHMtPnNlY29uZC5kYXRhKSB7CisgICAgICAgICAg
ICBSVENfRENIRUNLX0dUKHZwcy0+c2Vjb25kLnNpemUsIDApOworICAgICAgICAgICAgUlRDX0RD
SEVDS19HVChzcHMtPnNlY29uZC5zaXplLCAwKTsKKyAgICAgICAgICAgIFJUQ19EQ0hFQ0tfR1Qo
cHBzLT5zZWNvbmQuc2l6ZSwgMCk7CisgICAgICAgICAgICBhcHBlbmRfdnBzX3Nwc19wcHMgPSB0
cnVlOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIH0KKyAg
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgfQorCisgIFJUQ19DSEVDSygh
YXBwZW5kX3Zwc19zcHNfcHBzIHx8CisgICAgICAgICAgICAoc3BzICE9IHNwc19kYXRhXy5lbmQo
KSAmJiBwcHMgIT0gcHBzX2RhdGFfLmVuZCgpKSk7CisKKyAgLy8gQ2FsY3VsYXRlIGhvdyBtdWNo
IHNwYWNlIHdlIG5lZWQgZm9yIHRoZSByZXN0IG9mIHRoZSBiaXRzdHJlYW0uCisgIHNpemVfdCBy
ZXF1aXJlZF9zaXplID0gMDsKKworICBpZiAoYXBwZW5kX3Zwc19zcHNfcHBzKSB7CisgICAgcmVx
dWlyZWRfc2l6ZSArPSB2cHMtPnNlY29uZC5zaXplICsgc2l6ZW9mKHN0YXJ0X2NvZGVfaDI2NSk7
CisgICAgcmVxdWlyZWRfc2l6ZSArPSBzcHMtPnNlY29uZC5zaXplICsgc2l6ZW9mKHN0YXJ0X2Nv
ZGVfaDI2NSk7CisgICAgcmVxdWlyZWRfc2l6ZSArPSBwcHMtPnNlY29uZC5zaXplICsgc2l6ZW9m
KHN0YXJ0X2NvZGVfaDI2NSk7CisgIH0KKworICBpZiAoaDI2NV9oZWFkZXIucGFja2V0aXphdGlv
bl90eXBlID09IGtIMjY1QVApIHsKKyAgICBjb25zdCB1aW50OF90KiBuYWx1X3B0ciA9IGRhdGEg
KyAxOworICAgIHdoaWxlIChuYWx1X3B0ciA8IGRhdGEgKyBkYXRhX3NpemUpIHsKKyAgICAgIFJU
Q19EQ0hFQ0sodmlkZW9faGVhZGVyLmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSk7CisgICAgICBy
ZXF1aXJlZF9zaXplICs9IHNpemVvZihzdGFydF9jb2RlX2gyNjUpOworCisgICAgICAvLyBUaGUg
Zmlyc3QgdHdvIGJ5dGVzIGRlc2NyaWJlIHRoZSBsZW5ndGggb2YgYSBzZWdtZW50LgorICAgICAg
dWludDE2X3Qgc2VnbWVudF9sZW5ndGggPSBuYWx1X3B0clswXSA8PCA4IHwgbmFsdV9wdHJbMV07
CisgICAgICBuYWx1X3B0ciArPSAyOworCisgICAgICByZXF1aXJlZF9zaXplICs9IHNlZ21lbnRf
bGVuZ3RoOworICAgICAgbmFsdV9wdHIgKz0gc2VnbWVudF9sZW5ndGg7CisgICAgfQorICB9IGVs
c2UgeworICAgIGlmICh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKQorICAg
ICAgcmVxdWlyZWRfc2l6ZSArPSBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICByZXF1aXJl
ZF9zaXplICs9IGRhdGFfc2l6ZTsKKyAgfQorCisgIC8vIFRoZW4gd2UgY29weSB0byB0aGUgbmV3
IGJ1ZmZlci4KKyAgdWludDhfdCogYnVmZmVyID0gbmV3IHVpbnQ4X3RbcmVxdWlyZWRfc2l6ZV07
CisgIHVpbnQ4X3QqIGluc2VydF9hdCA9IGJ1ZmZlcjsKKworICBpZiAoYXBwZW5kX3Zwc19zcHNf
cHBzKSB7CisgICAgLy8gSW5zZXJ0IFZQUy4KKyAgICBtZW1jcHkoaW5zZXJ0X2F0LCBzdGFydF9j
b2RlX2gyNjUsIHNpemVvZihzdGFydF9jb2RlX2gyNjUpKTsKKyAgICBpbnNlcnRfYXQgKz0gc2l6
ZW9mKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgbWVtY3B5KGluc2VydF9hdCwgdnBzLT5zZWNvbmQu
ZGF0YS5nZXQoKSwgdnBzLT5zZWNvbmQuc2l6ZSk7CisgICAgaW5zZXJ0X2F0ICs9IHZwcy0+c2Vj
b25kLnNpemU7CisKKyAgICAvLyBJbnNlcnQgU1BTLgorICAgIG1lbWNweShpbnNlcnRfYXQsIHN0
YXJ0X2NvZGVfaDI2NSwgc2l6ZW9mKHN0YXJ0X2NvZGVfaDI2NSkpOworICAgIGluc2VydF9hdCAr
PSBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICBtZW1jcHkoaW5zZXJ0X2F0LCBzcHMtPnNl
Y29uZC5kYXRhLmdldCgpLCBzcHMtPnNlY29uZC5zaXplKTsKKyAgICBpbnNlcnRfYXQgKz0gc3Bz
LT5zZWNvbmQuc2l6ZTsKKworICAgIC8vIEluc2VydCBQUFMuCisgICAgbWVtY3B5KGluc2VydF9h
dCwgc3RhcnRfY29kZV9oMjY1LCBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KSk7CisgICAgaW5zZXJ0
X2F0ICs9IHNpemVvZihzdGFydF9jb2RlX2gyNjUpOworICAgIG1lbWNweShpbnNlcnRfYXQsIHBw
cy0+c2Vjb25kLmRhdGEuZ2V0KCksIHBwcy0+c2Vjb25kLnNpemUpOworICAgIGluc2VydF9hdCAr
PSBwcHMtPnNlY29uZC5zaXplOworCisgICAgLy8gVXBkYXRlIGNvZGVjIGhlYWRlciB0byByZWZs
ZWN0IHRoZSBuZXdseSBhZGRlZCBTUFMgYW5kIFBQUy4KKyAgICBIMjY1TmFsdUluZm8gdnBzX2lu
Zm87CisgICAgdnBzX2luZm8udHlwZSA9IEgyNjU6Ok5hbHVUeXBlOjprVnBzOworICAgIHZwc19p
bmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7CisgICAgdnBzX2luZm8uc3BzX2lkID0gLTE7CisgICAg
dnBzX2luZm8ucHBzX2lkID0gLTE7CisgICAgSDI2NU5hbHVJbmZvIHNwc19pbmZvOworICAgIHNw
c19pbmZvLnR5cGUgPSBIMjY1OjpOYWx1VHlwZTo6a1NwczsKKyAgICBzcHNfaW5mby52cHNfaWQg
PSB2cHMtPmZpcnN0OworICAgIHNwc19pbmZvLnNwc19pZCA9IHNwcy0+Zmlyc3Q7CisgICAgc3Bz
X2luZm8ucHBzX2lkID0gLTE7CisgICAgSDI2NU5hbHVJbmZvIHBwc19pbmZvOworICAgIHBwc19p
bmZvLnR5cGUgPSBIMjY1OjpOYWx1VHlwZTo6a1BwczsKKyAgICBwcHNfaW5mby52cHNfaWQgPSB2
cHMtPmZpcnN0OworICAgIHBwc19pbmZvLnNwc19pZCA9IHNwcy0+Zmlyc3Q7CisgICAgcHBzX2lu
Zm8ucHBzX2lkID0gcHBzLT5maXJzdDsKKyAgICBpZiAoaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3Ro
ICsgMiA8PSBrTWF4TmFsdXNQZXJQYWNrZXQpIHsKKyAgICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gy
NjVfaGVhZGVyLm5hbHVzX2xlbmd0aCsrXSA9IHZwc19pbmZvOworICAgICAgaDI2NV9oZWFkZXIu
bmFsdXNbaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoKytdID0gc3BzX2luZm87CisgICAgICBoMjY1
X2hlYWRlci5uYWx1c1toMjY1X2hlYWRlci5uYWx1c19sZW5ndGgrK10gPSBwcHNfaW5mbzsKKyAg
ICB9IGVsc2UgeworICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiTm90IGVub3VnaCBzcGFj
ZSBpbiBILjI2NSBjb2RlYyBoZWFkZXIgdG8gaW5zZXJ0ICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIlNQUy9QUFMgcHJvdmlkZWQgb3V0LW9mLWJhbmQuIjsKKyAgICB9CisgIH0KKwor
ICAvLyBDb3B5IHRoZSByZXN0IG9mIHRoZSBiaXRzdHJlYW0gYW5kIGluc2VydCBzdGFydCBjb2Rl
cy4KKyAgaWYgKGgyNjVfaGVhZGVyLnBhY2tldGl6YXRpb25fdHlwZSA9PSBrSDI2NUFQKSB7Cisg
ICAgY29uc3QgdWludDhfdCogbmFsdV9wdHIgPSBkYXRhICsgMTsKKyAgICB3aGlsZSAobmFsdV9w
dHIgPCBkYXRhICsgZGF0YV9zaXplKSB7CisgICAgICBtZW1jcHkoaW5zZXJ0X2F0LCBzdGFydF9j
b2RlX2gyNjUsIHNpemVvZihzdGFydF9jb2RlX2gyNjUpKTsKKyAgICAgIGluc2VydF9hdCArPSBz
aXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKworICAgICAgLy8gVGhlIGZpcnN0IHR3byBieXRlcyBk
ZXNjcmliZSB0aGUgbGVuZ3RoIG9mIGEgc2VnbWVudC4KKyAgICAgIHVpbnQxNl90IHNlZ21lbnRf
bGVuZ3RoID0gbmFsdV9wdHJbMF0gPDwgOCB8IG5hbHVfcHRyWzFdOworICAgICAgbmFsdV9wdHIg
Kz0gMjsKKworICAgICAgc2l6ZV90IGNvcHlfZW5kID0gbmFsdV9wdHIgLSBkYXRhICsgc2VnbWVu
dF9sZW5ndGg7CisgICAgICBpZiAoY29weV9lbmQgPiBkYXRhX3NpemUpIHsKKyAgICAgICAgZGVs
ZXRlW10gYnVmZmVyOworICAgICAgICByZXR1cm4ga0Ryb3A7CisgICAgICB9CisKKyAgICAgIG1l
bWNweShpbnNlcnRfYXQsIG5hbHVfcHRyLCBzZWdtZW50X2xlbmd0aCk7CisgICAgICBpbnNlcnRf
YXQgKz0gc2VnbWVudF9sZW5ndGg7CisgICAgICBuYWx1X3B0ciArPSBzZWdtZW50X2xlbmd0aDsK
KyAgICB9CisgIH0gZWxzZSB7CisgICAgaWYgKHZpZGVvX2hlYWRlci5pc19maXJzdF9wYWNrZXRf
aW5fZnJhbWUpIHsKKyAgICAgIG1lbWNweShpbnNlcnRfYXQsIHN0YXJ0X2NvZGVfaDI2NSwgc2l6
ZW9mKHN0YXJ0X2NvZGVfaDI2NSkpOworICAgICAgaW5zZXJ0X2F0ICs9IHNpemVvZihzdGFydF9j
b2RlX2gyNjUpOworICAgIH0KKyAgICBtZW1jcHkoaW5zZXJ0X2F0LCBkYXRhLCBkYXRhX3NpemUp
OworICB9CisKKyAgcGFja2V0LT5kYXRhUHRyID0gYnVmZmVyOworICBwYWNrZXQtPnNpemVCeXRl
cyA9IHJlcXVpcmVkX3NpemU7CisgIHJldHVybiBrSW5zZXJ0OworfQorCit2b2lkIEgyNjVWcHNT
cHNQcHNUcmFja2VyOjpJbnNlcnRWcHNTcHNQcHNOYWx1cygKKyAgICBjb25zdCBzdGQ6OnZlY3Rv
cjx1aW50OF90PiYgdnBzLAorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBzcHMsCisg
ICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHBwcykgeworICBjb25zdGV4cHIgc2l6ZV90
IGtOYWx1SGVhZGVyT2Zmc2V0ID0gMTsKKyAgaWYgKHZwcy5zaXplKCkgPCBrTmFsdUhlYWRlck9m
ZnNldCkgeworICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIlZQUyBzaXplICAiIDw8IHZwcy5z
aXplKCkgPDwgIiBpcyBzbWFsbGVyIHRoYW4gIgorICAgICAgICAgICAgICAgICAgICAgICAgPDwg
a05hbHVIZWFkZXJPZmZzZXQ7CisgICAgcmV0dXJuOworICB9CisgIGlmICgodnBzWzBdICYgMHg3
ZSkgPj4gMSAhPSBIMjY1OjpOYWx1VHlwZTo6a1NwcykgeworICAgIFJUQ19MT0coTFNfV0FSTklO
RykgPDwgIlNQUyBOYWx1IGhlYWRlciBtaXNzaW5nIjsKKyAgICByZXR1cm47CisgIH0KKyAgaWYg
KHNwcy5zaXplKCkgPCBrTmFsdUhlYWRlck9mZnNldCkgeworICAgIFJUQ19MT0coTFNfV0FSTklO
RykgPDwgIlNQUyBzaXplICAiIDw8IHNwcy5zaXplKCkgPDwgIiBpcyBzbWFsbGVyIHRoYW4gIgor
ICAgICAgICAgICAgICAgICAgICAgICAgPDwga05hbHVIZWFkZXJPZmZzZXQ7CisgICAgcmV0dXJu
OworICB9CisgIGlmICgoc3BzWzBdICYgMHg3ZSkgPj4gMSAhPSBIMjY1OjpOYWx1VHlwZTo6a1Nw
cykgeworICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIlNQUyBOYWx1IGhlYWRlciBtaXNzaW5n
IjsKKyAgICByZXR1cm47CisgIH0KKyAgaWYgKHBwcy5zaXplKCkgPCBrTmFsdUhlYWRlck9mZnNl
dCkgeworICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIlBQUyBzaXplICAiIDw8IHBwcy5zaXpl
KCkgPDwgIiBpcyBzbWFsbGVyIHRoYW4gIgorICAgICAgICAgICAgICAgICAgICAgICAgPDwga05h
bHVIZWFkZXJPZmZzZXQ7CisgICAgcmV0dXJuOworICB9CisgIGlmICgocHBzWzBdICYgMHg3ZSkg
Pj4gMSAhPSBIMjY1OjpOYWx1VHlwZTo6a1BwcykgeworICAgIFJUQ19MT0coTFNfV0FSTklORykg
PDwgIlNQUyBOYWx1IGhlYWRlciBtaXNzaW5nIjsKKyAgICByZXR1cm47CisgIH0KKyAgYWJzbDo6
b3B0aW9uYWw8SDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU+IHBhcnNlZF92cHMgPSBIMjY1VnBzUGFy
c2VyOjpQYXJzZVZwcygKKyAgICAgIHZwcy5kYXRhKCkgKyBrTmFsdUhlYWRlck9mZnNldCwgdnBz
LnNpemUoKSAtIGtOYWx1SGVhZGVyT2Zmc2V0KTsKKyAgYWJzbDo6b3B0aW9uYWw8SDI2NVNwc1Bh
cnNlcjo6U3BzU3RhdGU+IHBhcnNlZF9zcHMgPSBIMjY1U3BzUGFyc2VyOjpQYXJzZVNwcygKKyAg
ICAgIHNwcy5kYXRhKCkgKyBrTmFsdUhlYWRlck9mZnNldCwgc3BzLnNpemUoKSAtIGtOYWx1SGVh
ZGVyT2Zmc2V0KTsKKyAgYWJzbDo6b3B0aW9uYWw8SDI2NVBwc1BhcnNlcjo6UHBzU3RhdGU+IHBh
cnNlZF9wcHMgPSBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwcygKKyAgICAgIHBwcy5kYXRhKCkgKyBr
TmFsdUhlYWRlck9mZnNldCwgcHBzLnNpemUoKSAtIGtOYWx1SGVhZGVyT2Zmc2V0KTsKKworICBp
ZiAoIXBhcnNlZF92cHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJGYWlsZWQgdG8g
cGFyc2UgVlBTLiI7CisgIH0KKworICBpZiAoIXBhcnNlZF9zcHMpIHsKKyAgICBSVENfTE9HKExT
X1dBUk5JTkcpIDw8ICJGYWlsZWQgdG8gcGFyc2UgU1BTLiI7CisgIH0KKworICBpZiAoIXBhcnNl
ZF9wcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJGYWlsZWQgdG8gcGFyc2UgUFBT
LiI7CisgIH0KKworICBpZiAoIXBhcnNlZF92cHMgfHwgIXBhcnNlZF9wcHMgfHwgIXBhcnNlZF9z
cHMpIHsKKyAgICByZXR1cm47CisgIH0KKworICBWcHNJbmZvIHZwc19pbmZvOworICB2cHNfaW5m
by5zaXplID0gdnBzLnNpemUoKTsKKyAgdWludDhfdCogdnBzX2RhdGEgPSBuZXcgdWludDhfdFt2
cHNfaW5mby5zaXplXTsKKyAgbWVtY3B5KHZwc19kYXRhLCB2cHMuZGF0YSgpLCB2cHNfaW5mby5z
aXplKTsKKyAgdnBzX2luZm8uZGF0YS5yZXNldCh2cHNfZGF0YSk7CisgIHZwc19kYXRhX1twYXJz
ZWRfdnBzLT5pZF0gPSBzdGQ6Om1vdmUodnBzX2luZm8pOworCisgIFNwc0luZm8gc3BzX2luZm87
CisgIHNwc19pbmZvLnNpemUgPSBzcHMuc2l6ZSgpOworICBzcHNfaW5mby53aWR0aCA9IHBhcnNl
ZF9zcHMtPndpZHRoOworICBzcHNfaW5mby5oZWlnaHQgPSBwYXJzZWRfc3BzLT5oZWlnaHQ7Cisg
IHNwc19pbmZvLnZwc19pZCA9IHBhcnNlZF9zcHMtPnZwc19pZDsKKyAgdWludDhfdCogc3BzX2Rh
dGEgPSBuZXcgdWludDhfdFtzcHNfaW5mby5zaXplXTsKKyAgbWVtY3B5KHNwc19kYXRhLCBzcHMu
ZGF0YSgpLCBzcHNfaW5mby5zaXplKTsKKyAgc3BzX2luZm8uZGF0YS5yZXNldChzcHNfZGF0YSk7
CisgIHNwc19kYXRhX1twYXJzZWRfc3BzLT5pZF0gPSBzdGQ6Om1vdmUoc3BzX2luZm8pOworCisg
IFBwc0luZm8gcHBzX2luZm87CisgIHBwc19pbmZvLnNpemUgPSBwcHMuc2l6ZSgpOworICBwcHNf
aW5mby5zcHNfaWQgPSBwYXJzZWRfcHBzLT5zcHNfaWQ7CisgIHVpbnQ4X3QqIHBwc19kYXRhID0g
bmV3IHVpbnQ4X3RbcHBzX2luZm8uc2l6ZV07CisgIG1lbWNweShwcHNfZGF0YSwgcHBzLmRhdGEo
KSwgcHBzX2luZm8uc2l6ZSk7CisgIHBwc19pbmZvLmRhdGEucmVzZXQocHBzX2RhdGEpOworICBw
cHNfZGF0YV9bcGFyc2VkX3Bwcy0+aWRdID0gc3RkOjptb3ZlKHBwc19pbmZvKTsKKworICBSVENf
TE9HKExTX0lORk8pIDw8ICJJbnNlcnRlZCBTUFMgaWQgIiA8PCBwYXJzZWRfc3BzLT5pZCA8PCAi
IGFuZCBQUFMgaWQgIgorICAgICAgICAgICAgICAgICAgIDw8IHBhcnNlZF9wcHMtPmlkIDw8ICIg
KHJlZmVyZW5jaW5nIFNQUyAiCisgICAgICAgICAgICAgICAgICAgPDwgcGFyc2VkX3Bwcy0+c3Bz
X2lkIDw8ICIpIjsKK30KKworfSAgLy8gbmFtZXNwYWNlIHZpZGVvX2NvZGluZworfSAgLy8gbmFt
ZXNwYWNlIHdlYnJ0YworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19w
cHNfdHJhY2tlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
bW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2UzM2Y1YWI4OTQzYThhOWZiOTZmMzY3NDk4YzljZjkyOWFlNDliNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oCkBAIC0wLDAgKzEsNjUgQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4g
YWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3Vu
ZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0
aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9m
IHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIE1PRFVMRVNfVklERU9fQ09ESU5HX0gy
NjVfVlBTX1NQU19QUFNfVFJBQ0tFUl9IXworI2RlZmluZSBNT0RVTEVTX1ZJREVPX0NPRElOR19I
MjY1X1ZQU19TUFNfUFBTX1RSQUNLRVJfSF8KKworI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVk
ZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRl
ICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgorCituYW1lc3BhY2Ugd2Vi
cnRjIHsKKworY2xhc3MgVkNNUGFja2V0OworCituYW1lc3BhY2UgdmlkZW9fY29kaW5nIHsKKwor
Y2xhc3MgSDI2NVZwc1Nwc1Bwc1RyYWNrZXIgeworIHB1YmxpYzoKKyAgZW51bSBQYWNrZXRBY3Rp
b24geyBrSW5zZXJ0LCBrRHJvcCwga1JlcXVlc3RLZXlmcmFtZSB9OworCisgIFBhY2tldEFjdGlv
biBDb3B5QW5kRml4Qml0c3RyZWFtKFZDTVBhY2tldCogcGFja2V0KTsKKworICB2b2lkIEluc2Vy
dFZwc1Nwc1Bwc05hbHVzKGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiB2cHMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHNwcywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgcHBz
KTsKKworIHByaXZhdGU6CisgIHN0cnVjdCBWcHNJbmZvIHsKKyAgICBzaXplX3Qgc2l6ZSA9IDA7
CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gZGF0YTsKKyAgfTsKKworICBzdHJ1Y3Qg
UHBzSW5mbyB7CisgICAgaW50IHNwc19pZCA9IC0xOworICAgIHNpemVfdCBzaXplID0gMDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBkYXRhOworICB9OworCisgIHN0cnVjdCBTcHNJ
bmZvIHsKKyAgICBpbnQgdnBzX2lkID0gLTE7CisgICAgc2l6ZV90IHNpemUgPSAwOworICAgIGlu
dCB3aWR0aCA9IC0xOworICAgIGludCBoZWlnaHQgPSAtMTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
dWludDhfdFtdPiBkYXRhOworICB9OworCisgIHN0ZDo6bWFwPHVpbnQzMl90LCBWcHNJbmZvPiB2
cHNfZGF0YV87CisgIHN0ZDo6bWFwPHVpbnQzMl90LCBQcHNJbmZvPiBwcHNfZGF0YV87CisgIHN0
ZDo6bWFwPHVpbnQzMl90LCBTcHNJbmZvPiBzcHNfZGF0YV87Cit9OworCit9ICAvLyBuYW1lc3Bh
Y2UgdmlkZW9fY29kaW5nCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisKKyNlbmRpZiAgLy8gTU9E
VUxFU19WSURFT19DT0RJTkdfSDI2NF9TUFNfUFBTX1RSQUNLRVJfSF8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29k
aW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVv
X2NvZGVjX2ludGVyZmFjZS5oCmluZGV4IGU2NmRlYTdhOTU5ZTAyYTg5MTk4NDBjOWNjYmI4YTVm
OGFjNTA4MTQuLmM3NTA1MjIzOTM1NTU2NDNmNjRhZGI4NjYwNzgyNGFhN2UyNzI0NTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNlLmgKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcv
aW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaApAQCAtMTksNiArMTksOSBAQAogI2luY2x1
ZGUgImFwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oIgogI2luY2x1ZGUgImNvbW1vbl92
aWRlby9nZW5lcmljX2ZyYW1lX2Rlc2NyaXB0b3IvZ2VuZXJpY19mcmFtZV9pbmZvLmgiCiAjaW5j
bHVkZSAibW9kdWxlcy9pbmNsdWRlL21vZHVsZV9jb21tb25fdHlwZXMuaCIKKyNpZmRlZiBSVENf
RU5BQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9p
bmNsdWRlL2gyNjVfZ2xvYmFscy5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19j
b2RpbmcvaW5jbHVkZS92aWRlb19lcnJvcl9jb2Rlcy5oIgogI2luY2x1ZGUgInJ0Y19iYXNlL3N5
c3RlbS9ydGNfZXhwb3J0LmgiCiAKQEAgLTg5LDEwICs5MiwyMCBAQCBzdHJ1Y3QgQ29kZWNTcGVj
aWZpY0luZm9IMjY0IHsKIH07CiBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9kPENvZGVjU3BlY2lm
aWNJbmZvSDI2ND46OnZhbHVlLCAiIik7CiAKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKK3N0cnVj
dCBDb2RlY1NwZWNpZmljSW5mb0gyNjUgeworICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0
aXphdGlvbl9tb2RlOworICBib29sIGlkcl9mcmFtZTsKK307CisjZW5kaWYKKwogdW5pb24gQ29k
ZWNTcGVjaWZpY0luZm9VbmlvbiB7CiAgIENvZGVjU3BlY2lmaWNJbmZvVlA4IFZQODsKICAgQ29k
ZWNTcGVjaWZpY0luZm9WUDkgVlA5OwogICBDb2RlY1NwZWNpZmljSW5mb0gyNjQgSDI2NDsKKyNp
ZmRlZiBSVENfRU5BQkxFX0gyNjUKKyAgQ29kZWNTcGVjaWZpY0luZm9IMjY1IEgyNjU7CisjZW5k
aWYKIH07CiBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9kPENvZGVjU3BlY2lmaWNJbmZvVW5pb24+
Ojp2YWx1ZSwgIiIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9qaXR0ZXJfYnVmZmVyX2NvbW1vbi5o
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRl
b19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaAppbmRleCA2Y2NmZTM5MTk5NTRmOGQwOWJi
NTM3ZTRhZDkxNzYxZWZhNTFhMDlmLi4xY2NmOGIxZDI1YTE3YWUyN2EwMGZlM2UzZDFlMjVlZDFm
MDg5NDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9qaXR0ZXJfYnVmZmVyX2NvbW1vbi5oCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29k
aW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmgKQEAgLTU0LDYgKzU0LDkgQEAgZW51bSBWQ01GcmFt
ZUJ1ZmZlclN0YXRlRW51bSB7CiB9OwogCiBlbnVtIHsga0gyNjRTdGFydENvZGVMZW5ndGhCeXRl
cyA9IDQgfTsKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKK2VudW0geyBrSDI2NVN0YXJ0Q29kZUxl
bmd0aEJ5dGVzID0gNCB9OworI2VuZGlmCiB9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCiAKICNlbmRp
ZiAgLy8gTU9EVUxFU19WSURFT19DT0RJTkdfSklUVEVSX0JVRkZFUl9DT01NT05fSF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL3BhY2tldC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYwppbmRleCAwYzRhNjU4Yjhm
MjAzNDkxNmMxODUzNDZlNGI4MTQyMmNjZmU4ZjhmLi4zNDdkMzZlMGQ1ZWIxZmQ2MWFkZjY4YjJk
YTg3YmNmNWUzMzdmMjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQuY2MKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcv
cGFja2V0LmNjCkBAIC00NCw4ICs0NCwxMyBAQCBWQ01QYWNrZXQ6OlZDTVBhY2tldChjb25zdCB1
aW50OF90KiBwdHIsCiAgICAgICBtYXJrZXJCaXQocnRwX2hlYWRlci5tYXJrZXJCaXQpLAogICAg
ICAgdGltZXNOYWNrZWQoLTEpLAogICAgICAgY29tcGxldGVOQUxVKGtOYWx1SW5jb21wbGV0ZSks
CisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisgICAgICBpbnNlcnRTdGFydENvZGUoKHZpZGVvSGVh
ZGVyLmNvZGVjID09IGtWaWRlb0NvZGVjSDI2NCB8fCB2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlk
ZW9Db2RlY0gyNjUpICYmCisgICAgICAgICAgICAgICAgICAgICAgdmlkZW9IZWFkZXIuaXNfZmly
c3RfcGFja2V0X2luX2ZyYW1lKSwKKyNlbHNlCiAgICAgICBpbnNlcnRTdGFydENvZGUodmlkZW9I
ZWFkZXIuY29kZWMgPT0ga1ZpZGVvQ29kZWNIMjY0ICYmCiAgICAgICAgICAgICAgICAgICAgICAg
dmlkZW9IZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSwKKyNlbmRpZgogICAgICAgdmlk
ZW9faGVhZGVyKHZpZGVvSGVhZGVyKSwKICAgICAgIHBhY2tldF9pbmZvKHJ0cF9oZWFkZXIsIHJl
Y2VpdmVfdGltZV9tcykgewogICBpZiAoaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKCkgJiYgbWFy
a2VyQml0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvcGFj
a2V0X2J1ZmZlci5jYwppbmRleCBjYWU4OTc5YWUxMzYwZjQ3NDBlM2U2OTE2YmM1ZTZiY2NjNmNj
Y2ZkLi42MjdkZjc1NTliZDNlNDc2NjM4OTY3M2M2YmU4NTc5Njc3Zjk2YzM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuY2MKQEAg
LTE5LDggKzE5LDE0IEBACiAjaW5jbHVkZSAiYWJzbC90eXBlcy92YXJpYW50LmgiCiAjaW5jbHVk
ZSAiYXBpL3ZpZGVvL2VuY29kZWRfZnJhbWUuaCIKICNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2
NC9oMjY0X2NvbW1vbi5oIgorI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorI2luY2x1ZGUgImNvbW1v
bl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3J0
cF9ydGNwL3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRl
b19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZmRlZiBSVENf
RU5BQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9p
bmNsdWRlL2gyNjVfZ2xvYmFscy5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19j
b2RpbmcvZnJhbWVfb2JqZWN0LmgiCiAjaW5jbHVkZSAicnRjX2Jhc2UvYXRvbWljX29wcy5oIgog
I2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNrcy5oIgpAQCAtMzI0LDYgKzMzMCwxNSBAQCBzdGQ6OnZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UnRwRnJhbWVPYmplY3Q+PiBQYWNrZXRCdWZmZXI6OkZpbmRG
cmFtZXMoCiAgICAgICBib29sIGhhc19oMjY0X2lkciA9IGZhbHNlOwogICAgICAgYm9vbCBpc19o
MjY0X2tleWZyYW1lID0gZmFsc2U7CiAKKyAgICAgIGJvb2wgaXNfaDI2NSA9IGZhbHNlOworI2lm
ZGVmIFJUQ19FTkFCTEVfSDI2NQorICAgICAgaXNfaDI2NSA9IGRhdGFfYnVmZmVyX1tzdGFydF9p
bmRleF0uY29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjU7CisgICAgICBib29sIGhhc19oMjY1X3Nw
cyA9IGZhbHNlOworICAgICAgYm9vbCBoYXNfaDI2NV9wcHMgPSBmYWxzZTsKKyAgICAgIGJvb2wg
aGFzX2gyNjVfaWRyID0gZmFsc2U7CisgICAgICBib29sIGlzX2gyNjVfa2V5ZnJhbWUgPSBmYWxz
ZTsKKyNlbmRpZgorCiAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICArK3Rlc3RlZF9wYWNr
ZXRzOwogICAgICAgICBmcmFtZV9zaXplICs9IGRhdGFfYnVmZmVyX1tzdGFydF9pbmRleF0uc2l6
ZUJ5dGVzOwpAQCAtMzQzLDcgKzM1OCw3IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxS
dHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAgLy8gb3Jk
ZXIgYWZ0ZXJ3YXJkcy4KICAgICAgICAgcGFja2V0X2luZm9zLnB1c2hfYmFjayhkYXRhX2J1ZmZl
cl9bc3RhcnRfaW5kZXhdLnBhY2tldF9pbmZvKTsKIAotICAgICAgICBpZiAoIWlzX2gyNjQgJiYg
c2VxdWVuY2VfYnVmZmVyX1tzdGFydF9pbmRleF0uZnJhbWVfYmVnaW4pCisgICAgICAgIGlmICgh
aXNfaDI2NCAmJiAhaXNfaDI2NSAmJiBzZXF1ZW5jZV9idWZmZXJfW3N0YXJ0X2luZGV4XS5mcmFt
ZV9iZWdpbikKICAgICAgICAgICBicmVhazsKIAogICAgICAgICBpZiAoaXNfaDI2NCAmJiAhaXNf
aDI2NF9rZXlmcmFtZSkgewpAQCAtMzY3LDcgKzM4MiwyOCBAQCBzdGQ6OnZlY3RvcjxzdGQ6OnVu
aXF1ZV9wdHI8UnRwRnJhbWVPYmplY3Q+PiBQYWNrZXRCdWZmZXI6OkZpbmRGcmFtZXMoCiAgICAg
ICAgICAgICBpc19oMjY0X2tleWZyYW1lID0gdHJ1ZTsKICAgICAgICAgICB9CiAgICAgICAgIH0K
LQorI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorICAgICAgICBpZiAoaXNfaDI2NSAmJiAhaXNfaDI2
NV9rZXlmcmFtZSkgeworICAgICAgICAgIGNvbnN0IGF1dG8qIGgyNjVfaGVhZGVyID0gYWJzbDo6
Z2V0X2lmPFJUUFZpZGVvSGVhZGVySDI2NT4oCisgICAgICAgICAgICAgICZkYXRhX2J1ZmZlcl9b
c3RhcnRfaW5kZXhdLnZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisgICAgICAgICAg
aWYgKCFoMjY1X2hlYWRlciB8fCBoMjY1X2hlYWRlci0+bmFsdXNfbGVuZ3RoID49IGtNYXhOYWx1
c1BlclBhY2tldCkKKyAgICAgICAgICAgIHJldHVybiBmb3VuZF9mcmFtZXM7CisgICAgICAgICAg
Zm9yIChzaXplX3QgaiA9IDA7IGogPCBoMjY1X2hlYWRlci0+bmFsdXNfbGVuZ3RoOyArK2opIHsK
KyAgICAgICAgICAgIGlmIChoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1OjpOYWx1
VHlwZTo6a1NwcykgeworICAgICAgICAgICAgICBoYXNfaDI2NV9zcHMgPSB0cnVlOworICAgICAg
ICAgICAgfSBlbHNlIGlmIChoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1OjpOYWx1
VHlwZTo6a1BwcykgeworICAgICAgICAgICAgICBoYXNfaDI2NV9wcHMgPSB0cnVlOworICAgICAg
ICAgICAgfSBlbHNlIGlmIChoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1OjpOYWx1
VHlwZTo6a0lkcldSYWRsCisgICAgICAgICAgICAgICAgICAgICAgIHx8IGgyNjVfaGVhZGVyLT5u
YWx1c1tqXS50eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprSWRyTkxwCisgICAgICAgICAgICAgICAg
ICAgICAgIHx8IGgyNjVfaGVhZGVyLT5uYWx1c1tqXS50eXBlID09IEgyNjU6Ok5hbHVUeXBlOjpr
Q3JhKSB7CisgICAgICAgICAgICAgIGhhc19oMjY1X2lkciA9IHRydWU7CisgICAgICAgICAgICB9
CisgICAgICAgICAgfQorICAgICAgICAgIGlmICgoaGFzX2gyNjVfc3BzICYmIGhhc19oMjY1X3Bw
cykgfHwgaGFzX2gyNjVfaWRyKSB7CisgICAgICAgICAgICBpc19oMjY1X2tleWZyYW1lID0gdHJ1
ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAodGVzdGVkX3Bh
Y2tldHMgPT0gc2l6ZV8pCiAgICAgICAgICAgYnJlYWs7CiAKQEAgLTM3OSw3ICs0MTUsNyBAQCBz
dGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UnRwRnJhbWVPYmplY3Q+PiBQYWNrZXRCdWZmZXI6
OkZpbmRGcmFtZXMoCiAgICAgICAgIC8vIHRoZSB0aW1lc3RhbXAgb2YgdGhhdCBwYWNrZXQgaXMg
dGhlIHNhbWUgYXMgdGhpcyBvbmUuIFRoaXMgbWF5IGNhdXNlCiAgICAgICAgIC8vIHRoZSBQYWNr
ZXRCdWZmZXIgdG8gaGFuZCBvdXQgaW5jb21wbGV0ZSBmcmFtZXMuCiAgICAgICAgIC8vIFNlZTog
aHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3dlYnJ0Yy9pc3N1ZXMvZGV0YWlsP2lkPTcxMDYK
LSAgICAgICAgaWYgKGlzX2gyNjQgJiYKKyAgICAgICAgaWYgKChpc19oMjY0IHx8IGlzX2gyNjUp
ICYmCiAgICAgICAgICAgICAoIXNlcXVlbmNlX2J1ZmZlcl9bc3RhcnRfaW5kZXhdLnVzZWQgfHwK
ICAgICAgICAgICAgICBkYXRhX2J1ZmZlcl9bc3RhcnRfaW5kZXhdLnRpbWVzdGFtcCAhPSBmcmFt
ZV90aW1lc3RhbXApKSB7CiAgICAgICAgICAgYnJlYWs7CkBAIC00MzMsNiArNDY5LDQ0IEBAIHN0
ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6
RmluZEZyYW1lcygKICAgICAgICAgfQogICAgICAgfQogCisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1
CisgICAgICBpZiAoaXNfaDI2NSkgeworICAgICAgICAvLyBXYXJuIGlmIHRoaXMgaXMgYW4gdW5z
YWZlIGZyYW1lLgorICAgICAgICBpZiAoaGFzX2gyNjVfaWRyICYmICghaGFzX2gyNjVfc3BzIHx8
ICFoYXNfaDI2NV9wcHMpKSB7CisgICAgICAgICAgc3RkOjpzdHJpbmdzdHJlYW0gc3M7CisgICAg
ICAgICAgc3MgPDwgIlJlY2VpdmVkIEguMjY1LUlEUiBmcmFtZSAiCisgICAgICAgICAgICAgPDwg
IihTUFM6ICIgPDwgaGFzX2gyNjVfc3BzIDw8ICIsIFBQUzogIiA8PCBoYXNfaDI2NV9wcHMgPDwg
IikuICI7CisgICAgICAgICAgc3MgPDwgIlRyZWF0aW5nIGFzIGRlbHRhIGZyYW1lIHNpbmNlICIK
KyAgICAgICAgICAgICAgICAiV2ViUlRDLVNwc1Bwc0lkcklzSDI2NUtleWZyYW1lIGlzIGFsd2F5
cyBlbmFibGVkLiI7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCBzcy5zdHIoKTsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgZGVjaWRlZCB3aGV0aGVy
IHRvIHRyZWF0IHRoaXMgZnJhbWUgYXMgYSBrZXkgZnJhbWUKKyAgICAgICAgLy8gb3IgZGVsdGEg
ZnJhbWUgaW4gdGhlIGZyYW1lIGJ1ZmZlciwgd2UgdXBkYXRlIHRoZSBmaWVsZCB0aGF0CisgICAg
ICAgIC8vIGRldGVybWluZXMgaWYgdGhlIFJ0cEZyYW1lT2JqZWN0IGlzIGEga2V5IGZyYW1lIG9y
IGRlbHRhIGZyYW1lLgorICAgICAgICBjb25zdCBzaXplX3QgZmlyc3RfcGFja2V0X2luZGV4ID0g
c3RhcnRfc2VxX251bSAlIHNpemVfOworICAgICAgICBSVENfQ0hFQ0tfTFQoZmlyc3RfcGFja2V0
X2luZGV4LCBzaXplXyk7CisgICAgICAgIGlmIChpc19oMjY1X2tleWZyYW1lKSB7CisgICAgICAg
ICAgZGF0YV9idWZmZXJfW2ZpcnN0X3BhY2tldF9pbmRleF0udmlkZW9faGVhZGVyLmZyYW1lX3R5
cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVLZXk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgZGF0YV9idWZmZXJfW2ZpcnN0X3BhY2tldF9pbmRleF0udmlkZW9faGVhZGVyLmZy
YW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVEZWx0YTsKKyAgICAgICAgfQor
CisgICAgICAgIC8vIElmIHRoaXMgaXMgbm90IGEga2V5IGZyYW1lLCBtYWtlIHN1cmUgdGhlcmUg
YXJlIG5vIGdhcHMgaW4gdGhlCisgICAgICAgIC8vIHBhY2tldCBzZXF1ZW5jZSBudW1iZXJzIHVw
IHVudGlsIHRoaXMgcG9pbnQuCisgICAgICAgIGlmICghaXNfaDI2NV9rZXlmcmFtZSAmJiBtaXNz
aW5nX3BhY2tldHNfLnVwcGVyX2JvdW5kKHN0YXJ0X3NlcV9udW0pICE9CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZ19wYWNrZXRzXy5iZWdpbigpKSB7CisgICAg
ICAgICAgdWludDE2X3Qgc3RvcF9pbmRleCA9IChpbmRleCArIDEpICUgc2l6ZV87CisgICAgICAg
ICAgd2hpbGUgKHN0YXJ0X2luZGV4ICE9IHN0b3BfaW5kZXgpIHsKKyAgICAgICAgICAgIHNlcXVl
bmNlX2J1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1lX2NyZWF0ZWQgPSBmYWxzZTsKKyAgICAgICAg
ICAgIHN0YXJ0X2luZGV4ID0gKHN0YXJ0X2luZGV4ICsgMSkgJSBzaXplXzsKKyAgICAgICAgICB9
CisKKyAgICAgICAgICByZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAgICB9CisgICAgICB9Cisj
ZW5kaWYKKwogICAgICAgbWlzc2luZ19wYWNrZXRzXy5lcmFzZShtaXNzaW5nX3BhY2tldHNfLmJl
Z2luKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc3NpbmdfcGFja2V0c18udXBw
ZXJfYm91bmQoc2VxX251bSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9zZXNzaW9uX2luZm8uY2MKaW5kZXggOWNjMWQ0YTgzNTBlZWU0YTY1MGEzOTdiNmJl
NWVkZDc2ZGU3MWY1MC4uMmQ4ODk3ZDJmNGU5N2Y5ZmNlNTM5ZjRlYWUyOTRlZTllNzYyMmIzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Npb25faW5m
by5jYwpAQCAtMTUzLDYgKzE1MywyMSBAQCBzdGQ6OnZlY3RvcjxOYWx1SW5mbz4gVkNNU2Vzc2lv
bkluZm86OkdldE5hbHVJbmZvcygpIGNvbnN0IHsKICAgfQogICByZXR1cm4gbmFsdV9pbmZvczsK
IH0KKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKK3N0ZDo6dmVjdG9yPEgyNjVOYWx1SW5mbz4gVkNN
U2Vzc2lvbkluZm86OkdldEgyNjVOYWx1SW5mb3MoKSBjb25zdCB7CisgIGlmIChwYWNrZXRzXy5l
bXB0eSgpIHx8IHBhY2tldHNfLmZyb250KCkudmlkZW9faGVhZGVyLmNvZGVjICE9IGtWaWRlb0Nv
ZGVjSDI2NSkKKyAgICByZXR1cm4gc3RkOjp2ZWN0b3I8SDI2NU5hbHVJbmZvPigpOworICBzdGQ6
OnZlY3RvcjxIMjY1TmFsdUluZm8+IG5hbHVfaW5mb3M7CisgIGZvciAoY29uc3QgVkNNUGFja2V0
JiBwYWNrZXQgOiBwYWNrZXRzXykgeworICAgIGNvbnN0IGF1dG8mIGgyNjUgPQorICAgICAgICBh
YnNsOjpnZXQ8UlRQVmlkZW9IZWFkZXJIMjY1PihwYWNrZXQudmlkZW9faGVhZGVyLnZpZGVvX3R5
cGVfaGVhZGVyKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGgyNjUubmFsdXNfbGVuZ3Ro
OyArK2kpIHsKKyAgICAgIG5hbHVfaW5mb3MucHVzaF9iYWNrKGgyNjUubmFsdXNbaV0pOworICAg
IH0KKyAgfQorICByZXR1cm4gbmFsdV9pbmZvczsKK30KKyNlbmRpZgogCiB2b2lkIFZDTVNlc3Np
b25JbmZvOjpTZXRHb2ZJbmZvKGNvbnN0IEdvZkluZm9WUDkmIGdvZl9pbmZvLCBzaXplX3QgaWR4
KSB7CiAgIGlmIChwYWNrZXRzXy5lbXB0eSgpKQpAQCAtMjEyLDYgKzIyNywxMSBAQCBzaXplX3Qg
VkNNU2Vzc2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50OF90KiBmcmFtZV9idWZmZXIsCiAgIC8v
IFRPRE8ocGJvcyk6IFJlbW92ZSBIMjY0IHBhcnNpbmcgZnJvbSB0aGlzIHN0ZXAgYW5kIHVzZSBh
IGZyYWdtZW50YXRpb24KICAgLy8gaGVhZGVyIHN1cHBsaWVkIGJ5IHRoZSBIMjY0IGRlcGFja2V0
aXplci4KICAgY29uc3Qgc2l6ZV90IGtIMjY0TkFMSGVhZGVyTGVuZ3RoSW5CeXRlcyA9IDE7Cisj
aWZkZWYgUlRDX0VOQUJMRV9IMjY1CisgIGNvbnN0IHNpemVfdCBrSDI2NU5BTEhlYWRlckxlbmd0
aEluQnl0ZXMgPSAyOworICBjb25zdCBhdXRvKiBoMjY1ID0KKyAgICAgIGFic2w6OmdldF9pZjxS
VFBWaWRlb0hlYWRlckgyNjU+KCZwYWNrZXQudmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVy
KTsKKyNlbmRpZgogICBjb25zdCBzaXplX3Qga0xlbmd0aEZpZWxkTGVuZ3RoID0gMjsKICAgY29u
c3QgYXV0byogaDI2NCA9CiAgICAgICBhYnNsOjpnZXRfaWY8UlRQVmlkZW9IZWFkZXJIMjY0Pigm
cGFja2V0LnZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CkBAIC0yMzcsNiArMjU3LDM2
IEBAIHNpemVfdCBWQ01TZXNzaW9uSW5mbzo6SW5zZXJ0QnVmZmVyKHVpbnQ4X3QqIGZyYW1lX2J1
ZmZlciwKICAgICBwYWNrZXQuc2l6ZUJ5dGVzID0gcmVxdWlyZWRfbGVuZ3RoOwogICAgIHJldHVy
biBwYWNrZXQuc2l6ZUJ5dGVzOwogICB9CisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisgIGVsc2Ug
aWYgKGgyNjUgJiYgaDI2NS0+cGFja2V0aXphdGlvbl90eXBlID09IGtIMjY1QVApIHsKKyAgICAv
LyBTaW1pbGFyIHRvIEgyNjQsIGZvciBIMjY1IGFnZ3JlZ2F0aW9uIHBhY2tldHMsIHdlIHJlbHkg
b24gaml0dGVyIGJ1ZmZlcgorICAgIC8vIHRvIHJlbW92ZSB0aGUgdHdvIGxlbmd0aCBieXRlcyBi
ZXR3ZWVuIGVhY2ggTkFMIHVuaXQsIGFuZCBwb3RlbnRpYWxseSBhZGQKKyAgICAvLyBzdGFydCBj
b2Rlcy4KKyAgICBzaXplX3QgcmVxdWlyZWRfbGVuZ3RoID0gMDsKKyAgICBjb25zdCB1aW50OF90
KiBuYWx1X3B0ciA9CisgICAgICAgIHBhY2tldF9idWZmZXIgKyBrSDI2NU5BTEhlYWRlckxlbmd0
aEluQnl0ZXM7ICAvLyBza2lwIHBheWxvYWRoZHIKKyAgICB3aGlsZSAobmFsdV9wdHIgPCBwYWNr
ZXRfYnVmZmVyICsgcGFja2V0LnNpemVCeXRlcykgeworICAgICAgc2l6ZV90IGxlbmd0aCA9IEJ1
ZmZlclRvVVdvcmQxNihuYWx1X3B0cik7CisgICAgICByZXF1aXJlZF9sZW5ndGggKz0KKyAgICAg
ICAgICBsZW5ndGggKyAocGFja2V0Lmluc2VydFN0YXJ0Q29kZSA/IGtIMjY1U3RhcnRDb2RlTGVu
Z3RoQnl0ZXMgOiAwKTsKKyAgICAgIG5hbHVfcHRyICs9IGtMZW5ndGhGaWVsZExlbmd0aCArIGxl
bmd0aDsKKyAgICB9CisgICAgU2hpZnRTdWJzZXF1ZW50UGFja2V0cyhwYWNrZXRfaXQsIHJlcXVp
cmVkX2xlbmd0aCk7CisgICAgbmFsdV9wdHIgPSBwYWNrZXRfYnVmZmVyICsga0gyNjVOQUxIZWFk
ZXJMZW5ndGhJbkJ5dGVzOworICAgIHVpbnQ4X3QqIGZyYW1lX2J1ZmZlcl9wdHIgPSBmcmFtZV9i
dWZmZXIgKyBvZmZzZXQ7CisgICAgd2hpbGUgKG5hbHVfcHRyIDwgcGFja2V0X2J1ZmZlciArIHBh
Y2tldC5zaXplQnl0ZXMpIHsKKyAgICAgIHNpemVfdCBsZW5ndGggPSBCdWZmZXJUb1VXb3JkMTYo
bmFsdV9wdHIpOworICAgICAgbmFsdV9wdHIgKz0ga0xlbmd0aEZpZWxkTGVuZ3RoOworICAgICAg
Ly8gc2luY2UgSDI2NSBzaGFyZXMgdGhlIHNhbWUgc3RhcnQgY29kZSBhcyBIMjY0LCB1c2UgdGhl
IHNhbWUgSW5zZXJ0CisgICAgICAvLyBmdW5jdGlvbiB0byBoYW5kbGUgc3RhcnQgY29kZS4KKyAg
ICAgIGZyYW1lX2J1ZmZlcl9wdHIgKz0gSW5zZXJ0KG5hbHVfcHRyLCBsZW5ndGgsIHBhY2tldC5p
bnNlcnRTdGFydENvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdF9j
YXN0PHVpbnQ4X3QqPihmcmFtZV9idWZmZXJfcHRyKSk7CisgICAgICBuYWx1X3B0ciArPSBsZW5n
dGg7CisgICAgfQorICAgIHBhY2tldC5zaXplQnl0ZXMgPSByZXF1aXJlZF9sZW5ndGg7CisgICAg
cmV0dXJuIHBhY2tldC5zaXplQnl0ZXM7CisgIH0KKyNlbmRpZgogICBTaGlmdFN1YnNlcXVlbnRQ
YWNrZXRzKAogICAgICAgcGFja2V0X2l0LCBwYWNrZXQuc2l6ZUJ5dGVzICsKICAgICAgICAgICAg
ICAgICAgICAgIChwYWNrZXQuaW5zZXJ0U3RhcnRDb2RlID8ga0gyNjRTdGFydENvZGVMZW5ndGhC
eXRlcyA6IDApKTsKQEAgLTQ2Myw3ICs1MTMsMjIgQEAgaW50IFZDTVNlc3Npb25JbmZvOjpJbnNl
cnRQYWNrZXQoY29uc3QgVkNNUGFja2V0JiBwYWNrZXQsCiAgICAgICAgICBJc05ld2VyU2VxdWVu
Y2VOdW1iZXIocGFja2V0LnNlcU51bSwgbGFzdF9wYWNrZXRfc2VxX251bV8pKSkgewogICAgICAg
bGFzdF9wYWNrZXRfc2VxX251bV8gPSBwYWNrZXQuc2VxTnVtOwogICAgIH0KKyNpZmRlZiBSVENf
RU5BQkxFX0gyNjUKKyAgfSBlbHNlIGlmIChwYWNrZXQuY29kZWMoKSA9PSBrVmlkZW9Db2RlY0gy
NjUpIHsKKyAgICBmcmFtZV90eXBlXyA9IHBhY2tldC52aWRlb19oZWFkZXIuZnJhbWVfdHlwZTsK
KyAgICBpZiAocGFja2V0LmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSgpICYmCisgICAgICAgIChm
aXJzdF9wYWNrZXRfc2VxX251bV8gPT0gLTEgfHwKKyAgICAgICAgIElzTmV3ZXJTZXF1ZW5jZU51
bWJlcihmaXJzdF9wYWNrZXRfc2VxX251bV8sIHBhY2tldC5zZXFOdW0pKSkgeworICAgICAgZmly
c3RfcGFja2V0X3NlcV9udW1fID0gcGFja2V0LnNlcU51bTsKKyAgICB9CisgICAgaWYgKHBhY2tl
dC5tYXJrZXJCaXQgJiYKKyAgICAgICAgKGxhc3RfcGFja2V0X3NlcV9udW1fID09IC0xIHx8Cisg
ICAgICAgICBJc05ld2VyU2VxdWVuY2VOdW1iZXIocGFja2V0LnNlcU51bSwgbGFzdF9wYWNrZXRf
c2VxX251bV8pKSkgeworICAgICAgbGFzdF9wYWNrZXRfc2VxX251bV8gPSBwYWNrZXQuc2VxTnVt
OworICAgIH0KKyNlbHNlCiAgIH0gZWxzZSB7CisjZW5kaWYKICAgICAvLyBPbmx5IGluc2VydCBt
ZWRpYSBwYWNrZXRzIGJldHdlZW4gZmlyc3QgYW5kIGxhc3QgcGFja2V0cyAod2hlbgogICAgIC8v
IGF2YWlsYWJsZSkuCiAgICAgLy8gUGxhY2luZyBjaGVjayBoZXJlLCBhcyB0byBwcm9wZXJseSBh
Y2NvdW50IGZvciBkdXBsaWNhdGUgcGFja2V0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Npb25f
aW5mby5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKaW5kZXggMDZhMzQ4ZWY3MjM1NDc3MWIyODM4
NWY5ZDZmMjQ1YmE5MGE3MWNkOS4uZTVhN2YyMDAyZmU1MWM2MWMwMWIxMWQzYzFlZjQ4ZjRmNTAx
MmI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lv
bl9pbmZvLmgKQEAgLTY1LDYgKzY1LDkgQEAgY2xhc3MgVkNNU2Vzc2lvbkluZm8gewogICBpbnQg
VGwwUGljSWQoKSBjb25zdDsKIAogICBzdGQ6OnZlY3RvcjxOYWx1SW5mbz4gR2V0TmFsdUluZm9z
KCkgY29uc3Q7CisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisgIHN0ZDo6dmVjdG9yPEgyNjVOYWx1
SW5mbz4gR2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0OworI2VuZGlmCiAKICAgdm9pZCBTZXRHb2ZJ
bmZvKGNvbnN0IEdvZkluZm9WUDkmIGdvZl9pbmZvLCBzaXplX3QgaWR4KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL0JVSUxELmdu
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL0JVSUxELmdu
CmluZGV4IDExNTgyMjk2ZDYzODYwNzQ1ZGI1NmNlYjg4OTAxMzVjZGI1MDczYjQuLjkxMmE3ODhm
NmY1OWQ3MTYwNzY1NWY3YzVmZDk4Y2VjNzgwY2M2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9CVUlMRC5nbgorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvQlVJTEQuZ24KQEAgLTU2NCw2
ICs1NjQsMTAgQEAgaWYgKGlzX2lvcyB8fCBpc19tYWMpIHsKICAgICAgICAgIm9iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjQubW0iLAogICAgICAgICAi
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjRQcm9maWxlTGV2ZWxJZC5oIiwKICAg
ICAgICAgIm9iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY0UHJvZmlsZUxldmVsSWQu
bW0iLAorICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lm
aWNJbmZvSDI2NS5oIiwKKyAgICAgICAgIm9iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUubW0iLAorICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIiwKKyAgICAgICAgIm9iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW0iLAogICAgICAgXQogICAgICAg
aWYgKGlzX2lvcykgewogICAgICAgICBzb3VyY2VzICs9IFsKQEAgLTEyNjQsNiArMTI2OCwxMSBA
QCBpZiAoaXNfaW9zIHx8IGlzX21hYykgewogICAgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NC5oIiwKICAgICAgICAgICAib2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0LmgiLAogICAgICAgICAg
ICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NC5oIiwKKyAg
ICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJ
ZC5oIiwKKyAgICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVj
b2RlckZhY3RvcnlIMjY1LmgiLAorICAgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5oIiwKKyAgICAgICAgICAib2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY1LmgiLAorICAgICAgICAgICJvYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5oIiwKICAgICAgICAg
ICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgi
LAogICAgICAgICAgICJvYmpjL2hlbHBlcnMvUlRDQ2FtZXJhUHJldmlld1ZpZXcuaCIsCiAgICAg
ICAgICAgIm9iamMvaGVscGVycy9SVENEaXNwYXRjaGVyLmgiLApAQCAtMTQ1OSw2ICsxNDY4LDEx
IEBAIGlmIChpc19pb3MgfHwgaXNfbWFjKSB7CiAgICAgICAgICAgIm9iamMvY29tcG9uZW50cy92
aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY0LmgiLAogICAgICAgICAgICJvYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQuaCIsCiAgICAgICAg
ICAgIm9iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY0LmgiLAor
ICAgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZl
bElkLmgiLAorICAgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9E
ZWNvZGVyRmFjdG9yeUgyNjUuaCIsCisgICAgICAgICAgIm9iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENWaWRlb0RlY29kZXJIMjY1LmgiLAorICAgICAgICAgICJvYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaCIsCisgICAgICAgICAgIm9i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1LmgiLAogICAgICAg
ICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIu
aCIsCiAgICAgICAgICAgIm9iamMvaGVscGVycy9SVENEaXNwYXRjaGVyLmgiLAogICAgICAgICBd
CkBAIC0xNjQ4LDYgKzE2NjIsMTQgQEAgaWYgKGlzX2lvcyB8fCBpc19tYWMpIHsKICAgICAgICAg
Im9iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5t
IiwKICAgICAgICAgIm9iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJI
MjY0LmgiLAogICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5j
b2RlckgyNjQubW0iLAorICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRGVjb2RlckZhY3RvcnlIMjY1LmgiLAorICAgICAgICAib2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY1Lm0iLAorICAgICAgICAib2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaCIsCisgICAgICAgICJvYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5tbSIsCisgICAgICAg
ICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUu
aCIsCisgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVy
RmFjdG9yeUgyNjUubSIsCisgICAgICAgICJvYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
VmlkZW9FbmNvZGVySDI2NS5oIiwKKyAgICAgICAgIm9iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tIiwKICAgICAgIF0KIAogICAgICAgY29uZmlncyArPSBb
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvYW5kcm9pZC9hcGkvb3JnL3dlYnJ0Yy9IYXJkd2FyZVZpZGVvRW5jb2RlckZhY3RvcnkuamF2
YSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lk
L2FwaS9vcmcvd2VicnRjL0hhcmR3YXJlVmlkZW9FbmNvZGVyRmFjdG9yeS5qYXZhCmluZGV4IDQx
OGMyYWEwODZmZGFhNjU4Zjc5Yzg5MTY3ZGNjNjNhNzI0MDNkNzEuLmY2ZWE1MDEyY2M3OGIyOGZi
YWVlMTMxODIyYTE3MGE0Nzc4YWFhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL2FwaS9vcmcvd2VicnRjL0hhcmR3YXJl
VmlkZW9FbmNvZGVyRmFjdG9yeS5qYXZhCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL2FwaS9vcmcvd2VicnRjL0hhcmR3YXJlVmlkZW9F
bmNvZGVyRmFjdG9yeS5qYXZhCkBAIC0xNDAsNyArMTQwLDggQEAgcHVibGljIGNsYXNzIEhhcmR3
YXJlVmlkZW9FbmNvZGVyRmFjdG9yeSBpbXBsZW1lbnRzIFZpZGVvRW5jb2RlckZhY3Rvcnkgewog
ICAgIC8vIEdlbmVyYXRlIGEgbGlzdCBvZiBzdXBwb3J0ZWQgY29kZWNzIGluIG9yZGVyIG9mIHBy
ZWZlcmVuY2U6CiAgICAgLy8gVlA4LCBWUDksIEgyNjQgKGhpZ2ggcHJvZmlsZSksIGFuZCBIMjY0
IChiYXNlbGluZSBwcm9maWxlKS4KICAgICBmb3IgKFZpZGVvQ29kZWNUeXBlIHR5cGUgOgotICAg
ICAgICBuZXcgVmlkZW9Db2RlY1R5cGVbXSB7VmlkZW9Db2RlY1R5cGUuVlA4LCBWaWRlb0NvZGVj
VHlwZS5WUDksIFZpZGVvQ29kZWNUeXBlLkgyNjR9KSB7CisgICAgICAgIG5ldyBWaWRlb0NvZGVj
VHlwZVtdIHtWaWRlb0NvZGVjVHlwZS5WUDgsIFZpZGVvQ29kZWNUeXBlLlZQOSwgVmlkZW9Db2Rl
Y1R5cGUuSDI2NCwKKyAgICAgICAgICAgICAgICBWaWRlb0NvZGVjVHlwZS5IMjY1fSkgewogICAg
ICAgTWVkaWFDb2RlY0luZm8gY29kZWMgPSBmaW5kQ29kZWNGb3JUeXBlKHR5cGUpOwogICAgICAg
aWYgKGNvZGVjICE9IG51bGwpIHsKICAgICAgICAgU3RyaW5nIG5hbWUgPSB0eXBlLm5hbWUoKTsK
QEAgLTIwMyw2ICsyMDQsOCBAQCBwdWJsaWMgY2xhc3MgSGFyZHdhcmVWaWRlb0VuY29kZXJGYWN0
b3J5IGltcGxlbWVudHMgVmlkZW9FbmNvZGVyRmFjdG9yeSB7CiAgICAgICAgIHJldHVybiBpc0hh
cmR3YXJlU3VwcG9ydGVkSW5DdXJyZW50U2RrVnA5KGluZm8pOwogICAgICAgY2FzZSBIMjY0Ogog
ICAgICAgICByZXR1cm4gaXNIYXJkd2FyZVN1cHBvcnRlZEluQ3VycmVudFNka0gyNjQoaW5mbyk7
CisgICAgICBjYXNlIEgyNjU6CisgICAgICAgIHJldHVybiBpc0hhcmR3YXJlU3VwcG9ydGVkSW5D
dXJyZW50U2RrSDI2NShpbmZvKTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogICB9CkBAIC0y
MzgsNiArMjQxLDE1IEBAIHB1YmxpYyBjbGFzcyBIYXJkd2FyZVZpZGVvRW5jb2RlckZhY3Rvcnkg
aW1wbGVtZW50cyBWaWRlb0VuY29kZXJGYWN0b3J5IHsKICAgICAgICAgICAgICAgICYmIEJ1aWxk
LlZFUlNJT04uU0RLX0lOVCA+PSBCdWlsZC5WRVJTSU9OX0NPREVTLkxPTExJUE9QKTsKICAgfQog
CisgIHByaXZhdGUgYm9vbGVhbiBpc0hhcmR3YXJlU3VwcG9ydGVkSW5DdXJyZW50U2RrSDI2NShN
ZWRpYUNvZGVjSW5mbyBpbmZvKSB7CisgICAgU3RyaW5nIG5hbWUgPSBpbmZvLmdldE5hbWUoKTsK
KyAgICAvLyBRQ09NIEgyNjUgZW5jb2RlciBpcyBzdXBwb3J0ZWQgaW4gS0lUS0FUIG9yIGxhdGVy
LgorICAgIHJldHVybiAobmFtZS5zdGFydHNXaXRoKFFDT01fUFJFRklYKSAmJiBCdWlsZC5WRVJT
SU9OLlNES19JTlQgPj0gQnVpbGQuVkVSU0lPTl9DT0RFUy5LSVRLQVQpCisgICAgICAgICAgIC8v
IEV4eW5vcyBIMjY1IGVuY29kZXIgaXMgc3VwcG9ydGVkIGluIExPTExJUE9QIG9yIGxhdGVyLgor
ICAgICAgICAgICB8fCAobmFtZS5zdGFydHNXaXRoKEVYWU5PU19QUkVGSVgpCisgICAgICAgICAg
ICAgICAmJiBCdWlsZC5WRVJTSU9OLlNES19JTlQgPj0gQnVpbGQuVkVSU0lPTl9DT0RFUy5MT0xM
SVBPUCk7CisgIH0KKwogICBwcml2YXRlIGJvb2xlYW4gaXNNZWRpYUNvZGVjQWxsb3dlZChNZWRp
YUNvZGVjSW5mbyBpbmZvKSB7CiAgICAgaWYgKGNvZGVjQWxsb3dlZFByZWRpY2F0ZSA9PSBudWxs
KSB7CiAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTI1MSw2ICsyNjMsNyBAQCBwdWJsaWMgY2xhc3Mg
SGFyZHdhcmVWaWRlb0VuY29kZXJGYWN0b3J5IGltcGxlbWVudHMgVmlkZW9FbmNvZGVyRmFjdG9y
eSB7CiAgICAgICBjYXNlIFZQOToKICAgICAgICAgcmV0dXJuIDEwMDsKICAgICAgIGNhc2UgSDI2
NDoKKyAgICAgIGNhc2UgSDI2NToKICAgICAgICAgcmV0dXJuIDIwOwogICAgIH0KICAgICB0aHJv
dyBuZXcgSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uKCJVbnN1cHBvcnRlZCBWaWRlb0NvZGVjVHlw
ZSAiICsgdHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL0hhcmR3YXJlVmlkZW9F
bmNvZGVyLmphdmEgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL0hhcmR3YXJlVmlkZW9FbmNvZGVyLmphdmEK
aW5kZXggYzU2MjBiYzAzOTE0MDQ0NmViZjY4OGNhOTlhM2Q5OWNmMDk2NTRiOC4uYTNmZmFiNGM1
MGE4Njc5NGEzMWJiNzViNTUzNTAzMzU4NGUwZGMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dl
YnJ0Yy9IYXJkd2FyZVZpZGVvRW5jb2Rlci5qYXZhCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qYXZhL29yZy93ZWJydGMvSGFy
ZHdhcmVWaWRlb0VuY29kZXIuamF2YQpAQCAtNTE3LDcgKzUxNyw3IEBAIGNsYXNzIEhhcmR3YXJl
VmlkZW9FbmNvZGVyIGltcGxlbWVudHMgVmlkZW9FbmNvZGVyIHsKICAgICAgICAgfQogCiAgICAg
ICAgIGZpbmFsIEJ5dGVCdWZmZXIgZnJhbWVCdWZmZXI7Ci0gICAgICAgIGlmIChpc0tleUZyYW1l
ICYmIGNvZGVjVHlwZSA9PSBWaWRlb0NvZGVjVHlwZS5IMjY0KSB7CisgICAgICAgIGlmIChpc0tl
eUZyYW1lICYmIChjb2RlY1R5cGUgPT0gVmlkZW9Db2RlY1R5cGUuSDI2NCB8fCBjb2RlY1R5cGUg
PT0gVmlkZW9Db2RlY1R5cGUuSDI2NSkpIHsKICAgICAgICAgICBMb2dnaW5nLmQoVEFHLAogICAg
ICAgICAgICAgICAiUHJlcGVuZGluZyBjb25maWcgZnJhbWUgb2Ygc2l6ZSAiICsgY29uZmlnQnVm
ZmVyLmNhcGFjaXR5KCkKICAgICAgICAgICAgICAgICAgICsgIiB0byBvdXRwdXQgYnVmZmVyIHdp
dGggb2Zmc2V0ICIgKyBpbmZvLm9mZnNldCArICIsIHNpemUgIiArIGluZm8uc2l6ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5k
cm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL01lZGlhQ29kZWNVdGlscy5qYXZhIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3Jn
L3dlYnJ0Yy9NZWRpYUNvZGVjVXRpbHMuamF2YQppbmRleCA0ZDllMTAxMGU3YTg1NmYzZWM1OTQ4
MTUwMWQ0MjJlZjA0MDA2YjM5Li45YzBiZGZiNmM5NjNhMDRmYWNlZTI3MDU4NzRjN2IxN2NhNTZh
MWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL01lZGlhQ29kZWNVdGlscy5qYXZhCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lk
L3NyYy9qYXZhL29yZy93ZWJydGMvTWVkaWFDb2RlY1V0aWxzLmphdmEKQEAgLTkxLDYgKzkxLDcg
QEAgY2xhc3MgTWVkaWFDb2RlY1V0aWxzIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgIGNh
c2UgVlA4OgogICAgICAgY2FzZSBWUDk6CisgICAgICBjYXNlIEgyNjU6CiAgICAgICAgIHJldHVy
biBuZXcgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4oKTsKICAgICAgIGNhc2UgSDI2NDoKICAgICAg
ICAgcmV0dXJuIEgyNjRVdGlscy5nZXREZWZhdWx0SDI2NFBhcmFtcyhoaWdoUHJvZmlsZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
YW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL01lZGlhQ29kZWNWaWRlb0RlY29kZXJGYWN0b3J5
LmphdmEgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5k
cm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL01lZGlhQ29kZWNWaWRlb0RlY29kZXJGYWN0b3J5Lmph
dmEKaW5kZXggODc0OGZmNzhhYTRjMjg3MDExODIxYTZjZDI5Y2I3MDI5NjE0YjA5OS4uMzgxYzFm
NDIyZTJhNDlhZmMxZDI2MmJiZmY4NTZjZWMxOTQ2ZGY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3Jn
L3dlYnJ0Yy9NZWRpYUNvZGVjVmlkZW9EZWNvZGVyRmFjdG9yeS5qYXZhCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qYXZhL29y
Zy93ZWJydGMvTWVkaWFDb2RlY1ZpZGVvRGVjb2RlckZhY3RvcnkuamF2YQpAQCAtNjYsNyArNjYs
OCBAQCBjbGFzcyBNZWRpYUNvZGVjVmlkZW9EZWNvZGVyRmFjdG9yeSBpbXBsZW1lbnRzIFZpZGVv
RGVjb2RlckZhY3RvcnkgewogICAgIC8vIEdlbmVyYXRlIGEgbGlzdCBvZiBzdXBwb3J0ZWQgY29k
ZWNzIGluIG9yZGVyIG9mIHByZWZlcmVuY2U6CiAgICAgLy8gVlA4LCBWUDksIEgyNjQgKGhpZ2gg
cHJvZmlsZSksIGFuZCBIMjY0IChiYXNlbGluZSBwcm9maWxlKS4KICAgICBmb3IgKFZpZGVvQ29k
ZWNUeXBlIHR5cGUgOgotICAgICAgICBuZXcgVmlkZW9Db2RlY1R5cGVbXSB7VmlkZW9Db2RlY1R5
cGUuVlA4LCBWaWRlb0NvZGVjVHlwZS5WUDksIFZpZGVvQ29kZWNUeXBlLkgyNjR9KSB7CisgICAg
ICAgIG5ldyBWaWRlb0NvZGVjVHlwZVtdIHtWaWRlb0NvZGVjVHlwZS5WUDgsIFZpZGVvQ29kZWNU
eXBlLlZQOSwgVmlkZW9Db2RlY1R5cGUuSDI2NCwKKyAgICAgICAgICAgICAgICBWaWRlb0NvZGVj
VHlwZS5IMjY1fSkgewogICAgICAgTWVkaWFDb2RlY0luZm8gY29kZWMgPSBmaW5kQ29kZWNGb3JU
eXBlKHR5cGUpOwogICAgICAgaWYgKGNvZGVjICE9IG51bGwpIHsKICAgICAgICAgU3RyaW5nIG5h
bWUgPSB0eXBlLm5hbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qYXZhL29yZy93ZWJydGMvVmlkZW9Db2Rl
Y1R5cGUuamF2YSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9hbmRyb2lkL3NyYy9qYXZhL29yZy93ZWJydGMvVmlkZW9Db2RlY1R5cGUuamF2YQppbmRleCAy
ZDRlZjlhZDY0M2I0MWRiMmEyM2RmOWE1NjU1MDEzZDNmNWRiYWU3Li45NTA1YzI2MzNmNmEwNGEx
YWYzOWVhMWNjOTFhMTJiMTEzOTBjYzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvamF2YS9vcmcvd2VicnRjL1Zp
ZGVvQ29kZWNUeXBlLmphdmEKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2phdmEvb3JnL3dlYnJ0Yy9WaWRlb0NvZGVjVHlwZS5q
YXZhCkBAIC0xNCw3ICsxNCw4IEBAIHBhY2thZ2Ugb3JnLndlYnJ0YzsKIGVudW0gVmlkZW9Db2Rl
Y1R5cGUgewogICBWUDgoInZpZGVvL3gtdm5kLm9uMi52cDgiKSwKICAgVlA5KCJ2aWRlby94LXZu
ZC5vbjIudnA5IiksCi0gIEgyNjQoInZpZGVvL2F2YyIpOworICBIMjY0KCJ2aWRlby9hdmMiKSwK
KyAgSDI2NSgidmlkZW8vaGV2YyIpOwogCiAgIHByaXZhdGUgZmluYWwgU3RyaW5nIG1pbWVUeXBl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvYW5kcm9pZC9zcmMvam5pL2FuZHJvaWRfbWVkaWFfY29kZWNfY29tbW9uLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvYW5kcm9pZC9zcmMvam5p
L2FuZHJvaWRfbWVkaWFfY29kZWNfY29tbW9uLmgKaW5kZXggYmUyZWIxOWJhNjlkYjFlNGFkYzI0
NmI2M2QyNTY4NWM3YTgxOThjYy4uMWYwMjRlZjc4ZTVjODE4MDQwN2ZhM2QxZjE0ZDg0YTYyNzg4
NGFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL2FuZHJvaWQvc3JjL2puaS9hbmRyb2lkX21lZGlhX2NvZGVjX2NvbW1vbi5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3Ny
Yy9qbmkvYW5kcm9pZF9tZWRpYV9jb2RlY19jb21tb24uaApAQCAtNTgsNiArNTgsOSBAQCBlbnVt
IHsga01heFBlbmRpbmdGcmFtZXNWcDggPSAxIH07CiBlbnVtIHsga01heFBlbmRpbmdGcmFtZXNW
cDkgPSAxIH07CiAvLyBNYXhpbXVtIGFtb3VudCBvZiBwZW5kaW5nIGZyYW1lcyBmb3IgSC4yNjQg
ZGVjb2Rlci4KIGVudW0geyBrTWF4UGVuZGluZ0ZyYW1lc0gyNjQgPSA0IH07CisvLyBUT0RPKHpo
YW5naGUpOiB1cGRhdGUgdGhlIHZhbHVlIGFmdGVyIGNoZWNraW5nIG1vcmUgZGV2aWNlcyBpZiBu
ZWVkZWQuCisvLyBNYXhpbXVtIGFtb3VudCBvZiBwZW5kaW5nIGZyYW1lcyBmb3IgSC4yNjUgZGVj
b2Rlci4KK2VudW0geyBrTWF4UGVuZGluZ0ZyYW1lc0gyNjUgPSA0IH07CiAvLyBNYXhpbXVtIGFt
b3VudCBvZiBkZWNvZGVkIGZyYW1lcyBmb3Igd2hpY2ggcGVyLWZyYW1lIGxvZ2dpbmcgaXMgZW5h
YmxlZC4KIGVudW0geyBrTWF4RGVjb2RlZExvZ0ZyYW1lcyA9IDEwIH07CiAvLyBNYXhpbXVtIGFt
b3VudCBvZiBlbmNvZGVkIGZyYW1lcyBmb3Igd2hpY2ggcGVyLWZyYW1lIGxvZ2dpbmcgaXMgZW5h
YmxlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9hbmRyb2lkL3NyYy9qbmkvYW5kcm9pZF9tZWRpYV9kZWNvZGVyLmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2puaS9h
bmRyb2lkX21lZGlhX2RlY29kZXIuY2MKaW5kZXggOGUyZTI1ZmE4NmI5NmQxNjAwNjE3NTdkYzI4
YzZhOTBkMTg5YzNkOC4uZjQxMjQ1NTMxYzVhOGYwNDY2NDk5NmU0NTI0YzRlOTZiOTk2NjJkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L2FuZHJvaWQvc3JjL2puaS9hbmRyb2lkX21lZGlhX2RlY29kZXIuY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2puaS9hbmRy
b2lkX21lZGlhX2RlY29kZXIuY2MKQEAgLTIzNiw2ICsyMzYsMTEgQEAgaW50MzJfdCBNZWRpYUNv
ZGVjVmlkZW9EZWNvZGVyOjpJbml0RGVjb2RlT25Db2RlY1RocmVhZCgpIHsKICAgICBjYXNlIGtW
aWRlb0NvZGVjSDI2NDoKICAgICAgIG1heF9wZW5kaW5nX2ZyYW1lc18gPSBrTWF4UGVuZGluZ0Zy
YW1lc0gyNjQ7CiAgICAgICBicmVhazsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAgY2FzZSBr
VmlkZW9Db2RlY0gyNjU6CisgICAgICBtYXhfcGVuZGluZ19mcmFtZXNfID0ga01heFBlbmRpbmdG
cmFtZXNIMjY1OworICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgbWF4
X3BlbmRpbmdfZnJhbWVzXyA9IDA7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qbmkvYW5kcm9pZF9tZWRp
YV9lbmNvZGVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL2FuZHJvaWQvc3JjL2puaS9hbmRyb2lkX21lZGlhX2VuY29kZXIuY2MKaW5kZXggYTAzNTcw
OGNkYjk0ZDAzZTFjNDA2ODQ4NzVhNjcwODhjMjkyZjkwNy4uNjE5MDc2ZTE4YmM3YjAyZjBjODAx
NmEyNTU4ZTg0MTc0NDU3YTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2puaS9hbmRyb2lkX21lZGlhX2VuY29k
ZXIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L2FuZHJvaWQvc3JjL2puaS9hbmRyb2lkX21lZGlhX2VuY29kZXIuY2MKQEAgLTIyLDYgKzIyLDkg
QEAKICNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NC9oMjY0X2JpdHN0cmVhbV9wYXJzZXIuaCIK
ICNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NC9oMjY0X2NvbW1vbi5oIgogI2luY2x1ZGUgImNv
bW1vbl92aWRlby9oMjY0L3Byb2ZpbGVfbGV2ZWxfaWQuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1
CisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIm1lZGlhL2Jhc2UvY29kZWMuaCIKICNpbmNsdWRlICJtZWRpYS9iYXNlL21lZGlhX2Nv
bnN0YW50cy5oIgogI2luY2x1ZGUgIm1lZGlhL2VuZ2luZS9pbnRlcm5hbF9lbmNvZGVyX2ZhY3Rv
cnkuaCIKQEAgLTEwODEsNiArMTA4NCwyNCBAQCBib29sIE1lZGlhQ29kZWNWaWRlb0VuY29kZXI6
OkRlbGl2ZXJQZW5kaW5nT3V0cHV0cyhKTklFbnYqIGpuaSkgewogICAgICAgICAgIGhlYWRlci5m
cmFnbWVudGF0aW9uT2Zmc2V0W2ldID0gbmFsdV9pZHhzW2ldLnBheWxvYWRfc3RhcnRfb2Zmc2V0
OwogICAgICAgICAgIGhlYWRlci5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldID0gbmFsdV9pZHhzW2ld
LnBheWxvYWRfc2l6ZTsKICAgICAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgIH0g
ZWxzZSBpZiAoY29kZWNfdHlwZSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICAgICAgY29uc3Qg
c3RkOjp2ZWN0b3I8SDI2NTo6TmFsdUluZGV4PiBuYWx1X2lkeHMgPQorICAgICAgICAgICAgSDI2
NTo6RmluZE5hbHVJbmRpY2VzKHBheWxvYWQsIHBheWxvYWRfc2l6ZSk7CisgICAgICAgIGlmIChu
YWx1X2lkeHMuZW1wdHkoKSkgeworICAgICAgICAgIEFMT0dFIDw8ICJTdGFydCBjb2RlIGlzIG5v
dCBmb3VuZCEiOworICAgICAgICAgIEFMT0dFIDw8ICJEYXRhOiIgPDwgaW1hZ2UtPmRhdGEoKVsw
XSA8PCAiICIgPDwgaW1hZ2UtPmRhdGEoKVsxXSA8PCAiICIKKyAgICAgICAgICAgICAgICA8PCBp
bWFnZS0+ZGF0YSgpWzJdIDw8ICIgIiA8PCBpbWFnZS0+ZGF0YSgpWzNdIDw8ICIgIgorICAgICAg
ICAgICAgICAgIDw8IGltYWdlLT5kYXRhKClbNF0gPDwgIiAiIDw8IGltYWdlLT5kYXRhKClbNV07
CisgICAgICAgICAgUHJvY2Vzc0hXRXJyb3IodHJ1ZSAvKiByZXNldF9pZl9mYWxsYmFja191bmF2
YWlsYWJsZSAqLyk7CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAg
IGhlYWRlci5WZXJpZnlBbmRBbGxvY2F0ZUZyYWdtZW50YXRpb25IZWFkZXIobmFsdV9pZHhzLnNp
emUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFsdV9pZHhzLnNpemUoKTsg
aSsrKSB7CisgICAgICAgICAgaGVhZGVyLmZyYWdtZW50YXRpb25PZmZzZXRbaV0gPSBuYWx1X2lk
eHNbaV0ucGF5bG9hZF9zdGFydF9vZmZzZXQ7CisgICAgICAgICAgaGVhZGVyLmZyYWdtZW50YXRp
b25MZW5ndGhbaV0gPSBuYWx1X2lkeHNbaV0ucGF5bG9hZF9zaXplOworICAgICAgICB9CisjZW5k
aWYKICAgICAgIH0KIAogICAgICAgY2FsbGJhY2tfcmVzdWx0ID0gY2FsbGJhY2tfLT5PbkVuY29k
ZWRJbWFnZSgqaW1hZ2UsICZpbmZvLCAmaGVhZGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9hbmRyb2lkL3NyYy9qbmkvdmlkZW9f
ZW5jb2Rlcl93cmFwcGVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2puaS92aWRlb19lbmNvZGVyX3dyYXBwZXIuY2MKaW5kZXgg
YTEzYTAxOWU1YTRiNGMxZDg5MmNhNzI3Yzc3Nzc3NTRlZGI3YzFiZi4uMjg5YmZlYzM4YjM0MWJh
YjVkZmQ5NWI3YTc2ODU1YjdkMTY0YTJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL2FuZHJvaWQvc3JjL2puaS92aWRlb19lbmNvZGVy
X3dyYXBwZXIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL2FuZHJvaWQvc3JjL2puaS92aWRlb19lbmNvZGVyX3dyYXBwZXIuY2MKQEAgLTMzOCw4
ICszMzgsMTYgQEAgaW50MzJfdCBWaWRlb0VuY29kZXJXcmFwcGVyOjpIYW5kbGVSZXR1cm5Db2Rl
KEpOSUVudiogam5pLAogUlRQRnJhZ21lbnRhdGlvbkhlYWRlciBWaWRlb0VuY29kZXJXcmFwcGVy
OjpQYXJzZUZyYWdtZW50YXRpb25IZWFkZXIoCiAgICAgcnRjOjpBcnJheVZpZXc8Y29uc3QgdWlu
dDhfdD4gYnVmZmVyKSB7CiAgIFJUUEZyYWdtZW50YXRpb25IZWFkZXIgaGVhZGVyOworI2lmbmRl
ZiBESVNBQkxFX0gyNjUKKyAgaWYgKGNvZGVjX3NldHRpbmdzXy5jb2RlY1R5cGUgPT0ga1ZpZGVv
Q29kZWNIMjY0CisgICAgfHwgY29kZWNfc2V0dGluZ3NfLmNvZGVjVHlwZSA9PSBrVmlkZW9Db2Rl
Y0gyNjUpIHsKKyAgICBpZiAoY29kZWNfc2V0dGluZ3NfLmNvZGVjVHlwZSA9PSBrVmlkZW9Db2Rl
Y0gyNjQpIHsKKyAgICAgIGgyNjRfYml0c3RyZWFtX3BhcnNlcl8uUGFyc2VCaXRzdHJlYW0oYnVm
ZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSk7CisgICAgfQorI2Vsc2UKICAgaWYgKGNvZGVjX3Nl
dHRpbmdzXy5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY0KSB7CiAgICAgaDI2NF9iaXRzdHJl
YW1fcGFyc2VyXy5QYXJzZUJpdHN0cmVhbShidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6ZSgpKTsK
KyNlbmRpZgogCiAgICAgLy8gRm9yIEguMjY0IHNlYXJjaCBmb3Igc3RhcnQgY29kZXMuCiAgICAg
Y29uc3Qgc3RkOjp2ZWN0b3I8SDI2NDo6TmFsdUluZGV4PiBuYWx1X2lkeHMgPQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBp
L3BlZXJjb25uZWN0aW9uL1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeStOYXRpdmUuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS9wZWVyY29u
bmVjdGlvbi9SVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkrTmF0aXZlLmgKaW5kZXggN2E1NzY0NWMw
ZTFjMjA5M2ZiNzk0YTU0MDVkMDdlMTk0NWM2MzY1OS4uNTE5ZmY3ZWU4YzdkNDQyZTIwZDk2NDcz
MTExZDVmZTljYTczNTQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JUQ1BlZXJDb25uZWN0
aW9uRmFjdG9yeStOYXRpdmUuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDUGVlckNvbm5lY3Rpb25G
YWN0b3J5K05hdGl2ZS5oCkBAIC0yMiw2ICsyMiw3IEBAIGNsYXNzIE5ldHdvcmtDb250cm9sbGVy
RmFjdG9yeUludGVyZmFjZTsKIGNsYXNzIFZpZGVvRW5jb2RlckZhY3Rvcnk7CiBjbGFzcyBWaWRl
b0RlY29kZXJGYWN0b3J5OwogY2xhc3MgQXVkaW9Qcm9jZXNzaW5nOworY2xhc3MgUGVlckNvbm5l
Y3Rpb25GYWN0b3J5SW50ZXJmYWNlOwogCiB9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCiAKQEAgLTg3
LDYgKzg4LDkgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlY29kZXJGYWN0b3J5OihudWxsYWJsZSBpZDxSVENWaWRlb0RlY29kZXJGYWN0b3J5Pilk
ZWNvZGVyRmFjdG9yeQogICAgICAgICAgICAgICAgICBtZWRpYVRyYW5zcG9ydEZhY3Rvcnk6CiAg
ICAgICAgICAgICAgICAgICAgICAoc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6TWVkaWFUcmFuc3Bv
cnRGYWN0b3J5PiltZWRpYVRyYW5zcG9ydEZhY3Rvcnk7CisKKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aE5hdGl2ZVBlZXJDb25uZWN0aW9uRmFjdG9yeTooCisgICAgcnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25GYWN0b3J5SW50ZXJmYWNlPilmYWN0b3J5OwogQGVuZAog
CiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENQZWVy
Q29ubmVjdGlvbkZhY3RvcnkubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDUGVlckNvbm5lY3Rpb25GYWN0
b3J5Lm1tCmluZGV4IGJiNjk1YjU3YzA4MTdkNTE1ZTMwNjNkZDY1MGJiNTg1OTg4NzUzYWEuLmQz
YjBlN2Y0YjE2NzkwMWNjMTRlZTg5ZTM5N2ZhODhkMTUzYzZkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2FwaS9wZWVyY29u
bmVjdGlvbi9SVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkubW0KKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JU
Q1BlZXJDb25uZWN0aW9uRmFjdG9yeS5tbQpAQCAtMjQwLDYgKzI0MCwxMyBAQAogICB9CiAgIHJl
dHVybiBzZWxmOwogfQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTmF0aXZlUGVlckNvbm5lY3Rp
b25GYWN0b3J5OgorICAgIChydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlv
bkZhY3RvcnlJbnRlcmZhY2U+KWZhY3RvcnkgeworICBpZiAoc2VsZiA9IFtzZWxmIGluaXROYXRp
dmVdKSB7CisgICAgX25hdGl2ZUZhY3RvcnkgPSBmYWN0b3J5OworICB9CisgIHJldHVybiBzZWxm
OworfQogCiAtIChSVENBdWRpb1NvdXJjZSAqKWF1ZGlvU291cmNlV2l0aENvbnN0cmFpbnRzOihu
dWxsYWJsZSBSVENNZWRpYUNvbnN0cmFpbnRzICopY29uc3RyYWludHMgewogICBzdGQ6OnVuaXF1
ZV9wdHI8d2VicnRjOjpNZWRpYUNvbnN0cmFpbnRzPiBuYXRpdmVDb25zdHJhaW50czsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMjJkMzU5NGY1NTdmN2I3NWZmNjdmOTQyN2JiNDYxYjBjOWJhNWNlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUr
UHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdl
YlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAq
ICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRo
ZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBy
aWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBj
b250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRI
T1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisvKiBUaGlzIGZp
bGUgaXMgYm9ycm93ZWQgZnJvbSBzZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8KKworI2ltcG9ydCAiUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1LmgiCisKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRl
L3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oIgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCisv
KiBJbnRlcmZhY2VzIGZvciBjb252ZXJ0aW5nIHRvL2Zyb20gaW50ZXJuYWwgQysrIGZvcm1hdHMu
ICovCitAaW50ZXJmYWNlIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NSAoKQorCistICh3ZWJydGM6
OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvOworCitAZW5kCisKK05T
X0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0lu
Zm9IMjY1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJiYWUxOWM3YmMzMWI4NDU5Zjc1ZGJkMTE5NDg1OTA0NmJm
ZTNiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZp
Y0luZm9IMjY1LmgKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUg
V2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQor
ICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2Yg
dGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5
IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxs
IGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFV
VEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKy8qIFRoaXMg
ZmlsZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY0LmguICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRh
dGlvbi5oPgorCisjaW1wb3J0ICJSVENDb2RlY1NwZWNpZmljSW5mby5oIgorI2ltcG9ydCAiUlRD
TWFjcm9zLmgiCisKKy8qKiBDbGFzcyBmb3IgSDI2NSBzcGVjaWZpYyBjb25maWcuICovCit0eXBl
ZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgUlRDSDI2NVBhY2tldGl6YXRpb25Nb2RlKSB7CisgIFJU
Q0gyNjVQYWNrZXRpemF0aW9uTW9kZU5vbkludGVybGVhdmVkID0gMCwgIC8vIE1vZGUgMSAtIFNU
QVAtQSwgRlUtQSBpcyBhbGxvd2VkCisgIFJUQ0gyNjVQYWNrZXRpemF0aW9uTW9kZVNpbmdsZU5h
bFVuaXQgICAgICAgIC8vIE1vZGUgMCAtIG9ubHkgc2luZ2xlIE5BTFUgYWxsb3dlZAorfTsKKwor
UlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1IikpKQorQGludGVyZmFjZSBSVENDb2RlY1NwZWNpZmljSW5m
b0gyNjUgOiBOU09iamVjdCA8UlRDQ29kZWNTcGVjaWZpY0luZm8+CisKK0Bwcm9wZXJ0eShub25h
dG9taWMsIGFzc2lnbikgUlRDSDI2NVBhY2tldGl6YXRpb25Nb2RlIHBhY2tldGl6YXRpb25Nb2Rl
OworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdhOWZiZjg5MmM4NDk0OTc0YTg5NGYzZjgxNTlkZGRjYzkyMzIxOWQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NS5tbQpAQCAtMCwwICsxLDMyIEBACisvKgorICogIENvcHlyaWdodCAyMDE3IFRoZSBXZWJSVEMg
cHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhh
dCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRz
IGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJp
YnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBm
aWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworIC8qIFRoaXMgZmlsZSBp
cyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY0Lm1tICovCisKKyNpbXBvcnQgIlJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NStQcml2YXRlLmgiCisKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKKworLy8gSDI2NSBzcGVjaWZp
YyBzZXR0aW5ncy4KK0BpbXBsZW1lbnRhdGlvbiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUKKwor
QHN5bnRoZXNpemUgcGFja2V0aXphdGlvbk1vZGUgPSBfcGFja2V0aXphdGlvbk1vZGU7CisKKy0g
KHdlYnJ0Yzo6Q29kZWNTcGVjaWZpY0luZm8pbmF0aXZlQ29kZWNTcGVjaWZpY0luZm8geworICB3
ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvIGNvZGVjU3BlY2lmaWNJbmZvOworICBjb2RlY1NwZWNp
ZmljSW5mby5jb2RlY1R5cGUgPSB3ZWJydGM6OmtWaWRlb0NvZGVjSDI2NTsKKyAgY29kZWNTcGVj
aWZpY0luZm8uY29kZWNTcGVjaWZpYy5IMjY1LnBhY2tldGl6YXRpb25fbW9kZSA9CisgICAgICAo
d2VicnRjOjpIMjY1UGFja2V0aXphdGlvbk1vZGUpX3BhY2tldGl6YXRpb25Nb2RlOworCisgIHJl
dHVybiBjb2RlY1NwZWNpZmljSW5mbzsKK30KKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQppbmRleCBiZGIxODUx
N2NhZjk4YTdiZTBjZjllZWJmMDQ3OTI2OWRkMmYxYjQwLi5hYTNkMjI1ZTJlOWNkZDY3MjllNzEy
NGRiYWE4YjQ1OTEyOGZmM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1
bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0
VmlkZW9EZWNvZGVyRmFjdG9yeS5tCkBAIC0xOCw2ICsxOCwxMCBAQAogI2lmIGRlZmluZWQoUlRD
X0VOQUJMRV9WUDkpCiAjaW1wb3J0ICJhcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlA5
LmgiCiAjZW5kaWYKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKKyNpbXBvcnQgIlJUQ0gyNjVQcm9m
aWxlTGV2ZWxJZC5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVySDI2NS5oIgorI2VuZGlmCiAK
IEBpbXBsZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeQogCkBAIC0yOSw2
ICszMywxMCBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkK
ICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICB9IGVsc2UgaWYgKFtpbmZvLm5hbWUgaXNF
cXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVjVnA5TmFtZV0pIHsKICAgICByZXR1cm4gW1JUQ1Zp
ZGVvRGVjb2RlclZQOSB2cDlEZWNvZGVyXTsKKyNlbmRpZgorI2lmZGVmIFJUQ19FTkFCTEVfSDI2
NQorICB9IGVsc2UgaWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVj
SDI2NU5hbWVdKSB7CisgICAgcmV0dXJuIFtbUlRDVmlkZW9EZWNvZGVySDI2NSBhbGxvY10gaW5p
dF07CiAjZW5kaWYKICAgfQogCkBAIC00MSw2ICs0OSw5IEBAIEBpbXBsZW1lbnRhdGlvbiBSVENE
ZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeQogICAgIFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2Nd
IGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOE5hbWVdLAogI2lmIGRlZmluZWQoUlRDX0VO
QUJMRV9WUDkpCiAgICAgW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtS
VENWaWRlb0NvZGVjVnA5TmFtZV0sCisjZW5kaWYKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKKyAg
ICBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNI
MjY1TmFtZV0sCiAjZW5kaWYKICAgXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVm
YXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubQppbmRleCBiNzIyOTZiNjRmMzFiMGVmYjQ1YThiZGRh
NjM5YjQ4MmFmYWRiZGEwLi40NmQyZDkyYTdiMDZlNjRhOTQxNTk2MmUwZDVjNjU3YWRjOTFhYzM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0
b3J5Lm0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9y
eS5tCkBAIC0xOCw2ICsxOCwxMCBAQAogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAjaW1w
b3J0ICJhcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyVlA5LmgiCiAjZW5kaWYKKyNpZmRl
ZiBSVENfRU5BQkxFX0gyNjUKKyNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgorI2lt
cG9ydCAiUlRDVmlkZW9FbmNvZGVySDI2NS5oIgorI2VuZGlmCiAKIEBpbXBsZW1lbnRhdGlvbiBS
VENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeQogCkBAIC00OCwxMiArNTIsMTkgQEAgQGltcGxl
bWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CiAgIFJUQ1ZpZGVvQ29kZWNJ
bmZvICp2cDlJbmZvID0gW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtS
VENWaWRlb0NvZGVjVnA5TmFtZV07CiAjZW5kaWYKIAorI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQor
ICBSVENWaWRlb0NvZGVjSW5mbyAqaDI2NUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9j
XSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV07CisjZW5kaWYKKwogICByZXR1
cm4gQFsKICAgICBjb25zdHJhaW5lZEhpZ2hJbmZvLAogICAgIGNvbnN0cmFpbmVkQmFzZWxpbmVJ
bmZvLAogICAgIHZwOEluZm8sCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICAgICB2cDlJ
bmZvLAorI2VuZGlmCisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisgICAgaDI2NUluZm8sCiAjZW5k
aWYKICAgXTsKIH0KQEAgLTY2LDYgKzc3LDEwIEBAIEBpbXBsZW1lbnRhdGlvbiBSVENEZWZhdWx0
VmlkZW9FbmNvZGVyRmFjdG9yeQogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAgIH0gZWxz
ZSBpZiAoW2luZm8ubmFtZSBpc0VxdWFsVG9TdHJpbmc6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXSkg
ewogICAgIHJldHVybiBbUlRDVmlkZW9FbmNvZGVyVlA5IHZwOUVuY29kZXJdOworI2VuZGlmCisj
aWZkZWYgUlRDX0VOQUJMRV9IMjY1CisgIH0gZWxzZSBpZiAoW2luZm8ubmFtZSBpc0VxdWFsVG9T
dHJpbmc6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV0pIHsKKyAgICByZXR1cm4gW1tSVENWaWRlb0Vu
Y29kZXJIMjY1IGFsbG9jXSBpbml0V2l0aENvZGVjSW5mbzppbmZvXTsKICNlbmRpZgogICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlMzQ4
NmQwNmQ0MTI3ZTk3ODM5MjlmZTQwYmVkYjMzYTVjNjdiMmYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oCkBAIC0wLDAgKzEsMTYgQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRp
dGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisg
KiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3Jz
IG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhl
IHNvdXJjZSB0cmVlLgorICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgor
CisjaW1wb3J0ICJSVENNYWNyb3MuaCIKKworUlRDX09CSkNfRVhQT1JUIGV4dGVybiBOU1N0cmlu
ZyAqY29uc3Qga1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZTsKK1JUQ19PQkpDX0VYUE9SVCBleHRlcm4g
TlNTdHJpbmcgKmNvbnN0IGtSVENMZXZlbDMxTWFpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1
UHJvZmlsZUxldmVsSWQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWFhMzgxMGU2ZTI1ODFmNmJlNDA0M2UyNjY0
MGU1OWQxMDUwYmM2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2
NVByb2ZpbGVMZXZlbElkLm1tCkBAIC0wLDAgKzEsMTggQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIw
MTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp
Y2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSBy
b290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBw
cm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5U
Uy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGlu
IHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAq
LworCisjaW1wb3J0ICJSVENIMjY1UHJvZmlsZUxldmVsSWQuaCIKKworI2luY2x1ZGUgIm1lZGlh
L2Jhc2UvbWVkaWFfY29uc3RhbnRzLmgiCisKK05TU3RyaW5nICpjb25zdCBrUlRDVmlkZW9Db2Rl
Y0gyNjVOYW1lID0gQCJIMjY1IjsKKy8vIFRPRE8oamlhbmp1bnopOiBUaGlzIHZhbHVlIGlzIG5v
dCBjb3JyZWN0LgorTlNTdHJpbmcgKmNvbnN0IGtSVENMZXZlbDMxTWFpbiA9IEAiNGQwMDFmIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43NzUwZmQxZTdhNzkzYmE4ZTU5ZGRhM2Y4Mjk3NGZhMzQzYzE0MmY5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NS5oCkBA
IC0wLDAgKzEsMjAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9qZWN0
IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJj
ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBi
ZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAq
ICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQg
Y2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcg
cHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4g
dGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24v
Rm91bmRhdGlvbi5oPgorCisjaW1wb3J0ICJSVENNYWNyb3MuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVv
RGVjb2RlckZhY3RvcnkuaCIKKworUlRDX09CSkNfRVhQT1JUCitBUElfQVZBSUxBQkxFKGlvcygx
MS4wKSkKK19fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENWaWRlb0RlY29k
ZXJGYWN0b3J5SDI2NSIpKSkKK0BpbnRlcmZhY2UgUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUg
OiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4KK0BlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUubSBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUubQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTk0Y2JkNDcw
NmZhNTg3ZWQ2MDc2NmZhMjcxZDIzOTFiZjE2OWZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92
aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NS5tCkBAIC0wLDAgKzEsMjcgQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRp
dGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisg
KiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3Jz
IG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhl
IHNvdXJjZSB0cmVlLgorICovCisKKyNpbXBvcnQgIlJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY1
LmgiCisKKyNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgorI2ltcG9ydCAiUlRDVmlk
ZW9EZWNvZGVySDI2NS5oIgorCitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9EZWNvZGVyRmFjdG9y
eUgyNjUKKworLSAoaWQ8UlRDVmlkZW9EZWNvZGVyPiljcmVhdGVEZWNvZGVyOihSVENWaWRlb0Nv
ZGVjSW5mbyopaW5mbyB7CisgIHJldHVybiBbW1JUQ1ZpZGVvRGVjb2RlckgyNjUgYWxsb2NdIGlu
aXRdOworfQorCistIChOU0FycmF5PFJUQ1ZpZGVvQ29kZWNJbmZvKj4qKXN1cHBvcnRlZENvZGVj
cyB7CisgIE5TU3RyaW5nKiBjb2RlY05hbWUgPSBrUlRDVmlkZW9Db2RlY0gyNjVOYW1lOworICBy
ZXR1cm4gQFsgW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmNvZGVjTmFt
ZSBwYXJhbWV0ZXJzOm5pbF0gXTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENWaWRlb0RlY29kZXJIMjY1LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVj
b2RlckgyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmYzMzNhOTc5ZGE4MDQzODRkZTQ0ZDAwYzQ3NGNmYTc3
MmZjNDYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29k
ZXJIMjY1LmgKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2Vi
UlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICog
IHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhl
IHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJp
Z2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNv
bnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhP
UlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9ydCA8
Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorI2ltcG9y
dCAiUlRDVmlkZW9EZWNvZGVyLmgiCisKK1JUQ19PQkpDX0VYUE9SVAorQVBJX0FWQUlMQUJMRShp
b3MoMTEuMCkpCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDVmlkZW9E
ZWNvZGVySDI2NSIpKSkKK0BpbnRlcmZhY2UgUlRDVmlkZW9EZWNvZGVySDI2NSA6IE5TT2JqZWN0
IDxSVENWaWRlb0RlY29kZXI+CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q1ZpZGVvRGVjb2RlckgyNjUubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rlckgy
NjUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGIwMWMyMGFjYTIyMjc1NDljZTU5MzNkNWVhYTM2NWU3NTk0ZGQ4
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2
NS5tbQpAQCAtMCwwICsxLDI4NSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdl
YlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAq
ICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRo
ZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBy
aWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBj
b250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRI
T1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAqLworCisjaW1w
b3J0ICJSVENWaWRlb0RlY29kZXJIMjY1LmgiCisKKyNpbXBvcnQgPFZpZGVvVG9vbGJveC9WaWRl
b1Rvb2xib3guaD4KKworI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lLmgiCisjaW1wb3J0ICJi
YXNlL1JUQ1ZpZGVvRnJhbWVCdWZmZXIuaCIKKyNpbXBvcnQgImNvbXBvbmVudHMvdmlkZW9fZnJh
bWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIuaCIKKyNpbXBvcnQgImhlbHBlcnMuaCIKKyNpbXBv
cnQgImhlbHBlcnMvc2NvcGVkX2NmdHlwZXJlZi5oIgorCisjaWYgZGVmaW5lZChXRUJSVENfSU9T
KQorI2ltcG9ydCAiaGVscGVycy9VSURldmljZStSVENEZXZpY2UuaCIKKyNlbmRpZgorCisjaW5j
bHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRlb19lcnJvcl9jb2Rlcy5oIgor
I2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNrcy5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcu
aCIKKyNpbmNsdWRlICJydGNfYmFzZS90aW1lX3V0aWxzLmgiCisjaW5jbHVkZSAic2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmgiCisKKyNpZmRlZiBSVENfRU5B
QkxFX0gyNjUKKworLy8gU3RydWN0IHRoYXQgd2UgcGFzcyB0byB0aGUgZGVjb2RlciBwZXIgZnJh
bWUgdG8gZGVjb2RlLiBXZSByZWNlaXZlIGl0IGFnYWluCisvLyBpbiB0aGUgZGVjb2RlciBjYWxs
YmFjay4KK3N0cnVjdCBSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMgeworICBSVENIMjY1RnJhbWVE
ZWNvZGVQYXJhbXMoUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2sgY2IsIGludDY0X3QgdHMpCisgICAg
ICA6IGNhbGxiYWNrKGNiKSwgdGltZXN0YW1wKHRzKSB7fQorICBSVENWaWRlb0RlY29kZXJDYWxs
YmFjayBjYWxsYmFjazsKKyAgaW50NjRfdCB0aW1lc3RhbXA7Cit9OworCisvLyBUaGlzIGlzIHRo
ZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IFZpZGVvVG9vbGJveCBjYWxscyB3aGVuIGRlY29kZSBp
cworLy8gY29tcGxldGUuCit2b2lkIGgyNjVEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sodm9p
ZCogZGVjb2RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBw
YXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1NTdGF0dXMgc3Rh
dHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZURGVjb2RlSW5mb0Zs
YWdzIGluZm9GbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVklt
YWdlQnVmZmVyUmVmIGltYWdlQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENNVGltZSB0aW1lc3RhbXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ01UaW1lIGR1cmF0aW9uKSB7CisgIHN0ZDo6dW5pcXVlX3B0cjxSVENIMjY1RnJhbWVE
ZWNvZGVQYXJhbXM+IGRlY29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UlRDSDI2
NUZyYW1lRGVjb2RlUGFyYW1zKj4ocGFyYW1zKSk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsK
KyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGRlY29kZSBmcmFtZS4gU3RhdHVz
OiAiIDw8IHN0YXR1czsKKyAgICByZXR1cm47CisgIH0KKyAgLy8gVE9ETyh0a2NoaW4pOiBIYW5k
bGUgQ1ZPIHByb3Blcmx5LgorICBSVENDVlBpeGVsQnVmZmVyKiBmcmFtZUJ1ZmZlciA9CisgICAg
ICBbW1JUQ0NWUGl4ZWxCdWZmZXIgYWxsb2NdIGluaXRXaXRoUGl4ZWxCdWZmZXI6aW1hZ2VCdWZm
ZXJdOworICBSVENWaWRlb0ZyYW1lKiBkZWNvZGVkRnJhbWUgPSBbW1JUQ1ZpZGVvRnJhbWUgYWxs
b2NdCisgICAgICBpbml0V2l0aEJ1ZmZlcjpmcmFtZUJ1ZmZlcgorICAgICAgICAgICAgcm90YXRp
b246UlRDVmlkZW9Sb3RhdGlvbl8wCisgICAgICAgICB0aW1lU3RhbXBOczpDTVRpbWVHZXRTZWNv
bmRzKHRpbWVzdGFtcCkgKiBydGM6OmtOdW1OYW5vc2Vjc1BlclNlY107CisgIGRlY29kZWRGcmFt
ZS50aW1lU3RhbXAgPSBkZWNvZGVQYXJhbXMtPnRpbWVzdGFtcDsKKyAgZGVjb2RlUGFyYW1zLT5j
YWxsYmFjayhkZWNvZGVkRnJhbWUpOworfQorCisvLyBEZWNvZGVyLgorQGltcGxlbWVudGF0aW9u
IFJUQ1ZpZGVvRGVjb2RlckgyNjUgeworICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgX3Zp
ZGVvRm9ybWF0OworICBWVERlY29tcHJlc3Npb25TZXNzaW9uUmVmIF9kZWNvbXByZXNzaW9uU2Vz
c2lvbjsKKyAgUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2sgX2NhbGxiYWNrOworICBPU1N0YXR1cyBf
ZXJyb3I7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0IHsKKyAgaWYgKHNlbGYgPSBbc3VwZXIg
aW5pdF0pIHsKKyAgfQorCisgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2Mgewor
ICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICBbc2VsZiBzZXRWaWRlb0Zv
cm1hdDpudWxscHRyXTsKK30KKworLSAoTlNJbnRlZ2VyKXN0YXJ0RGVjb2RlV2l0aE51bWJlck9m
Q29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19P
SzsKK30KKworLSAoTlNJbnRlZ2VyKWRlY29kZTooUlRDRW5jb2RlZEltYWdlKilpbnB1dEltYWdl
CisgICAgICAgICAgbWlzc2luZ0ZyYW1lczooQk9PTCltaXNzaW5nRnJhbWVzCisgICAgICBjb2Rl
Y1NwZWNpZmljSW5mbzooX19udWxsYWJsZSBpZDxSVENDb2RlY1NwZWNpZmljSW5mbz4paW5mbwor
ICAgICAgICAgICByZW5kZXJUaW1lTXM6KGludDY0X3QpcmVuZGVyVGltZU1zIHsKKyAgUlRDX0RD
SEVDSyhpbnB1dEltYWdlLmJ1ZmZlcik7CisKKyAgaWYgKF9lcnJvciAhPSBub0VycikgeworICAg
IFJUQ19MT0coTFNfV0FSTklORykgPDwgIkxhc3QgZnJhbWUgZGVjb2RlIGZhaWxlZC4iOworICAg
IF9lcnJvciA9IG5vRXJyOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7Cisg
IH0KKworICBydGM6OlNjb3BlZENGVHlwZVJlZjxDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWY+
IGlucHV0Rm9ybWF0ID0KKyAgICAgIHJ0Yzo6U2NvcGVkQ0Yod2VicnRjOjpDcmVhdGVIMjY1Vmlk
ZW9Gb3JtYXREZXNjcmlwdGlvbigKKyAgICAgICAgICAodWludDhfdCopaW5wdXRJbWFnZS5idWZm
ZXIuYnl0ZXMsIGlucHV0SW1hZ2UuYnVmZmVyLmxlbmd0aCkpOworICBpZiAoaW5wdXRGb3JtYXQp
IHsKKyAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0KKyAgICAgICAgQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhpbnB1dEZvcm1hdC5nZXQoKSk7CisgICAgUlRD
X0xPRyhMU19JTkZPKSA8PCAiUmVzb2x1dGlvbjogIiA8PCBkaW1lbnNpb25zLndpZHRoIDw8ICIg
eCAiCisgICAgICAgICAgICAgICAgICAgICA8PCBkaW1lbnNpb25zLmhlaWdodDsKKyAgICAvLyBD
aGVjayBpZiB0aGUgdmlkZW8gZm9ybWF0IGhhcyBjaGFuZ2VkLCBhbmQgcmVpbml0aWFsaXplIGRl
Y29kZXIgaWYKKyAgICAvLyBuZWVkZWQuCisgICAgaWYgKCFDTUZvcm1hdERlc2NyaXB0aW9uRXF1
YWwoaW5wdXRGb3JtYXQuZ2V0KCksIF92aWRlb0Zvcm1hdCkpIHsKKyAgICAgIFtzZWxmIHNldFZp
ZGVvRm9ybWF0OmlucHV0Rm9ybWF0LmdldCgpXTsKKyAgICAgIGludCByZXNldERlY29tcHJlc3Np
b25TZXNzaW9uRXJyb3IgPSBbc2VsZiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXTsKKyAgICAg
IGlmIChyZXNldERlY29tcHJlc3Npb25TZXNzaW9uRXJyb3IgIT0gV0VCUlRDX1ZJREVPX0NPREVD
X09LKSB7CisgICAgICAgIHJldHVybiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uRXJyb3I7Cisg
ICAgICB9CisgICAgfQorICB9CisgIGlmICghX3ZpZGVvRm9ybWF0KSB7CisgICAgLy8gV2UgcmVj
ZWl2ZWQgYSBmcmFtZSBidXQgd2UgZG9uJ3QgaGF2ZSBmb3JtYXQgaW5mb3JtYXRpb24gc28gd2Ug
Y2FuJ3QKKyAgICAvLyBkZWNvZGUgaXQuCisgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGFmdGVyIGJh
Y2tncm91bmRpbmcuIFdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIG5leHQKKyAgICAvLyBzcHMvcHBz
IGJlZm9yZSB3ZSBjYW4gcmVzdW1lIHNvIHdlIHJlcXVlc3QgYSBrZXlmcmFtZSBieSByZXR1cm5p
bmcgYW4KKyAgICAvLyBlcnJvci4KKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJNaXNzaW5n
IHZpZGVvIGZvcm1hdC4gRnJhbWUgd2l0aCBzcHMvcHBzIHJlcXVpcmVkLiI7CisgICAgcmV0dXJu
IFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGVCdWZmZXIgPSBudWxscHRyOworICBpZiAoIXdlYnJ0Yzo6SDI2NUFubmV4QkJ1ZmZlclRvQ01T
YW1wbGVCdWZmZXIoCisgICAgICAgICAgKHVpbnQ4X3QqKWlucHV0SW1hZ2UuYnVmZmVyLmJ5dGVz
LCBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGgsCisgICAgICAgICAgX3ZpZGVvRm9ybWF0LCAmc2Ft
cGxlQnVmZmVyKSkgeworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0K
KyAgUlRDX0RDSEVDSyhzYW1wbGVCdWZmZXIpOworICBWVERlY29kZUZyYW1lRmxhZ3MgZGVjb2Rl
RmxhZ3MgPQorICAgICAga1ZURGVjb2RlRnJhbWVfRW5hYmxlQXN5bmNocm9ub3VzRGVjb21wcmVz
c2lvbjsKKyAgc3RkOjp1bmlxdWVfcHRyPFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcz4gZnJhbWVE
ZWNvZGVQYXJhbXM7CisgIGZyYW1lRGVjb2RlUGFyYW1zLnJlc2V0KAorICAgICAgbmV3IFJUQ0gy
NjVGcmFtZURlY29kZVBhcmFtcyhfY2FsbGJhY2ssIGlucHV0SW1hZ2UudGltZVN0YW1wKSk7Cisg
IE9TU3RhdHVzIHN0YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSgKKyAg
ICAgIF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwgc2FtcGxlQnVmZmVyLCBkZWNvZGVGbGFncywKKyAg
ICAgIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7CisjaWYgZGVmaW5lZChX
RUJSVENfSU9TKQorICAvLyBSZS1pbml0aWFsaXplIHRoZSBkZWNvZGVyIGlmIHdlIGhhdmUgYW4g
aW52YWxpZCBzZXNzaW9uIHdoaWxlIHRoZSBhcHAgaXMKKyAgLy8gYWN0aXZlIGFuZCByZXRyeSB0
aGUgZGVjb2RlIHJlcXVlc3QuCisgIGlmIChzdGF0dXMgPT0ga1ZUSW52YWxpZFNlc3Npb25FcnIg
JiYKKyAgICAgIFtzZWxmIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25dID09IFdFQlJUQ19WSURF
T19DT0RFQ19PSykgeworICAgIGZyYW1lRGVjb2RlUGFyYW1zLnJlc2V0KAorICAgICAgICBuZXcg
UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgaW5wdXRJbWFnZS50aW1lU3RhbXAp
KTsKKyAgICBzdGF0dXMgPSBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVjb2RlRnJhbWUoCisgICAg
ICAgIF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwgc2FtcGxlQnVmZmVyLCBkZWNvZGVGbGFncywKKyAg
ICAgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRyKTsKKyAgfQorI2VuZGlm
CisgIENGUmVsZWFzZShzYW1wbGVCdWZmZXIpOworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7Cisg
ICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUgZnJhbWUgd2l0aCBjb2Rl
OiAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9
CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJh
Y2s6KFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrKWNhbGxiYWNrIHsKKyAgX2NhbGxiYWNrID0gY2Fs
bGJhY2s7Cit9CisKKy0gKE5TSW50ZWdlcilyZWxlYXNlRGVjb2RlciB7CisgIC8vIE5lZWQgdG8g
aW52YWxpZGF0ZSB0aGUgc2Vzc2lvbiBzbyB0aGF0IGNhbGxiYWNrcyBubyBsb25nZXIgb2NjdXIg
YW5kIGl0CisgIC8vIGlzIHNhZmUgdG8gbnVsbCBvdXQgdGhlIGNhbGxiYWNrLgorICBbc2VsZiBk
ZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxs
cHRyXTsKKyAgX2NhbGxiYWNrID0gbnVsbHB0cjsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RF
Q19PSzsKK30KKworI3ByYWdtYSBtYXJrIC0gUHJpdmF0ZQorCistIChpbnQpcmVzZXREZWNvbXBy
ZXNzaW9uU2Vzc2lvbiB7CisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisK
KyAgLy8gTmVlZCB0byB3YWl0IGZvciB0aGUgZmlyc3QgU1BTIHRvIGluaXRpYWxpemUgZGVjb2Rl
ci4KKyAgaWYgKCFfdmlkZW9Gb3JtYXQpIHsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVD
X09LOworICB9CisKKyAgLy8gU2V0IGtleXMgZm9yIE9wZW5HTCBhbmQgSU9TdXJmYWNlIGNvbXBh
dGliaWx0eSwgd2hpY2ggbWFrZXMgdGhlIGVuY29kZXIKKyAgLy8gY3JlYXRlIHBpeGVsIGJ1ZmZl
cnMgd2l0aCBHUFUgYmFja2VkIG1lbW9yeS4gVGhlIGludGVudCBoZXJlIGlzIHRvIHBhc3MKKyAg
Ly8gdGhlIHBpeGVsIGJ1ZmZlcnMgZGlyZWN0bHkgc28gd2UgYXZvaWQgYSB0ZXh0dXJlIHVwbG9h
ZCBsYXRlciBkdXJpbmcKKyAgLy8gcmVuZGVyaW5nLiBUaGlzIGN1cnJlbnRseSBpcyBtb290IGJl
Y2F1c2Ugd2UgYXJlIGNvbnZlcnRpbmcgYmFjayB0byBhbgorICAvLyBJNDIwIGZyYW1lIGFmdGVy
IGRlY29kZSwgYnV0IGV2ZW50dWFsbHkgd2Ugd2lsbCBiZSBhYmxlIHRvIHBsdW1iCisgIC8vIENW
UGl4ZWxCdWZmZXJzIGRpcmVjdGx5IHRvIHRoZSByZW5kZXJlci4KKyAgLy8gVE9ETyh0a2NoaW4p
OiBNYXliZSBvbmx5IHNldCBPcGVuR0wvSU9TdXJmYWNlIGtleXMgaWYgd2Uga25vdyB0aGF0IHRo
YXQKKyAgLy8gd2UgY2FuIHBhc3MgQ1ZQaXhlbEJ1ZmZlcnMgYXMgbmF0aXZlIGhhbmRsZXMgaW4g
ZGVjb2RlciBvdXRwdXQuCisgIHN0YXRpYyBzaXplX3QgY29uc3QgYXR0cmlidXRlc1NpemUgPSAz
OworICBDRlR5cGVSZWYga2V5c1thdHRyaWJ1dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5lZChXRUJS
VENfSU9TKQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5LAorI2Vs
aWYgZGVmaW5lZChXRUJSVENfTUFDKQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJp
bGl0eUtleSwKKyNlbmRpZgorICAgIGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tl
eSwKKyAgICBrQ1ZQaXhlbEJ1ZmZlclBpeGVsRm9ybWF0VHlwZUtleQorICB9OworICBDRkRpY3Rp
b25hcnlSZWYgaW9TdXJmYWNlVmFsdWUgPSBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51bGxwdHIs
IG51bGxwdHIsIDApOworICBpbnQ2NF90IG52MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQy
MFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsKKyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3JtYXQgPQor
ICAgICAgQ0ZOdW1iZXJDcmVhdGUobnVsbHB0ciwga0NGTnVtYmVyTG9uZ1R5cGUsICZudjEydHlw
ZSk7CisgIENGVHlwZVJlZiB2YWx1ZXNbYXR0cmlidXRlc1NpemVdID0ge2tDRkJvb2xlYW5UcnVl
LCBpb1N1cmZhY2VWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGl4ZWxGb3JtYXR9OworICBDRkRpY3Rpb25hcnlSZWYgYXR0cmlidXRlcyA9CisgICAgICBDcmVh
dGVDRlR5cGVEaWN0aW9uYXJ5KGtleXMsIHZhbHVlcywgYXR0cmlidXRlc1NpemUpOworICBpZiAo
aW9TdXJmYWNlVmFsdWUpIHsKKyAgICBDRlJlbGVhc2UoaW9TdXJmYWNlVmFsdWUpOworICAgIGlv
U3VyZmFjZVZhbHVlID0gbnVsbHB0cjsKKyAgfQorICBpZiAocGl4ZWxGb3JtYXQpIHsKKyAgICBD
RlJlbGVhc2UocGl4ZWxGb3JtYXQpOworICAgIHBpeGVsRm9ybWF0ID0gbnVsbHB0cjsKKyAgfQor
ICBWVERlY29tcHJlc3Npb25PdXRwdXRDYWxsYmFja1JlY29yZCByZWNvcmQgPSB7CisgICAgICBo
MjY1RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrLAorICAgICAgbnVsbHB0ciwKKyAgfTsKKyAg
T1NTdGF0dXMgc3RhdHVzID0KKyAgICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25DcmVhdGUobnVs
bHB0ciwgX3ZpZGVvRm9ybWF0LCBudWxscHRyLCBhdHRyaWJ1dGVzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmcmVjb3JkLCAmX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAg
Q0ZSZWxlYXNlKGF0dHJpYnV0ZXMpOworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgW3Nl
bGYgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXTsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVP
X0NPREVDX0VSUk9SOworICB9CisgIFtzZWxmIGNvbmZpZ3VyZURlY29tcHJlc3Npb25TZXNzaW9u
XTsKKworICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistICh2b2lkKWNvbmZp
Z3VyZURlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAgUlRDX0RDSEVDSyhfZGVjb21wcmVzc2lvblNl
c3Npb24pOworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgLy8gVlRTZXNzaW9uU2V0UHJvcGVy
dHkoX2RlY29tcHJlc3Npb25TZXNzaW9uLAorICAvLyBrVlREZWNvbXByZXNzaW9uUHJvcGVydHlL
ZXlfUmVhbFRpbWUsIGtDRkJvb2xlYW5UcnVlKTsKKyNlbmRpZgorfQorCistICh2b2lkKWRlc3Ry
b3lEZWNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIGlmIChfZGVjb21wcmVzc2lvblNlc3Npb24pIHsK
KyNpZiBkZWZpbmVkKFdFQlJUQ19XRUJLSVRfQlVJTEQpCisgICAgVlREZWNvbXByZXNzaW9uU2Vz
c2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyNl
bHNlCisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAgIGlmIChbVUlEZXZpY2UgaXNJT1MxMU9y
TGF0ZXJdKSB7CisgICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91
c0ZyYW1lcyhfZGVjb21wcmVzc2lvblNlc3Npb24pOworICAgIH0KKyNlbmRpZgorI2VuZGlmCisg
ICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUoX2RlY29tcHJlc3Npb25TZXNzaW9u
KTsKKyAgICBDRlJlbGVhc2UoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBfZGVjb21wcmVz
c2lvblNlc3Npb24gPSBudWxscHRyOworICB9Cit9CisKKy0gKHZvaWQpc2V0VmlkZW9Gb3JtYXQ6
KENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZil2aWRlb0Zvcm1hdCB7CisgIGlmIChfdmlkZW9G
b3JtYXQgPT0gdmlkZW9Gb3JtYXQpIHsKKyAgICByZXR1cm47CisgIH0KKyAgaWYgKF92aWRlb0Zv
cm1hdCkgeworICAgIENGUmVsZWFzZShfdmlkZW9Gb3JtYXQpOworICB9CisgIF92aWRlb0Zvcm1h
dCA9IHZpZGVvRm9ybWF0OworICBpZiAoX3ZpZGVvRm9ybWF0KSB7CisgICAgQ0ZSZXRhaW4oX3Zp
ZGVvRm9ybWF0KTsKKyAgfQorfQorCistIChOU1N0cmluZyopaW1wbGVtZW50YXRpb25OYW1lIHsK
KyAgcmV0dXJuIEAiVmlkZW9Ub29sYm94IjsKK30KKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDg0
OGRkZThiY2E4YmUzMWJkZjc0MDI4OWVhYzkxOTNlZTdiZmQxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5oCkBAIC0wLDAgKzEs
MjAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBB
biBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZv
dW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBh
dXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qg
b2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgorCisjaW1wb3J0ICJSVENNYWNyb3MuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVvRW5jb2RlckZh
Y3RvcnkuaCIKKworUlRDX09CSkNfRVhQT1JUCitBUElfQVZBSUxBQkxFKGlvcygxMS4wKSkKK19f
YXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENWaWRlb0VuY29kZXJGYWN0b3J5
SDI2NSIpKSkKK0BpbnRlcmZhY2UgUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUgOiBOU09iamVj
dDxSVENWaWRlb0VuY29kZXJGYWN0b3J5PgorQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5tIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENW
aWRlb0VuY29kZXJGYWN0b3J5SDI2NS5tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhYmRmYWVjZGYwZGFjY2RjNjY4
ZjI3MzJjNDA4MWVlZDc1NjE1YTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY1Lm0KQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqICBD
b3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC
U0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50
ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUg
ZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAg
YmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRy
ZWUuCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaCIKKworI2lt
cG9ydCAiUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgiCisjaW1wb3J0ICJSVENWaWRlb0VuY29kZXJI
MjY1LmgiCisKK0BpbXBsZW1lbnRhdGlvbiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NQorCist
IChOU0FycmF5PFJUQ1ZpZGVvQ29kZWNJbmZvKj4qKXN1cHBvcnRlZENvZGVjcyB7CisgIE5TTXV0
YWJsZUFycmF5PFJUQ1ZpZGVvQ29kZWNJbmZvKj4qIGNvZGVjcyA9IFtOU011dGFibGVBcnJheSBh
cnJheV07CisgIE5TU3RyaW5nKiBjb2RlY05hbWUgPSBrUlRDVmlkZW9Db2RlY0gyNjVOYW1lOwor
CisgIE5TRGljdGlvbmFyeTxOU1N0cmluZyosIE5TU3RyaW5nKj4qIG1haW5QYXJhbXMgPSBAewor
ICAgIEAicHJvZmlsZS1sZXZlbC1pZCIgOiBrUlRDTGV2ZWwzMU1haW4sCisgICAgQCJsZXZlbC1h
c3ltbWV0cnktYWxsb3dlZCIgOiBAIjEiLAorICAgIEAicGFja2V0aXphdGlvbi1tb2RlIiA6IEAi
MSIsCisgIH07CisgIFJUQ1ZpZGVvQ29kZWNJbmZvKiBjb25zdHJhaW5lZEJhc2VsaW5lSW5mbyA9
CisgICAgICBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6Y29kZWNOYW1l
IHBhcmFtZXRlcnM6bWFpblBhcmFtc107CisgIFtjb2RlY3MgYWRkT2JqZWN0OmNvbnN0cmFpbmVk
QmFzZWxpbmVJbmZvXTsKKworICByZXR1cm4gW2NvZGVjcyBjb3B5XTsKK30KKworLSAoaWQ8UlRD
VmlkZW9FbmNvZGVyPiljcmVhdGVFbmNvZGVyOihSVENWaWRlb0NvZGVjSW5mbyopaW5mbyB7Cisg
IHJldHVybiBbW1JUQ1ZpZGVvRW5jb2RlckgyNjUgYWxsb2NdIGluaXRXaXRoQ29kZWNJbmZvOmlu
Zm9dOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5j
b2RlckgyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE1NGJlZWYxZWU1ZTM2MDI2OTU2YmE5YTY5Y2M2MDdlNzg3ZDAzNTkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUuaApAQCAtMCww
ICsxLDI0IEBACisvKgorICogIENvcHlyaWdodCAyMDE3IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRo
b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJl
ZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBi
ZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2pl
Y3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSBy
b290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5k
YXRpb24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisjaW1wb3J0ICJSVENWaWRlb0NvZGVj
SW5mby5oIgorI2ltcG9ydCAiUlRDVmlkZW9FbmNvZGVyLmgiCisKK1JUQ19PQkpDX0VYUE9SVAor
QVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFt
ZSgiV0tfUlRDVmlkZW9FbmNvZGVySDI2NSIpKSkKK0BpbnRlcmZhY2UgUlRDVmlkZW9FbmNvZGVy
SDI2NSA6IE5TT2JqZWN0IDxSVENWaWRlb0VuY29kZXI+CisKKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aENvZGVjSW5mbzooUlRDVmlkZW9Db2RlY0luZm8gKiljb2RlY0luZm87CisKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5tbSBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmY0ZDQ0YzAx
YjU0MGE2OWIzYjFhNGZhNDQ4MzhlNWZiZDUxZjE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92
aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tCkBAIC0wLDAgKzEsNjEyIEBACisvKgor
ICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBM
SUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0
aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAq
ICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMg
bWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUg
c291cmNlIHRyZWUuCisgKgorICovCisKKyNpbXBvcnQgIlJUQ1ZpZGVvRW5jb2RlckgyNjUuaCIK
KworI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgorI2luY2x1ZGUgPHZlY3Rv
cj4KKworI2ltcG9ydCAiUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgiCisjaW1wb3J0ICJhcGkv
cGVlcmNvbm5lY3Rpb24vUlRDUnRwRnJhZ21lbnRhdGlvbkhlYWRlcitQcml2YXRlLmgiCisjaW1w
b3J0ICJhcGkvcGVlcmNvbm5lY3Rpb24vUlRDVmlkZW9Db2RlY0luZm8rUHJpdmF0ZS5oIgorI2lt
cG9ydCAiYmFzZS9SVENJNDIwQnVmZmVyLmgiCisjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRnJhbWUu
aCIKKyNpbXBvcnQgImJhc2UvUlRDVmlkZW9GcmFtZUJ1ZmZlci5oIgorI2ltcG9ydCAiY29tcG9u
ZW50cy92aWRlb19mcmFtZV9idWZmZXIvUlRDQ1ZQaXhlbEJ1ZmZlci5oIgorI2ltcG9ydCAiaGVs
cGVycy5oIgorI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyNpbXBvcnQgImhlbHBlcnMvVUlEZXZp
Y2UrUlRDRGV2aWNlLmgiCisjZW5kaWYKKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L3By
b2ZpbGVfbGV2ZWxfaWQuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaW5jbHVkZS9iaXRyYXRl
X2FkanVzdGVyLmgiCisjaW5jbHVkZSAibGlieXV2L2NvbnZlcnRfZnJvbS5oIgorI2luY2x1ZGUg
Im1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxl
cy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRlb19lcnJvcl9jb2Rlcy5oIgorI2luY2x1ZGUgInJ0
Y19iYXNlL2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKyNpbmNsdWRl
ICJydGNfYmFzZS90aW1lX3V0aWxzLmgiCisjaW5jbHVkZSAic2RrL29iamMvRnJhbWV3b3JrL0Ns
YXNzZXMvVmlkZW9Ub29sYm94L25hbHVfcmV3cml0ZXIuaCIKKyNpbmNsdWRlICJzeXN0ZW1fd3Jh
cHBlcnMvaW5jbHVkZS9jbG9jay5oIgorCisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisKK0BpbnRl
cmZhY2UgUlRDVmlkZW9FbmNvZGVySDI2NSAoKQorCistICh2b2lkKWZyYW1lV2FzRW5jb2RlZDoo
T1NTdGF0dXMpc3RhdHVzCisgICAgICAgICAgICAgICAgICBmbGFnczooVlRFbmNvZGVJbmZvRmxh
Z3MpaW5mb0ZsYWdzCisgICAgICAgICAgIHNhbXBsZUJ1ZmZlcjooQ01TYW1wbGVCdWZmZXJSZWYp
c2FtcGxlQnVmZmVyCisgICAgICAgICAgICAgICAgICB3aWR0aDooaW50MzJfdCl3aWR0aAorICAg
ICAgICAgICAgICAgICBoZWlnaHQ6KGludDMyX3QpaGVpZ2h0CisgICAgICAgICAgIHJlbmRlclRp
bWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMKKyAgICAgICAgICAgICAgdGltZXN0YW1wOih1aW50
MzJfdCl0aW1lc3RhbXAKKyAgICAgICAgICAgICAgIHJvdGF0aW9uOihSVENWaWRlb1JvdGF0aW9u
KXJvdGF0aW9uOworCitAZW5kCisKK25hbWVzcGFjZSB7ICAvLyBhbm9ueW1vdXMgbmFtZXNwYWNl
CisKKy8vIFRoZSByYXRpbyBiZXR3ZWVuIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRGF0YVJh
dGVMaW1pdHMgYW5kCisvLyBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJhZ2VCaXRSYXRl
LiBUaGUgZGF0YSByYXRlIGxpbWl0IGlzIHNldCBoaWdoZXIKKy8vIHRoYW4gdGhlIGF2ZXJhZ2Ug
Yml0IHJhdGUgdG8gYXZvaWQgdW5kZXJzaG9vdGluZyB0aGUgdGFyZ2V0LgorY29uc3QgZmxvYXQg
a0xpbWl0VG9BdmVyYWdlQml0UmF0ZUZhY3RvciA9IDEuNWY7CisvLyBUaGVzZSB0aHJlc2hvbGRz
IGRldmlhdGUgZnJvbSB0aGUgZGVmYXVsdCBoMjY1IFFQIHRocmVzaG9sZHMsIGFzIHRoZXkKKy8v
IGhhdmUgYmVlbiBmb3VuZCB0byB3b3JrIGJldHRlciBvbiBkZXZpY2VzIHRoYXQgc3VwcG9ydCBW
aWRlb1Rvb2xib3gKK2NvbnN0IGludCBrTG93aDI2NVFwVGhyZXNob2xkID0gMjg7Citjb25zdCBp
bnQga0hpZ2hoMjY1UXBUaHJlc2hvbGQgPSAzOTsKKworLy8gU3RydWN0IHRoYXQgd2UgcGFzcyB0
byB0aGUgZW5jb2RlciBwZXIgZnJhbWUgdG8gZW5jb2RlLiBXZSByZWNlaXZlIGl0IGFnYWluCisv
LyBpbiB0aGUgZW5jb2RlciBjYWxsYmFjay4KK3N0cnVjdCBBUElfQVZBSUxBQkxFKGlvcygxMS4w
KSkgUlRDRnJhbWVFbmNvZGVQYXJhbXMgeworICBSVENGcmFtZUVuY29kZVBhcmFtcyhSVENWaWRl
b0VuY29kZXJIMjY1KiBlLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHcsCisgICAg
ICAgICAgICAgICAgICAgICAgIGludDMyX3QgaCwKKyAgICAgICAgICAgICAgICAgICAgICAgaW50
NjRfdCBydG1zLAorICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cywKKyAgICAgICAg
ICAgICAgICAgICAgICAgUlRDVmlkZW9Sb3RhdGlvbiByKQorICAgICAgOiBlbmNvZGVyKGUpLAor
ICAgICAgICB3aWR0aCh3KSwKKyAgICAgICAgaGVpZ2h0KGgpLAorICAgICAgICByZW5kZXJfdGlt
ZV9tcyhydG1zKSwKKyAgICAgICAgdGltZXN0YW1wKHRzKSwKKyAgICAgICAgcm90YXRpb24ocikg
e30KKworICBSVENWaWRlb0VuY29kZXJIMjY1KiBlbmNvZGVyOworICBpbnQzMl90IHdpZHRoOwor
ICBpbnQzMl90IGhlaWdodDsKKyAgaW50NjRfdCByZW5kZXJfdGltZV9tczsKKyAgdWludDMyX3Qg
dGltZXN0YW1wOworICBSVENWaWRlb1JvdGF0aW9uIHJvdGF0aW9uOworfTsKKworLy8gV2UgcmVj
ZWl2ZSBJNDIwRnJhbWVzIGFzIGlucHV0LCBidXQgd2UgbmVlZCB0byBmZWVkIENWUGl4ZWxCdWZm
ZXJzIGludG8gdGhlCisvLyBlbmNvZGVyLiBUaGlzIHBlcmZvcm1zIHRoZSBjb3B5IGFuZCBmb3Jt
YXQgY29udmVyc2lvbi4KKy8vIFRPRE8odGtjaGluKTogU2VlIGlmIGVuY29kZXIgd2lsbCBhY2Nl
cHQgaTQyMCBmcmFtZXMgYW5kIGNvbXBhcmUgcGVyZm9ybWFuY2UuCitib29sIENvcHlWaWRlb0Zy
YW1lVG9QaXhlbEJ1ZmZlcihpZDxSVENJNDIwQnVmZmVyPiBmcmFtZUJ1ZmZlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIpIHsK
KyAgUlRDX0RDSEVDSyhwaXhlbEJ1ZmZlcik7CisgIFJUQ19EQ0hFQ0tfRVEoQ1ZQaXhlbEJ1ZmZl
ckdldFBpeGVsRm9ybWF0VHlwZShwaXhlbEJ1ZmZlciksCisgICAgICAgICAgICAgICAga0NWUGl4
ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZSk7CisgIFJUQ19EQ0hFQ0tf
RVEoQ1ZQaXhlbEJ1ZmZlckdldEhlaWdodE9mUGxhbmUocGl4ZWxCdWZmZXIsIDApLAorICAgICAg
ICAgICAgICAgIGZyYW1lQnVmZmVyLmhlaWdodCk7CisgIFJUQ19EQ0hFQ0tfRVEoQ1ZQaXhlbEJ1
ZmZlckdldFdpZHRoT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCksCisgICAgICAgICAgICAgICAgZnJh
bWVCdWZmZXIud2lkdGgpOworCisgIENWUmV0dXJuIGN2UmV0ID0gQ1ZQaXhlbEJ1ZmZlckxvY2tC
YXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7CisgIGlmIChjdlJldCAhPSBrQ1ZSZXR1cm5TdWNj
ZXNzKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBsb2NrIGJhc2UgYWRk
cmVzczogIiA8PCBjdlJldDsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICB1aW50OF90KiBk
c3RZID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oCisgICAgICBDVlBpeGVsQnVmZmVyR2V0
QmFzZUFkZHJlc3NPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKSk7CisgIGludCBkc3RTdHJpZGVZID0g
Q1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCk7CisgIHVp
bnQ4X3QqIGRzdFVWID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oCisgICAgICBDVlBpeGVs
QnVmZmVyR2V0QmFzZUFkZHJlc3NPZlBsYW5lKHBpeGVsQnVmZmVyLCAxKSk7CisgIGludCBkc3RT
dHJpZGVVViA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJvd09mUGxhbmUocGl4ZWxCdWZmZXIs
IDEpOworICAvLyBDb252ZXJ0IEk0MjAgdG8gTlYxMi4KKyAgaW50IHJldCA9IGxpYnl1djo6STQy
MFRvTlYxMigKKyAgICAgIGZyYW1lQnVmZmVyLmRhdGFZLCBmcmFtZUJ1ZmZlci5zdHJpZGVZLCBm
cmFtZUJ1ZmZlci5kYXRhVSwKKyAgICAgIGZyYW1lQnVmZmVyLnN0cmlkZVUsIGZyYW1lQnVmZmVy
LmRhdGFWLCBmcmFtZUJ1ZmZlci5zdHJpZGVWLCBkc3RZLAorICAgICAgZHN0U3RyaWRlWSwgZHN0
VVYsIGRzdFN0cmlkZVVWLCBmcmFtZUJ1ZmZlci53aWR0aCwgZnJhbWVCdWZmZXIuaGVpZ2h0KTsK
KyAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCAwKTsKKyAgaWYg
KHJldCkgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJFcnJvciBjb252ZXJ0aW5nIEk0MjAg
VmlkZW9GcmFtZSB0byBOVjEyIDoiIDw8IHJldDsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAg
cmV0dXJuIHRydWU7Cit9CisKK0NWUGl4ZWxCdWZmZXJSZWYgQ3JlYXRlUGl4ZWxCdWZmZXIoQ1ZQ
aXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxfYnVmZmVyX3Bvb2wpIHsKKyAgaWYgKCFwaXhlbF9idWZm
ZXJfcG9vbCkgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IHBpeGVs
IGJ1ZmZlciBwb29sLiI7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbF9idWZmZXI7CisgIENWUmV0dXJuIHJldCA9IENWUGl4ZWxCdWZmZXJQb29sQ3Jl
YXRlUGl4ZWxCdWZmZXIobnVsbHB0ciwgcGl4ZWxfYnVmZmVyX3Bvb2wsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBpeGVsX2J1ZmZlcik7Cisg
IGlmIChyZXQgIT0ga0NWUmV0dXJuU3VjY2VzcykgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8
ICJGYWlsZWQgdG8gY3JlYXRlIHBpeGVsIGJ1ZmZlcjogIiA8PCByZXQ7CisgICAgLy8gV2UgcHJv
YmFibHkgd2FudCB0byBkcm9wIGZyYW1lcyBoZXJlLCBzaW5jZSBmYWlsdXJlIHByb2JhYmx5IG1l
YW5zCisgICAgLy8gdGhhdCB0aGUgcG9vbCBpcyBlbXB0eS4KKyAgICByZXR1cm4gbnVsbHB0cjsK
KyAgfQorICByZXR1cm4gcGl4ZWxfYnVmZmVyOworfQorCisvLyBUaGlzIGlzIHRoZSBjYWxsYmFj
ayBmdW5jdGlvbiB0aGF0IFZpZGVvVG9vbGJveCBjYWxscyB3aGVuIGVuY29kZSBpcworLy8gY29t
cGxldGUuIEZyb20gaW5zcGVjdGlvbiB0aGlzIGhhcHBlbnMgb24gaXRzIG93biBxdWV1ZS4KK3Zv
aWQgY29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayh2b2lkKiBlbmNvZGVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZvaWQqIHBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBPU1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VlRFbmNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKKyAgICBBUElfQVZBSUxBQkxFKGlv
cygxMS4wKSkgeworICBSVENfQ0hFQ0socGFyYW1zKTsKKyAgc3RkOjp1bmlxdWVfcHRyPFJUQ0Zy
YW1lRW5jb2RlUGFyYW1zPiBlbmNvZGVQYXJhbXMoCisgICAgICByZWludGVycHJldF9jYXN0PFJU
Q0ZyYW1lRW5jb2RlUGFyYW1zKj4ocGFyYW1zKSk7CisgIFJUQ19DSEVDSyhlbmNvZGVQYXJhbXMt
PmVuY29kZXIpOworICBbZW5jb2RlUGFyYW1zLT5lbmNvZGVyIGZyYW1lV2FzRW5jb2RlZDpzdGF0
dXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3M6aW5mb0ZsYWdzCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlQnVmZmVyOnNhbXBsZUJ1ZmZlcgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDplbmNvZGVQYXJhbXMtPndpZHRo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OmVuY29kZVBhcmFtcy0+
aGVpZ2h0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyVGltZU1zOmVuY29kZVBh
cmFtcy0+cmVuZGVyX3RpbWVfbXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1l
c3RhbXA6ZW5jb2RlUGFyYW1zLT50aW1lc3RhbXAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcm90YXRpb246ZW5jb2RlUGFyYW1zLT5yb3RhdGlvbl07Cit9Cit9ICAvLyBuYW1lc3Bh
Y2UKKworQGltcGxlbWVudGF0aW9uIFJUQ1ZpZGVvRW5jb2RlckgyNjUgeworICBSVENWaWRlb0Nv
ZGVjSW5mbyogX2NvZGVjSW5mbzsKKyAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6Qml0cmF0ZUFk
anVzdGVyPiBfYml0cmF0ZUFkanVzdGVyOworICB1aW50MzJfdCBfdGFyZ2V0Qml0cmF0ZUJwczsK
KyAgdWludDMyX3QgX2VuY29kZXJCaXRyYXRlQnBzOworICBDRlN0cmluZ1JlZiBfcHJvZmlsZTsK
KyAgUlRDVmlkZW9FbmNvZGVyQ2FsbGJhY2sgX2NhbGxiYWNrOworICBpbnQzMl90IF93aWR0aDsK
KyAgaW50MzJfdCBfaGVpZ2h0OworICBWVENvbXByZXNzaW9uU2Vzc2lvblJlZiBfY29tcHJlc3Np
b25TZXNzaW9uOworICBSVENWaWRlb0NvZGVjTW9kZSBfbW9kZTsKKyAgaW50IGZyYW1lc0xlZnQ7
CisKKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gX252MTJTY2FsZUJ1ZmZlcjsKK30KKworLy8gLjUg
aXMgc2V0IGFzIGEgbWluaW51bSB0byBwcmV2ZW50IG92ZXJjb21wZW5zYXRpbmcgZm9yIGxhcmdl
IHRlbXBvcmFyeQorLy8gb3ZlcnNob290cy4gV2UgZG9uJ3Qgd2FudCB0byBkZWdyYWRlIHZpZGVv
IHF1YWxpdHkgdG9vIGJhZGx5LgorLy8gLjk1IGlzIHNldCB0byBwcmV2ZW50IG9zY2lsbGF0aW9u
cy4gV2hlbiBhIGxvd2VyIGJpdHJhdGUgaXMgc2V0IG9uIHRoZQorLy8gZW5jb2RlciB0aGFuIHBy
ZXZpb3VzbHkgc2V0LCBpdHMgb3V0cHV0IHNlZW1zIHRvIGhhdmUgYSBicmllZiBwZXJpb2Qgb2YK
Ky8vIGRyYXN0aWNhbGx5IHJlZHVjZWQgYml0cmF0ZSwgc28gd2Ugd2FudCB0byBhdm9pZCB0aGF0
LiBJbiBzdGVhZHkgc3RhdGUKKy8vIGNvbmRpdGlvbnMsIDAuOTUgc2VlbXMgdG8gZ2l2ZSB1cyBi
ZXR0ZXIgb3ZlcmFsbCBiaXRyYXRlIG92ZXIgbG9uZyBwZXJpb2RzCisvLyBvZiB0aW1lLgorLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZWNJbmZvOihSVENWaWRlb0NvZGVjSW5mbyopY29kZWNJ
bmZvIHsKKyAgaWYgKHNlbGYgPSBbc3VwZXIgaW5pdF0pIHsKKyAgICBfY29kZWNJbmZvID0gY29k
ZWNJbmZvOworICAgIF9iaXRyYXRlQWRqdXN0ZXIucmVzZXQobmV3IHdlYnJ0Yzo6Qml0cmF0ZUFk
anVzdGVyKC41LCAuOTUpKTsKKyAgICBSVENfQ0hFQ0soW2NvZGVjSW5mby5uYW1lIGlzRXF1YWxU
b1N0cmluZzpAIkgyNjUiXSk7CisgIH0KKyAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVh
bGxvYyB7CisgIFtzZWxmIGRlc3Ryb3lDb21wcmVzc2lvblNlc3Npb25dOworfQorCistIChOU0lu
dGVnZXIpc3RhcnRFbmNvZGVXaXRoU2V0dGluZ3M6KFJUQ1ZpZGVvRW5jb2RlclNldHRpbmdzKilz
ZXR0aW5ncworICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkNvcmVzOihpbnQpbnVtYmVy
T2ZDb3JlcyB7CisgIFJUQ19EQ0hFQ0soc2V0dGluZ3MpOworICBSVENfRENIRUNLKFtzZXR0aW5n
cy5uYW1lIGlzRXF1YWxUb1N0cmluZzpAIkgyNjUiXSk7CisKKyAgX3dpZHRoID0gc2V0dGluZ3Mu
d2lkdGg7CisgIF9oZWlnaHQgPSBzZXR0aW5ncy5oZWlnaHQ7CisgIF9tb2RlID0gc2V0dGluZ3Mu
bW9kZTsKKworICAvLyBXZSBjYW4gb25seSBzZXQgYXZlcmFnZSBiaXRyYXRlIG9uIHRoZSBIVyBl
bmNvZGVyLgorICBfdGFyZ2V0Qml0cmF0ZUJwcyA9IHNldHRpbmdzLnN0YXJ0Qml0cmF0ZTsKKyAg
X2JpdHJhdGVBZGp1c3Rlci0+U2V0VGFyZ2V0Qml0cmF0ZUJwcyhfdGFyZ2V0Qml0cmF0ZUJwcyk7
CisKKyAgLy8gVE9ETyh0a2NoaW4pOiBUcnkgc2V0dGluZyBwYXlsb2FkIHNpemUgdmlhCisgIC8v
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4aDI2NVNsaWNlQnl0ZXMuCisKKyAgcmV0dXJu
IFtzZWxmIHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uXTsKK30KKworLSAoTlNJbnRlZ2VyKWVuY29k
ZTooUlRDVmlkZW9GcmFtZSopZnJhbWUKKyAgICBjb2RlY1NwZWNpZmljSW5mbzooaWQ8UlRDQ29k
ZWNTcGVjaWZpY0luZm8+KWNvZGVjU3BlY2lmaWNJbmZvCisgICAgICAgICAgIGZyYW1lVHlwZXM6
KE5TQXJyYXk8TlNOdW1iZXIqPiopZnJhbWVUeXBlcyB7CisgIFJUQ19EQ0hFQ0tfRVEoZnJhbWUu
d2lkdGgsIF93aWR0aCk7CisgIFJUQ19EQ0hFQ0tfRVEoZnJhbWUuaGVpZ2h0LCBfaGVpZ2h0KTsK
KyAgaWYgKCFfY2FsbGJhY2sgfHwgIV9jb21wcmVzc2lvblNlc3Npb24pIHsKKyAgICByZXR1cm4g
V0VCUlRDX1ZJREVPX0NPREVDX1VOSU5JVElBTElaRUQ7CisgIH0KKyAgQk9PTCBpc0tleWZyYW1l
UmVxdWlyZWQgPSBOTzsKKworICAvLyBHZXQgYSBwaXhlbCBidWZmZXIgZnJvbSB0aGUgcG9vbCBh
bmQgY29weSBmcmFtZSBkYXRhIG92ZXIuCisgIENWUGl4ZWxCdWZmZXJQb29sUmVmIHBpeGVsQnVm
ZmVyUG9vbCA9CisgICAgICBWVENvbXByZXNzaW9uU2Vzc2lvbkdldFBpeGVsQnVmZmVyUG9vbChf
Y29tcHJlc3Npb25TZXNzaW9uKTsKKworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgaWYgKCFw
aXhlbEJ1ZmZlclBvb2wpIHsKKyAgICAvLyBLaW5kIG9mIGEgaGFjay4gT24gYmFja2dyb3VuZGlu
ZywgdGhlIGNvbXByZXNzaW9uIHNlc3Npb24gc2VlbXMgdG8gZ2V0CisgICAgLy8gaW52YWxpZGF0
ZWQsIHdoaWNoIGNhdXNlcyB0aGlzIHBvb2wgY2FsbCB0byBmYWlsIHdoZW4gdGhlIGFwcGxpY2F0
aW9uCisgICAgLy8gaXMgZm9yZWdyb3VuZGVkIGFuZCBmcmFtZXMgYXJlIGJlaW5nIHNlbnQgZm9y
IGVuY29kaW5nIGFnYWluLgorICAgIC8vIFJlc2V0dGluZyB0aGUgc2Vzc2lvbiB3aGVuIHRoaXMg
aGFwcGVucyBmaXhlcyB0aGUgaXNzdWUuCisgICAgLy8gSW4gYWRkaXRpb24gd2UgcmVxdWVzdCBh
IGtleWZyYW1lIHNvIHZpZGVvIGNhbiByZWNvdmVyIHF1aWNrbHkuCisgICAgW3NlbGYgcmVzZXRD
b21wcmVzc2lvblNlc3Npb25dOworICAgIHBpeGVsQnVmZmVyUG9vbCA9CisgICAgICAgIFZUQ29t
cHJlc3Npb25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQb29sKF9jb21wcmVzc2lvblNlc3Npb24pOwor
ICAgIGlzS2V5ZnJhbWVSZXF1aXJlZCA9IFlFUzsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJS
ZXNldHRpbmcgY29tcHJlc3Npb24gc2Vzc2lvbiBkdWUgdG8gaW52YWxpZCBwb29sLiI7CisgIH0K
KyNlbmRpZgorCisgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIgPSBudWxscHRyOworICBp
ZiAoW2ZyYW1lLmJ1ZmZlciBpc0tpbmRPZkNsYXNzOltSVENDVlBpeGVsQnVmZmVyIGNsYXNzXV0p
IHsKKyAgICAvLyBOYXRpdmUgZnJhbWUgYnVmZmVyCisgICAgUlRDQ1ZQaXhlbEJ1ZmZlciogcnRj
UGl4ZWxCdWZmZXIgPSAoUlRDQ1ZQaXhlbEJ1ZmZlciopZnJhbWUuYnVmZmVyOworICAgIGlmICgh
W3J0Y1BpeGVsQnVmZmVyIHJlcXVpcmVzQ3JvcHBpbmddKSB7CisgICAgICAvLyBUaGlzIHBpeGVs
IGJ1ZmZlciBtaWdodCBoYXZlIGEgaGlnaGVyIHJlc29sdXRpb24gdGhhbiB3aGF0IHRoZQorICAg
ICAgLy8gY29tcHJlc3Npb24gc2Vzc2lvbiBpcyBjb25maWd1cmVkIHRvLiBUaGUgY29tcHJlc3Np
b24gc2Vzc2lvbiBjYW4KKyAgICAgIC8vIGhhbmRsZSB0aGF0IGFuZCB3aWxsIG91dHB1dCBlbmNv
ZGVkIGZyYW1lcyBpbiB0aGUgY29uZmlndXJlZAorICAgICAgLy8gcmVzb2x1dGlvbiByZWdhcmRs
ZXNzIG9mIHRoZSBpbnB1dCBwaXhlbCBidWZmZXIgcmVzb2x1dGlvbi4KKyAgICAgIHBpeGVsQnVm
ZmVyID0gcnRjUGl4ZWxCdWZmZXIucGl4ZWxCdWZmZXI7CisgICAgICBDVkJ1ZmZlclJldGFpbihw
aXhlbEJ1ZmZlcik7CisgICAgfSBlbHNlIHsKKyAgICAgIC8vIENyb3BwaW5nIHJlcXVpcmVkLCB3
ZSBuZWVkIHRvIGNyb3AgYW5kIHNjYWxlIHRvIGEgbmV3IHBpeGVsIGJ1ZmZlci4KKyAgICAgIHBp
eGVsQnVmZmVyID0gQ3JlYXRlUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXJQb29sKTsKKyAgICAgIGlm
ICghcGl4ZWxCdWZmZXIpIHsKKyAgICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJP
UjsKKyAgICAgIH0KKyAgICAgIGludCBkc3RXaWR0aCA9IENWUGl4ZWxCdWZmZXJHZXRXaWR0aChw
aXhlbEJ1ZmZlcik7CisgICAgICBpbnQgZHN0SGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdo
dChwaXhlbEJ1ZmZlcik7CisgICAgICBpZiAoW3J0Y1BpeGVsQnVmZmVyIHJlcXVpcmVzU2NhbGlu
Z1RvV2lkdGg6ZHN0V2lkdGggaGVpZ2h0OmRzdEhlaWdodF0pIHsKKyAgICAgICAgaW50IHNpemUg
PQorICAgICAgICAgICAgW3J0Y1BpeGVsQnVmZmVyIGJ1ZmZlclNpemVGb3JDcm9wcGluZ0FuZFNj
YWxpbmdUb1dpZHRoOmRzdFdpZHRoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ZHN0SGVpZ2h0XTsKKyAgICAgICAgX252
MTJTY2FsZUJ1ZmZlci5yZXNpemUoc2l6ZSk7CisgICAgICB9IGVsc2UgeworICAgICAgICBfbnYx
MlNjYWxlQnVmZmVyLmNsZWFyKCk7CisgICAgICB9CisgICAgICBfbnYxMlNjYWxlQnVmZmVyLnNo
cmlua190b19maXQoKTsKKyAgICAgIGlmICghW3J0Y1BpeGVsQnVmZmVyIGNyb3BBbmRTY2FsZVRv
OnBpeGVsQnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoVGVtcEJ1ZmZlcjpf
bnYxMlNjYWxlQnVmZmVyLmRhdGEoKV0pIHsKKyAgICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19D
T0RFQ19FUlJPUjsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBpZiAoIXBpeGVsQnVmZmVyKSB7
CisgICAgLy8gV2UgZGlkIG5vdCBoYXZlIGEgbmF0aXZlIGZyYW1lIGJ1ZmZlcgorICAgIHBpeGVs
QnVmZmVyID0gQ3JlYXRlUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXJQb29sKTsKKyAgICBpZiAoIXBp
eGVsQnVmZmVyKSB7CisgICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICAg
IH0KKyAgICBSVENfRENIRUNLKHBpeGVsQnVmZmVyKTsKKyAgICBpZiAoIUNvcHlWaWRlb0ZyYW1l
VG9QaXhlbEJ1ZmZlcihbZnJhbWUuYnVmZmVyIHRvSTQyMF0sIHBpeGVsQnVmZmVyKSkgeworICAg
ICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBjb3B5IGZyYW1lIGRhdGEuIjsKKyAg
ICAgIENWQnVmZmVyUmVsZWFzZShwaXhlbEJ1ZmZlcik7CisgICAgICByZXR1cm4gV0VCUlRDX1ZJ
REVPX0NPREVDX0VSUk9SOworICAgIH0KKyAgfQorCisgIC8vIENoZWNrIGlmIHdlIG5lZWQgYSBr
ZXlmcmFtZS4KKyAgaWYgKCFpc0tleWZyYW1lUmVxdWlyZWQgJiYgZnJhbWVUeXBlcykgeworICAg
IGZvciAoTlNOdW1iZXIqIGZyYW1lVHlwZSBpbiBmcmFtZVR5cGVzKSB7CisgICAgICBpZiAoKFJU
Q0ZyYW1lVHlwZSlmcmFtZVR5cGUuaW50VmFsdWUgPT0gUlRDRnJhbWVUeXBlVmlkZW9GcmFtZUtl
eSkgeworICAgICAgICBpc0tleWZyYW1lUmVxdWlyZWQgPSBZRVM7CisgICAgICAgIGJyZWFrOwor
ICAgICAgfQorICAgIH0KKyAgfQorCisgIENNVGltZSBwcmVzZW50YXRpb25UaW1lU3RhbXAgPQor
ICAgICAgQ01UaW1lTWFrZShmcmFtZS50aW1lU3RhbXBOcyAvIHJ0Yzo6a051bU5hbm9zZWNzUGVy
TWlsbGlzZWMsIDEwMDApOworICBDRkRpY3Rpb25hcnlSZWYgZnJhbWVQcm9wZXJ0aWVzID0gbnVs
bHB0cjsKKyAgaWYgKGlzS2V5ZnJhbWVSZXF1aXJlZCkgeworICAgIENGVHlwZVJlZiBrZXlzW10g
PSB7a1ZURW5jb2RlRnJhbWVPcHRpb25LZXlfRm9yY2VLZXlGcmFtZX07CisgICAgQ0ZUeXBlUmVm
IHZhbHVlc1tdID0ge2tDRkJvb2xlYW5UcnVlfTsKKyAgICBmcmFtZVByb3BlcnRpZXMgPSBDcmVh
dGVDRlR5cGVEaWN0aW9uYXJ5KGtleXMsIHZhbHVlcywgMSk7CisgIH0KKworICBzdGQ6OnVuaXF1
ZV9wdHI8UlRDRnJhbWVFbmNvZGVQYXJhbXM+IGVuY29kZVBhcmFtczsKKyAgZW5jb2RlUGFyYW1z
LnJlc2V0KG5ldyBSVENGcmFtZUVuY29kZVBhcmFtcygKKyAgICAgIHNlbGYsIF93aWR0aCwgX2hl
aWdodCwgZnJhbWUudGltZVN0YW1wTnMgLyBydGM6OmtOdW1OYW5vc2Vjc1Blck1pbGxpc2VjLAor
ICAgICAgZnJhbWUudGltZVN0YW1wLCBmcmFtZS5yb3RhdGlvbikpOworCisgIC8vIFVwZGF0ZSB0
aGUgYml0cmF0ZSBpZiBuZWVkZWQuCisgIFtzZWxmIHNldEJpdHJhdGVCcHM6X2JpdHJhdGVBZGp1
c3Rlci0+R2V0QWRqdXN0ZWRCaXRyYXRlQnBzKCldOworCisgIE9TU3RhdHVzIHN0YXR1cyA9IFZU
Q29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUoCisgICAgICBfY29tcHJlc3Npb25TZXNzaW9u
LCBwaXhlbEJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBrQ01UaW1lSW52YWxpZCwKKyAg
ICAgIGZyYW1lUHJvcGVydGllcywgZW5jb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7Cisg
IGlmIChmcmFtZVByb3BlcnRpZXMpIHsKKyAgICBDRlJlbGVhc2UoZnJhbWVQcm9wZXJ0aWVzKTsK
KyAgfQorICBpZiAocGl4ZWxCdWZmZXIpIHsKKyAgICBDVkJ1ZmZlclJlbGVhc2UocGl4ZWxCdWZm
ZXIpOworICB9CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9S
KSA8PCAiRmFpbGVkIHRvIGVuY29kZSBmcmFtZSB3aXRoIGNvZGU6ICIgPDwgc3RhdHVzOworICAg
IHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyAgcmV0dXJuIFdFQlJUQ19W
SURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZClzZXRDYWxsYmFjazooUlRDVmlkZW9FbmNvZGVy
Q2FsbGJhY2spY2FsbGJhY2sgeworICBfY2FsbGJhY2sgPSBjYWxsYmFjazsKK30KKworLSAoaW50
KXNldEJpdHJhdGU6KHVpbnQzMl90KWJpdHJhdGVLYml0IGZyYW1lcmF0ZToodWludDMyX3QpZnJh
bWVyYXRlIHsKKyAgX3RhcmdldEJpdHJhdGVCcHMgPSAxMDAwICogYml0cmF0ZUtiaXQ7CisgIF9i
aXRyYXRlQWRqdXN0ZXItPlNldFRhcmdldEJpdHJhdGVCcHMoX3RhcmdldEJpdHJhdGVCcHMpOwor
ICBbc2VsZiBzZXRCaXRyYXRlQnBzOl9iaXRyYXRlQWRqdXN0ZXItPkdldEFkanVzdGVkQml0cmF0
ZUJwcygpXTsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworI3ByYWdtYSBt
YXJrIC0gUHJpdmF0ZQorCistIChOU0ludGVnZXIpcmVsZWFzZUVuY29kZXIgeworICAvLyBOZWVk
IHRvIGRlc3Ryb3kgc28gdGhhdCB0aGUgc2Vzc2lvbiBpcyBpbnZhbGlkYXRlZCBhbmQgd29uJ3Qg
dXNlIHRoZQorICAvLyBjYWxsYmFjayBhbnltb3JlLiBEbyBub3QgcmVtb3ZlIGNhbGxiYWNrIHVu
dGlsIHRoZSBzZXNzaW9uIGlzIGludmFsaWRhdGVkCisgIC8vIHNpbmNlIGFzeW5jIGVuY29kZXIg
Y2FsbGJhY2tzIGNhbiBvY2N1ciB1bnRpbCBpbnZhbGlkYXRpb24uCisgIFtzZWxmIGRlc3Ryb3lD
b21wcmVzc2lvblNlc3Npb25dOworICBfY2FsbGJhY2sgPSBudWxscHRyOworICByZXR1cm4gV0VC
UlRDX1ZJREVPX0NPREVDX09LOworfQorCistIChpbnQpcmVzZXRDb21wcmVzc2lvblNlc3Npb24g
eworICBbc2VsZiBkZXN0cm95Q29tcHJlc3Npb25TZXNzaW9uXTsKKworICAvLyBTZXQgc291cmNl
IGltYWdlIGJ1ZmZlciBhdHRyaWJ1dGVzLiBUaGVzZSBhdHRyaWJ1dGVzIHdpbGwgYmUgcHJlc2Vu
dCBvbgorICAvLyBidWZmZXJzIHJldHJpZXZlZCBmcm9tIHRoZSBlbmNvZGVyJ3MgcGl4ZWwgYnVm
ZmVyIHBvb2wuCisgIGNvbnN0IHNpemVfdCBhdHRyaWJ1dGVzU2l6ZSA9IDM7CisgIENGVHlwZVJl
ZiBrZXlzW2F0dHJpYnV0ZXNTaXplXSA9IHsKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgICAg
a0NWUGl4ZWxCdWZmZXJPcGVuR0xFU0NvbXBhdGliaWxpdHlLZXksCisjZWxpZiBkZWZpbmVkKFdF
QlJUQ19NQUMpCisgICAga0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5LAorI2Vu
ZGlmCisgICAga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0aWVzS2V5LAorICAgIGtDVlBp
eGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5CisgIH07CisgIENGRGljdGlvbmFyeVJlZiBpb1N1
cmZhY2VWYWx1ZSA9IENyZWF0ZUNGVHlwZURpY3Rpb25hcnkobnVsbHB0ciwgbnVsbHB0ciwgMCk7
CisgIGludDY0X3QgbnYxMnR5cGUgPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxh
bmFyRnVsbFJhbmdlOworICBDRk51bWJlclJlZiBwaXhlbEZvcm1hdCA9CisgICAgICBDRk51bWJl
ckNyZWF0ZShudWxscHRyLCBrQ0ZOdW1iZXJMb25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBl
UmVmIHZhbHVlc1thdHRyaWJ1dGVzU2l6ZV0gPSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZh
bHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbEZvcm1hdH07
CisgIENGRGljdGlvbmFyeVJlZiBzb3VyY2VBdHRyaWJ1dGVzID0KKyAgICAgIENyZWF0ZUNGVHlw
ZURpY3Rpb25hcnkoa2V5cywgdmFsdWVzLCBhdHRyaWJ1dGVzU2l6ZSk7CisgIGlmIChpb1N1cmZh
Y2VWYWx1ZSkgeworICAgIENGUmVsZWFzZShpb1N1cmZhY2VWYWx1ZSk7CisgICAgaW9TdXJmYWNl
VmFsdWUgPSBudWxscHRyOworICB9CisgIGlmIChwaXhlbEZvcm1hdCkgeworICAgIENGUmVsZWFz
ZShwaXhlbEZvcm1hdCk7CisgICAgcGl4ZWxGb3JtYXQgPSBudWxscHRyOworICB9CisgIENGTXV0
YWJsZURpY3Rpb25hcnlSZWYgZW5jb2Rlcl9zcGVjcyA9IG51bGxwdHI7CisjaWYgZGVmaW5lZChX
RUJSVENfTUFDKSAmJiAhZGVmaW5lZChXRUJSVENfSU9TKQorICAvLyBDdXJyZW50bHkgaHcgYWNj
bCBpcyBzdXBwb3J0ZWQgYWJvdmUgMzYwcCBvbiBtYWMsIGJlbG93IDM2MHAKKyAgLy8gdGhlIGNv
bXByZXNzaW9uIHNlc3Npb24gd2lsbCBiZSBjcmVhdGVkIHdpdGggaHcgYWNjbCBkaXNhYmxlZC4K
KyAgZW5jb2Rlcl9zcGVjcyA9CisgICAgICBDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKG51bGxw
dHIsIDEsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpOworICBDRkRp
Y3Rpb25hcnlTZXRWYWx1ZSgKKyAgICAgIGVuY29kZXJfc3BlY3MsCisgICAgICBrVlRWaWRlb0Vu
Y29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXIs
CisgICAgICBrQ0ZCb29sZWFuVHJ1ZSk7CisjZW5kaWYKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlRD
b21wcmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAgICBudWxscHRyLCAgLy8gdXNlIGRlZmF1bHQg
YWxsb2NhdG9yCisgICAgICBfd2lkdGgsIF9oZWlnaHQsIGtDTVZpZGVvQ29kZWNUeXBlX0hFVkMs
CisgICAgICBlbmNvZGVyX3NwZWNzLCAgLy8gdXNlIGhhcmR3YXJlIGFjY2VsZXJhdGVkIGVuY29k
ZXIgaWYgYXZhaWxhYmxlCisgICAgICBzb3VyY2VBdHRyaWJ1dGVzLAorICAgICAgbnVsbHB0ciwg
IC8vIHVzZSBkZWZhdWx0IGNvbXByZXNzZWQgZGF0YSBhbGxvY2F0b3IKKyAgICAgIGNvbXByZXNz
aW9uT3V0cHV0Q2FsbGJhY2ssIG51bGxwdHIsICZfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgaWYg
KHNvdXJjZUF0dHJpYnV0ZXMpIHsKKyAgICBDRlJlbGVhc2Uoc291cmNlQXR0cmlidXRlcyk7Cisg
ICAgc291cmNlQXR0cmlidXRlcyA9IG51bGxwdHI7CisgIH0KKyAgaWYgKGVuY29kZXJfc3BlY3Mp
IHsKKyAgICBDRlJlbGVhc2UoZW5jb2Rlcl9zcGVjcyk7CisgICAgZW5jb2Rlcl9zcGVjcyA9IG51
bGxwdHI7CisgIH0KKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJS
T1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIGNvbXByZXNzaW9uIHNlc3Npb246ICIgPDwgc3RhdHVz
OworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyNpZiBkZWZpbmVk
KFdFQlJUQ19NQUMpICYmICFkZWZpbmVkKFdFQlJUQ19JT1MpCisgIENGQm9vbGVhblJlZiBod2Fj
Y2xfZW5hYmxlZCA9IG51bGxwdHI7CisgIHN0YXR1cyA9IFZUU2Vzc2lvbkNvcHlQcm9wZXJ0eSgK
KyAgICAgIF9jb21wcmVzc2lvblNlc3Npb24sCisgICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X1VzaW5nSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgbnVsbHB0ciwKKyAgICAg
ICZod2FjY2xfZW5hYmxlZCk7CisgIGlmIChzdGF0dXMgPT0gbm9FcnIgJiYgKENGQm9vbGVhbkdl
dFZhbHVlKGh3YWNjbF9lbmFibGVkKSkpIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJDb21w
cmVzc2lvbiBzZXNzaW9uIGNyZWF0ZWQgd2l0aCBodyBhY2NsIGVuYWJsZWQiOworICB9IGVsc2Ug
eworICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIkNvbXByZXNzaW9uIHNlc3Npb24gY3JlYXRlZCB3
aXRoIGh3IGFjY2wgZGlzYWJsZWQiOworICB9CisjZW5kaWYKKyAgW3NlbGYgY29uZmlndXJlQ29t
cHJlc3Npb25TZXNzaW9uXTsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKwor
LSAodm9pZCljb25maWd1cmVDb21wcmVzc2lvblNlc3Npb24geworICBSVENfRENIRUNLKF9jb21w
cmVzc2lvblNlc3Npb24pOworICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNz
aW9uLCBudWxscHRyLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICB0cnVlKTsKKyAgLy8gU2V0VlRTZXNzaW9uUHJvcGVydHkoX2NvbXBy
ZXNzaW9uU2Vzc2lvbiwgbnVsbHB0ciwKKyAgLy8ga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Q
cm9maWxlTGV2ZWwsIF9wcm9maWxlKTsKKyAgU2V0VlRTZXNzaW9uUHJvcGVydHkoX2NvbXByZXNz
aW9uU2Vzc2lvbiwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAga1ZUQ29tcHJlc3Np
b25Qcm9wZXJ0eUtleV9BbGxvd0ZyYW1lUmVvcmRlcmluZywgZmFsc2UpOworICBbc2VsZiBzZXRF
bmNvZGVyQml0cmF0ZUJwczpfdGFyZ2V0Qml0cmF0ZUJwc107CisgIC8vIFRPRE8odGtjaGluKTog
TG9vayBhdCBlbnRyb3B5IG1vZGUgYW5kIGNvbG9yc3BhY2UgbWF0cmljZXMuCisgIC8vIFRPRE8o
dGtjaGluKTogSW52ZXN0aWdhdGUgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IHdheSB0byBtYWtlIHRo
aXMgd29yay4KKyAgLy8gTWF5IG5lZWQgaXQgdG8gaW50ZXJvcCB3aXRoIEFuZHJvaWQuIEN1cnJl
bnRseSB0aGlzIGNhbGwganVzdCBmYWlscy4KKyAgLy8gT24gaW5zcGVjdGluZyBlbmNvZGVyIG91
dHB1dCBvbiBpT1M4LCB0aGlzIHZhbHVlIGlzIHNldCB0byA2LgorICAvLyBpbnRlcm5hbDo6U2V0
VlRTZXNzaW9uUHJvcGVydHkoY29tcHJlc3Npb25fc2Vzc2lvbl8sCisgIC8vICAgICBrVlRDb21w
cmVzc2lvblByb3BlcnR5S2V5X01heEZyYW1lRGVsYXlDb3VudCwKKyAgLy8gICAgIDEpOworCisg
IC8vIFNldCBhIHJlbGF0aXZlbHkgbGFyZ2UgdmFsdWUgZm9yIGtleWZyYW1lIGVtaXNzaW9uICg3
MjAwIGZyYW1lcyBvciA0CisgIC8vIG1pbnV0ZXMpLgorICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShf
Y29tcHJlc3Npb25TZXNzaW9uLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWwsIDcyMDApOworICBTZXRW
VFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNzaW9uLCBudWxscHRyLAorICAgICAgICAg
ICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2
YWxEdXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgMjQwKTsKKyAgT1NTdGF0dXMgc3Rh
dHVzID0KKyAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKF9j
b21wcmVzc2lvblNlc3Npb24pOworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xP
RyhMU19FUlJPUikgPDwgIkNvbXByZXNzaW9uIHNlc3Npb24gZmFpbGVkIHRvIHByZXBhcmUgZW5j
b2RlIGZyYW1lcy4iOworICB9Cit9CisKKy0gKHZvaWQpZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lv
biB7CisgIGlmIChfY29tcHJlc3Npb25TZXNzaW9uKSB7CisgICAgVlRDb21wcmVzc2lvblNlc3Np
b25JbnZhbGlkYXRlKF9jb21wcmVzc2lvblNlc3Npb24pOworICAgIENGUmVsZWFzZShfY29tcHJl
c3Npb25TZXNzaW9uKTsKKyAgICBfY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKKyAgfQor
fQorCistIChOU1N0cmluZyopaW1wbGVtZW50YXRpb25OYW1lIHsKKyAgcmV0dXJuIEAiVmlkZW9U
b29sYm94IjsKK30KKworLSAodm9pZClzZXRCaXRyYXRlQnBzOih1aW50MzJfdCliaXRyYXRlQnBz
IHsKKyAgaWYgKF9lbmNvZGVyQml0cmF0ZUJwcyAhPSBiaXRyYXRlQnBzKSB7CisgICAgW3NlbGYg
c2V0RW5jb2RlckJpdHJhdGVCcHM6Yml0cmF0ZUJwc107CisgIH0KK30KKworLSAodm9pZClzZXRF
bmNvZGVyQml0cmF0ZUJwczoodWludDMyX3QpYml0cmF0ZUJwcyB7CisgIGlmIChfY29tcHJlc3Np
b25TZXNzaW9uKSB7CisgICAgU2V0VlRTZXNzaW9uUHJvcGVydHkoX2NvbXByZXNzaW9uU2Vzc2lv
biwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCBiaXRyYXRlQnBzKTsKKworICAgIC8vIFRPRE8odGtjaGlu
KTogQWRkIGEgaGVscGVyIG1ldGhvZCB0byBzZXQgYXJyYXkgdmFsdWUuCisgICAgaW50NjRfdCBk
YXRhTGltaXRCeXRlc1BlclNlY29uZFZhbHVlID0KKyAgICAgICAgc3RhdGljX2Nhc3Q8aW50NjRf
dD4oYml0cmF0ZUJwcyAqIGtMaW1pdFRvQXZlcmFnZUJpdFJhdGVGYWN0b3IgLyA4KTsKKyAgICBD
Rk51bWJlclJlZiBieXRlc1BlclNlY29uZCA9CisgICAgICAgIENGTnVtYmVyQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNJbnQ2NFR5cGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICZkYXRhTGltaXRCeXRlc1BlclNlY29uZFZhbHVlKTsKKyAgICBpbnQ2NF90IG9uZVNlY29u
ZFZhbHVlID0gMTsKKyAgICBDRk51bWJlclJlZiBvbmVTZWNvbmQgPSBDRk51bWJlckNyZWF0ZSgK
KyAgICAgICAga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyU0ludDY0VHlwZSwgJm9uZVNl
Y29uZFZhbHVlKTsKKyAgICBjb25zdCB2b2lkKiBudW1zWzJdID0ge2J5dGVzUGVyU2Vjb25kLCBv
bmVTZWNvbmR9OworICAgIENGQXJyYXlSZWYgZGF0YVJhdGVMaW1pdHMgPQorICAgICAgICBDRkFy
cmF5Q3JlYXRlKG51bGxwdHIsIG51bXMsIDIsICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpOworICAg
IE9TU3RhdHVzIHN0YXR1cyA9IFZUU2Vzc2lvblNldFByb3BlcnR5KAorICAgICAgICBfY29tcHJl
c3Npb25TZXNzaW9uLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0RhdGFSYXRlTGltaXRzLAor
ICAgICAgICBkYXRhUmF0ZUxpbWl0cyk7CisgICAgaWYgKGJ5dGVzUGVyU2Vjb25kKSB7CisgICAg
ICBDRlJlbGVhc2UoYnl0ZXNQZXJTZWNvbmQpOworICAgIH0KKyAgICBpZiAob25lU2Vjb25kKSB7
CisgICAgICBDRlJlbGVhc2Uob25lU2Vjb25kKTsKKyAgICB9CisgICAgaWYgKGRhdGFSYXRlTGlt
aXRzKSB7CisgICAgICBDRlJlbGVhc2UoZGF0YVJhdGVMaW1pdHMpOworICAgIH0KKyAgICBpZiAo
c3RhdHVzICE9IG5vRXJyKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRv
IHNldCBkYXRhIHJhdGUgbGltaXQiOworICAgIH0KKworICAgIF9lbmNvZGVyQml0cmF0ZUJwcyA9
IGJpdHJhdGVCcHM7CisgIH0KK30KKworLSAodm9pZClmcmFtZVdhc0VuY29kZWQ6KE9TU3RhdHVz
KXN0YXR1cworICAgICAgICAgICAgICAgICAgZmxhZ3M6KFZURW5jb2RlSW5mb0ZsYWdzKWluZm9G
bGFncworICAgICAgICAgICBzYW1wbGVCdWZmZXI6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgd2lkdGg6KGludDMyX3Qpd2lkdGgKKyAgICAgICAgICAg
ICAgICAgaGVpZ2h0OihpbnQzMl90KWhlaWdodAorICAgICAgICAgICByZW5kZXJUaW1lTXM6KGlu
dDY0X3QpcmVuZGVyVGltZU1zCisgICAgICAgICAgICAgIHRpbWVzdGFtcDoodWludDMyX3QpdGlt
ZXN0YW1wCisgICAgICAgICAgICAgICByb3RhdGlvbjooUlRDVmlkZW9Sb3RhdGlvbilyb3RhdGlv
biB7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
aDI2NSBlbmNvZGUgZmFpbGVkLiI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChpbmZvRmxhZ3Mg
JiBrVlRFbmNvZGVJbmZvX0ZyYW1lRHJvcHBlZCkgeworICAgIFJUQ19MT0coTFNfSU5GTykgPDwg
ImgyNjUgZW5jb2RlciBkcm9wcGVkIGEgZnJhbWUuIjsKKyAgICByZXR1cm47CisgIH0KKworICBC
T09MIGlzS2V5ZnJhbWUgPSBOTzsKKyAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9CisgICAgICBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLCAwKTsK
KyAgaWYgKGF0dGFjaG1lbnRzICE9IG51bGxwdHIgJiYgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1l
bnRzKSkgeworICAgIENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50ID0KKyAgICAgICAgc3RhdGlj
X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRz
LCAwKSk7CisgICAgaXNLZXlmcmFtZSA9CisgICAgICAgICFDRkRpY3Rpb25hcnlDb250YWluc0tl
eShhdHRhY2htZW50LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMpOworICB9CisKKyAg
aWYgKGlzS2V5ZnJhbWUpIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJHZW5lcmF0ZWQga2V5
ZnJhbWUiOworICB9CisKKyAgLy8gQ29udmVydCB0aGUgc2FtcGxlIGJ1ZmZlciBpbnRvIGEgYnVm
ZmVyIHN1aXRhYmxlIGZvciBSVFAgcGFja2V0aXphdGlvbi4KKyAgLy8gVE9ETyh0a2NoaW4pOiBB
bGxvY2F0ZSBidWZmZXJzIHRocm91Z2ggYSBwb29sLgorICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpC
dWZmZXI+IGJ1ZmZlcihuZXcgcnRjOjpCdWZmZXIoKSk7CisgIFJUQ1J0cEZyYWdtZW50YXRpb25I
ZWFkZXIqIGhlYWRlcjsKKyAgeworICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlJUUEZyYWdt
ZW50YXRpb25IZWFkZXI+IGhlYWRlcl9jcHA7CisgICAgYm9vbCByZXN1bHQgPSBIMjY1Q01TYW1w
bGVCdWZmZXJUb0FubmV4QkJ1ZmZlcihzYW1wbGVCdWZmZXIsIGlzS2V5ZnJhbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuZ2V0KCks
ICZoZWFkZXJfY3BwKTsKKyAgICBoZWFkZXIgPSBbW1JUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIg
YWxsb2NdCisgICAgICAgIGluaXRXaXRoTmF0aXZlRnJhZ21lbnRhdGlvbkhlYWRlcjpoZWFkZXJf
Y3BwLmdldCgpXTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikg
PDwgIkZhaWxlZCB0byBjb252ZXJ0IHNhbXBsZSBidWZmZXIuIjsKKyAgICAgIHJldHVybjsKKyAg
ICB9CisgIH0KKworICBSVENFbmNvZGVkSW1hZ2UqIGZyYW1lID0gW1tSVENFbmNvZGVkSW1hZ2Ug
YWxsb2NdIGluaXRdOworICBmcmFtZS5idWZmZXIgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0Nv
cHk6YnVmZmVyLT5kYXRhKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGVuZ3RoOmJ1ZmZlci0+c2l6ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy
ZWVXaGVuRG9uZTpOT107CisgIGZyYW1lLmVuY29kZWRXaWR0aCA9IHdpZHRoOworICBmcmFtZS5l
bmNvZGVkSGVpZ2h0ID0gaGVpZ2h0OworICBmcmFtZS5jb21wbGV0ZUZyYW1lID0gWUVTOworICBm
cmFtZS5mcmFtZVR5cGUgPQorICAgICAgaXNLZXlmcmFtZSA/IFJUQ0ZyYW1lVHlwZVZpZGVvRnJh
bWVLZXkgOiBSVENGcmFtZVR5cGVWaWRlb0ZyYW1lRGVsdGE7CisgIGZyYW1lLmNhcHR1cmVUaW1l
TXMgPSByZW5kZXJUaW1lTXM7CisgIGZyYW1lLnRpbWVTdGFtcCA9IHRpbWVzdGFtcDsKKyAgZnJh
bWUucm90YXRpb24gPSByb3RhdGlvbjsKKyAgZnJhbWUuY29udGVudFR5cGUgPSAoX21vZGUgPT0g
UlRDVmlkZW9Db2RlY01vZGVTY3JlZW5zaGFyaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICA/IFJUQ1ZpZGVvQ29udGVudFR5cGVTY3JlZW5zaGFyZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICA6IFJUQ1ZpZGVvQ29udGVudFR5cGVVbnNwZWNpZmllZDsKKyAgZnJhbWUuZmxhZ3MgPSB3
ZWJydGM6OlZpZGVvU2VuZFRpbWluZzo6a0ludmFsaWQ7CisKKyAgLy8gVE9ETzogUVAgaXMgaWdu
b3JlZCBiZWNhdXNlIG9mIHRoZXJlIGlzIG5vIEguMjY1IGJpdHN0cmVhbSBwYXJzZXIuCisKKyAg
Qk9PTCByZXMgPSBfY2FsbGJhY2soZnJhbWUsIFtbUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IGFs
bG9jXSBpbml0XSwgaGVhZGVyKTsKKyAgaWYgKCFyZXMpIHsKKyAgICBSVENfTE9HKExTX0VSUk9S
KSA8PCAiRW5jb2RlIGNhbGxiYWNrIGZhaWxlZC4iOworICAgIHJldHVybjsKKyAgfQorICBfYml0
cmF0ZUFkanVzdGVyLT5VcGRhdGUoZnJhbWUuYnVmZmVyLmxlbmd0aCk7Cit9CisKKy0gKFJUQ1Zp
ZGVvRW5jb2RlclFwVGhyZXNob2xkcyopc2NhbGluZ1NldHRpbmdzIHsKKyAgcmV0dXJuIFtbUlRD
VmlkZW9FbmNvZGVyUXBUaHJlc2hvbGRzIGFsbG9jXQorICAgICAgaW5pdFdpdGhUaHJlc2hvbGRz
TG93OmtMb3doMjY1UXBUaHJlc2hvbGQKKyAgICAgICAgICAgICAgICAgICAgICAgaGlnaDprSGln
aGgyNjVRcFRocmVzaG9sZF07Cit9CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3
cml0ZXIuY2MKaW5kZXggZGMyNThkNjA2NGEwZmVlYTAwNmVlMjk4MmUwMDM3YjA1NWJiYTM3My4u
MmEwMDIzNDkwM2EzYjE1ZDg2MzhjOTc2YTA1NmRhN2JjZjdmNGVkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFs
dV9yZXdyaXRlci5jYwpAQCAtMjQ4LDYgKzI0OCwyMjkgQEAgYm9vbCBIMjY0QW5uZXhCQnVmZmVy
VG9DTVNhbXBsZUJ1ZmZlcihjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICByZXR1cm4g
dHJ1ZTsKIH0KIAorI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorYm9vbCBIMjY1Q01TYW1wbGVCdWZm
ZXJUb0FubmV4QkJ1ZmZlcigKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBodmNjX3NhbXBsZV9idWZm
ZXIsCisgICAgYm9vbCBpc19rZXlmcmFtZSwKKyAgICBydGM6OkJ1ZmZlciogYW5uZXhiX2J1ZmZl
ciwKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UlRQRnJhZ21lbnRhdGlvbkhlYWRlcj4gKm91dF9oZWFk
ZXIpIHsKKyAgUlRDX0RDSEVDSyhodmNjX3NhbXBsZV9idWZmZXIpOworICBSVENfRENIRUNLKG91
dF9oZWFkZXIpOworICBvdXRfaGVhZGVyLT5yZXNldChudWxscHRyKTsKKworICAvLyBHZXQgZm9y
bWF0IGRlc2NyaXB0aW9uIGZyb20gdGhlIHNhbXBsZSBidWZmZXIuCisgIENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBkZXNjcmlwdGlvbiA9CisgICAgICBDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKGh2Y2Nfc2FtcGxlX2J1ZmZlcik7CisgIGlmIChkZXNjcmlwdGlvbiA9PSBu
dWxscHRyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgc2FtcGxl
IGJ1ZmZlcidzIGRlc2NyaXB0aW9uLiI7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgLy8g
R2V0IHBhcmFtZXRlciBzZXQgaW5mb3JtYXRpb24uCisgIGludCBuYWx1X2hlYWRlcl9zaXplID0g
MDsKKyAgc2l6ZV90IHBhcmFtX3NldF9jb3VudCA9IDA7CisgIE9TU3RhdHVzIHN0YXR1cyA9IENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldEhFVkNQYXJhbWV0ZXJTZXRBdEluZGV4KAorICAgICAg
ZGVzY3JpcHRpb24sIDAsIG51bGxwdHIsIG51bGxwdHIsICZwYXJhbV9zZXRfY291bnQsICZuYWx1
X2hlYWRlcl9zaXplKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNf
RVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IHBhcmFtZXRlciBzZXQuIjsKKyAgICByZXR1cm4gZmFs
c2U7CisgIH0KKyAgUlRDX0NIRUNLX0VRKG5hbHVfaGVhZGVyX3NpemUsIGtBdmNjSGVhZGVyQnl0
ZVNpemUpOworICBSVENfRENIRUNLX0VRKHBhcmFtX3NldF9jb3VudCwgMyk7CisKKyAgLy8gVHJ1
bmNhdGUgYW55IHByZXZpb3VzIGRhdGEgaW4gdGhlIGJ1ZmZlciB3aXRob3V0IGNoYW5naW5nIGl0
cyBjYXBhY2l0eS4KKyAgYW5uZXhiX2J1ZmZlci0+U2V0U2l6ZSgwKTsKKworICBzaXplX3QgbmFs
dV9vZmZzZXQgPSAwOworICBzdGQ6OnZlY3RvcjxzaXplX3Q+IGZyYWdfb2Zmc2V0czsKKyAgc3Rk
Ojp2ZWN0b3I8c2l6ZV90PiBmcmFnX2xlbmd0aHM7CisKKyAgLy8gUGxhY2UgYWxsIHBhcmFtZXRl
ciBzZXRzIGF0IHRoZSBmcm9udCBvZiBidWZmZXIuCisgIGlmIChpc19rZXlmcmFtZSkgeworICAg
IHNpemVfdCBwYXJhbV9zZXRfc2l6ZSA9IDA7CisgICAgY29uc3QgdWludDhfdCogcGFyYW1fc2V0
ID0gbnVsbHB0cjsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtX3NldF9jb3VudDsg
KytpKSB7CisgICAgICBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRIRVZDUGFy
YW1ldGVyU2V0QXRJbmRleCgKKyAgICAgICAgICBkZXNjcmlwdGlvbiwgaSwgJnBhcmFtX3NldCwg
JnBhcmFtX3NldF9zaXplLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgIGlmIChzdGF0dXMgIT0g
bm9FcnIpIHsKKyAgICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgcGFy
YW1ldGVyIHNldC4iOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICAvLyBV
cGRhdGUgYnVmZmVyLgorICAgICAgYW5uZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShrQW5uZXhCSGVh
ZGVyQnl0ZXMsIHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpKTsKKyAgICAgIGFubmV4Yl9idWZm
ZXItPkFwcGVuZERhdGEocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4ocGFyYW1fc2V0KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1fc2V0X3NpemUpOworICAgICAg
Ly8gVXBkYXRlIGZyYWdtZW50YXRpb24uCisgICAgICBmcmFnX29mZnNldHMucHVzaF9iYWNrKG5h
bHVfb2Zmc2V0ICsgc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykpOworICAgICAgZnJhZ19sZW5n
dGhzLnB1c2hfYmFjayhwYXJhbV9zZXRfc2l6ZSk7CisgICAgICBuYWx1X29mZnNldCArPSBzaXpl
b2Yoa0FubmV4QkhlYWRlckJ5dGVzKSArIHBhcmFtX3NldF9zaXplOworICAgIH0KKyAgfQorCisg
IC8vIEdldCBibG9jayBidWZmZXIgZnJvbSB0aGUgc2FtcGxlIGJ1ZmZlci4KKyAgQ01CbG9ja0J1
ZmZlclJlZiBibG9ja19idWZmZXIgPQorICAgICAgQ01TYW1wbGVCdWZmZXJHZXREYXRhQnVmZmVy
KGh2Y2Nfc2FtcGxlX2J1ZmZlcik7CisgIGlmIChibG9ja19idWZmZXIgPT0gbnVsbHB0cikgewor
ICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IHNhbXBsZSBidWZmZXIncyBi
bG9jayBidWZmZXIuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQ01CbG9ja0J1ZmZlclJl
ZiBjb250aWd1b3VzX2J1ZmZlciA9IG51bGxwdHI7CisgIC8vIE1ha2Ugc3VyZSBibG9jayBidWZm
ZXIgaXMgY29udGlndW91cy4KKyAgaWYgKCFDTUJsb2NrQnVmZmVySXNSYW5nZUNvbnRpZ3VvdXMo
YmxvY2tfYnVmZmVyLCAwLCAwKSkgeworICAgIHN0YXR1cyA9IENNQmxvY2tCdWZmZXJDcmVhdGVD
b250aWd1b3VzKAorICAgICAgICBudWxscHRyLCBibG9ja19idWZmZXIsIG51bGxwdHIsIG51bGxw
dHIsIDAsIDAsIDAsICZjb250aWd1b3VzX2J1ZmZlcik7CisgICAgaWYgKHN0YXR1cyAhPSBub0Vy
cikgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBmbGF0dGVuIG5vbi1j
b250aWd1b3VzIGJsb2NrIGJ1ZmZlcjogIgorICAgICAgICAgICAgICAgICAgICAgICAgPDwgc3Rh
dHVzOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICBjb250aWd1
b3VzX2J1ZmZlciA9IGJsb2NrX2J1ZmZlcjsKKyAgICAvLyBSZXRhaW4gdG8gbWFrZSBjbGVhbnVw
IGVhc2llci4KKyAgICBDRlJldGFpbihjb250aWd1b3VzX2J1ZmZlcik7CisgICAgYmxvY2tfYnVm
ZmVyID0gbnVsbHB0cjsKKyAgfQorCisgIC8vIE5vdyBjb3B5IHRoZSBhY3R1YWwgZGF0YS4KKyAg
Y2hhciogZGF0YV9wdHIgPSBudWxscHRyOworICBzaXplX3QgYmxvY2tfYnVmZmVyX3NpemUgPSBD
TUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aChjb250aWd1b3VzX2J1ZmZlcik7CisgIHN0YXR1cyA9
IENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlcihjb250aWd1b3VzX2J1ZmZlciwgMCwgbnVsbHB0
ciwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRh
X3B0cik7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8
PCAiRmFpbGVkIHRvIGdldCBibG9jayBidWZmZXIgZGF0YS4iOworICAgIENGUmVsZWFzZShjb250
aWd1b3VzX2J1ZmZlcik7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIHNpemVfdCBieXRlc19y
ZW1haW5pbmcgPSBibG9ja19idWZmZXJfc2l6ZTsKKyAgd2hpbGUgKGJ5dGVzX3JlbWFpbmluZyA+
IDApIHsKKyAgICAvLyBUaGUgc2l6ZSB0eXBlIGhlcmUgbXVzdCBtYXRjaCB8bmFsdV9oZWFkZXJf
c2l6ZXwsIHdlIGV4cGVjdCA0IGJ5dGVzLgorICAgIC8vIFJlYWQgdGhlIGxlbmd0aCBvZiB0aGUg
bmV4dCBwYWNrZXQgb2YgZGF0YS4gTXVzdCBjb252ZXJ0IGZyb20gYmlnIGVuZGlhbgorICAgIC8v
IHRvIGhvc3QgZW5kaWFuLgorICAgIFJUQ19EQ0hFQ0tfR0UoYnl0ZXNfcmVtYWluaW5nLCAoc2l6
ZV90KW5hbHVfaGVhZGVyX3NpemUpOworICAgIHVpbnQzMl90KiB1aW50MzJfZGF0YV9wdHIgPSBy
ZWludGVycHJldF9jYXN0PHVpbnQzMl90Kj4oZGF0YV9wdHIpOworICAgIHVpbnQzMl90IHBhY2tl
dF9zaXplID0gQ0ZTd2FwSW50MzJCaWdUb0hvc3QoKnVpbnQzMl9kYXRhX3B0cik7CisgICAgLy8g
VXBkYXRlIGJ1ZmZlci4KKyAgICBhbm5leGJfYnVmZmVyLT5BcHBlbmREYXRhKGtBbm5leEJIZWFk
ZXJCeXRlcywgc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykpOworICAgIGFubmV4Yl9idWZmZXIt
PkFwcGVuZERhdGEoZGF0YV9wdHIgKyBuYWx1X2hlYWRlcl9zaXplLCBwYWNrZXRfc2l6ZSk7Cisg
ICAgLy8gVXBkYXRlIGZyYWdtZW50YXRpb24uCisgICAgZnJhZ19vZmZzZXRzLnB1c2hfYmFjayhu
YWx1X29mZnNldCArIHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpKTsKKyAgICBmcmFnX2xlbmd0
aHMucHVzaF9iYWNrKHBhY2tldF9zaXplKTsKKyAgICBuYWx1X29mZnNldCArPSBzaXplb2Yoa0Fu
bmV4QkhlYWRlckJ5dGVzKSArIHBhY2tldF9zaXplOworCisgICAgc2l6ZV90IGJ5dGVzX3dyaXR0
ZW4gPSBwYWNrZXRfc2l6ZSArIHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpOworICAgIGJ5dGVz
X3JlbWFpbmluZyAtPSBieXRlc193cml0dGVuOworICAgIGRhdGFfcHRyICs9IGJ5dGVzX3dyaXR0
ZW47CisgIH0KKyAgUlRDX0RDSEVDS19FUShieXRlc19yZW1haW5pbmcsIChzaXplX3QpMCk7CisK
KyAgc3RkOjp1bmlxdWVfcHRyPFJUUEZyYWdtZW50YXRpb25IZWFkZXI+IGhlYWRlcihuZXcgUlRQ
RnJhZ21lbnRhdGlvbkhlYWRlcigpKTsKKyAgaGVhZGVyLT5WZXJpZnlBbmRBbGxvY2F0ZUZyYWdt
ZW50YXRpb25IZWFkZXIoZnJhZ19vZmZzZXRzLnNpemUoKSk7CisgIFJUQ19EQ0hFQ0tfRVEoZnJh
Z19sZW5ndGhzLnNpemUoKSwgZnJhZ19vZmZzZXRzLnNpemUoKSk7CisgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgZnJhZ19vZmZzZXRzLnNpemUoKTsgKytpKSB7CisgICAgaGVhZGVyLT5mcmFnbWVu
dGF0aW9uT2Zmc2V0W2ldID0gZnJhZ19vZmZzZXRzW2ldOworICAgIGhlYWRlci0+ZnJhZ21lbnRh
dGlvbkxlbmd0aFtpXSA9IGZyYWdfbGVuZ3Roc1tpXTsKKyAgfQorICAqb3V0X2hlYWRlciA9IHN0
ZDo6bW92ZShoZWFkZXIpOworICBDRlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOworICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBIMjY1QW5uZXhCQnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcihjb25z
dCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgYW5uZXhiX2J1ZmZlcl9zaXplLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgdmlkZW9fZm9ybWF0
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlclJl
Ziogb3V0X3NhbXBsZV9idWZmZXIpIHsKKyAgUlRDX0RDSEVDSyhhbm5leGJfYnVmZmVyKTsKKyAg
UlRDX0RDSEVDSyhvdXRfc2FtcGxlX2J1ZmZlcik7CisgIFJUQ19EQ0hFQ0sodmlkZW9fZm9ybWF0
KTsKKyAgKm91dF9zYW1wbGVfYnVmZmVyID0gbnVsbHB0cjsKKworICBBbm5leEJCdWZmZXJSZWFk
ZXIgcmVhZGVyKGFubmV4Yl9idWZmZXIsIGFubmV4Yl9idWZmZXJfc2l6ZSk7CisgIGlmIChyZWFk
ZXIuU2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NTo6a1ZwcykpIHsKKyAgICAvLyBCdWZmZXIgY29u
dGFpbnMgYW4gU1BTIE5BTFUgLSBza2lwIGl0IGFuZCB0aGUgZm9sbG93aW5nIFBQUworICAgIGNv
bnN0IHVpbnQ4X3QqIGRhdGE7CisgICAgc2l6ZV90IGRhdGFfbGVuOworICAgIGlmICghcmVhZGVy
LlJlYWROYWx1KCZkYXRhLCAmZGF0YV9sZW4pKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8
PCAiRmFpbGVkIHRvIHJlYWQgVlBTIjsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAg
aWYgKCFyZWFkZXIuUmVhZE5hbHUoJmRhdGEsICZkYXRhX2xlbikpIHsKKyAgICAgIFJUQ19MT0co
TFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBTUFMiOworICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmZGF0YSwgJmRhdGFfbGVuKSkgeworICAg
ICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byByZWFkIFBQUyI7CisgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICB9IGVsc2UgeworICAgIC8vIE5vIFNQUyBOQUxVIC0gc3RhcnQg
cmVhZGluZyBmcm9tIHRoZSBmaXJzdCBOQUxVIGluIHRoZSBidWZmZXIKKyAgICByZWFkZXIuU2Vl
a1RvU3RhcnQoKTsKKyAgfQorCisgIC8vIEFsbG9jYXRlIG1lbW9yeSBhcyBhIGJsb2NrIGJ1ZmZl
ci4KKyAgLy8gVE9ETyh0a2NoaW4pOiBmaWd1cmUgb3V0IGhvdyB0byB1c2UgYSBwb29sLgorICBD
TUJsb2NrQnVmZmVyUmVmIGJsb2NrX2J1ZmZlciA9IG51bGxwdHI7CisgIE9TU3RhdHVzIHN0YXR1
cyA9IENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2soCisgICAgICBudWxscHRyLCBu
dWxscHRyLCByZWFkZXIuQnl0ZXNSZW1haW5pbmcoKSwgbnVsbHB0ciwgbnVsbHB0ciwgMCwKKyAg
ICAgIHJlYWRlci5CeXRlc1JlbWFpbmluZygpLCBrQ01CbG9ja0J1ZmZlckFzc3VyZU1lbW9yeU5v
d0ZsYWcsCisgICAgICAmYmxvY2tfYnVmZmVyKTsKKyAgaWYgKHN0YXR1cyAhPSBrQ01CbG9ja0J1
ZmZlck5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUg
YmxvY2sgYnVmZmVyLiI7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgLy8gTWFrZSBzdXJl
IGJsb2NrIGJ1ZmZlciBpcyBjb250aWd1b3VzLgorICBDTUJsb2NrQnVmZmVyUmVmIGNvbnRpZ3Vv
dXNfYnVmZmVyID0gbnVsbHB0cjsKKyAgaWYgKCFDTUJsb2NrQnVmZmVySXNSYW5nZUNvbnRpZ3Vv
dXMoYmxvY2tfYnVmZmVyLCAwLCAwKSkgeworICAgIHN0YXR1cyA9IENNQmxvY2tCdWZmZXJDcmVh
dGVDb250aWd1b3VzKAorICAgICAgICBudWxscHRyLCBibG9ja19idWZmZXIsIG51bGxwdHIsIG51
bGxwdHIsIDAsIDAsIDAsICZjb250aWd1b3VzX2J1ZmZlcik7CisgICAgaWYgKHN0YXR1cyAhPSBu
b0VycikgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBmbGF0dGVuIG5v
bi1jb250aWd1b3VzIGJsb2NrIGJ1ZmZlcjogIgorICAgICAgICAgICAgICAgICAgICAgICAgPDwg
c3RhdHVzOworICAgICAgQ0ZSZWxlYXNlKGJsb2NrX2J1ZmZlcik7CisgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICB9IGVsc2UgeworICAgIGNvbnRpZ3VvdXNfYnVmZmVyID0gYmxvY2tfYnVm
ZmVyOworICAgIGJsb2NrX2J1ZmZlciA9IG51bGxwdHI7CisgIH0KKworICAvLyBHZXQgYSByYXcg
cG9pbnRlciBpbnRvIGFsbG9jYXRlZCBtZW1vcnkuCisgIHNpemVfdCBibG9ja19idWZmZXJfc2l6
ZSA9IDA7CisgIGNoYXIqIGRhdGFfcHRyID0gbnVsbHB0cjsKKyAgc3RhdHVzID0gQ01CbG9ja0J1
ZmZlckdldERhdGFQb2ludGVyKGNvbnRpZ3VvdXNfYnVmZmVyLCAwLCBudWxscHRyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJsb2NrX2J1ZmZlcl9zaXplLCAmZGF0
YV9wdHIpOworICBpZiAoc3RhdHVzICE9IGtDTUJsb2NrQnVmZmVyTm9FcnIpIHsKKyAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBibG9jayBidWZmZXIgZGF0YSBwb2ludGVy
LiI7CisgICAgQ0ZSZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICByZXR1cm4gZmFsc2U7
CisgIH0KKyAgUlRDX0RDSEVDSyhibG9ja19idWZmZXJfc2l6ZSA9PSByZWFkZXIuQnl0ZXNSZW1h
aW5pbmcoKSk7CisKKyAgLy8gV3JpdGUgQXZjYyBOQUxVcyBpbnRvIGJsb2NrIGJ1ZmZlciBtZW1v
cnkuCisgIEF2Y2NCdWZmZXJXcml0ZXIgd3JpdGVyKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+
KGRhdGFfcHRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfYnVmZmVyX3NpemUp
OworICB3aGlsZSAocmVhZGVyLkJ5dGVzUmVtYWluaW5nKCkgPiAwKSB7CisgICAgY29uc3QgdWlu
dDhfdCogbmFsdV9kYXRhX3B0ciA9IG51bGxwdHI7CisgICAgc2l6ZV90IG5hbHVfZGF0YV9zaXpl
ID0gMDsKKyAgICBpZiAocmVhZGVyLlJlYWROYWx1KCZuYWx1X2RhdGFfcHRyLCAmbmFsdV9kYXRh
X3NpemUpKSB7CisgICAgICB3cml0ZXIuV3JpdGVOYWx1KG5hbHVfZGF0YV9wdHIsIG5hbHVfZGF0
YV9zaXplKTsKKyAgICB9CisgIH0KKworICAvLyBDcmVhdGUgc2FtcGxlIGJ1ZmZlci4KKyAgc3Rh
dHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGUobnVsbHB0ciwgY29udGlndW91c19idWZmZXIsIHRy
dWUsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIsIHZp
ZGVvX2Zvcm1hdCwgMSwgMCwgbnVsbHB0ciwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbnVsbHB0ciwgb3V0X3NhbXBsZV9idWZmZXIpOworICBpZiAoc3RhdHVzICE9IG5vRXJy
KSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUgc2FtcGxlIGJ1
ZmZlci4iOworICAgIENGUmVsZWFzZShjb250aWd1b3VzX2J1ZmZlcik7CisgICAgcmV0dXJuIGZh
bHNlOworICB9CisgIENGUmVsZWFzZShjb250aWd1b3VzX2J1ZmZlcik7CisgIHJldHVybiB0cnVl
OworfQorI2VuZGlmCisKIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBDcmVhdGVWaWRlb0Zv
cm1hdERlc2NyaXB0aW9uKAogICAgIGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCiAgICAg
c2l6ZV90IGFubmV4Yl9idWZmZXJfc2l6ZSkgewpAQCAtMjc4LDYgKzUwMSw0MyBAQCBDTVZpZGVv
Rm9ybWF0RGVzY3JpcHRpb25SZWYgQ3JlYXRlVmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKICAgcmV0
dXJuIGRlc2NyaXB0aW9uOwogfQogCisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CitDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWYgQ3JlYXRlSDI2NVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCisgICAg
Y29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKKyAgICBzaXplX3QgYW5uZXhiX2J1ZmZlcl9z
aXplKSB7CisgIGNvbnN0IHVpbnQ4X3QqIHBhcmFtX3NldF9wdHJzWzNdID0ge307CisgIHNpemVf
dCBwYXJhbV9zZXRfc2l6ZXNbM10gPSB7fTsKKyAgQW5uZXhCQnVmZmVyUmVhZGVyIHJlYWRlcihh
bm5leGJfYnVmZmVyLCBhbm5leGJfYnVmZmVyX3NpemUpOworICAvLyBTa2lwIGV2ZXJ5dGluZyBi
ZWZvcmUgdGhlIFZQUywgdGhlbiByZWFkIHRoZSBWUFMsIFNQUyBhbmQgUFBTCisgIGlmICghcmVh
ZGVyLlNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjU6OmtWcHMpKSB7CisgICAgcmV0dXJuIG51bGxw
dHI7CisgIH0KKyAgaWYgKCFyZWFkZXIuUmVhZE5hbHUoJnBhcmFtX3NldF9wdHJzWzBdLCAmcGFy
YW1fc2V0X3NpemVzWzBdKSkgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8g
cmVhZCBWUFMiOworICAgIHJldHVybiBudWxscHRyOworICB9CisgIGlmICghcmVhZGVyLlJlYWRO
YWx1KCZwYXJhbV9zZXRfcHRyc1sxXSwgJnBhcmFtX3NldF9zaXplc1sxXSkpIHsKKyAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgU1BTIjsKKyAgICByZXR1cm4gbnVsbHB0
cjsKKyAgfQorICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmcGFyYW1fc2V0X3B0cnNbMl0sICZwYXJh
bV9zZXRfc2l6ZXNbMl0pKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBy
ZWFkIFBQUyI7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKworICAvLyBQYXJzZSB0aGUgU1BT
IGFuZCBQUFMgaW50byBhIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbi4KKyAgQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uUmVmIGRlc2NyaXB0aW9uID0gbnVsbHB0cjsKKyAgT1NTdGF0dXMgc3RhdHVz
ID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRnJvbUhFVkNQYXJhbWV0ZXJTZXRzKAor
ICAgICAga0NGQWxsb2NhdG9yRGVmYXVsdCwgMywgcGFyYW1fc2V0X3B0cnMsIHBhcmFtX3NldF9z
aXplcywgNCwgbnVsbHB0ciwKKyAgICAgICZkZXNjcmlwdGlvbik7CisgIGlmIChzdGF0dXMgIT0g
bm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSB2aWRl
byBmb3JtYXQgZGVzY3JpcHRpb24uIjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICByZXR1
cm4gZGVzY3JpcHRpb247Cit9CisjZW5kaWYKKwogQW5uZXhCQnVmZmVyUmVhZGVyOjpBbm5leEJC
dWZmZXJSZWFkZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgpCiAgICAgOiBzdGFydF8oYW5u
ZXhiX2J1ZmZlciksIGxlbmd0aF8obGVuZ3RoKSB7CkBAIC0zMjQsNiArNTg0LDE5IEBAIGJvb2wg
QW5uZXhCQnVmZmVyUmVhZGVyOjpTZWVrVG9OZXh0TmFsdU9mVHlwZShOYWx1VHlwZSB0eXBlKSB7
CiAgIH0KICAgcmV0dXJuIGZhbHNlOwogfQorCisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1Citib29s
IEFubmV4QkJ1ZmZlclJlYWRlcjo6U2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NTo6TmFsdVR5cGUg
dHlwZSkgeworICBmb3IgKDsgb2Zmc2V0XyAhPSBvZmZzZXRzXy5lbmQoKTsgKytvZmZzZXRfKSB7
CisgICAgaWYgKG9mZnNldF8tPnBheWxvYWRfc2l6ZSA8IDEpCisgICAgICBjb250aW51ZTsKKyAg
ICBpZiAoSDI2NTo6UGFyc2VOYWx1VHlwZSgqKHN0YXJ0XyArIG9mZnNldF8tPnBheWxvYWRfc3Rh
cnRfb2Zmc2V0KSkgPT0gdHlwZSkKKyAgICAgIHJldHVybiB0cnVlOworICB9CisgIHJldHVybiBm
YWxzZTsKK30KKyNlbmRpZgorCiBBdmNjQnVmZmVyV3JpdGVyOjpBdmNjQnVmZmVyV3JpdGVyKHVp
bnQ4X3QqIGNvbnN0IGF2Y2NfYnVmZmVyLCBzaXplX3QgbGVuZ3RoKQogICAgIDogc3RhcnRfKGF2
Y2NfYnVmZmVyKSwgb2Zmc2V0XygwKSwgbGVuZ3RoXyhsZW5ndGgpIHsKICAgUlRDX0RDSEVDSyhh
dmNjX2J1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oCmluZGV4IGEwYzFhYTkwYWY1NzU5
ZGUzOWI1ZDA2YzIyMWQyODQyOTQzODk4NzYuLjZjZWZlZmM2MzdmYmZkMjlmZGI2MWZlNjhlNmRh
YjQ3MmEzMGI5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oCkBAIC0xOCw2ICsxOCw5IEBA
CiAjaW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjQvaDI2NF9j
b21tb24uaCIKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKKyNpbmNsdWRlICJjb21tb25fdmlkZW8v
aDI2NS9oMjY1X2NvbW1vbi5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy9pbmNsdWRlL21v
ZHVsZV9jb21tb25fdHlwZXMuaCIKICNpbmNsdWRlICJydGNfYmFzZS9idWZmZXIuaCIKIApAQCAt
NDcsNiArNTAsMzEgQEAgYm9vbCBIMjY0QW5uZXhCQnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcihjb25z
dCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiogb3V0X3NhbXBsZV9idWZmZXIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNTWVtb3J5UG9vbFJlZiBtZW1vcnlfcG9vbCk7
CiAKKyNpZmRlZiBSVENfRU5BQkxFX0gyNjUKKy8vIENvbnZlcnRzIGEgc2FtcGxlIGJ1ZmZlciBl
bWl0dGVkIGZyb20gdGhlIFZpZGVvVG9vbGJveCBlbmNvZGVyIGludG8gYSBidWZmZXIKKy8vIHN1
aXRhYmxlIGZvciBSVFAuIFRoZSBzYW1wbGUgYnVmZmVyIGlzIGluIGh2Y2MgZm9ybWF0IHdoZXJl
YXMgdGhlIHJ0cCBidWZmZXIKKy8vIG5lZWRzIHRvIGJlIGluIEFubmV4IEIgZm9ybWF0LiBEYXRh
IGlzIHdyaXR0ZW4gZGlyZWN0bHkgdG8gfGFubmV4Yl9idWZmZXJ8CisvLyBhbmQgYSBuZXcgUlRQ
RnJhZ21lbnRhdGlvbkhlYWRlciBpcyByZXR1cm5lZCBpbiB8b3V0X2hlYWRlcnwuCitib29sIEgy
NjVDTVNhbXBsZUJ1ZmZlclRvQW5uZXhCQnVmZmVyKAorICAgIENNU2FtcGxlQnVmZmVyUmVmIGh2
Y2Nfc2FtcGxlX2J1ZmZlciwKKyAgICBib29sIGlzX2tleWZyYW1lLAorICAgIHJ0Yzo6QnVmZmVy
KiBhbm5leGJfYnVmZmVyLAorICAgIHN0ZDo6dW5pcXVlX3B0cjxSVFBGcmFnbWVudGF0aW9uSGVh
ZGVyPiAqb3V0X2hlYWRlcikKKyAgICBfX09TWF9BVkFJTEFCTEVfU1RBUlRJTkcoX19NQUNfMTBf
MTIsIF9fSVBIT05FXzExXzApOworCisgLy8gQ29udmVydHMgYSBidWZmZXIgcmVjZWl2ZWQgZnJv
bSBSVFAgaW50byBhIHNhbXBsZSBidWZmZXIgc3VpdGFibGUgZm9yIHRoZQorLy8gVmlkZW9Ub29s
Ym94IGRlY29kZXIuIFRoZSBSVFAgYnVmZmVyIGlzIGluIGFubmV4IGIgZm9ybWF0IHdoZXJlYXMg
dGhlIHNhbXBsZQorLy8gYnVmZmVyIGlzIGluIGh2Y2MgZm9ybWF0LgorLy8gSWYgfGlzX2tleWZy
YW1lfCBpcyB0cnVlIHRoZW4gfHZpZGVvX2Zvcm1hdHwgaXMgaWdub3JlZCBzaW5jZSB0aGUgZm9y
bWF0IHdpbGwKKy8vIGJlIHJlYWQgZnJvbSB0aGUgYnVmZmVyLiBPdGhlcndpc2UgfHZpZGVvX2Zv
cm1hdHwgbXVzdCBiZSBwcm92aWRlZC4KKy8vIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcmVs
ZWFzaW5nIHRoZSBjcmVhdGVkIHNhbXBsZSBidWZmZXIuCitib29sIEgyNjVBbm5leEJCdWZmZXJU
b0NNU2FtcGxlQnVmZmVyKGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvblJlZiB2aWRlb19mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENNU2FtcGxlQnVmZmVyUmVmKiBvdXRfc2FtcGxlX2J1ZmZlcikKKyAgICBfX09TWF9BVkFJ
TEFCTEVfU1RBUlRJTkcoX19NQUNfMTBfMTIsIF9fSVBIT05FXzExXzApOworI2VuZGlmCisKIC8v
IFJldHVybnMgYSB2aWRlbyBmb3JtYXQgZGVzY3JpcHRpb24gY3JlYXRlZCBmcm9tIHRoZSBzcHMv
cHBzIGluZm9ybWF0aW9uIGluCiAvLyB0aGUgQW5uZXggQiBidWZmZXIuIElmIHRoZXJlIGlzIG5v
IHN1Y2ggaW5mb3JtYXRpb24sIG51bGxwdHIgaXMgcmV0dXJuZWQuCiAvLyBUaGUgY2FsbGVyIGlz
IHJlc3BvbnNpYmxlIGZvciByZWxlYXNpbmcgdGhlIGRlc2NyaXB0aW9uLgpAQCAtNTQsNiArODIs
MTMgQEAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIENyZWF0ZVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb24oCiAgICAgY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICBzaXplX3QgYW5u
ZXhiX2J1ZmZlcl9zaXplKTsKIAorI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uUmVmIENyZWF0ZUgyNjVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKAorICAgIGNv
bnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCisgICAgc2l6ZV90IGFubmV4Yl9idWZmZXJfc2l6
ZSkKKyAgICBfX09TWF9BVkFJTEFCTEVfU1RBUlRJTkcoX19NQUNfMTBfMTIsIF9fSVBIT05FXzEx
XzApOworI2VuZGlmCisKIC8vIEhlbHBlciBjbGFzcyBmb3IgcmVhZGluZyBOQUxVcyBmcm9tIGFu
IFJUUCBBbm5leCBCIGJ1ZmZlci4KIGNsYXNzIEFubmV4QkJ1ZmZlclJlYWRlciBmaW5hbCB7CiAg
cHVibGljOgpAQCAtNzgsNiArMTEzLDkgQEAgY2xhc3MgQW5uZXhCQnVmZmVyUmVhZGVyIGZpbmFs
IHsKICAgLy8gUmV0dXJuIHRydWUgaWYgYSBOQUxVIG9mIHRoZSBkZXNpcmVkIHR5cGUgaXMgZm91
bmQsIGZhbHNlIGlmIHdlCiAgIC8vIHJlYWNoZWQgdGhlIGVuZCBpbnN0ZWFkCiAgIGJvb2wgU2Vl
a1RvTmV4dE5hbHVPZlR5cGUoSDI2NDo6TmFsdVR5cGUgdHlwZSk7CisjaWZkZWYgUlRDX0VOQUJM
RV9IMjY1CisgIGJvb2wgU2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NTo6TmFsdVR5cGUgdHlwZSk7
CisjZW5kaWYKIAogIHByaXZhdGU6CiAgIC8vIFJldHVybnMgdGhlIHRoZSBuZXh0IG9mZnNldCB0
aGF0IGNvbnRhaW5zIE5BTFUgZGF0YS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNv
ZGVyX2ZhY3RvcnkubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCmluZGV4
IGQxZDhjYTIzZDVjM2UzYzA5Yjk4OGE1NGNhZmRiMTYwM2JiNjE0YWIuLmMzMWEyNWFiZTYxMWZl
YjFjYWEzNGFhMTU5YjViOGU0Y2IyZTRmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19k
ZWNvZGVyX2ZhY3RvcnkubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5t
bQpAQCAtOTgsNyArOTgsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gT2JqQ1Zp
ZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2RlcigKICAgICBpZiAoW2NvZGVjTmFt
ZSBpc0VxdWFsVG9TdHJpbmc6Y29kZWNJbmZvLm5hbWVdKSB7CiAgICAgICBpZDxSVENWaWRlb0Rl
Y29kZXI+IGRlY29kZXIgPSBbZGVjb2Rlcl9mYWN0b3J5XyBjcmVhdGVEZWNvZGVyOmNvZGVjSW5m
b107CiAKLSAgICAgIGlmIChbZGVjb2RlciBpc0tpbmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZl
VmlkZW9EZWNvZGVyIGNsYXNzXV0pIHsKKyAgICAgIC8vIEJlY2F1c2Ugb2Ygc3ltYm9sIGNvbmZs
aWN0LCBpc0tpbmRPZkNsYXNzIGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZC4KKyAgICAgIC8vIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzgyLgorICAgICAg
Ly8gaWYgKFtkZWNvZGVyIGlzS2luZE9mQ2xhc3M6W1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29k
ZXIgY2xhc3NdXSkgeworICAgICAgaWYgKFtjb2RlY05hbWUgaXNFcXVhbDpAIlZQOCJdIHx8IFtj
b2RlY05hbWUgaXNFcXVhbDpAIlZQOSJdKSB7CiAgICAgICAgIHJldHVybiBbKFJUQ1dyYXBwZWRO
YXRpdmVWaWRlb0RlY29kZXIgKilkZWNvZGVyIHJlbGVhc2VXcmFwcGVkRGVjb2Rlcl07CiAgICAg
ICB9IGVsc2UgewogICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPE9iakNWaWRlb0RlY29k
ZXI+KG5ldyBPYmpDVmlkZW9EZWNvZGVyKGRlY29kZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2Jq
Y192aWRlb19lbmNvZGVyX2ZhY3RvcnkubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0
b3J5Lm1tCmluZGV4IGE3NTUzMDdjNmI3Y2YyNTQ4N2Y2MjljYjAyNDY5ZDdiOTRiNDRhNzYuLmMz
MjhmZWIxZjdjNjAyNWQ2NjZkMDVjZmQ5ZWI0NjNmYTM2MDI3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMv
b2JqY192aWRlb19lbmNvZGVyX2ZhY3RvcnkubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2VuY29k
ZXJfZmFjdG9yeS5tbQpAQCAtMTUsNiArMTUsOSBAQAogI2ltcG9ydCAiYmFzZS9SVENWaWRlb0Vu
Y29kZXIuaCIKICNpbXBvcnQgImJhc2UvUlRDVmlkZW9FbmNvZGVyRmFjdG9yeS5oIgogI2ltcG9y
dCAiY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjQrUHJpdmF0
ZS5oIgorI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorI2ltcG9ydCAiY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oIgorI2VuZGlmCiAjaW1wb3J0
ICJzZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDRW5jb2RlZEltYWdlK1ByaXZhdGUuaCIK
ICNpbXBvcnQgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENSdHBGcmFnbWVudGF0aW9u
SGVhZGVyK1ByaXZhdGUuaCIKICNpbXBvcnQgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9S
VENWaWRlb0NvZGVjSW5mbytQcml2YXRlLmgiCkBAIC02NSw4ICs2OCwxNiBAQCBjbGFzcyBPYmpD
VmlkZW9FbmNvZGVyIDogcHVibGljIFZpZGVvRW5jb2RlciB7CiAKICAgICAgIC8vIEhhbmRsZSB0
eXBlcyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgaW50byBvbmUgb2YgQ29kZWNTcGVjaWZpY0luZm8n
cyBoYXJkIGNvZGVkIGNhc2VzLgogICAgICAgQ29kZWNTcGVjaWZpY0luZm8gY29kZWNTcGVjaWZp
Y0luZm87Ci0gICAgICBpZiAoW2luZm8gaXNLaW5kT2ZDbGFzczpbUlRDQ29kZWNTcGVjaWZpY0lu
Zm9IMjY0IGNsYXNzXV0pIHsKKyAgICAgIC8vIEJlY2F1c2Ugb2Ygc3ltYm9sIGNvbmZsaWN0LCBp
c0tpbmRPZkNsYXNzIGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZC4KKyAgICAgIC8vIFNlZSBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzgyLgorICAgICAgaWYgKFtO
U1N0cmluZ0Zyb21DbGFzcyhbaW5mbyBjbGFzc10pIGlzRXF1YWw6QCJXS19SVENDb2RlY1NwZWNp
ZmljSW5mb0gyNjQiXSkgeworICAgICAgICAvLyBpZiAoW2luZm8gaXNLaW5kT2ZDbGFzczpbUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY0IGNsYXNzXV0pIHsKICAgICAgICAgY29kZWNTcGVjaWZpY0lu
Zm8gPSBbKFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCAqKWluZm8gbmF0aXZlQ29kZWNTcGVjaWZp
Y0luZm9dOworI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorICAgICAgfSBlbHNlIGlmIChbTlNTdHJp
bmdGcm9tQ2xhc3MoW2luZm8gY2xhc3NdKSBpc0VxdWFsOkAiV0tfUlRDQ29kZWNTcGVjaWZpY0lu
Zm9IMjY1Il0pIHsKKyAgICAgICAgLy8gaWYgKFtpbmZvIGlzS2luZE9mQ2xhc3M6W1JUQ0NvZGVj
U3BlY2lmaWNJbmZvSDI2NSBjbGFzc11dKSB7CisgICAgICAgIGNvZGVjU3BlY2lmaWNJbmZvID0g
WyhSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUgKilpbmZvIG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZv
XTsKKyNlbmRpZgogICAgICAgfQogCiAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UlRQRnJhZ21lbnRh
dGlvbkhlYWRlcj4gZnJhZ21lbnRhdGlvbkhlYWRlciA9CkBAIC0xNjcsNyArMTc4LDEwIEBAIHN0
ZDo6dW5pcXVlX3B0cjxWaWRlb0VuY29kZXI+IE9iakNWaWRlb0VuY29kZXJGYWN0b3J5OjpDcmVh
dGVWaWRlb0VuY29kZXIoCiAgICAgY29uc3QgU2RwVmlkZW9Gb3JtYXQgJmZvcm1hdCkgewogICBS
VENWaWRlb0NvZGVjSW5mbyAqaW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRX
aXRoTmF0aXZlU2RwVmlkZW9Gb3JtYXQ6Zm9ybWF0XTsKICAgaWQ8UlRDVmlkZW9FbmNvZGVyPiBl
bmNvZGVyID0gW2VuY29kZXJfZmFjdG9yeV8gY3JlYXRlRW5jb2RlcjppbmZvXTsKLSAgaWYgKFtl
bmNvZGVyIGlzS2luZE9mQ2xhc3M6W1JUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIgY2xhc3Nd
XSkgeworICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5kT2ZDbGFzcyBkb2Vz
bid0IHdvcmsgYXMgZXhwZWN0ZWQuCisgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk4NzgyLgorICAvLyBpZiAoW2VuY29kZXIgaXNLaW5kT2ZDbGFzczpb
UlRDV3JhcHBlZE5hdGl2ZVZpZGVvRW5jb2RlciBjbGFzc11dKSB7CisgIGlmIChbaW5mby5uYW1l
IGlzRXF1YWw6QCJWUDgiXSB8fCBbaW5mby5uYW1lIGlzRXF1YWw6QCJWUDkiXSkgewogICAgIHJl
dHVybiBbKFJUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIgKillbmNvZGVyIHJlbGVhc2VXcmFw
cGVkRW5jb2Rlcl07CiAgIH0gZWxzZSB7CiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxPYmpD
VmlkZW9FbmNvZGVyPihuZXcgT2JqQ1ZpZGVvRW5jb2RlcihlbmNvZGVyKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy90ZXN0L3NjZW5hcmlv
L3ZpZGVvX3N0cmVhbS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Rlc3Qvc2NlbmFyaW8vdmlkZW9fc3RyZWFtLmNjCmluZGV4IGVlMzg5ZjE0MjVhZTQ4NjJh
NGVhY2ExYTY0NjYxYmY0NGIxMmEzMjYuLmE5MzJkZDVmYTk4YzE2OTk2ZGNkNjBhMDNiZGFmODQx
NjRiMWJiNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Rlc3Qvc2NlbmFyaW8vdmlkZW9fc3RyZWFtLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Rlc3Qvc2NlbmFyaW8vdmlkZW9fc3RyZWFtLmNj
CkBAIC0yMDAsMTAgKzIwMCwyOSBAQCBDcmVhdGVIMjY0U3BlY2lmaWNTZXR0aW5ncyhWaWRlb1N0
cmVhbUNvbmZpZyBjb25maWcpIHsKICAgICAgIFZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NEVuY29k
ZXJTcGVjaWZpY1NldHRpbmdzPihoMjY0X3NldHRpbmdzKTsKIH0KIAorI2lmbmRlZiBESVNBQkxF
X0gyNjUKK3J0Yzo6c2NvcGVkX3JlZnB0cjxWaWRlb0VuY29kZXJDb25maWc6OkVuY29kZXJTcGVj
aWZpY1NldHRpbmdzPgorQ3JlYXRlSDI2NVNwZWNpZmljU2V0dGluZ3MoVmlkZW9TdHJlYW1Db25m
aWcgY29uZmlnKSB7CisgIFJUQ19EQ0hFQ0tfRVEoY29uZmlnLmVuY29kZXIubGF5ZXJzLnRlbXBv
cmFsLCAxKTsKKyAgUlRDX0RDSEVDS19FUShjb25maWcuZW5jb2Rlci5sYXllcnMuc3BhdGlhbCwg
MSk7CisKKyAgVmlkZW9Db2RlY0gyNjUgaDI2NV9zZXR0aW5ncyA9IFZpZGVvRW5jb2Rlcjo6R2V0
RGVmYXVsdEgyNjVTZXR0aW5ncygpOworICBoMjY1X3NldHRpbmdzLmZyYW1lRHJvcHBpbmdPbiA9
IGNvbmZpZy5lbmNvZGVyLmZyYW1lX2Ryb3BwaW5nOworICBoMjY1X3NldHRpbmdzLmtleUZyYW1l
SW50ZXJ2YWwgPQorICAgICAgY29uZmlnLmVuY29kZXIua2V5X2ZyYW1lX2ludGVydmFsLnZhbHVl
X29yKDApOworICByZXR1cm4gbmV3IHJ0Yzo6UmVmQ291bnRlZE9iamVjdDwKKyAgICAgIFZpZGVv
RW5jb2RlckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzPihoMjY1X3NldHRpbmdz
KTsKK30KKyNlbmRpZgorCiBydGM6OnNjb3BlZF9yZWZwdHI8VmlkZW9FbmNvZGVyQ29uZmlnOjpF
bmNvZGVyU3BlY2lmaWNTZXR0aW5ncz4KIENyZWF0ZUVuY29kZXJTcGVjaWZpY1NldHRpbmdzKFZp
ZGVvU3RyZWFtQ29uZmlnIGNvbmZpZykgewogICB1c2luZyBDb2RlYyA9IFZpZGVvU3RyZWFtQ29u
ZmlnOjpFbmNvZGVyOjpDb2RlYzsKICAgc3dpdGNoIChjb25maWcuZW5jb2Rlci5jb2RlYykgewor
I2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIENvZGVjOjprVmlkZW9Db2RlY0gyNjU6Cisg
ICAgICByZXR1cm4gQ3JlYXRlSDI2NVNwZWNpZmljU2V0dGluZ3MoY29uZmlnKTsKKyNlbmRpZgog
ICAgIGNhc2UgQ29kZWM6OmtWaWRlb0NvZGVjSDI2NDoKICAgICAgIHJldHVybiBDcmVhdGVIMjY0
U3BlY2lmaWNTZXR0aW5ncyhjb25maWcpOwogICAgIGNhc2UgQ29kZWM6OmtWaWRlb0NvZGVjVlA4
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
dGVzdC92aWRlb19jb2RlY19zZXR0aW5ncy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvdGVzdC92aWRlb19jb2RlY19zZXR0aW5ncy5oCmluZGV4IGI1MjUwNDg2
ZDc2ZjZlMTUzYWU4NzAzZGQ0MjliNTVlMzQ3Zjg1MWIuLmIwYzM1NzFlMjNiNGUzMDRlYWFmYTI3
NTU3ODNjNzM3ZjI4NWExZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Rlc3QvdmlkZW9fY29kZWNfc2V0dGluZ3MuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy90ZXN0L3ZpZGVvX2NvZGVjX3NldHRp
bmdzLmgKQEAgLTU2LDYgKzU2LDExIEBAIHN0YXRpYyB2b2lkIENvZGVjU2V0dGluZ3MoVmlkZW9D
b2RlY1R5cGUgY29kZWNfdHlwZSwgVmlkZW9Db2RlYyogc2V0dGluZ3MpIHsKICAgICBjYXNlIGtW
aWRlb0NvZGVjVlA5OgogICAgICAgKihzZXR0aW5ncy0+VlA5KCkpID0gVmlkZW9FbmNvZGVyOjpH
ZXREZWZhdWx0VnA5U2V0dGluZ3MoKTsKICAgICAgIHJldHVybjsKKyNpZmRlZiBSVENfRU5BQkxF
X0gyNjUKKyAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NToKKyAgICAgICooc2V0dGluZ3MtPkgyNjUo
KSkgPSBWaWRlb0VuY29kZXI6OkdldERlZmF1bHRIMjY1U2V0dGluZ3MoKTsKKyAgICAgIHJldHVy
bjsKKyNlbmRpZgogICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgLy8gVE9ETyhicmFu
ZHRyKTogU2V0IHxxcE1heHwgaGVyZSwgd2hlbiB0aGUgT3BlbkgyNjQgd3JhcHBlciBzdXBwb3J0
cyBpdC4KICAgICAgICooc2V0dGluZ3MtPkgyNjQoKSkgPSBWaWRlb0VuY29kZXI6OkdldERlZmF1
bHRIMjY0U2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3Ry
ZWFtX3JlY2VpdmVyLmNjCmluZGV4IGNlZjU2MDI3ODBjM2Y1MzlhNmZiMTQwMWU4YjEzNzM4NTNm
YWYxODcuLmQzNmIxOGZiOWExZTY5MzhmZDFlODBiYTdmNTFlMjAwMWIzMzRjZTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92
aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5jYwpAQCAtMzc2
LDcgKzM3NiwxOSBAQCBpbnQzMl90IFJ0cFZpZGVvU3RyZWFtUmVjZWl2ZXI6Ok9uUmVjZWl2ZWRQ
YXlsb2FkRGF0YSgKICAgICAgIGNhc2UgdmlkZW9fY29kaW5nOjpIMjY0U3BzUHBzVHJhY2tlcjo6
a0luc2VydDoKICAgICAgICAgYnJlYWs7CiAgICAgfQotCisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1
CisgIH0gZWxzZSBpZiAocGFja2V0LmNvZGVjKCkgPT0ga1ZpZGVvQ29kZWNIMjY1KSB7CisgICAg
c3dpdGNoIChoMjY1X3RyYWNrZXJfLkNvcHlBbmRGaXhCaXRzdHJlYW0oJnBhY2tldCkpIHsKKyAg
ICAgIGNhc2UgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlcjo6a1JlcXVlc3RLZXlm
cmFtZToKKyAgICAgICAgcnRjcF9mZWVkYmFja19idWZmZXJfLlJlcXVlc3RLZXlGcmFtZSgpOwor
ICAgICAgICBydGNwX2ZlZWRiYWNrX2J1ZmZlcl8uU2VuZEJ1ZmZlcmVkUnRjcEZlZWRiYWNrKCk7
CisgICAgICAgIFJUQ19GQUxMVEhST1VHSCgpOworICAgICAgY2FzZSB2aWRlb19jb2Rpbmc6Okgy
NjVWcHNTcHNQcHNUcmFja2VyOjprRHJvcDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgICBjYXNl
IHZpZGVvX2NvZGluZzo6SDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OmtJbnNlcnQ6CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyNlbmRpZgogICB9IGVsc2UgewogICAgIHVpbnQ4X3QqIGRhdGEgPSBuZXcg
dWludDhfdFtwYWNrZXQuc2l6ZUJ5dGVzXTsKICAgICBtZW1jcHkoZGF0YSwgcGFja2V0LmRhdGFQ
dHIsIHBhY2tldC5zaXplQnl0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVv
X3N0cmVhbV9yZWNlaXZlci5oCmluZGV4IDM2NWJlNGFhZmZlMWU5ODJiYjNkZDM4YWM2NDU3YmU4
NGJiMjUxYTcuLjA2OGNjMjgyZmRlODEyYjI0NDI4Y2U4MTE2NjNhYjA5MTA3MDM0OTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0
cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmgKQEAgLTMy
LDYgKzMyLDkgQEAKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL2luY2x1ZGUvcnRwX3J0Y3Bf
ZGVmaW5lcy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjRfc3BzX3Bwc190
cmFja2VyLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvbG9zc19ub3RpZmljYXRp
b25fY29udHJvbGxlci5oIgorI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oIgorI2VuZGlmCiAjaW5j
bHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvcGFja2V0X2J1ZmZlci5oIgogI2luY2x1ZGUgIm1v
ZHVsZXMvdmlkZW9fY29kaW5nL3J0cF9mcmFtZV9yZWZlcmVuY2VfZmluZGVyLmgiCiAjaW5jbHVk
ZSAicnRjX2Jhc2UvY29uc3RydWN0b3JfbWFnaWMuaCIKQEAgLTI4Myw2ICsyODYsMTEgQEAgY2xh
c3MgUnRwVmlkZW9TdHJlYW1SZWNlaXZlciA6IHB1YmxpYyBMb3NzTm90aWZpY2F0aW9uU2VuZGVy
LAogICAvLyBNYXBzIHBheWxvYWQgdHlwZSB0byBjb2RlYyB0eXBlLCBmb3IgcGFja2V0aXphdGlv
bi4KICAgc3RkOjptYXA8dWludDhfdCwgYWJzbDo6b3B0aW9uYWw8VmlkZW9Db2RlY1R5cGU+PiBw
YXlsb2FkX3R5cGVfbWFwXzsKIAorCisjaWZkZWYgUlRDX0VOQUJMRV9IMjY1CisgIHZpZGVvX2Nv
ZGluZzo6SDI2NVZwc1Nwc1Bwc1RyYWNrZXIgaDI2NV90cmFja2VyXzsKKyNlbmRpZgorCiAgIC8v
IFRPRE8oam9oYW4pOiBSZW1vdmUgcHRfY29kZWNfcGFyYW1zXyBvbmNlCiAgIC8vIGh0dHBzOi8v
YnVncy5jaHJvbWl1bS5vcmcvcC93ZWJydGMvaXNzdWVzL2RldGFpbD9pZD02ODgzIGlzIHJlc29s
dmVkLgogICAvLyBNYXBzIGEgcGF5bG9hZCB0eXBlIHRvIGEgbWFwIG9mIG91dC1vZi1iYW5kIHN1
cHBsaWVkIGNvZGVjIHBhcmFtZXRlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9zZW5kX3N0YXRpc3RpY3NfcHJveHkuY2MgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9zZW5kX3N0YXRp
c3RpY3NfcHJveHkuY2MKaW5kZXggYzJhYWIwNTljNWNiYzlhNDQyYjExNzRmZmU4MmM0YjljZmFl
OTE3NC4uZDQ2ZjhmMTJiOGJjNGYzZjdkNDkwZWU2NDdmMmE1NWRkZGExYTM0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vc2VuZF9z
dGF0aXN0aWNzX3Byb3h5LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3ZpZGVvL3NlbmRfc3RhdGlzdGljc19wcm94eS5jYwpAQCAtNDMsNiArNDMsOSBA
QCBlbnVtIEhpc3RvZ3JhbUNvZGVjVHlwZSB7CiAgIGtWaWRlb1ZwOCA9IDEsCiAgIGtWaWRlb1Zw
OSA9IDIsCiAgIGtWaWRlb0gyNjQgPSAzLAorI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorICBrVmlk
ZW9IMjY1ID0gNCwKKyNlbmRpZgogICBrVmlkZW9NYXggPSA2NCwKIH07CiAKQEAgLTcwLDYgKzcz
LDEwIEBAIEhpc3RvZ3JhbUNvZGVjVHlwZSBQYXlsb2FkTmFtZVRvSGlzdG9ncmFtQ29kZWNUeXBl
KAogICAgICAgcmV0dXJuIGtWaWRlb1ZwOTsKICAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NDoKICAg
ICAgIHJldHVybiBrVmlkZW9IMjY0OworI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorICAgIGNhc2Ug
a1ZpZGVvQ29kZWNIMjY1OgorICAgICAgcmV0dXJuIGtWaWRlb0gyNjU7CisjZW5kaWYKICAgICBk
ZWZhdWx0OgogICAgICAgcmV0dXJuIGtWaWRlb1Vua25vd247CiAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2Vp
dmVfc3RyZWFtLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
dmlkZW8vdmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MKaW5kZXggYTUyZGFjOGVhMDk3NWNmOWU1NjYz
ZTg3MDg0ZjU5ODZjOGM4NWQ4OS4uYTUwODViYzg5M2Y2ZDk0MzQyYzc2NmI0ODE0YTY3ZDVhYjM5
MDJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvdmlkZW8vdmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MKQEAg
LTg2LDYgKzg2LDExIEBAIFZpZGVvQ29kZWMgQ3JlYXRlRGVjb2RlclZpZGVvQ29kZWMoY29uc3Qg
VmlkZW9SZWNlaXZlU3RyZWFtOjpEZWNvZGVyJiBkZWNvZGVyKSB7CiAgICAgYXNzb2NpYXRlZF9j
b2RlYy5jb2RlY1R5cGUgPSBrVmlkZW9Db2RlY011bHRpcGxleDsKICAgICByZXR1cm4gYXNzb2Np
YXRlZF9jb2RlYzsKICAgfQorI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorICBlbHNlIGlmIChjb2Rl
Yy5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY1KSB7CisgICAgKihjb2RlYy5IMjY1KCkpID0g
VmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0SDI2NVNldHRpbmdzKCk7CisgIH0KKyNlbmRpZgogCiAg
IGNvZGVjLndpZHRoID0gMzIwOwogICBjb2RlYy5oZWlnaHQgPSAxODA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19zdHJl
YW1fZW5jb2Rlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjCmluZGV4IDBhZjE2MjhjMGY5YWViMThjMTBi
YmQyOGRkOTFkNzk2MDMyYjc1NWIuLjljOTcxZmZmYWJkNjg1MjVmNWJjMjdlOWYwYjllYzNhYmJj
ZjdkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjCkBA
IC0xMzgsNiArMTM4LDEzIEBAIGJvb2wgUmVxdWlyZXNFbmNvZGVyUmVzZXQoY29uc3QgVmlkZW9D
b2RlYyYgcHJldl9zZW5kX2NvZGVjLAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgIH0KICAg
ICAgIGJyZWFrOworI2lmZGVmIFJUQ19FTkFCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNI
MjY1OgorICAgICAgaWYgKG5ld19zZW5kX2NvZGVjLkgyNjUoKSAhPSBwcmV2X3NlbmRfY29kZWMu
SDI2NSgpKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICAgICAgYnJlYWs7Cisj
ZW5kaWYKIAogICAgIGRlZmF1bHQ6CiAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBmYzY0Mjc5YWYyYzUxMDVmYjk4NzE2ZGFhZTQzYjJkNzEwNjc2NjEzLi45
NTYyODkzYjdkOTUwNmMxZTJhMWM2MGI4NDdhYzNhYzVhNzIwMDVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0xMjMxLDYgKzEyMzEsMzEgQEAKIAkJNDE3NUVBMEMyMTY1OTZE
RDAwQjQ2MzkwIC8qIHZweF9zY2FsZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEyMzlCMDgyMTQ3NTdBRDAwMzk2RjgxIC8qIHZweF9zY2FsZS5jICov
OyB9OwogCQk0MTc1RUEwRDIxNjU5NkREMDBCNDYzOTAgLyogeXYxMmNvbmZpZy5jIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyMzlCMDkyMTQ3NTdBRDAw
Mzk2RjgxIC8qIHl2MTJjb25maWcuYyAqLzsgfTsKIAkJNDE3NUVBMEUyMTY1OTZERDAwQjQ2Mzkw
IC8qIHl2MTJleHRlbmQuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMjM5QjBBMjE0NzU3QUUwMDM5NkY4MSAvKiB5djEyZXh0ZW5kLmMgKi87IH07CisJ
CTQxNzdGNEVFMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X2NvbW1vbi5jYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNEU2MjM4MEU3RDYwMEMwNDQ4
NiAvKiBoMjY1X2NvbW1vbi5jYyAqLzsgfTsKKwkJNDE3N0Y0RUYyMzgwRTdENzAwQzA0NDg2IC8q
IGgyNjVfcHBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxNzdGNEU3MjM4MEU3RDYwMEMwNDQ4NiAvKiBoMjY1X3Bwc19wYXJzZXIuY2Mg
Ki87IH07CisJCTQxNzdGNEYwMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X3Zwc19wYXJzZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNEU4MjM4
MEU3RDYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19wYXJzZXIuaCAqLzsgfTsKKwkJNDE3N0Y0RjEyMzgw
RTdENzAwQzA0NDg2IC8qIGgyNjVfdnBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNEU5MjM4MEU3RDYwMEMwNDQ4NiAvKiBoMjY1
X3Zwc19wYXJzZXIuY2MgKi87IH07CisJCTQxNzdGNEYyMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1
X2NvbW1vbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE3N0Y0RUEyMzgwRTdENjAwQzA0NDg2IC8qIGgyNjVfY29tbW9uLmggKi87IH07CisJCTQxNzdG
NEYzMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X3Bwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNEVCMjM4MEU3RDcwMEMwNDQ4NiAv
KiBoMjY1X3Bwc19wYXJzZXIuaCAqLzsgfTsKKwkJNDE3N0Y0RjQyMzgwRTdENzAwQzA0NDg2IC8q
IGgyNjVfc3BzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE3N0Y0RUMyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5oICov
OyB9OworCQk0MTc3RjRGNTIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmNjIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y0RUQyMzgw
RTdENzAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLzsgfTsKKwkJNDE3N0Y0RkEyMzgw
RTgwMDAwQzA0NDg2IC8qIHJ0cF9mb3JtYXRfaDI2NS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y0RjYyMzgwRTdGRjAwQzA0NDg2IC8qIHJ0cF9m
b3JtYXRfaDI2NS5oICovOyB9OworCQk0MTc3RjRGQjIzODBFODAwMDBDMDQ0ODYgLyogaDI2NV9z
cHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTc3RjRGNzIzODBFN0ZGMDBDMDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmggKi87IH07CisJ
CTQxNzdGNEZDMjM4MEU4MDAwMEMwNDQ4NiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc3RjRGODIzODBFN0ZGMDBD
MDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovOyB9OworCQk0MTc3RjRGRDIzODBFODAwMDBD
MDQ0ODYgLyogcnRwX2Zvcm1hdF9oMjY1LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y0RjkyMzgwRTgwMDAwQzA0NDg2IC8qIHJ0cF9mb3JtYXRf
aDI2NS5jYyAqLzsgfTsKKwkJNDE3N0Y1MDAyMzgwRTgxRjAwQzA0NDg2IC8qIGgyNjVfdnBzX3Nw
c19wcHNfdHJhY2tlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxNzdGNEZFMjM4MEU4MUYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNr
ZXIuY2MgKi87IH07CisJCTQxNzdGNTAxMjM4MEU4MUYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19zcHNf
cHBzX3RyYWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNzdGNEZGMjM4MEU4MUYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIu
aCAqLzsgfTsKKwkJNDE3N0Y1MEYyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NStQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTc3RjUwMjIzODBFODQ2MDBDMDQ0ODYgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY1K1ByaXZhdGUuaCAqLzsgfTsKKwkJNDE3N0Y1MTAyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxNzdGNTAzMjM4MEU4NDYwMEMwNDQ4NiAvKiBSVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjUubW0gKi87IH07CisJCTQxNzdGNTExMjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENWaWRl
b0RlY29kZXJIMjY1Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE3N0Y1MDQyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0g
Ki87IH07CisJCTQxNzdGNTEyMjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENIMjY1UHJvZmlsZUxldmVs
SWQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTc3
RjUwNTIzODBFODQ2MDBDMDQ0ODYgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tICovOyB9Owor
CQk0MTc3RjUxMzIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y1MDYyMzgwRTg0
NzAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUuaCAqLzsgfTsKKwkJNDE3N0Y1MTUyMzgw
RTg0ODAwQzA0NDg2IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3N0Y1MDgyMzgwRTg0NzAwQzA0NDg2
IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oICovOyB9OworCQk0MTc3RjUxNjIzODBFODQ4
MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdGNTA5MjM4MEU4NDcwMEMwNDQ4NiAvKiBSVENW
aWRlb0VuY29kZXJIMjY1Lm1tICovOyB9OworCQk0MTc3RjUxODIzODBFODQ4MDBDMDQ0ODYgLyog
UlRDSDI2NVByb2ZpbGVMZXZlbElkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTc3RjUwQjIzODBFODQ3MDBDMDQ0ODYgLyogUlRDSDI2NVByb2ZpbGVM
ZXZlbElkLmggKi87IH07CisJCTQxNzdGNTE5MjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENWaWRlb0Rl
Y29kZXJGYWN0b3J5SDI2NS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE3N0Y1MEMyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3Rv
cnlIMjY1LmggKi87IH07CisJCTQxNzdGNTFBMjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENWaWRlb0Vu
Y29kZXJIMjY1LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTc3RjUwRDIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5oICovOyB9
OworCQk0MTc3RjUxQjIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgy
NjUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzdG
NTBFMjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5oICovOyB9
OwogCQk0MTc5NTNCNDIxNjk4MjQyMDAyODI2NkIgLyogbmFsdV9yZXdyaXRlci5jYyBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzk1M0FDMjE2OTgyM0Qw
MDI4MjY2QiAvKiBuYWx1X3Jld3JpdGVyLmNjICovOyB9OwogCQk0MTc5NTNCNTIxNjk4MjQyMDAy
ODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzk1M0FEMjE2OTgyM0UwMDI4MjY2QiAv
KiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tICovOyB9OwogCQk0MTc5NTNCNzIxNjk4
MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzk1M0FGMjE2OTgyM0YwMDI4
MjY2QiAvKiBSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tICovOyB9OwpAQCAtNTEzNiw2
ICs1MTYxLDMzIEBACiAJCTQxNjczMjA1MjEyRTA0OTEwMDEyODBFQiAvKiBwb3N0cHJvYy5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IHBhdGggPSBwb3N0cHJvYy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTY3MzIwNjIxMkUwNDkxMDAxMjgwRUIgLyogaWRjdF9ibGsuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gaWRj
dF9ibGsuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2RDJGMTAxRkE4Q0MwNDAw
MDk3MzQ1IC8qIFZpZGVvUHJvY2Vzc2luZy5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFZp
ZGVvUHJvY2Vzc2luZy5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9WaWRlb1Byb2Nlc3NpbmcuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsg
fTsKKwkJNDE3N0Y0RTYyMzgwRTdENjAwQzA0NDg2IC8qIGgyNjVfY29tbW9uLmNjICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gaDI2NV9jb21tb24uY2M7IHBhdGggPSBoMjY1
L2gyNjVfY29tbW9uLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3RjRFNzIz
ODBFN0Q2MDBDMDQ0ODYgLyogaDI2NV9wcHNfcGFyc2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gaDI2NV9wcHNfcGFyc2VyLmNjOyBwYXRoID0gaDI2NS9oMjY1X3Bw
c19wYXJzZXIuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzdGNEU4MjM4MEU3
RDYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19wYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gaDI2NV92cHNfcGFyc2VyLmg7IHBhdGggPSBoMjY1L2gyNjVfdnBzX3BhcnNlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3RjRFOTIzODBFN0Q2MDBDMDQ0ODYg
LyogaDI2NV92cHNfcGFyc2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gaDI2NV92cHNfcGFyc2VyLmNjOyBwYXRoID0gaDI2NS9oMjY1X3Zwc19wYXJzZXIuY2M7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzdGNEVBMjM4MEU3RDYwMEMwNDQ4NiAvKiBo
MjY1X2NvbW1vbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBoMjY1X2NvbW1v
bi5oOyBwYXRoID0gaDI2NS9oMjY1X2NvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTc3RjRFQjIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2NV9wcHNfcGFyc2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IGgyNjVfcHBzX3BhcnNlci5oOyBwYXRoID0gaDI2
NS9oMjY1X3Bwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y0
RUMyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBoMjY1X3Nwc19wYXJzZXIuaDsgcGF0aCA9IGgyNjUvaDI2NV9zcHNf
cGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzdGNEVEMjM4MEU3RDcw
MEMwNDQ4NiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBoMjY1X3Nwc19wYXJzZXIuY2M7IHBhdGggPSBoMjY1L2gyNjVfc3BzX3BhcnNl
ci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y0RjYyMzgwRTdGRjAwQzA0
NDg2IC8qIHJ0cF9mb3JtYXRfaDI2NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBydHBfZm9ybWF0X2gyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y0
RjcyMzgwRTdGRjAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBoMjY1X3Nwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDE3N0Y0RjgyMzgwRTdGRjAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5jYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfc3BzX3BhcnNlci5jYzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y0RjkyMzgwRTgwMDAwQzA0NDg2IC8q
IHJ0cF9mb3JtYXRfaDI2NS5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IHJ0cF9mb3JtYXRfaDI2NS5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y0
RkUyMzgwRTgxRjAwQzA0NDg2IC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5j
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y0RkYyMzgwRTgxRjAwQzA0NDg2
IC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDE3N0Y1MDIyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NStQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJSVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE3N0Y1MDMyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJUQ0NvZGVjU3BlY2lm
aWNJbmZvSDI2NS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3N0Y1MDQyMzgw
RTg0NjAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENWaWRlb0RlY29kZXJIMjY1Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTc3RjUwNTIzODBFODQ2MDBDMDQ0ODYgLyogUlRDSDI2NVBy
b2ZpbGVMZXZlbElkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTc3RjUwNjIzODBFODQ3MDBDMDQ0ODYgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENWaWRlb0RlY29kZXJIMjY1Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNzdGNTA3MjM4MEU4NDcwMEMwNDQ4NiAvKiBSVENWaWRl
b0VuY29kZXJGYWN0b3J5SDI2NS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGgg
PSBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NS5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0MTc3RjUwODIzODBFODQ3MDBDMDQ0ODYgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3RjUwOTIzODBFODQ3MDBD
MDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFJUQ1ZpZGVvRW5jb2RlckgyNjUubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxNzdGNTBBMjM4MEU4NDcwMEMwNDQ4NiAvKiBSVENWaWRlb0RlY29kZXJG
YWN0b3J5SDI2NS5tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBSVENWaWRl
b0RlY29kZXJGYWN0b3J5SDI2NS5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3
RjUwQjIzODBFODQ3MDBDMDQ0ODYgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3RjUwQzIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlk
ZW9EZWNvZGVyRmFjdG9yeUgyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDE3N0Y1MEQyMzgwRTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDVmlkZW9FbmNvZGVySDI2NS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTc3RjUwRTIzODBFODQ4MDBDMDQ0ODYgLyogUlRD
VmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE3OTUzQUMyMTY5ODIzRDAwMjgyNjZCIC8qIG5hbHVfcmV3cml0ZXIuY2MgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBuYWx1X3Jld3JpdGVyLmNjOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTc5NTNBRDIxNjk4MjNFMDAyODI2NkIgLyogUlRDRGVm
YXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBw
YXRoID0gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE3OTUzQUUyMTY5ODIzRjAwMjgyNjZCIC8qIFVJRGV2aWNlK0gyNjRQcm9m
aWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gIlVJRGV2aWNl
K0gyNjRQcm9maWxlLm1tIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgwMzQsMjYg
KzgwODYsMjYgQEAKIAkJCQk0MTQ1RjYxOTFGRTFGMzhCMDBFQjlDQUYgLyogc2RwX3ZpZGVvX2Zv
cm1hdC5oICovLAogCQkJCTQxRERCMjcwMjEyNjdBQzAwMDI5NkQ0NyAvKiB2aWRlb19jb2RlYy5j
YyAqLywKIAkJCQk0MUREQjI3MTIxMjY3QUMwMDAyOTZENDcgLyogdmlkZW9fY29kZWMuaCAqLywK
KwkJCQk0MUREQjI3MjIxMjY3QUMwMDAyOTZENDcgLyogdmlkZW9fZGVjb2Rlci5jYyAqLywKKwkJ
CQk0MTQ1RTQ4QjFFRjg4Qjk2MDBGQ0Y2RTYgLyogdmlkZW9fZGVjb2Rlci5oICovLAogCQkJCTQx
Nzk1M0YwMjE2OTg0NTUwMDI4MjY2QiAvKiB2aWRlb19kZWNvZGVyX2ZhY3RvcnkuY2MgKi8sCiAJ
CQkJNDE0NUY2MUExRkUxRjM4QzAwRUI5Q0FGIC8qIHZpZGVvX2RlY29kZXJfZmFjdG9yeS5oICov
LAogCQkJCTQxRERCMjc0MjEyNjdBQzEwMDI5NkQ0NyAvKiB2aWRlb19kZWNvZGVyX3NvZnR3YXJl
X2ZhbGxiYWNrX3dyYXBwZXIuY2MgKi8sCiAJCQkJNDFEREIyNzgyMTI2N0FDMTAwMjk2RDQ3IC8q
IHZpZGVvX2RlY29kZXJfc29mdHdhcmVfZmFsbGJhY2tfd3JhcHBlci5oICovLAotCQkJCTQxRERC
MjcyMjEyNjdBQzAwMDI5NkQ0NyAvKiB2aWRlb19kZWNvZGVyLmNjICovLAotCQkJCTQxNDVFNDhC
MUVGODhCOTYwMEZDRjZFNiAvKiB2aWRlb19kZWNvZGVyLmggKi8sCisJCQkJNDE0NUY2MUMxRkUx
RjM4RDAwRUI5Q0FGIC8qIHZpZGVvX2VuY29kZXIuY2MgKi8sCisJCQkJNDE0NUU0OEMxRUY4OEI5
RDAwRkNGNkU2IC8qIHZpZGVvX2VuY29kZXIuaCAqLywKIAkJCQk0MUUwMkNDMzIxMjczNTg4MDBD
MjdDRDYgLyogdmlkZW9fZW5jb2Rlcl9jb25maWcuY2MgKi8sCiAJCQkJNDFEREIyN0IyMTI2N0FD
MjAwMjk2RDQ3IC8qIHZpZGVvX2VuY29kZXJfY29uZmlnLmggKi8sCiAJCQkJNDE0NUY2MUIxRkUx
RjM4RDAwRUI5Q0FGIC8qIHZpZGVvX2VuY29kZXJfZmFjdG9yeS5oICovLAogCQkJCTQxRERCMjc1
MjEyNjdBQzEwMDI5NkQ0NyAvKiB2aWRlb19lbmNvZGVyX3NvZnR3YXJlX2ZhbGxiYWNrX3dyYXBw
ZXIuY2MgKi8sCiAJCQkJNDFEREIyNzkyMTI2N0FDMjAwMjk2RDQ3IC8qIHZpZGVvX2VuY29kZXJf
c29mdHdhcmVfZmFsbGJhY2tfd3JhcHBlci5oICovLAotCQkJCTQxNDVGNjFDMUZFMUYzOEQwMEVC
OUNBRiAvKiB2aWRlb19lbmNvZGVyLmNjICovLAotCQkJCTQxNDVFNDhDMUVGODhCOUQwMEZDRjZF
NiAvKiB2aWRlb19lbmNvZGVyLmggKi8sCiAJCQkJNDEzMUMzRDIyMzRDNzlEMDAwMjhBNjE1IC8q
IHZwOF9mcmFtZV9idWZmZXJfY29udHJvbGxlci5oICovLAogCQkJCTQxMzFDM0Q0MjM0Qzc5RDAw
MDI4QTYxNSAvKiB2cDhfZnJhbWVfY29uZmlnLmNjICovLAogCQkJCTQxMzFDM0Q1MjM0Qzc5RDAw
MDI4QTYxNSAvKiB2cDhfZnJhbWVfY29uZmlnLmggKi8sCi0JCQkJNDEzMUMzRDEyMzRDNzlEMDAw
MjhBNjE1IC8qIHZwOF90ZW1wb3JhbF9sYXllcnNfZmFjdG9yeS5jYyAqLywKLQkJCQk0MTMxQzNE
MDIzNEM3OUNGMDAyOEE2MTUgLyogdnA4X3RlbXBvcmFsX2xheWVyc19mYWN0b3J5LmggKi8sCiAJ
CQkJNDEzMUMzRDMyMzRDNzlEMDAwMjhBNjE1IC8qIHZwOF90ZW1wb3JhbF9sYXllcnMuY2MgKi8s
CiAJCQkJNDFGQ0JCNjIyMUIxRkVGNTAwQTVERjI3IC8qIHZwOF90ZW1wb3JhbF9sYXllcnMuaCAq
LywKKwkJCQk0MTMxQzNEMTIzNEM3OUQwMDAyOEE2MTUgLyogdnA4X3RlbXBvcmFsX2xheWVyc19m
YWN0b3J5LmNjICovLAorCQkJCTQxMzFDM0QwMjM0Qzc5Q0YwMDI4QTYxNSAvKiB2cDhfdGVtcG9y
YWxfbGF5ZXJzX2ZhY3RvcnkuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gdmlkZW9fY29kZWNzOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTgwNjMsNyArODExNSw2IEBACiAJCQljaGls
ZHJlbiA9ICgKIAkJCQk0MTMxQzQwMjIzNEM3QjdFMDAyOEE2MTUgLyogYXV0b19jb3JyZWxhdGlv
bi5jYyAqLywKIAkJCQk0MTMxQzQwMzIzNEM3QjdFMDAyOEE2MTUgLyogYXV0b19jb3JyZWxhdGlv
bi5oICovLAotCQkJCTQxMzFDNDA0MjM0QzdCN0UwMDI4QTYxNSAvKiBybm5fdmFkX3Rvb2wuY2Mg
Ki8sCiAJCQkJNDE5MjQxMzYyMTI3MzcyMzAwNjM0RkNGIC8qIGNvbW1vbi5oICovLAogCQkJCTQx
OTI0MTMxMjEyNzM3MjIwMDYzNEZDRiAvKiBmZWF0dXJlc19leHRyYWN0aW9uLmNjICovLAogCQkJ
CTQxOTI0MTMyMjEyNzM3MjIwMDYzNEZDRiAvKiBmZWF0dXJlc19leHRyYWN0aW9uLmggKi8sCkBA
IC04MDc3LDYgKzgxMjgsNyBAQAogCQkJCTQxOTI0MUE3MjEyNzU4RDMwMDYzNEZDRiAvKiByaW5n
X2J1ZmZlci5oICovLAogCQkJCTQxMjk5QjlDMjEyNzM2REUwMEIzNDE0QiAvKiBybm4uY2MgKi8s
CiAJCQkJNDE5MjQxQTMyMTI3NThEMjAwNjM0RkNGIC8qIHJubi5oICovLAorCQkJCTQxMzFDNDA0
MjM0QzdCN0UwMDI4QTYxNSAvKiBybm5fdmFkX3Rvb2wuY2MgKi8sCiAJCQkJNDE5MjQxQTUyMTI3
NThEMjAwNjM0RkNGIC8qIHNlcXVlbmNlX2J1ZmZlci5oICovLAogCQkJCTQxOTI0MUE2MjEyNzU4
RDIwMDYzNEZDRiAvKiBzcGVjdHJhbF9mZWF0dXJlcy5jYyAqLywKIAkJCQk0MTkyNDFBNDIxMjc1
OEQyMDA2MzRGQ0YgLyogc3BlY3RyYWxfZmVhdHVyZXMuaCAqLywKQEAgLTgxNTMsOCArODIwNSw4
IEBACiAJCTQxMzFDM0NCMjM0Qjk4MkEwMDI4QTYxNSAvKiBzdGF0cyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNDEzMUMzQ0MyMzRCOTg0MjAwMjhBNjE1
IC8qIHJ0Y19zdGF0c19yZXBvcnQuY2MgKi8sCiAJCQkJNDEzMUMzQ0QyMzRCOTg0MjAwMjhBNjE1
IC8qIHJ0Y19zdGF0cy5jYyAqLywKKwkJCQk0MTMxQzNDQzIzNEI5ODQyMDAyOEE2MTUgLyogcnRj
X3N0YXRzX3JlcG9ydC5jYyAqLywKIAkJCSk7CiAJCQluYW1lID0gc3RhdHM7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtODIxNyw4ICs4MjY5LDggQEAKIAkJCQk0MTMxQzQ1RTIzNEM4
MTcyMDAyOEE2MTUgLyogdmlkZW9fY29kZWNfaW5pdGlhbGl6ZXIuaCAqLywKIAkJCQk0MTMxQzQ2
MDIzNEM4MTcyMDAyOEE2MTUgLyogdmlkZW9fY29kZWNfaW50ZXJmYWNlLmNjICovLAogCQkJCTQx
MzFDNDVGMjM0QzgxNzIwMDI4QTYxNSAvKiB2aWRlb19jb2RlY19pbnRlcmZhY2UuaCAqLywKLQkJ
CQk0MTMxQzQ1RDIzNEM4MTcyMDAyOEE2MTUgLyogdmlkZW9fY29kaW5nX2RlZmluZXMuaCAqLywK
IAkJCQk0MTMxQzQ1QjIzNEM4MTcxMDAyOEE2MTUgLyogdmlkZW9fY29kaW5nLmggKi8sCisJCQkJ
NDEzMUM0NUQyMzRDODE3MjAwMjhBNjE1IC8qIHZpZGVvX2NvZGluZ19kZWZpbmVzLmggKi8sCiAJ
CQkJNDEzMUM0NUMyMzRDODE3MjAwMjhBNjE1IC8qIHZpZGVvX2Vycm9yX2NvZGVzLmggKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IGluY2x1ZGU7CkBAIC04MjI3LDEzICs4Mjc5LDEzIEBACiAJCTQxMzFD
NDY3MjM0QzgxOTcwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MTMxQzQ2QzIzNEM4MUI1MDAyOEE2MTUgLyog
cnRjX2V2ZW50X2xvZ19mYWN0b3J5X2ludGVyZmFjZS5oICovLAotCQkJCTQxMzFDNDZEMjM0Qzgx
QjUwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nX2ZhY3RvcnkuY2MgKi8sCi0JCQkJNDEzMUM0NkIy
MzRDODFCNTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9sb2dfZmFjdG9yeS5oICovLAotCQkJCTQxMzFD
NDZFMjM0QzgxQjYwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nLmNjICovLAotCQkJCTQxMzFDNDZB
MjM0QzgxQjUwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nLmggKi8sCiAJCQkJNDEzMUM0NjkyMzRD
ODFCNDAwMjhBNjE1IC8qIHJ0Y19ldmVudC5jYyAqLywKIAkJCQk0MTMxQzQ2ODIzNEM4MUI0MDAy
OEE2MTUgLyogcnRjX2V2ZW50LmggKi8sCisJCQkJNDEzMUM0NkUyMzRDODFCNjAwMjhBNjE1IC8q
IHJ0Y19ldmVudF9sb2cuY2MgKi8sCisJCQkJNDEzMUM0NkEyMzRDODFCNTAwMjhBNjE1IC8qIHJ0
Y19ldmVudF9sb2cuaCAqLywKKwkJCQk0MTMxQzQ2RDIzNEM4MUI1MDAyOEE2MTUgLyogcnRjX2V2
ZW50X2xvZ19mYWN0b3J5LmNjICovLAorCQkJCTQxMzFDNDZCMjM0QzgxQjUwMDI4QTYxNSAvKiBy
dGNfZXZlbnRfbG9nX2ZhY3RvcnkuaCAqLywKKwkJCQk0MTMxQzQ2QzIzNEM4MUI1MDAyOEE2MTUg
LyogcnRjX2V2ZW50X2xvZ19mYWN0b3J5X2ludGVyZmFjZS5oICovLAogCQkJKTsKIAkJCW5hbWUg
PSBydGNfZXZlbnRfbG9nOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTgyNDEsOCAr
ODI5Myw4IEBACiAJCTQxMzFDNDdFMjM0QzgyNEQwMDI4QTYxNSAvKiB0YXNrX3F1ZXVlICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MTMxQzRERjIzNEM4
NEREMDAyOEE2MTUgLyogZGVmYXVsdF90YXNrX3F1ZXVlX2ZhY3Rvcnlfc3RkbGliLmNjICovLAog
CQkJCTQxMzFDNDgwMjM0QzgyNzQwMDI4QTYxNSAvKiBkZWZhdWx0X3Rhc2tfcXVldWVfZmFjdG9y
eS5oICovLAorCQkJCTQxMzFDNERGMjM0Qzg0REQwMDI4QTYxNSAvKiBkZWZhdWx0X3Rhc2tfcXVl
dWVfZmFjdG9yeV9zdGRsaWIuY2MgKi8sCiAJCQkJNDEzMUM0ODIyMzRDODI3NDAwMjhBNjE1IC8q
IHF1ZXVlZF90YXNrLmggKi8sCiAJCQkJNDEzMUM0N0YyMzRDODI3MzAwMjhBNjE1IC8qIHRhc2tf
cXVldWVfYmFzZS5jYyAqLywKIAkJCQk0MTMxQzQ4MTIzNEM4Mjc0MDAyOEE2MTUgLyogdGFza19x
dWV1ZV9iYXNlLmggKi8sCkBAIC04Mjk1LDEwICs4MzQ3LDIyIEBACiAJCTQxM0EyMTQzMUZFMThE
MDEwMDM3M0U5OSAvKiBydGNfYmFzZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJNDEzMUJGRDkyMzRCODk3RTAwMjhBNjE1IC8qIERFUFMgKi8sCisJCQkJ
NDE5MjQxNjUyMTI3Mzg3OTAwNjM0RkNGIC8qIGV4cGVyaW1lbnRzICovLAorCQkJCTQxMzFDNDFG
MjM0QzdEMDcwMDI4QTYxNSAvKiBtZW1vcnkgKi8sCisJCQkJNDFGQ0JCMjQyMUIxRjg1RDAwQTVE
RjI3IC8qIG5ldHdvcmsgKi8sCisJCQkJNDE5QzgzNDExRkUyNDYzODAwNDBDMzBGIC8qIG51bWVy
aWNzICovLAorCQkJCTQxMzFDMEU3MjM0Qjg5REUwMDI4QTYxNSAvKiBPV05FUlMgKi8sCisJCQkJ
NDFEREIyNjcyMTI2NzlBRTAwMjk2RDQ3IC8qIHN0cmluZ3MgKi8sCisJCQkJNDE5MjQxNUMyMTI3
Mzc5MjAwNjM0RkNGIC8qIHN5bmNocm9uaXphdGlvbiAqLywKKwkJCQk0MUYyNjNBMjIxMjY4MDg4
MDAyNzRGNTkgLyogc3lzdGVtICovLAorCQkJCTQxMzFDNEUxMjM0Qzg1MDQwMDI4QTYxNSAvKiB0
YXNrX3V0aWxzICovLAorCQkJCTQxRjI2M0I0MjEyNjgwRTgwMDI3NEY1OSAvKiB0aGlyZF9wYXJ0
eSAqLywKKwkJCQk0MTkyNDE3QTIxMjczOTBDMDA2MzRGQ0YgLyogdGltZSAqLywKIAkJCQk0MTMx
QkZFMjIzNEI4OTdGMDAyOEE2MTUgLyogYXJyYXlzaXplLmggKi8sCi0JCQkJNDEzMUJGREIyMzRC
ODk3RTAwMjhBNjE1IC8qIGFzeW5jX2ludm9rZXJfaW5sLmggKi8sCiAJCQkJNDEzMUJGRDgyMzRC
ODk3RTAwMjhBNjE1IC8qIGFzeW5jX2ludm9rZXIuY2MgKi8sCiAJCQkJNDEzMUJGQjQyMzRCODk3
ODAwMjhBNjE1IC8qIGFzeW5jX2ludm9rZXIuaCAqLywKKwkJCQk0MTMxQkZEQjIzNEI4OTdFMDAy
OEE2MTUgLyogYXN5bmNfaW52b2tlcl9pbmwuaCAqLywKIAkJCQk0MTMxQkZCRTIzNEI4OTdBMDAy
OEE2MTUgLyogYXN5bmNfcGFja2V0X3NvY2tldC5jYyAqLywKIAkJCQk0MTMxQzAxNjIzNEI4OThC
MDAyOEE2MTUgLyogYXN5bmNfcGFja2V0X3NvY2tldC5oICovLAogCQkJCTQxMzFDMDA4MjM0Qjg5
ODkwMDI4QTYxNSAvKiBhc3luY19yZXNvbHZlcl9pbnRlcmZhY2UuY2MgKi8sCkBAIC04MzEzLDkg
KzgzNzcsOSBAQAogCQkJCTQxMzFCRkY1MjM0Qjg5ODIwMDI4QTYxNSAvKiBiaW5kLmggKi8sCiAJ
CQkJNDEzMUJGQzkyMzRCODk3QjAwMjhBNjE1IC8qIGJpdF9idWZmZXIuY2MgKi8sCiAJCQkJNDEz
MUJGRDIyMzRCODk3RDAwMjhBNjE1IC8qIGJpdF9idWZmZXIuaCAqLywKKwkJCQk0MTMxQkZFNTIz
NEI4OTdGMDAyOEE2MTUgLyogYnVmZmVyLmggKi8sCiAJCQkJNDEzMUJGRDEyMzRCODk3RDAwMjhB
NjE1IC8qIGJ1ZmZlcl9xdWV1ZS5jYyAqLywKIAkJCQk0MTMxQkZFRDIzNEI4OTgxMDAyOEE2MTUg
LyogYnVmZmVyX3F1ZXVlLmggKi8sCi0JCQkJNDEzMUJGRTUyMzRCODk3RjAwMjhBNjE1IC8qIGJ1
ZmZlci5oICovLAogCQkJCTQxMzFDMDBBMjM0Qjg5ODkwMDI4QTYxNSAvKiBCVUlMRC5nbiAqLywK
IAkJCQk0MTMxQkZEMzIzNEI4OTdEMDAyOEE2MTUgLyogYnl0ZV9idWZmZXIuY2MgKi8sCiAJCQkJ
NDEzMUMwMDUyMzRCODk4OTAwMjhBNjE1IC8qIGJ5dGVfYnVmZmVyLmggKi8sCkBAIC04MzM5LDEz
ICs4NDAzLDExIEBACiAJCQkJNDEzMUJGQjIyMzRCODk3ODAwMjhBNjE1IC8qIGRhdGFfcmF0ZV9s
aW1pdGVyLmNjICovLAogCQkJCTQxMzFCRkU5MjM0Qjg5ODAwMDI4QTYxNSAvKiBkYXRhX3JhdGVf
bGltaXRlci5oICovLAogCQkJCTQxMzFCRkRGMjM0Qjg5N0YwMDI4QTYxNSAvKiBkZXByZWNhdGlv
bi5oICovLAotCQkJCTQxMzFCRkQ5MjM0Qjg5N0UwMDI4QTYxNSAvKiBERVBTICovLAogCQkJCTQx
MzFCRkNDMjM0Qjg5N0MwMDI4QTYxNSAvKiBkc2NwLmggKi8sCi0JCQkJNDEzMUJGQzcyMzRCODk3
QjAwMjhBNjE1IC8qIGV2ZW50X3RyYWNlci5jYyAqLywKLQkJCQk0MTMxQkZFMTIzNEI4OTdGMDAy
OEE2MTUgLyogZXZlbnRfdHJhY2VyLmggKi8sCiAJCQkJNDEzMUJGREEyMzRCODk3RTAwMjhBNjE1
IC8qIGV2ZW50LmNjICovLAogCQkJCTQxMzFCRkJEMjM0Qjg5N0EwMDI4QTYxNSAvKiBldmVudC5o
ICovLAotCQkJCTQxOTI0MTY1MjEyNzM4NzkwMDYzNEZDRiAvKiBleHBlcmltZW50cyAqLywKKwkJ
CQk0MTMxQkZDNzIzNEI4OTdCMDAyOEE2MTUgLyogZXZlbnRfdHJhY2VyLmNjICovLAorCQkJCTQx
MzFCRkUxMjM0Qjg5N0YwMDI4QTYxNSAvKiBldmVudF90cmFjZXIuaCAqLywKIAkJCQk0MTMxQkZG
MDIzNEI4OTgxMDAyOEE2MTUgLyogZmFrZV9jbG9jay5jYyAqLywKIAkJCQk0MTMxQzAwNzIzNEI4
OTg5MDAyOEE2MTUgLyogZmFrZV9jbG9jay5oICovLAogCQkJCTQxMzFDMDEyMjM0Qjg5OEIwMDI4
QTYxNSAvKiBmYWtlX21kbnNfcmVzcG9uZGVyLmggKi8sCkBAIC04MzczLDEzICs4NDM1LDEyIEBA
CiAJCQkJNDEzMUJGRjIyMzRCODk4MTAwMjhBNjE1IC8qIGxvY2F0aW9uLmggKi8sCiAJCQkJNDEz
MUJGRjEyMzRCODk4MTAwMjhBNjE1IC8qIGxvZ19zaW5rcy5jYyAqLywKIAkJCQk0MTMxQkZCMDIz
NEI4OTc4MDAyOEE2MTUgLyogbG9nX3NpbmtzLmggKi8sCi0JCQkJNDEzMUM1NjEyMzRDOEMyMjAw
MjhBNjE1IC8qIGxvZ2dpbmdfbWFjLmggKi8sCi0JCQkJNDEzMUM1NjIyMzRDOEMyMzAwMjhBNjE1
IC8qIGxvZ2dpbmdfbWFjLm1tICovLAogCQkJCTQxMzFCRkZCMjM0Qjg5ODMwMDI4QTYxNSAvKiBs
b2dnaW5nLmNjICovLAogCQkJCTQxMzFCRkU3MjM0Qjg5ODAwMDI4QTYxNSAvKiBsb2dnaW5nLmgg
Ki8sCisJCQkJNDEzMUM1NjEyMzRDOEMyMjAwMjhBNjE1IC8qIGxvZ2dpbmdfbWFjLmggKi8sCisJ
CQkJNDEzMUM1NjIyMzRDOEMyMzAwMjhBNjE1IC8qIGxvZ2dpbmdfbWFjLm1tICovLAogCQkJCTQx
MzFDMDExMjM0Qjg5OEIwMDI4QTYxNSAvKiBtYWNfaWZhZGRyc19jb252ZXJ0ZXIuY2MgKi8sCiAJ
CQkJNDEzMUMwMDYyMzRCODk4OTAwMjhBNjE1IC8qIG1kbnNfcmVzcG9uZGVyX2ludGVyZmFjZS5o
ICovLAotCQkJCTQxMzFDNDFGMjM0QzdEMDcwMDI4QTYxNSAvKiBtZW1vcnkgKi8sCiAJCQkJNDEz
MUJGREQyMzRCODk3RTAwMjhBNjE1IC8qIG1lbW9yeV9zdHJlYW0uY2MgKi8sCiAJCQkJNDEzMUJG
RkQyMzRCODk4MzAwMjhBNjE1IC8qIG1lbW9yeV9zdHJlYW0uaCAqLywKIAkJCQk0MTMxQkZCOTIz
NEI4OTc5MDAyOEE2MTUgLyogbWVtb3J5X3VzYWdlLmNjICovLApAQCAtODQwMSwxNyArODQ2Miwx
NiBAQAogCQkJCTQxMzFCRkY3MjM0Qjg5ODIwMDI4QTYxNSAvKiBuZXRfaGVscGVyLmggKi8sCiAJ
CQkJNDEzMUJGRkYyMzRCODk4MzAwMjhBNjE1IC8qIG5ldF9oZWxwZXJzLmNjICovLAogCQkJCTQx
MzFCRkMwMjM0Qjg5N0EwMDI4QTYxNSAvKiBuZXRfaGVscGVycy5oICovLAotCQkJCTQxRkNCQjI0
MjFCMUY4NUQwMEE1REYyNyAvKiBuZXR3b3JrICovLAorCQkJCTQxMzFCRkNEMjM0Qjg5N0MwMDI4
QTYxNSAvKiBuZXR3b3JrLmNjICovLAorCQkJCTQxMzFDMDE4MjM0Qjg5OEMwMDI4QTYxNSAvKiBu
ZXR3b3JrLmggKi8sCiAJCQkJNDEzMUJGRUYyMzRCODk4MTAwMjhBNjE1IC8qIG5ldHdvcmtfY29u
c3RhbnRzLmggKi8sCiAJCQkJNDEzMUJGQjYyMzRCODk3ODAwMjhBNjE1IC8qIG5ldHdvcmtfbW9u
aXRvci5jYyAqLywKIAkJCQk0MTMxQkZCNTIzNEI4OTc4MDAyOEE2MTUgLyogbmV0d29ya19tb25p
dG9yLmggKi8sCiAJCQkJNDEzMUJGQzQyMzRCODk3QjAwMjhBNjE1IC8qIG5ldHdvcmtfcm91dGUu
aCAqLywKLQkJCQk0MTMxQkZDRDIzNEI4OTdDMDAyOEE2MTUgLyogbmV0d29yay5jYyAqLywKLQkJ
CQk0MTMxQzAxODIzNEI4OThDMDAyOEE2MTUgLyogbmV0d29yay5oICovLAogCQkJCTQxMzFCRkQ1
MjM0Qjg5N0QwMDI4QTYxNSAvKiBudWxsX3NvY2tldF9zZXJ2ZXIuY2MgKi8sCiAJCQkJNDEzMUJG
QzIyMzRCODk3QTAwMjhBNjE1IC8qIG51bGxfc29ja2V0X3NlcnZlci5oICovLAotCQkJCTQxOUM4
MzQxMUZFMjQ2MzgwMDQwQzMwRiAvKiBudW1lcmljcyAqLywKIAkJCQk0MTMxQzBEOTIzNEI4OURC
MDAyOEE2MTUgLyogb25lX3RpbWVfZXZlbnQuaCAqLywKKwkJCQk0MTMxQzBBMjIzNEI4OUQyMDAy
OEE2MTUgLyogb3BlbnNzbC5oICovLAogCQkJCTQxMzFDMERGMjM0Qjg5REMwMDI4QTYxNSAvKiBv
cGVuc3NsX2FkYXB0ZXIuY2MgKi8sCiAJCQkJNDEzMUMwRTQyMzRCODlERDAwMjhBNjE1IC8qIG9w
ZW5zc2xfYWRhcHRlci5oICovLAogCQkJCTQxMzFDMEIwMjM0Qjg5RDQwMDI4QTYxNSAvKiBvcGVu
c3NsX2NlcnRpZmljYXRlLmNjICovLApAQCAtODQyNiwxNCArODQ4NiwxMiBAQAogCQkJCTQxMzFD
MEJGMjM0Qjg5RDYwMDI4QTYxNSAvKiBvcGVuc3NsX3N0cmVhbV9hZGFwdGVyLmggKi8sCiAJCQkJ
NDEzMUMwOTMyMzRCODlEMDAwMjhBNjE1IC8qIG9wZW5zc2xfdXRpbGl0eS5jYyAqLywKIAkJCQk0
MTMxQzBFMDIzNEI4OURDMDAyOEE2MTUgLyogb3BlbnNzbF91dGlsaXR5LmggKi8sCi0JCQkJNDEz
MUMwQTIyMzRCODlEMjAwMjhBNjE1IC8qIG9wZW5zc2wuaCAqLywKLQkJCQk0MTMxQzBFNzIzNEI4
OURFMDAyOEE2MTUgLyogT1dORVJTICovLAogCQkJCTQxMzFDMEQzMjM0Qjg5REEwMDI4QTYxNSAv
KiBwaHlzaWNhbF9zb2NrZXRfc2VydmVyLmNjICovLAogCQkJCTQxMzFDMENFMjM0Qjg5RDkwMDI4
QTYxNSAvKiBwaHlzaWNhbF9zb2NrZXRfc2VydmVyLmggKi8sCi0JCQkJNDEzMUMwRUUyMzRCODlE
RjAwMjhBNjE1IC8qIHBsYXRmb3JtX3RocmVhZF90eXBlcy5jYyAqLywKLQkJCQk0MTMxQzBBNTIz
NEI4OUQyMDAyOEE2MTUgLyogcGxhdGZvcm1fdGhyZWFkX3R5cGVzLmggKi8sCiAJCQkJNDEzMUMw
QjgyMzRCODlENTAwMjhBNjE1IC8qIHBsYXRmb3JtX3RocmVhZC5jYyAqLywKIAkJCQk0MTMxQzBB
QTIzNEI4OUQzMDAyOEE2MTUgLyogcGxhdGZvcm1fdGhyZWFkLmggKi8sCisJCQkJNDEzMUMwRUUy
MzRCODlERjAwMjhBNjE1IC8qIHBsYXRmb3JtX3RocmVhZF90eXBlcy5jYyAqLywKKwkJCQk0MTMx
QzBBNTIzNEI4OUQyMDAyOEE2MTUgLyogcGxhdGZvcm1fdGhyZWFkX3R5cGVzLmggKi8sCiAJCQkJ
NDEzMUMwOUQyMzRCODlEMTAwMjhBNjE1IC8qIHByb3RvYnVmX3V0aWxzLmggKi8sCiAJCQkJNDEz
MUMwRjMyMzRCODlFMTAwMjhBNjE1IC8qIHByb3h5X2luZm8uY2MgKi8sCiAJCQkJNDEzMUMwQTQy
MzRCODlEMjAwMjhBNjE1IC8qIHByb3h5X2luZm8uaCAqLywKQEAgLTg0NTMsMTAgKzg1MTEsMTAg
QEAKIAkJCQk0MTMxQzBERDIzNEI4OURDMDAyOEE2MTUgLyogcmVmX2NvdW50ZWRfb2JqZWN0Lmgg
Ki8sCiAJCQkJNDEzMUMwQkEyMzRCODlENjAwMjhBNjE1IC8qIHJlZl9jb3VudGVyLmggKi8sCiAJ
CQkJNDEzMUMwQjUyMzRCODlENTAwMjhBNjE1IC8qIHJvbGxpbmdfYWNjdW11bGF0b3IuaCAqLywK
LQkJCQk0MTMxQzBFRjIzNEI4OURGMDAyOEE2MTUgLyogcnRjX2NlcnRpZmljYXRlX2dlbmVyYXRv
ci5jYyAqLywKLQkJCQk0MTMxQzBDMDIzNEI4OUQ3MDAyOEE2MTUgLyogcnRjX2NlcnRpZmljYXRl
X2dlbmVyYXRvci5oICovLAogCQkJCTQxMzFDMENDMjM0Qjg5RDkwMDI4QTYxNSAvKiBydGNfY2Vy
dGlmaWNhdGUuY2MgKi8sCiAJCQkJNDEzMUMwQTMyMzRCODlEMjAwMjhBNjE1IC8qIHJ0Y19jZXJ0
aWZpY2F0ZS5oICovLAorCQkJCTQxMzFDMEVGMjM0Qjg5REYwMDI4QTYxNSAvKiBydGNfY2VydGlm
aWNhdGVfZ2VuZXJhdG9yLmNjICovLAorCQkJCTQxMzFDMEMwMjM0Qjg5RDcwMDI4QTYxNSAvKiBy
dGNfY2VydGlmaWNhdGVfZ2VuZXJhdG9yLmggKi8sCiAJCQkJNDEzMUMwQkIyMzRCODlENjAwMjhB
NjE1IC8qIHNhbml0aXplci5oICovLAogCQkJCTQxMzFDMDlFMjM0Qjg5RDEwMDI4QTYxNSAvKiBz
ZXJ2ZXJfc29ja2V0X2FkYXB0ZXJzLmNjICovLAogCQkJCTQxMzFDMENCMjM0Qjg5RDgwMDI4QTYx
NSAvKiBzZXJ2ZXJfc29ja2V0X2FkYXB0ZXJzLmggKi8sCkBAIC04NDY1LDE4ICs4NTIzLDE4IEBA
CiAJCQkJNDEzMUMwOTAyMzRCODlDRjAwMjhBNjE1IC8qIHNpZ3Nsb3RfcmVwZWF0ZXIuaCAqLywK
IAkJCQk0MTMxQzA5RjIzNEI4OUQyMDAyOEE2MTUgLyogc2lnc2xvdF90ZXN0ZXIuaCAqLywKIAkJ
CQk0MTMxQzA5NjIzNEI4OUQwMDAyOEE2MTUgLyogc2lnc2xvdHRlc3Rlci5oLnB1bXAgKi8sCisJ
CQkJNDEzMUMwRDAyMzRCODlEOTAwMjhBNjE1IC8qIHNvY2tldC5jYyAqLywKKwkJCQk0MTMxQzBB
QzIzNEI4OUQzMDAyOEE2MTUgLyogc29ja2V0LmggKi8sCiAJCQkJNDEzMUMwREIyMzRCODlEQzAw
MjhBNjE1IC8qIHNvY2tldF9hZGFwdGVycy5jYyAqLywKIAkJCQk0MTMxQzBDNTIzNEI4OUQ3MDAy
OEE2MTUgLyogc29ja2V0X2FkYXB0ZXJzLmggKi8sCi0JCQkJNDEzMUMwOTUyMzRCODlEMDAwMjhB
NjE1IC8qIHNvY2tldF9hZGRyZXNzX3BhaXIuY2MgKi8sCi0JCQkJNDEzMUMwRTEyMzRCODlERDAw
MjhBNjE1IC8qIHNvY2tldF9hZGRyZXNzX3BhaXIuaCAqLywKIAkJCQk0MTMxQzBBMTIzNEI4OUQy
MDAyOEE2MTUgLyogc29ja2V0X2FkZHJlc3MuY2MgKi8sCiAJCQkJNDEzMUMwQzQyMzRCODlENzAw
MjhBNjE1IC8qIHNvY2tldF9hZGRyZXNzLmggKi8sCisJCQkJNDEzMUMwOTUyMzRCODlEMDAwMjhB
NjE1IC8qIHNvY2tldF9hZGRyZXNzX3BhaXIuY2MgKi8sCisJCQkJNDEzMUMwRTEyMzRCODlERDAw
MjhBNjE1IC8qIHNvY2tldF9hZGRyZXNzX3BhaXIuaCAqLywKIAkJCQk0MTMxQzBCMzIzNEI4OUQ1
MDAyOEE2MTUgLyogc29ja2V0X2ZhY3RvcnkuaCAqLywKIAkJCQk0MTMxQzBFNjIzNEI4OUREMDAy
OEE2MTUgLyogc29ja2V0X3NlcnZlci5oICovLAogCQkJCTQxMzFDMEUyMjM0Qjg5REQwMDI4QTYx
NSAvKiBzb2NrZXRfc3RyZWFtLmNjICovLAogCQkJCTQxMzFDMEE5MjM0Qjg5RDMwMDI4QTYxNSAv
KiBzb2NrZXRfc3RyZWFtLmggKi8sCi0JCQkJNDEzMUMwRDAyMzRCODlEOTAwMjhBNjE1IC8qIHNv
Y2tldC5jYyAqLywKLQkJCQk0MTMxQzBBQzIzNEI4OUQzMDAyOEE2MTUgLyogc29ja2V0LmggKi8s
CiAJCQkJNDEzMUMwRTMyMzRCODlERDAwMjhBNjE1IC8qIHNzbF9hZGFwdGVyLmNjICovLAogCQkJ
CTQxMzFDMEMzMjM0Qjg5RDcwMDI4QTYxNSAvKiBzc2xfYWRhcHRlci5oICovLAogCQkJCTQxMzFD
MEQ2MjM0Qjg5REIwMDI4QTYxNSAvKiBzc2xfY2VydGlmaWNhdGUuY2MgKi8sCkBAIC04NDk3LDI0
ICs4NTU1LDE4IEBACiAJCQkJNDEzMUMwRjUyMzRCODlFMTAwMjhBNjE1IC8qIHN0cmluZ191dGls
cy5jYyAqLywKIAkJCQk0MTMxQzBDNjIzNEI4OUQ4MDAyOEE2MTUgLyogc3RyaW5nX3V0aWxzLmgg
Ki8sCiAJCQkJNDEzMUMwQjkyMzRCODlENjAwMjhBNjE1IC8qIHN0cmluZ2l6ZV9tYWNyb3MuaCAq
LywKLQkJCQk0MUREQjI2NzIxMjY3OUFFMDAyOTZENDcgLyogc3RyaW5ncyAqLywKIAkJCQk0MTMx
QzA5QjIzNEI4OUQxMDAyOEE2MTUgLyogc3dhcF9xdWV1ZS5oICovLAotCQkJCTQxOTI0MTVDMjEy
NzM3OTIwMDYzNEZDRiAvKiBzeW5jaHJvbml6YXRpb24gKi8sCi0JCQkJNDFGMjYzQTIyMTI2ODA4
ODAwMjc0RjU5IC8qIHN5c3RlbSAqLywKKwkJCQk0MTMxQzBDQTIzNEI4OUQ4MDAyOEE2MTUgLyog
dGFza19xdWV1ZS5jYyAqLywKKwkJCQk0MTMxQzBENzIzNEI4OURCMDAyOEE2MTUgLyogdGFza19x
dWV1ZS5oICovLAogCQkJCTQxMzFDNTY4MjM0Q0JCNDgwMDI4QTYxNSAvKiB0YXNrX3F1ZXVlX2xp
YmV2ZW50LmNjICovLAogCQkJCTQxMzFDNTY3MjM0Q0JCNDgwMDI4QTYxNSAvKiB0YXNrX3F1ZXVl
X2xpYmV2ZW50LmggKi8sCiAJCQkJNDEzMUM0RjEyMzRDODYzOTAwMjhBNjE1IC8qIHRhc2tfcXVl
dWVfc3RkbGliLmNjICovLAogCQkJCTQxMzFDNEYwMjM0Qzg2MzgwMDI4QTYxNSAvKiB0YXNrX3F1
ZXVlX3N0ZGxpYi5oICovLAotCQkJCTQxMzFDMENBMjM0Qjg5RDgwMDI4QTYxNSAvKiB0YXNrX3F1
ZXVlLmNjICovLAotCQkJCTQxMzFDMEQ3MjM0Qjg5REIwMDI4QTYxNSAvKiB0YXNrX3F1ZXVlLmgg
Ki8sCi0JCQkJNDEzMUM0RTEyMzRDODUwNDAwMjhBNjE1IC8qIHRhc2tfdXRpbHMgKi8sCiAJCQkJ
NDEzMUMwQzEyMzRCODlENzAwMjhBNjE1IC8qIHRlbXBsYXRlX3V0aWwuaCAqLywKLQkJCQk0MUYy
NjNCNDIxMjY4MEU4MDAyNzRGNTkgLyogdGhpcmRfcGFydHkgKi8sCi0JCQkJNDEzMUMwRTkyMzRC
ODlERTAwMjhBNjE1IC8qIHRocmVhZF9hbm5vdGF0aW9ucy5oICovLAotCQkJCTQxMzFDMENGMjM0
Qjg5RDkwMDI4QTYxNSAvKiB0aHJlYWRfY2hlY2tlci5oICovLAogCQkJCTQxMzFDMEI0MjM0Qjg5
RDUwMDI4QTYxNSAvKiB0aHJlYWQuY2MgKi8sCiAJCQkJNDEzMUMwQkMyMzRCODlENjAwMjhBNjE1
IC8qIHRocmVhZC5oICovLAotCQkJCTQxOTI0MTdBMjEyNzM5MEMwMDYzNEZDRiAvKiB0aW1lICov
LAorCQkJCTQxMzFDMEU5MjM0Qjg5REUwMDI4QTYxNSAvKiB0aHJlYWRfYW5ub3RhdGlvbnMuaCAq
LywKKwkJCQk0MTMxQzBDRjIzNEI4OUQ5MDAyOEE2MTUgLyogdGhyZWFkX2NoZWNrZXIuaCAqLywK
IAkJCQk0MTMxQzBERTIzNEI4OURDMDAyOEE2MTUgLyogdGltZV91dGlscy5jYyAqLywKIAkJCQk0
MTMxQzBBRDIzNEI4OUQ0MDAyOEE2MTUgLyogdGltZV91dGlscy5oICovLAogCQkJCTQxMzFDMEM3
MjM0Qjg5RDgwMDI4QTYxNSAvKiB0aW1lc3RhbXBfYWxpZ25lci5jYyAqLywKQEAgLTg5MjksMjAg
Kzg5ODEsMzMgQEAKIAkJCQk0MTc5NTNCMjIxNjk4MjQxMDAyODI2NkIgLyogUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY0K1ByaXZhdGUuaCAqLywKIAkJCQk0MTYyMjVGMTIxNjk4MUYzMDBBOTFDOUIg
LyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0LmggKi8sCiAJCQkJNDE2MjI1RUQyMTY5ODFGMjAw
QTkxQzlCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NC5tbSAqLywKKwkJCQk0MTc3RjUwMjIz
ODBFODQ2MDBDMDQ0ODYgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCAqLywK
KwkJCQk0MTc3RjUwODIzODBFODQ3MDBDMDQ0ODYgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1
LmggKi8sCisJCQkJNDE3N0Y1MDMyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NS5tbSAqLywKIAkJCQk0MTc5NTNCMzIxNjk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVs
dFZpZGVvRGVjb2RlckZhY3RvcnkuaCAqLywKIAkJCQk0MTc5NTNBRDIxNjk4MjNFMDAyODI2NkIg
LyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSAqLywKIAkJCQk0MTYyMjVGNzIxNjk4
MUY0MDBBOTFDOUIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaCAqLywKIAkJCQk0
MTc5NTNBRjIxNjk4MjNGMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnku
bSAqLywKIAkJCQk0MTE1MjFENDIxNjk4MjFGMDAwQUJBRjcgLyogUlRDSDI2NFByb2ZpbGVMZXZl
bElkLmggKi8sCiAJCQkJNDExNTIxRDYyMTY5ODIyMDAwMEFCQUY3IC8qIFJUQ0gyNjRQcm9maWxl
TGV2ZWxJZC5tbSAqLywKKwkJCQk0MTc3RjUwQjIzODBFODQ3MDBDMDQ0ODYgLyogUlRDSDI2NVBy
b2ZpbGVMZXZlbElkLmggKi8sCisJCQkJNDE3N0Y1MDUyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ0gy
NjVQcm9maWxlTGV2ZWxJZC5tbSAqLywKIAkJCQk0MTYyMjVGMjIxNjk4MUYzMDBBOTFDOUIgLyog
UlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQuaCAqLywKIAkJCQk0MTc5NTNCMDIxNjk4MjQwMDAy
ODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQubSAqLywKKwkJCQk0MTc3RjUwQzIz
ODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUuaCAqLywKKwkJCQk0
MTc3RjUwQTIzODBFODQ3MDBDMDQ0ODYgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUubSAq
LywKIAkJCQk0MTYyMjVGMzIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5o
ICovLAogCQkJCTQxNjIyNUY0MjE2OTgxRjMwMEE5MUM5QiAvKiBSVENWaWRlb0RlY29kZXJIMjY0
Lm1tICovLAorCQkJCTQxNzdGNTA2MjM4MEU4NDcwMEMwNDQ4NiAvKiBSVENWaWRlb0RlY29kZXJI
MjY1LmggKi8sCisJCQkJNDE3N0Y1MDQyMzgwRTg0NjAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2Rl
ckgyNjUubW0gKi8sCiAJCQkJNDE2MjI1RUYyMTY5ODFGMjAwQTkxQzlCIC8qIFJUQ1ZpZGVvRW5j
b2RlckZhY3RvcnlIMjY0LmggKi8sCiAJCQkJNDE3OTUzQjEyMTY5ODI0MDAwMjgyNjZCIC8qIFJU
Q1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0Lm0gKi8sCisJCQkJNDE3N0Y1MEUyMzgwRTg0ODAwQzA0
NDg2IC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY1LmggKi8sCisJCQkJNDE3N0Y1MDcyMzgw
RTg0NzAwQzA0NDg2IC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY1Lm0gKi8sCiAJCQkJNDE2
MjI1RUMyMTY5ODFGMjAwQTkxQzlCIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjQuaCAqLywKIAkJCQk0
MTYyMjVGNjIxNjk4MUY0MDBBOTFDOUIgLyogUlRDVmlkZW9FbmNvZGVySDI2NC5tbSAqLywKKwkJ
CQk0MTc3RjUwRDIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5oICovLAor
CQkJCTQxNzdGNTA5MjM4MEU4NDcwMEMwNDQ4NiAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1tICov
LAogCQkJCTQxNjIyNUVFMjE2OTgxRjIwMEE5MUM5QiAvKiBVSURldmljZStIMjY0UHJvZmlsZS5o
ICovLAogCQkJCTQxNzk1M0FFMjE2OTgyM0YwMDI4MjY2QiAvKiBVSURldmljZStIMjY0UHJvZmls
ZS5tbSAqLywKIAkJCSk7CkBAIC04OTY2LDYgKzkwMzEsMjEgQEAKIAkJCXBhdGggPSBlbmNvZGVy
L3g4NjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTQxNzdGNEU1MjM4MEU3
QzEwMEMwNDQ4NiAvKiBoMjY1ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQk0MTc3RjRFNjIzODBFN0Q2MDBDMDQ0ODYgLyogaDI2NV9jb21tb24uY2MgKi8s
CisJCQkJNDE3N0Y0RUEyMzgwRTdENjAwQzA0NDg2IC8qIGgyNjVfY29tbW9uLmggKi8sCisJCQkJ
NDE3N0Y0RTcyMzgwRTdENjAwQzA0NDg2IC8qIGgyNjVfcHBzX3BhcnNlci5jYyAqLywKKwkJCQk0
MTc3RjRFQjIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2NV9wcHNfcGFyc2VyLmggKi8sCisJCQkJNDE3
N0Y0RUQyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLywKKwkJCQk0MTc3
RjRFQzIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmggKi8sCisJCQkJNDE3N0Y0
RTkyMzgwRTdENjAwQzA0NDg2IC8qIGgyNjVfdnBzX3BhcnNlci5jYyAqLywKKwkJCQk0MTc3RjRF
ODIzODBFN0Q2MDBDMDQ0ODYgLyogaDI2NV92cHNfcGFyc2VyLmggKi8sCisJCQkpOworCQkJbmFt
ZSA9IGgyNjU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk0MTc5NTNERDIx
Njk4M0IyMDAyODI2NkIgLyogaW5jbHVkZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC05MTY1LDE0ICs5MjQ1LDE0IEBACiAJCTQxOTI0MTVDMjEyNzM3OTIw
MDYzNEZDRiAvKiBzeW5jaHJvbml6YXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAotCQkJCTQxMzFDNEZBMjM0Qzg2Q0EwMDI4QTYxNSAvKiBzZXF1ZW5jZV9j
aGVja2VyLmNjICovLAotCQkJCTQxMzFDNEZDMjM0Qzg2Q0EwMDI4QTYxNSAvKiBzZXF1ZW5jZV9j
aGVja2VyLmggKi8sCi0JCQkJNDEzMUM0RkIyMzRDODZDQTAwMjhBNjE1IC8qIHlpZWxkX3BvbGlj
eS5jYyAqLywKLQkJCQk0MTMxQzRGOTIzNEM4NkNBMDAyOEE2MTUgLyogeWllbGRfcG9saWN5Lmgg
Ki8sCiAJCQkJNDE5MjQxNjAyMTI3Mzg1QjAwNjM0RkNGIC8qIHJ3X2xvY2tfcG9zaXguY2MgKi8s
CiAJCQkJNDE5MjQxNUUyMTI3Mzg1QjAwNjM0RkNGIC8qIHJ3X2xvY2tfcG9zaXguaCAqLywKIAkJ
CQk0MTkyNDE1RDIxMjczODVBMDA2MzRGQ0YgLyogcndfbG9ja193cmFwcGVyLmNjICovLAogCQkJ
CTQxOTI0MTVGMjEyNzM4NUIwMDYzNEZDRiAvKiByd19sb2NrX3dyYXBwZXIuaCAqLywKKwkJCQk0
MTMxQzRGQTIzNEM4NkNBMDAyOEE2MTUgLyogc2VxdWVuY2VfY2hlY2tlci5jYyAqLywKKwkJCQk0
MTMxQzRGQzIzNEM4NkNBMDAyOEE2MTUgLyogc2VxdWVuY2VfY2hlY2tlci5oICovLAorCQkJCTQx
MzFDNEZCMjM0Qzg2Q0EwMDI4QTYxNSAvKiB5aWVsZF9wb2xpY3kuY2MgKi8sCisJCQkJNDEzMUM0
RjkyMzRDODZDQTAwMjhBNjE1IC8qIHlpZWxkX3BvbGljeS5oICovLAogCQkJKTsKIAkJCW5hbWUg
PSBzeW5jaHJvbml6YXRpb247CiAJCQlwYXRoID0gcnRjX2Jhc2Uvc3luY2hyb25pemF0aW9uOwpA
QCAtOTE4MSw2ICs5MjYxLDggQEAKIAkJNDE5MjQxNjUyMTI3Mzg3OTAwNjM0RkNGIC8qIGV4cGVy
aW1lbnRzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0
MTMxQzIyMjIzNEI4QkIxMDAyOEE2MTUgLyogREVQUyAqLywKKwkJCQk0MTMxQzIwMjIzNEI4QkE4
MDAyOEE2MTUgLyogT1dORVJTICovLAogCQkJCTQxMzFDMjA2MjM0QjhCQTkwMDI4QTYxNSAvKiBh
bHJfZXhwZXJpbWVudC5jYyAqLywKIAkJCQk0MTMxQzIwMzIzNEI4QkE4MDAyOEE2MTUgLyogYXVk
aW9fYWxsb2NhdGlvbl9zZXR0aW5ncy5jYyAqLywKIAkJCQk0MTMxQzIxRjIzNEI4QkIwMDAyOEE2
MTUgLyogYXVkaW9fYWxsb2NhdGlvbl9zZXR0aW5ncy5oICovLApAQCAtOTE4OCw3ICs5MjcwLDYg
QEAKIAkJCQk0MTMxQzIwQjIzNEI4QkFBMDAyOEE2MTUgLyogYmFsYW5jZWRfZGVncmFkYXRpb25f
c2V0dGluZ3MuaCAqLywKIAkJCQk0MTMxQzFGQTIzNEI4QkE2MDAyOEE2MTUgLyogQlVJTEQuZ24g
Ki8sCiAJCQkJNDEzMUMxRjkyMzRCOEJBNTAwMjhBNjE1IC8qIGNwdV9zcGVlZF9leHBlcmltZW50
LmNjICovLAotCQkJCTQxMzFDMjIyMjM0QjhCQjEwMDI4QTYxNSAvKiBERVBTICovLAogCQkJCTQx
MzFDMUY2MjM0QjhCQTUwMDI4QTYxNSAvKiBleHBlcmltZW50YWxfc2NyZWVuc2hhcmVfc2V0dGlu
Z3MuY2MgKi8sCiAJCQkJNDEzMUMyMUEyMzRCOEJBRjAwMjhBNjE1IC8qIGV4cGVyaW1lbnRhbF9z
Y3JlZW5zaGFyZV9zZXR0aW5ncy5oICovLAogCQkJCTQxMzFDMjA0MjM0QjhCQTgwMDI4QTYxNSAv
KiBmaWVsZF90cmlhbF9saXN0LmNjICovLApAQCAtOTE5OSw3ICs5MjgwLDYgQEAKIAkJCQk0MTMx
QzIwOTIzNEI4QkFBMDAyOEE2MTUgLyoga2V5ZnJhbWVfaW50ZXJ2YWxfc2V0dGluZ3MuY2MgKi8s
CiAJCQkJNDEzMUMxRkMyMzRCOEJBNjAwMjhBNjE1IC8qIGtleWZyYW1lX2ludGVydmFsX3NldHRp
bmdzLmggKi8sCiAJCQkJNDEzMUMyMEMyMzRCOEJBQjAwMjhBNjE1IC8qIG5vcm1hbGl6ZV9zaW11
bGNhc3Rfc2l6ZV9leHBlcmltZW50LmNjICovLAotCQkJCTQxMzFDMjAyMjM0QjhCQTgwMDI4QTYx
NSAvKiBPV05FUlMgKi8sCiAJCQkJNDEzMUMyMTQyMzRCOEJBRDAwMjhBNjE1IC8qIHF1YWxpdHlf
c2NhbGVyX3NldHRpbmdzLmNjICovLAogCQkJCTQxMzFDMjA4MjM0QjhCQTkwMDI4QTYxNSAvKiBx
dWFsaXR5X3NjYWxlcl9zZXR0aW5ncy5oICovLAogCQkJCTQxMzFDMjFFMjM0QjhCQjAwMDI4QTYx
NSAvKiBxdWFsaXR5X3NjYWxpbmdfZXhwZXJpbWVudC5jYyAqLywKQEAgLTkzMTUsMTUgKzkzOTUs
MTUgQEAKIAkJNDE5QzgyRTcxRkUyMEU3RDAwNDBDMzBGIC8qIG9wdXMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTQxMzFDM0Y0MjM0QzdCMDIwMDI4QTYx
NSAvKiBhdWRpb19kZWNvZGVyX211bHRpX2NoYW5uZWxfb3B1c19jb25maWcuaCAqLywKIAkJCQk0
MTMxQzNGMjIzNEM3QjAyMDAyOEE2MTUgLyogYXVkaW9fZGVjb2Rlcl9tdWx0aV9jaGFubmVsX29w
dXMuY2MgKi8sCiAJCQkJNDEzMUMzRjYyMzRDN0IwMzAwMjhBNjE1IC8qIGF1ZGlvX2RlY29kZXJf
bXVsdGlfY2hhbm5lbF9vcHVzLmggKi8sCi0JCQkJNDEzMUMzRjUyMzRDN0IwMzAwMjhBNjE1IC8q
IGF1ZGlvX2VuY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzX2NvbmZpZy5jYyAqLywKLQkJCQk0MTMx
QzNGMTIzNEM3QjAyMDAyOEE2MTUgLyogYXVkaW9fZW5jb2Rlcl9tdWx0aV9jaGFubmVsX29wdXNf
Y29uZmlnLmggKi8sCi0JCQkJNDEzMUMzRjMyMzRDN0IwMjAwMjhBNjE1IC8qIGF1ZGlvX2VuY29k
ZXJfbXVsdGlfY2hhbm5lbF9vcHVzLmNjICovLAotCQkJCTQxMzFDM0YwMjM0QzdCMDIwMDI4QTYx
NSAvKiBhdWRpb19lbmNvZGVyX211bHRpX2NoYW5uZWxfb3B1cy5oICovLAorCQkJCTQxMzFDM0Y0
MjM0QzdCMDIwMDI4QTYxNSAvKiBhdWRpb19kZWNvZGVyX211bHRpX2NoYW5uZWxfb3B1c19jb25m
aWcuaCAqLywKIAkJCQk0MTlDODJFRTFGRTIwRUI0MDA0MEMzMEYgLyogYXVkaW9fZGVjb2Rlcl9v
cHVzLmNjICovLAogCQkJCTQxOUM4MkVDMUZFMjBFQjQwMDQwQzMwRiAvKiBhdWRpb19kZWNvZGVy
X29wdXMuaCAqLywKKwkJCQk0MTMxQzNGMzIzNEM3QjAyMDAyOEE2MTUgLyogYXVkaW9fZW5jb2Rl
cl9tdWx0aV9jaGFubmVsX29wdXMuY2MgKi8sCisJCQkJNDEzMUMzRjAyMzRDN0IwMjAwMjhBNjE1
IC8qIGF1ZGlvX2VuY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzLmggKi8sCisJCQkJNDEzMUMzRjUy
MzRDN0IwMzAwMjhBNjE1IC8qIGF1ZGlvX2VuY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzX2NvbmZp
Zy5jYyAqLywKKwkJCQk0MTMxQzNGMTIzNEM3QjAyMDAyOEE2MTUgLyogYXVkaW9fZW5jb2Rlcl9t
dWx0aV9jaGFubmVsX29wdXNfY29uZmlnLmggKi8sCiAJCQkJNDE5QzgyRUYxRkUyMEVCNTAwNDBD
MzBGIC8qIGF1ZGlvX2VuY29kZXJfb3B1cy5jYyAqLywKIAkJCQk0MTlDODJFQTFGRTIwRUI0MDA0
MEMzMEYgLyogYXVkaW9fZW5jb2Rlcl9vcHVzLmggKi8sCiAJCQkJNDE5QzgyRUQxRkUyMEVCNDAw
NDBDMzBGIC8qIGF1ZGlvX2VuY29kZXJfb3B1c19jb25maWcuY2MgKi8sCkBAIC05MzM1LDYgKzk0
MTUsNyBAQAogCQk0MTlDODMyMTFGRTI0NEZFMDA0MEMzMEYgLyogZXZlbnRzICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0MTMxQzUyNDIzNEM4QjE1MDAy
OEE2MTUgLyogcnRjX2V2ZW50LmggKi8sCiAJCQkJNDEzMUM1MkUyMzRDOEIxODAwMjhBNjE1IC8q
IHJ0Y19ldmVudF9hbHJfc3RhdGUuY2MgKi8sCiAJCQkJNDEzMUM1MUIyMzRDOEIxMzAwMjhBNjE1
IC8qIHJ0Y19ldmVudF9hbHJfc3RhdGUuaCAqLywKIAkJCQk0MTMxQzUxQTIzNEM4QjEzMDAyOEE2
MTUgLyogcnRjX2V2ZW50X2F1ZGlvX25ldHdvcmtfYWRhcHRhdGlvbi5jYyAqLywKQEAgLTkzNzks
NyArOTQ2MCw2IEBACiAJCQkJNDEzMUM1MjIyMzRDOEIxNTAwMjhBNjE1IC8qIHJ0Y19ldmVudF92
aWRlb19yZWNlaXZlX3N0cmVhbV9jb25maWcuaCAqLywKIAkJCQk0MTMxQzUyNzIzNEM4QjE2MDAy
OEE2MTUgLyogcnRjX2V2ZW50X3ZpZGVvX3NlbmRfc3RyZWFtX2NvbmZpZy5jYyAqLywKIAkJCQk0
MTMxQzUyNjIzNEM4QjE2MDAyOEE2MTUgLyogcnRjX2V2ZW50X3ZpZGVvX3NlbmRfc3RyZWFtX2Nv
bmZpZy5oICovLAotCQkJCTQxMzFDNTI0MjM0QzhCMTUwMDI4QTYxNSAvKiBydGNfZXZlbnQuaCAq
LywKIAkJCSk7CiAJCQluYW1lID0gZXZlbnRzOwogCQkJcGF0aCA9IHJ0Y19ldmVudF9sb2cvZXZl
bnRzOwpAQCAtOTQ1MCw5ICs5NTMwLDkgQEAKIAkJCQk0MTlDODNCQzFGRTI0N0IzMDA0MEMzMEYg
LyogcnRwX2N2by5oICovLAogCQkJCTQxOUM4M0I3MUZFMjQ3QjIwMDQwQzMwRiAvKiBydHBfaGVh
ZGVyX2V4dGVuc2lvbl9tYXAuaCAqLywKIAkJCQk0MTMxQzRFQTIzNEM4NjExMDAyOEE2MTUgLyog
cnRwX3BhY2tldF9zZW5kZXIuaCAqLywKKwkJCQk0MTlDODNCNjFGRTI0N0IxMDA0MEMzMEYgLyog
cnRwX3J0Y3AuaCAqLywKIAkJCQk0MTlDODNDMDFGRTI0N0I0MDA0MEMzMEYgLyogcnRwX3J0Y3Bf
ZGVmaW5lcy5jYyAqLywKIAkJCQk0MTlDODNCQjFGRTI0N0IzMDA0MEMzMEYgLyogcnRwX3J0Y3Bf
ZGVmaW5lcy5oICovLAotCQkJCTQxOUM4M0I2MUZFMjQ3QjEwMDQwQzMwRiAvKiBydHBfcnRjcC5o
ICovLAogCQkJCTQxOUM4M0I5MUZFMjQ3QjIwMDQwQzMwRiAvKiB1bHBmZWNfcmVjZWl2ZXIuaCAq
LywKIAkJCSk7CiAJCQluYW1lID0gaW5jbHVkZTsKQEAgLTEwMTI2LDYgKzEwMjA2LDggQEAKIAkJ
NDFFMDJDQzYyMTI3MzU5RjAwQzI3Q0Q2IC8qIHRyYW5zcG9ydCAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNDEzMUM0QTcyMzRDODM2NjAwMjhBNjE1IC8q
IG1lZGlhICovLAorCQkJCTQxMzFDNEIwMjM0QzgzODIwMDI4QTYxNSAvKiBydHAgKi8sCiAJCQkJ
NDFFMDJDQzcyMTI3MzVCNjAwQzI3Q0Q2IC8qIGJpdHJhdGVfc2V0dGluZ3MuY2MgKi8sCiAJCQkJ
NDFFMDJDQ0IyMTI3MzVCNzAwQzI3Q0Q2IC8qIGJpdHJhdGVfc2V0dGluZ3MuaCAqLywKIAkJCQk0
MTMxQzQ4RjIzNEM4MkVFMDAyOEE2MTUgLyogZW51bXMuaCAqLywKQEAgLTEwMTMzLDExICsxMDIx
NSw5IEBACiAJCQkJNDEzMUM0OEUyMzRDODJFRTAwMjhBNjE1IC8qIGZpZWxkX3RyaWFsX2Jhc2Vk
X2NvbmZpZy5oICovLAogCQkJCTQxRkNCQjVFMjFCMUZFQzQwMEE1REYyNyAvKiBnb29nX2NjX2Zh
Y3RvcnkuY2MgKi8sCiAJCQkJNDFGQ0JCNUQyMUIxRkVDNDAwQTVERjI3IC8qIGdvb2dfY2NfZmFj
dG9yeS5oICovLAotCQkJCTQxMzFDNEE3MjM0QzgzNjYwMDI4QTYxNSAvKiBtZWRpYSAqLywKIAkJ
CQk0MUUwMkNDQTIxMjczNUI3MDBDMjdDRDYgLyogbmV0d29ya19jb250cm9sLmggKi8sCiAJCQkJ
NDFFMDJDQzgyMTI3MzVCNzAwQzI3Q0Q2IC8qIG5ldHdvcmtfdHlwZXMuY2MgKi8sCiAJCQkJNDFF
MDJDQzkyMTI3MzVCNzAwQzI3Q0Q2IC8qIG5ldHdvcmtfdHlwZXMuaCAqLywKLQkJCQk0MTMxQzRC
MDIzNEM4MzgyMDAyOEE2MTUgLyogcnRwICovLAogCQkJKTsKIAkJCXBhdGggPSB0cmFuc3BvcnQ7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTA3MDIsOSArMTA3ODIsOSBAQAogCQkJ
CTVDREQ4MzY4MUU0Mzk5RTQwMDYyMUU5MiAvKiBtb2R1bGVzICovLAogCQkJCTVDNjNGOTg3MUU0
MTc0QkQwMDJDQTUzMSAvKiBwMnAgKi8sCiAJCQkJNUM2M0ZBMzUxRTQxNzYwODAwMkNBNTMxIC8q
IHBjICovLAotCQkJCTQxMzFDM0NCMjM0Qjk4MkEwMDI4QTYxNSAvKiBzdGF0cyAqLywKIAkJCQk0
MTNBMjE0MzFGRTE4RDAxMDAzNzNFOTkgLyogcnRjX2Jhc2UgKi8sCiAJCQkJNUM0QjRCNTcxRTQz
MUMyMDAwMjY1MUM4IC8qIHNkayAqLywKKwkJCQk0MTMxQzNDQjIzNEI5ODJBMDAyOEE2MTUgLyog
c3RhdHMgKi8sCiAJCQkJNUM2M0ZBNzMxRTQxN0FEMzAwMkNBNTMxIC8qIHN0YXRzICovLAogCQkJ
CTVDNEI0QzhCMUU0MzIwN0YwMDI2NTFDOCAvKiBzeXN0ZW1fd3JhcHBlcnMgKi8sCiAJCQkJNUNE
RDg1NTkxRTQzQjVBRTAwNjIxRTkyIC8qIHZpZGVvICovLApAQCAtMTA4NzIsOCArMTA5NTIsOCBA
QAogCQkJCTQxQTM5MjA3MUVGQzRBNzEwMEM0NTE2QSAvKiBwX2VkMjU1MTlfYXNuMS5jICovLAog
CQkJCTVDNEI0NUMxMUU0MkE4N0UwMDI2NTFDOCAvKiBwX3JzYS5jICovLAogCQkJCTVDNEI0NUMw
MUU0MkE4N0UwMDI2NTFDOCAvKiBwX3JzYV9hc24xLmMgKi8sCi0JCQkJNDEzMUJFNzYyMzRCODVB
OTAwMjhBNjE1IC8qIHBfeDI1NTE5X2FzbjEuYyAqLywKIAkJCQk0MTMxQkU3NzIzNEI4NUE5MDAy
OEE2MTUgLyogcF94MjU1MTkuYyAqLywKKwkJCQk0MTMxQkU3NjIzNEI4NUE5MDAyOEE2MTUgLyog
cF94MjU1MTlfYXNuMS5jICovLAogCQkJCTVDNEI0NUMzMUU0MkE4N0UwMDI2NTFDOCAvKiBwYmtk
Zi5jICovLAogCQkJCTVDNEI0NUM0MUU0MkE4N0UwMDI2NTFDOCAvKiBwcmludC5jICovLAogCQkJ
CTVDNEI0NUM1MUU0MkE4N0UwMDI2NTFDOCAvKiBzaWduLmMgKi8sCkBAIC0xMTE4NywxNiArMTEy
NjcsMTYgQEAKIAkJCQk0MTMxQzI1NTIzNEI4Q0JFMDAyOEE2MTUgLyogbnVsbF93ZWJydGNfdmlk
ZW9fZW5naW5lLmggKi8sCiAJCQkJNDEzMUMyNTgyMzRCOENCRTAwMjhBNjE1IC8qIHBheWxvYWRf
dHlwZV9tYXBwZXIuY2MgKi8sCiAJCQkJNDEzMUMyNEIyMzRCOENCQzAwMjhBNjE1IC8qIHBheWxv
YWRfdHlwZV9tYXBwZXIuaCAqLywKLQkJCQk0MTMxQzI2NTIzNEI4Q0MxMDAyOEE2MTUgLyogc2lt
dWxjYXN0X2VuY29kZXJfYWRhcHRlci5jYyAqLywKLQkJCQk0MTMxQzI2MzIzNEI4Q0MwMDAyOEE2
MTUgLyogc2ltdWxjYXN0X2VuY29kZXJfYWRhcHRlci5oICovLAogCQkJCTQxMzFDMjY2MjM0QjhD
QzEwMDI4QTYxNSAvKiBzaW11bGNhc3QuY2MgKi8sCiAJCQkJNDEzMUMyNzIyMzRCOENDMzAwMjhB
NjE1IC8qIHNpbXVsY2FzdC5oICovLAorCQkJCTQxMzFDMjY1MjM0QjhDQzEwMDI4QTYxNSAvKiBz
aW11bGNhc3RfZW5jb2Rlcl9hZGFwdGVyLmNjICovLAorCQkJCTQxMzFDMjYzMjM0QjhDQzAwMDI4
QTYxNSAvKiBzaW11bGNhc3RfZW5jb2Rlcl9hZGFwdGVyLmggKi8sCiAJCQkJNDEzMUMyNEYyMzRC
OENCRDAwMjhBNjE1IC8qIHVuaGFuZGxlZF9wYWNrZXRzX2J1ZmZlci5jYyAqLywKIAkJCQk0MTMx
QzI2QjIzNEI4Q0MyMDAyOEE2MTUgLyogdW5oYW5kbGVkX3BhY2tldHNfYnVmZmVyLmggKi8sCi0J
CQkJNDEzMUMyNDcyMzRCOENCQjAwMjhBNjE1IC8qIHdlYnJ0Y19tZWRpYV9lbmdpbmVfZGVmYXVs
dHMuY2MgKi8sCi0JCQkJNDEzMUMyNUUyMzRCOENCRjAwMjhBNjE1IC8qIHdlYnJ0Y19tZWRpYV9l
bmdpbmVfZGVmYXVsdHMuaCAqLywKIAkJCQk0MTMxQzI0OTIzNEI4Q0JDMDAyOEE2MTUgLyogd2Vi
cnRjX21lZGlhX2VuZ2luZS5jYyAqLywKIAkJCQk0MTMxQzI0NTIzNEI4Q0JCMDAyOEE2MTUgLyog
d2VicnRjX21lZGlhX2VuZ2luZS5oICovLAorCQkJCTQxMzFDMjQ3MjM0QjhDQkIwMDI4QTYxNSAv
KiB3ZWJydGNfbWVkaWFfZW5naW5lX2RlZmF1bHRzLmNjICovLAorCQkJCTQxMzFDMjVFMjM0QjhD
QkYwMDI4QTYxNSAvKiB3ZWJydGNfbWVkaWFfZW5naW5lX2RlZmF1bHRzLmggKi8sCiAJCQkJNDEz
MUMyNjcyMzRCOENDMTAwMjhBNjE1IC8qIHdlYnJ0Y192aWRlb19lbmdpbmUuY2MgKi8sCiAJCQkJ
NDEzMUMyNUEyMzRCOENCRjAwMjhBNjE1IC8qIHdlYnJ0Y192aWRlb19lbmdpbmUuaCAqLywKIAkJ
CQk0MTMxQzI2QzIzNEI4Q0MyMDAyOEE2MTUgLyogd2VicnRjX3ZvaWNlX2VuZ2luZS5jYyAqLywK
QEAgLTExMzg5LDEzICsxMTQ2OSwxNCBAQAogCQk1QzRCNEMwRjFFNDMxRjQ5MDAyNjUxQzggLyog
Y29tbW9uX3ZpZGVvICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
LQkJCQk0MTMxQzQzMDIzNEM3RDk2MDAyOEE2MTUgLyogZnJhbWVfcmF0ZV9lc3RpbWF0b3IuY2Mg
Ki8sCi0JCQkJNDEzMUM0MkYyMzRDN0Q5NjAwMjhBNjE1IC8qIGZyYW1lX3JhdGVfZXN0aW1hdG9y
LmggKi8sCiAJCQkJNDEzMUM0MkEyMzRDN0Q3MDAwMjhBNjE1IC8qIGdlbmVyaWNfZnJhbWVfZGVz
Y3JpcHRvciAqLywKIAkJCQk1Q0REODM0MTFFNDMyNTY0MDA2MjFFOTIgLyogaDI2NCAqLywKKwkJ
CQk0MTc3RjRFNTIzODBFN0MxMDBDMDQ0ODYgLyogaDI2NSAqLywKIAkJCQk0MTEwOUFBNDFFNUZB
MTgxMDBDMDk1NUEgLyogaW5jbHVkZSAqLywKIAkJCQk1Q0REODM2NTFFNDMyNUMyMDA2MjFFOTIg
LyogbGlieXV2ICovLAogCQkJCTVDNEI0QzEwMUU0MzFGNzUwMDI2NTFDOCAvKiBiaXRyYXRlX2Fk
anVzdGVyLmNjICovLAorCQkJCTQxMzFDNDMwMjM0QzdEOTYwMDI4QTYxNSAvKiBmcmFtZV9yYXRl
X2VzdGltYXRvci5jYyAqLywKKwkJCQk0MTMxQzQyRjIzNEM3RDk2MDAyOEE2MTUgLyogZnJhbWVf
cmF0ZV9lc3RpbWF0b3IuaCAqLywKIAkJCQk1QzRCNEMxMjFFNDMxRjc1MDAyNjUxQzggLyogaTQy
MF9idWZmZXJfcG9vbC5jYyAqLywKIAkJCQk1QzRCNEMxMzFFNDMxRjc1MDAyNjUxQzggLyogaW5j
b21pbmdfdmlkZW9fc3RyZWFtLmNjICovLAogCQkJCTVDNEI0QzE1MUU0MzFGNzUwMDI2NTFDOCAv
KiB2aWRlb19mcmFtZV9idWZmZXIuY2MgKi8sCkBAIC0xMTU4OSwyMCArMTE2NzAsMjcgQEAKIAkJ
NUM2M0Y4RTIxRTQxNzMyQjAwMkNBNTMxIC8qIGFwaSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNDEzMUMyREUyMzRCOERCRjAwMjhBNjE1IC8qIGFycmF5
X3ZpZXcuaCAqLywKLQkJCQk0MTMxQzJCQzIzNEI4REI5MDAyOEE2MTUgLyogYXN5bmNfcmVzb2x2
ZXJfZmFjdG9yeS5oICovLAogCQkJCTQxMzFDMzlBMjM0Qjk2ODQwMDI4QTYxNSAvKiBhdWRpbyAq
LywKIAkJCQk1Q0QyODUzQjFFNkE2MUJFMDA5NEZEQzggLyogYXVkaW9fY29kZWNzICovLAorCQkJ
CTVDREQ4QzQ1MUU0M0M1NzkwMDYyMUU5MiAvKiBjYWxsICovLAorCQkJCTQxMzFDM0FGMjM0Qjk2
RjkwMDI4QTYxNSAvKiBjcnlwdG8gKi8sCisJCQkJNDEzMUM0NjcyMzRDODE5NzAwMjhBNjE1IC8q
IHJ0Y19ldmVudF9sb2cgKi8sCisJCQkJNDE0NUU0QzAxRUY4OTYyODAwRkNGNkU2IC8qIHN0YXRz
ICovLAorCQkJCTQxMzFDNDdFMjM0QzgyNEQwMDI4QTYxNSAvKiB0YXNrX3F1ZXVlICovLAorCQkJ
CTQxRTAyQ0M2MjEyNzM1OUYwMEMyN0NENiAvKiB0cmFuc3BvcnQgKi8sCisJCQkJNDE5MjQxRDQy
MTI3NUExODAwNjM0RkNGIC8qIHVuaXRzICovLAorCQkJCTVDRDI4NDYwMUU2QTU3REQwMDk0RkRD
OCAvKiB2aWRlbyAqLywKKwkJCQk0MTI0NTU1ODFFRjg4QUQ5MDBGMTE4MDkgLyogdmlkZW9fY29k
ZWNzICovLAorCQkJCTQxMzFDMkRFMjM0QjhEQkYwMDI4QTYxNSAvKiBhcnJheV92aWV3LmggKi8s
CisJCQkJNDEzMUMyQkMyMzRCOERCOTAwMjhBNjE1IC8qIGFzeW5jX3Jlc29sdmVyX2ZhY3Rvcnku
aCAqLywKIAkJCQk0MTMxQzJFNzIzNEI4REMxMDAyOEE2MTUgLyogYXVkaW9fb3B0aW9ucy5jYyAq
LywKIAkJCQk0MTMxQzJDQjIzNEI4REJDMDAyOEE2MTUgLyogYXVkaW9fb3B0aW9ucy5oICovLAog
CQkJCTQxMzFDMkQ2MjM0QjhEQkUwMDI4QTYxNSAvKiBiaXRyYXRlX2NvbnN0cmFpbnRzLmggKi8s
Ci0JCQkJNUNERDhDNDUxRTQzQzU3OTAwNjIxRTkyIC8qIGNhbGwgKi8sCiAJCQkJNDEzMUMyQjky
MzRCOERCOTAwMjhBNjE1IC8qIGNhbmRpZGF0ZS5jYyAqLywKIAkJCQk0MTMxQzJENDIzNEI4REJE
MDAyOEE2MTUgLyogY2FuZGlkYXRlLmggKi8sCiAJCQkJNDEzMUMyQ0EyMzRCOERCQzAwMjhBNjE1
IC8qIGNvbmdlc3Rpb25fY29udHJvbF9pbnRlcmZhY2UuaCAqLywKIAkJCQk0MTMxQzJCNzIzNEI4
REI4MDAyOEE2MTUgLyogY3JlYXRlX3BlZXJjb25uZWN0aW9uX2ZhY3RvcnkuY2MgKi8sCiAJCQkJ
NDEzMUMyQjQyMzRCOERCODAwMjhBNjE1IC8qIGNyZWF0ZV9wZWVyY29ubmVjdGlvbl9mYWN0b3J5
LmggKi8sCi0JCQkJNDEzMUMzQUYyMzRCOTZGOTAwMjhBNjE1IC8qIGNyeXB0byAqLywKIAkJCQk0
MTMxQzJEMDIzNEI4REJEMDAyOEE2MTUgLyogY3J5cHRvX3BhcmFtcy5oICovLAogCQkJCTQxMzFD
MkQ4MjM0QjhEQkUwMDI4QTYxNSAvKiBkYXRhX2NoYW5uZWxfaW50ZXJmYWNlLmNjICovLAogCQkJ
CTQxMzFDMkVDMjM0QjhEQzIwMDI4QTYxNSAvKiBkYXRhX2NoYW5uZWxfaW50ZXJmYWNlLmggKi8s
CkBAIC0xMTYxMiwxNyArMTE3MDAsMTcgQEAKIAkJCQk0MTMxQzJDNzIzNEI4REJCMDAyOEE2MTUg
LyogZHRsc190cmFuc3BvcnRfaW50ZXJmYWNlLmNjICovLAogCQkJCTQxMzFDMkMxMjM0QjhEQkEw
MDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydF9pbnRlcmZhY2UuaCAqLywKIAkJCQk0MTMxQzJENTIz
NEI4REJFMDAyOEE2MTUgLyogZHRtZl9zZW5kZXJfaW50ZXJmYWNlLmggKi8sCi0JCQkJNDEzMUMy
RDEyMzRCOERCRDAwMjhBNjE1IC8qIGZlY19jb250cm9sbGVyX292ZXJyaWRlLmggKi8sCiAJCQkJ
NDEzMUMyRDIyMzRCOERCRDAwMjhBNjE1IC8qIGZlY19jb250cm9sbGVyLmggKi8sCisJCQkJNDEz
MUMyRDEyMzRCOERCRDAwMjhBNjE1IC8qIGZlY19jb250cm9sbGVyX292ZXJyaWRlLmggKi8sCiAJ
CQkJNDEzMUMyRTgyMzRCOERDMTAwMjhBNjE1IC8qIGZ1bmN0aW9uX3ZpZXcuaCAqLywKIAkJCQk0
MTMxQzJFMTIzNEI4REMwMDAyOEE2MTUgLyogaWNlX3RyYW5zcG9ydF9mYWN0b3J5LmNjICovLAog
CQkJCTQxMzFDMkVBMjM0QjhEQzEwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0X2ZhY3RvcnkuaCAq
LywKIAkJCQk0MTMxQzJFOTIzNEI4REMxMDAyOEE2MTUgLyogaWNlX3RyYW5zcG9ydF9pbnRlcmZh
Y2UuaCAqLywKKwkJCQk0MTMxQzJEMzIzNEI4REJEMDAyOEE2MTUgLyoganNlcC5jYyAqLywKKwkJ
CQk0MTMxQzJDMzIzNEI4REJBMDAyOEE2MTUgLyoganNlcC5oICovLAogCQkJCTQxMzFDMkJCMjM0
QjhEQjkwMDI4QTYxNSAvKiBqc2VwX2ljZV9jYW5kaWRhdGUuY2MgKi8sCiAJCQkJNDEzMUMyREYy
MzRCOERCRjAwMjhBNjE1IC8qIGpzZXBfaWNlX2NhbmRpZGF0ZS5oICovLAogCQkJCTQxMzFDMkU2
MjM0QjhEQzAwMDI4QTYxNSAvKiBqc2VwX3Nlc3Npb25fZGVzY3JpcHRpb24uaCAqLywKLQkJCQk0
MTMxQzJEMzIzNEI4REJEMDAyOEE2MTUgLyoganNlcC5jYyAqLywKLQkJCQk0MTMxQzJDMzIzNEI4
REJBMDAyOEE2MTUgLyoganNlcC5oICovLAogCQkJCTQxMzFDMkRDMjM0QjhEQkYwMDI4QTYxNSAv
KiBtZWRpYV9zdHJlYW1faW50ZXJmYWNlLmNjICovLAogCQkJCTQxMzFDMkUyMjM0QjhEQzAwMDI4
QTYxNSAvKiBtZWRpYV9zdHJlYW1faW50ZXJmYWNlLmggKi8sCiAJCQkJNDEzMUMyQ0YyMzRCOERC
QzAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbV9wcm94eS5oICovLApAQCAtMTE2NDQsMTAgKzExNzMy
LDkgQEAKIAkJCQk0MTMxQzJDNDIzNEI4REJCMDAyOEE2MTUgLyogcmVmX2NvdW50ZWRfYmFzZS5o
ICovLAogCQkJCTQxMzFDMkI2MjM0QjhEQjgwMDI4QTYxNSAvKiBydGNfZXJyb3IuY2MgKi8sCiAJ
CQkJNDEzMUMyQzUyMzRCOERCQjAwMjhBNjE1IC8qIHJ0Y19lcnJvci5oICovLAotCQkJCTQxMzFD
NDY3MjM0QzgxOTcwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nICovLAorCQkJCTQxMzFDMkNEMjM0
QjhEQkMwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nX291dHB1dC5oICovLAogCQkJCTQxMzFDMkMw
MjM0QjhEQkEwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nX291dHB1dF9maWxlLmNjICovLAogCQkJ
CTQxMzFDMkMyMjM0QjhEQkEwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nX291dHB1dF9maWxlLmgg
Ki8sCi0JCQkJNDEzMUMyQ0QyMzRCOERCQzAwMjhBNjE1IC8qIHJ0Y19ldmVudF9sb2dfb3V0cHV0
LmggKi8sCiAJCQkJNDEzMUMyQkQyMzRCOERCOTAwMjhBNjE1IC8qIHJ0cF9oZWFkZXJzLmNjICov
LAogCQkJCTQxMzFDMkRCMjM0QjhEQkYwMDI4QTYxNSAvKiBydHBfaGVhZGVycy5oICovLAogCQkJ
CTQxMzFDMkJGMjM0QjhEQkEwMDI4QTYxNSAvKiBydHBfcGFja2V0X2luZm8uY2MgKi8sCkBAIC0x
MTY2NSwxNiArMTE3NTIsMTAgQEAKIAkJCQk0MTMxQzMyQzIzNEI4RERDMDAyOEE2MTUgLyogc2N0
cF90cmFuc3BvcnRfaW50ZXJmYWNlLmNjICovLAogCQkJCTQxMzFDMzJFMjM0QjhEREMwMDI4QTYx
NSAvKiBzY3RwX3RyYW5zcG9ydF9pbnRlcmZhY2UuaCAqLywKIAkJCQk0MTMxQzMyQjIzNEI4RERC
MDAyOEE2MTUgLyogc2V0X3JlbW90ZV9kZXNjcmlwdGlvbl9vYnNlcnZlcl9pbnRlcmZhY2UuaCAq
LywKLQkJCQk0MTQ1RTRDMDFFRjg5NjI4MDBGQ0Y2RTYgLyogc3RhdHMgKi8sCiAJCQkJNDEzMUMz
MkYyMzRCOEREQzAwMjhBNjE1IC8qIHN0YXRzX3R5cGVzLmNjICovLAogCQkJCTQxMzFDMzI3MjM0
QjhEREEwMDI4QTYxNSAvKiBzdGF0c190eXBlcy5oICovLAotCQkJCTQxMzFDNDdFMjM0QzgyNEQw
MDI4QTYxNSAvKiB0YXNrX3F1ZXVlICovLAotCQkJCTQxRTAyQ0M2MjEyNzM1OUYwMEMyN0NENiAv
KiB0cmFuc3BvcnQgKi8sCiAJCQkJNDEzMUMzMkQyMzRCOEREQzAwMjhBNjE1IC8qIHR1cm5fY3Vz
dG9taXplci5oICovLAogCQkJCTQxMzFDMzM1MjM0QjhEREUwMDI4QTYxNSAvKiB1bWFfbWV0cmlj
cy5oICovLAotCQkJCTQxOTI0MUQ0MjEyNzVBMTgwMDYzNEZDRiAvKiB1bml0cyAqLywKLQkJCQk1
Q0QyODQ2MDFFNkE1N0REMDA5NEZEQzggLyogdmlkZW8gKi8sCi0JCQkJNDEyNDU1NTgxRUY4OEFE
OTAwRjExODA5IC8qIHZpZGVvX2NvZGVjcyAqLywKIAkJCQk0MTMxQzMzNzIzNEI4RERFMDAyOEE2
MTUgLyogdmlkZW9fdHJhY2tfc291cmNlX3Byb3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGFw
aTsKQEAgLTExNjk5LDE0ICsxMTc4MCwxNCBAQAogCQkJCTQxMzFDMTdGMjM0QjhBNDQwMDI4QTYx
NSAvKiBiYXNpY19wYWNrZXRfc29ja2V0X2ZhY3RvcnkuY2MgKi8sCiAJCQkJNDEzMUMxNjYyMzRC
OEE0MDAwMjhBNjE1IC8qIGJhc2ljX3BhY2tldF9zb2NrZXRfZmFjdG9yeS5oICovLAogCQkJCTQx
MzFDMTdDMjM0QjhBNDMwMDI4QTYxNSAvKiBjYW5kaWRhdGVfcGFpcl9pbnRlcmZhY2UuaCAqLywK
LQkJCQk0MTMxQzE4QTIzNEI4QTQ1MDAyOEE2MTUgLyogY29ubmVjdGlvbl9pbmZvLmNjICovLAot
CQkJCTQxMzFDMUExMjM0QjhBNDkwMDI4QTYxNSAvKiBjb25uZWN0aW9uX2luZm8uaCAqLywKIAkJ
CQk0MTMxQzE3ODIzNEI4QTQzMDAyOEE2MTUgLyogY29ubmVjdGlvbi5jYyAqLywKIAkJCQk0MTMx
QzE4NzIzNEI4QTQ1MDAyOEE2MTUgLyogY29ubmVjdGlvbi5oICovLAotCQkJCTQxMzFDMTdBMjM0
QjhBNDMwMDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydF9pbnRlcm5hbC5jYyAqLywKLQkJCQk0MTMx
QzFBMzIzNEI4QTQ5MDAyOEE2MTUgLyogZHRsc190cmFuc3BvcnRfaW50ZXJuYWwuaCAqLywKKwkJ
CQk0MTMxQzE4QTIzNEI4QTQ1MDAyOEE2MTUgLyogY29ubmVjdGlvbl9pbmZvLmNjICovLAorCQkJ
CTQxMzFDMUExMjM0QjhBNDkwMDI4QTYxNSAvKiBjb25uZWN0aW9uX2luZm8uaCAqLywKIAkJCQk0
MTMxQzFBQTIzNEI4QTRBMDAyOEE2MTUgLyogZHRsc190cmFuc3BvcnQuY2MgKi8sCiAJCQkJNDEz
MUMxN0UyMzRCOEE0NDAwMjhBNjE1IC8qIGR0bHNfdHJhbnNwb3J0LmggKi8sCisJCQkJNDEzMUMx
N0EyMzRCOEE0MzAwMjhBNjE1IC8qIGR0bHNfdHJhbnNwb3J0X2ludGVybmFsLmNjICovLAorCQkJ
CTQxMzFDMUEzMjM0QjhBNDkwMDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydF9pbnRlcm5hbC5oICov
LAogCQkJCTQxMzFDMTkyMjM0QjhBNDcwMDI4QTYxNSAvKiBmYWtlX2R0bHNfdHJhbnNwb3J0Lmgg
Ki8sCiAJCQkJNDEzMUMxNjgyMzRCOEE0MDAwMjhBNjE1IC8qIGZha2VfaWNlX3RyYW5zcG9ydC5o
ICovLAogCQkJCTQxMzFDMUE0MjM0QjhBNDkwMDI4QTYxNSAvKiBmYWtlX3BhY2tldF90cmFuc3Bv
cnQuaCAqLywKQEAgLTExNzI5LDEyICsxMTgxMCwxMiBAQAogCQkJCTQxMzFDMTY0MjM0QjhBM0Yw
MDI4QTYxNSAvKiBwYWNrZXRfdHJhbnNwb3J0X2ludGVyZmFjZS5oICovLAogCQkJCTQxMzFDMUEy
MjM0QjhBNDkwMDI4QTYxNSAvKiBwYWNrZXRfdHJhbnNwb3J0X2ludGVybmFsLmNjICovLAogCQkJ
CTQxMzFDMTg0MjM0QjhBNDUwMDI4QTYxNSAvKiBwYWNrZXRfdHJhbnNwb3J0X2ludGVybmFsLmgg
Ki8sCisJCQkJNDEzMUMxOTQyMzRCOEE0NzAwMjhBNjE1IC8qIHBvcnQuY2MgKi8sCisJCQkJNDEz
MUMxOTYyMzRCOEE0NzAwMjhBNjE1IC8qIHBvcnQuaCAqLywKIAkJCQk0MTMxQzE5OTIzNEI4QTQ4
MDAyOEE2MTUgLyogcG9ydF9hbGxvY2F0b3IuY2MgKi8sCiAJCQkJNDEzMUMxNkIyMzRCOEE0MTAw
MjhBNjE1IC8qIHBvcnRfYWxsb2NhdG9yLmggKi8sCiAJCQkJNDEzMUMxQTAyMzRCOEE0OTAwMjhB
NjE1IC8qIHBvcnRfaW50ZXJmYWNlLmNjICovLAogCQkJCTQxMzFDMTgyMjM0QjhBNDQwMDI4QTYx
NSAvKiBwb3J0X2ludGVyZmFjZS5oICovLAotCQkJCTQxMzFDMTk0MjM0QjhBNDcwMDI4QTYxNSAv
KiBwb3J0LmNjICovLAotCQkJCTQxMzFDMTk2MjM0QjhBNDcwMDI4QTYxNSAvKiBwb3J0LmggKi8s
CiAJCQkJNDEzMUMxOEIyMzRCOEE0NjAwMjhBNjE1IC8qIHBzZXVkb190Y3AuY2MgKi8sCiAJCQkJ
NDEzMUMxNzMyMzRCOEE0MjAwMjhBNjE1IC8qIHBzZXVkb190Y3AuaCAqLywKIAkJCQk0MTMxQzE2
NzIzNEI4QTQwMDAyOEE2MTUgLyogcmVnYXRoZXJpbmdfY29udHJvbGxlci5jYyAqLywKQEAgLTEx
NzQzLDIwICsxMTgyNCwyMCBAQAogCQkJCTQxMzFDMTY5MjM0QjhBNDAwMDI4QTYxNSAvKiByZWxh
eV9wb3J0LmggKi8sCiAJCQkJNDEzMUMxOUYyMzRCOEE0ODAwMjhBNjE1IC8qIHJlbGF5X3NlcnZl
ci5jYyAqLywKIAkJCQk0MTMxQzE3MDIzNEI4QTQxMDAyOEE2MTUgLyogcmVsYXlfc2VydmVyLmgg
Ki8sCisJCQkJNDEzMUMxNzYyMzRCOEE0MzAwMjhBNjE1IC8qIHN0dW4uY2MgKi8sCisJCQkJNDEz
MUMxOTAyMzRCOEE0NjAwMjhBNjE1IC8qIHN0dW4uaCAqLywKIAkJCQk0MTMxQzE5ODIzNEI4QTQ3
MDAyOEE2MTUgLyogc3R1bl9wb3J0LmNjICovLAogCQkJCTQxMzFDMTk1MjM0QjhBNDcwMDI4QTYx
NSAvKiBzdHVuX3BvcnQuaCAqLywKIAkJCQk0MTMxQzE4MDIzNEI4QTQ0MDAyOEE2MTUgLyogc3R1
bl9yZXF1ZXN0LmNjICovLAogCQkJCTQxMzFDMTc0MjM0QjhBNDIwMDI4QTYxNSAvKiBzdHVuX3Jl
cXVlc3QuaCAqLywKIAkJCQk0MTMxQzE4RDIzNEI4QTQ2MDAyOEE2MTUgLyogc3R1bl9zZXJ2ZXIu
Y2MgKi8sCiAJCQkJNDEzMUMxOUMyMzRCOEE0ODAwMjhBNjE1IC8qIHN0dW5fc2VydmVyLmggKi8s
Ci0JCQkJNDEzMUMxNzYyMzRCOEE0MzAwMjhBNjE1IC8qIHN0dW4uY2MgKi8sCi0JCQkJNDEzMUMx
OTAyMzRCOEE0NjAwMjhBNjE1IC8qIHN0dW4uaCAqLywKIAkJCQk0MTMxQzE4MTIzNEI4QTQ0MDAy
OEE2MTUgLyogdGNwX3BvcnQuY2MgKi8sCiAJCQkJNDEzMUMxODkyMzRCOEE0NTAwMjhBNjE1IC8q
IHRjcF9wb3J0LmggKi8sCi0JCQkJNDEzMUMxNjUyMzRCOEE0MDAwMjhBNjE1IC8qIHRyYW5zcG9y
dF9kZXNjcmlwdGlvbl9mYWN0b3J5LmNjICovLAotCQkJCTQxMzFDMTk3MjM0QjhBNDcwMDI4QTYx
NSAvKiB0cmFuc3BvcnRfZGVzY3JpcHRpb25fZmFjdG9yeS5oICovLAogCQkJCTQxMzFDMTlCMjM0
QjhBNDgwMDI4QTYxNSAvKiB0cmFuc3BvcnRfZGVzY3JpcHRpb24uY2MgKi8sCiAJCQkJNDEzMUMx
N0IyMzRCOEE0MzAwMjhBNjE1IC8qIHRyYW5zcG9ydF9kZXNjcmlwdGlvbi5oICovLAorCQkJCTQx
MzFDMTY1MjM0QjhBNDAwMDI4QTYxNSAvKiB0cmFuc3BvcnRfZGVzY3JpcHRpb25fZmFjdG9yeS5j
YyAqLywKKwkJCQk0MTMxQzE5NzIzNEI4QTQ3MDAyOEE2MTUgLyogdHJhbnNwb3J0X2Rlc2NyaXB0
aW9uX2ZhY3RvcnkuaCAqLywKIAkJCQk0MTMxQzFBQjIzNEI4QTRBMDAyOEE2MTUgLyogdHJhbnNw
b3J0X2ZhY3RvcnlfaW50ZXJmYWNlLmggKi8sCiAJCQkJNDEzMUMxOUQyMzRCOEE0ODAwMjhBNjE1
IC8qIHRyYW5zcG9ydF9pbmZvLmggKi8sCiAJCQkJNDEzMUMxOTEyMzRCOEE0NjAwMjhBNjE1IC8q
IHR1cm5fcG9ydC5jYyAqLywKQEAgLTExNzcxLDE1ICsxMTg1MiwxNiBAQAogCQk1QzYzRkEzNTFF
NDE3NjA4MDAyQ0E1MzEgLyogcGMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTQxMzFCRUM1MjM0Qjg4MTkwMDI4QTYxNSAvKiBPV05FUlMgKi8sCiAJCQkJ
NDEzMUJFODEyMzRCODgwRDAwMjhBNjE1IC8qIGF1ZGlvX3J0cF9yZWNlaXZlci5jYyAqLywKIAkJ
CQk0MTMxQkVFODIzNEI4ODFFMDAyOEE2MTUgLyogYXVkaW9fcnRwX3JlY2VpdmVyLmggKi8sCiAJ
CQkJNDEzMUJFQzEyMzRCODgxODAwMjhBNjE1IC8qIGF1ZGlvX3RyYWNrLmNjICovLAogCQkJCTQx
MzFCRTkwMjM0Qjg4MTAwMDI4QTYxNSAvKiBhdWRpb190cmFjay5oICovLAorCQkJCTQxMzFCRThC
MjM0Qjg4MEYwMDI4QTYxNSAvKiBjaGFubmVsLmNjICovLAorCQkJCTQxMzFCRTk1MjM0Qjg4MTEw
MDI4QTYxNSAvKiBjaGFubmVsLmggKi8sCiAJCQkJNDEzMUJFRUEyMzRCODgxRTAwMjhBNjE1IC8q
IGNoYW5uZWxfaW50ZXJmYWNlLmggKi8sCiAJCQkJNDEzMUJFREIyMzRCODgxQzAwMjhBNjE1IC8q
IGNoYW5uZWxfbWFuYWdlci5jYyAqLywKIAkJCQk0MTMxQkVFMzIzNEI4ODFEMDAyOEE2MTUgLyog
Y2hhbm5lbF9tYW5hZ2VyLmggKi8sCi0JCQkJNDEzMUJFOEIyMzRCODgwRjAwMjhBNjE1IC8qIGNo
YW5uZWwuY2MgKi8sCi0JCQkJNDEzMUJFOTUyMzRCODgxMTAwMjhBNjE1IC8qIGNoYW5uZWwuaCAq
LywKIAkJCQk0MTMxQkU5RTIzNEI4ODEyMDAyOEE2MTUgLyogY29tcG9zaXRlX3J0cF90cmFuc3Bv
cnQuY2MgKi8sCiAJCQkJNDEzMUJFQzQyMzRCODgxODAwMjhBNjE1IC8qIGNvbXBvc2l0ZV9ydHBf
dHJhbnNwb3J0LmggKi8sCiAJCQkJNDEzMUJFQjEyMzRCODgxNTAwMjhBNjE1IC8qIGRhdGFfY2hh
bm5lbC5jYyAqLywKQEAgLTExNzk4LDM1ICsxMTg4MCwzNCBAQAogCQkJCTQxMzFCRUJEMjM0Qjg4
MTcwMDI4QTYxNSAvKiBpY2Vfc2VydmVyX3BhcnNpbmcuaCAqLywKIAkJCQk0MTMxQkU5OTIzNEI4
ODExMDAyOEE2MTUgLyogaWNlX3RyYW5zcG9ydC5jYyAqLywKIAkJCQk0MTMxQkVCNjIzNEI4ODE2
MDAyOEE2MTUgLyogaWNlX3RyYW5zcG9ydC5oICovLAotCQkJCTQxMzFCRUI3MjM0Qjg4MTYwMDI4
QTYxNSAvKiBqaXR0ZXJfYnVmZmVyX2RlbGF5X2ludGVyZmFjZS5oICovLAotCQkJCTQxMzFCRUM4
MjM0Qjg4MTkwMDI4QTYxNSAvKiBqaXR0ZXJfYnVmZmVyX2RlbGF5X3Byb3h5LmggKi8sCiAJCQkJ
NDEzMUJFOTMyMzRCODgxMDAwMjhBNjE1IC8qIGppdHRlcl9idWZmZXJfZGVsYXkuY2MgKi8sCiAJ
CQkJNDEzMUJFQjIyMzRCODgxNjAwMjhBNjE1IC8qIGppdHRlcl9idWZmZXJfZGVsYXkuaCAqLywK
KwkJCQk0MTMxQkVCNzIzNEI4ODE2MDAyOEE2MTUgLyogaml0dGVyX2J1ZmZlcl9kZWxheV9pbnRl
cmZhY2UuaCAqLywKKwkJCQk0MTMxQkVDODIzNEI4ODE5MDAyOEE2MTUgLyogaml0dGVyX2J1ZmZl
cl9kZWxheV9wcm94eS5oICovLAogCQkJCTQxMzFCRUM3MjM0Qjg4MTkwMDI4QTYxNSAvKiBqc2Vw
X2ljZV9jYW5kaWRhdGUuY2MgKi8sCiAJCQkJNDEzMUJFQjUyMzRCODgxNjAwMjhBNjE1IC8qIGpz
ZXBfc2Vzc2lvbl9kZXNjcmlwdGlvbi5jYyAqLywKLQkJCQk0MTMxQkU4NzIzNEI4ODBFMDAyOEE2
MTUgLyoganNlcF90cmFuc3BvcnRfY29udHJvbGxlci5jYyAqLywKLQkJCQk0MTMxQkVCMzIzNEI4
ODE2MDAyOEE2MTUgLyoganNlcF90cmFuc3BvcnRfY29udHJvbGxlci5oICovLAogCQkJCTQxMzFC
RUQwMjM0Qjg4MUEwMDI4QTYxNSAvKiBqc2VwX3RyYW5zcG9ydC5jYyAqLywKIAkJCQk0MTMxQkVC
RjIzNEI4ODE4MDAyOEE2MTUgLyoganNlcF90cmFuc3BvcnQuaCAqLywKKwkJCQk0MTMxQkU4NzIz
NEI4ODBFMDAyOEE2MTUgLyoganNlcF90cmFuc3BvcnRfY29udHJvbGxlci5jYyAqLywKKwkJCQk0
MTMxQkVCMzIzNEI4ODE2MDAyOEE2MTUgLyoganNlcF90cmFuc3BvcnRfY29udHJvbGxlci5oICov
LAogCQkJCTQxMzFCRUQ2MjM0Qjg4MUIwMDI4QTYxNSAvKiBsb2NhbF9hdWRpb19zb3VyY2UuY2Mg
Ki8sCiAJCQkJNDEzMUJFQUUyMzRCODgxNTAwMjhBNjE1IC8qIGxvY2FsX2F1ZGlvX3NvdXJjZS5o
ICovLAogCQkJCTQxMzFCRUYxMjM0Qjg4MUYwMDI4QTYxNSAvKiBtZWRpYV9wcm90b2NvbF9uYW1l
cy5jYyAqLywKIAkJCQk0MTMxQkVEMTIzNEI4ODFCMDAyOEE2MTUgLyogbWVkaWFfcHJvdG9jb2xf
bmFtZXMuaCAqLywKIAkJCQk0MTMxQkVCQjIzNEI4ODE3MDAyOEE2MTUgLyogbWVkaWFfc2Vzc2lv
bi5jYyAqLywKIAkJCQk0MTMxQkVBQzIzNEI4ODE1MDAyOEE2MTUgLyogbWVkaWFfc2Vzc2lvbi5o
ICovLAorCQkJCTQxMzFCRUEzMjM0Qjg4MTMwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW0uY2MgKi8s
CisJCQkJNDEzMUJFQTEyMzRCODgxMzAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbS5oICovLAogCQkJ
CTQxMzFCRUIwMjM0Qjg4MTUwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW1fb2JzZXJ2ZXIuY2MgKi8s
CiAJCQkJNDEzMUJFOTcyMzRCODgxMTAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbV9vYnNlcnZlci5o
ICovLAogCQkJCTQxMzFCRUYwMjM0Qjg4MUYwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW1fdHJhY2su
aCAqLywKLQkJCQk0MTMxQkVBMzIzNEI4ODEzMDAyOEE2MTUgLyogbWVkaWFfc3RyZWFtLmNjICov
LAotCQkJCTQxMzFCRUExMjM0Qjg4MTMwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW0uaCAqLywKLQkJ
CQk0MTMxQkVDNTIzNEI4ODE5MDAyOEE2MTUgLyogT1dORVJTICovLAorCQkJCTQxMzFCRUVFMjM0
Qjg4MUYwMDI4QTYxNSAvKiBwZWVyX2Nvbm5lY3Rpb24uY2MgKi8sCisJCQkJNDEzMUJFQTgyMzRC
ODgxNDAwMjhBNjE1IC8qIHBlZXJfY29ubmVjdGlvbi5oICovLAogCQkJCTQxMzFCRUNEMjM0Qjg4
MUEwMDI4QTYxNSAvKiBwZWVyX2Nvbm5lY3Rpb25fZmFjdG9yeS5jYyAqLywKIAkJCQk0MTMxQkVB
RjIzNEI4ODE1MDAyOEE2MTUgLyogcGVlcl9jb25uZWN0aW9uX2ZhY3RvcnkuaCAqLywKIAkJCQk0
MTMxQkU4QzIzNEI4ODBGMDAyOEE2MTUgLyogcGVlcl9jb25uZWN0aW9uX2ludGVybmFsLmggKi8s
CiAJCQkJNDEzMUJFOEEyMzRCODgwRjAwMjhBNjE1IC8qIHBlZXJfY29ubmVjdGlvbl93cmFwcGVy
LmNjICovLAogCQkJCTQxMzFCRTg2MjM0Qjg4MEUwMDI4QTYxNSAvKiBwZWVyX2Nvbm5lY3Rpb25f
d3JhcHBlci5oICovLAotCQkJCTQxMzFCRUVFMjM0Qjg4MUYwMDI4QTYxNSAvKiBwZWVyX2Nvbm5l
Y3Rpb24uY2MgKi8sCi0JCQkJNDEzMUJFQTgyMzRCODgxNDAwMjhBNjE1IC8qIHBlZXJfY29ubmVj
dGlvbi5oICovLAogCQkJCTQxMzFCRUI5MjM0Qjg4MTcwMDI4QTYxNSAvKiByZW1vdGVfYXVkaW9f
c291cmNlLmNjICovLAogCQkJCTQxMzFCRThEMjM0Qjg4MEYwMDI4QTYxNSAvKiByZW1vdGVfYXVk
aW9fc291cmNlLmggKi8sCiAJCQkJNDEzMUJFQjgyMzRCODgxNzAwMjhBNjE1IC8qIHJ0Y19zdGF0
c19jb2xsZWN0b3IuY2MgKi8sCkBAIC0xMTg0NSw5ICsxMTkyNiw5IEBACiAJCQkJNDEzMUJFQUEy
MzRCODgxNDAwMjhBNjE1IC8qIHJ0cF9zZW5kZXIuaCAqLywKIAkJCQk0MTMxQkVBOTIzNEI4ODE0
MDAyOEE2MTUgLyogcnRwX3RyYW5zY2VpdmVyLmNjICovLAogCQkJCTQxMzFCRUUyMjM0Qjg4MUQw
MDI4QTYxNSAvKiBydHBfdHJhbnNjZWl2ZXIuaCAqLywKLQkJCQk0MTMxQkVBNjIzNEI4ODE0MDAy
OEE2MTUgLyogcnRwX3RyYW5zcG9ydF9pbnRlcm5hbC5oICovLAogCQkJCTQxMzFCRURGMjM0Qjg4
MUQwMDI4QTYxNSAvKiBydHBfdHJhbnNwb3J0LmNjICovLAogCQkJCTQxMzFCRUQ1MjM0Qjg4MUIw
MDI4QTYxNSAvKiBydHBfdHJhbnNwb3J0LmggKi8sCisJCQkJNDEzMUJFQTYyMzRCODgxNDAwMjhB
NjE1IC8qIHJ0cF90cmFuc3BvcnRfaW50ZXJuYWwuaCAqLywKIAkJCQk0MTMxQkU4OTIzNEI4ODBG
MDAyOEE2MTUgLyogc2N0cF90cmFuc3BvcnQuY2MgKi8sCiAJCQkJNDEzMUJFODUyMzRCODgwRTAw
MjhBNjE1IC8qIHNjdHBfdHJhbnNwb3J0LmggKi8sCiAJCQkJNDEzMUJFRUQyMzRCODgxRjAwMjhB
NjE1IC8qIHNjdHBfdXRpbHMuY2MgKi8sCkBAIC0xMTg3NiwxMCArMTE5NTcsMTAgQEAKIAkJCQk0
MTMxQkVFNTIzNEI4ODFFMDAyOEE2MTUgLyogdXNlZF9pZHMuaCAqLywKIAkJCQk0MTMxQkU5RjIz
NEI4ODEyMDAyOEE2MTUgLyogdmlkZW9fcnRwX3JlY2VpdmVyLmNjICovLAogCQkJCTQxMzFCRUND
MjM0Qjg4MUEwMDI4QTYxNSAvKiB2aWRlb19ydHBfcmVjZWl2ZXIuaCAqLywKLQkJCQk0MTMxQkU4
MDIzNEI4ODBEMDAyOEE2MTUgLyogdmlkZW9fdHJhY2tfc291cmNlLmNjICovLAotCQkJCTQxMzFC
RUQ5MjM0Qjg4MUMwMDI4QTYxNSAvKiB2aWRlb190cmFja19zb3VyY2UuaCAqLywKIAkJCQk0MTMx
QkVDMzIzNEI4ODE4MDAyOEE2MTUgLyogdmlkZW9fdHJhY2suY2MgKi8sCiAJCQkJNDEzMUJFQTAy
MzRCODgxMzAwMjhBNjE1IC8qIHZpZGVvX3RyYWNrLmggKi8sCisJCQkJNDEzMUJFODAyMzRCODgw
RDAwMjhBNjE1IC8qIHZpZGVvX3RyYWNrX3NvdXJjZS5jYyAqLywKKwkJCQk0MTMxQkVEOTIzNEI4
ODFDMDAyOEE2MTUgLyogdmlkZW9fdHJhY2tfc291cmNlLmggKi8sCiAJCQkJNDEzMUJFREMyMzRC
ODgxQzAwMjhBNjE1IC8qIHdlYnJ0Y19zZHAuY2MgKi8sCiAJCQkJNDEzMUJFQTcyMzRCODgxNDAw
MjhBNjE1IC8qIHdlYnJ0Y19zZHAuaCAqLywKIAkJCQk0MTMxQkU3RjIzNEI4ODBEMDAyOEE2MTUg
Lyogd2VicnRjX3Nlc3Npb25fZGVzY3JpcHRpb25fZmFjdG9yeS5jYyAqLywKQEAgLTEyMDA5LDIy
ICsxMjA5MCwyMiBAQAogCQkJCTVDRDI4NDYyMUU2QTU3RjQwMDk0RkRDOCAvKiBpNDIwX2J1ZmZl
ci5oICovLAogCQkJCTQxMDJGNkQ5MjEyNzM0MTYwMDZBRThENyAvKiB2aWRlb19iaXRyYXRlX2Fs
bG9jYXRpb24uY2MgKi8sCiAJCQkJNDFGMjYzQzQyMTI2ODE4OTAwMjc0RjU5IC8qIHZpZGVvX2Jp
dHJhdGVfYWxsb2NhdGlvbi5oICovLAotCQkJCTQxMDJGNkRBMjEyNzM0MTYwMDZBRThENyAvKiB2
aWRlb19iaXRyYXRlX2FsbG9jYXRvcl9mYWN0b3J5LmggKi8sCiAJCQkJNDEzMUM0MUMyMzRDN0M3
QzAwMjhBNjE1IC8qIHZpZGVvX2JpdHJhdGVfYWxsb2NhdG9yLmNjICovLAogCQkJCTQxRjI2M0Mx
MjEyNjgxODkwMDI3NEY1OSAvKiB2aWRlb19iaXRyYXRlX2FsbG9jYXRvci5oICovLAorCQkJCTQx
MDJGNkRBMjEyNzM0MTYwMDZBRThENyAvKiB2aWRlb19iaXRyYXRlX2FsbG9jYXRvcl9mYWN0b3J5
LmggKi8sCiAJCQkJNDE5Qzg0MEQxRkUyNDlBQTAwNDBDMzBGIC8qIHZpZGVvX2NvbnRlbnRfdHlw
ZS5jYyAqLywKIAkJCQk0MTlDODQwRjFGRTI0OUFCMDA0MEMzMEYgLyogdmlkZW9fY29udGVudF90
eXBlLmggKi8sCi0JCQkJNDEyNDU1NEExRUY4ODc0MzAwRjExODA5IC8qIHZpZGVvX2ZyYW1lX2J1
ZmZlci5jYyAqLywKLQkJCQk1Q0QyODQ2MzFFNkE1N0Y0MDA5NEZEQzggLyogdmlkZW9fZnJhbWVf
YnVmZmVyLmggKi8sCiAJCQkJNUNEMjg0NjQxRTZBNTdGNDAwOTRGREM4IC8qIHZpZGVvX2ZyYW1l
LmNjICovLAogCQkJCTVDRDI4NDY1MUU2QTU3RjQwMDk0RkRDOCAvKiB2aWRlb19mcmFtZS5oICov
LAorCQkJCTQxMjQ1NTRBMUVGODg3NDMwMEYxMTgwOSAvKiB2aWRlb19mcmFtZV9idWZmZXIuY2Mg
Ki8sCisJCQkJNUNEMjg0NjMxRTZBNTdGNDAwOTRGREM4IC8qIHZpZGVvX2ZyYW1lX2J1ZmZlci5o
ICovLAogCQkJCTVDRDI4NDY2MUU2QTU3RjQwMDk0RkRDOCAvKiB2aWRlb19yb3RhdGlvbi5oICov
LAogCQkJCTQxMDJGNkQzMjEyNzM0MTUwMDZBRThENyAvKiB2aWRlb19zaW5rX2ludGVyZmFjZS5o
ICovLAogCQkJCTQxRjI2M0M2MjEyNjgxOEEwMDI3NEY1OSAvKiB2aWRlb19zb3VyY2VfaW50ZXJm
YWNlLmNjICovLAogCQkJCTQxRjI2M0JFMjEyNjgxODgwMDI3NEY1OSAvKiB2aWRlb19zb3VyY2Vf
aW50ZXJmYWNlLmggKi8sCisJCQkJNDFGMjYzQzUyMTI2ODE4QTAwMjc0RjU5IC8qIHZpZGVvX3N0
cmVhbV9kZWNvZGVyLmggKi8sCiAJCQkJNDEwMkY2RDEyMTI3MzQxNDAwNkFFOEQ3IC8qIHZpZGVv
X3N0cmVhbV9kZWNvZGVyX2NyZWF0ZS5jYyAqLywKIAkJCQk0MTAyRjZENDIxMjczNDE1MDA2QUU4
RDcgLyogdmlkZW9fc3RyZWFtX2RlY29kZXJfY3JlYXRlLmggKi8sCi0JCQkJNDFGMjYzQzUyMTI2
ODE4QTAwMjc0RjU5IC8qIHZpZGVvX3N0cmVhbV9kZWNvZGVyLmggKi8sCiAJCQkJNDEwMkY2RDUy
MTI3MzQxNTAwNkFFOEQ3IC8qIHZpZGVvX3N0cmVhbV9lbmNvZGVyX2NyZWF0ZS5jYyAqLywKIAkJ
CQk0MUYyNjNDMDIxMjY4MTg5MDAyNzRGNTkgLyogdmlkZW9fc3RyZWFtX2VuY29kZXJfY3JlYXRl
LmggKi8sCiAJCQkJNDFGMjYzQzMyMTI2ODE4OTAwMjc0RjU5IC8qIHZpZGVvX3N0cmVhbV9lbmNv
ZGVyX2ludGVyZmFjZS5oICovLApAQCAtMTIwOTgsMTYgKzEyMTc5LDE2IEBACiAJCTVDRDI4NTVG
MUU2QTYzMDUwMDk0RkRDOCAvKiBhZWMzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKLQkJCQk0MTMxQzM1MDIzNEI5NTc4MDAyOEE2MTUgLyogYWRhcHRpdmVfZmly
X2ZpbHRlcl9lcmwuY2MgKi8sCi0JCQkJNDEzMUMzNUMyMzRCOTU3QTAwMjhBNjE1IC8qIGFkYXB0
aXZlX2Zpcl9maWx0ZXJfZXJsLmggKi8sCiAJCQkJNUNEMjg1NjAxRTZBNjM0MzAwOTRGREM4IC8q
IGFkYXB0aXZlX2Zpcl9maWx0ZXIuY2MgKi8sCiAJCQkJNUNEMjg1NjExRTZBNjM0MzAwOTRGREM4
IC8qIGFkYXB0aXZlX2Zpcl9maWx0ZXIuaCAqLywKLQkJCQk1Q0QyODU2MjFFNkE2MzQzMDA5NEZE
QzggLyogYWVjX3N0YXRlLmNjICovLAotCQkJCTVDRDI4NTYzMUU2QTYzNDMwMDk0RkRDOCAvKiBh
ZWNfc3RhdGUuaCAqLywKKwkJCQk0MTMxQzM1MDIzNEI5NTc4MDAyOEE2MTUgLyogYWRhcHRpdmVf
ZmlyX2ZpbHRlcl9lcmwuY2MgKi8sCisJCQkJNDEzMUMzNUMyMzRCOTU3QTAwMjhBNjE1IC8qIGFk
YXB0aXZlX2Zpcl9maWx0ZXJfZXJsLmggKi8sCiAJCQkJNUNEMjg1NjQxRTZBNjM0MzAwOTRGREM4
IC8qIGFlYzNfY29tbW9uLmNjICovLAogCQkJCTVDRDI4NTY1MUU2QTYzNDMwMDk0RkRDOCAvKiBh
ZWMzX2NvbW1vbi5oICovLAogCQkJCTVDRDI4NTY2MUU2QTYzNDMwMDk0RkRDOCAvKiBhZWMzX2Zm
dC5jYyAqLywKIAkJCQk1Q0QyODU2NzFFNkE2MzQzMDA5NEZEQzggLyogYWVjM19mZnQuaCAqLywK
KwkJCQk1Q0QyODU2MjFFNkE2MzQzMDA5NEZEQzggLyogYWVjX3N0YXRlLmNjICovLAorCQkJCTVD
RDI4NTYzMUU2QTYzNDMwMDk0RkRDOCAvKiBhZWNfc3RhdGUuaCAqLywKIAkJCQk0MTMxQzM1ODIz
NEI5NTc5MDAyOEE2MTUgLyogYXBpX2NhbGxfaml0dGVyX21ldHJpY3MuY2MgKi8sCiAJCQkJNDEz
MUMzNEYyMzRCOTU3NzAwMjhBNjE1IC8qIGFwaV9jYWxsX2ppdHRlcl9tZXRyaWNzLmggKi8sCiAJ
CQkJNDEzMUMzNjcyMzRCOTU3QjAwMjhBNjE1IC8qIGJsb2NrX2J1ZmZlci5jYyAqLywKQEAgLTEy
MTE2LDEwICsxMjE5NywxMCBAQAogCQkJCTQxMzFDMzU5MjM0Qjk1NzkwMDI4QTYxNSAvKiBibG9j
a19kZWxheV9idWZmZXIuaCAqLywKIAkJCQk1Q0QyODU2ODFFNkE2MzQzMDA5NEZEQzggLyogYmxv
Y2tfZnJhbWVyLmNjICovLAogCQkJCTVDRDI4NTY5MUU2QTYzNDMwMDk0RkRDOCAvKiBibG9ja19m
cmFtZXIuaCAqLywKLQkJCQk1Q0QyODU2QTFFNkE2MzQzMDA5NEZEQzggLyogYmxvY2tfcHJvY2Vz
c29yX21ldHJpY3MuY2MgKi8sCi0JCQkJNUNEMjg1NkIxRTZBNjM0MzAwOTRGREM4IC8qIGJsb2Nr
X3Byb2Nlc3Nvcl9tZXRyaWNzLmggKi8sCiAJCQkJNUNEMjg1NkMxRTZBNjM0MzAwOTRGREM4IC8q
IGJsb2NrX3Byb2Nlc3Nvci5jYyAqLywKIAkJCQk1Q0QyODU2RDFFNkE2MzQzMDA5NEZEQzggLyog
YmxvY2tfcHJvY2Vzc29yLmggKi8sCisJCQkJNUNEMjg1NkExRTZBNjM0MzAwOTRGREM4IC8qIGJs
b2NrX3Byb2Nlc3Nvcl9tZXRyaWNzLmNjICovLAorCQkJCTVDRDI4NTZCMUU2QTYzNDMwMDk0RkRD
OCAvKiBibG9ja19wcm9jZXNzb3JfbWV0cmljcy5oICovLAogCQkJCTQxMzFDMzUxMjM0Qjk1Nzgw
MDI4QTYxNSAvKiBjbG9ja2RyaWZ0X2RldGVjdG9yLmNjICovLAogCQkJCTQxMzFDMzRDMjM0Qjk1
NzcwMDI4QTYxNSAvKiBjbG9ja2RyaWZ0X2RldGVjdG9yLmggKi8sCiAJCQkJNUNEMjg1NzAxRTZB
NjM0MzAwOTRGREM4IC8qIGNvbWZvcnRfbm9pc2VfZ2VuZXJhdG9yLmNjICovLApAQCAtMTIxMzYs
MTAgKzEyMjE3LDEwIEBACiAJCQkJNUNEMjg1NzcxRTZBNjM0MzAwOTRGREM4IC8qIGVjaG9fcGF0
aF9kZWxheV9lc3RpbWF0b3IuaCAqLywKIAkJCQk1Q0QyODU3ODFFNkE2MzQzMDA5NEZEQzggLyog
ZWNob19wYXRoX3ZhcmlhYmlsaXR5LmNjICovLAogCQkJCTVDRDI4NTc5MUU2QTYzNDMwMDk0RkRD
OCAvKiBlY2hvX3BhdGhfdmFyaWFiaWxpdHkuaCAqLywKLQkJCQk1Q0QyODU3QTFFNkE2MzQzMDA5
NEZEQzggLyogZWNob19yZW1vdmVyX21ldHJpY3MuY2MgKi8sCi0JCQkJNUNEMjg1N0IxRTZBNjM0
MzAwOTRGREM4IC8qIGVjaG9fcmVtb3Zlcl9tZXRyaWNzLmggKi8sCiAJCQkJNUNEMjg1N0MxRTZB
NjM0MzAwOTRGREM4IC8qIGVjaG9fcmVtb3Zlci5jYyAqLywKIAkJCQk1Q0QyODU3RDFFNkE2MzQz
MDA5NEZEQzggLyogZWNob19yZW1vdmVyLmggKi8sCisJCQkJNUNEMjg1N0ExRTZBNjM0MzAwOTRG
REM4IC8qIGVjaG9fcmVtb3Zlcl9tZXRyaWNzLmNjICovLAorCQkJCTVDRDI4NTdCMUU2QTYzNDMw
MDk0RkRDOCAvKiBlY2hvX3JlbW92ZXJfbWV0cmljcy5oICovLAogCQkJCTVDRDI4NTdFMUU2QTYz
NDMwMDk0RkRDOCAvKiBlcmxfZXN0aW1hdG9yLmNjICovLAogCQkJCTVDRDI4NTdGMUU2QTYzNDMw
MDk0RkRDOCAvKiBlcmxfZXN0aW1hdG9yLmggKi8sCiAJCQkJNUNEMjg1ODAxRTZBNjM0MzAwOTRG
REM4IC8qIGVybGVfZXN0aW1hdG9yLmNjICovLApAQCAtMTIxNTUsMjEgKzEyMjM2LDIxIEBACiAJ
CQkJNDEzMUMzNkQyMzRCOTU3QzAwMjhBNjE1IC8qIGZ1bGxiYW5kX2VybGVfZXN0aW1hdG9yLmgg
Ki8sCiAJCQkJNUNEMjg1ODcxRTZBNjM0MzAwOTRGREM4IC8qIG1haW5fZmlsdGVyX3VwZGF0ZV9n
YWluLmNjICovLAogCQkJCTVDRDI4NTg4MUU2QTYzNDMwMDk0RkRDOCAvKiBtYWluX2ZpbHRlcl91
cGRhdGVfZ2Fpbi5oICovLAotCQkJCTVDRDI4NTg5MUU2QTYzNDMwMDk0RkRDOCAvKiBtYXRjaGVk
X2ZpbHRlcl9sYWdfYWdncmVnYXRvci5jYyAqLywKLQkJCQk1Q0QyODU4QTFFNkE2MzQzMDA5NEZE
QzggLyogbWF0Y2hlZF9maWx0ZXJfbGFnX2FnZ3JlZ2F0b3IuaCAqLywKIAkJCQk1Q0QyODU4QjFF
NkE2MzQzMDA5NEZEQzggLyogbWF0Y2hlZF9maWx0ZXIuY2MgKi8sCiAJCQkJNUNEMjg1OEMxRTZB
NjM0MzAwOTRGREM4IC8qIG1hdGNoZWRfZmlsdGVyLmggKi8sCisJCQkJNUNEMjg1ODkxRTZBNjM0
MzAwOTRGREM4IC8qIG1hdGNoZWRfZmlsdGVyX2xhZ19hZ2dyZWdhdG9yLmNjICovLAorCQkJCTVD
RDI4NThBMUU2QTYzNDMwMDk0RkRDOCAvKiBtYXRjaGVkX2ZpbHRlcl9sYWdfYWdncmVnYXRvci5o
ICovLAogCQkJCTQxMzFDMzYwMjM0Qjk1N0EwMDI4QTYxNSAvKiBtb3ZpbmdfYXZlcmFnZS5jYyAq
LywKIAkJCQk0MTMxQzM2QjIzNEI5NTdDMDAyOEE2MTUgLyogbW92aW5nX2F2ZXJhZ2UuaCAqLywK
IAkJCQk0MTQ1RTRENzFFRjhDQzlBMDBGQ0Y2RTYgLyogcmVuZGVyX2J1ZmZlci5jYyAqLywKIAkJ
CQk0MTQ1RTREODFFRjhDQzlBMDBGQ0Y2RTYgLyogcmVuZGVyX2J1ZmZlci5oICovLAogCQkJCTVD
RDI4NTkxMUU2QTYzNDMwMDk0RkRDOCAvKiByZW5kZXJfZGVsYXlfYnVmZmVyLmNjICovLAogCQkJ
CTVDRDI4NTkyMUU2QTYzNDMwMDk0RkRDOCAvKiByZW5kZXJfZGVsYXlfYnVmZmVyLmggKi8sCi0J
CQkJNUNEMjg1OTMxRTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9kZWxheV9jb250cm9sbGVyX21l
dHJpY3MuY2MgKi8sCi0JCQkJNUNEMjg1OTQxRTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9kZWxh
eV9jb250cm9sbGVyX21ldHJpY3MuaCAqLywKIAkJCQk1Q0QyODU5NTFFNkE2MzQzMDA5NEZEQzgg
LyogcmVuZGVyX2RlbGF5X2NvbnRyb2xsZXIuY2MgKi8sCiAJCQkJNUNEMjg1OTYxRTZBNjM0MzAw
OTRGREM4IC8qIHJlbmRlcl9kZWxheV9jb250cm9sbGVyLmggKi8sCi0JCQkJNDEzMUMzNjQyMzRC
OTU3QjAwMjhBNjE1IC8qIHJlbmRlcl9yZXZlcmJfbW9kZWwuY2MgKi8sCisJCQkJNUNEMjg1OTMx
RTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9kZWxheV9jb250cm9sbGVyX21ldHJpY3MuY2MgKi8s
CisJCQkJNUNEMjg1OTQxRTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9kZWxheV9jb250cm9sbGVy
X21ldHJpY3MuaCAqLywKKwkJCQk0MTMxQzM2NDIzNEI5NTdCMDAyOEE2MTUgLyogcmVuZGVyX3Jl
dmVyYl9tb2RlbC5jYyAqLywKIAkJCQk0MTMxQzM2NTIzNEI5NTdCMDAyOEE2MTUgLyogcmVuZGVy
X3JldmVyYl9tb2RlbC5oICovLAogCQkJCTVDRDI4NTk3MUU2QTYzNDMwMDk0RkRDOCAvKiByZW5k
ZXJfc2lnbmFsX2FuYWx5emVyLmNjICovLAogCQkJCTVDRDI4NTk4MUU2QTYzNDMwMDk0RkRDOCAv
KiByZW5kZXJfc2lnbmFsX2FuYWx5emVyLmggKi8sCkBAIC0xMjE3OSwxMCArMTIyNjAsMTAgQEAK
IAkJCQk0MTMxQzM1QTIzNEI5NTc5MDAyOEE2MTUgLyogcmV2ZXJiX2RlY2F5X2VzdGltYXRvci5o
ICovLAogCQkJCTQxMzFDMzU3MjM0Qjk1NzkwMDI4QTYxNSAvKiByZXZlcmJfZnJlcXVlbmN5X3Jl
c3BvbnNlLmNjICovLAogCQkJCTQxMzFDMzU0MjM0Qjk1NzgwMDI4QTYxNSAvKiByZXZlcmJfZnJl
cXVlbmN5X3Jlc3BvbnNlLmggKi8sCi0JCQkJNDEzMUMzNjMyMzRCOTU3QjAwMjhBNjE1IC8qIHJl
dmVyYl9tb2RlbF9lc3RpbWF0b3IuY2MgKi8sCi0JCQkJNDEzMUMzNUIyMzRCOTU3OTAwMjhBNjE1
IC8qIHJldmVyYl9tb2RlbF9lc3RpbWF0b3IuaCAqLywKIAkJCQk0MTMxQzM2OTIzNEI5NTdDMDAy
OEE2MTUgLyogcmV2ZXJiX21vZGVsLmNjICovLAogCQkJCTQxMzFDMzYxMjM0Qjk1N0EwMDI4QTYx
NSAvKiByZXZlcmJfbW9kZWwuaCAqLywKKwkJCQk0MTMxQzM2MzIzNEI5NTdCMDAyOEE2MTUgLyog
cmV2ZXJiX21vZGVsX2VzdGltYXRvci5jYyAqLywKKwkJCQk0MTMxQzM1QjIzNEI5NTc5MDAyOEE2
MTUgLyogcmV2ZXJiX21vZGVsX2VzdGltYXRvci5oICovLAogCQkJCTVDRDI4NTlCMUU2QTYzNDMw
MDk0RkRDOCAvKiBzaGFkb3dfZmlsdGVyX3VwZGF0ZV9nYWluLmNjICovLAogCQkJCTVDRDI4NTlD
MUU2QTYzNDMwMDk0RkRDOCAvKiBzaGFkb3dfZmlsdGVyX3VwZGF0ZV9nYWluLmggKi8sCiAJCQkJ
NDEzMUMzNTMyMzRCOTU3ODAwMjhBNjE1IC8qIHNpZ25hbF9kZXBlbmRlbnRfZXJsZV9lc3RpbWF0
b3IuY2MgKi8sCkBAIC0xMjE5MywxMiArMTIyNzQsMTIgQEAKIAkJCQk0MTMxQzM1NjIzNEI5NTc5
MDAyOEE2MTUgLyogc3RhdGlvbmFyaXR5X2VzdGltYXRvci5oICovLAogCQkJCTQxMzFDMzcwMjM0
Qjk1N0QwMDI4QTYxNSAvKiBzdWJiYW5kX2VybGVfZXN0aW1hdG9yLmNjICovLAogCQkJCTQxMzFD
MzVEMjM0Qjk1N0EwMDI4QTYxNSAvKiBzdWJiYW5kX2VybGVfZXN0aW1hdG9yLmggKi8sCi0JCQkJ
NDEzMUMzNjIyMzRCOTU3QTAwMjhBNjE1IC8qIHN1YnRyYWN0b3Jfb3V0cHV0X2FuYWx5emVyLmNj
ICovLAotCQkJCTQxMzFDMzVGMjM0Qjk1N0EwMDI4QTYxNSAvKiBzdWJ0cmFjdG9yX291dHB1dF9h
bmFseXplci5oICovLAotCQkJCTQxMzFDMzcxMjM0Qjk1N0QwMDI4QTYxNSAvKiBzdWJ0cmFjdG9y
X291dHB1dC5jYyAqLywKLQkJCQk1Q0QyODU5RDFFNkE2MzQzMDA5NEZEQzggLyogc3VidHJhY3Rv
cl9vdXRwdXQuaCAqLywKIAkJCQk1Q0QyODU5RTFFNkE2MzQzMDA5NEZEQzggLyogc3VidHJhY3Rv
ci5jYyAqLywKIAkJCQk1Q0QyODU5RjFFNkE2MzQzMDA5NEZEQzggLyogc3VidHJhY3Rvci5oICov
LAorCQkJCTQxMzFDMzcxMjM0Qjk1N0QwMDI4QTYxNSAvKiBzdWJ0cmFjdG9yX291dHB1dC5jYyAq
LywKKwkJCQk1Q0QyODU5RDFFNkE2MzQzMDA5NEZEQzggLyogc3VidHJhY3Rvcl9vdXRwdXQuaCAq
LywKKwkJCQk0MTMxQzM2MjIzNEI5NTdBMDAyOEE2MTUgLyogc3VidHJhY3Rvcl9vdXRwdXRfYW5h
bHl6ZXIuY2MgKi8sCisJCQkJNDEzMUMzNUYyMzRCOTU3QTAwMjhBNjE1IC8qIHN1YnRyYWN0b3Jf
b3V0cHV0X2FuYWx5emVyLmggKi8sCiAJCQkJNUNEMjg1QTAxRTZBNjM0MzAwOTRGREM4IC8qIHN1
cHByZXNzaW9uX2ZpbHRlci5jYyAqLywKIAkJCQk1Q0QyODVBMTFFNkE2MzQzMDA5NEZEQzggLyog
c3VwcHJlc3Npb25fZmlsdGVyLmggKi8sCiAJCQkJNUNEMjg1QTIxRTZBNjM0MzAwOTRGREM4IC8q
IHN1cHByZXNzaW9uX2dhaW4uY2MgKi8sCkBAIC0xMjIxMCw5ICsxMjI5MSw5IEBACiAJCTVDRDI4
NjM4MUU2QTY4MEQwMDk0RkRDOCAvKiBzY3RwICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKLQkJCQk0MTMxQzNDNjIzNEI5N0YzMDAyOEE2MTUgLyogc2N0cF90cmFu
c3BvcnRfaW50ZXJuYWwuaCAqLywKIAkJCQk0MTMxQzNDNTIzNEI5N0YzMDAyOEE2MTUgLyogc2N0
cF90cmFuc3BvcnQuY2MgKi8sCiAJCQkJNDEzMUMzQzcyMzRCOTdGMzAwMjhBNjE1IC8qIHNjdHBf
dHJhbnNwb3J0LmggKi8sCisJCQkJNDEzMUMzQzYyMzRCOTdGMzAwMjhBNjE1IC8qIHNjdHBfdHJh
bnNwb3J0X2ludGVybmFsLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHNjdHA7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtMTIyNjcsOSArMTIzNDgsMTEgQEAKIAkJNUNERDgzNjkxRTQz
OTlGNDAwNjIxRTkyIC8qIHZpZGVvX2NvZGluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJNUNERDg1M0QxRTQzQjNGODAwNjIxRTkyIC8qIGNvZGVjcyAq
LywKKwkJCQk0MTMxQzQ1QTIzNEM4MTUxMDAyOEE2MTUgLyogaW5jbHVkZSAqLywKKwkJCQk1Q0RE
ODM2QTFFNDM5QTBEMDA2MjFFOTIgLyogdXRpbGl0eSAqLywKIAkJCQk1Q0REODM4OTFFNDM5QTZG
MDA2MjFFOTIgLyogY29kZWNfdGltZXIuY2MgKi8sCiAJCQkJNUNERDgzOEExRTQzOUE2RjAwNjIx
RTkyIC8qIGNvZGVjX3RpbWVyLmggKi8sCi0JCQkJNUNERDg1M0QxRTQzQjNGODAwNjIxRTkyIC8q
IGNvZGVjcyAqLywKIAkJCQk0MUUwMkM4MzIxMjczNEI4MDBDMjdDRDYgLyogZGVjb2Rlcl9kYXRh
YmFzZS5jYyAqLywKIAkJCQk0MUUwMkM3RjIxMjczNEI4MDBDMjdDRDYgLyogZGVjb2Rlcl9kYXRh
YmFzZS5oICovLAogCQkJCTVDREQ4MzhCMUU0MzlBNkYwMDYyMUU5MiAvKiBkZWNvZGluZ19zdGF0
ZS5jYyAqLywKQEAgLTEyMjkxLDE1ICsxMjM3NCwxNiBAQAogCQkJCTVDRDI4NUU5MUU2QTYzOUYw
MDk0RkRDOCAvKiBoMjY0X3Nwcm9wX3BhcmFtZXRlcl9zZXRzLmggKi8sCiAJCQkJNUNERDgzOUEx
RTQzOUE2RjAwNjIxRTkyIC8qIGgyNjRfc3BzX3Bwc190cmFja2VyLmNjICovLAogCQkJCTVDREQ4
MzlCMUU0MzlBNkYwMDYyMUU5MiAvKiBoMjY0X3Nwc19wcHNfdHJhY2tlci5oICovLAorCQkJCTQx
NzdGNEZFMjM4MEU4MUYwMEMwNDQ4NiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgKi8s
CisJCQkJNDE3N0Y0RkYyMzgwRTgxRjAwQzA0NDg2IC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tl
ci5oICovLAogCQkJCTVDREQ4MzlDMUU0MzlBNkYwMDYyMUU5MiAvKiBoaXN0b2dyYW0uY2MgKi8s
CiAJCQkJNUNERDgzOUQxRTQzOUE2RjAwNjIxRTkyIC8qIGhpc3RvZ3JhbS5oICovLAotCQkJCTQx
MzFDNDVBMjM0QzgxNTEwMDI4QTYxNSAvKiBpbmNsdWRlICovLAogCQkJCTVDREQ4MzlFMUU0MzlB
NkYwMDYyMUU5MiAvKiBpbnRlcl9mcmFtZV9kZWxheS5jYyAqLywKIAkJCQk1Q0REODM5RjFFNDM5
QTZGMDA2MjFFOTIgLyogaW50ZXJfZnJhbWVfZGVsYXkuaCAqLywKIAkJCQk1Q0REODNBMDFFNDM5
QTZGMDA2MjFFOTIgLyogaW50ZXJuYWxfZGVmaW5lcy5oICovLAotCQkJCTVDREQ4M0ExMUU0MzlB
NkYwMDYyMUU5MiAvKiBqaXR0ZXJfYnVmZmVyX2NvbW1vbi5oICovLAogCQkJCTVDREQ4M0EyMUU0
MzlBNkYwMDYyMUU5MiAvKiBqaXR0ZXJfYnVmZmVyLmNjICovLAogCQkJCTVDREQ4M0EzMUU0MzlB
NkYwMDYyMUU5MiAvKiBqaXR0ZXJfYnVmZmVyLmggKi8sCisJCQkJNUNERDgzQTExRTQzOUE2RjAw
NjIxRTkyIC8qIGppdHRlcl9idWZmZXJfY29tbW9uLmggKi8sCiAJCQkJNUNERDgzQTQxRTQzOUE2
RjAwNjIxRTkyIC8qIGppdHRlcl9lc3RpbWF0b3IuY2MgKi8sCiAJCQkJNUNERDgzQTUxRTQzOUE2
RjAwNjIxRTkyIC8qIGppdHRlcl9lc3RpbWF0b3IuaCAqLywKIAkJCQk0MTMxQzRCQjIzNEM4NDA1
MDAyOEE2MTUgLyogbG9zc19ub3RpZmljYXRpb25fY29udHJvbGxlci5jYyAqLywKQEAgLTEyMzA4
LDEwICsxMjM5MiwxMCBAQAogCQkJCTVDREQ4M0E3MUU0MzlBNkYwMDYyMUU5MiAvKiBtZWRpYV9v
cHRfdXRpbC5oICovLAogCQkJCTVDREQ4M0FCMUU0MzlBNkYwMDYyMUU5MiAvKiBuYWNrX21vZHVs
ZS5jYyAqLywKIAkJCQk1Q0REODNBQzFFNDM5QTZGMDA2MjFFOTIgLyogbmFja19tb2R1bGUuaCAq
LywKLQkJCQk1Q0REODNBRDFFNDM5QTZGMDA2MjFFOTIgLyogcGFja2V0X2J1ZmZlci5jYyAqLywK
LQkJCQk1Q0REODNBRTFFNDM5QTZGMDA2MjFFOTIgLyogcGFja2V0X2J1ZmZlci5oICovLAogCQkJ
CTVDREQ4M0FGMUU0MzlBNkYwMDYyMUU5MiAvKiBwYWNrZXQuY2MgKi8sCiAJCQkJNUNERDgzQjAx
RTQzOUE2RjAwNjIxRTkyIC8qIHBhY2tldC5oICovLAorCQkJCTVDREQ4M0FEMUU0MzlBNkYwMDYy
MUU5MiAvKiBwYWNrZXRfYnVmZmVyLmNjICovLAorCQkJCTVDREQ4M0FFMUU0MzlBNkYwMDYyMUU5
MiAvKiBwYWNrZXRfYnVmZmVyLmggKi8sCiAJCQkJNUNERDgzQjUxRTQzOUE2RjAwNjIxRTkyIC8q
IHJlY2VpdmVyLmNjICovLAogCQkJCTVDREQ4M0I2MUU0MzlBNkYwMDYyMUU5MiAvKiByZWNlaXZl
ci5oICovLAogCQkJCTVDREQ4M0I3MUU0MzlBNkYwMDYyMUU5MiAvKiBydHBfZnJhbWVfcmVmZXJl
bmNlX2ZpbmRlci5jYyAqLywKQEAgLTEyMzI0LDcgKzEyNDA4LDYgQEAKIAkJCQk1Q0REODNCRjFF
NDM5QTZGMDA2MjFFOTIgLyogdGltZXN0YW1wX21hcC5oICovLAogCQkJCTVDREQ4M0MwMUU0MzlB
NkYwMDYyMUU5MiAvKiB0aW1pbmcuY2MgKi8sCiAJCQkJNUNERDgzQzExRTQzOUE2RjAwNjIxRTky
IC8qIHRpbWluZy5oICovLAotCQkJCTVDREQ4MzZBMUU0MzlBMEQwMDYyMUU5MiAvKiB1dGlsaXR5
ICovLAogCQkJCTVDRDI4NTM0MUU2QTYxNTkwMDk0RkRDOCAvKiB2aWRlb19jb2RlY19pbml0aWFs
aXplci5jYyAqLywKIAkJCQk0MUUwMkM4NTIxMjczNEI5MDBDMjdDRDYgLyogdmlkZW9fY29kaW5n
X2RlZmluZXMuY2MgKi8sCiAJCQkJNUNERDgzQzIxRTQzOUE2RjAwNjIxRTkyIC8qIHZpZGVvX2Nv
ZGluZ19pbXBsLmNjICovLApAQCAtMTIzOTQsMTAgKzEyNDc3LDE3IEBACiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTVDREQ4NkE5MUU0M0I5QjkwMDYyMUU5MiAvKiBh
ZWMgKi8sCi0JCQkJNDEzMDkyMkExRUY4RDczNTAwNzU3QzU1IC8qIGFlY19kdW1wICovLAogCQkJ
CTVDRDI4NTVGMUU2QTYzMDUwMDk0RkRDOCAvKiBhZWMzICovLAorCQkJCTQxMzA5MjJBMUVGOEQ3
MzUwMDc1N0M1NSAvKiBhZWNfZHVtcCAqLywKIAkJCQk1Q0REODZFNTFFNDNCQTVCMDA2MjFFOTIg
LyogYWdjICovLAogCQkJCTQxQTA4QkQ5MjEyNzJGM0UwMDFENUQ3QiAvKiBhZ2MyICovLAorCQkJ
CTVDREQ4Njk2MUU0M0I5ODIwMDYyMUU5MiAvKiBlY2hvX2RldGVjdG9yICovLAorCQkJCTVDREQ4
NEM5MUU0M0FGMUQwMDYyMUU5MiAvKiBpbmNsdWRlICovLAorCQkJCTVDREQ4N0UyMUU0M0JEOTEw
MDYyMUU5MiAvKiBsb2dnaW5nICovLAorCQkJCTVDREQ4NUVDMUU0M0I4NDIwMDYyMUU5MiAvKiBu
cyAqLywKKwkJCQk1Q0REOEM2QjFFNDNDNjRGMDA2MjFFOTIgLyogdHJhbnNpZW50ICovLAorCQkJ
CTVDREQ4Njc1MUU0M0I5MjkwMDYyMUU5MiAvKiB1dGlsaXR5ICovLAorCQkJCTVDREQ4NzBBMUU0
M0JBQjEwMDYyMUU5MiAvKiB2YWQgKi8sCiAJCQkJNUNERDg0ODkxRTQzQUYxMzAwNjIxRTkyIC8q
IGF1ZGlvX2J1ZmZlci5jYyAqLywKIAkJCQk1Q0REODQ4QTFFNDNBRjEzMDA2MjFFOTIgLyogYXVk
aW9fYnVmZmVyLmggKi8sCiAJCQkJNUNERDg0OEIxRTQzQUYxMzAwNjIxRTkyIC8qIGF1ZGlvX3By
b2Nlc3NpbmdfaW1wbC5jYyAqLywKQEAgLTEyNDA3LDcgKzEyNDk3LDYgQEAKIAkJCQk1Q0REODQ4
RjFFNDNBRjEzMDA2MjFFOTIgLyogZWNob19jYW5jZWxsYXRpb25faW1wbC5oICovLAogCQkJCTVD
REQ4NDkwMUU0M0FGMTMwMDYyMUU5MiAvKiBlY2hvX2NvbnRyb2xfbW9iaWxlX2ltcGwuY2MgKi8s
CiAJCQkJNUNERDg0OTExRTQzQUYxMzAwNjIxRTkyIC8qIGVjaG9fY29udHJvbF9tb2JpbGVfaW1w
bC5oICovLAotCQkJCTVDREQ4Njk2MUU0M0I5ODIwMDYyMUU5MiAvKiBlY2hvX2RldGVjdG9yICov
LAogCQkJCTQxMzFDNDg5MjM0QzgyOUUwMDI4QTYxNSAvKiBnYWluX2NvbnRyb2xfY29uZmlnX3By
b3h5LmNjICovLAogCQkJCTQxMzFDNDhBMjM0QzgyOUUwMDI4QTYxNSAvKiBnYWluX2NvbnRyb2xf
Y29uZmlnX3Byb3h5LmggKi8sCiAJCQkJNUNERDg0OTIxRTQzQUYxMzAwNjIxRTkyIC8qIGdhaW5f
Y29udHJvbF9mb3JfZXhwZXJpbWVudGFsX2FnYy5jYyAqLywKQEAgLTEyNDE4LDE1ICsxMjUwNywx
MiBAQAogCQkJCTQxQTA4QkNEMjEyNzJFRTEwMDFENUQ3QiAvKiBnYWluX2NvbnRyb2xsZXIyLmgg
Ki8sCiAJCQkJNDEzMUMzRkYyMzRDN0IzNTAwMjhBNjE1IC8qIGhpZ2hfcGFzc19maWx0ZXIuY2Mg
Ki8sCiAJCQkJNDEzMUMzRkUyMzRDN0IzNTAwMjhBNjE1IC8qIGhpZ2hfcGFzc19maWx0ZXIuaCAq
LywKLQkJCQk1Q0REODRDOTFFNDNBRjFEMDA2MjFFOTIgLyogaW5jbHVkZSAqLywKIAkJCQk1Q0RE
ODQ5ODFFNDNBRjEzMDA2MjFFOTIgLyogbGV2ZWxfZXN0aW1hdG9yX2ltcGwuY2MgKi8sCiAJCQkJ
NUNERDg0OTkxRTQzQUYxMzAwNjIxRTkyIC8qIGxldmVsX2VzdGltYXRvcl9pbXBsLmggKi8sCi0J
CQkJNUNERDg3RTIxRTQzQkQ5MTAwNjIxRTkyIC8qIGxvZ2dpbmcgKi8sCiAJCQkJNUNERDg0RTcx
RTQzQjBCNjAwNjIxRTkyIC8qIG5vaXNlX3N1cHByZXNzaW9uX2ltcGwuY2MgKi8sCiAJCQkJNUNE
RDg0RTgxRTQzQjBCNjAwNjIxRTkyIC8qIG5vaXNlX3N1cHByZXNzaW9uX2ltcGwuaCAqLywKIAkJ
CQk0MTMxQzQ3QjIzNEM4MjE0MDAyOEE2MTUgLyogbm9pc2Vfc3VwcHJlc3Npb25fcHJveHkuY2Mg
Ki8sCiAJCQkJNDEzMUM0N0EyMzRDODIxNDAwMjhBNjE1IC8qIG5vaXNlX3N1cHByZXNzaW9uX3By
b3h5LmggKi8sCi0JCQkJNUNERDg1RUMxRTQzQjg0MjAwNjIxRTkyIC8qIG5zICovLAogCQkJCTVD
REQ4NDlDMUU0M0FGMTMwMDYyMUU5MiAvKiByZW5kZXJfcXVldWVfaXRlbV92ZXJpZmllci5oICov
LAogCQkJCTVDREQ4NDlEMUU0M0FGMTMwMDYyMUU5MiAvKiByZXNpZHVhbF9lY2hvX2RldGVjdG9y
LmNjICovLAogCQkJCTVDREQ4NDlFMUU0M0FGMTMwMDYyMUU5MiAvKiByZXNpZHVhbF9lY2hvX2Rl
dGVjdG9yLmggKi8sCkBAIC0xMjQzNiwxMSArMTI1MjIsOCBAQAogCQkJCTVDREQ4NEEyMUU0M0FG
MTMwMDYyMUU5MiAvKiBzcGxpdHRpbmdfZmlsdGVyLmggKi8sCiAJCQkJNUNERDg0QTMxRTQzQUYx
MzAwNjIxRTkyIC8qIHRocmVlX2JhbmRfZmlsdGVyX2JhbmsuY2MgKi8sCiAJCQkJNUNERDg0QTQx
RTQzQUYxMzAwNjIxRTkyIC8qIHRocmVlX2JhbmRfZmlsdGVyX2JhbmsuaCAqLywKLQkJCQk1Q0RE
OEM2QjFFNDNDNjRGMDA2MjFFOTIgLyogdHJhbnNpZW50ICovLAogCQkJCTVDREQ4NEE1MUU0M0FG
MTMwMDYyMUU5MiAvKiB0eXBpbmdfZGV0ZWN0aW9uLmNjICovLAogCQkJCTVDREQ4NEE2MUU0M0FG
MTMwMDYyMUU5MiAvKiB0eXBpbmdfZGV0ZWN0aW9uLmggKi8sCi0JCQkJNUNERDg2NzUxRTQzQjky
OTAwNjIxRTkyIC8qIHV0aWxpdHkgKi8sCi0JCQkJNUNERDg3MEExRTQzQkFCMTAwNjIxRTkyIC8q
IHZhZCAqLywKIAkJCQk1Q0REODRBNzFFNDNBRjEzMDA2MjFFOTIgLyogdm9pY2VfZGV0ZWN0aW9u
X2ltcGwuY2MgKi8sCiAJCQkJNUNERDg0QTgxRTQzQUYxMzAwNjIxRTkyIC8qIHZvaWNlX2RldGVj
dGlvbl9pbXBsLmggKi8sCiAJCQkpOwpAQCAtMTI0OTcsOCArMTI1ODAsNiBAQAogCQk1Q0REODUx
QTFFNDNCMzhGMDA2MjFFOTIgLyogY2FsbCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCi0JCQkJNDEzMUM0NzcyMzRDODFFQTAwMjhBNjE1IC8qIGNhbGxfZmFjdG9y
eS5jYyAqLywKLQkJCQk0MTMxQzQ3NjIzNEM4MUVBMDAyOEE2MTUgLyogY2FsbF9mYWN0b3J5Lmgg
Ki8sCiAJCQkJNDEwMkY2QjYyMTI3MzM4MTAwNkFFOEQ3IC8qIGF1ZGlvX3JlY2VpdmVfc3RyZWFt
LmNjICovLAogCQkJCTVDRDI4NDlEMUU2QTVGOUYwMDk0RkRDOCAvKiBhdWRpb19yZWNlaXZlX3N0
cmVhbS5oICovLAogCQkJCTVDRDI4NDlFMUU2QTVGOUYwMDk0RkRDOCAvKiBhdWRpb19zZW5kX3N0
cmVhbS5jYyAqLywKQEAgLTEyNTExLDYgKzEyNTkyLDggQEAKIAkJCQk1Q0QyODRBNjFFNkE1RjlG
MDA5NEZEQzggLyogY2FsbC5oICovLAogCQkJCTQxNUYxRkQ3MjEyNzMxM0YwMDA2NENCRiAvKiBj
YWxsX2NvbmZpZy5jYyAqLywKIAkJCQk0MTVGMUZEQTIxMjczMTNGMDAwNjRDQkYgLyogY2FsbF9j
b25maWcuaCAqLywKKwkJCQk0MTMxQzQ3NzIzNEM4MUVBMDAyOEE2MTUgLyogY2FsbF9mYWN0b3J5
LmNjICovLAorCQkJCTQxMzFDNDc2MjM0QzgxRUEwMDI4QTYxNSAvKiBjYWxsX2ZhY3RvcnkuaCAq
LywKIAkJCQk0MTAyRjZCNzIxMjczMzgxMDA2QUU4RDcgLyogZGVncmFkZWRfY2FsbC5jYyAqLywK
IAkJCQk0MTVGMUZEMjIxMjczMTNFMDAwNjRDQkYgLyogZGVncmFkZWRfY2FsbC5oICovLAogCQkJ
CTQxMjk5Qjk0MjEyNzM2OTAwMEIzNDE0QiAvKiBmYWtlX25ldHdvcmtfcGlwZS5jYyAqLywKQEAg
LTEyNTg0LDIyICsxMjY2NywyMiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNDEzMUM0OUEyMzRD
ODM0RTAwMjhBNjE1IC8qIGJ1ZmZlcmVkX2ZyYW1lX2RlY3J5cHRvci5jYyAqLywKIAkJCQk0MTMx
QzQ5ODIzNEM4MzREMDAyOEE2MTUgLyogYnVmZmVyZWRfZnJhbWVfZGVjcnlwdG9yLmggKi8sCisJ
CQkJNUNERDg1NUMxRTQzQjVDMDAwNjIxRTkyIC8qIGNhbGxfc3RhdHMuY2MgKi8sCisJCQkJNUNE
RDg1NUQxRTQzQjVDMDAwNjIxRTkyIC8qIGNhbGxfc3RhdHMuaCAqLywKIAkJCQk0MTMxQzQ5QzIz
NEM4MzRFMDAyOEE2MTUgLyogZW5jb2Rlcl9iaXRyYXRlX2FkanVzdGVyLmNjICovLAogCQkJCTQx
MzFDNDk3MjM0QzgzNEQwMDI4QTYxNSAvKiBlbmNvZGVyX2JpdHJhdGVfYWRqdXN0ZXIuaCAqLywK
IAkJCQk0MTMxQzQ5NjIzNEM4MzREMDAyOEE2MTUgLyogZW5jb2Rlcl9vdmVyc2hvb3RfZGV0ZWN0
b3IuY2MgKi8sCiAJCQkJNDEzMUM0OUIyMzRDODM0RTAwMjhBNjE1IC8qIGVuY29kZXJfb3ZlcnNo
b290X2RldGVjdG9yLmggKi8sCi0JCQkJNDEzMUM0OTQyMzRDODM0RDAwMjhBNjE1IC8qIGZyYW1l
X2VuY29kZV9tZXRhZGF0YV93cml0ZXIuY2MgKi8sCi0JCQkJNDEzMUM0OTMyMzRDODM0QzAwMjhB
NjE1IC8qIGZyYW1lX2VuY29kZV9tZXRhZGF0YV93cml0ZXIuaCAqLywKLQkJCQk0MTMxQzQ5NTIz
NEM4MzREMDAyOEE2MTUgLyogcXVhbGl0eV9saW1pdGF0aW9uX3JlYXNvbl90cmFja2VyLmNjICov
LAotCQkJCTQxMzFDNDk5MjM0QzgzNEUwMDI4QTYxNSAvKiBxdWFsaXR5X2xpbWl0YXRpb25fcmVh
c29uX3RyYWNrZXIuaCAqLywKLQkJCQk1Q0REODU1QzFFNDNCNUMwMDA2MjFFOTIgLyogY2FsbF9z
dGF0cy5jYyAqLywKLQkJCQk1Q0REODU1RDFFNDNCNUMwMDA2MjFFOTIgLyogY2FsbF9zdGF0cy5o
ICovLAogCQkJCTVDREQ4NTYwMUU0M0I1QzAwMDYyMUU5MiAvKiBlbmNvZGVyX3J0Y3BfZmVlZGJh
Y2suY2MgKi8sCiAJCQkJNUNERDg1NjExRTQzQjVDMDAwNjIxRTkyIC8qIGVuY29kZXJfcnRjcF9m
ZWVkYmFjay5oICovLAogCQkJCTQxRkNCQjU3MjFCMUZFNkQwMEE1REYyNyAvKiBmcmFtZV9kdW1w
aW5nX2RlY29kZXIuY2MgKi8sCiAJCQkJNDFGQ0JCNTgyMUIxRkU2RTAwQTVERjI3IC8qIGZyYW1l
X2R1bXBpbmdfZGVjb2Rlci5oICovLAorCQkJCTQxMzFDNDk0MjM0QzgzNEQwMDI4QTYxNSAvKiBm
cmFtZV9lbmNvZGVfbWV0YWRhdGFfd3JpdGVyLmNjICovLAorCQkJCTQxMzFDNDkzMjM0QzgzNEMw
MDI4QTYxNSAvKiBmcmFtZV9lbmNvZGVfbWV0YWRhdGFfd3JpdGVyLmggKi8sCiAJCQkJNUNERDg1
NjYxRTQzQjVDMDAwNjIxRTkyIC8qIG92ZXJ1c2VfZnJhbWVfZGV0ZWN0b3IuY2MgKi8sCiAJCQkJ
NUNERDg1NjcxRTQzQjVDMDAwNjIxRTkyIC8qIG92ZXJ1c2VfZnJhbWVfZGV0ZWN0b3IuaCAqLywK
KwkJCQk0MTMxQzQ5NTIzNEM4MzREMDAyOEE2MTUgLyogcXVhbGl0eV9saW1pdGF0aW9uX3JlYXNv
bl90cmFja2VyLmNjICovLAorCQkJCTQxMzFDNDk5MjM0QzgzNEUwMDI4QTYxNSAvKiBxdWFsaXR5
X2xpbWl0YXRpb25fcmVhc29uX3RyYWNrZXIuaCAqLywKIAkJCQk1Q0QyODYyODFFNkE2NkM4MDA5
NEZEQzggLyogcXVhbGl0eV90aHJlc2hvbGQuY2MgKi8sCiAJCQkJNUNEMjg2MjkxRTZBNjZDODAw
OTRGREM4IC8qIHF1YWxpdHlfdGhyZXNob2xkLmggKi8sCiAJCQkJNUNERDg1NkQxRTQzQjVDMDAw
NjIxRTkyIC8qIHJlY2VpdmVfc3RhdGlzdGljc19wcm94eS5jYyAqLywKQEAgLTEyNzIxLDE1ICsx
MjgwNCwxNSBAQAogCQkJCTVDREQ4Njc4MUU0M0I5MzgwMDYyMUU5MiAvKiBibG9ja19tZWFuX2Nh
bGN1bGF0b3IuaCAqLywKIAkJCQk0MTMxQzNFODIzNEM3QTQ5MDAyOEE2MTUgLyogY2FzY2FkZWRf
YmlxdWFkX2ZpbHRlci5jYyAqLywKIAkJCQk0MTMxQzNFQTIzNEM3QTQ5MDAyOEE2MTUgLyogY2Fz
Y2FkZWRfYmlxdWFkX2ZpbHRlci5oICovLAorCQkJCTVDREQ4NjdEMUU0M0I5MzgwMDYyMUU5MiAv
KiBkZWxheV9lc3RpbWF0b3IuY2MgKi8sCisJCQkJNUNERDg2N0UxRTQzQjkzODAwNjIxRTkyIC8q
IGRlbGF5X2VzdGltYXRvci5oICovLAogCQkJCTVDREQ4Njc5MUU0M0I5MzgwMDYyMUU5MiAvKiBk
ZWxheV9lc3RpbWF0b3JfaW50ZXJuYWwuaCAqLywKIAkJCQk1Q0REODY3QjFFNDNCOTM4MDA2MjFF
OTIgLyogZGVsYXlfZXN0aW1hdG9yX3dyYXBwZXIuY2MgKi8sCiAJCQkJNUNERDg2N0MxRTQzQjkz
ODAwNjIxRTkyIC8qIGRlbGF5X2VzdGltYXRvcl93cmFwcGVyLmggKi8sCi0JCQkJNUNERDg2N0Qx
RTQzQjkzODAwNjIxRTkyIC8qIGRlbGF5X2VzdGltYXRvci5jYyAqLywKLQkJCQk1Q0REODY3RTFF
NDNCOTM4MDA2MjFFOTIgLyogZGVsYXlfZXN0aW1hdG9yLmggKi8sCi0JCQkJNUNERDg2ODExRTQz
QjkzODAwNjIxRTkyIC8qIG9vdXJhX2ZmdF9zc2UyLmNjICovLAotCQkJCTVDREQ4NjgyMUU0M0I5
MzgwMDYyMUU5MiAvKiBvb3VyYV9mZnRfdGFibGVzX2NvbW1vbi5oICovLAogCQkJCTVDREQ4Njg0
MUU0M0I5MzgwMDYyMUU5MiAvKiBvb3VyYV9mZnQuY2MgKi8sCiAJCQkJNUNERDg2ODUxRTQzQjkz
OTAwNjIxRTkyIC8qIG9vdXJhX2ZmdC5oICovLAorCQkJCTVDREQ4NjgxMUU0M0I5MzgwMDYyMUU5
MiAvKiBvb3VyYV9mZnRfc3NlMi5jYyAqLywKKwkJCQk1Q0REODY4MjFFNDNCOTM4MDA2MjFFOTIg
Lyogb291cmFfZmZ0X3RhYmxlc19jb21tb24uaCAqLywKIAkJCQk0MTMxQzNFOTIzNEM3QTQ5MDAy
OEE2MTUgLyogcGZmZnRfd3JhcHBlci5jYyAqLywKIAkJCQk0MTMxQzNFQjIzNEM3QTQ5MDAyOEE2
MTUgLyogcGZmZnRfd3JhcHBlci5oICovLAogCQkJKTsKQEAgLTEyOTcwLDE5ICsxMzA1MywxMSBA
QAogCQk1Q0REODdGQTFFNDNCRTI2MDA2MjFFOTIgLyogc291cmNlICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1Q0REODhFQjFFNDNCRjI1MDA2MjFFOTIg
LyogcnRjcF9wYWNrZXQgKi8sCiAJCQkJNDEzMUM0QzgyMzRDODRBMTAwMjhBNjE1IC8qIGFic29s
dXRlX2NhcHR1cmVfdGltZV9yZWNlaXZlci5jYyAqLywKIAkJCQk0MTMxQzRDRDIzNEM4NEEyMDAy
OEE2MTUgLyogYWJzb2x1dGVfY2FwdHVyZV90aW1lX3JlY2VpdmVyLmggKi8sCiAJCQkJNDEzMUM0
Q0MyMzRDODRBMjAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGltZV9zZW5kZXIuY2MgKi8s
CiAJCQkJNDEzMUM0Q0UyMzRDODRBMjAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGltZV9z
ZW5kZXIuaCAqLywKLQkJCQk0MTMxQzRDOTIzNEM4NEExMDAyOEE2MTUgLyogcnRwX2RlcGVuZGVu
Y3lfZGVzY3JpcHRvcl9leHRlbnNpb24uY2MgKi8sCi0JCQkJNDEzMUM0Q0EyMzRDODRBMTAwMjhB
NjE1IC8qIHJ0cF9kZXBlbmRlbmN5X2Rlc2NyaXB0b3JfZXh0ZW5zaW9uLmggKi8sCi0JCQkJNDEz
MUM0Q0YyMzRDODRBMjAwMjhBNjE1IC8qIHJ0cF9kZXBlbmRlbmN5X2Rlc2NyaXB0b3JfcmVhZGVy
LmggKi8sCi0JCQkJNDEzMUM0RDAyMzRDODRBMjAwMjhBNjE1IC8qIHJ0cF9kZXBlbmRlbmN5X2Rl
c2NyaXB0b3Jfd3JpdGVyLmggKi8sCi0JCQkJNDEzMUM0RDEyMzRDODRBMjAwMjhBNjE1IC8qIHJ0
cF9zZXF1ZW5jZV9udW1iZXJfbWFwLmNjICovLAotCQkJCTQxMzFDNEQyMjM0Qzg0QTMwMDI4QTYx
NSAvKiBydHBfc2VxdWVuY2VfbnVtYmVyX21hcC5oICovLAotCQkJCTQxMzFDNEM3MjM0Qzg0QTAw
MDI4QTYxNSAvKiBzb3VyY2VfdHJhY2tlci5jYyAqLywKLQkJCQk0MTMxQzRDQjIzNEM4NEExMDAy
OEE2MTUgLyogc291cmNlX3RyYWNrZXIuaCAqLywKLQkJCQk1Q0REODhFQjFFNDNCRjI1MDA2MjFF
OTIgLyogcnRjcF9wYWNrZXQgKi8sCiAJCQkJNUNERDg3RkMxRTQzQkUzQzAwNjIxRTkyIC8qIGJ5
dGVfaW8uaCAqLywKIAkJCQk1Q0REODdGRTFFNDNCRTNDMDA2MjFFOTIgLyogZHRtZl9xdWV1ZS5j
YyAqLywKIAkJCQk1Q0REODdGRjFFNDNCRTNDMDA2MjFFOTIgLyogZHRtZl9xdWV1ZS5oICovLApA
QCAtMTMwMDAsNiArMTMwNzUsOCBAQAogCQkJCTVDREQ4ODEwMUU0M0JFM0MwMDYyMUU5MiAvKiBm
b3J3YXJkX2Vycm9yX2NvcnJlY3Rpb24uaCAqLywKIAkJCQk1Q0REODgwRDFFNDNCRTNDMDA2MjFF
OTIgLyogZm9yd2FyZF9lcnJvcl9jb3JyZWN0aW9uX2ludGVybmFsLmNjICovLAogCQkJCTVDREQ4
ODBFMUU0M0JFM0MwMDYyMUU5MiAvKiBmb3J3YXJkX2Vycm9yX2NvcnJlY3Rpb25faW50ZXJuYWwu
aCAqLywKKwkJCQk0MTc3RjRGODIzODBFN0ZGMDBDMDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmNj
ICovLAorCQkJCTQxNzdGNEY3MjM4MEU3RkYwMEMwNDQ4NiAvKiBoMjY1X3Nwc19wYXJzZXIuaCAq
LywKIAkJCQk1Q0REODgxNTFFNDNCRTNDMDA2MjFFOTIgLyogcGFja2V0X2xvc3Nfc3RhdHMuY2Mg
Ki8sCiAJCQkJNUNERDg4MTYxRTQzQkUzQzAwNjIxRTkyIC8qIHBhY2tldF9sb3NzX3N0YXRzLmgg
Ki8sCiAJCQkJNUNERDg4MTgxRTQzQkUzQzAwNjIxRTkyIC8qIHBsYXlvdXRfZGVsYXlfb3JhY2xl
LmNjICovLApAQCAtMTMwMjEsMTAgKzEzMDk4LDE2IEBACiAJCQkJNDE5QzgyRjgxRkUyMEVGQzAw
NDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXJfY29uZmlnLmggKi8sCiAJCQkJNDE5QzgyRjcxRkUy
MEVGQzAwNDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXJfaW1wbC5jYyAqLywKIAkJCQk0MTlDODJG
QzFGRTIwRUZFMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9pbXBsLmggKi8sCisJCQkJNDEz
MUM0QzkyMzRDODRBMTAwMjhBNjE1IC8qIHJ0cF9kZXBlbmRlbmN5X2Rlc2NyaXB0b3JfZXh0ZW5z
aW9uLmNjICovLAorCQkJCTQxMzFDNENBMjM0Qzg0QTEwMDI4QTYxNSAvKiBydHBfZGVwZW5kZW5j
eV9kZXNjcmlwdG9yX2V4dGVuc2lvbi5oICovLAorCQkJCTQxMzFDNENGMjM0Qzg0QTIwMDI4QTYx
NSAvKiBydHBfZGVwZW5kZW5jeV9kZXNjcmlwdG9yX3JlYWRlci5oICovLAorCQkJCTQxMzFDNEQw
MjM0Qzg0QTIwMDI4QTYxNSAvKiBydHBfZGVwZW5kZW5jeV9kZXNjcmlwdG9yX3dyaXRlci5oICov
LAogCQkJCTVDREQ4ODNBMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0LmNjICovLAogCQkJ
CTVDREQ4ODNCMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0LmggKi8sCiAJCQkJNUNERDg4
MkUxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRfaDI2NC5jYyAqLywKIAkJCQk1Q0REODgy
RjFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF9oMjY0LmggKi8sCisJCQkJNDE3N0Y0Rjky
MzgwRTgwMDAwQzA0NDg2IC8qIHJ0cF9mb3JtYXRfaDI2NS5jYyAqLywKKwkJCQk0MTc3RjRGNjIz
ODBFN0ZGMDBDMDQ0ODYgLyogcnRwX2Zvcm1hdF9oMjY1LmggKi8sCiAJCQkJNUNERDg4MzAxRTQz
QkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRfdmlkZW9fZ2VuZXJpYy5jYyAqLywKIAkJCQk1Q0RE
ODgzMTFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF92aWRlb19nZW5lcmljLmggKi8sCiAJ
CQkJNUNERDg4MzUxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRfdnA4LmNjICovLApAQCAt
MTMwNTcsMTAgKzEzMTQwLDE0IEBACiAJCQkJNUNERDg4NTkxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0
cF9zZW5kZXJfYXVkaW8uaCAqLywKIAkJCQk1Q0REODg1QjFFNDNCRTNDMDA2MjFFOTIgLyogcnRw
X3NlbmRlcl92aWRlby5jYyAqLywKIAkJCQk1Q0REODg1QzFFNDNCRTNDMDA2MjFFOTIgLyogcnRw
X3NlbmRlcl92aWRlby5oICovLAorCQkJCTQxMzFDNEQxMjM0Qzg0QTIwMDI4QTYxNSAvKiBydHBf
c2VxdWVuY2VfbnVtYmVyX21hcC5jYyAqLywKKwkJCQk0MTMxQzREMjIzNEM4NEEzMDAyOEE2MTUg
LyogcnRwX3NlcXVlbmNlX251bWJlcl9tYXAuaCAqLywKIAkJCQk1Q0REODg1RjFFNDNCRTNDMDA2
MjFFOTIgLyogcnRwX3V0aWxpdHkuY2MgKi8sCiAJCQkJNUNERDg4NjAxRTQzQkUzQzAwNjIxRTky
IC8qIHJ0cF91dGlsaXR5LmggKi8sCiAJCQkJNDEwMkY2RTcyMTI3MzQ1RjAwNkFFOEQ3IC8qIHJ0
cF92aWRlb19oZWFkZXIuY2MgKi8sCiAJCQkJNDEwMkY2RUEyMTI3MzQ1RjAwNkFFOEQ3IC8qIHJ0
cF92aWRlb19oZWFkZXIuaCAqLywKKwkJCQk0MTMxQzRDNzIzNEM4NEEwMDAyOEE2MTUgLyogc291
cmNlX3RyYWNrZXIuY2MgKi8sCisJCQkJNDEzMUM0Q0IyMzRDODRBMTAwMjhBNjE1IC8qIHNvdXJj
ZV90cmFja2VyLmggKi8sCiAJCQkJNUNERDg4NjQxRTQzQkUzQzAwNjIxRTkyIC8qIHRpbWVfdXRp
bC5jYyAqLywKIAkJCQk1Q0REODg2NTFFNDNCRTNDMDA2MjFFOTIgLyogdGltZV91dGlsLmggKi8s
CiAJCQkJNUNERDg4NjYxRTQzQkUzQzAwNjIxRTkyIC8qIHRtbWJyX2hlbHAuY2MgKi8sCkBAIC0x
Mzg4MCwxNSArMTM5NjcsMTUgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJNDE5QzgzMjExRkUyNDRGRTAwNDBDMzBGIC8qIGV2ZW50cyAqLywKKwkJCQk0MTlDODQy
MDFGRTI0Qjk2MDA0MEMzMEYgLyogb3V0cHV0ICovLAogCQkJCTQxMzFDM0UwMjM0QzdBMDgwMDI4
QTYxNSAvKiBpY2VfbG9nZ2VyLmNjICovLAogCQkJCTQxMzFDM0REMjM0QzdBMDcwMDI4QTYxNSAv
KiBpY2VfbG9nZ2VyLmggKi8sCiAJCQkJNDEzMUMzRTEyMzRDN0EwODAwMjhBNjE1IC8qIGxvZ2dl
ZF9ldmVudHMuY2MgKi8sCiAJCQkJNDEzMUMzREYyMzRDN0EwODAwMjhBNjE1IC8qIGxvZ2dlZF9l
dmVudHMuaCAqLywKLQkJCQk0MTlDODQyMDFGRTI0Qjk2MDA0MEMzMEYgLyogb3V0cHV0ICovLAot
CQkJCTQxQTA4QkI5MjEyNjk1NTIwMDFENUQ3QiAvKiBydGNfZXZlbnRfaWNlX2NhbmRpZGF0ZV9w
YWlyX2NvbmZpZy5jYyAqLywKLQkJCQk0MUEwOEJCQjIxMjY5NTUyMDAxRDVEN0IgLyogcnRjX2V2
ZW50X2ljZV9jYW5kaWRhdGVfcGFpcl9jb25maWcuaCAqLywKIAkJCQk0MUEwOEJCQzIxMjY5NTUz
MDAxRDVEN0IgLyogcnRjX2V2ZW50X2ljZV9jYW5kaWRhdGVfcGFpci5jYyAqLywKIAkJCQk0MUEw
OEJCQTIxMjY5NTUyMDAxRDVEN0IgLyogcnRjX2V2ZW50X2ljZV9jYW5kaWRhdGVfcGFpci5oICov
LAorCQkJCTQxQTA4QkI5MjEyNjk1NTIwMDFENUQ3QiAvKiBydGNfZXZlbnRfaWNlX2NhbmRpZGF0
ZV9wYWlyX2NvbmZpZy5jYyAqLywKKwkJCQk0MUEwOEJCQjIxMjY5NTUyMDAxRDVEN0IgLyogcnRj
X2V2ZW50X2ljZV9jYW5kaWRhdGVfcGFpcl9jb25maWcuaCAqLywKIAkJCQk0MTkyNDE3ODIxMjcz
OEZCMDA2MzRGQ0YgLyogcnRjX2V2ZW50X2xvZ19pbXBsLmNjICovLAogCQkJCTQxOUM4NDE4MUZF
MjRBRUQwMDQwQzMwRiAvKiBydGNfZXZlbnRfbG9nX3BhcnNlci5jYyAqLywKIAkJCQk0MTlDODQx
QjFGRTI0QUVFMDA0MEMzMEYgLyogcnRjX2V2ZW50X2xvZ19wYXJzZXIuaCAqLywKQEAgLTE0Mjc1
LDEyICsxNDM2MiwxMSBAQAogCQkJCTVDNEI0Njc1MUU0MkFBM0MwMDI2NTFDOCAvKiBjaGFybWFw
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNDdERDFFNDJDMDI5MDAyNjUxQzggLyogY29uZl9k
ZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNEI0NjQ5MUU0MkFBMzQwMDI2NTFDOCAvKiBleHRf
ZGF0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkU2RjIzNEI4NTA2MDAyOEE2MTUgLyogZnB4
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzOTFCMzFFRkM0NTRGMDBDNDUxNkEgLyogaW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTM5MTkzMUVGQzQ0RUIwMEM0NTE2QSAvKiBpbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJFNkMyMzRCODUwNjAwMjhBNjE1IC8qIHV0
aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUVBNTNBRDFFRkMyQzREMDAyRkYwNEMgLyogaW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTM5MUM2MUVGQzQ2NTYwMEM0NTE2QSAvKiBp
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJFNkIyMzRCODUwNjAwMjhBNjE1IC8q
IHNpa2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTM5MURGMUVGQzQ4OUEwMEM0NTE2QSAvKiBp
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjQ2QkExRTQyQUE2NjAwMjY1MUM4IC8q
IGludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNDdEQzFFNDJDMDI2MDAyNjUxQzgg
LyogaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMTQyODgsMjIgKzE0Mzc0LDIzIEBACiAJ
CQkJNUM0QjQ3MjIxRTQyQUFENjAwMjY1MUM4IC8qIGludGVybmFsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MUEzOTFFOTFFRkM0OTA0MDBDNDUxNkEgLyogaW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxRUE1NDA3MUVGQzJEMUIwMDJGRjA0QyAvKiBpbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUJFNkYyMzRCODUwNjAwMjhBNjE1IC8qIGZweC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUM0QjQ2NzcxRTQyQUEzQzAwMjY1MUM4IC8qIGludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MUVBNTNDODFFRkMyQzhCMDAyRkYwNEMgLyogaW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFCRTZEMjM0Qjg1MDYwMDI4QTYxNSAvKiBpc29nZW55LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1QzRCNDYzRTFFNDJBQTJDMDAyNjUxQzggLyogaW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDNEI0NkU3MUU0MkFBOTcwMDI2NTFDOCAvKiBpbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUM0QjQ3NDExRTQyQUFFQTAwMjY1MUM4IC8qIGludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MUEzOTE4MTFFRkM0NDdDMDBDNDUxNkEgLyogaW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxQTM5MTdDMUVGQzQ0N0MwMEM0NTE2QSAvKiBpbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBMzkxODUxRUZDNDQ3QzAwQzQ1MTZBIC8qIGludGVybmFs
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkU2RDIzNEI4NTA2MDAyOEE2MTUgLyogaXNvZ2Vu
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFQTUzQUUxRUZDMkM0RDAwMkZGMDRDIC8qIG1kMzJf
Y29tbW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNDZDOTFFNDJBQTcwMDAyNjUxQzggLyog
b2JqX2RhdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFQTUzQ0MxRUZDMkM4QjAwMkZGMDRDIC8q
IHAyNTYteDg2XzY0LXRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUVBNTNDRTFFRkMyQzhC
MDAyRkYwNEMgLyogcDI1Ni14ODZfNjQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNEI0NjRDMUU0
MkFBMzQwMDI2NTFDOCAvKiBwY3lfaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUVBNTQwRjFF
RkMyRDFCMDAyRkYwNEMgLyogcnNhel9leHAuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRTZC
MjM0Qjg1MDYwMDI4QTYxNSAvKiBzaWtlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkU2QzIz
NEI4NTA2MDAyOEE2MTUgLyogdXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQkNFNzUzMjE0
QzgxQTgwMEE3NDhGMSAvKiBWaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUM0QjQ2N0YxRTQyQUEzQzAwMjY1MUM4IC8qIHZwbV9pbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKQEAgLTE0MzE1LDE4ICsxNDQwMiwyMCBAQAogCQkJZmlsZXMgPSAoCiAJCQkJNUNE
RDhCNkQxRTQzQzJCNTAwNjIxRTkyIC8qIGFic19xdWFudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDhCNkIxRTQzQzJCNTAwNjIxRTkyIC8qIGFic19xdWFudF9sb29wLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzREOTIzNEM4NEEzMDAyOEE2MTUgLyogYWJzb2x1dGVfY2FwdHVyZV90aW1l
X3JlY2VpdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzREQTIzNEM4NEEzMDAyOEE2MTUg
LyogYWJzb2x1dGVfY2FwdHVyZV90aW1lX3NlbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDg5RjkxRTQzQkZCMzAwNjIxRTkyIC8qIGFjY2VsZXJhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMzFDMDU5MjM0Qjg5OEQwMDI4QTYxNSAvKiBkYXRhX3JhdGVfbGltaXRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFFMDJDQTYyMTI3MzUyRDAwQzI3Q0Q2IC8qIGFja25vd2xlZGdlZF9iaXRy
YXRlX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxMjYyMzRCODlFMjAwMjhB
NjE1IC8qIHJlZl9jb3VudGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzFFOTIzNEI4QTRC
MDAyOEE2MTUgLyogY29ubmVjdGlvbl9pbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODUw
QTFFNDNCMUVBMDA2MjFFOTIgLyogYWNtX3JlY2VpdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REODUwQzFFNDNCMUVBMDA2MjFFOTIgLyogYWNtX3Jlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDEzMUJGOTkyMzRCODhBNjAwMjhBNjE1IC8qIGFkYXB0ZWRfdmlkZW9fdHJhY2tfc291
cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZEM0JEQzIxMjczMUMyMDA3NzVGMDkgLyogYWRh
cHRpdmVfYWdjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTVGMUZBNzIxMjcyRkJBMDAwNjRDQkYg
LyogYWRhcHRpdmVfZGlnaXRhbF9nYWluX2FwcGxpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
RDI4NUE1MUU2QTYzNDMwMDk0RkRDOCAvKiBhZGFwdGl2ZV9maXJfZmlsdGVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTMxQzM4MzIzNEI5NTdEMDAyOEE2MTUgLyogYWRhcHRpdmVfZmlyX2ZpbHRl
cl9lcmwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNUYxRkE5MjEyNzJGQkEwMDA2NENCRiAvKiBh
ZGFwdGl2ZV9tb2RlX2xldmVsX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RDNC
REQyMTI3MzFDMjAwNzc1RjA5IC8qIGFkYXB0aXZlX21vZGVfbGV2ZWxfZXN0aW1hdG9yX2FnYy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMyOUYyMzRCOENDNDAwMjhBNjE1IC8qIGFkbV9oZWxw
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVBOTFFNkE2MzQzMDA5NEZEQzggLyogYWVj
M19jb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NUFCMUU2QTYzNDMwMDk0RkRDOCAv
KiBhZWMzX2ZmdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg2QjcxRTQzQjlDMjAwNjIxRTky
IC8qIGFlY19jb21tb24uaCBpbiBIZWFkZXJzICovLApAQCAtMTQzMzUsOTggKzE0NDI0LDgzIEBA
CiAJCQkJNDEzMDkyMTIxRUY4RDUxMTAwNzU3QzU1IC8qIGFlY19kdW1wLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTMwOTIzMDFFRjhENzcxMDA3NTdDNTUgLyogYWVjX2R1bXBfZmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDg2QkYxRTQzQjlDMjAwNjIxRTkyIC8qIGFlY19yZXNhbXBs
ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMzNFMjM0QjhEREYwMDI4QTYxNSAvKiBzZXRf
cmVtb3RlX2Rlc2NyaXB0aW9uX29ic2VydmVyX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNEMjg1QTcxRTZBNjM0MzAwOTRGREM4IC8qIGFlY19zdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDg1RTgxRTQzQjgxMDAwNjIxRTkyIC8qIGFlY21fY29yZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDg1RTkxRTQzQjgxMDAwNjIxRTkyIC8qIGFlY21fZGVmaW5lcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUMzNzQyMzRCOTU3RDAwMjhBNjE1IC8qIGZpbHRlcl9hbmFseXpl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MjcxRTRBOTlEMjAwNDAzOTk1IC8qIGFlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MjQxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19nY21f
b3NzbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MjYxRTRBOTlEMjAwNDAzOTk1IC8qIGFl
c19pY20uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTU3MjM0Qjg5RTIwMDI4QTYxNSAvKiBy
YXRlX3N0YXRpc3RpY3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRkE5MjM0Qjg4QTYwMDI4
QTYxNSAvKiBtZWRpYV9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMDg4NTI1MUU0QTk5
RDIwMDQwMzk5NSAvKiBhZXNfaWNtX29zc2wuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NzAy
MUU0M0JBNzUwMDYyMUU5MiAvKiBhZ2MuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDA2MjM0
QzdCN0UwMDI4QTYxNSAvKiBhdXRvX2NvcnJlbGF0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MTMxQzFDRTIzNEI4QTRCMDAyOEE2MTUgLyogdHVybl9zZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxNkQzQkRGMjEyNzMxQzIwMDc3NUYwOSAvKiBhZ2MyX2NvbW1vbi5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUMxMjIyMzRCODlFMjAwMjhBNjE1IC8qIG9wZW5zc2xfc2Vzc2lvbl9jYWNo
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3MDAxRTQzQkE3NTAwNjIxRTkyIC8qIGFnY19t
YW5hZ2VyX2RpcmVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGRDIxRTQzQ0Q2NjAwNjIx
RTkyIC8qIGFpbWRfcmF0ZV9jb250cm9sLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBRDFBMzIx
MjY1QjEwMDAzRjcyNjMgLyogYWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzQy
OTIzNEM3RDI1MDAyOEE2MTUgLyogYWxpZ25lZF9hcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUM0MjcyMzRDN0QyNTAwMjhBNjE1IC8qIGFsaWduZWRfbWFsbG9jLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1QzA4ODUyODFFNEE5OUQyMDA0MDM5OTUgLyogYWxsb2MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxRTAyQ0FEMjEyNzM1MkQwMEMyN0NENiAvKiBhbHJfZGV0ZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxMzFDMjhGMjM0QjhDQzQwMDI4QTYxNSAvKiB3ZWJydGNfbWVkaWFfZW5n
aW5lX2RlZmF1bHRzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzRENjIzNEM4NEEzMDAyOEE2
MTUgLyogcnRwX2RlcGVuZGVuY3lfZGVzY3JpcHRvcl9leHRlbnNpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4NkVEMUU0M0JBNkQwMDYyMUU5MiAvKiBhbmFsb2dfYWdjLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk0MTMxQzFFNDIzNEI4QTRCMDAyOEE2MTUgLyogc3R1bl9zZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQxMzFDMUQ3MjM0QjhBNEIwMDI4QTYxNSAvKiBiYXNpY19hc3luY19y
ZXNvbHZlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzM3NjIzNEI5NTdEMDAy
OEE2MTUgLyogYXBpX2NhbGxfaml0dGVyX21ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4N0U2MUU0M0JEQTEwMDYyMUU5MiAvKiBhcG1fZGF0YV9kdW1wZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFDMkEyMjM0QjhDQzQwMDI4QTYxNSAvKiBhcG1faGVscGVycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDg5M0MxRTQzQkYzQTAwNjIxRTkyIC8qIGFwcC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUMzRTMyMzRDN0EwODAwMjhBNjE1IC8qIGljZV9sb2dnZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxRjI2M0IzMjEyNjgwQTgwMDI3NEY1OSAvKiBhcmNoLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUJFNzFCMTIxNUM0NjM3MDBBN0IxOTYgLyogYXJjaC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDg3QUExRTQzQkMwNTAwNjIxRTkyIC8qIGFyaXRoX3JvdXRpbmVzLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0MTMxQkY1NzIzNEI4ODIwMDAyOEE2MTUgLyogY2hhbm5lbF9tYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQzM0QwMTFGNzlCMzM0MDAzODdCNEQgLyogYXJp
dGhfcm91dGlucy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxMTEyMzRCODlFMjAwMjhBNjE1
IC8qIHBsYXRmb3JtX3RocmVhZF90eXBlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzN0Iy
MzRCOTU3RDAwMjhBNjE1IC8qIHJldmVyYl9mcmVxdWVuY3lfcmVzcG9uc2UuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFDMDgxMjM0Qjg5OEQwMDI4QTYxNSAvKiBodHRwX2NvbW1vbi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUMzMjEyMzRCOERDMjAwMjhBNjE1IC8qIGZ1bmN0aW9uX3ZpZXcu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRjIwMjM0Qjg4MjAwMDI4QTYxNSAvKiBydGNfc3Rh
dHNfY29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzMxNzIzNEI4REMyMDAyOEE2
MTUgLyogYXJyYXlfdmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwNTIyMzRCODk4RDAw
MjhBNjE1IC8qIGFycmF5c2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQ0JCNzkyMUIxRkZD
MDAwQTVERjI3IC8qIGFzY2lpLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUYyNjNCMTIxMjY4MEE4
MDAyNzRGNTkgLyogYXNtX2RlZmluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNjNGOEQ5MUU0
MTZENTMwMDJDQTUzMSAvKiBhc3NlcnRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzAy
NjIzNEI4OThEMDAyOEE2MTUgLyogYXN5bmNfaW52b2tlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUMwNEIyMzRCODk4RDAwMjhBNjE1IC8qIGFzeW5jX2ludm9rZXJfaW5sLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTMxQzA4NDIzNEI4OThEMDAyOEE2MTUgLyogYXN5bmNfcGFja2V0X3NvY2tl
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMyRjUyMzRCOERDMjAwMjhBNjE1IC8qIGFzeW5j
X3Jlc29sdmVyX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDU4MjM0Qjg5OEQw
MDI4QTYxNSAvKiBhc3luY19yZXNvbHZlcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDMDg4MjM0Qjg5OEQwMDI4QTYxNSAvKiBhc3luY19zb2NrZXQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFDMUVFMjM0QjhBNEIwMDI4QTYxNSAvKiBhc3luY19zdHVuX3RjcF9zb2NrZXQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDNCMjM0Qjg5OEQwMDI4QTYxNSAvKiBhc3luY190
Y3Bfc29ja2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzAyOTIzNEI4OThEMDAyOEE2MTUg
LyogYXN5bmNfdWRwX3NvY2tldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwN0EyMzRCODk4
RDAwMjhBNjE1IC8qIGF0b21pY19vcHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NEFBMUU0
M0FGMTMwMDYyMUU5MiAvKiBhdWRpb19idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
QThFMUU0M0MwMEYwMDYyMUU5MiAvKiBhdWRpb19jaGVja3N1bS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE5MjQxOUYyMTI3NTg4MzAwNjM0RkNGIC8qIGF1ZGlvX2NvZGVjX3BhaXJfaWQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQxMzFCRjkyMjM0Qjg4QTYwMDI4QTYxNSAvKiByaWRfZGVzY3JpcHRp
b24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDM0Q2MjM0Qzc5RDEwMDI4QTYxNSAvKiB2cDhf
dGVtcG9yYWxfbGF5ZXJzX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDJFMjM0
QzdEOEEwMDI4QTYxNSAvKiBnZW5lcmljX2ZyYW1lX2luZm8uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDM0MwMjM0Qjk3QjQwMDI4QTYxNSAvKiBhdWRpb19jb2Rlcl9vcHVzX2NvbW1vbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUM0QjRDNUExRTQzMUY5QzAwMjY1MUM4IC8qIGF1ZGlvX2NvbnZl
cnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg0MTYxRTQzOUIyOTAwNjIxRTkyIC8qIGF1
ZGlvX2RlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NTQ1MUU2QTYxRDIwMDk0RkRD
OCAvKiBhdWRpb19kZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODU0MzFFNkE2MUQy
MDA5NEZEQzggLyogYXVkaW9fZGVjb2Rlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUY5QkY5ODIwNTFDODIxMDBBQkYwQjkgLyogYXVkaW9fZGVjb2Rlcl9mYWN0b3J5X3RlbXBsYXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODNFODFGRTI0ODM1MDA0MEMzMEYgLyogYXVkaW9f
ZGVjb2Rlcl9nNzExLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA2RTIzNEI4OThEMDAyOEE2
MTUgLyogbWVtb3J5X3VzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQwQjgzMjFFNEUzMzk2
MDA3NDA5RTYgLyogYXVkaW9fZGVjb2Rlcl9nNzIyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlD
ODMzRDFGRTI0NjIzMDA0MEMzMEYgLyogYXVkaW9fZGVjb2Rlcl9nNzIyLmggaW4gSGVhZGVycyAq
LywKLQkJCQk0MTMxQzAzNzIzNEI4OThEMDAyOEE2MTUgLyogZmFrZV9uZXR3b3JrLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTMxQzA1MTIzNEI4OThEMDAyOEE2MTUgLyogZXZlbnRfdHJhY2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI2RjFFNDNDMkI1MDA2MjFFOTIgLyogYXVkaW9fZGVj
b2Rlcl9pbGJjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODRCRTFGRTMxOTQ0MDA0MEMzMEYg
LyogYXVkaW9fZGVjb2Rlcl9pbGJjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODM2RTFGRTI0
NkNBMDA0MEMzMEYgLyogYXVkaW9fZGVjb2Rlcl9pc2FjLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MTMxQzQwMDIzNEM3QjM1MDAyOEE2MTUgLyogaGlnaF9wYXNzX2ZpbHRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE5QzgzNjcxRkUyNDZDQTAwNDBDMzBGIC8qIGF1ZGlvX2RlY29kZXJfaXNhY19m
aXguaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzZEMUZFMjQ2Q0EwMDQwQzMwRiAvKiBhdWRp
b19kZWNvZGVyX2lzYWNfZmxvYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzBBMUU0M0Mz
NDYwMDYyMUU5MiAvKiBhdWRpb19kZWNvZGVyX2lzYWNfdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDEzMUMzNDUyMzRCOERERjAwMjhBNjE1IC8qIHJ0cF9wYWNrZXRfaW5mby5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUMxNEQyMzRCODlFMjAwMjhBNjE1IC8qIHNvY2tldF9hZGRyZXNzX3BhaXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzA5MUU0M0MzNDYwMDYyMUU5MiAvKiBhdWRpb19k
ZWNvZGVyX2lzYWNfdF9pbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODNGMDFGRTI0ODhE
MDA0MEMzMEYgLyogYXVkaW9fZGVjb2Rlcl9MMTYuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFD
M0ZEMjM0QzdCMDMwMDI4QTYxNSAvKiBhdWRpb19kZWNvZGVyX211bHRpX2NoYW5uZWxfb3B1cy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzRkIyMzRDN0IwMzAwMjhBNjE1IC8qIGF1ZGlvX2Rl
Y29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEz
MUMzQzIyMzRCOTdCNDAwMjhBNjE1IC8qIGF1ZGlvX2RlY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVz
X2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzYxMUU0M0M2MDkwMDYyMUU5MiAvKiBh
dWRpb19kZWNvZGVyX29wdXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MkYyMUZFMjBFQjUw
MDQwQzMwRiAvKiBhdWRpb19kZWNvZGVyX29wdXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDBC
ODIzMUU0RTMzODMwMDc0MDlFNiAvKiBhdWRpb19kZWNvZGVyX3BjbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDhGRkQxRTQzQ0UzQTAwNjIxRTkyIC8qIGF1ZGlvX2RlY29kZXJfcGNtMTZiLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzE2MzIzNEI4OUUyMDAyOEE2MTUgLyogd2Vha19wdHIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDM0FCMjM0Qjk2QzMwMDI4QTYxNSAvKiBjaGFubmVs
X2xheW91dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGNDcyMzRCODgyMDAwMjhBNjE1IC8q
IHNkcF91dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NUY2MTMxRkUxRTE2RjAwRUI5Q0FG
IC8qIGF1ZGlvX2RldmljZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzMTgyMzRCOERDMjAw
MjhBNjE1IC8qIGpzZXBfaWNlX2NhbmRpZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMxMTlG
RkMxRTQ1NzQwMDAwNEYwOTg3IC8qIGF1ZGlvX2RldmljZV9idWZmZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDMTE5RkZEMUU0NTc0MDAwMDRGMDk4NyAvKiBhdWRpb19kZXZpY2VfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTQ1RjYxNDFGRTFFMTZGMDBFQjlDQUYgLyogYXVkaW9fZGV2
aWNlX2RhdGFfb2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDVGNjEyMUZFMUUxNkYw
MEVCOUNBRiAvKiBhdWRpb19kZXZpY2VfZGVmaW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMx
MUEwMUUxRTQ1NzU3ODAwNEYwOTg3IC8qIGF1ZGlvX2RldmljZV9kdW1teS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUMxMTlGRkYxRTQ1NzQwMDAwNEYwOTg3IC8qIGF1ZGlvX2RldmljZV9nZW5lcmlj
LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzQ3MzIzNEM4MUI2MDAyOEE2MTUgLyogcnRjX2V2
ZW50X2xvZ19mYWN0b3J5X2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzODEy
MzRCOTU3RDAwMjhBNjE1IC8qIHJldmVyYl9kZWNheV9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDRkQ1MzdDMUU0QkE0RjUwMDQ4MjkwOCAvKiBhdWRpb19kZXZpY2VfaW9zLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0MTMxQzU0RjIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X3Zp
ZGVvX3JlY2VpdmVfc3RyZWFtX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMxMUEwMEMx
RTQ1NzQ0ODAwNEYwOTg3IC8qIGF1ZGlvX2RldmljZV9tYWMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNDVFNEUwMUVGOENEMzkwMEZDRjZFNiAvKiBhdWRpb19lbmNvZGVyLmggaW4gSGVhZGVycyAq
LywKLQkJCQk0MTMxQzQzRDIzNEM4MDA3MDAyOEE2MTUgLyogcGZmZnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4NDE4MUU0MzlCMjkwMDYyMUU5MiAvKiBhdWRpb19lbmNvZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REOENBODFFNDNDNkY3MDA2MjFFOTIgLyogYXVkaW9fZW5jb2Rlcl9j
bmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4RkY0MUU0M0NERjQwMDYyMUU5MiAvKiBhdWRp
b19lbmNvZGVyX2NvcHlfcmVkLmggaW4gSGVhZGVycyAqLywKQEAgLTE0NDM4LDM1NyArMTQ1MTIs
MzQyIEBACiAJCQkJNDE5QzgzM0MxRkUyNDYyMzAwNDBDMzBGIC8qIGF1ZGlvX2VuY29kZXJfZzcy
Ml9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QjcxMUU0M0MyQjUwMDYyMUU5MiAv
KiBhdWRpb19lbmNvZGVyX2lsYmMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4NEMwMUZFMzE5
NDQwMDQwQzMwRiAvKiBhdWRpb19lbmNvZGVyX2lsYmMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
MzFDMzk0MjM0Qjk1N0QwMDI4QTYxNSAvKiBmdWxsYmFuZF9lcmxlX2VzdGltYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE5Qzg0QkMxRkUzMTk0NDAwNDBDMzBGIC8qIGF1ZGlvX2VuY29kZXJf
aWxiY19jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzY2MUZFMjQ2Q0EwMDQwQzMw
RiAvKiBhdWRpb19lbmNvZGVyX2lzYWMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRjVFMjM0
Qjg4MjAwMDI4QTYxNSAvKiBjaGFubmVsX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDEzMUJGNTIyMzRCODgyMDAwMjhBNjE1IC8qIHNpbXVsY2FzdF9kZXNjcmlwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE5QzgzNjgxRkUyNDZDQTAwNDBDMzBGIC8qIGF1ZGlvX2VuY29kZXJf
aXNhY19maXguaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzY5MUZFMjQ2Q0EwMDQwQzMwRiAv
KiBhdWRpb19lbmNvZGVyX2lzYWNfZmxvYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzBD
MUU0M0MzNDYwMDYyMUU5MiAvKiBhdWRpb19lbmNvZGVyX2lzYWNfdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEzMUMwNTUyMzRCODk4RDAwMjhBNjE1IC8qIGJ1ZmZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDhDMEIxRTQzQzM0NjAwNjIxRTkyIC8qIGF1ZGlvX2VuY29kZXJfaXNhY190X2lt
cGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0YzMUZFMjQ4OEQwMDQwQzMwRiAvKiBhdWRp
b19lbmNvZGVyX0wxNi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzRjcyMzRDN0IwMzAwMjhB
NjE1IC8qIGF1ZGlvX2VuY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MTMxQzNGODIzNEM3QjAzMDAyOEE2MTUgLyogYXVkaW9fZW5jb2Rlcl9tdWx0aV9jaGFu
bmVsX29wdXNfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzNDMTIzNEI5N0I0MDAy
OEE2MTUgLyogYXVkaW9fZW5jb2Rlcl9tdWx0aV9jaGFubmVsX29wdXNfaW1wbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhDNjQxRTQzQzYwOTAwNjIxRTkyIC8qIGF1ZGlvX2VuY29kZXJfb3B1
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgyRjAxRkUyMEVCNTAwNDBDMzBGIC8qIGF1ZGlv
X2VuY29kZXJfb3B1cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGM0MyMzRCODgyMDAwMjhB
NjE1IC8qIGppdHRlcl9idWZmZXJfZGVsYXlfcHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
OUM4MkYxMUZFMjBFQjUwMDQwQzMwRiAvKiBhdWRpb19lbmNvZGVyX29wdXNfY29uZmlnLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTQwQjgyMTFFNEUzMzgzMDA3NDA5RTYgLyogYXVkaW9fZW5jb2Rl
cl9wY20uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4RkZGMUU0M0NFM0EwMDYyMUU5MiAvKiBh
dWRpb19lbmNvZGVyX3BjbTE2Yi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzMDMyMzRCOERD
MjAwMjhBNjE1IC8qIGNvbmdlc3Rpb25fY29udHJvbF9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDRDI4NTQ3MUU2QTYxRDIwMDk0RkRDOCAvKiBhdWRpb19mb3JtYXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxRERCMjZEMjEyNjc5RDIwMDI5NkQ0NyAvKiBhdWRpb19mb3JtYXRfdG9f
c3RyaW5nLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzRBMjIzNEM4MzRFMDAyOEE2MTUgLyog
YnVmZmVyZWRfZnJhbWVfZGVjcnlwdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzAzODIz
NEI4OThEMDAyOEE2MTUgLyoga2VlcF9yZWZfdW50aWxfZG9uZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDEzMUMzQTgyMzRCOTZDMzAwMjhBNjE1IC8qIGF1ZGlvX2ZyYW1lLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0QyODQ5MzFFNkE1RjQxMDA5NEZEQzggLyogYXVkaW9fZnJhbWVfbWFuaXB1bGF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NTRFMUU2QTYyMTMwMDk0RkRDOCAvKiBhdWRp
b19mcmFtZV9vcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTAyRjZBMjIxMjczMjYy
MDA2QUU4RDcgLyogYXVkaW9fbGV2ZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTkwMUU0
M0MwMEYwMDYyMUU5MiAvKiBhdWRpb19sb29wLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzNB
NjIzNEI5NkMzMDAyOEE2MTUgLyogYXVkaW9fbWl4ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
RDI4NDk2MUU2QTVGNDEwMDk0RkRDOCAvKiBhdWRpb19taXhlcl9pbXBsLmggaW4gSGVhZGVycyAq
LywKLQkJCQk0MTMxQzRCOTIzNEM4M0REMDAyOEE2MTUgLyogbG9zc19ub3RpZmljYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTVDMTFBMDBFMUU0NTc0NDgwMDRGMDk4NyAvKiBhdWRpb19taXhl
cl9tYW5hZ2VyX21hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBMDIxRTQzQkZCMzAwNjIx
RTkyIC8qIGF1ZGlvX211bHRpX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGN0Ex
RTQzQ0JFMDAwNjIxRTkyIC8qIGF1ZGlvX25ldHdvcmtfYWRhcHRvcl9pbXBsLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk0MTMxQkY0MDIzNEI4ODIwMDAyOEE2MTUgLyogdmlkZW9fcnRwX3JlY2VpdmVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzMwNDIzNEI4REMyMDAyOEE2MTUgLyogYXVkaW9f
b3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGRUExRTQzQ0RDQTAwNjIxRTkyIC8q
IGF1ZGlvX3Byb2Nlc3NpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NEFDMUU0M0FGMTMw
MDYyMUU5MiAvKiBhdWRpb19wcm9jZXNzaW5nX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
OUM4MjlFMUZFMjBEMUMwMDQwQzMwRiAvKiBhdWRpb19wcm9jZXNzaW5nX3N0YXRpc3RpY3MuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4QUNEMUU0M0MyMzkwMDYyMUU5MiAvKiBhdWRpb19yZWNl
aXZlX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg0QjAxRTZBNUY5RjAwOTRGREM4
IC8qIGF1ZGlvX3JlY2VpdmVfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkY1QzIz
NEI4ODIwMDAyOEE2MTUgLyogYXVkaW9fcnRwX3JlY2VpdmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REOEFEMDFFNDNDMjM5MDA2MjFFOTIgLyogYXVkaW9fc2VuZF9zdHJlYW0uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDRDI4NEIyMUU2QTVGOUYwMDk0RkRDOCAvKiBhdWRpb19zZW5kX3N0cmVh
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNGRDUzODAxRTRCQTRGNTAwNDgyOTA4IC8qIGF1ZGlv
X3Nlc3Npb25fb2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzRGMUU0M0M1OEUw
MDYyMUU5MiAvKiBhdWRpb19zaW5rLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzM4MzIzNEI5
NTdEMDAyOEE2MTUgLyogYWRhcHRpdmVfZmlyX2ZpbHRlcl9lcmwuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDMTM5MjM0Qjg5RTIwMDI4QTYxNSAvKiBvcGVuc3NsX2lkZW50aXR5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REOEE5MjFFNDNDMDBGMDA2MjFFOTIgLyogYXVkaW9fc2luay5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGOEMyMzRCODhBNjAwMjhBNjE1IC8qIHR1cm5fdXRpbHMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRkEwMjM0Qjg4QTYwMDI4QTYxNSAvKiBhdWRpb19z
b3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QUQzMUU0M0MyMzkwMDYyMUU5MiAvKiBh
dWRpb19zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg0QjMxRTZBNUY5RjAwOTRGREM4
IC8qIGF1ZGlvX3N0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzNFNTIzNEM3QTA4MDAy
OEE2MTUgLyogbG9nZ2VkX2V2ZW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGMDUyMzRC
ODgyMDAwMjhBNjE1IC8qIGF1ZGlvX3RyYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzRB
RTIzNEM4MzgwMDAyOEE2MTUgLyogYXVkaW9fdHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MUY5QkY5QzIwNTFDODRDMDBBQkYwQjkgLyogYXVkaW9fdHJhbnNwb3J0X2ltcGwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxRjlCRkEwMjA1MUM4ODUwMEFCRjBCOSAvKiBhdWRpb191dGlsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEEwNTFFNDNCRkIzMDA2MjFFOTIgLyogYXVkaW9fdmVj
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI3MzFFNDNDMkI1MDA2MjFFOTIgLyogYXVn
bWVudGVkX2NiX2NvcnIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRjFDMjM0Qjg4MjAwMDI4
QTYxNSAvKiB3ZWJydGNfc2RwLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyOTFFNEE5OUQy
MDA0MDM5OTUgLyogYXV0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0MDYyMzRDN0I3RTAw
MjhBNjE1IC8qIGF1dG9fY29ycmVsYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNjNGOERB
MUU0MTZENTMwMDJDQTUzMSAvKiBhdXRvbGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhB
MDgxRTQzQkZCMzAwNjIxRTkyIC8qIGJhY2tncm91bmRfbm9pc2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxQTA4QkM3MjEyNjk1REUwMDFENUQ3QiAvKiBiYWRfb3B0aW9uYWxfYWNjZXNzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTkyNDE4MjIxMjc0OTcxMDA2MzRGQ0YgLyogYmFkX3ZhcmlhbnRf
YWNjZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdBRjFFNDNCQzA1MDA2MjFFOTIgLyog
YmFuZHdpZHRoX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0MzNEMjQxRjc5QjMz
NDAwMzg3QjREIC8qIGJhbmR3aWR0aF9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
MzFDMEZCMjM0Qjg5RTIwMDI4QTYxNSAvKiBzc2xfc3RyZWFtX2FkYXB0ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4QzBEMUU0M0MzNDYwMDYyMUU5MiAvKiBiYW5kd2lkdGhfaW5mby5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMwNzYyMzRCODk4RDAwMjhBNjE1IC8qIG1kbnNfcmVzcG9u
ZGVyX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxQ0MyMTI3NTkzRjAwNjM0
RkNGIC8qIGJhbmR3aWR0aF9zYW1wbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUYyNjNCODIx
MjY4MTBDMDAyNzRGNTkgLyogYmFzZTY0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkY5OTIz
NEI4OEE2MDAyOEE2MTUgLyogYWRhcHRlZF92aWRlb190cmFja19zb3VyY2UuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFDMDY0MjM0Qjg5OEQwMDI4QTYxNSAvKiBjaGVja3MuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMzFDMUQ3MjM0QjhBNEIwMDI4QTYxNSAvKiBiYXNpY19hc3luY19yZXNvbHZl
cl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFBRTIzNEI4QTRBMDAyOEE2MTUg
LyogYmFzaWNfcGFja2V0X3NvY2tldF9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMx
QzQ1NjIzNEM4MTE4MDAyOEE2MTUgLyogYmFzaWNfcG9ydF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxOTI0MUM2MjEyNzU5M0YwMDYzNEZDRiAvKiBiYnJfZmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUMwMjcyMzRCODk4RDAwMjhBNjE1IC8qIG5ldHdvcmtfbW9uaXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxQzMyMTI3NTkzRjAwNjM0RkNGIC8qIGJicl9u
ZXR3b3JrX2NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDdDMjM0QzgyMTQw
MDI4QTYxNSAvKiBub2lzZV9zdXBwcmVzc2lvbl9wcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUMwNjUyMzRCODk4RDAwMjhBNjE1IC8qIGJpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
NkQzQkUxMjEyNzMxQzIwMDc3NUYwOSAvKiBiaXF1YWRfZmlsdGVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQk0MTMxQzU0NDIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2R0bHNfd3JpdGFibGVf
c3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDQzMjM0Qjg5OEQwMDI4QTYxNSAvKiBi
aXRfYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTEwOUFCMDFFNUZBMTkyMDBDMDk1NUEg
LyogYml0cmF0ZV9hZGp1c3Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1MzAxRTQzQjM5
QzAwNjIxRTkyIC8qIGJpdHJhdGVfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMx
QkY5MzIzNEI4OEE2MDAyOEE2MTUgLyogcnRwX3V0aWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTMxQzMwRjIzNEI4REMyMDAyOEE2MTUgLyogYml0cmF0ZV9jb25zdHJhaW50cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhGN0UxRTQzQ0JFMDAwNjIxRTkyIC8qIGJpdHJhdGVfY29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFMDJDQUMyMTI3MzUyRDAwQzI3Q0Q2IC8qIGJpdHJh
dGVfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA4ODIzNEI4OThEMDAyOEE2
MTUgLyogYXN5bmNfc29ja2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEZBMTFFNDNDQ0JF
MDA2MjFFOTIgLyogYml0cmF0ZV9wcm9iZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDZE
MjM0Qjg5OEQwMDI4QTYxNSAvKiBtZW1vcnlfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUUwMkNEMDIxMjczNUI3MDBDMjdDRDYgLyogYml0cmF0ZV9zZXR0aW5ncy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDFCRTcxQTgyMTVDNDYzNzAwQTdCMTk2IC8qIGJpdHZlY3QuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMzFDMzkzMjM0Qjk1N0QwMDI4QTYxNSAvKiBibG9ja19idWZmZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxMzFDMzgwMjM0Qjk1N0QwMDI4QTYxNSAvKiBibG9ja19kZWxheV9i
dWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NUFEMUU2QTYzNDMwMDk0RkRDOCAvKiBi
bG9ja19mcmFtZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Njg4MUU0M0I5MzkwMDYyMUU5
MiAvKiBibG9ja19tZWFuX2NhbGN1bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NUIx
MUU2QTYzNDMwMDk0RkRDOCAvKiBibG9ja19wcm9jZXNzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDRDI4NUFGMUU2QTYzNDMwMDk0RkRDOCAvKiBibG9ja19wcm9jZXNzb3JfbWV0cmljcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwNTUyMzRCODk4RDAwMjhBNjE1IC8qIGJ1ZmZlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBMEIxRTQzQkZCMzAwNjIxRTkyIC8qIGJ1ZmZlcl9sZXZl
bF9maWx0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDVEMjM0Qjg5OEQwMDI4QTYxNSAv
KiBidWZmZXJfcXVldWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNEEyMjM0QzgzNEUwMDI4
QTYxNSAvKiBidWZmZXJlZF9mcmFtZV9kZWNyeXB0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
RDI4NTQ5MUU2QTYxRDIwMDk0RkRDOCAvKiBidWlsdGluX2F1ZGlvX2RlY29kZXJfZmFjdG9yeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMDkxRkMxRUY4Q0ZGODAwNzU3QzU1IC8qIGJ1aWx0aW5f
YXVkaW9fZW5jb2Rlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkYwQzIzNEI4
ODIwMDAyOEE2MTUgLyogbWVkaWFfc3RyZWFtX29ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MUZDQkIxRTIxQjFGN0NEMDBBNURGMjcgLyogYnVpbHRpbl92aWRlb19iaXRyYXRlX2FsbG9j
YXRvcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUYyNjM2MDIxMjY3QURGMDAyNzRG
NTkgLyogYnVpbHRpbl92aWRlb19kZWNvZGVyX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxRjI2MzYxMjEyNjdBREYwMDI3NEY1OSAvKiBidWlsdGluX3ZpZGVvX2VuY29kZXJfZmFjdG9y
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCNzUxRTQzQzJCNTAwNjIxRTkyIC8qIGJ3X2V4
cGFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5M0YxRTQzQkYzQTAwNjIxRTkyIC8qIGJ5
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzODAyMzRCOTU3RDAwMjhBNjE1IC8qIGJsb2Nr
X2RlbGF5X2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwNzUyMzRCODk4RDAwMjhB
NjE1IC8qIGJ5dGVfYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODg3NjFFNDNCRTND
MDA2MjFFOTIgLyogYnl0ZV9pby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM0NjUyMzRDODE3
MjAwMjhBNjE1IC8qIHZpZGVvX2NvZGVjX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUMwNDAyMzRCODk4RDAwMjhBNjE1IC8qIGJ5dGVfb3JkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxQkU3MUFFMjE1QzQ2MzcwMEE3QjE5NiAvKiBieXRlY29kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNEMjg0QjgxRTZBNUY5RjAwOTRGREM4IC8qIGNhbGwuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDMURBMjM0QjhBNEIwMDI4QTYxNSAvKiBmYWtlX2R0bHNfdHJhbnNwb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MUQ2QjQ1NDIxMjczMTU5MDA4RjkzNTMgLyogY2FsbF9jb25maWcu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNDc4MjM0QzgxRUEwMDI4QTYxNSAvKiBjYWxsX2Zh
Y3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NTEzMUU0M0IxRUEwMDYyMUU5MiAvKiBj
YWxsX3N0YXRpc3RpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NTlEMUU0M0I1QzAwMDYy
MUU5MiAvKiBjYWxsX3N0YXRzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA0MDIzNEI4OThE
MDAyOEE2MTUgLyogYnl0ZV9vcmRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwNkEyMzRC
ODk4RDAwMjhBNjE1IC8qIGNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDE3NTIx
MjczOEMyMDA2MzRGQ0YgLyogY2FsbGZhY3RvcnlpbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxMzFDMzBEMjM0QjhEQzIwMDI4QTYxNSAvKiBjYW5kaWRhdGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFDMUM0MjM0QjhBNEEwMDI4QTYxNSAvKiBjYW5kaWRhdGVfcGFpcl9pbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDM0VFMjM0QzdBNDkwMDI4QTYxNSAvKiBjYXNj
YWRlZF9iaXF1YWRfZmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI3NzFFNDNDMkI1
MDA2MjFFOTIgLyogY2JfY29uc3RydWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI3RDFF
NDNDMkI1MDA2MjFFOTIgLyogY2JfbWVtX2VuZXJneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDhCNzkxRTQzQzJCNTAwNjIxRTkyIC8qIGNiX21lbV9lbmVyZ3lfYXVnbWVudGF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REOEI3QjFFNDNDMkI1MDA2MjFFOTIgLyogY2JfbWVtX2VuZXJn
eV9jYWxjLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzQ1NTIzNEM4MTE4MDAyOEE2MTUgLyog
cmVsYXlfcG9ydF9mYWN0b3J5X2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhC
ODExRTQzQzJCNTAwNjIxRTkyIC8qIGNiX3NlYXJjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDhCN0YxRTQzQzJCNTAwNjIxRTkyIC8qIGNiX3NlYXJjaF9jb3JlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REOEI4MzFFNDNDMkI1MDA2MjFFOTIgLyogY2JfdXBkYXRlX2Jlc3RfaW5kZXguaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFCRjBBMjM0Qjg4MjAwMDI4QTYxNSAvKiBjaGFubmVsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNEM2NTFFNDMxRjlDMDAyNjUxQzggLyogY2hhbm5lbF9i
dWZmZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTJCMjM0Qjg5RTIwMDI4QTYxNSAvKiBv
cGVuc3NsX3N0cmVhbV9hZGFwdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEY4MTFFNDND
QkUwMDA2MjFFOTIgLyogY2hhbm5lbF9jb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTMxQkY1RTIzNEI4ODIwMDAyOEE2MTUgLyogY2hhbm5lbF9pbnRlcmZhY2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMzFDM0FCMjM0Qjk2QzMwMDI4QTYxNSAvKiBjaGFubmVsX2xheW91dC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGNTcyMzRCODgyMDAwMjhBNjE1IC8qIGNoYW5uZWxfbWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0NEQyMzRDODBEQzAwMjhBNjE1IC8qIGNo
YW5uZWxfbWl4ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNDRCMjM0QzgwREMwMDI4QTYx
NSAvKiBjaGFubmVsX21peGluZ19tYXRyaXguaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzk1M0Q2
MjE2OTgzNEYwMDI4MjY2QiAvKiBjaGFubmVsX3JlY2VpdmUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNzk1M0Q0MjE2OTgzNEYwMDI4MjY2QiAvKiBjaGFubmVsX3NlbmQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4Qjg1MUU0M0MyQjUwMDYyMUU5MiAvKiBjaGVieXNoZXYuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMzFDMDY0MjM0Qjg5OEQwMDI4QTYxNSAvKiBjaGVja3MuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDMDg4NTJBMUU0QTk5RDIwMDQwMzk5NSAvKiBjaXBoZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4NkEyMUU0M0I5OTQwMDYyMUU5MiAvKiBjaXJjdWxhcl9idWZmZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTQxMzFDMTA4MjM0Qjg5RTIwMDI4QTYxNSAvKiBwcm94eV9zZXJ2
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMzczMjM0Qjk1N0QwMDI4QTYxNSAvKiBjbG9j
a2RyaWZ0X2RldGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUZDQkI3NjIxQjFGRkE0MDBB
NURGMjcgLyogY29jb2FfdGhyZWFkaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdCMDFF
NDNCQzA1MDA2MjFFOTIgLyogY29kZWMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRUYyMjM0
Qjg4MjAwMDI4QTYxNSAvKiB3ZWJydGNfc2Vzc2lvbl9kZXNjcmlwdGlvbl9mYWN0b3J5LmggaW4g
SGVhZGVycyAqLywKLQkJCQk0MTMxQkY1QTIzNEI4ODIwMDAyOEE2MTUgLyogZHRtZl9zZW5kZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDMzQ0YzMUY3OUIzMzQwMDM4N0I0RCAvKiBjb2RlYy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGOUIyMzRCODhBNjAwMjhBNjE1IC8qIGNvZGVjLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODNDOTFFNDM5QTZGMDA2MjFFOTIgLyogY29kZWNfdGlt
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJGNkUyMjEyNzM0MTYwMDZBRThENyAvKiBjb2xv
cl9zcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBMEUxRTQzQkZCMzAwNjIxRTkyIC8q
IGNvbWZvcnRfbm9pc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDVFMjM0Qjg5OEQwMDI4
QTYxNSAvKiBpZmFkZHJzX2NvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1QjUx
RTZBNjM0MzAwOTRGREM4IC8qIGNvbWZvcnRfbm9pc2VfZ2VuZXJhdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REODcyNzFFNDNCQUJFMDA2MjFFOTIgLyogY29tbW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REODRBRDFFNDNBRjEzMDA2MjFFOTIgLyogY29tbW9uLmggaW4gSGVhZGVycyAq
LywKLQkJCQk0MTMxQzE0MTIzNEI4OUUyMDAyOEE2MTUgLyogcmFjZV9jaGVja2VyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTMxQzA4NzIzNEI4OThEMDAyOEE2MTUgLyogaGVscGVycy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUMxNDkyMzRCODlFMjAwMjhBNjE1IC8qIHJlZl9jb3VudGVkX29i
amVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhDODYxRTQzQzY2MDAwNjIxRTkyIC8qIGNv
bW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxM0YyMTI3MzcyNDAwNjM0RkNGIC8qIGNv
bW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NDIxRTQzQkYzQTAwNjIxRTkyIC8qIGNv
bW1vbl9oZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNkNERDRDMUU0MTM1OTgwMDk3NTRF
MyAvKiBjb21tb25fdHlwZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMzNCMjM0QjhEREYw
MDI4QTYxNSAvKiBydHBfcGFja2V0X2luZm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI4
NzFFNDNDMkI1MDA2MjFFOTIgLyogY29tcF9jb3JyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMx
QzEwRTIzNEI4OUUyMDAyOEE2MTUgLyogb3BlbnNzbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEz
MUMwNzIyMzRCODk4RDAwMjhBNjE1IC8qIGNvbXBpbGVfYXNzZXJ0X2MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4NjQ2MUU0M0I4QjUwMDYyMUU5MiAvKiBjb21wbGV4X2ZmdF90YWJsZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFCRjM5MjM0Qjg4MjAwMDI4QTYxNSAvKiBjb21wb3NpdGVf
cnRwX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NDUxRTQzQkYzQTAwNjIx
RTkyIC8qIGNvbXBvdW5kX3BhY2tldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE1RjFGQUIyMTI3
MkZCQTAwMDY0Q0JGIC8qIGNvbXB1dGVfaW50ZXJwb2xhdGVkX2dhaW5fY3VydmUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxMzFDNERCMjM0Qzg0QTMwMDI4QTYxNSAvKiBydHBfZGVwZW5kZW5jeV9k
ZXNjcmlwdG9yX3JlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGRUMxRTQzQ0RDQTAw
NjIxRTkyIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM2M0Y4REIxRTQxNkQ1MzAw
MkNBNTMxIC8qIGNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzMDMyMzRCOERDMjAw
MjhBNjE1IC8qIGNvbmdlc3Rpb25fY29udHJvbF9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxRkNCQjQwMjFCMUZEQjgwMEE1REYyNyAvKiBjb25nZXN0aW9uX3dpbmRvd19wdXNoYmFj
a19jb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFDRjIzNEI4QTRCMDAyOEE2
MTUgLyogY29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxRTkyMzRCOEE0QjAw
MjhBNjE1IC8qIGNvbm5lY3Rpb25faW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBOTQx
RTQzQzAwRjAwNjIxRTkyIC8qIGNvbnN0YW50X3BjbV9wYWNrZXRfc291cmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0REOEI4QTFFNDNDMkI1MDA2MjFFOTIgLyogY29uc3RhbnRzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTMxQzI5MDIzNEI4Q0M0MDAyOEE2MTUgLyogY29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTMxQzA4QTIzNEI4OThEMDAyOEE2MTUgLyogY29uc3RydWN0b3Jf
bWFnaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0FEMUE0MjEyNjVCMTAwMDNGNzI2MyAvKiBj
b250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRkNCQjM4MjFCMUY4RkMwMEE1REYyNyAv
KiBjb250cm9sX2hhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Rjg2MUU0M0NCRTAw
MDYyMUU5MiAvKiBjb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEY4NDFFNDND
QkUwMDA2MjFFOTIgLyogY29udHJvbGxlcl9tYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MTMxQzQyNTIzNEM3RDI1MDAyOEE2MTUgLyogZmlmb19idWZmZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDREQ4QUQ0MUU0M0MyMzkwMDYyMUU5MiAvKiBjb252ZXJzaW9uLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzA3MzIzNEI4OThEMDAyOEE2MTUgLyogY29weV9vbl93cml0ZV9idWZmZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxQkU3MUJDMjE1QzQ2MzcwMEE3QjE5NiAvKiBjb3JldHlw
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM0RkQyMzRDODZDQjAwMjhBNjE1IC8qIHlpZWxk
X3BvbGljeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwNEMyMzRCODk4RDAwMjhBNjE1IC8q
IGNwdV90aW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdCMjFFNDNCQzA1MDA2MjFFOTIg
LyogY3JjLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzFCMzIzNEI4QTRBMDAyOEE2MTUgLyog
cG9ydF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDg1MjM0Qjg5OEQwMDI4
QTYxNSAvKiBjcmMzMi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCOEMxRTQzQzJCNTAwNjIx
RTkyIC8qIGNyZWF0ZV9hdWdtZW50ZWRfdmVjLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzEw
NTIzNEI4OUUyMDAyOEE2MTUgLyogc3RyaW5nX3RvX251bWJlci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNDEzMUM1NEUyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9ydGNwX3BhY2tldF9vdXRn
b2luZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMyRUQyMzRCOERDMjAwMjhBNjE1IC8qIGNy
ZWF0ZV9wZWVyY29ubmVjdGlvbl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzAy
RTIzNEI4OThEMDAyOEE2MTUgLyogY3JpdGljYWxfc2VjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDhBMTAxRTQzQkZCMzAwNjIxRTkyIC8qIGNyb3NzX2NvcnJlbGF0aW9uLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTMxQzMxQzIzNEI4REMyMDAyOEE2MTUgLyogbWVkaWFfdHJhbnNwb3J0
X2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzMEUyMzRCOERDMjAwMjhBNjE1
IC8qIGR0bWZfc2VuZGVyX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM0REEy
MzRDODRBMzAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGltZV9zZW5kZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMzFDMDRFMjM0Qjg5OEQwMDI4QTYxNSAvKiBjcnlwdF9zdHJpbmcuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDMDg4NTJCMUU0QTk5RDIwMDQwMzk5NSAvKiBjcnlwdG9fa2Vy
bmVsLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzFDNjIzNEI4QTRBMDAyOEE2MTUgLyogZHRs
c190cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDM0I0MjM0Qjk3MTIwMDI4QTYx
NSAvKiBjcnlwdG9fb3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzMDkyMzRCOERD
MjAwMjhBNjE1IC8qIGNyeXB0b19wYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMDg4NTJD
MUU0QTk5RDIwMDQwMzk5NSAvKiBjcnlwdG9fdHlwZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
MzFDMDRGMjM0Qjg5OEQwMDI4QTYxNSAvKiBkZXByZWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDEzMUJFRkQyMzRCODgyMDAwMjhBNjE1IC8qIGRhdGFfY2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDEzMUMzMjUyMzRCOERDMjAwMjhBNjE1IC8qIGRhdGFfY2hhbm5lbF9pbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMkZGMjM0QjhEQzIwMDI4QTYxNSAvKiBkYXRh
X2NoYW5uZWxfdHJhbnNwb3J0X2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQx
REUyMTI3NUEzMDAwNjM0RkNGIC8qIGRhdGFfcmF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEz
MUM0QjIyMzRDODM4RTAwMjhBNjE1IC8qIHJ0cF9zb3VyY2UuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMzFCRjQ1MjM0Qjg4MjAwMDI4QTYxNSAvKiBtZWRpYV9wcm90b2NvbF9uYW1lcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUM0NkYyMzRDODFCNjAwMjhBNjE1IC8qIHJ0Y19ldmVudC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM1NTMyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF92
aWRlb19zZW5kX3N0cmVhbV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDU5MjM0
Qjg5OEQwMDI4QTYxNSAvKiBkYXRhX3JhdGVfbGltaXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE5MjQxRTQyMTI3NUEzMDAwNjM0RkNGIC8qIGRhdGFfc2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE5MjQxQ0QyMTI3NTkzRjAwNjM0RkNGIC8qIGRhdGFfdHJhbnNmZXJfdHJhY2tlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGMzEyMzRCODgyMDAwMjhBNjE1IC8qIGRhdGFncmFtX3J0
cF90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMzFEMjM0QjhEQzIwMDI4QTYx
NSAvKiBkYXRhZ3JhbV90cmFuc3BvcnRfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
QzA4ODUyRDFFNEE5OUQyMDA0MDM5OTUgLyogZGF0YXR5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REOEM4NzFFNDNDNjYwMDA2MjFFOTIgLyogZGF1YmVjaGllc184X3dhdmVsZXRfY29lZmZz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEY4ODFFNDNDQkUwMDA2MjFFOTIgLyogZGVidWdf
ZHVtcF93cml0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMEZEMjM0Qjg5RTIwMDI4QTYx
NSAvKiBzaWdzbG90X3JlcGVhdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODNGODFGRTI0
OEYxMDA0MEMzMEYgLyogZGVjaW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEExNzFF
NDNCRkIzMDA2MjFFOTIgLyogZGVjaXNpb25fbG9naWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4QjkwMUU0M0MyQjUwMDYyMUU5MiAvKiBkZWNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4QjhFMUU0M0MyQjUwMDYyMUU5MiAvKiBkZWNvZGVfcmVzaWR1YWwuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxMzFDMTE2MjM0Qjg5RTIwMDI4QTYxNSAvKiBwbGF0Zm9ybV90aHJlYWQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxMzFDNDQ1MjM0QzgwQUIwMDI4QTYxNSAvKiBkZWNvZGVkX2ZyYW1l
c19oaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEExQTFFNDNCRkIzMDA2MjFFOTIg
LyogZGVjb2Rlcl9kYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzMTcyMzRCOERD
MjAwMjhBNjE1IC8qIGFycmF5X3ZpZXcuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTE4MjM0
Qjg5RTIwMDI4QTYxNSAvKiBzb2NrZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNERDMjM0
Qzg0QTMwMDI4QTYxNSAvKiBydHBfZGVwZW5kZW5jeV9kZXNjcmlwdG9yX3dyaXRlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUMzQ0EyMzRCOTdGNDAwMjhBNjE1IC8qIHNjdHBfdHJhbnNwb3J0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUwMkM4NzIxMjczNEI5MDBDMjdDRDYgLyogZGVjb2Rl
cl9kYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCOTIxRTQzQzJCNTAwNjIxRTky
IC8qIGRlY29kZXJfaW50ZXJwb2xhdGVfbHNmLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODND
QjFFNDM5QTZGMDA2MjFFOTIgLyogZGVjb2Rpbmdfc3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMzFDNEU1MjM0Qzg1MkUwMDI4QTYxNSAvKiByZXBlYXRpbmdfdGFzay5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUMzMUYyMzRCOERDMjAwMjhBNjE1IC8qIGpzZXBfc2Vzc2lvbl9kZXNjcmlw
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg0OTgxRTZBNUY0MTAwOTRGREM4IC8qIGRl
ZmF1bHRfb3V0cHV0X3JhdGVfY2FsY3VsYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0
ODUyMzRDODI3NDAwMjhBNjE1IC8qIGRlZmF1bHRfdGFza19xdWV1ZV9mYWN0b3J5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTlDODQzQjFGRTI0RTgwMDA0MEMzMEYgLyogZGVmYXVsdF90ZW1wb3Jh
bF9sYXllcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDhBMjM0Qjg5OEQwMDI4QTYxNSAv
KiBjb25zdHJ1Y3Rvcl9tYWdpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1M0ExRTZBNjE5
ODAwOTRGREM4IC8qIGRlZmF1bHRfdmlkZW9fYml0cmF0ZV9hbGxvY2F0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4NUZCMUU0M0I4NEUwMDYyMUU5MiAvKiBkZWZpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0REOEExQjFFNDNCRkIzMDA2MjFFOTIgLyogZGVmaW5lcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhCOTMxRTQzQzJCNTAwNjIxRTkyIC8qIGRlZmluZXMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxMzFDMTJGMjM0Qjg5RTIwMDI4QTYxNSAvKiBzc2xfYWRhcHRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDFENkI0NTUyMTI3MzE1OTAwOEY5MzUzIC8qIGRlZ3JhZGVkX2Nh
bGwuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTE0MjM0Qjg5RTIwMDI4QTYxNSAvKiBzc2xf
aWRlbnRpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTAyQ0FCMjEyNzM1MkQwMEMyN0NENiAv
KiBkZWxheV9iYXNlZF9id2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMUI4MjM0QjhBNEEw
MDI4QTYxNSAvKiByZWxheV9zZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMzgyMjM0
Qjk1N0QwMDI4QTYxNSAvKiByZXZlcmJfbW9kZWxfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REODY4RTFFNDNCOTM5MDA2MjFFOTIgLyogZGVsYXlfZXN0aW1hdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REODY4OTFFNDNCOTM5MDA2MjFFOTIgLyogZGVsYXlfZXN0aW1hdG9y
X2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODY4QzFFNDNCOTM5MDA2MjFFOTIg
LyogZGVsYXlfZXN0aW1hdG9yX3dyYXBwZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDM0E2
MjM0Qjk2QzMwMDI4QTYxNSAvKiBhdWRpb19taXhlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFF
MDJDQjcyMTI3MzUyRDAwQzI3Q0Q2IC8qIGRlbGF5X2luY3JlYXNlX2RldGVjdG9yX2ludGVyZmFj
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMwNzUyMzRCODk4RDAwMjhBNjE1IC8qIGJ5dGVf
YnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEExRTFFNDNCRkIzMDA2MjFFOTIgLyog
ZGVsYXlfbWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBMjExRTQzQkZCMzAwNjIx
RTkyIC8qIGRlbGF5X3BlYWtfZGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRkE1
MjM0Qjg4QTYwMDI4QTYxNSAvKiBkZWxheWFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFD
MDRGMjM0Qjg5OEQwMDI4QTYxNSAvKiBkZXByZWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg2RUYxRTQzQkE2RDAwNjIxRTkyIC8qIGRpZ2l0YWxfYWdjLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REODk0ODFFNDNCRjNBMDA2MjFFOTIgLyogZGxyci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNDEzMUMzMjMyMzRCOERDMjAwMjhBNjE1IC8qIGljZV90cmFuc3BvcnRfZmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCOTUxRTQzQzJCNTAwNjIxRTkyIC8qIGRvX3BsYy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEyNDU1NDQxRUY4N0MwRjAwRjExODA5IC8qIGRvdF9wcm9kdWN0
X3dpdGhfc2NhbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNkQzQkUyMjEyNzMxQzIwMDc3NUYw
OSAvKiBkb3duX3NhbXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDVFNEQ1MUVGOENDNzYw
MEZDRjZFNiAvKiBkb3duc2FtcGxlZF9yZW5kZXJfYnVmZmVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTMxQzAzRDIzNEI4OThEMDAyOEE2MTUgLyogZHNjcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDhBMjQxRTQzQkZCMzAwNjIxRTkyIC8qIGRzcF9oZWxwZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFCRjVGMjM0Qjg4MjAwMDI4QTYxNSAvKiBydGNfc3RhdHNfdHJhdmVyc2FsLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0MTMxQkYyNDIzNEI4ODIwMDAyOEE2MTUgLyogcGVlcl9jb25uZWN0
aW9uX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRjYwMjM0Qjg4MjAwMDI4QTYx
NSAvKiBkdGxzX3NydHBfdHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFDNjIz
NEI4QTRBMDAyOEE2MTUgLyogZHRsc190cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MzFCRjNFMjM0Qjg4MjAwMDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDEzMUMyRkEyMzRCOERDMjAwMjhBNjE1IC8qIGR0bHNfdHJhbnNwb3J0X2ludGVyZmFj
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxRUIyMzRCOEE0QjAwMjhBNjE1IC8qIGR0bHNf
dHJhbnNwb3J0X2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEEyNzFFNDNCRkIz
MDA2MjFFOTIgLyogZHRtZl9idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4ODc4MUU0
M0JFM0MwMDYyMUU5MiAvKiBkdG1mX3F1ZXVlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkYw
NDIzNEI4ODIwMDAyOEE2MTUgLyogdHJhbnNwb3J0X3N0YXRzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTMxQkY1QTIzNEI4ODIwMDAyOEE2MTUgLyogZHRtZl9zZW5kZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFDMzBFMjM0QjhEQzIwMDI4QTYxNSAvKiBkdG1mX3NlbmRlcl9pbnRlcmZhY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTJBMUU0M0JGQjMwMDYyMUU5MiAvKiBkdG1mX3Rv
bmVfZ2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkYxMjIzNEI4ODIwMDAyOEE2
MTUgLyogcnRjcF9tdXhfZmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEY4QjFFNDND
QkUwMDA2MjFFOTIgLyogZHR4X2NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFC
RjE3MjM0Qjg4MjAwMDI4QTYxNSAvKiBydHBfcmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4Qzg5MUU0M0M2NjAwMDYyMUU5MiAvKiBkeWFkaWNfZGVjaW1hdG9yLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTMxQzM3NTIzNEI5NTdEMDAyOEE2MTUgLyogZWNob19hdWRpYmlsaXR5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODZDMjFFNDNCOUMyMDA2MjFFOTIgLyogZWNob19jYW5j
ZWxsYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTAxMjM0Qjg5RTIwMDI4QTYxNSAv
KiByZWZfY291bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNTUxMjM0QzhCMTkwMDI4QTYx
NSAvKiBydGNfZXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NEFGMUU0M0FGMTMwMDYy
MUU5MiAvKiBlY2hvX2NhbmNlbGxhdGlvbl9pbXBsLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMx
QzRGNzIzNEM4NjdCMDAyOEE2MTUgLyogaGlzdG9ncmFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0QyODVCOTFFNkE2MzQzMDA5NEZEQzggLyogZWNob19jYW5jZWxsZXIzLmggaW4gSGVhZGVycyAq
LywKLQkJCQk0MTMxQzNFNDIzNEM3QTA4MDAyOEE2MTUgLyogcnRjX2V2ZW50X3Byb2Nlc3Nvci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzQUQyMzRCOTZDMzAwMjhBNjE1IC8qIGVjaG9fY2Fu
Y2VsbGVyM19jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDM0FBMjM0Qjk2QzMwMDI4
QTYxNSAvKiBlY2hvX2NhbmNlbGxlcjNfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEz
MUMzQUMyMzRCOTZDMzAwMjhBNjE1IC8qIGVjaG9fY29udHJvbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDg1RUIxRTQzQjgxMDAwNjIxRTkyIC8qIGVjaG9fY29udHJvbF9tb2JpbGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4NEIxMUU0M0FGMTMwMDYyMUU5MiAvKiBlY2hvX2NvbnRyb2xf
bW9iaWxlX2ltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMUFDMjM0QjhBNEEwMDI4QTYx
NSAvKiBwYWNrZXRfdHJhbnNwb3J0X2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEz
MUMwNEIyMzRCODk4RDAwMjhBNjE1IC8qIGFzeW5jX2ludm9rZXJfaW5sLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0QyODVCQjFFNkE2MzQzMDA5NEZEQzggLyogZWNob19wYXRoX2RlbGF5X2VzdGlt
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1QkQxRTZBNjM0MzAwOTRGREM4IC8qIGVj
aG9fcGF0aF92YXJpYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1QzExRTZBNjM0
MzAwOTRGREM4IC8qIGVjaG9fcmVtb3Zlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1QkYx
RTZBNjM0MzAwOTRGREM4IC8qIGVjaG9fcmVtb3Zlcl9tZXRyaWNzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTNBMjEzRTFGRTBGMEVGMDAzNzNFOTkgLyogZWt0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REOEI5NzFFNDNDMkI1MDA2MjFFOTIgLyogZW5jb2RlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTMxQzI3RTIzNEI4Q0M0MDAyOEE2MTUgLyogaW50ZXJuYWxfZW5jb2Rlcl9mYWN0b3J5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdCNjFFNDNCQzA1MDA2MjFFOTIgLyogZW5jb2RlX2xw
Y19zd2IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTk2MUU0M0MwMEYwMDYyMUU5MiAvKiBl
bmNvZGVfbmV0ZXFfaW5wdXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMjhCMjM0QjhDQzQw
MDI4QTYxNSAvKiB3ZWJydGNfdmlkZW9fZW5naW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
ODNDRDFFNDM5QTZGMDA2MjFFOTIgLyogZW5jb2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFBMDhCQUMyMTI2ODFDODAwMUQ1RDdCIC8qIGVuY29kZWRfZnJhbWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxRkNCQjFDMjFCMUY3Q0QwMEE1REYyNyAvKiBlbmNvZGVkX2ltYWdlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTMxQzRBMTIzNEM4MzRFMDAyOEE2MTUgLyogZW5jb2Rlcl9iaXRy
YXRlX2FkanVzdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzRBNTIzNEM4MzRFMDAyOEE2
MTUgLyogZW5jb2Rlcl9vdmVyc2hvb3RfZGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4NUEwMUU0M0I1QzAwMDYyMUU5MiAvKiBlbmNvZGVyX3J0Y3BfZmVlZGJhY2suaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxMzFDMTNBMjM0Qjg5RTIwMDI4QTYxNSAvKiBwaHlzaWNhbF9zb2NrZXRf
c2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzI4MzIzNEI4Q0M0MDAyOEE2MTUgLyog
ZW5jb2Rlcl9zaW11bGNhc3RfcHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRUNFQUZDMjA2
NDY2NjQwMDlENTE0MSAvKiBFbmNvZGVyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REOEI5OTFFNDNDMkI1MDA2MjFFOTIgLyogZW5lcmd5X2ludmVyc2UuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxMzFDNDYyMjM0QzgxNzIwMDI4QTYxNSAvKiB2aWRlb19lcnJvcl9jb2Rlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCOUIxRTQzQzJCNTAwNjIxRTkyIC8qIGVuaF91cHNhbXBs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCOUYxRTQzQzJCNTAwNjIxRTkyIC8qIGVuaGFu
Y2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI5RDFFNDNDMkI1MDA2MjFFOTIgLyogZW5o
YW5jZXJfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQzM0QxMzFGNzlCMzM0MDAz
ODdCNEQgLyogZW50cm9weV9jb2RpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4N0I5MUU0
M0JDMDUwMDYyMUU5MiAvKiBlbnRyb3B5X2NvZGluZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEz
MUMyOUMyMzRCOENDNDAwMjhBNjE1IC8qIHVuaGFuZGxlZF9wYWNrZXRzX2J1ZmZlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUJGQTcyMzRCODhBNjAwMjhBNjE1IC8qIHZwOV9wcm9maWxlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzEzMDIzNEI4OUUyMDAyOEE2MTUgLyogc29ja2V0X2Fk
ZHJlc3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNDkyMjM0QzgyRUUwMDI4QTYxNSAvKiBl
bnVtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1QzMxRTZBNjM0MzAwOTRGREM4IC8qIGVy
bF9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NUM1MUU2QTYzNDMwMDk0RkRD
OCAvKiBlcmxlX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MkUxRTRBOTlE
MjAwNDAzOTk1IC8qIGVyci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGMDEyMzRCODgyMDAw
MjhBNjE1IC8qIHBlZXJfY29ubmVjdGlvbl9pbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDFCRTcxQUEyMTVDNDYzNzAwQTdCMTk2IC8qIGVycndhcm4uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDMDJGMjM0Qjg5OEQwMDI4QTYxNSAvKiBldmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNEMjg2MTUxRTZBNjYxMzAwOTRGREM4IC8qIGV2ZW50X2xvZ193cml0ZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFCRjJCMjM0Qjg4MjAwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0LmggaW4g
SGVhZGVycyAqLywKLQkJCQk0MTMxQzNBRDIzNEI5NkMzMDAyOEE2MTUgLyogZWNob19jYW5jZWxs
ZXIzX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxQjIyMzRCOEE0QTAwMjhBNjE1
IC8qIHR1cm5fcG9ydC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwNTEyMzRCODk4RDAwMjhB
NjE1IC8qIGV2ZW50X3RyYWNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzNTAxRkUyNDY2
NTAwNDBDMzBGIC8qIGV4cF9maWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTJEMUU0
M0JGQjMwMDYyMUU5MiAvKiBleHBhbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJGNkFGMjEy
NzMyRTcwMDZBRThENyAvKiBleHBhbmRfdW1hX2xvZ2dlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDEzMUM1M0UyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9nZW5lcmljX3BhY2tldF9yZWNl
aXZlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFCRTcxQTYyMTVDNDYzNzAwQTdCMTk2IC8qIGV4
cHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OTRCMUU0M0JGM0EwMDYyMUU5MiAvKiBleHRl
bmRlZF9qaXR0ZXJfcmVwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODk0RTFFNDNCRjNB
MDA2MjFFOTIgLyogZXh0ZW5kZWRfcmVwb3J0cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJG
NDYyMzRCODgyMDAwMjhBNjE1IC8qIGV4dGVybmFsX2htYWMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDMDc3MjM0Qjg5OEQwMDI4QTYxNSAvKiBmYWtlX2Nsb2NrLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REOEE5ODFFNDNDMDBGMDA2MjFFOTIgLyogZmFrZV9kZWNvZGVfZnJvbV9maWxlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFEQTIzNEI4QTRCMDAyOEE2MTUgLyogZmFrZV9kdGxz
X3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxQjAyMzRCOEE0QTAwMjhBNjE1
IC8qIGZha2VfaWNlX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwODAyMzRC
ODk4RDAwMjhBNjE1IC8qIGZha2VfbWRuc19yZXNwb25kZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDMDM3MjM0Qjg5OEQwMDI4QTYxNSAvKiBmYWtlX25ldHdvcmsuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMjk5Qjk3MjEyNzM2OTEwMEIzNDE0QiAvKiBmYWtlX25ldHdvcmtfcGlwZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGQTUyMzRCODhBNjAwMjhBNjE1IC8qIGRlbGF5YWJsZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMwMzIyMzRCODk4RDAwMjhBNjE1IC8qIG5ldF9oZWxw
ZXJzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzFFRDIzNEI4QTRCMDAyOEE2MTUgLyogaWNl
X2NyZWRlbnRpYWxzX2l0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkY4RDIzNEI4
OEE2MDAyOEE2MTUgLyogbWVkaWFfY29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMx
QzEzQjIzNEI4OUUyMDAyOEE2MTUgLyogdGhyZWFkX2NoZWNrZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFCRjQzMjM0Qjg4MjAwMDI4QTYxNSAvKiBzcnRwX2ZpbHRlci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUMzNDYyMzRCOERERjAwMjhBNjE1IC8qIHJ0cF9zZW5kZXJfaW50ZXJmYWNl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFFQzIzNEI4QTRCMDAyOEE2MTUgLyogZmFrZV9w
YWNrZXRfdHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFEQjIzNEI4QTRCMDAy
OEE2MTUgLyogZmFrZV9wb3J0X2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMw
MjAyMzRCODk4RDAwMjhBNjE1IC8qIGZha2Vfc3NsX2lkZW50aXR5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MUYyNjNBRTIxMjY4MEE4MDAyNzRGNTkgLyogZmFsbHRocm91Z2guaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDNjNGOERDMUU0MTZENTMwMDJDQTUzMSAvKiBmZWF0dXJlcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDEzMUM1NTAyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9wcm9iZV9y
ZXN1bHRfc3VjY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxM0IyMTI3MzcyNDAwNjM0
RkNGIC8qIGZlYXR1cmVzX2V4dHJhY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMzBC
MjM0QjhEQzIwMDI4QTYxNSAvKiBmZWNfY29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDFFMDJDOEMyMTI3MzRCOTAwQzI3Q0Q2IC8qIGZlY19jb250cm9sbGVyX2RlZmF1bHQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQxMzFDMTA5MjM0Qjg5RTIwMDI4QTYxNSAvKiBwcm90b2J1Zl91dGls
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMyRkMyMzRCOERDMjAwMjhBNjE1IC8qIGpzZXAu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMzBBMjM0QjhEQzIwMDI4QTYxNSAvKiBmZWNfY29u
dHJvbGxlcl9vdmVycmlkZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzMEIxRkUyMEYzQzAw
NDBDMzBGIC8qIGZlY19jb250cm9sbGVyX3JwbHJfYmFzZWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4ODc5MUU0M0JFM0MwMDYyMUU5MiAvKiBmZWNfcHJpdmF0ZV90YWJsZXNfYnVyc3R5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODg3QTFFNDNCRTNDMDA2MjFFOTIgLyogZmVjX3ByaXZh
dGVfdGFibGVzX3JhbmRvbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFMDJDOEUyMTI3MzRCOTAw
QzI3Q0Q2IC8qIGZlY19yYXRlX3RhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODg3QzFF
NDNCRTNDMDA2MjFFOTIgLyogZmVjX3Rlc3RfaGVscGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUYyNjM4OTIxMjY3RjQwMDAyNzRGNTkgLyogZmZ0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMx
QzFERjIzNEI4QTRCMDAyOEE2MTUgLyogdHJhbnNwb3J0X2Rlc2NyaXB0aW9uX2ZhY3RvcnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxNDMzRDIyMUY3OUIzMzQwMDM4N0I0RCAvKiBmZnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxRjI2MzZGMjEyNjdCM0UwMDI3NEY1OSAvKiBmZnQ0Zy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDFGOUJGRDMyMDUxRERFNTAwQUJGMEI5IC8qIGZmdF9idWZmZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDRDI4NUM4MUU2QTYzNDMwMDk0RkRDOCAvKiBmZnRfZGF0YS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMyRjUyMzRCOERDMjAwMjhBNjE1IC8qIGFzeW5jX3Jl
c29sdmVyX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNDNDMjM0QzgwMDcwMDI4
QTYxNSAvKiBmZnRwYWNrLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzQ5MTIzNEM4MkVFMDAy
OEE2MTUgLyogZmllbGRfdHJpYWxfYmFzZWRfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTMxQzQyNTIzNEM3RDI1MDAyOEE2MTUgLyogZmlmb19idWZmZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxQkU3MUI3MjE1QzQ2MzcwMEE3QjE5NiAvKiBmaWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1QzExQTAyMjFFNDU3NTc4MDA0RjA5ODcgLyogZmlsZV9hdWRpb19kZXZpY2UuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxMzFDMDg0MjM0Qjg5OEQwMDI4QTYxNSAvKiBhc3luY19wYWNrZXRfc29j
a2V0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzRBMzIzNEM4MzRFMDAyOEE2MTUgLyogcXVh
bGl0eV9saW1pdGF0aW9uX3JlYXNvbl90cmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzEx
QTAyMDFFNDU3NTc4MDA0RjA5ODcgLyogZmlsZV9hdWRpb19kZXZpY2VfZmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDEzMUMwNzkyMzRCODk4RDAwMjhBNjE1IC8qIGZpbGVfcm90YXRpbmdf
c3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEM4QzFFNDNDNjYwMDA2MjFFOTIgLyog
ZmlsZV91dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMjYzQjIyMTI2ODBBODAwMjc0RjU5
IC8qIGZpbGVfd3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzNzQyMzRCOTU3RDAw
MjhBNjE1IC8qIGZpbHRlcl9hbmFseXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0MzNDRUQx
Rjc5QjMzNDAwMzg3QjREIC8qIGZpbHRlcmJhbmtfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDMUJCMjM0QjhBNEEwMDI4QTYxNSAvKiBwc2V1ZG9fdGNwLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTQzM0QwRDFGNzlCMzM0MDAzODdCNEQgLyogZmlsdGVyYmFua190YWJsZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4QkExMUU0M0MyQjUwMDYyMUU5MiAvKiBmaWx0ZXJlZF9j
Yl92ZWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzExQTAwNDFFNDU3NDAwMDA0RjA5ODcgLyog
ZmluZV9hdWRpb19idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OTUxMUU0M0JGM0Ew
MDYyMUU5MiAvKiBmaXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTUwMjM0Qjg5RTIwMDI4
QTYxNSAvKiBvcGVuc3NsX2FkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNEI0QzZFMUU0
MzFGOUMwMDI2NTFDOCAvKiBmaXJfZmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODMx
QTFGRTI0MkIyMDA0MEMzMEYgLyogZmlyX2ZpbHRlcl9jLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTlDODMxQzFGRTI0MkIyMDA0MEMzMEYgLyogZmlyX2ZpbHRlcl9mYWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1QzRCNEM2QjFFNDMxRjlDMDAyNjUxQzggLyogZmlyX2ZpbHRlcl9zc2UuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFDMDgzMjM0Qjg5OEQwMDI4QTYxNSAvKiBmaXJld2FsbF9z
b2NrZXRfc2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUREQjI0RDIxMjY1QkQ3MDAyOTZE
NDcgLyogZml4ZWRfYXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRkEwMjM0Qjg4QTYw
MDI4QTYxNSAvKiBhdWRpb19zb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNUYxRkFFMjEy
NzJGQkEwMDA2NENCRiAvKiBmaXhlZF9kaWdpdGFsX2xldmVsX2VzdGltYXRvci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDEzMUMyODMyMzRCOENDNDAwMjhBNjE1IC8qIGVuY29kZXJfc2ltdWxjYXN0
X3Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODg3RjFFNDNCRTNDMDA2MjFFOTIgLyog
ZmxleGZlY19oZWFkZXJfcmVhZGVyX3dyaXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1
MzcxRTQzQjM5QzAwNjIxRTkyIC8qIGZsZXhmZWNfcmVjZWl2ZV9zdHJlYW0uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDRDI4NEJBMUU2QTVGOUYwMDk0RkRDOCAvKiBmbGV4ZmVjX3JlY2VpdmVfc3Ry
ZWFtX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0NCMUZFMjQ3QjQwMDQwQzMwRiAv
KiBmbGV4ZmVjX3JlY2VpdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODNDRTFGRTI0N0I0
MDA0MEMzMEYgLyogZmxleGZlY19zZW5kZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDFG
MjM0Qjg5OEQwMDI4QTYxNSAvKiBmb3JtYXRfbWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REODg4OTFFNDNCRTNDMDA2MjFFOTIgLyogZm9yd2FyZF9lcnJvcl9jb3JyZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0MTMxQkYzMTIzNEI4ODIwMDAyOEE2MTUgLyogZGF0YWdyYW1fcnRw
X3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg4ODcxRTQzQkUzQzAwNjIxRTky
IC8qIGZvcndhcmRfZXJyb3JfY29ycmVjdGlvbl9pbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUM2M0Y4REQxRTQxNkQ1MzAwMkNBNTMxIC8qIGZvcndhcmRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0QyODVDQTFFNkE2MzQzMDA5NEZEQzggLyogZnJhbWVfYmxvY2tlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNDc5Nyw2NiArMTQ4NTYsNzggQEAKIAkJCQk0MTEwOUFBRjFFNUZBMTkyMDBD
MDk1NUEgLyogZnJhbWVfY2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QkEzMUU0
M0MyQjUwMDYyMUU5MiAvKiBmcmFtZV9jbGFzc2lmeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
Mjg0OUIxRTZBNUY0MTAwOTRGREM4IC8qIGZyYW1lX2NvbWJpbmVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQk0MTMxQzMxNDIzNEI4REMyMDAyOEE2MTUgLyogcnRwX2hlYWRlcnMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMzFDM0I1MjM0Qjk3MTIwMDI4QTYxNSAvKiBmcmFtZV9kZWNyeXB0b3JfaW50
ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODM3QTFFNDM5QTM1MDA2MjFFOTIgLyog
ZnJhbWVfZHJvcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQ0JCNUEyMUIxRkU2RTAwQTVE
RjI3IC8qIGZyYW1lX2R1bXBpbmdfZGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJG
NjQyMzRCODgyMDAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbV90cmFjay5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEzMUJGOUQyMzRCODhBNjAwMjhBNjE1IC8qIG1lZGlhX2VuZ2luZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDEzMUM0OUQyMzRDODM0RTAwMjhBNjE1IC8qIGZyYW1lX2VuY29kZV9tZXRh
ZGF0YV93cml0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDM0I3MjM0Qjk3MTIwMDI4QTYx
NSAvKiBmcmFtZV9lbmNyeXB0b3JfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
OEY5MTFFNDNDQkUwMDA2MjFFOTIgLyogZnJhbWVfbGVuZ3RoX2NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4M0Q0MUU0MzlBNkYwMDYyMUU5MiAvKiBmcmFtZV9vYmplY3QuaCBp
biBIZWFkZXJzICovLAotCQkJCTQxMzFCRjE2MjM0Qjg4MjAwMDI4QTYxNSAvKiBtZWRpYV9zdHJl
YW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNDMxMjM0QzdEOTYwMDI4QTYxNSAvKiBmcmFt
ZV9yYXRlX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0NDQyMzRDODBBQjAw
MjhBNjE1IC8qIGZyYW1lcmF0ZV9jb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMx
QzM5NDIzNEI5NTdEMDAyOEE2MTUgLyogZnVsbGJhbmRfZXJsZV9lc3RpbWF0b3IuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMzFDMzIxMjM0QjhEQzIwMDI4QTYxNSAvKiBmdW5jdGlvbl92aWV3Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MUYyNjM4RTIxMjY3RjQ5MDAyNzRGNTkgLyogZzcxMS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxNDUyMzRCODlFMjAwMjhBNjE1IC8qIG9uZV90aW1lX2V2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQwQjgyNTFFNEUzMzgzMDA3NDA5RTYgLyogZzcx
MV9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjI2MzkzMjEyNjdGNTMwMDI3NEY1
OSAvKiBnNzIyX2VuY19kZWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDBCODM5MUU0RTMzOTYw
MDc0MDlFNiAvKiBnNzIyX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE1RjFGQjAy
MTI3MkZCQTAwMDY0Q0JGIC8qIGdhaW5fYXBwbGllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDg2RjAxRTQzQkE2RDAwNjIxRTkyIC8qIGdhaW5fY29udHJvbC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNDEzMUJGOTUyMzRCODhBNjAwMjhBNjE1IC8qIHZpZGVvX3NvdXJjZV9iYXNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTMxQzQ4QzIzNEM4MjlFMDAyOEE2MTUgLyogZ2Fpbl9jb250cm9sX2Nv
bmZpZ19wcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg0QjMxRTQzQUYxMzAwNjIxRTky
IC8qIGdhaW5fY29udHJvbF9mb3JfZXhwZXJpbWVudGFsX2FnYy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDg0QjUxRTQzQUYxMzAwNjIxRTkyIC8qIGdhaW5fY29udHJvbF9pbXBsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MUEwOEJDRjIxMjcyRUUyMDAxRDVEN0IgLyogZ2Fpbl9jb250cm9sbGVy
Mi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCQTUxRTQzQzJCNTAwNjIxRTkyIC8qIGdhaW5f
ZGVxdWFudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3MDMxRTQzQkE3NTAwNjIxRTkyIC8q
IGdhaW5fbWFwX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzMwRjIzNEI4REMy
MDAyOEE2MTUgLyogYml0cmF0ZV9jb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDhCQTcxRTQzQzJCNTAwNjIxRTkyIC8qIGdhaW5fcXVhbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMzFDMDJFMjM0Qjg5OEQwMDI4QTYxNSAvKiBjcml0aWNhbF9zZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk0MTMxQkYyNzIzNEI4ODIwMDAyOEE2MTUgLyogaml0dGVyX2J1ZmZlcl9kZWxh
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzRDYxRTQzOUE2RjAwNjIxRTkyIC8qIGdlbmVy
aWNfZGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0MkUyMzRDN0Q4QTAwMjhBNjE1
IC8qIGdlbmVyaWNfZnJhbWVfaW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCQTkxRTQz
QzJCNTAwNjIxRTkyIC8qIGdldF9jZF92ZWMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDc5
MjM0Qjg5OEQwMDI4QTYxNSAvKiBmaWxlX3JvdGF0aW5nX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDhCQUIxRTQzQzJCNTAwNjIxRTkyIC8qIGdldF9sc3BfcG9seS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDEzMUJGMkYyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF9tZWRpYV91dGlscy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCQUQxRTQzQzJCNTAwNjIxRTkyIC8qIGdldF9zeW5j
X3NlcS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTIxNDExRkUwRjBFRjAwMzczRTk5IC8qIGdl
dG9wdF9zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODcyQTFFNDNCQUJFMDA2MjFFOTIgLyog
Z21tLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzMwNDIzNEI4REMyMDAyOEE2MTUgLyogYXVk
aW9fb3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQ0JCNUYyMUIxRkVDNDAwQTVERjI3
IC8qIGdvb2dfY2NfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFMDJDQUEyMTI3MzUy
RDAwQzI3Q0Q2IC8qIGdvb2dfY2NfbmV0d29ya19jb250cm9sLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTlDODRBQTFGRTMwM0RFMDA0MEMzMEYgLyogaDI2NC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDgzNTUxRTQzMjU3MjAwNjIxRTkyIC8qIGgyNjRfYml0c3RyZWFtX3BhcnNlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNERDgzNTcxRTQzMjU3MjAwNjIxRTkyIC8qIGgyNjRfY29tbW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODRBQjFGRTMwM0RFMDA0MEMzMEYgLyogaDI2NF9nbG9i
YWxzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA1MjIzNEI4OThEMDAyOEE2MTUgLyogYXJy
YXlzaXplLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkY5NjIzNEI4OEE2MDAyOEE2MTUgLyog
aDI2NF9wcm9maWxlX2xldmVsX2lkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVFQjFFNkE2
MzlGMDA5NEZEQzggLyogaDI2NF9zcHJvcF9wYXJhbWV0ZXJfc2V0cy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEzMUJGMEEyMzRCODgyMDAwMjhBNjE1IC8qIGNoYW5uZWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4M0RBMUU0MzlBNkYwMDYyMUU5MiAvKiBoMjY0X3Nwc19wcHNfdHJhY2tlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDE3N0Y0RjIyMzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfY29t
bW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc3RjRGMzIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2
NV9wcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc3RjRGQjIzODBFODAwMDBDMDQ0
ODYgLyogaDI2NV9zcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc3RjRGNDIzODBF
N0Q3MDBDMDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc3
RjRGMDIzODBFN0Q3MDBDMDQ0ODYgLyogaDI2NV92cHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MTc3RjUwMTIzODBFODFGMDBDMDQ0ODYgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUZDQkI3MjIxQjFGRjc0MDBBNURGMjcgLyogaGRyX21l
dGFkYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzA4NzIzNEI4OThEMDAyOEE2MTUgLyog
aGVscGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUzQkQyMTY5ODI0QjAwMjgyNjZCIC8q
IGhlbHBlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNDAwMjM0QzdCMzUwMDI4QTYxNSAv
KiBoaWdoX3Bhc3NfZmlsdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzRGNzIzNEM4NjdC
MDAyOEE2MTUgLyogaGlzdG9ncmFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODNEQzFFNDM5
QTZGMDA2MjFFOTIgLyogaGlzdG9ncmFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODM1ODFG
RTI0NjY1MDA0MEMzMEYgLyogaGlzdG9ncmFtX3BlcmNlbnRpbGVfY291bnRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhCQUYxRTQzQzJCNTAwNjIxRTkyIC8qIGhwX2lucHV0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REOEJCMTFFNDNDMkI1MDA2MjFFOTIgLyogaHBfb3V0cHV0LmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTMxQzA4MTIzNEI4OThEMDAyOEE2MTUgLyogaHR0cF9jb21tb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTA4QkFEMjEyNjgxQzgwMDFENUQ3QiAvKiBpMDEwX2J1
ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxMTkyMzRCODlFMjAwMjhBNjE1IC8qIHRp
bWVfdXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NDY4MUU2QTU3RjQwMDk0RkRDOCAv
KiBpNDIwX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDExMDlBQUQxRTVGQTE5MjAwQzA5
NTVBIC8qIGk0MjBfYnVmZmVyX3Bvb2wuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDdFMjM0
Qjg5OEQwMDI4QTYxNSAvKiBtZXNzYWdlX2J1ZmZlcl9yZWFkZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxMzFDMUVEMjM0QjhBNEIwMDI4QTYxNSAvKiBpY2VfY3JlZGVudGlhbHNfaXRlcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDM0UzMjM0QzdBMDgwMDI4QTYxNSAvKiBpY2VfbG9n
Z2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkYzMjIzNEI4ODIwMDAyOEE2MTUgLyogaWNl
X3NlcnZlcl9wYXJzaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkYyQjIzNEI4ODIwMDAy
OEE2MTUgLyogaWNlX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzMjMyMzRC
OERDMjAwMjhBNjE1IC8qIGljZV90cmFuc3BvcnRfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDEzMUMzMjIyMzRCOERDMjAwMjhBNjE1IC8qIGljZV90cmFuc3BvcnRfaW50ZXJmYWNlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFGMDIzNEI4QTRCMDAyOEE2MTUgLyogaWNlX3RyYW5z
cG9ydF9pbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwNTAyMzRCODk4RDAwMjhB
NjE1IC8qIGlmYWRkcnNfYW5kcm9pZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwNUUyMzRC
ODk4RDAwMjhBNjE1IC8qIGlmYWRkcnNfY29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUYyNjNBRDIxMjY4MEE4MDAyNzRGNTkgLyogaWdub3JlX3dhcm5pbmdzLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzA2MzIzNEI4OThEMDAyOEE2MTUgLyogaWdub3JlX3d1bmRlZi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNERDhCQjQxRTQzQzJCNTAwNjIxRTkyIC8qIGlsYmMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMTA5QUIxMUU1RkExOTIwMEMwOTU1QSAvKiBpbmNvbWluZ192aWRlb19z
dHJlYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRjVDMjM0Qjg4MjAwMDI4QTYxNSAvKiBh
dWRpb19ydHBfcmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDNEMjM0Qjg5OEQw
MDI4QTYxNSAvKiBkc2NwLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJCNjFFNDNDMkI1MDA2
MjFFOTIgLyogaW5kZXhfY29udl9kZWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QkI4MUU0
M0MyQjUwMDYyMUU5MiAvKiBpbmRleF9jb252X2VuYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDhCQkExRTQzQzJCNTAwNjIxRTkyIC8qIGluaXRfZGVjb2RlLmggaW4gSGVhZGVycyAqLywKQEAg
LTE0ODY3LDI4NCArMTQ5MzgsMjk3IEBACiAJCQkJNUMwODg1MkYxRTRBOTlEMjAwNDAzOTk1IC8q
IGludGVnZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEZENjFFNDNDRDY2MDA2MjFFOTIg
LyogaW50ZXJfYXJyaXZhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzREUxRTQzOUE2RjAw
NjIxRTkyIC8qIGludGVyX2ZyYW1lX2RlbGF5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzI4
MjIzNEI4Q0M0MDAyOEE2MTUgLyogaW50ZXJuYWxfZGVjb2Rlcl9mYWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0REODNERjFFNDM5QTZGMDA2MjFFOTIgLyogaW50ZXJuYWxfZGVmaW5lcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMyN0UyMzRCOENDNDAwMjhBNjE1IC8qIGludGVybmFs
X2VuY29kZXJfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCQzAxRTQzQzJCNTAw
NjIxRTkyIC8qIGludGVycG9sYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJCRTFFNDND
MkI1MDA2MjFFOTIgLyogaW50ZXJwb2xhdGVfc2FtcGxlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE5QzgzMzExRkUyNDVDRDAwNDBDMzBGIC8qIGludGVydmFsX2J1ZGdldC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDFCRTcxQjUyMTVDNDYzNzAwQTdCMTk2IC8qIGludG51bS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDEzMUMwN0MyMzRCODk4RDAwMjhBNjE1IC8qIGlwX2FkZHJlc3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxNDMzQ0ZGMUY3OUIzMzQwMDM4N0I0RCAvKiBpc2FjX2ZpeF90eXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdDMTFFNDNCQzA1MDA2MjFFOTIgLyogaXNhY19mbG9h
dF90eXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA3MjIzNEI4OThEMDAyOEE2MTUgLyog
Y29tcGlsZV9hc3NlcnRfYy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMwOEIyMzRCODk4RDAw
MjhBNjE1IC8qIG1lc3NhZ2VfZGlnZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTI5OUI5MjIx
MjczNjdCMDBCMzQxNEIgLyogaXNhY192YWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4MzdD
MUU0MzlBMzUwMDYyMUU5MiAvKiBpdmZfZmlsZV93cml0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMzFDNTREMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfcHJvYmVfY2x1c3Rlcl9jcmVh
dGVkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODNFMjFFNDM5QTZGMDA2MjFFOTIgLyogaml0
dGVyX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzRTAxRTQzOUE2RjAwNjIxRTky
IC8qIGppdHRlcl9idWZmZXJfY29tbW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkYyNzIz
NEI4ODIwMDAyOEE2MTUgLyogaml0dGVyX2J1ZmZlcl9kZWxheS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDEzMUJGMkMyMzRCODgyMDAwMjhBNjE1IC8qIGppdHRlcl9idWZmZXJfZGVsYXlfaW50ZXJm
YWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkYzQzIzNEI4ODIwMDAyOEE2MTUgLyogaml0
dGVyX2J1ZmZlcl9kZWxheV9wcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzRTQxRTQz
OUE2RjAwNjIxRTkyIC8qIGppdHRlcl9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
MzFCRjFGMjM0Qjg4MjAwMDI4QTYxNSAvKiBydHBfc2VuZGVyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTMxQzM4NjIzNEI5NTdEMDAyOEE2MTUgLyogc3VidHJhY3Rvcl9vdXRwdXRfYW5hbHl6ZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTI4MjM0Qjg5RTIwMDI4QTYxNSAvKiB0aHJlYWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMkZDMjM0QjhEQzIwMDI4QTYxNSAvKiBqc2VwLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzMxODIzNEI4REMyMDAyOEE2MTUgLyoganNlcF9pY2Vf
Y2FuZGlkYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzMxRjIzNEI4REMyMDAyOEE2MTUg
LyoganNlcF9zZXNzaW9uX2Rlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkYz
NDIzNEI4ODIwMDAyOEE2MTUgLyoganNlcF90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFCRjI4MjM0Qjg4MjAwMDI4QTYxNSAvKiBqc2VwX3RyYW5zcG9ydF9jb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1QzYzRjhERTFFNDE2RDUzMDAyQ0E1MzEgLyoganNvbi5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGNTYyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF90cmFuc2Nl
aXZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM0NjEyMzRDODE3MjAwMjhBNjE1IC8qIHZp
ZGVvX2NvZGluZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxNTMyMzRCODlFMjAwMjhBNjE1
IC8qIHNzbF9yb290cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwMzgyMzRCODk4RDAwMjhB
NjE1IC8qIGtlZXBfcmVmX3VudGlsX2RvbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMDg4NTMw
MUU0QTk5RDIwMDQwMzk5NSAvKiBrZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MTlCMjEy
NzU4NjUwMDYzNEZDRiAvKiBraXNzX2ZmdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzMjUy
MzRCOERDMjAwMjhBNjE1IC8qIGRhdGFfY2hhbm5lbF9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4NDIwMUU0MzlCMjkwMDYyMUU5MiAvKiBsZWdhY3lfZW5jb2RlZF9hdWRpb19m
cmFtZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzQjUyMzRCOTcxMjAwMjhBNjE1IC8qIGZy
YW1lX2RlY3J5cHRvcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDU4MjM0
QzgxMTgwMDI4QTYxNSAvKiB0dXJuX3BvcnRfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg0QjkxRTQzQUYxMzAwNjIxRTkyIC8qIGxldmVsX2VzdGltYXRvcl9pbXBsLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTMxQzE0NjIzNEI4OUUyMDAyOEE2MTUgLyogb3BlbnNzbF9jZXJ0aWZp
Y2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzRTY3NzMyMTY5ODYzQjAwRUYzN0VEIC8qIGxp
YnZweF9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMURCMjM0QjhBNEIwMDI4
QTYxNSAvKiBmYWtlX3BvcnRfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzFC
QTIzNEI4QTRBMDAyOEE2MTUgLyogcDJwX3RyYW5zcG9ydF9jaGFubmVsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTI5NDA5NTIxMkUxMjhEMDBBRDk1RTcgLyogbGlidnB4X3ZwOF9kZWNvZGVyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkZBMTIzNEI4OEE2MDAyOEE2MTUgLyogdmlkZW9fYnJv
YWRjYXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMjk0MDkzMjEyRTEyOEQwMEFEOTVFNyAv
KiBsaWJ2cHhfdnA4X2VuY29kZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDgwMjM0Qjg5
OEQwMDI4QTYxNSAvKiBmYWtlX21kbnNfcmVzcG9uZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTVGMUZCMzIxMjcyRkJBMDAwNjRDQkYgLyogbGltaXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDFCRTcxQUIyMTVDNDYzNzAwQTdCMTk2IC8qIGxpbmVtYXAuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDNEM2MjM0Qzg0NTIwMDI4QTYxNSAvKiBsaW5rX2NhcGFjaXR5X2VzdGltYXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDFCRTcxQjkyMTVDNDYzNzAwQTdCMTk2IC8qIGxpc3RmbXQuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFCRjIzMjM0Qjg4MjAwMDI4QTYxNSAvKiBsb2NhbF9hdWRp
b19zb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDYyMjM0Qjg5OEQwMDI4QTYxNSAv
KiBsb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhDMTAxRTQzQzM0NjAwNjIxRTky
IC8qIGxvY2tlZF9iYW5kd2lkdGhfaW5mby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMyRkQy
MzRCOERDMjAwMjhBNjE1IC8qIHJlZl9jb3VudGVkX2Jhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDMDIyMjM0Qjg5OEQwMDI4QTYxNSAvKiBsb2dfc2lua3MuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxMzFDM0U1MjM0QzdBMDgwMDI4QTYxNSAvKiBsb2dnZWRfZXZlbnRzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTMxQzA1NzIzNEI4OThEMDAyOEE2MTUgLyogbG9nZ2luZy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDEzMUM1NjMyMzRDOEMyMzAwMjhBNjE1IC8qIGxvZ2dpbmdfbWFjLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MUZDQkI2OTIxQjFGRjFCMDBBNURGMjcgLyogbG9zc19iYXNlZF9i
YW5kd2lkdGhfZXN0aW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM1NEIyMzRDOEIx
OTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9nZW5lcmljX2Fja19yZWNlaXZlZC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDEzMUM0QjkyMzRDODNERDAwMjhBNjE1IC8qIGxvc3Nfbm90aWZpY2F0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzRCRTIzNEM4NDA2MDAyOEE2MTUgLyogbG9zc19ub3Rp
ZmljYXRpb25fY29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxQzAyMTI3NTkz
RjAwNjM0RkNGIC8qIGxvc3NfcmF0ZV9maWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
NzA2MUU0M0JBNzUwMDYyMUU5MiAvKiBsb3VkbmVzc19oaXN0b2dyYW0uaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxMzFDMzEyMjM0QjhEQzIwMDI4QTYxNSAvKiBwZWVyX2Nvbm5lY3Rpb25faW50ZXJm
YWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDE0MDIxMjczNzI0MDA2MzRGQ0YgLyogbHBf
cmVzaWR1YWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDlEMjM0QzgzNEUwMDI4QTYxNSAv
KiBmcmFtZV9lbmNvZGVfbWV0YWRhdGFfd3JpdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
ODdDNjFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX2FuYWx5c2lzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTMxQzEzRTIzNEI4OUUyMDAyOEE2MTUgLyogdHJhY2VfZXZlbnQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxMzFDMzczMjM0Qjk1N0QwMDI4QTYxNSAvKiBjbG9ja2RyaWZ0X2RldGVjdG9yLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzAzNjIzNEI4OThEMDAyOEE2MTUgLyogbmV0d29ya19y
b3V0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCQzIxRTQzQzJCNTAwNjIxRTkyIC8qIGxw
Y19lbmNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4N0M4MUU0M0JDMDUwMDYyMUU5MiAv
KiBscGNfZ2Fpbl9zd2JfdGFibGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQzM0QxODFGNzlC
MzM0MDAzODdCNEQgLyogbHBjX21hc2tpbmdfbW9kZWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
MzFDMkZBMjM0QjhEQzIwMDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydF9pbnRlcmZhY2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQxMzFDNTVDMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfYndl
X3VwZGF0ZV9sb3NzX2Jhc2VkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdDQTFFNDNCQzA1
MDA2MjFFOTIgLyogbHBjX3NoYXBlX3N3YjEyX3RhYmxlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg3Q0MxRTQzQkMwNTAwNjIxRTkyIC8qIGxwY19zaGFwZV9zd2IxNl90YWJsZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxNDMzRDI4MUY3OUIzMzQwMDM4N0I0RCAvKiBscGNfdGFibGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdDRTFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX3RhYmxl
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGQTYyMzRCODhBNjAwMjhBNjE1IC8qIG1lZGlh
X2NoYW5uZWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRjFEMjM0Qjg4MjAwMDI4QTYxNSAv
KiBwZWVyX2Nvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMkZGMjM0QjhEQzIw
MDI4QTYxNSAvKiBkYXRhX2NoYW5uZWxfdHJhbnNwb3J0X2ludGVyZmFjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDhCQzQxRTQzQzJCNTAwNjIxRTkyIC8qIGxzZl9jaGVjay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhCQzYxRTQzQzJCNTAwNjIxRTkyIC8qIGxzZl9pbnRlcnBvbGF0ZV90
b19wb2x5X2RlYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCQzgxRTQzQzJCNTAwNjIxRTky
IC8qIGxzZl9pbnRlcnBvbGF0ZV90b19wb2x5X2VuYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDhCQ0ExRTQzQzJCNTAwNjIxRTkyIC8qIGxzZl90b19sc3AuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMzFDMzkyMjM0Qjk1N0QwMDI4QTYxNSAvKiBtb3ZpbmdfYXZlcmFnZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDhCQ0MxRTQzQzJCNTAwNjIxRTkyIC8qIGxzZl90b19wb2x5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REOEJDRTFFNDNDMkI1MDA2MjFFOTIgLyogbHNwX3RvX2xzZi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1Q0MxRTZBNjM0MzAwOTRGREM4IC8qIG1haW5fZmlsdGVy
X3VwZGF0ZV9nYWluLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkYzRTIzNEI4ODIwMDAyOEE2
MTUgLyogZHRsc190cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMzkzMjM0Qjk1
N0QwMDI4QTYxNSAvKiBibG9ja19idWZmZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMjlC
MjM0QjhDQzQwMDI4QTYxNSAvKiB3ZWJydGNfdm9pY2VfZW5naW5lLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MUZDQkIzRDIxQjFGRDQwMDBBNURGMjcgLyogbWF0Y2guaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDRDI4NUQwMUU2QTYzNDMwMDk0RkRDOCAvKiBtYXRjaGVkX2ZpbHRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNEMjg1Q0UxRTZBNjM0MzAwOTRGREM4IC8qIG1hdGNoZWRfZmlsdGVyX2xh
Z19hZ2dyZWdhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzMwODIzNEI4REMyMDAyOEE2
MTUgLyogbWVkaWFfc3RyZWFtX3Byb3h5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzNFRTIz
NEM3QTQ5MDAyOEE2MTUgLyogY2FzY2FkZWRfYmlxdWFkX2ZpbHRlci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEzMUMwNTMyMzRCODk4RDAwMjhBNjE1IC8qIG5hdF9zb2NrZXRfZmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGNjAyMzRCODgyMDAwMjhBNjE1IC8qIGR0bHNfc3J0cF90
cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDZDMjM0Qjg5OEQwMDI4QTYxNSAv
KiBuYXRfdHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzU5MUZFMjQ2NjUwMDQwQzMw
RiAvKiBtYXRodXRpbHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMUYzMjM0QjhBNEIwMDI4
QTYxNSAvKiB0cmFuc3BvcnRfZmFjdG9yeV9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMzFDNEVFMjM0Qzg2MTEwMDI4QTYxNSAvKiBydHBfcGFja2V0X3NlbmRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFCRTcxQjgyMTVDNDYzNzAwQTdCMTk2IC8qIG1kNS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUM0REUyMzRDODRBMzAwMjhBNjE1IC8qIHJ0cF9zZXF1ZW5jZV9udW1iZXJf
bWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzAyOTIzNEI4OThEMDAyOEE2MTUgLyogYXN5
bmNfdWRwX3NvY2tldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxREUyMzRCOEE0QjAwMjhB
NjE1IC8qIHBvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMUU2MjM0QjhBNEIwMDI4QTYx
NSAvKiBtZG5zX21lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDc2MjM0Qjg5OEQw
MDI4QTYxNSAvKiBtZG5zX3Jlc3BvbmRlcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4NkE1MUU0M0I5OTQwMDYyMUU5MiAvKiBtZWFuX3ZhcmlhbmNlX2VzdGltYXRvci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxQkQyMzRCOEE0QTAwMjhBNjE1IC8qIG1vY2tfYXN5bmNf
cmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRkE2MjM0Qjg4QTYwMDI4QTYxNSAv
KiBtZWRpYV9jaGFubmVsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkZBOTIzNEI4OEE2MDAy
OEE2MTUgLyogbWVkaWFfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkY4RDIzNEI4
OEE2MDAyOEE2MTUgLyogbWVkaWFfY29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMx
QkY5RDIzNEI4OEE2MDAyOEE2MTUgLyogbWVkaWFfZW5naW5lLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REODNFNjFFNDM5QTZGMDA2MjFFOTIgLyogbWVkaWFfb3B0X3V0aWwuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFDNDg2MjM0QzgyNzQwMDI4QTYxNSAvKiB0YXNrX3F1ZXVlX2Jhc2UuaCBp
biBIZWFkZXJzICovLAotCQkJCTQxMzFDMTFGMjM0Qjg5RTIwMDI4QTYxNSAvKiBzb2NrZXRfZmFj
dG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGNDUyMzRCODgyMDAwMjhBNjE1IC8qIG1l
ZGlhX3Byb3RvY29sX25hbWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkYyMTIzNEI4ODIw
MDAyOEE2MTUgLyogbWVkaWFfc2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGMTYy
MzRCODgyMDAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEz
MUMzMUIyMzRCOERDMjAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbV9pbnRlcmZhY2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMzFCRjBDMjM0Qjg4MjAwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW1fb2Jz
ZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMzA4MjM0QjhEQzIwMDI4QTYxNSAvKiBt
ZWRpYV9zdHJlYW1fcHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRjY0MjM0Qjg4MjAw
MDI4QTYxNSAvKiBtZWRpYV9zdHJlYW1fdHJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFD
MkVFMjM0QjhEQzIwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW1fdHJhY2tfcHJveHkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMzFDMzEwMjM0QjhEQzIwMDI4QTYxNSAvKiBtZWRpYV90cmFuc3BvcnRf
Y29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzMxQzIzNEI4REMyMDAyOEE2MTUgLyog
bWVkaWFfdHJhbnNwb3J0X2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMyRjEy
MzRCOERDMjAwMjhBNjE1IC8qIG1lZGlhX3R5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUw
MkNBRjIxMjczNTJEMDBDMjdDRDYgLyogbWVkaWFuX3Nsb3BlX2VzdGltYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFBMDhCQjgyMTI2OEE3RDAwMUQ1RDdCIC8qIG1lbW9yeS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDEzMUJGNEMyMzRCODgyMDAwMjhBNjE1IC8qIHNydHBfdHJhbnNwb3J0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzA2RDIzNEI4OThEMDAyOEE2MTUgLyogbWVtb3J5X3N0
cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwNkUyMzRCODk4RDAwMjhBNjE1IC8qIG1l
bW9yeV91c2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQ0JCODUyMUIyMDA3QjAwQTVERjI3
IC8qIG1lbXV0aWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTMwMUU0M0JGQjMwMDYyMUU5
MiAvKiBtZXJnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwN0UyMzRCODk4RDAwMjhBNjE1
IC8qIG1lc3NhZ2VfYnVmZmVyX3JlYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwOEIy
MzRCODk4RDAwMjhBNjE1IC8qIG1lc3NhZ2VfZGlnZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTMxQzA3MDIzNEI4OThEMDAyOEE2MTUgLyogbWVzc2FnZV9oYW5kbGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzA1QjIzNEI4OThEMDAyOEE2MTUgLyogbWVzc2FnZV9xdWV1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNERDg3MDcxRTQzQkE3NTAwNjIxRTkyIC8qIG1vY2tfYWdjLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTMxQzFCRDIzNEI4QTRBMDAyOEE2MTUgLyogbW9ja19hc3luY19y
ZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMxMUEwMDUxRTQ1NzQwMDAwNEYwOTg3IC8q
IG1vY2tfYXVkaW9fZGV2aWNlX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGOUIy
MzRCODhBNjAwMjhBNjE1IC8qIGNvZGVjLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEZFRDFF
NDNDRENBMDA2MjFFOTIgLyogbW9ja19hdWRpb19wcm9jZXNzaW5nLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MTMxQzFCOTIzNEI4QTRBMDAyOEE2MTUgLyogbW9ja19pY2VfdHJhbnNwb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTlDODM1NjFGRTI0NjY1MDA0MEMzMEYgLyogbW9kX29wcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUzRTQyMTY5ODNDQTAwMjgyNjZCIC8qIG1vZHVsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUzRTcyMTY5ODNDQTAwMjgyNjZCIC8qIG1vZHVsZV9jb21t
b25fdHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzk1M0U1MjE2OTgzQ0EwMDI4MjY2QiAv
KiBtb2R1bGVfY29tbW9uX3R5cGVzX3B1YmxpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUz
RTMyMTY5ODNDQTAwMjgyNjZCIC8qIG1vZHVsZV9mZWNfdHlwZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxMzFDMzkyMjM0Qjk1N0QwMDI4QTYxNSAvKiBtb3ZpbmdfYXZlcmFnZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFGQ0JCMTYyMUIxRjdBQTAwQTVERjI3IC8qIG1vdmluZ19hdmVyYWdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODYxMTFFNkE2NEM5MDA5NEZEQzggLyogbW92aW5nX21h
eC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzNTUxRkUyNDY2NTAwNDBDMzBGIC8qIG1vdmlu
Z19tYXhfY291bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzNTIxRkUyNDY2NTAwNDBD
MzBGIC8qIG1vdmluZ19tZWRpYW5fZmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEM4
RjFFNDNDNjYwMDA2MjFFOTIgLyogbW92aW5nX21vbWVudHMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDMjdEMjM0QjhDQzQwMDI4QTYxNSAvKiBtdWx0aXBsZXhfY29kZWNfZmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCRDAxRTQzQzJCNTAwNjIxRTkyIC8qIG15X2NvcnIuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4OTU0MUU0M0JGM0EwMDYyMUU5MiAvKiBuYWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REODNFQjFFNDM5QTZGMDA2MjFFOTIgLyogbmFja19tb2R1bGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTMzMUU0M0JGQjMwMDYyMUU5MiAvKiBuYWNrX3Ry
YWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDVFNEI3MUVGODk0M0UwMEZDRjZFNiAvKiBu
YWx1X3Jld3JpdGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzRBMTIzNEM4MzRFMDAyOEE2
MTUgLyogZW5jb2Rlcl9iaXRyYXRlX2FkanVzdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5
NTNCRjIxNjk4MjRCMDAyODI2NkIgLyogbmFsdV9yZXdyaXRlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDEzMUMwMzEyMzRCODk4RDAwMjhBNjE1IC8qIG5hdF9zZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFDMDUzMjM0Qjg5OEQwMDI4QTYxNSAvKiBuYXRfc29ja2V0X2ZhY3RvcnkuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFDMDZDMjM0Qjg5OEQwMDI4QTYxNSAvKiBuYXRfdHlwZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QkQyMUU0M0MyQjUwMDYyMUU5MiAvKiBuZWFyZXN0
X25laWdoYm9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkY5NjIzNEI4OEE2MDAyOEE2MTUg
LyogaDI2NF9wcm9maWxlX2xldmVsX2lkLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzMwMjIz
NEI4REMyMDAyOEE2MTUgLyogcHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDY3MjM0
Qjg5OEQwMDI4QTYxNSAvKiBuZXRfaGVscGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzAz
MjIzNEI4OThEMDAyOEE2MTUgLyogbmV0X2hlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4QTM3MUU0M0JGQjMwMDYyMUU5MiAvKiBuZXRlcV9pbXBsLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTMxQkYzNzIzNEI4ODIwMDAyOEE2MTUgLyogc2RwX3NlcmlhbGl6ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4QTlFMUU0M0MwMEYwMDYyMUU5MiAvKiBuZXRlcV9pbnB1dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNERDhBQTYxRTQzQzAwRjAwNjIxRTkyIC8qIG5ldGVxX3JlcGxhY2Vt
ZW50X2lucHV0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzA4NjIzNEI4OThEMDAyOEE2MTUg
LyogbmV0d29yay5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMwNUYyMzRCODk4RDAwMjhBNjE1
IC8qIG5ldHdvcmtfY29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUwMkNDRjIxMjcz
NUI3MDBDMjdDRDYgLyogbmV0d29ya19jb250cm9sLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMx
QzAyNzIzNEI4OThEMDAyOEE2MTUgLyogbmV0d29ya19tb25pdG9yLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MTMxQzAzNjIzNEI4OThEMDAyOEE2MTUgLyogbmV0d29ya19yb3V0ZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDEzMUMzMTYyMzRCOERDMjAwMjhBNjE1IC8qIG5ldHdvcmtfc3RhdGVfcHJl
ZGljdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUwMkNDRTIxMjczNUI3MDBDMjdDRDYgLyog
bmV0d29ya190eXBlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGQTMyMzRCODhBNjAwMjhB
NjE1IC8qIHN0cmVhbV9wYXJhbXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMUNCMjM0QjhB
NEEwMDI4QTYxNSAvKiBub19vcF9kdGxzX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg3MkIxRTQzQkFCRTAwNjIxRTkyIC8qIG5vaXNlX2dtbV90YWJsZXMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFDM0MxMjM0Qjk3QjQwMDI4QTYxNSAvKiBhdWRpb19lbmNvZGVyX211bHRp
X2NoYW5uZWxfb3B1c19pbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTVGMUZCNDIxMjcyRkJB
MDAwNjRDQkYgLyogbm9pc2Vfc3BlY3RydW1fZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REODVGRjFFNDNCODRFMDA2MjFFOTIgLyogbm9pc2Vfc3VwcHJlc3Npb24uaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxMzFDMzM5MjM0QjhEREYwMDI4QTYxNSAvKiBzY29wZWRfcmVmcHRyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODRFQTFFNDNCMEI2MDA2MjFFOTIgLyogbm9pc2Vfc3Vw
cHJlc3Npb25faW1wbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0N0MyMzRDODIxNDAwMjhB
NjE1IC8qIG5vaXNlX3N1cHByZXNzaW9uX3Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
ODVGRDFFNDNCODRFMDA2MjFFOTIgLyogbm9pc2Vfc3VwcHJlc3Npb25feC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUMzQzIyMzRCOTdCNDAwMjhBNjE1IC8qIGF1ZGlvX2RlY29kZXJfbXVsdGlf
Y2hhbm5lbF9vcHVzX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTNFMUU0M0JGQjMw
MDYyMUU5MiAvKiBub3JtYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NkE4MUU0M0I5OTQw
MDYyMUU5MiAvKiBub3JtYWxpemVkX2NvdmFyaWFuY2VfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzMxOTIzNEI4REMyMDAyOEE2MTUgLyogbm90aWZpZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4NjAxMUU0M0I4NEUwMDYyMUU5MiAvKiBuc19jb3JlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUVDRUFDMTIwNjQwRjI4MDA5RDUxNDEgLyogTlNTdHJpbmcrU3RkU3RyaW5n
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0QjNFRjIxNjlDNjNGMDA0MzYzQUMgLyogTlNTdHJp
bmcrU3RkU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODYwNjFFNDNCODRFMDA2MjFF
OTIgLyogbnN4X2NvcmUuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNTAwMjM0Qzg2Q0IwMDI4
QTYxNSAvKiBzZXF1ZW5jZV9jaGVja2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzRFRDIz
NEM4NjExMDAyOEE2MTUgLyogcmVwb3J0X2Jsb2NrX2RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4NjA3MUU0M0I4NEUwMDYyMUU5MiAvKiBuc3hfZGVmaW5lcy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEzMUMxNDMyMzRCODlFMjAwMjhBNjE1IC8qIHRhc2tfcXVldWUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFDMzNBMjM0QjhEREYwMDI4QTYxNSAvKiBzdGF0c190eXBlcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUMxMDMyMzRCODlFMjAwMjhBNjE1IC8qIHN0cmluZ19lbmNvZGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMzBCMjM0QjhEQzIwMDI4QTYxNSAvKiBmZWNfY29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzQjQxRkUyNDcyRTAwNDBDMzBGIC8q
IG51bGxfYXVkaW9fcG9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUzMTFFNEE5OUQy
MDA0MDM5OTUgLyogbnVsbF9hdXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUzMjFFNEE5
OUQyMDA0MDM5OTUgLyogbnVsbF9jaXBoZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMDM0
MjM0Qjg5OEQwMDI4QTYxNSAvKiBudWxsX3NvY2tldF9zZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxMzFDMjg2MjM0QjhDQzQwMDI4QTYxNSAvKiBudWxsX3dlYnJ0Y192aWRlb19lbmdpbmUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxNjIyNUUzMjE2OTgxOTUwMEE5MUM5QiAvKiBvYmpjX2Zy
YW1lX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2MjI1RTgyMTY5ODE5NTAwQTkxQzlC
IC8qIG9iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTYy
MjVFNTIxNjk4MTk1MDBBOTFDOUIgLyogb2JqY192aWRlb19lbmNvZGVyX2ZhY3RvcnkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxNjIyNUU5MjE2OTgxOTUwMEE5MUM5QiAvKiBvYmpjX3ZpZGVvX2Zy
YW1lLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzRCRTIzNEM4NDA2MDAyOEE2MTUgLyogbG9z
c19ub3RpZmljYXRpb25fY29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxNDUy
MzRCODlFMjAwMjhBNjE1IC8qIG9uZV90aW1lX2V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REODY5NTFFNDNCOTM5MDA2MjFFOTIgLyogb291cmFfZmZ0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REODY5MjFFNDNCOTM5MDA2MjFFOTIgLyogb291cmFfZmZ0X3RhYmxlc19jb21tb24uaCBp
biBIZWFkZXJzICovLAotCQkJCTQxMzFDMUVFMjM0QjhBNEIwMDI4QTYxNSAvKiBhc3luY19zdHVu
X3RjcF9zb2NrZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTBFMjM0Qjg5RTIwMDI4QTYx
NSAvKiBvcGVuc3NsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzE1MDIzNEI4OUUyMDAyOEE2
MTUgLyogb3BlbnNzbF9hZGFwdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzE0NjIzNEI4
OUUyMDAyOEE2MTUgLyogb3BlbnNzbF9jZXJ0aWZpY2F0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUMxNDgyMzRCODlFMjAwMjhBNjE1IC8qIG9wZW5zc2xfZGlnZXN0LmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzEzOTIzNEI4OUUyMDAyOEE2MTUgLyogb3BlbnNzbF9pZGVudGl0eS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxMjIyMzRCODlFMjAwMjhBNjE1IC8qIG9wZW5zc2xfc2Vz
c2lvbl9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxMkIyMzRCODlFMjAwMjhBNjE1
IC8qIG9wZW5zc2xfc3RyZWFtX2FkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTRD
MjM0Qjg5RTIwMDI4QTYxNSAvKiBvcGVuc3NsX3V0aWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxRERCMjUxMjEyNjVCRTkwMDI5NkQ0NyAvKiBvcHRpb25hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDhDNjYxRTQzQzYwOTAwNjIxRTkyIC8qIG9wdXNfaW5zdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDhDNjgxRTQzQzYwOTAwNjIxRTkyIC8qIG9wdXNfaW50ZXJmYWNlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTMxQzBGRTIzNEI4OUUyMDAyOEE2MTUgLyogc3NsX2ZpbmdlcnByaW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzM4QzIzNEI5NTdEMDAyOEE2MTUgLyogcmVuZGVy
X3JldmVyYl9tb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3Q0YxRTQzQkMwNTAwNjIx
RTkyIC8qIG9zX3NwZWNpZmljX2lubGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBQUEx
RTQzQzAwRjAwNjIxRTkyIC8qIG91dHB1dF9hdWRpb19maWxlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTMxQkYxQjIzNEI4ODIwMDAyOEE2MTUgLyogcnRwX3RyYW5zcG9ydF9pbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg0OUMxRTZBNUY0MTAwOTRGREM4IC8qIG91dHB1dF9yYXRl
X2NhbGN1bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QUFCMUU0M0MwMEYwMDYyMUU5
MiAvKiBvdXRwdXRfd2F2X2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4RkQ4MUU0M0NE
NjYwMDYyMUU5MiAvKiBvdmVydXNlX2RldGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
OEZEQTFFNDNDRDY2MDA2MjFFOTIgLyogb3ZlcnVzZV9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4NUE1MUU0M0I1QzAwMDYyMUU5MiAvKiBvdmVydXNlX2ZyYW1lX2RldGVjdG9y
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFCNjIzNEI4QTRBMDAyOEE2MTUgLyogcDJwX2Nv
bnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxQkEyMzRCOEE0QTAwMjhBNjE1IC8q
IHAycF90cmFuc3BvcnRfY2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMjYzOTgyMTI2
N0Y1RTAwMjc0RjU5IC8qIHBhX21lbW9yeWJhcnJpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
MzFDMTA3MjM0Qjg5RTIwMDI4QTYxNSAvKiBzd2FwX3F1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MUYyNjM5OTIxMjY3RjVFMDAyNzRGNTkgLyogcGFfcmluZ2J1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDhGQTMxRTQzQ0NCRTAwNjIxRTkyIC8qIHBhY2VkX3NlbmRlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUMyOUYyMzRCOENDNDAwMjhBNjE1IC8qIGFkbV9oZWxwZXJzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODMyRTFGRTI0NUNEMDA0MEMzMEYgLyogcGFjZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFDNEMyMjM0Qzg0MjQwMDI4QTYxNSAvKiBwYWNpbmdfY29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCRDQxRTQzQzJCNTAwNjIxRTkyIC8q
IHBhY2tfYml0cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGMDIyMzRCODgyMDAwMjhBNjE1
IC8qIHJlbW90ZV9hdWRpb19zb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4M0VGMUU0
MzlBNkYwMDYyMUU5MiAvKiBwYWNrZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QUIwMUU0
M0MwMEYwMDYyMUU5MiAvKiBwYWNrZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTQzMUU0
M0JGQjMwMDYyMUU5MiAvKiBwYWNrZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNTU2MjM0
QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfZ2VuZXJpY19wYWNrZXRfc2VudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhBNDExRTQzQkZCMzAwNjIxRTkyIC8qIHBhY2tldF9idWZmZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4M0VEMUU0MzlBNkYwMDYyMUU5MiAvKiBwYWNrZXRfYnVm
ZmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzM3RDIzNEI5NTdEMDAyOEE2MTUgLyogc3Rh
dGlvbmFyaXR5X2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzREIyMzRDNzlE
MTAwMjhBNjE1IC8qIHZwOF9mcmFtZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
ODhEMUU0M0JFM0MwMDYyMUU5MiAvKiBwYWNrZXRfbG9zc19zdGF0cy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE5MjQxQzgyMTI3NTkzRjAwNjM0RkNGIC8qIHBhY2tldF9udW1iZXJfaW5kZXhlZF9x
dWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEwMkY2QjkyMTI3MzM4MjAwNkFFOEQ3IC8qIHBh
Y2tldF9yZWNlaXZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGQTUxRTQzQ0NCRTAwNjIx
RTkyIC8qIHBhY2tldF9yb3V0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDkyMjM0Qzgy
RUUwMDI4QTYxNSAvKiBlbnVtcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxRTIyMzRCOEE0
QjAwMjhBNjE1IC8qIHBhY2tldF9zb2NrZXRfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDhBQUQxRTQzQzAwRjAwNjIxRTkyIC8qIHBhY2tldF9zb3VyY2UuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxMzFDNDYzMjM0QzgxNzIwMDI4QTYxNSAvKiB2aWRlb19jb2RpbmdfZGVmaW5lcy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMwNkEyMzRCODk4RDAwMjhBNjE1IC8qIGNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzE1MjIzNEI4OUUyMDAyOEE2MTUgLyogc29ja2V0
X3NlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzMjIyMzRCOERDMjAwMjhBNjE1IC8q
IGljZV90cmFuc3BvcnRfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFBQzIz
NEI4QTRBMDAyOEE2MTUgLyogcGFja2V0X3RyYW5zcG9ydF9pbnRlcmZhY2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMzFDMUNDMjM0QjhBNEIwMDI4QTYxNSAvKiBwYWNrZXRfdHJhbnNwb3J0X2lu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzI3QzIzNEI4Q0M0MDAyOEE2MTUgLyog
cGF5bG9hZF90eXBlX21hcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDkwMDExRTQzQ0Uz
QTAwNjIxRTkyIC8qIHBjbTE2Yi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGMUQyMzRCODgy
MDAwMjhBNjE1IC8qIHBlZXJfY29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJG
MjQyMzRCODgyMDAwMjhBNjE1IC8qIHBlZXJfY29ubmVjdGlvbl9mYWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTMxQzMwMTIzNEI4REMyMDAyOEE2MTUgLyogcGVlcl9jb25uZWN0aW9uX2Zh
Y3RvcnlfcHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMzEyMjM0QjhEQzIwMDI4QTYx
NSAvKiBwZWVyX2Nvbm5lY3Rpb25faW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMx
QkYwMTIzNEI4ODIwMDAyOEE2MTUgLyogcGVlcl9jb25uZWN0aW9uX2ludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTMxQzJGMzIzNEI4REMyMDAyOEE2MTUgLyogcGVlcl9jb25uZWN0aW9u
X3Byb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkVGQjIzNEI4ODIwMDAyOEE2MTUgLyog
cGVlcl9jb25uZWN0aW9uX3dyYXBwZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzRFMUZF
MjQ2NjUwMDQwQzMwRiAvKiBwZXJjZW50aWxlX2ZpbHRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUM0M0QyMzRDODAwNzAwMjhBNjE1IC8qIHBmZmZ0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUJFNzFDMDIxNUM0NjM3MDBBN0IxOTYgLyogcGhhc2guaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MzFDMTNBMjM0Qjg5RTIwMDI4QTYxNSAvKiBwaHlzaWNhbF9zb2NrZXRfc2VydmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REODcyRTFFNDNCQUJFMDA2MjFFOTIgLyogcGl0Y2hfYmFzZWRfdmFk
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQzM0NGMTFGNzlCMzM0MDAzODdCNEQgLyogcGl0Y2hf
ZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdEMTFFNDNCQzA1MDA2MjFFOTIg
LyogcGl0Y2hfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTI5OUI5MzIxMjczNjdC
MDBCMzQxNEIgLyogcGl0Y2hfZmlsdGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzFFNTIz
NEI4QTRCMDAyOEE2MTUgLyogdHJhbnNwb3J0X2luZm8uaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
MzFDMkYzMjM0QjhEQzIwMDI4QTYxNSAvKiBwZWVyX2Nvbm5lY3Rpb25fcHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4N0Q0MUU0M0JDMDYwMDYyMUU5MiAvKiBwaXRjaF9nYWluX3RhYmxl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0MzNEMjMxRjc5QjMzNDAwMzg3QjREIC8qIHBpdGNo
X2dhaW5fdGFibGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDE0MzIxMjczNzI4MDA2MzRG
Q0YgLyogcGl0Y2hfaW5mby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMyRkUyMzRCOERDMjAw
MjhBNjE1IC8qIHJ0Y19lcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3MzExRTQzQkFC
RTAwNjIxRTkyIC8qIHBpdGNoX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdE
NjFFNDNCQzA2MDA2MjFFOTIgLyogcGl0Y2hfbGFnX3RhYmxlcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNDEzMUMwODYyMzRCODk4RDAwMjhBNjE1IC8qIG5ldHdvcmsuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxNDMzRDA5MUY3OUIzMzQwMDM4N0I0RCAvKiBwaXRjaF9sYWdfdGFibGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTkyNDEzQzIxMjczNzI0MDA2MzRGQ0YgLyogcGl0Y2hfc2VhcmNoLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDE0NTIxMjczNzI4MDA2MzRGQ0YgLyogcGl0Y2hfc2Vh
cmNoX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkY1ODIzNEI4ODIwMDAyOEE2
MTUgLyogc3RhdHNfY29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzExNjIzNEI4
OUUyMDAyOEE2MTUgLyogcGxhdGZvcm1fdGhyZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMx
QzExMTIzNEI4OUUyMDAyOEE2MTUgLyogcGxhdGZvcm1fdGhyZWFkX3R5cGVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0REODg5MDFFNDNCRTNDMDA2MjFFOTIgLyogcGxheW91dF9kZWxheV9vcmFj
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OTU3MUU0M0JGM0EwMDYyMUU5MiAvKiBwbGku
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NzM0MUU0M0JBQkUwMDYyMUU5MiAvKiBwb2xlX3pl
cm9fZmlsdGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzM3NTIzNEI5NTdEMDAyOEE2MTUg
LyogZWNob19hdWRpYmlsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJENjFFNDNDMkI1
MDA2MjFFOTIgLyogcG9seV90b19sc2YuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDY1MjM0
Qjg5OEQwMDI4QTYxNSAvKiBiaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJEODFFNDND
MkI1MDA2MjFFOTIgLyogcG9seV90b19sc3AuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMzkx
MjM0Qjk1N0QwMDI4QTYxNSAvKiBzaWduYWxfZGVwZW5kZW50X2VybGVfZXN0aW1hdG9yLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTMxQzFERTIzNEI4QTRCMDAyOEE2MTUgLyogcG9ydC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDEzMUMxQjMyMzRCOEE0QTAwMjhBNjE1IC8qIHBvcnRfYWxsb2NhdG9y
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFDQTIzNEI4QTRBMDAyOEE2MTUgLyogcG9ydF9p
bnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTQ2MUU0M0JGQjMwMDYyMUU5MiAv
KiBwb3N0X2RlY29kZV92YWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4MzVBMUU0MzI1NzIw
MDYyMUU5MiAvKiBwcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEE0ODFFNDNC
RkIzMDA2MjFFOTIgLyogcHJlZW1wdGl2ZV9leHBhbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
MzFDMUFFMjM0QjhBNEEwMDI4QTYxNSAvKiBiYXNpY19wYWNrZXRfc29ja2V0X2ZhY3RvcnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxRTAyQ0E3MjEyNzM1MkQwMEMyN0NENiAvKiBwcm9iZV9iaXRy
YXRlX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM1NDkyMzRDOEIxOTAwMjhB
NjE1IC8qIHJ0Y19ldmVudF9yb3V0ZV9jaGFuZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFD
MTBGMjM0Qjg5RTIwMDI4QTYxNSAvKiBydGNfY2VydGlmaWNhdGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFCRjQyMjM0Qjg4MjAwMDI4QTYxNSAvKiBzcnRwX3Nlc3Npb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxRTAyQ0E0MjEyNzM1MkQwMEMyN0NENiAvKiBwcm9iZV9jb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODRFNjFFNDNCMDREMDA2MjFFOTIgLyogcHJvY2Vzc190
aHJlYWRfaW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzNUQxRTQzMjU3MjAwNjIxRTky
IC8qIHByb2ZpbGVfbGV2ZWxfaWQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDMxMjM0Qjg5
OEQwMDI4QTYxNSAvKiBuYXRfc2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzEwOTIz
NEI4OUUyMDAyOEE2MTUgLyogcHJvdG9idWZfdXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MzFDMzAyMjM0QjhEQzIwMDI4QTYxNSAvKiBwcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEz
MUMxMTAyMzRCODlFMjAwMjhBNjE1IC8qIHByb3h5X2luZm8uaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDMTA4MjM0Qjg5RTIwMDI4QTYxNSAvKiBwcm94eV9zZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFDMUJCMjM0QjhBNEEwMDI4QTYxNSAvKiBwc2V1ZG9fdGNwLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0REODk1OTFFNDNCRjNBMDA2MjFFOTIgLyogcHNmYi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDg3NTYxRTQzQkFGNTAwNjIxRTkyIC8qIHB1c2hfc2luY19yZXNhbXBsZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNEEzMjM0QzgzNEUwMDI4QTYxNSAvKiBxdWFsaXR5
X2xpbWl0YXRpb25fcmVhc29uX3RyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Mzgy
MUU0MzlBMzUwMDYyMUU5MiAvKiBxdWFsaXR5X3NjYWxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDEzMUMxMkQyMzRCODlFMjAwMjhBNjE1IC8qIHRlbXBsYXRlX3V0aWwuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxMzFDNTNEMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfcnRwX3BhY2tldF9p
bmNvbWluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg2MkIxRTZBNjZDODAwOTRGREM4IC8q
IHF1YWxpdHlfdGhyZXNob2xkLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzQ4NzIzNEM4Mjc0
MDAyOEE2MTUgLyogcXVldWVkX3Rhc2suaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTQxMjM0
Qjg5RTIwMDI4QTYxNSAvKiByYWNlX2NoZWNrZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFD
MTQwMjM0Qjg5RTIwMDI4QTYxNSAvKiByYW5kb20uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
QTRCMUU0M0JGQjMwMDYyMUU5MiAvKiByYW5kb21fdmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REODk1QzFFNDNCRjNBMDA2MjFFOTIgLyogcmFwaWRfcmVzeW5jX3JlcXVlc3QuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxMzFDMTEyMjM0Qjg5RTIwMDI4QTYxNSAvKiByYXRlX2xpbWl0ZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTU3MjM0Qjg5RTIwMDI4QTYxNSAvKiByYXRlX3N0
YXRpc3RpY3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTA0MjM0Qjg5RTIwMDI4QTYxNSAv
KiByYXRlX3RyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTA4QkNCMjEyNjk2MUYwMDFE
NUQ3QiAvKiByYXdfbG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MzMxRTRBOTlE
MjAwNDAzOTk1IC8qIHJkYi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMyODYyMzRCOENDNDAw
MjhBNjE1IC8qIG51bGxfd2VicnRjX3ZpZGVvX2VuZ2luZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUMwODg1MzQxRTRBOTlEMjAwNDAzOTk1IC8qIHJkYnguaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
NjNGOERGMUU0MTZENTMwMDJDQTUzMSAvKiByZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
NEI0Qzc4MUU0MzFGOUMwMDI2NTFDOCAvKiByZWFsX2ZvdXJpZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDNEI0QzczMUU0MzFGOUMwMDI2NTFDOCAvKiByZWFsX2ZvdXJpZXJfb291cmEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxOUM4M0NBMUZFMjQ3QjQwMDQwQzMwRiAvKiByZWNlaXZlX3N0YXRp
c3RpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4ODkyMUU0M0JFM0MwMDYyMUU5MiAvKiBy
ZWNlaXZlX3N0YXRpc3RpY3NfaW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMyOTAyMzRC
OENDNDAwMjhBNjE1IC8qIGNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1QUIx
RTQzQjVDMDAwNjIxRTkyIC8qIHJlY2VpdmVfc3RhdGlzdGljc19wcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDFENkI0NTgyMTI3MzE1OTAwOEY5MzUzIC8qIHJlY2VpdmVfdGltZV9jYWxjdWxh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODNGNTFFNDM5QTZGMDA2MjFFOTIgLyogcmVj
ZWl2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OTVGMUU0M0JGM0EwMDYyMUU5MiAvKiBy
ZWNlaXZlcl9yZXBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTRFMUU0M0JGQjMwMDYy
MUU5MiAvKiByZWRfcGF5bG9hZF9zcGxpdHRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMw
N0MyMzRCODk4RDAwMjhBNjE1IC8qIGlwX2FkZHJlc3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MzFDMTAxMjM0Qjg5RTIwMDI4QTYxNSAvKiByZWZfY291bnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDMkZEMjM0QjhEQzIwMDI4QTYxNSAvKiByZWZfY291bnRlZF9iYXNlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTMxQzE0OTIzNEI4OUUyMDAyOEE2MTUgLyogcmVmX2NvdW50ZWRfb2JqZWN0
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzEyNjIzNEI4OUUyMDAyOEE2MTUgLyogcmVmX2Nv
dW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QkRBMUU0M0MyQjUwMDYyMUU5MiAvKiBy
ZWZpbmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzEzNzIzNEI4OUUyMDAyOEE2MTUgLyog
c2VydmVyX3NvY2tldF9hZGFwdGVycy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxNTQyMzRC
ODlFMjAwMjhBNjE1IC8qIHRocmVhZF9hbm5vdGF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUMxQ0QyMzRCOEE0QjAwMjhBNjE1IC8qIHJlZ2F0aGVyaW5nX2NvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxMzFDMUIxMjM0QjhBNEEwMDI4QTYxNSAvKiByZWxheV9wb3J0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzQ1NTIzNEM4MTE4MDAyOEE2MTUgLyogcmVsYXlfcG9y
dF9mYWN0b3J5X2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxQjgyMzRCOEE0
QTAwMjhBNjE1IC8qIHJlbGF5X3NlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NjIx
RTQzQkYzQTAwNjIxRTkyIC8qIHJlbWIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJGNkE3MjEy
NzMyNjIwMDZBRThENyAvKiByZW1peF9yZXNhbXBsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEz
MUM0ODgyMzRDODI3NDAwMjhBNjE1IC8qIHRhc2tfcXVldWVfZmFjdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUJGNEQyMzRCODgyMDAwMjhBNjE1IC8qIHZpZGVvX3RyYWNrX3NvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzN0MyMzRCOTU3RDAwMjhBNjE1IC8qIHNwZWN0cnVt
X2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM1M0YyMzRDOEIxOTAwMjhBNjE1IC8q
IHJ0Y19ldmVudF9hdWRpb19zZW5kX3N0cmVhbV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFCRjAyMjM0Qjg4MjAwMDI4QTYxNSAvKiByZW1vdGVfYXVkaW9fc291cmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REOEZEQzFFNDNDRDY2MDA2MjFFOTIgLyogcmVtb3RlX2JpdHJhdGVf
ZXN0aW1hdG9yX2Fic19zZW5kX3RpbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4RkRFMUU0
M0NENjYwMDYyMUU5MiAvKiByZW1vdGVfYml0cmF0ZV9lc3RpbWF0b3Jfc2luZ2xlX3N0cmVhbS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0QjcyMzRDODNERDAwMjhBNjE1IC8qIHJlbW90ZV9l
c3RpbWF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGRTIxRTQzQ0Q2NjAwNjIxRTkyIC8q
IHJlbW90ZV9lc3RpbWF0b3JfcHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0M1MUZF
MjQ3QjQwMDQwQzMwRiAvKiByZW1vdGVfbnRwX3RpbWVfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTQ1RTREQTFFRjhDQzlCMDBGQ0Y2RTYgLyogcmVuZGVyX2J1ZmZlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xNTE1Miw5MCArMTUyMzYsOTkgQEAKIAkJCQk1Q0QyODVEQTFFNkE2MzQz
MDA5NEZEQzggLyogcmVuZGVyX2RlbGF5X2NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDRDI4NUQ4MUU2QTYzNDMwMDk0RkRDOCAvKiByZW5kZXJfZGVsYXlfY29udHJvbGxlcl9tZXRy
aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODRCQzFFNDNBRjEzMDA2MjFFOTIgLyogcmVu
ZGVyX3F1ZXVlX2l0ZW1fdmVyaWZpZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDU2MjM0
QzgxMTgwMDI4QTYxNSAvKiBiYXNpY19wb3J0X2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDEzMUMzOEMyMzRCOTU3RDAwMjhBNjE1IC8qIHJlbmRlcl9yZXZlcmJfbW9kZWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDRDI4NURDMUU2QTYzNDMwMDk0RkRDOCAvKiByZW5kZXJfc2lnbmFs
X2FuYWx5emVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzRFNTIzNEM4NTJFMDAyOEE2MTUg
LyogcmVwZWF0aW5nX3Rhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OTY1MUU0M0JGM0Ew
MDYyMUU5MiAvKiByZXBvcnRfYmxvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNEVEMjM0
Qzg2MTEwMDI4QTYxNSAvKiByZXBvcnRfYmxvY2tfZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg1QUYxRTQzQjVDMDAwNjIxRTkyIC8qIHJlcG9ydF9ibG9ja19zdGF0cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDg2NjUxRTQzQjhCNTAwNjIxRTkyIC8qIHJlc2FtcGxlX2J5XzJfaW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QUIyMUU0M0MwMEYwMDYyMUU5MiAvKiBy
ZXNhbXBsZV9pbnB1dF9hdWRpb19maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODRCRTFF
NDNBRjEzMDA2MjFFOTIgLyogcmVzaWR1YWxfZWNob19kZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNEMjg1REUxRTZBNjM0MzAwOTRGREM4IC8qIHJlc2lkdWFsX2VjaG9fZXN0aW1hdG9y
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzM4MTIzNEI5NTdEMDAyOEE2MTUgLyogcmV2ZXJi
X2RlY2F5X2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzN0IyMzRCOTU3RDAw
MjhBNjE1IC8qIHJldmVyYl9mcmVxdWVuY3lfcmVzcG9uc2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDMzg4MjM0Qjk1N0QwMDI4QTYxNSAvKiByZXZlcmJfbW9kZWwuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFDMzgyMjM0Qjk1N0QwMDI4QTYxNSAvKiByZXZlcmJfbW9kZWxfZXN0aW1hdG9y
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkY5MjIzNEI4OEE2MDAyOEE2MTUgLyogcmlkX2Rl
c2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDFBRTIxMjc1OEQzMDA2MzRGQ0Yg
LyogcmluZ19idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNEI0QzdCMUU0MzFGOUMwMDI2
NTFDOCAvKiByaW5nX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg0QzAxRTQzQUYx
MzAwNjIxRTkyIC8qIHJtc19sZXZlbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzMTAyMzRC
OERDMjAwMjhBNjE1IC8qIG1lZGlhX3RyYW5zcG9ydF9jb25maWcuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDNEYyMjM0Qzg2MzkwMDI4QTYxNSAvKiB0YXNrX3F1ZXVlX3N0ZGxpYi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE5MjQxQUEyMTI3NThEMzAwNjM0RkNGIC8qIHJubi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE5MjQxOUMyMTI3NTg2NTAwNjM0RkNGIC8qIHJubl9hY3RpdmF0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxOTgyMTI3NTg2NTAwNjM0RkNGIC8qIHJubl92YWRf
d2VpZ2h0cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxMjEyMzRCODlFMjAwMjhBNjE1IC8q
IHJvbGxpbmdfYWNjdW11bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTA4QkQzMjEyNzJF
RkEwMDFENUQ3QiAvKiByb3VuZF9yb2Jpbl9wYWNrZXRfcXVldWUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDNTVBMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfcnRjcF9wYWNrZXRfaW5j
b21pbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDFGMjM0Qjg5OEQwMDI4QTYxNSAvKiBm
b3JtYXRfbWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODk2QjFFNDNCRjNBMDA2MjFF
OTIgLyogcnJ0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzRjgyMzRDN0IwMzAwMjhBNjE1
IC8qIGF1ZGlvX2VuY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzX2NvbmZpZy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUMxQ0YyMzRCOEE0QjAwMjhBNjE1IC8qIGNvbm5lY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxMzFDMDc3MjM0Qjg5OEQwMDI4QTYxNSAvKiBmYWtlX2Nsb2NrLmggaW4g
SGVhZGVycyAqLywKLQkJCQk0MTMxQzA1ODIzNEI4OThEMDAyOEE2MTUgLyogYXN5bmNfcmVzb2x2
ZXJfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzRCNzIzNEM4M0REMDAyOEE2
MTUgLyogcmVtb3RlX2VzdGltYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkYyMzIzNEI4
ODIwMDAyOEE2MTUgLyogbG9jYWxfYXVkaW9fc291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTMxQzEwRjIzNEI4OUUyMDAyOEE2MTUgLyogcnRjX2NlcnRpZmljYXRlLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzEyQzIzNEI4OUUyMDAyOEE2MTUgLyogcnRjX2NlcnRpZmljYXRlX2dlbmVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMyRkUyMzRCOERDMjAwMjhBNjE1IC8qIHJ0
Y19lcnJvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0NkYyMzRDODFCNjAwMjhBNjE1IC8q
IHJ0Y19ldmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM1NTEyMzRDOEIxOTAwMjhBNjE1
IC8qIHJ0Y19ldmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM1NDgyMzRDOEIxOTAwMjhB
NjE1IC8qIHJ0Y19ldmVudF9hbHJfc3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNTNB
MjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfYXVkaW9fbmV0d29ya19hZGFwdGF0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzU0MjIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50
X2F1ZGlvX3BsYXlvdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNTM2MjM0QzhCMTkwMDI4
QTYxNSAvKiBydGNfZXZlbnRfYXVkaW9fcmVjZWl2ZV9zdHJlYW1fY29uZmlnLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTMxQzUzRjIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2F1ZGlvX3Nl
bmRfc3RyZWFtX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM1M0MyMzRDOEIxOTAw
MjhBNjE1IC8qIHJ0Y19ldmVudF9id2VfdXBkYXRlX2RlbGF5X2Jhc2VkLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzU1QzIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2J3ZV91cGRhdGVf
bG9zc19iYXNlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM1NDUyMzRDOEIxOTAwMjhBNjE1
IC8qIHJ0Y19ldmVudF9kdGxzX3RyYW5zcG9ydF9zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUM1NDQyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9kdGxzX3dyaXRhYmxlX3N0YXRl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzU0QjIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2
ZW50X2dlbmVyaWNfYWNrX3JlY2VpdmVkLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzUzRTIz
NEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2dlbmVyaWNfcGFja2V0X3JlY2VpdmVkLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTMxQzU1NjIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2dl
bmVyaWNfcGFja2V0X3NlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTA4QkJFMjEyNjk1NTMw
MDFENUQ3QiAvKiBydGNfZXZlbnRfaWNlX2NhbmRpZGF0ZV9wYWlyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MUEwOEJCRjIxMjY5NTUzMDAxRDVEN0IgLyogcnRjX2V2ZW50X2ljZV9jYW5kaWRhdGVf
cGFpcl9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMUNDMjM0QjhBNEIwMDI4QTYx
NSAvKiBwYWNrZXRfdHJhbnNwb3J0X2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMx
QzQ3ODIzNEM4MUVBMDAyOEE2MTUgLyogY2FsbF9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTMxQzM0QjIzNEI4RERGMDAyOEE2MTUgLyogcnRwX3RyYW5zY2VpdmVyX2ludGVyZmFjZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxMTUyMzRCODlFMjAwMjhBNjE1IC8qIHNvY2tldF9z
dHJlYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxOUM4NDIzMUZFMjRCQTYwMDQwQzMwRiAvKiBy
dGNfZXZlbnRfbG9nX291dHB1dF9maWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkYyMjIz
NEI4ODIwMDAyOEE2MTUgLyogdHJhY2tfbWVkaWFfaW5mb19tYXAuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDMzE5MjM0QjhEQzIwMDI4QTYxNSAvKiBub3RpZmllci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEzMUMzMEQyMzRCOERDMjAwMjhBNjE1IC8qIGNhbmRpZGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUMwMjIyMzRCODk4RDAwMjhBNjE1IC8qIGxvZ19zaW5rcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDEzMUM0NzEyMzRDODFCNjAwMjhBNjE1IC8qIHJ0Y19ldmVudF9sb2cuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFDNDcyMjM0QzgxQjYwMDI4QTYxNSAvKiBydGNfZXZlbnRf
bG9nX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNDczMjM0QzgxQjYwMDI4QTYx
NSAvKiBydGNfZXZlbnRfbG9nX2ZhY3RvcnlfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTMxQzMwNjIzNEI4REMyMDAyOEE2MTUgLyogcnRjX2V2ZW50X2xvZ19vdXRwdXQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxOUM4NDIzMUZFMjRCQTYwMDQwQzMwRiAvKiBydGNfZXZlbnRfbG9n
X291dHB1dF9maWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzJGQjIzNEI4REMyMDAyOEE2
MTUgLyogcnRjX2V2ZW50X2xvZ19vdXRwdXRfZmlsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEz
MUM1NEQyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9wcm9iZV9jbHVzdGVyX2NyZWF0ZWQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNTVFMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZl
bnRfcHJvYmVfcmVzdWx0X2ZhaWx1cmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNTUwMjM0
QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfcHJvYmVfcmVzdWx0X3N1Y2Nlc3MuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMzFDM0U0MjM0QzdBMDgwMDI4QTYxNSAvKiBydGNfZXZlbnRfcHJvY2Vz
c29yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzU0OTIzNEM4QjE5MDAyOEE2MTUgLyogcnRj
X2V2ZW50X3JvdXRlX2NoYW5nZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM1NUEyMzRDOEIx
OTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9ydGNwX3BhY2tldF9pbmNvbWluZy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDEzMUM1NEUyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9ydGNwX3BhY2tl
dF9vdXRnb2luZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM1M0QyMzRDOEIxOTAwMjhBNjE1
IC8qIHJ0Y19ldmVudF9ydHBfcGFja2V0X2luY29taW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTMxQzUzODIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X3J0cF9wYWNrZXRfb3V0Z29pbmcu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNTRGMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZl
bnRfdmlkZW9fcmVjZWl2ZV9zdHJlYW1fY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMx
QzU1MzIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X3ZpZGVvX3NlbmRfc3RyZWFtX2NvbmZp
Zy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGMjAyMzRCODgyMDAwMjhBNjE1IC8qIHJ0Y19z
dGF0c19jb2xsZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRjVGMjM0Qjg4MjAwMDI4
QTYxNSAvKiBydGNfc3RhdHNfdHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODQx
RTFGRTI0QUVGMDA0MEMzMEYgLyogcnRjX3N0cmVhbV9jb25maWcuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDM0Q4MjM0Qzc5RDEwMDI4QTYxNSAvKiB2cDhfZnJhbWVfYnVmZmVyX2NvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDYyMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENB
dWRpb1Nlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDU4MUZFMTk5MUEwMDM3M0U5
OSAvKiBSVENBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MTMxQzAyRjIzNEI4OThEMDAyOEE2MTUgLyogZXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
M0EyNDRCMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENBdWRpb1NvdXJjZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzQTI0NTcxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ0F1ZGlvVHJhY2suaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxMzFDMUJDMjM0QjhBNEEwMDI4QTYxNSAvKiBzdHVuX3JlcXVlc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxM0EyNDVCMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENDYW1lcmFQ
cmV2aWV3Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NEQxRkUxOTkxQTAwMzczRTk5
IC8qIFJUQ0NhbWVyYVZpZGVvQ2FwdHVyZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMUIw
MjM0QjhBNEEwMDI4QTYxNSAvKiBmYWtlX2ljZV90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDNDg1MjM0QzgyNzQwMDI4QTYxNSAvKiBkZWZhdWx0X3Rhc2tfcXVldWVfZmFjdG9y
eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGNDkyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF90
cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMjdDMjM0QjhDQzQwMDI4QTYxNSAv
KiBwYXlsb2FkX3R5cGVfbWFwcGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5NTNGODIxNjk4
NEJFMDAyODI2NkIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNzk1M0JBMjE2OTgyNDIwMDI4MjY2QiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQrUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUzQzAyMTY5ODI0QjAwMjgyNjZCIC8qIFJU
Q0NvZGVjU3BlY2lmaWNJbmZvSDI2NC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMwMjAyMzRC
ODk4RDAwMjhBNjE1IC8qIGZha2Vfc3NsX2lkZW50aXR5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTc3RjUwRjIzODBFODQ4MDBDMDQ0ODYgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNzdGNTE1MjM4MEU4NDgwMEMwNDQ4NiAvKiBSVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDQ0MUZFMTk5
MUEwMDM3M0U5OSAvKiBSVENDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNF
Njc4QTIxNjk4N0I5MDBFRjM3RUQgLyogUlRDQ1ZQaXhlbEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEzMUMwNzMyMzRCODk4RDAwMjhBNjE1IC8qIGNvcHlfb25fd3JpdGVfYnVmZmVyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzRBNTIzNEM4MzRFMDAyOEE2MTUgLyogZW5jb2Rlcl9v
dmVyc2hvb3RfZGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMUU2MjM0QjhBNEIw
MDI4QTYxNSAvKiBtZG5zX21lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRUZBMjM0
Qjg4MjAwMDI4QTYxNSAvKiBzY3RwX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
QTI0NTUxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ0RhdGFDaGFubmVsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTNBMjQ3MDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRGF0YUNoYW5uZWxDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5NTNCQjIxNjk4MjQyMDAyODI2NkIgLyogUlRD
RGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzk1M0My
MjE2OTgyNEIwMDI4MjY2QiAvKiBSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzQTI0NTIxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ0Rpc3BhdGNoZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNTNDMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZl
bnRfYndlX3VwZGF0ZV9kZWxheV9iYXNlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NUQx
RkUxOTkxQTAwMzczRTk5IC8qIFJUQ0VBR0xWaWRlb1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNDRCM0Y2MjE2QjA4MUIwMDQzNjNBQyAvKiBSVENFbmNvZGVkSW1hZ2UrUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMyRUQyMzRCOERDMjAwMjhBNjE1IC8qIGNyZWF0ZV9wZWVy
Y29ubmVjdGlvbl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzUzODIzNEM4QjE5
MDAyOEE2MTUgLyogcnRjX2V2ZW50X3J0cF9wYWNrZXRfb3V0Z29pbmcuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxMzFDMzQxMjM0QjhEREYwMDI4QTYxNSAvKiBzY3RwX3RyYW5zcG9ydF9pbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzk1M0Y3MjE2OTg0QkUwMDI4MjY2QiAvKiBSVENF
bmNvZGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRjhBMjM0Qjg4QTYwMDI4QTYx
NSAvKiB2aWRlb19hZGFwdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ0MDFGRTE5OTFB
MDAzNzNFOTkgLyogUlRDRmllbGRUcmlhbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDVB
MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENGaWxlTG9nZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTNBMjQ1NjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRmlsZVZpZGVvQ2FwdHVyZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxNzk1M0MzMjE2OTgyNEIwMDI4MjY2QiAvKiBSVENIMjY0UHJvZmlsZUxl
dmVsSWQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNzdGNTE4MjM4MEU4NDgwMEMwNDQ4NiAvKiBS
VENIMjY1UHJvZmlsZUxldmVsSWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzk1M0Y5MjE2OTg0
QkUwMDI4MjY2QiAvKiBSVENJNDIwQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ0
RTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDSWNlQ2FuZGlkYXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTNBMjQ1RTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDSWNlU2VydmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTNBMjQ0ODFGRTE5OTFBMDAzNzNFOTkgLyogUlRDSW50ZXJ2YWxSYW5nZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMwNjcyMzRCODk4RDAwMjhBNjE1IC8qIG5ldF9oZWxwZXIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMzA5MjM0QjhEQzIwMDI4QTYxNSAvKiBjcnlwdG9f
cGFyYW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ0MjFGRTE5OTFBMDAzNzNFOTkgLyog
UlRDTGVnYWN5U3RhdHNSZXBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDY5MUZFMTk5
MUEwMDM3M0U5OSAvKiBSVENMb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ0OTFG
RTE5OTFBMDAzNzNFOTkgLyogUlRDTWFjcm9zLmggaW4gSGVhZGVycyAqLywKQEAgLTE1MjQ3LDM0
ICsxNTM0MCwyNiBAQAogCQkJCTQxM0EyNDZBMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENNZXRyaWNz
U2FtcGxlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NjcxRkUxOTkxQTAwMzczRTk5
IC8qIFJUQ01UTE5TVmlkZW9WaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ3MTFGRTE5
OTFBMDAzNzNFOTkgLyogUlRDTVRMVmlkZW9WaWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMx
QzMwQTIzNEI4REMyMDAyOEE2MTUgLyogZmVjX2NvbnRyb2xsZXJfb3ZlcnJpZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxNDRCM0Q0MjE2OTg5NkQwMDQzNjNBQyAvKiBSVENOYXRpdmVJNDIwQnVm
ZmVyK1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDRCM0QyMjE2OTg5NkQwMDQzNjNB
QyAvKiBSVENOYXRpdmVJNDIwQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0QjNENTIx
Njk4OTZEMDA0MzYzQUMgLyogUlRDTmF0aXZlTXV0YWJsZUk0MjBCdWZmZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxM0EyNDU5MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENOU0dMVmlkZW9WaWV3Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODJCMjFGRTIwRENEMDA0MEMzMEYgLyogcnRjcF9kZW11
eGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkYxMjIzNEI4ODIwMDAyOEE2MTUgLyogcnRj
cF9tdXhfZmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVGQjFFNkE2NDUyMDA5NEZE
QzggLyogcnRjcF9uYWNrX3N0YXRzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA3MDIzNEI4
OThEMDAyOEE2MTUgLyogbWVzc2FnZV9oYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
ODg5ODFFNDNCRTNDMDA2MjFFOTIgLyogcnRjcF9wYWNrZXQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMzFDMTYxMjM0Qjg5RTIwMDI4QTYxNSAvKiBzc2xfY2VydGlmaWNhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxOUM4MkJEMUZFMjBEQ0QwMDQwQzMwRiAvKiBydGNwX3BhY2tldF9zaW5rX2lu
dGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg4OUIxRTQzQkUzQzAwNjIxRTkyIC8q
IHJ0Y3BfcmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4ODlFMUU0M0JFM0MwMDYy
MUU5MiAvKiBydGNwX3NlbmRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0RUYyMzRDODYx
MTAwMjhBNjE1IC8qIHJ0Y3Bfc3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5Qzgz
MDMxRkUyMEYwMjAwNDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDNDcxMjM0QzgxQjYwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTlDODMwMTFGRTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9j
b25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzA1MUZFMjBGMDIwMDQwQzMwRiAvKiBy
dGNwX3RyYW5zY2VpdmVyX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDNFMUZFMTk5
MUEwMDM3M0U5OSAvKiBSVENQZWVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
QTI0NjMxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUMwN0EyMzRCODk4RDAwMjhBNjE1IC8qIGF0b21pY19vcHMuaCBp
biBIZWFkZXJzICovLAotCQkJCTQxMzFCRjRCMjM0Qjg4MjAwMDI4QTYxNSAvKiBzY3RwX3V0aWxz
LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzE1NTIzNEI4OUUyMDAyOEE2MTUgLyogc2lnbmFs
X3RocmVhZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMyRjEyMzRCOERDMjAwMjhBNjE1IC8q
IG1lZGlhX3R5cGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkYyODIzNEI4ODIwMDAyOEE2
MTUgLyoganNlcF90cmFuc3BvcnRfY29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
QTI0NkMxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1J0cENvZGVjUGFyYW1ldGVycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE4ODlENzUyMTZCQjdCOTAwNDYxNEREIC8qIFJUQ1J0cEVuY29kaW5nUGFy
YW1ldGVycytQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg4OUQ3NjIxNkJDNEVDMDA0
NjE0REQgLyogUlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MTMxQzM4ODIzNEI5NTdEMDAyOEE2MTUgLyogcmV2ZXJiX21vZGVsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTNBMjQ0QzFGRTE5OTFBMDAzNzNFOTkgLyogUlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg4OUQ3ODIxNkJDNEVDMDA0NjE0REQgLyogUlRDUnRw
RnJhZ21lbnRhdGlvbkhlYWRlcitQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNFNjdB
MTIxNjk4ODk1MDBFRjM3RUQgLyogUlRDUnRwRnJhZ21lbnRhdGlvbkhlYWRlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNTI4Miw0NyArMTUzNjcsMzcgQEAKIAkJCQk0MTNBMjQzQjFGRTE5OTFBMDAz
NzNFOTkgLyogUlRDUnRwUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDVDMUZF
MTk5MUEwMDM3M0U5OSAvKiBSVENSdHBTZW5kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0Ey
NDRBMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENTZXNzaW9uRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFDMTMxMjM0Qjg5RTIwMDI4QTYxNSAvKiBzb2NrZXRfYWRhcHRlcnMuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxM0EyNDY2MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENTU0xBZGFw
dGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzM3NjIzNEI5NTdEMDAyOEE2MTUgLyogYXBp
X2NhbGxfaml0dGVyX21ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDVFNEM3MUVGODk2
RDcwMEZDRjZFNiAvKiBydGNzdGF0c19vYmplY3RzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNB
MjQ1RjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVHJhY2luZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDEzMUJGMzUyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF9wYXJhbWV0ZXJzX2NvbnZlcnNpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTQxM0EyNDNEMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb0Nh
cHR1cmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUVDRUFCNjIwNjMwMTA4MDA5RDUxNDEgLyog
UlRDVmlkZW9Db2RlYytQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ0MzFGRTE5
OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9Db2RlYy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMz
NDAyMzRCOERERjAwMjhBNjE1IC8qIHR1cm5fY3VzdG9taXplci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzRTY3NjYyMTY5ODU0QjAwRUYzN0VEIC8qIFJUQ1ZpZGVvQ29kZWNDb25zdGFudHMuaCBp
biBIZWFkZXJzICovLAotCQkJCTQxMzFDMTIxMjM0Qjg5RTIwMDI4QTYxNSAvKiByb2xsaW5nX2Fj
Y3VtdWxhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ1MzFGRTE5OTFBMDAzNzNFOTkg
LyogUlRDVmlkZW9Db2RlY0ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMzQ5MjM0
QjhEREYwMDI4QTYxNSAvKiBydHBfcGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
QTI0M0MxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvQ29kZWNIMjY0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTQ0QjNFQjIxNjlDNUUzMDA0MzYzQUMgLyogUlRDVmlkZW9Db2RlY0luZm8rUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzRTY3OTkyMTY5ODgzOTAwRUYzN0VEIC8qIFJU
Q1ZpZGVvQ29kZWNJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0QjNERDIxNjlBMDcwMDA0
MzYzQUMgLyogUlRDVmlkZW9EZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0QjNFMDIx
NjlBMDcwMDA0MzYzQUMgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEzMUM1NDUyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9kdGxzX3RyYW5zcG9y
dF9zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUzQzUyMTY5ODI0QjAwMjgyNjZCIC8q
IFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc3RjUx
OTIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxNzk1M0M2MjE2OTgyNEIwMDI4MjY2QiAvKiBSVENWaWRlb0RlY29kZXJI
MjY0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzQ3MjIzNEM4MUI2MDAyOEE2MTUgLyogcnRj
X2V2ZW50X2xvZ19mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc3RjUxMzIzODBFODQ4
MDBDMDQ0ODYgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
QTI0NjUxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvRGVjb2RlclZQOC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUJFRkIyMzRCODgyMDAwMjhBNjE1IC8qIHBlZXJfY29ubmVjdGlvbl93cmFw
cGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTNGNEQ3MDIyQjBCQUVGMDA2QTdBNkIgLyogUlRD
VmlkZW9EZWNvZGVyVlA4LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ2MDFGRTE5OTFBMDAz
NzNFOTkgLyogUlRDVmlkZW9EZWNvZGVyVlA5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0QjNE
RTIxNjlBMDcwMDA0MzYzQUMgLyogUlRDVmlkZW9FbmNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTQ0QjNERjIxNjlBMDcwMDA0MzYzQUMgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJFRkQyMzRCODgyMDAwMjhBNjE1IC8qIGRhdGFfY2hhbm5l
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUzQzgyMTY5ODI0QjAwMjgyNjZCIC8qIFJUQ1Zp
ZGVvRW5jb2RlckZhY3RvcnlIMjY0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTc3RjUxQjIzODBF
ODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxNzk1M0M5MjE2OTgyNEIwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTc3RjUxQTIzODBFODQ4MDBDMDQ0ODYgLyogUlRDVmlkZW9F
bmNvZGVySDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzRTY3QTAyMTY5ODg5NTAwRUYzN0VE
IC8qIFJUQ1ZpZGVvRW5jb2RlclFwVGhyZXNob2xkcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEz
MUJGMjEyMzRCODgyMDAwMjhBNjE1IC8qIG1lZGlhX3Nlc3Npb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxNDRCM0VBMjE2OUM1RTMwMDQzNjNBQyAvKiBSVENWaWRlb0VuY29kZXJTZXR0aW5ncytQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNFNjc4NTIxNjk4NzdEMDBFRjM3RUQgLyog
UlRDVmlkZW9FbmNvZGVyU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTFBMjM0
Qjg5RTIwMDI4QTYxNSAvKiB0aW1lc3RhbXBfYWxpZ25lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzRTY3NjkyMTY5ODU0QjAwRUYzN0VEIC8qIFJUQ1ZpZGVvRW5jb2RlclZQOC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDEzMUMxQ0QyMzRCOEE0QjAwMjhBNjE1IC8qIHJlZ2F0aGVyaW5nX2NvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMUREMjM0QjhBNEIwMDI4QTYxNSAvKiBz
dHVuX3BvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDZFMUZFMTk5MUEwMDM3M0U5OSAv
KiBSVENWaWRlb0VuY29kZXJWUDguaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMzA2MjM0QjhE
QzIwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nX291dHB1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzQTI0NDYxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvRW5jb2RlclZQOS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDEzQTI0NEYxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvRnJhbWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxM0U2NzhGMjE2OTg3REIwMEVGMzdFRCAvKiBSVENWaWRlb0Zy
YW1lLmggaW4gSGVhZGVycyAqLywKQEAgLTE1MzMwLDM0NSArMTU0MDUsMzcxIEBACiAJCQkJNDEz
QTI0NDExRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvRnJhbWVCdWZmZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxM0EyNDZGMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb1JlbmRlcmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ2MTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9T
b3VyY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMUQ4MjM0QjhBNEIwMDI4QTYxNSAvKiBz
dHVuLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ1MDFGRTE5OTFBMDAzNzNFOTkgLyogUlRD
VmlkZW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0M0ExRkUxOTkxQTAwMzczRTk5
IC8qIFJUQ1ZpZGVvVmlld1NoYWRpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0U2NzZBMjE2
OTg1NEIwMEVGMzdFRCAvKiBSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTNFNjc2QzIxNjk4NTRCMDBFRjM3RUQgLyogUlRDV3JhcHBlZE5hdGl2ZVZp
ZGVvRW5jb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgyQjgxRkUyMERDRDAwNDBDMzBG
IC8qIHJ0cF9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0M5MUZFMjQ3QjQwMDQw
QzMwRiAvKiBydHBfY3ZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkY5MTIzNEI4OEE2MDAy
OEE2MTUgLyogcnRwX2RhdGFfZW5naW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMwOTIwMTFF
RjhEMEE2MDA3NTdDNTUgLyogcnRwX2RlbXV4ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFD
MUI2MjM0QjhBNEEwMDI4QTYxNSAvKiBwMnBfY29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTMxQzRENjIzNEM4NEEzMDAyOEE2MTUgLyogcnRwX2RlcGVuZGVuY3lfZGVzY3JpcHRvcl9l
eHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNERCMjM0Qzg0QTMwMDI4QTYxNSAv
KiBydHBfZGVwZW5kZW5jeV9kZXNjcmlwdG9yX3JlYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUM0REMyMzRDODRBMzAwMjhBNjE1IC8qIHJ0cF9kZXBlbmRlbmN5X2Rlc2NyaXB0b3Jfd3Jp
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEFCNzFFNDNDMDBGMDA2MjFFOTIgLyogcnRw
X2ZpbGVfc291cmNlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzJBMzIzNEI4Q0M0MDAyOEE2
MTUgLyogc2ltdWxjYXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODhCMTFFNDNCRTNDMDA2
MjFFOTIgLyogcnRwX2Zvcm1hdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGMDUyMzRCODgy
MDAwMjhBNjE1IC8qIGF1ZGlvX3RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODhBNTFF
NDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF9oMjY0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTc3RjRGQTIzODBFODAwMDBDMDQ0ODYgLyogcnRwX2Zvcm1hdF9oMjY1LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REODhBNzFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF92aWRlb19nZW5l
cmljLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODhBQzFFNDNCRTNDMDA2MjFFOTIgLyogcnRw
X2Zvcm1hdF92cDguaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDY0MjM0QzgxNzIwMDI4QTYx
NSAvKiB2aWRlb19jb2RlY19pbml0aWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg4
QUYxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRfdnA5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REODNGNzFFNDM5QTZGMDA2MjFFOTIgLyogcnRwX2ZyYW1lX3JlZmVyZW5jZV9maW5kZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QUI5MUU0M0MwMEYwMDYyMUU5MiAvKiBydHBfZ2Vu
ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA4NTIzNEI4OThEMDAyOEE2MTUgLyog
Y3JjMzIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTAyQzdCMjEyNzM0NzQwMEMyN0NENiAvKiBy
dHBfZ2VuZXJpY19mcmFtZV9kZXNjcmlwdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUwMkM3
OTIxMjczNDc0MDBDMjdDRDYgLyogcnRwX2dlbmVyaWNfZnJhbWVfZGVzY3JpcHRvcl9leHRlbnNp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0M0MUZFMjQ3QjQwMDQwQzMwRiAvKiBydHBf
aGVhZGVyX2V4dGVuc2lvbl9tYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0U2NzdFMjE2OTg2
QUUwMEVGMzdFRCAvKiBydHBfaGVhZGVyX2V4dGVuc2lvbl9zaXplLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REODhCNjFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2hlYWRlcl9leHRlbnNpb25zLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzAzNDIzNEI4OThEMDAyOEE2MTUgLyogbnVsbF9zb2Nr
ZXRfc2VydmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzMxNDIzNEI4REMyMDAyOEE2MTUg
LyogcnRwX2hlYWRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRjJGMjM0Qjg4MjAwMDI4
QTYxNSAvKiBydHBfbWVkaWFfdXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OEJGMUU0
M0JFM0QwMDYyMUU5MiAvKiBydHBfcGFja2V0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzFC
MTIzNEI4QTRBMDAyOEE2MTUgLyogcmVsYXlfcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDg4QkExRTQzQkUzRDAwNjIxRTkyIC8qIHJ0cF9wYWNrZXRfaGlzdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDEzMUMzNDUyMzRCOERERjAwMjhBNjE1IC8qIHJ0cF9wYWNrZXRfaW5mby5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzM0IyMzRCOERERjAwMjhBNjE1IC8qIHJ0cF9wYWNrZXRf
aW5mb3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OEJCMUU0M0JFM0QwMDYyMUU5MiAvKiBy
dHBfcGFja2V0X3JlY2VpdmVkLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzRFRTIzNEM4NjEx
MDAyOEE2MTUgLyogcnRwX3BhY2tldF9zZW5kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4
MkI2MUZFMjBEQ0QwMDQwQzMwRiAvKiBydHBfcGFja2V0X3NpbmtfaW50ZXJmYWNlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTMxQzFFQjIzNEI4QTRCMDAyOEE2MTUgLyogZHRsc190cmFuc3BvcnRf
aW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OEJDMUU0M0JFM0QwMDYyMUU5MiAv
KiBydHBfcGFja2V0X3RvX3NlbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTE3MjM0Qjg5
RTIwMDI4QTYxNSAvKiB1bmlxdWVfaWRfZ2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTMxQzM0OTIzNEI4RERGMDAyOEE2MTUgLyogcnRwX3BhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFCRjM1MjM0Qjg4MjAwMDI4QTYxNSAvKiBydHBfcGFyYW1ldGVyc19jb252ZXJz
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQ2QjQ1QTIxMjczMTU5MDA4RjkzNTMgLyogcnRw
X3BheWxvYWRfcGFyYW1zLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzRFRjIzNEM4NjExMDAy
OEE2MTUgLyogcnRjcF9zdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzEyQTIz
NEI4OUUyMDAyOEE2MTUgLyogemVyb19tZW1vcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFC
RjE3MjM0Qjg4MjAwMDI4QTYxNSAvKiBydHBfcmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFDMzQzMjM0QjhEREYwMDI4QTYxNSAvKiBydHBfcmVjZWl2ZXJfaW50ZXJmYWNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTlDODNDMzFGRTI0N0I0MDA0MEMzMEYgLyogcnRwX3J0Y3AuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4OENBMUU0M0JFM0QwMDYyMUU5MiAvKiBydHBfcnRjcF9j
b25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0M4MUZFMjQ3QjQwMDQwQzMwRiAvKiBy
dHBfcnRjcF9kZWZpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODJCNTFGRTIwRENEMDA0
MEMzMEYgLyogcnRwX3J0Y3BfZGVtdXhlcl9oZWxwZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4OENEMUU0M0JFM0QwMDYyMUU5MiAvKiBydHBfcnRjcF9pbXBsLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MTMxQkYxRjIzNEI4ODIwMDAyOEE2MTUgLyogcnRwX3NlbmRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDg4RDQxRTQzQkUzRDAwNjIxRTkyIC8qIHJ0cF9zZW5kZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4OENGMUU0M0JFM0QwMDYyMUU5MiAvKiBydHBfc2VuZGVyX2F1ZGlv
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzM0NjIzNEI4RERGMDAyOEE2MTUgLyogcnRwX3Nl
bmRlcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OEQyMUU0M0JFM0QwMDYy
MUU5MiAvKiBydHBfc2VuZGVyX3ZpZGVvLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzRERTIz
NEM4NEEzMDAyOEE2MTUgLyogcnRwX3NlcXVlbmNlX251bWJlcl9tYXAuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFDNEIyMjM0QzgzOEUwMDI4QTYxNSAvKiBydHBfc291cmNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTlDODJDMTFGRTIwRENEMDA0MEMzMEYgLyogcnRwX3N0cmVhbV9yZWNlaXZl
cl9jb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODJDMDFGRTIwRENEMDA0MEMz
MEYgLyogcnRwX3N0cmVhbV9yZWNlaXZlcl9jb250cm9sbGVyX2ludGVyZmFjZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDg1QjMxRTQzQjVDMDAwNjIxRTkyIC8qIHJ0cF9zdHJlYW1zX3N5bmNo
cm9uaXplci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGNTYyMzRCODgyMDAwMjhBNjE1IC8q
IHJ0cF90cmFuc2NlaXZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzNEIyMzRCOERERjAw
MjhBNjE1IC8qIHJ0cF90cmFuc2NlaXZlcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFCRjQ5MjM0Qjg4MjAwMDI4QTYxNSAvKiBydHBfdHJhbnNwb3J0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTMwOTIxOTFFRjhENjNGMDA3NTdDNTUgLyogcnRwX3RyYW5zcG9ydF9jb250cm9s
bGVyX3NlbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMUI5MjM0QjhBNEEwMDI4QTYxNSAv
KiBtb2NrX2ljZV90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMkVFMjM0QjhE
QzIwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW1fdHJhY2tfcHJveHkuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDMjk0MjM0QjhDQzQwMDI4QTYxNSAvKiBzaW11bGNhc3RfZW5jb2Rlcl9hZGFwdGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMwOTIxQTFFRjhENjNGMDA3NTdDNTUgLyogcnRwX3Ry
YW5zcG9ydF9jb250cm9sbGVyX3NlbmRfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTMxQkYxQjIzNEI4ODIwMDAyOEE2MTUgLyogcnRwX3RyYW5zcG9ydF9pbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNERDg4RDYxRTQzQkUzRDAwNjIxRTkyIC8qIHJ0cF91dGlsaXR5Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkY5MzIzNEI4OEE2MDAyOEE2MTUgLyogcnRwX3V0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUwMkM3RTIxMjczNDc0MDBDMjdDRDYgLyogcnRwX3Zp
ZGVvX2hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFENkI0NUQyMTI3MzE1OTAwOEY5MzUz
IC8qIHJ0cF92aWRlb19zZW5kZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDhDMjM0Qzgy
OUUwMDI4QTYxNSAvKiBnYWluX2NvbnRyb2xfY29uZmlnX3Byb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MUQ2QjQ1QjIxMjczMTU5MDA4RjkzNTMgLyogcnRwX3ZpZGVvX3NlbmRlcl9pbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTI1MjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJp
bmdpemVfbWFjcm9zLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzU0MjIzNEM4QjE5MDAyOEE2
MTUgLyogcnRjX2V2ZW50X2F1ZGlvX3BsYXlvdXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFD
NEFDMjM0QzgzODAwMDI4QTYxNSAvKiB2aWRlb190cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzA5MUYzMUVGOENGOTIwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODk2RDFFNDNCRjNBMDA2MjFFOTIgLyogcnRwZmIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTEyMjM0Qjg5RTIwMDI4QTYxNSAvKiByYXRlX2xp
bWl0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4M0Y5MUU0MzlBNkYwMDYyMUU5MiAvKiBy
dHRfZmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDFDQjIxMjc1OTNGMDA2MzRGQ0Yg
LyogcnR0X3N0YXRzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzNGNzIzNEM3QjAzMDAyOEE2
MTUgLyogYXVkaW9fZW5jb2Rlcl9tdWx0aV9jaGFubmVsX29wdXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxOUM4MkMyMUZFMjBEQ0QwMDQwQzMwRiAvKiBydHhfcmVjZWl2ZV9zdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQxMzFDMjc2MjM0QjhDQzQwMDI4QTYxNSAvKiB3ZWJydGNfbWVkaWFf
ZW5naW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDE2MjIxMjczODVCMDA2MzRGQ0YgLyog
cndfbG9ja19wb3NpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxNjMyMTI3Mzg1QjAwNjM0
RkNGIC8qIHJ3X2xvY2tfd3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxRDEyMzRC
OEE0QjAwMjhBNjE1IC8qIHRjcF9wb3J0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA1RDIz
NEI4OThEMDAyOEE2MTUgLyogYnVmZmVyX3F1ZXVlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMx
QzE0ODIzNEI4OUUyMDAyOEE2MTUgLyogb3BlbnNzbF9kaWdlc3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxOUM4MzU3MUZFMjQ2NjUwMDQwQzMwRiAvKiBzYWZlX2NvbXBhcmUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxOUM4MzUzMUZFMjQ2NjUwMDQwQzMwRiAvKiBzYWZlX2NvbnZlcnNpb25zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODM1NDFGRTI0NjY1MDA0MEMzMEYgLyogc2FmZV9taW5t
YXguaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTAyQ0QzMjEyNzM2MDcwMEMyN0NENiAvKiBzYW1w
bGVfY291bnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxMjcyMzRCODlFMjAwMjhBNjE1
IC8qIHNhbml0aXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RDNCRUEyMTI3MzFDMjAwNzc1
RjA5IC8qIHNhdHVyYXRpb25fcHJvdGVjdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzAz
QjIzNEI4OThEMDAyOEE2MTUgLyogYXN5bmNfdGNwX3NvY2tldC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDEzMUMzMzkyMzRCOERERjAwMjhBNjE1IC8qIHNjb3BlZF9yZWZwdHIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxOUM4NDM2MUZFMjRFODAwMDQwQzMwRiAvKiBzY3JlZW5zaGFyZV9sYXllcnMu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMkEyMjM0QjhDQzQwMDI4QTYxNSAvKiBhcG1faGVs
cGVycy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzNDMyMzRCOERERjAwMjhBNjE1IC8qIHJ0
cF9yZWNlaXZlcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDVCMjM0Qjg5
OEQwMDI4QTYxNSAvKiBtZXNzYWdlX3F1ZXVlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzND
QTIzNEI5N0Y0MDAyOEE2MTUgLyogc2N0cF90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxMzFCRUZBMjM0Qjg4MjAwMDI4QTYxNSAvKiBzY3RwX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDEzMUMzNDEyMzRCOERERjAwMjhBNjE1IC8qIHNjdHBfdHJhbnNwb3J0X2ludGVy
ZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzQzkyMzRCOTdGNDAwMjhBNjE1IC8qIHNj
dHBfdHJhbnNwb3J0X2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkY0QjIzNEI4
ODIwMDAyOEE2MTUgLyogc2N0cF91dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NzAx
RTQzQkYzQTAwNjIxRTkyIC8qIHNkZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRjM3MjM0
Qjg4MjAwMDI4QTYxNSAvKiBzZHBfc2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEz
MUJGNDcyMzRCODgyMDAwMjhBNjE1IC8qIHNkcF91dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE0NUY2MUQxRkUxRjM4RDAwRUI5Q0FGIC8qIHNkcF92aWRlb19mb3JtYXQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFDMDU3MjM0Qjg5OEQwMDI4QTYxNSAvKiBsb2dnaW5nLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk0MTMxQzU2MzIzNEM4QzIzMDAyOEE2MTUgLyogbG9nZ2luZ19tYWMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4NUI3MUU0M0I1QzAwMDYyMUU5MiAvKiBzZW5kX2RlbGF5X3N0
YXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOTA2MjFFNDNEMTEyMDA2MjFFOTIgLyogc2Vu
ZF9zaWRlX2JhbmR3aWR0aF9lc3RpbWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODVC
QTFFNDNCNUMwMDA2MjFFOTIgLyogc2VuZF9zdGF0aXN0aWNzX3Byb3h5LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTkyNDE4QjIxMjc0OUM4MDA2MzRGQ0YgLyogc2VuZF90aW1lX2hpc3RvcnkuaCBp
biBIZWFkZXJzICovLAotCQkJCTQxMzFDMDUwMjM0Qjg5OEQwMDI4QTYxNSAvKiBpZmFkZHJzX2Fu
ZHJvaWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OTczMUU0M0JGM0EwMDYyMUU5MiAvKiBz
ZW5kZXJfcmVwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUZDQkIyODIxQjFGODdFMDBBNURG
MjcgLyogc2VudF9wYWNrZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MUFDMjEyNzU4RDMw
MDYzNEZDRiAvKiBzZXF1ZW5jZV9idWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNTAw
MjM0Qzg2Q0IwMDI4QTYxNSAvKiBzZXF1ZW5jZV9jaGVja2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTMxQzEzNzIzNEI4OUUyMDAyOEE2MTUgLyogc2VydmVyX3NvY2tldF9hZGFwdGVycy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGMDMyMzRCODgyMDAwMjhBNjE1IC8qIHNlc3Npb25fZGVz
Y3JpcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4M0ZDMUU0MzlBNkYwMDYyMUU5MiAv
KiBzZXNzaW9uX2luZm8uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMUMzMjM0QjhBNEEwMDI4
QTYxNSAvKiB0cmFuc3BvcnRfZGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFD
MzNFMjM0QjhEREYwMDI4QTYxNSAvKiBzZXRfcmVtb3RlX2Rlc2NyaXB0aW9uX29ic2VydmVyX2lu
dGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0MzNEMDgxRjc5QjMzNDAwMzg3QjREIC8q
IHNldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdENzFFNDNCQzA2MDA2MjFFOTIg
Lyogc2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NUUwMUU2QTYzNDMwMDk0RkRD
OCAvKiBzaGFkb3dfZmlsdGVyX3VwZGF0ZV9nYWluLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTVG
MUZCNTIxMjcyRkJBMDAwNjRDQkYgLyogc2lnbmFsX2NsYXNzaWZpZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFDMzkxMjM0Qjk1N0QwMDI4QTYxNSAvKiBzaWduYWxfZGVwZW5kZW50X2VybGVf
ZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUY5QkZDNTIwNTFDQUU1MDBBQkYwQjkg
Lyogc2lnbmFsX3Byb2Nlc3NpbmdfbGlicmFyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMx
NTUyMzRCODlFMjAwMjhBNjE1IC8qIHNpZ25hbF90aHJlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxRjI2M0JDMjEyNjgxMTUwMDI3NEY1OSAvKiBzaWdzbG90LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTMxQzBGRDIzNEI4OUUyMDAyOEE2MTUgLyogc2lnc2xvdF9yZXBlYXRlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDEzMUMxMEIyMzRCODlFMjAwMjhBNjE1IC8qIHNpZ3Nsb3RfdGVzdGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJEQzFFNDNDMkI1MDA2MjFFOTIgLyogc2ltcGxlX2lu
dGVycG9sYXRlX2xzZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCREUxRTQzQzJCNTAwNjIx
RTkyIC8qIHNpbXBsZV9scGNfYW5hbHlzaXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QkUw
MUU0M0MyQjUwMDYyMUU5MiAvKiBzaW1wbGVfbHNmX2RlcXVhbnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDNTQ4MjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfYWxyX3N0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REOEJFMjFFNDNDMkI1MDA2MjFFOTIgLyogc2ltcGxlX2xzZl9x
dWFudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxRDEyMTI3NTk3RDAwNjM0RkNGIC8qIHNp
bXVsYXRlZF9uZXR3b3JrLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzE0MDIzNEI4OUUyMDAy
OEE2MTUgLyogcmFuZG9tLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzFFQzIzNEI4QTRCMDAy
OEE2MTUgLyogZmFrZV9wYWNrZXRfdHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMx
QzQzQzIzNEM4MDA3MDAyOEE2MTUgLyogZmZ0cGFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEz
MUMyQTMyMzRCOENDNDAwMjhBNjE1IC8qIHNpbXVsY2FzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUJGNTIyMzRCODgyMDAwMjhBNjE1IC8qIHNpbXVsY2FzdF9kZXNjcmlwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDEzMUMyOTQyMzRCOENDNDAwMjhBNjE1IC8qIHNpbXVsY2FzdF9lbmNv
ZGVyX2FkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MUYwMjEyNzVBRkEwMDYzNEZD
RiAvKiBzaW11bGNhc3RfcmF0ZV9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0
MUVEMjEyNzVBRkEwMDYzNEZDRiAvKiBzaW11bGNhc3RfdXRpbGl0eS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEzMUM1MzYyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9hdWRpb19yZWNlaXZl
X3N0cmVhbV9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRjkxMjM0Qjg4QTYwMDI4
QTYxNSAvKiBydHBfZGF0YV9lbmdpbmUuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFCRkFBMjM0
Qjg4QTYwMDI4QTYxNSAvKiB2aWRlb19jb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
NzVEMUU0M0JBRjUwMDYyMUU5MiAvKiBzaW5jX3Jlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDg3NUYxRTQzQkFGNTAwNjIxRTkyIC8qIHNpbnVzb2lkYWxfbGluZWFyX2NoaXJwX3Nv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCRTYxRTQzQzJCNTAwNjIxRTkyIC8qIHNt
b290aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCRTQxRTQzQzJCNTAwNjIxRTkyIC8qIHNt
b290aF9vdXRfZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1RjcxRTZBNjNGNjAwOTRG
REM4IC8qIHNtb290aGluZ19maWx0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTE4MjM0
Qjg5RTIwMDI4QTYxNSAvKiBzb2NrZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTMxMjM0
Qjg5RTIwMDI4QTYxNSAvKiBzb2NrZXRfYWRhcHRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MzFDMTMwMjM0Qjg5RTIwMDI4QTYxNSAvKiBzb2NrZXRfYWRkcmVzcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDEzMUMxNEQyMzRCODlFMjAwMjhBNjE1IC8qIHNvY2tldF9hZGRyZXNzX3BhaXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFDMTFGMjM0Qjg5RTIwMDI4QTYxNSAvKiBzb2NrZXRfZmFj
dG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxNTIyMzRCODlFMjAwMjhBNjE1IC8qIHNv
Y2tldF9zZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTE1MjM0Qjg5RTIwMDI4QTYx
NSAvKiBzb2NrZXRfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJFODFFNDNDMkI1
MDA2MjFFOTIgLyogc29ydF9zcS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxQjcyMzRCOEE0
QTAwMjhBNjE1IC8qIHVkcF9wb3J0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkYzOTIzNEI4
ODIwMDAyOEE2MTUgLyogY29tcG9zaXRlX3J0cF90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxMzFDNEQ3MjM0Qzg0QTMwMDI4QTYxNSAvKiBzb3VyY2VfdHJhY2tlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUM0QjRDN0UxRTQzMUY5QzAwMjY1MUM4IC8qIHNwYXJzZV9maXJfZmlsdGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDFBQjIxMjc1OEQzMDA2MzRGQ0YgLyogc3BlY3Ry
YWxfZmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MTQ3MjEyNzM3MjgwMDYzNEZD
RiAvKiBzcGVjdHJhbF9mZWF0dXJlc19pbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEz
MUMzRkQyMzRDN0IwMzAwMjhBNjE1IC8qIGF1ZGlvX2RlY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdEOTFFNDNCQzA2MDA2MjFFOTIgLyogc3BlY3Ry
dW1fYXJfbW9kZWxfdGFibGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA0MzIzNEI4OThE
MDAyOEE2MTUgLyogYml0X2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzODQyMzRC
OTU3RDAwMjhBNjE1IC8qIHN1YmJhbmRfZXJsZV9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxNDMzQ0VGMUY3OUIzMzQwMDM4N0I0RCAvKiBzcGVjdHJ1bV9hcl9tb2RlbF90YWJsZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMzdDMjM0Qjk1N0QwMDI4QTYxNSAvKiBzcGVjdHJ1
bV9idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjI2MzcyMjEyNjdCNEEwMDI3NEY1OSAv
KiBzcGxfc3FydF9mbG9vci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM0OTEyMzRDODJFRTAw
MjhBNjE1IC8qIGZpZWxkX3RyaWFsX2Jhc2VkX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDEzMUMzQjQyMzRCOTcxMjAwMjhBNjE1IC8qIGNyeXB0b19vcHRpb25zLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REOEJFQTFFNDNDMkI1MDA2MjFFOTIgLyogc3BsaXRfdnEuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFCRjQ2MjM0Qjg4MjAwMDI4QTYxNSAvKiBleHRlcm5hbF9obWFjLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REODRDMjFFNDNBRjEzMDA2MjFFOTIgLyogc3BsaXR0aW5nX2Zp
bHRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM0NDUyMzRDODBBQjAwMjhBNjE1IC8qIGRl
Y29kZWRfZnJhbWVzX2hpc3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4MzYwMUU0MzI1
NzIwMDYyMUU5MiAvKiBzcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzM0QTIz
NEI4RERGMDAyOEE2MTUgLyogdmlkZW9fdHJhY2tfc291cmNlX3Byb3h5LmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REODM2MzFFNDMyNTcyMDA2MjFFOTIgLyogc3BzX3Z1aV9yZXdyaXRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEzQTIxM0YxRkUwRjBFRjAwMzczRTk5IC8qIHNydHAuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxMzFCRjQzMjM0Qjg4MjAwMDI4QTYxNSAvKiBzcnRwX2ZpbHRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTIxM0QxRkUwRjBFRjAwMzczRTk5IC8qIHNydHBfcHJp
di5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGNDIyMzRCODgyMDAwMjhBNjE1IC8qIHNydHBf
c2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGNEMyMzRCODgyMDAwMjhBNjE1IC8q
IHNydHBfdHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzEyRjIzNEI4OUUyMDAy
OEE2MTUgLyogc3NsX2FkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTYxMjM0Qjg5
RTIwMDI4QTYxNSAvKiBzc2xfY2VydGlmaWNhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFD
MEZFMjM0Qjg5RTIwMDI4QTYxNSAvKiBzc2xfZmluZ2VycHJpbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxMzFDMTE0MjM0Qjg5RTIwMDI4QTYxNSAvKiBzc2xfaWRlbnRpdHkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMzFDMTUzMjM0Qjg5RTIwMDI4QTYxNSAvKiBzc2xfcm9vdHMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMzFDMEZCMjM0Qjg5RTIwMDI4QTYxNSAvKiBzc2xfc3RyZWFtX2FkYXB0
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjlCRjlFMjA1MUM4NjkwMEFCRjBCOSAvKiBzc3Jj
X2JpbmRpbmdfb2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NzM3MUU0M0JBQkUw
MDYyMUU5MiAvKiBzdGFuZGFsb25lX3ZhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MzUx
RTRBOTlEMjAwNDAzOTk1IC8qIHN0YXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QkVDMUU0
M0MyQjUwMDYyMUU5MiAvKiBzdGF0ZV9jb25zdHJ1Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4QkVFMUU0M0MyQjUwMDYyMUU5MiAvKiBzdGF0ZV9zZWFyY2guaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxMzFDMzdEMjM0Qjk1N0QwMDI4QTYxNSAvKiBzdGF0aW9uYXJpdHlfZXN0aW1hdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEE1MjFFNDNCRkIzMDA2MjFFOTIgLyogc3RhdGlzdGlj
c19jYWxjdWxhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkY1ODIzNEI4ODIwMDAyOEE2
MTUgLyogc3RhdHNfY29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODVCRDFFNDNC
NUMwMDA2MjFFOTIgLyogc3RhdHNfY291bnRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMz
M0EyMzRCOERERjAwMjhBNjE1IC8qIHN0YXRzX3R5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTMxQzBGRjIzNEI4OUUyMDAyOEE2MTUgLyogc3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTMxQkVGMzIzNEI4ODIwMDAyOEE2MTUgLyogc3RyZWFtX2NvbGxlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMzFCRkEzMjM0Qjg4QTYwMDI4QTYxNSAvKiBzdHJlYW1fcGFyYW1zLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REODVDMDFFNDNCNUMwMDA2MjFFOTIgLyogc3RyZWFtX3N5bmNo
cm9uaXphdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEREIyNkMyMTI2NzlEMjAwMjk2RDQ3
IC8qIHN0cmluZ19idWlsZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzEwMzIzNEI4OUUy
MDAyOEE2MTUgLyogc3RyaW5nX2VuY29kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxMDUy
MzRCODlFMjAwMjhBNjE1IC8qIHN0cmluZ190b19udW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMzFDMTMyMjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJpbmdfdXRpbHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMDZENTZEMjE2QzJCQUEwMDFFM0M0MCAvKiBzdHJpbmdfdmlldy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDEzMUMxMjUyMzRCODlFMjAwMjhBNjE1IC8qIHN0cmluZ2l6ZV9tYWNyb3Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDMzQ0YwMUY3OUIzMzQwMDM4N0I0RCAvKiBzdHJ1Y3Rz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdEQTFFNDNCQzA2MDA2MjFFOTIgLyogc3RydWN0
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxRDgyMzRCOEE0QjAwMjhBNjE1IC8qIHN0dW4u
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMUREMjM0QjhBNEIwMDI4QTYxNSAvKiBzdHVuX3Bv
cnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMUJDMjM0QjhBNEEwMDI4QTYxNSAvKiBzdHVu
X3JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMUU0MjM0QjhBNEIwMDI4QTYxNSAv
KiBzdHVuX3NlcnZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzODQyMzRCOTU3RDAwMjhB
NjE1IC8qIHN1YmJhbmRfZXJsZV9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4
NUUzMUU2QTYzNDMwMDk0RkRDOCAvKiBzdWJ0cmFjdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MTMxQzMxNjIzNEI4REMyMDAyOEE2MTUgLyogbmV0d29ya19zdGF0ZV9wcmVkaWN0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDRDI4NUUxMUU2QTYzNDMwMDk0RkRDOCAvKiBzdWJ0cmFjdG9yX291
dHB1dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMzODYyMzRCOTU3RDAwMjhBNjE1IC8qIHN1
YnRyYWN0b3Jfb3V0cHV0X2FuYWx5emVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVFNTFF
NkE2MzQzMDA5NEZEQzggLyogc3VwcHJlc3Npb25fZmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0QyODVFNzFFNkE2MzQzMDA5NEZEQzggLyogc3VwcHJlc3Npb25fZ2Fpbi5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDEzMUMwNEMyMzRCODk4RDAwMjhBNjE1IC8qIGNwdV90aW1lLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTNFNjc4MTIxNjk4NzBGMDBFRjM3RUQgLyogc3ZjX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzQUEyMzRCOTZDMzAwMjhBNjE1IC8qIGVjaG9fY2FuY2Vs
bGVyM19mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzQ0NDIzNEM4MEFCMDAyOEE2
MTUgLyogZnJhbWVyYXRlX2NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDM0I3
MjM0Qjk3MTIwMDI4QTYxNSAvKiBmcmFtZV9lbmNyeXB0b3JfaW50ZXJmYWNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTNFNjc5NTIxNjk4ODE5MDBFRjM3RUQgLyogc3ZjX3JhdGVfYWxsb2NhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJGMDFFNDNDMkI1MDA2MjFFOTIgLyogc3dhcF9i
eXRlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzRjRENzAyMkIwQkFFRjAwNkE3QTZCIC8qIFJU
Q1ZpZGVvRGVjb2RlclZQOC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxMDcyMzRCODlFMjAw
MjhBNjE1IC8qIHN3YXBfcXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MUE5MjEyNzU4
RDMwMDYzNEZDRiAvKiBzeW1tZXRyaWNfbWF0cml4X2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFCRTcxQTMyMTVDNDYzNzAwQTdCMTk2IC8qIHN5bXJlYy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDhBNTUxRTQzQkZCMzAwNjIxRTkyIC8qIHN5bmNfYnVmZmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0QyODRCRjFFNkE1RjlGMDA5NEZEQzggLyogc3luY2FibGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4OTc5MUU0M0JGM0EwMDYyMUU5MiAvKiB0YXJnZXRfYml0cmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJFRjMyMzRCODgyMDAwMjhBNjE1IC8qIHN0cmVhbV9jb2xs
ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzE0MzIzNEI4OUUyMDAyOEE2MTUgLyog
dGFza19xdWV1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0ODYyMzRDODI3NDAwMjhBNjE1
IC8qIHRhc2tfcXVldWVfYmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0ODgyMzRDODI3
NDAwMjhBNjE1IC8qIHRhc2tfcXVldWVfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEz
MUM0RjIyMzRDODYzOTAwMjhBNjE1IC8qIHRhc2tfcXVldWVfc3RkbGliLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzFEMTIzNEI4QTRCMDAyOEE2MTUgLyogdGNwX3BvcnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMzFDMTJEMjM0Qjg5RTIwMDI4QTYxNSAvKiB0ZW1wbGF0ZV91dGlsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTlDODQzRDFGRTI0RTgwMDA0MEMzMEYgLyogdGVtcG9yYWxfbGF5
ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzEyODIzNEI4OUUyMDAyOEE2MTUgLyogdGhy
ZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzE1NDIzNEI4OUUyMDAyOEE2MTUgLyogdGhy
ZWFkX2Fubm90YXRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzEzQjIzNEI4OUUyMDAy
OEE2MTUgLyogdGhyZWFkX2NoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NEM0MUU0
M0FGMTMwMDYyMUU5MiAvKiB0aHJlZV9iYW5kX2ZpbHRlcl9iYW5rLmggaW4gSGVhZGVycyAqLywK
LQkJCQk0MTMxQkYzNDIzNEI4ODIwMDAyOEE2MTUgLyoganNlcF90cmFuc3BvcnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxRkNCQjIzMjFCMUY4MkYwMEE1REYyNyAvKiB0aHJvd19kZWxlZ2F0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBNTgxRTQzQkZCMzAwNjIxRTkyIC8qIHRpY2tfdGlt
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MUREMjEyNzVBMzAwMDYzNEZDRiAvKiB0aW1l
X2RlbHRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEE1QjFFNDNCRkIzMDA2MjFFOTIgLyog
dGltZV9zdHJldGNoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODhEQjFFNDNCRTNEMDA2MjFF
OTIgLyogdGltZV91dGlsLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA2MjIzNEI4OThEMDAy
OEE2MTUgLyogbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTE5MjM0Qjg5RTIw
MDI4QTYxNSAvKiB0aW1lX3V0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDFFMDIxMjc1
QTMwMDA2MzRGQ0YgLyogdGltZXN0YW1wLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzExQTIz
NEI4OUUyMDAyOEE2MTUgLyogdGltZXN0YW1wX2FsaWduZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxOTI0MTdFMjEyNzM5MjMwMDYzNEZDRiAvKiB0aW1lc3RhbXBfZXh0cmFwb2xhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REODNGRTFFNDM5QTZGMDA2MjFFOTIgLyogdGltZXN0YW1wX21h
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBNUUxRTQzQkZCMzAwNjIxRTkyIC8qIHRpbWVz
dGFtcF9zY2FsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMzFEMjM0QjhEQzIwMDI4QTYx
NSAvKiBkYXRhZ3JhbV90cmFuc3BvcnRfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REODQwMDFFNDM5QTZGMDA2MjFFOTIgLyogdGltaW5nLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MTMxQzFDNDIzNEI4QTRBMDAyOEE2MTUgLyogY2FuZGlkYXRlX3BhaXJfaW50ZXJmYWNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REODk3QjFFNDNCRjNBMDA2MjFFOTIgLyogdG1tYl9pdGVtLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzI4MjIzNEI4Q0M0MDAyOEE2MTUgLyogaW50ZXJuYWxf
ZGVjb2Rlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODk3RTFFNDNCRjNBMDA2
MjFFOTIgLyogdG1tYm4uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMjdEMjM0QjhDQzQwMDI4
QTYxNSAvKiBtdWx0aXBsZXhfY29kZWNfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDg5ODExRTQzQkYzQTAwNjIxRTkyIC8qIHRtbWJyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
ODhERDFFNDNCRTNEMDA2MjFFOTIgLyogdG1tYnJfaGVscC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDEzMUJGMkMyMzRCODgyMDAwMjhBNjE1IC8qIGppdHRlcl9idWZmZXJfZGVsYXlfaW50ZXJmYWNl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzRFNzIzNEM4NTJFMDAyOEE2MTUgLyogdG9fcXVl
dWVkX3Rhc2suaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTNFMjM0Qjg5RTIwMDI4QTYxNSAv
KiB0cmFjZV9ldmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGMjIyMzRCODgyMDAwMjhB
NjE1IC8qIHRyYWNrX21lZGlhX2luZm9fbWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEM5
MjFFNDNDNjYwMDA2MjFFOTIgLyogdHJhbnNpZW50X2RldGVjdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REOEM5NjFFNDNDNjYwMDA2MjFFOTIgLyogdHJhbnNpZW50X3N1cHByZXNzb3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxOTI0MTc2MjEyNzM4QzIwMDYzNEZDRiAvKiB0cmFuc3BvcnQu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNTNBMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZl
bnRfYXVkaW9fbmV0d29ya19hZGFwdGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODVD
MjFFNDNCNUMwMDA2MjFFOTIgLyogdHJhbnNwb3J0X2FkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxMzFDMUMzMjM0QjhBNEEwMDI4QTYxNSAvKiB0cmFuc3BvcnRfZGVzY3JpcHRpb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFDMURGMjM0QjhBNEIwMDI4QTYxNSAvKiB0cmFuc3BvcnRf
ZGVzY3JpcHRpb25fZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMxRjMyMzRCOEE0
QjAwMjhBNjE1IC8qIHRyYW5zcG9ydF9mYWN0b3J5X2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDg5ODQxRTQzQkYzQTAwNjIxRTkyIC8qIHRyYW5zcG9ydF9mZWVkYmFjay5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM0QzIyMzRDODQyNDAwMjhBNjE1IC8qIHBhY2luZ19jb250
cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTI5OUI4RDIxMjczNjUxMDBCMzQxNEIgLyog
dHJhbnNwb3J0X2ZlZWRiYWNrX2FkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMDVG
MjM0Qjg5OEQwMDI4QTYxNSAvKiBuZXR3b3JrX2NvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEwMkY2QTAyMTI3MzI2MjAwNkFFOEQ3IC8qIHRyYW5zcG9ydF9mZWVkYmFja19wYWNrZXRf
bG9zc190cmFja2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzFFNTIzNEI4QTRCMDAyOEE2
MTUgLyogdHJhbnNwb3J0X2luZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFCRjA0MjM0Qjg4
MjAwMDI4QTYxNSAvKiB0cmFuc3BvcnRfc3RhdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTAy
Q0IzMjEyNzM1MkQwMEMyN0NENiAvKiB0cmVuZGxpbmVfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzM0MDIzNEI4RERGMDAyOEE2MTUgLyogdHVybl9jdXN0b21pemVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTMxQzFCMjIzNEI4QTRBMDAyOEE2MTUgLyogdHVybl9wb3J0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzQ1ODIzNEM4MTE4MDAyOEE2MTUgLyogdHVybl9wb3J0
X2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMUNFMjM0QjhBNEIwMDI4QTYxNSAv
KiB0dXJuX3NlcnZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGOEMyMzRCODhBNjAwMjhB
NjE1IC8qIHR1cm5fdXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTM1MjM0Qjg5RTIw
MDI4QTYxNSAvKiB0eXBlX3RyYWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg0QzYxRTQz
QUYxMzAwNjIxRTkyIC8qIHR5cGluZ19kZXRlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MzFDMUI3MjM0QjhBNEEwMDI4QTYxNSAvKiB1ZHBfcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzQTI0NkIxRkUxOTkxQTAwMzczRTk5IC8qIFVJRGV2aWNlK1JUQ0RldmljZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDg4RTAxRTQzQkUzRDAwNjIxRTkyIC8qIHVscGZlY19nZW5lcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OEUzMUU0M0JFM0QwMDYyMUU5MiAvKiB1bHBmZWNf
aGVhZGVyX3JlYWRlcl93cml0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0M2MUZFMjQ3
QjQwMDQwQzMwRiAvKiB1bHBmZWNfcmVjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
OEU1MUU0M0JFM0QwMDYyMUU5MiAvKiB1bHBmZWNfcmVjZWl2ZXJfaW1wbC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUM0QzYyMzRDODQ1MjAwMjhBNjE1IC8qIGxpbmtfY2FwYWNpdHlfZXN0aW1h
dG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzFFMjIzNEI4QTRCMDAyOEE2MTUgLyogcGFj
a2V0X3NvY2tldF9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQkY1OTIzNEI4ODIw
MDAyOEE2MTUgLyogdXNlZF9pZHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDRCMjM0Qzgw
REMwMDI4QTYxNSAvKiBjaGFubmVsX21peGluZ19tYXRyaXguaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxMzFCRjAzMjM0Qjg4MjAwMDI4QTYxNSAvKiBzZXNzaW9uX2Rlc2NyaXB0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTMxQzM0ODIzNEI4RERGMDAyOEE2MTUgLyogdW1hX21ldHJpY3MuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMzFDMjlDMjM0QjhDQzQwMDI4QTYxNSAvKiB1bmhhbmRsZWRf
cGFja2V0c19idWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTE3MjM0Qjg5RTIwMDI4
QTYxNSAvKiB1bmlxdWVfaWRfZ2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJG
MjFFNDNDMkI1MDA2MjFFOTIgLyogdW5wYWNrX2JpdHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQx
MzFDMTBCMjM0Qjg5RTIwMDI4QTYxNSAvKiBzaWdzbG90X3Rlc3Rlci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEzMUMxQ0IyMzRCOEE0QTAwMjhBNjE1IC8qIG5vX29wX2R0bHNfdHJhbnNwb3J0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MUYyNjNCMDIxMjY4MEE4MDAyNzRGNTkgLyogdW51c2VkLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkY1OTIzNEI4ODIwMDAyOEE2MTUgLyogdXNlZF9pZHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyMTQwMUZFMEYwRUYwMDM3M0U5OSAvKiB1dF9zaW0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NzA5MUU0M0JBNzUwMDYyMUU5MiAvKiB1dGlsaXR5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdERjFFNDNCQzJFMDA2MjFFOTIgLyogdXRpbGl0
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3M0IxRTQzQkFCRTAwNjIxRTkyIC8qIHZhZF9h
dWRpb19wcm9jLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODczODFFNDNCQUJFMDA2MjFFOTIg
LyogdmFkX2F1ZGlvX3Byb2NfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDM0FD
MjM0Qjk2QzMwMDI4QTYxNSAvKiBlY2hvX2NvbnRyb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4NzNFMUU0M0JBQkUwMDYyMUU5MiAvKiB2YWRfY2lyY3VsYXJfYnVmZmVyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk0MTMxQzE0QzIzNEI4OUUyMDAyOEE2MTUgLyogb3BlbnNzbF91dGlsaXR5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODZENzFFNDNCQTI4MDA2MjFFOTIgLyogdmFkX2NvcmUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NkRBMUU0M0JBMjgwMDYyMUU5MiAvKiB2YWRfZmls
dGVyYmFuay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM0MzEyMzRDN0Q5NjAwMjhBNjE1IC8q
IGZyYW1lX3JhdGVfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzNDMDIzNEI5
N0I0MDAyOEE2MTUgLyogYXVkaW9fY29kZXJfb3B1c19jb21tb24uaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxMzFDMTI3MjM0Qjg5RTIwMDI4QTYxNSAvKiBzYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4NkREMUU0M0JBMjgwMDYyMUU5MiAvKiB2YWRfZ21tLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REODZFMDFFNDNCQTI4MDA2MjFFOTIgLyogdmFkX3NwLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTVGMUZCNjIxMjcyRkJBMDAwNjRDQkYgLyogdmFkX3dpdGhfbGV2ZWwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDNjNGOEUwMUU0MTZENTMwMDJDQTUzMSAvKiB2YWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE1RjFGQjcyMTI3MkZCQTAwMDY0Q0JGIC8qIHZlY3Rvcl9mbG9hdF9m
cmFtZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGOEEyMzRCODhBNjAwMjhBNjE1IC8qIHZp
ZGVvX2FkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTA4QkFFMjEyNjgxQzgwMDFENUQ3
QiAvKiB2aWRlb19iaXRyYXRlX2FsbG9jYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFD
MUYwMjM0QjhBNEIwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0X2ludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUEwOEJBRjIxMjY4MUM4MDAxRDVEN0IgLyogdmlkZW9fYml0cmF0ZV9hbGxv
Y2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJGNkU0MjEyNzM0MTYwMDZBRThENyAvKiB2
aWRlb19iaXRyYXRlX2FsbG9jYXRvcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMx
QkZBMTIzNEI4OEE2MDAyOEE2MTUgLyogdmlkZW9fYnJvYWRjYXN0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxRjI2MzY0MjEyNjdBREYwMDI3NEY1OSAvKiB2aWRlb19jb2RlYy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDEzMUM0ODcyMzRDODI3NDAwMjhBNjE1IC8qIHF1ZXVlZF90YXNrLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTMxQzQ2NDIzNEM4MTcyMDAyOEE2MTUgLyogdmlkZW9fY29kZWNf
aW5pdGlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNDY1MjM0QzgxNzIwMDI4QTYx
NSAvKiB2aWRlb19jb2RlY19pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDNDYx
MjM0QzgxNzIwMDI4QTYxNSAvKiB2aWRlb19jb2RpbmcuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MzFDNDYzMjM0QzgxNzIwMDI4QTYxNSAvKiB2aWRlb19jb2RpbmdfZGVmaW5lcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDg0MDIxRTQzOUE2RjAwNjIxRTkyIC8qIHZpZGVvX2NvZGluZ19pbXBs
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkZBQTIzNEI4OEE2MDAyOEE2MTUgLyogdmlkZW9f
Y29tbW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODQxMzFGRTI0OUFCMDA0MEMzMEYgLyog
dmlkZW9fY29udGVudF90eXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzMwMTIzNEI4REMy
MDAyOEE2MTUgLyogcGVlcl9jb25uZWN0aW9uX2ZhY3RvcnlfcHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxNDVFNDhEMUVGODhCOUQwMEZDRjZFNiAvKiB2aWRlb19kZWNvZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTYyMjVEMjIxNjk4MTgxMDBBOTFDOUIgLyogdmlkZW9fZGVjb2Rlcl9m
YWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzJGQjIzNEI4REMyMDAyOEE2MTUgLyog
cnRjX2V2ZW50X2xvZ19vdXRwdXRfZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NUY2MUUx
RkUxRjM4RDAwRUI5Q0FGIC8qIHZpZGVvX2RlY29kZXJfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDFGMjYzNjYyMTI2N0FERjAwMjc0RjU5IC8qIHZpZGVvX2RlY29kZXJfc29mdHdhcmVf
ZmFsbGJhY2tfd3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NUU0OEUxRUY4OEI5RDAw
RkNGNkU2IC8qIHZpZGVvX2VuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjI2MzY4MjEy
NjdBREYwMDI3NEY1OSAvKiB2aWRlb19lbmNvZGVyX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE2MjI1RDUyMTY5ODE4MTAwQTkxQzlCIC8qIHZpZGVvX2VuY29kZXJfZmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDEzMUM0QUUyMzRDODM4MDAwMjhBNjE1IC8qIGF1ZGlvX3RyYW5z
cG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NUY2MUYxRkUxRjM4RDAwRUI5Q0FGIC8qIHZp
ZGVvX2VuY29kZXJfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMjYzNkEyMTI2N0FE
RjAwMjc0RjU5IC8qIHZpZGVvX2VuY29kZXJfc29mdHdhcmVfZmFsbGJhY2tfd3JhcHBlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEzMUM0NjIyMzRDODE3MjAwMjhBNjE1IC8qIHZpZGVvX2Vycm9y
X2NvZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTYyMjVENjIxNjk4MTgxMDBBOTFDOUIgLyog
dmlkZW9fZnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NDZCMUU2QTU3RjQwMDk0RkRD
OCAvKiB2aWRlb19mcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDExMDlBQUUxRTVGQTE5MjAw
QzA5NTVBIC8qIHZpZGVvX2ZyYW1lX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg0
NjkxRTZBNTdGNDAwOTRGREM4IC8qIHZpZGVvX2ZyYW1lX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE2MjI1RDMyMTY5ODE4MTAwQTkxQzlCIC8qIHZpZGVvX2ZyYW1lX2J1ZmZlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEwMkY2Q0YyMTI3MzNCNzAwNkFFOEQ3IC8qIHZpZGVvX3F1YWxp
dHlfb2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDNDREMjM0QzgwREMwMDI4QTYx
NSAvKiBjaGFubmVsX21peGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzEyQzIzNEI4OUUy
MDAyOEE2MTUgLyogcnRjX2NlcnRpZmljYXRlX2dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNDEzMUMzNDgyMzRCOERERjAwMjhBNjE1IC8qIHVtYV9tZXRyaWNzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTlDODJDNDFGRTIwRENEMDA0MEMzMEYgLyogdmlkZW9fcmVjZWl2ZV9zdHJlYW0u
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NUNCMUU0M0I1QzAwMDYyMUU5MiAvKiB2aWRlb19y
ZWNlaXZlX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjRDMjExRTQzMUY3NTAwMjY1
MUM4IC8qIHZpZGVvX3JlbmRlcl9mcmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NDZD
MUU2QTU3RjQwMDk0RkRDOCAvKiB2aWRlb19yb3RhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEzMUJGNDAyMzRCODgyMDAwMjhBNjE1IC8qIHZpZGVvX3J0cF9yZWNlaXZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE5QzgyQkExRkUyMERDRDAwNDBDMzBGIC8qIHZpZGVvX3NlbmRfc3RyZWFt
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODVDRTFFNDNCNUMwMDA2MjFFOTIgLyogdmlkZW9f
c2VuZF9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJGNkM4MjEyNzMzQjcwMDZBRThE
NyAvKiB2aWRlb19zZW5kX3N0cmVhbV9pbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTAyRjZE
RDIxMjczNDE2MDA2QUU4RDcgLyogdmlkZW9fc2lua19pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMzFCRjk1MjM0Qjg4QTYwMDI4QTYxNSAvKiB2aWRlb19zb3VyY2VfYmFzZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDFBMDhCQjEyMTI2ODFDODAwMUQ1RDdCIC8qIHZpZGVvX3NvdXJj
ZV9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTA4QkIyMjEyNjgxQzgwMDFENUQ3
QiAvKiB2aWRlb19zdHJlYW1fZGVjb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1RDAx
RTQzQjVDMDAwNjIxRTkyIC8qIHZpZGVvX3N0cmVhbV9kZWNvZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTAyRjZERTIxMjczNDE2MDA2QUU4RDcgLyogdmlkZW9fc3RyZWFtX2RlY29kZXJfY3Jl
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTAyRjZDRTIxMjczM0I3MDA2QUU4RDcgLyogdmlk
ZW9fc3RyZWFtX2RlY29kZXJfaW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMwMjYyMzRC
ODk4RDAwMjhBNjE1IC8qIGFzeW5jX2ludm9rZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJG
NkNBMjEyNzMzQjcwMDZBRThENyAvKiB2aWRlb19zdHJlYW1fZW5jb2Rlci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEzMUM0RDkyMzRDODRBMzAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGlt
ZV9yZWNlaXZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUJGMzIyMzRCODgyMDAwMjhBNjE1
IC8qIGljZV9zZXJ2ZXJfcGFyc2luZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMxQ0EyMzRC
OEE0QTAwMjhBNjE1IC8qIHBvcnRfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMx
QzA2MzIzNEI4OThEMDAyOEE2MTUgLyogaWdub3JlX3d1bmRlZi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEyMzlCNEMyMTQ3NzE2RDAwMzk2RjgxIC8qIHZpZGVvX3N0cmVhbV9lbmNvZGVyX2NyZWF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBMDhCQjQyMTI2ODFDODAwMUQ1RDdCIC8qIHZpZGVv
X3N0cmVhbV9lbmNvZGVyX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBMDhCQjUy
MTI2ODFDODAwMUQ1RDdCIC8qIHZpZGVvX3N0cmVhbV9lbmNvZGVyX29ic2VydmVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTMxQzNGQjIzNEM3QjAzMDAyOEE2MTUgLyogYXVkaW9fZGVjb2Rlcl9t
dWx0aV9jaGFubmVsX29wdXNfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTAyRjZFMTIx
MjczNDE2MDA2QUU4RDcgLyogdmlkZW9fc3RyZWFtX2VuY29kZXJfc2V0dGluZ3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxOUM4NDEyMUZFMjQ5QUIwMDQwQzMwRiAvKiB2aWRlb190aW1pbmcuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFCRjE1MjM0Qjg4MjAwMDI4QTYxNSAvKiB2aWRlb190cmFj
ay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEzMUMzQTgyMzRCOTZDMzAwMjhBNjE1IC8qIGF1ZGlv
X2ZyYW1lLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQkY0RDIzNEI4ODIwMDAyOEE2MTUgLyog
dmlkZW9fdHJhY2tfc291cmNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzM0QTIzNEI4RERG
MDAyOEE2MTUgLyogdmlkZW9fdHJhY2tfc291cmNlX3Byb3h5LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTMxQzRBQzIzNEM4MzgwMDAyOEE2MTUgLyogdmlkZW9fdHJhbnNwb3J0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUVDRUFGRTIwNjQ2NjY0MDA5RDUxNDEgLyogVmlkZW9Qcm9jZXNzaW5nU29m
dExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NzQxMUU0M0JBQkUwMDYyMUU5MiAvKiB2
b2ljZV9hY3Rpdml0eV9kZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg0QzgxRTQz
QUYxMzAwNjIxRTkyIC8qIHZvaWNlX2RldGVjdGlvbl9pbXBsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REODc0MjFFNDNCQUJFMDA2MjFFOTIgLyogdm9pY2VfZ21tX3RhYmxlcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDEzMUM0RTcyMzRDODUyRTAwMjhBNjE1IC8qIHRvX3F1ZXVlZF90YXNrLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzA0RTIzNEI4OThEMDAyOEE2MTUgLyogY3J5cHRfc3Ry
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0ZENTM4MTFFNEJBNEY1MDA0ODI5MDggLyogdm9p
Y2VfcHJvY2Vzc2luZ19hdWRpb191bml0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzQyNzIz
NEM3RDI1MDAyOEE2MTUgLyogYWxpZ25lZF9tYWxsb2MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
NDVGNjE3MUZFMUVGQ0EwMEVCOUNBRiAvKiB2cDguaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFD
NDI5MjM0QzdEMjUwMDI4QTYxNSAvKiBhbGlnbmVkX2FycmF5LmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTMxQzEwNDIzNEI4OUUyMDAyOEE2MTUgLyogcmF0ZV90cmFja2VyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQzNEODIzNEM3OUQxMDAyOEE2MTUgLyogdnA4X2ZyYW1lX2J1ZmZlcl9jb250
cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzNEQjIzNEM3OUQxMDAyOEE2MTUgLyog
dnA4X2ZyYW1lX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzODYxRTQzOUEzNTAw
NjIxRTkyIC8qIHZwOF9oZWFkZXJfcGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUZDQkI2
NTIxQjFGRUY2MDBBNURGMjcgLyogdnA4X3RlbXBvcmFsX2xheWVycy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDEzMUMzRDYyMzRDNzlEMTAwMjhBNjE1IC8qIHZwOF90ZW1wb3JhbF9sYXllcnNfZmFj
dG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUJGQTcyMzRCODhBNjAwMjhBNjE1IC8qIHZw
OV9wcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJGNDFFNDNDMkI1MDA2MjFFOTIg
LyogdnEzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTMxQzEzNTIzNEI4OUUyMDAyOEE2MTUgLyog
dHlwZV90cmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QkY2MUU0M0MyQjUwMDYyMUU5
MiAvKiB2cTQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNEI0QzgxMUU0MzFGOUMwMDI2NTFDOCAv
KiB3YXZfZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjRDODQxRTQzMUY5QzAwMjY1MUM4
IC8qIHdhdl9oZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMTYzMjM0Qjg5RTIwMDI4
QTYxNSAvKiB3ZWFrX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFQ0VBQkMyMDY0MDNDMjAw
OUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhDQUIx
RTQzQzZGNzAwNjIxRTkyIC8qIHdlYnJ0Y19jbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDVF
NDkxMUVGODhFRjcwMEZDRjZFNiAvKiB3ZWJydGNfbGlieXV2LmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTMxQzRENzIzNEM4NEEzMDAyOEE2MTUgLyogc291cmNlX3RyYWNrZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxMzFDMzFCMjM0QjhEQzIwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW1faW50ZXJm
YWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzI3NjIzNEI4Q0M0MDAyOEE2MTUgLyogd2Vi
cnRjX21lZGlhX2VuZ2luZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEzMUMyOEYyMzRCOENDNDAw
MjhBNjE1IC8qIHdlYnJ0Y19tZWRpYV9lbmdpbmVfZGVmYXVsdHMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxMzFCRjFDMjM0Qjg4MjAwMDI4QTYxNSAvKiB3ZWJydGNfc2RwLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTMxQkVGMjIzNEI4ODIwMDAyOEE2MTUgLyogd2VicnRjX3Nlc3Npb25fZGVzY3Jp
cHRpb25fZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGOUJGQzcyMDUxRENFOTAwQUJG
MEI5IC8qIHdlYnJ0Y192YWQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMEZGMjM0Qjg5RTIw
MDI4QTYxNSAvKiBzdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMzFDMjhCMjM0QjhDQzQw
MDI4QTYxNSAvKiB3ZWJydGNfdmlkZW9fZW5naW5lLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMx
QzI5QjIzNEI4Q0M0MDAyOEE2MTUgLyogd2VicnRjX3ZvaWNlX2VuZ2luZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDhCRjgxRTQzQzJCNTAwNjIxRTkyIC8qIHdpbmRvdzMyX3czMi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEzMUMwODMyMzRCODk4RDAwMjhBNjE1IC8qIGZpcmV3YWxsX3NvY2tl
dF9zZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNEI0Qzg3MUU0MzFGOUMwMDI2NTFDOCAv
KiB3aW5kb3dfZ2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDFDMjIxMjc1OTNG
MDA2MzRGQ0YgLyogd2luZG93ZWRfZmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODYw
ODFFNDNCODRFMDA2MjFFOTIgLyogd2luZG93c19wcml2YXRlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTMxQzU1RTIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X3Byb2JlX3Jlc3VsdF9mYWls
dXJlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEM5OTFFNDNDNjYwMDA2MjFFOTIgLyogd3Bk
X25vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzlDMUU0M0M2NjAwMDYyMUU5MiAvKiB3
cGRfdHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM2M0Y4RTExRTQxNkQ1MzAwMkNBNTMxIC8q
IHdyaXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCRkExRTQzQzJCNTAwNjIxRTkyIC8q
IHhjb3JyX2NvZWYuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFDMTEwMjM0Qjg5RTIwMDI4QTYx
NSAvKiBwcm94eV9pbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzRGRDIzNEM4NkNCMDAy
OEE2MTUgLyogeWllbGRfcG9saWN5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTMxQzEyQTIzNEI4
OUUyMDAyOEE2MTUgLyogemVyb19tZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTY1ODYsMTQg
KzE2Njg3LDEyIEBACiAJCQkJNDFFQTU0MDAxRUZDMkQxQjAwMkZGMDRDIC8qIGJ5dGVzLmMgaW4g
U291cmNlcyAqLywKIAkJCQk1QzRCNDcyMDFFNDJBQUQ2MDAyNjUxQzggLyogY2JiLmMgaW4gU291
cmNlcyAqLywKIAkJCQk0MUEzOTE3NzFFRkM0NDdDMDBDNDUxNkEgLyogY2JjLmMgaW4gU291cmNl
cyAqLywKLQkJCQk0MTMxQkU3MTIzNEI4NTA2MDAyOEE2MTUgLyogZnB4LmMgaW4gU291cmNlcyAq
LywKIAkJCQk1QzRCNDcyMTFFNDJBQUQ2MDAyNjUxQzggLyogY2JzLmMgaW4gU291cmNlcyAqLywK
IAkJCQk0MUEzOTE3ODFFRkM0NDdDMDBDNDUxNkEgLyogY2ZiLmMgaW4gU291cmNlcyAqLywKIAkJ
CQk1QzRCNDcxRDFFNDJBQUQwMDAyNjUxQzggLyogY2hhY2hhLmMgaW4gU291cmNlcyAqLywKIAkJ
CQk1QzRCNDcwOTFFNDJBQUJFMDAyNjUxQzggLyogY2hlY2suYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxQTM5MTkwMUVGQzQ0RUIwMEM0NTE2QSAvKiBjaXBoZXIuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxQTM5MUE4MUVGQzQ1NEYwMEM0NTE2QSAvKiBjaXBoZXJfZXh0cmEuYyBpbiBTb3VyY2VzICov
LAotCQkJCTQxOUU4NThCMjM3MzU4NDMwMERCMDBENCAvKiBmcF9nZW5lcmljLmMgaW4gU291cmNl
cyAqLywKIAkJCQk1QzRCNDcwRjFFNDJBQUM2MDAyNjUxQzggLyogY21hYy5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDFFQTU0MDExRUZDMkQxQjAwMkZGMDRDIC8qIGNtcC5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUM0QjQ3REIxRTQyQzAyMTAwMjY1MUM4IC8qIGNvbmYuYyBpbiBTb3VyY2VzICovLApA
QCAtMTY2MDUsNiArMTY3MDQsNyBAQAogCQkJCTQxQTM5MTdGMUVGQzQ0N0MwMEM0NTE2QSAvKiBj
dHJkcmJnLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUVBNTQwMjFFRkMyRDFCMDAyRkYwNEMgLyog
Y3R4LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODRDQjFGRTMyNTJFMDA0MEMzMEYgLyogY3Vy
dmUyNTUxOS5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJFNkUyMzRCODUwNjAwMjhBNjE1IC8q
IGN1cnZlX3BhcmFtcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNGQUNGMzYyMjZFOTZGMjAwNTZD
N0QwIC8qIGQxX2JvdGguY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0ZBQ0YzNzIyNkU5NkY3MDA1
NkM3RDAgLyogZDFfbGliLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNGQUNGMzgyMjZFOTZGQjAw
NTZDN0QwIC8qIGQxX3BrdC5jYyBpbiBTb3VyY2VzICovLApAQCAtMTY2NTUsNiArMTY3NTUsOCBA
QAogCQkJCTQxNTQ0OUFGMjFDQUMzRjUwMDFDMEE1NSAvKiBmZWxlbS5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUM0QjQ3M0YxRTQyQUFFQTAwMjY1MUM4IC8qIGZpbGUuYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxQTM5MjE1MUVGQzRCM0EwMEM0NTE2QSAvKiBmb3JrdW5zYWZlLmMgaW4gU291cmNlcyAq
LywKKwkJCQk0MTlFODU4QjIzNzM1ODQzMDBEQjAwRDQgLyogZnBfZ2VuZXJpYy5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEzMUJFNzEyMzRCODUwNjAwMjhBNjE1IC8qIGZweC5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDFFQTU0MDUxRUZDMkQxQjAwMkZGMDRDIC8qIGdjZC5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDE1NDQ5QTgyMUNBQzM5QTAwMUMwQTU1IC8qIGdjZF9leHRyYS5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDFBMzkxN0ExRUZDNDQ3QzAwQzQ1MTZBIC8qIGdjbS5jIGluIFNvdXJjZXMgKi8s
CkBAIC0xNjY2NSwxMCArMTY3NjcsMTEgQEAKIAkJCQk1QzRCNDc0MDFFNDJBQUVBMDAyNjUxQzgg
LyogaGV4ZHVtcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ2RTIxRTQyQUE5MjAwMjY1MUM4
IC8qIGhrZGYuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRUE1M0E1MUVGQzJDMTQwMDJGRjA0QyAv
KiBobWFjLmMgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkU3NTIzNEI4NTVBMDAyOEE2MTUgLyog
aHJzcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ2NzYxRTQyQUEzQzAwMjY1MUM4IC8qIGky
ZF9wci5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJFNzAyMzRCODUwNjAwMjhBNjE1IC8qIGlz
b2dlbnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRUE1NDA4MUVGQzJEMUIwMDJGRjA0QyAvKiBq
YWNvYmkuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNTQ0OUFCMjFDQUMzQ0YwMDFDMEE1NSAvKiBr
ZGYuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRTcyMjM0Qjg1MDYwMDI4QTYxNSAvKiBzaWtl
LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUEzOTIwMDFFRkM0OTMwMDBDNDUxNkEgLyoga2V5X3dy
YXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NkRGMUU0MkFBODkwMDI2NTFDOCAvKiBsaGFz
aC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFQTU0MTkxRUZDMkQ1MzAwMkZGMDRDIC8qIG1kNC5j
IGluIFNvdXJjZXMgKi8sCkBAIC0xNjY5MywxNyArMTY3OTYsMTcgQEAKIAkJCQk0MUEzOTIwODFF
RkM0QTcxMDBDNDUxNkEgLyogcF9lZDI1NTE5X2FzbjEuYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
NEI0NkVDMUU0MkFBOTcwMDI2NTFDOCAvKiBwX3JzYS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0
QjQ2RUIxRTQyQUE5NzAwMjY1MUM4IC8qIHBfcnNhX2FzbjEuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxMzFCRTc5MjM0Qjg1QTkwMDI4QTYxNSAvKiBwX3gyNTUxOS5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDEzMUJFNzgyMzRCODVBOTAwMjhBNjE1IC8qIHBfeDI1NTE5X2FzbjEuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxQTM5MTg2MUVGQzQ0N0MwMEM0NTE2QSAvKiBwYWRkaW5nLmMgaW4gU291cmNl
cyAqLywKIAkJCQk1QzRCNDc0MjFFNDJBQUVBMDAyNjUxQzggLyogcGFpci5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUM0QjQ3MEMxRTQyQUFCRTAwMjY1MUM4IC8qIHBhcmFtcy5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUM0QjQ2RUUxRTQyQUE5NzAwMjY1MUM4IC8qIHBia2RmLmMgaW4gU291cmNlcyAq
LywKLQkJCQk0MTMxQkU3MDIzNEI4NTA2MDAyOEE2MTUgLyogaXNvZ2VueS5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUM0QjQ2NEExRTQyQUEzNDAwMjY1MUM4IC8qIHBjeV9jYWNoZS5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUM0QjQ2NEIxRTQyQUEzNDAwMjY1MUM4IC8qIHBjeV9kYXRhLmMgaW4gU291
cmNlcyAqLywKIAkJCQk1QzRCNDY0RDFFNDJBQTM0MDAyNjUxQzggLyogcGN5X2xpYi5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUM0QjQ2NEUxRTQyQUEzNDAwMjY1MUM4IC8qIHBjeV9tYXAuYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDNEI0NjRGMUU0MkFBMzQwMDI2NTFDOCAvKiBwY3lfbm9kZS5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJFNkUyMzRCODUwNjAwMjhBNjE1IC8qIGN1cnZlX3BhcmFt
cy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ2NTAxRTQyQUEzNDAwMjY1MUM4IC8qIHBjeV90
cmVlLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNDZDMTFFNDJBQTZCMDAyNjUxQzggLyogcGVt
X2FsbC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ2QzIxRTQyQUE2QjAwMjY1MUM4IC8qIHBl
bV9pbmZvLmMgaW4gU291cmNlcyAqLywKQEAgLTE2NzE5LDcgKzE2ODIyLDYgQEAKIAkJCQk0MUEz
OTFCRTFFRkM0NjBEMDBDNDUxNkEgLyogcGtjczhfeDUwOS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUM0QjQ2QjkxRTQyQUE2MTAwMjY1MUM4IC8qIHBvbHkxMzA1LmMgaW4gU291cmNlcyAqLywKIAkJ
CQk1QzRCNDZCODFFNDJBQTYxMDAyNjUxQzggLyogcG9seTEzMDVfdmVjLmMgaW4gU291cmNlcyAq
LywKLQkJCQk0MTMxQkU3OTIzNEI4NUE5MDAyOEE2MTUgLyogcF94MjU1MTkuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxQTM5MTdFMUVGQzQ0N0MwMEM0NTE2QSAvKiBwb2x5dmFsLmMgaW4gU291cmNl
cyAqLywKIAkJCQk0MUEzOTFDNzFFRkM0NjU2MDBDNDUxNkEgLyogcG9vbC5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDFFQTU0MEMxRUZDMkQxQjAwMkZGMDRDIC8qIHByaW1lLmMgaW4gU291cmNlcyAq
LywKQEAgLTE2NzQ1LDYgKzE2ODQ3LDcgQEAKIAkJCQk0MUEzOTE3NjFFRkM0NDdDMDBDNDUxNkEg
Lyogc2hhNTEyLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUVBNTQxMDFFRkMyRDFCMDAyRkYwNEMg
Lyogc2hpZnQuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NkYwMUU0MkFBOTcwMDI2NTFDOCAv
KiBzaWduLmMgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkU3MjIzNEI4NTA2MDAyOEE2MTUgLyog
c2lrZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFQTUzRDAxRUZDMkM4QjAwMkZGMDRDIC8qIHNp
bXBsZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE1NDQ5QjAyMUNBQzNGNTAwMUMwQTU1IC8qIHNp
bXBsZV9tdWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NzQ1MUU0MkFBRUEwMDI2NTFDOCAv
KiBzb2NrZXQuYyBpbiBTb3VyY2VzICovLApAQCAtMTY3NjcsMTAgKzE2ODcwLDggQEAKIAkJCQk1
Q0ZBQ0Y0RjIyNkU5NzdGMDA1NkM3RDAgLyogc3NsX3g1MDkuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1QzRCNDZBNTFFNDJBQTQyMDAyNjUxQzggLyogc3RhY2suYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDRkFDRjUwMjI2RTk3ODMwMDU2QzdEMCAvKiB0MV9lbmMuY2MgaW4gU291cmNlcyAqLywKLQkJ
CQk0MTMxQkU3ODIzNEI4NUE5MDAyOEE2MTUgLyogcF94MjU1MTlfYXNuMS5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNGQUNGNTEyMjZFOTc4NjAwNTZDN0QwIC8qIHQxX2xpYi5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDNEI0NjdCMUU0MkFBM0MwMDI2NTFDOCAvKiB0X2NybC5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDEzMUJFNzUyMzRCODU1QTAwMjhBNjE1IC8qIGhyc3MuYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDNEI0NjdDMUU0MkFBM0MwMDI2NTFDOCAvKiB0X3JlcS5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUM0QjQ2N0QxRTQyQUEzQzAwMjY1MUM4IC8qIHRfeDUwOS5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUM0QjQ2N0UxRTQyQUEzQzAwMjY1MUM4IC8qIHRfeDUwOWEuYyBpbiBTb3VyY2VzICov
LApAQCAtMTY4NjksMjkgKzE2OTcwLDI0IEBACiAJCQlmaWxlcyA9ICgKIAkJCQk1Q0REOEI2QzFF
NDNDMkI1MDA2MjFFOTIgLyogYWJzX3F1YW50LmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEI2
QTFFNDNDMkI1MDA2MjFFOTIgLyogYWJzX3F1YW50X2xvb3AuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFDMjQzMjM0QjhCQjIwMDI4QTYxNSAvKiBxdWFsaXR5X3NjYWxlcl9zZXR0aW5ncy5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxMzFDNEQ0MjM0Qzg0QTMwMDI4QTYxNSAvKiBhYnNvbHV0ZV9j
YXB0dXJlX3RpbWVfcmVjZWl2ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzREODIzNEM4
NEEzMDAyOEE2MTUgLyogYWJzb2x1dGVfY2FwdHVyZV90aW1lX3NlbmRlci5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4OUY4MUU0M0JGQjMwMDYyMUU5MiAvKiBhY2NlbGVyYXRlLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDFFMDJDQTgyMTI3MzUyRDAwQzI3Q0Q2IC8qIGFja25vd2xlZGdlZF9i
aXRyYXRlX2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NTA5MUU0M0IxRUEw
MDYyMUU5MiAvKiBhY21fcmVjZWl2ZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzJGODIz
NEI4REMyMDAyOEE2MTUgLyogcnRwX3BhY2tldF9pbmZvLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NDEzMUMyNDAyMzRCOEJCMjAwMjhBNjE1IC8qIG5vcm1hbGl6ZV9zaW11bGNhc3Rfc2l6ZV9leHBl
cmltZW50LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg1MEIxRTQzQjFFQTAwNjIxRTkyIC8q
IGFjbV9yZXNhbXBsZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzEzRDIzNEI4OUUyMDAy
OEE2MTUgLyogb3BlbnNzbF9kaWdlc3QuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkY4RTIz
NEI4OEE2MDAyOEE2MTUgLyogYWRhcHRlZF92aWRlb190cmFja19zb3VyY2UuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTZEM0JEQjIxMjczMUMyMDA3NzVGMDkgLyogYWRhcHRpdmVfYWdjLmNjIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMxQkUyMzRCOEE0QTAwMjhBNjE1IC8qIHN0dW4uY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTVGMUZBNjIxMjcyRkJBMDAwNjRDQkYgLyogYWRhcHRpdmVfZGln
aXRhbF9nYWluX2FwcGxpZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTZCNDQwRTIzNURDMjND
MDA0MEUyNTUgLyogUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rlci5tbSBpbiBTb3VyY2VzICov
LAotCQkJCTQxMzFDMTIwMjM0Qjg5RTIwMDI4QTYxNSAvKiB0aHJlYWQuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0QyODVBNDFFNkE2MzQzMDA5NEZEQzggLyogYWRhcHRpdmVfZmlyX2ZpbHRlci5j
YyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMzc3MjM0Qjk1N0QwMDI4QTYxNSAvKiBhZGFwdGl2
ZV9maXJfZmlsdGVyX2VybC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNkQzQkRFMjEyNzMxQzIw
MDc3NUYwOSAvKiBhZGFwdGl2ZV9tb2RlX2xldmVsX2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxNUYxRkE4MjEyNzJGQkEwMDA2NENCRiAvKiBhZGFwdGl2ZV9tb2RlX2xldmVsX2Vz
dGltYXRvcl9hZ2MuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzJBMTIzNEI4Q0M0MDAyOEE2
MTUgLyogYWRtX2hlbHBlcnMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVBODFFNkE2MzQz
MDA5NEZEQzggLyogYWVjM19jb21tb24uY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQkY2NTIz
NEI4ODIwMDAyOEE2MTUgLyogbWVkaWFfcHJvdG9jb2xfbmFtZXMuY2MgaW4gU291cmNlcyAqLywK
LQkJCQk0MTMxQzFEMjIzNEI4QTRCMDAyOEE2MTUgLyogY29ubmVjdGlvbl9pbmZvLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNEMjg1QUExRTZBNjM0MzAwOTRGREM4IC8qIGFlYzNfZmZ0LmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2QkMxRTQzQjlDMjAwNjIxRTkyIC8qIGFlY19jb3JlLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2QkIxRTQzQjlDMjAwNjIxRTkyIC8qIGFlY19jb3Jl
X3NzZTIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQkZBQjIzNEI4OEE2MDAyOEE2MTUgLyog
dHVybl91dGlscy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzA5MjEzMUVGOEQ1MTEwMDc1N0M1
NSAvKiBhZWNfZHVtcC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NkJFMUU0M0I5QzIwMDYy
MUU5MiAvKiBhZWNfcmVzYW1wbGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1QTYxRTZB
NjM0MzAwOTRGREM4IC8qIGFlY19zdGF0ZS5jYyBpbiBTb3VyY2VzICovLApAQCAtMTY5MDEsNjkg
KzE2OTk3LDU4IEBACiAJCQkJNDEzRTY3OUIyMTY5ODg2MjAwRUYzN0VEIC8qIGFnYzJfY29tbW9u
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2RkYxRTQzQkE3NTAwNjIxRTkyIC8qIGFnY19t
YW5hZ2VyX2RpcmVjdC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RkQxMUU0M0NENjYwMDYy
MUU5MiAvKiBhaW1kX3JhdGVfY29udHJvbC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRjhF
MjM0Qjg4QTYwMDI4QTYxNSAvKiBhZGFwdGVkX3ZpZGVvX3RyYWNrX3NvdXJjZS5jYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTQxMzFCRjExMjM0Qjg4MjAwMDI4QTYxNSAvKiB0cmFuc3BvcnRfc3RhdHMu
Y2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzQyODIzNEM3RDI1MDAyOEE2MTUgLyogYWxpZ25l
ZF9tYWxsb2MuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUUwMkNCNTIxMjczNTJEMDBDMjdDRDYg
LyogYWxyX2RldGVjdG9yLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyMkQyMzRCOEJCMjAw
MjhBNjE1IC8qIGFscl9leHBlcmltZW50LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2RUMx
RTQzQkE2RDAwNjIxRTkyIC8qIGFuYWxvZ19hZ2MuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFD
MzdGMjM0Qjk1N0QwMDI4QTYxNSAvKiBhcGlfY2FsbF9qaXR0ZXJfbWV0cmljcy5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4N0U1MUU0M0JEQTEwMDYyMUU5MiAvKiBhcG1fZGF0YV9kdW1wZXIu
Y2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzJBMDIzNEI4Q0M0MDAyOEE2MTUgLyogYXBtX2hl
bHBlcnMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODkzQjFFNDNCRjNBMDA2MjFFOTIgLyog
YXBwLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0RDgyMzRDODRBMzAwMjhBNjE1IC8qIGFi
c29sdXRlX2NhcHR1cmVfdGltZV9zZW5kZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODdB
OTFFNDNCQzA1MDA2MjFFOTIgLyogYXJpdGhfcm91dGluZXMuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxNDMzRDBBMUY3OUIzMzQwMDM4N0I0RCAvKiBhcml0aF9yb3V0aW5lcy5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDg3QTcxRTQzQkMwNTAwNjIxRTkyIC8qIGFyaXRoX3JvdXRpbmVzX2hpc3Qu
YyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMUU4MjM0QjhBNEIwMDI4QTYxNSAvKiBwb3J0X2lu
dGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMTRFMjM0Qjg5RTIwMDI4QTYxNSAv
KiBzb2NrZXRfc3RyZWFtLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGMEYyMzRCODgyMDAw
MjhBNjE1IC8qIGR0bHNfdHJhbnNwb3J0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0MzNEMjkx
Rjc5QjMzNDAwMzg3QjREIC8qIGFyaXRoX3JvdXRpbmVzX2hpc3QuYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxMzFDNDU5MjM0QzgxMTgwMDI4QTYxNSAvKiBiYXNpY19wb3J0X2FsbG9jYXRvci5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4N0E4MUU0M0JDMDUwMDYyMUU5MiAvKiBhcml0aF9yb3V0
aW5lc19sb2dpc3QuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzRDBGMUY3OUIzMzQwMDM4N0I0
RCAvKiBhcml0aF9yb3V0aW5lc19sb2dpc3QuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRkNCQjdB
MjFCMUZGQzAwMEE1REYyNyAvKiBhc2NpaS5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMUMy
MjM0QjhBNEEwMDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydF9pbnRlcm5hbC5jYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxMzFDMDNBMjM0Qjg5OEQwMDI4QTYxNSAvKiBiaXRfYnVmZmVyLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEzMUMwNDkyMzRCODk4RDAwMjhBNjE1IC8qIGFzeW5jX2ludm9rZXIu
Y2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzAzMDIzNEI4OThEMDAyOEE2MTUgLyogYXN5bmNf
cGFja2V0X3NvY2tldC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMDc4MjM0Qjg5OEQwMDI4
QTYxNSAvKiBhc3luY19yZXNvbHZlcl9pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0
MTMxQzAyMTIzNEI4OThEMDAyOEE2MTUgLyogYXN5bmNfc29ja2V0LmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDEzMUMxRDYyMzRCOEE0QjAwMjhBNjE1IC8qIGFzeW5jX3N0dW5fdGNwX3NvY2tldC5j
YyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMDVBMjM0Qjg5OEQwMDI4QTYxNSAvKiBhc3luY190
Y3Bfc29ja2V0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMwMjUyMzRCODk4RDAwMjhBNjE1
IC8qIGFzeW5jX3VkcF9zb2NrZXQuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzIzQzIzNEI4
QkIyMDAyOEE2MTUgLyogYXVkaW9fYWxsb2NhdGlvbl9zZXR0aW5ncy5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4NEE5MUU0M0FGMTMwMDYyMUU5MiAvKiBhdWRpb19idWZmZXIuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTkyNDFBMDIxMjc1ODgzMDA2MzRGQ0YgLyogYXVkaW9fY29kZWNfcGFp
cl9pZC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDNDc0MjM0QzgxQjYwMDI4QTYxNSAvKiBy
dGNfZXZlbnRfbG9nX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzQzMjIzNEM3
RDk2MDAyOEE2MTUgLyogZnJhbWVfcmF0ZV9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKLQkJ
CQk0MTMxQzI4OTIzNEI4Q0M0MDAyOEE2MTUgLyogcGF5bG9hZF90eXBlX21hcHBlci5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDM0JGMjM0Qjk3QjQwMDI4QTYxNSAvKiBhdWRpb19jb2Rlcl9v
cHVzX2NvbW1vbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NTEwMUU0M0IxRUEwMDYyMUU5
MiAvKiBhdWRpb19jb2RpbmdfbW9kdWxlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjRDNTkx
RTQzMUY5QzAwMjY1MUM4IC8qIGF1ZGlvX2NvbnZlcnRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDRDI4NTQ0MUU2QTYxRDIwMDk0RkRDOCAvKiBhdWRpb19kZWNvZGVyLmNjIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDEzMUMzMDAyMzRCOERDMjAwMjhBNjE1IC8qIGR0bHNfdHJhbnNwb3J0X2ludGVy
ZmFjZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4M0U5MUZFMjQ4MzUwMDQwQzMwRiAvKiBh
dWRpb19kZWNvZGVyX2c3MTEuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQwQjgzMTFFNEUzMzk2
MDA3NDA5RTYgLyogYXVkaW9fZGVjb2Rlcl9nNzIyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEz
MUJFRjgyMzRCODgyMDAwMjhBNjE1IC8qIGRhdGFncmFtX3J0cF90cmFuc3BvcnQuY2MgaW4gU291
cmNlcyAqLywKLQkJCQk0MTMxQzI0MjIzNEI4QkIyMDAyOEE2MTUgLyogcnR0X211bHRfZXhwZXJp
bWVudC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4MzNGMUZFMjQ2MjMwMDQwQzMwRiAvKiBh
dWRpb19kZWNvZGVyX2c3MjIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEI2RTFFNDNDMkI1
MDA2MjFFOTIgLyogYXVkaW9fZGVjb2Rlcl9pbGJjLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5
Qzg0QkYxRkUzMTk0NDAwNDBDMzBGIC8qIGF1ZGlvX2RlY29kZXJfaWxiYy5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4N0FCMUU0M0JDMDUwMDYyMUU5MiAvKiBhdWRpb19kZWNvZGVyX2lzYWMu
Y2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzE1ODIzNEI4OUUyMDAyOEE2MTUgLyogcmF0ZV9s
aW1pdGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGMDAyMzRCODgyMDAwMjhBNjE1IC8q
IGNoYW5uZWwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODM1QzFGRTI0NkJCMDA0MEMzMEYg
LyogYXVkaW9fZGVjb2Rlcl9pc2FjX2ZpeC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMUYx
MjM0QjhBNEIwMDI4QTYxNSAvKiBpY2VfY3JlZGVudGlhbHNfaXRlcmF0b3IuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTlDODM2QTFGRTI0NkNBMDA0MEMzMEYgLyogYXVkaW9fZGVjb2Rlcl9pc2Fj
X2Zsb2F0LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMyMkQyMzRCOEJCMjAwMjhBNjE1IC8q
IGFscl9leHBlcmltZW50LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGNTQyMzRCODgyMDAw
MjhBNjE1IC8qIHRyYWNrX21lZGlhX2luZm9fbWFwLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0
MzNDRjkxRjc5QjMzNDAwMzg3QjREIC8qIGF1ZGlvX2RlY29kZXJfaXNhY2ZpeC5jYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTQxMzFDMUM5MjM0QjhBNEEwMDI4QTYxNSAvKiB0Y3BfcG9ydC5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxOUM4M0YyMUZFMjQ4OEQwMDQwQzMwRiAvKiBhdWRpb19kZWNvZGVy
X0wxNi5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMUFGMjM0QjhBNEEwMDI4QTYxNSAvKiBy
ZWdhdGhlcmluZ19jb250cm9sbGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMzRjkyMzRD
N0IwMzAwMjhBNjE1IC8qIGF1ZGlvX2RlY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEzMUMzQzMyMzRCOTdCNDAwMjhBNjE1IC8qIGF1ZGlvX2RlY29kZXJf
bXVsdGlfY2hhbm5lbF9vcHVzX2ltcGwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEM2MDFF
NDNDNjA5MDA2MjFFOTIgLyogYXVkaW9fZGVjb2Rlcl9vcHVzLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDE5QzgyRjQxRkUyMEVCNTAwNDBDMzBGIC8qIGF1ZGlvX2RlY29kZXJfb3B1cy5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxNDBCODIyMUU0RTMzODMwMDc0MDlFNiAvKiBhdWRpb19kZWNvZGVy
X3BjbS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RkZDMUU0M0NFM0EwMDYyMUU5MiAvKiBh
dWRpb19kZWNvZGVyX3BjbTE2Yi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDMTE5RkZCMUU0NTc0
MDAwMDRGMDk4NyAvKiBhdWRpb19kZXZpY2VfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUMxMUEwMUQxRTQ1NzU3ODAwNEYwOTg3IC8qIGF1ZGlvX2RldmljZV9kdW1teS5jYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTQxMzFCRjEwMjM0Qjg4MjAwMDI4QTYxNSAvKiBydHBfcGFyYW1ldGVyc19j
b252ZXJzaW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMxMTlGRkUxRTQ1NzQwMDAwNEYwOTg3
IC8qIGF1ZGlvX2RldmljZV9nZW5lcmljLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NUU0REYx
RUY4Q0QzOTAwRkNGNkU2IC8qIGF1ZGlvX2VuY29kZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0
MTMxQkY0MTIzNEI4ODIwMDAyOEE2MTUgLyogcGVlcl9jb25uZWN0aW9uX2ZhY3RvcnkuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0REOENBNzFFNDNDNkY3MDA2MjFFOTIgLyogYXVkaW9fZW5jb2Rl
cl9jbmcuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEZGMzFFNDNDREY0MDA2MjFFOTIgLyog
YXVkaW9fZW5jb2Rlcl9jb3B5X3JlZC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4M0U3MUZF
MjQ4MzUwMDQwQzMwRiAvKiBhdWRpb19lbmNvZGVyX2c3MTEuY2MgaW4gU291cmNlcyAqLywKLQkJ
CQk0MTMxQzQ1NzIzNEM4MTE4MDAyOEE2MTUgLyogdHVybl9wb3J0X2ZhY3RvcnkuY2MgaW4gU291
cmNlcyAqLywKLQkJCQk0MTMxQzM4RDIzNEI5NTdEMDAyOEE2MTUgLyogc3RhdGlvbmFyaXR5X2Vz
dGltYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDBCODMzMUU0RTMzOTYwMDc0MDlFNiAv
KiBhdWRpb19lbmNvZGVyX2c3MjIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODMzRTFGRTI0
NjIzMDA0MEMzMEYgLyogYXVkaW9fZW5jb2Rlcl9nNzIyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNERDhCNzAxRTQzQzJCNTAwNjIxRTkyIC8qIGF1ZGlvX2VuY29kZXJfaWxiYy5jYyBpbiBTb3Vy
Y2VzICovLApAQCAtMTY5NzEsMTA4ICsxNzA1Niw5NCBAQAogCQkJCTVDREQ4N0FEMUU0M0JDMDUw
MDYyMUU5MiAvKiBhdWRpb19lbmNvZGVyX2lzYWMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlD
ODM2QzFGRTI0NkNBMDA0MEMzMEYgLyogYXVkaW9fZW5jb2Rlcl9pc2FjX2ZpeC5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxOUM4MzZCMUZFMjQ2Q0EwMDQwQzMwRiAvKiBhdWRpb19lbmNvZGVyX2lz
YWNfZmxvYXQuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzNDRTIzNEI5ODQyMDAyOEE2MTUg
LyogcnRjX3N0YXRzX3JlcG9ydC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzQ0ZCMUY3OUIz
MzQwMDM4N0I0RCAvKiBhdWRpb19lbmNvZGVyX2lzYWNmaXguY2MgaW4gU291cmNlcyAqLywKLQkJ
CQk0MTMxQzEzODIzNEI4OUUyMDAyOEE2MTUgLyogcnRjX2NlcnRpZmljYXRlLmNjIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNDEzMUMxMDIyMzRCODlFMjAwMjhBNjE1IC8qIHNvY2tldF9hZGRyZXNzX3Bh
aXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODNGMTFGRTI0ODhEMDA0MEMzMEYgLyogYXVk
aW9fZW5jb2Rlcl9MMTYuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzNGQTIzNEM3QjAzMDAy
OEE2MTUgLyogYXVkaW9fZW5jb2Rlcl9tdWx0aV9jaGFubmVsX29wdXMuY2MgaW4gU291cmNlcyAq
LywKKwkJCQk0MTMxQzNGQzIzNEM3QjAzMDAyOEE2MTUgLyogYXVkaW9fZW5jb2Rlcl9tdWx0aV9j
aGFubmVsX29wdXNfY29uZmlnLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMzQzQyMzRCOTdC
NDAwMjhBNjE1IC8qIGF1ZGlvX2VuY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzX2ltcGwuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0REOEM2MzFFNDNDNjA5MDA2MjFFOTIgLyogYXVkaW9fZW5jb2Rl
cl9vcHVzLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzNzcyMzRCOTU3RDAwMjhBNjE1IC8q
IGFkYXB0aXZlX2Zpcl9maWx0ZXJfZXJsLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0MjYy
MzRDN0QyNTAwMjhBNjE1IC8qIGZpZm9fYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5
QzgyRjUxRkUyMEVCNTAwNDBDMzBGIC8qIGF1ZGlvX2VuY29kZXJfb3B1cy5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxOUM4MkYzMUZFMjBFQjUwMDQwQzMwRiAvKiBhdWRpb19lbmNvZGVyX29wdXNf
Y29uZmlnLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzNzgyMzRCOTU3RDAwMjhBNjE1IC8q
IGNsb2NrZHJpZnRfZGV0ZWN0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQwQjgyMDFFNEUz
MzgzMDA3NDA5RTYgLyogYXVkaW9fZW5jb2Rlcl9wY20uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REOEZGRTFFNDNDRTNBMDA2MjFFOTIgLyogYXVkaW9fZW5jb2Rlcl9wY20xNmIuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0QyODU0NjFFNkE2MUQyMDA5NEZEQzggLyogYXVkaW9fZm9ybWF0LmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDFEREIyNkYyMTI2NzlEMjAwMjk2RDQ3IC8qIGF1ZGlvX2Zv
cm1hdF90b19zdHJpbmcuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzNBNzIzNEI5NkMzMDAy
OEE2MTUgLyogYXVkaW9fZnJhbWUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODQ5MjFFNkE1
RjQxMDA5NEZEQzggLyogYXVkaW9fZnJhbWVfbWFuaXB1bGF0b3IuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0QyODU0RDFFNkE2MjEzMDA5NEZEQzggLyogYXVkaW9fZnJhbWVfb3BlcmF0aW9ucy5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxMDJGNkE0MjEyNzMyNjIwMDZBRThENyAvKiBhdWRpb19s
ZXZlbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QThGMUU0M0MwMEYwMDYyMUU5MiAvKiBh
dWRpb19sb29wLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzOTcyMzRCOTU3RDAwMjhBNjE1
IC8qIHN1YmJhbmRfZXJsZV9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODQ5
NTFFNkE1RjQxMDA5NEZEQzggLyogYXVkaW9fbWl4ZXJfaW1wbC5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4QTAxMUU0M0JGQjMwMDYyMUU5MiAvKiBhdWRpb19tdWx0aV92ZWN0b3IuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTlDODMwRDFGRTIwRjNDMDA0MEMzMEYgLyogYXVkaW9fbmV0d29y
a19hZGFwdG9yX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4Rjc5MUU0M0NCRTAw
MDYyMUU5MiAvKiBhdWRpb19uZXR3b3JrX2FkYXB0b3JfaW1wbC5jYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxMzFCRjRFMjM0Qjg4MjAwMDI4QTYxNSAvKiBzcnRwX3RyYW5zcG9ydC5jYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMzFDMzIwMjM0QjhEQzIwMDI4QTYxNSAvKiBhdWRpb19vcHRpb25zLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhGRTkxRTQzQ0RDQTAwNjIxRTkyIC8qIGF1ZGlvX3By
b2Nlc3NpbmcuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODRBQjFFNDNBRjEzMDA2MjFFOTIg
LyogYXVkaW9fcHJvY2Vzc2luZ19pbXBsLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGMTgy
MzRCODgyMDAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
OUM4MjlEMUZFMjBEMUMwMDQwQzMwRiAvKiBhdWRpb19wcm9jZXNzaW5nX3N0YXRpc3RpY3MuY2Mg
aW4gU291cmNlcyAqLywKLQkJCQk0MTMxQkY5MDIzNEI4OEE2MDAyOEE2MTUgLyogcnRwX3V0aWxz
LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzQTUyMzRCOTZDMzAwMjhBNjE1IC8qIGVjaG9f
Y2FuY2VsbGVyM19mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMyRjIyMzRCOERD
MjAwMjhBNjE1IC8qIGNhbmRpZGF0ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMDJGNkJBMjEy
NzMzODIwMDZBRThENyAvKiBhdWRpb19yZWNlaXZlX3N0cmVhbS5jYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxMzFDM0M4MjM0Qjk3RjQwMDI4QTYxNSAvKiBzY3RwX3RyYW5zcG9ydC5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4QUNDMUU0M0MyMzkwMDYyMUU5MiAvKiBhdWRpb19yZWNlaXZlX3N0
cmVhbS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFCRUY2MjM0Qjg4MjAwMDI4QTYxNSAvKiBh
dWRpb19ydHBfcmVjZWl2ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEFDRjFFNDNDMjM5
MDA2MjFFOTIgLyogYXVkaW9fc2VuZF9zdHJlYW0uY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QzQ0RTIzNEM4MERDMDAyOEE2MTUgLyogY2hhbm5lbF9taXhpbmdfbWF0cml4LmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNEMjg0QjExRTZBNUY5RjAwOTRGREM4IC8qIGF1ZGlvX3NlbmRfc3RyZWFt
LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMyM0MyMzRCOEJCMjAwMjhBNjE1IC8qIGF1ZGlv
X2FsbG9jYXRpb25fc2V0dGluZ3MuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzFFRjIzNEI4
QTRCMDAyOEE2MTUgLyogbWRuc19tZXNzYWdlLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0
OUUyMzRDODM0RTAwMjhBNjE1IC8qIGZyYW1lX2VuY29kZV9tZXRhZGF0YV93cml0ZXIuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0REOEE5MTFFNDNDMDBGMDA2MjFFOTIgLyogYXVkaW9fc2luay5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QUQyMUU0M0MyMzkwMDYyMUU5MiAvKiBhdWRpb19z
dGF0ZS5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMjMyMjM0QjhCQjIwMDI4QTYxNSAvKiBi
YWxhbmNlZF9kZWdyYWRhdGlvbl9zZXR0aW5ncy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFD
NEYzMjM0Qzg2MzkwMDI4QTYxNSAvKiB0YXNrX3F1ZXVlX3N0ZGxpYi5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxNUYxRkM2MjEyNzMwOEYwMDA2NENCRiAvKiBhdWRpb19zdGF0ZS5jYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMzFCRjM2MjM0Qjg4MjAwMDI4QTYxNSAvKiBhdWRpb190cmFjay5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxMzFDNEFGMjM0QzgzODAwMDI4QTYxNSAvKiBhdWRpb190cmFu
c3BvcnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUY5QkY5QjIwNTFDODRDMDBBQkYwQjkgLyog
YXVkaW9fdHJhbnNwb3J0X2ltcGwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEM1RjFFNDMx
RjlDMDAyNjUxQzggLyogYXVkaW9fdXRpbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTA0
MUU0M0JGQjMwMDYyMUU5MiAvKiBhdWRpb192ZWN0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REOEI3MjFFNDNDMkI1MDA2MjFFOTIgLyogYXVnbWVudGVkX2NiX2NvcnIuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4NjQwMUU0M0I4QjUwMDYyMUU5MiAvKiBhdXRvX2NvcnJfdG9fcmVmbF9j
b2VmLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODY0MTFFNDNCOEI1MDA2MjFFOTIgLyogYXV0
b19jb3JyZWxhdGlvbi5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM0MDUyMzRDN0I3RTAwMjhB
NjE1IC8qIGF1dG9fY29ycmVsYXRpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEEwNzFF
NDNCRkIzMDA2MjFFOTIgLyogYmFja2dyb3VuZF9ub2lzZS5jYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFDMDJCMjM0Qjg5OEQwMDI4QTYxNSAvKiBtZW1vcnlfdXNhZ2UuY2MgaW4gU291cmNlcyAq
LywKLQkJCQk0MTMxQzMxMTIzNEI4REMyMDAyOEE2MTUgLyogZGF0YV9jaGFubmVsX2ludGVyZmFj
ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxQTA4QkM4MjEyNjk1REUwMDFENUQ3QiAvKiBiYWRf
b3B0aW9uYWxfYWNjZXNzLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGOTgyMzRCODhBNjAw
MjhBNjE1IC8qIGgyNjRfcHJvZmlsZV9sZXZlbF9pZC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQx
MzFDMUM3MjM0QjhBNEEwMDI4QTYxNSAvKiBiYXNpY19wYWNrZXRfc29ja2V0X2ZhY3RvcnkuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDE4MTIxMjc0OTcxMDA2MzRGQ0YgLyogYmFkX3Zhcmlh
bnRfYWNjZXNzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyMzIyMzRCOEJCMjAwMjhBNjE1
IC8qIGJhbGFuY2VkX2RlZ3JhZGF0aW9uX3NldHRpbmdzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDE0MzNDRjcxRjc5QjMzNDAwMzg3QjREIC8qIGJhbmR3aWR0aF9lc3RpbWF0b3IuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4N0FFMUU0M0JDMDUwMDYyMUU5MiAvKiBiYW5kd2lkdGhfZXN0aW1h
dG9yLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDFDNDIxMjc1OTNGMDA2MzRGQ0YgLyogYmFu
ZHdpZHRoX3NhbXBsZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzM5NjIzNEI5NTdEMDAy
OEE2MTUgLyogc3BlY3RydW1fYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMjYzQjcy
MTI2ODEwQzAwMjc0RjU5IC8qIGJhc2U2NC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMUM1
MjM0QjhBNEEwMDI4QTYxNSAvKiBiYXNpY19hc3luY19yZXNvbHZlcl9mYWN0b3J5LmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEzMUMxQzcyMzRCOEE0QTAwMjhBNjE1IC8qIGJhc2ljX3BhY2tldF9z
b2NrZXRfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDNDU5MjM0QzgxMTgwMDI4
QTYxNSAvKiBiYXNpY19wb3J0X2FsbG9jYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0
MUM5MjEyNzU5M0YwMDYzNEZDRiAvKiBiYnJfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFCRUY0MjM0Qjg4MjAwMDI4QTYxNSAvKiB3ZWJydGNfc2Vzc2lvbl9kZXNjcmlwdGlvbl9m
YWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxQzcyMTI3NTkzRjAwNjM0RkNGIC8q
IGJicl9uZXR3b3JrX2NvbnRyb2xsZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzA2MDIz
NEI4OThEMDAyOEE2MTUgLyogZmFrZV9jbG9jay5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFD
MUQ5MjM0QjhBNEIwMDI4QTYxNSAvKiB0dXJuX3BvcnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0
MTZEM0JFMDIxMjczMUMyMDA3NzVGMDkgLyogYmlxdWFkX2ZpbHRlci5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxMzFDMDNBMjM0Qjg5OEQwMDI4QTYxNSAvKiBiaXRfYnVmZmVyLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUM0QjRDMTkxRTQzMUY3NTAwMjY1MUM4IC8qIGJpdHJhdGVfYWRqdXN0ZXIu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODUyRjFFNDNCMzlDMDA2MjFFOTIgLyogYml0cmF0
ZV9hbGxvY2F0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEY3RDFFNDNDQkUwMDA2MjFF
OTIgLyogYml0cmF0ZV9jb250cm9sbGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMxNjAy
MzRCODlFMjAwMjhBNjE1IC8qIHN0cmluZ191dGlscy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
RTAyQ0FFMjEyNzM1MkQwMEMyN0NENiAvKiBiaXRyYXRlX2VzdGltYXRvci5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4RkEwMUU0M0NDQkUwMDYyMUU5MiAvKiBiaXRyYXRlX3Byb2Jlci5jYyBp
biBTb3VyY2VzICovLAogCQkJCTQxRTAyQ0NDMjEyNzM1QjcwMEMyN0NENiAvKiBiaXRyYXRlX3Nl
dHRpbmdzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMzOEUyMzRCOTU3RDAwMjhBNjE1IC8q
IGJsb2NrX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMzc5MjM0Qjk1N0QwMDI4
QTYxNSAvKiBibG9ja19kZWxheV9idWZmZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVB
QzFFNkE2MzQzMDA5NEZEQzggLyogYmxvY2tfZnJhbWVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NDEzMUMxMUUyMzRCODlFMjAwMjhBNjE1IC8qIHNzbF9maW5nZXJwcmludC5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4Njg3MUU0M0I5MzkwMDYyMUU5MiAvKiBibG9ja19tZWFuX2NhbGN1bGF0
b3IuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzEwQTIzNEI4OUUyMDAyOEE2MTUgLyogc2Vy
dmVyX3NvY2tldF9hZGFwdGVycy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUIwMUU2QTYz
NDMwMDk0RkRDOCAvKiBibG9ja19wcm9jZXNzb3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0Qy
ODVBRTFFNkE2MzQzMDA5NEZEQzggLyogYmxvY2tfcHJvY2Vzc29yX21ldHJpY3MuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REOEEwQTFFNDNCRkIzMDA2MjFFOTIgLyogYnVmZmVyX2xldmVsX2Zp
bHRlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRUZDMjM0Qjg4MjAwMDI4QTYxNSAvKiBq
c2VwX3RyYW5zcG9ydF9jb250cm9sbGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzODUy
MzRCOTU3RDAwMjhBNjE1IC8qIGVjaG9fYXVkaWJpbGl0eS5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxMzFDMDQyMjM0Qjg5OEQwMDI4QTYxNSAvKiBidWZmZXJfcXVldWUuY2MgaW4gU291cmNlcyAq
LywKKwkJCQk0MTMxQzRBNDIzNEM4MzRFMDAyOEE2MTUgLyogYnVmZmVyZWRfZnJhbWVfZGVjcnlw
dG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1NDgxRTZBNjFEMjAwOTRGREM4IC8qIGJ1
aWx0aW5fYXVkaW9fZGVjb2Rlcl9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMDkx
RkIxRUY4Q0ZGODAwNzU3QzU1IC8qIGJ1aWx0aW5fYXVkaW9fZW5jb2Rlcl9mYWN0b3J5LmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDFGQ0JCMUIyMUIxRjdDRDAwQTVERjI3IC8qIGJ1aWx0aW5fdmlk
ZW9fYml0cmF0ZV9hbGxvY2F0b3JfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFD
NEZFMjM0Qzg2Q0IwMDI4QTYxNSAvKiBzZXF1ZW5jZV9jaGVja2VyLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDFGMjYzNUYyMTI2N0FERjAwMjc0RjU5IC8qIGJ1aWx0aW5fdmlkZW9fZGVjb2Rlcl9m
YWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMDJDQzQyMTI3MzU4ODAwQzI3Q0Q2IC8q
IGJ1aWx0aW5fdmlkZW9fZW5jb2Rlcl9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEz
MUMxMjQyMzRCODlFMjAwMjhBNjE1IC8qIHBsYXRmb3JtX3RocmVhZC5jYyBpbiBTb3VyY2VzICov
LAotCQkJCTQxMzFDNTUyMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfdmlkZW9fcmVjZWl2
ZV9zdHJlYW1fY29uZmlnLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCNzQxRTQzQzJCNTAw
NjIxRTkyIC8qIGJ3X2V4cGFuZC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhGRDMxRTQzQ0Q2
NjAwNjIxRTkyIC8qIGJ3ZV9kZWZpbmVzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg5M0Ux
RTQzQkYzQTAwNjIxRTkyIC8qIGJ5ZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMDQ0MjM0
Qjg5OEQwMDI4QTYxNSAvKiBieXRlX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
NTM0MUU0M0IzOUMwMDYyMUU5MiAvKiBjYWxsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFENkI0
NTMyMTI3MzE1OTAwOEY5MzUzIC8qIGNhbGxfY29uZmlnLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDEzMUM0NzkyMzRDODFFQTAwMjhBNjE1IC8qIGNhbGxfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4NTEyMUU0M0IxRUEwMDYyMUU5MiAvKiBjYWxsX3N0YXRpc3RpY3MuY2MgaW4g
U291cmNlcyAqLywKLQkJCQk0MTMxQkYwOTIzNEI4ODIwMDAyOEE2MTUgLyogc2RwX3NlcmlhbGl6
ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODU5QzFFNDNCNUMwMDA2MjFFOTIgLyogY2Fs
bF9zdGF0cy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMkYyMjM0QjhEQzIwMDI4QTYxNSAv
KiBjYW5kaWRhdGUuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzNFQzIzNEM3QTQ5MDAyOEE2
MTUgLyogY2FzY2FkZWRfYmlxdWFkX2ZpbHRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
Qjc2MUU0M0MyQjUwMDYyMUU5MiAvKiBjYl9jb25zdHJ1Y3QuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4QjdDMUU0M0MyQjUwMDYyMUU5MiAvKiBjYl9tZW1fZW5lcmd5LmMgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REOEI3ODFFNDNDMkI1MDA2MjFFOTIgLyogY2JfbWVtX2VuZXJneV9hdWdtZW50
YXRpb24uYyBpbiBTb3VyY2VzICovLApAQCAtMTcwODAsMjEgKzE3MTUxLDIyIEBACiAJCQkJNUNE
RDhCODAxRTQzQzJCNTAwNjIxRTkyIC8qIGNiX3NlYXJjaC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNERDhCN0UxRTQzQzJCNTAwNjIxRTkyIC8qIGNiX3NlYXJjaF9jb3JlLmMgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REOEI4MjFFNDNDMkI1MDA2MjFFOTIgLyogY2JfdXBkYXRlX2Jlc3RfaW5kZXgu
YyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDdCMjM0Qjg5OEQwMDI4QTYxNSAvKiBjcml0aWNh
bF9zZWN0aW9uLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzQTcyMzRCOTZDMzAwMjhBNjE1
IC8qIGF1ZGlvX2ZyYW1lLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGMDAyMzRCODgyMDAw
MjhBNjE1IC8qIGNoYW5uZWwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEM2NDFFNDMxRjlD
MDAyNjUxQzggLyogY2hhbm5lbF9idWZmZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQkY1
NTIzNEI4ODIwMDAyOEE2MTUgLyogaWNlX3NlcnZlcl9wYXJzaW5nLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDhGODAxRTQzQ0JFMDAwNjIxRTkyIC8qIGNoYW5uZWxfY29udHJvbGxlci5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxMzFDM0FFMjM0Qjk2QzMwMDI4QTYxNSAvKiBjaGFubmVsX2xh
eW91dC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFCRjRGMjM0Qjg4MjAwMDI4QTYxNSAvKiBj
aGFubmVsX21hbmFnZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzQ0QzIzNEM4MERDMDAy
OEE2MTUgLyogY2hhbm5lbF9taXhlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDNDRFMjM0
QzgwREMwMDI4QTYxNSAvKiBjaGFubmVsX21peGluZ19tYXRyaXguY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MTc5NTNEODIxNjk4MzRGMDAyODI2NkIgLyogY2hhbm5lbF9yZWNlaXZlLmNjIGluIFNv
dXJjZXMgKi8sCi0JCQkJNDEzMUMxQzEyMzRCOEE0QTAwMjhBNjE1IC8qIHR1cm5fc2VydmVyLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3OTUzRDMyMTY5ODM0RjAwMjgyNjZCIC8qIGNoYW5uZWxf
c2VuZC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4Qjg0MUU0M0MyQjUwMDYyMUU5MiAvKiBj
aGVieXNoZXYuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMDJBMjM0Qjg5OEQwMDI4QTYxNSAv
KiBjaGVja3MuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODZBMTFFNDNCOTk0MDA2MjFFOTIg
LyogY2lyY3VsYXJfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwMjUyMzRCODk4
RDAwMjhBNjE1IC8qIGFzeW5jX3VkcF9zb2NrZXQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRC
NENDNjFFNDMyMEE5MDAyNjUxQzggLyogY2xvY2suY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QzEzRjIzNEI4OUUyMDAyOEE2MTUgLyogcGh5c2ljYWxfc29ja2V0X3NlcnZlci5jYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMzFDMzc4MjM0Qjk1N0QwMDI4QTYxNSAvKiBjbG9ja2RyaWZ0X2RldGVj
dG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGQ0JCNzUyMUIxRkZBNDAwQTVERjI3IC8qIGNv
Y29hX3RocmVhZGluZy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDNTMzMjM0QzhCMTkwMDI4
QTYxNSAvKiBydGNfZXZlbnRfcHJvYmVfY2x1c3Rlcl9jcmVhdGVkLmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDEzMUJGOEIyMzRCODhBNjAwMjhBNjE1IC8qIGNvZGVjLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDgzQzgxRTQzOUE2RjAwNjIxRTkyIC8qIGNvZGVjX3RpbWVyLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDEwMkY2REMyMTI3MzQxNjAwNkFFOEQ3IC8qIGNvbG9yX3NwYWNlLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBMEQxRTQzQkZCMzAwNjIxRTkyIC8qIGNvbWZvcnRfbm9p
c2UuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3MTAzLDQyICsxNzE3NSw0NCBAQAogCQkJCTVDREQ4
Qjg2MUU0M0MyQjUwMDYyMUU5MiAvKiBjb21wX2NvcnIuYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
RkQ1MzhEMUU0QkQzQTMwMDQ4MjkwOCAvKiBjb21wYXJlX25lb24uY2MgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0ZENTM4RTFFNEJEM0EzMDA0ODI5MDggLyogY29tcGFyZV9uZW9uNjQuY2MgaW4gU291
cmNlcyAqLywKLQkJCQk0MTMxQzE0MjIzNEI4OUUyMDAyOEE2MTUgLyogc3NsX2NlcnRpZmljYXRl
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2NDQxRTQzQjhCNTAwNjIxRTkyIC8qIGNvbXBs
ZXhfYml0X3JldmVyc2UuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NjQ3MUU0M0I4QjUwMDYy
MUU5MiAvKiBjb21wbGV4X2ZmdC5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGMTMyMzRCODgy
MDAwMjhBNjE1IC8qIGNvbXBvc2l0ZV9ydHBfdHJhbnNwb3J0LmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDg5NDQxRTQzQkYzQTAwNjIxRTkyIC8qIGNvbXBvdW5kX3BhY2tldC5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxNUYxRkFBMjEyNzJGQkEwMDA2NENCRiAvKiBjb21wdXRlX2ludGVycG9s
YXRlZF9nYWluX2N1cnZlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhGRUIxRTQzQ0RDQTAw
NjIxRTkyIC8qIGNvbmZpZy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMzQ0MjM0QjhEREYw
MDI4QTYxNSAvKiBydHBfc2VuZGVyX2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
RkNCQjQxMjFCMUZEQjgwMEE1REYyNyAvKiBjb25nZXN0aW9uX3dpbmRvd19wdXNoYmFja19jb250
cm9sbGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwNDYyMzRCODk4RDAwMjhBNjE1IC8q
IG51bGxfc29ja2V0X3NlcnZlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMUMwMjM0QjhB
NEEwMDI4QTYxNSAvKiBjb25uZWN0aW9uLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxRDIy
MzRCOEE0QjAwMjhBNjE1IC8qIGNvbm5lY3Rpb25faW5mby5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4QTkzMUU0M0MwMEYwMDYyMUU5MiAvKiBjb25zdGFudF9wY21fcGFja2V0X3NvdXJjZS5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4Qjg5MUU0M0MyQjUwMDYyMUU5MiAvKiBjb25zdGFu
dHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDJEMjM0Qjg5OEQwMDI4QTYxNSAvKiBjb3B5
X29uX3dyaXRlX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMjkxMjM0QjhDQzQw
MDI4QTYxNSAvKiBjb25zdGFudHMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUZDQkIzOTIxQjFG
OEZDMDBBNURGMjcgLyogY29udHJvbF9oYW5kbGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDhGODUxRTQzQ0JFMDAwNjIxRTkyIC8qIGNvbnRyb2xsZXIuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REOEY4MzFFNDNDQkUwMDA2MjFFOTIgLyogY29udHJvbGxlcl9tYW5hZ2VyLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEzMUMwMkQyMzRCODk4RDAwMjhBNjE1IC8qIGNvcHlfb25fd3JpdGVf
YnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2NDgxRTQzQjhCNTAwNjIxRTkyIC8q
IGNvcHlfc2V0X29wZXJhdGlvbnMuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0Q0NBMUU0MzIw
QTkwMDI2NTFDOCAvKiBjcHVfZmVhdHVyZXMuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQkYz
MDIzNEI4ODIwMDAyOEE2MTUgLyogbWVkaWFfc2Vzc2lvbi5jYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFDM0I2MjM0Qjk3MTIwMDI4QTYxNSAvKiBjcnlwdG9fb3B0aW9ucy5jYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxMzFDMTUxMjM0Qjg5RTIwMDI4QTYxNSAvKiB6ZXJvX21lbW9yeS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDNEI0Q0NCMUU0MzIwQTkwMDI2NTFDOCAvKiBjcHVfaW5mby5jYyBp
biBTb3VyY2VzICovLAotCQkJCTQxMzFDMUI1MjM0QjhBNEEwMDI4QTYxNSAvKiBwMnBfY29uc3Rh
bnRzLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMyQTEyMzRCOENDNDAwMjhBNjE1IC8qIGFk
bV9oZWxwZXJzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyM0UyMzRCOEJCMjAwMjhBNjE1
IC8qIGNwdV9zcGVlZF9leHBlcmltZW50LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMwMkMy
MzRCODk4RDAwMjhBNjE1IC8qIGNwdV90aW1lLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3
QjExRTQzQkMwNTAwNjIxRTkyIC8qIGNyYy5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMwM0Yy
MzRCODk4RDAwMjhBNjE1IC8qIGNyYzMyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCOEIx
RTQzQzJCNTAwNjIxRTkyIC8qIGNyZWF0ZV9hdWdtZW50ZWRfdmVjLmMgaW4gU291cmNlcyAqLywK
LQkJCQk0MTMxQzA1NDIzNEI4OThEMDAyOEE2MTUgLyogbmF0X3NvY2tldF9mYWN0b3J5LmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyRjAyMzRCOERDMjAwMjhBNjE1IC8qIGNyZWF0ZV9wZWVy
Y29ubmVjdGlvbl9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMwN0IyMzRCODk4
RDAwMjhBNjE1IC8qIGNyaXRpY2FsX3NlY3Rpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0RE
ODY0QjFFNDNCOEI1MDA2MjFFOTIgLyogY3Jvc3NfY29ycmVsYXRpb24uYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4QTBGMUU0M0JGQjMwMDYyMUU5MiAvKiBjcm9zc19jb3JyZWxhdGlvbi5jYyBp
biBTb3VyY2VzICovLAotCQkJCTQxMzFDMzIwMjM0QjhEQzIwMDI4QTYxNSAvKiBhdWRpb19vcHRp
b25zLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzODcyMzRCOTU3RDAwMjhBNjE1IC8qIG1v
dmluZ19hdmVyYWdlLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMwMzMyMzRCODk4RDAwMjhB
NjE1IC8qIGNyeXB0X3N0cmluZy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDM0I2MjM0Qjk3
MTIwMDI4QTYxNSAvKiBjcnlwdG9fb3B0aW9ucy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFC
RjI2MjM0Qjg4MjAwMDI4QTYxNSAvKiBkYXRhX2NoYW5uZWwuY2MgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTMxQzMxMTIzNEI4REMyMDAyOEE2MTUgLyogZGF0YV9jaGFubmVsX2ludGVyZmFjZS5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxMzFDMzFFMjM0QjhEQzIwMDI4QTYxNSAvKiBkYXRhX2NoYW5u
ZWxfdHJhbnNwb3J0X2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MUUxMjEy
NzVBMzAwMDYzNEZDRiAvKiBkYXRhX3JhdGUuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzAy
NDIzNEI4OThEMDAyOEE2MTUgLyogZGF0YV9yYXRlX2xpbWl0ZXIuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MTkyNDFERjIxMjc1QTMwMDA2MzRGQ0YgLyogZGF0YV9zaXplLmNjIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDEzMUMwNDkyMzRCODk4RDAwMjhBNjE1IC8qIGFzeW5jX2ludm9rZXIuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTkyNDFDMTIxMjc1OTNGMDA2MzRGQ0YgLyogZGF0YV90cmFuc2Zl
cl90cmFja2VyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGMzMyMzRCODgyMDAwMjhBNjE1
IC8qIHJ0Y19zdGF0c190cmF2ZXJzYWwuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzRBMDIz
NEM4MzRFMDAyOEE2MTUgLyogZW5jb2Rlcl9vdmVyc2hvb3RfZGV0ZWN0b3IuY2MgaW4gU291cmNl
cyAqLywKKwkJCQk0MTMxQkVGODIzNEI4ODIwMDAyOEE2MTUgLyogZGF0YWdyYW1fcnRwX3RyYW5z
cG9ydC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4Rjg3MUU0M0NCRTAwMDYyMUU5MiAvKiBk
ZWJ1Z19kdW1wX3dyaXRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4M0Y5MUZFMjQ4RjEw
MDQwQzMwRiAvKiBkZWNpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEExNjFFNDNC
RkIzMDA2MjFFOTIgLyogZGVjaXNpb25fbG9naWMuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3MTQ5
LDE5ICsxNzIyMywxOCBAQAogCQkJCTVDREQ4N0IzMUU0M0JDMDUwMDYyMUU5MiAvKiBkZWNvZGVf
YndlLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0QwRTFGNzlCMzM0MDAzODdCNEQgLyogZGVj
b2RlX3BsYy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCOEQxRTQzQzJCNTAwNjIxRTkyIC8q
IGRlY29kZV9yZXNpZHVhbC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJFRjYyMzRCODgyMDAw
MjhBNjE1IC8qIGF1ZGlvX3J0cF9yZWNlaXZlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFD
NDQzMjM0QzgwQUIwMDI4QTYxNSAvKiBkZWNvZGVkX2ZyYW1lc19oaXN0b3J5LmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDFFMDJDOEIyMTI3MzRCOTAwQzI3Q0Q2IC8qIGRlY29kZXJfZGF0YWJhc2Uu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEExOTFFNDNCRkIzMDA2MjFFOTIgLyogZGVjb2Rl
cl9kYXRhYmFzZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QjkxMUU0M0MyQjUwMDYyMUU5
MiAvKiBkZWNvZGVyX2ludGVycG9sYXRlX2xzZi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgz
Q0ExRTQzOUE2RjAwNjIxRTkyIC8qIGRlY29kaW5nX3N0YXRlLmNjIGluIFNvdXJjZXMgKi8sCi0J
CQkJNDEzMUM1NTgyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9hdWRpb19yZWNlaXZlX3N0
cmVhbV9jb25maWcuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODQ5NzFFNkE1RjQxMDA5NEZE
QzggLyogZGVmYXVsdF9vdXRwdXRfcmF0ZV9jYWxjdWxhdG9yLmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDEzMUM0RTAyMzRDODRERDAwMjhBNjE1IC8qIGRlZmF1bHRfdGFza19xdWV1ZV9mYWN0b3J5
X3N0ZGxpYi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxQzYyOTM2MjEyRTJFRTUwMDIzMTNENCAv
KiBkZWZhdWx0X3RlbXBvcmFsX2xheWVycy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NTM5
MUU2QTYxOTgwMDk0RkRDOCAvKiBkZWZhdWx0X3ZpZGVvX2JpdHJhdGVfYWxsb2NhdG9yLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDEwMkY2QkIyMTI3MzM4MjAwNkFFOEQ3IC8qIGRlZ3JhZGVkX2Nh
bGwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUUwMkNBNTIxMjczNTJEMDBDMjdDRDYgLyogZGVs
YXlfYmFzZWRfYndlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2OEQxRTQzQjkzOTAwNjIx
RTkyIC8qIGRlbGF5X2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRUY1MjM0
Qjg4MjAwMDI4QTYxNSAvKiB2aWRlb190cmFja19zb3VyY2UuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REODY4QjFFNDNCOTM5MDA2MjFFOTIgLyogZGVsYXlfZXN0aW1hdG9yX3dyYXBwZXIuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEExRDFFNDNCRkIzMDA2MjFFOTIgLyogZGVsYXlfbWFu
YWdlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTIwMUU0M0JGQjMwMDYyMUU5MiAvKiBk
ZWxheV9wZWFrX2RldGVjdG9yLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xNzE3MSwzMSArMTcyNDQs
MzEgQEAKIAkJCQk1Q0REOEI5NDFFNDNDMkI1MDA2MjFFOTIgLyogZG9fcGxjLmMgaW4gU291cmNl
cyAqLywKIAkJCQk0MTI0NTU0NTFFRjg3QzBGMDBGMTE4MDkgLyogZG90X3Byb2R1Y3Rfd2l0aF9z
Y2FsZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNUYxRkFDMjEyNzJGQkEwMDA2NENCRiAvKiBk
b3duX3NhbXBsZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzE0QjIzNEI4OUUyMDAyOEE2
MTUgLyogb3BlbnNzbF9hZGFwdGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwNDIyMzRC
ODk4RDAwMjhBNjE1IC8qIGJ1ZmZlcl9xdWV1ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
NjUwMUU0M0I4QjUwMDYyMUU5MiAvKiBkb3duc2FtcGxlX2Zhc3QuYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxNDVFNEQ2MUVGOENDNzYwMEZDRjZFNiAvKiBkb3duc2FtcGxlZF9yZW5kZXJfYnVmZmVy
LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0QzEyMzRDODQyNDAwMjhBNjE1IC8qIHBhY2lu
Z19jb250cm9sbGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBMjMxRTQzQkZCMzAwNjIx
RTkyIC8qIGRzcF9oZWxwZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkYzRjIzNEI4ODIw
MDAyOEE2MTUgLyogZHRsc19zcnRwX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQx
MzFCRjBGMjM0Qjg4MjAwMDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxMzFDMUYyMjM0QjhBNEIwMDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydC5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDMzAwMjM0QjhEQzIwMDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9y
dF9pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzFDMjIzNEI4QTRBMDAyOEE2
MTUgLyogZHRsc190cmFuc3BvcnRfaW50ZXJuYWwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0RE
OEEyNjFFNDNCRkIzMDA2MjFFOTIgLyogZHRtZl9idWZmZXIuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REODg3NzFFNDNCRTNDMDA2MjFFOTIgLyogZHRtZl9xdWV1ZS5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxMzFCRjUxMjM0Qjg4MjAwMDI4QTYxNSAvKiBkdG1mX3NlbmRlci5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4QTI5MUU0M0JGQjMwMDYyMUU5MiAvKiBkdG1mX3RvbmVfZ2VuZXJh
dG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhGOEExRTQzQ0JFMDAwNjIxRTkyIC8qIGR0
eF9jb250cm9sbGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzMDcyMzRCOERDMjAwMjhB
NjE1IC8qIHByb3h5LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMzODUyMzRCOTU3RDAwMjhB
NjE1IC8qIGVjaG9fYXVkaWJpbGl0eS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NkMxMUU0
M0I5QzIwMDYyMUU5MiAvKiBlY2hvX2NhbmNlbGxhdGlvbi5jYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFDMzBDMjM0QjhEQzIwMDI4QTYxNSAvKiBqc2VwLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNERDg0QUUxRTQzQUYxMzAwNjIxRTkyIC8qIGVjaG9fY2FuY2VsbGF0aW9uX2ltcGwuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0QyODVCODFFNkE2MzQzMDA5NEZEQzggLyogZWNob19jYW5jZWxs
ZXIzLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzOTAyMzRCOTU3RDAwMjhBNjE1IC8qIHJl
dmVyYl9tb2RlbC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRjhGMjM0Qjg4QTYwMDI4QTYx
NSAvKiB2aWRlb19zb3VyY2VfYmFzZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDM0E5MjM0
Qjk2QzMwMDI4QTYxNSAvKiBlY2hvX2NhbmNlbGxlcjNfY29uZmlnLmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDEzMUMzQTUyMzRCOTZDMzAwMjhBNjE1IC8qIGVjaG9fY2FuY2VsbGVyM19mYWN0b3J5
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg1RUExRTQzQjgxMDAwNjIxRTkyIC8qIGVjaG9f
Y29udHJvbF9tb2JpbGUuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzJGOTIzNEI4REMyMDAy
OEE2MTUgLyogcnRjX2V2ZW50X2xvZ19vdXRwdXRfZmlsZS5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4NEIwMUU0M0FGMTMwMDYyMUU5MiAvKiBlY2hvX2NvbnRyb2xfbW9iaWxlX2ltcGwuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVCQTFFNkE2MzQzMDA5NEZEQzggLyogZWNob19wYXRo
X2RlbGF5X2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUJDMUU2QTYzNDMw
MDk0RkRDOCAvKiBlY2hvX3BhdGhfdmFyaWFiaWxpdHkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0QyODVDMDFFNkE2MzQzMDA5NEZEQzggLyogZWNob19yZW1vdmVyLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNEMjg1QkUxRTZBNjM0MzAwOTRGREM4IC8qIGVjaG9fcmVtb3Zlcl9tZXRyaWNzLmNj
IGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGOUMyMzRCODhBNjAwMjhBNjE1IC8qIHJ0cF9kYXRh
X2VuZ2luZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4Qjk2MUU0M0MyQjUwMDYyMUU5MiAv
KiBlbmNvZGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4N0I3MUU0M0JDMDUwMDYyMUU5MiAv
KiBlbmNvZGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzRDEyMUY3OUIzMzQwMDM4N0I0RCAv
KiBlbmNvZGUuYyBpbiBTb3VyY2VzICovLApAQCAtMTcyMDQsNTIgKzE3Mjc3LDU3IEBACiAJCQkJ
NUNERDgzQ0MxRTQzOUE2RjAwNjIxRTkyIC8qIGVuY29kZWRfZnJhbWUuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MUEwOEJBQjIxMjY4MUM4MDAxRDVEN0IgLyogZW5jb2RlZF9mcmFtZS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxRkNCQjFEMjFCMUY3Q0QwMEE1REYyNyAvKiBlbmNvZGVkX2ltYWdl
LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM1MzQyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19l
dmVudF9id2VfdXBkYXRlX2xvc3NfYmFzZWQuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzRB
NjIzNEM4MzRFMDAyOEE2MTUgLyogZW5jb2Rlcl9iaXRyYXRlX2FkanVzdGVyLmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEzMUM0QTAyMzRDODM0RTAwMjhBNjE1IC8qIGVuY29kZXJfb3ZlcnNob290
X2RldGVjdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg1OUYxRTQzQjVDMDAwNjIxRTky
IC8qIGVuY29kZXJfcnRjcF9mZWVkYmFjay5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMUFE
MjM0QjhBNEEwMDI4QTYxNSAvKiB0cmFuc3BvcnRfZGVzY3JpcHRpb25fZmFjdG9yeS5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDMjlBMjM0QjhDQzQwMDI4QTYxNSAvKiBlbmNvZGVyX3NpbXVs
Y2FzdF9wcm94eS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NjUxMUU0M0I4QjUwMDYyMUU5
MiAvKiBlbmVyZ3kuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4Qjk4MUU0M0MyQjUwMDYyMUU5
MiAvKiBlbmVyZ3lfaW52ZXJzZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCOUExRTQzQzJC
NTAwNjIxRTkyIC8qIGVuaF91cHNhbXBsZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMyM0Qy
MzRCOEJCMjAwMjhBNjE1IC8qIHN0YWJsZV90YXJnZXRfcmF0ZV9leHBlcmltZW50LmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDhCOUUxRTQzQzJCNTAwNjIxRTkyIC8qIGVuaGFuY2VyLmMgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0REOEI5QzFFNDNDMkI1MDA2MjFFOTIgLyogZW5oYW5jZXJfaW50
ZXJmYWNlLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODdCODFFNDNCQzA1MDA2MjFFOTIgLyog
ZW50cm9weV9jb2RpbmcuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzRDE1MUY3OUIzMzQwMDM4
N0I0RCAvKiBlbnRyb3B5X2NvZGluZy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1QzIxRTZB
NjM0MzAwOTRGREM4IC8qIGVybF9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0Qy
ODVDNDFFNkE2MzQzMDA5NEZEQzggLyogZXJsZV9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywK
LQkJCQk0MTMxQzU0MDIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2J3ZV91cGRhdGVfZGVs
YXlfYmFzZWQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNENEMjFFNDMyMEE5MDAyNjUxQzgg
LyogZXZlbnQuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzIyODIzNEI4QkIyMDAyOEE2MTUg
LyogZmllbGRfdHJpYWxfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMyMzkyMzRC
OEJCMjAwMjhBNjE1IC8qIHF1YWxpdHlfc2NhbGluZ19leHBlcmltZW50LmNjIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDEzMUMwNEQyMzRCODk4RDAwMjhBNjE1IC8qIG1lbW9yeV9zdHJlYW0uY2MgaW4g
U291cmNlcyAqLywKLQkJCQk0MTMxQzMxQTIzNEI4REMyMDAyOEE2MTUgLyogaWNlX3RyYW5zcG9y
dF9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzMTUyMzRCOERDMjAwMjhBNjE1
IC8qIG1lZGlhX3N0cmVhbV9pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzA0
QTIzNEI4OThEMDAyOEE2MTUgLyogZXZlbnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODYx
NDFFNkE2NjEzMDA5NEZEQzggLyogZXZlbnRfbG9nX3dyaXRlci5jYyBpbiBTb3VyY2VzICovLAor
CQkJCTQxMzFDMDM5MjM0Qjg5OEQwMDI4QTYxNSAvKiBldmVudF90cmFjZXIuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTlDODM0RjFGRTI0NjY1MDA0MEMzMEYgLyogZXhwX2ZpbHRlci5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDREQ4QTJDMUU0M0JGQjMwMDYyMUU5MiAvKiBleHBhbmQuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTAyRjZBRTIxMjczMkU3MDA2QUU4RDcgLyogZXhwYW5kX3VtYV9s
b2dnZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzM4RTIzNEI5NTdEMDAyOEE2MTUgLyog
YmxvY2tfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyMzcyMzRCOEJCMjAwMjhB
NjE1IC8qIGV4cGVyaW1lbnRhbF9zY3JlZW5zaGFyZV9zZXR0aW5ncy5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4OTRBMUU0M0JGM0EwMDYyMUU5MiAvKiBleHRlbmRlZF9qaXR0ZXJfcmVwb3J0
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg5NEQxRTQzQkYzQTAwNjIxRTkyIC8qIGV4dGVu
ZGVkX3JlcG9ydHMuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkY2MzIzNEI4ODIwMDAyOEE2
MTUgLyogZXh0ZXJuYWxfaG1hYy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMDYwMjM0Qjg5
OEQwMDI4QTYxNSAvKiBmYWtlX2Nsb2NrLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBOTcx
RTQzQzAwRjAwNjIxRTkyIC8qIGZha2VfZGVjb2RlX2Zyb21fZmlsZS5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxMzFDNTYwMjM0QzhCNzIwMDI4QTYxNSAvKiBmYWtlX25ldHdvcmtfcGlwZS5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxMzFDMDdEMjM0Qjg5OEQwMDI4QTYxNSAvKiBmYWtlX3NzbF9p
ZGVudGl0eS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MTNBMjEyNzM3MjQwMDYzNEZDRiAv
KiBmZWF0dXJlc19leHRyYWN0aW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMDJDOEEyMTI3
MzRCOTAwQzI3Q0Q2IC8qIGZlY19jb250cm9sbGVyX2RlZmF1bHQuY2MgaW4gU291cmNlcyAqLywK
LQkJCQk0MTMxQzAzMzIzNEI4OThEMDAyOEE2MTUgLyogY3J5cHRfc3RyaW5nLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDE5QzgzMEMxRkUyMEYzQzAwNDBDMzBGIC8qIGZlY19jb250cm9sbGVyX3Jw
bHJfYmFzZWQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDE5MDIxMjc1ODEwMDA2MzRGQ0Yg
LyogZmVjX3ByaXZhdGVfdGFibGVzX2J1cnN0eS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0
MUQzMjEyNzU5QTEwMDYzNEZDRiAvKiBmZWNfcHJpdmF0ZV90YWJsZXNfcmFuZG9tLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDg4N0IxRTQzQkUzQzAwNjIxRTkyIC8qIGZlY190ZXN0X2hlbHBl
ci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRjI2MzhBMjEyNjdGNDAwMDI3NEY1OSAvKiBmZnQu
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzQ0VBMUY3OUIzMzQwMDM4N0I0RCAvKiBmZnQuYyBp
biBTb3VyY2VzICovLAotCQkJCTQxMzFDNDhCMjM0QzgyOUUwMDI4QTYxNSAvKiBnYWluX2NvbnRy
b2xfY29uZmlnX3Byb3h5LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGNDgyMzRCODgyMDAw
MjhBNjE1IC8qIHNpbXVsY2FzdF9kZXNjcmlwdGlvbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
RjI2MzZFMjEyNjdCM0UwMDI3NEY1OSAvKiBmZnQ0Zy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFG
OUJGRDcyMDUxRERFNTAwQUJGMEI5IC8qIGZmdF9idWZmZXIuY2MgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTMxQzQzRTIzNEM4MDA3MDAyOEE2MTUgLyogZmZ0cGFjay5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDE3OTUzREMyMTY5ODM5MTAwMjgyNjZCIC8qIGZpZWxkX3RyaWFsLmNjIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDEzMUM0OTAyMzRDODJFRTAwMjhBNjE1IC8qIGZpZWxkX3RyaWFsX2Jhc2VkX2Nv
bmZpZy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMjMxMjM0QjhCQjIwMDI4QTYxNSAvKiBm
aWVsZF90cmlhbF9saXN0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyMjgyMzRCOEJCMjAw
MjhBNjE1IC8qIGZpZWxkX3RyaWFsX3BhcnNlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFD
MjJCMjM0QjhCQjIwMDI4QTYxNSAvKiBmaWVsZF90cmlhbF91bml0cy5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxMzFDNDI2MjM0QzdEMjUwMDI4QTYxNSAvKiBmaWZvX2J1ZmZlci5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDMTFBMDIxMUU0NTc1NzgwMDRGMDk4NyAvKiBmaWxlX2F1ZGlvX2Rldmlj
ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDMTFBMDFGMUU0NTc1NzgwMDRGMDk4NyAvKiBmaWxl
X2F1ZGlvX2RldmljZV9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMwNDEyMzRC
ODk4RDAwMjhBNjE1IC8qIGZpbGVfcm90YXRpbmdfc3RyZWFtLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDhDOEIxRTQzQzY2MDAwNjIxRTkyIC8qIGZpbGVfdXRpbHMuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MUYyNjNBQzIxMjY4MEE4MDAyNzRGNTkgLyogZmlsZV93cmFwcGVyLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEzMUMzOEYyMzRCOTU3RDAwMjhBNjE1IC8qIGZpbHRlcl9hbmFseXpl
ci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NjU1MUU0M0I4QjUwMDYyMUU5MiAvKiBmaWx0
ZXJfYXIuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NjU0MUU0M0I4QjUwMDYyMUU5MiAvKiBm
aWx0ZXJfYXJfZmFzdF9xMTIuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4N0JDMUU0M0JDMDUw
MDYyMUU5MiAvKiBmaWx0ZXJfZnVuY3Rpb25zLmMgaW4gU291cmNlcyAqLywKQEAgLTE3MjY0LDE1
NiArMTczNDIsMTQ4IEBACiAJCQkJNDE5QzgzMUIxRkUyNDJCMjAwNDBDMzBGIC8qIGZpcl9maWx0
ZXJfYy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4MzFEMUZFMjQyQjIwMDQwQzMwRiAvKiBm
aXJfZmlsdGVyX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEM2QTFFNDMxRjlD
MDAyNjUxQzggLyogZmlyX2ZpbHRlcl9zc2UuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzJG
MDIzNEI4REMyMDAyOEE2MTUgLyogY3JlYXRlX3BlZXJjb25uZWN0aW9uX2ZhY3RvcnkuY2MgaW4g
U291cmNlcyAqLywKKwkJCQk0MTMxQzA4MjIzNEI4OThEMDAyOEE2MTUgLyogZmlyZXdhbGxfc29j
a2V0X3NlcnZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNUYxRkFEMjEyNzJGQkEwMDA2NENC
RiAvKiBmaXhlZF9kaWdpdGFsX2xldmVsX2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4ODdFMUU0M0JFM0MwMDYyMUU5MiAvKiBmbGV4ZmVjX2hlYWRlcl9yZWFkZXJfd3JpdGVy
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEwMkY2QkMyMTI3MzM4MjAwNkFFOEQ3IC8qIGZsZXhm
ZWNfcmVjZWl2ZV9zdHJlYW0uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODRCOTFFNkE1RjlG
MDA5NEZEQzggLyogZmxleGZlY19yZWNlaXZlX3N0cmVhbV9pbXBsLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDg4ODMxRTQzQkUzQzAwNjIxRTkyIC8qIGZsZXhmZWNfcmVjZWl2ZXIuY2MgaW4g
U291cmNlcyAqLywKLQkJCQk0MTMxQzA3NDIzNEI4OThEMDAyOEE2MTUgLyogbWVzc2FnZV9xdWV1
ZS5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDNTVCMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNf
ZXZlbnRfYWxyX3N0YXRlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4ODUxRTQzQkUzQzAw
NjIxRTkyIC8qIGZsZXhmZWNfc2VuZGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4ODgx
RTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3JfY29ycmVjdGlvbi5jYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxMzFDMUQwMjM0QjhBNEIwMDI4QTYxNSAvKiBub19vcF9kdGxzX3RyYW5zcG9y
dC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDNDQzMjM0QzgwQUIwMDI4QTYxNSAvKiBkZWNv
ZGVkX2ZyYW1lc19oaXN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0RDUyMzRDODRB
MzAwMjhBNjE1IC8qIHJ0cF9kZXBlbmRlbmN5X2Rlc2NyaXB0b3JfZXh0ZW5zaW9uLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDg4ODYxRTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3Jf
Y29ycmVjdGlvbl9pbnRlcm5hbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUM5MUU2QTYz
NDMwMDk0RkRDOCAvKiBmcmFtZV9ibG9ja2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgz
Q0YxRTQzOUE2RjAwNjIxRTkyIC8qIGZyYW1lX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4M0QxMUU0MzlBNkYwMDYyMUU5MiAvKiBmcmFtZV9idWZmZXIyLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDhCQTIxRTQzQzJCNTAwNjIxRTkyIC8qIGZyYW1lX2NsYXNzaWZ5LmMgaW4g
U291cmNlcyAqLywKLQkJCQk0MTMxQzQ4NDIzNEM4Mjc0MDAyOEE2MTUgLyogdGFza19xdWV1ZV9i
YXNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg0OUExRTZBNUY0MTAwOTRGREM4IC8qIGZy
YW1lX2NvbWJpbmVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwRkEyMzRCODlFMjAwMjhB
NjE1IC8qIG9wZW5zc2xfc3RyZWFtX2FkYXB0ZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QkY0QTIzNEI4ODIwMDAyOEE2MTUgLyogbG9jYWxfYXVkaW9fc291cmNlLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDgzNzkxRTQzOUEzNTAwNjIxRTkyIC8qIGZyYW1lX2Ryb3BwZXIuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MUZDQkI1OTIxQjFGRTZFMDBBNURGMjcgLyogZnJhbWVfZHVtcGlu
Z19kZWNvZGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwODIyMzRCODk4RDAwMjhBNjE1
IC8qIGZpcmV3YWxsX3NvY2tldF9zZXJ2ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzQ5
RTIzNEM4MzRFMDAyOEE2MTUgLyogZnJhbWVfZW5jb2RlX21ldGFkYXRhX3dyaXRlci5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDREQ4RjkwMUU0M0NCRTAwMDYyMUU5MiAvKiBmcmFtZV9sZW5ndGhf
Y29udHJvbGxlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4M0QzMUU0MzlBNkYwMDYyMUU5
MiAvKiBmcmFtZV9vYmplY3QuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzQzMjIzNEM3RDk2
MDAyOEE2MTUgLyogZnJhbWVfcmF0ZV9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0
MTMxQzQ0NjIzNEM4MEFCMDAyOEE2MTUgLyogZnJhbWVyYXRlX2NvbnRyb2xsZXIuY2MgaW4gU291
cmNlcyAqLywKKwkJCQk0MTMxQzM5OTIzNEI5NTdEMDAyOEE2MTUgLyogZnVsbGJhbmRfZXJsZV9l
c3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUYyNjM4RDIxMjY3RjQ5MDAyNzRGNTkg
LyogZzcxMS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMxQkYyMzRCOEE0QTAwMjhBNjE1IC8q
IGljZV90cmFuc3BvcnRfaW50ZXJuYWwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQwQjgyNDFF
NEUzMzgzMDA3NDA5RTYgLyogZzcxMV9pbnRlcmZhY2UuYyBpbiBTb3VyY2VzICovLAotCQkJCTQx
MzFDMjlBMjM0QjhDQzQwMDI4QTYxNSAvKiBlbmNvZGVyX3NpbXVsY2FzdF9wcm94eS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxRjI2Mzk0MjEyNjdGNTMwMDI3NEY1OSAvKiBnNzIyX2RlY29kZS5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMjYzOTIyMTI2N0Y1MzAwMjc0RjU5IC8qIGc3MjJfZW5j
b2RlLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTQwQjgzODFFNEUzMzk2MDA3NDA5RTYgLyogZzcy
Ml9pbnRlcmZhY2UuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNUYxRkFGMjEyNzJGQkEwMDA2NENC
RiAvKiBnYWluX2FwcGxpZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzM0MjIzNEI4RERG
MDAyOEE2MTUgLyogc3RhdHNfdHlwZXMuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzQ4QjIz
NEM4MjlFMDAyOEE2MTUgLyogZ2Fpbl9jb250cm9sX2NvbmZpZ19wcm94eS5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4NEIyMUU0M0FGMTMwMDYyMUU5MiAvKiBnYWluX2NvbnRyb2xfZm9yX2V4
cGVyaW1lbnRhbF9hZ2MuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODRCNDFFNDNBRjEzMDA2
MjFFOTIgLyogZ2Fpbl9jb250cm9sX2ltcGwuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzFD
ODIzNEI4QTRBMDAyOEE2MTUgLyogc3R1bl9yZXF1ZXN0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDFBMDhCRDAyMTI3MkVFMjAwMUQ1RDdCIC8qIGdhaW5fY29udHJvbGxlcjIuY2MgaW4gU291cmNl
cyAqLywKLQkJCQk0MTMxQzNFNzIzNEM3QTA4MDAyOEE2MTUgLyogbG9nZ2VkX2V2ZW50cy5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4QkE0MUU0M0MyQjUwMDYyMUU5MiAvKiBnYWluX2RlcXVh
bnQuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDM0U2MjM0QzdBMDgwMDI4QTYxNSAvKiBpY2Vf
bG9nZ2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCQTYxRTQzQzJCNTAwNjIxRTkyIC8q
IGdhaW5fcXVhbnQuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDRBMjM0Qjg5OEQwMDI4QTYx
NSAvKiBldmVudC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMTNDMjM0Qjg5RTIwMDI4QTYx
NSAvKiBzb2NrZXQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODNENTFFNDM5QTZGMDA2MjFF
OTIgLyogZ2VuZXJpY19kZWNvZGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM0MkQyMzRD
N0Q4QTAwMjhBNjE1IC8qIGdlbmVyaWNfZnJhbWVfaW5mby5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4QkE4MUU0M0MyQjUwMDYyMUU5MiAvKiBnZXRfY2RfdmVjLmMgaW4gU291cmNlcyAqLywK
LQkJCQk0MTMxQzFDNTIzNEI4QTRBMDAyOEE2MTUgLyogYmFzaWNfYXN5bmNfcmVzb2x2ZXJfZmFj
dG9yeS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NjU3MUU0M0I4QjUwMDYyMUU5MiAvKiBn
ZXRfaGFubmluZ193aW5kb3cuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkFBMUU0M0MyQjUw
MDYyMUU5MiAvKiBnZXRfbHNwX3BvbHkuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NjU4MUU0
M0I4QjUwMDYyMUU5MiAvKiBnZXRfc2NhbGluZ19zcXVhcmUuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4QkFDMUU0M0MyQjUwMDYyMUU5MiAvKiBnZXRfc3luY19zZXEuYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4NzI5MUU0M0JBQkUwMDYyMUU5MiAvKiBnbW0uY2MgaW4gU291cmNlcyAqLywK
LQkJCQk0MTMxQkYwRTIzNEI4ODIwMDAyOEE2MTUgLyogaWNlX3RyYW5zcG9ydC5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxRkNCQjYwMjFCMUZFQzQwMEE1REYyNyAvKiBnb29nX2NjX2ZhY3Rvcnku
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUUwMkNCNjIxMjczNTJEMDBDMjdDRDYgLyogZ29vZ19j
Y19uZXR3b3JrX2NvbnRyb2wuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODU1ODFFNDNCNDJC
MDA2MjFFOTIgLyogaDI2NC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4MzU0MUU0MzI1NzIw
MDYyMUU5MiAvKiBoMjY0X2JpdHN0cmVhbV9wYXJzZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0
MTMxQzExRDIzNEI4OUUyMDAyOEE2MTUgLyogc3NsX2lkZW50aXR5LmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDgzNTYxRTQzMjU3MjAwNjIxRTkyIC8qIGgyNjRfY29tbW9uLmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEzMUJGOTgyMzRCODhBNjAwMjhBNjE1IC8qIGgyNjRfcHJvZmlsZV9sZXZl
bF9pZC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUVBMUU2QTYzOUYwMDk0RkRDOCAvKiBo
MjY0X3Nwcm9wX3BhcmFtZXRlcl9zZXRzLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwNjgy
MzRCODk4RDAwMjhBNjE1IC8qIGhlbHBlcnMuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzJF
RjIzNEI4REMyMDAyOEE2MTUgLyogcnRjX2Vycm9yLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEz
MUJGNEYyMzRCODgyMDAwMjhBNjE1IC8qIGNoYW5uZWxfbWFuYWdlci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4M0Q5MUU0MzlBNkYwMDYyMUU5MiAvKiBoMjY0X3Nwc19wcHNfdHJhY2tlci5j
YyBpbiBTb3VyY2VzICovLAorCQkJCTQxNzdGNEVFMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X2Nv
bW1vbi5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxNzdGNEVGMjM4MEU3RDcwMEMwNDQ4NiAvKiBo
MjY1X3Bwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTc3RjRGQzIzODBFODAwMDBD
MDQ0ODYgLyogaDI2NV9zcHNfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE3N0Y0RjUy
MzgwRTdENzAwQzA0NDg2IC8qIGgyNjVfc3BzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxNzdGNEYxMjM4MEU3RDcwMEMwNDQ4NiAvKiBoMjY1X3Zwc19wYXJzZXIuY2MgaW4gU291cmNl
cyAqLywKKwkJCQk0MTc3RjUwMDIzODBFODFGMDBDMDQ0ODYgLyogaDI2NV92cHNfc3BzX3Bwc190
cmFja2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGQ0JCNzEyMUIxRkY3NDAwQTVERjI3IC8q
IGhkcl9tZXRhZGF0YS5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRjJEMjM0Qjg4MjAwMDI4
QTYxNSAvKiBydGNfc3RhdHNfY29sbGVjdG9yLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMw
NjgyMzRCODk4RDAwMjhBNjE1IC8qIGhlbHBlcnMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTc5
NTNCQzIxNjk4MjRCMDAyODI2NkIgLyogaGVscGVycy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQx
MzFDNDAxMjM0QzdCMzUwMDI4QTYxNSAvKiBoaWdoX3Bhc3NfZmlsdGVyLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDgzREIxRTQzOUE2RjAwNjIxRTkyIC8qIGhpc3RvZ3JhbS5jYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMzFDNEY2MjM0Qzg2N0IwMDI4QTYxNSAvKiBoaXN0b2dyYW0uY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTlDODM1MTFGRTI0NjY1MDA0MEMzMEYgLyogaGlzdG9ncmFtX3Bl
cmNlbnRpbGVfY291bnRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkFFMUU0M0MyQjUw
MDYyMUU5MiAvKiBocF9pbnB1dC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCQjAxRTQzQzJC
NTAwNjIxRTkyIC8qIGhwX291dHB1dC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwNDcyMzRC
ODk4RDAwMjhBNjE1IC8qIGlmYWRkcnNfYW5kcm9pZC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQx
MzFDMDcxMjM0Qjg5OEQwMDI4QTYxNSAvKiBodHRwX2NvbW1vbi5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxMDJGNkUwMjEyNzM0MTYwMDZBRThENyAvKiBpMDEwX2J1ZmZlci5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDRDI4NDY3MUU2QTU3RjQwMDk0RkRDOCAvKiBpNDIwX2J1ZmZlci5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDNEI0QzFCMUU0MzFGNzUwMDI2NTFDOCAvKiBpNDIwX2J1ZmZlcl9w
b29sLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNUNERDhCQjMxRTQzQzJCNTAwNjIxRTkyIC8qIGls
YmMuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMUYxMjM0QjhBNEIwMDI4QTYxNSAvKiBpY2Vf
Y3JlZGVudGlhbHNfaXRlcmF0b3IuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzNFNjIzNEM3
QTA4MDAyOEE2MTUgLyogaWNlX2xvZ2dlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFCRjU1
MjM0Qjg4MjAwMDI4QTYxNSAvKiBpY2Vfc2VydmVyX3BhcnNpbmcuY2MgaW4gU291cmNlcyAqLywK
KwkJCQk0MTMxQkYwRTIzNEI4ODIwMDAyOEE2MTUgLyogaWNlX3RyYW5zcG9ydC5jYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMzFDMzFBMjM0QjhEQzIwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0X2Zh
Y3RvcnkuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzFCRjIzNEI4QTRBMDAyOEE2MTUgLyog
aWNlX3RyYW5zcG9ydF9pbnRlcm5hbC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMDQ3MjM0
Qjg5OEQwMDI4QTYxNSAvKiBpZmFkZHJzX2FuZHJvaWQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0
MTMxQzA1QzIzNEI4OThEMDAyOEE2MTUgLyogaWZhZGRyc19jb252ZXJ0ZXIuY2MgaW4gU291cmNl
cyAqLywKKwkJCQk1Q0REOEJCMzFFNDNDMkI1MDA2MjFFOTIgLyogaWxiYy5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDg2NTkxRTQzQjhCNTAwNjIxRTkyIC8qIGlsYmNfc3BlY2lmaWNfZnVuY3Rp
b25zLmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzEwRDIzNEI4OUUyMDAyOEE2MTUgLyogc29j
a2V0X2FkZHJlc3MuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEMxQzFFNDMxRjc1MDAyNjUx
QzggLyogaW5jb21pbmdfdmlkZW9fc3RyZWFtLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMy
MzQyMzRCOEJCMjAwMjhBNjE1IC8qIHJhdGVfY29udHJvbF9zZXR0aW5ncy5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4QkI1MUU0M0MyQjUwMDYyMUU5MiAvKiBpbmRleF9jb252X2RlYy5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwN0QyMzRCODk4RDAwMjhBNjE1IC8qIGZha2Vfc3NsX2lk
ZW50aXR5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCQjcxRTQzQzJCNTAwNjIxRTkyIC8q
IGluZGV4X2NvbnZfZW5jLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJCOTFFNDNDMkI1MDA2
MjFFOTIgLyogaW5pdF9kZWNvZGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDNEI4MjM0Qzgz
REQwMDI4QTYxNSAvKiByZW1vdGVfZXN0aW1hdGUuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QzI5ODIzNEI4Q0M0MDAyOEE2MTUgLyogd2VicnRjX3ZpZGVvX2VuZ2luZS5jYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxMzFDMTVDMjM0Qjg5RTIwMDI4QTYxNSAvKiBzaWduYWxfdGhyZWFkLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCQkIxRTQzQzJCNTAwNjIxRTkyIC8qIGluaXRfZW5jb2Rl
LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0NGODFGNzlCMzM0MDAzODdCNEQgLyogaW5pdGlh
bGl6ZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBOUExRTQzQzAwRjAwNjIxRTkyIC8qIGlu
cHV0X2F1ZGlvX2ZpbGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEZENTFFNDNDRDY2MDA2
MjFFOTIgLyogaW50ZXJfYXJyaXZhbC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMUMwMjM0
QjhBNEEwMDI4QTYxNSAvKiBjb25uZWN0aW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgz
REQxRTQzOUE2RjAwNjIxRTkyIC8qIGludGVyX2ZyYW1lX2RlbGF5LmNjIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNDEzMUMwNDQyMzRCODk4RDAwMjhBNjE1IC8qIGJ5dGVfYnVmZmVyLmNjIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNDEzMUMxMTMyMzRCODlFMjAwMjhBNjE1IC8qIHJhdGVfdHJhY2tlci5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxMzFDMjg3MjM0QjhDQzQwMDI4QTYxNSAvKiBpbnRlcm5hbF9k
ZWNvZGVyX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzI4NTIzNEI4Q0M0MDAy
OEE2MTUgLyogaW50ZXJuYWxfZW5jb2Rlcl9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNERDhCQkYxRTQzQzJCNTAwNjIxRTkyIC8qIGludGVycG9sYXRlLmMgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0REOEJCRDFFNDNDMkI1MDA2MjFFOTIgLyogaW50ZXJwb2xhdGVfc2FtcGxlcy5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE1RjFGQjIyMTI3MkZCQTAwMDY0Q0JGIC8qIGludGVycG9sYXRl
ZF9nYWluX2N1cnZlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5QzgyOUExRkUyMENBMTAwNDBD
MzBGIC8qIGludGVydmFsX2J1ZGdldC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMTU5MjM0
Qjg5RTIwMDI4QTYxNSAvKiBwbGF0Zm9ybV90aHJlYWRfdHlwZXMuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0REODdDMDFFNDNCQzA1MDA2MjFFOTIgLyogaW50aWFsaXplLmMgaW4gU291cmNlcyAq
LywKKwkJCQk0MTMxQzA0ODIzNEI4OThEMDAyOEE2MTUgLyogaXBfYWRkcmVzcy5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4N0MzMUU0M0JDMDUwMDYyMUU5MiAvKiBpc2FjLmMgaW4gU291cmNl
cyAqLywKIAkJCQk0MTI5OUI5MTIxMjczNjdCMDBCMzQxNEIgLyogaXNhY192YWQuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxNDMzRDJBMUY3OUIzMzQwMDM4N0I0RCAvKiBpc2FjZml4LmMgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REODM3QjFFNDM5QTM1MDA2MjFFOTIgLyogaXZmX2ZpbGVfd3JpdGVy
LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMyODAyMzRCOENDNDAwMjhBNjE1IC8qIHVuaGFu
ZGxlZF9wYWNrZXRzX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDJDMjM0Qjg5
OEQwMDI4QTYxNSAvKiBjcHVfdGltZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4M0UxMUU0
MzlBNkYwMDYyMUU5MiAvKiBqaXR0ZXJfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEz
MUJGMDgyMzRCODgyMDAwMjhBNjE1IC8qIGppdHRlcl9idWZmZXJfZGVsYXkuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk1Q0REODNFMzFFNDM5QTZGMDA2MjFFOTIgLyogaml0dGVyX2VzdGltYXRvci5j
YyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMUQ2MjM0QjhBNEIwMDI4QTYxNSAvKiBhc3luY19z
dHVuX3RjcF9zb2NrZXQuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzIzQTIzNEI4QkIyMDAy
OEE2MTUgLyogaml0dGVyX3VwcGVyX2JvdW5kX2V4cGVyaW1lbnQuY2MgaW4gU291cmNlcyAqLywK
KwkJCQk0MTMxQzMwQzIzNEI4REMyMDAyOEE2MTUgLyoganNlcC5jYyBpbiBTb3VyY2VzICovLAor
CQkJCTQxMzFCRjNCMjM0Qjg4MjAwMDI4QTYxNSAvKiBqc2VwX2ljZV9jYW5kaWRhdGUuY2MgaW4g
U291cmNlcyAqLywKKwkJCQk0MTMxQzJGNDIzNEI4REMyMDAyOEE2MTUgLyoganNlcF9pY2VfY2Fu
ZGlkYXRlLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGMkEyMzRCODgyMDAwMjhBNjE1IC8q
IGpzZXBfc2Vzc2lvbl9kZXNjcmlwdGlvbi5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFCRjQ0
MjM0Qjg4MjAwMDI4QTYxNSAvKiBqc2VwX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxMzFCRUZDMjM0Qjg4MjAwMDI4QTYxNSAvKiBqc2VwX3RyYW5zcG9ydF9jb250cm9sbGVyLmNj
IGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyMjcyMzRCOEJCMjAwMjhBNjE1IC8qIGtleWZyYW1l
X2ludGVydmFsX3NldHRpbmdzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxOUEyMTI3NTg2
NTAwNjM0RkNGIC8qIGtpc3NfZmZ0LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0QUYyMzRD
ODM4MDAwMjhBNjE1IC8qIGF1ZGlvX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQx
MzFDNEJEMjM0Qzg0MDYwMDI4QTYxNSAvKiBsb3NzX25vdGlmaWNhdGlvbl9jb250cm9sbGVyLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3QzQxRTQzQkMwNTAwNjIxRTkyIC8qIGxhdHRpY2Uu
YyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMzdFMjM0Qjk1N0QwMDI4QTYxNSAvKiByZXZlcmJf
ZnJlcXVlbmN5X3Jlc3BvbnNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0MzNDRjIxRjc5QjMz
NDAwMzg3QjREIC8qIGxhdHRpY2UuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzRDE0MUY3OUIz
MzQwMDM4N0I0RCAvKiBsYXR0aWNlX2MuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMTVEMjM0
Qjg5RTIwMDI4QTYxNSAvKiBvcGVuc3NsX3Nlc3Npb25fY2FjaGUuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0REODQxRjFFNDM5QjI5MDA2MjFFOTIgLyogbGVnYWN5X2VuY29kZWRfYXVkaW9fZnJh
bWUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODRCODFFNDNBRjEzMDA2MjFFOTIgLyogbGV2
ZWxfZXN0aW1hdG9yX2ltcGwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODY1QTFFNDNCOEI1
MDA2MjFFOTIgLyogbGV2aW5zb25fZHVyYmluLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTNFNjc3
NTIxNjk4NjNCMDBFRjM3RUQgLyogbGlidnB4X2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxMjk0MDk0MjEyRTEyOEQwMEFEOTVFNyAvKiBsaWJ2cHhfdnA4X2RlY29kZXIuY2MgaW4g
U291cmNlcyAqLywKLQkJCQk0MTMxQzEwMDIzNEI4OUUyMDAyOEE2MTUgLyogb3BlbnNzbF91dGls
aXR5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyOTQwOTIyMTJFMTI4RDAwQUQ5NUU3IC8qIGxp
YnZweF92cDhfZW5jb2Rlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMjhDMjM0QjhDQzQw
MDI4QTYxNSAvKiBtdWx0aXBsZXhfY29kZWNfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxNkQzQkU2MjEyNzMxQzIwMDc3NUYwOSAvKiBsaW1pdGVyLmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDEzMUM0QzUyMzRDODQ1MjAwMjhBNjE1IC8qIGxpbmtfY2FwYWNpdHlfZXN0aW1hdG9yLmNj
IGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGNEEyMzRCODgyMDAwMjhBNjE1IC8qIGxvY2FsX2F1
ZGlvX3NvdXJjZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMDY5MjM0Qjg5OEQwMDI4QTYx
NSAvKiBsb2NhdGlvbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QzBGMUU0M0MzNDYwMDYy
MUU5MiAvKiBsb2NrZWRfYmFuZHdpZHRoX2luZm8uY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMx
QzA2MTIzNEI4OThEMDAyOEE2MTUgLyogbG9nX3NpbmtzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDEzMUMzRTcyMzRDN0EwODAwMjhBNjE1IC8qIGxvZ2dlZF9ldmVudHMuY2MgaW4gU291cmNlcyAq
LywKKwkJCQk0MTMxQzUwMTIzNEM4QTE1MDAyOEE2MTUgLyogbG9nZ2luZy5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxRkNCQjZBMjFCMUZGMUIwMEE1REYyNyAvKiBsb3NzX2Jhc2VkX2JhbmR3aWR0
aF9lc3RpbWF0aW9uLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0RkYyMzRDODZDQjAwMjhB
NjE1IC8qIHlpZWxkX3BvbGljeS5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDNTRBMjM0QzhC
MTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfYXVkaW9fcGxheW91dC5jYyBpbiBTb3VyY2VzICovLAor
CQkJCTQxMzFDNEJBMjM0QzgzREQwMDI4QTYxNSAvKiBsb3NzX25vdGlmaWNhdGlvbi5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDNEJEMjM0Qzg0MDYwMDI4QTYxNSAvKiBsb3NzX25vdGlmaWNh
dGlvbl9jb250cm9sbGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxQzUyMTI3NTkzRjAw
NjM0RkNGIC8qIGxvc3NfcmF0ZV9maWx0ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODcw
NTFFNDNCQTc1MDA2MjFFOTIgLyogbG91ZG5lc3NfaGlzdG9ncmFtLmNjIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNDEzMUJGODkyMzRCODhBNjAwMjhBNjE1IC8qIG1lZGlhX2VuZ2luZS5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxOTI0MTNFMjEyNzM3MjQwMDYzNEZDRiAvKiBscF9yZXNpZHVhbC5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4N0M1MUU0M0JDMDUwMDYyMUU5MiAvKiBscGNfYW5hbHlz
aXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkMxMUU0M0MyQjUwMDYyMUU5MiAvKiBscGNf
ZW5jb2RlLmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzQ3OTIzNEM4MUVBMDAyOEE2MTUgLyog
Y2FsbF9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3QzcxRTQzQkMwNTAwNjIx
RTkyIC8qIGxwY19nYWluX3N3Yl90YWJsZXMuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMjk3
MjM0QjhDQzQwMDI4QTYxNSAvKiBzaW11bGNhc3QuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QzQ3RDIzNEM4MjE0MDAyOEE2MTUgLyogbm9pc2Vfc3VwcHJlc3Npb25fcHJveHkuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTQzM0NFRTFGNzlCMzM0MDAzODdCNEQgLyogbHBjX21hc2tpbmdfbW9k
ZWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4N0M5MUU0M0JDMDUwMDYyMUU5MiAvKiBscGNf
c2hhcGVfc3diMTJfdGFibGVzLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODdDQjFFNDNCQzA1
MDA2MjFFOTIgLyogbHBjX3NoYXBlX3N3YjE2X3RhYmxlcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NDEzMUJFRkUyMzRCODgyMDAwMjhBNjE1IC8qIHNjdHBfdHJhbnNwb3J0LmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDg3Q0QxRTQzQkMwNTAwNjIxRTkyIC8qIGxwY190YWJsZXMuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTQxMzFDMjg1MjM0QjhDQzQwMDI4QTYxNSAvKiBpbnRlcm5hbF9lbmNvZGVy
X2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0QxRTFGNzlCMzM0MDAzODdCNEQg
LyogbHBjX3RhYmxlcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2NUIxRTQzQjhCNTAwNjIx
RTkyIC8qIGxwY190b19yZWZsX2NvZWYuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkMzMUU0
M0MyQjUwMDYyMUU5MiAvKiBsc2ZfY2hlY2suYyBpbiBTb3VyY2VzICovLApAQCAtMTc0MjIsNzIg
KzE3NDkyLDk3IEBACiAJCQkJNUNERDhCQzkxRTQzQzJCNTAwNjIxRTkyIC8qIGxzZl90b19sc3Au
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkNCMUU0M0MyQjUwMDYyMUU5MiAvKiBsc2ZfdG9f
cG9seS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCQ0QxRTQzQzJCNTAwNjIxRTkyIC8qIGxz
cF90b19sc2YuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMDdGMjM0Qjg5OEQwMDI4QTYxNSAv
KiBtYWNfaWZhZGRyc19jb252ZXJ0ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVDQjFF
NkE2MzQzMDA5NEZEQzggLyogbWFpbl9maWx0ZXJfdXBkYXRlX2dhaW4uY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MUZDQkIzQzIxQjFGRDQwMDBBNURGMjcgLyogbWF0Y2guY2MgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0QyODVDRjFFNkE2MzQzMDA5NEZEQzggLyogbWF0Y2hlZF9maWx0ZXIuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0QyODVDRDFFNkE2MzQzMDA5NEZEQzggLyogbWF0Y2hlZF9maWx0
ZXJfbGFnX2FnZ3JlZ2F0b3IuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzFFRjIzNEI4QTRC
MDAyOEE2MTUgLyogbWRuc19tZXNzYWdlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2QTQx
RTQzQjk5NDAwNjIxRTkyIC8qIG1lYW5fdmFyaWFuY2VfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDEzMUJGQTgyMzRCODhBNjAwMjhBNjE1IC8qIG1lZGlhX2NoYW5uZWwuY2MgaW4g
U291cmNlcyAqLywKKwkJCQk0MTMxQkZBMjIzNEI4OEE2MDAyOEE2MTUgLyogbWVkaWFfY29uc3Rh
bnRzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGODkyMzRCODhBNjAwMjhBNjE1IC8qIG1l
ZGlhX2VuZ2luZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4M0U1MUU0MzlBNkYwMDYyMUU5
MiAvKiBtZWRpYV9vcHRfdXRpbC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMTYyMjM0Qjg5
RTIwMDI4QTYxNSAvKiBzdHJpbmdfdG9fbnVtYmVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEz
MUJGMDcyMzRCODgyMDAwMjhBNjE1IC8qIHNydHBfZmlsdGVyLmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDEzMUJGNjUyMzRCODgyMDAwMjhBNjE1IC8qIG1lZGlhX3Byb3RvY29sX25hbWVzLmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGMzAyMzRCODgyMDAwMjhBNjE1IC8qIG1lZGlhX3Nlc3Np
b24uY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkYxODIzNEI4ODIwMDAyOEE2MTUgLyogbWVk
aWFfc3RyZWFtLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMzMTUyMzRCOERDMjAwMjhBNjE1
IC8qIG1lZGlhX3N0cmVhbV9pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkYy
NTIzNEI4ODIwMDAyOEE2MTUgLyogbWVkaWFfc3RyZWFtX29ic2VydmVyLmNjIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDEzMUMzMDUyMzRCOERDMjAwMjhBNjE1IC8qIG1lZGlhX3RyYW5zcG9ydF9jb25m
aWcuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzMxMzIzNEI4REMyMDAyOEE2MTUgLyogbWVk
aWFfdHJhbnNwb3J0X2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMkY3MjM0
QjhEQzIwMDI4QTYxNSAvKiBtZWRpYV90eXBlcy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRTAy
Q0IxMjEyNzM1MkQwMEMyN0NENiAvKiBtZWRpYW5fc2xvcGVfZXN0aW1hdG9yLmNjIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNDEzMUMxRTcyMzRCOEE0QjAwMjhBNjE1IC8qIHJlbGF5X3NlcnZlci5jYyBp
biBTb3VyY2VzICovLAotCQkJCTQxMzFCRjk0MjM0Qjg4QTYwMDI4QTYxNSAvKiB2aWRlb19icm9h
ZGNhc3Rlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMDREMjM0Qjg5OEQwMDI4QTYxNSAv
KiBtZW1vcnlfc3RyZWFtLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMwMkIyMzRCODk4RDAw
MjhBNjE1IC8qIG1lbW9yeV91c2FnZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRkNCQjg0MjFC
MjAwN0IwMEE1REYyNyAvKiBtZW11dGlsLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM1NjAy
MzRDOEI3MjAwMjhBNjE1IC8qIGZha2VfbmV0d29ya19waXBlLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDhBMkYxRTQzQkZCMzAwNjIxRTkyIC8qIG1lcmdlLmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDEzMUMwNjYyMzRCODk4RDAwMjhBNjE1IC8qIG1lc3NhZ2VfZGlnZXN0LmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEzMUMwNDUyMzRCODk4RDAwMjhBNjE1IC8qIG1lc3NhZ2VfaGFuZGxlci5j
YyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMDc0MjM0Qjg5OEQwMDI4QTYxNSAvKiBtZXNzYWdl
X3F1ZXVlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3OTUzREIyMTY5ODM5MTAwMjgyNjZCIC8q
IG1ldHJpY3MuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODY1RTFFNDNCOEI1MDA2MjFFOTIg
LyogbWluX21heF9vcGVyYXRpb25zLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNFNjIxNjk4
M0NBMDAyODI2NkIgLyogbW9kdWxlX2NvbW1vbl90eXBlcy5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxMzFDMzg3MjM0Qjk1N0QwMDI4QTYxNSAvKiBtb3ZpbmdfYXZlcmFnZS5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxRkNCQjE1MjFCMUY3QUEwMEE1REYyNyAvKiBtb3ZpbmdfYXZlcmFnZS5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDRDI4NjEwMUU2QTY0QzkwMDk0RkRDOCAvKiBtb3ZpbmdfbWF4
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhDOEUxRTQzQzY2MDAwNjIxRTkyIC8qIG1vdmlu
Z19tb21lbnRzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyOEMyMzRCOENDNDAwMjhBNjE1
IC8qIG11bHRpcGxleF9jb2RlY19mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhC
Q0YxRTQzQzJCNTAwNjIxRTkyIC8qIG15X2NvcnIuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFD
MTQ0MjM0Qjg5RTIwMDI4QTYxNSAvKiB1bmlxdWVfaWRfZ2VuZXJhdG9yLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDg5NTMxRTQzQkYzQTAwNjIxRTkyIC8qIG5hY2suY2MgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REODNFQTFFNDM5QTZGMDA2MjFFOTIgLyogbmFja19tb2R1bGUuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REOEEzMjFFNDNCRkIzMDA2MjFFOTIgLyogbmFja190cmFja2VyLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3OTUzQjQyMTY5ODI0MjAwMjgyNjZCIC8qIG5hbHVfcmV3
cml0ZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQkYyNjIzNEI4ODIwMDAyOEE2MTUgLyog
ZGF0YV9jaGFubmVsLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMwM0MyMzRCODk4RDAwMjhB
NjE1IC8qIG5hdF9zZXJ2ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzA1NDIzNEI4OThE
MDAyOEE2MTUgLyogbmF0X3NvY2tldF9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEz
MUMwODkyMzRCODk4RDAwMjhBNjE1IC8qIG5hdF90eXBlcy5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4QkQxMUU0M0MyQjUwMDYyMUU5MiAvKiBuZWFyZXN0X25laWdoYm9yLmMgaW4gU291cmNl
cyAqLywKKwkJCQk0MTMxQzA1NjIzNEI4OThEMDAyOEE2MTUgLyogbmV0X2hlbHBlci5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDMDZGMjM0Qjg5OEQwMDI4QTYxNSAvKiBuZXRfaGVscGVycy5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTNCMUU0M0JGQjMwMDYyMUU5MiAvKiBuZXRlcS5j
YyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMUQ1MjM0QjhBNEIwMDI4QTYxNSAvKiBzdHVuX3Nl
cnZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTM2MUU0M0JGQjMwMDYyMUU5MiAvKiBu
ZXRlcV9pbXBsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBQTUxRTQzQzAwRjAwNjIxRTky
IC8qIG5ldGVxX3JlcGxhY2VtZW50X2lucHV0LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJG
NTAyMzRCODgyMDAwMjhBNjE1IC8qIHdlYnJ0Y19zZHAuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0
MTMxQzAzRTIzNEI4OThEMDAyOEE2MTUgLyogbmV0d29yay5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxMzFDMDI4MjM0Qjg5OEQwMDI4QTYxNSAvKiBuZXR3b3JrX21vbml0b3IuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MUUwMkNDRDIxMjczNUI3MDBDMjdDRDYgLyogbmV0d29ya190eXBlcy5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxMzFDMUQwMjM0QjhBNEIwMDI4QTYxNSAvKiBub19vcF9kdGxz
X3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNkQzQkU3MjEyNzMxQzIwMDc3NUYw
OSAvKiBub2lzZV9sZXZlbF9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTZEM0JF
ODIxMjczMUMyMDA3NzVGMDkgLyogbm9pc2Vfc3BlY3RydW1fZXN0aW1hdG9yLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNERDg1RkUxRTQzQjg0RTAwNjIxRTkyIC8qIG5vaXNlX3N1cHByZXNzaW9u
LmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODRFOTFFNDNCMEI2MDA2MjFFOTIgLyogbm9pc2Vf
c3VwcHJlc3Npb25faW1wbC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDNDdEMjM0QzgyMTQw
MDI4QTYxNSAvKiBub2lzZV9zdXBwcmVzc2lvbl9wcm94eS5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4NUZDMUU0M0I4NEUwMDYyMUU5MiAvKiBub2lzZV9zdXBwcmVzc2lvbl94LmMgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REOEEzRDFFNDNCRkIzMDA2MjFFOTIgLyogbm9ybWFsLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEzMUMyNDAyMzRCOEJCMjAwMjhBNjE1IC8qIG5vcm1hbGl6ZV9zaW11
bGNhc3Rfc2l6ZV9leHBlcmltZW50LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2QTcxRTQz
Qjk5NDAwNjIxRTkyIC8qIG5vcm1hbGl6ZWRfY292YXJpYW5jZV9lc3RpbWF0b3IuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REODYwMDFFNDNCODRFMDA2MjFFOTIgLyogbnNfY29yZS5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE0NEIzRjAyMTY5QzYzRjAwNDM2M0FDIC8qIE5TU3RyaW5nK1N0ZFN0
cmluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NjA1MUU0M0I4NEUwMDYyMUU5MiAvKiBu
c3hfY29yZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2MDIxRTQzQjg0RTAwNjIxRTkyIC8q
IG5zeF9jb3JlX2MuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMUUxMjM0QjhBNEIwMDI4QTYx
NSAvKiBwb3J0X2FsbG9jYXRvci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDNDY2MjM0Qzgx
NzIwMDI4QTYxNSAvKiB2aWRlb19jb2RlY19pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MUY0MTFBRDFFRjhEOTFGMDAzNDNDMjYgLyogbnVsbF9hZWNfZHVtcF9mYWN0b3J5LmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE5QzgzQjMxRkUyNDcyRTAwNDBDMzBGIC8qIG51bGxfYXVkaW9f
cG9sbGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMwNDYyMzRCODk4RDAwMjhBNjE1IC8q
IG51bGxfc29ja2V0X3NlcnZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNjIyNUU0MjE2OTgx
OTUwMEE5MUM5QiAvKiBvYmpjX2ZyYW1lX2J1ZmZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQx
NjIyNUU3MjE2OTgxOTUwMEE5MUM5QiAvKiBvYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTQxNjIyNUU2MjE2OTgxOTUwMEE5MUM5QiAvKiBvYmpjX3ZpZGVv
X2VuY29kZXJfZmFjdG9yeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxNjIyNUUyMjE2OTgxOTUw
MEE5MUM5QiAvKiBvYmpjX3ZpZGVvX2ZyYW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2
OTQxRTQzQjkzOTAwNjIxRTkyIC8qIG9vdXJhX2ZmdC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
REQ4NjkxMUU0M0I5MzkwMDYyMUU5MiAvKiBvb3VyYV9mZnRfc3NlMi5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxMzFDMTRCMjM0Qjg5RTIwMDI4QTYxNSAvKiBvcGVuc3NsX2FkYXB0ZXIuY2MgaW4g
U291cmNlcyAqLywKKwkJCQk0MTMxQzExQzIzNEI4OUUyMDAyOEE2MTUgLyogb3BlbnNzbF9jZXJ0
aWZpY2F0ZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMTNEMjM0Qjg5RTIwMDI4QTYxNSAv
KiBvcGVuc3NsX2RpZ2VzdC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMTIzMjM0Qjg5RTIw
MDI4QTYxNSAvKiBvcGVuc3NsX2lkZW50aXR5LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMx
NUQyMzRCODlFMjAwMjhBNjE1IC8qIG9wZW5zc2xfc2Vzc2lvbl9jYWNoZS5jYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxMzFDMEZBMjM0Qjg5RTIwMDI4QTYxNSAvKiBvcGVuc3NsX3N0cmVhbV9hZGFw
dGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxMDAyMzRCODlFMjAwMjhBNjE1IC8qIG9w
ZW5zc2xfdXRpbGl0eS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QzY3MUU0M0M2MDkwMDYy
MUU5MiAvKiBvcHVzX2ludGVyZmFjZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhGRDcxRTQz
Q0Q2NjAwNjIxRTkyIC8qIG92ZXJ1c2VfZGV0ZWN0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REOEZEOTFFNDNDRDY2MDA2MjFFOTIgLyogb3ZlcnVzZV9lc3RpbWF0b3IuY2MgaW4gU291cmNl
cyAqLywKLQkJCQk0MTMxQzU1RDIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2dlbmVyaWNf
cGFja2V0X3NlbnQuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQkYzQjIzNEI4ODIwMDAyOEE2
MTUgLyoganNlcF9pY2VfY2FuZGlkYXRlLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzOEEy
MzRCOTU3RDAwMjhBNjE1IC8qIHJldmVyYl9tb2RlbF9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REODVBNDFFNDNCNUMwMDA2MjFFOTIgLyogb3ZlcnVzZV9mcmFtZV9kZXRlY3Rv
ci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMUI1MjM0QjhBNEEwMDI4QTYxNSAvKiBwMnBf
Y29uc3RhbnRzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxRDQyMzRCOEE0QjAwMjhBNjE1
IC8qIHAycF90cmFuc3BvcnRfY2hhbm5lbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRjI2MzlB
MjEyNjdGNUUwMDI3NEY1OSAvKiBwYV9yaW5nYnVmZmVyLmMgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REOEZBMjFFNDNDQ0JFMDA2MjFFOTIgLyogcGFjZWRfc2VuZGVyLmNjIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNDEzMUM0MjgyMzRDN0QyNTAwMjhBNjE1IC8qIGFsaWduZWRfbWFsbG9jLmNjIGluIFNv
dXJjZXMgKi8sCi0JCQkJNDEzMUJGOUUyMzRCODhBNjAwMjhBNjE1IC8qIHZpZGVvX2FkYXB0ZXIu
Y2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzRDMTIzNEM4NDI0MDAyOEE2MTUgLyogcGFjaW5n
X2NvbnRyb2xsZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJEMzFFNDNDMkI1MDA2MjFF
OTIgLyogcGFja19iaXRzLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEE0MjFFNDNCRkIzMDA2
MjFFOTIgLyogcGFja2V0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgzRUUxRTQzOUE2RjAw
NjIxRTkyIC8qIHBhY2tldC5jYyBpbiBTb3VyY2VzICovLApAQCAtMTc0OTcsOSArMTc1OTIsMTUg
QEAKIAkJCQk1Q0REODg4QzFFNDNCRTNDMDA2MjFFOTIgLyogcGFja2V0X2xvc3Nfc3RhdHMuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEZBNDFFNDNDQ0JFMDA2MjFFOTIgLyogcGFja2V0X3Jv
dXRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QUFDMUU0M0MwMEYwMDYyMUU5MiAvKiBw
YWNrZXRfc291cmNlLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxRUEyMzRCOEE0QjAwMjhB
NjE1IC8qIHBhY2tldF90cmFuc3BvcnRfaW50ZXJuYWwuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0
MTMxQzI4OTIzNEI4Q0M0MDAyOEE2MTUgLyogcGF5bG9hZF90eXBlX21hcHBlci5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ5MDAwMUU0M0NFM0EwMDYyMUU5MiAvKiBwY20xNmIuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTQxMzFDMTVGMjM0Qjg5RTIwMDI4QTYxNSAvKiByYW5kb20uY2MgaW4gU291
cmNlcyAqLywKLQkJCQk0MTMxQkYxNDIzNEI4ODIwMDAyOEE2MTUgLyogdmlkZW9fcnRwX3JlY2Vp
dmVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGNjIyMzRCODgyMDAwMjhBNjE1IC8qIHBl
ZXJfY29ubmVjdGlvbi5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFCRjQxMjM0Qjg4MjAwMDI4
QTYxNSAvKiBwZWVyX2Nvbm5lY3Rpb25fZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQx
MzFDMzI0MjM0QjhEQzIwMDI4QTYxNSAvKiBwZWVyX2Nvbm5lY3Rpb25faW50ZXJmYWNlLmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDEzMUM0M0IyMzRDODAwNzAwMjhBNjE1IC8qIHBmZmZ0LmMgaW4g
U291cmNlcyAqLywKKwkJCQk0MTMxQzQxRTIzNEM3Q0FEMDAyOEE2MTUgLyogcGZmZnRfd3JhcHBl
ci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMTNGMjM0Qjg5RTIwMDI4QTYxNSAvKiBwaHlz
aWNhbF9zb2NrZXRfc2VydmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3MkQxRTQzQkFC
RTAwNjIxRTkyIC8qIHBpdGNoX2Jhc2VkX3ZhZC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMz
RDI2MUY3OUIzMzQwMDM4N0I0RCAvKiBwaXRjaF9lc3RpbWF0b3IuYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4N0QwMUU0M0JDMDUwMDYyMUU5MiAvKiBwaXRjaF9lc3RpbWF0b3IuYyBpbiBTb3Vy
Y2VzICovLApAQCAtMTc1MDcsMzEwICsxNzYwOCwzMDYgQEAKIAkJCQk1Q0REODdEMjFFNDNCQzA1
MDA2MjFFOTIgLyogcGl0Y2hfZmlsdGVyLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0QxMTFG
NzlCMzM0MDAzODdCNEQgLyogcGl0Y2hfZmlsdGVyLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTQz
M0NGNDFGNzlCMzM0MDAzODdCNEQgLyogcGl0Y2hfZmlsdGVyX2MuYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxMzFDM0ZDMjM0QzdCMDMwMDI4QTYxNSAvKiBhdWRpb19lbmNvZGVyX211bHRpX2NoYW5u
ZWxfb3B1c19jb25maWcuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzNEQTIzNEM3OUQxMDAy
OEE2MTUgLyogdnA4X2ZyYW1lX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzRDEw
MUY3OUIzMzQwMDM4N0I0RCAvKiBwaXRjaF9nYWluX3RhYmxlcy5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDg3RDMxRTQzQkMwNTAwNjIxRTkyIC8qIHBpdGNoX2dhaW5fdGFibGVzLmMgaW4gU291
cmNlcyAqLywKLQkJCQk0MTMxQzRENDIzNEM4NEEzMDAyOEE2MTUgLyogYWJzb2x1dGVfY2FwdHVy
ZV90aW1lX3JlY2VpdmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3MzAxRTQzQkFCRTAw
NjIxRTkyIC8qIHBpdGNoX2ludGVybmFsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3RDUx
RTQzQkMwNjAwNjIxRTkyIC8qIHBpdGNoX2xhZ190YWJsZXMuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFDNTQxMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfZHRsc190cmFuc3BvcnRfc3Rh
dGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0QxOTFGNzlCMzM0MDAzODdCNEQgLyogcGl0
Y2hfbGFnX3RhYmxlcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxNDEyMTI3MzcyNDAwNjM0
RkNGIC8qIHBpdGNoX3NlYXJjaC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MTQ0MjEyNzM3
MjgwMDYzNEZDRiAvKiBwaXRjaF9zZWFyY2hfaW50ZXJuYWwuY2MgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTMxQzEyNDIzNEI4OUUyMDAyOEE2MTUgLyogcGxhdGZvcm1fdGhyZWFkLmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEzMUMxNTkyMzRCODlFMjAwMjhBNjE1IC8qIHBsYXRmb3JtX3RocmVhZF90
eXBlcy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4ODhGMUU0M0JFM0MwMDYyMUU5MiAvKiBw
bGF5b3V0X2RlbGF5X29yYWNsZS5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDQ1MjM0Qjg5
OEQwMDI4QTYxNSAvKiBtZXNzYWdlX2hhbmRsZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QzM4OTIzNEI5NTdEMDAyOEE2MTUgLyogc3VidHJhY3Rvcl9vdXRwdXRfYW5hbHl6ZXIuY2MgaW4g
U291cmNlcyAqLywKLQkJCQk0MTMxQzA1QTIzNEI4OThEMDAyOEE2MTUgLyogYXN5bmNfdGNwX3Nv
Y2tldC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OTU2MUU0M0JGM0EwMDYyMUU5MiAvKiBw
bGkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODczMzFFNDNCQUJFMDA2MjFFOTIgLyogcG9s
ZV96ZXJvX2ZpbHRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkQ1MUU0M0MyQjUwMDYy
MUU5MiAvKiBwb2x5X3RvX2xzZi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCRDcxRTQzQzJC
NTAwNjIxRTkyIC8qIHBvbHlfdG9fbHNwLmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzEyRTIz
NEI4OUUyMDAyOEE2MTUgLyogcmFjZV9jaGVja2VyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEz
MUM1NTkyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9ydHBfcGFja2V0X2luY29taW5nLmNj
IGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxREMyMzRCOEE0QjAwMjhBNjE1IC8qIHBvcnQuY2Mg
aW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzFFMTIzNEI4QTRCMDAyOEE2MTUgLyogcG9ydF9hbGxv
Y2F0b3IuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzFFODIzNEI4QTRCMDAyOEE2MTUgLyog
cG9ydF9pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEE0NTFFNDNCRkIzMDA2
MjFFOTIgLyogcG9zdF9kZWNvZGVfdmFkLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0NzUy
MzRDODFCNjAwMjhBNjE1IC8qIHJ0Y19ldmVudF9sb2cuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0
MTMxQzFFMzIzNEI4QTRCMDAyOEE2MTUgLyogdHJhbnNwb3J0X2Rlc2NyaXB0aW9uLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDgzNTkxRTQzMjU3MjAwNjIxRTkyIC8qIHBwc19wYXJzZXIuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEE0NzFFNDNCRkIzMDA2MjFFOTIgLyogcHJlZW1wdGl2
ZV9leHBhbmQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUUwMkNCMjIxMjczNTJEMDBDMjdDRDYg
LyogcHJvYmVfYml0cmF0ZV9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUUwMkNC
NDIxMjczNTJEMDBDMjdDRDYgLyogcHJvYmVfY29udHJvbGxlci5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4NEU1MUU0M0IwNEQwMDYyMUU5MiAvKiBwcm9jZXNzX3RocmVhZF9pbXBsLmNjIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzM0YyMzRCOERERjAwMjhBNjE1IC8qIHNjdHBfdHJhbnNw
b3J0X2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMzA3MjM0QjhEQzIwMDI4
QTYxNSAvKiBwcm94eS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMTVFMjM0Qjg5RTIwMDI4
QTYxNSAvKiBwcm94eV9pbmZvLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxMDYyMzRCODlF
MjAwMjhBNjE1IC8qIHByb3h5X3NlcnZlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMUQz
MjM0QjhBNEIwMDI4QTYxNSAvKiBwc2V1ZG9fdGNwLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDg5NTgxRTQzQkYzQTAwNjIxRTkyIC8qIHBzZmIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QzRDNTIzNEM4NDUyMDAyOEE2MTUgLyogbGlua19jYXBhY2l0eV9lc3RpbWF0b3IuY2MgaW4gU291
cmNlcyAqLywKLQkJCQk0MTMxQzQ3MDIzNEM4MUI2MDAyOEE2MTUgLyogcnRjX2V2ZW50LmNjIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwNzEyMzRCODk4RDAwMjhBNjE1IC8qIGh0dHBfY29tbW9u
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3NTMxRTQzQkFGNTAwNjIxRTkyIC8qIHB1c2hf
cmVzYW1wbGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwRjkyMzRCODlFMjAwMjhBNjE1
IC8qIHdlYWtfcHRyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3NTUxRTQzQkFGNTAwNjIx
RTkyIC8qIHB1c2hfc2luY19yZXNhbXBsZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzQ5
RjIzNEM4MzRFMDAyOEE2MTUgLyogcXVhbGl0eV9saW1pdGF0aW9uX3JlYXNvbl90cmFja2VyLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgzODExRTQzOUEzNTAwNjIxRTkyIC8qIHF1YWxpdHlf
c2NhbGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyNDMyMzRCOEJCMjAwMjhBNjE1IC8q
IHF1YWxpdHlfc2NhbGVyX3NldHRpbmdzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyMzky
MzRCOEJCMjAwMjhBNjE1IC8qIHF1YWxpdHlfc2NhbGluZ19leHBlcmltZW50LmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNEMjg2MkExRTZBNjZDODAwOTRGREM4IC8qIHF1YWxpdHlfdGhyZXNob2xk
LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzQzQyMzRCOTdCNDAwMjhBNjE1IC8qIGF1ZGlv
X2VuY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzX2ltcGwuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0
MTMxQzNBOTIzNEI5NkMzMDAyOEE2MTUgLyogZWNob19jYW5jZWxsZXIzX2NvbmZpZy5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDMTJFMjM0Qjg5RTIwMDI4QTYxNSAvKiByYWNlX2NoZWNrZXIu
Y2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzE1RjIzNEI4OUUyMDAyOEE2MTUgLyogcmFuZG9t
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBNEExRTQzQkZCMzAwNjIxRTkyIC8qIHJhbmRv
bV92ZWN0b3IuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzMxRTIzNEI4REMyMDAyOEE2MTUg
LyogZGF0YV9jaGFubmVsX3RyYW5zcG9ydF9pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REODY1RjFFNDNCOEI1MDA2MjFFOTIgLyogcmFuZG9taXphdGlvbl9mdW5jdGlvbnMuYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4OTVCMUU0M0JGM0EwMDYyMUU5MiAvKiByYXBpZF9yZXN5
bmNfcmVxdWVzdC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMjM0MjM0QjhCQjIwMDI4QTYx
NSAvKiByYXRlX2NvbnRyb2xfc2V0dGluZ3MuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzE1
ODIzNEI4OUUyMDAyOEE2MTUgLyogcmF0ZV9saW1pdGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDEzMUMwRkMyMzRCODlFMjAwMjhBNjE1IC8qIHJhdGVfc3RhdGlzdGljcy5jYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxMzFDMTEzMjM0Qjg5RTIwMDI4QTYxNSAvKiByYXRlX3RyYWNrZXIuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MUEwOEJDQzIxMjY5NjIwMDAxRDVEN0IgLyogcmF3X2xvZ2dpbmcu
Y2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQkYxQTIzNEI4ODIwMDAyOEE2MTUgLyogcnRjcF9t
dXhfZmlsdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2NjExRTQzQjhCNTAwNjIxRTky
IC8qIHJlYWxfZmZ0LmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEM3NzFFNDMxRjlDMDAyNjUx
QzggLyogcmVhbF9mb3VyaWVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjRDNzIxRTQzMUY5
QzAwMjY1MUM4IC8qIHJlYWxfZm91cmllcl9vb3VyYS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
MzA5MUZFMUVGOEQwNkQwMDc1N0M1NSAvKiByZWNlaXZlX3NpZGVfY29uZ2VzdGlvbl9jb250cm9s
bGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4OTExRTQzQkUzQzAwNjIxRTkyIC8qIHJl
Y2VpdmVfc3RhdGlzdGljc19pbXBsLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwNjYyMzRC
ODk4RDAwMjhBNjE1IC8qIG1lc3NhZ2VfZGlnZXN0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDg1QUExRTQzQjVDMDAwNjIxRTkyIC8qIHJlY2VpdmVfc3RhdGlzdGljc19wcm94eS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxRDZCNDU3MjEyNzMxNTkwMDhGOTM1MyAvKiByZWNlaXZlX3RpbWVf
Y2FsY3VsYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4M0Y0MUU0MzlBNkYwMDYyMUU5
MiAvKiByZWNlaXZlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRjFFMjM0Qjg4MjAwMDI4
QTYxNSAvKiBydHBfdHJhbnNjZWl2ZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzFFMDIz
NEI4QTRCMDAyOEE2MTUgLyogc3R1bl9wb3J0LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0
QkEyMzRDODNERDAwMjhBNjE1IC8qIGxvc3Nfbm90aWZpY2F0aW9uLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDg5NUUxRTQzQkYzQTAwNjIxRTkyIC8qIHJlY2VpdmVyX3JlcG9ydC5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDREQ4QTREMUU0M0JGQjMwMDYyMUU5MiAvKiByZWRfcGF5bG9hZF9z
cGxpdHRlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDNTQ3MjM0QzhCMTkwMDI4QTYxNSAv
KiBydGNfZXZlbnRfYXVkaW9fbmV0d29ya19hZGFwdGF0aW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDhCRDkxRTQzQzJCNTAwNjIxRTkyIC8qIHJlZmluZXIuYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4NjYyMUU0M0I4QjUwMDYyMUU5MiAvKiByZWZsX2NvZWZfdG9fbHBjLmMgaW4gU291
cmNlcyAqLywKLQkJCQk0MTMxQkYzRDIzNEI4ODIwMDAyOEE2MTUgLyogc3J0cF9zZXNzaW9uLmNj
IGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxQUYyMzRCOEE0QTAwMjhBNjE1IC8qIHJlZ2F0aGVy
aW5nX2NvbnRyb2xsZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzFCNDIzNEI4QTRBMDAy
OEE2MTUgLyogcmVsYXlfcG9ydC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMUU3MjM0QjhB
NEIwMDI4QTYxNSAvKiByZWxheV9zZXJ2ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODk2
MTFFNDNCRjNBMDA2MjFFOTIgLyogcmVtYi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMDJGNkEx
MjEyNzMyNjIwMDZBRThENyAvKiByZW1peF9yZXNhbXBsZS5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxMzFCRjJFMjM0Qjg4MjAwMDI4QTYxNSAvKiByZW1vdGVfYXVkaW9fc291cmNlLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDhGREIxRTQzQ0Q2NjAwNjIxRTkyIC8qIHJlbW90ZV9iaXRyYXRl
X2VzdGltYXRvcl9hYnNfc2VuZF90aW1lLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0OUYy
MzRDODM0RTAwMjhBNjE1IC8qIHF1YWxpdHlfbGltaXRhdGlvbl9yZWFzb25fdHJhY2tlci5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4RkREMUU0M0NENjYwMDYyMUU5MiAvKiByZW1vdGVfYml0
cmF0ZV9lc3RpbWF0b3Jfc2luZ2xlX3N0cmVhbS5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFD
MkY2MjM0QjhEQzIwMDI4QTYxNSAvKiBydHBfaGVhZGVycy5jYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFDNTM1MjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfYXVkaW9fc2VuZF9zdHJlYW1f
Y29uZmlnLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0MUQyMzRDN0M3RDAwMjhBNjE1IC8q
IHZpZGVvX2JpdHJhdGVfYWxsb2NhdG9yLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMyMjcy
MzRCOEJCMjAwMjhBNjE1IC8qIGtleWZyYW1lX2ludGVydmFsX3NldHRpbmdzLmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEzMUM0QjgyMzRDODNERDAwMjhBNjE1IC8qIHJlbW90ZV9lc3RpbWF0ZS5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RkUxMUU0M0NENjYwMDYyMUU5MiAvKiByZW1vdGVf
ZXN0aW1hdG9yX3Byb3h5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4OTUxRTQzQkUzQzAw
NjIxRTkyIC8qIHJlbW90ZV9udHBfdGltZV9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTQ1RTREOTFFRjhDQzlCMDBGQ0Y2RTYgLyogcmVuZGVyX2J1ZmZlci5jYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxMzFDMTQ3MjM0Qjg5RTIwMDI4QTYxNSAvKiBzb2NrZXRfYWRhcHRlcnMuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVENTFFNkE2MzQzMDA5NEZEQzggLyogcmVuZGVyX2Rl
bGF5X2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUQ5MUU2QTYzNDMwMDk0RkRD
OCAvKiByZW5kZXJfZGVsYXlfY29udHJvbGxlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4
NUQ3MUU2QTYzNDMwMDk0RkRDOCAvKiByZW5kZXJfZGVsYXlfY29udHJvbGxlcl9tZXRyaWNzLmNj
IGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMzOEIyMzRCOTU3RDAwMjhBNjE1IC8qIHJlbmRlcl9y
ZXZlcmJfbW9kZWwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVEQjFFNkE2MzQzMDA5NEZE
QzggLyogcmVuZGVyX3NpZ25hbF9hbmFseXplci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFC
RjBEMjM0Qjg4MjAwMDI4QTYxNSAvKiBzdGF0c19jb2xsZWN0b3IuY2MgaW4gU291cmNlcyAqLywK
KwkJCQk0MTMxQzRFNjIzNEM4NTJFMDAyOEE2MTUgLyogcmVwZWF0aW5nX3Rhc2suY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REODk2NDFFNDNCRjNBMDA2MjFFOTIgLyogcmVwb3J0X2Jsb2NrLmNj
IGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM0RUMyMzRDODYxMTAwMjhBNjE1IC8qIHJlcG9ydF9i
bG9ja19kYXRhLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg1QUUxRTQzQjVDMDAwNjIxRTky
IC8qIHJlcG9ydF9ibG9ja19zdGF0cy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDIxMjM0
Qjg5OEQwMDI4QTYxNSAvKiBhc3luY19zb2NrZXQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0RE
ODY2OTFFNDNCOEI1MDA2MjFFOTIgLyogcmVzYW1wbGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
REQ4NjYzMUU0M0I4QjUwMDYyMUU5MiAvKiByZXNhbXBsZV80OGtoei5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDg2NjcxRTQzQjhCNTAwNjIxRTkyIC8qIHJlc2FtcGxlX2J5XzIuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4NjY0MUU0M0I4QjUwMDYyMUU5MiAvKiByZXNhbXBsZV9ieV8yX2lu
dGVybmFsLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODY2ODFFNDNCOEI1MDA2MjFFOTIgLyog
cmVzYW1wbGVfZnJhY3Rpb25hbC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGQTIyMzRCODhB
NjAwMjhBNjE1IC8qIG1lZGlhX2NvbnN0YW50cy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
QUIxMUU0M0MwMEYwMDYyMUU5MiAvKiByZXNhbXBsZV9pbnB1dF9hdWRpb19maWxlLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDg3NTgxRTQzQkFGNTAwNjIxRTkyIC8qIHJlc2FtcGxlci5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4NEJEMUU0M0FGMTMwMDYyMUU5MiAvKiByZXNpZHVhbF9l
Y2hvX2RldGVjdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1REQxRTZBNjM0MzAwOTRG
REM4IC8qIHJlc2lkdWFsX2VjaG9fZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEz
MUMzOTUyMzRCOTU3RDAwMjhBNjE1IC8qIHJldmVyYl9kZWNheV9lc3RpbWF0b3IuY2MgaW4gU291
cmNlcyAqLywKKwkJCQk0MTMxQzM3RTIzNEI5NTdEMDAyOEE2MTUgLyogcmV2ZXJiX2ZyZXF1ZW5j
eV9yZXNwb25zZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMzkwMjM0Qjk1N0QwMDI4QTYx
NSAvKiByZXZlcmJfbW9kZWwuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzM4QTIzNEI5NTdE
MDAyOEE2MTUgLyogcmV2ZXJiX21vZGVsX2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxMzFCRjlGMjM0Qjg4QTYwMDI4QTYxNSAvKiByaWRfZGVzY3JpcHRpb24uY2MgaW4gU291cmNl
cyAqLywKIAkJCQk1QzRCNEM3QTFFNDMxRjlDMDAyNjUxQzggLyogcmluZ19idWZmZXIuYyBpbiBT
b3VyY2VzICovLAotCQkJCTQxMzFCRjhCMjM0Qjg4QTYwMDI4QTYxNSAvKiBjb2RlYy5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDREQ4NEJGMUU0M0FGMTMwMDYyMUU5MiAvKiBybXNfbGV2ZWwuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDE0NjIxMjczNzI4MDA2MzRGQ0YgLyogcm5uLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxOTkyMTI3NTg2NTAwNjM0RkNGIC8qIHJubl92YWRfd2Vp
Z2h0cy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMjM3MjM0QjhCQjIwMDI4QTYxNSAvKiBl
eHBlcmltZW50YWxfc2NyZWVuc2hhcmVfc2V0dGluZ3MuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0
MTMxQkVGNzIzNEI4ODIwMDAyOEE2MTUgLyogcnRwX3NlbmRlci5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDRkQ1MzhGMUU0QkQzQTMwMDQ4MjkwOCAvKiByb3RhdGVfbmVvbi5jYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxMzFDMzA1MjM0QjhEQzIwMDI4QTYxNSAvKiBtZWRpYV90cmFuc3BvcnRfY29u
ZmlnLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNGRDUzOTAxRTRCRDNBMzAwNDgyOTA4IC8qIHJv
dGF0ZV9uZW9uNjQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUEwOEJENDIxMjcyRUZBMDAxRDVE
N0IgLyogcm91bmRfcm9iaW5fcGFja2V0X3F1ZXVlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNG
RDUzOTExRTRCRDNBMzAwNDgyOTA4IC8qIHJvd19uZW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNGRDUzOTIxRTRCRDNBMzAwNDgyOTA4IC8qIHJvd19uZW9uNjQuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0REODk2QTFFNDNCRjNBMDA2MjFFOTIgLyogcnJ0ci5jYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxMzFDMTRBMjM0Qjg5RTIwMDI4QTYxNSAvKiB0aW1lX3V0aWxzLmNjIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDEzMUMxMzgyMzRCODlFMjAwMjhBNjE1IC8qIHJ0Y19jZXJ0aWZpY2F0ZS5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxMzFDMTVBMjM0Qjg5RTIwMDI4QTYxNSAvKiBydGNfY2VydGlm
aWNhdGVfZ2VuZXJhdG9yLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyRUYyMzRCOERDMjAw
MjhBNjE1IC8qIHJ0Y19lcnJvci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDNDcwMjM0Qzgx
QjYwMDI4QTYxNSAvKiBydGNfZXZlbnQuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzU1QjIz
NEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2Fscl9zdGF0ZS5jYyBpbiBTb3VyY2VzICovLAor
CQkJCTQxMzFDNTQ3MjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfYXVkaW9fbmV0d29ya19h
ZGFwdGF0aW9uLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM1NEEyMzRDOEIxOTAwMjhBNjE1
IC8qIHJ0Y19ldmVudF9hdWRpb19wbGF5b3V0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM1
NTgyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9hdWRpb19yZWNlaXZlX3N0cmVhbV9jb25m
aWcuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzUzNTIzNEM4QjE5MDAyOEE2MTUgLyogcnRj
X2V2ZW50X2F1ZGlvX3NlbmRfc3RyZWFtX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQx
MzFDNTQwMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfYndlX3VwZGF0ZV9kZWxheV9iYXNl
ZC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDNTM0MjM0QzhCMTkwMDI4QTYxNSAvKiBydGNf
ZXZlbnRfYndlX3VwZGF0ZV9sb3NzX2Jhc2VkLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM1
NDEyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9kdGxzX3RyYW5zcG9ydF9zdGF0ZS5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxMzFDNTVGMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRf
ZHRsc193cml0YWJsZV9zdGF0ZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDNTQzMjM0QzhC
MTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfZ2VuZXJpY19hY2tfcmVjZWl2ZWQuY2MgaW4gU291cmNl
cyAqLywKKwkJCQk0MTMxQzU0NjIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2dlbmVyaWNf
cGFja2V0X3JlY2VpdmVkLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM1NUQyMzRDOEIxOTAw
MjhBNjE1IC8qIHJ0Y19ldmVudF9nZW5lcmljX3BhY2tldF9zZW50LmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDFBMDhCQzAyMTI2OTU1MzAwMUQ1RDdCIC8qIHJ0Y19ldmVudF9pY2VfY2FuZGlkYXRl
X3BhaXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUEwOEJCRDIxMjY5NTUzMDAxRDVEN0IgLyog
cnRjX2V2ZW50X2ljZV9jYW5kaWRhdGVfcGFpcl9jb25maWcuY2MgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTMxQzQ3NTIzNEM4MUI2MDAyOEE2MTUgLyogcnRjX2V2ZW50X2xvZy5jYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxMzFDNDc0MjM0QzgxQjYwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nX2ZhY3Rv
cnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDE3OTIxMjczOEZCMDA2MzRGQ0YgLyogcnRj
X2V2ZW50X2xvZ19pbXBsLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0QTYyMzRDODM0RTAw
MjhBNjE1IC8qIGVuY29kZXJfYml0cmF0ZV9hZGp1c3Rlci5jYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFDNDA1MjM0QzdCN0UwMDI4QTYxNSAvKiBhdXRvX2NvcnJlbGF0aW9uLmNjIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNDEzMUJGOUYyMzRCODhBNjAwMjhBNjE1IC8qIHJpZF9kZXNjcmlwdGlvbi5j
YyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMzk1MjM0Qjk1N0QwMDI4QTYxNSAvKiByZXZlcmJf
ZGVjYXlfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0RjYyMzRDODY3QjAw
MjhBNjE1IC8qIGhpc3RvZ3JhbS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMkY5MjM0QjhE
QzIwMDI4QTYxNSAvKiBydGNfZXZlbnRfbG9nX291dHB1dF9maWxlLmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDEzMUM1MzMyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9wcm9iZV9jbHVzdGVy
X2NyZWF0ZWQuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzU1NTIzNEM4QjE5MDAyOEE2MTUg
LyogcnRjX2V2ZW50X3Byb2JlX3Jlc3VsdF9mYWlsdXJlLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDEzMUM1MzcyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9wcm9iZV9yZXN1bHRfc3VjY2Vz
cy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDM0UyMjM0QzdBMDgwMDI4QTYxNSAvKiBydGNf
ZXZlbnRfcHJvY2Vzc29yLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM1MzkyMzRDOEIxOTAw
MjhBNjE1IC8qIHJ0Y19ldmVudF9yb3V0ZV9jaGFuZ2UuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0
MTMxQzU1NzIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X3J0Y3BfcGFja2V0X2luY29taW5n
LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM1NEMyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19l
dmVudF9ydGNwX3BhY2tldF9vdXRnb2luZy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDNTU5
MjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfcnRwX3BhY2tldF9pbmNvbWluZy5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDNTNCMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfcnRw
X3BhY2tldF9vdXRnb2luZy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDNTUyMjM0QzhCMTkw
MDI4QTYxNSAvKiBydGNfZXZlbnRfdmlkZW9fcmVjZWl2ZV9zdHJlYW1fY29uZmlnLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEzMUM1NTQyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF92aWRl
b19zZW5kX3N0cmVhbV9jb25maWcuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzNDRjIzNEI5
ODQyMDAyOEE2MTUgLyogcnRjX3N0YXRzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGMkQy
MzRCODgyMDAwMjhBNjE1IC8qIHJ0Y19zdGF0c19jb2xsZWN0b3IuY2MgaW4gU291cmNlcyAqLywK
KwkJCQk0MTMxQzNDRTIzNEI5ODQyMDAyOEE2MTUgLyogcnRjX3N0YXRzX3JlcG9ydC5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFCRjMzMjM0Qjg4MjAwMDI4QTYxNSAvKiBydGNfc3RhdHNfdHJh
dmVyc2FsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5Qzg0MUQxRkUyNEFFRjAwNDBDMzBGIC8q
IHJ0Y19zdHJlYW1fY29uZmlnLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGQTQyMzRCODhB
NjAwMjhBNjE1IC8qIHZpZGVvX2NvbW1vbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNzk1M0ND
MjE2OTgyREIwMDI4MjY2QiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQubW0gaW4gU291cmNl
cyAqLywKLQkJCQk0MTMxQzNBRTIzNEI5NkMzMDAyOEE2MTUgLyogY2hhbm5lbF9sYXlvdXQuY2Mg
aW4gU291cmNlcyAqLywKKwkJCQk0MTc3RjUxMDIzODBFODQ4MDBDMDQ0ODYgLyogUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY1Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzRTY3OEIyMTY5ODdCOTAw
RUYzN0VEIC8qIFJUQ0NWUGl4ZWxCdWZmZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNC
NTIxNjk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSBpbiBT
b3VyY2VzICovLAogCQkJCTQxNzk1M0I3MjE2OTgyNDIwMDI4MjY2QiAvKiBSVENEZWZhdWx0Vmlk
ZW9FbmNvZGVyRmFjdG9yeS5tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRjUyMTZCMDgxQjAw
NDM2M0FDIC8qIFJUQ0VuY29kZWRJbWFnZStQcml2YXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDE3OTUzRkEyMTY5ODRCRTAwMjgyNjZCIC8qIFJUQ0VuY29kZWRJbWFnZS5tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDE0NEIzRDYyMTY5OEExQTAwNDM2M0FDIC8qIFJUQ0gyNjRQcm9maWxlTGV2ZWxJ
ZC5tbSBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMUVBMjM0QjhBNEIwMDI4QTYxNSAvKiBwYWNr
ZXRfdHJhbnNwb3J0X2ludGVybmFsLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE3N0Y1MTIyMzgw
RTg0ODAwQzA0NDg2IC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTQxNDRCM0QzMjE2OTg5NkQwMDQzNjNBQyAvKiBSVENOYXRpdmVJNDIwQnVmZmVyLm1tIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzOEIyMzRCOTU3RDAwMjhBNjE1IC8qIHJlbmRlcl9yZXZl
cmJfbW9kZWwuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzUzOTIzNEM4QjE5MDAyOEE2MTUg
LyogcnRjX2V2ZW50X3JvdXRlX2NoYW5nZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDRCM0Qx
MjE2OTg5NjcwMDQzNjNBQyAvKiBSVENOYXRpdmVNdXRhYmxlSTQyMEJ1ZmZlci5tbSBpbiBTb3Vy
Y2VzICovLAotCQkJCTQxMzFDMjJCMjM0QjhCQjIwMDI4QTYxNSAvKiBmaWVsZF90cmlhbF91bml0
cy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRjNGMjM0Qjg4MjAwMDI4QTYxNSAvKiBkdGxz
X3NydHBfdHJhbnNwb3J0LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMxRDMyMzRCOEE0QjAw
MjhBNjE1IC8qIHBzZXVkb190Y3AuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODJCOTFGRTIw
RENEMDA0MEMzMEYgLyogcnRjcF9kZW11eGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJG
MUEyMzRCODgyMDAwMjhBNjE1IC8qIHJ0Y3BfbXV4X2ZpbHRlci5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDRDI4NUZBMUU2QTY0NTIwMDk0RkRDOCAvKiBydGNwX25hY2tfc3RhdHMuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REODg5NzFFNDNCRTNDMDA2MjFFOTIgLyogcnRjcF9wYWNrZXQuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REODg5QTFFNDNCRTNDMDA2MjFFOTIgLyogcnRjcF9yZWNl
aXZlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRkE4MjM0Qjg4QTYwMDI4QTYxNSAvKiBt
ZWRpYV9jaGFubmVsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4OUQxRTQzQkUzQzAwNjIx
RTkyIC8qIHJ0Y3Bfc2VuZGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMyRjcyMzRCOERD
MjAwMjhBNjE1IC8qIG1lZGlhX3R5cGVzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5QzgyRkYx
RkUyMEYwMjAwNDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTlDODMwMjFGRTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9jb25maWcuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTlDODMwMDFGRTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFu
c2NlaXZlcl9pbXBsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4ODlENzcyMTZCQzRFQzAwNDYx
NEREIC8qIFJUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5tbSBpbiBTb3VyY2VzICovLAotCQkJCTQx
MzFCRjNBMjM0Qjg4MjAwMDI4QTYxNSAvKiBydHBfbWVkaWFfdXRpbHMuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTg4OUQ3OTIxNkJDNEVDMDA0NjE0REQgLyogUlRDUnRwRnJhZ21lbnRhdGlvbkhl
YWRlcitQcml2YXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGQ0JCODkyMUIyMDBGRDAwQTVE
RjI3IC8qIFJUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIubSBpbiBTb3VyY2VzICovLAotCQkJCTQx
MzFDMjMxMjM0QjhCQjIwMDI4QTYxNSAvKiBmaWVsZF90cmlhbF9saXN0LmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUM2M0ZBNzcxRTQxN0FFRDAwMkNBNTMxIC8qIHJ0Y3N0YXRzX29iamVjdHMuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTNFNjc3NjIxNjk4NjYxMDBFRjM3RUQgLyogUlRDVmlkZW9D
b2RlY0NvbnN0YW50cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxNDRCM0U4MjE2OUM1RTMwMDQz
NjNBQyAvKiBSVENWaWRlb0NvZGVjSW5mbytQcml2YXRlLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NDEzMUJGMDgyMzRCODgyMDAwMjhBNjE1IC8qIGppdHRlcl9idWZmZXJfZGVsYXkuY2MgaW4gU291
cmNlcyAqLywKLQkJCQk0MTMxQzM5OTIzNEI5NTdEMDAyOEE2MTUgLyogZnVsbGJhbmRfZXJsZV9l
c3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzU0MzIzNEM4QjE5MDAyOEE2MTUg
LyogcnRjX2V2ZW50X2dlbmVyaWNfYWNrX3JlY2VpdmVkLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDEzRTY3OTgyMTY5ODgzOTAwRUYzN0VEIC8qIFJUQ1ZpZGVvQ29kZWNJbmZvLm0gaW4gU291cmNl
cyAqLywKIAkJCQk0MTc5NTNCODIxNjk4MjQyMDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFj
dG9yeUgyNjQubSBpbiBTb3VyY2VzICovLAogCQkJCTQxNzk1M0M3MjE2OTgyNEIwMDI4MjY2QiAv
KiBSVENWaWRlb0RlY29kZXJIMjY0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDE3N0Y1MTEyMzgw
RTg0ODAwQzA0NDg2IC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk0MTNFNjc2ODIxNjk4NTRCMDBFRjM3RUQgLyogUlRDVmlkZW9EZWNvZGVyVlA4Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE3OTUzQjkyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRW5jb2Rl
ckZhY3RvcnlIMjY0Lm0gaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzQ0NjIzNEM4MEFCMDAyOEE2
MTUgLyogZnJhbWVyYXRlX2NvbnRyb2xsZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTND
QTIxNjk4MjRCMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVySDI2NC5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTQxNzdGNTE2MjM4MEU4NDgwMEMwNDQ4NiAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzRTY3QTMyMTY5ODg5NTAwRUYzN0VEIC8qIFJUQ1ZpZGVv
RW5jb2RlclFwVGhyZXNob2xkcy5tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRjcyMTZCMDlD
QjAwNDM2M0FDIC8qIFJUQ1ZpZGVvRW5jb2RlclNldHRpbmdzK1ByaXZhdGUubW0gaW4gU291cmNl
cyAqLywKLQkJCQk0MTNFNjc2NTIxNjk4NTQ2MDBFRjM3RUQgLyogUlRDVmlkZW9FbmNvZGVyVlA4
Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0MkQyMzRDN0Q4QTAwMjhBNjE1IC8qIGdlbmVy
aWNfZnJhbWVfaW5mby5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNTY1MjM0Qzk1NjEwMDI4
QTYxNSAvKiBSVENWaWRlb0VuY29kZXJTZXR0aW5ncy5tIGluIFNvdXJjZXMgKi8sCisJCQkJNDEz
RTY3NjUyMTY5ODU0NjAwRUYzN0VEIC8qIFJUQ1ZpZGVvRW5jb2RlclZQOC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxM0U2NzkwMjE2OTg3REIwMEVGMzdFRCAvKiBSVENWaWRlb0ZyYW1lLm1tIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGNTEyMzRCODgyMDAwMjhBNjE1IC8qIGR0bWZfc2VuZGVy
LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE2QjQ0MEUyMzVEQzIzQzAwNDBFMjU1IC8qIFJUQ1dy
YXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTNFNjc2RDIx
Njk4NTRCMDBFRjM3RUQgLyogUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRW5jb2Rlci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxRDZCNDU5MjEyNzMxNTkwMDhGOTM1MyAvKiBydHBfYml0cmF0ZV9jb25m
aWd1cmF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODJCNDFGRTIwRENEMDA0MEMzMEYg
LyogcnRwX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFCRjlDMjM0Qjg4QTYwMDI4
QTYxNSAvKiBydHBfZGF0YV9lbmdpbmUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMwOTIwMjFF
RjhEMEE2MDA3NTdDNTUgLyogcnRwX2RlbXV4ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMx
QzRENTIzNEM4NEEzMDAyOEE2MTUgLyogcnRwX2RlcGVuZGVuY3lfZGVzY3JpcHRvcl9leHRlbnNp
b24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhCMDFFNDNCRTNDMDA2MjFFOTIgLyogcnRw
X2Zvcm1hdC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRjQ0MjM0Qjg4MjAwMDI4QTYxNSAv
KiBqc2VwX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDQ4MjM0Qjg5OEQw
MDI4QTYxNSAvKiBpcF9hZGRyZXNzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4QTQxRTQz
QkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRfaDI2NC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQx
MzFDMkY0MjM0QjhEQzIwMDI4QTYxNSAvKiBqc2VwX2ljZV9jYW5kaWRhdGUuY2MgaW4gU291cmNl
cyAqLywKLQkJCQk0MTMxQzU1RjIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2R0bHNfd3Jp
dGFibGVfc3RhdGUuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTc3RjRGRDIzODBFODAwMDBDMDQ0
ODYgLyogcnRwX2Zvcm1hdF9oMjY1LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4QTYxRTQz
QkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRfdmlkZW9fZ2VuZXJpYy5jYyBpbiBTb3VyY2VzICov
LAotCQkJCTQxMzFDMDg5MjM0Qjg5OEQwMDI4QTYxNSAvKiBuYXRfdHlwZXMuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk1Q0REODhBQjFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF92cDguY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhBRTFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1h
dF92cDkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODNGNjFFNDM5QTZGMDA2MjFFOTIgLyog
cnRwX2ZyYW1lX3JlZmVyZW5jZV9maW5kZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzUw
MTIzNEM4QTE1MDAyOEE2MTUgLyogbG9nZ2luZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
QUI4MUU0M0MwMEYwMDYyMUU5MiAvKiBydHBfZ2VuZXJhdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDFFMDJDN0EyMTI3MzQ3NDAwQzI3Q0Q2IC8qIHJ0cF9nZW5lcmljX2ZyYW1lX2Rlc2NyaXB0
b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDFCMDIxMjc1OTAyMDA2MzRGQ0YgLyogcnRw
X2dlbmVyaWNfZnJhbWVfZGVzY3JpcHRvcl9leHRlbnNpb24uY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTQ1RTREQzFFRjhDQ0VGMDBGQ0Y2RTYgLyogcnRwX2hlYWRlcl9leHRlbnNpb25fbWFwLmNj
IGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM1M0IyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVu
dF9ydHBfcGFja2V0X291dGdvaW5nLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzRTY3N0QyMTY5
ODZBRTAwRUYzN0VEIC8qIHJ0cF9oZWFkZXJfZXh0ZW5zaW9uX3NpemUuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REODhCNTFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2hlYWRlcl9leHRlbnNpb25z
LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyRjYyMzRCOERDMjAwMjhBNjE1IC8qIHJ0cF9o
ZWFkZXJzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGM0EyMzRCODgyMDAwMjhBNjE1IC8q
IHJ0cF9tZWRpYV91dGlscy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OEJFMUU0M0JFM0Qw
MDYyMUU5MiAvKiBydHBfcGFja2V0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4QjkxRTQz
QkUzRDAwNjIxRTkyIC8qIHJ0cF9wYWNrZXRfaGlzdG9yeS5jYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFDNEREMjM0Qzg0QTMwMDI4QTYxNSAvKiBydHBfc2VxdWVuY2VfbnVtYmVyX21hcC5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxMzFDMkY4MjM0QjhEQzIwMDI4QTYxNSAvKiBydHBfcGFja2V0
X2luZm8uY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODMwNzFGRTIwRjAyMDA0MEMzMEYgLyog
cnRwX3BhY2tldF9yZWNlaXZlZC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDM0Q5MjM0Qzc5
RDEwMDI4QTYxNSAvKiB2cDhfdGVtcG9yYWxfbGF5ZXJzLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NDEzMUMyM0UyMzRCOEJCMjAwMjhBNjE1IC8qIGNwdV9zcGVlZF9leHBlcmltZW50LmNjIGluIFNv
dXJjZXMgKi8sCi0JCQkJNDEzMUMzQzMyMzRCOTdCNDAwMjhBNjE1IC8qIGF1ZGlvX2RlY29kZXJf
bXVsdGlfY2hhbm5lbF9vcHVzX2ltcGwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUUwMkM3QzIx
MjczNDc0MDBDMjdDRDYgLyogcnRwX3BhY2tldF90b19zZW5kLmNjIGluIFNvdXJjZXMgKi8sCi0J
CQkJNDEzMUM0MUUyMzRDN0NBRDAwMjhBNjE1IC8qIHBmZmZ0X3dyYXBwZXIuY2MgaW4gU291cmNl
cyAqLywKLQkJCQk0MTMxQzA2MTIzNEI4OThEMDAyOEE2MTUgLyogbG9nX3NpbmtzLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEzMUMzM0MyMzRCOERERjAwMjhBNjE1IC8qIHJ0cF9wYXJhbWV0ZXJz
LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGMTAyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF9w
YXJhbWV0ZXJzX2NvbnZlcnNpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTAyRjZBQjIxMjcz
MkIxMDA2QUU4RDcgLyogcnRwX3BheWxvYWRfcGFyYW1zLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDEzMUJGMTkyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF9yZWNlaXZlci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFDMzQ3MjM0QjhEREYwMDI4QTYxNSAvKiBydHBfcmVjZWl2ZXJfaW50ZXJmYWNl
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5QzgzQ0QxRkUyNDdCNDAwNDBDMzBGIC8qIHJ0cF9y
dGNwX2RlZmluZXMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODJCRjFGRTIwRENEMDA0MEMz
MEYgLyogcnRwX3J0Y3BfZGVtdXhlcl9oZWxwZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QzQ5MDIzNEM4MkVFMDAyOEE2MTUgLyogZmllbGRfdHJpYWxfYmFzZWRfY29uZmlnLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDg4Q0MxRTQzQkUzRDAwNjIxRTkyIC8qIHJ0cF9ydGNwX2ltcGwu
Y2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkVGNzIzNEI4ODIwMDAyOEE2MTUgLyogcnRwX3Nl
bmRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OEQzMUU0M0JFM0QwMDYyMUU5MiAvKiBy
dHBfc2VuZGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4Q0UxRTQzQkUzRDAwNjIxRTky
IC8qIHJ0cF9zZW5kZXJfYXVkaW8uY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzM0NDIzNEI4
RERGMDAyOEE2MTUgLyogcnRwX3NlbmRlcl9pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REODhEMTFFNDNCRTNEMDA2MjFFOTIgLyogcnRwX3NlbmRlcl92aWRlby5jYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMzFDNEREMjM0Qzg0QTMwMDI4QTYxNSAvKiBydHBfc2VxdWVuY2VfbnVt
YmVyX21hcC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4MkJDMUZFMjBEQ0QwMDQwQzMwRiAv
KiBydHBfc3RyZWFtX3JlY2VpdmVyX2NvbnRyb2xsZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REODVCMjFFNDNCNUMwMDA2MjFFOTIgLyogcnRwX3N0cmVhbXNfc3luY2hyb25pemVyLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg2MjcxRTZBNjY5RDAwOTRGREM4IC8qIHJ0cF90b19udHBf
ZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGMUUyMzRCODgyMDAwMjhBNjE1
IC8qIHJ0cF90cmFuc2NlaXZlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMzNEMjM0QjhE
REYwMDI4QTYxNSAvKiBydHBfdHJhbnNjZWl2ZXJfaW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDEzMUJGNTMyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF90cmFuc3BvcnQuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTMwOTIxQjFFRjhENjNGMDA3NTdDNTUgLyogcnRwX3RyYW5zcG9ydF9j
b250cm9sbGVyX3NlbmQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhENTFFNDNCRTNEMDA2
MjFFOTIgLyogcnRwX3V0aWxpdHkuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkY5MDIzNEI4
OEE2MDAyOEE2MTUgLyogcnRwX3V0aWxzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMDJDN0Qy
MTI3MzQ3NDAwQzI3Q0Q2IC8qIHJ0cF92aWRlb19oZWFkZXIuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MUQ2QjQ1QzIxMjczMTU5MDA4RjkzNTMgLyogcnRwX3ZpZGVvX3NlbmRlci5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxMzA5MUY0MUVGOENGOTIwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFt
X3JlY2VpdmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg5NkMxRTQzQkYzQTAwNjIxRTky
IC8qIHJ0cGZiLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGNTMyMzRCODgyMDAwMjhBNjE1
IC8qIHJ0cF90cmFuc3BvcnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODNGODFFNDM5QTZG
MDA2MjFFOTIgLyogcnR0X2ZpbHRlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMzhGMjM0
Qjk1N0QwMDI4QTYxNSAvKiBmaWx0ZXJfYW5hbHl6ZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0
MTMxQzM3RjIzNEI5NTdEMDAyOEE2MTUgLyogYXBpX2NhbGxfaml0dGVyX21ldHJpY3MuY2MgaW4g
U291cmNlcyAqLywKLQkJCQk0MTMxQzAzRjIzNEI4OThEMDAyOEE2MTUgLyogY3JjMzIuY2MgaW4g
U291cmNlcyAqLywKLQkJCQk0MTMxQzREMzIzNEM4NEEzMDAyOEE2MTUgLyogc291cmNlX3RyYWNr
ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzI0MjIzNEI4QkIyMDAyOEE2MTUgLyogcnR0
X211bHRfZXhwZXJpbWVudC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MUNBMjEyNzU5M0Yw
MDYzNEZDRiAvKiBydHRfc3RhdHMuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzIyRjIzNEI4
QkIyMDAyOEE2MTUgLyogc3RydWN0X3BhcmFtZXRlcnNfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNDEzMUJGOTcyMzRCODhBNjAwMjhBNjE1IC8qIHN0cmVhbV9wYXJhbXMuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTlDODJCNzFGRTIwRENEMDA0MEMzMEYgLyogcnR4X3JlY2VpdmVfc3Ry
ZWFtLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxNjQyMTI3Mzg1QjAwNjM0RkNGIC8qIHJ3
X2xvY2tfcG9zaXguY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDE2MTIxMjczODVCMDA2MzRG
Q0YgLyogcndfbG9ja193cmFwcGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMDJDRDQyMTI3
MzYwNzAwQzI3Q0Q2IC8qIHNhbXBsZV9jb3VudGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEz
MUJGMzgyMzRCODgyMDAwMjhBNjE1IC8qIHZpZGVvX3RyYWNrLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDE2RDNCRTkyMTI3MzFDMjAwNzc1RjA5IC8qIHNhdHVyYXRpb25fcHJvdGVjdG9yLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNGRDUzOTMxRTRCRDNBMzAwNDgyOTA4IC8qIHNjYWxlX25lb24u
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0ZENTM5NDFFNEJEM0EzMDA0ODI5MDggLyogc2NhbGVf
bmVvbjY0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyMzlCM0YyMTQ3NkRDNDAwMzk2RjgxIC8q
IHNjcmVlbnNoYXJlX2xheWVycy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDM0M4MjM0Qjk3
RjQwMDI4QTYxNSAvKiBzY3RwX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFC
RUZFMjM0Qjg4MjAwMDI4QTYxNSAvKiBzY3RwX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAor
CQkJCTQxMzFDMzNGMjM0QjhEREYwMDI4QTYxNSAvKiBzY3RwX3RyYW5zcG9ydF9pbnRlcmZhY2Uu
Y2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkY2MTIzNEI4ODIwMDAyOEE2MTUgLyogc2N0cF91
dGlscy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OTZGMUU0M0JGM0EwMDYyMUU5MiAvKiBz
ZGVzLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzRTIyMzRDN0EwODAwMjhBNjE1IC8qIHJ0
Y19ldmVudF9wcm9jZXNzb3IuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzUzNzIzNEM4QjE5
MDAyOEE2MTUgLyogcnRjX2V2ZW50X3Byb2JlX3Jlc3VsdF9zdWNjZXNzLmNjIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDEzMUMwNkYyMzRCODk4RDAwMjhBNjE1IC8qIG5ldF9oZWxwZXJzLmNjIGluIFNv
dXJjZXMgKi8sCi0JCQkJNDEzMUMxNUUyMzRCODlFMjAwMjhBNjE1IC8qIHByb3h5X2luZm8uY2Mg
aW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkYwOTIzNEI4ODIwMDAyOEE2MTUgLyogc2RwX3Nlcmlh
bGl6ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkYwQjIzNEI4ODIwMDAyOEE2MTUgLyog
c2RwX3V0aWxzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMjYzNjIyMTI2N0FERjAwMjc0RjU5
IC8qIHNkcF92aWRlb19mb3JtYXQuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzAzQzIzNEI4
OThEMDAyOEE2MTUgLyogbmF0X3NlcnZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NUI2
MUU0M0I1QzAwMDYyMUU5MiAvKiBzZW5kX2RlbGF5X3N0YXRzLmNjIGluIFNvdXJjZXMgKi8sCi0J
CQkJNDEzMUMyQTAyMzRCOENDNDAwMjhBNjE1IC8qIGFwbV9oZWxwZXJzLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDkwNjExRTQzRDExMjAwNjIxRTkyIC8qIHNlbmRfc2lkZV9iYW5kd2lkdGhf
ZXN0aW1hdGlvbi5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMjlEMjM0QjhDQzQwMDI4QTYx
NSAvKiB3ZWJydGNfdm9pY2VfZW5naW5lLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUJGMjUy
MzRCODgyMDAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbV9vYnNlcnZlci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4NUI5MUU0M0I1QzAwMDYyMUU5MiAvKiBzZW5kX3N0YXRpc3RpY3NfcHJveHku
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTI5OUI4QzIxMjczNjUxMDBCMzQxNEIgLyogc2VuZF90
aW1lX2hpc3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODk3MjFFNDNCRjNBMDA2MjFF
OTIgLyogc2VuZGVyX3JlcG9ydC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRkNCQjI3MjFCMUY4
N0UwMEE1REYyNyAvKiBzZW50X3BhY2tldC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDNEZF
MjM0Qzg2Q0IwMDI4QTYxNSAvKiBzZXF1ZW5jZV9jaGVja2VyLmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDEzMUMxMEEyMzRCODlFMjAwMjhBNjE1IC8qIHNlcnZlcl9zb2NrZXRfYWRhcHRlcnMuY2Mg
aW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkVGOTIzNEI4ODIwMDAyOEE2MTUgLyogc2Vzc2lvbl9k
ZXNjcmlwdGlvbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4M0ZCMUU0MzlBNkYwMDYyMUU5
MiAvKiBzZXNzaW9uX2luZm8uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVERjFFNkE2MzQz
MDA5NEZEQzggLyogc2hhZG93X2ZpbHRlcl91cGRhdGVfZ2Fpbi5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxNkQzQkVCMjEyNzMxQzIwMDc3NUYwOSAvKiBzaWduYWxfY2xhc3NpZmllci5jYyBpbiBT
b3VyY2VzICovLAotCQkJCTQxMzFDNDRDMjM0QzgwREMwMDI4QTYxNSAvKiBjaGFubmVsX21peGVy
LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwMjgyMzRCODk4RDAwMjhBNjE1IC8qIG5ldHdv
cmtfbW9uaXRvci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMjg3MjM0QjhDQzQwMDI4QTYx
NSAvKiBpbnRlcm5hbF9kZWNvZGVyX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QzMyNDIzNEI4REMyMDAyOEE2MTUgLyogcGVlcl9jb25uZWN0aW9uX2ludGVyZmFjZS5jYyBpbiBT
b3VyY2VzICovLAotCQkJCTQxMzFCRjE5MjM0Qjg4MjAwMDI4QTYxNSAvKiBydHBfcmVjZWl2ZXIu
Y2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzM3QTIzNEI5NTdEMDAyOEE2MTUgLyogc2lnbmFs
X2RlcGVuZGVudF9lcmxlX2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMTVD
MjM0Qjg5RTIwMDI4QTYxNSAvKiBzaWduYWxfdGhyZWFkLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDFGMjYzQkIyMTI2ODExNTAwMjc0RjU5IC8qIHNpZ3Nsb3QuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REOEJEQjFFNDNDMkI1MDA2MjFFOTIgLyogc2ltcGxlX2ludGVycG9sYXRlX2xzZi5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwMzkyMzRCODk4RDAwMjhBNjE1IC8qIGV2ZW50X3RyYWNl
ci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMTVBMjM0Qjg5RTIwMDI4QTYxNSAvKiBydGNf
Y2VydGlmaWNhdGVfZ2VuZXJhdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCREQxRTQz
QzJCNTAwNjIxRTkyIC8qIHNpbXBsZV9scGNfYW5hbHlzaXMuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFDM0JGMjM0Qjk3QjQwMDI4QTYxNSAvKiBhdWRpb19jb2Rlcl9vcHVzX2NvbW1vbi5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4QkRGMUU0M0MyQjUwMDYyMUU5MiAvKiBzaW1wbGVfbHNm
X2RlcXVhbnQuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkUxMUU0M0MyQjUwMDYyMUU5MiAv
KiBzaW1wbGVfbHNmX3F1YW50LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDFEMDIxMjc1OTdE
MDA2MzRGQ0YgLyogc2ltdWxhdGVkX25ldHdvcmsuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QkYyRTIzNEI4ODIwMDAyOEE2MTUgLyogcmVtb3RlX2F1ZGlvX3NvdXJjZS5jYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxMzFDMDI0MjM0Qjg5OEQwMDI4QTYxNSAvKiBkYXRhX3JhdGVfbGltaXRlci5j
YyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMjk3MjM0QjhDQzQwMDI4QTYxNSAvKiBzaW11bGNh
c3QuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkY0ODIzNEI4ODIwMDAyOEE2MTUgLyogc2lt
dWxjYXN0X2Rlc2NyaXB0aW9uLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMyOTYyMzRCOEND
NDAwMjhBNjE1IC8qIHNpbXVsY2FzdF9lbmNvZGVyX2FkYXB0ZXIuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MTkyNDFFRTIxMjc1QUZBMDA2MzRGQ0YgLyogc2ltdWxjYXN0X3JhdGVfYWxsb2NhdG9y
LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzM0MyMzRCOERERjAwMjhBNjE1IC8qIHJ0cF9w
YXJhbWV0ZXJzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxRUYyMTI3NUFGQTAwNjM0RkNG
IC8qIHNpbXVsY2FzdF91dGlsaXR5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3NUMxRTQz
QkFGNTAwNjIxRTkyIC8qIHNpbmNfcmVzYW1wbGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDg3RTExRTQzQkQ3MDAwNjIxRTkyIC8qIHNpbmNfcmVzYW1wbGVyX3NzZS5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4NzVFMUU0M0JBRjUwMDYyMUU5MiAvKiBzaW51c29pZGFsX2xpbmVhcl9j
aGlycF9zb3VyY2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNENFNTFFNDMyMEE5MDAyNjUx
QzggLyogc2xlZXAuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJFNTFFNDNDMkI1MDA2MjFF
OTIgLyogc21vb3RoLmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzRBNDIzNEM4MzRFMDAyOEE2
MTUgLyogYnVmZmVyZWRfZnJhbWVfZGVjcnlwdG9yLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEz
MUMzNzkyMzRCOTU3RDAwMjhBNjE1IC8qIGJsb2NrX2RlbGF5X2J1ZmZlci5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4QkUzMUU0M0MyQjUwMDYyMUU5MiAvKiBzbW9vdGhfb3V0X2RhdGEuYyBp
biBTb3VyY2VzICovLAogCQkJCTVDRDI4NUY2MUU2QTYzRjYwMDk0RkRDOCAvKiBzbW9vdGhpbmdf
ZmlsdGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxM0MyMzRCODlFMjAwMjhBNjE1IC8q
IHNvY2tldC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMTQ3MjM0Qjg5RTIwMDI4QTYxNSAv
KiBzb2NrZXRfYWRhcHRlcnMuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzEwRDIzNEI4OUUy
MDAyOEE2MTUgLyogc29ja2V0X2FkZHJlc3MuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzEw
MjIzNEI4OUUyMDAyOEE2MTUgLyogc29ja2V0X2FkZHJlc3NfcGFpci5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxMzFDMTRFMjM0Qjg5RTIwMDI4QTYxNSAvKiBzb2NrZXRfc3RyZWFtLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDhCRTcxRTQzQzJCNTAwNjIxRTkyIC8qIHNvcnRfc3EuYyBpbiBT
b3VyY2VzICovLAotCQkJCTQxMzFDMUI0MjM0QjhBNEEwMDI4QTYxNSAvKiByZWxheV9wb3J0LmNj
IGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM0RDMyMzRDODRBMzAwMjhBNjE1IC8qIHNvdXJjZV90
cmFja2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjRDN0QxRTQzMUY5QzAwMjY1MUM4IC8q
IHNwYXJzZV9maXJfZmlsdGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0RTAyMzRDODRE
RDAwMjhBNjE1IC8qIGRlZmF1bHRfdGFza19xdWV1ZV9mYWN0b3J5X3N0ZGxpYi5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxOTI0MUFEMjEyNzU4RDMwMDYzNEZDRiAvKiBzcGVjdHJhbF9mZWF0dXJl
cy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDU2MjM0Qjg5OEQwMDI4QTYxNSAvKiBuZXRf
aGVscGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMxMUMyMzRCODlFMjAwMjhBNjE1IC8q
IG9wZW5zc2xfY2VydGlmaWNhdGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDFBODIxMjc1
OEQzMDA2MzRGQ0YgLyogc3BlY3RyYWxfZmVhdHVyZXNfaW50ZXJuYWwuY2MgaW4gU291cmNlcyAq
LywKLQkJCQk0MTMxQzEwNjIzNEI4OUUyMDAyOEE2MTUgLyogcHJveHlfc2VydmVyLmNjIGluIFNv
dXJjZXMgKi8sCi0JCQkJNDEzMUMzN0EyMzRCOTU3RDAwMjhBNjE1IC8qIHNpZ25hbF9kZXBlbmRl
bnRfZXJsZV9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0QwMjFGNzlCMzM0
MDAzODdCNEQgLyogc3BlY3RydW1fYXJfbW9kZWxfdGFibGVzLmMgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REODdEODFFNDNCQzA2MDA2MjFFOTIgLyogc3BlY3RydW1fYXJfbW9kZWxfdGFibGVzLmMg
aW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzM5NjIzNEI5NTdEMDAyOEE2MTUgLyogc3BlY3RydW1f
YnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2NkIxRTQzQjhCNTAwNjIxRTkyIC8q
IHNwbF9pbml0LmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODY2QzFFNDNCOEI1MDA2MjFFOTIg
Lyogc3BsX2lubC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2NzAxRTQzQjhCNTAwNjIxRTky
IC8qIHNwbF9zcXJ0LmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzMxMzIzNEI4REMyMDAyOEE2
MTUgLyogbWVkaWFfdHJhbnNwb3J0X2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
RjI2MzczMjEyNjdCNEEwMDI3NEY1OSAvKiBzcGxfc3FydF9mbG9vci5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDhCRTkxRTQzQzJCNTAwNjIxRTkyIC8qIHNwbGl0X3ZxLmMgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REODY3MTFFNDNCOEI1MDA2MjFFOTIgLyogc3BsaXR0aW5nX2ZpbHRlci5jIGlu
IFNvdXJjZXMgKi8sCkBAIC0xNzgxOCwyMyArMTc5MTUsNDAgQEAKIAkJCQk1Q0REODM1RjFFNDMy
NTcyMDA2MjFFOTIgLyogc3BzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4MzYy
MUU0MzI1NzIwMDYyMUU5MiAvKiBzcHNfdnVpX3Jld3JpdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDg2NzIxRTQzQjhCNTAwNjIxRTkyIC8qIHNxcnRfb2Zfb25lX21pbnVzX3hfc3F1YXJl
ZC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMxMzYyMzRCODlFMjAwMjhBNjE1IC8qIHRhc2tf
cXVldWUuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQkY5QTIzNEI4OEE2MDAyOEE2MTUgLyog
dnA5X3Byb2ZpbGUuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkYwNzIzNEI4ODIwMDAyOEE2
MTUgLyogc3J0cF9maWx0ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkYzRDIzNEI4ODIw
MDAyOEE2MTUgLyogc3J0cF9zZXNzaW9uLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGNEUy
MzRCODgyMDAwMjhBNjE1IC8qIHNydHBfdHJhbnNwb3J0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDEzMUMxNEYyMzRCODlFMjAwMjhBNjE1IC8qIHNzbF9hZGFwdGVyLmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDEzMUMxNDIyMzRCODlFMjAwMjhBNjE1IC8qIHNzbF9jZXJ0aWZpY2F0ZS5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDMTFFMjM0Qjg5RTIwMDI4QTYxNSAvKiBzc2xfZmluZ2VycHJp
bnQuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzExRDIzNEI4OUUyMDAyOEE2MTUgLyogc3Ns
X2lkZW50aXR5LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxMEMyMzRCODlFMjAwMjhBNjE1
IC8qIHNzbF9zdHJlYW1fYWRhcHRlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMjNEMjM0
QjhCQjIwMDI4QTYxNSAvKiBzdGFibGVfdGFyZ2V0X3JhdGVfZXhwZXJpbWVudC5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4NzM2MUU0M0JBQkUwMDYyMUU5MiAvKiBzdGFuZGFsb25lX3ZhZC5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkVCMUU0M0MyQjUwMDYyMUU5MiAvKiBzdGF0ZV9j
b25zdHJ1Y3QuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkVEMUU0M0MyQjUwMDYyMUU5MiAv
KiBzdGF0ZV9zZWFyY2guYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMzhEMjM0Qjk1N0QwMDI4
QTYxNSAvKiBzdGF0aW9uYXJpdHlfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDhBNTExRTQzQkZCMzAwNjIxRTkyIC8qIHN0YXRpc3RpY3NfY2FsY3VsYXRvci5jYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMzFCRjBEMjM0Qjg4MjAwMDI4QTYxNSAvKiBzdGF0c19jb2xsZWN0b3Iu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODVCQzFFNDNCNUMwMDA2MjFFOTIgLyogc3RhdHNf
Y291bnRlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMzQyMjM0QjhEREYwMDI4QTYxNSAv
KiBzdGF0c190eXBlcy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMTU2MjM0Qjg5RTIwMDI4
QTYxNSAvKiBzdHJlYW0uY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQkY5NzIzNEI4OEE2MDAy
OEE2MTUgLyogc3RyZWFtX3BhcmFtcy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NUJGMUU0
M0I1QzAwMDYyMUU5MiAvKiBzdHJlYW1fc3luY2hyb25pemF0aW9uLmNjIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNDEzMUMzRkEyMzRDN0IwMzAwMjhBNjE1IC8qIGF1ZGlvX2VuY29kZXJfbXVsdGlfY2hh
bm5lbF9vcHVzLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0M0IyMzRDODAwNzAwMjhBNjE1
IC8qIHBmZmZ0LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUREQjI2RTIxMjY3OUQyMDAyOTZENDcg
Lyogc3RyaW5nX2J1aWxkZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzBGQzIzNEI4OUUy
MDAyOEE2MTUgLyogcmF0ZV9zdGF0aXN0aWNzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMx
NUIyMzRCODlFMjAwMjhBNjE1IC8qIHN0cmluZ19lbmNvZGUuY2MgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTMxQzE2MjIzNEI4OUUyMDAyOEE2MTUgLyogc3RyaW5nX3RvX251bWJlci5jYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMzFDMTYwMjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJpbmdfdXRpbHMuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MUZDQkI4MDIxQjIwMDEyMDBBNURGMjcgLyogc3RyaW5nX3Zp
ZXcuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzIzQTIzNEI4QkIyMDAyOEE2MTUgLyogaml0
dGVyX3VwcGVyX2JvdW5kX2V4cGVyaW1lbnQuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzFE
QzIzNEI4QTRCMDAyOEE2MTUgLyogcG9ydC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMTU2
MjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJlYW0uY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzIy
RjIzNEI4QkIyMDAyOEE2MTUgLyogc3RydWN0X3BhcmFtZXRlcnNfcGFyc2VyLmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEzMUMxQkUyMzRCOEE0QTAwMjhBNjE1IC8qIHN0dW4uY2MgaW4gU291cmNl
cyAqLywKKwkJCQk0MTMxQzFFMDIzNEI4QTRCMDAyOEE2MTUgLyogc3R1bl9wb3J0LmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEzMUMxQzgyMzRCOEE0QTAwMjhBNjE1IC8qIHN0dW5fcmVxdWVzdC5j
YyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMUQ1MjM0QjhBNEIwMDI4QTYxNSAvKiBzdHVuX3Nl
cnZlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMzk3MjM0Qjk1N0QwMDI4QTYxNSAvKiBz
dWJiYW5kX2VybGVfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1RTIxRTZB
NjM0MzAwOTRGREM4IC8qIHN1YnRyYWN0b3IuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzM5
ODIzNEI5NTdEMDAyOEE2MTUgLyogc3VidHJhY3Rvcl9vdXRwdXQuY2MgaW4gU291cmNlcyAqLywK
KwkJCQk0MTMxQzM4OTIzNEI5NTdEMDAyOEE2MTUgLyogc3VidHJhY3Rvcl9vdXRwdXRfYW5hbHl6
ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVFNDFFNkE2MzQzMDA5NEZEQzggLyogc3Vw
cHJlc3Npb25fZmlsdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1RTYxRTZBNjM0MzAw
OTRGREM4IC8qIHN1cHByZXNzaW9uX2dhaW4uY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTNFNjc4
MjIxNjk4NzBGMDBFRjM3RUQgLyogc3ZjX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLApAQCAtMTc4
NDMsODYgKzE3OTU3LDgzIEBACiAJCQkJNUNERDhBNTQxRTQzQkZCMzAwNjIxRTkyIC8qIHN5bmNf
YnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg0QkUxRTZBNUY5RjAwOTRGREM4IC8q
IHN5bmNhYmxlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg5NzgxRTQzQkYzQTAwNjIxRTky
IC8qIHRhcmdldF9iaXRyYXRlLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwN0YyMzRCODk4
RDAwMjhBNjE1IC8qIG1hY19pZmFkZHJzX2NvbnZlcnRlci5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxMzFDMTM2MjM0Qjg5RTIwMDI4QTYxNSAvKiB0YXNrX3F1ZXVlLmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDEzMUM0ODQyMzRDODI3NDAwMjhBNjE1IC8qIHRhc2tfcXVldWVfYmFzZS5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDNEYzMjM0Qzg2MzkwMDI4QTYxNSAvKiB0YXNrX3F1ZXVlX3N0
ZGxpYi5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMUM5MjM0QjhBNEEwMDI4QTYxNSAvKiB0
Y3BfcG9ydC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxM0U2NzcyMjE2OTg2M0IwMEVGMzdFRCAv
KiB0ZW1wb3JhbF9sYXllcnNfY2hlY2tlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDM0VD
MjM0QzdBNDkwMDI4QTYxNSAvKiBjYXNjYWRlZF9iaXF1YWRfZmlsdGVyLmNjIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDEzMUMxMjAyMzRCODlFMjAwMjhBNjE1IC8qIHRocmVhZC5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4NEMzMUU0M0FGMTMwMDYyMUU5MiAvKiB0aHJlZV9iYW5kX2ZpbHRlcl9i
YW5rLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGQ0JCMjIyMUIxRjgyRjAwQTVERjI3IC8qIHRo
cm93X2RlbGVnYXRlLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM1NDYyMzRDOEIxOTAwMjhB
NjE1IC8qIHJ0Y19ldmVudF9nZW5lcmljX3BhY2tldF9yZWNlaXZlZC5jYyBpbiBTb3VyY2VzICov
LAotCQkJCTQxMzFDMzNEMjM0QjhEREYwMDI4QTYxNSAvKiBydHBfdHJhbnNjZWl2ZXJfaW50ZXJm
YWNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBNTcxRTQzQkZCMzAwNjIxRTkyIC8qIHRp
Y2tfdGltZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDFFMjIxMjc1QTMwMDA2MzRGQ0Yg
LyogdGltZV9kZWx0YS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTVBMUU0M0JGQjMwMDYy
MUU5MiAvKiB0aW1lX3N0cmV0Y2guY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhEQTFFNDNC
RTNEMDA2MjFFOTIgLyogdGltZV91dGlsLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxNEEy
MzRCODlFMjAwMjhBNjE1IC8qIHRpbWVfdXRpbHMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTky
NDFFMzIxMjc1QTMwMDA2MzRGQ0YgLyogdGltZXN0YW1wLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDEzMUMxMzMyMzRCODlFMjAwMjhBNjE1IC8qIHRpbWVzdGFtcF9hbGlnbmVyLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDE5MjQxN0QyMTI3MzkyMzAwNjM0RkNGIC8qIHRpbWVzdGFtcF9leHRyYXBv
bGF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODNGRDFFNDM5QTZGMDA2MjFFOTIgLyog
dGltZXN0YW1wX21hcC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTVEMUU0M0JGQjMwMDYy
MUU5MiAvKiB0aW1lc3RhbXBfc2NhbGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgzRkYx
RTQzOUE2RjAwNjIxRTkyIC8qIHRpbWluZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OTdB
MUU0M0JGM0EwMDYyMUU5MiAvKiB0bW1iX2l0ZW0uY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QkYzNjIzNEI4ODIwMDAyOEE2MTUgLyogYXVkaW9fdHJhY2suY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REODk3RDFFNDNCRjNBMDA2MjFFOTIgLyogdG1tYm4uY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REODk4MDFFNDNCRjNBMDA2MjFFOTIgLyogdG1tYnIuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REODhEQzFFNDNCRTNEMDA2MjFFOTIgLyogdG1tYnJfaGVscC5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxMzFCRjU0MjM0Qjg4MjAwMDI4QTYxNSAvKiB0cmFja19tZWRpYV9pbmZvX21hcC5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzRDAwMUY3OUIzMzQwMDM4N0I0RCAvKiB0cmFuc2Zv
cm0uYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4N0RCMUU0M0JDMDYwMDYyMUU5MiAvKiB0cmFu
c2Zvcm0uYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMTMzMjM0Qjg5RTIwMDI4QTYxNSAvKiB0
aW1lc3RhbXBfYWxpZ25lci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDNFMjM0Qjg5OEQw
MDI4QTYxNSAvKiBuZXR3b3JrLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0MzNEMTYxRjc5QjMz
NDAwMzg3QjREIC8qIHRyYW5zZm9ybV90YWJsZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
QzkxMUU0M0M2NjAwMDYyMUU5MiAvKiB0cmFuc2llbnRfZGV0ZWN0b3IuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REOEM5NTFFNDNDNjYwMDA2MjFFOTIgLyogdHJhbnNpZW50X3N1cHByZXNzb3Iu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDE3NzIxMjczOEMyMDA2MzRGQ0YgLyogdHJhbnNw
b3J0LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwMkEyMzRCODk4RDAwMjhBNjE1IC8qIGNo
ZWNrcy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NUMxMUU0M0I1QzAwMDYyMUU5MiAvKiB0
cmFuc3BvcnRfYWRhcHRlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMUUzMjM0QjhBNEIw
MDI4QTYxNSAvKiB0cmFuc3BvcnRfZGVzY3JpcHRpb24uY2MgaW4gU291cmNlcyAqLywKKwkJCQk0
MTMxQzFBRDIzNEI4QTRBMDAyOEE2MTUgLyogdHJhbnNwb3J0X2Rlc2NyaXB0aW9uX2ZhY3Rvcnku
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODk4MzFFNDNCRjNBMDA2MjFFOTIgLyogdHJhbnNw
b3J0X2ZlZWRiYWNrLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxOEUyMTI3NDlDODAwNjM0
RkNGIC8qIHRyYW5zcG9ydF9mZWVkYmFja19hZGFwdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDEwMkY2QTkyMTI3MzI2MjAwNkFFOEQ3IC8qIHRyYW5zcG9ydF9mZWVkYmFja19wYWNrZXRfbG9z
c190cmFja2VyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGMTEyMzRCODgyMDAwMjhBNjE1
IC8qIHRyYW5zcG9ydF9zdGF0cy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRTAyQ0IwMjEyNzM1
MkQwMEMyN0NENiAvKiB0cmVuZGxpbmVfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDEzMUMxRDkyMzRCOEE0QjAwMjhBNjE1IC8qIHR1cm5fcG9ydC5jYyBpbiBTb3VyY2VzICovLAor
CQkJCTQxMzFDNDU3MjM0QzgxMTgwMDI4QTYxNSAvKiB0dXJuX3BvcnRfZmFjdG9yeS5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDMUMxMjM0QjhBNEEwMDI4QTYxNSAvKiB0dXJuX3NlcnZlci5j
YyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFCRkFCMjM0Qjg4QTYwMDI4QTYxNSAvKiB0dXJuX3V0
aWxzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg0QzUxRTQzQUYxMzAwNjIxRTkyIC8qIHR5
cGluZ19kZXRlY3Rpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhERjFFNDNCRTNEMDA2
MjFFOTIgLyogdWxwZmVjX2dlbmVyYXRvci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDM0Y5
MjM0QzdCMDMwMDI4QTYxNSAvKiBhdWRpb19kZWNvZGVyX211bHRpX2NoYW5uZWxfb3B1cy5jYyBp
biBTb3VyY2VzICovLAotCQkJCTQxMzFCRUY5MjM0Qjg4MjAwMDI4QTYxNSAvKiBzZXNzaW9uX2Rl
c2NyaXB0aW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4RTIxRTQzQkUzRDAwNjIxRTky
IC8qIHVscGZlY19oZWFkZXJfcmVhZGVyX3dyaXRlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQx
MzFDNTU1MjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfcHJvYmVfcmVzdWx0X2ZhaWx1cmUu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhFNDFFNDNCRTNEMDA2MjFFOTIgLyogdWxwZmVj
X3JlY2VpdmVyX2ltcGwuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzFENDIzNEI4QTRCMDAy
OEE2MTUgLyogcDJwX3RyYW5zcG9ydF9jaGFubmVsLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEz
MUMyODAyMzRCOENDNDAwMjhBNjE1IC8qIHVuaGFuZGxlZF9wYWNrZXRzX2J1ZmZlci5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDMTQ0MjM0Qjg5RTIwMDI4QTYxNSAvKiB1bmlxdWVfaWRfZ2Vu
ZXJhdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCRjExRTQzQzJCNTAwNjIxRTkyIC8q
IHVucGFja19iaXRzLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODdERTFFNDNCQzJFMDA2MjFF
OTIgLyogdXRpbGl0eS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMxRjIyMzRCOEE0QjAwMjhB
NjE1IC8qIGR0bHNfdHJhbnNwb3J0LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0M0UyMzRD
ODAwNzAwMjhBNjE1IC8qIGZmdHBhY2suYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NzA4MUU0
M0JBNzUwMDYyMUU5MiAvKiB1dGlsaXR5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2RTMx
RTQzQkEyODAwNjIxRTkyIC8qIHZhZC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NzNBMUU0
M0JBQkUwMDYyMUU5MiAvKiB2YWRfYXVkaW9fcHJvYy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQx
MzFDMTIzMjM0Qjg5RTIwMDI4QTYxNSAvKiBvcGVuc3NsX2lkZW50aXR5LmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDg3M0QxRTQzQkFCRTAwNjIxRTkyIC8qIHZhZF9jaXJjdWxhcl9idWZmZXIu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODZENjFFNDNCQTI4MDA2MjFFOTIgLyogdmFkX2Nv
cmUuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NkQ5MUU0M0JBMjgwMDYyMUU5MiAvKiB2YWRf
ZmlsdGVyYmFuay5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2REMxRTQzQkEyODAwNjIxRTky
IC8qIHZhZF9nbW0uYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFCRjJBMjM0Qjg4MjAwMDI4QTYx
NSAvKiBqc2VwX3Nlc3Npb25fZGVzY3JpcHRpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0RE
ODZERjFFNDNCQTI4MDA2MjFFOTIgLyogdmFkX3NwLmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTMx
QzU1NzIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X3J0Y3BfcGFja2V0X2luY29taW5nLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2RDNCRUMyMTI3MzFDMjAwNzc1RjA5IC8qIHZhZF93aXRo
X2xldmVsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2RDNCRUQyMTI3MzFDMjAwNzc1RjA5IC8q
IHZlY3Rvcl9mbG9hdF9mcmFtZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4Njc0MUU0M0I4
QjUwMDYyMUU5MiAvKiB2ZWN0b3Jfc2NhbGluZ19vcGVyYXRpb25zLmMgaW4gU291cmNlcyAqLywK
LQkJCQk0MTMxQzNENzIzNEM3OUQxMDAyOEE2MTUgLyogdnA4X3RlbXBvcmFsX2xheWVyc19mYWN0
b3J5LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUJGOUUyMzRCODhBNjAwMjhBNjE1IC8qIHZp
ZGVvX2FkYXB0ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTAyRjZFMzIxMjczNDE2MDA2QUU4
RDcgLyogdmlkZW9fYml0cmF0ZV9hbGxvY2F0aW9uLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEz
MUJGNjIyMzRCODgyMDAwMjhBNjE1IC8qIHBlZXJfY29ubmVjdGlvbi5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxMzFDNDFEMjM0QzdDN0QwMDI4QTYxNSAvKiB2aWRlb19iaXRyYXRlX2FsbG9jYXRv
ci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFCRjk0MjM0Qjg4QTYwMDI4QTYxNSAvKiB2aWRl
b19icm9hZGNhc3Rlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRjI2MzYzMjEyNjdBREYwMDI3
NEY1OSAvKiB2aWRlb19jb2RlYy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDQxMjM0Qjg5
OEQwMDI4QTYxNSAvKiBmaWxlX3JvdGF0aW5nX3N0cmVhbS5jYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxMzFCRjYzMjM0Qjg4MjAwMDI4QTYxNSAvKiBleHRlcm5hbF9obWFjLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNEMjg1MzUxRTZBNjE1OTAwOTRGREM4IC8qIHZpZGVvX2NvZGVjX2luaXRpYWxp
emVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUM0NjYyMzRDODE3MjAwMjhBNjE1IC8qIHZp
ZGVvX2NvZGVjX2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRTAyQzhEMjEyNzM0
QjkwMEMyN0NENiAvKiB2aWRlb19jb2RpbmdfZGVmaW5lcy5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4NDAxMUU0MzlBNkYwMDYyMUU5MiAvKiB2aWRlb19jb2RpbmdfaW1wbC5jYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMzFCRkE0MjM0Qjg4QTYwMDI4QTYxNSAvKiB2aWRlb19jb21tb24uY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTlDODQxMTFGRTI0OUFCMDA0MEMzMEYgLyogdmlkZW9fY29u
dGVudF90eXBlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMjYzNjcyMTI2N0FERjAwMjc0RjU5
IC8qIHZpZGVvX2RlY29kZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNGMTIxNjk4NDU1
MDAyODI2NkIgLyogdmlkZW9fZGVjb2Rlcl9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NDEzMUJGMEIyMzRCODgyMDAwMjhBNjE1IC8qIHNkcF91dGlscy5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxNjIyNUQ4MjE2OTgxODEwMEE5MUM5QiAvKiB2aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0g
aW4gU291cmNlcyAqLywKIAkJCQk0MUYyNjM2NTIxMjY3QURGMDAyNzRGNTkgLyogdmlkZW9fZGVj
b2Rlcl9zb2Z0d2FyZV9mYWxsYmFja193cmFwcGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEz
MUMzOTgyMzRCOTU3RDAwMjhBNjE1IC8qIHN1YnRyYWN0b3Jfb3V0cHV0LmNjIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDEzMUMxNEYyMzRCODlFMjAwMjhBNjE1IC8qIHNzbF9hZGFwdGVyLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE0NUY2MjAxRkUxRjM4RDAwRUI5Q0FGIC8qIHZpZGVvX2VuY29kZXIu
Y2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzU1NDIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2
ZW50X3ZpZGVvX3NlbmRfc3RyZWFtX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRTAy
Q0M1MjEyNzM1ODgwMEMyN0NENiAvKiB2aWRlb19lbmNvZGVyX2NvbmZpZy5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxNjIyNUQ0MjE2OTgxODEwMEE5MUM5QiAvKiB2aWRlb19lbmNvZGVyX2ZhY3Rv
cnkubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MUYyNjM2OTIxMjY3QURGMDAyNzRGNTkgLyogdmlk
ZW9fZW5jb2Rlcl9zb2Z0d2FyZV9mYWxsYmFja193cmFwcGVyLmNjIGluIFNvdXJjZXMgKi8sCkBA
IC0xNzkzNiw1MSArMTgwNDcsNTIgQEAKIAkJCQk1Q0REODVDQTFFNDNCNUMwMDA2MjFFOTIgLyog
dmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODQwMzFFNDM5
QTZGMDA2MjFFOTIgLyogdmlkZW9fcmVjZWl2ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRC
NEMyMDFFNDMxRjc1MDAyNjUxQzggLyogdmlkZW9fcmVuZGVyX2ZyYW1lcy5jYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxMzFCRjE0MjM0Qjg4MjAwMDI4QTYxNSAvKiB2aWRlb19ydHBfcmVjZWl2ZXIu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODJCMzFGRTIwRENEMDA0MEMzMEYgLyogdmlkZW9f
c2VuZF9zdHJlYW0uY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQkYxMzIzNEI4ODIwMDAyOEE2
MTUgLyogY29tcG9zaXRlX3J0cF90cmFuc3BvcnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0RE
ODVDRDFFNDNCNUMwMDA2MjFFOTIgLyogdmlkZW9fc2VuZF9zdHJlYW0uY2MgaW4gU291cmNlcyAq
LywKLQkJCQk0MTMxQzI3ODIzNEI4Q0M0MDAyOEE2MTUgLyogd2VicnRjX21lZGlhX2VuZ2luZV9k
ZWZhdWx0cy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMDJGNkNDMjEyNzMzQjcwMDZBRThENyAv
KiB2aWRlb19zZW5kX3N0cmVhbV9pbXBsLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMxMEMy
MzRCODlFMjAwMjhBNjE1IC8qIHNzbF9zdHJlYW1fYWRhcHRlci5jYyBpbiBTb3VyY2VzICovLAor
CQkJCTQxMzFCRjhGMjM0Qjg4QTYwMDI4QTYxNSAvKiB2aWRlb19zb3VyY2VfYmFzZS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxQTA4QkIwMjEyNjgxQzgwMDFENUQ3QiAvKiB2aWRlb19zb3VyY2Vf
aW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0MDEyMzRDN0IzNTAwMjhBNjE1
IC8qIGhpZ2hfcGFzc19maWx0ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODVDRjFFNDNC
NUMwMDA2MjFFOTIgLyogdmlkZW9fc3RyZWFtX2RlY29kZXIuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTAyRjZEQjIxMjczNDE2MDA2QUU4RDcgLyogdmlkZW9fc3RyZWFtX2RlY29kZXJfY3JlYXRl
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEwMkY2Q0IyMTI3MzNCNzAwNkFFOEQ3IC8qIHZpZGVv
X3N0cmVhbV9kZWNvZGVyX2ltcGwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODMxRjFGRTI0
MkU2MDA0MEMzMEYgLyogdmlkZW9fc3RyZWFtX2VuY29kZXIuY2MgaW4gU291cmNlcyAqLywKLQkJ
CQk0MTMxQzRFQzIzNEM4NjExMDAyOEE2MTUgLyogcmVwb3J0X2Jsb2NrX2RhdGEuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTNFNjdBNTIxNjk4OERDMDBFRjM3RUQgLyogdmlkZW9fc3RyZWFtX2Vu
Y29kZXJfb2JzZXJ2ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODQxMDFGRTI0OUFCMDA0
MEMzMEYgLyogdmlkZW9fdGltaW5nLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUM0RTYyMzRD
ODUyRTAwMjhBNjE1IC8qIHJlcGVhdGluZ190YXNrLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEz
MUJGMzgyMzRCODgyMDAwMjhBNjE1IC8qIHZpZGVvX3RyYWNrLmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDEzMUJFRjUyMzRCODgyMDAwMjhBNjE1IC8qIHZpZGVvX3RyYWNrX3NvdXJjZS5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxMzFDNEFEMjM0QzgzODAwMDI4QTYxNSAvKiB2aWRlb190cmFuc3Bv
cnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUVDRUFGRDIwNjQ2NjY0MDA5RDUxNDEgLyogVmlk
ZW9Qcm9jZXNzaW5nU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3NDAxRTQz
QkFCRTAwNjIxRTkyIC8qIHZvaWNlX2FjdGl2aXR5X2RldGVjdG9yLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDg0QzcxRTQzQUYxMzAwNjIxRTkyIC8qIHZvaWNlX2RldGVjdGlvbl9pbXBsLmNj
IGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMzREEyMzRDNzlEMTAwMjhBNjE1IC8qIHZwOF9mcmFt
ZV9jb25maWcuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODM4NTFFNDM5QTM1MDA2MjFFOTIg
LyogdnA4X2hlYWRlcl9wYXJzZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzU0QzIzNEM4
QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X3J0Y3BfcGFja2V0X291dGdvaW5nLmNjIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNDEzMUMwNzgyMzRCODk4RDAwMjhBNjE1IC8qIGFzeW5jX3Jlc29sdmVyX2lu
dGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDM0Q5MjM0Qzc5RDEwMDI4QTYxNSAv
KiB2cDhfdGVtcG9yYWxfbGF5ZXJzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMzRDcyMzRD
NzlEMTAwMjhBNjE1IC8qIHZwOF90ZW1wb3JhbF9sYXllcnNfZmFjdG9yeS5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4QzE0MUU0M0MzQjQwMDYyMUU5MiAvKiB2cDlfbm9vcC5jYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxMzFCRjlBMjM0Qjg4QTYwMDI4QTYxNSAvKiB2cDlfcHJvZmlsZS5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4QkYzMUU0M0MyQjUwMDYyMUU5MiAvKiB2cTMuYyBpbiBT
b3VyY2VzICovLAotCQkJCTQxMzFCRjYxMjM0Qjg4MjAwMDI4QTYxNSAvKiBzY3RwX3V0aWxzLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCRjUxRTQzQzJCNTAwNjIxRTkyIC8qIHZxNC5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMwMzAyMzRCODk4RDAwMjhBNjE1IC8qIGFzeW5jX3BhY2tl
dF9zb2NrZXQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEM4MDFFNDMxRjlDMDAyNjUxQzgg
Lyogd2F2X2ZpbGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEM4MzFFNDMxRjlDMDAyNjUx
QzggLyogd2F2X2hlYWRlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMEY5MjM0Qjg5RTIw
MDI4QTYxNSAvKiB3ZWFrX3B0ci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRUNFQUJFMjA2NDA0
OTgwMDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1Q0RE
OENBQTFFNDNDNkY3MDA2MjFFOTIgLyogd2VicnRjX2NuZy5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4MzY3MUU0MzI1RDUwMDYyMUU5MiAvKiB3ZWJydGNfbGlieXV2LmNjIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDEzMUMyOTEyMzRCOENDNDAwMjhBNjE1IC8qIGNvbnN0YW50cy5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxMzFDMjdBMjM0QjhDQzQwMDI4QTYxNSAvKiB3ZWJydGNfbWVkaWFfZW5n
aW5lLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMxNUIyMzRCODlFMjAwMjhBNjE1IC8qIHN0
cmluZ19lbmNvZGUuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTMxQzI3ODIzNEI4Q0M0MDAyOEE2
MTUgLyogd2VicnRjX21lZGlhX2VuZ2luZV9kZWZhdWx0cy5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxMzFCRjUwMjM0Qjg4MjAwMDI4QTYxNSAvKiB3ZWJydGNfc2RwLmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDEzMUJFRjQyMzRCODgyMDAwMjhBNjE1IC8qIHdlYnJ0Y19zZXNzaW9uX2Rlc2NyaXB0
aW9uX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODZFNDFFNDNCQTI4MDA2MjFF
OTIgLyogd2VicnRjX3ZhZC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUMzQ0YyMzRCOTg0MjAw
MjhBNjE1IC8qIHJ0Y19zdGF0cy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMzFDMDY5MjM0Qjg5
OEQwMDI4QTYxNSAvKiBsb2NhdGlvbi5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMzFDMjk4MjM0
QjhDQzQwMDI4QTYxNSAvKiB3ZWJydGNfdmlkZW9fZW5naW5lLmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDEzMUMyOUQyMzRCOENDNDAwMjhBNjE1IC8qIHdlYnJ0Y192b2ljZV9lbmdpbmUuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0REOEJGNzFFNDNDMkI1MDA2MjFFOTIgLyogd2luZG93MzJfdzMy
LmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEM4NjFFNDMxRjlDMDAyNjUxQzggLyogd2luZG93
X2dlbmVyYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4Qzk4MUU0M0M2NjAwMDYyMUU5
MiAvKiB3cGRfbm9kZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QzlCMUU0M0M2NjAwMDYy
MUU5MiAvKiB3cGRfdHJlZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QkY5MUU0M0MyQjUw
MDYyMUU5MiAvKiB4Y29ycl9jb2VmLmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxQzRBRDIzNEM4
MzgwMDAyOEE2MTUgLyogdmlkZW9fdHJhbnNwb3J0LmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEz
MUMyOTYyMzRCOENDNDAwMjhBNjE1IC8qIHNpbXVsY2FzdF9lbmNvZGVyX2FkYXB0ZXIuY2MgaW4g
U291cmNlcyAqLywKKwkJCQk0MTMxQzRGRjIzNEM4NkNCMDAyOEE2MTUgLyogeWllbGRfcG9saWN5
LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEzMUMxNTEyMzRCODlFMjAwMjhBNjE1IC8qIHplcm9f
bWVtb3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWRkMjhkMWUyYjNkMmZkOWU5ZjA5YTcy
MTYyOTI2N2NjOTZhYjYzYy4uZmU5YmVkMGFhMTA2NGJlMjVkMjc1NTRjMWQ5ZDZlNzRkYmFkNmVm
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE5LTExLTE2ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBXZWJSVEMg
SEVWQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
ZWJydGMvaDI2NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYnJ0Yy9oMjY1Lmh0
bWw6IEFkZGVkLgorCiAyMDE5LTExLTE2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjUyNTI2LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMDY0ZmUzMTc5NjZhZDcx
ZjRkZjU1NzNkY2Y0MWRmYjRiYzEzYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJydGMvaDI2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVmlkZW8gc2hvdWxkIGJl
IHJ1bm5pbmcsIGdvIHRvIGJsYWNrIGFuZCBydW5uaW5nLgorRm9sbG93aW5nLCBzaG91bGQgYmUg
YSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8sIGEgYmxhY2sgZnJhbWUgYW5kIGEgc25hcHNob3Qgb2Yg
dGhlIHZpZGVvLgorICAKKworUEFTUyBWZXJpZnkgSDI2NSBhY3RpdmF0aW9uIAorUEFTUyBTZXR0
aW5nIHZpZGVvIGV4Y2hhbmdlIAorUEFTUyBFbnN1cmluZyBjb25uZWN0aW9uIHN0YXRlIGlzIGNv
bm5lY3RlZCAKK1BBU1MgVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFj
ayAKK1BBU1MgVHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjayAKK1BBU1Mg
SWYgZGlzYWJsZWQsIGJsYWNrIGZyYW1lcyBzaG91bGQgc3RpbGwgYmUgY29taW5nIAorUEFTUyBU
cmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2
NS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY4ZDhmNjgzM2ZlMzBhMDU4ZDRiZGMxZjk2ODYyOTVlODhlYTkz
Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS5odG1sCkBAIC0w
LDAgKzEsMTI2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5UZXN0aW5nIG11dGluZyB2
aWRlbzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAg
ICAgIDxkaXY+VmlkZW8gc2hvdWxkIGJlIHJ1bm5pbmcsIGdvIHRvIGJsYWNrIGFuZCBydW5uaW5n
LjwvZGl2PgorICAgICAgICA8ZGl2PkZvbGxvd2luZywgc2hvdWxkIGJlIGEgc25hcHNob3Qgb2Yg
dGhlIHZpZGVvLCBhIGJsYWNrIGZyYW1lIGFuZCBhIHNuYXBzaG90IG9mIHRoZSB2aWRlby48L2Rp
dj4KKyAgICAgICAgPHZpZGVvIGlkPSJ2aWRlbyIgYXV0b3BsYXkgcGxheXNJbmxpbmUgd2lkdGg9
IjMyMCIgaGVpZ2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczEi
IHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPGNhbnZhcyBpZD0i
Y2FudmFzMiIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8Y2Fu
dmFzIGlkPSJjYW52YXMzIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAg
ICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
PgorcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xlYXJQZWVyQ29ubmVjdGlvbkZhY3Rvcnko
KTsKKworICAgIGNvbnN0IGNvZGVjcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoInZp
ZGVvIikuY29kZWNzOworICAgIGFzc2VydF90cnVlKGNvZGVjcy5zb21lKChjb2RlYykgPT4geyBy
ZXR1cm4gY29kZWMubWltZVR5cGUuaW5kZXhPZigiSDI2NSIpIH0pLCAiSDI2NSBpcyBsaXN0ZWQg
YXMgYSBjb2RlYyIpOworCisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICBwYy5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgICBjb25zdCBkZXNjcmlwdGlvbiA9
IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgICAgcGMuY2xvc2UoKTsKKyAgICBhc3NlcnRfdHJ1
ZShkZXNjcmlwdGlvbi5zZHAuaW5kZXhPZigiSDI2NSIpICE9PSAtMSwgIkgyNjUgY29kZWMgaXMg
aW4gdGhlIFNEUCIpOworfSwgIlZlcmlmeSBIMjY1IGFjdGl2YXRpb24iKQorCit2YXIgdHJhY2s7
Cit2YXIgcmVtb3RlVHJhY2s7Cit2YXIgcmVjZWl2aW5nQ29ubmVjdGlvbjsKK3Byb21pc2VfdGVz
dCgodGVzdCkgPT4geworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworCisgICAgcmV0dXJuIG5hdmlnYXRv
ci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzoge3dpZHRoOiAzMjAsIGhlaWdodDog
MjQwLCBmYWNpbmdNb2RlOiAiZW52aXJvbm1lbnQifX0pLnRoZW4oKGxvY2FsU3RyZWFtKSA9PiB7
CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAg
ICAgICAgICB0cmFjayA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisKKyAgICAg
ICAgICAgIGNyZWF0ZUNvbm5lY3Rpb25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAg
ICAgICAgICBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAg
ICAgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAgICAgcmVj
ZWl2aW5nQ29ubmVjdGlvbiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAgICAgICAgc2Vj
b25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNrOworICAgICAgICAgICAgICAgICAg
ICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7CisgICAgICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgIH0sIHsgb2JzZXJ2ZU9mZmVyIDogKG9mZmVyKSA9PiB7CisgICAgICAgICAgICAg
ICAgb2ZmZXIuc2RwID0gc2V0Q29kZWMob2ZmZXIuc2RwLCAiSDI2NSIpOworICAgICAgICAgICAg
ICAgIHJldHVybiBvZmZlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDApOwor
ICAgICAgICB9KTsKKyAgICB9KS50aGVuKChyZW1vdGVTdHJlYW0pID0+IHsKKyAgICAgICAgdmlk
ZW8uc3JjT2JqZWN0ID0gcmVtb3RlU3RyZWFtOworICAgICAgICByZXR1cm4gdmlkZW8ucGxheSgp
OworICAgIH0pOworfSwgIlNldHRpbmcgdmlkZW8gZXhjaGFuZ2UiKTsKKworcHJvbWlzZV90ZXN0
KCgpID0+IHsKKyAgICBpZiAocmVjZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09
ICJjb25uZWN0ZWQiKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgcmVjZWl2aW5n
Q29ubmVjdGlvbi5vbmNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgICAg
IGlmIChyZWNlaXZpbmdDb25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9PT0gImNvbm5lY3RlZCIp
CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9OworICAgICAgICBzZXRUaW1l
b3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgNTAwMCk7CisgICAgfSk7Cit9LCAi
RW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQiKTsKKworcHJvbWlzZV90ZXN0
KCh0ZXN0KSA9PiB7CisgICAgcmV0dXJuIGNoZWNrVmlkZW9CbGFjayhmYWxzZSwgY2FudmFzMSwg
dmlkZW8pOworfSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2si
KTsKKworcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgdHJhY2suZW5hYmxlZCA9IGZhbHNl
OworICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2sodHJ1ZSwgY2FudmFzMiwgdmlkZW8pOworfSwg
IlRyYWNrIGlzIGRpc2FibGVkLCB2aWRlbyBzaG91bGQgYmUgYmxhY2siKTsKKworYXN5bmMgZnVu
Y3Rpb24gZ2V0SW5ib3VuZFJUUFN0YXRzTnVtYmVyT2ZEZWNvZGVkRnJhbWVzKGNvbm5lY3Rpb24p
Cit7CisgICAgdmFyIHJlcG9ydCA9IGF3YWl0IGNvbm5lY3Rpb24uZ2V0U3RhdHMoKTsKKyAgICB2
YXIgZnJhbWVzRGVjb2RlZDsKKyAgICByZXBvcnQuZm9yRWFjaCgoc3RhdEl0ZW0pID0+IHsKKyAg
ICAgICAgaWYgKHN0YXRJdGVtLnR5cGUgPT09ICJpbmJvdW5kLXJ0cCIpCisgICAgICAgICAgICBm
cmFtZXNEZWNvZGVkID0gc3RhdEl0ZW0uZnJhbWVzRGVjb2RlZDsKKyAgICB9KTsKKyAgICByZXR1
cm4gZnJhbWVzRGVjb2RlZDsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdEZyYW1lRGVjb2RlZElu
Y3JlYXNlZChjb25uZWN0aW9uLCBjb3VudCwgcHJldmlvdXNGcmFtZXNOdW1iZXIpCit7CisgICAg
aWYgKHByZXZpb3VzRnJhbWVzTnVtYmVyID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgbGV0IG51
bWJlciA9IGF3YWl0IGdldEluYm91bmRSVFBTdGF0c051bWJlck9mRGVjb2RlZEZyYW1lcyhjb25u
ZWN0aW9uKTsKKyAgICAgICAgYXdhaXQgd2FpdEZvcigxMDAwKTsKKyAgICAgICAgcmV0dXJuIHRl
c3RGcmFtZURlY29kZWRJbmNyZWFzZWQoY29ubmVjdGlvbiwgMCwgbnVtYmVyKTsKKyAgICB9CisK
KyAgICB2YXIgbnVtYmVyID0gYXdhaXQgZ2V0SW5ib3VuZFJUUFN0YXRzTnVtYmVyT2ZEZWNvZGVk
RnJhbWVzKGNvbm5lY3Rpb24pOworICAgIGlmIChwcmV2aW91c0ZyYW1lc051bWJlciAmJiBudW1i
ZXIgPiBwcmV2aW91c0ZyYW1lc051bWJlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGNv
dW50ID49IDIwKQorICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoInRlc3QgaW5jcmVhc2lu
ZyBmcmFtZSBlbmNvZGVkIHRpbWVkIG91dCIpOworCisgICAgYXdhaXQgd2FpdEZvcigxMDAwKTsK
KyAgICByZXR1cm4gdGVzdEZyYW1lRGVjb2RlZEluY3JlYXNlZChjb25uZWN0aW9uLCArK2NvdW50
LCBwcmV2aW91c0ZyYW1lc051bWJlcik7Cit9CisKK3Byb21pc2VfdGVzdCgodGVzdCkgPT4gewor
ICAgIHJldHVybiB0ZXN0RnJhbWVEZWNvZGVkSW5jcmVhc2VkKHJlY2VpdmluZ0Nvbm5lY3Rpb24p
OworfSwgIklmIGRpc2FibGVkLCBibGFjayBmcmFtZXMgc2hvdWxkIHN0aWxsIGJlIGNvbWluZyIp
OworCitwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICB0cmFjay5lbmFibGVkID0gdHJ1ZTsK
KyAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNrKGZhbHNlLCBjYW52YXMyLCB2aWRlbyk7Cit9LCAi
VHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayAyIik7CisKKyAgICAg
ICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394903</attachid>
            <date>2020-03-30 04:33:13 -0700</date>
            <delta_ts>2020-04-01 08:09:50 -0700</delta_ts>
            <desc>Rebased on top of M82</desc>
            <filename>bug-204283-20200330133305.patch</filename>
            <type>text/plain</type>
            <size>256785</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBiNmJhYWZjY2M1MjA3NDlmZjNjYzMwYzNjZjEzNzE0MDI2MTg3ZTUyLi44YzIx
MGUxZjVkNjU0ZDJjYjgxNjk1NDdjMTBhMGEwYjAwNDBmMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjYgQEAKKzIwMjAtMDMtMzAgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQg
Zm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgSDI2NSBwYWNrZXRpemF0aW9uL2RlcGFja2V0aXphdGlvbiBhbmQgT2JqQyBI
MjY1IGVuY29kZXIvZGVjb2Rlci4KKyAgICAgICAgU3VwcG9ydCBpcyBzd2l0Y2hhYmxlIHVzaW5n
IGEgYm9vbGVhbiBnaXZlbiB0byB0aGUgZGVjb2Rlci9lbmNvZGVyIGZhY3Rvcmllcy4KKworICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaDoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2M6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmg6CisgICAg
ICAgICh3ZWJydGM6OlZpZGVvQ29kZWNIMjY1OjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYzoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZp
Zy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5j
b2Rlcl9jb25maWcuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9i
dWlsZC5nbmk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jYWxsL3J0cF9wYXlsb2FkX3BhcmFt
cy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbjoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjOiBB
ZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29t
bW9uLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9wcHNfcGFyc2VyLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1v
bl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYzogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaDog
QWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zw
c19wYXJzZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVv
L2gyNjUvaDI2NV92cHNfcGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
bWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9t
ZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL2NyZWF0ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2Vy
LmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL2gyNjVfc3BzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKHdlYnJ0Yzo6SDI2NVNwc1Bh
cnNlcjo6d2lkdGgpOgorICAgICAgICAod2VicnRjOjpIMjY1U3BzUGFyc2VyOjpoZWlnaHQpOgor
ICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1h
dC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF9mb3JtYXRfaDI2NS5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaDogQWRkZWQuCisgICAgICAgICh3ZWJy
dGM6OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXQ6OlBhY2tldCk6CisgICAgICAgICh3ZWJydGM6
OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXRVbml0OjpQYWNrZXRVbml0KToKKyAgICAgICAgKHdl
YnJ0Yzo6VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1Ojp+VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1
KToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9z
ZW5kZXJfdmlkZW8uY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmg6IEFkZGVk
LgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9m
cmFtZS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gy
NjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaDogQWRkZWQu
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3Zp
ZGVvX2NvZGVjX2ludGVyZmFjZS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaDoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuY2M6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uY2M6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uaDoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4cGVyaW1lbnRzL21pbl92aWRlb19iaXRy
YXRlX2V4cGVyaW1lbnQuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFV0aWxpdGllcy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMubW06CisgICAgICAgICh3ZWJydGM6OmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0
b3J5KToKKyAgICAgICAgKHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkpOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmguCisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tOiBBZGRlZC4KKyAgICAg
ICAgKC1bUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXSk6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGluaXRX
aXRoSDI2NTpdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnkgc3Vw
cG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
IGNyZWF0ZURlY29kZXI6XSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lmg6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0Rl
ZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0Vu
Y29kZXJGYWN0b3J5IGluaXRXaXRoSDI2NTpdKToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRW
aWRlb0VuY29kZXJGYWN0b3J5IGNyZWF0ZUVuY29kZXI6XSk6CisgICAgICAgICgtW1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5IHN1cHBvcnRlZENvZGVjc10pOgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxl
dmVsSWQuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW06IEFkZGVkLgorICAgICAgICAq
IFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0Rl
Y29kZXJIMjY1Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5tbTogQWRkZWQuCisgICAgICAg
IChSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXM6OlJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyk6Cisg
ICAgICAgIChoMjY1RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKC1bUlRD
VmlkZW9EZWNvZGVySDI2NSBpbml0XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUg
ZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHN0YXJ0RGVjb2RlV2l0
aE51bWJlck9mQ29yZXM6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVjb2Rl
Om1pc3NpbmdGcmFtZXM6Y29kZWNTcGVjaWZpY0luZm86cmVuZGVyVGltZU1zOl0pOgorICAgICAg
ICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHNldENhbGxiYWNrOl0pOgorICAgICAgICAoLVtSVENW
aWRlb0RlY29kZXJIMjY1IHJlbGVhc2VEZWNvZGVyXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVj
b2RlckgyNjUgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJIMjY1IGNvbmZpZ3VyZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgc2V0VmlkZW9Gb3JtYXQ6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2Rl
ckgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBpbml0V2l0aENvZGVjSW5mbzpdKToKKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2Rlckgy
NjUgc3RhcnRFbmNvZGVXaXRoU2V0dGluZ3M6bnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBlbmNvZGU6Y29kZWNTcGVjaWZpY0luZm86ZnJhbWVUeXBlczpd
KToKKyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRDYWxsYmFjazpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRCaXRyYXRlOmZyYW1lcmF0ZTpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSByZWxlYXNlRW5jb2Rlcl0pOgorICAgICAgICAoLVtS
VENWaWRlb0VuY29kZXJIMjY1IHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl0pOgor
ICAgICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAg
ICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IHNldEJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgc2V0RW5jb2RlckJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgZnJhbWVXYXNFbmNvZGVkOmZsYWdzOnNhbXBsZUJ1ZmZlcjp3
aWR0aDpoZWlnaHQ6cmVuZGVyVGltZU1zOnRpbWVzdGFtcDpyb3RhdGlvbjpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzY2FsaW5nU2V0dGluZ3NdKToKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5j
YzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvbmFsdV9yZXdyaXRlci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbToKKyAgICAgICAgKHdlYnJ0Yzo6
T2JqQ1ZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0
b3J5Lm1tOgorICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRl
VmlkZW9FbmNvZGVyKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19z
dHJlYW1fcmVjZWl2ZXIuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlk
ZW9fc3RyZWFtX3JlY2VpdmVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9zZW5k
X3N0YXRpc3RpY3NfcHJveHkuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby92aWRl
b19yZWNlaXZlX3N0cmVhbS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVv
X3N0cmVhbV9lbmNvZGVyLmNjOgorICAgICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDIwLTAzLTI3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBCdW1wIGJvcmluZ3NzbCB2ZXJzaW9uIHRvIE04MgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDRlYzhmNjI0ZWJlYWQwYTg3MGUwODM0ZDE5ODMyNTZiOTFhMWU0YTcuLjM5NWE1M2ZmYTg5ZDcw
MzA5NTRiMjA3ZmE5MDljMGQ1YzRjMDFmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAyMC0wMy0zMCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgV2ViUlRDIEhFVkMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDI4MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHJ1bnRpbWUgZmxhZyBmb3IgSDI2NSBp
biBsaWV1IG9mIFZQOCBhbmQgcGlwZSBpdCB0byBsaWJ3ZWJydGMgZmFjdG9yaWVzLgorICAgICAg
ICBUZXN0OiB3ZWJydGMvaDI2NS5odG1sCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bV9kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKToKKyAgICAg
ICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYlJUQ0gyNjVDb2RlY0VuYWJsZWQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0V2ViUlRDSDI2NUNvZGVj
RW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRD
UHJvdmlkZXJDb2NvYTo6Y3JlYXRlRGVjb2RlckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDUHJvdmlkZXJDb2NvYTo6Y3JlYXRlRW5jb2RlckZhY3RvcnkpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVz
ZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisKIDIwMjAtMDMtMjUgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1bXAgbGlid2VicnRjIHRvIE04MgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA0OWI2NTdkOWFhYmU3NjllYTI4NTk0NDVjNWY1ZmJlMTAwZDFjNDUwLi45MzcyZDI5N2Q4NTNi
YTNhOGExNGQzZGJhNGI4NjZkNzEyMWJlZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTAzLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBXZWJSVEMgSEVWQworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIFZQOCBydW50aW1lIGZsYWcgYW5kIGFk
ZCBhIEgzNjUgcnVudGltZSBmbGFnIGluc3RlYWQuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAyMC0w
My0yNiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkb21Db29raWVzRm9ySG9zdCBzaG91bGQgdmFsaWRh
dGUgaXRzIGBob3N0YCBwYXJhbWV0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW8vdmlkZW9fY29k
ZWNfdHlwZS5oCmluZGV4IDEyZGNmYWMxYjlhNjg2ODc5MjBhZWJjODA0NWI2MmM1NzQ0OTJiZTcu
LmM0ZTQ1ZGJkYzBhNDk5MjcxMTNiMGU1MTAxZTU0Y2VlZTkwNTdhMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19j
b2RlY190eXBlLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaApAQCAtMjIsNiArMjIsOSBAQCBlbnVtIFZp
ZGVvQ29kZWNUeXBlIHsKICAga1ZpZGVvQ29kZWNWUDksCiAgIGtWaWRlb0NvZGVjQVYxLAogICBr
VmlkZW9Db2RlY0gyNjQsCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBrVmlkZW9Db2RlY0gyNjUs
CisjZW5kaWYKICAga1ZpZGVvQ29kZWNNdWx0aXBsZXgsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3Zp
ZGVvX2NvZGVjLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
YXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2RlYy5jYwppbmRleCBkMDMwODJiOTFlMzhjNDdiNGQ0
YjE4MGYwZDIzNThjMzkxMzFkMzk5Li41NGY3ODkwMDQ2NjJmODRjZjE1MTBhOTFjM2Y1NWU0ZDA3
Mjk0NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMu
Y2MKQEAgLTI1LDYgKzI1LDkgQEAgY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lVnA5W10gPSAi
VlA5IjsKIC8vIGZyb3plbi4KIGNvbnN0ZXhwciBjaGFyIGtQYXlsb2FkTmFtZUF2MVtdID0gIkFW
MVgiOwogY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lSDI2NFtdID0gIkgyNjQiOworI2lmbmRl
ZiBESVNBQkxFX0gyNjUKK2NvbnN0ZXhwciBjaGFyIGtQYXlsb2FkTmFtZUgyNjVbXSA9ICJIMjY1
IjsKKyNlbmRpZgogY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lR2VuZXJpY1tdID0gIkdlbmVy
aWMiOwogY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lTXVsdGlwbGV4W10gPSAiTXVsdGlwbGV4
IjsKIH0gIC8vIG5hbWVzcGFjZQpAQCAtNTYsNiArNTksMTcgQEAgYm9vbCBWaWRlb0NvZGVjSDI2
NDo6b3BlcmF0b3I9PShjb25zdCBWaWRlb0NvZGVjSDI2NCYgb3RoZXIpIGNvbnN0IHsKICAgICAg
ICAgICBudW1iZXJPZlRlbXBvcmFsTGF5ZXJzID09IG90aGVyLm51bWJlck9mVGVtcG9yYWxMYXll
cnMpOwogfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorYm9vbCBWaWRlb0NvZGVjSDI2NTo6b3Bl
cmF0b3I9PShjb25zdCBWaWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsKKyAgcmV0dXJuIChm
cmFtZURyb3BwaW5nT24gPT0gb3RoZXIuZnJhbWVEcm9wcGluZ09uICYmCisgICAgICAgICAga2V5
RnJhbWVJbnRlcnZhbCA9PSBvdGhlci5rZXlGcmFtZUludGVydmFsICYmCisgICAgICAgICAgdnBz
TGVuID09IG90aGVyLnZwc0xlbiAmJiBzcHNMZW4gPT0gb3RoZXIuc3BzTGVuICYmCisgICAgICAg
ICAgcHBzTGVuID09IG90aGVyLnBwc0xlbiAmJgorICAgICAgICAgIChzcHNMZW4gPT0gMCB8fCBt
ZW1jbXAoc3BzRGF0YSwgb3RoZXIuc3BzRGF0YSwgc3BzTGVuKSA9PSAwKSAmJgorICAgICAgICAg
IChwcHNMZW4gPT0gMCB8fCBtZW1jbXAocHBzRGF0YSwgb3RoZXIucHBzRGF0YSwgcHBzTGVuKSA9
PSAwKSk7Cit9CisjZW5kaWYKKwogYm9vbCBTcGF0aWFsTGF5ZXI6Om9wZXJhdG9yPT0oY29uc3Qg
U3BhdGlhbExheWVyJiBvdGhlcikgY29uc3QgewogICByZXR1cm4gKHdpZHRoID09IG90aGVyLndp
ZHRoICYmIGhlaWdodCA9PSBvdGhlci5oZWlnaHQgJiYKICAgICAgICAgICBtYXhGcmFtZXJhdGUg
PT0gb3RoZXIubWF4RnJhbWVyYXRlICYmCkBAIC0xMTUsNiArMTI5LDE4IEBAIGNvbnN0IFZpZGVv
Q29kZWNIMjY0JiBWaWRlb0NvZGVjOjpIMjY0KCkgY29uc3QgewogICByZXR1cm4gY29kZWNfc3Bl
Y2lmaWNfLkgyNjQ7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitWaWRlb0NvZGVjSDI2NSog
VmlkZW9Db2RlYzo6SDI2NSgpIHsKKyAgUlRDX0RDSEVDS19FUShjb2RlY1R5cGUsIGtWaWRlb0Nv
ZGVjSDI2NSk7CisgIHJldHVybiAmY29kZWNfc3BlY2lmaWNfLkgyNjU7Cit9CisKK2NvbnN0IFZp
ZGVvQ29kZWNIMjY1JiBWaWRlb0NvZGVjOjpIMjY1KCkgY29uc3QgeworICBSVENfRENIRUNLX0VR
KGNvZGVjVHlwZSwga1ZpZGVvQ29kZWNIMjY1KTsKKyAgcmV0dXJuIGNvZGVjX3NwZWNpZmljXy5I
MjY1OworfQorI2VuZGlmCisKIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5bG9hZFN0cmluZyhW
aWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Uga1ZpZGVv
Q29kZWNWUDg6CkBAIC0xMjUsNiArMTUxLDEwIEBAIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5
bG9hZFN0cmluZyhWaWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgICAgICByZXR1cm4ga1BheWxvYWRO
YW1lQXYxOwogICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIGtQYXlsb2Fk
TmFtZUgyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1
OgorICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZUgyNjU7CisjZW5kaWYKICAgICBjYXNlIGtWaWRl
b0NvZGVjTXVsdGlwbGV4OgogICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZU11bHRpcGxleDsKICAg
ICBjYXNlIGtWaWRlb0NvZGVjR2VuZXJpYzoKQEAgLTE0MSw2ICsxNzEsMTAgQEAgVmlkZW9Db2Rl
Y1R5cGUgUGF5bG9hZFN0cmluZ1RvQ29kZWNUeXBlKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKSB7
CiAgICAgcmV0dXJuIGtWaWRlb0NvZGVjQVYxOwogICBpZiAoYWJzbDo6RXF1YWxzSWdub3JlQ2Fz
ZShuYW1lLCBrUGF5bG9hZE5hbWVIMjY0KSkKICAgICByZXR1cm4ga1ZpZGVvQ29kZWNIMjY0Owor
I2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgaWYgKGFic2w6OkVxdWFsc0lnbm9yZUNhc2UobmFtZSwg
a1BheWxvYWROYW1lSDI2NSkpCisgICAgcmV0dXJuIGtWaWRlb0NvZGVjSDI2NTsKKyNlbmRpZgog
ICBpZiAoYWJzbDo6RXF1YWxzSWdub3JlQ2FzZShuYW1lLCBrUGF5bG9hZE5hbWVNdWx0aXBsZXgp
KQogICAgIHJldHVybiBrVmlkZW9Db2RlY011bHRpcGxleDsKICAgcmV0dXJuIGtWaWRlb0NvZGVj
R2VuZXJpYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaApp
bmRleCAzMzBiYmJjZTE5OTA1NDBlNzQ1ZDQ3Y2Y2ZWM2NTdkZTI5NDM0Y2I3Li43NDgzYWZkZmFm
NzlkODcyOGM4YzIzODY5NTViN2Q3NjYxZDVhOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVj
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3Zp
ZGVvX2NvZGVjcy92aWRlb19jb2RlYy5oCkBAIC04NCw2ICs4NCwyMyBAQCBzdHJ1Y3QgVmlkZW9D
b2RlY0gyNjQgewogICB1aW50OF90IG51bWJlck9mVGVtcG9yYWxMYXllcnM7CiB9OwogCisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorc3RydWN0IFZpZGVvQ29kZWNIMjY1IHsKKyAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFZpZGVvQ29kZWNIMjY1JiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBWaWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gISgqdGhp
cyA9PSBvdGhlcik7CisgIH0KKyAgYm9vbCBmcmFtZURyb3BwaW5nT247CisgIGludCBrZXlGcmFt
ZUludGVydmFsOworICBjb25zdCB1aW50OF90KiB2cHNEYXRhOworICBzaXplX3QgdnBzTGVuOwor
ICBjb25zdCB1aW50OF90KiBzcHNEYXRhOworICBzaXplX3Qgc3BzTGVuOworICBjb25zdCB1aW50
OF90KiBwcHNEYXRhOworICBzaXplX3QgcHBzTGVuOworfTsKKyNlbmRpZgorCiAvLyBUcmFuc2xh
dGVzIGZyb20gbmFtZSBvZiBjb2RlYyB0byBjb2RlYyB0eXBlIGFuZCB2aWNlIHZlcnNhLgogUlRD
X0VYUE9SVCBjb25zdCBjaGFyKiBDb2RlY1R5cGVUb1BheWxvYWRTdHJpbmcoVmlkZW9Db2RlY1R5
cGUgdHlwZSk7CiBSVENfRVhQT1JUIFZpZGVvQ29kZWNUeXBlIFBheWxvYWRTdHJpbmdUb0NvZGVj
VHlwZShjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSk7CkBAIC05Miw2ICsxMDksOSBAQCB1bmlvbiBW
aWRlb0NvZGVjVW5pb24gewogICBWaWRlb0NvZGVjVlA4IFZQODsKICAgVmlkZW9Db2RlY1ZQOSBW
UDk7CiAgIFZpZGVvQ29kZWNIMjY0IEgyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBWaWRl
b0NvZGVjSDI2NSBIMjY1OworI2VuZGlmCiB9OwogCiBlbnVtIGNsYXNzIFZpZGVvQ29kZWNNb2Rl
IHsga1JlYWx0aW1lVmlkZW8sIGtTY3JlZW5zaGFyaW5nIH07CkBAIC0xNTksNiArMTc5LDEwIEBA
IGNsYXNzIFJUQ19FWFBPUlQgVmlkZW9Db2RlYyB7CiAgIGNvbnN0IFZpZGVvQ29kZWNWUDkmIFZQ
OSgpIGNvbnN0OwogICBWaWRlb0NvZGVjSDI2NCogSDI2NCgpOwogICBjb25zdCBWaWRlb0NvZGVj
SDI2NCYgSDI2NCgpIGNvbnN0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgVmlkZW9Db2RlY0gy
NjUqIEgyNjUoKTsKKyAgY29uc3QgVmlkZW9Db2RlY0gyNjUmIEgyNjUoKSBjb25zdDsKKyNlbmRp
ZgogCiAgcHJpdmF0ZToKICAgLy8gVE9ETyhodGEpOiBDb25zaWRlciByZXBsYWNpbmcgdGhlIHVu
aW9uIHdpdGggYSBwb2ludGVyIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29k
ZWNzL3ZpZGVvX2VuY29kZXIuY2MKaW5kZXggNDQyN2Q2YzFmMTYxMjhkNGE0N2JlMmJkYzEyNWZl
ZDk3NDQxMDUxYS4uYjY2YTRmNDFkMmViNjUyZWQ4ZDM4NzRiOTllNzI4MTQ5ZjUzMzVhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3Zp
ZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYwpAQCAt
NjAsNiArNjAsMjMgQEAgVmlkZW9Db2RlY0gyNjQgVmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0SDI2
NFNldHRpbmdzKCkgewogICByZXR1cm4gaDI2NF9zZXR0aW5nczsKIH0KIAorI2lmbmRlZiBESVNB
QkxFX0gyNjUKK1ZpZGVvQ29kZWNIMjY1IFZpZGVvRW5jb2Rlcjo6R2V0RGVmYXVsdEgyNjVTZXR0
aW5ncygpIHsKKyAgVmlkZW9Db2RlY0gyNjUgaDI2NV9zZXR0aW5nczsKKyAgbWVtc2V0KCZoMjY1
X3NldHRpbmdzLCAwLCBzaXplb2YoaDI2NV9zZXR0aW5ncykpOworCisgIC8vIGgyNjVfc2V0dGlu
Z3MucHJvZmlsZSA9IGtQcm9maWxlQmFzZTsKKyAgaDI2NV9zZXR0aW5ncy5mcmFtZURyb3BwaW5n
T24gPSB0cnVlOworICBoMjY1X3NldHRpbmdzLmtleUZyYW1lSW50ZXJ2YWwgPSAzMDAwOworICBo
MjY1X3NldHRpbmdzLnNwc0RhdGEgPSBudWxscHRyOworICBoMjY1X3NldHRpbmdzLnNwc0xlbiA9
IDA7CisgIGgyNjVfc2V0dGluZ3MucHBzRGF0YSA9IG51bGxwdHI7CisgIGgyNjVfc2V0dGluZ3Mu
cHBzTGVuID0gMDsKKworICByZXR1cm4gaDI2NV9zZXR0aW5nczsKK30KKyNlbmRpZgorCiBWaWRl
b0VuY29kZXI6OlNjYWxpbmdTZXR0aW5nczo6U2NhbGluZ1NldHRpbmdzKCkgPSBkZWZhdWx0Owog
CiBWaWRlb0VuY29kZXI6OlNjYWxpbmdTZXR0aW5nczo6U2NhbGluZ1NldHRpbmdzKEtPZmYpIDog
U2NhbGluZ1NldHRpbmdzKCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92
aWRlb19lbmNvZGVyLmgKaW5kZXggMDY0ZGM4ZmZiNTExM2I4NDYzZWZkZWU4YTM5ZWI1NjJlZTgz
Y2U5Mi4uY2E3YTJkOGY5NWFlYmQ2OTYwYzAwNDBhMGNkZjQ4OWEwYTU2OGI2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2Nv
ZGVjcy92aWRlb19lbmNvZGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmgKQEAgLTMyMCw2ICsz
MjAsOSBAQCBjbGFzcyBSVENfRVhQT1JUIFZpZGVvRW5jb2RlciB7CiAgIHN0YXRpYyBWaWRlb0Nv
ZGVjVlA4IEdldERlZmF1bHRWcDhTZXR0aW5ncygpOwogICBzdGF0aWMgVmlkZW9Db2RlY1ZQOSBH
ZXREZWZhdWx0VnA5U2V0dGluZ3MoKTsKICAgc3RhdGljIFZpZGVvQ29kZWNIMjY0IEdldERlZmF1
bHRIMjY0U2V0dGluZ3MoKTsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0YXRpYyBWaWRlb0Nv
ZGVjSDI2NSBHZXREZWZhdWx0SDI2NVNldHRpbmdzKCk7CisjZW5kaWYKIAogICB2aXJ0dWFsIH5W
aWRlb0VuY29kZXIoKSB7fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2Nv
ZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5jYwppbmRleCA2ZWZjYmYyYmRkYjcyMTIzZjFkYjZj
MmUwMDMwMWM3NTI5NDIzMDNkLi4wMThlOTNiZWI5MTk2NzBmZmZhOTNlMDhjZWMyMjcxYTgzMGFk
NGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9f
ZW5jb2Rlcl9jb25maWcuY2MKQEAgLTkzLDYgKzkzLDEwIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29u
ZmlnOjpFbmNvZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbEVuY29kZXJTcGVjaWZpY1NldHRpbmdz
KAogICAgIEZpbGxWaWRlb0NvZGVjVnA4KGNvZGVjLT5WUDgoKSk7CiAgIH0gZWxzZSBpZiAoY29k
ZWMtPmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY1ZQOSkgewogICAgIEZpbGxWaWRlb0NvZGVjVnA5
KGNvZGVjLT5WUDkoKSk7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB9IGVsc2UgaWYgKGNvZGVj
LT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY1KSB7CisgICAgRmlsbFZpZGVvQ29kZWNIMjY1
KGNvZGVjLT5IMjY1KCkpOworI2VuZGlmCiAgIH0gZWxzZSB7CiAgICAgUlRDX05PVFJFQUNIRUQo
KSA8PCAiRW5jb2RlciBzcGVjaWZpY3Mgc2V0L3VzZWQgZm9yIHVua25vd24gY29kZWMgdHlwZS4i
OwogICB9CkBAIC0xMDMsNiArMTA3LDEzIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNv
ZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbFZpZGVvQ29kZWNIMjY0KAogICBSVENfTk9UUkVBQ0hF
RCgpOwogfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQordm9pZCBWaWRlb0VuY29kZXJDb25maWc6
OkVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjUoCisgICAgVmlkZW9D
b2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAgUlRDX05PVFJFQUNIRUQoKTsKK30K
KyNlbmRpZgorCiB2b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6RW5jb2RlclNwZWNpZmljU2V0dGlu
Z3M6OkZpbGxWaWRlb0NvZGVjVnA4KAogICAgIFZpZGVvQ29kZWNWUDgqIHZwOF9zZXR0aW5ncykg
Y29uc3QgewogICBSVENfTk9UUkVBQ0hFRCgpOwpAQCAtMTIyLDYgKzEzMywxNyBAQCB2b2lkIFZp
ZGVvRW5jb2RlckNvbmZpZzo6SDI2NEVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9D
b2RlY0gyNjQoCiAgICpoMjY0X3NldHRpbmdzID0gc3BlY2lmaWNzXzsKIH0KIAorI2lmbmRlZiBE
SVNBQkxFX0gyNjUKK1ZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRp
bmdzOjpIMjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoCisgICAgY29uc3QgVmlkZW9Db2RlY0gy
NjUmIHNwZWNpZmljcykKKyAgICA6IHNwZWNpZmljc18oc3BlY2lmaWNzKSB7fQorCit2b2lkIFZp
ZGVvRW5jb2RlckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9D
b2RlY0gyNjUoCisgICAgVmlkZW9Db2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAg
KmgyNjVfc2V0dGluZ3MgPSBzcGVjaWZpY3NfOworfQorI2VuZGlmCisKIFZpZGVvRW5jb2RlckNv
bmZpZzo6VnA4RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OlZwOEVuY29kZXJTcGVjaWZpY1NldHRp
bmdzKAogICAgIGNvbnN0IFZpZGVvQ29kZWNWUDgmIHNwZWNpZmljcykKICAgICA6IHNwZWNpZmlj
c18oc3BlY2lmaWNzKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19lbmNvZGVyX2NvbmZpZy5oCmluZGV4IGVmOGRiMTAwYTMyYTIwNWJiZDlkNmZlNzli
MjUzNDJmOTMwYzRlMDUuLmQ1NTk0ZjM2NjQxYTI1YzQzMDAwYTYzYzg1NjBkZjZhZjcwOGUyOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Fw
aS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29k
ZXJfY29uZmlnLmgKQEAgLTg0LDYgKzg0LDkgQEAgY2xhc3MgVmlkZW9FbmNvZGVyQ29uZmlnIHsK
ICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDgoVmlkZW9Db2RlY1ZQOCogdnA4X3Nl
dHRpbmdzKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDkoVmlkZW9D
b2RlY1ZQOSogdnA5X3NldHRpbmdzKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVv
Q29kZWNIMjY0KFZpZGVvQ29kZWNIMjY0KiBoMjY0X3NldHRpbmdzKSBjb25zdDsKKyNpZm5kZWYg
RElTQUJMRV9IMjY1CisgICAgdmlydHVhbCB2b2lkIEZpbGxWaWRlb0NvZGVjSDI2NShWaWRlb0Nv
ZGVjSDI2NSogaDI2NV9zZXR0aW5ncykgY29uc3Q7CisjZW5kaWYKIAogICAgcHJpdmF0ZToKICAg
ICB+RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoKSBvdmVycmlkZSB7fQpAQCAtOTksNiArMTAyLDE3
IEBAIGNsYXNzIFZpZGVvRW5jb2RlckNvbmZpZyB7CiAgICAgVmlkZW9Db2RlY0gyNjQgc3BlY2lm
aWNzXzsKICAgfTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgY2xhc3MgSDI2NUVuY29kZXJT
cGVjaWZpY1NldHRpbmdzIDogcHVibGljIEVuY29kZXJTcGVjaWZpY1NldHRpbmdzIHsKKyAgIHB1
YmxpYzoKKyAgICBleHBsaWNpdCBIMjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3QgVmlk
ZW9Db2RlY0gyNjUmIHNwZWNpZmljcyk7CisgICAgdm9pZCBGaWxsVmlkZW9Db2RlY0gyNjUoVmlk
ZW9Db2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IG92ZXJyaWRlOworCisgICBwcml2YXRl
OgorICAgIFZpZGVvQ29kZWNIMjY1IHNwZWNpZmljc187CisgIH07CisjZW5kaWYKKwogICBjbGFz
cyBWcDhFbmNvZGVyU3BlY2lmaWNTZXR0aW5ncyA6IHB1YmxpYyBFbmNvZGVyU3BlY2lmaWNTZXR0
aW5ncyB7CiAgICBwdWJsaWM6CiAgICAgZXhwbGljaXQgVnA4RW5jb2RlclNwZWNpZmljU2V0dGlu
Z3MoY29uc3QgVmlkZW9Db2RlY1ZQOCYgc3BlY2lmaWNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWlsZC5n
bmkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9idWlsZF9vdmVy
cmlkZXMvYnVpbGQuZ25pCmluZGV4IDY2OTA0NGRiODFjYjIxODViZTM3NGIwYjEwMDI3MDkzYzU2
ODNjMzUuLjYwMjVjZGRkMDQ3ZTA5YjFkMGQyNWUwMzQxYTVmY2M1OTU5NzAyODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJy
aWRlcy9idWlsZC5nbmkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvYnVpbGRfb3ZlcnJpZGVzL2J1aWxkLmduaQpAQCAtMzUsNiArMzUsMTIgQEAgbGludF9z
dXBwcmVzc2lvbnNfZmlsZSA9ICIvL3Rvb2xzX3dlYnJ0Yy9hbmRyb2lkL3N1cHByZXNzaW9ucy54
bWwiCiAjIHNvIHdlIGp1c3QgaWdub3JlIHRoYXQgYXNzZXJ0LiBTZWUgaHR0cHM6Ly9jcmJ1Zy5j
b20vNjQ4OTQ4IGZvciBtb3JlIGluZm8uCiBpZ25vcmVfZWxmMzJfbGltaXRhdGlvbnMgPSB0cnVl
CiAKK2lmIChpc193aW4gfHwgaXNfaW9zIHx8IGlzX2FuZHJvaWQpIHsKKyAgcnRjX3VzZV9oMjY1
ID0gdHJ1ZQorfSBlbHNlIHsKKyAgcnRjX3VzZV9oMjY1ID0gZmFsc2UKK30KKwogIyBVc2UgYnVu
ZGxlZCBoZXJtZXRpYyBYY29kZSBpbnN0YWxsYXRpb24gbWFpbnRhaW50ZWQgYnkgQ2hyb21pdW0s
CiAjIGV4Y2VwdCBmb3IgbG9jYWwgaU9TIGJ1aWxkcyB3aGVyZSBpdCdzIHVuc3VwcG9ydGVkLgog
aWYgKGhvc3Rfb3MgPT0gIm1hYyIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NhbGwvcnRwX3BheWxvYWRfcGFyYW1zLmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJh
bXMuY2MKaW5kZXggMzFjYjc0M2Q5ZDkzNjc2ZTFjNmVlNjg1MDliNjU1ODVhZjE0NGUwNC4uM2Fh
ZGY4OWViODNlODY0NDBiZmZhZmE2MmU2NDNkMzM3MmE3MWM1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJh
bXMuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2Fs
bC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKQEAgLTEwNSw2ICsxMDUsMTQgQEAgdm9pZCBQb3B1bGF0
ZVJ0cFdpdGhDb2RlY1NwZWNpZmljcyhjb25zdCBDb2RlY1NwZWNpZmljSW5mbyYgaW5mbywKICAg
ICAgIH0KICAgICAgIHJldHVybjsKICAgICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNh
c2Uga1ZpZGVvQ29kZWNIMjY1OiB7CisgICAgICBhdXRvIGgyNjVfaGVhZGVyID0gcnRwLT52aWRl
b190eXBlX2hlYWRlci5lbXBsYWNlPFJUUFZpZGVvSGVhZGVySDI2NT4oKTsKKyAgICAgIGgyNjVf
aGVhZGVyLnBhY2tldGl6YXRpb25fbW9kZSA9CisgICAgICAgICAgaW5mby5jb2RlY1NwZWNpZmlj
LkgyNjUucGFja2V0aXphdGlvbl9tb2RlOworICAgIH0KKyAgICByZXR1cm47CisjZW5kaWYKICAg
ICBjYXNlIGtWaWRlb0NvZGVjTXVsdGlwbGV4OgogICAgIGNhc2Uga1ZpZGVvQ29kZWNHZW5lcmlj
OgogICAgICAgcnRwLT5jb2RlYyA9IGtWaWRlb0NvZGVjR2VuZXJpYzsKQEAgLTMwMCw2ICszMDgs
OSBAQCB2b2lkIFJ0cFBheWxvYWRQYXJhbXM6OlNldEdlbmVyaWMoY29uc3QgQ29kZWNTcGVjaWZp
Y0luZm8qIGNvZGVjX3NwZWNpZmljX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgaXNfa2V5
ZnJhbWUsIHJ0cF92aWRlb19oZWFkZXIpOwogICAgICAgfQogICAgICAgcmV0dXJuOworI2lmbmRl
ZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIFZpZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY0gyNjU6
CisjZW5kaWYKICAgICBjYXNlIFZpZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY011bHRpcGxleDoK
ICAgICAgIHJldHVybjsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduCmluZGV4IGRk
ZjRjMmQ0OTU5YWVkZTQxOGQyNWQ1YzhlN2I4MGU1MzYwODM1MGIuLjdkNDg5NmVkN2NlODhiNTM0
NWZkYWM4MDQ5NGJmNWZmOWZlMjcwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbgorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vQlVJTEQuZ24K
QEAgLTQxLDYgKzQxLDE5IEBAIHJ0Y19saWJyYXJ5KCJjb21tb25fdmlkZW8iKSB7CiAgICAgInZp
ZGVvX3JlbmRlcl9mcmFtZXMuaCIsCiAgIF0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAg
c291cmNlcyArPSBbCisgICAgICAiaDI2NS9oMjY1X2NvbW1vbi5jYyIsCisgICAgICAiaDI2NS9o
MjY1X2NvbW1vbi5oIiwKKyAgICAgICJoMjY1L2gyNjVfcHBzX3BhcnNlci5jYyIsCisgICAgICAi
aDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIsCisgICAgICAiaDI2NS9oMjY1X3Nwc19wYXJzZXIuY2Mi
LAorICAgICAgImgyNjUvaDI2NV9zcHNfcGFyc2VyLmgiLAorICAgICAgImgyNjUvaDI2NV92cHNf
cGFyc2VyLmNjIiwKKyAgICAgICJoMjY1L2gyNjVfdnBzX3BhcnNlci5oIiwKKyAgICBdCisgIH0K
KwogICBkZXBzID0gWwogICAgICIuLi9hcGk6c2NvcGVkX3JlZnB0ciIsCiAgICAgIi4uL2FwaS90
YXNrX3F1ZXVlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21t
b24uY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmIyY2FjMjI3NTlkOGJkYmJmZmJmMGY3MTRlOTE0N2U2NDIzYjYz
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjCkBAIC0wLDAgKzEsMTEwIEBA
CisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFu
IGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91
bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1
dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gy
NjVfY29tbW9uLmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworbmFtZXNwYWNlIEgyNjUgeworCitj
b25zdCB1aW50OF90IGtOYWx1VHlwZU1hc2sgPSAweDdFOworCitzdGQ6OnZlY3RvcjxOYWx1SW5k
ZXg+IEZpbmROYWx1SW5kaWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUpIHsKKyAgLy8gVGhp
cyBpcyBzb3J0YSBsaWtlIEJveWVyLU1vb3JlLCBidXQgd2l0aCBvbmx5IHRoZSBmaXJzdCBvcHRp
bWl6YXRpb24gc3RlcDoKKyAgLy8gZ2l2ZW4gYSAzLWJ5dGUgc2VxdWVuY2Ugd2UncmUgbG9va2lu
ZyBhdCwgaWYgdGhlIDNyZCBieXRlIGlzbid0IDEgb3IgMCwKKyAgLy8gc2tpcCBhaGVhZCB0byB0
aGUgbmV4dCAzLWJ5dGUgc2VxdWVuY2UuIDBzIGFuZCAxcyBhcmUgcmVsYXRpdmVseSByYXJlLCBz
bworICAvLyB0aGlzIHdpbGwgc2tpcCB0aGUgbWFqb3JpdHkgb2YgcmVhZHMvY2hlY2tzLgorICBz
dGQ6OnZlY3RvcjxOYWx1SW5kZXg+IHNlcXVlbmNlczsKKyAgaWYgKGJ1ZmZlcl9zaXplIDwga05h
bHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXplKQorICAgIHJldHVybiBzZXF1ZW5jZXM7CisKKyAgY29u
c3Qgc2l6ZV90IGVuZCA9IGJ1ZmZlcl9zaXplIC0ga05hbHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXpl
OworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVuZDspIHsKKyAgICBpZiAoYnVmZmVyW2kgKyAy
XSA+IDEpIHsKKyAgICAgIGkgKz0gMzsKKyAgICB9IGVsc2UgaWYgKGJ1ZmZlcltpICsgMl0gPT0g
MSAmJiBidWZmZXJbaSArIDFdID09IDAgJiYgYnVmZmVyW2ldID09IDApIHsKKyAgICAgIC8vIFdl
IGZvdW5kIGEgc3RhcnQgc2VxdWVuY2UsIG5vdyBjaGVjayBpZiBpdCB3YXMgYSAzIG9mIDQgYnl0
ZSBvbmUuCisgICAgICBOYWx1SW5kZXggaW5kZXggPSB7aSwgaSArIDMsIDB9OworICAgICAgaWYg
KGluZGV4LnN0YXJ0X29mZnNldCA+IDAgJiYgYnVmZmVyW2luZGV4LnN0YXJ0X29mZnNldCAtIDFd
ID09IDApCisgICAgICAgIC0taW5kZXguc3RhcnRfb2Zmc2V0OworCisgICAgICAvLyBVcGRhdGUg
bGVuZ3RoIG9mIHByZXZpb3VzIGVudHJ5LgorICAgICAgYXV0byBpdCA9IHNlcXVlbmNlcy5yYmVn
aW4oKTsKKyAgICAgIGlmIChpdCAhPSBzZXF1ZW5jZXMucmVuZCgpKQorICAgICAgICBpdC0+cGF5
bG9hZF9zaXplID0gaW5kZXguc3RhcnRfb2Zmc2V0IC0gaXQtPnBheWxvYWRfc3RhcnRfb2Zmc2V0
OworCisgICAgICBzZXF1ZW5jZXMucHVzaF9iYWNrKGluZGV4KTsKKworICAgICAgaSArPSAzOwor
ICAgIH0gZWxzZSB7CisgICAgICArK2k7CisgICAgfQorICB9CisKKyAgLy8gVXBkYXRlIGxlbmd0
aCBvZiBsYXN0IGVudHJ5LCBpZiBhbnkuCisgIGF1dG8gaXQgPSBzZXF1ZW5jZXMucmJlZ2luKCk7
CisgIGlmIChpdCAhPSBzZXF1ZW5jZXMucmVuZCgpKQorICAgIGl0LT5wYXlsb2FkX3NpemUgPSBi
dWZmZXJfc2l6ZSAtIGl0LT5wYXlsb2FkX3N0YXJ0X29mZnNldDsKKworICByZXR1cm4gc2VxdWVu
Y2VzOworfQorCitOYWx1VHlwZSBQYXJzZU5hbHVUeXBlKHVpbnQ4X3QgZGF0YSkgeworICByZXR1
cm4gc3RhdGljX2Nhc3Q8TmFsdVR5cGU+KChkYXRhICYga05hbHVUeXBlTWFzaykgPj4gMSk7Cit9
CisKK3N0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFBhcnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBz
aXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dDsKKyAgb3V0LnJlc2Vy
dmUobGVuZ3RoKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDspIHsKKyAgICAv
LyBCZSBjYXJlZnVsIGFib3V0IG92ZXIvdW5kZXJmbG93IGhlcmUuIGJ5dGVfbGVuZ3RoXyAtIDMg
Y2FuIHVuZGVyZmxvdywgYW5kCisgICAgLy8gaSArIDMgY2FuIG92ZXJmbG93LCBidXQgYnl0ZV9s
ZW5ndGhfIC0gaSBjYW4ndCwgYmVjYXVzZSBpIDwgYnl0ZV9sZW5ndGhfCisgICAgLy8gYWJvdmUs
IGFuZCB0aGF0IGV4cHJlc3Npb24gd2lsbCBwcm9kdWNlIHRoZSBudW1iZXIgb2YgYnl0ZXMgbGVm
dCBpbgorICAgIC8vIHRoZSBzdHJlYW0gaW5jbHVkaW5nIHRoZSBieXRlIGF0IGkuCisgICAgaWYg
KGxlbmd0aCAtIGkgPj0gMyAmJiAhZGF0YVtpXSAmJiAhZGF0YVtpICsgMV0gJiYgZGF0YVtpICsg
Ml0gPT0gMykgeworICAgICAgLy8gVHdvIHJic3AgYnl0ZXMuCisgICAgICBvdXQucHVzaF9iYWNr
KGRhdGFbaSsrXSk7CisgICAgICBvdXQucHVzaF9iYWNrKGRhdGFbaSsrXSk7CisgICAgICAvLyBT
a2lwIHRoZSBlbXVsYXRpb24gYnl0ZS4KKyAgICAgIGkrKzsKKyAgICB9IGVsc2UgeworICAgICAg
Ly8gU2luZ2xlIHJic3AgYnl0ZS4KKyAgICAgIG91dC5wdXNoX2JhY2soZGF0YVtpKytdKTsKKyAg
ICB9CisgIH0KKyAgcmV0dXJuIG91dDsKK30KKwordm9pZCBXcml0ZVJic3AoY29uc3QgdWludDhf
dCogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIHJ0Yzo6QnVmZmVyKiBkZXN0aW5hdGlvbikgeworICBz
dGF0aWMgY29uc3QgdWludDhfdCBrWmVyb3NJblN0YXJ0U2VxdWVuY2UgPSAyOworICBzdGF0aWMg
Y29uc3QgdWludDhfdCBrRW11bGF0aW9uQnl0ZSA9IDB4MDN1OworICBzaXplX3QgbnVtX2NvbnNl
Y3V0aXZlX3plcm9zID0gMDsKKyAgZGVzdGluYXRpb24tPkVuc3VyZUNhcGFjaXR5KGRlc3RpbmF0
aW9uLT5zaXplKCkgKyBsZW5ndGgpOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3Ro
OyArK2kpIHsKKyAgICB1aW50OF90IGJ5dGUgPSBieXRlc1tpXTsKKyAgICBpZiAoYnl0ZSA8PSBr
RW11bGF0aW9uQnl0ZSAmJgorICAgICAgICBudW1fY29uc2VjdXRpdmVfemVyb3MgPj0ga1plcm9z
SW5TdGFydFNlcXVlbmNlKSB7CisgICAgICAvLyBOZWVkIHRvIGVzY2FwZS4KKyAgICAgIGRlc3Rp
bmF0aW9uLT5BcHBlbmREYXRhKGtFbXVsYXRpb25CeXRlKTsKKyAgICAgIG51bV9jb25zZWN1dGl2
ZV96ZXJvcyA9IDA7CisgICAgfQorICAgIGRlc3RpbmF0aW9uLT5BcHBlbmREYXRhKGJ5dGUpOwor
ICAgIGlmIChieXRlID09IDApIHsKKyAgICAgICsrbnVtX2NvbnNlY3V0aXZlX3plcm9zOworICAg
IH0gZWxzZSB7CisgICAgICBudW1fY29uc2VjdXRpdmVfemVyb3MgPSAwOworICAgIH0KKyAgfQor
fQorCit9ICAvLyBuYW1lc3BhY2UgSDI2NQorfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9jb21tb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdi
YjI3NzRlZTEwYWIxM2U5MjI1ZDQ0MDVkNTE2OTNhYzcxMDQxMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9o
MjY1L2gyNjVfY29tbW9uLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChj
KSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls
ZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0
aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1
YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBB
VEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3Vu
ZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAq
LworCisjaWZuZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfQ09NTU9OX0hfCisjZGVmaW5lIENP
TU1PTl9WSURFT19IMjY1X0gyNjVfQ09NTU9OX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5j
bHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSAicnRjX2Jhc2UvYnVmZmVyLmgiCisKK25hbWVzcGFj
ZSB3ZWJydGMgeworCituYW1lc3BhY2UgSDI2NSB7CisvLyBUaGUgc2l6ZSBvZiBhIGZ1bGwgTkFM
VSBzdGFydCBzZXF1ZW5jZSB7MCAwIDAgMX0sIHVzZWQgZm9yIHRoZSBmaXJzdCBOQUxVCisvLyBv
ZiBhbiBhY2Nlc3MgdW5pdCwgYW5kIGZvciBTUFMgYW5kIFBQUyBibG9ja3MuCitjb25zdCBzaXpl
X3Qga05hbHVMb25nU3RhcnRTZXF1ZW5jZVNpemUgPSA0OworCisvLyBUaGUgc2l6ZSBvZiBhIHNo
b3J0ZW5lZCBOQUxVIHN0YXJ0IHNlcXVlbmNlIHswIDAgMX0sIHRoYXQgbWF5IGJlIHVzZWQgaWYK
Ky8vIG5vdCB0aGUgZmlyc3QgTkFMVSBvZiBhbiBhY2Nlc3MgdW5pdCBvciBhbiBTUFMgb3IgUFBT
IGJsb2NrLgorY29uc3Qgc2l6ZV90IGtOYWx1U2hvcnRTdGFydFNlcXVlbmNlU2l6ZSA9IDM7CisK
Ky8vIFRoZSBzaXplIG9mIHRoZSBOQUxVIHR5cGUgYnl0ZSAoMSkuCitjb25zdCBzaXplX3Qga05h
bHVUeXBlU2l6ZSA9IDE7CisKK2VudW0gTmFsdVR5cGUgOiB1aW50OF90IHsKKyAga1RyYWlsTiA9
IDAsCisgIGtUcmFpbFIgPSAxLAorICBrVHNhTiA9IDIsCisgIGtUc2FSID0gMywKKyAga1N0c2FO
ID0gNCwKKyAga1N0c2FSID0gNSwKKyAga1JhZGxOID0gNiwKKyAga1JhZGxSID0gNywKKyAga0Js
YVdMcCA9IDE2LAorICBrQmxhV1JhZGwgPSAxNywKKyAga0JsYU5McCA9IDE4LAorICBrSWRyV1Jh
ZGwgPSAxOSwKKyAga0lkck5McCA9IDIwLAorICBrQ3JhID0gMjEsCisgIGtSc3ZJcmFwVmNsMjMg
PSAyMywKKyAga1ZwcyA9IDMyLAorICBrU3BzID0gMzMsCisgIGtQcHMgPSAzNCwKKyAga0F1ZCA9
IDM1LAorICBrUHJlZml4U2VpID0gMzksCisgIGtTdWZmaXhTZWkgPSA0MCwKKyAga0FQID0gNDgs
CisgIGtGVSA9IDQ5Cit9OworCitlbnVtIFNsaWNlVHlwZSA6IHVpbnQ4X3QgeyBrUCA9IDAsIGtC
ID0gMSwga0kgPSAyLCBrU3AgPSAzLCBrU2kgPSA0IH07CisKK3N0cnVjdCBOYWx1SW5kZXggewor
ICAvLyBTdGFydCBpbmRleCBvZiBOQUxVLCBpbmNsdWRpbmcgc3RhcnQgc2VxdWVuY2UuCisgIHNp
emVfdCBzdGFydF9vZmZzZXQ7CisgIC8vIFN0YXJ0IGluZGV4IG9mIE5BTFUgcGF5bG9hZCwgdHlw
aWNhbGx5IHR5cGUgaGVhZGVyLgorICBzaXplX3QgcGF5bG9hZF9zdGFydF9vZmZzZXQ7CisgIC8v
IExlbmd0aCBvZiBOQUxVIHBheWxvYWQsIGluIGJ5dGVzLCBjb3VudGluZyBmcm9tIHBheWxvYWRf
c3RhcnRfb2Zmc2V0LgorICBzaXplX3QgcGF5bG9hZF9zaXplOworfTsKKworLy8gUmV0dXJucyBh
IHZlY3RvciBvZiB0aGUgTkFMVSBpbmRpY2VzIGluIHRoZSBnaXZlbiBidWZmZXIuCitzdGQ6OnZl
Y3RvcjxOYWx1SW5kZXg+IEZpbmROYWx1SW5kaWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUp
OworCisvLyBHZXQgdGhlIE5BTCB0eXBlIGZyb20gdGhlIGhlYWRlciBieXRlIGltbWVkaWF0ZWx5
IGZvbGxvd2luZyBzdGFydCBzZXF1ZW5jZS4KK05hbHVUeXBlIFBhcnNlTmFsdVR5cGUodWludDhf
dCBkYXRhKTsKKworLy8gTWV0aG9kcyBmb3IgcGFyc2luZyBhbmQgd3JpdGluZyBSQlNQLiBTZWUg
c2VjdGlvbiA3LjQuMiBvZiB0aGUgSDI2NSBzcGVjLgorLy8KKy8vIFRoZSBmb2xsb3dpbmcgc2Vx
dWVuY2VzIGFyZSBpbGxlZ2FsLCBhbmQgbmVlZCB0byBiZSBlc2NhcGVkIHdoZW4gZW5jb2Rpbmc6
CisvLyAwMCAwMCAwMCAtPiAwMCAwMCAwMyAwMAorLy8gMDAgMDAgMDEgLT4gMDAgMDAgMDMgMDEK
Ky8vIDAwIDAwIDAyIC0+IDAwIDAwIDAzIDAyCisvLyBBbmQgdGhpbmdzIGluIHRoZSBzb3VyY2Ug
dGhhdCBsb29rIGxpa2UgdGhlIGVtdWxhdGlvbiBieXRlIHBhdHRlcm4gKDAwIDAwIDAzKQorLy8g
bmVlZCB0byBoYXZlIGFuIGV4dHJhIGVtdWxhdGlvbiBieXRlIGFkZGVkLCBzbyBpdCdzIHJlbW92
ZWQgd2hlbiBkZWNvZGluZzoKKy8vIDAwIDAwIDAzIC0+IDAwIDAwIDAzIDAzCisvLworLy8gRGVj
b2RpbmcgaXMgc2ltcGx5IGEgbWF0dGVyIG9mIGZpbmRpbmcgYW55IDAwIDAwIDAzIHNlcXVlbmNl
IGFuZCByZW1vdmluZworLy8gdGhlIDAzIGVtdWxhdGlvbiBieXRlLgorCisvLyBQYXJzZSB0aGUg
Z2l2ZW4gZGF0YSBhbmQgcmVtb3ZlIGFueSBlbXVsYXRpb24gYnl0ZSBlc2NhcGluZy4KK3N0ZDo6
dmVjdG9yPHVpbnQ4X3Q+IFBhcnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVu
Z3RoKTsKKworLy8gV3JpdGUgdGhlIGdpdmVuIGRhdGEgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZl
ciwgaW5zZXJ0aW5nIGFuZCBlbXVsYXRpb24KKy8vIGJ5dGVzIGluIG9yZGVyIHRvIGVzY2FwZSBh
bnkgZGF0YSB0aGUgY291bGQgYmUgaW50ZXJwcmV0ZWQgYXMgYSBzdGFydAorLy8gc2VxdWVuY2Uu
Cit2b2lkIFdyaXRlUmJzcChjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IGxlbmd0aCwgcnRj
OjpCdWZmZXIqIGRlc3RpbmF0aW9uKTsKK30gIC8vIG5hbWVzcGFjZSBIMjY1Cit9ICAvLyBuYW1l
c3BhY2Ugd2VicnRjCisKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9DT01NT05f
SF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNl
ci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MTg0MTFjZWQzMjdjODRhNjVlYzkzZjRkZmM3YmU5MmNmZjJlMjZi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMjA5
IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9y
cy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5k
IGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUu
IEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUg
Zm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0
IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9v
dCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1
L2gyNjVfcHBzX3BhcnNlci5oIgorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rv
cj4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisjaW5jbHVk
ZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJydGNfYmFzZS9i
aXRfYnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgorCisjZGVmaW5lIFJF
VFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAg
XAorICAgIHJldHVybiBhYnNsOjpudWxsb3B0OyAgICAgICAgXAorICB9CisKK25hbWVzcGFjZSB7
Citjb25zdCBpbnQga01heFBpY0luaXRRcERlbHRhVmFsdWUgPSAyNTsKK2NvbnN0IGludCBrTWlu
UGljSW5pdFFwRGVsdGFWYWx1ZSA9IC0yNjsKK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ug
d2VicnRjIHsKKworLy8gR2VuZXJhbCBub3RlOiB0aGlzIGlzIGJhc2VkIG9mZiB0aGUgMDIvMjAx
OCB2ZXJzaW9uIG9mIHRoZSBILjI2NSBzdGFuZGFyZC4KKy8vIFlvdSBjYW4gZmluZCBpdCBvbiB0
aGlzIHBhZ2U6CisvLyBodHRwOi8vd3d3Lml0dS5pbnQvcmVjL1QtUkVDLUguMjY1CisKK2Fic2w6
Om9wdGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZVBw
cygKKyAgICBjb25zdCB1aW50OF90KiBkYXRhLAorICAgIHNpemVfdCBsZW5ndGgpIHsKKyAgLy8g
Rmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZm
ZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAw
eDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMu
MSBvZiB0aGUgSC4yNjQgc3RhbmRhcmQuCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2Vk
X2J1ZmZlciA9IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZl
ciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXpl
KCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5hbCgmYml0X2J1ZmZlcik7Cit9CisKK2Jvb2wgSDI2
NVBwc1BhcnNlcjo6UGFyc2VQcHNJZHMoY29uc3QgdWludDhfdCogZGF0YSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludDMyX3QqIHBwc19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDMyX3QqIHNwc19pZCkgeworICBSVENfRENIRUNLKHBwc19pZCk7CisgIFJUQ19E
Q0hFQ0soc3BzX2lkKTsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNp
Y2FsbHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUg
bGFzdCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQg
aW4KKyAgLy8gc2VjdGlvbiA3LjMuMSBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIHN0ZDo6dmVj
dG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5n
dGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCks
IHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VQcHNJZHNJbnRlcm5hbCgm
Yml0X2J1ZmZlciwgcHBzX2lkLCBzcHNfaWQpOworfQorCithYnNsOjpvcHRpb25hbDx1aW50MzJf
dD4gSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3AoCisg
ICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoLAorICAgIHVpbnQ4X3Qg
bmFsdV90eXBlKSB7CisgIHJ0Yzo6Qml0QnVmZmVyIHNsaWNlX3JlYWRlcihkYXRhLCBsZW5ndGgp
OworCisgIC8vIGZpcnN0X3NsaWNlX3NlZ21lbnRfaW5fcGljX2ZsYWc6IHUoMSkKKyAgdWludDMy
X3QgZmlyc3Rfc2xpY2Vfc2VnbWVudF9pbl9waWNfZmxhZyA9IDA7CisgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKAorICAgICAgc2xpY2VfcmVhZGVyLlJlYWRCaXRzKCZmaXJzdF9zbGljZV9zZWdtZW50
X2luX3BpY19mbGFnLCAxKSk7CisKKyAgaWYgKG5hbHVfdHlwZSA+PSBIMjY1OjpOYWx1VHlwZTo6
a0JsYVdMcCAmJgorICAgICAgbmFsdV90eXBlIDw9IEgyNjU6Ok5hbHVUeXBlOjprUnN2SXJhcFZj
bDIzKSB7CisgICAgLy8gbm9fb3V0cHV0X29mX3ByaW9yX3BpY3NfZmxhZzogdSgxKQorICAgIFJF
VFVSTl9FTVBUWV9PTl9GQUlMKHNsaWNlX3JlYWRlci5Db25zdW1lQml0cygxKSk7CisgIH0KKwor
ICAvLyBzbGljZV9waWNfcGFyYW1ldGVyX3NldF9pZDogdWUodikKKyAgdWludDMyX3Qgc2xpY2Vf
cGljX3BhcmFtZXRlcl9zZXRfaWQgPSAwOworICBpZiAoIXNsaWNlX3JlYWRlci5SZWFkRXhwb25l
bnRpYWxHb2xvbWIoJnNsaWNlX3BpY19wYXJhbWV0ZXJfc2V0X2lkKSkKKyAgICByZXR1cm4gYWJz
bDo6bnVsbG9wdDsKKworICByZXR1cm4gc2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQ7Cit9CisK
K2Fic2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQ
YXJzZUludGVybmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKSB7CisgIFBwc1N0
YXRlIHBwczsKKworICBSRVRVUk5fRU1QVFlfT05fRkFJTChQYXJzZVBwc0lkc0ludGVybmFsKGJp
dF9idWZmZXIsICZwcHMuaWQsICZwcHMuc3BzX2lkKSk7CisKKyAgdWludDMyX3QgYml0c190bXA7
CisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworICAvLyBlbnRyb3B5X2NvZGluZ19tb2RlX2Zs
YWc6IHUoMSkKKyAgdWludDMyX3QgZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnOworICBSRVRVUk5f
RU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmZW50cm9weV9jb2RpbmdfbW9kZV9m
bGFnLCAxKSk7CisgIHBwcy5lbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWcgPSBlbnRyb3B5X2NvZGlu
Z19tb2RlX2ZsYWcgIT0gMDsKKyAgLy8gYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9w
cmVzZW50X2ZsYWc6IHUoMSkKKyAgdWludDMyX3QgYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9m
cmFtZV9wcmVzZW50X2ZsYWc7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0X2J1
ZmZlci0+UmVhZEJpdHMoJmJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9m
bGFnLCAxKSk7CisgIHBwcy5ib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRf
ZmxhZyA9CisgICAgICBib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxh
ZyAhPSAwOworCisgIC8vIG51bV9zbGljZV9ncm91cHNfbWludXMxOiB1ZSh2KQorICB1aW50MzJf
dCBudW1fc2xpY2VfZ3JvdXBzX21pbnVzMTsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAg
ICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJm51bV9zbGljZV9ncm91cHNfbWlu
dXMxKSk7CisgIGlmIChudW1fc2xpY2VfZ3JvdXBzX21pbnVzMSA+IDApIHsKKyAgICB1aW50MzJf
dCBzbGljZV9ncm91cF9tYXBfdHlwZTsKKyAgICAvLyBzbGljZV9ncm91cF9tYXBfdHlwZTogdWUo
dikKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgYml0X2J1ZmZlci0+UmVhZEV4
cG9uZW50aWFsR29sb21iKCZzbGljZV9ncm91cF9tYXBfdHlwZSkpOworICAgIGlmIChzbGljZV9n
cm91cF9tYXBfdHlwZSA9PSAwKSB7CisgICAgICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAwOyBp
X2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNfbWludXMxOworICAgICAgICAgICArK2lfZ3JvdXAp
IHsKKyAgICAgICAgLy8gcnVuX2xlbmd0aF9taW51czFbaUdyb3VwXTogdWUodikKKyAgICAgICAg
UkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25l
bnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChz
bGljZV9ncm91cF9tYXBfdHlwZSA9PSAxKSB7CisgICAgICAvLyBUT0RPKHNwcmFuZyk6IEltcGxl
bWVudCBzdXBwb3J0IGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisgICAgICAv
LyBTZWUgOC4yLjIuMiBTcGVjaWZpY2F0aW9uIGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFw
IHR5cGUuCisgICAgfSBlbHNlIGlmIChzbGljZV9ncm91cF9tYXBfdHlwZSA9PSAyKSB7CisgICAg
ICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAwOyBpX2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNf
bWludXMxOworICAgICAgICAgICArK2lfZ3JvdXApIHsKKyAgICAgICAgLy8gdG9wX2xlZnRbaUdy
b3VwXTogdWUodikKKyAgICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgICBi
aXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAg
ICAgIC8vIGJvdHRvbV9yaWdodFtpR3JvdXBdOiB1ZSh2KQorICAgICAgICBSRVRVUk5fRU1QVFlf
T05fRkFJTCgKKyAgICAgICAgICAgIGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigm
Z29sb21iX2lnbm9yZWQpKTsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21h
cF90eXBlID09IDMgfHwgc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0gNCB8fAorICAgICAgICAgICAg
ICAgc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0gNSkgeworICAgICAgLy8gc2xpY2VfZ3JvdXBfY2hh
bmdlX2RpcmVjdGlvbl9mbGFnOiB1KDEpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRf
YnVmZmVyLT5SZWFkQml0cygmYml0c190bXAsIDEpKTsKKyAgICAgIC8vIHNsaWNlX2dyb3VwX2No
YW5nZV9yYXRlX21pbnVzMTogdWUodikKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9i
dWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgICB9IGVs
c2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBlID09IDYpIHsKKyAgICAgIC8vIHBpY19zaXplX2lu
X21hcF91bml0c19taW51czE6IHVlKHYpCisgICAgICB1aW50MzJfdCBwaWNfc2l6ZV9pbl9tYXBf
dW5pdHNfbWludXMxOworICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgYml0
X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWlu
dXMxKSk7CisgICAgICB1aW50MzJfdCBzbGljZV9ncm91cF9pZF9iaXRzID0gMDsKKyAgICAgIHVp
bnQzMl90IG51bV9zbGljZV9ncm91cHMgPSBudW1fc2xpY2VfZ3JvdXBzX21pbnVzMSArIDE7Cisg
ICAgICAvLyBJZiBudW1fc2xpY2VfZ3JvdXBzIGlzIG5vdCBhIHBvd2VyIG9mIHR3byBhbiBhZGRp
dGlvbmFsIGJpdCBpcyByZXF1aXJlZAorICAgICAgLy8gdG8gYWNjb3VudCBmb3IgdGhlIGNlaWwo
KSBvZiBsb2cyKCkgYmVsb3cuCisgICAgICBpZiAoKG51bV9zbGljZV9ncm91cHMgJiAobnVtX3Ns
aWNlX2dyb3VwcyAtIDEpKSAhPSAwKQorICAgICAgICArK3NsaWNlX2dyb3VwX2lkX2JpdHM7Cisg
ICAgICB3aGlsZSAobnVtX3NsaWNlX2dyb3VwcyA+IDApIHsKKyAgICAgICAgbnVtX3NsaWNlX2dy
b3VwcyA+Pj0gMTsKKyAgICAgICAgKytzbGljZV9ncm91cF9pZF9iaXRzOworICAgICAgfQorICAg
ICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8PSBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMx
OyBpKyspIHsKKyAgICAgICAgLy8gc2xpY2VfZ3JvdXBfaWRbaV06IHUodikKKyAgICAgICAgLy8g
UmVwcmVzZW50ZWQgYnkgY2VpbChsb2cyKG51bV9zbGljZV9ncm91cHNfbWludXMxICsgMSkpIGJp
dHMuCisgICAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgICAgICAgYml0X2J1ZmZl
ci0+UmVhZEJpdHMoJmJpdHNfdG1wLCBzbGljZV9ncm91cF9pZF9iaXRzKSk7CisgICAgICB9Cisg
ICAgfQorICB9CisgIC8vIG51bV9yZWZfaWR4X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogdWUo
dikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29s
b21iKCZnb2xvbWJfaWdub3JlZCkpOworICAvLyBudW1fcmVmX2lkeF9sMV9kZWZhdWx0X2FjdGl2
ZV9taW51czE6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRF
eHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgLy8gd2VpZ2h0ZWRfcHJlZF9m
bGFnOiB1KDEpCisgIHVpbnQzMl90IHdlaWdodGVkX3ByZWRfZmxhZzsKKyAgUkVUVVJOX0VNUFRZ
X09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEJpdHMoJndlaWdodGVkX3ByZWRfZmxhZywgMSkpOwor
ICBwcHMud2VpZ2h0ZWRfcHJlZF9mbGFnID0gd2VpZ2h0ZWRfcHJlZF9mbGFnICE9IDA7CisgIC8v
IHdlaWdodGVkX2JpcHJlZF9pZGM6IHUoMikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1
ZmZlci0+UmVhZEJpdHMoJnBwcy53ZWlnaHRlZF9iaXByZWRfaWRjLCAyKSk7CisKKyAgLy8gcGlj
X2luaXRfcXBfbWludXMyNjogc2UodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBi
aXRfYnVmZmVyLT5SZWFkU2lnbmVkRXhwb25lbnRpYWxHb2xvbWIoJnBwcy5waWNfaW5pdF9xcF9t
aW51czI2KSk7CisgIC8vIFNhbml0eS1jaGVjayBwYXJzZWQgdmFsdWUKKyAgaWYgKHBwcy5waWNf
aW5pdF9xcF9taW51czI2ID4ga01heFBpY0luaXRRcERlbHRhVmFsdWUgfHwKKyAgICAgIHBwcy5w
aWNfaW5pdF9xcF9taW51czI2IDwga01pblBpY0luaXRRcERlbHRhVmFsdWUpIHsKKyAgICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChmYWxzZSk7CisgIH0KKyAgLy8gcGljX2luaXRfcXNfbWludXMyNjog
c2UodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFs
R29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAvLyBjaHJvbWFfcXBfaW5kZXhfb2Zmc2V0OiBz
ZSh2KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxH
b2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgIC8vIGRlYmxvY2tpbmdfZmlsdGVyX2NvbnRyb2xf
cHJlc2VudF9mbGFnOiB1KDEpCisgIC8vIGNvbnN0cmFpbmVkX2ludHJhX3ByZWRfZmxhZzogdSgx
KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmYml0c190bXAs
IDIpKTsKKyAgLy8gcmVkdW5kYW50X3BpY19jbnRfcHJlc2VudF9mbGFnOiB1KDEpCisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0X2J1ZmZlci0+UmVhZEJpdHMoJnBwcy5yZWR1bmRh
bnRfcGljX2NudF9wcmVzZW50X2ZsYWcsIDEpKTsKKworICByZXR1cm4gcHBzOworfQorCitib29s
IEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRzSW50ZXJuYWwocnRjOjpCaXRCdWZmZXIqIGJpdF9i
dWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qq
IHBwc19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf
dCogc3BzX2lkKSB7CisgIC8vIHBpY19wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBpZiAoIWJp
dF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYihwcHNfaWQpKQorICAgIHJldHVybiBmYWxz
ZTsKKyAgLy8gc2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIGlmICghYml0X2J1ZmZlci0+
UmVhZEV4cG9uZW50aWFsR29sb21iKHNwc19pZCkpCisgICAgcmV0dXJuIGZhbHNlOworICByZXR1
cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2
NV9wcHNfcGFyc2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmE0NzE4
ODNkY2FlYWY1YTUzNGFjMzEzOWEzNjkwN2YzMDRmZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9wcHNfcGFyc2VyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMp
IDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxl
IGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRo
ZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVh
bCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFU
RU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5k
IGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICov
CisKKyNpZm5kZWYgQ09NTU9OX1ZJREVPX0gyNjVfUFBTX1BBUlNFUl9IXworI2RlZmluZSBDT01N
T05fVklERU9fSDI2NV9QUFNfUEFSU0VSX0hfCisKKyNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlv
bmFsLmgiCisKK25hbWVzcGFjZSBydGMgeworY2xhc3MgQml0QnVmZmVyOworfQorCituYW1lc3Bh
Y2Ugd2VicnRjIHsKKworLy8gQSBjbGFzcyBmb3IgcGFyc2luZyBvdXQgcGljdHVyZSBwYXJhbWV0
ZXIgc2V0IChQUFMpIGRhdGEgZnJvbSBhIEgyNjUgTkFMVS4KK2NsYXNzIEgyNjVQcHNQYXJzZXIg
eworIHB1YmxpYzoKKyAgLy8gVGhlIHBhcnNlZCBzdGF0ZSBvZiB0aGUgUFBTLiBPbmx5IHNvbWUg
c2VsZWN0IHZhbHVlcyBhcmUgc3RvcmVkLgorICAvLyBBZGQgbW9yZSBhcyB0aGV5IGFyZSBhY3R1
YWxseSBuZWVkZWQuCisgIHN0cnVjdCBQcHNTdGF0ZSB7CisgICAgUHBzU3RhdGUoKSA9IGRlZmF1
bHQ7CisKKyAgICBib29sIGJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9m
bGFnID0gZmFsc2U7CisgICAgYm9vbCB3ZWlnaHRlZF9wcmVkX2ZsYWcgPSBmYWxzZTsKKyAgICBi
b29sIGVudHJvcHlfY29kaW5nX21vZGVfZmxhZyA9IGZhbHNlOworICAgIHVpbnQzMl90IHdlaWdo
dGVkX2JpcHJlZF9pZGMgPSBmYWxzZTsKKyAgICB1aW50MzJfdCByZWR1bmRhbnRfcGljX2NudF9w
cmVzZW50X2ZsYWcgPSAwOworICAgIGludCBwaWNfaW5pdF9xcF9taW51czI2ID0gMDsKKyAgICB1
aW50MzJfdCBpZCA9IDA7CisgICAgdWludDMyX3Qgc3BzX2lkID0gMDsKKyAgfTsKKworICAvLyBV
bnBhY2sgUkJTUCBhbmQgcGFyc2UgUFBTIHN0YXRlIGZyb20gdGhlIHN1cHBsaWVkIGJ1ZmZlci4K
KyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZVBwcyhjb25zdCB1aW50OF90
KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKworICBzdGF0aWMgYm9vbCBQYXJzZVBwc0lkcyhjb25z
dCB1aW50OF90KiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3Ro
LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50MzJfdCogc3BzX2lkKTsKKworICBzdGF0aWMgYWJzbDo6b3B0
aW9uYWw8dWludDMyX3Q+IFBhcnNlUHBzSWRGcm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAg
ICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICB1aW50
OF90IG5hbHVfdHlwZSk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBQUFMgc3RhdGUs
IGZvciBhIGJpdCBidWZmZXIgd2hlcmUgUkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisg
IC8vIHBlcmZvcm1lZC4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZUlu
dGVybmFsKHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKTsKKyAgc3RhdGljIGJvb2wgUGFyc2VQ
cHNJZHNJbnRlcm5hbChydGM6OkJpdEJ1ZmZlciogYml0X2J1ZmZlciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQzMl90KiBzcHNfaWQpOworfTsKKworfSAgLy8gbmFtZXNwYWNl
IHdlYnJ0YworCisjZW5kaWYgIC8vIENPTU1PTl9WSURFT19IMjY1X1BQU19QQVJTRVJfSF8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1v
bl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wNDMzZjRiMGVlOTIwYzIzM2YxYjYxODE1MGQyZDNmODhmZWQwZWMxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
Y29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMTkyIEBACisv
KgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFk
ZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQK
KyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhv
cnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0
b3I+CisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1
ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0Y19i
YXNlL2JpdF9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25hbWVz
cGFjZSB7Cit0eXBlZGVmIGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVNwc1BhcnNlcjo6U3Bz
U3RhdGU+IE9wdGlvbmFsU3BzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwK
KyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBPcHRpb25hbFNw
cygpOyAgICAgICBcCisgIH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsK
KworSDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU6OlNwc1N0YXRlKCkgPSBkZWZhdWx0OworCisvLyBH
ZW5lcmFsIG5vdGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2YgdGhl
IEguMjY1IHN0YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8vIGh0
dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5kIHBh
cnNlIFNQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNsOjpvcHRpb25hbDxI
MjY1U3BzUGFyc2VyOjpTcHNTdGF0ZT4gSDI2NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAgY29u
c3QgdWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVp
bnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOwor
ICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFj
a2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VTcHNVcFRvVnVpKCZiaXRfYnVmZmVy
KTsKK30KKworYWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IEgyNjVTcHNQ
YXJzZXI6OlBhcnNlU3BzVXBUb1Z1aSgKKyAgICBydGM6OkJpdEJ1ZmZlciogYnVmZmVyKSB7Cisg
IC8vIE5vdywgd2UgbmVlZCB0byB1c2UgYSBiaXQgYnVmZmVyIHRvIHBhcnNlIHRocm91Z2ggdGhl
IGFjdHVhbCBIRVZDIFNQUworICAvLyBmb3JtYXQuIFNlZSBTZWN0aW9uIDcuMy4yLjIuMSAoIkdl
bmVyYWwgc2VxdWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhCisgIC8vIHN5bnRheCIpIG9mIHRoZSBI
LjI2NSBzdGFuZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2luY2Ugd2Ug
b25seSBjYXJlIGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkgb2YgZmll
bGRzLCBidXQKKyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJvdWdoIGEg
bG90IG9mIHRoZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2ZSB2YXJp
YWJsZSBzaXplLgorICAvLyBXZSdyZSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbjoKKyAgLy8g
Y2hyb21hX2Zvcm1hdF9pZGMgLT4gYWZmZWN0cyBjcm9wIHVuaXRzCisgIC8vIHBpY197d2lkdGgs
aGVpZ2h0fV8qIC0+IHJlc29sdXRpb24gb2YgdGhlIGZyYW1lIGluIG1hY3JvYmxvY2tzICgxNngx
NikuCisgIC8vIGZyYW1lX2Nyb3BfKl9vZmZzZXQgLT4gY3JvcCBpbmZvcm1hdGlvbgorCisgIFNw
c1N0YXRlIHNwczsKKworICAvLyBUaGUgZ29sb21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5v
dCBqdXN0IGNvbnN1bWUuCisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFy
YXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzIG9wdGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGlt
cGxpY2F0aW9ucworICAvLyBhYm91dCB0aGUgQ2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmll
cyBob3cgd2UgdHJlYXQgY3JvcCBjb29yZGluYXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29s
b3VyX3BsYW5lX2ZsYWcgPSAwOworCisgIC8vIGNocm9tYV9mb3JtYXRfaWRjIHdpbGwgYmUgQ2hy
b21hQXJyYXlUeXBlIGlmIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzCisgIC8vIDAuIEl0
IGRlZmF1bHRzIHRvIDEsIHdoZW4gbm90IHNwZWNpZmllZC4KKyAgdWludDMyX3QgY2hyb21hX2Zv
cm1hdF9pZGMgPSAxOworCisgIC8vIHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisg
IHVpbnQzMl90IHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZ
X09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmc3BzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQp
KTsKKyAgLy8gc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTogdSgzKQorICB1aW50MzJfdCBzcHNf
bWF4X3N1Yl9sYXllcnNfbWludXMxID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVy
LT5SZWFkQml0cygmc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSwgMykpOworICAvLyBzcHNfdGVt
cG9yYWxfaWRfbmVzdGluZ19mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZl
ci0+Q29uc3VtZUJpdHMoMSkpOworICAvLyBwcm9maWxlX3RpZXJfbGV2ZWwoMSwgc3BzX21heF9z
dWJfbGF5ZXJzX21pbnVzMSkuIFdlIGFyZSBhY3V0YWxseSBub3QKKyAgLy8gdXNpbmcgdGhlbSwg
c28gcmVhZC9za2lwIG92ZXIgaXQuCisgIC8vIGdlbmVyYWxfcHJvZmlsZV9zcGFjZStnZW5lcmFs
X3RpZXJfZmxhZytnZW5lcmFsX3ByZmlsZV9pZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZB
SUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVfY29tcGF0
YWJpbGl0aXlfZmxhZ1szMl0KKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1l
Qnl0ZXMoNCkpOworICAvLyBnZW5lcmFsX3Byb2dyZXNzaXZlX3NvdXJjZV9mbGFnICsgaW50ZXJs
YWNlZF9zb3VyY2VfZmxhZysKKyAgLy8gbm9uLXBhY2tlZF9jb25zdHJhaW50IGZsYWcgKyBmcmFt
ZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzogdSg0KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZm
ZXItPkNvbnN1bWVCaXRzKDQpKTsKKyAgLy8gZ2VuZXJhbF9wcm9maWxlX2lkYyBkZWNpZGVkIGZs
YWdzIG9yIHJlc2VydmVkLiAgdSg0MykKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5D
b25zdW1lQml0cyg0MykpOworICAvLyBnZW5lcmFsX2luYmxkX2ZsYWcgb3IgcmVzZXJ2ZWQgMDog
dSgxKQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDEpKTsKKyAg
Ly8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVy
LT5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBpZiBtYXhfc3ViX2xheWVyc19taW51czEgPj0xLCBy
ZWFkIHRoZSBzdWJsYXllciBwcm9maWxlIGluZm9ybWF0aW9uCisgIHN0ZDo6dmVjdG9yPHVpbnQz
Ml90PiBzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdzOworICBzdGQ6OnZlY3Rvcjx1aW50
MzJfdD4gc3ViX2xheWVyX2xldmVsX3ByZXNlbnRfZmxhZ3M7CisgIHVpbnQzMl90IHN1Yl9sYXll
cl9wcm9maWxlX3ByZXNlbnQgPSAwOworICB1aW50MzJfdCBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2Vu
dCA9IDA7CisgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzcHNfbWF4X3N1Yl9sYXllcnNfbWlu
dXMxOyBpKyspIHsKKyAgICAvLyBzdWJsYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZyBhbmQgc3Vi
bGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlM
KGJ1ZmZlci0+UmVhZEJpdHMoJnN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQsIDEpKTsKKyAgICBS
RVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZzdWJfbGF5ZXJfbGV2ZWxfcHJl
c2VudCwgMSkpOworICAgIHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3MucHVzaF9iYWNr
KHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQpOworICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50
X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNw
c19tYXhfc3ViX2xheWVyc19taW51czEgPiAwKSB7CisgICAgZm9yICh1aW50MzJfdCBqID0gc3Bz
X21heF9zdWJfbGF5ZXJzX21pbnVzMTsgaiA8IDg7IGorKykgeworICAgICAgLy8gcmVzZXJ2ZWQg
MiBiaXRzOiB1KDIpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVC
aXRzKDIpKTsKKyAgICB9CisgIH0KKyAgZm9yICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhf
c3ViX2xheWVyc19taW51czE7IGsrKykgeworICAgIGlmIChzdWJfbGF5ZXJfcHJvZmlsZV9wcmVz
ZW50X2ZsYWdzW2tdKSB7ICAvLworICAgICAgLy8gc3ViX2xheWVyIHByb2ZpbGVfc3BhY2UvdGll
cl9mbGFnL3Byb2ZpbGVfaWRjLiBpZ25vcmVkLiB1KDgpCisgICAgICBSRVRVUk5fRU1QVFlfT05f
RkFJTChidWZmZXItPkNvbnN1bWVCeXRlcygxKSk7CisgICAgICAvLyBwcm9maWxlX2NvbXBhdGFi
aWxpdHlfZmxhZzogIHUoMzIpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNv
bnN1bWVCeXRlcyg0KSk7CisgICAgICAvLyBzdWJfbGF5ZXIgcHJvZ3Jlc3NpdmVfc291cmNlX2Zs
YWcvaW50ZXJsYWNlZF9zb3VyY2VfZmxhZy8KKyAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWlu
dF9mbGFnL2ZyYW1lX29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgICAgICBSRVRVUk5fRU1Q
VFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQpKTsKKyAgICAgIC8vIGZvbGxvd2luZyA0
My1iaXRzIGFyZSBwcm9maWxlX2lkYyBzcGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4K
KyAgICAgIC8vIHUoNDMpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1
bWVCaXRzKDQzKSk7CisgICAgICAvLyAxLWJpdCBwcm9maWxlX2lkYyBzcGVjaWZpYyBpbmJsZCBm
bGFnLiAgV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4gdSgxKQorICAgICAgUkVUVVJOX0VNUFRZX09O
X0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0cygxKSk7CisgICAgfQorICAgIGlmIChzdWJfbGF5ZXJf
bGV2ZWxfcHJlc2VudF9mbGFnc1trXSkgeworICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzog
dSg4KQorICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkp
OworICAgIH0KKyAgfQorICAvLyBzcHNfc2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIFJF
VFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJf
aWdub3JlZCkpOworICAvLyBjaHJvbWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0VNUFRZ
X09OX0ZBSUwoYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNocm9tYV9mb3JtYXRfaWRj
KSk7CisgIGlmIChjaHJvbWFfZm9ybWF0X2lkYyA9PSAzKSB7CisgICAgLy8gc2VwZXJhdGVfY29s
b3VyX3BsYW5lX2ZsYWc6IHUoMSkKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJl
YWRCaXRzKCZzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZywgMSkpOworICB9CisgIHVpbnQzMl90
IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMgPSAwOworICB1aW50MzJfdCBwaWNfaGVpZ2h0X2lu
X2x1bWFfc2FtcGxlcyA9IDA7CisgIC8vIHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYp
CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxH
b2xvbWIoJnBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMpKTsKKyAgLy8gcGljX2hlaWdodF9pbl9s
dW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVy
LT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzKSk7Cisg
IC8vIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnOiB1KDEpCisgIHVpbnQzMl90IGNvbmZvcm1hbmNl
X3dpbmRvd19mbGFnID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0
cygmY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcsIDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9s
ZWZ0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7Cisg
IHVpbnQzMl90IGNvbmZfd2luX3RvcF9vZmZzZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9i
b3R0b21fb2Zmc2V0ID0gMDsKKyAgaWYgKGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAg
Ly8gY29uZl93aW5fbGVmdF9vZmZzZXQ6IHVlKHYpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
YnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7Cisg
ICAgLy8gY29uZl93aW5fcmlnaHRfb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9G
QUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQp
KTsKKyAgICAvLyBjb25mX3dpbl90b3Bfb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0
KSk7CisgICAgLy8gY29uZl93aW5fYm90dG9tX29mZnNldDogdWUodikKKyAgICBSRVRVUk5fRU1Q
VFlfT05fRkFJTCgKKyAgICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZf
d2luX2JvdHRvbV9vZmZzZXQpKTsKKyAgfQorCisgIC8vIEZhciBlbm91Z2ghIFdlIGRvbid0IHVz
ZSB0aGUgcmVzdCBvZiB0aGUgU1BTLgorCisgIHNwcy52cHNfaWQgPSBzcHNfdmlkZW9fcGFyYW1l
dGVyX3NldF9pZDsKKworICAvLyBTdGFydCB3aXRoIHRoZSByZXNvbHV0aW9uIGRldGVybWluZWQg
YnkgdGhlIHBpY193aWR0aC9waWNfaGVpZ2h0IGZpZWxkcy4KKyAgc3BzLndpZHRoID0gcGljX3dp
ZHRoX2luX2x1bWFfc2FtcGxlczsKKyAgc3BzLmhlaWdodCA9IHBpY19oZWlnaHRfaW5fbHVtYV9z
YW1wbGVzOworCisgIGlmIChjb25mb3JtYW5jZV93aW5kb3dfZmxhZykgeworICAgIGludCBzdWJf
d2lkdGhfYyA9ICgoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgfHwgKDIgPT0gY2hyb21hX2Zvcm1h
dF9pZGMpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPT0gc2VwYXJhdGVf
Y29sb3VyX3BsYW5lX2ZsYWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgID8gMgorICAgICAg
ICAgICAgICAgICAgICAgICAgICA6IDE7CisgICAgaW50IHN1Yl9oZWlnaHRfYyA9CisgICAgICAg
ICgxID09IGNocm9tYV9mb3JtYXRfaWRjKSAmJiAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVf
ZmxhZykgPyAyIDogMTsKKyAgICAvLyB0aGUgb2Zmc2V0IGluY2x1ZGVzIHRoZSBwaXhlbCB3aXRo
aW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVkIHRvCisgICAgLy8gKzEgYXMgcGVy
IHNwZWMKKyAgICBzcHMud2lkdGggLT0gc3ViX3dpZHRoX2MgKiAoY29uZl93aW5fcmlnaHRfb2Zm
c2V0ICsgY29uZl93aW5fbGVmdF9vZmZzZXQpOworICAgIHNwcy5oZWlnaHQgLT0gc3ViX2hlaWdo
dF9jICogKGNvbmZfd2luX3RvcF9vZmZzZXQgKyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0KTsKKyAg
fQorCisgIHJldHVybiBPcHRpb25hbFNwcyhzcHMpOworfQorCit9ICAvLyBuYW1lc3BhY2Ugd2Vi
cnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmEwZjg2YjY5ODMyNjMxYmU3MjU2OWI5YWUyMGJjMmM2MGI4MDkyNWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaApAQCAtMCwwICsxLDU0IEBA
CisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFu
IGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91
bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1
dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2lmbmRlZiBDT01NT05fVklERU9fSDI2NV9IMjY1
X1NQU19QQVJTRVJfSF8KKyNkZWZpbmUgQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VS
X0hfCisKKyNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisKK25hbWVzcGFjZSBydGMg
eworY2xhc3MgQml0QnVmZmVyOworfQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworLy8gQSBjbGFz
cyBmb3IgcGFyc2luZyBvdXQgc2VxdWVuY2UgcGFyYW1ldGVyIHNldCAoU1BTKSBkYXRhIGZyb20g
YW4gSDI2NSBOQUxVLgorY2xhc3MgSDI2NVNwc1BhcnNlciB7CisgcHVibGljOgorICAvLyBUaGUg
cGFyc2VkIHN0YXRlIG9mIHRoZSBTUFMuIE9ubHkgc29tZSBzZWxlY3QgdmFsdWVzIGFyZSBzdG9y
ZWQuCisgIC8vIEFkZCBtb3JlIGFzIHRoZXkgYXJlIGFjdHVhbGx5IG5lZWRlZC4KKyAgc3RydWN0
IFNwc1N0YXRlIHsKKyAgICBTcHNTdGF0ZSgpOworCisgICAgdWludDMyX3Qgd2lkdGggPSAwOwor
ICAgIHVpbnQzMl90IGhlaWdodCA9IDA7CisgICAgdWludDMyX3QgZGVsdGFfcGljX29yZGVyX2Fs
d2F5c196ZXJvX2ZsYWcgPSAwOworICAgIHVpbnQzMl90IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9m
bGFnID0gMDsKKyAgICB1aW50MzJfdCBmcmFtZV9tYnNfb25seV9mbGFnID0gMDsKKyAgICB1aW50
MzJfdCBsb2cyX21heF9mcmFtZV9udW1fbWludXM0ID0gMDsKKyAgICB1aW50MzJfdCBsb2cyX21h
eF9waWNfb3JkZXJfY250X2xzYl9taW51czQgPSAwOworICAgIHVpbnQzMl90IHBpY19vcmRlcl9j
bnRfdHlwZSA9IDA7CisgICAgdWludDMyX3QgbWF4X251bV9yZWZfZnJhbWVzID0gMDsKKyAgICB1
aW50MzJfdCB2dWlfcGFyYW1zX3ByZXNlbnQgPSAwOworICAgIHVpbnQzMl90IGlkID0gMDsKKyAg
ICB1aW50MzJfdCB2cHNfaWQgPSAwOworICB9OworCisgIC8vIFVucGFjayBSQlNQIGFuZCBwYXJz
ZSBTUFMgc3RhdGUgZnJvbSB0aGUgc3VwcGxpZWQgYnVmZmVyLgorICBzdGF0aWMgYWJzbDo6b3B0
aW9uYWw8U3BzU3RhdGU+IFBhcnNlU3BzKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5n
dGgpOworCisgcHJvdGVjdGVkOgorICAvLyBQYXJzZSB0aGUgU1BTIHN0YXRlLCB1cCB0aWxsIHRo
ZSBWVUkgcGFydCwgZm9yIGEgYml0IGJ1ZmZlciB3aGVyZSBSQlNQCisgIC8vIGRlY29kaW5nIGhh
cyBhbHJlYWR5IGJlZW4gcGVyZm9ybWVkLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3BzU3Rh
dGU+IFBhcnNlU3BzVXBUb1Z1aShydGM6OkJpdEJ1ZmZlciogYnVmZmVyKTsKK307CisKK30gIC8v
IG5hbWVzcGFjZSB3ZWJydGMKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNf
UEFSU0VSX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zw
c19wYXJzZXIuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM5MWFlNTFkZjBmOTA4OTAxNmI0OTg4NGMxNWYyYzE0
MThkNTRlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5jYwpAQCAtMCww
ICsxLDYyIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3Qg
YXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICog
IHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBj
YW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBw
cm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0
aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNp
bmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1v
bi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2lu
Y2x1ZGUgInJ0Y19iYXNlL2JpdF9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5n
LmgiCisKK25hbWVzcGFjZSB7Cit0eXBlZGVmIGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVZw
c1BhcnNlcjo6VnBzU3RhdGU+IE9wdGlvbmFsVnBzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVy
biBPcHRpb25hbFZwcygpOyAgICAgICBcCisgIH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3Bh
Y2Ugd2VicnRjIHsKKworSDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU6OlZwc1N0YXRlKCkgPSBkZWZh
dWx0OworCisvLyBHZW5lcmFsIG5vdGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZl
cnNpb24gb2YgdGhlIEguMjY1IHN0YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMg
cGFnZToKKy8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNr
IFJCU1AgYW5kIHBhcnNlIFNQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNs
OjpvcHRpb25hbDxIMjY1VnBzUGFyc2VyOjpWcHNTdGF0ZT4gSDI2NVZwc1BhcnNlcjo6UGFyc2VW
cHMoCisgICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0
ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRh
LCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5k
YXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5hbCgm
Yml0X2J1ZmZlcik7Cit9CisKK2Fic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRl
PiBIMjY1VnBzUGFyc2VyOjpQYXJzZUludGVybmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBidWZm
ZXIpIHsKKyAgLy8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhy
b3VnaCB0aGUgYWN0dWFsIEhFVkMgVlBTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIu
MSAoIlZpZGVvIHBhcmFtZXRlciBzZXQgUkJTUCBzeW50YXgiKSBvZiB0aGUKKyAgLy8gSC4yNjUg
c3RhbmRhcmQgZm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24uCisKKyAgVnBzU3RhdGUgdnBzOwor
CisgIC8vIHZwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIHVpbnQzMl90IHZwc192
aWRlb19wYXJhbWV0ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVy
LT5SZWFkQml0cygmdnBzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQpKTsKKworICB2cHMuaWQg
PSB2cHNfdmlkZW9fcGFyYW1ldGVyX3NldF9pZDsKKyAgdnBzLmlkID0gMDsKKyAgcmV0dXJuIE9w
dGlvbmFsVnBzKHZwcyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9o
MjY1L2gyNjVfdnBzX3BhcnNlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZThhMjc3NWY0M2RmMTdkMThlMDlkYzQwMDdlNjIzYTYzMjA4NWE3ZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRl
by9oMjY1L2gyNjVfdnBzX3BhcnNlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiAgQ29weXJp
Z2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJT
RC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRl
bGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBm
aWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBi
ZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJl
ZS4KKyAqLworCisjaWZuZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfVlBTX1BBUlNFUl9IXwor
I2RlZmluZSBDT01NT05fVklERU9fSDI2NV9IMjY1X1ZQU19QQVJTRVJfSF8KKworI2luY2x1ZGUg
ImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKKworbmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBCaXRCdWZm
ZXI7Cit9CisKK25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBBIGNsYXNzIGZvciBwYXJzaW5nIG91
dCBzZXF1ZW5jZSBwYXJhbWV0ZXIgc2V0IChWUFMpIGRhdGEgZnJvbSBhbiBIMjY1IE5BTFUuCitj
bGFzcyBIMjY1VnBzUGFyc2VyIHsKKyBwdWJsaWM6CisgIC8vIFRoZSBwYXJzZWQgc3RhdGUgb2Yg
dGhlIFZQUy4gT25seSBzb21lIHNlbGVjdCB2YWx1ZXMgYXJlIHN0b3JlZC4KKyAgLy8gQWRkIG1v
cmUgYXMgdGhleSBhcmUgYWN0dWFsbHkgbmVlZGVkLgorICBzdHJ1Y3QgVnBzU3RhdGUgeworICAg
IFZwc1N0YXRlKCk7CisKKyAgICB1aW50MzJfdCBpZCA9IDA7CisgIH07CisKKyAgLy8gVW5wYWNr
IFJCU1AgYW5kIHBhcnNlIFZQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCisgIHN0
YXRpYyBhYnNsOjpvcHRpb25hbDxWcHNTdGF0ZT4gUGFyc2VWcHMoY29uc3QgdWludDhfdCogZGF0
YSwgc2l6ZV90IGxlbmd0aCk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBWUFMgc3Rh
dGUsIGZvciBhIGJpdCBidWZmZXIgd2hlcmUgUkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVu
CisgIC8vIHBlcmZvcm1lZC4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFZwc1N0YXRlPiBQYXJz
ZUludGVybmFsKHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVz
cGFjZSB3ZWJydGMKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9WUFNfUEFSU0VS
X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCmluZGV4IDUx
NDRhNmVhNjU1NWRmYmI2NmM0NjJhZTIxNzdkZmNlY2NjOTE4YmIuLjdiNzBmZjllNDg4NGE1MDM1
YjllZTM4OTRjNTUwMDNjYWJmMWJhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVk
aWFfY29uc3RhbnRzLmNjCkBAIC0xMDcsNiArMTA3LDkgQEAgY29uc3QgY2hhciBrVnA4Q29kZWNO
YW1lW10gPSAiVlA4IjsKIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFtZVtdID0gIlZQOSI7CiBjb25z
dCBjaGFyIGtBdjFDb2RlY05hbWVbXSA9ICJBVjFYIjsKIGNvbnN0IGNoYXIga0gyNjRDb2RlY05h
bWVbXSA9ICJIMjY0IjsKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citjb25zdCBjaGFyIGtIMjY1Q29k
ZWNOYW1lW10gPSAiSDI2NSI7CisjZW5kaWYKIAogLy8gUkZDIDYxODQgUlRQIFBheWxvYWQgRm9y
bWF0IGZvciBILjI2NCB2aWRlbwogY29uc3QgY2hhciBrSDI2NEZtdHBQcm9maWxlTGV2ZWxJZFtd
ID0gInByb2ZpbGUtbGV2ZWwtaWQiOwpAQCAtMTE0LDYgKzExNywxMyBAQCBjb25zdCBjaGFyIGtI
MjY0Rm10cExldmVsQXN5bW1ldHJ5QWxsb3dlZFtdID0gImxldmVsLWFzeW1tZXRyeS1hbGxvd2Vk
IjsKIGNvbnN0IGNoYXIga0gyNjRGbXRwUGFja2V0aXphdGlvbk1vZGVbXSA9ICJwYWNrZXRpemF0
aW9uLW1vZGUiOwogY29uc3QgY2hhciBrSDI2NEZtdHBTcHJvcFBhcmFtZXRlclNldHNbXSA9ICJz
cHJvcC1wYXJhbWV0ZXItc2V0cyI7CiBjb25zdCBjaGFyIGtIMjY0UHJvZmlsZUxldmVsQ29uc3Ry
YWluZWRCYXNlbGluZVtdID0gIjQyZTAxZiI7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorLy8gUkZD
IDc3OTggUlRQIFBheWxvYWQgRm9ybWF0IGZvciBILjI2NSB2aWRlbworY29uc3QgY2hhciBrSDI2
NUZtdHBQcm9maWxlU3BhY2VbXSA9ICJwcm9maWxlLXNwYWNlIjsKK2NvbnN0IGNoYXIga0gyNjVG
bXRwUHJvZmlsZUlkW10gPSAicHJvZmlsZS1pZCI7Citjb25zdCBjaGFyIGtIMjY1Rm10cFRpZXJG
bGFnW10gPSAidGllci1mbGFnIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwTGV2ZWxJZFtdID0gImxl
dmVsLWlkIjsKKyNlbmRpZgogCiBjb25zdCBpbnQga0RlZmF1bHRWaWRlb01heEZyYW1lcmF0ZSA9
IDYwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaAppbmRleCBi
OWI4YTMzNmY3ZjBjYWYyZmYxOTQ2OWZlYTc1Y2I3OTI5NDcwYTU4Li5hMTgxOTNlMDVkMjQ4YzEy
ZjZhNDU4MmI1NmU0YjIxODE5MWE5MzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVk
aWFfY29uc3RhbnRzLmgKQEAgLTEzNiw2ICsxMzYsOSBAQCBSVENfRVhQT1JUIGV4dGVybiBjb25z
dCBjaGFyIGtWcDhDb2RlY05hbWVbXTsKIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga1Zw
OUNvZGVjTmFtZVtdOwogUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrQXYxQ29kZWNOYW1l
W107CiBSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY0Q29kZWNOYW1lW107CisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUNvZGVj
TmFtZVtdOworI2VuZGlmCiAKIC8vIFJGQyA2MTg0IFJUUCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4y
NjQgdmlkZW8KIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRGbXRwUHJvZmlsZUxl
dmVsSWRbXTsKQEAgLTE0NCw2ICsxNDcsMTQgQEAgUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hh
ciBrSDI2NEZtdHBQYWNrZXRpemF0aW9uTW9kZVtdOwogZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRG
bXRwU3Byb3BQYXJhbWV0ZXJTZXRzW107CiBleHRlcm4gY29uc3QgY2hhciBrSDI2NFByb2ZpbGVM
ZXZlbENvbnN0cmFpbmVkQmFzZWxpbmVbXTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKy8vIFJG
QyA3Nzk4IFJUUCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4yNjUgdmlkZW8KK1JUQ19FWFBPUlQgZXh0
ZXJuIGNvbnN0IGNoYXIga0gyNjVGbXRwUHJvZmlsZVNwYWNlW107CitSVENfRVhQT1JUIGV4dGVy
biBjb25zdCBjaGFyIGtIMjY1Rm10cFByb2ZpbGVJZFtdOworUlRDX0VYUE9SVCBleHRlcm4gY29u
c3QgY2hhciBrSDI2NUZtdHBUaWVyRmxhZ1tdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hh
ciBrSDI2NUZtdHBMZXZlbElkW107CisjZW5kaWYKKwogZXh0ZXJuIGNvbnN0IGludCBrRGVmYXVs
dFZpZGVvTWF4RnJhbWVyYXRlOwogCiBleHRlcm4gY29uc3Qgc2l6ZV90IGtDb25mZXJlbmNlTWF4
TnVtU3BhdGlhbExheWVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL0JVSUxELmduCmlu
ZGV4IDI4MjZkMGYwOWIxNDRlNDVhMGI3ZDQ3MGQwYmE5ZDU3YzQzMzVjZTEuLjZmOTAyZmY3YjBj
NWYyYjVhMGFiOGJhYmI2NDk2ZTVjMzllOGMwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24KKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9CVUlMRC5nbgpAQCAtMjM2LDYgKzIzNiwxNyBAQCBydGNfbGlicmFyeSgicnRwX3J0Y3Ai
KSB7CiAgICAgZGVmaW5lcyA9IFsgIkJXRV9URVNUX0xPR0dJTkdfQ09NUElMRV9USU1FX0VOQUJM
RT0wIiBdCiAgIH0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisg
ICAgICAic291cmNlL3J0cF9mb3JtYXRfaDI2NS5jYyIsCisgICAgICAic291cmNlL3J0cF9mb3Jt
YXRfaDI2NS5oIiwKKyAgICBdCisgIH0KKworICBpZiAoIXJ0Y191c2VfaDI2NSkgeworICAgIGRl
ZmluZXMgKz0gWyJESVNBQkxFX0gyNjUiXQorICB9CisKICAgZGVwcyA9IFsKICAgICAiOnJ0cF9y
dGNwX2Zvcm1hdCIsCiAgICAgIjpydHBfdmlkZW9faGVhZGVyIiwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL2NyZWF0ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRlX3Zp
ZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKaW5kZXggNTllMTM5OWM5OWYyMmU5ZTY4ZjVjNjY3NzFk
ZWVlNzUxNGM3MGM1ZC4uOGJiYjNhNGQ5NzgwMmE4ZDAwZDY0Nzg4YjMwMTAxMzZlYTlmMmI4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKQEAgLTEzLDYgKzEz
LDkgQEAKICNpbmNsdWRlIDxtZW1vcnk+CiAKICNpbmNsdWRlICJhcGkvdmlkZW8vdmlkZW9fY29k
ZWNfdHlwZS5oIgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuaCIKICNpbmNsdWRlICJtb2R1
bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyX2F2MS5oIgogI2luY2x1
ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfZ2VuZXJp
Yy5oIgpAQCAtMjcsNiArMzAsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvUnRwRGVwYWNrZXRp
emVyPiBDcmVhdGVWaWRlb1J0cERlcGFja2V0aXplcigKICAgc3dpdGNoIChjb2RlYykgewogICAg
IGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Vmlk
ZW9SdHBEZXBhY2tldGl6ZXJIMjY0PigpOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNl
IGtWaWRlb0NvZGVjSDI2NToKKyAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvUnRw
RGVwYWNrZXRpemVySDI2NT4oKTsKKyNlbmRpZgogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6CiAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxWaWRlb1J0cERlcGFja2V0aXplclZwOD4oKTsK
ICAgICBjYXNlIGtWaWRlb0NvZGVjVlA5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNf
cGFyc2VyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNjCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiNjli
YWIyYTZjZDY3NTE0Yjg0NDY1YTY4ZWVkOTBhZWM5Nzg1NjAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuY2MKQEAgLTAsMCArMSwxODkgQEAKKy8qCisgKiBJbnRl
bCBMaWNlbnNlCisgKi8KKworI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJj
ZS9oMjY1X3Nwc19wYXJzZXIuaCIKKworI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9idWZmZXIuaCIK
KyNpbmNsdWRlICJydGNfYmFzZS9ieXRlX2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xv
Z2dpbmcuaCIKKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2RlZmluZSBSRVRVUk5fRkFMU0VfT05f
RkFJTCh4KSBcCisgIGlmICghKHgpKSB7ICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4g
ZmFsc2U7ICAgICAgICAgICAgICAgXAorICB9CisKK25hbWVzcGFjZSB3ZWJydGMgeworCitIMjY1
U3BzUGFyc2VyOjpIMjY1U3BzUGFyc2VyKGNvbnN0IHVpbnQ4X3QqIHNwcywgc2l6ZV90IGJ5dGVf
bGVuZ3RoKQorICAgIDogc3BzXyhzcHMpLCBieXRlX2xlbmd0aF8oYnl0ZV9sZW5ndGgpLCB3aWR0
aF8oKSwgaGVpZ2h0XygpIHsKK30KKworYm9vbCBIMjY1U3BzUGFyc2VyOjpQYXJzZSgpIHsKKyAg
Ly8gR2VuZXJhbCBub3RlOiB0aGlzIGlzIGJhc2VkIG9mZiB0aGUgMDQvMjAxNSB2ZXJzaW9uIG9m
IHRoZSBILjI2NSBzdGFuZGFyZC4KKyAgLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToK
KyAgLy8gaHR0cDovL3d3dy5pdHUuaW50L3JlYy9ULVJFQy1ILjI2NQorCisgIGNvbnN0IGNoYXIq
IHNwc19ieXRlcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHNwc18pOworICAvLyBG
aXJzdCwgcGFyc2Ugb3V0IHJic3AsIHdoaWNoIGlzIGJhc2ljYWxseSB0aGUgc291cmNlIGJ1ZmZl
ciBtaW51cyBlbXVsYXRpb24KKyAgLy8gYnl0ZXMgKHRoZSBsYXN0IGJ5dGUgb2YgYSAweDAwIDB4
MDAgMHgwMyBzZXF1ZW5jZSkuIFJCU1AgaXMgZGVmaW5lZCBpbgorICAvLyBzZWN0aW9uIDcuMy4x
LjEgb2YgdGhlIEguMjY1IHN0YW5kYXJkLCBzaW1pbGFyIHRvIEgyNjQuCisgIHJ0Yzo6Qnl0ZUJ1
ZmZlcldyaXRlciByYnNwX2J1ZmZlcjsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBieXRlX2xl
bmd0aF87KSB7CisgICAgLy8gQmUgY2FyZWZ1bCBhYm91dCBvdmVyL3VuZGVyZmxvdyBoZXJlLiBi
eXRlX2xlbmd0aF8gLSAzIGNhbiB1bmRlcmZsb3csIGFuZAorICAgIC8vIGkgKyAzIGNhbiBvdmVy
ZmxvdywgYnV0IGJ5dGVfbGVuZ3RoXyAtIGkgY2FuJ3QsIGJlY2F1c2UgaSA8IGJ5dGVfbGVuZ3Ro
XworICAgIC8vIGFib3ZlLCBhbmQgdGhhdCBleHByZXNzaW9uIHdpbGwgcHJvZHVjZSB0aGUgbnVt
YmVyIG9mIGJ5dGVzIGxlZnQgaW4KKyAgICAvLyB0aGUgc3RyZWFtIGluY2x1ZGluZyB0aGUgYnl0
ZSBhdCBpLgorICAgIGlmIChieXRlX2xlbmd0aF8gLSBpID49IDMgJiYgc3BzX1tpXSA9PSAwICYm
IHNwc19baSArIDFdID09IDAgJiYKKyAgICAgICAgc3BzX1tpICsgMl0gPT0gMykgeworICAgICAg
Ly8gVHdvIHJic3AgYnl0ZXMgKyB0aGUgZW11bGF0aW9uIGJ5dGUuCisgICAgICByYnNwX2J1ZmZl
ci5Xcml0ZUJ5dGVzKHNwc19ieXRlcyArIGksIDIpOworICAgICAgaSArPSAzOworICAgIH0gZWxz
ZSB7CisgICAgICAvLyBTaW5nbGUgcmJzcCBieXRlLgorICAgICAgcmJzcF9idWZmZXIuV3JpdGVC
eXRlcyhzcHNfYnl0ZXMgKyBpLCAxKTsKKyAgICAgIGkrKzsKKyAgICB9CisgIH0KKworICAvLyBO
b3csIHdlIG5lZWQgdG8gdXNlIGEgYml0IGJ1ZmZlciB0byBwYXJzZSB0aHJvdWdoIHRoZSBhY3R1
YWwgSEVWQyBTUFMKKyAgLy8gZm9ybWF0LiBTZWUgU2VjdGlvbiA3LjMuMi4xLjEgKCJTZXF1ZW5j
ZSBwYXJhbWV0ZXIgc2V0IGRhdGEgc3ludGF4Iikgb2YgdGhlCisgIC8vIEguMjY1IHN0YW5kYXJk
IGZvciBhIGNvbXBsZXRlIGRlc2NyaXB0aW9uLgorICAvLyBTaW5jZSB3ZSBvbmx5IGNhcmUgYWJv
dXQgcmVzb2x1dGlvbiwgd2UgaWdub3JlIHRoZSBtYWpvcml0eSBvZiBmaWVsZHMsIGJ1dAorICAv
LyB3ZSBzdGlsbCBoYXZlIHRvIGFjdGl2ZWx5IHBhcnNlIHRocm91Z2ggYSBsb3Qgb2YgdGhlIGRh
dGEsIHNpbmNlIG1hbnkgb2YKKyAgLy8gdGhlIGZpZWxkcyBoYXZlIHZhcmlhYmxlIHNpemUuCisg
IC8vIFVubGlrZSBIMjY0LCBmb3IgSDI2NSwgdGhlIHBpY3R1cmUgc2l6ZSBpcyBpbmRpY2F0ZWQg
YnkgcGljX3dpZHRoX2luX2x1bWFfc2FtcGxlcworICAvLyBhbmQgcGljX2hlaWdodF9pbl9sdW1h
X3NhbXBsZXMsICBpZiBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyAhPTE7CisgIC8vIFdoZW4gY29u
Zm9ybWFuY2Vfd2luZG93X2ZsYWcgaXMgMSwgIHRoZSB3aWR0aCBpcyBhZGp1c3RlZCB3aXRoIGNv
bl93aW5feHhfb2Zmc2V0CisgIC8vCisgIHJ0Yzo6Qml0QnVmZmVyIHBhcnNlcihyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihyYnNwX2J1ZmZlci5EYXRhKCkpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgcmJzcF9idWZmZXIuTGVuZ3RoKCkpOworCisgIC8vIFRoZSBnb2xvbWIgdmFs
dWVzIHdlIGhhdmUgdG8gcmVhZCwgbm90IGp1c3QgY29uc3VtZS4KKyAgdWludDMyX3QgZ29sb21i
X2lnbm9yZWQ7CisKKyAgLy8gc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgaXMgb3B0aW9uYWwg
KGFzc3VtZWQgMCksIGJ1dCBoYXMgaW1wbGljYXRpb25zCisgIC8vIGFib3V0IHRoZSBDaHJvbWFB
cnJheVR5cGUsIHdoaWNoIG1vZGlmaWVzIGhvdyB3ZSB0cmVhdCBjcm9wIGNvb3JkaW5hdGVzLgor
ICB1aW50MzJfdCBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZyA9IDA7CisgIC8vIGNocm9tYV9m
b3JtYXRfaWRjIHdpbGwgYmUgQ2hyb21hQXJyYXlUeXBlIGlmIHNlcGFyYXRlX2NvbG91cl9wbGFu
ZV9mbGFnIGlzCisgIC8vIDAuIEl0IGRlZmF1bHRzIHRvIDEsIHdoZW4gbm90IHNwZWNpZmllZC4K
KyAgdWludDMyX3QgY2hyb21hX2Zvcm1hdF9pZGMgPSAxOworCisKKyAgLy8gc3BzX3ZpZGVvX3Bh
cmFtZXRlcl9zZXRfaWQ6IHUoNCkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1
bWVCaXRzKDQpKTsKKyAgLy8gc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTogdSgzKQorICB1aW50
MzJfdCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxID0gMDsKKyAgUkVUVVJOX0ZBTFNFX09OX0ZB
SUwocGFyc2VyLlJlYWRCaXRzKCZzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxLCAzKSk7CisgIC8v
IHNwc190ZW1wb3JhbF9pZF9uZXN0aW5nX2ZsYWc6IHUoMSkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZB
SUwocGFyc2VyLkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gcHJvZmlsZV90aWVyX2xldmVsKDEsIHNw
c19tYXhfc3ViX2xheWVyc19taW51czEpLiBXZSBhcmUgYWN1dGFsbHkgbm90CisgIC8vIHVzaW5n
IHRoZW0sIHNvIHJlYWQvc2tpcCBvdmVyIGl0LgorICAvLyBnZW5lcmFsX3Byb2ZpbGVfc3BhY2Ur
Z2VuZXJhbF90aWVyX2ZsYWcrZ2VuZXJhbF9wcmZpbGVfaWRjOiB1KDgpCisgIFJFVFVSTl9GQUxT
RV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVf
Y29tcGF0YWJpbGl0aXlfZmxhZ1szMl0KKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNv
bnN1bWVCeXRlcyg0KSk7CisgIC8vIGdlbmVyYWxfcHJvZ3Jlc3NpdmVfc291cmNlX2ZsYWcgKyBp
bnRlcmxhY2VkX3NvdXJjZV9mbGFnKyBub24tcGFja2VkX2NvbnN0cmFpbnQKKyAgLy8gZmxhZyAr
IGZyYW1lX29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlM
KHBhcnNlci5Db25zdW1lQml0cyg0KSk7CisgIC8vIGdlbmVyYWxfcHJvZmlsZV9pZGMgZGVjaWRl
ZCBmbGFncyBvciByZXNlcnZlZC4gIHUoNDMpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNl
ci5Db25zdW1lQml0cyg0MykpOworICAvLyBnZW5lcmFsX2luYmxkX2ZsYWcgb3IgcmVzZXJ2ZWQg
MDogdSgxKQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoMSkpOwor
ICAvLyBnZW5lcmFsX2xldmVsX2lkYzogdSg4KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJz
ZXIuQ29uc3VtZUJ5dGVzKDEpKTsKKyAgLy8gaWYgbWF4X3N1Yl9sYXllcnNfbWludXMxID49MSwg
cmVhZCB0aGUgc3VibGF5ZXIgcHJvZmlsZSBpbmZvcm1hdGlvbgorICBzdGQ6OnZlY3Rvcjx1aW50
MzJfdD4gc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnczsKKyAgc3RkOjp2ZWN0b3I8dWlu
dDMyX3Q+IHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzOworICB1aW50MzJfdCBzdWJfbGF5
ZXJfcHJvZmlsZV9wcmVzZW50ID0gMDsKKyAgdWludDMyX3Qgc3ViX2xheWVyX2xldmVsX3ByZXNl
bnQgPSAwOworICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc3BzX21heF9zdWJfbGF5ZXJzX21p
bnVzMTsgaSsrKSB7CisgICAgICAvL3N1YmxheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnIGFuZCBz
dWJsYXllcl9sZXZlbF9wcmVzbmV0X2ZsYWc6ICB1KDIpCisgICAgICBSRVRVUk5fRkFMU0VfT05f
RkFJTChwYXJzZXIuUmVhZEJpdHMoJnN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQsIDEpKTsKKyAg
ICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmc3ViX2xheWVyX2xldmVs
X3ByZXNlbnQsIDEpKTsKKyAgICAgIHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3MucHVz
aF9iYWNrKHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQpOworICAgICAgc3ViX2xheWVyX2xldmVs
X3ByZXNlbnRfZmxhZ3MucHVzaF9iYWNrKHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50KTsKKyAgfQor
ICBpZiAoc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSA+IDApIHsKKyAgICAgIGZvciAodWludDMy
X3QgaiA9IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGogPCA4OyBqKyspIHsKKyAgICAgICAg
Ly8gcmVzZXJ2ZWQgMiBiaXRzOiB1KDIpCisgICAgICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwo
cGFyc2VyLkNvbnN1bWVCaXRzKDIpKTsKKyAgICAgIH0KKyAgfQorICBmb3IgKHVpbnQzMl90IGsg
PSAwOyBrIDwgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTsgaysrKSB7CisgICAgICBpZihzdWJf
bGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdzW2tdKSB7Ly8KKyAgICAgICAgLy8gc3ViX2xheWVy
IHByb2ZpbGVfc3BhY2UvdGllcl9mbGFnL3Byb2ZpbGVfaWRjLiBpZ25vcmVkLiB1KDgpCisgICAg
ICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoMSkpOworICAgICAg
ICAvLyBwcm9maWxlX2NvbXBhdGFiaWxpdHlfZmxhZzogIHUoMzIpCisgICAgICAgIFJFVFVSTl9G
QUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoNCkpOworICAgICAgICAvLyBzdWJfbGF5
ZXIgcHJvZ3Jlc3NpdmVfc291cmNlX2ZsYWcvaW50ZXJsYWNlZF9zb3VyY2VfZmxhZy8KKyAgICAg
ICAgLy8gbm9uX3BhY2tlZF9jb25zdHJhaW50X2ZsYWcvZnJhbWVfb25seV9jb25zdHJhaW50X2Zs
YWc6IHUoNCkKKyAgICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRz
KDQpKTsKKyAgICAgICAgLy8gZm9sbG93aW5nIDQzLWJpdHMgYXJlIHByb2ZpbGVfaWRjIHNwZWNp
ZmljLiBXZSBzaW1wbHkgcmVhZC9za2lwIGl0LiB1KDQzKQorICAgICAgICBSRVRVUk5fRkFMU0Vf
T05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNDMpKTsKKyAgICAgICAgLy8gMS1iaXQgcHJvZmls
ZV9pZGMgc3BlY2lmaWMgaW5ibGQgZmxhZy4gIFdlIHNpbXBseSByZWFkL3NraXAgaXQuIHUoMSkK
KyAgICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDEpKTsKKyAg
ICAgIH0KKyAgICAgIGlmIChzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnc1trXSkgeworICAg
ICAgICAvLyBzdWJfbGF5ZXJfbGV2ZWxfaWRjOiB1KDgpCisgICAgICAgICAgUkVUVVJOX0ZBTFNF
X09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCeXRlcygxKSk7CisgICAgICB9CisgIH0KKyAgLy9zcHNf
c2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNl
ci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgIC8vIGNocm9tZV9m
b3JtYXRfaWRjOiB1ZSh2KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9u
ZW50aWFsR29sb21iKCZjaHJvbWFfZm9ybWF0X2lkYykpOworICBpZiAoY2hyb21hX2Zvcm1hdF9p
ZGMgPT0gMykgeworICAgIC8vIHNlcGVyYXRlX2NvbG91cl9wbGFuZV9mbGFnOiB1KDEpCisgICAg
UkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRCaXRzKCZzZXBhcmF0ZV9jb2xvdXJfcGxh
bmVfZmxhZywgMSkpOworICB9CisgIHVpbnQzMl90IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMg
PSAwOworICB1aW50MzJfdCBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcyA9IDA7CisgIC8vIHBp
Y193aWR0aF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBh
cnNlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMpKTsK
KyAgLy8gcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVSTl9GQUxTRV9P
Tl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBpY19oZWlnaHRfaW5fbHVtYV9z
YW1wbGVzKSk7CisgIC8vIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnOiB1KDEpCisgIHVpbnQzMl90
IGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnID0gMDsKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFy
c2VyLlJlYWRCaXRzKCZjb25mb3JtYW5jZV93aW5kb3dfZmxhZywgMSkpOworCisgIHVpbnQzMl90
IGNvbmZfd2luX2xlZnRfb2Zmc2V0ID0gMDsKKyAgdWludDMyX3QgY29uZl93aW5fcmlnaHRfb2Zm
c2V0ID0gMDsKKyAgdWludDMyX3QgY29uZl93aW5fdG9wX29mZnNldCA9IDA7CisgIHVpbnQzMl90
IGNvbmZfd2luX2JvdHRvbV9vZmZzZXQgPSAwOworICBpZiAoY29uZm9ybWFuY2Vfd2luZG93X2Zs
YWcpIHsKKyAgICAgIC8vIGNvbmZfd2luX2xlZnRfb2Zmc2V0OiB1ZSh2KQorICAgICAgUkVUVVJO
X0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY29uZl93aW5fbGVm
dF9vZmZzZXQpKTsKKyAgICAgIC8vIGNvbmZfd2luX3JpZ2h0X29mZnNldDogdWUodikKKyAgICAg
IFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZf
d2luX3JpZ2h0X29mZnNldCkpOworICAgICAgLy8gY29uZl93aW5fdG9wX29mZnNldDogdWUodikK
KyAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIo
JmNvbmZfd2luX3RvcF9vZmZzZXQpKTsKKyAgICAgIC8vIGNvbmZfd2luX2JvdHRvbV9vZmZzZXQ6
IHVlKHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFs
R29sb21iKCZjb25mX3dpbl9ib3R0b21fb2Zmc2V0KSk7CisgIH0KKworICAvL0ZvciBlbm91Z2gg
dG8gZ2V0IHRoZSByZXNvbHV0aW9uIGluZm9ybWF0aW9uLiBjYWxjYWx1YXRlIGFjY29yZGluZyB0
byBIRVZDIHNwZWMgNy40LjMuMgorICBpbnQgd2lkdGggPSAwOworICBpbnQgaGVpZ2h0ID0gMDsK
KworICB3aWR0aCA9IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXM7CisgIGhlaWdodCA9IHBpY19o
ZWlnaHRfaW5fbHVtYV9zYW1wbGVzOworCisgIGlmIChjb25mb3JtYW5jZV93aW5kb3dfZmxhZykg
eworICAgIGludCBzdWJfd2lkdGhfYyA9ICgoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgfHwgKDIg
PT0gY2hyb21hX2Zvcm1hdF9pZGMpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKDAgPT0g
c2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcpID8gMiA6IDE7CisgICAgaW50IHN1Yl9oZWlnaHRf
YyA9ICgxID09IGNocm9tYV9mb3JtYXRfaWRjKSAmJiAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxh
bmVfZmxhZykgPyAyIDogMTsKKyAgICAvL3RoZSBvZmZzZXQgaW5jbHVkZXMgdGhlIHBpeGVsIHdp
dGhpbiBjb25mb3JtYW5jZSB3aW5kb3cuIHNvIGRvbid0IG5lZWQgdG8gKzEgYXMgcGVyIHNwZWMK
KyAgICB3aWR0aCAtPSBzdWJfd2lkdGhfYyooY29uZl93aW5fcmlnaHRfb2Zmc2V0ICsgY29uZl93
aW5fbGVmdF9vZmZzZXQpOworICAgIGhlaWdodCAtPSBzdWJfaGVpZ2h0X2MqKGNvbmZfd2luX3Rv
cF9vZmZzZXQgKyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0KTsKKyAgfQorCisgIHdpZHRoXyA9IHdp
ZHRoOworICBoZWlnaHRfID0gaGVpZ2h0OworICByZXR1cm4gdHJ1ZTsKKworfQorCit9ICAvLyBu
YW1lc3BhY2Ugd2VicnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0
Y3Avc291cmNlL2gyNjVfc3BzX3BhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNzIzMWJkMWM2MjI2YjBl
YTE4YmUzMmFmOGQ0ZWUxYTM0MmQ0NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1
X3Nwc19wYXJzZXIuaApAQCAtMCwwICsxLDMyIEBACisvKgorICogIEludGVsIExpY2Vuc2UKKyAq
LworCisjaWZuZGVmIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9IMjY1X1NQU19QQVJT
RVJfSF8KKyNkZWZpbmUgV0VCUlRDX01PRFVMRVNfUlRQX1JUQ1BfU09VUkNFX0gyNjVfU1BTX1BB
UlNFUl9IXworCisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKK25h
bWVzcGFjZSB3ZWJydGMgeworCisvLyBBIGNsYXNzIGZvciBwYXJzaW5nIG91dCBzZXF1ZW5jZSBw
YXJhbWV0ZXIgc2V0IChTUFMpIGRhdGEgZnJvbSBhbiBIMjY1IE5BTFUuCisvLyBDdXJyZW50bHks
IG9ubHkgcmVzb2x1dGlvbiBpcyByZWFkIHdpdGhvdXQgYmVpbmcgaWdub3JlZC4KK2NsYXNzIEgy
NjVTcHNQYXJzZXIgeworIHB1YmxpYzoKKyAgSDI2NVNwc1BhcnNlcihjb25zdCB1aW50OF90KiBz
cHMsIHNpemVfdCBieXRlX2xlbmd0aCk7CisgIC8vIFBhcnNlcyB0aGUgU1BTIHRvIGNvbXBsZXRp
b24uIFJldHVybnMgdHJ1ZSBpZiB0aGUgU1BTIHdhcyBwYXJzZWQgY29ycmVjdGx5LgorICBib29s
IFBhcnNlKCk7CisgIHVpbnQxNl90IHdpZHRoKCkgeyByZXR1cm4gd2lkdGhfOyB9CisgIHVpbnQx
Nl90IGhlaWdodCgpIHsgcmV0dXJuIGhlaWdodF87IH0KKworIHByaXZhdGU6CisgIGNvbnN0IHVp
bnQ4X3QqIGNvbnN0IHNwc187CisgIGNvbnN0IHNpemVfdCBieXRlX2xlbmd0aF87CisKKyAgdWlu
dDE2X3Qgd2lkdGhfOworICB1aW50MTZfdCBoZWlnaHRfOworfTsKKworfSAgLy8gbmFtZXNwYWNl
IHdlYnJ0YworI2VuZGlmICAvLyBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfSDI2NV9T
UFNfUEFSU0VSX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0LmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3Vy
Y2UvcnRwX2Zvcm1hdC5jYwppbmRleCAxMmI1ZThkZGM1YWQ2N2JjZDEwYTQzYTFiYzMwYjExMGE1
YWNiMWU0Li42MjgxM2QyYzZmMjdjYmU4MDMwMmJjYjFhNDJlYWI1YmY0YjY0YTM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0
cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2MK
QEAgLTE0LDExICsxNCwxNyBAQAogCiAjaW5jbHVkZSAiYWJzbC90eXBlcy92YXJpYW50LmgiCiAj
aW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY0LmgiCisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9m
b3JtYXRfaDI2NS5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
cnRwX2Zvcm1hdF92aWRlb19nZW5lcmljLmgiCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9z
b3VyY2UvcnRwX2Zvcm1hdF92cDguaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJj
ZS9ydHBfZm9ybWF0X3ZwOS5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF9wYWNrZXRpemVyX2F2MS5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVj
cy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2lu
Y2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9i
YWxzLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA4
L2luY2x1ZGUvdnA4X2dsb2JhbHMuaCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9j
b2RlY3MvdnA5L2luY2x1ZGUvdnA5X2dsb2JhbHMuaCIKICNpbmNsdWRlICJydGNfYmFzZS9jaGVj
a3MuaCIKQEAgLTQ1LDYgKzUxLDE1IEBAIHN0ZDo6dW5pcXVlX3B0cjxSdHBQYWNrZXRpemVyPiBS
dHBQYWNrZXRpemVyOjpDcmVhdGUoCiAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSdHBQ
YWNrZXRpemVySDI2ND4oCiAgICAgICAgICAgcGF5bG9hZCwgbGltaXRzLCBoMjY0LnBhY2tldGl6
YXRpb25fbW9kZSwgKmZyYWdtZW50YXRpb24pOwogICAgIH0KKyNpZm5kZWYgRElTQUJMRV9IMjY1
CisgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjU6IHsKKyAgICAgIFJUQ19DSEVDSyhmcmFnbWVudGF0
aW9uKTsKKyAgICAgIGNvbnN0IGF1dG8mIGgyNjUgPQorICAgICAgICAgIGFic2w6OmdldDxSVFBW
aWRlb0hlYWRlckgyNjU+KHJ0cF92aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOworICAg
ICAgcmV0dXJuIGFic2w6Om1ha2VfdW5pcXVlPFJ0cFBhY2tldGl6ZXJIMjY1PigKKyAgICAgICAg
ICBwYXlsb2FkLCBsaW1pdHMsIGgyNjUucGFja2V0aXphdGlvbl9tb2RlLCAqZnJhZ21lbnRhdGlv
bik7CisgICAgfQorI2VuZGlmCiAgICAgY2FzZSBrVmlkZW9Db2RlY1ZQODogewogICAgICAgY29u
c3QgYXV0byYgdnA4ID0KICAgICAgICAgICBhYnNsOjpnZXQ8UlRQVmlkZW9IZWFkZXJWUDg+KHJ0
cF92aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
cnRwX2Zvcm1hdF9oMjY1LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmNjCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjcyMWM1YmUxY2E5YjZhYzc2ZDg1YjQyZTE3YjkzNDcxNDc1Y2U4ZDIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuY2MKQEAgLTAsMCArMSw2NTAgQEAKKy8q
CisgKiAgSW50ZWwgTGljZW5zZQorICovCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1
ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1
X3Bwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJz
ZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuaCIKKyNp
bmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgorI2luY2x1ZGUg
Im1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2J5dGVfaW8uaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0
cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS9ydHBfcGFja2V0X3RvX3NlbmQuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dn
aW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2Uvc3lzdGVtL2ZhbGx0aHJvdWdoLmgiCit1c2luZyBu
YW1lc3BhY2UgcnRjOworCituYW1lc3BhY2Ugd2VicnRjIHsKK25hbWVzcGFjZSB7CisKK2VudW0g
TmFsdVR5cGUgeworICBrVHJhaWxOID0gMCwKKyAga1RyYWlsUiA9IDEsCisgIGtUc2FOID0gMiwK
KyAga1RzYVIgPSAzLAorICBrU3RzYU4gPSA0LAorICBrU3RzYVIgPSA1LAorICBrUmFkbE4gPSA2
LAorICBrUmFkbFIgPSA3LAorICBrQmxhV0xwID0gMTYsCisgIGtCbGFXUmFkbCA9IDE3LAorICBr
QmxhTkxwID0gMTgsCisgIGtJZHJXUmFkbCA9IDE5LAorICBrSWRyTkxwID0gMjAsCisgIGtDcmEg
PSAyMSwKKyAga1ZwcyA9IDMyLAorICBrSGV2Y1NwcyA9IDMzLAorICBrSGV2Y1BwcyA9IDM0LAor
ICBrSGV2Y0F1ZCA9IDM1LAorICBrUHJlZml4U2VpID0gMzksCisgIGtTdWZmaXhTZWkgPSA0MCwK
KyAga0hldmNBcCA9IDQ4LAorICBrSGV2Y0Z1ID0gNDkKK307CisKKy8qCisgICAwICAgICAgICAg
ICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAgICAzCisgICAw
IDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDgg
OSAwIDEKKyAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSsKKyAgfCAgICBQYXlsb2FkSGRyIChUeXBlPTQ5KSAgICAgICB8ICAg
RlUgaGVhZGVyICAgfCBET05MIChjb25kKSAgIHwKKyAgKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLXwKKyovCisvLyBVbmxpa2Ug
SC4yNjQsIEhFVkMgTkFMIGhlYWRlciBpcyAyLWJ5dGVzLgorc3RhdGljIGNvbnN0IHNpemVfdCBr
SGV2Y05hbEhlYWRlclNpemUgPSAyOworLy8gSC4yNjUncyBGVSBpcyBjb25zdHJ1Y3RlZCBvZiAy
LWJ5dGUgcGF5bG9hZCBoZWFkZXIsIGFuZCAxLWJ5dGUgRlUgaGVhZGVyCitzdGF0aWMgY29uc3Qg
c2l6ZV90IGtIZXZjRnVIZWFkZXJTaXplID0gMTsKK3N0YXRpYyBjb25zdCBzaXplX3Qga0hldmNM
ZW5ndGhGaWVsZFNpemUgPSAyOworc3RhdGljIGNvbnN0IHNpemVfdCBrSGV2Y0FwSGVhZGVyU2l6
ZSA9CisgICAga0hldmNOYWxIZWFkZXJTaXplICsga0hldmNMZW5ndGhGaWVsZFNpemU7CisKK2Vu
dW0gSGV2Y05hbEhkck1hc2tzIHsKKyAga0hldmNGQml0ID0gMHg4MCwKKyAga0hldmNUeXBlTWFz
ayA9IDB4N0UsCisgIGtIZXZjTGF5ZXJJREhNYXNrID0gMHgxLAorICBrSGV2Y0xheWVySURMTWFz
ayA9IDB4RjgsCisgIGtIZXZjVElETWFzayA9IDB4NywKKyAga0hldmNUeXBlTWFza04gPSAweDgx
LAorICBrSGV2Y1R5cGVNYXNrSW5GdUhlYWRlciA9IDB4M0YKK307CisKKy8vIEJpdCBtYXNrcyBm
b3IgRlUgaGVhZGVycy4KK2VudW0gSGV2Y0Z1RGVmcyB7IGtIZXZjU0JpdCA9IDB4ODAsIGtIZXZj
RUJpdCA9IDB4NDAsIGtIZXZjRnVUeXBlQml0ID0gMHgzRiB9OworCisvLyBUT0RPKHBib3MpOiBB
dm9pZCBwYXJzaW5nIHRoaXMgaGVyZSBhcyB3ZWxsIGFzIGluc2lkZSB0aGUgaml0dGVyIGJ1ZmZl
ci4KK2Jvb2wgUGFyc2VBcFN0YXJ0T2Zmc2V0cyhjb25zdCB1aW50OF90KiBuYWx1X3B0ciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoX3JlbWFpbmluZywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxzaXplX3Q+KiBvZmZzZXRzKSB7CisgIHNpemVf
dCBvZmZzZXQgPSAwOworICB3aGlsZSAobGVuZ3RoX3JlbWFpbmluZyA+IDApIHsKKyAgICAvLyBC
dWZmZXIgZG9lc24ndCBjb250YWluIHJvb20gZm9yIGFkZGl0aW9uYWwgbmFsdSBsZW5ndGguCisg
ICAgaWYgKGxlbmd0aF9yZW1haW5pbmcgPCBzaXplb2YodWludDE2X3QpKQorICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHVpbnQxNl90IG5hbHVfc2l6ZSA9IEJ5dGVSZWFkZXI8dWludDE2X3Q+OjpS
ZWFkQmlnRW5kaWFuKG5hbHVfcHRyKTsKKyAgICBuYWx1X3B0ciArPSBzaXplb2YodWludDE2X3Qp
OworICAgIGxlbmd0aF9yZW1haW5pbmcgLT0gc2l6ZW9mKHVpbnQxNl90KTsKKyAgICBpZiAobmFs
dV9zaXplID4gbGVuZ3RoX3JlbWFpbmluZykKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICBuYWx1
X3B0ciArPSBuYWx1X3NpemU7CisgICAgbGVuZ3RoX3JlbWFpbmluZyAtPSBuYWx1X3NpemU7CisK
KyAgICBvZmZzZXRzLT5wdXNoX2JhY2sob2Zmc2V0ICsga0hldmNBcEhlYWRlclNpemUpOworICAg
IG9mZnNldCArPSBrSGV2Y0xlbmd0aEZpZWxkU2l6ZSArIG5hbHVfc2l6ZTsKKyAgfQorICByZXR1
cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlCisKK1J0cFBhY2tldGl6ZXJIMjY1OjpSdHBQ
YWNrZXRpemVySDI2NSgKKyAgICBydGM6OkFycmF5Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2Fk
LAorICAgIFBheWxvYWRTaXplTGltaXRzIGxpbWl0cywKKyAgICBIMjY1UGFja2V0aXphdGlvbk1v
ZGUgcGFja2V0aXphdGlvbl9tb2RlLAorICAgIGNvbnN0IFJUUEZyYWdtZW50YXRpb25IZWFkZXIm
IGZyYWdtZW50YXRpb24pCisgICAgOiBsaW1pdHNfKGxpbWl0cyksCisgICAgICBudW1fcGFja2V0
c19sZWZ0XygwKSB7CisgIC8vIEd1YXJkIGFnYWluc3QgdW5pbml0aWFsaXplZCBtZW1vcnkgaW4g
cGFja2V0aXphdGlvbl9tb2RlLgorICBSVENfQ0hFQ0socGFja2V0aXphdGlvbl9tb2RlID09IEgy
NjVQYWNrZXRpemF0aW9uTW9kZTo6Tm9uSW50ZXJsZWF2ZWQgfHwKKyAgICAgICAgICAgIHBhY2tl
dGl6YXRpb25fbW9kZSA9PSBIMjY1UGFja2V0aXphdGlvbk1vZGU6OlNpbmdsZU5hbFVuaXQpOwor
CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0aW9uVmVj
dG9yU2l6ZTsgKytpKSB7CisgICAgY29uc3QgdWludDhfdCogZnJhZ21lbnQgPQorICAgICAgICBw
YXlsb2FkLmRhdGEoKSArIGZyYWdtZW50YXRpb24uZnJhZ21lbnRhdGlvbk9mZnNldFtpXTsKKyAg
ICBjb25zdCBzaXplX3QgZnJhZ21lbnRfbGVuZ3RoID0gZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0
aW9uTGVuZ3RoW2ldOworICAgIGlucHV0X2ZyYWdtZW50c18ucHVzaF9iYWNrKEZyYWdtZW50KGZy
YWdtZW50LCBmcmFnbWVudF9sZW5ndGgpKTsKKyAgfQorCisgIGlmICghR2VuZXJhdGVQYWNrZXRz
KHBhY2tldGl6YXRpb25fbW9kZSkpIHsKKyAgICAvLyBJZiBmYWlsZWQgdG8gZ2VuZXJhdGUgYWxs
IHRoZSBwYWNrZXRzLCBkaXNjYXJkIGFscmVhZHkgZ2VuZXJhdGVkCisgICAgLy8gcGFja2V0cyBp
biBjYXNlIHRoZSBjYWxsZXIgd291bGQgaWdub3JlIHJldHVybiB2YWx1ZSBhbmQgc3RpbGwgdHJ5
IHRvCisgICAgLy8gY2FsbCBOZXh0UGFja2V0KCkuCisgICAgbnVtX3BhY2tldHNfbGVmdF8gPSAw
OworICAgIHdoaWxlICghcGFja2V0c18uZW1wdHkoKSkgeworICAgICAgcGFja2V0c18ucG9wKCk7
CisgICAgfQorICB9Cit9CisKK1J0cFBhY2tldGl6ZXJIMjY1Ojp+UnRwUGFja2V0aXplckgyNjUo
KSB7fQorCitzaXplX3QgUnRwUGFja2V0aXplckgyNjU6Ok51bVBhY2tldHMoKSBjb25zdCB7Cisg
IHJldHVybiBudW1fcGFja2V0c19sZWZ0XzsKK30KKworUnRwUGFja2V0aXplckgyNjU6OkZyYWdt
ZW50OjpGcmFnbWVudChjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBsZW5ndGgpCisgICAg
OiBidWZmZXIoYnVmZmVyKSwgbGVuZ3RoKGxlbmd0aCkge30KK1J0cFBhY2tldGl6ZXJIMjY1OjpG
cmFnbWVudDo6RnJhZ21lbnQoY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50KQorICAgIDogYnVmZmVy
KGZyYWdtZW50LmJ1ZmZlciksIGxlbmd0aChmcmFnbWVudC5sZW5ndGgpIHt9CisKKworYm9vbCBS
dHBQYWNrZXRpemVySDI2NTo6R2VuZXJhdGVQYWNrZXRzKAorICAgIEgyNjVQYWNrZXRpemF0aW9u
TW9kZSBwYWNrZXRpemF0aW9uX21vZGUpIHsKKyAgLy8gRm9yIEhFVkMgd2UgZm9sbG93IG5vbi1p
bnRlcmxlYXZlZCBtb2RlIGZvciB0aGUgcGFja2V0aXphdGlvbiwKKyAgLy8gYW5kIGRvbid0IHN1
cHBvcnQgc2luZ2xlLW5hbHUgbW9kZSBhdCBwcmVzZW50LgorICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpOykgeworICAgIGludCBmcmFnbWVudF9sZW4gPSBp
bnB1dF9mcmFnbWVudHNfW2ldLmxlbmd0aDsKKyAgICBpbnQgc2luZ2xlX3BhY2tldF9jYXBhY2l0
eSA9IGxpbWl0c18ubWF4X3BheWxvYWRfbGVuOworICAgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNp
emUoKSA9PSAxKQorICAgICAgc2luZ2xlX3BhY2tldF9jYXBhY2l0eSAtPSBsaW1pdHNfLnNpbmds
ZV9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgICBlbHNlIGlmIChpID09IDApCisgICAgICBzaW5n
bGVfcGFja2V0X2NhcGFjaXR5IC09IGxpbWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47
CisgICAgZWxzZSBpZiAoaSArIDEgPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkpIHsKKyAgICAg
IC8vIFByZXRlbmQgdGhhdCBsYXN0IGZyYWdtZW50IGlzIGxhcmdlciBpbnN0ZWFkIG9mIG1ha2lu
ZyBsYXN0IHBhY2tldAorICAgICAgLy8gc21hbGxlci4KKyAgICAgIHNpbmdsZV9wYWNrZXRfY2Fw
YWNpdHkgLT0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICAgIH0KKyAgICBp
ZiAoZnJhZ21lbnRfbGVuID4gc2luZ2xlX3BhY2tldF9jYXBhY2l0eSkgeworICAgICAgUGFja2V0
aXplRnUoaSk7CisgICAgICArK2k7CisgICAgfSBlbHNlIHsKKyAgICAgIFBhY2tldGl6ZVNpbmds
ZU5hbHUoaSk7CisgICAgICArK2k7CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCiti
b29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXRpemVGdShzaXplX3QgZnJhZ21lbnRfaW5kZXgp
IHsKKyAgLy8gRnJhZ21lbnQgcGF5bG9hZCBpbnRvIHBhY2tldHMgKEZVKS4KKyAgLy8gU3RyaXAg
b3V0IHRoZSBvcmlnaW5hbCBoZWFkZXIgYW5kIGxlYXZlIHJvb20gZm9yIHRoZSBGVSBoZWFkZXIu
CisgIGNvbnN0IEZyYWdtZW50JiBmcmFnbWVudCA9IGlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRf
aW5kZXhdOworICBQYXlsb2FkU2l6ZUxpbWl0cyBsaW1pdHMgPSBsaW1pdHNfOworICBsaW1pdHMu
bWF4X3BheWxvYWRfbGVuIC09IGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXpl
OworCisgIC8vIFVwZGF0ZSBzaW5nbGUvZmlyc3QvbGFzdCBwYWNrZXQgcmVkdWN0aW9ucyB1bmxl
c3MgaXQgaXMgc2luZ2xlL2ZpcnN0L2xhc3QKKyAgLy8gZnJhZ21lbnQuCisgIGlmIChpbnB1dF9m
cmFnbWVudHNfLnNpemUoKSAhPSAxKSB7CisgICAgLy8gaWYgdGhpcyBmcmFnbWVudCBpcyBwdXQg
aW50byBhIHNpbmdsZSBwYWNrZXQsIGl0IG1pZ2h0IHN0aWxsIGJlIHRoZQorICAgIC8vIGZpcnN0
IG9yIHRoZSBsYXN0IHBhY2tldCBpbiB0aGUgd2hvbGUgc2VxdWVuY2Ugb2YgcGFja2V0cy4KKyAg
ICBpZiAoZnJhZ21lbnRfaW5kZXggPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKSB7Cisg
ICAgICBsaW1pdHMuc2luZ2xlX3BhY2tldF9yZWR1Y3Rpb25fbGVuID0gbGltaXRzXy5sYXN0X3Bh
Y2tldF9yZWR1Y3Rpb25fbGVuOworICAgIH0gZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkg
eworICAgICAgbGltaXRzLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbiA9IGxpbWl0c18uZmly
c3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgfSBlbHNlIHsKKyAgICAgIGxpbWl0cy5zaW5n
bGVfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSAwOworICAgIH0KKyAgfQorICBpZiAoZnJhZ21lbnRf
aW5kZXggIT0gMCkKKyAgICBsaW1pdHMuZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSAwOwor
ICBpZiAoZnJhZ21lbnRfaW5kZXggIT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKQorICAg
IGxpbWl0cy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuID0gMDsKKworICAvLyBTdHJpcCBvdXQg
dGhlIG9yaWdpbmFsIGhlYWRlci4KKyAgc2l6ZV90IHBheWxvYWRfbGVmdCA9IGZyYWdtZW50Lmxl
bmd0aCAtIGtIZXZjTmFsSGVhZGVyU2l6ZTsKKyAgaW50IG9mZnNldCA9IGtIZXZjTmFsSGVhZGVy
U2l6ZTsKKworICBzdGQ6OnZlY3RvcjxpbnQ+IHBheWxvYWRfc2l6ZXMgPSBTcGxpdEFib3V0RXF1
YWxseShwYXlsb2FkX2xlZnQsIGxpbWl0cyk7CisgIGlmIChwYXlsb2FkX3NpemVzLmVtcHR5KCkp
CisgICAgcmV0dXJuIGZhbHNlOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGF5bG9hZF9z
aXplcy5zaXplKCk7ICsraSkgeworICAgIGludCBwYWNrZXRfbGVuZ3RoID0gcGF5bG9hZF9zaXpl
c1tpXTsKKyAgICBSVENfQ0hFQ0tfR1QocGFja2V0X2xlbmd0aCwgMCk7CisgICAgdWludDE2X3Qg
aGVhZGVyID0gKGZyYWdtZW50LmJ1ZmZlclswXSA8PCA4KSB8IGZyYWdtZW50LmJ1ZmZlclsxXTsK
KyAgICBwYWNrZXRzXy5wdXNoKFBhY2tldFVuaXQoRnJhZ21lbnQoZnJhZ21lbnQuYnVmZmVyICsg
b2Zmc2V0LCBwYWNrZXRfbGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypm
aXJzdF9mcmFnbWVudD0qL2kgPT0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyps
YXN0X2ZyYWdtZW50PSovaSA9PSBwYXlsb2FkX3NpemVzLnNpemUoKSAtIDEsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZhbHNlLCBoZWFkZXIpKTsKKyAgICBvZmZzZXQgKz0gcGFja2V0
X2xlbmd0aDsKKyAgICBwYXlsb2FkX2xlZnQgLT0gcGFja2V0X2xlbmd0aDsKKyAgfQorICBudW1f
cGFja2V0c19sZWZ0XyArPSBwYXlsb2FkX3NpemVzLnNpemUoKTsKKyAgUlRDX0NIRUNLX0VRKDAs
IHBheWxvYWRfbGVmdCk7CisgIHJldHVybiB0cnVlOworfQorCisKK2Jvb2wgUnRwUGFja2V0aXpl
ckgyNjU6OlBhY2tldGl6ZVNpbmdsZU5hbHUoc2l6ZV90IGZyYWdtZW50X2luZGV4KSB7CisgIC8v
IEFkZCBhIHNpbmdsZSBOQUxVIHRvIHRoZSBxdWV1ZSwgbm8gYWdncmVnYXRpb24uCisgIHNpemVf
dCBwYXlsb2FkX3NpemVfbGVmdCA9IGxpbWl0c18ubWF4X3BheWxvYWRfbGVuOworICBpZiAoaW5w
dXRfZnJhZ21lbnRzXy5zaXplKCkgPT0gMSkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1p
dHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgZWxzZSBpZiAoZnJhZ21lbnRfaW5k
ZXggPT0gMCkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1pdHNfLmZpcnN0X3BhY2tldF9y
ZWR1Y3Rpb25fbGVuOworICBlbHNlIGlmIChmcmFnbWVudF9pbmRleCArIDEgPT0gaW5wdXRfZnJh
Z21lbnRzXy5zaXplKCkpCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5sYXN0X3Bh
Y2tldF9yZWR1Y3Rpb25fbGVuOworICBjb25zdCBGcmFnbWVudCogZnJhZ21lbnQgPSAmaW5wdXRf
ZnJhZ21lbnRzX1tmcmFnbWVudF9pbmRleF07CisgIGlmIChwYXlsb2FkX3NpemVfbGVmdCA8IGZy
YWdtZW50LT5sZW5ndGgpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGZp
dCBhIGZyYWdtZW50IHRvIHBhY2tldCBpbiBTaW5nbGVOYWx1ICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAicGFja2V0aXphdGlvbiBtb2RlLiBQYXlsb2FkIHNpemUgbGVmdCAiCisgICAgICAg
ICAgICAgICAgICAgICAgPDwgcGF5bG9hZF9zaXplX2xlZnQgPDwgIiwgZnJhZ21lbnQgbGVuZ3Ro
ICIKKyAgICAgICAgICAgICAgICAgICAgICA8PCBmcmFnbWVudC0+bGVuZ3RoIDw8ICIsIHBhY2tl
dCBjYXBhY2l0eSAiCisgICAgICAgICAgICAgICAgICAgICAgPDwgbGltaXRzXy5tYXhfcGF5bG9h
ZF9sZW47CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIFJUQ19DSEVDS19HVChmcmFnbWVudC0+
bGVuZ3RoLCAwdSk7CisgIHBhY2tldHNfLnB1c2goUGFja2V0VW5pdCgqZnJhZ21lbnQsIHRydWUg
LyogZmlyc3QgKi8sIHRydWUgLyogbGFzdCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZhbHNlIC8qIGFnZ3JlZ2F0ZWQgKi8sIGZyYWdtZW50LT5idWZmZXJbMF0pKTsKKyAgKytudW1f
cGFja2V0c19sZWZ0XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2ludCBSdHBQYWNrZXRpemVySDI2
NTo6UGFja2V0aXplQXAoc2l6ZV90IGZyYWdtZW50X2luZGV4KSB7CisgIC8vIEFnZ3JlZ2F0ZSBm
cmFnbWVudHMgaW50byBvbmUgcGFja2V0IChTVEFQLUEpLgorICBzaXplX3QgcGF5bG9hZF9zaXpl
X2xlZnQgPSBsaW1pdHNfLm1heF9wYXlsb2FkX2xlbjsKKyAgaWYgKGlucHV0X2ZyYWdtZW50c18u
c2l6ZSgpID09IDEpCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5zaW5nbGVfcGFj
a2V0X3JlZHVjdGlvbl9sZW47CisgIGVsc2UgaWYgKGZyYWdtZW50X2luZGV4ID09IDApCisgICAg
cGF5bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5maXJzdF9wYWNrZXRfcmVkdWN0aW9uX2xlbjsK
KyAgaW50IGFnZ3JlZ2F0ZWRfZnJhZ21lbnRzID0gMDsKKyAgc2l6ZV90IGZyYWdtZW50X2hlYWRl
cnNfbGVuZ3RoID0gMDsKKyAgY29uc3QgRnJhZ21lbnQqIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdt
ZW50c19bZnJhZ21lbnRfaW5kZXhdOworICBSVENfQ0hFQ0tfR0UocGF5bG9hZF9zaXplX2xlZnQs
IGZyYWdtZW50LT5sZW5ndGgpOworICArK251bV9wYWNrZXRzX2xlZnRfOworCisgIGF1dG8gcGF5
bG9hZF9zaXplX25lZWRlZCA9IFsmXSB7CisgICAgc2l6ZV90IGZyYWdtZW50X3NpemUgPSBmcmFn
bWVudC0+bGVuZ3RoICsgZnJhZ21lbnRfaGVhZGVyc19sZW5ndGg7CisgICAgaWYgKGlucHV0X2Zy
YWdtZW50c18uc2l6ZSgpID09IDEpIHsKKyAgICAgIC8vIFNpbmdsZSBmcmFnbWVudCwgc2luZ2xl
IHBhY2tldCwgcGF5bG9hZF9zaXplX2xlZnQgYWxyZWFkeSBhZGp1c3RlZAorICAgICAgLy8gd2l0
aCBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbi4KKyAgICAgIHJldHVybiBmcmFn
bWVudF9zaXplOworICAgIH0KKyAgICBpZiAoZnJhZ21lbnRfaW5kZXggPT0gaW5wdXRfZnJhZ21l
bnRzXy5zaXplKCkgLSAxKSB7CisgICAgICAvLyBMYXN0IGZyYWdtZW50LCBzbyBTdHJhcEEgbWln
aHQgYmUgdGhlIGxhc3QgcGFja2V0LgorICAgICAgcmV0dXJuIGZyYWdtZW50X3NpemUgKyBsaW1p
dHNfLmxhc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgfQorICAgIHJldHVybiBmcmFnbWVu
dF9zaXplOworICB9OworCisgIHdoaWxlIChwYXlsb2FkX3NpemVfbGVmdCA+PSBwYXlsb2FkX3Np
emVfbmVlZGVkKCkpIHsKKyAgICBSVENfQ0hFQ0tfR1QoZnJhZ21lbnQtPmxlbmd0aCwgMCk7Cisg
ICAgcGFja2V0c18ucHVzaChQYWNrZXRVbml0KCpmcmFnbWVudCwgYWdncmVnYXRlZF9mcmFnbWVu
dHMgPT0gMCwgZmFsc2UsIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWdt
ZW50LT5idWZmZXJbMF0pKTsKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBmcmFnbWVudC0+bGVu
Z3RoOworICAgIHBheWxvYWRfc2l6ZV9sZWZ0IC09IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoOwor
CisgICAgZnJhZ21lbnRfaGVhZGVyc19sZW5ndGggPSBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAg
ICAvLyBJZiB3ZSBhcmUgZ29pbmcgdG8gdHJ5IHRvIGFnZ3JlZ2F0ZSBtb3JlIGZyYWdtZW50cyBp
bnRvIHRoaXMgcGFja2V0CisgICAgLy8gd2UgbmVlZCB0byBhZGQgdGhlIFNUQVAtQSBOQUxVIGhl
YWRlciBhbmQgYSBsZW5ndGggZmllbGQgZm9yIHRoZSBmaXJzdAorICAgIC8vIE5BTFUgb2YgdGhp
cyBwYWNrZXQuCisgICAgaWYgKGFnZ3JlZ2F0ZWRfZnJhZ21lbnRzID09IDApCisgICAgICBmcmFn
bWVudF9oZWFkZXJzX2xlbmd0aCArPSBrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0xlbmd0aEZp
ZWxkU2l6ZTsKKyAgICArK2FnZ3JlZ2F0ZWRfZnJhZ21lbnRzOworCisgICAgLy8gTmV4dCBmcmFn
bWVudC4KKyAgICArK2ZyYWdtZW50X2luZGV4OworICAgIGlmIChmcmFnbWVudF9pbmRleCA9PSBp
bnB1dF9mcmFnbWVudHNfLnNpemUoKSkKKyAgICAgIGJyZWFrOworICAgIGZyYWdtZW50ID0gJmlu
cHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOworICB9CisgIFJUQ19DSEVDS19HVChhZ2dy
ZWdhdGVkX2ZyYWdtZW50cywgMCk7CisgIHBhY2tldHNfLmJhY2soKS5sYXN0X2ZyYWdtZW50ID0g
dHJ1ZTsKKyAgcmV0dXJuIGZyYWdtZW50X2luZGV4OworfQorCitib29sIFJ0cFBhY2tldGl6ZXJI
MjY1OjpOZXh0UGFja2V0KFJ0cFBhY2tldFRvU2VuZCogcnRwX3BhY2tldCkgeworICBSVENfRENI
RUNLKHJ0cF9wYWNrZXQpOworCisgIGlmIChwYWNrZXRzXy5lbXB0eSgpKSB7CisgICAgcmV0dXJu
IGZhbHNlOworICB9CisKKyAgUGFja2V0VW5pdCBwYWNrZXQgPSBwYWNrZXRzXy5mcm9udCgpOwor
CisgIGlmIChwYWNrZXQuZmlyc3RfZnJhZ21lbnQgJiYgcGFja2V0Lmxhc3RfZnJhZ21lbnQpIHsK
KyAgICAvLyBTaW5nbGUgTkFMIHVuaXQgcGFja2V0LgorICAgIHNpemVfdCBieXRlc190b19zZW5k
ID0gcGFja2V0LnNvdXJjZV9mcmFnbWVudC5sZW5ndGg7CisgICAgdWludDhfdCogYnVmZmVyID0g
cnRwX3BhY2tldC0+QWxsb2NhdGVQYXlsb2FkKGJ5dGVzX3RvX3NlbmQpOworICAgIG1lbWNweShi
dWZmZXIsIHBhY2tldC5zb3VyY2VfZnJhZ21lbnQuYnVmZmVyLCBieXRlc190b19zZW5kKTsKKyAg
ICBwYWNrZXRzXy5wb3AoKTsKKyAgICBpbnB1dF9mcmFnbWVudHNfLnBvcF9mcm9udCgpOworICB9
IGVsc2UgaWYgKHBhY2tldC5hZ2dyZWdhdGVkKSB7CisgICAgYm9vbCBpc19sYXN0X3BhY2tldCA9
IG51bV9wYWNrZXRzX2xlZnRfID09IDE7CisgICAgTmV4dEFnZ3JlZ2F0ZVBhY2tldChydHBfcGFj
a2V0LCBpc19sYXN0X3BhY2tldCk7CisgIH0gZWxzZSB7CisgICAgTmV4dEZyYWdtZW50UGFja2V0
KHJ0cF9wYWNrZXQpOworICB9CisgIHJ0cF9wYWNrZXQtPlNldE1hcmtlcihwYWNrZXRzXy5lbXB0
eSgpKTsKKyAgLS1udW1fcGFja2V0c19sZWZ0XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQg
UnRwUGFja2V0aXplckgyNjU6Ok5leHRBZ2dyZWdhdGVQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBy
dHBfcGFja2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGxhc3QpIHsKKyAgc2l6ZV90IHBheWxvYWRfY2FwYWNpdHkgPSBydHBfcGFja2V0LT5GcmVl
Q2FwYWNpdHkoKTsKKyAgUlRDX0NIRUNLX0dFKHBheWxvYWRfY2FwYWNpdHksIGtIZXZjTmFsSGVh
ZGVyU2l6ZSk7CisgIHVpbnQ4X3QqIGJ1ZmZlciA9IHJ0cF9wYWNrZXQtPkFsbG9jYXRlUGF5bG9h
ZChwYXlsb2FkX2NhcGFjaXR5KTsKKworICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFja2V0c18u
ZnJvbnQoKTsKKyAgUlRDX0NIRUNLKHBhY2tldC0+Zmlyc3RfZnJhZ21lbnQpOworICB1aW50OF90
IHBheWxvYWRfaGRyX2ggPSBwYWNrZXQtPmhlYWRlciA+PiA4OworICB1aW50OF90IHBheWxvYWRf
aGRyX2wgPSBwYWNrZXQtPmhlYWRlciAmIDB4RkY7CisgIHVpbnQ4X3QgbGF5ZXJfaWRfaCA9IHBh
eWxvYWRfaGRyX2ggJiBrSGV2Y0xheWVySURITWFzazsKKworICBwYXlsb2FkX2hkcl9oID0KKyAg
ICAgIChwYXlsb2FkX2hkcl9oICYga0hldmNUeXBlTWFza04pIHwgKGtIZXZjQXAgPDwgMSkgfCBs
YXllcl9pZF9oOworCisgIGJ1ZmZlclswXSA9IHBheWxvYWRfaGRyX2g7CisgIGJ1ZmZlclsxXSA9
IHBheWxvYWRfaGRyX2w7CisgIGludCBpbmRleCA9IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKyAgYm9v
bCBpc19sYXN0X2ZyYWdtZW50ID0gcGFja2V0LT5sYXN0X2ZyYWdtZW50OworICB3aGlsZSAocGFj
a2V0LT5hZ2dyZWdhdGVkKSB7CisgICAgLy8gQWRkIE5BTCB1bml0IGxlbmd0aCBmaWVsZC4KKyAg
ICBjb25zdCBGcmFnbWVudCYgZnJhZ21lbnQgPSBwYWNrZXQtPnNvdXJjZV9mcmFnbWVudDsKKyAg
ICBCeXRlV3JpdGVyPHVpbnQxNl90Pjo6V3JpdGVCaWdFbmRpYW4oJmJ1ZmZlcltpbmRleF0sIGZy
YWdtZW50Lmxlbmd0aCk7CisgICAgaW5kZXggKz0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAg
Ly8gQWRkIE5BTCB1bml0LgorICAgIG1lbWNweSgmYnVmZmVyW2luZGV4XSwgZnJhZ21lbnQuYnVm
ZmVyLCBmcmFnbWVudC5sZW5ndGgpOworICAgIGluZGV4ICs9IGZyYWdtZW50Lmxlbmd0aDsKKyAg
ICBwYWNrZXRzXy5wb3AoKTsKKyAgICBpbnB1dF9mcmFnbWVudHNfLnBvcF9mcm9udCgpOworICAg
IGlmIChpc19sYXN0X2ZyYWdtZW50KQorICAgICAgYnJlYWs7CisgICAgcGFja2V0ID0gJnBhY2tl
dHNfLmZyb250KCk7CisgICAgaXNfbGFzdF9mcmFnbWVudCA9IHBhY2tldC0+bGFzdF9mcmFnbWVu
dDsKKyAgfQorICBSVENfQ0hFQ0soaXNfbGFzdF9mcmFnbWVudCk7CisgIHJ0cF9wYWNrZXQtPlNl
dFBheWxvYWRTaXplKGluZGV4KTsKK30KKwordm9pZCBSdHBQYWNrZXRpemVySDI2NTo6TmV4dEZy
YWdtZW50UGFja2V0KFJ0cFBhY2tldFRvU2VuZCogcnRwX3BhY2tldCkgeworICBQYWNrZXRVbml0
KiBwYWNrZXQgPSAmcGFja2V0c18uZnJvbnQoKTsKKyAgLy8gTkFMIHVuaXQgZnJhZ21lbnRlZCBv
dmVyIG11bHRpcGxlIHBhY2tldHMgKEZVKS4KKyAgLy8gV2UgZG8gbm90IHNlbmQgb3JpZ2luYWwg
TkFMVSBoZWFkZXIsIHNvIGl0IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlCisgIC8vIFBheWxvYWRI
ZHIgb2YgdGhlIGZpcnN0IHBhY2tldC4KKyAgdWludDhfdCBwYXlsb2FkX2hkcl9oID0KKyAgICAg
IHBhY2tldC0+aGVhZGVyID4+IDg7ICAvLyAxLWJpdCBGLCA2LWJpdCB0eXBlLCAxLWJpdCBsYXll
cklEIGhpZ2hlc3QtYml0CisgIHVpbnQ4X3QgcGF5bG9hZF9oZHJfbCA9IHBhY2tldC0+aGVhZGVy
ICYgMHhGRjsKKyAgdWludDhfdCBsYXllcl9pZF9oID0gcGF5bG9hZF9oZHJfaCAmIGtIZXZjTGF5
ZXJJREhNYXNrOworICB1aW50OF90IGZ1X2hlYWRlciA9IDA7CisgIC8vIFMgfCBFIHw2IGJpdCB0
eXBlLgorICBmdV9oZWFkZXIgfD0gKHBhY2tldC0+Zmlyc3RfZnJhZ21lbnQgPyBrSGV2Y1NCaXQg
OiAwKTsKKyAgZnVfaGVhZGVyIHw9IChwYWNrZXQtPmxhc3RfZnJhZ21lbnQgPyBrSGV2Y0VCaXQg
OiAwKTsKKyAgdWludDhfdCB0eXBlID0gKHBheWxvYWRfaGRyX2ggJiBrSGV2Y1R5cGVNYXNrKSA+
PiAxOworICBmdV9oZWFkZXIgfD0gdHlwZTsKKyAgLy8gTm93IHVwZGF0ZSBwYXlsb2FkX2hkcl9o
IHdpdGggRlUgdHlwZS4KKyAgcGF5bG9hZF9oZHJfaCA9CisgICAgICAocGF5bG9hZF9oZHJfaCAm
IGtIZXZjVHlwZU1hc2tOKSB8IChrSGV2Y0Z1IDw8IDEpIHwgbGF5ZXJfaWRfaDsKKyAgY29uc3Qg
RnJhZ21lbnQmIGZyYWdtZW50ID0gcGFja2V0LT5zb3VyY2VfZnJhZ21lbnQ7CisgIHVpbnQ4X3Qq
IGJ1ZmZlciA9IHJ0cF9wYWNrZXQtPkFsbG9jYXRlUGF5bG9hZCgKKyAgICAgIGtIZXZjRnVIZWFk
ZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplICsgZnJhZ21lbnQubGVuZ3RoKTsKKyAgYnVmZmVy
WzBdID0gcGF5bG9hZF9oZHJfaDsKKyAgYnVmZmVyWzFdID0gcGF5bG9hZF9oZHJfbDsKKyAgYnVm
ZmVyWzJdID0gZnVfaGVhZGVyOworCisgIGlmIChwYWNrZXQtPmxhc3RfZnJhZ21lbnQpIHsKKyAg
ICBtZW1jcHkoYnVmZmVyICsga0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUs
IGZyYWdtZW50LmJ1ZmZlciwKKyAgICAgICAgICAgZnJhZ21lbnQubGVuZ3RoKTsKKyAgfSBlbHNl
IHsKKyAgICBtZW1jcHkoYnVmZmVyICsga0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRl
clNpemUsIGZyYWdtZW50LmJ1ZmZlciwKKyAgICAgICAgICAgZnJhZ21lbnQubGVuZ3RoKTsKKyAg
fQorICBwYWNrZXRzXy5wb3AoKTsKK30KKworYWJzbDo6b3B0aW9uYWw8VmlkZW9SdHBEZXBhY2tl
dGl6ZXI6OlBhcnNlZFJ0cFBheWxvYWQ+IFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6UGFyc2Uo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0Yzo6Q29weU9uV3JpdGVCdWZmZXIg
cnRwX3BheWxvYWQpIHsKKyAgc2l6ZV90IHBheWxvYWRfZGF0YV9sZW5ndGggPSBydHBfcGF5bG9h
ZC5zaXplKCk7CisgIGlmIChwYXlsb2FkX2RhdGFfbGVuZ3RoID09IDApIHsKKyAgICBSVENfTE9H
KExTX0VSUk9SKSA8PCAiRW1wdHkgcGF5bG9hZC4iOworICAgIHJldHVybiBhYnNsOjpudWxsb3B0
OworICB9CisKKyAgUGFyc2VkUnRwUGF5bG9hZCBwYXJzZWRfcGF5bG9hZDsKKworICB1aW50OF90
KiBwYXlsb2FkX2RhdGEgPSBydHBfcGF5bG9hZC5kYXRhKCk7CisKKyAgb2Zmc2V0XyA9IDA7Cisg
IGxlbmd0aF8gPSBwYXlsb2FkX2RhdGFfbGVuZ3RoOworICBtb2RpZmllZF9idWZmZXJfLnJlc2V0
KCk7CisKKyAgdWludDhfdCBuYWxfdHlwZSA9IChwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y1R5cGVN
YXNrKSA+PiAxOworICBwYXJzZWRfcGF5bG9hZC52aWRlb19oZWFkZXIKKyAgICAgIC52aWRlb190
eXBlX2hlYWRlci5lbXBsYWNlPFJUUFZpZGVvSGVhZGVySDI2NT4oKTsKKworICBpZiAobmFsX3R5
cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtGVSkgeworICAgIC8vIEZyYWdtZW50ZWQgTkFMIHVuaXRz
IChGVS1BKS4KKyAgICBpZiAoIVBhcnNlRnVOYWx1KCZwYXJzZWRfcGF5bG9hZCwgcGF5bG9hZF9k
YXRhKSkKKyAgICAgIHJldHVybiBhYnNsOjpudWxsb3B0OworICB9IGVsc2UgeworICAgIC8vIFdl
IGhhbmRsZSBTVEFQLUEgYW5kIHNpbmdsZSBOQUxVJ3MgdGhlIHNhbWUgd2F5IGhlcmUuIFRoZSBq
aXR0ZXIgYnVmZmVyCisgICAgLy8gd2lsbCBkZXBhY2tldGl6ZSB0aGUgU1RBUC1BIGludG8gTkFM
IHVuaXRzIGxhdGVyLgorICAgIC8vIFRPRE8oc3ByYW5nKTogUGFyc2UgU1RBUC1BIG9mZnNldHMg
aGVyZSBhbmQgc3RvcmUgaW4gZnJhZ21lbnRhdGlvbiB2ZWMuCisgICAgaWYgKCFQcm9jZXNzQXBP
clNpbmdsZU5hbHUoJnBhcnNlZF9wYXlsb2FkLCBwYXlsb2FkX2RhdGEpKQorICAgICAgcmV0dXJu
IGFic2w6Om51bGxvcHQ7CisgIH0KKworICBjb25zdCB1aW50OF90KiBwYXlsb2FkID0KKyAgICAg
IG1vZGlmaWVkX2J1ZmZlcl8gPyBtb2RpZmllZF9idWZmZXJfLT5kYXRhKCkgOiBwYXlsb2FkX2Rh
dGE7CisKKyAgcGFyc2VkX3BheWxvYWQudmlkZW9fcGF5bG9hZCA9IHsgcGF5bG9hZCArIG9mZnNl
dF8sIGxlbmd0aF8gfTsKKyAgcmV0dXJuIHBhcnNlZF9wYXlsb2FkOworfQorCitib29sIFZpZGVv
UnRwRGVwYWNrZXRpemVySDI2NTo6UHJvY2Vzc0FwT3JTaW5nbGVOYWx1KAorICAgIFBhcnNlZFJ0
cFBheWxvYWQqIHBhcnNlZF9wYXlsb2FkLAorICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0
YSkgeworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLndpZHRoID0gMDsKKyAgcGFyc2Vk
X3BheWxvYWQtPnZpZGVvX2hlYWRlci5oZWlnaHQgPSAwOworICBwYXJzZWRfcGF5bG9hZC0+dmlk
ZW9faGVhZGVyLmNvZGVjID0ga1ZpZGVvQ29kZWNIMjY1OworICBwYXJzZWRfcGF5bG9hZC0+dmlk
ZW9faGVhZGVyLmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSA9IHRydWU7CisgIGF1dG8mIGgyNjVf
aGVhZGVyID0gYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4oCisgICAgICBwYXJzZWRfcGF5
bG9hZC0+dmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKKworICBjb25zdCB1aW50OF90
KiBuYWx1X3N0YXJ0ID0gcGF5bG9hZF9kYXRhICsga0hldmNOYWxIZWFkZXJTaXplOworICBjb25z
dCBzaXplX3QgbmFsdV9sZW5ndGggPSBsZW5ndGhfIC0ga0hldmNOYWxIZWFkZXJTaXplOworICB1
aW50OF90IG5hbF90eXBlID0gKHBheWxvYWRfZGF0YVswXSAmIGtIZXZjVHlwZU1hc2spID4+IDE7
CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4gbmFsdV9zdGFydF9vZmZzZXRzOworICBpZiAobmFsX3R5
cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtBUCkgeworICAgIC8vIFNraXAgdGhlIFN0YXBBIGhlYWRl
ciAoU3RhcEEgTkFMIHR5cGUgKyBsZW5ndGgpLgorICAgIGlmIChsZW5ndGhfIDw9IGtIZXZjQXBI
ZWFkZXJTaXplKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiQVAgaGVhZGVyIHRydW5j
YXRlZC4iOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghUGFyc2VBcFN0
YXJ0T2Zmc2V0cyhuYWx1X3N0YXJ0LCBuYWx1X2xlbmd0aCwgJm5hbHVfc3RhcnRfb2Zmc2V0cykp
IHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJBUCBwYWNrZXQgd2l0aCBpbmNvcnJlY3Qg
TkFMVSBwYWNrZXQgbGVuZ3Rocy4iOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IGgyNjVfaGVhZGVyLnBhY2tldGl6YXRpb25fdHlwZSA9IGtIMjY1QVA7CisgICAgLy8gbmFsX3R5
cGUgPSAocGF5bG9hZF9kYXRhW2tIZXZjQXBIZWFkZXJTaXplXSAmIGtIZXZjVHlwZU1hc2spID4+
IDE7CisgIH0gZWxzZSB7CisgICAgaDI2NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gy
NjVTaW5nbGVOYWx1OworICAgIG5hbHVfc3RhcnRfb2Zmc2V0cy5wdXNoX2JhY2soMCk7CisgIH0K
KyAgaDI2NV9oZWFkZXIubmFsdV90eXBlID0gbmFsX3R5cGU7CisgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZURlbHRh
OworCisgIG5hbHVfc3RhcnRfb2Zmc2V0cy5wdXNoX2JhY2sobGVuZ3RoXyArIGtIZXZjTGVuZ3Ro
RmllbGRTaXplKTsgIC8vIEVuZCBvZmZzZXQuCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFs
dV9zdGFydF9vZmZzZXRzLnNpemUoKSAtIDE7ICsraSkgeworICAgIHNpemVfdCBzdGFydF9vZmZz
ZXQgPSBuYWx1X3N0YXJ0X29mZnNldHNbaV07CisgICAgLy8gRW5kIG9mZnNldCBpcyBhY3R1YWxs
eSBzdGFydCBvZmZzZXQgZm9yIG5leHQgdW5pdCwgZXhjbHVkaW5nIGxlbmd0aCBmaWVsZAorICAg
IC8vIHNvIHJlbW92ZSB0aGF0IGZyb20gdGhpcyB1bml0cyBsZW5ndGguCisgICAgc2l6ZV90IGVu
ZF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29mZnNldHNbaSArIDFdIC0ga0hldmNMZW5ndGhGaWVsZFNp
emU7CisgICAgaWYgKGVuZF9vZmZzZXQgLSBzdGFydF9vZmZzZXQgPCBrSGV2Y05hbEhlYWRlclNp
emUpIHsgIC8vIFNhbWUgYXMgSC4yNjQuCisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiQVAg
cGFja2V0IHRvbyBzaG9ydCI7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgSDI2
NU5hbHVJbmZvIG5hbHU7CisgICAgbmFsdS50eXBlID0gKHBheWxvYWRfZGF0YVtzdGFydF9vZmZz
ZXRdICYga0hldmNUeXBlTWFzaykgPj4gMTsKKyAgICBuYWx1LnZwc19pZCA9IC0xOworICAgIG5h
bHUuc3BzX2lkID0gLTE7CisgICAgbmFsdS5wcHNfaWQgPSAtMTsKKyAgICBzdGFydF9vZmZzZXQg
Kz0ga0hldmNOYWxIZWFkZXJTaXplOworICAgIHN3aXRjaCAobmFsdS50eXBlKSB7CisgICAgICBj
YXNlIEgyNjU6Ok5hbHVUeXBlOjprVnBzOiB7CisgICAgICAgIGFic2w6Om9wdGlvbmFsPEgyNjVW
cHNQYXJzZXI6OlZwc1N0YXRlPiB2cHMgPSBIMjY1VnBzUGFyc2VyOjpQYXJzZVZwcygKKyAgICAg
ICAgICAgICZwYXlsb2FkX2RhdGFbc3RhcnRfb2Zmc2V0XSwgZW5kX29mZnNldCAtIHN0YXJ0X29m
ZnNldCk7CisgICAgICAgIGlmICh2cHMpIHsKKyAgICAgICAgICBuYWx1LnZwc19pZCA9IHZwcy0+
aWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAi
RmFpbGVkIHRvIHBhcnNlIFZQUyBpZCBmcm9tIFZQUyBzbGljZS4iOworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1Nwczogewor
ICAgICAgICAvLyBDaGVjayBpZiBWVUkgaXMgcHJlc2VudCBpbiBTUFMgYW5kIGlmIGl0IG5lZWRz
IHRvIGJlIG1vZGlmaWVkIHRvCisgICAgICAgIC8vIGF2b2lkIGV4Y2Vzc2l2ZSBkZWNvZGVyIGxh
dGVuY3kuCisKKyAgICAgICAgLy8gQ29weSBhbnkgcHJldmlvdXMgZGF0YSBmaXJzdCAobGlrZWx5
IGp1c3QgdGhlIGZpcnN0IGhlYWRlcikuCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1
ZmZlcj4gb3V0cHV0X2J1ZmZlcihuZXcgcnRjOjpCdWZmZXIoKSk7CisgICAgICAgIGlmIChzdGFy
dF9vZmZzZXQpCisgICAgICAgICAgb3V0cHV0X2J1ZmZlci0+QXBwZW5kRGF0YShwYXlsb2FkX2Rh
dGEsIHN0YXJ0X29mZnNldCk7CisKKyAgICAgICAgYWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNl
cjo6U3BzU3RhdGU+IHNwcyA9IEgyNjVTcHNQYXJzZXI6OlBhcnNlU3BzKAorICAgICAgICAgICAg
JnBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdLCBlbmRfb2Zmc2V0IC0gc3RhcnRfb2Zmc2V0KTsK
KworICAgICAgICBpZiAoc3BzKSB7CisgICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hl
YWRlci53aWR0aCA9IHNwcy0+d2lkdGg7CisgICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVv
X2hlYWRlci5oZWlnaHQgPSBzcHMtPmhlaWdodDsKKyAgICAgICAgICBuYWx1LnNwc19pZCA9IHNw
cy0+aWQ7CisgICAgICAgICAgbmFsdS52cHNfaWQgPSBzcHMtPnZwc19pZDsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAgICAgICAgICAgIDw8ICJG
YWlsZWQgdG8gcGFyc2UgU1BTIGFuZCBWUFMgaWQgZnJvbSBTUFMgc2xpY2UuIjsKKyAgICAgICAg
fQorICAgICAgICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmZyYW1lX3R5cGUgPSBWaWRl
b0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVLZXk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAg
ICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1BwczogeworICAgICAgICB1aW50MzJfdCBwcHNfaWQ7
CisgICAgICAgIHVpbnQzMl90IHNwc19pZDsKKyAgICAgICAgaWYgKEgyNjVQcHNQYXJzZXI6OlBh
cnNlUHBzSWRzKCZwYXlsb2FkX2RhdGFbc3RhcnRfb2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVuZF9vZmZzZXQgLSBzdGFydF9vZmZzZXQsICZwcHNfaWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3BzX2lkKSkgeworICAg
ICAgICAgIG5hbHUucHBzX2lkID0gcHBzX2lkOworICAgICAgICAgIG5hbHUuc3BzX2lkID0gc3Bz
X2lkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAg
ICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBwYXJzZSBQUFMgaWQgYW5kIFNQUyBpZCBmcm9tIFBQ
UyBzbGljZS4iOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2Fz
ZSBIMjY1OjpOYWx1VHlwZTo6a0lkcldSYWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6
a0lkck5McDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtDcmE6CisgICAgICAgIHBhcnNl
ZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlk
ZW9GcmFtZUtleTsKKyAgICAgICAgUlRDX0ZBTExUSFJPVUdIKCk7CisgICAgICBjYXNlIEgyNjU6
Ok5hbHVUeXBlOjprVHJhaWxOOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1RyYWlsUjog
eworICAgICAgICBhYnNsOjpvcHRpb25hbDx1aW50MzJfdD4gcHBzX2lkID0KKyAgICAgICAgICAg
IEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRGcm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAg
ICAgICAgICAgICAgICZwYXlsb2FkX2RhdGFbc3RhcnRfb2Zmc2V0XSwgZW5kX29mZnNldCAtIHN0
YXJ0X29mZnNldCwKKyAgICAgICAgICAgICAgICBuYWx1LnR5cGUpOworICAgICAgICBpZiAocHBz
X2lkKSB7CisgICAgICAgICAgbmFsdS5wcHNfaWQgPSAqcHBzX2lkOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIkZhaWxlZCB0byBwYXJzZSBQUFMg
aWQgZnJvbSBzbGljZSBvZiB0eXBlOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
PCBzdGF0aWNfY2FzdDxpbnQ+KG5hbHUudHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7
CisgICAgICB9CisgICAgICAvLyBTbGljZXMgYmVsb3cgZG9uJ3QgY29udGFpbiBTUFMgb3IgUFBT
IGlkcy4KKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtBdWQ6CisgICAgICBjYXNlIEgyNjU6
Ok5hbHVUeXBlOjprVHNhTjoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtUc2FSOgorICAg
ICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1N0c2FOOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a1N0c2FSOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1JhZGxOOgorICAgICAgY2Fz
ZSBIMjY1OjpOYWx1VHlwZTo6a1JhZGxSOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0Js
YVdMcDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtCbGFXUmFkbDoKKyAgICAgIGNhc2Ug
SDI2NTo6TmFsdVR5cGU6OmtQcmVmaXhTZWk6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjpr
U3VmZml4U2VpOgorICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtB
UDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtGVToKKyAgICAgICAgUlRDX0xPRyhMU19X
QVJOSU5HKSA8PCAiVW5leHBlY3RlZCBBUCBvciBGVSByZWNlaXZlZC4iOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCA9PSBr
TWF4TmFsdXNQZXJQYWNrZXQpIHsKKyAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAg
ICA8PCAiUmVjZWl2ZWQgcGFja2V0IGNvbnRhaW5pbmcgbW9yZSB0aGFuICIgPDwga01heE5hbHVz
UGVyUGFja2V0CisgICAgICAgICAgPDwgIiBOQUwgdW5pdHMuIFdpbGwgbm90IGtlZXAgdHJhY2sg
c3BzIGFuZCBwcHMgaWRzIGZvciBhbGwgb2YgdGhlbS4iOworICAgIH0gZWxzZSB7CisgICAgICBo
MjY1X2hlYWRlci5uYWx1c1toMjY1X2hlYWRlci5uYWx1c19sZW5ndGgrK10gPSBuYWx1OworICAg
IH0KKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBWaWRlb1J0cERlcGFja2V0aXplckgy
NjU6OlBhcnNlRnVOYWx1KAorICAgIFBhcnNlZFJ0cFBheWxvYWQqIHBhcnNlZF9wYXlsb2FkLAor
ICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSkgeworICBpZiAobGVuZ3RoXyA8IGtIZXZj
RnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplKSB7CisgICAgUlRDX0xPRyhMU19FUlJP
UikgPDwgIkZVIE5BTCB1bml0cyB0cnVuY2F0ZWQuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0K
KyAgdWludDhfdCBmID0gcGF5bG9hZF9kYXRhWzBdICYga0hldmNGQml0OworICB1aW50OF90IGxh
eWVyX2lkX2ggPSBwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y0xheWVySURITWFzazsKKyAgdWludDhf
dCBsYXllcl9pZF9sX3Vuc2hpZnRlZCA9IHBheWxvYWRfZGF0YVsxXSAmIGtIZXZjTGF5ZXJJRExN
YXNrOworICB1aW50OF90IHRpZCA9IHBheWxvYWRfZGF0YVsxXSAmIGtIZXZjVElETWFzazsKKwor
ICB1aW50OF90IG9yaWdpbmFsX25hbF90eXBlID0gcGF5bG9hZF9kYXRhWzJdICYga0hldmNUeXBl
TWFza0luRnVIZWFkZXI7CisgIGJvb2wgZmlyc3RfZnJhZ21lbnQgPSBwYXlsb2FkX2RhdGFbMl0g
JiBrSGV2Y1NCaXQ7CisgIEgyNjVOYWx1SW5mbyBuYWx1OworICBuYWx1LnR5cGUgPSBvcmlnaW5h
bF9uYWxfdHlwZTsKKyAgbmFsdS52cHNfaWQgPSAtMTsKKyAgbmFsdS5zcHNfaWQgPSAtMTsKKyAg
bmFsdS5wcHNfaWQgPSAtMTsKKyAgaWYgKGZpcnN0X2ZyYWdtZW50KSB7CisgICAgb2Zmc2V0XyA9
IDE7CisgICAgbGVuZ3RoXyAtPSAxOworICAgIGFic2w6Om9wdGlvbmFsPHVpbnQzMl90PiBwcHNf
aWQgPQorICAgICAgICBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwc0lkRnJvbVNsaWNlU2VnbWVudExh
eWVyUmJzcCgKKyAgICAgICAgICAgIHBheWxvYWRfZGF0YSArIGtIZXZjTmFsSGVhZGVyU2l6ZSAr
IGtIZXZjRnVIZWFkZXJTaXplLAorICAgICAgICAgICAgbGVuZ3RoXyAtIGtIZXZjRnVIZWFkZXJT
aXplLCBuYWx1LnR5cGUpOworICAgIGlmIChwcHNfaWQpIHsKKyAgICAgIG5hbHUucHBzX2lkID0g
KnBwc19pZDsKKyAgICB9IGVsc2UgeworICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAg
ICAgIDw8ICJGYWlsZWQgdG8gcGFyc2UgUFBTIGZyb20gZmlyc3QgZnJhZ21lbnQgb2YgRlUgTkFM
ICIKKyAgICAgICAgICAgICAidW5pdCB3aXRoIG9yaWdpbmFsIHR5cGU6ICIKKyAgICAgICAgICA8
PCBzdGF0aWNfY2FzdDxpbnQ+KG5hbHUudHlwZSk7CisgICAgfQorICAgIHVpbnQ4X3QqIHBheWxv
YWQgPSBjb25zdF9jYXN0PHVpbnQ4X3QqPihwYXlsb2FkX2RhdGEgKyBvZmZzZXRfKTsKKyAgICBw
YXlsb2FkWzBdID0gZiB8IG9yaWdpbmFsX25hbF90eXBlIDw8IDEgfCBsYXllcl9pZF9oOworICAg
IHBheWxvYWRbMV0gPSBsYXllcl9pZF9sX3Vuc2hpZnRlZCB8IHRpZDsKKyAgfSBlbHNlIHsKKyAg
ICBvZmZzZXRfID0ga0hldmNOYWxIZWFkZXJTaXplICsga0hldmNGdUhlYWRlclNpemU7CisgICAg
bGVuZ3RoXyAtPSAoa0hldmNOYWxIZWFkZXJTaXplICsga0hldmNGdUhlYWRlclNpemUpOworICB9
CisKKyAgaWYgKG9yaWdpbmFsX25hbF90eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprSWRyV1JhZGwK
KyAgICAgIHx8IG9yaWdpbmFsX25hbF90eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprSWRyTkxwCisg
ICAgICB8fCBvcmlnaW5hbF9uYWxfdHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0NyYSkgeworICAg
IHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBl
OjprVmlkZW9GcmFtZUtleTsKKyAgfSBlbHNlIHsKKyAgICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9f
aGVhZGVyLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVEZWx0YTsKKyAg
fQorICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLndpZHRoID0gMDsKKyAgcGFyc2VkX3Bh
eWxvYWQtPnZpZGVvX2hlYWRlci5oZWlnaHQgPSAwOworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9f
aGVhZGVyLmNvZGVjID0ga1ZpZGVvQ29kZWNIMjY1OworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9f
aGVhZGVyLmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSA9IGZpcnN0X2ZyYWdtZW50OworICBhdXRv
JiBoMjY1X2hlYWRlciA9IGFic2w6OmdldDxSVFBWaWRlb0hlYWRlckgyNjU+KAorICAgICAgcGFy
c2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisgIGgyNjVfaGVh
ZGVyLnBhY2tldGl6YXRpb25fdHlwZSA9IGtIMjY1RlU7CisgIGgyNjVfaGVhZGVyLm5hbHVfdHlw
ZSA9IG9yaWdpbmFsX25hbF90eXBlOworICBpZiAoZmlyc3RfZnJhZ21lbnQpIHsKKyAgICBoMjY1
X2hlYWRlci5uYWx1c1toMjY1X2hlYWRlci5uYWx1c19sZW5ndGhdID0gbmFsdTsKKyAgICBoMjY1
X2hlYWRlci5uYWx1c19sZW5ndGggPSAxOworICB9CisgIHJldHVybiB0cnVlOworfQorCit9ICAv
LyBuYW1lc3BhY2Ugd2VicnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRw
X3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfaDI2NS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0YjQzMTNiMmJkNjli
NjQyYmFiNWM0ZTI5MTg4ZTE2MWMyYzBiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9y
dHBfZm9ybWF0X2gyNjUuaApAQCAtMCwwICsxLDEyOSBAQAorLyoKKyAqICBJbnRlbCBMaWNlbnNl
CisgKi8KKworI2lmbmRlZiBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfUlRQX0ZPUk1B
VF9IMjY1X0hfCisjZGVmaW5lIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9SVFBfRk9S
TUFUX0gyNjVfSF8KKworI2luY2x1ZGUgPHF1ZXVlPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNs
dWRlICJhcGkvYXJyYXlfdmlldy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVf
Y29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zv
cm1hdC5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9wYWNrZXRfdG9f
c2VuZC5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuaCIK
KyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVy
LmgiCisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9o
MjY1X2dsb2JhbHMuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRlICJy
dGNfYmFzZS9jb25zdHJ1Y3Rvcl9tYWdpYy5oIgorCituYW1lc3BhY2Ugd2VicnRjIHsKKworY2xh
c3MgUnRwUGFja2V0aXplckgyNjUgOiBwdWJsaWMgUnRwUGFja2V0aXplciB7CisgcHVibGljOgor
ICAvLyBJbml0aWFsaXplIHdpdGggcGF5bG9hZCBmcm9tIGVuY29kZXIuCisgIC8vIFRoZSBwYXls
b2FkX2RhdGEgbXVzdCBiZSBleGFjdGx5IG9uZSBlbmNvZGVkIEguMjY1IGZyYW1lLgorICBSdHBQ
YWNrZXRpemVySDI2NShydGM6OkFycmF5Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2FkLAorICAg
ICAgICAgICAgICAgICAgICBQYXlsb2FkU2l6ZUxpbWl0cyBsaW1pdHMsCisgICAgICAgICAgICAg
ICAgICAgIEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUsCisgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFJUUEZyYWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24p
OworCisgICB+UnRwUGFja2V0aXplckgyNjUoKSBvdmVycmlkZTsKKworICBzaXplX3QgTnVtUGFj
a2V0cygpIGNvbnN0IG92ZXJyaWRlOworCisgIC8vIEdldCB0aGUgbmV4dCBwYXlsb2FkIHdpdGgg
SC4yNjUgcGF5bG9hZCBoZWFkZXIuCisgIC8vIGJ1ZmZlciBpcyBhIHBvaW50ZXIgdG8gd2hlcmUg
dGhlIG91dHB1dCB3aWxsIGJlIHdyaXR0ZW4uCisgIC8vIGJ5dGVzX3RvX3NlbmQgaXMgYW4gb3V0
cHV0IHZhcmlhYmxlIHRoYXQgd2lsbCBjb250YWluIG51bWJlciBvZiBieXRlcworICAvLyB3cml0
dGVuIHRvIGJ1ZmZlci4gVGhlIHBhcmFtZXRlciBsYXN0X3BhY2tldCBpcyB0cnVlIGZvciB0aGUg
bGFzdCBwYWNrZXQgb2YKKyAgLy8gdGhlIGZyYW1lLCBmYWxzZSBvdGhlcndpc2UgKGkuZS4sIGNh
bGwgdGhlIGZ1bmN0aW9uIGFnYWluIHRvIGdldCB0aGUKKyAgLy8gbmV4dCBwYWNrZXQpLgorICAv
LyBSZXR1cm5zIHRydWUgb24gc3VjY2VzcyBvciBmYWxzZSBpZiB0aGVyZSB3YXMgbm8gcGF5bG9h
ZCB0byBwYWNrZXRpemUuCisgIGJvb2wgTmV4dFBhY2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9w
YWNrZXQpIG92ZXJyaWRlOworCisgcHJpdmF0ZToKKyAgc3RydWN0IFBhY2tldCB7CisgICAgUGFj
a2V0KHNpemVfdCBvZmZzZXQsCisgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICBi
b29sIGZpcnN0X2ZyYWdtZW50LAorICAgICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAg
ICAgICAgIGJvb2wgYWdncmVnYXRlZCwKKyAgICAgICAgICAgdWludDE2X3QgaGVhZGVyKQorICAg
ICAgICA6IG9mZnNldChvZmZzZXQpLAorICAgICAgICAgIHNpemUoc2l6ZSksCisgICAgICAgICAg
Zmlyc3RfZnJhZ21lbnQoZmlyc3RfZnJhZ21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQo
bGFzdF9mcmFnbWVudCksCisgICAgICAgICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAg
ICAgICBoZWFkZXIoaGVhZGVyKSB7fQorCisgICAgc2l6ZV90IG9mZnNldDsKKyAgICBzaXplX3Qg
c2l6ZTsKKyAgICBib29sIGZpcnN0X2ZyYWdtZW50OworICAgIGJvb2wgbGFzdF9mcmFnbWVudDsK
KyAgICBib29sIGFnZ3JlZ2F0ZWQ7CisgICAgdWludDE2X3QgaGVhZGVyOyAgLy8gRGlmZmVyZW50
IGZyb20gSDI2NAorICB9OworICBzdHJ1Y3QgRnJhZ21lbnQgeworICAgIEZyYWdtZW50KGNvbnN0
IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IGxlbmd0aCk7CisgICAgZXhwbGljaXQgRnJhZ21lbnQo
Y29uc3QgRnJhZ21lbnQmIGZyYWdtZW50KTsKKyAgICBjb25zdCB1aW50OF90KiBidWZmZXIgPSBu
dWxscHRyOworICAgIHNpemVfdCBsZW5ndGggPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6
OkJ1ZmZlcj4gdG1wX2J1ZmZlcjsKKyAgfTsKKyAgc3RydWN0IFBhY2tldFVuaXQgeworICAgIFBh
Y2tldFVuaXQoY29uc3QgRnJhZ21lbnQmIHNvdXJjZV9mcmFnbWVudCwKKyAgICAgICAgICAgICAg
IGJvb2wgZmlyc3RfZnJhZ21lbnQsCisgICAgICAgICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQs
CisgICAgICAgICAgICAgICBib29sIGFnZ3JlZ2F0ZWQsCisgICAgICAgICAgICAgICB1aW50MTZf
dCBoZWFkZXIpCisgICAgICAgIDogc291cmNlX2ZyYWdtZW50KHNvdXJjZV9mcmFnbWVudCksCisg
ICAgICAgICAgZmlyc3RfZnJhZ21lbnQoZmlyc3RfZnJhZ21lbnQpLAorICAgICAgICAgIGxhc3Rf
ZnJhZ21lbnQobGFzdF9mcmFnbWVudCksCisgICAgICAgICAgYWdncmVnYXRlZChhZ2dyZWdhdGVk
KSwKKyAgICAgICAgICBoZWFkZXIoaGVhZGVyKSB7fQorCisgICAgY29uc3QgRnJhZ21lbnQgc291
cmNlX2ZyYWdtZW50OworICAgIGJvb2wgZmlyc3RfZnJhZ21lbnQ7CisgICAgYm9vbCBsYXN0X2Zy
YWdtZW50OworICAgIGJvb2wgYWdncmVnYXRlZDsKKyAgICB1aW50MTZfdCBoZWFkZXI7CisgIH07
CisgIHR5cGVkZWYgc3RkOjpxdWV1ZTxQYWNrZXQ+IFBhY2tldFF1ZXVlOworICBzdGQ6OmRlcXVl
PEZyYWdtZW50PiBpbnB1dF9mcmFnbWVudHNfOworICBzdGQ6OnF1ZXVlPFBhY2tldFVuaXQ+IHBh
Y2tldHNfOworCisgIGJvb2wgR2VuZXJhdGVQYWNrZXRzKEgyNjVQYWNrZXRpemF0aW9uTW9kZSBw
YWNrZXRpemF0aW9uX21vZGUpOworICBib29sIFBhY2tldGl6ZUZ1KHNpemVfdCBmcmFnbWVudF9p
bmRleCk7CisgIGludCBQYWNrZXRpemVBcChzaXplX3QgZnJhZ21lbnRfaW5kZXgpOworICBib29s
IFBhY2tldGl6ZVNpbmdsZU5hbHUoc2l6ZV90IGZyYWdtZW50X2luZGV4KTsKKworICB2b2lkIE5l
eHRBZ2dyZWdhdGVQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0LCBib29sIGxhc3Qp
OworICB2b2lkIE5leHRGcmFnbWVudFBhY2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQp
OworCisgIGNvbnN0IFBheWxvYWRTaXplTGltaXRzIGxpbWl0c187CisgIHNpemVfdCBudW1fcGFj
a2V0c19sZWZ0XzsKKyAgUlRQRnJhZ21lbnRhdGlvbkhlYWRlciBmcmFnbWVudGF0aW9uXzsKKwor
ICBSVENfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKFJ0cFBhY2tldGl6ZXJIMjY1KTsKK307CisK
Ky8vIERlcGFja2V0aXplciBmb3IgSC4yNjUuCitjbGFzcyBWaWRlb1J0cERlcGFja2V0aXplckgy
NjUgOiBwdWJsaWMgVmlkZW9SdHBEZXBhY2tldGl6ZXIgeworIHB1YmxpYzoKKyAgdmlydHVhbCB+
VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1KCkge30KKworICBhYnNsOjpvcHRpb25hbDxQYXJzZWRS
dHBQYXlsb2FkPiBQYXJzZSgKKyAgICAgICAgICAgICBydGM6OkNvcHlPbldyaXRlQnVmZmVyIHJ0
cF9wYXlsb2FkKSBvdmVycmlkZTsKKworIHByaXZhdGU6CisgIGJvb2wgUGFyc2VGdU5hbHUoUGFy
c2VkUnRwUGF5bG9hZCogcGFyc2VkX3BheWxvYWQsCisgICAgICAgICAgICAgICAgICAgY29uc3Qg
dWludDhfdCogcGF5bG9hZF9kYXRhKTsKKyAgYm9vbCBQcm9jZXNzQXBPclNpbmdsZU5hbHUoUGFy
c2VkUnRwUGF5bG9hZCogcGFyc2VkX3BheWxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSk7CisKKyAgc2l6ZV90IG9mZnNldF87Cisg
IHNpemVfdCBsZW5ndGhfOworICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpCdWZmZXI+IG1vZGlmaWVk
X2J1ZmZlcl87Cit9OworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworI2VuZGlmICAvLyBXRUJSVENf
TU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfUlRQX0ZPUk1BVF9IMjY1X0hfCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVvLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3NlbmRlcl92aWRlby5j
YwppbmRleCBlYzVjZjhmZDEzMzFkZTQ1ZTNlOGUwODljNTgxNDM1NDNjMzkwMDZiLi5lMzNjNTRi
NmVkYTM3NDBhZWQxYmNkNjE3ZDVhZTQ3MzI1YzZkYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9y
dHBfc2VuZGVyX3ZpZGVvLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9zZW5kZXJfdmlkZW8uY2MKQEAg
LTc5OSw2ICs3OTksOSBAQCB1aW50OF90IFJUUFNlbmRlclZpZGVvOjpHZXRUZW1wb3JhbElkKGNv
bnN0IFJUUFZpZGVvSGVhZGVyJiBoZWFkZXIpIHsKICAgICAgIHJldHVybiB2cDkudGVtcG9yYWxf
aWR4OwogICAgIH0KICAgICB1aW50OF90IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJI
MjY0JikgeyByZXR1cm4ga05vVGVtcG9yYWxJZHg7IH0KKyNpZm5kZWYgRElTQUJMRV9IMjY1Cisg
ICAgdWludDhfdCBvcGVyYXRvcigpKGNvbnN0IFJUUFZpZGVvSGVhZGVySDI2NSYpIHsgcmV0dXJu
IGtOb1RlbXBvcmFsSWR4OyB9CisjZW5kaWYKICAgICB1aW50OF90IG9wZXJhdG9yKCkoY29uc3Qg
UlRQVmlkZW9IZWFkZXJMZWdhY3lHZW5lcmljJikgewogICAgICAgcmV0dXJuIGtOb1RlbXBvcmFs
SWR4OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF92aWRlb19oZWFkZXIuaAppbmRleCA3MTRkMWViMDhjY2I0NGRlZWQyNzc3MGFl
MTdiMDQ2NWNjN2M1OTgwLi41ODUyZTVlMWFkNzQyN2IxZTI5YWYzMmFiYWJhMGIwOGFhYTJmYmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmgKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
cnRwX3ZpZGVvX2hlYWRlci5oCkBAIC0yNSw2ICsyNSw5IEBACiAjaW5jbHVkZSAiYXBpL3ZpZGVv
L3ZpZGVvX3RpbWluZy5oIgogI2luY2x1ZGUgImNvbW1vbl90eXBlcy5oIiAgLy8gTk9MSU5UKGJ1
aWxkL2luY2x1ZGUpCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQv
aW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAi
bW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIK
KyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVk
ZS92cDhfZ2xvYmFscy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92
cDkvaW5jbHVkZS92cDlfZ2xvYmFscy5oIgogCkBAIC0zNiwxMSArMzksMjAgQEAgc3RydWN0IFJU
UFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJpYyB7CiAgIHVpbnQxNl90IHBpY3R1cmVfaWQ7CiB9Owog
CisjaWZuZGVmIERJU0FCTEVfSDI2NQogdXNpbmcgUlRQVmlkZW9UeXBlSGVhZGVyID0gYWJzbDo6
dmFyaWFudDxhYnNsOjptb25vc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJUUFZpZGVvSGVhZGVyVlA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlclZQOSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXJIMjY0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlckgyNjUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJpYz47
CisjZWxzZQordXNpbmcgUlRQVmlkZW9UeXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjpt
b25vc3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZp
ZGVvSGVhZGVyVlA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
VFBWaWRlb0hlYWRlclZQOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUlRQVmlkZW9IZWFkZXJIMjY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSVFBWaWRlb0hlYWRlckxlZ2FjeUdlbmVyaWM+OworI2VuZGlmCiAKIHN0cnVjdCBS
VFBWaWRlb0hlYWRlciB7CiAgIHN0cnVjdCBHZW5lcmljRGVzY3JpcHRvckluZm8gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2RpbmcvQlVJTEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbgppbmRleCBiMmQxMGM5YWI2OGMy
YmM5ZDcyOWRjZDdkZmVkYWRiYjQ5ZDFmNjMzLi40Yzc4YWFhY2M3NzE1OTY4N2I0YzZiZTFhMzc3
NDA4OTlhMWE4YjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9CVUlM
RC5nbgpAQCAtMTQsNiArMTQsMTQgQEAgcnRjX2xpYnJhcnkoImVuY29kZWRfZnJhbWUiKSB7CiAg
ICAgImVuY29kZWRfZnJhbWUuY2MiLAogICAgICJlbmNvZGVkX2ZyYW1lLmgiLAogICBdCisKKyAg
aWYgKHJ0Y191c2VfaDI2NSkgeworICAgIHNvdXJjZXMgKz0gWworICAgICAgImgyNjVfdnBzX3Nw
c19wcHNfdHJhY2tlci5jYyIsCisgICAgICAiaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgiLAor
ICAgIF0KKyAgfQorCiAgIGRlcHMgPSBbCiAgICAgIjpjb2RlY19nbG9iYWxzX2hlYWRlcnMiLAog
ICAgICI6dmlkZW9fY29kZWNfaW50ZXJmYWNlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9o
MjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gy
NjVfZ2xvYmFscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMGVlZjIzNmNmZTgyZDUyZTgzZGRlNWQyMDg0OWI4
Y2NkOGJmOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gy
NjVfZ2xvYmFscy5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4
IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
ICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNl
bnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9v
dCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJv
cGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMu
ICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0
aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisv
LyBUaGlzIGZpbGUgY29udGFpbnMgY29kZWMgZGVwZW5kZW50IGRlZmluaXRpb25zIHRoYXQgYXJl
IG5lZWRlZCBpbgorLy8gb3JkZXIgdG8gY29tcGlsZSB0aGUgV2ViUlRDIGNvZGViYXNlLCBldmVu
IGlmIHRoaXMgY29kZWMgaXMgbm90IHVzZWQuCisKKyNpZm5kZWYgTU9EVUxFU19WSURFT19DT0RJ
TkdfQ09ERUNTX0gyNjVfSU5DTFVERV9IMjY1X0dMT0JBTFNfSF8KKyNkZWZpbmUgTU9EVUxFU19W
SURFT19DT0RJTkdfQ09ERUNTX0gyNjVfSU5DTFVERV9IMjY1X0dMT0JBTFNfSF8KKworI2lmbmRl
ZiBESVNBQkxFX0gyNjUKKworI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9o
MjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBU
aGUgcGFja2V0aXphdGlvbiB0eXBlcyB0aGF0IHdlIHN1cHBvcnQ6IHNpbmdsZSwgYWdncmVnYXRl
ZCwgYW5kIGZyYWdtZW50ZWQuCitlbnVtIEgyNjVQYWNrZXRpemF0aW9uVHlwZXMgeworICBrSDI2
NVNpbmdsZU5hbHUsICAvLyBUaGlzIHBhY2tldCBjb250YWlucyBhIHNpbmdsZSBOQUwgdW5pdC4K
KyAga0gyNjVBUCwgICAgICAgICAgLy8gVGhpcyBwYWNrZXQgY29udGFpbnMgYWdncmVnYXRpb24g
UGFja2V0LgorICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIHBhY2tldCBoYXMgYW4gYXNz
b2NpYXRlZCBOQUwgdW5pdCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAvLyBpdCdsbCBiZSBm
b3IgdGhlIGZpcnN0IHN1Y2ggYWdncmVnYXRlZCBwYWNrZXQuCisgIGtIMjY1RlUsICAgICAgICAg
IC8vIFRoaXMgcGFja2V0IGNvbnRhaW5zIGEgRlUgKGZyYWdtZW50YXRpb24KKyAgICAgICAgICAg
ICAgICAgICAgLy8gdW5pdCkgcGFja2V0LCBtZWFuaW5nIGl0IGlzIGEgcGFydCBvZiBhIGZyYW1l
CisgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHRvbyBsYXJnZSB0byBmaXQgaW50byBh
IHNpbmdsZSBwYWNrZXQuCit9OworCitzdHJ1Y3QgSDI2NU5hbHVJbmZvIHsKKyAgdWludDhfdCB0
eXBlOworICBpbnQgdnBzX2lkOworICBpbnQgc3BzX2lkOworICBpbnQgcHBzX2lkOworfTsKKwor
ZW51bSBjbGFzcyBIMjY1UGFja2V0aXphdGlvbk1vZGUgeworICBOb25JbnRlcmxlYXZlZCA9IDAs
ICAvLyBNb2RlIDEgLSBTVEFQLUEsIEZVLUEgaXMgYWxsb3dlZAorICBTaW5nbGVOYWxVbml0ICAg
ICAgICAvLyBNb2RlIDAgLSBvbmx5IHNpbmdsZSBOQUxVIGFsbG93ZWQKK307CisKK3N0cnVjdCBS
VFBWaWRlb0hlYWRlckgyNjUgeworICAvLyBUaGUgTkFMIHVuaXQgdHlwZS4gSWYgdGhpcyBpcyBh
IGhlYWRlciBmb3IgYSBmcmFnbWVudGVkIHBhY2tldCwgaXQncyB0aGUKKyAgLy8gTkFMIHVuaXQg
dHlwZSBvZiB0aGUgb3JpZ2luYWwgZGF0YS4gSWYgdGhpcyBpcyB0aGUgaGVhZGVyIGZvciBhbiBh
Z2dyZWdhdGVkCisgIC8vIHBhY2tldCwgaXQncyB0aGUgTkFMIHVuaXQgdHlwZSBvZiB0aGUgZmly
c3QgTkFMIHVuaXQgaW4gdGhlIHBhY2tldC4KKyAgdWludDhfdCBuYWx1X3R5cGU7CisgIEgyNjVQ
YWNrZXRpemF0aW9uVHlwZXMgcGFja2V0aXphdGlvbl90eXBlOworICBIMjY1TmFsdUluZm8gbmFs
dXNba01heE5hbHVzUGVyUGFja2V0XTsKKyAgc2l6ZV90IG5hbHVzX2xlbmd0aDsKKyAgLy8gVGhl
IHBhY2tldGl6YXRpb24gdHlwZSBvZiB0aGlzIGJ1ZmZlciAtIHNpbmdsZSwgYWdncmVnYXRlZCBv
ciBmcmFnbWVudGVkLgorICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2Rl
OworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworCisjZW5kaWYKKworI2VuZGlmICAvLyBN
T0RVTEVTX1ZJREVPX0NPRElOR19DT0RFQ1NfSDI2NV9JTkNMVURFX0gyNjVfR0xPQkFMU19IXwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9mcmFtZS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2VuY29kZWRfZnJhbWUu
Y2MKaW5kZXggMWU5ZTM3NGM2NDRlODM1MTM3NjBlNmRiYjFhNjVmMzBlNjZkNzJjYy4uNTQ5ODky
NjA4MjU2MTdmOGFlMjc0YWI1ZGRjZDRjOGRiNTE2ZTk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5j
b2RlZF9mcmFtZS5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9lbmNvZGVkX2ZyYW1lLmNjCkBAIC0xNTEsNiArMTUx
LDEyIEBAIHZvaWQgVkNNRW5jb2RlZEZyYW1lOjpDb3B5Q29kZWNTcGVjaWZpYyhjb25zdCBSVFBW
aWRlb0hlYWRlciogaGVhZGVyKSB7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgICB9
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjU6IHsKKyAg
ICAgICAgX2NvZGVjU3BlY2lmaWNJbmZvLmNvZGVjVHlwZSA9IGtWaWRlb0NvZGVjSDI2NTsKKyAg
ICAgICAgYnJlYWs7CisgICAgICB9CisjZW5kaWYKICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAg
X2NvZGVjU3BlY2lmaWNJbmZvLmNvZGVjVHlwZSA9IGtWaWRlb0NvZGVjR2VuZXJpYzsKICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFlNjdkODlh
YjkzZjVjMmY5YzBiYzhmZDMxY2ZiYmIxMTgwZmM3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5n
L2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYwpAQCAtMCwwICsxLDMxMiBAQAorLyoKKyAqICBD
b3B5cmlnaHQgKGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFs
IGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4g
dGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQor
ICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJj
ZSB0cmVlLgorICovCisKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19z
cHNfcHBzX3RyYWNrZXIuaCIKKworI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1dGlsaXR5
PgorCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjQvaDI2NF9jb21tb24uaCIKKyNpbmNsdWRl
ICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRl
by9oMjY1L2gyNjVfcHBzX3BhcnNlci5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gy
NjVfc3BzX3BhcnNlci5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3Bh
cnNlci5oIgorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1
ZGUvaDI2NF9nbG9iYWxzLmgiCisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNz
L2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9mcmFtZV9vYmplY3QuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNr
ZXRfYnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvY2hlY2tzLmgiCisjaW5jbHVkZSAicnRj
X2Jhc2UvbG9nZ2luZy5oIgorCituYW1lc3BhY2Ugd2VicnRjIHsKK25hbWVzcGFjZSB2aWRlb19j
b2RpbmcgeworCituYW1lc3BhY2UgeworY29uc3QgdWludDhfdCBzdGFydF9jb2RlX2gyNjVbXSA9
IHswLCAwLCAwLCAxfTsKK30gIC8vIG5hbWVzcGFjZQorCitIMjY1VnBzU3BzUHBzVHJhY2tlcjo6
Rml4ZWRCaXRzdHJlYW0gSDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OkNvcHlBbmRGaXhCaXRzdHJlYW0o
cnRjOjpBcnJheVZpZXc8Y29uc3QgdWludDhfdD4gYml0c3RyZWFtLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlciogdmlkZW9faGVhZGVyX3BvaW50ZXIp
IHsKKyAgY29uc3QgdWludDhfdCogZGF0YSA9IGJpdHN0cmVhbS5kYXRhKCk7CisgIGNvbnN0IHNp
emVfdCBkYXRhX3NpemUgPSBiaXRzdHJlYW0uc2l6ZSgpOworICBSVFBWaWRlb0hlYWRlciYgdmlk
ZW9faGVhZGVyID0gKnZpZGVvX2hlYWRlcl9wb2ludGVyOworICBSVENfRENIRUNLKHZpZGVvX2hl
YWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQpOworCisgIGF1dG8mIGgyNjVfaGVhZGVyID0K
KyAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlckgyNjU+KHZpZGVvX2hlYWRlci52aWRlb190
eXBlX2hlYWRlcik7CisKKyAgYm9vbCBhcHBlbmRfdnBzX3Nwc19wcHMgPSBmYWxzZTsKKyAgYXV0
byB2cHMgPSB2cHNfZGF0YV8uZW5kKCk7CisgIGF1dG8gc3BzID0gc3BzX2RhdGFfLmVuZCgpOwor
ICBhdXRvIHBwcyA9IHBwc19kYXRhXy5lbmQoKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aDsgKytpKSB7CisgICAgY29uc3QgSDI2NU5hbHVJbmZv
JiBuYWx1ID0gaDI2NV9oZWFkZXIubmFsdXNbaV07CisgICAgc3dpdGNoIChuYWx1LnR5cGUpIHsK
KyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtWcHM6IHsKKyAgICAgICAgdnBzX2RhdGFfW25h
bHUudnBzX2lkXS5zaXplID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNl
IEgyNjU6Ok5hbHVUeXBlOjprU3BzOiB7CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0u
dnBzX2lkID0gbmFsdS52cHNfaWQ7CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0ud2lk
dGggPSB2aWRlb19oZWFkZXIud2lkdGg7CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0u
aGVpZ2h0ID0gdmlkZW9faGVhZGVyLmhlaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgICB9Cisg
ICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUHBzOiB7CisgICAgICAgIHBwc19kYXRhX1tuYWx1
LnBwc19pZF0uc3BzX2lkID0gbmFsdS5zcHNfaWQ7CisgICAgICAgIGJyZWFrOworICAgICAgfQor
ICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkcldSYWRsOgorICAgICAgY2FzZSBIMjY1OjpO
YWx1VHlwZTo6a0lkck5McDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtDcmE6IHsKKyAg
ICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgZmlyc3QgcGFja2V0IG9mIGFuIElEUiwgbWFrZSBzdXJl
IHdlIGhhdmUgdGhlIHJlcXVpcmVkCisgICAgICAgIC8vIFNQUy9QUFMgYW5kIGFsc28gY2FsY3Vs
YXRlIGhvdyBtdWNoIGV4dHJhIHNwYWNlIHdlIG5lZWQgaW4gdGhlIGJ1ZmZlcgorICAgICAgICAv
LyB0byBwcmVwZW5kIHRoZSBTUFMvUFBTIHRvIHRoZSBiaXRzdHJlYW0gd2l0aCBzdGFydCBjb2Rl
cy4KKyAgICAgICAgaWYgKHZpZGVvX2hlYWRlci5pc19maXJzdF9wYWNrZXRfaW5fZnJhbWUpIHsK
KyAgICAgICAgICBpZiAobmFsdS5wcHNfaWQgPT0gLTEpIHsKKyAgICAgICAgICAgIFJUQ19MT0co
TFNfV0FSTklORykgPDwgIk5vIFBQUyBpZCBpbiBJRFIgbmFsdS4iOworICAgICAgICAgICAgcmV0
dXJuIHtrUmVxdWVzdEtleWZyYW1lfTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBwcHMgPSBw
cHNfZGF0YV8uZmluZChuYWx1LnBwc19pZCk7CisgICAgICAgICAgaWYgKHBwcyA9PSBwcHNfZGF0
YV8uZW5kKCkpIHsKKyAgICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAg
ICAgICA8PCAiTm8gUFBTIHdpdGggaWQgIiA8PCBuYWx1LnBwc19pZCA8PCAiIHJlY2VpdmVkIjsK
KyAgICAgICAgICAgIHJldHVybiB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisg
ICAgICAgICAgc3BzID0gc3BzX2RhdGFfLmZpbmQocHBzLT5zZWNvbmQuc3BzX2lkKTsKKyAgICAg
ICAgICBpZiAoc3BzID09IHNwc19kYXRhXy5lbmQoKSkgeworICAgICAgICAgICAgUlRDX0xPRyhM
U19XQVJOSU5HKQorICAgICAgICAgICAgICAgIDw8ICJObyBTUFMgd2l0aCBpZCA8PCAiIDw8IHBw
cy0+c2Vjb25kLnNwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1Jl
cXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisgICAgICAgICAgdnBzID0gdnBzX2RhdGFf
LmZpbmQoc3BzLT5zZWNvbmQudnBzX2lkKTsKKyAgICAgICAgICBpZiAodnBzID09IHZwc19kYXRh
Xy5lbmQoKSkgeworICAgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgICAg
ICAgIDw8ICJObyBWUFMgd2l0aCBpZCAiIDw8IHNwcy0+c2Vjb25kLnZwc19pZCA8PCAiIHJlY2Vp
dmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAgICAg
fQorCisgICAgICAgICAgLy8gU2luY2UgdGhlIGZpcnN0IHBhY2tldCBvZiBldmVyeSBrZXlmcmFt
ZSBzaG91bGQgaGF2ZSBpdHMgd2lkdGggYW5kCisgICAgICAgICAgLy8gaGVpZ2h0IHNldCB3ZSBz
ZXQgaXQgaGVyZSBpbiB0aGUgY2FzZSBvZiBpdCBiZWluZyBzdXBwbGllZCBvdXQgb2YKKyAgICAg
ICAgICAvLyBiYW5kLgorICAgICAgICAgIHZpZGVvX2hlYWRlci53aWR0aCA9IHNwcy0+c2Vjb25k
LndpZHRoOworICAgICAgICAgIHZpZGVvX2hlYWRlci5oZWlnaHQgPSBzcHMtPnNlY29uZC5oZWln
aHQ7CisKKyAgICAgICAgICAvLyBJZiB0aGUgVlBTL1NQUy9QUFMgd2FzIHN1cHBsaWVkIG91dCBv
ZiBiYW5kIHRoZW4gd2Ugd2lsbCBoYXZlIHNhdmVkCisgICAgICAgICAgLy8gdGhlIGFjdHVhbCBi
aXRzdHJlYW0gaW4gfGRhdGF8LgorICAgICAgICAgIC8vIFRoaXMgYnJhbmNoIGlzIG5vdCB2ZXJp
ZmllZC4KKyAgICAgICAgICBpZiAodnBzLT5zZWNvbmQuZGF0YSAmJiBzcHMtPnNlY29uZC5kYXRh
ICYmIHBwcy0+c2Vjb25kLmRhdGEpIHsKKyAgICAgICAgICAgIFJUQ19EQ0hFQ0tfR1QodnBzLT5z
ZWNvbmQuc2l6ZSwgMCk7CisgICAgICAgICAgICBSVENfRENIRUNLX0dUKHNwcy0+c2Vjb25kLnNp
emUsIDApOworICAgICAgICAgICAgUlRDX0RDSEVDS19HVChwcHMtPnNlY29uZC5zaXplLCAwKTsK
KyAgICAgICAgICAgIGFwcGVuZF92cHNfc3BzX3BwcyA9IHRydWU7CisgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CisgICAgfQorICB9CisKKyAgUlRDX0NIRUNLKCFhcHBlbmRfdnBzX3Nwc19wcHMgfHwK
KyAgICAgICAgICAgIChzcHMgIT0gc3BzX2RhdGFfLmVuZCgpICYmIHBwcyAhPSBwcHNfZGF0YV8u
ZW5kKCkpKTsKKworICAvLyBDYWxjdWxhdGUgaG93IG11Y2ggc3BhY2Ugd2UgbmVlZCBmb3IgdGhl
IHJlc3Qgb2YgdGhlIGJpdHN0cmVhbS4KKyAgc2l6ZV90IHJlcXVpcmVkX3NpemUgPSAwOworCisg
IGlmIChhcHBlbmRfdnBzX3Nwc19wcHMpIHsKKyAgICByZXF1aXJlZF9zaXplICs9IHZwcy0+c2Vj
b25kLnNpemUgKyBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICByZXF1aXJlZF9zaXplICs9
IHNwcy0+c2Vjb25kLnNpemUgKyBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICByZXF1aXJl
ZF9zaXplICs9IHBwcy0+c2Vjb25kLnNpemUgKyBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAg
fQorCisgIGlmIChoMjY1X2hlYWRlci5wYWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVBUCkgewor
ICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfcHRyID0gZGF0YSArIDE7CisgICAgd2hpbGUgKG5hbHVf
cHRyIDwgZGF0YSArIGRhdGFfc2l6ZSkgeworICAgICAgUlRDX0RDSEVDSyh2aWRlb19oZWFkZXIu
aXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKTsKKyAgICAgIHJlcXVpcmVkX3NpemUgKz0gc2l6ZW9m
KHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAgICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3Jp
YmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21lbnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0
aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBuYWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7
CisKKyAgICAgIHJlcXVpcmVkX3NpemUgKz0gc2VnbWVudF9sZW5ndGg7CisgICAgICBuYWx1X3B0
ciArPSBzZWdtZW50X2xlbmd0aDsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgaWYgKHZpZGVvX2hl
YWRlci5pc19maXJzdF9wYWNrZXRfaW5fZnJhbWUpCisgICAgICByZXF1aXJlZF9zaXplICs9IHNp
emVvZihzdGFydF9jb2RlX2gyNjUpOworICAgIHJlcXVpcmVkX3NpemUgKz0gZGF0YV9zaXplOwor
ICB9CisKKyAgLy8gVGhlbiB3ZSBjb3B5IHRvIHRoZSBuZXcgYnVmZmVyLgorICBGaXhlZEJpdHN0
cmVhbSBmaXhlZDsKKyAgZml4ZWQuYml0c3RyZWFtLkVuc3VyZUNhcGFjaXR5KHJlcXVpcmVkX3Np
emUpOworCisgIGlmIChhcHBlbmRfdnBzX3Nwc19wcHMpIHsKKyAgICAvLyBJbnNlcnQgVlBTLgor
ICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4
ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEodnBzLT5zZWNvbmQuZGF0YS5nZXQoKSwgdnBzLT5zZWNv
bmQuc2l6ZSk7CisKKyAgICAvLyBJbnNlcnQgU1BTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBl
bmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEo
c3BzLT5zZWNvbmQuZGF0YS5nZXQoKSwgc3BzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBJbnNl
cnQgUFBTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7
CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEocHBzLT5zZWNvbmQuZGF0YS5nZXQoKSwg
cHBzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBVcGRhdGUgY29kZWMgaGVhZGVyIHRvIHJlZmxl
Y3QgdGhlIG5ld2x5IGFkZGVkIFNQUyBhbmQgUFBTLgorICAgIEgyNjVOYWx1SW5mbyB2cHNfaW5m
bzsKKyAgICB2cHNfaW5mby50eXBlID0gSDI2NTo6TmFsdVR5cGU6OmtWcHM7CisgICAgdnBzX2lu
Zm8udnBzX2lkID0gdnBzLT5maXJzdDsKKyAgICB2cHNfaW5mby5zcHNfaWQgPSAtMTsKKyAgICB2
cHNfaW5mby5wcHNfaWQgPSAtMTsKKyAgICBIMjY1TmFsdUluZm8gc3BzX2luZm87CisgICAgc3Bz
X2luZm8udHlwZSA9IEgyNjU6Ok5hbHVUeXBlOjprU3BzOworICAgIHNwc19pbmZvLnZwc19pZCA9
IHZwcy0+Zmlyc3Q7CisgICAgc3BzX2luZm8uc3BzX2lkID0gc3BzLT5maXJzdDsKKyAgICBzcHNf
aW5mby5wcHNfaWQgPSAtMTsKKyAgICBIMjY1TmFsdUluZm8gcHBzX2luZm87CisgICAgcHBzX2lu
Zm8udHlwZSA9IEgyNjU6Ok5hbHVUeXBlOjprUHBzOworICAgIHBwc19pbmZvLnZwc19pZCA9IHZw
cy0+Zmlyc3Q7CisgICAgcHBzX2luZm8uc3BzX2lkID0gc3BzLT5maXJzdDsKKyAgICBwcHNfaW5m
by5wcHNfaWQgPSBwcHMtPmZpcnN0OworICAgIGlmIChoMjY1X2hlYWRlci5uYWx1c19sZW5ndGgg
KyAyIDw9IGtNYXhOYWx1c1BlclBhY2tldCkgeworICAgICAgaDI2NV9oZWFkZXIubmFsdXNbaDI2
NV9oZWFkZXIubmFsdXNfbGVuZ3RoKytdID0gdnBzX2luZm87CisgICAgICBoMjY1X2hlYWRlci5u
YWx1c1toMjY1X2hlYWRlci5uYWx1c19sZW5ndGgrK10gPSBzcHNfaW5mbzsKKyAgICAgIGgyNjVf
aGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCsrXSA9IHBwc19pbmZvOworICAg
IH0gZWxzZSB7CisgICAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJOb3QgZW5vdWdoIHNwYWNl
IGluIEguMjY1IGNvZGVjIGhlYWRlciB0byBpbnNlcnQgIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiU1BTL1BQUyBwcm92aWRlZCBvdXQtb2YtYmFuZC4iOworICAgIH0KKyAgfQorCisg
IC8vIENvcHkgdGhlIHJlc3Qgb2YgdGhlIGJpdHN0cmVhbSBhbmQgaW5zZXJ0IHN0YXJ0IGNvZGVz
LgorICBpZiAoaDI2NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID09IGtIMjY1QVApIHsKKyAg
ICBjb25zdCB1aW50OF90KiBuYWx1X3B0ciA9IGRhdGEgKyAxOworICAgIHdoaWxlIChuYWx1X3B0
ciA8IGRhdGEgKyBkYXRhX3NpemUpIHsKKyAgICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRh
KHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAgICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3Jp
YmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21lbnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0
aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBuYWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7
CisKKyAgICAgIHNpemVfdCBjb3B5X2VuZCA9IG5hbHVfcHRyIC0gZGF0YSArIHNlZ21lbnRfbGVu
Z3RoOworICAgICAgaWYgKGNvcHlfZW5kID4gZGF0YV9zaXplKSB7CisgICAgICAgIHJldHVybiB7
a0Ryb3B9OworICAgICAgfQorCisgICAgICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShuYWx1
X3B0ciwgc2VnbWVudF9sZW5ndGgpOworICAgICAgbmFsdV9wdHIgKz0gc2VnbWVudF9sZW5ndGg7
CisgICAgfQorICB9IGVsc2UgeworICAgIGlmICh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0
X2luX2ZyYW1lKSB7CisgICAgICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShzdGFydF9jb2Rl
X2gyNjUpOworICAgIH0KKyAgICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShiaXRzdHJlYW0u
ZGF0YSgpLCBiaXRzdHJlYW0uc2l6ZSgpKTsKKyAgfQorCisgIGZpeGVkLmFjdGlvbiA9IGtJbnNl
cnQ7CisgIHJldHVybiBmaXhlZDsKK30KKwordm9pZCBIMjY1VnBzU3BzUHBzVHJhY2tlcjo6SW5z
ZXJ0VnBzU3BzUHBzTmFsdXMoCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywK
KyAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgc3BzLAorICAgIGNvbnN0IHN0ZDo6dmVj
dG9yPHVpbnQ4X3Q+JiBwcHMpIHsKKyAgY29uc3RleHByIHNpemVfdCBrTmFsdUhlYWRlck9mZnNl
dCA9IDE7CisgIGlmICh2cHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENf
TE9HKExTX1dBUk5JTkcpIDw8ICJWUFMgc2l6ZSAgIiA8PCB2cHMuc2l6ZSgpIDw8ICIgaXMgc21h
bGxlciB0aGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0
OworICAgIHJldHVybjsKKyAgfQorICBpZiAoKHZwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6
TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBo
ZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChzcHMuc2l6ZSgpIDwga05h
bHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgc2l6ZSAg
IiA8PCBzcHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAoKHNw
c1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBSVENfTE9H
KExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJuOwor
ICB9CisgIGlmIChwcHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9H
KExTX1dBUk5JTkcpIDw8ICJQUFMgc2l6ZSAgIiA8PCBwcHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxl
ciB0aGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0Owor
ICAgIHJldHVybjsKKyAgfQorICBpZiAoKHBwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFs
dVR5cGU6OmtQcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFk
ZXIgbWlzc2luZyI7CisgICAgcmV0dXJuOworICB9CisgIGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQ
YXJzZXI6OlZwc1N0YXRlPiBwYXJzZWRfdnBzID0gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisg
ICAgICB2cHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHZwcy5zaXplKCkgLSBrTmFsdUhl
YWRlck9mZnNldCk7CisgIGFic2w6Om9wdGlvbmFsPEgyNjVTcHNQYXJzZXI6OlNwc1N0YXRlPiBw
YXJzZWRfc3BzID0gSDI2NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAgICBzcHMuZGF0YSgpICsg
a05hbHVIZWFkZXJPZmZzZXQsIHNwcy5zaXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisgIGFi
c2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBwYXJzZWRfcHBzID0gSDI2NVBw
c1BhcnNlcjo6UGFyc2VQcHMoCisgICAgICBwcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQs
IHBwcy5zaXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisKKyAgaWYgKCFwYXJzZWRfdnBzKSB7
CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUy4iOworICB9
CisKKyAgaWYgKCFwYXJzZWRfc3BzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFp
bGVkIHRvIHBhcnNlIFNQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfcHBzKSB7CisgICAgUlRD
X0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFBQUy4iOworICB9CisKKyAgaWYg
KCFwYXJzZWRfdnBzIHx8ICFwYXJzZWRfcHBzIHx8ICFwYXJzZWRfc3BzKSB7CisgICAgcmV0dXJu
OworICB9CisKKyAgVnBzSW5mbyB2cHNfaW5mbzsKKyAgdnBzX2luZm8uc2l6ZSA9IHZwcy5zaXpl
KCk7CisgIHVpbnQ4X3QqIHZwc19kYXRhID0gbmV3IHVpbnQ4X3RbdnBzX2luZm8uc2l6ZV07Cisg
IG1lbWNweSh2cHNfZGF0YSwgdnBzLmRhdGEoKSwgdnBzX2luZm8uc2l6ZSk7CisgIHZwc19pbmZv
LmRhdGEucmVzZXQodnBzX2RhdGEpOworICB2cHNfZGF0YV9bcGFyc2VkX3Zwcy0+aWRdID0gc3Rk
Ojptb3ZlKHZwc19pbmZvKTsKKworICBTcHNJbmZvIHNwc19pbmZvOworICBzcHNfaW5mby5zaXpl
ID0gc3BzLnNpemUoKTsKKyAgc3BzX2luZm8ud2lkdGggPSBwYXJzZWRfc3BzLT53aWR0aDsKKyAg
c3BzX2luZm8uaGVpZ2h0ID0gcGFyc2VkX3Nwcy0+aGVpZ2h0OworICBzcHNfaW5mby52cHNfaWQg
PSBwYXJzZWRfc3BzLT52cHNfaWQ7CisgIHVpbnQ4X3QqIHNwc19kYXRhID0gbmV3IHVpbnQ4X3Rb
c3BzX2luZm8uc2l6ZV07CisgIG1lbWNweShzcHNfZGF0YSwgc3BzLmRhdGEoKSwgc3BzX2luZm8u
c2l6ZSk7CisgIHNwc19pbmZvLmRhdGEucmVzZXQoc3BzX2RhdGEpOworICBzcHNfZGF0YV9bcGFy
c2VkX3Nwcy0+aWRdID0gc3RkOjptb3ZlKHNwc19pbmZvKTsKKworICBQcHNJbmZvIHBwc19pbmZv
OworICBwcHNfaW5mby5zaXplID0gcHBzLnNpemUoKTsKKyAgcHBzX2luZm8uc3BzX2lkID0gcGFy
c2VkX3Bwcy0+c3BzX2lkOworICB1aW50OF90KiBwcHNfZGF0YSA9IG5ldyB1aW50OF90W3Bwc19p
bmZvLnNpemVdOworICBtZW1jcHkocHBzX2RhdGEsIHBwcy5kYXRhKCksIHBwc19pbmZvLnNpemUp
OworICBwcHNfaW5mby5kYXRhLnJlc2V0KHBwc19kYXRhKTsKKyAgcHBzX2RhdGFfW3BhcnNlZF9w
cHMtPmlkXSA9IHN0ZDo6bW92ZShwcHNfaW5mbyk7CisKKyAgUlRDX0xPRyhMU19JTkZPKSA8PCAi
SW5zZXJ0ZWQgU1BTIGlkICIgPDwgcGFyc2VkX3Nwcy0+aWQgPDwgIiBhbmQgUFBTIGlkICIKKyAg
ICAgICAgICAgICAgICAgICA8PCBwYXJzZWRfcHBzLT5pZCA8PCAiIChyZWZlcmVuY2luZyBTUFMg
IgorICAgICAgICAgICAgICAgICAgIDw8IHBhcnNlZF9wcHMtPnNwc19pZCA8PCAiKSI7Cit9CisK
K30gIC8vIG5hbWVzcGFjZSB2aWRlb19jb2RpbmcKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92
cHNfc3BzX3Bwc190cmFja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FjNWUyYTAwMWNiZDIwNmZmMzE3YzJi
MDlhZTY4MDZjZmIxMjgwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19w
cHNfdHJhY2tlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4
IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
ICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNl
bnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9v
dCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJv
cGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMu
ICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0
aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisj
aWZuZGVmIE1PRFVMRVNfVklERU9fQ09ESU5HX0gyNjVfVlBTX1NQU19QUFNfVFJBQ0tFUl9IXwor
I2RlZmluZSBNT0RVTEVTX1ZJREVPX0NPRElOR19IMjY1X1ZQU19TUFNfUFBTX1RSQUNLRVJfSF8K
KworI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9yeT4K
KyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlICJhcGkvYXJyYXlfdmlldy5oIgorI2luY2x1
ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oIgorI2luY2x1ZGUgInJ0Y19i
YXNlL2NvcHlfb25fd3JpdGVfYnVmZmVyLmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCitjbGFz
cyBWQ01QYWNrZXQ7CisKK25hbWVzcGFjZSB2aWRlb19jb2RpbmcgeworCitjbGFzcyBIMjY1VnBz
U3BzUHBzVHJhY2tlciB7CisgcHVibGljOgorICBlbnVtIFBhY2tldEFjdGlvbiB7IGtJbnNlcnQs
IGtEcm9wLCBrUmVxdWVzdEtleWZyYW1lIH07CisgIHN0cnVjdCBGaXhlZEJpdHN0cmVhbSB7Cisg
ICAgUGFja2V0QWN0aW9uIGFjdGlvbjsKKyAgICBydGM6OkNvcHlPbldyaXRlQnVmZmVyIGJpdHN0
cmVhbTsKKyAgfTsKKworICAvLyBSZXR1cm5zIGZpeGVkIGJpdHN0cmVhbSBhbmQgbW9kaWZpZXMg
fHZpZGVvX2hlYWRlcnwuCisgIEZpeGVkQml0c3RyZWFtIENvcHlBbmRGaXhCaXRzdHJlYW0ocnRj
OjpBcnJheVZpZXc8Y29uc3QgdWludDhfdD4gYml0c3RyZWFtLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyKiB2aWRlb19oZWFkZXIpOworCisgIHZv
aWQgSW5zZXJ0VnBzU3BzUHBzTmFsdXMoY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYg
c3BzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4
X3Q+JiBwcHMpOworCisgcHJpdmF0ZToKKyAgc3RydWN0IFZwc0luZm8geworICAgIHNpemVfdCBz
aXplID0gMDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBkYXRhOworICB9OworCisg
IHN0cnVjdCBQcHNJbmZvIHsKKyAgICBpbnQgc3BzX2lkID0gLTE7CisgICAgc2l6ZV90IHNpemUg
PSAwOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGRhdGE7CisgIH07CisKKyAgc3Ry
dWN0IFNwc0luZm8geworICAgIGludCB2cHNfaWQgPSAtMTsKKyAgICBzaXplX3Qgc2l6ZSA9IDA7
CisgICAgaW50IHdpZHRoID0gLTE7CisgICAgaW50IGhlaWdodCA9IC0xOworICAgIHN0ZDo6dW5p
cXVlX3B0cjx1aW50OF90W10+IGRhdGE7CisgIH07CisKKyAgc3RkOjptYXA8dWludDMyX3QsIFZw
c0luZm8+IHZwc19kYXRhXzsKKyAgc3RkOjptYXA8dWludDMyX3QsIFBwc0luZm8+IHBwc19kYXRh
XzsKKyAgc3RkOjptYXA8dWludDMyX3QsIFNwc0luZm8+IHNwc19kYXRhXzsKK307CisKK30gIC8v
IG5hbWVzcGFjZSB2aWRlb19jb2RpbmcKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKworI2VuZGlm
ICAvLyBNT0RVTEVTX1ZJREVPX0NPRElOR19IMjY0X1NQU19QUFNfVFJBQ0tFUl9IXwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2RpbmcvaW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1
ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNlLmgKaW5kZXggYzdiMTE2ZjRhZTNmNzBhZGRiODdmMGE4
NDJhZWIzZTI4MWQyODU0Ny4uMGNiYThmMzhhY2IzNzNhNTFhYjE3ZDczZTFiZTVmNTc5ZTRiZDUz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
bW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oCkBAIC0yMCw2ICsyMCw5IEBA
CiAjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2dlbmVyaWNfZnJhbWVfZGVzY3JpcHRvci9nZW5lcmlj
X2ZyYW1lX2luZm8uaCIKICNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90
eXBlcy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1
ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5k
aWYKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA5L2luY2x1ZGUvdnA5
X2dsb2JhbHMuaCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVv
X2Vycm9yX2NvZGVzLmgiCiAjaW5jbHVkZSAicnRjX2Jhc2Uvc3lzdGVtL3J0Y19leHBvcnQuaCIK
QEAgLTkyLDEwICs5NSwxOCBAQCBzdHJ1Y3QgQ29kZWNTcGVjaWZpY0luZm9IMjY0IHsKIH07CiBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9kPENvZGVjU3BlY2lmaWNJbmZvSDI2ND46OnZhbHVlLCAi
Iik7CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitzdHJ1Y3QgQ29kZWNTcGVjaWZpY0luZm9IMjY1
IHsKKyAgSDI2NVBhY2tldGl6YXRpb25Nb2RlIHBhY2tldGl6YXRpb25fbW9kZTsKKyAgYm9vbCBp
ZHJfZnJhbWU7Cit9OworI2VuZGlmCisKIHVuaW9uIENvZGVjU3BlY2lmaWNJbmZvVW5pb24gewog
ICBDb2RlY1NwZWNpZmljSW5mb1ZQOCBWUDg7CiAgIENvZGVjU3BlY2lmaWNJbmZvVlA5IFZQOTsK
ICAgQ29kZWNTcGVjaWZpY0luZm9IMjY0IEgyNjQ7CisgIENvZGVjU3BlY2lmaWNJbmZvSDI2NSBI
MjY1OwogfTsKIHN0YXRpY19hc3NlcnQoc3RkOjppc19wb2Q8Q29kZWNTcGVjaWZpY0luZm9Vbmlv
bj46OnZhbHVlLCAiIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJfY29tbW9u
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9qaXR0ZXJfYnVmZmVyX2NvbW1vbi5oCmluZGV4IDZjY2ZlMzkxOTk1NGY4ZDA5
YmI1MzdlNGFkOTE3NjFlZmE1MWEwOWYuLjU0OTJlZTViNDFmMzYwZTdjNWJjNTExMDYwNDM3ZWJk
ZWY5MjNjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmgKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19j
b2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaApAQCAtNTQsNiArNTQsOSBAQCBlbnVtIFZDTUZy
YW1lQnVmZmVyU3RhdGVFbnVtIHsKIH07CiAKIGVudW0geyBrSDI2NFN0YXJ0Q29kZUxlbmd0aEJ5
dGVzID0gNCB9OworI2lmbmRlZiBESVNBQkxFX0gyNjUKK2VudW0geyBrSDI2NVN0YXJ0Q29kZUxl
bmd0aEJ5dGVzID0gNCB9OworI2VuZGlmCiB9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCiAKICNlbmRp
ZiAgLy8gTU9EVUxFU19WSURFT19DT0RJTkdfSklUVEVSX0JVRkZFUl9DT01NT05fSF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL3BhY2tldC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYwppbmRleCAwYzRhNjU4Yjhm
MjAzNDkxNmMxODUzNDZlNGI4MTQyMmNjZmU4ZjhmLi4xZjlmNGI1MjQ2ZWQ1YTQ3MTE0NWZkZjNi
YTQ4ZTVjMTQzYTA0ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQuY2MKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcv
cGFja2V0LmNjCkBAIC00NCw4ICs0NCwxMyBAQCBWQ01QYWNrZXQ6OlZDTVBhY2tldChjb25zdCB1
aW50OF90KiBwdHIsCiAgICAgICBtYXJrZXJCaXQocnRwX2hlYWRlci5tYXJrZXJCaXQpLAogICAg
ICAgdGltZXNOYWNrZWQoLTEpLAogICAgICAgY29tcGxldGVOQUxVKGtOYWx1SW5jb21wbGV0ZSks
Ci0gICAgICBpbnNlcnRTdGFydENvZGUodmlkZW9IZWFkZXIuY29kZWMgPT0ga1ZpZGVvQ29kZWNI
MjY0ICYmCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaW5zZXJ0U3RhcnRDb2RlKCh2aWRl
b0hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQgfHwgdmlkZW9IZWFkZXIuY29kZWMgPT0g
a1ZpZGVvQ29kZWNIMjY1KSAmJgogICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSGVhZGVyLmlz
X2ZpcnN0X3BhY2tldF9pbl9mcmFtZSksCisjZWxzZQorICAgICAgIGluc2VydFN0YXJ0Q29kZSh2
aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQgJiYKKyAgICAgICAgICAgICAgICAg
ICAgICAgdmlkZW9IZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSwKKyNlbmRpZgogICAg
ICAgdmlkZW9faGVhZGVyKHZpZGVvSGVhZGVyKSwKICAgICAgIHBhY2tldF9pbmZvKHJ0cF9oZWFk
ZXIsIHJlY2VpdmVfdGltZV9tcykgewogICBpZiAoaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKCkg
JiYgbWFya2VyQml0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvcGFja2V0X2J1ZmZlci5jYwppbmRleCA0ZGU2MjdlZTYzMzQxZTMwMzk4M2ViYjVkYWE4ODZh
YWQ2OGIzMDg2Li41NTE0MTQxYTRjMGNlYjU4OTdjNWM3MjQ4NjZjZDA5N2RhNjlkMDljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIu
Y2MKQEAgLTI0LDExICsyNCwxNyBAQAogI2luY2x1ZGUgImFwaS92aWRlby9lbmNvZGVkX2ZyYW1l
LmgiCiAjaW5jbHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX2ZyYW1lX3R5cGUuaCIKICNpbmNsdWRlICJj
b21tb25fdmlkZW8vaDI2NC9oMjY0X2NvbW1vbi5oIgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNp
bmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2VuZGlmCiAjaW5jbHVk
ZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2hlYWRlcl9leHRlbnNpb25zLmgiCiAjaW5j
bHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3BhY2tldF9yZWNlaXZlZC5oIgogI2lu
Y2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaCIKICNpbmNs
dWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyX2F2MS5o
IgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2
NF9nbG9iYWxzLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlk
ZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5kaWYKICNp
bmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9mcmFtZV9vYmplY3QuaCIKICNpbmNsdWRlICJy
dGNfYmFzZS9jaGVja3MuaCIKICNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCkBAIC0yODks
MTIgKzI5NSwyMCBAQCBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UnRwRnJhbWVPYmplY3Q+
PiBQYWNrZXRCdWZmZXI6OkZpbmRGcmFtZXMoCiAgICAgICBib29sIGhhc19oMjY0X3BwcyA9IGZh
bHNlOwogICAgICAgYm9vbCBoYXNfaDI2NF9pZHIgPSBmYWxzZTsKICAgICAgIGJvb2wgaXNfaDI2
NF9rZXlmcmFtZSA9IGZhbHNlOworICAgICAgYm9vbCBpc19oMjY1ID0gZmFsc2U7CisjaWZuZGVm
IERJU0FCTEVfSDI2NQorICAgICAgaXNfaDI2NSA9IGJ1ZmZlcl9bc3RhcnRfaW5kZXhdLnBhY2tl
dC0+Y29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjU7CisgICAgICBib29sIGhhc19oMjY1X3NwcyA9
IGZhbHNlOworICAgICAgYm9vbCBoYXNfaDI2NV9wcHMgPSBmYWxzZTsKKyAgICAgIGJvb2wgaGFz
X2gyNjVfaWRyID0gZmFsc2U7CisgICAgICBib29sIGlzX2gyNjVfa2V5ZnJhbWUgPSBmYWxzZTsK
KyNlbmRpZgogICAgICAgaW50IGlkcl93aWR0aCA9IC0xOwogICAgICAgaW50IGlkcl9oZWlnaHQg
PSAtMTsKICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICsrdGVzdGVkX3BhY2tldHM7CiAK
LSAgICAgICAgaWYgKCFpc19oMjY0ICYmIGJ1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1lX2JlZ2lu
KCkpCisgICAgICAgIGlmICghaXNfaDI2NCAmJiAhaXNfaDI2NSAmJiBidWZmZXJfW3N0YXJ0X2lu
ZGV4XS5mcmFtZV9iZWdpbigpKQogICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlmIChpc19o
MjY0KSB7CkBAIC0zMjcsNyArMzQxLDI4IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxS
dHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAgICAgIH0K
ICAgICAgICAgICB9CiAgICAgICAgIH0KLQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgICAg
aWYgKGlzX2gyNjUgJiYgIWlzX2gyNjVfa2V5ZnJhbWUpIHsKKyAgICAgICAgICBjb25zdCBhdXRv
KiBoMjY1X2hlYWRlciA9IGFic2w6OmdldF9pZjxSVFBWaWRlb0hlYWRlckgyNjU+KAorICAgICAg
ICAgICAgICAmYnVmZmVyX1tzdGFydF9pbmRleF0ucGFja2V0LT52aWRlb19oZWFkZXIudmlkZW9f
dHlwZV9oZWFkZXIpOworICAgICAgICAgIGlmICghaDI2NV9oZWFkZXIgfHwgaDI2NV9oZWFkZXIt
Pm5hbHVzX2xlbmd0aCA+PSBrTWF4TmFsdXNQZXJQYWNrZXQpCisgICAgICAgICAgICByZXR1cm4g
Zm91bmRfZnJhbWVzOworICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgaDI2NV9oZWFk
ZXItPm5hbHVzX2xlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBpZiAoaDI2NV9oZWFkZXItPm5h
bHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICAgICAgICAgICAgaGFz
X2gyNjVfc3BzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaDI2NV9oZWFkZXItPm5h
bHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtQcHMpIHsKKyAgICAgICAgICAgICAgaGFz
X2gyNjVfcHBzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaDI2NV9oZWFkZXItPm5h
bHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJXUmFkbAorICAgICAgICAgICAgICAg
ICAgICAgICB8fCBoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6
a0lkck5McAorICAgICAgICAgICAgICAgICAgICAgICB8fCBoMjY1X2hlYWRlci0+bmFsdXNbal0u
dHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0NyYSkgeworICAgICAgICAgICAgICBoYXNfaDI2NV9p
ZHIgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoKGhh
c19oMjY1X3NwcyAmJiBoYXNfaDI2NV9wcHMpIHx8IGhhc19oMjY1X2lkcikgeworICAgICAgICAg
ICAgaXNfaDI2NV9rZXlmcmFtZSA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICB9CisjZW5k
aWYKICAgICAgICAgaWYgKHRlc3RlZF9wYWNrZXRzID09IGJ1ZmZlcl8uc2l6ZSgpKQogICAgICAg
ICAgIGJyZWFrOwogCkBAIC0zMzksNyArMzc0LDcgQEAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVf
cHRyPFJ0cEZyYW1lT2JqZWN0Pj4gUGFja2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAgICAgICAv
LyB0aGUgdGltZXN0YW1wIG9mIHRoYXQgcGFja2V0IGlzIHRoZSBzYW1lIGFzIHRoaXMgb25lLiBU
aGlzIG1heSBjYXVzZQogICAgICAgICAvLyB0aGUgUGFja2V0QnVmZmVyIHRvIGhhbmQgb3V0IGlu
Y29tcGxldGUgZnJhbWVzLgogICAgICAgICAvLyBTZWU6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5v
cmcvcC93ZWJydGMvaXNzdWVzL2RldGFpbD9pZD03MTA2Ci0gICAgICAgIGlmIChpc19oMjY0ICYm
CisgICAgICAgIGlmICgoaXNfaDI2NCB8fCBpc19oMjY1KSAmJgogICAgICAgICAgICAgKCFidWZm
ZXJfW3N0YXJ0X2luZGV4XS51c2VkKCkgfHwKICAgICAgICAgICAgICBidWZmZXJfW3N0YXJ0X2lu
ZGV4XS5wYWNrZXQtPnRpbWVzdGFtcCAhPSBmcmFtZV90aW1lc3RhbXApKSB7CiAgICAgICAgICAg
YnJlYWs7CkBAIC0zOTMsNiArNDI4LDQ1IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxS
dHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAgfQogICAg
ICAgfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaWYgKGlzX2gyNjUpIHsKKyAgICAg
ICAgLy8gV2FybiBpZiB0aGlzIGlzIGFuIHVuc2FmZSBmcmFtZS4KKyAgICAgICAgaWYgKGhhc19o
MjY1X2lkciAmJiAoIWhhc19oMjY1X3NwcyB8fCAhaGFzX2gyNjVfcHBzKSkgeworICAgICAgICAg
IHN0ZDo6c3RyaW5nc3RyZWFtIHNzOworICAgICAgICAgIHNzIDw8ICJSZWNlaXZlZCBILjI2NS1J
RFIgZnJhbWUgIgorICAgICAgICAgICAgIDw8ICIoU1BTOiAiIDw8IGhhc19oMjY1X3NwcyA8PCAi
LCBQUFM6ICIgPDwgaGFzX2gyNjVfcHBzIDw8ICIpLiAiOworICAgICAgICAgIHNzIDw8ICJUcmVh
dGluZyBhcyBkZWx0YSBmcmFtZSBzaW5jZSAiCisgICAgICAgICAgICAgICAgIldlYlJUQy1TcHNQ
cHNJZHJJc0gyNjVLZXlmcmFtZSBpcyBhbHdheXMgZW5hYmxlZC4iOworICAgICAgICAgIFJUQ19M
T0coTFNfV0FSTklORykgPDwgc3Muc3RyKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cg
dGhhdCB3ZSBoYXZlIGRlY2lkZWQgd2hldGhlciB0byB0cmVhdCB0aGlzIGZyYW1lIGFzIGEga2V5
IGZyYW1lCisgICAgICAgIC8vIG9yIGRlbHRhIGZyYW1lIGluIHRoZSBmcmFtZSBidWZmZXIsIHdl
IHVwZGF0ZSB0aGUgZmllbGQgdGhhdAorICAgICAgICAvLyBkZXRlcm1pbmVzIGlmIHRoZSBSdHBG
cmFtZU9iamVjdCBpcyBhIGtleSBmcmFtZSBvciBkZWx0YSBmcmFtZS4KKyAgICAgICAgY29uc3Qg
c2l6ZV90IGZpcnN0X3BhY2tldF9pbmRleCA9IHN0YXJ0X3NlcV9udW0gJSBidWZmZXJfLnNpemUo
KTsKKyAgICAgICAgUlRDX0NIRUNLX0xUKGZpcnN0X3BhY2tldF9pbmRleCwgYnVmZmVyXy5zaXpl
KCkpOworICAgICAgICBpZiAoaXNfaDI2NV9rZXlmcmFtZSkgeworICAgICAgICAgIGJ1ZmZlcl9b
Zmlyc3RfcGFja2V0X2luZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlk
ZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
IGJ1ZmZlcl9bZmlyc3RfcGFja2V0X2luZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci5mcmFtZV90
eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lRGVsdGE7CisgICAgICAgIH0KKworICAg
ICAgICAvLyBJZiB0aGlzIGlzIG5vdCBhIGtleSBmcmFtZSwgbWFrZSBzdXJlIHRoZXJlIGFyZSBu
byBnYXBzIGluIHRoZQorICAgICAgICAvLyBwYWNrZXQgc2VxdWVuY2UgbnVtYmVycyB1cCB1bnRp
bCB0aGlzIHBvaW50LgorICAgICAgICBpZiAoIWlzX2gyNjVfa2V5ZnJhbWUgJiYgbWlzc2luZ19w
YWNrZXRzXy51cHBlcl9ib3VuZChzdGFydF9zZXFfbnVtKSAhPQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1pc3NpbmdfcGFja2V0c18uYmVnaW4oKSkgeworICAgICAgICAg
IHVpbnQxNl90IHN0b3BfaW5kZXggPSAoaW5kZXggKyAxKSAlIGJ1ZmZlcl8uc2l6ZSgpOworICAg
ICAgICAgIHdoaWxlIChzdGFydF9pbmRleCAhPSBzdG9wX2luZGV4KSB7CisgICAgICAgICAgICAv
LyBGSVhNRTogZmluZCB3aGF0IGl0IGRvZXMuCisgICAgICAgICAgICAvL3NlcXVlbmNlX2J1ZmZl
cl9bc3RhcnRfaW5kZXhdLmZyYW1lX2NyZWF0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHN0YXJ0
X2luZGV4ID0gKHN0YXJ0X2luZGV4ICsgMSkgJSBidWZmZXJfLnNpemUoKTsKKyAgICAgICAgICB9
CisKKyAgICAgICAgICByZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAgICB9CisgICAgICB9Cisj
ZW5kaWYKKwogICAgICAgaWYgKGF1dG8gZnJhbWUgPSBBc3NlbWJsZUZyYW1lKHN0YXJ0X3NlcV9u
dW0sIHNlcV9udW0pKSB7CiAgICAgICAgIGZvdW5kX2ZyYW1lcy5wdXNoX2JhY2soc3RkOjptb3Zl
KGZyYW1lKSk7CiAgICAgICB9IGVsc2UgewpAQCAtNDAwLDYgKzQ3NCw3IEBAIHN0ZDo6dmVjdG9y
PHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1l
cygKICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgc3RhcnRfc2VxX251bSA8PCAiLSIgPDwg
c2VxX251bTsKICAgICAgIH0KIAorCiAgICAgICBtaXNzaW5nX3BhY2tldHNfLmVyYXNlKG1pc3Np
bmdfcGFja2V0c18uYmVnaW4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2lu
Z19wYWNrZXRzXy51cHBlcl9ib3VuZChzZXFfbnVtKSk7CiAgICAgICBDbGVhckludGVydmFsKHN0
YXJ0X3NlcV9udW0sIHNlcV9udW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRl
b19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNjCmluZGV4IGU1MWQyOTM2MDc3ZDBkMDhlNzUxNTNmOGUz
YmE0Yjg3N2M0NTFjMzMuLjZkZjk4Njk5YjBjMjYyYzZlOWQ3YzFhYWVlZWFjNGU5M2Y4Y2I3NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Npb25faW5mby5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2lu
Zm8uY2MKQEAgLTE1Myw2ICsxNTMsMjIgQEAgc3RkOjp2ZWN0b3I8TmFsdUluZm8+IFZDTVNlc3Np
b25JbmZvOjpHZXROYWx1SW5mb3MoKSBjb25zdCB7CiAgIHJldHVybiBuYWx1X2luZm9zOwogfQog
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorc3RkOjp2ZWN0b3I8SDI2NU5hbHVJbmZvPiBWQ01TZXNz
aW9uSW5mbzo6R2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0IHsKKyAgaWYgKHBhY2tldHNfLmVtcHR5
KCkgfHwgcGFja2V0c18uZnJvbnQoKS52aWRlb19oZWFkZXIuY29kZWMgIT0ga1ZpZGVvQ29kZWNI
MjY1KQorICAgIHJldHVybiBzdGQ6OnZlY3RvcjxIMjY1TmFsdUluZm8+KCk7CisgIHN0ZDo6dmVj
dG9yPEgyNjVOYWx1SW5mbz4gbmFsdV9pbmZvczsKKyAgZm9yIChjb25zdCBWQ01QYWNrZXQmIHBh
Y2tldCA6IHBhY2tldHNfKSB7CisgICAgY29uc3QgYXV0byYgaDI2NSA9CisgICAgICAgIGFic2w6
OmdldDxSVFBWaWRlb0hlYWRlckgyNjU+KHBhY2tldC52aWRlb19oZWFkZXIudmlkZW9fdHlwZV9o
ZWFkZXIpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaDI2NS5uYWx1c19sZW5ndGg7ICsr
aSkgeworICAgICAgbmFsdV9pbmZvcy5wdXNoX2JhY2soaDI2NS5uYWx1c1tpXSk7CisgICAgfQor
ICB9CisgIHJldHVybiBuYWx1X2luZm9zOworfQorI2VuZGlmCisKIHZvaWQgVkNNU2Vzc2lvbklu
Zm86OlNldEdvZkluZm8oY29uc3QgR29mSW5mb1ZQOSYgZ29mX2luZm8sIHNpemVfdCBpZHgpIHsK
ICAgaWYgKHBhY2tldHNfLmVtcHR5KCkpCiAgICAgcmV0dXJuOwpAQCAtMjExLDYgKzIyNywxMSBA
QCBzaXplX3QgVkNNU2Vzc2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50OF90KiBmcmFtZV9idWZm
ZXIsCiAgIC8vIFRPRE8ocGJvcyk6IFJlbW92ZSBIMjY0IHBhcnNpbmcgZnJvbSB0aGlzIHN0ZXAg
YW5kIHVzZSBhIGZyYWdtZW50YXRpb24KICAgLy8gaGVhZGVyIHN1cHBsaWVkIGJ5IHRoZSBIMjY0
IGRlcGFja2V0aXplci4KICAgY29uc3Qgc2l6ZV90IGtIMjY0TkFMSGVhZGVyTGVuZ3RoSW5CeXRl
cyA9IDE7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBjb25zdCBzaXplX3Qga0gyNjVOQUxIZWFk
ZXJMZW5ndGhJbkJ5dGVzID0gMjsKKyAgY29uc3QgYXV0byogaDI2NSA9CisgICAgICBhYnNsOjpn
ZXRfaWY8UlRQVmlkZW9IZWFkZXJIMjY1PigmcGFja2V0LnZpZGVvX2hlYWRlci52aWRlb190eXBl
X2hlYWRlcik7CisjZW5kaWYKICAgY29uc3Qgc2l6ZV90IGtMZW5ndGhGaWVsZExlbmd0aCA9IDI7
CiAgIGNvbnN0IGF1dG8qIGgyNjQgPQogICAgICAgYWJzbDo6Z2V0X2lmPFJUUFZpZGVvSGVhZGVy
SDI2ND4oJnBhY2tldC52aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOwpAQCAtMjM2LDYg
KzI1NywzNiBAQCBzaXplX3QgVkNNU2Vzc2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50OF90KiBm
cmFtZV9idWZmZXIsCiAgICAgcGFja2V0LnNpemVCeXRlcyA9IHJlcXVpcmVkX2xlbmd0aDsKICAg
ICByZXR1cm4gcGFja2V0LnNpemVCeXRlczsKICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAg
ZWxzZSBpZiAoaDI2NSAmJiBoMjY1LT5wYWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVBUCkgewor
ICAgIC8vIFNpbWlsYXIgdG8gSDI2NCwgZm9yIEgyNjUgYWdncmVnYXRpb24gcGFja2V0cywgd2Ug
cmVseSBvbiBqaXR0ZXIgYnVmZmVyCisgICAgLy8gdG8gcmVtb3ZlIHRoZSB0d28gbGVuZ3RoIGJ5
dGVzIGJldHdlZW4gZWFjaCBOQUwgdW5pdCwgYW5kIHBvdGVudGlhbGx5IGFkZAorICAgIC8vIHN0
YXJ0IGNvZGVzLgorICAgIHNpemVfdCByZXF1aXJlZF9sZW5ndGggPSAwOworICAgIGNvbnN0IHVp
bnQ4X3QqIG5hbHVfcHRyID0KKyAgICAgICAgcGFja2V0X2J1ZmZlciArIGtIMjY1TkFMSGVhZGVy
TGVuZ3RoSW5CeXRlczsgIC8vIHNraXAgcGF5bG9hZGhkcgorICAgIHdoaWxlIChuYWx1X3B0ciA8
IHBhY2tldF9idWZmZXIgKyBwYWNrZXQuc2l6ZUJ5dGVzKSB7CisgICAgICBzaXplX3QgbGVuZ3Ro
ID0gQnVmZmVyVG9VV29yZDE2KG5hbHVfcHRyKTsKKyAgICAgIHJlcXVpcmVkX2xlbmd0aCArPQor
ICAgICAgICAgIGxlbmd0aCArIChwYWNrZXQuaW5zZXJ0U3RhcnRDb2RlID8ga0gyNjVTdGFydENv
ZGVMZW5ndGhCeXRlcyA6IDApOworICAgICAgbmFsdV9wdHIgKz0ga0xlbmd0aEZpZWxkTGVuZ3Ro
ICsgbGVuZ3RoOworICAgIH0KKyAgICBTaGlmdFN1YnNlcXVlbnRQYWNrZXRzKHBhY2tldF9pdCwg
cmVxdWlyZWRfbGVuZ3RoKTsKKyAgICBuYWx1X3B0ciA9IHBhY2tldF9idWZmZXIgKyBrSDI2NU5B
TEhlYWRlckxlbmd0aEluQnl0ZXM7CisgICAgdWludDhfdCogZnJhbWVfYnVmZmVyX3B0ciA9IGZy
YW1lX2J1ZmZlciArIG9mZnNldDsKKyAgICB3aGlsZSAobmFsdV9wdHIgPCBwYWNrZXRfYnVmZmVy
ICsgcGFja2V0LnNpemVCeXRlcykgeworICAgICAgc2l6ZV90IGxlbmd0aCA9IEJ1ZmZlclRvVVdv
cmQxNihuYWx1X3B0cik7CisgICAgICBuYWx1X3B0ciArPSBrTGVuZ3RoRmllbGRMZW5ndGg7Cisg
ICAgICAvLyBzaW5jZSBIMjY1IHNoYXJlcyB0aGUgc2FtZSBzdGFydCBjb2RlIGFzIEgyNjQsIHVz
ZSB0aGUgc2FtZSBJbnNlcnQKKyAgICAgIC8vIGZ1bmN0aW9uIHRvIGhhbmRsZSBzdGFydCBjb2Rl
LgorICAgICAgZnJhbWVfYnVmZmVyX3B0ciArPSBJbnNlcnQobmFsdV9wdHIsIGxlbmd0aCwgcGFj
a2V0Lmluc2VydFN0YXJ0Q29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0X2Nhc3Q8dWludDhfdCo+KGZyYW1lX2J1ZmZlcl9wdHIpKTsKKyAgICAgIG5hbHVfcHRyICs9
IGxlbmd0aDsKKyAgICB9CisgICAgcGFja2V0LnNpemVCeXRlcyA9IHJlcXVpcmVkX2xlbmd0aDsK
KyAgICByZXR1cm4gcGFja2V0LnNpemVCeXRlczsKKyAgfQorI2VuZGlmCiAgIFNoaWZ0U3Vic2Vx
dWVudFBhY2tldHMoCiAgICAgICBwYWNrZXRfaXQsIHBhY2tldC5zaXplQnl0ZXMgKwogICAgICAg
ICAgICAgICAgICAgICAgKHBhY2tldC5pbnNlcnRTdGFydENvZGUgPyBrSDI2NFN0YXJ0Q29kZUxl
bmd0aEJ5dGVzIDogMCkpOwpAQCAtNDYyLDcgKzUxMywyMiBAQCBpbnQgVkNNU2Vzc2lvbkluZm86
Okluc2VydFBhY2tldChjb25zdCBWQ01QYWNrZXQmIHBhY2tldCwKICAgICAgICAgIElzTmV3ZXJT
ZXF1ZW5jZU51bWJlcihwYWNrZXQuc2VxTnVtLCBsYXN0X3BhY2tldF9zZXFfbnVtXykpKSB7CiAg
ICAgICBsYXN0X3BhY2tldF9zZXFfbnVtXyA9IHBhY2tldC5zZXFOdW07CiAgICAgfQorI2lmbmRl
ZiBESVNBQkxFX0gyNjUKKyAgfSBlbHNlIGlmIChwYWNrZXQuY29kZWMoKSA9PSBrVmlkZW9Db2Rl
Y0gyNjUpIHsKKyAgICBmcmFtZV90eXBlXyA9IHBhY2tldC52aWRlb19oZWFkZXIuZnJhbWVfdHlw
ZTsKKyAgICBpZiAocGFja2V0LmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSgpICYmCisgICAgICAg
IChmaXJzdF9wYWNrZXRfc2VxX251bV8gPT0gLTEgfHwKKyAgICAgICAgIElzTmV3ZXJTZXF1ZW5j
ZU51bWJlcihmaXJzdF9wYWNrZXRfc2VxX251bV8sIHBhY2tldC5zZXFOdW0pKSkgeworICAgICAg
Zmlyc3RfcGFja2V0X3NlcV9udW1fID0gcGFja2V0LnNlcU51bTsKKyAgICB9CisgICAgaWYgKHBh
Y2tldC5tYXJrZXJCaXQgJiYKKyAgICAgICAgKGxhc3RfcGFja2V0X3NlcV9udW1fID09IC0xIHx8
CisgICAgICAgICBJc05ld2VyU2VxdWVuY2VOdW1iZXIocGFja2V0LnNlcU51bSwgbGFzdF9wYWNr
ZXRfc2VxX251bV8pKSkgeworICAgICAgbGFzdF9wYWNrZXRfc2VxX251bV8gPSBwYWNrZXQuc2Vx
TnVtOworICAgIH0KKyNlbHNlCiAgIH0gZWxzZSB7CisjZW5kaWYKICAgICAvLyBPbmx5IGluc2Vy
dCBtZWRpYSBwYWNrZXRzIGJldHdlZW4gZmlyc3QgYW5kIGxhc3QgcGFja2V0cyAod2hlbgogICAg
IC8vIGF2YWlsYWJsZSkuCiAgICAgLy8gUGxhY2luZyBjaGVjayBoZXJlLCBhcyB0byBwcm9wZXJs
eSBhY2NvdW50IGZvciBkdXBsaWNhdGUgcGFja2V0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Np
b25faW5mby5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKaW5kZXggMDZhMzQ4ZWY3MjM1NDc3MWIy
ODM4NWY5ZDZmMjQ1YmE5MGE3MWNkOS4uMDFlYTdiZDI5Nzc3MjdmZDc2NzYxNDJkNGIxNzNhNWM5
ZDY5MjlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vz
c2lvbl9pbmZvLmgKQEAgLTY1LDcgKzY1LDkgQEAgY2xhc3MgVkNNU2Vzc2lvbkluZm8gewogICBp
bnQgVGwwUGljSWQoKSBjb25zdDsKIAogICBzdGQ6OnZlY3RvcjxOYWx1SW5mbz4gR2V0TmFsdUlu
Zm9zKCkgY29uc3Q7Ci0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0ZDo6dmVjdG9yPEgyNjVO
YWx1SW5mbz4gR2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0OworI2VuZGlmCiAgIHZvaWQgU2V0R29m
SW5mbyhjb25zdCBHb2ZJbmZvVlA5JiBnb2ZfaW5mbywgc2l6ZV90IGlkeCk7CiAKICBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
cnRjX2Jhc2UvZXhwZXJpbWVudHMvbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5jYyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4cGVyaW1l
bnRzL21pbl92aWRlb19iaXRyYXRlX2V4cGVyaW1lbnQuY2MKaW5kZXggMTE0NTBkMDg0OTIxYzY3
NDkyNTZhNDRjNmRjNjZhYTNhZThmZmNmMy4uM2IxM2U4ZTliZmVkOTJiZTBmMzg5MWVkZWI5MDgx
Y2ZiOGM2MTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvcnRjX2Jhc2UvZXhwZXJpbWVudHMvbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVu
dC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9ydGNf
YmFzZS9leHBlcmltZW50cy9taW5fdmlkZW9fYml0cmF0ZV9leHBlcmltZW50LmNjCkBAIC0xMDAs
NiArMTAwLDkgQEAgYWJzbDo6b3B0aW9uYWw8RGF0YVJhdGU+IEdldEV4cGVyaW1lbnRhbE1pblZp
ZGVvQml0cmF0ZShWaWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgICAgICAgIHJldHVybiBtaW5fYml0
cmF0ZV9hdjEuR2V0T3B0aW9uYWwoKTsKICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAg
ICAgICByZXR1cm4gbWluX2JpdHJhdGVfaDI2NC5HZXRPcHRpb25hbCgpOworI2lmbmRlZiBESVNB
QkxFX0gyNjUKKyAgICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorI2VuZGlmCiAgICAgICBjYXNl
IGtWaWRlb0NvZGVjR2VuZXJpYzoKICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNNdWx0aXBsZXg6CiAg
ICAgICAgIHJldHVybiBhYnNsOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2Vi
S2l0VXRpbGl0aWVzLmgKaW5kZXggYWI3Nzk0MmU2OTQ2YmRlMzAwMjk5MGEzYTI2YTEwMDFlZjYz
MDUyNS4uNmYwODA1YjBiYmJlM2QwMzhjNWM0NTZjZTYwYmViZGVhODgwMTJmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9X
ZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC0zOSw3ICszOSw3IEBAIGNs
YXNzIFZpZGVvRGVjb2RlckZhY3Rvcnk7CiBjbGFzcyBWaWRlb0VuY29kZXJGYWN0b3J5OwogY2xh
c3MgVmlkZW9GcmFtZTsKIAotZW51bSBjbGFzcyBXZWJLaXRDb2RlY1N1cHBvcnQgeyBIMjY0LCBI
MjY0QW5kVlA4IH07CitlbnVtIGNsYXNzIFdlYktpdENvZGVjU3VwcG9ydCB7IEgyNjRWUDhBbmRI
MjY1LCBIMjY0QW5kVlA4IH07CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2Rl
ckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktpdENvZGVjU3VwcG9ydCk7
CiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJL
aXREZWNvZGVyRmFjdG9yeShXZWJLaXRDb2RlY1N1cHBvcnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGls
aXRpZXMubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQppbmRleCAxNDAyYzJiZjNhNDE3MDNhY2I4ZjNkMGYx
ZjBhNDNhNzlhYTNjYjZlLi42Y2U4NjUzYzM1NDI1NDFhYjgxZWVkYTFiY2VmZTgzOGZhYWE1NTA5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQpAQCAtMTE2
LDcgKzExNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+
IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktpdENvCiAgICAgfSk7CiAjZW5kaWYKIAot
ICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9FbmNvZGVyRmFjdG9y
eShjb2RlY1N1cHBvcnQgPT0gV2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4ID8gW1tSVENE
ZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSBhbGxvY10gaW5pdF0gOiBbW1JUQ1ZpZGVvRW5jb2Rl
ckZhY3RvcnlIMjY0IGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBpbnRlcm5hbEZhY3RvcnkgPSBP
YmpDVG9OYXRpdmVWaWRlb0VuY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZh
Y3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTogY29kZWNTdXBwb3J0ID09IFdlYktpdENvZGVjU3Vw
cG9ydDo6SDI2NFZQOEFuZEgyNjVdKTsKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxWaWRl
b0VuY29kZXJGYWN0b3J5V2l0aFNpbXVsY2FzdD4oc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkp
OwogfQogCkBAIC0yNzEsNyArMjcxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4g
UmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKGNvbnMKIAogc3Rk
Ojp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVj
b2RlckZhY3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKIHsKLSAgICBhdXRv
IGludGVybmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoY29kZWNT
dXBwb3J0ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA/IFtbUlRDRGVmYXVsdFZp
ZGVvRGVjb2RlckZhY3RvcnkgYWxsb2NdIGluaXRdIDogW1tSVENWaWRlb0RlY29kZXJGYWN0b3J5
SDI2NCBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0gT2JqQ1RvTmF0
aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShbW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGFs
bG9jXSBpbml0V2l0aEgyNjU6IGNvZGVjU3VwcG9ydCA9PSBXZWJLaXRDb2RlY1N1cHBvcnQ6Okgy
NjRWUDhBbmRIMjY1XSk7CiAgICAgaWYgKHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNyZWF0ZUNh
bGxiYWNrKQogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVWaWRlb0RlY29k
ZXJGYWN0b3J5PihzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7CiAgICAgcmV0dXJuIGludGVy
bmFsRmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZp
Y0luZm9IMjY1K1ByaXZhdGUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0lu
Zm9IMjY1K1ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjJkMzU5NGY1NTdmN2I3NWZmNjdmOTQyN2Ji
NDYxYjBjOWJhNWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgKiAgQ29w
eXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNE
LXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxl
IGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVs
bGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZp
bGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJl
IGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVl
LgorICovCisvKiBUaGlzIGZpbGUgaXMgYm9ycm93ZWQgZnJvbSBzZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8KKworI2lt
cG9ydCAiUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgiCisKKyNpbmNsdWRlICJtb2R1bGVzL3Zp
ZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oIgorCitOU19BU1NVTUVf
Tk9OTlVMTF9CRUdJTgorCisvKiBJbnRlcmZhY2VzIGZvciBjb252ZXJ0aW5nIHRvL2Zyb20gaW50
ZXJuYWwgQysrIGZvcm1hdHMuICovCitAaW50ZXJmYWNlIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NSAoKQorCistICh3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3BlY2lmaWNJ
bmZvOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92
aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJiYWUxOWM3YmMzMWI4NDU5
Zjc1ZGJkMTE5NDg1OTA0NmJmZTNiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqICBD
b3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC
U0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50
ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUg
ZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAg
YmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRy
ZWUuCisgKi8KKy8qIFRoaXMgZmlsZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0LmguICovCisKKyNpbXBvcnQg
PEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaW1wb3J0ICJSVENDb2RlY1NwZWNpZmljSW5m
by5oIgorI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisKKy8qKiBDbGFzcyBmb3IgSDI2NSBzcGVjaWZp
YyBjb25maWcuICovCit0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgUlRDSDI2NVBhY2tldGl6
YXRpb25Nb2RlKSB7CisgIFJUQ0gyNjVQYWNrZXRpemF0aW9uTW9kZU5vbkludGVybGVhdmVkID0g
MCwgIC8vIE1vZGUgMSAtIFNUQVAtQSwgRlUtQSBpcyBhbGxvd2VkCisgIFJUQ0gyNjVQYWNrZXRp
emF0aW9uTW9kZVNpbmdsZU5hbFVuaXQgICAgICAgIC8vIE1vZGUgMCAtIG9ubHkgc2luZ2xlIE5B
TFUgYWxsb3dlZAorfTsKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1
bnRpbWVfbmFtZSgiV0tfUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IikpKQorQGludGVyZmFjZSBS
VENDb2RlY1NwZWNpZmljSW5mb0gyNjUgOiBOU09iamVjdCA8UlRDQ29kZWNTcGVjaWZpY0luZm8+
CisKK0Bwcm9wZXJ0eShub25hdG9taWMsIGFzc2lnbikgUlRDSDI2NVBhY2tldGl6YXRpb25Nb2Rl
IHBhY2tldGl6YXRpb25Nb2RlOworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY1Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0YTQ2OTg1ZjcyNzc0ZDQ1ZTMzNDA1MDhj
ZDBhNGMwOGZkMWYxZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NS5tbQpAQCAtMCwwICsxLDI4IEBACisvKgorICogIENvcHlyaWdo
dCAyMDE3IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls
ZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0
aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1
YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBB
VEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3Vu
ZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAq
LworIC8qIFRoaXMgZmlsZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0Lm1tICovCisKKyNpbXBvcnQgIlJUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmgiCisKKy8vIEgyNjUgc3BlY2lmaWMgc2V0dGlu
Z3MuCitAaW1wbGVtZW50YXRpb24gUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1CisKK0BzeW50aGVz
aXplIHBhY2tldGl6YXRpb25Nb2RlID0gX3BhY2tldGl6YXRpb25Nb2RlOworCistICh3ZWJydGM6
OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvIHsKKyAgd2VicnRjOjpD
b2RlY1NwZWNpZmljSW5mbyBjb2RlY1NwZWNpZmljSW5mbzsKKyAgY29kZWNTcGVjaWZpY0luZm8u
Y29kZWNUeXBlID0gd2VicnRjOjprVmlkZW9Db2RlY0gyNjU7CisgIGNvZGVjU3BlY2lmaWNJbmZv
LmNvZGVjU3BlY2lmaWMuSDI2NS5wYWNrZXRpemF0aW9uX21vZGUgPQorICAgICAgKHdlYnJ0Yzo6
SDI2NVBhY2tldGl6YXRpb25Nb2RlKV9wYWNrZXRpemF0aW9uTW9kZTsKKworICByZXR1cm4gY29k
ZWNTcGVjaWZpY0luZm87Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVm
YXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaAppbmRleCBkMTE0NjAzMDBkNTFlZDE2NTVlYjJlNzg5
MTlmMGY0ZGRjYzU5OWI3Li5iODM4YTRiOGFlNjk1MDYxN2UxZWVkZTIyYmM4YzhjNjBmODQ3Nzc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0
b3J5LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9y
eS5oCkBAIC0yMSw2ICsyMSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBSVENfT0JKQ19F
WFBPUlQKIF9fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0Vmlk
ZW9EZWNvZGVyRmFjdG9yeSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZh
Y3RvcnkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4KKy0gKGlkKWluaXRXaXRo
SDI2NTooYm9vbClzdXBwb3J0SDI2NTsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
Lm0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KaW5k
ZXggNDQ0NDVmNGIxMzMyMTY2YTY4N2ZhY2JiNGM1MGE4Nzk1NDliMmM3ZS4uYTQ5NmFlNTQzZTk2
NWUzNGNhNzg3Nzc4MzdmMjIzNTM2M2QxOGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQpAQCAtMTgsOCArMTgsMjMgQEAKICNpZiBk
ZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVv
RGVjb2RlclZQOS5oIgogI2VuZGlmCisjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKKyNp
bXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVy
SDI2NS5oIgorI2VuZGlmCisKK0BpbXBsZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeSB7CisgIGJvb2wgX3N1cHBvcnRIMjY1OworfQogCi1AaW1wbGVtZW50YXRpb24gUlRD
RGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBw
b3J0SDI2NQoreworICBzZWxmID0gW3N1cGVyIGluaXRdOworICBpZiAoc2VsZikgeworICAgICAg
X3N1cHBvcnRIMjY1ID0gc3VwcG9ydEgyNjU7CisgIH0KKyAgcmV0dXJuIHNlbGY7Cit9CiAKIC0g
KE5TQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKilzdXBwb3J0ZWRDb2RlY3MgewogICBOU0Rp
Y3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKmNvbnN0cmFpbmVkSGlnaFBhcmFtcyA9
IEB7CkBAIC00MiwxMyArNTcsMzAgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0Rl
Y29kZXJGYWN0b3J5CiAKICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOEluZm8gPSBbW1JUQ1ZpZGVv
Q29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDhOYW1lXTsKIAor
I2lmICFkZWZpbmVkKFJUQ19ESVNBQkxFX0gyNjUpCisgIFJUQ1ZpZGVvQ29kZWNJbmZvICpoMjY1
SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9D
b2RlY0gyNjVOYW1lXTsKKyNlbmRpZgorIAogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAg
IFJUQ1ZpZGVvQ29kZWNJbmZvICp2cDlJbmZvID0gW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10g
aW5pdFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZV07CiAjZW5kaWYKIAorICBpZiAoIV9z
dXBwb3J0SDI2NSkgeworICAgIHJldHVybiBAWworICAgICAgY29uc3RyYWluZWRIaWdoSW5mbywK
KyAgICAgIGNvbnN0cmFpbmVkQmFzZWxpbmVJbmZvLAorICAgICAgdnA4SW5mbywKKyNpZiBkZWZp
bmVkKFJUQ19FTkFCTEVfVlA5KQorICAgICAgdnA5SW5mbywKKyNlbmRpZgorICAgIF07CisgIH0K
ICAgcmV0dXJuIEBbCiAgICAgY29uc3RyYWluZWRIaWdoSW5mbywKICAgICBjb25zdHJhaW5lZEJh
c2VsaW5lSW5mbywKKyNpZiAhZGVmaW5lZChSVENfRElTQUJMRV9IMjY1KQorICAgIGgyNjVJbmZv
LAorI2VuZGlmCiAgICAgdnA4SW5mbywKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICAg
IHZwOUluZm8sCkBAIC02MSw2ICs5MywxMCBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZp
ZGVvRGVjb2RlckZhY3RvcnkKICAgICByZXR1cm4gW1tSVENWaWRlb0RlY29kZXJIMjY0IGFsbG9j
XSBpbml0XTsKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlk
ZW9Db2RlY1ZwOE5hbWVdKSB7CiAgICAgcmV0dXJuIFtSVENWaWRlb0RlY29kZXJWUDggdnA4RGVj
b2Rlcl07CisjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKKyAgfSBlbHNlIGlmIChbaW5m
by5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY0gyNjVOYW1lXSkgeworICAgIHJl
dHVybiBbW1JUQ1ZpZGVvRGVjb2RlckgyNjUgYWxsb2NdIGluaXRdOworI2VuZGlmCiAjaWYgZGVm
aW5lZChSVENfRU5BQkxFX1ZQOSkKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0
cmluZzprUlRDVmlkZW9Db2RlY1ZwOU5hbWVdKSB7CiAgICAgcmV0dXJuIFtSVENWaWRlb0RlY29k
ZXJWUDkgdnA5RGVjb2Rlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRl
b0VuY29kZXJGYWN0b3J5LmgKaW5kZXggOTMyMzI1NmNlYWRjODM4YzUzYzgwYTcwZmMwZDBiZTI1
NTMzNWZlMy4uYTk5NWRhYWI1NDEwZjAzZGQxYjM3ZjA4OGQzNTE1NTgwNGQ2NzgzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaApAQCAt
MjIsOCArMjIsNyBAQCBSVENfT0JKQ19FWFBPUlQKIF9fYXR0cmlidXRlX18oKG9iamNfcnVudGlt
ZV9uYW1lKCJXS19SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSIpKSkKIEBpbnRlcmZhY2Ug
UlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkgOiBOU09iamVjdCA8UlRDVmlkZW9FbmNvZGVy
RmFjdG9yeT4KIAotQHByb3BlcnR5KG5vbmF0b21pYywgcmV0YWluKSBSVENWaWRlb0NvZGVjSW5m
byAqcHJlZmVycmVkQ29kZWM7Ci0KKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0SDI2
NTsKICsgKE5TQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKilzdXBwb3J0ZWRDb2RlY3M7CiAK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2Rl
ckZhY3RvcnkubSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rv
cnkubQppbmRleCBiNzIyOTZiNjRmMzFiMGVmYjQ1YThiZGRhNjM5YjQ4MmFmYWRiZGEwLi4xNjcx
NmU1ODUxYTMwNDY1OTk4ZTE4NGFmM2Y2MjM0NjhiMDg0OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0KKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCkBAIC0xOCwxMCArMTgsMjMg
QEAKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2NvZGVj
L1JUQ1ZpZGVvRW5jb2RlclZQOS5oIgogI2VuZGlmCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1
KQorI2ltcG9ydCAiUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgiCisjaW1wb3J0ICJSVENWaWRlb0Vu
Y29kZXJIMjY1LmgiCisjZW5kaWYKIAotQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0Vu
Y29kZXJGYWN0b3J5CitAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rv
cnkgeworICBib29sIF9zdXBwb3J0SDI2NTsKK30KIAotQHN5bnRoZXNpemUgcHJlZmVycmVkQ29k
ZWM7CistIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydEgyNjUKK3sKKyAgc2VsZiA9IFtz
dXBlciBpbml0XTsKKyAgaWYgKHNlbGYpIHsKKyAgICAgIF9zdXBwb3J0SDI2NSA9IHN1cHBvcnRI
MjY1OworICB9CisgIHJldHVybiBzZWxmOworfQogCiArIChOU0FycmF5PFJUQ1ZpZGVvQ29kZWNJ
bmZvICo+ICopc3VwcG9ydGVkQ29kZWNzIHsKICAgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5T
U3RyaW5nICo+ICpjb25zdHJhaW5lZEhpZ2hQYXJhbXMgPSBAewpAQCAtNDIsNiArNTUsMTAgQEAg
QGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CiAgICAgICBbW1JU
Q1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNIMjY0TmFt
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOmNvbnN0cmFp
bmVkQmFzZWxpbmVQYXJhbXNdOwogCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQorICBSVENW
aWRlb0NvZGVjSW5mbyAqaDI2NUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0
V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV07CisjZW5kaWYKKwogICBSVENWaWRlb0Nv
ZGVjSW5mbyAqdnA4SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFt
ZTprUlRDVmlkZW9Db2RlY1ZwOE5hbWVdOwogCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkK
QEAgLTQ5LDYgKzY2LDkgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJG
YWN0b3J5CiAjZW5kaWYKIAogICByZXR1cm4gQFsKKyNpZiAhZGVmaW5lZChESVNBQkxFX0gyNjUp
CisgICAgaDI2NUluZm8sCisjZW5kaWYKICAgICBjb25zdHJhaW5lZEhpZ2hJbmZvLAogICAgIGNv
bnN0cmFpbmVkQmFzZWxpbmVJbmZvLAogICAgIHZwOEluZm8sCkBAIC02Niw2ICs4NiwxMiBAQCBA
aW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICNpZiBkZWZpbmVk
KFJUQ19FTkFCTEVfVlA5KQogICB9IGVsc2UgaWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5n
OmtSVENWaWRlb0NvZGVjVnA5TmFtZV0pIHsKICAgICByZXR1cm4gW1JUQ1ZpZGVvRW5jb2RlclZQ
OSB2cDlFbmNvZGVyXTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKERJU0FCTEVfSDI2NSkKKyAgfSBl
bHNlIGlmIChAYXZhaWxhYmxlKGlPUyAxMSwgKikpIHsKKyAgICBpZiAoW2luZm8ubmFtZSBpc0Vx
dWFsVG9TdHJpbmc6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV0pIHsKKyAgICAgIHJldHVybiBbW1JU
Q1ZpZGVvRW5jb2RlckgyNjUgYWxsb2NdIGluaXRXaXRoQ29kZWNJbmZvOmluZm9dOworICAgIH0K
ICNlbmRpZgogICB9CiAKQEAgLTc2LDEyICsxMDIsOSBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVm
YXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICAgTlNNdXRhYmxlQXJyYXk8UlRDVmlkZW9Db2RlY0lu
Zm8gKj4gKmNvZGVjcyA9IFtbW3NlbGYgY2xhc3NdIHN1cHBvcnRlZENvZGVjc10gbXV0YWJsZUNv
cHldOwogCiAgIE5TTXV0YWJsZUFycmF5PFJUQ1ZpZGVvQ29kZWNJbmZvICo+ICpvcmRlcmVkQ29k
ZWNzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKLSAgTlNVSW50ZWdlciBpbmRleCA9IFtjb2Rl
Y3MgaW5kZXhPZk9iamVjdDpzZWxmLnByZWZlcnJlZENvZGVjXTsKLSAgaWYgKGluZGV4ICE9IE5T
Tm90Rm91bmQpIHsKLSAgICBbb3JkZXJlZENvZGVjcyBhZGRPYmplY3Q6W2NvZGVjcyBvYmplY3RB
dEluZGV4OmluZGV4XV07Ci0gICAgW2NvZGVjcyByZW1vdmVPYmplY3RBdEluZGV4OmluZGV4XTsK
LSAgfQogICBbb3JkZXJlZENvZGVjcyBhZGRPYmplY3RzRnJvbUFycmF5OmNvZGVjc107CisgIGlm
ICghX3N1cHBvcnRIMjY1KQorICAgIFtvcmRlcmVkQ29kZWNzIHJlbW92ZU9iamVjdEF0SW5kZXg6
MF07CiAKICAgcmV0dXJuIFtvcmRlcmVkQ29kZWNzIGNvcHldOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDSDI2NVByb2ZpbGVMZXZlbElkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUzNDg2ZDA2ZDQxMjdlOTc4Mzky
OWZlNDBiZWRiMzNhNWM2N2IyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDSDI2NVByb2ZpbGVMZXZlbElkLmgKQEAgLTAsMCArMSwxNiBAQAorLyoKKyAqICBDb3B5cmln
aHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5
bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4g
dGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0
dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQ
QVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91
bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisg
Ki8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01h
Y3Jvcy5oIgorCitSVENfT0JKQ19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICpjb25zdCBrUlRDVmlk
ZW9Db2RlY0gyNjVOYW1lOworUlRDX09CSkNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqY29uc3Qg
a1JUQ0xldmVsMzFNYWluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJv
ZmlsZUxldmVsSWQubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYWQ0NGUyYTU5MzMyZjc2ZjliYjg1NTE2NDZkY2Q3MzJiOTA1MzI2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQu
bW0KQEAgLTAsMCArMSwxOCBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxOCBUaGUgV2ViUlRDIHBy
b2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQg
Y2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJj
ZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBn
cmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1
dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmls
ZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgorICovCisKKyNpbXBvcnQgIlJU
Q0gyNjVQcm9maWxlTGV2ZWxJZC5oIgorCisjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9jb25z
dGFudHMuaCIKKworTlNTdHJpbmcgKmNvbnN0IGtSVENWaWRlb0NvZGVjSDI2NU5hbWUgPSBAIkgy
NjUiOworLy8gVE9ETyhqaWFuanVueik6IFRoaXMgaXMgdmFsdWUgaXMgbm90IGNvcnJlY3QuCitO
U1N0cmluZyAqY29uc3Qga1JUQ0xldmVsMzFNYWluID0gQCI0ZDAwMWYiOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1LmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ1ZpZGVvRGVjb2RlckgyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzliMzgyODljMmYxOWJjYWQyZjA0
NGEwMDg5NjlhOTUwZTI3ZTAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENWaWRlb0RlY29kZXJIMjY1LmgKQEAgLTAsMCArMSwxOSBAQAorLyoKKyAqICBDb3B5cmlnaHQg
MjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
bGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFs
IHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRF
TlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQg
aW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8K
KworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jv
cy5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyLmgiCisKK1JUQ19PQkpDX0VYUE9SVAorX19h
dHRyaWJ1dGVfXygob2JqY19ydW50aW1lX25hbWUoIldLX1JUQ1ZpZGVvRGVjb2RlckgyNjUiKSkp
CitAaW50ZXJmYWNlIFJUQ1ZpZGVvRGVjb2RlckgyNjUgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNv
ZGVyPgorQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJI
MjY1Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ3NDlhN2I2NmY4M2M1NTIyNmU5M2U5MzA0MzU4NzRhMDczMjU4YTcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2Jq
Yy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUubW0KQEAgLTAsMCAr
MSwyNzcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBh
dXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUg
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAg
dHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNh
biBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHBy
b2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRo
ZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9E
ZWNvZGVySDI2NS5oIgorCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisK
KyNpbXBvcnQgImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0Zy
YW1lQnVmZmVyLmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVEND
VlBpeGVsQnVmZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgiCisjaW1wb3J0ICJoZWxwZXJzL3Nj
b3BlZF9jZnR5cGVyZWYuaCIKKworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyNpbXBvcnQgImhl
bHBlcnMvVUlEZXZpY2UrUlRDRGV2aWNlLmgiCisjZW5kaWYKKworI2luY2x1ZGUgIm1vZHVsZXMv
dmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJydGNf
YmFzZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAi
cnRjX2Jhc2UvdGltZV91dGlscy5oIgorI2luY2x1ZGUgInNkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oIgorCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRo
ZSBkZWNvZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGlu
IHRoZSBkZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyB7
CisgIFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyhSVENWaWRlb0RlY29kZXJDYWxsYmFjayBjYiwg
aW50NjRfdCB0cykKKyAgICAgIDogY2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJU
Q1ZpZGVvRGVjb2RlckNhbGxiYWNrIGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307
CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNh
bGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgaDI2NURlY29tcHJlc3Npb25P
dXRwdXRDYWxsYmFjayh2b2lkKiBkZWNvZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZvaWQqIHBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBPU1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDTVRpbWUgZHVyYXRpb24pIHsKKyAgc3RkOjp1bmlxdWVf
cHRyPFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcz4gZGVjb2RlUGFyYW1zKAorICAgICAgcmVpbnRl
cnByZXRfY2FzdDxSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMqPihwYXJhbXMpKTsKKyAgaWYgKHN0
YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZGVj
b2RlIGZyYW1lLiBTdGF0dXM6ICIgPDwgc3RhdHVzOworICAgIHJldHVybjsKKyAgfQorICAvLyBU
T0RPKHRrY2hpbik6IEhhbmRsZSBDVk8gcHJvcGVybHkuCisgIFJUQ0NWUGl4ZWxCdWZmZXIqIGZy
YW1lQnVmZmVyID0KKyAgICAgIFtbUlRDQ1ZQaXhlbEJ1ZmZlciBhbGxvY10gaW5pdFdpdGhQaXhl
bEJ1ZmZlcjppbWFnZUJ1ZmZlcl07CisgIFJUQ1ZpZGVvRnJhbWUqIGRlY29kZWRGcmFtZSA9IFtb
UlRDVmlkZW9GcmFtZSBhbGxvY10KKyAgICAgIGluaXRXaXRoQnVmZmVyOmZyYW1lQnVmZmVyCisg
ICAgICAgICAgICByb3RhdGlvbjpSVENWaWRlb1JvdGF0aW9uXzAKKyAgICAgICAgIHRpbWVTdGFt
cE5zOkNNVGltZUdldFNlY29uZHModGltZXN0YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2Vj
XTsKKyAgZGVjb2RlZEZyYW1lLnRpbWVTdGFtcCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOwor
ICBkZWNvZGVQYXJhbXMtPmNhbGxiYWNrKGRlY29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIu
CitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9EZWNvZGVySDI2NSB7CisgIENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBfdmlkZW9Gb3JtYXQ7CisgIFZURGVjb21wcmVzc2lvblNlc3Npb25SZWYg
X2RlY29tcHJlc3Npb25TZXNzaW9uOworICBSVENWaWRlb0RlY29kZXJDYWxsYmFjayBfY2FsbGJh
Y2s7CisgIE9TU3RhdHVzIF9lcnJvcjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXQgeworICBp
ZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICB9CisKKyAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpZGVhbGxvYyB7CisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07Cisg
IFtzZWxmIHNldFZpZGVvRm9ybWF0Om51bGxwdHJdOworfQorCistIChOU0ludGVnZXIpc3RhcnRE
ZWNvZGVXaXRoTnVtYmVyT2ZDb3JlczooaW50KW51bWJlck9mQ29yZXMgeworICByZXR1cm4gV0VC
UlRDX1ZJREVPX0NPREVDX09LOworfQorCistIChOU0ludGVnZXIpZGVjb2RlOihSVENFbmNvZGVk
SW1hZ2UqKWlucHV0SW1hZ2UKKyAgICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3NpbmdG
cmFtZXMKKyAgICAgIGNvZGVjU3BlY2lmaWNJbmZvOihfX251bGxhYmxlIGlkPFJUQ0NvZGVjU3Bl
Y2lmaWNJbmZvPilpbmZvCisgICAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJU
aW1lTXMgeworICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKworICBpZiAoX2Vycm9y
ICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiTGFzdCBmcmFtZSBkZWNv
ZGUgZmFpbGVkLiI7CisgICAgX2Vycm9yID0gbm9FcnI7CisgICAgcmV0dXJuIFdFQlJUQ19WSURF
T19DT0RFQ19FUlJPUjsKKyAgfQorCisgIHJ0Yzo6U2NvcGVkQ0ZUeXBlUmVmPENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZj4gaW5wdXRGb3JtYXQgPQorICAgICAgcnRjOjpTY29wZWRDRih3ZWJy
dGM6OkNyZWF0ZUgyNjVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKAorICAgICAgICAgICh1aW50OF90
KilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcywgaW5wdXRJbWFnZS5idWZmZXIubGVuZ3RoKSk7Cisg
IGlmIChpbnB1dEZvcm1hdCkgeworICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPQor
ICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGlucHV0Rm9ybWF0
LmdldCgpKTsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJSZXNvbHV0aW9uOiAiIDw8IGRpbWVu
c2lvbnMud2lkdGggPDwgIiB4ICIKKyAgICAgICAgICAgICAgICAgICAgIDw8IGRpbWVuc2lvbnMu
aGVpZ2h0OworICAgIC8vIENoZWNrIGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGNoYW5nZWQsIGFu
ZCByZWluaXRpYWxpemUgZGVjb2RlciBpZgorICAgIC8vIG5lZWRlZC4KKyAgICBpZiAoIUNNRm9y
bWF0RGVzY3JpcHRpb25FcXVhbChpbnB1dEZvcm1hdC5nZXQoKSwgX3ZpZGVvRm9ybWF0KSkgewor
ICAgICAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRGb3JtYXQuZ2V0KCldOworICAgICAgaW50
IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciA9IFtzZWxmIHJlc2V0RGVjb21wcmVzc2lv
blNlc3Npb25dOworICAgICAgaWYgKHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciAhPSBX
RUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICAgICAgcmV0dXJuIHJlc2V0RGVjb21wcmVzc2lv
blNlc3Npb25FcnJvcjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKCFfdmlkZW9Gb3JtYXQp
IHsKKyAgICAvLyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1dCB3ZSBkb24ndCBoYXZlIGZvcm1hdCBp
bmZvcm1hdGlvbiBzbyB3ZSBjYW4ndAorICAgIC8vIGRlY29kZSBpdC4KKyAgICAvLyBUaGlzIGNh
biBoYXBwZW4gYWZ0ZXIgYmFja2dyb3VuZGluZy4gV2UgbmVlZCB0byB3YWl0IGZvciB0aGUgbmV4
dAorICAgIC8vIHNwcy9wcHMgYmVmb3JlIHdlIGNhbiByZXN1bWUgc28gd2UgcmVxdWVzdCBhIGtl
eWZyYW1lIGJ5IHJldHVybmluZyBhbgorICAgIC8vIGVycm9yLgorICAgIFJUQ19MT0coTFNfV0FS
TklORykgPDwgIk1pc3NpbmcgdmlkZW8gZm9ybWF0LiBGcmFtZSB3aXRoIHNwcy9wcHMgcmVxdWly
ZWQuIjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7CisgIGlmICghd2VicnRjOjpIMjY1
QW5uZXhCQnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcigKKyAgICAgICAgICAodWludDhfdCopaW5wdXRJ
bWFnZS5idWZmZXIuYnl0ZXMsIGlucHV0SW1hZ2UuYnVmZmVyLmxlbmd0aCwKKyAgICAgICAgICBf
dmlkZW9Gb3JtYXQsICZzYW1wbGVCdWZmZXIpKSB7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19D
T0RFQ19FUlJPUjsKKyAgfQorICBSVENfRENIRUNLKHNhbXBsZUJ1ZmZlcik7CisgIFZURGVjb2Rl
RnJhbWVGbGFncyBkZWNvZGVGbGFncyA9CisgICAgICBrVlREZWNvZGVGcmFtZV9FbmFibGVBc3lu
Y2hyb25vdXNEZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDSDI2NUZyYW1lRGVj
b2RlUGFyYW1zPiBmcmFtZURlY29kZVBhcmFtczsKKyAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQo
CisgICAgICBuZXcgUlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgaW5wdXRJbWFn
ZS50aW1lU3RhbXApKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lv
bkRlY29kZUZyYW1lKAorICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIs
IGRlY29kZUZsYWdzLAorICAgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRy
KTsKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgIC8vIFJlLWluaXRpYWxpemUgdGhlIGRlY29k
ZXIgaWYgd2UgaGF2ZSBhbiBpbnZhbGlkIHNlc3Npb24gd2hpbGUgdGhlIGFwcCBpcworICAvLyBh
Y3RpdmUgYW5kIHJldHJ5IHRoZSBkZWNvZGUgcmVxdWVzdC4KKyAgaWYgKHN0YXR1cyA9PSBrVlRJ
bnZhbGlkU2Vzc2lvbkVyciAmJgorICAgICAgW3NlbGYgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lv
bl0gPT0gV0VCUlRDX1ZJREVPX0NPREVDX09LKSB7CisgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVz
ZXQoCisgICAgICAgIG5ldyBSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCBpbnB1
dEltYWdlLnRpbWVTdGFtcCkpOworICAgIHN0YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25E
ZWNvZGVGcmFtZSgKKyAgICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIs
IGRlY29kZUZsYWdzLAorICAgICAgICBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxw
dHIpOworICB9CisjZW5kaWYKKyAgQ0ZSZWxlYXNlKHNhbXBsZUJ1ZmZlcik7CisgIGlmIChzdGF0
dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGRlY29k
ZSBmcmFtZSB3aXRoIGNvZGU6ICIgPDwgc3RhdHVzOworICAgIHJldHVybiBXRUJSVENfVklERU9f
Q09ERUNfRVJST1I7CisgIH0KKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKwor
LSAodm9pZClzZXRDYWxsYmFjazooUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2spY2FsbGJhY2sgewor
ICBfY2FsbGJhY2sgPSBjYWxsYmFjazsKK30KKworLSAoTlNJbnRlZ2VyKXJlbGVhc2VEZWNvZGVy
IHsKKyAgLy8gTmVlZCB0byBpbnZhbGlkYXRlIHRoZSBzZXNzaW9uIHNvIHRoYXQgY2FsbGJhY2tz
IG5vIGxvbmdlciBvY2N1ciBhbmQgaXQKKyAgLy8gaXMgc2FmZSB0byBudWxsIG91dCB0aGUgY2Fs
bGJhY2suCisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgIFtzZWxmIHNl
dFZpZGVvRm9ybWF0Om51bGxwdHJdOworICBfY2FsbGJhY2sgPSBudWxscHRyOworICByZXR1cm4g
V0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCisjcHJhZ21hIG1hcmsgLSBQcml2YXRlCisKKy0g
KGludClyZXNldERlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAgW3NlbGYgZGVzdHJveURlY29tcHJl
c3Npb25TZXNzaW9uXTsKKworICAvLyBOZWVkIHRvIHdhaXQgZm9yIHRoZSBmaXJzdCBTUFMgdG8g
aW5pdGlhbGl6ZSBkZWNvZGVyLgorICBpZiAoIV92aWRlb0Zvcm1hdCkgeworICAgIHJldHVybiBX
RUJSVENfVklERU9fQ09ERUNfT0s7CisgIH0KKworICAvLyBTZXQga2V5cyBmb3IgT3BlbkdMIGFu
ZCBJT1N1cmZhY2UgY29tcGF0aWJpbHR5LCB3aGljaCBtYWtlcyB0aGUgZW5jb2RlcgorICAvLyBj
cmVhdGUgcGl4ZWwgYnVmZmVycyB3aXRoIEdQVSBiYWNrZWQgbWVtb3J5LiBUaGUgaW50ZW50IGhl
cmUgaXMgdG8gcGFzcworICAvLyB0aGUgcGl4ZWwgYnVmZmVycyBkaXJlY3RseSBzbyB3ZSBhdm9p
ZCBhIHRleHR1cmUgdXBsb2FkIGxhdGVyIGR1cmluZworICAvLyByZW5kZXJpbmcuIFRoaXMgY3Vy
cmVudGx5IGlzIG1vb3QgYmVjYXVzZSB3ZSBhcmUgY29udmVydGluZyBiYWNrIHRvIGFuCisgIC8v
IEk0MjAgZnJhbWUgYWZ0ZXIgZGVjb2RlLCBidXQgZXZlbnR1YWxseSB3ZSB3aWxsIGJlIGFibGUg
dG8gcGx1bWIKKyAgLy8gQ1ZQaXhlbEJ1ZmZlcnMgZGlyZWN0bHkgdG8gdGhlIHJlbmRlcmVyLgor
ICAvLyBUT0RPKHRrY2hpbik6IE1heWJlIG9ubHkgc2V0IE9wZW5HTC9JT1N1cmZhY2Uga2V5cyBp
ZiB3ZSBrbm93IHRoYXQgdGhhdAorICAvLyB3ZSBjYW4gcGFzcyBDVlBpeGVsQnVmZmVycyBhcyBu
YXRpdmUgaGFuZGxlcyBpbiBkZWNvZGVyIG91dHB1dC4KKyAgc3RhdGljIHNpemVfdCBjb25zdCBh
dHRyaWJ1dGVzU2l6ZSA9IDM7CisgIENGVHlwZVJlZiBrZXlzW2F0dHJpYnV0ZXNTaXplXSA9IHsK
KyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgICAga0NWUGl4ZWxCdWZmZXJPcGVuR0xFU0NvbXBh
dGliaWxpdHlLZXksCisjZWxpZiBkZWZpbmVkKFdFQlJUQ19NQUMpCisgICAga0NWUGl4ZWxCdWZm
ZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5LAorI2VuZGlmCisgICAga0NWUGl4ZWxCdWZmZXJJT1N1
cmZhY2VQcm9wZXJ0aWVzS2V5LAorICAgIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5
CisgIH07CisgIENGRGljdGlvbmFyeVJlZiBpb1N1cmZhY2VWYWx1ZSA9IENyZWF0ZUNGVHlwZURp
Y3Rpb25hcnkobnVsbHB0ciwgbnVsbHB0ciwgMCk7CisgIGludDY0X3QgbnYxMnR5cGUgPSBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlOworICBDRk51bWJlclJl
ZiBwaXhlbEZvcm1hdCA9CisgICAgICBDRk51bWJlckNyZWF0ZShudWxscHRyLCBrQ0ZOdW1iZXJM
b25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZhbHVlc1thdHRyaWJ1dGVzU2l6ZV0g
PSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwaXhlbEZvcm1hdH07CisgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1
dGVzID0KKyAgICAgIENyZWF0ZUNGVHlwZURpY3Rpb25hcnkoa2V5cywgdmFsdWVzLCBhdHRyaWJ1
dGVzU2l6ZSk7CisgIGlmIChpb1N1cmZhY2VWYWx1ZSkgeworICAgIENGUmVsZWFzZShpb1N1cmZh
Y2VWYWx1ZSk7CisgICAgaW9TdXJmYWNlVmFsdWUgPSBudWxscHRyOworICB9CisgIGlmIChwaXhl
bEZvcm1hdCkgeworICAgIENGUmVsZWFzZShwaXhlbEZvcm1hdCk7CisgICAgcGl4ZWxGb3JtYXQg
PSBudWxscHRyOworICB9CisgIFZURGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrUmVjb3JkIHJl
Y29yZCA9IHsKKyAgICAgIGgyNjVEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2ssCisgICAgICBu
dWxscHRyLAorICB9OworICBPU1N0YXR1cyBzdGF0dXMgPQorICAgICAgVlREZWNvbXByZXNzaW9u
U2Vzc2lvbkNyZWF0ZShudWxscHRyLCBfdmlkZW9Gb3JtYXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZWNvcmQsICZfZGVjb21wcmVz
c2lvblNlc3Npb24pOworICBDRlJlbGVhc2UoYXR0cmlidXRlcyk7CisgIGlmIChzdGF0dXMgIT0g
bm9FcnIpIHsKKyAgICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICAgIHJl
dHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyAgW3NlbGYgY29uZmlndXJlRGVj
b21wcmVzc2lvblNlc3Npb25dOworCisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9
CisKKy0gKHZvaWQpY29uZmlndXJlRGVjb21wcmVzc2lvblNlc3Npb24geworICBSVENfRENIRUNL
KF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAvLyBW
VFNlc3Npb25TZXRQcm9wZXJ0eShfZGVjb21wcmVzc2lvblNlc3Npb24sCisgIC8vIGtWVERlY29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworI2VuZGlmCit9
CisKKy0gKHZvaWQpZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAgaWYgKF9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbikgeworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBpZiAoW1VJRGV2
aWNlIGlzSU9TMTFPckxhdGVyXSkgeworICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRG
b3JBc3luY2hyb25vdXNGcmFtZXMoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICB9CisjZW5k
aWYKKyAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShfZGVjb21wcmVzc2lvblNl
c3Npb24pOworICAgIENGUmVsZWFzZShfZGVjb21wcmVzc2lvblNlc3Npb24pOworICAgIF9kZWNv
bXByZXNzaW9uU2Vzc2lvbiA9IG51bGxwdHI7CisgIH0KK30KKworLSAodm9pZClzZXRWaWRlb0Zv
cm1hdDooQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKXZpZGVvRm9ybWF0IHsKKyAgaWYgKF92
aWRlb0Zvcm1hdCA9PSB2aWRlb0Zvcm1hdCkgeworICAgIHJldHVybjsKKyAgfQorICBpZiAoX3Zp
ZGVvRm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNlKF92aWRlb0Zvcm1hdCk7CisgIH0KKyAgX3ZpZGVv
Rm9ybWF0ID0gdmlkZW9Gb3JtYXQ7CisgIGlmIChfdmlkZW9Gb3JtYXQpIHsKKyAgICBDRlJldGFp
bihfdmlkZW9Gb3JtYXQpOworICB9Cit9CisKKy0gKE5TU3RyaW5nKilpbXBsZW1lbnRhdGlvbk5h
bWUgeworICByZXR1cm4gQCJWaWRlb1Rvb2xib3giOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDVmlkZW9FbmNvZGVySDI2NS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNmE3NGFmZDgyOWQ4NzNhOTE4MTdk
YmE5NmViNWNiNzMwNDY5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q1ZpZGVvRW5jb2RlckgyNjUuaApAQCAtMCwwICsxLDIzIEBACisvKgorICogIENvcHlyaWdodCAy
MDE3IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs
aWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUg
cm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwg
cHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVO
VFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBp
biB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLwor
CisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9z
LmgiCisjaW1wb3J0ICJSVENWaWRlb0NvZGVjSW5mby5oIgorI2ltcG9ydCAiUlRDVmlkZW9FbmNv
ZGVyLmgiCisKK1JUQ19PQkpDX0VYUE9SVAorX19hdHRyaWJ1dGVfXygob2JqY19ydW50aW1lX25h
bWUoIldLX1JUQ1ZpZGVvRW5jb2RlckgyNjUiKSkpCitAaW50ZXJmYWNlIFJUQ1ZpZGVvRW5jb2Rl
ckgyNjUgOiBOU09iamVjdCA8UlRDVmlkZW9FbmNvZGVyPgorCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhDb2RlY0luZm86KFJUQ1ZpZGVvQ29kZWNJbmZvICopY29kZWNJbmZvOworCitAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUubW0gYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzNjMwZDdk
Y2E5NjhkOTVhYTY3NDhkNGFjZjJmZDJmYTlmM2M2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5tbQpAQCAtMCwwICsxLDYwOCBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUg
TElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRp
dGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisg
KiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3Jz
IG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhl
IHNvdXJjZSB0cmVlLgorICoKKyAqLworCisjaW1wb3J0ICJSVENWaWRlb0VuY29kZXJIMjY1Lmgi
CisKKyNpbXBvcnQgPFZpZGVvVG9vbGJveC9WaWRlb1Rvb2xib3guaD4KKyNpbmNsdWRlIDx2ZWN0
b3I+CisKKyNpbXBvcnQgIlJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oIgorI2ltcG9ydCAiYXBp
L3BlZXJjb25uZWN0aW9uL1JUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIrUHJpdmF0ZS5oIgorI2lt
cG9ydCAiYXBpL3BlZXJjb25uZWN0aW9uL1JUQ1ZpZGVvQ29kZWNJbmZvK1ByaXZhdGUuaCIKKyNp
bXBvcnQgImJhc2UvUlRDSTQyMEJ1ZmZlci5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1l
LmgiCisjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRnJhbWVCdWZmZXIuaCIKKyNpbXBvcnQgImNvbXBv
bmVudHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIuaCIKKyNpbXBvcnQgImhl
bHBlcnMuaCIKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisjaW1wb3J0ICJoZWxwZXJzL1VJRGV2
aWNlK1JUQ0RldmljZS5oIgorI2VuZGlmCisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NC9w
cm9maWxlX2xldmVsX2lkLmgiCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2luY2x1ZGUvYml0cmF0
ZV9hZGp1c3Rlci5oIgorI2luY2x1ZGUgImxpYnl1di9jb252ZXJ0X2Zyb20uaCIKKyNpbmNsdWRl
ICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJy
dGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVk
ZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorI2luY2x1ZGUgInNkay9vYmpjL0ZyYW1ld29yay9D
bGFzc2VzL1ZpZGVvVG9vbGJveC9uYWx1X3Jld3JpdGVyLmgiCisjaW5jbHVkZSAic3lzdGVtX3dy
YXBwZXJzL2luY2x1ZGUvY2xvY2suaCIKKworQGludGVyZmFjZSBSVENWaWRlb0VuY29kZXJIMjY1
ICgpCisKKy0gKHZvaWQpZnJhbWVXYXNFbmNvZGVkOihPU1N0YXR1cylzdGF0dXMKKyAgICAgICAg
ICAgICAgICAgIGZsYWdzOihWVEVuY29kZUluZm9GbGFncylpbmZvRmxhZ3MKKyAgICAgICAgICAg
c2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKKyAgICAgICAgICAg
ICAgICAgIHdpZHRoOihpbnQzMl90KXdpZHRoCisgICAgICAgICAgICAgICAgIGhlaWdodDooaW50
MzJfdCloZWlnaHQKKyAgICAgICAgICAgcmVuZGVyVGltZU1zOihpbnQ2NF90KXJlbmRlclRpbWVN
cworICAgICAgICAgICAgICB0aW1lc3RhbXA6KHVpbnQzMl90KXRpbWVzdGFtcAorICAgICAgICAg
ICAgICAgcm90YXRpb246KFJUQ1ZpZGVvUm90YXRpb24pcm90YXRpb247CisKK0BlbmQKKworbmFt
ZXNwYWNlIHsgIC8vIGFub255bW91cyBuYW1lc3BhY2UKKworLy8gVGhlIHJhdGlvIGJldHdlZW4g
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9EYXRhUmF0ZUxpbWl0cyBhbmQKKy8vIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUuIFRoZSBkYXRhIHJhdGUgbGltaXQgaXMg
c2V0IGhpZ2hlcgorLy8gdGhhbiB0aGUgYXZlcmFnZSBiaXQgcmF0ZSB0byBhdm9pZCB1bmRlcnNo
b290aW5nIHRoZSB0YXJnZXQuCitjb25zdCBmbG9hdCBrTGltaXRUb0F2ZXJhZ2VCaXRSYXRlRmFj
dG9yID0gMS41ZjsKKy8vIFRoZXNlIHRocmVzaG9sZHMgZGV2aWF0ZSBmcm9tIHRoZSBkZWZhdWx0
IGgyNjUgUVAgdGhyZXNob2xkcywgYXMgdGhleQorLy8gaGF2ZSBiZWVuIGZvdW5kIHRvIHdvcmsg
YmV0dGVyIG9uIGRldmljZXMgdGhhdCBzdXBwb3J0IFZpZGVvVG9vbGJveAorY29uc3QgaW50IGtM
b3doMjY1UXBUaHJlc2hvbGQgPSAyODsKK2NvbnN0IGludCBrSGlnaGgyNjVRcFRocmVzaG9sZCA9
IDM5OworCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRoZSBlbmNvZGVyIHBlciBmcmFtZSB0
byBlbmNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGluIHRoZSBlbmNvZGVyIGNhbGxiYWNr
Lgorc3RydWN0IEFQSV9BVkFJTEFCTEUoaW9zKDExLjApKSBSVENGcmFtZUVuY29kZVBhcmFtcyB7
CisgIFJUQ0ZyYW1lRW5jb2RlUGFyYW1zKFJUQ1ZpZGVvRW5jb2RlckgyNjUqIGUsCisgICAgICAg
ICAgICAgICAgICAgICAgIGludDMyX3QgdywKKyAgICAgICAgICAgICAgICAgICAgICAgaW50MzJf
dCBoLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHJ0bXMsCisgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90IHRzLAorICAgICAgICAgICAgICAgICAgICAgICBSVENWaWRlb1Jv
dGF0aW9uIHIpCisgICAgICA6IGVuY29kZXIoZSksCisgICAgICAgIHdpZHRoKHcpLAorICAgICAg
ICBoZWlnaHQoaCksCisgICAgICAgIHJlbmRlcl90aW1lX21zKHJ0bXMpLAorICAgICAgICB0aW1l
c3RhbXAodHMpLAorICAgICAgICByb3RhdGlvbihyKSB7fQorCisgIFJUQ1ZpZGVvRW5jb2Rlckgy
NjUqIGVuY29kZXI7CisgIGludDMyX3Qgd2lkdGg7CisgIGludDMyX3QgaGVpZ2h0OworICBpbnQ2
NF90IHJlbmRlcl90aW1lX21zOworICB1aW50MzJfdCB0aW1lc3RhbXA7CisgIFJUQ1ZpZGVvUm90
YXRpb24gcm90YXRpb247Cit9OworCisvLyBXZSByZWNlaXZlIEk0MjBGcmFtZXMgYXMgaW5wdXQs
IGJ1dCB3ZSBuZWVkIHRvIGZlZWQgQ1ZQaXhlbEJ1ZmZlcnMgaW50byB0aGUKKy8vIGVuY29kZXIu
IFRoaXMgcGVyZm9ybXMgdGhlIGNvcHkgYW5kIGZvcm1hdCBjb252ZXJzaW9uLgorLy8gVE9ETyh0
a2NoaW4pOiBTZWUgaWYgZW5jb2RlciB3aWxsIGFjY2VwdCBpNDIwIGZyYW1lcyBhbmQgY29tcGFy
ZSBwZXJmb3JtYW5jZS4KK2Jvb2wgQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKGlkPFJUQ0k0
MjBCdWZmZXI+IGZyYW1lQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcikgeworICBSVENfRENIRUNLKHBpeGVsQnVmZmVy
KTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVs
QnVmZmVyKSwKKyAgICAgICAgICAgICAgICBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJp
UGxhbmFyRnVsbFJhbmdlKTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0
T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCksCisgICAgICAgICAgICAgICAgZnJhbWVCdWZmZXIuaGVp
Z2h0KTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVsQnVmZmVyR2V0V2lkdGhPZlBsYW5lKHBpeGVs
QnVmZmVyLCAwKSwKKyAgICAgICAgICAgICAgICBmcmFtZUJ1ZmZlci53aWR0aCk7CisKKyAgQ1ZS
ZXR1cm4gY3ZSZXQgPSBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCAw
KTsKKyAgaWYgKGN2UmV0ICE9IGtDVlJldHVyblN1Y2Nlc3MpIHsKKyAgICBSVENfTE9HKExTX0VS
Uk9SKSA8PCAiRmFpbGVkIHRvIGxvY2sgYmFzZSBhZGRyZXNzOiAiIDw8IGN2UmV0OworICAgIHJl
dHVybiBmYWxzZTsKKyAgfQorCisgIHVpbnQ4X3QqIGRzdFkgPSByZWludGVycHJldF9jYXN0PHVp
bnQ4X3QqPigKKyAgICAgIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzc09mUGxhbmUocGl4ZWxC
dWZmZXIsIDApKTsKKyAgaW50IGRzdFN0cmlkZVkgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJS
b3dPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKTsKKyAgdWludDhfdCogZHN0VVYgPSByZWludGVycHJl
dF9jYXN0PHVpbnQ4X3QqPigKKyAgICAgIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzc09mUGxh
bmUocGl4ZWxCdWZmZXIsIDEpKTsKKyAgaW50IGRzdFN0cmlkZVVWID0gQ1ZQaXhlbEJ1ZmZlckdl
dEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSk7CisgIC8vIENvbnZlcnQgSTQyMCB0
byBOVjEyLgorICBpbnQgcmV0ID0gbGlieXV2OjpJNDIwVG9OVjEyKAorICAgICAgZnJhbWVCdWZm
ZXIuZGF0YVksIGZyYW1lQnVmZmVyLnN0cmlkZVksIGZyYW1lQnVmZmVyLmRhdGFVLAorICAgICAg
ZnJhbWVCdWZmZXIuc3RyaWRlVSwgZnJhbWVCdWZmZXIuZGF0YVYsIGZyYW1lQnVmZmVyLnN0cmlk
ZVYsIGRzdFksCisgICAgICBkc3RTdHJpZGVZLCBkc3RVViwgZHN0U3RyaWRlVVYsIGZyYW1lQnVm
ZmVyLndpZHRoLCBmcmFtZUJ1ZmZlci5oZWlnaHQpOworICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFz
ZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOworICBpZiAocmV0KSB7CisgICAgUlRDX0xPRyhMU19F
UlJPUikgPDwgIkVycm9yIGNvbnZlcnRpbmcgSTQyMCBWaWRlb0ZyYW1lIHRvIE5WMTIgOiIgPDwg
cmV0OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworQ1ZQaXhl
bEJ1ZmZlclJlZiBDcmVhdGVQaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbF9i
dWZmZXJfcG9vbCkgeworICBpZiAoIXBpeGVsX2J1ZmZlcl9wb29sKSB7CisgICAgUlRDX0xPRyhM
U19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgcGl4ZWwgYnVmZmVyIHBvb2wuIjsKKyAgICByZXR1
cm4gbnVsbHB0cjsKKyAgfQorICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsX2J1ZmZlcjsKKyAgQ1ZS
ZXR1cm4gcmV0ID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZlcihudWxscHRyLCBw
aXhlbF9idWZmZXJfcG9vbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmcGl4ZWxfYnVmZmVyKTsKKyAgaWYgKHJldCAhPSBrQ1ZSZXR1cm5TdWNj
ZXNzKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUgcGl4ZWwg
YnVmZmVyOiAiIDw8IHJldDsKKyAgICAvLyBXZSBwcm9iYWJseSB3YW50IHRvIGRyb3AgZnJhbWVz
IGhlcmUsIHNpbmNlIGZhaWx1cmUgcHJvYmFibHkgbWVhbnMKKyAgICAvLyB0aGF0IHRoZSBwb29s
IGlzIGVtcHR5LgorICAgIHJldHVybiBudWxscHRyOworICB9CisgIHJldHVybiBwaXhlbF9idWZm
ZXI7Cit9CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29s
Ym94IGNhbGxzIHdoZW4gZW5jb2RlIGlzCisvLyBjb21wbGV0ZS4gRnJvbSBpbnNwZWN0aW9uIHRo
aXMgaGFwcGVucyBvbiBpdHMgb3duIHF1ZXVlLgordm9pZCBjb21wcmVzc2lvbk91dHB1dENhbGxi
YWNrKHZvaWQqIGVuY29kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCog
cGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TU3RhdHVzIHN0YXR1cywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVEVuY29kZUluZm9GbGFncyBpbmZvRmxh
Z3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlQnVmZmVyKQorICAgIEFQSV9BVkFJTEFCTEUoaW9zKDExLjApKSB7CisgIFJUQ19DSEVDSyhw
YXJhbXMpOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVFbmNvZGVQYXJhbXM+IGVuY29kZVBh
cmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UlRDRnJhbWVFbmNvZGVQYXJhbXMqPihwYXJh
bXMpKTsKKyAgUlRDX0NIRUNLKGVuY29kZVBhcmFtcy0+ZW5jb2Rlcik7CisgIFtlbmNvZGVQYXJh
bXMtPmVuY29kZXIgZnJhbWVXYXNFbmNvZGVkOnN0YXR1cworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmbGFnczppbmZvRmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzYW1wbGVCdWZmZXI6c2FtcGxlQnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoOmVuY29kZVBhcmFtcy0+d2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWlnaHQ6ZW5jb2RlUGFyYW1zLT5oZWlnaHQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZW5kZXJUaW1lTXM6ZW5jb2RlUGFyYW1zLT5yZW5kZXJfdGltZV9tcworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDplbmNvZGVQYXJhbXMtPnRpbWVz
dGFtcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjplbmNvZGVQYXJh
bXMtPnJvdGF0aW9uXTsKK30KK30gIC8vIG5hbWVzcGFjZQorCitAaW1wbGVtZW50YXRpb24gUlRD
VmlkZW9FbmNvZGVySDI2NSB7CisgIFJUQ1ZpZGVvQ29kZWNJbmZvKiBfY29kZWNJbmZvOworICBz
dGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpCaXRyYXRlQWRqdXN0ZXI+IF9iaXRyYXRlQWRqdXN0ZXI7
CisgIHVpbnQzMl90IF90YXJnZXRCaXRyYXRlQnBzOworICB1aW50MzJfdCBfZW5jb2RlckJpdHJh
dGVCcHM7CisgIENGU3RyaW5nUmVmIF9wcm9maWxlOworICBSVENWaWRlb0VuY29kZXJDYWxsYmFj
ayBfY2FsbGJhY2s7CisgIGludDMyX3QgX3dpZHRoOworICBpbnQzMl90IF9oZWlnaHQ7CisgIFZU
Q29tcHJlc3Npb25TZXNzaW9uUmVmIF9jb21wcmVzc2lvblNlc3Npb247CisgIFJUQ1ZpZGVvQ29k
ZWNNb2RlIF9tb2RlOworICBpbnQgZnJhbWVzTGVmdDsKKworICBzdGQ6OnZlY3Rvcjx1aW50OF90
PiBfbnYxMlNjYWxlQnVmZmVyOworfQorCisvLyAuNSBpcyBzZXQgYXMgYSBtaW5pbnVtIHRvIHBy
ZXZlbnQgb3ZlcmNvbXBlbnNhdGluZyBmb3IgbGFyZ2UgdGVtcG9yYXJ5CisvLyBvdmVyc2hvb3Rz
LiBXZSBkb24ndCB3YW50IHRvIGRlZ3JhZGUgdmlkZW8gcXVhbGl0eSB0b28gYmFkbHkuCisvLyAu
OTUgaXMgc2V0IHRvIHByZXZlbnQgb3NjaWxsYXRpb25zLiBXaGVuIGEgbG93ZXIgYml0cmF0ZSBp
cyBzZXQgb24gdGhlCisvLyBlbmNvZGVyIHRoYW4gcHJldmlvdXNseSBzZXQsIGl0cyBvdXRwdXQg
c2VlbXMgdG8gaGF2ZSBhIGJyaWVmIHBlcmlvZCBvZgorLy8gZHJhc3RpY2FsbHkgcmVkdWNlZCBi
aXRyYXRlLCBzbyB3ZSB3YW50IHRvIGF2b2lkIHRoYXQuIEluIHN0ZWFkeSBzdGF0ZQorLy8gY29u
ZGl0aW9ucywgMC45NSBzZWVtcyB0byBnaXZlIHVzIGJldHRlciBvdmVyYWxsIGJpdHJhdGUgb3Zl
ciBsb25nIHBlcmlvZHMKKy8vIG9mIHRpbWUuCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2Rl
Y0luZm86KFJUQ1ZpZGVvQ29kZWNJbmZvKiljb2RlY0luZm8geworICBpZiAoc2VsZiA9IFtzdXBl
ciBpbml0XSkgeworICAgIF9jb2RlY0luZm8gPSBjb2RlY0luZm87CisgICAgX2JpdHJhdGVBZGp1
c3Rlci5yZXNldChuZXcgd2VicnRjOjpCaXRyYXRlQWRqdXN0ZXIoLjUsIC45NSkpOworICAgIFJU
Q19DSEVDSyhbY29kZWNJbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOkAiSDI2NSJdKTsKKyAgfQor
ICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jIHsKKyAgW3NlbGYgZGVzdHJveUNv
bXByZXNzaW9uU2Vzc2lvbl07Cit9CisKKy0gKE5TSW50ZWdlcilzdGFydEVuY29kZVdpdGhTZXR0
aW5nczooUlRDVmlkZW9FbmNvZGVyU2V0dGluZ3MqKXNldHRpbmdzCisgICAgICAgICAgICAgICAg
ICAgICAgIG51bWJlck9mQ29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgUlRDX0RDSEVDSyhz
ZXR0aW5ncyk7CisgIFJUQ19EQ0hFQ0soW3NldHRpbmdzLm5hbWUgaXNFcXVhbFRvU3RyaW5nOkAi
SDI2NSJdKTsKKworICBfd2lkdGggPSBzZXR0aW5ncy53aWR0aDsKKyAgX2hlaWdodCA9IHNldHRp
bmdzLmhlaWdodDsKKyAgX21vZGUgPSBzZXR0aW5ncy5tb2RlOworCisgIC8vIFdlIGNhbiBvbmx5
IHNldCBhdmVyYWdlIGJpdHJhdGUgb24gdGhlIEhXIGVuY29kZXIuCisgIF90YXJnZXRCaXRyYXRl
QnBzID0gc2V0dGluZ3Muc3RhcnRCaXRyYXRlOworICBfYml0cmF0ZUFkanVzdGVyLT5TZXRUYXJn
ZXRCaXRyYXRlQnBzKF90YXJnZXRCaXRyYXRlQnBzKTsKKworICAvLyBUT0RPKHRrY2hpbik6IFRy
eSBzZXR0aW5nIHBheWxvYWQgc2l6ZSB2aWEKKyAgLy8ga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9NYXhoMjY1U2xpY2VCeXRlcy4KKworICByZXR1cm4gW3NlbGYgcmVzZXRDb21wcmVzc2lvblNl
c3Npb25dOworfQorCistIChOU0ludGVnZXIpZW5jb2RlOihSVENWaWRlb0ZyYW1lKilmcmFtZQor
ICAgIGNvZGVjU3BlY2lmaWNJbmZvOihpZDxSVENDb2RlY1NwZWNpZmljSW5mbz4pY29kZWNTcGVj
aWZpY0luZm8KKyAgICAgICAgICAgZnJhbWVUeXBlczooTlNBcnJheTxOU051bWJlcio+KilmcmFt
ZVR5cGVzIHsKKyAgUlRDX0RDSEVDS19FUShmcmFtZS53aWR0aCwgX3dpZHRoKTsKKyAgUlRDX0RD
SEVDS19FUShmcmFtZS5oZWlnaHQsIF9oZWlnaHQpOworICBpZiAoIV9jYWxsYmFjayB8fCAhX2Nv
bXByZXNzaW9uU2Vzc2lvbikgeworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfVU5JTklU
SUFMSVpFRDsKKyAgfQorICBCT09MIGlzS2V5ZnJhbWVSZXF1aXJlZCA9IE5POworCisgIC8vIEdl
dCBhIHBpeGVsIGJ1ZmZlciBmcm9tIHRoZSBwb29sIGFuZCBjb3B5IGZyYW1lIGRhdGEgb3Zlci4K
KyAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQb29sID0KKyAgICAgIFZUQ29tcHJl
c3Npb25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQb29sKF9jb21wcmVzc2lvblNlc3Npb24pOworCisj
aWYgZGVmaW5lZChXRUJSVENfSU9TKQorICBpZiAoIXBpeGVsQnVmZmVyUG9vbCkgeworICAgIC8v
IEtpbmQgb2YgYSBoYWNrLiBPbiBiYWNrZ3JvdW5kaW5nLCB0aGUgY29tcHJlc3Npb24gc2Vzc2lv
biBzZWVtcyB0byBnZXQKKyAgICAvLyBpbnZhbGlkYXRlZCwgd2hpY2ggY2F1c2VzIHRoaXMgcG9v
bCBjYWxsIHRvIGZhaWwgd2hlbiB0aGUgYXBwbGljYXRpb24KKyAgICAvLyBpcyBmb3JlZ3JvdW5k
ZWQgYW5kIGZyYW1lcyBhcmUgYmVpbmcgc2VudCBmb3IgZW5jb2RpbmcgYWdhaW4uCisgICAgLy8g
UmVzZXR0aW5nIHRoZSBzZXNzaW9uIHdoZW4gdGhpcyBoYXBwZW5zIGZpeGVzIHRoZSBpc3N1ZS4K
KyAgICAvLyBJbiBhZGRpdGlvbiB3ZSByZXF1ZXN0IGEga2V5ZnJhbWUgc28gdmlkZW8gY2FuIHJl
Y292ZXIgcXVpY2tseS4KKyAgICBbc2VsZiByZXNldENvbXByZXNzaW9uU2Vzc2lvbl07CisgICAg
cGl4ZWxCdWZmZXJQb29sID0KKyAgICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25HZXRQaXhlbEJ1
ZmZlclBvb2woX2NvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgaXNLZXlmcmFtZVJlcXVpcmVkID0g
WUVTOworICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIlJlc2V0dGluZyBjb21wcmVzc2lvbiBzZXNz
aW9uIGR1ZSB0byBpbnZhbGlkIHBvb2wuIjsKKyAgfQorI2VuZGlmCisKKyAgQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7CisgIGlmIChbZnJhbWUuYnVmZmVyIGlzS2luZE9m
Q2xhc3M6W1JUQ0NWUGl4ZWxCdWZmZXIgY2xhc3NdXSkgeworICAgIC8vIE5hdGl2ZSBmcmFtZSBi
dWZmZXIKKyAgICBSVENDVlBpeGVsQnVmZmVyKiBydGNQaXhlbEJ1ZmZlciA9IChSVENDVlBpeGVs
QnVmZmVyKilmcmFtZS5idWZmZXI7CisgICAgaWYgKCFbcnRjUGl4ZWxCdWZmZXIgcmVxdWlyZXND
cm9wcGluZ10pIHsKKyAgICAgIC8vIFRoaXMgcGl4ZWwgYnVmZmVyIG1pZ2h0IGhhdmUgYSBoaWdo
ZXIgcmVzb2x1dGlvbiB0aGFuIHdoYXQgdGhlCisgICAgICAvLyBjb21wcmVzc2lvbiBzZXNzaW9u
IGlzIGNvbmZpZ3VyZWQgdG8uIFRoZSBjb21wcmVzc2lvbiBzZXNzaW9uIGNhbgorICAgICAgLy8g
aGFuZGxlIHRoYXQgYW5kIHdpbGwgb3V0cHV0IGVuY29kZWQgZnJhbWVzIGluIHRoZSBjb25maWd1
cmVkCisgICAgICAvLyByZXNvbHV0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhlIGlucHV0IHBpeGVsIGJ1
ZmZlciByZXNvbHV0aW9uLgorICAgICAgcGl4ZWxCdWZmZXIgPSBydGNQaXhlbEJ1ZmZlci5waXhl
bEJ1ZmZlcjsKKyAgICAgIENWQnVmZmVyUmV0YWluKHBpeGVsQnVmZmVyKTsKKyAgICB9IGVsc2Ug
eworICAgICAgLy8gQ3JvcHBpbmcgcmVxdWlyZWQsIHdlIG5lZWQgdG8gY3JvcCBhbmQgc2NhbGUg
dG8gYSBuZXcgcGl4ZWwgYnVmZmVyLgorICAgICAgcGl4ZWxCdWZmZXIgPSBDcmVhdGVQaXhlbEJ1
ZmZlcihwaXhlbEJ1ZmZlclBvb2wpOworICAgICAgaWYgKCFwaXhlbEJ1ZmZlcikgeworICAgICAg
ICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICAgICAgfQorICAgICAgaW50IGRz
dFdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKKyAgICAgIGludCBk
c3RIZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKKyAgICAgIGlm
IChbcnRjUGl4ZWxCdWZmZXIgcmVxdWlyZXNTY2FsaW5nVG9XaWR0aDpkc3RXaWR0aCBoZWlnaHQ6
ZHN0SGVpZ2h0XSkgeworICAgICAgICBpbnQgc2l6ZSA9CisgICAgICAgICAgICBbcnRjUGl4ZWxC
dWZmZXIgYnVmZmVyU2l6ZUZvckNyb3BwaW5nQW5kU2NhbGluZ1RvV2lkdGg6ZHN0V2lkdGgKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlaWdodDpkc3RIZWlnaHRdOworICAgICAgICBfbnYxMlNjYWxlQnVmZmVyLnJlc2l6ZShzaXpl
KTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIF9udjEyU2NhbGVCdWZmZXIuY2xlYXIoKTsKKyAg
ICAgIH0KKyAgICAgIF9udjEyU2NhbGVCdWZmZXIuc2hyaW5rX3RvX2ZpdCgpOworICAgICAgaWYg
KCFbcnRjUGl4ZWxCdWZmZXIgY3JvcEFuZFNjYWxlVG86cGl4ZWxCdWZmZXIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpdGhUZW1wQnVmZmVyOl9udjEyU2NhbGVCdWZmZXIuZGF0YSgpXSkg
eworICAgICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICAgICAgfQorICAg
IH0KKyAgfQorCisgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAgICAvLyBXZSBkaWQgbm90IGhhdmUg
YSBuYXRpdmUgZnJhbWUgYnVmZmVyCisgICAgcGl4ZWxCdWZmZXIgPSBDcmVhdGVQaXhlbEJ1ZmZl
cihwaXhlbEJ1ZmZlclBvb2wpOworICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAgICAgIHJldHVy
biBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgICAgfQorICAgIFJUQ19EQ0hFQ0socGl4ZWxC
dWZmZXIpOworICAgIGlmICghQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKFtmcmFtZS5idWZm
ZXIgdG9JNDIwXSwgcGl4ZWxCdWZmZXIpKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
RmFpbGVkIHRvIGNvcHkgZnJhbWUgZGF0YS4iOworICAgICAgQ1ZCdWZmZXJSZWxlYXNlKHBpeGVs
QnVmZmVyKTsKKyAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgICAgfQor
ICB9CisKKyAgLy8gQ2hlY2sgaWYgd2UgbmVlZCBhIGtleWZyYW1lLgorICBpZiAoIWlzS2V5ZnJh
bWVSZXF1aXJlZCAmJiBmcmFtZVR5cGVzKSB7CisgICAgZm9yIChOU051bWJlciogZnJhbWVUeXBl
IGluIGZyYW1lVHlwZXMpIHsKKyAgICAgIGlmICgoUlRDRnJhbWVUeXBlKWZyYW1lVHlwZS5pbnRW
YWx1ZSA9PSBSVENGcmFtZVR5cGVWaWRlb0ZyYW1lS2V5KSB7CisgICAgICAgIGlzS2V5ZnJhbWVS
ZXF1aXJlZCA9IFlFUzsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICB9CisKKyAg
Q01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCA9CisgICAgICBDTVRpbWVNYWtlKGZyYW1lLnRp
bWVTdGFtcE5zIC8gcnRjOjprTnVtTmFub3NlY3NQZXJNaWxsaXNlYywgMTAwMCk7CisgIENGRGlj
dGlvbmFyeVJlZiBmcmFtZVByb3BlcnRpZXMgPSBudWxscHRyOworICBpZiAoaXNLZXlmcmFtZVJl
cXVpcmVkKSB7CisgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHtrVlRFbmNvZGVGcmFtZU9wdGlvbktl
eV9Gb3JjZUtleUZyYW1lfTsKKyAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7a0NGQm9vbGVhblRy
dWV9OworICAgIGZyYW1lUHJvcGVydGllcyA9IENyZWF0ZUNGVHlwZURpY3Rpb25hcnkoa2V5cywg
dmFsdWVzLCAxKTsKKyAgfQorCisgIHN0ZDo6dW5pcXVlX3B0cjxSVENGcmFtZUVuY29kZVBhcmFt
cz4gZW5jb2RlUGFyYW1zOworICBlbmNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRW5jb2Rl
UGFyYW1zKAorICAgICAgc2VsZiwgX3dpZHRoLCBfaGVpZ2h0LCBmcmFtZS50aW1lU3RhbXBOcyAv
IHJ0Yzo6a051bU5hbm9zZWNzUGVyTWlsbGlzZWMsCisgICAgICBmcmFtZS50aW1lU3RhbXAsIGZy
YW1lLnJvdGF0aW9uKSk7CisKKyAgLy8gVXBkYXRlIHRoZSBiaXRyYXRlIGlmIG5lZWRlZC4KKyAg
W3NlbGYgc2V0Qml0cmF0ZUJwczpfYml0cmF0ZUFkanVzdGVyLT5HZXRBZGp1c3RlZEJpdHJhdGVC
cHMoKV07CisKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVG
cmFtZSgKKyAgICAgIF9jb21wcmVzc2lvblNlc3Npb24sIHBpeGVsQnVmZmVyLCBwcmVzZW50YXRp
b25UaW1lU3RhbXAsIGtDTVRpbWVJbnZhbGlkLAorICAgICAgZnJhbWVQcm9wZXJ0aWVzLCBlbmNv
ZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRyKTsKKyAgaWYgKGZyYW1lUHJvcGVydGllcykgewor
ICAgIENGUmVsZWFzZShmcmFtZVByb3BlcnRpZXMpOworICB9CisgIGlmIChwaXhlbEJ1ZmZlcikg
eworICAgIENWQnVmZmVyUmVsZWFzZShwaXhlbEJ1ZmZlcik7CisgIH0KKyAgaWYgKHN0YXR1cyAh
PSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZW5jb2RlIGZy
YW1lIHdpdGggY29kZTogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RF
Q19FUlJPUjsKKyAgfQorICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistICh2
b2lkKXNldENhbGxiYWNrOihSVENWaWRlb0VuY29kZXJDYWxsYmFjayljYWxsYmFjayB7CisgIF9j
YWxsYmFjayA9IGNhbGxiYWNrOworfQorCistIChpbnQpc2V0Qml0cmF0ZToodWludDMyX3QpYml0
cmF0ZUtiaXQgZnJhbWVyYXRlOih1aW50MzJfdClmcmFtZXJhdGUgeworICBfdGFyZ2V0Qml0cmF0
ZUJwcyA9IDEwMDAgKiBiaXRyYXRlS2JpdDsKKyAgX2JpdHJhdGVBZGp1c3Rlci0+U2V0VGFyZ2V0
Qml0cmF0ZUJwcyhfdGFyZ2V0Qml0cmF0ZUJwcyk7CisgIFtzZWxmIHNldEJpdHJhdGVCcHM6X2Jp
dHJhdGVBZGp1c3Rlci0+R2V0QWRqdXN0ZWRCaXRyYXRlQnBzKCldOworICByZXR1cm4gV0VCUlRD
X1ZJREVPX0NPREVDX09LOworfQorCisjcHJhZ21hIG1hcmsgLSBQcml2YXRlCisKKy0gKE5TSW50
ZWdlcilyZWxlYXNlRW5jb2RlciB7CisgIC8vIE5lZWQgdG8gZGVzdHJveSBzbyB0aGF0IHRoZSBz
ZXNzaW9uIGlzIGludmFsaWRhdGVkIGFuZCB3b24ndCB1c2UgdGhlCisgIC8vIGNhbGxiYWNrIGFu
eW1vcmUuIERvIG5vdCByZW1vdmUgY2FsbGJhY2sgdW50aWwgdGhlIHNlc3Npb24gaXMgaW52YWxp
ZGF0ZWQKKyAgLy8gc2luY2UgYXN5bmMgZW5jb2RlciBjYWxsYmFja3MgY2FuIG9jY3VyIHVudGls
IGludmFsaWRhdGlvbi4KKyAgW3NlbGYgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl07CisgIF9j
YWxsYmFjayA9IG51bGxwdHI7CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisK
Ky0gKGludClyZXNldENvbXByZXNzaW9uU2Vzc2lvbiB7CisgIFtzZWxmIGRlc3Ryb3lDb21wcmVz
c2lvblNlc3Npb25dOworCisgIC8vIFNldCBzb3VyY2UgaW1hZ2UgYnVmZmVyIGF0dHJpYnV0ZXMu
IFRoZXNlIGF0dHJpYnV0ZXMgd2lsbCBiZSBwcmVzZW50IG9uCisgIC8vIGJ1ZmZlcnMgcmV0cmll
dmVkIGZyb20gdGhlIGVuY29kZXIncyBwaXhlbCBidWZmZXIgcG9vbC4KKyAgY29uc3Qgc2l6ZV90
IGF0dHJpYnV0ZXNTaXplID0gMzsKKyAgQ0ZUeXBlUmVmIGtleXNbYXR0cmlidXRlc1NpemVdID0g
eworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTEVTQ29t
cGF0aWJpbGl0eUtleSwKKyNlbGlmIGRlZmluZWQoV0VCUlRDX01BQykKKyAgICBrQ1ZQaXhlbEJ1
ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXksCisjZW5kaWYKKyAgICBrQ1ZQaXhlbEJ1ZmZlcklP
U3VyZmFjZVByb3BlcnRpZXNLZXksCisgICAga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVL
ZXkKKyAgfTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIGlvU3VyZmFjZVZhbHVlID0gQ3JlYXRlQ0ZUeXBl
RGljdGlvbmFyeShudWxscHRyLCBudWxscHRyLCAwKTsKKyAgaW50NjRfdCBudjEydHlwZSA9IGtD
VlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2U7CisgIENGTnVtYmVy
UmVmIHBpeGVsRm9ybWF0ID0KKyAgICAgIENGTnVtYmVyQ3JlYXRlKG51bGxwdHIsIGtDRk51bWJl
ckxvbmdUeXBlLCAmbnYxMnR5cGUpOworICBDRlR5cGVSZWYgdmFsdWVzW2F0dHJpYnV0ZXNTaXpl
XSA9IHtrQ0ZCb29sZWFuVHJ1ZSwgaW9TdXJmYWNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBpeGVsRm9ybWF0fTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJj
ZUF0dHJpYnV0ZXMgPQorICAgICAgQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShrZXlzLCB2YWx1ZXMs
IGF0dHJpYnV0ZXNTaXplKTsKKyAgaWYgKGlvU3VyZmFjZVZhbHVlKSB7CisgICAgQ0ZSZWxlYXNl
KGlvU3VyZmFjZVZhbHVlKTsKKyAgICBpb1N1cmZhY2VWYWx1ZSA9IG51bGxwdHI7CisgIH0KKyAg
aWYgKHBpeGVsRm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNlKHBpeGVsRm9ybWF0KTsKKyAgICBwaXhl
bEZvcm1hdCA9IG51bGxwdHI7CisgIH0KKyAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBlbmNvZGVy
X3NwZWNzID0gbnVsbHB0cjsKKyNpZiBkZWZpbmVkKFdFQlJUQ19NQUMpICYmICFkZWZpbmVkKFdF
QlJUQ19JT1MpCisgIC8vIEN1cnJlbnRseSBodyBhY2NsIGlzIHN1cHBvcnRlZCBhYm92ZSAzNjBw
IG9uIG1hYywgYmVsb3cgMzYwcAorICAvLyB0aGUgY29tcHJlc3Npb24gc2Vzc2lvbiB3aWxsIGJl
IGNyZWF0ZWQgd2l0aCBodyBhY2NsIGRpc2FibGVkLgorICBlbmNvZGVyX3NwZWNzID0KKyAgICAg
IENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUobnVsbHB0ciwgMSwgJmtDRlR5cGVEaWN0aW9uYXJ5
S2V5Q2FsbEJhY2tzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma0NGVHlwZURp
Y3Rpb25hcnlWYWx1ZUNhbGxCYWNrcyk7CisgIENGRGljdGlvbmFyeVNldFZhbHVlKAorICAgICAg
ZW5jb2Rlcl9zcGVjcywKKyAgICAgIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxl
SGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwKKyAgICAgIGtDRkJvb2xlYW5UcnVlKTsK
KyNlbmRpZgorICBPU1N0YXR1cyBzdGF0dXMgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSgK
KyAgICAgIG51bGxwdHIsICAvLyB1c2UgZGVmYXVsdCBhbGxvY2F0b3IKKyAgICAgIF93aWR0aCwg
X2hlaWdodCwga0NNVmlkZW9Db2RlY1R5cGVfSEVWQywKKyAgICAgIGVuY29kZXJfc3BlY3MsICAv
LyB1c2UgaGFyZHdhcmUgYWNjZWxlcmF0ZWQgZW5jb2RlciBpZiBhdmFpbGFibGUKKyAgICAgIHNv
dXJjZUF0dHJpYnV0ZXMsCisgICAgICBudWxscHRyLCAgLy8gdXNlIGRlZmF1bHQgY29tcHJlc3Nl
ZCBkYXRhIGFsbG9jYXRvcgorICAgICAgY29tcHJlc3Npb25PdXRwdXRDYWxsYmFjaywgbnVsbHB0
ciwgJl9jb21wcmVzc2lvblNlc3Npb24pOworICBpZiAoc291cmNlQXR0cmlidXRlcykgeworICAg
IENGUmVsZWFzZShzb3VyY2VBdHRyaWJ1dGVzKTsKKyAgICBzb3VyY2VBdHRyaWJ1dGVzID0gbnVs
bHB0cjsKKyAgfQorICBpZiAoZW5jb2Rlcl9zcGVjcykgeworICAgIENGUmVsZWFzZShlbmNvZGVy
X3NwZWNzKTsKKyAgICBlbmNvZGVyX3NwZWNzID0gbnVsbHB0cjsKKyAgfQorICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUg
Y29tcHJlc3Npb24gc2Vzc2lvbjogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIFdFQlJUQ19WSURF
T19DT0RFQ19FUlJPUjsKKyAgfQorI2lmIGRlZmluZWQoV0VCUlRDX01BQykgJiYgIWRlZmluZWQo
V0VCUlRDX0lPUykKKyAgQ0ZCb29sZWFuUmVmIGh3YWNjbF9lbmFibGVkID0gbnVsbHB0cjsKKyAg
c3RhdHVzID0gVlRTZXNzaW9uQ29weVByb3BlcnR5KAorICAgICAgX2NvbXByZXNzaW9uU2Vzc2lv
biwKKyAgICAgIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfVXNpbmdIYXJkd2FyZUFjY2VsZXJh
dGVkVmlkZW9FbmNvZGVyLCBudWxscHRyLAorICAgICAgJmh3YWNjbF9lbmFibGVkKTsKKyAgaWYg
KHN0YXR1cyA9PSBub0VyciAmJiAoQ0ZCb29sZWFuR2V0VmFsdWUoaHdhY2NsX2VuYWJsZWQpKSkg
eworICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIkNvbXByZXNzaW9uIHNlc3Npb24gY3JlYXRlZCB3
aXRoIGh3IGFjY2wgZW5hYmxlZCI7CisgIH0gZWxzZSB7CisgICAgUlRDX0xPRyhMU19JTkZPKSA8
PCAiQ29tcHJlc3Npb24gc2Vzc2lvbiBjcmVhdGVkIHdpdGggaHcgYWNjbCBkaXNhYmxlZCI7Cisg
IH0KKyNlbmRpZgorICBbc2VsZiBjb25maWd1cmVDb21wcmVzc2lvblNlc3Npb25dOworICByZXR1
cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistICh2b2lkKWNvbmZpZ3VyZUNvbXByZXNz
aW9uU2Vzc2lvbiB7CisgIFJUQ19EQ0hFQ0soX2NvbXByZXNzaW9uU2Vzc2lvbik7CisgIFNldFZU
U2Vzc2lvblByb3BlcnR5KF9jb21wcmVzc2lvblNlc3Npb24sIG51bGxwdHIsIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfUmVhbFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsK
KyAgLy8gU2V0VlRTZXNzaW9uUHJvcGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwKKyAgLy8ga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIF9wcm9maWxlKTsKKyAgU2V0VlRT
ZXNzaW9uUHJvcGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwgbnVsbHB0ciwKKyAgICAgICAgICAg
ICAgICAgICAgICAga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BbGxvd0ZyYW1lUmVvcmRlcmlu
ZywgZmFsc2UpOworICBbc2VsZiBzZXRFbmNvZGVyQml0cmF0ZUJwczpfdGFyZ2V0Qml0cmF0ZUJw
c107CisgIC8vIFRPRE8odGtjaGluKTogTG9vayBhdCBlbnRyb3B5IG1vZGUgYW5kIGNvbG9yc3Bh
Y2UgbWF0cmljZXMuCisgIC8vIFRPRE8odGtjaGluKTogSW52ZXN0aWdhdGUgdG8gc2VlIGlmIHRo
ZXJlJ3MgYW55IHdheSB0byBtYWtlIHRoaXMgd29yay4KKyAgLy8gTWF5IG5lZWQgaXQgdG8gaW50
ZXJvcCB3aXRoIEFuZHJvaWQuIEN1cnJlbnRseSB0aGlzIGNhbGwganVzdCBmYWlscy4KKyAgLy8g
T24gaW5zcGVjdGluZyBlbmNvZGVyIG91dHB1dCBvbiBpT1M4LCB0aGlzIHZhbHVlIGlzIHNldCB0
byA2LgorICAvLyBpbnRlcm5hbDo6U2V0VlRTZXNzaW9uUHJvcGVydHkoY29tcHJlc3Npb25fc2Vz
c2lvbl8sCisgIC8vICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEZyYW1lRGVsYXlD
b3VudCwKKyAgLy8gICAgIDEpOworCisgIC8vIFNldCBhIHJlbGF0aXZlbHkgbGFyZ2UgdmFsdWUg
Zm9yIGtleWZyYW1lIGVtaXNzaW9uICg3MjAwIGZyYW1lcyBvciA0CisgIC8vIG1pbnV0ZXMpLgor
ICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNzaW9uLCBudWxscHRyLAorICAg
ICAgICAgICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1l
SW50ZXJ2YWwsIDcyMDApOworICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNz
aW9uLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgMjQwKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0KKyAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9u
UHJlcGFyZVRvRW5jb2RlRnJhbWVzKF9jb21wcmVzc2lvblNlc3Npb24pOworICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkNvbXByZXNzaW9uIHNlc3Np
b24gZmFpbGVkIHRvIHByZXBhcmUgZW5jb2RlIGZyYW1lcy4iOworICB9Cit9CisKKy0gKHZvaWQp
ZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIGlmIChfY29tcHJlc3Npb25TZXNzaW9uKSB7
CisgICAgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKF9jb21wcmVzc2lvblNlc3Npb24p
OworICAgIENGUmVsZWFzZShfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBfY29tcHJlc3Npb25T
ZXNzaW9uID0gbnVsbHB0cjsKKyAgfQorfQorCistIChOU1N0cmluZyopaW1wbGVtZW50YXRpb25O
YW1lIHsKKyAgcmV0dXJuIEAiVmlkZW9Ub29sYm94IjsKK30KKworLSAodm9pZClzZXRCaXRyYXRl
QnBzOih1aW50MzJfdCliaXRyYXRlQnBzIHsKKyAgaWYgKF9lbmNvZGVyQml0cmF0ZUJwcyAhPSBi
aXRyYXRlQnBzKSB7CisgICAgW3NlbGYgc2V0RW5jb2RlckJpdHJhdGVCcHM6Yml0cmF0ZUJwc107
CisgIH0KK30KKworLSAodm9pZClzZXRFbmNvZGVyQml0cmF0ZUJwczoodWludDMyX3QpYml0cmF0
ZUJwcyB7CisgIGlmIChfY29tcHJlc3Npb25TZXNzaW9uKSB7CisgICAgU2V0VlRTZXNzaW9uUHJv
cGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwgbnVsbHB0ciwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgYml0cmF0ZUJw
cyk7CisKKyAgICAvLyBUT0RPKHRrY2hpbik6IEFkZCBhIGhlbHBlciBtZXRob2QgdG8gc2V0IGFy
cmF5IHZhbHVlLgorICAgIGludDY0X3QgZGF0YUxpbWl0Qnl0ZXNQZXJTZWNvbmRWYWx1ZSA9Cisg
ICAgICAgIHN0YXRpY19jYXN0PGludDY0X3Q+KGJpdHJhdGVCcHMgKiBrTGltaXRUb0F2ZXJhZ2VC
aXRSYXRlRmFjdG9yIC8gOCk7CisgICAgQ0ZOdW1iZXJSZWYgYnl0ZXNQZXJTZWNvbmQgPQorICAg
ICAgICBDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJTSW50NjRU
eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAmZGF0YUxpbWl0Qnl0ZXNQZXJTZWNvbmRWYWx1
ZSk7CisgICAgaW50NjRfdCBvbmVTZWNvbmRWYWx1ZSA9IDE7CisgICAgQ0ZOdW1iZXJSZWYgb25l
U2Vjb25kID0gQ0ZOdW1iZXJDcmVhdGUoCisgICAgICAgIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtD
Rk51bWJlclNJbnQ2NFR5cGUsICZvbmVTZWNvbmRWYWx1ZSk7CisgICAgY29uc3Qgdm9pZCogbnVt
c1syXSA9IHtieXRlc1BlclNlY29uZCwgb25lU2Vjb25kfTsKKyAgICBDRkFycmF5UmVmIGRhdGFS
YXRlTGltaXRzID0KKyAgICAgICAgQ0ZBcnJheUNyZWF0ZShudWxscHRyLCBudW1zLCAyLCAma0NG
VHlwZUFycmF5Q2FsbEJhY2tzKTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBWVFNlc3Npb25TZXRQ
cm9wZXJ0eSgKKyAgICAgICAgX2NvbXByZXNzaW9uU2Vzc2lvbiwga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9EYXRhUmF0ZUxpbWl0cywKKyAgICAgICAgZGF0YVJhdGVMaW1pdHMpOworICAgIGlm
IChieXRlc1BlclNlY29uZCkgeworICAgICAgQ0ZSZWxlYXNlKGJ5dGVzUGVyU2Vjb25kKTsKKyAg
ICB9CisgICAgaWYgKG9uZVNlY29uZCkgeworICAgICAgQ0ZSZWxlYXNlKG9uZVNlY29uZCk7Cisg
ICAgfQorICAgIGlmIChkYXRhUmF0ZUxpbWl0cykgeworICAgICAgQ0ZSZWxlYXNlKGRhdGFSYXRl
TGltaXRzKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgICAgUlRDX0xP
RyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBzZXQgZGF0YSByYXRlIGxpbWl0IjsKKyAgICB9CisK
KyAgICBfZW5jb2RlckJpdHJhdGVCcHMgPSBiaXRyYXRlQnBzOworICB9Cit9CisKKy0gKHZvaWQp
ZnJhbWVXYXNFbmNvZGVkOihPU1N0YXR1cylzdGF0dXMKKyAgICAgICAgICAgICAgICAgIGZsYWdz
OihWVEVuY29kZUluZm9GbGFncylpbmZvRmxhZ3MKKyAgICAgICAgICAgc2FtcGxlQnVmZmVyOihD
TVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKKyAgICAgICAgICAgICAgICAgIHdpZHRoOihp
bnQzMl90KXdpZHRoCisgICAgICAgICAgICAgICAgIGhlaWdodDooaW50MzJfdCloZWlnaHQKKyAg
ICAgICAgICAgcmVuZGVyVGltZU1zOihpbnQ2NF90KXJlbmRlclRpbWVNcworICAgICAgICAgICAg
ICB0aW1lc3RhbXA6KHVpbnQzMl90KXRpbWVzdGFtcAorICAgICAgICAgICAgICAgcm90YXRpb246
KFJUQ1ZpZGVvUm90YXRpb24pcm90YXRpb24geworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7Cisg
ICAgUlRDX0xPRyhMU19FUlJPUikgPDwgImgyNjUgZW5jb2RlIGZhaWxlZC4iOworICAgIHJldHVy
bjsKKyAgfQorICBpZiAoaW5mb0ZsYWdzICYga1ZURW5jb2RlSW5mb19GcmFtZURyb3BwZWQpIHsK
KyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJoMjY1IGVuY29kZXIgZHJvcHBlZCBhIGZyYW1lLiI7
CisgICAgcmV0dXJuOworICB9CisKKyAgQk9PTCBpc0tleWZyYW1lID0gTk87CisgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHMgPQorICAgICAgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50
c0FycmF5KHNhbXBsZUJ1ZmZlciwgMCk7CisgIGlmIChhdHRhY2htZW50cyAhPSBudWxscHRyICYm
IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50cykpIHsKKyAgICBDRkRpY3Rpb25hcnlSZWYgYXR0
YWNobWVudCA9CisgICAgICAgIHN0YXRpY19jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdl
dFZhbHVlQXRJbmRleChhdHRhY2htZW50cywgMCkpOworICAgIGlzS2V5ZnJhbWUgPQorICAgICAg
ICAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudCwga0NNU2FtcGxlQXR0YWNobWVu
dEtleV9Ob3RTeW5jKTsKKyAgfQorCisgIGlmIChpc0tleWZyYW1lKSB7CisgICAgUlRDX0xPRyhM
U19JTkZPKSA8PCAiR2VuZXJhdGVkIGtleWZyYW1lIjsKKyAgfQorCisgIC8vIENvbnZlcnQgdGhl
IHNhbXBsZSBidWZmZXIgaW50byBhIGJ1ZmZlciBzdWl0YWJsZSBmb3IgUlRQIHBhY2tldGl6YXRp
b24uCisgIC8vIFRPRE8odGtjaGluKTogQWxsb2NhdGUgYnVmZmVycyB0aHJvdWdoIGEgcG9vbC4K
KyAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QnVmZmVyPiBidWZmZXIobmV3IHJ0Yzo6QnVmZmVyKCkp
OworICBSVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyKiBoZWFkZXI7CisgIHsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8d2VicnRjOjpSVFBGcmFnbWVudGF0aW9uSGVhZGVyPiBoZWFkZXJfY3BwOworICAg
IGJvb2wgcmVzdWx0ID0gSDI2NUNNU2FtcGxlQnVmZmVyVG9Bbm5leEJCdWZmZXIoc2FtcGxlQnVm
ZmVyLCBpc0tleWZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnVmZmVyLmdldCgpLCAmaGVhZGVyX2NwcCk7CisgICAgaGVhZGVyID0gW1tS
VENSdHBGcmFnbWVudGF0aW9uSGVhZGVyIGFsbG9jXQorICAgICAgICBpbml0V2l0aE5hdGl2ZUZy
YWdtZW50YXRpb25IZWFkZXI6aGVhZGVyX2NwcC5nZXQoKV07CisgICAgaWYgKCFyZXN1bHQpIHsK
KyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY29udmVydCBzYW1wbGUgYnVm
ZmVyLiI7CisgICAgICByZXR1cm47CisgICAgfQorICB9CisKKyAgUlRDRW5jb2RlZEltYWdlKiBm
cmFtZSA9IFtbUlRDRW5jb2RlZEltYWdlIGFsbG9jXSBpbml0XTsKKyAgZnJhbWUuYnVmZmVyID0g
W05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5OmJ1ZmZlci0+ZGF0YSgpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aDpidWZmZXItPnNpemUoKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmcmVlV2hlbkRvbmU6Tk9dOworICBmcmFtZS5lbmNvZGVk
V2lkdGggPSB3aWR0aDsKKyAgZnJhbWUuZW5jb2RlZEhlaWdodCA9IGhlaWdodDsKKyAgZnJhbWUu
Y29tcGxldGVGcmFtZSA9IFlFUzsKKyAgZnJhbWUuZnJhbWVUeXBlID0KKyAgICAgIGlzS2V5ZnJh
bWUgPyBSVENGcmFtZVR5cGVWaWRlb0ZyYW1lS2V5IDogUlRDRnJhbWVUeXBlVmlkZW9GcmFtZURl
bHRhOworICBmcmFtZS5jYXB0dXJlVGltZU1zID0gcmVuZGVyVGltZU1zOworICBmcmFtZS50aW1l
U3RhbXAgPSB0aW1lc3RhbXA7CisgIGZyYW1lLnJvdGF0aW9uID0gcm90YXRpb247CisgIGZyYW1l
LmNvbnRlbnRUeXBlID0gKF9tb2RlID09IFJUQ1ZpZGVvQ29kZWNNb2RlU2NyZWVuc2hhcmluZykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgPyBSVENWaWRlb0NvbnRlbnRUeXBlU2NyZWVuc2hh
cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSVENWaWRlb0NvbnRlbnRUeXBlVW5zcGVj
aWZpZWQ7CisgIGZyYW1lLmZsYWdzID0gd2VicnRjOjpWaWRlb1NlbmRUaW1pbmc6OmtJbnZhbGlk
OworCisgIC8vIFRPRE86IFFQIGlzIGlnbm9yZWQgYmVjYXVzZSBvZiB0aGVyZSBpcyBubyBILjI2
NSBiaXRzdHJlYW0gcGFyc2VyLgorCisgIEJPT0wgcmVzID0gX2NhbGxiYWNrKGZyYW1lLCBbW1JU
Q0NvZGVjU3BlY2lmaWNJbmZvSDI2NSBhbGxvY10gaW5pdF0sIGhlYWRlcik7CisgIGlmICghcmVz
KSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkVuY29kZSBjYWxsYmFjayBmYWlsZWQuIjsK
KyAgICByZXR1cm47CisgIH0KKyAgX2JpdHJhdGVBZGp1c3Rlci0+VXBkYXRlKGZyYW1lLmJ1ZmZl
ci5sZW5ndGgpOworfQorCistIChSVENWaWRlb0VuY29kZXJRcFRocmVzaG9sZHMqKXNjYWxpbmdT
ZXR0aW5ncyB7CisgIHJldHVybiBbW1JUQ1ZpZGVvRW5jb2RlclFwVGhyZXNob2xkcyBhbGxvY10K
KyAgICAgIGluaXRXaXRoVGhyZXNob2xkc0xvdzprTG93aDI2NVFwVGhyZXNob2xkCisgICAgICAg
ICAgICAgICAgICAgICAgIGhpZ2g6a0hpZ2hoMjY1UXBUaHJlc2hvbGRdOworfQorCitAZW5kCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL25hbHVfcmV3cml0ZXIuY2MKaW5kZXggZGMyNThkNjA2NGEwZmVlYTAwNmVlMjk4MmUw
MDM3YjA1NWJiYTM3My4uZGRmNzM0NjA1MTE1YmM3Yjc0ZjEyODI5YTRjZGVjY2YzNDQwZmNmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmNjCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5jYwpAQCAtMjQ4LDYgKzI0OCwyMjkgQEAgYm9vbCBI
MjY0QW5uZXhCQnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcihjb25zdCB1aW50OF90KiBhbm5leGJfYnVm
ZmVyLAogICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK2Jvb2wgSDI2
NUNNU2FtcGxlQnVmZmVyVG9Bbm5leEJCdWZmZXIoCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgaHZj
Y19zYW1wbGVfYnVmZmVyLAorICAgIGJvb2wgaXNfa2V5ZnJhbWUsCisgICAgcnRjOjpCdWZmZXIq
IGFubmV4Yl9idWZmZXIsCisgICAgc3RkOjp1bmlxdWVfcHRyPFJUUEZyYWdtZW50YXRpb25IZWFk
ZXI+ICpvdXRfaGVhZGVyKSB7CisgIFJUQ19EQ0hFQ0soaHZjY19zYW1wbGVfYnVmZmVyKTsKKyAg
UlRDX0RDSEVDSyhvdXRfaGVhZGVyKTsKKyAgb3V0X2hlYWRlci0+cmVzZXQobnVsbHB0cik7CisK
KyAgLy8gR2V0IGZvcm1hdCBkZXNjcmlwdGlvbiBmcm9tIHRoZSBzYW1wbGUgYnVmZmVyLgorICBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzY3JpcHRpb24gPQorICAgICAgQ01TYW1wbGVC
dWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihodmNjX3NhbXBsZV9idWZmZXIpOworICBpZiAoZGVz
Y3JpcHRpb24gPT0gbnVsbHB0cikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQg
dG8gZ2V0IHNhbXBsZSBidWZmZXIncyBkZXNjcmlwdGlvbi4iOworICAgIHJldHVybiBmYWxzZTsK
KyAgfQorCisgIC8vIEdldCBwYXJhbWV0ZXIgc2V0IGluZm9ybWF0aW9uLgorICBpbnQgbmFsdV9o
ZWFkZXJfc2l6ZSA9IDA7CisgIHNpemVfdCBwYXJhbV9zZXRfY291bnQgPSAwOworICBPU1N0YXR1
cyBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRIRVZDUGFyYW1ldGVyU2V0QXRJ
bmRleCgKKyAgICAgIGRlc2NyaXB0aW9uLCAwLCBudWxscHRyLCBudWxscHRyLCAmcGFyYW1fc2V0
X2NvdW50LCAmbmFsdV9oZWFkZXJfc2l6ZSk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAg
ICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBwYXJhbWV0ZXIgc2V0LiI7Cisg
ICAgcmV0dXJuIGZhbHNlOworICB9CisgIFJUQ19DSEVDS19FUShuYWx1X2hlYWRlcl9zaXplLCBr
QXZjY0hlYWRlckJ5dGVTaXplKTsKKyAgUlRDX0RDSEVDS19FUShwYXJhbV9zZXRfY291bnQsIDMp
OworCisgIC8vIFRydW5jYXRlIGFueSBwcmV2aW91cyBkYXRhIGluIHRoZSBidWZmZXIgd2l0aG91
dCBjaGFuZ2luZyBpdHMgY2FwYWNpdHkuCisgIGFubmV4Yl9idWZmZXItPlNldFNpemUoMCk7CisK
KyAgc2l6ZV90IG5hbHVfb2Zmc2V0ID0gMDsKKyAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBmcmFnX29m
ZnNldHM7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4gZnJhZ19sZW5ndGhzOworCisgIC8vIFBsYWNl
IGFsbCBwYXJhbWV0ZXIgc2V0cyBhdCB0aGUgZnJvbnQgb2YgYnVmZmVyLgorICBpZiAoaXNfa2V5
ZnJhbWUpIHsKKyAgICBzaXplX3QgcGFyYW1fc2V0X3NpemUgPSAwOworICAgIGNvbnN0IHVpbnQ4
X3QqIHBhcmFtX3NldCA9IG51bGxwdHI7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJh
bV9zZXRfY291bnQ7ICsraSkgeworICAgICAgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uR2V0SEVWQ1BhcmFtZXRlclNldEF0SW5kZXgoCisgICAgICAgICAgZGVzY3JpcHRpb24sIGks
ICZwYXJhbV9zZXQsICZwYXJhbV9zZXRfc2l6ZSwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgICBp
ZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWls
ZWQgdG8gZ2V0IHBhcmFtZXRlciBzZXQuIjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
fQorICAgICAgLy8gVXBkYXRlIGJ1ZmZlci4KKyAgICAgIGFubmV4Yl9idWZmZXItPkFwcGVuZERh
dGEoa0FubmV4QkhlYWRlckJ5dGVzLCBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAg
ICBhbm5leGJfYnVmZmVyLT5BcHBlbmREYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+
KHBhcmFtX3NldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtX3NldF9z
aXplKTsKKyAgICAgIC8vIFVwZGF0ZSBmcmFnbWVudGF0aW9uLgorICAgICAgZnJhZ19vZmZzZXRz
LnB1c2hfYmFjayhuYWx1X29mZnNldCArIHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpKTsKKyAg
ICAgIGZyYWdfbGVuZ3Rocy5wdXNoX2JhY2socGFyYW1fc2V0X3NpemUpOworICAgICAgbmFsdV9v
ZmZzZXQgKz0gc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykgKyBwYXJhbV9zZXRfc2l6ZTsKKyAg
ICB9CisgIH0KKworICAvLyBHZXQgYmxvY2sgYnVmZmVyIGZyb20gdGhlIHNhbXBsZSBidWZmZXIu
CisgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tfYnVmZmVyID0KKyAgICAgIENNU2FtcGxlQnVmZmVy
R2V0RGF0YUJ1ZmZlcihodmNjX3NhbXBsZV9idWZmZXIpOworICBpZiAoYmxvY2tfYnVmZmVyID09
IG51bGxwdHIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBzYW1w
bGUgYnVmZmVyJ3MgYmxvY2sgYnVmZmVyLiI7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIENN
QmxvY2tCdWZmZXJSZWYgY29udGlndW91c19idWZmZXIgPSBudWxscHRyOworICAvLyBNYWtlIHN1
cmUgYmxvY2sgYnVmZmVyIGlzIGNvbnRpZ3VvdXMuCisgIGlmICghQ01CbG9ja0J1ZmZlcklzUmFu
Z2VDb250aWd1b3VzKGJsb2NrX2J1ZmZlciwgMCwgMCkpIHsKKyAgICBzdGF0dXMgPSBDTUJsb2Nr
QnVmZmVyQ3JlYXRlQ29udGlndW91cygKKyAgICAgICAgbnVsbHB0ciwgYmxvY2tfYnVmZmVyLCBu
dWxscHRyLCBudWxscHRyLCAwLCAwLCAwLCAmY29udGlndW91c19idWZmZXIpOworICAgIGlmIChz
dGF0dXMgIT0gbm9FcnIpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8g
ZmxhdHRlbiBub24tY29udGlndW91cyBibG9jayBidWZmZXI6ICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgIDw8IHN0YXR1czsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0gZWxzZSB7
CisgICAgY29udGlndW91c19idWZmZXIgPSBibG9ja19idWZmZXI7CisgICAgLy8gUmV0YWluIHRv
IG1ha2UgY2xlYW51cCBlYXNpZXIuCisgICAgQ0ZSZXRhaW4oY29udGlndW91c19idWZmZXIpOwor
ICAgIGJsb2NrX2J1ZmZlciA9IG51bGxwdHI7CisgIH0KKworICAvLyBOb3cgY29weSB0aGUgYWN0
dWFsIGRhdGEuCisgIGNoYXIqIGRhdGFfcHRyID0gbnVsbHB0cjsKKyAgc2l6ZV90IGJsb2NrX2J1
ZmZlcl9zaXplID0gQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgoY29udGlndW91c19idWZmZXIp
OworICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIoY29udGlndW91c19idWZm
ZXIsIDAsIG51bGxwdHIsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmZGF0YV9wdHIpOworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xP
RyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgYmxvY2sgYnVmZmVyIGRhdGEuIjsKKyAgICBD
RlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBz
aXplX3QgYnl0ZXNfcmVtYWluaW5nID0gYmxvY2tfYnVmZmVyX3NpemU7CisgIHdoaWxlIChieXRl
c19yZW1haW5pbmcgPiAwKSB7CisgICAgLy8gVGhlIHNpemUgdHlwZSBoZXJlIG11c3QgbWF0Y2gg
fG5hbHVfaGVhZGVyX3NpemV8LCB3ZSBleHBlY3QgNCBieXRlcy4KKyAgICAvLyBSZWFkIHRoZSBs
ZW5ndGggb2YgdGhlIG5leHQgcGFja2V0IG9mIGRhdGEuIE11c3QgY29udmVydCBmcm9tIGJpZyBl
bmRpYW4KKyAgICAvLyB0byBob3N0IGVuZGlhbi4KKyAgICBSVENfRENIRUNLX0dFKGJ5dGVzX3Jl
bWFpbmluZywgKHNpemVfdCluYWx1X2hlYWRlcl9zaXplKTsKKyAgICB1aW50MzJfdCogdWludDMy
X2RhdGFfcHRyID0gcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KGRhdGFfcHRyKTsKKyAgICB1
aW50MzJfdCBwYWNrZXRfc2l6ZSA9IENGU3dhcEludDMyQmlnVG9Ib3N0KCp1aW50MzJfZGF0YV9w
dHIpOworICAgIC8vIFVwZGF0ZSBidWZmZXIuCisgICAgYW5uZXhiX2J1ZmZlci0+QXBwZW5kRGF0
YShrQW5uZXhCSGVhZGVyQnl0ZXMsIHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpKTsKKyAgICBh
bm5leGJfYnVmZmVyLT5BcHBlbmREYXRhKGRhdGFfcHRyICsgbmFsdV9oZWFkZXJfc2l6ZSwgcGFj
a2V0X3NpemUpOworICAgIC8vIFVwZGF0ZSBmcmFnbWVudGF0aW9uLgorICAgIGZyYWdfb2Zmc2V0
cy5wdXNoX2JhY2sobmFsdV9vZmZzZXQgKyBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7Cisg
ICAgZnJhZ19sZW5ndGhzLnB1c2hfYmFjayhwYWNrZXRfc2l6ZSk7CisgICAgbmFsdV9vZmZzZXQg
Kz0gc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykgKyBwYWNrZXRfc2l6ZTsKKworICAgIHNpemVf
dCBieXRlc193cml0dGVuID0gcGFja2V0X3NpemUgKyBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVz
KTsKKyAgICBieXRlc19yZW1haW5pbmcgLT0gYnl0ZXNfd3JpdHRlbjsKKyAgICBkYXRhX3B0ciAr
PSBieXRlc193cml0dGVuOworICB9CisgIFJUQ19EQ0hFQ0tfRVEoYnl0ZXNfcmVtYWluaW5nLCAo
c2l6ZV90KTApOworCisgIHN0ZDo6dW5pcXVlX3B0cjxSVFBGcmFnbWVudGF0aW9uSGVhZGVyPiBo
ZWFkZXIobmV3IFJUUEZyYWdtZW50YXRpb25IZWFkZXIoKSk7CisgIGhlYWRlci0+VmVyaWZ5QW5k
QWxsb2NhdGVGcmFnbWVudGF0aW9uSGVhZGVyKGZyYWdfb2Zmc2V0cy5zaXplKCkpOworICBSVENf
RENIRUNLX0VRKGZyYWdfbGVuZ3Rocy5zaXplKCksIGZyYWdfb2Zmc2V0cy5zaXplKCkpOworICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGZyYWdfb2Zmc2V0cy5zaXplKCk7ICsraSkgeworICAgIGhl
YWRlci0+ZnJhZ21lbnRhdGlvbk9mZnNldFtpXSA9IGZyYWdfb2Zmc2V0c1tpXTsKKyAgICBoZWFk
ZXItPmZyYWdtZW50YXRpb25MZW5ndGhbaV0gPSBmcmFnX2xlbmd0aHNbaV07CisgIH0KKyAgKm91
dF9oZWFkZXIgPSBzdGQ6Om1vdmUoaGVhZGVyKTsKKyAgQ0ZSZWxlYXNlKGNvbnRpZ3VvdXNfYnVm
ZmVyKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgSDI2NUFubmV4QkJ1ZmZlclRvQ01TYW1w
bGVCdWZmZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFubmV4Yl9idWZmZXJfc2l6ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IHZpZGVvX2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01T
YW1wbGVCdWZmZXJSZWYqIG91dF9zYW1wbGVfYnVmZmVyKSB7CisgIFJUQ19EQ0hFQ0soYW5uZXhi
X2J1ZmZlcik7CisgIFJUQ19EQ0hFQ0sob3V0X3NhbXBsZV9idWZmZXIpOworICBSVENfRENIRUNL
KHZpZGVvX2Zvcm1hdCk7CisgICpvdXRfc2FtcGxlX2J1ZmZlciA9IG51bGxwdHI7CisKKyAgQW5u
ZXhCQnVmZmVyUmVhZGVyIHJlYWRlcihhbm5leGJfYnVmZmVyLCBhbm5leGJfYnVmZmVyX3NpemUp
OworICBpZiAocmVhZGVyLlNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjU6OmtWcHMpKSB7CisgICAg
Ly8gQnVmZmVyIGNvbnRhaW5zIGFuIFNQUyBOQUxVIC0gc2tpcCBpdCBhbmQgdGhlIGZvbGxvd2lu
ZyBQUFMKKyAgICBjb25zdCB1aW50OF90KiBkYXRhOworICAgIHNpemVfdCBkYXRhX2xlbjsKKyAg
ICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmZGF0YSwgJmRhdGFfbGVuKSkgeworICAgICAgUlRDX0xP
RyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byByZWFkIFZQUyI7CisgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICAgIGlmICghcmVhZGVyLlJlYWROYWx1KCZkYXRhLCAmZGF0YV9sZW4pKSB7Cisg
ICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgU1BTIjsKKyAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKCFyZWFkZXIuUmVhZE5hbHUoJmRhdGEsICZkYXRh
X2xlbikpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBQUFMi
OworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICAvLyBObyBTUFMg
TkFMVSAtIHN0YXJ0IHJlYWRpbmcgZnJvbSB0aGUgZmlyc3QgTkFMVSBpbiB0aGUgYnVmZmVyCisg
ICAgcmVhZGVyLlNlZWtUb1N0YXJ0KCk7CisgIH0KKworICAvLyBBbGxvY2F0ZSBtZW1vcnkgYXMg
YSBibG9jayBidWZmZXIuCisgIC8vIFRPRE8odGtjaGluKTogZmlndXJlIG91dCBob3cgdG8gdXNl
IGEgcG9vbC4KKyAgQ01CbG9ja0J1ZmZlclJlZiBibG9ja19idWZmZXIgPSBudWxscHRyOworICBP
U1N0YXR1cyBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKAorICAg
ICAgbnVsbHB0ciwgbnVsbHB0ciwgcmVhZGVyLkJ5dGVzUmVtYWluaW5nKCksIG51bGxwdHIsIG51
bGxwdHIsIDAsCisgICAgICByZWFkZXIuQnl0ZXNSZW1haW5pbmcoKSwga0NNQmxvY2tCdWZmZXJB
c3N1cmVNZW1vcnlOb3dGbGFnLAorICAgICAgJmJsb2NrX2J1ZmZlcik7CisgIGlmIChzdGF0dXMg
IT0ga0NNQmxvY2tCdWZmZXJOb0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWls
ZWQgdG8gY3JlYXRlIGJsb2NrIGJ1ZmZlci4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisg
IC8vIE1ha2Ugc3VyZSBibG9jayBidWZmZXIgaXMgY29udGlndW91cy4KKyAgQ01CbG9ja0J1ZmZl
clJlZiBjb250aWd1b3VzX2J1ZmZlciA9IG51bGxwdHI7CisgIGlmICghQ01CbG9ja0J1ZmZlcklz
UmFuZ2VDb250aWd1b3VzKGJsb2NrX2J1ZmZlciwgMCwgMCkpIHsKKyAgICBzdGF0dXMgPSBDTUJs
b2NrQnVmZmVyQ3JlYXRlQ29udGlndW91cygKKyAgICAgICAgbnVsbHB0ciwgYmxvY2tfYnVmZmVy
LCBudWxscHRyLCBudWxscHRyLCAwLCAwLCAwLCAmY29udGlndW91c19idWZmZXIpOworICAgIGlm
IChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQg
dG8gZmxhdHRlbiBub24tY29udGlndW91cyBibG9jayBidWZmZXI6ICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgIDw8IHN0YXR1czsKKyAgICAgIENGUmVsZWFzZShibG9ja19idWZmZXIpOworICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICBjb250aWd1b3VzX2J1ZmZl
ciA9IGJsb2NrX2J1ZmZlcjsKKyAgICBibG9ja19idWZmZXIgPSBudWxscHRyOworICB9CisKKyAg
Ly8gR2V0IGEgcmF3IHBvaW50ZXIgaW50byBhbGxvY2F0ZWQgbWVtb3J5LgorICBzaXplX3QgYmxv
Y2tfYnVmZmVyX3NpemUgPSAwOworICBjaGFyKiBkYXRhX3B0ciA9IG51bGxwdHI7CisgIHN0YXR1
cyA9IENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlcihjb250aWd1b3VzX2J1ZmZlciwgMCwgbnVs
bHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZibG9ja19idWZm
ZXJfc2l6ZSwgJmRhdGFfcHRyKTsKKyAgaWYgKHN0YXR1cyAhPSBrQ01CbG9ja0J1ZmZlck5vRXJy
KSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgYmxvY2sgYnVmZmVy
IGRhdGEgcG9pbnRlci4iOworICAgIENGUmVsZWFzZShjb250aWd1b3VzX2J1ZmZlcik7CisgICAg
cmV0dXJuIGZhbHNlOworICB9CisgIFJUQ19EQ0hFQ0soYmxvY2tfYnVmZmVyX3NpemUgPT0gcmVh
ZGVyLkJ5dGVzUmVtYWluaW5nKCkpOworCisgIC8vIFdyaXRlIEF2Y2MgTkFMVXMgaW50byBibG9j
ayBidWZmZXIgbWVtb3J5LgorICBBdmNjQnVmZmVyV3JpdGVyIHdyaXRlcihyZWludGVycHJldF9j
YXN0PHVpbnQ4X3QqPihkYXRhX3B0ciksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2Nr
X2J1ZmZlcl9zaXplKTsKKyAgd2hpbGUgKHJlYWRlci5CeXRlc1JlbWFpbmluZygpID4gMCkgewor
ICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfZGF0YV9wdHIgPSBudWxscHRyOworICAgIHNpemVfdCBu
YWx1X2RhdGFfc2l6ZSA9IDA7CisgICAgaWYgKHJlYWRlci5SZWFkTmFsdSgmbmFsdV9kYXRhX3B0
ciwgJm5hbHVfZGF0YV9zaXplKSkgeworICAgICAgd3JpdGVyLldyaXRlTmFsdShuYWx1X2RhdGFf
cHRyLCBuYWx1X2RhdGFfc2l6ZSk7CisgICAgfQorICB9CisKKyAgLy8gQ3JlYXRlIHNhbXBsZSBi
dWZmZXIuCisgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlKG51bGxwdHIsIGNvbnRpZ3Vv
dXNfYnVmZmVyLCB0cnVlLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBudWxscHRyLCB2aWRlb19mb3JtYXQsIDEsIDAsIG51bGxwdHIsIDAsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG51bGxwdHIsIG91dF9zYW1wbGVfYnVmZmVyKTsKKyAgaWYgKHN0
YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3Jl
YXRlIHNhbXBsZSBidWZmZXIuIjsKKyAgICBDRlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOwor
ICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBDRlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOwor
ICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYg
Q3JlYXRlVmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKICAgICBjb25zdCB1aW50OF90KiBhbm5leGJf
YnVmZmVyLAogICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUpIHsKQEAgLTI3OCw2ICs1MDEs
NDMgQEAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIENyZWF0ZVZpZGVvRm9ybWF0RGVzY3Jp
cHRpb24oCiAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUK
K0NNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBDcmVhdGVIMjY1VmlkZW9Gb3JtYXREZXNjcmlw
dGlvbigKKyAgICBjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAorICAgIHNpemVfdCBhbm5l
eGJfYnVmZmVyX3NpemUpIHsKKyAgY29uc3QgdWludDhfdCogcGFyYW1fc2V0X3B0cnNbM10gPSB7
fTsKKyAgc2l6ZV90IHBhcmFtX3NldF9zaXplc1szXSA9IHt9OworICBBbm5leEJCdWZmZXJSZWFk
ZXIgcmVhZGVyKGFubmV4Yl9idWZmZXIsIGFubmV4Yl9idWZmZXJfc2l6ZSk7CisgIC8vIFNraXAg
ZXZlcnl0aW5nIGJlZm9yZSB0aGUgVlBTLCB0aGVuIHJlYWQgdGhlIFZQUywgU1BTIGFuZCBQUFMK
KyAgaWYgKCFyZWFkZXIuU2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NTo6a1ZwcykpIHsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgfQorICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmcGFyYW1fc2V0X3B0
cnNbMF0sICZwYXJhbV9zZXRfc2l6ZXNbMF0pKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwg
IkZhaWxlZCB0byByZWFkIFZQUyI7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgaWYgKCFy
ZWFkZXIuUmVhZE5hbHUoJnBhcmFtX3NldF9wdHJzWzFdLCAmcGFyYW1fc2V0X3NpemVzWzFdKSkg
eworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBTUFMiOworICAgIHJl
dHVybiBudWxscHRyOworICB9CisgIGlmICghcmVhZGVyLlJlYWROYWx1KCZwYXJhbV9zZXRfcHRy
c1syXSwgJnBhcmFtX3NldF9zaXplc1syXSkpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
RmFpbGVkIHRvIHJlYWQgUFBTIjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorCisgIC8vIFBh
cnNlIHRoZSBTUFMgYW5kIFBQUyBpbnRvIGEgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uLgorICBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzY3JpcHRpb24gPSBudWxscHRyOworICBPU1N0
YXR1cyBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGcm9tSEVWQ1BhcmFt
ZXRlclNldHMoCisgICAgICBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAzLCBwYXJhbV9zZXRfcHRycywg
cGFyYW1fc2V0X3NpemVzLCA0LCBudWxscHRyLAorICAgICAgJmRlc2NyaXB0aW9uKTsKKyAgaWYg
KHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8g
Y3JlYXRlIHZpZGVvIGZvcm1hdCBkZXNjcmlwdGlvbi4iOworICAgIHJldHVybiBudWxscHRyOwor
ICB9CisgIHJldHVybiBkZXNjcmlwdGlvbjsKK30KKyNlbmRpZgorCiBBbm5leEJCdWZmZXJSZWFk
ZXI6OkFubmV4QkJ1ZmZlclJlYWRlcihjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCkKICAgICA6
IHN0YXJ0Xyhhbm5leGJfYnVmZmVyKSwgbGVuZ3RoXyhsZW5ndGgpIHsKQEAgLTMyNCw2ICs1ODQs
MTkgQEAgYm9vbCBBbm5leEJCdWZmZXJSZWFkZXI6OlNlZWtUb05leHROYWx1T2ZUeXBlKE5hbHVU
eXBlIHR5cGUpIHsKICAgfQogICByZXR1cm4gZmFsc2U7CiB9CisKKyNpZm5kZWYgRElTQUJMRV9I
MjY1Citib29sIEFubmV4QkJ1ZmZlclJlYWRlcjo6U2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NTo6
TmFsdVR5cGUgdHlwZSkgeworICBmb3IgKDsgb2Zmc2V0XyAhPSBvZmZzZXRzXy5lbmQoKTsgKytv
ZmZzZXRfKSB7CisgICAgaWYgKG9mZnNldF8tPnBheWxvYWRfc2l6ZSA8IDEpCisgICAgICBjb250
aW51ZTsKKyAgICBpZiAoSDI2NTo6UGFyc2VOYWx1VHlwZSgqKHN0YXJ0XyArIG9mZnNldF8tPnBh
eWxvYWRfc3RhcnRfb2Zmc2V0KSkgPT0gdHlwZSkKKyAgICAgIHJldHVybiB0cnVlOworICB9Cisg
IHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiBBdmNjQnVmZmVyV3JpdGVyOjpBdmNjQnVmZmVy
V3JpdGVyKHVpbnQ4X3QqIGNvbnN0IGF2Y2NfYnVmZmVyLCBzaXplX3QgbGVuZ3RoKQogICAgIDog
c3RhcnRfKGF2Y2NfYnVmZmVyKSwgb2Zmc2V0XygwKSwgbGVuZ3RoXyhsZW5ndGgpIHsKICAgUlRD
X0RDSEVDSyhhdmNjX2J1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVf
cmV3cml0ZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oCmluZGV4IGEwYzFh
YTkwYWY1NzU5ZGUzOWI1ZDA2YzIyMWQyODQyOTQzODk4NzYuLjRkYTFjYzU3YzdkMTBhOGJmMzZh
Mjg4ZDczMWMzYzg2MTBlZDU3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9y
ZXdyaXRlci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oCkBAIC0xOCw2
ICsxOCw5IEBACiAjaW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gy
NjQvaDI2NF9jb21tb24uaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAiY29tbW9u
X3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvaW5j
bHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCiAjaW5jbHVkZSAicnRjX2Jhc2UvYnVmZmVyLmgi
CiAKQEAgLTQ3LDYgKzUwLDMxIEBAIGJvb2wgSDI2NEFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZm
ZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYqIG91dF9zYW1wbGVfYnVmZmVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTU1lbW9yeVBvb2xSZWYgbWVtb3J5
X3Bvb2wpOwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorLy8gQ29udmVydHMgYSBzYW1wbGUgYnVm
ZmVyIGVtaXR0ZWQgZnJvbSB0aGUgVmlkZW9Ub29sYm94IGVuY29kZXIgaW50byBhIGJ1ZmZlcgor
Ly8gc3VpdGFibGUgZm9yIFJUUC4gVGhlIHNhbXBsZSBidWZmZXIgaXMgaW4gaHZjYyBmb3JtYXQg
d2hlcmVhcyB0aGUgcnRwIGJ1ZmZlcgorLy8gbmVlZHMgdG8gYmUgaW4gQW5uZXggQiBmb3JtYXQu
IERhdGEgaXMgd3JpdHRlbiBkaXJlY3RseSB0byB8YW5uZXhiX2J1ZmZlcnwKKy8vIGFuZCBhIG5l
dyBSVFBGcmFnbWVudGF0aW9uSGVhZGVyIGlzIHJldHVybmVkIGluIHxvdXRfaGVhZGVyfC4KK2Jv
b2wgSDI2NUNNU2FtcGxlQnVmZmVyVG9Bbm5leEJCdWZmZXIoCisgICAgQ01TYW1wbGVCdWZmZXJS
ZWYgaHZjY19zYW1wbGVfYnVmZmVyLAorICAgIGJvb2wgaXNfa2V5ZnJhbWUsCisgICAgcnRjOjpC
dWZmZXIqIGFubmV4Yl9idWZmZXIsCisgICAgc3RkOjp1bmlxdWVfcHRyPFJUUEZyYWdtZW50YXRp
b25IZWFkZXI+ICpvdXRfaGVhZGVyKQorICAgIF9fT1NYX0FWQUlMQUJMRV9TVEFSVElORyhfX01B
Q18xMF8xMiwgX19JUEhPTkVfMTFfMCk7CisKKyAvLyBDb252ZXJ0cyBhIGJ1ZmZlciByZWNlaXZl
ZCBmcm9tIFJUUCBpbnRvIGEgc2FtcGxlIGJ1ZmZlciBzdWl0YWJsZSBmb3IgdGhlCisvLyBWaWRl
b1Rvb2xib3ggZGVjb2Rlci4gVGhlIFJUUCBidWZmZXIgaXMgaW4gYW5uZXggYiBmb3JtYXQgd2hl
cmVhcyB0aGUgc2FtcGxlCisvLyBidWZmZXIgaXMgaW4gaHZjYyBmb3JtYXQuCisvLyBJZiB8aXNf
a2V5ZnJhbWV8IGlzIHRydWUgdGhlbiB8dmlkZW9fZm9ybWF0fCBpcyBpZ25vcmVkIHNpbmNlIHRo
ZSBmb3JtYXQgd2lsbAorLy8gYmUgcmVhZCBmcm9tIHRoZSBidWZmZXIuIE90aGVyd2lzZSB8dmlk
ZW9fZm9ybWF0fCBtdXN0IGJlIHByb3ZpZGVkLgorLy8gQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZv
ciByZWxlYXNpbmcgdGhlIGNyZWF0ZWQgc2FtcGxlIGJ1ZmZlci4KK2Jvb2wgSDI2NUFubmV4QkJ1
ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFubmV4Yl9idWZmZXJfc2l6
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uUmVmIHZpZGVvX2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYqIG91dF9zYW1wbGVfYnVmZmVyKQorICAgIF9fT1NY
X0FWQUlMQUJMRV9TVEFSVElORyhfX01BQ18xMF8xMiwgX19JUEhPTkVfMTFfMCk7CisjZW5kaWYK
KwogLy8gUmV0dXJucyBhIHZpZGVvIGZvcm1hdCBkZXNjcmlwdGlvbiBjcmVhdGVkIGZyb20gdGhl
IHNwcy9wcHMgaW5mb3JtYXRpb24gaW4KIC8vIHRoZSBBbm5leCBCIGJ1ZmZlci4gSWYgdGhlcmUg
aXMgbm8gc3VjaCBpbmZvcm1hdGlvbiwgbnVsbHB0ciBpcyByZXR1cm5lZC4KIC8vIFRoZSBjYWxs
ZXIgaXMgcmVzcG9uc2libGUgZm9yIHJlbGVhc2luZyB0aGUgZGVzY3JpcHRpb24uCkBAIC01NCw2
ICs4MiwxMyBAQCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgQ3JlYXRlVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvbigKICAgICBjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICAgIHNpemVf
dCBhbm5leGJfYnVmZmVyX3NpemUpOwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uUmVmIENyZWF0ZUgyNjVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKAorICAg
IGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCisgICAgc2l6ZV90IGFubmV4Yl9idWZmZXJf
c2l6ZSkKKyAgICBfX09TWF9BVkFJTEFCTEVfU1RBUlRJTkcoX19NQUNfMTBfMTIsIF9fSVBIT05F
XzExXzApOworI2VuZGlmCisKIC8vIEhlbHBlciBjbGFzcyBmb3IgcmVhZGluZyBOQUxVcyBmcm9t
IGFuIFJUUCBBbm5leCBCIGJ1ZmZlci4KIGNsYXNzIEFubmV4QkJ1ZmZlclJlYWRlciBmaW5hbCB7
CiAgcHVibGljOgpAQCAtNzgsNiArMTEzLDkgQEAgY2xhc3MgQW5uZXhCQnVmZmVyUmVhZGVyIGZp
bmFsIHsKICAgLy8gUmV0dXJuIHRydWUgaWYgYSBOQUxVIG9mIHRoZSBkZXNpcmVkIHR5cGUgaXMg
Zm91bmQsIGZhbHNlIGlmIHdlCiAgIC8vIHJlYWNoZWQgdGhlIGVuZCBpbnN0ZWFkCiAgIGJvb2wg
U2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NDo6TmFsdVR5cGUgdHlwZSk7CisjaWZuZGVmIERJU0FC
TEVfSDI2NQorICBib29sIFNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjU6Ok5hbHVUeXBlIHR5cGUp
OworI2VuZGlmCiAKICBwcml2YXRlOgogICAvLyBSZXR1cm5zIHRoZSB0aGUgbmV4dCBvZmZzZXQg
dGhhdCBjb250YWlucyBOQUxVIGRhdGEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVj
b2Rlcl9mYWN0b3J5Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQppbmRl
eCA1YWNhMDJkNWFiMGMwNDc1ZDM3MzhiNDc2ZWNlOWQxNDAzOTFmNzcwLi4yY2E2ZDBlYTY5OGJj
NGY4OTE5NmEyMWI0MjlkM2Y3NzhiZTI1YmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9f
ZGVjb2Rlcl9mYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNvZGVyX2ZhY3Rvcnku
bW0KQEAgLTk3LDcgKzk3LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IE9iakNW
aWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoCiAgICAgaWYgKFtjb2RlY05h
bWUgaXNFcXVhbFRvU3RyaW5nOmNvZGVjSW5mby5uYW1lXSkgewogICAgICAgaWQ8UlRDVmlkZW9E
ZWNvZGVyPiBkZWNvZGVyID0gW2RlY29kZXJfZmFjdG9yeV8gY3JlYXRlRGVjb2Rlcjpjb2RlY0lu
Zm9dOwogCi0gICAgICBpZiAoW2RlY29kZXIgaXNLaW5kT2ZDbGFzczpbUlRDV3JhcHBlZE5hdGl2
ZVZpZGVvRGVjb2RlciBjbGFzc11dKSB7CisgICAgICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25m
bGljdCwgaXNLaW5kT2ZDbGFzcyBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuCisgICAgICAvLyBT
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KKyAgICAg
IC8vIGlmIChbZGVjb2RlciBpc0tpbmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNv
ZGVyIGNsYXNzXV0pIHsKKyAgICAgIGlmIChbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBb
Y29kZWNOYW1lIGlzRXF1YWw6QCJWUDkiXSkgewogICAgICAgICByZXR1cm4gWyhSVENXcmFwcGVk
TmF0aXZlVmlkZW9EZWNvZGVyICopZGVjb2RlciByZWxlYXNlV3JhcHBlZERlY29kZXJdOwogICAg
ICAgfSBlbHNlIHsKICAgICAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxPYmpDVmlkZW9EZWNv
ZGVyPihuZXcgT2JqQ1ZpZGVvRGVjb2RlcihkZWNvZGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29i
amNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2VuY29kZXJfZmFj
dG9yeS5tbQppbmRleCBhNzU1MzA3YzZiN2NmMjU0ODdmNjI5Y2IwMjQ2OWQ3Yjk0YjQ0YTc2Li4z
MzQ2OTgxM2FmMzQ0ZDI5YjRhZmQ2MjljODBhMjJkNDNlN2VkZDMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3Jj
L29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19lbmNv
ZGVyX2ZhY3RvcnkubW0KQEAgLTE1LDYgKzE1LDkgQEAKICNpbXBvcnQgImJhc2UvUlRDVmlkZW9F
bmNvZGVyLmgiCiAjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnkuaCIKICNpbXBv
cnQgImNvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZh
dGUuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmgiCisjZW5kaWYKICNpbXBvcnQg
InNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENFbmNvZGVkSW1hZ2UrUHJpdmF0ZS5oIgog
I2ltcG9ydCAic2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JUQ1J0cEZyYWdtZW50YXRpb25I
ZWFkZXIrUHJpdmF0ZS5oIgogI2ltcG9ydCAic2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JU
Q1ZpZGVvQ29kZWNJbmZvK1ByaXZhdGUuaCIKQEAgLTY1LDggKzY4LDE2IEBAIGNsYXNzIE9iakNW
aWRlb0VuY29kZXIgOiBwdWJsaWMgVmlkZW9FbmNvZGVyIHsKIAogICAgICAgLy8gSGFuZGxlIHR5
cGVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCBpbnRvIG9uZSBvZiBDb2RlY1NwZWNpZmljSW5mbydz
IGhhcmQgY29kZWQgY2FzZXMuCiAgICAgICBDb2RlY1NwZWNpZmljSW5mbyBjb2RlY1NwZWNpZmlj
SW5mbzsKLSAgICAgIGlmIChbaW5mbyBpc0tpbmRPZkNsYXNzOltSVENDb2RlY1NwZWNpZmljSW5m
b0gyNjQgY2xhc3NdXSkgeworICAgICAgLy8gQmVjYXVzZSBvZiBzeW1ib2wgY29uZmxpY3QsIGlz
S2luZE9mQ2xhc3MgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLgorICAgICAgLy8gU2VlIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3ODIuCisgICAgICBpZiAoW05T
U3RyaW5nRnJvbUNsYXNzKFtpbmZvIGNsYXNzXSkgaXNFcXVhbDpAIldLX1JUQ0NvZGVjU3BlY2lm
aWNJbmZvSDI2NCJdKSB7CisgICAgICAgIC8vIGlmIChbaW5mbyBpc0tpbmRPZkNsYXNzOltSVEND
b2RlY1NwZWNpZmljSW5mb0gyNjQgY2xhc3NdXSkgewogICAgICAgICBjb2RlY1NwZWNpZmljSW5m
byA9IFsoUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0ICopaW5mbyBuYXRpdmVDb2RlY1NwZWNpZmlj
SW5mb107CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgfSBlbHNlIGlmIChbTlNTdHJpbmdG
cm9tQ2xhc3MoW2luZm8gY2xhc3NdKSBpc0VxdWFsOkAiV0tfUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY1Il0pIHsKKyAgICAgICAgLy8gaWYgKFtpbmZvIGlzS2luZE9mQ2xhc3M6W1JUQ0NvZGVjU3Bl
Y2lmaWNJbmZvSDI2NSBjbGFzc11dKSB7CisgICAgICAgIGNvZGVjU3BlY2lmaWNJbmZvID0gWyhS
VENDb2RlY1NwZWNpZmljSW5mb0gyNjUgKilpbmZvIG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXTsK
KyNlbmRpZgogICAgICAgfQogCiAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UlRQRnJhZ21lbnRhdGlv
bkhlYWRlcj4gZnJhZ21lbnRhdGlvbkhlYWRlciA9CkBAIC0xNjcsNyArMTc4LDEwIEBAIHN0ZDo6
dW5pcXVlX3B0cjxWaWRlb0VuY29kZXI+IE9iakNWaWRlb0VuY29kZXJGYWN0b3J5OjpDcmVhdGVW
aWRlb0VuY29kZXIoCiAgICAgY29uc3QgU2RwVmlkZW9Gb3JtYXQgJmZvcm1hdCkgewogICBSVENW
aWRlb0NvZGVjSW5mbyAqaW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRo
TmF0aXZlU2RwVmlkZW9Gb3JtYXQ6Zm9ybWF0XTsKICAgaWQ8UlRDVmlkZW9FbmNvZGVyPiBlbmNv
ZGVyID0gW2VuY29kZXJfZmFjdG9yeV8gY3JlYXRlRW5jb2RlcjppbmZvXTsKLSAgaWYgKFtlbmNv
ZGVyIGlzS2luZE9mQ2xhc3M6W1JUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIgY2xhc3NdXSkg
eworICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5kT2ZDbGFzcyBkb2Vzbid0
IHdvcmsgYXMgZXhwZWN0ZWQuCisgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk4NzgyLgorICAvLyBpZiAoW2VuY29kZXIgaXNLaW5kT2ZDbGFzczpbUlRD
V3JhcHBlZE5hdGl2ZVZpZGVvRW5jb2RlciBjbGFzc11dKSB7CisgIGlmIChbaW5mby5uYW1lIGlz
RXF1YWw6QCJWUDgiXSB8fCBbaW5mby5uYW1lIGlzRXF1YWw6QCJWUDkiXSkgewogICAgIHJldHVy
biBbKFJUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIgKillbmNvZGVyIHJlbGVhc2VXcmFwcGVk
RW5jb2Rlcl07CiAgIH0gZWxzZSB7CiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxPYmpDVmlk
ZW9FbmNvZGVyPihuZXcgT2JqQ1ZpZGVvRW5jb2RlcihlbmNvZGVyKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9f
c3RyZWFtX3JlY2VpdmVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5jYwppbmRleCA4NWZiODg2MmYy
NWYxZTIxZjc1YmEyMTc4Y2ZkY2Y1ZDA1ZjA3YTUzLi4wNThkZjBhZTk2NmU1ZDExZWZhMjRlMDMw
NjQ5YzU2MjkxOWEyY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19z
dHJlYW1fcmVjZWl2ZXIuY2MKQEAgLTU4Nyw3ICs1ODcsMjQgQEAgdm9pZCBSdHBWaWRlb1N0cmVh
bVJlY2VpdmVyOjpPblJlY2VpdmVkUGF5bG9hZERhdGEoCiAgICAgICAgIHBhY2tldC0+dmlkZW9f
cGF5bG9hZCA9IHN0ZDo6bW92ZShmaXhlZC5iaXRzdHJlYW0pOwogICAgICAgICBicmVhazsKICAg
ICB9Ci0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIH0gZWxzZSBpZiAocGFja2V0LT5jb2RlYygp
ID09IGtWaWRlb0NvZGVjSDI2NSkgeworICAgIHZpZGVvX2NvZGluZzo6SDI2NVZwc1Nwc1Bwc1Ry
YWNrZXI6OkZpeGVkQml0c3RyZWFtIGZpeGVkID0KKyAgICAgICAgaDI2NV90cmFja2VyXy5Db3B5
QW5kRml4Qml0c3RyZWFtKAorICAgICAgICAgICAgcnRjOjpNYWtlQXJyYXlWaWV3KGNvZGVjX3Bh
eWxvYWQuY2RhdGEoKSwgY29kZWNfcGF5bG9hZC5zaXplKCkpLAorICAgICAgICAgICAgJnBhY2tl
dC0+dmlkZW9faGVhZGVyKTsKKyAgICBzd2l0Y2ggKGZpeGVkLmFjdGlvbikgeworICAgICAgY2Fz
ZSB2aWRlb19jb2Rpbmc6OkgyNjVWcHNTcHNQcHNUcmFja2VyOjprUmVxdWVzdEtleWZyYW1lOgor
ICAgICAgICBydGNwX2ZlZWRiYWNrX2J1ZmZlcl8uUmVxdWVzdEtleUZyYW1lKCk7CisgICAgICAg
IHJ0Y3BfZmVlZGJhY2tfYnVmZmVyXy5TZW5kQnVmZmVyZWRSdGNwRmVlZGJhY2soKTsKKyAgICAg
ICAgQUJTTF9GQUxMVEhST1VHSF9JTlRFTkRFRDsKKyAgICAgIGNhc2UgdmlkZW9fY29kaW5nOjpI
MjY1VnBzU3BzUHBzVHJhY2tlcjo6a0Ryb3A6CisgICAgICAgIHJldHVybjsKKyAgICAgIGNhc2Ug
dmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlcjo6a0luc2VydDoKKyAgICAgICAgcGFj
a2V0LT52aWRlb19wYXlsb2FkID0gc3RkOjptb3ZlKGZpeGVkLmJpdHN0cmVhbSk7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyNlbmRpZgogICB9IGVsc2UgewogICAgIHBhY2tldC0+dmlkZW9fcGF5
bG9hZCA9IHN0ZDo6bW92ZShjb2RlY19wYXlsb2FkKTsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVh
bV9yZWNlaXZlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
dmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oCmluZGV4IDAzMDcwZGI1MWRjNWQzYmJm
MzBlNjFmYjhhYTBlZWJlOTVlMjJhNzEuLjMzMDQ1NWIxYjg2YmQ1ZmQzZTQwZDUzNjM2YjYwM2Vj
NjcwMzc3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3Jl
Y2VpdmVyLmgKQEAgLTM4LDYgKzM4LDkgQEAKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3Nv
dXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19j
b2RpbmcvaDI2NF9zcHNfcHBzX3RyYWNrZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9sb3NzX25vdGlmaWNhdGlvbl9jb250cm9sbGVyLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2
NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tl
ci5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvcGFja2V0X2J1ZmZl
ci5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL3J0cF9mcmFtZV9yZWZlcmVuY2Vf
ZmluZGVyLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvdW5pcXVlX3RpbWVzdGFt
cF9jb3VudGVyLmgiCkBAIC0zMTcsNiArMzIwLDEwIEBAIGNsYXNzIFJ0cFZpZGVvU3RyZWFtUmVj
ZWl2ZXIgOiBwdWJsaWMgTG9zc05vdGlmaWNhdGlvblNlbmRlciwKICAgLy8gTWFwcyBwYXlsb2Fk
IGlkIHRvIHRoZSBkZXBhY2tldGl6ZXIuCiAgIHN0ZDo6bWFwPHVpbnQ4X3QsIHN0ZDo6dW5pcXVl
X3B0cjxWaWRlb1J0cERlcGFja2V0aXplcj4+IHBheWxvYWRfdHlwZV9tYXBfOwogCisjaWZuZGVm
IERJU0FCTEVfSDI2NQorICB2aWRlb19jb2Rpbmc6OkgyNjVWcHNTcHNQcHNUcmFja2VyIGgyNjVf
dHJhY2tlcl87CisjZW5kaWYKKwogICAvLyBUT0RPKGpvaGFuKTogUmVtb3ZlIHB0X2NvZGVjX3Bh
cmFtc18gb25jZQogICAvLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3Avd2VicnRjL2lzc3Vl
cy9kZXRhaWw/aWQ9Njg4MyBpcyByZXNvbHZlZC4KICAgLy8gTWFwcyBhIHBheWxvYWQgdHlwZSB0
byBhIG1hcCBvZiBvdXQtb2YtYmFuZCBzdXBwbGllZCBjb2RlYyBwYXJhbWV0ZXJzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vc2Vu
ZF9zdGF0aXN0aWNzX3Byb3h5LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvdmlkZW8vc2VuZF9zdGF0aXN0aWNzX3Byb3h5LmNjCmluZGV4IDYwZDg0ZjE0Yzc4
OWU5YzVkMzk5YWRlZTQ4YmRkMzE3ZGFjMDg2MDAuLmYyMTQxNzIyOWE3MGYyYjgyMTM4ODYwNWM0
ODBjMDFjNTc5NWQ4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3ZpZGVvL3NlbmRfc3RhdGlzdGljc19wcm94eS5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9zZW5kX3N0YXRpc3RpY3Nf
cHJveHkuY2MKQEAgLTQ3LDYgKzQ3LDcgQEAgZW51bSBIaXN0b2dyYW1Db2RlY1R5cGUgewogICBr
VmlkZW9WcDggPSAxLAogICBrVmlkZW9WcDkgPSAyLAogICBrVmlkZW9IMjY0ID0gMywKKyAga1Zp
ZGVvSDI2NSA9IDQsCiAgIGtWaWRlb01heCA9IDY0LAogfTsKIApAQCAtNzQsNiArNzUsMTAgQEAg
SGlzdG9ncmFtQ29kZWNUeXBlIFBheWxvYWROYW1lVG9IaXN0b2dyYW1Db2RlY1R5cGUoCiAgICAg
ICByZXR1cm4ga1ZpZGVvVnA5OwogICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgcmV0
dXJuIGtWaWRlb0gyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29k
ZWNIMjY1OgorICAgICAgcmV0dXJuIGtWaWRlb0gyNjU7CisjZW5kaWYKICAgICBkZWZhdWx0Ogog
ICAgICAgcmV0dXJuIGtWaWRlb1Vua25vd247CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3RyZWFt
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vdmlk
ZW9fcmVjZWl2ZV9zdHJlYW0uY2MKaW5kZXggMjQ2ZGFhZGI4MWJiYmVmOGNjMGY4OGRiYzUxZDk0
ZWMzOTZiYzc4My4uZjFiNjU1ZjAxODQzYTJiZjY2NDNmMmViNzY3YTQ3MmQxMDg2MjY4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8v
dmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MKQEAgLTEzNCw2ICsx
MzQsMTEgQEAgVmlkZW9Db2RlYyBDcmVhdGVEZWNvZGVyVmlkZW9Db2RlYyhjb25zdCBWaWRlb1Jl
Y2VpdmVTdHJlYW06OkRlY29kZXImIGRlY29kZXIpIHsKICAgICBhc3NvY2lhdGVkX2NvZGVjLmNv
ZGVjVHlwZSA9IGtWaWRlb0NvZGVjTXVsdGlwbGV4OwogICAgIHJldHVybiBhc3NvY2lhdGVkX2Nv
ZGVjOwogICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBlbHNlIGlmIChjb2RlYy5jb2RlY1R5
cGUgPT0ga1ZpZGVvQ29kZWNIMjY1KSB7CisgICAgKihjb2RlYy5IMjY1KCkpID0gVmlkZW9FbmNv
ZGVyOjpHZXREZWZhdWx0SDI2NVNldHRpbmdzKCk7CisgIH0KKyNlbmRpZgogCiAgIGNvZGVjLndp
ZHRoID0gMzIwOwogICBjb2RlYy5oZWlnaHQgPSAxODA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19zdHJlYW1fZW5jb2Rl
ci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3Zp
ZGVvX3N0cmVhbV9lbmNvZGVyLmNjCmluZGV4IDgyNTJjYjI5ZWYxN2RmMGNmMGEyZmM4ZmRkZTcw
ZjFkNTllOWQ4ZDUuLjUyODkxZTljMWI3MGM4ODY0Nzg0YjQ1NDMyZTNlYzM4ZjIwNThiZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVv
L3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjCkBAIC0xMDAsNyAr
MTAwLDEzIEBAIGJvb2wgUmVxdWlyZXNFbmNvZGVyUmVzZXQoY29uc3QgVmlkZW9Db2RlYyYgcHJl
dl9zZW5kX2NvZGVjLAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgIH0KICAgICAgIGJyZWFr
OwotCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAg
ICAgaWYgKG5ld19zZW5kX2NvZGVjLkgyNjUoKSAhPSBwcmV2X3NlbmRfY29kZWMuSDI2NSgpKSB7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICAgICAgYnJlYWs7CisjZW5kaWYKICAg
ICBkZWZhdWx0OgogICAgICAgYnJlYWs7CiAgIH0KQEAgLTE0MDMsNiArMTQwOSw5IEBAIEVuY29k
ZWRJbWFnZUNhbGxiYWNrOjpSZXN1bHQgVmlkZW9TdHJlYW1FbmNvZGVyOjpPbkVuY29kZWRJbWFn
ZSgKICAgaWYgKGNvZGVjX3NwZWNpZmljX2luZm8gJiYKICAgICAgIChjb2RlY19zcGVjaWZpY19p
bmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNWUDggfHwKICAgICAgICBjb2RlY19zcGVjaWZp
Y19pbmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY0IHx8CisjaWZuZGVmIERJU0FCTEVf
SDI2NQorICAgICAgIGNvZGVjX3NwZWNpZmljX2luZm8tPmNvZGVjVHlwZSA9PSBrVmlkZW9Db2Rl
Y0gyNjUgfHwKKyNlbmRpZgogICAgICAgIGNvZGVjX3NwZWNpZmljX2luZm8tPmNvZGVjVHlwZSA9
PSBrVmlkZW9Db2RlY0dlbmVyaWMpKSB7CiAgICAgc2ltdWxjYXN0X2lkID0gZW5jb2RlZF9pbWFn
ZS5TcGF0aWFsSW5kZXgoKS52YWx1ZV9vcigwKTsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGRjNTQxMDQ5M2ZiYTAwYWNmYmZjZGJkOWQwMWY3YjA4Y2M3Y2MzMzcuLmIx
N2Y4NjY4OGE4YjI5OTY0N2JmYWZhY2YzMDgyMDNjZGYwNWQ2MGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTI5LDYgKzI5LDI4IEBACiAJCTQxMDA5MURDMjQyRTBCQkMwMEM1
RURBMiAvKiB2aWRlb19jb2RlY190eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFENzI0MkUwQkJCMDBDNUVEQTIgLyogdmlkZW9fY29kZWNf
dHlwZS5oICovOyB9OwogCQk0MTAwOTFERDI0MkUwQkJDMDBDNUVEQTIgLyogcmVjb3JkYWJsZV9l
bmNvZGVkX2ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTAwOTFEODI0MkUwQkJCMDBDNUVEQTIgLyogcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1l
LmggKi87IH07CiAJCTQxMDA5MURFMjQyRTBCQkMwMEM1RURBMiAvKiB2aWRlb19mcmFtZV90eXBl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFE
OTI0MkUwQkJCMDBDNUVEQTIgLyogdmlkZW9fZnJhbWVfdHlwZS5oICovOyB9OworCQk0MTAwOTFF
NjI0MkUyQUEzMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmNjIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRTAyNDJFMkFBMTAwQzVFREEyIC8q
IHJ0cF9mb3JtYXRfaDI2NS5jYyAqLzsgfTsKKwkJNDEwMDkxRTcyNDJFMkFBMzAwQzVFREEyIC8q
IHJ0cF9mb3JtYXRfaDI2NS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwMDkxRTEyNDJFMkFBMjAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5oICov
OyB9OworCQk0MTAwOTFFOTI0MkUyQUEzMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFFMzI0MkUy
QUEyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmggKi87IH07CisJCTQxMDA5MUVEMjQyRTMx
NzQwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUVCMjQyRTMxNzMwMEM1RURBMiAv
KiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCAqLzsgfTsKKwkJNDEwMDkxRUUyNDJFMzE3NDAw
QzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUVDMjQyRTMxNzMwMEM1RURBMiAvKiBo
MjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgKi87IH07CisJCTQxMDA5MUY4MjQyRTM2MjIwMEM1
RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGMDI0MkUzNjIwMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFy
c2VyLmNjICovOyB9OworCQk0MTAwOTFGOTI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFy
c2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAw
OTFGMTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmggKi87IH07CisJCTQxMDA5
MUZBMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUYyMjQyRTM2MjEwMEM1RURBMiAv
KiBoMjY1X3Bwc19wYXJzZXIuaCAqLzsgfTsKKwkJNDEwMDkxRkIyNDJFMzYyMjAwQzVFREEyIC8q
IGgyNjVfcHBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxMDA5MUYzMjQyRTM2MjEwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuY2Mg
Ki87IH07CisJCTQxMDA5MUZDMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Zwc19wYXJzZXIuY2Mg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGNDI0
MkUzNjIxMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjICovOyB9OworCQk0MTAwOTFGRDI0
MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUY1MjQyRTM2MjEwMEM1RURBMiAvKiBoMjY1X2Nv
bW1vbi5oICovOyB9OworCQk0MTAwOTFGRTI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV92cHNfcGFy
c2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAw
OTFGNjI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmggKi87IH07CisJCTQxMDA5
MUZGMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5jYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUY3MjQyRTM2MjIwMEM1RURBMiAvKiBo
MjY1X2NvbW1vbi5jYyAqLzsgfTsKKwkJNDEwMDkyMDkyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1Zp
ZGVvRGVjb2RlckgyNjUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMDA5MjAwMjQyRTNBNDMwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lmgg
Ki87IH07CisJCTQxMDA5MjBBMjQyRTNBNDYwMEM1RURBMiAvKiBSVENIMjY1UHJvZmlsZUxldmVs
SWQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAw
OTIwMTI0MkUzQTQ0MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tICovOyB9Owor
CQk0MTAwOTIwQjI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTIwMjI0
MkUzQTQ0MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmggKi87IH07CisJCTQx
MDA5MjBDMjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDky
MDMyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmgg
Ki87IH07CisJCTQxMDA5MjBEMjQyRTNBNDYwMEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJIMjY1
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTIw
NDI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5oICovOyB9OworCQk0MTAw
OTIwRTI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTIwNTI0MkUzQTQ1MDBD
NUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLmggKi87IH07CisJCTQxMDA5MjBGMjQyRTNB
NDYwMEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDYyNDJFM0E0NTAwQzVFREEyIC8qIFJU
Q1ZpZGVvRW5jb2RlckgyNjUubW0gKi87IH07CisJCTQxMDA5MjEwMjQyRTNBNDYwMEM1RURBMiAv
KiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwMDkyMDcyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRGVjb2Rl
ckgyNjUubW0gKi87IH07CisJCTQxMDA5MjExMjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1Nw
ZWNpZmljSW5mb0gyNjUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTAwOTIwODI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY1Lm1tICovOyB9OwogCQk0MTAyRjZBMTIxMjczMjYyMDA2QUU4RDcgLyogcmVtaXhfcmVzYW1w
bGUuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAy
RjY5NzIxMjczMjYwMDA2QUU4RDcgLyogcmVtaXhfcmVzYW1wbGUuY2MgKi87IH07CiAJCTQxMDJG
NkEyMjEyNzMyNjIwMDZBRThENyAvKiBhdWRpb19sZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMkY2OTgyMTI3MzI2MDAwNkFFOEQ3IC8qIGF1
ZGlvX2xldmVsLmggKi87IH07CiAJCTQxMDJGNkE0MjEyNzMyNjIwMDZBRThENyAvKiBhdWRpb19s
ZXZlbC5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MDJGNjlBMjEyNzMyNjEwMDZBRThENyAvKiBhdWRpb19sZXZlbC5jYyAqLzsgfTsKQEAgLTM5MjYs
NiArMzk0OCwzMSBAQAogCQk0MTAwOTFENzI0MkUwQkJCMDBDNUVEQTIgLyogdmlkZW9fY29kZWNf
dHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB2aWRlb19jb2RlY190eXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDA5MUQ4MjQyRTBCQkIwMEM1RURB
MiAvKiByZWNvcmRhYmxlX2VuY29kZWRfZnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMDA5MUQ5MjQyRTBCQkIwMEM1RURBMiAvKiB2aWRlb19mcmFtZV90eXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHZpZGVvX2ZyYW1lX3R5cGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxREYyNDJFMkFBMTAwQzVFREEyIC8qIGNv
bnRyaWJ1dGluZ19zb3VyY2VzLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gY29udHJpYnV0aW5nX3NvdXJjZXMuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxMDA5MUUwMjQyRTJBQTEwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuY2MgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBydHBfZm9ybWF0X2gyNjUuY2M7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MUUxMjQyRTJBQTIwMEM1RURBMiAvKiBydHBfZm9y
bWF0X2gyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcnRwX2Zvcm1hdF9o
MjY1Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MUUyMjQyRTJBQTIwMEM1
RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBoMjY1X3Nwc19wYXJzZXIuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxMDA5MUUzMjQyRTJBQTIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaDI2NV9zcHNfcGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxMDA5MUU0MjQyRTJBQTIwMEM1RURBMiAvKiBjb250cmlidXRpbmdf
c291cmNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjb250cmlidXRpbmdf
c291cmNlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFQjI0MkUzMTcz
MDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTAwOTFFQzI0MkUzMTczMDBDNUVEQTIgLyogaDI2NV92cHNfc3Bz
X3Bwc190cmFja2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2
NV92cHNfc3BzX3Bwc190cmFja2VyLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTAwOTFGMDI0MkUzNjIwMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV9zcHNfcGFyc2VyLmNjOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFGMTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9zcHNf
cGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVfc3BzX3BhcnNl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFGMjI0MkUzNjIxMDBDNUVE
QTIgLyogaDI2NV9wcHNfcGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IGgyNjVfcHBzX3BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFG
MzI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmNjICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV9wcHNfcGFyc2VyLmNjOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTAwOTFGNDI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2Vy
LmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV92cHNfcGFyc2Vy
LmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFGNTI0MkUzNjIxMDBDNUVE
QTIgLyogaDI2NV9jb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaDI2
NV9jb21tb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjYyNDJFMzYy
MjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBoMjY1X3Zwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDEwMDkxRjcyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmNjICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV9jb21tb24uY2M7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMDA5MjAwMjQyRTNBNDMwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJI
MjY1LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1ZpZGVvRGVjb2Rlckgy
NjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDEyNDJFM0E0NDAwQzVF
REEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDIyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lm
aWNJbmZvSDI2NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENDb2RlY1Nw
ZWNpZmljSW5mb0gyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDMy
NDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUr
UHJpdmF0ZS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDQyNDJFM0E0
NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUlRDVmlkZW9FbmNvZGVySDI2NS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTAwOTIwNTI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0gyNjVQcm9maWxlTGV2ZWxJ
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTIwNjI0MkUzQTQ1MDBDNUVE
QTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFJUQ1ZpZGVvRW5jb2RlckgyNjUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUlRDVmlkZW9EZWNv
ZGVySDI2NS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDgyNDJFM0E0
NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMENERTUyMUNBQ0ZEMDAwRjlCODdEIC8qIExQ
Q19maXQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gTFBDX2ZpdC5jOyBwYXRo
ID0gc2lsay9MUENfZml0LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDBDREU4
MjFDQUQwMzMwMEY5Qjg3RCAvKiB2cV9zc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gdnFfc3NlLmg7IHBhdGggPSB4ODYvdnFfc3NlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMDBDREVCMjFDQUQxRjUwMEY5Qjg3RCAvKiBwaXRjaF9zc2U0XzEuYyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGl0Y2hfc3NlNF8xLmM7IHBhdGggPSB4ODYv
cGl0Y2hfc3NlNF8xLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03ODU3LDYgKzc5
MDQsMjEgQEAKIC8qIEVuZCBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFBCWEdyb3VwIHNlY3Rpb24gKi8KKwkJNDEwMDkxRUYyNDJFMzYwODAwQzVFREEyIC8q
IGgyNjUgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQx
MDA5MUY3MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5jYyAqLywKKwkJCQk0MTAwOTFG
NTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9jb21tb24uaCAqLywKKwkJCQk0MTAwOTFGMzI0MkUz
NjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmNjICovLAorCQkJCTQxMDA5MUYyMjQyRTM2
MjEwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuaCAqLywKKwkJCQk0MTAwOTFGMDI0MkUzNjIw
MDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovLAorCQkJCTQxMDA5MUYxMjQyRTM2MjEw
MEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuaCAqLywKKwkJCQk0MTAwOTFGNDI0MkUzNjIxMDBD
NUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjICovLAorCQkJCTQxMDA5MUY2MjQyRTM2MjIwMEM1
RURBMiAvKiBoMjY1X3Zwc19wYXJzZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gaDI2NTsKKwkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQxMDVFQjY0MjEyRTAxOEMwMDhDMEMy
MCAvKiBsaWJ2cHggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApA
QCAtOTExOCwyMyArOTE4MCwzMiBAQAogCQkJCTQxNjIyNUY1MjE2OTgxRjQwMEE5MUM5QiAvKiBo
ZWxwZXJzLmggKi8sCiAJCQkJNDE3OTUzQUMyMTY5ODIzRDAwMjgyNjZCIC8qIG5hbHVfcmV3cml0
ZXIuY2MgKi8sCiAJCQkJNDExNTIxRDUyMTY5ODIyMDAwMEFCQUY3IC8qIG5hbHVfcmV3cml0ZXIu
aCAqLywKLQkJCQk0MTc5NTNCMjIxNjk4MjQxMDAyODI2NkIgLyogUlRDQ29kZWNTcGVjaWZpY0lu
Zm9IMjY0K1ByaXZhdGUuaCAqLywKIAkJCQk0MTYyMjVGMTIxNjk4MUYzMDBBOTFDOUIgLyogUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY0LmggKi8sCiAJCQkJNDE2MjI1RUQyMTY5ODFGMjAwQTkxQzlC
IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NC5tbSAqLywKKwkJCQk0MTc5NTNCMjIxNjk4MjQx
MDAyODI2NkIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZhdGUuaCAqLywKKwkJCQk0
MTAwOTIwMjI0MkUzQTQ0MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmggKi8s
CisJCQkJNDEwMDkyMDgyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NS5tbSAqLywKKwkJCQk0MTAwOTIwMzI0MkUzQTQ0MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZp
Y0luZm9IMjY1K1ByaXZhdGUuaCAqLywKIAkJCQk0MTc5NTNCMzIxNjk4MjQyMDAyODI2NkIgLyog
UlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaCAqLywKIAkJCQk0MTc5NTNBRDIxNjk4MjNF
MDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSAqLywKIAkJCQk0MTYy
MjVGNzIxNjk4MUY0MDBBOTFDOUIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaCAq
LywKIAkJCQk0MTc5NTNBRjIxNjk4MjNGMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2Rl
ckZhY3RvcnkubSAqLywKIAkJCQk0MTE1MjFENDIxNjk4MjFGMDAwQUJBRjcgLyogUlRDSDI2NFBy
b2ZpbGVMZXZlbElkLmggKi8sCiAJCQkJNDExNTIxRDYyMTY5ODIyMDAwMEFCQUY3IC8qIFJUQ0gy
NjRQcm9maWxlTGV2ZWxJZC5tbSAqLywKKwkJCQk0MTAwOTIwNTI0MkUzQTQ1MDBDNUVEQTIgLyog
UlRDSDI2NVByb2ZpbGVMZXZlbElkLmggKi8sCisJCQkJNDEwMDkyMDEyNDJFM0E0NDAwQzVFREEy
IC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSAqLywKIAkJCQk0MTYyMjVGMjIxNjk4MUYzMDBB
OTFDOUIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQuaCAqLywKIAkJCQk0MTc5NTNCMDIx
Njk4MjQwMDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQubSAqLywKIAkJCQk0
MTYyMjVGMzIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5oICovLAogCQkJ
CTQxNjIyNUY0MjE2OTgxRjMwMEE5MUM5QiAvKiBSVENWaWRlb0RlY29kZXJIMjY0Lm1tICovLAor
CQkJCTQxMDA5MjAwMjQyRTNBNDMwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1LmggKi8s
CisJCQkJNDEwMDkyMDcyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0g
Ki8sCiAJCQkJNDE2MjI1RUYyMTY5ODFGMjAwQTkxQzlCIC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3Rv
cnlIMjY0LmggKi8sCiAJCQkJNDE3OTUzQjEyMTY5ODI0MDAwMjgyNjZCIC8qIFJUQ1ZpZGVvRW5j
b2RlckZhY3RvcnlIMjY0Lm0gKi8sCiAJCQkJNDE2MjI1RUMyMTY5ODFGMjAwQTkxQzlCIC8qIFJU
Q1ZpZGVvRW5jb2RlckgyNjQuaCAqLywKIAkJCQk0MTYyMjVGNjIxNjk4MUY0MDBBOTFDOUIgLyog
UlRDVmlkZW9FbmNvZGVySDI2NC5tbSAqLywKKwkJCQk0MTAwOTIwNDI0MkUzQTQ1MDBDNUVEQTIg
LyogUlRDVmlkZW9FbmNvZGVySDI2NS5oICovLAorCQkJCTQxMDA5MjA2MjQyRTNBNDUwMEM1RURB
MiAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1tICovLAogCQkJCTQxNjIyNUVFMjE2OTgxRjIwMEE5
MUM5QiAvKiBVSURldmljZStIMjY0UHJvZmlsZS5oICovLAogCQkJCTQxNzk1M0FFMjE2OTgyM0Yw
MDI4MjY2QiAvKiBVSURldmljZStIMjY0UHJvZmlsZS5tbSAqLywKIAkJCSk7CkBAIC0xMTcwOSw2
ICsxMTc4MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0MTMxQzQyQTIzNEM3RDcwMDAyOEE2
MTUgLyogZ2VuZXJpY19mcmFtZV9kZXNjcmlwdG9yICovLAogCQkJCTVDREQ4MzQxMUU0MzI1NjQw
MDYyMUU5MiAvKiBoMjY0ICovLAorCQkJCTQxMDA5MUVGMjQyRTM2MDgwMEM1RURBMiAvKiBoMjY1
ICovLAogCQkJCTQxMTA5QUE0MUU1RkExODEwMEMwOTU1QSAvKiBpbmNsdWRlICovLAogCQkJCTVD
REQ4MzY1MUU0MzI1QzIwMDYyMUU5MiAvKiBsaWJ5dXYgKi8sCiAJCQkJNUM0QjRDMTAxRTQzMUY3
NTAwMjY1MUM4IC8qIGJpdHJhdGVfYWRqdXN0ZXIuY2MgKi8sCkBAIC0xMjYzMiw2ICsxMjcwNCw4
IEBACiAJCQkJNUNEMjg1RTkxRTZBNjM5RjAwOTRGREM4IC8qIGgyNjRfc3Byb3BfcGFyYW1ldGVy
X3NldHMuaCAqLywKIAkJCQk1Q0REODM5QTFFNDM5QTZGMDA2MjFFOTIgLyogaDI2NF9zcHNfcHBz
X3RyYWNrZXIuY2MgKi8sCiAJCQkJNUNERDgzOUIxRTQzOUE2RjAwNjIxRTkyIC8qIGgyNjRfc3Bz
X3Bwc190cmFja2VyLmggKi8sCisJCQkJNDEwMDkxRUMyNDJFMzE3MzAwQzVFREEyIC8qIGgyNjVf
dnBzX3Nwc19wcHNfdHJhY2tlci5jYyAqLywKKwkJCQk0MTAwOTFFQjI0MkUzMTczMDBDNUVEQTIg
LyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggKi8sCiAJCQkJNUNERDgzOUMxRTQzOUE2RjAw
NjIxRTkyIC8qIGhpc3RvZ3JhbS5jYyAqLywKIAkJCQk1Q0REODM5RDFFNDM5QTZGMDA2MjFFOTIg
LyogaGlzdG9ncmFtLmggKi8sCiAJCQkJNUNERDgzOUUxRTQzOUE2RjAwNjIxRTkyIC8qIGludGVy
X2ZyYW1lX2RlbGF5LmNjICovLApAQCAtMTMyNjcsMTEgKzEzMzQxLDE0IEBACiAJCTVDREQ4N0ZB
MUU0M0JFMjYwMDYyMUU5MiAvKiBzb3VyY2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTVDREQ4OEVCMUU0M0JGMjUwMDYyMUU5MiAvKiBydGNwX3BhY2tl
dCAqLywKIAkJCQk0MTMxQzRDODIzNEM4NEExMDAyOEE2MTUgLyogYWJzb2x1dGVfY2FwdHVyZV90
aW1lX3JlY2VpdmVyLmNjICovLAogCQkJCTQxMzFDNENEMjM0Qzg0QTIwMDI4QTYxNSAvKiBhYnNv
bHV0ZV9jYXB0dXJlX3RpbWVfcmVjZWl2ZXIuaCAqLywKIAkJCQk0MTMxQzRDQzIzNEM4NEEyMDAy
OEE2MTUgLyogYWJzb2x1dGVfY2FwdHVyZV90aW1lX3NlbmRlci5jYyAqLywKIAkJCQk0MTMxQzRD
RTIzNEM4NEEyMDAyOEE2MTUgLyogYWJzb2x1dGVfY2FwdHVyZV90aW1lX3NlbmRlci5oICovLAog
CQkJCTVDREQ4N0ZDMUU0M0JFM0MwMDYyMUU5MiAvKiBieXRlX2lvLmggKi8sCisJCQkJNDEwMDkx
REYyNDJFMkFBMTAwQzVFREEyIC8qIGNvbnRyaWJ1dGluZ19zb3VyY2VzLmNjICovLAorCQkJCTQx
MDA5MUU0MjQyRTJBQTIwMEM1RURBMiAvKiBjb250cmlidXRpbmdfc291cmNlcy5oICovLAogCQkJ
CTQxODkzOTA5MjQyQTcwNEMwMDdGREM0MSAvKiBjcmVhdGVfdmlkZW9fcnRwX2RlcGFja2V0aXpl
ci5jYyAqLywKIAkJCQk0MTg5MzkwNDI0MkE3MDRCMDA3RkRDNDEgLyogY3JlYXRlX3ZpZGVvX3J0
cF9kZXBhY2tldGl6ZXIuaCAqLywKIAkJCQk1Q0REODdGRTFFNDNCRTNDMDA2MjFFOTIgLyogZHRt
Zl9xdWV1ZS5jYyAqLywKQEAgLTEzMjkwLDYgKzEzMzY3LDggQEAKIAkJCQk1Q0REODgwRTFFNDNC
RTNDMDA2MjFFOTIgLyogZm9yd2FyZF9lcnJvcl9jb3JyZWN0aW9uX2ludGVybmFsLmggKi8sCiAJ
CQkJNUNERDg4MEYxRTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3JfY29ycmVjdGlvbi5j
YyAqLywKIAkJCQk1Q0REODgxMDFFNDNCRTNDMDA2MjFFOTIgLyogZm9yd2FyZF9lcnJvcl9jb3Jy
ZWN0aW9uLmggKi8sCisJCQkJNDEwMDkxRTIyNDJFMkFBMjAwQzVFREEyIC8qIGgyNjVfc3BzX3Bh
cnNlci5jYyAqLywKKwkJCQk0MTAwOTFFMzI0MkUyQUEyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFy
c2VyLmggKi8sCiAJCQkJNUNERDg4MTUxRTQzQkUzQzAwNjIxRTkyIC8qIHBhY2tldF9sb3NzX3N0
YXRzLmNjICovLAogCQkJCTVDREQ4ODE2MUU0M0JFM0MwMDYyMUU5MiAvKiBwYWNrZXRfbG9zc19z
dGF0cy5oICovLAogCQkJCTVDREQ4ODFBMUU0M0JFM0MwMDYyMUU5MiAvKiByZWNlaXZlX3N0YXRp
c3RpY3NfaW1wbC5jYyAqLywKQEAgLTEzMjk3LDcgKzEzMzc2LDYgQEAKIAkJCQk1Q0REODgxRTFF
NDNCRTNDMDA2MjFFOTIgLyogcmVtb3RlX250cF90aW1lX2VzdGltYXRvci5jYyAqLywKIAkJCQk1
Q0QyODVGODFFNkE2NDUyMDA5NEZEQzggLyogcnRjcF9uYWNrX3N0YXRzLmNjICovLAogCQkJCTVD
RDI4NUY5MUU2QTY0NTIwMDk0RkRDOCAvKiBydGNwX25hY2tfc3RhdHMuaCAqLywKLQkJCQk1Q0RE
ODhFQjFFNDNCRjI1MDA2MjFFOTIgLyogcnRjcF9wYWNrZXQgKi8sCiAJCQkJNUNERDg4MjExRTQz
QkUzQzAwNjIxRTkyIC8qIHJ0Y3BfcGFja2V0LmNjICovLAogCQkJCTVDREQ4ODIyMUU0M0JFM0Mw
MDYyMUU5MiAvKiBydGNwX3BhY2tldC5oICovLAogCQkJCTVDREQ4ODI0MUU0M0JFM0MwMDYyMUU5
MiAvKiBydGNwX3JlY2VpdmVyLmNjICovLApAQCAtMTMzMjAsNiArMTMzOTgsOCBAQAogCQkJCTQx
ODkzOTAzMjQyQTcwNEEwMDdGREM0MSAvKiBydHBfZGVzY3JpcHRvcl9hdXRoZW50aWNhdGlvbi5o
ICovLAogCQkJCTVDREQ4ODJFMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0X2gyNjQuY2Mg
Ki8sCiAJCQkJNUNERDg4MkYxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRfaDI2NC5oICov
LAorCQkJCTQxMDA5MUUwMjQyRTJBQTEwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuY2MgKi8s
CisJCQkJNDEwMDkxRTEyNDJFMkFBMjAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5oICovLAog
CQkJCTVDREQ4ODMwMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0X3ZpZGVvX2dlbmVyaWMu
Y2MgKi8sCiAJCQkJNUNERDg4MzExRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRfdmlkZW9f
Z2VuZXJpYy5oICovLAogCQkJCTVDREQ4ODM1MUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0
X3ZwOC5jYyAqLywKQEAgLTE0NjI0LDYgKzE0NzA0LDcgQEAKIAkJCQk1Q0QyODVBNzFFNkE2MzQz
MDA5NEZEQzggLyogYWVjX3N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODVFODFFNDNC
ODEwMDA2MjFFOTIgLyogYWVjbV9jb3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODVFOTFF
NDNCODEwMDA2MjFFOTIgLyogYWVjbV9kZWZpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTAw
OTFFNzI0MkUyQUEzMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1QzA4ODUyNzFFNEE5OUQyMDA0MDM5OTUgLyogYWVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1QzA4ODUyNDFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2djbV9vc3NsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1QzA4ODUyNjFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2ljbS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xNDY3Miw2ICsxNDc1Myw3IEBACiAJCQkJNUNEMjg1NDUxRTZBNjFEMjAwOTRGREM4
IC8qIGF1ZGlvX2RlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NTQzMUU2QTYxRDIw
MDk0RkRDOCAvKiBhdWRpb19kZWNvZGVyX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
ODkzOERBMjQyQTY5Q0MwMDdGREM0MSAvKiBxdWFsaXR5X3NjYWxlcl9yZXNvdXJjZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDEwMDkxRkEyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGOUJGOTgyMDUxQzgyMTAwQUJGMEI5IC8qIGF1ZGlv
X2RlY29kZXJfZmFjdG9yeV90ZW1wbGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzRTgx
RkUyNDgzNTAwNDBDMzBGIC8qIGF1ZGlvX2RlY29kZXJfZzcxMS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEwMDkxREUyNDJFMEJCQzAwQzVFREEyIC8qIHZpZGVvX2ZyYW1lX3R5cGUuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTQ2OTEsNiArMTQ3NzMsNyBAQAogCQkJCTQxMzFDM0MyMjM0Qjk3QjQwMDI4
QTYxNSAvKiBhdWRpb19kZWNvZGVyX211bHRpX2NoYW5uZWxfb3B1c19pbXBsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTg5M0EyMTI0MkE3NUMxMDA3RkRDNDEgLyogZHRsc190cmFuc3BvcnRfZmFj
dG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTM5Q0EyNDJBNzMzNzAwN0ZEQzQxIC8qIHVz
ZWRfaWRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTAwOTIwRDI0MkUzQTQ2MDBDNUVEQTIgLyog
UlRDVmlkZW9FbmNvZGVySDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhDNjExRTQzQzYw
OTAwNjIxRTkyIC8qIGF1ZGlvX2RlY29kZXJfb3B1cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5
QzgyRjIxRkUyMEVCNTAwNDBDMzBGIC8qIGF1ZGlvX2RlY29kZXJfb3B1cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE4OTM5RDcyNDJBNzMzNzAwN0ZEQzQxIC8qIHRyYWNrX21lZGlhX2luZm9fbWFw
LmggaW4gSGVhZGVycyAqLywKQEAgLTE0NzU4LDEwICsxNDg0MSwxMiBAQAogCQkJCTQxODkzOTVD
MjQyQTcxRjUwMDdGREM0MSAvKiBtaW5fdmlkZW9fYml0cmF0ZV9leHBlcmltZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REOEFEMDFFNDNDMjM5MDA2MjFFOTIgLyogYXVkaW9fc2VuZF9zdHJl
YW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NEIyMUU2QTVGOUYwMDk0RkRDOCAvKiBhdWRp
b19zZW5kX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkxRTkyNDJFMkFBMzAwQzVF
REEyIC8qIGgyNjVfc3BzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhDNEYxRTQz
QzU4RTAwNjIxRTkyIC8qIGF1ZGlvX3NpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTky
MUU0M0MwMEYwMDYyMUU5MiAvKiBhdWRpb19zaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMx
QkZBMDIzNEI4OEE2MDAyOEE2MTUgLyogYXVkaW9fc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTg5Mzk1RjI0MkE3MUY1MDA3RkRDNDEgLyogcXVhbGl0eV9yYW1wdXBfZXhwZXJpbWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMEIyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVj
U3BlY2lmaWNJbmZvSDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBRDMxRTQzQzIzOTAw
NjIxRTkyIC8qIGF1ZGlvX3N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODRCMzFFNkE1
RjlGMDA5NEZEQzggLyogYXVkaW9fc3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFCRjA1
MjM0Qjg4MjAwMDI4QTYxNSAvKiBhdWRpb190cmFjay5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDk4
Myw2ICsxNTA2OCw3IEBACiAJCQkJNDEzQTIxM0UxRkUwRjBFRjAwMzczRTk5IC8qIGVrdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCOTcxRTQzQzJCNTAwNjIxRTkyIC8qIGVuY29kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3QjYxRTQzQkMwNTAwNjIxRTkyIC8qIGVuY29kZV9scGNf
c3diLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTAwOTIwOTI0MkUzQTQ2MDBDNUVEQTIgLyogUlRD
VmlkZW9EZWNvZGVySDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBOTYxRTQzQzAwRjAw
NjIxRTkyIC8qIGVuY29kZV9uZXRlcV9pbnB1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgz
Q0QxRTQzOUE2RjAwNjIxRTkyIC8qIGVuY29kZWRfZnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxQTA4QkFDMjEyNjgxQzgwMDFENUQ3QiAvKiBlbmNvZGVkX2ZyYW1lLmggaW4gSGVhZGVycyAq
LywKQEAgLTE1MDE0LDYgKzE1MTAwLDcgQEAKIAkJCQk0MTAyRjZBRjIxMjczMkU3MDA2QUU4RDcg
LyogZXhwYW5kX3VtYV9sb2dnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQkU3MUE2MjE1QzQ2
MzcwMEE3QjE5NiAvKiBleHByLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODk0QjFFNDNCRjNB
MDA2MjFFOTIgLyogZXh0ZW5kZWRfaml0dGVyX3JlcG9ydC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEwMDkxRkUyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDg5NEUxRTQzQkYzQTAwNjIxRTkyIC8qIGV4dGVuZGVkX3JlcG9ydHMuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFCRjQ2MjM0Qjg4MjAwMDI4QTYxNSAvKiBleHRlcm5hbF9o
bWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzA3NzIzNEI4OThEMDAyOEE2MTUgLyogZmFr
ZV9jbG9jay5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTQ1Myw2ICsxNTU0MCw3IEBACiAJCQkJNUNE
RDhGREUxRTQzQ0Q2NjAwNjIxRTkyIC8qIHJlbW90ZV9iaXRyYXRlX2VzdGltYXRvcl9zaW5nbGVf
c3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzRCNzIzNEM4M0REMDAyOEE2MTUgLyog
cmVtb3RlX2VzdGltYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEZFMjFFNDNDRDY2MDA2
MjFFOTIgLyogcmVtb3RlX2VzdGltYXRvcl9wcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEw
MDkxRjkyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE5QzgzQzUxRkUyNDdCNDAwNDBDMzBGIC8qIHJlbW90ZV9udHBfdGltZV9lc3RpbWF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDVFNERBMUVGOENDOUIwMEZDRjZFNiAvKiByZW5k
ZXJfYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVENjFFNkE2MzQzMDA5NEZEQzgg
LyogcmVuZGVyX2RlbGF5X2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTU3OCw2ICsxNTY2
Niw3IEBACiAJCQkJNUNERDg4OUUxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0Y3Bfc2VuZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQzRFRjIzNEM4NjExMDAyOEE2MTUgLyogcnRjcF9zdGF0aXN0
aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODMwMzFGRTIwRjAyMDA0MEMzMEYgLyogcnRj
cF90cmFuc2NlaXZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkxRkQyNDJFMzYyMjAwQzVF
REEyIC8qIGgyNjVfY29tbW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODMwMTFGRTIwRjAy
MDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxOUM4MzA1MUZFMjBGMDIwMDQwQzMwRiAvKiBydGNwX3RyYW5zY2VpdmVyX2ltcGwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxM0EyNDNFMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENQZWVyQ29ubmVj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTYyNiw2ICsxNTcxNSw3IEBACiAJCQkJNDEzQTI0
NEYxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxM0U2NzhGMjE2OTg3REIwMEVGMzdFRCAvKiBSVENWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTNFNjc5MTIxNjk4N0RCMDBFRjM3RUQgLyogUlRDVmlkZW9GcmFtZUJ1ZmZlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkxRUQyNDJFMzE3NDAwQzVFREEyIC8qIGgyNjVfdnBz
X3Nwc19wcHNfdHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NDExRkUxOTkxQTAw
MzczRTk5IC8qIFJUQ1ZpZGVvRnJhbWVCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0Ey
NDZGMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb1JlbmRlcmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTNBMjQ2MTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9Tb3VyY2UuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTU4MTgsNiArMTU5MDgsNyBAQAogCQkJCTQxMzFDMTAzMjM0Qjg5RTIwMDI4
QTYxNSAvKiBzdHJpbmdfZW5jb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5M0EwQTI0MkE3
NTNDMDA3RkRDNDEgLyogc3ViYmFuZF9uZWFyZW5kX2RldGVjdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTMxQzEwNTIzNEI4OUUyMDAyOEE2MTUgLyogc3RyaW5nX3RvX251bWJlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDEwMDkyMEMyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lm
aWNJbmZvSDI2NStQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5M0E0MTI0MkE3NkYy
MDA3RkRDNDEgLyogb3BlcmF0aW9uc19jaGFpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMx
MzIyMzRCODlFMjAwMjhBNjE1IC8qIHN0cmluZ191dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE4OTM5ODYyNDJBNzI1MTAwN0ZEQzQxIC8qIHByaW9yX3NpZ25hbF9tb2RlbC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNTk1OCw2ICsxNjA0OSw3IEBACiAJCQkJNDE2MjI1RDMyMTY5ODE4MTAwQTkx
QzlCIC8qIHZpZGVvX2ZyYW1lX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEwMkY2Q0Yy
MTI3MzNCNzAwNkFFOEQ3IC8qIHZpZGVvX3F1YWxpdHlfb2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxOUM4MkM0MUZFMjBEQ0QwMDQwQzMwRiAvKiB2aWRlb19yZWNlaXZlX3N0cmVhbS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMEUyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gyNjVQ
cm9maWxlTGV2ZWxJZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1Q0IxRTQzQjVDMDAwNjIx
RTkyIC8qIHZpZGVvX3JlY2VpdmVfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNEMy
MTFFNDMxRjc1MDAyNjUxQzggLyogdmlkZW9fcmVuZGVyX2ZyYW1lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNEMjg0NkMxRTZBNTdGNDAwOTRGREM4IC8qIHZpZGVvX3JvdGF0aW9uLmggaW4gSGVh
ZGVycyAqLywKQEAgLTE3NDc2LDggKzE3NTY4LDEwIEBACiAJCQkJNDEzMUMwMzMyMzRCODk4RDAw
MjhBNjE1IC8qIGNyeXB0X3N0cmluZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDM0I2MjM0
Qjk3MTIwMDI4QTYxNSAvKiBjcnlwdG9fb3B0aW9ucy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
ODkzOThDMjQyQTcyNTIwMDdGREM0MSAvKiBuc19mZnQuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0
MTAwOTFGQzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDEzMUJGMjYyMzRCODgyMDAwMjhBNjE1IC8qIGRhdGFfY2hhbm5lbC5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxMzFDMzExMjM0QjhEQzIwMDI4QTYxNSAvKiBkYXRhX2NoYW5uZWxf
aW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkxRjgyNDJFMzYyMjAwQzVFREEy
IC8qIGgyNjVfc3BzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MUUxMjEyNzVB
MzAwMDYzNEZDRiAvKiBkYXRhX3JhdGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTg5Mzk1QjI0
MkE3MUY1MDA3RkRDNDEgLyogbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxMzFDMDI0MjM0Qjg5OEQwMDI4QTYxNSAvKiBkYXRhX3JhdGVfbGltaXRl
ci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTc2NzgsMTEgKzE3NzcyLDE0IEBACiAJCQkJNDEwMkY2
RTAyMTI3MzQxNjAwNkFFOEQ3IC8qIGkwMTBfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNEMjg0NjcxRTZBNTdGNDAwOTRGREM4IC8qIGk0MjBfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUM0QjRDMUIxRTQzMUY3NTAwMjY1MUM4IC8qIGk0MjBfYnVmZmVyX3Bvb2wuY2MgaW4g
U291cmNlcyAqLywKKwkJCQk0MTAwOTFFRTI0MkUzMTc0MDBDNUVEQTIgLyogaDI2NV92cHNfc3Bz
X3Bwc190cmFja2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxRjEyMzRCOEE0QjAwMjhB
NjE1IC8qIGljZV9jcmVkZW50aWFsc19pdGVyYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
ODkzQTRBMjQyQTc3ODkwMDdGREM0MSAvKiBldmVudF9iYXNlZF9leHBvbmVudGlhbF9tb3Zpbmdf
YXZlcmFnZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDM0U2MjM0QzdBMDgwMDI4QTYxNSAv
KiBpY2VfbG9nZ2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGNTUyMzRCODgyMDAwMjhB
NjE1IC8qIGljZV9zZXJ2ZXJfcGFyc2luZy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MjEw
MjQyRTNBNDYwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDEzMUJGMEUyMzRCODgyMDAwMjhBNjE1IC8qIGljZV90cmFuc3BvcnQuY2MgaW4gU291
cmNlcyAqLywKKwkJCQk0MTAwOTIxMTI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZp
Y0luZm9IMjY1Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMzMUEyMzRCOERDMjAwMjhBNjE1
IC8qIGljZV90cmFuc3BvcnRfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMUJG
MjM0QjhBNEEwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0X2ludGVybmFsLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDE4OTNBNUUyNDJBNzdCODAwN0ZEQzQxIC8qIGV2ZW50X3JhdGVfY291bnRlci5j
YyBpbiBTb3VyY2VzICovLApAQCAtMTc3NTAsNiArMTc4NDcsNyBAQAogCQkJCTVDREQ4N0M1MUU0
M0JDMDUwMDYyMUU5MiAvKiBscGNfYW5hbHlzaXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
QkMxMUU0M0MyQjUwMDYyMUU5MiAvKiBscGNfZW5jb2RlLmMgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REODdDNzFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX2dhaW5fc3diX3RhYmxlcy5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEwMDkxRTYyNDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzQ0VFMUY3OUIzMzQwMDM4N0I0RCAvKiBscGNfbWFz
a2luZ19tb2RlbC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3QzkxRTQzQkMwNTAwNjIxRTky
IC8qIGxwY19zaGFwZV9zd2IxMl90YWJsZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4N0NC
MUU0M0JDMDUwMDYyMUU5MiAvKiBscGNfc2hhcGVfc3diMTZfdGFibGVzLmMgaW4gU291cmNlcyAq
LywKQEAgLTE4MDI0LDEwICsxODEyMiwxMiBAQAogCQkJCTQxNzk1M0I3MjE2OTgyNDIwMDI4MjY2
QiAvKiBSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDE0NEIzRjUyMTZCMDgxQjAwNDM2M0FDIC8qIFJUQ0VuY29kZWRJbWFnZStQcml2YXRlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE3OTUzRkEyMTY5ODRCRTAwMjgyNjZCIC8qIFJUQ0VuY29kZWRJ
bWFnZS5tIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkxRkIyNDJFMzYyMjAwQzVFREEyIC8qIGgy
NjVfcHBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxODkzOTE1MjQyQTcwNEUwMDdG
REM0MSAvKiB0cmFuc2Zvcm1hYmxlX2VuY29kZWRfZnJhbWUuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTQ0QjNENjIxNjk4QTFBMDA0MzYzQUMgLyogUlRDSDI2NFByb2ZpbGVMZXZlbElkLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRDMyMTY5ODk2RDAwNDM2M0FDIC8qIFJUQ05hdGl2ZUk0
MjBCdWZmZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTQ0QjNEMTIxNjk4OTY3MDA0MzYzQUMg
LyogUlRDTmF0aXZlTXV0YWJsZUk0MjBCdWZmZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQk0MTAw
OTIwRjI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxOUM4MkI5MUZFMjBEQ0QwMDQwQzMwRiAvKiBydGNwX2RlbXV4ZXIuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTMxQkYxQTIzNEI4ODIwMDAyOEE2MTUgLyogcnRjcF9tdXhfZmls
dGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1RkExRTZBNjQ1MjAwOTRGREM4IC8qIHJ0
Y3BfbmFja19zdGF0cy5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgyMzYsNiArMTgzMzYsNyBAQAog
CQkJCTQxOTI0MUUyMjEyNzVBMzAwMDYzNEZDRiAvKiB0aW1lX2RlbHRhLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDhBNUExRTQzQkZCMzAwNjIxRTkyIC8qIHRpbWVfc3RyZXRjaC5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDREQ4OERBMUU0M0JFM0QwMDYyMUU5MiAvKiB0aW1lX3V0aWwuY2Mg
aW4gU291cmNlcyAqLywKKwkJCQk0MTAwOTIwQTI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDSDI2NVBy
b2ZpbGVMZXZlbElkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxNEEyMzRCODlFMjAwMjhB
NjE1IC8qIHRpbWVfdXRpbHMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDFFMzIxMjc1QTMw
MDA2MzRGQ0YgLyogdGltZXN0YW1wLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxMzMyMzRC
ODlFMjAwMjhBNjE1IC8qIHRpbWVzdGFtcF9hbGlnbmVyLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0x
ODM1NCw2ICsxODQ1NSw3IEBACiAJCQkJNUNERDgzNjcxRTQzMjVENTAwNjIxRTkyIC8qIHdlYnJ0
Y19saWJ5dXYuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzI3QTIzNEI4Q0M0MDAyOEE2MTUg
Lyogd2VicnRjX21lZGlhX2VuZ2luZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMjc4MjM0
QjhDQzQwMDI4QTYxNSAvKiB3ZWJydGNfbWVkaWFfZW5naW5lX2RlZmF1bHRzLmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEwMDkxRkYyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGNTAyMzRCODgyMDAwMjhBNjE1IC8qIHdlYnJ0Y19zZHAu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkVGNDIzNEI4ODIwMDAyOEE2MTUgLyogd2VicnRj
X3Nlc3Npb25fZGVzY3JpcHRpb25fZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
NkU0MUU0M0JBMjgwMDYyMUU5MiAvKiB3ZWJydGNfdmFkLmMgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCmluZGV4IDM3ZGNjZmYzNWUzYTlmMmI2YTZhNmQwMTkyY2NkOTAyMGE4NzQ3MWUu
LmVkMzU2NWRjMTBiN2I5ZTA1MzYwNWQ0YWYzMjljM2I2YWJkOTc1ZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcApAQCAtMzI1LDcgKzMyNSw3IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBw
YWdlQ29uZmlndXJhdGlvbikKICNlbmRpZgogCiAjaWYgVVNFKExJQldFQlJUQykKLSAgICBtX2xp
YldlYlJUQ1Byb3ZpZGVyLT5zdXBwb3J0c1ZQOChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLndlYlJUQ1ZQOENvZGVjRW5hYmxlZCgpKTsKKyAgICBtX2xpYldlYlJUQ1By
b3ZpZGVyLT5zdXBwb3J0c0gyNjUoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJSVENIMjY1Q29kZWNFbmFibGVkKCkpOwogI2VuZGlmCiAKICAgICBtX2NvcnNEaXNh
YmxpbmdQYXR0ZXJucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBhZ2VDb25maWd1cmF0aW9uLmNv
cnNEaXNhYmxpbmdQYXR0ZXJucy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBkZTdlMzhkMjVlYjIzM2M4ODVhODE0ZmRjYzIyYzZi
YzM4YzQ1MjRhLi4xZWUwZDI3NzE1NzUxMTJhZGI4NjAyNGQ5MGMxOGMwNmNhYjY2OTNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMjM2LDgg
KzIzNiw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBib29sIHdlYlJUQ0RU
TUZFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1dlYlJUQ0RUTUZFbmFibGVkOyB9CiAgICAg
dm9pZCBzZXRXZWJSVENEVE1GRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzV2ViUlRDRFRN
RkVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KLSAgICBib29sIHdlYlJUQ1ZQOENvZGVjRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENWUDhDb2RlY0VuYWJsZWQ7IH0KLSAgICB2b2lkIHNl
dFdlYlJUQ1ZQOENvZGVjRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzV2ViUlRDVlA4Q29k
ZWNFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCB3ZWJSVENIMjY1Q29kZWNFbmFibGVk
KCkgY29uc3QgeyByZXR1cm4gbV9pc1dlYlJUQ0gyNjVDb2RlY0VuYWJsZWQ7IH0KKyAgICB2b2lk
IHNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc1dlYlJUQ0gy
NjVDb2RlY0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29sIHBlZXJDb25uZWN0aW9uRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQZWVyQ29ubmVjdGlvbkVuYWJsZWQ7IH0KICAgICB2
b2lkIHNldFBlZXJDb25uZWN0aW9uRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzUGVlckNv
bm5lY3Rpb25FbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCB3ZWJSVENNRE5TSUNFQ2Fu
ZGlkYXRlc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzV2ViUlRDTUROU0lDRUNhbmRpZGF0
ZXNFbmFibGVkOyB9CkBAIC01MDIsNyArNTAyLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShX
RUJfUlRDKQogICAgIGJvb2wgbV9pc1dlYlJUQ0RUTUZFbmFibGVkIHsgdHJ1ZSB9OwotICAgIGJv
b2wgbV9pc1dlYlJUQ1ZQOENvZGVjRW5hYmxlZCB7IHRydWUgfTsKKyAgICBib29sIG1faXNXZWJS
VENIMjY1Q29kZWNFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pc1BlZXJDb25uZWN0aW9u
RW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1faXNXZWJSVENNRE5TSUNFQ2FuZGlkYXRlc0Vu
YWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1dlYlJUQ0gyNjRTaW11bGNhc3RFbmFibGVk
IHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBhMGI0Y2Y3
MTZkNTQwZWI5Y2ViNGEwZTY3NmVlMDI2NDNmZThlZDkwLi4yMmIxMGRkNDgwYzg3ZjRkY2QwNDJm
YmM4OGM5OTU0ZGUzMjBkNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApA
QCAtMTAzLDcgKzEwMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2FibGVFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzKCk7CiAgICAgdm9pZCBlbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdv
cmtJbnRlcmZhY2VzKCk7CiAKLSAgICB2b2lkIHN1cHBvcnRzVlA4KGJvb2wgdmFsdWUpIHsgbV9z
dXBwb3J0c1ZQOCA9IHZhbHVlOyB9CisgICAgdm9pZCBzdXBwb3J0c0gyNjUoYm9vbCB2YWx1ZSkg
eyBtX3N1cHBvcnRzSDI2NSA9IHZhbHVlOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGVOb25M
b2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMg
PSB0cnVlOyB9CiAKICAgICBydGM6OlJUQ0NlcnRpZmljYXRlR2VuZXJhdG9yJiBjZXJ0aWZpY2F0
ZUdlbmVyYXRvcigpOwpAQCAtMTQwLDcgKzE0MCw3IEBAIHByb3RlY3RlZDoKIAogICAgIHJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZT4gbV9m
YWN0b3J5OwogICAgIGJvb2wgbV9kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMgeyBmYWxz
ZSB9OwotICAgIGJvb2wgbV9zdXBwb3J0c1ZQOCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3N1cHBv
cnRzSDI2NSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZUxvZ2dpbmcgeyB0cnVlIH07CiAg
ICAgYm9vbCBtX3VzZURUTFMxMCB7IGZhbHNlIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcAppbmRleCA0ZTU1Mzg4ZWFkZTEwOThhZTkxYmZi
NDk2NmRhNDRmODk2YzhhMzQyLi5jNzM3MTc0NGY3OGU4NmZkNTM0YWE5OTJiMjg1ZDU5ZDVjZjEx
NmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCkBA
IC01NCw3ICs1NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rv
cnk+IExpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29kCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKIAotICAgIGF1dG8gY29kZWNTdXBwb3J0ID0gbV9zdXBwb3J0c1ZQOCA/
IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4IDogd2VicnRjOjpXZWJLaXRD
b2RlY1N1cHBvcnQ6OkgyNjQ7CisgICAgYXV0byBjb2RlY1N1cHBvcnQgPSBtX3N1cHBvcnRzSDI2
NSA/IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0VlA4QW5kSDI2NSA6IHdlYnJ0Yzo6
V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4OwogICAgIHJldHVybiB3ZWJydGM6OmNyZWF0
ZVdlYktpdERlY29kZXJGYWN0b3J5KGNvZGVjU3VwcG9ydCk7CiB9CiAKQEAgLTYyLDcgKzYyLDcg
QEAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4gTGliV2ViUlRD
UHJvdmlkZXJDb2NvYTo6Y3JlYXRlRW5jb2QKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogCi0gICAgYXV0byBjb2RlY1N1cHBvcnQgPSBtX3N1cHBvcnRzVlA4ID8gd2VicnRjOjpXZWJL
aXRDb2RlY1N1cHBvcnQ6OkgyNjRBbmRWUDggOiB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6
SDI2NDsKKyAgICBhdXRvIGNvZGVjU3VwcG9ydCA9IG1fc3VwcG9ydHNIMjY1ID8gd2VicnRjOjpX
ZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjRWUDhBbmRIMjY1IDogd2VicnRjOjpXZWJLaXRDb2RlY1N1
cHBvcnQ6OkgyNjRBbmRWUDg7CiAgICAgcmV0dXJuIHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RW5jb2Rl
ckZhY3RvcnkoY29kZWNTdXBwb3J0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IGFmMjdiOTlmMzg3YzEyOGFmZmI0MzY5YWI0ZWMzYTljMGJmZmMyOTguLjc0MjIx
MWMyY2RmMDQ0NmY4NGVjNmE0MWNhODhmOWNlZDYzMDRlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTU1Myw3ICs1NTMsNyBAQCB2b2lkIEludGVybmFsczo6cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgIGF1dG8mIHJ0Y1Byb3ZpZGVyID0gcGFn
ZS5saWJXZWJSVENQcm92aWRlcigpOwogICAgIFdlYkNvcmU6OnVzZVJlYWxSVENQZWVyQ29ubmVj
dGlvbkZhY3RvcnkocnRjUHJvdmlkZXIpOwogICAgIHJ0Y1Byb3ZpZGVyLmRpc2FibGVOb25Mb2Nh
bGhvc3RDb25uZWN0aW9ucygpOwotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0V2ViUlRDVlA4Q29kZWNFbmFibGVkKHRydWUpOworICAgIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0V2ViUlRDSDI2NUNvZGVjRW5hYmxlZCh0
cnVlKTsKICAgICBwYWdlLnNldHRpbmdzKCkuc2V0V2ViUlRDRW5jcnlwdGlvbkVuYWJsZWQodHJ1
ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5k
ZXggYWEyOTY5ZjFjOWZhYTZhM2RjNmUyOWJmNDE1ZWMzOTE1ZmNlYmE0Mi4uN2I5MTYzNzZkMWVm
ZDRiNWEzYmZiOGJjZjg3NWQ3NzgxMzI4YTIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCkBAIC01ODEsMTQgKzU4MSwxNCBAQCBJbnRlcnJ1cHRBdWRpb09uUGFn
ZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkOgogICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJs
ZWRGZWF0dXJlcwogICBjb25kaXRpb246IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLVdlYlJUQ1ZQ
OENvZGVjRW5hYmxlZDoKK1dlYlJUQ0gyNjVDb2RlY0VuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAg
ZGVmYXVsdFZhbHVlOiB0cnVlCiAgIHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzCiAgIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9SVEMpCi0gIGh1bWFuUmVhZGFibGVOYW1lOiAi
V2ViUlRDIFZQOCBjb2RlYyIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFdl
YlJUQyBWUDggY29kZWMiCi0gIGNhdGVnb3J5OiBpbnRlcm5hbAorICBodW1hblJlYWRhYmxlTmFt
ZTogIldlYlJUQyBIMjY1IGNvZGVjIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFi
bGUgV2ViUlRDIEgyNjUgY29kZWMiCisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAogV2ViUlRD
UGxhdGZvcm1Db2RlY3NJbkdQVVByb2Nlc3NFbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY3NWVmNTJhMTNi
NGFmYWE4ZTA5ZGM1MTNkNDI4ZDMxMjJlMWYwMzYuLmNhOGEwM2VhODA4NGJkYjRhYWQ1MmJlNTA0
OGE4NDRkMGM0ODIzNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0zNjYwLDYgKzM2NjAsMTAgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVm
ZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBpZiAobV9kcmF3
aW5nQXJlYSkKICAgICAgICAgbV9kcmF3aW5nQXJlYS0+dXBkYXRlUHJlZmVyZW5jZXMoc3RvcmUp
OwogCisjaWYgVVNFKExJQldFQlJUQykKKyAgICBtX3BhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCku
c3VwcG9ydHNIMjY1KFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Vi
UlRDSDI2NUNvZGVjRW5hYmxlZCgpKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogICAgIC8vIEZJWE1FOiB1c2VHUFVQcm9jZXNzRm9yTWVkaWEgc2hvdWxkIGJlIGEgUnVudGlt
ZUVuYWJsZWRGZWF0dXJlIHNpbmNlIGl0J3MgZ2xvYmFsLgogICAgIHN0YXRpY19jYXN0PFdlYk1l
ZGlhU3RyYXRlZ3kmPihwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpKS5zZXRV
c2VHUFVQcm9jZXNzKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3
MDhhNjViOGI4OTA2ODY0YjRjZWQ3Yzk4ZGRlMTA2ZDFkODBlY2E1Li4wMDRiYmFmZmEyZjAyYTU4
ZTEwYTQzYzY1ZDIyMWZlNWZlOTcxMWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMt
MzAgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0
aWFsIHN1cHBvcnQgZm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogd2VicnRj
L2gyNjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvaDI2NS5odG1sOiBB
ZGRlZC4KKwogMjAyMC0wMy0yNSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQnVtcCBsaWJ3ZWJydGMgdG8gTTgyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkMjNh
ZmFmYzI5NTljZmQ5M2QzZGI5MDc0NTdhYzBlOWI1ZTkwYTliLi5jMDM5MWI2MzhjODlhODIwYWMx
MGUyNzUzYTQ4MmZkNzA2ZGY5ZTU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3NzAsNiArMTc3
MCw5IEBAIHdlYmtpdC5vcmcvYi8xNDYxODIgZWRpdGluZy9zZWxlY3Rpb24vbGVhay1kb2N1bWVu
dC13aXRoLXNlbGVjdGlvbi1pbnNpZGUuaHRtbCBbCiAjIE1lZGlhIFNlc3Npb25zIGlzIG5vdCB5
ZXQgZW5hYmxlZCBieSBkZWZhdWx0OiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIG1lZGlhL3Nlc3Np
b24gWyBTa2lwIF0KIAorIyBFeHBlcmltZW50YWwgSDI2NSBzdXBwb3J0Lgord2VicnRjL2gyNjUu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKIHdlYnJ0Yy9zaW11bGNhc3QtaDI2NC5odG1sIFsgU2xv
dyBdCiB3ZWJydGMvZGF0YWNoYW5uZWwvbXVsdGlwbGUtY29ubmVjdGlvbnMuaHRtbCBbIFNsb3cg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXIt
Z2V0U3luY2hyb25pemF0aW9uU291cmNlcy5odHRwcy5odG1sIFsgU2xvdyBdCkBAIC00MzUwLDQg
KzQzNTMsNCBAQCB3ZWJraXQub3JnL2IvMjA5MDgwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy13cml0aW5nLW1vZGVzL3dtLXBybwogd2Via2l0Lm9yZy9iLzIwOTA4MCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1w
cm9wYWdhdGlvbi1ib2R5LTAwOC54aHQgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcv
Yi8yMDkwODAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdyaXRpbmct
bW9kZXMvd20tcHJvcGFnYXRpb24tYm9keS0wMTAueGh0IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvMjA5MDgwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy13cml0aW5nLW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktMDExLnhodCBbIEltYWdlT25seUZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzIwOTA4MCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy93bS1wcm9wYWdhdGlvbi1ib2R5LTAxNS54aHQgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXQub3Jn
L2IvMjA5MDgwIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13cml0aW5n
LW1vZGVzL3dtLXByb3BhZ2F0aW9uLWJvZHktMDE1LnhodCBbIEltYWdlT25seUZhaWx1cmUgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmOTgzYmFmOWIzM2Uw
MjE5NjE5NDdlODNiNmEzYTZkZWZlZGVjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJydGMvaDI2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVmlkZW8gc2hvdWxk
IGJlIHJ1bm5pbmcsIGdvIHRvIGJsYWNrIGFuZCBydW5uaW5nLgorRm9sbG93aW5nLCBzaG91bGQg
YmUgYSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8sIGEgYmxhY2sgZnJhbWUgYW5kIGEgc25hcHNob3Qg
b2YgdGhlIHZpZGVvLgorICAKKworUEFTUyBIMjY1IGluIGdldENhcGFiaWxpdGllcyAKK1BBU1Mg
VmVyaWZ5IEgyNjUgYWN0aXZhdGlvbiAKK1BBU1MgU2V0dGluZyB2aWRlbyBleGNoYW5nZSAKK1BB
U1MgRW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQgCitQQVNTIFRyYWNrIGlz
IGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgCitQQVNTIFRyYWNrIGlzIGRpc2Fi
bGVkLCB2aWRlbyBzaG91bGQgYmUgYmxhY2sgCitQQVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVv
IHNob3VsZCBub3QgYmUgYmxhY2sgMiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRj
L2gyNjUuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTdl
MWM0MTIwODQ0YWU5NGU2ODUzNGVjYzZmMzhlNjdhMTE2NjZjYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0bWwKQEAgLTAsMCArMSw5NCBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorICAgICAgICA8dGl0bGU+VGVzdGluZyBtdXRpbmcgdmlkZW88L3RpdGxlPgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2PlZpZGVvIHNob3VsZCBi
ZSBydW5uaW5nLCBnbyB0byBibGFjayBhbmQgcnVubmluZy48L2Rpdj4KKyAgICAgICAgPGRpdj5G
b2xsb3dpbmcsIHNob3VsZCBiZSBhIHNuYXBzaG90IG9mIHRoZSB2aWRlbywgYSBibGFjayBmcmFt
ZSBhbmQgYSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8uPC9kaXY+CisgICAgICAgIDx2aWRlbyBpZD0i
dmlkZW8iIGF1dG9wbGF5IHBsYXlzSW5saW5lIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L3Zp
ZGVvPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMxIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0
MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczIiIHdpZHRoPSIzMjAiIGhl
aWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMyIgd2lkdGg9
IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRp
bmVzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KK3ZhciBoYXNIMjY1ID0gZmFsc2U7
Cit0ZXN0KCgpID0+IHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93
LmludGVybmFscy5jbGVhclBlZXJDb25uZWN0aW9uRmFjdG9yeSgpOworCisgICAgY29uc3QgY29k
ZWNzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygidmlkZW8iKS5jb2RlY3M7CisgICAg
aGFzSDI2NSA9IGNvZGVjcy5zb21lKChjb2RlYykgPT4geyByZXR1cm4gY29kZWMubWltZVR5cGUg
PT0gInZpZGVvL0gyNjUiOyB9KTsKKyAgICBhc3NlcnRfdHJ1ZShoYXNIMjY1KTsKK30sICJIMjY1
IGluIGdldENhcGFiaWxpdGllcyIpOworCitpZiAoaGFzSDI2NSkgeworICAgIHByb21pc2VfdGVz
dChhc3luYyAodGVzdCkgPT4geworICAgICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgICAgICBwYy5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsKKyAgICAgICAgY29u
c3QgZGVzY3JpcHRpb24gPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICAgICAgICBwYy5jbG9z
ZSgpOworICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdGlvbi5zZHAuaW5kZXhPZigiSDI2NSIp
ICE9PSAtMSwgIkgyNjUgY29kZWMgaXMgaW4gdGhlIFNEUCIpOworICAgIH0sICJWZXJpZnkgSDI2
NSBhY3RpdmF0aW9uIikKKyAKKyAgICB2YXIgdHJhY2s7CisgICAgdmFyIHJlbW90ZVRyYWNrOwor
ICAgIHZhciByZWNlaXZpbmdDb25uZWN0aW9uOworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4g
eworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3Zp
ZGVvOiB7d2lkdGg6IDMyMCwgaGVpZ2h0OiAyNDAsIGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCJ9
fSkudGhlbigobG9jYWxTdHJlYW0pID0+IHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgdHJhY2sgPSBsb2NhbFN0
cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOworICAgIAorICAgICAgICAgICAgICAgIGNyZWF0ZUNv
bm5lY3Rpb25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZmly
c3RDb25uZWN0aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7CisgICAgICAgICAgICAg
ICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcmVjZWl2
aW5nQ29ubmVjdGlvbiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAgICAgICAgICAgIHNl
Y29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZW1vdGVUcmFjayA9IHRyYWNrRXZlbnQudHJhY2s7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7CisgICAgICAgICAgICAg
ICAgICAgIH07CisgICAgICAgICAgICAgICAgfSwgeyBvYnNlcnZlT2ZmZXIgOiAob2ZmZXIpID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgb2ZmZXIuc2RwID0gc2V0Q29kZWMob2ZmZXIuc2RwLCAi
SDI2NSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2ZmZXI7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkg
PT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCAyMDAwKTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KS50aGVuKChyZW1vdGVTdHJlYW0pID0+IHsKKyAgICAgICAgICAgIHZpZGVvLnNyY09i
amVjdCA9IHJlbW90ZVN0cmVhbTsKKyAgICAgICAgICAgIHJldHVybiB2aWRlby5wbGF5KCk7Cisg
ICAgICAgIH0pOworICAgIH0sICJTZXR0aW5nIHZpZGVvIGV4Y2hhbmdlIik7CisKKyAgICBwcm9t
aXNlX3Rlc3QoKCkgPT4geworICAgICAgICBpZiAocmVjZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0
aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVz
b2x2ZSgpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgICAgICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbi5vbmNvbm5lY3Rpb25zdGF0ZWNoYW5n
ZSA9ICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAocmVjZWl2aW5nQ29ubmVjdGlvbi5jb25u
ZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAgICAgICAgICAgICAgICByZXNvbHZl
KCk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3Qo
IlRlc3QgdGltZWQgb3V0IiksIDIwMDApOworICAgICAgICB9KTsKKyAgICB9LCAiRW5zdXJpbmcg
Y29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQiKTsKKworICAgIHByb21pc2VfdGVzdCgodGVz
dCkgPT4geworICAgICAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNrKGZhbHNlLCBjYW52YXMxLCB2
aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxh
Y2siKTsKKworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICB0cmFjay5lbmFi
bGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2sodHJ1ZSwgY2FudmFz
MiwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBkaXNhYmxlZCwgdmlkZW8gc2hvdWxkIGJlIGJs
YWNrIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgdHJhY2suZW5h
YmxlZCA9IHRydWU7CisgICAgICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2soZmFsc2UsIGNhbnZh
czIsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBi
ZSBibGFjayAyIik7Cit9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395167</attachid>
            <date>2020-04-01 08:09:55 -0700</date>
            <delta_ts>2020-04-01 09:25:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204283-20200401170953.patch</filename>
            <type>text/plain</type>
            <size>256056</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBlOWUyNjdkMTcxMmUxM2QxMTEzZjVhNjM0OGIzMDJjMzg5NWYxNTUzLi5lMWVi
MjliNDMzOTllZDU2MjIxZDU5NmRhM2U1ZGRiOWIzNDk2YjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjYgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQg
Zm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgSDI2NSBwYWNrZXRpemF0aW9uL2RlcGFja2V0aXphdGlvbiBhbmQgT2JqQyBI
MjY1IGVuY29kZXIvZGVjb2Rlci4KKyAgICAgICAgU3VwcG9ydCBpcyBzd2l0Y2hhYmxlIHVzaW5n
IGEgYm9vbGVhbiBnaXZlbiB0byB0aGUgZGVjb2Rlci9lbmNvZGVyIGZhY3Rvcmllcy4KKworICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaDoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2M6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmg6CisgICAg
ICAgICh3ZWJydGM6OlZpZGVvQ29kZWNIMjY1OjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYzoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZp
Zy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5j
b2Rlcl9jb25maWcuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9i
dWlsZC5nbmk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jYWxsL3J0cF9wYXlsb2FkX3BhcmFt
cy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbjoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjOiBB
ZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29t
bW9uLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9wcHNfcGFyc2VyLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1v
bl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYzogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaDog
QWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zw
c19wYXJzZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVv
L2gyNjUvaDI2NV92cHNfcGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
bWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9t
ZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL2NyZWF0ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2Vy
LmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL2gyNjVfc3BzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKHdlYnJ0Yzo6SDI2NVNwc1Bh
cnNlcjo6d2lkdGgpOgorICAgICAgICAod2VicnRjOjpIMjY1U3BzUGFyc2VyOjpoZWlnaHQpOgor
ICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1h
dC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF9mb3JtYXRfaDI2NS5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaDogQWRkZWQuCisgICAgICAgICh3ZWJy
dGM6OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXQ6OlBhY2tldCk6CisgICAgICAgICh3ZWJydGM6
OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXRVbml0OjpQYWNrZXRVbml0KToKKyAgICAgICAgKHdl
YnJ0Yzo6VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1Ojp+VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1
KToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9z
ZW5kZXJfdmlkZW8uY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmg6IEFkZGVk
LgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9m
cmFtZS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gy
NjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaDogQWRkZWQu
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3Zp
ZGVvX2NvZGVjX2ludGVyZmFjZS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaDoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuY2M6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uY2M6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uaDoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4cGVyaW1lbnRzL21pbl92aWRlb19iaXRy
YXRlX2V4cGVyaW1lbnQuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFV0aWxpdGllcy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMubW06CisgICAgICAgICh3ZWJydGM6OmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0
b3J5KToKKyAgICAgICAgKHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkpOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmguCisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tOiBBZGRlZC4KKyAgICAg
ICAgKC1bUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXSk6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGluaXRX
aXRoSDI2NTpdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnkgc3Vw
cG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
IGNyZWF0ZURlY29kZXI6XSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lmg6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0Rl
ZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0Vu
Y29kZXJGYWN0b3J5IGluaXRXaXRoSDI2NTpdKToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRW
aWRlb0VuY29kZXJGYWN0b3J5IGNyZWF0ZUVuY29kZXI6XSk6CisgICAgICAgICgtW1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5IHN1cHBvcnRlZENvZGVjc10pOgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxl
dmVsSWQuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW06IEFkZGVkLgorICAgICAgICAq
IFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0Rl
Y29kZXJIMjY1Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5tbTogQWRkZWQuCisgICAgICAg
IChSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXM6OlJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyk6Cisg
ICAgICAgIChoMjY1RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKC1bUlRD
VmlkZW9EZWNvZGVySDI2NSBpbml0XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUg
ZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHN0YXJ0RGVjb2RlV2l0
aE51bWJlck9mQ29yZXM6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVjb2Rl
Om1pc3NpbmdGcmFtZXM6Y29kZWNTcGVjaWZpY0luZm86cmVuZGVyVGltZU1zOl0pOgorICAgICAg
ICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHNldENhbGxiYWNrOl0pOgorICAgICAgICAoLVtSVENW
aWRlb0RlY29kZXJIMjY1IHJlbGVhc2VEZWNvZGVyXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVj
b2RlckgyNjUgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJIMjY1IGNvbmZpZ3VyZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgc2V0VmlkZW9Gb3JtYXQ6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2Rl
ckgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBpbml0V2l0aENvZGVjSW5mbzpdKToKKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2Rlckgy
NjUgc3RhcnRFbmNvZGVXaXRoU2V0dGluZ3M6bnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBlbmNvZGU6Y29kZWNTcGVjaWZpY0luZm86ZnJhbWVUeXBlczpd
KToKKyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRDYWxsYmFjazpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRCaXRyYXRlOmZyYW1lcmF0ZTpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSByZWxlYXNlRW5jb2Rlcl0pOgorICAgICAgICAoLVtS
VENWaWRlb0VuY29kZXJIMjY1IHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl0pOgor
ICAgICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAg
ICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IHNldEJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgc2V0RW5jb2RlckJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgZnJhbWVXYXNFbmNvZGVkOmZsYWdzOnNhbXBsZUJ1ZmZlcjp3
aWR0aDpoZWlnaHQ6cmVuZGVyVGltZU1zOnRpbWVzdGFtcDpyb3RhdGlvbjpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzY2FsaW5nU2V0dGluZ3NdKToKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5j
YzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvbmFsdV9yZXdyaXRlci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbToKKyAgICAgICAgKHdlYnJ0Yzo6
T2JqQ1ZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0
b3J5Lm1tOgorICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRl
VmlkZW9FbmNvZGVyKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19z
dHJlYW1fcmVjZWl2ZXIuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlk
ZW9fc3RyZWFtX3JlY2VpdmVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9zZW5k
X3N0YXRpc3RpY3NfcHJveHkuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby92aWRl
b19yZWNlaXZlX3N0cmVhbS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVv
X3N0cmVhbV9lbmNvZGVyLmNjOgorICAgICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDIwLTAzLTI1ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4gYW5kIFZpY3RvciBNLiBKYXF1ZXogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBC
dW1wIGxpYndlYnJ0YyB0byBNODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjY1MTE4NjJlOWE2NmUzMzczMmYy
YTNkMWJiYWM5MWE4NDNhNDAxLi5iN2NjM2E3MWQ0MGFlOTRhY2M4NGJjMzExMDViYTVkNTk0M2Iw
MjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9y
IFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBydW50aW1lIGZsYWcgZm9yIEgyNjUgaW4gbGlldSBvZiBWUDggYW5kIHBpcGUg
aXQgdG8gbGlid2VicnRjIGZhY3Rvcmllcy4KKyAgICAgICAgVGVzdDogd2VicnRjL2gyNjUuaHRt
bAorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fZGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlcik6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3
ZWJSVENIMjY1Q29kZWNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29h
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURl
Y29kZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6
OmNyZWF0ZUVuY29kZXJGYWN0b3J5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgor
CiAyMDIwLTAzLTI1ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCdW1wIGxpYndlYnJ0YyB0byBNODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2RlNWI3NGRkMTU1Yzc3NWRlNjQ0
ZDAzZmQ3ZWY2NDZlM2EyMjUzOC4uZWU5ZjI3NWM5M2Y1NThjZWNmZGExYjQwZGQ1YzkxMmQ3MTVj
M2NlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNC0wMSAgeW91ZW5uIGZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGluaXRpYWwgc3VwcG9ydCBmb3Ig
V2ViUlRDIEhFVkMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNDI4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSBWUDggcnVudGltZSBmbGFnIGFuZCBhZGQgYSBIMzY1IHJ1bnRpbWUgZmxhZyBp
bnN0ZWFkLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMjAtMDMtMjUgIFZpY3RvciBNLiBKYXF1ZXog
PHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBCdW1wIGxpYndlYnJ0YyB0byBNODIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92
aWRlby92aWRlb19jb2RlY190eXBlLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9hcGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5oCmluZGV4IDEyZGNmYWMxYjlh
Njg2ODc5MjBhZWJjODA0NWI2MmM1NzQ0OTJiZTcuLmM0ZTQ1ZGJkYzBhNDk5MjcxMTNiMGU1MTAx
ZTU0Y2VlZTkwNTdhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmgKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5
cGUuaApAQCAtMjIsNiArMjIsOSBAQCBlbnVtIFZpZGVvQ29kZWNUeXBlIHsKICAga1ZpZGVvQ29k
ZWNWUDksCiAgIGtWaWRlb0NvZGVjQVYxLAogICBrVmlkZW9Db2RlY0gyNjQsCisjaWZuZGVmIERJ
U0FCTEVfSDI2NQorICBrVmlkZW9Db2RlY0gyNjUsCisjZW5kaWYKICAga1ZpZGVvQ29kZWNNdWx0
aXBsZXgsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2Rl
Yy5jYwppbmRleCBkMDMwODJiOTFlMzhjNDdiNGQ0YjE4MGYwZDIzNThjMzkxMzFkMzk5Li41NGY3
ODkwMDQ2NjJmODRjZjE1MTBhOTFjM2Y1NWU0ZDA3Mjk0NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVv
X2NvZGVjLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2MKQEAgLTI1LDYgKzI1LDkgQEAgY29uc3Rl
eHByIGNoYXIga1BheWxvYWROYW1lVnA5W10gPSAiVlA5IjsKIC8vIGZyb3plbi4KIGNvbnN0ZXhw
ciBjaGFyIGtQYXlsb2FkTmFtZUF2MVtdID0gIkFWMVgiOwogY29uc3RleHByIGNoYXIga1BheWxv
YWROYW1lSDI2NFtdID0gIkgyNjQiOworI2lmbmRlZiBESVNBQkxFX0gyNjUKK2NvbnN0ZXhwciBj
aGFyIGtQYXlsb2FkTmFtZUgyNjVbXSA9ICJIMjY1IjsKKyNlbmRpZgogY29uc3RleHByIGNoYXIg
a1BheWxvYWROYW1lR2VuZXJpY1tdID0gIkdlbmVyaWMiOwogY29uc3RleHByIGNoYXIga1BheWxv
YWROYW1lTXVsdGlwbGV4W10gPSAiTXVsdGlwbGV4IjsKIH0gIC8vIG5hbWVzcGFjZQpAQCAtNTYs
NiArNTksMTcgQEAgYm9vbCBWaWRlb0NvZGVjSDI2NDo6b3BlcmF0b3I9PShjb25zdCBWaWRlb0Nv
ZGVjSDI2NCYgb3RoZXIpIGNvbnN0IHsKICAgICAgICAgICBudW1iZXJPZlRlbXBvcmFsTGF5ZXJz
ID09IG90aGVyLm51bWJlck9mVGVtcG9yYWxMYXllcnMpOwogfQogCisjaWZuZGVmIERJU0FCTEVf
SDI2NQorYm9vbCBWaWRlb0NvZGVjSDI2NTo6b3BlcmF0b3I9PShjb25zdCBWaWRlb0NvZGVjSDI2
NSYgb3RoZXIpIGNvbnN0IHsKKyAgcmV0dXJuIChmcmFtZURyb3BwaW5nT24gPT0gb3RoZXIuZnJh
bWVEcm9wcGluZ09uICYmCisgICAgICAgICAga2V5RnJhbWVJbnRlcnZhbCA9PSBvdGhlci5rZXlG
cmFtZUludGVydmFsICYmCisgICAgICAgICAgdnBzTGVuID09IG90aGVyLnZwc0xlbiAmJiBzcHNM
ZW4gPT0gb3RoZXIuc3BzTGVuICYmCisgICAgICAgICAgcHBzTGVuID09IG90aGVyLnBwc0xlbiAm
JgorICAgICAgICAgIChzcHNMZW4gPT0gMCB8fCBtZW1jbXAoc3BzRGF0YSwgb3RoZXIuc3BzRGF0
YSwgc3BzTGVuKSA9PSAwKSAmJgorICAgICAgICAgIChwcHNMZW4gPT0gMCB8fCBtZW1jbXAocHBz
RGF0YSwgb3RoZXIucHBzRGF0YSwgcHBzTGVuKSA9PSAwKSk7Cit9CisjZW5kaWYKKwogYm9vbCBT
cGF0aWFsTGF5ZXI6Om9wZXJhdG9yPT0oY29uc3QgU3BhdGlhbExheWVyJiBvdGhlcikgY29uc3Qg
ewogICByZXR1cm4gKHdpZHRoID09IG90aGVyLndpZHRoICYmIGhlaWdodCA9PSBvdGhlci5oZWln
aHQgJiYKICAgICAgICAgICBtYXhGcmFtZXJhdGUgPT0gb3RoZXIubWF4RnJhbWVyYXRlICYmCkBA
IC0xMTUsNiArMTI5LDE4IEBAIGNvbnN0IFZpZGVvQ29kZWNIMjY0JiBWaWRlb0NvZGVjOjpIMjY0
KCkgY29uc3QgewogICByZXR1cm4gY29kZWNfc3BlY2lmaWNfLkgyNjQ7CiB9CiAKKyNpZm5kZWYg
RElTQUJMRV9IMjY1CitWaWRlb0NvZGVjSDI2NSogVmlkZW9Db2RlYzo6SDI2NSgpIHsKKyAgUlRD
X0RDSEVDS19FUShjb2RlY1R5cGUsIGtWaWRlb0NvZGVjSDI2NSk7CisgIHJldHVybiAmY29kZWNf
c3BlY2lmaWNfLkgyNjU7Cit9CisKK2NvbnN0IFZpZGVvQ29kZWNIMjY1JiBWaWRlb0NvZGVjOjpI
MjY1KCkgY29uc3QgeworICBSVENfRENIRUNLX0VRKGNvZGVjVHlwZSwga1ZpZGVvQ29kZWNIMjY1
KTsKKyAgcmV0dXJuIGNvZGVjX3NwZWNpZmljXy5IMjY1OworfQorI2VuZGlmCisKIGNvbnN0IGNo
YXIqIENvZGVjVHlwZVRvUGF5bG9hZFN0cmluZyhWaWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgIHN3
aXRjaCAodHlwZSkgewogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6CkBAIC0xMjUsNiArMTUxLDEw
IEBAIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5bG9hZFN0cmluZyhWaWRlb0NvZGVjVHlwZSB0
eXBlKSB7CiAgICAgICByZXR1cm4ga1BheWxvYWROYW1lQXYxOwogICAgIGNhc2Uga1ZpZGVvQ29k
ZWNIMjY0OgogICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZUgyNjQ7CisjaWZuZGVmIERJU0FCTEVf
SDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAgICAgcmV0dXJuIGtQYXlsb2FkTmFt
ZUgyNjU7CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjTXVsdGlwbGV4OgogICAgICAgcmV0
dXJuIGtQYXlsb2FkTmFtZU11bHRpcGxleDsKICAgICBjYXNlIGtWaWRlb0NvZGVjR2VuZXJpYzoK
QEAgLTE0MSw2ICsxNzEsMTAgQEAgVmlkZW9Db2RlY1R5cGUgUGF5bG9hZFN0cmluZ1RvQ29kZWNU
eXBlKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKSB7CiAgICAgcmV0dXJuIGtWaWRlb0NvZGVjQVYx
OwogICBpZiAoYWJzbDo6RXF1YWxzSWdub3JlQ2FzZShuYW1lLCBrUGF5bG9hZE5hbWVIMjY0KSkK
ICAgICByZXR1cm4ga1ZpZGVvQ29kZWNIMjY0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgaWYg
KGFic2w6OkVxdWFsc0lnbm9yZUNhc2UobmFtZSwga1BheWxvYWROYW1lSDI2NSkpCisgICAgcmV0
dXJuIGtWaWRlb0NvZGVjSDI2NTsKKyNlbmRpZgogICBpZiAoYWJzbDo6RXF1YWxzSWdub3JlQ2Fz
ZShuYW1lLCBrUGF5bG9hZE5hbWVNdWx0aXBsZXgpKQogICAgIHJldHVybiBrVmlkZW9Db2RlY011
bHRpcGxleDsKICAgcmV0dXJuIGtWaWRlb0NvZGVjR2VuZXJpYzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3Mvdmlk
ZW9fY29kZWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Fw
aS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaAppbmRleCAzMzBiYmJjZTE5OTA1NDBlNzQ1ZDQ3
Y2Y2ZWM2NTdkZTI5NDM0Y2I3Li43NDgzYWZkZmFmNzlkODcyOGM4YzIzODY5NTViN2Q3NjYxZDVh
OWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2RlYy5oCkBA
IC04NCw2ICs4NCwyMyBAQCBzdHJ1Y3QgVmlkZW9Db2RlY0gyNjQgewogICB1aW50OF90IG51bWJl
ck9mVGVtcG9yYWxMYXllcnM7CiB9OwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorc3RydWN0IFZp
ZGVvQ29kZWNIMjY1IHsKKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZpZGVvQ29kZWNIMjY1JiBv
dGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBWaWRlb0NvZGVjSDI2NSYgb3Ro
ZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgIH0KKyAgYm9vbCBm
cmFtZURyb3BwaW5nT247CisgIGludCBrZXlGcmFtZUludGVydmFsOworICBjb25zdCB1aW50OF90
KiB2cHNEYXRhOworICBzaXplX3QgdnBzTGVuOworICBjb25zdCB1aW50OF90KiBzcHNEYXRhOwor
ICBzaXplX3Qgc3BzTGVuOworICBjb25zdCB1aW50OF90KiBwcHNEYXRhOworICBzaXplX3QgcHBz
TGVuOworfTsKKyNlbmRpZgorCiAvLyBUcmFuc2xhdGVzIGZyb20gbmFtZSBvZiBjb2RlYyB0byBj
b2RlYyB0eXBlIGFuZCB2aWNlIHZlcnNhLgogUlRDX0VYUE9SVCBjb25zdCBjaGFyKiBDb2RlY1R5
cGVUb1BheWxvYWRTdHJpbmcoVmlkZW9Db2RlY1R5cGUgdHlwZSk7CiBSVENfRVhQT1JUIFZpZGVv
Q29kZWNUeXBlIFBheWxvYWRTdHJpbmdUb0NvZGVjVHlwZShjb25zdCBzdGQ6OnN0cmluZyYgbmFt
ZSk7CkBAIC05Miw2ICsxMDksOSBAQCB1bmlvbiBWaWRlb0NvZGVjVW5pb24gewogICBWaWRlb0Nv
ZGVjVlA4IFZQODsKICAgVmlkZW9Db2RlY1ZQOSBWUDk7CiAgIFZpZGVvQ29kZWNIMjY0IEgyNjQ7
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBWaWRlb0NvZGVjSDI2NSBIMjY1OworI2VuZGlmCiB9
OwogCiBlbnVtIGNsYXNzIFZpZGVvQ29kZWNNb2RlIHsga1JlYWx0aW1lVmlkZW8sIGtTY3JlZW5z
aGFyaW5nIH07CkBAIC0xNTksNiArMTc5LDEwIEBAIGNsYXNzIFJUQ19FWFBPUlQgVmlkZW9Db2Rl
YyB7CiAgIGNvbnN0IFZpZGVvQ29kZWNWUDkmIFZQOSgpIGNvbnN0OwogICBWaWRlb0NvZGVjSDI2
NCogSDI2NCgpOwogICBjb25zdCBWaWRlb0NvZGVjSDI2NCYgSDI2NCgpIGNvbnN0OworI2lmbmRl
ZiBESVNBQkxFX0gyNjUKKyAgVmlkZW9Db2RlY0gyNjUqIEgyNjUoKTsKKyAgY29uc3QgVmlkZW9D
b2RlY0gyNjUmIEgyNjUoKSBjb25zdDsKKyNlbmRpZgogCiAgcHJpdmF0ZToKICAgLy8gVE9ETyho
dGEpOiBDb25zaWRlciByZXBsYWNpbmcgdGhlIHVuaW9uIHdpdGggYSBwb2ludGVyIHR5cGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkv
dmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2MKaW5kZXgg
NDQyN2Q2YzFmMTYxMjhkNGE0N2JlMmJkYzEyNWZlZDk3NDQxMDUxYS4uYjY2YTRmNDFkMmViNjUy
ZWQ4ZDM4NzRiOTllNzI4MTQ5ZjUzMzVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmNj
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRl
b19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYwpAQCAtNjAsNiArNjAsMjMgQEAgVmlkZW9Db2RlY0gy
NjQgVmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0SDI2NFNldHRpbmdzKCkgewogICByZXR1cm4gaDI2
NF9zZXR0aW5nczsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK1ZpZGVvQ29kZWNIMjY1IFZp
ZGVvRW5jb2Rlcjo6R2V0RGVmYXVsdEgyNjVTZXR0aW5ncygpIHsKKyAgVmlkZW9Db2RlY0gyNjUg
aDI2NV9zZXR0aW5nczsKKyAgbWVtc2V0KCZoMjY1X3NldHRpbmdzLCAwLCBzaXplb2YoaDI2NV9z
ZXR0aW5ncykpOworCisgIC8vIGgyNjVfc2V0dGluZ3MucHJvZmlsZSA9IGtQcm9maWxlQmFzZTsK
KyAgaDI2NV9zZXR0aW5ncy5mcmFtZURyb3BwaW5nT24gPSB0cnVlOworICBoMjY1X3NldHRpbmdz
LmtleUZyYW1lSW50ZXJ2YWwgPSAzMDAwOworICBoMjY1X3NldHRpbmdzLnNwc0RhdGEgPSBudWxs
cHRyOworICBoMjY1X3NldHRpbmdzLnNwc0xlbiA9IDA7CisgIGgyNjVfc2V0dGluZ3MucHBzRGF0
YSA9IG51bGxwdHI7CisgIGgyNjVfc2V0dGluZ3MucHBzTGVuID0gMDsKKworICByZXR1cm4gaDI2
NV9zZXR0aW5nczsKK30KKyNlbmRpZgorCiBWaWRlb0VuY29kZXI6OlNjYWxpbmdTZXR0aW5nczo6
U2NhbGluZ1NldHRpbmdzKCkgPSBkZWZhdWx0OwogCiBWaWRlb0VuY29kZXI6OlNjYWxpbmdTZXR0
aW5nczo6U2NhbGluZ1NldHRpbmdzKEtPZmYpIDogU2NhbGluZ1NldHRpbmdzKCkge30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRl
b19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmgKaW5kZXggMDY0ZGM4
ZmZiNTExM2I4NDYzZWZkZWU4YTM5ZWI1NjJlZTgzY2U5Mi4uY2E3YTJkOGY5NWFlYmQ2OTYwYzAw
NDBhMGNkZjQ4OWEwYTU2OGI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmgKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19lbmNvZGVyLmgKQEAgLTMyMCw2ICszMjAsOSBAQCBjbGFzcyBSVENfRVhQT1JUIFZp
ZGVvRW5jb2RlciB7CiAgIHN0YXRpYyBWaWRlb0NvZGVjVlA4IEdldERlZmF1bHRWcDhTZXR0aW5n
cygpOwogICBzdGF0aWMgVmlkZW9Db2RlY1ZQOSBHZXREZWZhdWx0VnA5U2V0dGluZ3MoKTsKICAg
c3RhdGljIFZpZGVvQ29kZWNIMjY0IEdldERlZmF1bHRIMjY0U2V0dGluZ3MoKTsKKyNpZm5kZWYg
RElTQUJMRV9IMjY1CisgIHN0YXRpYyBWaWRlb0NvZGVjSDI2NSBHZXREZWZhdWx0SDI2NVNldHRp
bmdzKCk7CisjZW5kaWYKIAogICB2aXJ0dWFsIH5WaWRlb0VuY29kZXIoKSB7fQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9f
Y29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5j
YwppbmRleCA2ZWZjYmYyYmRkYjcyMTIzZjFkYjZjMmUwMDMwMWM3NTI5NDIzMDNkLi4wMThlOTNi
ZWI5MTk2NzBmZmZhOTNlMDhjZWMyMjcxYTgzMGFkNGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2Vu
Y29kZXJfY29uZmlnLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcuY2MKQEAgLTkzLDYg
KzkzLDEwIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNvZGVyU3BlY2lmaWNTZXR0aW5n
czo6RmlsbEVuY29kZXJTcGVjaWZpY1NldHRpbmdzKAogICAgIEZpbGxWaWRlb0NvZGVjVnA4KGNv
ZGVjLT5WUDgoKSk7CiAgIH0gZWxzZSBpZiAoY29kZWMtPmNvZGVjVHlwZSA9PSBrVmlkZW9Db2Rl
Y1ZQOSkgewogICAgIEZpbGxWaWRlb0NvZGVjVnA5KGNvZGVjLT5WUDkoKSk7CisjaWZuZGVmIERJ
U0FCTEVfSDI2NQorICB9IGVsc2UgaWYgKGNvZGVjLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNI
MjY1KSB7CisgICAgRmlsbFZpZGVvQ29kZWNIMjY1KGNvZGVjLT5IMjY1KCkpOworI2VuZGlmCiAg
IH0gZWxzZSB7CiAgICAgUlRDX05PVFJFQUNIRUQoKSA8PCAiRW5jb2RlciBzcGVjaWZpY3Mgc2V0
L3VzZWQgZm9yIHVua25vd24gY29kZWMgdHlwZS4iOwogICB9CkBAIC0xMDMsNiArMTA3LDEzIEBA
IHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNvZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbFZp
ZGVvQ29kZWNIMjY0KAogICBSVENfTk9UUkVBQ0hFRCgpOwogfQogCisjaWZuZGVmIERJU0FCTEVf
SDI2NQordm9pZCBWaWRlb0VuY29kZXJDb25maWc6OkVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpG
aWxsVmlkZW9Db2RlY0gyNjUoCisgICAgVmlkZW9Db2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNv
bnN0IHsKKyAgUlRDX05PVFJFQUNIRUQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFZpZGVvRW5jb2Rl
ckNvbmZpZzo6RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OkZpbGxWaWRlb0NvZGVjVnA4KAogICAg
IFZpZGVvQ29kZWNWUDgqIHZwOF9zZXR0aW5ncykgY29uc3QgewogICBSVENfTk9UUkVBQ0hFRCgp
OwpAQCAtMTIyLDYgKzEzMywxNyBAQCB2b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NEVuY29k
ZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjQoCiAgICpoMjY0X3NldHRpbmdz
ID0gc3BlY2lmaWNzXzsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK1ZpZGVvRW5jb2RlckNv
bmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpIMjY1RW5jb2RlclNwZWNpZmljU2V0
dGluZ3MoCisgICAgY29uc3QgVmlkZW9Db2RlY0gyNjUmIHNwZWNpZmljcykKKyAgICA6IHNwZWNp
Zmljc18oc3BlY2lmaWNzKSB7fQorCit2b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NUVuY29k
ZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjUoCisgICAgVmlkZW9Db2RlY0gy
NjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAgKmgyNjVfc2V0dGluZ3MgPSBzcGVjaWZpY3Nf
OworfQorI2VuZGlmCisKIFZpZGVvRW5jb2RlckNvbmZpZzo6VnA4RW5jb2RlclNwZWNpZmljU2V0
dGluZ3M6OlZwOEVuY29kZXJTcGVjaWZpY1NldHRpbmdzKAogICAgIGNvbnN0IFZpZGVvQ29kZWNW
UDgmIHNwZWNpZmljcykKICAgICA6IHNwZWNpZmljc18oc3BlY2lmaWNzKSB7fQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2Nv
ZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5oCmlu
ZGV4IGVmOGRiMTAwYTMyYTIwNWJiZDlkNmZlNzliMjUzNDJmOTMwYzRlMDUuLmQ1NTk0ZjM2NjQx
YTI1YzQzMDAwYTYzYzg1NjBkZjZhZjcwOGUyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rl
cl9jb25maWcuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmgKQEAgLTg0LDYgKzg0LDkg
QEAgY2xhc3MgVmlkZW9FbmNvZGVyQ29uZmlnIHsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVv
Q29kZWNWcDgoVmlkZW9Db2RlY1ZQOCogdnA4X3NldHRpbmdzKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgRmlsbFZpZGVvQ29kZWNWcDkoVmlkZW9Db2RlY1ZQOSogdnA5X3NldHRpbmdzKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNIMjY0KFZpZGVvQ29kZWNIMjY0KiBo
MjY0X3NldHRpbmdzKSBjb25zdDsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAgdmlydHVhbCB2
b2lkIEZpbGxWaWRlb0NvZGVjSDI2NShWaWRlb0NvZGVjSDI2NSogaDI2NV9zZXR0aW5ncykgY29u
c3Q7CisjZW5kaWYKIAogICAgcHJpdmF0ZToKICAgICB+RW5jb2RlclNwZWNpZmljU2V0dGluZ3Mo
KSBvdmVycmlkZSB7fQpAQCAtOTksNiArMTAyLDE3IEBAIGNsYXNzIFZpZGVvRW5jb2RlckNvbmZp
ZyB7CiAgICAgVmlkZW9Db2RlY0gyNjQgc3BlY2lmaWNzXzsKICAgfTsKIAorI2lmbmRlZiBESVNB
QkxFX0gyNjUKKyAgY2xhc3MgSDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzIDogcHVibGljIEVu
Y29kZXJTcGVjaWZpY1NldHRpbmdzIHsKKyAgIHB1YmxpYzoKKyAgICBleHBsaWNpdCBIMjY1RW5j
b2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3QgVmlkZW9Db2RlY0gyNjUmIHNwZWNpZmljcyk7Cisg
ICAgdm9pZCBGaWxsVmlkZW9Db2RlY0gyNjUoVmlkZW9Db2RlY0gyNjUqIGgyNjVfc2V0dGluZ3Mp
IGNvbnN0IG92ZXJyaWRlOworCisgICBwcml2YXRlOgorICAgIFZpZGVvQ29kZWNIMjY1IHNwZWNp
Zmljc187CisgIH07CisjZW5kaWYKKwogICBjbGFzcyBWcDhFbmNvZGVyU3BlY2lmaWNTZXR0aW5n
cyA6IHB1YmxpYyBFbmNvZGVyU3BlY2lmaWNTZXR0aW5ncyB7CiAgICBwdWJsaWM6CiAgICAgZXhw
bGljaXQgVnA4RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3QgVmlkZW9Db2RlY1ZQOCYgc3Bl
Y2lmaWNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9idWlsZF9vdmVycmlkZXMvYnVpbGQuZ25pCmluZGV4IDY2OTA0
NGRiODFjYjIxODViZTM3NGIwYjEwMDI3MDkzYzU2ODNjMzUuLjYwMjVjZGRkMDQ3ZTA5YjFkMGQy
NWUwMzQxYTVmY2M1OTU5NzAyODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYnVpbGRfb3ZlcnJpZGVzL2J1aWxk
LmduaQpAQCAtMzUsNiArMzUsMTIgQEAgbGludF9zdXBwcmVzc2lvbnNfZmlsZSA9ICIvL3Rvb2xz
X3dlYnJ0Yy9hbmRyb2lkL3N1cHByZXNzaW9ucy54bWwiCiAjIHNvIHdlIGp1c3QgaWdub3JlIHRo
YXQgYXNzZXJ0LiBTZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNjQ4OTQ4IGZvciBtb3JlIGluZm8uCiBp
Z25vcmVfZWxmMzJfbGltaXRhdGlvbnMgPSB0cnVlCiAKK2lmIChpc193aW4gfHwgaXNfaW9zIHx8
IGlzX2FuZHJvaWQpIHsKKyAgcnRjX3VzZV9oMjY1ID0gdHJ1ZQorfSBlbHNlIHsKKyAgcnRjX3Vz
ZV9oMjY1ID0gZmFsc2UKK30KKwogIyBVc2UgYnVuZGxlZCBoZXJtZXRpYyBYY29kZSBpbnN0YWxs
YXRpb24gbWFpbnRhaW50ZWQgYnkgQ2hyb21pdW0sCiAjIGV4Y2VwdCBmb3IgbG9jYWwgaU9TIGJ1
aWxkcyB3aGVyZSBpdCdzIHVuc3VwcG9ydGVkLgogaWYgKGhvc3Rfb3MgPT0gIm1hYyIpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NhbGwv
cnRwX3BheWxvYWRfcGFyYW1zLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKaW5kZXggMzFjYjc0M2Q5ZDkzNjc2
ZTFjNmVlNjg1MDliNjU1ODVhZjE0NGUwNC4uM2FhZGY4OWViODNlODY0NDBiZmZhZmE2MmU2NDNk
MzM3MmE3MWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKQEAg
LTEwNSw2ICsxMDUsMTQgQEAgdm9pZCBQb3B1bGF0ZVJ0cFdpdGhDb2RlY1NwZWNpZmljcyhjb25z
dCBDb2RlY1NwZWNpZmljSW5mbyYgaW5mbywKICAgICAgIH0KICAgICAgIHJldHVybjsKICAgICB9
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OiB7CisgICAg
ICBhdXRvIGgyNjVfaGVhZGVyID0gcnRwLT52aWRlb190eXBlX2hlYWRlci5lbXBsYWNlPFJUUFZp
ZGVvSGVhZGVySDI2NT4oKTsKKyAgICAgIGgyNjVfaGVhZGVyLnBhY2tldGl6YXRpb25fbW9kZSA9
CisgICAgICAgICAgaW5mby5jb2RlY1NwZWNpZmljLkgyNjUucGFja2V0aXphdGlvbl9tb2RlOwor
ICAgIH0KKyAgICByZXR1cm47CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjTXVsdGlwbGV4
OgogICAgIGNhc2Uga1ZpZGVvQ29kZWNHZW5lcmljOgogICAgICAgcnRwLT5jb2RlYyA9IGtWaWRl
b0NvZGVjR2VuZXJpYzsKQEAgLTMwMCw2ICszMDgsOSBAQCB2b2lkIFJ0cFBheWxvYWRQYXJhbXM6
OlNldEdlbmVyaWMoY29uc3QgQ29kZWNTcGVjaWZpY0luZm8qIGNvZGVjX3NwZWNpZmljX2luZm8s
CiAgICAgICAgICAgICAgICAgICAgICAgaXNfa2V5ZnJhbWUsIHJ0cF92aWRlb19oZWFkZXIpOwog
ICAgICAgfQogICAgICAgcmV0dXJuOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIFZp
ZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY0gyNjU6CisjZW5kaWYKICAgICBjYXNlIFZpZGVvQ29k
ZWNUeXBlOjprVmlkZW9Db2RlY011bHRpcGxleDoKICAgICAgIHJldHVybjsKICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3Zp
ZGVvL0JVSUxELmduIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
Y29tbW9uX3ZpZGVvL0JVSUxELmduCmluZGV4IGRkZjRjMmQ0OTU5YWVkZTQxOGQyNWQ1YzhlN2I4
MGU1MzYwODM1MGIuLjdkNDg5NmVkN2NlODhiNTM0NWZkYWM4MDQ5NGJmNWZmOWZlMjcwOTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1v
bl92aWRlby9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9jb21tb25fdmlkZW8vQlVJTEQuZ24KQEAgLTQxLDYgKzQxLDE5IEBAIHJ0Y19saWJy
YXJ5KCJjb21tb25fdmlkZW8iKSB7CiAgICAgInZpZGVvX3JlbmRlcl9mcmFtZXMuaCIsCiAgIF0K
IAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisgICAgICAiaDI2NS9o
MjY1X2NvbW1vbi5jYyIsCisgICAgICAiaDI2NS9oMjY1X2NvbW1vbi5oIiwKKyAgICAgICJoMjY1
L2gyNjVfcHBzX3BhcnNlci5jYyIsCisgICAgICAiaDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIsCisg
ICAgICAiaDI2NS9oMjY1X3Nwc19wYXJzZXIuY2MiLAorICAgICAgImgyNjUvaDI2NV9zcHNfcGFy
c2VyLmgiLAorICAgICAgImgyNjUvaDI2NV92cHNfcGFyc2VyLmNjIiwKKyAgICAgICJoMjY1L2gy
NjVfdnBzX3BhcnNlci5oIiwKKyAgICBdCisgIH0KKwogICBkZXBzID0gWwogICAgICIuLi9hcGk6
c2NvcGVkX3JlZnB0ciIsCiAgICAgIi4uL2FwaS90YXNrX3F1ZXVlIiwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1
L2gyNjVfY29tbW9uLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIyY2FjMjI3
NTlkOGJkYmJmZmJmMGY3MTRlOTE0N2U2NDIzYjYzZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gy
NjVfY29tbW9uLmNjCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAx
OCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisg
KiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGlj
ZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJv
b3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHBy
b3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRT
LiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4g
dGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKwor
I2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisKK25hbWVzcGFjZSB3
ZWJydGMgeworbmFtZXNwYWNlIEgyNjUgeworCitjb25zdCB1aW50OF90IGtOYWx1VHlwZU1hc2sg
PSAweDdFOworCitzdGQ6OnZlY3RvcjxOYWx1SW5kZXg+IEZpbmROYWx1SW5kaWNlcyhjb25zdCB1
aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgYnVmZmVyX3NpemUpIHsKKyAgLy8gVGhpcyBpcyBzb3J0YSBsaWtlIEJveWVyLU1vb3Jl
LCBidXQgd2l0aCBvbmx5IHRoZSBmaXJzdCBvcHRpbWl6YXRpb24gc3RlcDoKKyAgLy8gZ2l2ZW4g
YSAzLWJ5dGUgc2VxdWVuY2Ugd2UncmUgbG9va2luZyBhdCwgaWYgdGhlIDNyZCBieXRlIGlzbid0
IDEgb3IgMCwKKyAgLy8gc2tpcCBhaGVhZCB0byB0aGUgbmV4dCAzLWJ5dGUgc2VxdWVuY2UuIDBz
IGFuZCAxcyBhcmUgcmVsYXRpdmVseSByYXJlLCBzbworICAvLyB0aGlzIHdpbGwgc2tpcCB0aGUg
bWFqb3JpdHkgb2YgcmVhZHMvY2hlY2tzLgorICBzdGQ6OnZlY3RvcjxOYWx1SW5kZXg+IHNlcXVl
bmNlczsKKyAgaWYgKGJ1ZmZlcl9zaXplIDwga05hbHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXplKQor
ICAgIHJldHVybiBzZXF1ZW5jZXM7CisKKyAgY29uc3Qgc2l6ZV90IGVuZCA9IGJ1ZmZlcl9zaXpl
IC0ga05hbHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXplOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGVuZDspIHsKKyAgICBpZiAoYnVmZmVyW2kgKyAyXSA+IDEpIHsKKyAgICAgIGkgKz0gMzsKKyAg
ICB9IGVsc2UgaWYgKGJ1ZmZlcltpICsgMl0gPT0gMSAmJiBidWZmZXJbaSArIDFdID09IDAgJiYg
YnVmZmVyW2ldID09IDApIHsKKyAgICAgIC8vIFdlIGZvdW5kIGEgc3RhcnQgc2VxdWVuY2UsIG5v
dyBjaGVjayBpZiBpdCB3YXMgYSAzIG9mIDQgYnl0ZSBvbmUuCisgICAgICBOYWx1SW5kZXggaW5k
ZXggPSB7aSwgaSArIDMsIDB9OworICAgICAgaWYgKGluZGV4LnN0YXJ0X29mZnNldCA+IDAgJiYg
YnVmZmVyW2luZGV4LnN0YXJ0X29mZnNldCAtIDFdID09IDApCisgICAgICAgIC0taW5kZXguc3Rh
cnRfb2Zmc2V0OworCisgICAgICAvLyBVcGRhdGUgbGVuZ3RoIG9mIHByZXZpb3VzIGVudHJ5Lgor
ICAgICAgYXV0byBpdCA9IHNlcXVlbmNlcy5yYmVnaW4oKTsKKyAgICAgIGlmIChpdCAhPSBzZXF1
ZW5jZXMucmVuZCgpKQorICAgICAgICBpdC0+cGF5bG9hZF9zaXplID0gaW5kZXguc3RhcnRfb2Zm
c2V0IC0gaXQtPnBheWxvYWRfc3RhcnRfb2Zmc2V0OworCisgICAgICBzZXF1ZW5jZXMucHVzaF9i
YWNrKGluZGV4KTsKKworICAgICAgaSArPSAzOworICAgIH0gZWxzZSB7CisgICAgICArK2k7Cisg
ICAgfQorICB9CisKKyAgLy8gVXBkYXRlIGxlbmd0aCBvZiBsYXN0IGVudHJ5LCBpZiBhbnkuCisg
IGF1dG8gaXQgPSBzZXF1ZW5jZXMucmJlZ2luKCk7CisgIGlmIChpdCAhPSBzZXF1ZW5jZXMucmVu
ZCgpKQorICAgIGl0LT5wYXlsb2FkX3NpemUgPSBidWZmZXJfc2l6ZSAtIGl0LT5wYXlsb2FkX3N0
YXJ0X29mZnNldDsKKworICByZXR1cm4gc2VxdWVuY2VzOworfQorCitOYWx1VHlwZSBQYXJzZU5h
bHVUeXBlKHVpbnQ4X3QgZGF0YSkgeworICByZXR1cm4gc3RhdGljX2Nhc3Q8TmFsdVR5cGU+KChk
YXRhICYga05hbHVUeXBlTWFzaykgPj4gMSk7Cit9CisKK3N0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFBh
cnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVj
dG9yPHVpbnQ4X3Q+IG91dDsKKyAgb3V0LnJlc2VydmUobGVuZ3RoKTsKKworICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGxlbmd0aDspIHsKKyAgICAvLyBCZSBjYXJlZnVsIGFib3V0IG92ZXIvdW5k
ZXJmbG93IGhlcmUuIGJ5dGVfbGVuZ3RoXyAtIDMgY2FuIHVuZGVyZmxvdywgYW5kCisgICAgLy8g
aSArIDMgY2FuIG92ZXJmbG93LCBidXQgYnl0ZV9sZW5ndGhfIC0gaSBjYW4ndCwgYmVjYXVzZSBp
IDwgYnl0ZV9sZW5ndGhfCisgICAgLy8gYWJvdmUsIGFuZCB0aGF0IGV4cHJlc3Npb24gd2lsbCBw
cm9kdWNlIHRoZSBudW1iZXIgb2YgYnl0ZXMgbGVmdCBpbgorICAgIC8vIHRoZSBzdHJlYW0gaW5j
bHVkaW5nIHRoZSBieXRlIGF0IGkuCisgICAgaWYgKGxlbmd0aCAtIGkgPj0gMyAmJiAhZGF0YVtp
XSAmJiAhZGF0YVtpICsgMV0gJiYgZGF0YVtpICsgMl0gPT0gMykgeworICAgICAgLy8gVHdvIHJi
c3AgYnl0ZXMuCisgICAgICBvdXQucHVzaF9iYWNrKGRhdGFbaSsrXSk7CisgICAgICBvdXQucHVz
aF9iYWNrKGRhdGFbaSsrXSk7CisgICAgICAvLyBTa2lwIHRoZSBlbXVsYXRpb24gYnl0ZS4KKyAg
ICAgIGkrKzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gU2luZ2xlIHJic3AgYnl0ZS4KKyAgICAg
IG91dC5wdXNoX2JhY2soZGF0YVtpKytdKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIG91dDsKK30K
Kwordm9pZCBXcml0ZVJic3AoY29uc3QgdWludDhfdCogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIHJ0
Yzo6QnVmZmVyKiBkZXN0aW5hdGlvbikgeworICBzdGF0aWMgY29uc3QgdWludDhfdCBrWmVyb3NJ
blN0YXJ0U2VxdWVuY2UgPSAyOworICBzdGF0aWMgY29uc3QgdWludDhfdCBrRW11bGF0aW9uQnl0
ZSA9IDB4MDN1OworICBzaXplX3QgbnVtX2NvbnNlY3V0aXZlX3plcm9zID0gMDsKKyAgZGVzdGlu
YXRpb24tPkVuc3VyZUNhcGFjaXR5KGRlc3RpbmF0aW9uLT5zaXplKCkgKyBsZW5ndGgpOworCisg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICB1aW50OF90IGJ5dGUg
PSBieXRlc1tpXTsKKyAgICBpZiAoYnl0ZSA8PSBrRW11bGF0aW9uQnl0ZSAmJgorICAgICAgICBu
dW1fY29uc2VjdXRpdmVfemVyb3MgPj0ga1plcm9zSW5TdGFydFNlcXVlbmNlKSB7CisgICAgICAv
LyBOZWVkIHRvIGVzY2FwZS4KKyAgICAgIGRlc3RpbmF0aW9uLT5BcHBlbmREYXRhKGtFbXVsYXRp
b25CeXRlKTsKKyAgICAgIG51bV9jb25zZWN1dGl2ZV96ZXJvcyA9IDA7CisgICAgfQorICAgIGRl
c3RpbmF0aW9uLT5BcHBlbmREYXRhKGJ5dGUpOworICAgIGlmIChieXRlID09IDApIHsKKyAgICAg
ICsrbnVtX2NvbnNlY3V0aXZlX3plcm9zOworICAgIH0gZWxzZSB7CisgICAgICBudW1fY29uc2Vj
dXRpdmVfemVyb3MgPSAwOworICAgIH0KKyAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgSDI2NQor
fSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1
L2gyNjVfY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdiYjI3NzRlZTEwYWIxM2U5MjI1ZDQ0MDVkNTE2
OTNhYzcxMDQxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgKQEAgLTAsMCAr
MSwxMDAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBh
dXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2Ug
Y29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUg
Zm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAg
dHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNh
biBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHBy
b2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRo
ZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIENPTU1PTl9WSURFT19I
MjY1X0gyNjVfQ09NTU9OX0hfCisjZGVmaW5lIENPTU1PTl9WSURFT19IMjY1X0gyNjVfQ09NTU9O
X0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSAi
cnRjX2Jhc2UvYnVmZmVyLmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCituYW1lc3BhY2UgSDI2
NSB7CisvLyBUaGUgc2l6ZSBvZiBhIGZ1bGwgTkFMVSBzdGFydCBzZXF1ZW5jZSB7MCAwIDAgMX0s
IHVzZWQgZm9yIHRoZSBmaXJzdCBOQUxVCisvLyBvZiBhbiBhY2Nlc3MgdW5pdCwgYW5kIGZvciBT
UFMgYW5kIFBQUyBibG9ja3MuCitjb25zdCBzaXplX3Qga05hbHVMb25nU3RhcnRTZXF1ZW5jZVNp
emUgPSA0OworCisvLyBUaGUgc2l6ZSBvZiBhIHNob3J0ZW5lZCBOQUxVIHN0YXJ0IHNlcXVlbmNl
IHswIDAgMX0sIHRoYXQgbWF5IGJlIHVzZWQgaWYKKy8vIG5vdCB0aGUgZmlyc3QgTkFMVSBvZiBh
biBhY2Nlc3MgdW5pdCBvciBhbiBTUFMgb3IgUFBTIGJsb2NrLgorY29uc3Qgc2l6ZV90IGtOYWx1
U2hvcnRTdGFydFNlcXVlbmNlU2l6ZSA9IDM7CisKKy8vIFRoZSBzaXplIG9mIHRoZSBOQUxVIHR5
cGUgYnl0ZSAoMSkuCitjb25zdCBzaXplX3Qga05hbHVUeXBlU2l6ZSA9IDE7CisKK2VudW0gTmFs
dVR5cGUgOiB1aW50OF90IHsKKyAga1RyYWlsTiA9IDAsCisgIGtUcmFpbFIgPSAxLAorICBrVHNh
TiA9IDIsCisgIGtUc2FSID0gMywKKyAga1N0c2FOID0gNCwKKyAga1N0c2FSID0gNSwKKyAga1Jh
ZGxOID0gNiwKKyAga1JhZGxSID0gNywKKyAga0JsYVdMcCA9IDE2LAorICBrQmxhV1JhZGwgPSAx
NywKKyAga0JsYU5McCA9IDE4LAorICBrSWRyV1JhZGwgPSAxOSwKKyAga0lkck5McCA9IDIwLAor
ICBrQ3JhID0gMjEsCisgIGtSc3ZJcmFwVmNsMjMgPSAyMywKKyAga1ZwcyA9IDMyLAorICBrU3Bz
ID0gMzMsCisgIGtQcHMgPSAzNCwKKyAga0F1ZCA9IDM1LAorICBrUHJlZml4U2VpID0gMzksCisg
IGtTdWZmaXhTZWkgPSA0MCwKKyAga0FQID0gNDgsCisgIGtGVSA9IDQ5Cit9OworCitlbnVtIFNs
aWNlVHlwZSA6IHVpbnQ4X3QgeyBrUCA9IDAsIGtCID0gMSwga0kgPSAyLCBrU3AgPSAzLCBrU2kg
PSA0IH07CisKK3N0cnVjdCBOYWx1SW5kZXggeworICAvLyBTdGFydCBpbmRleCBvZiBOQUxVLCBp
bmNsdWRpbmcgc3RhcnQgc2VxdWVuY2UuCisgIHNpemVfdCBzdGFydF9vZmZzZXQ7CisgIC8vIFN0
YXJ0IGluZGV4IG9mIE5BTFUgcGF5bG9hZCwgdHlwaWNhbGx5IHR5cGUgaGVhZGVyLgorICBzaXpl
X3QgcGF5bG9hZF9zdGFydF9vZmZzZXQ7CisgIC8vIExlbmd0aCBvZiBOQUxVIHBheWxvYWQsIGlu
IGJ5dGVzLCBjb3VudGluZyBmcm9tIHBheWxvYWRfc3RhcnRfb2Zmc2V0LgorICBzaXplX3QgcGF5
bG9hZF9zaXplOworfTsKKworLy8gUmV0dXJucyBhIHZlY3RvciBvZiB0aGUgTkFMVSBpbmRpY2Vz
IGluIHRoZSBnaXZlbiBidWZmZXIuCitzdGQ6OnZlY3RvcjxOYWx1SW5kZXg+IEZpbmROYWx1SW5k
aWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUpOworCisvLyBHZXQgdGhlIE5BTCB0eXBlIGZy
b20gdGhlIGhlYWRlciBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBzdGFydCBzZXF1ZW5jZS4K
K05hbHVUeXBlIFBhcnNlTmFsdVR5cGUodWludDhfdCBkYXRhKTsKKworLy8gTWV0aG9kcyBmb3Ig
cGFyc2luZyBhbmQgd3JpdGluZyBSQlNQLiBTZWUgc2VjdGlvbiA3LjQuMiBvZiB0aGUgSDI2NSBz
cGVjLgorLy8KKy8vIFRoZSBmb2xsb3dpbmcgc2VxdWVuY2VzIGFyZSBpbGxlZ2FsLCBhbmQgbmVl
ZCB0byBiZSBlc2NhcGVkIHdoZW4gZW5jb2Rpbmc6CisvLyAwMCAwMCAwMCAtPiAwMCAwMCAwMyAw
MAorLy8gMDAgMDAgMDEgLT4gMDAgMDAgMDMgMDEKKy8vIDAwIDAwIDAyIC0+IDAwIDAwIDAzIDAy
CisvLyBBbmQgdGhpbmdzIGluIHRoZSBzb3VyY2UgdGhhdCBsb29rIGxpa2UgdGhlIGVtdWxhdGlv
biBieXRlIHBhdHRlcm4gKDAwIDAwIDAzKQorLy8gbmVlZCB0byBoYXZlIGFuIGV4dHJhIGVtdWxh
dGlvbiBieXRlIGFkZGVkLCBzbyBpdCdzIHJlbW92ZWQgd2hlbiBkZWNvZGluZzoKKy8vIDAwIDAw
IDAzIC0+IDAwIDAwIDAzIDAzCisvLworLy8gRGVjb2RpbmcgaXMgc2ltcGx5IGEgbWF0dGVyIG9m
IGZpbmRpbmcgYW55IDAwIDAwIDAzIHNlcXVlbmNlIGFuZCByZW1vdmluZworLy8gdGhlIDAzIGVt
dWxhdGlvbiBieXRlLgorCisvLyBQYXJzZSB0aGUgZ2l2ZW4gZGF0YSBhbmQgcmVtb3ZlIGFueSBl
bXVsYXRpb24gYnl0ZSBlc2NhcGluZy4KK3N0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFBhcnNlUmJzcChj
b25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKworLy8gV3JpdGUgdGhlIGdpdmVu
IGRhdGEgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciwgaW5zZXJ0aW5nIGFuZCBlbXVsYXRpb24K
Ky8vIGJ5dGVzIGluIG9yZGVyIHRvIGVzY2FwZSBhbnkgZGF0YSB0aGUgY291bGQgYmUgaW50ZXJw
cmV0ZWQgYXMgYSBzdGFydAorLy8gc2VxdWVuY2UuCit2b2lkIFdyaXRlUmJzcChjb25zdCB1aW50
OF90KiBieXRlcywgc2l6ZV90IGxlbmd0aCwgcnRjOjpCdWZmZXIqIGRlc3RpbmF0aW9uKTsKK30g
IC8vIG5hbWVzcGFjZSBIMjY1Cit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisKKyNlbmRpZiAgLy8g
Q09NTU9OX1ZJREVPX0gyNjVfSDI2NV9DT01NT05fSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBz
X3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nv
bW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MTg0MTFjZWQz
MjdjODRhNjVlYzkzZjRkZmM3YmU5MmNmZjJlMjZiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2
NV9wcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMjA5IEBACisvKgorICogIENvcHlyaWdodCAoYykg
MjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
bGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFs
IHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRF
TlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQg
aW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8K
KworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oIgorCisjaW5j
bHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgImNvbW1vbl92aWRl
by9oMjY0L2gyNjRfY29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9j
b21tb24uaCIKKyNpbmNsdWRlICJydGNfYmFzZS9iaXRfYnVmZmVyLmgiCisjaW5jbHVkZSAicnRj
X2Jhc2UvbG9nZ2luZy5oIgorCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAg
aWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBhYnNsOjpudWxsb3B0
OyAgICAgICAgXAorICB9CisKK25hbWVzcGFjZSB7Citjb25zdCBpbnQga01heFBpY0luaXRRcERl
bHRhVmFsdWUgPSAyNTsKK2NvbnN0IGludCBrTWluUGljSW5pdFFwRGVsdGFWYWx1ZSA9IC0yNjsK
K30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworLy8gR2VuZXJhbCBub3Rl
OiB0aGlzIGlzIGJhc2VkIG9mZiB0aGUgMDIvMjAxOCB2ZXJzaW9uIG9mIHRoZSBILjI2NSBzdGFu
ZGFyZC4KKy8vIFlvdSBjYW4gZmluZCBpdCBvbiB0aGlzIHBhZ2U6CisvLyBodHRwOi8vd3d3Lml0
dS5pbnQvcmVjL1QtUkVDLUguMjY1CisKK2Fic2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBw
c1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwcygKKyAgICBjb25zdCB1aW50OF90KiBkYXRh
LAorICAgIHNpemVfdCBsZW5ndGgpIHsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGlj
aCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5
dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlz
IGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMuMSBvZiB0aGUgSC4yNjQgc3RhbmRhcmQuCisg
IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjQ6OlBhcnNlUmJzcChk
YXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZl
ci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5h
bCgmYml0X2J1ZmZlcik7Cit9CisKK2Jvb2wgSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJZHMoY29u
c3QgdWludDhfdCogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHBwc19p
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHNwc19pZCkgewor
ICBSVENfRENIRUNLKHBwc19pZCk7CisgIFJUQ19EQ0hFQ0soc3BzX2lkKTsKKyAgLy8gRmlyc3Qs
IHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZmZXIgbWlu
dXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAweDAwIDB4
MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMuMSBvZiB0
aGUgSC4yNjUgc3RhbmRhcmQuCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZl
ciA9IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRf
YnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOwor
ICByZXR1cm4gUGFyc2VQcHNJZHNJbnRlcm5hbCgmYml0X2J1ZmZlciwgcHBzX2lkLCBzcHNfaWQp
OworfQorCithYnNsOjpvcHRpb25hbDx1aW50MzJfdD4gSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJ
ZEZyb21TbGljZVNlZ21lbnRMYXllclJic3AoCisgICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAg
ICBzaXplX3QgbGVuZ3RoLAorICAgIHVpbnQ4X3QgbmFsdV90eXBlKSB7CisgIHJ0Yzo6Qml0QnVm
ZmVyIHNsaWNlX3JlYWRlcihkYXRhLCBsZW5ndGgpOworCisgIC8vIGZpcnN0X3NsaWNlX3NlZ21l
bnRfaW5fcGljX2ZsYWc6IHUoMSkKKyAgdWludDMyX3QgZmlyc3Rfc2xpY2Vfc2VnbWVudF9pbl9w
aWNfZmxhZyA9IDA7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgc2xpY2VfcmVhZGVy
LlJlYWRCaXRzKCZmaXJzdF9zbGljZV9zZWdtZW50X2luX3BpY19mbGFnLCAxKSk7CisKKyAgaWYg
KG5hbHVfdHlwZSA+PSBIMjY1OjpOYWx1VHlwZTo6a0JsYVdMcCAmJgorICAgICAgbmFsdV90eXBl
IDw9IEgyNjU6Ok5hbHVUeXBlOjprUnN2SXJhcFZjbDIzKSB7CisgICAgLy8gbm9fb3V0cHV0X29m
X3ByaW9yX3BpY3NfZmxhZzogdSgxKQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHNsaWNlX3Jl
YWRlci5Db25zdW1lQml0cygxKSk7CisgIH0KKworICAvLyBzbGljZV9waWNfcGFyYW1ldGVyX3Nl
dF9pZDogdWUodikKKyAgdWludDMyX3Qgc2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQgPSAwOwor
ICBpZiAoIXNsaWNlX3JlYWRlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnNsaWNlX3BpY19wYXJh
bWV0ZXJfc2V0X2lkKSkKKyAgICByZXR1cm4gYWJzbDo6bnVsbG9wdDsKKworICByZXR1cm4gc2xp
Y2VfcGljX3BhcmFtZXRlcl9zZXRfaWQ7Cit9CisKK2Fic2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJz
ZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZUludGVybmFsKAorICAgIHJ0Yzo6Qml0
QnVmZmVyKiBiaXRfYnVmZmVyKSB7CisgIFBwc1N0YXRlIHBwczsKKworICBSRVRVUk5fRU1QVFlf
T05fRkFJTChQYXJzZVBwc0lkc0ludGVybmFsKGJpdF9idWZmZXIsICZwcHMuaWQsICZwcHMuc3Bz
X2lkKSk7CisKKyAgdWludDMyX3QgYml0c190bXA7CisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVk
OworICAvLyBlbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWc6IHUoMSkKKyAgdWludDMyX3QgZW50cm9w
eV9jb2RpbmdfbW9kZV9mbGFnOworICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5S
ZWFkQml0cygmZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnLCAxKSk7CisgIHBwcy5lbnRyb3B5X2Nv
ZGluZ19tb2RlX2ZsYWcgPSBlbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWcgIT0gMDsKKyAgLy8gYm90
dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVzZW50X2ZsYWc6IHUoMSkKKyAgdWludDMy
X3QgYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVzZW50X2ZsYWc7CisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0X2J1ZmZlci0+UmVhZEJpdHMoJmJvdHRvbV9maWVs
ZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnLCAxKSk7CisgIHBwcy5ib3R0b21fZmll
bGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZyA9CisgICAgICBib3R0b21fZmllbGRf
cGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZyAhPSAwOworCisgIC8vIG51bV9zbGljZV9n
cm91cHNfbWludXMxOiB1ZSh2KQorICB1aW50MzJfdCBudW1fc2xpY2VfZ3JvdXBzX21pbnVzMTsK
KyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRp
YWxHb2xvbWIoJm51bV9zbGljZV9ncm91cHNfbWludXMxKSk7CisgIGlmIChudW1fc2xpY2VfZ3Jv
dXBzX21pbnVzMSA+IDApIHsKKyAgICB1aW50MzJfdCBzbGljZV9ncm91cF9tYXBfdHlwZTsKKyAg
ICAvLyBzbGljZV9ncm91cF9tYXBfdHlwZTogdWUodikKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJ
TCgKKyAgICAgICAgYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZzbGljZV9ncm91
cF9tYXBfdHlwZSkpOworICAgIGlmIChzbGljZV9ncm91cF9tYXBfdHlwZSA9PSAwKSB7CisgICAg
ICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAwOyBpX2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNf
bWludXMxOworICAgICAgICAgICArK2lfZ3JvdXApIHsKKyAgICAgICAgLy8gcnVuX2xlbmd0aF9t
aW51czFbaUdyb3VwXTogdWUodikKKyAgICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAg
ICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVk
KSk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChzbGljZV9ncm91cF9tYXBfdHlwZSA9PSAxKSB7
CisgICAgICAvLyBUT0RPKHNwcmFuZyk6IEltcGxlbWVudCBzdXBwb3J0IGZvciBkaXNwZXJzZWQg
c2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisgICAgICAvLyBTZWUgOC4yLjIuMiBTcGVjaWZpY2F0aW9u
IGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisgICAgfSBlbHNlIGlmIChzbGlj
ZV9ncm91cF9tYXBfdHlwZSA9PSAyKSB7CisgICAgICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAw
OyBpX2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNfbWludXMxOworICAgICAgICAgICArK2lfZ3Jv
dXApIHsKKyAgICAgICAgLy8gdG9wX2xlZnRbaUdyb3VwXTogdWUodikKKyAgICAgICAgUkVUVVJO
X0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxH
b2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAgICAgIC8vIGJvdHRvbV9yaWdodFtpR3JvdXBd
OiB1ZSh2KQorICAgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgICAgIGJpdF9i
dWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgICAgIH0K
KyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBlID09IDMgfHwgc2xpY2VfZ3JvdXBf
bWFwX3R5cGUgPT0gNCB8fAorICAgICAgICAgICAgICAgc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0g
NSkgeworICAgICAgLy8gc2xpY2VfZ3JvdXBfY2hhbmdlX2RpcmVjdGlvbl9mbGFnOiB1KDEpCisg
ICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmYml0c190bXAs
IDEpKTsKKyAgICAgIC8vIHNsaWNlX2dyb3VwX2NoYW5nZV9yYXRlX21pbnVzMTogdWUodikKKyAg
ICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9t
YigmZ29sb21iX2lnbm9yZWQpKTsKKyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBl
ID09IDYpIHsKKyAgICAgIC8vIHBpY19zaXplX2luX21hcF91bml0c19taW51czE6IHVlKHYpCisg
ICAgICB1aW50MzJfdCBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxOworICAgICAgUkVUVVJO
X0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29s
b21iKCZwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxKSk7CisgICAgICB1aW50MzJfdCBzbGlj
ZV9ncm91cF9pZF9iaXRzID0gMDsKKyAgICAgIHVpbnQzMl90IG51bV9zbGljZV9ncm91cHMgPSBu
dW1fc2xpY2VfZ3JvdXBzX21pbnVzMSArIDE7CisgICAgICAvLyBJZiBudW1fc2xpY2VfZ3JvdXBz
IGlzIG5vdCBhIHBvd2VyIG9mIHR3byBhbiBhZGRpdGlvbmFsIGJpdCBpcyByZXF1aXJlZAorICAg
ICAgLy8gdG8gYWNjb3VudCBmb3IgdGhlIGNlaWwoKSBvZiBsb2cyKCkgYmVsb3cuCisgICAgICBp
ZiAoKG51bV9zbGljZV9ncm91cHMgJiAobnVtX3NsaWNlX2dyb3VwcyAtIDEpKSAhPSAwKQorICAg
ICAgICArK3NsaWNlX2dyb3VwX2lkX2JpdHM7CisgICAgICB3aGlsZSAobnVtX3NsaWNlX2dyb3Vw
cyA+IDApIHsKKyAgICAgICAgbnVtX3NsaWNlX2dyb3VwcyA+Pj0gMTsKKyAgICAgICAgKytzbGlj
ZV9ncm91cF9pZF9iaXRzOworICAgICAgfQorICAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8
PSBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxOyBpKyspIHsKKyAgICAgICAgLy8gc2xpY2Vf
Z3JvdXBfaWRbaV06IHUodikKKyAgICAgICAgLy8gUmVwcmVzZW50ZWQgYnkgY2VpbChsb2cyKG51
bV9zbGljZV9ncm91cHNfbWludXMxICsgMSkpIGJpdHMuCisgICAgICAgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKAorICAgICAgICAgICAgYml0X2J1ZmZlci0+UmVhZEJpdHMoJmJpdHNfdG1wLCBzbGlj
ZV9ncm91cF9pZF9iaXRzKSk7CisgICAgICB9CisgICAgfQorICB9CisgIC8vIG51bV9yZWZfaWR4
X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogdWUodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
Yml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAv
LyBudW1fcmVmX2lkeF9sMV9kZWZhdWx0X2FjdGl2ZV9taW51czE6IHVlKHYpCisgIFJFVFVSTl9F
TVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2ln
bm9yZWQpKTsKKyAgLy8gd2VpZ2h0ZWRfcHJlZF9mbGFnOiB1KDEpCisgIHVpbnQzMl90IHdlaWdo
dGVkX3ByZWRfZmxhZzsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEJp
dHMoJndlaWdodGVkX3ByZWRfZmxhZywgMSkpOworICBwcHMud2VpZ2h0ZWRfcHJlZF9mbGFnID0g
d2VpZ2h0ZWRfcHJlZF9mbGFnICE9IDA7CisgIC8vIHdlaWdodGVkX2JpcHJlZF9pZGM6IHUoMikK
KyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEJpdHMoJnBwcy53ZWlnaHRl
ZF9iaXByZWRfaWRjLCAyKSk7CisKKyAgLy8gcGljX2luaXRfcXBfbWludXMyNjogc2UodikKKyAg
UkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVmZmVyLT5SZWFkU2lnbmVkRXhwb25l
bnRpYWxHb2xvbWIoJnBwcy5waWNfaW5pdF9xcF9taW51czI2KSk7CisgIC8vIFNhbml0eS1jaGVj
ayBwYXJzZWQgdmFsdWUKKyAgaWYgKHBwcy5waWNfaW5pdF9xcF9taW51czI2ID4ga01heFBpY0lu
aXRRcERlbHRhVmFsdWUgfHwKKyAgICAgIHBwcy5waWNfaW5pdF9xcF9taW51czI2IDwga01pblBp
Y0luaXRRcERlbHRhVmFsdWUpIHsKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChmYWxzZSk7Cisg
IH0KKyAgLy8gcGljX2luaXRfcXNfbWludXMyNjogc2UodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZB
SUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOwor
ICAvLyBjaHJvbWFfcXBfaW5kZXhfb2Zmc2V0OiBzZSh2KQorICBSRVRVUk5fRU1QVFlfT05fRkFJ
TChiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7Cisg
IC8vIGRlYmxvY2tpbmdfZmlsdGVyX2NvbnRyb2xfcHJlc2VudF9mbGFnOiB1KDEpCisgIC8vIGNv
bnN0cmFpbmVkX2ludHJhX3ByZWRfZmxhZzogdSgxKQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChi
aXRfYnVmZmVyLT5SZWFkQml0cygmYml0c190bXAsIDIpKTsKKyAgLy8gcmVkdW5kYW50X3BpY19j
bnRfcHJlc2VudF9mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0
X2J1ZmZlci0+UmVhZEJpdHMoJnBwcy5yZWR1bmRhbnRfcGljX2NudF9wcmVzZW50X2ZsYWcsIDEp
KTsKKworICByZXR1cm4gcHBzOworfQorCitib29sIEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRz
SW50ZXJuYWwocnRjOjpCaXRCdWZmZXIqIGJpdF9idWZmZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHBwc19pZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogc3BzX2lkKSB7CisgIC8vIHBpY19wYXJh
bWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBpZiAoIWJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdv
bG9tYihwcHNfaWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgLy8gc2VxX3BhcmFtZXRlcl9zZXRf
aWQ6IHVlKHYpCisgIGlmICghYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKHNwc19p
ZCkpCisgICAgcmV0dXJuIGZhbHNlOworICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNw
YWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bw
c19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmE0NzE4ODNkY2FlYWY1YTUzNGFjMzEzOWEzNjkwN2Yz
MDRmZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmgKQEAgLTAsMCAr
MSw2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1
dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0
cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2Fu
IGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJv
amVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpZm5kZWYgQ09NTU9OX1ZJREVPX0gy
NjVfUFBTX1BBUlNFUl9IXworI2RlZmluZSBDT01NT05fVklERU9fSDI2NV9QUFNfUEFSU0VSX0hf
CisKKyNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisKK25hbWVzcGFjZSBydGMgewor
Y2xhc3MgQml0QnVmZmVyOworfQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworLy8gQSBjbGFzcyBm
b3IgcGFyc2luZyBvdXQgcGljdHVyZSBwYXJhbWV0ZXIgc2V0IChQUFMpIGRhdGEgZnJvbSBhIEgy
NjUgTkFMVS4KK2NsYXNzIEgyNjVQcHNQYXJzZXIgeworIHB1YmxpYzoKKyAgLy8gVGhlIHBhcnNl
ZCBzdGF0ZSBvZiB0aGUgUFBTLiBPbmx5IHNvbWUgc2VsZWN0IHZhbHVlcyBhcmUgc3RvcmVkLgor
ICAvLyBBZGQgbW9yZSBhcyB0aGV5IGFyZSBhY3R1YWxseSBuZWVkZWQuCisgIHN0cnVjdCBQcHNT
dGF0ZSB7CisgICAgUHBzU3RhdGUoKSA9IGRlZmF1bHQ7CisKKyAgICBib29sIGJvdHRvbV9maWVs
ZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnID0gZmFsc2U7CisgICAgYm9vbCB3ZWln
aHRlZF9wcmVkX2ZsYWcgPSBmYWxzZTsKKyAgICBib29sIGVudHJvcHlfY29kaW5nX21vZGVfZmxh
ZyA9IGZhbHNlOworICAgIHVpbnQzMl90IHdlaWdodGVkX2JpcHJlZF9pZGMgPSBmYWxzZTsKKyAg
ICB1aW50MzJfdCByZWR1bmRhbnRfcGljX2NudF9wcmVzZW50X2ZsYWcgPSAwOworICAgIGludCBw
aWNfaW5pdF9xcF9taW51czI2ID0gMDsKKyAgICB1aW50MzJfdCBpZCA9IDA7CisgICAgdWludDMy
X3Qgc3BzX2lkID0gMDsKKyAgfTsKKworICAvLyBVbnBhY2sgUkJTUCBhbmQgcGFyc2UgUFBTIHN0
YXRlIGZyb20gdGhlIHN1cHBsaWVkIGJ1ZmZlci4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFBw
c1N0YXRlPiBQYXJzZVBwcyhjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKwor
ICBzdGF0aWMgYm9vbCBQYXJzZVBwc0lkcyhjb25zdCB1aW50OF90KiBkYXRhLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCog
c3BzX2lkKTsKKworICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8dWludDMyX3Q+IFBhcnNlUHBzSWRG
cm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAgICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAg
ICAgIHNpemVfdCBsZW5ndGgsCisgICAgICB1aW50OF90IG5hbHVfdHlwZSk7CisKKyBwcm90ZWN0
ZWQ6CisgIC8vIFBhcnNlIHRoZSBQUFMgc3RhdGUsIGZvciBhIGJpdCBidWZmZXIgd2hlcmUgUkJT
UCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisgIC8vIHBlcmZvcm1lZC4KKyAgc3RhdGljIGFi
c2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZUludGVybmFsKHJ0Yzo6Qml0QnVmZmVyKiBiaXRf
YnVmZmVyKTsKKyAgc3RhdGljIGJvb2wgUGFyc2VQcHNJZHNJbnRlcm5hbChydGM6OkJpdEJ1ZmZl
ciogYml0X2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf
dCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBz
cHNfaWQpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworCisjZW5kaWYgIC8vIENPTU1P
Tl9WSURFT19IMjY1X1BQU19QQVJTRVJfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNl
ci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92
aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDMzZjRiMGVlOTIwYzIz
M2YxYjYxODE1MGQyZDNmODhmZWQwZWMxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9zcHNf
cGFyc2VyLmNjCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBU
aGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAg
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5z
ZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qg
b2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3Bl
cnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAg
QWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhl
IEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2lu
Y2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlICJjb21tb25fdmlk
ZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVf
c3BzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9idWZmZXIuaCIKKyNpbmNsdWRl
ICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25hbWVzcGFjZSB7Cit0eXBlZGVmIGFic2w6Om9wdGlv
bmFsPHdlYnJ0Yzo6SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IE9wdGlvbmFsU3BzOworCisjZGVm
aW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAg
ICAgICAgXAorICAgIHJldHVybiBPcHRpb25hbFNwcygpOyAgICAgICBcCisgIH0KK30gIC8vIG5h
bWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworSDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU6
OlNwc1N0YXRlKCkgPSBkZWZhdWx0OworCisvLyBHZW5lcmFsIG5vdGU6IHRoaXMgaXMgYmFzZWQg
b2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2YgdGhlIEguMjY1IHN0YW5kYXJkLgorLy8gWW91IGNh
biBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMt
SC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFNQUyBzdGF0ZSBmcm9tIHRoZSBzdXBw
bGllZCBidWZmZXIuCithYnNsOjpvcHRpb25hbDxIMjY1U3BzUGFyc2VyOjpTcHNTdGF0ZT4gSDI2
NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICBzaXpl
X3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgy
NjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVy
KHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1
cm4gUGFyc2VTcHNVcFRvVnVpKCZiaXRfYnVmZmVyKTsKK30KKworYWJzbDo6b3B0aW9uYWw8SDI2
NVNwc1BhcnNlcjo6U3BzU3RhdGU+IEgyNjVTcHNQYXJzZXI6OlBhcnNlU3BzVXBUb1Z1aSgKKyAg
ICBydGM6OkJpdEJ1ZmZlciogYnVmZmVyKSB7CisgIC8vIE5vdywgd2UgbmVlZCB0byB1c2UgYSBi
aXQgYnVmZmVyIHRvIHBhcnNlIHRocm91Z2ggdGhlIGFjdHVhbCBIRVZDIFNQUworICAvLyBmb3Jt
YXQuIFNlZSBTZWN0aW9uIDcuMy4yLjIuMSAoIkdlbmVyYWwgc2VxdWVuY2UgcGFyYW1ldGVyIHNl
dCBkYXRhCisgIC8vIHN5bnRheCIpIG9mIHRoZSBILjI2NSBzdGFuZGFyZCBmb3IgYSBjb21wbGV0
ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2luY2Ugd2Ugb25seSBjYXJlIGFib3V0IHJlc29sdXRpb24s
IHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkgb2YgZmllbGRzLCBidXQKKyAgLy8gd2Ugc3RpbGwgaGF2
ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJvdWdoIGEgbG90IG9mIHRoZSBkYXRhLCBzaW5jZSBtYW55
IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2ZSB2YXJpYWJsZSBzaXplLgorICAvLyBXZSdyZSBwYXJ0
aWN1bGFybHkgaW50ZXJlc3RlZCBpbjoKKyAgLy8gY2hyb21hX2Zvcm1hdF9pZGMgLT4gYWZmZWN0
cyBjcm9wIHVuaXRzCisgIC8vIHBpY197d2lkdGgsaGVpZ2h0fV8qIC0+IHJlc29sdXRpb24gb2Yg
dGhlIGZyYW1lIGluIG1hY3JvYmxvY2tzICgxNngxNikuCisgIC8vIGZyYW1lX2Nyb3BfKl9vZmZz
ZXQgLT4gY3JvcCBpbmZvcm1hdGlvbgorCisgIFNwc1N0YXRlIHNwczsKKworICAvLyBUaGUgZ29s
b21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNvbnN1bWUuCisgIHVpbnQzMl90
IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzIG9w
dGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9ucworICAvLyBhYm91dCB0aGUg
Q2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2UgdHJlYXQgY3JvcCBjb29yZGlu
YXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgPSAwOworCisgIC8v
IGNocm9tYV9mb3JtYXRfaWRjIHdpbGwgYmUgQ2hyb21hQXJyYXlUeXBlIGlmIHNlcGFyYXRlX2Nv
bG91cl9wbGFuZV9mbGFnIGlzCisgIC8vIDAuIEl0IGRlZmF1bHRzIHRvIDEsIHdoZW4gbm90IHNw
ZWNpZmllZC4KKyAgdWludDMyX3QgY2hyb21hX2Zvcm1hdF9pZGMgPSAxOworCisgIC8vIHNwc192
aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIHVpbnQzMl90IHNwc192aWRlb19wYXJhbWV0
ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygm
c3BzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQpKTsKKyAgLy8gc3BzX21heF9zdWJfbGF5ZXJz
X21pbnVzMTogdSgzKQorICB1aW50MzJfdCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxID0gMDsK
KyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmc3BzX21heF9zdWJfbGF5
ZXJzX21pbnVzMSwgMykpOworICAvLyBzcHNfdGVtcG9yYWxfaWRfbmVzdGluZ19mbGFnOiB1KDEp
CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJpdHMoMSkpOworICAvLyBw
cm9maWxlX3RpZXJfbGV2ZWwoMSwgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSkuIFdlIGFyZSBh
Y3V0YWxseSBub3QKKyAgLy8gdXNpbmcgdGhlbSwgc28gcmVhZC9za2lwIG92ZXIgaXQuCisgIC8v
IGdlbmVyYWxfcHJvZmlsZV9zcGFjZStnZW5lcmFsX3RpZXJfZmxhZytnZW5lcmFsX3ByZmlsZV9p
ZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkp
OworICAvLyBnZW5lcmFsX3Byb2ZpbGVfY29tcGF0YWJpbGl0aXlfZmxhZ1szMl0KKyAgUkVUVVJO
X0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoNCkpOworICAvLyBnZW5lcmFsX3By
b2dyZXNzaXZlX3NvdXJjZV9mbGFnICsgaW50ZXJsYWNlZF9zb3VyY2VfZmxhZysKKyAgLy8gbm9u
LXBhY2tlZF9jb25zdHJhaW50IGZsYWcgKyBmcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzogdSg0
KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQpKTsKKyAgLy8g
Z2VuZXJhbF9wcm9maWxlX2lkYyBkZWNpZGVkIGZsYWdzIG9yIHJlc2VydmVkLiAgdSg0MykKKyAg
UkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0cyg0MykpOworICAvLyBnZW5l
cmFsX2luYmxkX2ZsYWcgb3IgcmVzZXJ2ZWQgMDogdSgxKQorICBSRVRVUk5fRU1QVFlfT05fRkFJ
TChidWZmZXItPkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkK
KyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBp
ZiBtYXhfc3ViX2xheWVyc19taW51czEgPj0xLCByZWFkIHRoZSBzdWJsYXllciBwcm9maWxlIGlu
Zm9ybWF0aW9uCisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJfbGF5ZXJfcHJvZmlsZV9wcmVz
ZW50X2ZsYWdzOworICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gc3ViX2xheWVyX2xldmVsX3ByZXNl
bnRfZmxhZ3M7CisgIHVpbnQzMl90IHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQgPSAwOworICB1
aW50MzJfdCBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCA9IDA7CisgIGZvciAodWludDMyX3QgaSA9
IDA7IGkgPCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBpKyspIHsKKyAgICAvLyBzdWJsYXll
cl9wcm9maWxlX3ByZXNlbnRfZmxhZyBhbmQgc3VibGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAg
dSgyKQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEJpdHMoJnN1Yl9sYXll
cl9wcm9maWxlX3ByZXNlbnQsIDEpKTsKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXIt
PlJlYWRCaXRzKCZzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCwgMSkpOworICAgIHN1Yl9sYXllcl9w
cm9maWxlX3ByZXNlbnRfZmxhZ3MucHVzaF9iYWNrKHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQp
OworICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJf
bGV2ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNwc19tYXhfc3ViX2xheWVyc19taW51czEgPiAw
KSB7CisgICAgZm9yICh1aW50MzJfdCBqID0gc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTsgaiA8
IDg7IGorKykgeworICAgICAgLy8gcmVzZXJ2ZWQgMiBiaXRzOiB1KDIpCisgICAgICBSRVRVUk5f
RU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDIpKTsKKyAgICB9CisgIH0KKyAgZm9y
ICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGsrKykgewor
ICAgIGlmIChzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdzW2tdKSB7ICAvLworICAgICAg
Ly8gc3ViX2xheWVyIHByb2ZpbGVfc3BhY2UvdGllcl9mbGFnL3Byb2ZpbGVfaWRjLiBpZ25vcmVk
LiB1KDgpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRlcygx
KSk7CisgICAgICAvLyBwcm9maWxlX2NvbXBhdGFiaWxpdHlfZmxhZzogIHUoMzIpCisgICAgICBS
RVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRlcyg0KSk7CisgICAgICAvLyBz
dWJfbGF5ZXIgcHJvZ3Jlc3NpdmVfc291cmNlX2ZsYWcvaW50ZXJsYWNlZF9zb3VyY2VfZmxhZy8K
KyAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2ZyYW1lX29ubHlfY29uc3RyYWlu
dF9mbGFnOiB1KDQpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVC
aXRzKDQpKTsKKyAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFyZSBwcm9maWxlX2lkYyBzcGVj
aWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4KKyAgICAgIC8vIHUoNDMpCisgICAgICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQzKSk7CisgICAgICAvLyAxLWJp
dCBwcm9maWxlX2lkYyBzcGVjaWZpYyBpbmJsZCBmbGFnLiAgV2Ugc2ltcGx5IHJlYWQvc2tpcCBp
dC4gdSgxKQorICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0cygx
KSk7CisgICAgfQorICAgIGlmIChzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnc1trXSkgewor
ICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAgICAgUkVUVVJOX0VNUFRZX09O
X0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkpOworICAgIH0KKyAgfQorICAvLyBzcHNfc2Vx
X3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+
UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAvLyBjaHJvbWVfZm9y
bWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkRXhwb25l
bnRpYWxHb2xvbWIoJmNocm9tYV9mb3JtYXRfaWRjKSk7CisgIGlmIChjaHJvbWFfZm9ybWF0X2lk
YyA9PSAzKSB7CisgICAgLy8gc2VwZXJhdGVfY29sb3VyX3BsYW5lX2ZsYWc6IHUoMSkKKyAgICBS
RVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZzZXBhcmF0ZV9jb2xvdXJfcGxh
bmVfZmxhZywgMSkpOworICB9CisgIHVpbnQzMl90IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMg
PSAwOworICB1aW50MzJfdCBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcyA9IDA7CisgIC8vIHBp
Y193aWR0aF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAor
ICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBpY193aWR0aF9pbl9sdW1hX3Nh
bXBsZXMpKTsKKyAgLy8gcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBp
Y19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzKSk7CisgIC8vIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFn
OiB1KDEpCisgIHVpbnQzMl90IGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnID0gMDsKKyAgUkVUVVJO
X0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcs
IDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNldCA9IDA7CisgIHVpbnQzMl90
IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3RvcF9vZmZz
ZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zmc2V0ID0gMDsKKyAgaWYgKGNv
bmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAgLy8gY29uZl93aW5fbGVmdF9vZmZzZXQ6IHVl
KHYpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xv
bWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7CisgICAgLy8gY29uZl93aW5fcmlnaHRfb2Zmc2V0
OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFs
R29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAvLyBjb25mX3dpbl90b3Bfb2Zm
c2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50
aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAgLy8gY29uZl93aW5fYm90dG9t
X29mZnNldDogdWUodikKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgYnVmZmVy
LT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2JvdHRvbV9vZmZzZXQpKTsKKyAgfQor
CisgIC8vIEZhciBlbm91Z2ghIFdlIGRvbid0IHVzZSB0aGUgcmVzdCBvZiB0aGUgU1BTLgorCisg
IHNwcy52cHNfaWQgPSBzcHNfdmlkZW9fcGFyYW1ldGVyX3NldF9pZDsKKworICAvLyBTdGFydCB3
aXRoIHRoZSByZXNvbHV0aW9uIGRldGVybWluZWQgYnkgdGhlIHBpY193aWR0aC9waWNfaGVpZ2h0
IGZpZWxkcy4KKyAgc3BzLndpZHRoID0gcGljX3dpZHRoX2luX2x1bWFfc2FtcGxlczsKKyAgc3Bz
LmhlaWdodCA9IHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOworCisgIGlmIChjb25mb3JtYW5j
ZV93aW5kb3dfZmxhZykgeworICAgIGludCBzdWJfd2lkdGhfYyA9ICgoMSA9PSBjaHJvbWFfZm9y
bWF0X2lkYykgfHwgKDIgPT0gY2hyb21hX2Zvcm1hdF9pZGMpKSAmJgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKDAgPT0gc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgID8gMgorICAgICAgICAgICAgICAgICAgICAgICAgICA6IDE7Cisg
ICAgaW50IHN1Yl9oZWlnaHRfYyA9CisgICAgICAgICgxID09IGNocm9tYV9mb3JtYXRfaWRjKSAm
JiAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZykgPyAyIDogMTsKKyAgICAvLyB0aGUg
b2Zmc2V0IGluY2x1ZGVzIHRoZSBwaXhlbCB3aXRoaW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBk
b24ndCBuZWVkIHRvCisgICAgLy8gKzEgYXMgcGVyIHNwZWMKKyAgICBzcHMud2lkdGggLT0gc3Vi
X3dpZHRoX2MgKiAoY29uZl93aW5fcmlnaHRfb2Zmc2V0ICsgY29uZl93aW5fbGVmdF9vZmZzZXQp
OworICAgIHNwcy5oZWlnaHQgLT0gc3ViX2hlaWdodF9jICogKGNvbmZfd2luX3RvcF9vZmZzZXQg
KyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0KTsKKyAgfQorCisgIHJldHVybiBPcHRpb25hbFNwcyhz
cHMpOworfQorCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nw
c19wYXJzZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nv
bW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwZjg2YjY5ODMy
NjMxYmU3MjU2OWI5YWUyMGJjMmM2MGI4MDkyNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1
X3Nwc19wYXJzZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAx
OCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisg
KiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGlj
ZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJv
b3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHBy
b3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRT
LiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4g
dGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKwor
I2lmbmRlZiBDT01NT05fVklERU9fSDI2NV9IMjY1X1NQU19QQVJTRVJfSF8KKyNkZWZpbmUgQ09N
TU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VSX0hfCisKKyNpbmNsdWRlICJhYnNsL3R5cGVz
L29wdGlvbmFsLmgiCisKK25hbWVzcGFjZSBydGMgeworY2xhc3MgQml0QnVmZmVyOworfQorCitu
YW1lc3BhY2Ugd2VicnRjIHsKKworLy8gQSBjbGFzcyBmb3IgcGFyc2luZyBvdXQgc2VxdWVuY2Ug
cGFyYW1ldGVyIHNldCAoU1BTKSBkYXRhIGZyb20gYW4gSDI2NSBOQUxVLgorY2xhc3MgSDI2NVNw
c1BhcnNlciB7CisgcHVibGljOgorICAvLyBUaGUgcGFyc2VkIHN0YXRlIG9mIHRoZSBTUFMuIE9u
bHkgc29tZSBzZWxlY3QgdmFsdWVzIGFyZSBzdG9yZWQuCisgIC8vIEFkZCBtb3JlIGFzIHRoZXkg
YXJlIGFjdHVhbGx5IG5lZWRlZC4KKyAgc3RydWN0IFNwc1N0YXRlIHsKKyAgICBTcHNTdGF0ZSgp
OworCisgICAgdWludDMyX3Qgd2lkdGggPSAwOworICAgIHVpbnQzMl90IGhlaWdodCA9IDA7Cisg
ICAgdWludDMyX3QgZGVsdGFfcGljX29yZGVyX2Fsd2F5c196ZXJvX2ZsYWcgPSAwOworICAgIHVp
bnQzMl90IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnID0gMDsKKyAgICB1aW50MzJfdCBmcmFt
ZV9tYnNfb25seV9mbGFnID0gMDsKKyAgICB1aW50MzJfdCBsb2cyX21heF9mcmFtZV9udW1fbWlu
dXM0ID0gMDsKKyAgICB1aW50MzJfdCBsb2cyX21heF9waWNfb3JkZXJfY250X2xzYl9taW51czQg
PSAwOworICAgIHVpbnQzMl90IHBpY19vcmRlcl9jbnRfdHlwZSA9IDA7CisgICAgdWludDMyX3Qg
bWF4X251bV9yZWZfZnJhbWVzID0gMDsKKyAgICB1aW50MzJfdCB2dWlfcGFyYW1zX3ByZXNlbnQg
PSAwOworICAgIHVpbnQzMl90IGlkID0gMDsKKyAgICB1aW50MzJfdCB2cHNfaWQgPSAwOworICB9
OworCisgIC8vIFVucGFjayBSQlNQIGFuZCBwYXJzZSBTUFMgc3RhdGUgZnJvbSB0aGUgc3VwcGxp
ZWQgYnVmZmVyLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3BzU3RhdGU+IFBhcnNlU3BzKGNv
bnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworCisgcHJvdGVjdGVkOgorICAvLyBQ
YXJzZSB0aGUgU1BTIHN0YXRlLCB1cCB0aWxsIHRoZSBWVUkgcGFydCwgZm9yIGEgYml0IGJ1ZmZl
ciB3aGVyZSBSQlNQCisgIC8vIGRlY29kaW5nIGhhcyBhbHJlYWR5IGJlZW4gcGVyZm9ybWVkLgor
ICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3BzU3RhdGU+IFBhcnNlU3BzVXBUb1Z1aShydGM6OkJp
dEJ1ZmZlciogYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKyNlbmRpZiAg
Ly8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VSX0hfCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9o
MjY1X3Zwc19wYXJzZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuY2MKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM5
MWFlNTFkZjBmOTA4OTAxNmI0OTg4NGMxNWYyYzE0MThkNTRlNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9o
MjY1L2gyNjVfdnBzX3BhcnNlci5jYwpAQCAtMCwwICsxLDYyIEBACisvKgorICogIENvcHlyaWdo
dCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt
c3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUg
aW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxs
ZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmls
ZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUg
Zm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUu
CisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRl
ICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRl
by9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9idWZmZXIu
aCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25hbWVzcGFjZSB7Cit0eXBlZGVm
IGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU+IE9wdGlvbmFs
VnBzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsg
ICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBPcHRpb25hbFZwcygpOyAgICAgICBcCisg
IH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworSDI2NVZwc1BhcnNl
cjo6VnBzU3RhdGU6OlZwc1N0YXRlKCkgPSBkZWZhdWx0OworCisvLyBHZW5lcmFsIG5vdGU6IHRo
aXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2YgdGhlIEguMjY1IHN0YW5kYXJk
LgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8vIGh0dHA6Ly93d3cuaXR1Lmlu
dC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFNQUyBzdGF0ZSBm
cm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNsOjpvcHRpb25hbDxIMjY1VnBzUGFyc2VyOjpW
cHNTdGF0ZT4gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAgY29uc3QgdWludDhfdCogZGF0
YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2Vk
X2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZl
ciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXpl
KCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5hbCgmYml0X2J1ZmZlcik7Cit9CisKK2Fic2w6Om9w
dGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiBIMjY1VnBzUGFyc2VyOjpQYXJzZUludGVy
bmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBidWZmZXIpIHsKKyAgLy8gTm93LCB3ZSBuZWVkIHRv
IHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhyb3VnaCB0aGUgYWN0dWFsIEhFVkMgVlBTCisg
IC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIuMSAoIlZpZGVvIHBhcmFtZXRlciBzZXQgUkJT
UCBzeW50YXgiKSBvZiB0aGUKKyAgLy8gSC4yNjUgc3RhbmRhcmQgZm9yIGEgY29tcGxldGUgZGVz
Y3JpcHRpb24uCisKKyAgVnBzU3RhdGUgdnBzOworCisgIC8vIHZwc192aWRlb19wYXJhbWV0ZXJf
c2V0X2lkOiB1KDQpCisgIHVpbnQzMl90IHZwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkID0gMDsK
KyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmdnBzX3ZpZGVvX3BhcmFt
ZXRlcl9zZXRfaWQsIDQpKTsKKworICB2cHMuaWQgPSB2cHNfdmlkZW9fcGFyYW1ldGVyX3NldF9p
ZDsKKyAgdnBzLmlkID0gMDsKKyAgcmV0dXJuIE9wdGlvbmFsVnBzKHZwcyk7Cit9CisKK30gIC8v
IG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV92cHNfcGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThhMjc3NWY0M2RmMTdkMThlMDlkYzQwMDdl
NjIzYTYzMjA4NWE3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oCkBA
IC0wLDAgKzEsNDMgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJv
amVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBj
YW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNl
CisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdy
YW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0
aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxl
IGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIENPTU1PTl9W
SURFT19IMjY1X0gyNjVfVlBTX1BBUlNFUl9IXworI2RlZmluZSBDT01NT05fVklERU9fSDI2NV9I
MjY1X1ZQU19QQVJTRVJfSF8KKworI2luY2x1ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKKwor
bmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBCaXRCdWZmZXI7Cit9CisKK25hbWVzcGFjZSB3ZWJydGMg
eworCisvLyBBIGNsYXNzIGZvciBwYXJzaW5nIG91dCBzZXF1ZW5jZSBwYXJhbWV0ZXIgc2V0IChW
UFMpIGRhdGEgZnJvbSBhbiBIMjY1IE5BTFUuCitjbGFzcyBIMjY1VnBzUGFyc2VyIHsKKyBwdWJs
aWM6CisgIC8vIFRoZSBwYXJzZWQgc3RhdGUgb2YgdGhlIFZQUy4gT25seSBzb21lIHNlbGVjdCB2
YWx1ZXMgYXJlIHN0b3JlZC4KKyAgLy8gQWRkIG1vcmUgYXMgdGhleSBhcmUgYWN0dWFsbHkgbmVl
ZGVkLgorICBzdHJ1Y3QgVnBzU3RhdGUgeworICAgIFZwc1N0YXRlKCk7CisKKyAgICB1aW50MzJf
dCBpZCA9IDA7CisgIH07CisKKyAgLy8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFZQUyBzdGF0ZSBm
cm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCisgIHN0YXRpYyBhYnNsOjpvcHRpb25hbDxWcHNTdGF0
ZT4gUGFyc2VWcHMoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGxlbmd0aCk7CisKKyBwcm90
ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBWUFMgc3RhdGUsIGZvciBhIGJpdCBidWZmZXIgd2hlcmUg
UkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisgIC8vIHBlcmZvcm1lZC4KKyAgc3RhdGlj
IGFic2w6Om9wdGlvbmFsPFZwc1N0YXRlPiBQYXJzZUludGVybmFsKHJ0Yzo6Qml0QnVmZmVyKiBi
aXRfYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKyNlbmRpZiAgLy8gQ09N
TU9OX1ZJREVPX0gyNjVfSDI2NV9WUFNfUEFSU0VSX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50
cy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jh
c2UvbWVkaWFfY29uc3RhbnRzLmNjCmluZGV4IDUxNDRhNmVhNjU1NWRmYmI2NmM0NjJhZTIxNzdk
ZmNlY2NjOTE4YmIuLjdiNzBmZjllNDg4NGE1MDM1YjllZTM4OTRjNTUwMDNjYWJmMWJhNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlh
L2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCkBAIC0xMDcsNiAr
MTA3LDkgQEAgY29uc3QgY2hhciBrVnA4Q29kZWNOYW1lW10gPSAiVlA4IjsKIGNvbnN0IGNoYXIg
a1ZwOUNvZGVjTmFtZVtdID0gIlZQOSI7CiBjb25zdCBjaGFyIGtBdjFDb2RlY05hbWVbXSA9ICJB
VjFYIjsKIGNvbnN0IGNoYXIga0gyNjRDb2RlY05hbWVbXSA9ICJIMjY0IjsKKyNpZm5kZWYgRElT
QUJMRV9IMjY1Citjb25zdCBjaGFyIGtIMjY1Q29kZWNOYW1lW10gPSAiSDI2NSI7CisjZW5kaWYK
IAogLy8gUkZDIDYxODQgUlRQIFBheWxvYWQgRm9ybWF0IGZvciBILjI2NCB2aWRlbwogY29uc3Qg
Y2hhciBrSDI2NEZtdHBQcm9maWxlTGV2ZWxJZFtdID0gInByb2ZpbGUtbGV2ZWwtaWQiOwpAQCAt
MTE0LDYgKzExNywxMyBAQCBjb25zdCBjaGFyIGtIMjY0Rm10cExldmVsQXN5bW1ldHJ5QWxsb3dl
ZFtdID0gImxldmVsLWFzeW1tZXRyeS1hbGxvd2VkIjsKIGNvbnN0IGNoYXIga0gyNjRGbXRwUGFj
a2V0aXphdGlvbk1vZGVbXSA9ICJwYWNrZXRpemF0aW9uLW1vZGUiOwogY29uc3QgY2hhciBrSDI2
NEZtdHBTcHJvcFBhcmFtZXRlclNldHNbXSA9ICJzcHJvcC1wYXJhbWV0ZXItc2V0cyI7CiBjb25z
dCBjaGFyIGtIMjY0UHJvZmlsZUxldmVsQ29uc3RyYWluZWRCYXNlbGluZVtdID0gIjQyZTAxZiI7
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorLy8gUkZDIDc3OTggUlRQIFBheWxvYWQgRm9ybWF0IGZv
ciBILjI2NSB2aWRlbworY29uc3QgY2hhciBrSDI2NUZtdHBQcm9maWxlU3BhY2VbXSA9ICJwcm9m
aWxlLXNwYWNlIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwUHJvZmlsZUlkW10gPSAicHJvZmlsZS1p
ZCI7Citjb25zdCBjaGFyIGtIMjY1Rm10cFRpZXJGbGFnW10gPSAidGllci1mbGFnIjsKK2NvbnN0
IGNoYXIga0gyNjVGbXRwTGV2ZWxJZFtdID0gImxldmVsLWlkIjsKKyNlbmRpZgogCiBjb25zdCBp
bnQga0RlZmF1bHRWaWRlb01heEZyYW1lcmF0ZSA9IDYwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0
YW50cy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbWVkaWEv
YmFzZS9tZWRpYV9jb25zdGFudHMuaAppbmRleCBiOWI4YTMzNmY3ZjBjYWYyZmYxOTQ2OWZlYTc1
Y2I3OTI5NDcwYTU4Li5hMTgxOTNlMDVkMjQ4YzEyZjZhNDU4MmI1NmU0YjIxODE5MWE5MzNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRp
YS9iYXNlL21lZGlhX2NvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmgKQEAgLTEzNiw2ICsx
MzYsOSBAQCBSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtWcDhDb2RlY05hbWVbXTsKIFJU
Q19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFtZVtdOwogUlRDX0VYUE9SVCBl
eHRlcm4gY29uc3QgY2hhciBrQXYxQ29kZWNOYW1lW107CiBSVENfRVhQT1JUIGV4dGVybiBjb25z
dCBjaGFyIGtIMjY0Q29kZWNOYW1lW107CisjaWZuZGVmIERJU0FCTEVfSDI2NQorUlRDX0VYUE9S
VCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUNvZGVjTmFtZVtdOworI2VuZGlmCiAKIC8vIFJGQyA2
MTg0IFJUUCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4yNjQgdmlkZW8KIFJUQ19FWFBPUlQgZXh0ZXJu
IGNvbnN0IGNoYXIga0gyNjRGbXRwUHJvZmlsZUxldmVsSWRbXTsKQEAgLTE0NCw2ICsxNDcsMTQg
QEAgUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NEZtdHBQYWNrZXRpemF0aW9uTW9k
ZVtdOwogZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRGbXRwU3Byb3BQYXJhbWV0ZXJTZXRzW107CiBl
eHRlcm4gY29uc3QgY2hhciBrSDI2NFByb2ZpbGVMZXZlbENvbnN0cmFpbmVkQmFzZWxpbmVbXTsK
IAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKy8vIFJGQyA3Nzk4IFJUUCBQYXlsb2FkIEZvcm1hdCBm
b3IgSC4yNjUgdmlkZW8KK1JUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjVGbXRwUHJv
ZmlsZVNwYWNlW107CitSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY1Rm10cFByb2Zp
bGVJZFtdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUZtdHBUaWVyRmxhZ1td
OworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUZtdHBMZXZlbElkW107CisjZW5k
aWYKKwogZXh0ZXJuIGNvbnN0IGludCBrRGVmYXVsdFZpZGVvTWF4RnJhbWVyYXRlOwogCiBleHRl
cm4gY29uc3Qgc2l6ZV90IGtDb25mZXJlbmNlTWF4TnVtU3BhdGlhbExheWVyczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRw
X3J0Y3AvQlVJTEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3J0cF9ydGNwL0JVSUxELmduCmluZGV4IDI4MjZkMGYwOWIxNDRlNDVhMGI3ZDQ3
MGQwYmE5ZDU3YzQzMzVjZTEuLjZmOTAyZmY3YjBjNWYyYjVhMGFiOGJhYmI2NDk2ZTVjMzllOGMw
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9CVUlMRC5nbgpAQCAtMjM2LDYgKzIz
NiwxNyBAQCBydGNfbGlicmFyeSgicnRwX3J0Y3AiKSB7CiAgICAgZGVmaW5lcyA9IFsgIkJXRV9U
RVNUX0xPR0dJTkdfQ09NUElMRV9USU1FX0VOQUJMRT0wIiBdCiAgIH0KIAorICBpZiAocnRjX3Vz
ZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisgICAgICAic291cmNlL3J0cF9mb3JtYXRfaDI2
NS5jYyIsCisgICAgICAic291cmNlL3J0cF9mb3JtYXRfaDI2NS5oIiwKKyAgICBdCisgIH0KKwor
ICBpZiAoIXJ0Y191c2VfaDI2NSkgeworICAgIGRlZmluZXMgKz0gWyJESVNBQkxFX0gyNjUiXQor
ICB9CisKICAgZGVwcyA9IFsKICAgICAiOnJ0cF9ydGNwX2Zvcm1hdCIsCiAgICAgIjpydHBfdmlk
ZW9faGVhZGVyIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2NyZWF0ZV92aWRlb19ydHBfZGVwYWNr
ZXRpemVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKaW5k
ZXggNTllMTM5OWM5OWYyMmU5ZTY4ZjVjNjY3NzFkZWVlNzUxNGM3MGM1ZC4uOGJiYjNhNGQ5Nzgw
MmE4ZDAwZDY0Nzg4YjMwMTAxMzZlYTlmMmI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRl
X3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0
cF9kZXBhY2tldGl6ZXIuY2MKQEAgLTEzLDYgKzEzLDkgQEAKICNpbmNsdWRlIDxtZW1vcnk+CiAK
ICNpbmNsdWRlICJhcGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5oIgorI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3ZpZGVvX3J0cF9k
ZXBhY2tldGl6ZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19y
dHBfZGVwYWNrZXRpemVyX2F2MS5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNl
L3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfZ2VuZXJpYy5oIgpAQCAtMjcsNiArMzAsMTAgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFZpZGVvUnRwRGVwYWNrZXRpemVyPiBDcmVhdGVWaWRlb1J0cERlcGFja2V0
aXplcigKICAgc3dpdGNoIChjb2RlYykgewogICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY0PigpOwor
I2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NToKKyAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NT4oKTsKKyNlbmRp
ZgogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6CiAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxWaWRlb1J0cERlcGFja2V0aXplclZwOD4oKTsKICAgICBjYXNlIGtWaWRlb0NvZGVjVlA5Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9z
cHNfcGFyc2VyLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMzQ2MzBhYTg3YmFiMDkwYTE0ZDI3YjQ4MzM2Mzc5
MWY0ODExZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuY2MK
QEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBJbnRlbCBMaWNlbnNlCisgKiBTZWUgaHR0cHM6Ly8w
MS5vcmcvb3Blbi13ZWJydGMtdG9vbGtpdAorICogVGhpcyBpcyByZWxlYXNlZCB1bmRlciBBcGFj
aGUgTGljZW5zZSAyLjAgYW5kIGl0IGlzIGZyZWUgZm9yIGJvdGggYWNhZGVtaWMgYW5kIGNvbW1l
cmNpYWwgdXNlLgorICovCisKKyNpbmNsdWRlICJ3ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3Vy
Y2UvaDI2NV9zcHNfcGFyc2VyLmgiCisKKyNpbmNsdWRlICJydGNfYmFzZS9iaXRfYnVmZmVyLmgi
CisjaW5jbHVkZSAicnRjX2Jhc2UvYnl0ZV9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9s
b2dnaW5nLmgiCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNkZWZpbmUgUkVUVVJOX0ZBTFNFX09O
X0ZBSUwoeCkgXAorICBpZiAoISh4KSkgeyAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJu
IGZhbHNlOyAgICAgICAgICAgICAgIFwKKyAgfQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworSDI2
NVNwc1BhcnNlcjo6SDI2NVNwc1BhcnNlcihjb25zdCB1aW50OF90KiBzcHMsIHNpemVfdCBieXRl
X2xlbmd0aCkKKyAgICA6IHNwc18oc3BzKSwgYnl0ZV9sZW5ndGhfKGJ5dGVfbGVuZ3RoKSwgd2lk
dGhfKCksIGhlaWdodF8oKSB7Cit9CisKK2Jvb2wgSDI2NVNwc1BhcnNlcjo6UGFyc2UoKSB7Cisg
IC8vIEdlbmVyYWwgbm90ZTogdGhpcyBpcyBiYXNlZCBvZmYgdGhlIDA0LzIwMTUgdmVyc2lvbiBv
ZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIC8vIFlvdSBjYW4gZmluZCBpdCBvbiB0aGlzIHBhZ2U6
CisgIC8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworICBjb25zdCBjaGFy
KiBzcHNfYnl0ZXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihzcHNfKTsKKyAgLy8g
Rmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZm
ZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAw
eDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMu
MS4xIG9mIHRoZSBILjI2NSBzdGFuZGFyZCwgc2ltaWxhciB0byBIMjY0LgorICBydGM6OkJ5dGVC
dWZmZXJXcml0ZXIgcmJzcF9idWZmZXI7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYnl0ZV9s
ZW5ndGhfOykgeworICAgIC8vIEJlIGNhcmVmdWwgYWJvdXQgb3Zlci91bmRlcmZsb3cgaGVyZS4g
Ynl0ZV9sZW5ndGhfIC0gMyBjYW4gdW5kZXJmbG93LCBhbmQKKyAgICAvLyBpICsgMyBjYW4gb3Zl
cmZsb3csIGJ1dCBieXRlX2xlbmd0aF8gLSBpIGNhbid0LCBiZWNhdXNlIGkgPCBieXRlX2xlbmd0
aF8KKyAgICAvLyBhYm92ZSwgYW5kIHRoYXQgZXhwcmVzc2lvbiB3aWxsIHByb2R1Y2UgdGhlIG51
bWJlciBvZiBieXRlcyBsZWZ0IGluCisgICAgLy8gdGhlIHN0cmVhbSBpbmNsdWRpbmcgdGhlIGJ5
dGUgYXQgaS4KKyAgICBpZiAoYnl0ZV9sZW5ndGhfIC0gaSA+PSAzICYmIHNwc19baV0gPT0gMCAm
JiBzcHNfW2kgKyAxXSA9PSAwICYmCisgICAgICAgIHNwc19baSArIDJdID09IDMpIHsKKyAgICAg
IC8vIFR3byByYnNwIGJ5dGVzICsgdGhlIGVtdWxhdGlvbiBieXRlLgorICAgICAgcmJzcF9idWZm
ZXIuV3JpdGVCeXRlcyhzcHNfYnl0ZXMgKyBpLCAyKTsKKyAgICAgIGkgKz0gMzsKKyAgICB9IGVs
c2UgeworICAgICAgLy8gU2luZ2xlIHJic3AgYnl0ZS4KKyAgICAgIHJic3BfYnVmZmVyLldyaXRl
Qnl0ZXMoc3BzX2J5dGVzICsgaSwgMSk7CisgICAgICBpKys7CisgICAgfQorICB9CisKKyAgLy8g
Tm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhyb3VnaCB0aGUgYWN0
dWFsIEhFVkMgU1BTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIuMS4xICgiU2VxdWVu
Y2UgcGFyYW1ldGVyIHNldCBkYXRhIHN5bnRheCIpIG9mIHRoZQorICAvLyBILjI2NSBzdGFuZGFy
ZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2luY2Ugd2Ugb25seSBjYXJlIGFi
b3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkgb2YgZmllbGRzLCBidXQKKyAg
Ly8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJvdWdoIGEgbG90IG9mIHRoZSBk
YXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2ZSB2YXJpYWJsZSBzaXplLgor
ICAvLyBVbmxpa2UgSDI2NCwgZm9yIEgyNjUsIHRoZSBwaWN0dXJlIHNpemUgaXMgaW5kaWNhdGVk
IGJ5IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMKKyAgLy8gYW5kIHBpY19oZWlnaHRfaW5fbHVt
YV9zYW1wbGVzLCAgaWYgY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcgIT0xOworICAvLyBXaGVuIGNv
bmZvcm1hbmNlX3dpbmRvd19mbGFnIGlzIDEsICB0aGUgd2lkdGggaXMgYWRqdXN0ZWQgd2l0aCBj
b25fd2luX3h4X29mZnNldAorICAvLworICBydGM6OkJpdEJ1ZmZlciBwYXJzZXIocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCB1aW50OF90Kj4ocmJzcF9idWZmZXIuRGF0YSgpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJic3BfYnVmZmVyLkxlbmd0aCgpKTsKKworICAvLyBUaGUgZ29sb21iIHZh
bHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNvbnN1bWUuCisgIHVpbnQzMl90IGdvbG9t
Yl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzIG9wdGlvbmFs
IChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9ucworICAvLyBhYm91dCB0aGUgQ2hyb21h
QXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2UgdHJlYXQgY3JvcCBjb29yZGluYXRlcy4K
KyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgPSAwOworICAvLyBjaHJvbWFf
Zm9ybWF0X2lkYyB3aWxsIGJlIENocm9tYUFycmF5VHlwZSBpZiBzZXBhcmF0ZV9jb2xvdXJfcGxh
bmVfZmxhZyBpcworICAvLyAwLiBJdCBkZWZhdWx0cyB0byAxLCB3aGVuIG5vdCBzcGVjaWZpZWQu
CisgIHVpbnQzMl90IGNocm9tYV9mb3JtYXRfaWRjID0gMTsKKworCisgIC8vIHNwc192aWRlb19w
YXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25z
dW1lQml0cyg0KSk7CisgIC8vIHNwc19tYXhfc3ViX2xheWVyc19taW51czE6IHUoMykKKyAgdWlu
dDMyX3Qgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSA9IDA7CisgIFJFVFVSTl9GQUxTRV9PTl9G
QUlMKHBhcnNlci5SZWFkQml0cygmc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSwgMykpOworICAv
LyBzcHNfdGVtcG9yYWxfaWRfbmVzdGluZ19mbGFnOiB1KDEpCisgIFJFVFVSTl9GQUxTRV9PTl9G
QUlMKHBhcnNlci5Db25zdW1lQml0cygxKSk7CisgIC8vIHByb2ZpbGVfdGllcl9sZXZlbCgxLCBz
cHNfbWF4X3N1Yl9sYXllcnNfbWludXMxKS4gV2UgYXJlIGFjdXRhbGx5IG5vdAorICAvLyB1c2lu
ZyB0aGVtLCBzbyByZWFkL3NraXAgb3ZlciBpdC4KKyAgLy8gZ2VuZXJhbF9wcm9maWxlX3NwYWNl
K2dlbmVyYWxfdGllcl9mbGFnK2dlbmVyYWxfcHJmaWxlX2lkYzogdSg4KQorICBSRVRVUk5fRkFM
U0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDEpKTsKKyAgLy8gZ2VuZXJhbF9wcm9maWxl
X2NvbXBhdGFiaWxpdGl5X2ZsYWdbMzJdCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5D
b25zdW1lQnl0ZXMoNCkpOworICAvLyBnZW5lcmFsX3Byb2dyZXNzaXZlX3NvdXJjZV9mbGFnICsg
aW50ZXJsYWNlZF9zb3VyY2VfZmxhZysgbm9uLXBhY2tlZF9jb25zdHJhaW50CisgIC8vIGZsYWcg
KyBmcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzogdSg0KQorICBSRVRVUk5fRkFMU0VfT05fRkFJ
TChwYXJzZXIuQ29uc3VtZUJpdHMoNCkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVfaWRjIGRlY2lk
ZWQgZmxhZ3Mgb3IgcmVzZXJ2ZWQuICB1KDQzKQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJz
ZXIuQ29uc3VtZUJpdHMoNDMpKTsKKyAgLy8gZ2VuZXJhbF9pbmJsZF9mbGFnIG9yIHJlc2VydmVk
IDA6IHUoMSkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDEpKTsK
KyAgLy8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFy
c2VyLkNvbnN1bWVCeXRlcygxKSk7CisgIC8vIGlmIG1heF9zdWJfbGF5ZXJzX21pbnVzMSA+PTEs
IHJlYWQgdGhlIHN1YmxheWVyIHByb2ZpbGUgaW5mb3JtYXRpb24KKyAgc3RkOjp2ZWN0b3I8dWlu
dDMyX3Q+IHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3M7CisgIHN0ZDo6dmVjdG9yPHVp
bnQzMl90PiBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnczsKKyAgdWludDMyX3Qgc3ViX2xh
eWVyX3Byb2ZpbGVfcHJlc2VudCA9IDA7CisgIHVpbnQzMl90IHN1Yl9sYXllcl9sZXZlbF9wcmVz
ZW50ID0gMDsKKyAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHNwc19tYXhfc3ViX2xheWVyc19t
aW51czE7IGkrKykgeworICAgICAgLy9zdWJsYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZyBhbmQg
c3VibGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAgICAgUkVUVVJOX0ZBTFNFX09O
X0ZBSUwocGFyc2VyLlJlYWRCaXRzKCZzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50LCAxKSk7Cisg
ICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEJpdHMoJnN1Yl9sYXllcl9sZXZl
bF9wcmVzZW50LCAxKSk7CisgICAgICBzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdzLnB1
c2hfYmFjayhzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50KTsKKyAgICAgIHN1Yl9sYXllcl9sZXZl
bF9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCk7CisgIH0K
KyAgaWYgKHNwc19tYXhfc3ViX2xheWVyc19taW51czEgPiAwKSB7CisgICAgICBmb3IgKHVpbnQz
Ml90IGogPSBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBqIDwgODsgaisrKSB7CisgICAgICAg
IC8vIHJlc2VydmVkIDIgYml0czogdSgyKQorICAgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlM
KHBhcnNlci5Db25zdW1lQml0cygyKSk7CisgICAgICB9CisgIH0KKyAgZm9yICh1aW50MzJfdCBr
ID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGsrKykgeworICAgICAgaWYoc3Vi
X2xheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnc1trXSkgey8vCisgICAgICAgIC8vIHN1Yl9sYXll
ciBwcm9maWxlX3NwYWNlL3RpZXJfZmxhZy9wcm9maWxlX2lkYy4gaWdub3JlZC4gdSg4KQorICAg
ICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDEpKTsKKyAgICAg
ICAgLy8gcHJvZmlsZV9jb21wYXRhYmlsaXR5X2ZsYWc6ICB1KDMyKQorICAgICAgICBSRVRVUk5f
RkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDQpKTsKKyAgICAgICAgLy8gc3ViX2xh
eWVyIHByb2dyZXNzaXZlX3NvdXJjZV9mbGFnL2ludGVybGFjZWRfc291cmNlX2ZsYWcvCisgICAg
ICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2ZyYW1lX29ubHlfY29uc3RyYWludF9m
bGFnOiB1KDQpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0
cyg0KSk7CisgICAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFyZSBwcm9maWxlX2lkYyBzcGVj
aWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4gdSg0MykKKyAgICAgICAgUkVUVVJOX0ZBTFNF
X09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDQzKSk7CisgICAgICAgIC8vIDEtYml0IHByb2Zp
bGVfaWRjIHNwZWNpZmljIGluYmxkIGZsYWcuICBXZSBzaW1wbHkgcmVhZC9za2lwIGl0LiB1KDEp
CisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygxKSk7Cisg
ICAgICB9CisgICAgICBpZiAoc3ViX2xheWVyX2xldmVsX3ByZXNlbnRfZmxhZ3Nba10pIHsKKyAg
ICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAgICAgICAgIFJFVFVSTl9GQUxT
RV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoMSkpOworICAgICAgfQorICB9CisgIC8vc3Bz
X3NlcV9wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJz
ZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAvLyBjaHJvbWVf
Zm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRFeHBv
bmVudGlhbEdvbG9tYigmY2hyb21hX2Zvcm1hdF9pZGMpKTsKKyAgaWYgKGNocm9tYV9mb3JtYXRf
aWRjID09IDMpIHsKKyAgICAvLyBzZXBlcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZzogdSgxKQorICAg
IFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmc2VwYXJhdGVfY29sb3VyX3Bs
YW5lX2ZsYWcsIDEpKTsKKyAgfQorICB1aW50MzJfdCBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVz
ID0gMDsKKyAgdWludDMyX3QgcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXMgPSAwOworICAvLyBw
aWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChw
YXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzKSk7
CisgIC8vIHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2KQorICBSRVRVUk5fRkFMU0Vf
T05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfaGVpZ2h0X2luX2x1bWFf
c2FtcGxlcykpOworICAvLyBjb25mb3JtYW5jZV93aW5kb3dfZmxhZzogdSgxKQorICB1aW50MzJf
dCBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyA9IDA7CisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBh
cnNlci5SZWFkQml0cygmY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcsIDEpKTsKKworICB1aW50MzJf
dCBjb25mX3dpbl9sZWZ0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3JpZ2h0X29m
ZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3RvcF9vZmZzZXQgPSAwOworICB1aW50MzJf
dCBjb25mX3dpbl9ib3R0b21fb2Zmc2V0ID0gMDsKKyAgaWYgKGNvbmZvcm1hbmNlX3dpbmRvd19m
bGFnKSB7CisgICAgICAvLyBjb25mX3dpbl9sZWZ0X29mZnNldDogdWUodikKKyAgICAgIFJFVFVS
Tl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2xl
ZnRfb2Zmc2V0KSk7CisgICAgICAvLyBjb25mX3dpbl9yaWdodF9vZmZzZXQ6IHVlKHYpCisgICAg
ICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25m
X3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAgIC8vIGNvbmZfd2luX3RvcF9vZmZzZXQ6IHVlKHYp
CisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21i
KCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAgICAvLyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0
OiB1ZSh2KQorICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRFeHBvbmVudGlh
bEdvbG9tYigmY29uZl93aW5fYm90dG9tX29mZnNldCkpOworICB9CisKKyAgLy9Gb3IgZW5vdWdo
IHRvIGdldCB0aGUgcmVzb2x1dGlvbiBpbmZvcm1hdGlvbi4gY2FsY2FsdWF0ZSBhY2NvcmRpbmcg
dG8gSEVWQyBzcGVjIDcuNC4zLjIKKyAgaW50IHdpZHRoID0gMDsKKyAgaW50IGhlaWdodCA9IDA7
CisKKyAgd2lkdGggPSBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOworICBoZWlnaHQgPSBwaWNf
aGVpZ2h0X2luX2x1bWFfc2FtcGxlczsKKworICBpZiAoY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcp
IHsKKyAgICBpbnQgc3ViX3dpZHRoX2MgPSAoKDEgPT0gY2hyb21hX2Zvcm1hdF9pZGMpIHx8ICgy
ID09IGNocm9tYV9mb3JtYXRfaWRjKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICgwID09
IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnKSA/IDIgOiAxOworICAgIGludCBzdWJfaGVpZ2h0
X2MgPSAoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgJiYgKDAgPT0gc2VwYXJhdGVfY29sb3VyX3Bs
YW5lX2ZsYWcpID8gMiA6IDE7CisgICAgLy90aGUgb2Zmc2V0IGluY2x1ZGVzIHRoZSBwaXhlbCB3
aXRoaW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVkIHRvICsxIGFzIHBlciBzcGVj
CisgICAgd2lkdGggLT0gc3ViX3dpZHRoX2MqKGNvbmZfd2luX3JpZ2h0X29mZnNldCArIGNvbmZf
d2luX2xlZnRfb2Zmc2V0KTsKKyAgICBoZWlnaHQgLT0gc3ViX2hlaWdodF9jKihjb25mX3dpbl90
b3Bfb2Zmc2V0ICsgY29uZl93aW5fYm90dG9tX29mZnNldCk7CisgIH0KKworICB3aWR0aF8gPSB3
aWR0aDsKKyAgaGVpZ2h0XyA9IGhlaWdodDsKKyAgcmV0dXJuIHRydWU7CisKK30KKworfSAgLy8g
bmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjQyYjliZDUzNzY1YTFh
MGNkNWNhNTBmOGNmZDNmYjAyMzE0NTgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2
NV9zcHNfcGFyc2VyLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqICBJbnRlbCBMaWNlbnNlCisg
KiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtpdAorICogVGhpcyBpcyByZWxl
YXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlzIGZyZWUgZm9yIGJvdGggYWNh
ZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpZm5kZWYgV0VCUlRDX01PRFVMRVNf
UlRQX1JUQ1BfU09VUkNFX0gyNjVfU1BTX1BBUlNFUl9IXworI2RlZmluZSBXRUJSVENfTU9EVUxF
U19SVFBfUlRDUF9TT1VSQ0VfSDI2NV9TUFNfUEFSU0VSX0hfCisKKyNpbmNsdWRlIDxzdGRkZWYu
aD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworbmFtZXNwYWNlIHdlYnJ0YyB7CisKKy8vIEEgY2xh
c3MgZm9yIHBhcnNpbmcgb3V0IHNlcXVlbmNlIHBhcmFtZXRlciBzZXQgKFNQUykgZGF0YSBmcm9t
IGFuIEgyNjUgTkFMVS4KKy8vIEN1cnJlbnRseSwgb25seSByZXNvbHV0aW9uIGlzIHJlYWQgd2l0
aG91dCBiZWluZyBpZ25vcmVkLgorY2xhc3MgSDI2NVNwc1BhcnNlciB7CisgcHVibGljOgorICBI
MjY1U3BzUGFyc2VyKGNvbnN0IHVpbnQ4X3QqIHNwcywgc2l6ZV90IGJ5dGVfbGVuZ3RoKTsKKyAg
Ly8gUGFyc2VzIHRoZSBTUFMgdG8gY29tcGxldGlvbi4gUmV0dXJucyB0cnVlIGlmIHRoZSBTUFMg
d2FzIHBhcnNlZCBjb3JyZWN0bHkuCisgIGJvb2wgUGFyc2UoKTsKKyAgdWludDE2X3Qgd2lkdGgo
KSB7IHJldHVybiB3aWR0aF87IH0KKyAgdWludDE2X3QgaGVpZ2h0KCkgeyByZXR1cm4gaGVpZ2h0
XzsgfQorCisgcHJpdmF0ZToKKyAgY29uc3QgdWludDhfdCogY29uc3Qgc3BzXzsKKyAgY29uc3Qg
c2l6ZV90IGJ5dGVfbGVuZ3RoXzsKKworICB1aW50MTZfdCB3aWR0aF87CisgIHVpbnQxNl90IGhl
aWdodF87Cit9OworCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisjZW5kaWYgIC8vIFdFQlJUQ19N
T0RVTEVTX1JUUF9SVENQX1NPVVJDRV9IMjY1X1NQU19QQVJTRVJfSF8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF9mb3JtYXQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0LmNjCmluZGV4IDEyYjVl
OGRkYzVhZDY3YmNkMTBhNDNhMWJjMzBiMTEwYTVhY2IxZTQuLjYyODEzZDJjNmYyN2NiZTgwMzAy
YmNiMWE0MmVhYjViZjRiNjRhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2MK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5jYwpAQCAtMTQsMTEgKzE0LDE3IEBACiAKICNpbmNs
dWRlICJhYnNsL3R5cGVzL3ZhcmlhbnQuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3Nv
dXJjZS9ydHBfZm9ybWF0X2gyNjQuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAi
bW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmgiCisjZW5kaWYKICNpbmNs
dWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X3ZpZGVvX2dlbmVyaWMuaCIK
ICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X3ZwOC5oIgogI2lu
Y2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfdnA5LmgiCiAjaW5jbHVk
ZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3BhY2tldGl6ZXJfYXYxLmgiCiAjaW5jbHVk
ZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMu
aCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2Rpbmcv
Y29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1v
ZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVkZS92cDhfZ2xvYmFscy5oIgogI2lu
Y2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvaW5jbHVkZS92cDlfZ2xvYmFs
cy5oIgogI2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNrcy5oIgpAQCAtNDUsNiArNTEsMTUgQEAgc3Rk
Ojp1bmlxdWVfcHRyPFJ0cFBhY2tldGl6ZXI+IFJ0cFBhY2tldGl6ZXI6OkNyZWF0ZSgKICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJ0cFBhY2tldGl6ZXJIMjY0PigKICAgICAgICAgICBw
YXlsb2FkLCBsaW1pdHMsIGgyNjQucGFja2V0aXphdGlvbl9tb2RlLCAqZnJhZ21lbnRhdGlvbik7
CiAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NTog
eworICAgICAgUlRDX0NIRUNLKGZyYWdtZW50YXRpb24pOworICAgICAgY29uc3QgYXV0byYgaDI2
NSA9CisgICAgICAgICAgYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4ocnRwX3ZpZGVvX2hl
YWRlci52aWRlb190eXBlX2hlYWRlcik7CisgICAgICByZXR1cm4gYWJzbDo6bWFrZV91bmlxdWU8
UnRwUGFja2V0aXplckgyNjU+KAorICAgICAgICAgIHBheWxvYWQsIGxpbWl0cywgaDI2NS5wYWNr
ZXRpemF0aW9uX21vZGUsICpmcmFnbWVudGF0aW9uKTsKKyAgICB9CisjZW5kaWYKICAgICBjYXNl
IGtWaWRlb0NvZGVjVlA4OiB7CiAgICAgICBjb25zdCBhdXRvJiB2cDggPQogICAgICAgICAgIGFi
c2w6OmdldDxSVFBWaWRlb0hlYWRlclZQOD4ocnRwX3ZpZGVvX2hlYWRlci52aWRlb190eXBlX2hl
YWRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuY2MgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJj
ZS9ydHBfZm9ybWF0X2gyNjUuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFiMDRhMDA3YzVlZjM1OWQxYTg2NGZk
NTQxZTg3MGIzODUxNzZlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRf
aDI2NS5jYwpAQCAtMCwwICsxLDY1MCBAQAorLyoKKyAqICBJbnRlbCBMaWNlbnNlCisgKiBTZWUg
aHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtpdAorICogVGhpcyBpcyByZWxlYXNlZCB1
bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlzIGZyZWUgZm9yIGJvdGggYWNhZGVtaWMg
YW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1
ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1
X3Bwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJz
ZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuaCIKKyNp
bmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgorI2luY2x1ZGUg
Im1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2J5dGVfaW8uaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0
cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS9ydHBfcGFja2V0X3RvX3NlbmQuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dn
aW5nLmgiCit1c2luZyBuYW1lc3BhY2UgcnRjOworCituYW1lc3BhY2Ugd2VicnRjIHsKK25hbWVz
cGFjZSB7CisKK2VudW0gTmFsdVR5cGUgeworICBrVHJhaWxOID0gMCwKKyAga1RyYWlsUiA9IDEs
CisgIGtUc2FOID0gMiwKKyAga1RzYVIgPSAzLAorICBrU3RzYU4gPSA0LAorICBrU3RzYVIgPSA1
LAorICBrUmFkbE4gPSA2LAorICBrUmFkbFIgPSA3LAorICBrQmxhV0xwID0gMTYsCisgIGtCbGFX
UmFkbCA9IDE3LAorICBrQmxhTkxwID0gMTgsCisgIGtJZHJXUmFkbCA9IDE5LAorICBrSWRyTkxw
ID0gMjAsCisgIGtDcmEgPSAyMSwKKyAga1ZwcyA9IDMyLAorICBrSGV2Y1NwcyA9IDMzLAorICBr
SGV2Y1BwcyA9IDM0LAorICBrSGV2Y0F1ZCA9IDM1LAorICBrUHJlZml4U2VpID0gMzksCisgIGtT
dWZmaXhTZWkgPSA0MCwKKyAga0hldmNBcCA9IDQ4LAorICBrSGV2Y0Z1ID0gNDkKK307CisKKy8q
CisgICAwICAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAg
ICAgICAgICAzCisgICAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAx
IDIgMyA0IDUgNiA3IDggOSAwIDEKKyAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAgfCAgICBQYXlsb2FkSGRyIChUeXBl
PTQ5KSAgICAgICB8ICAgRlUgaGVhZGVyICAgfCBET05MIChjb25kKSAgIHwKKyAgKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLXwK
KyovCisvLyBVbmxpa2UgSC4yNjQsIEhFVkMgTkFMIGhlYWRlciBpcyAyLWJ5dGVzLgorc3RhdGlj
IGNvbnN0IHNpemVfdCBrSGV2Y05hbEhlYWRlclNpemUgPSAyOworLy8gSC4yNjUncyBGVSBpcyBj
b25zdHJ1Y3RlZCBvZiAyLWJ5dGUgcGF5bG9hZCBoZWFkZXIsIGFuZCAxLWJ5dGUgRlUgaGVhZGVy
CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtIZXZjRnVIZWFkZXJTaXplID0gMTsKK3N0YXRpYyBjb25z
dCBzaXplX3Qga0hldmNMZW5ndGhGaWVsZFNpemUgPSAyOworc3RhdGljIGNvbnN0IHNpemVfdCBr
SGV2Y0FwSGVhZGVyU2l6ZSA9CisgICAga0hldmNOYWxIZWFkZXJTaXplICsga0hldmNMZW5ndGhG
aWVsZFNpemU7CisKK2VudW0gSGV2Y05hbEhkck1hc2tzIHsKKyAga0hldmNGQml0ID0gMHg4MCwK
KyAga0hldmNUeXBlTWFzayA9IDB4N0UsCisgIGtIZXZjTGF5ZXJJREhNYXNrID0gMHgxLAorICBr
SGV2Y0xheWVySURMTWFzayA9IDB4RjgsCisgIGtIZXZjVElETWFzayA9IDB4NywKKyAga0hldmNU
eXBlTWFza04gPSAweDgxLAorICBrSGV2Y1R5cGVNYXNrSW5GdUhlYWRlciA9IDB4M0YKK307CisK
Ky8vIEJpdCBtYXNrcyBmb3IgRlUgaGVhZGVycy4KK2VudW0gSGV2Y0Z1RGVmcyB7IGtIZXZjU0Jp
dCA9IDB4ODAsIGtIZXZjRUJpdCA9IDB4NDAsIGtIZXZjRnVUeXBlQml0ID0gMHgzRiB9OworCisv
LyBUT0RPKHBib3MpOiBBdm9pZCBwYXJzaW5nIHRoaXMgaGVyZSBhcyB3ZWxsIGFzIGluc2lkZSB0
aGUgaml0dGVyIGJ1ZmZlci4KK2Jvb2wgUGFyc2VBcFN0YXJ0T2Zmc2V0cyhjb25zdCB1aW50OF90
KiBuYWx1X3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoX3JlbWFp
bmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxzaXplX3Q+KiBvZmZz
ZXRzKSB7CisgIHNpemVfdCBvZmZzZXQgPSAwOworICB3aGlsZSAobGVuZ3RoX3JlbWFpbmluZyA+
IDApIHsKKyAgICAvLyBCdWZmZXIgZG9lc24ndCBjb250YWluIHJvb20gZm9yIGFkZGl0aW9uYWwg
bmFsdSBsZW5ndGguCisgICAgaWYgKGxlbmd0aF9yZW1haW5pbmcgPCBzaXplb2YodWludDE2X3Qp
KQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIHVpbnQxNl90IG5hbHVfc2l6ZSA9IEJ5dGVSZWFk
ZXI8dWludDE2X3Q+OjpSZWFkQmlnRW5kaWFuKG5hbHVfcHRyKTsKKyAgICBuYWx1X3B0ciArPSBz
aXplb2YodWludDE2X3QpOworICAgIGxlbmd0aF9yZW1haW5pbmcgLT0gc2l6ZW9mKHVpbnQxNl90
KTsKKyAgICBpZiAobmFsdV9zaXplID4gbGVuZ3RoX3JlbWFpbmluZykKKyAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBuYWx1X3B0ciArPSBuYWx1X3NpemU7CisgICAgbGVuZ3RoX3JlbWFpbmluZyAt
PSBuYWx1X3NpemU7CisKKyAgICBvZmZzZXRzLT5wdXNoX2JhY2sob2Zmc2V0ICsga0hldmNBcEhl
YWRlclNpemUpOworICAgIG9mZnNldCArPSBrSGV2Y0xlbmd0aEZpZWxkU2l6ZSArIG5hbHVfc2l6
ZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlCisKK1J0cFBhY2tl
dGl6ZXJIMjY1OjpSdHBQYWNrZXRpemVySDI2NSgKKyAgICBydGM6OkFycmF5Vmlldzxjb25zdCB1
aW50OF90PiBwYXlsb2FkLAorICAgIFBheWxvYWRTaXplTGltaXRzIGxpbWl0cywKKyAgICBIMjY1
UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlLAorICAgIGNvbnN0IFJUUEZyYWdt
ZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24pCisgICAgOiBsaW1pdHNfKGxpbWl0cyksCisg
ICAgICBudW1fcGFja2V0c19sZWZ0XygwKSB7CisgIC8vIEd1YXJkIGFnYWluc3QgdW5pbml0aWFs
aXplZCBtZW1vcnkgaW4gcGFja2V0aXphdGlvbl9tb2RlLgorICBSVENfQ0hFQ0socGFja2V0aXph
dGlvbl9tb2RlID09IEgyNjVQYWNrZXRpemF0aW9uTW9kZTo6Tm9uSW50ZXJsZWF2ZWQgfHwKKyAg
ICAgICAgICAgIHBhY2tldGl6YXRpb25fbW9kZSA9PSBIMjY1UGFja2V0aXphdGlvbk1vZGU6OlNp
bmdsZU5hbFVuaXQpOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnJhZ21lbnRhdGlvbi5m
cmFnbWVudGF0aW9uVmVjdG9yU2l6ZTsgKytpKSB7CisgICAgY29uc3QgdWludDhfdCogZnJhZ21l
bnQgPQorICAgICAgICBwYXlsb2FkLmRhdGEoKSArIGZyYWdtZW50YXRpb24uZnJhZ21lbnRhdGlv
bk9mZnNldFtpXTsKKyAgICBjb25zdCBzaXplX3QgZnJhZ21lbnRfbGVuZ3RoID0gZnJhZ21lbnRh
dGlvbi5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldOworICAgIGlucHV0X2ZyYWdtZW50c18ucHVzaF9i
YWNrKEZyYWdtZW50KGZyYWdtZW50LCBmcmFnbWVudF9sZW5ndGgpKTsKKyAgfQorCisgIGlmICgh
R2VuZXJhdGVQYWNrZXRzKHBhY2tldGl6YXRpb25fbW9kZSkpIHsKKyAgICAvLyBJZiBmYWlsZWQg
dG8gZ2VuZXJhdGUgYWxsIHRoZSBwYWNrZXRzLCBkaXNjYXJkIGFscmVhZHkgZ2VuZXJhdGVkCisg
ICAgLy8gcGFja2V0cyBpbiBjYXNlIHRoZSBjYWxsZXIgd291bGQgaWdub3JlIHJldHVybiB2YWx1
ZSBhbmQgc3RpbGwgdHJ5IHRvCisgICAgLy8gY2FsbCBOZXh0UGFja2V0KCkuCisgICAgbnVtX3Bh
Y2tldHNfbGVmdF8gPSAwOworICAgIHdoaWxlICghcGFja2V0c18uZW1wdHkoKSkgeworICAgICAg
cGFja2V0c18ucG9wKCk7CisgICAgfQorICB9Cit9CisKK1J0cFBhY2tldGl6ZXJIMjY1Ojp+UnRw
UGFja2V0aXplckgyNjUoKSB7fQorCitzaXplX3QgUnRwUGFja2V0aXplckgyNjU6Ok51bVBhY2tl
dHMoKSBjb25zdCB7CisgIHJldHVybiBudW1fcGFja2V0c19sZWZ0XzsKK30KKworUnRwUGFja2V0
aXplckgyNjU6OkZyYWdtZW50OjpGcmFnbWVudChjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVf
dCBsZW5ndGgpCisgICAgOiBidWZmZXIoYnVmZmVyKSwgbGVuZ3RoKGxlbmd0aCkge30KK1J0cFBh
Y2tldGl6ZXJIMjY1OjpGcmFnbWVudDo6RnJhZ21lbnQoY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50
KQorICAgIDogYnVmZmVyKGZyYWdtZW50LmJ1ZmZlciksIGxlbmd0aChmcmFnbWVudC5sZW5ndGgp
IHt9CisKKworYm9vbCBSdHBQYWNrZXRpemVySDI2NTo6R2VuZXJhdGVQYWNrZXRzKAorICAgIEgy
NjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUpIHsKKyAgLy8gRm9yIEhFVkMg
d2UgZm9sbG93IG5vbi1pbnRlcmxlYXZlZCBtb2RlIGZvciB0aGUgcGFja2V0aXphdGlvbiwKKyAg
Ly8gYW5kIGRvbid0IHN1cHBvcnQgc2luZ2xlLW5hbHUgbW9kZSBhdCBwcmVzZW50LgorICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpOykgeworICAgIGludCBm
cmFnbWVudF9sZW4gPSBpbnB1dF9mcmFnbWVudHNfW2ldLmxlbmd0aDsKKyAgICBpbnQgc2luZ2xl
X3BhY2tldF9jYXBhY2l0eSA9IGxpbWl0c18ubWF4X3BheWxvYWRfbGVuOworICAgIGlmIChpbnB1
dF9mcmFnbWVudHNfLnNpemUoKSA9PSAxKQorICAgICAgc2luZ2xlX3BhY2tldF9jYXBhY2l0eSAt
PSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgICBlbHNlIGlmIChpID09
IDApCisgICAgICBzaW5nbGVfcGFja2V0X2NhcGFjaXR5IC09IGxpbWl0c18uZmlyc3RfcGFja2V0
X3JlZHVjdGlvbl9sZW47CisgICAgZWxzZSBpZiAoaSArIDEgPT0gaW5wdXRfZnJhZ21lbnRzXy5z
aXplKCkpIHsKKyAgICAgIC8vIFByZXRlbmQgdGhhdCBsYXN0IGZyYWdtZW50IGlzIGxhcmdlciBp
bnN0ZWFkIG9mIG1ha2luZyBsYXN0IHBhY2tldAorICAgICAgLy8gc21hbGxlci4KKyAgICAgIHNp
bmdsZV9wYWNrZXRfY2FwYWNpdHkgLT0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVu
OworICAgIH0KKyAgICBpZiAoZnJhZ21lbnRfbGVuID4gc2luZ2xlX3BhY2tldF9jYXBhY2l0eSkg
eworICAgICAgUGFja2V0aXplRnUoaSk7CisgICAgICArK2k7CisgICAgfSBlbHNlIHsKKyAgICAg
IFBhY2tldGl6ZVNpbmdsZU5hbHUoaSk7CisgICAgICArK2k7CisgICAgfQorICB9CisgIHJldHVy
biB0cnVlOworfQorCitib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXRpemVGdShzaXplX3Qg
ZnJhZ21lbnRfaW5kZXgpIHsKKyAgLy8gRnJhZ21lbnQgcGF5bG9hZCBpbnRvIHBhY2tldHMgKEZV
KS4KKyAgLy8gU3RyaXAgb3V0IHRoZSBvcmlnaW5hbCBoZWFkZXIgYW5kIGxlYXZlIHJvb20gZm9y
IHRoZSBGVSBoZWFkZXIuCisgIGNvbnN0IEZyYWdtZW50JiBmcmFnbWVudCA9IGlucHV0X2ZyYWdt
ZW50c19bZnJhZ21lbnRfaW5kZXhdOworICBQYXlsb2FkU2l6ZUxpbWl0cyBsaW1pdHMgPSBsaW1p
dHNfOworICBsaW1pdHMubWF4X3BheWxvYWRfbGVuIC09IGtIZXZjRnVIZWFkZXJTaXplICsga0hl
dmNOYWxIZWFkZXJTaXplOworCisgIC8vIFVwZGF0ZSBzaW5nbGUvZmlyc3QvbGFzdCBwYWNrZXQg
cmVkdWN0aW9ucyB1bmxlc3MgaXQgaXMgc2luZ2xlL2ZpcnN0L2xhc3QKKyAgLy8gZnJhZ21lbnQu
CisgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSAhPSAxKSB7CisgICAgLy8gaWYgdGhpcyBm
cmFnbWVudCBpcyBwdXQgaW50byBhIHNpbmdsZSBwYWNrZXQsIGl0IG1pZ2h0IHN0aWxsIGJlIHRo
ZQorICAgIC8vIGZpcnN0IG9yIHRoZSBsYXN0IHBhY2tldCBpbiB0aGUgd2hvbGUgc2VxdWVuY2Ug
b2YgcGFja2V0cy4KKyAgICBpZiAoZnJhZ21lbnRfaW5kZXggPT0gaW5wdXRfZnJhZ21lbnRzXy5z
aXplKCkgLSAxKSB7CisgICAgICBsaW1pdHMuc2luZ2xlX3BhY2tldF9yZWR1Y3Rpb25fbGVuID0g
bGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICAgIH0gZWxzZSBpZiAoZnJhZ21l
bnRfaW5kZXggPT0gMCkgeworICAgICAgbGltaXRzLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xl
biA9IGxpbWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgfSBlbHNlIHsKKyAg
ICAgIGxpbWl0cy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSAwOworICAgIH0KKyAgfQor
ICBpZiAoZnJhZ21lbnRfaW5kZXggIT0gMCkKKyAgICBsaW1pdHMuZmlyc3RfcGFja2V0X3JlZHVj
dGlvbl9sZW4gPSAwOworICBpZiAoZnJhZ21lbnRfaW5kZXggIT0gaW5wdXRfZnJhZ21lbnRzXy5z
aXplKCkgLSAxKQorICAgIGxpbWl0cy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuID0gMDsKKwor
ICAvLyBTdHJpcCBvdXQgdGhlIG9yaWdpbmFsIGhlYWRlci4KKyAgc2l6ZV90IHBheWxvYWRfbGVm
dCA9IGZyYWdtZW50Lmxlbmd0aCAtIGtIZXZjTmFsSGVhZGVyU2l6ZTsKKyAgaW50IG9mZnNldCA9
IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKworICBzdGQ6OnZlY3RvcjxpbnQ+IHBheWxvYWRfc2l6ZXMg
PSBTcGxpdEFib3V0RXF1YWxseShwYXlsb2FkX2xlZnQsIGxpbWl0cyk7CisgIGlmIChwYXlsb2Fk
X3NpemVzLmVtcHR5KCkpCisgICAgcmV0dXJuIGZhbHNlOworCisgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgcGF5bG9hZF9zaXplcy5zaXplKCk7ICsraSkgeworICAgIGludCBwYWNrZXRfbGVuZ3Ro
ID0gcGF5bG9hZF9zaXplc1tpXTsKKyAgICBSVENfQ0hFQ0tfR1QocGFja2V0X2xlbmd0aCwgMCk7
CisgICAgdWludDE2X3QgaGVhZGVyID0gKGZyYWdtZW50LmJ1ZmZlclswXSA8PCA4KSB8IGZyYWdt
ZW50LmJ1ZmZlclsxXTsKKyAgICBwYWNrZXRzXy5wdXNoKFBhY2tldFVuaXQoRnJhZ21lbnQoZnJh
Z21lbnQuYnVmZmVyICsgb2Zmc2V0LCBwYWNrZXRfbGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLypmaXJzdF9mcmFnbWVudD0qL2kgPT0gMCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLypsYXN0X2ZyYWdtZW50PSovaSA9PSBwYXlsb2FkX3NpemVzLnNpemUoKSAt
IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBoZWFkZXIpKTsKKyAgICBv
ZmZzZXQgKz0gcGFja2V0X2xlbmd0aDsKKyAgICBwYXlsb2FkX2xlZnQgLT0gcGFja2V0X2xlbmd0
aDsKKyAgfQorICBudW1fcGFja2V0c19sZWZ0XyArPSBwYXlsb2FkX3NpemVzLnNpemUoKTsKKyAg
UlRDX0NIRUNLX0VRKDAsIHBheWxvYWRfbGVmdCk7CisgIHJldHVybiB0cnVlOworfQorCisKK2Jv
b2wgUnRwUGFja2V0aXplckgyNjU6OlBhY2tldGl6ZVNpbmdsZU5hbHUoc2l6ZV90IGZyYWdtZW50
X2luZGV4KSB7CisgIC8vIEFkZCBhIHNpbmdsZSBOQUxVIHRvIHRoZSBxdWV1ZSwgbm8gYWdncmVn
YXRpb24uCisgIHNpemVfdCBwYXlsb2FkX3NpemVfbGVmdCA9IGxpbWl0c18ubWF4X3BheWxvYWRf
bGVuOworICBpZiAoaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgPT0gMSkKKyAgICBwYXlsb2FkX3Np
emVfbGVmdCAtPSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgZWxzZSBp
ZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1pdHNf
LmZpcnN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBlbHNlIGlmIChmcmFnbWVudF9pbmRleCAr
IDEgPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkpCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0g
bGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBjb25zdCBGcmFnbWVudCogZnJh
Z21lbnQgPSAmaW5wdXRfZnJhZ21lbnRzX1tmcmFnbWVudF9pbmRleF07CisgIGlmIChwYXlsb2Fk
X3NpemVfbGVmdCA8IGZyYWdtZW50LT5sZW5ndGgpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8
PCAiRmFpbGVkIHRvIGZpdCBhIGZyYWdtZW50IHRvIHBhY2tldCBpbiBTaW5nbGVOYWx1ICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAicGFja2V0aXphdGlvbiBtb2RlLiBQYXlsb2FkIHNpemUg
bGVmdCAiCisgICAgICAgICAgICAgICAgICAgICAgPDwgcGF5bG9hZF9zaXplX2xlZnQgPDwgIiwg
ZnJhZ21lbnQgbGVuZ3RoICIKKyAgICAgICAgICAgICAgICAgICAgICA8PCBmcmFnbWVudC0+bGVu
Z3RoIDw8ICIsIHBhY2tldCBjYXBhY2l0eSAiCisgICAgICAgICAgICAgICAgICAgICAgPDwgbGlt
aXRzXy5tYXhfcGF5bG9hZF9sZW47CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIFJUQ19DSEVD
S19HVChmcmFnbWVudC0+bGVuZ3RoLCAwdSk7CisgIHBhY2tldHNfLnB1c2goUGFja2V0VW5pdCgq
ZnJhZ21lbnQsIHRydWUgLyogZmlyc3QgKi8sIHRydWUgLyogbGFzdCAqLywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZhbHNlIC8qIGFnZ3JlZ2F0ZWQgKi8sIGZyYWdtZW50LT5idWZmZXJb
MF0pKTsKKyAgKytudW1fcGFja2V0c19sZWZ0XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2ludCBS
dHBQYWNrZXRpemVySDI2NTo6UGFja2V0aXplQXAoc2l6ZV90IGZyYWdtZW50X2luZGV4KSB7Cisg
IC8vIEFnZ3JlZ2F0ZSBmcmFnbWVudHMgaW50byBvbmUgcGFja2V0IChTVEFQLUEpLgorICBzaXpl
X3QgcGF5bG9hZF9zaXplX2xlZnQgPSBsaW1pdHNfLm1heF9wYXlsb2FkX2xlbjsKKyAgaWYgKGlu
cHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGlt
aXRzXy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgIGVsc2UgaWYgKGZyYWdtZW50X2lu
ZGV4ID09IDApCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5maXJzdF9wYWNrZXRf
cmVkdWN0aW9uX2xlbjsKKyAgaW50IGFnZ3JlZ2F0ZWRfZnJhZ21lbnRzID0gMDsKKyAgc2l6ZV90
IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoID0gMDsKKyAgY29uc3QgRnJhZ21lbnQqIGZyYWdtZW50
ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOworICBSVENfQ0hFQ0tfR0UocGF5
bG9hZF9zaXplX2xlZnQsIGZyYWdtZW50LT5sZW5ndGgpOworICArK251bV9wYWNrZXRzX2xlZnRf
OworCisgIGF1dG8gcGF5bG9hZF9zaXplX25lZWRlZCA9IFsmXSB7CisgICAgc2l6ZV90IGZyYWdt
ZW50X3NpemUgPSBmcmFnbWVudC0+bGVuZ3RoICsgZnJhZ21lbnRfaGVhZGVyc19sZW5ndGg7Cisg
ICAgaWYgKGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpIHsKKyAgICAgIC8vIFNpbmdsZSBm
cmFnbWVudCwgc2luZ2xlIHBhY2tldCwgcGF5bG9hZF9zaXplX2xlZnQgYWxyZWFkeSBhZGp1c3Rl
ZAorICAgICAgLy8gd2l0aCBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbi4KKyAg
ICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICAgIH0KKyAgICBpZiAoZnJhZ21lbnRfaW5kZXgg
PT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKSB7CisgICAgICAvLyBMYXN0IGZyYWdtZW50
LCBzbyBTdHJhcEEgbWlnaHQgYmUgdGhlIGxhc3QgcGFja2V0LgorICAgICAgcmV0dXJuIGZyYWdt
ZW50X3NpemUgKyBsaW1pdHNfLmxhc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgfQorICAg
IHJldHVybiBmcmFnbWVudF9zaXplOworICB9OworCisgIHdoaWxlIChwYXlsb2FkX3NpemVfbGVm
dCA+PSBwYXlsb2FkX3NpemVfbmVlZGVkKCkpIHsKKyAgICBSVENfQ0hFQ0tfR1QoZnJhZ21lbnQt
Pmxlbmd0aCwgMCk7CisgICAgcGFja2V0c18ucHVzaChQYWNrZXRVbml0KCpmcmFnbWVudCwgYWdn
cmVnYXRlZF9mcmFnbWVudHMgPT0gMCwgZmFsc2UsIHRydWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZyYWdtZW50LT5idWZmZXJbMF0pKTsKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAt
PSBmcmFnbWVudC0+bGVuZ3RoOworICAgIHBheWxvYWRfc2l6ZV9sZWZ0IC09IGZyYWdtZW50X2hl
YWRlcnNfbGVuZ3RoOworCisgICAgZnJhZ21lbnRfaGVhZGVyc19sZW5ndGggPSBrSGV2Y0xlbmd0
aEZpZWxkU2l6ZTsKKyAgICAvLyBJZiB3ZSBhcmUgZ29pbmcgdG8gdHJ5IHRvIGFnZ3JlZ2F0ZSBt
b3JlIGZyYWdtZW50cyBpbnRvIHRoaXMgcGFja2V0CisgICAgLy8gd2UgbmVlZCB0byBhZGQgdGhl
IFNUQVAtQSBOQUxVIGhlYWRlciBhbmQgYSBsZW5ndGggZmllbGQgZm9yIHRoZSBmaXJzdAorICAg
IC8vIE5BTFUgb2YgdGhpcyBwYWNrZXQuCisgICAgaWYgKGFnZ3JlZ2F0ZWRfZnJhZ21lbnRzID09
IDApCisgICAgICBmcmFnbWVudF9oZWFkZXJzX2xlbmd0aCArPSBrSGV2Y05hbEhlYWRlclNpemUg
KyBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAgICArK2FnZ3JlZ2F0ZWRfZnJhZ21lbnRzOworCisg
ICAgLy8gTmV4dCBmcmFnbWVudC4KKyAgICArK2ZyYWdtZW50X2luZGV4OworICAgIGlmIChmcmFn
bWVudF9pbmRleCA9PSBpbnB1dF9mcmFnbWVudHNfLnNpemUoKSkKKyAgICAgIGJyZWFrOworICAg
IGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOworICB9CisgIFJU
Q19DSEVDS19HVChhZ2dyZWdhdGVkX2ZyYWdtZW50cywgMCk7CisgIHBhY2tldHNfLmJhY2soKS5s
YXN0X2ZyYWdtZW50ID0gdHJ1ZTsKKyAgcmV0dXJuIGZyYWdtZW50X2luZGV4OworfQorCitib29s
IFJ0cFBhY2tldGl6ZXJIMjY1OjpOZXh0UGFja2V0KFJ0cFBhY2tldFRvU2VuZCogcnRwX3BhY2tl
dCkgeworICBSVENfRENIRUNLKHJ0cF9wYWNrZXQpOworCisgIGlmIChwYWNrZXRzXy5lbXB0eSgp
KSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgUGFja2V0VW5pdCBwYWNrZXQgPSBwYWNr
ZXRzXy5mcm9udCgpOworCisgIGlmIChwYWNrZXQuZmlyc3RfZnJhZ21lbnQgJiYgcGFja2V0Lmxh
c3RfZnJhZ21lbnQpIHsKKyAgICAvLyBTaW5nbGUgTkFMIHVuaXQgcGFja2V0LgorICAgIHNpemVf
dCBieXRlc190b19zZW5kID0gcGFja2V0LnNvdXJjZV9mcmFnbWVudC5sZW5ndGg7CisgICAgdWlu
dDhfdCogYnVmZmVyID0gcnRwX3BhY2tldC0+QWxsb2NhdGVQYXlsb2FkKGJ5dGVzX3RvX3NlbmQp
OworICAgIG1lbWNweShidWZmZXIsIHBhY2tldC5zb3VyY2VfZnJhZ21lbnQuYnVmZmVyLCBieXRl
c190b19zZW5kKTsKKyAgICBwYWNrZXRzXy5wb3AoKTsKKyAgICBpbnB1dF9mcmFnbWVudHNfLnBv
cF9mcm9udCgpOworICB9IGVsc2UgaWYgKHBhY2tldC5hZ2dyZWdhdGVkKSB7CisgICAgYm9vbCBp
c19sYXN0X3BhY2tldCA9IG51bV9wYWNrZXRzX2xlZnRfID09IDE7CisgICAgTmV4dEFnZ3JlZ2F0
ZVBhY2tldChydHBfcGFja2V0LCBpc19sYXN0X3BhY2tldCk7CisgIH0gZWxzZSB7CisgICAgTmV4
dEZyYWdtZW50UGFja2V0KHJ0cF9wYWNrZXQpOworICB9CisgIHJ0cF9wYWNrZXQtPlNldE1hcmtl
cihwYWNrZXRzXy5lbXB0eSgpKTsKKyAgLS1udW1fcGFja2V0c19sZWZ0XzsKKyAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgUnRwUGFja2V0aXplckgyNjU6Ok5leHRBZ2dyZWdhdGVQYWNrZXQoUnRw
UGFja2V0VG9TZW5kKiBydHBfcGFja2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBib29sIGxhc3QpIHsKKyAgc2l6ZV90IHBheWxvYWRfY2FwYWNpdHkgPSBy
dHBfcGFja2V0LT5GcmVlQ2FwYWNpdHkoKTsKKyAgUlRDX0NIRUNLX0dFKHBheWxvYWRfY2FwYWNp
dHksIGtIZXZjTmFsSGVhZGVyU2l6ZSk7CisgIHVpbnQ4X3QqIGJ1ZmZlciA9IHJ0cF9wYWNrZXQt
PkFsbG9jYXRlUGF5bG9hZChwYXlsb2FkX2NhcGFjaXR5KTsKKworICBQYWNrZXRVbml0KiBwYWNr
ZXQgPSAmcGFja2V0c18uZnJvbnQoKTsKKyAgUlRDX0NIRUNLKHBhY2tldC0+Zmlyc3RfZnJhZ21l
bnQpOworICB1aW50OF90IHBheWxvYWRfaGRyX2ggPSBwYWNrZXQtPmhlYWRlciA+PiA4OworICB1
aW50OF90IHBheWxvYWRfaGRyX2wgPSBwYWNrZXQtPmhlYWRlciAmIDB4RkY7CisgIHVpbnQ4X3Qg
bGF5ZXJfaWRfaCA9IHBheWxvYWRfaGRyX2ggJiBrSGV2Y0xheWVySURITWFzazsKKworICBwYXls
b2FkX2hkcl9oID0KKyAgICAgIChwYXlsb2FkX2hkcl9oICYga0hldmNUeXBlTWFza04pIHwgKGtI
ZXZjQXAgPDwgMSkgfCBsYXllcl9pZF9oOworCisgIGJ1ZmZlclswXSA9IHBheWxvYWRfaGRyX2g7
CisgIGJ1ZmZlclsxXSA9IHBheWxvYWRfaGRyX2w7CisgIGludCBpbmRleCA9IGtIZXZjTmFsSGVh
ZGVyU2l6ZTsKKyAgYm9vbCBpc19sYXN0X2ZyYWdtZW50ID0gcGFja2V0LT5sYXN0X2ZyYWdtZW50
OworICB3aGlsZSAocGFja2V0LT5hZ2dyZWdhdGVkKSB7CisgICAgLy8gQWRkIE5BTCB1bml0IGxl
bmd0aCBmaWVsZC4KKyAgICBjb25zdCBGcmFnbWVudCYgZnJhZ21lbnQgPSBwYWNrZXQtPnNvdXJj
ZV9mcmFnbWVudDsKKyAgICBCeXRlV3JpdGVyPHVpbnQxNl90Pjo6V3JpdGVCaWdFbmRpYW4oJmJ1
ZmZlcltpbmRleF0sIGZyYWdtZW50Lmxlbmd0aCk7CisgICAgaW5kZXggKz0ga0hldmNMZW5ndGhG
aWVsZFNpemU7CisgICAgLy8gQWRkIE5BTCB1bml0LgorICAgIG1lbWNweSgmYnVmZmVyW2luZGV4
XSwgZnJhZ21lbnQuYnVmZmVyLCBmcmFnbWVudC5sZW5ndGgpOworICAgIGluZGV4ICs9IGZyYWdt
ZW50Lmxlbmd0aDsKKyAgICBwYWNrZXRzXy5wb3AoKTsKKyAgICBpbnB1dF9mcmFnbWVudHNfLnBv
cF9mcm9udCgpOworICAgIGlmIChpc19sYXN0X2ZyYWdtZW50KQorICAgICAgYnJlYWs7CisgICAg
cGFja2V0ID0gJnBhY2tldHNfLmZyb250KCk7CisgICAgaXNfbGFzdF9mcmFnbWVudCA9IHBhY2tl
dC0+bGFzdF9mcmFnbWVudDsKKyAgfQorICBSVENfQ0hFQ0soaXNfbGFzdF9mcmFnbWVudCk7Cisg
IHJ0cF9wYWNrZXQtPlNldFBheWxvYWRTaXplKGluZGV4KTsKK30KKwordm9pZCBSdHBQYWNrZXRp
emVySDI2NTo6TmV4dEZyYWdtZW50UGFja2V0KFJ0cFBhY2tldFRvU2VuZCogcnRwX3BhY2tldCkg
eworICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFja2V0c18uZnJvbnQoKTsKKyAgLy8gTkFMIHVu
aXQgZnJhZ21lbnRlZCBvdmVyIG11bHRpcGxlIHBhY2tldHMgKEZVKS4KKyAgLy8gV2UgZG8gbm90
IHNlbmQgb3JpZ2luYWwgTkFMVSBoZWFkZXIsIHNvIGl0IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhl
CisgIC8vIFBheWxvYWRIZHIgb2YgdGhlIGZpcnN0IHBhY2tldC4KKyAgdWludDhfdCBwYXlsb2Fk
X2hkcl9oID0KKyAgICAgIHBhY2tldC0+aGVhZGVyID4+IDg7ICAvLyAxLWJpdCBGLCA2LWJpdCB0
eXBlLCAxLWJpdCBsYXllcklEIGhpZ2hlc3QtYml0CisgIHVpbnQ4X3QgcGF5bG9hZF9oZHJfbCA9
IHBhY2tldC0+aGVhZGVyICYgMHhGRjsKKyAgdWludDhfdCBsYXllcl9pZF9oID0gcGF5bG9hZF9o
ZHJfaCAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1aW50OF90IGZ1X2hlYWRlciA9IDA7CisgIC8v
IFMgfCBFIHw2IGJpdCB0eXBlLgorICBmdV9oZWFkZXIgfD0gKHBhY2tldC0+Zmlyc3RfZnJhZ21l
bnQgPyBrSGV2Y1NCaXQgOiAwKTsKKyAgZnVfaGVhZGVyIHw9IChwYWNrZXQtPmxhc3RfZnJhZ21l
bnQgPyBrSGV2Y0VCaXQgOiAwKTsKKyAgdWludDhfdCB0eXBlID0gKHBheWxvYWRfaGRyX2ggJiBr
SGV2Y1R5cGVNYXNrKSA+PiAxOworICBmdV9oZWFkZXIgfD0gdHlwZTsKKyAgLy8gTm93IHVwZGF0
ZSBwYXlsb2FkX2hkcl9oIHdpdGggRlUgdHlwZS4KKyAgcGF5bG9hZF9oZHJfaCA9CisgICAgICAo
cGF5bG9hZF9oZHJfaCAmIGtIZXZjVHlwZU1hc2tOKSB8IChrSGV2Y0Z1IDw8IDEpIHwgbGF5ZXJf
aWRfaDsKKyAgY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50ID0gcGFja2V0LT5zb3VyY2VfZnJhZ21l
bnQ7CisgIHVpbnQ4X3QqIGJ1ZmZlciA9IHJ0cF9wYWNrZXQtPkFsbG9jYXRlUGF5bG9hZCgKKyAg
ICAgIGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplICsgZnJhZ21lbnQubGVu
Z3RoKTsKKyAgYnVmZmVyWzBdID0gcGF5bG9hZF9oZHJfaDsKKyAgYnVmZmVyWzFdID0gcGF5bG9h
ZF9oZHJfbDsKKyAgYnVmZmVyWzJdID0gZnVfaGVhZGVyOworCisgIGlmIChwYWNrZXQtPmxhc3Rf
ZnJhZ21lbnQpIHsKKyAgICBtZW1jcHkoYnVmZmVyICsga0hldmNGdUhlYWRlclNpemUgKyBrSGV2
Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZlciwKKyAgICAgICAgICAgZnJhZ21lbnQubGVu
Z3RoKTsKKyAgfSBlbHNlIHsKKyAgICBtZW1jcHkoYnVmZmVyICsga0hldmNGdUhlYWRlclNpemUg
KyBrSGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZlciwKKyAgICAgICAgICAgZnJhZ21l
bnQubGVuZ3RoKTsKKyAgfQorICBwYWNrZXRzXy5wb3AoKTsKK30KKworYWJzbDo6b3B0aW9uYWw8
VmlkZW9SdHBEZXBhY2tldGl6ZXI6OlBhcnNlZFJ0cFBheWxvYWQ+IFZpZGVvUnRwRGVwYWNrZXRp
emVySDI2NTo6UGFyc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0Yzo6Q29w
eU9uV3JpdGVCdWZmZXIgcnRwX3BheWxvYWQpIHsKKyAgc2l6ZV90IHBheWxvYWRfZGF0YV9sZW5n
dGggPSBydHBfcGF5bG9hZC5zaXplKCk7CisgIGlmIChwYXlsb2FkX2RhdGFfbGVuZ3RoID09IDAp
IHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRW1wdHkgcGF5bG9hZC4iOworICAgIHJldHVy
biBhYnNsOjpudWxsb3B0OworICB9CisKKyAgUGFyc2VkUnRwUGF5bG9hZCBwYXJzZWRfcGF5bG9h
ZDsKKworICB1aW50OF90KiBwYXlsb2FkX2RhdGEgPSBydHBfcGF5bG9hZC5kYXRhKCk7CisKKyAg
b2Zmc2V0XyA9IDA7CisgIGxlbmd0aF8gPSBwYXlsb2FkX2RhdGFfbGVuZ3RoOworICBtb2RpZmll
ZF9idWZmZXJfLnJlc2V0KCk7CisKKyAgdWludDhfdCBuYWxfdHlwZSA9IChwYXlsb2FkX2RhdGFb
MF0gJiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICBwYXJzZWRfcGF5bG9hZC52aWRlb19oZWFkZXIK
KyAgICAgIC52aWRlb190eXBlX2hlYWRlci5lbXBsYWNlPFJUUFZpZGVvSGVhZGVySDI2NT4oKTsK
KworICBpZiAobmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtGVSkgeworICAgIC8vIEZyYWdt
ZW50ZWQgTkFMIHVuaXRzIChGVS1BKS4KKyAgICBpZiAoIVBhcnNlRnVOYWx1KCZwYXJzZWRfcGF5
bG9hZCwgcGF5bG9hZF9kYXRhKSkKKyAgICAgIHJldHVybiBhYnNsOjpudWxsb3B0OworICB9IGVs
c2UgeworICAgIC8vIFdlIGhhbmRsZSBTVEFQLUEgYW5kIHNpbmdsZSBOQUxVJ3MgdGhlIHNhbWUg
d2F5IGhlcmUuIFRoZSBqaXR0ZXIgYnVmZmVyCisgICAgLy8gd2lsbCBkZXBhY2tldGl6ZSB0aGUg
U1RBUC1BIGludG8gTkFMIHVuaXRzIGxhdGVyLgorICAgIC8vIFRPRE8oc3ByYW5nKTogUGFyc2Ug
U1RBUC1BIG9mZnNldHMgaGVyZSBhbmQgc3RvcmUgaW4gZnJhZ21lbnRhdGlvbiB2ZWMuCisgICAg
aWYgKCFQcm9jZXNzQXBPclNpbmdsZU5hbHUoJnBhcnNlZF9wYXlsb2FkLCBwYXlsb2FkX2RhdGEp
KQorICAgICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7CisgIH0KKworICBjb25zdCB1aW50OF90KiBw
YXlsb2FkID0KKyAgICAgIG1vZGlmaWVkX2J1ZmZlcl8gPyBtb2RpZmllZF9idWZmZXJfLT5kYXRh
KCkgOiBwYXlsb2FkX2RhdGE7CisKKyAgcGFyc2VkX3BheWxvYWQudmlkZW9fcGF5bG9hZCA9IHsg
cGF5bG9hZCArIG9mZnNldF8sIGxlbmd0aF8gfTsKKyAgcmV0dXJuIHBhcnNlZF9wYXlsb2FkOwor
fQorCitib29sIFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6UHJvY2Vzc0FwT3JTaW5nbGVOYWx1
KAorICAgIFBhcnNlZFJ0cFBheWxvYWQqIHBhcnNlZF9wYXlsb2FkLAorICAgIGNvbnN0IHVpbnQ4
X3QqIHBheWxvYWRfZGF0YSkgeworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLndpZHRo
ID0gMDsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5oZWlnaHQgPSAwOworICBwYXJz
ZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmNvZGVjID0ga1ZpZGVvQ29kZWNIMjY1OworICBwYXJz
ZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSA9IHRydWU7
CisgIGF1dG8mIGgyNjVfaGVhZGVyID0gYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4oCisg
ICAgICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKKwor
ICBjb25zdCB1aW50OF90KiBuYWx1X3N0YXJ0ID0gcGF5bG9hZF9kYXRhICsga0hldmNOYWxIZWFk
ZXJTaXplOworICBjb25zdCBzaXplX3QgbmFsdV9sZW5ndGggPSBsZW5ndGhfIC0ga0hldmNOYWxI
ZWFkZXJTaXplOworICB1aW50OF90IG5hbF90eXBlID0gKHBheWxvYWRfZGF0YVswXSAmIGtIZXZj
VHlwZU1hc2spID4+IDE7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4gbmFsdV9zdGFydF9vZmZzZXRz
OworICBpZiAobmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtBUCkgeworICAgIC8vIFNraXAg
dGhlIFN0YXBBIGhlYWRlciAoU3RhcEEgTkFMIHR5cGUgKyBsZW5ndGgpLgorICAgIGlmIChsZW5n
dGhfIDw9IGtIZXZjQXBIZWFkZXJTaXplKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
QVAgaGVhZGVyIHRydW5jYXRlZC4iOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IGlmICghUGFyc2VBcFN0YXJ0T2Zmc2V0cyhuYWx1X3N0YXJ0LCBuYWx1X2xlbmd0aCwgJm5hbHVf
c3RhcnRfb2Zmc2V0cykpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJBUCBwYWNrZXQg
d2l0aCBpbmNvcnJlY3QgTkFMVSBwYWNrZXQgbGVuZ3Rocy4iOworICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIGgyNjVfaGVhZGVyLnBhY2tldGl6YXRpb25fdHlwZSA9IGtIMjY1QVA7
CisgICAgLy8gbmFsX3R5cGUgPSAocGF5bG9hZF9kYXRhW2tIZXZjQXBIZWFkZXJTaXplXSAmIGtI
ZXZjVHlwZU1hc2spID4+IDE7CisgIH0gZWxzZSB7CisgICAgaDI2NV9oZWFkZXIucGFja2V0aXph
dGlvbl90eXBlID0ga0gyNjVTaW5nbGVOYWx1OworICAgIG5hbHVfc3RhcnRfb2Zmc2V0cy5wdXNo
X2JhY2soMCk7CisgIH0KKyAgaDI2NV9oZWFkZXIubmFsdV90eXBlID0gbmFsX3R5cGU7CisgIHBh
cnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjpr
VmlkZW9GcmFtZURlbHRhOworCisgIG5hbHVfc3RhcnRfb2Zmc2V0cy5wdXNoX2JhY2sobGVuZ3Ro
XyArIGtIZXZjTGVuZ3RoRmllbGRTaXplKTsgIC8vIEVuZCBvZmZzZXQuCisgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbmFsdV9zdGFydF9vZmZzZXRzLnNpemUoKSAtIDE7ICsraSkgeworICAgIHNp
emVfdCBzdGFydF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29mZnNldHNbaV07CisgICAgLy8gRW5kIG9m
ZnNldCBpcyBhY3R1YWxseSBzdGFydCBvZmZzZXQgZm9yIG5leHQgdW5pdCwgZXhjbHVkaW5nIGxl
bmd0aCBmaWVsZAorICAgIC8vIHNvIHJlbW92ZSB0aGF0IGZyb20gdGhpcyB1bml0cyBsZW5ndGgu
CisgICAgc2l6ZV90IGVuZF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29mZnNldHNbaSArIDFdIC0ga0hl
dmNMZW5ndGhGaWVsZFNpemU7CisgICAgaWYgKGVuZF9vZmZzZXQgLSBzdGFydF9vZmZzZXQgPCBr
SGV2Y05hbEhlYWRlclNpemUpIHsgIC8vIFNhbWUgYXMgSC4yNjQuCisgICAgICBSVENfTE9HKExT
X0VSUk9SKSA8PCAiQVAgcGFja2V0IHRvbyBzaG9ydCI7CisgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorCisgICAgSDI2NU5hbHVJbmZvIG5hbHU7CisgICAgbmFsdS50eXBlID0gKHBheWxvYWRf
ZGF0YVtzdGFydF9vZmZzZXRdICYga0hldmNUeXBlTWFzaykgPj4gMTsKKyAgICBuYWx1LnZwc19p
ZCA9IC0xOworICAgIG5hbHUuc3BzX2lkID0gLTE7CisgICAgbmFsdS5wcHNfaWQgPSAtMTsKKyAg
ICBzdGFydF9vZmZzZXQgKz0ga0hldmNOYWxIZWFkZXJTaXplOworICAgIHN3aXRjaCAobmFsdS50
eXBlKSB7CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprVnBzOiB7CisgICAgICAgIGFic2w6
Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiB2cHMgPSBIMjY1VnBzUGFyc2VyOjpQ
YXJzZVZwcygKKyAgICAgICAgICAgICZwYXlsb2FkX2RhdGFbc3RhcnRfb2Zmc2V0XSwgZW5kX29m
ZnNldCAtIHN0YXJ0X29mZnNldCk7CisgICAgICAgIGlmICh2cHMpIHsKKyAgICAgICAgICBuYWx1
LnZwc19pZCA9IHZwcy0+aWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgUlRDX0xPRyhM
U19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUyBpZCBmcm9tIFZQUyBzbGljZS4iOwor
ICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1
VHlwZTo6a1NwczogeworICAgICAgICAvLyBDaGVjayBpZiBWVUkgaXMgcHJlc2VudCBpbiBTUFMg
YW5kIGlmIGl0IG5lZWRzIHRvIGJlIG1vZGlmaWVkIHRvCisgICAgICAgIC8vIGF2b2lkIGV4Y2Vz
c2l2ZSBkZWNvZGVyIGxhdGVuY3kuCisKKyAgICAgICAgLy8gQ29weSBhbnkgcHJldmlvdXMgZGF0
YSBmaXJzdCAobGlrZWx5IGp1c3QgdGhlIGZpcnN0IGhlYWRlcikuCisgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxydGM6OkJ1ZmZlcj4gb3V0cHV0X2J1ZmZlcihuZXcgcnRjOjpCdWZmZXIoKSk7Cisg
ICAgICAgIGlmIChzdGFydF9vZmZzZXQpCisgICAgICAgICAgb3V0cHV0X2J1ZmZlci0+QXBwZW5k
RGF0YShwYXlsb2FkX2RhdGEsIHN0YXJ0X29mZnNldCk7CisKKyAgICAgICAgYWJzbDo6b3B0aW9u
YWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IHNwcyA9IEgyNjVTcHNQYXJzZXI6OlBhcnNlU3Bz
KAorICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdLCBlbmRfb2Zmc2V0IC0g
c3RhcnRfb2Zmc2V0KTsKKworICAgICAgICBpZiAoc3BzKSB7CisgICAgICAgICAgcGFyc2VkX3Bh
eWxvYWQtPnZpZGVvX2hlYWRlci53aWR0aCA9IHNwcy0+d2lkdGg7CisgICAgICAgICAgcGFyc2Vk
X3BheWxvYWQtPnZpZGVvX2hlYWRlci5oZWlnaHQgPSBzcHMtPmhlaWdodDsKKyAgICAgICAgICBu
YWx1LnNwc19pZCA9IHNwcy0+aWQ7CisgICAgICAgICAgbmFsdS52cHNfaWQgPSBzcHMtPnZwc19p
ZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAg
ICAgICAgICAgIDw8ICJGYWlsZWQgdG8gcGFyc2UgU1BTIGFuZCBWUFMgaWQgZnJvbSBTUFMgc2xp
Y2UuIjsKKyAgICAgICAgfQorICAgICAgICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmZy
YW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVLZXk7CisgICAgICAgIGJyZWFr
OworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1BwczogeworICAgICAgICB1
aW50MzJfdCBwcHNfaWQ7CisgICAgICAgIHVpbnQzMl90IHNwc19pZDsKKyAgICAgICAgaWYgKEgy
NjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRzKCZwYXlsb2FkX2RhdGFbc3RhcnRfb2Zmc2V0XSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9vZmZzZXQgLSBzdGFydF9v
ZmZzZXQsICZwcHNfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
c3BzX2lkKSkgeworICAgICAgICAgIG5hbHUucHBzX2lkID0gcHBzX2lkOworICAgICAgICAgIG5h
bHUuc3BzX2lkID0gc3BzX2lkOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIFJUQ19MT0co
TFNfV0FSTklORykKKyAgICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBwYXJzZSBQUFMgaWQgYW5k
IFNQUyBpZCBmcm9tIFBQUyBzbGljZS4iOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
ICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkcldSYWRsOgorICAgICAgY2FzZSBI
MjY1OjpOYWx1VHlwZTo6a0lkck5McDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtDcmE6
CisgICAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9IFZpZGVv
RnJhbWVUeXBlOjprVmlkZW9GcmFtZUtleTsKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtU
cmFpbE46CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprVHJhaWxSOiB7CisgICAgICAgIGFi
c2w6Om9wdGlvbmFsPHVpbnQzMl90PiBwcHNfaWQgPQorICAgICAgICAgICAgSDI2NVBwc1BhcnNl
cjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3AoCisgICAgICAgICAgICAgICAg
JnBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdLCBlbmRfb2Zmc2V0IC0gc3RhcnRfb2Zmc2V0LAor
ICAgICAgICAgICAgICAgIG5hbHUudHlwZSk7CisgICAgICAgIGlmIChwcHNfaWQpIHsKKyAgICAg
ICAgICBuYWx1LnBwc19pZCA9ICpwcHNfaWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
UlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFBQUyBpZCBmcm9tIHNsaWNl
IG9mIHR5cGU6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHN0YXRpY19jYXN0
PGludD4obmFsdS50eXBlKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIH0KKyAg
ICAgIC8vIFNsaWNlcyBiZWxvdyBkb24ndCBjb250YWluIFNQUyBvciBQUFMgaWRzLgorICAgICAg
Y2FzZSBIMjY1OjpOYWx1VHlwZTo6a0F1ZDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtU
c2FOOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1RzYVI6CisgICAgICBjYXNlIEgyNjU6
Ok5hbHVUeXBlOjprU3RzYU46CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3RzYVI6Cisg
ICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUmFkbE46CisgICAgICBjYXNlIEgyNjU6Ok5hbHVU
eXBlOjprUmFkbFI6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprQmxhV0xwOgorICAgICAg
Y2FzZSBIMjY1OjpOYWx1VHlwZTo6a0JsYVdSYWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a1ByZWZpeFNlaToKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtTdWZmaXhTZWk6Cisg
ICAgICAgIGJyZWFrOworICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0FQOgorICAgICAgY2Fz
ZSBIMjY1OjpOYWx1VHlwZTo6a0ZVOgorICAgICAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJV
bmV4cGVjdGVkIEFQIG9yIEZVIHJlY2VpdmVkLiI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKKyAgICBpZiAoaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoID09IGtNYXhOYWx1c1BlclBh
Y2tldCkgeworICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgIDw8ICJSZWNlaXZl
ZCBwYWNrZXQgY29udGFpbmluZyBtb3JlIHRoYW4gIiA8PCBrTWF4TmFsdXNQZXJQYWNrZXQKKyAg
ICAgICAgICA8PCAiIE5BTCB1bml0cy4gV2lsbCBub3Qga2VlcCB0cmFjayBzcHMgYW5kIHBwcyBp
ZHMgZm9yIGFsbCBvZiB0aGVtLiI7CisgICAgfSBlbHNlIHsKKyAgICAgIGgyNjVfaGVhZGVyLm5h
bHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCsrXSA9IG5hbHU7CisgICAgfQorICB9CisgIHJl
dHVybiB0cnVlOworfQorCitib29sIFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6UGFyc2VGdU5h
bHUoCisgICAgUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3BheWxvYWQsCisgICAgY29uc3QgdWlu
dDhfdCogcGF5bG9hZF9kYXRhKSB7CisgIGlmIChsZW5ndGhfIDwga0hldmNGdUhlYWRlclNpemUg
KyBrSGV2Y05hbEhlYWRlclNpemUpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRlUgTkFM
IHVuaXRzIHRydW5jYXRlZC4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICB1aW50OF90IGYg
PSBwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y0ZCaXQ7CisgIHVpbnQ4X3QgbGF5ZXJfaWRfaCA9IHBh
eWxvYWRfZGF0YVswXSAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1aW50OF90IGxheWVyX2lkX2xf
dW5zaGlmdGVkID0gcGF5bG9hZF9kYXRhWzFdICYga0hldmNMYXllcklETE1hc2s7CisgIHVpbnQ4
X3QgdGlkID0gcGF5bG9hZF9kYXRhWzFdICYga0hldmNUSURNYXNrOworCisgIHVpbnQ4X3Qgb3Jp
Z2luYWxfbmFsX3R5cGUgPSBwYXlsb2FkX2RhdGFbMl0gJiBrSGV2Y1R5cGVNYXNrSW5GdUhlYWRl
cjsKKyAgYm9vbCBmaXJzdF9mcmFnbWVudCA9IHBheWxvYWRfZGF0YVsyXSAmIGtIZXZjU0JpdDsK
KyAgSDI2NU5hbHVJbmZvIG5hbHU7CisgIG5hbHUudHlwZSA9IG9yaWdpbmFsX25hbF90eXBlOwor
ICBuYWx1LnZwc19pZCA9IC0xOworICBuYWx1LnNwc19pZCA9IC0xOworICBuYWx1LnBwc19pZCA9
IC0xOworICBpZiAoZmlyc3RfZnJhZ21lbnQpIHsKKyAgICBvZmZzZXRfID0gMTsKKyAgICBsZW5n
dGhfIC09IDE7CisgICAgYWJzbDo6b3B0aW9uYWw8dWludDMyX3Q+IHBwc19pZCA9CisgICAgICAg
IEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRGcm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAg
ICAgICAgICAgcGF5bG9hZF9kYXRhICsga0hldmNOYWxIZWFkZXJTaXplICsga0hldmNGdUhlYWRl
clNpemUsCisgICAgICAgICAgICBsZW5ndGhfIC0ga0hldmNGdUhlYWRlclNpemUsIG5hbHUudHlw
ZSk7CisgICAgaWYgKHBwc19pZCkgeworICAgICAgbmFsdS5wcHNfaWQgPSAqcHBzX2lkOworICAg
IH0gZWxzZSB7CisgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAgICAgICAgPDwgIkZhaWxl
ZCB0byBwYXJzZSBQUFMgZnJvbSBmaXJzdCBmcmFnbWVudCBvZiBGVSBOQUwgIgorICAgICAgICAg
ICAgICJ1bml0IHdpdGggb3JpZ2luYWwgdHlwZTogIgorICAgICAgICAgIDw8IHN0YXRpY19jYXN0
PGludD4obmFsdS50eXBlKTsKKyAgICB9CisgICAgdWludDhfdCogcGF5bG9hZCA9IGNvbnN0X2Nh
c3Q8dWludDhfdCo+KHBheWxvYWRfZGF0YSArIG9mZnNldF8pOworICAgIHBheWxvYWRbMF0gPSBm
IHwgb3JpZ2luYWxfbmFsX3R5cGUgPDwgMSB8IGxheWVyX2lkX2g7CisgICAgcGF5bG9hZFsxXSA9
IGxheWVyX2lkX2xfdW5zaGlmdGVkIHwgdGlkOworICB9IGVsc2UgeworICAgIG9mZnNldF8gPSBr
SGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZTsKKyAgICBsZW5ndGhfIC09IChr
SGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZSk7CisgIH0KKworICBpZiAob3Jp
Z2luYWxfbmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJXUmFkbAorICAgICAgfHwgb3Jp
Z2luYWxfbmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJOTHAKKyAgICAgIHx8IG9yaWdp
bmFsX25hbF90eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprQ3JhKSB7CisgICAgcGFyc2VkX3BheWxv
YWQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1l
S2V5OworICB9IGVsc2UgeworICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuZnJhbWVf
dHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZURlbHRhOworICB9CisgIHBhcnNlZF9w
YXlsb2FkLT52aWRlb19oZWFkZXIud2lkdGggPSAwOworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9f
aGVhZGVyLmhlaWdodCA9IDA7CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuY29kZWMg
PSBrVmlkZW9Db2RlY0gyNjU7CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuaXNfZmly
c3RfcGFja2V0X2luX2ZyYW1lID0gZmlyc3RfZnJhZ21lbnQ7CisgIGF1dG8mIGgyNjVfaGVhZGVy
ID0gYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4oCisgICAgICBwYXJzZWRfcGF5bG9hZC0+
dmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKKyAgaDI2NV9oZWFkZXIucGFja2V0aXph
dGlvbl90eXBlID0ga0gyNjVGVTsKKyAgaDI2NV9oZWFkZXIubmFsdV90eXBlID0gb3JpZ2luYWxf
bmFsX3R5cGU7CisgIGlmIChmaXJzdF9mcmFnbWVudCkgeworICAgIGgyNjVfaGVhZGVyLm5hbHVz
W2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aF0gPSBuYWx1OworICAgIGgyNjVfaGVhZGVyLm5hbHVz
X2xlbmd0aCA9IDE7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB3
ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfaDI2NS5oIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
cnRwX2Zvcm1hdF9oMjY1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk1ZjZlYmJlZDQxM2ZlMzYxNzNlN2FhN2Q3
YTE2MWJmYTRlYjRlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfaDI2
NS5oCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogIEludGVsIExpY2Vuc2UKKyAqIFNlZSBodHRw
czovLzAxLm9yZy9vcGVuLXdlYnJ0Yy10b29sa2l0CisgKiBUaGlzIGlzIHJlbGVhc2VkIHVuZGVy
IEFwYWNoZSBMaWNlbnNlIDIuMCBhbmQgaXQgaXMgZnJlZSBmb3IgYm90aCBhY2FkZW1pYyBhbmQg
Y29tbWVyY2lhbCB1c2UuCisgKi8KKworI2lmbmRlZiBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9T
T1VSQ0VfUlRQX0ZPUk1BVF9IMjY1X0hfCisjZGVmaW5lIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQ
X1NPVVJDRV9SVFBfRk9STUFUX0gyNjVfSF8KKworI2luY2x1ZGUgPHF1ZXVlPgorI2luY2x1ZGUg
PHN0cmluZz4KKyNpbmNsdWRlICJhcGkvYXJyYXlfdmlldy5oIgorI2luY2x1ZGUgIm1vZHVsZXMv
aW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRj
cC9zb3VyY2UvcnRwX2Zvcm1hdC5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNl
L3J0cF9wYWNrZXRfdG9fc2VuZC5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNl
L3J0cF9mb3JtYXQuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19y
dHBfZGVwYWNrZXRpemVyLmgiCisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNz
L2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9idWZmZXIu
aCIKKyNpbmNsdWRlICJydGNfYmFzZS9jb25zdHJ1Y3Rvcl9tYWdpYy5oIgorCituYW1lc3BhY2Ug
d2VicnRjIHsKKworY2xhc3MgUnRwUGFja2V0aXplckgyNjUgOiBwdWJsaWMgUnRwUGFja2V0aXpl
ciB7CisgcHVibGljOgorICAvLyBJbml0aWFsaXplIHdpdGggcGF5bG9hZCBmcm9tIGVuY29kZXIu
CisgIC8vIFRoZSBwYXlsb2FkX2RhdGEgbXVzdCBiZSBleGFjdGx5IG9uZSBlbmNvZGVkIEguMjY1
IGZyYW1lLgorICBSdHBQYWNrZXRpemVySDI2NShydGM6OkFycmF5Vmlldzxjb25zdCB1aW50OF90
PiBwYXlsb2FkLAorICAgICAgICAgICAgICAgICAgICBQYXlsb2FkU2l6ZUxpbWl0cyBsaW1pdHMs
CisgICAgICAgICAgICAgICAgICAgIEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9u
X21vZGUsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJUUEZyYWdtZW50YXRpb25IZWFkZXIm
IGZyYWdtZW50YXRpb24pOworCisgICB+UnRwUGFja2V0aXplckgyNjUoKSBvdmVycmlkZTsKKwor
ICBzaXplX3QgTnVtUGFja2V0cygpIGNvbnN0IG92ZXJyaWRlOworCisgIC8vIEdldCB0aGUgbmV4
dCBwYXlsb2FkIHdpdGggSC4yNjUgcGF5bG9hZCBoZWFkZXIuCisgIC8vIGJ1ZmZlciBpcyBhIHBv
aW50ZXIgdG8gd2hlcmUgdGhlIG91dHB1dCB3aWxsIGJlIHdyaXR0ZW4uCisgIC8vIGJ5dGVzX3Rv
X3NlbmQgaXMgYW4gb3V0cHV0IHZhcmlhYmxlIHRoYXQgd2lsbCBjb250YWluIG51bWJlciBvZiBi
eXRlcworICAvLyB3cml0dGVuIHRvIGJ1ZmZlci4gVGhlIHBhcmFtZXRlciBsYXN0X3BhY2tldCBp
cyB0cnVlIGZvciB0aGUgbGFzdCBwYWNrZXQgb2YKKyAgLy8gdGhlIGZyYW1lLCBmYWxzZSBvdGhl
cndpc2UgKGkuZS4sIGNhbGwgdGhlIGZ1bmN0aW9uIGFnYWluIHRvIGdldCB0aGUKKyAgLy8gbmV4
dCBwYWNrZXQpLgorICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2VzcyBvciBmYWxzZSBpZiB0aGVy
ZSB3YXMgbm8gcGF5bG9hZCB0byBwYWNrZXRpemUuCisgIGJvb2wgTmV4dFBhY2tldChSdHBQYWNr
ZXRUb1NlbmQqIHJ0cF9wYWNrZXQpIG92ZXJyaWRlOworCisgcHJpdmF0ZToKKyAgc3RydWN0IFBh
Y2tldCB7CisgICAgUGFja2V0KHNpemVfdCBvZmZzZXQsCisgICAgICAgICAgIHNpemVfdCBzaXpl
LAorICAgICAgICAgICBib29sIGZpcnN0X2ZyYWdtZW50LAorICAgICAgICAgICBib29sIGxhc3Rf
ZnJhZ21lbnQsCisgICAgICAgICAgIGJvb2wgYWdncmVnYXRlZCwKKyAgICAgICAgICAgdWludDE2
X3QgaGVhZGVyKQorICAgICAgICA6IG9mZnNldChvZmZzZXQpLAorICAgICAgICAgIHNpemUoc2l6
ZSksCisgICAgICAgICAgZmlyc3RfZnJhZ21lbnQoZmlyc3RfZnJhZ21lbnQpLAorICAgICAgICAg
IGxhc3RfZnJhZ21lbnQobGFzdF9mcmFnbWVudCksCisgICAgICAgICAgYWdncmVnYXRlZChhZ2dy
ZWdhdGVkKSwKKyAgICAgICAgICBoZWFkZXIoaGVhZGVyKSB7fQorCisgICAgc2l6ZV90IG9mZnNl
dDsKKyAgICBzaXplX3Qgc2l6ZTsKKyAgICBib29sIGZpcnN0X2ZyYWdtZW50OworICAgIGJvb2wg
bGFzdF9mcmFnbWVudDsKKyAgICBib29sIGFnZ3JlZ2F0ZWQ7CisgICAgdWludDE2X3QgaGVhZGVy
OyAgLy8gRGlmZmVyZW50IGZyb20gSDI2NAorICB9OworICBzdHJ1Y3QgRnJhZ21lbnQgeworICAg
IEZyYWdtZW50KGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IGxlbmd0aCk7CisgICAgZXhw
bGljaXQgRnJhZ21lbnQoY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50KTsKKyAgICBjb25zdCB1aW50
OF90KiBidWZmZXIgPSBudWxscHRyOworICAgIHNpemVfdCBsZW5ndGggPSAwOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gdG1wX2J1ZmZlcjsKKyAgfTsKKyAgc3RydWN0IFBhY2tl
dFVuaXQgeworICAgIFBhY2tldFVuaXQoY29uc3QgRnJhZ21lbnQmIHNvdXJjZV9mcmFnbWVudCwK
KyAgICAgICAgICAgICAgIGJvb2wgZmlyc3RfZnJhZ21lbnQsCisgICAgICAgICAgICAgICBib29s
IGxhc3RfZnJhZ21lbnQsCisgICAgICAgICAgICAgICBib29sIGFnZ3JlZ2F0ZWQsCisgICAgICAg
ICAgICAgICB1aW50MTZfdCBoZWFkZXIpCisgICAgICAgIDogc291cmNlX2ZyYWdtZW50KHNvdXJj
ZV9mcmFnbWVudCksCisgICAgICAgICAgZmlyc3RfZnJhZ21lbnQoZmlyc3RfZnJhZ21lbnQpLAor
ICAgICAgICAgIGxhc3RfZnJhZ21lbnQobGFzdF9mcmFnbWVudCksCisgICAgICAgICAgYWdncmVn
YXRlZChhZ2dyZWdhdGVkKSwKKyAgICAgICAgICBoZWFkZXIoaGVhZGVyKSB7fQorCisgICAgY29u
c3QgRnJhZ21lbnQgc291cmNlX2ZyYWdtZW50OworICAgIGJvb2wgZmlyc3RfZnJhZ21lbnQ7Cisg
ICAgYm9vbCBsYXN0X2ZyYWdtZW50OworICAgIGJvb2wgYWdncmVnYXRlZDsKKyAgICB1aW50MTZf
dCBoZWFkZXI7CisgIH07CisgIHR5cGVkZWYgc3RkOjpxdWV1ZTxQYWNrZXQ+IFBhY2tldFF1ZXVl
OworICBzdGQ6OmRlcXVlPEZyYWdtZW50PiBpbnB1dF9mcmFnbWVudHNfOworICBzdGQ6OnF1ZXVl
PFBhY2tldFVuaXQ+IHBhY2tldHNfOworCisgIGJvb2wgR2VuZXJhdGVQYWNrZXRzKEgyNjVQYWNr
ZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUpOworICBib29sIFBhY2tldGl6ZUZ1KHNp
emVfdCBmcmFnbWVudF9pbmRleCk7CisgIGludCBQYWNrZXRpemVBcChzaXplX3QgZnJhZ21lbnRf
aW5kZXgpOworICBib29sIFBhY2tldGl6ZVNpbmdsZU5hbHUoc2l6ZV90IGZyYWdtZW50X2luZGV4
KTsKKworICB2b2lkIE5leHRBZ2dyZWdhdGVQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFj
a2V0LCBib29sIGxhc3QpOworICB2b2lkIE5leHRGcmFnbWVudFBhY2tldChSdHBQYWNrZXRUb1Nl
bmQqIHJ0cF9wYWNrZXQpOworCisgIGNvbnN0IFBheWxvYWRTaXplTGltaXRzIGxpbWl0c187Cisg
IHNpemVfdCBudW1fcGFja2V0c19sZWZ0XzsKKyAgUlRQRnJhZ21lbnRhdGlvbkhlYWRlciBmcmFn
bWVudGF0aW9uXzsKKworICBSVENfRElTQUxMT1dfQ09QWV9BTkRfQVNTSUdOKFJ0cFBhY2tldGl6
ZXJIMjY1KTsKK307CisKKy8vIERlcGFja2V0aXplciBmb3IgSC4yNjUuCitjbGFzcyBWaWRlb1J0
cERlcGFja2V0aXplckgyNjUgOiBwdWJsaWMgVmlkZW9SdHBEZXBhY2tldGl6ZXIgeworIHB1Ymxp
YzoKKyAgdmlydHVhbCB+VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1KCkge30KKworICBhYnNsOjpv
cHRpb25hbDxQYXJzZWRSdHBQYXlsb2FkPiBQYXJzZSgKKyAgICAgICAgICAgICBydGM6OkNvcHlP
bldyaXRlQnVmZmVyIHJ0cF9wYXlsb2FkKSBvdmVycmlkZTsKKworIHByaXZhdGU6CisgIGJvb2wg
UGFyc2VGdU5hbHUoUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3BheWxvYWQsCisgICAgICAgICAg
ICAgICAgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhKTsKKyAgYm9vbCBQcm9jZXNzQXBP
clNpbmdsZU5hbHUoUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3BheWxvYWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSk7CisKKyAgc2l6
ZV90IG9mZnNldF87CisgIHNpemVfdCBsZW5ndGhfOworICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpC
dWZmZXI+IG1vZGlmaWVkX2J1ZmZlcl87Cit9OworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworI2Vu
ZGlmICAvLyBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfUlRQX0ZPUk1BVF9IMjY1X0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVvLmNjIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRw
X3NlbmRlcl92aWRlby5jYwppbmRleCBlYzVjZjhmZDEzMzFkZTQ1ZTNlOGUwODljNTgxNDM1NDNj
MzkwMDZiLi5lMzNjNTRiNmVkYTM3NDBhZWQxYmNkNjE3ZDVhZTQ3MzI1YzZkYWU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0
cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVvLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9zZW5k
ZXJfdmlkZW8uY2MKQEAgLTc5OSw2ICs3OTksOSBAQCB1aW50OF90IFJUUFNlbmRlclZpZGVvOjpH
ZXRUZW1wb3JhbElkKGNvbnN0IFJUUFZpZGVvSGVhZGVyJiBoZWFkZXIpIHsKICAgICAgIHJldHVy
biB2cDkudGVtcG9yYWxfaWR4OwogICAgIH0KICAgICB1aW50OF90IG9wZXJhdG9yKCkoY29uc3Qg
UlRQVmlkZW9IZWFkZXJIMjY0JikgeyByZXR1cm4ga05vVGVtcG9yYWxJZHg7IH0KKyNpZm5kZWYg
RElTQUJMRV9IMjY1CisgICAgdWludDhfdCBvcGVyYXRvcigpKGNvbnN0IFJUUFZpZGVvSGVhZGVy
SDI2NSYpIHsgcmV0dXJuIGtOb1RlbXBvcmFsSWR4OyB9CisjZW5kaWYKICAgICB1aW50OF90IG9w
ZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJMZWdhY3lHZW5lcmljJikgewogICAgICAgcmV0
dXJuIGtOb1RlbXBvcmFsSWR4OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRl
b19oZWFkZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaAppbmRleCA3MTRkMWViMDhj
Y2I0NGRlZWQyNzc3MGFlMTdiMDQ2NWNjN2M1OTgwLi41ODUyZTVlMWFkNzQyN2IxZTI5YWYzMmFi
YWJhMGIwOGFhYTJmYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmgK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oCkBAIC0yNSw2ICsyNSw5IEBACiAjaW5j
bHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX3RpbWluZy5oIgogI2luY2x1ZGUgImNvbW1vbl90eXBlcy5o
IiAgLy8gTk9MSU5UKGJ1aWxkL2luY2x1ZGUpCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2Rp
bmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9o
MjY1X2dsb2JhbHMuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2Nv
ZGVjcy92cDgvaW5jbHVkZS92cDhfZ2xvYmFscy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9f
Y29kaW5nL2NvZGVjcy92cDkvaW5jbHVkZS92cDlfZ2xvYmFscy5oIgogCkBAIC0zNiwxMSArMzks
MjAgQEAgc3RydWN0IFJUUFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJpYyB7CiAgIHVpbnQxNl90IHBp
Y3R1cmVfaWQ7CiB9OwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQogdXNpbmcgUlRQVmlkZW9UeXBl
SGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjptb25vc3RhdGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyVlA4LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlclZQOSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXJIMjY0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlckgyNjUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVy
TGVnYWN5R2VuZXJpYz47CisjZWxzZQordXNpbmcgUlRQVmlkZW9UeXBlSGVhZGVyID0gYWJzbDo6
dmFyaWFudDxhYnNsOjptb25vc3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJUUFZpZGVvSGVhZGVyVlA4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlclZQOSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXJIMjY0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlckxlZ2FjeUdlbmVyaWM+OworI2Vu
ZGlmCiAKIHN0cnVjdCBSVFBWaWRlb0hlYWRlciB7CiAgIHN0cnVjdCBHZW5lcmljRGVzY3JpcHRv
ckluZm8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvQlVJTEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbgppbmRl
eCBiMmQxMGM5YWI2OGMyYmM5ZDcyOWRjZDdkZmVkYWRiYjQ5ZDFmNjMzLi40Yzc4YWFhY2M3NzE1
OTY4N2I0YzZiZTFhMzc3NDA4OTlhMWE4YjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbgor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9CVUlMRC5nbgpAQCAtMTQsNiArMTQsMTQgQEAgcnRjX2xpYnJhcnkoImVuY29k
ZWRfZnJhbWUiKSB7CiAgICAgImVuY29kZWRfZnJhbWUuY2MiLAogICAgICJlbmNvZGVkX2ZyYW1l
LmgiLAogICBdCisKKyAgaWYgKHJ0Y191c2VfaDI2NSkgeworICAgIHNvdXJjZXMgKz0gWworICAg
ICAgImgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyIsCisgICAgICAiaDI2NV92cHNfc3BzX3Bw
c190cmFja2VyLmgiLAorICAgIF0KKyAgfQorCiAgIGRlcHMgPSBbCiAgICAgIjpjb2RlY19nbG9i
YWxzX2hlYWRlcnMiLAogICAgICI6dmlkZW9fY29kZWNfaW50ZXJmYWNlIiwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9f
Y29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3Mv
aDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMGVlZjIzNmNmZTgyZDUy
ZTgzZGRlNWQyMDg0OWI4Y2NkOGJmOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3Mv
aDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiAgQ29w
eXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
IEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBp
bnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRo
ZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAq
ICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2Ug
dHJlZS4KKyAqLworCisvLyBUaGlzIGZpbGUgY29udGFpbnMgY29kZWMgZGVwZW5kZW50IGRlZmlu
aXRpb25zIHRoYXQgYXJlIG5lZWRlZCBpbgorLy8gb3JkZXIgdG8gY29tcGlsZSB0aGUgV2ViUlRD
IGNvZGViYXNlLCBldmVuIGlmIHRoaXMgY29kZWMgaXMgbm90IHVzZWQuCisKKyNpZm5kZWYgTU9E
VUxFU19WSURFT19DT0RJTkdfQ09ERUNTX0gyNjVfSU5DTFVERV9IMjY1X0dMT0JBTFNfSF8KKyNk
ZWZpbmUgTU9EVUxFU19WSURFT19DT0RJTkdfQ09ERUNTX0gyNjVfSU5DTFVERV9IMjY1X0dMT0JB
TFNfSF8KKworI2lmbmRlZiBESVNBQkxFX0gyNjUKKworI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9f
Y29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisKK25hbWVzcGFjZSB3
ZWJydGMgeworCisvLyBUaGUgcGFja2V0aXphdGlvbiB0eXBlcyB0aGF0IHdlIHN1cHBvcnQ6IHNp
bmdsZSwgYWdncmVnYXRlZCwgYW5kIGZyYWdtZW50ZWQuCitlbnVtIEgyNjVQYWNrZXRpemF0aW9u
VHlwZXMgeworICBrSDI2NVNpbmdsZU5hbHUsICAvLyBUaGlzIHBhY2tldCBjb250YWlucyBhIHNp
bmdsZSBOQUwgdW5pdC4KKyAga0gyNjVBUCwgICAgICAgICAgLy8gVGhpcyBwYWNrZXQgY29udGFp
bnMgYWdncmVnYXRpb24gUGFja2V0LgorICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIHBh
Y2tldCBoYXMgYW4gYXNzb2NpYXRlZCBOQUwgdW5pdCB0eXBlLAorICAgICAgICAgICAgICAgICAg
ICAvLyBpdCdsbCBiZSBmb3IgdGhlIGZpcnN0IHN1Y2ggYWdncmVnYXRlZCBwYWNrZXQuCisgIGtI
MjY1RlUsICAgICAgICAgIC8vIFRoaXMgcGFja2V0IGNvbnRhaW5zIGEgRlUgKGZyYWdtZW50YXRp
b24KKyAgICAgICAgICAgICAgICAgICAgLy8gdW5pdCkgcGFja2V0LCBtZWFuaW5nIGl0IGlzIGEg
cGFydCBvZiBhIGZyYW1lCisgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQgd2FzIHRvbyBsYXJn
ZSB0byBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQuCit9OworCitzdHJ1Y3QgSDI2NU5hbHVJbmZv
IHsKKyAgdWludDhfdCB0eXBlOworICBpbnQgdnBzX2lkOworICBpbnQgc3BzX2lkOworICBpbnQg
cHBzX2lkOworfTsKKworZW51bSBjbGFzcyBIMjY1UGFja2V0aXphdGlvbk1vZGUgeworICBOb25J
bnRlcmxlYXZlZCA9IDAsICAvLyBNb2RlIDEgLSBTVEFQLUEsIEZVLUEgaXMgYWxsb3dlZAorICBT
aW5nbGVOYWxVbml0ICAgICAgICAvLyBNb2RlIDAgLSBvbmx5IHNpbmdsZSBOQUxVIGFsbG93ZWQK
K307CisKK3N0cnVjdCBSVFBWaWRlb0hlYWRlckgyNjUgeworICAvLyBUaGUgTkFMIHVuaXQgdHlw
ZS4gSWYgdGhpcyBpcyBhIGhlYWRlciBmb3IgYSBmcmFnbWVudGVkIHBhY2tldCwgaXQncyB0aGUK
KyAgLy8gTkFMIHVuaXQgdHlwZSBvZiB0aGUgb3JpZ2luYWwgZGF0YS4gSWYgdGhpcyBpcyB0aGUg
aGVhZGVyIGZvciBhbiBhZ2dyZWdhdGVkCisgIC8vIHBhY2tldCwgaXQncyB0aGUgTkFMIHVuaXQg
dHlwZSBvZiB0aGUgZmlyc3QgTkFMIHVuaXQgaW4gdGhlIHBhY2tldC4KKyAgdWludDhfdCBuYWx1
X3R5cGU7CisgIEgyNjVQYWNrZXRpemF0aW9uVHlwZXMgcGFja2V0aXphdGlvbl90eXBlOworICBI
MjY1TmFsdUluZm8gbmFsdXNba01heE5hbHVzUGVyUGFja2V0XTsKKyAgc2l6ZV90IG5hbHVzX2xl
bmd0aDsKKyAgLy8gVGhlIHBhY2tldGl6YXRpb24gdHlwZSBvZiB0aGlzIGJ1ZmZlciAtIHNpbmds
ZSwgYWdncmVnYXRlZCBvciBmcmFnbWVudGVkLgorICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFj
a2V0aXphdGlvbl9tb2RlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworCisjZW5kaWYK
KworI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVPX0NPRElOR19DT0RFQ1NfSDI2NV9JTkNMVURFX0gy
NjVfR0xPQkFMU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9mcmFtZS5jYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5n
L2VuY29kZWRfZnJhbWUuY2MKaW5kZXggMWU5ZTM3NGM2NDRlODM1MTM3NjBlNmRiYjFhNjVmMzBl
NjZkNzJjYy4uNTQ5ODkyNjA4MjU2MTdmOGFlMjc0YWI1ZGRjZDRjOGRiNTE2ZTk4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2RpbmcvZW5jb2RlZF9mcmFtZS5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9lbmNvZGVkX2ZyYW1lLmNj
CkBAIC0xNTEsNiArMTUxLDEyIEBAIHZvaWQgVkNNRW5jb2RlZEZyYW1lOjpDb3B5Q29kZWNTcGVj
aWZpYyhjb25zdCBSVFBWaWRlb0hlYWRlciogaGVhZGVyKSB7CiAgICAgICAgIH0KICAgICAgICAg
YnJlYWs7CiAgICAgICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgY2FzZSBrVmlkZW9D
b2RlY0gyNjU6IHsKKyAgICAgICAgX2NvZGVjU3BlY2lmaWNJbmZvLmNvZGVjVHlwZSA9IGtWaWRl
b0NvZGVjSDI2NTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisjZW5kaWYKICAgICAgIGRlZmF1
bHQ6IHsKICAgICAgICAgX2NvZGVjU3BlY2lmaWNJbmZvLmNvZGVjVHlwZSA9IGtWaWRlb0NvZGVj
R2VuZXJpYzsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNf
cHBzX3RyYWNrZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmFlNjdkODlhYjkzZjVjMmY5YzBiYzhmZDMxY2ZiYmIxMTgwZmM3NwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYwpAQCAtMCwwICsxLDMx
MiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhv
cnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3Vu
ZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVl
LiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJl
IGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVj
dCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJv
b3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCIKKworI2luY2x1ZGUgPHN0cmluZz4KKyNp
bmNsdWRlIDx1dGlsaXR5PgorCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjQvaDI2NF9jb21t
b24uaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1
ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oIgorI2luY2x1ZGUgImNvbW1v
bl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9o
MjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2Nv
ZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaW5jbHVkZSAibW9kdWxlcy92aWRl
b19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNpbmNsdWRlICJt
b2R1bGVzL3ZpZGVvX2NvZGluZy9mcmFtZV9vYmplY3QuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3Zp
ZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvY2hlY2tzLmgi
CisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgorCituYW1lc3BhY2Ugd2VicnRjIHsKK25h
bWVzcGFjZSB2aWRlb19jb2RpbmcgeworCituYW1lc3BhY2UgeworY29uc3QgdWludDhfdCBzdGFy
dF9jb2RlX2gyNjVbXSA9IHswLCAwLCAwLCAxfTsKK30gIC8vIG5hbWVzcGFjZQorCitIMjY1VnBz
U3BzUHBzVHJhY2tlcjo6Rml4ZWRCaXRzdHJlYW0gSDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OkNvcHlB
bmRGaXhCaXRzdHJlYW0ocnRjOjpBcnJheVZpZXc8Y29uc3QgdWludDhfdD4gYml0c3RyZWFtLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlciogdmlkZW9f
aGVhZGVyX3BvaW50ZXIpIHsKKyAgY29uc3QgdWludDhfdCogZGF0YSA9IGJpdHN0cmVhbS5kYXRh
KCk7CisgIGNvbnN0IHNpemVfdCBkYXRhX3NpemUgPSBiaXRzdHJlYW0uc2l6ZSgpOworICBSVFBW
aWRlb0hlYWRlciYgdmlkZW9faGVhZGVyID0gKnZpZGVvX2hlYWRlcl9wb2ludGVyOworICBSVENf
RENIRUNLKHZpZGVvX2hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQpOworCisgIGF1dG8m
IGgyNjVfaGVhZGVyID0KKyAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlckgyNjU+KHZpZGVv
X2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisKKyAgYm9vbCBhcHBlbmRfdnBzX3Nwc19wcHMg
PSBmYWxzZTsKKyAgYXV0byB2cHMgPSB2cHNfZGF0YV8uZW5kKCk7CisgIGF1dG8gc3BzID0gc3Bz
X2RhdGFfLmVuZCgpOworICBhdXRvIHBwcyA9IHBwc19kYXRhXy5lbmQoKTsKKworICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aDsgKytpKSB7CisgICAgY29u
c3QgSDI2NU5hbHVJbmZvJiBuYWx1ID0gaDI2NV9oZWFkZXIubmFsdXNbaV07CisgICAgc3dpdGNo
IChuYWx1LnR5cGUpIHsKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtWcHM6IHsKKyAgICAg
ICAgdnBzX2RhdGFfW25hbHUudnBzX2lkXS5zaXplID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAg
ICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3BzOiB7CisgICAgICAgIHNwc19kYXRh
X1tuYWx1LnNwc19pZF0udnBzX2lkID0gbmFsdS52cHNfaWQ7CisgICAgICAgIHNwc19kYXRhX1tu
YWx1LnNwc19pZF0ud2lkdGggPSB2aWRlb19oZWFkZXIud2lkdGg7CisgICAgICAgIHNwc19kYXRh
X1tuYWx1LnNwc19pZF0uaGVpZ2h0ID0gdmlkZW9faGVhZGVyLmhlaWdodDsKKyAgICAgICAgYnJl
YWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUHBzOiB7CisgICAgICAg
IHBwc19kYXRhX1tuYWx1LnBwc19pZF0uc3BzX2lkID0gbmFsdS5zcHNfaWQ7CisgICAgICAgIGJy
ZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkcldSYWRsOgorICAg
ICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5
cGU6OmtDcmE6IHsKKyAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUgZmlyc3QgcGFja2V0IG9mIGFu
IElEUiwgbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJlcXVpcmVkCisgICAgICAgIC8vIFNQUy9QUFMg
YW5kIGFsc28gY2FsY3VsYXRlIGhvdyBtdWNoIGV4dHJhIHNwYWNlIHdlIG5lZWQgaW4gdGhlIGJ1
ZmZlcgorICAgICAgICAvLyB0byBwcmVwZW5kIHRoZSBTUFMvUFBTIHRvIHRoZSBiaXRzdHJlYW0g
d2l0aCBzdGFydCBjb2Rlcy4KKyAgICAgICAgaWYgKHZpZGVvX2hlYWRlci5pc19maXJzdF9wYWNr
ZXRfaW5fZnJhbWUpIHsKKyAgICAgICAgICBpZiAobmFsdS5wcHNfaWQgPT0gLTEpIHsKKyAgICAg
ICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk5vIFBQUyBpZCBpbiBJRFIgbmFsdS4iOwor
ICAgICAgICAgICAgcmV0dXJuIHtrUmVxdWVzdEtleWZyYW1lfTsKKyAgICAgICAgICB9CisKKyAg
ICAgICAgICBwcHMgPSBwcHNfZGF0YV8uZmluZChuYWx1LnBwc19pZCk7CisgICAgICAgICAgaWYg
KHBwcyA9PSBwcHNfZGF0YV8uZW5kKCkpIHsKKyAgICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklO
RykKKyAgICAgICAgICAgICAgICA8PCAiTm8gUFBTIHdpdGggaWQgIiA8PCBuYWx1LnBwc19pZCA8
PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1JlcXVlc3RLZXlmcmFtZX07Cisg
ICAgICAgICAgfQorCisgICAgICAgICAgc3BzID0gc3BzX2RhdGFfLmZpbmQocHBzLT5zZWNvbmQu
c3BzX2lkKTsKKyAgICAgICAgICBpZiAoc3BzID09IHNwc19kYXRhXy5lbmQoKSkgeworICAgICAg
ICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgICAgICAgIDw8ICJObyBTUFMgd2l0
aCBpZCA8PCAiIDw8IHBwcy0+c2Vjb25kLnNwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAg
ICAgIHJldHVybiB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisgICAgICAgICAg
dnBzID0gdnBzX2RhdGFfLmZpbmQoc3BzLT5zZWNvbmQudnBzX2lkKTsKKyAgICAgICAgICBpZiAo
dnBzID09IHZwc19kYXRhXy5lbmQoKSkgeworICAgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5H
KQorICAgICAgICAgICAgICAgIDw8ICJObyBWUFMgd2l0aCBpZCAiIDw8IHNwcy0+c2Vjb25kLnZw
c19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1JlcXVlc3RLZXlmcmFt
ZX07CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gU2luY2UgdGhlIGZpcnN0IHBhY2tldCBv
ZiBldmVyeSBrZXlmcmFtZSBzaG91bGQgaGF2ZSBpdHMgd2lkdGggYW5kCisgICAgICAgICAgLy8g
aGVpZ2h0IHNldCB3ZSBzZXQgaXQgaGVyZSBpbiB0aGUgY2FzZSBvZiBpdCBiZWluZyBzdXBwbGll
ZCBvdXQgb2YKKyAgICAgICAgICAvLyBiYW5kLgorICAgICAgICAgIHZpZGVvX2hlYWRlci53aWR0
aCA9IHNwcy0+c2Vjb25kLndpZHRoOworICAgICAgICAgIHZpZGVvX2hlYWRlci5oZWlnaHQgPSBz
cHMtPnNlY29uZC5oZWlnaHQ7CisKKyAgICAgICAgICAvLyBJZiB0aGUgVlBTL1NQUy9QUFMgd2Fz
IHN1cHBsaWVkIG91dCBvZiBiYW5kIHRoZW4gd2Ugd2lsbCBoYXZlIHNhdmVkCisgICAgICAgICAg
Ly8gdGhlIGFjdHVhbCBiaXRzdHJlYW0gaW4gfGRhdGF8LgorICAgICAgICAgIC8vIFRoaXMgYnJh
bmNoIGlzIG5vdCB2ZXJpZmllZC4KKyAgICAgICAgICBpZiAodnBzLT5zZWNvbmQuZGF0YSAmJiBz
cHMtPnNlY29uZC5kYXRhICYmIHBwcy0+c2Vjb25kLmRhdGEpIHsKKyAgICAgICAgICAgIFJUQ19E
Q0hFQ0tfR1QodnBzLT5zZWNvbmQuc2l6ZSwgMCk7CisgICAgICAgICAgICBSVENfRENIRUNLX0dU
KHNwcy0+c2Vjb25kLnNpemUsIDApOworICAgICAgICAgICAgUlRDX0RDSEVDS19HVChwcHMtPnNl
Y29uZC5zaXplLCAwKTsKKyAgICAgICAgICAgIGFwcGVuZF92cHNfc3BzX3BwcyA9IHRydWU7Cisg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgZGVm
YXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICB9CisKKyAgUlRDX0NIRUNLKCFhcHBlbmRf
dnBzX3Nwc19wcHMgfHwKKyAgICAgICAgICAgIChzcHMgIT0gc3BzX2RhdGFfLmVuZCgpICYmIHBw
cyAhPSBwcHNfZGF0YV8uZW5kKCkpKTsKKworICAvLyBDYWxjdWxhdGUgaG93IG11Y2ggc3BhY2Ug
d2UgbmVlZCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGJpdHN0cmVhbS4KKyAgc2l6ZV90IHJlcXVpcmVk
X3NpemUgPSAwOworCisgIGlmIChhcHBlbmRfdnBzX3Nwc19wcHMpIHsKKyAgICByZXF1aXJlZF9z
aXplICs9IHZwcy0+c2Vjb25kLnNpemUgKyBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICBy
ZXF1aXJlZF9zaXplICs9IHNwcy0+c2Vjb25kLnNpemUgKyBzaXplb2Yoc3RhcnRfY29kZV9oMjY1
KTsKKyAgICByZXF1aXJlZF9zaXplICs9IHBwcy0+c2Vjb25kLnNpemUgKyBzaXplb2Yoc3RhcnRf
Y29kZV9oMjY1KTsKKyAgfQorCisgIGlmIChoMjY1X2hlYWRlci5wYWNrZXRpemF0aW9uX3R5cGUg
PT0ga0gyNjVBUCkgeworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfcHRyID0gZGF0YSArIDE7Cisg
ICAgd2hpbGUgKG5hbHVfcHRyIDwgZGF0YSArIGRhdGFfc2l6ZSkgeworICAgICAgUlRDX0RDSEVD
Syh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKTsKKyAgICAgIHJlcXVpcmVk
X3NpemUgKz0gc2l6ZW9mKHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAgICAgIC8vIFRoZSBmaXJzdCB0
d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21lbnQuCisgICAgICB1aW50MTZf
dCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBuYWx1X3B0clsxXTsKKyAgICAg
IG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHJlcXVpcmVkX3NpemUgKz0gc2VnbWVudF9sZW5ndGg7
CisgICAgICBuYWx1X3B0ciArPSBzZWdtZW50X2xlbmd0aDsKKyAgICB9CisgIH0gZWxzZSB7Cisg
ICAgaWYgKHZpZGVvX2hlYWRlci5pc19maXJzdF9wYWNrZXRfaW5fZnJhbWUpCisgICAgICByZXF1
aXJlZF9zaXplICs9IHNpemVvZihzdGFydF9jb2RlX2gyNjUpOworICAgIHJlcXVpcmVkX3NpemUg
Kz0gZGF0YV9zaXplOworICB9CisKKyAgLy8gVGhlbiB3ZSBjb3B5IHRvIHRoZSBuZXcgYnVmZmVy
LgorICBGaXhlZEJpdHN0cmVhbSBmaXhlZDsKKyAgZml4ZWQuYml0c3RyZWFtLkVuc3VyZUNhcGFj
aXR5KHJlcXVpcmVkX3NpemUpOworCisgIGlmIChhcHBlbmRfdnBzX3Nwc19wcHMpIHsKKyAgICAv
LyBJbnNlcnQgVlBTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVf
aDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEodnBzLT5zZWNvbmQuZGF0YS5n
ZXQoKSwgdnBzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBJbnNlcnQgU1BTLgorICAgIGZpeGVk
LmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3Ry
ZWFtLkFwcGVuZERhdGEoc3BzLT5zZWNvbmQuZGF0YS5nZXQoKSwgc3BzLT5zZWNvbmQuc2l6ZSk7
CisKKyAgICAvLyBJbnNlcnQgUFBTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0
YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEocHBzLT5zZWNv
bmQuZGF0YS5nZXQoKSwgcHBzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBVcGRhdGUgY29kZWMg
aGVhZGVyIHRvIHJlZmxlY3QgdGhlIG5ld2x5IGFkZGVkIFNQUyBhbmQgUFBTLgorICAgIEgyNjVO
YWx1SW5mbyB2cHNfaW5mbzsKKyAgICB2cHNfaW5mby50eXBlID0gSDI2NTo6TmFsdVR5cGU6OmtW
cHM7CisgICAgdnBzX2luZm8udnBzX2lkID0gdnBzLT5maXJzdDsKKyAgICB2cHNfaW5mby5zcHNf
aWQgPSAtMTsKKyAgICB2cHNfaW5mby5wcHNfaWQgPSAtMTsKKyAgICBIMjY1TmFsdUluZm8gc3Bz
X2luZm87CisgICAgc3BzX2luZm8udHlwZSA9IEgyNjU6Ok5hbHVUeXBlOjprU3BzOworICAgIHNw
c19pbmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7CisgICAgc3BzX2luZm8uc3BzX2lkID0gc3BzLT5m
aXJzdDsKKyAgICBzcHNfaW5mby5wcHNfaWQgPSAtMTsKKyAgICBIMjY1TmFsdUluZm8gcHBzX2lu
Zm87CisgICAgcHBzX2luZm8udHlwZSA9IEgyNjU6Ok5hbHVUeXBlOjprUHBzOworICAgIHBwc19p
bmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7CisgICAgcHBzX2luZm8uc3BzX2lkID0gc3BzLT5maXJz
dDsKKyAgICBwcHNfaW5mby5wcHNfaWQgPSBwcHMtPmZpcnN0OworICAgIGlmIChoMjY1X2hlYWRl
ci5uYWx1c19sZW5ndGggKyAyIDw9IGtNYXhOYWx1c1BlclBhY2tldCkgeworICAgICAgaDI2NV9o
ZWFkZXIubmFsdXNbaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoKytdID0gdnBzX2luZm87CisgICAg
ICBoMjY1X2hlYWRlci5uYWx1c1toMjY1X2hlYWRlci5uYWx1c19sZW5ndGgrK10gPSBzcHNfaW5m
bzsKKyAgICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCsrXSA9
IHBwc19pbmZvOworICAgIH0gZWxzZSB7CisgICAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJO
b3QgZW5vdWdoIHNwYWNlIGluIEguMjY1IGNvZGVjIGhlYWRlciB0byBpbnNlcnQgIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiU1BTL1BQUyBwcm92aWRlZCBvdXQtb2YtYmFuZC4iOwor
ICAgIH0KKyAgfQorCisgIC8vIENvcHkgdGhlIHJlc3Qgb2YgdGhlIGJpdHN0cmVhbSBhbmQgaW5z
ZXJ0IHN0YXJ0IGNvZGVzLgorICBpZiAoaDI2NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID09
IGtIMjY1QVApIHsKKyAgICBjb25zdCB1aW50OF90KiBuYWx1X3B0ciA9IGRhdGEgKyAxOworICAg
IHdoaWxlIChuYWx1X3B0ciA8IGRhdGEgKyBkYXRhX3NpemUpIHsKKyAgICAgIGZpeGVkLmJpdHN0
cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAgICAgIC8vIFRoZSBmaXJzdCB0
d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21lbnQuCisgICAgICB1aW50MTZf
dCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBuYWx1X3B0clsxXTsKKyAgICAg
IG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHNpemVfdCBjb3B5X2VuZCA9IG5hbHVfcHRyIC0gZGF0
YSArIHNlZ21lbnRfbGVuZ3RoOworICAgICAgaWYgKGNvcHlfZW5kID4gZGF0YV9zaXplKSB7Cisg
ICAgICAgIHJldHVybiB7a0Ryb3B9OworICAgICAgfQorCisgICAgICBmaXhlZC5iaXRzdHJlYW0u
QXBwZW5kRGF0YShuYWx1X3B0ciwgc2VnbWVudF9sZW5ndGgpOworICAgICAgbmFsdV9wdHIgKz0g
c2VnbWVudF9sZW5ndGg7CisgICAgfQorICB9IGVsc2UgeworICAgIGlmICh2aWRlb19oZWFkZXIu
aXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSB7CisgICAgICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5k
RGF0YShzdGFydF9jb2RlX2gyNjUpOworICAgIH0KKyAgICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5k
RGF0YShiaXRzdHJlYW0uZGF0YSgpLCBiaXRzdHJlYW0uc2l6ZSgpKTsKKyAgfQorCisgIGZpeGVk
LmFjdGlvbiA9IGtJbnNlcnQ7CisgIHJldHVybiBmaXhlZDsKK30KKwordm9pZCBIMjY1VnBzU3Bz
UHBzVHJhY2tlcjo6SW5zZXJ0VnBzU3BzUHBzTmFsdXMoCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8
dWludDhfdD4mIHZwcywKKyAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgc3BzLAorICAg
IGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBwcHMpIHsKKyAgY29uc3RleHByIHNpemVfdCBr
TmFsdUhlYWRlck9mZnNldCA9IDE7CisgIGlmICh2cHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZz
ZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJWUFMgc2l6ZSAgIiA8PCB2cHMuc2l6
ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IGtO
YWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAoKHZwc1swXSAmIDB4N2Up
ID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcp
IDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChz
cHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcp
IDw8ICJTUFMgc2l6ZSAgIiA8PCBzcHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsK
KyAgfQorICBpZiAoKHNwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMp
IHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7
CisgICAgcmV0dXJuOworICB9CisgIGlmIChwcHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQp
IHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJQUFMgc2l6ZSAgIiA8PCBwcHMuc2l6ZSgp
IDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1
SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAoKHBwc1swXSAmIDB4N2UpID4+
IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtQcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8
ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJuOworICB9CisgIGFic2w6Om9w
dGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiBwYXJzZWRfdnBzID0gSDI2NVZwc1BhcnNl
cjo6UGFyc2VWcHMoCisgICAgICB2cHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHZwcy5z
aXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisgIGFic2w6Om9wdGlvbmFsPEgyNjVTcHNQYXJz
ZXI6OlNwc1N0YXRlPiBwYXJzZWRfc3BzID0gSDI2NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAg
ICBzcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHNwcy5zaXplKCkgLSBrTmFsdUhlYWRl
ck9mZnNldCk7CisgIGFic2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBwYXJz
ZWRfcHBzID0gSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHMoCisgICAgICBwcHMuZGF0YSgpICsga05h
bHVIZWFkZXJPZmZzZXQsIHBwcy5zaXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisKKyAgaWYg
KCFwYXJzZWRfdnBzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBh
cnNlIFZQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfc3BzKSB7CisgICAgUlRDX0xPRyhMU19X
QVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFNQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRf
cHBzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFBQUy4i
OworICB9CisKKyAgaWYgKCFwYXJzZWRfdnBzIHx8ICFwYXJzZWRfcHBzIHx8ICFwYXJzZWRfc3Bz
KSB7CisgICAgcmV0dXJuOworICB9CisKKyAgVnBzSW5mbyB2cHNfaW5mbzsKKyAgdnBzX2luZm8u
c2l6ZSA9IHZwcy5zaXplKCk7CisgIHVpbnQ4X3QqIHZwc19kYXRhID0gbmV3IHVpbnQ4X3RbdnBz
X2luZm8uc2l6ZV07CisgIG1lbWNweSh2cHNfZGF0YSwgdnBzLmRhdGEoKSwgdnBzX2luZm8uc2l6
ZSk7CisgIHZwc19pbmZvLmRhdGEucmVzZXQodnBzX2RhdGEpOworICB2cHNfZGF0YV9bcGFyc2Vk
X3Zwcy0+aWRdID0gc3RkOjptb3ZlKHZwc19pbmZvKTsKKworICBTcHNJbmZvIHNwc19pbmZvOwor
ICBzcHNfaW5mby5zaXplID0gc3BzLnNpemUoKTsKKyAgc3BzX2luZm8ud2lkdGggPSBwYXJzZWRf
c3BzLT53aWR0aDsKKyAgc3BzX2luZm8uaGVpZ2h0ID0gcGFyc2VkX3Nwcy0+aGVpZ2h0OworICBz
cHNfaW5mby52cHNfaWQgPSBwYXJzZWRfc3BzLT52cHNfaWQ7CisgIHVpbnQ4X3QqIHNwc19kYXRh
ID0gbmV3IHVpbnQ4X3Rbc3BzX2luZm8uc2l6ZV07CisgIG1lbWNweShzcHNfZGF0YSwgc3BzLmRh
dGEoKSwgc3BzX2luZm8uc2l6ZSk7CisgIHNwc19pbmZvLmRhdGEucmVzZXQoc3BzX2RhdGEpOwor
ICBzcHNfZGF0YV9bcGFyc2VkX3Nwcy0+aWRdID0gc3RkOjptb3ZlKHNwc19pbmZvKTsKKworICBQ
cHNJbmZvIHBwc19pbmZvOworICBwcHNfaW5mby5zaXplID0gcHBzLnNpemUoKTsKKyAgcHBzX2lu
Zm8uc3BzX2lkID0gcGFyc2VkX3Bwcy0+c3BzX2lkOworICB1aW50OF90KiBwcHNfZGF0YSA9IG5l
dyB1aW50OF90W3Bwc19pbmZvLnNpemVdOworICBtZW1jcHkocHBzX2RhdGEsIHBwcy5kYXRhKCks
IHBwc19pbmZvLnNpemUpOworICBwcHNfaW5mby5kYXRhLnJlc2V0KHBwc19kYXRhKTsKKyAgcHBz
X2RhdGFfW3BhcnNlZF9wcHMtPmlkXSA9IHN0ZDo6bW92ZShwcHNfaW5mbyk7CisKKyAgUlRDX0xP
RyhMU19JTkZPKSA8PCAiSW5zZXJ0ZWQgU1BTIGlkICIgPDwgcGFyc2VkX3Nwcy0+aWQgPDwgIiBh
bmQgUFBTIGlkICIKKyAgICAgICAgICAgICAgICAgICA8PCBwYXJzZWRfcHBzLT5pZCA8PCAiIChy
ZWZlcmVuY2luZyBTUFMgIgorICAgICAgICAgICAgICAgICAgIDw8IHBhcnNlZF9wcHMtPnNwc19p
ZCA8PCAiKSI7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB2aWRlb19jb2RpbmcKK30gIC8vIG5hbWVz
cGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5o
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRl
b19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FjNWUyYTAw
MWNiZDIwNmZmMzE3YzJiMDlhZTY4MDZjZmIxMjgwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5n
L2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiAgQ29w
eXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
IEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBp
bnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRo
ZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAq
ICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2Ug
dHJlZS4KKyAqLworCisjaWZuZGVmIE1PRFVMRVNfVklERU9fQ09ESU5HX0gyNjVfVlBTX1NQU19Q
UFNfVFJBQ0tFUl9IXworI2RlZmluZSBNT0RVTEVTX1ZJREVPX0NPRElOR19IMjY1X1ZQU19TUFNf
UFBTX1RSQUNLRVJfSF8KKworI2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8bWFwPgorI2lu
Y2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlICJhcGkvYXJyYXlf
dmlldy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgi
CisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oIgor
I2luY2x1ZGUgInJ0Y19iYXNlL2NvcHlfb25fd3JpdGVfYnVmZmVyLmgiCisKK25hbWVzcGFjZSB3
ZWJydGMgeworCitjbGFzcyBWQ01QYWNrZXQ7CisKK25hbWVzcGFjZSB2aWRlb19jb2Rpbmcgewor
CitjbGFzcyBIMjY1VnBzU3BzUHBzVHJhY2tlciB7CisgcHVibGljOgorICBlbnVtIFBhY2tldEFj
dGlvbiB7IGtJbnNlcnQsIGtEcm9wLCBrUmVxdWVzdEtleWZyYW1lIH07CisgIHN0cnVjdCBGaXhl
ZEJpdHN0cmVhbSB7CisgICAgUGFja2V0QWN0aW9uIGFjdGlvbjsKKyAgICBydGM6OkNvcHlPbldy
aXRlQnVmZmVyIGJpdHN0cmVhbTsKKyAgfTsKKworICAvLyBSZXR1cm5zIGZpeGVkIGJpdHN0cmVh
bSBhbmQgbW9kaWZpZXMgfHZpZGVvX2hlYWRlcnwuCisgIEZpeGVkQml0c3RyZWFtIENvcHlBbmRG
aXhCaXRzdHJlYW0ocnRjOjpBcnJheVZpZXc8Y29uc3QgdWludDhfdD4gYml0c3RyZWFtLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyKiB2aWRlb19o
ZWFkZXIpOworCisgIHZvaWQgSW5zZXJ0VnBzU3BzUHBzTmFsdXMoY29uc3Qgc3RkOjp2ZWN0b3I8
dWludDhfdD4mIHZwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZl
Y3Rvcjx1aW50OF90PiYgc3BzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0
ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBwcHMpOworCisgcHJpdmF0ZToKKyAgc3RydWN0IFZwc0luZm8g
eworICAgIHNpemVfdCBzaXplID0gMDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBk
YXRhOworICB9OworCisgIHN0cnVjdCBQcHNJbmZvIHsKKyAgICBpbnQgc3BzX2lkID0gLTE7Cisg
ICAgc2l6ZV90IHNpemUgPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGRhdGE7
CisgIH07CisKKyAgc3RydWN0IFNwc0luZm8geworICAgIGludCB2cHNfaWQgPSAtMTsKKyAgICBz
aXplX3Qgc2l6ZSA9IDA7CisgICAgaW50IHdpZHRoID0gLTE7CisgICAgaW50IGhlaWdodCA9IC0x
OworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGRhdGE7CisgIH07CisKKyAgc3RkOjpt
YXA8dWludDMyX3QsIFZwc0luZm8+IHZwc19kYXRhXzsKKyAgc3RkOjptYXA8dWludDMyX3QsIFBw
c0luZm8+IHBwc19kYXRhXzsKKyAgc3RkOjptYXA8dWludDMyX3QsIFNwc0luZm8+IHNwc19kYXRh
XzsKK307CisKK30gIC8vIG5hbWVzcGFjZSB2aWRlb19jb2RpbmcKK30gIC8vIG5hbWVzcGFjZSB3
ZWJydGMKKworI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVPX0NPRElOR19IMjY0X1NQU19QUFNfVFJB
Q0tFUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2Uu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlk
ZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNlLmgKaW5kZXggYzdiMTE2ZjRh
ZTNmNzBhZGRiODdmMGE4NDJhZWIzZTI4MWQyODU0Ny4uMGNiYThmMzhhY2IzNzNhNTFhYjE3ZDcz
ZTFiZTVmNTc5ZTRiZDUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRlb19jb2RlY19p
bnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oCkBA
IC0yMCw2ICsyMCw5IEBACiAjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2dlbmVyaWNfZnJhbWVfZGVz
Y3JpcHRvci9nZW5lcmljX2ZyYW1lX2luZm8uaCIKICNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUv
bW9kdWxlX2NvbW1vbl90eXBlcy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2Nv
ZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQor
I2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9n
bG9iYWxzLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3Mv
dnA5L2luY2x1ZGUvdnA5X2dsb2JhbHMuaCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGlu
Zy9pbmNsdWRlL3ZpZGVvX2Vycm9yX2NvZGVzLmgiCiAjaW5jbHVkZSAicnRjX2Jhc2Uvc3lzdGVt
L3J0Y19leHBvcnQuaCIKQEAgLTkyLDEwICs5NSwxOCBAQCBzdHJ1Y3QgQ29kZWNTcGVjaWZpY0lu
Zm9IMjY0IHsKIH07CiBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9kPENvZGVjU3BlY2lmaWNJbmZv
SDI2ND46OnZhbHVlLCAiIik7CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitzdHJ1Y3QgQ29kZWNT
cGVjaWZpY0luZm9IMjY1IHsKKyAgSDI2NVBhY2tldGl6YXRpb25Nb2RlIHBhY2tldGl6YXRpb25f
bW9kZTsKKyAgYm9vbCBpZHJfZnJhbWU7Cit9OworI2VuZGlmCisKIHVuaW9uIENvZGVjU3BlY2lm
aWNJbmZvVW5pb24gewogICBDb2RlY1NwZWNpZmljSW5mb1ZQOCBWUDg7CiAgIENvZGVjU3BlY2lm
aWNJbmZvVlA5IFZQOTsKICAgQ29kZWNTcGVjaWZpY0luZm9IMjY0IEgyNjQ7CisgIENvZGVjU3Bl
Y2lmaWNJbmZvSDI2NSBIMjY1OwogfTsKIHN0YXRpY19hc3NlcnQoc3RkOjppc19wb2Q8Q29kZWNT
cGVjaWZpY0luZm9Vbmlvbj46OnZhbHVlLCAiIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRl
cl9idWZmZXJfY29tbW9uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9qaXR0ZXJfYnVmZmVyX2NvbW1vbi5oCmluZGV4IDZj
Y2ZlMzkxOTk1NGY4ZDA5YmI1MzdlNGFkOTE3NjFlZmE1MWEwOWYuLjU0OTJlZTViNDFmMzYwZTdj
NWJjNTExMDYwNDM3ZWJkZWY5MjNjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJf
Y29tbW9uLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
bW9kdWxlcy92aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaApAQCAtNTQsNiArNTQs
OSBAQCBlbnVtIFZDTUZyYW1lQnVmZmVyU3RhdGVFbnVtIHsKIH07CiAKIGVudW0geyBrSDI2NFN0
YXJ0Q29kZUxlbmd0aEJ5dGVzID0gNCB9OworI2lmbmRlZiBESVNBQkxFX0gyNjUKK2VudW0geyBr
SDI2NVN0YXJ0Q29kZUxlbmd0aEJ5dGVzID0gNCB9OworI2VuZGlmCiB9ICAvLyBuYW1lc3BhY2Ug
d2VicnRjCiAKICNlbmRpZiAgLy8gTU9EVUxFU19WSURFT19DT0RJTkdfSklUVEVSX0JVRkZFUl9D
T01NT05fSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYwpp
bmRleCAwYzRhNjU4YjhmMjAzNDkxNmMxODUzNDZlNGI4MTQyMmNjZmU4ZjhmLi4xZjlmNGI1MjQ2
ZWQ1YTQ3MTE0NWZkZjNiYTQ4ZTVjMTQzYTA0ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy92aWRlb19jb2RpbmcvcGFja2V0LmNjCkBAIC00NCw4ICs0NCwxMyBAQCBWQ01QYWNrZXQ6OlZD
TVBhY2tldChjb25zdCB1aW50OF90KiBwdHIsCiAgICAgICBtYXJrZXJCaXQocnRwX2hlYWRlci5t
YXJrZXJCaXQpLAogICAgICAgdGltZXNOYWNrZWQoLTEpLAogICAgICAgY29tcGxldGVOQUxVKGtO
YWx1SW5jb21wbGV0ZSksCi0gICAgICBpbnNlcnRTdGFydENvZGUodmlkZW9IZWFkZXIuY29kZWMg
PT0ga1ZpZGVvQ29kZWNIMjY0ICYmCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaW5zZXJ0
U3RhcnRDb2RlKCh2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQgfHwgdmlkZW9I
ZWFkZXIuY29kZWMgPT0ga1ZpZGVvQ29kZWNIMjY1KSAmJgogICAgICAgICAgICAgICAgICAgICAg
IHZpZGVvSGVhZGVyLmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSksCisjZWxzZQorICAgICAgIGlu
c2VydFN0YXJ0Q29kZSh2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQgJiYKKyAg
ICAgICAgICAgICAgICAgICAgICAgdmlkZW9IZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1l
KSwKKyNlbmRpZgogICAgICAgdmlkZW9faGVhZGVyKHZpZGVvSGVhZGVyKSwKICAgICAgIHBhY2tl
dF9pbmZvKHJ0cF9oZWFkZXIsIHJlY2VpdmVfdGltZV9tcykgewogICBpZiAoaXNfZmlyc3RfcGFj
a2V0X2luX2ZyYW1lKCkgJiYgbWFya2VyQml0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRf
YnVmZmVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy92aWRlb19jb2RpbmcvcGFja2V0X2J1ZmZlci5jYwppbmRleCA0ZGU2MjdlZTYzMzQxZTMw
Mzk4M2ViYjVkYWE4ODZhYWQ2OGIzMDg2Li41NTE0MTQxYTRjMGNlYjU4OTdjNWM3MjQ4NjZjZDA5
N2RhNjlkMDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5n
L3BhY2tldF9idWZmZXIuY2MKQEAgLTI0LDExICsyNCwxNyBAQAogI2luY2x1ZGUgImFwaS92aWRl
by9lbmNvZGVkX2ZyYW1lLmgiCiAjaW5jbHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX2ZyYW1lX3R5cGUu
aCIKICNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NC9oMjY0X2NvbW1vbi5oIgorI2lmbmRlZiBE
SVNBQkxFX0gyNjUKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgor
I2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2hlYWRlcl9leHRl
bnNpb25zLmgiCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3BhY2tldF9y
ZWNlaXZlZC5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19o
ZWFkZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVw
YWNrZXRpemVyX2F2MS5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9o
MjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxz
LmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9mcmFtZV9vYmplY3Qu
aCIKICNpbmNsdWRlICJydGNfYmFzZS9jaGVja3MuaCIKICNpbmNsdWRlICJydGNfYmFzZS9sb2dn
aW5nLmgiCkBAIC0yODksMTIgKzI5NSwyMCBAQCBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8
UnRwRnJhbWVPYmplY3Q+PiBQYWNrZXRCdWZmZXI6OkZpbmRGcmFtZXMoCiAgICAgICBib29sIGhh
c19oMjY0X3BwcyA9IGZhbHNlOwogICAgICAgYm9vbCBoYXNfaDI2NF9pZHIgPSBmYWxzZTsKICAg
ICAgIGJvb2wgaXNfaDI2NF9rZXlmcmFtZSA9IGZhbHNlOworICAgICAgYm9vbCBpc19oMjY1ID0g
ZmFsc2U7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaXNfaDI2NSA9IGJ1ZmZlcl9bc3Rh
cnRfaW5kZXhdLnBhY2tldC0+Y29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjU7CisgICAgICBib29s
IGhhc19oMjY1X3NwcyA9IGZhbHNlOworICAgICAgYm9vbCBoYXNfaDI2NV9wcHMgPSBmYWxzZTsK
KyAgICAgIGJvb2wgaGFzX2gyNjVfaWRyID0gZmFsc2U7CisgICAgICBib29sIGlzX2gyNjVfa2V5
ZnJhbWUgPSBmYWxzZTsKKyNlbmRpZgogICAgICAgaW50IGlkcl93aWR0aCA9IC0xOwogICAgICAg
aW50IGlkcl9oZWlnaHQgPSAtMTsKICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICsrdGVz
dGVkX3BhY2tldHM7CiAKLSAgICAgICAgaWYgKCFpc19oMjY0ICYmIGJ1ZmZlcl9bc3RhcnRfaW5k
ZXhdLmZyYW1lX2JlZ2luKCkpCisgICAgICAgIGlmICghaXNfaDI2NCAmJiAhaXNfaDI2NSAmJiBi
dWZmZXJfW3N0YXJ0X2luZGV4XS5mcmFtZV9iZWdpbigpKQogICAgICAgICAgIGJyZWFrOwogCiAg
ICAgICAgIGlmIChpc19oMjY0KSB7CkBAIC0zMjcsNyArMzQxLDI4IEBAIHN0ZDo6dmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygK
ICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAgICAgICAgIH0KLQorI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyAgICAgICAgaWYgKGlzX2gyNjUgJiYgIWlzX2gyNjVfa2V5ZnJhbWUpIHsKKyAgICAg
ICAgICBjb25zdCBhdXRvKiBoMjY1X2hlYWRlciA9IGFic2w6OmdldF9pZjxSVFBWaWRlb0hlYWRl
ckgyNjU+KAorICAgICAgICAgICAgICAmYnVmZmVyX1tzdGFydF9pbmRleF0ucGFja2V0LT52aWRl
b19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOworICAgICAgICAgIGlmICghaDI2NV9oZWFkZXIg
fHwgaDI2NV9oZWFkZXItPm5hbHVzX2xlbmd0aCA+PSBrTWF4TmFsdXNQZXJQYWNrZXQpCisgICAg
ICAgICAgICByZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAw
OyBqIDwgaDI2NV9oZWFkZXItPm5hbHVzX2xlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBpZiAo
aDI2NV9oZWFkZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAg
ICAgICAgICAgICAgaGFzX2gyNjVfc3BzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
aDI2NV9oZWFkZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtQcHMpIHsKKyAg
ICAgICAgICAgICAgaGFzX2gyNjVfcHBzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
aDI2NV9oZWFkZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJXUmFkbAor
ICAgICAgICAgICAgICAgICAgICAgICB8fCBoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBI
MjY1OjpOYWx1VHlwZTo6a0lkck5McAorICAgICAgICAgICAgICAgICAgICAgICB8fCBoMjY1X2hl
YWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0NyYSkgeworICAgICAgICAg
ICAgICBoYXNfaDI2NV9pZHIgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAg
ICAgICAgICBpZiAoKGhhc19oMjY1X3NwcyAmJiBoYXNfaDI2NV9wcHMpIHx8IGhhc19oMjY1X2lk
cikgeworICAgICAgICAgICAgaXNfaDI2NV9rZXlmcmFtZSA9IHRydWU7CisgICAgICAgICAgfQor
ICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKHRlc3RlZF9wYWNrZXRzID09IGJ1ZmZlcl8u
c2l6ZSgpKQogICAgICAgICAgIGJyZWFrOwogCkBAIC0zMzksNyArMzc0LDcgQEAgc3RkOjp2ZWN0
b3I8c3RkOjp1bmlxdWVfcHRyPFJ0cEZyYW1lT2JqZWN0Pj4gUGFja2V0QnVmZmVyOjpGaW5kRnJh
bWVzKAogICAgICAgICAvLyB0aGUgdGltZXN0YW1wIG9mIHRoYXQgcGFja2V0IGlzIHRoZSBzYW1l
IGFzIHRoaXMgb25lLiBUaGlzIG1heSBjYXVzZQogICAgICAgICAvLyB0aGUgUGFja2V0QnVmZmVy
IHRvIGhhbmQgb3V0IGluY29tcGxldGUgZnJhbWVzLgogICAgICAgICAvLyBTZWU6IGh0dHBzOi8v
YnVncy5jaHJvbWl1bS5vcmcvcC93ZWJydGMvaXNzdWVzL2RldGFpbD9pZD03MTA2Ci0gICAgICAg
IGlmIChpc19oMjY0ICYmCisgICAgICAgIGlmICgoaXNfaDI2NCB8fCBpc19oMjY1KSAmJgogICAg
ICAgICAgICAgKCFidWZmZXJfW3N0YXJ0X2luZGV4XS51c2VkKCkgfHwKICAgICAgICAgICAgICBi
dWZmZXJfW3N0YXJ0X2luZGV4XS5wYWNrZXQtPnRpbWVzdGFtcCAhPSBmcmFtZV90aW1lc3RhbXAp
KSB7CiAgICAgICAgICAgYnJlYWs7CkBAIC0zOTMsNiArNDI4LDQ1IEBAIHN0ZDo6dmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygK
ICAgICAgICAgfQogICAgICAgfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaWYgKGlz
X2gyNjUpIHsKKyAgICAgICAgLy8gV2FybiBpZiB0aGlzIGlzIGFuIHVuc2FmZSBmcmFtZS4KKyAg
ICAgICAgaWYgKGhhc19oMjY1X2lkciAmJiAoIWhhc19oMjY1X3NwcyB8fCAhaGFzX2gyNjVfcHBz
KSkgeworICAgICAgICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOworICAgICAgICAgIHNzIDw8ICJS
ZWNlaXZlZCBILjI2NS1JRFIgZnJhbWUgIgorICAgICAgICAgICAgIDw8ICIoU1BTOiAiIDw8IGhh
c19oMjY1X3NwcyA8PCAiLCBQUFM6ICIgPDwgaGFzX2gyNjVfcHBzIDw8ICIpLiAiOworICAgICAg
ICAgIHNzIDw8ICJUcmVhdGluZyBhcyBkZWx0YSBmcmFtZSBzaW5jZSAiCisgICAgICAgICAgICAg
ICAgIldlYlJUQy1TcHNQcHNJZHJJc0gyNjVLZXlmcmFtZSBpcyBhbHdheXMgZW5hYmxlZC4iOwor
ICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgc3Muc3RyKCk7CisgICAgICAgIH0KKwor
ICAgICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGRlY2lkZWQgd2hldGhlciB0byB0cmVhdCB0aGlz
IGZyYW1lIGFzIGEga2V5IGZyYW1lCisgICAgICAgIC8vIG9yIGRlbHRhIGZyYW1lIGluIHRoZSBm
cmFtZSBidWZmZXIsIHdlIHVwZGF0ZSB0aGUgZmllbGQgdGhhdAorICAgICAgICAvLyBkZXRlcm1p
bmVzIGlmIHRoZSBSdHBGcmFtZU9iamVjdCBpcyBhIGtleSBmcmFtZSBvciBkZWx0YSBmcmFtZS4K
KyAgICAgICAgY29uc3Qgc2l6ZV90IGZpcnN0X3BhY2tldF9pbmRleCA9IHN0YXJ0X3NlcV9udW0g
JSBidWZmZXJfLnNpemUoKTsKKyAgICAgICAgUlRDX0NIRUNLX0xUKGZpcnN0X3BhY2tldF9pbmRl
eCwgYnVmZmVyXy5zaXplKCkpOworICAgICAgICBpZiAoaXNfaDI2NV9rZXlmcmFtZSkgeworICAg
ICAgICAgIGJ1ZmZlcl9bZmlyc3RfcGFja2V0X2luZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci5m
cmFtZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgIGJ1ZmZlcl9bZmlyc3RfcGFja2V0X2luZGV4XS5wYWNrZXQtPnZpZGVv
X2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lRGVsdGE7Cisg
ICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGlzIGlzIG5vdCBhIGtleSBmcmFtZSwgbWFrZSBz
dXJlIHRoZXJlIGFyZSBubyBnYXBzIGluIHRoZQorICAgICAgICAvLyBwYWNrZXQgc2VxdWVuY2Ug
bnVtYmVycyB1cCB1bnRpbCB0aGlzIHBvaW50LgorICAgICAgICBpZiAoIWlzX2gyNjVfa2V5ZnJh
bWUgJiYgbWlzc2luZ19wYWNrZXRzXy51cHBlcl9ib3VuZChzdGFydF9zZXFfbnVtKSAhPQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc3NpbmdfcGFja2V0c18uYmVnaW4o
KSkgeworICAgICAgICAgIHVpbnQxNl90IHN0b3BfaW5kZXggPSAoaW5kZXggKyAxKSAlIGJ1ZmZl
cl8uc2l6ZSgpOworICAgICAgICAgIHdoaWxlIChzdGFydF9pbmRleCAhPSBzdG9wX2luZGV4KSB7
CisgICAgICAgICAgICAvLyBGSVhNRTogZmluZCB3aGF0IGl0IGRvZXMuCisgICAgICAgICAgICAv
L3NlcXVlbmNlX2J1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1lX2NyZWF0ZWQgPSBmYWxzZTsKKyAg
ICAgICAgICAgIHN0YXJ0X2luZGV4ID0gKHN0YXJ0X2luZGV4ICsgMSkgJSBidWZmZXJfLnNpemUo
KTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICByZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAg
ICB9CisgICAgICB9CisjZW5kaWYKKwogICAgICAgaWYgKGF1dG8gZnJhbWUgPSBBc3NlbWJsZUZy
YW1lKHN0YXJ0X3NlcV9udW0sIHNlcV9udW0pKSB7CiAgICAgICAgIGZvdW5kX2ZyYW1lcy5wdXNo
X2JhY2soc3RkOjptb3ZlKGZyYW1lKSk7CiAgICAgICB9IGVsc2UgewpAQCAtNDAwLDYgKzQ3NCw3
IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1
ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgc3RhcnRfc2Vx
X251bSA8PCAiLSIgPDwgc2VxX251bTsKICAgICAgIH0KIAorCiAgICAgICBtaXNzaW5nX3BhY2tl
dHNfLmVyYXNlKG1pc3NpbmdfcGFja2V0c18uYmVnaW4oKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWlzc2luZ19wYWNrZXRzXy51cHBlcl9ib3VuZChzZXFfbnVtKSk7CiAgICAgICBD
bGVhckludGVydmFsKHN0YXJ0X3NlcV9udW0sIHNlcV9udW0pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcv
c2Vzc2lvbl9pbmZvLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNjCmluZGV4IGU1MWQyOTM2MDc3
ZDBkMDhlNzUxNTNmOGUzYmE0Yjg3N2M0NTFjMzMuLjZkZjk4Njk5YjBjMjYyYzZlOWQ3YzFhYWVl
ZWFjNGU5M2Y4Y2I3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Npb25faW5mby5jYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9zZXNzaW9uX2luZm8uY2MKQEAgLTE1Myw2ICsxNTMsMjIgQEAgc3RkOjp2ZWN0b3I8TmFs
dUluZm8+IFZDTVNlc3Npb25JbmZvOjpHZXROYWx1SW5mb3MoKSBjb25zdCB7CiAgIHJldHVybiBu
YWx1X2luZm9zOwogfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorc3RkOjp2ZWN0b3I8SDI2NU5h
bHVJbmZvPiBWQ01TZXNzaW9uSW5mbzo6R2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0IHsKKyAgaWYg
KHBhY2tldHNfLmVtcHR5KCkgfHwgcGFja2V0c18uZnJvbnQoKS52aWRlb19oZWFkZXIuY29kZWMg
IT0ga1ZpZGVvQ29kZWNIMjY1KQorICAgIHJldHVybiBzdGQ6OnZlY3RvcjxIMjY1TmFsdUluZm8+
KCk7CisgIHN0ZDo6dmVjdG9yPEgyNjVOYWx1SW5mbz4gbmFsdV9pbmZvczsKKyAgZm9yIChjb25z
dCBWQ01QYWNrZXQmIHBhY2tldCA6IHBhY2tldHNfKSB7CisgICAgY29uc3QgYXV0byYgaDI2NSA9
CisgICAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlckgyNjU+KHBhY2tldC52aWRlb19oZWFk
ZXIudmlkZW9fdHlwZV9oZWFkZXIpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaDI2NS5u
YWx1c19sZW5ndGg7ICsraSkgeworICAgICAgbmFsdV9pbmZvcy5wdXNoX2JhY2soaDI2NS5uYWx1
c1tpXSk7CisgICAgfQorICB9CisgIHJldHVybiBuYWx1X2luZm9zOworfQorI2VuZGlmCisKIHZv
aWQgVkNNU2Vzc2lvbkluZm86OlNldEdvZkluZm8oY29uc3QgR29mSW5mb1ZQOSYgZ29mX2luZm8s
IHNpemVfdCBpZHgpIHsKICAgaWYgKHBhY2tldHNfLmVtcHR5KCkpCiAgICAgcmV0dXJuOwpAQCAt
MjExLDYgKzIyNywxMSBAQCBzaXplX3QgVkNNU2Vzc2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50
OF90KiBmcmFtZV9idWZmZXIsCiAgIC8vIFRPRE8ocGJvcyk6IFJlbW92ZSBIMjY0IHBhcnNpbmcg
ZnJvbSB0aGlzIHN0ZXAgYW5kIHVzZSBhIGZyYWdtZW50YXRpb24KICAgLy8gaGVhZGVyIHN1cHBs
aWVkIGJ5IHRoZSBIMjY0IGRlcGFja2V0aXplci4KICAgY29uc3Qgc2l6ZV90IGtIMjY0TkFMSGVh
ZGVyTGVuZ3RoSW5CeXRlcyA9IDE7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBjb25zdCBzaXpl
X3Qga0gyNjVOQUxIZWFkZXJMZW5ndGhJbkJ5dGVzID0gMjsKKyAgY29uc3QgYXV0byogaDI2NSA9
CisgICAgICBhYnNsOjpnZXRfaWY8UlRQVmlkZW9IZWFkZXJIMjY1PigmcGFja2V0LnZpZGVvX2hl
YWRlci52aWRlb190eXBlX2hlYWRlcik7CisjZW5kaWYKICAgY29uc3Qgc2l6ZV90IGtMZW5ndGhG
aWVsZExlbmd0aCA9IDI7CiAgIGNvbnN0IGF1dG8qIGgyNjQgPQogICAgICAgYWJzbDo6Z2V0X2lm
PFJUUFZpZGVvSGVhZGVySDI2ND4oJnBhY2tldC52aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFk
ZXIpOwpAQCAtMjM2LDYgKzI1NywzNiBAQCBzaXplX3QgVkNNU2Vzc2lvbkluZm86Okluc2VydEJ1
ZmZlcih1aW50OF90KiBmcmFtZV9idWZmZXIsCiAgICAgcGFja2V0LnNpemVCeXRlcyA9IHJlcXVp
cmVkX2xlbmd0aDsKICAgICByZXR1cm4gcGFja2V0LnNpemVCeXRlczsKICAgfQorI2lmbmRlZiBE
SVNBQkxFX0gyNjUKKyAgZWxzZSBpZiAoaDI2NSAmJiBoMjY1LT5wYWNrZXRpemF0aW9uX3R5cGUg
PT0ga0gyNjVBUCkgeworICAgIC8vIFNpbWlsYXIgdG8gSDI2NCwgZm9yIEgyNjUgYWdncmVnYXRp
b24gcGFja2V0cywgd2UgcmVseSBvbiBqaXR0ZXIgYnVmZmVyCisgICAgLy8gdG8gcmVtb3ZlIHRo
ZSB0d28gbGVuZ3RoIGJ5dGVzIGJldHdlZW4gZWFjaCBOQUwgdW5pdCwgYW5kIHBvdGVudGlhbGx5
IGFkZAorICAgIC8vIHN0YXJ0IGNvZGVzLgorICAgIHNpemVfdCByZXF1aXJlZF9sZW5ndGggPSAw
OworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfcHRyID0KKyAgICAgICAgcGFja2V0X2J1ZmZlciAr
IGtIMjY1TkFMSGVhZGVyTGVuZ3RoSW5CeXRlczsgIC8vIHNraXAgcGF5bG9hZGhkcgorICAgIHdo
aWxlIChuYWx1X3B0ciA8IHBhY2tldF9idWZmZXIgKyBwYWNrZXQuc2l6ZUJ5dGVzKSB7CisgICAg
ICBzaXplX3QgbGVuZ3RoID0gQnVmZmVyVG9VV29yZDE2KG5hbHVfcHRyKTsKKyAgICAgIHJlcXVp
cmVkX2xlbmd0aCArPQorICAgICAgICAgIGxlbmd0aCArIChwYWNrZXQuaW5zZXJ0U3RhcnRDb2Rl
ID8ga0gyNjVTdGFydENvZGVMZW5ndGhCeXRlcyA6IDApOworICAgICAgbmFsdV9wdHIgKz0ga0xl
bmd0aEZpZWxkTGVuZ3RoICsgbGVuZ3RoOworICAgIH0KKyAgICBTaGlmdFN1YnNlcXVlbnRQYWNr
ZXRzKHBhY2tldF9pdCwgcmVxdWlyZWRfbGVuZ3RoKTsKKyAgICBuYWx1X3B0ciA9IHBhY2tldF9i
dWZmZXIgKyBrSDI2NU5BTEhlYWRlckxlbmd0aEluQnl0ZXM7CisgICAgdWludDhfdCogZnJhbWVf
YnVmZmVyX3B0ciA9IGZyYW1lX2J1ZmZlciArIG9mZnNldDsKKyAgICB3aGlsZSAobmFsdV9wdHIg
PCBwYWNrZXRfYnVmZmVyICsgcGFja2V0LnNpemVCeXRlcykgeworICAgICAgc2l6ZV90IGxlbmd0
aCA9IEJ1ZmZlclRvVVdvcmQxNihuYWx1X3B0cik7CisgICAgICBuYWx1X3B0ciArPSBrTGVuZ3Ro
RmllbGRMZW5ndGg7CisgICAgICAvLyBzaW5jZSBIMjY1IHNoYXJlcyB0aGUgc2FtZSBzdGFydCBj
b2RlIGFzIEgyNjQsIHVzZSB0aGUgc2FtZSBJbnNlcnQKKyAgICAgIC8vIGZ1bmN0aW9uIHRvIGhh
bmRsZSBzdGFydCBjb2RlLgorICAgICAgZnJhbWVfYnVmZmVyX3B0ciArPSBJbnNlcnQobmFsdV9w
dHIsIGxlbmd0aCwgcGFja2V0Lmluc2VydFN0YXJ0Q29kZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8dWludDhfdCo+KGZyYW1lX2J1ZmZlcl9wdHIpKTsKKyAg
ICAgIG5hbHVfcHRyICs9IGxlbmd0aDsKKyAgICB9CisgICAgcGFja2V0LnNpemVCeXRlcyA9IHJl
cXVpcmVkX2xlbmd0aDsKKyAgICByZXR1cm4gcGFja2V0LnNpemVCeXRlczsKKyAgfQorI2VuZGlm
CiAgIFNoaWZ0U3Vic2VxdWVudFBhY2tldHMoCiAgICAgICBwYWNrZXRfaXQsIHBhY2tldC5zaXpl
Qnl0ZXMgKwogICAgICAgICAgICAgICAgICAgICAgKHBhY2tldC5pbnNlcnRTdGFydENvZGUgPyBr
SDI2NFN0YXJ0Q29kZUxlbmd0aEJ5dGVzIDogMCkpOwpAQCAtNDYyLDcgKzUxMywyMiBAQCBpbnQg
VkNNU2Vzc2lvbkluZm86Okluc2VydFBhY2tldChjb25zdCBWQ01QYWNrZXQmIHBhY2tldCwKICAg
ICAgICAgIElzTmV3ZXJTZXF1ZW5jZU51bWJlcihwYWNrZXQuc2VxTnVtLCBsYXN0X3BhY2tldF9z
ZXFfbnVtXykpKSB7CiAgICAgICBsYXN0X3BhY2tldF9zZXFfbnVtXyA9IHBhY2tldC5zZXFOdW07
CiAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgfSBlbHNlIGlmIChwYWNrZXQuY29kZWMo
KSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICBmcmFtZV90eXBlXyA9IHBhY2tldC52aWRlb19o
ZWFkZXIuZnJhbWVfdHlwZTsKKyAgICBpZiAocGFja2V0LmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFt
ZSgpICYmCisgICAgICAgIChmaXJzdF9wYWNrZXRfc2VxX251bV8gPT0gLTEgfHwKKyAgICAgICAg
IElzTmV3ZXJTZXF1ZW5jZU51bWJlcihmaXJzdF9wYWNrZXRfc2VxX251bV8sIHBhY2tldC5zZXFO
dW0pKSkgeworICAgICAgZmlyc3RfcGFja2V0X3NlcV9udW1fID0gcGFja2V0LnNlcU51bTsKKyAg
ICB9CisgICAgaWYgKHBhY2tldC5tYXJrZXJCaXQgJiYKKyAgICAgICAgKGxhc3RfcGFja2V0X3Nl
cV9udW1fID09IC0xIHx8CisgICAgICAgICBJc05ld2VyU2VxdWVuY2VOdW1iZXIocGFja2V0LnNl
cU51bSwgbGFzdF9wYWNrZXRfc2VxX251bV8pKSkgeworICAgICAgbGFzdF9wYWNrZXRfc2VxX251
bV8gPSBwYWNrZXQuc2VxTnVtOworICAgIH0KKyNlbHNlCiAgIH0gZWxzZSB7CisjZW5kaWYKICAg
ICAvLyBPbmx5IGluc2VydCBtZWRpYSBwYWNrZXRzIGJldHdlZW4gZmlyc3QgYW5kIGxhc3QgcGFj
a2V0cyAod2hlbgogICAgIC8vIGF2YWlsYWJsZSkuCiAgICAgLy8gUGxhY2luZyBjaGVjayBoZXJl
LCBhcyB0byBwcm9wZXJseSBhY2NvdW50IGZvciBkdXBsaWNhdGUgcGFja2V0cy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlk
ZW9fY29kaW5nL3Nlc3Npb25faW5mby5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKaW5kZXggMDZh
MzQ4ZWY3MjM1NDc3MWIyODM4NWY5ZDZmMjQ1YmE5MGE3MWNkOS4uMDFlYTdiZDI5Nzc3MjdmZDc2
NzYxNDJkNGIxNzNhNWM5ZDY5MjlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKQEAgLTY1LDcgKzY1LDkgQEAgY2xhc3MgVkNNU2Vz
c2lvbkluZm8gewogICBpbnQgVGwwUGljSWQoKSBjb25zdDsKIAogICBzdGQ6OnZlY3RvcjxOYWx1
SW5mbz4gR2V0TmFsdUluZm9zKCkgY29uc3Q7Ci0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0
ZDo6dmVjdG9yPEgyNjVOYWx1SW5mbz4gR2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0OworI2VuZGlm
CiAgIHZvaWQgU2V0R29mSW5mbyhjb25zdCBHb2ZJbmZvVlA5JiBnb2ZfaW5mbywgc2l6ZV90IGlk
eCk7CiAKICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvZXhwZXJpbWVudHMvbWluX3ZpZGVvX2JpdHJhdGVfZXhw
ZXJpbWVudC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3J0
Y19iYXNlL2V4cGVyaW1lbnRzL21pbl92aWRlb19iaXRyYXRlX2V4cGVyaW1lbnQuY2MKaW5kZXgg
MTE0NTBkMDg0OTIxYzY3NDkyNTZhNDRjNmRjNjZhYTNhZThmZmNmMy4uM2IxM2U4ZTliZmVkOTJi
ZTBmMzg5MWVkZWI5MDgxY2ZiOGM2MTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvZXhwZXJpbWVudHMvbWluX3ZpZGVvX2Jp
dHJhdGVfZXhwZXJpbWVudC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9ydGNfYmFzZS9leHBlcmltZW50cy9taW5fdmlkZW9fYml0cmF0ZV9leHBlcmlt
ZW50LmNjCkBAIC0xMDAsNiArMTAwLDkgQEAgYWJzbDo6b3B0aW9uYWw8RGF0YVJhdGU+IEdldEV4
cGVyaW1lbnRhbE1pblZpZGVvQml0cmF0ZShWaWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgICAgICAg
IHJldHVybiBtaW5fYml0cmF0ZV9hdjEuR2V0T3B0aW9uYWwoKTsKICAgICAgIGNhc2Uga1ZpZGVv
Q29kZWNIMjY0OgogICAgICAgICByZXR1cm4gbWluX2JpdHJhdGVfaDI2NC5HZXRPcHRpb25hbCgp
OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorI2Vu
ZGlmCiAgICAgICBjYXNlIGtWaWRlb0NvZGVjR2VuZXJpYzoKICAgICAgIGNhc2Uga1ZpZGVvQ29k
ZWNNdWx0aXBsZXg6CiAgICAgICAgIHJldHVybiBhYnNsOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggYWI3Nzk0MmU2OTQ2YmRlMzAwMjk5
MGEzYTI2YTEwMDFlZjYzMDUyNS4uNmYwODA1YjBiYmJlM2QwMzhjNWM0NTZjZTYwYmViZGVhODgw
MTJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC0z
OSw3ICszOSw3IEBAIGNsYXNzIFZpZGVvRGVjb2RlckZhY3Rvcnk7CiBjbGFzcyBWaWRlb0VuY29k
ZXJGYWN0b3J5OwogY2xhc3MgVmlkZW9GcmFtZTsKIAotZW51bSBjbGFzcyBXZWJLaXRDb2RlY1N1
cHBvcnQgeyBIMjY0LCBIMjY0QW5kVlA4IH07CitlbnVtIGNsYXNzIFdlYktpdENvZGVjU3VwcG9y
dCB7IEgyNjRWUDhBbmRIMjY1LCBIMjY0QW5kVlA4IH07CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJy
dGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktp
dENvZGVjU3VwcG9ydCk7CiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0
b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShXZWJLaXRDb2RlY1N1cHBvcnQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXRVdGlsaXRpZXMubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQppbmRleCAxNDAyYzJiZjNh
NDE3MDNhY2I4ZjNkMGYxZjBhNDNhNzlhYTNjYjZlLi42Y2U4NjUzYzM1NDI1NDFhYjgxZWVkYTFi
Y2VmZTgzOGZhYWE1NTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxp
dGllcy5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVv
RW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktpdENvCiAgICAg
fSk7CiAjZW5kaWYKIAotICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlk
ZW9FbmNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQgPT0gV2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0
QW5kVlA4ID8gW1tSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSBhbGxvY10gaW5pdF0gOiBb
W1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0IGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBpbnRl
cm5hbEZhY3RvcnkgPSBPYmpDVG9OYXRpdmVWaWRlb0VuY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVs
dFZpZGVvRW5jb2RlckZhY3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTogY29kZWNTdXBwb3J0ID09
IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NFZQOEFuZEgyNjVdKTsKICAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxWaWRlb0VuY29kZXJGYWN0b3J5V2l0aFNpbXVsY2FzdD4oc3RkOjptb3ZlKGlu
dGVybmFsRmFjdG9yeSkpOwogfQogCkBAIC0yNzEsNyArMjcxLDcgQEAgc3RkOjp1bmlxdWVfcHRy
PFZpZGVvRGVjb2Rlcj4gUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNv
ZGVyKGNvbnMKIAogc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4g
Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9y
dCkKIHsKLSAgICBhdXRvIGludGVybmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2Rl
ckZhY3RvcnkoY29kZWNTdXBwb3J0ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA/
IFtbUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgYWxsb2NdIGluaXRdIDogW1tSVENWaWRl
b0RlY29kZXJGYWN0b3J5SDI2NCBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gaW50ZXJuYWxGYWN0
b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShbW1JUQ0RlZmF1bHRWaWRlb0Rl
Y29kZXJGYWN0b3J5IGFsbG9jXSBpbml0V2l0aEgyNjU6IGNvZGVjU3VwcG9ydCA9PSBXZWJLaXRD
b2RlY1N1cHBvcnQ6OkgyNjRWUDhBbmRIMjY1XSk7CiAgICAgaWYgKHZpZGVvRGVjb2RlckNhbGxi
YWNrcygpLmNyZWF0ZUNhbGxiYWNrKQogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxS
ZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5PihzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7CiAg
ICAgcmV0dXJuIGludGVybmFsRmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjJkMzU5NGY1NTdm
N2I3NWZmNjdmOTQyN2JiNDYxYjBjOWJhNWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjUg
QEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdv
dmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0
aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBh
ZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5k
CisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRo
b3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2Yg
dGhlIHNvdXJjZSB0cmVlLgorICovCisvKiBUaGlzIGZpbGUgaXMgYm9ycm93ZWQgZnJvbSBzZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2
YXRlLmggKi8KKworI2ltcG9ydCAiUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgiCisKKyNpbmNs
dWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5o
IgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCisvKiBJbnRlcmZhY2VzIGZvciBjb252ZXJ0
aW5nIHRvL2Zyb20gaW50ZXJuYWwgQysrIGZvcm1hdHMuICovCitAaW50ZXJmYWNlIFJUQ0NvZGVj
U3BlY2lmaWNJbmZvSDI2NSAoKQorCistICh3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2
ZUNvZGVjU3BlY2lmaWNJbmZvOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORApkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJi
YWUxOWM3YmMzMWI4NDU5Zjc1ZGJkMTE5NDg1OTA0NmJmZTNiOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgKQEAgLTAsMCArMSwy
OSBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFu
IGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91
bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1
dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKy8qIFRoaXMgZmlsZSBpcyBib3Jyb3dlZCBmcm9tIHNk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0Lmgu
ICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaW1wb3J0ICJSVEND
b2RlY1NwZWNpZmljSW5mby5oIgorI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisKKy8qKiBDbGFzcyBm
b3IgSDI2NSBzcGVjaWZpYyBjb25maWcuICovCit0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwg
UlRDSDI2NVBhY2tldGl6YXRpb25Nb2RlKSB7CisgIFJUQ0gyNjVQYWNrZXRpemF0aW9uTW9kZU5v
bkludGVybGVhdmVkID0gMCwgIC8vIE1vZGUgMSAtIFNUQVAtQSwgRlUtQSBpcyBhbGxvd2VkCisg
IFJUQ0gyNjVQYWNrZXRpemF0aW9uTW9kZVNpbmdsZU5hbFVuaXQgICAgICAgIC8vIE1vZGUgMCAt
IG9ubHkgc2luZ2xlIE5BTFUgYWxsb3dlZAorfTsKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJp
YnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Iikp
KQorQGludGVyZmFjZSBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUgOiBOU09iamVjdCA8UlRDQ29k
ZWNTcGVjaWZpY0luZm8+CisKK0Bwcm9wZXJ0eShub25hdG9taWMsIGFzc2lnbikgUlRDSDI2NVBh
Y2tldGl6YXRpb25Nb2RlIHBhY2tldGl6YXRpb25Nb2RlOworCitAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0YTQ2OTg1Zjcy
Nzc0ZDQ1ZTMzNDA1MDhjZDBhNGMwOGZkMWYxZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbQpAQCAtMCwwICsxLDI4IEBACisv
KgorICogIENvcHlyaWdodCAyMDE3IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJ
Q0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRp
b25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICog
IGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBt
YXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBz
b3VyY2UgdHJlZS4KKyAqLworIC8qIFRoaXMgZmlsZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0Lm1tICovCisK
KyNpbXBvcnQgIlJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmgiCisKKy8vIEgyNjUg
c3BlY2lmaWMgc2V0dGluZ3MuCitAaW1wbGVtZW50YXRpb24gUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY1CisKK0BzeW50aGVzaXplIHBhY2tldGl6YXRpb25Nb2RlID0gX3BhY2tldGl6YXRpb25Nb2Rl
OworCistICh3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZv
IHsKKyAgd2VicnRjOjpDb2RlY1NwZWNpZmljSW5mbyBjb2RlY1NwZWNpZmljSW5mbzsKKyAgY29k
ZWNTcGVjaWZpY0luZm8uY29kZWNUeXBlID0gd2VicnRjOjprVmlkZW9Db2RlY0gyNjU7CisgIGNv
ZGVjU3BlY2lmaWNJbmZvLmNvZGVjU3BlY2lmaWMuSDI2NS5wYWNrZXRpemF0aW9uX21vZGUgPQor
ICAgICAgKHdlYnJ0Yzo6SDI2NVBhY2tldGl6YXRpb25Nb2RlKV9wYWNrZXRpemF0aW9uTW9kZTsK
KworICByZXR1cm4gY29kZWNTcGVjaWZpY0luZm87Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaAppbmRleCBkMTE0NjAzMDBk
NTFlZDE2NTVlYjJlNzg5MTlmMGY0ZGRjYzU5OWI3Li5iODM4YTRiOGFlNjk1MDYxN2UxZWVkZTIy
YmM4YzhjNjBmODQ3Nzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRW
aWRlb0RlY29kZXJGYWN0b3J5LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0Vmlk
ZW9EZWNvZGVyRmFjdG9yeS5oCkBAIC0yMSw2ICsyMSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JF
R0lOCiBSVENfT0JKQ19FWFBPUlQKIF9fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJX
S19SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVs
dFZpZGVvRGVjb2RlckZhY3RvcnkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4K
Ky0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0SDI2NTsKIEBlbmQKIAogTlNfQVNTVU1F
X05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRl
b0RlY29kZXJGYWN0b3J5Lm0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29k
ZXJGYWN0b3J5Lm0KaW5kZXggNDQ0NDVmNGIxMzMyMTY2YTY4N2ZhY2JiNGM1MGE4Nzk1NDliMmM3
ZS4uYTQ5NmFlNTQzZTk2NWUzNGNhNzg3Nzc4MzdmMjIzNTM2M2QxOGU0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQpAQCAtMTgsOCAr
MTgsMjMgQEAKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZQOS5oIgogI2VuZGlmCisjaWYgIWRlZmluZWQoUlRDX0RJ
U0FCTEVfSDI2NSkKKyNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgorI2ltcG9ydCAi
UlRDVmlkZW9EZWNvZGVySDI2NS5oIgorI2VuZGlmCisKK0BpbXBsZW1lbnRhdGlvbiBSVENEZWZh
dWx0VmlkZW9EZWNvZGVyRmFjdG9yeSB7CisgIGJvb2wgX3N1cHBvcnRIMjY1OworfQogCi1AaW1w
bGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkKKy0gKGlkKWluaXRXaXRo
SDI2NTooYm9vbClzdXBwb3J0SDI2NQoreworICBzZWxmID0gW3N1cGVyIGluaXRdOworICBpZiAo
c2VsZikgeworICAgICAgX3N1cHBvcnRIMjY1ID0gc3VwcG9ydEgyNjU7CisgIH0KKyAgcmV0dXJu
IHNlbGY7Cit9CiAKIC0gKE5TQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKilzdXBwb3J0ZWRD
b2RlY3MgewogICBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKmNvbnN0cmFp
bmVkSGlnaFBhcmFtcyA9IEB7CkBAIC00MiwxMyArNTcsMzAgQEAgQGltcGxlbWVudGF0aW9uIFJU
Q0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5CiAKICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOElu
Zm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29k
ZWNWcDhOYW1lXTsKIAorI2lmICFkZWZpbmVkKFJUQ19ESVNBQkxFX0gyNjUpCisgIFJUQ1ZpZGVv
Q29kZWNJbmZvICpoMjY1SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRo
TmFtZTprUlRDVmlkZW9Db2RlY0gyNjVOYW1lXTsKKyNlbmRpZgorIAogI2lmIGRlZmluZWQoUlRD
X0VOQUJMRV9WUDkpCiAgIFJUQ1ZpZGVvQ29kZWNJbmZvICp2cDlJbmZvID0gW1tSVENWaWRlb0Nv
ZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZV07CiAjZW5k
aWYKIAorICBpZiAoIV9zdXBwb3J0SDI2NSkgeworICAgIHJldHVybiBAWworICAgICAgY29uc3Ry
YWluZWRIaWdoSW5mbywKKyAgICAgIGNvbnN0cmFpbmVkQmFzZWxpbmVJbmZvLAorICAgICAgdnA4
SW5mbywKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorICAgICAgdnA5SW5mbywKKyNlbmRp
ZgorICAgIF07CisgIH0KICAgcmV0dXJuIEBbCiAgICAgY29uc3RyYWluZWRIaWdoSW5mbywKICAg
ICBjb25zdHJhaW5lZEJhc2VsaW5lSW5mbywKKyNpZiAhZGVmaW5lZChSVENfRElTQUJMRV9IMjY1
KQorICAgIGgyNjVJbmZvLAorI2VuZGlmCiAgICAgdnA4SW5mbywKICNpZiBkZWZpbmVkKFJUQ19F
TkFCTEVfVlA5KQogICAgIHZwOUluZm8sCkBAIC02MSw2ICs5MywxMCBAQCBAaW1wbGVtZW50YXRp
b24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkKICAgICByZXR1cm4gW1tSVENWaWRlb0Rl
Y29kZXJIMjY0IGFsbG9jXSBpbml0XTsKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxU
b1N0cmluZzprUlRDVmlkZW9Db2RlY1ZwOE5hbWVdKSB7CiAgICAgcmV0dXJuIFtSVENWaWRlb0Rl
Y29kZXJWUDggdnA4RGVjb2Rlcl07CisjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKKyAg
fSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY0gyNjVO
YW1lXSkgeworICAgIHJldHVybiBbW1JUQ1ZpZGVvRGVjb2RlckgyNjUgYWxsb2NdIGluaXRdOwor
I2VuZGlmCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICAgfSBlbHNlIGlmIChbaW5mby5u
YW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY1ZwOU5hbWVdKSB7CiAgICAgcmV0dXJu
IFtSVENWaWRlb0RlY29kZXJWUDkgdnA5RGVjb2Rlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmgKaW5kZXggOTMyMzI1NmNlYWRjODM4YzUz
YzgwYTcwZmMwZDBiZTI1NTMzNWZlMy4uYTk5NWRhYWI1NDEwZjAzZGQxYjM3ZjA4OGQzNTE1NTgw
NGQ2NzgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNv
ZGVyRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2Rl
ckZhY3RvcnkuaApAQCAtMjIsOCArMjIsNyBAQCBSVENfT0JKQ19FWFBPUlQKIF9fYXR0cmlidXRl
X18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSIp
KSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkgOiBOU09iamVjdCA8
UlRDVmlkZW9FbmNvZGVyRmFjdG9yeT4KIAotQHByb3BlcnR5KG5vbmF0b21pYywgcmV0YWluKSBS
VENWaWRlb0NvZGVjSW5mbyAqcHJlZmVycmVkQ29kZWM7Ci0KKy0gKGlkKWluaXRXaXRoSDI2NToo
Ym9vbClzdXBwb3J0SDI2NTsKICsgKE5TQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKilzdXBw
b3J0ZWRDb2RlY3M7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVm
YXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZp
ZGVvRW5jb2RlckZhY3RvcnkubQppbmRleCBiNzIyOTZiNjRmMzFiMGVmYjQ1YThiZGRhNjM5YjQ4
MmFmYWRiZGEwLi5kNjg2MDlkNTY0OTMxOGQ4ZTMyMTJjZTQyZWRmOTkyNmRkYjQ4Yzg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2Jq
Yy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0K
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCkBA
IC0xOCwxMCArMTgsMjMgQEAKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAi
YXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlclZQOS5oIgogI2VuZGlmCisjaWYgIWRlZmlu
ZWQoRElTQUJMRV9IMjY1KQorI2ltcG9ydCAiUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgiCisjaW1w
b3J0ICJSVENWaWRlb0VuY29kZXJIMjY1LmgiCisjZW5kaWYKIAotQGltcGxlbWVudGF0aW9uIFJU
Q0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CitAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZp
ZGVvRW5jb2RlckZhY3RvcnkgeworICBib29sIF9zdXBwb3J0SDI2NTsKK30KIAotQHN5bnRoZXNp
emUgcHJlZmVycmVkQ29kZWM7CistIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydEgyNjUK
K3sKKyAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgaWYgKHNlbGYpIHsKKyAgICAgIF9zdXBwb3J0
SDI2NSA9IHN1cHBvcnRIMjY1OworICB9CisgIHJldHVybiBzZWxmOworfQogCiArIChOU0FycmF5
PFJUQ1ZpZGVvQ29kZWNJbmZvICo+ICopc3VwcG9ydGVkQ29kZWNzIHsKICAgTlNEaWN0aW9uYXJ5
PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICpjb25zdHJhaW5lZEhpZ2hQYXJhbXMgPSBAewpAQCAt
NDIsNiArNTUsMTAgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0
b3J5CiAgICAgICBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1Zp
ZGVvQ29kZWNIMjY0TmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJh
bWV0ZXJzOmNvbnN0cmFpbmVkQmFzZWxpbmVQYXJhbXNdOwogCisjaWYgIWRlZmluZWQoRElTQUJM
RV9IMjY1KQorICBSVENWaWRlb0NvZGVjSW5mbyAqaDI2NUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJ
bmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV07CisjZW5kaWYK
KwogICBSVENWaWRlb0NvZGVjSW5mbyAqdnA4SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxs
b2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOE5hbWVdOwogCiAjaWYgZGVmaW5lZChS
VENfRU5BQkxFX1ZQOSkKQEAgLTUxLDYgKzY4LDkgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5CiAgIHJldHVybiBAWwogICAgIGNvbnN0cmFpbmVkSGlnaElu
Zm8sCiAgICAgY29uc3RyYWluZWRCYXNlbGluZUluZm8sCisjaWYgIWRlZmluZWQoRElTQUJMRV9I
MjY1KQorICAgIGgyNjVJbmZvLAorI2VuZGlmCiAgICAgdnA4SW5mbywKICNpZiBkZWZpbmVkKFJU
Q19FTkFCTEVfVlA5KQogICAgIHZwOUluZm8sCkBAIC02Niw2ICs4NiwxMiBAQCBAaW1wbGVtZW50
YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICNpZiBkZWZpbmVkKFJUQ19FTkFC
TEVfVlA5KQogICB9IGVsc2UgaWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRl
b0NvZGVjVnA5TmFtZV0pIHsKICAgICByZXR1cm4gW1JUQ1ZpZGVvRW5jb2RlclZQOSB2cDlFbmNv
ZGVyXTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKERJU0FCTEVfSDI2NSkKKyAgfSBlbHNlIGlmIChA
YXZhaWxhYmxlKGlPUyAxMSwgKikpIHsKKyAgICBpZiAoW2luZm8ubmFtZSBpc0VxdWFsVG9TdHJp
bmc6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV0pIHsKKyAgICAgIHJldHVybiBbW1JUQ1ZpZGVvRW5j
b2RlckgyNjUgYWxsb2NdIGluaXRXaXRoQ29kZWNJbmZvOmluZm9dOworICAgIH0KICNlbmRpZgog
ICB9CiAKQEAgLTc2LDEyICsxMDIsOSBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3RvcnkKICAgTlNNdXRhYmxlQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKmNv
ZGVjcyA9IFtbW3NlbGYgY2xhc3NdIHN1cHBvcnRlZENvZGVjc10gbXV0YWJsZUNvcHldOwogCiAg
IE5TTXV0YWJsZUFycmF5PFJUQ1ZpZGVvQ29kZWNJbmZvICo+ICpvcmRlcmVkQ29kZWNzID0gW05T
TXV0YWJsZUFycmF5IGFycmF5XTsKLSAgTlNVSW50ZWdlciBpbmRleCA9IFtjb2RlY3MgaW5kZXhP
Zk9iamVjdDpzZWxmLnByZWZlcnJlZENvZGVjXTsKLSAgaWYgKGluZGV4ICE9IE5TTm90Rm91bmQp
IHsKLSAgICBbb3JkZXJlZENvZGVjcyBhZGRPYmplY3Q6W2NvZGVjcyBvYmplY3RBdEluZGV4Omlu
ZGV4XV07Ci0gICAgW2NvZGVjcyByZW1vdmVPYmplY3RBdEluZGV4OmluZGV4XTsKLSAgfQogICBb
b3JkZXJlZENvZGVjcyBhZGRPYmplY3RzRnJvbUFycmF5OmNvZGVjc107CisgIGlmICghX3N1cHBv
cnRIMjY1KQorICAgIFtvcmRlcmVkQ29kZWNzIHJlbW92ZU9iamVjdEF0SW5kZXg6MF07CiAKICAg
cmV0dXJuIFtvcmRlcmVkQ29kZWNzIGNvcHldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVBy
b2ZpbGVMZXZlbElkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUzNDg2ZDA2ZDQxMjdlOTc4MzkyOWZlNDBiZWRi
MzNhNWM2N2IyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVBy
b2ZpbGVMZXZlbElkLmgKQEAgLTAsMCArMSwxNiBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBU
aGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAg
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5z
ZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qg
b2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3Bl
cnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAg
QWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhl
IEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2lt
cG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgor
CitSVENfT0JKQ19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICpjb25zdCBrUlRDVmlkZW9Db2RlY0gy
NjVOYW1lOworUlRDX09CSkNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqY29uc3Qga1JUQ0xldmVs
MzFNYWluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVs
SWQubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2Jq
Yy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYWQ0NGUyYTU5MzMyZjc2ZjliYjg1NTE2NDZkY2Q3MzJiOTA1MzI2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW0KQEAgLTAs
MCArMSwxOCBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0
aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNv
ZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZv
dW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRy
ZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4g
YmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9q
ZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUg
cm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgorICovCisKKyNpbXBvcnQgIlJUQ0gyNjVQcm9m
aWxlTGV2ZWxJZC5oIgorCisjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaCIK
KworTlNTdHJpbmcgKmNvbnN0IGtSVENWaWRlb0NvZGVjSDI2NU5hbWUgPSBAIkgyNjUiOworLy8g
VE9ETyhqaWFuanVueik6IFRoaXMgaXMgdmFsdWUgaXMgbm90IGNvcnJlY3QuCitOU1N0cmluZyAq
Y29uc3Qga1JUQ0xldmVsMzFNYWluID0gQCI0ZDAwMWYiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVv
RGVjb2RlckgyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzliMzgyODljMmYxOWJjYWQyZjA0NGEwMDg5Njlh
OTUwZTI3ZTAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0Rl
Y29kZXJIMjY1LmgKQEAgLTAsMCArMSwxOSBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUg
V2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQor
ICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2Yg
dGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5
IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxs
IGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFV
VEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9y
dCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorI2lt
cG9ydCAiUlRDVmlkZW9EZWNvZGVyLmgiCisKK1JUQ19PQkpDX0VYUE9SVAorX19hdHRyaWJ1dGVf
Xygob2JqY19ydW50aW1lX25hbWUoIldLX1JUQ1ZpZGVvRGVjb2RlckgyNjUiKSkpCitAaW50ZXJm
YWNlIFJUQ1ZpZGVvRGVjb2RlckgyNjUgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgorQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3NDlh
N2I2NmY4M2M1NTIyNmU5M2U5MzA0MzU4NzRhMDczMjU4YTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUubW0KQEAgLTAsMCArMSwyNzcgQEAK
Ky8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4g
dGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4g
YWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3Vu
ZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0
aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9m
IHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVySDI2
NS5oIgorCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQg
ImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVy
LmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVm
ZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgiCisjaW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5
cGVyZWYuaCIKKworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyNpbXBvcnQgImhlbHBlcnMvVUlE
ZXZpY2UrUlRDRGV2aWNlLmgiCisjZW5kaWYKKworI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29k
aW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9jaGVj
a3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2Uv
dGltZV91dGlscy5oIgorI2luY2x1ZGUgInNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
bmFsdV9yZXdyaXRlci5oIgorCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRoZSBkZWNvZGVy
IHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGluIHRoZSBkZWNv
ZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyB7CisgIFJUQ0gy
NjVGcmFtZURlY29kZVBhcmFtcyhSVENWaWRlb0RlY29kZXJDYWxsYmFjayBjYiwgaW50NjRfdCB0
cykKKyAgICAgIDogY2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJUQ1ZpZGVvRGVj
b2RlckNhbGxiYWNrIGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307CisKKy8vIFRo
aXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNhbGxzIHdoZW4g
ZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgaDI2NURlY29tcHJlc3Npb25PdXRwdXRDYWxs
YmFjayh2b2lkKiBkZWNvZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZvaWQqIHBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPU1N0
YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlREZWNv
ZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDTVRpbWUgZHVyYXRpb24pIHsKKyAgc3RkOjp1bmlxdWVfcHRyPFJUQ0gy
NjVGcmFtZURlY29kZVBhcmFtcz4gZGVjb2RlUGFyYW1zKAorICAgICAgcmVpbnRlcnByZXRfY2Fz
dDxSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMqPihwYXJhbXMpKTsKKyAgaWYgKHN0YXR1cyAhPSBu
b0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1l
LiBTdGF0dXM6ICIgPDwgc3RhdHVzOworICAgIHJldHVybjsKKyAgfQorICAvLyBUT0RPKHRrY2hp
bik6IEhhbmRsZSBDVk8gcHJvcGVybHkuCisgIFJUQ0NWUGl4ZWxCdWZmZXIqIGZyYW1lQnVmZmVy
ID0KKyAgICAgIFtbUlRDQ1ZQaXhlbEJ1ZmZlciBhbGxvY10gaW5pdFdpdGhQaXhlbEJ1ZmZlcjpp
bWFnZUJ1ZmZlcl07CisgIFJUQ1ZpZGVvRnJhbWUqIGRlY29kZWRGcmFtZSA9IFtbUlRDVmlkZW9G
cmFtZSBhbGxvY10KKyAgICAgIGluaXRXaXRoQnVmZmVyOmZyYW1lQnVmZmVyCisgICAgICAgICAg
ICByb3RhdGlvbjpSVENWaWRlb1JvdGF0aW9uXzAKKyAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGlt
ZUdldFNlY29uZHModGltZXN0YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVj
b2RlZEZyYW1lLnRpbWVTdGFtcCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQ
YXJhbXMtPmNhbGxiYWNrKGRlY29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVt
ZW50YXRpb24gUlRDVmlkZW9EZWNvZGVySDI2NSB7CisgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
blJlZiBfdmlkZW9Gb3JtYXQ7CisgIFZURGVjb21wcmVzc2lvblNlc3Npb25SZWYgX2RlY29tcHJl
c3Npb25TZXNzaW9uOworICBSVENWaWRlb0RlY29kZXJDYWxsYmFjayBfY2FsbGJhY2s7CisgIE9T
U3RhdHVzIF9lcnJvcjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXQgeworICBpZiAoc2VsZiA9
IFtzdXBlciBpbml0XSkgeworICB9CisKKyAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVh
bGxvYyB7CisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgIFtzZWxmIHNl
dFZpZGVvRm9ybWF0Om51bGxwdHJdOworfQorCistIChOU0ludGVnZXIpc3RhcnREZWNvZGVXaXRo
TnVtYmVyT2ZDb3JlczooaW50KW51bWJlck9mQ29yZXMgeworICByZXR1cm4gV0VCUlRDX1ZJREVP
X0NPREVDX09LOworfQorCistIChOU0ludGVnZXIpZGVjb2RlOihSVENFbmNvZGVkSW1hZ2UqKWlu
cHV0SW1hZ2UKKyAgICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3NpbmdGcmFtZXMKKyAg
ICAgIGNvZGVjU3BlY2lmaWNJbmZvOihfX251bGxhYmxlIGlkPFJUQ0NvZGVjU3BlY2lmaWNJbmZv
PilpbmZvCisgICAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMgewor
ICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKworICBpZiAoX2Vycm9yICE9IG5vRXJy
KSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiTGFzdCBmcmFtZSBkZWNvZGUgZmFpbGVk
LiI7CisgICAgX2Vycm9yID0gbm9FcnI7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19F
UlJPUjsKKyAgfQorCisgIHJ0Yzo6U2NvcGVkQ0ZUeXBlUmVmPENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvblJlZj4gaW5wdXRGb3JtYXQgPQorICAgICAgcnRjOjpTY29wZWRDRih3ZWJydGM6OkNyZWF0
ZUgyNjVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKAorICAgICAgICAgICh1aW50OF90KilpbnB1dElt
YWdlLmJ1ZmZlci5ieXRlcywgaW5wdXRJbWFnZS5idWZmZXIubGVuZ3RoKSk7CisgIGlmIChpbnB1
dEZvcm1hdCkgeworICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPQorICAgICAgICBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGlucHV0Rm9ybWF0LmdldCgpKTsK
KyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJSZXNvbHV0aW9uOiAiIDw8IGRpbWVuc2lvbnMud2lk
dGggPDwgIiB4ICIKKyAgICAgICAgICAgICAgICAgICAgIDw8IGRpbWVuc2lvbnMuaGVpZ2h0Owor
ICAgIC8vIENoZWNrIGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGNoYW5nZWQsIGFuZCByZWluaXRp
YWxpemUgZGVjb2RlciBpZgorICAgIC8vIG5lZWRlZC4KKyAgICBpZiAoIUNNRm9ybWF0RGVzY3Jp
cHRpb25FcXVhbChpbnB1dEZvcm1hdC5nZXQoKSwgX3ZpZGVvRm9ybWF0KSkgeworICAgICAgW3Nl
bGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRGb3JtYXQuZ2V0KCldOworICAgICAgaW50IHJlc2V0RGVj
b21wcmVzc2lvblNlc3Npb25FcnJvciA9IFtzZWxmIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25d
OworICAgICAgaWYgKHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciAhPSBXRUJSVENfVklE
RU9fQ09ERUNfT0spIHsKKyAgICAgICAgcmV0dXJuIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25F
cnJvcjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKCFfdmlkZW9Gb3JtYXQpIHsKKyAgICAv
LyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1dCB3ZSBkb24ndCBoYXZlIGZvcm1hdCBpbmZvcm1hdGlv
biBzbyB3ZSBjYW4ndAorICAgIC8vIGRlY29kZSBpdC4KKyAgICAvLyBUaGlzIGNhbiBoYXBwZW4g
YWZ0ZXIgYmFja2dyb3VuZGluZy4gV2UgbmVlZCB0byB3YWl0IGZvciB0aGUgbmV4dAorICAgIC8v
IHNwcy9wcHMgYmVmb3JlIHdlIGNhbiByZXN1bWUgc28gd2UgcmVxdWVzdCBhIGtleWZyYW1lIGJ5
IHJldHVybmluZyBhbgorICAgIC8vIGVycm9yLgorICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwg
Ik1pc3NpbmcgdmlkZW8gZm9ybWF0LiBGcmFtZSB3aXRoIHNwcy9wcHMgcmVxdWlyZWQuIjsKKyAg
ICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7CisgIGlmICghd2VicnRjOjpIMjY1QW5uZXhCQnVm
ZmVyVG9DTVNhbXBsZUJ1ZmZlcigKKyAgICAgICAgICAodWludDhfdCopaW5wdXRJbWFnZS5idWZm
ZXIuYnl0ZXMsIGlucHV0SW1hZ2UuYnVmZmVyLmxlbmd0aCwKKyAgICAgICAgICBfdmlkZW9Gb3Jt
YXQsICZzYW1wbGVCdWZmZXIpKSB7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJP
UjsKKyAgfQorICBSVENfRENIRUNLKHNhbXBsZUJ1ZmZlcik7CisgIFZURGVjb2RlRnJhbWVGbGFn
cyBkZWNvZGVGbGFncyA9CisgICAgICBrVlREZWNvZGVGcmFtZV9FbmFibGVBc3luY2hyb25vdXNE
ZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1z
PiBmcmFtZURlY29kZVBhcmFtczsKKyAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQoCisgICAgICBu
ZXcgUlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgaW5wdXRJbWFnZS50aW1lU3Rh
bXApKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZy
YW1lKAorICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZs
YWdzLAorICAgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRyKTsKKyNpZiBk
ZWZpbmVkKFdFQlJUQ19JT1MpCisgIC8vIFJlLWluaXRpYWxpemUgdGhlIGRlY29kZXIgaWYgd2Ug
aGF2ZSBhbiBpbnZhbGlkIHNlc3Npb24gd2hpbGUgdGhlIGFwcCBpcworICAvLyBhY3RpdmUgYW5k
IHJldHJ5IHRoZSBkZWNvZGUgcmVxdWVzdC4KKyAgaWYgKHN0YXR1cyA9PSBrVlRJbnZhbGlkU2Vz
c2lvbkVyciAmJgorICAgICAgW3NlbGYgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0gPT0gV0VC
UlRDX1ZJREVPX0NPREVDX09LKSB7CisgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQoCisgICAg
ICAgIG5ldyBSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCBpbnB1dEltYWdlLnRp
bWVTdGFtcCkpOworICAgIHN0YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFt
ZSgKKyAgICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZs
YWdzLAorICAgICAgICBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworICB9
CisjZW5kaWYKKyAgQ0ZSZWxlYXNlKHNhbXBsZUJ1ZmZlcik7CisgIGlmIChzdGF0dXMgIT0gbm9F
cnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGRlY29kZSBmcmFtZSB3
aXRoIGNvZGU6ICIgPDwgc3RhdHVzOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJS
T1I7CisgIH0KKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZClz
ZXRDYWxsYmFjazooUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2spY2FsbGJhY2sgeworICBfY2FsbGJh
Y2sgPSBjYWxsYmFjazsKK30KKworLSAoTlNJbnRlZ2VyKXJlbGVhc2VEZWNvZGVyIHsKKyAgLy8g
TmVlZCB0byBpbnZhbGlkYXRlIHRoZSBzZXNzaW9uIHNvIHRoYXQgY2FsbGJhY2tzIG5vIGxvbmdl
ciBvY2N1ciBhbmQgaXQKKyAgLy8gaXMgc2FmZSB0byBudWxsIG91dCB0aGUgY2FsbGJhY2suCisg
IFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgIFtzZWxmIHNldFZpZGVvRm9y
bWF0Om51bGxwdHJdOworICBfY2FsbGJhY2sgPSBudWxscHRyOworICByZXR1cm4gV0VCUlRDX1ZJ
REVPX0NPREVDX09LOworfQorCisjcHJhZ21hIG1hcmsgLSBQcml2YXRlCisKKy0gKGludClyZXNl
dERlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAgW3NlbGYgZGVzdHJveURlY29tcHJlc3Npb25TZXNz
aW9uXTsKKworICAvLyBOZWVkIHRvIHdhaXQgZm9yIHRoZSBmaXJzdCBTUFMgdG8gaW5pdGlhbGl6
ZSBkZWNvZGVyLgorICBpZiAoIV92aWRlb0Zvcm1hdCkgeworICAgIHJldHVybiBXRUJSVENfVklE
RU9fQ09ERUNfT0s7CisgIH0KKworICAvLyBTZXQga2V5cyBmb3IgT3BlbkdMIGFuZCBJT1N1cmZh
Y2UgY29tcGF0aWJpbHR5LCB3aGljaCBtYWtlcyB0aGUgZW5jb2RlcgorICAvLyBjcmVhdGUgcGl4
ZWwgYnVmZmVycyB3aXRoIEdQVSBiYWNrZWQgbWVtb3J5LiBUaGUgaW50ZW50IGhlcmUgaXMgdG8g
cGFzcworICAvLyB0aGUgcGl4ZWwgYnVmZmVycyBkaXJlY3RseSBzbyB3ZSBhdm9pZCBhIHRleHR1
cmUgdXBsb2FkIGxhdGVyIGR1cmluZworICAvLyByZW5kZXJpbmcuIFRoaXMgY3VycmVudGx5IGlz
IG1vb3QgYmVjYXVzZSB3ZSBhcmUgY29udmVydGluZyBiYWNrIHRvIGFuCisgIC8vIEk0MjAgZnJh
bWUgYWZ0ZXIgZGVjb2RlLCBidXQgZXZlbnR1YWxseSB3ZSB3aWxsIGJlIGFibGUgdG8gcGx1bWIK
KyAgLy8gQ1ZQaXhlbEJ1ZmZlcnMgZGlyZWN0bHkgdG8gdGhlIHJlbmRlcmVyLgorICAvLyBUT0RP
KHRrY2hpbik6IE1heWJlIG9ubHkgc2V0IE9wZW5HTC9JT1N1cmZhY2Uga2V5cyBpZiB3ZSBrbm93
IHRoYXQgdGhhdAorICAvLyB3ZSBjYW4gcGFzcyBDVlBpeGVsQnVmZmVycyBhcyBuYXRpdmUgaGFu
ZGxlcyBpbiBkZWNvZGVyIG91dHB1dC4KKyAgc3RhdGljIHNpemVfdCBjb25zdCBhdHRyaWJ1dGVz
U2l6ZSA9IDM7CisgIENGVHlwZVJlZiBrZXlzW2F0dHJpYnV0ZXNTaXplXSA9IHsKKyNpZiBkZWZp
bmVkKFdFQlJUQ19JT1MpCisgICAga0NWUGl4ZWxCdWZmZXJPcGVuR0xFU0NvbXBhdGliaWxpdHlL
ZXksCisjZWxpZiBkZWZpbmVkKFdFQlJUQ19NQUMpCisgICAga0NWUGl4ZWxCdWZmZXJPcGVuR0xD
b21wYXRpYmlsaXR5S2V5LAorI2VuZGlmCisgICAga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9w
ZXJ0aWVzS2V5LAorICAgIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5CisgIH07Cisg
IENGRGljdGlvbmFyeVJlZiBpb1N1cmZhY2VWYWx1ZSA9IENyZWF0ZUNGVHlwZURpY3Rpb25hcnko
bnVsbHB0ciwgbnVsbHB0ciwgMCk7CisgIGludDY0X3QgbnYxMnR5cGUgPSBrQ1ZQaXhlbEZvcm1h
dFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlOworICBDRk51bWJlclJlZiBwaXhlbEZv
cm1hdCA9CisgICAgICBDRk51bWJlckNyZWF0ZShudWxscHRyLCBrQ0ZOdW1iZXJMb25nVHlwZSwg
Jm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZhbHVlc1thdHRyaWJ1dGVzU2l6ZV0gPSB7a0NGQm9v
bGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwaXhlbEZvcm1hdH07CisgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0KKyAg
ICAgIENyZWF0ZUNGVHlwZURpY3Rpb25hcnkoa2V5cywgdmFsdWVzLCBhdHRyaWJ1dGVzU2l6ZSk7
CisgIGlmIChpb1N1cmZhY2VWYWx1ZSkgeworICAgIENGUmVsZWFzZShpb1N1cmZhY2VWYWx1ZSk7
CisgICAgaW9TdXJmYWNlVmFsdWUgPSBudWxscHRyOworICB9CisgIGlmIChwaXhlbEZvcm1hdCkg
eworICAgIENGUmVsZWFzZShwaXhlbEZvcm1hdCk7CisgICAgcGl4ZWxGb3JtYXQgPSBudWxscHRy
OworICB9CisgIFZURGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrUmVjb3JkIHJlY29yZCA9IHsK
KyAgICAgIGgyNjVEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2ssCisgICAgICBudWxscHRyLAor
ICB9OworICBPU1N0YXR1cyBzdGF0dXMgPQorICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkNy
ZWF0ZShudWxscHRyLCBfdmlkZW9Gb3JtYXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZWNvcmQsICZfZGVjb21wcmVzc2lvblNlc3Np
b24pOworICBDRlJlbGVhc2UoYXR0cmlidXRlcyk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsK
KyAgICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICAgIHJldHVybiBXRUJS
VENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyAgW3NlbGYgY29uZmlndXJlRGVjb21wcmVzc2lv
blNlc3Npb25dOworCisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKHZv
aWQpY29uZmlndXJlRGVjb21wcmVzc2lvblNlc3Npb24geworICBSVENfRENIRUNLKF9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbik7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAvLyBWVFNlc3Npb25T
ZXRQcm9wZXJ0eShfZGVjb21wcmVzc2lvblNlc3Npb24sCisgIC8vIGtWVERlY29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworI2VuZGlmCit9CisKKy0gKHZv
aWQpZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAgaWYgKF9kZWNvbXByZXNzaW9uU2Vz
c2lvbikgeworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBpZiAoW1VJRGV2aWNlIGlzSU9T
MTFPckxhdGVyXSkgeworICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hy
b25vdXNGcmFtZXMoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICB9CisjZW5kaWYKKyAgICBW
VERlY29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShfZGVjb21wcmVzc2lvblNlc3Npb24pOwor
ICAgIENGUmVsZWFzZShfZGVjb21wcmVzc2lvblNlc3Npb24pOworICAgIF9kZWNvbXByZXNzaW9u
U2Vzc2lvbiA9IG51bGxwdHI7CisgIH0KK30KKworLSAodm9pZClzZXRWaWRlb0Zvcm1hdDooQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKXZpZGVvRm9ybWF0IHsKKyAgaWYgKF92aWRlb0Zvcm1h
dCA9PSB2aWRlb0Zvcm1hdCkgeworICAgIHJldHVybjsKKyAgfQorICBpZiAoX3ZpZGVvRm9ybWF0
KSB7CisgICAgQ0ZSZWxlYXNlKF92aWRlb0Zvcm1hdCk7CisgIH0KKyAgX3ZpZGVvRm9ybWF0ID0g
dmlkZW9Gb3JtYXQ7CisgIGlmIChfdmlkZW9Gb3JtYXQpIHsKKyAgICBDRlJldGFpbihfdmlkZW9G
b3JtYXQpOworICB9Cit9CisKKy0gKE5TU3RyaW5nKilpbXBsZW1lbnRhdGlvbk5hbWUgeworICBy
ZXR1cm4gQCJWaWRlb1Rvb2xib3giOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9F
bmNvZGVySDI2NS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNmE3NGFmZDgyOWQ4NzNhOTE4MTdkYmE5NmViNWNi
NzMwNDY5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5j
b2RlckgyNjUuaApAQCAtMCwwICsxLDIzIEBACisvKgorICogIENvcHlyaWdodCAyMDE3IFRoZSBX
ZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisg
KiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkg
cmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwg
Y29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVU
SE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW1wb3J0
IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisjaW1w
b3J0ICJSVENWaWRlb0NvZGVjSW5mby5oIgorI2ltcG9ydCAiUlRDVmlkZW9FbmNvZGVyLmgiCisK
K1JUQ19PQkpDX0VYUE9SVAorX19hdHRyaWJ1dGVfXygob2JqY19ydW50aW1lX25hbWUoIldLX1JU
Q1ZpZGVvRW5jb2RlckgyNjUiKSkpCitAaW50ZXJmYWNlIFJUQ1ZpZGVvRW5jb2RlckgyNjUgOiBO
U09iamVjdCA8UlRDVmlkZW9FbmNvZGVyPgorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2Rl
Y0luZm86KFJUQ1ZpZGVvQ29kZWNJbmZvICopY29kZWNJbmZvOworCitAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUubW0gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ4OWI2M2VhOTA3OGY2YmE1
NWNhNDQwNTljYTk3MDA3NDA0ZWFmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5tbQpAQCAtMCwwICsxLDU5OSBAQAorLyoKKyAqICBDb3B5
cmlnaHQgKGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg
QlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBm
aWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGlu
dGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhl
IGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICog
IGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0
cmVlLgorICoKKyAqLworCisjaW1wb3J0ICJSVENWaWRlb0VuY29kZXJIMjY1LmgiCisKKyNpbXBv
cnQgPFZpZGVvVG9vbGJveC9WaWRlb1Rvb2xib3guaD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNp
bXBvcnQgIlJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oIgorI2ltcG9ydCAiYXBpL3BlZXJjb25u
ZWN0aW9uL1JUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIrUHJpdmF0ZS5oIgorI2ltcG9ydCAiYXBp
L3BlZXJjb25uZWN0aW9uL1JUQ1ZpZGVvQ29kZWNJbmZvK1ByaXZhdGUuaCIKKyNpbXBvcnQgImJh
c2UvUlRDSTQyMEJ1ZmZlci5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lLmgiCisjaW1w
b3J0ICJiYXNlL1JUQ1ZpZGVvRnJhbWVCdWZmZXIuaCIKKyNpbXBvcnQgImNvbXBvbmVudHMvdmlk
ZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIuaCIKKyNpbXBvcnQgImhlbHBlcnMuaCIK
KyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisjaW1wb3J0ICJoZWxwZXJzL1VJRGV2aWNlK1JUQ0Rl
dmljZS5oIgorI2VuZGlmCisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaW5jbHVkZS9iaXRyYXRl
X2FkanVzdGVyLmgiCisjaW5jbHVkZSAibGlieXV2L2NvbnZlcnRfZnJvbS5oIgorI2luY2x1ZGUg
Im1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxl
cy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRlb19lcnJvcl9jb2Rlcy5oIgorI2luY2x1ZGUgInJ0
Y19iYXNlL2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKyNpbmNsdWRl
ICJydGNfYmFzZS90aW1lX3V0aWxzLmgiCisjaW5jbHVkZSAic2RrL29iamMvRnJhbWV3b3JrL0Ns
YXNzZXMvVmlkZW9Ub29sYm94L25hbHVfcmV3cml0ZXIuaCIKKyNpbmNsdWRlICJzeXN0ZW1fd3Jh
cHBlcnMvaW5jbHVkZS9jbG9jay5oIgorCitAaW50ZXJmYWNlIFJUQ1ZpZGVvRW5jb2RlckgyNjUg
KCkKKworLSAodm9pZClmcmFtZVdhc0VuY29kZWQ6KE9TU3RhdHVzKXN0YXR1cworICAgICAgICAg
ICAgICAgICAgZmxhZ3M6KFZURW5jb2RlSW5mb0ZsYWdzKWluZm9GbGFncworICAgICAgICAgICBz
YW1wbGVCdWZmZXI6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlcgorICAgICAgICAgICAg
ICAgICAgd2lkdGg6KGludDMyX3Qpd2lkdGgKKyAgICAgICAgICAgICAgICAgaGVpZ2h0OihpbnQz
Ml90KWhlaWdodAorICAgICAgICAgICByZW5kZXJUaW1lTXM6KGludDY0X3QpcmVuZGVyVGltZU1z
CisgICAgICAgICAgICAgIHRpbWVzdGFtcDoodWludDMyX3QpdGltZXN0YW1wCisgICAgICAgICAg
ICAgICByb3RhdGlvbjooUlRDVmlkZW9Sb3RhdGlvbilyb3RhdGlvbjsKKworQGVuZAorCituYW1l
c3BhY2UgeyAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCisvLyBUaGUgcmF0aW8gYmV0d2VlbiBr
VlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0RhdGFSYXRlTGltaXRzIGFuZAorLy8ga1ZUQ29tcHJl
c3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZS4gVGhlIGRhdGEgcmF0ZSBsaW1pdCBpcyBz
ZXQgaGlnaGVyCisvLyB0aGFuIHRoZSBhdmVyYWdlIGJpdCByYXRlIHRvIGF2b2lkIHVuZGVyc2hv
b3RpbmcgdGhlIHRhcmdldC4KK2NvbnN0IGZsb2F0IGtMaW1pdFRvQXZlcmFnZUJpdFJhdGVGYWN0
b3IgPSAxLjVmOworLy8gVGhlc2UgdGhyZXNob2xkcyBkZXZpYXRlIGZyb20gdGhlIGRlZmF1bHQg
aDI2NSBRUCB0aHJlc2hvbGRzLCBhcyB0aGV5CisvLyBoYXZlIGJlZW4gZm91bmQgdG8gd29yayBi
ZXR0ZXIgb24gZGV2aWNlcyB0aGF0IHN1cHBvcnQgVmlkZW9Ub29sYm94Citjb25zdCBpbnQga0xv
d2gyNjVRcFRocmVzaG9sZCA9IDI4OworY29uc3QgaW50IGtIaWdoaDI2NVFwVGhyZXNob2xkID0g
Mzk7CisKKy8vIFN0cnVjdCB0aGF0IHdlIHBhc3MgdG8gdGhlIGVuY29kZXIgcGVyIGZyYW1lIHRv
IGVuY29kZS4gV2UgcmVjZWl2ZSBpdCBhZ2FpbgorLy8gaW4gdGhlIGVuY29kZXIgY2FsbGJhY2su
CitzdHJ1Y3QgQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpIFJUQ0ZyYW1lRW5jb2RlUGFyYW1zIHsK
KyAgUlRDRnJhbWVFbmNvZGVQYXJhbXMoUlRDVmlkZW9FbmNvZGVySDI2NSogZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgaW50MzJfdCB3LAorICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90
IGgsCisgICAgICAgICAgICAgICAgICAgICAgIGludDY0X3QgcnRtcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgdWludDMyX3QgdHMsCisgICAgICAgICAgICAgICAgICAgICAgIFJUQ1ZpZGVvUm90
YXRpb24gcikKKyAgICAgIDogZW5jb2RlcihlKSwKKyAgICAgICAgd2lkdGgodyksCisgICAgICAg
IGhlaWdodChoKSwKKyAgICAgICAgcmVuZGVyX3RpbWVfbXMocnRtcyksCisgICAgICAgIHRpbWVz
dGFtcCh0cyksCisgICAgICAgIHJvdGF0aW9uKHIpIHt9CisKKyAgUlRDVmlkZW9FbmNvZGVySDI2
NSogZW5jb2RlcjsKKyAgaW50MzJfdCB3aWR0aDsKKyAgaW50MzJfdCBoZWlnaHQ7CisgIGludDY0
X3QgcmVuZGVyX3RpbWVfbXM7CisgIHVpbnQzMl90IHRpbWVzdGFtcDsKKyAgUlRDVmlkZW9Sb3Rh
dGlvbiByb3RhdGlvbjsKK307CisKKy8vIFdlIHJlY2VpdmUgSTQyMEZyYW1lcyBhcyBpbnB1dCwg
YnV0IHdlIG5lZWQgdG8gZmVlZCBDVlBpeGVsQnVmZmVycyBpbnRvIHRoZQorLy8gZW5jb2Rlci4g
VGhpcyBwZXJmb3JtcyB0aGUgY29weSBhbmQgZm9ybWF0IGNvbnZlcnNpb24uCisvLyBUT0RPKHRr
Y2hpbik6IFNlZSBpZiBlbmNvZGVyIHdpbGwgYWNjZXB0IGk0MjAgZnJhbWVzIGFuZCBjb21wYXJl
IHBlcmZvcm1hbmNlLgorYm9vbCBDb3B5VmlkZW9GcmFtZVRvUGl4ZWxCdWZmZXIoaWQ8UlRDSTQy
MEJ1ZmZlcj4gZnJhbWVCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSB7CisgIFJUQ19EQ0hFQ0socGl4ZWxCdWZmZXIp
OworICBSVENfRENIRUNLX0VRKENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxC
dWZmZXIpLAorICAgICAgICAgICAgICAgIGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQ
bGFuYXJGdWxsUmFuZ2UpOworICBSVENfRENIRUNLX0VRKENWUGl4ZWxCdWZmZXJHZXRIZWlnaHRP
ZlBsYW5lKHBpeGVsQnVmZmVyLCAwKSwKKyAgICAgICAgICAgICAgICBmcmFtZUJ1ZmZlci5oZWln
aHQpOworICBSVENfRENIRUNLX0VRKENWUGl4ZWxCdWZmZXJHZXRXaWR0aE9mUGxhbmUocGl4ZWxC
dWZmZXIsIDApLAorICAgICAgICAgICAgICAgIGZyYW1lQnVmZmVyLndpZHRoKTsKKworICBDVlJl
dHVybiBjdlJldCA9IENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDAp
OworICBpZiAoY3ZSZXQgIT0ga0NWUmV0dXJuU3VjY2VzcykgeworICAgIFJUQ19MT0coTFNfRVJS
T1IpIDw8ICJGYWlsZWQgdG8gbG9jayBiYXNlIGFkZHJlc3M6ICIgPDwgY3ZSZXQ7CisgICAgcmV0
dXJuIGZhbHNlOworICB9CisKKyAgdWludDhfdCogZHN0WSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDhfdCo+KAorICAgICAgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1
ZmZlciwgMCkpOworICBpbnQgZHN0U3RyaWRlWSA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
d09mUGxhbmUocGl4ZWxCdWZmZXIsIDApOworICB1aW50OF90KiBkc3RVViA9IHJlaW50ZXJwcmV0
X2Nhc3Q8dWludDhfdCo+KAorICAgICAgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFu
ZShwaXhlbEJ1ZmZlciwgMSkpOworICBpbnQgZHN0U3RyaWRlVVYgPSBDVlBpeGVsQnVmZmVyR2V0
Qnl0ZXNQZXJSb3dPZlBsYW5lKHBpeGVsQnVmZmVyLCAxKTsKKyAgLy8gQ29udmVydCBJNDIwIHRv
IE5WMTIuCisgIGludCByZXQgPSBsaWJ5dXY6Okk0MjBUb05WMTIoCisgICAgICBmcmFtZUJ1ZmZl
ci5kYXRhWSwgZnJhbWVCdWZmZXIuc3RyaWRlWSwgZnJhbWVCdWZmZXIuZGF0YVUsCisgICAgICBm
cmFtZUJ1ZmZlci5zdHJpZGVVLCBmcmFtZUJ1ZmZlci5kYXRhViwgZnJhbWVCdWZmZXIuc3RyaWRl
ViwgZHN0WSwKKyAgICAgIGRzdFN0cmlkZVksIGRzdFVWLCBkc3RTdHJpZGVVViwgZnJhbWVCdWZm
ZXIud2lkdGgsIGZyYW1lQnVmZmVyLmhlaWdodCk7CisgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNl
QWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7CisgIGlmIChyZXQpIHsKKyAgICBSVENfTE9HKExTX0VS
Uk9SKSA8PCAiRXJyb3IgY29udmVydGluZyBJNDIwIFZpZGVvRnJhbWUgdG8gTlYxMiA6IiA8PCBy
ZXQ7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIHJldHVybiB0cnVlOworfQorCitDVlBpeGVs
QnVmZmVyUmVmIENyZWF0ZVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJQb29sUmVmIHBpeGVsX2J1
ZmZlcl9wb29sKSB7CisgIGlmICghcGl4ZWxfYnVmZmVyX3Bvb2wpIHsKKyAgICBSVENfTE9HKExT
X0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBwaXhlbCBidWZmZXIgcG9vbC4iOworICAgIHJldHVy
biBudWxscHRyOworICB9CisgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxfYnVmZmVyOworICBDVlJl
dHVybiByZXQgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKG51bGxwdHIsIHBp
eGVsX2J1ZmZlcl9wb29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZwaXhlbF9idWZmZXIpOworICBpZiAocmV0ICE9IGtDVlJldHVyblN1Y2Nl
c3MpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBwaXhlbCBi
dWZmZXI6ICIgPDwgcmV0OworICAgIC8vIFdlIHByb2JhYmx5IHdhbnQgdG8gZHJvcCBmcmFtZXMg
aGVyZSwgc2luY2UgZmFpbHVyZSBwcm9iYWJseSBtZWFucworICAgIC8vIHRoYXQgdGhlIHBvb2wg
aXMgZW1wdHkuCisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIHBpeGVsX2J1ZmZl
cjsKK30KKworLy8gVGhpcyBpcyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBWaWRlb1Rvb2xi
b3ggY2FsbHMgd2hlbiBlbmNvZGUgaXMKKy8vIGNvbXBsZXRlLiBGcm9tIGluc3BlY3Rpb24gdGhp
cyBoYXBwZW5zIG9uIGl0cyBvd24gcXVldWUuCit2b2lkIGNvbXByZXNzaW9uT3V0cHV0Q2FsbGJh
Y2sodm9pZCogZW5jb2RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBw
YXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1NTdGF0dXMgc3RhdHVzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZURW5jb2RlSW5mb0ZsYWdzIGluZm9GbGFn
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1w
bGVCdWZmZXIpCisgICAgQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpIHsKKyAgUlRDX0NIRUNLKHBh
cmFtcyk7CisgIHN0ZDo6dW5pcXVlX3B0cjxSVENGcmFtZUVuY29kZVBhcmFtcz4gZW5jb2RlUGFy
YW1zKAorICAgICAgcmVpbnRlcnByZXRfY2FzdDxSVENGcmFtZUVuY29kZVBhcmFtcyo+KHBhcmFt
cykpOworICBSVENfQ0hFQ0soZW5jb2RlUGFyYW1zLT5lbmNvZGVyKTsKKyAgW2VuY29kZVBhcmFt
cy0+ZW5jb2RlciBmcmFtZVdhc0VuY29kZWQ6c3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZsYWdzOmluZm9GbGFncworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNhbXBsZUJ1ZmZlcjpzYW1wbGVCdWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd2lkdGg6ZW5jb2RlUGFyYW1zLT53aWR0aAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlaWdodDplbmNvZGVQYXJhbXMtPmhlaWdodAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlbmRlclRpbWVNczplbmNvZGVQYXJhbXMtPnJlbmRlcl90aW1lX21zCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOmVuY29kZVBhcmFtcy0+dGltZXN0
YW1wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOmVuY29kZVBhcmFt
cy0+cm90YXRpb25dOworfQorfSAgLy8gbmFtZXNwYWNlCisKK0BpbXBsZW1lbnRhdGlvbiBSVENW
aWRlb0VuY29kZXJIMjY1IHsKKyAgUlRDVmlkZW9Db2RlY0luZm8qIF9jb2RlY0luZm87CisgIHN0
ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OkJpdHJhdGVBZGp1c3Rlcj4gX2JpdHJhdGVBZGp1c3RlcjsK
KyAgdWludDMyX3QgX3RhcmdldEJpdHJhdGVCcHM7CisgIHVpbnQzMl90IF9lbmNvZGVyQml0cmF0
ZUJwczsKKyAgQ0ZTdHJpbmdSZWYgX3Byb2ZpbGU7CisgIFJUQ1ZpZGVvRW5jb2RlckNhbGxiYWNr
IF9jYWxsYmFjazsKKyAgaW50MzJfdCBfd2lkdGg7CisgIGludDMyX3QgX2hlaWdodDsKKyAgVlRD
b21wcmVzc2lvblNlc3Npb25SZWYgX2NvbXByZXNzaW9uU2Vzc2lvbjsKKyAgUlRDVmlkZW9Db2Rl
Y01vZGUgX21vZGU7CisgIGludCBmcmFtZXNMZWZ0OworCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+
IF9udjEyU2NhbGVCdWZmZXI7Cit9CisKKy8vIC41IGlzIHNldCBhcyBhIG1pbmludW0gdG8gcHJl
dmVudCBvdmVyY29tcGVuc2F0aW5nIGZvciBsYXJnZSB0ZW1wb3JhcnkKKy8vIG92ZXJzaG9vdHMu
IFdlIGRvbid0IHdhbnQgdG8gZGVncmFkZSB2aWRlbyBxdWFsaXR5IHRvbyBiYWRseS4KKy8vIC45
NSBpcyBzZXQgdG8gcHJldmVudCBvc2NpbGxhdGlvbnMuIFdoZW4gYSBsb3dlciBiaXRyYXRlIGlz
IHNldCBvbiB0aGUKKy8vIGVuY29kZXIgdGhhbiBwcmV2aW91c2x5IHNldCwgaXRzIG91dHB1dCBz
ZWVtcyB0byBoYXZlIGEgYnJpZWYgcGVyaW9kIG9mCisvLyBkcmFzdGljYWxseSByZWR1Y2VkIGJp
dHJhdGUsIHNvIHdlIHdhbnQgdG8gYXZvaWQgdGhhdC4gSW4gc3RlYWR5IHN0YXRlCisvLyBjb25k
aXRpb25zLCAwLjk1IHNlZW1zIHRvIGdpdmUgdXMgYmV0dGVyIG92ZXJhbGwgYml0cmF0ZSBvdmVy
IGxvbmcgcGVyaW9kcworLy8gb2YgdGltZS4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVj
SW5mbzooUlRDVmlkZW9Db2RlY0luZm8qKWNvZGVjSW5mbyB7CisgIGlmIChzZWxmID0gW3N1cGVy
IGluaXRdKSB7CisgICAgX2NvZGVjSW5mbyA9IGNvZGVjSW5mbzsKKyAgICBfYml0cmF0ZUFkanVz
dGVyLnJlc2V0KG5ldyB3ZWJydGM6OkJpdHJhdGVBZGp1c3RlciguNSwgLjk1KSk7CisgICAgUlRD
X0NIRUNLKFtjb2RlY0luZm8ubmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJIMjY1Il0pOworICB9Cisg
IHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MgeworICBbc2VsZiBkZXN0cm95Q29t
cHJlc3Npb25TZXNzaW9uXTsKK30KKworLSAoTlNJbnRlZ2VyKXN0YXJ0RW5jb2RlV2l0aFNldHRp
bmdzOihSVENWaWRlb0VuY29kZXJTZXR0aW5ncyopc2V0dGluZ3MKKyAgICAgICAgICAgICAgICAg
ICAgICAgbnVtYmVyT2ZDb3JlczooaW50KW51bWJlck9mQ29yZXMgeworICBSVENfRENIRUNLKHNl
dHRpbmdzKTsKKyAgUlRDX0RDSEVDSyhbc2V0dGluZ3MubmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJI
MjY1Il0pOworCisgIF93aWR0aCA9IHNldHRpbmdzLndpZHRoOworICBfaGVpZ2h0ID0gc2V0dGlu
Z3MuaGVpZ2h0OworICBfbW9kZSA9IHNldHRpbmdzLm1vZGU7CisKKyAgLy8gV2UgY2FuIG9ubHkg
c2V0IGF2ZXJhZ2UgYml0cmF0ZSBvbiB0aGUgSFcgZW5jb2Rlci4KKyAgX3RhcmdldEJpdHJhdGVC
cHMgPSBzZXR0aW5ncy5zdGFydEJpdHJhdGU7CisgIF9iaXRyYXRlQWRqdXN0ZXItPlNldFRhcmdl
dEJpdHJhdGVCcHMoX3RhcmdldEJpdHJhdGVCcHMpOworCisgIHJldHVybiBbc2VsZiByZXNldENv
bXByZXNzaW9uU2Vzc2lvbl07Cit9CisKKy0gKE5TSW50ZWdlcillbmNvZGU6KFJUQ1ZpZGVvRnJh
bWUqKWZyYW1lCisgICAgY29kZWNTcGVjaWZpY0luZm86KGlkPFJUQ0NvZGVjU3BlY2lmaWNJbmZv
Piljb2RlY1NwZWNpZmljSW5mbworICAgICAgICAgICBmcmFtZVR5cGVzOihOU0FycmF5PE5TTnVt
YmVyKj4qKWZyYW1lVHlwZXMgeworICBSVENfRENIRUNLX0VRKGZyYW1lLndpZHRoLCBfd2lkdGgp
OworICBSVENfRENIRUNLX0VRKGZyYW1lLmhlaWdodCwgX2hlaWdodCk7CisgIGlmICghX2NhbGxi
YWNrIHx8ICFfY29tcHJlc3Npb25TZXNzaW9uKSB7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19D
T0RFQ19VTklOSVRJQUxJWkVEOworICB9CisgIEJPT0wgaXNLZXlmcmFtZVJlcXVpcmVkID0gTk87
CisKKyAgLy8gR2V0IGEgcGl4ZWwgYnVmZmVyIGZyb20gdGhlIHBvb2wgYW5kIGNvcHkgZnJhbWUg
ZGF0YSBvdmVyLgorICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2wgPQorICAg
ICAgVlRDb21wcmVzc2lvblNlc3Npb25HZXRQaXhlbEJ1ZmZlclBvb2woX2NvbXByZXNzaW9uU2Vz
c2lvbik7CisKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgIGlmICghcGl4ZWxCdWZmZXJQb29s
KSB7CisgICAgLy8gS2luZCBvZiBhIGhhY2suIE9uIGJhY2tncm91bmRpbmcsIHRoZSBjb21wcmVz
c2lvbiBzZXNzaW9uIHNlZW1zIHRvIGdldAorICAgIC8vIGludmFsaWRhdGVkLCB3aGljaCBjYXVz
ZXMgdGhpcyBwb29sIGNhbGwgdG8gZmFpbCB3aGVuIHRoZSBhcHBsaWNhdGlvbgorICAgIC8vIGlz
IGZvcmVncm91bmRlZCBhbmQgZnJhbWVzIGFyZSBiZWluZyBzZW50IGZvciBlbmNvZGluZyBhZ2Fp
bi4KKyAgICAvLyBSZXNldHRpbmcgdGhlIHNlc3Npb24gd2hlbiB0aGlzIGhhcHBlbnMgZml4ZXMg
dGhlIGlzc3VlLgorICAgIC8vIEluIGFkZGl0aW9uIHdlIHJlcXVlc3QgYSBrZXlmcmFtZSBzbyB2
aWRlbyBjYW4gcmVjb3ZlciBxdWlja2x5LgorICAgIFtzZWxmIHJlc2V0Q29tcHJlc3Npb25TZXNz
aW9uXTsKKyAgICBwaXhlbEJ1ZmZlclBvb2wgPQorICAgICAgICBWVENvbXByZXNzaW9uU2Vzc2lv
bkdldFBpeGVsQnVmZmVyUG9vbChfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBpc0tleWZyYW1l
UmVxdWlyZWQgPSBZRVM7CisgICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiUmVzZXR0aW5nIGNvbXBy
ZXNzaW9uIHNlc3Npb24gZHVlIHRvIGludmFsaWQgcG9vbC4iOworICB9CisjZW5kaWYKKworICBD
VlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gbnVsbHB0cjsKKyAgaWYgKFtmcmFtZS5idWZm
ZXIgaXNLaW5kT2ZDbGFzczpbUlRDQ1ZQaXhlbEJ1ZmZlciBjbGFzc11dKSB7CisgICAgLy8gTmF0
aXZlIGZyYW1lIGJ1ZmZlcgorICAgIFJUQ0NWUGl4ZWxCdWZmZXIqIHJ0Y1BpeGVsQnVmZmVyID0g
KFJUQ0NWUGl4ZWxCdWZmZXIqKWZyYW1lLmJ1ZmZlcjsKKyAgICBpZiAoIVtydGNQaXhlbEJ1ZmZl
ciByZXF1aXJlc0Nyb3BwaW5nXSkgeworICAgICAgLy8gVGhpcyBwaXhlbCBidWZmZXIgbWlnaHQg
aGF2ZSBhIGhpZ2hlciByZXNvbHV0aW9uIHRoYW4gd2hhdCB0aGUKKyAgICAgIC8vIGNvbXByZXNz
aW9uIHNlc3Npb24gaXMgY29uZmlndXJlZCB0by4gVGhlIGNvbXByZXNzaW9uIHNlc3Npb24gY2Fu
CisgICAgICAvLyBoYW5kbGUgdGhhdCBhbmQgd2lsbCBvdXRwdXQgZW5jb2RlZCBmcmFtZXMgaW4g
dGhlIGNvbmZpZ3VyZWQKKyAgICAgIC8vIHJlc29sdXRpb24gcmVnYXJkbGVzcyBvZiB0aGUgaW5w
dXQgcGl4ZWwgYnVmZmVyIHJlc29sdXRpb24uCisgICAgICBwaXhlbEJ1ZmZlciA9IHJ0Y1BpeGVs
QnVmZmVyLnBpeGVsQnVmZmVyOworICAgICAgQ1ZCdWZmZXJSZXRhaW4ocGl4ZWxCdWZmZXIpOwor
ICAgIH0gZWxzZSB7CisgICAgICAvLyBDcm9wcGluZyByZXF1aXJlZCwgd2UgbmVlZCB0byBjcm9w
IGFuZCBzY2FsZSB0byBhIG5ldyBwaXhlbCBidWZmZXIuCisgICAgICBwaXhlbEJ1ZmZlciA9IENy
ZWF0ZVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyUG9vbCk7CisgICAgICBpZiAoIXBpeGVsQnVmZmVy
KSB7CisgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgICAgICB9Cisg
ICAgICBpbnQgZHN0V2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZmZXIpOwor
ICAgICAgaW50IGRzdEhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQocGl4ZWxCdWZmZXIp
OworICAgICAgaWYgKFtydGNQaXhlbEJ1ZmZlciByZXF1aXJlc1NjYWxpbmdUb1dpZHRoOmRzdFdp
ZHRoIGhlaWdodDpkc3RIZWlnaHRdKSB7CisgICAgICAgIGludCBzaXplID0KKyAgICAgICAgICAg
IFtydGNQaXhlbEJ1ZmZlciBidWZmZXJTaXplRm9yQ3JvcHBpbmdBbmRTY2FsaW5nVG9XaWR0aDpk
c3RXaWR0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVpZ2h0OmRzdEhlaWdodF07CisgICAgICAgIF9udjEyU2NhbGVCdWZmZXIu
cmVzaXplKHNpemUpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgX252MTJTY2FsZUJ1ZmZlci5j
bGVhcigpOworICAgICAgfQorICAgICAgX252MTJTY2FsZUJ1ZmZlci5zaHJpbmtfdG9fZml0KCk7
CisgICAgICBpZiAoIVtydGNQaXhlbEJ1ZmZlciBjcm9wQW5kU2NhbGVUbzpwaXhlbEJ1ZmZlcgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFRlbXBCdWZmZXI6X252MTJTY2FsZUJ1ZmZl
ci5kYXRhKCldKSB7CisgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7Cisg
ICAgICB9CisgICAgfQorICB9CisKKyAgaWYgKCFwaXhlbEJ1ZmZlcikgeworICAgIC8vIFdlIGRp
ZCBub3QgaGF2ZSBhIG5hdGl2ZSBmcmFtZSBidWZmZXIKKyAgICBwaXhlbEJ1ZmZlciA9IENyZWF0
ZVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyUG9vbCk7CisgICAgaWYgKCFwaXhlbEJ1ZmZlcikgewor
ICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgICB9CisgICAgUlRDX0RD
SEVDSyhwaXhlbEJ1ZmZlcik7CisgICAgaWYgKCFDb3B5VmlkZW9GcmFtZVRvUGl4ZWxCdWZmZXIo
W2ZyYW1lLmJ1ZmZlciB0b0k0MjBdLCBwaXhlbEJ1ZmZlcikpIHsKKyAgICAgIFJUQ19MT0coTFNf
RVJST1IpIDw8ICJGYWlsZWQgdG8gY29weSBmcmFtZSBkYXRhLiI7CisgICAgICBDVkJ1ZmZlclJl
bGVhc2UocGl4ZWxCdWZmZXIpOworICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJP
UjsKKyAgICB9CisgIH0KKworICAvLyBDaGVjayBpZiB3ZSBuZWVkIGEga2V5ZnJhbWUuCisgIGlm
ICghaXNLZXlmcmFtZVJlcXVpcmVkICYmIGZyYW1lVHlwZXMpIHsKKyAgICBmb3IgKE5TTnVtYmVy
KiBmcmFtZVR5cGUgaW4gZnJhbWVUeXBlcykgeworICAgICAgaWYgKChSVENGcmFtZVR5cGUpZnJh
bWVUeXBlLmludFZhbHVlID09IFJUQ0ZyYW1lVHlwZVZpZGVvRnJhbWVLZXkpIHsKKyAgICAgICAg
aXNLZXlmcmFtZVJlcXVpcmVkID0gWUVTOworICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9
CisgIH0KKworICBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wID0KKyAgICAgIENNVGltZU1h
a2UoZnJhbWUudGltZVN0YW1wTnMgLyBydGM6OmtOdW1OYW5vc2Vjc1Blck1pbGxpc2VjLCAxMDAw
KTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVydGllcyA9IG51bGxwdHI7CisgIGlmIChp
c0tleWZyYW1lUmVxdWlyZWQpIHsKKyAgICBDRlR5cGVSZWYga2V5c1tdID0ge2tWVEVuY29kZUZy
YW1lT3B0aW9uS2V5X0ZvcmNlS2V5RnJhbWV9OworICAgIENGVHlwZVJlZiB2YWx1ZXNbXSA9IHtr
Q0ZCb29sZWFuVHJ1ZX07CisgICAgZnJhbWVQcm9wZXJ0aWVzID0gQ3JlYXRlQ0ZUeXBlRGljdGlv
bmFyeShrZXlzLCB2YWx1ZXMsIDEpOworICB9CisKKyAgc3RkOjp1bmlxdWVfcHRyPFJUQ0ZyYW1l
RW5jb2RlUGFyYW1zPiBlbmNvZGVQYXJhbXM7CisgIGVuY29kZVBhcmFtcy5yZXNldChuZXcgUlRD
RnJhbWVFbmNvZGVQYXJhbXMoCisgICAgICBzZWxmLCBfd2lkdGgsIF9oZWlnaHQsIGZyYW1lLnRp
bWVTdGFtcE5zIC8gcnRjOjprTnVtTmFub3NlY3NQZXJNaWxsaXNlYywKKyAgICAgIGZyYW1lLnRp
bWVTdGFtcCwgZnJhbWUucm90YXRpb24pKTsKKworICAvLyBVcGRhdGUgdGhlIGJpdHJhdGUgaWYg
bmVlZGVkLgorICBbc2VsZiBzZXRCaXRyYXRlQnBzOl9iaXRyYXRlQWRqdXN0ZXItPkdldEFkanVz
dGVkQml0cmF0ZUJwcygpXTsKKworICBPU1N0YXR1cyBzdGF0dXMgPSBWVENvbXByZXNzaW9uU2Vz
c2lvbkVuY29kZUZyYW1lKAorICAgICAgX2NvbXByZXNzaW9uU2Vzc2lvbiwgcGl4ZWxCdWZmZXIs
IHByZXNlbnRhdGlvblRpbWVTdGFtcCwga0NNVGltZUludmFsaWQsCisgICAgICBmcmFtZVByb3Bl
cnRpZXMsIGVuY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworICBpZiAoZnJhbWVQcm9w
ZXJ0aWVzKSB7CisgICAgQ0ZSZWxlYXNlKGZyYW1lUHJvcGVydGllcyk7CisgIH0KKyAgaWYgKHBp
eGVsQnVmZmVyKSB7CisgICAgQ1ZCdWZmZXJSZWxlYXNlKHBpeGVsQnVmZmVyKTsKKyAgfQorICBp
ZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0
byBlbmNvZGUgZnJhbWUgd2l0aCBjb2RlOiAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gV0VCUlRD
X1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7
Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KFJUQ1ZpZGVvRW5jb2RlckNhbGxiYWNrKWNhbGxi
YWNrIHsKKyAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cit9CisKKy0gKGludClzZXRCaXRyYXRlOih1
aW50MzJfdCliaXRyYXRlS2JpdCBmcmFtZXJhdGU6KHVpbnQzMl90KWZyYW1lcmF0ZSB7CisgIF90
YXJnZXRCaXRyYXRlQnBzID0gMTAwMCAqIGJpdHJhdGVLYml0OworICBfYml0cmF0ZUFkanVzdGVy
LT5TZXRUYXJnZXRCaXRyYXRlQnBzKF90YXJnZXRCaXRyYXRlQnBzKTsKKyAgW3NlbGYgc2V0Qml0
cmF0ZUJwczpfYml0cmF0ZUFkanVzdGVyLT5HZXRBZGp1c3RlZEJpdHJhdGVCcHMoKV07CisgIHJl
dHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKyNwcmFnbWEgbWFyayAtIFByaXZhdGUK
KworLSAoTlNJbnRlZ2VyKXJlbGVhc2VFbmNvZGVyIHsKKyAgLy8gTmVlZCB0byBkZXN0cm95IHNv
IHRoYXQgdGhlIHNlc3Npb24gaXMgaW52YWxpZGF0ZWQgYW5kIHdvbid0IHVzZSB0aGUKKyAgLy8g
Y2FsbGJhY2sgYW55bW9yZS4gRG8gbm90IHJlbW92ZSBjYWxsYmFjayB1bnRpbCB0aGUgc2Vzc2lv
biBpcyBpbnZhbGlkYXRlZAorICAvLyBzaW5jZSBhc3luYyBlbmNvZGVyIGNhbGxiYWNrcyBjYW4g
b2NjdXIgdW50aWwgaW52YWxpZGF0aW9uLgorICBbc2VsZiBkZXN0cm95Q29tcHJlc3Npb25TZXNz
aW9uXTsKKyAgX2NhbGxiYWNrID0gbnVsbHB0cjsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RF
Q19PSzsKK30KKworLSAoaW50KXJlc2V0Q29tcHJlc3Npb25TZXNzaW9uIHsKKyAgW3NlbGYgZGVz
dHJveUNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgLy8gU2V0IHNvdXJjZSBpbWFnZSBidWZmZXIg
YXR0cmlidXRlcy4gVGhlc2UgYXR0cmlidXRlcyB3aWxsIGJlIHByZXNlbnQgb24KKyAgLy8gYnVm
ZmVycyByZXRyaWV2ZWQgZnJvbSB0aGUgZW5jb2RlcidzIHBpeGVsIGJ1ZmZlciBwb29sLgorICBj
b25zdCBzaXplX3QgYXR0cmlidXRlc1NpemUgPSAzOworICBDRlR5cGVSZWYga2V5c1thdHRyaWJ1
dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAgIGtDVlBpeGVsQnVmZmVy
T3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5LAorI2VsaWYgZGVmaW5lZChXRUJSVENfTUFDKQorICAg
IGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwKKyNlbmRpZgorICAgIGtDVlBp
eGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSwKKyAgICBrQ1ZQaXhlbEJ1ZmZlclBpeGVs
Rm9ybWF0VHlwZUtleQorICB9OworICBDRkRpY3Rpb25hcnlSZWYgaW9TdXJmYWNlVmFsdWUgPSBD
cmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51bGxwdHIsIG51bGxwdHIsIDApOworICBpbnQ2NF90IG52
MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsK
KyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3JtYXQgPQorICAgICAgQ0ZOdW1iZXJDcmVhdGUobnVsbHB0
ciwga0NGTnVtYmVyTG9uZ1R5cGUsICZudjEydHlwZSk7CisgIENGVHlwZVJlZiB2YWx1ZXNbYXR0
cmlidXRlc1NpemVdID0ge2tDRkJvb2xlYW5UcnVlLCBpb1N1cmZhY2VWYWx1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4ZWxGb3JtYXR9OworICBDRkRpY3Rpb25h
cnlSZWYgc291cmNlQXR0cmlidXRlcyA9CisgICAgICBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KGtl
eXMsIHZhbHVlcywgYXR0cmlidXRlc1NpemUpOworICBpZiAoaW9TdXJmYWNlVmFsdWUpIHsKKyAg
ICBDRlJlbGVhc2UoaW9TdXJmYWNlVmFsdWUpOworICAgIGlvU3VyZmFjZVZhbHVlID0gbnVsbHB0
cjsKKyAgfQorICBpZiAocGl4ZWxGb3JtYXQpIHsKKyAgICBDRlJlbGVhc2UocGl4ZWxGb3JtYXQp
OworICAgIHBpeGVsRm9ybWF0ID0gbnVsbHB0cjsKKyAgfQorICBDRk11dGFibGVEaWN0aW9uYXJ5
UmVmIGVuY29kZXJfc3BlY3MgPSBudWxscHRyOworI2lmIGRlZmluZWQoV0VCUlRDX01BQykgJiYg
IWRlZmluZWQoV0VCUlRDX0lPUykKKyAgLy8gQ3VycmVudGx5IGh3IGFjY2wgaXMgc3VwcG9ydGVk
IGFib3ZlIDM2MHAgb24gbWFjLCBiZWxvdyAzNjBwCisgIC8vIHRoZSBjb21wcmVzc2lvbiBzZXNz
aW9uIHdpbGwgYmUgY3JlYXRlZCB3aXRoIGh3IGFjY2wgZGlzYWJsZWQuCisgIGVuY29kZXJfc3Bl
Y3MgPQorICAgICAgQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShudWxscHRyLCAyLCAma0NGVHlw
ZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKTsKKyAgQ0ZEaWN0aW9uYXJ5U2V0VmFs
dWUoCisgICAgICBlbmNvZGVyX3NwZWNzLAorICAgICAga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNh
dGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyLAorICAgICAga0NGQm9v
bGVhblRydWUpOworI2lmIEhBVkVfVlRCX1JFUVVJUkVETE9XTEFURU5DWQorICBDRkRpY3Rpb25h
cnlTZXRWYWx1ZShlbmNvZGVyU3BlY3MsIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fUmVx
dWlyZWRMb3dMYXRlbmN5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisjZW5kaWYKKyNlbmRpZgorICBPU1N0
YXR1cyBzdGF0dXMgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSgKKyAgICAgIG51bGxwdHIs
ICAvLyB1c2UgZGVmYXVsdCBhbGxvY2F0b3IKKyAgICAgIF93aWR0aCwgX2hlaWdodCwga0NNVmlk
ZW9Db2RlY1R5cGVfSEVWQywKKyAgICAgIGVuY29kZXJfc3BlY3MsICAvLyB1c2UgaGFyZHdhcmUg
YWNjZWxlcmF0ZWQgZW5jb2RlciBpZiBhdmFpbGFibGUKKyAgICAgIHNvdXJjZUF0dHJpYnV0ZXMs
CisgICAgICBudWxscHRyLCAgLy8gdXNlIGRlZmF1bHQgY29tcHJlc3NlZCBkYXRhIGFsbG9jYXRv
cgorICAgICAgY29tcHJlc3Npb25PdXRwdXRDYWxsYmFjaywgbnVsbHB0ciwgJl9jb21wcmVzc2lv
blNlc3Npb24pOworICBpZiAoc291cmNlQXR0cmlidXRlcykgeworICAgIENGUmVsZWFzZShzb3Vy
Y2VBdHRyaWJ1dGVzKTsKKyAgICBzb3VyY2VBdHRyaWJ1dGVzID0gbnVsbHB0cjsKKyAgfQorICBp
ZiAoZW5jb2Rlcl9zcGVjcykgeworICAgIENGUmVsZWFzZShlbmNvZGVyX3NwZWNzKTsKKyAgICBl
bmNvZGVyX3NwZWNzID0gbnVsbHB0cjsKKyAgfQorICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7Cisg
ICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUgY29tcHJlc3Npb24gc2Vz
c2lvbjogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsK
KyAgfQorI2lmIGRlZmluZWQoV0VCUlRDX01BQykgJiYgIWRlZmluZWQoV0VCUlRDX0lPUykKKyAg
Q0ZCb29sZWFuUmVmIGh3YWNjbF9lbmFibGVkID0gbnVsbHB0cjsKKyAgc3RhdHVzID0gVlRTZXNz
aW9uQ29weVByb3BlcnR5KAorICAgICAgX2NvbXByZXNzaW9uU2Vzc2lvbiwKKyAgICAgIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfVXNpbmdIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVy
LCBudWxscHRyLAorICAgICAgJmh3YWNjbF9lbmFibGVkKTsKKyAgaWYgKHN0YXR1cyA9PSBub0Vy
ciAmJiAoQ0ZCb29sZWFuR2V0VmFsdWUoaHdhY2NsX2VuYWJsZWQpKSkgeworICAgIFJUQ19MT0co
TFNfSU5GTykgPDwgIkNvbXByZXNzaW9uIHNlc3Npb24gY3JlYXRlZCB3aXRoIGh3IGFjY2wgZW5h
YmxlZCI7CisgIH0gZWxzZSB7CisgICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiQ29tcHJlc3Npb24g
c2Vzc2lvbiBjcmVhdGVkIHdpdGggaHcgYWNjbCBkaXNhYmxlZCI7CisgIH0KKyNlbmRpZgorICBb
c2VsZiBjb25maWd1cmVDb21wcmVzc2lvblNlc3Npb25dOworICByZXR1cm4gV0VCUlRDX1ZJREVP
X0NPREVDX09LOworfQorCistICh2b2lkKWNvbmZpZ3VyZUNvbXByZXNzaW9uU2Vzc2lvbiB7Cisg
IFJUQ19EQ0hFQ0soX2NvbXByZXNzaW9uU2Vzc2lvbik7CisgIFNldFZUU2Vzc2lvblByb3BlcnR5
KF9jb21wcmVzc2lvblNlc3Npb24sIG51bGxwdHIsIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlf
UmVhbFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgLy8gU2V0VlRTZXNz
aW9uUHJvcGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwKKyAgLy8ga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIF9wcm9maWxlKTsKKyAgU2V0VlRTZXNzaW9uUHJvcGVydHko
X2NvbXByZXNzaW9uU2Vzc2lvbiwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BbGxvd0ZyYW1lUmVvcmRlcmluZywgZmFsc2UpOworICBb
c2VsZiBzZXRFbmNvZGVyQml0cmF0ZUJwczpfdGFyZ2V0Qml0cmF0ZUJwc107CisKKyAgLy8gU2V0
IGEgcmVsYXRpdmVseSBsYXJnZSB2YWx1ZSBmb3Iga2V5ZnJhbWUgZW1pc3Npb24gKDcyMDAgZnJh
bWVzIG9yIDQgbWludXRlcykuCisgIFNldFZUU2Vzc2lvblByb3BlcnR5KF9jb21wcmVzc2lvblNl
c3Npb24sIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgIGtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbCwgNzIwMCk7CisgIFNldFZUU2Vzc2lvblByb3Bl
cnR5KF9jb21wcmVzc2lvblNlc3Npb24sIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAg
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAyNDApOworICBPU1N0YXR1cyBzdGF0dXMgPQorICAgICAg
VlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMoX2NvbXByZXNzaW9uU2Vz
c2lvbik7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8
PCAiQ29tcHJlc3Npb24gc2Vzc2lvbiBmYWlsZWQgdG8gcHJlcGFyZSBlbmNvZGUgZnJhbWVzLiI7
CisgIH0KK30KKworLSAodm9pZClkZXN0cm95Q29tcHJlc3Npb25TZXNzaW9uIHsKKyAgaWYgKF9j
b21wcmVzc2lvblNlc3Npb24pIHsKKyAgICBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUo
X2NvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgQ0ZSZWxlYXNlKF9jb21wcmVzc2lvblNlc3Npb24p
OworICAgIF9jb21wcmVzc2lvblNlc3Npb24gPSBudWxscHRyOworICB9Cit9CisKKy0gKE5TU3Ry
aW5nKilpbXBsZW1lbnRhdGlvbk5hbWUgeworICByZXR1cm4gQCJWaWRlb1Rvb2xib3giOworfQor
CistICh2b2lkKXNldEJpdHJhdGVCcHM6KHVpbnQzMl90KWJpdHJhdGVCcHMgeworICBpZiAoX2Vu
Y29kZXJCaXRyYXRlQnBzICE9IGJpdHJhdGVCcHMpIHsKKyAgICBbc2VsZiBzZXRFbmNvZGVyQml0
cmF0ZUJwczpiaXRyYXRlQnBzXTsKKyAgfQorfQorCistICh2b2lkKXNldEVuY29kZXJCaXRyYXRl
QnBzOih1aW50MzJfdCliaXRyYXRlQnBzIHsKKyAgaWYgKF9jb21wcmVzc2lvblNlc3Npb24pIHsK
KyAgICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNzaW9uLCBudWxscHRyLCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0F2ZXJh
Z2VCaXRSYXRlLCBiaXRyYXRlQnBzKTsKKworICAgIC8vIFRPRE8odGtjaGluKTogQWRkIGEgaGVs
cGVyIG1ldGhvZCB0byBzZXQgYXJyYXkgdmFsdWUuCisgICAgaW50NjRfdCBkYXRhTGltaXRCeXRl
c1BlclNlY29uZFZhbHVlID0KKyAgICAgICAgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYml0cmF0ZUJw
cyAqIGtMaW1pdFRvQXZlcmFnZUJpdFJhdGVGYWN0b3IgLyA4KTsKKyAgICBDRk51bWJlclJlZiBi
eXRlc1BlclNlY29uZCA9CisgICAgICAgIENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIGtDRk51bWJlclNJbnQ2NFR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICZkYXRhTGlt
aXRCeXRlc1BlclNlY29uZFZhbHVlKTsKKyAgICBpbnQ2NF90IG9uZVNlY29uZFZhbHVlID0gMTsK
KyAgICBDRk51bWJlclJlZiBvbmVTZWNvbmQgPSBDRk51bWJlckNyZWF0ZSgKKyAgICAgICAga0NG
QWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyU0ludDY0VHlwZSwgJm9uZVNlY29uZFZhbHVlKTsK
KyAgICBjb25zdCB2b2lkKiBudW1zWzJdID0ge2J5dGVzUGVyU2Vjb25kLCBvbmVTZWNvbmR9Owor
ICAgIENGQXJyYXlSZWYgZGF0YVJhdGVMaW1pdHMgPQorICAgICAgICBDRkFycmF5Q3JlYXRlKG51
bGxwdHIsIG51bXMsIDIsICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpOworICAgIE9TU3RhdHVzIHN0
YXR1cyA9IFZUU2Vzc2lvblNldFByb3BlcnR5KAorICAgICAgICBfY29tcHJlc3Npb25TZXNzaW9u
LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0RhdGFSYXRlTGltaXRzLAorICAgICAgICBkYXRh
UmF0ZUxpbWl0cyk7CisgICAgaWYgKGJ5dGVzUGVyU2Vjb25kKSB7CisgICAgICBDRlJlbGVhc2Uo
Ynl0ZXNQZXJTZWNvbmQpOworICAgIH0KKyAgICBpZiAob25lU2Vjb25kKSB7CisgICAgICBDRlJl
bGVhc2Uob25lU2Vjb25kKTsKKyAgICB9CisgICAgaWYgKGRhdGFSYXRlTGltaXRzKSB7CisgICAg
ICBDRlJlbGVhc2UoZGF0YVJhdGVMaW1pdHMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzICE9IG5v
RXJyKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHNldCBkYXRhIHJh
dGUgbGltaXQiOworICAgIH0KKworICAgIF9lbmNvZGVyQml0cmF0ZUJwcyA9IGJpdHJhdGVCcHM7
CisgIH0KK30KKworLSAodm9pZClmcmFtZVdhc0VuY29kZWQ6KE9TU3RhdHVzKXN0YXR1cworICAg
ICAgICAgICAgICAgICAgZmxhZ3M6KFZURW5jb2RlSW5mb0ZsYWdzKWluZm9GbGFncworICAgICAg
ICAgICBzYW1wbGVCdWZmZXI6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlcgorICAgICAg
ICAgICAgICAgICAgd2lkdGg6KGludDMyX3Qpd2lkdGgKKyAgICAgICAgICAgICAgICAgaGVpZ2h0
OihpbnQzMl90KWhlaWdodAorICAgICAgICAgICByZW5kZXJUaW1lTXM6KGludDY0X3QpcmVuZGVy
VGltZU1zCisgICAgICAgICAgICAgIHRpbWVzdGFtcDoodWludDMyX3QpdGltZXN0YW1wCisgICAg
ICAgICAgICAgICByb3RhdGlvbjooUlRDVmlkZW9Sb3RhdGlvbilyb3RhdGlvbiB7CisgIGlmIChz
dGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiaDI2NSBlbmNvZGUg
ZmFpbGVkLiI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChpbmZvRmxhZ3MgJiBrVlRFbmNvZGVJ
bmZvX0ZyYW1lRHJvcHBlZCkgeworICAgIFJUQ19MT0coTFNfSU5GTykgPDwgImgyNjUgZW5jb2Rl
ciBkcm9wcGVkIGEgZnJhbWUuIjsKKyAgICByZXR1cm47CisgIH0KKworICBCT09MIGlzS2V5ZnJh
bWUgPSBOTzsKKyAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9CisgICAgICBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLCAwKTsKKyAgaWYgKGF0dGFj
aG1lbnRzICE9IG51bGxwdHIgJiYgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzKSkgeworICAg
IENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50ID0KKyAgICAgICAgc3RhdGljX2Nhc3Q8Q0ZEaWN0
aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzLCAwKSk7CisgICAg
aXNLZXlmcmFtZSA9CisgICAgICAgICFDRkRpY3Rpb25hcnlDb250YWluc0tleShhdHRhY2htZW50
LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMpOworICB9CisKKyAgaWYgKGlzS2V5ZnJh
bWUpIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJHZW5lcmF0ZWQga2V5ZnJhbWUiOworICB9
CisKKyAgLy8gQ29udmVydCB0aGUgc2FtcGxlIGJ1ZmZlciBpbnRvIGEgYnVmZmVyIHN1aXRhYmxl
IGZvciBSVFAgcGFja2V0aXphdGlvbi4KKyAgLy8gVE9ETyh0a2NoaW4pOiBBbGxvY2F0ZSBidWZm
ZXJzIHRocm91Z2ggYSBwb29sLgorICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpCdWZmZXI+IGJ1ZmZl
cihuZXcgcnRjOjpCdWZmZXIoKSk7CisgIFJUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIqIGhlYWRl
cjsKKyAgeworICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlJUUEZyYWdtZW50YXRpb25IZWFk
ZXI+IGhlYWRlcl9jcHA7CisgICAgYm9vbCByZXN1bHQgPSBIMjY1Q01TYW1wbGVCdWZmZXJUb0Fu
bmV4QkJ1ZmZlcihzYW1wbGVCdWZmZXIsIGlzS2V5ZnJhbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuZ2V0KCksICZoZWFkZXJfY3Bw
KTsKKyAgICBoZWFkZXIgPSBbW1JUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIgYWxsb2NdCisgICAg
ICAgIGluaXRXaXRoTmF0aXZlRnJhZ21lbnRhdGlvbkhlYWRlcjpoZWFkZXJfY3BwLmdldCgpXTsK
KyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0
byBjb252ZXJ0IHNhbXBsZSBidWZmZXIuIjsKKyAgICAgIHJldHVybjsKKyAgICB9CisgIH0KKwor
ICBSVENFbmNvZGVkSW1hZ2UqIGZyYW1lID0gW1tSVENFbmNvZGVkSW1hZ2UgYWxsb2NdIGluaXRd
OworICBmcmFtZS5idWZmZXIgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6YnVmZmVyLT5k
YXRhKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoOmJ1ZmZl
ci0+c2l6ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVXaGVuRG9uZTpO
T107CisgIGZyYW1lLmVuY29kZWRXaWR0aCA9IHdpZHRoOworICBmcmFtZS5lbmNvZGVkSGVpZ2h0
ID0gaGVpZ2h0OworICBmcmFtZS5jb21wbGV0ZUZyYW1lID0gWUVTOworICBmcmFtZS5mcmFtZVR5
cGUgPQorICAgICAgaXNLZXlmcmFtZSA/IFJUQ0ZyYW1lVHlwZVZpZGVvRnJhbWVLZXkgOiBSVENG
cmFtZVR5cGVWaWRlb0ZyYW1lRGVsdGE7CisgIGZyYW1lLmNhcHR1cmVUaW1lTXMgPSByZW5kZXJU
aW1lTXM7CisgIGZyYW1lLnRpbWVTdGFtcCA9IHRpbWVzdGFtcDsKKyAgZnJhbWUucm90YXRpb24g
PSByb3RhdGlvbjsKKyAgZnJhbWUuY29udGVudFR5cGUgPSAoX21vZGUgPT0gUlRDVmlkZW9Db2Rl
Y01vZGVTY3JlZW5zaGFyaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgICA/IFJUQ1ZpZGVv
Q29udGVudFR5cGVTY3JlZW5zaGFyZQorICAgICAgICAgICAgICAgICAgICAgICAgICA6IFJUQ1Zp
ZGVvQ29udGVudFR5cGVVbnNwZWNpZmllZDsKKyAgZnJhbWUuZmxhZ3MgPSB3ZWJydGM6OlZpZGVv
U2VuZFRpbWluZzo6a0ludmFsaWQ7CisKKyAgLy8gRklYTUU6IFFQIGlzIGlnbm9yZWQgYmVjYXVz
ZSB0aGVyZSBpcyBubyBILjI2NSBiaXRzdHJlYW0gcGFyc2VyLgorCisgIEJPT0wgcmVzID0gX2Nh
bGxiYWNrKGZyYW1lLCBbW1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NSBhbGxvY10gaW5pdF0sIGhl
YWRlcik7CisgIGlmICghcmVzKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkVuY29kZSBj
YWxsYmFjayBmYWlsZWQuIjsKKyAgICByZXR1cm47CisgIH0KKyAgX2JpdHJhdGVBZGp1c3Rlci0+
VXBkYXRlKGZyYW1lLmJ1ZmZlci5sZW5ndGgpOworfQorCistIChSVENWaWRlb0VuY29kZXJRcFRo
cmVzaG9sZHMqKXNjYWxpbmdTZXR0aW5ncyB7CisgIHJldHVybiBbW1JUQ1ZpZGVvRW5jb2RlclFw
VGhyZXNob2xkcyBhbGxvY10KKyAgICAgIGluaXRXaXRoVGhyZXNob2xkc0xvdzprTG93aDI2NVFw
VGhyZXNob2xkCisgICAgICAgICAgICAgICAgICAgICAgIGhpZ2g6a0hpZ2hoMjY1UXBUaHJlc2hv
bGRdOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0
ZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2Jq
Yy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuY2MKaW5kZXggZGMyNThkNjA2
NGEwZmVlYTAwNmVlMjk4MmUwMDM3YjA1NWJiYTM3My4uZGRmNzM0NjA1MTE1YmM3Yjc0ZjEyODI5
YTRjZGVjY2YzNDQwZmNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3Jp
dGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5jYwpAQCAtMjQ4LDYg
KzI0OCwyMjkgQEAgYm9vbCBIMjY0QW5uZXhCQnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcihjb25zdCB1
aW50OF90KiBhbm5leGJfYnVmZmVyLAogICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmbmRlZiBESVNB
QkxFX0gyNjUKK2Jvb2wgSDI2NUNNU2FtcGxlQnVmZmVyVG9Bbm5leEJCdWZmZXIoCisgICAgQ01T
YW1wbGVCdWZmZXJSZWYgaHZjY19zYW1wbGVfYnVmZmVyLAorICAgIGJvb2wgaXNfa2V5ZnJhbWUs
CisgICAgcnRjOjpCdWZmZXIqIGFubmV4Yl9idWZmZXIsCisgICAgc3RkOjp1bmlxdWVfcHRyPFJU
UEZyYWdtZW50YXRpb25IZWFkZXI+ICpvdXRfaGVhZGVyKSB7CisgIFJUQ19EQ0hFQ0soaHZjY19z
YW1wbGVfYnVmZmVyKTsKKyAgUlRDX0RDSEVDSyhvdXRfaGVhZGVyKTsKKyAgb3V0X2hlYWRlci0+
cmVzZXQobnVsbHB0cik7CisKKyAgLy8gR2V0IGZvcm1hdCBkZXNjcmlwdGlvbiBmcm9tIHRoZSBz
YW1wbGUgYnVmZmVyLgorICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzY3JpcHRpb24g
PQorICAgICAgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihodmNjX3NhbXBsZV9i
dWZmZXIpOworICBpZiAoZGVzY3JpcHRpb24gPT0gbnVsbHB0cikgeworICAgIFJUQ19MT0coTFNf
RVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IHNhbXBsZSBidWZmZXIncyBkZXNjcmlwdGlvbi4iOwor
ICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIC8vIEdldCBwYXJhbWV0ZXIgc2V0IGluZm9ybWF0
aW9uLgorICBpbnQgbmFsdV9oZWFkZXJfc2l6ZSA9IDA7CisgIHNpemVfdCBwYXJhbV9zZXRfY291
bnQgPSAwOworICBPU1N0YXR1cyBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRI
RVZDUGFyYW1ldGVyU2V0QXRJbmRleCgKKyAgICAgIGRlc2NyaXB0aW9uLCAwLCBudWxscHRyLCBu
dWxscHRyLCAmcGFyYW1fc2V0X2NvdW50LCAmbmFsdV9oZWFkZXJfc2l6ZSk7CisgIGlmIChzdGF0
dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBw
YXJhbWV0ZXIgc2V0LiI7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIFJUQ19DSEVDS19FUShu
YWx1X2hlYWRlcl9zaXplLCBrQXZjY0hlYWRlckJ5dGVTaXplKTsKKyAgUlRDX0RDSEVDS19FUShw
YXJhbV9zZXRfY291bnQsIDMpOworCisgIC8vIFRydW5jYXRlIGFueSBwcmV2aW91cyBkYXRhIGlu
IHRoZSBidWZmZXIgd2l0aG91dCBjaGFuZ2luZyBpdHMgY2FwYWNpdHkuCisgIGFubmV4Yl9idWZm
ZXItPlNldFNpemUoMCk7CisKKyAgc2l6ZV90IG5hbHVfb2Zmc2V0ID0gMDsKKyAgc3RkOjp2ZWN0
b3I8c2l6ZV90PiBmcmFnX29mZnNldHM7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4gZnJhZ19sZW5n
dGhzOworCisgIC8vIFBsYWNlIGFsbCBwYXJhbWV0ZXIgc2V0cyBhdCB0aGUgZnJvbnQgb2YgYnVm
ZmVyLgorICBpZiAoaXNfa2V5ZnJhbWUpIHsKKyAgICBzaXplX3QgcGFyYW1fc2V0X3NpemUgPSAw
OworICAgIGNvbnN0IHVpbnQ4X3QqIHBhcmFtX3NldCA9IG51bGxwdHI7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBwYXJhbV9zZXRfY291bnQ7ICsraSkgeworICAgICAgc3RhdHVzID0gQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0SEVWQ1BhcmFtZXRlclNldEF0SW5kZXgoCisgICAgICAg
ICAgZGVzY3JpcHRpb24sIGksICZwYXJhbV9zZXQsICZwYXJhbV9zZXRfc2l6ZSwgbnVsbHB0ciwg
bnVsbHB0cik7CisgICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgICAgIFJUQ19MT0co
TFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IHBhcmFtZXRlciBzZXQuIjsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgfQorICAgICAgLy8gVXBkYXRlIGJ1ZmZlci4KKyAgICAgIGFubmV4
Yl9idWZmZXItPkFwcGVuZERhdGEoa0FubmV4QkhlYWRlckJ5dGVzLCBzaXplb2Yoa0FubmV4Qkhl
YWRlckJ5dGVzKSk7CisgICAgICBhbm5leGJfYnVmZmVyLT5BcHBlbmREYXRhKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgY2hhcio+KHBhcmFtX3NldCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhcmFtX3NldF9zaXplKTsKKyAgICAgIC8vIFVwZGF0ZSBmcmFnbWVudGF0aW9uLgor
ICAgICAgZnJhZ19vZmZzZXRzLnB1c2hfYmFjayhuYWx1X29mZnNldCArIHNpemVvZihrQW5uZXhC
SGVhZGVyQnl0ZXMpKTsKKyAgICAgIGZyYWdfbGVuZ3Rocy5wdXNoX2JhY2socGFyYW1fc2V0X3Np
emUpOworICAgICAgbmFsdV9vZmZzZXQgKz0gc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykgKyBw
YXJhbV9zZXRfc2l6ZTsKKyAgICB9CisgIH0KKworICAvLyBHZXQgYmxvY2sgYnVmZmVyIGZyb20g
dGhlIHNhbXBsZSBidWZmZXIuCisgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tfYnVmZmVyID0KKyAg
ICAgIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihodmNjX3NhbXBsZV9idWZmZXIpOworICBp
ZiAoYmxvY2tfYnVmZmVyID09IG51bGxwdHIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
RmFpbGVkIHRvIGdldCBzYW1wbGUgYnVmZmVyJ3MgYmxvY2sgYnVmZmVyLiI7CisgICAgcmV0dXJu
IGZhbHNlOworICB9CisgIENNQmxvY2tCdWZmZXJSZWYgY29udGlndW91c19idWZmZXIgPSBudWxs
cHRyOworICAvLyBNYWtlIHN1cmUgYmxvY2sgYnVmZmVyIGlzIGNvbnRpZ3VvdXMuCisgIGlmICgh
Q01CbG9ja0J1ZmZlcklzUmFuZ2VDb250aWd1b3VzKGJsb2NrX2J1ZmZlciwgMCwgMCkpIHsKKyAg
ICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlQ29udGlndW91cygKKyAgICAgICAgbnVsbHB0
ciwgYmxvY2tfYnVmZmVyLCBudWxscHRyLCBudWxscHRyLCAwLCAwLCAwLCAmY29udGlndW91c19i
dWZmZXIpOworICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJS
T1IpIDw8ICJGYWlsZWQgdG8gZmxhdHRlbiBub24tY29udGlndW91cyBibG9jayBidWZmZXI6ICIK
KyAgICAgICAgICAgICAgICAgICAgICAgIDw8IHN0YXR1czsKKyAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgIH0gZWxzZSB7CisgICAgY29udGlndW91c19idWZmZXIgPSBibG9ja19idWZmZXI7
CisgICAgLy8gUmV0YWluIHRvIG1ha2UgY2xlYW51cCBlYXNpZXIuCisgICAgQ0ZSZXRhaW4oY29u
dGlndW91c19idWZmZXIpOworICAgIGJsb2NrX2J1ZmZlciA9IG51bGxwdHI7CisgIH0KKworICAv
LyBOb3cgY29weSB0aGUgYWN0dWFsIGRhdGEuCisgIGNoYXIqIGRhdGFfcHRyID0gbnVsbHB0cjsK
KyAgc2l6ZV90IGJsb2NrX2J1ZmZlcl9zaXplID0gQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgo
Y29udGlndW91c19idWZmZXIpOworICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50
ZXIoY29udGlndW91c19idWZmZXIsIDAsIG51bGxwdHIsIG51bGxwdHIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YV9wdHIpOworICBpZiAoc3RhdHVzICE9IG5v
RXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgYmxvY2sgYnVm
ZmVyIGRhdGEuIjsKKyAgICBDRlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOworICAgIHJldHVy
biBmYWxzZTsKKyAgfQorICBzaXplX3QgYnl0ZXNfcmVtYWluaW5nID0gYmxvY2tfYnVmZmVyX3Np
emU7CisgIHdoaWxlIChieXRlc19yZW1haW5pbmcgPiAwKSB7CisgICAgLy8gVGhlIHNpemUgdHlw
ZSBoZXJlIG11c3QgbWF0Y2ggfG5hbHVfaGVhZGVyX3NpemV8LCB3ZSBleHBlY3QgNCBieXRlcy4K
KyAgICAvLyBSZWFkIHRoZSBsZW5ndGggb2YgdGhlIG5leHQgcGFja2V0IG9mIGRhdGEuIE11c3Qg
Y29udmVydCBmcm9tIGJpZyBlbmRpYW4KKyAgICAvLyB0byBob3N0IGVuZGlhbi4KKyAgICBSVENf
RENIRUNLX0dFKGJ5dGVzX3JlbWFpbmluZywgKHNpemVfdCluYWx1X2hlYWRlcl9zaXplKTsKKyAg
ICB1aW50MzJfdCogdWludDMyX2RhdGFfcHRyID0gcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+
KGRhdGFfcHRyKTsKKyAgICB1aW50MzJfdCBwYWNrZXRfc2l6ZSA9IENGU3dhcEludDMyQmlnVG9I
b3N0KCp1aW50MzJfZGF0YV9wdHIpOworICAgIC8vIFVwZGF0ZSBidWZmZXIuCisgICAgYW5uZXhi
X2J1ZmZlci0+QXBwZW5kRGF0YShrQW5uZXhCSGVhZGVyQnl0ZXMsIHNpemVvZihrQW5uZXhCSGVh
ZGVyQnl0ZXMpKTsKKyAgICBhbm5leGJfYnVmZmVyLT5BcHBlbmREYXRhKGRhdGFfcHRyICsgbmFs
dV9oZWFkZXJfc2l6ZSwgcGFja2V0X3NpemUpOworICAgIC8vIFVwZGF0ZSBmcmFnbWVudGF0aW9u
LgorICAgIGZyYWdfb2Zmc2V0cy5wdXNoX2JhY2sobmFsdV9vZmZzZXQgKyBzaXplb2Yoa0FubmV4
QkhlYWRlckJ5dGVzKSk7CisgICAgZnJhZ19sZW5ndGhzLnB1c2hfYmFjayhwYWNrZXRfc2l6ZSk7
CisgICAgbmFsdV9vZmZzZXQgKz0gc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykgKyBwYWNrZXRf
c2l6ZTsKKworICAgIHNpemVfdCBieXRlc193cml0dGVuID0gcGFja2V0X3NpemUgKyBzaXplb2Yo
a0FubmV4QkhlYWRlckJ5dGVzKTsKKyAgICBieXRlc19yZW1haW5pbmcgLT0gYnl0ZXNfd3JpdHRl
bjsKKyAgICBkYXRhX3B0ciArPSBieXRlc193cml0dGVuOworICB9CisgIFJUQ19EQ0hFQ0tfRVEo
Ynl0ZXNfcmVtYWluaW5nLCAoc2l6ZV90KTApOworCisgIHN0ZDo6dW5pcXVlX3B0cjxSVFBGcmFn
bWVudGF0aW9uSGVhZGVyPiBoZWFkZXIobmV3IFJUUEZyYWdtZW50YXRpb25IZWFkZXIoKSk7Cisg
IGhlYWRlci0+VmVyaWZ5QW5kQWxsb2NhdGVGcmFnbWVudGF0aW9uSGVhZGVyKGZyYWdfb2Zmc2V0
cy5zaXplKCkpOworICBSVENfRENIRUNLX0VRKGZyYWdfbGVuZ3Rocy5zaXplKCksIGZyYWdfb2Zm
c2V0cy5zaXplKCkpOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZyYWdfb2Zmc2V0cy5zaXpl
KCk7ICsraSkgeworICAgIGhlYWRlci0+ZnJhZ21lbnRhdGlvbk9mZnNldFtpXSA9IGZyYWdfb2Zm
c2V0c1tpXTsKKyAgICBoZWFkZXItPmZyYWdtZW50YXRpb25MZW5ndGhbaV0gPSBmcmFnX2xlbmd0
aHNbaV07CisgIH0KKyAgKm91dF9oZWFkZXIgPSBzdGQ6Om1vdmUoaGVhZGVyKTsKKyAgQ0ZSZWxl
YXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgSDI2NUFu
bmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFubmV4Yl9idWZm
ZXJfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvX2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYqIG91dF9zYW1wbGVfYnVmZmVyKSB7Cisg
IFJUQ19EQ0hFQ0soYW5uZXhiX2J1ZmZlcik7CisgIFJUQ19EQ0hFQ0sob3V0X3NhbXBsZV9idWZm
ZXIpOworICBSVENfRENIRUNLKHZpZGVvX2Zvcm1hdCk7CisgICpvdXRfc2FtcGxlX2J1ZmZlciA9
IG51bGxwdHI7CisKKyAgQW5uZXhCQnVmZmVyUmVhZGVyIHJlYWRlcihhbm5leGJfYnVmZmVyLCBh
bm5leGJfYnVmZmVyX3NpemUpOworICBpZiAocmVhZGVyLlNlZWtUb05leHROYWx1T2ZUeXBlKEgy
NjU6OmtWcHMpKSB7CisgICAgLy8gQnVmZmVyIGNvbnRhaW5zIGFuIFNQUyBOQUxVIC0gc2tpcCBp
dCBhbmQgdGhlIGZvbGxvd2luZyBQUFMKKyAgICBjb25zdCB1aW50OF90KiBkYXRhOworICAgIHNp
emVfdCBkYXRhX2xlbjsKKyAgICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmZGF0YSwgJmRhdGFfbGVu
KSkgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byByZWFkIFZQUyI7Cisg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmICghcmVhZGVyLlJlYWROYWx1KCZkYXRh
LCAmZGF0YV9sZW4pKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJl
YWQgU1BTIjsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYgKCFyZWFkZXIuUmVh
ZE5hbHUoJmRhdGEsICZkYXRhX2xlbikpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJG
YWlsZWQgdG8gcmVhZCBQUFMiOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfSBlbHNl
IHsKKyAgICAvLyBObyBTUFMgTkFMVSAtIHN0YXJ0IHJlYWRpbmcgZnJvbSB0aGUgZmlyc3QgTkFM
VSBpbiB0aGUgYnVmZmVyCisgICAgcmVhZGVyLlNlZWtUb1N0YXJ0KCk7CisgIH0KKworICAvLyBB
bGxvY2F0ZSBtZW1vcnkgYXMgYSBibG9jayBidWZmZXIuCisgIC8vIFRPRE8odGtjaGluKTogZmln
dXJlIG91dCBob3cgdG8gdXNlIGEgcG9vbC4KKyAgQ01CbG9ja0J1ZmZlclJlZiBibG9ja19idWZm
ZXIgPSBudWxscHRyOworICBPU1N0YXR1cyBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlV2l0
aE1lbW9yeUJsb2NrKAorICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgcmVhZGVyLkJ5dGVzUmVtYWlu
aW5nKCksIG51bGxwdHIsIG51bGxwdHIsIDAsCisgICAgICByZWFkZXIuQnl0ZXNSZW1haW5pbmco
KSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLAorICAgICAgJmJsb2NrX2J1ZmZl
cik7CisgIGlmIChzdGF0dXMgIT0ga0NNQmxvY2tCdWZmZXJOb0VycikgeworICAgIFJUQ19MT0co
TFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIGJsb2NrIGJ1ZmZlci4iOworICAgIHJldHVy
biBmYWxzZTsKKyAgfQorCisgIC8vIE1ha2Ugc3VyZSBibG9jayBidWZmZXIgaXMgY29udGlndW91
cy4KKyAgQ01CbG9ja0J1ZmZlclJlZiBjb250aWd1b3VzX2J1ZmZlciA9IG51bGxwdHI7CisgIGlm
ICghQ01CbG9ja0J1ZmZlcklzUmFuZ2VDb250aWd1b3VzKGJsb2NrX2J1ZmZlciwgMCwgMCkpIHsK
KyAgICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlQ29udGlndW91cygKKyAgICAgICAgbnVs
bHB0ciwgYmxvY2tfYnVmZmVyLCBudWxscHRyLCBudWxscHRyLCAwLCAwLCAwLCAmY29udGlndW91
c19idWZmZXIpOworICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICAgIFJUQ19MT0coTFNf
RVJST1IpIDw8ICJGYWlsZWQgdG8gZmxhdHRlbiBub24tY29udGlndW91cyBibG9jayBidWZmZXI6
ICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IHN0YXR1czsKKyAgICAgIENGUmVsZWFzZShi
bG9ja19idWZmZXIpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgfSBlbHNlIHsKKyAg
ICBjb250aWd1b3VzX2J1ZmZlciA9IGJsb2NrX2J1ZmZlcjsKKyAgICBibG9ja19idWZmZXIgPSBu
dWxscHRyOworICB9CisKKyAgLy8gR2V0IGEgcmF3IHBvaW50ZXIgaW50byBhbGxvY2F0ZWQgbWVt
b3J5LgorICBzaXplX3QgYmxvY2tfYnVmZmVyX3NpemUgPSAwOworICBjaGFyKiBkYXRhX3B0ciA9
IG51bGxwdHI7CisgIHN0YXR1cyA9IENNQmxvY2tCdWZmZXJHZXREYXRhUG9pbnRlcihjb250aWd1
b3VzX2J1ZmZlciwgMCwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZibG9ja19idWZmZXJfc2l6ZSwgJmRhdGFfcHRyKTsKKyAgaWYgKHN0YXR1cyAhPSBr
Q01CbG9ja0J1ZmZlck5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0
byBnZXQgYmxvY2sgYnVmZmVyIGRhdGEgcG9pbnRlci4iOworICAgIENGUmVsZWFzZShjb250aWd1
b3VzX2J1ZmZlcik7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIFJUQ19EQ0hFQ0soYmxvY2tf
YnVmZmVyX3NpemUgPT0gcmVhZGVyLkJ5dGVzUmVtYWluaW5nKCkpOworCisgIC8vIFdyaXRlIEF2
Y2MgTkFMVXMgaW50byBibG9jayBidWZmZXIgbWVtb3J5LgorICBBdmNjQnVmZmVyV3JpdGVyIHdy
aXRlcihyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkYXRhX3B0ciksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJsb2NrX2J1ZmZlcl9zaXplKTsKKyAgd2hpbGUgKHJlYWRlci5CeXRlc1Jl
bWFpbmluZygpID4gMCkgeworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfZGF0YV9wdHIgPSBudWxs
cHRyOworICAgIHNpemVfdCBuYWx1X2RhdGFfc2l6ZSA9IDA7CisgICAgaWYgKHJlYWRlci5SZWFk
TmFsdSgmbmFsdV9kYXRhX3B0ciwgJm5hbHVfZGF0YV9zaXplKSkgeworICAgICAgd3JpdGVyLldy
aXRlTmFsdShuYWx1X2RhdGFfcHRyLCBuYWx1X2RhdGFfc2l6ZSk7CisgICAgfQorICB9CisKKyAg
Ly8gQ3JlYXRlIHNhbXBsZSBidWZmZXIuCisgIHN0YXR1cyA9IENNU2FtcGxlQnVmZmVyQ3JlYXRl
KG51bGxwdHIsIGNvbnRpZ3VvdXNfYnVmZmVyLCB0cnVlLCBudWxscHRyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBudWxscHRyLCB2aWRlb19mb3JtYXQsIDEsIDAsIG51bGxwdHIs
IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIsIG91dF9zYW1wbGVf
YnVmZmVyKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1Ip
IDw8ICJGYWlsZWQgdG8gY3JlYXRlIHNhbXBsZSBidWZmZXIuIjsKKyAgICBDRlJlbGVhc2UoY29u
dGlndW91c19idWZmZXIpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBDRlJlbGVhc2UoY29u
dGlndW91c19idWZmZXIpOworICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25SZWYgQ3JlYXRlVmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKICAgICBjb25z
dCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUp
IHsKQEAgLTI3OCw2ICs1MDEsNDMgQEAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIENyZWF0
ZVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCiAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAorI2lm
bmRlZiBESVNBQkxFX0gyNjUKK0NNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBDcmVhdGVIMjY1
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKKyAgICBjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVy
LAorICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUpIHsKKyAgY29uc3QgdWludDhfdCogcGFy
YW1fc2V0X3B0cnNbM10gPSB7fTsKKyAgc2l6ZV90IHBhcmFtX3NldF9zaXplc1szXSA9IHt9Owor
ICBBbm5leEJCdWZmZXJSZWFkZXIgcmVhZGVyKGFubmV4Yl9idWZmZXIsIGFubmV4Yl9idWZmZXJf
c2l6ZSk7CisgIC8vIFNraXAgZXZlcnl0aW5nIGJlZm9yZSB0aGUgVlBTLCB0aGVuIHJlYWQgdGhl
IFZQUywgU1BTIGFuZCBQUFMKKyAgaWYgKCFyZWFkZXIuU2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2
NTo6a1ZwcykpIHsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICBpZiAoIXJlYWRlci5SZWFk
TmFsdSgmcGFyYW1fc2V0X3B0cnNbMF0sICZwYXJhbV9zZXRfc2l6ZXNbMF0pKSB7CisgICAgUlRD
X0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byByZWFkIFZQUyI7CisgICAgcmV0dXJuIG51bGxw
dHI7CisgIH0KKyAgaWYgKCFyZWFkZXIuUmVhZE5hbHUoJnBhcmFtX3NldF9wdHJzWzFdLCAmcGFy
YW1fc2V0X3NpemVzWzFdKSkgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8g
cmVhZCBTUFMiOworICAgIHJldHVybiBudWxscHRyOworICB9CisgIGlmICghcmVhZGVyLlJlYWRO
YWx1KCZwYXJhbV9zZXRfcHRyc1syXSwgJnBhcmFtX3NldF9zaXplc1syXSkpIHsKKyAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgUFBTIjsKKyAgICByZXR1cm4gbnVsbHB0
cjsKKyAgfQorCisgIC8vIFBhcnNlIHRoZSBTUFMgYW5kIFBQUyBpbnRvIGEgQ01WaWRlb0Zvcm1h
dERlc2NyaXB0aW9uLgorICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzY3JpcHRpb24g
PSBudWxscHRyOworICBPU1N0YXR1cyBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25D
cmVhdGVGcm9tSEVWQ1BhcmFtZXRlclNldHMoCisgICAgICBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAz
LCBwYXJhbV9zZXRfcHRycywgcGFyYW1fc2V0X3NpemVzLCA0LCBudWxscHRyLAorICAgICAgJmRl
c2NyaXB0aW9uKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJS
T1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHZpZGVvIGZvcm1hdCBkZXNjcmlwdGlvbi4iOworICAg
IHJldHVybiBudWxscHRyOworICB9CisgIHJldHVybiBkZXNjcmlwdGlvbjsKK30KKyNlbmRpZgor
CiBBbm5leEJCdWZmZXJSZWFkZXI6OkFubmV4QkJ1ZmZlclJlYWRlcihjb25zdCB1aW50OF90KiBh
bm5leGJfYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IGxlbmd0aCkKICAgICA6IHN0YXJ0Xyhhbm5leGJfYnVmZmVyKSwgbGVuZ3RoXyhsZW5ndGgp
IHsKQEAgLTMyNCw2ICs1ODQsMTkgQEAgYm9vbCBBbm5leEJCdWZmZXJSZWFkZXI6OlNlZWtUb05l
eHROYWx1T2ZUeXBlKE5hbHVUeXBlIHR5cGUpIHsKICAgfQogICByZXR1cm4gZmFsc2U7CiB9CisK
KyNpZm5kZWYgRElTQUJMRV9IMjY1Citib29sIEFubmV4QkJ1ZmZlclJlYWRlcjo6U2Vla1RvTmV4
dE5hbHVPZlR5cGUoSDI2NTo6TmFsdVR5cGUgdHlwZSkgeworICBmb3IgKDsgb2Zmc2V0XyAhPSBv
ZmZzZXRzXy5lbmQoKTsgKytvZmZzZXRfKSB7CisgICAgaWYgKG9mZnNldF8tPnBheWxvYWRfc2l6
ZSA8IDEpCisgICAgICBjb250aW51ZTsKKyAgICBpZiAoSDI2NTo6UGFyc2VOYWx1VHlwZSgqKHN0
YXJ0XyArIG9mZnNldF8tPnBheWxvYWRfc3RhcnRfb2Zmc2V0KSkgPT0gdHlwZSkKKyAgICAgIHJl
dHVybiB0cnVlOworICB9CisgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiBBdmNjQnVmZmVy
V3JpdGVyOjpBdmNjQnVmZmVyV3JpdGVyKHVpbnQ4X3QqIGNvbnN0IGF2Y2NfYnVmZmVyLCBzaXpl
X3QgbGVuZ3RoKQogICAgIDogc3RhcnRfKGF2Y2NfYnVmZmVyKSwgb2Zmc2V0XygwKSwgbGVuZ3Ro
XyhsZW5ndGgpIHsKICAgUlRDX0RDSEVDSyhhdmNjX2J1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdy
aXRlci5oCmluZGV4IGEwYzFhYTkwYWY1NzU5ZGUzOWI1ZDA2YzIyMWQyODQyOTQzODk4NzYuLjRk
YTFjYzU3YzdkMTBhOGJmMzZhMjg4ZDczMWMzYzg2MTBlZDU3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9y
ZXdyaXRlci5oCkBAIC0xOCw2ICsxOCw5IEBACiAjaW5jbHVkZSA8dmVjdG9yPgogCiAjaW5jbHVk
ZSAiY29tbW9uX3ZpZGVvL2gyNjQvaDI2NF9jb21tb24uaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1
CisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCiAjaW5jbHVkZSAi
cnRjX2Jhc2UvYnVmZmVyLmgiCiAKQEAgLTQ3LDYgKzUwLDMxIEBAIGJvb2wgSDI2NEFubmV4QkJ1
ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYqIG91dF9z
YW1wbGVfYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTU1l
bW9yeVBvb2xSZWYgbWVtb3J5X3Bvb2wpOwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorLy8gQ29u
dmVydHMgYSBzYW1wbGUgYnVmZmVyIGVtaXR0ZWQgZnJvbSB0aGUgVmlkZW9Ub29sYm94IGVuY29k
ZXIgaW50byBhIGJ1ZmZlcgorLy8gc3VpdGFibGUgZm9yIFJUUC4gVGhlIHNhbXBsZSBidWZmZXIg
aXMgaW4gaHZjYyBmb3JtYXQgd2hlcmVhcyB0aGUgcnRwIGJ1ZmZlcgorLy8gbmVlZHMgdG8gYmUg
aW4gQW5uZXggQiBmb3JtYXQuIERhdGEgaXMgd3JpdHRlbiBkaXJlY3RseSB0byB8YW5uZXhiX2J1
ZmZlcnwKKy8vIGFuZCBhIG5ldyBSVFBGcmFnbWVudGF0aW9uSGVhZGVyIGlzIHJldHVybmVkIGlu
IHxvdXRfaGVhZGVyfC4KK2Jvb2wgSDI2NUNNU2FtcGxlQnVmZmVyVG9Bbm5leEJCdWZmZXIoCisg
ICAgQ01TYW1wbGVCdWZmZXJSZWYgaHZjY19zYW1wbGVfYnVmZmVyLAorICAgIGJvb2wgaXNfa2V5
ZnJhbWUsCisgICAgcnRjOjpCdWZmZXIqIGFubmV4Yl9idWZmZXIsCisgICAgc3RkOjp1bmlxdWVf
cHRyPFJUUEZyYWdtZW50YXRpb25IZWFkZXI+ICpvdXRfaGVhZGVyKQorICAgIF9fT1NYX0FWQUlM
QUJMRV9TVEFSVElORyhfX01BQ18xMF8xMiwgX19JUEhPTkVfMTFfMCk7CisKKyAvLyBDb252ZXJ0
cyBhIGJ1ZmZlciByZWNlaXZlZCBmcm9tIFJUUCBpbnRvIGEgc2FtcGxlIGJ1ZmZlciBzdWl0YWJs
ZSBmb3IgdGhlCisvLyBWaWRlb1Rvb2xib3ggZGVjb2Rlci4gVGhlIFJUUCBidWZmZXIgaXMgaW4g
YW5uZXggYiBmb3JtYXQgd2hlcmVhcyB0aGUgc2FtcGxlCisvLyBidWZmZXIgaXMgaW4gaHZjYyBm
b3JtYXQuCisvLyBJZiB8aXNfa2V5ZnJhbWV8IGlzIHRydWUgdGhlbiB8dmlkZW9fZm9ybWF0fCBp
cyBpZ25vcmVkIHNpbmNlIHRoZSBmb3JtYXQgd2lsbAorLy8gYmUgcmVhZCBmcm9tIHRoZSBidWZm
ZXIuIE90aGVyd2lzZSB8dmlkZW9fZm9ybWF0fCBtdXN0IGJlIHByb3ZpZGVkLgorLy8gQ2FsbGVy
IGlzIHJlc3BvbnNpYmxlIGZvciByZWxlYXNpbmcgdGhlIGNyZWF0ZWQgc2FtcGxlIGJ1ZmZlci4K
K2Jvb2wgSDI2NUFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3QgdWludDhfdCogYW5u
ZXhiX2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IGFubmV4Yl9idWZmZXJfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvX2Zvcm1hdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYqIG91dF9zYW1wbGVf
YnVmZmVyKQorICAgIF9fT1NYX0FWQUlMQUJMRV9TVEFSVElORyhfX01BQ18xMF8xMiwgX19JUEhP
TkVfMTFfMCk7CisjZW5kaWYKKwogLy8gUmV0dXJucyBhIHZpZGVvIGZvcm1hdCBkZXNjcmlwdGlv
biBjcmVhdGVkIGZyb20gdGhlIHNwcy9wcHMgaW5mb3JtYXRpb24gaW4KIC8vIHRoZSBBbm5leCBC
IGJ1ZmZlci4gSWYgdGhlcmUgaXMgbm8gc3VjaCBpbmZvcm1hdGlvbiwgbnVsbHB0ciBpcyByZXR1
cm5lZC4KIC8vIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHJlbGVhc2luZyB0aGUgZGVz
Y3JpcHRpb24uCkBAIC01NCw2ICs4MiwxMyBAQCBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYg
Q3JlYXRlVmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKICAgICBjb25zdCB1aW50OF90KiBhbm5leGJf
YnVmZmVyLAogICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUpOwogCisjaWZuZGVmIERJU0FC
TEVfSDI2NQorQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIENyZWF0ZUgyNjVWaWRlb0Zvcm1h
dERlc2NyaXB0aW9uKAorICAgIGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCisgICAgc2l6
ZV90IGFubmV4Yl9idWZmZXJfc2l6ZSkKKyAgICBfX09TWF9BVkFJTEFCTEVfU1RBUlRJTkcoX19N
QUNfMTBfMTIsIF9fSVBIT05FXzExXzApOworI2VuZGlmCisKIC8vIEhlbHBlciBjbGFzcyBmb3Ig
cmVhZGluZyBOQUxVcyBmcm9tIGFuIFJUUCBBbm5leCBCIGJ1ZmZlci4KIGNsYXNzIEFubmV4QkJ1
ZmZlclJlYWRlciBmaW5hbCB7CiAgcHVibGljOgpAQCAtNzgsNiArMTEzLDkgQEAgY2xhc3MgQW5u
ZXhCQnVmZmVyUmVhZGVyIGZpbmFsIHsKICAgLy8gUmV0dXJuIHRydWUgaWYgYSBOQUxVIG9mIHRo
ZSBkZXNpcmVkIHR5cGUgaXMgZm91bmQsIGZhbHNlIGlmIHdlCiAgIC8vIHJlYWNoZWQgdGhlIGVu
ZCBpbnN0ZWFkCiAgIGJvb2wgU2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NDo6TmFsdVR5cGUgdHlw
ZSk7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBib29sIFNlZWtUb05leHROYWx1T2ZUeXBlKEgy
NjU6Ok5hbHVUeXBlIHR5cGUpOworI2VuZGlmCiAKICBwcml2YXRlOgogICAvLyBSZXR1cm5zIHRo
ZSB0aGUgbmV4dCBvZmZzZXQgdGhhdCBjb250YWlucyBOQUxVIGRhdGEuCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUv
c3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29k
ZXJfZmFjdG9yeS5tbQppbmRleCA1YWNhMDJkNWFiMGMwNDc1ZDM3MzhiNDc2ZWNlOWQxNDAzOTFm
NzcwLi4yY2E2ZDBlYTY5OGJjNGY4OTE5NmEyMWI0MjlkM2Y3NzhiZTI1YmQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRp
dmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRl
b19kZWNvZGVyX2ZhY3RvcnkubW0KQEAgLTk3LDcgKzk3LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxW
aWRlb0RlY29kZXI+IE9iakNWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIo
CiAgICAgaWYgKFtjb2RlY05hbWUgaXNFcXVhbFRvU3RyaW5nOmNvZGVjSW5mby5uYW1lXSkgewog
ICAgICAgaWQ8UlRDVmlkZW9EZWNvZGVyPiBkZWNvZGVyID0gW2RlY29kZXJfZmFjdG9yeV8gY3Jl
YXRlRGVjb2Rlcjpjb2RlY0luZm9dOwogCi0gICAgICBpZiAoW2RlY29kZXIgaXNLaW5kT2ZDbGFz
czpbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2RlciBjbGFzc11dKSB7CisgICAgICAvLyBCZWNh
dXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5kT2ZDbGFzcyBkb2Vzbid0IHdvcmsgYXMgZXhw
ZWN0ZWQuCisgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5ODc4Mi4KKyAgICAgIC8vIGlmIChbZGVjb2RlciBpc0tpbmRPZkNsYXNzOltSVENXcmFw
cGVkTmF0aXZlVmlkZW9EZWNvZGVyIGNsYXNzXV0pIHsKKyAgICAgIGlmIChbY29kZWNOYW1lIGlz
RXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDkiXSkgewogICAgICAgICBy
ZXR1cm4gWyhSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyICopZGVjb2RlciByZWxlYXNlV3Jh
cHBlZERlY29kZXJdOwogICAgICAgfSBlbHNlIHsKICAgICAgICAgcmV0dXJuIHN0ZDo6dW5pcXVl
X3B0cjxPYmpDVmlkZW9EZWNvZGVyPihuZXcgT2JqQ1ZpZGVvRGVjb2RlcihkZWNvZGVyKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lm1tIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpj
X3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbQppbmRleCBhNzU1MzA3YzZiN2NmMjU0ODdmNjI5Y2Iw
MjQ2OWQ3Yjk0YjQ0YTc2Li4zMzQ2OTgxM2FmMzQ0ZDI5YjRhZmQ2MjljODBhMjJkNDNlN2VkZDMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lm1tCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9z
cmMvb2JqY192aWRlb19lbmNvZGVyX2ZhY3RvcnkubW0KQEAgLTE1LDYgKzE1LDkgQEAKICNpbXBv
cnQgImJhc2UvUlRDVmlkZW9FbmNvZGVyLmgiCiAjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRW5jb2Rl
ckZhY3RvcnkuaCIKICNpbXBvcnQgImNvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY0K1ByaXZhdGUuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW1wb3J0ICJj
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmgi
CisjZW5kaWYKICNpbXBvcnQgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENFbmNvZGVk
SW1hZ2UrUHJpdmF0ZS5oIgogI2ltcG9ydCAic2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JU
Q1J0cEZyYWdtZW50YXRpb25IZWFkZXIrUHJpdmF0ZS5oIgogI2ltcG9ydCAic2RrL29iamMvYXBp
L3BlZXJjb25uZWN0aW9uL1JUQ1ZpZGVvQ29kZWNJbmZvK1ByaXZhdGUuaCIKQEAgLTY1LDggKzY4
LDE2IEBAIGNsYXNzIE9iakNWaWRlb0VuY29kZXIgOiBwdWJsaWMgVmlkZW9FbmNvZGVyIHsKIAog
ICAgICAgLy8gSGFuZGxlIHR5cGVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCBpbnRvIG9uZSBvZiBD
b2RlY1NwZWNpZmljSW5mbydzIGhhcmQgY29kZWQgY2FzZXMuCiAgICAgICBDb2RlY1NwZWNpZmlj
SW5mbyBjb2RlY1NwZWNpZmljSW5mbzsKLSAgICAgIGlmIChbaW5mbyBpc0tpbmRPZkNsYXNzOltS
VENDb2RlY1NwZWNpZmljSW5mb0gyNjQgY2xhc3NdXSkgeworICAgICAgLy8gQmVjYXVzZSBvZiBz
eW1ib2wgY29uZmxpY3QsIGlzS2luZE9mQ2xhc3MgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLgor
ICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3
ODIuCisgICAgICBpZiAoW05TU3RyaW5nRnJvbUNsYXNzKFtpbmZvIGNsYXNzXSkgaXNFcXVhbDpA
IldLX1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCJdKSB7CisgICAgICAgIC8vIGlmIChbaW5mbyBp
c0tpbmRPZkNsYXNzOltSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQgY2xhc3NdXSkgewogICAgICAg
ICBjb2RlY1NwZWNpZmljSW5mbyA9IFsoUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0ICopaW5mbyBu
YXRpdmVDb2RlY1NwZWNpZmljSW5mb107CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgfSBl
bHNlIGlmIChbTlNTdHJpbmdGcm9tQ2xhc3MoW2luZm8gY2xhc3NdKSBpc0VxdWFsOkAiV0tfUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1Il0pIHsKKyAgICAgICAgLy8gaWYgKFtpbmZvIGlzS2luZE9m
Q2xhc3M6W1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NSBjbGFzc11dKSB7CisgICAgICAgIGNvZGVj
U3BlY2lmaWNJbmZvID0gWyhSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUgKilpbmZvIG5hdGl2ZUNv
ZGVjU3BlY2lmaWNJbmZvXTsKKyNlbmRpZgogICAgICAgfQogCiAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UlRQRnJhZ21lbnRhdGlvbkhlYWRlcj4gZnJhZ21lbnRhdGlvbkhlYWRlciA9CkBAIC0xNjcs
NyArMTc4LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0VuY29kZXI+IE9iakNWaWRlb0VuY29k
ZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0VuY29kZXIoCiAgICAgY29uc3QgU2RwVmlkZW9Gb3JtYXQg
JmZvcm1hdCkgewogICBSVENWaWRlb0NvZGVjSW5mbyAqaW5mbyA9IFtbUlRDVmlkZW9Db2RlY0lu
Zm8gYWxsb2NdIGluaXRXaXRoTmF0aXZlU2RwVmlkZW9Gb3JtYXQ6Zm9ybWF0XTsKICAgaWQ8UlRD
VmlkZW9FbmNvZGVyPiBlbmNvZGVyID0gW2VuY29kZXJfZmFjdG9yeV8gY3JlYXRlRW5jb2Rlcjpp
bmZvXTsKLSAgaWYgKFtlbmNvZGVyIGlzS2luZE9mQ2xhc3M6W1JUQ1dyYXBwZWROYXRpdmVWaWRl
b0VuY29kZXIgY2xhc3NdXSkgeworICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNL
aW5kT2ZDbGFzcyBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuCisgIC8vIFNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzgyLgorICAvLyBpZiAoW2VuY29kZXIg
aXNLaW5kT2ZDbGFzczpbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRW5jb2RlciBjbGFzc11dKSB7Cisg
IGlmIChbaW5mby5uYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbaW5mby5uYW1lIGlzRXF1YWw6QCJW
UDkiXSkgewogICAgIHJldHVybiBbKFJUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIgKillbmNv
ZGVyIHJlbGVhc2VXcmFwcGVkRW5jb2Rlcl07CiAgIH0gZWxzZSB7CiAgICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxPYmpDVmlkZW9FbmNvZGVyPihuZXcgT2JqQ1ZpZGVvRW5jb2RlcihlbmNvZGVy
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5j
YwppbmRleCA4NWZiODg2MmYyNWYxZTIxZjc1YmEyMTc4Y2ZkY2Y1ZDA1ZjA3YTUzLi4wNThkZjBh
ZTk2NmU1ZDExZWZhMjRlMDMwNjQ5YzU2MjkxOWEyY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3Jl
Y2VpdmVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MKQEAgLTU4Nyw3ICs1ODcsMjQgQEAg
dm9pZCBSdHBWaWRlb1N0cmVhbVJlY2VpdmVyOjpPblJlY2VpdmVkUGF5bG9hZERhdGEoCiAgICAg
ICAgIHBhY2tldC0+dmlkZW9fcGF5bG9hZCA9IHN0ZDo6bW92ZShmaXhlZC5iaXRzdHJlYW0pOwog
ICAgICAgICBicmVhazsKICAgICB9Ci0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIH0gZWxzZSBp
ZiAocGFja2V0LT5jb2RlYygpID09IGtWaWRlb0NvZGVjSDI2NSkgeworICAgIHZpZGVvX2NvZGlu
Zzo6SDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OkZpeGVkQml0c3RyZWFtIGZpeGVkID0KKyAgICAgICAg
aDI2NV90cmFja2VyXy5Db3B5QW5kRml4Qml0c3RyZWFtKAorICAgICAgICAgICAgcnRjOjpNYWtl
QXJyYXlWaWV3KGNvZGVjX3BheWxvYWQuY2RhdGEoKSwgY29kZWNfcGF5bG9hZC5zaXplKCkpLAor
ICAgICAgICAgICAgJnBhY2tldC0+dmlkZW9faGVhZGVyKTsKKyAgICBzd2l0Y2ggKGZpeGVkLmFj
dGlvbikgeworICAgICAgY2FzZSB2aWRlb19jb2Rpbmc6OkgyNjVWcHNTcHNQcHNUcmFja2VyOjpr
UmVxdWVzdEtleWZyYW1lOgorICAgICAgICBydGNwX2ZlZWRiYWNrX2J1ZmZlcl8uUmVxdWVzdEtl
eUZyYW1lKCk7CisgICAgICAgIHJ0Y3BfZmVlZGJhY2tfYnVmZmVyXy5TZW5kQnVmZmVyZWRSdGNw
RmVlZGJhY2soKTsKKyAgICAgICAgQUJTTF9GQUxMVEhST1VHSF9JTlRFTkRFRDsKKyAgICAgIGNh
c2UgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlcjo6a0Ryb3A6CisgICAgICAgIHJl
dHVybjsKKyAgICAgIGNhc2UgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlcjo6a0lu
c2VydDoKKyAgICAgICAgcGFja2V0LT52aWRlb19wYXlsb2FkID0gc3RkOjptb3ZlKGZpeGVkLmJp
dHN0cmVhbSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyNlbmRpZgogICB9IGVsc2UgewogICAg
IHBhY2tldC0+dmlkZW9fcGF5bG9hZCA9IHN0ZDo6bW92ZShjb2RlY19wYXlsb2FkKTsKICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlk
ZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oCmluZGV4
IDAzMDcwZGI1MWRjNWQzYmJmMzBlNjFmYjhhYTBlZWJlOTVlMjJhNzEuLjMzMDQ1NWIxYjg2YmQ1
ZmQzZTQwZDUzNjM2YjYwM2VjNjcwMzc3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIu
aAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9y
dHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmgKQEAgLTM4LDYgKzM4LDkgQEAKICNpbmNsdWRlICJt
b2R1bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyLmgiCiAjaW5jbHVk
ZSAibW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NF9zcHNfcHBzX3RyYWNrZXIuaCIKICNpbmNsdWRl
ICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9sb3NzX25vdGlmaWNhdGlvbl9jb250cm9sbGVyLmgiCisj
aWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVf
dnBzX3Nwc19wcHNfdHJhY2tlci5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19j
b2RpbmcvcGFja2V0X2J1ZmZlci5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL3J0
cF9mcmFtZV9yZWZlcmVuY2VfZmluZGVyLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2Rp
bmcvdW5pcXVlX3RpbWVzdGFtcF9jb3VudGVyLmgiCkBAIC0zMTcsNiArMzIwLDEwIEBAIGNsYXNz
IFJ0cFZpZGVvU3RyZWFtUmVjZWl2ZXIgOiBwdWJsaWMgTG9zc05vdGlmaWNhdGlvblNlbmRlciwK
ICAgLy8gTWFwcyBwYXlsb2FkIGlkIHRvIHRoZSBkZXBhY2tldGl6ZXIuCiAgIHN0ZDo6bWFwPHVp
bnQ4X3QsIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1J0cERlcGFja2V0aXplcj4+IHBheWxvYWRfdHlw
ZV9tYXBfOwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB2aWRlb19jb2Rpbmc6OkgyNjVWcHNT
cHNQcHNUcmFja2VyIGgyNjVfdHJhY2tlcl87CisjZW5kaWYKKwogICAvLyBUT0RPKGpvaGFuKTog
UmVtb3ZlIHB0X2NvZGVjX3BhcmFtc18gb25jZQogICAvLyBodHRwczovL2J1Z3MuY2hyb21pdW0u
b3JnL3Avd2VicnRjL2lzc3Vlcy9kZXRhaWw/aWQ9Njg4MyBpcyByZXNvbHZlZC4KICAgLy8gTWFw
cyBhIHBheWxvYWQgdHlwZSB0byBhIG1hcCBvZiBvdXQtb2YtYmFuZCBzdXBwbGllZCBjb2RlYyBw
YXJhbWV0ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvdmlkZW8vc2VuZF9zdGF0aXN0aWNzX3Byb3h5LmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vc2VuZF9zdGF0aXN0aWNzX3Byb3h5LmNj
CmluZGV4IDYwZDg0ZjE0Yzc4OWU5YzVkMzk5YWRlZTQ4YmRkMzE3ZGFjMDg2MDAuLmYyMTQxNzIy
OWE3MGYyYjgyMTM4ODYwNWM0ODBjMDFjNTc5NWQ4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3NlbmRfc3RhdGlzdGljc19wcm94
eS5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRl
by9zZW5kX3N0YXRpc3RpY3NfcHJveHkuY2MKQEAgLTQ3LDYgKzQ3LDcgQEAgZW51bSBIaXN0b2dy
YW1Db2RlY1R5cGUgewogICBrVmlkZW9WcDggPSAxLAogICBrVmlkZW9WcDkgPSAyLAogICBrVmlk
ZW9IMjY0ID0gMywKKyAga1ZpZGVvSDI2NSA9IDQsCiAgIGtWaWRlb01heCA9IDY0LAogfTsKIApA
QCAtNzQsNiArNzUsMTAgQEAgSGlzdG9ncmFtQ29kZWNUeXBlIFBheWxvYWROYW1lVG9IaXN0b2dy
YW1Db2RlY1R5cGUoCiAgICAgICByZXR1cm4ga1ZpZGVvVnA5OwogICAgIGNhc2Uga1ZpZGVvQ29k
ZWNIMjY0OgogICAgICAgcmV0dXJuIGtWaWRlb0gyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQor
ICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAgICAgcmV0dXJuIGtWaWRlb0gyNjU7CisjZW5k
aWYKICAgICBkZWZhdWx0OgogICAgICAgcmV0dXJuIGtWaWRlb1Vua25vd247CiAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3Zp
ZGVvX3JlY2VpdmVfc3RyZWFtLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvdmlkZW8vdmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MKaW5kZXggMjQ2ZGFhZGI4MWJi
YmVmOGNjMGY4OGRiYzUxZDk0ZWMzOTZiYzc4My4uZjFiNjU1ZjAxODQzYTJiZjY2NDNmMmViNzY3
YTQ3MmQxMDg2MjY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fcmVjZWl2ZV9zdHJl
YW0uY2MKQEAgLTEzNCw2ICsxMzQsMTEgQEAgVmlkZW9Db2RlYyBDcmVhdGVEZWNvZGVyVmlkZW9D
b2RlYyhjb25zdCBWaWRlb1JlY2VpdmVTdHJlYW06OkRlY29kZXImIGRlY29kZXIpIHsKICAgICBh
c3NvY2lhdGVkX2NvZGVjLmNvZGVjVHlwZSA9IGtWaWRlb0NvZGVjTXVsdGlwbGV4OwogICAgIHJl
dHVybiBhc3NvY2lhdGVkX2NvZGVjOwogICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBlbHNl
IGlmIChjb2RlYy5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY1KSB7CisgICAgKihjb2RlYy5I
MjY1KCkpID0gVmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0SDI2NVNldHRpbmdzKCk7CisgIH0KKyNl
bmRpZgogCiAgIGNvZGVjLndpZHRoID0gMzIwOwogICBjb2RlYy5oZWlnaHQgPSAxODA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92
aWRlb19zdHJlYW1fZW5jb2Rlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjCmluZGV4IDgyNTJjYjI5ZWYx
N2RmMGNmMGEyZmM4ZmRkZTcwZjFkNTllOWQ4ZDUuLjUyODkxZTljMWI3MGM4ODY0Nzg0YjQ1NDMy
ZTNlYzM4ZjIwNThiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNv
ZGVyLmNjCkBAIC0xMDAsNyArMTAwLDEzIEBAIGJvb2wgUmVxdWlyZXNFbmNvZGVyUmVzZXQoY29u
c3QgVmlkZW9Db2RlYyYgcHJldl9zZW5kX2NvZGVjLAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgIH0KICAgICAgIGJyZWFrOwotCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1Zp
ZGVvQ29kZWNIMjY1OgorICAgICAgaWYgKG5ld19zZW5kX2NvZGVjLkgyNjUoKSAhPSBwcmV2X3Nl
bmRfY29kZWMuSDI2NSgpKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICAgICAg
YnJlYWs7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgYnJlYWs7CiAgIH0KQEAgLTE0MDMs
NiArMTQwOSw5IEBAIEVuY29kZWRJbWFnZUNhbGxiYWNrOjpSZXN1bHQgVmlkZW9TdHJlYW1FbmNv
ZGVyOjpPbkVuY29kZWRJbWFnZSgKICAgaWYgKGNvZGVjX3NwZWNpZmljX2luZm8gJiYKICAgICAg
IChjb2RlY19zcGVjaWZpY19pbmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNWUDggfHwKICAg
ICAgICBjb2RlY19zcGVjaWZpY19pbmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY0IHx8
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgIGNvZGVjX3NwZWNpZmljX2luZm8tPmNvZGVj
VHlwZSA9PSBrVmlkZW9Db2RlY0gyNjUgfHwKKyNlbmRpZgogICAgICAgIGNvZGVjX3NwZWNpZmlj
X2luZm8tPmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY0dlbmVyaWMpKSB7CiAgICAgc2ltdWxjYXN0
X2lkID0gZW5jb2RlZF9pbWFnZS5TcGF0aWFsSW5kZXgoKS52YWx1ZV9vcigwKTsKICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGUzZGYwOThjN2UyNTQ5NGFkMWRhODgwNzVm
YTg3ZDZjMmZmYzgzZmUuLjMzYjFiMTNiMjkzNmM0OTE0ZDAyZWJmM2Y0MmU5NmFkZjgyOTUwNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGli
d2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5LDYgKzI5LDI4IEBACiAJCTQx
MDA5MURDMjQyRTBCQkMwMEM1RURBMiAvKiB2aWRlb19jb2RlY190eXBlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFENzI0MkUwQkJCMDBDNUVE
QTIgLyogdmlkZW9fY29kZWNfdHlwZS5oICovOyB9OwogCQk0MTAwOTFERDI0MkUwQkJDMDBDNUVE
QTIgLyogcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFEODI0MkUwQkJCMDBDNUVEQTIgLyogcmVjb3Jk
YWJsZV9lbmNvZGVkX2ZyYW1lLmggKi87IH07CiAJCTQxMDA5MURFMjQyRTBCQkMwMEM1RURBMiAv
KiB2aWRlb19mcmFtZV90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTAwOTFEOTI0MkUwQkJCMDBDNUVEQTIgLyogdmlkZW9fZnJhbWVfdHlwZS5o
ICovOyB9OworCQk0MTAwOTFFNjI0MkUyQUEzMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmNj
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRTAy
NDJFMkFBMTAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5jYyAqLzsgfTsKKwkJNDEwMDkxRTcy
NDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRTEyNDJFMkFBMjAwQzVFREEyIC8qIHJ0
cF9mb3JtYXRfaDI2NS5oICovOyB9OworCQk0MTAwOTFFOTI0MkUyQUEzMDBDNUVEQTIgLyogaDI2
NV9zcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTAwOTFFMzI0MkUyQUEyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmggKi87IH07
CisJCTQxMDA5MUVEMjQyRTMxNzQwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUVC
MjQyRTMxNzMwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCAqLzsgfTsKKwkJ
NDEwMDkxRUUyNDJFMzE3NDAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUVDMjQy
RTMxNzMwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgKi87IH07CisJCTQx
MDA5MUY4MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGMDI0MkUzNjIwMDBDNUVE
QTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovOyB9OworCQk0MTAwOTFGOTI0MkUzNjIyMDBDNUVE
QTIgLyogaDI2NV9zcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTAwOTFGMTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2Vy
LmggKi87IH07CisJCTQxMDA5MUZBMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUYy
MjQyRTM2MjEwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuaCAqLzsgfTsKKwkJNDEwMDkxRkIy
NDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUYzMjQyRTM2MjEwMEM1RURBMiAvKiBo
MjY1X3Bwc19wYXJzZXIuY2MgKi87IH07CisJCTQxMDA5MUZDMjQyRTM2MjIwMEM1RURBMiAvKiBo
MjY1X3Zwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTAwOTFGNDI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjICov
OyB9OworCQk0MTAwOTFGRDI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUY1MjQyRTM2MjEw
MEM1RURBMiAvKiBoMjY1X2NvbW1vbi5oICovOyB9OworCQk0MTAwOTFGRTI0MkUzNjIyMDBDNUVE
QTIgLyogaDI2NV92cHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTAwOTFGNjI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2Vy
LmggKi87IH07CisJCTQxMDA5MUZGMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5jYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUY3MjQy
RTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5jYyAqLzsgfTsKKwkJNDEwMDkyMDkyNDJFM0E0
NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MjAwMjQyRTNBNDMwMEM1RURBMiAvKiBSVENW
aWRlb0RlY29kZXJIMjY1LmggKi87IH07CisJCTQxMDA5MjBBMjQyRTNBNDYwMEM1RURBMiAvKiBS
VENIMjY1UHJvZmlsZUxldmVsSWQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTAwOTIwMTI0MkUzQTQ0MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVM
ZXZlbElkLm1tICovOyB9OworCQk0MTAwOTIwQjI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY1LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTAwOTIwMjI0MkUzQTQ0MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY1LmggKi87IH07CisJCTQxMDA5MjBDMjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNp
ZmljSW5mb0gyNjUrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEwMDkyMDMyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NStQcml2YXRlLmggKi87IH07CisJCTQxMDA5MjBEMjQyRTNBNDYwMEM1RURBMiAvKiBS
VENWaWRlb0VuY29kZXJIMjY1LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTAwOTIwNDI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2
NS5oICovOyB9OworCQk0MTAwOTIwRTI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVM
ZXZlbElkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTAwOTIwNTI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLmggKi87IH07
CisJCTQxMDA5MjBGMjQyRTNBNDYwMEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDYyNDJF
M0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUubW0gKi87IH07CisJCTQxMDA5MjEw
MjQyRTNBNDYwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDcyNDJFM0E0NTAwQzVFREEy
IC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gKi87IH07CisJCTQxMDA5MjExMjQyRTNBNDYwMEM1
RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTIwODI0MkUzQTQ2MDBDNUVEQTIgLyogUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tICovOyB9OwogCQk0MTAyRjZBMTIxMjczMjYyMDA2QUU4
RDcgLyogcmVtaXhfcmVzYW1wbGUuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTAyRjY5NzIxMjczMjYwMDA2QUU4RDcgLyogcmVtaXhfcmVzYW1wbGUu
Y2MgKi87IH07CiAJCTQxMDJGNkEyMjEyNzMyNjIwMDZBRThENyAvKiBhdWRpb19sZXZlbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMkY2OTgyMTI3
MzI2MDAwNkFFOEQ3IC8qIGF1ZGlvX2xldmVsLmggKi87IH07CiAJCTQxMDJGNkE0MjEyNzMyNjIw
MDZBRThENyAvKiBhdWRpb19sZXZlbC5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMDJGNjlBMjEyNzMyNjEwMDZBRThENyAvKiBhdWRpb19sZXZlbC5j
YyAqLzsgfTsKQEAgLTM5MjYsNiArMzk0OCwzMSBAQAogCQk0MTAwOTFENzI0MkUwQkJCMDBDNUVE
QTIgLyogdmlkZW9fY29kZWNfdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSB2aWRlb19jb2RlY190eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDA5
MUQ4MjQyRTBCQkIwMEM1RURBMiAvKiByZWNvcmRhYmxlX2VuY29kZWRfZnJhbWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDA5MUQ5MjQyRTBCQkIwMEM1RURBMiAvKiB2
aWRlb19mcmFtZV90eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHZpZGVv
X2ZyYW1lX3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxREYyNDJF
MkFBMTAwQzVFREEyIC8qIGNvbnRyaWJ1dGluZ19zb3VyY2VzLmNjICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gY29udHJpYnV0aW5nX3NvdXJjZXMuY2M7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MUUwMjQyRTJBQTEwMEM1RURBMiAvKiBydHBfZm9ybWF0
X2gyNjUuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBydHBfZm9ybWF0
X2gyNjUuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MUUxMjQyRTJBQTIw
MEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcnRwX2Zvcm1hdF9oMjY1Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MDA5MUUyMjQyRTJBQTIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBoMjY1X3Nwc19wYXJzZXIuY2M7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MUUzMjQyRTJBQTIwMEM1RURBMiAvKiBoMjY1X3Nwc19w
YXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaDI2NV9zcHNfcGFyc2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MUU0MjQyRTJBQTIwMEM1RURB
MiAvKiBjb250cmlidXRpbmdfc291cmNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBjb250cmlidXRpbmdfc291cmNlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTAwOTFFQjI0MkUzMTczMDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFQzI0MkUzMTczMDBDNUVE
QTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTAwOTFGMDI0MkUzNjIwMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFy
c2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV9zcHNfcGFy
c2VyLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFGMTI0MkUzNjIxMDBD
NUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IGgyNjVfc3BzX3BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAw
OTFGMjI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVfcHBzX3BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTAwOTFGMzI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmNj
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV9wcHNfcGFyc2VyLmNj
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFGNDI0MkUzNjIxMDBDNUVEQTIg
LyogaDI2NV92cHNfcGFyc2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gaDI2NV92cHNfcGFyc2VyLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAw
OTFGNTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9jb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gaDI2NV9jb21tb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDEwMDkxRjYyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBoMjY1X3Zwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjcyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9u
LmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV9jb21tb24uY2M7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjAwMjQyRTNBNDMwMEM1RURBMiAv
KiBSVENWaWRlb0RlY29kZXJIMjY1LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJUQ1ZpZGVvRGVjb2RlckgyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEw
MDkyMDEyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDIyNDJFM0E0NDAwQzVFREEy
IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDEwMDkyMDMyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NStQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJSVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDEwMDkyMDQyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDVmlkZW9FbmNvZGVySDI2NS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTIwNTI0MkUzQTQ1MDBDNUVEQTIgLyogUlRD
SDI2NVByb2ZpbGVMZXZlbElkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJU
Q0gyNjVQcm9maWxlTGV2ZWxJZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAw
OTIwNjI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJUQ1ZpZGVvRW5jb2RlckgyNjUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBS
VENWaWRlb0RlY29kZXJIMjY1Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUlRDVmlkZW9EZWNvZGVySDI2NS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDEwMDkyMDgyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJUQ0NvZGVjU3BlY2lm
aWNJbmZvSDI2NS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMENERTUyMUNB
Q0ZEMDAwRjlCODdEIC8qIExQQ19maXQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1l
ID0gTFBDX2ZpdC5jOyBwYXRoID0gc2lsay9MUENfZml0LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxMDBDREU4MjFDQUQwMzMwMEY5Qjg3RCAvKiB2cV9zc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gdnFfc3NlLmg7IHBhdGggPSB4ODYvdnFfc3NlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDBDREVCMjFDQUQxRjUwMEY5Qjg3RCAvKiBw
aXRjaF9zc2U0XzEuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGl0Y2hfc3Nl
NF8xLmM7IHBhdGggPSB4ODYvcGl0Y2hfc3NlNF8xLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC03ODU3LDYgKzc5MDQsMjEgQEAKIC8qIEVuZCBQQlhGcmFtZXdvcmtzQnVpbGRQaGFz
ZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEdyb3VwIHNlY3Rpb24gKi8KKwkJNDEwMDkxRUYy
NDJFMzYwODAwQzVFREEyIC8qIGgyNjUgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCTQxMDA5MUY3MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5j
YyAqLywKKwkJCQk0MTAwOTFGNTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9jb21tb24uaCAqLywK
KwkJCQk0MTAwOTFGMzI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmNjICovLAor
CQkJCTQxMDA5MUYyMjQyRTM2MjEwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuaCAqLywKKwkJ
CQk0MTAwOTFGMDI0MkUzNjIwMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovLAorCQkJ
CTQxMDA5MUYxMjQyRTM2MjEwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuaCAqLywKKwkJCQk0
MTAwOTFGNDI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjICovLAorCQkJCTQx
MDA5MUY2MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Zwc19wYXJzZXIuaCAqLywKKwkJCSk7CisJ
CQlwYXRoID0gaDI2NTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQxMDVF
QjY0MjEyRTAxOEMwMDhDMEMyMCAvKiBsaWJ2cHggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKApAQCAtOTExOCwyMyArOTE4MCwzMiBAQAogCQkJCTQxNjIyNUY1MjE2
OTgxRjQwMEE5MUM5QiAvKiBoZWxwZXJzLmggKi8sCiAJCQkJNDE3OTUzQUMyMTY5ODIzRDAwMjgy
NjZCIC8qIG5hbHVfcmV3cml0ZXIuY2MgKi8sCiAJCQkJNDExNTIxRDUyMTY5ODIyMDAwMEFCQUY3
IC8qIG5hbHVfcmV3cml0ZXIuaCAqLywKLQkJCQk0MTc5NTNCMjIxNjk4MjQxMDAyODI2NkIgLyog
UlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZhdGUuaCAqLywKIAkJCQk0MTYyMjVGMTIxNjk4
MUYzMDBBOTFDOUIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0LmggKi8sCiAJCQkJNDE2MjI1
RUQyMTY5ODFGMjAwQTkxQzlCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NC5tbSAqLywKKwkJ
CQk0MTc5NTNCMjIxNjk4MjQxMDAyODI2NkIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1By
aXZhdGUuaCAqLywKKwkJCQk0MTAwOTIwMjI0MkUzQTQ0MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1LmggKi8sCisJCQkJNDEwMDkyMDgyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSAqLywKKwkJCQk0MTAwOTIwMzI0MkUzQTQ0MDBDNUVEQTIg
LyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCAqLywKIAkJCQk0MTc5NTNCMzIx
Njk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaCAqLywKIAkJ
CQk0MTc5NTNBRDIxNjk4MjNFMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rv
cnkubSAqLywKIAkJCQk0MTYyMjVGNzIxNjk4MUY0MDBBOTFDOUIgLyogUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3RvcnkuaCAqLywKIAkJCQk0MTc5NTNBRjIxNjk4MjNGMDAyODI2NkIgLyogUlRD
RGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubSAqLywKIAkJCQk0MTE1MjFENDIxNjk4MjFGMDAw
QUJBRjcgLyogUlRDSDI2NFByb2ZpbGVMZXZlbElkLmggKi8sCiAJCQkJNDExNTIxRDYyMTY5ODIy
MDAwMEFCQUY3IC8qIFJUQ0gyNjRQcm9maWxlTGV2ZWxJZC5tbSAqLywKKwkJCQk0MTAwOTIwNTI0
MkUzQTQ1MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLmggKi8sCisJCQkJNDEwMDky
MDEyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSAqLywKIAkJCQk0
MTYyMjVGMjIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQuaCAq
LywKIAkJCQk0MTc5NTNCMDIxNjk4MjQwMDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9y
eUgyNjQubSAqLywKIAkJCQk0MTYyMjVGMzIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNv
ZGVySDI2NC5oICovLAogCQkJCTQxNjIyNUY0MjE2OTgxRjMwMEE5MUM5QiAvKiBSVENWaWRlb0Rl
Y29kZXJIMjY0Lm1tICovLAorCQkJCTQxMDA5MjAwMjQyRTNBNDMwMEM1RURBMiAvKiBSVENWaWRl
b0RlY29kZXJIMjY1LmggKi8sCisJCQkJNDEwMDkyMDcyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1Zp
ZGVvRGVjb2RlckgyNjUubW0gKi8sCiAJCQkJNDE2MjI1RUYyMTY5ODFGMjAwQTkxQzlCIC8qIFJU
Q1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0LmggKi8sCiAJCQkJNDE3OTUzQjEyMTY5ODI0MDAwMjgy
NjZCIC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0Lm0gKi8sCiAJCQkJNDE2MjI1RUMyMTY5
ODFGMjAwQTkxQzlCIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjQuaCAqLywKIAkJCQk0MTYyMjVGNjIx
Njk4MUY0MDBBOTFDOUIgLyogUlRDVmlkZW9FbmNvZGVySDI2NC5tbSAqLywKKwkJCQk0MTAwOTIw
NDI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5oICovLAorCQkJCTQxMDA5
MjA2MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1tICovLAogCQkJCTQx
NjIyNUVFMjE2OTgxRjIwMEE5MUM5QiAvKiBVSURldmljZStIMjY0UHJvZmlsZS5oICovLAogCQkJ
CTQxNzk1M0FFMjE2OTgyM0YwMDI4MjY2QiAvKiBVSURldmljZStIMjY0UHJvZmlsZS5tbSAqLywK
IAkJCSk7CkBAIC0xMTcwOSw2ICsxMTc4MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0MTMx
QzQyQTIzNEM3RDcwMDAyOEE2MTUgLyogZ2VuZXJpY19mcmFtZV9kZXNjcmlwdG9yICovLAogCQkJ
CTVDREQ4MzQxMUU0MzI1NjQwMDYyMUU5MiAvKiBoMjY0ICovLAorCQkJCTQxMDA5MUVGMjQyRTM2
MDgwMEM1RURBMiAvKiBoMjY1ICovLAogCQkJCTQxMTA5QUE0MUU1RkExODEwMEMwOTU1QSAvKiBp
bmNsdWRlICovLAogCQkJCTVDREQ4MzY1MUU0MzI1QzIwMDYyMUU5MiAvKiBsaWJ5dXYgKi8sCiAJ
CQkJNUM0QjRDMTAxRTQzMUY3NTAwMjY1MUM4IC8qIGJpdHJhdGVfYWRqdXN0ZXIuY2MgKi8sCkBA
IC0xMjYzMiw2ICsxMjcwNCw4IEBACiAJCQkJNUNEMjg1RTkxRTZBNjM5RjAwOTRGREM4IC8qIGgy
NjRfc3Byb3BfcGFyYW1ldGVyX3NldHMuaCAqLywKIAkJCQk1Q0REODM5QTFFNDM5QTZGMDA2MjFF
OTIgLyogaDI2NF9zcHNfcHBzX3RyYWNrZXIuY2MgKi8sCiAJCQkJNUNERDgzOUIxRTQzOUE2RjAw
NjIxRTkyIC8qIGgyNjRfc3BzX3Bwc190cmFja2VyLmggKi8sCisJCQkJNDEwMDkxRUMyNDJFMzE3
MzAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyAqLywKKwkJCQk0MTAwOTFF
QjI0MkUzMTczMDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggKi8sCiAJCQkJ
NUNERDgzOUMxRTQzOUE2RjAwNjIxRTkyIC8qIGhpc3RvZ3JhbS5jYyAqLywKIAkJCQk1Q0REODM5
RDFFNDM5QTZGMDA2MjFFOTIgLyogaGlzdG9ncmFtLmggKi8sCiAJCQkJNUNERDgzOUUxRTQzOUE2
RjAwNjIxRTkyIC8qIGludGVyX2ZyYW1lX2RlbGF5LmNjICovLApAQCAtMTMyNjcsMTEgKzEzMzQx
LDE0IEBACiAJCTVDREQ4N0ZBMUU0M0JFMjYwMDYyMUU5MiAvKiBzb3VyY2UgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDREQ4OEVCMUU0M0JGMjUwMDYy
MUU5MiAvKiBydGNwX3BhY2tldCAqLywKIAkJCQk0MTMxQzRDODIzNEM4NEExMDAyOEE2MTUgLyog
YWJzb2x1dGVfY2FwdHVyZV90aW1lX3JlY2VpdmVyLmNjICovLAogCQkJCTQxMzFDNENEMjM0Qzg0
QTIwMDI4QTYxNSAvKiBhYnNvbHV0ZV9jYXB0dXJlX3RpbWVfcmVjZWl2ZXIuaCAqLywKIAkJCQk0
MTMxQzRDQzIzNEM4NEEyMDAyOEE2MTUgLyogYWJzb2x1dGVfY2FwdHVyZV90aW1lX3NlbmRlci5j
YyAqLywKIAkJCQk0MTMxQzRDRTIzNEM4NEEyMDAyOEE2MTUgLyogYWJzb2x1dGVfY2FwdHVyZV90
aW1lX3NlbmRlci5oICovLAogCQkJCTVDREQ4N0ZDMUU0M0JFM0MwMDYyMUU5MiAvKiBieXRlX2lv
LmggKi8sCisJCQkJNDEwMDkxREYyNDJFMkFBMTAwQzVFREEyIC8qIGNvbnRyaWJ1dGluZ19zb3Vy
Y2VzLmNjICovLAorCQkJCTQxMDA5MUU0MjQyRTJBQTIwMEM1RURBMiAvKiBjb250cmlidXRpbmdf
c291cmNlcy5oICovLAogCQkJCTQxODkzOTA5MjQyQTcwNEMwMDdGREM0MSAvKiBjcmVhdGVfdmlk
ZW9fcnRwX2RlcGFja2V0aXplci5jYyAqLywKIAkJCQk0MTg5MzkwNDI0MkE3MDRCMDA3RkRDNDEg
LyogY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuaCAqLywKIAkJCQk1Q0REODdGRTFFNDNC
RTNDMDA2MjFFOTIgLyogZHRtZl9xdWV1ZS5jYyAqLywKQEAgLTEzMjkwLDYgKzEzMzY3LDggQEAK
IAkJCQk1Q0REODgwRTFFNDNCRTNDMDA2MjFFOTIgLyogZm9yd2FyZF9lcnJvcl9jb3JyZWN0aW9u
X2ludGVybmFsLmggKi8sCiAJCQkJNUNERDg4MEYxRTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRf
ZXJyb3JfY29ycmVjdGlvbi5jYyAqLywKIAkJCQk1Q0REODgxMDFFNDNCRTNDMDA2MjFFOTIgLyog
Zm9yd2FyZF9lcnJvcl9jb3JyZWN0aW9uLmggKi8sCisJCQkJNDEwMDkxRTIyNDJFMkFBMjAwQzVF
REEyIC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLywKKwkJCQk0MTAwOTFFMzI0MkUyQUEyMDBDNUVE
QTIgLyogaDI2NV9zcHNfcGFyc2VyLmggKi8sCiAJCQkJNUNERDg4MTUxRTQzQkUzQzAwNjIxRTky
IC8qIHBhY2tldF9sb3NzX3N0YXRzLmNjICovLAogCQkJCTVDREQ4ODE2MUU0M0JFM0MwMDYyMUU5
MiAvKiBwYWNrZXRfbG9zc19zdGF0cy5oICovLAogCQkJCTVDREQ4ODFBMUU0M0JFM0MwMDYyMUU5
MiAvKiByZWNlaXZlX3N0YXRpc3RpY3NfaW1wbC5jYyAqLywKQEAgLTEzMjk3LDcgKzEzMzc2LDYg
QEAKIAkJCQk1Q0REODgxRTFFNDNCRTNDMDA2MjFFOTIgLyogcmVtb3RlX250cF90aW1lX2VzdGlt
YXRvci5jYyAqLywKIAkJCQk1Q0QyODVGODFFNkE2NDUyMDA5NEZEQzggLyogcnRjcF9uYWNrX3N0
YXRzLmNjICovLAogCQkJCTVDRDI4NUY5MUU2QTY0NTIwMDk0RkRDOCAvKiBydGNwX25hY2tfc3Rh
dHMuaCAqLywKLQkJCQk1Q0REODhFQjFFNDNCRjI1MDA2MjFFOTIgLyogcnRjcF9wYWNrZXQgKi8s
CiAJCQkJNUNERDg4MjExRTQzQkUzQzAwNjIxRTkyIC8qIHJ0Y3BfcGFja2V0LmNjICovLAogCQkJ
CTVDREQ4ODIyMUU0M0JFM0MwMDYyMUU5MiAvKiBydGNwX3BhY2tldC5oICovLAogCQkJCTVDREQ4
ODI0MUU0M0JFM0MwMDYyMUU5MiAvKiBydGNwX3JlY2VpdmVyLmNjICovLApAQCAtMTMzMjAsNiAr
MTMzOTgsOCBAQAogCQkJCTQxODkzOTAzMjQyQTcwNEEwMDdGREM0MSAvKiBydHBfZGVzY3JpcHRv
cl9hdXRoZW50aWNhdGlvbi5oICovLAogCQkJCTVDREQ4ODJFMUU0M0JFM0MwMDYyMUU5MiAvKiBy
dHBfZm9ybWF0X2gyNjQuY2MgKi8sCiAJCQkJNUNERDg4MkYxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0
cF9mb3JtYXRfaDI2NC5oICovLAorCQkJCTQxMDA5MUUwMjQyRTJBQTEwMEM1RURBMiAvKiBydHBf
Zm9ybWF0X2gyNjUuY2MgKi8sCisJCQkJNDEwMDkxRTEyNDJFMkFBMjAwQzVFREEyIC8qIHJ0cF9m
b3JtYXRfaDI2NS5oICovLAogCQkJCTVDREQ4ODMwMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9y
bWF0X3ZpZGVvX2dlbmVyaWMuY2MgKi8sCiAJCQkJNUNERDg4MzExRTQzQkUzQzAwNjIxRTkyIC8q
IHJ0cF9mb3JtYXRfdmlkZW9fZ2VuZXJpYy5oICovLAogCQkJCTVDREQ4ODM1MUU0M0JFM0MwMDYy
MUU5MiAvKiBydHBfZm9ybWF0X3ZwOC5jYyAqLywKQEAgLTE0NjI0LDYgKzE0NzA0LDcgQEAKIAkJ
CQk1Q0QyODVBNzFFNkE2MzQzMDA5NEZEQzggLyogYWVjX3N0YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REODVFODFFNDNCODEwMDA2MjFFOTIgLyogYWVjbV9jb3JlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REODVFOTFFNDNCODEwMDA2MjFFOTIgLyogYWVjbV9kZWZpbmVzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTAwOTFFNzI0MkUyQUEzMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyNzFFNEE5OUQyMDA0MDM5OTUgLyogYWVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyNDFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2djbV9v
c3NsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyNjFFNEE5OUQyMDA0MDM5OTUgLyogYWVz
X2ljbS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDY3Miw2ICsxNDc1Myw3IEBACiAJCQkJNUNEMjg1
NDUxRTZBNjFEMjAwOTRGREM4IC8qIGF1ZGlvX2RlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDRDI4NTQzMUU2QTYxRDIwMDk0RkRDOCAvKiBhdWRpb19kZWNvZGVyX2ZhY3RvcnkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxODkzOERBMjQyQTY5Q0MwMDdGREM0MSAvKiBxdWFsaXR5X3NjYWxl
cl9yZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkxRkEyNDJFMzYyMjAwQzVFREEy
IC8qIGgyNjVfcHBzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGOUJGOTgyMDUxQzgy
MTAwQUJGMEI5IC8qIGF1ZGlvX2RlY29kZXJfZmFjdG9yeV90ZW1wbGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE5QzgzRTgxRkUyNDgzNTAwNDBDMzBGIC8qIGF1ZGlvX2RlY29kZXJfZzcxMS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDEwMDkxREUyNDJFMEJCQzAwQzVFREEyIC8qIHZpZGVvX2Zy
YW1lX3R5cGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ2OTEsNiArMTQ3NzMsNyBAQAogCQkJCTQx
MzFDM0MyMjM0Qjk3QjQwMDI4QTYxNSAvKiBhdWRpb19kZWNvZGVyX211bHRpX2NoYW5uZWxfb3B1
c19pbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5M0EyMTI0MkE3NUMxMDA3RkRDNDEgLyog
ZHRsc190cmFuc3BvcnRfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTM5Q0EyNDJB
NzMzNzAwN0ZEQzQxIC8qIHVzZWRfaWRzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTAwOTIwRDI0
MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDhDNjExRTQzQzYwOTAwNjIxRTkyIC8qIGF1ZGlvX2RlY29kZXJfb3B1cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE5QzgyRjIxRkUyMEVCNTAwNDBDMzBGIC8qIGF1ZGlvX2RlY29kZXJf
b3B1cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTM5RDcyNDJBNzMzNzAwN0ZEQzQxIC8qIHRy
YWNrX21lZGlhX2luZm9fbWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTE0NzU4LDEwICsxNDg0MSwx
MiBAQAogCQkJCTQxODkzOTVDMjQyQTcxRjUwMDdGREM0MSAvKiBtaW5fdmlkZW9fYml0cmF0ZV9l
eHBlcmltZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEFEMDFFNDNDMjM5MDA2MjFFOTIg
LyogYXVkaW9fc2VuZF9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NEIyMUU2QTVG
OUYwMDk0RkRDOCAvKiBhdWRpb19zZW5kX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEw
MDkxRTkyNDJFMkFBMzAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDhDNEYxRTQzQzU4RTAwNjIxRTkyIC8qIGF1ZGlvX3NpbmsuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4QTkyMUU0M0MwMEYwMDYyMUU5MiAvKiBhdWRpb19zaW5rLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTMxQkZBMDIzNEI4OEE2MDAyOEE2MTUgLyogYXVkaW9fc291cmNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTg5Mzk1RjI0MkE3MUY1MDA3RkRDNDEgLyogcXVhbGl0eV9y
YW1wdXBfZXhwZXJpbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMEIyNDJFM0E0NjAw
QzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDhBRDMxRTQzQzIzOTAwNjIxRTkyIC8qIGF1ZGlvX3N0YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0QyODRCMzFFNkE1RjlGMDA5NEZEQzggLyogYXVkaW9fc3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxMzFCRjA1MjM0Qjg4MjAwMDI4QTYxNSAvKiBhdWRpb190cmFjay5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xNDk4Myw2ICsxNTA2OCw3IEBACiAJCQkJNDEzQTIxM0UxRkUwRjBFRjAw
MzczRTk5IC8qIGVrdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCOTcxRTQzQzJCNTAwNjIx
RTkyIC8qIGVuY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3QjYxRTQzQkMwNTAwNjIx
RTkyIC8qIGVuY29kZV9scGNfc3diLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTAwOTIwOTI0MkUz
QTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDhBOTYxRTQzQzAwRjAwNjIxRTkyIC8qIGVuY29kZV9uZXRlcV9pbnB1dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDgzQ0QxRTQzOUE2RjAwNjIxRTkyIC8qIGVuY29kZWRfZnJhbWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxQTA4QkFDMjEyNjgxQzgwMDFENUQ3QiAvKiBlbmNvZGVkX2Zy
YW1lLmggaW4gSGVhZGVycyAqLywKQEAgLTE1MDE0LDYgKzE1MTAwLDcgQEAKIAkJCQk0MTAyRjZB
RjIxMjczMkU3MDA2QUU4RDcgLyogZXhwYW5kX3VtYV9sb2dnZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxQkU3MUE2MjE1QzQ2MzcwMEE3QjE5NiAvKiBleHByLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REODk0QjFFNDNCRjNBMDA2MjFFOTIgLyogZXh0ZW5kZWRfaml0dGVyX3JlcG9ydC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEwMDkxRkUyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3Bh
cnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NEUxRTQzQkYzQTAwNjIxRTkyIC8qIGV4
dGVuZGVkX3JlcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFCRjQ2MjM0Qjg4MjAwMDI4
QTYxNSAvKiBleHRlcm5hbF9obWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzA3NzIzNEI4
OThEMDAyOEE2MTUgLyogZmFrZV9jbG9jay5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTQ1Myw2ICsx
NTU0MCw3IEBACiAJCQkJNUNERDhGREUxRTQzQ0Q2NjAwNjIxRTkyIC8qIHJlbW90ZV9iaXRyYXRl
X2VzdGltYXRvcl9zaW5nbGVfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzRCNzIz
NEM4M0REMDAyOEE2MTUgLyogcmVtb3RlX2VzdGltYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REOEZFMjFFNDNDRDY2MDA2MjFFOTIgLyogcmVtb3RlX2VzdGltYXRvcl9wcm94eS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDEwMDkxRjkyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzQzUxRkUyNDdCNDAwNDBDMzBGIC8qIHJlbW90
ZV9udHBfdGltZV9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDVFNERBMUVGOEND
OUIwMEZDRjZFNiAvKiByZW5kZXJfYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVE
NjFFNkE2MzQzMDA5NEZEQzggLyogcmVuZGVyX2RlbGF5X2J1ZmZlci5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xNTU3OCw2ICsxNTY2Niw3IEBACiAJCQkJNUNERDg4OUUxRTQzQkUzQzAwNjIxRTkyIC8q
IHJ0Y3Bfc2VuZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzRFRjIzNEM4NjExMDAyOEE2
MTUgLyogcnRjcF9zdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODMwMzFGRTIw
RjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEw
MDkxRkQyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTlDODMwMTFGRTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9jb25maWcuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxOUM4MzA1MUZFMjBGMDIwMDQwQzMwRiAvKiBydGNwX3RyYW5z
Y2VpdmVyX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDNFMUZFMTk5MUEwMDM3M0U5
OSAvKiBSVENQZWVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTYyNiw2ICsxNTcx
NSw3IEBACiAJCQkJNDEzQTI0NEYxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvRnJhbWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxM0U2NzhGMjE2OTg3REIwMEVGMzdFRCAvKiBSVENWaWRlb0Zy
YW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNFNjc5MTIxNjk4N0RCMDBFRjM3RUQgLyogUlRD
VmlkZW9GcmFtZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkxRUQyNDJFMzE3NDAw
QzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzQTI0NDExRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvRnJhbWVCdWZmZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxM0EyNDZGMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb1JlbmRlcmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ2MTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlk
ZW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMTU4MTgsNiArMTU5MDgsNyBAQAogCQkJCTQx
MzFDMTAzMjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJpbmdfZW5jb2RlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTg5M0EwQTI0MkE3NTNDMDA3RkRDNDEgLyogc3ViYmFuZF9uZWFyZW5kX2RldGVjdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzEwNTIzNEI4OUUyMDAyOEE2MTUgLyogc3RyaW5n
X3RvX251bWJlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMEMyNDJFM0E0NjAwQzVFREEy
IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTg5M0E0MTI0MkE3NkYyMDA3RkRDNDEgLyogb3BlcmF0aW9uc19jaGFpbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDEzMUMxMzIyMzRCODlFMjAwMjhBNjE1IC8qIHN0cmluZ191dGlscy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDE4OTM5ODYyNDJBNzI1MTAwN0ZEQzQxIC8qIHByaW9yX3NpZ25h
bF9tb2RlbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTk1OCw2ICsxNjA0OSw3IEBACiAJCQkJNDE2
MjI1RDMyMTY5ODE4MTAwQTkxQzlCIC8qIHZpZGVvX2ZyYW1lX2J1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEwMkY2Q0YyMTI3MzNCNzAwNkFFOEQ3IC8qIHZpZGVvX3F1YWxpdHlfb2JzZXJ2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MkM0MUZFMjBEQ0QwMDQwQzMwRiAvKiB2aWRl
b19yZWNlaXZlX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMEUyNDJFM0E0NjAw
QzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDg1Q0IxRTQzQjVDMDAwNjIxRTkyIC8qIHZpZGVvX3JlY2VpdmVfc3RyZWFtLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1QzRCNEMyMTFFNDMxRjc1MDAyNjUxQzggLyogdmlkZW9fcmVuZGVyX2ZyYW1l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg0NkMxRTZBNTdGNDAwOTRGREM4IC8qIHZpZGVv
X3JvdGF0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTE3NDc2LDggKzE3NTY4LDEwIEBACiAJCQkJ
NDEzMUMwMzMyMzRCODk4RDAwMjhBNjE1IC8qIGNyeXB0X3N0cmluZy5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFDM0I2MjM0Qjk3MTIwMDI4QTYxNSAvKiBjcnlwdG9fb3B0aW9ucy5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxODkzOThDMjQyQTcyNTIwMDdGREM0MSAvKiBuc19mZnQuY2MgaW4g
U291cmNlcyAqLywKKwkJCQk0MTAwOTFGQzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV92cHNfcGFy
c2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGMjYyMzRCODgyMDAwMjhBNjE1IC8qIGRh
dGFfY2hhbm5lbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzExMjM0QjhEQzIwMDI4QTYx
NSAvKiBkYXRhX2NoYW5uZWxfaW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkx
RjgyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxOTI0MUUxMjEyNzVBMzAwMDYzNEZDRiAvKiBkYXRhX3JhdGUuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTg5Mzk1QjI0MkE3MUY1MDA3RkRDNDEgLyogbWluX3ZpZGVvX2JpdHJhdGVfZXhw
ZXJpbWVudC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMDI0MjM0Qjg5OEQwMDI4QTYxNSAv
KiBkYXRhX3JhdGVfbGltaXRlci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTc2NzgsMTEgKzE3Nzcy
LDE0IEBACiAJCQkJNDEwMkY2RTAyMTI3MzQxNjAwNkFFOEQ3IC8qIGkwMTBfYnVmZmVyLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg0NjcxRTZBNTdGNDAwOTRGREM4IC8qIGk0MjBfYnVmZmVy
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjRDMUIxRTQzMUY3NTAwMjY1MUM4IC8qIGk0MjBf
YnVmZmVyX3Bvb2wuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTAwOTFFRTI0MkUzMTc0MDBDNUVE
QTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEz
MUMxRjEyMzRCOEE0QjAwMjhBNjE1IC8qIGljZV9jcmVkZW50aWFsc19pdGVyYXRvci5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxODkzQTRBMjQyQTc3ODkwMDdGREM0MSAvKiBldmVudF9iYXNlZF9l
eHBvbmVudGlhbF9tb3ZpbmdfYXZlcmFnZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDM0U2
MjM0QzdBMDgwMDI4QTYxNSAvKiBpY2VfbG9nZ2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEz
MUJGNTUyMzRCODgyMDAwMjhBNjE1IC8qIGljZV9zZXJ2ZXJfcGFyc2luZy5jYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxMDA5MjEwMjQyRTNBNDYwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGMEUyMzRCODgyMDAwMjhBNjE1IC8qIGljZV90
cmFuc3BvcnQuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTAwOTIxMTI0MkUzQTQ2MDBDNUVEQTIg
LyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMz
MUEyMzRCOERDMjAwMjhBNjE1IC8qIGljZV90cmFuc3BvcnRfZmFjdG9yeS5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxMzFDMUJGMjM0QjhBNEEwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0X2ludGVy
bmFsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4OTNBNUUyNDJBNzdCODAwN0ZEQzQxIC8qIGV2
ZW50X3JhdGVfY291bnRlci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTc3NTAsNiArMTc4NDcsNyBA
QAogCQkJCTVDREQ4N0M1MUU0M0JDMDUwMDYyMUU5MiAvKiBscGNfYW5hbHlzaXMuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4QkMxMUU0M0MyQjUwMDYyMUU5MiAvKiBscGNfZW5jb2RlLmMgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0REODdDNzFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX2dhaW5fc3di
X3RhYmxlcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkxRTYyNDJFMkFBMzAwQzVFREEyIC8q
IHJ0cF9mb3JtYXRfaDI2NS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzQ0VFMUY3OUIzMzQw
MDM4N0I0RCAvKiBscGNfbWFza2luZ19tb2RlbC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3
QzkxRTQzQkMwNTAwNjIxRTkyIC8qIGxwY19zaGFwZV9zd2IxMl90YWJsZXMuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4N0NCMUU0M0JDMDUwMDYyMUU5MiAvKiBscGNfc2hhcGVfc3diMTZfdGFi
bGVzLmMgaW4gU291cmNlcyAqLywKQEAgLTE4MDI1LDEwICsxODEyMywxMiBAQAogCQkJCTQxNzk1
M0I3MjE2OTgyNDIwMDI4MjY2QiAvKiBSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRjUyMTZCMDgxQjAwNDM2M0FDIC8qIFJUQ0VuY29kZWRJ
bWFnZStQcml2YXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3OTUzRkEyMTY5ODRCRTAwMjgy
NjZCIC8qIFJUQ0VuY29kZWRJbWFnZS5tIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkxRkIyNDJF
MzYyMjAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
ODkzOTE1MjQyQTcwNEUwMDdGREM0MSAvKiB0cmFuc2Zvcm1hYmxlX2VuY29kZWRfZnJhbWUuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTQ0QjNENjIxNjk4QTFBMDA0MzYzQUMgLyogUlRDSDI2NFBy
b2ZpbGVMZXZlbElkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRDMyMTY5ODk2RDAwNDM2
M0FDIC8qIFJUQ05hdGl2ZUk0MjBCdWZmZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTQ0QjNE
MTIxNjk4OTY3MDA0MzYzQUMgLyogUlRDTmF0aXZlTXV0YWJsZUk0MjBCdWZmZXIubW0gaW4gU291
cmNlcyAqLywKKwkJCQk0MTAwOTIwRjI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVy
SDI2NS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4MkI5MUZFMjBEQ0QwMDQwQzMwRiAvKiBy
dGNwX2RlbXV4ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkYxQTIzNEI4ODIwMDAyOEE2
MTUgLyogcnRjcF9tdXhfZmlsdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1RkExRTZB
NjQ1MjAwOTRGREM4IC8qIHJ0Y3BfbmFja19zdGF0cy5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgy
MzYsNiArMTgzMzYsNyBAQAogCQkJCTQxOTI0MUUyMjEyNzVBMzAwMDYzNEZDRiAvKiB0aW1lX2Rl
bHRhLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBNUExRTQzQkZCMzAwNjIxRTkyIC8qIHRp
bWVfc3RyZXRjaC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OERBMUU0M0JFM0QwMDYyMUU5
MiAvKiB0aW1lX3V0aWwuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTAwOTIwQTI0MkUzQTQ2MDBD
NUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEz
MUMxNEEyMzRCODlFMjAwMjhBNjE1IC8qIHRpbWVfdXRpbHMuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTkyNDFFMzIxMjc1QTMwMDA2MzRGQ0YgLyogdGltZXN0YW1wLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDEzMUMxMzMyMzRCODlFMjAwMjhBNjE1IC8qIHRpbWVzdGFtcF9hbGlnbmVyLmNjIGlu
IFNvdXJjZXMgKi8sCkBAIC0xODM1NCw2ICsxODQ1NSw3IEBACiAJCQkJNUNERDgzNjcxRTQzMjVE
NTAwNjIxRTkyIC8qIHdlYnJ0Y19saWJ5dXYuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzI3
QTIzNEI4Q0M0MDAyOEE2MTUgLyogd2VicnRjX21lZGlhX2VuZ2luZS5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFDMjc4MjM0QjhDQzQwMDI4QTYxNSAvKiB3ZWJydGNfbWVkaWFfZW5naW5lX2Rl
ZmF1bHRzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkxRkYyNDJFMzYyMjAwQzVFREEyIC8q
IGgyNjVfY29tbW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGNTAyMzRCODgyMDAwMjhB
NjE1IC8qIHdlYnJ0Y19zZHAuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkVGNDIzNEI4ODIw
MDAyOEE2MTUgLyogd2VicnRjX3Nlc3Npb25fZGVzY3JpcHRpb25fZmFjdG9yeS5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4NkU0MUU0M0JBMjgwMDYyMUU5MiAvKiB3ZWJydGNfdmFkLmMgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGZjZGVlYjg0MjU5ZGRjN2E0ODU1NTgy
YWI4OWJjNzhmYTUyNmFmNjYuLjM5YzhiZGUzMmFhZjYwYWUyOTVjZDQ1ZmJhMDE3Yzg2MjcyMDE4
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzI1LDcgKzMyNSw3IEBAIFBhZ2U6OlBhZ2UoUGFn
ZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbikKICNlbmRpZgogCiAjaWYgVVNFKExJ
QldFQlJUQykKLSAgICBtX2xpYldlYlJUQ1Byb3ZpZGVyLT5zdXBwb3J0c1ZQOChSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJUQ1ZQOENvZGVjRW5hYmxlZCgpKTsK
KyAgICBtX2xpYldlYlJUQ1Byb3ZpZGVyLT5zdXBwb3J0c0gyNjUoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJSVENIMjY1Q29kZWNFbmFibGVkKCkpOwogI2VuZGlm
CiAKICAgICBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHBh
Z2VDb25maWd1cmF0aW9uLmNvcnNEaXNhYmxpbmdQYXR0ZXJucy5zaXplKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRleCBkZTdlMzhkMjVlYjIz
M2M4ODVhODE0ZmRjYzIyYzZiYzM4YzQ1MjRhLi4xZWUwZDI3NzE1NzUxMTJhZGI4NjAyNGQ5MGMx
OGMwNmNhYjY2OTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaApAQCAtMjM2LDggKzIzNiw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCX1JUQykK
ICAgICBib29sIHdlYlJUQ0RUTUZFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1dlYlJUQ0RU
TUZFbmFibGVkOyB9CiAgICAgdm9pZCBzZXRXZWJSVENEVE1GRW5hYmxlZChib29sIGlzRW5hYmxl
ZCkgeyBtX2lzV2ViUlRDRFRNRkVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KLSAgICBib29sIHdlYlJU
Q1ZQOENvZGVjRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENWUDhDb2RlY0VuYWJs
ZWQ7IH0KLSAgICB2b2lkIHNldFdlYlJUQ1ZQOENvZGVjRW5hYmxlZChib29sIGlzRW5hYmxlZCkg
eyBtX2lzV2ViUlRDVlA4Q29kZWNFbmFibGVkID0gaXNFbmFibGVkOyB9CisgICAgYm9vbCB3ZWJS
VENIMjY1Q29kZWNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1dlYlJUQ0gyNjVDb2RlY0Vu
YWJsZWQ7IH0KKyAgICB2b2lkIHNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQoYm9vbCBpc0VuYWJs
ZWQpIHsgbV9pc1dlYlJUQ0gyNjVDb2RlY0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBib29s
IHBlZXJDb25uZWN0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNQZWVyQ29ubmVjdGlv
bkVuYWJsZWQ7IH0KICAgICB2b2lkIHNldFBlZXJDb25uZWN0aW9uRW5hYmxlZChib29sIGlzRW5h
YmxlZCkgeyBtX2lzUGVlckNvbm5lY3Rpb25FbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9v
bCB3ZWJSVENNRE5TSUNFQ2FuZGlkYXRlc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzV2Vi
UlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFibGVkOyB9CkBAIC01MDIsNyArNTAyLDcgQEAgcHJpdmF0
ZToKIAogI2lmIEVOQUJMRShXRUJfUlRDKQogICAgIGJvb2wgbV9pc1dlYlJUQ0RUTUZFbmFibGVk
IHsgdHJ1ZSB9OwotICAgIGJvb2wgbV9pc1dlYlJUQ1ZQOENvZGVjRW5hYmxlZCB7IHRydWUgfTsK
KyAgICBib29sIG1faXNXZWJSVENIMjY1Q29kZWNFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wg
bV9pc1BlZXJDb25uZWN0aW9uRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1faXNXZWJSVENN
RE5TSUNFQ2FuZGlkYXRlc0VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1dlYlJUQ0gy
NjRTaW11bGNhc3RFbmFibGVkIHsgdHJ1ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlk
ZXIuaAppbmRleCBhMGI0Y2Y3MTZkNTQwZWI5Y2ViNGEwZTY3NmVlMDI2NDNmZThlZDkwLi4yMmIx
MGRkNDgwYzg3ZjRkY2QwNDJmYmM4OGM5OTU0ZGUzMjBkNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXIuaApAQCAtMTAzLDcgKzEwMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
c2FibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCk7CiAgICAgdm9pZCBlbmFibGVF
bnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKCk7CiAKLSAgICB2b2lkIHN1cHBvcnRzVlA4
KGJvb2wgdmFsdWUpIHsgbV9zdXBwb3J0c1ZQOCA9IHZhbHVlOyB9CisgICAgdm9pZCBzdXBwb3J0
c0gyNjUoYm9vbCB2YWx1ZSkgeyBtX3N1cHBvcnRzSDI2NSA9IHZhbHVlOyB9CiAgICAgdmlydHVh
bCB2b2lkIGRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpIHsgbV9kaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMgPSB0cnVlOyB9CiAKICAgICBydGM6OlJUQ0NlcnRpZmljYXRlR2Vu
ZXJhdG9yJiBjZXJ0aWZpY2F0ZUdlbmVyYXRvcigpOwpAQCAtMTQwLDcgKzE0MCw3IEBAIHByb3Rl
Y3RlZDoKIAogICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFj
dG9yeUludGVyZmFjZT4gbV9mYWN0b3J5OwogICAgIGJvb2wgbV9kaXNhYmxlTm9uTG9jYWxob3N0
Q29ubmVjdGlvbnMgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9zdXBwb3J0c1ZQOCB7IGZhbHNlIH07
CisgICAgYm9vbCBtX3N1cHBvcnRzSDI2NSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VuYWJsZUxv
Z2dpbmcgeyB0cnVlIH07CiAgICAgYm9vbCBtX3VzZURUTFMxMCB7IGZhbHNlIH07CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcAppbmRleCA0ZTU1
Mzg4ZWFkZTEwOThhZTkxYmZiNDk2NmRhNDRmODk2YzhhMzQyLi5jNzM3MTc0NGY3OGU4NmZkNTM0
YWE5OTJiMjg1ZDU5ZDVjZjExNmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyQ29jb2EuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6
OlZpZGVvRGVjb2RlckZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29k
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGF1dG8gY29kZWNTdXBwb3J0
ID0gbV9zdXBwb3J0c1ZQOCA/IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4
IDogd2VicnRjOjpXZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjQ7CisgICAgYXV0byBjb2RlY1N1cHBv
cnQgPSBtX3N1cHBvcnRzSDI2NSA/IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0VlA4
QW5kSDI2NSA6IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4OwogICAgIHJl
dHVybiB3ZWJydGM6OmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KGNvZGVjU3VwcG9ydCk7CiB9
CiAKQEAgLTYyLDcgKzYyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVy
RmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXJDb2NvYTo6Y3JlYXRlRW5jb2QKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgYXV0byBjb2RlY1N1cHBvcnQgPSBtX3N1cHBvcnRz
VlA4ID8gd2VicnRjOjpXZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjRBbmRWUDggOiB3ZWJydGM6Oldl
YktpdENvZGVjU3VwcG9ydDo6SDI2NDsKKyAgICBhdXRvIGNvZGVjU3VwcG9ydCA9IG1fc3VwcG9y
dHNIMjY1ID8gd2VicnRjOjpXZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjRWUDhBbmRIMjY1IDogd2Vi
cnRjOjpXZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjRBbmRWUDg7CiAgICAgcmV0dXJuIHdlYnJ0Yzo6
Y3JlYXRlV2ViS2l0RW5jb2RlckZhY3RvcnkoY29kZWNTdXBwb3J0KTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDk0NWRkZmQ1NzZkMjZmZTNiODI3OGNkMjY5MGVj
MGZhNGU4ZjVlZjYuLjY4NWNkMzUwZTYyNTY4Y2RmNjlkODY2NDJiYjJhYzk0MmQ4MGYyODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTU1Myw3ICs1NTMsNyBAQCB2b2lk
IEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgIGF1dG8m
IHJ0Y1Byb3ZpZGVyID0gcGFnZS5saWJXZWJSVENQcm92aWRlcigpOwogICAgIFdlYkNvcmU6OnVz
ZVJlYWxSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkocnRjUHJvdmlkZXIpOwogICAgIHJ0Y1Byb3Zp
ZGVyLmRpc2FibGVOb25Mb2NhbGhvc3RDb25uZWN0aW9ucygpOwotICAgIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0V2ViUlRDVlA4Q29kZWNFbmFibGVkKHRydWUp
OworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0V2ViUlRD
SDI2NUNvZGVjRW5hYmxlZCh0cnVlKTsKICAgICBwYWdlLnNldHRpbmdzKCkuc2V0V2ViUlRDRW5j
cnlwdGlvbkVuYWJsZWQodHJ1ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWwKaW5kZXggYzZmZGRiNjEyMGYyYzk1OGIzMDIxNTUyMjIwYjg5OTFmYWIz
MjJlZi4uYzBlNDNlMGViMDAyYTQzMGI1NWYwMTFjZDMwNDc2MDY2YzcyYzY4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC01ODEsMTQgKzU4MSwxNCBAQCBJ
bnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkOgogICB3ZWJjb3JlQmlu
ZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25kaXRpb246IEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKLVdlYlJUQ1ZQOENvZGVjRW5hYmxlZDoKK1dlYlJUQ0gyNjVDb2RlY0VuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVsdFZhbHVlOiB0cnVlCiAgIHdlYmNvcmVCaW5kaW5nOiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9SVEMpCi0gIGh1
bWFuUmVhZGFibGVOYW1lOiAiV2ViUlRDIFZQOCBjb2RlYyIKLSAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRW5hYmxlIFdlYlJUQyBWUDggY29kZWMiCi0gIGNhdGVnb3J5OiBpbnRlcm5hbAor
ICBodW1hblJlYWRhYmxlTmFtZTogIldlYlJUQyBIMjY1IGNvZGVjIgorICBodW1hblJlYWRhYmxl
RGVzY3JpcHRpb246ICJFbmFibGUgV2ViUlRDIEgyNjUgY29kZWMiCisgIGNhdGVnb3J5OiBleHBl
cmltZW50YWwKIAogV2ViUlRDUGxhdGZvcm1Db2RlY3NJbkdQVVByb2Nlc3NFbmFibGVkOgogICB0
eXBlOiBib29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDIyNDM4NGEyYjM1Y2YxNDRjMGYzZTc2MjNjZmRiNDcxYjViYWM4OTIuLjQzYjgwNzli
ZjI5MzU0ODY2OTU4NTM3MmFjZGMzYTQ0Yzg5YTVlYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNjYyLDYgKzM2NjIsMTAgQEAgdm9pZCBX
ZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9y
ZSkKICAgICBpZiAobV9kcmF3aW5nQXJlYSkKICAgICAgICAgbV9kcmF3aW5nQXJlYS0+dXBkYXRl
UHJlZmVyZW5jZXMoc3RvcmUpOwogCisjaWYgVVNFKExJQldFQlJUQykKKyAgICBtX3BhZ2UtPmxp
YldlYlJUQ1Byb3ZpZGVyKCkuc3VwcG9ydHNIMjY1KFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgpKTsKKyNlbmRpZgorCiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIC8vIEZJWE1FOiB1c2VHUFVQcm9jZXNzRm9yTWVkaWEg
c2hvdWxkIGJlIGEgUnVudGltZUVuYWJsZWRGZWF0dXJlIHNpbmNlIGl0J3MgZ2xvYmFsLgogICAg
IHN0YXRpY19jYXN0PFdlYk1lZGlhU3RyYXRlZ3kmPihwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bWVk
aWFTdHJhdGVneSgpKS5zZXRVc2VHUFVQcm9jZXNzKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NGb3JN
ZWRpYSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA4ODVlYjViOGRhZjQwYWY4MGUyNDhkZDAzNDc0M2E0MjkyYTI4MmFm
Li5hYTA1NDEzM2VhODk5OTYyOThlYTFhZWNiYmFlMTllZmNiNDNjYWQ1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyODMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3
ZWJydGMvaDI2NS5odG1sOiBBZGRlZC4KKwogMjAyMC0wMy0yNSAgeW91ZW5uIGZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQnVtcCBsaWJ3ZWJydGMgdG8gTTgyCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCBmZWZiZTkwOGUzZjRlZTUwZThiNDFlNDg3YzQ5N2Y5MzU4ZmU3YzgwLi5l
YjE2OTMzYjhmYTg3YzU1M2UzOWQzZDRmNTZkMWI5M2JjNmUzMWM3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE3NzgsNiArMTc3OCw5IEBAIHdlYmtpdC5vcmcvYi8xNDYxODIgZWRpdGluZy9zZWxl
Y3Rpb24vbGVhay1kb2N1bWVudC13aXRoLXNlbGVjdGlvbi1pbnNpZGUuaHRtbCBbCiAjIE1lZGlh
IFNlc3Npb25zIGlzIG5vdCB5ZXQgZW5hYmxlZCBieSBkZWZhdWx0OiBFTkFCTEUoTUVESUFfU0VT
U0lPTikKIG1lZGlhL3Nlc3Npb24gWyBTa2lwIF0KIAorIyBFeHBlcmltZW50YWwgSDI2NSBzdXBw
b3J0Lgord2VicnRjL2gyNjUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKIHdlYnJ0Yy9zaW11bGNh
c3QtaDI2NC5odG1sIFsgU2xvdyBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFN5bmNocm9uaXphdGlvblNvdXJjZXMuaHR0cHMuaHRt
bCBbIFNsb3cgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2gyNjUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJm
OTgzYmFmOWIzM2UwMjE5NjE5NDdlODNiNmEzYTZkZWZlZGVjMzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAor
VmlkZW8gc2hvdWxkIGJlIHJ1bm5pbmcsIGdvIHRvIGJsYWNrIGFuZCBydW5uaW5nLgorRm9sbG93
aW5nLCBzaG91bGQgYmUgYSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8sIGEgYmxhY2sgZnJhbWUgYW5k
IGEgc25hcHNob3Qgb2YgdGhlIHZpZGVvLgorICAKKworUEFTUyBIMjY1IGluIGdldENhcGFiaWxp
dGllcyAKK1BBU1MgVmVyaWZ5IEgyNjUgYWN0aXZhdGlvbiAKK1BBU1MgU2V0dGluZyB2aWRlbyBl
eGNoYW5nZSAKK1BBU1MgRW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQgCitQ
QVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgCitQQVNTIFRy
YWNrIGlzIGRpc2FibGVkLCB2aWRlbyBzaG91bGQgYmUgYmxhY2sgCitQQVNTIFRyYWNrIGlzIGVu
YWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgMiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2VicnRjL2gyNjUuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTdlMWM0MTIwODQ0YWU5NGU2ODUzNGVjYzZmMzhlNjdhMTE2NjZjYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0bWwKQEAgLTAsMCArMSw5NCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VGVzdGluZyBtdXRpbmcgdmlkZW88L3RpdGxl
PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2PlZp
ZGVvIHNob3VsZCBiZSBydW5uaW5nLCBnbyB0byBibGFjayBhbmQgcnVubmluZy48L2Rpdj4KKyAg
ICAgICAgPGRpdj5Gb2xsb3dpbmcsIHNob3VsZCBiZSBhIHNuYXBzaG90IG9mIHRoZSB2aWRlbywg
YSBibGFjayBmcmFtZSBhbmQgYSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8uPC9kaXY+CisgICAgICAg
IDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5IHBsYXlzSW5saW5lIHdpZHRoPSIzMjAiIGhlaWdo
dD0iMjQwIj48L3ZpZGVvPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMxIiB3aWR0aD0iMzIw
IiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczIiIHdp
ZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2Fu
dmFzMyIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8c2NyaXB0
IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KK3ZhciBoYXNI
MjY1ID0gZmFsc2U7Cit0ZXN0KCgpID0+IHsKKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgd2luZG93LmludGVybmFscy5jbGVhclBlZXJDb25uZWN0aW9uRmFjdG9yeSgpOworCisg
ICAgY29uc3QgY29kZWNzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygidmlkZW8iKS5j
b2RlY3M7CisgICAgaGFzSDI2NSA9IGNvZGVjcy5zb21lKChjb2RlYykgPT4geyByZXR1cm4gY29k
ZWMubWltZVR5cGUgPT0gInZpZGVvL0gyNjUiOyB9KTsKKyAgICBhc3NlcnRfdHJ1ZShoYXNIMjY1
KTsKK30sICJIMjY1IGluIGdldENhcGFiaWxpdGllcyIpOworCitpZiAoaGFzSDI2NSkgeworICAg
IHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgICAgICBjb25zdCBwYyA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICAgICAgICBwYy5hZGRUcmFuc2NlaXZlcigidmlkZW8iKTsK
KyAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICAg
ICAgICBwYy5jbG9zZSgpOworICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdGlvbi5zZHAuaW5k
ZXhPZigiSDI2NSIpICE9PSAtMSwgIkgyNjUgY29kZWMgaXMgaW4gdGhlIFNEUCIpOworICAgIH0s
ICJWZXJpZnkgSDI2NSBhY3RpdmF0aW9uIikKKyAKKyAgICB2YXIgdHJhY2s7CisgICAgdmFyIHJl
bW90ZVRyYWNrOworICAgIHZhciByZWNlaXZpbmdDb25uZWN0aW9uOworICAgIHByb21pc2VfdGVz
dCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoe3ZpZGVvOiB7d2lkdGg6IDMyMCwgaGVpZ2h0OiAyNDAsIGZhY2luZ01vZGU6ICJl
bnZpcm9ubWVudCJ9fSkudGhlbigobG9jYWxTdHJlYW0pID0+IHsKKyAgICAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgdHJh
Y2sgPSBsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdOworICAgIAorICAgICAgICAgICAg
ICAgIGNyZWF0ZUNvbm5lY3Rpb25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKHRyYWNrLCBsb2NhbFN0cmVhbSk7Cisg
ICAgICAgICAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbiA9IHNlY29uZENvbm5lY3Rpb247CisgICAgICAgICAg
ICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVUcmFjayA9IHRyYWNrRXZlbnQudHJhY2s7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7Cisg
ICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfSwgeyBvYnNlcnZlT2ZmZXIg
OiAob2ZmZXIpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgb2ZmZXIuc2RwID0gc2V0Q29kZWMo
b2ZmZXIuc2RwLCAiSDI2NSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2ZmZXI7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHNl
dFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCAyMDAwKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KS50aGVuKChyZW1vdGVTdHJlYW0pID0+IHsKKyAgICAgICAgICAg
IHZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsKKyAgICAgICAgICAgIHJldHVybiB2aWRl
by5wbGF5KCk7CisgICAgICAgIH0pOworICAgIH0sICJTZXR0aW5nIHZpZGVvIGV4Y2hhbmdlIik7
CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAgICBpZiAocmVjZWl2aW5nQ29ubmVj
dGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4geworICAgICAgICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbi5vbmNvbm5lY3Rp
b25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAocmVjZWl2aW5nQ29u
bmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQiKQorICAgICAgICAgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgc2V0VGltZW91dCgo
KSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDIwMDApOworICAgICAgICB9KTsKKyAgICB9
LCAiRW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQiKTsKKworICAgIHByb21p
c2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNrKGZhbHNl
LCBjYW52YXMxLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3Vs
ZCBub3QgYmUgYmxhY2siKTsKKworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAg
ICB0cmFjay5lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2so
dHJ1ZSwgY2FudmFzMiwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBkaXNhYmxlZCwgdmlkZW8g
c2hvdWxkIGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAg
ICAgdHJhY2suZW5hYmxlZCA9IHRydWU7CisgICAgICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2so
ZmFsc2UsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8g
c2hvdWxkIG5vdCBiZSBibGFjayAyIik7Cit9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395176</attachid>
            <date>2020-04-01 09:26:01 -0700</date>
            <delta_ts>2020-04-01 09:57:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204283-20200401182600.patch</filename>
            <type>text/plain</type>
            <size>246254</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBlMWViMjliNDMzOTllZDU2MjIxZDU5NmRhM2U1ZGRiOWIzNDk2YjAzLi4yODNm
YmZjNDYzN2JkMjQyNWVlMTYwZjUzMjdmZjFlN2IzYWRlMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MSBAQAorMjAyMC0wNC0wMSAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEhFVkMgc3VwcG9ydCBpbiBH
UFUgUHJvY2VzcyBmb3IgV2ViUlRDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDk4NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwOgorICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1NzaW0uZXhwOgorICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2Rr
L1dlYktpdC9XZWJLaXREZWNvZGVyLmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmguCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIubW06IEFkZGVkLgor
ICAgICAgICAoLVtXS19SVENMb2NhbFZpZGVvSDI2NEgyNjVEZWNvZGVyIGluaXRIMjY0RGVjb2Rl
cldpdGhDYWxsYmFjazpdKToKKyAgICAgICAgKC1bV0tfUlRDTG9jYWxWaWRlb0gyNjRIMjY1RGVj
b2RlciBpbml0SDI2NURlY29kZXJXaXRoQ2FsbGJhY2s6XSk6CisgICAgICAgICgtW1dLX1JUQ0xv
Y2FsVmlkZW9IMjY0SDI2NURlY29kZXIgZGVjb2RlRGF0YTpzaXplOnRpbWVTdGFtcDpdKToKKyAg
ICAgICAgKC1bV0tfUlRDTG9jYWxWaWRlb0gyNjRIMjY1RGVjb2RlciByZWxlYXNlRGVjb2Rlcl0p
OgorICAgICAgICAod2VicnRjOjp2aWRlb0RlY29kZXJDYWxsYmFja3MpOgorICAgICAgICAod2Vi
cnRjOjpzZXRWaWRlb0RlY29kZXJDYWxsYmFja3MpOgorICAgICAgICAod2VicnRjOjpSZW1vdGVW
aWRlb0RlY29kZXI6OlJlbW90ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgICh3ZWJydGM6OlJlbW90
ZVZpZGVvRGVjb2Rlcjo6ZGVjb2RlQ29tcGxldGUpOgorICAgICAgICAod2VicnRjOjpSZW1vdGVW
aWRlb0RlY29kZXI6OkluaXREZWNvZGUpOgorICAgICAgICAod2VicnRjOjpSZW1vdGVWaWRlb0Rl
Y29kZXI6OkRlY29kZSk6CisgICAgICAgICh3ZWJydGM6OlJlbW90ZVZpZGVvRGVjb2Rlcjo6UmVn
aXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKToKKyAgICAgICAgKHdlYnJ0Yzo6UmVtb3RlVmlk
ZW9EZWNvZGVyOjpSZWxlYXNlKToKKyAgICAgICAgKHdlYnJ0Yzo6UmVtb3RlVmlkZW9EZWNvZGVy
RmFjdG9yeTo6UmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeSk6CisgICAgICAgICh3ZWJydGM6OlJl
bW90ZVZpZGVvRGVjb2RlckZhY3Rvcnk6OkdldFN1cHBvcnRlZEZvcm1hdHMgY29uc3QpOgorICAg
ICAgICAod2VicnRjOjpSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29k
ZXIpOgorICAgICAgICAod2VicnRjOjpjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeSk6CisgICAg
ICAgICh3ZWJydGM6OmNyZWF0ZUxvY2FsSDI2NERlY29kZXIpOgorICAgICAgICAod2VicnRjOjpj
cmVhdGVMb2NhbEgyNjVEZWNvZGVyKToKKyAgICAgICAgKHdlYnJ0Yzo6cmVsZWFzZUxvY2FsRGVj
b2Rlcik6CisgICAgICAgICh3ZWJydGM6OmRlY29kZUZyYW1lKToKKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RW5jb2Rlci5tbToKKyAgICAgICAgKC1bV0tfUlRDTG9j
YWxWaWRlb0gyNjRIMjY1RW5jb2RlciBpbml0V2l0aENvZGVjSW5mbzpdKToKKyAgICAgICAgKC1b
V0tfUlRDTG9jYWxWaWRlb0gyNjRIMjY1RW5jb2RlciBzZXRDYWxsYmFjazpdKToKKyAgICAgICAg
KC1bV0tfUlRDTG9jYWxWaWRlb0gyNjRIMjY1RW5jb2RlciByZWxlYXNlRW5jb2Rlcl0pOgorICAg
ICAgICAoLVtXS19SVENMb2NhbFZpZGVvSDI2NEgyNjVFbmNvZGVyIHN0YXJ0RW5jb2RlV2l0aFNl
dHRpbmdzOm51bWJlck9mQ29yZXM6XSk6CisgICAgICAgICgtW1dLX1JUQ0xvY2FsVmlkZW9IMjY0
SDI2NUVuY29kZXIgZW5jb2RlOmNvZGVjU3BlY2lmaWNJbmZvOmZyYW1lVHlwZXM6XSk6CisgICAg
ICAgICgtW1dLX1JUQ0xvY2FsVmlkZW9IMjY0SDI2NUVuY29kZXIgc2V0Qml0cmF0ZTpmcmFtZXJh
dGU6XSk6CisgICAgICAgICh3ZWJydGM6OmNyZWF0ZUxvY2FsRW5jb2Rlcik6CisgICAgICAgICh3
ZWJydGM6OnJlbGVhc2VMb2NhbEVuY29kZXIpOgorICAgICAgICAod2VicnRjOjppbml0aWFsaXpl
TG9jYWxFbmNvZGVyKToKKyAgICAgICAgKHdlYnJ0Yzo6ZW5jb2RlTG9jYWxFbmNvZGVyRnJhbWUp
OgorICAgICAgICAod2VicnRjOjpzZXRMb2NhbEVuY29kZXJSYXRlcyk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVz
Lm1tOgorICAgICAgICAod2VicnRjOjp2aWRlb0RlY29kZXJDYWxsYmFja3MpOiBEZWxldGVkLgor
ICAgICAgICAod2VicnRjOjpzZXRWaWRlb0RlY29kZXJDYWxsYmFja3MpOiBEZWxldGVkLgorICAg
ICAgICAod2VicnRjOjpSZW1vdGVWaWRlb0RlY29kZXI6OlJlbW90ZVZpZGVvRGVjb2Rlcik6IERl
bGV0ZWQuCisgICAgICAgICh3ZWJydGM6OlJlbW90ZVZpZGVvRGVjb2Rlcjo6ZGVjb2RlQ29tcGxl
dGUpOiBEZWxldGVkLgorICAgICAgICAod2VicnRjOjpSZW1vdGVWaWRlb0RlY29kZXI6OkluaXRE
ZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAod2VicnRjOjpSZW1vdGVWaWRlb0RlY29kZXI6OkRl
Y29kZSk6IERlbGV0ZWQuCisgICAgICAgICh3ZWJydGM6OlJlbW90ZVZpZGVvRGVjb2Rlcjo6UmVn
aXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYnJ0Yzo6
UmVtb3RlVmlkZW9EZWNvZGVyOjpSZWxlYXNlKTogRGVsZXRlZC4KKyAgICAgICAgKHdlYnJ0Yzo6
UmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6UmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeSk6IERl
bGV0ZWQuCisgICAgICAgICh3ZWJydGM6OlJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnk6OkdldFN1
cHBvcnRlZEZvcm1hdHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAod2VicnRjOjpSZW1vdGVW
aWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIpOiBEZWxldGVkLgorICAgICAg
ICAod2VicnRjOjpjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeSk6IERlbGV0ZWQuCisgICAgICAg
ICh3ZWJydGM6OmNyZWF0ZUxvY2FsRGVjb2Rlcik6IERlbGV0ZWQuCisgICAgICAgICh3ZWJydGM6
OnJlbGVhc2VMb2NhbERlY29kZXIpOiBEZWxldGVkLgorICAgICAgICAod2VicnRjOjpkZWNvZGVG
cmFtZSk6IERlbGV0ZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaDoKKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2
NS5tbToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NSBkZWNvZGU6bWlzc2luZ0ZyYW1l
czpjb2RlY1NwZWNpZmljSW5mbzpyZW5kZXJUaW1lTXM6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVv
RGVjb2RlckgyNjUgZGVjb2RlRGF0YTpzaXplOnRpbWVTdGFtcDpdKToKKyAgICAgICAgKiBsaWJ3
ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0wNC0wMSAgeW91ZW5uIGZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGluaXRpYWwgc3VwcG9ydCBm
b3IgV2ViUlRDIEhFVkMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWU5ZjI3NWM5M2Y1NThjZWNmZGExYjQwZGQ1Yzkx
MmQ3MTVjM2NlMC4uNmYwYWUxN2RlNmYyZTY0ZjhkZTg3MmE5Yjc5YTY1NGE0ZGMwODIyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMC0wNC0wMSAgeW91ZW5uIGZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEhFVkMgc3VwcG9ydCBpbiBHUFUgUHJvY2VzcyBm
b3IgV2ViUlRDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDk4NTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lmg6CisgICAgICAgICog
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW46CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpjcmVhdGVIMjY0RGVjb2Rlcik6CisgICAg
ICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpjcmVhdGVIMjY1RGVjb2Rlcik6Cisg
ICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjpjcmVhdGVFbmNvZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6TGliV2ViUlRDQ29kZWNzUHJveHk6OmNyZWF0ZURlY29kZXIpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVWaWRlb0RlY29kZXIpOgorICAgICAgICAoV2ViS2l0
OjpjcmVhdGVWaWRlb0VuY29kZXIpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6
OmNyZWF0ZURlY29kZXIpOgorICAgICAgICAoV2ViS2l0Ojpmb3JtYXROYW1lRnJvbUNvZGVjVHlw
ZSk6CisgICAgICAgIChXZWJLaXQ6OkxpYldlYlJUQ0NvZGVjczo6Y3JlYXRlRW5jb2Rlcik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oOgorCiAyMDIw
LTA0LTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
aW5pdGlhbCBzdXBwb3J0IGZvciBXZWJSVEMgSEVWQwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhwCmlu
ZGV4IDU1MDZkMTVkOTc0NzJjYWViMzNmYzk0NTI3NDM1MGI0MjE1M2EyZGEuLmQ2OWZkYTY5YmVi
MWQ5MmY5MTY2ODhlYWNkNDk0Mzg0NGQyNTFmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHAK
QEAgLTIzMyw3ICsyMzMsOCBAQCBfX1pOSzZ3ZWJydGMyMERhdGFDaGFubmVsSW50ZXJmYWNlMTdt
YXhQYWNrZXRMaWZlVGltZUV2CiBfX1pOSzZ3ZWJydGMyMERhdGFDaGFubmVsSW50ZXJmYWNlMTdt
YXhSZXRyYW5zbWl0c09wdEV2CiBfX1pOSzZ3ZWJydGMyMFJ0cFJlY2VpdmVySW50ZXJmYWNlMTRk
dGxzX3RyYW5zcG9ydEV2CiBfX1pOSzZ3ZWJydGMyM1J0cFRyYW5zY2VpdmVySW50ZXJmYWNlMTdj
b2RlY19wcmVmZXJlbmNlc0V2Ci1fX1pONndlYnJ0YzE4Y3JlYXRlTG9jYWxEZWNvZGVyRVUxM2Js
b2NrX3BvaW50ZXJGdlAxMF9fQ1ZCdWZmZXJqakUKK19fWk42d2VicnRjMjJjcmVhdGVMb2NhbEgy
NjREZWNvZGVyRVUxM2Jsb2NrX3BvaW50ZXJGdlAxMF9fQ1ZCdWZmZXJqakUKK19fWk42d2VicnRj
MjJjcmVhdGVMb2NhbEgyNjVEZWNvZGVyRVUxM2Jsb2NrX3BvaW50ZXJGdlAxMF9fQ1ZCdWZmZXJq
akUKIF9fWk42d2VicnRjMTlyZWxlYXNlTG9jYWxEZWNvZGVyRVB2CiBfX1pONndlYnJ0YzExZGVj
b2RlRnJhbWVFUHZqUEtobQogX19aTjZ3ZWJydGMxOFJlbW90ZVZpZGVvRGVjb2RlcjE0ZGVjb2Rl
Q29tcGxldGVFUHZqUDEwX19DVkJ1ZmZlcmoKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cApp
bmRleCA1NTA2ZDE1ZDk3NDcyY2FlYjMzZmM5NDUyNzQzNTBiNDIxNTNhMmRhLi5kNjlmZGE2OWJl
YjFkOTJmOTE2Njg4ZWFjZDQ5NDM4NDRkMjUxZmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHAKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1Nz
aW0uZXhwCkBAIC0yMzMsNyArMjMzLDggQEAgX19aTks2d2VicnRjMjBEYXRhQ2hhbm5lbEludGVy
ZmFjZTE3bWF4UGFja2V0TGlmZVRpbWVFdgogX19aTks2d2VicnRjMjBEYXRhQ2hhbm5lbEludGVy
ZmFjZTE3bWF4UmV0cmFuc21pdHNPcHRFdgogX19aTks2d2VicnRjMjBSdHBSZWNlaXZlckludGVy
ZmFjZTE0ZHRsc190cmFuc3BvcnRFdgogX19aTks2d2VicnRjMjNSdHBUcmFuc2NlaXZlckludGVy
ZmFjZTE3Y29kZWNfcHJlZmVyZW5jZXNFdgotX19aTjZ3ZWJydGMxOGNyZWF0ZUxvY2FsRGVjb2Rl
ckVVMTNibG9ja19wb2ludGVyRnZQMTBfX0NWQnVmZmVyampFCitfX1pONndlYnJ0YzIyY3JlYXRl
TG9jYWxIMjY0RGVjb2RlckVVMTNibG9ja19wb2ludGVyRnZQMTBfX0NWQnVmZmVyampFCitfX1pO
NndlYnJ0YzIyY3JlYXRlTG9jYWxIMjY1RGVjb2RlckVVMTNibG9ja19wb2ludGVyRnZQMTBfX0NW
QnVmZmVyampFCiBfX1pONndlYnJ0YzE5cmVsZWFzZUxvY2FsRGVjb2RlckVQdgogX19aTjZ3ZWJy
dGMxMWRlY29kZUZyYW1lRVB2alBLaG0KIF9fWk42d2VicnRjMThSZW1vdGVWaWRlb0RlY29kZXIx
NGRlY29kZUNvbXBsZXRlRVB2alAxMF9fQ1ZCdWZmZXJqCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAK
aW5kZXggNTJmMzhjNGZlMjI5NDE3ODQ0ZTczMGFhM2NiNWI5YzYxNWNkMmI1MC4uNzI1YmZiMjg0
NjY1ZGU2NDBkZTc0MDc4YjZkYWQwMTAxNzNiMGYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4
cApAQCAtMjMzLDcgKzIzMyw4IEBAIF9fWk5LNndlYnJ0YzIwRGF0YUNoYW5uZWxJbnRlcmZhY2Ux
N21heFBhY2tldExpZmVUaW1lRXYKIF9fWk5LNndlYnJ0YzIwRGF0YUNoYW5uZWxJbnRlcmZhY2Ux
N21heFJldHJhbnNtaXRzT3B0RXYKIF9fWk5LNndlYnJ0YzIwUnRwUmVjZWl2ZXJJbnRlcmZhY2Ux
NGR0bHNfdHJhbnNwb3J0RXYKIF9fWk5LNndlYnJ0YzIzUnRwVHJhbnNjZWl2ZXJJbnRlcmZhY2Ux
N2NvZGVjX3ByZWZlcmVuY2VzRXYKLV9fWk42d2VicnRjMThjcmVhdGVMb2NhbERlY29kZXJFVTEz
YmxvY2tfcG9pbnRlckZ2UDEwX19DVkJ1ZmZlcmpqRQorX19aTjZ3ZWJydGMyMmNyZWF0ZUxvY2Fs
SDI2NERlY29kZXJFVTEzYmxvY2tfcG9pbnRlckZ2UDEwX19DVkJ1ZmZlcmpqRQorX19aTjZ3ZWJy
dGMyMmNyZWF0ZUxvY2FsSDI2NURlY29kZXJFVTEzYmxvY2tfcG9pbnRlckZ2UDEwX19DVkJ1ZmZl
cmpqRQogX19aTjZ3ZWJydGMxOXJlbGVhc2VMb2NhbERlY29kZXJFUHYKIF9fWk42d2VicnRjMTFk
ZWNvZGVGcmFtZUVQdmpQS2htCiBfX1pONndlYnJ0YzE4UmVtb3RlVmlkZW9EZWNvZGVyMTRkZWNv
ZGVDb21wbGV0ZUVQdmpQMTBfX0NWQnVmZmVyagpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktp
dERlY29kZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWNhMzYxMGVjMjc2ZWU1YWU5MjExMmU1YTVmOTA4NjE5
YzliNGI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXREZWNvZGVyLmgKQEAgLTAsMCArMSw4MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiYXBpL3ZpZGVvX2NvZGVjcy92
aWRlb19kZWNvZGVyLmgiCisjaW5jbHVkZSAiYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19kZWNvZGVy
X2ZhY3RvcnkuaCIKKwordHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJl
ZjsKKworbmFtZXNwYWNlIHdlYnJ0YyB7CisKK3N0cnVjdCBTZHBWaWRlb0Zvcm1hdDsKKwordXNp
bmcgV2ViS2l0VmlkZW9EZWNvZGVyID0gdm9pZCo7Cit1c2luZyBWaWRlb0RlY29kZXJDcmVhdGVD
YWxsYmFjayA9IFdlYktpdFZpZGVvRGVjb2RlcigqKShjb25zdCBTZHBWaWRlb0Zvcm1hdCYgZm9y
bWF0KTsKK3VzaW5nIFZpZGVvRGVjb2RlclJlbGVhc2VDYWxsYmFjayA9IGludDMyX3QoKikoV2Vi
S2l0VmlkZW9EZWNvZGVyKTsKK3VzaW5nIFZpZGVvRGVjb2RlckRlY29kZUNhbGxiYWNrID0gaW50
MzJfdCgqKShXZWJLaXRWaWRlb0RlY29kZXIsIHVpbnQzMl90IHRpbWVTdGFtcCwgY29uc3QgdWlu
dDhfdCosIHNpemVfdCBsZW5ndGgpOwordXNpbmcgVmlkZW9EZWNvZGVyUmVnaXN0ZXJEZWNvZGVD
b21wbGV0ZUNhbGxiYWNrID0gaW50MzJfdCgqKShXZWJLaXRWaWRlb0RlY29kZXIsIHZvaWQqIGRl
Y29kZWRJbWFnZUNhbGxiYWNrKTsKKwordm9pZCBzZXRWaWRlb0RlY29kZXJDYWxsYmFja3MoVmlk
ZW9EZWNvZGVyQ3JlYXRlQ2FsbGJhY2ssIFZpZGVvRGVjb2RlclJlbGVhc2VDYWxsYmFjaywgVmlk
ZW9EZWNvZGVyRGVjb2RlQ2FsbGJhY2ssIFZpZGVvRGVjb2RlclJlZ2lzdGVyRGVjb2RlQ29tcGxl
dGVDYWxsYmFjayk7CisKK2NsYXNzIFJlbW90ZVZpZGVvRGVjb2RlckZhY3RvcnkgZmluYWwgOiBw
dWJsaWMgVmlkZW9EZWNvZGVyRmFjdG9yeSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3Rl
VmlkZW9EZWNvZGVyRmFjdG9yeShzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyRmFjdG9yeT4m
Jik7CisgICAgflJlbW90ZVZpZGVvRGVjb2RlckZhY3RvcnkoKSA9IGRlZmF1bHQ7CisKK3ByaXZh
dGU6CisgICAgc3RkOjp2ZWN0b3I8U2RwVmlkZW9Gb3JtYXQ+IEdldFN1cHBvcnRlZEZvcm1hdHMo
KSBjb25zdCBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyPiBDcmVhdGVW
aWRlb0RlY29kZXIoY29uc3QgU2RwVmlkZW9Gb3JtYXQmIGZvcm1hdCkgZmluYWw7CisKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyRmFjdG9yeT4gbV9pbnRlcm5hbEZhY3Rvcnk7Cit9
OworCitjbGFzcyBSZW1vdGVWaWRlb0RlY29kZXIgZmluYWwgOiBwdWJsaWMgd2VicnRjOjpWaWRl
b0RlY29kZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFJlbW90ZVZpZGVvRGVjb2RlcihXZWJL
aXRWaWRlb0RlY29kZXIpOworICAgIH5SZW1vdGVWaWRlb0RlY29kZXIoKSA9IGRlZmF1bHQ7CisK
KyAgICBzdGF0aWMgdm9pZCBkZWNvZGVDb21wbGV0ZSh2b2lkKiBjYWxsYmFjaywgdWludDMyX3Qg
dGltZVN0YW1wLCBDVlBpeGVsQnVmZmVyUmVmLCB1aW50MzJfdCB0aW1lU3RhbXBSVFApOworCitw
cml2YXRlOgorICAgIGludDMyX3QgSW5pdERlY29kZShjb25zdCBWaWRlb0NvZGVjKiwgaW50MzJf
dCBudW1iZXJfb2ZfY29yZXMpIGZpbmFsOworICAgIGludDMyX3QgRGVjb2RlKGNvbnN0IEVuY29k
ZWRJbWFnZSYsIGJvb2wgbWlzc2luZ19mcmFtZXMsIGludDY0X3QgcmVuZGVyX3RpbWVfbXMpIGZp
bmFsOworICAgIGludDMyX3QgUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKERlY29kZWRJ
bWFnZUNhbGxiYWNrKikgZmluYWw7CisgICAgaW50MzJfdCBSZWxlYXNlKCkgZmluYWw7CisgICAg
Y29uc3QgY2hhciogSW1wbGVtZW50YXRpb25OYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlJl
bW90ZVZpZGVvVG9vbEJveCI7IH0KKworICAgIFdlYktpdFZpZGVvRGVjb2RlciBtX2ludGVybmFs
RGVjb2RlcjsKK307CisKK3VzaW5nIExvY2FsRGVjb2RlciA9IHZvaWQqOwordXNpbmcgTG9jYWxE
ZWNvZGVyQ2FsbGJhY2sgPSB2b2lkICheKShDVlBpeGVsQnVmZmVyUmVmLCB1aW50MzJfdCB0aW1l
U3RhbXAsIHVpbnQzMl90IHRpbWVTdGFtcE5zKTsKK3ZvaWQqIGNyZWF0ZUxvY2FsSDI2NERlY29k
ZXIoTG9jYWxEZWNvZGVyQ2FsbGJhY2spOwordm9pZCogY3JlYXRlTG9jYWxIMjY1RGVjb2RlcihM
b2NhbERlY29kZXJDYWxsYmFjayk7Cit2b2lkIHJlbGVhc2VMb2NhbERlY29kZXIoTG9jYWxEZWNv
ZGVyKTsKK2ludDMyX3QgZGVjb2RlRnJhbWUoTG9jYWxEZWNvZGVyLCB1aW50MzJfdCB0aW1lU3Rh
bXAsIGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIu
bW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0
L1dlYktpdERlY29kZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2IzNjNmZDI3ZTc2ZWMyM2EwNTE2MTFjM2U3
NzI5MDU1NDY0NGY5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RGVjb2Rlci5tbQpAQCAtMCwwICsx
LDIwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJLaXREZWNvZGVyLmgiCisKKyNpbXBv
cnQgIkZyYW1ld29yay9IZWFkZXJzL1dlYlJUQy9SVENWaWRlb0NvZGVjRmFjdG9yeS5oIgorI2lt
cG9ydCAiRnJhbWV3b3JrL0hlYWRlcnMvV2ViUlRDL1JUQ1ZpZGVvRnJhbWVCdWZmZXIuaCIKKyNp
bXBvcnQgIkZyYW1ld29yay9OYXRpdmUvYXBpL3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5oIgorI2lt
cG9ydCAiV2ViS2l0VXRpbGl0aWVzLmgiCisjaW1wb3J0ICJzZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjQuaCIKKyNpbXBvcnQgInNkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5oIgorCisjaW5jbHVkZSA8bXV0
ZXg+CisKK0BpbnRlcmZhY2UgV0tfUlRDTG9jYWxWaWRlb0gyNjRIMjY1RGVjb2RlciA6IE5TT2Jq
ZWN0CistIChpbnN0YW5jZXR5cGUpaW5pdEgyNjREZWNvZGVyV2l0aENhbGxiYWNrOih3ZWJydGM6
OkxvY2FsRGVjb2RlckNhbGxiYWNrKWNhbGxiYWNrOworLSAoaW5zdGFuY2V0eXBlKWluaXRIMjY1
RGVjb2RlcldpdGhDYWxsYmFjazood2VicnRjOjpMb2NhbERlY29kZXJDYWxsYmFjayljYWxsYmFj
azsKKy0gKE5TSW50ZWdlcilkZWNvZGVEYXRhOihjb25zdCB1aW50OF90ICopZGF0YSBzaXplOihz
aXplX3Qpc2l6ZSB0aW1lU3RhbXA6KHVpbnQzMl90KXRpbWVTdGFtcDsKKy0gKE5TSW50ZWdlcily
ZWxlYXNlRGVjb2RlcjsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLX1JUQ0xvY2FsVmlkZW9I
MjY0SDI2NURlY29kZXIgeworICAgIFJUQ1ZpZGVvRGVjb2RlckgyNjQgKm1faDI2NERlY29kZXI7
CisgICAgUlRDVmlkZW9EZWNvZGVySDI2NSAqbV9oMjY1RGVjb2RlcjsKK30KKworLSAoaW5zdGFu
Y2V0eXBlKWluaXRIMjY0RGVjb2RlcldpdGhDYWxsYmFjazood2VicnRjOjpMb2NhbERlY29kZXJD
YWxsYmFjayljYWxsYmFjayB7CisgICAgaWYgKHNlbGYgPSBbc3VwZXIgaW5pdF0pIHsKKyAgICAg
ICAgbV9oMjY0RGVjb2RlciA9IFtbUlRDVmlkZW9EZWNvZGVySDI2NCBhbGxvY10gaW5pdF07Cisg
ICAgICAgIFttX2gyNjREZWNvZGVyIHNldENhbGxiYWNrOl4oUlRDVmlkZW9GcmFtZSAqZnJhbWUp
IHsKKyAgICAgICAgICAgIGF1dG8gKmJ1ZmZlciA9IChSVENDVlBpeGVsQnVmZmVyICopZnJhbWUu
YnVmZmVyOworICAgICAgICAgICAgY2FsbGJhY2soYnVmZmVyLnBpeGVsQnVmZmVyLCBmcmFtZS50
aW1lU3RhbXBOcywgZnJhbWUudGltZVN0YW1wKTsKKyAgICAgICAgfV07CisgICAgfQorICAgIHJl
dHVybiBzZWxmOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdEgyNjVEZWNvZGVyV2l0aENhbGxi
YWNrOih3ZWJydGM6OkxvY2FsRGVjb2RlckNhbGxiYWNrKWNhbGxiYWNrIHsKKyAgICBpZiAoc2Vs
ZiA9IFtzdXBlciBpbml0XSkgeworICAgICAgICBtX2gyNjVEZWNvZGVyID0gW1tSVENWaWRlb0Rl
Y29kZXJIMjY1IGFsbG9jXSBpbml0XTsKKyAgICAgICAgW21faDI2NURlY29kZXIgc2V0Q2FsbGJh
Y2s6XihSVENWaWRlb0ZyYW1lICpmcmFtZSkgeworICAgICAgICAgICAgYXV0byAqYnVmZmVyID0g
KFJUQ0NWUGl4ZWxCdWZmZXIgKilmcmFtZS5idWZmZXI7CisgICAgICAgICAgICBjYWxsYmFjayhi
dWZmZXIucGl4ZWxCdWZmZXIsIGZyYW1lLnRpbWVTdGFtcE5zLCBmcmFtZS50aW1lU3RhbXApOwor
ICAgICAgICB9XTsKKyAgICB9CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKE5TSW50ZWdlcilk
ZWNvZGVEYXRhOihjb25zdCB1aW50OF90ICopZGF0YSBzaXplOihzaXplX3Qpc2l6ZSB0aW1lU3Rh
bXA6KHVpbnQzMl90KXRpbWVTdGFtcCB7CisgICAgaWYgKG1faDI2NERlY29kZXIpCisgICAgICAg
IHJldHVybiBbbV9oMjY0RGVjb2RlciBkZWNvZGVEYXRhOmRhdGEgc2l6ZTpzaXplIHRpbWVTdGFt
cDp0aW1lU3RhbXBdOworICAgIGlmIChtX2gyNjVEZWNvZGVyKQorICAgICAgICByZXR1cm4gW21f
aDI2NURlY29kZXIgZGVjb2RlRGF0YTpkYXRhIHNpemU6c2l6ZSB0aW1lU3RhbXA6dGltZVN0YW1w
XTsKKyAgICByZXR1cm4gMDsKK30KKworLSAoTlNJbnRlZ2VyKXJlbGVhc2VEZWNvZGVyIHsKKyAg
ICBpZiAobV9oMjY0RGVjb2RlcikKKyAgICAgICAgcmV0dXJuIFttX2gyNjREZWNvZGVyIHJlbGVh
c2VEZWNvZGVyXTsKKyAgICByZXR1cm4gW21faDI2NURlY29kZXIgcmVsZWFzZURlY29kZXJdOwor
fQorQGVuZAorCituYW1lc3BhY2Ugd2VicnRjIHsKKworc3RydWN0IFZpZGVvRGVjb2RlckNhbGxi
YWNrcyB7CisgICAgVmlkZW9EZWNvZGVyQ3JlYXRlQ2FsbGJhY2sgY3JlYXRlQ2FsbGJhY2s7Cisg
ICAgVmlkZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrIHJlbGVhc2VDYWxsYmFjazsKKyAgICBWaWRl
b0RlY29kZXJEZWNvZGVDYWxsYmFjayBkZWNvZGVDYWxsYmFjazsKKyAgICBWaWRlb0RlY29kZXJS
ZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2sgcmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxi
YWNrOworfTsKKworc3RhdGljIFZpZGVvRGVjb2RlckNhbGxiYWNrcyYgdmlkZW9EZWNvZGVyQ2Fs
bGJhY2tzKCkgeworICAgIHN0YXRpYyBWaWRlb0RlY29kZXJDYWxsYmFja3MgY2FsbGJhY2tzOwor
ICAgIHJldHVybiBjYWxsYmFja3M7Cit9CisKK3ZvaWQgc2V0VmlkZW9EZWNvZGVyQ2FsbGJhY2tz
KFZpZGVvRGVjb2RlckNyZWF0ZUNhbGxiYWNrIGNyZWF0ZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJS
ZWxlYXNlQ2FsbGJhY2sgcmVsZWFzZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJEZWNvZGVDYWxsYmFj
ayBkZWNvZGVDYWxsYmFjaywgVmlkZW9EZWNvZGVyUmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxi
YWNrIHJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjaykKK3sKKyAgICBhdXRvJiBjYWxsYmFj
a3MgPSB2aWRlb0RlY29kZXJDYWxsYmFja3MoKTsKKyAgICBjYWxsYmFja3MuY3JlYXRlQ2FsbGJh
Y2sgPSBjcmVhdGVDYWxsYmFjazsKKyAgICBjYWxsYmFja3MucmVsZWFzZUNhbGxiYWNrID0gcmVs
ZWFzZUNhbGxiYWNrOworICAgIGNhbGxiYWNrcy5kZWNvZGVDYWxsYmFjayA9IGRlY29kZUNhbGxi
YWNrOworICAgIGNhbGxiYWNrcy5yZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2sgPSByZWdp
c3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2s7Cit9CisKK1JlbW90ZVZpZGVvRGVjb2Rlcjo6UmVt
b3RlVmlkZW9EZWNvZGVyKFdlYktpdFZpZGVvRGVjb2RlciBpbnRlcm5hbERlY29kZXIpCisgICAg
OiBtX2ludGVybmFsRGVjb2RlcihpbnRlcm5hbERlY29kZXIpCit7Cit9CisKK3ZvaWQgUmVtb3Rl
VmlkZW9EZWNvZGVyOjpkZWNvZGVDb21wbGV0ZSh2b2lkKiBjYWxsYmFjaywgdWludDMyX3QgdGlt
ZVN0YW1wLCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBS
VFApCit7CisgICAgYXV0byB2aWRlb0ZyYW1lID0gVmlkZW9GcmFtZTo6QnVpbGRlcigpLnNldF92
aWRlb19mcmFtZV9idWZmZXIocGl4ZWxCdWZmZXJUb0ZyYW1lKHBpeGVsQnVmZmVyKSkKKyAgICAg
ICAgLnNldF90aW1lc3RhbXBfcnRwKHRpbWVTdGFtcFJUUCkKKyAgICAgICAgLnNldF90aW1lc3Rh
bXBfbXMoMCkKKyAgICAgICAgLnNldF9yb3RhdGlvbigoVmlkZW9Sb3RhdGlvbilSVENWaWRlb1Jv
dGF0aW9uXzApCisgICAgICAgIC5idWlsZCgpOworICAgIHZpZGVvRnJhbWUuc2V0X3RpbWVzdGFt
cCh0aW1lU3RhbXApOworCisgICAgc3RhdGljX2Nhc3Q8RGVjb2RlZEltYWdlQ2FsbGJhY2sqPihj
YWxsYmFjayktPkRlY29kZWQodmlkZW9GcmFtZSk7Cit9CisKK2ludDMyX3QgUmVtb3RlVmlkZW9E
ZWNvZGVyOjpJbml0RGVjb2RlKGNvbnN0IFZpZGVvQ29kZWMqIGNvZGVjX3NldHRpbmdzLCBpbnQz
Ml90IG51bWJlcl9vZl9jb3JlcykKK3sKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09L
OworfQorCitpbnQzMl90IFJlbW90ZVZpZGVvRGVjb2Rlcjo6RGVjb2RlKGNvbnN0IEVuY29kZWRJ
bWFnZSYgaW5wdXRfaW1hZ2UsIGJvb2wgbWlzc2luZ19mcmFtZXMsIGludDY0X3QgcmVuZGVyX3Rp
bWVfbXMpCit7CisgICAgcmV0dXJuIHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmRlY29kZUNhbGxi
YWNrKG1faW50ZXJuYWxEZWNvZGVyLCBpbnB1dF9pbWFnZS5UaW1lc3RhbXAoKSwgaW5wdXRfaW1h
Z2UuZGF0YSgpLCBpbnB1dF9pbWFnZS5zaXplKCkpOworfQorCitpbnQzMl90IFJlbW90ZVZpZGVv
RGVjb2Rlcjo6UmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKERlY29kZWRJbWFnZUNhbGxi
YWNrKiBjYWxsYmFjaykKK3sKKyAgICByZXR1cm4gdmlkZW9EZWNvZGVyQ2FsbGJhY2tzKCkucmVn
aXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrKG1faW50ZXJuYWxEZWNvZGVyLCBjYWxsYmFjayk7
Cit9CisKK2ludDMyX3QgUmVtb3RlVmlkZW9EZWNvZGVyOjpSZWxlYXNlKCkKK3sKKyAgICByZXR1
cm4gdmlkZW9EZWNvZGVyQ2FsbGJhY2tzKCkucmVsZWFzZUNhbGxiYWNrKG1faW50ZXJuYWxEZWNv
ZGVyKTsKK30KKworUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6UmVtb3RlVmlkZW9EZWNvZGVy
RmFjdG9yeShzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyRmFjdG9yeT4mJiBpbnRlcm5hbEZh
Y3RvcnkpCisgICAgOiBtX2ludGVybmFsRmFjdG9yeShzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5
KSkKK3sKK30KKworc3RkOjp2ZWN0b3I8U2RwVmlkZW9Gb3JtYXQ+IFJlbW90ZVZpZGVvRGVjb2Rl
ckZhY3Rvcnk6OkdldFN1cHBvcnRlZEZvcm1hdHMoKSBjb25zdAoreworICAgIHN0ZDo6dmVjdG9y
PFNkcFZpZGVvRm9ybWF0PiBzdXBwb3J0ZWRfZm9ybWF0czsKKyAgICBzdXBwb3J0ZWRfZm9ybWF0
cy5wdXNoX2JhY2soU2RwVmlkZW9Gb3JtYXQgeyAiSDI2NCIgfSk7CisgICAgc3VwcG9ydGVkX2Zv
cm1hdHMucHVzaF9iYWNrKFNkcFZpZGVvRm9ybWF0IHsgIlZQOCIgfSk7CisgICAgcmV0dXJuIHN1
cHBvcnRlZF9mb3JtYXRzOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyPiBSZW1v
dGVWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoY29uc3QgU2RwVmlkZW9G
b3JtYXQmIGZvcm1hdCkKK3sKKyAgICBpZiAoIXZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNyZWF0
ZUNhbGxiYWNrKQorICAgICAgICByZXR1cm4gbV9pbnRlcm5hbEZhY3RvcnktPkNyZWF0ZVZpZGVv
RGVjb2Rlcihmb3JtYXQpOworCisgICAgYXV0byBpZGVudGlmaWVyID0gdmlkZW9EZWNvZGVyQ2Fs
bGJhY2tzKCkuY3JlYXRlQ2FsbGJhY2soZm9ybWF0KTsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisg
ICAgICAgIHJldHVybiBtX2ludGVybmFsRmFjdG9yeS0+Q3JlYXRlVmlkZW9EZWNvZGVyKGZvcm1h
dCk7CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVWaWRlb0RlY29kZXI+KGlk
ZW50aWZpZXIpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0
b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShXZWJLaXRDb2RlY1N1cHBvcnQgY29kZWNT
dXBwb3J0KQoreworICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9E
ZWNvZGVyRmFjdG9yeShbW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGFsbG9jXSBpbml0
V2l0aEgyNjU6IGNvZGVjU3VwcG9ydCA9PSBXZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjRWUDhBbmRI
MjY1XSk7CisgICAgaWYgKHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNyZWF0ZUNhbGxiYWNrKQor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5
PihzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7CisgICAgcmV0dXJuIGludGVybmFsRmFjdG9y
eTsKK30KKwordm9pZCogY3JlYXRlTG9jYWxIMjY0RGVjb2RlcihMb2NhbERlY29kZXJDYWxsYmFj
ayBjYWxsYmFjaykKK3sKKyAgICBhdXRvIGRlY29kZXIgPSBbW1dLX1JUQ0xvY2FsVmlkZW9IMjY0
SDI2NURlY29kZXIgYWxsb2NdIGluaXRIMjY0RGVjb2RlcldpdGhDYWxsYmFjazogY2FsbGJhY2td
OworICAgIHJldHVybiAoX19icmlkZ2VfcmV0YWluZWQgdm9pZCopZGVjb2RlcjsKK30KKwordm9p
ZCogY3JlYXRlTG9jYWxIMjY1RGVjb2RlcihMb2NhbERlY29kZXJDYWxsYmFjayBjYWxsYmFjaykK
K3sKKyAgICBhdXRvIGRlY29kZXIgPSBbW1dLX1JUQ0xvY2FsVmlkZW9IMjY0SDI2NURlY29kZXIg
YWxsb2NdIGluaXRIMjY1RGVjb2RlcldpdGhDYWxsYmFjazogY2FsbGJhY2tdOworICAgIHJldHVy
biAoX19icmlkZ2VfcmV0YWluZWQgdm9pZCopZGVjb2RlcjsKK30KKwordm9pZCByZWxlYXNlTG9j
YWxEZWNvZGVyKExvY2FsRGVjb2RlciBsb2NhbERlY29kZXIpCit7CisgICAgYXV0byogZGVjb2Rl
ciA9IChfX2JyaWRnZV90cmFuc2ZlciBXS19SVENMb2NhbFZpZGVvSDI2NEgyNjVEZWNvZGVyICop
KGxvY2FsRGVjb2Rlcik7CisgICAgW2RlY29kZXIgcmVsZWFzZURlY29kZXJdOworfQorCitpbnQz
Ml90IGRlY29kZUZyYW1lKExvY2FsRGVjb2RlciBsb2NhbERlY29kZXIsIHVpbnQzMl90IHRpbWVT
dGFtcCwgY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCit7CisgICAgYXV0byogZGVj
b2RlciA9IChfX2JyaWRnZSBXS19SVENMb2NhbFZpZGVvSDI2NEgyNjVEZWNvZGVyICopKGxvY2Fs
RGVjb2Rlcik7CisgICAgcmV0dXJuIFtkZWNvZGVyIGRlY29kZURhdGE6IGRhdGEgc2l6ZTogc2l6
ZSB0aW1lU3RhbXA6IHRpbWVTdGFtcF07Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0RW5jb2Rlci5t
bSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQv
V2ViS2l0RW5jb2Rlci5tbQppbmRleCAyNzYxNmEwMTc2OWZiNTY0ZjBiODNlM2RhZDQyNmIyMDZi
NzY2MDUyLi4wNzMwZjM3NjIzN2Y5ZWY2ZDczNmYyMGJjYzM3YjllZDkzNjI2OTJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0
L1dlYktpdEVuY29kZXIubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRFbmNvZGVyLm1tCkBAIC0zNCw4ICszNCw2NCBAQAog
I2luY2x1ZGUgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENWaWRlb0NvZGVjSW5mbytQ
cml2YXRlLmgiCiAjaW5jbHVkZSAic2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JUQ1ZpZGVv
RW5jb2RlclNldHRpbmdzK1ByaXZhdGUuaCIKICNpbmNsdWRlICJzZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjQuaCIKKyNpbmNsdWRlICJzZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUuaCIKICNpbmNsdWRlICJz
ZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfZnJhbWVfYnVmZmVyLmgiCiAKKworQGludGVyZmFjZSBX
S19SVENMb2NhbFZpZGVvSDI2NEgyNjVFbmNvZGVyIDogTlNPYmplY3QKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aENvZGVjSW5mbzooUlRDVmlkZW9Db2RlY0luZm8qKWNvZGVjSW5mbzsKKy0gKHZv
aWQpc2V0Q2FsbGJhY2s6KFJUQ1ZpZGVvRW5jb2RlckNhbGxiYWNrKWNhbGxiYWNrOworLSAoTlNJ
bnRlZ2VyKXJlbGVhc2VFbmNvZGVyOworLSAoTlNJbnRlZ2VyKXN0YXJ0RW5jb2RlV2l0aFNldHRp
bmdzOihSVENWaWRlb0VuY29kZXJTZXR0aW5ncyAqKXNldHRpbmdzIG51bWJlck9mQ29yZXM6KGlu
dCludW1iZXJPZkNvcmVzOworLSAoTlNJbnRlZ2VyKWVuY29kZTooUlRDVmlkZW9GcmFtZSAqKWZy
YW1lIGNvZGVjU3BlY2lmaWNJbmZvOihudWxsYWJsZSBpZDxSVENDb2RlY1NwZWNpZmljSW5mbz4p
aW5mbyBmcmFtZVR5cGVzOihOU0FycmF5PE5TTnVtYmVyICo+ICopZnJhbWVUeXBlczsKKy0gKGlu
dClzZXRCaXRyYXRlOih1aW50MzJfdCliaXRyYXRlS2JpdCBmcmFtZXJhdGU6KHVpbnQzMl90KWZy
YW1lcmF0ZTsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLX1JUQ0xvY2FsVmlkZW9IMjY0SDI2
NUVuY29kZXIgeworICAgIFJUQ1ZpZGVvRW5jb2RlckgyNjQgKm1faDI2NEVuY29kZXI7CisgICAg
UlRDVmlkZW9FbmNvZGVySDI2NSAqbV9oMjY1RW5jb2RlcjsKK30KKworLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoQ29kZWNJbmZvOihSVENWaWRlb0NvZGVjSW5mbyopY29kZWNJbmZvIHsKKyAgICBp
ZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICAgICAgICBpZiAoW2NvZGVjSW5mby5uYW1lIGlz
RXF1YWxUb1N0cmluZzpAIkgyNjUiXSkKKyAgICAgICAgICAgIG1faDI2NUVuY29kZXIgPSBbW1JU
Q1ZpZGVvRW5jb2RlckgyNjUgYWxsb2NdIGluaXRdOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBtX2gyNjRFbmNvZGVyID0gW1tSVENWaWRlb0VuY29kZXJIMjY0IGFsbG9jXSBpbml0XTsKKyAg
ICB9CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KFJUQ1ZpZGVv
RW5jb2RlckNhbGxiYWNrKWNhbGxiYWNrIHsKKyAgICBpZiAobV9oMjY0RW5jb2RlcikKKyAgICAg
ICAgcmV0dXJuIFttX2gyNjRFbmNvZGVyIHNldENhbGxiYWNrOmNhbGxiYWNrXTsKKyAgICByZXR1
cm4gW21faDI2NUVuY29kZXIgc2V0Q2FsbGJhY2s6Y2FsbGJhY2tdOworfQorCistIChOU0ludGVn
ZXIpcmVsZWFzZUVuY29kZXIgeworICAgIGlmIChtX2gyNjRFbmNvZGVyKQorICAgICAgICByZXR1
cm4gW21faDI2NEVuY29kZXIgcmVsZWFzZUVuY29kZXJdOworICAgIHJldHVybiBbbV9oMjY1RW5j
b2RlciByZWxlYXNlRW5jb2Rlcl07Cit9CisKKy0gKE5TSW50ZWdlcilzdGFydEVuY29kZVdpdGhT
ZXR0aW5nczooUlRDVmlkZW9FbmNvZGVyU2V0dGluZ3MgKilzZXR0aW5ncyBudW1iZXJPZkNvcmVz
OihpbnQpbnVtYmVyT2ZDb3JlcyB7CisgICAgaWYgKG1faDI2NEVuY29kZXIpCisgICAgICAgIHJl
dHVybiBbbV9oMjY0RW5jb2RlciBzdGFydEVuY29kZVdpdGhTZXR0aW5nczpzZXR0aW5ncyBudW1i
ZXJPZkNvcmVzOm51bWJlck9mQ29yZXNdOworICAgIHJldHVybiBbbV9oMjY1RW5jb2RlciBzdGFy
dEVuY29kZVdpdGhTZXR0aW5nczpzZXR0aW5ncyBudW1iZXJPZkNvcmVzOm51bWJlck9mQ29yZXNd
OworfQorCistIChOU0ludGVnZXIpZW5jb2RlOihSVENWaWRlb0ZyYW1lICopZnJhbWUgY29kZWNT
cGVjaWZpY0luZm86KG51bGxhYmxlIGlkPFJUQ0NvZGVjU3BlY2lmaWNJbmZvPilpbmZvIGZyYW1l
VHlwZXM6KE5TQXJyYXk8TlNOdW1iZXIgKj4gKilmcmFtZVR5cGVzIHsKKyAgICBpZiAobV9oMjY0
RW5jb2RlcikKKyAgICAgICAgcmV0dXJuIFttX2gyNjRFbmNvZGVyIGVuY29kZTpmcmFtZSBjb2Rl
Y1NwZWNpZmljSW5mbzppbmZvIGZyYW1lVHlwZXM6ZnJhbWVUeXBlc107CisgICAgcmV0dXJuIFtt
X2gyNjVFbmNvZGVyIGVuY29kZTpmcmFtZSBjb2RlY1NwZWNpZmljSW5mbzppbmZvIGZyYW1lVHlw
ZXM6ZnJhbWVUeXBlc107Cit9CisKKy0gKGludClzZXRCaXRyYXRlOih1aW50MzJfdCliaXRyYXRl
S2JpdCBmcmFtZXJhdGU6KHVpbnQzMl90KWZyYW1lcmF0ZSB7CisgICAgaWYgKG1faDI2NEVuY29k
ZXIpCisgICAgICAgIHJldHVybiBbbV9oMjY0RW5jb2RlciBzZXRCaXRyYXRlOmJpdHJhdGVLYml0
IGZyYW1lcmF0ZTpmcmFtZXJhdGVdOworICAgIHJldHVybiBbbV9oMjY1RW5jb2RlciBzZXRCaXRy
YXRlOmJpdHJhdGVLYml0IGZyYW1lcmF0ZTpmcmFtZXJhdGVdOworfQorQGVuZAogbmFtZXNwYWNl
IHdlYnJ0YyB7CiAKIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0VuY29kZXI+IFZpZGVvRW5jb2RlckZh
Y3RvcnlXaXRoU2ltdWxjYXN0OjpDcmVhdGVWaWRlb0VuY29kZXIoY29uc3QgU2RwVmlkZW9Gb3Jt
YXQmIGZvcm1hdCkKQEAgLTE1MCw4ICsyMDYsOCBAQCB2b2lkIFJlbW90ZVZpZGVvRW5jb2Rlcjo6
ZW5jb2RlQ29tcGxldGUodm9pZCogY2FsbGJhY2ssIHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90CiB2
b2lkKiBjcmVhdGVMb2NhbEVuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYgZm9y
bWF0LCBMb2NhbEVuY29kZXJDYWxsYmFjayBjYWxsYmFjaykKIHsKICAgICBhdXRvICpjb2RlY0lu
Zm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hdGl2ZVNkcFZpZGVvRm9y
bWF0OiBmb3JtYXRdOwotICAgIGF1dG8gKmVuY29kZXIgPSBbW1JUQ1ZpZGVvRW5jb2RlckgyNjQg
YWxsb2NdIGluaXRXaXRoQ29kZWNJbmZvOmNvZGVjSW5mb107Ci0gICAgCisgICAgYXV0byAqZW5j
b2RlciA9IFtbV0tfUlRDTG9jYWxWaWRlb0gyNjRIMjY1RW5jb2RlciBhbGxvY10gaW5pdFdpdGhD
b2RlY0luZm86Y29kZWNJbmZvXTsKKwogICAgIFtlbmNvZGVyIHNldENhbGxiYWNrOl5CT09MKFJU
Q0VuY29kZWRJbWFnZSAqX05vbm51bGwgZnJhbWUsIGlkPFJUQ0NvZGVjU3BlY2lmaWNJbmZvPiBf
Tm9ubnVsbCBjb2RlY1NwZWNpZmljSW5mbywgIFJUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIgKl9O
b25udWxsIGhlYWRlcikgewogICAgICAgICBFbmNvZGVkSW1hZ2UgZW5jb2RlZEltYWdlID0gW2Zy
YW1lIG5hdGl2ZUVuY29kZWRJbWFnZV07CiAKQEAgLTE3OCw3ICsyMzQsNyBAQCB2b2lkKiBjcmVh
dGVMb2NhbEVuY29kZXIoY29uc3Qgd2VicnRjOjpTZHBWaWRlb0Zvcm1hdCYgZm9ybWF0LCBMb2Nh
bEVuY29kZXJDYWxsYgogCiB2b2lkIHJlbGVhc2VMb2NhbEVuY29kZXIoTG9jYWxFbmNvZGVyIGxv
Y2FsRW5jb2RlcikKIHsKLSAgICBhdXRvICplbmNvZGVyID0gKF9fYnJpZGdlX3RyYW5zZmVyIFJU
Q1ZpZGVvRW5jb2RlckgyNjQgKikobG9jYWxFbmNvZGVyKTsKKyAgICBhdXRvICplbmNvZGVyID0g
KF9fYnJpZGdlX3RyYW5zZmVyIFdLX1JUQ0xvY2FsVmlkZW9IMjY0SDI2NUVuY29kZXIgKikobG9j
YWxFbmNvZGVyKTsKICAgICBbZW5jb2RlciByZWxlYXNlRW5jb2Rlcl07CiB9CiAKQEAgLTE5Miw3
ICsyNDgsNyBAQCB2b2lkIGluaXRpYWxpemVMb2NhbEVuY29kZXIoTG9jYWxFbmNvZGVyIGxvY2Fs
RW5jb2RlciwgdWludDE2X3Qgd2lkdGgsIHVpbnQxNl90CiAgICAgY29kZWNTZXR0aW5ncy5taW5C
aXRyYXRlID0gbWluQml0cmF0ZTsKICAgICBjb2RlY1NldHRpbmdzLm1heEZyYW1lcmF0ZSA9IG1h
eEZyYW1lcmF0ZTsKIAotICAgIGF1dG8gKmVuY29kZXIgPSAoX19icmlkZ2UgUlRDVmlkZW9FbmNv
ZGVySDI2NCAqKShsb2NhbEVuY29kZXIpOworICAgIGF1dG8gKmVuY29kZXIgPSAoX19icmlkZ2Ug
V0tfUlRDTG9jYWxWaWRlb0gyNjRIMjY1RW5jb2RlciAqKShsb2NhbEVuY29kZXIpOwogICAgIFtl
bmNvZGVyIHN0YXJ0RW5jb2RlV2l0aFNldHRpbmdzOltbUlRDVmlkZW9FbmNvZGVyU2V0dGluZ3Mg
YWxsb2NdIGluaXRXaXRoTmF0aXZlVmlkZW9Db2RlYzomY29kZWNTZXR0aW5nc10gbnVtYmVyT2ZD
b3JlczoxXTsKIH0KIApAQCAtMjAzLDEzICsyNTksMTMgQEAgdm9pZCBlbmNvZGVMb2NhbEVuY29k
ZXJGcmFtZShMb2NhbEVuY29kZXIgbG9jYWxFbmNvZGVyLCBDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnUKICAgICAgICAgW3J0Y0ZyYW1lVHlwZXMgYWRkT2JqZWN0OkAoUlRDRnJhbWVUeXBlKFJUQ0Zy
YW1lVHlwZVZpZGVvRnJhbWVLZXkpKV07CiAKICAgICBhdXRvICp2aWRlb0ZyYW1lID0gW1tSVENW
aWRlb0ZyYW1lIGFsbG9jXSBpbml0V2l0aEJ1ZmZlcjpUb09iakNWaWRlb0ZyYW1lQnVmZmVyKHBp
eGVsQnVmZmVyVG9GcmFtZShwaXhlbEJ1ZmZlcikpIHJvdGF0aW9uOlJUQ1ZpZGVvUm90YXRpb24o
cm90YXRpb24pIHRpbWVTdGFtcE5zOnRpbWVTdGFtcF07Ci0gICAgYXV0byAqZW5jb2RlciA9IChf
X2JyaWRnZSBSVENWaWRlb0VuY29kZXJIMjY0ICopKGxvY2FsRW5jb2Rlcik7CisgICAgYXV0byAq
ZW5jb2RlciA9IChfX2JyaWRnZSBXS19SVENMb2NhbFZpZGVvSDI2NEgyNjVFbmNvZGVyICopKGxv
Y2FsRW5jb2Rlcik7CiAgICAgW2VuY29kZXIgZW5jb2RlOnZpZGVvRnJhbWUgY29kZWNTcGVjaWZp
Y0luZm86bmlsIGZyYW1lVHlwZXM6cnRjRnJhbWVUeXBlc107CiB9CiAKIHZvaWQgc2V0TG9jYWxF
bmNvZGVyUmF0ZXMoTG9jYWxFbmNvZGVyIGxvY2FsRW5jb2RlciwgdWludDMyX3QgYml0UmF0ZSwg
dWludDMyX3QgZnJhbWVSYXRlKQogewotICAgIGF1dG8gKmVuY29kZXIgPSAoX19icmlkZ2UgUlRD
VmlkZW9FbmNvZGVySDI2NCAqKShsb2NhbEVuY29kZXIpOworICAgIGF1dG8gKmVuY29kZXIgPSAo
X19icmlkZ2UgV0tfUlRDTG9jYWxWaWRlb0gyNjRIMjY1RW5jb2RlciAqKShsb2NhbEVuY29kZXIp
OwogICAgIFtlbmNvZGVyIHNldEJpdHJhdGU6Yml0UmF0ZSBmcmFtZXJhdGU6ZnJhbWVSYXRlXTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggNmYw
ODA1YjBiYmJlM2QwMzhjNWM0NTZjZTYwYmViZGVhODgwMTJmZi4uNjM5MTNmMjBkZWM0NTg0YjYw
MTU0ZDNiYzZmMDAxYTlmODc2YWY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktp
dFV0aWxpdGllcy5oCkBAIC01Miw0NyArNTIsNCBAQCBib29sIGlzSDI2NEhhcmR3YXJlRW5jb2Rl
ckFsbG93ZWQoKTsKIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXJGcm9tRnJhbWUoY29uc3Qg
VmlkZW9GcmFtZSYsIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Q1ZQaXhlbEJ1ZmZlclJlZihzaXplX3Qs
IHNpemVfdCk+Jik7CiBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb0ZyYW1lQnVmZmVy
PiBwaXhlbEJ1ZmZlclRvRnJhbWUoQ1ZQaXhlbEJ1ZmZlclJlZik7CiAKLXVzaW5nIFdlYktpdFZp
ZGVvRGVjb2RlciA9IHZvaWQqOwotdXNpbmcgVmlkZW9EZWNvZGVyQ3JlYXRlQ2FsbGJhY2sgPSBX
ZWJLaXRWaWRlb0RlY29kZXIoKikoY29uc3QgU2RwVmlkZW9Gb3JtYXQmIGZvcm1hdCk7Ci11c2lu
ZyBWaWRlb0RlY29kZXJSZWxlYXNlQ2FsbGJhY2sgPSBpbnQzMl90KCopKFdlYktpdFZpZGVvRGVj
b2Rlcik7Ci11c2luZyBWaWRlb0RlY29kZXJEZWNvZGVDYWxsYmFjayA9IGludDMyX3QoKikoV2Vi
S2l0VmlkZW9EZWNvZGVyLCB1aW50MzJfdCB0aW1lU3RhbXAsIGNvbnN0IHVpbnQ4X3QqLCBzaXpl
X3QgbGVuZ3RoKTsKLXVzaW5nIFZpZGVvRGVjb2RlclJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxs
YmFjayA9IGludDMyX3QoKikoV2ViS2l0VmlkZW9EZWNvZGVyLCB2b2lkKiBkZWNvZGVkSW1hZ2VD
YWxsYmFjayk7Ci0KLXZvaWQgc2V0VmlkZW9EZWNvZGVyQ2FsbGJhY2tzKFZpZGVvRGVjb2RlckNy
ZWF0ZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJSZWxlYXNlQ2FsbGJhY2ssIFZpZGVvRGVjb2RlckRl
Y29kZUNhbGxiYWNrLCBWaWRlb0RlY29kZXJSZWdpc3RlckRlY29kZUNvbXBsZXRlQ2FsbGJhY2sp
OwotCi1jbGFzcyBSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5IGZpbmFsIDogcHVibGljIFZpZGVv
RGVjb2RlckZhY3RvcnkgewotcHVibGljOgotICAgIGV4cGxpY2l0IFJlbW90ZVZpZGVvRGVjb2Rl
ckZhY3Rvcnkoc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2RlckZhY3Rvcnk+JiYpOwotICAgIH5S
ZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5KCkgPSBkZWZhdWx0OwotCi1wcml2YXRlOgotICAgIHN0
ZDo6dmVjdG9yPFNkcFZpZGVvRm9ybWF0PiBHZXRTdXBwb3J0ZWRGb3JtYXRzKCkgY29uc3QgZmlu
YWw7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gQ3JlYXRlVmlkZW9EZWNvZGVy
KGNvbnN0IFNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpIGZpbmFsOwotCi0gICAgc3RkOjp1bmlxdWVf
cHRyPFZpZGVvRGVjb2RlckZhY3Rvcnk+IG1faW50ZXJuYWxGYWN0b3J5OwotfTsKLQotY2xhc3Mg
UmVtb3RlVmlkZW9EZWNvZGVyIGZpbmFsIDogcHVibGljIHdlYnJ0Yzo6VmlkZW9EZWNvZGVyIHsK
LXB1YmxpYzoKLSAgICBleHBsaWNpdCBSZW1vdGVWaWRlb0RlY29kZXIoV2ViS2l0VmlkZW9EZWNv
ZGVyKTsKLSAgICB+UmVtb3RlVmlkZW9EZWNvZGVyKCkgPSBkZWZhdWx0OwotCi0gICAgc3RhdGlj
IHZvaWQgZGVjb2RlQ29tcGxldGUodm9pZCogY2FsbGJhY2ssIHVpbnQzMl90IHRpbWVTdGFtcCwg
Q1ZQaXhlbEJ1ZmZlclJlZiwgdWludDMyX3QgdGltZVN0YW1wUlRQKTsKLQotcHJpdmF0ZToKLSAg
ICBpbnQzMl90IEluaXREZWNvZGUoY29uc3QgVmlkZW9Db2RlYyosIGludDMyX3QgbnVtYmVyX29m
X2NvcmVzKSBmaW5hbDsKLSAgICBpbnQzMl90IERlY29kZShjb25zdCBFbmNvZGVkSW1hZ2UmLCBi
b29sIG1pc3NpbmdfZnJhbWVzLCBpbnQ2NF90IHJlbmRlcl90aW1lX21zKSBmaW5hbDsKLSAgICBp
bnQzMl90IFJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjayhEZWNvZGVkSW1hZ2VDYWxsYmFj
ayopIGZpbmFsOwotICAgIGludDMyX3QgUmVsZWFzZSgpIGZpbmFsOwotICAgIGNvbnN0IGNoYXIq
IEltcGxlbWVudGF0aW9uTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJSZW1vdGVWaWRlb1Rv
b2xCb3giOyB9Ci0KLSAgICBXZWJLaXRWaWRlb0RlY29kZXIgbV9pbnRlcm5hbERlY29kZXI7Ci19
OwotCi11c2luZyBMb2NhbERlY29kZXIgPSB2b2lkKjsKLXVzaW5nIExvY2FsRGVjb2RlckNhbGxi
YWNrID0gdm9pZCAoXikoQ1ZQaXhlbEJ1ZmZlclJlZiwgdWludDMyX3QgdGltZVN0YW1wLCB1aW50
MzJfdCB0aW1lU3RhbXBOcyk7Ci12b2lkKiBjcmVhdGVMb2NhbERlY29kZXIoTG9jYWxEZWNvZGVy
Q2FsbGJhY2spOwotdm9pZCByZWxlYXNlTG9jYWxEZWNvZGVyKExvY2FsRGVjb2Rlcik7Ci1pbnQz
Ml90IGRlY29kZUZyYW1lKExvY2FsRGVjb2RlciwgdWludDMyX3QgdGltZVN0YW1wLCBjb25zdCB1
aW50OF90Kiwgc2l6ZV90KTsKLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW0gYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0
aWxpdGllcy5tbQppbmRleCA2Y2U4NjUzYzM1NDI1NDFhYjgxZWVkYTFiY2VmZTgzOGZhYWE1NTA5
Li43NzJhMDlmOTdmNTliMThhNTlkMDMxZTU5YTRmOGY4NzE3MzFjY2U2IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktp
dFV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQpAQCAtMTg2LDExNyArMTg2LDQgQEAg
Q1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlckZyb21GcmFtZShjb25zdCBWaWRlb0ZyYW1lJiBm
cmFtZSwgY29uc3Qgc3RkOjpmdW5jdGkKICAgICByZXR1cm4gcnRjUGl4ZWxCdWZmZXIucGl4ZWxC
dWZmZXI7CiB9CiAKLXN0cnVjdCBWaWRlb0RlY29kZXJDYWxsYmFja3MgewotICAgIFZpZGVvRGVj
b2RlckNyZWF0ZUNhbGxiYWNrIGNyZWF0ZUNhbGxiYWNrOwotICAgIFZpZGVvRGVjb2RlclJlbGVh
c2VDYWxsYmFjayByZWxlYXNlQ2FsbGJhY2s7Ci0gICAgVmlkZW9EZWNvZGVyRGVjb2RlQ2FsbGJh
Y2sgZGVjb2RlQ2FsbGJhY2s7Ci0gICAgVmlkZW9EZWNvZGVyUmVnaXN0ZXJEZWNvZGVDb21wbGV0
ZUNhbGxiYWNrIHJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjazsKLX07Ci0KLXN0YXRpYyBW
aWRlb0RlY29kZXJDYWxsYmFja3MmIHZpZGVvRGVjb2RlckNhbGxiYWNrcygpIHsKLSAgICBzdGF0
aWMgVmlkZW9EZWNvZGVyQ2FsbGJhY2tzIGNhbGxiYWNrczsKLSAgICByZXR1cm4gY2FsbGJhY2tz
OwotfQotCi12b2lkIHNldFZpZGVvRGVjb2RlckNhbGxiYWNrcyhWaWRlb0RlY29kZXJDcmVhdGVD
YWxsYmFjayBjcmVhdGVDYWxsYmFjaywgVmlkZW9EZWNvZGVyUmVsZWFzZUNhbGxiYWNrIHJlbGVh
c2VDYWxsYmFjaywgVmlkZW9EZWNvZGVyRGVjb2RlQ2FsbGJhY2sgZGVjb2RlQ2FsbGJhY2ssIFZp
ZGVvRGVjb2RlclJlZ2lzdGVyRGVjb2RlQ29tcGxldGVDYWxsYmFjayByZWdpc3RlckRlY29kZUNv
bXBsZXRlQ2FsbGJhY2spCi17Ci0gICAgYXV0byYgY2FsbGJhY2tzID0gdmlkZW9EZWNvZGVyQ2Fs
bGJhY2tzKCk7Ci0gICAgY2FsbGJhY2tzLmNyZWF0ZUNhbGxiYWNrID0gY3JlYXRlQ2FsbGJhY2s7
Ci0gICAgY2FsbGJhY2tzLnJlbGVhc2VDYWxsYmFjayA9IHJlbGVhc2VDYWxsYmFjazsKLSAgICBj
YWxsYmFja3MuZGVjb2RlQ2FsbGJhY2sgPSBkZWNvZGVDYWxsYmFjazsKLSAgICBjYWxsYmFja3Mu
cmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNhbGxiYWNrID0gcmVnaXN0ZXJEZWNvZGVDb21wbGV0ZUNh
bGxiYWNrOwotfQotCi1SZW1vdGVWaWRlb0RlY29kZXI6OlJlbW90ZVZpZGVvRGVjb2RlcihXZWJL
aXRWaWRlb0RlY29kZXIgaW50ZXJuYWxEZWNvZGVyKQotICAgIDogbV9pbnRlcm5hbERlY29kZXIo
aW50ZXJuYWxEZWNvZGVyKQotewotfQotCi12b2lkIFJlbW90ZVZpZGVvRGVjb2Rlcjo6ZGVjb2Rl
Q29tcGxldGUodm9pZCogY2FsbGJhY2ssIHVpbnQzMl90IHRpbWVTdGFtcCwgQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wUlRQKQotewotICAgIGF1dG8gdmlk
ZW9GcmFtZSA9IFZpZGVvRnJhbWU6OkJ1aWxkZXIoKS5zZXRfdmlkZW9fZnJhbWVfYnVmZmVyKHBp
eGVsQnVmZmVyVG9GcmFtZShwaXhlbEJ1ZmZlcikpCi0gICAgICAgIC5zZXRfdGltZXN0YW1wX3J0
cCh0aW1lU3RhbXBSVFApCi0gICAgICAgIC5zZXRfdGltZXN0YW1wX21zKDApCi0gICAgICAgIC5z
ZXRfcm90YXRpb24oKFZpZGVvUm90YXRpb24pUlRDVmlkZW9Sb3RhdGlvbl8wKQotICAgICAgICAu
YnVpbGQoKTsKLSAgICB2aWRlb0ZyYW1lLnNldF90aW1lc3RhbXAodGltZVN0YW1wKTsKLQotICAg
IHN0YXRpY19jYXN0PERlY29kZWRJbWFnZUNhbGxiYWNrKj4oY2FsbGJhY2spLT5EZWNvZGVkKHZp
ZGVvRnJhbWUpOwotfQotCi1pbnQzMl90IFJlbW90ZVZpZGVvRGVjb2Rlcjo6SW5pdERlY29kZShj
b25zdCBWaWRlb0NvZGVjKiBjb2RlY19zZXR0aW5ncywgaW50MzJfdCBudW1iZXJfb2ZfY29yZXMp
Ci17Ci0gICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKLX0KLQotaW50MzJfdCBSZW1v
dGVWaWRlb0RlY29kZXI6OkRlY29kZShjb25zdCBFbmNvZGVkSW1hZ2UmIGlucHV0X2ltYWdlLCBi
b29sIG1pc3NpbmdfZnJhbWVzLCBpbnQ2NF90IHJlbmRlcl90aW1lX21zKQotewotICAgIHJldHVy
biB2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5kZWNvZGVDYWxsYmFjayhtX2ludGVybmFsRGVjb2Rl
ciwgaW5wdXRfaW1hZ2UuVGltZXN0YW1wKCksIGlucHV0X2ltYWdlLmRhdGEoKSwgaW5wdXRfaW1h
Z2Uuc2l6ZSgpKTsKLX0KLQotaW50MzJfdCBSZW1vdGVWaWRlb0RlY29kZXI6OlJlZ2lzdGVyRGVj
b2RlQ29tcGxldGVDYWxsYmFjayhEZWNvZGVkSW1hZ2VDYWxsYmFjayogY2FsbGJhY2spCi17Ci0g
ICAgcmV0dXJuIHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLnJlZ2lzdGVyRGVjb2RlQ29tcGxldGVD
YWxsYmFjayhtX2ludGVybmFsRGVjb2RlciwgY2FsbGJhY2spOwotfQotCi1pbnQzMl90IFJlbW90
ZVZpZGVvRGVjb2Rlcjo6UmVsZWFzZSgpCi17Ci0gICAgcmV0dXJuIHZpZGVvRGVjb2RlckNhbGxi
YWNrcygpLnJlbGVhc2VDYWxsYmFjayhtX2ludGVybmFsRGVjb2Rlcik7Ci19Ci0KLVJlbW90ZVZp
ZGVvRGVjb2RlckZhY3Rvcnk6OlJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnkoc3RkOjp1bmlxdWVf
cHRyPFZpZGVvRGVjb2RlckZhY3Rvcnk+JiYgaW50ZXJuYWxGYWN0b3J5KQotICAgIDogbV9pbnRl
cm5hbEZhY3Rvcnkoc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkpCi17Ci19Ci0KLXN0ZDo6dmVj
dG9yPFNkcFZpZGVvRm9ybWF0PiBSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5OjpHZXRTdXBwb3J0
ZWRGb3JtYXRzKCkgY29uc3QKLXsKLSAgICBzdGQ6OnZlY3RvcjxTZHBWaWRlb0Zvcm1hdD4gc3Vw
cG9ydGVkX2Zvcm1hdHM7Ci0gICAgc3VwcG9ydGVkX2Zvcm1hdHMucHVzaF9iYWNrKFNkcFZpZGVv
Rm9ybWF0IHsgIkgyNjQiIH0pOwotICAgIHN1cHBvcnRlZF9mb3JtYXRzLnB1c2hfYmFjayhTZHBW
aWRlb0Zvcm1hdCB7ICJWUDgiIH0pOwotICAgIHJldHVybiBzdXBwb3J0ZWRfZm9ybWF0czsKLX0K
LQotc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9y
eTo6Q3JlYXRlVmlkZW9EZWNvZGVyKGNvbnN0IFNkcFZpZGVvRm9ybWF0JiBmb3JtYXQpCi17Ci0g
ICAgaWYgKCF2aWRlb0RlY29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxsYmFjaykKLSAgICAgICAg
cmV0dXJuIG1faW50ZXJuYWxGYWN0b3J5LT5DcmVhdGVWaWRlb0RlY29kZXIoZm9ybWF0KTsKLQot
ICAgIGF1dG8gaWRlbnRpZmllciA9IHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNyZWF0ZUNhbGxi
YWNrKGZvcm1hdCk7Ci0gICAgaWYgKCFpZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gbV9pbnRl
cm5hbEZhY3RvcnktPkNyZWF0ZVZpZGVvRGVjb2Rlcihmb3JtYXQpOwotCi0gICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyPihpZGVudGlmaWVyKTsKLX0KLQotc3Rk
Ojp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVj
b2RlckZhY3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKLXsKLSAgICBhdXRv
IGludGVybmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoW1tSVENE
ZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSBhbGxvY10gaW5pdFdpdGhIMjY1OiBjb2RlY1N1cHBv
cnQgPT0gV2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0VlA4QW5kSDI2NV0pOwotICAgIGlmICh2aWRl
b0RlY29kZXJDYWxsYmFja3MoKS5jcmVhdGVDYWxsYmFjaykKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8UmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeT4oc3RkOjptb3ZlKGludGVybmFs
RmFjdG9yeSkpOwotICAgIHJldHVybiBpbnRlcm5hbEZhY3Rvcnk7Ci19Ci0KLXZvaWQqIGNyZWF0
ZUxvY2FsRGVjb2RlcihMb2NhbERlY29kZXJDYWxsYmFjayBjYWxsYmFjaykKLXsKLSAgICBhdXRv
IGRlY29kZXIgPSBbW1JUQ1ZpZGVvRGVjb2RlckgyNjQgYWxsb2NdIGluaXRdOwotICAgIFtkZWNv
ZGVyIHNldENhbGxiYWNrOl4oUlRDVmlkZW9GcmFtZSAqZnJhbWUpIHsKLSAgICAgICAgYXV0byAq
YnVmZmVyID0gKFJUQ0NWUGl4ZWxCdWZmZXIgKilmcmFtZS5idWZmZXI7Ci0gICAgICAgIGNhbGxi
YWNrKGJ1ZmZlci5waXhlbEJ1ZmZlciwgZnJhbWUudGltZVN0YW1wTnMsIGZyYW1lLnRpbWVTdGFt
cCk7Ci0gICAgfV07Ci0gICAgcmV0dXJuIChfX2JyaWRnZV9yZXRhaW5lZCB2b2lkKilkZWNvZGVy
OwotfQotCi12b2lkIHJlbGVhc2VMb2NhbERlY29kZXIoTG9jYWxEZWNvZGVyIGxvY2FsRGVjb2Rl
cikKLXsKLSAgICBSVENWaWRlb0RlY29kZXJIMjY0KiBkZWNvZGVyID0gKF9fYnJpZGdlX3RyYW5z
ZmVyIFJUQ1ZpZGVvRGVjb2RlckgyNjQgKikobG9jYWxEZWNvZGVyKTsKLSAgICBbZGVjb2RlciBy
ZWxlYXNlRGVjb2Rlcl07Ci19Ci0KLWludDMyX3QgZGVjb2RlRnJhbWUoTG9jYWxEZWNvZGVyIGxv
Y2FsRGVjb2RlciwgdWludDMyX3QgdGltZVN0YW1wLCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXpl
X3Qgc2l6ZSkKLXsKLSAgICBSVENWaWRlb0RlY29kZXJIMjY0KiBkZWNvZGVyID0gKF9fYnJpZGdl
IFJUQ1ZpZGVvRGVjb2RlckgyNjQgKikobG9jYWxEZWNvZGVyKTsKLSAgICByZXR1cm4gW2RlY29k
ZXIgZGVjb2RlRGF0YTogZGF0YSBzaXplOiBzaXplIHRpbWVTdGFtcDogdGltZVN0YW1wXTsKLX0K
LQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaAppbmRleCA5MzliMzgyODlj
MmYxOWJjYWQyZjA0NGEwMDg5NjlhOTUwZTI3ZTAyLi43OTBmYmNiNTA4MjU0ZWUyMmZhMGU1NjYz
YTg0ODI2NWE4NzQ4ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVj
b2RlckgyNjUuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaApA
QCAtMTYsNCArMTYsNyBAQAogUlRDX09CSkNfRVhQT1JUCiBfX2F0dHJpYnV0ZV9fKChvYmpjX3J1
bnRpbWVfbmFtZSgiV0tfUlRDVmlkZW9EZWNvZGVySDI2NSIpKSkKIEBpbnRlcmZhY2UgUlRDVmlk
ZW9EZWNvZGVySDI2NSA6IE5TT2JqZWN0IDxSVENWaWRlb0RlY29kZXI+CistIChOU0ludGVnZXIp
ZGVjb2RlRGF0YTooY29uc3QgdWludDhfdCAqKWRhdGEKKyAgICBzaXplOihzaXplX3Qpc2l6ZQor
ICAgIHRpbWVTdGFtcDoodWludDMyX3QpdGltZVN0YW1wOwogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENWaWRlb0RlY29kZXJIMjY1Lm1tCmluZGV4IGQ3NDlhN2I2NmY4M2M1NTIyNmU5M2U5MzA0MzU4
NzRhMDczMjU4YTcuLjRmYjU1NmI0NzVhNzcwZmVhMWRmYjBjMDQxZjYwMjA2MmMwZjZmOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5tbQorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUubW0KQEAgLTE5LDEwICsxOSw2IEBA
CiAjaW1wb3J0ICJoZWxwZXJzLmgiCiAjaW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYu
aCIKIAotI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKLSNpbXBvcnQgImhlbHBlcnMvVUlEZXZpY2Ur
UlRDRGV2aWNlLmgiCi0jZW5kaWYKLQogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2lu
Y2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKICNpbmNsdWRlICJydGNfYmFzZS9jaGVja3MuaCIK
ICNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCkBAIC05Myw3ICs4OSwxMCBAQCB2b2lkIGgy
NjVEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sodm9pZCogZGVjb2RlciwKICAgICAgIGNvZGVj
U3BlY2lmaWNJbmZvOihfX251bGxhYmxlIGlkPFJUQ0NvZGVjU3BlY2lmaWNJbmZvPilpbmZvCiAg
ICAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMgewogICBSVENfRENI
RUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKyAgcmV0dXJuIFtzZWxmIGRlY29kZURhdGE6ICh1aW50
OF90ICopaW5wdXRJbWFnZS5idWZmZXIuYnl0ZXMgc2l6ZTogaW5wdXRJbWFnZS5idWZmZXIubGVu
Z3RoIHRpbWVTdGFtcDogaW5wdXRJbWFnZS50aW1lU3RhbXBdOworfQogCistIChOU0ludGVnZXIp
ZGVjb2RlRGF0YTooY29uc3QgdWludDhfdCAqKWRhdGEgc2l6ZTooc2l6ZV90KXNpemUgdGltZVN0
YW1wOih1aW50MzJfdCl0aW1lU3RhbXAgewogICBpZiAoX2Vycm9yICE9IG5vRXJyKSB7CiAgICAg
UlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiTGFzdCBmcmFtZSBkZWNvZGUgZmFpbGVkLiI7CiAgICAg
X2Vycm9yID0gbm9FcnI7CkBAIC0xMDIsNyArMTAxLDcgQEAgdm9pZCBoMjY1RGVjb21wcmVzc2lv
bk91dHB1dENhbGxiYWNrKHZvaWQqIGRlY29kZXIsCiAKICAgcnRjOjpTY29wZWRDRlR5cGVSZWY8
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmPiBpbnB1dEZvcm1hdCA9CiAgICAgICBydGM6OlNj
b3BlZENGKHdlYnJ0Yzo6Q3JlYXRlSDI2NVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCi0gICAgICAg
ICAgKHVpbnQ4X3QqKWlucHV0SW1hZ2UuYnVmZmVyLmJ5dGVzLCBpbnB1dEltYWdlLmJ1ZmZlci5s
ZW5ndGgpKTsKKyAgICAgICAgICAodWludDhfdCopZGF0YSwgc2l6ZSkpOwogICBpZiAoaW5wdXRG
b3JtYXQpIHsKICAgICBDTVZpZGVvRGltZW5zaW9ucyBkaW1lbnNpb25zID0KICAgICAgICAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0RGltZW5zaW9ucyhpbnB1dEZvcm1hdC5nZXQoKSk7CkBA
IC0xMjcsOSArMTI2LDEwIEBAIHZvaWQgaDI2NURlY29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayh2
b2lkKiBkZWNvZGVyLAogICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk1pc3NpbmcgdmlkZW8g
Zm9ybWF0LiBGcmFtZSB3aXRoIHNwcy9wcHMgcmVxdWlyZWQuIjsKICAgICByZXR1cm4gV0VCUlRD
X1ZJREVPX0NPREVDX0VSUk9SOwogICB9CisKICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVm
ZmVyID0gbnVsbHB0cjsKICAgaWYgKCF3ZWJydGM6OkgyNjVBbm5leEJCdWZmZXJUb0NNU2FtcGxl
QnVmZmVyKAotICAgICAgICAgICh1aW50OF90KilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcywgaW5w
dXRJbWFnZS5idWZmZXIubGVuZ3RoLAorICAgICAgICAgICh1aW50OF90KilkYXRhLCBzaXplLAog
ICAgICAgICAgIF92aWRlb0Zvcm1hdCwgJnNhbXBsZUJ1ZmZlcikpIHsKICAgICByZXR1cm4gV0VC
UlRDX1ZJREVPX0NPREVDX0VSUk9SOwogICB9CkBAIC0xMzgsNyArMTM4LDcgQEAgdm9pZCBoMjY1
RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQqIGRlY29kZXIsCiAgICAgICBrVlREZWNv
ZGVGcmFtZV9FbmFibGVBc3luY2hyb25vdXNEZWNvbXByZXNzaW9uOwogICBzdGQ6OnVuaXF1ZV9w
dHI8UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zPiBmcmFtZURlY29kZVBhcmFtczsKICAgZnJhbWVE
ZWNvZGVQYXJhbXMucmVzZXQoCi0gICAgICBuZXcgUlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zKF9j
YWxsYmFjaywgaW5wdXRJbWFnZS50aW1lU3RhbXApKTsKKyAgICAgIG5ldyBSVENIMjY1RnJhbWVE
ZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCB0aW1lU3RhbXApKTsKICAgT1NTdGF0dXMgc3RhdHVzID0g
VlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAogICAgICAgX2RlY29tcHJlc3Npb25T
ZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZsYWdzLAogICAgICAgZnJhbWVEZWNvZGVQYXJh
bXMucmVsZWFzZSgpLCBudWxscHRyKTsKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIGgyNjVEZWNv
bXByZXNzaW9uT3V0cHV0Q2FsbGJhY2sodm9pZCogZGVjb2RlciwKICAgaWYgKHN0YXR1cyA9PSBr
VlRJbnZhbGlkU2Vzc2lvbkVyciAmJgogICAgICAgW3NlbGYgcmVzZXREZWNvbXByZXNzaW9uU2Vz
c2lvbl0gPT0gV0VCUlRDX1ZJREVPX0NPREVDX09LKSB7CiAgICAgZnJhbWVEZWNvZGVQYXJhbXMu
cmVzZXQoCi0gICAgICAgIG5ldyBSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCBp
bnB1dEltYWdlLnRpbWVTdGFtcCkpOworICAgICAgICBuZXcgUlRDSDI2NUZyYW1lRGVjb2RlUGFy
YW1zKF9jYWxsYmFjaywgdGltZVN0YW1wKSk7CiAgICAgc3RhdHVzID0gVlREZWNvbXByZXNzaW9u
U2Vzc2lvbkRlY29kZUZyYW1lKAogICAgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBs
ZUJ1ZmZlciwgZGVjb2RlRmxhZ3MsCiAgICAgICAgIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2Uo
KSwgbnVsbHB0cik7CkBAIC0yMzksMTcgKzIzOSwxNCBAQCB2b2lkIGgyNjVEZWNvbXByZXNzaW9u
T3V0cHV0Q2FsbGJhY2sodm9pZCogZGVjb2RlciwKIC0gKHZvaWQpY29uZmlndXJlRGVjb21wcmVz
c2lvblNlc3Npb24gewogICBSVENfRENIRUNLKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CiAjaWYg
ZGVmaW5lZChXRUJSVENfSU9TKQotICAvLyBWVFNlc3Npb25TZXRQcm9wZXJ0eShfZGVjb21wcmVz
c2lvblNlc3Npb24sCi0gIC8vIGtWVERlY29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwg
a0NGQm9vbGVhblRydWUpOworICBWVFNlc3Npb25TZXRQcm9wZXJ0eShfZGVjb21wcmVzc2lvblNl
c3Npb24sIGtWVERlY29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRy
dWUpOwogI2VuZGlmCiB9CiAKIC0gKHZvaWQpZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uIHsK
ICAgaWYgKF9kZWNvbXByZXNzaW9uU2Vzc2lvbikgewogI2lmIGRlZmluZWQoV0VCUlRDX0lPUykK
LSAgICBpZiAoW1VJRGV2aWNlIGlzSU9TMTFPckxhdGVyXSkgewotICAgICAgVlREZWNvbXByZXNz
aW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNGcmFtZXMoX2RlY29tcHJlc3Npb25TZXNzaW9u
KTsKLSAgICB9CisgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbldhaXRGb3JBc3luY2hyb25vdXNG
cmFtZXMoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKICNlbmRpZgogICAgIFZURGVjb21wcmVzc2lv
blNlc3Npb25JbnZhbGlkYXRlKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CiAgICAgQ0ZSZWxlYXNl
KF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMzNiMWIxM2IyOTM2YzQ5MTRkMDJlYmYzZjQyZTk2YWRmODI5NTA1MS4uNjY4MzlhNDUyNGRh
Zjk3YjZhYWJlNTcyYzQzMjJlYzE5NGNiMDBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTk4Niw2ICsxOTg2LDggQEAKIAkJNDFFMDJDRDAyMTI3MzVCNzAwQzI3Q0Q2IC8q
IGJpdHJhdGVfc2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxRTAyQ0NCMjEyNzM1QjcwMEMyN0NENiAvKiBiaXRyYXRlX3NldHRpbmdzLmgg
Ki87IH07CiAJCTQxRTAyQ0QzMjEyNzM2MDcwMEMyN0NENiAvKiBzYW1wbGVfY291bnRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMDJDRDEyMTI3
MzYwNjAwQzI3Q0Q2IC8qIHNhbXBsZV9jb3VudGVyLmggKi87IH07CiAJCTQxRTAyQ0Q0MjEyNzM2
MDcwMEMyN0NENiAvKiBzYW1wbGVfY291bnRlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTAyQ0QyMjEyNzM2MDcwMEMyN0NENiAvKiBzYW1wbGVf
Y291bnRlci5jYyAqLzsgfTsKKwkJNDFFODRCQ0IyNDM0QzRBMzAwRDM0RTQxIC8qIFdlYktpdERl
Y29kZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
RTg0QkM5MjQzNEM0QTIwMEQzNEU0MSAvKiBXZWJLaXREZWNvZGVyLmggKi87IH07CisJCTQxRTg0
QkNDMjQzNEM0QTMwMEQzNEU0MSAvKiBXZWJLaXREZWNvZGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFODRCQ0EyNDM0QzRBMzAwRDM0RTQxIC8q
IFdlYktpdERlY29kZXIubW0gKi87IH07CiAJCTQxRUE1M0E1MUVGQzJDMTQwMDJGRjA0QyAvKiBo
bWFjLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUVB
NTNBNDFFRkMyQkZEMDAyRkYwNEMgLyogaG1hYy5jICovOyB9OwogCQk0MUVBNTNBQjFFRkMyQzRE
MDAyRkYwNEMgLyogZGlnZXN0LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MUVBNTNBNzFFRkMyQzREMDAyRkYwNEMgLyogZGlnZXN0LmMgKi87IH07CiAJ
CTQxRUE1M0FDMUVGQzJDNEQwMDJGRjA0QyAvKiBkaWdlc3RzLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUVBNTNBODFFRkMyQzREMDAyRkYwNEMgLyog
ZGlnZXN0cy5jICovOyB9OwpAQCAtNjE0NCw2ICs2MTQ2LDggQEAKIAkJNDFFNTlFOTMyM0FDQjY1
MjAwOTVBOTRCIC8qIHN5c3RlbV9zdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBzeXN0ZW1fc3RhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFNTlFOTQyM0FDQzEyMzAwOTVBOTRC
IC8qIHZwOF9ydGNkX25vX2FjY2VsZXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB2cDhfcnRjZF9u
b19hY2NlbGVyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFNTlFOTUy
M0FDQzEyMzAwOTVBOTRCIC8qIHZweF9kc3BfcnRjZF9ub19hY2NlbGVyYXRpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gdnB4X2RzcF9ydGNkX25vX2FjY2VsZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MUU4NEJDOTI0MzRDNEEyMDBEMzRFNDEgLyogV2ViS2l0RGVjb2Rlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXREZWNvZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRTg0QkNBMjQzNEM0QTMwMEQzNEU0MSAvKiBXZWJL
aXREZWNvZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
S2l0RGVjb2Rlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFQTUzQTQxRUZD
MkJGRDAwMkZGMDRDIC8qIGhtYWMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gaG1hYy5jOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MUVBNTNBNzFFRkMyQzREMDAyRkYwNEMgLyogZGlnZXN0LmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IGRpZ2VzdC5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MUVBNTNBODFFRkMyQzREMDAyRkYwNEMgLyogZGlnZXN0cy5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBkaWdlc3RzLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC04MzI2LDkgKzgzMzAsOSBAQAogCQk0MTI5OUI5ODIxMjczNkIyMDBC
MzQxNEIgLyogcm5uX3ZhZCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCi0JCQkJNDE4OTNBNkQyNDJBNzhERjAwN0ZEQzQxIC8qIGNvbW1vbi5jYyAqLywKIAkJCQk0
MTMxQzQwMjIzNEM3QjdFMDAyOEE2MTUgLyogYXV0b19jb3JyZWxhdGlvbi5jYyAqLywKIAkJCQk0
MTMxQzQwMzIzNEM3QjdFMDAyOEE2MTUgLyogYXV0b19jb3JyZWxhdGlvbi5oICovLAorCQkJCTQx
ODkzQTZEMjQyQTc4REYwMDdGREM0MSAvKiBjb21tb24uY2MgKi8sCiAJCQkJNDE5MjQxMzYyMTI3
MzcyMzAwNjM0RkNGIC8qIGNvbW1vbi5oICovLAogCQkJCTQxOTI0MTMxMjEyNzM3MjIwMDYzNEZD
RiAvKiBmZWF0dXJlc19leHRyYWN0aW9uLmNjICovLAogCQkJCTQxOTI0MTMyMjEyNzM3MjIwMDYz
NEZDRiAvKiBmZWF0dXJlc19leHRyYWN0aW9uLmggKi8sCkBAIC04NDAzLDkgKzg0MDcsOSBAQAog
CQk0MTMxQzNDQjIzNEI5ODJBMDAyOEE2MTUgLyogc3RhdHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTQxREIxQTkzMjQzMjE2MTQwMDVBQjhFQSAvKiBy
dGNzdGF0c19vYmplY3RzLmNjICovLAogCQkJCTQxMzFDM0NEMjM0Qjk4NDIwMDI4QTYxNSAvKiBy
dGNfc3RhdHMuY2MgKi8sCiAJCQkJNDEzMUMzQ0MyMzRCOTg0MjAwMjhBNjE1IC8qIHJ0Y19zdGF0
c19yZXBvcnQuY2MgKi8sCisJCQkJNDFEQjFBOTMyNDMyMTYxNDAwNUFCOEVBIC8qIHJ0Y3N0YXRz
X29iamVjdHMuY2MgKi8sCiAJCQkpOwogCQkJbmFtZSA9IHN0YXRzOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTg1MDQsMTIgKzg1MDgsMTIgQEAKIAkJNDEzMUM0QTcyMzRDODM2NjAw
MjhBNjE1IC8qIG1lZGlhICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKKwkJCQk0MTMxQzRBQjIzNEM4MzdGMDAyOEE2MTUgLyogYXVkaW9fdHJhbnNwb3J0LmNjICov
LAorCQkJCTQxMzFDNEFBMjM0QzgzN0YwMDI4QTYxNSAvKiBhdWRpb190cmFuc3BvcnQuaCAqLywK
IAkJCQk0MTg5MzlGMzI0MkE3NEY4MDA3RkRDNDEgLyogbWVkaWFfdHJhbnNwb3J0X2NvbmZpZy5j
YyAqLywKIAkJCQk0MTg5MzlGNTI0MkE3NEY4MDA3RkRDNDEgLyogbWVkaWFfdHJhbnNwb3J0X2Nv
bmZpZy5oICovLAogCQkJCTQxODkzOUYyMjQyQTc0RjgwMDdGREM0MSAvKiBtZWRpYV90cmFuc3Bv
cnRfaW50ZXJmYWNlLmNjICovLAogCQkJCTQxODkzOUY0MjQyQTc0RjgwMDdGREM0MSAvKiBtZWRp
YV90cmFuc3BvcnRfaW50ZXJmYWNlLmggKi8sCi0JCQkJNDEzMUM0QUIyMzRDODM3RjAwMjhBNjE1
IC8qIGF1ZGlvX3RyYW5zcG9ydC5jYyAqLywKLQkJCQk0MTMxQzRBQTIzNEM4MzdGMDAyOEE2MTUg
LyogYXVkaW9fdHJhbnNwb3J0LmggKi8sCiAJCQkJNDEzMUM0QTkyMzRDODM3RjAwMjhBNjE1IC8q
IHZpZGVvX3RyYW5zcG9ydC5jYyAqLywKIAkJCQk0MTMxQzRBODIzNEM4MzdGMDAyOEE2MTUgLyog
dmlkZW9fdHJhbnNwb3J0LmggKi8sCiAJCQkpOwpAQCAtODU0OSw4ICs4NTUzLDYgQEAKIAkJNDEz
QTIxNDMxRkUxOEQwMTAwMzczRTk5IC8qIHJ0Y19iYXNlICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MTg5M0E0MDI0MkE3NkYyMDA3RkRDNDEgLyogb3Bl
cmF0aW9uc19jaGFpbi5jYyAqLywKLQkJCQk0MTg5M0EzRjI0MkE3NkYyMDA3RkRDNDEgLyogb3Bl
cmF0aW9uc19jaGFpbi5oICovLAogCQkJCTQxMzFCRkQ5MjM0Qjg5N0UwMDI4QTYxNSAvKiBERVBT
ICovLAogCQkJCTQxOTI0MTY1MjEyNzM4NzkwMDYzNEZDRiAvKiBleHBlcmltZW50cyAqLywKIAkJ
CQk0MTMxQzQxRjIzNEM3RDA3MDAyOEE2MTUgLyogbWVtb3J5ICovLApAQCAtODY4Niw2ICs4Njg4
LDggQEAKIAkJCQk0MTMxQzBCRjIzNEI4OUQ2MDAyOEE2MTUgLyogb3BlbnNzbF9zdHJlYW1fYWRh
cHRlci5oICovLAogCQkJCTQxMzFDMDkzMjM0Qjg5RDAwMDI4QTYxNSAvKiBvcGVuc3NsX3V0aWxp
dHkuY2MgKi8sCiAJCQkJNDEzMUMwRTAyMzRCODlEQzAwMjhBNjE1IC8qIG9wZW5zc2xfdXRpbGl0
eS5oICovLAorCQkJCTQxODkzQTQwMjQyQTc2RjIwMDdGREM0MSAvKiBvcGVyYXRpb25zX2NoYWlu
LmNjICovLAorCQkJCTQxODkzQTNGMjQyQTc2RjIwMDdGREM0MSAvKiBvcGVyYXRpb25zX2NoYWlu
LmggKi8sCiAJCQkJNDEzMUMwRDMyMzRCODlEQTAwMjhBNjE1IC8qIHBoeXNpY2FsX3NvY2tldF9z
ZXJ2ZXIuY2MgKi8sCiAJCQkJNDEzMUMwQ0UyMzRCODlEOTAwMjhBNjE1IC8qIHBoeXNpY2FsX3Nv
Y2tldF9zZXJ2ZXIuaCAqLywKIAkJCQk0MTMxQzBCODIzNEI4OUQ1MDAyOEE2MTUgLyogcGxhdGZv
cm1fdGhyZWFkLmNjICovLApAQCAtOTA3Myw5ICs5MDc3LDkgQEAKIAkJNDE0NUU0QzAxRUY4OTYy
ODAwRkNGNkU2IC8qIHN0YXRzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKKwkJCQk0MUMwMUZDMzI0MkI1QzBBMDBFMDgwMTggLyogcnRjX3N0YXRzLmggKi8sCiAJ
CQkJNDFDMDFGQzIyNDJCNUMwQTAwRTA4MDE4IC8qIHJ0Y19zdGF0c19jb2xsZWN0b3JfY2FsbGJh
Y2suaCAqLywKIAkJCQk0MUMwMUZDNDI0MkI1QzBBMDBFMDgwMTggLyogcnRjX3N0YXRzX3JlcG9y
dC5oICovLAotCQkJCTQxQzAxRkMzMjQyQjVDMEEwMEUwODAxOCAvKiBydGNfc3RhdHMuaCAqLywK
IAkJCQk0MTQ1RTRDMzFFRjg5NkQyMDBGQ0Y2RTYgLyogcnRjc3RhdHNfb2JqZWN0cy5oICovLAog
CQkJKTsKIAkJCW5hbWUgPSBzdGF0czsKQEAgLTkxODAsMTIgKzkxODQsMTIgQEAKIAkJCQk0MTYy
MjVGNTIxNjk4MUY0MDBBOTFDOUIgLyogaGVscGVycy5oICovLAogCQkJCTQxNzk1M0FDMjE2OTgy
M0QwMDI4MjY2QiAvKiBuYWx1X3Jld3JpdGVyLmNjICovLAogCQkJCTQxMTUyMUQ1MjE2OTgyMjAw
MDBBQkFGNyAvKiBuYWx1X3Jld3JpdGVyLmggKi8sCisJCQkJNDE3OTUzQjIyMTY5ODI0MTAwMjgy
NjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8sCiAJCQkJNDE2MjI1
RjEyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NC5oICovLAogCQkJ
CTQxNjIyNUVEMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQubW0g
Ki8sCi0JCQkJNDE3OTUzQjIyMTY5ODI0MTAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NCtQcml2YXRlLmggKi8sCisJCQkJNDEwMDkyMDMyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmggKi8sCiAJCQkJNDEwMDkyMDIyNDJFM0E0NDAw
QzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oICovLAogCQkJCTQxMDA5MjA4MjQy
RTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUubW0gKi8sCi0JCQkJNDEw
MDkyMDMyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRl
LmggKi8sCiAJCQkJNDE3OTUzQjMyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0Rl
Y29kZXJGYWN0b3J5LmggKi8sCiAJCQkJNDE3OTUzQUQyMTY5ODIzRTAwMjgyNjZCIC8qIFJUQ0Rl
ZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gKi8sCiAJCQkJNDE2MjI1RjcyMTY5ODFGNDAwQTkx
QzlCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggKi8sCkBAIC05MzI4LDE0ICs5
MzMyLDE0IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0MTg5MzkzMzI0MkE3MEFEMDA3RkRDNDEg
LyogZW5jb2Rlcl9zZXR0aW5ncy5jYyAqLywKIAkJCQk0MTg5MzkzMjI0MkE3MEFEMDA3RkRDNDEg
LyogZW5jb2Rlcl9zZXR0aW5ncy5oICovLAorCQkJCTQxODkzOTMwMjQyQTcwQUQwMDdGREM0MSAv
KiByZXNvdXJjZS5jYyAqLywKKwkJCQk0MTg5MzkzNjI0MkE3MEFFMDA3RkRDNDEgLyogcmVzb3Vy
Y2UuaCAqLywKIAkJCQk0MTg5MzkyQjI0MkE3MEFCMDA3RkRDNDEgLyogcmVzb3VyY2VfYWRhcHRh
dGlvbl9wcm9jZXNzb3JfaW50ZXJmYWNlLmNjICovLAogCQkJCTQxODkzOTJFMjQyQTcwQUMwMDdG
REM0MSAvKiByZXNvdXJjZV9hZGFwdGF0aW9uX3Byb2Nlc3Nvcl9pbnRlcmZhY2UuaCAqLywKLQkJ
CQk0MTg5MzkzNDI0MkE3MEFEMDA3RkRDNDEgLyogcmVzb3VyY2VfY29uc3VtZXJfY29uZmlndXJh
dGlvbi5jYyAqLywKLQkJCQk0MTg5MzkzNTI0MkE3MEFEMDA3RkRDNDEgLyogcmVzb3VyY2VfY29u
c3VtZXJfY29uZmlndXJhdGlvbi5oICovLAogCQkJCTQxODkzOTJDMjQyQTcwQUMwMDdGREM0MSAv
KiByZXNvdXJjZV9jb25zdW1lci5jYyAqLywKIAkJCQk0MTg5MzkyRjI0MkE3MEFDMDA3RkRDNDEg
LyogcmVzb3VyY2VfY29uc3VtZXIuaCAqLywKLQkJCQk0MTg5MzkzMDI0MkE3MEFEMDA3RkRDNDEg
LyogcmVzb3VyY2UuY2MgKi8sCi0JCQkJNDE4OTM5MzYyNDJBNzBBRTAwN0ZEQzQxIC8qIHJlc291
cmNlLmggKi8sCisJCQkJNDE4OTM5MzQyNDJBNzBBRDAwN0ZEQzQxIC8qIHJlc291cmNlX2NvbnN1
bWVyX2NvbmZpZ3VyYXRpb24uY2MgKi8sCisJCQkJNDE4OTM5MzUyNDJBNzBBRDAwN0ZEQzQxIC8q
IHJlc291cmNlX2NvbnN1bWVyX2NvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQk0MTg5MzkzMTI0MkE3
MEFEMDA3RkRDNDEgLyogdmlkZW9fc291cmNlX3Jlc3RyaWN0aW9ucy5jYyAqLywKIAkJCQk0MTg5
MzkyRDI0MkE3MEFDMDA3RkRDNDEgLyogdmlkZW9fc291cmNlX3Jlc3RyaWN0aW9ucy5oICovLAog
CQkJKTsKQEAgLTkzNTgsMTYgKzkzNjIsMTYgQEAKIAkJCQk0MTg5Mzk3QzI0MkE3MjUxMDA3RkRD
NDEgLyogbnNfY29uZmlnLmggKi8sCiAJCQkJNDE4OTM5NkYyNDJBNzI0RDAwN0ZEQzQxIC8qIG5z
X2ZmdC5jYyAqLywKIAkJCQk0MTg5Mzk3OTI0MkE3MjUwMDA3RkRDNDEgLyogbnNfZmZ0LmggKi8s
Ci0JCQkJNDE4OTM5N0EyNDJBNzI1MDAwN0ZEQzQxIC8qIHByaW9yX3NpZ25hbF9tb2RlbF9lc3Rp
bWF0b3IuY2MgKi8sCi0JCQkJNDE4OTM5NzIyNDJBNzI0RTAwN0ZEQzQxIC8qIHByaW9yX3NpZ25h
bF9tb2RlbF9lc3RpbWF0b3IuaCAqLywKIAkJCQk0MTg5Mzk2QjI0MkE3MjREMDA3RkRDNDEgLyog
cHJpb3Jfc2lnbmFsX21vZGVsLmNjICovLAogCQkJCTQxODkzOTY5MjQyQTcyNEMwMDdGREM0MSAv
KiBwcmlvcl9zaWduYWxfbW9kZWwuaCAqLywKKwkJCQk0MTg5Mzk3QTI0MkE3MjUwMDA3RkRDNDEg
LyogcHJpb3Jfc2lnbmFsX21vZGVsX2VzdGltYXRvci5jYyAqLywKKwkJCQk0MTg5Mzk3MjI0MkE3
MjRFMDA3RkRDNDEgLyogcHJpb3Jfc2lnbmFsX21vZGVsX2VzdGltYXRvci5oICovLAogCQkJCTQx
ODkzOTY0MjQyQTcyNEIwMDdGREM0MSAvKiBxdWFudGlsZV9ub2lzZV9lc3RpbWF0b3IuY2MgKi8s
CiAJCQkJNDE4OTM5NjMyNDJBNzI0QjAwN0ZEQzQxIC8qIHF1YW50aWxlX25vaXNlX2VzdGltYXRv
ci5oICovLAotCQkJCTQxODkzOTcwMjQyQTcyNEUwMDdGREM0MSAvKiBzaWduYWxfbW9kZWxfZXN0
aW1hdG9yLmNjICovLAotCQkJCTQxODkzOTczMjQyQTcyNEYwMDdGREM0MSAvKiBzaWduYWxfbW9k
ZWxfZXN0aW1hdG9yLmggKi8sCiAJCQkJNDE4OTM5NzUyNDJBNzI0RjAwN0ZEQzQxIC8qIHNpZ25h
bF9tb2RlbC5jYyAqLywKIAkJCQk0MTg5Mzk3ODI0MkE3MjUwMDA3RkRDNDEgLyogc2lnbmFsX21v
ZGVsLmggKi8sCisJCQkJNDE4OTM5NzAyNDJBNzI0RTAwN0ZEQzQxIC8qIHNpZ25hbF9tb2RlbF9l
c3RpbWF0b3IuY2MgKi8sCisJCQkJNDE4OTM5NzMyNDJBNzI0RjAwN0ZEQzQxIC8qIHNpZ25hbF9t
b2RlbF9lc3RpbWF0b3IuaCAqLywKIAkJCQk0MTg5Mzk2NzI0MkE3MjRDMDA3RkRDNDEgLyogc3Bl
ZWNoX3Byb2JhYmlsaXR5X2VzdGltYXRvci5jYyAqLywKIAkJCQk0MTg5Mzk2RDI0MkE3MjREMDA3
RkRDNDEgLyogc3BlZWNoX3Byb2JhYmlsaXR5X2VzdGltYXRvci5oICovLAogCQkJCTQxODkzOTZB
MjQyQTcyNEMwMDdGREM0MSAvKiBzdXBwcmVzc2lvbl9wYXJhbXMuY2MgKi8sCkBAIC05MzgxLDgg
KzkzODUsOCBAQAogCQk0MTg5MzlFOTI0MkE3M0QyMDA3RkRDNDEgLyogUmVjb3ZlcmVkIFJlZmVy
ZW5jZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTQx
ODkzOUE4MjQyQTczMkQwMDdGREM0MSAvKiBzaW11bGNhc3RfZGVzY3JpcHRpb24uaCAqLywKIAkJ
CQk0MTg5MzlBQzI0MkE3MzJFMDA3RkRDNDEgLyogcnRjcF9tdXhfZmlsdGVyLmggKi8sCisJCQkJ
NDE4OTM5QTgyNDJBNzMyRDAwN0ZEQzQxIC8qIHNpbXVsY2FzdF9kZXNjcmlwdGlvbi5oICovLAog
CQkJKTsKIAkJCW5hbWUgPSAiUmVjb3ZlcmVkIFJlZmVyZW5jZXMiOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTkzOTQsMTEgKzkzOTgsMTEgQEAKIAkJCQk0MTg5M0EyOTI0MkE3Njc3
MDA3RkRDNDEgLyogY3VzdG9tX25ldGVxX2ZhY3RvcnkuaCAqLywKIAkJCQk0MTg5M0E2MTI0MkE3
N0RBMDA3RkRDNDEgLyogZGVmYXVsdF9uZXRlcV9jb250cm9sbGVyX2ZhY3RvcnkuY2MgKi8sCiAJ
CQkJNDE4OTNBMkIyNDJBNzY3NzAwN0ZEQzQxIC8qIGRlZmF1bHRfbmV0ZXFfY29udHJvbGxlcl9m
YWN0b3J5LmggKi8sCi0JCQkJNDE4OTNBMjgyNDJBNzY3NzAwN0ZEQzQxIC8qIG5ldGVxX2NvbnRy
b2xsZXJfZmFjdG9yeS5oICovLAotCQkJCTQxODkzQTI3MjQyQTc2NzcwMDdGREM0MSAvKiBuZXRl
cV9jb250cm9sbGVyLmggKi8sCi0JCQkJNDE4OTNBMkYyNDJBNzY3ODAwN0ZEQzQxIC8qIG5ldGVx
X2ZhY3RvcnkuaCAqLywKIAkJCQk0MTg5M0EzMDI0MkE3Njc4MDA3RkRDNDEgLyogbmV0ZXEuY2Mg
Ki8sCiAJCQkJNDE4OTNBMkMyNDJBNzY3NzAwN0ZEQzQxIC8qIG5ldGVxLmggKi8sCisJCQkJNDE4
OTNBMjcyNDJBNzY3NzAwN0ZEQzQxIC8qIG5ldGVxX2NvbnRyb2xsZXIuaCAqLywKKwkJCQk0MTg5
M0EyODI0MkE3Njc3MDA3RkRDNDEgLyogbmV0ZXFfY29udHJvbGxlcl9mYWN0b3J5LmggKi8sCisJ
CQkJNDE4OTNBMkYyNDJBNzY3ODAwN0ZEQzQxIC8qIG5ldGVxX2ZhY3RvcnkuaCAqLywKIAkJCQk0
MTg5M0EyRDI0MkE3Njc4MDA3RkRDNDEgLyogdGlja190aW1lci5jYyAqLywKIAkJCQk0MTg5M0Ey
RTI0MkE3Njc4MDA3RkRDNDEgLyogdGlja190aW1lci5oICovLAogCQkJKTsKQEAgLTk1NDUsMTQg
Kzk1NDksMTUgQEAKIAkJNDE5MjQxNjUyMTI3Mzg3OTAwNjM0RkNGIC8qIGV4cGVyaW1lbnRzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0MTMxQzIyMjIz
NEI4QkIxMDAyOEE2MTUgLyogREVQUyAqLywKKwkJCQk0MTMxQzIwMjIzNEI4QkE4MDAyOEE2MTUg
LyogT1dORVJTICovLAogCQkJCTQxMzFDMjA2MjM0QjhCQTkwMDI4QTYxNSAvKiBhbHJfZXhwZXJp
bWVudC5jYyAqLywKKwkJCQk0MTg5Mzk1NjI0MkE3MUY0MDA3RkRDNDEgLyogYWxyX2V4cGVyaW1l
bnQuaCAqLywKIAkJCQk0MTMxQzIxQjIzNEI4QkFGMDAyOEE2MTUgLyogYmFsYW5jZWRfZGVncmFk
YXRpb25fc2V0dGluZ3MuY2MgKi8sCiAJCQkJNDEzMUMyMEIyMzRCOEJBQTAwMjhBNjE1IC8qIGJh
bGFuY2VkX2RlZ3JhZGF0aW9uX3NldHRpbmdzLmggKi8sCiAJCQkJNDEzMUMxRkEyMzRCOEJBNjAw
MjhBNjE1IC8qIEJVSUxELmduICovLAogCQkJCTQxMzFDMUY5MjM0QjhCQTUwMDI4QTYxNSAvKiBj
cHVfc3BlZWRfZXhwZXJpbWVudC5jYyAqLywKLQkJCQk0MTg5Mzk1NjI0MkE3MUY0MDA3RkRDNDEg
LyogYWxyX2V4cGVyaW1lbnQuaCAqLywKIAkJCQk0MTg5Mzk1MzI0MkE3MUYxMDA3RkRDNDEgLyog
Y3B1X3NwZWVkX2V4cGVyaW1lbnQuaCAqLywKLQkJCQk0MTMxQzIyMjIzNEI4QkIxMDAyOEE2MTUg
LyogREVQUyAqLywKIAkJCQk0MTMxQzFGNjIzNEI4QkE1MDAyOEE2MTUgLyogZXhwZXJpbWVudGFs
X3NjcmVlbnNoYXJlX3NldHRpbmdzLmNjICovLAogCQkJCTQxMzFDMjFBMjM0QjhCQUYwMDI4QTYx
NSAvKiBleHBlcmltZW50YWxfc2NyZWVuc2hhcmVfc2V0dGluZ3MuaCAqLywKIAkJCQk0MTMxQzIw
NDIzNEI4QkE4MDAyOEE2MTUgLyogZmllbGRfdHJpYWxfbGlzdC5jYyAqLywKQEAgLTk1NjcsMTYg
Kzk1NzIsMTUgQEAKIAkJCQk0MTg5Mzk1MTI0MkE3MUYxMDA3RkRDNDEgLyogbWluX3ZpZGVvX2Jp
dHJhdGVfZXhwZXJpbWVudC5jYyAqLywKIAkJCQk0MTg5Mzk1MjI0MkE3MUYxMDA3RkRDNDEgLyog
bWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5oICovLAogCQkJCTQxMzFDMjBDMjM0QjhCQUIw
MDI4QTYxNSAvKiBub3JtYWxpemVfc2ltdWxjYXN0X3NpemVfZXhwZXJpbWVudC5jYyAqLywKLQkJ
CQk0MTMxQzIwMjIzNEI4QkE4MDAyOEE2MTUgLyogT1dORVJTICovLAogCQkJCTQxODkzOTRFMjQy
QTcxRjAwMDdGREM0MSAvKiBxdWFsaXR5X3JhbXB1cF9leHBlcmltZW50LmNjICovLAorCQkJCTQx
ODkzOTU1MjQyQTcxRjQwMDdGREM0MSAvKiBxdWFsaXR5X3JhbXB1cF9leHBlcmltZW50LmggKi8s
CiAJCQkJNDEzMUMyMTQyMzRCOEJBRDAwMjhBNjE1IC8qIHF1YWxpdHlfc2NhbGVyX3NldHRpbmdz
LmNjICovLAogCQkJCTQxMzFDMjA4MjM0QjhCQTkwMDI4QTYxNSAvKiBxdWFsaXR5X3NjYWxlcl9z
ZXR0aW5ncy5oICovLAogCQkJCTQxMzFDMjFFMjM0QjhCQjAwMDI4QTYxNSAvKiBxdWFsaXR5X3Nj
YWxpbmdfZXhwZXJpbWVudC5jYyAqLywKKwkJCQk0MTg5Mzk1NDI0MkE3MUY0MDA3RkRDNDEgLyog
cXVhbGl0eV9zY2FsaW5nX2V4cGVyaW1lbnQuaCAqLywKIAkJCQk0MTMxQzIxQzIzNEI4QkFGMDAy
OEE2MTUgLyogcmF0ZV9jb250cm9sX3NldHRpbmdzLmNjICovLAogCQkJCTQxMzFDMUY3MjM0QjhC
QTUwMDI4QTYxNSAvKiByYXRlX2NvbnRyb2xfc2V0dGluZ3MuaCAqLywKIAkJCQk0MTMxQzFGRDIz
NEI4QkE2MDAyOEE2MTUgLyogcnR0X211bHRfZXhwZXJpbWVudC5jYyAqLywKLQkJCQk0MTg5Mzk1
NTI0MkE3MUY0MDA3RkRDNDEgLyogcXVhbGl0eV9yYW1wdXBfZXhwZXJpbWVudC5oICovLAotCQkJ
CTQxODkzOTU0MjQyQTcxRjQwMDdGREM0MSAvKiBxdWFsaXR5X3NjYWxpbmdfZXhwZXJpbWVudC5o
ICovLAogCQkJCTQxODkzOTUwMjQyQTcxRjEwMDdGREM0MSAvKiBydHRfbXVsdF9leHBlcmltZW50
LmggKi8sCiAJCQkJNDEzMUMyMjAyMzRCOEJCMDAwMjhBNjE1IC8qIHN0YWJsZV90YXJnZXRfcmF0
ZV9leHBlcmltZW50LmNjICovLAogCQkJCTQxMzFDMjI1MjM0QjhCQjIwMDI4QTYxNSAvKiBzdGFi
bGVfdGFyZ2V0X3JhdGVfZXhwZXJpbWVudC5oICovLApAQCAtOTc3MCw3ICs5Nzc0LDYgQEAKIAkJ
NDE5QzgzNDExRkUyNDYzODAwNDBDMzBGIC8qIG51bWVyaWNzICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MTg5M0E1NDI0MkE3N0I4MDA3RkRDNDEgLyog
c2VxdWVuY2VfbnVtYmVyX3V0aWwuaCAqLywKIAkJCQk0MTg5M0E0NzI0MkE3Nzg5MDA3RkRDNDEg
LyogZGl2aWRlX3JvdW5kLmggKi8sCiAJCQkJNDE4OTNBNDgyNDJBNzc4OTAwN0ZEQzQxIC8qIGV2
ZW50X2Jhc2VkX2V4cG9uZW50aWFsX21vdmluZ19hdmVyYWdlLmNjICovLAogCQkJCTQxODkzQTUx
MjQyQTc3QjUwMDdGREM0MSAvKiBldmVudF9iYXNlZF9leHBvbmVudGlhbF9tb3ZpbmdfYXZlcmFn
ZS5oICovLApAQCAtOTc4OSw4ICs5NzkyLDggQEAKIAkJCQk0MTlDODM0MjFGRTI0NjYyMDA0MEMz
MEYgLyogcGVyY2VudGlsZV9maWx0ZXIuaCAqLywKIAkJCQk0MTg5M0E0QzI0MkE3N0I0MDA3RkRD
NDEgLyogcnVubmluZ19zdGF0aXN0aWNzLmggKi8sCiAJCQkJNDE5QzgzNEIxRkUyNDY2NDAwNDBD
MzBGIC8qIHNhZmVfY29tcGFyZS5oICovLAotCQkJCTQxODkzQTRGMjQyQTc3QjUwMDdGREM0MSAv
KiBzYWZlX2NvbnZlcnNpb25zX2ltcGwuaCAqLywKIAkJCQk0MTlDODM0NzFGRTI0NjYzMDA0MEMz
MEYgLyogc2FmZV9jb252ZXJzaW9ucy5oICovLAorCQkJCTQxODkzQTRGMjQyQTc3QjUwMDdGREM0
MSAvKiBzYWZlX2NvbnZlcnNpb25zX2ltcGwuaCAqLywKIAkJCQk0MTlDODM0ODFGRTI0NjYzMDA0
MEMzMEYgLyogc2FmZV9taW5tYXguaCAqLywKIAkJCQk0MUUwMkNEMjIxMjczNjA3MDBDMjdDRDYg
Lyogc2FtcGxlX2NvdW50ZXIuY2MgKi8sCiAJCQkJNDFFMDJDRDEyMTI3MzYwNjAwQzI3Q0Q2IC8q
IHNhbXBsZV9jb3VudGVyLmggKi8sCkBAIC05Nzk4LDYgKzk4MDEsNyBAQAogCQkJCTQxODkzQTUy
MjQyQTc3QjcwMDdGREM0MSAvKiBzYW1wbGVfc3RhdHMuaCAqLywKIAkJCQk0MTg5M0E0QjI0MkE3
N0I0MDA3RkRDNDEgLyogc2FtcGxlc19zdGF0c19jb3VudGVyLmNjICovLAogCQkJCTQxODkzQTRF
MjQyQTc3QjQwMDdGREM0MSAvKiBzYW1wbGVzX3N0YXRzX2NvdW50ZXIuaCAqLywKKwkJCQk0MTg5
M0E1NDI0MkE3N0I4MDA3RkRDNDEgLyogc2VxdWVuY2VfbnVtYmVyX3V0aWwuaCAqLywKIAkJCSk7
CiAJCQluYW1lID0gbnVtZXJpY3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTg5
Myw2ICs5ODk3LDggQEAKIAkJCQk0MUVDRUFGOTIwNjQ2NjYzMDA5RDUxNDEgLyogRW5jb2RlclV0
aWxpdGllcy5oICovLAogCQkJCTQxRUNFQUZBMjA2NDY2NjMwMDlENTE0MSAvKiBWaWRlb1Byb2Nl
c3NpbmdTb2Z0TGluay5jcHAgKi8sCiAJCQkJNDFFQ0VBRkIyMDY0NjY2NDAwOUQ1MTQxIC8qIFZp
ZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmggKi8sCisJCQkJNDFFODRCQzkyNDM0QzRBMjAwRDM0RTQx
IC8qIFdlYktpdERlY29kZXIuaCAqLywKKwkJCQk0MUU4NEJDQTI0MzRDNEEzMDBEMzRFNDEgLyog
V2ViS2l0RGVjb2Rlci5tbSAqLywKIAkJCQk0MTU4NjQ5NjIzQkUwNUU4MDBBMEE2MUUgLyogV2Vi
S2l0RW5jb2Rlci5oICovLAogCQkJCTQxNTg2NDk3MjNCRTA1RTkwMEEwQTYxRSAvKiBXZWJLaXRF
bmNvZGVyLm1tICovLAogCQkJCTQxRUNFQUJCMjA2NDAzQzEwMDlENTE0MSAvKiBXZWJLaXRVdGls
aXRpZXMuaCAqLywKQEAgLTEwNDczLDEwICsxMDQ3OSwxMCBAQAogCQk0MUUwMkM4RjIxMjczNEU4
MDBDMjdDRDYgLyogZ29vZ19jYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCi0JCQkJNDE4OTM4RTgyNDJBNkIxNTAwN0ZEQzQxIC8qIGFja25vd2xlZGdlZF9iaXRy
YXRlX2VzdGltYXRvcl9pbnRlcmZhY2UuY2MgKi8sCi0JCQkJNDE4OTM4RUMyNDJBNkIxNjAwN0ZE
QzQxIC8qIGFja25vd2xlZGdlZF9iaXRyYXRlX2VzdGltYXRvcl9pbnRlcmZhY2UuaCAqLywKIAkJ
CQk0MUUwMkM5NDIxMjczNTJBMDBDMjdDRDYgLyogYWNrbm93bGVkZ2VkX2JpdHJhdGVfZXN0aW1h
dG9yLmNjICovLAogCQkJCTQxRTAyQzkyMjEyNzM1MkEwMEMyN0NENiAvKiBhY2tub3dsZWRnZWRf
Yml0cmF0ZV9lc3RpbWF0b3IuaCAqLywKKwkJCQk0MTg5MzhFODI0MkE2QjE1MDA3RkRDNDEgLyog
YWNrbm93bGVkZ2VkX2JpdHJhdGVfZXN0aW1hdG9yX2ludGVyZmFjZS5jYyAqLywKKwkJCQk0MTg5
MzhFQzI0MkE2QjE2MDA3RkRDNDEgLyogYWNrbm93bGVkZ2VkX2JpdHJhdGVfZXN0aW1hdG9yX2lu
dGVyZmFjZS5oICovLAogCQkJCTQxRTAyQ0ExMjEyNzM1MkMwMEMyN0NENiAvKiBhbHJfZGV0ZWN0
b3IuY2MgKi8sCiAJCQkJNDFFMDJDOTkyMTI3MzUyQjAwQzI3Q0Q2IC8qIGFscl9kZXRlY3Rvci5o
ICovLAogCQkJCTQxRTAyQzlBMjEyNzM1MkIwMEMyN0NENiAvKiBiaXRyYXRlX2VzdGltYXRvci5j
YyAqLywKQEAgLTEwNTM1LDEyICsxMDU0MSwxMiBAQAogCQk0MUUwMkNENTIxMjczNjIzMDBDMjdD
RDYgLyogcnRwICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk0MTg5MzlFRjI0MkE3NDdCMDA3RkRDNDEgLyogdHJhbnNwb3J0X2ZlZWRiYWNrX2RlbXV4ZXIu
Y2MgKi8sCi0JCQkJNDE4OTM5RUUyNDJBNzQ3QjAwN0ZEQzQxIC8qIHRyYW5zcG9ydF9mZWVkYmFj
a19kZW11eGVyLmggKi8sCiAJCQkJNDFGQ0JCMzUyMUIxRjhGQzAwQTVERjI3IC8qIGNvbnRyb2xf
aGFuZGxlci5jYyAqLywKIAkJCQk0MUZDQkIzNDIxQjFGOEZCMDBBNURGMjcgLyogY29udHJvbF9o
YW5kbGVyLmggKi8sCiAJCQkJNDE5MjQxOEEyMTI3NDlDODAwNjM0RkNGIC8qIHRyYW5zcG9ydF9m
ZWVkYmFja19hZGFwdGVyLmNjICovLAogCQkJCTQxRTAyQ0Q3MjEyNzM2M0MwMEMyN0NENiAvKiB0
cmFuc3BvcnRfZmVlZGJhY2tfYWRhcHRlci5oICovLAorCQkJCTQxODkzOUVGMjQyQTc0N0IwMDdG
REM0MSAvKiB0cmFuc3BvcnRfZmVlZGJhY2tfZGVtdXhlci5jYyAqLywKKwkJCQk0MTg5MzlFRTI0
MkE3NDdCMDA3RkRDNDEgLyogdHJhbnNwb3J0X2ZlZWRiYWNrX2RlbXV4ZXIuaCAqLywKIAkJCSk7
CiAJCQlwYXRoID0gcnRwOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEwNzY0LDgg
KzEwNzcwLDggQEAKIAkJCQk0MUYyNjNBQTIxMjY4MEE4MDAyNzRGNTkgLyogZmlsZV93cmFwcGVy
LmggKi8sCiAJCQkJNDFGMjYzQTQyMTI2ODBBNjAwMjc0RjU5IC8qIGlnbm9yZV93YXJuaW5ncy5o
ICovLAogCQkJCTQxRjI2M0E2MjEyNjgwQTcwMDI3NEY1OSAvKiBpbmxpbmUuaCAqLywKLQkJCQk0
MUMwMUZDODI0MkI2NTJBMDBFMDgwMTggLyogcnRjX2V4cG9ydF90ZW1wbGF0ZS5oICovLAogCQkJ
CTQxQzAxRkM5MjQyQjY1MkIwMEUwODAxOCAvKiBydGNfZXhwb3J0LmggKi8sCisJCQkJNDFDMDFG
QzgyNDJCNjUyQTAwRTA4MDE4IC8qIHJ0Y19leHBvcnRfdGVtcGxhdGUuaCAqLywKIAkJCQk0MUYy
NjNBNzIxMjY4MEE3MDAyNzRGNTkgLyogdW51c2VkLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IHN5
c3RlbTsKQEAgLTExOTc2LDExICsxMTk4MiwxMSBAQAogCQk1QzYzRjhFMjFFNDE3MzJCMDAyQ0E1
MzEgLyogYXBpICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk0MTg5M0EyNjI0MkE3NjJGMDA3RkRDNDEgLyogbmV0ZXEgKi8sCiAJCQkJNDEzMUMzOUEyMzRC
OTY4NDAwMjhBNjE1IC8qIGF1ZGlvICovLAogCQkJCTVDRDI4NTNCMUU2QTYxQkUwMDk0RkRDOCAv
KiBhdWRpb19jb2RlY3MgKi8sCiAJCQkJNUNERDhDNDUxRTQzQzU3OTAwNjIxRTkyIC8qIGNhbGwg
Ki8sCiAJCQkJNDEzMUMzQUYyMzRCOTZGOTAwMjhBNjE1IC8qIGNyeXB0byAqLywKKwkJCQk0MTg5
M0EyNjI0MkE3NjJGMDA3RkRDNDEgLyogbmV0ZXEgKi8sCiAJCQkJNDEzMUM0NjcyMzRDODE5NzAw
MjhBNjE1IC8qIHJ0Y19ldmVudF9sb2cgKi8sCiAJCQkJNDE0NUU0QzAxRUY4OTYyODAwRkNGNkU2
IC8qIHN0YXRzICovLAogCQkJCTQxMzFDNDdFMjM0QzgyNEQwMDI4QTYxNSAvKiB0YXNrX3F1ZXVl
ICovLApAQCAtMTIwODEsMTcgKzEyMDg3LDE3IEBACiAJCQkJNDEzMUMxN0YyMzRCOEE0NDAwMjhB
NjE1IC8qIGJhc2ljX3BhY2tldF9zb2NrZXRfZmFjdG9yeS5jYyAqLywKIAkJCQk0MTMxQzE2NjIz
NEI4QTQwMDAyOEE2MTUgLyogYmFzaWNfcGFja2V0X3NvY2tldF9mYWN0b3J5LmggKi8sCiAJCQkJ
NDEzMUMxN0MyMzRCOEE0MzAwMjhBNjE1IC8qIGNhbmRpZGF0ZV9wYWlyX2ludGVyZmFjZS5oICov
LAotCQkJCTQxMzFDMThBMjM0QjhBNDUwMDI4QTYxNSAvKiBjb25uZWN0aW9uX2luZm8uY2MgKi8s
Ci0JCQkJNDEzMUMxQTEyMzRCOEE0OTAwMjhBNjE1IC8qIGNvbm5lY3Rpb25faW5mby5oICovLAog
CQkJCTQxMzFDMTc4MjM0QjhBNDMwMDI4QTYxNSAvKiBjb25uZWN0aW9uLmNjICovLAogCQkJCTQx
MzFDMTg3MjM0QjhBNDUwMDI4QTYxNSAvKiBjb25uZWN0aW9uLmggKi8sCisJCQkJNDEzMUMxOEEy
MzRCOEE0NTAwMjhBNjE1IC8qIGNvbm5lY3Rpb25faW5mby5jYyAqLywKKwkJCQk0MTMxQzFBMTIz
NEI4QTQ5MDAyOEE2MTUgLyogY29ubmVjdGlvbl9pbmZvLmggKi8sCiAJCQkJNDE4OTNBMTgyNDJB
NzVDMDAwN0ZEQzQxIC8qIGRlZmF1bHRfaWNlX3RyYW5zcG9ydF9mYWN0b3J5LmNjICovLAogCQkJ
CTQxODkzQTE5MjQyQTc1QzAwMDdGREM0MSAvKiBkZWZhdWx0X2ljZV90cmFuc3BvcnRfZmFjdG9y
eS5oICovLAorCQkJCTQxMzFDMUFBMjM0QjhBNEEwMDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydC5j
YyAqLywKKwkJCQk0MTMxQzE3RTIzNEI4QTQ0MDAyOEE2MTUgLyogZHRsc190cmFuc3BvcnQuaCAq
LywKIAkJCQk0MTg5M0ExQTI0MkE3NUMwMDA3RkRDNDEgLyogZHRsc190cmFuc3BvcnRfZmFjdG9y
eS5oICovLAogCQkJCTQxMzFDMTdBMjM0QjhBNDMwMDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydF9p
bnRlcm5hbC5jYyAqLywKIAkJCQk0MTMxQzFBMzIzNEI4QTQ5MDAyOEE2MTUgLyogZHRsc190cmFu
c3BvcnRfaW50ZXJuYWwuaCAqLywKLQkJCQk0MTMxQzFBQTIzNEI4QTRBMDAyOEE2MTUgLyogZHRs
c190cmFuc3BvcnQuY2MgKi8sCi0JCQkJNDEzMUMxN0UyMzRCOEE0NDAwMjhBNjE1IC8qIGR0bHNf
dHJhbnNwb3J0LmggKi8sCiAJCQkJNDEzMUMxOTIyMzRCOEE0NzAwMjhBNjE1IC8qIGZha2VfZHRs
c190cmFuc3BvcnQuaCAqLywKIAkJCQk0MTMxQzE2ODIzNEI4QTQwMDAyOEE2MTUgLyogZmFrZV9p
Y2VfdHJhbnNwb3J0LmggKi8sCiAJCQkJNDEzMUMxQTQyMzRCOEE0OTAwMjhBNjE1IC8qIGZha2Vf
cGFja2V0X3RyYW5zcG9ydC5oICovLApAQCAtMTIxMTIsMTIgKzEyMTE4LDEyIEBACiAJCQkJNDEz
MUMxNzIyMzRCOEE0MjAwMjhBNjE1IC8qIHAycF90cmFuc3BvcnRfY2hhbm5lbC5oICovLAogCQkJ
CTQxMzFDMUEyMjM0QjhBNDkwMDI4QTYxNSAvKiBwYWNrZXRfdHJhbnNwb3J0X2ludGVybmFsLmNj
ICovLAogCQkJCTQxMzFDMTg0MjM0QjhBNDUwMDI4QTYxNSAvKiBwYWNrZXRfdHJhbnNwb3J0X2lu
dGVybmFsLmggKi8sCisJCQkJNDEzMUMxOTQyMzRCOEE0NzAwMjhBNjE1IC8qIHBvcnQuY2MgKi8s
CisJCQkJNDEzMUMxOTYyMzRCOEE0NzAwMjhBNjE1IC8qIHBvcnQuaCAqLywKIAkJCQk0MTMxQzE5
OTIzNEI4QTQ4MDAyOEE2MTUgLyogcG9ydF9hbGxvY2F0b3IuY2MgKi8sCiAJCQkJNDEzMUMxNkIy
MzRCOEE0MTAwMjhBNjE1IC8qIHBvcnRfYWxsb2NhdG9yLmggKi8sCiAJCQkJNDEzMUMxQTAyMzRC
OEE0OTAwMjhBNjE1IC8qIHBvcnRfaW50ZXJmYWNlLmNjICovLAogCQkJCTQxMzFDMTgyMjM0QjhB
NDQwMDI4QTYxNSAvKiBwb3J0X2ludGVyZmFjZS5oICovLAotCQkJCTQxMzFDMTk0MjM0QjhBNDcw
MDI4QTYxNSAvKiBwb3J0LmNjICovLAotCQkJCTQxMzFDMTk2MjM0QjhBNDcwMDI4QTYxNSAvKiBw
b3J0LmggKi8sCiAJCQkJNDEzMUMxOEIyMzRCOEE0NjAwMjhBNjE1IC8qIHBzZXVkb190Y3AuY2Mg
Ki8sCiAJCQkJNDEzMUMxNzMyMzRCOEE0MjAwMjhBNjE1IC8qIHBzZXVkb190Y3AuaCAqLywKIAkJ
CQk0MTMxQzE2NzIzNEI4QTQwMDAyOEE2MTUgLyogcmVnYXRoZXJpbmdfY29udHJvbGxlci5jYyAq
LywKQEAgLTEyMTMwLDEwICsxMjEzNiwxMCBAQAogCQkJCTQxMzFDMTlDMjM0QjhBNDgwMDI4QTYx
NSAvKiBzdHVuX3NlcnZlci5oICovLAogCQkJCTQxMzFDMTgxMjM0QjhBNDQwMDI4QTYxNSAvKiB0
Y3BfcG9ydC5jYyAqLywKIAkJCQk0MTMxQzE4OTIzNEI4QTQ1MDAyOEE2MTUgLyogdGNwX3BvcnQu
aCAqLywKLQkJCQk0MTMxQzE2NTIzNEI4QTQwMDAyOEE2MTUgLyogdHJhbnNwb3J0X2Rlc2NyaXB0
aW9uX2ZhY3RvcnkuY2MgKi8sCi0JCQkJNDEzMUMxOTcyMzRCOEE0NzAwMjhBNjE1IC8qIHRyYW5z
cG9ydF9kZXNjcmlwdGlvbl9mYWN0b3J5LmggKi8sCiAJCQkJNDEzMUMxOUIyMzRCOEE0ODAwMjhB
NjE1IC8qIHRyYW5zcG9ydF9kZXNjcmlwdGlvbi5jYyAqLywKIAkJCQk0MTMxQzE3QjIzNEI4QTQz
MDAyOEE2MTUgLyogdHJhbnNwb3J0X2Rlc2NyaXB0aW9uLmggKi8sCisJCQkJNDEzMUMxNjUyMzRC
OEE0MDAwMjhBNjE1IC8qIHRyYW5zcG9ydF9kZXNjcmlwdGlvbl9mYWN0b3J5LmNjICovLAorCQkJ
CTQxMzFDMTk3MjM0QjhBNDcwMDI4QTYxNSAvKiB0cmFuc3BvcnRfZGVzY3JpcHRpb25fZmFjdG9y
eS5oICovLAogCQkJCTQxMzFDMTlEMjM0QjhBNDgwMDI4QTYxNSAvKiB0cmFuc3BvcnRfaW5mby5o
ICovLAogCQkJCTQxMzFDMTkxMjM0QjhBNDYwMDI4QTYxNSAvKiB0dXJuX3BvcnQuY2MgKi8sCiAJ
CQkJNDEzMUMxNkEyMzRCOEE0MDAwMjhBNjE1IC8qIHR1cm5fcG9ydC5oICovLApAQCAtMTIxNDcs
MjIgKzEyMTUzLDI0IEBACiAJCTVDNjNGQTM1MUU0MTc2MDgwMDJDQTUzMSAvKiBwYyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNDEzMUJFQzUyMzRCODgx
OTAwMjhBNjE1IC8qIE9XTkVSUyAqLywKIAkJCQk0MTMxQkU4MTIzNEI4ODBEMDAyOEE2MTUgLyog
YXVkaW9fcnRwX3JlY2VpdmVyLmNjICovLAogCQkJCTQxMzFCRUU4MjM0Qjg4MUUwMDI4QTYxNSAv
KiBhdWRpb19ydHBfcmVjZWl2ZXIuaCAqLywKIAkJCQk0MTMxQkVDMTIzNEI4ODE4MDAyOEE2MTUg
LyogYXVkaW9fdHJhY2suY2MgKi8sCiAJCQkJNDEzMUJFOTAyMzRCODgxMDAwMjhBNjE1IC8qIGF1
ZGlvX3RyYWNrLmggKi8sCisJCQkJNDEzMUJFOEIyMzRCODgwRjAwMjhBNjE1IC8qIGNoYW5uZWwu
Y2MgKi8sCisJCQkJNDEzMUJFOTUyMzRCODgxMTAwMjhBNjE1IC8qIGNoYW5uZWwuaCAqLywKIAkJ
CQk0MTMxQkVFQTIzNEI4ODFFMDAyOEE2MTUgLyogY2hhbm5lbF9pbnRlcmZhY2UuaCAqLywKIAkJ
CQk0MTMxQkVEQjIzNEI4ODFDMDAyOEE2MTUgLyogY2hhbm5lbF9tYW5hZ2VyLmNjICovLAogCQkJ
CTQxMzFCRUUzMjM0Qjg4MUQwMDI4QTYxNSAvKiBjaGFubmVsX21hbmFnZXIuaCAqLywKLQkJCQk0
MTMxQkU4QjIzNEI4ODBGMDAyOEE2MTUgLyogY2hhbm5lbC5jYyAqLywKLQkJCQk0MTMxQkU5NTIz
NEI4ODExMDAyOEE2MTUgLyogY2hhbm5lbC5oICovLAogCQkJCTQxODkzOUE1MjQyQTczMkQwMDdG
REM0MSAvKiBjb21wb3NpdGVfZGF0YV9jaGFubmVsX3RyYW5zcG9ydC5jYyAqLywKKwkJCQk0MTg5
MzlCQTI0MkE3MzM0MDA3RkRDNDEgLyogY29tcG9zaXRlX2RhdGFfY2hhbm5lbF90cmFuc3BvcnQu
aCAqLywKIAkJCQk0MTMxQkU5RTIzNEI4ODEyMDAyOEE2MTUgLyogY29tcG9zaXRlX3J0cF90cmFu
c3BvcnQuY2MgKi8sCiAJCQkJNDEzMUJFQzQyMzRCODgxODAwMjhBNjE1IC8qIGNvbXBvc2l0ZV9y
dHBfdHJhbnNwb3J0LmggKi8sCi0JCQkJNDE4OTM5QkEyNDJBNzMzNDAwN0ZEQzQxIC8qIGNvbXBv
c2l0ZV9kYXRhX2NoYW5uZWxfdHJhbnNwb3J0LmggKi8sCi0JCQkJNDE4OTM5QjUyNDJBNzMzMTAw
N0ZEQzQxIC8qIGRhdGFfY2hhbm5lbF9jb250cm9sbGVyLmNjICovLAogCQkJCTQxMzFCRUIxMjM0
Qjg4MTUwMDI4QTYxNSAvKiBkYXRhX2NoYW5uZWwuY2MgKi8sCiAJCQkJNDEzMUJFODgyMzRCODgw
RTAwMjhBNjE1IC8qIGRhdGFfY2hhbm5lbC5oICovLAorCQkJCTQxODkzOUI1MjQyQTczMzEwMDdG
REM0MSAvKiBkYXRhX2NoYW5uZWxfY29udHJvbGxlci5jYyAqLywKKwkJCQk0MTg5MzlCOTI0MkE3
MzM0MDA3RkRDNDEgLyogZGF0YV9jaGFubmVsX2NvbnRyb2xsZXIuaCAqLywKIAkJCQk0MTMxQkU4
MzIzNEI4ODBEMDAyOEE2MTUgLyogZGF0YWdyYW1fcnRwX3RyYW5zcG9ydC5jYyAqLywKIAkJCQk0
MTMxQkVCQzIzNEI4ODE3MDAyOEE2MTUgLyogZGF0YWdyYW1fcnRwX3RyYW5zcG9ydC5oICovLAog
CQkJCTQxMzFCRUNCMjM0Qjg4MUEwMDI4QTYxNSAvKiBkdGxzX3NydHBfdHJhbnNwb3J0LmNjICov
LApAQCAtMTIxNzcsNjIgKzEyMTg1LDYzIEBACiAJCQkJNDEzMUJFQkQyMzRCODgxNzAwMjhBNjE1
IC8qIGljZV9zZXJ2ZXJfcGFyc2luZy5oICovLAogCQkJCTQxMzFCRTk5MjM0Qjg4MTEwMDI4QTYx
NSAvKiBpY2VfdHJhbnNwb3J0LmNjICovLAogCQkJCTQxMzFCRUI2MjM0Qjg4MTYwMDI4QTYxNSAv
KiBpY2VfdHJhbnNwb3J0LmggKi8sCi0JCQkJNDEzMUJFQjcyMzRCODgxNjAwMjhBNjE1IC8qIGpp
dHRlcl9idWZmZXJfZGVsYXlfaW50ZXJmYWNlLmggKi8sCi0JCQkJNDEzMUJFQzgyMzRCODgxOTAw
MjhBNjE1IC8qIGppdHRlcl9idWZmZXJfZGVsYXlfcHJveHkuaCAqLywKIAkJCQk0MTMxQkU5MzIz
NEI4ODEwMDAyOEE2MTUgLyogaml0dGVyX2J1ZmZlcl9kZWxheS5jYyAqLywKIAkJCQk0MTMxQkVC
MjIzNEI4ODE2MDAyOEE2MTUgLyogaml0dGVyX2J1ZmZlcl9kZWxheS5oICovLAorCQkJCTQxMzFC
RUI3MjM0Qjg4MTYwMDI4QTYxNSAvKiBqaXR0ZXJfYnVmZmVyX2RlbGF5X2ludGVyZmFjZS5oICov
LAorCQkJCTQxMzFCRUM4MjM0Qjg4MTkwMDI4QTYxNSAvKiBqaXR0ZXJfYnVmZmVyX2RlbGF5X3By
b3h5LmggKi8sCiAJCQkJNDEzMUJFQzcyMzRCODgxOTAwMjhBNjE1IC8qIGpzZXBfaWNlX2NhbmRp
ZGF0ZS5jYyAqLywKIAkJCQk0MTMxQkVCNTIzNEI4ODE2MDAyOEE2MTUgLyoganNlcF9zZXNzaW9u
X2Rlc2NyaXB0aW9uLmNjICovLAotCQkJCTQxMzFCRTg3MjM0Qjg4MEUwMDI4QTYxNSAvKiBqc2Vw
X3RyYW5zcG9ydF9jb250cm9sbGVyLmNjICovLAotCQkJCTQxMzFCRUIzMjM0Qjg4MTYwMDI4QTYx
NSAvKiBqc2VwX3RyYW5zcG9ydF9jb250cm9sbGVyLmggKi8sCiAJCQkJNDEzMUJFRDAyMzRCODgx
QTAwMjhBNjE1IC8qIGpzZXBfdHJhbnNwb3J0LmNjICovLAogCQkJCTQxMzFCRUJGMjM0Qjg4MTgw
MDI4QTYxNSAvKiBqc2VwX3RyYW5zcG9ydC5oICovLAorCQkJCTQxMzFCRTg3MjM0Qjg4MEUwMDI4
QTYxNSAvKiBqc2VwX3RyYW5zcG9ydF9jb250cm9sbGVyLmNjICovLAorCQkJCTQxMzFCRUIzMjM0
Qjg4MTYwMDI4QTYxNSAvKiBqc2VwX3RyYW5zcG9ydF9jb250cm9sbGVyLmggKi8sCiAJCQkJNDEz
MUJFRDYyMzRCODgxQjAwMjhBNjE1IC8qIGxvY2FsX2F1ZGlvX3NvdXJjZS5jYyAqLywKIAkJCQk0
MTMxQkVBRTIzNEI4ODE1MDAyOEE2MTUgLyogbG9jYWxfYXVkaW9fc291cmNlLmggKi8sCiAJCQkJ
NDEzMUJFRjEyMzRCODgxRjAwMjhBNjE1IC8qIG1lZGlhX3Byb3RvY29sX25hbWVzLmNjICovLAog
CQkJCTQxMzFCRUQxMjM0Qjg4MUIwMDI4QTYxNSAvKiBtZWRpYV9wcm90b2NvbF9uYW1lcy5oICov
LAogCQkJCTQxMzFCRUJCMjM0Qjg4MTcwMDI4QTYxNSAvKiBtZWRpYV9zZXNzaW9uLmNjICovLAog
CQkJCTQxMzFCRUFDMjM0Qjg4MTUwMDI4QTYxNSAvKiBtZWRpYV9zZXNzaW9uLmggKi8sCisJCQkJ
NDEzMUJFQTMyMzRCODgxMzAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbS5jYyAqLywKKwkJCQk0MTMx
QkVBMTIzNEI4ODEzMDAyOEE2MTUgLyogbWVkaWFfc3RyZWFtLmggKi8sCiAJCQkJNDEzMUJFQjAy
MzRCODgxNTAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbV9vYnNlcnZlci5jYyAqLywKIAkJCQk0MTMx
QkU5NzIzNEI4ODExMDAyOEE2MTUgLyogbWVkaWFfc3RyZWFtX29ic2VydmVyLmggKi8sCiAJCQkJ
NDEzMUJFRjAyMzRCODgxRjAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbV90cmFjay5oICovLAotCQkJ
CTQxMzFCRUEzMjM0Qjg4MTMwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW0uY2MgKi8sCi0JCQkJNDEz
MUJFQTEyMzRCODgxMzAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbS5oICovLAotCQkJCTQxODkzOUMz
MjQyQTczMzYwMDdGREM0MSAvKiB2aWRlb190cmFjay5jYyAqLywKLQkJCQk0MTg5MzlDMjI0MkE3
MzM2MDA3RkRDNDEgLyogdmlkZW9fdHJhY2suaCAqLywKLQkJCQk0MTMxQkVDNTIzNEI4ODE5MDAy
OEE2MTUgLyogT1dORVJTICovLAorCQkJCTQxMzFCRUVFMjM0Qjg4MUYwMDI4QTYxNSAvKiBwZWVy
X2Nvbm5lY3Rpb24uY2MgKi8sCisJCQkJNDEzMUJFQTgyMzRCODgxNDAwMjhBNjE1IC8qIHBlZXJf
Y29ubmVjdGlvbi5oICovLAogCQkJCTQxMzFCRUNEMjM0Qjg4MUEwMDI4QTYxNSAvKiBwZWVyX2Nv
bm5lY3Rpb25fZmFjdG9yeS5jYyAqLywKIAkJCQk0MTMxQkVBRjIzNEI4ODE1MDAyOEE2MTUgLyog
cGVlcl9jb25uZWN0aW9uX2ZhY3RvcnkuaCAqLywKIAkJCQk0MTMxQkU4QzIzNEI4ODBGMDAyOEE2
MTUgLyogcGVlcl9jb25uZWN0aW9uX2ludGVybmFsLmggKi8sCiAJCQkJNDEzMUJFOEEyMzRCODgw
RjAwMjhBNjE1IC8qIHBlZXJfY29ubmVjdGlvbl93cmFwcGVyLmNjICovLAogCQkJCTQxMzFCRTg2
MjM0Qjg4MEUwMDI4QTYxNSAvKiBwZWVyX2Nvbm5lY3Rpb25fd3JhcHBlci5oICovLAotCQkJCTQx
MzFCRUVFMjM0Qjg4MUYwMDI4QTYxNSAvKiBwZWVyX2Nvbm5lY3Rpb24uY2MgKi8sCi0JCQkJNDEz
MUJFQTgyMzRCODgxNDAwMjhBNjE1IC8qIHBlZXJfY29ubmVjdGlvbi5oICovLAogCQkJCTQxMzFC
RUI5MjM0Qjg4MTcwMDI4QTYxNSAvKiByZW1vdGVfYXVkaW9fc291cmNlLmNjICovLAogCQkJCTQx
MzFCRThEMjM0Qjg4MEYwMDI4QTYxNSAvKiByZW1vdGVfYXVkaW9fc291cmNlLmggKi8sCiAJCQkJ
NDEzMUJFQjgyMzRCODgxNzAwMjhBNjE1IC8qIHJ0Y19zdGF0c19jb2xsZWN0b3IuY2MgKi8sCi0J
CQkJNDE4OTM5QjkyNDJBNzMzNDAwN0ZEQzQxIC8qIGRhdGFfY2hhbm5lbF9jb250cm9sbGVyLmgg
Ki8sCiAJCQkJNDE4OTM5QjIyNDJBNzMzMDAwN0ZEQzQxIC8qIHJ0Y19zdGF0c19jb2xsZWN0b3Iu
aCAqLywKKwkJCQk0MTMxQkVBQjIzNEI4ODE0MDAyOEE2MTUgLyogcnRjX3N0YXRzX2NvbGxlY3Rv
ci5oICovLAogCQkJCTQxMzFCRUJFMjM0Qjg4MTcwMDI4QTYxNSAvKiBydGNfc3RhdHNfdHJhdmVy
c2FsLmNjICovLAogCQkJCTQxMzFCRUVCMjM0Qjg4MUYwMDI4QTYxNSAvKiBydGNfc3RhdHNfdHJh
dmVyc2FsLmggKi8sCiAJCQkJNDE4OTM5QkQyNDJBNzMzNTAwN0ZEQzQxIC8qIHJ0Y19zdGF0c190
cmF2ZXJzYWwuaCAqLywKIAkJCQk0MTg5MzlBQTI0MkE3MzJFMDA3RkRDNDEgLyogcnRjcF9tdXhf
ZmlsdGVyLmNjICovLAorCQkJCTQxMzFCRUE1MjM0Qjg4MTMwMDI4QTYxNSAvKiBydGNwX211eF9m
aWx0ZXIuY2MgKi8sCisJCQkJNDEzMUJFOUQyMzRCODgxMjAwMjhBNjE1IC8qIHJ0Y3BfbXV4X2Zp
bHRlci5oICovLAogCQkJCTQxMzFCRUM2MjM0Qjg4MTkwMDI4QTYxNSAvKiBydHBfbWVkaWFfdXRp
bHMuY2MgKi8sCiAJCQkJNDE4OTM5QTYyNDJBNzMyRDAwN0ZEQzQxIC8qIHJ0cF9tZWRpYV91dGls
cy5oICovLAorCQkJCTQxMzFCRUJBMjM0Qjg4MTcwMDI4QTYxNSAvKiBydHBfbWVkaWFfdXRpbHMu
aCAqLywKIAkJCQk0MTMxQkU5QjIzNEI4ODEyMDAyOEE2MTUgLyogcnRwX3BhcmFtZXRlcnNfY29u
dmVyc2lvbi5jYyAqLywKIAkJCQk0MTMxQkVDMDIzNEI4ODE4MDAyOEE2MTUgLyogcnRwX3BhcmFt
ZXRlcnNfY29udmVyc2lvbi5oICovLAogCQkJCTQxMzFCRUE0MjM0Qjg4MTMwMDI4QTYxNSAvKiBy
dHBfcmVjZWl2ZXIuY2MgKi8sCisJCQkJNDE4OTM5QkYyNDJBNzMzNTAwN0ZEQzQxIC8qIHJ0cF9y
ZWNlaXZlci5jYyAqLywKIAkJCQk0MTMxQkVBMjIzNEI4ODEzMDAyOEE2MTUgLyogcnRwX3JlY2Vp
dmVyLmggKi8sCiAJCQkJNDEzMUJFODIyMzRCODgwRDAwMjhBNjE1IC8qIHJ0cF9zZW5kZXIuY2Mg
Ki8sCiAJCQkJNDEzMUJFQUEyMzRCODgxNDAwMjhBNjE1IC8qIHJ0cF9zZW5kZXIuaCAqLywKIAkJ
CQk0MTMxQkVBOTIzNEI4ODE0MDAyOEE2MTUgLyogcnRwX3RyYW5zY2VpdmVyLmNjICovLAogCQkJ
CTQxMzFCRUUyMjM0Qjg4MUQwMDI4QTYxNSAvKiBydHBfdHJhbnNjZWl2ZXIuaCAqLywKLQkJCQk0
MTg5MzlCRjI0MkE3MzM1MDA3RkRDNDEgLyogcnRwX3JlY2VpdmVyLmNjICovLAotCQkJCTQxODkz
OUFEMjQyQTczMkYwMDdGREM0MSAvKiBydHBfdHJhbnNwb3J0X2ludGVybmFsLmggKi8sCiAJCQkJ
NDEzMUJFREYyMzRCODgxRDAwMjhBNjE1IC8qIHJ0cF90cmFuc3BvcnQuY2MgKi8sCiAJCQkJNDE4
OTM5QjgyNDJBNzMzNDAwN0ZEQzQxIC8qIHJ0cF90cmFuc3BvcnQuY2MgKi8sCiAJCQkJNDEzMUJF
RDUyMzRCODgxQjAwMjhBNjE1IC8qIHJ0cF90cmFuc3BvcnQuaCAqLywKIAkJCQk0MTg5MzlCNzI0
MkE3MzMzMDA3RkRDNDEgLyogcnRwX3RyYW5zcG9ydC5oICovLAorCQkJCTQxODkzOUFEMjQyQTcz
MkYwMDdGREM0MSAvKiBydHBfdHJhbnNwb3J0X2ludGVybmFsLmggKi8sCisJCQkJNDEzMUJFQTYy
MzRCODgxNDAwMjhBNjE1IC8qIHJ0cF90cmFuc3BvcnRfaW50ZXJuYWwuaCAqLywKIAkJCQk0MTg5
MzlDNDI0MkE3MzM2MDA3RkRDNDEgLyogc2N0cF9kYXRhX2NoYW5uZWxfdHJhbnNwb3J0LmNjICov
LAogCQkJCTQxODkzOUE3MjQyQTczMkQwMDdGREM0MSAvKiBzY3RwX2RhdGFfY2hhbm5lbF90cmFu
c3BvcnQuaCAqLywKIAkJCQk0MTMxQkU4OTIzNEI4ODBGMDAyOEE2MTUgLyogc2N0cF90cmFuc3Bv
cnQuY2MgKi8sCkBAIC0xMjI0MCw1NiArMTIyNDksNTMgQEAKIAkJCQk0MTMxQkVFRDIzNEI4ODFG
MDAyOEE2MTUgLyogc2N0cF91dGlscy5jYyAqLywKIAkJCQk0MTMxQkVENzIzNEI4ODFCMDAyOEE2
MTUgLyogc2N0cF91dGlscy5oICovLAogCQkJCTQxODkzOUIwMjQyQTczMkYwMDdGREM0MSAvKiBz
ZHBfc2VyaWFsaXplci5jYyAqLywKKwkJCQk0MTMxQkU5NDIzNEI4ODExMDAyOEE2MTUgLyogc2Rw
X3NlcmlhbGl6ZXIuY2MgKi8sCiAJCQkJNDEzMUJFQzIyMzRCODgxODAwMjhBNjE1IC8qIHNkcF9z
ZXJpYWxpemVyLmggKi8sCisJCQkJNDE4OTM5QzAyNDJBNzMzNjAwN0ZEQzQxIC8qIHNkcF9zZXJp
YWxpemVyLmggKi8sCiAJCQkJNDEzMUJFOTYyMzRCODgxMTAwMjhBNjE1IC8qIHNkcF91dGlscy5j
YyAqLywKIAkJCQk0MTMxQkVEMzIzNEI4ODFCMDAyOEE2MTUgLyogc2RwX3V0aWxzLmggKi8sCiAJ
CQkJNDEzMUJFODQyMzRCODgwRTAwMjhBNjE1IC8qIHNlc3Npb25fZGVzY3JpcHRpb24uY2MgKi8s
CiAJCQkJNDEzMUJFOEUyMzRCODgxMDAwMjhBNjE1IC8qIHNlc3Npb25fZGVzY3JpcHRpb24uaCAq
LywKLQkJCQk0MTg5MzlDMDI0MkE3MzM2MDA3RkRDNDEgLyogc2RwX3NlcmlhbGl6ZXIuaCAqLywK
IAkJCQk0MTg5MzlBQjI0MkE3MzJFMDA3RkRDNDEgLyogc2ltdWxjYXN0X2Rlc2NyaXB0aW9uLmNj
ICovLAorCQkJCTQxMzFCRUQ0MjM0Qjg4MUIwMDI4QTYxNSAvKiBzaW11bGNhc3RfZGVzY3JpcHRp
b24uY2MgKi8sCisJCQkJNDEzMUJFREUyMzRCODgxRDAwMjhBNjE1IC8qIHNpbXVsY2FzdF9kZXNj
cmlwdGlvbi5oICovLAogCQkJCTQxMzFCRTkyMjM0Qjg4MTAwMDI4QTYxNSAvKiBzcnRwX2ZpbHRl
ci5jYyAqLywKIAkJCQk0MTg5MzlCQzI0MkE3MzM1MDA3RkRDNDEgLyogc3J0cF9maWx0ZXIuY2Mg
Ki8sCiAJCQkJNDE4OTM5QTQyNDJBNzMyRDAwN0ZEQzQxIC8qIHNydHBfZmlsdGVyLmggKi8sCisJ
CQkJNDEzMUJFQ0YyMzRCODgxQTAwMjhBNjE1IC8qIHNydHBfZmlsdGVyLmggKi8sCiAJCQkJNDEz
MUJFQzkyMzRCODgxOTAwMjhBNjE1IC8qIHNydHBfc2Vzc2lvbi5jYyAqLywKIAkJCQk0MTMxQkVD
RTIzNEI4ODFBMDAyOEE2MTUgLyogc3J0cF9zZXNzaW9uLmggKi8sCiAJCQkJNDEzMUJFREEyMzRC
ODgxQzAwMjhBNjE1IC8qIHNydHBfdHJhbnNwb3J0LmNjICovLAogCQkJCTQxODkzOUJCMjQyQTcz
MzUwMDdGREM0MSAvKiBzcnRwX3RyYW5zcG9ydC5jYyAqLywKIAkJCQk0MTg5MzlBRjI0MkE3MzJG
MDA3RkRDNDEgLyogc3J0cF90cmFuc3BvcnQuaCAqLywKKwkJCQk0MTMxQkVEODIzNEI4ODFDMDAy
OEE2MTUgLyogc3J0cF90cmFuc3BvcnQuaCAqLywKIAkJCQk0MTMxQkU5ODIzNEI4ODExMDAyOEE2
MTUgLyogc3RhdHNfY29sbGVjdG9yLmNjICovLAogCQkJCTQxMzFCRUU0MjM0Qjg4MUQwMDI4QTYx
NSAvKiBzdGF0c19jb2xsZWN0b3IuaCAqLywKIAkJCQk0MTMxQkU3RTIzNEI4ODBEMDAyOEE2MTUg
Lyogc3RyZWFtX2NvbGxlY3Rpb24uaCAqLywKIAkJCQk0MTMxQkVFMDIzNEI4ODFEMDAyOEE2MTUg
LyogdHJhY2tfbWVkaWFfaW5mb19tYXAuY2MgKi8sCiAJCQkJNDE4OTM5QkUyNDJBNzMzNTAwN0ZE
QzQxIC8qIHRyYWNrX21lZGlhX2luZm9fbWFwLmNjICovLAogCQkJCTQxODkzOUI2MjQyQTczMzEw
MDdGREM0MSAvKiB0cmFja19tZWRpYV9pbmZvX21hcC5oICovLAotCQkJCTQxMzFCRThGMjM0Qjg4
MTAwMDI4QTYxNSAvKiB0cmFuc3BvcnRfc3RhdHMuaCAqLywKKwkJCQk0MTMxQkVBRDIzNEI4ODE1
MDAyOEE2MTUgLyogdHJhY2tfbWVkaWFfaW5mb19tYXAuaCAqLywKIAkJCQk0MTg5MzlFNjI0MkE3
M0IzMDA3RkRDNDEgLyogdHJhbnNwb3J0X3N0YXRzLmNjICovLAorCQkJCTQxMzFCRThGMjM0Qjg4
MTAwMDI4QTYxNSAvKiB0cmFuc3BvcnRfc3RhdHMuaCAqLywKIAkJCQk0MTg5MzlBOTI0MkE3MzJF
MDA3RkRDNDEgLyogdXNlZF9pZHMuaCAqLywKKwkJCQk0MTMxQkVFNTIzNEI4ODFFMDAyOEE2MTUg
LyogdXNlZF9pZHMuaCAqLywKIAkJCQk0MTMxQkU5RjIzNEI4ODEyMDAyOEE2MTUgLyogdmlkZW9f
cnRwX3JlY2VpdmVyLmNjICovLAogCQkJCTQxMzFCRUNDMjM0Qjg4MUEwMDI4QTYxNSAvKiB2aWRl
b19ydHBfcmVjZWl2ZXIuaCAqLywKIAkJCQk0MTg5MzlCNDI0MkE3MzMwMDA3RkRDNDEgLyogdmlk
ZW9fcnRwX3RyYWNrX3NvdXJjZS5jYyAqLywKIAkJCQk0MTg5MzlBRTI0MkE3MzJGMDA3RkRDNDEg
LyogdmlkZW9fcnRwX3RyYWNrX3NvdXJjZS5oICovLAorCQkJCTQxODkzOUMzMjQyQTczMzYwMDdG
REM0MSAvKiB2aWRlb190cmFjay5jYyAqLywKKwkJCQk0MTMxQkVDMzIzNEI4ODE4MDAyOEE2MTUg
LyogdmlkZW9fdHJhY2suY2MgKi8sCisJCQkJNDE4OTM5QzIyNDJBNzMzNjAwN0ZEQzQxIC8qIHZp
ZGVvX3RyYWNrLmggKi8sCisJCQkJNDEzMUJFQTAyMzRCODgxMzAwMjhBNjE1IC8qIHZpZGVvX3Ry
YWNrLmggKi8sCiAJCQkJNDEzMUJFODAyMzRCODgwRDAwMjhBNjE1IC8qIHZpZGVvX3RyYWNrX3Nv
dXJjZS5jYyAqLywKIAkJCQk0MTg5MzlDMTI0MkE3MzM2MDA3RkRDNDEgLyogdmlkZW9fdHJhY2tf
c291cmNlLmNjICovLAogCQkJCTQxODkzOUIxMjQyQTczMzAwMDdGREM0MSAvKiB2aWRlb190cmFj
a19zb3VyY2UuaCAqLywKLQkJCQk0MTMxQkVBQjIzNEI4ODE0MDAyOEE2MTUgLyogcnRjX3N0YXRz
X2NvbGxlY3Rvci5oICovLAotCQkJCTQxMzFCRUMzMjM0Qjg4MTgwMDI4QTYxNSAvKiB2aWRlb190
cmFjay5jYyAqLywKLQkJCQk0MTMxQkVBMDIzNEI4ODEzMDAyOEE2MTUgLyogdmlkZW9fdHJhY2su
aCAqLywKKwkJCQk0MTMxQkVEOTIzNEI4ODFDMDAyOEE2MTUgLyogdmlkZW9fdHJhY2tfc291cmNl
LmggKi8sCiAJCQkJNDEzMUJFREMyMzRCODgxQzAwMjhBNjE1IC8qIHdlYnJ0Y19zZHAuY2MgKi8s
CiAJCQkJNDEzMUJFQTcyMzRCODgxNDAwMjhBNjE1IC8qIHdlYnJ0Y19zZHAuaCAqLywKIAkJCQk0
MTMxQkU3RjIzNEI4ODBEMDAyOEE2MTUgLyogd2VicnRjX3Nlc3Npb25fZGVzY3JpcHRpb25fZmFj
dG9yeS5jYyAqLywKIAkJCQk0MTMxQkU3RDIzNEI4ODBDMDAyOEE2MTUgLyogd2VicnRjX3Nlc3Np
b25fZGVzY3JpcHRpb25fZmFjdG9yeS5oICovLAotCQkJCTQxMzFCRUE1MjM0Qjg4MTMwMDI4QTYx
NSAvKiBydGNwX211eF9maWx0ZXIuY2MgKi8sCi0JCQkJNDEzMUJFOUQyMzRCODgxMjAwMjhBNjE1
IC8qIHJ0Y3BfbXV4X2ZpbHRlci5oICovLAotCQkJCTQxMzFCRUJBMjM0Qjg4MTcwMDI4QTYxNSAv
KiBydHBfbWVkaWFfdXRpbHMuaCAqLywKLQkJCQk0MTMxQkVBNjIzNEI4ODE0MDAyOEE2MTUgLyog
cnRwX3RyYW5zcG9ydF9pbnRlcm5hbC5oICovLAotCQkJCTQxMzFCRTk0MjM0Qjg4MTEwMDI4QTYx
NSAvKiBzZHBfc2VyaWFsaXplci5jYyAqLywKLQkJCQk0MTMxQkVENDIzNEI4ODFCMDAyOEE2MTUg
Lyogc2ltdWxjYXN0X2Rlc2NyaXB0aW9uLmNjICovLAotCQkJCTQxMzFCRURFMjM0Qjg4MUQwMDI4
QTYxNSAvKiBzaW11bGNhc3RfZGVzY3JpcHRpb24uaCAqLywKLQkJCQk0MTMxQkVDRjIzNEI4ODFB
MDAyOEE2MTUgLyogc3J0cF9maWx0ZXIuaCAqLywKLQkJCQk0MTMxQkVEODIzNEI4ODFDMDAyOEE2
MTUgLyogc3J0cF90cmFuc3BvcnQuaCAqLywKLQkJCQk0MTMxQkVBRDIzNEI4ODE1MDAyOEE2MTUg
LyogdHJhY2tfbWVkaWFfaW5mb19tYXAuaCAqLywKLQkJCQk0MTMxQkVFNTIzNEI4ODFFMDAyOEE2
MTUgLyogdXNlZF9pZHMuaCAqLywKLQkJCQk0MTMxQkVEOTIzNEI4ODFDMDAyOEE2MTUgLyogdmlk
ZW9fdHJhY2tfc291cmNlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHBjOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTEyNDA4LDI2ICsxMjQxNCwyNiBAQAogCQkJCTQxMDA5MUQ4MjQy
RTBCQkIwMEM1RURBMiAvKiByZWNvcmRhYmxlX2VuY29kZWRfZnJhbWUuaCAqLywKIAkJCQk0MTAy
RjZEOTIxMjczNDE2MDA2QUU4RDcgLyogdmlkZW9fYml0cmF0ZV9hbGxvY2F0aW9uLmNjICovLAog
CQkJCTQxRjI2M0M0MjEyNjgxODkwMDI3NEY1OSAvKiB2aWRlb19iaXRyYXRlX2FsbG9jYXRpb24u
aCAqLywKLQkJCQk0MTAyRjZEQTIxMjczNDE2MDA2QUU4RDcgLyogdmlkZW9fYml0cmF0ZV9hbGxv
Y2F0b3JfZmFjdG9yeS5oICovLAogCQkJCTQxMzFDNDFDMjM0QzdDN0MwMDI4QTYxNSAvKiB2aWRl
b19iaXRyYXRlX2FsbG9jYXRvci5jYyAqLywKIAkJCQk0MUYyNjNDMTIxMjY4MTg5MDAyNzRGNTkg
LyogdmlkZW9fYml0cmF0ZV9hbGxvY2F0b3IuaCAqLywKKwkJCQk0MTAyRjZEQTIxMjczNDE2MDA2
QUU4RDcgLyogdmlkZW9fYml0cmF0ZV9hbGxvY2F0b3JfZmFjdG9yeS5oICovLAogCQkJCTQxMDA5
MUQ2MjQyRTBCQkEwMEM1RURBMiAvKiB2aWRlb19jb2RlY19jb25zdGFudHMuaCAqLywKIAkJCQk0
MTAwOTFENzI0MkUwQkJCMDBDNUVEQTIgLyogdmlkZW9fY29kZWNfdHlwZS5oICovLAogCQkJCTQx
OUM4NDBEMUZFMjQ5QUEwMDQwQzMwRiAvKiB2aWRlb19jb250ZW50X3R5cGUuY2MgKi8sCiAJCQkJ
NDE5Qzg0MEYxRkUyNDlBQjAwNDBDMzBGIC8qIHZpZGVvX2NvbnRlbnRfdHlwZS5oICovLAorCQkJ
CTVDRDI4NDY0MUU2QTU3RjQwMDk0RkRDOCAvKiB2aWRlb19mcmFtZS5jYyAqLywKKwkJCQk1Q0Qy
ODQ2NTFFNkE1N0Y0MDA5NEZEQzggLyogdmlkZW9fZnJhbWUuaCAqLywKIAkJCQk0MTI0NTU0QTFF
Rjg4NzQzMDBGMTE4MDkgLyogdmlkZW9fZnJhbWVfYnVmZmVyLmNjICovLAogCQkJCTVDRDI4NDYz
MUU2QTU3RjQwMDk0RkRDOCAvKiB2aWRlb19mcmFtZV9idWZmZXIuaCAqLywKIAkJCQk0MTAwOTFE
NTI0MkUwQkI5MDBDNUVEQTIgLyogdmlkZW9fZnJhbWVfbWFya2luZy5oICovLAogCQkJCTQxMDA5
MUQ5MjQyRTBCQkIwMEM1RURBMiAvKiB2aWRlb19mcmFtZV90eXBlLmggKi8sCi0JCQkJNUNEMjg0
NjQxRTZBNTdGNDAwOTRGREM4IC8qIHZpZGVvX2ZyYW1lLmNjICovLAotCQkJCTVDRDI4NDY1MUU2
QTU3RjQwMDk0RkRDOCAvKiB2aWRlb19mcmFtZS5oICovLAogCQkJCTVDRDI4NDY2MUU2QTU3RjQw
MDk0RkRDOCAvKiB2aWRlb19yb3RhdGlvbi5oICovLAogCQkJCTQxMDJGNkQzMjEyNzM0MTUwMDZB
RThENyAvKiB2aWRlb19zaW5rX2ludGVyZmFjZS5oICovLAogCQkJCTQxRjI2M0M2MjEyNjgxOEEw
MDI3NEY1OSAvKiB2aWRlb19zb3VyY2VfaW50ZXJmYWNlLmNjICovLAogCQkJCTQxRjI2M0JFMjEy
NjgxODgwMDI3NEY1OSAvKiB2aWRlb19zb3VyY2VfaW50ZXJmYWNlLmggKi8sCisJCQkJNDFGMjYz
QzUyMTI2ODE4QTAwMjc0RjU5IC8qIHZpZGVvX3N0cmVhbV9kZWNvZGVyLmggKi8sCiAJCQkJNDEw
MkY2RDEyMTI3MzQxNDAwNkFFOEQ3IC8qIHZpZGVvX3N0cmVhbV9kZWNvZGVyX2NyZWF0ZS5jYyAq
LywKIAkJCQk0MTAyRjZENDIxMjczNDE1MDA2QUU4RDcgLyogdmlkZW9fc3RyZWFtX2RlY29kZXJf
Y3JlYXRlLmggKi8sCi0JCQkJNDFGMjYzQzUyMTI2ODE4QTAwMjc0RjU5IC8qIHZpZGVvX3N0cmVh
bV9kZWNvZGVyLmggKi8sCiAJCQkJNDEwMkY2RDUyMTI3MzQxNTAwNkFFOEQ3IC8qIHZpZGVvX3N0
cmVhbV9lbmNvZGVyX2NyZWF0ZS5jYyAqLywKIAkJCQk0MUYyNjNDMDIxMjY4MTg5MDAyNzRGNTkg
LyogdmlkZW9fc3RyZWFtX2VuY29kZXJfY3JlYXRlLmggKi8sCiAJCQkJNDFGMjYzQzMyMTI2ODE4
OTAwMjc0RjU5IC8qIHZpZGVvX3N0cmVhbV9lbmNvZGVyX2ludGVyZmFjZS5oICovLApAQCAtMTI1
MDEsMTYgKzEyNTA3LDE2IEBACiAJCTVDRDI4NTVGMUU2QTYzMDUwMDk0RkRDOCAvKiBhZWMzICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk0MTMxQzM1MDIz
NEI5NTc4MDAyOEE2MTUgLyogYWRhcHRpdmVfZmlyX2ZpbHRlcl9lcmwuY2MgKi8sCi0JCQkJNDEz
MUMzNUMyMzRCOTU3QTAwMjhBNjE1IC8qIGFkYXB0aXZlX2Zpcl9maWx0ZXJfZXJsLmggKi8sCiAJ
CQkJNUNEMjg1NjAxRTZBNjM0MzAwOTRGREM4IC8qIGFkYXB0aXZlX2Zpcl9maWx0ZXIuY2MgKi8s
CiAJCQkJNUNEMjg1NjExRTZBNjM0MzAwOTRGREM4IC8qIGFkYXB0aXZlX2Zpcl9maWx0ZXIuaCAq
LywKLQkJCQk1Q0QyODU2MjFFNkE2MzQzMDA5NEZEQzggLyogYWVjX3N0YXRlLmNjICovLAotCQkJ
CTVDRDI4NTYzMUU2QTYzNDMwMDk0RkRDOCAvKiBhZWNfc3RhdGUuaCAqLywKKwkJCQk0MTMxQzM1
MDIzNEI5NTc4MDAyOEE2MTUgLyogYWRhcHRpdmVfZmlyX2ZpbHRlcl9lcmwuY2MgKi8sCisJCQkJ
NDEzMUMzNUMyMzRCOTU3QTAwMjhBNjE1IC8qIGFkYXB0aXZlX2Zpcl9maWx0ZXJfZXJsLmggKi8s
CiAJCQkJNUNEMjg1NjQxRTZBNjM0MzAwOTRGREM4IC8qIGFlYzNfY29tbW9uLmNjICovLAogCQkJ
CTVDRDI4NTY1MUU2QTYzNDMwMDk0RkRDOCAvKiBhZWMzX2NvbW1vbi5oICovLAogCQkJCTVDRDI4
NTY2MUU2QTYzNDMwMDk0RkRDOCAvKiBhZWMzX2ZmdC5jYyAqLywKIAkJCQk1Q0QyODU2NzFFNkE2
MzQzMDA5NEZEQzggLyogYWVjM19mZnQuaCAqLywKKwkJCQk1Q0QyODU2MjFFNkE2MzQzMDA5NEZE
QzggLyogYWVjX3N0YXRlLmNjICovLAorCQkJCTVDRDI4NTYzMUU2QTYzNDMwMDk0RkRDOCAvKiBh
ZWNfc3RhdGUuaCAqLywKIAkJCQk0MTg5MzlGRTI0MkE3NTNCMDA3RkRDNDEgLyogYWxpZ25tZW50
X21peGVyLmNjICovLAogCQkJCTQxODkzOUZGMjQyQTc1M0IwMDdGREM0MSAvKiBhbGlnbm1lbnRf
bWl4ZXIuaCAqLywKIAkJCQk0MTMxQzM1ODIzNEI5NTc5MDAyOEE2MTUgLyogYXBpX2NhbGxfaml0
dGVyX21ldHJpY3MuY2MgKi8sCkBAIC0xMjUyMSwxMCArMTI1MjcsMTAgQEAKIAkJCQk0MTMxQzM1
OTIzNEI5NTc5MDAyOEE2MTUgLyogYmxvY2tfZGVsYXlfYnVmZmVyLmggKi8sCiAJCQkJNUNEMjg1
NjgxRTZBNjM0MzAwOTRGREM4IC8qIGJsb2NrX2ZyYW1lci5jYyAqLywKIAkJCQk1Q0QyODU2OTFF
NkE2MzQzMDA5NEZEQzggLyogYmxvY2tfZnJhbWVyLmggKi8sCi0JCQkJNUNEMjg1NkExRTZBNjM0
MzAwOTRGREM4IC8qIGJsb2NrX3Byb2Nlc3Nvcl9tZXRyaWNzLmNjICovLAotCQkJCTVDRDI4NTZC
MUU2QTYzNDMwMDk0RkRDOCAvKiBibG9ja19wcm9jZXNzb3JfbWV0cmljcy5oICovLAogCQkJCTVD
RDI4NTZDMUU2QTYzNDMwMDk0RkRDOCAvKiBibG9ja19wcm9jZXNzb3IuY2MgKi8sCiAJCQkJNUNE
Mjg1NkQxRTZBNjM0MzAwOTRGREM4IC8qIGJsb2NrX3Byb2Nlc3Nvci5oICovLAorCQkJCTVDRDI4
NTZBMUU2QTYzNDMwMDk0RkRDOCAvKiBibG9ja19wcm9jZXNzb3JfbWV0cmljcy5jYyAqLywKKwkJ
CQk1Q0QyODU2QjFFNkE2MzQzMDA5NEZEQzggLyogYmxvY2tfcHJvY2Vzc29yX21ldHJpY3MuaCAq
LywKIAkJCQk0MTMxQzM1MTIzNEI5NTc4MDAyOEE2MTUgLyogY2xvY2tkcmlmdF9kZXRlY3Rvci5j
YyAqLywKIAkJCQk0MTMxQzM0QzIzNEI5NTc3MDAyOEE2MTUgLyogY2xvY2tkcmlmdF9kZXRlY3Rv
ci5oICovLAogCQkJCTVDRDI4NTcwMUU2QTYzNDMwMDk0RkRDOCAvKiBjb21mb3J0X25vaXNlX2dl
bmVyYXRvci5jYyAqLywKQEAgLTEyNTQ0LDEwICsxMjU1MCwxMCBAQAogCQkJCTVDRDI4NTc3MUU2
QTYzNDMwMDk0RkRDOCAvKiBlY2hvX3BhdGhfZGVsYXlfZXN0aW1hdG9yLmggKi8sCiAJCQkJNUNE
Mjg1NzgxRTZBNjM0MzAwOTRGREM4IC8qIGVjaG9fcGF0aF92YXJpYWJpbGl0eS5jYyAqLywKIAkJ
CQk1Q0QyODU3OTFFNkE2MzQzMDA5NEZEQzggLyogZWNob19wYXRoX3ZhcmlhYmlsaXR5LmggKi8s
Ci0JCQkJNUNEMjg1N0ExRTZBNjM0MzAwOTRGREM4IC8qIGVjaG9fcmVtb3Zlcl9tZXRyaWNzLmNj
ICovLAotCQkJCTVDRDI4NTdCMUU2QTYzNDMwMDk0RkRDOCAvKiBlY2hvX3JlbW92ZXJfbWV0cmlj
cy5oICovLAogCQkJCTVDRDI4NTdDMUU2QTYzNDMwMDk0RkRDOCAvKiBlY2hvX3JlbW92ZXIuY2Mg
Ki8sCiAJCQkJNUNEMjg1N0QxRTZBNjM0MzAwOTRGREM4IC8qIGVjaG9fcmVtb3Zlci5oICovLAor
CQkJCTVDRDI4NTdBMUU2QTYzNDMwMDk0RkRDOCAvKiBlY2hvX3JlbW92ZXJfbWV0cmljcy5jYyAq
LywKKwkJCQk1Q0QyODU3QjFFNkE2MzQzMDA5NEZEQzggLyogZWNob19yZW1vdmVyX21ldHJpY3Mu
aCAqLywKIAkJCQk1Q0QyODU3RTFFNkE2MzQzMDA5NEZEQzggLyogZXJsX2VzdGltYXRvci5jYyAq
LywKIAkJCQk1Q0QyODU3RjFFNkE2MzQzMDA5NEZEQzggLyogZXJsX2VzdGltYXRvci5oICovLAog
CQkJCTVDRDI4NTgwMUU2QTYzNDMwMDk0RkRDOCAvKiBlcmxlX2VzdGltYXRvci5jYyAqLywKQEAg
LTEyNTYzLDEwICsxMjU2OSwxMCBAQAogCQkJCTQxMzFDMzZEMjM0Qjk1N0MwMDI4QTYxNSAvKiBm
dWxsYmFuZF9lcmxlX2VzdGltYXRvci5oICovLAogCQkJCTVDRDI4NTg3MUU2QTYzNDMwMDk0RkRD
OCAvKiBtYWluX2ZpbHRlcl91cGRhdGVfZ2Fpbi5jYyAqLywKIAkJCQk1Q0QyODU4ODFFNkE2MzQz
MDA5NEZEQzggLyogbWFpbl9maWx0ZXJfdXBkYXRlX2dhaW4uaCAqLywKLQkJCQk1Q0QyODU4OTFF
NkE2MzQzMDA5NEZEQzggLyogbWF0Y2hlZF9maWx0ZXJfbGFnX2FnZ3JlZ2F0b3IuY2MgKi8sCi0J
CQkJNUNEMjg1OEExRTZBNjM0MzAwOTRGREM4IC8qIG1hdGNoZWRfZmlsdGVyX2xhZ19hZ2dyZWdh
dG9yLmggKi8sCiAJCQkJNUNEMjg1OEIxRTZBNjM0MzAwOTRGREM4IC8qIG1hdGNoZWRfZmlsdGVy
LmNjICovLAogCQkJCTVDRDI4NThDMUU2QTYzNDMwMDk0RkRDOCAvKiBtYXRjaGVkX2ZpbHRlci5o
ICovLAorCQkJCTVDRDI4NTg5MUU2QTYzNDMwMDk0RkRDOCAvKiBtYXRjaGVkX2ZpbHRlcl9sYWdf
YWdncmVnYXRvci5jYyAqLywKKwkJCQk1Q0QyODU4QTFFNkE2MzQzMDA5NEZEQzggLyogbWF0Y2hl
ZF9maWx0ZXJfbGFnX2FnZ3JlZ2F0b3IuaCAqLywKIAkJCQk0MTMxQzM2MDIzNEI5NTdBMDAyOEE2
MTUgLyogbW92aW5nX2F2ZXJhZ2UuY2MgKi8sCiAJCQkJNDEzMUMzNkIyMzRCOTU3QzAwMjhBNjE1
IC8qIG1vdmluZ19hdmVyYWdlLmggKi8sCiAJCQkJNDE4OTM5RkIyNDJBNzUzQTAwN0ZEQzQxIC8q
IG5lYXJlbmRfZGV0ZWN0b3IuaCAqLywKQEAgLTEyNTc0LDEwICsxMjU4MCwxMCBAQAogCQkJCTQx
NDVFNEQ4MUVGOENDOUEwMEZDRjZFNiAvKiByZW5kZXJfYnVmZmVyLmggKi8sCiAJCQkJNUNEMjg1
OTExRTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9kZWxheV9idWZmZXIuY2MgKi8sCiAJCQkJNUNE
Mjg1OTIxRTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9kZWxheV9idWZmZXIuaCAqLywKLQkJCQk1
Q0QyODU5MzFFNkE2MzQzMDA5NEZEQzggLyogcmVuZGVyX2RlbGF5X2NvbnRyb2xsZXJfbWV0cmlj
cy5jYyAqLywKLQkJCQk1Q0QyODU5NDFFNkE2MzQzMDA5NEZEQzggLyogcmVuZGVyX2RlbGF5X2Nv
bnRyb2xsZXJfbWV0cmljcy5oICovLAogCQkJCTVDRDI4NTk1MUU2QTYzNDMwMDk0RkRDOCAvKiBy
ZW5kZXJfZGVsYXlfY29udHJvbGxlci5jYyAqLywKIAkJCQk1Q0QyODU5NjFFNkE2MzQzMDA5NEZE
QzggLyogcmVuZGVyX2RlbGF5X2NvbnRyb2xsZXIuaCAqLywKKwkJCQk1Q0QyODU5MzFFNkE2MzQz
MDA5NEZEQzggLyogcmVuZGVyX2RlbGF5X2NvbnRyb2xsZXJfbWV0cmljcy5jYyAqLywKKwkJCQk1
Q0QyODU5NDFFNkE2MzQzMDA5NEZEQzggLyogcmVuZGVyX2RlbGF5X2NvbnRyb2xsZXJfbWV0cmlj
cy5oICovLAogCQkJCTVDRDI4NTk3MUU2QTYzNDMwMDk0RkRDOCAvKiByZW5kZXJfc2lnbmFsX2Fu
YWx5emVyLmNjICovLAogCQkJCTVDRDI4NTk4MUU2QTYzNDMwMDk0RkRDOCAvKiByZW5kZXJfc2ln
bmFsX2FuYWx5emVyLmggKi8sCiAJCQkJNUNEMjg1OTkxRTZBNjM0MzAwOTRGREM4IC8qIHJlc2lk
dWFsX2VjaG9fZXN0aW1hdG9yLmNjICovLApAQCAtMTI1ODYsMTAgKzEyNTkyLDEwIEBACiAJCQkJ
NDEzMUMzNUEyMzRCOTU3OTAwMjhBNjE1IC8qIHJldmVyYl9kZWNheV9lc3RpbWF0b3IuaCAqLywK
IAkJCQk0MTMxQzM1NzIzNEI5NTc5MDAyOEE2MTUgLyogcmV2ZXJiX2ZyZXF1ZW5jeV9yZXNwb25z
ZS5jYyAqLywKIAkJCQk0MTMxQzM1NDIzNEI5NTc4MDAyOEE2MTUgLyogcmV2ZXJiX2ZyZXF1ZW5j
eV9yZXNwb25zZS5oICovLAotCQkJCTQxMzFDMzYzMjM0Qjk1N0IwMDI4QTYxNSAvKiByZXZlcmJf
bW9kZWxfZXN0aW1hdG9yLmNjICovLAotCQkJCTQxMzFDMzVCMjM0Qjk1NzkwMDI4QTYxNSAvKiBy
ZXZlcmJfbW9kZWxfZXN0aW1hdG9yLmggKi8sCiAJCQkJNDEzMUMzNjkyMzRCOTU3QzAwMjhBNjE1
IC8qIHJldmVyYl9tb2RlbC5jYyAqLywKIAkJCQk0MTMxQzM2MTIzNEI5NTdBMDAyOEE2MTUgLyog
cmV2ZXJiX21vZGVsLmggKi8sCisJCQkJNDEzMUMzNjMyMzRCOTU3QjAwMjhBNjE1IC8qIHJldmVy
Yl9tb2RlbF9lc3RpbWF0b3IuY2MgKi8sCisJCQkJNDEzMUMzNUIyMzRCOTU3OTAwMjhBNjE1IC8q
IHJldmVyYl9tb2RlbF9lc3RpbWF0b3IuaCAqLywKIAkJCQk1Q0QyODU5QjFFNkE2MzQzMDA5NEZE
QzggLyogc2hhZG93X2ZpbHRlcl91cGRhdGVfZ2Fpbi5jYyAqLywKIAkJCQk1Q0QyODU5QzFFNkE2
MzQzMDA5NEZEQzggLyogc2hhZG93X2ZpbHRlcl91cGRhdGVfZ2Fpbi5oICovLAogCQkJCTQxMzFD
MzUzMjM0Qjk1NzgwMDI4QTYxNSAvKiBzaWduYWxfZGVwZW5kZW50X2VybGVfZXN0aW1hdG9yLmNj
ICovLApAQCAtMTI2MDIsMTIgKzEyNjA4LDEyIEBACiAJCQkJNDEzMUMzNUQyMzRCOTU3QTAwMjhB
NjE1IC8qIHN1YmJhbmRfZXJsZV9lc3RpbWF0b3IuaCAqLywKIAkJCQk0MTg5MzlGQTI0MkE3NTNB
MDA3RkRDNDEgLyogc3ViYmFuZF9uZWFyZW5kX2RldGVjdG9yLmNjICovLAogCQkJCTQxODkzQTAx
MjQyQTc1M0IwMDdGREM0MSAvKiBzdWJiYW5kX25lYXJlbmRfZGV0ZWN0b3IuaCAqLywKLQkJCQk0
MTMxQzM2MjIzNEI5NTdBMDAyOEE2MTUgLyogc3VidHJhY3Rvcl9vdXRwdXRfYW5hbHl6ZXIuY2Mg
Ki8sCi0JCQkJNDEzMUMzNUYyMzRCOTU3QTAwMjhBNjE1IC8qIHN1YnRyYWN0b3Jfb3V0cHV0X2Fu
YWx5emVyLmggKi8sCi0JCQkJNDEzMUMzNzEyMzRCOTU3RDAwMjhBNjE1IC8qIHN1YnRyYWN0b3Jf
b3V0cHV0LmNjICovLAotCQkJCTVDRDI4NTlEMUU2QTYzNDMwMDk0RkRDOCAvKiBzdWJ0cmFjdG9y
X291dHB1dC5oICovLAogCQkJCTVDRDI4NTlFMUU2QTYzNDMwMDk0RkRDOCAvKiBzdWJ0cmFjdG9y
LmNjICovLAogCQkJCTVDRDI4NTlGMUU2QTYzNDMwMDk0RkRDOCAvKiBzdWJ0cmFjdG9yLmggKi8s
CisJCQkJNDEzMUMzNzEyMzRCOTU3RDAwMjhBNjE1IC8qIHN1YnRyYWN0b3Jfb3V0cHV0LmNjICov
LAorCQkJCTVDRDI4NTlEMUU2QTYzNDMwMDk0RkRDOCAvKiBzdWJ0cmFjdG9yX291dHB1dC5oICov
LAorCQkJCTQxMzFDMzYyMjM0Qjk1N0EwMDI4QTYxNSAvKiBzdWJ0cmFjdG9yX291dHB1dF9hbmFs
eXplci5jYyAqLywKKwkJCQk0MTMxQzM1RjIzNEI5NTdBMDAyOEE2MTUgLyogc3VidHJhY3Rvcl9v
dXRwdXRfYW5hbHl6ZXIuaCAqLywKIAkJCQk1Q0QyODVBMDFFNkE2MzQzMDA5NEZEQzggLyogc3Vw
cHJlc3Npb25fZmlsdGVyLmNjICovLAogCQkJCTVDRDI4NUExMUU2QTYzNDMwMDk0RkRDOCAvKiBz
dXBwcmVzc2lvbl9maWx0ZXIuaCAqLywKIAkJCQk1Q0QyODVBMjFFNkE2MzQzMDA5NEZEQzggLyog
c3VwcHJlc3Npb25fZ2Fpbi5jYyAqLywKQEAgLTEyNzExLDkgKzEyNzE3LDkgQEAKIAkJCQk1Q0RE
ODM5RTFFNDM5QTZGMDA2MjFFOTIgLyogaW50ZXJfZnJhbWVfZGVsYXkuY2MgKi8sCiAJCQkJNUNE
RDgzOUYxRTQzOUE2RjAwNjIxRTkyIC8qIGludGVyX2ZyYW1lX2RlbGF5LmggKi8sCiAJCQkJNUNE
RDgzQTAxRTQzOUE2RjAwNjIxRTkyIC8qIGludGVybmFsX2RlZmluZXMuaCAqLywKLQkJCQk1Q0RE
ODNBMTFFNDM5QTZGMDA2MjFFOTIgLyogaml0dGVyX2J1ZmZlcl9jb21tb24uaCAqLywKIAkJCQk1
Q0REODNBMjFFNDM5QTZGMDA2MjFFOTIgLyogaml0dGVyX2J1ZmZlci5jYyAqLywKIAkJCQk1Q0RE
ODNBMzFFNDM5QTZGMDA2MjFFOTIgLyogaml0dGVyX2J1ZmZlci5oICovLAorCQkJCTVDREQ4M0Ex
MUU0MzlBNkYwMDYyMUU5MiAvKiBqaXR0ZXJfYnVmZmVyX2NvbW1vbi5oICovLAogCQkJCTVDREQ4
M0E0MUU0MzlBNkYwMDYyMUU5MiAvKiBqaXR0ZXJfZXN0aW1hdG9yLmNjICovLAogCQkJCTVDREQ4
M0E1MUU0MzlBNkYwMDYyMUU5MiAvKiBqaXR0ZXJfZXN0aW1hdG9yLmggKi8sCiAJCQkJNDEzMUM0
QkIyMzRDODQwNTAwMjhBNjE1IC8qIGxvc3Nfbm90aWZpY2F0aW9uX2NvbnRyb2xsZXIuY2MgKi8s
CkBAIC0xMjcyMiwxMCArMTI3MjgsMTAgQEAKIAkJCQk1Q0REODNBNzFFNDM5QTZGMDA2MjFFOTIg
LyogbWVkaWFfb3B0X3V0aWwuaCAqLywKIAkJCQk1Q0REODNBQjFFNDM5QTZGMDA2MjFFOTIgLyog
bmFja19tb2R1bGUuY2MgKi8sCiAJCQkJNUNERDgzQUMxRTQzOUE2RjAwNjIxRTkyIC8qIG5hY2tf
bW9kdWxlLmggKi8sCi0JCQkJNUNERDgzQUQxRTQzOUE2RjAwNjIxRTkyIC8qIHBhY2tldF9idWZm
ZXIuY2MgKi8sCi0JCQkJNUNERDgzQUUxRTQzOUE2RjAwNjIxRTkyIC8qIHBhY2tldF9idWZmZXIu
aCAqLywKIAkJCQk1Q0REODNBRjFFNDM5QTZGMDA2MjFFOTIgLyogcGFja2V0LmNjICovLAogCQkJ
CTVDREQ4M0IwMUU0MzlBNkYwMDYyMUU5MiAvKiBwYWNrZXQuaCAqLywKKwkJCQk1Q0REODNBRDFF
NDM5QTZGMDA2MjFFOTIgLyogcGFja2V0X2J1ZmZlci5jYyAqLywKKwkJCQk1Q0REODNBRTFFNDM5
QTZGMDA2MjFFOTIgLyogcGFja2V0X2J1ZmZlci5oICovLAogCQkJCTVDREQ4M0I1MUU0MzlBNkYw
MDYyMUU5MiAvKiByZWNlaXZlci5jYyAqLywKIAkJCQk1Q0REODNCNjFFNDM5QTZGMDA2MjFFOTIg
LyogcmVjZWl2ZXIuaCAqLywKIAkJCQk1Q0REODNCNzFFNDM5QTZGMDA2MjFFOTIgLyogcnRwX2Zy
YW1lX3JlZmVyZW5jZV9maW5kZXIuY2MgKi8sCkBAIC0xMzAxNCwxMCArMTMwMjAsMTAgQEAKIAkJ
CQk1Q0REODU3MjFFNDNCNUMwMDA2MjFFOTIgLyogcmVwb3J0X2Jsb2NrX3N0YXRzLmggKi8sCiAJ
CQkJNUNERDg1NzUxRTQzQjVDMDAwNjIxRTkyIC8qIHJ0cF9zdHJlYW1zX3N5bmNocm9uaXplci5j
YyAqLywKIAkJCQk1Q0REODU3NjFFNDNCNUMwMDA2MjFFOTIgLyogcnRwX3N0cmVhbXNfc3luY2hy
b25pemVyLmggKi8sCi0JCQkJNDE4OTM5OUYyNDJBNzJFMzAwN0ZEQzQxIC8qIHJ0cF92aWRlb19z
dHJlYW1fcmVjZWl2ZXJfZnJhbWVfdHJhbnNmb3JtZXJfZGVsZWdhdGUuY2MgKi8sCi0JCQkJNDE4
OTM5OUQyNDJBNzJFMzAwN0ZEQzQxIC8qIHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXJfZnJhbWVf
dHJhbnNmb3JtZXJfZGVsZWdhdGUuaCAqLywKIAkJCQk0MTMwOTFGMjFFRjhDRjkxMDA3NTdDNTUg
LyogcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5jYyAqLywKIAkJCQk0MTMwOTFGMTFFRjhDRjkx
MDA3NTdDNTUgLyogcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oICovLAorCQkJCTQxODkzOTlG
MjQyQTcyRTMwMDdGREM0MSAvKiBydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyX2ZyYW1lX3RyYW5z
Zm9ybWVyX2RlbGVnYXRlLmNjICovLAorCQkJCTQxODkzOTlEMjQyQTcyRTMwMDdGREM0MSAvKiBy
dHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyX2ZyYW1lX3RyYW5zZm9ybWVyX2RlbGVnYXRlLmggKi8s
CiAJCQkJNUNERDg1NzkxRTQzQjVDMDAwNjIxRTkyIC8qIHNlbmRfZGVsYXlfc3RhdHMuY2MgKi8s
CiAJCQkJNUNERDg1N0ExRTQzQjVDMDAwNjIxRTkyIC8qIHNlbmRfZGVsYXlfc3RhdHMuaCAqLywK
IAkJCQk1Q0REODU3QzFFNDNCNUMwMDA2MjFFOTIgLyogc2VuZF9zdGF0aXN0aWNzX3Byb3h5LmNj
ICovLApAQCAtMTMwMzIsMTYgKzEzMDM4LDE2IEBACiAJCQkJNDEwMkY2QzUyMTI3MzNCNjAwNkFF
OEQ3IC8qIHZpZGVvX3F1YWxpdHlfb2JzZXJ2ZXIuaCAqLywKIAkJCQk1Q0REODU4RDFFNDNCNUMw
MDA2MjFFOTIgLyogdmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MgKi8sCiAJCQkJNUNERDg1OEUxRTQz
QjVDMDAwNjIxRTkyIC8qIHZpZGVvX3JlY2VpdmVfc3RyZWFtLmggKi8sCi0JCQkJNDEwMkY2QzIy
MTI3MzNCNjAwNkFFOEQ3IC8qIHZpZGVvX3NlbmRfc3RyZWFtX2ltcGwuY2MgKi8sCi0JCQkJNDEw
MkY2QkUyMTI3MzNCNTAwNkFFOEQ3IC8qIHZpZGVvX3NlbmRfc3RyZWFtX2ltcGwuaCAqLywKIAkJ
CQk1Q0REODU5MDFFNDNCNUMwMDA2MjFFOTIgLyogdmlkZW9fc2VuZF9zdHJlYW0uY2MgKi8sCiAJ
CQkJNUNERDg1OTExRTQzQjVDMDAwNjIxRTkyIC8qIHZpZGVvX3NlbmRfc3RyZWFtLmggKi8sCisJ
CQkJNDEwMkY2QzIyMTI3MzNCNjAwNkFFOEQ3IC8qIHZpZGVvX3NlbmRfc3RyZWFtX2ltcGwuY2Mg
Ki8sCisJCQkJNDEwMkY2QkUyMTI3MzNCNTAwNkFFOEQ3IC8qIHZpZGVvX3NlbmRfc3RyZWFtX2lt
cGwuaCAqLywKIAkJCQk0MTg5Mzk5RTI0MkE3MkUzMDA3RkRDNDEgLyogdmlkZW9fc291cmNlX3Np
bmtfY29udHJvbGxlci5jYyAqLywKIAkJCQk0MTg5Mzk5QzI0MkE3MkUzMDA3RkRDNDEgLyogdmlk
ZW9fc291cmNlX3NpbmtfY29udHJvbGxlci5oICovLAotCQkJCTQxMDJGNkMxMjEyNzMzQjYwMDZB
RThENyAvKiB2aWRlb19zdHJlYW1fZGVjb2Rlcl9pbXBsLmNjICovLAotCQkJCTQxMDJGNkM0MjEy
NzMzQjYwMDZBRThENyAvKiB2aWRlb19zdHJlYW1fZGVjb2Rlcl9pbXBsLmggKi8sCiAJCQkJNUNE
RDg1OTIxRTQzQjVDMDAwNjIxRTkyIC8qIHZpZGVvX3N0cmVhbV9kZWNvZGVyLmNjICovLAogCQkJ
CTVDREQ4NTkzMUU0M0I1QzAwMDYyMUU5MiAvKiB2aWRlb19zdHJlYW1fZGVjb2Rlci5oICovLAor
CQkJCTQxMDJGNkMxMjEyNzMzQjYwMDZBRThENyAvKiB2aWRlb19zdHJlYW1fZGVjb2Rlcl9pbXBs
LmNjICovLAorCQkJCTQxMDJGNkM0MjEyNzMzQjYwMDZBRThENyAvKiB2aWRlb19zdHJlYW1fZGVj
b2Rlcl9pbXBsLmggKi8sCiAJCQkJNDE5QzgzMUUxRkUyNDJFNTAwNDBDMzBGIC8qIHZpZGVvX3N0
cmVhbV9lbmNvZGVyLmNjICovLAogCQkJCTQxMDJGNkMwMjEyNzMzQjYwMDZBRThENyAvKiB2aWRl
b19zdHJlYW1fZW5jb2Rlci5oICovLAogCQkJKTsKQEAgLTEzMzYzLDEwICsxMzM2OSwxMCBAQAog
CQkJCTVDREQ4ODA2MUU0M0JFM0MwMDYyMUU5MiAvKiBmbGV4ZmVjX2hlYWRlcl9yZWFkZXJfd3Jp
dGVyLmggKi8sCiAJCQkJNUNERDg4MEExRTQzQkUzQzAwNjIxRTkyIC8qIGZsZXhmZWNfcmVjZWl2
ZXIuY2MgKi8sCiAJCQkJNUNERDg4MEMxRTQzQkUzQzAwNjIxRTkyIC8qIGZsZXhmZWNfc2VuZGVy
LmNjICovLAotCQkJCTVDREQ4ODBEMUU0M0JFM0MwMDYyMUU5MiAvKiBmb3J3YXJkX2Vycm9yX2Nv
cnJlY3Rpb25faW50ZXJuYWwuY2MgKi8sCi0JCQkJNUNERDg4MEUxRTQzQkUzQzAwNjIxRTkyIC8q
IGZvcndhcmRfZXJyb3JfY29ycmVjdGlvbl9pbnRlcm5hbC5oICovLAogCQkJCTVDREQ4ODBGMUU0
M0JFM0MwMDYyMUU5MiAvKiBmb3J3YXJkX2Vycm9yX2NvcnJlY3Rpb24uY2MgKi8sCiAJCQkJNUNE
RDg4MTAxRTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3JfY29ycmVjdGlvbi5oICovLAor
CQkJCTVDREQ4ODBEMUU0M0JFM0MwMDYyMUU5MiAvKiBmb3J3YXJkX2Vycm9yX2NvcnJlY3Rpb25f
aW50ZXJuYWwuY2MgKi8sCisJCQkJNUNERDg4MEUxRTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRf
ZXJyb3JfY29ycmVjdGlvbl9pbnRlcm5hbC5oICovLAogCQkJCTQxMDA5MUUyMjQyRTJBQTIwMEM1
RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgKi8sCiAJCQkJNDEwMDkxRTMyNDJFMkFBMjAwQzVF
REEyIC8qIGgyNjVfc3BzX3BhcnNlci5oICovLAogCQkJCTVDREQ4ODE1MUU0M0JFM0MwMDYyMUU5
MiAvKiBwYWNrZXRfbG9zc19zdGF0cy5jYyAqLywKQEAgLTEzMzgyLDEyICsxMzM4OCwxMiBAQAog
CQkJCTVDREQ4ODI1MUU0M0JFM0MwMDYyMUU5MiAvKiBydGNwX3JlY2VpdmVyLmggKi8sCiAJCQkJ
NUNERDg4MjcxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0Y3Bfc2VuZGVyLmNjICovLAogCQkJCTVDREQ4
ODI4MUU0M0JFM0MwMDYyMUU5MiAvKiBydGNwX3NlbmRlci5oICovLAorCQkJCTQxOUM4MkY2MUZF
MjBFRkIwMDQwQzMwRiAvKiBydGNwX3RyYW5zY2VpdmVyLmNjICovLAorCQkJCTQxOUM4MkZBMUZF
MjBFRkQwMDQwQzMwRiAvKiBydGNwX3RyYW5zY2VpdmVyLmggKi8sCiAJCQkJNDE5QzgyRjkxRkUy
MEVGRDAwNDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXJfY29uZmlnLmNjICovLAogCQkJCTQxOUM4
MkY4MUZFMjBFRkMwMDQwQzMwRiAvKiBydGNwX3RyYW5zY2VpdmVyX2NvbmZpZy5oICovLAogCQkJ
CTQxOUM4MkY3MUZFMjBFRkMwMDQwQzMwRiAvKiBydGNwX3RyYW5zY2VpdmVyX2ltcGwuY2MgKi8s
CiAJCQkJNDE5QzgyRkMxRkUyMEVGRTAwNDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXJfaW1wbC5o
ICovLAotCQkJCTQxOUM4MkY2MUZFMjBFRkIwMDQwQzMwRiAvKiBydGNwX3RyYW5zY2VpdmVyLmNj
ICovLAotCQkJCTQxOUM4MkZBMUZFMjBFRkQwMDQwQzMwRiAvKiBydGNwX3RyYW5zY2VpdmVyLmgg
Ki8sCiAJCQkJNDEzMUM0QzkyMzRDODRBMTAwMjhBNjE1IC8qIHJ0cF9kZXBlbmRlbmN5X2Rlc2Ny
aXB0b3JfZXh0ZW5zaW9uLmNjICovLAogCQkJCTQxMzFDNENBMjM0Qzg0QTEwMDI4QTYxNSAvKiBy
dHBfZGVwZW5kZW5jeV9kZXNjcmlwdG9yX2V4dGVuc2lvbi5oICovLAogCQkJCTQxODkzOTExMjQy
QTcwNEUwMDdGREM0MSAvKiBydHBfZGVwZW5kZW5jeV9kZXNjcmlwdG9yX3JlYWRlci5jYyAqLywK
QEAgLTEzMzk2LDYgKzEzNDAyLDggQEAKIAkJCQk0MTMxQzREMDIzNEM4NEEyMDAyOEE2MTUgLyog
cnRwX2RlcGVuZGVuY3lfZGVzY3JpcHRvcl93cml0ZXIuaCAqLywKIAkJCQk0MTg5MzkwNjI0MkE3
MDRCMDA3RkRDNDEgLyogcnRwX2Rlc2NyaXB0b3JfYXV0aGVudGljYXRpb24uY2MgKi8sCiAJCQkJ
NDE4OTM5MDMyNDJBNzA0QTAwN0ZEQzQxIC8qIHJ0cF9kZXNjcmlwdG9yX2F1dGhlbnRpY2F0aW9u
LmggKi8sCisJCQkJNUNERDg4M0ExRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXQuY2MgKi8s
CisJCQkJNUNERDg4M0IxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXQuaCAqLywKIAkJCQk1
Q0REODgyRTFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF9oMjY0LmNjICovLAogCQkJCTVD
REQ4ODJGMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0X2gyNjQuaCAqLywKIAkJCQk0MTAw
OTFFMDI0MkUyQUExMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmNjICovLApAQCAtMTM0MDYs
MzggKzEzNDE0LDM2IEBACiAJCQkJNUNERDg4MzYxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3Jt
YXRfdnA4LmggKi8sCiAJCQkJNUNERDg4MzgxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRf
dnA5LmNjICovLAogCQkJCTVDREQ4ODM5MUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0X3Zw
OS5oICovLAotCQkJCTVDREQ4ODNBMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0LmNjICov
LAotCQkJCTVDREQ4ODNCMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0LmggKi8sCi0JCQkJ
NDE5MjQxQUYyMTI3NTkwMjAwNjM0RkNGIC8qIHJ0cF9nZW5lcmljX2ZyYW1lX2Rlc2NyaXB0b3Jf
ZXh0ZW5zaW9uLmNjICovLAotCQkJCTQxMDJGNkU4MjEyNzM0NUYwMDZBRThENyAvKiBydHBfZ2Vu
ZXJpY19mcmFtZV9kZXNjcmlwdG9yX2V4dGVuc2lvbi5oICovLAogCQkJCTQxMDJGNkU1MjEyNzM0
NUUwMDZBRThENyAvKiBydHBfZ2VuZXJpY19mcmFtZV9kZXNjcmlwdG9yLmNjICovLAogCQkJCTQx
MDJGNkU2MjEyNzM0NUYwMDZBRThENyAvKiBydHBfZ2VuZXJpY19mcmFtZV9kZXNjcmlwdG9yLmgg
Ki8sCisJCQkJNDE5MjQxQUYyMTI3NTkwMjAwNjM0RkNGIC8qIHJ0cF9nZW5lcmljX2ZyYW1lX2Rl
c2NyaXB0b3JfZXh0ZW5zaW9uLmNjICovLAorCQkJCTQxMDJGNkU4MjEyNzM0NUYwMDZBRThENyAv
KiBydHBfZ2VuZXJpY19mcmFtZV9kZXNjcmlwdG9yX2V4dGVuc2lvbi5oICovLAogCQkJCTQxNDVF
NERCMUVGOENDRUUwMEZDRjZFNiAvKiBydHBfaGVhZGVyX2V4dGVuc2lvbl9tYXAuY2MgKi8sCiAJ
CQkJNDEzRTY3N0IyMTY5ODZBRDAwRUYzN0VEIC8qIHJ0cF9oZWFkZXJfZXh0ZW5zaW9uX3NpemUu
Y2MgKi8sCiAJCQkJNDEzRTY3N0MyMTY5ODZBRTAwRUYzN0VEIC8qIHJ0cF9oZWFkZXJfZXh0ZW5z
aW9uX3NpemUuaCAqLywKIAkJCQk1Q0REODgzRjFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2hlYWRl
cl9leHRlbnNpb25zLmNjICovLAogCQkJCTVDREQ4ODQwMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBf
aGVhZGVyX2V4dGVuc2lvbnMuaCAqLywKKwkJCQk1Q0REODg0ODFFNDNCRTNDMDA2MjFFOTIgLyog
cnRwX3BhY2tldC5jYyAqLywKKwkJCQk1Q0REODg0OTFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX3Bh
Y2tldC5oICovLAogCQkJCTVDREQ4ODQzMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfcGFja2V0X2hp
c3RvcnkuY2MgKi8sCiAJCQkJNUNERDg4NDQxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9wYWNrZXRf
aGlzdG9yeS5oICovLAogCQkJCTQxOUM4MkZFMUZFMjBGMDEwMDQwQzMwRiAvKiBydHBfcGFja2V0
X3JlY2VpdmVkLmNjICovLAogCQkJCTVDREQ4ODQ1MUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfcGFj
a2V0X3JlY2VpdmVkLmggKi8sCiAJCQkJNDEwMkY2RTkyMTI3MzQ1RjAwNkFFOEQ3IC8qIHJ0cF9w
YWNrZXRfdG9fc2VuZC5jYyAqLywKIAkJCQk1Q0REODg0NjFFNDNCRTNDMDA2MjFFOTIgLyogcnRw
X3BhY2tldF90b19zZW5kLmggKi8sCi0JCQkJNUNERDg4NDgxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0
cF9wYWNrZXQuY2MgKi8sCi0JCQkJNUNERDg4NDkxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9wYWNr
ZXQuaCAqLywKIAkJCQk1Q0REODg1NDFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX3J0Y3BfY29uZmln
LmggKi8sCiAJCQkJNUNERDg4NTYxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9ydGNwX2ltcGwuY2Mg
Ki8sCiAJCQkJNUNERDg4NTcxRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9ydGNwX2ltcGwuaCAqLywK
KwkJCQk1Q0REODg1RDFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX3NlbmRlci5jYyAqLywKKwkJCQk1
Q0REODg1RTFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX3NlbmRlci5oICovLAogCQkJCTVDREQ4ODU4
MUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfc2VuZGVyX2F1ZGlvLmNjICovLAogCQkJCTVDREQ4ODU5
MUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfc2VuZGVyX2F1ZGlvLmggKi8sCiAJCQkJNDE4OTM4RkIy
NDJBNzA0OTAwN0ZEQzQxIC8qIHJ0cF9zZW5kZXJfZWdyZXNzLmNjICovLAogCQkJCTQxODkzOTAw
MjQyQTcwNEEwMDdGREM0MSAvKiBydHBfc2VuZGVyX2VncmVzcy5oICovLAotCQkJCTQxODkzOEZG
MjQyQTcwNDkwMDdGREM0MSAvKiBydHBfc2VuZGVyX3ZpZGVvX2ZyYW1lX3RyYW5zZm9ybWVyX2Rl
bGVnYXRlLmNjICovLAotCQkJCTQxODkzOEZBMjQyQTcwNDgwMDdGREM0MSAvKiBydHBfc2VuZGVy
X3ZpZGVvX2ZyYW1lX3RyYW5zZm9ybWVyX2RlbGVnYXRlLmggKi8sCiAJCQkJNUNERDg4NUIxRTQz
QkUzQzAwNjIxRTkyIC8qIHJ0cF9zZW5kZXJfdmlkZW8uY2MgKi8sCiAJCQkJNUNERDg4NUMxRTQz
QkUzQzAwNjIxRTkyIC8qIHJ0cF9zZW5kZXJfdmlkZW8uaCAqLywKLQkJCQk1Q0REODg1RDFFNDNC
RTNDMDA2MjFFOTIgLyogcnRwX3NlbmRlci5jYyAqLywKLQkJCQk1Q0REODg1RTFFNDNCRTNDMDA2
MjFFOTIgLyogcnRwX3NlbmRlci5oICovLAorCQkJCTQxODkzOEZGMjQyQTcwNDkwMDdGREM0MSAv
KiBydHBfc2VuZGVyX3ZpZGVvX2ZyYW1lX3RyYW5zZm9ybWVyX2RlbGVnYXRlLmNjICovLAorCQkJ
CTQxODkzOEZBMjQyQTcwNDgwMDdGREM0MSAvKiBydHBfc2VuZGVyX3ZpZGVvX2ZyYW1lX3RyYW5z
Zm9ybWVyX2RlbGVnYXRlLmggKi8sCiAJCQkJNDEzMUM0RDEyMzRDODRBMjAwMjhBNjE1IC8qIHJ0
cF9zZXF1ZW5jZV9udW1iZXJfbWFwLmNjICovLAogCQkJCTQxMzFDNEQyMjM0Qzg0QTMwMDI4QTYx
NSAvKiBydHBfc2VxdWVuY2VfbnVtYmVyX21hcC5oICovLAogCQkJCTVDREQ4ODVGMUU0M0JFM0Mw
MDYyMUU5MiAvKiBydHBfdXRpbGl0eS5jYyAqLywKQEAgLTEzNDU5LDYgKzEzNDY1LDcgQEAKIAkJ
CQk1Q0REODg2RTFFNDNCRTNDMDA2MjFFOTIgLyogdWxwZmVjX3JlY2VpdmVyX2ltcGwuY2MgKi8s
CiAJCQkJNUNERDg4NkYxRTQzQkUzQzAwNjIxRTkyIC8qIHVscGZlY19yZWNlaXZlcl9pbXBsLmgg
Ki8sCiAJCQkJNDE4OTM5MDEyNDJBNzA0QTAwN0ZEQzQxIC8qIHZpZGVvX2ZlY19nZW5lcmF0b3Iu
aCAqLywKKwkJCQk0MTg5MzkwRDI0MkE3MDRDMDA3RkRDNDEgLyogdmlkZW9fcnRwX2RlcGFja2V0
aXplci5oICovLAogCQkJCTQxODkzOTA1MjQyQTcwNEIwMDdGREM0MSAvKiB2aWRlb19ydHBfZGVw
YWNrZXRpemVyX2dlbmVyaWMuY2MgKi8sCiAJCQkJNDE4OTM5MEYyNDJBNzA0RDAwN0ZEQzQxIC8q
IHZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfZ2VuZXJpYy5oICovLAogCQkJCTQxODkzOTEwMjQyQTcw
NEQwMDdGREM0MSAvKiB2aWRlb19ydHBfZGVwYWNrZXRpemVyX2gyNjQuY2MgKi8sCkBAIC0xMzQ2
Nyw3ICsxMzQ3NCw2IEBACiAJCQkJNDE4OTM5MDcyNDJBNzA0QjAwN0ZEQzQxIC8qIHZpZGVvX3J0
cF9kZXBhY2tldGl6ZXJfcmF3LmggKi8sCiAJCQkJNDE4OTM5MEEyNDJBNzA0QzAwN0ZEQzQxIC8q
IHZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfdnA4LmNjICovLAogCQkJCTQxODkzOTBCMjQyQTcwNEMw
MDdGREM0MSAvKiB2aWRlb19ydHBfZGVwYWNrZXRpemVyX3ZwOC5oICovLAotCQkJCTQxODkzOTBE
MjQyQTcwNEMwMDdGREM0MSAvKiB2aWRlb19ydHBfZGVwYWNrZXRpemVyLmggKi8sCiAJCQkpOwog
CQkJbmFtZSA9IHNvdXJjZTsKIAkJCXBhdGggPSBydHBfcnRjcC9zb3VyY2U7CkBAIC0xMzU2NCwx
MCArMTM1NzAsMTAgQEAKIAkJCQk1Q0REODlCODFFNDNCRkIzMDA2MjFFOTIgLyogZHRtZl9idWZm
ZXIuaCAqLywKIAkJCQk1Q0REODlCQTFFNDNCRkIzMDA2MjFFOTIgLyogZHRtZl90b25lX2dlbmVy
YXRvci5jYyAqLywKIAkJCQk1Q0REODlCQjFFNDNCRkIzMDA2MjFFOTIgLyogZHRtZl90b25lX2dl
bmVyYXRvci5oICovLAotCQkJCTQxMDJGNkFDMjEyNzMyRTYwMDZBRThENyAvKiBleHBhbmRfdW1h
X2xvZ2dlci5jYyAqLywKLQkJCQk0MTAyRjZBRDIxMjczMkU3MDA2QUU4RDcgLyogZXhwYW5kX3Vt
YV9sb2dnZXIuaCAqLywKIAkJCQk1Q0REODlCRDFFNDNCRkIzMDA2MjFFOTIgLyogZXhwYW5kLmNj
ICovLAogCQkJCTVDREQ4OUJFMUU0M0JGQjMwMDYyMUU5MiAvKiBleHBhbmQuaCAqLywKKwkJCQk0
MTAyRjZBQzIxMjczMkU2MDA2QUU4RDcgLyogZXhwYW5kX3VtYV9sb2dnZXIuY2MgKi8sCisJCQkJ
NDEwMkY2QUQyMTI3MzJFNzAwNkFFOEQ3IC8qIGV4cGFuZF91bWFfbG9nZ2VyLmggKi8sCiAJCQkJ
NDEzMUM0RjQyMzRDODY3QjAwMjhBNjE1IC8qIGhpc3RvZ3JhbS5jYyAqLywKIAkJCQk0MTMxQzRG
NTIzNEM4NjdCMDAyOEE2MTUgLyogaGlzdG9ncmFtLmggKi8sCiAJCQkJNUNERDg5QzExRTQzQkZC
MzAwNjIxRTkyIC8qIG1lcmdlLmNjICovLApAQCAtMTM1NzgsMTAgKzEzNTg0LDEwIEBACiAJCQkJ
NUNERDg5Q0ExRTQzQkZCMzAwNjIxRTkyIC8qIG5ldGVxX2ltcGwuaCAqLywKIAkJCQk1Q0REODlE
MzFFNDNCRkIzMDA2MjFFOTIgLyogbm9ybWFsLmNjICovLAogCQkJCTVDREQ4OUQ0MUU0M0JGQjMw
MDYyMUU5MiAvKiBub3JtYWwuaCAqLywKLQkJCQk1Q0REODlENzFFNDNCRkIzMDA2MjFFOTIgLyog
cGFja2V0X2J1ZmZlci5jYyAqLywKLQkJCQk1Q0REODlEODFFNDNCRkIzMDA2MjFFOTIgLyogcGFj
a2V0X2J1ZmZlci5oICovLAogCQkJCTVDREQ4OUQ5MUU0M0JGQjMwMDYyMUU5MiAvKiBwYWNrZXQu
Y2MgKi8sCiAJCQkJNUNERDg5REExRTQzQkZCMzAwNjIxRTkyIC8qIHBhY2tldC5oICovLAorCQkJ
CTVDREQ4OUQ3MUU0M0JGQjMwMDYyMUU5MiAvKiBwYWNrZXRfYnVmZmVyLmNjICovLAorCQkJCTVD
REQ4OUQ4MUU0M0JGQjMwMDYyMUU5MiAvKiBwYWNrZXRfYnVmZmVyLmggKi8sCiAJCQkJNUNERDg5
REMxRTQzQkZCMzAwNjIxRTkyIC8qIHBvc3RfZGVjb2RlX3ZhZC5jYyAqLywKIAkJCQk1Q0REODlE
RDFFNDNCRkIzMDA2MjFFOTIgLyogcG9zdF9kZWNvZGVfdmFkLmggKi8sCiAJCQkJNUNERDg5REUx
RTQzQkZCMzAwNjIxRTkyIC8qIHByZWVtcHRpdmVfZXhwYW5kLmNjICovLApAQCAtMTM4NDAsNyAr
MTM4NDYsNiBAQAogCQk1Q0REOEM1MjFFNDNDNUY3MDA2MjFFOTIgLyogb3B1cyAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNDE4OTM4RjcyNDJBNkY5QTAw
N0ZEQzQxIC8qIG9wdXNfaW50ZXJmYWNlLmNjICovLAogCQkJCTQxMzFDM0I5MjM0Qjk3QjMwMDI4
QTYxNSAvKiBhdWRpb19jb2Rlcl9vcHVzX2NvbW1vbi5jYyAqLywKIAkJCQk0MTMxQzNCQTIzNEI5
N0IzMDAyOEE2MTUgLyogYXVkaW9fY29kZXJfb3B1c19jb21tb24uaCAqLywKIAkJCQk0MTMxQzNC
RDIzNEI5N0I0MDAyOEE2MTUgLyogYXVkaW9fZGVjb2Rlcl9tdWx0aV9jaGFubmVsX29wdXNfaW1w
bC5jYyAqLywKQEAgLTEzODUyLDYgKzEzODU3LDcgQEAKIAkJCQk1Q0REOEM1NjFFNDNDNjA5MDA2
MjFFOTIgLyogYXVkaW9fZW5jb2Rlcl9vcHVzLmNjICovLAogCQkJCTVDREQ4QzU3MUU0M0M2MDkw
MDYyMUU5MiAvKiBhdWRpb19lbmNvZGVyX29wdXMuaCAqLywKIAkJCQk1Q0REOEM1OTFFNDNDNjA5
MDA2MjFFOTIgLyogb3B1c19pbnN0LmggKi8sCisJCQkJNDE4OTM4RjcyNDJBNkY5QTAwN0ZEQzQx
IC8qIG9wdXNfaW50ZXJmYWNlLmNjICovLAogCQkJCTVDREQ4QzVCMUU0M0M2MDkwMDYyMUU5MiAv
KiBvcHVzX2ludGVyZmFjZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBvcHVzOwpAQCAtMTQwNzQs
MTIgKzE0MDgwLDEyIEBACiAJCTVDREQ4RTI0MUU0M0M3REMwMDYyMUU5MiAvKiB4ODYgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTVDREQ4RTI1MUU0M0M3
RUMwMDYyMUU5MiAvKiBtYWluX3NzZS5oICovLAogCQkJCTQxODkzOEJEMjQyQTNEMzgwMDdGREM0
MSAvKiBOU1FfZGVsX2RlY19zc2U0XzEuYyAqLywKIAkJCQk0MTg5MzhCQzI0MkEzRDM4MDA3RkRD
NDEgLyogTlNRX3NzZTRfMS5jICovLAorCQkJCTVDNUY0MDhGMUU5NzhGRDIwMEQ5NDI3OSAvKiBT
aWdQcm9jX0ZJWF9zc2UuaCAqLywKIAkJCQk0MTg5MzhCQjI0MkEzRDM4MDA3RkRDNDEgLyogVkFE
X3NzZTRfMS5jICovLAogCQkJCTQxODkzOEJBMjQyQTNEMzcwMDdGREM0MSAvKiBWUV9XTWF0X0VD
X3NzZTRfMS5jICovLAotCQkJCTVDREQ4RTI1MUU0M0M3RUMwMDYyMUU5MiAvKiBtYWluX3NzZS5o
ICovLAotCQkJCTVDNUY0MDhGMUU5NzhGRDIwMEQ5NDI3OSAvKiBTaWdQcm9jX0ZJWF9zc2UuaCAq
LywKIAkJCQk1Q0REOEUyQjFFNDNDN0VDMDA2MjFFOTIgLyogeDg2X3NpbGtfbWFwLmMgKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IHg4NjsKQEAgLTE0NjM5LDEzICsxNDY0NSwxMiBAQAogCQkJaXNhID0g
UEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3Owog
CQkJZmlsZXMgPSAoCi0JCQkJNDEwMDkxQ0YyNDJDRkQ2NTAwQzVFREEyIC8qIGludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNDc1QTFFNDJBQUY1MDAyNjUxQzggLyogYXNuMV9sb2Ns
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNDY3NTFFNDJBQTNDMDAyNjUxQzggLyogY2hhcm1h
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjQ3REQxRTQyQzAyOTAwMjY1MUM4IC8qIGNvbmZf
ZGVmLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNDY0OTFFNDJBQTM0MDAyNjUxQzggLyogZXh0
X2RhdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkxQ0YyNDJDRkQ2NTAwQzVFREEyIC8qIGlu
dGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzOTFCMzFFRkM0NTRGMDBDNDUxNkEgLyog
aW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOEM5MjQyQTQ3N0QwMDdGREM0MSAv
KiBSVENWaWRlb0RlY29kZXJIMjY0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzOTE5MzFFRkM0
NEVCMDBDNDUxNkEgLyogaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRUE1M0FEMUVG
QzJDNEQwMDJGRjA0QyAvKiBpbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBMzkxQzYx
RUZDNDY1NjAwQzQ1MTZBIC8qIGludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTE0NjcwLDYg
KzE0Njc1LDcgQEAKIAkJCQk0MUVBNTNDRTFFRkMyQzhCMDAyRkYwNEMgLyogcDI1Ni14ODZfNjQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDNEI0NjRDMUU0MkFBMzQwMDI2NTFDOCAvKiBwY3lfaW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUVBNTQwRjFFRkMyRDFCMDAyRkYwNEMgLyogcnNhel9l
eHAuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOEM5MjQyQTQ3N0QwMDdGREM0MSAvKiBSVENW
aWRlb0RlY29kZXJIMjY0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUJDRTc1MzIxNEM4MUE4MDBB
NzQ4RjEgLyogVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
NEI0NjdGMUU0MkFBM0MwMDI2NTFDOCAvKiB2cG1faW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CkBAIC0xNDY4MywxNCArMTQ2ODksMTUgQEAKIAkJCQk1Q0REOEI2QjFFNDNDMkI1MDA2MjFFOTIg
LyogYWJzX3F1YW50X2xvb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNEQ5MjM0Qzg0QTMw
MDI4QTYxNSAvKiBhYnNvbHV0ZV9jYXB0dXJlX3RpbWVfcmVjZWl2ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMzFDNERBMjM0Qzg0QTMwMDI4QTYxNSAvKiBhYnNvbHV0ZV9jYXB0dXJlX3RpbWVf
c2VuZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzhFMjI0MkE2OUNDMDA3RkRDNDEgLyog
b3ZlcnVzZV9mcmFtZV9kZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5RjkxRTQz
QkZCMzAwNjIxRTkyIC8qIGFjY2VsZXJhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTAyQ0E2
MjEyNzM1MkQwMEMyN0NENiAvKiBhY2tub3dsZWRnZWRfYml0cmF0ZV9lc3RpbWF0b3IuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxODkzOEY2MjQyQTZCMTcwMDdGREM0MSAvKiBhY2tub3dsZWRnZWRf
Yml0cmF0ZV9lc3RpbWF0b3JfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODUw
QTFFNDNCMUVBMDA2MjFFOTIgLyogYWNtX3JlY2VpdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTg5M0E0NTI0MkE3NzRGMDA3RkRDNDEgLyogYWNtX3JlbWl4aW5nLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REODUwQzFFNDNCMUVBMDA2MjFFOTIgLyogYWNtX3Jlc2FtcGxlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDE4OTM4REUyNDJBNjlDQzAwN0ZEQzQxIC8qIGFkYXB0YXRpb25fY291bnRl
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFCRjk5MjM0Qjg4QTYwMDI4QTYxNSAvKiBhZGFw
dGVkX3ZpZGVvX3RyYWNrX3NvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2RDNCREMyMTI3
MzFDMjAwNzc1RjA5IC8qIGFkYXB0aXZlX2FnYy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTNB
MDgyNDJBNzUzQzAwN0ZEQzQxIC8qIGFsaWdubWVudF9taXhlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE1RjFGQTcyMTI3MkZCQTAwMDY0Q0JGIC8qIGFkYXB0aXZlX2RpZ2l0YWxfZ2Fpbl9hcHBs
aWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVBNTFFNkE2MzQzMDA5NEZEQzggLyogYWRh
cHRpdmVfZmlyX2ZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzODMyMzRCOTU3RDAw
MjhBNjE1IC8qIGFkYXB0aXZlX2Zpcl9maWx0ZXJfZXJsLmggaW4gSGVhZGVycyAqLywKQEAgLTE0
NzA0LDcgKzE0NzExLDYgQEAKIAkJCQk1Q0QyODVBNzFFNkE2MzQzMDA5NEZEQzggLyogYWVjX3N0
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODVFODFFNDNCODEwMDA2MjFFOTIgLyogYWVj
bV9jb3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODVFOTFFNDNCODEwMDA2MjFFOTIgLyog
YWVjbV9kZWZpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTAwOTFFNzI0MkUyQUEzMDBDNUVE
QTIgLyogcnRwX2Zvcm1hdF9oMjY1LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyNzFFNEE5
OUQyMDA0MDM5OTUgLyogYWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyNDFFNEE5OUQy
MDA0MDM5OTUgLyogYWVzX2djbV9vc3NsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyNjFF
NEE5OUQyMDA0MDM5OTUgLyogYWVzX2ljbS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDcxNSw5ICsx
NDcyMSwxMCBAQAogCQkJCTVDREQ4RkQyMUU0M0NENjYwMDYyMUU5MiAvKiBhaW1kX3JhdGVfY29u
dHJvbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQUQxQTMyMTI2NUIxMDAwM0Y3MjYzIC8qIGFs
Z29yaXRobS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0MjcyMzRDN0QyNTAwMjhBNjE1IC8q
IGFsaWduZWRfbWFsbG9jLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzkzQTI0MkE3MEFFMDA3
RkRDNDEgLyogcmVzb3VyY2VfYWRhcHRhdGlvbl9wcm9jZXNzb3JfaW50ZXJmYWNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTg5M0EwODI0MkE3NTNDMDA3RkRDNDEgLyogYWxpZ25tZW50X21peGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyODFFNEE5OUQyMDA0MDM5OTUgLyogYWxsb2Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTAyQ0FEMjEyNzM1MkQwMEMyN0NENiAvKiBhbHJfZGV0
ZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOTYwMjQyQTcxRjUwMDdGREM0MSAvKiBh
bHJfZXhwZXJpbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg2RUQxRTQzQkE2RDAwNjIx
RTkyIC8qIGFuYWxvZ19hZ2MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMzc2MjM0Qjk1N0Qw
MDI4QTYxNSAvKiBhcGlfY2FsbF9qaXR0ZXJfbWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg3RTYxRTQzQkRBMTAwNjIxRTkyIC8qIGFwbV9kYXRhX2R1bXBlci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xNDcyNiw3ICsxNDczMyw2IEBACiAJCQkJNDFCRTcxQjEyMTVDNDYzNzAwQTdCMTk2
IC8qIGFyY2guaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4N0FBMUU0M0JDMDUwMDYyMUU5MiAv
KiBhcml0aF9yb3V0aW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0MzNEMDExRjc5QjMzNDAw
Mzg3QjREIC8qIGFyaXRoX3JvdXRpbnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOUVEMjQy
QTc0MzQwMDdGREM0MSAvKiBkZWZhdWx0X25ldGVxX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzFDMzE3MjM0QjhEQzIwMDI4QTYxNSAvKiBhcnJheV92aWV3LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTMxQzA1MjIzNEI4OThEMDAyOEE2MTUgLyogYXJyYXlzaXplLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUZDQkI3OTIxQjFGRkMwMDBBNURGMjcgLyogYXNjaWkuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTQ3NDQsMjAgKzE0NzUwLDE0IEBACiAJCQkJNDEzMUMwN0EyMzRCODk4RDAwMjhB
NjE1IC8qIGF0b21pY19vcHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NEFBMUU0M0FGMTMw
MDYyMUU5MiAvKiBhdWRpb19idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QThFMUU0
M0MwMEYwMDYyMUU5MiAvKiBhdWRpb19jaGVja3N1bS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4
OTNBMjQyNDJBNzVDMTAwN0ZEQzQxIC8qIGJhc2ljX2ljZV9jb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTkyNDE5RjIxMjc1ODgzMDA2MzRGQ0YgLyogYXVkaW9fY29kZWNfcGFpcl9p
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzQzAyMzRCOTdCNDAwMjhBNjE1IC8qIGF1ZGlv
X2NvZGVyX29wdXNfY29tbW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNEM1QTFFNDMxRjlD
MDAyNjUxQzggLyogYXVkaW9fY29udmVydGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzhF
RTI0MkE2QjE3MDA3RkRDNDEgLyogc2VuZF9zaWRlX2JhbmR3aWR0aF9lc3RpbWF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REODQxNjFFNDM5QjI5MDA2MjFFOTIgLyogYXVkaW9fZGVjb2Rl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1NDUxRTZBNjFEMjAwOTRGREM4IC8qIGF1ZGlv
X2RlY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NTQzMUU2QTYxRDIwMDk0RkRDOCAv
KiBhdWRpb19kZWNvZGVyX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOERBMjQy
QTY5Q0MwMDdGREM0MSAvKiBxdWFsaXR5X3NjYWxlcl9yZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDEwMDkxRkEyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDFGOUJGOTgyMDUxQzgyMTAwQUJGMEI5IC8qIGF1ZGlvX2RlY29kZXJf
ZmFjdG9yeV90ZW1wbGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzRTgxRkUyNDgzNTAw
NDBDMzBGIC8qIGF1ZGlvX2RlY29kZXJfZzcxMS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDEwMDkx
REUyNDJFMEJCQzAwQzVFREEyIC8qIHZpZGVvX2ZyYW1lX3R5cGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxODkzQTU3MjQyQTc3QjgwMDdGREM0MSAvKiBydW5uaW5nX3N0YXRpc3RpY3MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxNDBCODMyMUU0RTMzOTYwMDc0MDlFNiAvKiBhdWRpb19kZWNvZGVy
X2c3MjIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzNEMUZFMjQ2MjMwMDQwQzMwRiAvKiBh
dWRpb19kZWNvZGVyX2c3MjIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QjZGMUU0M0MyQjUw
MDYyMUU5MiAvKiBhdWRpb19kZWNvZGVyX2lsYmMuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ3NzEs
MjAgKzE0NzcxLDE0IEBACiAJCQkJNDEzMUMzRkQyMzRDN0IwMzAwMjhBNjE1IC8qIGF1ZGlvX2Rl
Y29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzNGQjIz
NEM3QjAzMDAyOEE2MTUgLyogYXVkaW9fZGVjb2Rlcl9tdWx0aV9jaGFubmVsX29wdXNfY29uZmln
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzNDMjIzNEI5N0I0MDAyOEE2MTUgLyogYXVkaW9f
ZGVjb2Rlcl9tdWx0aV9jaGFubmVsX29wdXNfaW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4
OTNBMjEyNDJBNzVDMTAwN0ZEQzQxIC8qIGR0bHNfdHJhbnNwb3J0X2ZhY3RvcnkuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxODkzOUNBMjQyQTczMzcwMDdGREM0MSAvKiB1c2VkX2lkcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEwMDkyMEQyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2Rl
ckgyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzYxMUU0M0M2MDkwMDYyMUU5MiAvKiBh
dWRpb19kZWNvZGVyX29wdXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MkYyMUZFMjBFQjUw
MDQwQzMwRiAvKiBhdWRpb19kZWNvZGVyX29wdXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkz
OUQ3MjQyQTczMzcwMDdGREM0MSAvKiB0cmFja19tZWRpYV9pbmZvX21hcC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDE4OTM5REUyNDJBNzMzNzAwN0ZEQzQxIC8qIHJ0Y19zdGF0c190cmF2ZXJzYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDBCODIzMUU0RTMzODMwMDc0MDlFNiAvKiBhdWRpb19k
ZWNvZGVyX3BjbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGRkQxRTQzQ0UzQTAwNjIxRTky
IC8qIGF1ZGlvX2RlY29kZXJfcGNtMTZiLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ1RjYxMzFG
RTFFMTZGMDBFQjlDQUYgLyogYXVkaW9fZGV2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzEx
OUZGQzFFNDU3NDAwMDA0RjA5ODcgLyogYXVkaW9fZGV2aWNlX2J1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUMxMTlGRkQxRTQ1NzQwMDAwNEYwOTg3IC8qIGF1ZGlvX2RldmljZV9jb25maWcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDVGNjE0MUZFMUUxNkYwMEVCOUNBRiAvKiBhdWRpb19k
ZXZpY2VfZGF0YV9vYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5MTQyNDJBNzA0
RTAwN0ZEQzQxIC8qIHZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfaDI2NC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE0NUY2MTIxRkUxRTE2RjAwRUI5Q0FGIC8qIGF1ZGlvX2RldmljZV9kZWZpbmVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1QzExQTAxRTFFNDU3NTc4MDA0RjA5ODcgLyogYXVkaW9fZGV2
aWNlX2R1bW15LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzExOUZGRjFFNDU3NDAwMDA0RjA5ODcg
LyogYXVkaW9fZGV2aWNlX2dlbmVyaWMuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ3OTgsNyArMTQ3
OTIsNiBAQAogCQkJCTQxOUM4M0VBMUZFMjQ4MzUwMDQwQzMwRiAvKiBhdWRpb19lbmNvZGVyX2c3
MTEuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDBCODM0MUU0RTMzOTYwMDc0MDlFNiAvKiBhdWRp
b19lbmNvZGVyX2c3MjIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzQwMUZFMjQ2MjMwMDQw
QzMwRiAvKiBhdWRpb19lbmNvZGVyX2c3MjIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzQTVC
MjQyQTc3QjgwMDdGREM0MSAvKiBldmVudF9yYXRlX2NvdW50ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxOUM4MzNDMUZFMjQ2MjMwMDQwQzMwRiAvKiBhdWRpb19lbmNvZGVyX2c3MjJfY29uZmln
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI3MTFFNDNDMkI1MDA2MjFFOTIgLyogYXVkaW9f
ZW5jb2Rlcl9pbGJjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODRDMDFGRTMxOTQ0MDA0MEMz
MEYgLyogYXVkaW9fZW5jb2Rlcl9pbGJjLmggaW4gSGVhZGVycyAqLywKQEAgLTE0ODEwLDcgKzE0
ODAzLDYgQEAKIAkJCQk1Q0REOEMwQjFFNDNDMzQ2MDA2MjFFOTIgLyogYXVkaW9fZW5jb2Rlcl9p
c2FjX3RfaW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzRjMxRkUyNDg4RDAwNDBDMzBG
IC8qIGF1ZGlvX2VuY29kZXJfTDE2LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzNGNzIzNEM3
QjAzMDAyOEE2MTUgLyogYXVkaW9fZW5jb2Rlcl9tdWx0aV9jaGFubmVsX29wdXMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTQxODkzOTIzMjQyQTcwNEUwMDdGREM0MSAvKiB2aWRlb19ydHBfZGVwYWNr
ZXRpemVyX3ZwOC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzRjgyMzRDN0IwMzAwMjhBNjE1
IC8qIGF1ZGlvX2VuY29kZXJfbXVsdGlfY2hhbm5lbF9vcHVzX2NvbmZpZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEzMUMzQzEyMzRCOTdCNDAwMjhBNjE1IC8qIGF1ZGlvX2VuY29kZXJfbXVsdGlf
Y2hhbm5lbF9vcHVzX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzY0MUU0M0M2MDkw
MDYyMUU5MiAvKiBhdWRpb19lbmNvZGVyX29wdXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ4MjQs
NyArMTQ4MTYsNiBAQAogCQkJCTVDRDI4NDkzMUU2QTVGNDEwMDk0RkRDOCAvKiBhdWRpb19mcmFt
ZV9tYW5pcHVsYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1NEUxRTZBNjIxMzAwOTRG
REM4IC8qIGF1ZGlvX2ZyYW1lX29wZXJhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJG
NkEyMjEyNzMyNjIwMDZBRThENyAvKiBhdWRpb19sZXZlbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDE4OTM5NUQyNDJBNzFGNTAwN0ZEQzQxIC8qIGNwdV9zcGVlZF9leHBlcmltZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REOEE5MDFFNDNDMDBGMDA2MjFFOTIgLyogYXVkaW9fbG9vcC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzQTYyMzRCOTZDMzAwMjhBNjE1IC8qIGF1ZGlvX21peGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODQ5NjFFNkE1RjQxMDA5NEZEQzggLyogYXVkaW9f
bWl4ZXJfaW1wbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDgzOCwxNSArMTQ4MjksMTEgQEAKIAkJ
CQk1Q0REOEFDRDFFNDNDMjM5MDA2MjFFOTIgLyogYXVkaW9fcmVjZWl2ZV9zdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDRDI4NEIwMUU2QTVGOUYwMDk0RkRDOCAvKiBhdWRpb19yZWNlaXZl
X3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGNUMyMzRCODgyMDAwMjhBNjE1IC8q
IGF1ZGlvX3J0cF9yZWNlaXZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5NUMyNDJBNzFG
NTAwN0ZEQzQxIC8qIG1pbl92aWRlb19iaXRyYXRlX2V4cGVyaW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4QUQwMUU0M0MyMzkwMDYyMUU5MiAvKiBhdWRpb19zZW5kX3N0cmVhbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg0QjIxRTZBNUY5RjAwOTRGREM4IC8qIGF1ZGlvX3NlbmRf
c3RyZWFtLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTAwOTFFOTI0MkUyQUEzMDBDNUVEQTIgLyog
aDI2NV9zcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEM0RjFFNDNDNThFMDA2
MjFFOTIgLyogYXVkaW9fc2luay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBOTIxRTQzQzAw
RjAwNjIxRTkyIC8qIGF1ZGlvX3NpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFCRkEwMjM0
Qjg4QTYwMDI4QTYxNSAvKiBhdWRpb19zb3VyY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkz
OTVGMjQyQTcxRjUwMDdGREM0MSAvKiBxdWFsaXR5X3JhbXB1cF9leHBlcmltZW50LmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTAwOTIwQjI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZp
Y0luZm9IMjY1LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEFEMzFFNDNDMjM5MDA2MjFFOTIg
LyogYXVkaW9fc3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NEIzMUU2QTVGOUYwMDk0
RkRDOCAvKiBhdWRpb19zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGMDUyMzRCODgy
MDAwMjhBNjE1IC8qIGF1ZGlvX3RyYWNrLmggaW4gSGVhZGVycyAqLywKQEAgLTE0ODU1LDcgKzE0
ODQyLDYgQEAKIAkJCQk0MUY5QkZBMDIwNTFDODg1MDBBQkYwQjkgLyogYXVkaW9fdXRpbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBMDUxRTQzQkZCMzAwNjIxRTkyIC8qIGF1ZGlvX3ZlY3Rv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCNzMxRTQzQzJCNTAwNjIxRTkyIC8qIGF1Z21l
bnRlZF9jYl9jb3JyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzhERTI0MkE2OUNDMDA3RkRD
NDEgLyogYWRhcHRhdGlvbl9jb3VudGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1Mjkx
RTRBOTlEMjAwNDAzOTk1IC8qIGF1dGguaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNDA2MjM0
QzdCN0UwMDI4QTYxNSAvKiBhdXRvX2NvcnJlbGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
QzYzRjhEQTFFNDE2RDUzMDAyQ0E1MzEgLyogYXV0b2xpbmsuaCBpbiBIZWFkZXJzICovLApAQCAt
MTQ4NjYsOSArMTQ4NTIsOSBAQAogCQkJCTQxNDMzRDI0MUY3OUIzMzQwMDM4N0I0RCAvKiBiYW5k
d2lkdGhfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEMwRDFFNDNDMzQ2MDA2
MjFFOTIgLyogYmFuZHdpZHRoX2luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MUNDMjEy
NzU5M0YwMDYzNEZDRiAvKiBiYW5kd2lkdGhfc2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDEwMDkxREIyNDJFMEJCQzAwQzVFREEyIC8qIHZpZGVvX2NvZGVjX2NvbnN0YW50cy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDFGMjYzQjgyMTI2ODEwQzAwMjc0RjU5IC8qIGJhc2U2NC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUMxRDcyMzRCOEE0QjAwMjhBNjE1IC8qIGJhc2ljX2FzeW5jX3Jl
c29sdmVyX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzQTI0MjQyQTc1QzEwMDdG
REM0MSAvKiBiYXNpY19pY2VfY29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMx
QUUyMzRCOEE0QTAwMjhBNjE1IC8qIGJhc2ljX3BhY2tldF9zb2NrZXRfZmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUM0NTYyMzRDODExODAwMjhBNjE1IC8qIGJhc2ljX3BvcnRfYWxs
b2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDFDNjIxMjc1OTNGMDA2MzRGQ0YgLyog
YmJyX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ4ODYsMjUgKzE0ODcyLDIxIEBACiAJ
CQkJNDEzMUMzOTMyMzRCOTU3RDAwMjhBNjE1IC8qIGJsb2NrX2J1ZmZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEzMUMzODAyMzRCOTU3RDAwMjhBNjE1IC8qIGJsb2NrX2RlbGF5X2J1ZmZlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1QUQxRTZBNjM0MzAwOTRGREM4IC8qIGJsb2NrX2Zy
YW1lci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5OEIyNDJBNzI1MjAwN0ZEQzQxIC8qIGZh
c3RfbWF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1QjExRTZBNjM0MzAwOTRGREM4IC8q
IGJsb2NrX3Byb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1QUYxRTZBNjM0MzAw
OTRGREM4IC8qIGJsb2NrX3Byb2Nlc3Nvcl9tZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTMxQzA1NTIzNEI4OThEMDAyOEE2MTUgLyogYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REOEEwQjFFNDNCRkIzMDA2MjFFOTIgLyogYnVmZmVyX2xldmVsX2ZpbHRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDEzMUMwNUQyMzRCODk4RDAwMjhBNjE1IC8qIGJ1ZmZlcl9xdWV1ZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5OTYyNDJBNzI1MjAwN0ZEQzQxIC8qIG5zX2ZmdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0QTIyMzRDODM0RTAwMjhBNjE1IC8qIGJ1ZmZlcmVkX2Zy
YW1lX2RlY3J5cHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1NDkxRTZBNjFEMjAwOTRG
REM4IC8qIGJ1aWx0aW5fYXVkaW9fZGVjb2Rlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTMwOTFGQzFFRjhDRkY4MDA3NTdDNTUgLyogYnVpbHRpbl9hdWRpb19lbmNvZGVyX2ZhY3Rv
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRkNCQjFFMjFCMUY3Q0QwMEE1REYyNyAvKiBidWls
dGluX3ZpZGVvX2JpdHJhdGVfYWxsb2NhdG9yX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxRjI2MzYwMjEyNjdBREYwMDI3NEY1OSAvKiBidWlsdGluX3ZpZGVvX2RlY29kZXJfZmFjdG9y
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMjYzNjEyMTI2N0FERjAwMjc0RjU5IC8qIGJ1aWx0
aW5fdmlkZW9fZW5jb2Rlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5Mzk5QjI0
MkE3MjUyMDA3RkRDNDEgLyogbnNfY29tbW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI3
NTFFNDNDMkI1MDA2MjFFOTIgLyogYndfZXhwYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
ODkzRjFFNDNCRjNBMDA2MjFFOTIgLyogYnllLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzA3
NTIzNEI4OThEMDAyOEE2MTUgLyogYnl0ZV9idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4ODc2MUU0M0JFM0MwMDYyMUU5MiAvKiBieXRlX2lvLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MTg5M0E1QTI0MkE3N0I4MDA3RkRDNDEgLyogc2FmZV9jb252ZXJzaW9uc19pbXBsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTMxQzA0MDIzNEI4OThEMDAyOEE2MTUgLyogYnl0ZV9vcmRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDFCRTcxQUUyMTVDNDYzNzAwQTdCMTk2IC8qIGJ5dGVjb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODRCODFFNkE1RjlGMDA5NEZEQzggLyogY2FsbC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xNDkxOCw3ICsxNDkwMCw2IEBACiAJCQkJNDEzMUMzRUUyMzRDN0E0
OTAwMjhBNjE1IC8qIGNhc2NhZGVkX2JpcXVhZF9maWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4Qjc3MUU0M0MyQjUwMDYyMUU5MiAvKiBjYl9jb25zdHJ1Y3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4QjdEMUU0M0MyQjUwMDYyMUU5MiAvKiBjYl9tZW1fZW5lcmd5LmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTAwOTFEQTI0MkUwQkJDMDBDNUVEQTIgLyogdmlkZW9fZnJhbWVfbWFy
a2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCNzkxRTQzQzJCNTAwNjIxRTkyIC8qIGNi
X21lbV9lbmVyZ3lfYXVnbWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI3QjFF
NDNDMkI1MDA2MjFFOTIgLyogY2JfbWVtX2VuZXJneV9jYWxjLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REOEI4MTFFNDNDMkI1MDA2MjFFOTIgLyogY2Jfc2VhcmNoLmggaW4gSGVhZGVycyAqLywK
QEAgLTE0OTM2LDcgKzE0OTE3LDYgQEAKIAkJCQk0MTc5NTNENDIxNjk4MzRGMDAyODI2NkIgLyog
Y2hhbm5lbF9zZW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI4NTFFNDNDMkI1MDA2MjFF
OTIgLyogY2hlYnlzaGV2LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzA2NDIzNEI4OThEMDAy
OEE2MTUgLyogY2hlY2tzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzkxOTI0MkE3MDRFMDA3
RkRDNDEgLyogdmlkZW9fZmVjX2dlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1
MkExRTRBOTlEMjAwNDAzOTk1IC8qIGNpcGhlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg2
QTIxRTQzQjk5NDAwNjIxRTkyIC8qIGNpcmN1bGFyX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUMzNzMyMzRCOTU3RDAwMjhBNjE1IC8qIGNsb2NrZHJpZnRfZGV0ZWN0b3IuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTQ5NTcsMTQgKzE0OTM3LDE0IEBACiAJCQkJNUNERDhCODcxRTQzQzJC
NTAwNjIxRTkyIC8qIGNvbXBfY29yci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwNzIyMzRC
ODk4RDAwMjhBNjE1IC8qIGNvbXBpbGVfYXNzZXJ0X2MuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4NjQ2MUU0M0I4QjUwMDYyMUU5MiAvKiBjb21wbGV4X2ZmdF90YWJsZXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxODkzOURCMjQyQTczMzcwMDdGREM0MSAvKiBjb21wb3NpdGVfZGF0YV9jaGFu
bmVsX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGMzkyMzRCODgyMDAwMjhB
NjE1IC8qIGNvbXBvc2l0ZV9ydHBfdHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
ODk0NTFFNDNCRjNBMDA2MjFFOTIgLyogY29tcG91bmRfcGFja2V0LmggaW4gSGVhZGVycyAqLywK
LQkJCQk0MTg5Mzk5MzI0MkE3MjUyMDA3RkRDNDEgLyogc3VwcHJlc3Npb25fcGFyYW1zLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTVGMUZBQjIxMjcyRkJBMDAwNjRDQkYgLyogY29tcHV0ZV9pbnRl
cnBvbGF0ZWRfZ2Fpbl9jdXJ2ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTNBMDQyNDJBNzUz
QzAwN0ZEQzQxIC8qIG5lYXJlbmRfZGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
RkVDMUU0M0NEQ0EwMDYyMUU5MiAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDNjNG
OERCMUU0MTZENTMwMDJDQTUzMSAvKiBjb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFD
MzAzMjM0QjhEQzIwMDI4QTYxNSAvKiBjb25nZXN0aW9uX2NvbnRyb2xfaW50ZXJmYWNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTg5Mzk0QzI0MkE3MEQ3MDA3RkRDNDEgLyogY29uZ2VzdGlvbl9j
b250cm9sX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQ0JCNDAyMUIxRkRCODAw
QTVERjI3IC8qIGNvbmdlc3Rpb25fd2luZG93X3B1c2hiYWNrX2NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMzFDMUNGMjM0QjhBNEIwMDI4QTYxNSAvKiBjb25uZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQzFFOTIzNEI4QTRCMDAyOEE2MTUgLyogY29ubmVjdGlvbl9p
bmZvLmggaW4gSGVhZGVycyAqLywKQEAgLTE0OTc5LDQ5ICsxNDk1OSw1NCBAQAogCQkJCTVDREQ4
QUQ0MUU0M0MyMzkwMDYyMUU5MiAvKiBjb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTMxQzA3MzIzNEI4OThEMDAyOEE2MTUgLyogY29weV9vbl93cml0ZV9idWZmZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxQkU3MUJDMjE1QzQ2MzcwMEE3QjE5NiAvKiBjb3JldHlwZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDE4OTM5NUQyNDJBNzFGNTAwN0ZEQzQxIC8qIGNwdV9zcGVlZF9leHBl
cmltZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzA0QzIzNEI4OThEMDAyOEE2MTUgLyog
Y3B1X3RpbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4N0IyMUU0M0JDMDUwMDYyMUU5MiAv
KiBjcmMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMDg1MjM0Qjg5OEQwMDI4QTYxNSAvKiBj
cmMzMi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCOEMxRTQzQzJCNTAwNjIxRTkyIC8qIGNy
ZWF0ZV9hdWdtZW50ZWRfdmVjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzJFRDIzNEI4REMy
MDAyOEE2MTUgLyogY3JlYXRlX3BlZXJjb25uZWN0aW9uX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxODkzOTFDMjQyQTcwNEUwMDdGREM0MSAvKiBjcmVhdGVfdmlkZW9fcnRwX2RlcGFj
a2V0aXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwMkUyMzRCODk4RDAwMjhBNjE1IC8q
IGNyaXRpY2FsX3NlY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOUY4MjQyQTc0Rjgw
MDdGREM0MSAvKiBtZWRpYV90cmFuc3BvcnRfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REOEExMDFFNDNCRkIzMDA2MjFFOTIgLyogY3Jvc3NfY29ycmVsYXRpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMzFDMDRFMjM0Qjg5OEQwMDI4QTYxNSAvKiBjcnlwdF9zdHJpbmcuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDMDg4NTJCMUU0QTk5RDIwMDQwMzk5NSAvKiBjcnlwdG9fa2Vy
bmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzNCNDIzNEI5NzEyMDAyOEE2MTUgLyogY3J5
cHRvX29wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMzA5MjM0QjhEQzIwMDI4QTYx
NSAvKiBjcnlwdG9fcGFyYW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyQzFFNEE5OUQy
MDA0MDM5OTUgLyogY3J5cHRvX3R5cGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5M0EzMzI0
MkE3Njc4MDA3RkRDNDEgLyogY3VzdG9tX25ldGVxX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzFCRUZEMjM0Qjg4MjAwMDI4QTYxNSAvKiBkYXRhX2NoYW5uZWwuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxODkzOURBMjQyQTczMzcwMDdGREM0MSAvKiBkYXRhX2NoYW5uZWxfY29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzMjUyMzRCOERDMjAwMjhBNjE1IC8qIGRh
dGFfY2hhbm5lbF9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOTQ5MjQyQTcw
RDcwMDdGREM0MSAvKiBkYXRhX2NoYW5uZWxfdHJhbnNwb3J0X2ludGVyZmFjZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE5MjQxREUyMTI3NUEzMDAwNjM0RkNGIC8qIGRhdGFfcmF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUMwNTkyMzRCODk4RDAwMjhBNjE1IC8qIGRhdGFfcmF0ZV9saW1p
dGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDFFNDIxMjc1QTMwMDA2MzRGQ0YgLyogZGF0
YV9zaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDFDRDIxMjc1OTNGMDA2MzRGQ0YgLyog
ZGF0YV90cmFuc2Zlcl90cmFja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkYzMTIzNEI4
ODIwMDAyOEE2MTUgLyogZGF0YWdyYW1fcnRwX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNDE4OTM5NDgyNDJBNzBENzAwN0ZEQzQxIC8qIGRhdGFncmFtX3RyYW5zcG9ydF9pbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMDg4NTJEMUU0QTk5RDIwMDQwMzk5NSAvKiBkYXRh
dHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Qzg3MUU0M0M2NjAwMDYyMUU5MiAvKiBk
YXViZWNoaWVzXzhfd2F2ZWxldF9jb2VmZnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Rjg4
MUU0M0NCRTAwMDYyMUU5MiAvKiBkZWJ1Z19kdW1wX3dyaXRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE5QzgzRjgxRkUyNDhGMTAwNDBDMzBGIC8qIGRlY2ltYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDhBMTcxRTQzQkZCMzAwNjIxRTkyIC8qIGRlY2lzaW9uX2xvZ2ljLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTg5M0EzNjI0MkE3Njc4MDA3RkRDNDEgLyogbmV0ZXEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4QjkwMUU0M0MyQjUwMDYyMUU5MiAvKiBkZWNvZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4QjhFMUU0M0MyQjUwMDYyMUU5MiAvKiBkZWNvZGVfcmVzaWR1YWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNDQ1MjM0QzgwQUIwMDI4QTYxNSAvKiBkZWNvZGVk
X2ZyYW1lc19oaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEExQTFFNDNCRkIzMDA2
MjFFOTIgLyogZGVjb2Rlcl9kYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5QTEy
NDJBNzJFNDAwN0ZEQzQxIC8qIHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXJfZnJhbWVfdHJhbnNm
b3JtZXJfZGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTAyQzg3MjEyNzM0QjkwMEMy
N0NENiAvKiBkZWNvZGVyX2RhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI5MjFF
NDNDMkI1MDA2MjFFOTIgLyogZGVjb2Rlcl9pbnRlcnBvbGF0ZV9sc2YuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4M0NCMUU0MzlBNkYwMDYyMUU5MiAvKiBkZWNvZGluZ19zdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDE4OTNBMjAyNDJBNzVDMTAwN0ZEQzQxIC8qIGRlZmF1bHRfaWNlX3Ry
YW5zcG9ydF9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5M0EzNTI0MkE3Njc4MDA3
RkRDNDEgLyogZGVmYXVsdF9uZXRlcV9jb250cm9sbGVyX2ZhY3RvcnkuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxODkzOUVEMjQyQTc0MzQwMDdGREM0MSAvKiBkZWZhdWx0X25ldGVxX2ZhY3Rvcnku
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NDk4MUU2QTVGNDEwMDk0RkRDOCAvKiBkZWZhdWx0
X291dHB1dF9yYXRlX2NhbGN1bGF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNDg1MjM0
QzgyNzQwMDI4QTYxNSAvKiBkZWZhdWx0X3Rhc2tfcXVldWVfZmFjdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE5Qzg0M0IxRkUyNEU4MDAwNDBDMzBGIC8qIGRlZmF1bHRfdGVtcG9yYWxfbGF5
ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEI5MzFFNDNDMkI1MDA2MjFFOTIgLyogZGVm
aW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFENkI0NTUyMTI3MzE1OTAwOEY5MzUzIC8qIGRl
Z3JhZGVkX2NhbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTAyQ0FCMjEyNzM1MkQwMEMyN0NE
NiAvKiBkZWxheV9iYXNlZF9id2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzQTA1MjQyQTc1
M0MwMDdGREM0MSAvKiBkZWxheV9lc3RpbWF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg2
OEUxRTQzQjkzOTAwNjIxRTkyIC8qIGRlbGF5X2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNDE4OTM5QzcyNDJBNzMzNzAwN0ZEQzQxIC8qIHJ0cF9tZWRpYV91dGlscy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDE4OTNBMzUyNDJBNzY3ODAwN0ZEQzQxIC8qIGRlZmF1bHRfbmV0ZXFfY29u
dHJvbGxlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODY4OTFFNDNCOTM5MDA2
MjFFOTIgLyogZGVsYXlfZXN0aW1hdG9yX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REODY4QzFFNDNCOTM5MDA2MjFFOTIgLyogZGVsYXlfZXN0aW1hdG9yX3dyYXBwZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxRTAyQ0I3MjEyNzM1MkQwMEMyN0NENiAvKiBkZWxheV9pbmNyZWFz
ZV9kZXRlY3Rvcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMTUwMjksMTEgKzE1MDE0
LDExIEBACiAJCQkJNDEzMUJGQTUyMzRCODhBNjAwMjhBNjE1IC8qIGRlbGF5YWJsZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUMwNEYyMzRCODk4RDAwMjhBNjE1IC8qIGRlcHJlY2F0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODZFRjFFNDNCQTZEMDA2MjFFOTIgLyogZGlnaXRhbF9h
Z2MuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzQTQ5MjQyQTc3ODkwMDdGREM0MSAvKiBkaXZp
ZGVfcm91bmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OTQ4MUU0M0JGM0EwMDYyMUU5MiAv
KiBkbHJyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5M0EwQjI0MkE3NTNDMDA3RkRDNDEgLyog
ZG9taW5hbnRfbmVhcmVuZF9kZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCOTUx
RTQzQzJCNTAwNjIxRTkyIC8qIGRvX3BsYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTNBMEIy
NDJBNzUzQzAwN0ZEQzQxIC8qIGRvbWluYW50X25lYXJlbmRfZGV0ZWN0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxMjQ1NTQ0MUVGODdDMEYwMEYxMTgwOSAvKiBkb3RfcHJvZHVjdF93aXRoX3Nj
YWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MUMwMUZDNjI0MkI1QzBCMDBFMDgwMTggLyogcnRj
X3N0YXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZEM0JFMjIxMjczMUMyMDA3NzVGMDkgLyog
ZG93bl9zYW1wbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ1RTRENTFFRjhDQzc2MDBGQ0Y2
RTYgLyogZG93bnNhbXBsZWRfcmVuZGVyX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
MUMwM0QyMzRCODk4RDAwMjhBNjE1IC8qIGRzY3AuaCBpbiBIZWFkZXJzICovLApAQCAtMTUwNDEs
MTMgKzE1MDI2LDEzIEBACiAJCQkJNDEzMUJGNjAyMzRCODgyMDAwMjhBNjE1IC8qIGR0bHNfc3J0
cF90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMUM2MjM0QjhBNEEwMDI4QTYx
NSAvKiBkdGxzX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGM0UyMzRCODgy
MDAwMjhBNjE1IC8qIGR0bHNfdHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5M0Ey
MTI0MkE3NUMxMDA3RkRDNDEgLyogZHRsc190cmFuc3BvcnRfZmFjdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEzMUMyRkEyMzRCOERDMjAwMjhBNjE1IC8qIGR0bHNfdHJhbnNwb3J0X2ludGVy
ZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxRUIyMzRCOEE0QjAwMjhBNjE1IC8qIGR0
bHNfdHJhbnNwb3J0X2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEEyNzFFNDNC
RkIzMDA2MjFFOTIgLyogZHRtZl9idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4ODc4
MUU0M0JFM0MwMDYyMUU5MiAvKiBkdG1mX3F1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMx
QkY1QTIzNEI4ODIwMDAyOEE2MTUgLyogZHRtZl9zZW5kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMzFDMzBFMjM0QjhEQzIwMDI4QTYxNSAvKiBkdG1mX3NlbmRlcl9pbnRlcmZhY2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQxMDA5MUREMjQyRTBCQkMwMEM1RURBMiAvKiByZWNvcmRhYmxlX2Vu
Y29kZWRfZnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTJBMUU0M0JGQjMwMDYyMUU5
MiAvKiBkdG1mX3RvbmVfZ2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEY4QjFF
NDNDQkUwMDA2MjFFOTIgLyogZHR4X2NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4Qzg5MUU0M0M2NjAwMDYyMUU5MiAvKiBkeWFkaWNfZGVjaW1hdG9yLmggaW4gSGVhZGVycyAq
LywKQEAgLTE1MDU1LDEyICsxNTA0MCw5IEBACiAJCQkJNUNEMjg1QjkxRTZBNjM0MzAwOTRGREM4
IC8qIGVjaG9fY2FuY2VsbGVyMy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzQUQyMzRCOTZD
MzAwMjhBNjE1IC8qIGVjaG9fY2FuY2VsbGVyM19jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMzFDM0FBMjM0Qjk2QzMwMDI4QTYxNSAvKiBlY2hvX2NhbmNlbGxlcjNfZmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5MUIyNDJBNzA0RTAwN0ZEQzQxIC8qIHJ0cF9kZXNjcmlw
dG9yX2F1dGhlbnRpY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzNBQzIzNEI5NkMz
MDAyOEE2MTUgLyogZWNob19jb250cm9sLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzlBMDI0
MkE3MkU0MDA3RkRDNDEgLyogdmlkZW9fc291cmNlX3NpbmtfY29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDg1RUIxRTQzQjgxMDAwNjIxRTkyIC8qIGVjaG9fY29udHJvbF9tb2Jp
bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NEIxMUU0M0FGMTMwMDYyMUU5MiAvKiBlY2hv
X2NvbnRyb2xfbW9iaWxlX2ltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOEQ4MjQyQTY5
Q0MwMDdGREM0MSAvKiBlbmNvZGVfdXNhZ2VfcmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDRDI4NUJCMUU2QTYzNDMwMDk0RkRDOCAvKiBlY2hvX3BhdGhfZGVsYXlfZXN0aW1hdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVCRDFFNkE2MzQzMDA5NEZEQzggLyogZWNob19wYXRo
X3ZhcmlhYmlsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVDMTFFNkE2MzQzMDA5NEZE
QzggLyogZWNob19yZW1vdmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTE1MDY4LDM5ICsxNTA1MCwz
OCBAQAogCQkJCTQxM0EyMTNFMUZFMEYwRUYwMDM3M0U5OSAvKiBla3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4Qjk3MUU0M0MyQjUwMDYyMUU5MiAvKiBlbmNvZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4N0I2MUU0M0JDMDUwMDYyMUU5MiAvKiBlbmNvZGVfbHBjX3N3Yi5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDEwMDkyMDkyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRGVjb2Rl
ckgyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTk2MUU0M0MwMEYwMDYyMUU5MiAvKiBl
bmNvZGVfbmV0ZXFfaW5wdXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOEQ4MjQyQTY5Q0Mw
MDdGREM0MSAvKiBlbmNvZGVfdXNhZ2VfcmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4M0NEMUU0MzlBNkYwMDYyMUU5MiAvKiBlbmNvZGVkX2ZyYW1lLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MUEwOEJBQzIxMjY4MUM4MDAxRDVEN0IgLyogZW5jb2RlZF9mcmFtZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFGQ0JCMUMyMUIxRjdDRDAwQTVERjI3IC8qIGVuY29kZWRfaW1hZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFDNEExMjM0QzgzNEUwMDI4QTYxNSAvKiBlbmNvZGVyX2Jp
dHJhdGVfYWRqdXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNEE1MjM0QzgzNEUwMDI4
QTYxNSAvKiBlbmNvZGVyX292ZXJzaG9vdF9kZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg1QTAxRTQzQjVDMDAwNjIxRTkyIC8qIGVuY29kZXJfcnRjcF9mZWVkYmFjay5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDE4OTM5M0UyNDJBNzBBRTAwN0ZEQzQxIC8qIGVuY29kZXJfc2V0dGlu
Z3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMjgzMjM0QjhDQzQwMDI4QTYxNSAvKiBlbmNv
ZGVyX3NpbXVsY2FzdF9wcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFQ0VBRkMyMDY0NjY2
NDAwOUQ1MTQxIC8qIEVuY29kZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
Qjk5MUU0M0MyQjUwMDYyMUU5MiAvKiBlbmVyZ3lfaW52ZXJzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDhCOUIxRTQzQzJCNTAwNjIxRTkyIC8qIGVuaF91cHNhbXBsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDhCOUYxRTQzQzJCNTAwNjIxRTkyIC8qIGVuaGFuY2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0REOEI5RDFFNDNDMkI1MDA2MjFFOTIgLyogZW5oYW5jZXJfaW50ZXJmYWNl
LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5M0ExNTI0MkE3NTdBMDA3RkRDNDEgLyogdW5pcXVl
X3RpbWVzdGFtcF9jb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQzM0QxMzFGNzlCMzM0
MDAzODdCNEQgLyogZW50cm9weV9jb2RpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4N0I5
MUU0M0JDMDUwMDYyMUU5MiAvKiBlbnRyb3B5X2NvZGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzMUM0OTIyMzRDODJFRTAwMjhBNjE1IC8qIGVudW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0QyODVDMzFFNkE2MzQzMDA5NEZEQzggLyogZXJsX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNEMjg1QzUxRTZBNjM0MzAwOTRGREM4IC8qIGVybGVfZXN0aW1hdG9yLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk0MTg5M0EwOTI0MkE3NTNDMDA3RkRDNDEgLyogdmVjdG9yX21hdGguaCBp
biBIZWFkZXJzICovLAogCQkJCTVDMDg4NTJFMUU0QTk5RDIwMDQwMzk5NSAvKiBlcnIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxQkU3MUFBMjE1QzQ2MzcwMEE3QjE5NiAvKiBlcnJ3YXJuLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQzAyRjIzNEI4OThEMDAyOEE2MTUgLyogZXZlbnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxODkzQTVDMjQyQTc3QjgwMDdGREM0MSAvKiBldmVudF9iYXNlZF9l
eHBvbmVudGlhbF9tb3ZpbmdfYXZlcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg2MTUx
RTZBNjYxMzAwOTRGREM4IC8qIGV2ZW50X2xvZ193cml0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxODkzOTI0MjQyQTcwNEUwMDdGREM0MSAvKiB0cmFuc2Zvcm1hYmxlX2VuY29kZWRfZnJhbWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzQTVCMjQyQTc3QjgwMDdGREM0MSAvKiBldmVudF9y
YXRlX2NvdW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMDUxMjM0Qjg5OEQwMDI4QTYx
NSAvKiBldmVudF90cmFjZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzUwMUZFMjQ2NjUw
MDQwQzMwRiAvKiBleHBfZmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEEyRDFFNDNC
RkIzMDA2MjFFOTIgLyogZXhwYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTAyRjZBRjIxMjcz
MkU3MDA2QUU4RDcgLyogZXhwYW5kX3VtYV9sb2dnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
QkU3MUE2MjE1QzQ2MzcwMEE3QjE5NiAvKiBleHByLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
ODk0QjFFNDNCRjNBMDA2MjFFOTIgLyogZXh0ZW5kZWRfaml0dGVyX3JlcG9ydC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDEwMDkxRkUyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NEUxRTQzQkYzQTAwNjIxRTkyIC8qIGV4dGVuZGVk
X3JlcG9ydHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFCRjQ2MjM0Qjg4MjAwMDI4QTYxNSAv
KiBleHRlcm5hbF9obWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzA3NzIzNEI4OThEMDAy
OEE2MTUgLyogZmFrZV9jbG9jay5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTEwOSwxMyArMTUwOTAs
MTIgQEAKIAkJCQk0MTMxQzFCMDIzNEI4QTRBMDAyOEE2MTUgLyogZmFrZV9pY2VfdHJhbnNwb3J0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzA4MDIzNEI4OThEMDAyOEE2MTUgLyogZmFrZV9t
ZG5zX3Jlc3BvbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwMzcyMzRCODk4RDAwMjhB
NjE1IC8qIGZha2VfbmV0d29yay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM4REMyNDJBNjlD
QzAwN0ZEQzQxIC8qIHZpZGVvX3N0cmVhbV9hZGFwdGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MTg5Mzk0MjI0MkE3MEFFMDA3RkRDNDEgLyogcmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMjk5Qjk3MjEyNzM2OTEwMEIzNDE0QiAvKiBmYWtlX25ldHdvcmtfcGlwZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDEzMUMxRUMyMzRCOEE0QjAwMjhBNjE1IC8qIGZha2VfcGFja2V0X3RyYW5z
cG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxREIyMzRCOEE0QjAwMjhBNjE1IC8qIGZh
a2VfcG9ydF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMDIwMjM0Qjg5OEQw
MDI4QTYxNSAvKiBmYWtlX3NzbF9pZGVudGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMjYz
QUUyMTI2ODBBODAwMjc0RjU5IC8qIGZhbGx0aHJvdWdoLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTg5Mzk4QjI0MkE3MjUyMDA3RkRDNDEgLyogZmFzdF9tYXRoLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1QzYzRjhEQzFFNDE2RDUzMDAyQ0E1MzEgLyogZmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxOTI0MTNCMjEyNzM3MjQwMDYzNEZDRiAvKiBmZWF0dXJlc19leHRyYWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQzMwQjIzNEI4REMyMDAyOEE2MTUgLyogZmVjX2NvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTUxMjgsMTEgKzE1MTA4LDExIEBACiAJCQkJNDFGMjYz
ODkyMTI2N0Y0MDAwMjc0RjU5IC8qIGZmdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0MzNEMjIx
Rjc5QjMzNDAwMzg3QjREIC8qIGZmdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMjYzNkYyMTI2
N0IzRTAwMjc0RjU5IC8qIGZmdDRnLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5Mzk2MDI0MkE3
MUY1MDA3RkRDNDEgLyogYWxyX2V4cGVyaW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjlC
RkQzMjA1MURERTUwMEFCRjBCOSAvKiBmZnRfYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0QyODVDODFFNkE2MzQzMDA5NEZEQzggLyogZmZ0X2RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMzFDNDNDMjM0QzgwMDcwMDI4QTYxNSAvKiBmZnRwYWNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTMxQzQ5MTIzNEM4MkVFMDAyOEE2MTUgLyogZmllbGRfdHJpYWxfYmFzZWRfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MTg5Mzk1NzI0MkE3MUY1MDA3RkRDNDEgLyogZmllbGRfdHJp
YWxfcGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzQyNTIzNEM3RDI1MDAyOEE2MTUg
LyogZmlmb19idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQkU3MUI3MjE1QzQ2MzcwMEE3
QjE5NiAvKiBmaWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzExQTAyMjFFNDU3NTc4MDA0RjA5
ODcgLyogZmlsZV9hdWRpb19kZXZpY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMTUxNjEsNyArMTUx
NDEsNiBAQAogCQkJCTQxMzFDMDFGMjM0Qjg5OEQwMDI4QTYxNSAvKiBmb3JtYXRfbWFjcm9zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODg4OTFFNDNCRTNDMDA2MjFFOTIgLyogZm9yd2FyZF9l
cnJvcl9jb3JyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODg4NzFFNDNCRTNDMDA2
MjFFOTIgLyogZm9yd2FyZF9lcnJvcl9jb3JyZWN0aW9uX2ludGVybmFsLmggaW4gSGVhZGVycyAq
LywKLQkJCQk0MTg5MzlDOTI0MkE3MzM3MDA3RkRDNDEgLyogc2ltdWxjYXN0X2Rlc2NyaXB0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzYzRjhERDFFNDE2RDUzMDAyQ0E1MzEgLyogZm9yd2Fy
ZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NUNBMUU2QTYzNDMwMDk0RkRDOCAvKiBmcmFt
ZV9ibG9ja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODNEMDFFNDM5QTZGMDA2MjFFOTIg
LyogZnJhbWVfYnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTE1MTcwLDYgKzE1MTQ5LDcgQEAK
IAkJCQk1Q0REOEJBMzFFNDNDMkI1MDA2MjFFOTIgLyogZnJhbWVfY2xhc3NpZnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDRDI4NDlCMUU2QTVGNDEwMDk0RkRDOCAvKiBmcmFtZV9jb21iaW5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzQjUyMzRCOTcxMjAwMjhBNjE1IC8qIGZyYW1lX2Rl
Y3J5cHRvcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzQTEzMjQyQTc1N0Ew
MDdGREM0MSAvKiBmcmFtZV9kZXBlbmRlbmNpZXNfY2FsY3VsYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDgzN0ExRTQzOUEzNTAwNjIxRTkyIC8qIGZyYW1lX2Ryb3BwZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxRkNCQjVBMjFCMUZFNkUwMEE1REYyNyAvKiBmcmFtZV9kdW1waW5nX2Rl
Y29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNDlEMjM0QzgzNEUwMDI4QTYxNSAvKiBm
cmFtZV9lbmNvZGVfbWV0YWRhdGFfd3JpdGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTE1MTg0LDEz
ICsxNTE2NCwxMCBAQAogCQkJCTQxNDBCODI1MUU0RTMzODMwMDc0MDlFNiAvKiBnNzExX2ludGVy
ZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMjYzOTMyMTI2N0Y1MzAwMjc0RjU5IC8qIGc3
MjJfZW5jX2RlYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0MEI4MzkxRTRFMzM5NjAwNzQwOUU2
IC8qIGc3MjJfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5M0E1QzI0MkE3N0I4
MDA3RkRDNDEgLyogZXZlbnRfYmFzZWRfZXhwb25lbnRpYWxfbW92aW5nX2F2ZXJhZ2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxNUYxRkIwMjEyNzJGQkEwMDA2NENCRiAvKiBnYWluX2FwcGxpZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NkYwMUU0M0JBNkQwMDYyMUU5MiAvKiBnYWluX2Nv
bnRyb2wuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOTVBMjQyQTcxRjUwMDdGREM0MSAvKiBy
dHRfbXVsdF9leHBlcmltZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODRCNTFFNDNBRjEz
MDA2MjFFOTIgLyogZ2Fpbl9jb250cm9sX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTA4
QkNGMjEyNzJFRTIwMDFENUQ3QiAvKiBnYWluX2NvbnRyb2xsZXIyLmggaW4gSGVhZGVycyAqLywK
LQkJCQk0MTg5MzkyNzI0MkE3MDRFMDA3RkRDNDEgLyogdmlkZW9fcnRwX2RlcGFja2V0aXplcl9n
ZW5lcmljLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJBNTFFNDNDMkI1MDA2MjFFOTIgLyog
Z2Fpbl9kZXF1YW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODcwMzFFNDNCQTc1MDA2MjFF
OTIgLyogZ2Fpbl9tYXBfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QkE3MUU0
M0MyQjUwMDYyMUU5MiAvKiBnYWluX3F1YW50LmggaW4gSGVhZGVycyAqLywKQEAgLTE1MjAyLDcg
KzE1MTc5LDYgQEAKIAkJCQk0MTNBMjE0MTFGRTBGMEVGMDAzNzNFOTkgLyogZ2V0b3B0X3MuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4NzJBMUU0M0JBQkUwMDYyMUU5MiAvKiBnbW0uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxRkNCQjVGMjFCMUZFQzQwMEE1REYyNyAvKiBnb29nX2NjX2ZhY3Rv
cnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOEY2MjQyQTZCMTcwMDdGREM0MSAvKiBhY2tu
b3dsZWRnZWRfYml0cmF0ZV9lc3RpbWF0b3JfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MUUwMkNBQTIxMjczNTJEMDBDMjdDRDYgLyogZ29vZ19jY19uZXR3b3JrX2NvbnRyb2wuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxOUM4NEFBMUZFMzAzREUwMDQwQzMwRiAvKiBoMjY0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REODM1NTFFNDMyNTcyMDA2MjFFOTIgLyogaDI2NF9iaXRzdHJl
YW1fcGFyc2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTE1MjEwLDggKzE1MTg2LDEzIEBACiAJCQkJ
NDE5Qzg0QUIxRkUzMDNERTAwNDBDMzBGIC8qIGgyNjRfZ2xvYmFscy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzMUJGOTYyMzRCODhBNjAwMjhBNjE1IC8qIGgyNjRfcHJvZmlsZV9sZXZlbF9pZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1RUIxRTZBNjM5RjAwOTRGREM4IC8qIGgyNjRfc3By
b3BfcGFyYW1ldGVyX3NldHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOUM1MjQyQTczMzcw
MDdGREM0MSAvKiBzcnRwX2ZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzREExRTQz
OUE2RjAwNjIxRTkyIC8qIGgyNjRfc3BzX3Bwc190cmFja2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTAwOTFGRDI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMDA5MUZBMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxMDA5MUU5MjQyRTJBQTMwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJz
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUY5MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1
X3Nwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUZFMjQyRTM2MjIwMEM1RURB
MiAvKiBoMjY1X3Zwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUVEMjQyRTMx
NzQwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxRkNCQjcyMjFCMUZGNzQwMEE1REYyNyAvKiBoZHJfbWV0YWRhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxMzFDMDg3MjM0Qjg5OEQwMDI4QTYxNSAvKiBoZWxwZXJzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTc5NTNCRDIxNjk4MjRCMDAyODI2NkIgLyogaGVscGVycy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNTIxOSwyNCArMTUyMDAsMjMgQEAKIAkJCQk0MTMxQzRGNzIzNEM4NjdCMDAy
OEE2MTUgLyogaGlzdG9ncmFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODNEQzFFNDM5QTZG
MDA2MjFFOTIgLyogaGlzdG9ncmFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODM1ODFGRTI0
NjY1MDA0MEMzMEYgLyogaGlzdG9ncmFtX3BlcmNlbnRpbGVfY291bnRlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDE4OTM5ODUyNDJBNzI1MTAwN0ZEQzQxIC8qIGhpc3RvZ3JhbXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4QkFGMUU0M0MyQjUwMDYyMUU5MiAvKiBocF9pbnB1dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNERDhCQjExRTQzQzJCNTAwNjIxRTkyIC8qIGhwX291dHB1dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwODEyMzRCODk4RDAwMjhBNjE1IC8qIGh0dHBfY29tbW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEwOEJBRDIxMjY4MUM4MDAxRDVEN0IgLyogaTAxMF9i
dWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NDY4MUU2QTU3RjQwMDk0RkRDOCAvKiBp
NDIwX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDExMDlBQUQxRTVGQTE5MjAwQzA5NTVB
IC8qIGk0MjBfYnVmZmVyX3Bvb2wuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzQTIzMjQyQTc1
QzEwMDdGREM0MSAvKiBpY2VfY29udHJvbGxlcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzFDMUVEMjM0QjhBNEIwMDI4QTYxNSAvKiBpY2VfY3JlZGVudGlhbHNfaXRlcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOTI1MjQyQTcwNEUwMDdGREM0MSAvKiB2aWRlb19y
dHBfZGVwYWNrZXRpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzNFMzIzNEM3QTA4MDAy
OEE2MTUgLyogaWNlX2xvZ2dlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGMzIyMzRCODgy
MDAwMjhBNjE1IC8qIGljZV9zZXJ2ZXJfcGFyc2luZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4
OTNBNjYyNDJBNzdGRTAwN0ZEQzQxIC8qIHZvaWNlX2RldGVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzMUJGMkIyMzRCODgyMDAwMjhBNjE1IC8qIGljZV90cmFuc3BvcnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMzFDMzIzMjM0QjhEQzIwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0X2Zh
Y3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMzIyMjM0QjhEQzIwMDI4QTYxNSAvKiBp
Y2VfdHJhbnNwb3J0X2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxRjAyMzRC
OEE0QjAwMjhBNjE1IC8qIGljZV90cmFuc3BvcnRfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzFDMDUwMjM0Qjg5OEQwMDI4QTYxNSAvKiBpZmFkZHJzX2FuZHJvaWQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMzFDMDVFMjM0Qjg5OEQwMDI4QTYxNSAvKiBpZmFkZHJzX2NvbnZlcnRl
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5MUMyNDJBNzA0RTAwN0ZEQzQxIC8qIGNyZWF0
ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUYyNjNBRDIx
MjY4MEE4MDAyNzRGNTkgLyogaWdub3JlX3dhcm5pbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTMxQzA2MzIzNEI4OThEMDAyOEE2MTUgLyogaWdub3JlX3d1bmRlZi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDhCQjQxRTQzQzJCNTAwNjIxRTkyIC8qIGlsYmMuaCBpbiBIZWFkZXJzICovLApA
QCAtMTUyNTgsNyArMTUyMzgsNiBAQAogCQkJCTVDREQ4QkJFMUU0M0MyQjUwMDYyMUU5MiAvKiBp
bnRlcnBvbGF0ZV9zYW1wbGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODMzMTFGRTI0NUNE
MDA0MEMzMEYgLyogaW50ZXJ2YWxfYnVkZ2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUJFNzFC
NTIxNUM0NjM3MDBBN0IxOTYgLyogaW50bnVtLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzlF
MTI0MkE3MzM3MDA3RkRDNDEgLyogc2RwX3NlcmlhbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMzFDMDdDMjM0Qjg5OEQwMDI4QTYxNSAvKiBpcF9hZGRyZXNzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTQzM0NGRjFGNzlCMzM0MDAzODdCNEQgLyogaXNhY19maXhfdHlwZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDg3QzExRTQzQkMwNTAwNjIxRTkyIC8qIGlzYWNfZmxvYXRfdHlwZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xNTI3MCw2ICsxNTI0OSw3IEBACiAJCQkJNDEzMUJGMkMyMzRC
ODgyMDAwMjhBNjE1IC8qIGppdHRlcl9idWZmZXJfZGVsYXlfaW50ZXJmYWNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTMxQkYzQzIzNEI4ODIwMDAyOEE2MTUgLyogaml0dGVyX2J1ZmZlcl9kZWxh
eV9wcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzRTQxRTQzOUE2RjAwNjIxRTkyIC8q
IGppdHRlcl9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOTU5MjQyQTcxRjUw
MDdGREM0MSAvKiBqaXR0ZXJfdXBwZXJfYm91bmRfZXhwZXJpbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzMUMyRkMyMzRCOERDMjAwMjhBNjE1IC8qIGpzZXAuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzFDMzE4MjM0QjhEQzIwMDI4QTYxNSAvKiBqc2VwX2ljZV9jYW5kaWRhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxMzFDMzFGMjM0QjhEQzIwMDI4QTYxNSAvKiBqc2VwX3Nlc3Npb25f
ZGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMTUyNzksMTIgKzE1MjU5LDEyIEBACiAJ
CQkJNDEzMUMwMzgyMzRCODk4RDAwMjhBNjE1IC8qIGtlZXBfcmVmX3VudGlsX2RvbmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDMDg4NTMwMUU0QTk5RDIwMDQwMzk5NSAvKiBrZXkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4NDIwMUU0MzlCMjkwMDYyMUU5MiAvKiBsZWdhY3lfZW5jb2RlZF9h
dWRpb19mcmFtZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTNBM0QyNDJBNzY5QTAwN0ZEQzQx
IC8qIGxldmVsX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzRTY3NzMyMTY5ODYz
QjAwRUYzN0VEIC8qIGxpYnZweF9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMjk0
MDk1MjEyRTEyOEQwMEFEOTVFNyAvKiBsaWJ2cHhfdnA4X2RlY29kZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMjk0MDkzMjEyRTEyOEQwMEFEOTVFNyAvKiBsaWJ2cHhfdnA4X2VuY29kZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxNUYxRkIzMjEyNzJGQkEwMDA2NENCRiAvKiBsaW1pdGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MUJFNzFBQjIxNUM0NjM3MDBBN0IxOTYgLyogbGluZW1hcC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTNBMzIyNDJBNzY3ODAwN0ZEQzQxIC8qIG5ldGVxX2Nv
bnRyb2xsZXJfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0QzYyMzRDODQ1MjAw
MjhBNjE1IC8qIGxpbmtfY2FwYWNpdHlfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUJFNzFCOTIxNUM0NjM3MDBBN0IxOTYgLyogbGlzdGZtdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzMUJGMjMyMzRCODgyMDAwMjhBNjE1IC8qIGxvY2FsX2F1ZGlvX3NvdXJjZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNTI5MiwxNiArMTUyNzIsMTIgQEAKIAkJCQk0MTMxQzAyMjIzNEI4OThEMDAy
OEE2MTUgLyogbG9nX3NpbmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzNFNTIzNEM3QTA4
MDAyOEE2MTUgLyogbG9nZ2VkX2V2ZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwNTcy
MzRCODk4RDAwMjhBNjE1IC8qIGxvZ2dpbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzQTEz
MjQyQTc1N0EwMDdGREM0MSAvKiBmcmFtZV9kZXBlbmRlbmNpZXNfY2FsY3VsYXRvci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDE4OTM4RjAyNDJBNkIxNzAwN0ZEQzQxIC8qIGxvc3NfYmFzZWRfYmFu
ZHdpZHRoX2VzdGltYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNEI5MjM0QzgzREQw
MDI4QTYxNSAvKiBsb3NzX25vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0
QkUyMzRDODQwNjAwMjhBNjE1IC8qIGxvc3Nfbm90aWZpY2F0aW9uX2NvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxOTI0MUMwMjEyNzU5M0YwMDYzNEZDRiAvKiBsb3NzX3JhdGVfZmls
dGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5Mzk1OTI0MkE3MUY1MDA3RkRDNDEgLyogaml0
dGVyX3VwcGVyX2JvdW5kX2V4cGVyaW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOEYw
MjQyQTZCMTcwMDdGREM0MSAvKiBsb3NzX2Jhc2VkX2JhbmR3aWR0aF9lc3RpbWF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REODcwNjFFNDNCQTc1MDA2MjFFOTIgLyogbG91ZG5lc3NfaGlz
dG9ncmFtLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5M0EzMTI0MkE3Njc4MDA3RkRDNDEgLyog
bmV0ZXFfY29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxNDAyMTI3MzcyNDAw
NjM0RkNGIC8qIGxwX3Jlc2lkdWFsLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzkxMjI0MkE3
MDRFMDA3RkRDNDEgLyogcnRwX3NlbmRlcl92aWRlb19mcmFtZV90cmFuc2Zvcm1lcl9kZWxlZ2F0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3QzYxRTQzQkMwNTAwNjIxRTkyIC8qIGxwY19h
bmFseXNpcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCQzIxRTQzQzJCNTAwNjIxRTkyIC8q
IGxwY19lbmNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4N0M4MUU0M0JDMDUwMDYyMUU5
MiAvKiBscGNfZ2Fpbl9zd2JfdGFibGVzLmggaW4gSGVhZGVycyAqLywKQEAgLTE1MzIwLDcgKzE1
Mjk2LDcgQEAKIAkJCQk0MUZDQkIzRDIxQjFGRDQwMDBBNURGMjcgLyogbWF0Y2guaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDRDI4NUQwMUU2QTYzNDMwMDk0RkRDOCAvKiBtYXRjaGVkX2ZpbHRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1Q0UxRTZBNjM0MzAwOTRGREM4IC8qIG1hdGNoZWRf
ZmlsdGVyX2xhZ19hZ2dyZWdhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5Mzk0QjI0MkE3
MEQ3MDA3RkRDNDEgLyogc3R1bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTNBNTgyNDJBNzdC
ODAwN0ZEQzQxIC8qIG1hdGhfdXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQkU3MUI4MjE1
QzQ2MzcwMEE3QjE5NiAvKiBtZDUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMUU2MjM0QjhB
NEIwMDI4QTYxNSAvKiBtZG5zX21lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMDc2
MjM0Qjg5OEQwMDI4QTYxNSAvKiBtZG5zX3Jlc3BvbmRlcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTUzMzQsMTIgKzE1MzEwLDEyIEBACiAJCQkJNDEzMUJGMjEyMzRCODgyMDAwMjhB
NjE1IC8qIG1lZGlhX3Nlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFCRjE2MjM0Qjg4
MjAwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMzFC
MjM0QjhEQzIwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW1faW50ZXJmYWNlLmggaW4gSGVhZGVycyAq
LywKLQkJCQk0MTg5Mzk0ODI0MkE3MEQ3MDA3RkRDNDEgLyogZGF0YWdyYW1fdHJhbnNwb3J0X2lu
dGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGMEMyMzRCODgyMDAwMjhBNjE1IC8q
IG1lZGlhX3N0cmVhbV9vYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzMDgyMzRC
OERDMjAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbV9wcm94eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDE4OTM5OTQyNDJBNzI1MjAwN0ZEQzQxIC8qIHdpZW5lcl9maWx0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMzFCRjY0MjM0Qjg4MjAwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW1fdHJhY2suaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFDMkVFMjM0QjhEQzIwMDI4QTYxNSAvKiBtZWRpYV9zdHJl
YW1fdHJhY2tfcHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOUY5MjQyQTc0RjgwMDdG
REM0MSAvKiBtZWRpYV90cmFuc3BvcnRfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5
MzlGODI0MkE3NEY4MDA3RkRDNDEgLyogbWVkaWFfdHJhbnNwb3J0X2ludGVyZmFjZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUMyRjEyMzRCOERDMjAwMjhBNjE1IC8qIG1lZGlhX3R5cGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MUUwMkNBRjIxMjczNTJEMDBDMjdDRDYgLyogbWVkaWFuX3Ns
b3BlX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBMDhCQjgyMTI2OEE3RDAwMUQ1
RDdCIC8qIG1lbW9yeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTM1MCw2ICsxNTMyNiw3IEBACiAJ
CQkJNDEzMUMwN0UyMzRCODk4RDAwMjhBNjE1IC8qIG1lc3NhZ2VfYnVmZmVyX3JlYWRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwOEIyMzRCODk4RDAwMjhBNjE1IC8qIG1lc3NhZ2VfZGln
ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzA3MDIzNEI4OThEMDAyOEE2MTUgLyogbWVz
c2FnZV9oYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5Mzk1QzI0MkE3MUY1MDA3RkRD
NDEgLyogbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg3MDcxRTQzQkE3NTAwNjIxRTkyIC8qIG1vY2tfYWdjLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTMxQzFCRDIzNEI4QTRBMDAyOEE2MTUgLyogbW9ja19hc3luY19yZXNvbHZlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUMxMUEwMDUxRTQ1NzQwMDAwNEYwOTg3IC8qIG1vY2tfYXVkaW9fZGV2
aWNlX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTM3MSwzMyArMTUzNDgsMzkgQEAKIAkJ
CQk1Q0REODk1NDFFNDNCRjNBMDA2MjFFOTIgLyogbmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDgzRUIxRTQzOUE2RjAwNjIxRTkyIC8qIG5hY2tfbW9kdWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REOEEzMzFFNDNCRkIzMDA2MjFFOTIgLyogbmFja190cmFja2VyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk0MTg5Mzk4MjI0MkE3MjUxMDA3RkRDNDEgLyogbm9pc2Vfc3VwcHJlc3Nvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NUU0QjcxRUY4OTQzRTAwRkNGNkU2IC8qIG5hbHVfcmV3
cml0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzk1M0JGMjE2OTgyNEIwMDI4MjY2QiAvKiBu
YWx1X3Jld3JpdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzAzMTIzNEI4OThEMDAyOEE2
MTUgLyogbmF0X3NlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwNTMyMzRCODk4RDAw
MjhBNjE1IC8qIG5hdF9zb2NrZXRfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMw
NkMyMzRCODk4RDAwMjhBNjE1IC8qIG5hdF90eXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4
OTNBMDQyNDJBNzUzQzAwN0ZEQzQxIC8qIG5lYXJlbmRfZGV0ZWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4QkQyMUU0M0MyQjUwMDYyMUU5MiAvKiBuZWFyZXN0X25laWdoYm9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQzA2NzIzNEI4OThEMDAyOEE2MTUgLyogbmV0X2hlbHBlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwMzIyMzRCODk4RDAwMjhBNjE1IC8qIG5ldF9oZWxw
ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5M0EzNjI0MkE3Njc4MDA3RkRDNDEgLyogbmV0
ZXEuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzQTMxMjQyQTc2NzgwMDdGREM0MSAvKiBuZXRl
cV9jb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5M0EzMjI0MkE3Njc4MDA3RkRD
NDEgLyogbmV0ZXFfY29udHJvbGxlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5
M0EzOTI0MkE3Njc4MDA3RkRDNDEgLyogbmV0ZXFfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDhBMzcxRTQzQkZCMzAwNjIxRTkyIC8qIG5ldGVxX2ltcGwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4QTlFMUU0M0MwMEYwMDYyMUU5MiAvKiBuZXRlcV9pbnB1dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhBQTYxRTQzQzAwRjAwNjIxRTkyIC8qIG5ldGVxX3JlcGxhY2VtZW50
X2lucHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzA4NjIzNEI4OThEMDAyOEE2MTUgLyog
bmV0d29yay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTNBNTkyNDJBNzdCODAwN0ZEQzQxIC8q
IHNhbXBsZXNfc3RhdHNfY291bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwNUYyMzRC
ODk4RDAwMjhBNjE1IC8qIG5ldHdvcmtfY29uc3RhbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUUwMkNDRjIxMjczNUI3MDBDMjdDRDYgLyogbmV0d29ya19jb250cm9sLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTMxQzAyNzIzNEI4OThEMDAyOEE2MTUgLyogbmV0d29ya19tb25pdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQzAzNjIzNEI4OThEMDAyOEE2MTUgLyogbmV0d29ya19yb3V0
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTNBNDkyNDJBNzc4OTAwN0ZEQzQxIC8qIGRpdmlk
ZV9yb3VuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzMTYyMzRCOERDMjAwMjhBNjE1IC8q
IG5ldHdvcmtfc3RhdGVfcHJlZGljdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUwMkNDRTIx
MjczNUI3MDBDMjdDRDYgLyogbmV0d29ya190eXBlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4
OTM5OUEyNDJBNzI1MjAwN0ZEQzQxIC8qIG5vaXNlX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDg3MkIxRTQzQkFCRTAwNjIxRTkyIC8qIG5vaXNlX2dtbV90YWJsZXMuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQxODkzOUM4MjQyQTczMzcwMDdGREM0MSAvKiBzY3RwX2RhdGFfY2hh
bm5lbF90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNUYxRkI0MjEyNzJGQkEwMDA2
NENCRiAvKiBub2lzZV9zcGVjdHJ1bV9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
ODkzOTgyMjQyQTcyNTEwMDdGREM0MSAvKiBub2lzZV9zdXBwcmVzc29yLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REOEEzRTFFNDNCRkIzMDA2MjFFOTIgLyogbm9ybWFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0REODZBODFFNDNCOTk0MDA2MjFFOTIgLyogbm9ybWFsaXplZF9jb3ZhcmlhbmNl
X2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzMTkyMzRCOERDMjAwMjhBNjE1
IC8qIG5vdGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5Mzk5QjI0MkE3MjUyMDA3RkRD
NDEgLyogbnNfY29tbW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5Mzk5OTI0MkE3MjUyMDA3
RkRDNDEgLyogbnNfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5Mzk5NjI0MkE3MjUy
MDA3RkRDNDEgLyogbnNfZmZ0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUVDRUFDMTIwNjQwRjI4
MDA5RDUxNDEgLyogTlNTdHJpbmcrU3RkU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0
QjNFRjIxNjlDNjNGMDA0MzYzQUMgLyogTlNTdHJpbmcrU3RkU3RyaW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTlDODNCNDFGRTI0NzJFMDA0MEMzMEYgLyogbnVsbF9hdWRpb19wb2xsZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMTU0MjAsMTkgKzE1NDAzLDE5IEBACiAJCQkJNDEzMUMxMjIyMzRC
ODlFMjAwMjhBNjE1IC8qIG9wZW5zc2xfc2Vzc2lvbl9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUMxMkIyMzRCODlFMjAwMjhBNjE1IC8qIG9wZW5zc2xfc3RyZWFtX2FkYXB0ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFDMTRDMjM0Qjg5RTIwMDI4QTYxNSAvKiBvcGVuc3NsX3V0
aWxpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzQTQxMjQyQTc2RjIwMDdGREM0MSAvKiBv
cGVyYXRpb25zX2NoYWluLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUREQjI1MTIxMjY1QkU5MDAy
OTZENDcgLyogb3B0aW9uYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzY2MUU0M0M2MDkw
MDYyMUU5MiAvKiBvcHVzX2luc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzY4MUU0M0M2
MDkwMDYyMUU5MiAvKiBvcHVzX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3
Q0YxRTQzQkMwNTAwNjIxRTkyIC8qIG9zX3NwZWNpZmljX2lubGluZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDhBQUExRTQzQzAwRjAwNjIxRTkyIC8qIG91dHB1dF9hdWRpb19maWxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0QyODQ5QzFFNkE1RjQxMDA5NEZEQzggLyogb3V0cHV0X3JhdGVf
Y2FsY3VsYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTNBNkEyNDJBNzgyNjAwN0ZEQzQx
IC8qIHJ0cF9wYWNrZXRfcGFjZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QUFCMUU0M0Mw
MEYwMDYyMUU5MiAvKiBvdXRwdXRfd2F2X2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
RkQ4MUU0M0NENjYwMDYyMUU5MiAvKiBvdmVydXNlX2RldGVjdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REOEZEQTFFNDNDRDY2MDA2MjFFOTIgLyogb3ZlcnVzZV9lc3RpbWF0b3IuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxODkzOEUyMjQyQTY5Q0MwMDdGREM0MSAvKiBvdmVydXNlX2ZyYW1l
X2RldGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzFCNjIzNEI4QTRBMDAyOEE2MTUg
LyogcDJwX2NvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxQkEyMzRCOEE0QTAw
MjhBNjE1IC8qIHAycF90cmFuc3BvcnRfY2hhbm5lbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4
OTM5ODAyNDJBNzI1MTAwN0ZEQzQxIC8qIHF1YW50aWxlX25vaXNlX2VzdGltYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDFGMjYzOTgyMTI2N0Y1RTAwMjc0RjU5IC8qIHBhX21lbW9yeWJhcnJp
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjI2Mzk5MjEyNjdGNUUwMDI3NEY1OSAvKiBwYV9y
aW5nYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEZBMzFFNDNDQ0JFMDA2MjFFOTIg
LyogcGFjZWRfc2VuZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTE1NDcyLDcgKzE1NDU1LDYgQEAK
IAkJCQk0MTkyNDE0MzIxMjczNzI4MDA2MzRGQ0YgLyogcGl0Y2hfaW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDg3MzExRTQzQkFCRTAwNjIxRTkyIC8qIHBpdGNoX2ludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0REODdENjFFNDNCQzA2MDA2MjFFOTIgLyogcGl0Y2hfbGFnX3Rh
Ymxlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5REIyNDJBNzMzNzAwN0ZEQzQxIC8qIGNv
bXBvc2l0ZV9kYXRhX2NoYW5uZWxfdHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQz
M0QwOTFGNzlCMzM0MDAzODdCNEQgLyogcGl0Y2hfbGFnX3RhYmxlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE5MjQxM0MyMTI3MzcyNDAwNjM0RkNGIC8qIHBpdGNoX3NlYXJjaC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE5MjQxNDUyMTI3MzcyODAwNjM0RkNGIC8qIHBpdGNoX3NlYXJjaF9pbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTQ4NCwxMSArMTU0NjYsMTIgQEAKIAkJCQk1Q0RE
OEJEODFFNDNDMkI1MDA2MjFFOTIgLyogcG9seV90b19sc3AuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMzFDMURFMjM0QjhBNEIwMDI4QTYxNSAvKiBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTMxQzFCMzIzNEI4QTRBMDAyOEE2MTUgLyogcG9ydF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxODkzOTQxMjQyQTcwQUUwMDdGREM0MSAvKiByZXNvdXJjZV9jb25zdW1lcl9jb25m
aWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzFDQTIzNEI4QTRBMDAyOEE2MTUg
LyogcG9ydF9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTQ2MUU0M0JGQjMw
MDYyMUU5MiAvKiBwb3N0X2RlY29kZV92YWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4MzVB
MUU0MzI1NzIwMDYyMUU5MiAvKiBwcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
OEE0ODFFNDNCRkIzMDA2MjFFOTIgLyogcHJlZW1wdGl2ZV9leHBhbmQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxODkzOTg2MjQyQTcyNTEwMDdGREM0MSAvKiBwcmlvcl9zaWduYWxfbW9kZWwuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxODkzOThGMjQyQTcyNTIwMDdGREM0MSAvKiBwcmlvcl9zaWdu
YWxfbW9kZWxfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUwMkNBNzIxMjczNTJE
MDBDMjdDRDYgLyogcHJvYmVfYml0cmF0ZV9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxRTAyQ0E0MjEyNzM1MkQwMEMyN0NENiAvKiBwcm9iZV9jb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0REODRFNjFFNDNCMDREMDA2MjFFOTIgLyogcHJvY2Vzc190aHJlYWRfaW1w
bC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTUwMSw4ICsxNTQ4NCwxMiBAQAogCQkJCTVDREQ4OTU5
MUU0M0JGM0EwMDYyMUU5MiAvKiBwc2ZiLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODc1NjFF
NDNCQUY1MDA2MjFFOTIgLyogcHVzaF9zaW5jX3Jlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUM0QTMyMzRDODM0RTAwMjhBNjE1IC8qIHF1YWxpdHlfbGltaXRhdGlvbl9yZWFzb25f
dHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5NUYyNDJBNzFGNTAwN0ZEQzQxIC8q
IHF1YWxpdHlfcmFtcHVwX2V4cGVyaW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Mzgy
MUU0MzlBMzUwMDYyMUU5MiAvKiBxdWFsaXR5X3NjYWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDE4OTM4REEyNDJBNjlDQzAwN0ZEQzQxIC8qIHF1YWxpdHlfc2NhbGVyX3Jlc291cmNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTg5Mzk1RTI0MkE3MUY1MDA3RkRDNDEgLyogcXVhbGl0eV9zY2Fs
aW5nX2V4cGVyaW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NjJCMUU2QTY2QzgwMDk0
RkRDOCAvKiBxdWFsaXR5X3RocmVzaG9sZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5ODAy
NDJBNzI1MTAwN0ZEQzQxIC8qIHF1YW50aWxlX25vaXNlX2VzdGltYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEzMUM0ODcyMzRDODI3NDAwMjhBNjE1IC8qIHF1ZXVlZF90YXNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTMxQzE0MTIzNEI4OUUyMDAyOEE2MTUgLyogcmFjZV9jaGVja2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzE0MDIzNEI4OUUyMDAyOEE2MTUgLyogcmFuZG9tLmgg
aW4gSGVhZGVycyAqLywKQEAgLTE1NTEwLDcgKzE1NDk3LDYgQEAKIAkJCQk1Q0REODk1QzFFNDNC
RjNBMDA2MjFFOTIgLyogcmFwaWRfcmVzeW5jX3JlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMzFDMTEyMjM0Qjg5RTIwMDI4QTYxNSAvKiByYXRlX2xpbWl0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMzFDMTU3MjM0Qjg5RTIwMDI4QTYxNSAvKiByYXRlX3N0YXRpc3RpY3MuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQxODkzOTNCMjQyQTcwQUUwMDdGREM0MSAvKiByZXNvdXJjZV9jb25z
dW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxMDQyMzRCODlFMjAwMjhBNjE1IC8qIHJh
dGVfdHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFBMDhCQ0IyMTI2OTYxRjAwMUQ1RDdC
IC8qIHJhd19sb2dnaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUzMzFFNEE5OUQyMDA0
MDM5OTUgLyogcmRiLmggaW4gSGVhZGVycyAqLywKQEAgLTE1NTI0LDYgKzE1NTEwLDcgQEAKIAkJ
CQk0MUQ2QjQ1ODIxMjczMTU5MDA4RjkzNTMgLyogcmVjZWl2ZV90aW1lX2NhbGN1bGF0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4M0Y1MUU0MzlBNkYwMDYyMUU5MiAvKiByZWNlaXZlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NUYxRTQzQkYzQTAwNjIxRTkyIC8qIHJlY2VpdmVy
X3JlcG9ydC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkxREQyNDJFMEJCQzAwQzVFREEyIC8q
IHJlY29yZGFibGVfZW5jb2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBNEUx
RTQzQkZCMzAwNjIxRTkyIC8qIHJlZF9wYXlsb2FkX3NwbGl0dGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTMxQzEwMTIzNEI4OUUyMDAyOEE2MTUgLyogcmVmX2NvdW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTMxQzJGRDIzNEI4REMyMDAyOEE2MTUgLyogcmVmX2NvdW50ZWRfYmFzZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xNTUzNCwyMCArMTU1MjEsMTcgQEAKIAkJCQk0MTMxQzQ1NTIzNEM4
MTE4MDAyOEE2MTUgLyogcmVsYXlfcG9ydF9mYWN0b3J5X2ludGVyZmFjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDg5NjIxRTQzQkYzQTAwNjIxRTkyIC8qIHJlbWIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMDJGNkE3MjEyNzMyNjIwMDZBRThENyAvKiByZW1peF9yZXNhbXBsZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJNDE4OTM5ODUyNDJBNzI1MTAwN0ZEQzQxIC8qIGhpc3RvZ3JhbXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFCRjAyMjM0Qjg4MjAwMDI4QTYxNSAvKiByZW1vdGVfYXVk
aW9fc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEZEQzFFNDNDRDY2MDA2MjFFOTIg
LyogcmVtb3RlX2JpdHJhdGVfZXN0aW1hdG9yX2Fic19zZW5kX3RpbWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4RkRFMUU0M0NENjYwMDYyMUU5MiAvKiByZW1vdGVfYml0cmF0ZV9lc3RpbWF0
b3Jfc2luZ2xlX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0QjcyMzRDODNERDAw
MjhBNjE1IC8qIHJlbW90ZV9lc3RpbWF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGRTIx
RTQzQ0Q2NjAwNjIxRTkyIC8qIHJlbW90ZV9lc3RpbWF0b3JfcHJveHkuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxMDA5MUY5MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxOUM4M0M1MUZFMjQ3QjQwMDQwQzMwRiAvKiByZW1vdGVfbnRwX3Rp
bWVfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ1RTREQTFFRjhDQzlCMDBGQ0Y2
RTYgLyogcmVuZGVyX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1RDYxRTZBNjM0
MzAwOTRGREM4IC8qIHJlbmRlcl9kZWxheV9idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
RDI4NURBMUU2QTYzNDMwMDk0RkRDOCAvKiByZW5kZXJfZGVsYXlfY29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNEMjg1RDgxRTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9kZWxheV9j
b250cm9sbGVyX21ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NEJDMUU0M0FGMTMw
MDYyMUU5MiAvKiByZW5kZXJfcXVldWVfaXRlbV92ZXJpZmllci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNDE4OTNBNUQyNDJBNzdCODAwN0ZEQzQxIC8qIHNhbXBsZV9zdGF0cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNEMjg1REMxRTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9zaWduYWxfYW5hbHl6
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNEU1MjM0Qzg1MkUwMDI4QTYxNSAvKiByZXBl
YXRpbmdfdGFzay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NjUxRTQzQkYzQTAwNjIxRTky
IC8qIHJlcG9ydF9ibG9jay5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTU1NSw5ICsxNTUzOSwxMyBA
QAogCQkJCTVDREQ4NUFGMUU0M0I1QzAwMDYyMUU5MiAvKiByZXBvcnRfYmxvY2tfc3RhdHMuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4NjY1MUU0M0I4QjUwMDYyMUU5MiAvKiByZXNhbXBsZV9i
eV8yX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEFCMjFFNDNDMDBGMDA2MjFF
OTIgLyogcmVzYW1wbGVfaW5wdXRfYXVkaW9fZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4
OTNBMzMyNDJBNzY3ODAwN0ZEQzQxIC8qIGN1c3RvbV9uZXRlcV9mYWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0REODRCRTFFNDNBRjEzMDA2MjFFOTIgLyogcmVzaWR1YWxfZWNob19kZXRl
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1REUxRTZBNjM0MzAwOTRGREM4IC8qIHJl
c2lkdWFsX2VjaG9fZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5Mzk0MjI0MkE3
MEFFMDA3RkRDNDEgLyogcmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOERCMjQy
QTY5Q0MwMDdGREM0MSAvKiByZXNvdXJjZV9hZGFwdGF0aW9uX3Byb2Nlc3Nvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDE4OTM5M0EyNDJBNzBBRTAwN0ZEQzQxIC8qIHJlc291cmNlX2FkYXB0YXRp
b25fcHJvY2Vzc29yX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5M0IyNDJB
NzBBRTAwN0ZEQzQxIC8qIHJlc291cmNlX2NvbnN1bWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTg5Mzk0MTI0MkE3MEFFMDA3RkRDNDEgLyogcmVzb3VyY2VfY29uc3VtZXJfY29uZmlndXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzODEyMzRCOTU3RDAwMjhBNjE1IC8qIHJldmVy
Yl9kZWNheV9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMzdCMjM0Qjk1N0Qw
MDI4QTYxNSAvKiByZXZlcmJfZnJlcXVlbmN5X3Jlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTMxQzM4ODIzNEI5NTdEMDAyOEE2MTUgLyogcmV2ZXJiX21vZGVsLmggaW4gSGVhZGVycyAq
LywKQEAgLTE1NTY5LDExICsxNTU1NywxMSBAQAogCQkJCTQxOTI0MUFBMjEyNzU4RDMwMDYzNEZD
RiAvKiBybm4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MTlDMjEyNzU4NjUwMDYzNEZDRiAv
KiBybm5fYWN0aXZhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MTk4MjEyNzU4NjUw
MDYzNEZDRiAvKiBybm5fdmFkX3dlaWdodHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOEYz
MjQyQTZCMTcwMDdGREM0MSAvKiByb2J1c3RfdGhyb3VnaHB1dF9lc3RpbWF0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMzFDMTIxMjM0Qjg5RTIwMDI4QTYxNSAvKiByb2xsaW5nX2FjY3VtdWxh
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEwOEJEMzIxMjcyRUZBMDAxRDVEN0IgLyogcm91
bmRfcm9iaW5fcGFja2V0X3F1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODk2QjFFNDNC
RjNBMDA2MjFFOTIgLyogcnJ0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxMEYyMzRCODlF
MjAwMjhBNjE1IC8qIHJ0Y19jZXJ0aWZpY2F0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDFDMDFG
QzcyNDJCNUMwQjAwRTA4MDE4IC8qIHJ0Y19zdGF0c19yZXBvcnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzFDMTJDMjM0Qjg5RTIwMDI4QTYxNSAvKiBydGNfY2VydGlmaWNhdGVfZ2VuZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzJGRTIzNEI4REMyMDAyOEE2MTUgLyogcnRjX2Vy
cm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzQ2RjIzNEM4MUI2MDAyOEE2MTUgLyogcnRj
X2V2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTE1NTg4LDcgKzE1NTc2LDYgQEAKIAkJCQk0MTMx
QzU0NTIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2R0bHNfdHJhbnNwb3J0X3N0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzU0NDIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50
X2R0bHNfd3JpdGFibGVfc3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNTRCMjM0QzhC
MTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfZ2VuZXJpY19hY2tfcmVjZWl2ZWQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxODkzOUQzMjQyQTczMzcwMDdGREM0MSAvKiBydGNfc3RhdHNfY29sbGVjdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzUzRTIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2
ZW50X2dlbmVyaWNfcGFja2V0X3JlY2VpdmVkLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzU1
NjIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X2dlbmVyaWNfcGFja2V0X3NlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxQTA4QkJFMjEyNjk1NTMwMDFENUQ3QiAvKiBydGNfZXZlbnRfaWNl
X2NhbmRpZGF0ZV9wYWlyLmggaW4gSGVhZGVycyAqLywKQEAgLTE1NjEwLDcgKzE1NTk3LDE0IEBA
CiAJCQkJNDEzMUM1MzgyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9ydHBfcGFja2V0X291
dGdvaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzU0RjIzNEM4QjE5MDAyOEE2MTUgLyog
cnRjX2V2ZW50X3ZpZGVvX3JlY2VpdmVfc3RyZWFtX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUM1NTMyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF92aWRlb19zZW5kX3N0cmVh
bV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxQzAxRkNCMjQyQjY1MkIwMEUwODAxOCAv
KiBydGNfZXhwb3J0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MUMwMUZDQTI0MkI2NTJCMDBFMDgw
MTggLyogcnRjX2V4cG9ydF90ZW1wbGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFDMDFGQzYy
NDJCNUMwQjAwRTA4MDE4IC8qIHJ0Y19zdGF0cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5
RDMyNDJBNzMzNzAwN0ZEQzQxIC8qIHJ0Y19zdGF0c19jb2xsZWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMzFCRjIwMjM0Qjg4MjAwMDI4QTYxNSAvKiBydGNfc3RhdHNfY29sbGVjdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MUMwMUZDNTI0MkI1QzBCMDBFMDgwMTggLyogcnRjX3N0YXRz
X2NvbGxlY3Rvcl9jYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFDMDFGQzcyNDJCNUMw
QjAwRTA4MDE4IC8qIHJ0Y19zdGF0c19yZXBvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkz
OURFMjQyQTczMzcwMDdGREM0MSAvKiBydGNfc3RhdHNfdHJhdmVyc2FsLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTMxQkY1RjIzNEI4ODIwMDAyOEE2MTUgLyogcnRjX3N0YXRzX3RyYXZlcnNhbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5Qzg0MUUxRkUyNEFFRjAwNDBDMzBGIC8qIHJ0Y19zdHJl
YW1fY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ2MjFGRTE5OTFBMDAzNzNFOTkg
LyogUlRDQXVkaW9TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTE1NjIyLDYgKzE1NjE2LDgg
QEAKIAkJCQk0MTc5NTNGODIxNjk4NEJFMDAyODI2NkIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm8u
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxNzk1M0JBMjE2OTgyNDIwMDI4MjY2QiAvKiBSVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjQrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUzQzAy
MTY5ODI0QjAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDEwMDkyMEMyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NStQcml2YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTAwOTIwQjI0MkUzQTQ2MDBDNUVE
QTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNB
MjQ0NDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzRTY3OEEyMTY5ODdCOTAwRUYzN0VEIC8qIFJUQ0NWUGl4ZWxCdWZmZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxM0EyNDU1MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENEYXRhQ2hhbm5l
bC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTYzMiwxNCArMTU2MjgsMTIgQEAKIAkJCQk0MTNBMjQ1
RDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRUFHTFZpZGVvVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE0NEIzRjYyMTZCMDgxQjAwNDM2M0FDIC8qIFJUQ0VuY29kZWRJbWFnZStQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTc5NTNGNzIxNjk4NEJFMDAyODI2NkIgLyogUlRDRW5jb2Rl
ZEltYWdlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5M0E0NTI0MkE3NzRGMDA3RkRDNDEgLyog
YWNtX3JlbWl4aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ0MDFGRTE5OTFBMDAzNzNF
OTkgLyogUlRDRmllbGRUcmlhbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDVBMUZFMTk5
MUEwMDM3M0U5OSAvKiBSVENGaWxlTG9nZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ1
NjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRmlsZVZpZGVvQ2FwdHVyZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxMDA5MURDMjQyRTBCQkMwMEM1RURBMiAvKiB2aWRlb19jb2RlY190eXBlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTc5NTNDMzIxNjk4MjRCMDAyODI2NkIgLyogUlRDSDI2NFByb2Zp
bGVMZXZlbElkLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTAwOTIwRTI0MkUzQTQ2MDBDNUVEQTIg
LyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTc5NTNGOTIx
Njk4NEJFMDAyODI2NkIgLyogUlRDSTQyMEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4
OTM5RTMyNDJBNzMzNzAwN0ZEQzQxIC8qIHZpZGVvX3RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTNBMjQ0RTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDSWNlQ2FuZGlkYXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTNBMjQ1RTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDSWNlU2VydmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTNBMjQ0MjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDTGVnYWN5U3Rh
dHNSZXBvcnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTU2NTksNiArMTU2NTMsNyBAQAogCQkJCTQx
M0EyNDU5MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENOU0dMVmlkZW9WaWV3LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTlDODJCMjFGRTIwRENEMDA0MEMzMEYgLyogcnRjcF9kZW11eGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTMxQkYxMjIzNEI4ODIwMDAyOEE2MTUgLyogcnRjcF9tdXhfZmlsdGVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5MzlDRDI0MkE3MzM3MDA3RkRDNDEgLyogcnRjcF9t
dXhfZmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVGQjFFNkE2NDUyMDA5NEZEQzgg
LyogcnRjcF9uYWNrX3N0YXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODg5ODFFNDNCRTND
MDA2MjFFOTIgLyogcnRjcF9wYWNrZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MkJEMUZF
MjBEQ0QwMDQwQzMwRiAvKiBydGNwX3BhY2tldF9zaW5rX2ludGVyZmFjZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xNTY2Niw3ICsxNTY2MSw2IEBACiAJCQkJNUNERDg4OUUxRTQzQkUzQzAwNjIxRTky
IC8qIHJ0Y3Bfc2VuZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzRFRjIzNEM4NjExMDAy
OEE2MTUgLyogcnRjcF9zdGF0aXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODMwMzFG
RTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
NDEwMDkxRkQyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTlDODMwMTFGRTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9jb25maWcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzA1MUZFMjBGMDIwMDQwQzMwRiAvKiBydGNwX3Ry
YW5zY2VpdmVyX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDNFMUZFMTk5MUEwMDM3
M0U5OSAvKiBSVENQZWVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTY4Myw3ICsx
NTY3Nyw2IEBACiAJCQkJNDEzQTI0NEExRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NjYxRkUxOTkxQTAwMzczRTk5IC8q
IFJUQ1NTTEFkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDVFNEM3MUVGODk2RDcwMEZD
RjZFNiAvKiBydGNzdGF0c19vYmplY3RzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzlEMDI0
MkE3MzM3MDA3RkRDNDEgLyogc3J0cF90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
M0EyNDVGMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENUcmFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTNBMjQzRDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9DYXB0dXJlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFFQ0VBQjYyMDYzMDEwODAwOUQ1MTQxIC8qIFJUQ1ZpZGVvQ29kZWMrUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTY5MSwyMSArMTU2ODQsMjEgQEAKIAkJCQk0MTNF
Njc2NjIxNjk4NTRCMDBFRjM3RUQgLyogUlRDVmlkZW9Db2RlY0NvbnN0YW50cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDEzQTI0NTMxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvQ29kZWNGYWN0
b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQzQzFGRTE5OTFBMDAzNzNFOTkgLyogUlRD
VmlkZW9Db2RlY0gyNjQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOUQ4MjQyQTczMzcwMDdG
REM0MSAvKiBydHBfdHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0QjNFQjIxNjlD
NUUzMDA0MzYzQUMgLyogUlRDVmlkZW9Db2RlY0luZm8rUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzRTY3OTkyMTY5ODgzOTAwRUYzN0VEIC8qIFJUQ1ZpZGVvQ29kZWNJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTQ0QjNERDIxNjlBMDcwMDA0MzYzQUMgLyogUlRDVmlkZW9EZWNv
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0QjNFMDIxNjlBMDcwMDA0MzYzQUMgLyogUlRD
VmlkZW9EZWNvZGVyRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUzQzUyMTY5ODI0
QjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTc5NTNDNjIxNjk4MjRCMDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMDkyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRGVj
b2RlckgyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDY1MUZFMTk5MUEwMDM3M0U5OSAv
KiBSVENWaWRlb0RlY29kZXJWUDguaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0Y0RDcwMjJCMEJB
RUYwMDZBN0E2QiAvKiBSVENWaWRlb0RlY29kZXJWUDguaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
M0EyNDYwMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb0RlY29kZXJWUDkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxNDRCM0RFMjE2OUEwNzAwMDQzNjNBQyAvKiBSVENWaWRlb0VuY29kZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTQxODkzQTU4MjQyQTc3QjgwMDdGREM0MSAvKiBtYXRoX3V0aWxz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ0QjNERjIxNjlBMDcwMDA0MzYzQUMgLyogUlRDVmlk
ZW9FbmNvZGVyRmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3OTUzQzgyMTY5ODI0QjAw
MjgyNjZCIC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTc5NTNDOTIxNjk4MjRCMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVySDI2NC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDEwMDkyMEQyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2Rl
ckgyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0U2N0EwMjE2OTg4OTUwMEVGMzdFRCAvKiBS
VENWaWRlb0VuY29kZXJRcFRocmVzaG9sZHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDRCM0VB
MjE2OUM1RTMwMDQzNjNBQyAvKiBSVENWaWRlb0VuY29kZXJTZXR0aW5ncytQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTNFNjc4NTIxNjk4NzdEMDBFRjM3RUQgLyogUlRDVmlkZW9FbmNv
ZGVyU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovLApAQCAtMTU3MTUsNyArMTU3MDgsNiBAQAogCQkJ
CTQxM0EyNDRGMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTNFNjc4RjIxNjk4N0RCMDBFRjM3RUQgLyogUlRDVmlkZW9GcmFtZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzRTY3OTEyMTY5ODdEQjAwRUYzN0VEIC8qIFJUQ1ZpZGVvRnJhbWVC
dWZmZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMDA5MUVEMjQyRTMxNzQwMEM1RURBMiAvKiBo
MjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDQxMUZF
MTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb0ZyYW1lQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTNBMjQ2RjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9SZW5kZXJlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDEzQTI0NjExRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvU291cmNlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTE1NzI5LDExICsxNTcyMSwxMiBAQAogCQkJCTQxMzA5MjAxMUVG
OEQwQTYwMDc1N0M1NSAvKiBydHBfZGVtdXhlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0
RDYyMzRDODRBMzAwMjhBNjE1IC8qIHJ0cF9kZXBlbmRlbmN5X2Rlc2NyaXB0b3JfZXh0ZW5zaW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzREQjIzNEM4NEEzMDAyOEE2MTUgLyogcnRwX2Rl
cGVuZGVuY3lfZGVzY3JpcHRvcl9yZWFkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzQTM4
MjQyQTc2NzgwMDdGREM0MSAvKiB0aWNrX3RpbWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMx
QzREQzIzNEM4NEEzMDAyOEE2MTUgLyogcnRwX2RlcGVuZGVuY3lfZGVzY3JpcHRvcl93cml0ZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOTFCMjQyQTcwNEUwMDdGREM0MSAvKiBydHBfZGVz
Y3JpcHRvcl9hdXRoZW50aWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBQjcxRTQz
QzAwRjAwNjIxRTkyIC8qIHJ0cF9maWxlX3NvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDg4QjExRTQzQkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4OEE1MUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0X2gyNjQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMDA5MUU3MjQyRTJBQTMwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4OEE3MUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0
X3ZpZGVvX2dlbmVyaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OEFDMUU0M0JFM0MwMDYy
MUU5MiAvKiBydHBfZm9ybWF0X3ZwOC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg4QUYxRTQz
QkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRfdnA5LmggaW4gSGVhZGVycyAqLywKQEAgLTE1NzQ1
LDExICsxNTczOCwxMyBAQAogCQkJCTQxM0U2NzdFMjE2OTg2QUUwMEVGMzdFRCAvKiBydHBfaGVh
ZGVyX2V4dGVuc2lvbl9zaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODhCNjFFNDNCRTND
MDA2MjFFOTIgLyogcnRwX2hlYWRlcl9leHRlbnNpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTMxQzMxNDIzNEI4REMyMDAyOEE2MTUgLyogcnRwX2hlYWRlcnMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxODkzOUM3MjQyQTczMzcwMDdGREM0MSAvKiBydHBfbWVkaWFfdXRpbHMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMzFCRjJGMjM0Qjg4MjAwMDI4QTYxNSAvKiBydHBfbWVkaWFfdXRpbHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OEJGMUU0M0JFM0QwMDYyMUU5MiAvKiBydHBfcGFj
a2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODhCQTFFNDNCRTNEMDA2MjFFOTIgLyogcnRw
X3BhY2tldF9oaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzM0NTIzNEI4RERGMDAy
OEE2MTUgLyogcnRwX3BhY2tldF9pbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzMzQjIz
NEI4RERGMDAyOEE2MTUgLyogcnRwX3BhY2tldF9pbmZvcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDE4OTNBNkEyNDJBNzgyNjAwN0ZEQzQxIC8qIHJ0cF9wYWNrZXRfcGFjZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4OEJCMUU0M0JFM0QwMDYyMUU5MiAvKiBydHBfcGFja2V0X3JlY2VpdmVk
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzRFRTIzNEM4NjExMDAyOEE2MTUgLyogcnRwX3Bh
Y2tldF9zZW5kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MkI2MUZFMjBEQ0QwMDQwQzMw
RiAvKiBydHBfcGFja2V0X3NpbmtfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKQEAgLTE1NzY3
LDkgKzE1NzYyLDEwIEBACiAJCQkJNDEzMUJGMUYyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF9zZW5k
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OEQ0MUU0M0JFM0QwMDYyMUU5MiAvKiBydHBf
c2VuZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODhDRjFFNDNCRTNEMDA2MjFFOTIgLyog
cnRwX3NlbmRlcl9hdWRpby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5MTgyNDJBNzA0RTAw
N0ZEQzQxIC8qIHJ0cF9zZW5kZXJfZWdyZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzM0
NjIzNEI4RERGMDAyOEE2MTUgLyogcnRwX3NlbmRlcl9pbnRlcmZhY2UuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxODkzOTRDMjQyQTcwRDcwMDdGREM0MSAvKiBjb25nZXN0aW9uX2NvbnRyb2xfaW50
ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODhEMjFFNDNCRTNEMDA2MjFFOTIgLyog
cnRwX3NlbmRlcl92aWRlby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5MTIyNDJBNzA0RTAw
N0ZEQzQxIC8qIHJ0cF9zZW5kZXJfdmlkZW9fZnJhbWVfdHJhbnNmb3JtZXJfZGVsZWdhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFDNERFMjM0Qzg0QTMwMDI4QTYxNSAvKiBydHBfc2VxdWVu
Y2VfbnVtYmVyX21hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0QjIyMzRDODM4RTAwMjhB
NjE1IC8qIHJ0cF9zb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MkMxMUZFMjBEQ0Qw
MDQwQzMwRiAvKiBydHBfc3RyZWFtX3JlY2VpdmVyX2NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtMTU3NzcsNjAgKzE1NzczLDY4IEBACiAJCQkJNUNERDg1QjMxRTQzQjVDMDAwNjIxRTky
IC8qIHJ0cF9zdHJlYW1zX3N5bmNocm9uaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJG
NTYyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF90cmFuc2NlaXZlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUMzNEIyMzRCOERERjAwMjhBNjE1IC8qIHJ0cF90cmFuc2NlaXZlcl9pbnRlcmZhY2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOUQ4MjQyQTczMzcwMDdGREM0MSAvKiBydHBfdHJh
bnNwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkY0OTIzNEI4ODIwMDAyOEE2MTUgLyog
cnRwX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMDkyMTkxRUY4RDYzRjAwNzU3
QzU1IC8qIHJ0cF90cmFuc3BvcnRfY29udHJvbGxlcl9zZW5kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTMwOTIxQTFFRjhENjNGMDA3NTdDNTUgLyogcnRwX3RyYW5zcG9ydF9jb250cm9sbGVyX3Nl
bmRfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MUMwMUZDQTI0MkI2NTJCMDBFMDgw
MTggLyogcnRjX2V4cG9ydF90ZW1wbGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGMUIy
MzRCODgyMDAwMjhBNjE1IC8qIHJ0cF90cmFuc3BvcnRfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxODkzOUNFMjQyQTczMzcwMDdGREM0MSAvKiBydHBfdHJhbnNwb3J0X2ludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODhENjFFNDNCRTNEMDA2MjFFOTIgLyogcnRwX3V0
aWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFCRjkzMjM0Qjg4QTYwMDI4QTYxNSAvKiBy
dHBfdXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRTAyQzdFMjEyNzM0NzQwMEMyN0NENiAv
KiBydHBfdmlkZW9faGVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQ2QjQ1RDIxMjczMTU5
MDA4RjkzNTMgLyogcnRwX3ZpZGVvX3NlbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFENkI0
NUIyMTI3MzE1OTAwOEY5MzUzIC8qIHJ0cF92aWRlb19zZW5kZXJfaW50ZXJmYWNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTMwOTFGMzFFRjhDRjkyMDA3NTdDNTUgLyogcnRwX3ZpZGVvX3N0cmVh
bV9yZWNlaXZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5QTEyNDJBNzJFNDAwN0ZEQzQx
IC8qIHJ0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXJfZnJhbWVfdHJhbnNmb3JtZXJfZGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OTZEMUU0M0JGM0EwMDYyMUU5MiAvKiBydHBmYi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzRjkxRTQzOUE2RjAwNjIxRTkyIC8qIHJ0dF9maWx0
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOTVBMjQyQTcxRjUwMDdGREM0MSAvKiBydHRf
bXVsdF9leHBlcmltZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDFDQjIxMjc1OTNGMDA2
MzRGQ0YgLyogcnR0X3N0YXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODJDMjFGRTIwRENE
MDA0MEMzMEYgLyogcnR4X3JlY2VpdmVfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5
M0E1NzI0MkE3N0I4MDA3RkRDNDEgLyogcnVubmluZ19zdGF0aXN0aWNzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTkyNDE2MjIxMjczODVCMDA2MzRGQ0YgLyogcndfbG9ja19wb3NpeC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE5MjQxNjMyMTI3Mzg1QjAwNjM0RkNGIC8qIHJ3X2xvY2tfd3JhcHBl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzNTcxRkUyNDY2NTAwNDBDMzBGIC8qIHNhZmVf
Y29tcGFyZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzNTMxRkUyNDY2NTAwNDBDMzBGIC8q
IHNhZmVfY29udmVyc2lvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzQTVBMjQyQTc3Qjgw
MDdGREM0MSAvKiBzYWZlX2NvbnZlcnNpb25zX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
OUM4MzU0MUZFMjQ2NjUwMDQwQzMwRiAvKiBzYWZlX21pbm1heC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFFMDJDRDMyMTI3MzYwNzAwQzI3Q0Q2IC8qIHNhbXBsZV9jb3VudGVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTg5M0E1RDI0MkE3N0I4MDA3RkRDNDEgLyogc2FtcGxlX3N0YXRzLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MTg5M0E1OTI0MkE3N0I4MDA3RkRDNDEgLyogc2FtcGxlc19zdGF0
c19jb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzEyNzIzNEI4OUUyMDAyOEE2MTUg
Lyogc2FuaXRpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZEM0JFQTIxMjczMUMyMDA3NzVG
MDkgLyogc2F0dXJhdGlvbl9wcm90ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMzM5
MjM0QjhEREYwMDI4QTYxNSAvKiBzY29wZWRfcmVmcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTlDODQzNjFGRTI0RTgwMDA0MEMzMEYgLyogc2NyZWVuc2hhcmVfbGF5ZXJzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTg5MzlDODI0MkE3MzM3MDA3RkRDNDEgLyogc2N0cF9kYXRhX2NoYW5uZWxf
dHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzNDQTIzNEI5N0Y0MDAyOEE2MTUg
Lyogc2N0cF90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFCRUZBMjM0Qjg4MjAw
MDI4QTYxNSAvKiBzY3RwX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzNDEy
MzRCOERERjAwMjhBNjE1IC8qIHNjdHBfdHJhbnNwb3J0X2ludGVyZmFjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEzMUMzQzkyMzRCOTdGNDAwMjhBNjE1IC8qIHNjdHBfdHJhbnNwb3J0X2ludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkY0QjIzNEI4ODIwMDAyOEE2MTUgLyogc2N0
cF91dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NzAxRTQzQkYzQTAwNjIxRTkyIC8q
IHNkZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOUUxMjQyQTczMzcwMDdGREM0MSAvKiBz
ZHBfc2VyaWFsaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGMzcyMzRCODgyMDAwMjhB
NjE1IC8qIHNkcF9zZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkY0NzIzNEI4
ODIwMDAyOEE2MTUgLyogc2RwX3V0aWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ1RjYxRDFG
RTFGMzhEMDBFQjlDQUYgLyogc2RwX3ZpZGVvX2Zvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg1QjcxRTQzQjVDMDAwNjIxRTkyIC8qIHNlbmRfZGVsYXlfc3RhdHMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxODkzOEVFMjQyQTZCMTcwMDdGREM0MSAvKiBzZW5kX3NpZGVfYmFuZHdpZHRo
X2VzdGltYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NUJBMUU0M0I1QzAwMDYyMUU5
MiAvKiBzZW5kX3N0YXRpc3RpY3NfcHJveHkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzQTVG
MjQyQTc3QjgwMDdGREM0MSAvKiBzZXF1ZW5jZV9udW1iZXJfdXRpbC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDE4OTM5M0UyNDJBNzBBRTAwN0ZEQzQxIC8qIGVuY29kZXJfc2V0dGluZ3MuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTQxODkzOERCMjQyQTY5Q0MwMDdGREM0MSAvKiByZXNvdXJjZV9hZGFw
dGF0aW9uX3Byb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NzMxRTQzQkYzQTAw
NjIxRTkyIC8qIHNlbmRlcl9yZXBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRkNCQjI4MjFC
MUY4N0UwMEE1REYyNyAvKiBzZW50X3BhY2tldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQx
QUMyMTI3NThEMzAwNjM0RkNGIC8qIHNlcXVlbmNlX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUM1MDAyMzRDODZDQjAwMjhBNjE1IC8qIHNlcXVlbmNlX2NoZWNrZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxODkzQTVGMjQyQTc3QjgwMDdGREM0MSAvKiBzZXF1ZW5jZV9udW1iZXJf
dXRpbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxMzcyMzRCODlFMjAwMjhBNjE1IC8qIHNl
cnZlcl9zb2NrZXRfYWRhcHRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFCRjAzMjM0Qjg4
MjAwMDI4QTYxNSAvKiBzZXNzaW9uX2Rlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REODNGQzFFNDM5QTZGMDA2MjFFOTIgLyogc2Vzc2lvbl9pbmZvLmggaW4gSGVhZGVycyAqLywK
LQkJCQk0MTg5Mzk0OTI0MkE3MEQ3MDA3RkRDNDEgLyogZGF0YV9jaGFubmVsX3RyYW5zcG9ydF9p
bnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxQzAxRkNCMjQyQjY1MkIwMEUwODAxOCAv
KiBydGNfZXhwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzMzRTIzNEI4RERGMDAyOEE2
MTUgLyogc2V0X3JlbW90ZV9kZXNjcmlwdGlvbl9vYnNlcnZlcl9pbnRlcmZhY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxNDMzRDA4MUY3OUIzMzQwMDM4N0I0RCAvKiBzZXR0aW5ncy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNERDg3RDcxRTQzQkMwNjAwNjIxRTkyIC8qIHNldHRpbmdzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1Q0QyODVFMDFFNkE2MzQzMDA5NEZEQzggLyogc2hhZG93X2ZpbHRl
cl91cGRhdGVfZ2Fpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE1RjFGQjUyMTI3MkZCQTAwMDY0
Q0JGIC8qIHNpZ25hbF9jbGFzc2lmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzM5MTIz
NEI5NTdEMDAyOEE2MTUgLyogc2lnbmFsX2RlcGVuZGVudF9lcmxlX2VzdGltYXRvci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDE4OTM5OTUyNDJBNzI1MjAwN0ZEQzQxIC8qIHNpZ25hbF9tb2RlbC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5OTAyNDJBNzI1MjAwN0ZEQzQxIC8qIHNpZ25hbF9t
b2RlbF9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjlCRkM1MjA1MUNBRTUwMEFC
RjBCOSAvKiBzaWduYWxfcHJvY2Vzc2luZ19saWJyYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTMxQzE1NTIzNEI4OUUyMDAyOEE2MTUgLyogc2lnbmFsX3RocmVhZC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDFGMjYzQkMyMTI2ODExNTAwMjc0RjU5IC8qIHNpZ3Nsb3QuaCBpbiBIZWFkZXJzICov
LApAQCAtMTU4NDIsMTMgKzE1ODQ2LDEzIEBACiAJCQkJNUNERDhCRTIxRTQzQzJCNTAwNjIxRTky
IC8qIHNpbXBsZV9sc2ZfcXVhbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MUQxMjEyNzU5
N0QwMDYzNEZDRiAvKiBzaW11bGF0ZWRfbmV0d29yay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
MUMyQTMyMzRCOENDNDAwMjhBNjE1IC8qIHNpbXVsY2FzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDE4OTM5QzkyNDJBNzMzNzAwN0ZEQzQxIC8qIHNpbXVsY2FzdF9kZXNjcmlwdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUJGNTIyMzRCODgyMDAwMjhBNjE1IC8qIHNpbXVsY2FzdF9kZXNj
cmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMyOTQyMzRCOENDNDAwMjhBNjE1IC8q
IHNpbXVsY2FzdF9lbmNvZGVyX2FkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MUYw
MjEyNzVBRkEwMDYzNEZDRiAvKiBzaW11bGNhc3RfcmF0ZV9hbGxvY2F0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxOTI0MUVEMjEyNzVBRkEwMDYzNEZDRiAvKiBzaW11bGNhc3RfdXRpbGl0eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3NUQxRTQzQkFGNTAwNjIxRTkyIC8qIHNpbmNfcmVz
YW1wbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODc1RjFFNDNCQUY1MDA2MjFFOTIgLyog
c2ludXNvaWRhbF9saW5lYXJfY2hpcnBfc291cmNlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5
MzlDRjI0MkE3MzM3MDA3RkRDNDEgLyogdmlkZW9fcnRwX3RyYWNrX3NvdXJjZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhCRTYxRTQzQzJCNTAwNjIxRTkyIC8qIHNtb290aC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhCRTQxRTQzQzJCNTAwNjIxRTkyIC8qIHNtb290aF9vdXRfZGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1RjcxRTZBNjNGNjAwOTRGREM4IC8qIHNtb290aGlu
Z19maWx0ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTU4NTcsMjcgKzE1ODYxLDI3IEBACiAJCQkJ
NDEzMUMxMzAyMzRCODlFMjAwMjhBNjE1IC8qIHNvY2tldF9hZGRyZXNzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTMxQzE0RDIzNEI4OUUyMDAyOEE2MTUgLyogc29ja2V0X2FkZHJlc3NfcGFpci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxMUYyMzRCODlFMjAwMjhBNjE1IC8qIHNvY2tldF9m
YWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzkzOTI0MkE3MEFFMDA3RkRDNDEgLyog
dmlkZW9fc291cmNlX3Jlc3RyaWN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxNTIy
MzRCODlFMjAwMjhBNjE1IC8qIHNvY2tldF9zZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
MzFDMTE1MjM0Qjg5RTIwMDI4QTYxNSAvKiBzb2NrZXRfc3RyZWFtLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REOEJFODFFNDNDMkI1MDA2MjFFOTIgLyogc29ydF9zcS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJNDE4OTM5OTAyNDJBNzI1MjAwN0ZEQzQxIC8qIHNpZ25hbF9tb2RlbF9lc3RpbWF0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNEQ3MjM0Qzg0QTMwMDI4QTYxNSAvKiBzb3VyY2Vf
dHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxQUIyMTI3NThEMzAwNjM0RkNGIC8q
IHNwZWN0cmFsX2ZlYXR1cmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDE0NzIxMjczNzI4
MDA2MzRGQ0YgLyogc3BlY3RyYWxfZmVhdHVyZXNfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDREQ4N0Q5MUU0M0JDMDYwMDYyMUU5MiAvKiBzcGVjdHJ1bV9hcl9tb2RlbF90YWJsZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxNDMzQ0VGMUY3OUIzMzQwMDM4N0I0RCAvKiBzcGVjdHJ1
bV9hcl9tb2RlbF90YWJsZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMzdDMjM0Qjk1N0Qw
MDI4QTYxNSAvKiBzcGVjdHJ1bV9idWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOThB
MjQyQTcyNTIwMDdGREM0MSAvKiBzcGVlY2hfcHJvYmFiaWxpdHlfZXN0aW1hdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MUYyNjM3MjIxMjY3QjRBMDAyNzRGNTkgLyogc3BsX3NxcnRfZmxvb3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QkVBMUU0M0MyQjUwMDYyMUU5MiAvKiBzcGxpdF92
cS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg0QzIxRTQzQUYxMzAwNjIxRTkyIC8qIHNwbGl0
dGluZ19maWx0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOThBMjQyQTcyNTIwMDdGREM0
MSAvKiBzcGVlY2hfcHJvYmFiaWxpdHlfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REODM2MDFFNDMyNTcyMDA2MjFFOTIgLyogc3BzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDgzNjMxRTQzMjU3MjAwNjIxRTkyIC8qIHNwc192dWlfcmV3cml0ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxM0EyMTNGMUZFMEYwRUYwMDM3M0U5OSAvKiBzcnRwLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTg5MzlDNTI0MkE3MzM3MDA3RkRDNDEgLyogc3J0cF9maWx0ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxMzFCRjQzMjM0Qjg4MjAwMDI4QTYxNSAvKiBzcnRwX2ZpbHRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTIxM0QxRkUwRjBFRjAwMzczRTk5IC8qIHNydHBfcHJp
di5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGNDIyMzRCODgyMDAwMjhBNjE1IC8qIHNydHBf
c2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5RDAyNDJBNzMzNzAwN0ZEQzQxIC8q
IHNydHBfdHJhbnNwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkY0QzIzNEI4ODIwMDAy
OEE2MTUgLyogc3J0cF90cmFuc3BvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMTJGMjM0
Qjg5RTIwMDI4QTYxNSAvKiBzc2xfYWRhcHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMx
NjEyMzRCODlFMjAwMjhBNjE1IC8qIHNzbF9jZXJ0aWZpY2F0ZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xNTg5MSw0MSArMTU4OTUsMzQgQEAKIAkJCQk1Q0REOEJFQzFFNDNDMkI1MDA2MjFFOTIgLyog
c3RhdGVfY29uc3RydWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJFRTFFNDNDMkI1MDA2
MjFFOTIgLyogc3RhdGVfc2VhcmNoLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzM3RDIzNEI5
NTdEMDAyOEE2MTUgLyogc3RhdGlvbmFyaXR5X2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJNDE4OTM5MUYyNDJBNzA0RTAwN0ZEQzQxIC8qIHZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfcmF3
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEE1MjFFNDNCRkIzMDA2MjFFOTIgLyogc3RhdGlz
dGljc19jYWxjdWxhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkY1ODIzNEI4ODIwMDAy
OEE2MTUgLyogc3RhdHNfY29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODVCRDFF
NDNCNUMwMDA2MjFFOTIgLyogc3RhdHNfY291bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
MUMzM0EyMzRCOERERjAwMjhBNjE1IC8qIHN0YXRzX3R5cGVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTMxQzBGRjIzNEI4OUUyMDAyOEE2MTUgLyogc3RyZWFtLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTg5MzlGOTI0MkE3NEY4MDA3RkRDNDEgLyogbWVkaWFfdHJhbnNwb3J0X2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJFRjMyMzRCODgyMDAwMjhBNjE1IC8qIHN0cmVhbV9jb2xs
ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkZBMzIzNEI4OEE2MDAyOEE2MTUgLyog
c3RyZWFtX3BhcmFtcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5OEYyNDJBNzI1MjAwN0ZE
QzQxIC8qIHByaW9yX3NpZ25hbF9tb2RlbF9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxODkzQTE3MjQyQTc1N0EwMDdGREM0MSAvKiB2aWRlb19yZWNlaXZlcjIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4NUMwMUU0M0I1QzAwMDYyMUU5MiAvKiBzdHJlYW1fc3luY2hyb25pemF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUREQjI2QzIxMjY3OUQyMDAyOTZENDcgLyogc3Ry
aW5nX2J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzOTE4MjQyQTcwNEUwMDdGREM0
MSAvKiBydHBfc2VuZGVyX2VncmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxMDMyMzRC
ODlFMjAwMjhBNjE1IC8qIHN0cmluZ19lbmNvZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkz
QTBBMjQyQTc1M0MwMDdGREM0MSAvKiBzdWJiYW5kX25lYXJlbmRfZGV0ZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMzFDMTA1MjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJpbmdfdG9fbnVtYmVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTAwOTIwQzI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29k
ZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzQTQx
MjQyQTc2RjIwMDdGREM0MSAvKiBvcGVyYXRpb25zX2NoYWluLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTMxQzEzMjIzNEI4OUUyMDAyOEE2MTUgLyogc3RyaW5nX3V0aWxzLmggaW4gSGVhZGVycyAq
LywKLQkJCQk0MTg5Mzk4NjI0MkE3MjUxMDA3RkRDNDEgLyogcHJpb3Jfc2lnbmFsX21vZGVsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTA2RDU2RDIxNkMyQkFBMDAxRTNDNDAgLyogc3RyaW5nX3Zp
ZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMTI1MjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJp
bmdpemVfbWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQzM0NGMDFGNzlCMzM0MDAzODdC
NEQgLyogc3RydWN0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3REExRTQzQkMwNjAwNjIx
RTkyIC8qIHN0cnVjdHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOTRCMjQyQTcwRDcwMDdG
REM0MSAvKiBzdHVuLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzFERDIzNEI4QTRCMDAyOEE2
MTUgLyogc3R1bl9wb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzFCQzIzNEI4QTRBMDAy
OEE2MTUgLyogc3R1bl9yZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzFFNDIzNEI4
QTRCMDAyOEE2MTUgLyogc3R1bl9zZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMzg0
MjM0Qjk1N0QwMDI4QTYxNSAvKiBzdWJiYW5kX2VybGVfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTg5M0EwQTI0MkE3NTNDMDA3RkRDNDEgLyogc3ViYmFuZF9uZWFyZW5kX2RldGVj
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODVFMzFFNkE2MzQzMDA5NEZEQzggLyogc3Vi
dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1RTExRTZBNjM0MzAwOTRGREM4IC8q
IHN1YnRyYWN0b3Jfb3V0cHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzM4NjIzNEI5NTdE
MDAyOEE2MTUgLyogc3VidHJhY3Rvcl9vdXRwdXRfYW5hbHl6ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDRDI4NUU1MUU2QTYzNDMwMDk0RkRDOCAvKiBzdXBwcmVzc2lvbl9maWx0ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDRDI4NUU3MUU2QTYzNDMwMDk0RkRDOCAvKiBzdXBwcmVzc2lvbl9n
YWluLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzlEQTI0MkE3MzM3MDA3RkRDNDEgLyogZGF0
YV9jaGFubmVsX2NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzOTkzMjQyQTcy
NTIwMDdGREM0MSAvKiBzdXBwcmVzc2lvbl9wYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
M0U2NzgxMjE2OTg3MEYwMEVGMzdFRCAvKiBzdmNfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTNFNjc5NTIxNjk4ODE5MDBFRjM3RUQgLyogc3ZjX3JhdGVfYWxsb2NhdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1Q0REOEJGMDFFNDNDMkI1MDA2MjFFOTIgLyogc3dhcF9ieXRlcy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xNTkzNSwyNyArMTU5MzIsMjQgQEAKIAkJCQk1Q0REOEE1NTFFNDNC
RkIzMDA2MjFFOTIgLyogc3luY19idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NEJG
MUU2QTVGOUYwMDk0RkRDOCAvKiBzeW5jYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5
NzkxRTQzQkYzQTAwNjIxRTkyIC8qIHRhcmdldF9iaXRyYXRlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTg5Mzk1NzI0MkE3MUY1MDA3RkRDNDEgLyogZmllbGRfdHJpYWxfcGFyc2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTMxQzE0MzIzNEI4OUUyMDAyOEE2MTUgLyogdGFza19xdWV1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0ODYyMzRDODI3NDAwMjhBNjE1IC8qIHRhc2tfcXVldWVf
YmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0ODgyMzRDODI3NDAwMjhBNjE1IC8qIHRh
c2tfcXVldWVfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTNBNkMyNDJBNzgyNjAw
N0ZEQzQxIC8qIHRhc2tfcXVldWVfcGFjZWRfc2VuZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTMxQzRGMjIzNEM4NjM5MDAyOEE2MTUgLyogdGFza19xdWV1ZV9zdGRsaWIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxMzFDMUQxMjM0QjhBNEIwMDI4QTYxNSAvKiB0Y3BfcG9ydC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDEzMUMxMkQyMzRCODlFMjAwMjhBNjE1IC8qIHRlbXBsYXRlX3V0aWwuaCBp
biBIZWFkZXJzICovLAotCQkJCTQxODkzOUYwMjQyQTc0N0IwMDdGREM0MSAvKiB0cmFuc3BvcnRf
ZmVlZGJhY2tfZGVtdXhlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5Qzg0M0QxRkUyNEU4MDAw
NDBDMzBGIC8qIHRlbXBvcmFsX2xheWVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxMjgy
MzRCODlFMjAwMjhBNjE1IC8qIHRocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxNTQy
MzRCODlFMjAwMjhBNjE1IC8qIHRocmVhZF9hbm5vdGF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUMxM0IyMzRCODlFMjAwMjhBNjE1IC8qIHRocmVhZF9jaGVja2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0REODRDNDFFNDNBRjEzMDA2MjFFOTIgLyogdGhyZWVfYmFuZF9maWx0ZXJf
YmFuay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGQ0JCMjMyMUIxRjgyRjAwQTVERjI3IC8qIHRo
cm93X2RlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5Mzk5QTI0MkE3MjUyMDA3RkRD
NDEgLyogbm9pc2VfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5M0EzODI0MkE3
Njc4MDA3RkRDNDEgLyogdGlja190aW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5MjQxREQy
MTI3NUEzMDAwNjM0RkNGIC8qIHRpbWVfZGVsdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkz
QTIzMjQyQTc1QzEwMDdGREM0MSAvKiBpY2VfY29udHJvbGxlcl9pbnRlcmZhY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4QTVCMUU0M0JGQjMwMDYyMUU5MiAvKiB0aW1lX3N0cmV0Y2guaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4OERCMUU0M0JFM0QwMDYyMUU5MiAvKiB0aW1lX3V0aWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMTE5MjM0Qjg5RTIwMDI4QTYxNSAvKiB0aW1lX3V0
aWxzLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5Mzk5NTI0MkE3MjUyMDA3RkRDNDEgLyogc2ln
bmFsX21vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDFFMDIxMjc1QTMwMDA2MzRGQ0Yg
LyogdGltZXN0YW1wLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzExQTIzNEI4OUUyMDAyOEE2
MTUgLyogdGltZXN0YW1wX2FsaWduZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MTdFMjEy
NzM5MjMwMDYzNEZDRiAvKiB0aW1lc3RhbXBfZXh0cmFwb2xhdG9yLmggaW4gSGVhZGVycyAqLywK
QEAgLTE1OTY2LDEwICsxNTk2MCwxMSBAQAogCQkJCTVDREQ4OTdFMUU0M0JGM0EwMDYyMUU5MiAv
KiB0bW1ibi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5ODExRTQzQkYzQTAwNjIxRTkyIC8q
IHRtbWJyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODhERDFFNDNCRTNEMDA2MjFFOTIgLyog
dG1tYnJfaGVscC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5Q0UyNDJBNzMzNzAwN0ZEQzQx
IC8qIHJ0cF90cmFuc3BvcnRfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDNEU3
MjM0Qzg1MkUwMDI4QTYxNSAvKiB0b19xdWV1ZWRfdGFzay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzMUMxM0UyMzRCODlFMjAwMjhBNjE1IC8qIHRyYWNlX2V2ZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MTg5MzlENzI0MkE3MzM3MDA3RkRDNDEgLyogdHJhY2tfbWVkaWFfaW5mb19tYXAuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFCRjIyMjM0Qjg4MjAwMDI4QTYxNSAvKiB0cmFja19tZWRp
YV9pbmZvX21hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5MjQyNDJBNzA0RTAwN0ZEQzQx
IC8qIHRyYW5zZm9ybWFibGVfZW5jb2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDhDOTIxRTQzQzY2MDAwNjIxRTkyIC8qIHRyYW5zaWVudF9kZXRlY3Rvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDhDOTYxRTQzQzY2MDAwNjIxRTkyIC8qIHRyYW5zaWVudF9zdXBwcmVzc29y
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTkyNDE3NjIxMjczOEMyMDA2MzRGQ0YgLyogdHJhbnNw
b3J0LmggaW4gSGVhZGVycyAqLywKQEAgLTE1OTc4LDIxICsxNTk3MywxOCBAQAogCQkJCTQxMzFD
MURGMjM0QjhBNEIwMDI4QTYxNSAvKiB0cmFuc3BvcnRfZGVzY3JpcHRpb25fZmFjdG9yeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5ODQxRTQzQkYzQTAwNjIxRTkyIC8qIHRyYW5zcG9ydF9m
ZWVkYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyOTlCOEQyMTI3MzY1MTAwQjM0MTRCIC8q
IHRyYW5zcG9ydF9mZWVkYmFja19hZGFwdGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5Mzk1
RTI0MkE3MUY1MDA3RkRDNDEgLyogcXVhbGl0eV9zY2FsaW5nX2V4cGVyaW1lbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxODkzOUYwMjQyQTc0N0IwMDdGREM0MSAvKiB0cmFuc3BvcnRfZmVlZGJh
Y2tfZGVtdXhlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxRTUyMzRCOEE0QjAwMjhBNjE1
IC8qIHRyYW5zcG9ydF9pbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkYwNDIzNEI4ODIw
MDAyOEE2MTUgLyogdHJhbnNwb3J0X3N0YXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUUwMkNC
MzIxMjczNTJEMDBDMjdDRDYgLyogdHJlbmRsaW5lX2VzdGltYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzMUMzNDAyMzRCOERERjAwMjhBNjE1IC8qIHR1cm5fY3VzdG9taXplci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUMxQjIyMzRCOEE0QTAwMjhBNjE1IC8qIHR1cm5fcG9ydC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNDE4OTNBNkMyNDJBNzgyNjAwN0ZEQzQxIC8qIHRhc2tfcXVldWVf
cGFjZWRfc2VuZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzQ1ODIzNEM4MTE4MDAyOEE2
MTUgLyogdHVybl9wb3J0X2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzQTM5MjQy
QTc2NzgwMDdGREM0MSAvKiBuZXRlcV9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMx
QzFDRTIzNEI4QTRCMDAyOEE2MTUgLyogdHVybl9zZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMzFCRjhDMjM0Qjg4QTYwMDI4QTYxNSAvKiB0dXJuX3V0aWxzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTMxQzEzNTIzNEI4OUUyMDAyOEE2MTUgLyogdHlwZV90cmFpdHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4NEM2MUU0M0FGMTMwMDYyMUU5MiAvKiB0eXBpbmdfZGV0ZWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzFCNzIzNEI4QTRBMDAyOEE2MTUgLyogdWRwX3BvcnQu
aCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzQTIwMjQyQTc1QzEwMDdGREM0MSAvKiBkZWZhdWx0
X2ljZV90cmFuc3BvcnRfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NkIxRkUx
OTkxQTAwMzczRTk5IC8qIFVJRGV2aWNlK1JUQ0RldmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg4RTAxRTQzQkUzRDAwNjIxRTkyIC8qIHVscGZlY19nZW5lcmF0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4OEUzMUU0M0JFM0QwMDYyMUU5MiAvKiB1bHBmZWNfaGVhZGVyX3JlYWRl
cl93cml0ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTYwMDEsOCArMTU5OTMsMTAgQEAKIAkJCQk0
MTMxQzM0ODIzNEI4RERGMDAyOEE2MTUgLyogdW1hX21ldHJpY3MuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzFDMjlDMjM0QjhDQzQwMDI4QTYxNSAvKiB1bmhhbmRsZWRfcGFja2V0c19idWZmZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMTE3MjM0Qjg5RTIwMDI4QTYxNSAvKiB1bmlxdWVf
aWRfZ2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5M0ExNTI0MkE3NTdBMDA3RkRD
NDEgLyogdW5pcXVlX3RpbWVzdGFtcF9jb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
OEJGMjFFNDNDMkI1MDA2MjFFOTIgLyogdW5wYWNrX2JpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxRjI2M0IwMjEyNjgwQTgwMDI3NEY1OSAvKiB1bnVzZWQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxODkzOUNBMjQyQTczMzcwMDdGREM0MSAvKiB1c2VkX2lkcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUJGNTkyMzRCODgyMDAwMjhBNjE1IC8qIHVzZWRfaWRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTNBMjE0MDFGRTBGMEVGMDAzNzNFOTkgLyogdXRfc2ltLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REODcwOTFFNDNCQTc1MDA2MjFFOTIgLyogdXRpbGl0eS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xNjAxMywyMCArMTYwMDcsMjEgQEAKIAkJCQk1Q0REODZENzFFNDNCQTI4MDA2MjFFOTIg
LyogdmFkX2NvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NkRBMUU0M0JBMjgwMDYyMUU5
MiAvKiB2YWRfZmlsdGVyYmFuay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg2REQxRTQzQkEy
ODAwNjIxRTkyIC8qIHZhZF9nbW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODkzQTNEMjQyQTc2
OUEwMDdGREM0MSAvKiBsZXZlbF9lc3RpbWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
NkUwMUU0M0JBMjgwMDYyMUU5MiAvKiB2YWRfc3AuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNUYx
RkI2MjEyNzJGQkEwMDA2NENCRiAvKiB2YWRfd2l0aF9sZXZlbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUM2M0Y4RTAxRTQxNkQ1MzAwMkNBNTMxIC8qIHZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTVGMUZCNzIxMjcyRkJBMDAwNjRDQkYgLyogdmVjdG9yX2Zsb2F0X2ZyYW1lLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTg5M0EwOTI0MkE3NTNDMDA3RkRDNDEgLyogdmVjdG9yX21hdGguaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFCRjhBMjM0Qjg4QTYwMDI4QTYxNSAvKiB2aWRlb19hZGFw
dGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5MzhGMzI0MkE2QjE3MDA3RkRDNDEgLyogcm9i
dXN0X3Rocm91Z2hwdXRfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEwOEJBRTIx
MjY4MUM4MDAxRDVEN0IgLyogdmlkZW9fYml0cmF0ZV9hbGxvY2F0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MUEwOEJBRjIxMjY4MUM4MDAxRDVEN0IgLyogdmlkZW9fYml0cmF0ZV9hbGxvY2F0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJGNkU0MjEyNzM0MTYwMDZBRThENyAvKiB2aWRl
b19iaXRyYXRlX2FsbG9jYXRvcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkZB
MTIzNEI4OEE2MDAyOEE2MTUgLyogdmlkZW9fYnJvYWRjYXN0ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxRjI2MzY0MjEyNjdBREYwMDI3NEY1OSAvKiB2aWRlb19jb2RlYy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDEwMDkxREIyNDJFMEJCQzAwQzVFREEyIC8qIHZpZGVvX2NvZGVjX2NvbnN0YW50
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0NjQyMzRDODE3MjAwMjhBNjE1IC8qIHZpZGVv
X2NvZGVjX2luaXRpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzQ2NTIzNEM4MTcy
MDAyOEE2MTUgLyogdmlkZW9fY29kZWNfaW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MTAwOTFEQzI0MkUwQkJDMDBDNUVEQTIgLyogdmlkZW9fY29kZWNfdHlwZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEzMUM0NjEyMzRDODE3MjAwMjhBNjE1IC8qIHZpZGVvX2NvZGluZy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUM0NjMyMzRDODE3MjAwMjhBNjE1IC8qIHZpZGVvX2NvZGluZ19k
ZWZpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODQwMjFFNDM5QTZGMDA2MjFFOTIgLyog
dmlkZW9fY29kaW5nX2ltcGwuaCBpbiBIZWFkZXJzICovLApAQCAtMTYwNDIsMjUgKzE2MDM3LDM2
IEBACiAJCQkJNDE0NUY2MUYxRkUxRjM4RDAwRUI5Q0FGIC8qIHZpZGVvX2VuY29kZXJfZmFjdG9y
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMjYzNkEyMTI2N0FERjAwMjc0RjU5IC8qIHZpZGVv
X2VuY29kZXJfc29mdHdhcmVfZmFsbGJhY2tfd3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzMUM0NjIyMzRDODE3MjAwMjhBNjE1IC8qIHZpZGVvX2Vycm9yX2NvZGVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0MTg5MzkxOTI0MkE3MDRFMDA3RkRDNDEgLyogdmlkZW9fZmVjX2dlbmVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2MjI1RDYyMTY5ODE4MTAwQTkxQzlCIC8qIHZpZGVv
X2ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODQ2QjFFNkE1N0Y0MDA5NEZEQzggLyog
dmlkZW9fZnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMTA5QUFFMUU1RkExOTIwMEMwOTU1
QSAvKiB2aWRlb19mcmFtZV9idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NDY5MUU2
QTU3RjQwMDk0RkRDOCAvKiB2aWRlb19mcmFtZV9idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxNjIyNUQzMjE2OTgxODEwMEE5MUM5QiAvKiB2aWRlb19mcmFtZV9idWZmZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMDA5MURBMjQyRTBCQkMwMEM1RURBMiAvKiB2aWRlb19mcmFtZV9tYXJr
aW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTAwOTFERTI0MkUwQkJDMDBDNUVEQTIgLyogdmlk
ZW9fZnJhbWVfdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEwMkY2Q0YyMTI3MzNCNzAwNkFF
OEQ3IC8qIHZpZGVvX3F1YWxpdHlfb2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4
MkM0MUZFMjBEQ0QwMDQwQzMwRiAvKiB2aWRlb19yZWNlaXZlX3N0cmVhbS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNDEwMDkyMEUyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJ
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1Q0IxRTQzQjVDMDAwNjIxRTkyIC8qIHZpZGVv
X3JlY2VpdmVfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5M0ExNzI0MkE3NTdBMDA3
RkRDNDEgLyogdmlkZW9fcmVjZWl2ZXIyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNEMyMTFF
NDMxRjc1MDAyNjUxQzggLyogdmlkZW9fcmVuZGVyX2ZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNEMjg0NkMxRTZBNTdGNDAwOTRGREM4IC8qIHZpZGVvX3JvdGF0aW9uLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk0MTg5Mzk5OTI0MkE3MjUyMDA3RkRDNDEgLyogbnNfY29uZmlnLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk0MTg5MzkyNTI0MkE3MDRFMDA3RkRDNDEgLyogdmlkZW9fcnRwX2RlcGFj
a2V0aXplci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5MjcyNDJBNzA0RTAwN0ZEQzQxIC8q
IHZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfZ2VuZXJpYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4
OTM5MTQyNDJBNzA0RTAwN0ZEQzQxIC8qIHZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfaDI2NC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5MUYyNDJBNzA0RTAwN0ZEQzQxIC8qIHZpZGVvX3J0cF9k
ZXBhY2tldGl6ZXJfcmF3LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5MzkyMzI0MkE3MDRFMDA3
RkRDNDEgLyogdmlkZW9fcnRwX2RlcGFja2V0aXplcl92cDguaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMzFCRjQwMjM0Qjg4MjAwMDI4QTYxNSAvKiB2aWRlb19ydHBfcmVjZWl2ZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxODkzOUNGMjQyQTczMzcwMDdGREM0MSAvKiB2aWRlb19ydHBfdHJhY2tf
c291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODJCQTFGRTIwRENEMDA0MEMzMEYgLyog
dmlkZW9fc2VuZF9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NUNFMUU0M0I1QzAw
MDYyMUU5MiAvKiB2aWRlb19zZW5kX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEwMkY2
QzgyMTI3MzNCNzAwNkFFOEQ3IC8qIHZpZGVvX3NlbmRfc3RyZWFtX2ltcGwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxMDJGNkREMjEyNzM0MTYwMDZBRThENyAvKiB2aWRlb19zaW5rX2ludGVyZmFj
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGOTUyMzRCODhBNjAwMjhBNjE1IC8qIHZpZGVv
X3NvdXJjZV9iYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEwOEJCMTIxMjY4MUM4MDAxRDVE
N0IgLyogdmlkZW9fc291cmNlX2ludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5
MzkyNDJBNzBBRTAwN0ZEQzQxIC8qIHZpZGVvX3NvdXJjZV9yZXN0cmljdGlvbnMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxODkzOUEwMjQyQTcyRTQwMDdGREM0MSAvKiB2aWRlb19zb3VyY2Vfc2lu
a19jb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg5MzhEQzI0MkE2OUNDMDA3RkRD
NDEgLyogdmlkZW9fc3RyZWFtX2FkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQTA4QkIy
MjEyNjgxQzgwMDFENUQ3QiAvKiB2aWRlb19zdHJlYW1fZGVjb2Rlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDg1RDAxRTQzQjVDMDAwNjIxRTkyIC8qIHZpZGVvX3N0cmVhbV9kZWNvZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTAyRjZERTIxMjczNDE2MDA2QUU4RDcgLyogdmlkZW9fc3Ry
ZWFtX2RlY29kZXJfY3JlYXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTE2MDcxLDE3ICsxNjA3Nywx
OCBAQAogCQkJCTQxQTA4QkI1MjEyNjgxQzgwMDFENUQ3QiAvKiB2aWRlb19zdHJlYW1fZW5jb2Rl
cl9vYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEwMkY2RTEyMTI3MzQxNjAwNkFFOEQ3
IC8qIHZpZGVvX3N0cmVhbV9lbmNvZGVyX3NldHRpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTlDODQxMjFGRTI0OUFCMDA0MEMzMEYgLyogdmlkZW9fdGltaW5nLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MTg5MzlFMzI0MkE3MzM3MDA3RkRDNDEgLyogdmlkZW9fdHJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxMzFCRjE1MjM0Qjg4MjAwMDI4QTYxNSAvKiB2aWRlb190cmFjay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUJGNEQyMzRCODgyMDAwMjhBNjE1IC8qIHZpZGVvX3RyYWNrX3Nv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4OTM5RDIyNDJBNzMzNzAwN0ZEQzQxIC8qIHZp
ZGVvX3RyYWNrX3NvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzNEEyMzRCOERERjAw
MjhBNjE1IC8qIHZpZGVvX3RyYWNrX3NvdXJjZV9wcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzMUM0QUMyMzRDODM4MDAwMjhBNjE1IC8qIHZpZGVvX3RyYW5zcG9ydC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDFFQ0VBRkUyMDY0NjY2NDAwOUQ1MTQxIC8qIFZpZGVvUHJvY2Vzc2luZ1NvZnRM
aW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODc0MTFFNDNCQUJFMDA2MjFFOTIgLyogdm9p
Y2VfYWN0aXZpdHlfZGV0ZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODkzQTY2MjQyQTc3
RkUwMDdGREM0MSAvKiB2b2ljZV9kZXRlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4
NzQyMUU0M0JBQkUwMDYyMUU5MiAvKiB2b2ljZV9nbW1fdGFibGVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTQ1RjYxNzFGRTFFRkNBMDBFQjlDQUYgLyogdnA4LmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTg5MzlEMjI0MkE3MzM3MDA3RkRDNDEgLyogdmlkZW9fdHJhY2tfc291cmNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTMxQzNEODIzNEM3OUQxMDAyOEE2MTUgLyogdnA4X2ZyYW1lX2J1ZmZl
cl9jb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTg5M0EwNTI0MkE3NTNDMDA3RkRD
NDEgLyogZGVsYXlfZXN0aW1hdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDM0RCMjM0Qzc5
RDEwMDI4QTYxNSAvKiB2cDhfZnJhbWVfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
ODM4NjFFNDM5QTM1MDA2MjFFOTIgLyogdnA4X2hlYWRlcl9wYXJzZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxRkNCQjY1MjFCMUZFRjYwMEE1REYyNyAvKiB2cDhfdGVtcG9yYWxfbGF5ZXJzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTE2MDkyLDEwICsxNjA5OSwxMCBAQAogCQkJCTVDNEI0QzgxMUU0
MzFGOUMwMDI2NTFDOCAvKiB3YXZfZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjRDODQx
RTQzMUY5QzAwMjY1MUM4IC8qIHdhdl9oZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFD
MTYzMjM0Qjg5RTIwMDI4QTYxNSAvKiB3ZWFrX3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFF
ODRCQ0IyNDM0QzRBMzAwRDM0RTQxIC8qIFdlYktpdERlY29kZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxNTg2NDk4MjNCRTA1RTkwMEEwQTYxRSAvKiBXZWJLaXRFbmNvZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUVDRUFCQzIwNjQwM0MyMDA5RDUxNDEgLyogV2ViS2l0VXRpbGl0aWVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOENBQjFFNDNDNkY3MDA2MjFFOTIgLyogd2VicnRjX2Nu
Zy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE4OTM5Q0QyNDJBNzMzNzAwN0ZEQzQxIC8qIHJ0Y3Bf
bXV4X2ZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0NUU0OTExRUY4OEVGNzAwRkNGNkU2
IC8qIHdlYnJ0Y19saWJ5dXYuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMjc2MjM0QjhDQzQw
MDI4QTYxNSAvKiB3ZWJydGNfbWVkaWFfZW5naW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMx
QzI4RjIzNEI4Q0M0MDAyOEE2MTUgLyogd2VicnRjX21lZGlhX2VuZ2luZV9kZWZhdWx0cy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xNjEwMyw4ICsxNjExMCw4IEBACiAJCQkJNDEzMUJFRjIyMzRCODgy
MDAwMjhBNjE1IC8qIHdlYnJ0Y19zZXNzaW9uX2Rlc2NyaXB0aW9uX2ZhY3RvcnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxRjlCRkM3MjA1MURDRTkwMEFCRjBCOSAvKiB3ZWJydGNfdmFkLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQzI4QjIzNEI4Q0M0MDAyOEE2MTUgLyogd2VicnRjX3ZpZGVv
X2VuZ2luZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDFDMDFGQzUyNDJCNUMwQjAwRTA4MDE4IC8q
IHJ0Y19zdGF0c19jb2xsZWN0b3JfY2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFD
MjlCMjM0QjhDQzQwMDI4QTYxNSAvKiB3ZWJydGNfdm9pY2VfZW5naW5lLmggaW4gSGVhZGVycyAq
LywKKwkJCQk0MTg5Mzk5NDI0MkE3MjUyMDA3RkRDNDEgLyogd2llbmVyX2ZpbHRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNERDhCRjgxRTQzQzJCNTAwNjIxRTkyIC8qIHdpbmRvdzMyX3czMi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjRDODcxRTQzMUY5QzAwMjY1MUM4IC8qIHdpbmRvd19n
ZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOTI0MUMyMjEyNzU5M0YwMDYzNEZDRiAv
KiB3aW5kb3dlZF9maWx0ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTY4NDksNyArMTY4NTYsNiBA
QAogCQkJCTVDREQ4RTRBMUU0M0M4MEMwMDYyMUU5MiAvKiBkZWNvZGVfY29yZS5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNERDhFNEIxRTQzQzgwQzAwNjIxRTkyIC8qIGRlY29kZV9mcmFtZS5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDhFNEMxRTQzQzgwQzAwNjIxRTkyIC8qIGRlY29kZV9pbmRp
Y2VzLmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5MzhDNTI0MkEzRDQ2MDA3RkRDNDEgLyogVlFf
V01hdF9FQ19zc2U0XzEuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RTREMUU0M0M4MEMwMDYy
MUU5MiAvKiBkZWNvZGVfcGFyYW1ldGVycy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhFNEUx
RTQzQzgwQzAwNjIxRTkyIC8qIGRlY29kZV9waXRjaC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDhFNEYxRTQzQzgwQzAwNjIxRTkyIC8qIGRlY29kZV9wdWxzZXMuYyBpbiBTb3VyY2VzICovLApA
QCAtMTY4NTksNyArMTY4NjUsNiBAQAogCQkJCTVDREQ4RUU1MUU0M0M5RjYwMDYyMUU5MiAvKiBl
bmNvZGVfZnJhbWVfRkxQLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEU1MzFFNDNDODBDMDA2
MjFFOTIgLyogZW5jb2RlX2luZGljZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RTU0MUU0
M0M4MEMwMDYyMUU5MiAvKiBlbmNvZGVfcHVsc2VzLmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5
MzhDMzI0MkEzRDQ2MDA3RkRDNDEgLyogTlNRX3NzZTRfMS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNERDhFRTYxRTQzQzlGNjAwNjIxRTkyIC8qIGVuZXJneV9GTFAuYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4RDNEMUU0M0M3OUMwMDYyMUU5MiAvKiBlbnRjb2RlLmMgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0REOEQzRjFFNDNDNzlDMDA2MjFFOTIgLyogZW50ZGVjLmMgaW4gU291cmNlcyAqLywK
QEAgLTE2ODg3LDcgKzE2ODkyLDYgQEAKIAkJCQk1Q0REOEU1RDFFNDNDODBDMDA2MjFFOTIgLyog
bGluMmxvZy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhFNUUxRTQzQzgwQzAwNjIxRTkyIC8q
IGxvZzJsaW4uYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RTVGMUU0M0M4MEMwMDYyMUU5MiAv
KiBMUF92YXJpYWJsZV9jdXRvZmYuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOEM0MjQyQTNE
NDYwMDdGREM0MSAvKiBWQURfc3NlNF8xLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEU2MDFF
NDNDODBDMDA2MjFFOTIgLyogTFBDX2FuYWx5c2lzX2ZpbHRlci5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDhFRUUxRTQzQzlGNjAwNjIxRTkyIC8qIExQQ19hbmFseXNpc19maWx0ZXJfRkxQLmMg
aW4gU291cmNlcyAqLywKIAkJCQk0MTUzQ0QyNzIxQ0M2NjEwMDBDM0UxODggLyogTFBDX2ZpdC5j
IGluIFNvdXJjZXMgKi8sCkBAIC0xNjkxNCw2ICsxNjkxOCw4IEBACiAJCQkJNUNERDhFRjMxRTQz
QzlGNjAwNjIxRTkyIC8qIG5vaXNlX3NoYXBlX2FuYWx5c2lzX0ZMUC5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDhFNkYxRTQzQzgwQzAwNjIxRTkyIC8qIE5TUS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDhFNkUxRTQzQzgwQzAwNjIxRTkyIC8qIE5TUV9kZWxfZGVjLmMgaW4gU291cmNlcyAq
LywKKwkJCQk0MTg5MzhDMjI0MkEzRDQ2MDA3RkRDNDEgLyogTlNRX2RlbF9kZWNfc3NlNF8xLmMg
aW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzhDMzI0MkEzRDQ2MDA3RkRDNDEgLyogTlNRX3NzZTRf
MS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjRBQzIxRTQyQzU3NDAwMjY1MUM4IC8qIG9wdXMu
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QUJCMUU0MkM1NzQwMDI2NTFDOCAvKiBvcHVzX2Rl
Y29kZXIuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QUJEMUU0MkM1NzQwMDI2NTFDOCAvKiBv
cHVzX2VuY29kZXIuYyBpbiBTb3VyY2VzICovLApAQCAtMTY5NjAsNyArMTY5NjYsNiBAQAogCQkJ
CTVDREQ4RTg5MUU0M0M4MEMwMDYyMUU5MiAvKiBzdGVyZW9fTFJfdG9fTVMuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4RThBMUU0M0M4MEMwMDYyMUU5MiAvKiBzdGVyZW9fTVNfdG9fTFIuYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4RThCMUU0M0M4MEMwMDYyMUU5MiAvKiBzdGVyZW9fcXVh
bnRfcHJlZC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTM4QzIyNDJBM0Q0NjAwN0ZEQzQxIC8q
IE5TUV9kZWxfZGVjX3NzZTRfMS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhFOEQxRTQzQzgw
QzAwNjIxRTkyIC8qIHN1bV9zcXJfc2hpZnQuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RThF
MUU0M0M4MEMwMDYyMUU5MiAvKiB0YWJsZV9MU0ZfY29zLmMgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REOEU4RjFFNDNDODBDMDA2MjFFOTIgLyogdGFibGVzX2dhaW4uYyBpbiBTb3VyY2VzICovLApA
QCAtMTY5NzEsMTAgKzE2OTc2LDEyIEBACiAJCQkJNUNERDhFOTQxRTQzQzgwQzAwNjIxRTkyIC8q
IHRhYmxlc19waXRjaF9sYWcuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RTk1MUU0M0M4MEMw
MDYyMUU5MiAvKiB0YWJsZXNfcHVsc2VzX3Blcl9ibG9jay5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNERDhFOTkxRTQzQzgwQzAwNjIxRTkyIC8qIFZBRC5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4
OTM4QzQyNDJBM0Q0NjAwN0ZEQzQxIC8qIFZBRF9zc2U0XzEuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4RjUzMUU0M0NCMUUwMDYyMUU5MiAvKiB2ZWN0b3Jfb3BzX0ZJWC5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDhENUIxRTQzQzc5QzAwNjIxRTkyIC8qIHZxLmMgaW4gU291cmNlcyAqLywK
IAkJCQk0MTUzQ0QyODIxQ0M2NjQ4MDBDM0UxODggLyogdnFfc3NlMi5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDhFOUExRTQzQzgwQzAwNjIxRTkyIC8qIFZRX1dNYXRfRUMuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxODkzOEM1MjQyQTNENDYwMDdGREM0MSAvKiBWUV9XTWF0X0VDX3NzZTRfMS5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhGNTQxRTQzQ0IxRTAwNjIxRTkyIC8qIHdhcnBlZF9h
dXRvY29ycmVsYXRpb25fRklYLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEYwMDFFNDNDOUY2
MDA2MjFFOTIgLyogd2FycGVkX2F1dG9jb3JyZWxhdGlvbl9GTFAuYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4RjAxMUU0M0M5RjYwMDYyMUU5MiAvKiB3cmFwcGVyc19GTFAuYyBpbiBTb3VyY2Vz
ICovLApAQCAtMTcwMTIsNiArMTcwMTksNyBAQAogCQkJCTQxRUE1M0ZDMUVGQzJEMUIwMDJGRjA0
QyAvKiBhZGQuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxQTM5MThGMUVGQzQ0RUIwMEM0NTE2QSAv
KiBhZWFkLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUEzOTIyMTFFRkM1Q0ZBMDBDNDUxNkEgLyog
YWVzLmMgaW4gU291cmNlcyAqLywKKwkJCQk0MTAwOTFEMzI0MkQwMDA2MDBDNUVEQTIgLyogYWVz
X25vaHcuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NjcxMUU0MkFBM0MwMDI2NTFDOCAvKiBh
bGdvcml0aG0uYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0NzFFMUU0MkFBRDYwMDI2NTFDOCAv
KiBhc24xX2NvbXBhdC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ2NzIxRTQyQUEzQzAwMjY1
MUM4IC8qIGFzbjFfZ2VuLmMgaW4gU291cmNlcyAqLywKQEAgLTE3MTAyLDYgKzE3MTEwLDcgQEAK
IAkJCQk0MUVBNTQwNTFFRkMyRDFCMDAyRkYwNEMgLyogZ2NkLmMgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTU0NDlBODIxQ0FDMzlBMDAxQzBBNTUgLyogZ2NkX2V4dHJhLmMgaW4gU291cmNlcyAqLywK
IAkJCQk0MUEzOTE3QTFFRkM0NDdDMDBDNDUxNkEgLyogZ2NtLmMgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTAwOTFEMjI0MkNGRjZGMDBDNUVEQTIgLyogZ2NtX25vaHcuYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxRUE1NDA2MUVGQzJEMUIwMDJGRjA0QyAvKiBnZW5lcmljLmMgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0ZBQ0YzQzIyNkU5NzBDMDA1NkM3RDAgLyogaGFuZHNoYWtlLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNGQUNGM0QyMjZFOTcwRjAwNTZDN0QwIC8qIGhhbmRzaGFrZV9jbGllbnQuY2Mg
aW4gU291cmNlcyAqLywKQEAgLTE3MTY3LDcgKzE3MTc2LDYgQEAKIAkJCQk0MUEzOTFDNzFFRkM0
NjU2MDBDNDUxNkEgLyogcG9vbC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFQTU0MEMxRUZDMkQx
QjAwMkZGMDRDIC8qIHByaW1lLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNDZFRjFFNDJBQTk3
MDAyNjUxQzggLyogcHJpbnQuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxMDA5MUQyMjQyQ0ZGNkYw
MEM1RURBMiAvKiBnY21fbm9ody5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ3NDMxRTQyQUFF
QTAwMjY1MUM4IC8qIHByaW50Zi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFBMzkxODIxRUZDNDQ3
QzAwQzQ1MTZBIC8qIHJhbmQuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRUE1NDBEMUVGQzJEMUIw
MDJGRjA0QyAvKiByYW5kb20uYyBpbiBTb3VyY2VzICovLApAQCAtMTcyMjEsNyArMTcyMjksNiBA
QAogCQkJCTVDNEI0NzYzMUU0MkFBRjUwMDI2NTFDOCAvKiB0YXNuX2ZyZS5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUM0QjQ3NjQxRTQyQUFGNTAwMjY1MUM4IC8qIHRhc25fbmV3LmMgaW4gU291cmNl
cyAqLywKIAkJCQk1QzRCNDc2NTFFNDJBQUY1MDAyNjUxQzggLyogdGFzbl90eXAuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTQxMDA5MUQzMjQyRDAwMDYwMEM1RURBMiAvKiBhZXNfbm9ody5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUM0QjQ3NjYxRTQyQUFGNTAwMjY1MUM4IC8qIHRhc25fdXRsLmMgaW4g
U291cmNlcyAqLywKIAkJCQk1QzRCNDY0NzFFNDJBQTJDMDAyNjUxQzggLyogdGhyZWFkLmMgaW4g
U291cmNlcyAqLywKIAkJCQk1QzRCNDY0MzFFNDJBQTJDMDAyNjUxQzggLyogdGhyZWFkX25vbmUu
YyBpbiBTb3VyY2VzICovLApAQCAtMTczMTYsMTQgKzE3MzIzLDE2IEBACiAJCQkJNDEzMUM0RDgy
MzRDODRBMzAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGltZV9zZW5kZXIuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REODlGODFFNDNCRkIzMDA2MjFFOTIgLyogYWNjZWxlcmF0ZS5jYyBp
biBTb3VyY2VzICovLAogCQkJCTQxRTAyQ0E4MjEyNzM1MkQwMEMyN0NENiAvKiBhY2tub3dsZWRn
ZWRfYml0cmF0ZV9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzhGMjI0MkE2
QjE3MDA3RkRDNDEgLyogYWNrbm93bGVkZ2VkX2JpdHJhdGVfZXN0aW1hdG9yX2ludGVyZmFjZS5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NTA5MUU0M0IxRUEwMDYyMUU5MiAvKiBhY21fcmVj
ZWl2ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5M0E0NjI0MkE3NzRGMDA3RkRDNDEgLyog
YWNtX3JlbWl4aW5nLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg1MEIxRTQzQjFFQTAwNjIx
RTkyIC8qIGFjbV9yZXNhbXBsZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzhENzI0MkE2
OUNDMDA3RkRDNDEgLyogYWRhcHRhdGlvbl9jb3VudGVycy5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxMzFCRjhFMjM0Qjg4QTYwMDI4QTYxNSAvKiBhZGFwdGVkX3ZpZGVvX3RyYWNrX3NvdXJjZS5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxNkQzQkRCMjEyNzMxQzIwMDc3NUYwOSAvKiBhZGFwdGl2
ZV9hZ2MuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTVGMUZBNjIxMjcyRkJBMDAwNjRDQkYgLyog
YWRhcHRpdmVfZGlnaXRhbF9nYWluX2FwcGxpZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0Qy
ODVBNDFFNkE2MzQzMDA5NEZEQzggLyogYWRhcHRpdmVfZmlyX2ZpbHRlci5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxMzFDMzc3MjM0Qjk1N0QwMDI4QTYxNSAvKiBhZGFwdGl2ZV9maXJfZmlsdGVy
X2VybC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOTNEMjQyQTcwQUUwMDdGREM0MSAvKiB2
aWRlb19zb3VyY2VfcmVzdHJpY3Rpb25zLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2RDNCREUy
MTI3MzFDMjAwNzc1RjA5IC8qIGFkYXB0aXZlX21vZGVfbGV2ZWxfZXN0aW1hdG9yLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE1RjFGQTgyMTI3MkZCQTAwMDY0Q0JGIC8qIGFkYXB0aXZlX21vZGVf
bGV2ZWxfZXN0aW1hdG9yX2FnYy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMkExMjM0QjhD
QzQwMDI4QTYxNSAvKiBhZG1faGVscGVycy5jYyBpbiBTb3VyY2VzICovLApAQCAtMTczMzgsMTAg
KzE3MzQ3LDEwIEBACiAJCQkJNUNERDg2RkYxRTQzQkE3NTAwNjIxRTkyIC8qIGFnY19tYW5hZ2Vy
X2RpcmVjdC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RkQxMUU0M0NENjYwMDYyMUU5MiAv
KiBhaW1kX3JhdGVfY29udHJvbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNDI4MjM0QzdE
MjUwMDI4QTYxNSAvKiBhbGlnbmVkX21hbGxvYy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkz
QTA3MjQyQTc1M0MwMDdGREM0MSAvKiBhbGlnbm1lbnRfbWl4ZXIuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MUUwMkNCNTIxMjczNTJEMDBDMjdDRDYgLyogYWxyX2RldGVjdG9yLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDEzMUMyMkQyMzRCOEJCMjAwMjhBNjE1IC8qIGFscl9leHBlcmltZW50LmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2RUMxRTQzQkE2RDAwNjIxRTkyIC8qIGFuYWxvZ19h
Z2MuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOUM2MjQyQTczMzcwMDdGREM0MSAvKiBjb21w
b3NpdGVfZGF0YV9jaGFubmVsX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFD
MzdGMjM0Qjk1N0QwMDI4QTYxNSAvKiBhcGlfY2FsbF9qaXR0ZXJfbWV0cmljcy5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4N0U1MUU0M0JEQTEwMDYyMUU5MiAvKiBhcG1fZGF0YV9kdW1wZXIu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODkzQjFFNDNCRjNBMDA2MjFFOTIgLyogYXBwLmNj
IGluIFNvdXJjZXMgKi8sCkBAIC0xNzM1MCwyNiArMTczNTksMjAgQEAKIAkJCQk1Q0REODdBNzFF
NDNCQzA1MDA2MjFFOTIgLyogYXJpdGhfcm91dGluZXNfaGlzdC5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDE0MzNEMjkxRjc5QjMzNDAwMzg3QjREIC8qIGFyaXRoX3JvdXRpbmVzX2hpc3QuYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDREQ4N0E4MUU0M0JDMDUwMDYyMUU5MiAvKiBhcml0aF9yb3V0aW5l
c19sb2dpc3QuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOTU4MjQyQTcxRjUwMDdGREM0MSAv
KiBxdWFsaXR5X3JhbXB1cF9leHBlcmltZW50LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0MzNE
MEYxRjc5QjMzNDAwMzg3QjREIC8qIGFyaXRoX3JvdXRpbmVzX2xvZ2lzdC5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDFGQ0JCN0EyMUIxRkZDMDAwQTVERjI3IC8qIGFzY2lpLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDEzMUMwNDkyMzRCODk4RDAwMjhBNjE1IC8qIGFzeW5jX2ludm9rZXIuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTMxQzAzMDIzNEI4OThEMDAyOEE2MTUgLyogYXN5bmNfcGFja2V0
X3NvY2tldC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMDc4MjM0Qjg5OEQwMDI4QTYxNSAv
KiBhc3luY19yZXNvbHZlcl9pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5MzlF
MDI0MkE3MzM3MDA3RkRDNDEgLyogcnRwX3JlY2VpdmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDEzMUMwMjEyMzRCODk4RDAwMjhBNjE1IC8qIGFzeW5jX3NvY2tldC5jYyBpbiBTb3VyY2VzICov
LAotCQkJCTQxODkzQTIyMjQyQTc1QzEwMDdGREM0MSAvKiBiYXNpY19pY2VfY29udHJvbGxlci5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMUQ2MjM0QjhBNEIwMDI4QTYxNSAvKiBhc3luY19z
dHVuX3RjcF9zb2NrZXQuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5MzlDQzI0MkE3MzM3MDA3
RkRDNDEgLyogc2ltdWxjYXN0X2Rlc2NyaXB0aW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEz
MUMwNUEyMzRCODk4RDAwMjhBNjE1IC8qIGFzeW5jX3RjcF9zb2NrZXQuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzAyNTIzNEI4OThEMDAyOEE2MTUgLyogYXN5bmNfdWRwX3NvY2tldC5jYyBp
biBTb3VyY2VzICovLAotCQkJCTQxODkzOEY1MjQyQTZCMTcwMDdGREM0MSAvKiByb2J1c3RfdGhy
b3VnaHB1dF9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODRBOTFFNDNBRjEz
MDA2MjFFOTIgLyogYXVkaW9fYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxQTAy
MTI3NTg4MzAwNjM0RkNGIC8qIGF1ZGlvX2NvZGVjX3BhaXJfaWQuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MTMxQzNCRjIzNEI5N0I0MDAyOEE2MTUgLyogYXVkaW9fY29kZXJfb3B1c19jb21tb24u
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODUxMDFFNDNCMUVBMDA2MjFFOTIgLyogYXVkaW9f
Y29kaW5nX21vZHVsZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QzU5MUU0MzFGOUMwMDI2
NTFDOCAvKiBhdWRpb19jb252ZXJ0ZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5Mzk5NzI0
MkE3MjUyMDA3RkRDNDEgLyogcHJpb3Jfc2lnbmFsX21vZGVsX2VzdGltYXRvci5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDRDI4NTQ0MUU2QTYxRDIwMDk0RkRDOCAvKiBhdWRpb19kZWNvZGVyLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5QzgzRTkxRkUyNDgzNTAwNDBDMzBGIC8qIGF1ZGlvX2Rl
Y29kZXJfZzcxMS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDBCODMxMUU0RTMzOTYwMDc0MDlF
NiAvKiBhdWRpb19kZWNvZGVyX2c3MjIuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3MzgzLDcgKzE3
Mzg2LDYgQEAKIAkJCQk0MTlDODNGMjFGRTI0ODhEMDA0MEMzMEYgLyogYXVkaW9fZGVjb2Rlcl9M
MTYuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzNGOTIzNEM3QjAzMDAyOEE2MTUgLyogYXVk
aW9fZGVjb2Rlcl9tdWx0aV9jaGFubmVsX29wdXMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMx
QzNDMzIzNEI5N0I0MDAyOEE2MTUgLyogYXVkaW9fZGVjb2Rlcl9tdWx0aV9jaGFubmVsX29wdXNf
aW1wbC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOUUyMjQyQTczMzcwMDdGREM0MSAvKiB2
aWRlb190cmFja19zb3VyY2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEM2MDFFNDNDNjA5
MDA2MjFFOTIgLyogYXVkaW9fZGVjb2Rlcl9vcHVzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5
QzgyRjQxRkUyMEVCNTAwNDBDMzBGIC8qIGF1ZGlvX2RlY29kZXJfb3B1cy5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxNDBCODIyMUU0RTMzODMwMDc0MDlFNiAvKiBhdWRpb19kZWNvZGVyX3BjbS5j
YyBpbiBTb3VyY2VzICovLApAQCAtMTczOTEsOSArMTczOTMsNyBAQAogCQkJCTVDMTE5RkZCMUU0
NTc0MDAwMDRGMDk4NyAvKiBhdWRpb19kZXZpY2VfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUMxMUEwMUQxRTQ1NzU3ODAwNEYwOTg3IC8qIGF1ZGlvX2RldmljZV9kdW1teS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDMTE5RkZFMUU0NTc0MDAwMDRGMDk4NyAvKiBhdWRpb19kZXZpY2Vf
Z2VuZXJpYy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOUVDMjQyQTc0MzQwMDdGREM0MSAv
KiBkZWZhdWx0X25ldGVxX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQ1RTRERjFF
RjhDRDM5MDBGQ0Y2RTYgLyogYXVkaW9fZW5jb2Rlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQx
ODkzOUREMjQyQTczMzcwMDdGREM0MSAvKiBzcnRwX2ZpbHRlci5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4Q0E3MUU0M0M2RjcwMDYyMUU5MiAvKiBhdWRpb19lbmNvZGVyX2NuZy5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDREQ4RkYzMUU0M0NERjQwMDYyMUU5MiAvKiBhdWRpb19lbmNvZGVy
X2NvcHlfcmVkLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5QzgzRTcxRkUyNDgzNTAwNDBDMzBG
IC8qIGF1ZGlvX2VuY29kZXJfZzcxMS5jYyBpbiBTb3VyY2VzICovLApAQCAtMTc0MTEsNyArMTc0
MTEsNiBAQAogCQkJCTQxMzFDM0M0MjM0Qjk3QjQwMDI4QTYxNSAvKiBhdWRpb19lbmNvZGVyX211
bHRpX2NoYW5uZWxfb3B1c19pbXBsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhDNjMxRTQz
QzYwOTAwNjIxRTkyIC8qIGF1ZGlvX2VuY29kZXJfb3B1cy5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxOUM4MkY1MUZFMjBFQjUwMDQwQzMwRiAvKiBhdWRpb19lbmNvZGVyX29wdXMuY2MgaW4gU291
cmNlcyAqLywKLQkJCQk0MTg5M0EzQTI0MkE3Njc4MDA3RkRDNDEgLyogbmV0ZXEuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTlDODJGMzFGRTIwRUI1MDA0MEMzMEYgLyogYXVkaW9fZW5jb2Rlcl9v
cHVzX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDBCODIwMUU0RTMzODMwMDc0MDlF
NiAvKiBhdWRpb19lbmNvZGVyX3BjbS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RkZFMUU0
M0NFM0EwMDYyMUU5MiAvKiBhdWRpb19lbmNvZGVyX3BjbTE2Yi5jYyBpbiBTb3VyY2VzICovLApA
QCAtMTc0MjQsMTMgKzE3NDIzLDExIEBACiAJCQkJNUNERDhBOEYxRTQzQzAwRjAwNjIxRTkyIC8q
IGF1ZGlvX2xvb3AuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODQ5NTFFNkE1RjQxMDA5NEZE
QzggLyogYXVkaW9fbWl4ZXJfaW1wbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTAxMUU0
M0JGQjMwMDYyMUU5MiAvKiBhdWRpb19tdWx0aV92ZWN0b3IuY2MgaW4gU291cmNlcyAqLywKLQkJ
CQk0MTg5M0E2MjI0MkE3N0RCMDA3RkRDNDEgLyogZGVmYXVsdF9uZXRlcV9jb250cm9sbGVyX2Zh
Y3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODMwRDFGRTIwRjNDMDA0MEMzMEYgLyog
YXVkaW9fbmV0d29ya19hZGFwdG9yX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
Rjc5MUU0M0NCRTAwMDYyMUU5MiAvKiBhdWRpb19uZXR3b3JrX2FkYXB0b3JfaW1wbC5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxMzFDMzIwMjM0QjhEQzIwMDI4QTYxNSAvKiBhdWRpb19vcHRpb25z
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhGRTkxRTQzQ0RDQTAwNjIxRTkyIC8qIGF1ZGlv
X3Byb2Nlc3NpbmcuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODRBQjFFNDNBRjEzMDA2MjFF
OTIgLyogYXVkaW9fcHJvY2Vzc2luZ19pbXBsLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTM4
RDkyNDJBNjlDQzAwN0ZEQzQxIC8qIHF1YWxpdHlfc2NhbGVyX3Jlc291cmNlLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDE5QzgyOUQxRkUyMEQxQzAwNDBDMzBGIC8qIGF1ZGlvX3Byb2Nlc3Npbmdf
c3RhdGlzdGljcy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMDJGNkJBMjEyNzMzODIwMDZBRThE
NyAvKiBhdWRpb19yZWNlaXZlX3N0cmVhbS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QUND
MUU0M0MyMzkwMDYyMUU5MiAvKiBhdWRpb19yZWNlaXZlX3N0cmVhbS5jYyBpbiBTb3VyY2VzICov
LApAQCAtMTc0MzgsMjQgKzE3NDM1LDE4IEBACiAJCQkJNUNERDhBQ0YxRTQzQzIzOTAwNjIxRTky
IC8qIGF1ZGlvX3NlbmRfc3RyZWFtLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg0QjExRTZB
NUY5RjAwOTRGREM4IC8qIGF1ZGlvX3NlbmRfc3RyZWFtLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNERDhBOTExRTQzQzAwRjAwNjIxRTkyIC8qIGF1ZGlvX3NpbmsuY2MgaW4gU291cmNlcyAqLywK
LQkJCQk0MTg5M0EzRTI0MkE3NjlBMDA3RkRDNDEgLyogbGV2ZWxfZXN0aW1hdG9yLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDhBRDIxRTQzQzIzOTAwNjIxRTkyIC8qIGF1ZGlvX3N0YXRlLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE1RjFGQzYyMTI3MzA4RjAwMDY0Q0JGIC8qIGF1ZGlvX3N0
YXRlLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTM5MTMyNDJBNzA0RTAwN0ZEQzQxIC8qIHJ0
cF9zZW5kZXJfZWdyZXNzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGMzYyMzRCODgyMDAw
MjhBNjE1IC8qIGF1ZGlvX3RyYWNrLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM0QUYyMzRD
ODM4MDAwMjhBNjE1IC8qIGF1ZGlvX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
RjlCRjlCMjA1MUM4NEMwMEFCRjBCOSAvKiBhdWRpb190cmFuc3BvcnRfaW1wbC5jYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTQxODkzOUQ2MjQyQTczMzcwMDdGREM0MSAvKiBkYXRhX2NoYW5uZWxfY29u
dHJvbGxlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QzVGMUU0MzFGOUMwMDI2NTFDOCAv
KiBhdWRpb191dGlsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBMDQxRTQzQkZCMzAwNjIx
RTkyIC8qIGF1ZGlvX3ZlY3Rvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QjcyMUU0M0My
QjUwMDYyMUU5MiAvKiBhdWdtZW50ZWRfY2JfY29yci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDg2NDAxRTQzQjhCNTAwNjIxRTkyIC8qIGF1dG9fY29ycl90b19yZWZsX2NvZWYuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTQxODkzOEUxMjQyQTY5Q0MwMDdGREM0MSAvKiByZXNvdXJjZV9hZGFwdGF0
aW9uX3Byb2Nlc3Nvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NjQxMUU0M0I4QjUwMDYy
MUU5MiAvKiBhdXRvX2NvcnJlbGF0aW9uLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzQwNTIz
NEM3QjdFMDAyOEE2MTUgLyogYXV0b19jb3JyZWxhdGlvbi5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4QTA3MUU0M0JGQjMwMDYyMUU5MiAvKiBiYWNrZ3JvdW5kX25vaXNlLmNjIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNDE4OTM5NDAyNDJBNzBBRTAwN0ZEQzQxIC8qIHJlc291cmNlX2NvbnN1bWVy
X2NvbmZpZ3VyYXRpb24uY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5M0EwMzI0MkE3NTNDMDA3
RkRDNDEgLyogc3ViYmFuZF9uZWFyZW5kX2RldGVjdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDFBMDhCQzgyMTI2OTVERTAwMUQ1RDdCIC8qIGJhZF9vcHRpb25hbF9hY2Nlc3MuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTkyNDE4MTIxMjc0OTcxMDA2MzRGQ0YgLyogYmFkX3ZhcmlhbnRfYWNj
ZXNzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMyMzIyMzRCOEJCMjAwMjhBNjE1IC8qIGJh
bGFuY2VkX2RlZ3JhZGF0aW9uX3NldHRpbmdzLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xNzQ2NCw2
ICsxNzQ1NSw3IEBACiAJCQkJNDE5MjQxQzQyMTI3NTkzRjAwNjM0RkNGIC8qIGJhbmR3aWR0aF9z
YW1wbGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMjYzQjcyMTI2ODEwQzAwMjc0RjU5IC8q
IGJhc2U2NC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMUM1MjM0QjhBNEEwMDI4QTYxNSAv
KiBiYXNpY19hc3luY19yZXNvbHZlcl9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4
OTNBMjIyNDJBNzVDMTAwN0ZEQzQxIC8qIGJhc2ljX2ljZV9jb250cm9sbGVyLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDEzMUMxQzcyMzRCOEE0QTAwMjhBNjE1IC8qIGJhc2ljX3BhY2tldF9zb2Nr
ZXRfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNDU5MjM0QzgxMTgwMDI4QTYx
NSAvKiBiYXNpY19wb3J0X2FsbG9jYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MUM5
MjEyNzU5M0YwMDYzNEZDRiAvKiBiYnJfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovLApAQCAtMTc1
MDUsOCArMTc0OTcsNiBAQAogCQkJCTVDREQ4Qjc4MUU0M0MyQjUwMDYyMUU5MiAvKiBjYl9tZW1f
ZW5lcmd5X2F1Z21lbnRhdGlvbi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCN0ExRTQzQzJC
NTAwNjIxRTkyIC8qIGNiX21lbV9lbmVyZ3lfY2FsYy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDhCODAxRTQzQzJCNTAwNjIxRTkyIC8qIGNiX3NlYXJjaC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJ
NDE4OTNBMTYyNDJBNzU3QTAwN0ZEQzQxIC8qIHZpZGVvX3JlY2VpdmVyMi5jYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxODkzOUY3MjQyQTc0RjgwMDdGREM0MSAvKiBtZWRpYV90cmFuc3BvcnRfY29u
ZmlnLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCN0UxRTQzQzJCNTAwNjIxRTkyIC8qIGNi
X3NlYXJjaF9jb3JlLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEI4MjFFNDNDMkI1MDA2MjFF
OTIgLyogY2JfdXBkYXRlX2Jlc3RfaW5kZXguYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjAw
MjM0Qjg4MjAwMDI4QTYxNSAvKiBjaGFubmVsLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xNzUyMiw3
ICsxNzUxMiw2IEBACiAJCQkJNDEzMUMwMkEyMzRCODk4RDAwMjhBNjE1IC8qIGNoZWNrcy5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4NkExMUU0M0I5OTQwMDYyMUU5MiAvKiBjaXJjdWxhcl9i
dWZmZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNENDNjFFNDMyMEE5MDAyNjUxQzggLyog
Y2xvY2suY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5M0EzNzI0MkE3Njc4MDA3RkRDNDEgLyog
dGlja190aW1lci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzc4MjM0Qjk1N0QwMDI4QTYx
NSAvKiBjbG9ja2RyaWZ0X2RldGVjdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGQ0JCNzUy
MUIxRkZBNDAwQTVERjI3IC8qIGNvY29hX3RocmVhZGluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTQxMzFCRjhCMjM0Qjg4QTYwMDI4QTYxNSAvKiBjb2RlYy5jYyBpbiBTb3VyY2VzICovLApAQCAt
MTc1MzAsMTQgKzE3NTE5LDE0IEBACiAJCQkJNDEwMkY2REMyMTI3MzQxNjAwNkFFOEQ3IC8qIGNv
bG9yX3NwYWNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBMEQxRTQzQkZCMzAwNjIxRTky
IC8qIGNvbWZvcnRfbm9pc2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVCNDFFNkE2MzQz
MDA5NEZEQzggLyogY29tZm9ydF9ub2lzZV9nZW5lcmF0b3IuY2MgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTg5M0E2RTI0MkE3OERGMDA3RkRDNDEgLyogY29tbW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDg5NDExRTQzQkYzQTAwNjIxRTkyIC8qIGNvbW1vbl9oZWFkZXIuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk1Q0REOEI4NjFFNDNDMkI1MDA2MjFFOTIgLyogY29tcF9jb3JyLmMgaW4gU291
cmNlcyAqLywKLQkJCQk0MTg5MzlBMjI0MkE3MkU0MDA3RkRDNDEgLyogdmlkZW9fc291cmNlX3Np
bmtfY29udHJvbGxlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRkQ1MzhEMUU0QkQzQTMwMDQ4
MjkwOCAvKiBjb21wYXJlX25lb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0ZENTM4RTFFNEJE
M0EzMDA0ODI5MDggLyogY29tcGFyZV9uZW9uNjQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0RE
ODY0NDFFNDNCOEI1MDA2MjFFOTIgLyogY29tcGxleF9iaXRfcmV2ZXJzZS5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDE4OTNBMjUyNDJBNzVDMTAwN0ZEQzQxIC8qIGljZV9jb250cm9sbGVyX2ludGVy
ZmFjZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NjQ3MUU0M0I4QjUwMDYyMUU5MiAvKiBj
b21wbGV4X2ZmdC5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5QzYyNDJBNzMzNzAwN0ZEQzQx
IC8qIGNvbXBvc2l0ZV9kYXRhX2NoYW5uZWxfdHJhbnNwb3J0LmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDEzMUJGMTMyMzRCODgyMDAwMjhBNjE1IC8qIGNvbXBvc2l0ZV9ydHBfdHJhbnNwb3J0LmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg5NDQxRTQzQkYzQTAwNjIxRTkyIC8qIGNvbXBvdW5k
X3BhY2tldC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNUYxRkFBMjEyNzJGQkEwMDA2NENCRiAv
KiBjb21wdXRlX2ludGVycG9sYXRlZF9nYWluX2N1cnZlLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0x
NzU0Niw3ICsxNzUzNSw2IEBACiAJCQkJNDEzMUMxQzAyMzRCOEE0QTAwMjhBNjE1IC8qIGNvbm5l
Y3Rpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzFEMjIzNEI4QTRCMDAyOEE2MTUgLyog
Y29ubmVjdGlvbl9pbmZvLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBOTMxRTQzQzAwRjAw
NjIxRTkyIC8qIGNvbnN0YW50X3BjbV9wYWNrZXRfc291cmNlLmNjIGluIFNvdXJjZXMgKi8sCi0J
CQkJNDE4OTM4RDcyNDJBNjlDQzAwN0ZEQzQxIC8qIGFkYXB0YXRpb25fY291bnRlcnMuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0REOEI4OTFFNDNDMkI1MDA2MjFFOTIgLyogY29uc3RhbnRzLmMg
aW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzI5MTIzNEI4Q0M0MDAyOEE2MTUgLyogY29uc3RhbnRz
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGQ0JCMzkyMUIxRjhGQzAwQTVERjI3IC8qIGNvbnRy
b2xfaGFuZGxlci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTc1NjIsMTggKzE3NTUwLDE3IEBACiAJ
CQkJNDEzMUMwM0YyMzRCODk4RDAwMjhBNjE1IC8qIGNyYzMyLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDhCOEIxRTQzQzJCNTAwNjIxRTkyIC8qIGNyZWF0ZV9hdWdtZW50ZWRfdmVjLmMgaW4g
U291cmNlcyAqLywKIAkJCQk0MTMxQzJGMDIzNEI4REMyMDAyOEE2MTUgLyogY3JlYXRlX3BlZXJj
b25uZWN0aW9uX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzkyMTI0MkE3MDRF
MDA3RkRDNDEgLyogY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzA3QjIzNEI4OThEMDAyOEE2MTUgLyogY3JpdGljYWxfc2VjdGlvbi5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4NjRCMUU0M0I4QjUwMDYyMUU5MiAvKiBjcm9zc19jb3Jy
ZWxhdGlvbi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBMEYxRTQzQkZCMzAwNjIxRTkyIC8q
IGNyb3NzX2NvcnJlbGF0aW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwMzMyMzRCODk4
RDAwMjhBNjE1IC8qIGNyeXB0X3N0cmluZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDM0I2
MjM0Qjk3MTIwMDI4QTYxNSAvKiBjcnlwdG9fb3B0aW9ucy5jYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxODkzOThDMjQyQTcyNTIwMDdGREM0MSAvKiBuc19mZnQuY2MgaW4gU291cmNlcyAqLywKLQkJ
CQk0MTAwOTFGQzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDE4OTNBMzQyNDJBNzY3ODAwN0ZEQzQxIC8qIGN1c3RvbV9uZXRlcV9mYWN0
b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGMjYyMzRCODgyMDAwMjhBNjE1IC8qIGRh
dGFfY2hhbm5lbC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOUQ2MjQyQTczMzcwMDdGREM0
MSAvKiBkYXRhX2NoYW5uZWxfY29udHJvbGxlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFD
MzExMjM0QjhEQzIwMDI4QTYxNSAvKiBkYXRhX2NoYW5uZWxfaW50ZXJmYWNlLmNjIGluIFNvdXJj
ZXMgKi8sCi0JCQkJNDEwMDkxRjgyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MUUxMjEyNzVBMzAwMDYzNEZDRiAvKiBkYXRhX3Jh
dGUuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5Mzk1QjI0MkE3MUY1MDA3RkRDNDEgLyogbWlu
X3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMDI0
MjM0Qjg5OEQwMDI4QTYxNSAvKiBkYXRhX3JhdGVfbGltaXRlci5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxOTI0MURGMjEyNzVBMzAwMDYzNEZDRiAvKiBkYXRhX3NpemUuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTkyNDFDMTIxMjc1OTNGMDA2MzRGQ0YgLyogZGF0YV90cmFuc2Zlcl90cmFja2Vy
LmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xNzU4Miw3ICsxNzU2OSw2IEBACiAJCQkJNDE5QzgzRjkx
RkUyNDhGMTAwNDBDMzBGIC8qIGRlY2ltYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
QTE2MUU0M0JGQjMwMDYyMUU5MiAvKiBkZWNpc2lvbl9sb2dpYy5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxNDMzRDA1MUY3OUIzMzQwMDM4N0I0RCAvKiBkZWNvZGUuYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxODkzOTNDMjQyQTcwQUUwMDdGREM0MSAvKiByZXNvdXJjZS5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4N0I0MUU0M0JDMDUwMDYyMUU5MiAvKiBkZWNvZGUuYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4QjhGMUU0M0MyQjUwMDYyMUU5MiAvKiBkZWNvZGUuYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxNDMzQ0VCMUY3OUIzMzQwMDM4N0I0RCAvKiBkZWNvZGVfYndlLmMgaW4gU291cmNl
cyAqLywKQEAgLTE3NTk0LDkgKzE3NTgwLDExIEBACiAJCQkJNUNERDhBMTkxRTQzQkZCMzAwNjIx
RTkyIC8qIGRlY29kZXJfZGF0YWJhc2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEI5MTFF
NDNDMkI1MDA2MjFFOTIgLyogZGVjb2Rlcl9pbnRlcnBvbGF0ZV9sc2YuYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4M0NBMUU0MzlBNkYwMDYyMUU5MiAvKiBkZWNvZGluZ19zdGF0ZS5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxODkzQTFGMjQyQTc1QzEwMDdGREM0MSAvKiBkZWZhdWx0X2ljZV90
cmFuc3BvcnRfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzQTYyMjQyQTc3REIw
MDdGREM0MSAvKiBkZWZhdWx0X25ldGVxX2NvbnRyb2xsZXJfZmFjdG9yeS5jYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxODkzOUVDMjQyQTc0MzQwMDdGREM0MSAvKiBkZWZhdWx0X25ldGVxX2ZhY3Rv
cnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODQ5NzFFNkE1RjQxMDA5NEZEQzggLyogZGVm
YXVsdF9vdXRwdXRfcmF0ZV9jYWxjdWxhdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM0
RTAyMzRDODRERDAwMjhBNjE1IC8qIGRlZmF1bHRfdGFza19xdWV1ZV9mYWN0b3J5X3N0ZGxpYi5j
YyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOEUwMjQyQTY5Q0MwMDdGREM0MSAvKiBvdmVydXNl
X2ZyYW1lX2RldGVjdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFDNjI5MzYyMTJFMkVFNTAw
MjMxM0Q0IC8qIGRlZmF1bHRfdGVtcG9yYWxfbGF5ZXJzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDEwMkY2QkIyMTI3MzM4MjAwNkFFOEQ3IC8qIGRlZ3JhZGVkX2NhbGwuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MUUwMkNBNTIxMjczNTJEMDBDMjdDRDYgLyogZGVsYXlfYmFzZWRfYndlLmNjIGlu
IFNvdXJjZXMgKi8sCkBAIC0xNzYwNyw2ICsxNzU5NSw3IEBACiAJCQkJNUNERDg2NEMxRTQzQjhC
NTAwNjIxRTkyIC8qIGRpdmlzaW9uX29wZXJhdGlvbnMuYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
REQ4OTQ3MUU0M0JGM0EwMDYyMUU5MiAvKiBkbHJyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDhCOTQxRTQzQzJCNTAwNjIxRTkyIC8qIGRvX3BsYy5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4
OTNBMDYyNDJBNzUzQzAwN0ZEQzQxIC8qIGRvbWluYW50X25lYXJlbmRfZGV0ZWN0b3IuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTI0NTU0NTFFRjg3QzBGMDBGMTE4MDkgLyogZG90X3Byb2R1Y3Rf
d2l0aF9zY2FsZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNUYxRkFDMjEyNzJGQkEwMDA2NENC
RiAvKiBkb3duX3NhbXBsZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODY1MDFFNDNCOEI1
MDA2MjFFOTIgLyogZG93bnNhbXBsZV9mYXN0LmMgaW4gU291cmNlcyAqLywKQEAgLTE3NjE1LDcg
KzE3NjA0LDYgQEAKIAkJCQk0MTMxQkYzRjIzNEI4ODIwMDAyOEE2MTUgLyogZHRsc19zcnRwX3Ry
YW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjBGMjM0Qjg4MjAwMDI4QTYxNSAv
KiBkdGxzX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMUYyMjM0QjhBNEIw
MDI4QTYxNSAvKiBkdGxzX3RyYW5zcG9ydC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOUU3
MjQyQTczQjMwMDdGREM0MSAvKiB0cmFuc3BvcnRfc3RhdHMuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTMxQzMwMDIzNEI4REMyMDAyOEE2MTUgLyogZHRsc190cmFuc3BvcnRfaW50ZXJmYWNlLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxQzIyMzRCOEE0QTAwMjhBNjE1IC8qIGR0bHNfdHJh
bnNwb3J0X2ludGVybmFsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBMjYxRTQzQkZCMzAw
NjIxRTkyIC8qIGR0bWZfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xNzYzOCwxMyArMTc2
MjYsMTQgQEAKIAkJCQk0MTQzM0QxMjFGNzlCMzM0MDAzODdCNEQgLyogZW5jb2RlLmMgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REODdCNTFFNDNCQzA1MDA2MjFFOTIgLyogZW5jb2RlX2xwY19zd2Iu
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTk1MUU0M0MwMEYwMDYyMUU5MiAvKiBlbmNvZGVf
bmV0ZXFfaW5wdXQuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5M0EwNzI0MkE3NTNDMDA3RkRD
NDEgLyogYWxpZ25tZW50X21peGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM4REYyNDJB
NjlDQzAwN0ZEQzQxIC8qIGVuY29kZV91c2FnZV9yZXNvdXJjZS5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4M0NDMUU0MzlBNkYwMDYyMUU5MiAvKiBlbmNvZGVkX2ZyYW1lLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDFBMDhCQUIyMTI2ODFDODAwMUQ1RDdCIC8qIGVuY29kZWRfZnJhbWUuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MUZDQkIxRDIxQjFGN0NEMDBBNURGMjcgLyogZW5jb2RlZF9p
bWFnZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNEE2MjM0QzgzNEUwMDI4QTYxNSAvKiBl
bmNvZGVyX2JpdHJhdGVfYWRqdXN0ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzRBMDIz
NEM4MzRFMDAyOEE2MTUgLyogZW5jb2Rlcl9vdmVyc2hvb3RfZGV0ZWN0b3IuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk1Q0REODU5RjFFNDNCNUMwMDA2MjFFOTIgLyogZW5jb2Rlcl9ydGNwX2ZlZWRi
YWNrLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5M0YyNDJBNzBBRTAwN0ZEQzQxIC8qIGVu
Y29kZXJfc2V0dGluZ3MuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzI5QTIzNEI4Q0M0MDAy
OEE2MTUgLyogZW5jb2Rlcl9zaW11bGNhc3RfcHJveHkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REODY1MTFFNDNCOEI1MDA2MjFFOTIgLyogZW5lcmd5LmMgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REOEI5ODFFNDNDMkI1MDA2MjFFOTIgLyogZW5lcmd5X2ludmVyc2UuYyBpbiBTb3VyY2VzICov
LApAQCAtMTc2NTYsNyArMTc2NDUsOSBAQAogCQkJCTVDRDI4NUMyMUU2QTYzNDMwMDk0RkRDOCAv
KiBlcmxfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1QzQxRTZBNjM0MzAw
OTRGREM4IC8qIGVybGVfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwNEEy
MzRCODk4RDAwMjhBNjE1IC8qIGV2ZW50LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTNBNEEy
NDJBNzc4OTAwN0ZEQzQxIC8qIGV2ZW50X2Jhc2VkX2V4cG9uZW50aWFsX21vdmluZ19hdmVyYWdl
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg2MTQxRTZBNjYxMzAwOTRGREM4IC8qIGV2ZW50
X2xvZ193cml0ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5M0E1RTI0MkE3N0I4MDA3RkRD
NDEgLyogZXZlbnRfcmF0ZV9jb3VudGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwMzky
MzRCODk4RDAwMjhBNjE1IC8qIGV2ZW50X3RyYWNlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
OUM4MzRGMUZFMjQ2NjUwMDQwQzMwRiAvKiBleHBfZmlsdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDhBMkMxRTQzQkZCMzAwNjIxRTkyIC8qIGV4cGFuZC5jYyBpbiBTb3VyY2VzICovLApA
QCAtMTc2NjQsMTIgKzE3NjU1LDEyIEBACiAJCQkJNDEzMUMyMzcyMzRCOEJCMjAwMjhBNjE1IC8q
IGV4cGVyaW1lbnRhbF9zY3JlZW5zaGFyZV9zZXR0aW5ncy5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4OTRBMUU0M0JGM0EwMDYyMUU5MiAvKiBleHRlbmRlZF9qaXR0ZXJfcmVwb3J0LmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDg5NEQxRTQzQkYzQTAwNjIxRTkyIC8qIGV4dGVuZGVkX3Jl
cG9ydHMuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5Mzk4MTI0MkE3MjUxMDA3RkRDNDEgLyog
cXVhbnRpbGVfbm9pc2VfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGNjMy
MzRCODgyMDAwMjhBNjE1IC8qIGV4dGVybmFsX2htYWMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0
MTMxQzA2MDIzNEI4OThEMDAyOEE2MTUgLyogZmFrZV9jbG9jay5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4QTk3MUU0M0MwMEYwMDYyMUU5MiAvKiBmYWtlX2RlY29kZV9mcm9tX2ZpbGUuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzU2MDIzNEM4QjcyMDAyOEE2MTUgLyogZmFrZV9uZXR3
b3JrX3BpcGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzA3RDIzNEI4OThEMDAyOEE2MTUg
LyogZmFrZV9zc2xfaWRlbnRpdHkuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5Mzk5ODI0MkE3
MjUyMDA3RkRDNDEgLyogZmFzdF9tYXRoLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxM0Ey
MTI3MzcyNDAwNjM0RkNGIC8qIGZlYXR1cmVzX2V4dHJhY3Rpb24uY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MUUwMkM4QTIxMjczNEI5MDBDMjdDRDYgLyogZmVjX2NvbnRyb2xsZXJfZGVmYXVsdC5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MTkwMjEyNzU4MTAwMDYzNEZDRiAvKiBmZWNfcHJp
dmF0ZV90YWJsZXNfYnVyc3R5LmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xNzY4OSw3ICsxNzY4MCw2
IEBACiAJCQkJNUMxMUEwMjExRTQ1NzU3ODAwNEYwOTg3IC8qIGZpbGVfYXVkaW9fZGV2aWNlLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUMxMUEwMUYxRTQ1NzU3ODAwNEYwOTg3IC8qIGZpbGVfYXVk
aW9fZGV2aWNlX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzA0MTIzNEI4OThE
MDAyOEE2MTUgLyogZmlsZV9yb3RhdGluZ19zdHJlYW0uY2MgaW4gU291cmNlcyAqLywKLQkJCQk0
MTg5MzlEMTI0MkE3MzM3MDA3RkRDNDEgLyogc2RwX3NlcmlhbGl6ZXIuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REOEM4QjFFNDNDNjYwMDA2MjFFOTIgLyogZmlsZV91dGlscy5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxRjI2M0FDMjEyNjgwQTgwMDI3NEY1OSAvKiBmaWxlX3dyYXBwZXIuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzM4RjIzNEI5NTdEMDAyOEE2MTUgLyogZmlsdGVyX2Fu
YWx5emVyLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xNzcxMSwxOCArMTc3MDEsMTcgQEAKIAkJCQk0
MTVGMUZBRDIxMjcyRkJBMDAwNjRDQkYgLyogZml4ZWRfZGlnaXRhbF9sZXZlbF9lc3RpbWF0b3Iu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODg3RTFFNDNCRTNDMDA2MjFFOTIgLyogZmxleGZl
Y19oZWFkZXJfcmVhZGVyX3dyaXRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMDJGNkJDMjEy
NzMzODIwMDZBRThENyAvKiBmbGV4ZmVjX3JlY2VpdmVfc3RyZWFtLmNjIGluIFNvdXJjZXMgKi8s
Ci0JCQkJNDE4OTM4REQyNDJBNjlDQzAwN0ZEQzQxIC8qIHZpZGVvX3N0cmVhbV9hZGFwdGVyLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg0QjkxRTZBNUY5RjAwOTRGREM4IC8qIGZsZXhmZWNf
cmVjZWl2ZV9zdHJlYW1faW1wbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4ODgzMUU0M0JF
M0MwMDYyMUU5MiAvKiBmbGV4ZmVjX3JlY2VpdmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDg4ODUxRTQzQkUzQzAwNjIxRTkyIC8qIGZsZXhmZWNfc2VuZGVyLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDg4ODgxRTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3JfY29ycmVjdGlv
bi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4ODg2MUU0M0JFM0MwMDYyMUU5MiAvKiBmb3J3
YXJkX2Vycm9yX2NvcnJlY3Rpb25faW50ZXJuYWwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0Qy
ODVDOTFFNkE2MzQzMDA5NEZEQzggLyogZnJhbWVfYmxvY2tlci5jYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxODkzQTU2MjQyQTc3QjgwMDdGREM0MSAvKiBzYW1wbGVzX3N0YXRzX2NvdW50ZXIuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REODNDRjFFNDM5QTZGMDA2MjFFOTIgLyogZnJhbWVfYnVm
ZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgzRDExRTQzOUE2RjAwNjIxRTkyIC8qIGZy
YW1lX2J1ZmZlcjIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJBMjFFNDNDMkI1MDA2MjFF
OTIgLyogZnJhbWVfY2xhc3NpZnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NDlBMUU2QTVG
NDEwMDk0RkRDOCAvKiBmcmFtZV9jb21iaW5lci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkz
QTE0MjQyQTc1N0EwMDdGREM0MSAvKiBmcmFtZV9kZXBlbmRlbmNpZXNfY2FsY3VsYXRvci5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4Mzc5MUU0MzlBMzUwMDYyMUU5MiAvKiBmcmFtZV9kcm9w
cGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGQ0JCNTkyMUIxRkU2RTAwQTVERjI3IC8qIGZy
YW1lX2R1bXBpbmdfZGVjb2Rlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNDlFMjM0Qzgz
NEUwMDI4QTYxNSAvKiBmcmFtZV9lbmNvZGVfbWV0YWRhdGFfd3JpdGVyLmNjIGluIFNvdXJjZXMg
Ki8sCkBAIC0xNzc1Nyw2ICsxNzc0NiwxMSBAQAogCQkJCTQxMzFCRjk4MjM0Qjg4QTYwMDI4QTYx
NSAvKiBoMjY0X3Byb2ZpbGVfbGV2ZWxfaWQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVF
QTFFNkE2MzlGMDA5NEZEQzggLyogaDI2NF9zcHJvcF9wYXJhbWV0ZXJfc2V0cy5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4M0Q5MUU0MzlBNkYwMDYyMUU5MiAvKiBoMjY0X3Nwc19wcHNfdHJh
Y2tlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUZGMjQyRTM2MjIwMEM1RURBMiAvKiBo
MjY1X2NvbW1vbi5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUZCMjQyRTM2MjIwMEM1RURB
MiAvKiBoMjY1X3Bwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTAwOTFGODI0MkUz
NjIyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEw
MDkxRkMyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxMDA5MUVFMjQyRTMxNzQwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNr
ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUZDQkI3MTIxQjFGRjc0MDBBNURGMjcgLyogaGRy
X21ldGFkYXRhLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwNjgyMzRCODk4RDAwMjhBNjE1
IC8qIGhlbHBlcnMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNCQzIxNjk4MjRCMDAyODI2
NkIgLyogaGVscGVycy5jYyBpbiBTb3VyY2VzICovLApAQCAtMTc3NjQsMjUgKzE3NzU4LDIwIEBA
CiAJCQkJNUNERDgzREIxRTQzOUE2RjAwNjIxRTkyIC8qIGhpc3RvZ3JhbS5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxMzFDNEY2MjM0Qzg2N0IwMDI4QTYxNSAvKiBoaXN0b2dyYW0uY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTlDODM1MTFGRTI0NjY1MDA0MEMzMEYgLyogaGlzdG9ncmFtX3BlcmNl
bnRpbGVfY291bnRlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOTdGMjQyQTcyNTEwMDdG
REM0MSAvKiBoaXN0b2dyYW1zLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCQUUxRTQzQzJC
NTAwNjIxRTkyIC8qIGhwX2lucHV0LmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5MzkzRjI0MkE3
MEFFMDA3RkRDNDEgLyogZW5jb2Rlcl9zZXR0aW5ncy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
REQ4QkIwMUU0M0MyQjUwMDYyMUU5MiAvKiBocF9vdXRwdXQuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTQxODkzOUY2MjQyQTc0RjgwMDdGREM0MSAvKiBtZWRpYV90cmFuc3BvcnRfaW50ZXJmYWNlLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwNzEyMzRCODk4RDAwMjhBNjE1IC8qIGh0dHBfY29t
bW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEwMkY2RTAyMTI3MzQxNjAwNkFFOEQ3IC8qIGkw
MTBfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg0NjcxRTZBNTdGNDAwOTRGREM4
IC8qIGk0MjBfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjRDMUIxRTQzMUY3NTAw
MjY1MUM4IC8qIGk0MjBfYnVmZmVyX3Bvb2wuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTAwOTFF
RTI0MkUzMTc0MDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDE4OTNBMjUyNDJBNzVDMTAwN0ZEQzQxIC8qIGljZV9jb250cm9sbGVyX2lu
dGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMUYxMjM0QjhBNEIwMDI4QTYxNSAv
KiBpY2VfY3JlZGVudGlhbHNfaXRlcmF0b3IuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5M0E0
QTI0MkE3Nzg5MDA3RkRDNDEgLyogZXZlbnRfYmFzZWRfZXhwb25lbnRpYWxfbW92aW5nX2F2ZXJh
Z2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzNFNjIzNEM3QTA4MDAyOEE2MTUgLyogaWNl
X2xvZ2dlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjU1MjM0Qjg4MjAwMDI4QTYxNSAv
KiBpY2Vfc2VydmVyX3BhcnNpbmcuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTAwOTIxMDI0MkUz
QTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTQxMzFCRjBFMjM0Qjg4MjAwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0LmNjIGluIFNvdXJjZXMg
Ki8sCi0JCQkJNDEwMDkyMTEyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzFBMjM0QjhEQzIwMDI4QTYxNSAvKiBp
Y2VfdHJhbnNwb3J0X2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzFCRjIzNEI4
QTRBMDAyOEE2MTUgLyogaWNlX3RyYW5zcG9ydF9pbnRlcm5hbC5jYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxODkzQTVFMjQyQTc3QjgwMDdGREM0MSAvKiBldmVudF9yYXRlX2NvdW50ZXIuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTMxQzA0NzIzNEI4OThEMDAyOEE2MTUgLyogaWZhZGRyc19hbmRy
b2lkLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwNUMyMzRCODk4RDAwMjhBNjE1IC8qIGlm
YWRkcnNfY29udmVydGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCQjMxRTQzQzJCNTAw
NjIxRTkyIC8qIGlsYmMuYyBpbiBTb3VyY2VzICovLApAQCAtMTc3OTEsNyArMTc3ODAsNiBAQAog
CQkJCTVDREQ4QkI1MUU0M0MyQjUwMDYyMUU5MiAvKiBpbmRleF9jb252X2RlYy5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNERDhCQjcxRTQzQzJCNTAwNjIxRTkyIC8qIGluZGV4X2NvbnZfZW5jLmMg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJCOTFFNDNDMkI1MDA2MjFFOTIgLyogaW5pdF9kZWNv
ZGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOTgzMjQyQTcyNTEwMDdGREM0MSAvKiB3aWVu
ZXJfZmlsdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCQkIxRTQzQzJCNTAwNjIxRTky
IC8qIGluaXRfZW5jb2RlLmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0NGODFGNzlCMzM0MDAz
ODdCNEQgLyogaW5pdGlhbGl6ZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBOUExRTQzQzAw
RjAwNjIxRTkyIC8qIGlucHV0X2F1ZGlvX2ZpbGUuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3ODA1
LDcgKzE3NzkzLDYgQEAKIAkJCQk0MTlDODI5QTFGRTIwQ0ExMDA0MEMzMEYgLyogaW50ZXJ2YWxf
YnVkZ2V0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3QzAxRTQzQkMwNTAwNjIxRTkyIC8q
IGludGlhbGl6ZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwNDgyMzRCODk4RDAwMjhBNjE1
IC8qIGlwX2FkZHJlc3MuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5MzkyOTI0MkE3MDRFMDA3
RkRDNDEgLyogcnRwX2RlcGVuZGVuY3lfZGVzY3JpcHRvcl9yZWFkZXIuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REODdDMzFFNDNCQzA1MDA2MjFFOTIgLyogaXNhYy5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDEyOTlCOTEyMTI3MzY3QjAwQjM0MTRCIC8qIGlzYWNfdmFkLmMgaW4gU291cmNlcyAq
LywKIAkJCQk0MTQzM0QyQTFGNzlCMzM0MDAzODdCNEQgLyogaXNhY2ZpeC5jIGluIFNvdXJjZXMg
Ki8sCkBAIC0xNzgyNSwyMCArMTc4MTIsMTkgQEAKIAkJCQk0MTQzM0NGMjFGNzlCMzM0MDAzODdC
NEQgLyogbGF0dGljZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0MzNEMTQxRjc5QjMzNDAwMzg3
QjREIC8qIGxhdHRpY2VfYy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg0MUYxRTQzOUIyOTAw
NjIxRTkyIC8qIGxlZ2FjeV9lbmNvZGVkX2F1ZGlvX2ZyYW1lLmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDE4OTNBM0UyNDJBNzY5QTAwN0ZEQzQxIC8qIGxldmVsX2VzdGltYXRvci5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4NjVBMUU0M0I4QjUwMDYyMUU5MiAvKiBsZXZpbnNvbl9kdXJiaW4u
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxM0U2Nzc1MjE2OTg2M0IwMEVGMzdFRCAvKiBsaWJ2cHhf
aW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyOTQwOTQyMTJFMTI4RDAwQUQ5NUU3
IC8qIGxpYnZweF92cDhfZGVjb2Rlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMjk0MDkyMjEy
RTEyOEQwMEFEOTVFNyAvKiBsaWJ2cHhfdnA4X2VuY29kZXIuY2MgaW4gU291cmNlcyAqLywKLQkJ
CQk0MTg5MzkxNzI0MkE3MDRFMDA3RkRDNDEgLyogcnRwX3NlbmRlcl92aWRlb19mcmFtZV90cmFu
c2Zvcm1lcl9kZWxlZ2F0ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNkQzQkU2MjEyNzMxQzIw
MDc3NUYwOSAvKiBsaW1pdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM0QzUyMzRDODQ1
MjAwMjhBNjE1IC8qIGxpbmtfY2FwYWNpdHlfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDEzMUJGNEEyMzRCODgyMDAwMjhBNjE1IC8qIGxvY2FsX2F1ZGlvX3NvdXJjZS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxMzFDMDY5MjM0Qjg5OEQwMDI4QTYxNSAvKiBsb2NhdGlvbi5jYyBp
biBTb3VyY2VzICovLAogCQkJCTQxMzFDMDYxMjM0Qjg5OEQwMDI4QTYxNSAvKiBsb2dfc2lua3Mu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzNFNzIzNEM3QTA4MDAyOEE2MTUgLyogbG9nZ2Vk
X2V2ZW50cy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOURGMjQyQTczMzcwMDdGREM0MSAv
KiB0cmFja19tZWRpYV9pbmZvX21hcC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNTAxMjM0
QzhBMTUwMDI4QTYxNSAvKiBsb2dnaW5nLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTNBMDYy
NDJBNzUzQzAwN0ZEQzQxIC8qIGRvbWluYW50X25lYXJlbmRfZGV0ZWN0b3IuY2MgaW4gU291cmNl
cyAqLywKKwkJCQk0MTg5MzhFRDI0MkE2QjE3MDA3RkRDNDEgLyogbG9zc19iYXNlZF9iYW5kd2lk
dGhfZXN0aW1hdGlvbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNEJBMjM0QzgzREQwMDI4
QTYxNSAvKiBsb3NzX25vdGlmaWNhdGlvbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNEJE
MjM0Qzg0MDYwMDI4QTYxNSAvKiBsb3NzX25vdGlmaWNhdGlvbl9jb250cm9sbGVyLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDE5MjQxQzUyMTI3NTkzRjAwNjM0RkNGIC8qIGxvc3NfcmF0ZV9maWx0
ZXIuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3ODQ3LDcgKzE3ODMzLDYgQEAKIAkJCQk1Q0REODdD
NTFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX2FuYWx5c2lzLmMgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REOEJDMTFFNDNDMkI1MDA2MjFFOTIgLyogbHBjX2VuY29kZS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDg3QzcxRTQzQkMwNTAwNjIxRTkyIC8qIGxwY19nYWluX3N3Yl90YWJsZXMuYyBpbiBT
b3VyY2VzICovLAotCQkJCTQxMDA5MUU2MjQyRTJBQTMwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gy
NjUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0NFRTFGNzlCMzM0MDAzODdCNEQgLyogbHBj
X21hc2tpbmdfbW9kZWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4N0M5MUU0M0JDMDUwMDYy
MUU5MiAvKiBscGNfc2hhcGVfc3diMTJfdGFibGVzLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0RE
ODdDQjFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX3NoYXBlX3N3YjE2X3RhYmxlcy5jIGluIFNvdXJj
ZXMgKi8sCkBAIC0xNzg2MSw3ICsxNzg0Niw2IEBACiAJCQkJNUNERDhCQ0IxRTQzQzJCNTAwNjIx
RTkyIC8qIGxzZl90b19wb2x5LmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJDRDFFNDNDMkI1
MDA2MjFFOTIgLyogbHNwX3RvX2xzZi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwN0YyMzRC
ODk4RDAwMjhBNjE1IC8qIG1hY19pZmFkZHJzX2NvbnZlcnRlci5jYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxODkzQTEyMjQyQTc1N0EwMDdGREM0MSAvKiB1bmlxdWVfdGltZXN0YW1wX2NvdW50ZXIu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVDQjFFNkE2MzQzMDA5NEZEQzggLyogbWFpbl9m
aWx0ZXJfdXBkYXRlX2dhaW4uY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUZDQkIzQzIxQjFGRDQw
MDBBNURGMjcgLyogbWF0Y2guY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVDRjFFNkE2MzQz
MDA5NEZEQzggLyogbWF0Y2hlZF9maWx0ZXIuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3ODcyLDEz
ICsxNzg1NiwxMyBAQAogCQkJCTQxMzFCRkEyMjM0Qjg4QTYwMDI4QTYxNSAvKiBtZWRpYV9jb25z
dGFudHMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkY4OTIzNEI4OEE2MDAyOEE2MTUgLyog
bWVkaWFfZW5naW5lLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDgzRTUxRTQzOUE2RjAwNjIx
RTkyIC8qIG1lZGlhX29wdF91dGlsLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTM5MTYyNDJB
NzA0RTAwN0ZEQzQxIC8qIHZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfcmF3LmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDEzMUJGNjUyMzRCODgyMDAwMjhBNjE1IC8qIG1lZGlhX3Byb3RvY29sX25hbWVz
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGMzAyMzRCODgyMDAwMjhBNjE1IC8qIG1lZGlh
X3Nlc3Npb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkYxODIzNEI4ODIwMDAyOEE2MTUg
LyogbWVkaWFfc3RyZWFtLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMzMTUyMzRCOERDMjAw
MjhBNjE1IC8qIG1lZGlhX3N0cmVhbV9pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0
MTMxQkYyNTIzNEI4ODIwMDAyOEE2MTUgLyogbWVkaWFfc3RyZWFtX29ic2VydmVyLmNjIGluIFNv
dXJjZXMgKi8sCi0JCQkJNDE4OTM4RUYyNDJBNkIxNzAwN0ZEQzQxIC8qIHNlbmRfc2lkZV9iYW5k
d2lkdGhfZXN0aW1hdGlvbi5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOUY3MjQyQTc0Rjgw
MDdGREM0MSAvKiBtZWRpYV90cmFuc3BvcnRfY29uZmlnLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDE4OTM5RjYyNDJBNzRGODAwN0ZEQzQxIC8qIG1lZGlhX3RyYW5zcG9ydF9pbnRlcmZhY2UuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzJGNzIzNEI4REMyMDAyOEE2MTUgLyogbWVkaWFfdHlw
ZXMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUUwMkNCMTIxMjczNTJEMDBDMjdDRDYgLyogbWVk
aWFuX3Nsb3BlX2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMDREMjM0Qjg5
OEQwMDI4QTYxNSAvKiBtZW1vcnlfc3RyZWFtLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xNzg4OSw5
ICsxNzg3Myw5IEBACiAJCQkJNDEzMUMwNDUyMzRCODk4RDAwMjhBNjE1IC8qIG1lc3NhZ2VfaGFu
ZGxlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNzk1M0RCMjE2OTgzOTEwMDI4MjY2QiAvKiBt
ZXRyaWNzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2NUUxRTQzQjhCNTAwNjIxRTkyIC8q
IG1pbl9tYXhfb3BlcmF0aW9ucy5jIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5NUIyNDJBNzFG
NTAwN0ZEQzQxIC8qIG1pbl92aWRlb19iaXRyYXRlX2V4cGVyaW1lbnQuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTc5NTNFNjIxNjk4M0NBMDAyODI2NkIgLyogbW9kdWxlX2NvbW1vbl90eXBlcy5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzg3MjM0Qjk1N0QwMDI4QTYxNSAvKiBtb3Zpbmdf
YXZlcmFnZS5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOTFFMjQyQTcwNEUwMDdGREM0MSAv
KiBydHBfZGVzY3JpcHRvcl9hdXRoZW50aWNhdGlvbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
RkNCQjE1MjFCMUY3QUEwMEE1REYyNyAvKiBtb3ZpbmdfYXZlcmFnZS5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDRDI4NjEwMUU2QTY0QzkwMDk0RkRDOCAvKiBtb3ZpbmdfbWF4LmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNERDhDOEUxRTQzQzY2MDAwNjIxRTkyIC8qIG1vdmluZ19tb21lbnRzLmNj
IGluIFNvdXJjZXMgKi8sCkBAIC0xNzkwMCwyNSArMTc4ODQsMjcgQEAKIAkJCQk1Q0REODk1MzFF
NDNCRjNBMDA2MjFFOTIgLyogbmFjay5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4M0VBMUU0
MzlBNkYwMDYyMUU5MiAvKiBuYWNrX21vZHVsZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
QTMyMUU0M0JGQjMwMDYyMUU5MiAvKiBuYWNrX3RyYWNrZXIuY2MgaW4gU291cmNlcyAqLywKLQkJ
CQk0MTg5M0ExRjI0MkE3NUMxMDA3RkRDNDEgLyogZGVmYXVsdF9pY2VfdHJhbnNwb3J0X2ZhY3Rv
cnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNCNDIxNjk4MjQyMDAyODI2NkIgLyogbmFs
dV9yZXdyaXRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMDNDMjM0Qjg5OEQwMDI4QTYx
NSAvKiBuYXRfc2VydmVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTM5ODgyNDJBNzI1MTAw
N0ZEQzQxIC8qIHByaW9yX3NpZ25hbF9tb2RlbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFD
MDU0MjM0Qjg5OEQwMDI4QTYxNSAvKiBuYXRfc29ja2V0X2ZhY3RvcnkuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzA4OTIzNEI4OThEMDAyOEE2MTUgLyogbmF0X3R5cGVzLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNERDhCRDExRTQzQzJCNTAwNjIxRTkyIC8qIG5lYXJlc3RfbmVpZ2hib3Iu
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMDU2MjM0Qjg5OEQwMDI4QTYxNSAvKiBuZXRfaGVs
cGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwNkYyMzRCODk4RDAwMjhBNjE1IC8qIG5l
dF9oZWxwZXJzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTNBM0EyNDJBNzY3ODAwN0ZEQzQx
IC8qIG5ldGVxLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBMzYxRTQzQkZCMzAwNjIxRTky
IC8qIG5ldGVxX2ltcGwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEFBNTFFNDNDMDBGMDA2
MjFFOTIgLyogbmV0ZXFfcmVwbGFjZW1lbnRfaW5wdXQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0
MTMxQzAzRTIzNEI4OThEMDAyOEE2MTUgLyogbmV0d29yay5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxMzFDMDI4MjM0Qjg5OEQwMDI4QTYxNSAvKiBuZXR3b3JrX21vbml0b3IuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MUUwMkNDRDIxMjczNUI3MDBDMjdDRDYgLyogbmV0d29ya190eXBlcy5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxODkzOTg5MjQyQTcyNTIwMDdGREM0MSAvKiBub2lzZV9lc3Rp
bWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTZEM0JFNzIxMjczMUMyMDA3NzVGMDkgLyog
bm9pc2VfbGV2ZWxfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2RDNCRTgyMTI3
MzFDMjAwNzc1RjA5IC8qIG5vaXNlX3NwZWN0cnVtX2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxODkzOTkxMjQyQTcyNTIwMDdGREM0MSAvKiBub2lzZV9zdXBwcmVzc29yLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBM0QxRTQzQkZCMzAwNjIxRTkyIC8qIG5vcm1hbC5jYyBp
biBTb3VyY2VzICovLAogCQkJCTQxMzFDMjQwMjM0QjhCQjIwMDI4QTYxNSAvKiBub3JtYWxpemVf
c2ltdWxjYXN0X3NpemVfZXhwZXJpbWVudC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NkE3
MUU0M0I5OTQwMDYyMUU5MiAvKiBub3JtYWxpemVkX2NvdmFyaWFuY2VfZXN0aW1hdG9yLmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5OEMyNDJBNzI1MjAwN0ZEQzQxIC8qIG5zX2ZmdC5jYyBp
biBTb3VyY2VzICovLAogCQkJCTQxNDRCM0YwMjE2OUM2M0YwMDQzNjNBQyAvKiBOU1N0cmluZytT
dGRTdHJpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MUY0MTFBRDFFRjhEOTFGMDAzNDNDMjYg
LyogbnVsbF9hZWNfZHVtcF9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5QzgzQjMx
RkUyNDcyRTAwNDBDMzBGIC8qIG51bGxfYXVkaW9fcG9sbGVyLmNjIGluIFNvdXJjZXMgKi8sCkBA
IC0xNzkzMSwxNyArMTc5MTcsMTggQEAKIAkJCQk1Q0REODY5MTFFNDNCOTM5MDA2MjFFOTIgLyog
b291cmFfZmZ0X3NzZTIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzE0QjIzNEI4OUUyMDAy
OEE2MTUgLyogb3BlbnNzbF9hZGFwdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxMUMy
MzRCODlFMjAwMjhBNjE1IC8qIG9wZW5zc2xfY2VydGlmaWNhdGUuY2MgaW4gU291cmNlcyAqLywK
LQkJCQk0MTg5Mzk5ODI0MkE3MjUyMDA3RkRDNDEgLyogZmFzdF9tYXRoLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDEzMUMxM0QyMzRCODlFMjAwMjhBNjE1IC8qIG9wZW5zc2xfZGlnZXN0LmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxMjMyMzRCODlFMjAwMjhBNjE1IC8qIG9wZW5zc2xfaWRl
bnRpdHkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzE1RDIzNEI4OUUyMDAyOEE2MTUgLyog
b3BlbnNzbF9zZXNzaW9uX2NhY2hlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMwRkEyMzRC
ODlFMjAwMjhBNjE1IC8qIG9wZW5zc2xfc3RyZWFtX2FkYXB0ZXIuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MTMxQzEwMDIzNEI4OUUyMDAyOEE2MTUgLyogb3BlbnNzbF91dGlsaXR5LmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDE4OTNBNDIyNDJBNzZGMjAwN0ZEQzQxIC8qIG9wZXJhdGlvbnNfY2hh
aW4uY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzhGODI0MkE2RjlCMDA3RkRDNDEgLyogb3B1
c19pbnRlcmZhY2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEZENzFFNDNDRDY2MDA2MjFF
OTIgLyogb3ZlcnVzZV9kZXRlY3Rvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4RkQ5MUU0
M0NENjYwMDYyMUU5MiAvKiBvdmVydXNlX2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAorCQkJ
CTQxODkzOEUwMjQyQTY5Q0MwMDdGREM0MSAvKiBvdmVydXNlX2ZyYW1lX2RldGVjdG9yLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxQjUyMzRCOEE0QTAwMjhBNjE1IC8qIHAycF9jb25zdGFu
dHMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzFENDIzNEI4QTRCMDAyOEE2MTUgLyogcDJw
X3RyYW5zcG9ydF9jaGFubmVsLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTM5MzgyNDJBNzBB
RTAwN0ZEQzQxIC8qIHJlc291cmNlX2NvbnN1bWVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFG
MjYzOUEyMTI2N0Y1RTAwMjc0RjU5IC8qIHBhX3JpbmdidWZmZXIuYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4RkEyMUU0M0NDQkUwMDYyMUU5MiAvKiBwYWNlZF9zZW5kZXIuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzRDMTIzNEM4NDI0MDAyOEE2MTUgLyogcGFjaW5nX2NvbnRyb2xsZXIu
Y2MgaW4gU291cmNlcyAqLywKQEAgLTE3OTUyLDcgKzE3OTM5LDYgQEAKIAkJCQk1Q0REOEE0MDFF
NDNCRkIzMDA2MjFFOTIgLyogcGFja2V0X2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
REQ4M0VDMUU0MzlBNkYwMDYyMUU5MiAvKiBwYWNrZXRfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDg4OEMxRTQzQkUzQzAwNjIxRTkyIC8qIHBhY2tldF9sb3NzX3N0YXRzLmNjIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDE4OTM5RDkyNDJBNzMzNzAwN0ZEQzQxIC8qIHJ0cF90cmFuc3Bv
cnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEZBNDFFNDNDQ0JFMDA2MjFFOTIgLyogcGFj
a2V0X3JvdXRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QUFDMUU0M0MwMEYwMDYyMUU5
MiAvKiBwYWNrZXRfc291cmNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxRUEyMzRCOEE0
QjAwMjhBNjE1IC8qIHBhY2tldF90cmFuc3BvcnRfaW50ZXJuYWwuY2MgaW4gU291cmNlcyAqLywK
QEAgLTE3OTYzLDcgKzE3OTQ5LDYgQEAKIAkJCQk0MTMxQzMyNDIzNEI4REMyMDAyOEE2MTUgLyog
cGVlcl9jb25uZWN0aW9uX2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNDNC
MjM0QzgwMDcwMDI4QTYxNSAvKiBwZmZmdC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM0MUUy
MzRDN0NBRDAwMjhBNjE1IC8qIHBmZmZ0X3dyYXBwZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0
MTg5MzlEQzI0MkE3MzM3MDA3RkRDNDEgLyogc3J0cF90cmFuc3BvcnQuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzEzRjIzNEI4OUUyMDAyOEE2MTUgLyogcGh5c2ljYWxfc29ja2V0X3NlcnZl
ci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NzJEMUU0M0JBQkUwMDYyMUU5MiAvKiBwaXRj
aF9iYXNlZF92YWQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0QyNjFGNzlCMzM0MDAzODdC
NEQgLyogcGl0Y2hfZXN0aW1hdG9yLmMgaW4gU291cmNlcyAqLywKQEAgLTE3OTczLDcgKzE3OTU4
LDYgQEAKIAkJCQk0MTQzM0QxMTFGNzlCMzM0MDAzODdCNEQgLyogcGl0Y2hfZmlsdGVyLmMgaW4g
U291cmNlcyAqLywKIAkJCQk0MTQzM0NGNDFGNzlCMzM0MDAzODdCNEQgLyogcGl0Y2hfZmlsdGVy
X2MuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDMzRDEwMUY3OUIzMzQwMDM4N0I0RCAvKiBwaXRj
aF9nYWluX3RhYmxlcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTM5ODkyNDJBNzI1MjAwN0ZE
QzQxIC8qIG5vaXNlX2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4N0QzMUU0
M0JDMDUwMDYyMUU5MiAvKiBwaXRjaF9nYWluX3RhYmxlcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNERDg3MzAxRTQzQkFCRTAwNjIxRTkyIC8qIHBpdGNoX2ludGVybmFsLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDg3RDUxRTQzQkMwNjAwNjIxRTkyIC8qIHBpdGNoX2xhZ190YWJsZXMuYyBp
biBTb3VyY2VzICovLApAQCAtMTc5OTIsMTAgKzE3OTc2LDExIEBACiAJCQkJNUNERDhBNDUxRTQz
QkZCMzAwNjIxRTkyIC8qIHBvc3RfZGVjb2RlX3ZhZC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
REQ4MzU5MUU0MzI1NzIwMDYyMUU5MiAvKiBwcHNfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDhBNDcxRTQzQkZCMzAwNjIxRTkyIC8qIHByZWVtcHRpdmVfZXhwYW5kLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDE4OTM5ODgyNDJBNzI1MTAwN0ZEQzQxIC8qIHByaW9yX3NpZ25hbF9t
b2RlbC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOTk3MjQyQTcyNTIwMDdGREM0MSAvKiBw
cmlvcl9zaWduYWxfbW9kZWxfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMDJD
QjIyMTI3MzUyRDAwQzI3Q0Q2IC8qIHByb2JlX2JpdHJhdGVfZXN0aW1hdG9yLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDFFMDJDQjQyMTI3MzUyRDAwQzI3Q0Q2IC8qIHByb2JlX2NvbnRyb2xsZXIu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODRFNTFFNDNCMDREMDA2MjFFOTIgLyogcHJvY2Vz
c190aHJlYWRfaW1wbC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOEYyMjQyQTZCMTcwMDdG
REM0MSAvKiBhY2tub3dsZWRnZWRfYml0cmF0ZV9lc3RpbWF0b3JfaW50ZXJmYWNlLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEzMUMzMDcyMzRCOERDMjAwMjhBNjE1IC8qIHByb3h5LmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEzMUMxNUUyMzRCODlFMjAwMjhBNjE1IC8qIHByb3h5X2luZm8uY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzEwNjIzNEI4OUUyMDAyOEE2MTUgLyogcHJveHlfc2Vy
dmVyLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xODAwNCwxNSArMTc5ODksMTcgQEAKIAkJCQk1Q0RE
ODc1MzFFNDNCQUY1MDA2MjFFOTIgLyogcHVzaF9yZXNhbXBsZXIuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0REODc1NTFFNDNCQUY1MDA2MjFFOTIgLyogcHVzaF9zaW5jX3Jlc2FtcGxlci5jYyBp
biBTb3VyY2VzICovLAogCQkJCTQxMzFDNDlGMjM0QzgzNEUwMDI4QTYxNSAvKiBxdWFsaXR5X2xp
bWl0YXRpb25fcmVhc29uX3RyYWNrZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5Mzk1ODI0
MkE3MUY1MDA3RkRDNDEgLyogcXVhbGl0eV9yYW1wdXBfZXhwZXJpbWVudC5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4MzgxMUU0MzlBMzUwMDYyMUU5MiAvKiBxdWFsaXR5X3NjYWxlci5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxODkzOEQ5MjQyQTY5Q0MwMDdGREM0MSAvKiBxdWFsaXR5X3Nj
YWxlcl9yZXNvdXJjZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMjQzMjM0QjhCQjIwMDI4
QTYxNSAvKiBxdWFsaXR5X3NjYWxlcl9zZXR0aW5ncy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
MzFDMjM5MjM0QjhCQjIwMDI4QTYxNSAvKiBxdWFsaXR5X3NjYWxpbmdfZXhwZXJpbWVudC5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDRDI4NjJBMUU2QTY2QzgwMDk0RkRDOCAvKiBxdWFsaXR5X3Ro
cmVzaG9sZC5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOTgxMjQyQTcyNTEwMDdGREM0MSAv
KiBxdWFudGlsZV9ub2lzZV9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzEy
RTIzNEI4OUUyMDAyOEE2MTUgLyogcmFjZV9jaGVja2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDEzMUMxNUYyMzRCODlFMjAwMjhBNjE1IC8qIHJhbmRvbS5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4QTRBMUU0M0JGQjMwMDYyMUU5MiAvKiByYW5kb21fdmVjdG9yLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDg2NUYxRTQzQjhCNTAwNjIxRTkyIC8qIHJhbmRvbWl6YXRpb25fZnVuY3Rp
b25zLmMgaW4gU291cmNlcyAqLywKLQkJCQk0MURCMUE5NDI0MzIxNjE0MDA1QUI4RUEgLyogcnRj
c3RhdHNfb2JqZWN0cy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OTVCMUU0M0JGM0EwMDYy
MUU5MiAvKiByYXBpZF9yZXN5bmNfcmVxdWVzdC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFD
MjM0MjM0QjhCQjIwMDI4QTYxNSAvKiByYXRlX2NvbnRyb2xfc2V0dGluZ3MuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzE1ODIzNEI4OUUyMDAyOEE2MTUgLyogcmF0ZV9saW1pdGVyLmNjIGlu
IFNvdXJjZXMgKi8sCkBAIC0xODA0MCw3ICsxODAyNyw2IEBACiAJCQkJNDEzMUM0QjgyMzRDODNE
RDAwMjhBNjE1IC8qIHJlbW90ZV9lc3RpbWF0ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
RkUxMUU0M0NENjYwMDYyMUU5MiAvKiByZW1vdGVfZXN0aW1hdG9yX3Byb3h5LmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNERDg4OTUxRTQzQkUzQzAwNjIxRTkyIC8qIHJlbW90ZV9udHBfdGltZV9l
c3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5M0E2NTI0MkE3N0ZFMDA3RkRDNDEg
Lyogdm9pY2VfZGV0ZWN0aW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NUU0RDkxRUY4Q0M5
QjAwRkNGNkU2IC8qIHJlbmRlcl9idWZmZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVE
NTFFNkE2MzQzMDA5NEZEQzggLyogcmVuZGVyX2RlbGF5X2J1ZmZlci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDRDI4NUQ5MUU2QTYzNDMwMDk0RkRDOCAvKiByZW5kZXJfZGVsYXlfY29udHJvbGxl
ci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgwNTksNiArMTgwNDUsMTEgQEAKIAkJCQk1Q0REODc1
ODFFNDNCQUY1MDA2MjFFOTIgLyogcmVzYW1wbGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDg0QkQxRTQzQUYxMzAwNjIxRTkyIC8qIHJlc2lkdWFsX2VjaG9fZGV0ZWN0b3IuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0QyODVERDFFNkE2MzQzMDA5NEZEQzggLyogcmVzaWR1YWxfZWNob19l
c3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzkzQzI0MkE3MEFFMDA3RkRDNDEg
LyogcmVzb3VyY2UuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzhFMTI0MkE2OUNDMDA3RkRD
NDEgLyogcmVzb3VyY2VfYWRhcHRhdGlvbl9wcm9jZXNzb3IuY2MgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTg5MzkzNzI0MkE3MEFFMDA3RkRDNDEgLyogcmVzb3VyY2VfYWRhcHRhdGlvbl9wcm9jZXNz
b3JfaW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5MzgyNDJBNzBBRTAwN0ZE
QzQxIC8qIHJlc291cmNlX2NvbnN1bWVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5NDAy
NDJBNzBBRTAwN0ZEQzQxIC8qIHJlc291cmNlX2NvbnN1bWVyX2NvbmZpZ3VyYXRpb24uY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTMxQzM5NTIzNEI5NTdEMDAyOEE2MTUgLyogcmV2ZXJiX2RlY2F5
X2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzdFMjM0Qjk1N0QwMDI4QTYx
NSAvKiByZXZlcmJfZnJlcXVlbmN5X3Jlc3BvbnNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEz
MUMzOTAyMzRCOTU3RDAwMjhBNjE1IC8qIHJldmVyYl9tb2RlbC5jYyBpbiBTb3VyY2VzICovLApA
QCAtMTgwNjgsMTEgKzE4MDU5LDExIEBACiAJCQkJNUNERDg0QkYxRTQzQUYxMzAwNjIxRTkyIC8q
IHJtc19sZXZlbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOTI0MTQ2MjEyNzM3MjgwMDYzNEZD
RiAvKiBybm4uY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDE5OTIxMjc1ODY1MDA2MzRGQ0Yg
Lyogcm5uX3ZhZF93ZWlnaHRzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM4RjUyNDJBNkIx
NzAwN0ZEQzQxIC8qIHJvYnVzdF90aHJvdWdocHV0X2VzdGltYXRvci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDRkQ1MzhGMUU0QkQzQTMwMDQ4MjkwOCAvKiByb3RhdGVfbmVvbi5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDRkQ1MzkwMUU0QkQzQTMwMDQ4MjkwOCAvKiByb3RhdGVfbmVvbjY0LmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDFBMDhCRDQyMTI3MkVGQTAwMUQ1RDdCIC8qIHJvdW5kX3Jv
YmluX3BhY2tldF9xdWV1ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRkQ1MzkxMUU0QkQzQTMw
MDQ4MjkwOCAvKiByb3dfbmVvbi5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOUU1MjQyQTcz
MzcwMDdGREM0MSAvKiBzY3RwX2RhdGFfY2hhbm5lbF90cmFuc3BvcnQuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0ZENTM5MjFFNEJEM0EzMDA0ODI5MDggLyogcm93X25lb242NC5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4OTZBMUU0M0JGM0EwMDYyMUU5MiAvKiBycnRyLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDEzMUMxMzgyMzRCODlFMjAwMjhBNjE1IC8qIHJ0Y19jZXJ0aWZpY2F0ZS5j
YyBpbiBTb3VyY2VzICovLApAQCAtMTgwODAsOCArMTgwNzEsNiBAQAogCQkJCTQxMzFDMkVGMjM0
QjhEQzIwMDI4QTYxNSAvKiBydGNfZXJyb3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzQ3
MDIzNEM4MUI2MDAyOEE2MTUgLyogcnRjX2V2ZW50LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEz
MUM1NUIyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9hbHJfc3RhdGUuY2MgaW4gU291cmNl
cyAqLywKLQkJCQk0MTg5Mzk0QTI0MkE3MEQ3MDA3RkRDNDEgLyogc3R1bi5jYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxODkzOTIwMjQyQTcwNEUwMDdGREM0MSAvKiBydHBfZGVwZW5kZW5jeV9kZXNj
cmlwdG9yX3dyaXRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNTQ3MjM0QzhCMTkwMDI4
QTYxNSAvKiBydGNfZXZlbnRfYXVkaW9fbmV0d29ya19hZGFwdGF0aW9uLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDEzMUM1NEEyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9hdWRpb19wbGF5
b3V0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM1NTgyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0
Y19ldmVudF9hdWRpb19yZWNlaXZlX3N0cmVhbV9jb25maWcuY2MgaW4gU291cmNlcyAqLywKQEAg
LTE4MDk1LDcgKzE4MDg0LDYgQEAKIAkJCQk0MTMxQzU1RDIzNEM4QjE5MDAyOEE2MTUgLyogcnRj
X2V2ZW50X2dlbmVyaWNfcGFja2V0X3NlbnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUEwOEJD
MDIxMjY5NTUzMDAxRDVEN0IgLyogcnRjX2V2ZW50X2ljZV9jYW5kaWRhdGVfcGFpci5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxQTA4QkJEMjEyNjk1NTMwMDFENUQ3QiAvKiBydGNfZXZlbnRfaWNl
X2NhbmRpZGF0ZV9wYWlyX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOTI4MjQy
QTcwNEUwMDdGREM0MSAvKiB2aWRlb19ydHBfZGVwYWNrZXRpemVyX2gyNjQuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzQ3NTIzNEM4MUI2MDAyOEE2MTUgLyogcnRjX2V2ZW50X2xvZy5jYyBp
biBTb3VyY2VzICovLAogCQkJCTQxMzFDNDc0MjM0QzgxQjYwMDI4QTYxNSAvKiBydGNfZXZlbnRf
bG9nX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDE3OTIxMjczOEZCMDA2MzRG
Q0YgLyogcnRjX2V2ZW50X2xvZ19pbXBsLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xODEwOCw3ICsx
ODA5Niw2IEBACiAJCQkJNDEzMUM1NTcyMzRDOEIxOTAwMjhBNjE1IC8qIHJ0Y19ldmVudF9ydGNw
X3BhY2tldF9pbmNvbWluZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNTRDMjM0QzhCMTkw
MDI4QTYxNSAvKiBydGNfZXZlbnRfcnRjcF9wYWNrZXRfb3V0Z29pbmcuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzU1OTIzNEM4QjE5MDAyOEE2MTUgLyogcnRjX2V2ZW50X3J0cF9wYWNrZXRf
aW5jb21pbmcuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5M0E0MjI0MkE3NkYyMDA3RkRDNDEg
Lyogb3BlcmF0aW9uc19jaGFpbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNTNCMjM0QzhC
MTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfcnRwX3BhY2tldF9vdXRnb2luZy5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxMzFDNTUyMjM0QzhCMTkwMDI4QTYxNSAvKiBydGNfZXZlbnRfdmlkZW9fcmVj
ZWl2ZV9zdHJlYW1fY29uZmlnLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM1NTQyMzRDOEIx
OTAwMjhBNjE1IC8qIHJ0Y19ldmVudF92aWRlb19zZW5kX3N0cmVhbV9jb25maWcuY2MgaW4gU291
cmNlcyAqLywKQEAgLTE4MTE4LDE3ICsxODEwNSwxNiBAQAogCQkJCTQxMzFCRjMzMjM0Qjg4MjAw
MDI4QTYxNSAvKiBydGNfc3RhdHNfdHJhdmVyc2FsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5
Qzg0MUQxRkUyNEFFRjAwNDBDMzBGIC8qIHJ0Y19zdHJlYW1fY29uZmlnLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDE3OTUzQ0MyMTY5ODJEQjAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MjExMjQyRTNBNDYwMEM1RURBMiAvKiBS
VENDb2RlY1NwZWNpZmljSW5mb0gyNjUubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTNFNjc4QjIx
Njk4N0I5MDBFRjM3RUQgLyogUlRDQ1ZQaXhlbEJ1ZmZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTQxNzk1M0I1MjE2OTgyNDIwMDI4MjY2QiAvKiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9y
eS5tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3OTUzQjcyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0Rl
ZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0gaW4gU291cmNlcyAqLywKIAkJCQk0MTQ0QjNGNTIx
NkIwODFCMDA0MzYzQUMgLyogUlRDRW5jb2RlZEltYWdlK1ByaXZhdGUubW0gaW4gU291cmNlcyAq
LywKIAkJCQk0MTc5NTNGQTIxNjk4NEJFMDAyODI2NkIgLyogUlRDRW5jb2RlZEltYWdlLm0gaW4g
U291cmNlcyAqLywKLQkJCQk0MTAwOTFGQjI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFy
c2VyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTM5MTUyNDJBNzA0RTAwN0ZEQzQxIC8qIHRy
YW5zZm9ybWFibGVfZW5jb2RlZF9mcmFtZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDRCM0Q2
MjE2OThBMUEwMDQzNjNBQyAvKiBSVENIMjY0UHJvZmlsZUxldmVsSWQubW0gaW4gU291cmNlcyAq
LywKKwkJCQk0MTAwOTIwQTI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElk
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRDMyMTY5ODk2RDAwNDM2M0FDIC8qIFJUQ05h
dGl2ZUk0MjBCdWZmZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTQ0QjNEMTIxNjk4OTY3MDA0
MzYzQUMgLyogUlRDTmF0aXZlTXV0YWJsZUk0MjBCdWZmZXIubW0gaW4gU291cmNlcyAqLywKLQkJ
CQk0MTAwOTIwRjI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTQxOUM4MkI5MUZFMjBEQ0QwMDQwQzMwRiAvKiBydGNwX2RlbXV4ZXIu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkYxQTIzNEI4ODIwMDAyOEE2MTUgLyogcnRjcF9t
dXhfZmlsdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1RkExRTZBNjQ1MjAwOTRGREM4
IC8qIHJ0Y3BfbmFja19zdGF0cy5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgxNDEsMzEgKzE4MTI3
LDM1IEBACiAJCQkJNDE4ODlENzcyMTZCQzRFQzAwNDYxNEREIC8qIFJUQ1J0cEVuY29kaW5nUGFy
YW1ldGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxODg5RDc5MjE2QkM0RUMwMDQ2MTRERCAv
KiBSVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyK1ByaXZhdGUubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk0MUZDQkI4OTIxQjIwMEZEMDBBNURGMjcgLyogUlRDUnRwRnJhZ21lbnRhdGlvbkhlYWRlci5t
IGluIFNvdXJjZXMgKi8sCisJCQkJNDFEQjFBOTQyNDMyMTYxNDAwNUFCOEVBIC8qIHJ0Y3N0YXRz
X29iamVjdHMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTNFNjc3NjIxNjk4NjYxMDBFRjM3RUQg
LyogUlRDVmlkZW9Db2RlY0NvbnN0YW50cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxNDRCM0U4
MjE2OUM1RTMwMDQzNjNBQyAvKiBSVENWaWRlb0NvZGVjSW5mbytQcml2YXRlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDEzRTY3OTgyMTY5ODgzOTAwRUYzN0VEIC8qIFJUQ1ZpZGVvQ29kZWNJbmZv
Lm0gaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNCODIxNjk4MjQyMDAyODI2NkIgLyogUlRDVmlk
ZW9EZWNvZGVyRmFjdG9yeUgyNjQubSBpbiBTb3VyY2VzICovLAogCQkJCTQxNzk1M0M3MjE2OTgy
NEIwMDI4MjY2QiAvKiBSVENWaWRlb0RlY29kZXJIMjY0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDEwMDkyMTAyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gaW4gU291
cmNlcyAqLywKIAkJCQk0MTNFNjc2ODIxNjk4NTRCMDBFRjM3RUQgLyogUlRDVmlkZW9EZWNvZGVy
VlA4Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3OTUzQjkyMTY5ODI0MjAwMjgyNjZCIC8qIFJU
Q1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291cmNlcyAqLywKIAkJCQk0MTc5NTNDQTIx
Njk4MjRCMDAyODI2NkIgLyogUlRDVmlkZW9FbmNvZGVySDI2NC5tbSBpbiBTb3VyY2VzICovLAor
CQkJCTQxMDA5MjBGMjQyRTNBNDYwMEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDEzRTY3QTMyMTY5ODg5NTAwRUYzN0VEIC8qIFJUQ1ZpZGVvRW5j
b2RlclFwVGhyZXNob2xkcy5tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRjcyMTZCMDlDQjAw
NDM2M0FDIC8qIFJUQ1ZpZGVvRW5jb2RlclNldHRpbmdzK1ByaXZhdGUubW0gaW4gU291cmNlcyAq
LywKLQkJCQk0MTg5M0EzNDI0MkE3Njc4MDA3RkRDNDEgLyogY3VzdG9tX25ldGVxX2ZhY3Rvcnku
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzU2NTIzNEM5NTYxMDAyOEE2MTUgLyogUlRDVmlk
ZW9FbmNvZGVyU2V0dGluZ3MubSBpbiBTb3VyY2VzICovLAogCQkJCTQxM0U2NzY1MjE2OTg1NDYw
MEVGMzdFRCAvKiBSVENWaWRlb0VuY29kZXJWUDgubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTNF
Njc5MDIxNjk4N0RCMDBFRjM3RUQgLyogUlRDVmlkZW9GcmFtZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTQxNkI0NDBFMjM1REMyM0MwMDQwRTI1NSAvKiBSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNv
ZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzRTY3NkQyMTY5ODU0QjAwRUYzN0VEIC8qIFJU
Q1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIubW0gaW4gU291cmNlcyAqLywKLQkJCQk0MTg5MzlB
MzI0MkE3MkU0MDA3RkRDNDEgLyogcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlcl9mcmFtZV90cmFu
c2Zvcm1lcl9kZWxlZ2F0ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRDZCNDU5MjEyNzMxNTkw
MDhGOTM1MyAvKiBydHBfYml0cmF0ZV9jb25maWd1cmF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTlDODJCNDFGRTIwRENEMDA0MEMzMEYgLyogcnRwX2NvbmZpZy5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFCRjlDMjM0Qjg4QTYwMDI4QTYxNSAvKiBydHBfZGF0YV9lbmdpbmUuY2MgaW4g
U291cmNlcyAqLywKLQkJCQk0MTg5MzhERjI0MkE2OUNDMDA3RkRDNDEgLyogZW5jb2RlX3VzYWdl
X3Jlc291cmNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMDkyMDIxRUY4RDBBNjAwNzU3QzU1
IC8qIHJ0cF9kZW11eGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM0RDUyMzRDODRBMzAw
MjhBNjE1IC8qIHJ0cF9kZXBlbmRlbmN5X2Rlc2NyaXB0b3JfZXh0ZW5zaW9uLmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDE4OTM5MjkyNDJBNzA0RTAwN0ZEQzQxIC8qIHJ0cF9kZXBlbmRlbmN5X2Rl
c2NyaXB0b3JfcmVhZGVyLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5MjAyNDJBNzA0RTAw
N0ZEQzQxIC8qIHJ0cF9kZXBlbmRlbmN5X2Rlc2NyaXB0b3Jfd3JpdGVyLmNjIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDE4OTM5MUUyNDJBNzA0RTAwN0ZEQzQxIC8qIHJ0cF9kZXNjcmlwdG9yX2F1dGhl
bnRpY2F0aW9uLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4QjAxRTQzQkUzQzAwNjIxRTky
IC8qIHJ0cF9mb3JtYXQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhBNDFFNDNCRTNDMDA2
MjFFOTIgLyogcnRwX2Zvcm1hdF9oMjY0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkxRTYy
NDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4OEE2MUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0X3ZpZGVvX2dlbmVyaWMuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhBQjFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1h
dF92cDguY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhBRTFFNDNCRTNDMDA2MjFFOTIgLyog
cnRwX2Zvcm1hdF92cDkuY2MgaW4gU291cmNlcyAqLywKQEAgLTE4MTg2LDYgKzE4MTc2LDcgQEAK
IAkJCQk0MTMxQzMzQzIzNEI4RERGMDAyOEE2MTUgLyogcnRwX3BhcmFtZXRlcnMuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTMxQkYxMDIzNEI4ODIwMDAyOEE2MTUgLyogcnRwX3BhcmFtZXRlcnNf
Y29udmVyc2lvbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMDJGNkFCMjEyNzMyQjEwMDZBRThE
NyAvKiBydHBfcGF5bG9hZF9wYXJhbXMuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzlFMDI0
MkE3MzM3MDA3RkRDNDEgLyogcnRwX3JlY2VpdmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEz
MUMzNDcyMzRCOERERjAwMjhBNjE1IC8qIHJ0cF9yZWNlaXZlcl9pbnRlcmZhY2UuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTlDODNDRDFGRTI0N0I0MDA0MEMzMEYgLyogcnRwX3J0Y3BfZGVmaW5l
cy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4MkJGMUZFMjBEQ0QwMDQwQzMwRiAvKiBydHBf
cnRjcF9kZW11eGVyX2hlbHBlci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgxOTMsMjIgKzE4MTg0
LDI0IEBACiAJCQkJNDEzMUJFRjcyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF9zZW5kZXIuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0REODhEMzFFNDNCRTNEMDA2MjFFOTIgLyogcnRwX3NlbmRlci5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OENFMUU0M0JFM0QwMDYyMUU5MiAvKiBydHBfc2Vu
ZGVyX2F1ZGlvLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5MTMyNDJBNzA0RTAwN0ZEQzQx
IC8qIHJ0cF9zZW5kZXJfZWdyZXNzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMzNDQyMzRC
OERERjAwMjhBNjE1IC8qIHJ0cF9zZW5kZXJfaW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDg4RDExRTQzQkUzRDAwNjIxRTkyIC8qIHJ0cF9zZW5kZXJfdmlkZW8uY2MgaW4gU291
cmNlcyAqLywKKwkJCQk0MTg5MzkxNzI0MkE3MDRFMDA3RkRDNDEgLyogcnRwX3NlbmRlcl92aWRl
b19mcmFtZV90cmFuc2Zvcm1lcl9kZWxlZ2F0ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFD
NEREMjM0Qzg0QTMwMDI4QTYxNSAvKiBydHBfc2VxdWVuY2VfbnVtYmVyX21hcC5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxOUM4MkJDMUZFMjBEQ0QwMDQwQzMwRiAvKiBydHBfc3RyZWFtX3JlY2Vp
dmVyX2NvbnRyb2xsZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODVCMjFFNDNCNUMwMDA2
MjFFOTIgLyogcnRwX3N0cmVhbXNfc3luY2hyb25pemVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNEMjg2MjcxRTZBNjY5RDAwOTRGREM4IC8qIHJ0cF90b19udHBfZXN0aW1hdG9yLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEzMUJGMUUyMzRCODgyMDAwMjhBNjE1IC8qIHJ0cF90cmFuc2NlaXZl
ci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzNEMjM0QjhEREYwMDI4QTYxNSAvKiBydHBf
dHJhbnNjZWl2ZXJfaW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTNBNkIyNDJB
NzgyNjAwN0ZEQzQxIC8qIHRhc2tfcXVldWVfcGFjZWRfc2VuZGVyLmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDE4OTM5RDkyNDJBNzMzNzAwN0ZEQzQxIC8qIHJ0cF90cmFuc3BvcnQuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTMwOTIxQjFFRjhENjNGMDA3NTdDNTUgLyogcnRwX3RyYW5zcG9ydF9j
b250cm9sbGVyX3NlbmQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhENTFFNDNCRTNEMDA2
MjFFOTIgLyogcnRwX3V0aWxpdHkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkY5MDIzNEI4
OEE2MDAyOEE2MTUgLyogcnRwX3V0aWxzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMDJDN0Qy
MTI3MzQ3NDAwQzI3Q0Q2IC8qIHJ0cF92aWRlb19oZWFkZXIuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MUQ2QjQ1QzIxMjczMTU5MDA4RjkzNTMgLyogcnRwX3ZpZGVvX3NlbmRlci5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxMzA5MUY0MUVGOENGOTIwMDc1N0M1NSAvKiBydHBfdmlkZW9fc3RyZWFt
X3JlY2VpdmVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTM5N0YyNDJBNzI1MTAwN0ZEQzQx
IC8qIGhpc3RvZ3JhbXMuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzlBMzI0MkE3MkU0MDA3
RkRDNDEgLyogcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlcl9mcmFtZV90cmFuc2Zvcm1lcl9kZWxl
Z2F0ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OTZDMUU0M0JGM0EwMDYyMUU5MiAvKiBy
dHBmYi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4M0Y4MUU0MzlBNkYwMDYyMUU5MiAvKiBy
dHRfZmlsdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMyNDIyMzRCOEJCMjAwMjhBNjE1
IC8qIHJ0dF9tdWx0X2V4cGVyaW1lbnQuY2MgaW4gU291cmNlcyAqLywKQEAgLTE4MjE3LDIwICsx
ODIxMCwyNCBAQAogCQkJCTQxOTI0MTY0MjEyNzM4NUIwMDYzNEZDRiAvKiByd19sb2NrX3Bvc2l4
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxNjEyMTI3Mzg1QjAwNjM0RkNGIC8qIHJ3X2xv
Y2tfd3JhcHBlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRTAyQ0Q0MjEyNzM2MDcwMEMyN0NE
NiAvKiBzYW1wbGVfY291bnRlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzQTYwMjQyQTc3
QjgwMDdGREM0MSAvKiBzYW1wbGVfc3RhdHMuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5M0E1
NjI0MkE3N0I4MDA3RkRDNDEgLyogc2FtcGxlc19zdGF0c19jb3VudGVyLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDE2RDNCRTkyMTI3MzFDMjAwNzc1RjA5IC8qIHNhdHVyYXRpb25fcHJvdGVjdG9y
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNGRDUzOTMxRTRCRDNBMzAwNDgyOTA4IC8qIHNjYWxl
X25lb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0ZENTM5NDFFNEJEM0EzMDA0ODI5MDggLyog
c2NhbGVfbmVvbjY0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyMzlCM0YyMTQ3NkRDNDAwMzk2
RjgxIC8qIHNjcmVlbnNoYXJlX2xheWVycy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOUU1
MjQyQTczMzcwMDdGREM0MSAvKiBzY3RwX2RhdGFfY2hhbm5lbF90cmFuc3BvcnQuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTMxQzNDODIzNEI5N0Y0MDAyOEE2MTUgLyogc2N0cF90cmFuc3BvcnQu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkVGRTIzNEI4ODIwMDAyOEE2MTUgLyogc2N0cF90
cmFuc3BvcnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzMzRjIzNEI4RERGMDAyOEE2MTUg
Lyogc2N0cF90cmFuc3BvcnRfaW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJG
NjEyMzRCODgyMDAwMjhBNjE1IC8qIHNjdHBfdXRpbHMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REODk2RjFFNDNCRjNBMDA2MjFFOTIgLyogc2Rlcy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQx
ODkzOUQxMjQyQTczMzcwMDdGREM0MSAvKiBzZHBfc2VyaWFsaXplci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFCRjBCMjM0Qjg4MjAwMDI4QTYxNSAvKiBzZHBfdXRpbHMuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MUYyNjM2MjIxMjY3QURGMDAyNzRGNTkgLyogc2RwX3ZpZGVvX2Zvcm1hdC5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NUI2MUU0M0I1QzAwMDYyMUU5MiAvKiBzZW5kX2Rl
bGF5X3N0YXRzLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM4RUYyNDJBNkIxNzAwN0ZEQzQx
IC8qIHNlbmRfc2lkZV9iYW5kd2lkdGhfZXN0aW1hdGlvbi5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4NUI5MUU0M0I1QzAwMDYyMUU5MiAvKiBzZW5kX3N0YXRpc3RpY3NfcHJveHkuY2MgaW4g
U291cmNlcyAqLywKLQkJCQk0MTg5M0E2MDI0MkE3N0I4MDA3RkRDNDEgLyogc2FtcGxlX3N0YXRz
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg5NzIxRTQzQkYzQTAwNjIxRTkyIC8qIHNlbmRl
cl9yZXBvcnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MUZDQkIyNzIxQjFGODdFMDBBNURGMjcg
Lyogc2VudF9wYWNrZXQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzRGRTIzNEM4NkNCMDAy
OEE2MTUgLyogc2VxdWVuY2VfY2hlY2tlci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgyNDAsNiAr
MTgyMzcsOCBAQAogCQkJCTVDRDI4NURGMUU2QTYzNDMwMDk0RkRDOCAvKiBzaGFkb3dfZmlsdGVy
X3VwZGF0ZV9nYWluLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2RDNCRUIyMTI3MzFDMjAwNzc1
RjA5IC8qIHNpZ25hbF9jbGFzc2lmaWVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMzN0Ey
MzRCOTU3RDAwMjhBNjE1IC8qIHNpZ25hbF9kZXBlbmRlbnRfZXJsZV9lc3RpbWF0b3IuY2MgaW4g
U291cmNlcyAqLywKKwkJCQk0MTg5Mzk5MjI0MkE3MjUyMDA3RkRDNDEgLyogc2lnbmFsX21vZGVs
LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5OEQyNDJBNzI1MjAwN0ZEQzQxIC8qIHNpZ25h
bF9tb2RlbF9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzE1QzIzNEI4OUUy
MDAyOEE2MTUgLyogc2lnbmFsX3RocmVhZC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRjI2M0JC
MjEyNjgxMTUwMDI3NEY1OSAvKiBzaWdzbG90LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhC
REIxRTQzQzJCNTAwNjIxRTkyIC8qIHNpbXBsZV9pbnRlcnBvbGF0ZV9sc2YuYyBpbiBTb3VyY2Vz
ICovLApAQCAtMTgyNDgsNiArMTgyNDcsNyBAQAogCQkJCTVDREQ4QkUxMUU0M0MyQjUwMDYyMUU5
MiAvKiBzaW1wbGVfbHNmX3F1YW50LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDFEMDIxMjc1
OTdEMDA2MzRGQ0YgLyogc2ltdWxhdGVkX25ldHdvcmsuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0
MTMxQzI5NzIzNEI4Q0M0MDAyOEE2MTUgLyogc2ltdWxjYXN0LmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDE4OTM5Q0MyNDJBNzMzNzAwN0ZEQzQxIC8qIHNpbXVsY2FzdF9kZXNjcmlwdGlvbi5jYyBp
biBTb3VyY2VzICovLAogCQkJCTQxMzFDMjk2MjM0QjhDQzQwMDI4QTYxNSAvKiBzaW11bGNhc3Rf
ZW5jb2Rlcl9hZGFwdGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxRUUyMTI3NUFGQTAw
NjM0RkNGIC8qIHNpbXVsY2FzdF9yYXRlX2FsbG9jYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxOTI0MUVGMjEyNzVBRkEwMDYzNEZDRiAvKiBzaW11bGNhc3RfdXRpbGl0eS5jYyBpbiBTb3Vy
Y2VzICovLApAQCAtMTgyNzAsOSArMTgyNzAsOCBAQAogCQkJCTQxNDMzRDAyMUY3OUIzMzQwMDM4
N0I0RCAvKiBzcGVjdHJ1bV9hcl9tb2RlbF90YWJsZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
REQ4N0Q4MUU0M0JDMDYwMDYyMUU5MiAvKiBzcGVjdHJ1bV9hcl9tb2RlbF90YWJsZXMuYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxMzFDMzk2MjM0Qjk1N0QwMDI4QTYxNSAvKiBzcGVjdHJ1bV9idWZm
ZXIuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5MzkzNzI0MkE3MEFFMDA3RkRDNDEgLyogcmVz
b3VyY2VfYWRhcHRhdGlvbl9wcm9jZXNzb3JfaW50ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDE4OTM5ODQyNDJBNzI1MTAwN0ZEQzQxIC8qIHNwZWVjaF9wcm9iYWJpbGl0eV9lc3RpbWF0
b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODY2QjFFNDNCOEI1MDA2MjFFOTIgLyogc3Bs
X2luaXQuYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzQTZFMjQyQTc4REYwMDdGREM0MSAvKiBj
b21tb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODY2QzFFNDNCOEI1MDA2MjFFOTIgLyog
c3BsX2lubC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2NzAxRTQzQjhCNTAwNjIxRTkyIC8q
IHNwbF9zcXJ0LmMgaW4gU291cmNlcyAqLywKIAkJCQk0MUYyNjM3MzIxMjY3QjRBMDAyNzRGNTkg
Lyogc3BsX3NxcnRfZmxvb3IuYyBpbiBTb3VyY2VzICovLApAQCAtMTgyODIsMTQgKzE4MjgxLDE0
IEBACiAJCQkJNUNERDgzNUYxRTQzMjU3MjAwNjIxRTkyIC8qIHNwc19wYXJzZXIuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REODM2MjFFNDMyNTcyMDA2MjFFOTIgLyogc3BzX3Z1aV9yZXdyaXRl
ci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NjcyMUU0M0I4QjUwMDYyMUU5MiAvKiBzcXJ0
X29mX29uZV9taW51c194X3NxdWFyZWQuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOUREMjQy
QTczMzcwMDdGREM0MSAvKiBzcnRwX2ZpbHRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFC
RjNEMjM0Qjg4MjAwMDI4QTYxNSAvKiBzcnRwX3Nlc3Npb24uY2MgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTg5MzlEQzI0MkE3MzM3MDA3RkRDNDEgLyogc3J0cF90cmFuc3BvcnQuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzE0RjIzNEI4OUUyMDAyOEE2MTUgLyogc3NsX2FkYXB0ZXIuY2MgaW4g
U291cmNlcyAqLywKLQkJCQk0MTg5MzkxRDI0MkE3MDRFMDA3RkRDNDEgLyogdmlkZW9fcnRwX2Rl
cGFja2V0aXplcl9nZW5lcmljLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxNDIyMzRCODlF
MjAwMjhBNjE1IC8qIHNzbF9jZXJ0aWZpY2F0ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFD
MTFFMjM0Qjg5RTIwMDI4QTYxNSAvKiBzc2xfZmluZ2VycHJpbnQuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MTMxQzExRDIzNEI4OUUyMDAyOEE2MTUgLyogc3NsX2lkZW50aXR5LmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDEzMUMxMEMyMzRCODlFMjAwMjhBNjE1IC8qIHNzbF9zdHJlYW1fYWRhcHRl
ci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOThEMjQyQTcyNTIwMDdGREM0MSAvKiBzaWdu
YWxfbW9kZWxfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMyM0QyMzRCOEJC
MjAwMjhBNjE1IC8qIHN0YWJsZV90YXJnZXRfcmF0ZV9leHBlcmltZW50LmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNUNERDg3MzYxRTQzQkFCRTAwNjIxRTkyIC8qIHN0YW5kYWxvbmVfdmFkLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCRUIxRTQzQzJCNTAwNjIxRTkyIC8qIHN0YXRlX2NvbnN0
cnVjdC5jIGluIFNvdXJjZXMgKi8sCkBAIC0xODMwOCwxNyArMTgzMDcsMTggQEAKIAkJCQk0MTMx
QzE2MDIzNEI4OUUyMDAyOEE2MTUgLyogc3RyaW5nX3V0aWxzLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDFGQ0JCODAyMUIyMDAxMjAwQTVERjI3IC8qIHN0cmluZ192aWV3LmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDEzMUMyMkYyMzRCOEJCMjAwMjhBNjE1IC8qIHN0cnVjdF9wYXJhbWV0ZXJzX3Bh
cnNlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOTRBMjQyQTcwRDcwMDdGREM0MSAvKiBz
dHVuLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxRTAyMzRCOEE0QjAwMjhBNjE1IC8qIHN0
dW5fcG9ydC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMUM4MjM0QjhBNEEwMDI4QTYxNSAv
KiBzdHVuX3JlcXVlc3QuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5MzkyMjI0MkE3MDRFMDA3
RkRDNDEgLyogdmlkZW9fcnRwX2RlcGFja2V0aXplcl92cDguY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTMxQzFENTIzNEI4QTRCMDAyOEE2MTUgLyogc3R1bl9zZXJ2ZXIuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzM5NzIzNEI5NTdEMDAyOEE2MTUgLyogc3ViYmFuZF9lcmxlX2VzdGltYXRv
ci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzQTAzMjQyQTc1M0MwMDdGREM0MSAvKiBzdWJi
YW5kX25lYXJlbmRfZGV0ZWN0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0QyODVFMjFFNkE2
MzQzMDA5NEZEQzggLyogc3VidHJhY3Rvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzk4
MjM0Qjk1N0QwMDI4QTYxNSAvKiBzdWJ0cmFjdG9yX291dHB1dC5jYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxODkzOTIxMjQyQTcwNEUwMDdGREM0MSAvKiBjcmVhdGVfdmlkZW9fcnRwX2RlcGFja2V0
aXplci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzg5MjM0Qjk1N0QwMDI4QTYxNSAvKiBz
dWJ0cmFjdG9yX291dHB1dF9hbmFseXplci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUU0
MUU2QTYzNDMwMDk0RkRDOCAvKiBzdXBwcmVzc2lvbl9maWx0ZXIuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0QyODVFNjFFNkE2MzQzMDA5NEZEQzggLyogc3VwcHJlc3Npb25fZ2Fpbi5jYyBpbiBT
b3VyY2VzICovLAorCQkJCTQxODkzOTg3MjQyQTcyNTEwMDdGREM0MSAvKiBzdXBwcmVzc2lvbl9w
YXJhbXMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTNFNjc4MjIxNjk4NzBGMDBFRjM3RUQgLyog
c3ZjX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxM0U2Nzk0MjE2OTg4MTkwMEVGMzdF
RCAvKiBzdmNfcmF0ZV9hbGxvY2F0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJFRjFF
NDNDMkI1MDA2MjFFOTIgLyogc3dhcF9ieXRlcy5jIGluIFNvdXJjZXMgKi8sCkBAIC0xODMyNywx
NiArMTgzMjcsMTcgQEAKIAkJCQk1Q0REODk3ODFFNDNCRjNBMDA2MjFFOTIgLyogdGFyZ2V0X2Jp
dHJhdGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzEzNjIzNEI4OUUyMDAyOEE2MTUgLyog
dGFza19xdWV1ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDNDg0MjM0QzgyNzQwMDI4QTYx
NSAvKiB0YXNrX3F1ZXVlX2Jhc2UuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5M0E2QjI0MkE3
ODI2MDA3RkRDNDEgLyogdGFza19xdWV1ZV9wYWNlZF9zZW5kZXIuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MTMxQzRGMzIzNEM4NjM5MDAyOEE2MTUgLyogdGFza19xdWV1ZV9zdGRsaWIuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTMxQzFDOTIzNEI4QTRBMDAyOEE2MTUgLyogdGNwX3BvcnQuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTNFNjc3MjIxNjk4NjNCMDBFRjM3RUQgLyogdGVtcG9yYWxf
bGF5ZXJzX2NoZWNrZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzEyMDIzNEI4OUUyMDAy
OEE2MTUgLyogdGhyZWFkLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg0QzMxRTQzQUYxMzAw
NjIxRTkyIC8qIHRocmVlX2JhbmRfZmlsdGVyX2JhbmsuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0
MUZDQkIyMjIxQjFGODJGMDBBNURGMjcgLyogdGhyb3dfZGVsZWdhdGUuY2MgaW4gU291cmNlcyAq
LywKKwkJCQk0MTg5M0EzNzI0MkE3Njc4MDA3RkRDNDEgLyogdGlja190aW1lci5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxOTI0MUUyMjEyNzVBMzAwMDYzNEZDRiAvKiB0aW1lX2RlbHRhLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDhBNUExRTQzQkZCMzAwNjIxRTkyIC8qIHRpbWVfc3RyZXRj
aC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OERBMUU0M0JFM0QwMDYyMUU5MiAvKiB0aW1l
X3V0aWwuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTAwOTIwQTI0MkUzQTQ2MDBDNUVEQTIgLyog
UlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMxNEEyMzRC
ODlFMjAwMjhBNjE1IC8qIHRpbWVfdXRpbHMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDFF
MzIxMjc1QTMwMDA2MzRGQ0YgLyogdGltZXN0YW1wLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEz
MUMxMzMyMzRCODlFMjAwMjhBNjE1IC8qIHRpbWVzdGFtcF9hbGlnbmVyLmNjIGluIFNvdXJjZXMg
Ki8sCkBAIC0xODM0NiwxMiArMTgzNDcsMTMgQEAKIAkJCQk1Q0REODNGRjFFNDM5QTZGMDA2MjFF
OTIgLyogdGltaW5nLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg5N0ExRTQzQkYzQTAwNjIx
RTkyIC8qIHRtbWJfaXRlbS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OTdEMUU0M0JGM0Ew
MDYyMUU5MiAvKiB0bW1ibi5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOEY4MjQyQTZGOUIw
MDdGREM0MSAvKiBvcHVzX2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OTgw
MUU0M0JGM0EwMDYyMUU5MiAvKiB0bW1ici5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4OERD
MUU0M0JFM0QwMDYyMUU5MiAvKiB0bW1icl9oZWxwLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4
OTM5REYyNDJBNzMzNzAwN0ZEQzQxIC8qIHRyYWNrX21lZGlhX2luZm9fbWFwLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDE0MzNEMDAxRjc5QjMzNDAwMzg3QjREIC8qIHRyYW5zZm9ybS5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJNUNERDg3REIxRTQzQkMwNjAwNjIxRTkyIC8qIHRyYW5zZm9ybS5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE0MzNEMTYxRjc5QjMzNDAwMzg3QjREIC8qIHRyYW5zZm9ybV90
YWJsZXMuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOTE1MjQyQTcwNEUwMDdGREM0MSAvKiB0
cmFuc2Zvcm1hYmxlX2VuY29kZWRfZnJhbWUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEM5
MTFFNDNDNjYwMDA2MjFFOTIgLyogdHJhbnNpZW50X2RldGVjdG9yLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUNERDhDOTUxRTQzQzY2MDAwNjIxRTkyIC8qIHRyYW5zaWVudF9zdXBwcmVzc29yLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxNzcyMTI3MzhDMjAwNjM0RkNGIC8qIHRyYW5zcG9y
dC5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgzNjAsNiArMTgzNjIsOCBAQAogCQkJCTQxMzFDMUFE
MjM0QjhBNEEwMDI4QTYxNSAvKiB0cmFuc3BvcnRfZGVzY3JpcHRpb25fZmFjdG9yeS5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDREQ4OTgzMUU0M0JGM0EwMDYyMUU5MiAvKiB0cmFuc3BvcnRfZmVl
ZGJhY2suY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDE4RTIxMjc0OUM4MDA2MzRGQ0YgLyog
dHJhbnNwb3J0X2ZlZWRiYWNrX2FkYXB0ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzlG
MTI0MkE3NDdCMDA3RkRDNDEgLyogdHJhbnNwb3J0X2ZlZWRiYWNrX2RlbXV4ZXIuY2MgaW4gU291
cmNlcyAqLywKKwkJCQk0MTg5MzlFNzI0MkE3M0IzMDA3RkRDNDEgLyogdHJhbnNwb3J0X3N0YXRz
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMDJDQjAyMTI3MzUyRDAwQzI3Q0Q2IC8qIHRyZW5k
bGluZV9lc3RpbWF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzFEOTIzNEI4QTRCMDAy
OEE2MTUgLyogdHVybl9wb3J0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM0NTcyMzRDODEx
ODAwMjhBNjE1IC8qIHR1cm5fcG9ydF9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xODM3
MSwxMSArMTgzNzUsMTAgQEAKIAkJCQk1Q0REODhFNDFFNDNCRTNEMDA2MjFFOTIgLyogdWxwZmVj
X3JlY2VpdmVyX2ltcGwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzI4MDIzNEI4Q0M0MDAy
OEE2MTUgLyogdW5oYW5kbGVkX3BhY2tldHNfYnVmZmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDEzMUMxNDQyMzRCODlFMjAwMjhBNjE1IC8qIHVuaXF1ZV9pZF9nZW5lcmF0b3IuY2MgaW4gU291
cmNlcyAqLywKKwkJCQk0MTg5M0ExMjI0MkE3NTdBMDA3RkRDNDEgLyogdW5pcXVlX3RpbWVzdGFt
cF9jb3VudGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhCRjExRTQzQzJCNTAwNjIxRTky
IC8qIHVucGFja19iaXRzLmMgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5MzlGMTI0MkE3NDdCMDA3
RkRDNDEgLyogdHJhbnNwb3J0X2ZlZWRiYWNrX2RlbXV4ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REODdERTFFNDNCQzJFMDA2MjFFOTIgLyogdXRpbGl0eS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDg3MDgxRTQzQkE3NTAwNjIxRTkyIC8qIHV0aWxpdHkuY2MgaW4gU291cmNlcyAqLywK
LQkJCQk0MTg5Mzk4NDI0MkE3MjUxMDA3RkRDNDEgLyogc3BlZWNoX3Byb2JhYmlsaXR5X2VzdGlt
YXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NkUzMUU0M0JBMjgwMDYyMUU5MiAvKiB2
YWQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODczQTFFNDNCQUJFMDA2MjFFOTIgLyogdmFk
X2F1ZGlvX3Byb2MuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODczRDFFNDNCQUJFMDA2MjFF
OTIgLyogdmFkX2NpcmN1bGFyX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgzODQsMjAg
KzE4Mzg3LDE2IEBACiAJCQkJNUNERDg2REMxRTQzQkEyODAwNjIxRTkyIC8qIHZhZF9nbW0uYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4NkRGMUU0M0JBMjgwMDYyMUU5MiAvKiB2YWRfc3AuYyBp
biBTb3VyY2VzICovLAogCQkJCTQxNkQzQkVDMjEyNzMxQzIwMDc3NUYwOSAvKiB2YWRfd2l0aF9s
ZXZlbC5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOUQ1MjQyQTczMzcwMDdGREM0MSAvKiB2
aWRlb19ydHBfdHJhY2tfc291cmNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2RDNCRUQyMTI3
MzFDMjAwNzc1RjA5IC8qIHZlY3Rvcl9mbG9hdF9mcmFtZS5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4Njc0MUU0M0I4QjUwMDYyMUU5MiAvKiB2ZWN0b3Jfc2NhbGluZ19vcGVyYXRpb25zLmMg
aW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkY5RTIzNEI4OEE2MDAyOEE2MTUgLyogdmlkZW9fYWRh
cHRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMDJGNkUzMjEyNzM0MTYwMDZBRThENyAvKiB2
aWRlb19iaXRyYXRlX2FsbG9jYXRpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzQxRDIz
NEM3QzdEMDAyOEE2MTUgLyogdmlkZW9fYml0cmF0ZV9hbGxvY2F0b3IuY2MgaW4gU291cmNlcyAq
LywKLQkJCQk0MTg5Mzk5MjI0MkE3MjUyMDA3RkRDNDEgLyogc2lnbmFsX21vZGVsLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEzMUJGOTQyMzRCODhBNjAwMjhBNjE1IC8qIHZpZGVvX2Jyb2FkY2Fz
dGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMjYzNjMyMTI2N0FERjAwMjc0RjU5IC8qIHZp
ZGVvX2NvZGVjLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNEMjg1MzUxRTZBNjE1OTAwOTRGREM4
IC8qIHZpZGVvX2NvZGVjX2luaXRpYWxpemVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM0
NjYyMzRDODE3MjAwMjhBNjE1IC8qIHZpZGVvX2NvZGVjX2ludGVyZmFjZS5jYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTQxODkzQTQ2MjQyQTc3NEYwMDdGREM0MSAvKiBhY21fcmVtaXhpbmcuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MUUwMkM4RDIxMjczNEI5MDBDMjdDRDYgLyogdmlkZW9fY29kaW5n
X2RlZmluZXMuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTg5Mzk4NzI0MkE3MjUxMDA3RkRDNDEg
Lyogc3VwcHJlc3Npb25fcGFyYW1zLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg0MDExRTQz
OUE2RjAwNjIxRTkyIC8qIHZpZGVvX2NvZGluZ19pbXBsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDEzMUJGQTQyMzRCODhBNjAwMjhBNjE1IC8qIHZpZGVvX2NvbW1vbi5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxOUM4NDExMUZFMjQ5QUIwMDQwQzMwRiAvKiB2aWRlb19jb250ZW50X3R5cGUuY2Mg
aW4gU291cmNlcyAqLywKQEAgLTE4NDA2LDcgKzE4NDA1LDYgQEAKIAkJCQk0MTYyMjVEODIxNjk4
MTgxMDBBOTFDOUIgLyogdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDFGMjYzNjUyMTI2N0FERjAwMjc0RjU5IC8qIHZpZGVvX2RlY29kZXJfc29mdHdhcmVfZmFs
bGJhY2tfd3JhcHBlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxNDVGNjIwMUZFMUYzOEQwMEVC
OUNBRiAvKiB2aWRlb19lbmNvZGVyLmNjIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4OTNBMTQyNDJB
NzU3QTAwN0ZEQzQxIC8qIGZyYW1lX2RlcGVuZGVuY2llc19jYWxjdWxhdG9yLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDFFMDJDQzUyMTI3MzU4ODAwQzI3Q0Q2IC8qIHZpZGVvX2VuY29kZXJfY29u
ZmlnLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2MjI1RDQyMTY5ODE4MTAwQTkxQzlCIC8qIHZp
ZGVvX2VuY29kZXJfZmFjdG9yeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxRjI2MzY5MjEyNjdB
REYwMDI3NEY1OSAvKiB2aWRlb19lbmNvZGVyX3NvZnR3YXJlX2ZhbGxiYWNrX3dyYXBwZXIuY2Mg
aW4gU291cmNlcyAqLywKQEAgLTE4NDE5LDI1ICsxODQxNywzNCBAQAogCQkJCTQxOUM4MkJFMUZF
MjBEQ0QwMDQwQzMwRiAvKiB2aWRlb19yZWNlaXZlX3N0cmVhbS5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4NUNBMUU0M0I1QzAwMDYyMUU5MiAvKiB2aWRlb19yZWNlaXZlX3N0cmVhbS5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4NDAzMUU0MzlBNkYwMDYyMUU5MiAvKiB2aWRlb19yZWNl
aXZlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzQTE2MjQyQTc1N0EwMDdGREM0MSAvKiB2
aWRlb19yZWNlaXZlcjIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNEMyMDFFNDMxRjc1MDAy
NjUxQzggLyogdmlkZW9fcmVuZGVyX2ZyYW1lcy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkz
OTFEMjQyQTcwNEUwMDdGREM0MSAvKiB2aWRlb19ydHBfZGVwYWNrZXRpemVyX2dlbmVyaWMuY2Mg
aW4gU291cmNlcyAqLywKKwkJCQk0MTg5MzkyODI0MkE3MDRFMDA3RkRDNDEgLyogdmlkZW9fcnRw
X2RlcGFja2V0aXplcl9oMjY0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5MTYyNDJBNzA0
RTAwN0ZEQzQxIC8qIHZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfcmF3LmNjIGluIFNvdXJjZXMgKi8s
CisJCQkJNDE4OTM5MjIyNDJBNzA0RTAwN0ZEQzQxIC8qIHZpZGVvX3J0cF9kZXBhY2tldGl6ZXJf
dnA4LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGMTQyMzRCODgyMDAwMjhBNjE1IC8qIHZp
ZGVvX3J0cF9yZWNlaXZlci5jYyBpbiBTb3VyY2VzICovLAotCQkJCTQxODkzOUU0MjQyQTczMzcw
MDdGREM0MSAvKiB2aWRlb190cmFjay5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOUQ1MjQy
QTczMzcwMDdGREM0MSAvKiB2aWRlb19ydHBfdHJhY2tfc291cmNlLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDE5QzgyQjMxRkUyMERDRDAwNDBDMzBGIC8qIHZpZGVvX3NlbmRfc3RyZWFtLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDg1Q0QxRTQzQjVDMDAwNjIxRTkyIC8qIHZpZGVvX3NlbmRf
c3RyZWFtLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEwMkY2Q0MyMTI3MzNCNzAwNkFFOEQ3IC8q
IHZpZGVvX3NlbmRfc3RyZWFtX2ltcGwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkY4RjIz
NEI4OEE2MDAyOEE2MTUgLyogdmlkZW9fc291cmNlX2Jhc2UuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MUEwOEJCMDIxMjY4MUM4MDAxRDVEN0IgLyogdmlkZW9fc291cmNlX2ludGVyZmFjZS5jYyBp
biBTb3VyY2VzICovLAotCQkJCTQxODkzOEVEMjQyQTZCMTcwMDdGREM0MSAvKiBsb3NzX2Jhc2Vk
X2JhbmR3aWR0aF9lc3RpbWF0aW9uLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4OTM5M0QyNDJB
NzBBRTAwN0ZEQzQxIC8qIHZpZGVvX3NvdXJjZV9yZXN0cmljdGlvbnMuY2MgaW4gU291cmNlcyAq
LywKKwkJCQk0MTg5MzlBMjI0MkE3MkU0MDA3RkRDNDEgLyogdmlkZW9fc291cmNlX3NpbmtfY29u
dHJvbGxlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOEREMjQyQTY5Q0MwMDdGREM0MSAv
KiB2aWRlb19zdHJlYW1fYWRhcHRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NUNGMUU0
M0I1QzAwMDYyMUU5MiAvKiB2aWRlb19zdHJlYW1fZGVjb2Rlci5jYyBpbiBTb3VyY2VzICovLAot
CQkJCTQxODkzOTkxMjQyQTcyNTIwMDdGREM0MSAvKiBub2lzZV9zdXBwcmVzc29yLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEwMkY2REIyMTI3MzQxNjAwNkFFOEQ3IC8qIHZpZGVvX3N0cmVhbV9k
ZWNvZGVyX2NyZWF0ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMDJGNkNCMjEyNzMzQjcwMDZB
RThENyAvKiB2aWRlb19zdHJlYW1fZGVjb2Rlcl9pbXBsLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDE5QzgzMUYxRkUyNDJFNjAwNDBDMzBGIC8qIHZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEzRTY3QTUyMTY5ODhEQzAwRUYzN0VEIC8qIHZpZGVvX3N0cmVhbV9l
bmNvZGVyX29ic2VydmVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5Qzg0MTAxRkUyNDlBQjAw
NDBDMzBGIC8qIHZpZGVvX3RpbWluZy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkzOUU0MjQy
QTczMzcwMDdGREM0MSAvKiB2aWRlb190cmFjay5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxODkz
OUUyMjQyQTczMzcwMDdGREM0MSAvKiB2aWRlb190cmFja19zb3VyY2UuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzRBRDIzNEM4MzgwMDAyOEE2MTUgLyogdmlkZW9fdHJhbnNwb3J0LmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDFFQ0VBRkQyMDY0NjY2NDAwOUQ1MTQxIC8qIFZpZGVvUHJvY2Vz
c2luZ1NvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NzQwMUU0M0JBQkUwMDYy
MUU5MiAvKiB2b2ljZV9hY3Rpdml0eV9kZXRlY3Rvci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQx
ODkzQTY1MjQyQTc3RkUwMDdGREM0MSAvKiB2b2ljZV9kZXRlY3Rpb24uY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzNEQTIzNEM3OUQxMDAyOEE2MTUgLyogdnA4X2ZyYW1lX2NvbmZpZy5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDREQ4Mzg1MUU0MzlBMzUwMDYyMUU5MiAvKiB2cDhfaGVhZGVy
X3BhcnNlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDM0Q5MjM0Qzc5RDEwMDI4QTYxNSAv
KiB2cDhfdGVtcG9yYWxfbGF5ZXJzLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xODQ0OSwxOCArMTg0
NTYsMTkgQEAKIAkJCQk1QzRCNEM4MDFFNDMxRjlDMDAyNjUxQzggLyogd2F2X2ZpbGUuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk1QzRCNEM4MzFFNDMxRjlDMDAyNjUxQzggLyogd2F2X2hlYWRlci5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMEY5MjM0Qjg5RTIwMDI4QTYxNSAvKiB3ZWFrX3B0
ci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxRTg0QkNDMjQzNEM0QTMwMEQzNEU0MSAvKiBXZWJL
aXREZWNvZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE1ODY0OTkyM0JFMDVFOTAwQTBBNjFF
IC8qIFdlYktpdEVuY29kZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MUVDRUFCRTIwNjQwNDk4
MDA5RDUxNDEgLyogV2ViS2l0VXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhD
QUExRTQzQzZGNzAwNjIxRTkyIC8qIHdlYnJ0Y19jbmcuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1
Q0REODM2NzFFNDMyNUQ1MDA2MjFFOTIgLyogd2VicnRjX2xpYnl1di5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFDMjdBMjM0QjhDQzQwMDI4QTYxNSAvKiB3ZWJydGNfbWVkaWFfZW5naW5lLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMyNzgyMzRCOENDNDAwMjhBNjE1IC8qIHdlYnJ0Y19t
ZWRpYV9lbmdpbmVfZGVmYXVsdHMuY2MgaW4gU291cmNlcyAqLywKLQkJCQk0MTAwOTFGRjI0MkUz
NjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQkY1
MDIzNEI4ODIwMDAyOEE2MTUgLyogd2VicnRjX3NkcC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
MzFCRUY0MjM0Qjg4MjAwMDI4QTYxNSAvKiB3ZWJydGNfc2Vzc2lvbl9kZXNjcmlwdGlvbl9mYWN0
b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2RTQxRTQzQkEyODAwNjIxRTkyIC8qIHdl
YnJ0Y192YWQuYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMjk4MjM0QjhDQzQwMDI4QTYxNSAv
KiB3ZWJydGNfdmlkZW9fZW5naW5lLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMyOUQyMzRC
OENDNDAwMjhBNjE1IC8qIHdlYnJ0Y192b2ljZV9lbmdpbmUuY2MgaW4gU291cmNlcyAqLywKKwkJ
CQk0MTg5Mzk4MzI0MkE3MjUxMDA3RkRDNDEgLyogd2llbmVyX2ZpbHRlci5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTVDREQ4QkY3MUU0M0MyQjUwMDYyMUU5MiAvKiB3aW5kb3czMl93MzIuYyBpbiBT
b3VyY2VzICovLAogCQkJCTVDNEI0Qzg2MUU0MzFGOUMwMDI2NTFDOCAvKiB3aW5kb3dfZ2VuZXJh
dG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhDOTgxRTQzQzY2MDAwNjIxRTkyIC8qIHdw
ZF9ub2RlLmNjIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5LmgKaW5kZXggMGY3NGJiNjVhMGY1ZmFj
ZGQxNjEzZmE2M2M4NGQ0MzJhMzg2NWZjNC4uYjQ1MDA0M2I1N2FhNDc3NzdjMWRlNjJjZjU3M2Ix
YjIzMmZiMGUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkuaApAQCAtNjIsMTEgKzYyLDEyIEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwotICAgIHZvaWQg
Y3JlYXRlRGVjb2RlcihSVENEZWNvZGVySWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVIMjY0
RGVjb2RlcihSVENEZWNvZGVySWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVhdGVIMjY1RGVjb2Rl
cihSVENEZWNvZGVySWRlbnRpZmllcik7CiAgICAgdm9pZCByZWxlYXNlRGVjb2RlcihSVENEZWNv
ZGVySWRlbnRpZmllcik7CiAgICAgdm9pZCBkZWNvZGVGcmFtZShSVENEZWNvZGVySWRlbnRpZmll
ciwgdWludDMyX3QgdGltZVN0YW1wLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKIAotICAg
IHZvaWQgY3JlYXRlRW5jb2RlcihSVENFbmNvZGVySWRlbnRpZmllciwgY29uc3QgVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+Jik7CisgICAgdm9pZCBjcmVhdGVFbmNvZGVyKFJUQ0Vu
Y29kZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0
cmluZywgU3RyaW5nPj4mKTsKICAgICB2b2lkIHJlbGVhc2VFbmNvZGVyKFJUQ0VuY29kZXJJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGluaXRpYWxpemVFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlmaWVy
LCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0LCB1bnNpZ25lZCBzdGFydEJpdHJhdGUs
IHVuc2lnbmVkIG1heEJpdHJhdGUsIHVuc2lnbmVkIG1pbkJpdHJhdGUsIHVpbnQzMl90IG1heEZy
YW1lcmF0ZSk7CiAgICAgdm9pZCBlbmNvZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJiwgYm9vbCBzaG91bGRFbmNvZGVBc0tleUZyYW1lKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ0NvZGVjc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDJiMzRlNTY0MDVmMzg1MTZkODJj
NTFkMjY5NGYyNTRhOWEzZWQ0MjQuLmY0M2FjNTQ3OWQ2Y2YzNWQyNWZkODg5ODZlZWEzZjgyNTAy
ZDA4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsMTEgKzI0LDEy
IEBACiAjaWYgVVNFKExJQldFQlJUQykgJiYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVf
UFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gTGliV2ViUlRDQ29kZWNzUHJveHkgTm90UmVmQ291bnRl
ZCB7Ci0gICAgQ3JlYXRlRGVjb2RlcihXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyIGlkKQor
ICAgIENyZWF0ZUgyNjREZWNvZGVyKFdlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXIgaWQpCisg
ICAgQ3JlYXRlSDI2NURlY29kZXIoV2ViS2l0OjpSVENEZWNvZGVySWRlbnRpZmllciBpZCkKICAg
ICBSZWxlYXNlRGVjb2RlcihXZWJLaXQ6OlJUQ0RlY29kZXJJZGVudGlmaWVyIGlkKQogICAgIERl
Y29kZUZyYW1lKFdlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXIgaWQsIHVpbnQzMl90IHRpbWVT
dGFtcCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCiAKLSAgICBDcmVhdGVFbmNvZGVyKFdlYktp
dDo6UlRDRW5jb2RlcklkZW50aWZpZXIgaWQsIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJp
bmc+PiBwYXJhbWV0ZXJzKTsKKyAgICBDcmVhdGVFbmNvZGVyKFdlYktpdDo6UlRDRW5jb2Rlcklk
ZW50aWZpZXIgaWQsIFN0cmluZyBmb3JtYXROYW1lLCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywg
U3RyaW5nPj4gcGFyYW1ldGVycyk7CiAgICAgUmVsZWFzZUVuY29kZXIoV2ViS2l0OjpSVENFbmNv
ZGVySWRlbnRpZmllciBpZCkKICAgICBJbml0aWFsaXplRW5jb2RlcihXZWJLaXQ6OlJUQ0VuY29k
ZXJJZGVudGlmaWVyIGlkLCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0LCB1bnNpZ25l
ZCBzdGFydEJpdHJhdGUsIHVuc2lnbmVkIG1heEJpdHJhdGUsIHVuc2lnbmVkIG1pbkJpdHJhdGUs
IHVpbnQzMl90IG1heEZyYW1lcmF0ZSkKICAgICBFbmNvZGVGcmFtZShXZWJLaXQ6OlJUQ0VuY29k
ZXJJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSBzYW1wbGUsIGJvb2wg
c2hvdWxkRW5jb2RlQXNLZXlGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCmluZGV4IDE4Y2M1ZDc0NzljOTdi
OGQyMjI3YzEyNTQ0YzUxNmY3Yjg5MzM4NzQuLmZjOTcyODQ0NmQzZGUzN2QwNDNiNGQ4YmM4Njhi
YzQ1MmQ0ZmFjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAtMzQsOCArMzQsOCBAQAogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFj
cm9zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgorI2luY2x1ZGUg
PHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIuaD4KICNpbmNsdWRlIDx3ZWJydGMvc2Rr
L1dlYktpdC9XZWJLaXRFbmNvZGVyLmg+Ci0jaW5jbHVkZSA8d2VicnRjL3Nkay9XZWJLaXQvV2Vi
S2l0VXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTUzLDEwICs1MywxOSBAQCBMaWJXZWJSVENDb2RlY3NQcm94eTo6fkxpYldl
YlJUQ0NvZGVjc1Byb3h5KCkKICAgICAgICAgd2VicnRjOjpyZWxlYXNlTG9jYWxFbmNvZGVyKGVu
Y29kZXIpOwogfQogCi12b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpjcmVhdGVEZWNvZGVyKFJU
Q0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5
OjpjcmVhdGVIMjY0RGVjb2RlcihSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyKQogewog
ICAgIEFTU0VSVCghbV9kZWNvZGVycy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9kZWNv
ZGVycy5hZGQoaWRlbnRpZmllciwgd2VicnRjOjpjcmVhdGVMb2NhbERlY29kZXIoXihDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGlt
ZVN0YW1wKSB7CisgICAgbV9kZWNvZGVycy5hZGQoaWRlbnRpZmllciwgd2VicnRjOjpjcmVhdGVM
b2NhbEgyNjREZWNvZGVyKF4oQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3Qg
dGltZVN0YW1wTnMsIHVpbnQzMl90IHRpbWVTdGFtcCkgeworICAgICAgICBpZiAoYXV0byBzYW1w
bGUgPSBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHBpeGVsQnVmZmVyLCBNZWRp
YVRpbWUodGltZVN0YW1wTnMsIDEpKSkKKyAgICAgICAgICAgIG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpDb21w
bGV0ZWREZWNvZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAwKTsKKyAg
ICB9KSk7Cit9CisKK3ZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmNyZWF0ZUgyNjVEZWNvZGVy
KFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX2RlY29k
ZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX2RlY29kZXJzLmFkZChpZGVudGlmaWVy
LCB3ZWJydGM6OmNyZWF0ZUxvY2FsSDI2NURlY29kZXIoXihDVlBpeGVsQnVmZmVyUmVmIHBpeGVs
QnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CiAgICAg
ICAgIGlmIChhdXRvIHNhbXBsZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUo
cGl4ZWxCdWZmZXIsIE1lZGlhVGltZSh0aW1lU3RhbXBOcywgMSkpKQogICAgICAgICAgICAgbV9n
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpMaWJX
ZWJSVENDb2RlY3M6OkNvbXBsZXRlZERlY29kaW5nIHsgaWRlbnRpZmllciwgdGltZVN0YW1wLCAq
c2FtcGxlIH0sIDApOwogICAgIH0pKTsKQEAgLTgwLDcgKzg5LDcgQEAgdm9pZCBMaWJXZWJSVEND
b2RlY3NQcm94eTo6ZGVjb2RlRnJhbWUoUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
dWludDMyX3QKICAgICAgICAgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkZhaWxlZERlY29kaW5nIHsgaWRlbnRp
ZmllciB9LCAwKTsKIH0KIAotdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6Y3JlYXRlRW5jb2Rl
cihSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8c3RkOjpwYWly
PFN0cmluZywgU3RyaW5nPj4mIHBhcmFtZXRlcnMpCit2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5
OjpjcmVhdGVFbmNvZGVyKFJUQ0VuY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgZm9ybWF0TmFtZSwgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+
JiBwYXJhbWV0ZXJzKQogewogICAgIEFTU0VSVCghbV9lbmNvZGVycy5jb250YWlucyhpZGVudGlm
aWVyKSk7CiAKQEAgLTg4LDcgKzk3LDcgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6Y3Jl
YXRlRW5jb2RlcihSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdAogICAgIGZv
ciAoYXV0byYgcGFyYW1ldGVyIDogcGFyYW1ldGVycykKICAgICAgICAgcnRjUGFyYW1ldGVycy5l
bXBsYWNlKHBhcmFtZXRlci5maXJzdC51dGY4KCkuZGF0YSgpLCBwYXJhbWV0ZXIuc2Vjb25kLnV0
ZjgoKS5kYXRhKCkpOwogICAgIAotICAgIG1fZW5jb2RlcnMuYWRkKGlkZW50aWZpZXIsIHdlYnJ0
Yzo6Y3JlYXRlTG9jYWxFbmNvZGVyKHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQgeyAiSDI2NCIsIHJ0
Y1BhcmFtZXRlcnMgfSwgXihjb25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBzaXplLCBjb25z
dCB3ZWJydGM6OldlYktpdEVuY29kZWRGcmFtZUluZm8mIGluZm8sIHdlYnJ0Yzo6UlRQRnJhZ21l
bnRhdGlvbkhlYWRlciogaGVhZGVyKSB7CisgICAgbV9lbmNvZGVycy5hZGQoaWRlbnRpZmllciwg
d2VicnRjOjpjcmVhdGVMb2NhbEVuY29kZXIod2VicnRjOjpTZHBWaWRlb0Zvcm1hdCB7IGZvcm1h
dE5hbWUudXRmOCgpLmRhdGEoKSwgcnRjUGFyYW1ldGVycyB9LCBeKGNvbnN0IHVpbnQ4X3QqIGJ1
ZmZlciwgc2l6ZV90IHNpemUsIGNvbnN0IHdlYnJ0Yzo6V2ViS2l0RW5jb2RlZEZyYW1lSW5mbyYg
aW5mbywgd2VicnRjOjpSVFBGcmFnbWVudGF0aW9uSGVhZGVyKiBoZWFkZXIpIHsKICAgICAgICAg
CiAgICAgICAgIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpDb21wbGV0ZWRFbmNvZGluZyB7IGlkZW50aWZpZXIs
IElQQzo6RGF0YVJlZmVyZW5jZSB7IGJ1ZmZlciwgc2l6ZSB9LCBpbmZvLCB3ZWJydGM6OldlYktp
dFJUUEZyYWdtZW50YXRpb25IZWFkZXIgeyBoZWFkZXIgfSB9LCAwKTsKICAgICB9KSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmNwcAppbmRleCA5ZDQxYzkyNjQxMGUxNjM3ZmExODE4ZjEwNTU2NDY1OTMyMjI3ODRjLi5i
N2YwYzc3MmRmZDdmNzM3OTIyMGJiYmUxNWY3YmU3MWI5MjZlZWI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
QEAgLTM1LDIwICszNSwyNSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDTWFjcm9zLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZVZpZGVvVXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgotI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFT
b2Z0TGluay5oPgorI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdERlY29kZXIuaD4K
ICNpbmNsdWRlIDx3ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRFbmNvZGVyLmg+CiAjaW5jbHVkZSA8
d2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmg+CiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KIAorI2luY2x1ZGUgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBzdGF0aWMgd2VicnRj
OjpXZWJLaXRWaWRlb0RlY29kZXIgY3JlYXRlVmlkZW9EZWNvZGVyKGNvbnN0IHdlYnJ0Yzo6U2Rw
VmlkZW9Gb3JtYXQmIGZvcm1hdCkKIHsKLSAgICBpZiAoZm9ybWF0Lm5hbWUgIT0gIkgyNjQiKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoZm9ybWF0Lm5hbWUgPT0gIkgyNjQiKQor
ICAgICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCku
Y3JlYXRlRGVjb2RlcihMaWJXZWJSVENDb2RlY3M6OlR5cGU6OkgyNjQpOwogCi0gICAgcmV0dXJu
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ0NvZGVjcygpLmNyZWF0ZURlY29kZXIo
KTsKKyAgICBpZiAoZm9ybWF0Lm5hbWUgPT0gIkgyNjUiKQorICAgICAgICByZXR1cm4gV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkubGliV2ViUlRDQ29kZWNzKCkuY3JlYXRlRGVjb2RlcihMaWJXZWJS
VENDb2RlY3M6OlR5cGU6OkgyNjUpOworCisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHN0YXRp
YyBpbnQzMl90IHJlbGVhc2VWaWRlb0RlY29kZXIod2VicnRjOjpXZWJLaXRWaWRlb0RlY29kZXIg
ZGVjb2RlcikKQEAgLTY5LDEwICs3NCwxMyBAQCBzdGF0aWMgaW50MzJfdCByZWdpc3RlckRlY29k
ZUNvbXBsZXRlQ2FsbGJhY2sod2VicnRjOjpXZWJLaXRWaWRlb0RlY29kZXIgZGVjb2RlcgogCiBz
dGF0aWMgd2VicnRjOjpXZWJLaXRWaWRlb0VuY29kZXIgY3JlYXRlVmlkZW9FbmNvZGVyKGNvbnN0
IHdlYnJ0Yzo6U2RwVmlkZW9Gb3JtYXQmIGZvcm1hdCkKIHsKLSAgICBpZiAoZm9ybWF0Lm5hbWUg
IT0gIkgyNjQiKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoZm9ybWF0Lm5hbWUg
PT0gIkgyNjQiKQorICAgICAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubGliV2Vi
UlRDQ29kZWNzKCkuY3JlYXRlRW5jb2RlcihMaWJXZWJSVENDb2RlY3M6OlR5cGU6OkgyNjQsIGZv
cm1hdC5wYXJhbWV0ZXJzKTsKKworICAgIGlmIChmb3JtYXQubmFtZSA9PSAiSDI2NSIpCisgICAg
ICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENDb2RlY3MoKS5jcmVh
dGVFbmNvZGVyKExpYldlYlJUQ0NvZGVjczo6VHlwZTo6SDI2NSwgZm9ybWF0LnBhcmFtZXRlcnMp
OwogCi0gICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ0NvZGVjcygp
LmNyZWF0ZUVuY29kZXIoZm9ybWF0LnBhcmFtZXRlcnMpOworICAgIHJldHVybiBudWxscHRyOwog
fQogCiBzdGF0aWMgaW50MzJfdCByZWxlYXNlVmlkZW9FbmNvZGVyKHdlYnJ0Yzo6V2ViS2l0Vmlk
ZW9FbmNvZGVyIGVuY29kZXIpCkBAIC0xNDgsMTcgKzE1NiwyNCBAQCB2b2lkIExpYldlYlJUQ0Nv
ZGVjczo6c2V0Q2FsbGJhY2tzKGJvb2wgdXNlR1BVUHJvY2VzcykKICAgICB3ZWJydGM6OnNldFZp
ZGVvRW5jb2RlckNhbGxiYWNrcyhjcmVhdGVWaWRlb0VuY29kZXIsIHJlbGVhc2VWaWRlb0VuY29k
ZXIsIGluaXRpYWxpemVWaWRlb0VuY29kZXIsIGVuY29kZVZpZGVvRnJhbWUsIHJlZ2lzdGVyRW5j
b2RlQ29tcGxldGVDYWxsYmFjaywgc2V0RW5jb2RlUmF0ZXNDYWxsYmFjayk7CiB9CiAKLUxpYldl
YlJUQ0NvZGVjczo6RGVjb2RlciogTGliV2ViUlRDQ29kZWNzOjpjcmVhdGVEZWNvZGVyKCkKK0xp
YldlYlJUQ0NvZGVjczo6RGVjb2RlciogTGliV2ViUlRDQ29kZWNzOjpjcmVhdGVEZWNvZGVyKFR5
cGUgdHlwZSkKIHsKICAgICBhdXRvIGRlY29kZXIgPSBtYWtlVW5pcXVlPERlY29kZXI+KCk7CiAg
ICAgYXV0byogcmVzdWx0ID0gZGVjb2Rlci5nZXQoKTsKICAgICBkZWNvZGVyLT5pZGVudGlmaWVy
ID0gUlRDRGVjb2RlcklkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwogCi0gICAgY2Fs
bE9uTWFpblJ1bkxvb3AoW3RoaXMsIGRlY29kZXIgPSBXVEZNb3ZlKGRlY29kZXIpXSgpIG11dGFi
bGUgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBkZWNvZGVyID0gV1RGTW92ZShkZWNv
ZGVyKSwgdHlwZV0oKSBtdXRhYmxlIHsKICAgICAgICAgZGVjb2Rlci0+Y29ubmVjdGlvbiA9ICZX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5l
Y3Rpb24oKTsKIAogICAgICAgICBhdXRvIGRlY29kZXJJZGVudGlmaWVyID0gZGVjb2Rlci0+aWRl
bnRpZmllcjsKLSAgICAgICAgZGVjb2Rlci0+Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGli
V2ViUlRDQ29kZWNzUHJveHk6OkNyZWF0ZURlY29kZXIgeyBkZWNvZGVySWRlbnRpZmllciB9LCAw
KTsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgVHlwZTo6SDI2NDoKKyAg
ICAgICAgICAgIGRlY29kZXItPmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0Nv
ZGVjc1Byb3h5OjpDcmVhdGVIMjY0RGVjb2RlciB7IGRlY29kZXJJZGVudGlmaWVyIH0sIDApOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVHlwZTo6SDI2NToKKyAgICAgICAgICAg
IGRlY29kZXItPmNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5
OjpDcmVhdGVIMjY1RGVjb2RlciB7IGRlY29kZXJJZGVudGlmaWVyIH0sIDApOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQoIW1fZGVjb2RlcnMuY29udGFp
bnMoZGVjb2RlcklkZW50aWZpZXIpKTsKICAgICAgICAgbV9kZWNvZGVycy5hZGQoZGVjb2Rlcklk
ZW50aWZpZXIsIFdURk1vdmUoZGVjb2RlcikpOwpAQCAtMjM4LDcgKzI1MywxNyBAQCB2b2lkIExp
YldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcoUlRDRGVjb2RlcklkZW50aWZpZXIgZGVj
b2RlcklkZW50aWZpZXIsCiAgICAgd2VicnRjOjpSZW1vdGVWaWRlb0RlY29kZXI6OmRlY29kZUNv
bXBsZXRlKGRlY29kZXItPmRlY29kZWRJbWFnZUNhbGxiYWNrLCB0aW1lU3RhbXAsIHBpeGVsQnVm
ZmVyLmdldCgpLCByZW1vdGVTYW1wbGUudGltZSgpLnRvRG91YmxlKCkpOwogfQogCi1MaWJXZWJS
VENDb2RlY3M6OkVuY29kZXIqIExpYldlYlJUQ0NvZGVjczo6Y3JlYXRlRW5jb2Rlcihjb25zdCBz
dGQ6Om1hcDxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+JiBmb3JtYXRQYXJhbWV0ZXJzKQorc3Rh
dGljIGlubGluZSBTdHJpbmcgZm9ybWF0TmFtZUZyb21Db2RlY1R5cGUoTGliV2ViUlRDQ29kZWNz
OjpUeXBlIHR5cGUpCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBMaWJXZWJSVEND
b2RlY3M6OlR5cGU6OkgyNjQ6CisgICAgICAgIHJldHVybiAiSDI2NCJfczsKKyAgICBjYXNlIExp
YldlYlJUQ0NvZGVjczo6VHlwZTo6SDI2NToKKyAgICAgICAgcmV0dXJuICJIMjY1Il9zOworICAg
IH0KK30KKworTGliV2ViUlRDQ29kZWNzOjpFbmNvZGVyKiBMaWJXZWJSVENDb2RlY3M6OmNyZWF0
ZUVuY29kZXIoVHlwZSB0eXBlLCBjb25zdCBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgc3RkOjpzdHJp
bmc+JiBmb3JtYXRQYXJhbWV0ZXJzKQogewogICAgIGF1dG8gZW5jb2RlciA9IG1ha2VVbmlxdWU8
RW5jb2Rlcj4oKTsKICAgICBhdXRvKiByZXN1bHQgPSBlbmNvZGVyLmdldCgpOwpAQCAtMjQ4LDEx
ICsyNzMsMTEgQEAgTGliV2ViUlRDQ29kZWNzOjpFbmNvZGVyKiBMaWJXZWJSVENDb2RlY3M6OmNy
ZWF0ZUVuY29kZXIoY29uc3Qgc3RkOjptYXA8c3RkOjpzdHIKICAgICBmb3IgKGF1dG8mIGtleVZh
bHVlIDogZm9ybWF0UGFyYW1ldGVycykKICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoc3RkOjpt
YWtlX3BhaXIoU3RyaW5nOjpmcm9tVVRGOChrZXlWYWx1ZS5maXJzdC5kYXRhKCksIGtleVZhbHVl
LmZpcnN0Lmxlbmd0aCgpKSwgU3RyaW5nOjpmcm9tVVRGOChrZXlWYWx1ZS5zZWNvbmQuZGF0YSgp
LCBrZXlWYWx1ZS5zZWNvbmQubGVuZ3RoKCkpKSk7CiAKLSAgICBjYWxsT25NYWluUnVuTG9vcChb
dGhpcywgZW5jb2RlciA9IFdURk1vdmUoZW5jb2RlciksIHBhcmFtZXRlcnMgPSBXVEZNb3ZlKHBh
cmFtZXRlcnMpXSgpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBlbmNv
ZGVyID0gV1RGTW92ZShlbmNvZGVyKSwgdHlwZSwgcGFyYW1ldGVycyA9IFdURk1vdmUocGFyYW1l
dGVycyldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gZW5jb2RlcklkZW50aWZpZXIgPSBlbmNv
ZGVyLT5pZGVudGlmaWVyOwogICAgICAgICBBU1NFUlQoIW1fZW5jb2RlcnMuY29udGFpbnMoZW5j
b2RlcklkZW50aWZpZXIpKTsKIAotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpMaWJX
ZWJSVENDb2RlY3NQcm94eTo6Q3JlYXRlRW5jb2RlciB7IGVuY29kZXJJZGVudGlmaWVyLCBwYXJh
bWV0ZXJzIH0sIDApOworICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQ
cm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVEND
b2RlY3NQcm94eTo6Q3JlYXRlRW5jb2RlciB7IGVuY29kZXJJZGVudGlmaWVyLCBmb3JtYXROYW1l
RnJvbUNvZGVjVHlwZSh0eXBlKSwgcGFyYW1ldGVycyB9LCAwKTsKICAgICAgICAgbV9lbmNvZGVy
cy5hZGQoZW5jb2RlcklkZW50aWZpZXIsIFdURk1vdmUoZW5jb2RlcikpOwogICAgIH0pOwogICAg
IHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCmluZGV4IDg5M2UxOTg3YjVhNmY2Y2U5ZWEwZjBjYWFk
NjdmYTE0NjEzN2I0ZDQuLmJkNTUyYjU3ZjMxMDUyYmQyZmU5OGMxM2NkNTUyMzM5ZWFjMTcxMzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJU
Q0NvZGVjcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldl
YlJUQ0NvZGVjcy5oCkBAIC03Miw3ICs3Miw4IEBAIHB1YmxpYzoKICAgICAgICAgUmVmUHRyPElQ
Qzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbjsKICAgICB9OwogCi0gICAgRGVjb2RlciogY3JlYXRl
RGVjb2RlcigpOworICAgIGVudW0gY2xhc3MgVHlwZSB7IEgyNjQsIEgyNjUgfTsKKyAgICBEZWNv
ZGVyKiBjcmVhdGVEZWNvZGVyKFR5cGUpOwogICAgIGludDMyX3QgcmVsZWFzZURlY29kZXIoRGVj
b2RlciYpOwogICAgIGludDMyX3QgZGVjb2RlRnJhbWUoRGVjb2RlciYsIHVpbnQzMl90IHRpbWVT
dGFtcCwgY29uc3QgdWludDhfdCosIHNpemVfdCk7CiAgICAgdm9pZCByZWdpc3RlckRlY29kZUZy
YW1lQ2FsbGJhY2soRGVjb2RlciYsIHZvaWQqIGRlY29kZWRJbWFnZUNhbGxiYWNrKTsKQEAgLTg2
LDcgKzg3LDcgQEAgcHVibGljOgogICAgICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBjb25u
ZWN0aW9uOwogICAgIH07CiAKLSAgICBFbmNvZGVyKiBjcmVhdGVFbmNvZGVyKGNvbnN0IHN0ZDo6
bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4mKTsKKyAgICBFbmNvZGVyKiBjcmVhdGVFbmNv
ZGVyKFR5cGUsIGNvbnN0IHN0ZDo6bWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4mKTsKICAg
ICBpbnQzMl90IHJlbGVhc2VFbmNvZGVyKEVuY29kZXImKTsKICAgICBpbnQzMl90IGluaXRpYWxp
emVFbmNvZGVyKEVuY29kZXImLCB1aW50MTZfdCB3aWR0aCwgdWludDE2X3QgaGVpZ2h0LCB1bnNp
Z25lZCBzdGFydEJpdHJhdGUsIHVuc2lnbmVkIG1heEJpdHJhdGUsIHVuc2lnbmVkIG1pbkJpdHJh
dGUsIHVpbnQzMl90IG1heEZyYW1lcmF0ZSk7CiAgICAgaW50MzJfdCBlbmNvZGVGcmFtZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmLCBib29sIHNob3VsZEVuY29k
ZUFzS2V5RnJhbWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395180</attachid>
            <date>2020-04-01 09:57:44 -0700</date>
            <delta_ts>2020-04-02 00:21:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204283-20200401185743.patch</filename>
            <type>text/plain</type>
            <size>256009</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA0ZDU0MmMzNmQ1MjViZmUyNjk4NWZiYjQzOTY5NTU5OGY2OGY5MWMxLi5mMzgy
ZGUwODBhNDg5MTU1ZjgzYTliZWM3NjM4NjkwNWI5ZThhNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjYgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQg
Zm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgSDI2NSBwYWNrZXRpemF0aW9uL2RlcGFja2V0aXphdGlvbiBhbmQgT2JqQyBI
MjY1IGVuY29kZXIvZGVjb2Rlci4KKyAgICAgICAgU3VwcG9ydCBpcyBzd2l0Y2hhYmxlIHVzaW5n
IGEgYm9vbGVhbiBnaXZlbiB0byB0aGUgZGVjb2Rlci9lbmNvZGVyIGZhY3Rvcmllcy4KKworICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaDoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2M6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmg6CisgICAg
ICAgICh3ZWJydGM6OlZpZGVvQ29kZWNIMjY1OjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYzoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZp
Zy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5j
b2Rlcl9jb25maWcuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9i
dWlsZC5nbmk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jYWxsL3J0cF9wYXlsb2FkX3BhcmFt
cy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbjoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjOiBB
ZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29t
bW9uLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9wcHNfcGFyc2VyLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1v
bl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYzogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaDog
QWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zw
c19wYXJzZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVv
L2gyNjUvaDI2NV92cHNfcGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
bWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9t
ZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL2NyZWF0ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2Vy
LmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL2gyNjVfc3BzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKHdlYnJ0Yzo6SDI2NVNwc1Bh
cnNlcjo6d2lkdGgpOgorICAgICAgICAod2VicnRjOjpIMjY1U3BzUGFyc2VyOjpoZWlnaHQpOgor
ICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1h
dC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF9mb3JtYXRfaDI2NS5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaDogQWRkZWQuCisgICAgICAgICh3ZWJy
dGM6OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXQ6OlBhY2tldCk6CisgICAgICAgICh3ZWJydGM6
OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXRVbml0OjpQYWNrZXRVbml0KToKKyAgICAgICAgKHdl
YnJ0Yzo6VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1Ojp+VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1
KToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9z
ZW5kZXJfdmlkZW8uY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmg6IEFkZGVk
LgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9m
cmFtZS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gy
NjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaDogQWRkZWQu
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3Zp
ZGVvX2NvZGVjX2ludGVyZmFjZS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaDoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuY2M6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uY2M6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uaDoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4cGVyaW1lbnRzL21pbl92aWRlb19iaXRy
YXRlX2V4cGVyaW1lbnQuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFV0aWxpdGllcy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMubW06CisgICAgICAgICh3ZWJydGM6OmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0
b3J5KToKKyAgICAgICAgKHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkpOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmguCisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tOiBBZGRlZC4KKyAgICAg
ICAgKC1bUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXSk6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGluaXRX
aXRoSDI2NTpdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnkgc3Vw
cG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
IGNyZWF0ZURlY29kZXI6XSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lmg6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0Rl
ZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0Vu
Y29kZXJGYWN0b3J5IGluaXRXaXRoSDI2NTpdKToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRW
aWRlb0VuY29kZXJGYWN0b3J5IGNyZWF0ZUVuY29kZXI6XSk6CisgICAgICAgICgtW1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5IHN1cHBvcnRlZENvZGVjc10pOgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxl
dmVsSWQuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW06IEFkZGVkLgorICAgICAgICAq
IFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0Rl
Y29kZXJIMjY1Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5tbTogQWRkZWQuCisgICAgICAg
IChSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXM6OlJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyk6Cisg
ICAgICAgIChoMjY1RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKC1bUlRD
VmlkZW9EZWNvZGVySDI2NSBpbml0XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUg
ZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHN0YXJ0RGVjb2RlV2l0
aE51bWJlck9mQ29yZXM6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVjb2Rl
Om1pc3NpbmdGcmFtZXM6Y29kZWNTcGVjaWZpY0luZm86cmVuZGVyVGltZU1zOl0pOgorICAgICAg
ICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHNldENhbGxiYWNrOl0pOgorICAgICAgICAoLVtSVENW
aWRlb0RlY29kZXJIMjY1IHJlbGVhc2VEZWNvZGVyXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVj
b2RlckgyNjUgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJIMjY1IGNvbmZpZ3VyZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgc2V0VmlkZW9Gb3JtYXQ6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2Rl
ckgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBpbml0V2l0aENvZGVjSW5mbzpdKToKKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2Rlckgy
NjUgc3RhcnRFbmNvZGVXaXRoU2V0dGluZ3M6bnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBlbmNvZGU6Y29kZWNTcGVjaWZpY0luZm86ZnJhbWVUeXBlczpd
KToKKyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRDYWxsYmFjazpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRCaXRyYXRlOmZyYW1lcmF0ZTpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSByZWxlYXNlRW5jb2Rlcl0pOgorICAgICAgICAoLVtS
VENWaWRlb0VuY29kZXJIMjY1IHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl0pOgor
ICAgICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAg
ICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IHNldEJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgc2V0RW5jb2RlckJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgZnJhbWVXYXNFbmNvZGVkOmZsYWdzOnNhbXBsZUJ1ZmZlcjp3
aWR0aDpoZWlnaHQ6cmVuZGVyVGltZU1zOnRpbWVzdGFtcDpyb3RhdGlvbjpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzY2FsaW5nU2V0dGluZ3NdKToKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5j
YzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvbmFsdV9yZXdyaXRlci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbToKKyAgICAgICAgKHdlYnJ0Yzo6
T2JqQ1ZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0
b3J5Lm1tOgorICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRl
VmlkZW9FbmNvZGVyKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19z
dHJlYW1fcmVjZWl2ZXIuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlk
ZW9fc3RyZWFtX3JlY2VpdmVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9zZW5k
X3N0YXRpc3RpY3NfcHJveHkuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby92aWRl
b19yZWNlaXZlX3N0cmVhbS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVv
X3N0cmVhbV9lbmNvZGVyLmNjOgorICAgICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDIwLTA0LTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4gYW5kIFZpY3RvciBNLiBKYXF1ZXogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBC
dW1wIGxpYndlYnJ0YyB0byBNODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkODczNWE4ZGMzMDQ4YTAzMzY3Nzkw
MTUzMTc1MDFlOTdiMzdlMjNkLi5mMDMzZmU3MjExZWU4NTQ5YjM3NDJiMWQyOTI5Nzg1ZWZiNmJm
YThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9y
IFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBydW50aW1lIGZsYWcgZm9yIEgyNjUgaW4gbGlldSBvZiBWUDggYW5kIHBpcGUg
aXQgdG8gbGlid2VicnRjIGZhY3Rvcmllcy4KKyAgICAgICAgVGVzdDogd2VicnRjL2gyNjUuaHRt
bAorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fZGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlcik6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3
ZWJSVENIMjY1Q29kZWNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29h
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURl
Y29kZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6
OmNyZWF0ZUVuY29kZXJGYWN0b3J5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgor
CiAyMDIwLTA0LTAxICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgogCiAgICAg
ICAgIE5vdGlmeSBhY2Nlc3NpYmlsaXR5IHdoZW4gYSBub2RlIGlzIHJlbW92ZWQgZnJvbSBpdHMg
YW5jZXN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyNmNhYTU5YmY5ZGVlMGE5NDRmMGUwMGEyNDJhOGZmNzgw
NjExMGMuLmU1MmNmYTYyMmUyMWY4ZWY0YzgxYmIwZGY3YTk2N2QwNzhkZTEyMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIFdlYlJUQyBIRVZDCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyODMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgVlA4
IHJ1bnRpbWUgZmxhZyBhbmQgYWRkIGEgSDM2NSBydW50aW1lIGZsYWcgaW5zdGVhZC4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMpOgorCiAyMDIwLTA0LTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVwcmVjYXRlIFdLV2Vic2l0ZURhdGFTdG9yZS5faW5k
ZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW8vdmlkZW9fY29k
ZWNfdHlwZS5oCmluZGV4IDEyZGNmYWMxYjlhNjg2ODc5MjBhZWJjODA0NWI2MmM1NzQ0OTJiZTcu
LmM0ZTQ1ZGJkYzBhNDk5MjcxMTNiMGU1MTAxZTU0Y2VlZTkwNTdhMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19j
b2RlY190eXBlLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaApAQCAtMjIsNiArMjIsOSBAQCBlbnVtIFZp
ZGVvQ29kZWNUeXBlIHsKICAga1ZpZGVvQ29kZWNWUDksCiAgIGtWaWRlb0NvZGVjQVYxLAogICBr
VmlkZW9Db2RlY0gyNjQsCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBrVmlkZW9Db2RlY0gyNjUs
CisjZW5kaWYKICAga1ZpZGVvQ29kZWNNdWx0aXBsZXgsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3Zp
ZGVvX2NvZGVjLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
YXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2RlYy5jYwppbmRleCBkMDMwODJiOTFlMzhjNDdiNGQ0
YjE4MGYwZDIzNThjMzkxMzFkMzk5Li41NGY3ODkwMDQ2NjJmODRjZjE1MTBhOTFjM2Y1NWU0ZDA3
Mjk0NTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMu
Y2MKQEAgLTI1LDYgKzI1LDkgQEAgY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lVnA5W10gPSAi
VlA5IjsKIC8vIGZyb3plbi4KIGNvbnN0ZXhwciBjaGFyIGtQYXlsb2FkTmFtZUF2MVtdID0gIkFW
MVgiOwogY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lSDI2NFtdID0gIkgyNjQiOworI2lmbmRl
ZiBESVNBQkxFX0gyNjUKK2NvbnN0ZXhwciBjaGFyIGtQYXlsb2FkTmFtZUgyNjVbXSA9ICJIMjY1
IjsKKyNlbmRpZgogY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lR2VuZXJpY1tdID0gIkdlbmVy
aWMiOwogY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lTXVsdGlwbGV4W10gPSAiTXVsdGlwbGV4
IjsKIH0gIC8vIG5hbWVzcGFjZQpAQCAtNTYsNiArNTksMTcgQEAgYm9vbCBWaWRlb0NvZGVjSDI2
NDo6b3BlcmF0b3I9PShjb25zdCBWaWRlb0NvZGVjSDI2NCYgb3RoZXIpIGNvbnN0IHsKICAgICAg
ICAgICBudW1iZXJPZlRlbXBvcmFsTGF5ZXJzID09IG90aGVyLm51bWJlck9mVGVtcG9yYWxMYXll
cnMpOwogfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorYm9vbCBWaWRlb0NvZGVjSDI2NTo6b3Bl
cmF0b3I9PShjb25zdCBWaWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsKKyAgcmV0dXJuIChm
cmFtZURyb3BwaW5nT24gPT0gb3RoZXIuZnJhbWVEcm9wcGluZ09uICYmCisgICAgICAgICAga2V5
RnJhbWVJbnRlcnZhbCA9PSBvdGhlci5rZXlGcmFtZUludGVydmFsICYmCisgICAgICAgICAgdnBz
TGVuID09IG90aGVyLnZwc0xlbiAmJiBzcHNMZW4gPT0gb3RoZXIuc3BzTGVuICYmCisgICAgICAg
ICAgcHBzTGVuID09IG90aGVyLnBwc0xlbiAmJgorICAgICAgICAgIChzcHNMZW4gPT0gMCB8fCBt
ZW1jbXAoc3BzRGF0YSwgb3RoZXIuc3BzRGF0YSwgc3BzTGVuKSA9PSAwKSAmJgorICAgICAgICAg
IChwcHNMZW4gPT0gMCB8fCBtZW1jbXAocHBzRGF0YSwgb3RoZXIucHBzRGF0YSwgcHBzTGVuKSA9
PSAwKSk7Cit9CisjZW5kaWYKKwogYm9vbCBTcGF0aWFsTGF5ZXI6Om9wZXJhdG9yPT0oY29uc3Qg
U3BhdGlhbExheWVyJiBvdGhlcikgY29uc3QgewogICByZXR1cm4gKHdpZHRoID09IG90aGVyLndp
ZHRoICYmIGhlaWdodCA9PSBvdGhlci5oZWlnaHQgJiYKICAgICAgICAgICBtYXhGcmFtZXJhdGUg
PT0gb3RoZXIubWF4RnJhbWVyYXRlICYmCkBAIC0xMTUsNiArMTI5LDE4IEBAIGNvbnN0IFZpZGVv
Q29kZWNIMjY0JiBWaWRlb0NvZGVjOjpIMjY0KCkgY29uc3QgewogICByZXR1cm4gY29kZWNfc3Bl
Y2lmaWNfLkgyNjQ7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitWaWRlb0NvZGVjSDI2NSog
VmlkZW9Db2RlYzo6SDI2NSgpIHsKKyAgUlRDX0RDSEVDS19FUShjb2RlY1R5cGUsIGtWaWRlb0Nv
ZGVjSDI2NSk7CisgIHJldHVybiAmY29kZWNfc3BlY2lmaWNfLkgyNjU7Cit9CisKK2NvbnN0IFZp
ZGVvQ29kZWNIMjY1JiBWaWRlb0NvZGVjOjpIMjY1KCkgY29uc3QgeworICBSVENfRENIRUNLX0VR
KGNvZGVjVHlwZSwga1ZpZGVvQ29kZWNIMjY1KTsKKyAgcmV0dXJuIGNvZGVjX3NwZWNpZmljXy5I
MjY1OworfQorI2VuZGlmCisKIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5bG9hZFN0cmluZyhW
aWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Uga1ZpZGVv
Q29kZWNWUDg6CkBAIC0xMjUsNiArMTUxLDEwIEBAIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5
bG9hZFN0cmluZyhWaWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgICAgICByZXR1cm4ga1BheWxvYWRO
YW1lQXYxOwogICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIGtQYXlsb2Fk
TmFtZUgyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1
OgorICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZUgyNjU7CisjZW5kaWYKICAgICBjYXNlIGtWaWRl
b0NvZGVjTXVsdGlwbGV4OgogICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZU11bHRpcGxleDsKICAg
ICBjYXNlIGtWaWRlb0NvZGVjR2VuZXJpYzoKQEAgLTE0MSw2ICsxNzEsMTAgQEAgVmlkZW9Db2Rl
Y1R5cGUgUGF5bG9hZFN0cmluZ1RvQ29kZWNUeXBlKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKSB7
CiAgICAgcmV0dXJuIGtWaWRlb0NvZGVjQVYxOwogICBpZiAoYWJzbDo6RXF1YWxzSWdub3JlQ2Fz
ZShuYW1lLCBrUGF5bG9hZE5hbWVIMjY0KSkKICAgICByZXR1cm4ga1ZpZGVvQ29kZWNIMjY0Owor
I2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgaWYgKGFic2w6OkVxdWFsc0lnbm9yZUNhc2UobmFtZSwg
a1BheWxvYWROYW1lSDI2NSkpCisgICAgcmV0dXJuIGtWaWRlb0NvZGVjSDI2NTsKKyNlbmRpZgog
ICBpZiAoYWJzbDo6RXF1YWxzSWdub3JlQ2FzZShuYW1lLCBrUGF5bG9hZE5hbWVNdWx0aXBsZXgp
KQogICAgIHJldHVybiBrVmlkZW9Db2RlY011bHRpcGxleDsKICAgcmV0dXJuIGtWaWRlb0NvZGVj
R2VuZXJpYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaApp
bmRleCAzMzBiYmJjZTE5OTA1NDBlNzQ1ZDQ3Y2Y2ZWM2NTdkZTI5NDM0Y2I3Li43NDgzYWZkZmFm
NzlkODcyOGM4YzIzODY5NTViN2Q3NjYxZDVhOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVj
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3Zp
ZGVvX2NvZGVjcy92aWRlb19jb2RlYy5oCkBAIC04NCw2ICs4NCwyMyBAQCBzdHJ1Y3QgVmlkZW9D
b2RlY0gyNjQgewogICB1aW50OF90IG51bWJlck9mVGVtcG9yYWxMYXllcnM7CiB9OwogCisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorc3RydWN0IFZpZGVvQ29kZWNIMjY1IHsKKyAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFZpZGVvQ29kZWNIMjY1JiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBWaWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gISgqdGhp
cyA9PSBvdGhlcik7CisgIH0KKyAgYm9vbCBmcmFtZURyb3BwaW5nT247CisgIGludCBrZXlGcmFt
ZUludGVydmFsOworICBjb25zdCB1aW50OF90KiB2cHNEYXRhOworICBzaXplX3QgdnBzTGVuOwor
ICBjb25zdCB1aW50OF90KiBzcHNEYXRhOworICBzaXplX3Qgc3BzTGVuOworICBjb25zdCB1aW50
OF90KiBwcHNEYXRhOworICBzaXplX3QgcHBzTGVuOworfTsKKyNlbmRpZgorCiAvLyBUcmFuc2xh
dGVzIGZyb20gbmFtZSBvZiBjb2RlYyB0byBjb2RlYyB0eXBlIGFuZCB2aWNlIHZlcnNhLgogUlRD
X0VYUE9SVCBjb25zdCBjaGFyKiBDb2RlY1R5cGVUb1BheWxvYWRTdHJpbmcoVmlkZW9Db2RlY1R5
cGUgdHlwZSk7CiBSVENfRVhQT1JUIFZpZGVvQ29kZWNUeXBlIFBheWxvYWRTdHJpbmdUb0NvZGVj
VHlwZShjb25zdCBzdGQ6OnN0cmluZyYgbmFtZSk7CkBAIC05Miw2ICsxMDksOSBAQCB1bmlvbiBW
aWRlb0NvZGVjVW5pb24gewogICBWaWRlb0NvZGVjVlA4IFZQODsKICAgVmlkZW9Db2RlY1ZQOSBW
UDk7CiAgIFZpZGVvQ29kZWNIMjY0IEgyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBWaWRl
b0NvZGVjSDI2NSBIMjY1OworI2VuZGlmCiB9OwogCiBlbnVtIGNsYXNzIFZpZGVvQ29kZWNNb2Rl
IHsga1JlYWx0aW1lVmlkZW8sIGtTY3JlZW5zaGFyaW5nIH07CkBAIC0xNTksNiArMTc5LDEwIEBA
IGNsYXNzIFJUQ19FWFBPUlQgVmlkZW9Db2RlYyB7CiAgIGNvbnN0IFZpZGVvQ29kZWNWUDkmIFZQ
OSgpIGNvbnN0OwogICBWaWRlb0NvZGVjSDI2NCogSDI2NCgpOwogICBjb25zdCBWaWRlb0NvZGVj
SDI2NCYgSDI2NCgpIGNvbnN0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgVmlkZW9Db2RlY0gy
NjUqIEgyNjUoKTsKKyAgY29uc3QgVmlkZW9Db2RlY0gyNjUmIEgyNjUoKSBjb25zdDsKKyNlbmRp
ZgogCiAgcHJpdmF0ZToKICAgLy8gVE9ETyhodGEpOiBDb25zaWRlciByZXBsYWNpbmcgdGhlIHVu
aW9uIHdpdGggYSBwb2ludGVyIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2Mg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29k
ZWNzL3ZpZGVvX2VuY29kZXIuY2MKaW5kZXggNDQyN2Q2YzFmMTYxMjhkNGE0N2JlMmJkYzEyNWZl
ZDk3NDQxMDUxYS4uYjY2YTRmNDFkMmViNjUyZWQ4ZDM4NzRiOTllNzI4MTQ5ZjUzMzVhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3Zp
ZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYwpAQCAt
NjAsNiArNjAsMjMgQEAgVmlkZW9Db2RlY0gyNjQgVmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0SDI2
NFNldHRpbmdzKCkgewogICByZXR1cm4gaDI2NF9zZXR0aW5nczsKIH0KIAorI2lmbmRlZiBESVNB
QkxFX0gyNjUKK1ZpZGVvQ29kZWNIMjY1IFZpZGVvRW5jb2Rlcjo6R2V0RGVmYXVsdEgyNjVTZXR0
aW5ncygpIHsKKyAgVmlkZW9Db2RlY0gyNjUgaDI2NV9zZXR0aW5nczsKKyAgbWVtc2V0KCZoMjY1
X3NldHRpbmdzLCAwLCBzaXplb2YoaDI2NV9zZXR0aW5ncykpOworCisgIC8vIGgyNjVfc2V0dGlu
Z3MucHJvZmlsZSA9IGtQcm9maWxlQmFzZTsKKyAgaDI2NV9zZXR0aW5ncy5mcmFtZURyb3BwaW5n
T24gPSB0cnVlOworICBoMjY1X3NldHRpbmdzLmtleUZyYW1lSW50ZXJ2YWwgPSAzMDAwOworICBo
MjY1X3NldHRpbmdzLnNwc0RhdGEgPSBudWxscHRyOworICBoMjY1X3NldHRpbmdzLnNwc0xlbiA9
IDA7CisgIGgyNjVfc2V0dGluZ3MucHBzRGF0YSA9IG51bGxwdHI7CisgIGgyNjVfc2V0dGluZ3Mu
cHBzTGVuID0gMDsKKworICByZXR1cm4gaDI2NV9zZXR0aW5nczsKK30KKyNlbmRpZgorCiBWaWRl
b0VuY29kZXI6OlNjYWxpbmdTZXR0aW5nczo6U2NhbGluZ1NldHRpbmdzKCkgPSBkZWZhdWx0Owog
CiBWaWRlb0VuY29kZXI6OlNjYWxpbmdTZXR0aW5nczo6U2NhbGluZ1NldHRpbmdzKEtPZmYpIDog
U2NhbGluZ1NldHRpbmdzKCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92
aWRlb19lbmNvZGVyLmgKaW5kZXggMDY0ZGM4ZmZiNTExM2I4NDYzZWZkZWU4YTM5ZWI1NjJlZTgz
Y2U5Mi4uY2E3YTJkOGY5NWFlYmQ2OTYwYzAwNDBhMGNkZjQ4OWEwYTU2OGI2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2Nv
ZGVjcy92aWRlb19lbmNvZGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmgKQEAgLTMyMCw2ICsz
MjAsOSBAQCBjbGFzcyBSVENfRVhQT1JUIFZpZGVvRW5jb2RlciB7CiAgIHN0YXRpYyBWaWRlb0Nv
ZGVjVlA4IEdldERlZmF1bHRWcDhTZXR0aW5ncygpOwogICBzdGF0aWMgVmlkZW9Db2RlY1ZQOSBH
ZXREZWZhdWx0VnA5U2V0dGluZ3MoKTsKICAgc3RhdGljIFZpZGVvQ29kZWNIMjY0IEdldERlZmF1
bHRIMjY0U2V0dGluZ3MoKTsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0YXRpYyBWaWRlb0Nv
ZGVjSDI2NSBHZXREZWZhdWx0SDI2NVNldHRpbmdzKCk7CisjZW5kaWYKIAogICB2aXJ0dWFsIH5W
aWRlb0VuY29kZXIoKSB7fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2Nv
ZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5jYwppbmRleCA2ZWZjYmYyYmRkYjcyMTIzZjFkYjZj
MmUwMDMwMWM3NTI5NDIzMDNkLi4wMThlOTNiZWI5MTk2NzBmZmZhOTNlMDhjZWMyMjcxYTgzMGFk
NGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9f
ZW5jb2Rlcl9jb25maWcuY2MKQEAgLTkzLDYgKzkzLDEwIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29u
ZmlnOjpFbmNvZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbEVuY29kZXJTcGVjaWZpY1NldHRpbmdz
KAogICAgIEZpbGxWaWRlb0NvZGVjVnA4KGNvZGVjLT5WUDgoKSk7CiAgIH0gZWxzZSBpZiAoY29k
ZWMtPmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY1ZQOSkgewogICAgIEZpbGxWaWRlb0NvZGVjVnA5
KGNvZGVjLT5WUDkoKSk7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB9IGVsc2UgaWYgKGNvZGVj
LT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY1KSB7CisgICAgRmlsbFZpZGVvQ29kZWNIMjY1
KGNvZGVjLT5IMjY1KCkpOworI2VuZGlmCiAgIH0gZWxzZSB7CiAgICAgUlRDX05PVFJFQUNIRUQo
KSA8PCAiRW5jb2RlciBzcGVjaWZpY3Mgc2V0L3VzZWQgZm9yIHVua25vd24gY29kZWMgdHlwZS4i
OwogICB9CkBAIC0xMDMsNiArMTA3LDEzIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNv
ZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbFZpZGVvQ29kZWNIMjY0KAogICBSVENfTk9UUkVBQ0hF
RCgpOwogfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQordm9pZCBWaWRlb0VuY29kZXJDb25maWc6
OkVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjUoCisgICAgVmlkZW9D
b2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAgUlRDX05PVFJFQUNIRUQoKTsKK30K
KyNlbmRpZgorCiB2b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6RW5jb2RlclNwZWNpZmljU2V0dGlu
Z3M6OkZpbGxWaWRlb0NvZGVjVnA4KAogICAgIFZpZGVvQ29kZWNWUDgqIHZwOF9zZXR0aW5ncykg
Y29uc3QgewogICBSVENfTk9UUkVBQ0hFRCgpOwpAQCAtMTIyLDYgKzEzMywxNyBAQCB2b2lkIFZp
ZGVvRW5jb2RlckNvbmZpZzo6SDI2NEVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9D
b2RlY0gyNjQoCiAgICpoMjY0X3NldHRpbmdzID0gc3BlY2lmaWNzXzsKIH0KIAorI2lmbmRlZiBE
SVNBQkxFX0gyNjUKK1ZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRp
bmdzOjpIMjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoCisgICAgY29uc3QgVmlkZW9Db2RlY0gy
NjUmIHNwZWNpZmljcykKKyAgICA6IHNwZWNpZmljc18oc3BlY2lmaWNzKSB7fQorCit2b2lkIFZp
ZGVvRW5jb2RlckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9D
b2RlY0gyNjUoCisgICAgVmlkZW9Db2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAg
KmgyNjVfc2V0dGluZ3MgPSBzcGVjaWZpY3NfOworfQorI2VuZGlmCisKIFZpZGVvRW5jb2RlckNv
bmZpZzo6VnA4RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OlZwOEVuY29kZXJTcGVjaWZpY1NldHRp
bmdzKAogICAgIGNvbnN0IFZpZGVvQ29kZWNWUDgmIHNwZWNpZmljcykKICAgICA6IHNwZWNpZmlj
c18oc3BlY2lmaWNzKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5oIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19lbmNvZGVyX2NvbmZpZy5oCmluZGV4IGVmOGRiMTAwYTMyYTIwNWJiZDlkNmZlNzli
MjUzNDJmOTMwYzRlMDUuLmQ1NTk0ZjM2NjQxYTI1YzQzMDAwYTYzYzg1NjBkZjZhZjcwOGUyOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Fw
aS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29k
ZXJfY29uZmlnLmgKQEAgLTg0LDYgKzg0LDkgQEAgY2xhc3MgVmlkZW9FbmNvZGVyQ29uZmlnIHsK
ICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDgoVmlkZW9Db2RlY1ZQOCogdnA4X3Nl
dHRpbmdzKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDkoVmlkZW9D
b2RlY1ZQOSogdnA5X3NldHRpbmdzKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVv
Q29kZWNIMjY0KFZpZGVvQ29kZWNIMjY0KiBoMjY0X3NldHRpbmdzKSBjb25zdDsKKyNpZm5kZWYg
RElTQUJMRV9IMjY1CisgICAgdmlydHVhbCB2b2lkIEZpbGxWaWRlb0NvZGVjSDI2NShWaWRlb0Nv
ZGVjSDI2NSogaDI2NV9zZXR0aW5ncykgY29uc3Q7CisjZW5kaWYKIAogICAgcHJpdmF0ZToKICAg
ICB+RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoKSBvdmVycmlkZSB7fQpAQCAtOTksNiArMTAyLDE3
IEBAIGNsYXNzIFZpZGVvRW5jb2RlckNvbmZpZyB7CiAgICAgVmlkZW9Db2RlY0gyNjQgc3BlY2lm
aWNzXzsKICAgfTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgY2xhc3MgSDI2NUVuY29kZXJT
cGVjaWZpY1NldHRpbmdzIDogcHVibGljIEVuY29kZXJTcGVjaWZpY1NldHRpbmdzIHsKKyAgIHB1
YmxpYzoKKyAgICBleHBsaWNpdCBIMjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3QgVmlk
ZW9Db2RlY0gyNjUmIHNwZWNpZmljcyk7CisgICAgdm9pZCBGaWxsVmlkZW9Db2RlY0gyNjUoVmlk
ZW9Db2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IG92ZXJyaWRlOworCisgICBwcml2YXRl
OgorICAgIFZpZGVvQ29kZWNIMjY1IHNwZWNpZmljc187CisgIH07CisjZW5kaWYKKwogICBjbGFz
cyBWcDhFbmNvZGVyU3BlY2lmaWNTZXR0aW5ncyA6IHB1YmxpYyBFbmNvZGVyU3BlY2lmaWNTZXR0
aW5ncyB7CiAgICBwdWJsaWM6CiAgICAgZXhwbGljaXQgVnA4RW5jb2RlclNwZWNpZmljU2V0dGlu
Z3MoY29uc3QgVmlkZW9Db2RlY1ZQOCYgc3BlY2lmaWNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWlsZC5n
bmkgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9idWlsZF9vdmVy
cmlkZXMvYnVpbGQuZ25pCmluZGV4IDY2OTA0NGRiODFjYjIxODViZTM3NGIwYjEwMDI3MDkzYzU2
ODNjMzUuLjYwMjVjZGRkMDQ3ZTA5YjFkMGQyNWUwMzQxYTVmY2M1OTU5NzAyODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJy
aWRlcy9idWlsZC5nbmkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvYnVpbGRfb3ZlcnJpZGVzL2J1aWxkLmduaQpAQCAtMzUsNiArMzUsMTIgQEAgbGludF9z
dXBwcmVzc2lvbnNfZmlsZSA9ICIvL3Rvb2xzX3dlYnJ0Yy9hbmRyb2lkL3N1cHByZXNzaW9ucy54
bWwiCiAjIHNvIHdlIGp1c3QgaWdub3JlIHRoYXQgYXNzZXJ0LiBTZWUgaHR0cHM6Ly9jcmJ1Zy5j
b20vNjQ4OTQ4IGZvciBtb3JlIGluZm8uCiBpZ25vcmVfZWxmMzJfbGltaXRhdGlvbnMgPSB0cnVl
CiAKK2lmIChpc193aW4gfHwgaXNfaW9zIHx8IGlzX2FuZHJvaWQpIHsKKyAgcnRjX3VzZV9oMjY1
ID0gdHJ1ZQorfSBlbHNlIHsKKyAgcnRjX3VzZV9oMjY1ID0gZmFsc2UKK30KKwogIyBVc2UgYnVu
ZGxlZCBoZXJtZXRpYyBYY29kZSBpbnN0YWxsYXRpb24gbWFpbnRhaW50ZWQgYnkgQ2hyb21pdW0s
CiAjIGV4Y2VwdCBmb3IgbG9jYWwgaU9TIGJ1aWxkcyB3aGVyZSBpdCdzIHVuc3VwcG9ydGVkLgog
aWYgKGhvc3Rfb3MgPT0gIm1hYyIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NhbGwvcnRwX3BheWxvYWRfcGFyYW1zLmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJh
bXMuY2MKaW5kZXggMzFjYjc0M2Q5ZDkzNjc2ZTFjNmVlNjg1MDliNjU1ODVhZjE0NGUwNC4uM2Fh
ZGY4OWViODNlODY0NDBiZmZhZmE2MmU2NDNkMzM3MmE3MWM1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJh
bXMuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2Fs
bC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKQEAgLTEwNSw2ICsxMDUsMTQgQEAgdm9pZCBQb3B1bGF0
ZVJ0cFdpdGhDb2RlY1NwZWNpZmljcyhjb25zdCBDb2RlY1NwZWNpZmljSW5mbyYgaW5mbywKICAg
ICAgIH0KICAgICAgIHJldHVybjsKICAgICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNh
c2Uga1ZpZGVvQ29kZWNIMjY1OiB7CisgICAgICBhdXRvIGgyNjVfaGVhZGVyID0gcnRwLT52aWRl
b190eXBlX2hlYWRlci5lbXBsYWNlPFJUUFZpZGVvSGVhZGVySDI2NT4oKTsKKyAgICAgIGgyNjVf
aGVhZGVyLnBhY2tldGl6YXRpb25fbW9kZSA9CisgICAgICAgICAgaW5mby5jb2RlY1NwZWNpZmlj
LkgyNjUucGFja2V0aXphdGlvbl9tb2RlOworICAgIH0KKyAgICByZXR1cm47CisjZW5kaWYKICAg
ICBjYXNlIGtWaWRlb0NvZGVjTXVsdGlwbGV4OgogICAgIGNhc2Uga1ZpZGVvQ29kZWNHZW5lcmlj
OgogICAgICAgcnRwLT5jb2RlYyA9IGtWaWRlb0NvZGVjR2VuZXJpYzsKQEAgLTMwMCw2ICszMDgs
OSBAQCB2b2lkIFJ0cFBheWxvYWRQYXJhbXM6OlNldEdlbmVyaWMoY29uc3QgQ29kZWNTcGVjaWZp
Y0luZm8qIGNvZGVjX3NwZWNpZmljX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgaXNfa2V5
ZnJhbWUsIHJ0cF92aWRlb19oZWFkZXIpOwogICAgICAgfQogICAgICAgcmV0dXJuOworI2lmbmRl
ZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIFZpZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY0gyNjU6
CisjZW5kaWYKICAgICBjYXNlIFZpZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY011bHRpcGxleDoK
ICAgICAgIHJldHVybjsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduCmluZGV4IGRk
ZjRjMmQ0OTU5YWVkZTQxOGQyNWQ1YzhlN2I4MGU1MzYwODM1MGIuLjdkNDg5NmVkN2NlODhiNTM0
NWZkYWM4MDQ5NGJmNWZmOWZlMjcwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbgorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vQlVJTEQuZ24K
QEAgLTQxLDYgKzQxLDE5IEBAIHJ0Y19saWJyYXJ5KCJjb21tb25fdmlkZW8iKSB7CiAgICAgInZp
ZGVvX3JlbmRlcl9mcmFtZXMuaCIsCiAgIF0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAg
c291cmNlcyArPSBbCisgICAgICAiaDI2NS9oMjY1X2NvbW1vbi5jYyIsCisgICAgICAiaDI2NS9o
MjY1X2NvbW1vbi5oIiwKKyAgICAgICJoMjY1L2gyNjVfcHBzX3BhcnNlci5jYyIsCisgICAgICAi
aDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIsCisgICAgICAiaDI2NS9oMjY1X3Nwc19wYXJzZXIuY2Mi
LAorICAgICAgImgyNjUvaDI2NV9zcHNfcGFyc2VyLmgiLAorICAgICAgImgyNjUvaDI2NV92cHNf
cGFyc2VyLmNjIiwKKyAgICAgICJoMjY1L2gyNjVfdnBzX3BhcnNlci5oIiwKKyAgICBdCisgIH0K
KwogICBkZXBzID0gWwogICAgICIuLi9hcGk6c2NvcGVkX3JlZnB0ciIsCiAgICAgIi4uL2FwaS90
YXNrX3F1ZXVlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21t
b24uY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmIyY2FjMjI3NTlkOGJkYmJmZmJmMGY3MTRlOTE0N2U2NDIzYjYz
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjCkBAIC0wLDAgKzEsMTEwIEBA
CisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFu
IGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91
bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1
dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gy
NjVfY29tbW9uLmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworbmFtZXNwYWNlIEgyNjUgeworCitj
b25zdCB1aW50OF90IGtOYWx1VHlwZU1hc2sgPSAweDdFOworCitzdGQ6OnZlY3RvcjxOYWx1SW5k
ZXg+IEZpbmROYWx1SW5kaWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUpIHsKKyAgLy8gVGhp
cyBpcyBzb3J0YSBsaWtlIEJveWVyLU1vb3JlLCBidXQgd2l0aCBvbmx5IHRoZSBmaXJzdCBvcHRp
bWl6YXRpb24gc3RlcDoKKyAgLy8gZ2l2ZW4gYSAzLWJ5dGUgc2VxdWVuY2Ugd2UncmUgbG9va2lu
ZyBhdCwgaWYgdGhlIDNyZCBieXRlIGlzbid0IDEgb3IgMCwKKyAgLy8gc2tpcCBhaGVhZCB0byB0
aGUgbmV4dCAzLWJ5dGUgc2VxdWVuY2UuIDBzIGFuZCAxcyBhcmUgcmVsYXRpdmVseSByYXJlLCBz
bworICAvLyB0aGlzIHdpbGwgc2tpcCB0aGUgbWFqb3JpdHkgb2YgcmVhZHMvY2hlY2tzLgorICBz
dGQ6OnZlY3RvcjxOYWx1SW5kZXg+IHNlcXVlbmNlczsKKyAgaWYgKGJ1ZmZlcl9zaXplIDwga05h
bHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXplKQorICAgIHJldHVybiBzZXF1ZW5jZXM7CisKKyAgY29u
c3Qgc2l6ZV90IGVuZCA9IGJ1ZmZlcl9zaXplIC0ga05hbHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXpl
OworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVuZDspIHsKKyAgICBpZiAoYnVmZmVyW2kgKyAy
XSA+IDEpIHsKKyAgICAgIGkgKz0gMzsKKyAgICB9IGVsc2UgaWYgKGJ1ZmZlcltpICsgMl0gPT0g
MSAmJiBidWZmZXJbaSArIDFdID09IDAgJiYgYnVmZmVyW2ldID09IDApIHsKKyAgICAgIC8vIFdl
IGZvdW5kIGEgc3RhcnQgc2VxdWVuY2UsIG5vdyBjaGVjayBpZiBpdCB3YXMgYSAzIG9mIDQgYnl0
ZSBvbmUuCisgICAgICBOYWx1SW5kZXggaW5kZXggPSB7aSwgaSArIDMsIDB9OworICAgICAgaWYg
KGluZGV4LnN0YXJ0X29mZnNldCA+IDAgJiYgYnVmZmVyW2luZGV4LnN0YXJ0X29mZnNldCAtIDFd
ID09IDApCisgICAgICAgIC0taW5kZXguc3RhcnRfb2Zmc2V0OworCisgICAgICAvLyBVcGRhdGUg
bGVuZ3RoIG9mIHByZXZpb3VzIGVudHJ5LgorICAgICAgYXV0byBpdCA9IHNlcXVlbmNlcy5yYmVn
aW4oKTsKKyAgICAgIGlmIChpdCAhPSBzZXF1ZW5jZXMucmVuZCgpKQorICAgICAgICBpdC0+cGF5
bG9hZF9zaXplID0gaW5kZXguc3RhcnRfb2Zmc2V0IC0gaXQtPnBheWxvYWRfc3RhcnRfb2Zmc2V0
OworCisgICAgICBzZXF1ZW5jZXMucHVzaF9iYWNrKGluZGV4KTsKKworICAgICAgaSArPSAzOwor
ICAgIH0gZWxzZSB7CisgICAgICArK2k7CisgICAgfQorICB9CisKKyAgLy8gVXBkYXRlIGxlbmd0
aCBvZiBsYXN0IGVudHJ5LCBpZiBhbnkuCisgIGF1dG8gaXQgPSBzZXF1ZW5jZXMucmJlZ2luKCk7
CisgIGlmIChpdCAhPSBzZXF1ZW5jZXMucmVuZCgpKQorICAgIGl0LT5wYXlsb2FkX3NpemUgPSBi
dWZmZXJfc2l6ZSAtIGl0LT5wYXlsb2FkX3N0YXJ0X29mZnNldDsKKworICByZXR1cm4gc2VxdWVu
Y2VzOworfQorCitOYWx1VHlwZSBQYXJzZU5hbHVUeXBlKHVpbnQ4X3QgZGF0YSkgeworICByZXR1
cm4gc3RhdGljX2Nhc3Q8TmFsdVR5cGU+KChkYXRhICYga05hbHVUeXBlTWFzaykgPj4gMSk7Cit9
CisKK3N0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFBhcnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBz
aXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dDsKKyAgb3V0LnJlc2Vy
dmUobGVuZ3RoKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDspIHsKKyAgICAv
LyBCZSBjYXJlZnVsIGFib3V0IG92ZXIvdW5kZXJmbG93IGhlcmUuIGJ5dGVfbGVuZ3RoXyAtIDMg
Y2FuIHVuZGVyZmxvdywgYW5kCisgICAgLy8gaSArIDMgY2FuIG92ZXJmbG93LCBidXQgYnl0ZV9s
ZW5ndGhfIC0gaSBjYW4ndCwgYmVjYXVzZSBpIDwgYnl0ZV9sZW5ndGhfCisgICAgLy8gYWJvdmUs
IGFuZCB0aGF0IGV4cHJlc3Npb24gd2lsbCBwcm9kdWNlIHRoZSBudW1iZXIgb2YgYnl0ZXMgbGVm
dCBpbgorICAgIC8vIHRoZSBzdHJlYW0gaW5jbHVkaW5nIHRoZSBieXRlIGF0IGkuCisgICAgaWYg
KGxlbmd0aCAtIGkgPj0gMyAmJiAhZGF0YVtpXSAmJiAhZGF0YVtpICsgMV0gJiYgZGF0YVtpICsg
Ml0gPT0gMykgeworICAgICAgLy8gVHdvIHJic3AgYnl0ZXMuCisgICAgICBvdXQucHVzaF9iYWNr
KGRhdGFbaSsrXSk7CisgICAgICBvdXQucHVzaF9iYWNrKGRhdGFbaSsrXSk7CisgICAgICAvLyBT
a2lwIHRoZSBlbXVsYXRpb24gYnl0ZS4KKyAgICAgIGkrKzsKKyAgICB9IGVsc2UgeworICAgICAg
Ly8gU2luZ2xlIHJic3AgYnl0ZS4KKyAgICAgIG91dC5wdXNoX2JhY2soZGF0YVtpKytdKTsKKyAg
ICB9CisgIH0KKyAgcmV0dXJuIG91dDsKK30KKwordm9pZCBXcml0ZVJic3AoY29uc3QgdWludDhf
dCogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIHJ0Yzo6QnVmZmVyKiBkZXN0aW5hdGlvbikgeworICBz
dGF0aWMgY29uc3QgdWludDhfdCBrWmVyb3NJblN0YXJ0U2VxdWVuY2UgPSAyOworICBzdGF0aWMg
Y29uc3QgdWludDhfdCBrRW11bGF0aW9uQnl0ZSA9IDB4MDN1OworICBzaXplX3QgbnVtX2NvbnNl
Y3V0aXZlX3plcm9zID0gMDsKKyAgZGVzdGluYXRpb24tPkVuc3VyZUNhcGFjaXR5KGRlc3RpbmF0
aW9uLT5zaXplKCkgKyBsZW5ndGgpOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3Ro
OyArK2kpIHsKKyAgICB1aW50OF90IGJ5dGUgPSBieXRlc1tpXTsKKyAgICBpZiAoYnl0ZSA8PSBr
RW11bGF0aW9uQnl0ZSAmJgorICAgICAgICBudW1fY29uc2VjdXRpdmVfemVyb3MgPj0ga1plcm9z
SW5TdGFydFNlcXVlbmNlKSB7CisgICAgICAvLyBOZWVkIHRvIGVzY2FwZS4KKyAgICAgIGRlc3Rp
bmF0aW9uLT5BcHBlbmREYXRhKGtFbXVsYXRpb25CeXRlKTsKKyAgICAgIG51bV9jb25zZWN1dGl2
ZV96ZXJvcyA9IDA7CisgICAgfQorICAgIGRlc3RpbmF0aW9uLT5BcHBlbmREYXRhKGJ5dGUpOwor
ICAgIGlmIChieXRlID09IDApIHsKKyAgICAgICsrbnVtX2NvbnNlY3V0aXZlX3plcm9zOworICAg
IH0gZWxzZSB7CisgICAgICBudW1fY29uc2VjdXRpdmVfemVyb3MgPSAwOworICAgIH0KKyAgfQor
fQorCit9ICAvLyBuYW1lc3BhY2UgSDI2NQorfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9jb21tb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdi
YjI3NzRlZTEwYWIxM2U5MjI1ZDQ0MDVkNTE2OTNhYzcxMDQxMwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9o
MjY1L2gyNjVfY29tbW9uLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChj
KSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls
ZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0
aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1
YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBB
VEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3Vu
ZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAq
LworCisjaWZuZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfQ09NTU9OX0hfCisjZGVmaW5lIENP
TU1PTl9WSURFT19IMjY1X0gyNjVfQ09NTU9OX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5j
bHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSAicnRjX2Jhc2UvYnVmZmVyLmgiCisKK25hbWVzcGFj
ZSB3ZWJydGMgeworCituYW1lc3BhY2UgSDI2NSB7CisvLyBUaGUgc2l6ZSBvZiBhIGZ1bGwgTkFM
VSBzdGFydCBzZXF1ZW5jZSB7MCAwIDAgMX0sIHVzZWQgZm9yIHRoZSBmaXJzdCBOQUxVCisvLyBv
ZiBhbiBhY2Nlc3MgdW5pdCwgYW5kIGZvciBTUFMgYW5kIFBQUyBibG9ja3MuCitjb25zdCBzaXpl
X3Qga05hbHVMb25nU3RhcnRTZXF1ZW5jZVNpemUgPSA0OworCisvLyBUaGUgc2l6ZSBvZiBhIHNo
b3J0ZW5lZCBOQUxVIHN0YXJ0IHNlcXVlbmNlIHswIDAgMX0sIHRoYXQgbWF5IGJlIHVzZWQgaWYK
Ky8vIG5vdCB0aGUgZmlyc3QgTkFMVSBvZiBhbiBhY2Nlc3MgdW5pdCBvciBhbiBTUFMgb3IgUFBT
IGJsb2NrLgorY29uc3Qgc2l6ZV90IGtOYWx1U2hvcnRTdGFydFNlcXVlbmNlU2l6ZSA9IDM7CisK
Ky8vIFRoZSBzaXplIG9mIHRoZSBOQUxVIHR5cGUgYnl0ZSAoMSkuCitjb25zdCBzaXplX3Qga05h
bHVUeXBlU2l6ZSA9IDE7CisKK2VudW0gTmFsdVR5cGUgOiB1aW50OF90IHsKKyAga1RyYWlsTiA9
IDAsCisgIGtUcmFpbFIgPSAxLAorICBrVHNhTiA9IDIsCisgIGtUc2FSID0gMywKKyAga1N0c2FO
ID0gNCwKKyAga1N0c2FSID0gNSwKKyAga1JhZGxOID0gNiwKKyAga1JhZGxSID0gNywKKyAga0Js
YVdMcCA9IDE2LAorICBrQmxhV1JhZGwgPSAxNywKKyAga0JsYU5McCA9IDE4LAorICBrSWRyV1Jh
ZGwgPSAxOSwKKyAga0lkck5McCA9IDIwLAorICBrQ3JhID0gMjEsCisgIGtSc3ZJcmFwVmNsMjMg
PSAyMywKKyAga1ZwcyA9IDMyLAorICBrU3BzID0gMzMsCisgIGtQcHMgPSAzNCwKKyAga0F1ZCA9
IDM1LAorICBrUHJlZml4U2VpID0gMzksCisgIGtTdWZmaXhTZWkgPSA0MCwKKyAga0FQID0gNDgs
CisgIGtGVSA9IDQ5Cit9OworCitlbnVtIFNsaWNlVHlwZSA6IHVpbnQ4X3QgeyBrUCA9IDAsIGtC
ID0gMSwga0kgPSAyLCBrU3AgPSAzLCBrU2kgPSA0IH07CisKK3N0cnVjdCBOYWx1SW5kZXggewor
ICAvLyBTdGFydCBpbmRleCBvZiBOQUxVLCBpbmNsdWRpbmcgc3RhcnQgc2VxdWVuY2UuCisgIHNp
emVfdCBzdGFydF9vZmZzZXQ7CisgIC8vIFN0YXJ0IGluZGV4IG9mIE5BTFUgcGF5bG9hZCwgdHlw
aWNhbGx5IHR5cGUgaGVhZGVyLgorICBzaXplX3QgcGF5bG9hZF9zdGFydF9vZmZzZXQ7CisgIC8v
IExlbmd0aCBvZiBOQUxVIHBheWxvYWQsIGluIGJ5dGVzLCBjb3VudGluZyBmcm9tIHBheWxvYWRf
c3RhcnRfb2Zmc2V0LgorICBzaXplX3QgcGF5bG9hZF9zaXplOworfTsKKworLy8gUmV0dXJucyBh
IHZlY3RvciBvZiB0aGUgTkFMVSBpbmRpY2VzIGluIHRoZSBnaXZlbiBidWZmZXIuCitzdGQ6OnZl
Y3RvcjxOYWx1SW5kZXg+IEZpbmROYWx1SW5kaWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUp
OworCisvLyBHZXQgdGhlIE5BTCB0eXBlIGZyb20gdGhlIGhlYWRlciBieXRlIGltbWVkaWF0ZWx5
IGZvbGxvd2luZyBzdGFydCBzZXF1ZW5jZS4KK05hbHVUeXBlIFBhcnNlTmFsdVR5cGUodWludDhf
dCBkYXRhKTsKKworLy8gTWV0aG9kcyBmb3IgcGFyc2luZyBhbmQgd3JpdGluZyBSQlNQLiBTZWUg
c2VjdGlvbiA3LjQuMiBvZiB0aGUgSDI2NSBzcGVjLgorLy8KKy8vIFRoZSBmb2xsb3dpbmcgc2Vx
dWVuY2VzIGFyZSBpbGxlZ2FsLCBhbmQgbmVlZCB0byBiZSBlc2NhcGVkIHdoZW4gZW5jb2Rpbmc6
CisvLyAwMCAwMCAwMCAtPiAwMCAwMCAwMyAwMAorLy8gMDAgMDAgMDEgLT4gMDAgMDAgMDMgMDEK
Ky8vIDAwIDAwIDAyIC0+IDAwIDAwIDAzIDAyCisvLyBBbmQgdGhpbmdzIGluIHRoZSBzb3VyY2Ug
dGhhdCBsb29rIGxpa2UgdGhlIGVtdWxhdGlvbiBieXRlIHBhdHRlcm4gKDAwIDAwIDAzKQorLy8g
bmVlZCB0byBoYXZlIGFuIGV4dHJhIGVtdWxhdGlvbiBieXRlIGFkZGVkLCBzbyBpdCdzIHJlbW92
ZWQgd2hlbiBkZWNvZGluZzoKKy8vIDAwIDAwIDAzIC0+IDAwIDAwIDAzIDAzCisvLworLy8gRGVj
b2RpbmcgaXMgc2ltcGx5IGEgbWF0dGVyIG9mIGZpbmRpbmcgYW55IDAwIDAwIDAzIHNlcXVlbmNl
IGFuZCByZW1vdmluZworLy8gdGhlIDAzIGVtdWxhdGlvbiBieXRlLgorCisvLyBQYXJzZSB0aGUg
Z2l2ZW4gZGF0YSBhbmQgcmVtb3ZlIGFueSBlbXVsYXRpb24gYnl0ZSBlc2NhcGluZy4KK3N0ZDo6
dmVjdG9yPHVpbnQ4X3Q+IFBhcnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVu
Z3RoKTsKKworLy8gV3JpdGUgdGhlIGdpdmVuIGRhdGEgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZl
ciwgaW5zZXJ0aW5nIGFuZCBlbXVsYXRpb24KKy8vIGJ5dGVzIGluIG9yZGVyIHRvIGVzY2FwZSBh
bnkgZGF0YSB0aGUgY291bGQgYmUgaW50ZXJwcmV0ZWQgYXMgYSBzdGFydAorLy8gc2VxdWVuY2Uu
Cit2b2lkIFdyaXRlUmJzcChjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IGxlbmd0aCwgcnRj
OjpCdWZmZXIqIGRlc3RpbmF0aW9uKTsKK30gIC8vIG5hbWVzcGFjZSBIMjY1Cit9ICAvLyBuYW1l
c3BhY2Ugd2VicnRjCisKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9DT01NT05f
SF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNl
ci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40MTg0MTFjZWQzMjdjODRhNjVlYzkzZjRkZmM3YmU5MmNmZjJlMjZi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMjA5
IEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9y
cy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUg
aXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5k
IGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUu
IEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUg
Zm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0
IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9v
dCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1
L2gyNjVfcHBzX3BhcnNlci5oIgorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rv
cj4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisjaW5jbHVk
ZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJydGNfYmFzZS9i
aXRfYnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgorCisjZGVmaW5lIFJF
VFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAg
XAorICAgIHJldHVybiBhYnNsOjpudWxsb3B0OyAgICAgICAgXAorICB9CisKK25hbWVzcGFjZSB7
Citjb25zdCBpbnQga01heFBpY0luaXRRcERlbHRhVmFsdWUgPSAyNTsKK2NvbnN0IGludCBrTWlu
UGljSW5pdFFwRGVsdGFWYWx1ZSA9IC0yNjsKK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ug
d2VicnRjIHsKKworLy8gR2VuZXJhbCBub3RlOiB0aGlzIGlzIGJhc2VkIG9mZiB0aGUgMDIvMjAx
OCB2ZXJzaW9uIG9mIHRoZSBILjI2NSBzdGFuZGFyZC4KKy8vIFlvdSBjYW4gZmluZCBpdCBvbiB0
aGlzIHBhZ2U6CisvLyBodHRwOi8vd3d3Lml0dS5pbnQvcmVjL1QtUkVDLUguMjY1CisKK2Fic2w6
Om9wdGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZVBw
cygKKyAgICBjb25zdCB1aW50OF90KiBkYXRhLAorICAgIHNpemVfdCBsZW5ndGgpIHsKKyAgLy8g
Rmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZm
ZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAw
eDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMu
MSBvZiB0aGUgSC4yNjQgc3RhbmRhcmQuCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2Vk
X2J1ZmZlciA9IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZl
ciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXpl
KCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5hbCgmYml0X2J1ZmZlcik7Cit9CisKK2Jvb2wgSDI2
NVBwc1BhcnNlcjo6UGFyc2VQcHNJZHMoY29uc3QgdWludDhfdCogZGF0YSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludDMyX3QqIHBwc19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludDMyX3QqIHNwc19pZCkgeworICBSVENfRENIRUNLKHBwc19pZCk7CisgIFJUQ19E
Q0hFQ0soc3BzX2lkKTsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNp
Y2FsbHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUg
bGFzdCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQg
aW4KKyAgLy8gc2VjdGlvbiA3LjMuMSBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIHN0ZDo6dmVj
dG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5n
dGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCks
IHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VQcHNJZHNJbnRlcm5hbCgm
Yml0X2J1ZmZlciwgcHBzX2lkLCBzcHNfaWQpOworfQorCithYnNsOjpvcHRpb25hbDx1aW50MzJf
dD4gSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3AoCisg
ICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoLAorICAgIHVpbnQ4X3Qg
bmFsdV90eXBlKSB7CisgIHJ0Yzo6Qml0QnVmZmVyIHNsaWNlX3JlYWRlcihkYXRhLCBsZW5ndGgp
OworCisgIC8vIGZpcnN0X3NsaWNlX3NlZ21lbnRfaW5fcGljX2ZsYWc6IHUoMSkKKyAgdWludDMy
X3QgZmlyc3Rfc2xpY2Vfc2VnbWVudF9pbl9waWNfZmxhZyA9IDA7CisgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKAorICAgICAgc2xpY2VfcmVhZGVyLlJlYWRCaXRzKCZmaXJzdF9zbGljZV9zZWdtZW50
X2luX3BpY19mbGFnLCAxKSk7CisKKyAgaWYgKG5hbHVfdHlwZSA+PSBIMjY1OjpOYWx1VHlwZTo6
a0JsYVdMcCAmJgorICAgICAgbmFsdV90eXBlIDw9IEgyNjU6Ok5hbHVUeXBlOjprUnN2SXJhcFZj
bDIzKSB7CisgICAgLy8gbm9fb3V0cHV0X29mX3ByaW9yX3BpY3NfZmxhZzogdSgxKQorICAgIFJF
VFVSTl9FTVBUWV9PTl9GQUlMKHNsaWNlX3JlYWRlci5Db25zdW1lQml0cygxKSk7CisgIH0KKwor
ICAvLyBzbGljZV9waWNfcGFyYW1ldGVyX3NldF9pZDogdWUodikKKyAgdWludDMyX3Qgc2xpY2Vf
cGljX3BhcmFtZXRlcl9zZXRfaWQgPSAwOworICBpZiAoIXNsaWNlX3JlYWRlci5SZWFkRXhwb25l
bnRpYWxHb2xvbWIoJnNsaWNlX3BpY19wYXJhbWV0ZXJfc2V0X2lkKSkKKyAgICByZXR1cm4gYWJz
bDo6bnVsbG9wdDsKKworICByZXR1cm4gc2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQ7Cit9CisK
K2Fic2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQ
YXJzZUludGVybmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKSB7CisgIFBwc1N0
YXRlIHBwczsKKworICBSRVRVUk5fRU1QVFlfT05fRkFJTChQYXJzZVBwc0lkc0ludGVybmFsKGJp
dF9idWZmZXIsICZwcHMuaWQsICZwcHMuc3BzX2lkKSk7CisKKyAgdWludDMyX3QgYml0c190bXA7
CisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworICAvLyBlbnRyb3B5X2NvZGluZ19tb2RlX2Zs
YWc6IHUoMSkKKyAgdWludDMyX3QgZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnOworICBSRVRVUk5f
RU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmZW50cm9weV9jb2RpbmdfbW9kZV9m
bGFnLCAxKSk7CisgIHBwcy5lbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWcgPSBlbnRyb3B5X2NvZGlu
Z19tb2RlX2ZsYWcgIT0gMDsKKyAgLy8gYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9w
cmVzZW50X2ZsYWc6IHUoMSkKKyAgdWludDMyX3QgYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9m
cmFtZV9wcmVzZW50X2ZsYWc7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0X2J1
ZmZlci0+UmVhZEJpdHMoJmJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9m
bGFnLCAxKSk7CisgIHBwcy5ib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRf
ZmxhZyA9CisgICAgICBib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxh
ZyAhPSAwOworCisgIC8vIG51bV9zbGljZV9ncm91cHNfbWludXMxOiB1ZSh2KQorICB1aW50MzJf
dCBudW1fc2xpY2VfZ3JvdXBzX21pbnVzMTsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAg
ICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJm51bV9zbGljZV9ncm91cHNfbWlu
dXMxKSk7CisgIGlmIChudW1fc2xpY2VfZ3JvdXBzX21pbnVzMSA+IDApIHsKKyAgICB1aW50MzJf
dCBzbGljZV9ncm91cF9tYXBfdHlwZTsKKyAgICAvLyBzbGljZV9ncm91cF9tYXBfdHlwZTogdWUo
dikKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgYml0X2J1ZmZlci0+UmVhZEV4
cG9uZW50aWFsR29sb21iKCZzbGljZV9ncm91cF9tYXBfdHlwZSkpOworICAgIGlmIChzbGljZV9n
cm91cF9tYXBfdHlwZSA9PSAwKSB7CisgICAgICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAwOyBp
X2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNfbWludXMxOworICAgICAgICAgICArK2lfZ3JvdXAp
IHsKKyAgICAgICAgLy8gcnVuX2xlbmd0aF9taW51czFbaUdyb3VwXTogdWUodikKKyAgICAgICAg
UkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25l
bnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChz
bGljZV9ncm91cF9tYXBfdHlwZSA9PSAxKSB7CisgICAgICAvLyBUT0RPKHNwcmFuZyk6IEltcGxl
bWVudCBzdXBwb3J0IGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisgICAgICAv
LyBTZWUgOC4yLjIuMiBTcGVjaWZpY2F0aW9uIGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFw
IHR5cGUuCisgICAgfSBlbHNlIGlmIChzbGljZV9ncm91cF9tYXBfdHlwZSA9PSAyKSB7CisgICAg
ICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAwOyBpX2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNf
bWludXMxOworICAgICAgICAgICArK2lfZ3JvdXApIHsKKyAgICAgICAgLy8gdG9wX2xlZnRbaUdy
b3VwXTogdWUodikKKyAgICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgICBi
aXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAg
ICAgIC8vIGJvdHRvbV9yaWdodFtpR3JvdXBdOiB1ZSh2KQorICAgICAgICBSRVRVUk5fRU1QVFlf
T05fRkFJTCgKKyAgICAgICAgICAgIGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigm
Z29sb21iX2lnbm9yZWQpKTsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21h
cF90eXBlID09IDMgfHwgc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0gNCB8fAorICAgICAgICAgICAg
ICAgc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0gNSkgeworICAgICAgLy8gc2xpY2VfZ3JvdXBfY2hh
bmdlX2RpcmVjdGlvbl9mbGFnOiB1KDEpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRf
YnVmZmVyLT5SZWFkQml0cygmYml0c190bXAsIDEpKTsKKyAgICAgIC8vIHNsaWNlX2dyb3VwX2No
YW5nZV9yYXRlX21pbnVzMTogdWUodikKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9i
dWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgICB9IGVs
c2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBlID09IDYpIHsKKyAgICAgIC8vIHBpY19zaXplX2lu
X21hcF91bml0c19taW51czE6IHVlKHYpCisgICAgICB1aW50MzJfdCBwaWNfc2l6ZV9pbl9tYXBf
dW5pdHNfbWludXMxOworICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgYml0
X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWlu
dXMxKSk7CisgICAgICB1aW50MzJfdCBzbGljZV9ncm91cF9pZF9iaXRzID0gMDsKKyAgICAgIHVp
bnQzMl90IG51bV9zbGljZV9ncm91cHMgPSBudW1fc2xpY2VfZ3JvdXBzX21pbnVzMSArIDE7Cisg
ICAgICAvLyBJZiBudW1fc2xpY2VfZ3JvdXBzIGlzIG5vdCBhIHBvd2VyIG9mIHR3byBhbiBhZGRp
dGlvbmFsIGJpdCBpcyByZXF1aXJlZAorICAgICAgLy8gdG8gYWNjb3VudCBmb3IgdGhlIGNlaWwo
KSBvZiBsb2cyKCkgYmVsb3cuCisgICAgICBpZiAoKG51bV9zbGljZV9ncm91cHMgJiAobnVtX3Ns
aWNlX2dyb3VwcyAtIDEpKSAhPSAwKQorICAgICAgICArK3NsaWNlX2dyb3VwX2lkX2JpdHM7Cisg
ICAgICB3aGlsZSAobnVtX3NsaWNlX2dyb3VwcyA+IDApIHsKKyAgICAgICAgbnVtX3NsaWNlX2dy
b3VwcyA+Pj0gMTsKKyAgICAgICAgKytzbGljZV9ncm91cF9pZF9iaXRzOworICAgICAgfQorICAg
ICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8PSBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMx
OyBpKyspIHsKKyAgICAgICAgLy8gc2xpY2VfZ3JvdXBfaWRbaV06IHUodikKKyAgICAgICAgLy8g
UmVwcmVzZW50ZWQgYnkgY2VpbChsb2cyKG51bV9zbGljZV9ncm91cHNfbWludXMxICsgMSkpIGJp
dHMuCisgICAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgICAgICAgYml0X2J1ZmZl
ci0+UmVhZEJpdHMoJmJpdHNfdG1wLCBzbGljZV9ncm91cF9pZF9iaXRzKSk7CisgICAgICB9Cisg
ICAgfQorICB9CisgIC8vIG51bV9yZWZfaWR4X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogdWUo
dikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29s
b21iKCZnb2xvbWJfaWdub3JlZCkpOworICAvLyBudW1fcmVmX2lkeF9sMV9kZWZhdWx0X2FjdGl2
ZV9taW51czE6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRF
eHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgLy8gd2VpZ2h0ZWRfcHJlZF9m
bGFnOiB1KDEpCisgIHVpbnQzMl90IHdlaWdodGVkX3ByZWRfZmxhZzsKKyAgUkVUVVJOX0VNUFRZ
X09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEJpdHMoJndlaWdodGVkX3ByZWRfZmxhZywgMSkpOwor
ICBwcHMud2VpZ2h0ZWRfcHJlZF9mbGFnID0gd2VpZ2h0ZWRfcHJlZF9mbGFnICE9IDA7CisgIC8v
IHdlaWdodGVkX2JpcHJlZF9pZGM6IHUoMikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1
ZmZlci0+UmVhZEJpdHMoJnBwcy53ZWlnaHRlZF9iaXByZWRfaWRjLCAyKSk7CisKKyAgLy8gcGlj
X2luaXRfcXBfbWludXMyNjogc2UodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBi
aXRfYnVmZmVyLT5SZWFkU2lnbmVkRXhwb25lbnRpYWxHb2xvbWIoJnBwcy5waWNfaW5pdF9xcF9t
aW51czI2KSk7CisgIC8vIFNhbml0eS1jaGVjayBwYXJzZWQgdmFsdWUKKyAgaWYgKHBwcy5waWNf
aW5pdF9xcF9taW51czI2ID4ga01heFBpY0luaXRRcERlbHRhVmFsdWUgfHwKKyAgICAgIHBwcy5w
aWNfaW5pdF9xcF9taW51czI2IDwga01pblBpY0luaXRRcERlbHRhVmFsdWUpIHsKKyAgICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChmYWxzZSk7CisgIH0KKyAgLy8gcGljX2luaXRfcXNfbWludXMyNjog
c2UodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFs
R29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAvLyBjaHJvbWFfcXBfaW5kZXhfb2Zmc2V0OiBz
ZSh2KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxH
b2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgIC8vIGRlYmxvY2tpbmdfZmlsdGVyX2NvbnRyb2xf
cHJlc2VudF9mbGFnOiB1KDEpCisgIC8vIGNvbnN0cmFpbmVkX2ludHJhX3ByZWRfZmxhZzogdSgx
KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmYml0c190bXAs
IDIpKTsKKyAgLy8gcmVkdW5kYW50X3BpY19jbnRfcHJlc2VudF9mbGFnOiB1KDEpCisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0X2J1ZmZlci0+UmVhZEJpdHMoJnBwcy5yZWR1bmRh
bnRfcGljX2NudF9wcmVzZW50X2ZsYWcsIDEpKTsKKworICByZXR1cm4gcHBzOworfQorCitib29s
IEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRzSW50ZXJuYWwocnRjOjpCaXRCdWZmZXIqIGJpdF9i
dWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qq
IHBwc19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf
dCogc3BzX2lkKSB7CisgIC8vIHBpY19wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBpZiAoIWJp
dF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYihwcHNfaWQpKQorICAgIHJldHVybiBmYWxz
ZTsKKyAgLy8gc2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIGlmICghYml0X2J1ZmZlci0+
UmVhZEV4cG9uZW50aWFsR29sb21iKHNwc19pZCkpCisgICAgcmV0dXJuIGZhbHNlOworICByZXR1
cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2
NV9wcHNfcGFyc2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmE0NzE4
ODNkY2FlYWY1YTUzNGFjMzEzOWEzNjkwN2YzMDRmZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9wcHNfcGFyc2VyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMp
IDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxl
IGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRo
ZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVh
bCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFU
RU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5k
IGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICov
CisKKyNpZm5kZWYgQ09NTU9OX1ZJREVPX0gyNjVfUFBTX1BBUlNFUl9IXworI2RlZmluZSBDT01N
T05fVklERU9fSDI2NV9QUFNfUEFSU0VSX0hfCisKKyNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlv
bmFsLmgiCisKK25hbWVzcGFjZSBydGMgeworY2xhc3MgQml0QnVmZmVyOworfQorCituYW1lc3Bh
Y2Ugd2VicnRjIHsKKworLy8gQSBjbGFzcyBmb3IgcGFyc2luZyBvdXQgcGljdHVyZSBwYXJhbWV0
ZXIgc2V0IChQUFMpIGRhdGEgZnJvbSBhIEgyNjUgTkFMVS4KK2NsYXNzIEgyNjVQcHNQYXJzZXIg
eworIHB1YmxpYzoKKyAgLy8gVGhlIHBhcnNlZCBzdGF0ZSBvZiB0aGUgUFBTLiBPbmx5IHNvbWUg
c2VsZWN0IHZhbHVlcyBhcmUgc3RvcmVkLgorICAvLyBBZGQgbW9yZSBhcyB0aGV5IGFyZSBhY3R1
YWxseSBuZWVkZWQuCisgIHN0cnVjdCBQcHNTdGF0ZSB7CisgICAgUHBzU3RhdGUoKSA9IGRlZmF1
bHQ7CisKKyAgICBib29sIGJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9m
bGFnID0gZmFsc2U7CisgICAgYm9vbCB3ZWlnaHRlZF9wcmVkX2ZsYWcgPSBmYWxzZTsKKyAgICBi
b29sIGVudHJvcHlfY29kaW5nX21vZGVfZmxhZyA9IGZhbHNlOworICAgIHVpbnQzMl90IHdlaWdo
dGVkX2JpcHJlZF9pZGMgPSBmYWxzZTsKKyAgICB1aW50MzJfdCByZWR1bmRhbnRfcGljX2NudF9w
cmVzZW50X2ZsYWcgPSAwOworICAgIGludCBwaWNfaW5pdF9xcF9taW51czI2ID0gMDsKKyAgICB1
aW50MzJfdCBpZCA9IDA7CisgICAgdWludDMyX3Qgc3BzX2lkID0gMDsKKyAgfTsKKworICAvLyBV
bnBhY2sgUkJTUCBhbmQgcGFyc2UgUFBTIHN0YXRlIGZyb20gdGhlIHN1cHBsaWVkIGJ1ZmZlci4K
KyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZVBwcyhjb25zdCB1aW50OF90
KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKworICBzdGF0aWMgYm9vbCBQYXJzZVBwc0lkcyhjb25z
dCB1aW50OF90KiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3Ro
LAorICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50MzJfdCogc3BzX2lkKTsKKworICBzdGF0aWMgYWJzbDo6b3B0
aW9uYWw8dWludDMyX3Q+IFBhcnNlUHBzSWRGcm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAg
ICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICB1aW50
OF90IG5hbHVfdHlwZSk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBQUFMgc3RhdGUs
IGZvciBhIGJpdCBidWZmZXIgd2hlcmUgUkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisg
IC8vIHBlcmZvcm1lZC4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZUlu
dGVybmFsKHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKTsKKyAgc3RhdGljIGJvb2wgUGFyc2VQ
cHNJZHNJbnRlcm5hbChydGM6OkJpdEJ1ZmZlciogYml0X2J1ZmZlciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQzMl90KiBzcHNfaWQpOworfTsKKworfSAgLy8gbmFtZXNwYWNl
IHdlYnJ0YworCisjZW5kaWYgIC8vIENPTU1PTl9WSURFT19IMjY1X1BQU19QQVJTRVJfSF8KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1v
bl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wNDMzZjRiMGVlOTIwYzIzM2YxYjYxODE1MGQyZDNmODhmZWQwZWMxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
Y29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMTkyIEBACisv
KgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFk
ZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQK
KyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhv
cnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0
b3I+CisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1
ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0Y19i
YXNlL2JpdF9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25hbWVz
cGFjZSB7Cit0eXBlZGVmIGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVNwc1BhcnNlcjo6U3Bz
U3RhdGU+IE9wdGlvbmFsU3BzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwK
KyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBPcHRpb25hbFNw
cygpOyAgICAgICBcCisgIH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsK
KworSDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU6OlNwc1N0YXRlKCkgPSBkZWZhdWx0OworCisvLyBH
ZW5lcmFsIG5vdGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2YgdGhl
IEguMjY1IHN0YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8vIGh0
dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5kIHBh
cnNlIFNQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNsOjpvcHRpb25hbDxI
MjY1U3BzUGFyc2VyOjpTcHNTdGF0ZT4gSDI2NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAgY29u
c3QgdWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVp
bnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOwor
ICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFj
a2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VTcHNVcFRvVnVpKCZiaXRfYnVmZmVy
KTsKK30KKworYWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IEgyNjVTcHNQ
YXJzZXI6OlBhcnNlU3BzVXBUb1Z1aSgKKyAgICBydGM6OkJpdEJ1ZmZlciogYnVmZmVyKSB7Cisg
IC8vIE5vdywgd2UgbmVlZCB0byB1c2UgYSBiaXQgYnVmZmVyIHRvIHBhcnNlIHRocm91Z2ggdGhl
IGFjdHVhbCBIRVZDIFNQUworICAvLyBmb3JtYXQuIFNlZSBTZWN0aW9uIDcuMy4yLjIuMSAoIkdl
bmVyYWwgc2VxdWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhCisgIC8vIHN5bnRheCIpIG9mIHRoZSBI
LjI2NSBzdGFuZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2luY2Ugd2Ug
b25seSBjYXJlIGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkgb2YgZmll
bGRzLCBidXQKKyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJvdWdoIGEg
bG90IG9mIHRoZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2ZSB2YXJp
YWJsZSBzaXplLgorICAvLyBXZSdyZSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbjoKKyAgLy8g
Y2hyb21hX2Zvcm1hdF9pZGMgLT4gYWZmZWN0cyBjcm9wIHVuaXRzCisgIC8vIHBpY197d2lkdGgs
aGVpZ2h0fV8qIC0+IHJlc29sdXRpb24gb2YgdGhlIGZyYW1lIGluIG1hY3JvYmxvY2tzICgxNngx
NikuCisgIC8vIGZyYW1lX2Nyb3BfKl9vZmZzZXQgLT4gY3JvcCBpbmZvcm1hdGlvbgorCisgIFNw
c1N0YXRlIHNwczsKKworICAvLyBUaGUgZ29sb21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5v
dCBqdXN0IGNvbnN1bWUuCisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFy
YXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzIG9wdGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGlt
cGxpY2F0aW9ucworICAvLyBhYm91dCB0aGUgQ2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmll
cyBob3cgd2UgdHJlYXQgY3JvcCBjb29yZGluYXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29s
b3VyX3BsYW5lX2ZsYWcgPSAwOworCisgIC8vIGNocm9tYV9mb3JtYXRfaWRjIHdpbGwgYmUgQ2hy
b21hQXJyYXlUeXBlIGlmIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzCisgIC8vIDAuIEl0
IGRlZmF1bHRzIHRvIDEsIHdoZW4gbm90IHNwZWNpZmllZC4KKyAgdWludDMyX3QgY2hyb21hX2Zv
cm1hdF9pZGMgPSAxOworCisgIC8vIHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisg
IHVpbnQzMl90IHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZ
X09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmc3BzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQp
KTsKKyAgLy8gc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTogdSgzKQorICB1aW50MzJfdCBzcHNf
bWF4X3N1Yl9sYXllcnNfbWludXMxID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVy
LT5SZWFkQml0cygmc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSwgMykpOworICAvLyBzcHNfdGVt
cG9yYWxfaWRfbmVzdGluZ19mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZl
ci0+Q29uc3VtZUJpdHMoMSkpOworICAvLyBwcm9maWxlX3RpZXJfbGV2ZWwoMSwgc3BzX21heF9z
dWJfbGF5ZXJzX21pbnVzMSkuIFdlIGFyZSBhY3V0YWxseSBub3QKKyAgLy8gdXNpbmcgdGhlbSwg
c28gcmVhZC9za2lwIG92ZXIgaXQuCisgIC8vIGdlbmVyYWxfcHJvZmlsZV9zcGFjZStnZW5lcmFs
X3RpZXJfZmxhZytnZW5lcmFsX3ByZmlsZV9pZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZB
SUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVfY29tcGF0
YWJpbGl0aXlfZmxhZ1szMl0KKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1l
Qnl0ZXMoNCkpOworICAvLyBnZW5lcmFsX3Byb2dyZXNzaXZlX3NvdXJjZV9mbGFnICsgaW50ZXJs
YWNlZF9zb3VyY2VfZmxhZysKKyAgLy8gbm9uLXBhY2tlZF9jb25zdHJhaW50IGZsYWcgKyBmcmFt
ZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzogdSg0KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZm
ZXItPkNvbnN1bWVCaXRzKDQpKTsKKyAgLy8gZ2VuZXJhbF9wcm9maWxlX2lkYyBkZWNpZGVkIGZs
YWdzIG9yIHJlc2VydmVkLiAgdSg0MykKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5D
b25zdW1lQml0cyg0MykpOworICAvLyBnZW5lcmFsX2luYmxkX2ZsYWcgb3IgcmVzZXJ2ZWQgMDog
dSgxKQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDEpKTsKKyAg
Ly8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVy
LT5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBpZiBtYXhfc3ViX2xheWVyc19taW51czEgPj0xLCBy
ZWFkIHRoZSBzdWJsYXllciBwcm9maWxlIGluZm9ybWF0aW9uCisgIHN0ZDo6dmVjdG9yPHVpbnQz
Ml90PiBzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdzOworICBzdGQ6OnZlY3Rvcjx1aW50
MzJfdD4gc3ViX2xheWVyX2xldmVsX3ByZXNlbnRfZmxhZ3M7CisgIHVpbnQzMl90IHN1Yl9sYXll
cl9wcm9maWxlX3ByZXNlbnQgPSAwOworICB1aW50MzJfdCBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2Vu
dCA9IDA7CisgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzcHNfbWF4X3N1Yl9sYXllcnNfbWlu
dXMxOyBpKyspIHsKKyAgICAvLyBzdWJsYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZyBhbmQgc3Vi
bGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlM
KGJ1ZmZlci0+UmVhZEJpdHMoJnN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQsIDEpKTsKKyAgICBS
RVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZzdWJfbGF5ZXJfbGV2ZWxfcHJl
c2VudCwgMSkpOworICAgIHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3MucHVzaF9iYWNr
KHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQpOworICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50
X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNw
c19tYXhfc3ViX2xheWVyc19taW51czEgPiAwKSB7CisgICAgZm9yICh1aW50MzJfdCBqID0gc3Bz
X21heF9zdWJfbGF5ZXJzX21pbnVzMTsgaiA8IDg7IGorKykgeworICAgICAgLy8gcmVzZXJ2ZWQg
MiBiaXRzOiB1KDIpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVC
aXRzKDIpKTsKKyAgICB9CisgIH0KKyAgZm9yICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhf
c3ViX2xheWVyc19taW51czE7IGsrKykgeworICAgIGlmIChzdWJfbGF5ZXJfcHJvZmlsZV9wcmVz
ZW50X2ZsYWdzW2tdKSB7ICAvLworICAgICAgLy8gc3ViX2xheWVyIHByb2ZpbGVfc3BhY2UvdGll
cl9mbGFnL3Byb2ZpbGVfaWRjLiBpZ25vcmVkLiB1KDgpCisgICAgICBSRVRVUk5fRU1QVFlfT05f
RkFJTChidWZmZXItPkNvbnN1bWVCeXRlcygxKSk7CisgICAgICAvLyBwcm9maWxlX2NvbXBhdGFi
aWxpdHlfZmxhZzogIHUoMzIpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNv
bnN1bWVCeXRlcyg0KSk7CisgICAgICAvLyBzdWJfbGF5ZXIgcHJvZ3Jlc3NpdmVfc291cmNlX2Zs
YWcvaW50ZXJsYWNlZF9zb3VyY2VfZmxhZy8KKyAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWlu
dF9mbGFnL2ZyYW1lX29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgICAgICBSRVRVUk5fRU1Q
VFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQpKTsKKyAgICAgIC8vIGZvbGxvd2luZyA0
My1iaXRzIGFyZSBwcm9maWxlX2lkYyBzcGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4K
KyAgICAgIC8vIHUoNDMpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1
bWVCaXRzKDQzKSk7CisgICAgICAvLyAxLWJpdCBwcm9maWxlX2lkYyBzcGVjaWZpYyBpbmJsZCBm
bGFnLiAgV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4gdSgxKQorICAgICAgUkVUVVJOX0VNUFRZX09O
X0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0cygxKSk7CisgICAgfQorICAgIGlmIChzdWJfbGF5ZXJf
bGV2ZWxfcHJlc2VudF9mbGFnc1trXSkgeworICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzog
dSg4KQorICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkp
OworICAgIH0KKyAgfQorICAvLyBzcHNfc2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIFJF
VFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJf
aWdub3JlZCkpOworICAvLyBjaHJvbWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0VNUFRZ
X09OX0ZBSUwoYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNocm9tYV9mb3JtYXRfaWRj
KSk7CisgIGlmIChjaHJvbWFfZm9ybWF0X2lkYyA9PSAzKSB7CisgICAgLy8gc2VwZXJhdGVfY29s
b3VyX3BsYW5lX2ZsYWc6IHUoMSkKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJl
YWRCaXRzKCZzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZywgMSkpOworICB9CisgIHVpbnQzMl90
IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMgPSAwOworICB1aW50MzJfdCBwaWNfaGVpZ2h0X2lu
X2x1bWFfc2FtcGxlcyA9IDA7CisgIC8vIHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYp
CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxH
b2xvbWIoJnBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMpKTsKKyAgLy8gcGljX2hlaWdodF9pbl9s
dW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVy
LT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzKSk7Cisg
IC8vIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnOiB1KDEpCisgIHVpbnQzMl90IGNvbmZvcm1hbmNl
X3dpbmRvd19mbGFnID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0
cygmY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcsIDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9s
ZWZ0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7Cisg
IHVpbnQzMl90IGNvbmZfd2luX3RvcF9vZmZzZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9i
b3R0b21fb2Zmc2V0ID0gMDsKKyAgaWYgKGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAg
Ly8gY29uZl93aW5fbGVmdF9vZmZzZXQ6IHVlKHYpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
YnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7Cisg
ICAgLy8gY29uZl93aW5fcmlnaHRfb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9G
QUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQp
KTsKKyAgICAvLyBjb25mX3dpbl90b3Bfb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0
KSk7CisgICAgLy8gY29uZl93aW5fYm90dG9tX29mZnNldDogdWUodikKKyAgICBSRVRVUk5fRU1Q
VFlfT05fRkFJTCgKKyAgICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZf
d2luX2JvdHRvbV9vZmZzZXQpKTsKKyAgfQorCisgIC8vIEZhciBlbm91Z2ghIFdlIGRvbid0IHVz
ZSB0aGUgcmVzdCBvZiB0aGUgU1BTLgorCisgIHNwcy52cHNfaWQgPSBzcHNfdmlkZW9fcGFyYW1l
dGVyX3NldF9pZDsKKworICAvLyBTdGFydCB3aXRoIHRoZSByZXNvbHV0aW9uIGRldGVybWluZWQg
YnkgdGhlIHBpY193aWR0aC9waWNfaGVpZ2h0IGZpZWxkcy4KKyAgc3BzLndpZHRoID0gcGljX3dp
ZHRoX2luX2x1bWFfc2FtcGxlczsKKyAgc3BzLmhlaWdodCA9IHBpY19oZWlnaHRfaW5fbHVtYV9z
YW1wbGVzOworCisgIGlmIChjb25mb3JtYW5jZV93aW5kb3dfZmxhZykgeworICAgIGludCBzdWJf
d2lkdGhfYyA9ICgoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgfHwgKDIgPT0gY2hyb21hX2Zvcm1h
dF9pZGMpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPT0gc2VwYXJhdGVf
Y29sb3VyX3BsYW5lX2ZsYWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgID8gMgorICAgICAg
ICAgICAgICAgICAgICAgICAgICA6IDE7CisgICAgaW50IHN1Yl9oZWlnaHRfYyA9CisgICAgICAg
ICgxID09IGNocm9tYV9mb3JtYXRfaWRjKSAmJiAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVf
ZmxhZykgPyAyIDogMTsKKyAgICAvLyB0aGUgb2Zmc2V0IGluY2x1ZGVzIHRoZSBwaXhlbCB3aXRo
aW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVkIHRvCisgICAgLy8gKzEgYXMgcGVy
IHNwZWMKKyAgICBzcHMud2lkdGggLT0gc3ViX3dpZHRoX2MgKiAoY29uZl93aW5fcmlnaHRfb2Zm
c2V0ICsgY29uZl93aW5fbGVmdF9vZmZzZXQpOworICAgIHNwcy5oZWlnaHQgLT0gc3ViX2hlaWdo
dF9jICogKGNvbmZfd2luX3RvcF9vZmZzZXQgKyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0KTsKKyAg
fQorCisgIHJldHVybiBPcHRpb25hbFNwcyhzcHMpOworfQorCit9ICAvLyBuYW1lc3BhY2Ugd2Vi
cnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmEwZjg2YjY5ODMyNjMxYmU3MjU2OWI5YWUyMGJjMmM2MGI4MDkyNWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaApAQCAtMCwwICsxLDU0IEBA
CisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFu
IGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91
bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1
dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2lmbmRlZiBDT01NT05fVklERU9fSDI2NV9IMjY1
X1NQU19QQVJTRVJfSF8KKyNkZWZpbmUgQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VS
X0hfCisKKyNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisKK25hbWVzcGFjZSBydGMg
eworY2xhc3MgQml0QnVmZmVyOworfQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworLy8gQSBjbGFz
cyBmb3IgcGFyc2luZyBvdXQgc2VxdWVuY2UgcGFyYW1ldGVyIHNldCAoU1BTKSBkYXRhIGZyb20g
YW4gSDI2NSBOQUxVLgorY2xhc3MgSDI2NVNwc1BhcnNlciB7CisgcHVibGljOgorICAvLyBUaGUg
cGFyc2VkIHN0YXRlIG9mIHRoZSBTUFMuIE9ubHkgc29tZSBzZWxlY3QgdmFsdWVzIGFyZSBzdG9y
ZWQuCisgIC8vIEFkZCBtb3JlIGFzIHRoZXkgYXJlIGFjdHVhbGx5IG5lZWRlZC4KKyAgc3RydWN0
IFNwc1N0YXRlIHsKKyAgICBTcHNTdGF0ZSgpOworCisgICAgdWludDMyX3Qgd2lkdGggPSAwOwor
ICAgIHVpbnQzMl90IGhlaWdodCA9IDA7CisgICAgdWludDMyX3QgZGVsdGFfcGljX29yZGVyX2Fs
d2F5c196ZXJvX2ZsYWcgPSAwOworICAgIHVpbnQzMl90IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9m
bGFnID0gMDsKKyAgICB1aW50MzJfdCBmcmFtZV9tYnNfb25seV9mbGFnID0gMDsKKyAgICB1aW50
MzJfdCBsb2cyX21heF9mcmFtZV9udW1fbWludXM0ID0gMDsKKyAgICB1aW50MzJfdCBsb2cyX21h
eF9waWNfb3JkZXJfY250X2xzYl9taW51czQgPSAwOworICAgIHVpbnQzMl90IHBpY19vcmRlcl9j
bnRfdHlwZSA9IDA7CisgICAgdWludDMyX3QgbWF4X251bV9yZWZfZnJhbWVzID0gMDsKKyAgICB1
aW50MzJfdCB2dWlfcGFyYW1zX3ByZXNlbnQgPSAwOworICAgIHVpbnQzMl90IGlkID0gMDsKKyAg
ICB1aW50MzJfdCB2cHNfaWQgPSAwOworICB9OworCisgIC8vIFVucGFjayBSQlNQIGFuZCBwYXJz
ZSBTUFMgc3RhdGUgZnJvbSB0aGUgc3VwcGxpZWQgYnVmZmVyLgorICBzdGF0aWMgYWJzbDo6b3B0
aW9uYWw8U3BzU3RhdGU+IFBhcnNlU3BzKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5n
dGgpOworCisgcHJvdGVjdGVkOgorICAvLyBQYXJzZSB0aGUgU1BTIHN0YXRlLCB1cCB0aWxsIHRo
ZSBWVUkgcGFydCwgZm9yIGEgYml0IGJ1ZmZlciB3aGVyZSBSQlNQCisgIC8vIGRlY29kaW5nIGhh
cyBhbHJlYWR5IGJlZW4gcGVyZm9ybWVkLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3BzU3Rh
dGU+IFBhcnNlU3BzVXBUb1Z1aShydGM6OkJpdEJ1ZmZlciogYnVmZmVyKTsKK307CisKK30gIC8v
IG5hbWVzcGFjZSB3ZWJydGMKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNf
UEFSU0VSX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zw
c19wYXJzZXIuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM5MWFlNTFkZjBmOTA4OTAxNmI0OTg4NGMxNWYyYzE0
MThkNTRlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5jYwpAQCAtMCww
ICsxLDYyIEBACisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3Qg
YXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJl
IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICog
IHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBj
YW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBw
cm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0
aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNp
bmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1v
bi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2lu
Y2x1ZGUgInJ0Y19iYXNlL2JpdF9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5n
LmgiCisKK25hbWVzcGFjZSB7Cit0eXBlZGVmIGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVZw
c1BhcnNlcjo6VnBzU3RhdGU+IE9wdGlvbmFsVnBzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVy
biBPcHRpb25hbFZwcygpOyAgICAgICBcCisgIH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3Bh
Y2Ugd2VicnRjIHsKKworSDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU6OlZwc1N0YXRlKCkgPSBkZWZh
dWx0OworCisvLyBHZW5lcmFsIG5vdGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZl
cnNpb24gb2YgdGhlIEguMjY1IHN0YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMg
cGFnZToKKy8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNr
IFJCU1AgYW5kIHBhcnNlIFNQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNs
OjpvcHRpb25hbDxIMjY1VnBzUGFyc2VyOjpWcHNTdGF0ZT4gSDI2NVZwc1BhcnNlcjo6UGFyc2VW
cHMoCisgICAgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0
ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRh
LCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5k
YXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5hbCgm
Yml0X2J1ZmZlcik7Cit9CisKK2Fic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRl
PiBIMjY1VnBzUGFyc2VyOjpQYXJzZUludGVybmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBidWZm
ZXIpIHsKKyAgLy8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhy
b3VnaCB0aGUgYWN0dWFsIEhFVkMgVlBTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIu
MSAoIlZpZGVvIHBhcmFtZXRlciBzZXQgUkJTUCBzeW50YXgiKSBvZiB0aGUKKyAgLy8gSC4yNjUg
c3RhbmRhcmQgZm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24uCisKKyAgVnBzU3RhdGUgdnBzOwor
CisgIC8vIHZwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIHVpbnQzMl90IHZwc192
aWRlb19wYXJhbWV0ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVy
LT5SZWFkQml0cygmdnBzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQpKTsKKworICB2cHMuaWQg
PSB2cHNfdmlkZW9fcGFyYW1ldGVyX3NldF9pZDsKKyAgdnBzLmlkID0gMDsKKyAgcmV0dXJuIE9w
dGlvbmFsVnBzKHZwcyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9o
MjY1L2gyNjVfdnBzX3BhcnNlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZThhMjc3NWY0M2RmMTdkMThlMDlkYzQwMDdlNjIzYTYzMjA4NWE3ZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRl
by9oMjY1L2gyNjVfdnBzX3BhcnNlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiAgQ29weXJp
Z2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJT
RC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRl
bGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBm
aWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBi
ZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJl
ZS4KKyAqLworCisjaWZuZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfVlBTX1BBUlNFUl9IXwor
I2RlZmluZSBDT01NT05fVklERU9fSDI2NV9IMjY1X1ZQU19QQVJTRVJfSF8KKworI2luY2x1ZGUg
ImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKKworbmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBCaXRCdWZm
ZXI7Cit9CisKK25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBBIGNsYXNzIGZvciBwYXJzaW5nIG91
dCBzZXF1ZW5jZSBwYXJhbWV0ZXIgc2V0IChWUFMpIGRhdGEgZnJvbSBhbiBIMjY1IE5BTFUuCitj
bGFzcyBIMjY1VnBzUGFyc2VyIHsKKyBwdWJsaWM6CisgIC8vIFRoZSBwYXJzZWQgc3RhdGUgb2Yg
dGhlIFZQUy4gT25seSBzb21lIHNlbGVjdCB2YWx1ZXMgYXJlIHN0b3JlZC4KKyAgLy8gQWRkIG1v
cmUgYXMgdGhleSBhcmUgYWN0dWFsbHkgbmVlZGVkLgorICBzdHJ1Y3QgVnBzU3RhdGUgeworICAg
IFZwc1N0YXRlKCk7CisKKyAgICB1aW50MzJfdCBpZCA9IDA7CisgIH07CisKKyAgLy8gVW5wYWNr
IFJCU1AgYW5kIHBhcnNlIFZQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCisgIHN0
YXRpYyBhYnNsOjpvcHRpb25hbDxWcHNTdGF0ZT4gUGFyc2VWcHMoY29uc3QgdWludDhfdCogZGF0
YSwgc2l6ZV90IGxlbmd0aCk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBWUFMgc3Rh
dGUsIGZvciBhIGJpdCBidWZmZXIgd2hlcmUgUkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVu
CisgIC8vIHBlcmZvcm1lZC4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFZwc1N0YXRlPiBQYXJz
ZUludGVybmFsKHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVz
cGFjZSB3ZWJydGMKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9WUFNfUEFSU0VS
X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCmluZGV4IDUx
NDRhNmVhNjU1NWRmYmI2NmM0NjJhZTIxNzdkZmNlY2NjOTE4YmIuLjdiNzBmZjllNDg4NGE1MDM1
YjllZTM4OTRjNTUwMDNjYWJmMWJhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVk
aWFfY29uc3RhbnRzLmNjCkBAIC0xMDcsNiArMTA3LDkgQEAgY29uc3QgY2hhciBrVnA4Q29kZWNO
YW1lW10gPSAiVlA4IjsKIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFtZVtdID0gIlZQOSI7CiBjb25z
dCBjaGFyIGtBdjFDb2RlY05hbWVbXSA9ICJBVjFYIjsKIGNvbnN0IGNoYXIga0gyNjRDb2RlY05h
bWVbXSA9ICJIMjY0IjsKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citjb25zdCBjaGFyIGtIMjY1Q29k
ZWNOYW1lW10gPSAiSDI2NSI7CisjZW5kaWYKIAogLy8gUkZDIDYxODQgUlRQIFBheWxvYWQgRm9y
bWF0IGZvciBILjI2NCB2aWRlbwogY29uc3QgY2hhciBrSDI2NEZtdHBQcm9maWxlTGV2ZWxJZFtd
ID0gInByb2ZpbGUtbGV2ZWwtaWQiOwpAQCAtMTE0LDYgKzExNywxMyBAQCBjb25zdCBjaGFyIGtI
MjY0Rm10cExldmVsQXN5bW1ldHJ5QWxsb3dlZFtdID0gImxldmVsLWFzeW1tZXRyeS1hbGxvd2Vk
IjsKIGNvbnN0IGNoYXIga0gyNjRGbXRwUGFja2V0aXphdGlvbk1vZGVbXSA9ICJwYWNrZXRpemF0
aW9uLW1vZGUiOwogY29uc3QgY2hhciBrSDI2NEZtdHBTcHJvcFBhcmFtZXRlclNldHNbXSA9ICJz
cHJvcC1wYXJhbWV0ZXItc2V0cyI7CiBjb25zdCBjaGFyIGtIMjY0UHJvZmlsZUxldmVsQ29uc3Ry
YWluZWRCYXNlbGluZVtdID0gIjQyZTAxZiI7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorLy8gUkZD
IDc3OTggUlRQIFBheWxvYWQgRm9ybWF0IGZvciBILjI2NSB2aWRlbworY29uc3QgY2hhciBrSDI2
NUZtdHBQcm9maWxlU3BhY2VbXSA9ICJwcm9maWxlLXNwYWNlIjsKK2NvbnN0IGNoYXIga0gyNjVG
bXRwUHJvZmlsZUlkW10gPSAicHJvZmlsZS1pZCI7Citjb25zdCBjaGFyIGtIMjY1Rm10cFRpZXJG
bGFnW10gPSAidGllci1mbGFnIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwTGV2ZWxJZFtdID0gImxl
dmVsLWlkIjsKKyNlbmRpZgogCiBjb25zdCBpbnQga0RlZmF1bHRWaWRlb01heEZyYW1lcmF0ZSA9
IDYwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaAppbmRleCBi
OWI4YTMzNmY3ZjBjYWYyZmYxOTQ2OWZlYTc1Y2I3OTI5NDcwYTU4Li5hMTgxOTNlMDVkMjQ4YzEy
ZjZhNDU4MmI1NmU0YjIxODE5MWE5MzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVk
aWFfY29uc3RhbnRzLmgKQEAgLTEzNiw2ICsxMzYsOSBAQCBSVENfRVhQT1JUIGV4dGVybiBjb25z
dCBjaGFyIGtWcDhDb2RlY05hbWVbXTsKIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga1Zw
OUNvZGVjTmFtZVtdOwogUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrQXYxQ29kZWNOYW1l
W107CiBSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY0Q29kZWNOYW1lW107CisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUNvZGVj
TmFtZVtdOworI2VuZGlmCiAKIC8vIFJGQyA2MTg0IFJUUCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4y
NjQgdmlkZW8KIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRGbXRwUHJvZmlsZUxl
dmVsSWRbXTsKQEAgLTE0NCw2ICsxNDcsMTQgQEAgUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hh
ciBrSDI2NEZtdHBQYWNrZXRpemF0aW9uTW9kZVtdOwogZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRG
bXRwU3Byb3BQYXJhbWV0ZXJTZXRzW107CiBleHRlcm4gY29uc3QgY2hhciBrSDI2NFByb2ZpbGVM
ZXZlbENvbnN0cmFpbmVkQmFzZWxpbmVbXTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKy8vIFJG
QyA3Nzk4IFJUUCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4yNjUgdmlkZW8KK1JUQ19FWFBPUlQgZXh0
ZXJuIGNvbnN0IGNoYXIga0gyNjVGbXRwUHJvZmlsZVNwYWNlW107CitSVENfRVhQT1JUIGV4dGVy
biBjb25zdCBjaGFyIGtIMjY1Rm10cFByb2ZpbGVJZFtdOworUlRDX0VYUE9SVCBleHRlcm4gY29u
c3QgY2hhciBrSDI2NUZtdHBUaWVyRmxhZ1tdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hh
ciBrSDI2NUZtdHBMZXZlbElkW107CisjZW5kaWYKKwogZXh0ZXJuIGNvbnN0IGludCBrRGVmYXVs
dFZpZGVvTWF4RnJhbWVyYXRlOwogCiBleHRlcm4gY29uc3Qgc2l6ZV90IGtDb25mZXJlbmNlTWF4
TnVtU3BhdGlhbExheWVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL0JVSUxELmduCmlu
ZGV4IDI4MjZkMGYwOWIxNDRlNDVhMGI3ZDQ3MGQwYmE5ZDU3YzQzMzVjZTEuLjZmOTAyZmY3YjBj
NWYyYjVhMGFiOGJhYmI2NDk2ZTVjMzllOGMwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24KKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9CVUlMRC5nbgpAQCAtMjM2LDYgKzIzNiwxNyBAQCBydGNfbGlicmFyeSgicnRwX3J0Y3Ai
KSB7CiAgICAgZGVmaW5lcyA9IFsgIkJXRV9URVNUX0xPR0dJTkdfQ09NUElMRV9USU1FX0VOQUJM
RT0wIiBdCiAgIH0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisg
ICAgICAic291cmNlL3J0cF9mb3JtYXRfaDI2NS5jYyIsCisgICAgICAic291cmNlL3J0cF9mb3Jt
YXRfaDI2NS5oIiwKKyAgICBdCisgIH0KKworICBpZiAoIXJ0Y191c2VfaDI2NSkgeworICAgIGRl
ZmluZXMgKz0gWyJESVNBQkxFX0gyNjUiXQorICB9CisKICAgZGVwcyA9IFsKICAgICAiOnJ0cF9y
dGNwX2Zvcm1hdCIsCiAgICAgIjpydHBfdmlkZW9faGVhZGVyIiwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL2NyZWF0ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRlX3Zp
ZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKaW5kZXggNTllMTM5OWM5OWYyMmU5ZTY4ZjVjNjY3NzFk
ZWVlNzUxNGM3MGM1ZC4uOGJiYjNhNGQ5NzgwMmE4ZDAwZDY0Nzg4YjMwMTAxMzZlYTlmMmI4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKQEAgLTEzLDYgKzEz
LDkgQEAKICNpbmNsdWRlIDxtZW1vcnk+CiAKICNpbmNsdWRlICJhcGkvdmlkZW8vdmlkZW9fY29k
ZWNfdHlwZS5oIgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuaCIKICNpbmNsdWRlICJtb2R1
bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyX2F2MS5oIgogI2luY2x1
ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfZ2VuZXJp
Yy5oIgpAQCAtMjcsNiArMzAsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvUnRwRGVwYWNrZXRp
emVyPiBDcmVhdGVWaWRlb1J0cERlcGFja2V0aXplcigKICAgc3dpdGNoIChjb2RlYykgewogICAg
IGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Vmlk
ZW9SdHBEZXBhY2tldGl6ZXJIMjY0PigpOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNl
IGtWaWRlb0NvZGVjSDI2NToKKyAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvUnRw
RGVwYWNrZXRpemVySDI2NT4oKTsKKyNlbmRpZgogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6CiAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxWaWRlb1J0cERlcGFja2V0aXplclZwOD4oKTsK
ICAgICBjYXNlIGtWaWRlb0NvZGVjVlA5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNf
cGFyc2VyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNjCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMzQ2
MzBhYTg3YmFiMDkwYTE0ZDI3YjQ4MzM2Mzc5MWY0ODExZjIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuY2MKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBJbnRl
bCBMaWNlbnNlCisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtpdAorICog
VGhpcyBpcyByZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlzIGZyZWUg
Zm9yIGJvdGggYWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpbmNsdWRlICJ3
ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgiCisKKyNpbmNs
dWRlICJydGNfYmFzZS9iaXRfYnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvYnl0ZV9idWZm
ZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKKyNpbmNsdWRlIDx2ZWN0b3I+
CisKKyNkZWZpbmUgUkVUVVJOX0ZBTFNFX09OX0ZBSUwoeCkgXAorICBpZiAoISh4KSkgeyAgICAg
ICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgIFwKKyAgfQor
CituYW1lc3BhY2Ugd2VicnRjIHsKKworSDI2NVNwc1BhcnNlcjo6SDI2NVNwc1BhcnNlcihjb25z
dCB1aW50OF90KiBzcHMsIHNpemVfdCBieXRlX2xlbmd0aCkKKyAgICA6IHNwc18oc3BzKSwgYnl0
ZV9sZW5ndGhfKGJ5dGVfbGVuZ3RoKSwgd2lkdGhfKCksIGhlaWdodF8oKSB7Cit9CisKK2Jvb2wg
SDI2NVNwc1BhcnNlcjo6UGFyc2UoKSB7CisgIC8vIEdlbmVyYWwgbm90ZTogdGhpcyBpcyBiYXNl
ZCBvZmYgdGhlIDA0LzIwMTUgdmVyc2lvbiBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIC8vIFlv
dSBjYW4gZmluZCBpdCBvbiB0aGlzIHBhZ2U6CisgIC8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMv
VC1SRUMtSC4yNjUKKworICBjb25zdCBjaGFyKiBzcHNfYnl0ZXMgPSByZWludGVycHJldF9jYXN0
PGNvbnN0IGNoYXIqPihzcHNfKTsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBp
cyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVz
ICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRl
ZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMuMS4xIG9mIHRoZSBILjI2NSBzdGFuZGFyZCwgc2lt
aWxhciB0byBIMjY0LgorICBydGM6OkJ5dGVCdWZmZXJXcml0ZXIgcmJzcF9idWZmZXI7CisgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgYnl0ZV9sZW5ndGhfOykgeworICAgIC8vIEJlIGNhcmVmdWwg
YWJvdXQgb3Zlci91bmRlcmZsb3cgaGVyZS4gYnl0ZV9sZW5ndGhfIC0gMyBjYW4gdW5kZXJmbG93
LCBhbmQKKyAgICAvLyBpICsgMyBjYW4gb3ZlcmZsb3csIGJ1dCBieXRlX2xlbmd0aF8gLSBpIGNh
bid0LCBiZWNhdXNlIGkgPCBieXRlX2xlbmd0aF8KKyAgICAvLyBhYm92ZSwgYW5kIHRoYXQgZXhw
cmVzc2lvbiB3aWxsIHByb2R1Y2UgdGhlIG51bWJlciBvZiBieXRlcyBsZWZ0IGluCisgICAgLy8g
dGhlIHN0cmVhbSBpbmNsdWRpbmcgdGhlIGJ5dGUgYXQgaS4KKyAgICBpZiAoYnl0ZV9sZW5ndGhf
IC0gaSA+PSAzICYmIHNwc19baV0gPT0gMCAmJiBzcHNfW2kgKyAxXSA9PSAwICYmCisgICAgICAg
IHNwc19baSArIDJdID09IDMpIHsKKyAgICAgIC8vIFR3byByYnNwIGJ5dGVzICsgdGhlIGVtdWxh
dGlvbiBieXRlLgorICAgICAgcmJzcF9idWZmZXIuV3JpdGVCeXRlcyhzcHNfYnl0ZXMgKyBpLCAy
KTsKKyAgICAgIGkgKz0gMzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gU2luZ2xlIHJic3AgYnl0
ZS4KKyAgICAgIHJic3BfYnVmZmVyLldyaXRlQnl0ZXMoc3BzX2J5dGVzICsgaSwgMSk7CisgICAg
ICBpKys7CisgICAgfQorICB9CisKKyAgLy8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZm
ZXIgdG8gcGFyc2UgdGhyb3VnaCB0aGUgYWN0dWFsIEhFVkMgU1BTCisgIC8vIGZvcm1hdC4gU2Vl
IFNlY3Rpb24gNy4zLjIuMS4xICgiU2VxdWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhIHN5bnRheCIp
IG9mIHRoZQorICAvLyBILjI2NSBzdGFuZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4K
KyAgLy8gU2luY2Ugd2Ugb25seSBjYXJlIGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUg
bWFqb3JpdHkgb2YgZmllbGRzLCBidXQKKyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBw
YXJzZSB0aHJvdWdoIGEgbG90IG9mIHRoZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBm
aWVsZHMgaGF2ZSB2YXJpYWJsZSBzaXplLgorICAvLyBVbmxpa2UgSDI2NCwgZm9yIEgyNjUsIHRo
ZSBwaWN0dXJlIHNpemUgaXMgaW5kaWNhdGVkIGJ5IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMK
KyAgLy8gYW5kIHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzLCAgaWYgY29uZm9ybWFuY2Vfd2lu
ZG93X2ZsYWcgIT0xOworICAvLyBXaGVuIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnIGlzIDEsICB0
aGUgd2lkdGggaXMgYWRqdXN0ZWQgd2l0aCBjb25fd2luX3h4X29mZnNldAorICAvLworICBydGM6
OkJpdEJ1ZmZlciBwYXJzZXIocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4ocmJzcF9i
dWZmZXIuRGF0YSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJic3BfYnVmZmVyLkxlbmd0
aCgpKTsKKworICAvLyBUaGUgZ29sb21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0
IGNvbnN1bWUuCisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2Nv
bG91cl9wbGFuZV9mbGFnIGlzIG9wdGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0
aW9ucworICAvLyBhYm91dCB0aGUgQ2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cg
d2UgdHJlYXQgY3JvcCBjb29yZGluYXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3Bs
YW5lX2ZsYWcgPSAwOworICAvLyBjaHJvbWFfZm9ybWF0X2lkYyB3aWxsIGJlIENocm9tYUFycmF5
VHlwZSBpZiBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZyBpcworICAvLyAwLiBJdCBkZWZhdWx0
cyB0byAxLCB3aGVuIG5vdCBzcGVjaWZpZWQuCisgIHVpbnQzMl90IGNocm9tYV9mb3JtYXRfaWRj
ID0gMTsKKworCisgIC8vIHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIFJFVFVS
Tl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cyg0KSk7CisgIC8vIHNwc19tYXhfc3Vi
X2xheWVyc19taW51czE6IHUoMykKKyAgdWludDMyX3Qgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVz
MSA9IDA7CisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmc3BzX21heF9z
dWJfbGF5ZXJzX21pbnVzMSwgMykpOworICAvLyBzcHNfdGVtcG9yYWxfaWRfbmVzdGluZ19mbGFn
OiB1KDEpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygxKSk7Cisg
IC8vIHByb2ZpbGVfdGllcl9sZXZlbCgxLCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxKS4gV2Ug
YXJlIGFjdXRhbGx5IG5vdAorICAvLyB1c2luZyB0aGVtLCBzbyByZWFkL3NraXAgb3ZlciBpdC4K
KyAgLy8gZ2VuZXJhbF9wcm9maWxlX3NwYWNlK2dlbmVyYWxfdGllcl9mbGFnK2dlbmVyYWxfcHJm
aWxlX2lkYzogdSg4KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVz
KDEpKTsKKyAgLy8gZ2VuZXJhbF9wcm9maWxlX2NvbXBhdGFiaWxpdGl5X2ZsYWdbMzJdCisgIFJF
VFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoNCkpOworICAvLyBnZW5lcmFs
X3Byb2dyZXNzaXZlX3NvdXJjZV9mbGFnICsgaW50ZXJsYWNlZF9zb3VyY2VfZmxhZysgbm9uLXBh
Y2tlZF9jb25zdHJhaW50CisgIC8vIGZsYWcgKyBmcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzog
dSg0KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNCkpOworICAv
LyBnZW5lcmFsX3Byb2ZpbGVfaWRjIGRlY2lkZWQgZmxhZ3Mgb3IgcmVzZXJ2ZWQuICB1KDQzKQor
ICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNDMpKTsKKyAgLy8gZ2Vu
ZXJhbF9pbmJsZF9mbGFnIG9yIHJlc2VydmVkIDA6IHUoMSkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZB
SUwocGFyc2VyLkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkK
KyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCeXRlcygxKSk7CisgIC8vIGlm
IG1heF9zdWJfbGF5ZXJzX21pbnVzMSA+PTEsIHJlYWQgdGhlIHN1YmxheWVyIHByb2ZpbGUgaW5m
b3JtYXRpb24KKyAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHN1Yl9sYXllcl9wcm9maWxlX3ByZXNl
bnRfZmxhZ3M7CisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2Vu
dF9mbGFnczsKKyAgdWludDMyX3Qgc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudCA9IDA7CisgIHVp
bnQzMl90IHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50ID0gMDsKKyAgZm9yICh1aW50MzJfdCBpID0g
MDsgaSA8IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGkrKykgeworICAgICAgLy9zdWJsYXll
cl9wcm9maWxlX3ByZXNlbnRfZmxhZyBhbmQgc3VibGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAg
dSgyKQorICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRCaXRzKCZzdWJfbGF5
ZXJfcHJvZmlsZV9wcmVzZW50LCAxKSk7CisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJz
ZXIuUmVhZEJpdHMoJnN1Yl9sYXllcl9sZXZlbF9wcmVzZW50LCAxKSk7CisgICAgICBzdWJfbGF5
ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfcHJvZmlsZV9wcmVz
ZW50KTsKKyAgICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJf
bGF5ZXJfbGV2ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNwc19tYXhfc3ViX2xheWVyc19taW51
czEgPiAwKSB7CisgICAgICBmb3IgKHVpbnQzMl90IGogPSBzcHNfbWF4X3N1Yl9sYXllcnNfbWlu
dXMxOyBqIDwgODsgaisrKSB7CisgICAgICAgIC8vIHJlc2VydmVkIDIgYml0czogdSgyKQorICAg
ICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygyKSk7CisgICAg
ICB9CisgIH0KKyAgZm9yICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVyc19t
aW51czE7IGsrKykgeworICAgICAgaWYoc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnc1tr
XSkgey8vCisgICAgICAgIC8vIHN1Yl9sYXllciBwcm9maWxlX3NwYWNlL3RpZXJfZmxhZy9wcm9m
aWxlX2lkYy4gaWdub3JlZC4gdSg4KQorICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJz
ZXIuQ29uc3VtZUJ5dGVzKDEpKTsKKyAgICAgICAgLy8gcHJvZmlsZV9jb21wYXRhYmlsaXR5X2Zs
YWc6ICB1KDMyKQorICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5
dGVzKDQpKTsKKyAgICAgICAgLy8gc3ViX2xheWVyIHByb2dyZXNzaXZlX3NvdXJjZV9mbGFnL2lu
dGVybGFjZWRfc291cmNlX2ZsYWcvCisgICAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9m
bGFnL2ZyYW1lX29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgICAgICAgIFJFVFVSTl9GQUxT
RV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cyg0KSk7CisgICAgICAgIC8vIGZvbGxvd2luZyA0
My1iaXRzIGFyZSBwcm9maWxlX2lkYyBzcGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4g
dSg0MykKKyAgICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDQz
KSk7CisgICAgICAgIC8vIDEtYml0IHByb2ZpbGVfaWRjIHNwZWNpZmljIGluYmxkIGZsYWcuICBX
ZSBzaW1wbHkgcmVhZC9za2lwIGl0LiB1KDEpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlM
KHBhcnNlci5Db25zdW1lQml0cygxKSk7CisgICAgICB9CisgICAgICBpZiAoc3ViX2xheWVyX2xl
dmVsX3ByZXNlbnRfZmxhZ3Nba10pIHsKKyAgICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzog
dSg4KQorICAgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMo
MSkpOworICAgICAgfQorICB9CisgIC8vc3BzX3NlcV9wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQor
ICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xv
bWJfaWdub3JlZCkpOworICAvLyBjaHJvbWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0ZB
TFNFX09OX0ZBSUwocGFyc2VyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY2hyb21hX2Zvcm1hdF9p
ZGMpKTsKKyAgaWYgKGNocm9tYV9mb3JtYXRfaWRjID09IDMpIHsKKyAgICAvLyBzZXBlcmF0ZV9j
b2xvdXJfcGxhbmVfZmxhZzogdSgxKQorICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5S
ZWFkQml0cygmc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcsIDEpKTsKKyAgfQorICB1aW50MzJf
dCBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzID0gMDsKKyAgdWludDMyX3QgcGljX2hlaWdodF9p
bl9sdW1hX3NhbXBsZXMgPSAwOworICAvLyBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2
KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZw
aWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzKSk7CisgIC8vIHBpY19oZWlnaHRfaW5fbHVtYV9zYW1w
bGVzOiB1ZSh2KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFs
R29sb21iKCZwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcykpOworICAvLyBjb25mb3JtYW5jZV93
aW5kb3dfZmxhZzogdSgxKQorICB1aW50MzJfdCBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyA9IDA7
CisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmY29uZm9ybWFuY2Vfd2lu
ZG93X2ZsYWcsIDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNldCA9IDA7Cisg
IHVpbnQzMl90IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2lu
X3RvcF9vZmZzZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zmc2V0ID0gMDsK
KyAgaWYgKGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAgICAvLyBjb25mX3dpbl9sZWZ0
X29mZnNldDogdWUodikKKyAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhw
b25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7CisgICAgICAvLyBjb25mX3dp
bl9yaWdodF9vZmZzZXQ6IHVlKHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIu
UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAgIC8v
IGNvbmZfd2luX3RvcF9vZmZzZXQ6IHVlKHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChw
YXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAg
ICAvLyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0OiB1ZSh2KQorICAgICAgUkVUVVJOX0ZBTFNFX09O
X0ZBSUwocGFyc2VyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY29uZl93aW5fYm90dG9tX29mZnNl
dCkpOworICB9CisKKyAgLy9Gb3IgZW5vdWdoIHRvIGdldCB0aGUgcmVzb2x1dGlvbiBpbmZvcm1h
dGlvbi4gY2FsY2FsdWF0ZSBhY2NvcmRpbmcgdG8gSEVWQyBzcGVjIDcuNC4zLjIKKyAgaW50IHdp
ZHRoID0gMDsKKyAgaW50IGhlaWdodCA9IDA7CisKKyAgd2lkdGggPSBwaWNfd2lkdGhfaW5fbHVt
YV9zYW1wbGVzOworICBoZWlnaHQgPSBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczsKKworICBp
ZiAoY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcpIHsKKyAgICBpbnQgc3ViX3dpZHRoX2MgPSAoKDEg
PT0gY2hyb21hX2Zvcm1hdF9pZGMpIHx8ICgyID09IGNocm9tYV9mb3JtYXRfaWRjKSkgJiYKKyAg
ICAgICAgICAgICAgICAgICAgICAgICgwID09IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnKSA/
IDIgOiAxOworICAgIGludCBzdWJfaGVpZ2h0X2MgPSAoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykg
JiYgKDAgPT0gc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcpID8gMiA6IDE7CisgICAgLy90aGUg
b2Zmc2V0IGluY2x1ZGVzIHRoZSBwaXhlbCB3aXRoaW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBk
b24ndCBuZWVkIHRvICsxIGFzIHBlciBzcGVjCisgICAgd2lkdGggLT0gc3ViX3dpZHRoX2MqKGNv
bmZfd2luX3JpZ2h0X29mZnNldCArIGNvbmZfd2luX2xlZnRfb2Zmc2V0KTsKKyAgICBoZWlnaHQg
LT0gc3ViX2hlaWdodF9jKihjb25mX3dpbl90b3Bfb2Zmc2V0ICsgY29uZl93aW5fYm90dG9tX29m
ZnNldCk7CisgIH0KKworICB3aWR0aF8gPSB3aWR0aDsKKyAgaGVpZ2h0XyA9IGhlaWdodDsKKyAg
cmV0dXJuIHRydWU7CisKK30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRj
cC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNjQyYjliZDUzNzY1YTFhMGNkNWNhNTBmOGNmZDNmYjAyMzE0NTgwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
bW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgKQEAgLTAsMCArMSwzNCBA
QAorLyoKKyAqICBJbnRlbCBMaWNlbnNlCisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJy
dGMtdG9vbGtpdAorICogVGhpcyBpcyByZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAg
YW5kIGl0IGlzIGZyZWUgZm9yIGJvdGggYWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICov
CisKKyNpZm5kZWYgV0VCUlRDX01PRFVMRVNfUlRQX1JUQ1BfU09VUkNFX0gyNjVfU1BTX1BBUlNF
Ul9IXworI2RlZmluZSBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfSDI2NV9TUFNfUEFS
U0VSX0hfCisKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworbmFt
ZXNwYWNlIHdlYnJ0YyB7CisKKy8vIEEgY2xhc3MgZm9yIHBhcnNpbmcgb3V0IHNlcXVlbmNlIHBh
cmFtZXRlciBzZXQgKFNQUykgZGF0YSBmcm9tIGFuIEgyNjUgTkFMVS4KKy8vIEN1cnJlbnRseSwg
b25seSByZXNvbHV0aW9uIGlzIHJlYWQgd2l0aG91dCBiZWluZyBpZ25vcmVkLgorY2xhc3MgSDI2
NVNwc1BhcnNlciB7CisgcHVibGljOgorICBIMjY1U3BzUGFyc2VyKGNvbnN0IHVpbnQ4X3QqIHNw
cywgc2l6ZV90IGJ5dGVfbGVuZ3RoKTsKKyAgLy8gUGFyc2VzIHRoZSBTUFMgdG8gY29tcGxldGlv
bi4gUmV0dXJucyB0cnVlIGlmIHRoZSBTUFMgd2FzIHBhcnNlZCBjb3JyZWN0bHkuCisgIGJvb2wg
UGFyc2UoKTsKKyAgdWludDE2X3Qgd2lkdGgoKSB7IHJldHVybiB3aWR0aF87IH0KKyAgdWludDE2
X3QgaGVpZ2h0KCkgeyByZXR1cm4gaGVpZ2h0XzsgfQorCisgcHJpdmF0ZToKKyAgY29uc3QgdWlu
dDhfdCogY29uc3Qgc3BzXzsKKyAgY29uc3Qgc2l6ZV90IGJ5dGVfbGVuZ3RoXzsKKworICB1aW50
MTZfdCB3aWR0aF87CisgIHVpbnQxNl90IGhlaWdodF87Cit9OworCit9ICAvLyBuYW1lc3BhY2Ug
d2VicnRjCisjZW5kaWYgIC8vIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9IMjY1X1NQ
U19QQVJTRVJfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2MgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJj
ZS9ydHBfZm9ybWF0LmNjCmluZGV4IDEyYjVlOGRkYzVhZDY3YmNkMTBhNDNhMWJjMzBiMTEwYTVh
Y2IxZTQuLjYyODEzZDJjNmYyN2NiZTgwMzAyYmNiMWE0MmVhYjViZjRiNjRhMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRw
X3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5jYwpA
QCAtMTQsMTEgKzE0LDE3IEBACiAKICNpbmNsdWRlICJhYnNsL3R5cGVzL3ZhcmlhbnQuaCIKICNp
bmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjQuaCIKKyNpZm5k
ZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zv
cm1hdF9oMjY1LmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9y
dHBfZm9ybWF0X3ZpZGVvX2dlbmVyaWMuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3Nv
dXJjZS9ydHBfZm9ybWF0X3ZwOC5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNl
L3J0cF9mb3JtYXRfdnA5LmgiCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRw
X3BhY2tldGl6ZXJfYXYxLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNz
L2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5j
bHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2Jh
bHMuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgv
aW5jbHVkZS92cDhfZ2xvYmFscy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2Nv
ZGVjcy92cDkvaW5jbHVkZS92cDlfZ2xvYmFscy5oIgogI2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNr
cy5oIgpAQCAtNDUsNiArNTEsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFJ0cFBhY2tldGl6ZXI+IFJ0
cFBhY2tldGl6ZXI6OkNyZWF0ZSgKICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJ0cFBh
Y2tldGl6ZXJIMjY0PigKICAgICAgICAgICBwYXlsb2FkLCBsaW1pdHMsIGgyNjQucGFja2V0aXph
dGlvbl9tb2RlLCAqZnJhZ21lbnRhdGlvbik7CiAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUK
KyAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NTogeworICAgICAgUlRDX0NIRUNLKGZyYWdtZW50YXRp
b24pOworICAgICAgY29uc3QgYXV0byYgaDI2NSA9CisgICAgICAgICAgYWJzbDo6Z2V0PFJUUFZp
ZGVvSGVhZGVySDI2NT4ocnRwX3ZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisgICAg
ICByZXR1cm4gYWJzbDo6bWFrZV91bmlxdWU8UnRwUGFja2V0aXplckgyNjU+KAorICAgICAgICAg
IHBheWxvYWQsIGxpbWl0cywgaDI2NS5wYWNrZXRpemF0aW9uX21vZGUsICpmcmFnbWVudGF0aW9u
KTsKKyAgICB9CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjVlA4OiB7CiAgICAgICBjb25z
dCBhdXRvJiB2cDggPQogICAgICAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlclZQOD4ocnRw
X3ZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9y
dHBfZm9ybWF0X2gyNjUuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuY2MKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmFiMDRhMDA3YzVlZjM1OWQxYTg2NGZkNTQxZTg3MGIzODUxNzZlNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfaDI2NS5jYwpAQCAtMCwwICsxLDY1MCBAQAorLyoK
KyAqICBJbnRlbCBMaWNlbnNlCisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9v
bGtpdAorICogVGhpcyBpcyByZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0
IGlzIGZyZWUgZm9yIGJvdGggYWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNp
bmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29t
bW9uLmgiCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNs
dWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21t
b25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8v
aDI2NS9oMjY1X3Zwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxl
X2NvbW1vbl90eXBlcy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2J5dGVf
aW8uaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUu
aCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfcGFja2V0X3RvX3NlbmQu
aCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCit1c2luZyBuYW1lc3BhY2UgcnRjOwor
CituYW1lc3BhY2Ugd2VicnRjIHsKK25hbWVzcGFjZSB7CisKK2VudW0gTmFsdVR5cGUgeworICBr
VHJhaWxOID0gMCwKKyAga1RyYWlsUiA9IDEsCisgIGtUc2FOID0gMiwKKyAga1RzYVIgPSAzLAor
ICBrU3RzYU4gPSA0LAorICBrU3RzYVIgPSA1LAorICBrUmFkbE4gPSA2LAorICBrUmFkbFIgPSA3
LAorICBrQmxhV0xwID0gMTYsCisgIGtCbGFXUmFkbCA9IDE3LAorICBrQmxhTkxwID0gMTgsCisg
IGtJZHJXUmFkbCA9IDE5LAorICBrSWRyTkxwID0gMjAsCisgIGtDcmEgPSAyMSwKKyAga1ZwcyA9
IDMyLAorICBrSGV2Y1NwcyA9IDMzLAorICBrSGV2Y1BwcyA9IDM0LAorICBrSGV2Y0F1ZCA9IDM1
LAorICBrUHJlZml4U2VpID0gMzksCisgIGtTdWZmaXhTZWkgPSA0MCwKKyAga0hldmNBcCA9IDQ4
LAorICBrSGV2Y0Z1ID0gNDkKK307CisKKy8qCisgICAwICAgICAgICAgICAgICAgICAgIDEgICAg
ICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgICAgICAzCisgICAwIDEgMiAzIDQgNSA2IDcg
OCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEKKyAgKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSsKKyAgfCAgICBQYXlsb2FkSGRyIChUeXBlPTQ5KSAgICAgICB8ICAgRlUgaGVhZGVyICAgfCBE
T05MIChjb25kKSAgIHwKKyAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLXwKKyovCisvLyBVbmxpa2UgSC4yNjQsIEhFVkMgTkFM
IGhlYWRlciBpcyAyLWJ5dGVzLgorc3RhdGljIGNvbnN0IHNpemVfdCBrSGV2Y05hbEhlYWRlclNp
emUgPSAyOworLy8gSC4yNjUncyBGVSBpcyBjb25zdHJ1Y3RlZCBvZiAyLWJ5dGUgcGF5bG9hZCBo
ZWFkZXIsIGFuZCAxLWJ5dGUgRlUgaGVhZGVyCitzdGF0aWMgY29uc3Qgc2l6ZV90IGtIZXZjRnVI
ZWFkZXJTaXplID0gMTsKK3N0YXRpYyBjb25zdCBzaXplX3Qga0hldmNMZW5ndGhGaWVsZFNpemUg
PSAyOworc3RhdGljIGNvbnN0IHNpemVfdCBrSGV2Y0FwSGVhZGVyU2l6ZSA9CisgICAga0hldmNO
YWxIZWFkZXJTaXplICsga0hldmNMZW5ndGhGaWVsZFNpemU7CisKK2VudW0gSGV2Y05hbEhkck1h
c2tzIHsKKyAga0hldmNGQml0ID0gMHg4MCwKKyAga0hldmNUeXBlTWFzayA9IDB4N0UsCisgIGtI
ZXZjTGF5ZXJJREhNYXNrID0gMHgxLAorICBrSGV2Y0xheWVySURMTWFzayA9IDB4RjgsCisgIGtI
ZXZjVElETWFzayA9IDB4NywKKyAga0hldmNUeXBlTWFza04gPSAweDgxLAorICBrSGV2Y1R5cGVN
YXNrSW5GdUhlYWRlciA9IDB4M0YKK307CisKKy8vIEJpdCBtYXNrcyBmb3IgRlUgaGVhZGVycy4K
K2VudW0gSGV2Y0Z1RGVmcyB7IGtIZXZjU0JpdCA9IDB4ODAsIGtIZXZjRUJpdCA9IDB4NDAsIGtI
ZXZjRnVUeXBlQml0ID0gMHgzRiB9OworCisvLyBUT0RPKHBib3MpOiBBdm9pZCBwYXJzaW5nIHRo
aXMgaGVyZSBhcyB3ZWxsIGFzIGluc2lkZSB0aGUgaml0dGVyIGJ1ZmZlci4KK2Jvb2wgUGFyc2VB
cFN0YXJ0T2Zmc2V0cyhjb25zdCB1aW50OF90KiBuYWx1X3B0ciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgbGVuZ3RoX3JlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGQ6OnZlY3RvcjxzaXplX3Q+KiBvZmZzZXRzKSB7CisgIHNpemVfdCBvZmZzZXQgPSAwOwor
ICB3aGlsZSAobGVuZ3RoX3JlbWFpbmluZyA+IDApIHsKKyAgICAvLyBCdWZmZXIgZG9lc24ndCBj
b250YWluIHJvb20gZm9yIGFkZGl0aW9uYWwgbmFsdSBsZW5ndGguCisgICAgaWYgKGxlbmd0aF9y
ZW1haW5pbmcgPCBzaXplb2YodWludDE2X3QpKQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIHVp
bnQxNl90IG5hbHVfc2l6ZSA9IEJ5dGVSZWFkZXI8dWludDE2X3Q+OjpSZWFkQmlnRW5kaWFuKG5h
bHVfcHRyKTsKKyAgICBuYWx1X3B0ciArPSBzaXplb2YodWludDE2X3QpOworICAgIGxlbmd0aF9y
ZW1haW5pbmcgLT0gc2l6ZW9mKHVpbnQxNl90KTsKKyAgICBpZiAobmFsdV9zaXplID4gbGVuZ3Ro
X3JlbWFpbmluZykKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICBuYWx1X3B0ciArPSBuYWx1X3Np
emU7CisgICAgbGVuZ3RoX3JlbWFpbmluZyAtPSBuYWx1X3NpemU7CisKKyAgICBvZmZzZXRzLT5w
dXNoX2JhY2sob2Zmc2V0ICsga0hldmNBcEhlYWRlclNpemUpOworICAgIG9mZnNldCArPSBrSGV2
Y0xlbmd0aEZpZWxkU2l6ZSArIG5hbHVfc2l6ZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKwor
fSAgLy8gbmFtZXNwYWNlCisKK1J0cFBhY2tldGl6ZXJIMjY1OjpSdHBQYWNrZXRpemVySDI2NSgK
KyAgICBydGM6OkFycmF5Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2FkLAorICAgIFBheWxvYWRT
aXplTGltaXRzIGxpbWl0cywKKyAgICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlv
bl9tb2RlLAorICAgIGNvbnN0IFJUUEZyYWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24p
CisgICAgOiBsaW1pdHNfKGxpbWl0cyksCisgICAgICBudW1fcGFja2V0c19sZWZ0XygwKSB7Cisg
IC8vIEd1YXJkIGFnYWluc3QgdW5pbml0aWFsaXplZCBtZW1vcnkgaW4gcGFja2V0aXphdGlvbl9t
b2RlLgorICBSVENfQ0hFQ0socGFja2V0aXphdGlvbl9tb2RlID09IEgyNjVQYWNrZXRpemF0aW9u
TW9kZTo6Tm9uSW50ZXJsZWF2ZWQgfHwKKyAgICAgICAgICAgIHBhY2tldGl6YXRpb25fbW9kZSA9
PSBIMjY1UGFja2V0aXphdGlvbk1vZGU6OlNpbmdsZU5hbFVuaXQpOworCisgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0aW9uVmVjdG9yU2l6ZTsgKytpKSB7
CisgICAgY29uc3QgdWludDhfdCogZnJhZ21lbnQgPQorICAgICAgICBwYXlsb2FkLmRhdGEoKSAr
IGZyYWdtZW50YXRpb24uZnJhZ21lbnRhdGlvbk9mZnNldFtpXTsKKyAgICBjb25zdCBzaXplX3Qg
ZnJhZ21lbnRfbGVuZ3RoID0gZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldOwor
ICAgIGlucHV0X2ZyYWdtZW50c18ucHVzaF9iYWNrKEZyYWdtZW50KGZyYWdtZW50LCBmcmFnbWVu
dF9sZW5ndGgpKTsKKyAgfQorCisgIGlmICghR2VuZXJhdGVQYWNrZXRzKHBhY2tldGl6YXRpb25f
bW9kZSkpIHsKKyAgICAvLyBJZiBmYWlsZWQgdG8gZ2VuZXJhdGUgYWxsIHRoZSBwYWNrZXRzLCBk
aXNjYXJkIGFscmVhZHkgZ2VuZXJhdGVkCisgICAgLy8gcGFja2V0cyBpbiBjYXNlIHRoZSBjYWxs
ZXIgd291bGQgaWdub3JlIHJldHVybiB2YWx1ZSBhbmQgc3RpbGwgdHJ5IHRvCisgICAgLy8gY2Fs
bCBOZXh0UGFja2V0KCkuCisgICAgbnVtX3BhY2tldHNfbGVmdF8gPSAwOworICAgIHdoaWxlICgh
cGFja2V0c18uZW1wdHkoKSkgeworICAgICAgcGFja2V0c18ucG9wKCk7CisgICAgfQorICB9Cit9
CisKK1J0cFBhY2tldGl6ZXJIMjY1Ojp+UnRwUGFja2V0aXplckgyNjUoKSB7fQorCitzaXplX3Qg
UnRwUGFja2V0aXplckgyNjU6Ok51bVBhY2tldHMoKSBjb25zdCB7CisgIHJldHVybiBudW1fcGFj
a2V0c19sZWZ0XzsKK30KKworUnRwUGFja2V0aXplckgyNjU6OkZyYWdtZW50OjpGcmFnbWVudChj
b25zdCB1aW50OF90KiBidWZmZXIsIHNpemVfdCBsZW5ndGgpCisgICAgOiBidWZmZXIoYnVmZmVy
KSwgbGVuZ3RoKGxlbmd0aCkge30KK1J0cFBhY2tldGl6ZXJIMjY1OjpGcmFnbWVudDo6RnJhZ21l
bnQoY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50KQorICAgIDogYnVmZmVyKGZyYWdtZW50LmJ1ZmZl
ciksIGxlbmd0aChmcmFnbWVudC5sZW5ndGgpIHt9CisKKworYm9vbCBSdHBQYWNrZXRpemVySDI2
NTo6R2VuZXJhdGVQYWNrZXRzKAorICAgIEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0
aW9uX21vZGUpIHsKKyAgLy8gRm9yIEhFVkMgd2UgZm9sbG93IG5vbi1pbnRlcmxlYXZlZCBtb2Rl
IGZvciB0aGUgcGFja2V0aXphdGlvbiwKKyAgLy8gYW5kIGRvbid0IHN1cHBvcnQgc2luZ2xlLW5h
bHUgbW9kZSBhdCBwcmVzZW50LgorICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlucHV0X2ZyYWdt
ZW50c18uc2l6ZSgpOykgeworICAgIGludCBmcmFnbWVudF9sZW4gPSBpbnB1dF9mcmFnbWVudHNf
W2ldLmxlbmd0aDsKKyAgICBpbnQgc2luZ2xlX3BhY2tldF9jYXBhY2l0eSA9IGxpbWl0c18ubWF4
X3BheWxvYWRfbGVuOworICAgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSA9PSAxKQorICAg
ICAgc2luZ2xlX3BhY2tldF9jYXBhY2l0eSAtPSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0
aW9uX2xlbjsKKyAgICBlbHNlIGlmIChpID09IDApCisgICAgICBzaW5nbGVfcGFja2V0X2NhcGFj
aXR5IC09IGxpbWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgZWxzZSBpZiAo
aSArIDEgPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkpIHsKKyAgICAgIC8vIFByZXRlbmQgdGhh
dCBsYXN0IGZyYWdtZW50IGlzIGxhcmdlciBpbnN0ZWFkIG9mIG1ha2luZyBsYXN0IHBhY2tldAor
ICAgICAgLy8gc21hbGxlci4KKyAgICAgIHNpbmdsZV9wYWNrZXRfY2FwYWNpdHkgLT0gbGltaXRz
Xy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICAgIH0KKyAgICBpZiAoZnJhZ21lbnRfbGVu
ID4gc2luZ2xlX3BhY2tldF9jYXBhY2l0eSkgeworICAgICAgUGFja2V0aXplRnUoaSk7CisgICAg
ICArK2k7CisgICAgfSBlbHNlIHsKKyAgICAgIFBhY2tldGl6ZVNpbmdsZU5hbHUoaSk7CisgICAg
ICArK2k7CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJ0cFBhY2tldGl6
ZXJIMjY1OjpQYWNrZXRpemVGdShzaXplX3QgZnJhZ21lbnRfaW5kZXgpIHsKKyAgLy8gRnJhZ21l
bnQgcGF5bG9hZCBpbnRvIHBhY2tldHMgKEZVKS4KKyAgLy8gU3RyaXAgb3V0IHRoZSBvcmlnaW5h
bCBoZWFkZXIgYW5kIGxlYXZlIHJvb20gZm9yIHRoZSBGVSBoZWFkZXIuCisgIGNvbnN0IEZyYWdt
ZW50JiBmcmFnbWVudCA9IGlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOworICBQYXls
b2FkU2l6ZUxpbWl0cyBsaW1pdHMgPSBsaW1pdHNfOworICBsaW1pdHMubWF4X3BheWxvYWRfbGVu
IC09IGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplOworCisgIC8vIFVwZGF0
ZSBzaW5nbGUvZmlyc3QvbGFzdCBwYWNrZXQgcmVkdWN0aW9ucyB1bmxlc3MgaXQgaXMgc2luZ2xl
L2ZpcnN0L2xhc3QKKyAgLy8gZnJhZ21lbnQuCisgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUo
KSAhPSAxKSB7CisgICAgLy8gaWYgdGhpcyBmcmFnbWVudCBpcyBwdXQgaW50byBhIHNpbmdsZSBw
YWNrZXQsIGl0IG1pZ2h0IHN0aWxsIGJlIHRoZQorICAgIC8vIGZpcnN0IG9yIHRoZSBsYXN0IHBh
Y2tldCBpbiB0aGUgd2hvbGUgc2VxdWVuY2Ugb2YgcGFja2V0cy4KKyAgICBpZiAoZnJhZ21lbnRf
aW5kZXggPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKSB7CisgICAgICBsaW1pdHMuc2lu
Z2xlX3BhY2tldF9yZWR1Y3Rpb25fbGVuID0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25f
bGVuOworICAgIH0gZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkgeworICAgICAgbGltaXRz
LnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbiA9IGxpbWl0c18uZmlyc3RfcGFja2V0X3JlZHVj
dGlvbl9sZW47CisgICAgfSBlbHNlIHsKKyAgICAgIGxpbWl0cy5zaW5nbGVfcGFja2V0X3JlZHVj
dGlvbl9sZW4gPSAwOworICAgIH0KKyAgfQorICBpZiAoZnJhZ21lbnRfaW5kZXggIT0gMCkKKyAg
ICBsaW1pdHMuZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSAwOworICBpZiAoZnJhZ21lbnRf
aW5kZXggIT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKQorICAgIGxpbWl0cy5sYXN0X3Bh
Y2tldF9yZWR1Y3Rpb25fbGVuID0gMDsKKworICAvLyBTdHJpcCBvdXQgdGhlIG9yaWdpbmFsIGhl
YWRlci4KKyAgc2l6ZV90IHBheWxvYWRfbGVmdCA9IGZyYWdtZW50Lmxlbmd0aCAtIGtIZXZjTmFs
SGVhZGVyU2l6ZTsKKyAgaW50IG9mZnNldCA9IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKworICBzdGQ6
OnZlY3RvcjxpbnQ+IHBheWxvYWRfc2l6ZXMgPSBTcGxpdEFib3V0RXF1YWxseShwYXlsb2FkX2xl
ZnQsIGxpbWl0cyk7CisgIGlmIChwYXlsb2FkX3NpemVzLmVtcHR5KCkpCisgICAgcmV0dXJuIGZh
bHNlOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGF5bG9hZF9zaXplcy5zaXplKCk7ICsr
aSkgeworICAgIGludCBwYWNrZXRfbGVuZ3RoID0gcGF5bG9hZF9zaXplc1tpXTsKKyAgICBSVENf
Q0hFQ0tfR1QocGFja2V0X2xlbmd0aCwgMCk7CisgICAgdWludDE2X3QgaGVhZGVyID0gKGZyYWdt
ZW50LmJ1ZmZlclswXSA8PCA4KSB8IGZyYWdtZW50LmJ1ZmZlclsxXTsKKyAgICBwYWNrZXRzXy5w
dXNoKFBhY2tldFVuaXQoRnJhZ21lbnQoZnJhZ21lbnQuYnVmZmVyICsgb2Zmc2V0LCBwYWNrZXRf
bGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypmaXJzdF9mcmFnbWVudD0q
L2kgPT0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypsYXN0X2ZyYWdtZW50PSov
aSA9PSBwYXlsb2FkX3NpemVzLnNpemUoKSAtIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZhbHNlLCBoZWFkZXIpKTsKKyAgICBvZmZzZXQgKz0gcGFja2V0X2xlbmd0aDsKKyAgICBw
YXlsb2FkX2xlZnQgLT0gcGFja2V0X2xlbmd0aDsKKyAgfQorICBudW1fcGFja2V0c19sZWZ0XyAr
PSBwYXlsb2FkX3NpemVzLnNpemUoKTsKKyAgUlRDX0NIRUNLX0VRKDAsIHBheWxvYWRfbGVmdCk7
CisgIHJldHVybiB0cnVlOworfQorCisKK2Jvb2wgUnRwUGFja2V0aXplckgyNjU6OlBhY2tldGl6
ZVNpbmdsZU5hbHUoc2l6ZV90IGZyYWdtZW50X2luZGV4KSB7CisgIC8vIEFkZCBhIHNpbmdsZSBO
QUxVIHRvIHRoZSBxdWV1ZSwgbm8gYWdncmVnYXRpb24uCisgIHNpemVfdCBwYXlsb2FkX3NpemVf
bGVmdCA9IGxpbWl0c18ubWF4X3BheWxvYWRfbGVuOworICBpZiAoaW5wdXRfZnJhZ21lbnRzXy5z
aXplKCkgPT0gMSkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1pdHNfLnNpbmdsZV9wYWNr
ZXRfcmVkdWN0aW9uX2xlbjsKKyAgZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkKKyAgICBw
YXlsb2FkX3NpemVfbGVmdCAtPSBsaW1pdHNfLmZpcnN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOwor
ICBlbHNlIGlmIChmcmFnbWVudF9pbmRleCArIDEgPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkp
CisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25f
bGVuOworICBjb25zdCBGcmFnbWVudCogZnJhZ21lbnQgPSAmaW5wdXRfZnJhZ21lbnRzX1tmcmFn
bWVudF9pbmRleF07CisgIGlmIChwYXlsb2FkX3NpemVfbGVmdCA8IGZyYWdtZW50LT5sZW5ndGgp
IHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGZpdCBhIGZyYWdtZW50IHRv
IHBhY2tldCBpbiBTaW5nbGVOYWx1ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAicGFja2V0
aXphdGlvbiBtb2RlLiBQYXlsb2FkIHNpemUgbGVmdCAiCisgICAgICAgICAgICAgICAgICAgICAg
PDwgcGF5bG9hZF9zaXplX2xlZnQgPDwgIiwgZnJhZ21lbnQgbGVuZ3RoICIKKyAgICAgICAgICAg
ICAgICAgICAgICA8PCBmcmFnbWVudC0+bGVuZ3RoIDw8ICIsIHBhY2tldCBjYXBhY2l0eSAiCisg
ICAgICAgICAgICAgICAgICAgICAgPDwgbGltaXRzXy5tYXhfcGF5bG9hZF9sZW47CisgICAgcmV0
dXJuIGZhbHNlOworICB9CisgIFJUQ19DSEVDS19HVChmcmFnbWVudC0+bGVuZ3RoLCAwdSk7Cisg
IHBhY2tldHNfLnB1c2goUGFja2V0VW5pdCgqZnJhZ21lbnQsIHRydWUgLyogZmlyc3QgKi8sIHRy
dWUgLyogbGFzdCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIGFnZ3Jl
Z2F0ZWQgKi8sIGZyYWdtZW50LT5idWZmZXJbMF0pKTsKKyAgKytudW1fcGFja2V0c19sZWZ0XzsK
KyAgcmV0dXJuIHRydWU7Cit9CisKK2ludCBSdHBQYWNrZXRpemVySDI2NTo6UGFja2V0aXplQXAo
c2l6ZV90IGZyYWdtZW50X2luZGV4KSB7CisgIC8vIEFnZ3JlZ2F0ZSBmcmFnbWVudHMgaW50byBv
bmUgcGFja2V0IChTVEFQLUEpLgorICBzaXplX3QgcGF5bG9hZF9zaXplX2xlZnQgPSBsaW1pdHNf
Lm1heF9wYXlsb2FkX2xlbjsKKyAgaWYgKGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpCisg
ICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9s
ZW47CisgIGVsc2UgaWYgKGZyYWdtZW50X2luZGV4ID09IDApCisgICAgcGF5bG9hZF9zaXplX2xl
ZnQgLT0gbGltaXRzXy5maXJzdF9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgaW50IGFnZ3JlZ2F0
ZWRfZnJhZ21lbnRzID0gMDsKKyAgc2l6ZV90IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoID0gMDsK
KyAgY29uc3QgRnJhZ21lbnQqIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRf
aW5kZXhdOworICBSVENfQ0hFQ0tfR0UocGF5bG9hZF9zaXplX2xlZnQsIGZyYWdtZW50LT5sZW5n
dGgpOworICArK251bV9wYWNrZXRzX2xlZnRfOworCisgIGF1dG8gcGF5bG9hZF9zaXplX25lZWRl
ZCA9IFsmXSB7CisgICAgc2l6ZV90IGZyYWdtZW50X3NpemUgPSBmcmFnbWVudC0+bGVuZ3RoICsg
ZnJhZ21lbnRfaGVhZGVyc19sZW5ndGg7CisgICAgaWYgKGlucHV0X2ZyYWdtZW50c18uc2l6ZSgp
ID09IDEpIHsKKyAgICAgIC8vIFNpbmdsZSBmcmFnbWVudCwgc2luZ2xlIHBhY2tldCwgcGF5bG9h
ZF9zaXplX2xlZnQgYWxyZWFkeSBhZGp1c3RlZAorICAgICAgLy8gd2l0aCBsaW1pdHNfLnNpbmds
ZV9wYWNrZXRfcmVkdWN0aW9uX2xlbi4KKyAgICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICAg
IH0KKyAgICBpZiAoZnJhZ21lbnRfaW5kZXggPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAx
KSB7CisgICAgICAvLyBMYXN0IGZyYWdtZW50LCBzbyBTdHJhcEEgbWlnaHQgYmUgdGhlIGxhc3Qg
cGFja2V0LgorICAgICAgcmV0dXJuIGZyYWdtZW50X3NpemUgKyBsaW1pdHNfLmxhc3RfcGFja2V0
X3JlZHVjdGlvbl9sZW47CisgICAgfQorICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICB9Owor
CisgIHdoaWxlIChwYXlsb2FkX3NpemVfbGVmdCA+PSBwYXlsb2FkX3NpemVfbmVlZGVkKCkpIHsK
KyAgICBSVENfQ0hFQ0tfR1QoZnJhZ21lbnQtPmxlbmd0aCwgMCk7CisgICAgcGFja2V0c18ucHVz
aChQYWNrZXRVbml0KCpmcmFnbWVudCwgYWdncmVnYXRlZF9mcmFnbWVudHMgPT0gMCwgZmFsc2Us
IHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50LT5idWZmZXJbMF0p
KTsKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBmcmFnbWVudC0+bGVuZ3RoOworICAgIHBheWxv
YWRfc2l6ZV9sZWZ0IC09IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoOworCisgICAgZnJhZ21lbnRf
aGVhZGVyc19sZW5ndGggPSBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAgICAvLyBJZiB3ZSBhcmUg
Z29pbmcgdG8gdHJ5IHRvIGFnZ3JlZ2F0ZSBtb3JlIGZyYWdtZW50cyBpbnRvIHRoaXMgcGFja2V0
CisgICAgLy8gd2UgbmVlZCB0byBhZGQgdGhlIFNUQVAtQSBOQUxVIGhlYWRlciBhbmQgYSBsZW5n
dGggZmllbGQgZm9yIHRoZSBmaXJzdAorICAgIC8vIE5BTFUgb2YgdGhpcyBwYWNrZXQuCisgICAg
aWYgKGFnZ3JlZ2F0ZWRfZnJhZ21lbnRzID09IDApCisgICAgICBmcmFnbWVudF9oZWFkZXJzX2xl
bmd0aCArPSBrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAgICAr
K2FnZ3JlZ2F0ZWRfZnJhZ21lbnRzOworCisgICAgLy8gTmV4dCBmcmFnbWVudC4KKyAgICArK2Zy
YWdtZW50X2luZGV4OworICAgIGlmIChmcmFnbWVudF9pbmRleCA9PSBpbnB1dF9mcmFnbWVudHNf
LnNpemUoKSkKKyAgICAgIGJyZWFrOworICAgIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19b
ZnJhZ21lbnRfaW5kZXhdOworICB9CisgIFJUQ19DSEVDS19HVChhZ2dyZWdhdGVkX2ZyYWdtZW50
cywgMCk7CisgIHBhY2tldHNfLmJhY2soKS5sYXN0X2ZyYWdtZW50ID0gdHJ1ZTsKKyAgcmV0dXJu
IGZyYWdtZW50X2luZGV4OworfQorCitib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpOZXh0UGFja2V0
KFJ0cFBhY2tldFRvU2VuZCogcnRwX3BhY2tldCkgeworICBSVENfRENIRUNLKHJ0cF9wYWNrZXQp
OworCisgIGlmIChwYWNrZXRzXy5lbXB0eSgpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisK
KyAgUGFja2V0VW5pdCBwYWNrZXQgPSBwYWNrZXRzXy5mcm9udCgpOworCisgIGlmIChwYWNrZXQu
Zmlyc3RfZnJhZ21lbnQgJiYgcGFja2V0Lmxhc3RfZnJhZ21lbnQpIHsKKyAgICAvLyBTaW5nbGUg
TkFMIHVuaXQgcGFja2V0LgorICAgIHNpemVfdCBieXRlc190b19zZW5kID0gcGFja2V0LnNvdXJj
ZV9mcmFnbWVudC5sZW5ndGg7CisgICAgdWludDhfdCogYnVmZmVyID0gcnRwX3BhY2tldC0+QWxs
b2NhdGVQYXlsb2FkKGJ5dGVzX3RvX3NlbmQpOworICAgIG1lbWNweShidWZmZXIsIHBhY2tldC5z
b3VyY2VfZnJhZ21lbnQuYnVmZmVyLCBieXRlc190b19zZW5kKTsKKyAgICBwYWNrZXRzXy5wb3Ao
KTsKKyAgICBpbnB1dF9mcmFnbWVudHNfLnBvcF9mcm9udCgpOworICB9IGVsc2UgaWYgKHBhY2tl
dC5hZ2dyZWdhdGVkKSB7CisgICAgYm9vbCBpc19sYXN0X3BhY2tldCA9IG51bV9wYWNrZXRzX2xl
ZnRfID09IDE7CisgICAgTmV4dEFnZ3JlZ2F0ZVBhY2tldChydHBfcGFja2V0LCBpc19sYXN0X3Bh
Y2tldCk7CisgIH0gZWxzZSB7CisgICAgTmV4dEZyYWdtZW50UGFja2V0KHJ0cF9wYWNrZXQpOwor
ICB9CisgIHJ0cF9wYWNrZXQtPlNldE1hcmtlcihwYWNrZXRzXy5lbXB0eSgpKTsKKyAgLS1udW1f
cGFja2V0c19sZWZ0XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUnRwUGFja2V0aXplckgy
NjU6Ok5leHRBZ2dyZWdhdGVQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGxhc3QpIHsKKyAg
c2l6ZV90IHBheWxvYWRfY2FwYWNpdHkgPSBydHBfcGFja2V0LT5GcmVlQ2FwYWNpdHkoKTsKKyAg
UlRDX0NIRUNLX0dFKHBheWxvYWRfY2FwYWNpdHksIGtIZXZjTmFsSGVhZGVyU2l6ZSk7CisgIHVp
bnQ4X3QqIGJ1ZmZlciA9IHJ0cF9wYWNrZXQtPkFsbG9jYXRlUGF5bG9hZChwYXlsb2FkX2NhcGFj
aXR5KTsKKworICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFja2V0c18uZnJvbnQoKTsKKyAgUlRD
X0NIRUNLKHBhY2tldC0+Zmlyc3RfZnJhZ21lbnQpOworICB1aW50OF90IHBheWxvYWRfaGRyX2gg
PSBwYWNrZXQtPmhlYWRlciA+PiA4OworICB1aW50OF90IHBheWxvYWRfaGRyX2wgPSBwYWNrZXQt
PmhlYWRlciAmIDB4RkY7CisgIHVpbnQ4X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRfaGRyX2ggJiBr
SGV2Y0xheWVySURITWFzazsKKworICBwYXlsb2FkX2hkcl9oID0KKyAgICAgIChwYXlsb2FkX2hk
cl9oICYga0hldmNUeXBlTWFza04pIHwgKGtIZXZjQXAgPDwgMSkgfCBsYXllcl9pZF9oOworCisg
IGJ1ZmZlclswXSA9IHBheWxvYWRfaGRyX2g7CisgIGJ1ZmZlclsxXSA9IHBheWxvYWRfaGRyX2w7
CisgIGludCBpbmRleCA9IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKyAgYm9vbCBpc19sYXN0X2ZyYWdt
ZW50ID0gcGFja2V0LT5sYXN0X2ZyYWdtZW50OworICB3aGlsZSAocGFja2V0LT5hZ2dyZWdhdGVk
KSB7CisgICAgLy8gQWRkIE5BTCB1bml0IGxlbmd0aCBmaWVsZC4KKyAgICBjb25zdCBGcmFnbWVu
dCYgZnJhZ21lbnQgPSBwYWNrZXQtPnNvdXJjZV9mcmFnbWVudDsKKyAgICBCeXRlV3JpdGVyPHVp
bnQxNl90Pjo6V3JpdGVCaWdFbmRpYW4oJmJ1ZmZlcltpbmRleF0sIGZyYWdtZW50Lmxlbmd0aCk7
CisgICAgaW5kZXggKz0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAgLy8gQWRkIE5BTCB1bml0
LgorICAgIG1lbWNweSgmYnVmZmVyW2luZGV4XSwgZnJhZ21lbnQuYnVmZmVyLCBmcmFnbWVudC5s
ZW5ndGgpOworICAgIGluZGV4ICs9IGZyYWdtZW50Lmxlbmd0aDsKKyAgICBwYWNrZXRzXy5wb3Ao
KTsKKyAgICBpbnB1dF9mcmFnbWVudHNfLnBvcF9mcm9udCgpOworICAgIGlmIChpc19sYXN0X2Zy
YWdtZW50KQorICAgICAgYnJlYWs7CisgICAgcGFja2V0ID0gJnBhY2tldHNfLmZyb250KCk7Cisg
ICAgaXNfbGFzdF9mcmFnbWVudCA9IHBhY2tldC0+bGFzdF9mcmFnbWVudDsKKyAgfQorICBSVENf
Q0hFQ0soaXNfbGFzdF9mcmFnbWVudCk7CisgIHJ0cF9wYWNrZXQtPlNldFBheWxvYWRTaXplKGlu
ZGV4KTsKK30KKwordm9pZCBSdHBQYWNrZXRpemVySDI2NTo6TmV4dEZyYWdtZW50UGFja2V0KFJ0
cFBhY2tldFRvU2VuZCogcnRwX3BhY2tldCkgeworICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFj
a2V0c18uZnJvbnQoKTsKKyAgLy8gTkFMIHVuaXQgZnJhZ21lbnRlZCBvdmVyIG11bHRpcGxlIHBh
Y2tldHMgKEZVKS4KKyAgLy8gV2UgZG8gbm90IHNlbmQgb3JpZ2luYWwgTkFMVSBoZWFkZXIsIHNv
IGl0IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlCisgIC8vIFBheWxvYWRIZHIgb2YgdGhlIGZpcnN0
IHBhY2tldC4KKyAgdWludDhfdCBwYXlsb2FkX2hkcl9oID0KKyAgICAgIHBhY2tldC0+aGVhZGVy
ID4+IDg7ICAvLyAxLWJpdCBGLCA2LWJpdCB0eXBlLCAxLWJpdCBsYXllcklEIGhpZ2hlc3QtYml0
CisgIHVpbnQ4X3QgcGF5bG9hZF9oZHJfbCA9IHBhY2tldC0+aGVhZGVyICYgMHhGRjsKKyAgdWlu
dDhfdCBsYXllcl9pZF9oID0gcGF5bG9hZF9oZHJfaCAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1
aW50OF90IGZ1X2hlYWRlciA9IDA7CisgIC8vIFMgfCBFIHw2IGJpdCB0eXBlLgorICBmdV9oZWFk
ZXIgfD0gKHBhY2tldC0+Zmlyc3RfZnJhZ21lbnQgPyBrSGV2Y1NCaXQgOiAwKTsKKyAgZnVfaGVh
ZGVyIHw9IChwYWNrZXQtPmxhc3RfZnJhZ21lbnQgPyBrSGV2Y0VCaXQgOiAwKTsKKyAgdWludDhf
dCB0eXBlID0gKHBheWxvYWRfaGRyX2ggJiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICBmdV9oZWFk
ZXIgfD0gdHlwZTsKKyAgLy8gTm93IHVwZGF0ZSBwYXlsb2FkX2hkcl9oIHdpdGggRlUgdHlwZS4K
KyAgcGF5bG9hZF9oZHJfaCA9CisgICAgICAocGF5bG9hZF9oZHJfaCAmIGtIZXZjVHlwZU1hc2tO
KSB8IChrSGV2Y0Z1IDw8IDEpIHwgbGF5ZXJfaWRfaDsKKyAgY29uc3QgRnJhZ21lbnQmIGZyYWdt
ZW50ID0gcGFja2V0LT5zb3VyY2VfZnJhZ21lbnQ7CisgIHVpbnQ4X3QqIGJ1ZmZlciA9IHJ0cF9w
YWNrZXQtPkFsbG9jYXRlUGF5bG9hZCgKKyAgICAgIGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNO
YWxIZWFkZXJTaXplICsgZnJhZ21lbnQubGVuZ3RoKTsKKyAgYnVmZmVyWzBdID0gcGF5bG9hZF9o
ZHJfaDsKKyAgYnVmZmVyWzFdID0gcGF5bG9hZF9oZHJfbDsKKyAgYnVmZmVyWzJdID0gZnVfaGVh
ZGVyOworCisgIGlmIChwYWNrZXQtPmxhc3RfZnJhZ21lbnQpIHsKKyAgICBtZW1jcHkoYnVmZmVy
ICsga0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZl
ciwKKyAgICAgICAgICAgZnJhZ21lbnQubGVuZ3RoKTsKKyAgfSBlbHNlIHsKKyAgICBtZW1jcHko
YnVmZmVyICsga0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50
LmJ1ZmZlciwKKyAgICAgICAgICAgZnJhZ21lbnQubGVuZ3RoKTsKKyAgfQorICBwYWNrZXRzXy5w
b3AoKTsKK30KKworYWJzbDo6b3B0aW9uYWw8VmlkZW9SdHBEZXBhY2tldGl6ZXI6OlBhcnNlZFJ0
cFBheWxvYWQ+IFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6UGFyc2UoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ0Yzo6Q29weU9uV3JpdGVCdWZmZXIgcnRwX3BheWxvYWQpIHsK
KyAgc2l6ZV90IHBheWxvYWRfZGF0YV9sZW5ndGggPSBydHBfcGF5bG9hZC5zaXplKCk7CisgIGlm
IChwYXlsb2FkX2RhdGFfbGVuZ3RoID09IDApIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
RW1wdHkgcGF5bG9hZC4iOworICAgIHJldHVybiBhYnNsOjpudWxsb3B0OworICB9CisKKyAgUGFy
c2VkUnRwUGF5bG9hZCBwYXJzZWRfcGF5bG9hZDsKKworICB1aW50OF90KiBwYXlsb2FkX2RhdGEg
PSBydHBfcGF5bG9hZC5kYXRhKCk7CisKKyAgb2Zmc2V0XyA9IDA7CisgIGxlbmd0aF8gPSBwYXls
b2FkX2RhdGFfbGVuZ3RoOworICBtb2RpZmllZF9idWZmZXJfLnJlc2V0KCk7CisKKyAgdWludDhf
dCBuYWxfdHlwZSA9IChwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICBw
YXJzZWRfcGF5bG9hZC52aWRlb19oZWFkZXIKKyAgICAgIC52aWRlb190eXBlX2hlYWRlci5lbXBs
YWNlPFJUUFZpZGVvSGVhZGVySDI2NT4oKTsKKworICBpZiAobmFsX3R5cGUgPT0gSDI2NTo6TmFs
dVR5cGU6OmtGVSkgeworICAgIC8vIEZyYWdtZW50ZWQgTkFMIHVuaXRzIChGVS1BKS4KKyAgICBp
ZiAoIVBhcnNlRnVOYWx1KCZwYXJzZWRfcGF5bG9hZCwgcGF5bG9hZF9kYXRhKSkKKyAgICAgIHJl
dHVybiBhYnNsOjpudWxsb3B0OworICB9IGVsc2UgeworICAgIC8vIFdlIGhhbmRsZSBTVEFQLUEg
YW5kIHNpbmdsZSBOQUxVJ3MgdGhlIHNhbWUgd2F5IGhlcmUuIFRoZSBqaXR0ZXIgYnVmZmVyCisg
ICAgLy8gd2lsbCBkZXBhY2tldGl6ZSB0aGUgU1RBUC1BIGludG8gTkFMIHVuaXRzIGxhdGVyLgor
ICAgIC8vIFRPRE8oc3ByYW5nKTogUGFyc2UgU1RBUC1BIG9mZnNldHMgaGVyZSBhbmQgc3RvcmUg
aW4gZnJhZ21lbnRhdGlvbiB2ZWMuCisgICAgaWYgKCFQcm9jZXNzQXBPclNpbmdsZU5hbHUoJnBh
cnNlZF9wYXlsb2FkLCBwYXlsb2FkX2RhdGEpKQorICAgICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7
CisgIH0KKworICBjb25zdCB1aW50OF90KiBwYXlsb2FkID0KKyAgICAgIG1vZGlmaWVkX2J1ZmZl
cl8gPyBtb2RpZmllZF9idWZmZXJfLT5kYXRhKCkgOiBwYXlsb2FkX2RhdGE7CisKKyAgcGFyc2Vk
X3BheWxvYWQudmlkZW9fcGF5bG9hZCA9IHsgcGF5bG9hZCArIG9mZnNldF8sIGxlbmd0aF8gfTsK
KyAgcmV0dXJuIHBhcnNlZF9wYXlsb2FkOworfQorCitib29sIFZpZGVvUnRwRGVwYWNrZXRpemVy
SDI2NTo6UHJvY2Vzc0FwT3JTaW5nbGVOYWx1KAorICAgIFBhcnNlZFJ0cFBheWxvYWQqIHBhcnNl
ZF9wYXlsb2FkLAorICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSkgeworICBwYXJzZWRf
cGF5bG9hZC0+dmlkZW9faGVhZGVyLndpZHRoID0gMDsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVv
X2hlYWRlci5oZWlnaHQgPSAwOworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmNvZGVj
ID0ga1ZpZGVvQ29kZWNIMjY1OworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmlzX2Zp
cnN0X3BhY2tldF9pbl9mcmFtZSA9IHRydWU7CisgIGF1dG8mIGgyNjVfaGVhZGVyID0gYWJzbDo6
Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4oCisgICAgICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVh
ZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKKworICBjb25zdCB1aW50OF90KiBuYWx1X3N0YXJ0ID0g
cGF5bG9hZF9kYXRhICsga0hldmNOYWxIZWFkZXJTaXplOworICBjb25zdCBzaXplX3QgbmFsdV9s
ZW5ndGggPSBsZW5ndGhfIC0ga0hldmNOYWxIZWFkZXJTaXplOworICB1aW50OF90IG5hbF90eXBl
ID0gKHBheWxvYWRfZGF0YVswXSAmIGtIZXZjVHlwZU1hc2spID4+IDE7CisgIHN0ZDo6dmVjdG9y
PHNpemVfdD4gbmFsdV9zdGFydF9vZmZzZXRzOworICBpZiAobmFsX3R5cGUgPT0gSDI2NTo6TmFs
dVR5cGU6OmtBUCkgeworICAgIC8vIFNraXAgdGhlIFN0YXBBIGhlYWRlciAoU3RhcEEgTkFMIHR5
cGUgKyBsZW5ndGgpLgorICAgIGlmIChsZW5ndGhfIDw9IGtIZXZjQXBIZWFkZXJTaXplKSB7Cisg
ICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiQVAgaGVhZGVyIHRydW5jYXRlZC4iOworICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghUGFyc2VBcFN0YXJ0T2Zmc2V0cyhuYWx1
X3N0YXJ0LCBuYWx1X2xlbmd0aCwgJm5hbHVfc3RhcnRfb2Zmc2V0cykpIHsKKyAgICAgIFJUQ19M
T0coTFNfRVJST1IpIDw8ICJBUCBwYWNrZXQgd2l0aCBpbmNvcnJlY3QgTkFMVSBwYWNrZXQgbGVu
Z3Rocy4iOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGgyNjVfaGVhZGVyLnBh
Y2tldGl6YXRpb25fdHlwZSA9IGtIMjY1QVA7CisgICAgLy8gbmFsX3R5cGUgPSAocGF5bG9hZF9k
YXRhW2tIZXZjQXBIZWFkZXJTaXplXSAmIGtIZXZjVHlwZU1hc2spID4+IDE7CisgIH0gZWxzZSB7
CisgICAgaDI2NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVTaW5nbGVOYWx1Owor
ICAgIG5hbHVfc3RhcnRfb2Zmc2V0cy5wdXNoX2JhY2soMCk7CisgIH0KKyAgaDI2NV9oZWFkZXIu
bmFsdV90eXBlID0gbmFsX3R5cGU7CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuZnJh
bWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZURlbHRhOworCisgIG5hbHVfc3Rh
cnRfb2Zmc2V0cy5wdXNoX2JhY2sobGVuZ3RoXyArIGtIZXZjTGVuZ3RoRmllbGRTaXplKTsgIC8v
IEVuZCBvZmZzZXQuCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFsdV9zdGFydF9vZmZzZXRz
LnNpemUoKSAtIDE7ICsraSkgeworICAgIHNpemVfdCBzdGFydF9vZmZzZXQgPSBuYWx1X3N0YXJ0
X29mZnNldHNbaV07CisgICAgLy8gRW5kIG9mZnNldCBpcyBhY3R1YWxseSBzdGFydCBvZmZzZXQg
Zm9yIG5leHQgdW5pdCwgZXhjbHVkaW5nIGxlbmd0aCBmaWVsZAorICAgIC8vIHNvIHJlbW92ZSB0
aGF0IGZyb20gdGhpcyB1bml0cyBsZW5ndGguCisgICAgc2l6ZV90IGVuZF9vZmZzZXQgPSBuYWx1
X3N0YXJ0X29mZnNldHNbaSArIDFdIC0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAgaWYgKGVu
ZF9vZmZzZXQgLSBzdGFydF9vZmZzZXQgPCBrSGV2Y05hbEhlYWRlclNpemUpIHsgIC8vIFNhbWUg
YXMgSC4yNjQuCisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiQVAgcGFja2V0IHRvbyBzaG9y
dCI7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgSDI2NU5hbHVJbmZvIG5hbHU7
CisgICAgbmFsdS50eXBlID0gKHBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdICYga0hldmNUeXBl
TWFzaykgPj4gMTsKKyAgICBuYWx1LnZwc19pZCA9IC0xOworICAgIG5hbHUuc3BzX2lkID0gLTE7
CisgICAgbmFsdS5wcHNfaWQgPSAtMTsKKyAgICBzdGFydF9vZmZzZXQgKz0ga0hldmNOYWxIZWFk
ZXJTaXplOworICAgIHN3aXRjaCAobmFsdS50eXBlKSB7CisgICAgICBjYXNlIEgyNjU6Ok5hbHVU
eXBlOjprVnBzOiB7CisgICAgICAgIGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0
YXRlPiB2cHMgPSBIMjY1VnBzUGFyc2VyOjpQYXJzZVZwcygKKyAgICAgICAgICAgICZwYXlsb2Fk
X2RhdGFbc3RhcnRfb2Zmc2V0XSwgZW5kX29mZnNldCAtIHN0YXJ0X29mZnNldCk7CisgICAgICAg
IGlmICh2cHMpIHsKKyAgICAgICAgICBuYWx1LnZwc19pZCA9IHZwcy0+aWQ7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNl
IFZQUyBpZCBmcm9tIFZQUyBzbGljZS4iOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
ICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1NwczogeworICAgICAgICAvLyBDaGVj
ayBpZiBWVUkgaXMgcHJlc2VudCBpbiBTUFMgYW5kIGlmIGl0IG5lZWRzIHRvIGJlIG1vZGlmaWVk
IHRvCisgICAgICAgIC8vIGF2b2lkIGV4Y2Vzc2l2ZSBkZWNvZGVyIGxhdGVuY3kuCisKKyAgICAg
ICAgLy8gQ29weSBhbnkgcHJldmlvdXMgZGF0YSBmaXJzdCAobGlrZWx5IGp1c3QgdGhlIGZpcnN0
IGhlYWRlcikuCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gb3V0cHV0X2J1
ZmZlcihuZXcgcnRjOjpCdWZmZXIoKSk7CisgICAgICAgIGlmIChzdGFydF9vZmZzZXQpCisgICAg
ICAgICAgb3V0cHV0X2J1ZmZlci0+QXBwZW5kRGF0YShwYXlsb2FkX2RhdGEsIHN0YXJ0X29mZnNl
dCk7CisKKyAgICAgICAgYWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IHNw
cyA9IEgyNjVTcHNQYXJzZXI6OlBhcnNlU3BzKAorICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtz
dGFydF9vZmZzZXRdLCBlbmRfb2Zmc2V0IC0gc3RhcnRfb2Zmc2V0KTsKKworICAgICAgICBpZiAo
c3BzKSB7CisgICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci53aWR0aCA9IHNw
cy0+d2lkdGg7CisgICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5oZWlnaHQg
PSBzcHMtPmhlaWdodDsKKyAgICAgICAgICBuYWx1LnNwc19pZCA9IHNwcy0+aWQ7CisgICAgICAg
ICAgbmFsdS52cHNfaWQgPSBzcHMtPnZwc19pZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAgICAgICAgICAgIDw8ICJGYWlsZWQgdG8gcGFyc2Ug
U1BTIGFuZCBWUFMgaWQgZnJvbSBTUFMgc2xpY2UuIjsKKyAgICAgICAgfQorICAgICAgICBwYXJz
ZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1Zp
ZGVvRnJhbWVLZXk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpO
YWx1VHlwZTo6a1BwczogeworICAgICAgICB1aW50MzJfdCBwcHNfaWQ7CisgICAgICAgIHVpbnQz
Ml90IHNwc19pZDsKKyAgICAgICAgaWYgKEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRzKCZwYXls
b2FkX2RhdGFbc3RhcnRfb2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuZF9vZmZzZXQgLSBzdGFydF9vZmZzZXQsICZwcHNfaWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmc3BzX2lkKSkgeworICAgICAgICAgIG5hbHUucHBz
X2lkID0gcHBzX2lkOworICAgICAgICAgIG5hbHUuc3BzX2lkID0gc3BzX2lkOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgPDwg
IkZhaWxlZCB0byBwYXJzZSBQUFMgaWQgYW5kIFNQUyBpZCBmcm9tIFBQUyBzbGljZS4iOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a0lkcldSYWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McDoKKyAgICAg
IGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtDcmE6CisgICAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRl
b19oZWFkZXIuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZUtleTsKKyAg
ICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtUcmFpbE46CisgICAgICBjYXNlIEgyNjU6Ok5hbHVU
eXBlOjprVHJhaWxSOiB7CisgICAgICAgIGFic2w6Om9wdGlvbmFsPHVpbnQzMl90PiBwcHNfaWQg
PQorICAgICAgICAgICAgSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRM
YXllclJic3AoCisgICAgICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdLCBl
bmRfb2Zmc2V0IC0gc3RhcnRfb2Zmc2V0LAorICAgICAgICAgICAgICAgIG5hbHUudHlwZSk7Cisg
ICAgICAgIGlmIChwcHNfaWQpIHsKKyAgICAgICAgICBuYWx1LnBwc19pZCA9ICpwcHNfaWQ7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVk
IHRvIHBhcnNlIFBQUyBpZCBmcm9tIHNsaWNlIG9mIHR5cGU6ICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IHN0YXRpY19jYXN0PGludD4obmFsdS50eXBlKTsKKyAgICAgICAgfQor
ICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICAgIC8vIFNsaWNlcyBiZWxvdyBkb24ndCBjb250
YWluIFNQUyBvciBQUFMgaWRzLgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0F1ZDoKKyAg
ICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtUc2FOOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a1RzYVI6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3RzYU46CisgICAgICBjYXNl
IEgyNjU6Ok5hbHVUeXBlOjprU3RzYVI6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUmFk
bE46CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUmFkbFI6CisgICAgICBjYXNlIEgyNjU6
Ok5hbHVUeXBlOjprQmxhV0xwOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0JsYVdSYWRs
OgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1ByZWZpeFNlaToKKyAgICAgIGNhc2UgSDI2
NTo6TmFsdVR5cGU6OmtTdWZmaXhTZWk6CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBIMjY1
OjpOYWx1VHlwZTo6a0FQOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0ZVOgorICAgICAg
ICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJVbmV4cGVjdGVkIEFQIG9yIEZVIHJlY2VpdmVkLiI7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoaDI2NV9oZWFkZXIubmFs
dXNfbGVuZ3RoID09IGtNYXhOYWx1c1BlclBhY2tldCkgeworICAgICAgUlRDX0xPRyhMU19XQVJO
SU5HKQorICAgICAgICAgIDw8ICJSZWNlaXZlZCBwYWNrZXQgY29udGFpbmluZyBtb3JlIHRoYW4g
IiA8PCBrTWF4TmFsdXNQZXJQYWNrZXQKKyAgICAgICAgICA8PCAiIE5BTCB1bml0cy4gV2lsbCBu
b3Qga2VlcCB0cmFjayBzcHMgYW5kIHBwcyBpZHMgZm9yIGFsbCBvZiB0aGVtLiI7CisgICAgfSBl
bHNlIHsKKyAgICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCsr
XSA9IG5hbHU7CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFZpZGVvUnRw
RGVwYWNrZXRpemVySDI2NTo6UGFyc2VGdU5hbHUoCisgICAgUGFyc2VkUnRwUGF5bG9hZCogcGFy
c2VkX3BheWxvYWQsCisgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhKSB7CisgIGlmIChs
ZW5ndGhfIDwga0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUpIHsKKyAgICBS
VENfTE9HKExTX0VSUk9SKSA8PCAiRlUgTkFMIHVuaXRzIHRydW5jYXRlZC4iOworICAgIHJldHVy
biBmYWxzZTsKKyAgfQorICB1aW50OF90IGYgPSBwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y0ZCaXQ7
CisgIHVpbnQ4X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRfZGF0YVswXSAmIGtIZXZjTGF5ZXJJREhN
YXNrOworICB1aW50OF90IGxheWVyX2lkX2xfdW5zaGlmdGVkID0gcGF5bG9hZF9kYXRhWzFdICYg
a0hldmNMYXllcklETE1hc2s7CisgIHVpbnQ4X3QgdGlkID0gcGF5bG9hZF9kYXRhWzFdICYga0hl
dmNUSURNYXNrOworCisgIHVpbnQ4X3Qgb3JpZ2luYWxfbmFsX3R5cGUgPSBwYXlsb2FkX2RhdGFb
Ml0gJiBrSGV2Y1R5cGVNYXNrSW5GdUhlYWRlcjsKKyAgYm9vbCBmaXJzdF9mcmFnbWVudCA9IHBh
eWxvYWRfZGF0YVsyXSAmIGtIZXZjU0JpdDsKKyAgSDI2NU5hbHVJbmZvIG5hbHU7CisgIG5hbHUu
dHlwZSA9IG9yaWdpbmFsX25hbF90eXBlOworICBuYWx1LnZwc19pZCA9IC0xOworICBuYWx1LnNw
c19pZCA9IC0xOworICBuYWx1LnBwc19pZCA9IC0xOworICBpZiAoZmlyc3RfZnJhZ21lbnQpIHsK
KyAgICBvZmZzZXRfID0gMTsKKyAgICBsZW5ndGhfIC09IDE7CisgICAgYWJzbDo6b3B0aW9uYWw8
dWludDMyX3Q+IHBwc19pZCA9CisgICAgICAgIEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRGcm9t
U2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAgICAgICAgICAgcGF5bG9hZF9kYXRhICsga0hldmNO
YWxIZWFkZXJTaXplICsga0hldmNGdUhlYWRlclNpemUsCisgICAgICAgICAgICBsZW5ndGhfIC0g
a0hldmNGdUhlYWRlclNpemUsIG5hbHUudHlwZSk7CisgICAgaWYgKHBwc19pZCkgeworICAgICAg
bmFsdS5wcHNfaWQgPSAqcHBzX2lkOworICAgIH0gZWxzZSB7CisgICAgICBSVENfTE9HKExTX1dB
Uk5JTkcpCisgICAgICAgICAgPDwgIkZhaWxlZCB0byBwYXJzZSBQUFMgZnJvbSBmaXJzdCBmcmFn
bWVudCBvZiBGVSBOQUwgIgorICAgICAgICAgICAgICJ1bml0IHdpdGggb3JpZ2luYWwgdHlwZTog
IgorICAgICAgICAgIDw8IHN0YXRpY19jYXN0PGludD4obmFsdS50eXBlKTsKKyAgICB9CisgICAg
dWludDhfdCogcGF5bG9hZCA9IGNvbnN0X2Nhc3Q8dWludDhfdCo+KHBheWxvYWRfZGF0YSArIG9m
ZnNldF8pOworICAgIHBheWxvYWRbMF0gPSBmIHwgb3JpZ2luYWxfbmFsX3R5cGUgPDwgMSB8IGxh
eWVyX2lkX2g7CisgICAgcGF5bG9hZFsxXSA9IGxheWVyX2lkX2xfdW5zaGlmdGVkIHwgdGlkOwor
ICB9IGVsc2UgeworICAgIG9mZnNldF8gPSBrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVh
ZGVyU2l6ZTsKKyAgICBsZW5ndGhfIC09IChrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVh
ZGVyU2l6ZSk7CisgIH0KKworICBpZiAob3JpZ2luYWxfbmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5
cGU6OmtJZHJXUmFkbAorICAgICAgfHwgb3JpZ2luYWxfbmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5
cGU6OmtJZHJOTHAKKyAgICAgIHx8IG9yaWdpbmFsX25hbF90eXBlID09IEgyNjU6Ok5hbHVUeXBl
OjprQ3JhKSB7CisgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0g
VmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICB9IGVsc2UgeworICAgIHBhcnNlZF9w
YXlsb2FkLT52aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9G
cmFtZURlbHRhOworICB9CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIud2lkdGggPSAw
OworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmhlaWdodCA9IDA7CisgIHBhcnNlZF9w
YXlsb2FkLT52aWRlb19oZWFkZXIuY29kZWMgPSBrVmlkZW9Db2RlY0gyNjU7CisgIHBhcnNlZF9w
YXlsb2FkLT52aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lID0gZmlyc3RfZnJh
Z21lbnQ7CisgIGF1dG8mIGgyNjVfaGVhZGVyID0gYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2
NT4oCisgICAgICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVy
KTsKKyAgaDI2NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVGVTsKKyAgaDI2NV9o
ZWFkZXIubmFsdV90eXBlID0gb3JpZ2luYWxfbmFsX3R5cGU7CisgIGlmIChmaXJzdF9mcmFnbWVu
dCkgeworICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aF0gPSBu
YWx1OworICAgIGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCA9IDE7CisgIH0KKyAgcmV0dXJuIHRy
dWU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF9mb3JtYXRfaDI2NS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDk1ZjZlYmJlZDQxM2ZlMzYxNzNlN2FhN2Q3YTE2MWJmYTRlYjRlNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRw
X3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfaDI2NS5oCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICog
IEludGVsIExpY2Vuc2UKKyAqIFNlZSBodHRwczovLzAxLm9yZy9vcGVuLXdlYnJ0Yy10b29sa2l0
CisgKiBUaGlzIGlzIHJlbGVhc2VkIHVuZGVyIEFwYWNoZSBMaWNlbnNlIDIuMCBhbmQgaXQgaXMg
ZnJlZSBmb3IgYm90aCBhY2FkZW1pYyBhbmQgY29tbWVyY2lhbCB1c2UuCisgKi8KKworI2lmbmRl
ZiBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfUlRQX0ZPUk1BVF9IMjY1X0hfCisjZGVm
aW5lIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9SVFBfRk9STUFUX0gyNjVfSF8KKwor
I2luY2x1ZGUgPHF1ZXVlPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlICJhcGkvYXJyYXlf
dmlldy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgi
CisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5oIgorI2luY2x1
ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9wYWNrZXRfdG9fc2VuZC5oIgorI2luY2x1
ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuaCIKKyNpbmNsdWRlICJtb2R1
bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyLmgiCisjaW5jbHVkZSAi
bW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIK
KyNpbmNsdWRlICJydGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9jb25zdHJ1
Y3Rvcl9tYWdpYy5oIgorCituYW1lc3BhY2Ugd2VicnRjIHsKKworY2xhc3MgUnRwUGFja2V0aXpl
ckgyNjUgOiBwdWJsaWMgUnRwUGFja2V0aXplciB7CisgcHVibGljOgorICAvLyBJbml0aWFsaXpl
IHdpdGggcGF5bG9hZCBmcm9tIGVuY29kZXIuCisgIC8vIFRoZSBwYXlsb2FkX2RhdGEgbXVzdCBi
ZSBleGFjdGx5IG9uZSBlbmNvZGVkIEguMjY1IGZyYW1lLgorICBSdHBQYWNrZXRpemVySDI2NShy
dGM6OkFycmF5Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2FkLAorICAgICAgICAgICAgICAgICAg
ICBQYXlsb2FkU2l6ZUxpbWl0cyBsaW1pdHMsCisgICAgICAgICAgICAgICAgICAgIEgyNjVQYWNr
ZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUsCisgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFJUUEZyYWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24pOworCisgICB+UnRwUGFj
a2V0aXplckgyNjUoKSBvdmVycmlkZTsKKworICBzaXplX3QgTnVtUGFja2V0cygpIGNvbnN0IG92
ZXJyaWRlOworCisgIC8vIEdldCB0aGUgbmV4dCBwYXlsb2FkIHdpdGggSC4yNjUgcGF5bG9hZCBo
ZWFkZXIuCisgIC8vIGJ1ZmZlciBpcyBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIG91dHB1dCB3aWxs
IGJlIHdyaXR0ZW4uCisgIC8vIGJ5dGVzX3RvX3NlbmQgaXMgYW4gb3V0cHV0IHZhcmlhYmxlIHRo
YXQgd2lsbCBjb250YWluIG51bWJlciBvZiBieXRlcworICAvLyB3cml0dGVuIHRvIGJ1ZmZlci4g
VGhlIHBhcmFtZXRlciBsYXN0X3BhY2tldCBpcyB0cnVlIGZvciB0aGUgbGFzdCBwYWNrZXQgb2YK
KyAgLy8gdGhlIGZyYW1lLCBmYWxzZSBvdGhlcndpc2UgKGkuZS4sIGNhbGwgdGhlIGZ1bmN0aW9u
IGFnYWluIHRvIGdldCB0aGUKKyAgLy8gbmV4dCBwYWNrZXQpLgorICAvLyBSZXR1cm5zIHRydWUg
b24gc3VjY2VzcyBvciBmYWxzZSBpZiB0aGVyZSB3YXMgbm8gcGF5bG9hZCB0byBwYWNrZXRpemUu
CisgIGJvb2wgTmV4dFBhY2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpIG92ZXJyaWRl
OworCisgcHJpdmF0ZToKKyAgc3RydWN0IFBhY2tldCB7CisgICAgUGFja2V0KHNpemVfdCBvZmZz
ZXQsCisgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICBib29sIGZpcnN0X2ZyYWdt
ZW50LAorICAgICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAgICAgICAgIGJvb2wgYWdn
cmVnYXRlZCwKKyAgICAgICAgICAgdWludDE2X3QgaGVhZGVyKQorICAgICAgICA6IG9mZnNldChv
ZmZzZXQpLAorICAgICAgICAgIHNpemUoc2l6ZSksCisgICAgICAgICAgZmlyc3RfZnJhZ21lbnQo
Zmlyc3RfZnJhZ21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQobGFzdF9mcmFnbWVudCks
CisgICAgICAgICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAgICAgICBoZWFkZXIoaGVh
ZGVyKSB7fQorCisgICAgc2l6ZV90IG9mZnNldDsKKyAgICBzaXplX3Qgc2l6ZTsKKyAgICBib29s
IGZpcnN0X2ZyYWdtZW50OworICAgIGJvb2wgbGFzdF9mcmFnbWVudDsKKyAgICBib29sIGFnZ3Jl
Z2F0ZWQ7CisgICAgdWludDE2X3QgaGVhZGVyOyAgLy8gRGlmZmVyZW50IGZyb20gSDI2NAorICB9
OworICBzdHJ1Y3QgRnJhZ21lbnQgeworICAgIEZyYWdtZW50KGNvbnN0IHVpbnQ4X3QqIGJ1ZmZl
ciwgc2l6ZV90IGxlbmd0aCk7CisgICAgZXhwbGljaXQgRnJhZ21lbnQoY29uc3QgRnJhZ21lbnQm
IGZyYWdtZW50KTsKKyAgICBjb25zdCB1aW50OF90KiBidWZmZXIgPSBudWxscHRyOworICAgIHNp
emVfdCBsZW5ndGggPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gdG1wX2J1
ZmZlcjsKKyAgfTsKKyAgc3RydWN0IFBhY2tldFVuaXQgeworICAgIFBhY2tldFVuaXQoY29uc3Qg
RnJhZ21lbnQmIHNvdXJjZV9mcmFnbWVudCwKKyAgICAgICAgICAgICAgIGJvb2wgZmlyc3RfZnJh
Z21lbnQsCisgICAgICAgICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAgICAgICAgICAg
ICBib29sIGFnZ3JlZ2F0ZWQsCisgICAgICAgICAgICAgICB1aW50MTZfdCBoZWFkZXIpCisgICAg
ICAgIDogc291cmNlX2ZyYWdtZW50KHNvdXJjZV9mcmFnbWVudCksCisgICAgICAgICAgZmlyc3Rf
ZnJhZ21lbnQoZmlyc3RfZnJhZ21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQobGFzdF9m
cmFnbWVudCksCisgICAgICAgICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAgICAgICBo
ZWFkZXIoaGVhZGVyKSB7fQorCisgICAgY29uc3QgRnJhZ21lbnQgc291cmNlX2ZyYWdtZW50Owor
ICAgIGJvb2wgZmlyc3RfZnJhZ21lbnQ7CisgICAgYm9vbCBsYXN0X2ZyYWdtZW50OworICAgIGJv
b2wgYWdncmVnYXRlZDsKKyAgICB1aW50MTZfdCBoZWFkZXI7CisgIH07CisgIHR5cGVkZWYgc3Rk
OjpxdWV1ZTxQYWNrZXQ+IFBhY2tldFF1ZXVlOworICBzdGQ6OmRlcXVlPEZyYWdtZW50PiBpbnB1
dF9mcmFnbWVudHNfOworICBzdGQ6OnF1ZXVlPFBhY2tldFVuaXQ+IHBhY2tldHNfOworCisgIGJv
b2wgR2VuZXJhdGVQYWNrZXRzKEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21v
ZGUpOworICBib29sIFBhY2tldGl6ZUZ1KHNpemVfdCBmcmFnbWVudF9pbmRleCk7CisgIGludCBQ
YWNrZXRpemVBcChzaXplX3QgZnJhZ21lbnRfaW5kZXgpOworICBib29sIFBhY2tldGl6ZVNpbmds
ZU5hbHUoc2l6ZV90IGZyYWdtZW50X2luZGV4KTsKKworICB2b2lkIE5leHRBZ2dyZWdhdGVQYWNr
ZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0LCBib29sIGxhc3QpOworICB2b2lkIE5leHRG
cmFnbWVudFBhY2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpOworCisgIGNvbnN0IFBh
eWxvYWRTaXplTGltaXRzIGxpbWl0c187CisgIHNpemVfdCBudW1fcGFja2V0c19sZWZ0XzsKKyAg
UlRQRnJhZ21lbnRhdGlvbkhlYWRlciBmcmFnbWVudGF0aW9uXzsKKworICBSVENfRElTQUxMT1df
Q09QWV9BTkRfQVNTSUdOKFJ0cFBhY2tldGl6ZXJIMjY1KTsKK307CisKKy8vIERlcGFja2V0aXpl
ciBmb3IgSC4yNjUuCitjbGFzcyBWaWRlb1J0cERlcGFja2V0aXplckgyNjUgOiBwdWJsaWMgVmlk
ZW9SdHBEZXBhY2tldGl6ZXIgeworIHB1YmxpYzoKKyAgdmlydHVhbCB+VmlkZW9SdHBEZXBhY2tl
dGl6ZXJIMjY1KCkge30KKworICBhYnNsOjpvcHRpb25hbDxQYXJzZWRSdHBQYXlsb2FkPiBQYXJz
ZSgKKyAgICAgICAgICAgICBydGM6OkNvcHlPbldyaXRlQnVmZmVyIHJ0cF9wYXlsb2FkKSBvdmVy
cmlkZTsKKworIHByaXZhdGU6CisgIGJvb2wgUGFyc2VGdU5hbHUoUGFyc2VkUnRwUGF5bG9hZCog
cGFyc2VkX3BheWxvYWQsCisgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcGF5bG9h
ZF9kYXRhKTsKKyAgYm9vbCBQcm9jZXNzQXBPclNpbmdsZU5hbHUoUGFyc2VkUnRwUGF5bG9hZCog
cGFyc2VkX3BheWxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4
X3QqIHBheWxvYWRfZGF0YSk7CisKKyAgc2l6ZV90IG9mZnNldF87CisgIHNpemVfdCBsZW5ndGhf
OworICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpCdWZmZXI+IG1vZGlmaWVkX2J1ZmZlcl87Cit9Owor
fSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworI2VuZGlmICAvLyBXRUJSVENfTU9EVUxFU19SVFBfUlRD
UF9TT1VSQ0VfUlRQX0ZPUk1BVF9IMjY1X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2Vu
ZGVyX3ZpZGVvLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
bW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3NlbmRlcl92aWRlby5jYwppbmRleCBlYzVjZjhm
ZDEzMzFkZTQ1ZTNlOGUwODljNTgxNDM1NDNjMzkwMDZiLi5lMzNjNTRiNmVkYTM3NDBhZWQxYmNk
NjE3ZDVhZTQ3MzI1YzZkYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVv
LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9zZW5kZXJfdmlkZW8uY2MKQEAgLTc5OSw2ICs3OTksOSBA
QCB1aW50OF90IFJUUFNlbmRlclZpZGVvOjpHZXRUZW1wb3JhbElkKGNvbnN0IFJUUFZpZGVvSGVh
ZGVyJiBoZWFkZXIpIHsKICAgICAgIHJldHVybiB2cDkudGVtcG9yYWxfaWR4OwogICAgIH0KICAg
ICB1aW50OF90IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJIMjY0JikgeyByZXR1cm4g
a05vVGVtcG9yYWxJZHg7IH0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAgdWludDhfdCBvcGVy
YXRvcigpKGNvbnN0IFJUUFZpZGVvSGVhZGVySDI2NSYpIHsgcmV0dXJuIGtOb1RlbXBvcmFsSWR4
OyB9CisjZW5kaWYKICAgICB1aW50OF90IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJM
ZWdhY3lHZW5lcmljJikgewogICAgICAgcmV0dXJuIGtOb1RlbXBvcmFsSWR4OwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRl
b19oZWFkZXIuaAppbmRleCA3MTRkMWViMDhjY2I0NGRlZWQyNzc3MGFlMTdiMDQ2NWNjN2M1OTgw
Li41ODUyZTVlMWFkNzQyN2IxZTI5YWYzMmFiYWJhMGIwOGFhYTJmYmQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRl
ci5oCkBAIC0yNSw2ICsyNSw5IEBACiAjaW5jbHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX3RpbWluZy5o
IgogI2luY2x1ZGUgImNvbW1vbl90eXBlcy5oIiAgLy8gTk9MSU5UKGJ1aWxkL2luY2x1ZGUpCiAj
aW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2ds
b2JhbHMuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19j
b2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNlbmRpZgogI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVkZS92cDhfZ2xvYmFscy5o
IgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvaW5jbHVkZS92cDlf
Z2xvYmFscy5oIgogCkBAIC0zNiwxMSArMzksMjAgQEAgc3RydWN0IFJUUFZpZGVvSGVhZGVyTGVn
YWN5R2VuZXJpYyB7CiAgIHVpbnQxNl90IHBpY3R1cmVfaWQ7CiB9OwogCisjaWZuZGVmIERJU0FC
TEVfSDI2NQogdXNpbmcgUlRQVmlkZW9UeXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjpt
b25vc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZp
ZGVvSGVhZGVyVlA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
VFBWaWRlb0hlYWRlclZQOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUlRQVmlkZW9IZWFkZXJIMjY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBSVFBWaWRlb0hlYWRlckgyNjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJpYz47CisjZWxzZQordXNpbmcg
UlRQVmlkZW9UeXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjptb25vc3RhdGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyVlA4LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlclZQ
OSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFk
ZXJIMjY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRl
b0hlYWRlckxlZ2FjeUdlbmVyaWM+OworI2VuZGlmCiAKIHN0cnVjdCBSVFBWaWRlb0hlYWRlciB7
CiAgIHN0cnVjdCBHZW5lcmljRGVzY3JpcHRvckluZm8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvQlVJ
TEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3ZpZGVvX2NvZGluZy9CVUlMRC5nbgppbmRleCBiMmQxMGM5YWI2OGMyYmM5ZDcyOWRjZDdkZmVk
YWRiYjQ5ZDFmNjMzLi40Yzc4YWFhY2M3NzE1OTY4N2I0YzZiZTFhMzc3NDA4OTlhMWE4YjM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbgpAQCAtMTQsNiAr
MTQsMTQgQEAgcnRjX2xpYnJhcnkoImVuY29kZWRfZnJhbWUiKSB7CiAgICAgImVuY29kZWRfZnJh
bWUuY2MiLAogICAgICJlbmNvZGVkX2ZyYW1lLmgiLAogICBdCisKKyAgaWYgKHJ0Y191c2VfaDI2
NSkgeworICAgIHNvdXJjZXMgKz0gWworICAgICAgImgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5j
YyIsCisgICAgICAiaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgiLAorICAgIF0KKyAgfQorCiAg
IGRlcHMgPSBbCiAgICAgIjpjb2RlY19nbG9iYWxzX2hlYWRlcnMiLAogICAgICI6dmlkZW9fY29k
ZWNfaW50ZXJmYWNlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2
NV9nbG9iYWxzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJjMGVlZjIzNmNmZTgyZDUyZTgzZGRlNWQyMDg0OWI4Y2NkOGJmOGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oCkBA
IC0wLDAgKzEsNjIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJv
amVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBj
YW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNl
CisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdy
YW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0
aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxl
IGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisvLyBUaGlzIGZpbGUgY29u
dGFpbnMgY29kZWMgZGVwZW5kZW50IGRlZmluaXRpb25zIHRoYXQgYXJlIG5lZWRlZCBpbgorLy8g
b3JkZXIgdG8gY29tcGlsZSB0aGUgV2ViUlRDIGNvZGViYXNlLCBldmVuIGlmIHRoaXMgY29kZWMg
aXMgbm90IHVzZWQuCisKKyNpZm5kZWYgTU9EVUxFU19WSURFT19DT0RJTkdfQ09ERUNTX0gyNjVf
SU5DTFVERV9IMjY1X0dMT0JBTFNfSF8KKyNkZWZpbmUgTU9EVUxFU19WSURFT19DT0RJTkdfQ09E
RUNTX0gyNjVfSU5DTFVERV9IMjY1X0dMT0JBTFNfSF8KKworI2lmbmRlZiBESVNBQkxFX0gyNjUK
KworI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2
NF9nbG9iYWxzLmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBUaGUgcGFja2V0aXphdGlv
biB0eXBlcyB0aGF0IHdlIHN1cHBvcnQ6IHNpbmdsZSwgYWdncmVnYXRlZCwgYW5kIGZyYWdtZW50
ZWQuCitlbnVtIEgyNjVQYWNrZXRpemF0aW9uVHlwZXMgeworICBrSDI2NVNpbmdsZU5hbHUsICAv
LyBUaGlzIHBhY2tldCBjb250YWlucyBhIHNpbmdsZSBOQUwgdW5pdC4KKyAga0gyNjVBUCwgICAg
ICAgICAgLy8gVGhpcyBwYWNrZXQgY29udGFpbnMgYWdncmVnYXRpb24gUGFja2V0LgorICAgICAg
ICAgICAgICAgICAgICAvLyBJZiB0aGlzIHBhY2tldCBoYXMgYW4gYXNzb2NpYXRlZCBOQUwgdW5p
dCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAvLyBpdCdsbCBiZSBmb3IgdGhlIGZpcnN0IHN1
Y2ggYWdncmVnYXRlZCBwYWNrZXQuCisgIGtIMjY1RlUsICAgICAgICAgIC8vIFRoaXMgcGFja2V0
IGNvbnRhaW5zIGEgRlUgKGZyYWdtZW50YXRpb24KKyAgICAgICAgICAgICAgICAgICAgLy8gdW5p
dCkgcGFja2V0LCBtZWFuaW5nIGl0IGlzIGEgcGFydCBvZiBhIGZyYW1lCisgICAgICAgICAgICAg
ICAgICAgIC8vIHRoYXQgd2FzIHRvbyBsYXJnZSB0byBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQu
Cit9OworCitzdHJ1Y3QgSDI2NU5hbHVJbmZvIHsKKyAgdWludDhfdCB0eXBlOworICBpbnQgdnBz
X2lkOworICBpbnQgc3BzX2lkOworICBpbnQgcHBzX2lkOworfTsKKworZW51bSBjbGFzcyBIMjY1
UGFja2V0aXphdGlvbk1vZGUgeworICBOb25JbnRlcmxlYXZlZCA9IDAsICAvLyBNb2RlIDEgLSBT
VEFQLUEsIEZVLUEgaXMgYWxsb3dlZAorICBTaW5nbGVOYWxVbml0ICAgICAgICAvLyBNb2RlIDAg
LSBvbmx5IHNpbmdsZSBOQUxVIGFsbG93ZWQKK307CisKK3N0cnVjdCBSVFBWaWRlb0hlYWRlckgy
NjUgeworICAvLyBUaGUgTkFMIHVuaXQgdHlwZS4gSWYgdGhpcyBpcyBhIGhlYWRlciBmb3IgYSBm
cmFnbWVudGVkIHBhY2tldCwgaXQncyB0aGUKKyAgLy8gTkFMIHVuaXQgdHlwZSBvZiB0aGUgb3Jp
Z2luYWwgZGF0YS4gSWYgdGhpcyBpcyB0aGUgaGVhZGVyIGZvciBhbiBhZ2dyZWdhdGVkCisgIC8v
IHBhY2tldCwgaXQncyB0aGUgTkFMIHVuaXQgdHlwZSBvZiB0aGUgZmlyc3QgTkFMIHVuaXQgaW4g
dGhlIHBhY2tldC4KKyAgdWludDhfdCBuYWx1X3R5cGU7CisgIEgyNjVQYWNrZXRpemF0aW9uVHlw
ZXMgcGFja2V0aXphdGlvbl90eXBlOworICBIMjY1TmFsdUluZm8gbmFsdXNba01heE5hbHVzUGVy
UGFja2V0XTsKKyAgc2l6ZV90IG5hbHVzX2xlbmd0aDsKKyAgLy8gVGhlIHBhY2tldGl6YXRpb24g
dHlwZSBvZiB0aGlzIGJ1ZmZlciAtIHNpbmdsZSwgYWdncmVnYXRlZCBvciBmcmFnbWVudGVkLgor
ICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlOworfTsKKworfSAgLy8g
bmFtZXNwYWNlIHdlYnJ0YworCisjZW5kaWYKKworI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVPX0NP
RElOR19DT0RFQ1NfSDI2NV9JTkNMVURFX0gyNjVfR0xPQkFMU19IXwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvZW5jb2RlZF9mcmFtZS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2VuY29kZWRfZnJhbWUuY2MKaW5kZXggMWU5ZTM3
NGM2NDRlODM1MTM3NjBlNmRiYjFhNjVmMzBlNjZkNzJjYy4uNTQ5ODkyNjA4MjU2MTdmOGFlMjc0
YWI1ZGRjZDRjOGRiNTE2ZTk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9mcmFtZS5jYwor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9lbmNvZGVkX2ZyYW1lLmNjCkBAIC0xNTEsNiArMTUxLDEyIEBAIHZvaWQgVkNN
RW5jb2RlZEZyYW1lOjpDb3B5Q29kZWNTcGVjaWZpYyhjb25zdCBSVFBWaWRlb0hlYWRlciogaGVh
ZGVyKSB7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgICB9CisjaWZuZGVmIERJU0FC
TEVfSDI2NQorICAgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjU6IHsKKyAgICAgICAgX2NvZGVjU3Bl
Y2lmaWNJbmZvLmNvZGVjVHlwZSA9IGtWaWRlb0NvZGVjSDI2NTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgICB9CisjZW5kaWYKICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgX2NvZGVjU3BlY2lmaWNJ
bmZvLmNvZGVjVHlwZSA9IGtWaWRlb0NvZGVjR2VuZXJpYzsKICAgICAgICAgYnJlYWs7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zw
c19zcHNfcHBzX3RyYWNrZXIuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFlNjdkODlhYjkzZjVjMmY5YzBiYzhm
ZDMxY2ZiYmIxMTgwZmM3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19w
cHNfdHJhY2tlci5jYwpAQCAtMCwwICsxLDMxMiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIw
MTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgor
ICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp
Y2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSBy
b290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBw
cm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5U
Uy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGlu
IHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisK
KyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIu
aCIKKworI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCisjaW5jbHVkZSAi
Y29tbW9uX3ZpZGVvL2gyNjQvaDI2NF9jb21tb24uaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8v
aDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBz
X3BhcnNlci5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5o
IgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxz
LmgiCisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9o
MjY1X2dsb2JhbHMuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9mcmFtZV9vYmpl
Y3QuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmgiCisj
aW5jbHVkZSAicnRjX2Jhc2UvY2hlY2tzLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5o
IgorCituYW1lc3BhY2Ugd2VicnRjIHsKK25hbWVzcGFjZSB2aWRlb19jb2RpbmcgeworCituYW1l
c3BhY2UgeworY29uc3QgdWludDhfdCBzdGFydF9jb2RlX2gyNjVbXSA9IHswLCAwLCAwLCAxfTsK
K30gIC8vIG5hbWVzcGFjZQorCitIMjY1VnBzU3BzUHBzVHJhY2tlcjo6Rml4ZWRCaXRzdHJlYW0g
SDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OkNvcHlBbmRGaXhCaXRzdHJlYW0ocnRjOjpBcnJheVZpZXc8
Y29uc3QgdWludDhfdD4gYml0c3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSVFBWaWRlb0hlYWRlciogdmlkZW9faGVhZGVyX3BvaW50ZXIpIHsKKyAgY29uc3QgdWlu
dDhfdCogZGF0YSA9IGJpdHN0cmVhbS5kYXRhKCk7CisgIGNvbnN0IHNpemVfdCBkYXRhX3NpemUg
PSBiaXRzdHJlYW0uc2l6ZSgpOworICBSVFBWaWRlb0hlYWRlciYgdmlkZW9faGVhZGVyID0gKnZp
ZGVvX2hlYWRlcl9wb2ludGVyOworICBSVENfRENIRUNLKHZpZGVvX2hlYWRlci5jb2RlYyA9PSBr
VmlkZW9Db2RlY0gyNjQpOworCisgIGF1dG8mIGgyNjVfaGVhZGVyID0KKyAgICAgIGFic2w6Omdl
dDxSVFBWaWRlb0hlYWRlckgyNjU+KHZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisK
KyAgYm9vbCBhcHBlbmRfdnBzX3Nwc19wcHMgPSBmYWxzZTsKKyAgYXV0byB2cHMgPSB2cHNfZGF0
YV8uZW5kKCk7CisgIGF1dG8gc3BzID0gc3BzX2RhdGFfLmVuZCgpOworICBhdXRvIHBwcyA9IHBw
c19kYXRhXy5lbmQoKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGgyNjVfaGVhZGVyLm5h
bHVzX2xlbmd0aDsgKytpKSB7CisgICAgY29uc3QgSDI2NU5hbHVJbmZvJiBuYWx1ID0gaDI2NV9o
ZWFkZXIubmFsdXNbaV07CisgICAgc3dpdGNoIChuYWx1LnR5cGUpIHsKKyAgICAgIGNhc2UgSDI2
NTo6TmFsdVR5cGU6OmtWcHM6IHsKKyAgICAgICAgdnBzX2RhdGFfW25hbHUudnBzX2lkXS5zaXpl
ID0gMDsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBl
OjprU3BzOiB7CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0udnBzX2lkID0gbmFsdS52
cHNfaWQ7CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0ud2lkdGggPSB2aWRlb19oZWFk
ZXIud2lkdGg7CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0uaGVpZ2h0ID0gdmlkZW9f
aGVhZGVyLmhlaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6
Ok5hbHVUeXBlOjprUHBzOiB7CisgICAgICAgIHBwc19kYXRhX1tuYWx1LnBwc19pZF0uc3BzX2lk
ID0gbmFsdS5zcHNfaWQ7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1
OjpOYWx1VHlwZTo6a0lkcldSYWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5M
cDoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtDcmE6IHsKKyAgICAgICAgLy8gSWYgdGhp
cyBpcyB0aGUgZmlyc3QgcGFja2V0IG9mIGFuIElEUiwgbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJl
cXVpcmVkCisgICAgICAgIC8vIFNQUy9QUFMgYW5kIGFsc28gY2FsY3VsYXRlIGhvdyBtdWNoIGV4
dHJhIHNwYWNlIHdlIG5lZWQgaW4gdGhlIGJ1ZmZlcgorICAgICAgICAvLyB0byBwcmVwZW5kIHRo
ZSBTUFMvUFBTIHRvIHRoZSBiaXRzdHJlYW0gd2l0aCBzdGFydCBjb2Rlcy4KKyAgICAgICAgaWYg
KHZpZGVvX2hlYWRlci5pc19maXJzdF9wYWNrZXRfaW5fZnJhbWUpIHsKKyAgICAgICAgICBpZiAo
bmFsdS5wcHNfaWQgPT0gLTEpIHsKKyAgICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwg
Ik5vIFBQUyBpZCBpbiBJRFIgbmFsdS4iOworICAgICAgICAgICAgcmV0dXJuIHtrUmVxdWVzdEtl
eWZyYW1lfTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBwcHMgPSBwcHNfZGF0YV8uZmluZChu
YWx1LnBwc19pZCk7CisgICAgICAgICAgaWYgKHBwcyA9PSBwcHNfZGF0YV8uZW5kKCkpIHsKKyAg
ICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgICA8PCAiTm8gUFBT
IHdpdGggaWQgIiA8PCBuYWx1LnBwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJl
dHVybiB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisgICAgICAgICAgc3BzID0g
c3BzX2RhdGFfLmZpbmQocHBzLT5zZWNvbmQuc3BzX2lkKTsKKyAgICAgICAgICBpZiAoc3BzID09
IHNwc19kYXRhXy5lbmQoKSkgeworICAgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAg
ICAgICAgICAgICAgIDw8ICJObyBTUFMgd2l0aCBpZCA8PCAiIDw8IHBwcy0+c2Vjb25kLnNwc19p
ZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1JlcXVlc3RLZXlmcmFtZX07
CisgICAgICAgICAgfQorCisgICAgICAgICAgdnBzID0gdnBzX2RhdGFfLmZpbmQoc3BzLT5zZWNv
bmQudnBzX2lkKTsKKyAgICAgICAgICBpZiAodnBzID09IHZwc19kYXRhXy5lbmQoKSkgeworICAg
ICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgICAgICAgIDw8ICJObyBWUFMg
d2l0aCBpZCAiIDw8IHNwcy0+c2Vjb25kLnZwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAg
ICAgIHJldHVybiB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisgICAgICAgICAg
Ly8gU2luY2UgdGhlIGZpcnN0IHBhY2tldCBvZiBldmVyeSBrZXlmcmFtZSBzaG91bGQgaGF2ZSBp
dHMgd2lkdGggYW5kCisgICAgICAgICAgLy8gaGVpZ2h0IHNldCB3ZSBzZXQgaXQgaGVyZSBpbiB0
aGUgY2FzZSBvZiBpdCBiZWluZyBzdXBwbGllZCBvdXQgb2YKKyAgICAgICAgICAvLyBiYW5kLgor
ICAgICAgICAgIHZpZGVvX2hlYWRlci53aWR0aCA9IHNwcy0+c2Vjb25kLndpZHRoOworICAgICAg
ICAgIHZpZGVvX2hlYWRlci5oZWlnaHQgPSBzcHMtPnNlY29uZC5oZWlnaHQ7CisKKyAgICAgICAg
ICAvLyBJZiB0aGUgVlBTL1NQUy9QUFMgd2FzIHN1cHBsaWVkIG91dCBvZiBiYW5kIHRoZW4gd2Ug
d2lsbCBoYXZlIHNhdmVkCisgICAgICAgICAgLy8gdGhlIGFjdHVhbCBiaXRzdHJlYW0gaW4gfGRh
dGF8LgorICAgICAgICAgIC8vIFRoaXMgYnJhbmNoIGlzIG5vdCB2ZXJpZmllZC4KKyAgICAgICAg
ICBpZiAodnBzLT5zZWNvbmQuZGF0YSAmJiBzcHMtPnNlY29uZC5kYXRhICYmIHBwcy0+c2Vjb25k
LmRhdGEpIHsKKyAgICAgICAgICAgIFJUQ19EQ0hFQ0tfR1QodnBzLT5zZWNvbmQuc2l6ZSwgMCk7
CisgICAgICAgICAgICBSVENfRENIRUNLX0dUKHNwcy0+c2Vjb25kLnNpemUsIDApOworICAgICAg
ICAgICAgUlRDX0RDSEVDS19HVChwcHMtPnNlY29uZC5zaXplLCAwKTsKKyAgICAgICAgICAgIGFw
cGVuZF92cHNfc3BzX3BwcyA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg
IGJyZWFrOworICAgICAgfQorICAgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICB9CisKKyAgUlRDX0NIRUNLKCFhcHBlbmRfdnBzX3Nwc19wcHMgfHwKKyAgICAgICAgICAgIChz
cHMgIT0gc3BzX2RhdGFfLmVuZCgpICYmIHBwcyAhPSBwcHNfZGF0YV8uZW5kKCkpKTsKKworICAv
LyBDYWxjdWxhdGUgaG93IG11Y2ggc3BhY2Ugd2UgbmVlZCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGJp
dHN0cmVhbS4KKyAgc2l6ZV90IHJlcXVpcmVkX3NpemUgPSAwOworCisgIGlmIChhcHBlbmRfdnBz
X3Nwc19wcHMpIHsKKyAgICByZXF1aXJlZF9zaXplICs9IHZwcy0+c2Vjb25kLnNpemUgKyBzaXpl
b2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICByZXF1aXJlZF9zaXplICs9IHNwcy0+c2Vjb25kLnNp
emUgKyBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICByZXF1aXJlZF9zaXplICs9IHBwcy0+
c2Vjb25kLnNpemUgKyBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgfQorCisgIGlmIChoMjY1
X2hlYWRlci5wYWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVBUCkgeworICAgIGNvbnN0IHVpbnQ4
X3QqIG5hbHVfcHRyID0gZGF0YSArIDE7CisgICAgd2hpbGUgKG5hbHVfcHRyIDwgZGF0YSArIGRh
dGFfc2l6ZSkgeworICAgICAgUlRDX0RDSEVDSyh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0
X2luX2ZyYW1lKTsKKyAgICAgIHJlcXVpcmVkX3NpemUgKz0gc2l6ZW9mKHN0YXJ0X2NvZGVfaDI2
NSk7CisKKyAgICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBv
ZiBhIHNlZ21lbnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBd
IDw8IDggfCBuYWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHJlcXVp
cmVkX3NpemUgKz0gc2VnbWVudF9sZW5ndGg7CisgICAgICBuYWx1X3B0ciArPSBzZWdtZW50X2xl
bmd0aDsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgaWYgKHZpZGVvX2hlYWRlci5pc19maXJzdF9w
YWNrZXRfaW5fZnJhbWUpCisgICAgICByZXF1aXJlZF9zaXplICs9IHNpemVvZihzdGFydF9jb2Rl
X2gyNjUpOworICAgIHJlcXVpcmVkX3NpemUgKz0gZGF0YV9zaXplOworICB9CisKKyAgLy8gVGhl
biB3ZSBjb3B5IHRvIHRoZSBuZXcgYnVmZmVyLgorICBGaXhlZEJpdHN0cmVhbSBmaXhlZDsKKyAg
Zml4ZWQuYml0c3RyZWFtLkVuc3VyZUNhcGFjaXR5KHJlcXVpcmVkX3NpemUpOworCisgIGlmIChh
cHBlbmRfdnBzX3Nwc19wcHMpIHsKKyAgICAvLyBJbnNlcnQgVlBTLgorICAgIGZpeGVkLmJpdHN0
cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFw
cGVuZERhdGEodnBzLT5zZWNvbmQuZGF0YS5nZXQoKSwgdnBzLT5zZWNvbmQuc2l6ZSk7CisKKyAg
ICAvLyBJbnNlcnQgU1BTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2Nv
ZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEoc3BzLT5zZWNvbmQuZGF0
YS5nZXQoKSwgc3BzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBJbnNlcnQgUFBTLgorICAgIGZp
eGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0
c3RyZWFtLkFwcGVuZERhdGEocHBzLT5zZWNvbmQuZGF0YS5nZXQoKSwgcHBzLT5zZWNvbmQuc2l6
ZSk7CisKKyAgICAvLyBVcGRhdGUgY29kZWMgaGVhZGVyIHRvIHJlZmxlY3QgdGhlIG5ld2x5IGFk
ZGVkIFNQUyBhbmQgUFBTLgorICAgIEgyNjVOYWx1SW5mbyB2cHNfaW5mbzsKKyAgICB2cHNfaW5m
by50eXBlID0gSDI2NTo6TmFsdVR5cGU6OmtWcHM7CisgICAgdnBzX2luZm8udnBzX2lkID0gdnBz
LT5maXJzdDsKKyAgICB2cHNfaW5mby5zcHNfaWQgPSAtMTsKKyAgICB2cHNfaW5mby5wcHNfaWQg
PSAtMTsKKyAgICBIMjY1TmFsdUluZm8gc3BzX2luZm87CisgICAgc3BzX2luZm8udHlwZSA9IEgy
NjU6Ok5hbHVUeXBlOjprU3BzOworICAgIHNwc19pbmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7Cisg
ICAgc3BzX2luZm8uc3BzX2lkID0gc3BzLT5maXJzdDsKKyAgICBzcHNfaW5mby5wcHNfaWQgPSAt
MTsKKyAgICBIMjY1TmFsdUluZm8gcHBzX2luZm87CisgICAgcHBzX2luZm8udHlwZSA9IEgyNjU6
Ok5hbHVUeXBlOjprUHBzOworICAgIHBwc19pbmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7CisgICAg
cHBzX2luZm8uc3BzX2lkID0gc3BzLT5maXJzdDsKKyAgICBwcHNfaW5mby5wcHNfaWQgPSBwcHMt
PmZpcnN0OworICAgIGlmIChoMjY1X2hlYWRlci5uYWx1c19sZW5ndGggKyAyIDw9IGtNYXhOYWx1
c1BlclBhY2tldCkgeworICAgICAgaDI2NV9oZWFkZXIubmFsdXNbaDI2NV9oZWFkZXIubmFsdXNf
bGVuZ3RoKytdID0gdnBzX2luZm87CisgICAgICBoMjY1X2hlYWRlci5uYWx1c1toMjY1X2hlYWRl
ci5uYWx1c19sZW5ndGgrK10gPSBzcHNfaW5mbzsKKyAgICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gy
NjVfaGVhZGVyLm5hbHVzX2xlbmd0aCsrXSA9IHBwc19pbmZvOworICAgIH0gZWxzZSB7CisgICAg
ICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJOb3QgZW5vdWdoIHNwYWNlIGluIEguMjY1IGNvZGVj
IGhlYWRlciB0byBpbnNlcnQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1BTL1BQ
UyBwcm92aWRlZCBvdXQtb2YtYmFuZC4iOworICAgIH0KKyAgfQorCisgIC8vIENvcHkgdGhlIHJl
c3Qgb2YgdGhlIGJpdHN0cmVhbSBhbmQgaW5zZXJ0IHN0YXJ0IGNvZGVzLgorICBpZiAoaDI2NV9o
ZWFkZXIucGFja2V0aXphdGlvbl90eXBlID09IGtIMjY1QVApIHsKKyAgICBjb25zdCB1aW50OF90
KiBuYWx1X3B0ciA9IGRhdGEgKyAxOworICAgIHdoaWxlIChuYWx1X3B0ciA8IGRhdGEgKyBkYXRh
X3NpemUpIHsKKyAgICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2
NSk7CisKKyAgICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBv
ZiBhIHNlZ21lbnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBd
IDw8IDggfCBuYWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHNpemVf
dCBjb3B5X2VuZCA9IG5hbHVfcHRyIC0gZGF0YSArIHNlZ21lbnRfbGVuZ3RoOworICAgICAgaWYg
KGNvcHlfZW5kID4gZGF0YV9zaXplKSB7CisgICAgICAgIHJldHVybiB7a0Ryb3B9OworICAgICAg
fQorCisgICAgICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShuYWx1X3B0ciwgc2VnbWVudF9s
ZW5ndGgpOworICAgICAgbmFsdV9wdHIgKz0gc2VnbWVudF9sZW5ndGg7CisgICAgfQorICB9IGVs
c2UgeworICAgIGlmICh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSB7Cisg
ICAgICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShzdGFydF9jb2RlX2gyNjUpOworICAgIH0K
KyAgICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShiaXRzdHJlYW0uZGF0YSgpLCBiaXRzdHJl
YW0uc2l6ZSgpKTsKKyAgfQorCisgIGZpeGVkLmFjdGlvbiA9IGtJbnNlcnQ7CisgIHJldHVybiBm
aXhlZDsKK30KKwordm9pZCBIMjY1VnBzU3BzUHBzVHJhY2tlcjo6SW5zZXJ0VnBzU3BzUHBzTmFs
dXMoCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywKKyAgICBjb25zdCBzdGQ6
OnZlY3Rvcjx1aW50OF90PiYgc3BzLAorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBw
cHMpIHsKKyAgY29uc3RleHByIHNpemVfdCBrTmFsdUhlYWRlck9mZnNldCA9IDE7CisgIGlmICh2
cHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcp
IDw8ICJWUFMgc2l6ZSAgIiA8PCB2cHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsK
KyAgfQorICBpZiAoKHZwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMp
IHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7
CisgICAgcmV0dXJuOworICB9CisgIGlmIChzcHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQp
IHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgc2l6ZSAgIiA8PCBzcHMuc2l6ZSgp
IDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1
SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAoKHNwc1swXSAmIDB4N2UpID4+
IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8
ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChwcHMu
c2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8
ICJQUFMgc2l6ZSAgIiA8PCBwcHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAg
ICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAg
fQorICBpZiAoKHBwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtQcHMpIHsK
KyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7Cisg
ICAgcmV0dXJuOworICB9CisgIGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRl
PiBwYXJzZWRfdnBzID0gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAgICB2cHMuZGF0YSgp
ICsga05hbHVIZWFkZXJPZmZzZXQsIHZwcy5zaXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7Cisg
IGFic2w6Om9wdGlvbmFsPEgyNjVTcHNQYXJzZXI6OlNwc1N0YXRlPiBwYXJzZWRfc3BzID0gSDI2
NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAgICBzcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZz
ZXQsIHNwcy5zaXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisgIGFic2w6Om9wdGlvbmFsPEgy
NjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBwYXJzZWRfcHBzID0gSDI2NVBwc1BhcnNlcjo6UGFyc2VQ
cHMoCisgICAgICBwcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHBwcy5zaXplKCkgLSBr
TmFsdUhlYWRlck9mZnNldCk7CisKKyAgaWYgKCFwYXJzZWRfdnBzKSB7CisgICAgUlRDX0xPRyhM
U19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUy4iOworICB9CisKKyAgaWYgKCFwYXJz
ZWRfc3BzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFNQ
Uy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfcHBzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5H
KSA8PCAiRmFpbGVkIHRvIHBhcnNlIFBQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfdnBzIHx8
ICFwYXJzZWRfcHBzIHx8ICFwYXJzZWRfc3BzKSB7CisgICAgcmV0dXJuOworICB9CisKKyAgVnBz
SW5mbyB2cHNfaW5mbzsKKyAgdnBzX2luZm8uc2l6ZSA9IHZwcy5zaXplKCk7CisgIHVpbnQ4X3Qq
IHZwc19kYXRhID0gbmV3IHVpbnQ4X3RbdnBzX2luZm8uc2l6ZV07CisgIG1lbWNweSh2cHNfZGF0
YSwgdnBzLmRhdGEoKSwgdnBzX2luZm8uc2l6ZSk7CisgIHZwc19pbmZvLmRhdGEucmVzZXQodnBz
X2RhdGEpOworICB2cHNfZGF0YV9bcGFyc2VkX3Zwcy0+aWRdID0gc3RkOjptb3ZlKHZwc19pbmZv
KTsKKworICBTcHNJbmZvIHNwc19pbmZvOworICBzcHNfaW5mby5zaXplID0gc3BzLnNpemUoKTsK
KyAgc3BzX2luZm8ud2lkdGggPSBwYXJzZWRfc3BzLT53aWR0aDsKKyAgc3BzX2luZm8uaGVpZ2h0
ID0gcGFyc2VkX3Nwcy0+aGVpZ2h0OworICBzcHNfaW5mby52cHNfaWQgPSBwYXJzZWRfc3BzLT52
cHNfaWQ7CisgIHVpbnQ4X3QqIHNwc19kYXRhID0gbmV3IHVpbnQ4X3Rbc3BzX2luZm8uc2l6ZV07
CisgIG1lbWNweShzcHNfZGF0YSwgc3BzLmRhdGEoKSwgc3BzX2luZm8uc2l6ZSk7CisgIHNwc19p
bmZvLmRhdGEucmVzZXQoc3BzX2RhdGEpOworICBzcHNfZGF0YV9bcGFyc2VkX3Nwcy0+aWRdID0g
c3RkOjptb3ZlKHNwc19pbmZvKTsKKworICBQcHNJbmZvIHBwc19pbmZvOworICBwcHNfaW5mby5z
aXplID0gcHBzLnNpemUoKTsKKyAgcHBzX2luZm8uc3BzX2lkID0gcGFyc2VkX3Bwcy0+c3BzX2lk
OworICB1aW50OF90KiBwcHNfZGF0YSA9IG5ldyB1aW50OF90W3Bwc19pbmZvLnNpemVdOworICBt
ZW1jcHkocHBzX2RhdGEsIHBwcy5kYXRhKCksIHBwc19pbmZvLnNpemUpOworICBwcHNfaW5mby5k
YXRhLnJlc2V0KHBwc19kYXRhKTsKKyAgcHBzX2RhdGFfW3BhcnNlZF9wcHMtPmlkXSA9IHN0ZDo6
bW92ZShwcHNfaW5mbyk7CisKKyAgUlRDX0xPRyhMU19JTkZPKSA8PCAiSW5zZXJ0ZWQgU1BTIGlk
ICIgPDwgcGFyc2VkX3Nwcy0+aWQgPDwgIiBhbmQgUFBTIGlkICIKKyAgICAgICAgICAgICAgICAg
ICA8PCBwYXJzZWRfcHBzLT5pZCA8PCAiIChyZWZlcmVuY2luZyBTUFMgIgorICAgICAgICAgICAg
ICAgICAgIDw8IHBhcnNlZF9wcHMtPnNwc19pZCA8PCAiKSI7Cit9CisKK30gIC8vIG5hbWVzcGFj
ZSB2aWRlb19jb2RpbmcKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5n
L2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFj
a2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2FjNWUyYTAwMWNiZDIwNmZmMzE3YzJiMDlhZTY4MDZjZmIxMjgw
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oCkBA
IC0wLDAgKzEsNzQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJv
amVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBj
YW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNl
CisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdy
YW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0
aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxl
IGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIE1PRFVMRVNf
VklERU9fQ09ESU5HX0gyNjVfVlBTX1NQU19QUFNfVFJBQ0tFUl9IXworI2RlZmluZSBNT0RVTEVT
X1ZJREVPX0NPRElOR19IMjY1X1ZQU19TUFNfUFBTX1RSQUNLRVJfSF8KKworI2luY2x1ZGUgPGNz
dGRpbnQ+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0
b3I+CisKKyNpbmNsdWRlICJhcGkvYXJyYXlfdmlldy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvaW5j
bHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9z
b3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2NvcHlfb25fd3Jp
dGVfYnVmZmVyLmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCitjbGFzcyBWQ01QYWNrZXQ7CisK
K25hbWVzcGFjZSB2aWRlb19jb2RpbmcgeworCitjbGFzcyBIMjY1VnBzU3BzUHBzVHJhY2tlciB7
CisgcHVibGljOgorICBlbnVtIFBhY2tldEFjdGlvbiB7IGtJbnNlcnQsIGtEcm9wLCBrUmVxdWVz
dEtleWZyYW1lIH07CisgIHN0cnVjdCBGaXhlZEJpdHN0cmVhbSB7CisgICAgUGFja2V0QWN0aW9u
IGFjdGlvbjsKKyAgICBydGM6OkNvcHlPbldyaXRlQnVmZmVyIGJpdHN0cmVhbTsKKyAgfTsKKwor
ICAvLyBSZXR1cm5zIGZpeGVkIGJpdHN0cmVhbSBhbmQgbW9kaWZpZXMgfHZpZGVvX2hlYWRlcnwu
CisgIEZpeGVkQml0c3RyZWFtIENvcHlBbmRGaXhCaXRzdHJlYW0ocnRjOjpBcnJheVZpZXc8Y29u
c3QgdWludDhfdD4gYml0c3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJUUFZpZGVvSGVhZGVyKiB2aWRlb19oZWFkZXIpOworCisgIHZvaWQgSW5zZXJ0VnBzU3Bz
UHBzTmFsdXMoY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgc3BzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBwcHMpOworCisg
cHJpdmF0ZToKKyAgc3RydWN0IFZwc0luZm8geworICAgIHNpemVfdCBzaXplID0gMDsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8dWludDhfdFtdPiBkYXRhOworICB9OworCisgIHN0cnVjdCBQcHNJbmZv
IHsKKyAgICBpbnQgc3BzX2lkID0gLTE7CisgICAgc2l6ZV90IHNpemUgPSAwOworICAgIHN0ZDo6
dW5pcXVlX3B0cjx1aW50OF90W10+IGRhdGE7CisgIH07CisKKyAgc3RydWN0IFNwc0luZm8gewor
ICAgIGludCB2cHNfaWQgPSAtMTsKKyAgICBzaXplX3Qgc2l6ZSA9IDA7CisgICAgaW50IHdpZHRo
ID0gLTE7CisgICAgaW50IGhlaWdodCA9IC0xOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90
W10+IGRhdGE7CisgIH07CisKKyAgc3RkOjptYXA8dWludDMyX3QsIFZwc0luZm8+IHZwc19kYXRh
XzsKKyAgc3RkOjptYXA8dWludDMyX3QsIFBwc0luZm8+IHBwc19kYXRhXzsKKyAgc3RkOjptYXA8
dWludDMyX3QsIFNwc0luZm8+IHNwc19kYXRhXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSB2aWRl
b19jb2RpbmcKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKworI2VuZGlmICAvLyBNT0RVTEVTX1ZJ
REVPX0NPRElOR19IMjY0X1NQU19QUFNfVFJBQ0tFUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5j
bHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNf
aW50ZXJmYWNlLmgKaW5kZXggYzdiMTE2ZjRhZTNmNzBhZGRiODdmMGE4NDJhZWIzZTI4MWQyODU0
Ny4uMGNiYThmMzhhY2IzNzNhNTFhYjE3ZDczZTFiZTVmNTc5ZTRiZDUzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19j
b2RpbmcvaW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRl
L3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oCkBAIC0yMCw2ICsyMCw5IEBACiAjaW5jbHVkZSAiY29t
bW9uX3ZpZGVvL2dlbmVyaWNfZnJhbWVfZGVzY3JpcHRvci9nZW5lcmljX2ZyYW1lX2luZm8uaCIK
ICNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgogI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxz
LmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5n
L2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5kaWYKICNpbmNsdWRlICJt
b2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvdnA5L2luY2x1ZGUvdnA5X2dsb2JhbHMuaCIKICNp
bmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2Vycm9yX2NvZGVzLmgi
CiAjaW5jbHVkZSAicnRjX2Jhc2Uvc3lzdGVtL3J0Y19leHBvcnQuaCIKQEAgLTkyLDEwICs5NSwx
OCBAQCBzdHJ1Y3QgQ29kZWNTcGVjaWZpY0luZm9IMjY0IHsKIH07CiBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfcG9kPENvZGVjU3BlY2lmaWNJbmZvSDI2ND46OnZhbHVlLCAiIik7CiAKKyNpZm5kZWYg
RElTQUJMRV9IMjY1CitzdHJ1Y3QgQ29kZWNTcGVjaWZpY0luZm9IMjY1IHsKKyAgSDI2NVBhY2tl
dGl6YXRpb25Nb2RlIHBhY2tldGl6YXRpb25fbW9kZTsKKyAgYm9vbCBpZHJfZnJhbWU7Cit9Owor
I2VuZGlmCisKIHVuaW9uIENvZGVjU3BlY2lmaWNJbmZvVW5pb24gewogICBDb2RlY1NwZWNpZmlj
SW5mb1ZQOCBWUDg7CiAgIENvZGVjU3BlY2lmaWNJbmZvVlA5IFZQOTsKICAgQ29kZWNTcGVjaWZp
Y0luZm9IMjY0IEgyNjQ7CisgIENvZGVjU3BlY2lmaWNJbmZvSDI2NSBIMjY1OwogfTsKIHN0YXRp
Y19hc3NlcnQoc3RkOjppc19wb2Q8Q29kZWNTcGVjaWZpY0luZm9Vbmlvbj46OnZhbHVlLCAiIik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9qaXR0
ZXJfYnVmZmVyX2NvbW1vbi5oCmluZGV4IDZjY2ZlMzkxOTk1NGY4ZDA5YmI1MzdlNGFkOTE3NjFl
ZmE1MWEwOWYuLjU0OTJlZTViNDFmMzYwZTdjNWJjNTExMDYwNDM3ZWJkZWY5MjNjMjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmgKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvaml0dGVyX2J1
ZmZlcl9jb21tb24uaApAQCAtNTQsNiArNTQsOSBAQCBlbnVtIFZDTUZyYW1lQnVmZmVyU3RhdGVF
bnVtIHsKIH07CiAKIGVudW0geyBrSDI2NFN0YXJ0Q29kZUxlbmd0aEJ5dGVzID0gNCB9OworI2lm
bmRlZiBESVNBQkxFX0gyNjUKK2VudW0geyBrSDI2NVN0YXJ0Q29kZUxlbmd0aEJ5dGVzID0gNCB9
OworI2VuZGlmCiB9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCiAKICNlbmRpZiAgLy8gTU9EVUxFU19W
SURFT19DT0RJTkdfSklUVEVSX0JVRkZFUl9DT01NT05fSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Bh
Y2tldC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYwppbmRleCAwYzRhNjU4YjhmMjAzNDkxNmMxODUzNDZl
NGI4MTQyMmNjZmU4ZjhmLi4xZjlmNGI1MjQ2ZWQ1YTQ3MTE0NWZkZjNiYTQ4ZTVjMTQzYTA0ZDQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvcGFja2V0LmNjCkBAIC00
NCw4ICs0NCwxMyBAQCBWQ01QYWNrZXQ6OlZDTVBhY2tldChjb25zdCB1aW50OF90KiBwdHIsCiAg
ICAgICBtYXJrZXJCaXQocnRwX2hlYWRlci5tYXJrZXJCaXQpLAogICAgICAgdGltZXNOYWNrZWQo
LTEpLAogICAgICAgY29tcGxldGVOQUxVKGtOYWx1SW5jb21wbGV0ZSksCi0gICAgICBpbnNlcnRT
dGFydENvZGUodmlkZW9IZWFkZXIuY29kZWMgPT0ga1ZpZGVvQ29kZWNIMjY0ICYmCisjaWZuZGVm
IERJU0FCTEVfSDI2NQorICAgICAgaW5zZXJ0U3RhcnRDb2RlKCh2aWRlb0hlYWRlci5jb2RlYyA9
PSBrVmlkZW9Db2RlY0gyNjQgfHwgdmlkZW9IZWFkZXIuY29kZWMgPT0ga1ZpZGVvQ29kZWNIMjY1
KSAmJgogICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSGVhZGVyLmlzX2ZpcnN0X3BhY2tldF9p
bl9mcmFtZSksCisjZWxzZQorICAgICAgIGluc2VydFN0YXJ0Q29kZSh2aWRlb0hlYWRlci5jb2Rl
YyA9PSBrVmlkZW9Db2RlY0gyNjQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9IZWFk
ZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSwKKyNlbmRpZgogICAgICAgdmlkZW9faGVhZGVy
KHZpZGVvSGVhZGVyKSwKICAgICAgIHBhY2tldF9pbmZvKHJ0cF9oZWFkZXIsIHJlY2VpdmVfdGlt
ZV9tcykgewogICBpZiAoaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKCkgJiYgbWFya2VyQml0KSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvcGFja2V0X2J1ZmZl
ci5jYwppbmRleCA0ZGU2MjdlZTYzMzQxZTMwMzk4M2ViYjVkYWE4ODZhYWQ2OGIzMDg2Li41NTE0
MTQxYTRjMGNlYjU4OTdjNWM3MjQ4NjZjZDA5N2RhNjlkMDljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9w
YWNrZXRfYnVmZmVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuY2MKQEAgLTI0LDExICsy
NCwxNyBAQAogI2luY2x1ZGUgImFwaS92aWRlby9lbmNvZGVkX2ZyYW1lLmgiCiAjaW5jbHVkZSAi
YXBpL3ZpZGVvL3ZpZGVvX2ZyYW1lX3R5cGUuaCIKICNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2
NC9oMjY0X2NvbW1vbi5oIgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJjb21tb25f
dmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvcnRwX2hlYWRlcl9leHRlbnNpb25zLmgiCiAjaW5jbHVkZSAibW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvcnRwX3BhY2tldF9yZWNlaXZlZC5oIgogI2luY2x1ZGUgIm1vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0
cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyX2F2MS5oIgogI2luY2x1ZGUgIm1v
ZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisj
aWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVj
cy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVz
L3ZpZGVvX2NvZGluZy9mcmFtZV9vYmplY3QuaCIKICNpbmNsdWRlICJydGNfYmFzZS9jaGVja3Mu
aCIKICNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCkBAIC0yODksMTIgKzI5NSwyMCBAQCBz
dGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UnRwRnJhbWVPYmplY3Q+PiBQYWNrZXRCdWZmZXI6
OkZpbmRGcmFtZXMoCiAgICAgICBib29sIGhhc19oMjY0X3BwcyA9IGZhbHNlOwogICAgICAgYm9v
bCBoYXNfaDI2NF9pZHIgPSBmYWxzZTsKICAgICAgIGJvb2wgaXNfaDI2NF9rZXlmcmFtZSA9IGZh
bHNlOworICAgICAgYm9vbCBpc19oMjY1ID0gZmFsc2U7CisjaWZuZGVmIERJU0FCTEVfSDI2NQor
ICAgICAgaXNfaDI2NSA9IGJ1ZmZlcl9bc3RhcnRfaW5kZXhdLnBhY2tldC0+Y29kZWMoKSA9PSBr
VmlkZW9Db2RlY0gyNjU7CisgICAgICBib29sIGhhc19oMjY1X3NwcyA9IGZhbHNlOworICAgICAg
Ym9vbCBoYXNfaDI2NV9wcHMgPSBmYWxzZTsKKyAgICAgIGJvb2wgaGFzX2gyNjVfaWRyID0gZmFs
c2U7CisgICAgICBib29sIGlzX2gyNjVfa2V5ZnJhbWUgPSBmYWxzZTsKKyNlbmRpZgogICAgICAg
aW50IGlkcl93aWR0aCA9IC0xOwogICAgICAgaW50IGlkcl9oZWlnaHQgPSAtMTsKICAgICAgIHdo
aWxlICh0cnVlKSB7CiAgICAgICAgICsrdGVzdGVkX3BhY2tldHM7CiAKLSAgICAgICAgaWYgKCFp
c19oMjY0ICYmIGJ1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1lX2JlZ2luKCkpCisgICAgICAgIGlm
ICghaXNfaDI2NCAmJiAhaXNfaDI2NSAmJiBidWZmZXJfW3N0YXJ0X2luZGV4XS5mcmFtZV9iZWdp
bigpKQogICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlmIChpc19oMjY0KSB7CkBAIC0zMjcs
NyArMzQxLDI4IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+
IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAg
ICAgICAgIH0KLQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgICAgaWYgKGlzX2gyNjUgJiYg
IWlzX2gyNjVfa2V5ZnJhbWUpIHsKKyAgICAgICAgICBjb25zdCBhdXRvKiBoMjY1X2hlYWRlciA9
IGFic2w6OmdldF9pZjxSVFBWaWRlb0hlYWRlckgyNjU+KAorICAgICAgICAgICAgICAmYnVmZmVy
X1tzdGFydF9pbmRleF0ucGFja2V0LT52aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOwor
ICAgICAgICAgIGlmICghaDI2NV9oZWFkZXIgfHwgaDI2NV9oZWFkZXItPm5hbHVzX2xlbmd0aCA+
PSBrTWF4TmFsdXNQZXJQYWNrZXQpCisgICAgICAgICAgICByZXR1cm4gZm91bmRfZnJhbWVzOwor
ICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgaDI2NV9oZWFkZXItPm5hbHVzX2xlbmd0
aDsgKytqKSB7CisgICAgICAgICAgICBpZiAoaDI2NV9oZWFkZXItPm5hbHVzW2pdLnR5cGUgPT0g
SDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICAgICAgICAgICAgaGFzX2gyNjVfc3BzID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaDI2NV9oZWFkZXItPm5hbHVzW2pdLnR5cGUgPT0g
SDI2NTo6TmFsdVR5cGU6OmtQcHMpIHsKKyAgICAgICAgICAgICAgaGFzX2gyNjVfcHBzID0gdHJ1
ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaDI2NV9oZWFkZXItPm5hbHVzW2pdLnR5cGUgPT0g
SDI2NTo6TmFsdVR5cGU6OmtJZHJXUmFkbAorICAgICAgICAgICAgICAgICAgICAgICB8fCBoMjY1
X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McAorICAgICAg
ICAgICAgICAgICAgICAgICB8fCBoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1OjpO
YWx1VHlwZTo6a0NyYSkgeworICAgICAgICAgICAgICBoYXNfaDI2NV9pZHIgPSB0cnVlOworICAg
ICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoKGhhc19oMjY1X3NwcyAmJiBo
YXNfaDI2NV9wcHMpIHx8IGhhc19oMjY1X2lkcikgeworICAgICAgICAgICAgaXNfaDI2NV9rZXlm
cmFtZSA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYg
KHRlc3RlZF9wYWNrZXRzID09IGJ1ZmZlcl8uc2l6ZSgpKQogICAgICAgICAgIGJyZWFrOwogCkBA
IC0zMzksNyArMzc0LDcgQEAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ0cEZyYW1lT2Jq
ZWN0Pj4gUGFja2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAgICAgICAvLyB0aGUgdGltZXN0YW1w
IG9mIHRoYXQgcGFja2V0IGlzIHRoZSBzYW1lIGFzIHRoaXMgb25lLiBUaGlzIG1heSBjYXVzZQog
ICAgICAgICAvLyB0aGUgUGFja2V0QnVmZmVyIHRvIGhhbmQgb3V0IGluY29tcGxldGUgZnJhbWVz
LgogICAgICAgICAvLyBTZWU6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC93ZWJydGMvaXNz
dWVzL2RldGFpbD9pZD03MTA2Ci0gICAgICAgIGlmIChpc19oMjY0ICYmCisgICAgICAgIGlmICgo
aXNfaDI2NCB8fCBpc19oMjY1KSAmJgogICAgICAgICAgICAgKCFidWZmZXJfW3N0YXJ0X2luZGV4
XS51c2VkKCkgfHwKICAgICAgICAgICAgICBidWZmZXJfW3N0YXJ0X2luZGV4XS5wYWNrZXQtPnRp
bWVzdGFtcCAhPSBmcmFtZV90aW1lc3RhbXApKSB7CiAgICAgICAgICAgYnJlYWs7CkBAIC0zOTMs
NiArNDI4LDQ1IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+
IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAgfQogICAgICAgfQogCisjaWZuZGVm
IERJU0FCTEVfSDI2NQorICAgICAgaWYgKGlzX2gyNjUpIHsKKyAgICAgICAgLy8gV2FybiBpZiB0
aGlzIGlzIGFuIHVuc2FmZSBmcmFtZS4KKyAgICAgICAgaWYgKGhhc19oMjY1X2lkciAmJiAoIWhh
c19oMjY1X3NwcyB8fCAhaGFzX2gyNjVfcHBzKSkgeworICAgICAgICAgIHN0ZDo6c3RyaW5nc3Ry
ZWFtIHNzOworICAgICAgICAgIHNzIDw8ICJSZWNlaXZlZCBILjI2NS1JRFIgZnJhbWUgIgorICAg
ICAgICAgICAgIDw8ICIoU1BTOiAiIDw8IGhhc19oMjY1X3NwcyA8PCAiLCBQUFM6ICIgPDwgaGFz
X2gyNjVfcHBzIDw8ICIpLiAiOworICAgICAgICAgIHNzIDw8ICJUcmVhdGluZyBhcyBkZWx0YSBm
cmFtZSBzaW5jZSAiCisgICAgICAgICAgICAgICAgIldlYlJUQy1TcHNQcHNJZHJJc0gyNjVLZXlm
cmFtZSBpcyBhbHdheXMgZW5hYmxlZC4iOworICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykg
PDwgc3Muc3RyKCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGRl
Y2lkZWQgd2hldGhlciB0byB0cmVhdCB0aGlzIGZyYW1lIGFzIGEga2V5IGZyYW1lCisgICAgICAg
IC8vIG9yIGRlbHRhIGZyYW1lIGluIHRoZSBmcmFtZSBidWZmZXIsIHdlIHVwZGF0ZSB0aGUgZmll
bGQgdGhhdAorICAgICAgICAvLyBkZXRlcm1pbmVzIGlmIHRoZSBSdHBGcmFtZU9iamVjdCBpcyBh
IGtleSBmcmFtZSBvciBkZWx0YSBmcmFtZS4KKyAgICAgICAgY29uc3Qgc2l6ZV90IGZpcnN0X3Bh
Y2tldF9pbmRleCA9IHN0YXJ0X3NlcV9udW0gJSBidWZmZXJfLnNpemUoKTsKKyAgICAgICAgUlRD
X0NIRUNLX0xUKGZpcnN0X3BhY2tldF9pbmRleCwgYnVmZmVyXy5zaXplKCkpOworICAgICAgICBp
ZiAoaXNfaDI2NV9rZXlmcmFtZSkgeworICAgICAgICAgIGJ1ZmZlcl9bZmlyc3RfcGFja2V0X2lu
ZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtW
aWRlb0ZyYW1lS2V5OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGJ1ZmZlcl9bZmlyc3Rf
cGFja2V0X2luZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFt
ZVR5cGU6OmtWaWRlb0ZyYW1lRGVsdGE7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGlz
IGlzIG5vdCBhIGtleSBmcmFtZSwgbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBnYXBzIGluIHRoZQor
ICAgICAgICAvLyBwYWNrZXQgc2VxdWVuY2UgbnVtYmVycyB1cCB1bnRpbCB0aGlzIHBvaW50Lgor
ICAgICAgICBpZiAoIWlzX2gyNjVfa2V5ZnJhbWUgJiYgbWlzc2luZ19wYWNrZXRzXy51cHBlcl9i
b3VuZChzdGFydF9zZXFfbnVtKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1pc3NpbmdfcGFja2V0c18uYmVnaW4oKSkgeworICAgICAgICAgIHVpbnQxNl90IHN0b3Bf
aW5kZXggPSAoaW5kZXggKyAxKSAlIGJ1ZmZlcl8uc2l6ZSgpOworICAgICAgICAgIHdoaWxlIChz
dGFydF9pbmRleCAhPSBzdG9wX2luZGV4KSB7CisgICAgICAgICAgICAvLyBGSVhNRTogZmluZCB3
aGF0IGl0IGRvZXMuCisgICAgICAgICAgICAvL3NlcXVlbmNlX2J1ZmZlcl9bc3RhcnRfaW5kZXhd
LmZyYW1lX2NyZWF0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHN0YXJ0X2luZGV4ID0gKHN0YXJ0
X2luZGV4ICsgMSkgJSBidWZmZXJfLnNpemUoKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBy
ZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAgICB9CisgICAgICB9CisjZW5kaWYKKwogICAgICAg
aWYgKGF1dG8gZnJhbWUgPSBBc3NlbWJsZUZyYW1lKHN0YXJ0X3NlcV9udW0sIHNlcV9udW0pKSB7
CiAgICAgICAgIGZvdW5kX2ZyYW1lcy5wdXNoX2JhY2soc3RkOjptb3ZlKGZyYW1lKSk7CiAgICAg
ICB9IGVsc2UgewpAQCAtNDAwLDYgKzQ3NCw3IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPDwgc3RhcnRfc2VxX251bSA8PCAiLSIgPDwgc2VxX251bTsKICAgICAg
IH0KIAorCiAgICAgICBtaXNzaW5nX3BhY2tldHNfLmVyYXNlKG1pc3NpbmdfcGFja2V0c18uYmVn
aW4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZ19wYWNrZXRzXy51cHBl
cl9ib3VuZChzZXFfbnVtKSk7CiAgICAgICBDbGVhckludGVydmFsKHN0YXJ0X3NlcV9udW0sIHNl
cV9udW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNjIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lv
bl9pbmZvLmNjCmluZGV4IGU1MWQyOTM2MDc3ZDBkMDhlNzUxNTNmOGUzYmE0Yjg3N2M0NTFjMzMu
LjZkZjk4Njk5YjBjMjYyYzZlOWQ3YzFhYWVlZWFjNGU5M2Y4Y2I3NWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29k
aW5nL3Nlc3Npb25faW5mby5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uY2MKQEAgLTE1Myw2
ICsxNTMsMjIgQEAgc3RkOjp2ZWN0b3I8TmFsdUluZm8+IFZDTVNlc3Npb25JbmZvOjpHZXROYWx1
SW5mb3MoKSBjb25zdCB7CiAgIHJldHVybiBuYWx1X2luZm9zOwogfQogCisjaWZuZGVmIERJU0FC
TEVfSDI2NQorc3RkOjp2ZWN0b3I8SDI2NU5hbHVJbmZvPiBWQ01TZXNzaW9uSW5mbzo6R2V0SDI2
NU5hbHVJbmZvcygpIGNvbnN0IHsKKyAgaWYgKHBhY2tldHNfLmVtcHR5KCkgfHwgcGFja2V0c18u
ZnJvbnQoKS52aWRlb19oZWFkZXIuY29kZWMgIT0ga1ZpZGVvQ29kZWNIMjY1KQorICAgIHJldHVy
biBzdGQ6OnZlY3RvcjxIMjY1TmFsdUluZm8+KCk7CisgIHN0ZDo6dmVjdG9yPEgyNjVOYWx1SW5m
bz4gbmFsdV9pbmZvczsKKyAgZm9yIChjb25zdCBWQ01QYWNrZXQmIHBhY2tldCA6IHBhY2tldHNf
KSB7CisgICAgY29uc3QgYXV0byYgaDI2NSA9CisgICAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hl
YWRlckgyNjU+KHBhY2tldC52aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgaDI2NS5uYWx1c19sZW5ndGg7ICsraSkgeworICAgICAgbmFs
dV9pbmZvcy5wdXNoX2JhY2soaDI2NS5uYWx1c1tpXSk7CisgICAgfQorICB9CisgIHJldHVybiBu
YWx1X2luZm9zOworfQorI2VuZGlmCisKIHZvaWQgVkNNU2Vzc2lvbkluZm86OlNldEdvZkluZm8o
Y29uc3QgR29mSW5mb1ZQOSYgZ29mX2luZm8sIHNpemVfdCBpZHgpIHsKICAgaWYgKHBhY2tldHNf
LmVtcHR5KCkpCiAgICAgcmV0dXJuOwpAQCAtMjExLDYgKzIyNywxMSBAQCBzaXplX3QgVkNNU2Vz
c2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50OF90KiBmcmFtZV9idWZmZXIsCiAgIC8vIFRPRE8o
cGJvcyk6IFJlbW92ZSBIMjY0IHBhcnNpbmcgZnJvbSB0aGlzIHN0ZXAgYW5kIHVzZSBhIGZyYWdt
ZW50YXRpb24KICAgLy8gaGVhZGVyIHN1cHBsaWVkIGJ5IHRoZSBIMjY0IGRlcGFja2V0aXplci4K
ICAgY29uc3Qgc2l6ZV90IGtIMjY0TkFMSGVhZGVyTGVuZ3RoSW5CeXRlcyA9IDE7CisjaWZuZGVm
IERJU0FCTEVfSDI2NQorICBjb25zdCBzaXplX3Qga0gyNjVOQUxIZWFkZXJMZW5ndGhJbkJ5dGVz
ID0gMjsKKyAgY29uc3QgYXV0byogaDI2NSA9CisgICAgICBhYnNsOjpnZXRfaWY8UlRQVmlkZW9I
ZWFkZXJIMjY1PigmcGFja2V0LnZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisjZW5k
aWYKICAgY29uc3Qgc2l6ZV90IGtMZW5ndGhGaWVsZExlbmd0aCA9IDI7CiAgIGNvbnN0IGF1dG8q
IGgyNjQgPQogICAgICAgYWJzbDo6Z2V0X2lmPFJUUFZpZGVvSGVhZGVySDI2ND4oJnBhY2tldC52
aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOwpAQCAtMjM2LDYgKzI1NywzNiBAQCBzaXpl
X3QgVkNNU2Vzc2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50OF90KiBmcmFtZV9idWZmZXIsCiAg
ICAgcGFja2V0LnNpemVCeXRlcyA9IHJlcXVpcmVkX2xlbmd0aDsKICAgICByZXR1cm4gcGFja2V0
LnNpemVCeXRlczsKICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgZWxzZSBpZiAoaDI2NSAm
JiBoMjY1LT5wYWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVBUCkgeworICAgIC8vIFNpbWlsYXIg
dG8gSDI2NCwgZm9yIEgyNjUgYWdncmVnYXRpb24gcGFja2V0cywgd2UgcmVseSBvbiBqaXR0ZXIg
YnVmZmVyCisgICAgLy8gdG8gcmVtb3ZlIHRoZSB0d28gbGVuZ3RoIGJ5dGVzIGJldHdlZW4gZWFj
aCBOQUwgdW5pdCwgYW5kIHBvdGVudGlhbGx5IGFkZAorICAgIC8vIHN0YXJ0IGNvZGVzLgorICAg
IHNpemVfdCByZXF1aXJlZF9sZW5ndGggPSAwOworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfcHRy
ID0KKyAgICAgICAgcGFja2V0X2J1ZmZlciArIGtIMjY1TkFMSGVhZGVyTGVuZ3RoSW5CeXRlczsg
IC8vIHNraXAgcGF5bG9hZGhkcgorICAgIHdoaWxlIChuYWx1X3B0ciA8IHBhY2tldF9idWZmZXIg
KyBwYWNrZXQuc2l6ZUJ5dGVzKSB7CisgICAgICBzaXplX3QgbGVuZ3RoID0gQnVmZmVyVG9VV29y
ZDE2KG5hbHVfcHRyKTsKKyAgICAgIHJlcXVpcmVkX2xlbmd0aCArPQorICAgICAgICAgIGxlbmd0
aCArIChwYWNrZXQuaW5zZXJ0U3RhcnRDb2RlID8ga0gyNjVTdGFydENvZGVMZW5ndGhCeXRlcyA6
IDApOworICAgICAgbmFsdV9wdHIgKz0ga0xlbmd0aEZpZWxkTGVuZ3RoICsgbGVuZ3RoOworICAg
IH0KKyAgICBTaGlmdFN1YnNlcXVlbnRQYWNrZXRzKHBhY2tldF9pdCwgcmVxdWlyZWRfbGVuZ3Ro
KTsKKyAgICBuYWx1X3B0ciA9IHBhY2tldF9idWZmZXIgKyBrSDI2NU5BTEhlYWRlckxlbmd0aElu
Qnl0ZXM7CisgICAgdWludDhfdCogZnJhbWVfYnVmZmVyX3B0ciA9IGZyYW1lX2J1ZmZlciArIG9m
ZnNldDsKKyAgICB3aGlsZSAobmFsdV9wdHIgPCBwYWNrZXRfYnVmZmVyICsgcGFja2V0LnNpemVC
eXRlcykgeworICAgICAgc2l6ZV90IGxlbmd0aCA9IEJ1ZmZlclRvVVdvcmQxNihuYWx1X3B0cik7
CisgICAgICBuYWx1X3B0ciArPSBrTGVuZ3RoRmllbGRMZW5ndGg7CisgICAgICAvLyBzaW5jZSBI
MjY1IHNoYXJlcyB0aGUgc2FtZSBzdGFydCBjb2RlIGFzIEgyNjQsIHVzZSB0aGUgc2FtZSBJbnNl
cnQKKyAgICAgIC8vIGZ1bmN0aW9uIHRvIGhhbmRsZSBzdGFydCBjb2RlLgorICAgICAgZnJhbWVf
YnVmZmVyX3B0ciArPSBJbnNlcnQobmFsdV9wdHIsIGxlbmd0aCwgcGFja2V0Lmluc2VydFN0YXJ0
Q29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8dWludDhf
dCo+KGZyYW1lX2J1ZmZlcl9wdHIpKTsKKyAgICAgIG5hbHVfcHRyICs9IGxlbmd0aDsKKyAgICB9
CisgICAgcGFja2V0LnNpemVCeXRlcyA9IHJlcXVpcmVkX2xlbmd0aDsKKyAgICByZXR1cm4gcGFj
a2V0LnNpemVCeXRlczsKKyAgfQorI2VuZGlmCiAgIFNoaWZ0U3Vic2VxdWVudFBhY2tldHMoCiAg
ICAgICBwYWNrZXRfaXQsIHBhY2tldC5zaXplQnl0ZXMgKwogICAgICAgICAgICAgICAgICAgICAg
KHBhY2tldC5pbnNlcnRTdGFydENvZGUgPyBrSDI2NFN0YXJ0Q29kZUxlbmd0aEJ5dGVzIDogMCkp
OwpAQCAtNDYyLDcgKzUxMywyMiBAQCBpbnQgVkNNU2Vzc2lvbkluZm86Okluc2VydFBhY2tldChj
b25zdCBWQ01QYWNrZXQmIHBhY2tldCwKICAgICAgICAgIElzTmV3ZXJTZXF1ZW5jZU51bWJlcihw
YWNrZXQuc2VxTnVtLCBsYXN0X3BhY2tldF9zZXFfbnVtXykpKSB7CiAgICAgICBsYXN0X3BhY2tl
dF9zZXFfbnVtXyA9IHBhY2tldC5zZXFOdW07CiAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUK
KyAgfSBlbHNlIGlmIChwYWNrZXQuY29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICBm
cmFtZV90eXBlXyA9IHBhY2tldC52aWRlb19oZWFkZXIuZnJhbWVfdHlwZTsKKyAgICBpZiAocGFj
a2V0LmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSgpICYmCisgICAgICAgIChmaXJzdF9wYWNrZXRf
c2VxX251bV8gPT0gLTEgfHwKKyAgICAgICAgIElzTmV3ZXJTZXF1ZW5jZU51bWJlcihmaXJzdF9w
YWNrZXRfc2VxX251bV8sIHBhY2tldC5zZXFOdW0pKSkgeworICAgICAgZmlyc3RfcGFja2V0X3Nl
cV9udW1fID0gcGFja2V0LnNlcU51bTsKKyAgICB9CisgICAgaWYgKHBhY2tldC5tYXJrZXJCaXQg
JiYKKyAgICAgICAgKGxhc3RfcGFja2V0X3NlcV9udW1fID09IC0xIHx8CisgICAgICAgICBJc05l
d2VyU2VxdWVuY2VOdW1iZXIocGFja2V0LnNlcU51bSwgbGFzdF9wYWNrZXRfc2VxX251bV8pKSkg
eworICAgICAgbGFzdF9wYWNrZXRfc2VxX251bV8gPSBwYWNrZXQuc2VxTnVtOworICAgIH0KKyNl
bHNlCiAgIH0gZWxzZSB7CisjZW5kaWYKICAgICAvLyBPbmx5IGluc2VydCBtZWRpYSBwYWNrZXRz
IGJldHdlZW4gZmlyc3QgYW5kIGxhc3QgcGFja2V0cyAod2hlbgogICAgIC8vIGF2YWlsYWJsZSku
CiAgICAgLy8gUGxhY2luZyBjaGVjayBoZXJlLCBhcyB0byBwcm9wZXJseSBhY2NvdW50IGZvciBk
dXBsaWNhdGUgcGFja2V0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Npb25faW5mby5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvc2Vzc2lvbl9pbmZvLmgKaW5kZXggMDZhMzQ4ZWY3MjM1NDc3MWIyODM4NWY5ZDZmMjQ1YmE5
MGE3MWNkOS4uMDFlYTdiZDI5Nzc3MjdmZDc2NzYxNDJkNGIxNzNhNWM5ZDY5MjlhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKQEAg
LTY1LDcgKzY1LDkgQEAgY2xhc3MgVkNNU2Vzc2lvbkluZm8gewogICBpbnQgVGwwUGljSWQoKSBj
b25zdDsKIAogICBzdGQ6OnZlY3RvcjxOYWx1SW5mbz4gR2V0TmFsdUluZm9zKCkgY29uc3Q7Ci0K
KyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0ZDo6dmVjdG9yPEgyNjVOYWx1SW5mbz4gR2V0SDI2
NU5hbHVJbmZvcygpIGNvbnN0OworI2VuZGlmCiAgIHZvaWQgU2V0R29mSW5mbyhjb25zdCBHb2ZJ
bmZvVlA5JiBnb2ZfaW5mbywgc2l6ZV90IGlkeCk7CiAKICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvZXhwZXJp
bWVudHMvbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4cGVyaW1lbnRzL21pbl92aWRlb19i
aXRyYXRlX2V4cGVyaW1lbnQuY2MKaW5kZXggMTE0NTBkMDg0OTIxYzY3NDkyNTZhNDRjNmRjNjZh
YTNhZThmZmNmMy4uM2IxM2U4ZTliZmVkOTJiZTBmMzg5MWVkZWI5MDgxY2ZiOGM2MTllMyAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcnRjX2Jh
c2UvZXhwZXJpbWVudHMvbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9ydGNfYmFzZS9leHBlcmltZW50
cy9taW5fdmlkZW9fYml0cmF0ZV9leHBlcmltZW50LmNjCkBAIC0xMDAsNiArMTAwLDkgQEAgYWJz
bDo6b3B0aW9uYWw8RGF0YVJhdGU+IEdldEV4cGVyaW1lbnRhbE1pblZpZGVvQml0cmF0ZShWaWRl
b0NvZGVjVHlwZSB0eXBlKSB7CiAgICAgICAgIHJldHVybiBtaW5fYml0cmF0ZV9hdjEuR2V0T3B0
aW9uYWwoKTsKICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgICByZXR1cm4gbWlu
X2JpdHJhdGVfaDI2NC5HZXRPcHRpb25hbCgpOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAg
IGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorI2VuZGlmCiAgICAgICBjYXNlIGtWaWRlb0NvZGVjR2Vu
ZXJpYzoKICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNNdWx0aXBsZXg6CiAgICAgICAgIHJldHVybiBh
YnNsOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgK
aW5kZXggYWI3Nzk0MmU2OTQ2YmRlMzAwMjk5MGEzYTI2YTEwMDFlZjYzMDUyNS4uNmYwODA1YjBi
YmJlM2QwMzhjNWM0NTZjZTYwYmViZGVhODgwMTJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMu
aAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2Vi
S2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFZpZGVvRGVjb2Rl
ckZhY3Rvcnk7CiBjbGFzcyBWaWRlb0VuY29kZXJGYWN0b3J5OwogY2xhc3MgVmlkZW9GcmFtZTsK
IAotZW51bSBjbGFzcyBXZWJLaXRDb2RlY1N1cHBvcnQgeyBIMjY0LCBIMjY0QW5kVlA4IH07Citl
bnVtIGNsYXNzIFdlYktpdENvZGVjU3VwcG9ydCB7IEgyNjRWUDhBbmRIMjY1LCBIMjY0QW5kVlA4
IH07CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNyZWF0
ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktpdENvZGVjU3VwcG9ydCk7CiBzdGQ6OnVuaXF1ZV9w
dHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9y
eShXZWJLaXRDb2RlY1N1cHBvcnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW0gYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0
aWxpdGllcy5tbQppbmRleCAxNDAyYzJiZjNhNDE3MDNhY2I4ZjNkMGYxZjBhNDNhNzlhYTNjYjZl
Li42Y2U4NjUzYzM1NDI1NDFhYjgxZWVkYTFiY2VmZTgzOGZhYWE1NTA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktp
dFV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVu
Y29kZXJGYWN0b3J5KFdlYktpdENvCiAgICAgfSk7CiAjZW5kaWYKIAotICAgIGF1dG8gaW50ZXJu
YWxGYWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9FbmNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQg
PT0gV2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4ID8gW1tSVENEZWZhdWx0VmlkZW9FbmNv
ZGVyRmFjdG9yeSBhbGxvY10gaW5pdF0gOiBbW1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0IGFs
bG9jXSBpbml0XSk7CisgICAgYXV0byBpbnRlcm5hbEZhY3RvcnkgPSBPYmpDVG9OYXRpdmVWaWRl
b0VuY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkgYWxsb2NdIGlu
aXRXaXRoSDI2NTogY29kZWNTdXBwb3J0ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NFZQOEFu
ZEgyNjVdKTsKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxWaWRlb0VuY29kZXJGYWN0b3J5
V2l0aFNpbXVsY2FzdD4oc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkpOwogfQogCkBAIC0yNzEs
NyArMjcxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gUmVtb3RlVmlkZW9EZWNv
ZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKGNvbnMKIAogc3RkOjp1bmlxdWVfcHRyPHdl
YnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoV2Vi
S2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKIHsKLSAgICBhdXRvIGludGVybmFsRmFjdG9y
eSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoY29kZWNTdXBwb3J0ID09IFdlYktp
dENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA/IFtbUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rv
cnkgYWxsb2NdIGluaXRdIDogW1tSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NCBhbGxvY10gaW5p
dF0pOworICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVy
RmFjdG9yeShbW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGFsbG9jXSBpbml0V2l0aEgy
NjU6IGNvZGVjU3VwcG9ydCA9PSBXZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjRWUDhBbmRIMjY1XSk7
CiAgICAgaWYgKHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNyZWF0ZUNhbGxiYWNrKQogICAgICAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5PihzdGQ6
Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7CiAgICAgcmV0dXJuIGludGVybmFsRmFjdG9yeTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZh
dGUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMjJkMzU5NGY1NTdmN2I3NWZmNjdmOTQyN2JiNDYxYjBjOWJhNWNlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gy
NjUrUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhl
IFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UK
KyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9m
IHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0
eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFs
bCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBB
VVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisvKiBUaGlz
IGZpbGUgaXMgYm9ycm93ZWQgZnJvbSBzZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8KKworI2ltcG9ydCAiUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY1LmgiCisKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNs
dWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oIgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgor
CisvKiBJbnRlcmZhY2VzIGZvciBjb252ZXJ0aW5nIHRvL2Zyb20gaW50ZXJuYWwgQysrIGZvcm1h
dHMuICovCitAaW50ZXJmYWNlIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NSAoKQorCistICh3ZWJy
dGM6OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvOworCitAZW5kCisK
K05TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZp
Y0luZm9IMjY1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJiYWUxOWM3YmMzMWI4NDU5Zjc1ZGJkMTE5NDg1OTA0
NmJmZTNiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1LmgKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBU
aGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAg
VXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5z
ZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qg
b2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3Bl
cnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAg
QWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhl
IEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKy8qIFRo
aXMgZmlsZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0LmguICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91
bmRhdGlvbi5oPgorCisjaW1wb3J0ICJSVENDb2RlY1NwZWNpZmljSW5mby5oIgorI2ltcG9ydCAi
UlRDTWFjcm9zLmgiCisKKy8qKiBDbGFzcyBmb3IgSDI2NSBzcGVjaWZpYyBjb25maWcuICovCit0
eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgUlRDSDI2NVBhY2tldGl6YXRpb25Nb2RlKSB7Cisg
IFJUQ0gyNjVQYWNrZXRpemF0aW9uTW9kZU5vbkludGVybGVhdmVkID0gMCwgIC8vIE1vZGUgMSAt
IFNUQVAtQSwgRlUtQSBpcyBhbGxvd2VkCisgIFJUQ0gyNjVQYWNrZXRpemF0aW9uTW9kZVNpbmds
ZU5hbFVuaXQgICAgICAgIC8vIE1vZGUgMCAtIG9ubHkgc2luZ2xlIE5BTFUgYWxsb3dlZAorfTsK
KworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tf
UlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IikpKQorQGludGVyZmFjZSBSVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjUgOiBOU09iamVjdCA8UlRDQ29kZWNTcGVjaWZpY0luZm8+CisKK0Bwcm9wZXJ0eShu
b25hdG9taWMsIGFzc2lnbikgUlRDSDI2NVBhY2tldGl6YXRpb25Nb2RlIHBhY2tldGl6YXRpb25N
b2RlOworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lm
aWNJbmZvSDI2NS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk0YTQ2OTg1ZjcyNzc0ZDQ1ZTMzNDA1MDhjZDBhNGMwOGZkMWYxZTUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5tbQpAQCAtMCwwICsxLDI4IEBACisvKgorICogIENvcHlyaWdodCAyMDE3IFRoZSBXZWJS
VEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAg
dGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUg
c291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmln
aHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29u
dHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9S
UyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworIC8qIFRoaXMgZmls
ZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29k
ZWNTcGVjaWZpY0luZm9IMjY0Lm1tICovCisKKyNpbXBvcnQgIlJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NStQcml2YXRlLmgiCisKKy8vIEgyNjUgc3BlY2lmaWMgc2V0dGluZ3MuCitAaW1wbGVtZW50
YXRpb24gUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1CisKK0BzeW50aGVzaXplIHBhY2tldGl6YXRp
b25Nb2RlID0gX3BhY2tldGl6YXRpb25Nb2RlOworCistICh3ZWJydGM6OkNvZGVjU3BlY2lmaWNJ
bmZvKW5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvIHsKKyAgd2VicnRjOjpDb2RlY1NwZWNpZmljSW5m
byBjb2RlY1NwZWNpZmljSW5mbzsKKyAgY29kZWNTcGVjaWZpY0luZm8uY29kZWNUeXBlID0gd2Vi
cnRjOjprVmlkZW9Db2RlY0gyNjU7CisgIGNvZGVjU3BlY2lmaWNJbmZvLmNvZGVjU3BlY2lmaWMu
SDI2NS5wYWNrZXRpemF0aW9uX21vZGUgPQorICAgICAgKHdlYnJ0Yzo6SDI2NVBhY2tldGl6YXRp
b25Nb2RlKV9wYWNrZXRpemF0aW9uTW9kZTsKKworICByZXR1cm4gY29kZWNTcGVjaWZpY0luZm87
Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3RvcnkuaAppbmRleCBkMTE0NjAzMDBkNTFlZDE2NTVlYjJlNzg5MTlmMGY0ZGRjYzU5OWI3
Li5iODM4YTRiOGFlNjk1MDYxN2UxZWVkZTIyYmM4YzhjNjBmODQ3Nzc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oCkBAIC0yMSw2ICsy
MSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBSVENfT0JKQ19FWFBPUlQKIF9fYXR0cmli
dXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9y
eSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgOiBOU09iamVj
dCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4KKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBw
b3J0SDI2NTsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KaW5kZXggNDQ0NDVmNGIxMzMy
MTY2YTY4N2ZhY2JiNGM1MGE4Nzk1NDliMmM3ZS4uYTQ5NmFlNTQzZTk2NWUzNGNhNzg3Nzc4Mzdm
MjIzNTM2M2QxOGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0Vmlk
ZW9EZWNvZGVyRmFjdG9yeS5tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkubQpAQCAtMTgsOCArMTgsMjMgQEAKICNpZiBkZWZpbmVkKFJUQ19FTkFC
TEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZQOS5oIgog
I2VuZGlmCisjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKKyNpbXBvcnQgIlJUQ0gyNjVQ
cm9maWxlTGV2ZWxJZC5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVySDI2NS5oIgorI2VuZGlm
CisKK0BpbXBsZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSB7CisgIGJv
b2wgX3N1cHBvcnRIMjY1OworfQogCi1AaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVj
b2RlckZhY3RvcnkKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0SDI2NQoreworICBz
ZWxmID0gW3N1cGVyIGluaXRdOworICBpZiAoc2VsZikgeworICAgICAgX3N1cHBvcnRIMjY1ID0g
c3VwcG9ydEgyNjU7CisgIH0KKyAgcmV0dXJuIHNlbGY7Cit9CiAKIC0gKE5TQXJyYXk8UlRDVmlk
ZW9Db2RlY0luZm8gKj4gKilzdXBwb3J0ZWRDb2RlY3MgewogICBOU0RpY3Rpb25hcnk8TlNTdHJp
bmcgKiwgTlNTdHJpbmcgKj4gKmNvbnN0cmFpbmVkSGlnaFBhcmFtcyA9IEB7CkBAIC00MiwxMyAr
NTcsMzAgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5CiAK
ICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOEluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9j
XSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDhOYW1lXTsKIAorI2lmICFkZWZpbmVkKFJU
Q19ESVNBQkxFX0gyNjUpCisgIFJUQ1ZpZGVvQ29kZWNJbmZvICpoMjY1SW5mbyA9IFtbUlRDVmlk
ZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY0gyNjVOYW1lXTsK
KyNlbmRpZgorIAogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAgIFJUQ1ZpZGVvQ29kZWNJ
bmZvICp2cDlJbmZvID0gW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtS
VENWaWRlb0NvZGVjVnA5TmFtZV07CiAjZW5kaWYKIAorICBpZiAoIV9zdXBwb3J0SDI2NSkgewor
ICAgIHJldHVybiBAWworICAgICAgY29uc3RyYWluZWRIaWdoSW5mbywKKyAgICAgIGNvbnN0cmFp
bmVkQmFzZWxpbmVJbmZvLAorICAgICAgdnA4SW5mbywKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVf
VlA5KQorICAgICAgdnA5SW5mbywKKyNlbmRpZgorICAgIF07CisgIH0KICAgcmV0dXJuIEBbCiAg
ICAgY29uc3RyYWluZWRIaWdoSW5mbywKICAgICBjb25zdHJhaW5lZEJhc2VsaW5lSW5mbywKKyNp
ZiAhZGVmaW5lZChSVENfRElTQUJMRV9IMjY1KQorICAgIGgyNjVJbmZvLAorI2VuZGlmCiAgICAg
dnA4SW5mbywKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICAgIHZwOUluZm8sCkBAIC02
MSw2ICs5MywxMCBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rv
cnkKICAgICByZXR1cm4gW1tSVENWaWRlb0RlY29kZXJIMjY0IGFsbG9jXSBpbml0XTsKICAgfSBl
bHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY1ZwOE5hbWVd
KSB7CiAgICAgcmV0dXJuIFtSVENWaWRlb0RlY29kZXJWUDggdnA4RGVjb2Rlcl07CisjaWYgIWRl
ZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKKyAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxU
b1N0cmluZzprUlRDVmlkZW9Db2RlY0gyNjVOYW1lXSkgeworICAgIHJldHVybiBbW1JUQ1ZpZGVv
RGVjb2RlckgyNjUgYWxsb2NdIGluaXRdOworI2VuZGlmCiAjaWYgZGVmaW5lZChSVENfRU5BQkxF
X1ZQOSkKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9D
b2RlY1ZwOU5hbWVdKSB7CiAgICAgcmV0dXJuIFtSVENWaWRlb0RlY29kZXJWUDkgdnA5RGVjb2Rl
cl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJG
YWN0b3J5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5
LmgKaW5kZXggOTMyMzI1NmNlYWRjODM4YzUzYzgwYTcwZmMwZDBiZTI1NTMzNWZlMy4uYTk5NWRh
YWI1NDEwZjAzZGQxYjM3ZjA4OGQzNTE1NTgwNGQ2NzgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaApAQCAtMjIsOCArMjIsNyBAQCBS
VENfT0JKQ19FWFBPUlQKIF9fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENE
ZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3RvcnkgOiBOU09iamVjdCA8UlRDVmlkZW9FbmNvZGVyRmFjdG9yeT4KIAotQHBy
b3BlcnR5KG5vbmF0b21pYywgcmV0YWluKSBSVENWaWRlb0NvZGVjSW5mbyAqcHJlZmVycmVkQ29k
ZWM7Ci0KKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0SDI2NTsKICsgKE5TQXJyYXk8
UlRDVmlkZW9Db2RlY0luZm8gKj4gKilzdXBwb3J0ZWRDb2RlY3M7CiAKIEBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubSBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubQppbmRleCBiNzIy
OTZiNjRmMzFiMGVmYjQ1YThiZGRhNjM5YjQ4MmFmYWRiZGEwLi5kNjg2MDlkNTY0OTMxOGQ4ZTMy
MTJjZTQyZWRmOTkyNmRkYjQ4Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0Rl
ZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZh
dWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCkBAIC0xOCwxMCArMTgsMjMgQEAKICNpZiBkZWZpbmVk
KFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2Rl
clZQOS5oIgogI2VuZGlmCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQorI2ltcG9ydCAiUlRD
SDI2NVByb2ZpbGVMZXZlbElkLmgiCisjaW1wb3J0ICJSVENWaWRlb0VuY29kZXJIMjY1LmgiCisj
ZW5kaWYKIAotQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CitA
aW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkgeworICBib29sIF9z
dXBwb3J0SDI2NTsKK30KIAotQHN5bnRoZXNpemUgcHJlZmVycmVkQ29kZWM7CistIChpZClpbml0
V2l0aEgyNjU6KGJvb2wpc3VwcG9ydEgyNjUKK3sKKyAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAg
aWYgKHNlbGYpIHsKKyAgICAgIF9zdXBwb3J0SDI2NSA9IHN1cHBvcnRIMjY1OworICB9CisgIHJl
dHVybiBzZWxmOworfQogCiArIChOU0FycmF5PFJUQ1ZpZGVvQ29kZWNJbmZvICo+ICopc3VwcG9y
dGVkQ29kZWNzIHsKICAgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICpjb25z
dHJhaW5lZEhpZ2hQYXJhbXMgPSBAewpAQCAtNDIsNiArNTUsMTAgQEAgQGltcGxlbWVudGF0aW9u
IFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CiAgICAgICBbW1JUQ1ZpZGVvQ29kZWNJbmZv
IGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNIMjY0TmFtZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOmNvbnN0cmFpbmVkQmFzZWxpbmVQYXJh
bXNdOwogCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQorICBSVENWaWRlb0NvZGVjSW5mbyAq
aDI2NUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1Zp
ZGVvQ29kZWNIMjY1TmFtZV07CisjZW5kaWYKKwogICBSVENWaWRlb0NvZGVjSW5mbyAqdnA4SW5m
byA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2Rl
Y1ZwOE5hbWVdOwogCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKQEAgLTUxLDYgKzY4LDkg
QEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CiAgIHJldHVy
biBAWwogICAgIGNvbnN0cmFpbmVkSGlnaEluZm8sCiAgICAgY29uc3RyYWluZWRCYXNlbGluZUlu
Zm8sCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQorICAgIGgyNjVJbmZvLAorI2VuZGlmCiAg
ICAgdnA4SW5mbywKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICAgIHZwOUluZm8sCkBA
IC02Niw2ICs4NiwxMiBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZh
Y3RvcnkKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICB9IGVsc2UgaWYgKFtpbmZvLm5h
bWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVjVnA5TmFtZV0pIHsKICAgICByZXR1cm4g
W1JUQ1ZpZGVvRW5jb2RlclZQOSB2cDlFbmNvZGVyXTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKERJ
U0FCTEVfSDI2NSkKKyAgfSBlbHNlIGlmIChAYXZhaWxhYmxlKGlPUyAxMSwgKikpIHsKKyAgICBp
ZiAoW2luZm8ubmFtZSBpc0VxdWFsVG9TdHJpbmc6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV0pIHsK
KyAgICAgIHJldHVybiBbW1JUQ1ZpZGVvRW5jb2RlckgyNjUgYWxsb2NdIGluaXRXaXRoQ29kZWNJ
bmZvOmluZm9dOworICAgIH0KICNlbmRpZgogICB9CiAKQEAgLTc2LDEyICsxMDIsOSBAQCBAaW1w
bGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICAgTlNNdXRhYmxlQXJy
YXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKmNvZGVjcyA9IFtbW3NlbGYgY2xhc3NdIHN1cHBvcnRl
ZENvZGVjc10gbXV0YWJsZUNvcHldOwogCiAgIE5TTXV0YWJsZUFycmF5PFJUQ1ZpZGVvQ29kZWNJ
bmZvICo+ICpvcmRlcmVkQ29kZWNzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKLSAgTlNVSW50
ZWdlciBpbmRleCA9IFtjb2RlY3MgaW5kZXhPZk9iamVjdDpzZWxmLnByZWZlcnJlZENvZGVjXTsK
LSAgaWYgKGluZGV4ICE9IE5TTm90Rm91bmQpIHsKLSAgICBbb3JkZXJlZENvZGVjcyBhZGRPYmpl
Y3Q6W2NvZGVjcyBvYmplY3RBdEluZGV4OmluZGV4XV07Ci0gICAgW2NvZGVjcyByZW1vdmVPYmpl
Y3RBdEluZGV4OmluZGV4XTsKLSAgfQogICBbb3JkZXJlZENvZGVjcyBhZGRPYmplY3RzRnJvbUFy
cmF5OmNvZGVjc107CisgIGlmICghX3N1cHBvcnRIMjY1KQorICAgIFtvcmRlcmVkQ29kZWNzIHJl
bW92ZU9iamVjdEF0SW5kZXg6MF07CiAKICAgcmV0dXJuIFtvcmRlcmVkQ29kZWNzIGNvcHldOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQuaCBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUz
NDg2ZDA2ZDQxMjdlOTc4MzkyOWZlNDBiZWRiMzNhNWM2N2IyZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgKQEAgLTAsMCArMSwxNiBA
QAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFk
ZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQK
KyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhv
cnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorCitSVENfT0JKQ19FWFBPUlQgZXh0ZXJuIE5TU3Ry
aW5nICpjb25zdCBrUlRDVmlkZW9Db2RlY0gyNjVOYW1lOworUlRDX09CSkNfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqY29uc3Qga1JUQ0xldmVsMzFNYWluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gy
NjVQcm9maWxlTGV2ZWxJZC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWQ0NGUyYTU5MzMyZjc2ZjliYjg1NTE2
NDZkY2Q3MzJiOTA1MzI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENI
MjY1UHJvZmlsZUxldmVsSWQubW0KQEAgLTAsMCArMSwxOCBAQAorLyoKKyAqICBDb3B5cmlnaHQg
MjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
bGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFs
IHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRF
TlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQg
aW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgor
ICovCisKKyNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgorCisjaW5jbHVkZSAibWVk
aWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaCIKKworTlNTdHJpbmcgKmNvbnN0IGtSVENWaWRlb0Nv
ZGVjSDI2NU5hbWUgPSBAIkgyNjUiOworLy8gVE9ETyhqaWFuanVueik6IFRoaXMgaXMgdmFsdWUg
aXMgbm90IGNvcnJlY3QuCitOU1N0cmluZyAqY29uc3Qga1JUQ0xldmVsMzFNYWluID0gQCI0ZDAw
MWYiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Mzli
MzgyODljMmYxOWJjYWQyZjA0NGEwMDg5NjlhOTUwZTI3ZTAyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1LmgKQEAgLTAsMCArMSwxOSBAQAor
LyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBM
SUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0
aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAq
ICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMg
bWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUg
c291cmNlIHRyZWUuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisK
KyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyLmgiCisKK1JU
Q19PQkpDX0VYUE9SVAorX19hdHRyaWJ1dGVfXygob2JqY19ydW50aW1lX25hbWUoIldLX1JUQ1Zp
ZGVvRGVjb2RlckgyNjUiKSkpCitAaW50ZXJmYWNlIFJUQ1ZpZGVvRGVjb2RlckgyNjUgOiBOU09i
amVjdCA8UlRDVmlkZW9EZWNvZGVyPgorQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29k
ZXJIMjY1Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NjI2NjhhNjE4OTQwYzgzOWFiODYyY2ExYTMxNGU1OWY1
OWNmZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rl
ckgyNjUubW0KQEAgLTAsMCArMSwyNzAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRo
ZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl
CisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVy
dHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBB
bGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUg
QVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKi8KKwor
I2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVySDI2NS5oIgorCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gv
VmlkZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2ltcG9y
dCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVv
X2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgiCisj
aW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKKworI2luY2x1ZGUgIm1vZHVsZXMv
dmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJydGNf
YmFzZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAi
cnRjX2Jhc2UvdGltZV91dGlscy5oIgorI2luY2x1ZGUgInNkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oIgorCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRo
ZSBkZWNvZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGlu
IHRoZSBkZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyB7
CisgIFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyhSVENWaWRlb0RlY29kZXJDYWxsYmFjayBjYiwg
aW50NjRfdCB0cykKKyAgICAgIDogY2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJU
Q1ZpZGVvRGVjb2RlckNhbGxiYWNrIGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307
CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNh
bGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgaDI2NURlY29tcHJlc3Npb25P
dXRwdXRDYWxsYmFjayh2b2lkKiBkZWNvZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZvaWQqIHBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBPU1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBDTVRpbWUgZHVyYXRpb24pIHsKKyAgc3RkOjp1bmlxdWVf
cHRyPFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcz4gZGVjb2RlUGFyYW1zKAorICAgICAgcmVpbnRl
cnByZXRfY2FzdDxSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMqPihwYXJhbXMpKTsKKyAgaWYgKHN0
YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZGVj
b2RlIGZyYW1lLiBTdGF0dXM6ICIgPDwgc3RhdHVzOworICAgIHJldHVybjsKKyAgfQorICAvLyBU
T0RPKHRrY2hpbik6IEhhbmRsZSBDVk8gcHJvcGVybHkuCisgIFJUQ0NWUGl4ZWxCdWZmZXIqIGZy
YW1lQnVmZmVyID0KKyAgICAgIFtbUlRDQ1ZQaXhlbEJ1ZmZlciBhbGxvY10gaW5pdFdpdGhQaXhl
bEJ1ZmZlcjppbWFnZUJ1ZmZlcl07CisgIFJUQ1ZpZGVvRnJhbWUqIGRlY29kZWRGcmFtZSA9IFtb
UlRDVmlkZW9GcmFtZSBhbGxvY10KKyAgICAgIGluaXRXaXRoQnVmZmVyOmZyYW1lQnVmZmVyCisg
ICAgICAgICAgICByb3RhdGlvbjpSVENWaWRlb1JvdGF0aW9uXzAKKyAgICAgICAgIHRpbWVTdGFt
cE5zOkNNVGltZUdldFNlY29uZHModGltZXN0YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2Vj
XTsKKyAgZGVjb2RlZEZyYW1lLnRpbWVTdGFtcCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOwor
ICBkZWNvZGVQYXJhbXMtPmNhbGxiYWNrKGRlY29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIu
CitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9EZWNvZGVySDI2NSB7CisgIENNVmlkZW9Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBfdmlkZW9Gb3JtYXQ7CisgIFZURGVjb21wcmVzc2lvblNlc3Npb25SZWYg
X2RlY29tcHJlc3Npb25TZXNzaW9uOworICBSVENWaWRlb0RlY29kZXJDYWxsYmFjayBfY2FsbGJh
Y2s7CisgIE9TU3RhdHVzIF9lcnJvcjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXQgeworICBp
ZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICB9CisKKyAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpZGVhbGxvYyB7CisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07Cisg
IFtzZWxmIHNldFZpZGVvRm9ybWF0Om51bGxwdHJdOworfQorCistIChOU0ludGVnZXIpc3RhcnRE
ZWNvZGVXaXRoTnVtYmVyT2ZDb3JlczooaW50KW51bWJlck9mQ29yZXMgeworICByZXR1cm4gV0VC
UlRDX1ZJREVPX0NPREVDX09LOworfQorCistIChOU0ludGVnZXIpZGVjb2RlOihSVENFbmNvZGVk
SW1hZ2UqKWlucHV0SW1hZ2UKKyAgICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3NpbmdG
cmFtZXMKKyAgICAgIGNvZGVjU3BlY2lmaWNJbmZvOihfX251bGxhYmxlIGlkPFJUQ0NvZGVjU3Bl
Y2lmaWNJbmZvPilpbmZvCisgICAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJU
aW1lTXMgeworICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKworICBpZiAoX2Vycm9y
ICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiTGFzdCBmcmFtZSBkZWNv
ZGUgZmFpbGVkLiI7CisgICAgX2Vycm9yID0gbm9FcnI7CisgICAgcmV0dXJuIFdFQlJUQ19WSURF
T19DT0RFQ19FUlJPUjsKKyAgfQorCisgIHJ0Yzo6U2NvcGVkQ0ZUeXBlUmVmPENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZj4gaW5wdXRGb3JtYXQgPQorICAgICAgcnRjOjpTY29wZWRDRih3ZWJy
dGM6OkNyZWF0ZUgyNjVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKAorICAgICAgICAgICh1aW50OF90
KilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcywgaW5wdXRJbWFnZS5idWZmZXIubGVuZ3RoKSk7Cisg
IGlmIChpbnB1dEZvcm1hdCkgeworICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPQor
ICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGlucHV0Rm9ybWF0
LmdldCgpKTsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJSZXNvbHV0aW9uOiAiIDw8IGRpbWVu
c2lvbnMud2lkdGggPDwgIiB4ICIKKyAgICAgICAgICAgICAgICAgICAgIDw8IGRpbWVuc2lvbnMu
aGVpZ2h0OworICAgIC8vIENoZWNrIGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGNoYW5nZWQsIGFu
ZCByZWluaXRpYWxpemUgZGVjb2RlciBpZgorICAgIC8vIG5lZWRlZC4KKyAgICBpZiAoIUNNRm9y
bWF0RGVzY3JpcHRpb25FcXVhbChpbnB1dEZvcm1hdC5nZXQoKSwgX3ZpZGVvRm9ybWF0KSkgewor
ICAgICAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRGb3JtYXQuZ2V0KCldOworICAgICAgaW50
IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciA9IFtzZWxmIHJlc2V0RGVjb21wcmVzc2lv
blNlc3Npb25dOworICAgICAgaWYgKHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciAhPSBX
RUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICAgICAgcmV0dXJuIHJlc2V0RGVjb21wcmVzc2lv
blNlc3Npb25FcnJvcjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKCFfdmlkZW9Gb3JtYXQp
IHsKKyAgICAvLyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1dCB3ZSBkb24ndCBoYXZlIGZvcm1hdCBp
bmZvcm1hdGlvbiBzbyB3ZSBjYW4ndAorICAgIC8vIGRlY29kZSBpdC4KKyAgICAvLyBUaGlzIGNh
biBoYXBwZW4gYWZ0ZXIgYmFja2dyb3VuZGluZy4gV2UgbmVlZCB0byB3YWl0IGZvciB0aGUgbmV4
dAorICAgIC8vIHNwcy9wcHMgYmVmb3JlIHdlIGNhbiByZXN1bWUgc28gd2UgcmVxdWVzdCBhIGtl
eWZyYW1lIGJ5IHJldHVybmluZyBhbgorICAgIC8vIGVycm9yLgorICAgIFJUQ19MT0coTFNfV0FS
TklORykgPDwgIk1pc3NpbmcgdmlkZW8gZm9ybWF0LiBGcmFtZSB3aXRoIHNwcy9wcHMgcmVxdWly
ZWQuIjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIENNU2Ft
cGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7CisgIGlmICghd2VicnRjOjpIMjY1
QW5uZXhCQnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcigKKyAgICAgICAgICAodWludDhfdCopaW5wdXRJ
bWFnZS5idWZmZXIuYnl0ZXMsIGlucHV0SW1hZ2UuYnVmZmVyLmxlbmd0aCwKKyAgICAgICAgICBf
dmlkZW9Gb3JtYXQsICZzYW1wbGVCdWZmZXIpKSB7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19D
T0RFQ19FUlJPUjsKKyAgfQorICBSVENfRENIRUNLKHNhbXBsZUJ1ZmZlcik7CisgIFZURGVjb2Rl
RnJhbWVGbGFncyBkZWNvZGVGbGFncyA9CisgICAgICBrVlREZWNvZGVGcmFtZV9FbmFibGVBc3lu
Y2hyb25vdXNEZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDSDI2NUZyYW1lRGVj
b2RlUGFyYW1zPiBmcmFtZURlY29kZVBhcmFtczsKKyAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQo
CisgICAgICBuZXcgUlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgaW5wdXRJbWFn
ZS50aW1lU3RhbXApKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lv
bkRlY29kZUZyYW1lKAorICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIs
IGRlY29kZUZsYWdzLAorICAgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRy
KTsKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgIC8vIFJlLWluaXRpYWxpemUgdGhlIGRlY29k
ZXIgaWYgd2UgaGF2ZSBhbiBpbnZhbGlkIHNlc3Npb24gd2hpbGUgdGhlIGFwcCBpcworICAvLyBh
Y3RpdmUgYW5kIHJldHJ5IHRoZSBkZWNvZGUgcmVxdWVzdC4KKyAgaWYgKHN0YXR1cyA9PSBrVlRJ
bnZhbGlkU2Vzc2lvbkVyciAmJgorICAgICAgW3NlbGYgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lv
bl0gPT0gV0VCUlRDX1ZJREVPX0NPREVDX09LKSB7CisgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVz
ZXQoCisgICAgICAgIG5ldyBSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCBpbnB1
dEltYWdlLnRpbWVTdGFtcCkpOworICAgIHN0YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25E
ZWNvZGVGcmFtZSgKKyAgICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIs
IGRlY29kZUZsYWdzLAorICAgICAgICBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxw
dHIpOworICB9CisjZW5kaWYKKyAgQ0ZSZWxlYXNlKHNhbXBsZUJ1ZmZlcik7CisgIGlmIChzdGF0
dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGRlY29k
ZSBmcmFtZSB3aXRoIGNvZGU6ICIgPDwgc3RhdHVzOworICAgIHJldHVybiBXRUJSVENfVklERU9f
Q09ERUNfRVJST1I7CisgIH0KKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKwor
LSAodm9pZClzZXRDYWxsYmFjazooUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2spY2FsbGJhY2sgewor
ICBfY2FsbGJhY2sgPSBjYWxsYmFjazsKK30KKworLSAoTlNJbnRlZ2VyKXJlbGVhc2VEZWNvZGVy
IHsKKyAgLy8gTmVlZCB0byBpbnZhbGlkYXRlIHRoZSBzZXNzaW9uIHNvIHRoYXQgY2FsbGJhY2tz
IG5vIGxvbmdlciBvY2N1ciBhbmQgaXQKKyAgLy8gaXMgc2FmZSB0byBudWxsIG91dCB0aGUgY2Fs
bGJhY2suCisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgIFtzZWxmIHNl
dFZpZGVvRm9ybWF0Om51bGxwdHJdOworICBfY2FsbGJhY2sgPSBudWxscHRyOworICByZXR1cm4g
V0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCisjcHJhZ21hIG1hcmsgLSBQcml2YXRlCisKKy0g
KGludClyZXNldERlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAgW3NlbGYgZGVzdHJveURlY29tcHJl
c3Npb25TZXNzaW9uXTsKKworICAvLyBOZWVkIHRvIHdhaXQgZm9yIHRoZSBmaXJzdCBTUFMgdG8g
aW5pdGlhbGl6ZSBkZWNvZGVyLgorICBpZiAoIV92aWRlb0Zvcm1hdCkgeworICAgIHJldHVybiBX
RUJSVENfVklERU9fQ09ERUNfT0s7CisgIH0KKworICAvLyBTZXQga2V5cyBmb3IgT3BlbkdMIGFu
ZCBJT1N1cmZhY2UgY29tcGF0aWJpbHR5LCB3aGljaCBtYWtlcyB0aGUgZW5jb2RlcgorICAvLyBj
cmVhdGUgcGl4ZWwgYnVmZmVycyB3aXRoIEdQVSBiYWNrZWQgbWVtb3J5LiBUaGUgaW50ZW50IGhl
cmUgaXMgdG8gcGFzcworICAvLyB0aGUgcGl4ZWwgYnVmZmVycyBkaXJlY3RseSBzbyB3ZSBhdm9p
ZCBhIHRleHR1cmUgdXBsb2FkIGxhdGVyIGR1cmluZworICAvLyByZW5kZXJpbmcuIFRoaXMgY3Vy
cmVudGx5IGlzIG1vb3QgYmVjYXVzZSB3ZSBhcmUgY29udmVydGluZyBiYWNrIHRvIGFuCisgIC8v
IEk0MjAgZnJhbWUgYWZ0ZXIgZGVjb2RlLCBidXQgZXZlbnR1YWxseSB3ZSB3aWxsIGJlIGFibGUg
dG8gcGx1bWIKKyAgLy8gQ1ZQaXhlbEJ1ZmZlcnMgZGlyZWN0bHkgdG8gdGhlIHJlbmRlcmVyLgor
ICAvLyBUT0RPKHRrY2hpbik6IE1heWJlIG9ubHkgc2V0IE9wZW5HTC9JT1N1cmZhY2Uga2V5cyBp
ZiB3ZSBrbm93IHRoYXQgdGhhdAorICAvLyB3ZSBjYW4gcGFzcyBDVlBpeGVsQnVmZmVycyBhcyBu
YXRpdmUgaGFuZGxlcyBpbiBkZWNvZGVyIG91dHB1dC4KKyAgc3RhdGljIHNpemVfdCBjb25zdCBh
dHRyaWJ1dGVzU2l6ZSA9IDM7CisgIENGVHlwZVJlZiBrZXlzW2F0dHJpYnV0ZXNTaXplXSA9IHsK
KyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgICAga0NWUGl4ZWxCdWZmZXJPcGVuR0xFU0NvbXBh
dGliaWxpdHlLZXksCisjZWxpZiBkZWZpbmVkKFdFQlJUQ19NQUMpCisgICAga0NWUGl4ZWxCdWZm
ZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5LAorI2VuZGlmCisgICAga0NWUGl4ZWxCdWZmZXJJT1N1
cmZhY2VQcm9wZXJ0aWVzS2V5LAorICAgIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5
CisgIH07CisgIENGRGljdGlvbmFyeVJlZiBpb1N1cmZhY2VWYWx1ZSA9IENyZWF0ZUNGVHlwZURp
Y3Rpb25hcnkobnVsbHB0ciwgbnVsbHB0ciwgMCk7CisgIGludDY0X3QgbnYxMnR5cGUgPSBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlOworICBDRk51bWJlclJl
ZiBwaXhlbEZvcm1hdCA9CisgICAgICBDRk51bWJlckNyZWF0ZShudWxscHRyLCBrQ0ZOdW1iZXJM
b25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZhbHVlc1thdHRyaWJ1dGVzU2l6ZV0g
PSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwaXhlbEZvcm1hdH07CisgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1
dGVzID0KKyAgICAgIENyZWF0ZUNGVHlwZURpY3Rpb25hcnkoa2V5cywgdmFsdWVzLCBhdHRyaWJ1
dGVzU2l6ZSk7CisgIGlmIChpb1N1cmZhY2VWYWx1ZSkgeworICAgIENGUmVsZWFzZShpb1N1cmZh
Y2VWYWx1ZSk7CisgICAgaW9TdXJmYWNlVmFsdWUgPSBudWxscHRyOworICB9CisgIGlmIChwaXhl
bEZvcm1hdCkgeworICAgIENGUmVsZWFzZShwaXhlbEZvcm1hdCk7CisgICAgcGl4ZWxGb3JtYXQg
PSBudWxscHRyOworICB9CisgIFZURGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrUmVjb3JkIHJl
Y29yZCA9IHsKKyAgICAgIGgyNjVEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2ssCisgICAgICBu
dWxscHRyLAorICB9OworICBPU1N0YXR1cyBzdGF0dXMgPQorICAgICAgVlREZWNvbXByZXNzaW9u
U2Vzc2lvbkNyZWF0ZShudWxscHRyLCBfdmlkZW9Gb3JtYXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZWNvcmQsICZfZGVjb21wcmVz
c2lvblNlc3Npb24pOworICBDRlJlbGVhc2UoYXR0cmlidXRlcyk7CisgIGlmIChzdGF0dXMgIT0g
bm9FcnIpIHsKKyAgICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICAgIHJl
dHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyAgW3NlbGYgY29uZmlndXJlRGVj
b21wcmVzc2lvblNlc3Npb25dOworCisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9
CisKKy0gKHZvaWQpY29uZmlndXJlRGVjb21wcmVzc2lvblNlc3Npb24geworICBSVENfRENIRUNL
KF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICBWVFNl
c3Npb25TZXRQcm9wZXJ0eShfZGVjb21wcmVzc2lvblNlc3Npb24sIGtWVERlY29tcHJlc3Npb25Q
cm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworI2VuZGlmCit9CisKKy0gKHZv
aWQpZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAgaWYgKF9kZWNvbXByZXNzaW9uU2Vz
c2lvbikgeworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBWVERlY29tcHJlc3Npb25TZXNz
aW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcyhfZGVjb21wcmVzc2lvblNlc3Npb24pOworI2Vu
ZGlmCisgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUoX2RlY29tcHJlc3Npb25T
ZXNzaW9uKTsKKyAgICBDRlJlbGVhc2UoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBfZGVj
b21wcmVzc2lvblNlc3Npb24gPSBudWxscHRyOworICB9Cit9CisKKy0gKHZvaWQpc2V0VmlkZW9G
b3JtYXQ6KENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZil2aWRlb0Zvcm1hdCB7CisgIGlmIChf
dmlkZW9Gb3JtYXQgPT0gdmlkZW9Gb3JtYXQpIHsKKyAgICByZXR1cm47CisgIH0KKyAgaWYgKF92
aWRlb0Zvcm1hdCkgeworICAgIENGUmVsZWFzZShfdmlkZW9Gb3JtYXQpOworICB9CisgIF92aWRl
b0Zvcm1hdCA9IHZpZGVvRm9ybWF0OworICBpZiAoX3ZpZGVvRm9ybWF0KSB7CisgICAgQ0ZSZXRh
aW4oX3ZpZGVvRm9ybWF0KTsKKyAgfQorfQorCistIChOU1N0cmluZyopaW1wbGVtZW50YXRpb25O
YW1lIHsKKyAgcmV0dXJuIEAiVmlkZW9Ub29sYm94IjsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1LmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ1ZpZGVvRW5jb2RlckgyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTZhNzRhZmQ4MjlkODczYTkxODE3
ZGJhOTZlYjVjYjczMDQ2OWM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENWaWRlb0VuY29kZXJIMjY1LmgKQEAgLTAsMCArMSwyMyBAQAorLyoKKyAqICBDb3B5cmlnaHQg
MjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
bGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFs
IHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRF
TlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQg
aW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8K
KworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jv
cy5oIgorI2ltcG9ydCAiUlRDVmlkZW9Db2RlY0luZm8uaCIKKyNpbXBvcnQgIlJUQ1ZpZGVvRW5j
b2Rlci5oIgorCitSVENfT0JKQ19FWFBPUlQKK19fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9u
YW1lKCJXS19SVENWaWRlb0VuY29kZXJIMjY1IikpKQorQGludGVyZmFjZSBSVENWaWRlb0VuY29k
ZXJIMjY1IDogTlNPYmplY3QgPFJUQ1ZpZGVvRW5jb2Rlcj4KKworLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoQ29kZWNJbmZvOihSVENWaWRlb0NvZGVjSW5mbyAqKWNvZGVjSW5mbzsKKworQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkODliNjNl
YTkwNzhmNmJhNTVjYTQ0MDU5Y2E5NzAwNzQwNGVhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUubW0KQEAgLTAsMCArMSw1OTkgQEAKKy8q
CisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl
cm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhl
IExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRk
aXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAor
ICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9y
cyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRo
ZSBzb3VyY2UgdHJlZS4KKyAqCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9FbmNvZGVySDI2NS5o
IgorCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisjaW5jbHVkZSA8dmVj
dG9yPgorCisjaW1wb3J0ICJSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCIKKyNpbXBvcnQgImFw
aS9wZWVyY29ubmVjdGlvbi9SVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyK1ByaXZhdGUuaCIKKyNp
bXBvcnQgImFwaS9wZWVyY29ubmVjdGlvbi9SVENWaWRlb0NvZGVjSW5mbytQcml2YXRlLmgiCisj
aW1wb3J0ICJiYXNlL1JUQ0k0MjBCdWZmZXIuaCIKKyNpbXBvcnQgImJhc2UvUlRDVmlkZW9GcmFt
ZS5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0ICJjb21w
b25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1wb3J0ICJo
ZWxwZXJzLmgiCisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorI2ltcG9ydCAiaGVscGVycy9VSURl
dmljZStSVENEZXZpY2UuaCIKKyNlbmRpZgorCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2luY2x1
ZGUvYml0cmF0ZV9hZGp1c3Rlci5oIgorI2luY2x1ZGUgImxpYnl1di9jb252ZXJ0X2Zyb20uaCIK
KyNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgorI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNp
bmNsdWRlICJydGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgi
CisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorI2luY2x1ZGUgInNkay9vYmpjL0Zy
YW1ld29yay9DbGFzc2VzL1ZpZGVvVG9vbGJveC9uYWx1X3Jld3JpdGVyLmgiCisjaW5jbHVkZSAi
c3lzdGVtX3dyYXBwZXJzL2luY2x1ZGUvY2xvY2suaCIKKworQGludGVyZmFjZSBSVENWaWRlb0Vu
Y29kZXJIMjY1ICgpCisKKy0gKHZvaWQpZnJhbWVXYXNFbmNvZGVkOihPU1N0YXR1cylzdGF0dXMK
KyAgICAgICAgICAgICAgICAgIGZsYWdzOihWVEVuY29kZUluZm9GbGFncylpbmZvRmxhZ3MKKyAg
ICAgICAgICAgc2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKKyAg
ICAgICAgICAgICAgICAgIHdpZHRoOihpbnQzMl90KXdpZHRoCisgICAgICAgICAgICAgICAgIGhl
aWdodDooaW50MzJfdCloZWlnaHQKKyAgICAgICAgICAgcmVuZGVyVGltZU1zOihpbnQ2NF90KXJl
bmRlclRpbWVNcworICAgICAgICAgICAgICB0aW1lc3RhbXA6KHVpbnQzMl90KXRpbWVzdGFtcAor
ICAgICAgICAgICAgICAgcm90YXRpb246KFJUQ1ZpZGVvUm90YXRpb24pcm90YXRpb247CisKK0Bl
bmQKKworbmFtZXNwYWNlIHsgIC8vIGFub255bW91cyBuYW1lc3BhY2UKKworLy8gVGhlIHJhdGlv
IGJldHdlZW4ga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9EYXRhUmF0ZUxpbWl0cyBhbmQKKy8v
IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUuIFRoZSBkYXRhIHJhdGUg
bGltaXQgaXMgc2V0IGhpZ2hlcgorLy8gdGhhbiB0aGUgYXZlcmFnZSBiaXQgcmF0ZSB0byBhdm9p
ZCB1bmRlcnNob290aW5nIHRoZSB0YXJnZXQuCitjb25zdCBmbG9hdCBrTGltaXRUb0F2ZXJhZ2VC
aXRSYXRlRmFjdG9yID0gMS41ZjsKKy8vIFRoZXNlIHRocmVzaG9sZHMgZGV2aWF0ZSBmcm9tIHRo
ZSBkZWZhdWx0IGgyNjUgUVAgdGhyZXNob2xkcywgYXMgdGhleQorLy8gaGF2ZSBiZWVuIGZvdW5k
IHRvIHdvcmsgYmV0dGVyIG9uIGRldmljZXMgdGhhdCBzdXBwb3J0IFZpZGVvVG9vbGJveAorY29u
c3QgaW50IGtMb3doMjY1UXBUaHJlc2hvbGQgPSAyODsKK2NvbnN0IGludCBrSGlnaGgyNjVRcFRo
cmVzaG9sZCA9IDM5OworCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRoZSBlbmNvZGVyIHBl
ciBmcmFtZSB0byBlbmNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGluIHRoZSBlbmNvZGVy
IGNhbGxiYWNrLgorc3RydWN0IEFQSV9BVkFJTEFCTEUoaW9zKDExLjApKSBSVENGcmFtZUVuY29k
ZVBhcmFtcyB7CisgIFJUQ0ZyYW1lRW5jb2RlUGFyYW1zKFJUQ1ZpZGVvRW5jb2RlckgyNjUqIGUs
CisgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdywKKyAgICAgICAgICAgICAgICAgICAg
ICAgaW50MzJfdCBoLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHJ0bXMsCisgICAg
ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRzLAorICAgICAgICAgICAgICAgICAgICAgICBS
VENWaWRlb1JvdGF0aW9uIHIpCisgICAgICA6IGVuY29kZXIoZSksCisgICAgICAgIHdpZHRoKHcp
LAorICAgICAgICBoZWlnaHQoaCksCisgICAgICAgIHJlbmRlcl90aW1lX21zKHJ0bXMpLAorICAg
ICAgICB0aW1lc3RhbXAodHMpLAorICAgICAgICByb3RhdGlvbihyKSB7fQorCisgIFJUQ1ZpZGVv
RW5jb2RlckgyNjUqIGVuY29kZXI7CisgIGludDMyX3Qgd2lkdGg7CisgIGludDMyX3QgaGVpZ2h0
OworICBpbnQ2NF90IHJlbmRlcl90aW1lX21zOworICB1aW50MzJfdCB0aW1lc3RhbXA7CisgIFJU
Q1ZpZGVvUm90YXRpb24gcm90YXRpb247Cit9OworCisvLyBXZSByZWNlaXZlIEk0MjBGcmFtZXMg
YXMgaW5wdXQsIGJ1dCB3ZSBuZWVkIHRvIGZlZWQgQ1ZQaXhlbEJ1ZmZlcnMgaW50byB0aGUKKy8v
IGVuY29kZXIuIFRoaXMgcGVyZm9ybXMgdGhlIGNvcHkgYW5kIGZvcm1hdCBjb252ZXJzaW9uLgor
Ly8gVE9ETyh0a2NoaW4pOiBTZWUgaWYgZW5jb2RlciB3aWxsIGFjY2VwdCBpNDIwIGZyYW1lcyBh
bmQgY29tcGFyZSBwZXJmb3JtYW5jZS4KK2Jvb2wgQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVy
KGlkPFJUQ0k0MjBCdWZmZXI+IGZyYW1lQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcikgeworICBSVENfRENIRUNLKHBp
eGVsQnVmZmVyKTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRU
eXBlKHBpeGVsQnVmZmVyKSwKKyAgICAgICAgICAgICAgICBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIw
WXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVsQnVmZmVy
R2V0SGVpZ2h0T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCksCisgICAgICAgICAgICAgICAgZnJhbWVC
dWZmZXIuaGVpZ2h0KTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVsQnVmZmVyR2V0V2lkdGhPZlBs
YW5lKHBpeGVsQnVmZmVyLCAwKSwKKyAgICAgICAgICAgICAgICBmcmFtZUJ1ZmZlci53aWR0aCk7
CisKKyAgQ1ZSZXR1cm4gY3ZSZXQgPSBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHBpeGVs
QnVmZmVyLCAwKTsKKyAgaWYgKGN2UmV0ICE9IGtDVlJldHVyblN1Y2Nlc3MpIHsKKyAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGxvY2sgYmFzZSBhZGRyZXNzOiAiIDw8IGN2UmV0
OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHVpbnQ4X3QqIGRzdFkgPSByZWludGVycHJl
dF9jYXN0PHVpbnQ4X3QqPigKKyAgICAgIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzc09mUGxh
bmUocGl4ZWxCdWZmZXIsIDApKTsKKyAgaW50IGRzdFN0cmlkZVkgPSBDVlBpeGVsQnVmZmVyR2V0
Qnl0ZXNQZXJSb3dPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKTsKKyAgdWludDhfdCogZHN0VVYgPSBy
ZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigKKyAgICAgIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRk
cmVzc09mUGxhbmUocGl4ZWxCdWZmZXIsIDEpKTsKKyAgaW50IGRzdFN0cmlkZVVWID0gQ1ZQaXhl
bEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSk7CisgIC8vIENvbnZl
cnQgSTQyMCB0byBOVjEyLgorICBpbnQgcmV0ID0gbGlieXV2OjpJNDIwVG9OVjEyKAorICAgICAg
ZnJhbWVCdWZmZXIuZGF0YVksIGZyYW1lQnVmZmVyLnN0cmlkZVksIGZyYW1lQnVmZmVyLmRhdGFV
LAorICAgICAgZnJhbWVCdWZmZXIuc3RyaWRlVSwgZnJhbWVCdWZmZXIuZGF0YVYsIGZyYW1lQnVm
ZmVyLnN0cmlkZVYsIGRzdFksCisgICAgICBkc3RTdHJpZGVZLCBkc3RVViwgZHN0U3RyaWRlVVYs
IGZyYW1lQnVmZmVyLndpZHRoLCBmcmFtZUJ1ZmZlci5oZWlnaHQpOworICBDVlBpeGVsQnVmZmVy
VW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOworICBpZiAocmV0KSB7CisgICAgUlRD
X0xPRyhMU19FUlJPUikgPDwgIkVycm9yIGNvbnZlcnRpbmcgSTQyMCBWaWRlb0ZyYW1lIHRvIE5W
MTIgOiIgPDwgcmV0OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30K
KworQ1ZQaXhlbEJ1ZmZlclJlZiBDcmVhdGVQaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUG9vbFJl
ZiBwaXhlbF9idWZmZXJfcG9vbCkgeworICBpZiAoIXBpeGVsX2J1ZmZlcl9wb29sKSB7CisgICAg
UlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgcGl4ZWwgYnVmZmVyIHBvb2wuIjsK
KyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsX2J1ZmZl
cjsKKyAgQ1ZSZXR1cm4gcmV0ID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZlcihu
dWxscHRyLCBwaXhlbF9idWZmZXJfcG9vbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmcGl4ZWxfYnVmZmVyKTsKKyAgaWYgKHJldCAhPSBrQ1ZS
ZXR1cm5TdWNjZXNzKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBjcmVh
dGUgcGl4ZWwgYnVmZmVyOiAiIDw8IHJldDsKKyAgICAvLyBXZSBwcm9iYWJseSB3YW50IHRvIGRy
b3AgZnJhbWVzIGhlcmUsIHNpbmNlIGZhaWx1cmUgcHJvYmFibHkgbWVhbnMKKyAgICAvLyB0aGF0
IHRoZSBwb29sIGlzIGVtcHR5LgorICAgIHJldHVybiBudWxscHRyOworICB9CisgIHJldHVybiBw
aXhlbF9idWZmZXI7Cit9CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQg
VmlkZW9Ub29sYm94IGNhbGxzIHdoZW4gZW5jb2RlIGlzCisvLyBjb21wbGV0ZS4gRnJvbSBpbnNw
ZWN0aW9uIHRoaXMgaGFwcGVucyBvbiBpdHMgb3duIHF1ZXVlLgordm9pZCBjb21wcmVzc2lvbk91
dHB1dENhbGxiYWNrKHZvaWQqIGVuY29kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdm9pZCogcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TU3RhdHVz
IHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVEVuY29kZUluZm9GbGFn
cyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlQnVmZmVyKQorICAgIEFQSV9BVkFJTEFCTEUoaW9zKDExLjApKSB7CisgIFJU
Q19DSEVDSyhwYXJhbXMpOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVFbmNvZGVQYXJhbXM+
IGVuY29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UlRDRnJhbWVFbmNvZGVQYXJh
bXMqPihwYXJhbXMpKTsKKyAgUlRDX0NIRUNLKGVuY29kZVBhcmFtcy0+ZW5jb2Rlcik7CisgIFtl
bmNvZGVQYXJhbXMtPmVuY29kZXIgZnJhbWVXYXNFbmNvZGVkOnN0YXR1cworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbGFnczppbmZvRmxhZ3MKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzYW1wbGVCdWZmZXI6c2FtcGxlQnVmZmVyCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpZHRoOmVuY29kZVBhcmFtcy0+d2lkdGgKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ZW5jb2RlUGFyYW1zLT5oZWlnaHQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZW5kZXJUaW1lTXM6ZW5jb2RlUGFyYW1zLT5yZW5kZXJfdGlt
ZV9tcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDplbmNvZGVQYXJh
bXMtPnRpbWVzdGFtcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjpl
bmNvZGVQYXJhbXMtPnJvdGF0aW9uXTsKK30KK30gIC8vIG5hbWVzcGFjZQorCitAaW1wbGVtZW50
YXRpb24gUlRDVmlkZW9FbmNvZGVySDI2NSB7CisgIFJUQ1ZpZGVvQ29kZWNJbmZvKiBfY29kZWNJ
bmZvOworICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpCaXRyYXRlQWRqdXN0ZXI+IF9iaXRyYXRl
QWRqdXN0ZXI7CisgIHVpbnQzMl90IF90YXJnZXRCaXRyYXRlQnBzOworICB1aW50MzJfdCBfZW5j
b2RlckJpdHJhdGVCcHM7CisgIENGU3RyaW5nUmVmIF9wcm9maWxlOworICBSVENWaWRlb0VuY29k
ZXJDYWxsYmFjayBfY2FsbGJhY2s7CisgIGludDMyX3QgX3dpZHRoOworICBpbnQzMl90IF9oZWln
aHQ7CisgIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIF9jb21wcmVzc2lvblNlc3Npb247CisgIFJU
Q1ZpZGVvQ29kZWNNb2RlIF9tb2RlOworICBpbnQgZnJhbWVzTGVmdDsKKworICBzdGQ6OnZlY3Rv
cjx1aW50OF90PiBfbnYxMlNjYWxlQnVmZmVyOworfQorCisvLyAuNSBpcyBzZXQgYXMgYSBtaW5p
bnVtIHRvIHByZXZlbnQgb3ZlcmNvbXBlbnNhdGluZyBmb3IgbGFyZ2UgdGVtcG9yYXJ5CisvLyBv
dmVyc2hvb3RzLiBXZSBkb24ndCB3YW50IHRvIGRlZ3JhZGUgdmlkZW8gcXVhbGl0eSB0b28gYmFk
bHkuCisvLyAuOTUgaXMgc2V0IHRvIHByZXZlbnQgb3NjaWxsYXRpb25zLiBXaGVuIGEgbG93ZXIg
Yml0cmF0ZSBpcyBzZXQgb24gdGhlCisvLyBlbmNvZGVyIHRoYW4gcHJldmlvdXNseSBzZXQsIGl0
cyBvdXRwdXQgc2VlbXMgdG8gaGF2ZSBhIGJyaWVmIHBlcmlvZCBvZgorLy8gZHJhc3RpY2FsbHkg
cmVkdWNlZCBiaXRyYXRlLCBzbyB3ZSB3YW50IHRvIGF2b2lkIHRoYXQuIEluIHN0ZWFkeSBzdGF0
ZQorLy8gY29uZGl0aW9ucywgMC45NSBzZWVtcyB0byBnaXZlIHVzIGJldHRlciBvdmVyYWxsIGJp
dHJhdGUgb3ZlciBsb25nIHBlcmlvZHMKKy8vIG9mIHRpbWUuCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhDb2RlY0luZm86KFJUQ1ZpZGVvQ29kZWNJbmZvKiljb2RlY0luZm8geworICBpZiAoc2Vs
ZiA9IFtzdXBlciBpbml0XSkgeworICAgIF9jb2RlY0luZm8gPSBjb2RlY0luZm87CisgICAgX2Jp
dHJhdGVBZGp1c3Rlci5yZXNldChuZXcgd2VicnRjOjpCaXRyYXRlQWRqdXN0ZXIoLjUsIC45NSkp
OworICAgIFJUQ19DSEVDSyhbY29kZWNJbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOkAiSDI2NSJd
KTsKKyAgfQorICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jIHsKKyAgW3NlbGYg
ZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl07Cit9CisKKy0gKE5TSW50ZWdlcilzdGFydEVuY29k
ZVdpdGhTZXR0aW5nczooUlRDVmlkZW9FbmNvZGVyU2V0dGluZ3MqKXNldHRpbmdzCisgICAgICAg
ICAgICAgICAgICAgICAgIG51bWJlck9mQ29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgUlRD
X0RDSEVDSyhzZXR0aW5ncyk7CisgIFJUQ19EQ0hFQ0soW3NldHRpbmdzLm5hbWUgaXNFcXVhbFRv
U3RyaW5nOkAiSDI2NSJdKTsKKworICBfd2lkdGggPSBzZXR0aW5ncy53aWR0aDsKKyAgX2hlaWdo
dCA9IHNldHRpbmdzLmhlaWdodDsKKyAgX21vZGUgPSBzZXR0aW5ncy5tb2RlOworCisgIC8vIFdl
IGNhbiBvbmx5IHNldCBhdmVyYWdlIGJpdHJhdGUgb24gdGhlIEhXIGVuY29kZXIuCisgIF90YXJn
ZXRCaXRyYXRlQnBzID0gc2V0dGluZ3Muc3RhcnRCaXRyYXRlOworICBfYml0cmF0ZUFkanVzdGVy
LT5TZXRUYXJnZXRCaXRyYXRlQnBzKF90YXJnZXRCaXRyYXRlQnBzKTsKKworICByZXR1cm4gW3Nl
bGYgcmVzZXRDb21wcmVzc2lvblNlc3Npb25dOworfQorCistIChOU0ludGVnZXIpZW5jb2RlOihS
VENWaWRlb0ZyYW1lKilmcmFtZQorICAgIGNvZGVjU3BlY2lmaWNJbmZvOihpZDxSVENDb2RlY1Nw
ZWNpZmljSW5mbz4pY29kZWNTcGVjaWZpY0luZm8KKyAgICAgICAgICAgZnJhbWVUeXBlczooTlNB
cnJheTxOU051bWJlcio+KilmcmFtZVR5cGVzIHsKKyAgUlRDX0RDSEVDS19FUShmcmFtZS53aWR0
aCwgX3dpZHRoKTsKKyAgUlRDX0RDSEVDS19FUShmcmFtZS5oZWlnaHQsIF9oZWlnaHQpOworICBp
ZiAoIV9jYWxsYmFjayB8fCAhX2NvbXByZXNzaW9uU2Vzc2lvbikgeworICAgIHJldHVybiBXRUJS
VENfVklERU9fQ09ERUNfVU5JTklUSUFMSVpFRDsKKyAgfQorICBCT09MIGlzS2V5ZnJhbWVSZXF1
aXJlZCA9IE5POworCisgIC8vIEdldCBhIHBpeGVsIGJ1ZmZlciBmcm9tIHRoZSBwb29sIGFuZCBj
b3B5IGZyYW1lIGRhdGEgb3Zlci4KKyAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQ
b29sID0KKyAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQb29sKF9jb21w
cmVzc2lvblNlc3Npb24pOworCisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICBpZiAoIXBpeGVs
QnVmZmVyUG9vbCkgeworICAgIC8vIEtpbmQgb2YgYSBoYWNrLiBPbiBiYWNrZ3JvdW5kaW5nLCB0
aGUgY29tcHJlc3Npb24gc2Vzc2lvbiBzZWVtcyB0byBnZXQKKyAgICAvLyBpbnZhbGlkYXRlZCwg
d2hpY2ggY2F1c2VzIHRoaXMgcG9vbCBjYWxsIHRvIGZhaWwgd2hlbiB0aGUgYXBwbGljYXRpb24K
KyAgICAvLyBpcyBmb3JlZ3JvdW5kZWQgYW5kIGZyYW1lcyBhcmUgYmVpbmcgc2VudCBmb3IgZW5j
b2RpbmcgYWdhaW4uCisgICAgLy8gUmVzZXR0aW5nIHRoZSBzZXNzaW9uIHdoZW4gdGhpcyBoYXBw
ZW5zIGZpeGVzIHRoZSBpc3N1ZS4KKyAgICAvLyBJbiBhZGRpdGlvbiB3ZSByZXF1ZXN0IGEga2V5
ZnJhbWUgc28gdmlkZW8gY2FuIHJlY292ZXIgcXVpY2tseS4KKyAgICBbc2VsZiByZXNldENvbXBy
ZXNzaW9uU2Vzc2lvbl07CisgICAgcGl4ZWxCdWZmZXJQb29sID0KKyAgICAgICAgVlRDb21wcmVz
c2lvblNlc3Npb25HZXRQaXhlbEJ1ZmZlclBvb2woX2NvbXByZXNzaW9uU2Vzc2lvbik7CisgICAg
aXNLZXlmcmFtZVJlcXVpcmVkID0gWUVTOworICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIlJlc2V0
dGluZyBjb21wcmVzc2lvbiBzZXNzaW9uIGR1ZSB0byBpbnZhbGlkIHBvb2wuIjsKKyAgfQorI2Vu
ZGlmCisKKyAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7CisgIGlmIChb
ZnJhbWUuYnVmZmVyIGlzS2luZE9mQ2xhc3M6W1JUQ0NWUGl4ZWxCdWZmZXIgY2xhc3NdXSkgewor
ICAgIC8vIE5hdGl2ZSBmcmFtZSBidWZmZXIKKyAgICBSVENDVlBpeGVsQnVmZmVyKiBydGNQaXhl
bEJ1ZmZlciA9IChSVENDVlBpeGVsQnVmZmVyKilmcmFtZS5idWZmZXI7CisgICAgaWYgKCFbcnRj
UGl4ZWxCdWZmZXIgcmVxdWlyZXNDcm9wcGluZ10pIHsKKyAgICAgIC8vIFRoaXMgcGl4ZWwgYnVm
ZmVyIG1pZ2h0IGhhdmUgYSBoaWdoZXIgcmVzb2x1dGlvbiB0aGFuIHdoYXQgdGhlCisgICAgICAv
LyBjb21wcmVzc2lvbiBzZXNzaW9uIGlzIGNvbmZpZ3VyZWQgdG8uIFRoZSBjb21wcmVzc2lvbiBz
ZXNzaW9uIGNhbgorICAgICAgLy8gaGFuZGxlIHRoYXQgYW5kIHdpbGwgb3V0cHV0IGVuY29kZWQg
ZnJhbWVzIGluIHRoZSBjb25maWd1cmVkCisgICAgICAvLyByZXNvbHV0aW9uIHJlZ2FyZGxlc3Mg
b2YgdGhlIGlucHV0IHBpeGVsIGJ1ZmZlciByZXNvbHV0aW9uLgorICAgICAgcGl4ZWxCdWZmZXIg
PSBydGNQaXhlbEJ1ZmZlci5waXhlbEJ1ZmZlcjsKKyAgICAgIENWQnVmZmVyUmV0YWluKHBpeGVs
QnVmZmVyKTsKKyAgICB9IGVsc2UgeworICAgICAgLy8gQ3JvcHBpbmcgcmVxdWlyZWQsIHdlIG5l
ZWQgdG8gY3JvcCBhbmQgc2NhbGUgdG8gYSBuZXcgcGl4ZWwgYnVmZmVyLgorICAgICAgcGl4ZWxC
dWZmZXIgPSBDcmVhdGVQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlclBvb2wpOworICAgICAgaWYgKCFw
aXhlbEJ1ZmZlcikgeworICAgICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOwor
ICAgICAgfQorICAgICAgaW50IGRzdFdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVs
QnVmZmVyKTsKKyAgICAgIGludCBkc3RIZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBp
eGVsQnVmZmVyKTsKKyAgICAgIGlmIChbcnRjUGl4ZWxCdWZmZXIgcmVxdWlyZXNTY2FsaW5nVG9X
aWR0aDpkc3RXaWR0aCBoZWlnaHQ6ZHN0SGVpZ2h0XSkgeworICAgICAgICBpbnQgc2l6ZSA9Cisg
ICAgICAgICAgICBbcnRjUGl4ZWxCdWZmZXIgYnVmZmVyU2l6ZUZvckNyb3BwaW5nQW5kU2NhbGlu
Z1RvV2lkdGg6ZHN0V2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDpkc3RIZWlnaHRdOworICAgICAgICBfbnYxMlNj
YWxlQnVmZmVyLnJlc2l6ZShzaXplKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIF9udjEyU2Nh
bGVCdWZmZXIuY2xlYXIoKTsKKyAgICAgIH0KKyAgICAgIF9udjEyU2NhbGVCdWZmZXIuc2hyaW5r
X3RvX2ZpdCgpOworICAgICAgaWYgKCFbcnRjUGl4ZWxCdWZmZXIgY3JvcEFuZFNjYWxlVG86cGl4
ZWxCdWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhUZW1wQnVmZmVyOl9udjEy
U2NhbGVCdWZmZXIuZGF0YSgpXSkgeworICAgICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVD
X0VSUk9SOworICAgICAgfQorICAgIH0KKyAgfQorCisgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAg
ICAvLyBXZSBkaWQgbm90IGhhdmUgYSBuYXRpdmUgZnJhbWUgYnVmZmVyCisgICAgcGl4ZWxCdWZm
ZXIgPSBDcmVhdGVQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlclBvb2wpOworICAgIGlmICghcGl4ZWxC
dWZmZXIpIHsKKyAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgICAgfQor
ICAgIFJUQ19EQ0hFQ0socGl4ZWxCdWZmZXIpOworICAgIGlmICghQ29weVZpZGVvRnJhbWVUb1Bp
eGVsQnVmZmVyKFtmcmFtZS5idWZmZXIgdG9JNDIwXSwgcGl4ZWxCdWZmZXIpKSB7CisgICAgICBS
VENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNvcHkgZnJhbWUgZGF0YS4iOworICAgICAg
Q1ZCdWZmZXJSZWxlYXNlKHBpeGVsQnVmZmVyKTsKKyAgICAgIHJldHVybiBXRUJSVENfVklERU9f
Q09ERUNfRVJST1I7CisgICAgfQorICB9CisKKyAgLy8gQ2hlY2sgaWYgd2UgbmVlZCBhIGtleWZy
YW1lLgorICBpZiAoIWlzS2V5ZnJhbWVSZXF1aXJlZCAmJiBmcmFtZVR5cGVzKSB7CisgICAgZm9y
IChOU051bWJlciogZnJhbWVUeXBlIGluIGZyYW1lVHlwZXMpIHsKKyAgICAgIGlmICgoUlRDRnJh
bWVUeXBlKWZyYW1lVHlwZS5pbnRWYWx1ZSA9PSBSVENGcmFtZVR5cGVWaWRlb0ZyYW1lS2V5KSB7
CisgICAgICAgIGlzS2V5ZnJhbWVSZXF1aXJlZCA9IFlFUzsKKyAgICAgICAgYnJlYWs7CisgICAg
ICB9CisgICAgfQorICB9CisKKyAgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCA9CisgICAg
ICBDTVRpbWVNYWtlKGZyYW1lLnRpbWVTdGFtcE5zIC8gcnRjOjprTnVtTmFub3NlY3NQZXJNaWxs
aXNlYywgMTAwMCk7CisgIENGRGljdGlvbmFyeVJlZiBmcmFtZVByb3BlcnRpZXMgPSBudWxscHRy
OworICBpZiAoaXNLZXlmcmFtZVJlcXVpcmVkKSB7CisgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHtr
VlRFbmNvZGVGcmFtZU9wdGlvbktleV9Gb3JjZUtleUZyYW1lfTsKKyAgICBDRlR5cGVSZWYgdmFs
dWVzW10gPSB7a0NGQm9vbGVhblRydWV9OworICAgIGZyYW1lUHJvcGVydGllcyA9IENyZWF0ZUNG
VHlwZURpY3Rpb25hcnkoa2V5cywgdmFsdWVzLCAxKTsKKyAgfQorCisgIHN0ZDo6dW5pcXVlX3B0
cjxSVENGcmFtZUVuY29kZVBhcmFtcz4gZW5jb2RlUGFyYW1zOworICBlbmNvZGVQYXJhbXMucmVz
ZXQobmV3IFJUQ0ZyYW1lRW5jb2RlUGFyYW1zKAorICAgICAgc2VsZiwgX3dpZHRoLCBfaGVpZ2h0
LCBmcmFtZS50aW1lU3RhbXBOcyAvIHJ0Yzo6a051bU5hbm9zZWNzUGVyTWlsbGlzZWMsCisgICAg
ICBmcmFtZS50aW1lU3RhbXAsIGZyYW1lLnJvdGF0aW9uKSk7CisKKyAgLy8gVXBkYXRlIHRoZSBi
aXRyYXRlIGlmIG5lZWRlZC4KKyAgW3NlbGYgc2V0Qml0cmF0ZUJwczpfYml0cmF0ZUFkanVzdGVy
LT5HZXRBZGp1c3RlZEJpdHJhdGVCcHMoKV07CisKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlRDb21w
cmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSgKKyAgICAgIF9jb21wcmVzc2lvblNlc3Npb24sIHBp
eGVsQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGtDTVRpbWVJbnZhbGlkLAorICAgICAg
ZnJhbWVQcm9wZXJ0aWVzLCBlbmNvZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRyKTsKKyAgaWYg
KGZyYW1lUHJvcGVydGllcykgeworICAgIENGUmVsZWFzZShmcmFtZVByb3BlcnRpZXMpOworICB9
CisgIGlmIChwaXhlbEJ1ZmZlcikgeworICAgIENWQnVmZmVyUmVsZWFzZShwaXhlbEJ1ZmZlcik7
CisgIH0KKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8
ICJGYWlsZWQgdG8gZW5jb2RlIGZyYW1lIHdpdGggY29kZTogIiA8PCBzdGF0dXM7CisgICAgcmV0
dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICByZXR1cm4gV0VCUlRDX1ZJREVP
X0NPREVDX09LOworfQorCistICh2b2lkKXNldENhbGxiYWNrOihSVENWaWRlb0VuY29kZXJDYWxs
YmFjayljYWxsYmFjayB7CisgIF9jYWxsYmFjayA9IGNhbGxiYWNrOworfQorCistIChpbnQpc2V0
Qml0cmF0ZToodWludDMyX3QpYml0cmF0ZUtiaXQgZnJhbWVyYXRlOih1aW50MzJfdClmcmFtZXJh
dGUgeworICBfdGFyZ2V0Qml0cmF0ZUJwcyA9IDEwMDAgKiBiaXRyYXRlS2JpdDsKKyAgX2JpdHJh
dGVBZGp1c3Rlci0+U2V0VGFyZ2V0Qml0cmF0ZUJwcyhfdGFyZ2V0Qml0cmF0ZUJwcyk7CisgIFtz
ZWxmIHNldEJpdHJhdGVCcHM6X2JpdHJhdGVBZGp1c3Rlci0+R2V0QWRqdXN0ZWRCaXRyYXRlQnBz
KCldOworICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCisjcHJhZ21hIG1hcmsg
LSBQcml2YXRlCisKKy0gKE5TSW50ZWdlcilyZWxlYXNlRW5jb2RlciB7CisgIC8vIE5lZWQgdG8g
ZGVzdHJveSBzbyB0aGF0IHRoZSBzZXNzaW9uIGlzIGludmFsaWRhdGVkIGFuZCB3b24ndCB1c2Ug
dGhlCisgIC8vIGNhbGxiYWNrIGFueW1vcmUuIERvIG5vdCByZW1vdmUgY2FsbGJhY2sgdW50aWwg
dGhlIHNlc3Npb24gaXMgaW52YWxpZGF0ZWQKKyAgLy8gc2luY2UgYXN5bmMgZW5jb2RlciBjYWxs
YmFja3MgY2FuIG9jY3VyIHVudGlsIGludmFsaWRhdGlvbi4KKyAgW3NlbGYgZGVzdHJveUNvbXBy
ZXNzaW9uU2Vzc2lvbl07CisgIF9jYWxsYmFjayA9IG51bGxwdHI7CisgIHJldHVybiBXRUJSVENf
VklERU9fQ09ERUNfT0s7Cit9CisKKy0gKGludClyZXNldENvbXByZXNzaW9uU2Vzc2lvbiB7Cisg
IFtzZWxmIGRlc3Ryb3lDb21wcmVzc2lvblNlc3Npb25dOworCisgIC8vIFNldCBzb3VyY2UgaW1h
Z2UgYnVmZmVyIGF0dHJpYnV0ZXMuIFRoZXNlIGF0dHJpYnV0ZXMgd2lsbCBiZSBwcmVzZW50IG9u
CisgIC8vIGJ1ZmZlcnMgcmV0cmlldmVkIGZyb20gdGhlIGVuY29kZXIncyBwaXhlbCBidWZmZXIg
cG9vbC4KKyAgY29uc3Qgc2l6ZV90IGF0dHJpYnV0ZXNTaXplID0gMzsKKyAgQ0ZUeXBlUmVmIGtl
eXNbYXR0cmlidXRlc1NpemVdID0geworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBrQ1ZQ
aXhlbEJ1ZmZlck9wZW5HTEVTQ29tcGF0aWJpbGl0eUtleSwKKyNlbGlmIGRlZmluZWQoV0VCUlRD
X01BQykKKyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXksCisjZW5kaWYK
KyAgICBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZVByb3BlcnRpZXNLZXksCisgICAga0NWUGl4ZWxC
dWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkKKyAgfTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIGlvU3VyZmFj
ZVZhbHVlID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShudWxscHRyLCBudWxscHRyLCAwKTsKKyAg
aW50NjRfdCBudjEydHlwZSA9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJG
dWxsUmFuZ2U7CisgIENGTnVtYmVyUmVmIHBpeGVsRm9ybWF0ID0KKyAgICAgIENGTnVtYmVyQ3Jl
YXRlKG51bGxwdHIsIGtDRk51bWJlckxvbmdUeXBlLCAmbnYxMnR5cGUpOworICBDRlR5cGVSZWYg
dmFsdWVzW2F0dHJpYnV0ZXNTaXplXSA9IHtrQ0ZCb29sZWFuVHJ1ZSwgaW9TdXJmYWNlVmFsdWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVsRm9ybWF0fTsKKyAg
Q0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUF0dHJpYnV0ZXMgPQorICAgICAgQ3JlYXRlQ0ZUeXBlRGlj
dGlvbmFyeShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXplKTsKKyAgaWYgKGlvU3VyZmFjZVZh
bHVlKSB7CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVlKTsKKyAgICBpb1N1cmZhY2VWYWx1
ZSA9IG51bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNlKHBp
eGVsRm9ybWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxwdHI7CisgIH0KKyAgQ0ZNdXRhYmxl
RGljdGlvbmFyeVJlZiBlbmNvZGVyX3NwZWNzID0gbnVsbHB0cjsKKyNpZiBkZWZpbmVkKFdFQlJU
Q19NQUMpICYmICFkZWZpbmVkKFdFQlJUQ19JT1MpCisgIC8vIEN1cnJlbnRseSBodyBhY2NsIGlz
IHN1cHBvcnRlZCBhYm92ZSAzNjBwIG9uIG1hYywgYmVsb3cgMzYwcAorICAvLyB0aGUgY29tcHJl
c3Npb24gc2Vzc2lvbiB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBodyBhY2NsIGRpc2FibGVkLgorICBl
bmNvZGVyX3NwZWNzID0KKyAgICAgIENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUobnVsbHB0ciwg
MiwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcyk7CisgIENGRGljdGlv
bmFyeVNldFZhbHVlKAorICAgICAgZW5jb2Rlcl9zcGVjcywKKyAgICAgIGtWVFZpZGVvRW5jb2Rl
clNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwKKyAg
ICAgIGtDRkJvb2xlYW5UcnVlKTsKKyNpZiBIQVZFX1ZUQl9SRVFVSVJFRExPV0xBVEVOQ1kKKyAg
Q0ZEaWN0aW9uYXJ5U2V0VmFsdWUoZW5jb2RlclNwZWNzLCBrVlRWaWRlb0VuY29kZXJTcGVjaWZp
Y2F0aW9uX1JlcXVpcmVkTG93TGF0ZW5jeSwga0NGQm9vbGVhblRydWUpOworI2VuZGlmCisjZW5k
aWYKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAg
ICBudWxscHRyLCAgLy8gdXNlIGRlZmF1bHQgYWxsb2NhdG9yCisgICAgICBfd2lkdGgsIF9oZWln
aHQsIGtDTVZpZGVvQ29kZWNUeXBlX0hFVkMsCisgICAgICBlbmNvZGVyX3NwZWNzLCAgLy8gdXNl
IGhhcmR3YXJlIGFjY2VsZXJhdGVkIGVuY29kZXIgaWYgYXZhaWxhYmxlCisgICAgICBzb3VyY2VB
dHRyaWJ1dGVzLAorICAgICAgbnVsbHB0ciwgIC8vIHVzZSBkZWZhdWx0IGNvbXByZXNzZWQgZGF0
YSBhbGxvY2F0b3IKKyAgICAgIGNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2ssIG51bGxwdHIsICZf
Y29tcHJlc3Npb25TZXNzaW9uKTsKKyAgaWYgKHNvdXJjZUF0dHJpYnV0ZXMpIHsKKyAgICBDRlJl
bGVhc2Uoc291cmNlQXR0cmlidXRlcyk7CisgICAgc291cmNlQXR0cmlidXRlcyA9IG51bGxwdHI7
CisgIH0KKyAgaWYgKGVuY29kZXJfc3BlY3MpIHsKKyAgICBDRlJlbGVhc2UoZW5jb2Rlcl9zcGVj
cyk7CisgICAgZW5jb2Rlcl9zcGVjcyA9IG51bGxwdHI7CisgIH0KKyAgaWYgKHN0YXR1cyAhPSBu
b0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIGNvbXBy
ZXNzaW9uIHNlc3Npb246ICIgPDwgc3RhdHVzOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfRVJST1I7CisgIH0KKyNpZiBkZWZpbmVkKFdFQlJUQ19NQUMpICYmICFkZWZpbmVkKFdFQlJU
Q19JT1MpCisgIENGQm9vbGVhblJlZiBod2FjY2xfZW5hYmxlZCA9IG51bGxwdHI7CisgIHN0YXR1
cyA9IFZUU2Vzc2lvbkNvcHlQcm9wZXJ0eSgKKyAgICAgIF9jb21wcmVzc2lvblNlc3Npb24sCisg
ICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1VzaW5nSGFyZHdhcmVBY2NlbGVyYXRlZFZp
ZGVvRW5jb2RlciwgbnVsbHB0ciwKKyAgICAgICZod2FjY2xfZW5hYmxlZCk7CisgIGlmIChzdGF0
dXMgPT0gbm9FcnIgJiYgKENGQm9vbGVhbkdldFZhbHVlKGh3YWNjbF9lbmFibGVkKSkpIHsKKyAg
ICBSVENfTE9HKExTX0lORk8pIDw8ICJDb21wcmVzc2lvbiBzZXNzaW9uIGNyZWF0ZWQgd2l0aCBo
dyBhY2NsIGVuYWJsZWQiOworICB9IGVsc2UgeworICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIkNv
bXByZXNzaW9uIHNlc3Npb24gY3JlYXRlZCB3aXRoIGh3IGFjY2wgZGlzYWJsZWQiOworICB9Cisj
ZW5kaWYKKyAgW3NlbGYgY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uXTsKKyAgcmV0dXJuIFdF
QlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZCljb25maWd1cmVDb21wcmVzc2lvblNl
c3Npb24geworICBSVENfRENIRUNLKF9jb21wcmVzc2lvblNlc3Npb24pOworICBTZXRWVFNlc3Np
b25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNzaW9uLCBudWxscHRyLCBrVlRDb21wcmVzc2lvblBy
b3BlcnR5S2V5X1JlYWxUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgIC8v
IFNldFZUU2Vzc2lvblByb3BlcnR5KF9jb21wcmVzc2lvblNlc3Npb24sCisgIC8vIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVsLCBfcHJvZmlsZSk7CisgIFNldFZUU2Vzc2lv
blByb3BlcnR5KF9jb21wcmVzc2lvblNlc3Npb24sIG51bGxwdHIsCisgICAgICAgICAgICAgICAg
ICAgICAgIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQWxsb3dGcmFtZVJlb3JkZXJpbmcsIGZh
bHNlKTsKKyAgW3NlbGYgc2V0RW5jb2RlckJpdHJhdGVCcHM6X3RhcmdldEJpdHJhdGVCcHNdOwor
CisgIC8vIFNldCBhIHJlbGF0aXZlbHkgbGFyZ2UgdmFsdWUgZm9yIGtleWZyYW1lIGVtaXNzaW9u
ICg3MjAwIGZyYW1lcyBvciA0IG1pbnV0ZXMpLgorICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29t
cHJlc3Npb25TZXNzaW9uLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICBrVlRDb21w
cmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWwsIDcyMDApOworICBTZXRWVFNl
c3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNzaW9uLCBudWxscHRyLAorICAgICAgICAgICAg
ICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxE
dXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgMjQwKTsKKyAgT1NTdGF0dXMgc3RhdHVz
ID0KKyAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKF9jb21w
cmVzc2lvblNlc3Npb24pOworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhM
U19FUlJPUikgPDwgIkNvbXByZXNzaW9uIHNlc3Npb24gZmFpbGVkIHRvIHByZXBhcmUgZW5jb2Rl
IGZyYW1lcy4iOworICB9Cit9CisKKy0gKHZvaWQpZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbiB7
CisgIGlmIChfY29tcHJlc3Npb25TZXNzaW9uKSB7CisgICAgVlRDb21wcmVzc2lvblNlc3Npb25J
bnZhbGlkYXRlKF9jb21wcmVzc2lvblNlc3Npb24pOworICAgIENGUmVsZWFzZShfY29tcHJlc3Np
b25TZXNzaW9uKTsKKyAgICBfY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKKyAgfQorfQor
CistIChOU1N0cmluZyopaW1wbGVtZW50YXRpb25OYW1lIHsKKyAgcmV0dXJuIEAiVmlkZW9Ub29s
Ym94IjsKK30KKworLSAodm9pZClzZXRCaXRyYXRlQnBzOih1aW50MzJfdCliaXRyYXRlQnBzIHsK
KyAgaWYgKF9lbmNvZGVyQml0cmF0ZUJwcyAhPSBiaXRyYXRlQnBzKSB7CisgICAgW3NlbGYgc2V0
RW5jb2RlckJpdHJhdGVCcHM6Yml0cmF0ZUJwc107CisgIH0KK30KKworLSAodm9pZClzZXRFbmNv
ZGVyQml0cmF0ZUJwczoodWludDMyX3QpYml0cmF0ZUJwcyB7CisgIGlmIChfY29tcHJlc3Npb25T
ZXNzaW9uKSB7CisgICAgU2V0VlRTZXNzaW9uUHJvcGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwg
bnVsbHB0ciwgCisgICAgICAgICAgICAgICAgICAgICAgICAga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0
eUtleV9BdmVyYWdlQml0UmF0ZSwgYml0cmF0ZUJwcyk7CisKKyAgICAvLyBUT0RPKHRrY2hpbik6
IEFkZCBhIGhlbHBlciBtZXRob2QgdG8gc2V0IGFycmF5IHZhbHVlLgorICAgIGludDY0X3QgZGF0
YUxpbWl0Qnl0ZXNQZXJTZWNvbmRWYWx1ZSA9CisgICAgICAgIHN0YXRpY19jYXN0PGludDY0X3Q+
KGJpdHJhdGVCcHMgKiBrTGltaXRUb0F2ZXJhZ2VCaXRSYXRlRmFjdG9yIC8gOCk7CisgICAgQ0ZO
dW1iZXJSZWYgYnl0ZXNQZXJTZWNvbmQgPQorICAgICAgICBDRk51bWJlckNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJTSW50NjRUeXBlLAorICAgICAgICAgICAgICAgICAgICAg
ICAmZGF0YUxpbWl0Qnl0ZXNQZXJTZWNvbmRWYWx1ZSk7CisgICAgaW50NjRfdCBvbmVTZWNvbmRW
YWx1ZSA9IDE7CisgICAgQ0ZOdW1iZXJSZWYgb25lU2Vjb25kID0gQ0ZOdW1iZXJDcmVhdGUoCisg
ICAgICAgIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNJbnQ2NFR5cGUsICZvbmVTZWNv
bmRWYWx1ZSk7CisgICAgY29uc3Qgdm9pZCogbnVtc1syXSA9IHtieXRlc1BlclNlY29uZCwgb25l
U2Vjb25kfTsKKyAgICBDRkFycmF5UmVmIGRhdGFSYXRlTGltaXRzID0KKyAgICAgICAgQ0ZBcnJh
eUNyZWF0ZShudWxscHRyLCBudW1zLCAyLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKTsKKyAgICBP
U1N0YXR1cyBzdGF0dXMgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eSgKKyAgICAgICAgX2NvbXByZXNz
aW9uU2Vzc2lvbiwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9EYXRhUmF0ZUxpbWl0cywKKyAg
ICAgICAgZGF0YVJhdGVMaW1pdHMpOworICAgIGlmIChieXRlc1BlclNlY29uZCkgeworICAgICAg
Q0ZSZWxlYXNlKGJ5dGVzUGVyU2Vjb25kKTsKKyAgICB9CisgICAgaWYgKG9uZVNlY29uZCkgewor
ICAgICAgQ0ZSZWxlYXNlKG9uZVNlY29uZCk7CisgICAgfQorICAgIGlmIChkYXRhUmF0ZUxpbWl0
cykgeworICAgICAgQ0ZSZWxlYXNlKGRhdGFSYXRlTGltaXRzKTsKKyAgICB9CisgICAgaWYgKHN0
YXR1cyAhPSBub0VycikgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBz
ZXQgZGF0YSByYXRlIGxpbWl0IjsKKyAgICB9CisKKyAgICBfZW5jb2RlckJpdHJhdGVCcHMgPSBi
aXRyYXRlQnBzOworICB9Cit9CisKKy0gKHZvaWQpZnJhbWVXYXNFbmNvZGVkOihPU1N0YXR1cylz
dGF0dXMKKyAgICAgICAgICAgICAgICAgIGZsYWdzOihWVEVuY29kZUluZm9GbGFncylpbmZvRmxh
Z3MKKyAgICAgICAgICAgc2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZm
ZXIKKyAgICAgICAgICAgICAgICAgIHdpZHRoOihpbnQzMl90KXdpZHRoCisgICAgICAgICAgICAg
ICAgIGhlaWdodDooaW50MzJfdCloZWlnaHQKKyAgICAgICAgICAgcmVuZGVyVGltZU1zOihpbnQ2
NF90KXJlbmRlclRpbWVNcworICAgICAgICAgICAgICB0aW1lc3RhbXA6KHVpbnQzMl90KXRpbWVz
dGFtcAorICAgICAgICAgICAgICAgcm90YXRpb246KFJUQ1ZpZGVvUm90YXRpb24pcm90YXRpb24g
eworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgImgy
NjUgZW5jb2RlIGZhaWxlZC4iOworICAgIHJldHVybjsKKyAgfQorICBpZiAoaW5mb0ZsYWdzICYg
a1ZURW5jb2RlSW5mb19GcmFtZURyb3BwZWQpIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJo
MjY1IGVuY29kZXIgZHJvcHBlZCBhIGZyYW1lLiI7CisgICAgcmV0dXJuOworICB9CisKKyAgQk9P
TCBpc0tleWZyYW1lID0gTk87CisgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPQorICAgICAgQ01T
YW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlciwgMCk7Cisg
IGlmIChhdHRhY2htZW50cyAhPSBudWxscHRyICYmIENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50
cykpIHsKKyAgICBDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudCA9CisgICAgICAgIHN0YXRpY19j
YXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50cywg
MCkpOworICAgIGlzS2V5ZnJhbWUgPQorICAgICAgICAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXko
YXR0YWNobWVudCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jKTsKKyAgfQorCisgIGlm
IChpc0tleWZyYW1lKSB7CisgICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiR2VuZXJhdGVkIGtleWZy
YW1lIjsKKyAgfQorCisgIC8vIENvbnZlcnQgdGhlIHNhbXBsZSBidWZmZXIgaW50byBhIGJ1ZmZl
ciBzdWl0YWJsZSBmb3IgUlRQIHBhY2tldGl6YXRpb24uCisgIC8vIFRPRE8odGtjaGluKTogQWxs
b2NhdGUgYnVmZmVycyB0aHJvdWdoIGEgcG9vbC4KKyAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QnVm
ZmVyPiBidWZmZXIobmV3IHJ0Yzo6QnVmZmVyKCkpOworICBSVENSdHBGcmFnbWVudGF0aW9uSGVh
ZGVyKiBoZWFkZXI7CisgIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpSVFBGcmFnbWVu
dGF0aW9uSGVhZGVyPiBoZWFkZXJfY3BwOworICAgIGJvb2wgcmVzdWx0ID0gSDI2NUNNU2FtcGxl
QnVmZmVyVG9Bbm5leEJCdWZmZXIoc2FtcGxlQnVmZmVyLCBpc0tleWZyYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmdldCgpLCAm
aGVhZGVyX2NwcCk7CisgICAgaGVhZGVyID0gW1tSVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyIGFs
bG9jXQorICAgICAgICBpbml0V2l0aE5hdGl2ZUZyYWdtZW50YXRpb25IZWFkZXI6aGVhZGVyX2Nw
cC5nZXQoKV07CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8
ICJGYWlsZWQgdG8gY29udmVydCBzYW1wbGUgYnVmZmVyLiI7CisgICAgICByZXR1cm47CisgICAg
fQorICB9CisKKyAgUlRDRW5jb2RlZEltYWdlKiBmcmFtZSA9IFtbUlRDRW5jb2RlZEltYWdlIGFs
bG9jXSBpbml0XTsKKyAgZnJhbWUuYnVmZmVyID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5
OmJ1ZmZlci0+ZGF0YSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl
bmd0aDpidWZmZXItPnNpemUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVl
V2hlbkRvbmU6Tk9dOworICBmcmFtZS5lbmNvZGVkV2lkdGggPSB3aWR0aDsKKyAgZnJhbWUuZW5j
b2RlZEhlaWdodCA9IGhlaWdodDsKKyAgZnJhbWUuY29tcGxldGVGcmFtZSA9IFlFUzsKKyAgZnJh
bWUuZnJhbWVUeXBlID0KKyAgICAgIGlzS2V5ZnJhbWUgPyBSVENGcmFtZVR5cGVWaWRlb0ZyYW1l
S2V5IDogUlRDRnJhbWVUeXBlVmlkZW9GcmFtZURlbHRhOworICBmcmFtZS5jYXB0dXJlVGltZU1z
ID0gcmVuZGVyVGltZU1zOworICBmcmFtZS50aW1lU3RhbXAgPSB0aW1lc3RhbXA7CisgIGZyYW1l
LnJvdGF0aW9uID0gcm90YXRpb247CisgIGZyYW1lLmNvbnRlbnRUeXBlID0gKF9tb2RlID09IFJU
Q1ZpZGVvQ29kZWNNb2RlU2NyZWVuc2hhcmluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
PyBSVENWaWRlb0NvbnRlbnRUeXBlU2NyZWVuc2hhcmUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgOiBSVENWaWRlb0NvbnRlbnRUeXBlVW5zcGVjaWZpZWQ7CisgIGZyYW1lLmZsYWdzID0gd2Vi
cnRjOjpWaWRlb1NlbmRUaW1pbmc6OmtJbnZhbGlkOworCisgIC8vIEZJWE1FOiBRUCBpcyBpZ25v
cmVkIGJlY2F1c2UgdGhlcmUgaXMgbm8gSC4yNjUgYml0c3RyZWFtIHBhcnNlci4KKworICBCT09M
IHJlcyA9IF9jYWxsYmFjayhmcmFtZSwgW1tSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUgYWxsb2Nd
IGluaXRdLCBoZWFkZXIpOworICBpZiAoIXJlcykgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8
ICJFbmNvZGUgY2FsbGJhY2sgZmFpbGVkLiI7CisgICAgcmV0dXJuOworICB9CisgIF9iaXRyYXRl
QWRqdXN0ZXItPlVwZGF0ZShmcmFtZS5idWZmZXIubGVuZ3RoKTsKK30KKworLSAoUlRDVmlkZW9F
bmNvZGVyUXBUaHJlc2hvbGRzKilzY2FsaW5nU2V0dGluZ3MgeworICByZXR1cm4gW1tSVENWaWRl
b0VuY29kZXJRcFRocmVzaG9sZHMgYWxsb2NdCisgICAgICBpbml0V2l0aFRocmVzaG9sZHNMb3c6
a0xvd2gyNjVRcFRocmVzaG9sZAorICAgICAgICAgICAgICAgICAgICAgICBoaWdoOmtIaWdoaDI2
NVFwVGhyZXNob2xkXTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9u
YWx1X3Jld3JpdGVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmNjCmluZGV4
IGRjMjU4ZDYwNjRhMGZlZWEwMDZlZTI5ODJlMDAzN2IwNTViYmEzNzMuLmRkZjczNDYwNTExNWJj
N2I3NGYxMjgyOWE0Y2RlY2NmMzQ0MGZjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
bmFsdV9yZXdyaXRlci5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuY2MK
QEAgLTI0OCw2ICsyNDgsMjI5IEBAIGJvb2wgSDI2NEFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZm
ZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgcmV0dXJuIHRydWU7CiB9CiAKKyNp
Zm5kZWYgRElTQUJMRV9IMjY1Citib29sIEgyNjVDTVNhbXBsZUJ1ZmZlclRvQW5uZXhCQnVmZmVy
KAorICAgIENNU2FtcGxlQnVmZmVyUmVmIGh2Y2Nfc2FtcGxlX2J1ZmZlciwKKyAgICBib29sIGlz
X2tleWZyYW1lLAorICAgIHJ0Yzo6QnVmZmVyKiBhbm5leGJfYnVmZmVyLAorICAgIHN0ZDo6dW5p
cXVlX3B0cjxSVFBGcmFnbWVudGF0aW9uSGVhZGVyPiAqb3V0X2hlYWRlcikgeworICBSVENfRENI
RUNLKGh2Y2Nfc2FtcGxlX2J1ZmZlcik7CisgIFJUQ19EQ0hFQ0sob3V0X2hlYWRlcik7CisgIG91
dF9oZWFkZXItPnJlc2V0KG51bGxwdHIpOworCisgIC8vIEdldCBmb3JtYXQgZGVzY3JpcHRpb24g
ZnJvbSB0aGUgc2FtcGxlIGJ1ZmZlci4KKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRl
c2NyaXB0aW9uID0KKyAgICAgIENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oaHZj
Y19zYW1wbGVfYnVmZmVyKTsKKyAgaWYgKGRlc2NyaXB0aW9uID09IG51bGxwdHIpIHsKKyAgICBS
VENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBzYW1wbGUgYnVmZmVyJ3MgZGVzY3Jp
cHRpb24uIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICAvLyBHZXQgcGFyYW1ldGVyIHNl
dCBpbmZvcm1hdGlvbi4KKyAgaW50IG5hbHVfaGVhZGVyX3NpemUgPSAwOworICBzaXplX3QgcGFy
YW1fc2V0X2NvdW50ID0gMDsKKyAgT1NTdGF0dXMgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uR2V0SEVWQ1BhcmFtZXRlclNldEF0SW5kZXgoCisgICAgICBkZXNjcmlwdGlvbiwgMCwg
bnVsbHB0ciwgbnVsbHB0ciwgJnBhcmFtX3NldF9jb3VudCwgJm5hbHVfaGVhZGVyX3NpemUpOwor
ICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxl
ZCB0byBnZXQgcGFyYW1ldGVyIHNldC4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBSVENf
Q0hFQ0tfRVEobmFsdV9oZWFkZXJfc2l6ZSwga0F2Y2NIZWFkZXJCeXRlU2l6ZSk7CisgIFJUQ19E
Q0hFQ0tfRVEocGFyYW1fc2V0X2NvdW50LCAzKTsKKworICAvLyBUcnVuY2F0ZSBhbnkgcHJldmlv
dXMgZGF0YSBpbiB0aGUgYnVmZmVyIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGNhcGFjaXR5LgorICBh
bm5leGJfYnVmZmVyLT5TZXRTaXplKDApOworCisgIHNpemVfdCBuYWx1X29mZnNldCA9IDA7Cisg
IHN0ZDo6dmVjdG9yPHNpemVfdD4gZnJhZ19vZmZzZXRzOworICBzdGQ6OnZlY3RvcjxzaXplX3Q+
IGZyYWdfbGVuZ3RoczsKKworICAvLyBQbGFjZSBhbGwgcGFyYW1ldGVyIHNldHMgYXQgdGhlIGZy
b250IG9mIGJ1ZmZlci4KKyAgaWYgKGlzX2tleWZyYW1lKSB7CisgICAgc2l6ZV90IHBhcmFtX3Nl
dF9zaXplID0gMDsKKyAgICBjb25zdCB1aW50OF90KiBwYXJhbV9zZXQgPSBudWxscHRyOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1fc2V0X2NvdW50OyArK2kpIHsKKyAgICAgIHN0
YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldEhFVkNQYXJhbWV0ZXJTZXRBdEluZGV4
KAorICAgICAgICAgIGRlc2NyaXB0aW9uLCBpLCAmcGFyYW1fc2V0LCAmcGFyYW1fc2V0X3NpemUs
IG51bGxwdHIsIG51bGxwdHIpOworICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgICAg
ICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBwYXJhbWV0ZXIgc2V0LiI7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIC8vIFVwZGF0ZSBidWZmZXIuCisg
ICAgICBhbm5leGJfYnVmZmVyLT5BcHBlbmREYXRhKGtBbm5leEJIZWFkZXJCeXRlcywgc2l6ZW9m
KGtBbm5leEJIZWFkZXJCeXRlcykpOworICAgICAgYW5uZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihwYXJhbV9zZXQpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJhbV9zZXRfc2l6ZSk7CisgICAgICAvLyBVcGRhdGUgZnJhZ21l
bnRhdGlvbi4KKyAgICAgIGZyYWdfb2Zmc2V0cy5wdXNoX2JhY2sobmFsdV9vZmZzZXQgKyBzaXpl
b2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAgICBmcmFnX2xlbmd0aHMucHVzaF9iYWNrKHBh
cmFtX3NldF9zaXplKTsKKyAgICAgIG5hbHVfb2Zmc2V0ICs9IHNpemVvZihrQW5uZXhCSGVhZGVy
Qnl0ZXMpICsgcGFyYW1fc2V0X3NpemU7CisgICAgfQorICB9CisKKyAgLy8gR2V0IGJsb2NrIGJ1
ZmZlciBmcm9tIHRoZSBzYW1wbGUgYnVmZmVyLgorICBDTUJsb2NrQnVmZmVyUmVmIGJsb2NrX2J1
ZmZlciA9CisgICAgICBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoaHZjY19zYW1wbGVfYnVm
ZmVyKTsKKyAgaWYgKGJsb2NrX2J1ZmZlciA9PSBudWxscHRyKSB7CisgICAgUlRDX0xPRyhMU19F
UlJPUikgPDwgIkZhaWxlZCB0byBnZXQgc2FtcGxlIGJ1ZmZlcidzIGJsb2NrIGJ1ZmZlci4iOwor
ICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBDTUJsb2NrQnVmZmVyUmVmIGNvbnRpZ3VvdXNfYnVm
ZmVyID0gbnVsbHB0cjsKKyAgLy8gTWFrZSBzdXJlIGJsb2NrIGJ1ZmZlciBpcyBjb250aWd1b3Vz
LgorICBpZiAoIUNNQmxvY2tCdWZmZXJJc1JhbmdlQ29udGlndW91cyhibG9ja19idWZmZXIsIDAs
IDApKSB7CisgICAgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckNyZWF0ZUNvbnRpZ3VvdXMoCisgICAg
ICAgIG51bGxwdHIsIGJsb2NrX2J1ZmZlciwgbnVsbHB0ciwgbnVsbHB0ciwgMCwgMCwgMCwgJmNv
bnRpZ3VvdXNfYnVmZmVyKTsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGZsYXR0ZW4gbm9uLWNvbnRpZ3VvdXMgYmxvY2sg
YnVmZmVyOiAiCisgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdGF0dXM7CisgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICB9IGVsc2UgeworICAgIGNvbnRpZ3VvdXNfYnVmZmVyID0gYmxv
Y2tfYnVmZmVyOworICAgIC8vIFJldGFpbiB0byBtYWtlIGNsZWFudXAgZWFzaWVyLgorICAgIENG
UmV0YWluKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICBibG9ja19idWZmZXIgPSBudWxscHRyOwor
ICB9CisKKyAgLy8gTm93IGNvcHkgdGhlIGFjdHVhbCBkYXRhLgorICBjaGFyKiBkYXRhX3B0ciA9
IG51bGxwdHI7CisgIHNpemVfdCBibG9ja19idWZmZXJfc2l6ZSA9IENNQmxvY2tCdWZmZXJHZXRE
YXRhTGVuZ3RoKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckdl
dERhdGFQb2ludGVyKGNvbnRpZ3VvdXNfYnVmZmVyLCAwLCBudWxscHRyLCBudWxscHRyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGFfcHRyKTsKKyAgaWYgKHN0
YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0
IGJsb2NrIGJ1ZmZlciBkYXRhLiI7CisgICAgQ0ZSZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsK
KyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgc2l6ZV90IGJ5dGVzX3JlbWFpbmluZyA9IGJsb2Nr
X2J1ZmZlcl9zaXplOworICB3aGlsZSAoYnl0ZXNfcmVtYWluaW5nID4gMCkgeworICAgIC8vIFRo
ZSBzaXplIHR5cGUgaGVyZSBtdXN0IG1hdGNoIHxuYWx1X2hlYWRlcl9zaXplfCwgd2UgZXhwZWN0
IDQgYnl0ZXMuCisgICAgLy8gUmVhZCB0aGUgbGVuZ3RoIG9mIHRoZSBuZXh0IHBhY2tldCBvZiBk
YXRhLiBNdXN0IGNvbnZlcnQgZnJvbSBiaWcgZW5kaWFuCisgICAgLy8gdG8gaG9zdCBlbmRpYW4u
CisgICAgUlRDX0RDSEVDS19HRShieXRlc19yZW1haW5pbmcsIChzaXplX3QpbmFsdV9oZWFkZXJf
c2l6ZSk7CisgICAgdWludDMyX3QqIHVpbnQzMl9kYXRhX3B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDMyX3QqPihkYXRhX3B0cik7CisgICAgdWludDMyX3QgcGFja2V0X3NpemUgPSBDRlN3YXBJ
bnQzMkJpZ1RvSG9zdCgqdWludDMyX2RhdGFfcHRyKTsKKyAgICAvLyBVcGRhdGUgYnVmZmVyLgor
ICAgIGFubmV4Yl9idWZmZXItPkFwcGVuZERhdGEoa0FubmV4QkhlYWRlckJ5dGVzLCBzaXplb2Yo
a0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAgYW5uZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShkYXRh
X3B0ciArIG5hbHVfaGVhZGVyX3NpemUsIHBhY2tldF9zaXplKTsKKyAgICAvLyBVcGRhdGUgZnJh
Z21lbnRhdGlvbi4KKyAgICBmcmFnX29mZnNldHMucHVzaF9iYWNrKG5hbHVfb2Zmc2V0ICsgc2l6
ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykpOworICAgIGZyYWdfbGVuZ3Rocy5wdXNoX2JhY2socGFj
a2V0X3NpemUpOworICAgIG5hbHVfb2Zmc2V0ICs9IHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMp
ICsgcGFja2V0X3NpemU7CisKKyAgICBzaXplX3QgYnl0ZXNfd3JpdHRlbiA9IHBhY2tldF9zaXpl
ICsgc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcyk7CisgICAgYnl0ZXNfcmVtYWluaW5nIC09IGJ5
dGVzX3dyaXR0ZW47CisgICAgZGF0YV9wdHIgKz0gYnl0ZXNfd3JpdHRlbjsKKyAgfQorICBSVENf
RENIRUNLX0VRKGJ5dGVzX3JlbWFpbmluZywgKHNpemVfdCkwKTsKKworICBzdGQ6OnVuaXF1ZV9w
dHI8UlRQRnJhZ21lbnRhdGlvbkhlYWRlcj4gaGVhZGVyKG5ldyBSVFBGcmFnbWVudGF0aW9uSGVh
ZGVyKCkpOworICBoZWFkZXItPlZlcmlmeUFuZEFsbG9jYXRlRnJhZ21lbnRhdGlvbkhlYWRlcihm
cmFnX29mZnNldHMuc2l6ZSgpKTsKKyAgUlRDX0RDSEVDS19FUShmcmFnX2xlbmd0aHMuc2l6ZSgp
LCBmcmFnX29mZnNldHMuc2l6ZSgpKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFnX29m
ZnNldHMuc2l6ZSgpOyArK2kpIHsKKyAgICBoZWFkZXItPmZyYWdtZW50YXRpb25PZmZzZXRbaV0g
PSBmcmFnX29mZnNldHNbaV07CisgICAgaGVhZGVyLT5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldID0g
ZnJhZ19sZW5ndGhzW2ldOworICB9CisgICpvdXRfaGVhZGVyID0gc3RkOjptb3ZlKGhlYWRlcik7
CisgIENGUmVsZWFzZShjb250aWd1b3VzX2J1ZmZlcik7CisgIHJldHVybiB0cnVlOworfQorCiti
b29sIEgyNjVBbm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKGNvbnN0IHVpbnQ4X3QqIGFubmV4
Yl9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBh
bm5leGJfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb19mb3JtYXQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmKiBvdXRfc2FtcGxlX2J1
ZmZlcikgeworICBSVENfRENIRUNLKGFubmV4Yl9idWZmZXIpOworICBSVENfRENIRUNLKG91dF9z
YW1wbGVfYnVmZmVyKTsKKyAgUlRDX0RDSEVDSyh2aWRlb19mb3JtYXQpOworICAqb3V0X3NhbXBs
ZV9idWZmZXIgPSBudWxscHRyOworCisgIEFubmV4QkJ1ZmZlclJlYWRlciByZWFkZXIoYW5uZXhi
X2J1ZmZlciwgYW5uZXhiX2J1ZmZlcl9zaXplKTsKKyAgaWYgKHJlYWRlci5TZWVrVG9OZXh0TmFs
dU9mVHlwZShIMjY1OjprVnBzKSkgeworICAgIC8vIEJ1ZmZlciBjb250YWlucyBhbiBTUFMgTkFM
VSAtIHNraXAgaXQgYW5kIHRoZSBmb2xsb3dpbmcgUFBTCisgICAgY29uc3QgdWludDhfdCogZGF0
YTsKKyAgICBzaXplX3QgZGF0YV9sZW47CisgICAgaWYgKCFyZWFkZXIuUmVhZE5hbHUoJmRhdGEs
ICZkYXRhX2xlbikpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVh
ZCBWUFMiOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoIXJlYWRlci5SZWFk
TmFsdSgmZGF0YSwgJmRhdGFfbGVuKSkgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZh
aWxlZCB0byByZWFkIFNQUyI7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmICgh
cmVhZGVyLlJlYWROYWx1KCZkYXRhLCAmZGF0YV9sZW4pKSB7CisgICAgICBSVENfTE9HKExTX0VS
Uk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgUFBTIjsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgIH0gZWxzZSB7CisgICAgLy8gTm8gU1BTIE5BTFUgLSBzdGFydCByZWFkaW5nIGZyb20gdGhl
IGZpcnN0IE5BTFUgaW4gdGhlIGJ1ZmZlcgorICAgIHJlYWRlci5TZWVrVG9TdGFydCgpOworICB9
CisKKyAgLy8gQWxsb2NhdGUgbWVtb3J5IGFzIGEgYmxvY2sgYnVmZmVyLgorICAvLyBUT0RPKHRr
Y2hpbik6IGZpZ3VyZSBvdXQgaG93IHRvIHVzZSBhIHBvb2wuCisgIENNQmxvY2tCdWZmZXJSZWYg
YmxvY2tfYnVmZmVyID0gbnVsbHB0cjsKKyAgT1NTdGF0dXMgc3RhdHVzID0gQ01CbG9ja0J1ZmZl
ckNyZWF0ZVdpdGhNZW1vcnlCbG9jaygKKyAgICAgIG51bGxwdHIsIG51bGxwdHIsIHJlYWRlci5C
eXRlc1JlbWFpbmluZygpLCBudWxscHRyLCBudWxscHRyLCAwLAorICAgICAgcmVhZGVyLkJ5dGVz
UmVtYWluaW5nKCksIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywKKyAgICAgICZi
bG9ja19idWZmZXIpOworICBpZiAoc3RhdHVzICE9IGtDTUJsb2NrQnVmZmVyTm9FcnIpIHsKKyAg
ICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBibG9jayBidWZmZXIuIjsK
KyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICAvLyBNYWtlIHN1cmUgYmxvY2sgYnVmZmVyIGlz
IGNvbnRpZ3VvdXMuCisgIENNQmxvY2tCdWZmZXJSZWYgY29udGlndW91c19idWZmZXIgPSBudWxs
cHRyOworICBpZiAoIUNNQmxvY2tCdWZmZXJJc1JhbmdlQ29udGlndW91cyhibG9ja19idWZmZXIs
IDAsIDApKSB7CisgICAgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckNyZWF0ZUNvbnRpZ3VvdXMoCisg
ICAgICAgIG51bGxwdHIsIGJsb2NrX2J1ZmZlciwgbnVsbHB0ciwgbnVsbHB0ciwgMCwgMCwgMCwg
JmNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgICBS
VENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGZsYXR0ZW4gbm9uLWNvbnRpZ3VvdXMgYmxv
Y2sgYnVmZmVyOiAiCisgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdGF0dXM7CisgICAgICBD
RlJlbGVhc2UoYmxvY2tfYnVmZmVyKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0g
ZWxzZSB7CisgICAgY29udGlndW91c19idWZmZXIgPSBibG9ja19idWZmZXI7CisgICAgYmxvY2tf
YnVmZmVyID0gbnVsbHB0cjsKKyAgfQorCisgIC8vIEdldCBhIHJhdyBwb2ludGVyIGludG8gYWxs
b2NhdGVkIG1lbW9yeS4KKyAgc2l6ZV90IGJsb2NrX2J1ZmZlcl9zaXplID0gMDsKKyAgY2hhciog
ZGF0YV9wdHIgPSBudWxscHRyOworICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50
ZXIoY29udGlndW91c19idWZmZXIsIDAsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmYmxvY2tfYnVmZmVyX3NpemUsICZkYXRhX3B0cik7CisgIGlmIChz
dGF0dXMgIT0ga0NNQmxvY2tCdWZmZXJOb0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8
ICJGYWlsZWQgdG8gZ2V0IGJsb2NrIGJ1ZmZlciBkYXRhIHBvaW50ZXIuIjsKKyAgICBDRlJlbGVh
c2UoY29udGlndW91c19idWZmZXIpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBSVENfRENI
RUNLKGJsb2NrX2J1ZmZlcl9zaXplID09IHJlYWRlci5CeXRlc1JlbWFpbmluZygpKTsKKworICAv
LyBXcml0ZSBBdmNjIE5BTFVzIGludG8gYmxvY2sgYnVmZmVyIG1lbW9yeS4KKyAgQXZjY0J1ZmZl
cldyaXRlciB3cml0ZXIocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YV9wdHIpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBibG9ja19idWZmZXJfc2l6ZSk7CisgIHdoaWxlIChyZWFk
ZXIuQnl0ZXNSZW1haW5pbmcoKSA+IDApIHsKKyAgICBjb25zdCB1aW50OF90KiBuYWx1X2RhdGFf
cHRyID0gbnVsbHB0cjsKKyAgICBzaXplX3QgbmFsdV9kYXRhX3NpemUgPSAwOworICAgIGlmIChy
ZWFkZXIuUmVhZE5hbHUoJm5hbHVfZGF0YV9wdHIsICZuYWx1X2RhdGFfc2l6ZSkpIHsKKyAgICAg
IHdyaXRlci5Xcml0ZU5hbHUobmFsdV9kYXRhX3B0ciwgbmFsdV9kYXRhX3NpemUpOworICAgIH0K
KyAgfQorCisgIC8vIENyZWF0ZSBzYW1wbGUgYnVmZmVyLgorICBzdGF0dXMgPSBDTVNhbXBsZUJ1
ZmZlckNyZWF0ZShudWxscHRyLCBjb250aWd1b3VzX2J1ZmZlciwgdHJ1ZSwgbnVsbHB0ciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0ciwgdmlkZW9fZm9ybWF0LCAxLCAw
LCBudWxscHRyLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyLCBv
dXRfc2FtcGxlX2J1ZmZlcik7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9H
KExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBzYW1wbGUgYnVmZmVyLiI7CisgICAgQ0ZS
ZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQ0ZS
ZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwog
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIENyZWF0ZVZpZGVvRm9ybWF0RGVzY3JpcHRpb24o
CiAgICAgY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICBzaXplX3QgYW5uZXhiX2J1
ZmZlcl9zaXplKSB7CkBAIC0yNzgsNiArNTAxLDQzIEBAIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
blJlZiBDcmVhdGVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKAogICByZXR1cm4gZGVzY3JpcHRpb247
CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYg
Q3JlYXRlSDI2NVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCisgICAgY29uc3QgdWludDhfdCogYW5u
ZXhiX2J1ZmZlciwKKyAgICBzaXplX3QgYW5uZXhiX2J1ZmZlcl9zaXplKSB7CisgIGNvbnN0IHVp
bnQ4X3QqIHBhcmFtX3NldF9wdHJzWzNdID0ge307CisgIHNpemVfdCBwYXJhbV9zZXRfc2l6ZXNb
M10gPSB7fTsKKyAgQW5uZXhCQnVmZmVyUmVhZGVyIHJlYWRlcihhbm5leGJfYnVmZmVyLCBhbm5l
eGJfYnVmZmVyX3NpemUpOworICAvLyBTa2lwIGV2ZXJ5dGluZyBiZWZvcmUgdGhlIFZQUywgdGhl
biByZWFkIHRoZSBWUFMsIFNQUyBhbmQgUFBTCisgIGlmICghcmVhZGVyLlNlZWtUb05leHROYWx1
T2ZUeXBlKEgyNjU6OmtWcHMpKSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgaWYgKCFy
ZWFkZXIuUmVhZE5hbHUoJnBhcmFtX3NldF9wdHJzWzBdLCAmcGFyYW1fc2V0X3NpemVzWzBdKSkg
eworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBWUFMiOworICAgIHJl
dHVybiBudWxscHRyOworICB9CisgIGlmICghcmVhZGVyLlJlYWROYWx1KCZwYXJhbV9zZXRfcHRy
c1sxXSwgJnBhcmFtX3NldF9zaXplc1sxXSkpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
RmFpbGVkIHRvIHJlYWQgU1BTIjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICBpZiAoIXJl
YWRlci5SZWFkTmFsdSgmcGFyYW1fc2V0X3B0cnNbMl0sICZwYXJhbV9zZXRfc2l6ZXNbMl0pKSB7
CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byByZWFkIFBQUyI7CisgICAgcmV0
dXJuIG51bGxwdHI7CisgIH0KKworICAvLyBQYXJzZSB0aGUgU1BTIGFuZCBQUFMgaW50byBhIENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbi4KKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRl
c2NyaXB0aW9uID0gbnVsbHB0cjsKKyAgT1NTdGF0dXMgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uQ3JlYXRlRnJvbUhFVkNQYXJhbWV0ZXJTZXRzKAorICAgICAga0NGQWxsb2NhdG9y
RGVmYXVsdCwgMywgcGFyYW1fc2V0X3B0cnMsIHBhcmFtX3NldF9zaXplcywgNCwgbnVsbHB0ciwK
KyAgICAgICZkZXNjcmlwdGlvbik7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSB2aWRlbyBmb3JtYXQgZGVzY3JpcHRp
b24uIjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICByZXR1cm4gZGVzY3JpcHRpb247Cit9
CisjZW5kaWYKKwogQW5uZXhCQnVmZmVyUmVhZGVyOjpBbm5leEJCdWZmZXJSZWFkZXIoY29uc3Qg
dWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBsZW5ndGgpCiAgICAgOiBzdGFydF8oYW5uZXhiX2J1ZmZlciksIGxlbmd0
aF8obGVuZ3RoKSB7CkBAIC0zMjQsNiArNTg0LDE5IEBAIGJvb2wgQW5uZXhCQnVmZmVyUmVhZGVy
OjpTZWVrVG9OZXh0TmFsdU9mVHlwZShOYWx1VHlwZSB0eXBlKSB7CiAgIH0KICAgcmV0dXJuIGZh
bHNlOwogfQorCisjaWZuZGVmIERJU0FCTEVfSDI2NQorYm9vbCBBbm5leEJCdWZmZXJSZWFkZXI6
OlNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjU6Ok5hbHVUeXBlIHR5cGUpIHsKKyAgZm9yICg7IG9m
ZnNldF8gIT0gb2Zmc2V0c18uZW5kKCk7ICsrb2Zmc2V0XykgeworICAgIGlmIChvZmZzZXRfLT5w
YXlsb2FkX3NpemUgPCAxKQorICAgICAgY29udGludWU7CisgICAgaWYgKEgyNjU6OlBhcnNlTmFs
dVR5cGUoKihzdGFydF8gKyBvZmZzZXRfLT5wYXlsb2FkX3N0YXJ0X29mZnNldCkpID09IHR5cGUp
CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwog
QXZjY0J1ZmZlcldyaXRlcjo6QXZjY0J1ZmZlcldyaXRlcih1aW50OF90KiBjb25zdCBhdmNjX2J1
ZmZlciwgc2l6ZV90IGxlbmd0aCkKICAgICA6IHN0YXJ0XyhhdmNjX2J1ZmZlciksIG9mZnNldF8o
MCksIGxlbmd0aF8obGVuZ3RoKSB7CiAgIFJUQ19EQ0hFQ0soYXZjY19idWZmZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L25hbHVfcmV3cml0ZXIuaAppbmRleCBhMGMxYWE5MGFmNTc1OWRlMzliNWQwNmMyMjFkMjg0Mjk0
Mzg5ODc2Li40ZGExY2M1N2M3ZDEwYThiZjM2YTI4OGQ3MzFjM2M4NjEwZWQ1N2MzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuaAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL25hbHVfcmV3cml0ZXIuaApAQCAtMTgsNiArMTgsOSBAQAogI2luY2x1ZGUgPHZlY3Rvcj4K
IAogI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisjaWZuZGVmIERJ
U0FCTEVfSDI2NQorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisj
ZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgog
I2luY2x1ZGUgInJ0Y19iYXNlL2J1ZmZlci5oIgogCkBAIC00Nyw2ICs1MCwzMSBAQCBib29sIEgy
NjRBbm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZm
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVy
UmVmKiBvdXRfc2FtcGxlX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ01NZW1vcnlQb29sUmVmIG1lbW9yeV9wb29sKTsKIAorI2lmbmRlZiBESVNBQkxFX0gy
NjUKKy8vIENvbnZlcnRzIGEgc2FtcGxlIGJ1ZmZlciBlbWl0dGVkIGZyb20gdGhlIFZpZGVvVG9v
bGJveCBlbmNvZGVyIGludG8gYSBidWZmZXIKKy8vIHN1aXRhYmxlIGZvciBSVFAuIFRoZSBzYW1w
bGUgYnVmZmVyIGlzIGluIGh2Y2MgZm9ybWF0IHdoZXJlYXMgdGhlIHJ0cCBidWZmZXIKKy8vIG5l
ZWRzIHRvIGJlIGluIEFubmV4IEIgZm9ybWF0LiBEYXRhIGlzIHdyaXR0ZW4gZGlyZWN0bHkgdG8g
fGFubmV4Yl9idWZmZXJ8CisvLyBhbmQgYSBuZXcgUlRQRnJhZ21lbnRhdGlvbkhlYWRlciBpcyBy
ZXR1cm5lZCBpbiB8b3V0X2hlYWRlcnwuCitib29sIEgyNjVDTVNhbXBsZUJ1ZmZlclRvQW5uZXhC
QnVmZmVyKAorICAgIENNU2FtcGxlQnVmZmVyUmVmIGh2Y2Nfc2FtcGxlX2J1ZmZlciwKKyAgICBi
b29sIGlzX2tleWZyYW1lLAorICAgIHJ0Yzo6QnVmZmVyKiBhbm5leGJfYnVmZmVyLAorICAgIHN0
ZDo6dW5pcXVlX3B0cjxSVFBGcmFnbWVudGF0aW9uSGVhZGVyPiAqb3V0X2hlYWRlcikKKyAgICBf
X09TWF9BVkFJTEFCTEVfU1RBUlRJTkcoX19NQUNfMTBfMTIsIF9fSVBIT05FXzExXzApOworCisg
Ly8gQ29udmVydHMgYSBidWZmZXIgcmVjZWl2ZWQgZnJvbSBSVFAgaW50byBhIHNhbXBsZSBidWZm
ZXIgc3VpdGFibGUgZm9yIHRoZQorLy8gVmlkZW9Ub29sYm94IGRlY29kZXIuIFRoZSBSVFAgYnVm
ZmVyIGlzIGluIGFubmV4IGIgZm9ybWF0IHdoZXJlYXMgdGhlIHNhbXBsZQorLy8gYnVmZmVyIGlz
IGluIGh2Y2MgZm9ybWF0LgorLy8gSWYgfGlzX2tleWZyYW1lfCBpcyB0cnVlIHRoZW4gfHZpZGVv
X2Zvcm1hdHwgaXMgaWdub3JlZCBzaW5jZSB0aGUgZm9ybWF0IHdpbGwKKy8vIGJlIHJlYWQgZnJv
bSB0aGUgYnVmZmVyLiBPdGhlcndpc2UgfHZpZGVvX2Zvcm1hdHwgbXVzdCBiZSBwcm92aWRlZC4K
Ky8vIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcmVsZWFzaW5nIHRoZSBjcmVhdGVkIHNhbXBs
ZSBidWZmZXIuCitib29sIEgyNjVBbm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKGNvbnN0IHVp
bnQ4X3QqIGFubmV4Yl9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb19mb3JtYXQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmKiBv
dXRfc2FtcGxlX2J1ZmZlcikKKyAgICBfX09TWF9BVkFJTEFCTEVfU1RBUlRJTkcoX19NQUNfMTBf
MTIsIF9fSVBIT05FXzExXzApOworI2VuZGlmCisKIC8vIFJldHVybnMgYSB2aWRlbyBmb3JtYXQg
ZGVzY3JpcHRpb24gY3JlYXRlZCBmcm9tIHRoZSBzcHMvcHBzIGluZm9ybWF0aW9uIGluCiAvLyB0
aGUgQW5uZXggQiBidWZmZXIuIElmIHRoZXJlIGlzIG5vIHN1Y2ggaW5mb3JtYXRpb24sIG51bGxw
dHIgaXMgcmV0dXJuZWQuCiAvLyBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciByZWxlYXNp
bmcgdGhlIGRlc2NyaXB0aW9uLgpAQCAtNTQsNiArODIsMTMgQEAgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIENyZWF0ZVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCiAgICAgY29uc3QgdWludDhf
dCogYW5uZXhiX2J1ZmZlciwKICAgICBzaXplX3QgYW5uZXhiX2J1ZmZlcl9zaXplKTsKIAorI2lm
bmRlZiBESVNBQkxFX0gyNjUKK0NNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBDcmVhdGVIMjY1
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKKyAgICBjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVy
LAorICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUpCisgICAgX19PU1hfQVZBSUxBQkxFX1NU
QVJUSU5HKF9fTUFDXzEwXzEyLCBfX0lQSE9ORV8xMV8wKTsKKyNlbmRpZgorCiAvLyBIZWxwZXIg
Y2xhc3MgZm9yIHJlYWRpbmcgTkFMVXMgZnJvbSBhbiBSVFAgQW5uZXggQiBidWZmZXIuCiBjbGFz
cyBBbm5leEJCdWZmZXJSZWFkZXIgZmluYWwgewogIHB1YmxpYzoKQEAgLTc4LDYgKzExMyw5IEBA
IGNsYXNzIEFubmV4QkJ1ZmZlclJlYWRlciBmaW5hbCB7CiAgIC8vIFJldHVybiB0cnVlIGlmIGEg
TkFMVSBvZiB0aGUgZGVzaXJlZCB0eXBlIGlzIGZvdW5kLCBmYWxzZSBpZiB3ZQogICAvLyByZWFj
aGVkIHRoZSBlbmQgaW5zdGVhZAogICBib29sIFNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjQ6Ok5h
bHVUeXBlIHR5cGUpOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgYm9vbCBTZWVrVG9OZXh0TmFs
dU9mVHlwZShIMjY1OjpOYWx1VHlwZSB0eXBlKTsKKyNlbmRpZgogCiAgcHJpdmF0ZToKICAgLy8g
UmV0dXJucyB0aGUgdGhlIG5leHQgb2Zmc2V0IHRoYXQgY29udGFpbnMgTkFMVSBkYXRhLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192
aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0KaW5kZXggNWFjYTAyZDVhYjBjMDQ3NWQzNzM4YjQ3NmVj
ZTlkMTQwMzkxZjc3MC4uMmNhNmQwZWE2OThiYzRmODkxOTZhMjFiNDI5ZDNmNzc4YmUyNWJkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3Jj
L29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCkBAIC05Nyw3ICs5NywxMCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8VmlkZW9EZWNvZGVyPiBPYmpDVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlk
ZW9EZWNvZGVyKAogICAgIGlmIChbY29kZWNOYW1lIGlzRXF1YWxUb1N0cmluZzpjb2RlY0luZm8u
bmFtZV0pIHsKICAgICAgIGlkPFJUQ1ZpZGVvRGVjb2Rlcj4gZGVjb2RlciA9IFtkZWNvZGVyX2Zh
Y3RvcnlfIGNyZWF0ZURlY29kZXI6Y29kZWNJbmZvXTsKIAotICAgICAgaWYgKFtkZWNvZGVyIGlz
S2luZE9mQ2xhc3M6W1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIgY2xhc3NdXSkgeworICAg
ICAgLy8gQmVjYXVzZSBvZiBzeW1ib2wgY29uZmxpY3QsIGlzS2luZE9mQ2xhc3MgZG9lc24ndCB3
b3JrIGFzIGV4cGVjdGVkLgorICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTg3ODIuCisgICAgICAvLyBpZiAoW2RlY29kZXIgaXNLaW5kT2ZDbGFz
czpbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2RlciBjbGFzc11dKSB7CisgICAgICBpZiAoW2Nv
ZGVjTmFtZSBpc0VxdWFsOkAiVlA4Il0gfHwgW2NvZGVjTmFtZSBpc0VxdWFsOkAiVlA5Il0pIHsK
ICAgICAgICAgcmV0dXJuIFsoUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIg
cmVsZWFzZVdyYXBwZWREZWNvZGVyXTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBz
dGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVvRGVjb2Rlcj4obmV3IE9iakNWaWRlb0RlY29kZXIoZGVj
b2RlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbSBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2
ZS9zcmMvb2JqY192aWRlb19lbmNvZGVyX2ZhY3RvcnkubW0KaW5kZXggYTc1NTMwN2M2YjdjZjI1
NDg3ZjYyOWNiMDI0NjlkN2I5NGI0NGE3Ni4uMzM0Njk4MTNhZjM0NGQyOWI0YWZkNjI5YzgwYTIy
ZDQzZTdlZGQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5t
bQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2Jq
Yy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lm1tCkBAIC0xNSw2ICsxNSw5
IEBACiAjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRW5jb2Rlci5oIgogI2ltcG9ydCAiYmFzZS9SVENW
aWRlb0VuY29kZXJGYWN0b3J5LmgiCiAjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQor
I2ltcG9ydCAiY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUr
UHJpdmF0ZS5oIgorI2VuZGlmCiAjaW1wb3J0ICJzZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24v
UlRDRW5jb2RlZEltYWdlK1ByaXZhdGUuaCIKICNpbXBvcnQgInNkay9vYmpjL2FwaS9wZWVyY29u
bmVjdGlvbi9SVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyK1ByaXZhdGUuaCIKICNpbXBvcnQgInNk
ay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENWaWRlb0NvZGVjSW5mbytQcml2YXRlLmgiCkBA
IC02NSw4ICs2OCwxNiBAQCBjbGFzcyBPYmpDVmlkZW9FbmNvZGVyIDogcHVibGljIFZpZGVvRW5j
b2RlciB7CiAKICAgICAgIC8vIEhhbmRsZSB0eXBlcyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgaW50
byBvbmUgb2YgQ29kZWNTcGVjaWZpY0luZm8ncyBoYXJkIGNvZGVkIGNhc2VzLgogICAgICAgQ29k
ZWNTcGVjaWZpY0luZm8gY29kZWNTcGVjaWZpY0luZm87Ci0gICAgICBpZiAoW2luZm8gaXNLaW5k
T2ZDbGFzczpbUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0IGNsYXNzXV0pIHsKKyAgICAgIC8vIEJl
Y2F1c2Ugb2Ygc3ltYm9sIGNvbmZsaWN0LCBpc0tpbmRPZkNsYXNzIGRvZXNuJ3Qgd29yayBhcyBl
eHBlY3RlZC4KKyAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk4NzgyLgorICAgICAgaWYgKFtOU1N0cmluZ0Zyb21DbGFzcyhbaW5mbyBjbGFzc10p
IGlzRXF1YWw6QCJXS19SVENDb2RlY1NwZWNpZmljSW5mb0gyNjQiXSkgeworICAgICAgICAvLyBp
ZiAoW2luZm8gaXNLaW5kT2ZDbGFzczpbUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0IGNsYXNzXV0p
IHsKICAgICAgICAgY29kZWNTcGVjaWZpY0luZm8gPSBbKFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NCAqKWluZm8gbmF0aXZlQ29kZWNTcGVjaWZpY0luZm9dOworI2lmbmRlZiBESVNBQkxFX0gyNjUK
KyAgICAgIH0gZWxzZSBpZiAoW05TU3RyaW5nRnJvbUNsYXNzKFtpbmZvIGNsYXNzXSkgaXNFcXVh
bDpAIldLX1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NSJdKSB7CisgICAgICAgIC8vIGlmIChbaW5m
byBpc0tpbmRPZkNsYXNzOltSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUgY2xhc3NdXSkgeworICAg
ICAgICBjb2RlY1NwZWNpZmljSW5mbyA9IFsoUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1ICopaW5m
byBuYXRpdmVDb2RlY1NwZWNpZmljSW5mb107CisjZW5kaWYKICAgICAgIH0KIAogICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFJUUEZyYWdtZW50YXRpb25IZWFkZXI+IGZyYWdtZW50YXRpb25IZWFkZXIg
PQpAQCAtMTY3LDcgKzE3OCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9FbmNvZGVyPiBPYmpD
VmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9FbmNvZGVyKAogICAgIGNvbnN0IFNkcFZp
ZGVvRm9ybWF0ICZmb3JtYXQpIHsKICAgUlRDVmlkZW9Db2RlY0luZm8gKmluZm8gPSBbW1JUQ1Zp
ZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hdGl2ZVNkcFZpZGVvRm9ybWF0OmZvcm1hdF07
CiAgIGlkPFJUQ1ZpZGVvRW5jb2Rlcj4gZW5jb2RlciA9IFtlbmNvZGVyX2ZhY3RvcnlfIGNyZWF0
ZUVuY29kZXI6aW5mb107Ci0gIGlmIChbZW5jb2RlciBpc0tpbmRPZkNsYXNzOltSVENXcmFwcGVk
TmF0aXZlVmlkZW9FbmNvZGVyIGNsYXNzXV0pIHsKKyAgLy8gQmVjYXVzZSBvZiBzeW1ib2wgY29u
ZmxpY3QsIGlzS2luZE9mQ2xhc3MgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLgorICAvLyBTZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KKyAgLy8gaWYg
KFtlbmNvZGVyIGlzS2luZE9mQ2xhc3M6W1JUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIgY2xh
c3NdXSkgeworICBpZiAoW2luZm8ubmFtZSBpc0VxdWFsOkAiVlA4Il0gfHwgW2luZm8ubmFtZSBp
c0VxdWFsOkAiVlA5Il0pIHsKICAgICByZXR1cm4gWyhSVENXcmFwcGVkTmF0aXZlVmlkZW9FbmNv
ZGVyICopZW5jb2RlciByZWxlYXNlV3JhcHBlZEVuY29kZXJdOwogICB9IGVsc2UgewogICAgIHJl
dHVybiBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVvRW5jb2Rlcj4obmV3IE9iakNWaWRlb0VuY29k
ZXIoZW5jb2RlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5jYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1f
cmVjZWl2ZXIuY2MKaW5kZXggODVmYjg4NjJmMjVmMWUyMWY3NWJhMjE3OGNmZGNmNWQwNWYwN2E1
My4uMDU4ZGYwYWU5NjZlNWQxMWVmYTI0ZTAzMDY0OWM1NjI5MTlhMmNlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVv
X3N0cmVhbV9yZWNlaXZlci5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjCkBAIC01ODcsNyAr
NTg3LDI0IEBAIHZvaWQgUnRwVmlkZW9TdHJlYW1SZWNlaXZlcjo6T25SZWNlaXZlZFBheWxvYWRE
YXRhKAogICAgICAgICBwYWNrZXQtPnZpZGVvX3BheWxvYWQgPSBzdGQ6Om1vdmUoZml4ZWQuYml0
c3RyZWFtKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotCisjaWZuZGVmIERJU0FCTEVfSDI2NQor
ICB9IGVsc2UgaWYgKHBhY2tldC0+Y29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICB2
aWRlb19jb2Rpbmc6OkgyNjVWcHNTcHNQcHNUcmFja2VyOjpGaXhlZEJpdHN0cmVhbSBmaXhlZCA9
CisgICAgICAgIGgyNjVfdHJhY2tlcl8uQ29weUFuZEZpeEJpdHN0cmVhbSgKKyAgICAgICAgICAg
IHJ0Yzo6TWFrZUFycmF5Vmlldyhjb2RlY19wYXlsb2FkLmNkYXRhKCksIGNvZGVjX3BheWxvYWQu
c2l6ZSgpKSwKKyAgICAgICAgICAgICZwYWNrZXQtPnZpZGVvX2hlYWRlcik7CisgICAgc3dpdGNo
IChmaXhlZC5hY3Rpb24pIHsKKyAgICAgIGNhc2UgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBz
VHJhY2tlcjo6a1JlcXVlc3RLZXlmcmFtZToKKyAgICAgICAgcnRjcF9mZWVkYmFja19idWZmZXJf
LlJlcXVlc3RLZXlGcmFtZSgpOworICAgICAgICBydGNwX2ZlZWRiYWNrX2J1ZmZlcl8uU2VuZEJ1
ZmZlcmVkUnRjcEZlZWRiYWNrKCk7CisgICAgICAgIEFCU0xfRkFMTFRIUk9VR0hfSU5URU5ERUQ7
CisgICAgICBjYXNlIHZpZGVvX2NvZGluZzo6SDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OmtEcm9wOgor
ICAgICAgICByZXR1cm47CisgICAgICBjYXNlIHZpZGVvX2NvZGluZzo6SDI2NVZwc1Nwc1Bwc1Ry
YWNrZXI6OmtJbnNlcnQ6CisgICAgICAgIHBhY2tldC0+dmlkZW9fcGF5bG9hZCA9IHN0ZDo6bW92
ZShmaXhlZC5iaXRzdHJlYW0pOworICAgICAgICBicmVhazsKKyAgICB9CisjZW5kaWYKICAgfSBl
bHNlIHsKICAgICBwYWNrZXQtPnZpZGVvX3BheWxvYWQgPSBzdGQ6Om1vdmUoY29kZWNfcGF5bG9h
ZCk7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2
ZXIuaAppbmRleCAwMzA3MGRiNTFkYzVkM2JiZjMwZTYxZmI4YWEwZWViZTk1ZTIyYTcxLi4zMzA0
NTViMWI4NmJkNWZkM2U0MGQ1MzYzNmI2MDNlYzY3MDM3N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFt
X3JlY2VpdmVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oCkBAIC0zOCw2ICszOCw5IEBACiAj
aW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvdmlkZW9fcnRwX2RlcGFja2V0aXplci5o
IgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjRfc3BzX3Bwc190cmFja2VyLmgi
CiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvbG9zc19ub3RpZmljYXRpb25fY29udHJv
bGxlci5oIgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVv
X2NvZGluZy9ydHBfZnJhbWVfcmVmZXJlbmNlX2ZpbmRlci5oIgogI2luY2x1ZGUgIm1vZHVsZXMv
dmlkZW9fY29kaW5nL3VuaXF1ZV90aW1lc3RhbXBfY291bnRlci5oIgpAQCAtMzE3LDYgKzMyMCwx
MCBAQCBjbGFzcyBSdHBWaWRlb1N0cmVhbVJlY2VpdmVyIDogcHVibGljIExvc3NOb3RpZmljYXRp
b25TZW5kZXIsCiAgIC8vIE1hcHMgcGF5bG9hZCBpZCB0byB0aGUgZGVwYWNrZXRpemVyLgogICBz
dGQ6Om1hcDx1aW50OF90LCBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9SdHBEZXBhY2tldGl6ZXI+PiBw
YXlsb2FkX3R5cGVfbWFwXzsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgdmlkZW9fY29kaW5n
OjpIMjY1VnBzU3BzUHBzVHJhY2tlciBoMjY1X3RyYWNrZXJfOworI2VuZGlmCisKICAgLy8gVE9E
Tyhqb2hhbik6IFJlbW92ZSBwdF9jb2RlY19wYXJhbXNfIG9uY2UKICAgLy8gaHR0cHM6Ly9idWdz
LmNocm9taXVtLm9yZy9wL3dlYnJ0Yy9pc3N1ZXMvZGV0YWlsP2lkPTY4ODMgaXMgcmVzb2x2ZWQu
CiAgIC8vIE1hcHMgYSBwYXlsb2FkIHR5cGUgdG8gYSBtYXAgb2Ygb3V0LW9mLWJhbmQgc3VwcGxp
ZWQgY29kZWMgcGFyYW1ldGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3NlbmRfc3RhdGlzdGljc19wcm94eS5jYyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3NlbmRfc3RhdGlzdGlj
c19wcm94eS5jYwppbmRleCA2MGQ4NGYxNGM3ODllOWM1ZDM5OWFkZWU0OGJkZDMxN2RhYzA4NjAw
Li5mMjE0MTcyMjlhNzBmMmI4MjEzODg2MDVjNDgwYzAxYzU3OTVkODdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9zZW5kX3N0YXRp
c3RpY3NfcHJveHkuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvdmlkZW8vc2VuZF9zdGF0aXN0aWNzX3Byb3h5LmNjCkBAIC00Nyw2ICs0Nyw3IEBAIGVu
dW0gSGlzdG9ncmFtQ29kZWNUeXBlIHsKICAga1ZpZGVvVnA4ID0gMSwKICAga1ZpZGVvVnA5ID0g
MiwKICAga1ZpZGVvSDI2NCA9IDMsCisgIGtWaWRlb0gyNjUgPSA0LAogICBrVmlkZW9NYXggPSA2
NCwKIH07CiAKQEAgLTc0LDYgKzc1LDEwIEBAIEhpc3RvZ3JhbUNvZGVjVHlwZSBQYXlsb2FkTmFt
ZVRvSGlzdG9ncmFtQ29kZWNUeXBlKAogICAgICAgcmV0dXJuIGtWaWRlb1ZwOTsKICAgICBjYXNl
IGtWaWRlb0NvZGVjSDI2NDoKICAgICAgIHJldHVybiBrVmlkZW9IMjY0OworI2lmbmRlZiBESVNB
QkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NToKKyAgICAgIHJldHVybiBrVmlkZW9I
MjY1OworI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgIHJldHVybiBrVmlkZW9Vbmtub3duOwog
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy92aWRlby92aWRlb19yZWNlaXZlX3N0cmVhbS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3RyZWFtLmNjCmluZGV4IDI0
NmRhYWRiODFiYmJlZjhjYzBmODhkYmM1MWQ5NGVjMzk2YmM3ODMuLmYxYjY1NWYwMTg0M2EyYmY2
NjQzZjJlYjc2N2E0NzJkMTA4NjI2ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3RyZWFtLmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3Jl
Y2VpdmVfc3RyZWFtLmNjCkBAIC0xMzQsNiArMTM0LDExIEBAIFZpZGVvQ29kZWMgQ3JlYXRlRGVj
b2RlclZpZGVvQ29kZWMoY29uc3QgVmlkZW9SZWNlaXZlU3RyZWFtOjpEZWNvZGVyJiBkZWNvZGVy
KSB7CiAgICAgYXNzb2NpYXRlZF9jb2RlYy5jb2RlY1R5cGUgPSBrVmlkZW9Db2RlY011bHRpcGxl
eDsKICAgICByZXR1cm4gYXNzb2NpYXRlZF9jb2RlYzsKICAgfQorI2lmbmRlZiBESVNBQkxFX0gy
NjUKKyAgZWxzZSBpZiAoY29kZWMuY29kZWNUeXBlID09IGtWaWRlb0NvZGVjSDI2NSkgeworICAg
ICooY29kZWMuSDI2NSgpKSA9IFZpZGVvRW5jb2Rlcjo6R2V0RGVmYXVsdEgyNjVTZXR0aW5ncygp
OworICB9CisjZW5kaWYKIAogICBjb2RlYy53aWR0aCA9IDMyMDsKICAgY29kZWMuaGVpZ2h0ID0g
MTgwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvdmlkZW8vdmlkZW9fc3RyZWFtX2VuY29kZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19zdHJlYW1fZW5jb2Rlci5jYwppbmRleCA4
MjUyY2IyOWVmMTdkZjBjZjBhMmZjOGZkZGU3MGYxZDU5ZTlkOGQ1Li41Mjg5MWU5YzFiNzBjODg2
NDc4NGI0NTQzMmUzZWMzOGYyMDU4YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19zdHJlYW1fZW5jb2Rlci5jYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19z
dHJlYW1fZW5jb2Rlci5jYwpAQCAtMTAwLDcgKzEwMCwxMyBAQCBib29sIFJlcXVpcmVzRW5jb2Rl
clJlc2V0KGNvbnN0IFZpZGVvQ29kZWMmIHByZXZfc2VuZF9jb2RlYywKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICB9CiAgICAgICBicmVhazsKLQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAg
ICBjYXNlIGtWaWRlb0NvZGVjSDI2NToKKyAgICAgIGlmIChuZXdfc2VuZF9jb2RlYy5IMjY1KCkg
IT0gcHJldl9zZW5kX2NvZGVjLkgyNjUoKSkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
IH0KKyAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgIGJyZWFrOwogICB9
CkBAIC0xNDAzLDYgKzE0MDksOSBAQCBFbmNvZGVkSW1hZ2VDYWxsYmFjazo6UmVzdWx0IFZpZGVv
U3RyZWFtRW5jb2Rlcjo6T25FbmNvZGVkSW1hZ2UoCiAgIGlmIChjb2RlY19zcGVjaWZpY19pbmZv
ICYmCiAgICAgICAoY29kZWNfc3BlY2lmaWNfaW5mby0+Y29kZWNUeXBlID09IGtWaWRlb0NvZGVj
VlA4IHx8CiAgICAgICAgY29kZWNfc3BlY2lmaWNfaW5mby0+Y29kZWNUeXBlID09IGtWaWRlb0Nv
ZGVjSDI2NCB8fAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgICBjb2RlY19zcGVjaWZpY19p
bmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY1IHx8CisjZW5kaWYKICAgICAgICBjb2Rl
Y19zcGVjaWZpY19pbmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNHZW5lcmljKSkgewogICAg
IHNpbXVsY2FzdF9pZCA9IGVuY29kZWRfaW1hZ2UuU3BhdGlhbEluZGV4KCkudmFsdWVfb3IoMCk7
CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9s
aWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlM2RmMDk4YzdlMjU0OTRh
ZDFkYTg4MDc1ZmE4N2Q2YzJmZmM4M2ZlLi4zM2IxYjEzYjI5MzZjNDkxNGQwMmViZjNmNDJlOTZh
ZGY4Mjk1MDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2Vi
cnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOSw2ICsyOSwy
OCBAQAogCQk0MTAwOTFEQzI0MkUwQkJDMDBDNUVEQTIgLyogdmlkZW9fY29kZWNfdHlwZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRDcyNDJF
MEJCQjAwQzVFREEyIC8qIHZpZGVvX2NvZGVjX3R5cGUuaCAqLzsgfTsKIAkJNDEwMDkxREQyNDJF
MEJCQzAwQzVFREEyIC8qIHJlY29yZGFibGVfZW5jb2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRDgyNDJFMEJCQjAwQzVFREEy
IC8qIHJlY29yZGFibGVfZW5jb2RlZF9mcmFtZS5oICovOyB9OwogCQk0MTAwOTFERTI0MkUwQkJD
MDBDNUVEQTIgLyogdmlkZW9fZnJhbWVfdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRDkyNDJFMEJCQjAwQzVFREEyIC8qIHZpZGVvX2Zy
YW1lX3R5cGUuaCAqLzsgfTsKKwkJNDEwMDkxRTYyNDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3Jt
YXRfaDI2NS5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxMDA5MUUwMjQyRTJBQTEwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuY2MgKi87IH07CisJ
CTQxMDA5MUU3MjQyRTJBQTMwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUUxMjQyRTJBQTIwMEM1
RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuaCAqLzsgfTsKKwkJNDEwMDkxRTkyNDJFMkFBMzAwQzVF
REEyIC8qIGgyNjVfc3BzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwMDkxRTMyNDJFMkFBMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNl
ci5oICovOyB9OworCQk0MTAwOTFFRDI0MkUzMTc0MDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bw
c190cmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTAwOTFFQjI0MkUzMTczMDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgg
Ki87IH07CisJCTQxMDA5MUVFMjQyRTMxNzQwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3Ry
YWNrZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTAwOTFFQzI0MkUzMTczMDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjICov
OyB9OworCQk0MTAwOTFGODI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRjAyNDJF
MzYyMDAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLzsgfTsKKwkJNDEwMDkxRjkyNDJF
MzYyMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRjEyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVf
c3BzX3BhcnNlci5oICovOyB9OworCQk0MTAwOTFGQTI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9w
cHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTAwOTFGMjI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmggKi87IH07CisJ
CTQxMDA5MUZCMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuY2MgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGMzI0MkUzNjIxMDBD
NUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmNjICovOyB9OworCQk0MTAwOTFGQzI0MkUzNjIyMDBD
NUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRjQyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfdnBzX3Bh
cnNlci5jYyAqLzsgfTsKKwkJNDEwMDkxRkQyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFG
NTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9jb21tb24uaCAqLzsgfTsKKwkJNDEwMDkxRkUyNDJF
MzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRjYyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVf
dnBzX3BhcnNlci5oICovOyB9OworCQk0MTAwOTFGRjI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9j
b21tb24uY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTAwOTFGNzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uY2MgKi87IH07CisJCTQxMDA5
MjA5MjQyRTNBNDYwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTIwMDI0MkUzQTQzMDBDNUVE
QTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICovOyB9OworCQk0MTAwOTIwQTI0MkUzQTQ2MDBD
NUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDEyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0gy
NjVQcm9maWxlTGV2ZWxJZC5tbSAqLzsgfTsKKwkJNDEwMDkyMEIyNDJFM0E0NjAwQzVFREEyIC8q
IFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDIyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3Bl
Y2lmaWNJbmZvSDI2NS5oICovOyB9OworCQk0MTAwOTIwQzI0MkUzQTQ2MDBDNUVEQTIgLyogUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MjAzMjQyRTNBNDQwMEM1RURBMiAvKiBSVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oICovOyB9OworCQk0MTAwOTIwRDI0MkUzQTQ2MDBD
NUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDQyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVv
RW5jb2RlckgyNjUuaCAqLzsgfTsKKwkJNDEwMDkyMEUyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gy
NjVQcm9maWxlTGV2ZWxJZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwMDkyMDUyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJ
ZC5oICovOyB9OworCQk0MTAwOTIwRjI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVy
SDI2NS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MDA5MjA2MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1tICovOyB9Owor
CQk0MTAwOTIxMDI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MjA3MjQyRTNB
NDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tICovOyB9OworCQk0MTAwOTIxMTI0
MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDgyNDJFM0E0NjAwQzVF
REEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSAqLzsgfTsKIAkJNDEwMkY2QTEyMTI3
MzI2MjAwNkFFOEQ3IC8qIHJlbWl4X3Jlc2FtcGxlLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMkY2OTcyMTI3MzI2MDAwNkFFOEQ3IC8qIHJlbWl4
X3Jlc2FtcGxlLmNjICovOyB9OwogCQk0MTAyRjZBMjIxMjczMjYyMDA2QUU4RDcgLyogYXVkaW9f
bGV2ZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MDJGNjk4MjEyNzMyNjAwMDZBRThENyAvKiBhdWRpb19sZXZlbC5oICovOyB9OwogCQk0MTAyRjZB
NDIxMjczMjYyMDA2QUU4RDcgLyogYXVkaW9fbGV2ZWwuY2MgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAyRjY5QTIxMjczMjYxMDA2QUU4RDcgLyogYXVk
aW9fbGV2ZWwuY2MgKi87IH07CkBAIC0zOTI2LDYgKzM5NDgsMzEgQEAKIAkJNDEwMDkxRDcyNDJF
MEJCQjAwQzVFREEyIC8qIHZpZGVvX2NvZGVjX3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gdmlkZW9fY29kZWNfdHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTAwOTFEODI0MkUwQkJCMDBDNUVEQTIgLyogcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1l
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJlY29yZGFibGVfZW5jb2RlZF9m
cmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwOTFEOTI0MkUwQkJCMDBD
NUVEQTIgLyogdmlkZW9fZnJhbWVfdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSB2aWRlb19mcmFtZV90eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MDA5MURGMjQyRTJBQTEwMEM1RURBMiAvKiBjb250cmlidXRpbmdfc291cmNlcy5jYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGNvbnRyaWJ1dGluZ19zb3VyY2VzLmNjOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFMDI0MkUyQUExMDBDNUVEQTIgLyog
cnRwX2Zvcm1hdF9oMjY1LmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
cnRwX2Zvcm1hdF9oMjY1LmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFF
MTI0MkUyQUEyMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHJ0cF9mb3JtYXRfaDI2NS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTAwOTFFMjI0MkUyQUEyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV9zcHNfcGFyc2VyLmNjOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFMzI0MkUyQUEyMDBDNUVEQTIgLyog
aDI2NV9zcHNfcGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVf
c3BzX3BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFNDI0MkUy
QUEyMDBDNUVEQTIgLyogY29udHJpYnV0aW5nX3NvdXJjZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gY29udHJpYnV0aW5nX3NvdXJjZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDEwMDkxRUIyNDJFMzE3MzAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNf
dHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBoMjY1X3Zwc19zcHNf
cHBzX3RyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRUMyNDJF
MzE3MzAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjAyNDJFMzYyMDAwQzVFREEyIC8qIGgy
NjVfc3BzX3BhcnNlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgy
NjVfc3BzX3BhcnNlci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjEy
NDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBoMjY1X3Nwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDEwMDkxRjIyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBoMjY1X3Bwc19wYXJzZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjMyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfcHBz
X3BhcnNlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfcHBz
X3BhcnNlci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjQyNDJFMzYy
MTAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IGgyNjVfdnBzX3BhcnNlci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDEwMDkxRjUyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVfY29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMDA5MUY2MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Zwc19wYXJzZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaDI2NV92cHNfcGFyc2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MUY3MjQyRTM2MjIwMEM1RURBMiAvKiBo
MjY1X2NvbW1vbi5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVf
Y29tbW9uLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTIwMDI0MkUzQTQz
MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSVENWaWRlb0RlY29kZXJIMjY1Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxMDA5MjAxMjQyRTNBNDQwMEM1RURBMiAvKiBSVENIMjY1UHJvZmlsZUxldmVsSWQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENIMjY1UHJvZmls
ZUxldmVsSWQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjAyMjQyRTNB
NDQwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjAzMjQyRTNBNDQwMEM1RURBMiAvKiBSVENDb2RlY1Nw
ZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSAiUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMDA5MjA0MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJI
MjY1LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1ZpZGVvRW5jb2Rlckgy
NjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDUyNDJFM0E0NTAwQzVF
REEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSVENIMjY1UHJvZmlsZUxldmVsSWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDEwMDkyMDYyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENWaWRlb0VuY29kZXJI
MjY1Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTIwNzI0MkUzQTQ1MDBD
NUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFJUQ1ZpZGVvRGVjb2RlckgyNjUubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMDA5MjA4MjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MDBDREU1MjFDQUNGRDAwMEY5Qjg3RCAvKiBMUENfZml0LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuYzsgbmFtZSA9IExQQ19maXQuYzsgcGF0aCA9IHNpbGsvTFBDX2ZpdC5jOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTAwQ0RFODIxQ0FEMDMzMDBGOUI4N0QgLyogdnFfc3NlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHZxX3NzZS5oOyBwYXRoID0geDg2L3Zx
X3NzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwQ0RFQjIxQ0FEMUY1MDBG
OUI4N0QgLyogcGl0Y2hfc3NlNF8xLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9
IHBpdGNoX3NzZTRfMS5jOyBwYXRoID0geDg2L3BpdGNoX3NzZTRfMS5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNzg1Nyw2ICs3OTA0LDIxIEBACiAvKiBFbmQgUEJYRnJhbWV3b3Jr
c0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCisJ
CTQxMDA5MUVGMjQyRTM2MDgwMEM1RURBMiAvKiBoMjY1ICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0MTAwOTFGNzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2
NV9jb21tb24uY2MgKi8sCisJCQkJNDEwMDkxRjUyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfY29t
bW9uLmggKi8sCisJCQkJNDEwMDkxRjMyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNl
ci5jYyAqLywKKwkJCQk0MTAwOTFGMjI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2Vy
LmggKi8sCisJCQkJNDEwMDkxRjAyNDJFMzYyMDAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5j
YyAqLywKKwkJCQk0MTAwOTFGMTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmgg
Ki8sCisJCQkJNDEwMDkxRjQyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyAq
LywKKwkJCQk0MTAwOTFGNjI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmggKi8s
CisJCQkpOworCQkJcGF0aCA9IGgyNjU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9
OwogCQk0MTA1RUI2NDIxMkUwMThDMDA4QzBDMjAgLyogbGlidnB4ICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkxMTgsMjMgKzkxODAsMzIgQEAKIAkJCQk0
MTYyMjVGNTIxNjk4MUY0MDBBOTFDOUIgLyogaGVscGVycy5oICovLAogCQkJCTQxNzk1M0FDMjE2
OTgyM0QwMDI4MjY2QiAvKiBuYWx1X3Jld3JpdGVyLmNjICovLAogCQkJCTQxMTUyMUQ1MjE2OTgy
MjAwMDBBQkFGNyAvKiBuYWx1X3Jld3JpdGVyLmggKi8sCi0JCQkJNDE3OTUzQjIyMTY5ODI0MTAw
MjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8sCiAJCQkJNDE2
MjI1RjEyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NC5oICovLAog
CQkJCTQxNjIyNUVEMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQu
bW0gKi8sCisJCQkJNDE3OTUzQjIyMTY5ODI0MTAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NCtQcml2YXRlLmggKi8sCisJCQkJNDEwMDkyMDIyNDJFM0E0NDAwQzVFREEyIC8qIFJU
Q0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oICovLAorCQkJCTQxMDA5MjA4MjQyRTNBNDYwMEM1RURB
MiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUubW0gKi8sCisJCQkJNDEwMDkyMDMyNDJFM0E0
NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmggKi8sCiAJCQkJ
NDE3OTUzQjMyMTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
LmggKi8sCiAJCQkJNDE3OTUzQUQyMTY5ODIzRTAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0Rl
Y29kZXJGYWN0b3J5Lm0gKi8sCiAJCQkJNDE2MjI1RjcyMTY5ODFGNDAwQTkxQzlCIC8qIFJUQ0Rl
ZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggKi8sCiAJCQkJNDE3OTUzQUYyMTY5ODIzRjAwMjgy
NjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0gKi8sCiAJCQkJNDExNTIxRDQy
MTY5ODIxRjAwMEFCQUY3IC8qIFJUQ0gyNjRQcm9maWxlTGV2ZWxJZC5oICovLAogCQkJCTQxMTUy
MUQ2MjE2OTgyMjAwMDBBQkFGNyAvKiBSVENIMjY0UHJvZmlsZUxldmVsSWQubW0gKi8sCisJCQkJ
NDEwMDkyMDUyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oICovLAor
CQkJCTQxMDA5MjAxMjQyRTNBNDQwMEM1RURBMiAvKiBSVENIMjY1UHJvZmlsZUxldmVsSWQubW0g
Ki8sCiAJCQkJNDE2MjI1RjIyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3Rv
cnlIMjY0LmggKi8sCiAJCQkJNDE3OTUzQjAyMTY5ODI0MDAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVj
b2RlckZhY3RvcnlIMjY0Lm0gKi8sCiAJCQkJNDE2MjI1RjMyMTY5ODFGMzAwQTkxQzlCIC8qIFJU
Q1ZpZGVvRGVjb2RlckgyNjQuaCAqLywKIAkJCQk0MTYyMjVGNDIxNjk4MUYzMDBBOTFDOUIgLyog
UlRDVmlkZW9EZWNvZGVySDI2NC5tbSAqLywKKwkJCQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIg
LyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICovLAorCQkJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURB
MiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tICovLAogCQkJCTQxNjIyNUVGMjE2OTgxRjIwMEE5
MUM5QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5oICovLAogCQkJCTQxNzk1M0IxMjE2
OTgyNDAwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tICovLAogCQkJCTQx
NjIyNUVDMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0LmggKi8sCiAJCQkJ
NDE2MjI1RjYyMTY5ODFGNDAwQTkxQzlCIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjQubW0gKi8sCisJ
CQkJNDEwMDkyMDQyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCAqLywK
KwkJCQk0MTAwOTIwNjI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSAq
LywKIAkJCQk0MTYyMjVFRTIxNjk4MUYyMDBBOTFDOUIgLyogVUlEZXZpY2UrSDI2NFByb2ZpbGUu
aCAqLywKIAkJCQk0MTc5NTNBRTIxNjk4MjNGMDAyODI2NkIgLyogVUlEZXZpY2UrSDI2NFByb2Zp
bGUubW0gKi8sCiAJCQkpOwpAQCAtMTE3MDksNiArMTE3ODAsNyBAQAogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJNDEzMUM0MkEyMzRDN0Q3MDAwMjhBNjE1IC8qIGdlbmVyaWNfZnJhbWVfZGVzY3JpcHRv
ciAqLywKIAkJCQk1Q0REODM0MTFFNDMyNTY0MDA2MjFFOTIgLyogaDI2NCAqLywKKwkJCQk0MTAw
OTFFRjI0MkUzNjA4MDBDNUVEQTIgLyogaDI2NSAqLywKIAkJCQk0MTEwOUFBNDFFNUZBMTgxMDBD
MDk1NUEgLyogaW5jbHVkZSAqLywKIAkJCQk1Q0REODM2NTFFNDMyNUMyMDA2MjFFOTIgLyogbGli
eXV2ICovLAogCQkJCTVDNEI0QzEwMUU0MzFGNzUwMDI2NTFDOCAvKiBiaXRyYXRlX2FkanVzdGVy
LmNjICovLApAQCAtMTI2MzIsNiArMTI3MDQsOCBAQAogCQkJCTVDRDI4NUU5MUU2QTYzOUYwMDk0
RkRDOCAvKiBoMjY0X3Nwcm9wX3BhcmFtZXRlcl9zZXRzLmggKi8sCiAJCQkJNUNERDgzOUExRTQz
OUE2RjAwNjIxRTkyIC8qIGgyNjRfc3BzX3Bwc190cmFja2VyLmNjICovLAogCQkJCTVDREQ4MzlC
MUU0MzlBNkYwMDYyMUU5MiAvKiBoMjY0X3Nwc19wcHNfdHJhY2tlci5oICovLAorCQkJCTQxMDA5
MUVDMjQyRTMxNzMwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgKi8sCisJ
CQkJNDEwMDkxRUIyNDJFMzE3MzAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5o
ICovLAogCQkJCTVDREQ4MzlDMUU0MzlBNkYwMDYyMUU5MiAvKiBoaXN0b2dyYW0uY2MgKi8sCiAJ
CQkJNUNERDgzOUQxRTQzOUE2RjAwNjIxRTkyIC8qIGhpc3RvZ3JhbS5oICovLAogCQkJCTVDREQ4
MzlFMUU0MzlBNkYwMDYyMUU5MiAvKiBpbnRlcl9mcmFtZV9kZWxheS5jYyAqLywKQEAgLTEzMjY3
LDExICsxMzM0MSwxNCBAQAogCQk1Q0REODdGQTFFNDNCRTI2MDA2MjFFOTIgLyogc291cmNlICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1Q0REODhFQjFF
NDNCRjI1MDA2MjFFOTIgLyogcnRjcF9wYWNrZXQgKi8sCiAJCQkJNDEzMUM0QzgyMzRDODRBMTAw
MjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGltZV9yZWNlaXZlci5jYyAqLywKIAkJCQk0MTMx
QzRDRDIzNEM4NEEyMDAyOEE2MTUgLyogYWJzb2x1dGVfY2FwdHVyZV90aW1lX3JlY2VpdmVyLmgg
Ki8sCiAJCQkJNDEzMUM0Q0MyMzRDODRBMjAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGlt
ZV9zZW5kZXIuY2MgKi8sCiAJCQkJNDEzMUM0Q0UyMzRDODRBMjAwMjhBNjE1IC8qIGFic29sdXRl
X2NhcHR1cmVfdGltZV9zZW5kZXIuaCAqLywKIAkJCQk1Q0REODdGQzFFNDNCRTNDMDA2MjFFOTIg
LyogYnl0ZV9pby5oICovLAorCQkJCTQxMDA5MURGMjQyRTJBQTEwMEM1RURBMiAvKiBjb250cmli
dXRpbmdfc291cmNlcy5jYyAqLywKKwkJCQk0MTAwOTFFNDI0MkUyQUEyMDBDNUVEQTIgLyogY29u
dHJpYnV0aW5nX3NvdXJjZXMuaCAqLywKIAkJCQk0MTg5MzkwOTI0MkE3MDRDMDA3RkRDNDEgLyog
Y3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MgKi8sCiAJCQkJNDE4OTM5MDQyNDJBNzA0
QjAwN0ZEQzQxIC8qIGNyZWF0ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmggKi8sCiAJCQkJNUNE
RDg3RkUxRTQzQkUzQzAwNjIxRTkyIC8qIGR0bWZfcXVldWUuY2MgKi8sCkBAIC0xMzI5MCw2ICsx
MzM2Nyw4IEBACiAJCQkJNUNERDg4MEUxRTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3Jf
Y29ycmVjdGlvbl9pbnRlcm5hbC5oICovLAogCQkJCTVDREQ4ODBGMUU0M0JFM0MwMDYyMUU5MiAv
KiBmb3J3YXJkX2Vycm9yX2NvcnJlY3Rpb24uY2MgKi8sCiAJCQkJNUNERDg4MTAxRTQzQkUzQzAw
NjIxRTkyIC8qIGZvcndhcmRfZXJyb3JfY29ycmVjdGlvbi5oICovLAorCQkJCTQxMDA5MUUyMjQy
RTJBQTIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgKi8sCisJCQkJNDEwMDkxRTMyNDJF
MkFBMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oICovLAogCQkJCTVDREQ4ODE1MUU0M0JF
M0MwMDYyMUU5MiAvKiBwYWNrZXRfbG9zc19zdGF0cy5jYyAqLywKIAkJCQk1Q0REODgxNjFFNDNC
RTNDMDA2MjFFOTIgLyogcGFja2V0X2xvc3Nfc3RhdHMuaCAqLywKIAkJCQk1Q0REODgxQTFFNDNC
RTNDMDA2MjFFOTIgLyogcmVjZWl2ZV9zdGF0aXN0aWNzX2ltcGwuY2MgKi8sCkBAIC0xMzI5Nyw3
ICsxMzM3Niw2IEBACiAJCQkJNUNERDg4MUUxRTQzQkUzQzAwNjIxRTkyIC8qIHJlbW90ZV9udHBf
dGltZV9lc3RpbWF0b3IuY2MgKi8sCiAJCQkJNUNEMjg1RjgxRTZBNjQ1MjAwOTRGREM4IC8qIHJ0
Y3BfbmFja19zdGF0cy5jYyAqLywKIAkJCQk1Q0QyODVGOTFFNkE2NDUyMDA5NEZEQzggLyogcnRj
cF9uYWNrX3N0YXRzLmggKi8sCi0JCQkJNUNERDg4RUIxRTQzQkYyNTAwNjIxRTkyIC8qIHJ0Y3Bf
cGFja2V0ICovLAogCQkJCTVDREQ4ODIxMUU0M0JFM0MwMDYyMUU5MiAvKiBydGNwX3BhY2tldC5j
YyAqLywKIAkJCQk1Q0REODgyMjFFNDNCRTNDMDA2MjFFOTIgLyogcnRjcF9wYWNrZXQuaCAqLywK
IAkJCQk1Q0REODgyNDFFNDNCRTNDMDA2MjFFOTIgLyogcnRjcF9yZWNlaXZlci5jYyAqLywKQEAg
LTEzMzIwLDYgKzEzMzk4LDggQEAKIAkJCQk0MTg5MzkwMzI0MkE3MDRBMDA3RkRDNDEgLyogcnRw
X2Rlc2NyaXB0b3JfYXV0aGVudGljYXRpb24uaCAqLywKIAkJCQk1Q0REODgyRTFFNDNCRTNDMDA2
MjFFOTIgLyogcnRwX2Zvcm1hdF9oMjY0LmNjICovLAogCQkJCTVDREQ4ODJGMUU0M0JFM0MwMDYy
MUU5MiAvKiBydHBfZm9ybWF0X2gyNjQuaCAqLywKKwkJCQk0MTAwOTFFMDI0MkUyQUExMDBDNUVE
QTIgLyogcnRwX2Zvcm1hdF9oMjY1LmNjICovLAorCQkJCTQxMDA5MUUxMjQyRTJBQTIwMEM1RURB
MiAvKiBydHBfZm9ybWF0X2gyNjUuaCAqLywKIAkJCQk1Q0REODgzMDFFNDNCRTNDMDA2MjFFOTIg
LyogcnRwX2Zvcm1hdF92aWRlb19nZW5lcmljLmNjICovLAogCQkJCTVDREQ4ODMxMUU0M0JFM0Mw
MDYyMUU5MiAvKiBydHBfZm9ybWF0X3ZpZGVvX2dlbmVyaWMuaCAqLywKIAkJCQk1Q0REODgzNTFF
NDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF92cDguY2MgKi8sCkBAIC0xNDYyNCw2ICsxNDcw
NCw3IEBACiAJCQkJNUNEMjg1QTcxRTZBNjM0MzAwOTRGREM4IC8qIGFlY19zdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNERDg1RTgxRTQzQjgxMDAwNjIxRTkyIC8qIGFlY21fY29yZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1RTkxRTQzQjgxMDAwNjIxRTkyIC8qIGFlY21fZGVmaW5l
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkxRTcyNDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9m
b3JtYXRfaDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MjcxRTRBOTlEMjAwNDAzOTk1
IC8qIGFlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MjQxRTRBOTlEMjAwNDAzOTk1IC8q
IGFlc19nY21fb3NzbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MjYxRTRBOTlEMjAwNDAz
OTk1IC8qIGFlc19pY20uaCBpbiBIZWFkZXJzICovLApAQCAtMTQ2NzIsNiArMTQ3NTMsNyBAQAog
CQkJCTVDRDI4NTQ1MUU2QTYxRDIwMDk0RkRDOCAvKiBhdWRpb19kZWNvZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0QyODU0MzFFNkE2MUQyMDA5NEZEQzggLyogYXVkaW9fZGVjb2Rlcl9mYWN0
b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5MzhEQTI0MkE2OUNDMDA3RkRDNDEgLyogcXVh
bGl0eV9zY2FsZXJfcmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUZBMjQyRTM2
MjIwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjlC
Rjk4MjA1MUM4MjEwMEFCRjBCOSAvKiBhdWRpb19kZWNvZGVyX2ZhY3RvcnlfdGVtcGxhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxOUM4M0U4MUZFMjQ4MzUwMDQwQzMwRiAvKiBhdWRpb19kZWNv
ZGVyX2c3MTEuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDA5MURFMjQyRTBCQkMwMEM1RURBMiAv
KiB2aWRlb19mcmFtZV90eXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTE0NjkxLDYgKzE0NzczLDcg
QEAKIAkJCQk0MTMxQzNDMjIzNEI5N0I0MDAyOEE2MTUgLyogYXVkaW9fZGVjb2Rlcl9tdWx0aV9j
aGFubmVsX29wdXNfaW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTNBMjEyNDJBNzVDMTAw
N0ZEQzQxIC8qIGR0bHNfdHJhbnNwb3J0X2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
ODkzOUNBMjQyQTczMzcwMDdGREM0MSAvKiB1c2VkX2lkcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDEwMDkyMEQyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4QzYxMUU0M0M2MDkwMDYyMUU5MiAvKiBhdWRpb19kZWNvZGVyX29w
dXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MkYyMUZFMjBFQjUwMDQwQzMwRiAvKiBhdWRp
b19kZWNvZGVyX29wdXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODkzOUQ3MjQyQTczMzcwMDdG
REM0MSAvKiB0cmFja19tZWRpYV9pbmZvX21hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDc1OCwx
MCArMTQ4NDEsMTIgQEAKIAkJCQk0MTg5Mzk1QzI0MkE3MUY1MDA3RkRDNDEgLyogbWluX3ZpZGVv
X2JpdHJhdGVfZXhwZXJpbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBRDAxRTQzQzIz
OTAwNjIxRTkyIC8qIGF1ZGlvX3NlbmRfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0Qy
ODRCMjFFNkE1RjlGMDA5NEZEQzggLyogYXVkaW9fc2VuZF9zdHJlYW0uaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMDA5MUU5MjQyRTJBQTMwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4QzRGMUU0M0M1OEUwMDYyMUU5MiAvKiBhdWRpb19zaW5rLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEE5MjFFNDNDMDBGMDA2MjFFOTIgLyogYXVkaW9fc2lu
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJGQTAyMzRCODhBNjAwMjhBNjE1IC8qIGF1ZGlv
X3NvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTM5NUYyNDJBNzFGNTAwN0ZEQzQxIC8q
IHF1YWxpdHlfcmFtcHVwX2V4cGVyaW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MjBC
MjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4QUQzMUU0M0MyMzkwMDYyMUU5MiAvKiBhdWRpb19zdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNEMjg0QjMxRTZBNUY5RjAwOTRGREM4IC8qIGF1ZGlvX3N0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkYwNTIzNEI4ODIwMDAyOEE2MTUgLyogYXVkaW9fdHJh
Y2suaCBpbiBIZWFkZXJzICovLApAQCAtMTQ5ODMsNiArMTUwNjgsNyBAQAogCQkJCTQxM0EyMTNF
MUZFMEYwRUYwMDM3M0U5OSAvKiBla3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Qjk3MUU0
M0MyQjUwMDYyMUU5MiAvKiBlbmNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4N0I2MUU0
M0JDMDUwMDYyMUU5MiAvKiBlbmNvZGVfbHBjX3N3Yi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEw
MDkyMDkyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4QTk2MUU0M0MwMEYwMDYyMUU5MiAvKiBlbmNvZGVfbmV0ZXFfaW5wdXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4M0NEMUU0MzlBNkYwMDYyMUU5MiAvKiBlbmNvZGVk
X2ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEwOEJBQzIxMjY4MUM4MDAxRDVEN0IgLyog
ZW5jb2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTAxNCw2ICsxNTEwMCw3IEBACiAJ
CQkJNDEwMkY2QUYyMTI3MzJFNzAwNkFFOEQ3IC8qIGV4cGFuZF91bWFfbG9nZ2VyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MUJFNzFBNjIxNUM0NjM3MDBBN0IxOTYgLyogZXhwci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDg5NEIxRTQzQkYzQTAwNjIxRTkyIC8qIGV4dGVuZGVkX2ppdHRlcl9y
ZXBvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUZFMjQyRTM2MjIwMEM1RURBMiAvKiBo
MjY1X3Zwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OTRFMUU0M0JGM0EwMDYy
MUU5MiAvKiBleHRlbmRlZF9yZXBvcnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkY0NjIz
NEI4ODIwMDAyOEE2MTUgLyogZXh0ZXJuYWxfaG1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
MUMwNzcyMzRCODk4RDAwMjhBNjE1IC8qIGZha2VfY2xvY2suaCBpbiBIZWFkZXJzICovLApAQCAt
MTU0NTMsNiArMTU1NDAsNyBAQAogCQkJCTVDREQ4RkRFMUU0M0NENjYwMDYyMUU5MiAvKiByZW1v
dGVfYml0cmF0ZV9lc3RpbWF0b3Jfc2luZ2xlX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDEzMUM0QjcyMzRDODNERDAwMjhBNjE1IC8qIHJlbW90ZV9lc3RpbWF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDhGRTIxRTQzQ0Q2NjAwNjIxRTkyIC8qIHJlbW90ZV9lc3RpbWF0b3JfcHJv
eHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUY5MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1
X3Nwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0M1MUZFMjQ3QjQwMDQwQzMw
RiAvKiByZW1vdGVfbnRwX3RpbWVfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ1
RTREQTFFRjhDQzlCMDBGQ0Y2RTYgLyogcmVuZGVyX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNEMjg1RDYxRTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9kZWxheV9idWZmZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTU1NzgsNiArMTU2NjYsNyBAQAogCQkJCTVDREQ4ODlFMUU0M0JFM0Mw
MDYyMUU5MiAvKiBydGNwX3NlbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0RUYyMzRD
ODYxMTAwMjhBNjE1IC8qIHJ0Y3Bfc3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5
QzgzMDMxRkUyMEYwMjAwNDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMDA5MUZEMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE5QzgzMDExRkUyMEYwMjAwNDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXJf
Y29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODMwNTFGRTIwRjAyMDA0MEMzMEYgLyog
cnRjcF90cmFuc2NlaXZlcl9pbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQzRTFGRTE5
OTFBMDAzNzNFOTkgLyogUlRDUGVlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMTU2
MjYsNiArMTU3MTUsNyBAQAogCQkJCTQxM0EyNDRGMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRl
b0ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNFNjc4RjIxNjk4N0RCMDBFRjM3RUQgLyog
UlRDVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzRTY3OTEyMTY5ODdEQjAwRUYz
N0VEIC8qIFJUQ1ZpZGVvRnJhbWVCdWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUVE
MjQyRTMxNzQwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxM0EyNDQxMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb0ZyYW1lQnVmZmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ2RjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlk
ZW9SZW5kZXJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NjExRkUxOTkxQTAwMzczRTk5
IC8qIFJUQ1ZpZGVvU291cmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTE1ODE4LDYgKzE1OTA4LDcg
QEAKIAkJCQk0MTMxQzEwMzIzNEI4OUUyMDAyOEE2MTUgLyogc3RyaW5nX2VuY29kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE4OTNBMEEyNDJBNzUzQzAwN0ZEQzQxIC8qIHN1YmJhbmRfbmVhcmVu
ZF9kZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxMDUyMzRCODlFMjAwMjhBNjE1
IC8qIHN0cmluZ190b19udW1iZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MjBDMjQyRTNB
NDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDE4OTNBNDEyNDJBNzZGMjAwN0ZEQzQxIC8qIG9wZXJhdGlvbnNfY2hhaW4u
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMTMyMjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJpbmdf
dXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODkzOTg2MjQyQTcyNTEwMDdGREM0MSAvKiBw
cmlvcl9zaWduYWxfbW9kZWwuaCBpbiBIZWFkZXJzICovLApAQCAtMTU5NTgsNiArMTYwNDksNyBA
QAogCQkJCTQxNjIyNUQzMjE2OTgxODEwMEE5MUM5QiAvKiB2aWRlb19mcmFtZV9idWZmZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMDJGNkNGMjEyNzMzQjcwMDZBRThENyAvKiB2aWRlb19xdWFs
aXR5X29ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODJDNDFGRTIwRENEMDA0MEMz
MEYgLyogdmlkZW9fcmVjZWl2ZV9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MjBF
MjQyRTNBNDYwMEM1RURBMiAvKiBSVENIMjY1UHJvZmlsZUxldmVsSWQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4NUNCMUU0M0I1QzAwMDYyMUU5MiAvKiB2aWRlb19yZWNlaXZlX3N0cmVhbS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjRDMjExRTQzMUY3NTAwMjY1MUM4IC8qIHZpZGVvX3Jl
bmRlcl9mcmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NDZDMUU2QTU3RjQwMDk0RkRD
OCAvKiB2aWRlb19yb3RhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzQ3Niw4ICsxNzU2OCwx
MCBAQAogCQkJCTQxMzFDMDMzMjM0Qjg5OEQwMDI4QTYxNSAvKiBjcnlwdF9zdHJpbmcuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTMxQzNCNjIzNEI5NzEyMDAyOEE2MTUgLyogY3J5cHRvX29wdGlv
bnMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTg5Mzk4QzI0MkE3MjUyMDA3RkRDNDEgLyogbnNf
ZmZ0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkxRkMyNDJFMzYyMjAwQzVFREEyIC8qIGgy
NjVfdnBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjI2MjM0Qjg4MjAwMDI4
QTYxNSAvKiBkYXRhX2NoYW5uZWwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzMxMTIzNEI4
REMyMDAyOEE2MTUgLyogZGF0YV9jaGFubmVsX2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAor
CQkJCTQxMDA5MUY4MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTkyNDFFMTIxMjc1QTMwMDA2MzRGQ0YgLyogZGF0YV9yYXRlLmNjIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE4OTM5NUIyNDJBNzFGNTAwN0ZEQzQxIC8qIG1pbl92aWRlb19i
aXRyYXRlX2V4cGVyaW1lbnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzAyNDIzNEI4OThE
MDAyOEE2MTUgLyogZGF0YV9yYXRlX2xpbWl0ZXIuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3Njc4
LDExICsxNzc3MiwxNCBAQAogCQkJCTQxMDJGNkUwMjEyNzM0MTYwMDZBRThENyAvKiBpMDEwX2J1
ZmZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NDY3MUU2QTU3RjQwMDk0RkRDOCAvKiBp
NDIwX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QzFCMUU0MzFGNzUwMDI2NTFD
OCAvKiBpNDIwX2J1ZmZlcl9wb29sLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkxRUUyNDJF
MzE3NDAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFDMUYxMjM0QjhBNEIwMDI4QTYxNSAvKiBpY2VfY3JlZGVudGlhbHNfaXRlcmF0
b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTg5M0E0QTI0MkE3Nzg5MDA3RkRDNDEgLyogZXZl
bnRfYmFzZWRfZXhwb25lbnRpYWxfbW92aW5nX2F2ZXJhZ2UuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTMxQzNFNjIzNEM3QTA4MDAyOEE2MTUgLyogaWNlX2xvZ2dlci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFCRjU1MjM0Qjg4MjAwMDI4QTYxNSAvKiBpY2Vfc2VydmVyX3BhcnNpbmcuY2Mg
aW4gU291cmNlcyAqLywKKwkJCQk0MTAwOTIxMDI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9E
ZWNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjBFMjM0Qjg4MjAwMDI4QTYx
NSAvKiBpY2VfdHJhbnNwb3J0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkyMTEyNDJFM0E0
NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTQxMzFDMzFBMjM0QjhEQzIwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0X2ZhY3RvcnkuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzFCRjIzNEI4QTRBMDAyOEE2MTUgLyogaWNlX3RyYW5z
cG9ydF9pbnRlcm5hbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxODkzQTVFMjQyQTc3QjgwMDdG
REM0MSAvKiBldmVudF9yYXRlX2NvdW50ZXIuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3NzUwLDYg
KzE3ODQ3LDcgQEAKIAkJCQk1Q0REODdDNTFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX2FuYWx5c2lz
LmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJDMTFFNDNDMkI1MDA2MjFFOTIgLyogbHBjX2Vu
Y29kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3QzcxRTQzQkMwNTAwNjIxRTkyIC8qIGxw
Y19nYWluX3N3Yl90YWJsZXMuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUU2MjQyRTJBQTMw
MEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0NF
RTFGNzlCMzM0MDAzODdCNEQgLyogbHBjX21hc2tpbmdfbW9kZWwuYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDREQ4N0M5MUU0M0JDMDUwMDYyMUU5MiAvKiBscGNfc2hhcGVfc3diMTJfdGFibGVzLmMg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REODdDQjFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX3NoYXBl
X3N3YjE2X3RhYmxlcy5jIGluIFNvdXJjZXMgKi8sCkBAIC0xODAyNSwxMCArMTgxMjMsMTIgQEAK
IAkJCQk0MTc5NTNCNzIxNjk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZh
Y3RvcnkubSBpbiBTb3VyY2VzICovLAogCQkJCTQxNDRCM0Y1MjE2QjA4MUIwMDQzNjNBQyAvKiBS
VENFbmNvZGVkSW1hZ2UrUHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxNzk1M0ZBMjE2
OTg0QkUwMDI4MjY2QiAvKiBSVENFbmNvZGVkSW1hZ2UubSBpbiBTb3VyY2VzICovLAorCQkJCTQx
MDA5MUZCMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTg5MzkxNTI0MkE3MDRFMDA3RkRDNDEgLyogdHJhbnNmb3JtYWJsZV9lbmNvZGVk
X2ZyYW1lLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRDYyMTY5OEExQTAwNDM2M0FDIC8q
IFJUQ0gyNjRQcm9maWxlTGV2ZWxJZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxNDRCM0QzMjE2
OTg5NkQwMDQzNjNBQyAvKiBSVENOYXRpdmVJNDIwQnVmZmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDE0NEIzRDEyMTY5ODk2NzAwNDM2M0FDIC8qIFJUQ05hdGl2ZU11dGFibGVJNDIwQnVmZmVy
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkyMEYyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1Zp
ZGVvRW5jb2RlckgyNjUubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODJCOTFGRTIwRENEMDA0
MEMzMEYgLyogcnRjcF9kZW11eGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGMUEyMzRC
ODgyMDAwMjhBNjE1IC8qIHJ0Y3BfbXV4X2ZpbHRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
RDI4NUZBMUU2QTY0NTIwMDk0RkRDOCAvKiBydGNwX25hY2tfc3RhdHMuY2MgaW4gU291cmNlcyAq
LywKQEAgLTE4MjM2LDYgKzE4MzM2LDcgQEAKIAkJCQk0MTkyNDFFMjIxMjc1QTMwMDA2MzRGQ0Yg
LyogdGltZV9kZWx0YS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTVBMUU0M0JGQjMwMDYy
MUU5MiAvKiB0aW1lX3N0cmV0Y2guY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhEQTFFNDNC
RTNEMDA2MjFFOTIgLyogdGltZV91dGlsLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkyMEEy
NDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFDMTRBMjM0Qjg5RTIwMDI4QTYxNSAvKiB0aW1lX3V0aWxzLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDE5MjQxRTMyMTI3NUEzMDAwNjM0RkNGIC8qIHRpbWVzdGFtcC5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxMzFDMTMzMjM0Qjg5RTIwMDI4QTYxNSAvKiB0aW1lc3RhbXBfYWxp
Z25lci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgzNTQsNiArMTg0NTUsNyBAQAogCQkJCTVDREQ4
MzY3MUU0MzI1RDUwMDYyMUU5MiAvKiB3ZWJydGNfbGlieXV2LmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDEzMUMyN0EyMzRCOENDNDAwMjhBNjE1IC8qIHdlYnJ0Y19tZWRpYV9lbmdpbmUuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTMxQzI3ODIzNEI4Q0M0MDAyOEE2MTUgLyogd2VicnRjX21lZGlh
X2VuZ2luZV9kZWZhdWx0cy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUZGMjQyRTM2MjIw
MEM1RURBMiAvKiBoMjY1X2NvbW1vbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjUwMjM0
Qjg4MjAwMDI4QTYxNSAvKiB3ZWJydGNfc2RwLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJF
RjQyMzRCODgyMDAwMjhBNjE1IC8qIHdlYnJ0Y19zZXNzaW9uX2Rlc2NyaXB0aW9uX2ZhY3Rvcnku
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODZFNDFFNDNCQTI4MDA2MjFFOTIgLyogd2VicnRj
X3ZhZC5jIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA5ZjBhNDA2ZGU0MTQ5
MTgzZjg1MTE2MTI0YjNlZDVjMTliMWVmMmViLi4wOTRkMzNjNzNkMTgyNjZiNmYyZjE5MDYzZDBi
ZjVmZjI2MmJmYWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTMyNSw3ICszMjUsNyBAQCBQYWdl
OjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjZW5kaWYKIAog
I2lmIFVTRShMSUJXRUJSVEMpCi0gICAgbV9saWJXZWJSVENQcm92aWRlci0+c3VwcG9ydHNWUDgo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJSVENWUDhDb2RlY0Vu
YWJsZWQoKSk7CisgICAgbV9saWJXZWJSVENQcm92aWRlci0+c3VwcG9ydHNIMjY1KFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgp
KTsKICNlbmRpZgogCiAgICAgbV9jb3JzRGlzYWJsaW5nUGF0dGVybnMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShwYWdlQ29uZmlndXJhdGlvbi5jb3JzRGlzYWJsaW5nUGF0dGVybnMuc2l6ZSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggZGU3
ZTM4ZDI1ZWIyMzNjODg1YTgxNGZkY2MyMmM2YmMzOGM0NTI0YS4uMWVlMGQyNzcxNTc1MTEyYWRi
ODYwMjRkOTBjMThjMDZjYWI2NjkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKQEAgLTIzNiw4ICsyMzYsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KFdFQl9SVEMpCiAgICAgYm9vbCB3ZWJSVENEVE1GRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNXZWJSVENEVE1GRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0V2ViUlRDRFRNRkVuYWJsZWQoYm9v
bCBpc0VuYWJsZWQpIHsgbV9pc1dlYlJUQ0RUTUZFbmFibGVkID0gaXNFbmFibGVkOyB9Ci0gICAg
Ym9vbCB3ZWJSVENWUDhDb2RlY0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzV2ViUlRDVlA4
Q29kZWNFbmFibGVkOyB9Ci0gICAgdm9pZCBzZXRXZWJSVENWUDhDb2RlY0VuYWJsZWQoYm9vbCBp
c0VuYWJsZWQpIHsgbV9pc1dlYlJUQ1ZQOENvZGVjRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAg
IGJvb2wgd2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENI
MjY1Q29kZWNFbmFibGVkOyB9CisgICAgdm9pZCBzZXRXZWJSVENIMjY1Q29kZWNFbmFibGVkKGJv
b2wgaXNFbmFibGVkKSB7IG1faXNXZWJSVENIMjY1Q29kZWNFbmFibGVkID0gaXNFbmFibGVkOyB9
CiAgICAgYm9vbCBwZWVyQ29ubmVjdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUGVl
ckNvbm5lY3Rpb25FbmFibGVkOyB9CiAgICAgdm9pZCBzZXRQZWVyQ29ubmVjdGlvbkVuYWJsZWQo
Ym9vbCBpc0VuYWJsZWQpIHsgbV9pc1BlZXJDb25uZWN0aW9uRW5hYmxlZCA9IGlzRW5hYmxlZDsg
fQogICAgIGJvb2wgd2ViUlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gbV9pc1dlYlJUQ01ETlNJQ0VDYW5kaWRhdGVzRW5hYmxlZDsgfQpAQCAtNTAyLDcgKzUwMiw3
IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBib29sIG1faXNXZWJSVENE
VE1GRW5hYmxlZCB7IHRydWUgfTsKLSAgICBib29sIG1faXNXZWJSVENWUDhDb2RlY0VuYWJsZWQg
eyB0cnVlIH07CisgICAgYm9vbCBtX2lzV2ViUlRDSDI2NUNvZGVjRW5hYmxlZCB7IHRydWUgfTsK
ICAgICBib29sIG1faXNQZWVyQ29ubmVjdGlvbkVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBt
X2lzV2ViUlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aXNXZWJSVENIMjY0U2ltdWxjYXN0RW5hYmxlZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmgKaW5kZXggYTBiNGNmNzE2ZDU0MGViOWNlYjRhMGU2NzZlZTAyNjQzZmU4
ZWQ5MC4uMjJiMTBkZDQ4MGM4N2Y0ZGNkMDQyZmJjODhjOTk1NGRlMzIwZDc4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpOwogICAgIHZv
aWQgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpOwogCi0gICAgdm9pZCBz
dXBwb3J0c1ZQOChib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNWUDggPSB2YWx1ZTsgfQorICAgIHZv
aWQgc3VwcG9ydHNIMjY1KGJvb2wgdmFsdWUpIHsgbV9zdXBwb3J0c0gyNjUgPSB2YWx1ZTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlz
YWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsgfQogCiAgICAgcnRjOjpSVENDZXJ0
aWZpY2F0ZUdlbmVyYXRvciYgY2VydGlmaWNhdGVHZW5lcmF0b3IoKTsKQEAgLTE0MCw3ICsxNDAs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29u
bmVjdGlvbkZhY3RvcnlJbnRlcmZhY2U+IG1fZmFjdG9yeTsKICAgICBib29sIG1fZGlzYWJsZU5v
bkxvY2FsaG9zdENvbm5lY3Rpb25zIHsgZmFsc2UgfTsKLSAgICBib29sIG1fc3VwcG9ydHNWUDgg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9zdXBwb3J0c0gyNjUgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9lbmFibGVMb2dnaW5nIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAK
aW5kZXggNGU1NTM4OGVhZGUxMDk4YWU5MWJmYjQ5NjZkYTQ0Zjg5NmM4YTM0Mi4uYzczNzE3NDRm
NzhlODZmZDUzNGFhOTkyYjI4NWQ1OWQ1Y2YxMTZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2Eu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlckNvY29hLmNwcApAQCAtNTQsNyArNTQsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpj
cmVhdGVEZWNvZAogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIGNv
ZGVjU3VwcG9ydCA9IG1fc3VwcG9ydHNWUDggPyB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6
SDI2NEFuZFZQOCA6IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0OworICAgIGF1dG8g
Y29kZWNTdXBwb3J0ID0gbV9zdXBwb3J0c0gyNjUgPyB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9y
dDo6SDI2NFZQOEFuZEgyNjUgOiB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQ
ODsKICAgICByZXR1cm4gd2VicnRjOjpjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShjb2RlY1N1
cHBvcnQpOwogfQogCkBAIC02Miw3ICs2Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZp
ZGVvRW5jb2RlckZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZUVuY29kCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGF1dG8gY29kZWNTdXBwb3J0ID0g
bV9zdXBwb3J0c1ZQOCA/IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4IDog
d2VicnRjOjpXZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjQ7CisgICAgYXV0byBjb2RlY1N1cHBvcnQg
PSBtX3N1cHBvcnRzSDI2NSA/IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0VlA4QW5k
SDI2NSA6IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4OwogICAgIHJldHVy
biB3ZWJydGM6OmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KGNvZGVjU3VwcG9ydCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA5NDVkZGZkNTc2ZDI2ZmUzYjgy
NzhjZDI2OTBlYzBmYTRlOGY1ZWY2Li42ODVjZDM1MGU2MjU2OGNkZjY5ZDg2NjQyYmIyYWM5NDJk
ODBmMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01NTMsNyArNTUz
LDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkK
ICAgICBhdXRvJiBydGNQcm92aWRlciA9IHBhZ2UubGliV2ViUlRDUHJvdmlkZXIoKTsKICAgICBX
ZWJDb3JlOjp1c2VSZWFsUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KHJ0Y1Byb3ZpZGVyKTsKICAg
ICBydGNQcm92aWRlci5kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKTsKLSAgICBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlJUQ1ZQOENvZGVjRW5h
YmxlZCh0cnVlKTsKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQodHJ1ZSk7CiAgICAgcGFnZS5zZXR0aW5ncygpLnNl
dFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkKHRydWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGM2ZmRkYjYxMjBmMmM5NThiMzAyMTU1MjIy
MGI4OTkxZmFiMzIyZWYuLmMwZTQzZTBlYjAwMmE0MzBiNTVmMDExY2QzMDQ3NjA2NmM3MmM2ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtNTgxLDE0ICs1
ODEsMTQgQEAgSW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRW5hYmxlZDoKICAg
d2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogCi1XZWJSVENWUDhDb2RlY0VuYWJsZWQ6CitXZWJSVENIMjY1Q29k
ZWNFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogdHJ1ZQogICB3ZWJjb3Jl
QmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25kaXRpb246IEVOQUJMRShXRUJf
UlRDKQotICBodW1hblJlYWRhYmxlTmFtZTogIldlYlJUQyBWUDggY29kZWMiCi0gIGh1bWFuUmVh
ZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBXZWJSVEMgVlA4IGNvZGVjIgotICBjYXRlZ29yeTog
aW50ZXJuYWwKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJXZWJSVEMgSDI2NSBjb2RlYyIKKyAgaHVt
YW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFdlYlJUQyBIMjY1IGNvZGVjIgorICBjYXRl
Z29yeTogZXhwZXJpbWVudGFsCiAKIFdlYlJUQ1BsYXRmb3JtQ29kZWNzSW5HUFVQcm9jZXNzRW5h
YmxlZDoKICAgdHlwZTogYm9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCAyMjQzODRhMmIzNWNmMTQ0YzBmM2U3NjIzY2ZkYjQ3MWI1YmFjODky
Li40M2I4MDc5YmYyOTM1NDg2Njk1ODUzNzJhY2RjM2E0NGM4OWE1ZWEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzY2Miw2ICszNjYyLDEw
IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYgc3RvcmUpCiAgICAgaWYgKG1fZHJhd2luZ0FyZWEpCiAgICAgICAgIG1fZHJhd2luZ0Fy
ZWEtPnVwZGF0ZVByZWZlcmVuY2VzKHN0b3JlKTsKIAorI2lmIFVTRShMSUJXRUJSVEMpCisgICAg
bV9wYWdlLT5saWJXZWJSVENQcm92aWRlcigpLnN1cHBvcnRzSDI2NShSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjVDb2RlY0VuYWJsZWQoKSk7CisjZW5k
aWYKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAvLyBGSVhNRTogdXNlR1BVUHJvY2Vz
c0Zvck1lZGlhIHNob3VsZCBiZSBhIFJ1bnRpbWVFbmFibGVkRmVhdHVyZSBzaW5jZSBpdCdzIGds
b2JhbC4KICAgICBzdGF0aWNfY2FzdDxXZWJNZWRpYVN0cmF0ZWd5Jj4ocGxhdGZvcm1TdHJhdGVn
aWVzKCktPm1lZGlhU3RyYXRlZ3koKSkuc2V0VXNlR1BVUHJvY2VzcyhzZXR0aW5ncy51c2VHUFVQ
cm9jZXNzRm9yTWVkaWEoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmQyNTNmNjViNjVlN2MzMmNiMDFjOGNlY2E1ZTY4
Nzc1OTIyMzkwZi4uNjM5MDQwYmQ0ZDk3MzQwMzJjYmFjNGQ3NzljMzI2YzFmMjk4YTY3MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA0LTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBXZWJSVEMgSEVWQwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MjgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICAqIHdlYnJ0Yy9oMjY1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2VicnRjL2gyNjUuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQtMDEgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1bXAgbGlid2VicnRjIHRvIE04
MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZmVmYmU5MDhlM2Y0ZWU1MGU4YjQxZTQ4N2M0OTdmOTM1
OGZlN2M4MC4uZWIxNjkzM2I4ZmE4N2M1NTNlMzlkM2Q0ZjU2ZDFiOTNiYzZlMzFjNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xNzc4LDYgKzE3NzgsOSBAQCB3ZWJraXQub3JnL2IvMTQ2MTgyIGVk
aXRpbmcvc2VsZWN0aW9uL2xlYWstZG9jdW1lbnQtd2l0aC1zZWxlY3Rpb24taW5zaWRlLmh0bWwg
WwogIyBNZWRpYSBTZXNzaW9ucyBpcyBub3QgeWV0IGVuYWJsZWQgYnkgZGVmYXVsdDogRU5BQkxF
KE1FRElBX1NFU1NJT04pCiBtZWRpYS9zZXNzaW9uIFsgU2tpcCBdCiAKKyMgRXhwZXJpbWVudGFs
IEgyNjUgc3VwcG9ydC4KK3dlYnJ0Yy9oMjY1Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCiB3ZWJy
dGMvc2ltdWxjYXN0LWgyNjQuaHRtbCBbIFNsb3cgXQogCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6YXRpb25Tb3VyY2Vz
Lmh0dHBzLmh0bWwgWyBTbG93IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZjk4M2JhZjliMzNlMDIxOTYxOTQ3ZTgzYjZhM2E2ZGVmZWRlYzMzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1ZpZGVvIHNob3VsZCBiZSBydW5uaW5nLCBnbyB0byBibGFjayBhbmQgcnVubmlu
Zy4KK0ZvbGxvd2luZywgc2hvdWxkIGJlIGEgc25hcHNob3Qgb2YgdGhlIHZpZGVvLCBhIGJsYWNr
IGZyYW1lIGFuZCBhIHNuYXBzaG90IG9mIHRoZSB2aWRlby4KKyAgCisKK1BBU1MgSDI2NSBpbiBn
ZXRDYXBhYmlsaXRpZXMgCitQQVNTIFZlcmlmeSBIMjY1IGFjdGl2YXRpb24gCitQQVNTIFNldHRp
bmcgdmlkZW8gZXhjaGFuZ2UgCitQQVNTIEVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29u
bmVjdGVkIAorUEFTUyBUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNr
IAorUEFTUyBUcmFjayBpcyBkaXNhYmxlZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrIAorUEFTUyBU
cmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2
NS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmU3ZTFjNDEyMDg0NGFlOTRlNjg1MzRlY2M2ZjM4ZTY3YTExNjY2
Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS5odG1sCkBAIC0w
LDAgKzEsOTQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAg
IDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlRlc3RpbmcgbXV0aW5nIHZp
ZGVvPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAg
ICAgPGRpdj5WaWRlbyBzaG91bGQgYmUgcnVubmluZywgZ28gdG8gYmxhY2sgYW5kIHJ1bm5pbmcu
PC9kaXY+CisgICAgICAgIDxkaXY+Rm9sbG93aW5nLCBzaG91bGQgYmUgYSBzbmFwc2hvdCBvZiB0
aGUgdmlkZW8sIGEgYmxhY2sgZnJhbWUgYW5kIGEgc25hcHNob3Qgb2YgdGhlIHZpZGVvLjwvZGl2
PgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0i
MzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRlbz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMSIg
d2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8Y2FudmFzIGlkPSJj
YW52YXMyIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52
YXMgaWQ9ImNhbnZhczMiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAg
ICAgPHNjcmlwdCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+
Cit2YXIgaGFzSDI2NSA9IGZhbHNlOwordGVzdCgoKSA9PiB7CisgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xlYXJQZWVyQ29ubmVjdGlvbkZhY3Rv
cnkoKTsKKworICAgIGNvbnN0IGNvZGVjcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMo
InZpZGVvIikuY29kZWNzOworICAgIGhhc0gyNjUgPSBjb2RlY3Muc29tZSgoY29kZWMpID0+IHsg
cmV0dXJuIGNvZGVjLm1pbWVUeXBlID09ICJ2aWRlby9IMjY1IjsgfSk7CisgICAgYXNzZXJ0X3Ry
dWUoaGFzSDI2NSk7Cit9LCAiSDI2NSBpbiBnZXRDYXBhYmlsaXRpZXMiKTsKKworaWYgKGhhc0gy
NjUpIHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAgICAgcGMuYWRkVHJhbnNjZWl2ZXIo
InZpZGVvIik7CisgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gYXdhaXQgcGMuY3JlYXRlT2Zm
ZXIoKTsKKyAgICAgICAgcGMuY2xvc2UoKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoZGVzY3JpcHRp
b24uc2RwLmluZGV4T2YoIkgyNjUiKSAhPT0gLTEsICJIMjY1IGNvZGVjIGlzIGluIHRoZSBTRFAi
KTsKKyAgICB9LCAiVmVyaWZ5IEgyNjUgYWN0aXZhdGlvbiIpCisgCisgICAgdmFyIHRyYWNrOwor
ICAgIHZhciByZW1vdGVUcmFjazsKKyAgICB2YXIgcmVjZWl2aW5nQ29ubmVjdGlvbjsKKyAgICBw
cm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzoge3dpZHRoOiAzMjAsIGhlaWdodDogMjQwLCBmYWNp
bmdNb2RlOiAiZW52aXJvbm1lbnQifX0pLnRoZW4oKGxvY2FsU3RyZWFtKSA9PiB7CisgICAgICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAg
ICAgICAgIHRyYWNrID0gbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKyAgICAKKyAg
ICAgICAgICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxT
dHJlYW0pOworICAgICAgICAgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOwor
ICAgICAgICAgICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVu
dCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50
LnRyYWNrOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVh
bXNbMF0pOworICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0sIHsgb2Jz
ZXJ2ZU9mZmVyIDogKG9mZmVyKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIG9mZmVyLnNkcCA9
IHNldENvZGVjKG9mZmVyLnNkcCwgIkgyNjUiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG9mZmVyOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
ICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgMjAwMCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSkudGhlbigocmVtb3RlU3RyZWFtKSA9PiB7Cisg
ICAgICAgICAgICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07CisgICAgICAgICAgICBy
ZXR1cm4gdmlkZW8ucGxheSgpOworICAgICAgICB9KTsKKyAgICB9LCAiU2V0dGluZyB2aWRlbyBl
eGNoYW5nZSIpOworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgaWYgKHJlY2Vp
dmluZ0Nvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVjdGVkIikKKyAgICAgICAg
ICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNl
KChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24u
b25jb25uZWN0aW9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHJl
Y2VpdmluZ0Nvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVjdGVkIikKKyAgICAg
ICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHNl
dFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCAyMDAwKTsKKyAgICAgICAg
fSk7CisgICAgfSwgIkVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29ubmVjdGVkIik7CisK
KyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgcmV0dXJuIGNoZWNrVmlkZW9C
bGFjayhmYWxzZSwgY2FudmFzMSwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBlbmFibGVkLCB2
aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+
IHsKKyAgICAgICAgdHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAgICAgICByZXR1cm4gY2hlY2tW
aWRlb0JsYWNrKHRydWUsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZGlzYWJs
ZWQsIHZpZGVvIHNob3VsZCBiZSBibGFjayIpOworCisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9
PiB7CisgICAgICAgIHRyYWNrLmVuYWJsZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gY2hlY2tW
aWRlb0JsYWNrKGZhbHNlLCBjYW52YXMyLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGVuYWJs
ZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgMiIpOworfQorICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395246</attachid>
            <date>2020-04-02 00:21:48 -0700</date>
            <delta_ts>2020-04-02 03:12:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204283-20200402092146.patch</filename>
            <type>text/plain</type>
            <size>256513</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA0ZDU0MmMzNmQ1MjViZmUyNjk4NWZiYjQzOTY5NTU5OGY2OGY5MWMxLi5mMzgy
ZGUwODBhNDg5MTU1ZjgzYTliZWM3NjM4NjkwNWI5ZThhNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjYgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQg
Zm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgSDI2NSBwYWNrZXRpemF0aW9uL2RlcGFja2V0aXphdGlvbiBhbmQgT2JqQyBI
MjY1IGVuY29kZXIvZGVjb2Rlci4KKyAgICAgICAgU3VwcG9ydCBpcyBzd2l0Y2hhYmxlIHVzaW5n
IGEgYm9vbGVhbiBnaXZlbiB0byB0aGUgZGVjb2Rlci9lbmNvZGVyIGZhY3Rvcmllcy4KKworICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaDoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2M6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmg6CisgICAg
ICAgICh3ZWJydGM6OlZpZGVvQ29kZWNIMjY1OjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYzoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZp
Zy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5j
b2Rlcl9jb25maWcuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9i
dWlsZC5nbmk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jYWxsL3J0cF9wYXlsb2FkX3BhcmFt
cy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbjoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjOiBB
ZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29t
bW9uLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9wcHNfcGFyc2VyLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1v
bl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYzogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaDog
QWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zw
c19wYXJzZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVv
L2gyNjUvaDI2NV92cHNfcGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
bWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9t
ZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL2NyZWF0ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2Vy
LmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL2gyNjVfc3BzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKHdlYnJ0Yzo6SDI2NVNwc1Bh
cnNlcjo6d2lkdGgpOgorICAgICAgICAod2VicnRjOjpIMjY1U3BzUGFyc2VyOjpoZWlnaHQpOgor
ICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1h
dC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF9mb3JtYXRfaDI2NS5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaDogQWRkZWQuCisgICAgICAgICh3ZWJy
dGM6OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXQ6OlBhY2tldCk6CisgICAgICAgICh3ZWJydGM6
OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXRVbml0OjpQYWNrZXRVbml0KToKKyAgICAgICAgKHdl
YnJ0Yzo6VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1Ojp+VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1
KToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9z
ZW5kZXJfdmlkZW8uY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmg6IEFkZGVk
LgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9m
cmFtZS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gy
NjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaDogQWRkZWQu
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3Zp
ZGVvX2NvZGVjX2ludGVyZmFjZS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaDoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuY2M6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uY2M6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uaDoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4cGVyaW1lbnRzL21pbl92aWRlb19iaXRy
YXRlX2V4cGVyaW1lbnQuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFV0aWxpdGllcy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMubW06CisgICAgICAgICh3ZWJydGM6OmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0
b3J5KToKKyAgICAgICAgKHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkpOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmguCisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tOiBBZGRlZC4KKyAgICAg
ICAgKC1bUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXSk6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGluaXRX
aXRoSDI2NTpdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnkgc3Vw
cG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
IGNyZWF0ZURlY29kZXI6XSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lmg6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0Rl
ZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0Vu
Y29kZXJGYWN0b3J5IGluaXRXaXRoSDI2NTpdKToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRW
aWRlb0VuY29kZXJGYWN0b3J5IGNyZWF0ZUVuY29kZXI6XSk6CisgICAgICAgICgtW1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5IHN1cHBvcnRlZENvZGVjc10pOgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxl
dmVsSWQuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW06IEFkZGVkLgorICAgICAgICAq
IFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0Rl
Y29kZXJIMjY1Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5tbTogQWRkZWQuCisgICAgICAg
IChSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXM6OlJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyk6Cisg
ICAgICAgIChoMjY1RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKC1bUlRD
VmlkZW9EZWNvZGVySDI2NSBpbml0XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUg
ZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHN0YXJ0RGVjb2RlV2l0
aE51bWJlck9mQ29yZXM6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVjb2Rl
Om1pc3NpbmdGcmFtZXM6Y29kZWNTcGVjaWZpY0luZm86cmVuZGVyVGltZU1zOl0pOgorICAgICAg
ICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHNldENhbGxiYWNrOl0pOgorICAgICAgICAoLVtSVENW
aWRlb0RlY29kZXJIMjY1IHJlbGVhc2VEZWNvZGVyXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVj
b2RlckgyNjUgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJIMjY1IGNvbmZpZ3VyZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgc2V0VmlkZW9Gb3JtYXQ6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2Rl
ckgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBpbml0V2l0aENvZGVjSW5mbzpdKToKKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2Rlckgy
NjUgc3RhcnRFbmNvZGVXaXRoU2V0dGluZ3M6bnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBlbmNvZGU6Y29kZWNTcGVjaWZpY0luZm86ZnJhbWVUeXBlczpd
KToKKyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRDYWxsYmFjazpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRCaXRyYXRlOmZyYW1lcmF0ZTpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSByZWxlYXNlRW5jb2Rlcl0pOgorICAgICAgICAoLVtS
VENWaWRlb0VuY29kZXJIMjY1IHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl0pOgor
ICAgICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAg
ICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IHNldEJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgc2V0RW5jb2RlckJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgZnJhbWVXYXNFbmNvZGVkOmZsYWdzOnNhbXBsZUJ1ZmZlcjp3
aWR0aDpoZWlnaHQ6cmVuZGVyVGltZU1zOnRpbWVzdGFtcDpyb3RhdGlvbjpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzY2FsaW5nU2V0dGluZ3NdKToKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5j
YzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvbmFsdV9yZXdyaXRlci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbToKKyAgICAgICAgKHdlYnJ0Yzo6
T2JqQ1ZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0
b3J5Lm1tOgorICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRl
VmlkZW9FbmNvZGVyKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19z
dHJlYW1fcmVjZWl2ZXIuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlk
ZW9fc3RyZWFtX3JlY2VpdmVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9zZW5k
X3N0YXRpc3RpY3NfcHJveHkuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby92aWRl
b19yZWNlaXZlX3N0cmVhbS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVv
X3N0cmVhbV9lbmNvZGVyLmNjOgorICAgICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDIwLTA0LTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4gYW5kIFZpY3RvciBNLiBKYXF1ZXogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBC
dW1wIGxpYndlYnJ0YyB0byBNODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkODczNWE4ZGMzMDQ4YTAzMzY3Nzkw
MTUzMTc1MDFlOTdiMzdlMjNkLi5mMDMzZmU3MjExZWU4NTQ5YjM3NDJiMWQyOTI5Nzg1ZWZiNmJm
YThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9y
IFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBydW50aW1lIGZsYWcgZm9yIEgyNjUgaW4gbGlldSBvZiBWUDggYW5kIHBpcGUg
aXQgdG8gbGlid2VicnRjIGZhY3Rvcmllcy4KKyAgICAgICAgVGVzdDogd2VicnRjL2gyNjUuaHRt
bAorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fZGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlcik6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3
ZWJSVENIMjY1Q29kZWNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29h
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURl
Y29kZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6
OmNyZWF0ZUVuY29kZXJGYWN0b3J5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgor
CiAyMDIwLTA0LTAxICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgogCiAgICAg
ICAgIE5vdGlmeSBhY2Nlc3NpYmlsaXR5IHdoZW4gYSBub2RlIGlzIHJlbW92ZWQgZnJvbSBpdHMg
YW5jZXN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyNmNhYTU5YmY5ZGVlMGE5NDRmMGUwMGEyNDJhOGZmNzgw
NjExMGMuLmU1MmNmYTYyMmUyMWY4ZWY0YzgxYmIwZGY3YTk2N2QwNzhkZTEyMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIFdlYlJUQyBIRVZDCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyODMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgVlA4
IHJ1bnRpbWUgZmxhZyBhbmQgYWRkIGEgSDM2NSBydW50aW1lIGZsYWcgaW5zdGVhZC4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMpOgorCiAyMDIwLTA0LTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVwcmVjYXRlIFdLV2Vic2l0ZURhdGFTdG9yZS5faW5k
ZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFr
ZUxpc3RzLnR4dAppbmRleCAxZTZkNDhhNjRmZjhkN2UyMDI4ODA5ZGQ3ZGU4YjRiNjE1N2QwMmQx
Li43MGNjYzliZDBlMWQ4ZDU3Y2JmZGM1ZmVhNzJmZTlhYWU1MjAzODY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMudHh0CkBAIC0xNDA0LDYgKzE0MDQsNyBAQCB0
YXJnZXRfY29tcGlsZV9vcHRpb25zKHdlYnJ0YyBQUklWQVRFCiAKIHRhcmdldF9jb21waWxlX2Rl
ZmluaXRpb25zKHdlYnJ0YyBQUklWQVRFCiAgIE9QRU5TU0xfTk9fQVNNCisgIERJU0FCTEVfSDI2
NQogICBEWU5BTUlDX0FOTk9UQVRJT05TX0VOQUJMRUQ9MQogICBFWFBBVF9SRUxBVElWRV9QQVRI
CiAgIEhBVkVfTFJJTlQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5o
CmluZGV4IDEyZGNmYWMxYjlhNjg2ODc5MjBhZWJjODA0NWI2MmM1NzQ0OTJiZTcuLmM0ZTQ1ZGJk
YzBhNDk5MjcxMTNiMGU1MTAxZTU0Y2VlZTkwNTdhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBl
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3Zp
ZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaApAQCAtMjIsNiArMjIsOSBAQCBlbnVtIFZpZGVvQ29kZWNU
eXBlIHsKICAga1ZpZGVvQ29kZWNWUDksCiAgIGtWaWRlb0NvZGVjQVYxLAogICBrVmlkZW9Db2Rl
Y0gyNjQsCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBrVmlkZW9Db2RlY0gyNjUsCisjZW5kaWYK
ICAga1ZpZGVvQ29kZWNNdWx0aXBsZXgsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVj
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVv
X2NvZGVjcy92aWRlb19jb2RlYy5jYwppbmRleCBkMDMwODJiOTFlMzhjNDdiNGQ0YjE4MGYwZDIz
NThjMzkxMzFkMzk5Li41NGY3ODkwMDQ2NjJmODRjZjE1MTBhOTFjM2Y1NWU0ZDA3Mjk0NTFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkv
dmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2MKQEAgLTI1
LDYgKzI1LDkgQEAgY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lVnA5W10gPSAiVlA5IjsKIC8v
IGZyb3plbi4KIGNvbnN0ZXhwciBjaGFyIGtQYXlsb2FkTmFtZUF2MVtdID0gIkFWMVgiOwogY29u
c3RleHByIGNoYXIga1BheWxvYWROYW1lSDI2NFtdID0gIkgyNjQiOworI2lmbmRlZiBESVNBQkxF
X0gyNjUKK2NvbnN0ZXhwciBjaGFyIGtQYXlsb2FkTmFtZUgyNjVbXSA9ICJIMjY1IjsKKyNlbmRp
ZgogY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lR2VuZXJpY1tdID0gIkdlbmVyaWMiOwogY29u
c3RleHByIGNoYXIga1BheWxvYWROYW1lTXVsdGlwbGV4W10gPSAiTXVsdGlwbGV4IjsKIH0gIC8v
IG5hbWVzcGFjZQpAQCAtNTYsNiArNTksMTcgQEAgYm9vbCBWaWRlb0NvZGVjSDI2NDo6b3BlcmF0
b3I9PShjb25zdCBWaWRlb0NvZGVjSDI2NCYgb3RoZXIpIGNvbnN0IHsKICAgICAgICAgICBudW1i
ZXJPZlRlbXBvcmFsTGF5ZXJzID09IG90aGVyLm51bWJlck9mVGVtcG9yYWxMYXllcnMpOwogfQog
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorYm9vbCBWaWRlb0NvZGVjSDI2NTo6b3BlcmF0b3I9PShj
b25zdCBWaWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsKKyAgcmV0dXJuIChmcmFtZURyb3Bw
aW5nT24gPT0gb3RoZXIuZnJhbWVEcm9wcGluZ09uICYmCisgICAgICAgICAga2V5RnJhbWVJbnRl
cnZhbCA9PSBvdGhlci5rZXlGcmFtZUludGVydmFsICYmCisgICAgICAgICAgdnBzTGVuID09IG90
aGVyLnZwc0xlbiAmJiBzcHNMZW4gPT0gb3RoZXIuc3BzTGVuICYmCisgICAgICAgICAgcHBzTGVu
ID09IG90aGVyLnBwc0xlbiAmJgorICAgICAgICAgIChzcHNMZW4gPT0gMCB8fCBtZW1jbXAoc3Bz
RGF0YSwgb3RoZXIuc3BzRGF0YSwgc3BzTGVuKSA9PSAwKSAmJgorICAgICAgICAgIChwcHNMZW4g
PT0gMCB8fCBtZW1jbXAocHBzRGF0YSwgb3RoZXIucHBzRGF0YSwgcHBzTGVuKSA9PSAwKSk7Cit9
CisjZW5kaWYKKwogYm9vbCBTcGF0aWFsTGF5ZXI6Om9wZXJhdG9yPT0oY29uc3QgU3BhdGlhbExh
eWVyJiBvdGhlcikgY29uc3QgewogICByZXR1cm4gKHdpZHRoID09IG90aGVyLndpZHRoICYmIGhl
aWdodCA9PSBvdGhlci5oZWlnaHQgJiYKICAgICAgICAgICBtYXhGcmFtZXJhdGUgPT0gb3RoZXIu
bWF4RnJhbWVyYXRlICYmCkBAIC0xMTUsNiArMTI5LDE4IEBAIGNvbnN0IFZpZGVvQ29kZWNIMjY0
JiBWaWRlb0NvZGVjOjpIMjY0KCkgY29uc3QgewogICByZXR1cm4gY29kZWNfc3BlY2lmaWNfLkgy
NjQ7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitWaWRlb0NvZGVjSDI2NSogVmlkZW9Db2Rl
Yzo6SDI2NSgpIHsKKyAgUlRDX0RDSEVDS19FUShjb2RlY1R5cGUsIGtWaWRlb0NvZGVjSDI2NSk7
CisgIHJldHVybiAmY29kZWNfc3BlY2lmaWNfLkgyNjU7Cit9CisKK2NvbnN0IFZpZGVvQ29kZWNI
MjY1JiBWaWRlb0NvZGVjOjpIMjY1KCkgY29uc3QgeworICBSVENfRENIRUNLX0VRKGNvZGVjVHlw
ZSwga1ZpZGVvQ29kZWNIMjY1KTsKKyAgcmV0dXJuIGNvZGVjX3NwZWNpZmljXy5IMjY1OworfQor
I2VuZGlmCisKIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5bG9hZFN0cmluZyhWaWRlb0NvZGVj
VHlwZSB0eXBlKSB7CiAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6
CkBAIC0xMjUsNiArMTUxLDEwIEBAIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5bG9hZFN0cmlu
ZyhWaWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgICAgICByZXR1cm4ga1BheWxvYWROYW1lQXYxOwog
ICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZUgyNjQ7
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAgICAg
cmV0dXJuIGtQYXlsb2FkTmFtZUgyNjU7CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjTXVs
dGlwbGV4OgogICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZU11bHRpcGxleDsKICAgICBjYXNlIGtW
aWRlb0NvZGVjR2VuZXJpYzoKQEAgLTE0MSw2ICsxNzEsMTAgQEAgVmlkZW9Db2RlY1R5cGUgUGF5
bG9hZFN0cmluZ1RvQ29kZWNUeXBlKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKSB7CiAgICAgcmV0
dXJuIGtWaWRlb0NvZGVjQVYxOwogICBpZiAoYWJzbDo6RXF1YWxzSWdub3JlQ2FzZShuYW1lLCBr
UGF5bG9hZE5hbWVIMjY0KSkKICAgICByZXR1cm4ga1ZpZGVvQ29kZWNIMjY0OworI2lmbmRlZiBE
SVNBQkxFX0gyNjUKKyAgaWYgKGFic2w6OkVxdWFsc0lnbm9yZUNhc2UobmFtZSwga1BheWxvYWRO
YW1lSDI2NSkpCisgICAgcmV0dXJuIGtWaWRlb0NvZGVjSDI2NTsKKyNlbmRpZgogICBpZiAoYWJz
bDo6RXF1YWxzSWdub3JlQ2FzZShuYW1lLCBrUGF5bG9hZE5hbWVNdWx0aXBsZXgpKQogICAgIHJl
dHVybiBrVmlkZW9Db2RlY011bHRpcGxleDsKICAgcmV0dXJuIGtWaWRlb0NvZGVjR2VuZXJpYzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Fw
aS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaAppbmRleCAzMzBi
YmJjZTE5OTA1NDBlNzQ1ZDQ3Y2Y2ZWM2NTdkZTI5NDM0Y2I3Li43NDgzYWZkZmFmNzlkODcyOGM4
YzIzODY5NTViN2Q3NjYxZDVhOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmgKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19jb2RlYy5oCkBAIC04NCw2ICs4NCwyMyBAQCBzdHJ1Y3QgVmlkZW9Db2RlY0gyNjQg
ewogICB1aW50OF90IG51bWJlck9mVGVtcG9yYWxMYXllcnM7CiB9OwogCisjaWZuZGVmIERJU0FC
TEVfSDI2NQorc3RydWN0IFZpZGVvQ29kZWNIMjY1IHsKKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFZpZGVvQ29kZWNIMjY1JiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBW
aWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhl
cik7CisgIH0KKyAgYm9vbCBmcmFtZURyb3BwaW5nT247CisgIGludCBrZXlGcmFtZUludGVydmFs
OworICBjb25zdCB1aW50OF90KiB2cHNEYXRhOworICBzaXplX3QgdnBzTGVuOworICBjb25zdCB1
aW50OF90KiBzcHNEYXRhOworICBzaXplX3Qgc3BzTGVuOworICBjb25zdCB1aW50OF90KiBwcHNE
YXRhOworICBzaXplX3QgcHBzTGVuOworfTsKKyNlbmRpZgorCiAvLyBUcmFuc2xhdGVzIGZyb20g
bmFtZSBvZiBjb2RlYyB0byBjb2RlYyB0eXBlIGFuZCB2aWNlIHZlcnNhLgogUlRDX0VYUE9SVCBj
b25zdCBjaGFyKiBDb2RlY1R5cGVUb1BheWxvYWRTdHJpbmcoVmlkZW9Db2RlY1R5cGUgdHlwZSk7
CiBSVENfRVhQT1JUIFZpZGVvQ29kZWNUeXBlIFBheWxvYWRTdHJpbmdUb0NvZGVjVHlwZShjb25z
dCBzdGQ6OnN0cmluZyYgbmFtZSk7CkBAIC05Miw2ICsxMDksOSBAQCB1bmlvbiBWaWRlb0NvZGVj
VW5pb24gewogICBWaWRlb0NvZGVjVlA4IFZQODsKICAgVmlkZW9Db2RlY1ZQOSBWUDk7CiAgIFZp
ZGVvQ29kZWNIMjY0IEgyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBWaWRlb0NvZGVjSDI2
NSBIMjY1OworI2VuZGlmCiB9OwogCiBlbnVtIGNsYXNzIFZpZGVvQ29kZWNNb2RlIHsga1JlYWx0
aW1lVmlkZW8sIGtTY3JlZW5zaGFyaW5nIH07CkBAIC0xNTksNiArMTc5LDEwIEBAIGNsYXNzIFJU
Q19FWFBPUlQgVmlkZW9Db2RlYyB7CiAgIGNvbnN0IFZpZGVvQ29kZWNWUDkmIFZQOSgpIGNvbnN0
OwogICBWaWRlb0NvZGVjSDI2NCogSDI2NCgpOwogICBjb25zdCBWaWRlb0NvZGVjSDI2NCYgSDI2
NCgpIGNvbnN0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgVmlkZW9Db2RlY0gyNjUqIEgyNjUo
KTsKKyAgY29uc3QgVmlkZW9Db2RlY0gyNjUmIEgyNjUoKSBjb25zdDsKKyNlbmRpZgogCiAgcHJp
dmF0ZToKICAgLy8gVE9ETyhodGEpOiBDb25zaWRlciByZXBsYWNpbmcgdGhlIHVuaW9uIHdpdGgg
YSBwb2ludGVyIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2MgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVv
X2VuY29kZXIuY2MKaW5kZXggNDQyN2Q2YzFmMTYxMjhkNGE0N2JlMmJkYzEyNWZlZDk3NDQxMDUx
YS4uYjY2YTRmNDFkMmViNjUyZWQ4ZDM4NzRiOTllNzI4MTQ5ZjUzMzVhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19lbmNvZGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYwpAQCAtNjAsNiArNjAs
MjMgQEAgVmlkZW9Db2RlY0gyNjQgVmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0SDI2NFNldHRpbmdz
KCkgewogICByZXR1cm4gaDI2NF9zZXR0aW5nczsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUK
K1ZpZGVvQ29kZWNIMjY1IFZpZGVvRW5jb2Rlcjo6R2V0RGVmYXVsdEgyNjVTZXR0aW5ncygpIHsK
KyAgVmlkZW9Db2RlY0gyNjUgaDI2NV9zZXR0aW5nczsKKyAgbWVtc2V0KCZoMjY1X3NldHRpbmdz
LCAwLCBzaXplb2YoaDI2NV9zZXR0aW5ncykpOworCisgIC8vIGgyNjVfc2V0dGluZ3MucHJvZmls
ZSA9IGtQcm9maWxlQmFzZTsKKyAgaDI2NV9zZXR0aW5ncy5mcmFtZURyb3BwaW5nT24gPSB0cnVl
OworICBoMjY1X3NldHRpbmdzLmtleUZyYW1lSW50ZXJ2YWwgPSAzMDAwOworICBoMjY1X3NldHRp
bmdzLnNwc0RhdGEgPSBudWxscHRyOworICBoMjY1X3NldHRpbmdzLnNwc0xlbiA9IDA7CisgIGgy
NjVfc2V0dGluZ3MucHBzRGF0YSA9IG51bGxwdHI7CisgIGgyNjVfc2V0dGluZ3MucHBzTGVuID0g
MDsKKworICByZXR1cm4gaDI2NV9zZXR0aW5nczsKK30KKyNlbmRpZgorCiBWaWRlb0VuY29kZXI6
OlNjYWxpbmdTZXR0aW5nczo6U2NhbGluZ1NldHRpbmdzKCkgPSBkZWZhdWx0OwogCiBWaWRlb0Vu
Y29kZXI6OlNjYWxpbmdTZXR0aW5nczo6U2NhbGluZ1NldHRpbmdzKEtPZmYpIDogU2NhbGluZ1Nl
dHRpbmdzKCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNv
ZGVyLmgKaW5kZXggMDY0ZGM4ZmZiNTExM2I4NDYzZWZkZWU4YTM5ZWI1NjJlZTgzY2U5Mi4uY2E3
YTJkOGY5NWFlYmQ2OTYwYzAwNDBhMGNkZjQ4OWEwYTU2OGI2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRl
b19lbmNvZGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmgKQEAgLTMyMCw2ICszMjAsOSBAQCBj
bGFzcyBSVENfRVhQT1JUIFZpZGVvRW5jb2RlciB7CiAgIHN0YXRpYyBWaWRlb0NvZGVjVlA4IEdl
dERlZmF1bHRWcDhTZXR0aW5ncygpOwogICBzdGF0aWMgVmlkZW9Db2RlY1ZQOSBHZXREZWZhdWx0
VnA5U2V0dGluZ3MoKTsKICAgc3RhdGljIFZpZGVvQ29kZWNIMjY0IEdldERlZmF1bHRIMjY0U2V0
dGluZ3MoKTsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0YXRpYyBWaWRlb0NvZGVjSDI2NSBH
ZXREZWZhdWx0SDI2NVNldHRpbmdzKCk7CisjZW5kaWYKIAogICB2aXJ0dWFsIH5WaWRlb0VuY29k
ZXIoKSB7fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRl
b19lbmNvZGVyX2NvbmZpZy5jYwppbmRleCA2ZWZjYmYyYmRkYjcyMTIzZjFkYjZjMmUwMDMwMWM3
NTI5NDIzMDNkLi4wMThlOTNiZWI5MTk2NzBmZmZhOTNlMDhjZWMyMjcxYTgzMGFkNGUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlk
ZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9j
b25maWcuY2MKQEAgLTkzLDYgKzkzLDEwIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNv
ZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbEVuY29kZXJTcGVjaWZpY1NldHRpbmdzKAogICAgIEZp
bGxWaWRlb0NvZGVjVnA4KGNvZGVjLT5WUDgoKSk7CiAgIH0gZWxzZSBpZiAoY29kZWMtPmNvZGVj
VHlwZSA9PSBrVmlkZW9Db2RlY1ZQOSkgewogICAgIEZpbGxWaWRlb0NvZGVjVnA5KGNvZGVjLT5W
UDkoKSk7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB9IGVsc2UgaWYgKGNvZGVjLT5jb2RlY1R5
cGUgPT0ga1ZpZGVvQ29kZWNIMjY1KSB7CisgICAgRmlsbFZpZGVvQ29kZWNIMjY1KGNvZGVjLT5I
MjY1KCkpOworI2VuZGlmCiAgIH0gZWxzZSB7CiAgICAgUlRDX05PVFJFQUNIRUQoKSA8PCAiRW5j
b2RlciBzcGVjaWZpY3Mgc2V0L3VzZWQgZm9yIHVua25vd24gY29kZWMgdHlwZS4iOwogICB9CkBA
IC0xMDMsNiArMTA3LDEzIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNvZGVyU3BlY2lm
aWNTZXR0aW5nczo6RmlsbFZpZGVvQ29kZWNIMjY0KAogICBSVENfTk9UUkVBQ0hFRCgpOwogfQog
CisjaWZuZGVmIERJU0FCTEVfSDI2NQordm9pZCBWaWRlb0VuY29kZXJDb25maWc6OkVuY29kZXJT
cGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjUoCisgICAgVmlkZW9Db2RlY0gyNjUq
IGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAgUlRDX05PVFJFQUNIRUQoKTsKK30KKyNlbmRpZgor
CiB2b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OkZpbGxW
aWRlb0NvZGVjVnA4KAogICAgIFZpZGVvQ29kZWNWUDgqIHZwOF9zZXR0aW5ncykgY29uc3Qgewog
ICBSVENfTk9UUkVBQ0hFRCgpOwpAQCAtMTIyLDYgKzEzMywxNyBAQCB2b2lkIFZpZGVvRW5jb2Rl
ckNvbmZpZzo6SDI2NEVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjQo
CiAgICpoMjY0X3NldHRpbmdzID0gc3BlY2lmaWNzXzsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gy
NjUKK1ZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpIMjY1
RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoCisgICAgY29uc3QgVmlkZW9Db2RlY0gyNjUmIHNwZWNp
ZmljcykKKyAgICA6IHNwZWNpZmljc18oc3BlY2lmaWNzKSB7fQorCit2b2lkIFZpZGVvRW5jb2Rl
ckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjUo
CisgICAgVmlkZW9Db2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAgKmgyNjVfc2V0
dGluZ3MgPSBzcGVjaWZpY3NfOworfQorI2VuZGlmCisKIFZpZGVvRW5jb2RlckNvbmZpZzo6VnA4
RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OlZwOEVuY29kZXJTcGVjaWZpY1NldHRpbmdzKAogICAg
IGNvbnN0IFZpZGVvQ29kZWNWUDgmIHNwZWNpZmljcykKICAgICA6IHNwZWNpZmljc18oc3BlY2lm
aWNzKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5oIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19l
bmNvZGVyX2NvbmZpZy5oCmluZGV4IGVmOGRiMTAwYTMyYTIwNWJiZDlkNmZlNzliMjUzNDJmOTMw
YzRlMDUuLmQ1NTk0ZjM2NjQxYTI1YzQzMDAwYTYzYzg1NjBkZjZhZjcwOGUyOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19j
b2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmln
LmgKQEAgLTg0LDYgKzg0LDkgQEAgY2xhc3MgVmlkZW9FbmNvZGVyQ29uZmlnIHsKICAgICB2aXJ0
dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDgoVmlkZW9Db2RlY1ZQOCogdnA4X3NldHRpbmdzKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDkoVmlkZW9Db2RlY1ZQOSog
dnA5X3NldHRpbmdzKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNIMjY0
KFZpZGVvQ29kZWNIMjY0KiBoMjY0X3NldHRpbmdzKSBjb25zdDsKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CisgICAgdmlydHVhbCB2b2lkIEZpbGxWaWRlb0NvZGVjSDI2NShWaWRlb0NvZGVjSDI2NSog
aDI2NV9zZXR0aW5ncykgY29uc3Q7CisjZW5kaWYKIAogICAgcHJpdmF0ZToKICAgICB+RW5jb2Rl
clNwZWNpZmljU2V0dGluZ3MoKSBvdmVycmlkZSB7fQpAQCAtOTksNiArMTAyLDE3IEBAIGNsYXNz
IFZpZGVvRW5jb2RlckNvbmZpZyB7CiAgICAgVmlkZW9Db2RlY0gyNjQgc3BlY2lmaWNzXzsKICAg
fTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgY2xhc3MgSDI2NUVuY29kZXJTcGVjaWZpY1Nl
dHRpbmdzIDogcHVibGljIEVuY29kZXJTcGVjaWZpY1NldHRpbmdzIHsKKyAgIHB1YmxpYzoKKyAg
ICBleHBsaWNpdCBIMjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3QgVmlkZW9Db2RlY0gy
NjUmIHNwZWNpZmljcyk7CisgICAgdm9pZCBGaWxsVmlkZW9Db2RlY0gyNjUoVmlkZW9Db2RlY0gy
NjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IG92ZXJyaWRlOworCisgICBwcml2YXRlOgorICAgIFZp
ZGVvQ29kZWNIMjY1IHNwZWNpZmljc187CisgIH07CisjZW5kaWYKKwogICBjbGFzcyBWcDhFbmNv
ZGVyU3BlY2lmaWNTZXR0aW5ncyA6IHB1YmxpYyBFbmNvZGVyU3BlY2lmaWNTZXR0aW5ncyB7CiAg
ICBwdWJsaWM6CiAgICAgZXhwbGljaXQgVnA4RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3Qg
VmlkZW9Db2RlY1ZQOCYgc3BlY2lmaWNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9idWlsZF9vdmVycmlkZXMvYnVp
bGQuZ25pCmluZGV4IDY2OTA0NGRiODFjYjIxODViZTM3NGIwYjEwMDI3MDkzYzU2ODNjMzUuLjYw
MjVjZGRkMDQ3ZTA5YjFkMGQyNWUwMzQxYTVmY2M1OTU5NzAyODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWls
ZC5nbmkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYnVp
bGRfb3ZlcnJpZGVzL2J1aWxkLmduaQpAQCAtMzUsNiArMzUsMTIgQEAgbGludF9zdXBwcmVzc2lv
bnNfZmlsZSA9ICIvL3Rvb2xzX3dlYnJ0Yy9hbmRyb2lkL3N1cHByZXNzaW9ucy54bWwiCiAjIHNv
IHdlIGp1c3QgaWdub3JlIHRoYXQgYXNzZXJ0LiBTZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNjQ4OTQ4
IGZvciBtb3JlIGluZm8uCiBpZ25vcmVfZWxmMzJfbGltaXRhdGlvbnMgPSB0cnVlCiAKK2lmIChp
c193aW4gfHwgaXNfaW9zIHx8IGlzX2FuZHJvaWQpIHsKKyAgcnRjX3VzZV9oMjY1ID0gdHJ1ZQor
fSBlbHNlIHsKKyAgcnRjX3VzZV9oMjY1ID0gZmFsc2UKK30KKwogIyBVc2UgYnVuZGxlZCBoZXJt
ZXRpYyBYY29kZSBpbnN0YWxsYXRpb24gbWFpbnRhaW50ZWQgYnkgQ2hyb21pdW0sCiAjIGV4Y2Vw
dCBmb3IgbG9jYWwgaU9TIGJ1aWxkcyB3aGVyZSBpdCdzIHVuc3VwcG9ydGVkLgogaWYgKGhvc3Rf
b3MgPT0gIm1hYyIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2NhbGwvcnRwX3BheWxvYWRfcGFyYW1zLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKaW5k
ZXggMzFjYjc0M2Q5ZDkzNjc2ZTFjNmVlNjg1MDliNjU1ODVhZjE0NGUwNC4uM2FhZGY4OWViODNl
ODY0NDBiZmZhZmE2MmU2NDNkMzM3MmE3MWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5
bG9hZF9wYXJhbXMuY2MKQEAgLTEwNSw2ICsxMDUsMTQgQEAgdm9pZCBQb3B1bGF0ZVJ0cFdpdGhD
b2RlY1NwZWNpZmljcyhjb25zdCBDb2RlY1NwZWNpZmljSW5mbyYgaW5mbywKICAgICAgIH0KICAg
ICAgIHJldHVybjsKICAgICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVv
Q29kZWNIMjY1OiB7CisgICAgICBhdXRvIGgyNjVfaGVhZGVyID0gcnRwLT52aWRlb190eXBlX2hl
YWRlci5lbXBsYWNlPFJUUFZpZGVvSGVhZGVySDI2NT4oKTsKKyAgICAgIGgyNjVfaGVhZGVyLnBh
Y2tldGl6YXRpb25fbW9kZSA9CisgICAgICAgICAgaW5mby5jb2RlY1NwZWNpZmljLkgyNjUucGFj
a2V0aXphdGlvbl9tb2RlOworICAgIH0KKyAgICByZXR1cm47CisjZW5kaWYKICAgICBjYXNlIGtW
aWRlb0NvZGVjTXVsdGlwbGV4OgogICAgIGNhc2Uga1ZpZGVvQ29kZWNHZW5lcmljOgogICAgICAg
cnRwLT5jb2RlYyA9IGtWaWRlb0NvZGVjR2VuZXJpYzsKQEAgLTMwMCw2ICszMDgsOSBAQCB2b2lk
IFJ0cFBheWxvYWRQYXJhbXM6OlNldEdlbmVyaWMoY29uc3QgQ29kZWNTcGVjaWZpY0luZm8qIGNv
ZGVjX3NwZWNpZmljX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgaXNfa2V5ZnJhbWUsIHJ0
cF92aWRlb19oZWFkZXIpOwogICAgICAgfQogICAgICAgcmV0dXJuOworI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyAgICBjYXNlIFZpZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY0gyNjU6CisjZW5kaWYK
ICAgICBjYXNlIFZpZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY011bHRpcGxleDoKICAgICAgIHJl
dHVybjsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduCmluZGV4IGRkZjRjMmQ0OTU5
YWVkZTQxOGQyNWQ1YzhlN2I4MGU1MzYwODM1MGIuLjdkNDg5NmVkN2NlODhiNTM0NWZkYWM4MDQ5
NGJmNWZmOWZlMjcwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vQlVJTEQuZ24KQEAgLTQxLDYg
KzQxLDE5IEBAIHJ0Y19saWJyYXJ5KCJjb21tb25fdmlkZW8iKSB7CiAgICAgInZpZGVvX3JlbmRl
cl9mcmFtZXMuaCIsCiAgIF0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyAr
PSBbCisgICAgICAiaDI2NS9oMjY1X2NvbW1vbi5jYyIsCisgICAgICAiaDI2NS9oMjY1X2NvbW1v
bi5oIiwKKyAgICAgICJoMjY1L2gyNjVfcHBzX3BhcnNlci5jYyIsCisgICAgICAiaDI2NS9oMjY1
X3Bwc19wYXJzZXIuaCIsCisgICAgICAiaDI2NS9oMjY1X3Nwc19wYXJzZXIuY2MiLAorICAgICAg
ImgyNjUvaDI2NV9zcHNfcGFyc2VyLmgiLAorICAgICAgImgyNjUvaDI2NV92cHNfcGFyc2VyLmNj
IiwKKyAgICAgICJoMjY1L2gyNjVfdnBzX3BhcnNlci5oIiwKKyAgICBdCisgIH0KKwogICBkZXBz
ID0gWwogICAgICIuLi9hcGk6c2NvcGVkX3JlZnB0ciIsCiAgICAgIi4uL2FwaS90YXNrX3F1ZXVl
IiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uY2MKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmIyY2FjMjI3NTlkOGJkYmJmZmJmMGY3MTRlOTE0N2U2NDIzYjYzZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nv
bW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICog
IENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9u
YWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBp
biB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5
CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9u
LmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworbmFtZXNwYWNlIEgyNjUgeworCitjb25zdCB1aW50
OF90IGtOYWx1VHlwZU1hc2sgPSAweDdFOworCitzdGQ6OnZlY3RvcjxOYWx1SW5kZXg+IEZpbmRO
YWx1SW5kaWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUpIHsKKyAgLy8gVGhpcyBpcyBzb3J0
YSBsaWtlIEJveWVyLU1vb3JlLCBidXQgd2l0aCBvbmx5IHRoZSBmaXJzdCBvcHRpbWl6YXRpb24g
c3RlcDoKKyAgLy8gZ2l2ZW4gYSAzLWJ5dGUgc2VxdWVuY2Ugd2UncmUgbG9va2luZyBhdCwgaWYg
dGhlIDNyZCBieXRlIGlzbid0IDEgb3IgMCwKKyAgLy8gc2tpcCBhaGVhZCB0byB0aGUgbmV4dCAz
LWJ5dGUgc2VxdWVuY2UuIDBzIGFuZCAxcyBhcmUgcmVsYXRpdmVseSByYXJlLCBzbworICAvLyB0
aGlzIHdpbGwgc2tpcCB0aGUgbWFqb3JpdHkgb2YgcmVhZHMvY2hlY2tzLgorICBzdGQ6OnZlY3Rv
cjxOYWx1SW5kZXg+IHNlcXVlbmNlczsKKyAgaWYgKGJ1ZmZlcl9zaXplIDwga05hbHVTaG9ydFN0
YXJ0U2VxdWVuY2VTaXplKQorICAgIHJldHVybiBzZXF1ZW5jZXM7CisKKyAgY29uc3Qgc2l6ZV90
IGVuZCA9IGJ1ZmZlcl9zaXplIC0ga05hbHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXplOworICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGVuZDspIHsKKyAgICBpZiAoYnVmZmVyW2kgKyAyXSA+IDEpIHsK
KyAgICAgIGkgKz0gMzsKKyAgICB9IGVsc2UgaWYgKGJ1ZmZlcltpICsgMl0gPT0gMSAmJiBidWZm
ZXJbaSArIDFdID09IDAgJiYgYnVmZmVyW2ldID09IDApIHsKKyAgICAgIC8vIFdlIGZvdW5kIGEg
c3RhcnQgc2VxdWVuY2UsIG5vdyBjaGVjayBpZiBpdCB3YXMgYSAzIG9mIDQgYnl0ZSBvbmUuCisg
ICAgICBOYWx1SW5kZXggaW5kZXggPSB7aSwgaSArIDMsIDB9OworICAgICAgaWYgKGluZGV4LnN0
YXJ0X29mZnNldCA+IDAgJiYgYnVmZmVyW2luZGV4LnN0YXJ0X29mZnNldCAtIDFdID09IDApCisg
ICAgICAgIC0taW5kZXguc3RhcnRfb2Zmc2V0OworCisgICAgICAvLyBVcGRhdGUgbGVuZ3RoIG9m
IHByZXZpb3VzIGVudHJ5LgorICAgICAgYXV0byBpdCA9IHNlcXVlbmNlcy5yYmVnaW4oKTsKKyAg
ICAgIGlmIChpdCAhPSBzZXF1ZW5jZXMucmVuZCgpKQorICAgICAgICBpdC0+cGF5bG9hZF9zaXpl
ID0gaW5kZXguc3RhcnRfb2Zmc2V0IC0gaXQtPnBheWxvYWRfc3RhcnRfb2Zmc2V0OworCisgICAg
ICBzZXF1ZW5jZXMucHVzaF9iYWNrKGluZGV4KTsKKworICAgICAgaSArPSAzOworICAgIH0gZWxz
ZSB7CisgICAgICArK2k7CisgICAgfQorICB9CisKKyAgLy8gVXBkYXRlIGxlbmd0aCBvZiBsYXN0
IGVudHJ5LCBpZiBhbnkuCisgIGF1dG8gaXQgPSBzZXF1ZW5jZXMucmJlZ2luKCk7CisgIGlmIChp
dCAhPSBzZXF1ZW5jZXMucmVuZCgpKQorICAgIGl0LT5wYXlsb2FkX3NpemUgPSBidWZmZXJfc2l6
ZSAtIGl0LT5wYXlsb2FkX3N0YXJ0X29mZnNldDsKKworICByZXR1cm4gc2VxdWVuY2VzOworfQor
CitOYWx1VHlwZSBQYXJzZU5hbHVUeXBlKHVpbnQ4X3QgZGF0YSkgeworICByZXR1cm4gc3RhdGlj
X2Nhc3Q8TmFsdVR5cGU+KChkYXRhICYga05hbHVUeXBlTWFzaykgPj4gMSk7Cit9CisKK3N0ZDo6
dmVjdG9yPHVpbnQ4X3Q+IFBhcnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVu
Z3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dDsKKyAgb3V0LnJlc2VydmUobGVuZ3Ro
KTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDspIHsKKyAgICAvLyBCZSBjYXJl
ZnVsIGFib3V0IG92ZXIvdW5kZXJmbG93IGhlcmUuIGJ5dGVfbGVuZ3RoXyAtIDMgY2FuIHVuZGVy
ZmxvdywgYW5kCisgICAgLy8gaSArIDMgY2FuIG92ZXJmbG93LCBidXQgYnl0ZV9sZW5ndGhfIC0g
aSBjYW4ndCwgYmVjYXVzZSBpIDwgYnl0ZV9sZW5ndGhfCisgICAgLy8gYWJvdmUsIGFuZCB0aGF0
IGV4cHJlc3Npb24gd2lsbCBwcm9kdWNlIHRoZSBudW1iZXIgb2YgYnl0ZXMgbGVmdCBpbgorICAg
IC8vIHRoZSBzdHJlYW0gaW5jbHVkaW5nIHRoZSBieXRlIGF0IGkuCisgICAgaWYgKGxlbmd0aCAt
IGkgPj0gMyAmJiAhZGF0YVtpXSAmJiAhZGF0YVtpICsgMV0gJiYgZGF0YVtpICsgMl0gPT0gMykg
eworICAgICAgLy8gVHdvIHJic3AgYnl0ZXMuCisgICAgICBvdXQucHVzaF9iYWNrKGRhdGFbaSsr
XSk7CisgICAgICBvdXQucHVzaF9iYWNrKGRhdGFbaSsrXSk7CisgICAgICAvLyBTa2lwIHRoZSBl
bXVsYXRpb24gYnl0ZS4KKyAgICAgIGkrKzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gU2luZ2xl
IHJic3AgYnl0ZS4KKyAgICAgIG91dC5wdXNoX2JhY2soZGF0YVtpKytdKTsKKyAgICB9CisgIH0K
KyAgcmV0dXJuIG91dDsKK30KKwordm9pZCBXcml0ZVJic3AoY29uc3QgdWludDhfdCogYnl0ZXMs
IHNpemVfdCBsZW5ndGgsIHJ0Yzo6QnVmZmVyKiBkZXN0aW5hdGlvbikgeworICBzdGF0aWMgY29u
c3QgdWludDhfdCBrWmVyb3NJblN0YXJ0U2VxdWVuY2UgPSAyOworICBzdGF0aWMgY29uc3QgdWlu
dDhfdCBrRW11bGF0aW9uQnl0ZSA9IDB4MDN1OworICBzaXplX3QgbnVtX2NvbnNlY3V0aXZlX3pl
cm9zID0gMDsKKyAgZGVzdGluYXRpb24tPkVuc3VyZUNhcGFjaXR5KGRlc3RpbmF0aW9uLT5zaXpl
KCkgKyBsZW5ndGgpOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsK
KyAgICB1aW50OF90IGJ5dGUgPSBieXRlc1tpXTsKKyAgICBpZiAoYnl0ZSA8PSBrRW11bGF0aW9u
Qnl0ZSAmJgorICAgICAgICBudW1fY29uc2VjdXRpdmVfemVyb3MgPj0ga1plcm9zSW5TdGFydFNl
cXVlbmNlKSB7CisgICAgICAvLyBOZWVkIHRvIGVzY2FwZS4KKyAgICAgIGRlc3RpbmF0aW9uLT5B
cHBlbmREYXRhKGtFbXVsYXRpb25CeXRlKTsKKyAgICAgIG51bV9jb25zZWN1dGl2ZV96ZXJvcyA9
IDA7CisgICAgfQorICAgIGRlc3RpbmF0aW9uLT5BcHBlbmREYXRhKGJ5dGUpOworICAgIGlmIChi
eXRlID09IDApIHsKKyAgICAgICsrbnVtX2NvbnNlY3V0aXZlX3plcm9zOworICAgIH0gZWxzZSB7
CisgICAgICBudW1fY29uc2VjdXRpdmVfemVyb3MgPSAwOworICAgIH0KKyAgfQorfQorCit9ICAv
LyBuYW1lc3BhY2UgSDI2NQorfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9jb21tb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdiYjI3NzRlZTEw
YWIxM2U5MjI1ZDQ0MDVkNTE2OTNhYzcxMDQxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVf
Y29tbW9uLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRo
ZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl
CisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVy
dHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBB
bGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUg
QVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZu
ZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfQ09NTU9OX0hfCisjZGVmaW5lIENPTU1PTl9WSURF
T19IMjY1X0gyNjVfQ09NTU9OX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dmVj
dG9yPgorCisjaW5jbHVkZSAicnRjX2Jhc2UvYnVmZmVyLmgiCisKK25hbWVzcGFjZSB3ZWJydGMg
eworCituYW1lc3BhY2UgSDI2NSB7CisvLyBUaGUgc2l6ZSBvZiBhIGZ1bGwgTkFMVSBzdGFydCBz
ZXF1ZW5jZSB7MCAwIDAgMX0sIHVzZWQgZm9yIHRoZSBmaXJzdCBOQUxVCisvLyBvZiBhbiBhY2Nl
c3MgdW5pdCwgYW5kIGZvciBTUFMgYW5kIFBQUyBibG9ja3MuCitjb25zdCBzaXplX3Qga05hbHVM
b25nU3RhcnRTZXF1ZW5jZVNpemUgPSA0OworCisvLyBUaGUgc2l6ZSBvZiBhIHNob3J0ZW5lZCBO
QUxVIHN0YXJ0IHNlcXVlbmNlIHswIDAgMX0sIHRoYXQgbWF5IGJlIHVzZWQgaWYKKy8vIG5vdCB0
aGUgZmlyc3QgTkFMVSBvZiBhbiBhY2Nlc3MgdW5pdCBvciBhbiBTUFMgb3IgUFBTIGJsb2NrLgor
Y29uc3Qgc2l6ZV90IGtOYWx1U2hvcnRTdGFydFNlcXVlbmNlU2l6ZSA9IDM7CisKKy8vIFRoZSBz
aXplIG9mIHRoZSBOQUxVIHR5cGUgYnl0ZSAoMSkuCitjb25zdCBzaXplX3Qga05hbHVUeXBlU2l6
ZSA9IDE7CisKK2VudW0gTmFsdVR5cGUgOiB1aW50OF90IHsKKyAga1RyYWlsTiA9IDAsCisgIGtU
cmFpbFIgPSAxLAorICBrVHNhTiA9IDIsCisgIGtUc2FSID0gMywKKyAga1N0c2FOID0gNCwKKyAg
a1N0c2FSID0gNSwKKyAga1JhZGxOID0gNiwKKyAga1JhZGxSID0gNywKKyAga0JsYVdMcCA9IDE2
LAorICBrQmxhV1JhZGwgPSAxNywKKyAga0JsYU5McCA9IDE4LAorICBrSWRyV1JhZGwgPSAxOSwK
KyAga0lkck5McCA9IDIwLAorICBrQ3JhID0gMjEsCisgIGtSc3ZJcmFwVmNsMjMgPSAyMywKKyAg
a1ZwcyA9IDMyLAorICBrU3BzID0gMzMsCisgIGtQcHMgPSAzNCwKKyAga0F1ZCA9IDM1LAorICBr
UHJlZml4U2VpID0gMzksCisgIGtTdWZmaXhTZWkgPSA0MCwKKyAga0FQID0gNDgsCisgIGtGVSA9
IDQ5Cit9OworCitlbnVtIFNsaWNlVHlwZSA6IHVpbnQ4X3QgeyBrUCA9IDAsIGtCID0gMSwga0kg
PSAyLCBrU3AgPSAzLCBrU2kgPSA0IH07CisKK3N0cnVjdCBOYWx1SW5kZXggeworICAvLyBTdGFy
dCBpbmRleCBvZiBOQUxVLCBpbmNsdWRpbmcgc3RhcnQgc2VxdWVuY2UuCisgIHNpemVfdCBzdGFy
dF9vZmZzZXQ7CisgIC8vIFN0YXJ0IGluZGV4IG9mIE5BTFUgcGF5bG9hZCwgdHlwaWNhbGx5IHR5
cGUgaGVhZGVyLgorICBzaXplX3QgcGF5bG9hZF9zdGFydF9vZmZzZXQ7CisgIC8vIExlbmd0aCBv
ZiBOQUxVIHBheWxvYWQsIGluIGJ5dGVzLCBjb3VudGluZyBmcm9tIHBheWxvYWRfc3RhcnRfb2Zm
c2V0LgorICBzaXplX3QgcGF5bG9hZF9zaXplOworfTsKKworLy8gUmV0dXJucyBhIHZlY3RvciBv
ZiB0aGUgTkFMVSBpbmRpY2VzIGluIHRoZSBnaXZlbiBidWZmZXIuCitzdGQ6OnZlY3RvcjxOYWx1
SW5kZXg+IEZpbmROYWx1SW5kaWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUpOworCisvLyBH
ZXQgdGhlIE5BTCB0eXBlIGZyb20gdGhlIGhlYWRlciBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2lu
ZyBzdGFydCBzZXF1ZW5jZS4KK05hbHVUeXBlIFBhcnNlTmFsdVR5cGUodWludDhfdCBkYXRhKTsK
KworLy8gTWV0aG9kcyBmb3IgcGFyc2luZyBhbmQgd3JpdGluZyBSQlNQLiBTZWUgc2VjdGlvbiA3
LjQuMiBvZiB0aGUgSDI2NSBzcGVjLgorLy8KKy8vIFRoZSBmb2xsb3dpbmcgc2VxdWVuY2VzIGFy
ZSBpbGxlZ2FsLCBhbmQgbmVlZCB0byBiZSBlc2NhcGVkIHdoZW4gZW5jb2Rpbmc6CisvLyAwMCAw
MCAwMCAtPiAwMCAwMCAwMyAwMAorLy8gMDAgMDAgMDEgLT4gMDAgMDAgMDMgMDEKKy8vIDAwIDAw
IDAyIC0+IDAwIDAwIDAzIDAyCisvLyBBbmQgdGhpbmdzIGluIHRoZSBzb3VyY2UgdGhhdCBsb29r
IGxpa2UgdGhlIGVtdWxhdGlvbiBieXRlIHBhdHRlcm4gKDAwIDAwIDAzKQorLy8gbmVlZCB0byBo
YXZlIGFuIGV4dHJhIGVtdWxhdGlvbiBieXRlIGFkZGVkLCBzbyBpdCdzIHJlbW92ZWQgd2hlbiBk
ZWNvZGluZzoKKy8vIDAwIDAwIDAzIC0+IDAwIDAwIDAzIDAzCisvLworLy8gRGVjb2RpbmcgaXMg
c2ltcGx5IGEgbWF0dGVyIG9mIGZpbmRpbmcgYW55IDAwIDAwIDAzIHNlcXVlbmNlIGFuZCByZW1v
dmluZworLy8gdGhlIDAzIGVtdWxhdGlvbiBieXRlLgorCisvLyBQYXJzZSB0aGUgZ2l2ZW4gZGF0
YSBhbmQgcmVtb3ZlIGFueSBlbXVsYXRpb24gYnl0ZSBlc2NhcGluZy4KK3N0ZDo6dmVjdG9yPHVp
bnQ4X3Q+IFBhcnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKwor
Ly8gV3JpdGUgdGhlIGdpdmVuIGRhdGEgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciwgaW5zZXJ0
aW5nIGFuZCBlbXVsYXRpb24KKy8vIGJ5dGVzIGluIG9yZGVyIHRvIGVzY2FwZSBhbnkgZGF0YSB0
aGUgY291bGQgYmUgaW50ZXJwcmV0ZWQgYXMgYSBzdGFydAorLy8gc2VxdWVuY2UuCit2b2lkIFdy
aXRlUmJzcChjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IGxlbmd0aCwgcnRjOjpCdWZmZXIq
IGRlc3RpbmF0aW9uKTsKK30gIC8vIG5hbWVzcGFjZSBIMjY1Cit9ICAvLyBuYW1lc3BhY2Ugd2Vi
cnRjCisKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9DT01NT05fSF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92
aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5jYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MTg0MTFjZWQzMjdjODRhNjVlYzkzZjRkZmM3YmU5MmNmZjJlMjZiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29t
bW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMjA5IEBACisvKgor
ICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBM
SUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0
aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAq
ICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMg
bWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUg
c291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBz
X3BhcnNlci5oIgorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2lu
Y2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9u
X3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJydGNfYmFzZS9iaXRfYnVmZmVy
LmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgorCisjZGVmaW5lIFJFVFVSTl9FTVBU
WV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJl
dHVybiBhYnNsOjpudWxsb3B0OyAgICAgICAgXAorICB9CisKK25hbWVzcGFjZSB7Citjb25zdCBp
bnQga01heFBpY0luaXRRcERlbHRhVmFsdWUgPSAyNTsKK2NvbnN0IGludCBrTWluUGljSW5pdFFw
RGVsdGFWYWx1ZSA9IC0yNjsKK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsK
KworLy8gR2VuZXJhbCBub3RlOiB0aGlzIGlzIGJhc2VkIG9mZiB0aGUgMDIvMjAxOCB2ZXJzaW9u
IG9mIHRoZSBILjI2NSBzdGFuZGFyZC4KKy8vIFlvdSBjYW4gZmluZCBpdCBvbiB0aGlzIHBhZ2U6
CisvLyBodHRwOi8vd3d3Lml0dS5pbnQvcmVjL1QtUkVDLUguMjY1CisKK2Fic2w6Om9wdGlvbmFs
PEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwcygKKyAgICBj
b25zdCB1aW50OF90KiBkYXRhLAorICAgIHNpemVfdCBsZW5ndGgpIHsKKyAgLy8gRmlyc3QsIHBh
cnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMg
ZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMg
c2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMuMSBvZiB0aGUg
SC4yNjQgc3RhbmRhcmQuCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9
IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVm
ZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICBy
ZXR1cm4gUGFyc2VJbnRlcm5hbCgmYml0X2J1ZmZlcik7Cit9CisKK2Jvb2wgSDI2NVBwc1BhcnNl
cjo6UGFyc2VQcHNJZHMoY29uc3QgdWludDhfdCogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdWludDMyX3QqIHBwc19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dDMyX3QqIHNwc19pZCkgeworICBSVENfRENIRUNLKHBwc19pZCk7CisgIFJUQ19EQ0hFQ0soc3Bz
X2lkKTsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhl
IHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRl
IG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8g
c2VjdGlvbiA3LjMuMSBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIHN0ZDo6dmVjdG9yPHVpbnQ4
X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBy
dGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2Vk
X2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VQcHNJZHNJbnRlcm5hbCgmYml0X2J1ZmZl
ciwgcHBzX2lkLCBzcHNfaWQpOworfQorCithYnNsOjpvcHRpb25hbDx1aW50MzJfdD4gSDI2NVBw
c1BhcnNlcjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3AoCisgICAgY29uc3Qg
dWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoLAorICAgIHVpbnQ4X3QgbmFsdV90eXBl
KSB7CisgIHJ0Yzo6Qml0QnVmZmVyIHNsaWNlX3JlYWRlcihkYXRhLCBsZW5ndGgpOworCisgIC8v
IGZpcnN0X3NsaWNlX3NlZ21lbnRfaW5fcGljX2ZsYWc6IHUoMSkKKyAgdWludDMyX3QgZmlyc3Rf
c2xpY2Vfc2VnbWVudF9pbl9waWNfZmxhZyA9IDA7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAor
ICAgICAgc2xpY2VfcmVhZGVyLlJlYWRCaXRzKCZmaXJzdF9zbGljZV9zZWdtZW50X2luX3BpY19m
bGFnLCAxKSk7CisKKyAgaWYgKG5hbHVfdHlwZSA+PSBIMjY1OjpOYWx1VHlwZTo6a0JsYVdMcCAm
JgorICAgICAgbmFsdV90eXBlIDw9IEgyNjU6Ok5hbHVUeXBlOjprUnN2SXJhcFZjbDIzKSB7Cisg
ICAgLy8gbm9fb3V0cHV0X29mX3ByaW9yX3BpY3NfZmxhZzogdSgxKQorICAgIFJFVFVSTl9FTVBU
WV9PTl9GQUlMKHNsaWNlX3JlYWRlci5Db25zdW1lQml0cygxKSk7CisgIH0KKworICAvLyBzbGlj
ZV9waWNfcGFyYW1ldGVyX3NldF9pZDogdWUodikKKyAgdWludDMyX3Qgc2xpY2VfcGljX3BhcmFt
ZXRlcl9zZXRfaWQgPSAwOworICBpZiAoIXNsaWNlX3JlYWRlci5SZWFkRXhwb25lbnRpYWxHb2xv
bWIoJnNsaWNlX3BpY19wYXJhbWV0ZXJfc2V0X2lkKSkKKyAgICByZXR1cm4gYWJzbDo6bnVsbG9w
dDsKKworICByZXR1cm4gc2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQ7Cit9CisKK2Fic2w6Om9w
dGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZUludGVy
bmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKSB7CisgIFBwc1N0YXRlIHBwczsK
KworICBSRVRVUk5fRU1QVFlfT05fRkFJTChQYXJzZVBwc0lkc0ludGVybmFsKGJpdF9idWZmZXIs
ICZwcHMuaWQsICZwcHMuc3BzX2lkKSk7CisKKyAgdWludDMyX3QgYml0c190bXA7CisgIHVpbnQz
Ml90IGdvbG9tYl9pZ25vcmVkOworICAvLyBlbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWc6IHUoMSkK
KyAgdWludDMyX3QgZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnOworICBSRVRVUk5fRU1QVFlfT05f
RkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnLCAxKSk7
CisgIHBwcy5lbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWcgPSBlbnRyb3B5X2NvZGluZ19tb2RlX2Zs
YWcgIT0gMDsKKyAgLy8gYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVzZW50X2Zs
YWc6IHUoMSkKKyAgdWludDMyX3QgYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVz
ZW50X2ZsYWc7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0X2J1ZmZlci0+UmVh
ZEJpdHMoJmJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnLCAxKSk7
CisgIHBwcy5ib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZyA9Cisg
ICAgICBib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZyAhPSAwOwor
CisgIC8vIG51bV9zbGljZV9ncm91cHNfbWludXMxOiB1ZSh2KQorICB1aW50MzJfdCBudW1fc2xp
Y2VfZ3JvdXBzX21pbnVzMTsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVm
ZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJm51bV9zbGljZV9ncm91cHNfbWludXMxKSk7Cisg
IGlmIChudW1fc2xpY2VfZ3JvdXBzX21pbnVzMSA+IDApIHsKKyAgICB1aW50MzJfdCBzbGljZV9n
cm91cF9tYXBfdHlwZTsKKyAgICAvLyBzbGljZV9ncm91cF9tYXBfdHlwZTogdWUodikKKyAgICBS
RVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFs
R29sb21iKCZzbGljZV9ncm91cF9tYXBfdHlwZSkpOworICAgIGlmIChzbGljZV9ncm91cF9tYXBf
dHlwZSA9PSAwKSB7CisgICAgICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAwOyBpX2dyb3VwIDw9
IG51bV9zbGljZV9ncm91cHNfbWludXMxOworICAgICAgICAgICArK2lfZ3JvdXApIHsKKyAgICAg
ICAgLy8gcnVuX2xlbmd0aF9taW51czFbaUdyb3VwXTogdWUodikKKyAgICAgICAgUkVUVVJOX0VN
UFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xv
bWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChzbGljZV9ncm91
cF9tYXBfdHlwZSA9PSAxKSB7CisgICAgICAvLyBUT0RPKHNwcmFuZyk6IEltcGxlbWVudCBzdXBw
b3J0IGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisgICAgICAvLyBTZWUgOC4y
LjIuMiBTcGVjaWZpY2F0aW9uIGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisg
ICAgfSBlbHNlIGlmIChzbGljZV9ncm91cF9tYXBfdHlwZSA9PSAyKSB7CisgICAgICBmb3IgKHVp
bnQzMl90IGlfZ3JvdXAgPSAwOyBpX2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNfbWludXMxOwor
ICAgICAgICAgICArK2lfZ3JvdXApIHsKKyAgICAgICAgLy8gdG9wX2xlZnRbaUdyb3VwXTogdWUo
dikKKyAgICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVy
LT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAgICAgIC8vIGJv
dHRvbV9yaWdodFtpR3JvdXBdOiB1ZSh2KQorICAgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgK
KyAgICAgICAgICAgIGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2ln
bm9yZWQpKTsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBlID09
IDMgfHwgc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0gNCB8fAorICAgICAgICAgICAgICAgc2xpY2Vf
Z3JvdXBfbWFwX3R5cGUgPT0gNSkgeworICAgICAgLy8gc2xpY2VfZ3JvdXBfY2hhbmdlX2RpcmVj
dGlvbl9mbGFnOiB1KDEpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5S
ZWFkQml0cygmYml0c190bXAsIDEpKTsKKyAgICAgIC8vIHNsaWNlX2dyb3VwX2NoYW5nZV9yYXRl
X21pbnVzMTogdWUodikKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJl
YWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgICB9IGVsc2UgaWYgKHNs
aWNlX2dyb3VwX21hcF90eXBlID09IDYpIHsKKyAgICAgIC8vIHBpY19zaXplX2luX21hcF91bml0
c19taW51czE6IHVlKHYpCisgICAgICB1aW50MzJfdCBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWlu
dXMxOworICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgYml0X2J1ZmZlci0+
UmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxKSk7Cisg
ICAgICB1aW50MzJfdCBzbGljZV9ncm91cF9pZF9iaXRzID0gMDsKKyAgICAgIHVpbnQzMl90IG51
bV9zbGljZV9ncm91cHMgPSBudW1fc2xpY2VfZ3JvdXBzX21pbnVzMSArIDE7CisgICAgICAvLyBJ
ZiBudW1fc2xpY2VfZ3JvdXBzIGlzIG5vdCBhIHBvd2VyIG9mIHR3byBhbiBhZGRpdGlvbmFsIGJp
dCBpcyByZXF1aXJlZAorICAgICAgLy8gdG8gYWNjb3VudCBmb3IgdGhlIGNlaWwoKSBvZiBsb2cy
KCkgYmVsb3cuCisgICAgICBpZiAoKG51bV9zbGljZV9ncm91cHMgJiAobnVtX3NsaWNlX2dyb3Vw
cyAtIDEpKSAhPSAwKQorICAgICAgICArK3NsaWNlX2dyb3VwX2lkX2JpdHM7CisgICAgICB3aGls
ZSAobnVtX3NsaWNlX2dyb3VwcyA+IDApIHsKKyAgICAgICAgbnVtX3NsaWNlX2dyb3VwcyA+Pj0g
MTsKKyAgICAgICAgKytzbGljZV9ncm91cF9pZF9iaXRzOworICAgICAgfQorICAgICAgZm9yICh1
aW50MzJfdCBpID0gMDsgaSA8PSBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxOyBpKyspIHsK
KyAgICAgICAgLy8gc2xpY2VfZ3JvdXBfaWRbaV06IHUodikKKyAgICAgICAgLy8gUmVwcmVzZW50
ZWQgYnkgY2VpbChsb2cyKG51bV9zbGljZV9ncm91cHNfbWludXMxICsgMSkpIGJpdHMuCisgICAg
ICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgICAgICAgYml0X2J1ZmZlci0+UmVhZEJp
dHMoJmJpdHNfdG1wLCBzbGljZV9ncm91cF9pZF9iaXRzKSk7CisgICAgICB9CisgICAgfQorICB9
CisgIC8vIG51bV9yZWZfaWR4X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogdWUodikKKyAgUkVU
VVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xv
bWJfaWdub3JlZCkpOworICAvLyBudW1fcmVmX2lkeF9sMV9kZWZhdWx0X2FjdGl2ZV9taW51czE6
IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlh
bEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgLy8gd2VpZ2h0ZWRfcHJlZF9mbGFnOiB1KDEp
CisgIHVpbnQzMl90IHdlaWdodGVkX3ByZWRfZmxhZzsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
Yml0X2J1ZmZlci0+UmVhZEJpdHMoJndlaWdodGVkX3ByZWRfZmxhZywgMSkpOworICBwcHMud2Vp
Z2h0ZWRfcHJlZF9mbGFnID0gd2VpZ2h0ZWRfcHJlZF9mbGFnICE9IDA7CisgIC8vIHdlaWdodGVk
X2JpcHJlZF9pZGM6IHUoMikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVh
ZEJpdHMoJnBwcy53ZWlnaHRlZF9iaXByZWRfaWRjLCAyKSk7CisKKyAgLy8gcGljX2luaXRfcXBf
bWludXMyNjogc2UodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVmZmVy
LT5SZWFkU2lnbmVkRXhwb25lbnRpYWxHb2xvbWIoJnBwcy5waWNfaW5pdF9xcF9taW51czI2KSk7
CisgIC8vIFNhbml0eS1jaGVjayBwYXJzZWQgdmFsdWUKKyAgaWYgKHBwcy5waWNfaW5pdF9xcF9t
aW51czI2ID4ga01heFBpY0luaXRRcERlbHRhVmFsdWUgfHwKKyAgICAgIHBwcy5waWNfaW5pdF9x
cF9taW51czI2IDwga01pblBpY0luaXRRcERlbHRhVmFsdWUpIHsKKyAgICBSRVRVUk5fRU1QVFlf
T05fRkFJTChmYWxzZSk7CisgIH0KKyAgLy8gcGljX2luaXRfcXNfbWludXMyNjogc2UodikKKyAg
UkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZn
b2xvbWJfaWdub3JlZCkpOworICAvLyBjaHJvbWFfcXBfaW5kZXhfb2Zmc2V0OiBzZSh2KQorICBS
RVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdv
bG9tYl9pZ25vcmVkKSk7CisgIC8vIGRlYmxvY2tpbmdfZmlsdGVyX2NvbnRyb2xfcHJlc2VudF9m
bGFnOiB1KDEpCisgIC8vIGNvbnN0cmFpbmVkX2ludHJhX3ByZWRfZmxhZzogdSgxKQorICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmYml0c190bXAsIDIpKTsKKyAg
Ly8gcmVkdW5kYW50X3BpY19jbnRfcHJlc2VudF9mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKAorICAgICAgYml0X2J1ZmZlci0+UmVhZEJpdHMoJnBwcy5yZWR1bmRhbnRfcGljX2Nu
dF9wcmVzZW50X2ZsYWcsIDEpKTsKKworICByZXR1cm4gcHBzOworfQorCitib29sIEgyNjVQcHNQ
YXJzZXI6OlBhcnNlUHBzSWRzSW50ZXJuYWwocnRjOjpCaXRCdWZmZXIqIGJpdF9idWZmZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHBwc19pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogc3BzX2lk
KSB7CisgIC8vIHBpY19wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBpZiAoIWJpdF9idWZmZXIt
PlJlYWRFeHBvbmVudGlhbEdvbG9tYihwcHNfaWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgLy8g
c2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIGlmICghYml0X2J1ZmZlci0+UmVhZEV4cG9u
ZW50aWFsR29sb21iKHNwc19pZCkpCisgICAgcmV0dXJuIGZhbHNlOworICByZXR1cm4gdHJ1ZTsK
K30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFy
c2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25f
dmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmE0NzE4ODNkY2FlYWY1
YTUzNGFjMzEzOWEzNjkwN2YzMDRmZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNf
cGFyc2VyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhl
IFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UK
KyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9m
IHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0
eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFs
bCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBB
VVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpZm5k
ZWYgQ09NTU9OX1ZJREVPX0gyNjVfUFBTX1BBUlNFUl9IXworI2RlZmluZSBDT01NT05fVklERU9f
SDI2NV9QUFNfUEFSU0VSX0hfCisKKyNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisK
K25hbWVzcGFjZSBydGMgeworY2xhc3MgQml0QnVmZmVyOworfQorCituYW1lc3BhY2Ugd2VicnRj
IHsKKworLy8gQSBjbGFzcyBmb3IgcGFyc2luZyBvdXQgcGljdHVyZSBwYXJhbWV0ZXIgc2V0IChQ
UFMpIGRhdGEgZnJvbSBhIEgyNjUgTkFMVS4KK2NsYXNzIEgyNjVQcHNQYXJzZXIgeworIHB1Ymxp
YzoKKyAgLy8gVGhlIHBhcnNlZCBzdGF0ZSBvZiB0aGUgUFBTLiBPbmx5IHNvbWUgc2VsZWN0IHZh
bHVlcyBhcmUgc3RvcmVkLgorICAvLyBBZGQgbW9yZSBhcyB0aGV5IGFyZSBhY3R1YWxseSBuZWVk
ZWQuCisgIHN0cnVjdCBQcHNTdGF0ZSB7CisgICAgUHBzU3RhdGUoKSA9IGRlZmF1bHQ7CisKKyAg
ICBib29sIGJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnID0gZmFs
c2U7CisgICAgYm9vbCB3ZWlnaHRlZF9wcmVkX2ZsYWcgPSBmYWxzZTsKKyAgICBib29sIGVudHJv
cHlfY29kaW5nX21vZGVfZmxhZyA9IGZhbHNlOworICAgIHVpbnQzMl90IHdlaWdodGVkX2JpcHJl
ZF9pZGMgPSBmYWxzZTsKKyAgICB1aW50MzJfdCByZWR1bmRhbnRfcGljX2NudF9wcmVzZW50X2Zs
YWcgPSAwOworICAgIGludCBwaWNfaW5pdF9xcF9taW51czI2ID0gMDsKKyAgICB1aW50MzJfdCBp
ZCA9IDA7CisgICAgdWludDMyX3Qgc3BzX2lkID0gMDsKKyAgfTsKKworICAvLyBVbnBhY2sgUkJT
UCBhbmQgcGFyc2UgUFBTIHN0YXRlIGZyb20gdGhlIHN1cHBsaWVkIGJ1ZmZlci4KKyAgc3RhdGlj
IGFic2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZVBwcyhjb25zdCB1aW50OF90KiBkYXRhLCBz
aXplX3QgbGVuZ3RoKTsKKworICBzdGF0aWMgYm9vbCBQYXJzZVBwc0lkcyhjb25zdCB1aW50OF90
KiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICB1aW50MzJfdCogc3BzX2lkKTsKKworICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8dWlu
dDMyX3Q+IFBhcnNlUHBzSWRGcm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAgICAgY29uc3Qg
dWludDhfdCogZGF0YSwKKyAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICB1aW50OF90IG5hbHVf
dHlwZSk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBQUFMgc3RhdGUsIGZvciBhIGJp
dCBidWZmZXIgd2hlcmUgUkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisgIC8vIHBlcmZv
cm1lZC4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZUludGVybmFsKHJ0
Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKTsKKyAgc3RhdGljIGJvb2wgUGFyc2VQcHNJZHNJbnRl
cm5hbChydGM6OkJpdEJ1ZmZlciogYml0X2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnQzMl90KiBzcHNfaWQpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0Ywor
CisjZW5kaWYgIC8vIENPTU1PTl9WSURFT19IMjY1X1BQU19QQVJTRVJfSF8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9o
MjY1L2gyNjVfc3BzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNDMzZjRiMGVlOTIwYzIzM2YxYjYxODE1MGQyZDNmODhmZWQwZWMxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogIENv
cHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwg
aW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0
aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5Cisg
KiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNl
IHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNp
bmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1v
bl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9i
dWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25hbWVzcGFjZSB7Cit0
eXBlZGVmIGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IE9w
dGlvbmFsU3BzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEo
eCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBPcHRpb25hbFNwcygpOyAgICAg
ICBcCisgIH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworSDI2NVNw
c1BhcnNlcjo6U3BzU3RhdGU6OlNwc1N0YXRlKCkgPSBkZWZhdWx0OworCisvLyBHZW5lcmFsIG5v
dGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2YgdGhlIEguMjY1IHN0
YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8vIGh0dHA6Ly93d3cu
aXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFNQUyBz
dGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNsOjpvcHRpb25hbDxIMjY1U3BzUGFy
c2VyOjpTcHNTdGF0ZT4gSDI2NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAgY29uc3QgdWludDhf
dCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVu
cGFja2VkX2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJp
dEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZl
ci5zaXplKCkpOworICByZXR1cm4gUGFyc2VTcHNVcFRvVnVpKCZiaXRfYnVmZmVyKTsKK30KKwor
YWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IEgyNjVTcHNQYXJzZXI6OlBh
cnNlU3BzVXBUb1Z1aSgKKyAgICBydGM6OkJpdEJ1ZmZlciogYnVmZmVyKSB7CisgIC8vIE5vdywg
d2UgbmVlZCB0byB1c2UgYSBiaXQgYnVmZmVyIHRvIHBhcnNlIHRocm91Z2ggdGhlIGFjdHVhbCBI
RVZDIFNQUworICAvLyBmb3JtYXQuIFNlZSBTZWN0aW9uIDcuMy4yLjIuMSAoIkdlbmVyYWwgc2Vx
dWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhCisgIC8vIHN5bnRheCIpIG9mIHRoZSBILjI2NSBzdGFu
ZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2luY2Ugd2Ugb25seSBjYXJl
IGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkgb2YgZmllbGRzLCBidXQK
KyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJvdWdoIGEgbG90IG9mIHRo
ZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2ZSB2YXJpYWJsZSBzaXpl
LgorICAvLyBXZSdyZSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbjoKKyAgLy8gY2hyb21hX2Zv
cm1hdF9pZGMgLT4gYWZmZWN0cyBjcm9wIHVuaXRzCisgIC8vIHBpY197d2lkdGgsaGVpZ2h0fV8q
IC0+IHJlc29sdXRpb24gb2YgdGhlIGZyYW1lIGluIG1hY3JvYmxvY2tzICgxNngxNikuCisgIC8v
IGZyYW1lX2Nyb3BfKl9vZmZzZXQgLT4gY3JvcCBpbmZvcm1hdGlvbgorCisgIFNwc1N0YXRlIHNw
czsKKworICAvLyBUaGUgZ29sb21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNv
bnN1bWUuCisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91
cl9wbGFuZV9mbGFnIGlzIG9wdGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9u
cworICAvLyBhYm91dCB0aGUgQ2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2Ug
dHJlYXQgY3JvcCBjb29yZGluYXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5l
X2ZsYWcgPSAwOworCisgIC8vIGNocm9tYV9mb3JtYXRfaWRjIHdpbGwgYmUgQ2hyb21hQXJyYXlU
eXBlIGlmIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzCisgIC8vIDAuIEl0IGRlZmF1bHRz
IHRvIDEsIHdoZW4gbm90IHNwZWNpZmllZC4KKyAgdWludDMyX3QgY2hyb21hX2Zvcm1hdF9pZGMg
PSAxOworCisgIC8vIHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIHVpbnQzMl90
IHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
YnVmZmVyLT5SZWFkQml0cygmc3BzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQpKTsKKyAgLy8g
c3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTogdSgzKQorICB1aW50MzJfdCBzcHNfbWF4X3N1Yl9s
YXllcnNfbWludXMxID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0
cygmc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSwgMykpOworICAvLyBzcHNfdGVtcG9yYWxfaWRf
bmVzdGluZ19mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3Vt
ZUJpdHMoMSkpOworICAvLyBwcm9maWxlX3RpZXJfbGV2ZWwoMSwgc3BzX21heF9zdWJfbGF5ZXJz
X21pbnVzMSkuIFdlIGFyZSBhY3V0YWxseSBub3QKKyAgLy8gdXNpbmcgdGhlbSwgc28gcmVhZC9z
a2lwIG92ZXIgaXQuCisgIC8vIGdlbmVyYWxfcHJvZmlsZV9zcGFjZStnZW5lcmFsX3RpZXJfZmxh
ZytnZW5lcmFsX3ByZmlsZV9pZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVy
LT5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVfY29tcGF0YWJpbGl0aXlf
ZmxhZ1szMl0KKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoNCkp
OworICAvLyBnZW5lcmFsX3Byb2dyZXNzaXZlX3NvdXJjZV9mbGFnICsgaW50ZXJsYWNlZF9zb3Vy
Y2VfZmxhZysKKyAgLy8gbm9uLXBhY2tlZF9jb25zdHJhaW50IGZsYWcgKyBmcmFtZV9vbmx5X2Nv
bnN0cmFpbnRfZmxhZzogdSg0KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1
bWVCaXRzKDQpKTsKKyAgLy8gZ2VuZXJhbF9wcm9maWxlX2lkYyBkZWNpZGVkIGZsYWdzIG9yIHJl
c2VydmVkLiAgdSg0MykKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0
cyg0MykpOworICAvLyBnZW5lcmFsX2luYmxkX2ZsYWcgb3IgcmVzZXJ2ZWQgMDogdSgxKQorICBS
RVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gZ2VuZXJh
bF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1l
Qnl0ZXMoMSkpOworICAvLyBpZiBtYXhfc3ViX2xheWVyc19taW51czEgPj0xLCByZWFkIHRoZSBz
dWJsYXllciBwcm9maWxlIGluZm9ybWF0aW9uCisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJf
bGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdzOworICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gc3Vi
X2xheWVyX2xldmVsX3ByZXNlbnRfZmxhZ3M7CisgIHVpbnQzMl90IHN1Yl9sYXllcl9wcm9maWxl
X3ByZXNlbnQgPSAwOworICB1aW50MzJfdCBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCA9IDA7Cisg
IGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBpKysp
IHsKKyAgICAvLyBzdWJsYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZyBhbmQgc3VibGF5ZXJfbGV2
ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+
UmVhZEJpdHMoJnN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQsIDEpKTsKKyAgICBSRVRVUk5fRU1Q
VFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCwgMSkp
OworICAgIHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3MucHVzaF9iYWNrKHN1Yl9sYXll
cl9wcm9maWxlX3ByZXNlbnQpOworICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzLnB1
c2hfYmFjayhzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNwc19tYXhfc3Vi
X2xheWVyc19taW51czEgPiAwKSB7CisgICAgZm9yICh1aW50MzJfdCBqID0gc3BzX21heF9zdWJf
bGF5ZXJzX21pbnVzMTsgaiA8IDg7IGorKykgeworICAgICAgLy8gcmVzZXJ2ZWQgMiBiaXRzOiB1
KDIpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDIpKTsK
KyAgICB9CisgIH0KKyAgZm9yICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVy
c19taW51czE7IGsrKykgeworICAgIGlmIChzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdz
W2tdKSB7ICAvLworICAgICAgLy8gc3ViX2xheWVyIHByb2ZpbGVfc3BhY2UvdGllcl9mbGFnL3By
b2ZpbGVfaWRjLiBpZ25vcmVkLiB1KDgpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZm
ZXItPkNvbnN1bWVCeXRlcygxKSk7CisgICAgICAvLyBwcm9maWxlX2NvbXBhdGFiaWxpdHlfZmxh
ZzogIHUoMzIpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRl
cyg0KSk7CisgICAgICAvLyBzdWJfbGF5ZXIgcHJvZ3Jlc3NpdmVfc291cmNlX2ZsYWcvaW50ZXJs
YWNlZF9zb3VyY2VfZmxhZy8KKyAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2Zy
YW1lX29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJ
TChidWZmZXItPkNvbnN1bWVCaXRzKDQpKTsKKyAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFy
ZSBwcm9maWxlX2lkYyBzcGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4KKyAgICAgIC8v
IHUoNDMpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQz
KSk7CisgICAgICAvLyAxLWJpdCBwcm9maWxlX2lkYyBzcGVjaWZpYyBpbmJsZCBmbGFnLiAgV2Ug
c2ltcGx5IHJlYWQvc2tpcCBpdC4gdSgxKQorICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVm
ZmVyLT5Db25zdW1lQml0cygxKSk7CisgICAgfQorICAgIGlmIChzdWJfbGF5ZXJfbGV2ZWxfcHJl
c2VudF9mbGFnc1trXSkgeworICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAg
ICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkpOworICAgIH0K
KyAgfQorICAvLyBzcHNfc2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIFJFVFVSTl9FTVBU
WV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkp
OworICAvLyBjaHJvbWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
YnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNocm9tYV9mb3JtYXRfaWRjKSk7CisgIGlm
IChjaHJvbWFfZm9ybWF0X2lkYyA9PSAzKSB7CisgICAgLy8gc2VwZXJhdGVfY29sb3VyX3BsYW5l
X2ZsYWc6IHUoMSkKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZz
ZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZywgMSkpOworICB9CisgIHVpbnQzMl90IHBpY193aWR0
aF9pbl9sdW1hX3NhbXBsZXMgPSAwOworICB1aW50MzJfdCBwaWNfaGVpZ2h0X2luX2x1bWFfc2Ft
cGxlcyA9IDA7CisgIC8vIHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBp
Y193aWR0aF9pbl9sdW1hX3NhbXBsZXMpKTsKKyAgLy8gcGljX2hlaWdodF9pbl9sdW1hX3NhbXBs
ZXM6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVyLT5SZWFkRXhw
b25lbnRpYWxHb2xvbWIoJnBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzKSk7CisgIC8vIGNvbmZv
cm1hbmNlX3dpbmRvd19mbGFnOiB1KDEpCisgIHVpbnQzMl90IGNvbmZvcm1hbmNlX3dpbmRvd19m
bGFnID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmY29uZm9y
bWFuY2Vfd2luZG93X2ZsYWcsIDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNl
dCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7CisgIHVpbnQzMl90
IGNvbmZfd2luX3RvcF9vZmZzZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zm
c2V0ID0gMDsKKyAgaWYgKGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAgLy8gY29uZl93
aW5fbGVmdF9vZmZzZXQ6IHVlKHYpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5S
ZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7CisgICAgLy8gY29u
Zl93aW5fcmlnaHRfb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZl
ci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAv
LyBjb25mX3dpbl90b3Bfb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1
ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAg
Ly8gY29uZl93aW5fYm90dG9tX29mZnNldDogdWUodikKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJ
TCgKKyAgICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2JvdHRv
bV9vZmZzZXQpKTsKKyAgfQorCisgIC8vIEZhciBlbm91Z2ghIFdlIGRvbid0IHVzZSB0aGUgcmVz
dCBvZiB0aGUgU1BTLgorCisgIHNwcy52cHNfaWQgPSBzcHNfdmlkZW9fcGFyYW1ldGVyX3NldF9p
ZDsKKworICAvLyBTdGFydCB3aXRoIHRoZSByZXNvbHV0aW9uIGRldGVybWluZWQgYnkgdGhlIHBp
Y193aWR0aC9waWNfaGVpZ2h0IGZpZWxkcy4KKyAgc3BzLndpZHRoID0gcGljX3dpZHRoX2luX2x1
bWFfc2FtcGxlczsKKyAgc3BzLmhlaWdodCA9IHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOwor
CisgIGlmIChjb25mb3JtYW5jZV93aW5kb3dfZmxhZykgeworICAgIGludCBzdWJfd2lkdGhfYyA9
ICgoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgfHwgKDIgPT0gY2hyb21hX2Zvcm1hdF9pZGMpKSAm
JgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPT0gc2VwYXJhdGVfY29sb3VyX3Bs
YW5lX2ZsYWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgID8gMgorICAgICAgICAgICAgICAg
ICAgICAgICAgICA6IDE7CisgICAgaW50IHN1Yl9oZWlnaHRfYyA9CisgICAgICAgICgxID09IGNo
cm9tYV9mb3JtYXRfaWRjKSAmJiAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZykgPyAy
IDogMTsKKyAgICAvLyB0aGUgb2Zmc2V0IGluY2x1ZGVzIHRoZSBwaXhlbCB3aXRoaW4gY29uZm9y
bWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVkIHRvCisgICAgLy8gKzEgYXMgcGVyIHNwZWMKKyAg
ICBzcHMud2lkdGggLT0gc3ViX3dpZHRoX2MgKiAoY29uZl93aW5fcmlnaHRfb2Zmc2V0ICsgY29u
Zl93aW5fbGVmdF9vZmZzZXQpOworICAgIHNwcy5oZWlnaHQgLT0gc3ViX2hlaWdodF9jICogKGNv
bmZfd2luX3RvcF9vZmZzZXQgKyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0KTsKKyAgfQorCisgIHJl
dHVybiBPcHRpb25hbFNwcyhzcHMpOworfQorCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25f
dmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmEwZjg2YjY5ODMyNjMxYmU3MjU2OWI5YWUyMGJjMmM2MGI4MDkyNWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21t
b25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
IENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9u
YWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBp
biB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5
CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlIHRyZWUuCisgKi8KKworI2lmbmRlZiBDT01NT05fVklERU9fSDI2NV9IMjY1X1NQU19QQVJT
RVJfSF8KKyNkZWZpbmUgQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VSX0hfCisKKyNp
bmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisKK25hbWVzcGFjZSBydGMgeworY2xhc3Mg
Qml0QnVmZmVyOworfQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworLy8gQSBjbGFzcyBmb3IgcGFy
c2luZyBvdXQgc2VxdWVuY2UgcGFyYW1ldGVyIHNldCAoU1BTKSBkYXRhIGZyb20gYW4gSDI2NSBO
QUxVLgorY2xhc3MgSDI2NVNwc1BhcnNlciB7CisgcHVibGljOgorICAvLyBUaGUgcGFyc2VkIHN0
YXRlIG9mIHRoZSBTUFMuIE9ubHkgc29tZSBzZWxlY3QgdmFsdWVzIGFyZSBzdG9yZWQuCisgIC8v
IEFkZCBtb3JlIGFzIHRoZXkgYXJlIGFjdHVhbGx5IG5lZWRlZC4KKyAgc3RydWN0IFNwc1N0YXRl
IHsKKyAgICBTcHNTdGF0ZSgpOworCisgICAgdWludDMyX3Qgd2lkdGggPSAwOworICAgIHVpbnQz
Ml90IGhlaWdodCA9IDA7CisgICAgdWludDMyX3QgZGVsdGFfcGljX29yZGVyX2Fsd2F5c196ZXJv
X2ZsYWcgPSAwOworICAgIHVpbnQzMl90IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnID0gMDsK
KyAgICB1aW50MzJfdCBmcmFtZV9tYnNfb25seV9mbGFnID0gMDsKKyAgICB1aW50MzJfdCBsb2cy
X21heF9mcmFtZV9udW1fbWludXM0ID0gMDsKKyAgICB1aW50MzJfdCBsb2cyX21heF9waWNfb3Jk
ZXJfY250X2xzYl9taW51czQgPSAwOworICAgIHVpbnQzMl90IHBpY19vcmRlcl9jbnRfdHlwZSA9
IDA7CisgICAgdWludDMyX3QgbWF4X251bV9yZWZfZnJhbWVzID0gMDsKKyAgICB1aW50MzJfdCB2
dWlfcGFyYW1zX3ByZXNlbnQgPSAwOworICAgIHVpbnQzMl90IGlkID0gMDsKKyAgICB1aW50MzJf
dCB2cHNfaWQgPSAwOworICB9OworCisgIC8vIFVucGFjayBSQlNQIGFuZCBwYXJzZSBTUFMgc3Rh
dGUgZnJvbSB0aGUgc3VwcGxpZWQgYnVmZmVyLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3Bz
U3RhdGU+IFBhcnNlU3BzKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworCisg
cHJvdGVjdGVkOgorICAvLyBQYXJzZSB0aGUgU1BTIHN0YXRlLCB1cCB0aWxsIHRoZSBWVUkgcGFy
dCwgZm9yIGEgYml0IGJ1ZmZlciB3aGVyZSBSQlNQCisgIC8vIGRlY29kaW5nIGhhcyBhbHJlYWR5
IGJlZW4gcGVyZm9ybWVkLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3BzU3RhdGU+IFBhcnNl
U3BzVXBUb1Z1aShydGM6OkJpdEJ1ZmZlciogYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVzcGFj
ZSB3ZWJydGMKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VSX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9j
b21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIu
Y2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjM5MWFlNTFkZjBmOTA4OTAxNmI0OTg4NGMxNWYyYzE0MThkNTRlNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5jYwpAQCAtMCwwICsxLDYyIEBA
CisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFu
IGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91
bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1
dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2
ZWN0b3I+CisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2lu
Y2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0
Y19iYXNlL2JpdF9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25h
bWVzcGFjZSB7Cit0eXBlZGVmIGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVZwc1BhcnNlcjo6
VnBzU3RhdGU+IE9wdGlvbmFsVnBzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgp
IFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBPcHRpb25h
bFZwcygpOyAgICAgICBcCisgIH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRj
IHsKKworSDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU6OlZwc1N0YXRlKCkgPSBkZWZhdWx0OworCisv
LyBHZW5lcmFsIG5vdGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2Yg
dGhlIEguMjY1IHN0YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8v
IGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5k
IHBhcnNlIFNQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNsOjpvcHRpb25h
bDxIMjY1VnBzUGFyc2VyOjpWcHNTdGF0ZT4gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAg
Y29uc3QgdWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9y
PHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgp
OworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVu
cGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5hbCgmYml0X2J1ZmZl
cik7Cit9CisKK2Fic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiBIMjY1VnBz
UGFyc2VyOjpQYXJzZUludGVybmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBidWZmZXIpIHsKKyAg
Ly8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhyb3VnaCB0aGUg
YWN0dWFsIEhFVkMgVlBTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIuMSAoIlZpZGVv
IHBhcmFtZXRlciBzZXQgUkJTUCBzeW50YXgiKSBvZiB0aGUKKyAgLy8gSC4yNjUgc3RhbmRhcmQg
Zm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24uCisKKyAgVnBzU3RhdGUgdnBzOworCisgIC8vIHZw
c192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIHVpbnQzMl90IHZwc192aWRlb19wYXJh
bWV0ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0
cygmdnBzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQpKTsKKworICB2cHMuaWQgPSB2cHNfdmlk
ZW9fcGFyYW1ldGVyX3NldF9pZDsKKyAgdnBzLmlkID0gMDsKKyAgcmV0dXJuIE9wdGlvbmFsVnBz
KHZwcyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVf
dnBzX3BhcnNlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
Y29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThhMjc3NWY0
M2RmMTdkMThlMDlkYzQwMDdlNjIzYTYzMjA4NWE3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gy
NjVfdnBzX3BhcnNlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAy
MDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs
aWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUg
cm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwg
cHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVO
VFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBp
biB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLwor
CisjaWZuZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfVlBTX1BBUlNFUl9IXworI2RlZmluZSBD
T01NT05fVklERU9fSDI2NV9IMjY1X1ZQU19QQVJTRVJfSF8KKworI2luY2x1ZGUgImFic2wvdHlw
ZXMvb3B0aW9uYWwuaCIKKworbmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBCaXRCdWZmZXI7Cit9CisK
K25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBBIGNsYXNzIGZvciBwYXJzaW5nIG91dCBzZXF1ZW5j
ZSBwYXJhbWV0ZXIgc2V0IChWUFMpIGRhdGEgZnJvbSBhbiBIMjY1IE5BTFUuCitjbGFzcyBIMjY1
VnBzUGFyc2VyIHsKKyBwdWJsaWM6CisgIC8vIFRoZSBwYXJzZWQgc3RhdGUgb2YgdGhlIFZQUy4g
T25seSBzb21lIHNlbGVjdCB2YWx1ZXMgYXJlIHN0b3JlZC4KKyAgLy8gQWRkIG1vcmUgYXMgdGhl
eSBhcmUgYWN0dWFsbHkgbmVlZGVkLgorICBzdHJ1Y3QgVnBzU3RhdGUgeworICAgIFZwc1N0YXRl
KCk7CisKKyAgICB1aW50MzJfdCBpZCA9IDA7CisgIH07CisKKyAgLy8gVW5wYWNrIFJCU1AgYW5k
IHBhcnNlIFZQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCisgIHN0YXRpYyBhYnNs
OjpvcHRpb25hbDxWcHNTdGF0ZT4gUGFyc2VWcHMoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90
IGxlbmd0aCk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBWUFMgc3RhdGUsIGZvciBh
IGJpdCBidWZmZXIgd2hlcmUgUkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisgIC8vIHBl
cmZvcm1lZC4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFZwc1N0YXRlPiBQYXJzZUludGVybmFs
KHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJy
dGMKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9WUFNfUEFSU0VSX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9i
YXNlL21lZGlhX2NvbnN0YW50cy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCmluZGV4IDUxNDRhNmVhNjU1
NWRmYmI2NmM0NjJhZTIxNzdkZmNlY2NjOTE4YmIuLjdiNzBmZjllNDg4NGE1MDM1YjllZTM4OTRj
NTUwMDNjYWJmMWJhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3Rh
bnRzLmNjCkBAIC0xMDcsNiArMTA3LDkgQEAgY29uc3QgY2hhciBrVnA4Q29kZWNOYW1lW10gPSAi
VlA4IjsKIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFtZVtdID0gIlZQOSI7CiBjb25zdCBjaGFyIGtB
djFDb2RlY05hbWVbXSA9ICJBVjFYIjsKIGNvbnN0IGNoYXIga0gyNjRDb2RlY05hbWVbXSA9ICJI
MjY0IjsKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citjb25zdCBjaGFyIGtIMjY1Q29kZWNOYW1lW10g
PSAiSDI2NSI7CisjZW5kaWYKIAogLy8gUkZDIDYxODQgUlRQIFBheWxvYWQgRm9ybWF0IGZvciBI
LjI2NCB2aWRlbwogY29uc3QgY2hhciBrSDI2NEZtdHBQcm9maWxlTGV2ZWxJZFtdID0gInByb2Zp
bGUtbGV2ZWwtaWQiOwpAQCAtMTE0LDYgKzExNywxMyBAQCBjb25zdCBjaGFyIGtIMjY0Rm10cExl
dmVsQXN5bW1ldHJ5QWxsb3dlZFtdID0gImxldmVsLWFzeW1tZXRyeS1hbGxvd2VkIjsKIGNvbnN0
IGNoYXIga0gyNjRGbXRwUGFja2V0aXphdGlvbk1vZGVbXSA9ICJwYWNrZXRpemF0aW9uLW1vZGUi
OwogY29uc3QgY2hhciBrSDI2NEZtdHBTcHJvcFBhcmFtZXRlclNldHNbXSA9ICJzcHJvcC1wYXJh
bWV0ZXItc2V0cyI7CiBjb25zdCBjaGFyIGtIMjY0UHJvZmlsZUxldmVsQ29uc3RyYWluZWRCYXNl
bGluZVtdID0gIjQyZTAxZiI7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorLy8gUkZDIDc3OTggUlRQ
IFBheWxvYWQgRm9ybWF0IGZvciBILjI2NSB2aWRlbworY29uc3QgY2hhciBrSDI2NUZtdHBQcm9m
aWxlU3BhY2VbXSA9ICJwcm9maWxlLXNwYWNlIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwUHJvZmls
ZUlkW10gPSAicHJvZmlsZS1pZCI7Citjb25zdCBjaGFyIGtIMjY1Rm10cFRpZXJGbGFnW10gPSAi
dGllci1mbGFnIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwTGV2ZWxJZFtdID0gImxldmVsLWlkIjsK
KyNlbmRpZgogCiBjb25zdCBpbnQga0RlZmF1bHRWaWRlb01heEZyYW1lcmF0ZSA9IDYwOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRp
YS9iYXNlL21lZGlhX2NvbnN0YW50cy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaAppbmRleCBiOWI4YTMzNmY3
ZjBjYWYyZmYxOTQ2OWZlYTc1Y2I3OTI5NDcwYTU4Li5hMTgxOTNlMDVkMjQ4YzEyZjZhNDU4MmI1
NmU0YjIxODE5MWE5MzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3Rh
bnRzLmgKQEAgLTEzNiw2ICsxMzYsOSBAQCBSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtW
cDhDb2RlY05hbWVbXTsKIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFt
ZVtdOwogUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrQXYxQ29kZWNOYW1lW107CiBSVENf
RVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY0Q29kZWNOYW1lW107CisjaWZuZGVmIERJU0FC
TEVfSDI2NQorUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUNvZGVjTmFtZVtdOwor
I2VuZGlmCiAKIC8vIFJGQyA2MTg0IFJUUCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4yNjQgdmlkZW8K
IFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRGbXRwUHJvZmlsZUxldmVsSWRbXTsK
QEAgLTE0NCw2ICsxNDcsMTQgQEAgUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NEZt
dHBQYWNrZXRpemF0aW9uTW9kZVtdOwogZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRGbXRwU3Byb3BQ
YXJhbWV0ZXJTZXRzW107CiBleHRlcm4gY29uc3QgY2hhciBrSDI2NFByb2ZpbGVMZXZlbENvbnN0
cmFpbmVkQmFzZWxpbmVbXTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKy8vIFJGQyA3Nzk4IFJU
UCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4yNjUgdmlkZW8KK1JUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0
IGNoYXIga0gyNjVGbXRwUHJvZmlsZVNwYWNlW107CitSVENfRVhQT1JUIGV4dGVybiBjb25zdCBj
aGFyIGtIMjY1Rm10cFByb2ZpbGVJZFtdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBr
SDI2NUZtdHBUaWVyRmxhZ1tdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUZt
dHBMZXZlbElkW107CisjZW5kaWYKKwogZXh0ZXJuIGNvbnN0IGludCBrRGVmYXVsdFZpZGVvTWF4
RnJhbWVyYXRlOwogCiBleHRlcm4gY29uc3Qgc2l6ZV90IGtDb25mZXJlbmNlTWF4TnVtU3BhdGlh
bExheWVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL0JVSUxELmduCmluZGV4IDI4MjZk
MGYwOWIxNDRlNDVhMGI3ZDQ3MGQwYmE5ZDU3YzQzMzVjZTEuLjZmOTAyZmY3YjBjNWYyYjVhMGFi
OGJhYmI2NDk2ZTVjMzllOGMwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24KKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9CVUlM
RC5nbgpAQCAtMjM2LDYgKzIzNiwxNyBAQCBydGNfbGlicmFyeSgicnRwX3J0Y3AiKSB7CiAgICAg
ZGVmaW5lcyA9IFsgIkJXRV9URVNUX0xPR0dJTkdfQ09NUElMRV9USU1FX0VOQUJMRT0wIiBdCiAg
IH0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisgICAgICAic291
cmNlL3J0cF9mb3JtYXRfaDI2NS5jYyIsCisgICAgICAic291cmNlL3J0cF9mb3JtYXRfaDI2NS5o
IiwKKyAgICBdCisgIH0KKworICBpZiAoIXJ0Y191c2VfaDI2NSkgeworICAgIGRlZmluZXMgKz0g
WyJESVNBQkxFX0gyNjUiXQorICB9CisKICAgZGVwcyA9IFsKICAgICAiOnJ0cF9ydGNwX2Zvcm1h
dCIsCiAgICAgIjpydHBfdmlkZW9faGVhZGVyIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2NyZWF0
ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9k
ZXBhY2tldGl6ZXIuY2MKaW5kZXggNTllMTM5OWM5OWYyMmU5ZTY4ZjVjNjY3NzFkZWVlNzUxNGM3
MGM1ZC4uOGJiYjNhNGQ5NzgwMmE4ZDAwZDY0Nzg4YjMwMTAxMzZlYTlmMmI4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3Vy
Y2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKQEAgLTEzLDYgKzEzLDkgQEAKICNp
bmNsdWRlIDxtZW1vcnk+CiAKICNpbmNsdWRlICJhcGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5o
IgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJj
ZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyX2F2MS5oIgogI2luY2x1ZGUgIm1vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfZ2VuZXJpYy5oIgpAQCAt
MjcsNiArMzAsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvUnRwRGVwYWNrZXRpemVyPiBDcmVh
dGVWaWRlb1J0cERlcGFja2V0aXplcigKICAgc3dpdGNoIChjb2RlYykgewogICAgIGNhc2Uga1Zp
ZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VmlkZW9SdHBEZXBh
Y2tldGl6ZXJIMjY0PigpOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0Nv
ZGVjSDI2NToKKyAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvUnRwRGVwYWNrZXRp
emVySDI2NT4oKTsKKyNlbmRpZgogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6CiAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxWaWRlb1J0cERlcGFja2V0aXplclZwOD4oKTsKICAgICBjYXNl
IGtWaWRlb0NvZGVjVlA5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMzQ2MzBhYTg3YmFi
MDkwYTE0ZDI3YjQ4MzM2Mzc5MWY0ODExZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9o
MjY1X3Nwc19wYXJzZXIuY2MKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBJbnRlbCBMaWNlbnNl
CisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtpdAorICogVGhpcyBpcyBy
ZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlzIGZyZWUgZm9yIGJvdGgg
YWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpbmNsdWRlICJ3ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgiCisKKyNpbmNsdWRlICJydGNf
YmFzZS9iaXRfYnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvYnl0ZV9idWZmZXIuaCIKKyNp
bmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNkZWZp
bmUgUkVUVVJOX0ZBTFNFX09OX0ZBSUwoeCkgXAorICBpZiAoISh4KSkgeyAgICAgICAgICAgICAg
ICAgICBcCisgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgIFwKKyAgfQorCituYW1lc3Bh
Y2Ugd2VicnRjIHsKKworSDI2NVNwc1BhcnNlcjo6SDI2NVNwc1BhcnNlcihjb25zdCB1aW50OF90
KiBzcHMsIHNpemVfdCBieXRlX2xlbmd0aCkKKyAgICA6IHNwc18oc3BzKSwgYnl0ZV9sZW5ndGhf
KGJ5dGVfbGVuZ3RoKSwgd2lkdGhfKCksIGhlaWdodF8oKSB7Cit9CisKK2Jvb2wgSDI2NVNwc1Bh
cnNlcjo6UGFyc2UoKSB7CisgIC8vIEdlbmVyYWwgbm90ZTogdGhpcyBpcyBiYXNlZCBvZmYgdGhl
IDA0LzIwMTUgdmVyc2lvbiBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIC8vIFlvdSBjYW4gZmlu
ZCBpdCBvbiB0aGlzIHBhZ2U6CisgIC8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4y
NjUKKworICBjb25zdCBjaGFyKiBzcHNfYnl0ZXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihzcHNfKTsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2Fs
bHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFz
dCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4K
KyAgLy8gc2VjdGlvbiA3LjMuMS4xIG9mIHRoZSBILjI2NSBzdGFuZGFyZCwgc2ltaWxhciB0byBI
MjY0LgorICBydGM6OkJ5dGVCdWZmZXJXcml0ZXIgcmJzcF9idWZmZXI7CisgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgYnl0ZV9sZW5ndGhfOykgeworICAgIC8vIEJlIGNhcmVmdWwgYWJvdXQgb3Zl
ci91bmRlcmZsb3cgaGVyZS4gYnl0ZV9sZW5ndGhfIC0gMyBjYW4gdW5kZXJmbG93LCBhbmQKKyAg
ICAvLyBpICsgMyBjYW4gb3ZlcmZsb3csIGJ1dCBieXRlX2xlbmd0aF8gLSBpIGNhbid0LCBiZWNh
dXNlIGkgPCBieXRlX2xlbmd0aF8KKyAgICAvLyBhYm92ZSwgYW5kIHRoYXQgZXhwcmVzc2lvbiB3
aWxsIHByb2R1Y2UgdGhlIG51bWJlciBvZiBieXRlcyBsZWZ0IGluCisgICAgLy8gdGhlIHN0cmVh
bSBpbmNsdWRpbmcgdGhlIGJ5dGUgYXQgaS4KKyAgICBpZiAoYnl0ZV9sZW5ndGhfIC0gaSA+PSAz
ICYmIHNwc19baV0gPT0gMCAmJiBzcHNfW2kgKyAxXSA9PSAwICYmCisgICAgICAgIHNwc19baSAr
IDJdID09IDMpIHsKKyAgICAgIC8vIFR3byByYnNwIGJ5dGVzICsgdGhlIGVtdWxhdGlvbiBieXRl
LgorICAgICAgcmJzcF9idWZmZXIuV3JpdGVCeXRlcyhzcHNfYnl0ZXMgKyBpLCAyKTsKKyAgICAg
IGkgKz0gMzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gU2luZ2xlIHJic3AgYnl0ZS4KKyAgICAg
IHJic3BfYnVmZmVyLldyaXRlQnl0ZXMoc3BzX2J5dGVzICsgaSwgMSk7CisgICAgICBpKys7Cisg
ICAgfQorICB9CisKKyAgLy8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFy
c2UgdGhyb3VnaCB0aGUgYWN0dWFsIEhFVkMgU1BTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24g
Ny4zLjIuMS4xICgiU2VxdWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhIHN5bnRheCIpIG9mIHRoZQor
ICAvLyBILjI2NSBzdGFuZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2lu
Y2Ugd2Ugb25seSBjYXJlIGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkg
b2YgZmllbGRzLCBidXQKKyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJv
dWdoIGEgbG90IG9mIHRoZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2
ZSB2YXJpYWJsZSBzaXplLgorICAvLyBVbmxpa2UgSDI2NCwgZm9yIEgyNjUsIHRoZSBwaWN0dXJl
IHNpemUgaXMgaW5kaWNhdGVkIGJ5IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMKKyAgLy8gYW5k
IHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzLCAgaWYgY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcg
IT0xOworICAvLyBXaGVuIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnIGlzIDEsICB0aGUgd2lkdGgg
aXMgYWRqdXN0ZWQgd2l0aCBjb25fd2luX3h4X29mZnNldAorICAvLworICBydGM6OkJpdEJ1ZmZl
ciBwYXJzZXIocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4ocmJzcF9idWZmZXIuRGF0
YSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJic3BfYnVmZmVyLkxlbmd0aCgpKTsKKwor
ICAvLyBUaGUgZ29sb21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNvbnN1bWUu
CisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91cl9wbGFu
ZV9mbGFnIGlzIG9wdGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9ucworICAv
LyBhYm91dCB0aGUgQ2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2UgdHJlYXQg
Y3JvcCBjb29yZGluYXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcg
PSAwOworICAvLyBjaHJvbWFfZm9ybWF0X2lkYyB3aWxsIGJlIENocm9tYUFycmF5VHlwZSBpZiBz
ZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZyBpcworICAvLyAwLiBJdCBkZWZhdWx0cyB0byAxLCB3
aGVuIG5vdCBzcGVjaWZpZWQuCisgIHVpbnQzMl90IGNocm9tYV9mb3JtYXRfaWRjID0gMTsKKwor
CisgIC8vIHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIFJFVFVSTl9GQUxTRV9P
Tl9GQUlMKHBhcnNlci5Db25zdW1lQml0cyg0KSk7CisgIC8vIHNwc19tYXhfc3ViX2xheWVyc19t
aW51czE6IHUoMykKKyAgdWludDMyX3Qgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSA9IDA7Cisg
IFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmc3BzX21heF9zdWJfbGF5ZXJz
X21pbnVzMSwgMykpOworICAvLyBzcHNfdGVtcG9yYWxfaWRfbmVzdGluZ19mbGFnOiB1KDEpCisg
IFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygxKSk7CisgIC8vIHByb2Zp
bGVfdGllcl9sZXZlbCgxLCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxKS4gV2UgYXJlIGFjdXRh
bGx5IG5vdAorICAvLyB1c2luZyB0aGVtLCBzbyByZWFkL3NraXAgb3ZlciBpdC4KKyAgLy8gZ2Vu
ZXJhbF9wcm9maWxlX3NwYWNlK2dlbmVyYWxfdGllcl9mbGFnK2dlbmVyYWxfcHJmaWxlX2lkYzog
dSg4KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDEpKTsKKyAg
Ly8gZ2VuZXJhbF9wcm9maWxlX2NvbXBhdGFiaWxpdGl5X2ZsYWdbMzJdCisgIFJFVFVSTl9GQUxT
RV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoNCkpOworICAvLyBnZW5lcmFsX3Byb2dyZXNz
aXZlX3NvdXJjZV9mbGFnICsgaW50ZXJsYWNlZF9zb3VyY2VfZmxhZysgbm9uLXBhY2tlZF9jb25z
dHJhaW50CisgIC8vIGZsYWcgKyBmcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzogdSg0KQorICBS
RVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNCkpOworICAvLyBnZW5lcmFs
X3Byb2ZpbGVfaWRjIGRlY2lkZWQgZmxhZ3Mgb3IgcmVzZXJ2ZWQuICB1KDQzKQorICBSRVRVUk5f
RkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNDMpKTsKKyAgLy8gZ2VuZXJhbF9pbmJs
ZF9mbGFnIG9yIHJlc2VydmVkIDA6IHUoMSkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2Vy
LkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJO
X0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCeXRlcygxKSk7CisgIC8vIGlmIG1heF9zdWJf
bGF5ZXJzX21pbnVzMSA+PTEsIHJlYWQgdGhlIHN1YmxheWVyIHByb2ZpbGUgaW5mb3JtYXRpb24K
KyAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3M7
CisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnczsK
KyAgdWludDMyX3Qgc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudCA9IDA7CisgIHVpbnQzMl90IHN1
Yl9sYXllcl9sZXZlbF9wcmVzZW50ID0gMDsKKyAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHNw
c19tYXhfc3ViX2xheWVyc19taW51czE7IGkrKykgeworICAgICAgLy9zdWJsYXllcl9wcm9maWxl
X3ByZXNlbnRfZmxhZyBhbmQgc3VibGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAg
ICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRCaXRzKCZzdWJfbGF5ZXJfcHJvZmls
ZV9wcmVzZW50LCAxKSk7CisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEJp
dHMoJnN1Yl9sYXllcl9sZXZlbF9wcmVzZW50LCAxKSk7CisgICAgICBzdWJfbGF5ZXJfcHJvZmls
ZV9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50KTsKKyAg
ICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfbGV2
ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNwc19tYXhfc3ViX2xheWVyc19taW51czEgPiAwKSB7
CisgICAgICBmb3IgKHVpbnQzMl90IGogPSBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBqIDwg
ODsgaisrKSB7CisgICAgICAgIC8vIHJlc2VydmVkIDIgYml0czogdSgyKQorICAgICAgICAgIFJF
VFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygyKSk7CisgICAgICB9CisgIH0K
KyAgZm9yICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGsr
KykgeworICAgICAgaWYoc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnc1trXSkgey8vCisg
ICAgICAgIC8vIHN1Yl9sYXllciBwcm9maWxlX3NwYWNlL3RpZXJfZmxhZy9wcm9maWxlX2lkYy4g
aWdub3JlZC4gdSg4KQorICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3Vt
ZUJ5dGVzKDEpKTsKKyAgICAgICAgLy8gcHJvZmlsZV9jb21wYXRhYmlsaXR5X2ZsYWc6ICB1KDMy
KQorICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDQpKTsK
KyAgICAgICAgLy8gc3ViX2xheWVyIHByb2dyZXNzaXZlX3NvdXJjZV9mbGFnL2ludGVybGFjZWRf
c291cmNlX2ZsYWcvCisgICAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2ZyYW1l
X29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlM
KHBhcnNlci5Db25zdW1lQml0cyg0KSk7CisgICAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFy
ZSBwcm9maWxlX2lkYyBzcGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4gdSg0MykKKyAg
ICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDQzKSk7CisgICAg
ICAgIC8vIDEtYml0IHByb2ZpbGVfaWRjIHNwZWNpZmljIGluYmxkIGZsYWcuICBXZSBzaW1wbHkg
cmVhZC9za2lwIGl0LiB1KDEpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5D
b25zdW1lQml0cygxKSk7CisgICAgICB9CisgICAgICBpZiAoc3ViX2xheWVyX2xldmVsX3ByZXNl
bnRfZmxhZ3Nba10pIHsKKyAgICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAg
ICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoMSkpOworICAg
ICAgfQorICB9CisgIC8vc3BzX3NlcV9wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBSRVRVUk5f
RkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3Jl
ZCkpOworICAvLyBjaHJvbWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0ZBTFNFX09OX0ZB
SUwocGFyc2VyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY2hyb21hX2Zvcm1hdF9pZGMpKTsKKyAg
aWYgKGNocm9tYV9mb3JtYXRfaWRjID09IDMpIHsKKyAgICAvLyBzZXBlcmF0ZV9jb2xvdXJfcGxh
bmVfZmxhZzogdSgxKQorICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygm
c2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcsIDEpKTsKKyAgfQorICB1aW50MzJfdCBwaWNfd2lk
dGhfaW5fbHVtYV9zYW1wbGVzID0gMDsKKyAgdWludDMyX3QgcGljX2hlaWdodF9pbl9sdW1hX3Nh
bXBsZXMgPSAwOworICAvLyBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2KQorICBSRVRV
Uk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfd2lkdGhf
aW5fbHVtYV9zYW1wbGVzKSk7CisgIC8vIHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2
KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZw
aWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcykpOworICAvLyBjb25mb3JtYW5jZV93aW5kb3dfZmxh
ZzogdSgxKQorICB1aW50MzJfdCBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyA9IDA7CisgIFJFVFVS
Tl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcs
IDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNldCA9IDA7CisgIHVpbnQzMl90
IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3RvcF9vZmZz
ZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zmc2V0ID0gMDsKKyAgaWYgKGNv
bmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAgICAvLyBjb25mX3dpbl9sZWZ0X29mZnNldDog
dWUodikKKyAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxH
b2xvbWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7CisgICAgICAvLyBjb25mX3dpbl9yaWdodF9v
ZmZzZXQ6IHVlKHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9u
ZW50aWFsR29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAgIC8vIGNvbmZfd2lu
X3RvcF9vZmZzZXQ6IHVlKHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVh
ZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAgICAvLyBjb25m
X3dpbl9ib3R0b21fb2Zmc2V0OiB1ZSh2KQorICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFy
c2VyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY29uZl93aW5fYm90dG9tX29mZnNldCkpOworICB9
CisKKyAgLy9Gb3IgZW5vdWdoIHRvIGdldCB0aGUgcmVzb2x1dGlvbiBpbmZvcm1hdGlvbi4gY2Fs
Y2FsdWF0ZSBhY2NvcmRpbmcgdG8gSEVWQyBzcGVjIDcuNC4zLjIKKyAgaW50IHdpZHRoID0gMDsK
KyAgaW50IGhlaWdodCA9IDA7CisKKyAgd2lkdGggPSBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVz
OworICBoZWlnaHQgPSBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczsKKworICBpZiAoY29uZm9y
bWFuY2Vfd2luZG93X2ZsYWcpIHsKKyAgICBpbnQgc3ViX3dpZHRoX2MgPSAoKDEgPT0gY2hyb21h
X2Zvcm1hdF9pZGMpIHx8ICgyID09IGNocm9tYV9mb3JtYXRfaWRjKSkgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgICgwID09IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnKSA/IDIgOiAxOwor
ICAgIGludCBzdWJfaGVpZ2h0X2MgPSAoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgJiYgKDAgPT0g
c2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcpID8gMiA6IDE7CisgICAgLy90aGUgb2Zmc2V0IGlu
Y2x1ZGVzIHRoZSBwaXhlbCB3aXRoaW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVk
IHRvICsxIGFzIHBlciBzcGVjCisgICAgd2lkdGggLT0gc3ViX3dpZHRoX2MqKGNvbmZfd2luX3Jp
Z2h0X29mZnNldCArIGNvbmZfd2luX2xlZnRfb2Zmc2V0KTsKKyAgICBoZWlnaHQgLT0gc3ViX2hl
aWdodF9jKihjb25mX3dpbl90b3Bfb2Zmc2V0ICsgY29uZl93aW5fYm90dG9tX29mZnNldCk7Cisg
IH0KKworICB3aWR0aF8gPSB3aWR0aDsKKyAgaGVpZ2h0XyA9IGhlaWdodDsKKyAgcmV0dXJuIHRy
dWU7CisKK30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
aDI2NV9zcHNfcGFyc2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNjQyYjliZDUzNzY1YTFhMGNkNWNhNTBmOGNmZDNmYjAyMzE0NTgwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
ICBJbnRlbCBMaWNlbnNlCisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtp
dAorICogVGhpcyBpcyByZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlz
IGZyZWUgZm9yIGJvdGggYWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpZm5k
ZWYgV0VCUlRDX01PRFVMRVNfUlRQX1JUQ1BfU09VUkNFX0gyNjVfU1BTX1BBUlNFUl9IXworI2Rl
ZmluZSBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfSDI2NV9TUFNfUEFSU0VSX0hfCisK
KyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworbmFtZXNwYWNlIHdl
YnJ0YyB7CisKKy8vIEEgY2xhc3MgZm9yIHBhcnNpbmcgb3V0IHNlcXVlbmNlIHBhcmFtZXRlciBz
ZXQgKFNQUykgZGF0YSBmcm9tIGFuIEgyNjUgTkFMVS4KKy8vIEN1cnJlbnRseSwgb25seSByZXNv
bHV0aW9uIGlzIHJlYWQgd2l0aG91dCBiZWluZyBpZ25vcmVkLgorY2xhc3MgSDI2NVNwc1BhcnNl
ciB7CisgcHVibGljOgorICBIMjY1U3BzUGFyc2VyKGNvbnN0IHVpbnQ4X3QqIHNwcywgc2l6ZV90
IGJ5dGVfbGVuZ3RoKTsKKyAgLy8gUGFyc2VzIHRoZSBTUFMgdG8gY29tcGxldGlvbi4gUmV0dXJu
cyB0cnVlIGlmIHRoZSBTUFMgd2FzIHBhcnNlZCBjb3JyZWN0bHkuCisgIGJvb2wgUGFyc2UoKTsK
KyAgdWludDE2X3Qgd2lkdGgoKSB7IHJldHVybiB3aWR0aF87IH0KKyAgdWludDE2X3QgaGVpZ2h0
KCkgeyByZXR1cm4gaGVpZ2h0XzsgfQorCisgcHJpdmF0ZToKKyAgY29uc3QgdWludDhfdCogY29u
c3Qgc3BzXzsKKyAgY29uc3Qgc2l6ZV90IGJ5dGVfbGVuZ3RoXzsKKworICB1aW50MTZfdCB3aWR0
aF87CisgIHVpbnQxNl90IGhlaWdodF87Cit9OworCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisj
ZW5kaWYgIC8vIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9IMjY1X1NQU19QQVJTRVJf
SF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9y
bWF0LmNjCmluZGV4IDEyYjVlOGRkYzVhZDY3YmNkMTBhNDNhMWJjMzBiMTEwYTVhY2IxZTQuLjYy
ODEzZDJjNmYyN2NiZTgwMzAyYmNiMWE0MmVhYjViZjRiNjRhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL3J0cF9mb3JtYXQuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5jYwpAQCAtMTQsMTEg
KzE0LDE3IEBACiAKICNpbmNsdWRlICJhYnNsL3R5cGVzL3ZhcmlhbnQuaCIKICNpbmNsdWRlICJt
b2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjQuaCIKKyNpZm5kZWYgRElTQUJM
RV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1
LmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0
X3ZpZGVvX2dlbmVyaWMuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBf
Zm9ybWF0X3ZwOC5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3Jt
YXRfdnA5LmgiCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3BhY2tldGl6
ZXJfYXYxLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5j
bHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9k
dWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVkZS92
cDhfZ2xvYmFscy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkv
aW5jbHVkZS92cDlfZ2xvYmFscy5oIgogI2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNrcy5oIgpAQCAt
NDUsNiArNTEsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFJ0cFBhY2tldGl6ZXI+IFJ0cFBhY2tldGl6
ZXI6OkNyZWF0ZSgKICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJ0cFBhY2tldGl6ZXJI
MjY0PigKICAgICAgICAgICBwYXlsb2FkLCBsaW1pdHMsIGgyNjQucGFja2V0aXphdGlvbl9tb2Rl
LCAqZnJhZ21lbnRhdGlvbik7CiAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNl
IGtWaWRlb0NvZGVjSDI2NTogeworICAgICAgUlRDX0NIRUNLKGZyYWdtZW50YXRpb24pOworICAg
ICAgY29uc3QgYXV0byYgaDI2NSA9CisgICAgICAgICAgYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVy
SDI2NT4ocnRwX3ZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisgICAgICByZXR1cm4g
YWJzbDo6bWFrZV91bmlxdWU8UnRwUGFja2V0aXplckgyNjU+KAorICAgICAgICAgIHBheWxvYWQs
IGxpbWl0cywgaDI2NS5wYWNrZXRpemF0aW9uX21vZGUsICpmcmFnbWVudGF0aW9uKTsKKyAgICB9
CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjVlA4OiB7CiAgICAgICBjb25zdCBhdXRvJiB2
cDggPQogICAgICAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlclZQOD4ocnRwX3ZpZGVvX2hl
YWRlci52aWRlb190eXBlX2hlYWRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0
X2gyNjUuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuY2MKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFiMDRh
MDA3YzVlZjM1OWQxYTg2NGZkNTQxZTg3MGIzODUxNzZlNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF9mb3JtYXRfaDI2NS5jYwpAQCAtMCwwICsxLDY1MCBAQAorLyoKKyAqICBJbnRl
bCBMaWNlbnNlCisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtpdAorICog
VGhpcyBpcyByZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlzIGZyZWUg
Zm9yIGJvdGggYWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpbmNsdWRlIDxz
dHJpbmcuaD4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisj
aW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJjb21t
b25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8v
aDI2NS9oMjY1X3Nwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1
X3Zwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90
eXBlcy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2J5dGVfaW8uaCIKKyNp
bmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNpbmNs
dWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfcGFja2V0X3RvX3NlbmQuaCIKKyNpbmNs
dWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCit1c2luZyBuYW1lc3BhY2UgcnRjOworCituYW1lc3Bh
Y2Ugd2VicnRjIHsKK25hbWVzcGFjZSB7CisKK2VudW0gTmFsdVR5cGUgeworICBrVHJhaWxOID0g
MCwKKyAga1RyYWlsUiA9IDEsCisgIGtUc2FOID0gMiwKKyAga1RzYVIgPSAzLAorICBrU3RzYU4g
PSA0LAorICBrU3RzYVIgPSA1LAorICBrUmFkbE4gPSA2LAorICBrUmFkbFIgPSA3LAorICBrQmxh
V0xwID0gMTYsCisgIGtCbGFXUmFkbCA9IDE3LAorICBrQmxhTkxwID0gMTgsCisgIGtJZHJXUmFk
bCA9IDE5LAorICBrSWRyTkxwID0gMjAsCisgIGtDcmEgPSAyMSwKKyAga1ZwcyA9IDMyLAorICBr
SGV2Y1NwcyA9IDMzLAorICBrSGV2Y1BwcyA9IDM0LAorICBrSGV2Y0F1ZCA9IDM1LAorICBrUHJl
Zml4U2VpID0gMzksCisgIGtTdWZmaXhTZWkgPSA0MCwKKyAga0hldmNBcCA9IDQ4LAorICBrSGV2
Y0Z1ID0gNDkKK307CisKKy8qCisgICAwICAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg
ICAgICAgMiAgICAgICAgICAgICAgICAgICAzCisgICAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAy
IDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEKKyAgKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAgfCAg
ICBQYXlsb2FkSGRyIChUeXBlPTQ5KSAgICAgICB8ICAgRlUgaGVhZGVyICAgfCBET05MIChjb25k
KSAgIHwKKyAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLXwKKyovCisvLyBVbmxpa2UgSC4yNjQsIEhFVkMgTkFMIGhlYWRlciBp
cyAyLWJ5dGVzLgorc3RhdGljIGNvbnN0IHNpemVfdCBrSGV2Y05hbEhlYWRlclNpemUgPSAyOwor
Ly8gSC4yNjUncyBGVSBpcyBjb25zdHJ1Y3RlZCBvZiAyLWJ5dGUgcGF5bG9hZCBoZWFkZXIsIGFu
ZCAxLWJ5dGUgRlUgaGVhZGVyCitzdGF0aWMgY29uc3Qgc2l6ZV90IGtIZXZjRnVIZWFkZXJTaXpl
ID0gMTsKK3N0YXRpYyBjb25zdCBzaXplX3Qga0hldmNMZW5ndGhGaWVsZFNpemUgPSAyOworc3Rh
dGljIGNvbnN0IHNpemVfdCBrSGV2Y0FwSGVhZGVyU2l6ZSA9CisgICAga0hldmNOYWxIZWFkZXJT
aXplICsga0hldmNMZW5ndGhGaWVsZFNpemU7CisKK2VudW0gSGV2Y05hbEhkck1hc2tzIHsKKyAg
a0hldmNGQml0ID0gMHg4MCwKKyAga0hldmNUeXBlTWFzayA9IDB4N0UsCisgIGtIZXZjTGF5ZXJJ
REhNYXNrID0gMHgxLAorICBrSGV2Y0xheWVySURMTWFzayA9IDB4RjgsCisgIGtIZXZjVElETWFz
ayA9IDB4NywKKyAga0hldmNUeXBlTWFza04gPSAweDgxLAorICBrSGV2Y1R5cGVNYXNrSW5GdUhl
YWRlciA9IDB4M0YKK307CisKKy8vIEJpdCBtYXNrcyBmb3IgRlUgaGVhZGVycy4KK2VudW0gSGV2
Y0Z1RGVmcyB7IGtIZXZjU0JpdCA9IDB4ODAsIGtIZXZjRUJpdCA9IDB4NDAsIGtIZXZjRnVUeXBl
Qml0ID0gMHgzRiB9OworCisvLyBUT0RPKHBib3MpOiBBdm9pZCBwYXJzaW5nIHRoaXMgaGVyZSBh
cyB3ZWxsIGFzIGluc2lkZSB0aGUgaml0dGVyIGJ1ZmZlci4KK2Jvb2wgUGFyc2VBcFN0YXJ0T2Zm
c2V0cyhjb25zdCB1aW50OF90KiBuYWx1X3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgbGVuZ3RoX3JlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZl
Y3RvcjxzaXplX3Q+KiBvZmZzZXRzKSB7CisgIHNpemVfdCBvZmZzZXQgPSAwOworICB3aGlsZSAo
bGVuZ3RoX3JlbWFpbmluZyA+IDApIHsKKyAgICAvLyBCdWZmZXIgZG9lc24ndCBjb250YWluIHJv
b20gZm9yIGFkZGl0aW9uYWwgbmFsdSBsZW5ndGguCisgICAgaWYgKGxlbmd0aF9yZW1haW5pbmcg
PCBzaXplb2YodWludDE2X3QpKQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIHVpbnQxNl90IG5h
bHVfc2l6ZSA9IEJ5dGVSZWFkZXI8dWludDE2X3Q+OjpSZWFkQmlnRW5kaWFuKG5hbHVfcHRyKTsK
KyAgICBuYWx1X3B0ciArPSBzaXplb2YodWludDE2X3QpOworICAgIGxlbmd0aF9yZW1haW5pbmcg
LT0gc2l6ZW9mKHVpbnQxNl90KTsKKyAgICBpZiAobmFsdV9zaXplID4gbGVuZ3RoX3JlbWFpbmlu
ZykKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICBuYWx1X3B0ciArPSBuYWx1X3NpemU7CisgICAg
bGVuZ3RoX3JlbWFpbmluZyAtPSBuYWx1X3NpemU7CisKKyAgICBvZmZzZXRzLT5wdXNoX2JhY2so
b2Zmc2V0ICsga0hldmNBcEhlYWRlclNpemUpOworICAgIG9mZnNldCArPSBrSGV2Y0xlbmd0aEZp
ZWxkU2l6ZSArIG5hbHVfc2l6ZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFt
ZXNwYWNlCisKK1J0cFBhY2tldGl6ZXJIMjY1OjpSdHBQYWNrZXRpemVySDI2NSgKKyAgICBydGM6
OkFycmF5Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2FkLAorICAgIFBheWxvYWRTaXplTGltaXRz
IGxpbWl0cywKKyAgICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlLAor
ICAgIGNvbnN0IFJUUEZyYWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24pCisgICAgOiBs
aW1pdHNfKGxpbWl0cyksCisgICAgICBudW1fcGFja2V0c19sZWZ0XygwKSB7CisgIC8vIEd1YXJk
IGFnYWluc3QgdW5pbml0aWFsaXplZCBtZW1vcnkgaW4gcGFja2V0aXphdGlvbl9tb2RlLgorICBS
VENfQ0hFQ0socGFja2V0aXphdGlvbl9tb2RlID09IEgyNjVQYWNrZXRpemF0aW9uTW9kZTo6Tm9u
SW50ZXJsZWF2ZWQgfHwKKyAgICAgICAgICAgIHBhY2tldGl6YXRpb25fbW9kZSA9PSBIMjY1UGFj
a2V0aXphdGlvbk1vZGU6OlNpbmdsZU5hbFVuaXQpOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0aW9uVmVjdG9yU2l6ZTsgKytpKSB7CisgICAgY29u
c3QgdWludDhfdCogZnJhZ21lbnQgPQorICAgICAgICBwYXlsb2FkLmRhdGEoKSArIGZyYWdtZW50
YXRpb24uZnJhZ21lbnRhdGlvbk9mZnNldFtpXTsKKyAgICBjb25zdCBzaXplX3QgZnJhZ21lbnRf
bGVuZ3RoID0gZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldOworICAgIGlucHV0
X2ZyYWdtZW50c18ucHVzaF9iYWNrKEZyYWdtZW50KGZyYWdtZW50LCBmcmFnbWVudF9sZW5ndGgp
KTsKKyAgfQorCisgIGlmICghR2VuZXJhdGVQYWNrZXRzKHBhY2tldGl6YXRpb25fbW9kZSkpIHsK
KyAgICAvLyBJZiBmYWlsZWQgdG8gZ2VuZXJhdGUgYWxsIHRoZSBwYWNrZXRzLCBkaXNjYXJkIGFs
cmVhZHkgZ2VuZXJhdGVkCisgICAgLy8gcGFja2V0cyBpbiBjYXNlIHRoZSBjYWxsZXIgd291bGQg
aWdub3JlIHJldHVybiB2YWx1ZSBhbmQgc3RpbGwgdHJ5IHRvCisgICAgLy8gY2FsbCBOZXh0UGFj
a2V0KCkuCisgICAgbnVtX3BhY2tldHNfbGVmdF8gPSAwOworICAgIHdoaWxlICghcGFja2V0c18u
ZW1wdHkoKSkgeworICAgICAgcGFja2V0c18ucG9wKCk7CisgICAgfQorICB9Cit9CisKK1J0cFBh
Y2tldGl6ZXJIMjY1Ojp+UnRwUGFja2V0aXplckgyNjUoKSB7fQorCitzaXplX3QgUnRwUGFja2V0
aXplckgyNjU6Ok51bVBhY2tldHMoKSBjb25zdCB7CisgIHJldHVybiBudW1fcGFja2V0c19sZWZ0
XzsKK30KKworUnRwUGFja2V0aXplckgyNjU6OkZyYWdtZW50OjpGcmFnbWVudChjb25zdCB1aW50
OF90KiBidWZmZXIsIHNpemVfdCBsZW5ndGgpCisgICAgOiBidWZmZXIoYnVmZmVyKSwgbGVuZ3Ro
KGxlbmd0aCkge30KK1J0cFBhY2tldGl6ZXJIMjY1OjpGcmFnbWVudDo6RnJhZ21lbnQoY29uc3Qg
RnJhZ21lbnQmIGZyYWdtZW50KQorICAgIDogYnVmZmVyKGZyYWdtZW50LmJ1ZmZlciksIGxlbmd0
aChmcmFnbWVudC5sZW5ndGgpIHt9CisKKworYm9vbCBSdHBQYWNrZXRpemVySDI2NTo6R2VuZXJh
dGVQYWNrZXRzKAorICAgIEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUp
IHsKKyAgLy8gRm9yIEhFVkMgd2UgZm9sbG93IG5vbi1pbnRlcmxlYXZlZCBtb2RlIGZvciB0aGUg
cGFja2V0aXphdGlvbiwKKyAgLy8gYW5kIGRvbid0IHN1cHBvcnQgc2luZ2xlLW5hbHUgbW9kZSBh
dCBwcmVzZW50LgorICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlucHV0X2ZyYWdtZW50c18uc2l6
ZSgpOykgeworICAgIGludCBmcmFnbWVudF9sZW4gPSBpbnB1dF9mcmFnbWVudHNfW2ldLmxlbmd0
aDsKKyAgICBpbnQgc2luZ2xlX3BhY2tldF9jYXBhY2l0eSA9IGxpbWl0c18ubWF4X3BheWxvYWRf
bGVuOworICAgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSA9PSAxKQorICAgICAgc2luZ2xl
X3BhY2tldF9jYXBhY2l0eSAtPSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbjsK
KyAgICBlbHNlIGlmIChpID09IDApCisgICAgICBzaW5nbGVfcGFja2V0X2NhcGFjaXR5IC09IGxp
bWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgZWxzZSBpZiAoaSArIDEgPT0g
aW5wdXRfZnJhZ21lbnRzXy5zaXplKCkpIHsKKyAgICAgIC8vIFByZXRlbmQgdGhhdCBsYXN0IGZy
YWdtZW50IGlzIGxhcmdlciBpbnN0ZWFkIG9mIG1ha2luZyBsYXN0IHBhY2tldAorICAgICAgLy8g
c21hbGxlci4KKyAgICAgIHNpbmdsZV9wYWNrZXRfY2FwYWNpdHkgLT0gbGltaXRzXy5sYXN0X3Bh
Y2tldF9yZWR1Y3Rpb25fbGVuOworICAgIH0KKyAgICBpZiAoZnJhZ21lbnRfbGVuID4gc2luZ2xl
X3BhY2tldF9jYXBhY2l0eSkgeworICAgICAgUGFja2V0aXplRnUoaSk7CisgICAgICArK2k7Cisg
ICAgfSBlbHNlIHsKKyAgICAgIFBhY2tldGl6ZVNpbmdsZU5hbHUoaSk7CisgICAgICArK2k7Cisg
ICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpQ
YWNrZXRpemVGdShzaXplX3QgZnJhZ21lbnRfaW5kZXgpIHsKKyAgLy8gRnJhZ21lbnQgcGF5bG9h
ZCBpbnRvIHBhY2tldHMgKEZVKS4KKyAgLy8gU3RyaXAgb3V0IHRoZSBvcmlnaW5hbCBoZWFkZXIg
YW5kIGxlYXZlIHJvb20gZm9yIHRoZSBGVSBoZWFkZXIuCisgIGNvbnN0IEZyYWdtZW50JiBmcmFn
bWVudCA9IGlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOworICBQYXlsb2FkU2l6ZUxp
bWl0cyBsaW1pdHMgPSBsaW1pdHNfOworICBsaW1pdHMubWF4X3BheWxvYWRfbGVuIC09IGtIZXZj
RnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplOworCisgIC8vIFVwZGF0ZSBzaW5nbGUv
Zmlyc3QvbGFzdCBwYWNrZXQgcmVkdWN0aW9ucyB1bmxlc3MgaXQgaXMgc2luZ2xlL2ZpcnN0L2xh
c3QKKyAgLy8gZnJhZ21lbnQuCisgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSAhPSAxKSB7
CisgICAgLy8gaWYgdGhpcyBmcmFnbWVudCBpcyBwdXQgaW50byBhIHNpbmdsZSBwYWNrZXQsIGl0
IG1pZ2h0IHN0aWxsIGJlIHRoZQorICAgIC8vIGZpcnN0IG9yIHRoZSBsYXN0IHBhY2tldCBpbiB0
aGUgd2hvbGUgc2VxdWVuY2Ugb2YgcGFja2V0cy4KKyAgICBpZiAoZnJhZ21lbnRfaW5kZXggPT0g
aW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKSB7CisgICAgICBsaW1pdHMuc2luZ2xlX3BhY2tl
dF9yZWR1Y3Rpb25fbGVuID0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICAg
IH0gZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkgeworICAgICAgbGltaXRzLnNpbmdsZV9w
YWNrZXRfcmVkdWN0aW9uX2xlbiA9IGxpbWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47
CisgICAgfSBlbHNlIHsKKyAgICAgIGxpbWl0cy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW4g
PSAwOworICAgIH0KKyAgfQorICBpZiAoZnJhZ21lbnRfaW5kZXggIT0gMCkKKyAgICBsaW1pdHMu
Zmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSAwOworICBpZiAoZnJhZ21lbnRfaW5kZXggIT0g
aW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKQorICAgIGxpbWl0cy5sYXN0X3BhY2tldF9yZWR1
Y3Rpb25fbGVuID0gMDsKKworICAvLyBTdHJpcCBvdXQgdGhlIG9yaWdpbmFsIGhlYWRlci4KKyAg
c2l6ZV90IHBheWxvYWRfbGVmdCA9IGZyYWdtZW50Lmxlbmd0aCAtIGtIZXZjTmFsSGVhZGVyU2l6
ZTsKKyAgaW50IG9mZnNldCA9IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKworICBzdGQ6OnZlY3Rvcjxp
bnQ+IHBheWxvYWRfc2l6ZXMgPSBTcGxpdEFib3V0RXF1YWxseShwYXlsb2FkX2xlZnQsIGxpbWl0
cyk7CisgIGlmIChwYXlsb2FkX3NpemVzLmVtcHR5KCkpCisgICAgcmV0dXJuIGZhbHNlOworCisg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGF5bG9hZF9zaXplcy5zaXplKCk7ICsraSkgeworICAg
IGludCBwYWNrZXRfbGVuZ3RoID0gcGF5bG9hZF9zaXplc1tpXTsKKyAgICBSVENfQ0hFQ0tfR1Qo
cGFja2V0X2xlbmd0aCwgMCk7CisgICAgdWludDE2X3QgaGVhZGVyID0gKGZyYWdtZW50LmJ1ZmZl
clswXSA8PCA4KSB8IGZyYWdtZW50LmJ1ZmZlclsxXTsKKyAgICBwYWNrZXRzXy5wdXNoKFBhY2tl
dFVuaXQoRnJhZ21lbnQoZnJhZ21lbnQuYnVmZmVyICsgb2Zmc2V0LCBwYWNrZXRfbGVuZ3RoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypmaXJzdF9mcmFnbWVudD0qL2kgPT0gMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypsYXN0X2ZyYWdtZW50PSovaSA9PSBwYXls
b2FkX3NpemVzLnNpemUoKSAtIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNl
LCBoZWFkZXIpKTsKKyAgICBvZmZzZXQgKz0gcGFja2V0X2xlbmd0aDsKKyAgICBwYXlsb2FkX2xl
ZnQgLT0gcGFja2V0X2xlbmd0aDsKKyAgfQorICBudW1fcGFja2V0c19sZWZ0XyArPSBwYXlsb2Fk
X3NpemVzLnNpemUoKTsKKyAgUlRDX0NIRUNLX0VRKDAsIHBheWxvYWRfbGVmdCk7CisgIHJldHVy
biB0cnVlOworfQorCisKK2Jvb2wgUnRwUGFja2V0aXplckgyNjU6OlBhY2tldGl6ZVNpbmdsZU5h
bHUoc2l6ZV90IGZyYWdtZW50X2luZGV4KSB7CisgIC8vIEFkZCBhIHNpbmdsZSBOQUxVIHRvIHRo
ZSBxdWV1ZSwgbm8gYWdncmVnYXRpb24uCisgIHNpemVfdCBwYXlsb2FkX3NpemVfbGVmdCA9IGxp
bWl0c18ubWF4X3BheWxvYWRfbGVuOworICBpZiAoaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgPT0g
MSkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0
aW9uX2xlbjsKKyAgZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkKKyAgICBwYXlsb2FkX3Np
emVfbGVmdCAtPSBsaW1pdHNfLmZpcnN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBlbHNlIGlm
IChmcmFnbWVudF9pbmRleCArIDEgPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkpCisgICAgcGF5
bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBj
b25zdCBGcmFnbWVudCogZnJhZ21lbnQgPSAmaW5wdXRfZnJhZ21lbnRzX1tmcmFnbWVudF9pbmRl
eF07CisgIGlmIChwYXlsb2FkX3NpemVfbGVmdCA8IGZyYWdtZW50LT5sZW5ndGgpIHsKKyAgICBS
VENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGZpdCBhIGZyYWdtZW50IHRvIHBhY2tldCBp
biBTaW5nbGVOYWx1ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAicGFja2V0aXphdGlvbiBt
b2RlLiBQYXlsb2FkIHNpemUgbGVmdCAiCisgICAgICAgICAgICAgICAgICAgICAgPDwgcGF5bG9h
ZF9zaXplX2xlZnQgPDwgIiwgZnJhZ21lbnQgbGVuZ3RoICIKKyAgICAgICAgICAgICAgICAgICAg
ICA8PCBmcmFnbWVudC0+bGVuZ3RoIDw8ICIsIHBhY2tldCBjYXBhY2l0eSAiCisgICAgICAgICAg
ICAgICAgICAgICAgPDwgbGltaXRzXy5tYXhfcGF5bG9hZF9sZW47CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIFJUQ19DSEVDS19HVChmcmFnbWVudC0+bGVuZ3RoLCAwdSk7CisgIHBhY2tldHNf
LnB1c2goUGFja2V0VW5pdCgqZnJhZ21lbnQsIHRydWUgLyogZmlyc3QgKi8sIHRydWUgLyogbGFz
dCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIGFnZ3JlZ2F0ZWQgKi8s
IGZyYWdtZW50LT5idWZmZXJbMF0pKTsKKyAgKytudW1fcGFja2V0c19sZWZ0XzsKKyAgcmV0dXJu
IHRydWU7Cit9CisKK2ludCBSdHBQYWNrZXRpemVySDI2NTo6UGFja2V0aXplQXAoc2l6ZV90IGZy
YWdtZW50X2luZGV4KSB7CisgIC8vIEFnZ3JlZ2F0ZSBmcmFnbWVudHMgaW50byBvbmUgcGFja2V0
IChTVEFQLUEpLgorICBzaXplX3QgcGF5bG9hZF9zaXplX2xlZnQgPSBsaW1pdHNfLm1heF9wYXls
b2FkX2xlbjsKKyAgaWYgKGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpCisgICAgcGF5bG9h
ZF9zaXplX2xlZnQgLT0gbGltaXRzXy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgIGVs
c2UgaWYgKGZyYWdtZW50X2luZGV4ID09IDApCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGlt
aXRzXy5maXJzdF9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgaW50IGFnZ3JlZ2F0ZWRfZnJhZ21l
bnRzID0gMDsKKyAgc2l6ZV90IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoID0gMDsKKyAgY29uc3Qg
RnJhZ21lbnQqIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOwor
ICBSVENfQ0hFQ0tfR0UocGF5bG9hZF9zaXplX2xlZnQsIGZyYWdtZW50LT5sZW5ndGgpOworICAr
K251bV9wYWNrZXRzX2xlZnRfOworCisgIGF1dG8gcGF5bG9hZF9zaXplX25lZWRlZCA9IFsmXSB7
CisgICAgc2l6ZV90IGZyYWdtZW50X3NpemUgPSBmcmFnbWVudC0+bGVuZ3RoICsgZnJhZ21lbnRf
aGVhZGVyc19sZW5ndGg7CisgICAgaWYgKGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpIHsK
KyAgICAgIC8vIFNpbmdsZSBmcmFnbWVudCwgc2luZ2xlIHBhY2tldCwgcGF5bG9hZF9zaXplX2xl
ZnQgYWxyZWFkeSBhZGp1c3RlZAorICAgICAgLy8gd2l0aCBsaW1pdHNfLnNpbmdsZV9wYWNrZXRf
cmVkdWN0aW9uX2xlbi4KKyAgICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICAgIH0KKyAgICBp
ZiAoZnJhZ21lbnRfaW5kZXggPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKSB7CisgICAg
ICAvLyBMYXN0IGZyYWdtZW50LCBzbyBTdHJhcEEgbWlnaHQgYmUgdGhlIGxhc3QgcGFja2V0Lgor
ICAgICAgcmV0dXJuIGZyYWdtZW50X3NpemUgKyBsaW1pdHNfLmxhc3RfcGFja2V0X3JlZHVjdGlv
bl9sZW47CisgICAgfQorICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICB9OworCisgIHdoaWxl
IChwYXlsb2FkX3NpemVfbGVmdCA+PSBwYXlsb2FkX3NpemVfbmVlZGVkKCkpIHsKKyAgICBSVENf
Q0hFQ0tfR1QoZnJhZ21lbnQtPmxlbmd0aCwgMCk7CisgICAgcGFja2V0c18ucHVzaChQYWNrZXRV
bml0KCpmcmFnbWVudCwgYWdncmVnYXRlZF9mcmFnbWVudHMgPT0gMCwgZmFsc2UsIHRydWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50LT5idWZmZXJbMF0pKTsKKyAgICBw
YXlsb2FkX3NpemVfbGVmdCAtPSBmcmFnbWVudC0+bGVuZ3RoOworICAgIHBheWxvYWRfc2l6ZV9s
ZWZ0IC09IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoOworCisgICAgZnJhZ21lbnRfaGVhZGVyc19s
ZW5ndGggPSBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAgICAvLyBJZiB3ZSBhcmUgZ29pbmcgdG8g
dHJ5IHRvIGFnZ3JlZ2F0ZSBtb3JlIGZyYWdtZW50cyBpbnRvIHRoaXMgcGFja2V0CisgICAgLy8g
d2UgbmVlZCB0byBhZGQgdGhlIFNUQVAtQSBOQUxVIGhlYWRlciBhbmQgYSBsZW5ndGggZmllbGQg
Zm9yIHRoZSBmaXJzdAorICAgIC8vIE5BTFUgb2YgdGhpcyBwYWNrZXQuCisgICAgaWYgKGFnZ3Jl
Z2F0ZWRfZnJhZ21lbnRzID09IDApCisgICAgICBmcmFnbWVudF9oZWFkZXJzX2xlbmd0aCArPSBr
SGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAgICArK2FnZ3JlZ2F0
ZWRfZnJhZ21lbnRzOworCisgICAgLy8gTmV4dCBmcmFnbWVudC4KKyAgICArK2ZyYWdtZW50X2lu
ZGV4OworICAgIGlmIChmcmFnbWVudF9pbmRleCA9PSBpbnB1dF9mcmFnbWVudHNfLnNpemUoKSkK
KyAgICAgIGJyZWFrOworICAgIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRf
aW5kZXhdOworICB9CisgIFJUQ19DSEVDS19HVChhZ2dyZWdhdGVkX2ZyYWdtZW50cywgMCk7Cisg
IHBhY2tldHNfLmJhY2soKS5sYXN0X2ZyYWdtZW50ID0gdHJ1ZTsKKyAgcmV0dXJuIGZyYWdtZW50
X2luZGV4OworfQorCitib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpOZXh0UGFja2V0KFJ0cFBhY2tl
dFRvU2VuZCogcnRwX3BhY2tldCkgeworICBSVENfRENIRUNLKHJ0cF9wYWNrZXQpOworCisgIGlm
IChwYWNrZXRzXy5lbXB0eSgpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgUGFja2V0
VW5pdCBwYWNrZXQgPSBwYWNrZXRzXy5mcm9udCgpOworCisgIGlmIChwYWNrZXQuZmlyc3RfZnJh
Z21lbnQgJiYgcGFja2V0Lmxhc3RfZnJhZ21lbnQpIHsKKyAgICAvLyBTaW5nbGUgTkFMIHVuaXQg
cGFja2V0LgorICAgIHNpemVfdCBieXRlc190b19zZW5kID0gcGFja2V0LnNvdXJjZV9mcmFnbWVu
dC5sZW5ndGg7CisgICAgdWludDhfdCogYnVmZmVyID0gcnRwX3BhY2tldC0+QWxsb2NhdGVQYXls
b2FkKGJ5dGVzX3RvX3NlbmQpOworICAgIG1lbWNweShidWZmZXIsIHBhY2tldC5zb3VyY2VfZnJh
Z21lbnQuYnVmZmVyLCBieXRlc190b19zZW5kKTsKKyAgICBwYWNrZXRzXy5wb3AoKTsKKyAgICBp
bnB1dF9mcmFnbWVudHNfLnBvcF9mcm9udCgpOworICB9IGVsc2UgaWYgKHBhY2tldC5hZ2dyZWdh
dGVkKSB7CisgICAgYm9vbCBpc19sYXN0X3BhY2tldCA9IG51bV9wYWNrZXRzX2xlZnRfID09IDE7
CisgICAgTmV4dEFnZ3JlZ2F0ZVBhY2tldChydHBfcGFja2V0LCBpc19sYXN0X3BhY2tldCk7Cisg
IH0gZWxzZSB7CisgICAgTmV4dEZyYWdtZW50UGFja2V0KHJ0cF9wYWNrZXQpOworICB9CisgIHJ0
cF9wYWNrZXQtPlNldE1hcmtlcihwYWNrZXRzXy5lbXB0eSgpKTsKKyAgLS1udW1fcGFja2V0c19s
ZWZ0XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUnRwUGFja2V0aXplckgyNjU6Ok5leHRB
Z2dyZWdhdGVQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGxhc3QpIHsKKyAgc2l6ZV90IHBh
eWxvYWRfY2FwYWNpdHkgPSBydHBfcGFja2V0LT5GcmVlQ2FwYWNpdHkoKTsKKyAgUlRDX0NIRUNL
X0dFKHBheWxvYWRfY2FwYWNpdHksIGtIZXZjTmFsSGVhZGVyU2l6ZSk7CisgIHVpbnQ4X3QqIGJ1
ZmZlciA9IHJ0cF9wYWNrZXQtPkFsbG9jYXRlUGF5bG9hZChwYXlsb2FkX2NhcGFjaXR5KTsKKwor
ICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFja2V0c18uZnJvbnQoKTsKKyAgUlRDX0NIRUNLKHBh
Y2tldC0+Zmlyc3RfZnJhZ21lbnQpOworICB1aW50OF90IHBheWxvYWRfaGRyX2ggPSBwYWNrZXQt
PmhlYWRlciA+PiA4OworICB1aW50OF90IHBheWxvYWRfaGRyX2wgPSBwYWNrZXQtPmhlYWRlciAm
IDB4RkY7CisgIHVpbnQ4X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRfaGRyX2ggJiBrSGV2Y0xheWVy
SURITWFzazsKKworICBwYXlsb2FkX2hkcl9oID0KKyAgICAgIChwYXlsb2FkX2hkcl9oICYga0hl
dmNUeXBlTWFza04pIHwgKGtIZXZjQXAgPDwgMSkgfCBsYXllcl9pZF9oOworCisgIGJ1ZmZlclsw
XSA9IHBheWxvYWRfaGRyX2g7CisgIGJ1ZmZlclsxXSA9IHBheWxvYWRfaGRyX2w7CisgIGludCBp
bmRleCA9IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKyAgYm9vbCBpc19sYXN0X2ZyYWdtZW50ID0gcGFj
a2V0LT5sYXN0X2ZyYWdtZW50OworICB3aGlsZSAocGFja2V0LT5hZ2dyZWdhdGVkKSB7CisgICAg
Ly8gQWRkIE5BTCB1bml0IGxlbmd0aCBmaWVsZC4KKyAgICBjb25zdCBGcmFnbWVudCYgZnJhZ21l
bnQgPSBwYWNrZXQtPnNvdXJjZV9mcmFnbWVudDsKKyAgICBCeXRlV3JpdGVyPHVpbnQxNl90Pjo6
V3JpdGVCaWdFbmRpYW4oJmJ1ZmZlcltpbmRleF0sIGZyYWdtZW50Lmxlbmd0aCk7CisgICAgaW5k
ZXggKz0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAgLy8gQWRkIE5BTCB1bml0LgorICAgIG1l
bWNweSgmYnVmZmVyW2luZGV4XSwgZnJhZ21lbnQuYnVmZmVyLCBmcmFnbWVudC5sZW5ndGgpOwor
ICAgIGluZGV4ICs9IGZyYWdtZW50Lmxlbmd0aDsKKyAgICBwYWNrZXRzXy5wb3AoKTsKKyAgICBp
bnB1dF9mcmFnbWVudHNfLnBvcF9mcm9udCgpOworICAgIGlmIChpc19sYXN0X2ZyYWdtZW50KQor
ICAgICAgYnJlYWs7CisgICAgcGFja2V0ID0gJnBhY2tldHNfLmZyb250KCk7CisgICAgaXNfbGFz
dF9mcmFnbWVudCA9IHBhY2tldC0+bGFzdF9mcmFnbWVudDsKKyAgfQorICBSVENfQ0hFQ0soaXNf
bGFzdF9mcmFnbWVudCk7CisgIHJ0cF9wYWNrZXQtPlNldFBheWxvYWRTaXplKGluZGV4KTsKK30K
Kwordm9pZCBSdHBQYWNrZXRpemVySDI2NTo6TmV4dEZyYWdtZW50UGFja2V0KFJ0cFBhY2tldFRv
U2VuZCogcnRwX3BhY2tldCkgeworICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFja2V0c18uZnJv
bnQoKTsKKyAgLy8gTkFMIHVuaXQgZnJhZ21lbnRlZCBvdmVyIG11bHRpcGxlIHBhY2tldHMgKEZV
KS4KKyAgLy8gV2UgZG8gbm90IHNlbmQgb3JpZ2luYWwgTkFMVSBoZWFkZXIsIHNvIGl0IHdpbGwg
YmUgcmVwbGFjZWQgYnkgdGhlCisgIC8vIFBheWxvYWRIZHIgb2YgdGhlIGZpcnN0IHBhY2tldC4K
KyAgdWludDhfdCBwYXlsb2FkX2hkcl9oID0KKyAgICAgIHBhY2tldC0+aGVhZGVyID4+IDg7ICAv
LyAxLWJpdCBGLCA2LWJpdCB0eXBlLCAxLWJpdCBsYXllcklEIGhpZ2hlc3QtYml0CisgIHVpbnQ4
X3QgcGF5bG9hZF9oZHJfbCA9IHBhY2tldC0+aGVhZGVyICYgMHhGRjsKKyAgdWludDhfdCBsYXll
cl9pZF9oID0gcGF5bG9hZF9oZHJfaCAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1aW50OF90IGZ1
X2hlYWRlciA9IDA7CisgIC8vIFMgfCBFIHw2IGJpdCB0eXBlLgorICBmdV9oZWFkZXIgfD0gKHBh
Y2tldC0+Zmlyc3RfZnJhZ21lbnQgPyBrSGV2Y1NCaXQgOiAwKTsKKyAgZnVfaGVhZGVyIHw9IChw
YWNrZXQtPmxhc3RfZnJhZ21lbnQgPyBrSGV2Y0VCaXQgOiAwKTsKKyAgdWludDhfdCB0eXBlID0g
KHBheWxvYWRfaGRyX2ggJiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICBmdV9oZWFkZXIgfD0gdHlw
ZTsKKyAgLy8gTm93IHVwZGF0ZSBwYXlsb2FkX2hkcl9oIHdpdGggRlUgdHlwZS4KKyAgcGF5bG9h
ZF9oZHJfaCA9CisgICAgICAocGF5bG9hZF9oZHJfaCAmIGtIZXZjVHlwZU1hc2tOKSB8IChrSGV2
Y0Z1IDw8IDEpIHwgbGF5ZXJfaWRfaDsKKyAgY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50ID0gcGFj
a2V0LT5zb3VyY2VfZnJhZ21lbnQ7CisgIHVpbnQ4X3QqIGJ1ZmZlciA9IHJ0cF9wYWNrZXQtPkFs
bG9jYXRlUGF5bG9hZCgKKyAgICAgIGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJT
aXplICsgZnJhZ21lbnQubGVuZ3RoKTsKKyAgYnVmZmVyWzBdID0gcGF5bG9hZF9oZHJfaDsKKyAg
YnVmZmVyWzFdID0gcGF5bG9hZF9oZHJfbDsKKyAgYnVmZmVyWzJdID0gZnVfaGVhZGVyOworCisg
IGlmIChwYWNrZXQtPmxhc3RfZnJhZ21lbnQpIHsKKyAgICBtZW1jcHkoYnVmZmVyICsga0hldmNG
dUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZlciwKKyAgICAg
ICAgICAgZnJhZ21lbnQubGVuZ3RoKTsKKyAgfSBlbHNlIHsKKyAgICBtZW1jcHkoYnVmZmVyICsg
a0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZlciwK
KyAgICAgICAgICAgZnJhZ21lbnQubGVuZ3RoKTsKKyAgfQorICBwYWNrZXRzXy5wb3AoKTsKK30K
KworYWJzbDo6b3B0aW9uYWw8VmlkZW9SdHBEZXBhY2tldGl6ZXI6OlBhcnNlZFJ0cFBheWxvYWQ+
IFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6UGFyc2UoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJ0Yzo6Q29weU9uV3JpdGVCdWZmZXIgcnRwX3BheWxvYWQpIHsKKyAgc2l6ZV90
IHBheWxvYWRfZGF0YV9sZW5ndGggPSBydHBfcGF5bG9hZC5zaXplKCk7CisgIGlmIChwYXlsb2Fk
X2RhdGFfbGVuZ3RoID09IDApIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRW1wdHkgcGF5
bG9hZC4iOworICAgIHJldHVybiBhYnNsOjpudWxsb3B0OworICB9CisKKyAgUGFyc2VkUnRwUGF5
bG9hZCBwYXJzZWRfcGF5bG9hZDsKKworICB1aW50OF90KiBwYXlsb2FkX2RhdGEgPSBydHBfcGF5
bG9hZC5kYXRhKCk7CisKKyAgb2Zmc2V0XyA9IDA7CisgIGxlbmd0aF8gPSBwYXlsb2FkX2RhdGFf
bGVuZ3RoOworICBtb2RpZmllZF9idWZmZXJfLnJlc2V0KCk7CisKKyAgdWludDhfdCBuYWxfdHlw
ZSA9IChwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICBwYXJzZWRfcGF5
bG9hZC52aWRlb19oZWFkZXIKKyAgICAgIC52aWRlb190eXBlX2hlYWRlci5lbXBsYWNlPFJUUFZp
ZGVvSGVhZGVySDI2NT4oKTsKKworICBpZiAobmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtG
VSkgeworICAgIC8vIEZyYWdtZW50ZWQgTkFMIHVuaXRzIChGVS1BKS4KKyAgICBpZiAoIVBhcnNl
RnVOYWx1KCZwYXJzZWRfcGF5bG9hZCwgcGF5bG9hZF9kYXRhKSkKKyAgICAgIHJldHVybiBhYnNs
OjpudWxsb3B0OworICB9IGVsc2UgeworICAgIC8vIFdlIGhhbmRsZSBTVEFQLUEgYW5kIHNpbmds
ZSBOQUxVJ3MgdGhlIHNhbWUgd2F5IGhlcmUuIFRoZSBqaXR0ZXIgYnVmZmVyCisgICAgLy8gd2ls
bCBkZXBhY2tldGl6ZSB0aGUgU1RBUC1BIGludG8gTkFMIHVuaXRzIGxhdGVyLgorICAgIC8vIFRP
RE8oc3ByYW5nKTogUGFyc2UgU1RBUC1BIG9mZnNldHMgaGVyZSBhbmQgc3RvcmUgaW4gZnJhZ21l
bnRhdGlvbiB2ZWMuCisgICAgaWYgKCFQcm9jZXNzQXBPclNpbmdsZU5hbHUoJnBhcnNlZF9wYXls
b2FkLCBwYXlsb2FkX2RhdGEpKQorICAgICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7CisgIH0KKwor
ICBjb25zdCB1aW50OF90KiBwYXlsb2FkID0KKyAgICAgIG1vZGlmaWVkX2J1ZmZlcl8gPyBtb2Rp
ZmllZF9idWZmZXJfLT5kYXRhKCkgOiBwYXlsb2FkX2RhdGE7CisKKyAgcGFyc2VkX3BheWxvYWQu
dmlkZW9fcGF5bG9hZCA9IHsgcGF5bG9hZCArIG9mZnNldF8sIGxlbmd0aF8gfTsKKyAgcmV0dXJu
IHBhcnNlZF9wYXlsb2FkOworfQorCitib29sIFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6UHJv
Y2Vzc0FwT3JTaW5nbGVOYWx1KAorICAgIFBhcnNlZFJ0cFBheWxvYWQqIHBhcnNlZF9wYXlsb2Fk
LAorICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSkgeworICBwYXJzZWRfcGF5bG9hZC0+
dmlkZW9faGVhZGVyLndpZHRoID0gMDsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5o
ZWlnaHQgPSAwOworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmNvZGVjID0ga1ZpZGVv
Q29kZWNIMjY1OworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmlzX2ZpcnN0X3BhY2tl
dF9pbl9mcmFtZSA9IHRydWU7CisgIGF1dG8mIGgyNjVfaGVhZGVyID0gYWJzbDo6Z2V0PFJUUFZp
ZGVvSGVhZGVySDI2NT4oCisgICAgICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLnZpZGVv
X3R5cGVfaGVhZGVyKTsKKworICBjb25zdCB1aW50OF90KiBuYWx1X3N0YXJ0ID0gcGF5bG9hZF9k
YXRhICsga0hldmNOYWxIZWFkZXJTaXplOworICBjb25zdCBzaXplX3QgbmFsdV9sZW5ndGggPSBs
ZW5ndGhfIC0ga0hldmNOYWxIZWFkZXJTaXplOworICB1aW50OF90IG5hbF90eXBlID0gKHBheWxv
YWRfZGF0YVswXSAmIGtIZXZjVHlwZU1hc2spID4+IDE7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4g
bmFsdV9zdGFydF9vZmZzZXRzOworICBpZiAobmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtB
UCkgeworICAgIC8vIFNraXAgdGhlIFN0YXBBIGhlYWRlciAoU3RhcEEgTkFMIHR5cGUgKyBsZW5n
dGgpLgorICAgIGlmIChsZW5ndGhfIDw9IGtIZXZjQXBIZWFkZXJTaXplKSB7CisgICAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiQVAgaGVhZGVyIHRydW5jYXRlZC4iOworICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIGlmICghUGFyc2VBcFN0YXJ0T2Zmc2V0cyhuYWx1X3N0YXJ0LCBu
YWx1X2xlbmd0aCwgJm5hbHVfc3RhcnRfb2Zmc2V0cykpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJS
T1IpIDw8ICJBUCBwYWNrZXQgd2l0aCBpbmNvcnJlY3QgTkFMVSBwYWNrZXQgbGVuZ3Rocy4iOwor
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGgyNjVfaGVhZGVyLnBhY2tldGl6YXRp
b25fdHlwZSA9IGtIMjY1QVA7CisgICAgLy8gbmFsX3R5cGUgPSAocGF5bG9hZF9kYXRhW2tIZXZj
QXBIZWFkZXJTaXplXSAmIGtIZXZjVHlwZU1hc2spID4+IDE7CisgIH0gZWxzZSB7CisgICAgaDI2
NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVTaW5nbGVOYWx1OworICAgIG5hbHVf
c3RhcnRfb2Zmc2V0cy5wdXNoX2JhY2soMCk7CisgIH0KKyAgaDI2NV9oZWFkZXIubmFsdV90eXBl
ID0gbmFsX3R5cGU7CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9
IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZURlbHRhOworCisgIG5hbHVfc3RhcnRfb2Zmc2V0
cy5wdXNoX2JhY2sobGVuZ3RoXyArIGtIZXZjTGVuZ3RoRmllbGRTaXplKTsgIC8vIEVuZCBvZmZz
ZXQuCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFsdV9zdGFydF9vZmZzZXRzLnNpemUoKSAt
IDE7ICsraSkgeworICAgIHNpemVfdCBzdGFydF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29mZnNldHNb
aV07CisgICAgLy8gRW5kIG9mZnNldCBpcyBhY3R1YWxseSBzdGFydCBvZmZzZXQgZm9yIG5leHQg
dW5pdCwgZXhjbHVkaW5nIGxlbmd0aCBmaWVsZAorICAgIC8vIHNvIHJlbW92ZSB0aGF0IGZyb20g
dGhpcyB1bml0cyBsZW5ndGguCisgICAgc2l6ZV90IGVuZF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29m
ZnNldHNbaSArIDFdIC0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAgaWYgKGVuZF9vZmZzZXQg
LSBzdGFydF9vZmZzZXQgPCBrSGV2Y05hbEhlYWRlclNpemUpIHsgIC8vIFNhbWUgYXMgSC4yNjQu
CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiQVAgcGFja2V0IHRvbyBzaG9ydCI7CisgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgSDI2NU5hbHVJbmZvIG5hbHU7CisgICAgbmFs
dS50eXBlID0gKHBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdICYga0hldmNUeXBlTWFzaykgPj4g
MTsKKyAgICBuYWx1LnZwc19pZCA9IC0xOworICAgIG5hbHUuc3BzX2lkID0gLTE7CisgICAgbmFs
dS5wcHNfaWQgPSAtMTsKKyAgICBzdGFydF9vZmZzZXQgKz0ga0hldmNOYWxIZWFkZXJTaXplOwor
ICAgIHN3aXRjaCAobmFsdS50eXBlKSB7CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprVnBz
OiB7CisgICAgICAgIGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiB2cHMg
PSBIMjY1VnBzUGFyc2VyOjpQYXJzZVZwcygKKyAgICAgICAgICAgICZwYXlsb2FkX2RhdGFbc3Rh
cnRfb2Zmc2V0XSwgZW5kX29mZnNldCAtIHN0YXJ0X29mZnNldCk7CisgICAgICAgIGlmICh2cHMp
IHsKKyAgICAgICAgICBuYWx1LnZwc19pZCA9IHZwcy0+aWQ7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUyBpZCBm
cm9tIFZQUyBzbGljZS4iOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAg
ICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1NwczogeworICAgICAgICAvLyBDaGVjayBpZiBWVUkg
aXMgcHJlc2VudCBpbiBTUFMgYW5kIGlmIGl0IG5lZWRzIHRvIGJlIG1vZGlmaWVkIHRvCisgICAg
ICAgIC8vIGF2b2lkIGV4Y2Vzc2l2ZSBkZWNvZGVyIGxhdGVuY3kuCisKKyAgICAgICAgLy8gQ29w
eSBhbnkgcHJldmlvdXMgZGF0YSBmaXJzdCAobGlrZWx5IGp1c3QgdGhlIGZpcnN0IGhlYWRlciku
CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gb3V0cHV0X2J1ZmZlcihuZXcg
cnRjOjpCdWZmZXIoKSk7CisgICAgICAgIGlmIChzdGFydF9vZmZzZXQpCisgICAgICAgICAgb3V0
cHV0X2J1ZmZlci0+QXBwZW5kRGF0YShwYXlsb2FkX2RhdGEsIHN0YXJ0X29mZnNldCk7CisKKyAg
ICAgICAgYWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IHNwcyA9IEgyNjVT
cHNQYXJzZXI6OlBhcnNlU3BzKAorICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtzdGFydF9vZmZz
ZXRdLCBlbmRfb2Zmc2V0IC0gc3RhcnRfb2Zmc2V0KTsKKworICAgICAgICBpZiAoc3BzKSB7Cisg
ICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci53aWR0aCA9IHNwcy0+d2lkdGg7
CisgICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5oZWlnaHQgPSBzcHMtPmhl
aWdodDsKKyAgICAgICAgICBuYWx1LnNwc19pZCA9IHNwcy0+aWQ7CisgICAgICAgICAgbmFsdS52
cHNfaWQgPSBzcHMtPnZwc19pZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBSVENfTE9H
KExTX1dBUk5JTkcpCisgICAgICAgICAgICAgIDw8ICJGYWlsZWQgdG8gcGFyc2UgU1BTIGFuZCBW
UFMgaWQgZnJvbSBTUFMgc2xpY2UuIjsKKyAgICAgICAgfQorICAgICAgICBwYXJzZWRfcGF5bG9h
ZC0+dmlkZW9faGVhZGVyLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVL
ZXk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6
a1BwczogeworICAgICAgICB1aW50MzJfdCBwcHNfaWQ7CisgICAgICAgIHVpbnQzMl90IHNwc19p
ZDsKKyAgICAgICAgaWYgKEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRzKCZwYXlsb2FkX2RhdGFb
c3RhcnRfb2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
ZF9vZmZzZXQgLSBzdGFydF9vZmZzZXQsICZwcHNfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmc3BzX2lkKSkgeworICAgICAgICAgIG5hbHUucHBzX2lkID0gcHBz
X2lkOworICAgICAgICAgIG5hbHUuc3BzX2lkID0gc3BzX2lkOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgPDwgIkZhaWxlZCB0
byBwYXJzZSBQUFMgaWQgYW5kIFNQUyBpZCBmcm9tIFBQUyBzbGljZS4iOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkcldS
YWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McDoKKyAgICAgIGNhc2UgSDI2
NTo6TmFsdVR5cGU6OmtDcmE6CisgICAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIu
ZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZUtleTsKKyAgICAgIGNhc2Ug
SDI2NTo6TmFsdVR5cGU6OmtUcmFpbE46CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprVHJh
aWxSOiB7CisgICAgICAgIGFic2w6Om9wdGlvbmFsPHVpbnQzMl90PiBwcHNfaWQgPQorICAgICAg
ICAgICAgSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3Ao
CisgICAgICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdLCBlbmRfb2Zmc2V0
IC0gc3RhcnRfb2Zmc2V0LAorICAgICAgICAgICAgICAgIG5hbHUudHlwZSk7CisgICAgICAgIGlm
IChwcHNfaWQpIHsKKyAgICAgICAgICBuYWx1LnBwc19pZCA9ICpwcHNfaWQ7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNl
IFBQUyBpZCBmcm9tIHNsaWNlIG9mIHR5cGU6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw8IHN0YXRpY19jYXN0PGludD4obmFsdS50eXBlKTsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICAgIH0KKyAgICAgIC8vIFNsaWNlcyBiZWxvdyBkb24ndCBjb250YWluIFNQUyBv
ciBQUFMgaWRzLgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0F1ZDoKKyAgICAgIGNhc2Ug
SDI2NTo6TmFsdVR5cGU6OmtUc2FOOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1RzYVI6
CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3RzYU46CisgICAgICBjYXNlIEgyNjU6Ok5h
bHVUeXBlOjprU3RzYVI6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUmFkbE46CisgICAg
ICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUmFkbFI6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBl
OjprQmxhV0xwOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0JsYVdSYWRsOgorICAgICAg
Y2FzZSBIMjY1OjpOYWx1VHlwZTo6a1ByZWZpeFNlaToKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5
cGU6OmtTdWZmaXhTZWk6CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a0FQOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0ZVOgorICAgICAgICBSVENfTE9H
KExTX1dBUk5JTkcpIDw8ICJVbmV4cGVjdGVkIEFQIG9yIEZVIHJlY2VpdmVkLiI7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3Ro
ID09IGtNYXhOYWx1c1BlclBhY2tldCkgeworICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAg
ICAgICAgIDw8ICJSZWNlaXZlZCBwYWNrZXQgY29udGFpbmluZyBtb3JlIHRoYW4gIiA8PCBrTWF4
TmFsdXNQZXJQYWNrZXQKKyAgICAgICAgICA8PCAiIE5BTCB1bml0cy4gV2lsbCBub3Qga2VlcCB0
cmFjayBzcHMgYW5kIHBwcyBpZHMgZm9yIGFsbCBvZiB0aGVtLiI7CisgICAgfSBlbHNlIHsKKyAg
ICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCsrXSA9IG5hbHU7
CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFZpZGVvUnRwRGVwYWNrZXRp
emVySDI2NTo6UGFyc2VGdU5hbHUoCisgICAgUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3BheWxv
YWQsCisgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhKSB7CisgIGlmIChsZW5ndGhfIDwg
a0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUpIHsKKyAgICBSVENfTE9HKExT
X0VSUk9SKSA8PCAiRlUgTkFMIHVuaXRzIHRydW5jYXRlZC4iOworICAgIHJldHVybiBmYWxzZTsK
KyAgfQorICB1aW50OF90IGYgPSBwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y0ZCaXQ7CisgIHVpbnQ4
X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRfZGF0YVswXSAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1
aW50OF90IGxheWVyX2lkX2xfdW5zaGlmdGVkID0gcGF5bG9hZF9kYXRhWzFdICYga0hldmNMYXll
cklETE1hc2s7CisgIHVpbnQ4X3QgdGlkID0gcGF5bG9hZF9kYXRhWzFdICYga0hldmNUSURNYXNr
OworCisgIHVpbnQ4X3Qgb3JpZ2luYWxfbmFsX3R5cGUgPSBwYXlsb2FkX2RhdGFbMl0gJiBrSGV2
Y1R5cGVNYXNrSW5GdUhlYWRlcjsKKyAgYm9vbCBmaXJzdF9mcmFnbWVudCA9IHBheWxvYWRfZGF0
YVsyXSAmIGtIZXZjU0JpdDsKKyAgSDI2NU5hbHVJbmZvIG5hbHU7CisgIG5hbHUudHlwZSA9IG9y
aWdpbmFsX25hbF90eXBlOworICBuYWx1LnZwc19pZCA9IC0xOworICBuYWx1LnNwc19pZCA9IC0x
OworICBuYWx1LnBwc19pZCA9IC0xOworICBpZiAoZmlyc3RfZnJhZ21lbnQpIHsKKyAgICBvZmZz
ZXRfID0gMTsKKyAgICBsZW5ndGhfIC09IDE7CisgICAgYWJzbDo6b3B0aW9uYWw8dWludDMyX3Q+
IHBwc19pZCA9CisgICAgICAgIEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRGcm9tU2xpY2VTZWdt
ZW50TGF5ZXJSYnNwKAorICAgICAgICAgICAgcGF5bG9hZF9kYXRhICsga0hldmNOYWxIZWFkZXJT
aXplICsga0hldmNGdUhlYWRlclNpemUsCisgICAgICAgICAgICBsZW5ndGhfIC0ga0hldmNGdUhl
YWRlclNpemUsIG5hbHUudHlwZSk7CisgICAgaWYgKHBwc19pZCkgeworICAgICAgbmFsdS5wcHNf
aWQgPSAqcHBzX2lkOworICAgIH0gZWxzZSB7CisgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisg
ICAgICAgICAgPDwgIkZhaWxlZCB0byBwYXJzZSBQUFMgZnJvbSBmaXJzdCBmcmFnbWVudCBvZiBG
VSBOQUwgIgorICAgICAgICAgICAgICJ1bml0IHdpdGggb3JpZ2luYWwgdHlwZTogIgorICAgICAg
ICAgIDw8IHN0YXRpY19jYXN0PGludD4obmFsdS50eXBlKTsKKyAgICB9CisgICAgdWludDhfdCog
cGF5bG9hZCA9IGNvbnN0X2Nhc3Q8dWludDhfdCo+KHBheWxvYWRfZGF0YSArIG9mZnNldF8pOwor
ICAgIHBheWxvYWRbMF0gPSBmIHwgb3JpZ2luYWxfbmFsX3R5cGUgPDwgMSB8IGxheWVyX2lkX2g7
CisgICAgcGF5bG9hZFsxXSA9IGxheWVyX2lkX2xfdW5zaGlmdGVkIHwgdGlkOworICB9IGVsc2Ug
eworICAgIG9mZnNldF8gPSBrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZTsK
KyAgICBsZW5ndGhfIC09IChrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZSk7
CisgIH0KKworICBpZiAob3JpZ2luYWxfbmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJX
UmFkbAorICAgICAgfHwgb3JpZ2luYWxfbmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJO
THAKKyAgICAgIHx8IG9yaWdpbmFsX25hbF90eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprQ3JhKSB7
CisgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFt
ZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICB9IGVsc2UgeworICAgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZURlbHRh
OworICB9CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIud2lkdGggPSAwOworICBwYXJz
ZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmhlaWdodCA9IDA7CisgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIuY29kZWMgPSBrVmlkZW9Db2RlY0gyNjU7CisgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lID0gZmlyc3RfZnJhZ21lbnQ7Cisg
IGF1dG8mIGgyNjVfaGVhZGVyID0gYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4oCisgICAg
ICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKKyAgaDI2
NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVGVTsKKyAgaDI2NV9oZWFkZXIubmFs
dV90eXBlID0gb3JpZ2luYWxfbmFsX3R5cGU7CisgIGlmIChmaXJzdF9mcmFnbWVudCkgeworICAg
IGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aF0gPSBuYWx1OworICAg
IGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCA9IDE7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisK
K30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRf
aDI2NS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk1ZjZlYmJl
ZDQxM2ZlMzYxNzNlN2FhN2Q3YTE2MWJmYTRlYjRlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL3J0cF9mb3JtYXRfaDI2NS5oCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogIEludGVsIExp
Y2Vuc2UKKyAqIFNlZSBodHRwczovLzAxLm9yZy9vcGVuLXdlYnJ0Yy10b29sa2l0CisgKiBUaGlz
IGlzIHJlbGVhc2VkIHVuZGVyIEFwYWNoZSBMaWNlbnNlIDIuMCBhbmQgaXQgaXMgZnJlZSBmb3Ig
Ym90aCBhY2FkZW1pYyBhbmQgY29tbWVyY2lhbCB1c2UuCisgKi8KKworI2lmbmRlZiBXRUJSVENf
TU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfUlRQX0ZPUk1BVF9IMjY1X0hfCisjZGVmaW5lIFdFQlJU
Q19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9SVFBfRk9STUFUX0gyNjVfSF8KKworI2luY2x1ZGUg
PHF1ZXVlPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlICJhcGkvYXJyYXlfdmlldy5oIgor
I2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVk
ZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9wYWNrZXRfdG9fc2VuZC5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyLmgiCisjaW5jbHVkZSAibW9kdWxlcy92
aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNpbmNsdWRl
ICJydGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9jb25zdHJ1Y3Rvcl9tYWdp
Yy5oIgorCituYW1lc3BhY2Ugd2VicnRjIHsKKworY2xhc3MgUnRwUGFja2V0aXplckgyNjUgOiBw
dWJsaWMgUnRwUGFja2V0aXplciB7CisgcHVibGljOgorICAvLyBJbml0aWFsaXplIHdpdGggcGF5
bG9hZCBmcm9tIGVuY29kZXIuCisgIC8vIFRoZSBwYXlsb2FkX2RhdGEgbXVzdCBiZSBleGFjdGx5
IG9uZSBlbmNvZGVkIEguMjY1IGZyYW1lLgorICBSdHBQYWNrZXRpemVySDI2NShydGM6OkFycmF5
Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2FkLAorICAgICAgICAgICAgICAgICAgICBQYXlsb2Fk
U2l6ZUxpbWl0cyBsaW1pdHMsCisgICAgICAgICAgICAgICAgICAgIEgyNjVQYWNrZXRpemF0aW9u
TW9kZSBwYWNrZXRpemF0aW9uX21vZGUsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJUUEZy
YWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24pOworCisgICB+UnRwUGFja2V0aXplckgy
NjUoKSBvdmVycmlkZTsKKworICBzaXplX3QgTnVtUGFja2V0cygpIGNvbnN0IG92ZXJyaWRlOwor
CisgIC8vIEdldCB0aGUgbmV4dCBwYXlsb2FkIHdpdGggSC4yNjUgcGF5bG9hZCBoZWFkZXIuCisg
IC8vIGJ1ZmZlciBpcyBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIG91dHB1dCB3aWxsIGJlIHdyaXR0
ZW4uCisgIC8vIGJ5dGVzX3RvX3NlbmQgaXMgYW4gb3V0cHV0IHZhcmlhYmxlIHRoYXQgd2lsbCBj
b250YWluIG51bWJlciBvZiBieXRlcworICAvLyB3cml0dGVuIHRvIGJ1ZmZlci4gVGhlIHBhcmFt
ZXRlciBsYXN0X3BhY2tldCBpcyB0cnVlIGZvciB0aGUgbGFzdCBwYWNrZXQgb2YKKyAgLy8gdGhl
IGZyYW1lLCBmYWxzZSBvdGhlcndpc2UgKGkuZS4sIGNhbGwgdGhlIGZ1bmN0aW9uIGFnYWluIHRv
IGdldCB0aGUKKyAgLy8gbmV4dCBwYWNrZXQpLgorICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vz
cyBvciBmYWxzZSBpZiB0aGVyZSB3YXMgbm8gcGF5bG9hZCB0byBwYWNrZXRpemUuCisgIGJvb2wg
TmV4dFBhY2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpIG92ZXJyaWRlOworCisgcHJp
dmF0ZToKKyAgc3RydWN0IFBhY2tldCB7CisgICAgUGFja2V0KHNpemVfdCBvZmZzZXQsCisgICAg
ICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICBib29sIGZpcnN0X2ZyYWdtZW50LAorICAg
ICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAgICAgICAgIGJvb2wgYWdncmVnYXRlZCwK
KyAgICAgICAgICAgdWludDE2X3QgaGVhZGVyKQorICAgICAgICA6IG9mZnNldChvZmZzZXQpLAor
ICAgICAgICAgIHNpemUoc2l6ZSksCisgICAgICAgICAgZmlyc3RfZnJhZ21lbnQoZmlyc3RfZnJh
Z21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQobGFzdF9mcmFnbWVudCksCisgICAgICAg
ICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAgICAgICBoZWFkZXIoaGVhZGVyKSB7fQor
CisgICAgc2l6ZV90IG9mZnNldDsKKyAgICBzaXplX3Qgc2l6ZTsKKyAgICBib29sIGZpcnN0X2Zy
YWdtZW50OworICAgIGJvb2wgbGFzdF9mcmFnbWVudDsKKyAgICBib29sIGFnZ3JlZ2F0ZWQ7Cisg
ICAgdWludDE2X3QgaGVhZGVyOyAgLy8gRGlmZmVyZW50IGZyb20gSDI2NAorICB9OworICBzdHJ1
Y3QgRnJhZ21lbnQgeworICAgIEZyYWdtZW50KGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90
IGxlbmd0aCk7CisgICAgZXhwbGljaXQgRnJhZ21lbnQoY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50
KTsKKyAgICBjb25zdCB1aW50OF90KiBidWZmZXIgPSBudWxscHRyOworICAgIHNpemVfdCBsZW5n
dGggPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gdG1wX2J1ZmZlcjsKKyAg
fTsKKyAgc3RydWN0IFBhY2tldFVuaXQgeworICAgIFBhY2tldFVuaXQoY29uc3QgRnJhZ21lbnQm
IHNvdXJjZV9mcmFnbWVudCwKKyAgICAgICAgICAgICAgIGJvb2wgZmlyc3RfZnJhZ21lbnQsCisg
ICAgICAgICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAgICAgICAgICAgICBib29sIGFn
Z3JlZ2F0ZWQsCisgICAgICAgICAgICAgICB1aW50MTZfdCBoZWFkZXIpCisgICAgICAgIDogc291
cmNlX2ZyYWdtZW50KHNvdXJjZV9mcmFnbWVudCksCisgICAgICAgICAgZmlyc3RfZnJhZ21lbnQo
Zmlyc3RfZnJhZ21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQobGFzdF9mcmFnbWVudCks
CisgICAgICAgICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAgICAgICBoZWFkZXIoaGVh
ZGVyKSB7fQorCisgICAgY29uc3QgRnJhZ21lbnQgc291cmNlX2ZyYWdtZW50OworICAgIGJvb2wg
Zmlyc3RfZnJhZ21lbnQ7CisgICAgYm9vbCBsYXN0X2ZyYWdtZW50OworICAgIGJvb2wgYWdncmVn
YXRlZDsKKyAgICB1aW50MTZfdCBoZWFkZXI7CisgIH07CisgIHR5cGVkZWYgc3RkOjpxdWV1ZTxQ
YWNrZXQ+IFBhY2tldFF1ZXVlOworICBzdGQ6OmRlcXVlPEZyYWdtZW50PiBpbnB1dF9mcmFnbWVu
dHNfOworICBzdGQ6OnF1ZXVlPFBhY2tldFVuaXQ+IHBhY2tldHNfOworCisgIGJvb2wgR2VuZXJh
dGVQYWNrZXRzKEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUpOworICBi
b29sIFBhY2tldGl6ZUZ1KHNpemVfdCBmcmFnbWVudF9pbmRleCk7CisgIGludCBQYWNrZXRpemVB
cChzaXplX3QgZnJhZ21lbnRfaW5kZXgpOworICBib29sIFBhY2tldGl6ZVNpbmdsZU5hbHUoc2l6
ZV90IGZyYWdtZW50X2luZGV4KTsKKworICB2b2lkIE5leHRBZ2dyZWdhdGVQYWNrZXQoUnRwUGFj
a2V0VG9TZW5kKiBydHBfcGFja2V0LCBib29sIGxhc3QpOworICB2b2lkIE5leHRGcmFnbWVudFBh
Y2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpOworCisgIGNvbnN0IFBheWxvYWRTaXpl
TGltaXRzIGxpbWl0c187CisgIHNpemVfdCBudW1fcGFja2V0c19sZWZ0XzsKKyAgUlRQRnJhZ21l
bnRhdGlvbkhlYWRlciBmcmFnbWVudGF0aW9uXzsKKworICBSVENfRElTQUxMT1dfQ09QWV9BTkRf
QVNTSUdOKFJ0cFBhY2tldGl6ZXJIMjY1KTsKK307CisKKy8vIERlcGFja2V0aXplciBmb3IgSC4y
NjUuCitjbGFzcyBWaWRlb1J0cERlcGFja2V0aXplckgyNjUgOiBwdWJsaWMgVmlkZW9SdHBEZXBh
Y2tldGl6ZXIgeworIHB1YmxpYzoKKyAgdmlydHVhbCB+VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1
KCkge30KKworICBhYnNsOjpvcHRpb25hbDxQYXJzZWRSdHBQYXlsb2FkPiBQYXJzZSgKKyAgICAg
ICAgICAgICBydGM6OkNvcHlPbldyaXRlQnVmZmVyIHJ0cF9wYXlsb2FkKSBvdmVycmlkZTsKKwor
IHByaXZhdGU6CisgIGJvb2wgUGFyc2VGdU5hbHUoUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3Bh
eWxvYWQsCisgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhKTsK
KyAgYm9vbCBQcm9jZXNzQXBPclNpbmdsZU5hbHUoUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3Bh
eWxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxv
YWRfZGF0YSk7CisKKyAgc2l6ZV90IG9mZnNldF87CisgIHNpemVfdCBsZW5ndGhfOworICBzdGQ6
OnVuaXF1ZV9wdHI8cnRjOjpCdWZmZXI+IG1vZGlmaWVkX2J1ZmZlcl87Cit9OworfSAgLy8gbmFt
ZXNwYWNlIHdlYnJ0YworI2VuZGlmICAvLyBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0Vf
UlRQX0ZPUk1BVF9IMjY1X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVv
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvcnRwX3NlbmRlcl92aWRlby5jYwppbmRleCBlYzVjZjhmZDEzMzFkZTQ1
ZTNlOGUwODljNTgxNDM1NDNjMzkwMDZiLi5lMzNjNTRiNmVkYTM3NDBhZWQxYmNkNjE3ZDVhZTQ3
MzI1YzZkYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVvLmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0
Y3Avc291cmNlL3J0cF9zZW5kZXJfdmlkZW8uY2MKQEAgLTc5OSw2ICs3OTksOSBAQCB1aW50OF90
IFJUUFNlbmRlclZpZGVvOjpHZXRUZW1wb3JhbElkKGNvbnN0IFJUUFZpZGVvSGVhZGVyJiBoZWFk
ZXIpIHsKICAgICAgIHJldHVybiB2cDkudGVtcG9yYWxfaWR4OwogICAgIH0KICAgICB1aW50OF90
IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJIMjY0JikgeyByZXR1cm4ga05vVGVtcG9y
YWxJZHg7IH0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAgdWludDhfdCBvcGVyYXRvcigpKGNv
bnN0IFJUUFZpZGVvSGVhZGVySDI2NSYpIHsgcmV0dXJuIGtOb1RlbXBvcmFsSWR4OyB9CisjZW5k
aWYKICAgICB1aW50OF90IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJMZWdhY3lHZW5l
cmljJikgewogICAgICAgcmV0dXJuIGtOb1RlbXBvcmFsSWR4OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0
Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIu
aAppbmRleCA3MTRkMWViMDhjY2I0NGRlZWQyNzc3MGFlMTdiMDQ2NWNjN2M1OTgwLi41ODUyZTVl
MWFkNzQyN2IxZTI5YWYzMmFiYWJhMGIwOGFhYTJmYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9y
dHBfdmlkZW9faGVhZGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oCkBAIC0y
NSw2ICsyNSw5IEBACiAjaW5jbHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX3RpbWluZy5oIgogI2luY2x1
ZGUgImNvbW1vbl90eXBlcy5oIiAgLy8gTk9MSU5UKGJ1aWxkL2luY2x1ZGUpCiAjaW5jbHVkZSAi
bW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIK
KyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29k
ZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVkZS92cDhfZ2xvYmFscy5oIgogI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvaW5jbHVkZS92cDlfZ2xvYmFscy5o
IgogCkBAIC0zNiwxMSArMzksMjAgQEAgc3RydWN0IFJUUFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJp
YyB7CiAgIHVpbnQxNl90IHBpY3R1cmVfaWQ7CiB9OwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQog
dXNpbmcgUlRQVmlkZW9UeXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjptb25vc3RhdGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVy
VlA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hl
YWRlclZQOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlk
ZW9IZWFkZXJIMjY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
VFBWaWRlb0hlYWRlckgyNjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJUUFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJpYz47CisjZWxzZQordXNpbmcgUlRQVmlkZW9U
eXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjptb25vc3RhdGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyVlA4LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlclZQOSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXJIMjY0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlckxl
Z2FjeUdlbmVyaWM+OworI2VuZGlmCiAKIHN0cnVjdCBSVFBWaWRlb0hlYWRlciB7CiAgIHN0cnVj
dCBHZW5lcmljRGVzY3JpcHRvckluZm8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvQlVJTEQuZ24gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9CVUlMRC5nbgppbmRleCBiMmQxMGM5YWI2OGMyYmM5ZDcyOWRjZDdkZmVkYWRiYjQ5ZDFm
NjMzLi40Yzc4YWFhY2M3NzE1OTY4N2I0YzZiZTFhMzc3NDA4OTlhMWE4YjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbgpAQCAtMTQsNiArMTQsMTQgQEAg
cnRjX2xpYnJhcnkoImVuY29kZWRfZnJhbWUiKSB7CiAgICAgImVuY29kZWRfZnJhbWUuY2MiLAog
ICAgICJlbmNvZGVkX2ZyYW1lLmgiLAogICBdCisKKyAgaWYgKHJ0Y191c2VfaDI2NSkgeworICAg
IHNvdXJjZXMgKz0gWworICAgICAgImgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyIsCisgICAg
ICAiaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgiLAorICAgIF0KKyAgfQorCiAgIGRlcHMgPSBb
CiAgICAgIjpjb2RlY19nbG9iYWxzX2hlYWRlcnMiLAogICAgICI6dmlkZW9fY29kZWNfaW50ZXJm
YWNlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxz
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJjMGVlZjIzNmNmZTgyZDUyZTgzZGRlNWQyMDg0OWI4Y2NkOGJmOGMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oCkBAIC0wLDAgKzEs
NjIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRo
b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJl
ZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBi
ZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2pl
Y3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSBy
b290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisvLyBUaGlzIGZpbGUgY29udGFpbnMgY29k
ZWMgZGVwZW5kZW50IGRlZmluaXRpb25zIHRoYXQgYXJlIG5lZWRlZCBpbgorLy8gb3JkZXIgdG8g
Y29tcGlsZSB0aGUgV2ViUlRDIGNvZGViYXNlLCBldmVuIGlmIHRoaXMgY29kZWMgaXMgbm90IHVz
ZWQuCisKKyNpZm5kZWYgTU9EVUxFU19WSURFT19DT0RJTkdfQ09ERUNTX0gyNjVfSU5DTFVERV9I
MjY1X0dMT0JBTFNfSF8KKyNkZWZpbmUgTU9EVUxFU19WSURFT19DT0RJTkdfQ09ERUNTX0gyNjVf
SU5DTFVERV9IMjY1X0dMT0JBTFNfSF8KKworI2lmbmRlZiBESVNBQkxFX0gyNjUKKworI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxz
LmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBUaGUgcGFja2V0aXphdGlvbiB0eXBlcyB0
aGF0IHdlIHN1cHBvcnQ6IHNpbmdsZSwgYWdncmVnYXRlZCwgYW5kIGZyYWdtZW50ZWQuCitlbnVt
IEgyNjVQYWNrZXRpemF0aW9uVHlwZXMgeworICBrSDI2NVNpbmdsZU5hbHUsICAvLyBUaGlzIHBh
Y2tldCBjb250YWlucyBhIHNpbmdsZSBOQUwgdW5pdC4KKyAga0gyNjVBUCwgICAgICAgICAgLy8g
VGhpcyBwYWNrZXQgY29udGFpbnMgYWdncmVnYXRpb24gUGFja2V0LgorICAgICAgICAgICAgICAg
ICAgICAvLyBJZiB0aGlzIHBhY2tldCBoYXMgYW4gYXNzb2NpYXRlZCBOQUwgdW5pdCB0eXBlLAor
ICAgICAgICAgICAgICAgICAgICAvLyBpdCdsbCBiZSBmb3IgdGhlIGZpcnN0IHN1Y2ggYWdncmVn
YXRlZCBwYWNrZXQuCisgIGtIMjY1RlUsICAgICAgICAgIC8vIFRoaXMgcGFja2V0IGNvbnRhaW5z
IGEgRlUgKGZyYWdtZW50YXRpb24KKyAgICAgICAgICAgICAgICAgICAgLy8gdW5pdCkgcGFja2V0
LCBtZWFuaW5nIGl0IGlzIGEgcGFydCBvZiBhIGZyYW1lCisgICAgICAgICAgICAgICAgICAgIC8v
IHRoYXQgd2FzIHRvbyBsYXJnZSB0byBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQuCit9OworCitz
dHJ1Y3QgSDI2NU5hbHVJbmZvIHsKKyAgdWludDhfdCB0eXBlOworICBpbnQgdnBzX2lkOworICBp
bnQgc3BzX2lkOworICBpbnQgcHBzX2lkOworfTsKKworZW51bSBjbGFzcyBIMjY1UGFja2V0aXph
dGlvbk1vZGUgeworICBOb25JbnRlcmxlYXZlZCA9IDAsICAvLyBNb2RlIDEgLSBTVEFQLUEsIEZV
LUEgaXMgYWxsb3dlZAorICBTaW5nbGVOYWxVbml0ICAgICAgICAvLyBNb2RlIDAgLSBvbmx5IHNp
bmdsZSBOQUxVIGFsbG93ZWQKK307CisKK3N0cnVjdCBSVFBWaWRlb0hlYWRlckgyNjUgeworICAv
LyBUaGUgTkFMIHVuaXQgdHlwZS4gSWYgdGhpcyBpcyBhIGhlYWRlciBmb3IgYSBmcmFnbWVudGVk
IHBhY2tldCwgaXQncyB0aGUKKyAgLy8gTkFMIHVuaXQgdHlwZSBvZiB0aGUgb3JpZ2luYWwgZGF0
YS4gSWYgdGhpcyBpcyB0aGUgaGVhZGVyIGZvciBhbiBhZ2dyZWdhdGVkCisgIC8vIHBhY2tldCwg
aXQncyB0aGUgTkFMIHVuaXQgdHlwZSBvZiB0aGUgZmlyc3QgTkFMIHVuaXQgaW4gdGhlIHBhY2tl
dC4KKyAgdWludDhfdCBuYWx1X3R5cGU7CisgIEgyNjVQYWNrZXRpemF0aW9uVHlwZXMgcGFja2V0
aXphdGlvbl90eXBlOworICBIMjY1TmFsdUluZm8gbmFsdXNba01heE5hbHVzUGVyUGFja2V0XTsK
KyAgc2l6ZV90IG5hbHVzX2xlbmd0aDsKKyAgLy8gVGhlIHBhY2tldGl6YXRpb24gdHlwZSBvZiB0
aGlzIGJ1ZmZlciAtIHNpbmdsZSwgYWdncmVnYXRlZCBvciBmcmFnbWVudGVkLgorICBIMjY1UGFj
a2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlOworfTsKKworfSAgLy8gbmFtZXNwYWNl
IHdlYnJ0YworCisjZW5kaWYKKworI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVPX0NPRElOR19DT0RF
Q1NfSDI2NV9JTkNMVURFX0gyNjVfR0xPQkFMU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2Rl
ZF9mcmFtZS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL2VuY29kZWRfZnJhbWUuY2MKaW5kZXggMWU5ZTM3NGM2NDRlODM1
MTM3NjBlNmRiYjFhNjVmMzBlNjZkNzJjYy4uNTQ5ODkyNjA4MjU2MTdmOGFlMjc0YWI1ZGRjZDRj
OGRiNTE2ZTk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9mcmFtZS5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGlu
Zy9lbmNvZGVkX2ZyYW1lLmNjCkBAIC0xNTEsNiArMTUxLDEyIEBAIHZvaWQgVkNNRW5jb2RlZEZy
YW1lOjpDb3B5Q29kZWNTcGVjaWZpYyhjb25zdCBSVFBWaWRlb0hlYWRlciogaGVhZGVyKSB7CiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQor
ICAgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjU6IHsKKyAgICAgICAgX2NvZGVjU3BlY2lmaWNJbmZv
LmNvZGVjVHlwZSA9IGtWaWRlb0NvZGVjSDI2NTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9Cisj
ZW5kaWYKICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgX2NvZGVjU3BlY2lmaWNJbmZvLmNvZGVj
VHlwZSA9IGtWaWRlb0NvZGVjR2VuZXJpYzsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBz
X3RyYWNrZXIuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFlNjdkODlhYjkzZjVjMmY5YzBiYzhmZDMxY2ZiYmIx
MTgwZmM3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tl
ci5jYwpAQCAtMCwwICsxLDMxMiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdl
YlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAq
ICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRo
ZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBy
aWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBj
b250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRI
T1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbmNsdWRl
ICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCIKKworI2lu
Y2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCisjaW5jbHVkZSAiY29tbW9uX3Zp
ZGVvL2gyNjQvaDI2NF9jb21tb24uaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1
X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5o
IgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgorI2luY2x1
ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaW5j
bHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2Jh
bHMuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9mcmFtZV9vYmplY3QuaCIKKyNp
bmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmgiCisjaW5jbHVkZSAi
cnRjX2Jhc2UvY2hlY2tzLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgorCituYW1l
c3BhY2Ugd2VicnRjIHsKK25hbWVzcGFjZSB2aWRlb19jb2RpbmcgeworCituYW1lc3BhY2Ugewor
Y29uc3QgdWludDhfdCBzdGFydF9jb2RlX2gyNjVbXSA9IHswLCAwLCAwLCAxfTsKK30gIC8vIG5h
bWVzcGFjZQorCitIMjY1VnBzU3BzUHBzVHJhY2tlcjo6Rml4ZWRCaXRzdHJlYW0gSDI2NVZwc1Nw
c1Bwc1RyYWNrZXI6OkNvcHlBbmRGaXhCaXRzdHJlYW0ocnRjOjpBcnJheVZpZXc8Y29uc3QgdWlu
dDhfdD4gYml0c3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBW
aWRlb0hlYWRlciogdmlkZW9faGVhZGVyX3BvaW50ZXIpIHsKKyAgY29uc3QgdWludDhfdCogZGF0
YSA9IGJpdHN0cmVhbS5kYXRhKCk7CisgIGNvbnN0IHNpemVfdCBkYXRhX3NpemUgPSBiaXRzdHJl
YW0uc2l6ZSgpOworICBSVFBWaWRlb0hlYWRlciYgdmlkZW9faGVhZGVyID0gKnZpZGVvX2hlYWRl
cl9wb2ludGVyOworICBSVENfRENIRUNLKHZpZGVvX2hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2Rl
Y0gyNjQpOworCisgIGF1dG8mIGgyNjVfaGVhZGVyID0KKyAgICAgIGFic2w6OmdldDxSVFBWaWRl
b0hlYWRlckgyNjU+KHZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisKKyAgYm9vbCBh
cHBlbmRfdnBzX3Nwc19wcHMgPSBmYWxzZTsKKyAgYXV0byB2cHMgPSB2cHNfZGF0YV8uZW5kKCk7
CisgIGF1dG8gc3BzID0gc3BzX2RhdGFfLmVuZCgpOworICBhdXRvIHBwcyA9IHBwc19kYXRhXy5l
bmQoKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0
aDsgKytpKSB7CisgICAgY29uc3QgSDI2NU5hbHVJbmZvJiBuYWx1ID0gaDI2NV9oZWFkZXIubmFs
dXNbaV07CisgICAgc3dpdGNoIChuYWx1LnR5cGUpIHsKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5
cGU6OmtWcHM6IHsKKyAgICAgICAgdnBzX2RhdGFfW25hbHUudnBzX2lkXS5zaXplID0gMDsKKyAg
ICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3BzOiB7
CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0udnBzX2lkID0gbmFsdS52cHNfaWQ7Cisg
ICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0ud2lkdGggPSB2aWRlb19oZWFkZXIud2lkdGg7
CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0uaGVpZ2h0ID0gdmlkZW9faGVhZGVyLmhl
aWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBl
OjprUHBzOiB7CisgICAgICAgIHBwc19kYXRhX1tuYWx1LnBwc19pZF0uc3BzX2lkID0gbmFsdS5z
cHNfaWQ7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a0lkcldSYWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McDoKKyAgICAg
IGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtDcmE6IHsKKyAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUg
Zmlyc3QgcGFja2V0IG9mIGFuIElEUiwgbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJlcXVpcmVkCisg
ICAgICAgIC8vIFNQUy9QUFMgYW5kIGFsc28gY2FsY3VsYXRlIGhvdyBtdWNoIGV4dHJhIHNwYWNl
IHdlIG5lZWQgaW4gdGhlIGJ1ZmZlcgorICAgICAgICAvLyB0byBwcmVwZW5kIHRoZSBTUFMvUFBT
IHRvIHRoZSBiaXRzdHJlYW0gd2l0aCBzdGFydCBjb2Rlcy4KKyAgICAgICAgaWYgKHZpZGVvX2hl
YWRlci5pc19maXJzdF9wYWNrZXRfaW5fZnJhbWUpIHsKKyAgICAgICAgICBpZiAobmFsdS5wcHNf
aWQgPT0gLTEpIHsKKyAgICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk5vIFBQUyBp
ZCBpbiBJRFIgbmFsdS4iOworICAgICAgICAgICAgcmV0dXJuIHtrUmVxdWVzdEtleWZyYW1lfTsK
KyAgICAgICAgICB9CisKKyAgICAgICAgICBwcHMgPSBwcHNfZGF0YV8uZmluZChuYWx1LnBwc19p
ZCk7CisgICAgICAgICAgaWYgKHBwcyA9PSBwcHNfZGF0YV8uZW5kKCkpIHsKKyAgICAgICAgICAg
IFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgICA8PCAiTm8gUFBTIHdpdGggaWQg
IiA8PCBuYWx1LnBwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1Jl
cXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisgICAgICAgICAgc3BzID0gc3BzX2RhdGFf
LmZpbmQocHBzLT5zZWNvbmQuc3BzX2lkKTsKKyAgICAgICAgICBpZiAoc3BzID09IHNwc19kYXRh
Xy5lbmQoKSkgeworICAgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgICAg
ICAgIDw8ICJObyBTUFMgd2l0aCBpZCA8PCAiIDw8IHBwcy0+c2Vjb25kLnNwc19pZCA8PCAiIHJl
Y2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAg
ICAgfQorCisgICAgICAgICAgdnBzID0gdnBzX2RhdGFfLmZpbmQoc3BzLT5zZWNvbmQudnBzX2lk
KTsKKyAgICAgICAgICBpZiAodnBzID09IHZwc19kYXRhXy5lbmQoKSkgeworICAgICAgICAgICAg
UlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgICAgICAgIDw8ICJObyBWUFMgd2l0aCBpZCAi
IDw8IHNwcy0+c2Vjb25kLnZwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVy
biB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gU2luY2Ug
dGhlIGZpcnN0IHBhY2tldCBvZiBldmVyeSBrZXlmcmFtZSBzaG91bGQgaGF2ZSBpdHMgd2lkdGgg
YW5kCisgICAgICAgICAgLy8gaGVpZ2h0IHNldCB3ZSBzZXQgaXQgaGVyZSBpbiB0aGUgY2FzZSBv
ZiBpdCBiZWluZyBzdXBwbGllZCBvdXQgb2YKKyAgICAgICAgICAvLyBiYW5kLgorICAgICAgICAg
IHZpZGVvX2hlYWRlci53aWR0aCA9IHNwcy0+c2Vjb25kLndpZHRoOworICAgICAgICAgIHZpZGVv
X2hlYWRlci5oZWlnaHQgPSBzcHMtPnNlY29uZC5oZWlnaHQ7CisKKyAgICAgICAgICAvLyBJZiB0
aGUgVlBTL1NQUy9QUFMgd2FzIHN1cHBsaWVkIG91dCBvZiBiYW5kIHRoZW4gd2Ugd2lsbCBoYXZl
IHNhdmVkCisgICAgICAgICAgLy8gdGhlIGFjdHVhbCBiaXRzdHJlYW0gaW4gfGRhdGF8LgorICAg
ICAgICAgIC8vIFRoaXMgYnJhbmNoIGlzIG5vdCB2ZXJpZmllZC4KKyAgICAgICAgICBpZiAodnBz
LT5zZWNvbmQuZGF0YSAmJiBzcHMtPnNlY29uZC5kYXRhICYmIHBwcy0+c2Vjb25kLmRhdGEpIHsK
KyAgICAgICAgICAgIFJUQ19EQ0hFQ0tfR1QodnBzLT5zZWNvbmQuc2l6ZSwgMCk7CisgICAgICAg
ICAgICBSVENfRENIRUNLX0dUKHNwcy0+c2Vjb25kLnNpemUsIDApOworICAgICAgICAgICAgUlRD
X0RDSEVDS19HVChwcHMtPnNlY29uZC5zaXplLCAwKTsKKyAgICAgICAgICAgIGFwcGVuZF92cHNf
c3BzX3BwcyA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgICAgfQorICAgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICB9CisKKyAg
UlRDX0NIRUNLKCFhcHBlbmRfdnBzX3Nwc19wcHMgfHwKKyAgICAgICAgICAgIChzcHMgIT0gc3Bz
X2RhdGFfLmVuZCgpICYmIHBwcyAhPSBwcHNfZGF0YV8uZW5kKCkpKTsKKworICAvLyBDYWxjdWxh
dGUgaG93IG11Y2ggc3BhY2Ugd2UgbmVlZCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGJpdHN0cmVhbS4K
KyAgc2l6ZV90IHJlcXVpcmVkX3NpemUgPSAwOworCisgIGlmIChhcHBlbmRfdnBzX3Nwc19wcHMp
IHsKKyAgICByZXF1aXJlZF9zaXplICs9IHZwcy0+c2Vjb25kLnNpemUgKyBzaXplb2Yoc3RhcnRf
Y29kZV9oMjY1KTsKKyAgICByZXF1aXJlZF9zaXplICs9IHNwcy0+c2Vjb25kLnNpemUgKyBzaXpl
b2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICByZXF1aXJlZF9zaXplICs9IHBwcy0+c2Vjb25kLnNp
emUgKyBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgfQorCisgIGlmIChoMjY1X2hlYWRlci5w
YWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVBUCkgeworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVf
cHRyID0gZGF0YSArIDE7CisgICAgd2hpbGUgKG5hbHVfcHRyIDwgZGF0YSArIGRhdGFfc2l6ZSkg
eworICAgICAgUlRDX0RDSEVDSyh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1l
KTsKKyAgICAgIHJlcXVpcmVkX3NpemUgKz0gc2l6ZW9mKHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAg
ICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21l
bnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBu
YWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHJlcXVpcmVkX3NpemUg
Kz0gc2VnbWVudF9sZW5ndGg7CisgICAgICBuYWx1X3B0ciArPSBzZWdtZW50X2xlbmd0aDsKKyAg
ICB9CisgIH0gZWxzZSB7CisgICAgaWYgKHZpZGVvX2hlYWRlci5pc19maXJzdF9wYWNrZXRfaW5f
ZnJhbWUpCisgICAgICByZXF1aXJlZF9zaXplICs9IHNpemVvZihzdGFydF9jb2RlX2gyNjUpOwor
ICAgIHJlcXVpcmVkX3NpemUgKz0gZGF0YV9zaXplOworICB9CisKKyAgLy8gVGhlbiB3ZSBjb3B5
IHRvIHRoZSBuZXcgYnVmZmVyLgorICBGaXhlZEJpdHN0cmVhbSBmaXhlZDsKKyAgZml4ZWQuYml0
c3RyZWFtLkVuc3VyZUNhcGFjaXR5KHJlcXVpcmVkX3NpemUpOworCisgIGlmIChhcHBlbmRfdnBz
X3Nwc19wcHMpIHsKKyAgICAvLyBJbnNlcnQgVlBTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBl
bmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEo
dnBzLT5zZWNvbmQuZGF0YS5nZXQoKSwgdnBzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBJbnNl
cnQgU1BTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7
CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEoc3BzLT5zZWNvbmQuZGF0YS5nZXQoKSwg
c3BzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBJbnNlcnQgUFBTLgorICAgIGZpeGVkLmJpdHN0
cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFw
cGVuZERhdGEocHBzLT5zZWNvbmQuZGF0YS5nZXQoKSwgcHBzLT5zZWNvbmQuc2l6ZSk7CisKKyAg
ICAvLyBVcGRhdGUgY29kZWMgaGVhZGVyIHRvIHJlZmxlY3QgdGhlIG5ld2x5IGFkZGVkIFNQUyBh
bmQgUFBTLgorICAgIEgyNjVOYWx1SW5mbyB2cHNfaW5mbzsKKyAgICB2cHNfaW5mby50eXBlID0g
SDI2NTo6TmFsdVR5cGU6OmtWcHM7CisgICAgdnBzX2luZm8udnBzX2lkID0gdnBzLT5maXJzdDsK
KyAgICB2cHNfaW5mby5zcHNfaWQgPSAtMTsKKyAgICB2cHNfaW5mby5wcHNfaWQgPSAtMTsKKyAg
ICBIMjY1TmFsdUluZm8gc3BzX2luZm87CisgICAgc3BzX2luZm8udHlwZSA9IEgyNjU6Ok5hbHVU
eXBlOjprU3BzOworICAgIHNwc19pbmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7CisgICAgc3BzX2lu
Zm8uc3BzX2lkID0gc3BzLT5maXJzdDsKKyAgICBzcHNfaW5mby5wcHNfaWQgPSAtMTsKKyAgICBI
MjY1TmFsdUluZm8gcHBzX2luZm87CisgICAgcHBzX2luZm8udHlwZSA9IEgyNjU6Ok5hbHVUeXBl
OjprUHBzOworICAgIHBwc19pbmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7CisgICAgcHBzX2luZm8u
c3BzX2lkID0gc3BzLT5maXJzdDsKKyAgICBwcHNfaW5mby5wcHNfaWQgPSBwcHMtPmZpcnN0Owor
ICAgIGlmIChoMjY1X2hlYWRlci5uYWx1c19sZW5ndGggKyAyIDw9IGtNYXhOYWx1c1BlclBhY2tl
dCkgeworICAgICAgaDI2NV9oZWFkZXIubmFsdXNbaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoKytd
ID0gdnBzX2luZm87CisgICAgICBoMjY1X2hlYWRlci5uYWx1c1toMjY1X2hlYWRlci5uYWx1c19s
ZW5ndGgrK10gPSBzcHNfaW5mbzsKKyAgICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVy
Lm5hbHVzX2xlbmd0aCsrXSA9IHBwc19pbmZvOworICAgIH0gZWxzZSB7CisgICAgICBSVENfTE9H
KExTX1dBUk5JTkcpIDw8ICJOb3QgZW5vdWdoIHNwYWNlIGluIEguMjY1IGNvZGVjIGhlYWRlciB0
byBpbnNlcnQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1BTL1BQUyBwcm92aWRl
ZCBvdXQtb2YtYmFuZC4iOworICAgIH0KKyAgfQorCisgIC8vIENvcHkgdGhlIHJlc3Qgb2YgdGhl
IGJpdHN0cmVhbSBhbmQgaW5zZXJ0IHN0YXJ0IGNvZGVzLgorICBpZiAoaDI2NV9oZWFkZXIucGFj
a2V0aXphdGlvbl90eXBlID09IGtIMjY1QVApIHsKKyAgICBjb25zdCB1aW50OF90KiBuYWx1X3B0
ciA9IGRhdGEgKyAxOworICAgIHdoaWxlIChuYWx1X3B0ciA8IGRhdGEgKyBkYXRhX3NpemUpIHsK
KyAgICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAg
ICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21l
bnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBu
YWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHNpemVfdCBjb3B5X2Vu
ZCA9IG5hbHVfcHRyIC0gZGF0YSArIHNlZ21lbnRfbGVuZ3RoOworICAgICAgaWYgKGNvcHlfZW5k
ID4gZGF0YV9zaXplKSB7CisgICAgICAgIHJldHVybiB7a0Ryb3B9OworICAgICAgfQorCisgICAg
ICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShuYWx1X3B0ciwgc2VnbWVudF9sZW5ndGgpOwor
ICAgICAgbmFsdV9wdHIgKz0gc2VnbWVudF9sZW5ndGg7CisgICAgfQorICB9IGVsc2UgeworICAg
IGlmICh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSB7CisgICAgICBmaXhl
ZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShzdGFydF9jb2RlX2gyNjUpOworICAgIH0KKyAgICBmaXhl
ZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShiaXRzdHJlYW0uZGF0YSgpLCBiaXRzdHJlYW0uc2l6ZSgp
KTsKKyAgfQorCisgIGZpeGVkLmFjdGlvbiA9IGtJbnNlcnQ7CisgIHJldHVybiBmaXhlZDsKK30K
Kwordm9pZCBIMjY1VnBzU3BzUHBzVHJhY2tlcjo6SW5zZXJ0VnBzU3BzUHBzTmFsdXMoCisgICAg
Y29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywKKyAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1
aW50OF90PiYgc3BzLAorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBwcHMpIHsKKyAg
Y29uc3RleHByIHNpemVfdCBrTmFsdUhlYWRlck9mZnNldCA9IDE7CisgIGlmICh2cHMuc2l6ZSgp
IDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJWUFMg
c2l6ZSAgIiA8PCB2cHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBp
ZiAoKHZwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBS
VENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0
dXJuOworICB9CisgIGlmIChzcHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBS
VENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgc2l6ZSAgIiA8PCBzcHMuc2l6ZSgpIDw8ICIgaXMg
c21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zm
c2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAoKHNwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2
NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFs
dSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChwcHMuc2l6ZSgpIDwg
a05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJQUFMgc2l6
ZSAgIiA8PCBwcHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAo
KHBwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtQcHMpIHsKKyAgICBSVENf
TE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJu
OworICB9CisgIGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiBwYXJzZWRf
dnBzID0gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAgICB2cHMuZGF0YSgpICsga05hbHVI
ZWFkZXJPZmZzZXQsIHZwcy5zaXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisgIGFic2w6Om9w
dGlvbmFsPEgyNjVTcHNQYXJzZXI6OlNwc1N0YXRlPiBwYXJzZWRfc3BzID0gSDI2NVNwc1BhcnNl
cjo6UGFyc2VTcHMoCisgICAgICBzcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHNwcy5z
aXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisgIGFic2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJz
ZXI6OlBwc1N0YXRlPiBwYXJzZWRfcHBzID0gSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHMoCisgICAg
ICBwcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHBwcy5zaXplKCkgLSBrTmFsdUhlYWRl
ck9mZnNldCk7CisKKyAgaWYgKCFwYXJzZWRfdnBzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5H
KSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfc3BzKSB7
CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFNQUy4iOworICB9
CisKKyAgaWYgKCFwYXJzZWRfcHBzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFp
bGVkIHRvIHBhcnNlIFBQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfdnBzIHx8ICFwYXJzZWRf
cHBzIHx8ICFwYXJzZWRfc3BzKSB7CisgICAgcmV0dXJuOworICB9CisKKyAgVnBzSW5mbyB2cHNf
aW5mbzsKKyAgdnBzX2luZm8uc2l6ZSA9IHZwcy5zaXplKCk7CisgIHVpbnQ4X3QqIHZwc19kYXRh
ID0gbmV3IHVpbnQ4X3RbdnBzX2luZm8uc2l6ZV07CisgIG1lbWNweSh2cHNfZGF0YSwgdnBzLmRh
dGEoKSwgdnBzX2luZm8uc2l6ZSk7CisgIHZwc19pbmZvLmRhdGEucmVzZXQodnBzX2RhdGEpOwor
ICB2cHNfZGF0YV9bcGFyc2VkX3Zwcy0+aWRdID0gc3RkOjptb3ZlKHZwc19pbmZvKTsKKworICBT
cHNJbmZvIHNwc19pbmZvOworICBzcHNfaW5mby5zaXplID0gc3BzLnNpemUoKTsKKyAgc3BzX2lu
Zm8ud2lkdGggPSBwYXJzZWRfc3BzLT53aWR0aDsKKyAgc3BzX2luZm8uaGVpZ2h0ID0gcGFyc2Vk
X3Nwcy0+aGVpZ2h0OworICBzcHNfaW5mby52cHNfaWQgPSBwYXJzZWRfc3BzLT52cHNfaWQ7Cisg
IHVpbnQ4X3QqIHNwc19kYXRhID0gbmV3IHVpbnQ4X3Rbc3BzX2luZm8uc2l6ZV07CisgIG1lbWNw
eShzcHNfZGF0YSwgc3BzLmRhdGEoKSwgc3BzX2luZm8uc2l6ZSk7CisgIHNwc19pbmZvLmRhdGEu
cmVzZXQoc3BzX2RhdGEpOworICBzcHNfZGF0YV9bcGFyc2VkX3Nwcy0+aWRdID0gc3RkOjptb3Zl
KHNwc19pbmZvKTsKKworICBQcHNJbmZvIHBwc19pbmZvOworICBwcHNfaW5mby5zaXplID0gcHBz
LnNpemUoKTsKKyAgcHBzX2luZm8uc3BzX2lkID0gcGFyc2VkX3Bwcy0+c3BzX2lkOworICB1aW50
OF90KiBwcHNfZGF0YSA9IG5ldyB1aW50OF90W3Bwc19pbmZvLnNpemVdOworICBtZW1jcHkocHBz
X2RhdGEsIHBwcy5kYXRhKCksIHBwc19pbmZvLnNpemUpOworICBwcHNfaW5mby5kYXRhLnJlc2V0
KHBwc19kYXRhKTsKKyAgcHBzX2RhdGFfW3BhcnNlZF9wcHMtPmlkXSA9IHN0ZDo6bW92ZShwcHNf
aW5mbyk7CisKKyAgUlRDX0xPRyhMU19JTkZPKSA8PCAiSW5zZXJ0ZWQgU1BTIGlkICIgPDwgcGFy
c2VkX3Nwcy0+aWQgPDwgIiBhbmQgUFBTIGlkICIKKyAgICAgICAgICAgICAgICAgICA8PCBwYXJz
ZWRfcHBzLT5pZCA8PCAiIChyZWZlcmVuY2luZyBTUFMgIgorICAgICAgICAgICAgICAgICAgIDw8
IHBhcnNlZF9wcHMtPnNwc19pZCA8PCAiKSI7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB2aWRlb19j
b2RpbmcKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBz
X3Nwc19wcHNfdHJhY2tlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2FjNWUyYTAwMWNiZDIwNmZmMzE3YzJiMDlhZTY4MDZjZmIxMjgwMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oCkBAIC0wLDAgKzEs
NzQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRo
b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJl
ZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBi
ZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2pl
Y3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSBy
b290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIE1PRFVMRVNfVklERU9fQ09E
SU5HX0gyNjVfVlBTX1NQU19QUFNfVFJBQ0tFUl9IXworI2RlZmluZSBNT0RVTEVTX1ZJREVPX0NP
RElOR19IMjY1X1ZQU19TUFNfUFBTX1RSQUNLRVJfSF8KKworI2luY2x1ZGUgPGNzdGRpbnQ+Cisj
aW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNp
bmNsdWRlICJhcGkvYXJyYXlfdmlldy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1
bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRw
X3ZpZGVvX2hlYWRlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2NvcHlfb25fd3JpdGVfYnVmZmVy
LmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCitjbGFzcyBWQ01QYWNrZXQ7CisKK25hbWVzcGFj
ZSB2aWRlb19jb2RpbmcgeworCitjbGFzcyBIMjY1VnBzU3BzUHBzVHJhY2tlciB7CisgcHVibGlj
OgorICBlbnVtIFBhY2tldEFjdGlvbiB7IGtJbnNlcnQsIGtEcm9wLCBrUmVxdWVzdEtleWZyYW1l
IH07CisgIHN0cnVjdCBGaXhlZEJpdHN0cmVhbSB7CisgICAgUGFja2V0QWN0aW9uIGFjdGlvbjsK
KyAgICBydGM6OkNvcHlPbldyaXRlQnVmZmVyIGJpdHN0cmVhbTsKKyAgfTsKKworICAvLyBSZXR1
cm5zIGZpeGVkIGJpdHN0cmVhbSBhbmQgbW9kaWZpZXMgfHZpZGVvX2hlYWRlcnwuCisgIEZpeGVk
Qml0c3RyZWFtIENvcHlBbmRGaXhCaXRzdHJlYW0ocnRjOjpBcnJheVZpZXc8Y29uc3QgdWludDhf
dD4gYml0c3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZp
ZGVvSGVhZGVyKiB2aWRlb19oZWFkZXIpOworCisgIHZvaWQgSW5zZXJ0VnBzU3BzUHBzTmFsdXMo
Y29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgc3BzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBwcHMpOworCisgcHJpdmF0ZToK
KyAgc3RydWN0IFZwc0luZm8geworICAgIHNpemVfdCBzaXplID0gMDsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8dWludDhfdFtdPiBkYXRhOworICB9OworCisgIHN0cnVjdCBQcHNJbmZvIHsKKyAgICBp
bnQgc3BzX2lkID0gLTE7CisgICAgc2l6ZV90IHNpemUgPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0
cjx1aW50OF90W10+IGRhdGE7CisgIH07CisKKyAgc3RydWN0IFNwc0luZm8geworICAgIGludCB2
cHNfaWQgPSAtMTsKKyAgICBzaXplX3Qgc2l6ZSA9IDA7CisgICAgaW50IHdpZHRoID0gLTE7Cisg
ICAgaW50IGhlaWdodCA9IC0xOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGRhdGE7
CisgIH07CisKKyAgc3RkOjptYXA8dWludDMyX3QsIFZwc0luZm8+IHZwc19kYXRhXzsKKyAgc3Rk
OjptYXA8dWludDMyX3QsIFBwc0luZm8+IHBwc19kYXRhXzsKKyAgc3RkOjptYXA8dWludDMyX3Qs
IFNwc0luZm8+IHNwc19kYXRhXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSB2aWRlb19jb2RpbmcK
K30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKworI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVPX0NPRElO
R19IMjY0X1NQU19QUFNfVFJBQ0tFUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRl
b19jb2RlY19pbnRlcmZhY2UuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNl
LmgKaW5kZXggYzdiMTE2ZjRhZTNmNzBhZGRiODdmMGE4NDJhZWIzZTI4MWQyODU0Ny4uMGNiYThm
MzhhY2IzNzNhNTFhYjE3ZDczZTFiZTVmNTc5ZTRiZDUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5j
bHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2Nv
ZGVjX2ludGVyZmFjZS5oCkBAIC0yMCw2ICsyMCw5IEBACiAjaW5jbHVkZSAiY29tbW9uX3ZpZGVv
L2dlbmVyaWNfZnJhbWVfZGVzY3JpcHRvci9nZW5lcmljX2ZyYW1lX2luZm8uaCIKICNpbmNsdWRl
ICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgogI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9o
MjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3Zp
ZGVvX2NvZGluZy9jb2RlY3MvdnA5L2luY2x1ZGUvdnA5X2dsb2JhbHMuaCIKICNpbmNsdWRlICJt
b2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2Vycm9yX2NvZGVzLmgiCiAjaW5jbHVk
ZSAicnRjX2Jhc2Uvc3lzdGVtL3J0Y19leHBvcnQuaCIKQEAgLTkyLDEwICs5NSwxOCBAQCBzdHJ1
Y3QgQ29kZWNTcGVjaWZpY0luZm9IMjY0IHsKIH07CiBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9k
PENvZGVjU3BlY2lmaWNJbmZvSDI2ND46OnZhbHVlLCAiIik7CiAKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CitzdHJ1Y3QgQ29kZWNTcGVjaWZpY0luZm9IMjY1IHsKKyAgSDI2NVBhY2tldGl6YXRpb25N
b2RlIHBhY2tldGl6YXRpb25fbW9kZTsKKyAgYm9vbCBpZHJfZnJhbWU7Cit9OworI2VuZGlmCisK
IHVuaW9uIENvZGVjU3BlY2lmaWNJbmZvVW5pb24gewogICBDb2RlY1NwZWNpZmljSW5mb1ZQOCBW
UDg7CiAgIENvZGVjU3BlY2lmaWNJbmZvVlA5IFZQOTsKICAgQ29kZWNTcGVjaWZpY0luZm9IMjY0
IEgyNjQ7CisgIENvZGVjU3BlY2lmaWNJbmZvSDI2NSBIMjY1OwogfTsKIHN0YXRpY19hc3NlcnQo
c3RkOjppc19wb2Q8Q29kZWNTcGVjaWZpY0luZm9Vbmlvbj46OnZhbHVlLCAiIik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
dmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9qaXR0ZXJfYnVmZmVy
X2NvbW1vbi5oCmluZGV4IDZjY2ZlMzkxOTk1NGY4ZDA5YmI1MzdlNGFkOTE3NjFlZmE1MWEwOWYu
LjU0OTJlZTViNDFmMzYwZTdjNWJjNTExMDYwNDM3ZWJkZWY5MjNjMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29k
aW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21t
b24uaApAQCAtNTQsNiArNTQsOSBAQCBlbnVtIFZDTUZyYW1lQnVmZmVyU3RhdGVFbnVtIHsKIH07
CiAKIGVudW0geyBrSDI2NFN0YXJ0Q29kZUxlbmd0aEJ5dGVzID0gNCB9OworI2lmbmRlZiBESVNB
QkxFX0gyNjUKK2VudW0geyBrSDI2NVN0YXJ0Q29kZUxlbmd0aEJ5dGVzID0gNCB9OworI2VuZGlm
CiB9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCiAKICNlbmRpZiAgLy8gTU9EVUxFU19WSURFT19DT0RJ
TkdfSklUVEVSX0JVRkZFUl9DT01NT05fSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9f
Y29kaW5nL3BhY2tldC5jYwppbmRleCAwYzRhNjU4YjhmMjAzNDkxNmMxODUzNDZlNGI4MTQyMmNj
ZmU4ZjhmLi4xZjlmNGI1MjQ2ZWQ1YTQ3MTE0NWZkZjNiYTQ4ZTVjMTQzYTA0ZDQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9wYWNrZXQuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvcGFja2V0LmNjCkBAIC00NCw4ICs0NCwx
MyBAQCBWQ01QYWNrZXQ6OlZDTVBhY2tldChjb25zdCB1aW50OF90KiBwdHIsCiAgICAgICBtYXJr
ZXJCaXQocnRwX2hlYWRlci5tYXJrZXJCaXQpLAogICAgICAgdGltZXNOYWNrZWQoLTEpLAogICAg
ICAgY29tcGxldGVOQUxVKGtOYWx1SW5jb21wbGV0ZSksCi0gICAgICBpbnNlcnRTdGFydENvZGUo
dmlkZW9IZWFkZXIuY29kZWMgPT0ga1ZpZGVvQ29kZWNIMjY0ICYmCisjaWZuZGVmIERJU0FCTEVf
SDI2NQorICAgICAgaW5zZXJ0U3RhcnRDb2RlKCh2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9D
b2RlY0gyNjQgfHwgdmlkZW9IZWFkZXIuY29kZWMgPT0ga1ZpZGVvQ29kZWNIMjY1KSAmJgogICAg
ICAgICAgICAgICAgICAgICAgIHZpZGVvSGVhZGVyLmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSks
CisjZWxzZQorICAgICAgIGluc2VydFN0YXJ0Q29kZSh2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlk
ZW9Db2RlY0gyNjQgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9IZWFkZXIuaXNfZmly
c3RfcGFja2V0X2luX2ZyYW1lKSwKKyNlbmRpZgogICAgICAgdmlkZW9faGVhZGVyKHZpZGVvSGVh
ZGVyKSwKICAgICAgIHBhY2tldF9pbmZvKHJ0cF9oZWFkZXIsIHJlY2VpdmVfdGltZV9tcykgewog
ICBpZiAoaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKCkgJiYgbWFya2VyQml0KSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvcGFja2V0X2J1ZmZlci5jYwppbmRl
eCA0ZGU2MjdlZTYzMzQxZTMwMzk4M2ViYjVkYWE4ODZhYWQ2OGIzMDg2Li41NTE0MTQxYTRjMGNl
YjU4OTdjNWM3MjQ4NjZjZDA5N2RhNjlkMDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVm
ZmVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuY2MKQEAgLTI0LDExICsyNCwxNyBAQAog
I2luY2x1ZGUgImFwaS92aWRlby9lbmNvZGVkX2ZyYW1lLmgiCiAjaW5jbHVkZSAiYXBpL3ZpZGVv
L3ZpZGVvX2ZyYW1lX3R5cGUuaCIKICNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NC9oMjY0X2Nv
bW1vbi5oIgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2
NS9oMjY1X2NvbW1vbi5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3Vy
Y2UvcnRwX2hlYWRlcl9leHRlbnNpb25zLmgiCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9z
b3VyY2UvcnRwX3BhY2tldF9yZWNlaXZlZC5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF92aWRlb19oZWFkZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3Nv
dXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyX2F2MS5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlk
ZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZuZGVmIERJ
U0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2lu
Y2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9mcmFtZV9vYmplY3QuaCIKICNpbmNsdWRlICJydGNfYmFzZS9jaGVja3MuaCIKICNpbmNs
dWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCkBAIC0yODksMTIgKzI5NSwyMCBAQCBzdGQ6OnZlY3Rv
cjxzdGQ6OnVuaXF1ZV9wdHI8UnRwRnJhbWVPYmplY3Q+PiBQYWNrZXRCdWZmZXI6OkZpbmRGcmFt
ZXMoCiAgICAgICBib29sIGhhc19oMjY0X3BwcyA9IGZhbHNlOwogICAgICAgYm9vbCBoYXNfaDI2
NF9pZHIgPSBmYWxzZTsKICAgICAgIGJvb2wgaXNfaDI2NF9rZXlmcmFtZSA9IGZhbHNlOworICAg
ICAgYm9vbCBpc19oMjY1ID0gZmFsc2U7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaXNf
aDI2NSA9IGJ1ZmZlcl9bc3RhcnRfaW5kZXhdLnBhY2tldC0+Y29kZWMoKSA9PSBrVmlkZW9Db2Rl
Y0gyNjU7CisgICAgICBib29sIGhhc19oMjY1X3NwcyA9IGZhbHNlOworICAgICAgYm9vbCBoYXNf
aDI2NV9wcHMgPSBmYWxzZTsKKyAgICAgIGJvb2wgaGFzX2gyNjVfaWRyID0gZmFsc2U7CisgICAg
ICBib29sIGlzX2gyNjVfa2V5ZnJhbWUgPSBmYWxzZTsKKyNlbmRpZgogICAgICAgaW50IGlkcl93
aWR0aCA9IC0xOwogICAgICAgaW50IGlkcl9oZWlnaHQgPSAtMTsKICAgICAgIHdoaWxlICh0cnVl
KSB7CiAgICAgICAgICsrdGVzdGVkX3BhY2tldHM7CiAKLSAgICAgICAgaWYgKCFpc19oMjY0ICYm
IGJ1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1lX2JlZ2luKCkpCisgICAgICAgIGlmICghaXNfaDI2
NCAmJiAhaXNfaDI2NSAmJiBidWZmZXJfW3N0YXJ0X2luZGV4XS5mcmFtZV9iZWdpbigpKQogICAg
ICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlmIChpc19oMjY0KSB7CkBAIC0zMjcsNyArMzQxLDI4
IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1
ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAgICAgICAgIH0K
LQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgICAgaWYgKGlzX2gyNjUgJiYgIWlzX2gyNjVf
a2V5ZnJhbWUpIHsKKyAgICAgICAgICBjb25zdCBhdXRvKiBoMjY1X2hlYWRlciA9IGFic2w6Omdl
dF9pZjxSVFBWaWRlb0hlYWRlckgyNjU+KAorICAgICAgICAgICAgICAmYnVmZmVyX1tzdGFydF9p
bmRleF0ucGFja2V0LT52aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOworICAgICAgICAg
IGlmICghaDI2NV9oZWFkZXIgfHwgaDI2NV9oZWFkZXItPm5hbHVzX2xlbmd0aCA+PSBrTWF4TmFs
dXNQZXJQYWNrZXQpCisgICAgICAgICAgICByZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAgICAg
IGZvciAoc2l6ZV90IGogPSAwOyBqIDwgaDI2NV9oZWFkZXItPm5hbHVzX2xlbmd0aDsgKytqKSB7
CisgICAgICAgICAgICBpZiAoaDI2NV9oZWFkZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFs
dVR5cGU6OmtTcHMpIHsKKyAgICAgICAgICAgICAgaGFzX2gyNjVfc3BzID0gdHJ1ZTsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoaDI2NV9oZWFkZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFs
dVR5cGU6OmtQcHMpIHsKKyAgICAgICAgICAgICAgaGFzX2gyNjVfcHBzID0gdHJ1ZTsKKyAgICAg
ICAgICAgIH0gZWxzZSBpZiAoaDI2NV9oZWFkZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFs
dVR5cGU6OmtJZHJXUmFkbAorICAgICAgICAgICAgICAgICAgICAgICB8fCBoMjY1X2hlYWRlci0+
bmFsdXNbal0udHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McAorICAgICAgICAgICAgICAg
ICAgICAgICB8fCBoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6
a0NyYSkgeworICAgICAgICAgICAgICBoYXNfaDI2NV9pZHIgPSB0cnVlOworICAgICAgICAgICAg
fQorICAgICAgICAgIH0KKyAgICAgICAgICBpZiAoKGhhc19oMjY1X3NwcyAmJiBoYXNfaDI2NV9w
cHMpIHx8IGhhc19oMjY1X2lkcikgeworICAgICAgICAgICAgaXNfaDI2NV9rZXlmcmFtZSA9IHRy
dWU7CisgICAgICAgICAgfQorICAgICAgICB9CisjZW5kaWYKICAgICAgICAgaWYgKHRlc3RlZF9w
YWNrZXRzID09IGJ1ZmZlcl8uc2l6ZSgpKQogICAgICAgICAgIGJyZWFrOwogCkBAIC0zMzksNyAr
Mzc0LDcgQEAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ0cEZyYW1lT2JqZWN0Pj4gUGFj
a2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAgICAgICAvLyB0aGUgdGltZXN0YW1wIG9mIHRoYXQg
cGFja2V0IGlzIHRoZSBzYW1lIGFzIHRoaXMgb25lLiBUaGlzIG1heSBjYXVzZQogICAgICAgICAv
LyB0aGUgUGFja2V0QnVmZmVyIHRvIGhhbmQgb3V0IGluY29tcGxldGUgZnJhbWVzLgogICAgICAg
ICAvLyBTZWU6IGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC93ZWJydGMvaXNzdWVzL2RldGFp
bD9pZD03MTA2Ci0gICAgICAgIGlmIChpc19oMjY0ICYmCisgICAgICAgIGlmICgoaXNfaDI2NCB8
fCBpc19oMjY1KSAmJgogICAgICAgICAgICAgKCFidWZmZXJfW3N0YXJ0X2luZGV4XS51c2VkKCkg
fHwKICAgICAgICAgICAgICBidWZmZXJfW3N0YXJ0X2luZGV4XS5wYWNrZXQtPnRpbWVzdGFtcCAh
PSBmcmFtZV90aW1lc3RhbXApKSB7CiAgICAgICAgICAgYnJlYWs7CkBAIC0zOTMsNiArNDI4LDQ1
IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1
ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAgfQogICAgICAgfQogCisjaWZuZGVmIERJU0FCTEVf
SDI2NQorICAgICAgaWYgKGlzX2gyNjUpIHsKKyAgICAgICAgLy8gV2FybiBpZiB0aGlzIGlzIGFu
IHVuc2FmZSBmcmFtZS4KKyAgICAgICAgaWYgKGhhc19oMjY1X2lkciAmJiAoIWhhc19oMjY1X3Nw
cyB8fCAhaGFzX2gyNjVfcHBzKSkgeworICAgICAgICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOwor
ICAgICAgICAgIHNzIDw8ICJSZWNlaXZlZCBILjI2NS1JRFIgZnJhbWUgIgorICAgICAgICAgICAg
IDw8ICIoU1BTOiAiIDw8IGhhc19oMjY1X3NwcyA8PCAiLCBQUFM6ICIgPDwgaGFzX2gyNjVfcHBz
IDw8ICIpLiAiOworICAgICAgICAgIHNzIDw8ICJUcmVhdGluZyBhcyBkZWx0YSBmcmFtZSBzaW5j
ZSAiCisgICAgICAgICAgICAgICAgIldlYlJUQy1TcHNQcHNJZHJJc0gyNjVLZXlmcmFtZSBpcyBh
bHdheXMgZW5hYmxlZC4iOworICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgc3Muc3Ry
KCk7CisgICAgICAgIH0KKworICAgICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGRlY2lkZWQgd2hl
dGhlciB0byB0cmVhdCB0aGlzIGZyYW1lIGFzIGEga2V5IGZyYW1lCisgICAgICAgIC8vIG9yIGRl
bHRhIGZyYW1lIGluIHRoZSBmcmFtZSBidWZmZXIsIHdlIHVwZGF0ZSB0aGUgZmllbGQgdGhhdAor
ICAgICAgICAvLyBkZXRlcm1pbmVzIGlmIHRoZSBSdHBGcmFtZU9iamVjdCBpcyBhIGtleSBmcmFt
ZSBvciBkZWx0YSBmcmFtZS4KKyAgICAgICAgY29uc3Qgc2l6ZV90IGZpcnN0X3BhY2tldF9pbmRl
eCA9IHN0YXJ0X3NlcV9udW0gJSBidWZmZXJfLnNpemUoKTsKKyAgICAgICAgUlRDX0NIRUNLX0xU
KGZpcnN0X3BhY2tldF9pbmRleCwgYnVmZmVyXy5zaXplKCkpOworICAgICAgICBpZiAoaXNfaDI2
NV9rZXlmcmFtZSkgeworICAgICAgICAgIGJ1ZmZlcl9bZmlyc3RfcGFja2V0X2luZGV4XS5wYWNr
ZXQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1l
S2V5OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIGJ1ZmZlcl9bZmlyc3RfcGFja2V0X2lu
ZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtW
aWRlb0ZyYW1lRGVsdGE7CisgICAgICAgIH0KKworICAgICAgICAvLyBJZiB0aGlzIGlzIG5vdCBh
IGtleSBmcmFtZSwgbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBnYXBzIGluIHRoZQorICAgICAgICAv
LyBwYWNrZXQgc2VxdWVuY2UgbnVtYmVycyB1cCB1bnRpbCB0aGlzIHBvaW50LgorICAgICAgICBp
ZiAoIWlzX2gyNjVfa2V5ZnJhbWUgJiYgbWlzc2luZ19wYWNrZXRzXy51cHBlcl9ib3VuZChzdGFy
dF9zZXFfbnVtKSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc3Np
bmdfcGFja2V0c18uYmVnaW4oKSkgeworICAgICAgICAgIHVpbnQxNl90IHN0b3BfaW5kZXggPSAo
aW5kZXggKyAxKSAlIGJ1ZmZlcl8uc2l6ZSgpOworICAgICAgICAgIHdoaWxlIChzdGFydF9pbmRl
eCAhPSBzdG9wX2luZGV4KSB7CisgICAgICAgICAgICAvLyBGSVhNRTogZmluZCB3aGF0IGl0IGRv
ZXMuCisgICAgICAgICAgICAvL3NlcXVlbmNlX2J1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1lX2Ny
ZWF0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHN0YXJ0X2luZGV4ID0gKHN0YXJ0X2luZGV4ICsg
MSkgJSBidWZmZXJfLnNpemUoKTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICByZXR1cm4gZm91
bmRfZnJhbWVzOworICAgICAgICB9CisgICAgICB9CisjZW5kaWYKKwogICAgICAgaWYgKGF1dG8g
ZnJhbWUgPSBBc3NlbWJsZUZyYW1lKHN0YXJ0X3NlcV9udW0sIHNlcV9udW0pKSB7CiAgICAgICAg
IGZvdW5kX2ZyYW1lcy5wdXNoX2JhY2soc3RkOjptb3ZlKGZyYW1lKSk7CiAgICAgICB9IGVsc2Ug
ewpAQCAtNDAwLDYgKzQ3NCw3IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFt
ZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPDwgc3RhcnRfc2VxX251bSA8PCAiLSIgPDwgc2VxX251bTsKICAgICAgIH0KIAorCiAg
ICAgICBtaXNzaW5nX3BhY2tldHNfLmVyYXNlKG1pc3NpbmdfcGFja2V0c18uYmVnaW4oKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZ19wYWNrZXRzXy51cHBlcl9ib3VuZChz
ZXFfbnVtKSk7CiAgICAgICBDbGVhckludGVydmFsKHN0YXJ0X3NlcV9udW0sIHNlcV9udW0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNj
CmluZGV4IGU1MWQyOTM2MDc3ZDBkMDhlNzUxNTNmOGUzYmE0Yjg3N2M0NTFjMzMuLjZkZjk4Njk5
YjBjMjYyYzZlOWQ3YzFhYWVlZWFjNGU5M2Y4Y2I3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Np
b25faW5mby5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uY2MKQEAgLTE1Myw2ICsxNTMsMjIg
QEAgc3RkOjp2ZWN0b3I8TmFsdUluZm8+IFZDTVNlc3Npb25JbmZvOjpHZXROYWx1SW5mb3MoKSBj
b25zdCB7CiAgIHJldHVybiBuYWx1X2luZm9zOwogfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQor
c3RkOjp2ZWN0b3I8SDI2NU5hbHVJbmZvPiBWQ01TZXNzaW9uSW5mbzo6R2V0SDI2NU5hbHVJbmZv
cygpIGNvbnN0IHsKKyAgaWYgKHBhY2tldHNfLmVtcHR5KCkgfHwgcGFja2V0c18uZnJvbnQoKS52
aWRlb19oZWFkZXIuY29kZWMgIT0ga1ZpZGVvQ29kZWNIMjY1KQorICAgIHJldHVybiBzdGQ6OnZl
Y3RvcjxIMjY1TmFsdUluZm8+KCk7CisgIHN0ZDo6dmVjdG9yPEgyNjVOYWx1SW5mbz4gbmFsdV9p
bmZvczsKKyAgZm9yIChjb25zdCBWQ01QYWNrZXQmIHBhY2tldCA6IHBhY2tldHNfKSB7CisgICAg
Y29uc3QgYXV0byYgaDI2NSA9CisgICAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlckgyNjU+
KHBhY2tldC52aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgaDI2NS5uYWx1c19sZW5ndGg7ICsraSkgeworICAgICAgbmFsdV9pbmZvcy5w
dXNoX2JhY2soaDI2NS5uYWx1c1tpXSk7CisgICAgfQorICB9CisgIHJldHVybiBuYWx1X2luZm9z
OworfQorI2VuZGlmCisKIHZvaWQgVkNNU2Vzc2lvbkluZm86OlNldEdvZkluZm8oY29uc3QgR29m
SW5mb1ZQOSYgZ29mX2luZm8sIHNpemVfdCBpZHgpIHsKICAgaWYgKHBhY2tldHNfLmVtcHR5KCkp
CiAgICAgcmV0dXJuOwpAQCAtMjExLDYgKzIyNywxMSBAQCBzaXplX3QgVkNNU2Vzc2lvbkluZm86
Okluc2VydEJ1ZmZlcih1aW50OF90KiBmcmFtZV9idWZmZXIsCiAgIC8vIFRPRE8ocGJvcyk6IFJl
bW92ZSBIMjY0IHBhcnNpbmcgZnJvbSB0aGlzIHN0ZXAgYW5kIHVzZSBhIGZyYWdtZW50YXRpb24K
ICAgLy8gaGVhZGVyIHN1cHBsaWVkIGJ5IHRoZSBIMjY0IGRlcGFja2V0aXplci4KICAgY29uc3Qg
c2l6ZV90IGtIMjY0TkFMSGVhZGVyTGVuZ3RoSW5CeXRlcyA9IDE7CisjaWZuZGVmIERJU0FCTEVf
SDI2NQorICBjb25zdCBzaXplX3Qga0gyNjVOQUxIZWFkZXJMZW5ndGhJbkJ5dGVzID0gMjsKKyAg
Y29uc3QgYXV0byogaDI2NSA9CisgICAgICBhYnNsOjpnZXRfaWY8UlRQVmlkZW9IZWFkZXJIMjY1
PigmcGFja2V0LnZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisjZW5kaWYKICAgY29u
c3Qgc2l6ZV90IGtMZW5ndGhGaWVsZExlbmd0aCA9IDI7CiAgIGNvbnN0IGF1dG8qIGgyNjQgPQog
ICAgICAgYWJzbDo6Z2V0X2lmPFJUUFZpZGVvSGVhZGVySDI2ND4oJnBhY2tldC52aWRlb19oZWFk
ZXIudmlkZW9fdHlwZV9oZWFkZXIpOwpAQCAtMjM2LDYgKzI1NywzNiBAQCBzaXplX3QgVkNNU2Vz
c2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50OF90KiBmcmFtZV9idWZmZXIsCiAgICAgcGFja2V0
LnNpemVCeXRlcyA9IHJlcXVpcmVkX2xlbmd0aDsKICAgICByZXR1cm4gcGFja2V0LnNpemVCeXRl
czsKICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgZWxzZSBpZiAoaDI2NSAmJiBoMjY1LT5w
YWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVBUCkgeworICAgIC8vIFNpbWlsYXIgdG8gSDI2NCwg
Zm9yIEgyNjUgYWdncmVnYXRpb24gcGFja2V0cywgd2UgcmVseSBvbiBqaXR0ZXIgYnVmZmVyCisg
ICAgLy8gdG8gcmVtb3ZlIHRoZSB0d28gbGVuZ3RoIGJ5dGVzIGJldHdlZW4gZWFjaCBOQUwgdW5p
dCwgYW5kIHBvdGVudGlhbGx5IGFkZAorICAgIC8vIHN0YXJ0IGNvZGVzLgorICAgIHNpemVfdCBy
ZXF1aXJlZF9sZW5ndGggPSAwOworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfcHRyID0KKyAgICAg
ICAgcGFja2V0X2J1ZmZlciArIGtIMjY1TkFMSGVhZGVyTGVuZ3RoSW5CeXRlczsgIC8vIHNraXAg
cGF5bG9hZGhkcgorICAgIHdoaWxlIChuYWx1X3B0ciA8IHBhY2tldF9idWZmZXIgKyBwYWNrZXQu
c2l6ZUJ5dGVzKSB7CisgICAgICBzaXplX3QgbGVuZ3RoID0gQnVmZmVyVG9VV29yZDE2KG5hbHVf
cHRyKTsKKyAgICAgIHJlcXVpcmVkX2xlbmd0aCArPQorICAgICAgICAgIGxlbmd0aCArIChwYWNr
ZXQuaW5zZXJ0U3RhcnRDb2RlID8ga0gyNjVTdGFydENvZGVMZW5ndGhCeXRlcyA6IDApOworICAg
ICAgbmFsdV9wdHIgKz0ga0xlbmd0aEZpZWxkTGVuZ3RoICsgbGVuZ3RoOworICAgIH0KKyAgICBT
aGlmdFN1YnNlcXVlbnRQYWNrZXRzKHBhY2tldF9pdCwgcmVxdWlyZWRfbGVuZ3RoKTsKKyAgICBu
YWx1X3B0ciA9IHBhY2tldF9idWZmZXIgKyBrSDI2NU5BTEhlYWRlckxlbmd0aEluQnl0ZXM7Cisg
ICAgdWludDhfdCogZnJhbWVfYnVmZmVyX3B0ciA9IGZyYW1lX2J1ZmZlciArIG9mZnNldDsKKyAg
ICB3aGlsZSAobmFsdV9wdHIgPCBwYWNrZXRfYnVmZmVyICsgcGFja2V0LnNpemVCeXRlcykgewor
ICAgICAgc2l6ZV90IGxlbmd0aCA9IEJ1ZmZlclRvVVdvcmQxNihuYWx1X3B0cik7CisgICAgICBu
YWx1X3B0ciArPSBrTGVuZ3RoRmllbGRMZW5ndGg7CisgICAgICAvLyBzaW5jZSBIMjY1IHNoYXJl
cyB0aGUgc2FtZSBzdGFydCBjb2RlIGFzIEgyNjQsIHVzZSB0aGUgc2FtZSBJbnNlcnQKKyAgICAg
IC8vIGZ1bmN0aW9uIHRvIGhhbmRsZSBzdGFydCBjb2RlLgorICAgICAgZnJhbWVfYnVmZmVyX3B0
ciArPSBJbnNlcnQobmFsdV9wdHIsIGxlbmd0aCwgcGFja2V0Lmluc2VydFN0YXJ0Q29kZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8dWludDhfdCo+KGZyYW1l
X2J1ZmZlcl9wdHIpKTsKKyAgICAgIG5hbHVfcHRyICs9IGxlbmd0aDsKKyAgICB9CisgICAgcGFj
a2V0LnNpemVCeXRlcyA9IHJlcXVpcmVkX2xlbmd0aDsKKyAgICByZXR1cm4gcGFja2V0LnNpemVC
eXRlczsKKyAgfQorI2VuZGlmCiAgIFNoaWZ0U3Vic2VxdWVudFBhY2tldHMoCiAgICAgICBwYWNr
ZXRfaXQsIHBhY2tldC5zaXplQnl0ZXMgKwogICAgICAgICAgICAgICAgICAgICAgKHBhY2tldC5p
bnNlcnRTdGFydENvZGUgPyBrSDI2NFN0YXJ0Q29kZUxlbmd0aEJ5dGVzIDogMCkpOwpAQCAtNDYy
LDcgKzUxMywyMiBAQCBpbnQgVkNNU2Vzc2lvbkluZm86Okluc2VydFBhY2tldChjb25zdCBWQ01Q
YWNrZXQmIHBhY2tldCwKICAgICAgICAgIElzTmV3ZXJTZXF1ZW5jZU51bWJlcihwYWNrZXQuc2Vx
TnVtLCBsYXN0X3BhY2tldF9zZXFfbnVtXykpKSB7CiAgICAgICBsYXN0X3BhY2tldF9zZXFfbnVt
XyA9IHBhY2tldC5zZXFOdW07CiAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgfSBlbHNl
IGlmIChwYWNrZXQuY29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICBmcmFtZV90eXBl
XyA9IHBhY2tldC52aWRlb19oZWFkZXIuZnJhbWVfdHlwZTsKKyAgICBpZiAocGFja2V0LmlzX2Zp
cnN0X3BhY2tldF9pbl9mcmFtZSgpICYmCisgICAgICAgIChmaXJzdF9wYWNrZXRfc2VxX251bV8g
PT0gLTEgfHwKKyAgICAgICAgIElzTmV3ZXJTZXF1ZW5jZU51bWJlcihmaXJzdF9wYWNrZXRfc2Vx
X251bV8sIHBhY2tldC5zZXFOdW0pKSkgeworICAgICAgZmlyc3RfcGFja2V0X3NlcV9udW1fID0g
cGFja2V0LnNlcU51bTsKKyAgICB9CisgICAgaWYgKHBhY2tldC5tYXJrZXJCaXQgJiYKKyAgICAg
ICAgKGxhc3RfcGFja2V0X3NlcV9udW1fID09IC0xIHx8CisgICAgICAgICBJc05ld2VyU2VxdWVu
Y2VOdW1iZXIocGFja2V0LnNlcU51bSwgbGFzdF9wYWNrZXRfc2VxX251bV8pKSkgeworICAgICAg
bGFzdF9wYWNrZXRfc2VxX251bV8gPSBwYWNrZXQuc2VxTnVtOworICAgIH0KKyNlbHNlCiAgIH0g
ZWxzZSB7CisjZW5kaWYKICAgICAvLyBPbmx5IGluc2VydCBtZWRpYSBwYWNrZXRzIGJldHdlZW4g
Zmlyc3QgYW5kIGxhc3QgcGFja2V0cyAod2hlbgogICAgIC8vIGF2YWlsYWJsZSkuCiAgICAgLy8g
UGxhY2luZyBjaGVjayBoZXJlLCBhcyB0byBwcm9wZXJseSBhY2NvdW50IGZvciBkdXBsaWNhdGUg
cGFja2V0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Npb25faW5mby5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lv
bl9pbmZvLmgKaW5kZXggMDZhMzQ4ZWY3MjM1NDc3MWIyODM4NWY5ZDZmMjQ1YmE5MGE3MWNkOS4u
MDFlYTdiZDI5Nzc3MjdmZDc2NzYxNDJkNGIxNzNhNWM5ZDY5MjlhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvc2Vzc2lvbl9pbmZvLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKQEAgLTY1LDcgKzY1
LDkgQEAgY2xhc3MgVkNNU2Vzc2lvbkluZm8gewogICBpbnQgVGwwUGljSWQoKSBjb25zdDsKIAog
ICBzdGQ6OnZlY3RvcjxOYWx1SW5mbz4gR2V0TmFsdUluZm9zKCkgY29uc3Q7Ci0KKyNpZm5kZWYg
RElTQUJMRV9IMjY1CisgIHN0ZDo6dmVjdG9yPEgyNjVOYWx1SW5mbz4gR2V0SDI2NU5hbHVJbmZv
cygpIGNvbnN0OworI2VuZGlmCiAgIHZvaWQgU2V0R29mSW5mbyhjb25zdCBHb2ZJbmZvVlA5JiBn
b2ZfaW5mbywgc2l6ZV90IGlkeCk7CiAKICBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvZXhwZXJpbWVudHMvbWlu
X3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4cGVyaW1lbnRzL21pbl92aWRlb19iaXRyYXRlX2V4
cGVyaW1lbnQuY2MKaW5kZXggMTE0NTBkMDg0OTIxYzY3NDkyNTZhNDRjNmRjNjZhYTNhZThmZmNm
My4uM2IxM2U4ZTliZmVkOTJiZTBmMzg5MWVkZWI5MDgxY2ZiOGM2MTllMyAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvZXhwZXJp
bWVudHMvbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5jYworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9ydGNfYmFzZS9leHBlcmltZW50cy9taW5fdmlk
ZW9fYml0cmF0ZV9leHBlcmltZW50LmNjCkBAIC0xMDAsNiArMTAwLDkgQEAgYWJzbDo6b3B0aW9u
YWw8RGF0YVJhdGU+IEdldEV4cGVyaW1lbnRhbE1pblZpZGVvQml0cmF0ZShWaWRlb0NvZGVjVHlw
ZSB0eXBlKSB7CiAgICAgICAgIHJldHVybiBtaW5fYml0cmF0ZV9hdjEuR2V0T3B0aW9uYWwoKTsK
ICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgICByZXR1cm4gbWluX2JpdHJhdGVf
aDI2NC5HZXRPcHRpb25hbCgpOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgIGNhc2Uga1Zp
ZGVvQ29kZWNIMjY1OgorI2VuZGlmCiAgICAgICBjYXNlIGtWaWRlb0NvZGVjR2VuZXJpYzoKICAg
ICAgIGNhc2Uga1ZpZGVvQ29kZWNNdWx0aXBsZXg6CiAgICAgICAgIHJldHVybiBhYnNsOjpudWxs
b3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggYWI3
Nzk0MmU2OTQ2YmRlMzAwMjk5MGEzYTI2YTEwMDFlZjYzMDUyNS4uNmYwODA1YjBiYmJlM2QwMzhj
NWM0NTZjZTYwYmViZGVhODgwMTJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktp
dFV0aWxpdGllcy5oCkBAIC0zOSw3ICszOSw3IEBAIGNsYXNzIFZpZGVvRGVjb2RlckZhY3Rvcnk7
CiBjbGFzcyBWaWRlb0VuY29kZXJGYWN0b3J5OwogY2xhc3MgVmlkZW9GcmFtZTsKIAotZW51bSBj
bGFzcyBXZWJLaXRDb2RlY1N1cHBvcnQgeyBIMjY0LCBIMjY0QW5kVlA4IH07CitlbnVtIGNsYXNz
IFdlYktpdENvZGVjU3VwcG9ydCB7IEgyNjRWUDhBbmRIMjY1LCBIMjY0QW5kVlA4IH07CiAKIHN0
ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVu
Y29kZXJGYWN0b3J5KFdlYktpdENvZGVjU3VwcG9ydCk7CiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRj
OjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShXZWJLaXRD
b2RlY1N1cHBvcnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW0gYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5t
bQppbmRleCAxNDAyYzJiZjNhNDE3MDNhY2I4ZjNkMGYxZjBhNDNhNzlhYTNjYjZlLi42Y2U4NjUz
YzM1NDI1NDFhYjgxZWVkYTFiY2VmZTgzOGZhYWE1NTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGll
cy5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
V2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQpAQCAtMTE2LDcgKzExNiw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0
b3J5KFdlYktpdENvCiAgICAgfSk7CiAjZW5kaWYKIAotICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5
ID0gT2JqQ1RvTmF0aXZlVmlkZW9FbmNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQgPT0gV2ViS2l0
Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4ID8gW1tSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9y
eSBhbGxvY10gaW5pdF0gOiBbW1JUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0IGFsbG9jXSBpbml0
XSk7CisgICAgYXV0byBpbnRlcm5hbEZhY3RvcnkgPSBPYmpDVG9OYXRpdmVWaWRlb0VuY29kZXJG
YWN0b3J5KFtbUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2
NTogY29kZWNTdXBwb3J0ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NFZQOEFuZEgyNjVdKTsK
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxWaWRlb0VuY29kZXJGYWN0b3J5V2l0aFNpbXVs
Y2FzdD4oc3RkOjptb3ZlKGludGVybmFsRmFjdG9yeSkpOwogfQogCkBAIC0yNzEsNyArMjcxLDcg
QEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVjb2Rlcj4gUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9y
eTo6Q3JlYXRlVmlkZW9EZWNvZGVyKGNvbnMKIAogc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6Vmlk
ZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0Q29kZWNT
dXBwb3J0IGNvZGVjU3VwcG9ydCkKIHsKLSAgICBhdXRvIGludGVybmFsRmFjdG9yeSA9IE9iakNU
b05hdGl2ZVZpZGVvRGVjb2RlckZhY3RvcnkoY29kZWNTdXBwb3J0ID09IFdlYktpdENvZGVjU3Vw
cG9ydDo6SDI2NEFuZFZQOCA/IFtbUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgYWxsb2Nd
IGluaXRdIDogW1tSVENWaWRlb0RlY29kZXJGYWN0b3J5SDI2NCBhbGxvY10gaW5pdF0pOworICAg
IGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShb
W1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGFsbG9jXSBpbml0V2l0aEgyNjU6IGNvZGVj
U3VwcG9ydCA9PSBXZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjRWUDhBbmRIMjY1XSk7CiAgICAgaWYg
KHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNyZWF0ZUNhbGxiYWNrKQogICAgICAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVWaWRlb0RlY29kZXJGYWN0b3J5PihzdGQ6Om1vdmUoaW50
ZXJuYWxGYWN0b3J5KSk7CiAgICAgcmV0dXJuIGludGVybmFsRmFjdG9yeTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hMjJkMzU5NGY1NTdmN2I3NWZmNjdmOTQyN2JiNDYxYjBjOWJhNWNlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0
ZS5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBw
cm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0
IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3Vy
Y2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMg
Z3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmli
dXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZp
bGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisvKiBUaGlzIGZpbGUgaXMg
Ym9ycm93ZWQgZnJvbSBzZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3Bl
Y2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8KKworI2ltcG9ydCAiUlRDQ29kZWNTcGVjaWZpY0lu
Zm9IMjY1LmgiCisKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVv
X2NvZGVjX2ludGVyZmFjZS5oIgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCisvKiBJbnRl
cmZhY2VzIGZvciBjb252ZXJ0aW5nIHRvL2Zyb20gaW50ZXJuYWwgQysrIGZvcm1hdHMuICovCitA
aW50ZXJmYWNlIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NSAoKQorCistICh3ZWJydGM6OkNvZGVj
U3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvOworCitAZW5kCisKK05TX0FTU1VN
RV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNp
ZmljSW5mb0gyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmJiYWUxOWM3YmMzMWI4NDU5Zjc1ZGJkMTE5NDg1OTA0NmJmZTNiOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY1LmgKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRD
IHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRo
YXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNv
dXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0
cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRy
aWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMg
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKy8qIFRoaXMgZmlsZSBp
cyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY0LmguICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5o
PgorCisjaW1wb3J0ICJSVENDb2RlY1NwZWNpZmljSW5mby5oIgorI2ltcG9ydCAiUlRDTWFjcm9z
LmgiCisKKy8qKiBDbGFzcyBmb3IgSDI2NSBzcGVjaWZpYyBjb25maWcuICovCit0eXBlZGVmIE5T
X0VOVU0oTlNVSW50ZWdlciwgUlRDSDI2NVBhY2tldGl6YXRpb25Nb2RlKSB7CisgIFJUQ0gyNjVQ
YWNrZXRpemF0aW9uTW9kZU5vbkludGVybGVhdmVkID0gMCwgIC8vIE1vZGUgMSAtIFNUQVAtQSwg
RlUtQSBpcyBhbGxvd2VkCisgIFJUQ0gyNjVQYWNrZXRpemF0aW9uTW9kZVNpbmdsZU5hbFVuaXQg
ICAgICAgIC8vIE1vZGUgMCAtIG9ubHkgc2luZ2xlIE5BTFUgYWxsb3dlZAorfTsKKworUlRDX09C
SkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY1IikpKQorQGludGVyZmFjZSBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUg
OiBOU09iamVjdCA8UlRDQ29kZWNTcGVjaWZpY0luZm8+CisKK0Bwcm9wZXJ0eShub25hdG9taWMs
IGFzc2lnbikgUlRDSDI2NVBhY2tldGl6YXRpb25Nb2RlIHBhY2tldGl6YXRpb25Nb2RlOworCitA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk0YTQ2OTg1ZjcyNzc0ZDQ1ZTMzNDA1MDhjZDBhNGMwOGZkMWYxZTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbQpA
QCAtMCwwICsxLDI4IEBACisvKgorICogIENvcHlyaWdodCAyMDE3IFRoZSBXZWJSVEMgcHJvamVj
dCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3Vy
Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4g
YmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisg
KiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50
IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5n
IHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGlu
IHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworIC8qIFRoaXMgZmlsZSBpcyBib3Jy
b3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZp
Y0luZm9IMjY0Lm1tICovCisKKyNpbXBvcnQgIlJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2
YXRlLmgiCisKKy8vIEgyNjUgc3BlY2lmaWMgc2V0dGluZ3MuCitAaW1wbGVtZW50YXRpb24gUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1CisKK0BzeW50aGVzaXplIHBhY2tldGl6YXRpb25Nb2RlID0g
X3BhY2tldGl6YXRpb25Nb2RlOworCistICh3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2
ZUNvZGVjU3BlY2lmaWNJbmZvIHsKKyAgd2VicnRjOjpDb2RlY1NwZWNpZmljSW5mbyBjb2RlY1Nw
ZWNpZmljSW5mbzsKKyAgY29kZWNTcGVjaWZpY0luZm8uY29kZWNUeXBlID0gd2VicnRjOjprVmlk
ZW9Db2RlY0gyNjU7CisgIGNvZGVjU3BlY2lmaWNJbmZvLmNvZGVjU3BlY2lmaWMuSDI2NS5wYWNr
ZXRpemF0aW9uX21vZGUgPQorICAgICAgKHdlYnJ0Yzo6SDI2NVBhY2tldGl6YXRpb25Nb2RlKV9w
YWNrZXRpemF0aW9uTW9kZTsKKworICByZXR1cm4gY29kZWNTcGVjaWZpY0luZm87Cit9CisKK0Bl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZh
Y3RvcnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnku
aAppbmRleCBkMTE0NjAzMDBkNTFlZDE2NTVlYjJlNzg5MTlmMGY0ZGRjYzU5OWI3Li5iODM4YTRi
OGFlNjk1MDYxN2UxZWVkZTIyYmM4YzhjNjBmODQ3Nzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oCkBAIC0yMSw2ICsyMSw3IEBAIE5T
X0FTU1VNRV9OT05OVUxMX0JFR0lOCiBSVENfT0JKQ19FWFBPUlQKIF9fYXR0cmlidXRlX18oKG9i
amNfcnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSIpKSkKIEBp
bnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgOiBOU09iamVjdCA8UlRDVmlk
ZW9EZWNvZGVyRmFjdG9yeT4KKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0SDI2NTsK
IEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0KaW5kZXggNDQ0NDVmNGIxMzMyMTY2YTY4N2Zh
Y2JiNGM1MGE4Nzk1NDliMmM3ZS4uYTQ5NmFlNTQzZTk2NWUzNGNhNzg3Nzc4MzdmMjIzNTM2M2Qx
OGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeS5tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZh
Y3RvcnkubQpAQCAtMTgsOCArMTgsMjMgQEAKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQog
I2ltcG9ydCAiYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlclZQOS5oIgogI2VuZGlmCisj
aWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKKyNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2
ZWxJZC5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVySDI2NS5oIgorI2VuZGlmCisKK0BpbXBs
ZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSB7CisgIGJvb2wgX3N1cHBv
cnRIMjY1OworfQogCi1AaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rv
cnkKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0SDI2NQoreworICBzZWxmID0gW3N1
cGVyIGluaXRdOworICBpZiAoc2VsZikgeworICAgICAgX3N1cHBvcnRIMjY1ID0gc3VwcG9ydEgy
NjU7CisgIH0KKyAgcmV0dXJuIHNlbGY7Cit9CiAKIC0gKE5TQXJyYXk8UlRDVmlkZW9Db2RlY0lu
Zm8gKj4gKilzdXBwb3J0ZWRDb2RlY3MgewogICBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNT
dHJpbmcgKj4gKmNvbnN0cmFpbmVkSGlnaFBhcmFtcyA9IEB7CkBAIC00MiwxMyArNTcsMzAgQEAg
QGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5CiAKICAgUlRDVmlk
ZW9Db2RlY0luZm8gKnZwOEluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0
aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDhOYW1lXTsKIAorI2lmICFkZWZpbmVkKFJUQ19ESVNBQkxF
X0gyNjUpCisgIFJUQ1ZpZGVvQ29kZWNJbmZvICpoMjY1SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0lu
Zm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY0gyNjVOYW1lXTsKKyNlbmRpZgor
IAogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAgIFJUQ1ZpZGVvQ29kZWNJbmZvICp2cDlJ
bmZvID0gW1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtSVENWaWRlb0Nv
ZGVjVnA5TmFtZV07CiAjZW5kaWYKIAorICBpZiAoIV9zdXBwb3J0SDI2NSkgeworICAgIHJldHVy
biBAWworICAgICAgY29uc3RyYWluZWRIaWdoSW5mbywKKyAgICAgIGNvbnN0cmFpbmVkQmFzZWxp
bmVJbmZvLAorICAgICAgdnA4SW5mbywKKyNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorICAg
ICAgdnA5SW5mbywKKyNlbmRpZgorICAgIF07CisgIH0KICAgcmV0dXJuIEBbCiAgICAgY29uc3Ry
YWluZWRIaWdoSW5mbywKICAgICBjb25zdHJhaW5lZEJhc2VsaW5lSW5mbywKKyNpZiAhZGVmaW5l
ZChSVENfRElTQUJMRV9IMjY1KQorICAgIGgyNjVJbmZvLAorI2VuZGlmCiAgICAgdnA4SW5mbywK
ICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICAgIHZwOUluZm8sCkBAIC02MSw2ICs5Mywx
MCBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkKICAgICBy
ZXR1cm4gW1tSVENWaWRlb0RlY29kZXJIMjY0IGFsbG9jXSBpbml0XTsKICAgfSBlbHNlIGlmIChb
aW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY1ZwOE5hbWVdKSB7CiAgICAg
cmV0dXJuIFtSVENWaWRlb0RlY29kZXJWUDggdnA4RGVjb2Rlcl07CisjaWYgIWRlZmluZWQoUlRD
X0RJU0FCTEVfSDI2NSkKKyAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzpr
UlRDVmlkZW9Db2RlY0gyNjVOYW1lXSkgeworICAgIHJldHVybiBbW1JUQ1ZpZGVvRGVjb2Rlckgy
NjUgYWxsb2NdIGluaXRdOworI2VuZGlmCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICAg
fSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY1ZwOU5h
bWVdKSB7CiAgICAgcmV0dXJuIFtSVENWaWRlb0RlY29kZXJWUDkgdnA5RGVjb2Rlcl07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2Jq
Yy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmgKaW5kZXgg
OTMyMzI1NmNlYWRjODM4YzUzYzgwYTcwZmMwZDBiZTI1NTMzNWZlMy4uYTk5NWRhYWI1NDEwZjAz
ZGQxYjM3ZjA4OGQzNTE1NTgwNGQ2NzgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
RGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaApAQCAtMjIsOCArMjIsNyBAQCBSVENfT0JKQ19F
WFBPUlQKIF9fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0Vmlk
ZW9FbmNvZGVyRmFjdG9yeSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZh
Y3RvcnkgOiBOU09iamVjdCA8UlRDVmlkZW9FbmNvZGVyRmFjdG9yeT4KIAotQHByb3BlcnR5KG5v
bmF0b21pYywgcmV0YWluKSBSVENWaWRlb0NvZGVjSW5mbyAqcHJlZmVycmVkQ29kZWM7Ci0KKy0g
KGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBwb3J0SDI2NTsKICsgKE5TQXJyYXk8UlRDVmlkZW9D
b2RlY0luZm8gKj4gKilzdXBwb3J0ZWRDb2RlY3M7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubSBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubQppbmRleCBiNzIyOTZiNjRmMzFi
MGVmYjQ1YThiZGRhNjM5YjQ4MmFmYWRiZGEwLi5kNjg2MDlkNTY0OTMxOGQ4ZTMyMTJjZTQyZWRm
OTkyNmRkYjQ4Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRl
b0VuY29kZXJGYWN0b3J5Lm0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9F
bmNvZGVyRmFjdG9yeS5tCkBAIC0xOCwxMCArMTgsMjMgQEAKICNpZiBkZWZpbmVkKFJUQ19FTkFC
TEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlclZQOS5oIgog
I2VuZGlmCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQorI2ltcG9ydCAiUlRDSDI2NVByb2Zp
bGVMZXZlbElkLmgiCisjaW1wb3J0ICJSVENWaWRlb0VuY29kZXJIMjY1LmgiCisjZW5kaWYKIAot
QGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CitAaW1wbGVtZW50
YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkgeworICBib29sIF9zdXBwb3J0SDI2
NTsKK30KIAotQHN5bnRoZXNpemUgcHJlZmVycmVkQ29kZWM7CistIChpZClpbml0V2l0aEgyNjU6
KGJvb2wpc3VwcG9ydEgyNjUKK3sKKyAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgaWYgKHNlbGYp
IHsKKyAgICAgIF9zdXBwb3J0SDI2NSA9IHN1cHBvcnRIMjY1OworICB9CisgIHJldHVybiBzZWxm
OworfQogCiArIChOU0FycmF5PFJUQ1ZpZGVvQ29kZWNJbmZvICo+ICopc3VwcG9ydGVkQ29kZWNz
IHsKICAgTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICpjb25zdHJhaW5lZEhp
Z2hQYXJhbXMgPSBAewpAQCAtNDIsNiArNTUsMTAgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5CiAgICAgICBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBp
bml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNIMjY0TmFtZQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXJhbWV0ZXJzOmNvbnN0cmFpbmVkQmFzZWxpbmVQYXJhbXNdOwogCisj
aWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQorICBSVENWaWRlb0NvZGVjSW5mbyAqaDI2NUluZm8g
PSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNI
MjY1TmFtZV07CisjZW5kaWYKKwogICBSVENWaWRlb0NvZGVjSW5mbyAqdnA4SW5mbyA9IFtbUlRD
VmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOE5hbWVd
OwogCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKQEAgLTUxLDYgKzY4LDkgQEAgQGltcGxl
bWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CiAgIHJldHVybiBAWwogICAg
IGNvbnN0cmFpbmVkSGlnaEluZm8sCiAgICAgY29uc3RyYWluZWRCYXNlbGluZUluZm8sCisjaWYg
IWRlZmluZWQoRElTQUJMRV9IMjY1KQorICAgIGgyNjVJbmZvLAorI2VuZGlmCiAgICAgdnA4SW5m
bywKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICAgIHZwOUluZm8sCkBAIC02Niw2ICs4
NiwxMiBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICNp
ZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogICB9IGVsc2UgaWYgKFtpbmZvLm5hbWUgaXNFcXVh
bFRvU3RyaW5nOmtSVENWaWRlb0NvZGVjVnA5TmFtZV0pIHsKICAgICByZXR1cm4gW1JUQ1ZpZGVv
RW5jb2RlclZQOSB2cDlFbmNvZGVyXTsKKyNlbmRpZgorI2lmICFkZWZpbmVkKERJU0FCTEVfSDI2
NSkKKyAgfSBlbHNlIGlmIChAYXZhaWxhYmxlKGlPUyAxMSwgKikpIHsKKyAgICBpZiAoW2luZm8u
bmFtZSBpc0VxdWFsVG9TdHJpbmc6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV0pIHsKKyAgICAgIHJl
dHVybiBbW1JUQ1ZpZGVvRW5jb2RlckgyNjUgYWxsb2NdIGluaXRXaXRoQ29kZWNJbmZvOmluZm9d
OworICAgIH0KICNlbmRpZgogICB9CiAKQEAgLTc2LDEyICsxMDIsOSBAQCBAaW1wbGVtZW50YXRp
b24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICAgTlNNdXRhYmxlQXJyYXk8UlRDVmlk
ZW9Db2RlY0luZm8gKj4gKmNvZGVjcyA9IFtbW3NlbGYgY2xhc3NdIHN1cHBvcnRlZENvZGVjc10g
bXV0YWJsZUNvcHldOwogCiAgIE5TTXV0YWJsZUFycmF5PFJUQ1ZpZGVvQ29kZWNJbmZvICo+ICpv
cmRlcmVkQ29kZWNzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKLSAgTlNVSW50ZWdlciBpbmRl
eCA9IFtjb2RlY3MgaW5kZXhPZk9iamVjdDpzZWxmLnByZWZlcnJlZENvZGVjXTsKLSAgaWYgKGlu
ZGV4ICE9IE5TTm90Rm91bmQpIHsKLSAgICBbb3JkZXJlZENvZGVjcyBhZGRPYmplY3Q6W2NvZGVj
cyBvYmplY3RBdEluZGV4OmluZGV4XV07Ci0gICAgW2NvZGVjcyByZW1vdmVPYmplY3RBdEluZGV4
OmluZGV4XTsKLSAgfQogICBbb3JkZXJlZENvZGVjcyBhZGRPYmplY3RzRnJvbUFycmF5OmNvZGVj
c107CisgIGlmICghX3N1cHBvcnRIMjY1KQorICAgIFtvcmRlcmVkQ29kZWNzIHJlbW92ZU9iamVj
dEF0SW5kZXg6MF07CiAKICAgcmV0dXJuIFtvcmRlcmVkQ29kZWNzIGNvcHldOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQuaCBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGUzNDg2ZDA2ZDQx
MjdlOTc4MzkyOWZlNDBiZWRiMzNhNWM2N2IyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgKQEAgLTAsMCArMSwxNiBAQAorLyoKKyAq
ICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwg
aW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0
aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5Cisg
KiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNl
IHRyZWUuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBv
cnQgIlJUQ01hY3Jvcy5oIgorCitSVENfT0JKQ19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICpjb25z
dCBrUlRDVmlkZW9Db2RlY0gyNjVOYW1lOworUlRDX09CSkNfRVhQT1JUIGV4dGVybiBOU1N0cmlu
ZyAqY29uc3Qga1JUQ0xldmVsMzFNYWluOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENIMjY1UHJvZmlsZUxldmVsSWQubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxl
TGV2ZWxJZC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWQ0NGUyYTU5MzMyZjc2ZjliYjg1NTE2NDZkY2Q3MzJi
OTA1MzI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmls
ZUxldmVsSWQubW0KQEAgLTAsMCArMSwxOCBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxOCBUaGUg
V2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQor
ICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2Yg
dGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5
IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxs
IGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFV
VEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKgorICovCisKKyNp
bXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgorCisjaW5jbHVkZSAibWVkaWEvYmFzZS9t
ZWRpYV9jb25zdGFudHMuaCIKKworTlNTdHJpbmcgKmNvbnN0IGtSVENWaWRlb0NvZGVjSDI2NU5h
bWUgPSBAIkgyNjUiOworLy8gVE9ETyhqaWFuanVueik6IFRoaXMgaXMgdmFsdWUgaXMgbm90IGNv
cnJlY3QuCitOU1N0cmluZyAqY29uc3Qga1JUQ0xldmVsMzFNYWluID0gQCI0ZDAwMWYiOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1LmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzliMzgyODljMmYx
OWJjYWQyZjA0NGEwMDg5NjlhOTUwZTI3ZTAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1LmgKQEAgLTAsMCArMSwxOSBAQAorLyoKKyAqICBD
b3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBC
U0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZp
bGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50
ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUg
ZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAg
YmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRy
ZWUuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQg
IlJUQ01hY3Jvcy5oIgorI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVyLmgiCisKK1JUQ19PQkpDX0VY
UE9SVAorX19hdHRyaWJ1dGVfXygob2JqY19ydW50aW1lX25hbWUoIldLX1JUQ1ZpZGVvRGVjb2Rl
ckgyNjUiKSkpCitAaW50ZXJmYWNlIFJUQ1ZpZGVvRGVjb2RlckgyNjUgOiBOU09iamVjdCA8UlRD
VmlkZW9EZWNvZGVyPgorQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRl
b0RlY29kZXJIMjY1Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ0NjI2NjhhNjE4OTQwYzgzOWFiODYyY2ExYTMxNGU1OWY1OWNmZGEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUubW0K
QEAgLTAsMCArMSwyNzAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMg
cHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhh
dCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRz
IGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJp
YnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBm
aWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKi8KKworI2ltcG9ydCAi
UlRDVmlkZW9EZWNvZGVySDI2NS5oIgorCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29s
Ym94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2ltcG9ydCAiYmFzZS9S
VENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1
ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgiCisjaW1wb3J0ICJo
ZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIKKworI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29k
aW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9jaGVj
a3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2Uv
dGltZV91dGlscy5oIgorI2luY2x1ZGUgInNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
bmFsdV9yZXdyaXRlci5oIgorCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRoZSBkZWNvZGVy
IHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGluIHRoZSBkZWNv
ZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyB7CisgIFJUQ0gy
NjVGcmFtZURlY29kZVBhcmFtcyhSVENWaWRlb0RlY29kZXJDYWxsYmFjayBjYiwgaW50NjRfdCB0
cykKKyAgICAgIDogY2FsbGJhY2soY2IpLCB0aW1lc3RhbXAodHMpIHt9CisgIFJUQ1ZpZGVvRGVj
b2RlckNhbGxiYWNrIGNhbGxiYWNrOworICBpbnQ2NF90IHRpbWVzdGFtcDsKK307CisKKy8vIFRo
aXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNhbGxzIHdoZW4g
ZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3ZvaWQgaDI2NURlY29tcHJlc3Npb25PdXRwdXRDYWxs
YmFjayh2b2lkKiBkZWNvZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZvaWQqIHBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPU1N0
YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlREZWNv
ZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ01UaW1lIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDTVRpbWUgZHVyYXRpb24pIHsKKyAgc3RkOjp1bmlxdWVfcHRyPFJUQ0gy
NjVGcmFtZURlY29kZVBhcmFtcz4gZGVjb2RlUGFyYW1zKAorICAgICAgcmVpbnRlcnByZXRfY2Fz
dDxSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMqPihwYXJhbXMpKTsKKyAgaWYgKHN0YXR1cyAhPSBu
b0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1l
LiBTdGF0dXM6ICIgPDwgc3RhdHVzOworICAgIHJldHVybjsKKyAgfQorICAvLyBUT0RPKHRrY2hp
bik6IEhhbmRsZSBDVk8gcHJvcGVybHkuCisgIFJUQ0NWUGl4ZWxCdWZmZXIqIGZyYW1lQnVmZmVy
ID0KKyAgICAgIFtbUlRDQ1ZQaXhlbEJ1ZmZlciBhbGxvY10gaW5pdFdpdGhQaXhlbEJ1ZmZlcjpp
bWFnZUJ1ZmZlcl07CisgIFJUQ1ZpZGVvRnJhbWUqIGRlY29kZWRGcmFtZSA9IFtbUlRDVmlkZW9G
cmFtZSBhbGxvY10KKyAgICAgIGluaXRXaXRoQnVmZmVyOmZyYW1lQnVmZmVyCisgICAgICAgICAg
ICByb3RhdGlvbjpSVENWaWRlb1JvdGF0aW9uXzAKKyAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGlt
ZUdldFNlY29uZHModGltZXN0YW1wKSAqIHJ0Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVj
b2RlZEZyYW1lLnRpbWVTdGFtcCA9IGRlY29kZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQ
YXJhbXMtPmNhbGxiYWNrKGRlY29kZWRGcmFtZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVt
ZW50YXRpb24gUlRDVmlkZW9EZWNvZGVySDI2NSB7CisgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
blJlZiBfdmlkZW9Gb3JtYXQ7CisgIFZURGVjb21wcmVzc2lvblNlc3Npb25SZWYgX2RlY29tcHJl
c3Npb25TZXNzaW9uOworICBSVENWaWRlb0RlY29kZXJDYWxsYmFjayBfY2FsbGJhY2s7CisgIE9T
U3RhdHVzIF9lcnJvcjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXQgeworICBpZiAoc2VsZiA9
IFtzdXBlciBpbml0XSkgeworICB9CisKKyAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVh
bGxvYyB7CisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgIFtzZWxmIHNl
dFZpZGVvRm9ybWF0Om51bGxwdHJdOworfQorCistIChOU0ludGVnZXIpc3RhcnREZWNvZGVXaXRo
TnVtYmVyT2ZDb3JlczooaW50KW51bWJlck9mQ29yZXMgeworICByZXR1cm4gV0VCUlRDX1ZJREVP
X0NPREVDX09LOworfQorCistIChOU0ludGVnZXIpZGVjb2RlOihSVENFbmNvZGVkSW1hZ2UqKWlu
cHV0SW1hZ2UKKyAgICAgICAgICBtaXNzaW5nRnJhbWVzOihCT09MKW1pc3NpbmdGcmFtZXMKKyAg
ICAgIGNvZGVjU3BlY2lmaWNJbmZvOihfX251bGxhYmxlIGlkPFJUQ0NvZGVjU3BlY2lmaWNJbmZv
PilpbmZvCisgICAgICAgICAgIHJlbmRlclRpbWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMgewor
ICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVmZmVyKTsKKworICBpZiAoX2Vycm9yICE9IG5vRXJy
KSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiTGFzdCBmcmFtZSBkZWNvZGUgZmFpbGVk
LiI7CisgICAgX2Vycm9yID0gbm9FcnI7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19F
UlJPUjsKKyAgfQorCisgIHJ0Yzo6U2NvcGVkQ0ZUeXBlUmVmPENNVmlkZW9Gb3JtYXREZXNjcmlw
dGlvblJlZj4gaW5wdXRGb3JtYXQgPQorICAgICAgcnRjOjpTY29wZWRDRih3ZWJydGM6OkNyZWF0
ZUgyNjVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKAorICAgICAgICAgICh1aW50OF90KilpbnB1dElt
YWdlLmJ1ZmZlci5ieXRlcywgaW5wdXRJbWFnZS5idWZmZXIubGVuZ3RoKSk7CisgIGlmIChpbnB1
dEZvcm1hdCkgeworICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPQorICAgICAgICBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGlucHV0Rm9ybWF0LmdldCgpKTsK
KyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJSZXNvbHV0aW9uOiAiIDw8IGRpbWVuc2lvbnMud2lk
dGggPDwgIiB4ICIKKyAgICAgICAgICAgICAgICAgICAgIDw8IGRpbWVuc2lvbnMuaGVpZ2h0Owor
ICAgIC8vIENoZWNrIGlmIHRoZSB2aWRlbyBmb3JtYXQgaGFzIGNoYW5nZWQsIGFuZCByZWluaXRp
YWxpemUgZGVjb2RlciBpZgorICAgIC8vIG5lZWRlZC4KKyAgICBpZiAoIUNNRm9ybWF0RGVzY3Jp
cHRpb25FcXVhbChpbnB1dEZvcm1hdC5nZXQoKSwgX3ZpZGVvRm9ybWF0KSkgeworICAgICAgW3Nl
bGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRGb3JtYXQuZ2V0KCldOworICAgICAgaW50IHJlc2V0RGVj
b21wcmVzc2lvblNlc3Npb25FcnJvciA9IFtzZWxmIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25d
OworICAgICAgaWYgKHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciAhPSBXRUJSVENfVklE
RU9fQ09ERUNfT0spIHsKKyAgICAgICAgcmV0dXJuIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25F
cnJvcjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKCFfdmlkZW9Gb3JtYXQpIHsKKyAgICAv
LyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1dCB3ZSBkb24ndCBoYXZlIGZvcm1hdCBpbmZvcm1hdGlv
biBzbyB3ZSBjYW4ndAorICAgIC8vIGRlY29kZSBpdC4KKyAgICAvLyBUaGlzIGNhbiBoYXBwZW4g
YWZ0ZXIgYmFja2dyb3VuZGluZy4gV2UgbmVlZCB0byB3YWl0IGZvciB0aGUgbmV4dAorICAgIC8v
IHNwcy9wcHMgYmVmb3JlIHdlIGNhbiByZXN1bWUgc28gd2UgcmVxdWVzdCBhIGtleWZyYW1lIGJ5
IHJldHVybmluZyBhbgorICAgIC8vIGVycm9yLgorICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwg
Ik1pc3NpbmcgdmlkZW8gZm9ybWF0LiBGcmFtZSB3aXRoIHNwcy9wcHMgcmVxdWlyZWQuIjsKKyAg
ICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7CisgIGlmICghd2VicnRjOjpIMjY1QW5uZXhCQnVm
ZmVyVG9DTVNhbXBsZUJ1ZmZlcigKKyAgICAgICAgICAodWludDhfdCopaW5wdXRJbWFnZS5idWZm
ZXIuYnl0ZXMsIGlucHV0SW1hZ2UuYnVmZmVyLmxlbmd0aCwKKyAgICAgICAgICBfdmlkZW9Gb3Jt
YXQsICZzYW1wbGVCdWZmZXIpKSB7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJP
UjsKKyAgfQorICBSVENfRENIRUNLKHNhbXBsZUJ1ZmZlcik7CisgIFZURGVjb2RlRnJhbWVGbGFn
cyBkZWNvZGVGbGFncyA9CisgICAgICBrVlREZWNvZGVGcmFtZV9FbmFibGVBc3luY2hyb25vdXNE
ZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1z
PiBmcmFtZURlY29kZVBhcmFtczsKKyAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQoCisgICAgICBu
ZXcgUlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zKF9jYWxsYmFjaywgaW5wdXRJbWFnZS50aW1lU3Rh
bXApKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZy
YW1lKAorICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZs
YWdzLAorICAgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRyKTsKKyNpZiBk
ZWZpbmVkKFdFQlJUQ19JT1MpCisgIC8vIFJlLWluaXRpYWxpemUgdGhlIGRlY29kZXIgaWYgd2Ug
aGF2ZSBhbiBpbnZhbGlkIHNlc3Npb24gd2hpbGUgdGhlIGFwcCBpcworICAvLyBhY3RpdmUgYW5k
IHJldHJ5IHRoZSBkZWNvZGUgcmVxdWVzdC4KKyAgaWYgKHN0YXR1cyA9PSBrVlRJbnZhbGlkU2Vz
c2lvbkVyciAmJgorICAgICAgW3NlbGYgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0gPT0gV0VC
UlRDX1ZJREVPX0NPREVDX09LKSB7CisgICAgZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQoCisgICAg
ICAgIG5ldyBSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCBpbnB1dEltYWdlLnRp
bWVTdGFtcCkpOworICAgIHN0YXR1cyA9IFZURGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFt
ZSgKKyAgICAgICAgX2RlY29tcHJlc3Npb25TZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZs
YWdzLAorICAgICAgICBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworICB9
CisjZW5kaWYKKyAgQ0ZSZWxlYXNlKHNhbXBsZUJ1ZmZlcik7CisgIGlmIChzdGF0dXMgIT0gbm9F
cnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGRlY29kZSBmcmFtZSB3
aXRoIGNvZGU6ICIgPDwgc3RhdHVzOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJS
T1I7CisgIH0KKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZClz
ZXRDYWxsYmFjazooUlRDVmlkZW9EZWNvZGVyQ2FsbGJhY2spY2FsbGJhY2sgeworICBfY2FsbGJh
Y2sgPSBjYWxsYmFjazsKK30KKworLSAoTlNJbnRlZ2VyKXJlbGVhc2VEZWNvZGVyIHsKKyAgLy8g
TmVlZCB0byBpbnZhbGlkYXRlIHRoZSBzZXNzaW9uIHNvIHRoYXQgY2FsbGJhY2tzIG5vIGxvbmdl
ciBvY2N1ciBhbmQgaXQKKyAgLy8gaXMgc2FmZSB0byBudWxsIG91dCB0aGUgY2FsbGJhY2suCisg
IFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgIFtzZWxmIHNldFZpZGVvRm9y
bWF0Om51bGxwdHJdOworICBfY2FsbGJhY2sgPSBudWxscHRyOworICByZXR1cm4gV0VCUlRDX1ZJ
REVPX0NPREVDX09LOworfQorCisjcHJhZ21hIG1hcmsgLSBQcml2YXRlCisKKy0gKGludClyZXNl
dERlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAgW3NlbGYgZGVzdHJveURlY29tcHJlc3Npb25TZXNz
aW9uXTsKKworICAvLyBOZWVkIHRvIHdhaXQgZm9yIHRoZSBmaXJzdCBTUFMgdG8gaW5pdGlhbGl6
ZSBkZWNvZGVyLgorICBpZiAoIV92aWRlb0Zvcm1hdCkgeworICAgIHJldHVybiBXRUJSVENfVklE
RU9fQ09ERUNfT0s7CisgIH0KKworICAvLyBTZXQga2V5cyBmb3IgT3BlbkdMIGFuZCBJT1N1cmZh
Y2UgY29tcGF0aWJpbHR5LCB3aGljaCBtYWtlcyB0aGUgZW5jb2RlcgorICAvLyBjcmVhdGUgcGl4
ZWwgYnVmZmVycyB3aXRoIEdQVSBiYWNrZWQgbWVtb3J5LiBUaGUgaW50ZW50IGhlcmUgaXMgdG8g
cGFzcworICAvLyB0aGUgcGl4ZWwgYnVmZmVycyBkaXJlY3RseSBzbyB3ZSBhdm9pZCBhIHRleHR1
cmUgdXBsb2FkIGxhdGVyIGR1cmluZworICAvLyByZW5kZXJpbmcuIFRoaXMgY3VycmVudGx5IGlz
IG1vb3QgYmVjYXVzZSB3ZSBhcmUgY29udmVydGluZyBiYWNrIHRvIGFuCisgIC8vIEk0MjAgZnJh
bWUgYWZ0ZXIgZGVjb2RlLCBidXQgZXZlbnR1YWxseSB3ZSB3aWxsIGJlIGFibGUgdG8gcGx1bWIK
KyAgLy8gQ1ZQaXhlbEJ1ZmZlcnMgZGlyZWN0bHkgdG8gdGhlIHJlbmRlcmVyLgorICAvLyBUT0RP
KHRrY2hpbik6IE1heWJlIG9ubHkgc2V0IE9wZW5HTC9JT1N1cmZhY2Uga2V5cyBpZiB3ZSBrbm93
IHRoYXQgdGhhdAorICAvLyB3ZSBjYW4gcGFzcyBDVlBpeGVsQnVmZmVycyBhcyBuYXRpdmUgaGFu
ZGxlcyBpbiBkZWNvZGVyIG91dHB1dC4KKyAgc3RhdGljIHNpemVfdCBjb25zdCBhdHRyaWJ1dGVz
U2l6ZSA9IDM7CisgIENGVHlwZVJlZiBrZXlzW2F0dHJpYnV0ZXNTaXplXSA9IHsKKyNpZiBkZWZp
bmVkKFdFQlJUQ19JT1MpCisgICAga0NWUGl4ZWxCdWZmZXJPcGVuR0xFU0NvbXBhdGliaWxpdHlL
ZXksCisjZWxpZiBkZWZpbmVkKFdFQlJUQ19NQUMpCisgICAga0NWUGl4ZWxCdWZmZXJPcGVuR0xD
b21wYXRpYmlsaXR5S2V5LAorI2VuZGlmCisgICAga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9w
ZXJ0aWVzS2V5LAorICAgIGtDVlBpeGVsQnVmZmVyUGl4ZWxGb3JtYXRUeXBlS2V5CisgIH07Cisg
IENGRGljdGlvbmFyeVJlZiBpb1N1cmZhY2VWYWx1ZSA9IENyZWF0ZUNGVHlwZURpY3Rpb25hcnko
bnVsbHB0ciwgbnVsbHB0ciwgMCk7CisgIGludDY0X3QgbnYxMnR5cGUgPSBrQ1ZQaXhlbEZvcm1h
dFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlOworICBDRk51bWJlclJlZiBwaXhlbEZv
cm1hdCA9CisgICAgICBDRk51bWJlckNyZWF0ZShudWxscHRyLCBrQ0ZOdW1iZXJMb25nVHlwZSwg
Jm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZhbHVlc1thdHRyaWJ1dGVzU2l6ZV0gPSB7a0NGQm9v
bGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwaXhlbEZvcm1hdH07CisgIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0KKyAg
ICAgIENyZWF0ZUNGVHlwZURpY3Rpb25hcnkoa2V5cywgdmFsdWVzLCBhdHRyaWJ1dGVzU2l6ZSk7
CisgIGlmIChpb1N1cmZhY2VWYWx1ZSkgeworICAgIENGUmVsZWFzZShpb1N1cmZhY2VWYWx1ZSk7
CisgICAgaW9TdXJmYWNlVmFsdWUgPSBudWxscHRyOworICB9CisgIGlmIChwaXhlbEZvcm1hdCkg
eworICAgIENGUmVsZWFzZShwaXhlbEZvcm1hdCk7CisgICAgcGl4ZWxGb3JtYXQgPSBudWxscHRy
OworICB9CisgIFZURGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrUmVjb3JkIHJlY29yZCA9IHsK
KyAgICAgIGgyNjVEZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2ssCisgICAgICBudWxscHRyLAor
ICB9OworICBPU1N0YXR1cyBzdGF0dXMgPQorICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkNy
ZWF0ZShudWxscHRyLCBfdmlkZW9Gb3JtYXQsIG51bGxwdHIsIGF0dHJpYnV0ZXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZWNvcmQsICZfZGVjb21wcmVzc2lvblNlc3Np
b24pOworICBDRlJlbGVhc2UoYXR0cmlidXRlcyk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsK
KyAgICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb25dOworICAgIHJldHVybiBXRUJS
VENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyAgW3NlbGYgY29uZmlndXJlRGVjb21wcmVzc2lv
blNlc3Npb25dOworCisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKHZv
aWQpY29uZmlndXJlRGVjb21wcmVzc2lvblNlc3Npb24geworICBSVENfRENIRUNLKF9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbik7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICBWVFNlc3Npb25TZXRQ
cm9wZXJ0eShfZGVjb21wcmVzc2lvblNlc3Npb24sIGtWVERlY29tcHJlc3Npb25Qcm9wZXJ0eUtl
eV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUpOworI2VuZGlmCit9CisKKy0gKHZvaWQpZGVzdHJv
eURlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAgaWYgKF9kZWNvbXByZXNzaW9uU2Vzc2lvbikgewor
I2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZv
ckFzeW5jaHJvbm91c0ZyYW1lcyhfZGVjb21wcmVzc2lvblNlc3Npb24pOworI2VuZGlmCisgICAg
VlREZWNvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsK
KyAgICBDRlJlbGVhc2UoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBfZGVjb21wcmVzc2lv
blNlc3Npb24gPSBudWxscHRyOworICB9Cit9CisKKy0gKHZvaWQpc2V0VmlkZW9Gb3JtYXQ6KENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZil2aWRlb0Zvcm1hdCB7CisgIGlmIChfdmlkZW9Gb3Jt
YXQgPT0gdmlkZW9Gb3JtYXQpIHsKKyAgICByZXR1cm47CisgIH0KKyAgaWYgKF92aWRlb0Zvcm1h
dCkgeworICAgIENGUmVsZWFzZShfdmlkZW9Gb3JtYXQpOworICB9CisgIF92aWRlb0Zvcm1hdCA9
IHZpZGVvRm9ybWF0OworICBpZiAoX3ZpZGVvRm9ybWF0KSB7CisgICAgQ0ZSZXRhaW4oX3ZpZGVv
Rm9ybWF0KTsKKyAgfQorfQorCistIChOU1N0cmluZyopaW1wbGVtZW50YXRpb25OYW1lIHsKKyAg
cmV0dXJuIEAiVmlkZW9Ub29sYm94IjsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVv
RW5jb2RlckgyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTZhNzRhZmQ4MjlkODczYTkxODE3ZGJhOTZlYjVj
YjczMDQ2OWM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0Vu
Y29kZXJIMjY1LmgKQEAgLTAsMCArMSwyMyBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUg
V2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNl
IG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQor
ICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2Yg
dGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5
IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxs
IGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFV
VEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9y
dCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorI2lt
cG9ydCAiUlRDVmlkZW9Db2RlY0luZm8uaCIKKyNpbXBvcnQgIlJUQ1ZpZGVvRW5jb2Rlci5oIgor
CitSVENfT0JKQ19FWFBPUlQKK19fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19S
VENWaWRlb0VuY29kZXJIMjY1IikpKQorQGludGVyZmFjZSBSVENWaWRlb0VuY29kZXJIMjY1IDog
TlNPYmplY3QgPFJUQ1ZpZGVvRW5jb2Rlcj4KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29k
ZWNJbmZvOihSVENWaWRlb0NvZGVjSW5mbyAqKWNvZGVjSW5mbzsKKworQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkODliNjNlYTkwNzhmNmJh
NTVjYTQ0MDU5Y2E5NzAwNzQwNGVhZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUubW0KQEAgLTAsMCArMSw1OTkgQEAKKy8qCisgKiAgQ29w
eXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBh
IEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0Ug
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBp
bnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRo
ZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAq
ICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2Ug
dHJlZS4KKyAqCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9FbmNvZGVySDI2NS5oIgorCisjaW1w
b3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisjaW5jbHVkZSA8dmVjdG9yPgorCisj
aW1wb3J0ICJSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCIKKyNpbXBvcnQgImFwaS9wZWVyY29u
bmVjdGlvbi9SVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyK1ByaXZhdGUuaCIKKyNpbXBvcnQgImFw
aS9wZWVyY29ubmVjdGlvbi9SVENWaWRlb0NvZGVjSW5mbytQcml2YXRlLmgiCisjaW1wb3J0ICJi
YXNlL1JUQ0k0MjBCdWZmZXIuaCIKKyNpbXBvcnQgImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2lt
cG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3Zp
ZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgi
CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorI2ltcG9ydCAiaGVscGVycy9VSURldmljZStSVENE
ZXZpY2UuaCIKKyNlbmRpZgorCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2luY2x1ZGUvYml0cmF0
ZV9hZGp1c3Rlci5oIgorI2luY2x1ZGUgImxpYnl1di9jb252ZXJ0X2Zyb20uaCIKKyNpbmNsdWRl
ICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJy
dGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVk
ZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorI2luY2x1ZGUgInNkay9vYmpjL0ZyYW1ld29yay9D
bGFzc2VzL1ZpZGVvVG9vbGJveC9uYWx1X3Jld3JpdGVyLmgiCisjaW5jbHVkZSAic3lzdGVtX3dy
YXBwZXJzL2luY2x1ZGUvY2xvY2suaCIKKworQGludGVyZmFjZSBSVENWaWRlb0VuY29kZXJIMjY1
ICgpCisKKy0gKHZvaWQpZnJhbWVXYXNFbmNvZGVkOihPU1N0YXR1cylzdGF0dXMKKyAgICAgICAg
ICAgICAgICAgIGZsYWdzOihWVEVuY29kZUluZm9GbGFncylpbmZvRmxhZ3MKKyAgICAgICAgICAg
c2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKKyAgICAgICAgICAg
ICAgICAgIHdpZHRoOihpbnQzMl90KXdpZHRoCisgICAgICAgICAgICAgICAgIGhlaWdodDooaW50
MzJfdCloZWlnaHQKKyAgICAgICAgICAgcmVuZGVyVGltZU1zOihpbnQ2NF90KXJlbmRlclRpbWVN
cworICAgICAgICAgICAgICB0aW1lc3RhbXA6KHVpbnQzMl90KXRpbWVzdGFtcAorICAgICAgICAg
ICAgICAgcm90YXRpb246KFJUQ1ZpZGVvUm90YXRpb24pcm90YXRpb247CisKK0BlbmQKKworbmFt
ZXNwYWNlIHsgIC8vIGFub255bW91cyBuYW1lc3BhY2UKKworLy8gVGhlIHJhdGlvIGJldHdlZW4g
a1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9EYXRhUmF0ZUxpbWl0cyBhbmQKKy8vIGtWVENvbXBy
ZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJpdFJhdGUuIFRoZSBkYXRhIHJhdGUgbGltaXQgaXMg
c2V0IGhpZ2hlcgorLy8gdGhhbiB0aGUgYXZlcmFnZSBiaXQgcmF0ZSB0byBhdm9pZCB1bmRlcnNo
b290aW5nIHRoZSB0YXJnZXQuCitjb25zdCBmbG9hdCBrTGltaXRUb0F2ZXJhZ2VCaXRSYXRlRmFj
dG9yID0gMS41ZjsKKy8vIFRoZXNlIHRocmVzaG9sZHMgZGV2aWF0ZSBmcm9tIHRoZSBkZWZhdWx0
IGgyNjUgUVAgdGhyZXNob2xkcywgYXMgdGhleQorLy8gaGF2ZSBiZWVuIGZvdW5kIHRvIHdvcmsg
YmV0dGVyIG9uIGRldmljZXMgdGhhdCBzdXBwb3J0IFZpZGVvVG9vbGJveAorY29uc3QgaW50IGtM
b3doMjY1UXBUaHJlc2hvbGQgPSAyODsKK2NvbnN0IGludCBrSGlnaGgyNjVRcFRocmVzaG9sZCA9
IDM5OworCisvLyBTdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvIHRoZSBlbmNvZGVyIHBlciBmcmFtZSB0
byBlbmNvZGUuIFdlIHJlY2VpdmUgaXQgYWdhaW4KKy8vIGluIHRoZSBlbmNvZGVyIGNhbGxiYWNr
Lgorc3RydWN0IEFQSV9BVkFJTEFCTEUoaW9zKDExLjApKSBSVENGcmFtZUVuY29kZVBhcmFtcyB7
CisgIFJUQ0ZyYW1lRW5jb2RlUGFyYW1zKFJUQ1ZpZGVvRW5jb2RlckgyNjUqIGUsCisgICAgICAg
ICAgICAgICAgICAgICAgIGludDMyX3QgdywKKyAgICAgICAgICAgICAgICAgICAgICAgaW50MzJf
dCBoLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHJ0bXMsCisgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnQzMl90IHRzLAorICAgICAgICAgICAgICAgICAgICAgICBSVENWaWRlb1Jv
dGF0aW9uIHIpCisgICAgICA6IGVuY29kZXIoZSksCisgICAgICAgIHdpZHRoKHcpLAorICAgICAg
ICBoZWlnaHQoaCksCisgICAgICAgIHJlbmRlcl90aW1lX21zKHJ0bXMpLAorICAgICAgICB0aW1l
c3RhbXAodHMpLAorICAgICAgICByb3RhdGlvbihyKSB7fQorCisgIFJUQ1ZpZGVvRW5jb2Rlckgy
NjUqIGVuY29kZXI7CisgIGludDMyX3Qgd2lkdGg7CisgIGludDMyX3QgaGVpZ2h0OworICBpbnQ2
NF90IHJlbmRlcl90aW1lX21zOworICB1aW50MzJfdCB0aW1lc3RhbXA7CisgIFJUQ1ZpZGVvUm90
YXRpb24gcm90YXRpb247Cit9OworCisvLyBXZSByZWNlaXZlIEk0MjBGcmFtZXMgYXMgaW5wdXQs
IGJ1dCB3ZSBuZWVkIHRvIGZlZWQgQ1ZQaXhlbEJ1ZmZlcnMgaW50byB0aGUKKy8vIGVuY29kZXIu
IFRoaXMgcGVyZm9ybXMgdGhlIGNvcHkgYW5kIGZvcm1hdCBjb252ZXJzaW9uLgorLy8gVE9ETyh0
a2NoaW4pOiBTZWUgaWYgZW5jb2RlciB3aWxsIGFjY2VwdCBpNDIwIGZyYW1lcyBhbmQgY29tcGFy
ZSBwZXJmb3JtYW5jZS4KK2Jvb2wgQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKGlkPFJUQ0k0
MjBCdWZmZXI+IGZyYW1lQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Q1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlcikgeworICBSVENfRENIRUNLKHBpeGVsQnVmZmVy
KTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVsQnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVs
QnVmZmVyKSwKKyAgICAgICAgICAgICAgICBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJp
UGxhbmFyRnVsbFJhbmdlKTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0
T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCksCisgICAgICAgICAgICAgICAgZnJhbWVCdWZmZXIuaGVp
Z2h0KTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVsQnVmZmVyR2V0V2lkdGhPZlBsYW5lKHBpeGVs
QnVmZmVyLCAwKSwKKyAgICAgICAgICAgICAgICBmcmFtZUJ1ZmZlci53aWR0aCk7CisKKyAgQ1ZS
ZXR1cm4gY3ZSZXQgPSBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCAw
KTsKKyAgaWYgKGN2UmV0ICE9IGtDVlJldHVyblN1Y2Nlc3MpIHsKKyAgICBSVENfTE9HKExTX0VS
Uk9SKSA8PCAiRmFpbGVkIHRvIGxvY2sgYmFzZSBhZGRyZXNzOiAiIDw8IGN2UmV0OworICAgIHJl
dHVybiBmYWxzZTsKKyAgfQorCisgIHVpbnQ4X3QqIGRzdFkgPSByZWludGVycHJldF9jYXN0PHVp
bnQ4X3QqPigKKyAgICAgIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzc09mUGxhbmUocGl4ZWxC
dWZmZXIsIDApKTsKKyAgaW50IGRzdFN0cmlkZVkgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJS
b3dPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKTsKKyAgdWludDhfdCogZHN0VVYgPSByZWludGVycHJl
dF9jYXN0PHVpbnQ4X3QqPigKKyAgICAgIENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzc09mUGxh
bmUocGl4ZWxCdWZmZXIsIDEpKTsKKyAgaW50IGRzdFN0cmlkZVVWID0gQ1ZQaXhlbEJ1ZmZlckdl
dEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSk7CisgIC8vIENvbnZlcnQgSTQyMCB0
byBOVjEyLgorICBpbnQgcmV0ID0gbGlieXV2OjpJNDIwVG9OVjEyKAorICAgICAgZnJhbWVCdWZm
ZXIuZGF0YVksIGZyYW1lQnVmZmVyLnN0cmlkZVksIGZyYW1lQnVmZmVyLmRhdGFVLAorICAgICAg
ZnJhbWVCdWZmZXIuc3RyaWRlVSwgZnJhbWVCdWZmZXIuZGF0YVYsIGZyYW1lQnVmZmVyLnN0cmlk
ZVYsIGRzdFksCisgICAgICBkc3RTdHJpZGVZLCBkc3RVViwgZHN0U3RyaWRlVVYsIGZyYW1lQnVm
ZmVyLndpZHRoLCBmcmFtZUJ1ZmZlci5oZWlnaHQpOworICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFz
ZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOworICBpZiAocmV0KSB7CisgICAgUlRDX0xPRyhMU19F
UlJPUikgPDwgIkVycm9yIGNvbnZlcnRpbmcgSTQyMCBWaWRlb0ZyYW1lIHRvIE5WMTIgOiIgPDwg
cmV0OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworQ1ZQaXhl
bEJ1ZmZlclJlZiBDcmVhdGVQaXhlbEJ1ZmZlcihDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbF9i
dWZmZXJfcG9vbCkgeworICBpZiAoIXBpeGVsX2J1ZmZlcl9wb29sKSB7CisgICAgUlRDX0xPRyhM
U19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgcGl4ZWwgYnVmZmVyIHBvb2wuIjsKKyAgICByZXR1
cm4gbnVsbHB0cjsKKyAgfQorICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsX2J1ZmZlcjsKKyAgQ1ZS
ZXR1cm4gcmV0ID0gQ1ZQaXhlbEJ1ZmZlclBvb2xDcmVhdGVQaXhlbEJ1ZmZlcihudWxscHRyLCBw
aXhlbF9idWZmZXJfcG9vbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmcGl4ZWxfYnVmZmVyKTsKKyAgaWYgKHJldCAhPSBrQ1ZSZXR1cm5TdWNj
ZXNzKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUgcGl4ZWwg
YnVmZmVyOiAiIDw8IHJldDsKKyAgICAvLyBXZSBwcm9iYWJseSB3YW50IHRvIGRyb3AgZnJhbWVz
IGhlcmUsIHNpbmNlIGZhaWx1cmUgcHJvYmFibHkgbWVhbnMKKyAgICAvLyB0aGF0IHRoZSBwb29s
IGlzIGVtcHR5LgorICAgIHJldHVybiBudWxscHRyOworICB9CisgIHJldHVybiBwaXhlbF9idWZm
ZXI7Cit9CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29s
Ym94IGNhbGxzIHdoZW4gZW5jb2RlIGlzCisvLyBjb21wbGV0ZS4gRnJvbSBpbnNwZWN0aW9uIHRo
aXMgaGFwcGVucyBvbiBpdHMgb3duIHF1ZXVlLgordm9pZCBjb21wcmVzc2lvbk91dHB1dENhbGxi
YWNrKHZvaWQqIGVuY29kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCog
cGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TU3RhdHVzIHN0YXR1cywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWVEVuY29kZUluZm9GbGFncyBpbmZvRmxh
Z3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlQnVmZmVyKQorICAgIEFQSV9BVkFJTEFCTEUoaW9zKDExLjApKSB7CisgIFJUQ19DSEVDSyhw
YXJhbXMpOworICBzdGQ6OnVuaXF1ZV9wdHI8UlRDRnJhbWVFbmNvZGVQYXJhbXM+IGVuY29kZVBh
cmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8UlRDRnJhbWVFbmNvZGVQYXJhbXMqPihwYXJh
bXMpKTsKKyAgUlRDX0NIRUNLKGVuY29kZVBhcmFtcy0+ZW5jb2Rlcik7CisgIFtlbmNvZGVQYXJh
bXMtPmVuY29kZXIgZnJhbWVXYXNFbmNvZGVkOnN0YXR1cworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmbGFnczppbmZvRmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzYW1wbGVCdWZmZXI6c2FtcGxlQnVmZmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdpZHRoOmVuY29kZVBhcmFtcy0+d2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWlnaHQ6ZW5jb2RlUGFyYW1zLT5oZWlnaHQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZW5kZXJUaW1lTXM6ZW5jb2RlUGFyYW1zLT5yZW5kZXJfdGltZV9tcworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDplbmNvZGVQYXJhbXMtPnRpbWVz
dGFtcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3RhdGlvbjplbmNvZGVQYXJh
bXMtPnJvdGF0aW9uXTsKK30KK30gIC8vIG5hbWVzcGFjZQorCitAaW1wbGVtZW50YXRpb24gUlRD
VmlkZW9FbmNvZGVySDI2NSB7CisgIFJUQ1ZpZGVvQ29kZWNJbmZvKiBfY29kZWNJbmZvOworICBz
dGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpCaXRyYXRlQWRqdXN0ZXI+IF9iaXRyYXRlQWRqdXN0ZXI7
CisgIHVpbnQzMl90IF90YXJnZXRCaXRyYXRlQnBzOworICB1aW50MzJfdCBfZW5jb2RlckJpdHJh
dGVCcHM7CisgIENGU3RyaW5nUmVmIF9wcm9maWxlOworICBSVENWaWRlb0VuY29kZXJDYWxsYmFj
ayBfY2FsbGJhY2s7CisgIGludDMyX3QgX3dpZHRoOworICBpbnQzMl90IF9oZWlnaHQ7CisgIFZU
Q29tcHJlc3Npb25TZXNzaW9uUmVmIF9jb21wcmVzc2lvblNlc3Npb247CisgIFJUQ1ZpZGVvQ29k
ZWNNb2RlIF9tb2RlOworICBpbnQgZnJhbWVzTGVmdDsKKworICBzdGQ6OnZlY3Rvcjx1aW50OF90
PiBfbnYxMlNjYWxlQnVmZmVyOworfQorCisvLyAuNSBpcyBzZXQgYXMgYSBtaW5pbnVtIHRvIHBy
ZXZlbnQgb3ZlcmNvbXBlbnNhdGluZyBmb3IgbGFyZ2UgdGVtcG9yYXJ5CisvLyBvdmVyc2hvb3Rz
LiBXZSBkb24ndCB3YW50IHRvIGRlZ3JhZGUgdmlkZW8gcXVhbGl0eSB0b28gYmFkbHkuCisvLyAu
OTUgaXMgc2V0IHRvIHByZXZlbnQgb3NjaWxsYXRpb25zLiBXaGVuIGEgbG93ZXIgYml0cmF0ZSBp
cyBzZXQgb24gdGhlCisvLyBlbmNvZGVyIHRoYW4gcHJldmlvdXNseSBzZXQsIGl0cyBvdXRwdXQg
c2VlbXMgdG8gaGF2ZSBhIGJyaWVmIHBlcmlvZCBvZgorLy8gZHJhc3RpY2FsbHkgcmVkdWNlZCBi
aXRyYXRlLCBzbyB3ZSB3YW50IHRvIGF2b2lkIHRoYXQuIEluIHN0ZWFkeSBzdGF0ZQorLy8gY29u
ZGl0aW9ucywgMC45NSBzZWVtcyB0byBnaXZlIHVzIGJldHRlciBvdmVyYWxsIGJpdHJhdGUgb3Zl
ciBsb25nIHBlcmlvZHMKKy8vIG9mIHRpbWUuCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2Rl
Y0luZm86KFJUQ1ZpZGVvQ29kZWNJbmZvKiljb2RlY0luZm8geworICBpZiAoc2VsZiA9IFtzdXBl
ciBpbml0XSkgeworICAgIF9jb2RlY0luZm8gPSBjb2RlY0luZm87CisgICAgX2JpdHJhdGVBZGp1
c3Rlci5yZXNldChuZXcgd2VicnRjOjpCaXRyYXRlQWRqdXN0ZXIoLjUsIC45NSkpOworICAgIFJU
Q19DSEVDSyhbY29kZWNJbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOkAiSDI2NSJdKTsKKyAgfQor
ICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jIHsKKyAgW3NlbGYgZGVzdHJveUNv
bXByZXNzaW9uU2Vzc2lvbl07Cit9CisKKy0gKE5TSW50ZWdlcilzdGFydEVuY29kZVdpdGhTZXR0
aW5nczooUlRDVmlkZW9FbmNvZGVyU2V0dGluZ3MqKXNldHRpbmdzCisgICAgICAgICAgICAgICAg
ICAgICAgIG51bWJlck9mQ29yZXM6KGludCludW1iZXJPZkNvcmVzIHsKKyAgUlRDX0RDSEVDSyhz
ZXR0aW5ncyk7CisgIFJUQ19EQ0hFQ0soW3NldHRpbmdzLm5hbWUgaXNFcXVhbFRvU3RyaW5nOkAi
SDI2NSJdKTsKKworICBfd2lkdGggPSBzZXR0aW5ncy53aWR0aDsKKyAgX2hlaWdodCA9IHNldHRp
bmdzLmhlaWdodDsKKyAgX21vZGUgPSBzZXR0aW5ncy5tb2RlOworCisgIC8vIFdlIGNhbiBvbmx5
IHNldCBhdmVyYWdlIGJpdHJhdGUgb24gdGhlIEhXIGVuY29kZXIuCisgIF90YXJnZXRCaXRyYXRl
QnBzID0gc2V0dGluZ3Muc3RhcnRCaXRyYXRlOworICBfYml0cmF0ZUFkanVzdGVyLT5TZXRUYXJn
ZXRCaXRyYXRlQnBzKF90YXJnZXRCaXRyYXRlQnBzKTsKKworICByZXR1cm4gW3NlbGYgcmVzZXRD
b21wcmVzc2lvblNlc3Npb25dOworfQorCistIChOU0ludGVnZXIpZW5jb2RlOihSVENWaWRlb0Zy
YW1lKilmcmFtZQorICAgIGNvZGVjU3BlY2lmaWNJbmZvOihpZDxSVENDb2RlY1NwZWNpZmljSW5m
bz4pY29kZWNTcGVjaWZpY0luZm8KKyAgICAgICAgICAgZnJhbWVUeXBlczooTlNBcnJheTxOU051
bWJlcio+KilmcmFtZVR5cGVzIHsKKyAgUlRDX0RDSEVDS19FUShmcmFtZS53aWR0aCwgX3dpZHRo
KTsKKyAgUlRDX0RDSEVDS19FUShmcmFtZS5oZWlnaHQsIF9oZWlnaHQpOworICBpZiAoIV9jYWxs
YmFjayB8fCAhX2NvbXByZXNzaW9uU2Vzc2lvbikgeworICAgIHJldHVybiBXRUJSVENfVklERU9f
Q09ERUNfVU5JTklUSUFMSVpFRDsKKyAgfQorICBCT09MIGlzS2V5ZnJhbWVSZXF1aXJlZCA9IE5P
OworCisgIC8vIEdldCBhIHBpeGVsIGJ1ZmZlciBmcm9tIHRoZSBwb29sIGFuZCBjb3B5IGZyYW1l
IGRhdGEgb3Zlci4KKyAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQb29sID0KKyAg
ICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQb29sKF9jb21wcmVzc2lvblNl
c3Npb24pOworCisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICBpZiAoIXBpeGVsQnVmZmVyUG9v
bCkgeworICAgIC8vIEtpbmQgb2YgYSBoYWNrLiBPbiBiYWNrZ3JvdW5kaW5nLCB0aGUgY29tcHJl
c3Npb24gc2Vzc2lvbiBzZWVtcyB0byBnZXQKKyAgICAvLyBpbnZhbGlkYXRlZCwgd2hpY2ggY2F1
c2VzIHRoaXMgcG9vbCBjYWxsIHRvIGZhaWwgd2hlbiB0aGUgYXBwbGljYXRpb24KKyAgICAvLyBp
cyBmb3JlZ3JvdW5kZWQgYW5kIGZyYW1lcyBhcmUgYmVpbmcgc2VudCBmb3IgZW5jb2RpbmcgYWdh
aW4uCisgICAgLy8gUmVzZXR0aW5nIHRoZSBzZXNzaW9uIHdoZW4gdGhpcyBoYXBwZW5zIGZpeGVz
IHRoZSBpc3N1ZS4KKyAgICAvLyBJbiBhZGRpdGlvbiB3ZSByZXF1ZXN0IGEga2V5ZnJhbWUgc28g
dmlkZW8gY2FuIHJlY292ZXIgcXVpY2tseS4KKyAgICBbc2VsZiByZXNldENvbXByZXNzaW9uU2Vz
c2lvbl07CisgICAgcGl4ZWxCdWZmZXJQb29sID0KKyAgICAgICAgVlRDb21wcmVzc2lvblNlc3Np
b25HZXRQaXhlbEJ1ZmZlclBvb2woX2NvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgaXNLZXlmcmFt
ZVJlcXVpcmVkID0gWUVTOworICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIlJlc2V0dGluZyBjb21w
cmVzc2lvbiBzZXNzaW9uIGR1ZSB0byBpbnZhbGlkIHBvb2wuIjsKKyAgfQorI2VuZGlmCisKKyAg
Q1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7CisgIGlmIChbZnJhbWUuYnVm
ZmVyIGlzS2luZE9mQ2xhc3M6W1JUQ0NWUGl4ZWxCdWZmZXIgY2xhc3NdXSkgeworICAgIC8vIE5h
dGl2ZSBmcmFtZSBidWZmZXIKKyAgICBSVENDVlBpeGVsQnVmZmVyKiBydGNQaXhlbEJ1ZmZlciA9
IChSVENDVlBpeGVsQnVmZmVyKilmcmFtZS5idWZmZXI7CisgICAgaWYgKCFbcnRjUGl4ZWxCdWZm
ZXIgcmVxdWlyZXNDcm9wcGluZ10pIHsKKyAgICAgIC8vIFRoaXMgcGl4ZWwgYnVmZmVyIG1pZ2h0
IGhhdmUgYSBoaWdoZXIgcmVzb2x1dGlvbiB0aGFuIHdoYXQgdGhlCisgICAgICAvLyBjb21wcmVz
c2lvbiBzZXNzaW9uIGlzIGNvbmZpZ3VyZWQgdG8uIFRoZSBjb21wcmVzc2lvbiBzZXNzaW9uIGNh
bgorICAgICAgLy8gaGFuZGxlIHRoYXQgYW5kIHdpbGwgb3V0cHV0IGVuY29kZWQgZnJhbWVzIGlu
IHRoZSBjb25maWd1cmVkCisgICAgICAvLyByZXNvbHV0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhlIGlu
cHV0IHBpeGVsIGJ1ZmZlciByZXNvbHV0aW9uLgorICAgICAgcGl4ZWxCdWZmZXIgPSBydGNQaXhl
bEJ1ZmZlci5waXhlbEJ1ZmZlcjsKKyAgICAgIENWQnVmZmVyUmV0YWluKHBpeGVsQnVmZmVyKTsK
KyAgICB9IGVsc2UgeworICAgICAgLy8gQ3JvcHBpbmcgcmVxdWlyZWQsIHdlIG5lZWQgdG8gY3Jv
cCBhbmQgc2NhbGUgdG8gYSBuZXcgcGl4ZWwgYnVmZmVyLgorICAgICAgcGl4ZWxCdWZmZXIgPSBD
cmVhdGVQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlclBvb2wpOworICAgICAgaWYgKCFwaXhlbEJ1ZmZl
cikgeworICAgICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICAgICAgfQor
ICAgICAgaW50IGRzdFdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsK
KyAgICAgIGludCBkc3RIZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVy
KTsKKyAgICAgIGlmIChbcnRjUGl4ZWxCdWZmZXIgcmVxdWlyZXNTY2FsaW5nVG9XaWR0aDpkc3RX
aWR0aCBoZWlnaHQ6ZHN0SGVpZ2h0XSkgeworICAgICAgICBpbnQgc2l6ZSA9CisgICAgICAgICAg
ICBbcnRjUGl4ZWxCdWZmZXIgYnVmZmVyU2l6ZUZvckNyb3BwaW5nQW5kU2NhbGluZ1RvV2lkdGg6
ZHN0V2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlaWdodDpkc3RIZWlnaHRdOworICAgICAgICBfbnYxMlNjYWxlQnVmZmVy
LnJlc2l6ZShzaXplKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIF9udjEyU2NhbGVCdWZmZXIu
Y2xlYXIoKTsKKyAgICAgIH0KKyAgICAgIF9udjEyU2NhbGVCdWZmZXIuc2hyaW5rX3RvX2ZpdCgp
OworICAgICAgaWYgKCFbcnRjUGl4ZWxCdWZmZXIgY3JvcEFuZFNjYWxlVG86cGl4ZWxCdWZmZXIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhUZW1wQnVmZmVyOl9udjEyU2NhbGVCdWZm
ZXIuZGF0YSgpXSkgeworICAgICAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOwor
ICAgICAgfQorICAgIH0KKyAgfQorCisgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAgICAvLyBXZSBk
aWQgbm90IGhhdmUgYSBuYXRpdmUgZnJhbWUgYnVmZmVyCisgICAgcGl4ZWxCdWZmZXIgPSBDcmVh
dGVQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlclBvb2wpOworICAgIGlmICghcGl4ZWxCdWZmZXIpIHsK
KyAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgICAgfQorICAgIFJUQ19E
Q0hFQ0socGl4ZWxCdWZmZXIpOworICAgIGlmICghQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVy
KFtmcmFtZS5idWZmZXIgdG9JNDIwXSwgcGl4ZWxCdWZmZXIpKSB7CisgICAgICBSVENfTE9HKExT
X0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNvcHkgZnJhbWUgZGF0YS4iOworICAgICAgQ1ZCdWZmZXJS
ZWxlYXNlKHBpeGVsQnVmZmVyKTsKKyAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJS
T1I7CisgICAgfQorICB9CisKKyAgLy8gQ2hlY2sgaWYgd2UgbmVlZCBhIGtleWZyYW1lLgorICBp
ZiAoIWlzS2V5ZnJhbWVSZXF1aXJlZCAmJiBmcmFtZVR5cGVzKSB7CisgICAgZm9yIChOU051bWJl
ciogZnJhbWVUeXBlIGluIGZyYW1lVHlwZXMpIHsKKyAgICAgIGlmICgoUlRDRnJhbWVUeXBlKWZy
YW1lVHlwZS5pbnRWYWx1ZSA9PSBSVENGcmFtZVR5cGVWaWRlb0ZyYW1lS2V5KSB7CisgICAgICAg
IGlzS2V5ZnJhbWVSZXF1aXJlZCA9IFlFUzsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAg
fQorICB9CisKKyAgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCA9CisgICAgICBDTVRpbWVN
YWtlKGZyYW1lLnRpbWVTdGFtcE5zIC8gcnRjOjprTnVtTmFub3NlY3NQZXJNaWxsaXNlYywgMTAw
MCk7CisgIENGRGljdGlvbmFyeVJlZiBmcmFtZVByb3BlcnRpZXMgPSBudWxscHRyOworICBpZiAo
aXNLZXlmcmFtZVJlcXVpcmVkKSB7CisgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHtrVlRFbmNvZGVG
cmFtZU9wdGlvbktleV9Gb3JjZUtleUZyYW1lfTsKKyAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7
a0NGQm9vbGVhblRydWV9OworICAgIGZyYW1lUHJvcGVydGllcyA9IENyZWF0ZUNGVHlwZURpY3Rp
b25hcnkoa2V5cywgdmFsdWVzLCAxKTsKKyAgfQorCisgIHN0ZDo6dW5pcXVlX3B0cjxSVENGcmFt
ZUVuY29kZVBhcmFtcz4gZW5jb2RlUGFyYW1zOworICBlbmNvZGVQYXJhbXMucmVzZXQobmV3IFJU
Q0ZyYW1lRW5jb2RlUGFyYW1zKAorICAgICAgc2VsZiwgX3dpZHRoLCBfaGVpZ2h0LCBmcmFtZS50
aW1lU3RhbXBOcyAvIHJ0Yzo6a051bU5hbm9zZWNzUGVyTWlsbGlzZWMsCisgICAgICBmcmFtZS50
aW1lU3RhbXAsIGZyYW1lLnJvdGF0aW9uKSk7CisKKyAgLy8gVXBkYXRlIHRoZSBiaXRyYXRlIGlm
IG5lZWRlZC4KKyAgW3NlbGYgc2V0Qml0cmF0ZUJwczpfYml0cmF0ZUFkanVzdGVyLT5HZXRBZGp1
c3RlZEJpdHJhdGVCcHMoKV07CisKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlRDb21wcmVzc2lvblNl
c3Npb25FbmNvZGVGcmFtZSgKKyAgICAgIF9jb21wcmVzc2lvblNlc3Npb24sIHBpeGVsQnVmZmVy
LCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGtDTVRpbWVJbnZhbGlkLAorICAgICAgZnJhbWVQcm9w
ZXJ0aWVzLCBlbmNvZGVQYXJhbXMucmVsZWFzZSgpLCBudWxscHRyKTsKKyAgaWYgKGZyYW1lUHJv
cGVydGllcykgeworICAgIENGUmVsZWFzZShmcmFtZVByb3BlcnRpZXMpOworICB9CisgIGlmIChw
aXhlbEJ1ZmZlcikgeworICAgIENWQnVmZmVyUmVsZWFzZShwaXhlbEJ1ZmZlcik7CisgIH0KKyAg
aWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQg
dG8gZW5jb2RlIGZyYW1lIHdpdGggY29kZTogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIFdFQlJU
Q19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09L
OworfQorCistICh2b2lkKXNldENhbGxiYWNrOihSVENWaWRlb0VuY29kZXJDYWxsYmFjayljYWxs
YmFjayB7CisgIF9jYWxsYmFjayA9IGNhbGxiYWNrOworfQorCistIChpbnQpc2V0Qml0cmF0ZToo
dWludDMyX3QpYml0cmF0ZUtiaXQgZnJhbWVyYXRlOih1aW50MzJfdClmcmFtZXJhdGUgeworICBf
dGFyZ2V0Qml0cmF0ZUJwcyA9IDEwMDAgKiBiaXRyYXRlS2JpdDsKKyAgX2JpdHJhdGVBZGp1c3Rl
ci0+U2V0VGFyZ2V0Qml0cmF0ZUJwcyhfdGFyZ2V0Qml0cmF0ZUJwcyk7CisgIFtzZWxmIHNldEJp
dHJhdGVCcHM6X2JpdHJhdGVBZGp1c3Rlci0+R2V0QWRqdXN0ZWRCaXRyYXRlQnBzKCldOworICBy
ZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCisjcHJhZ21hIG1hcmsgLSBQcml2YXRl
CisKKy0gKE5TSW50ZWdlcilyZWxlYXNlRW5jb2RlciB7CisgIC8vIE5lZWQgdG8gZGVzdHJveSBz
byB0aGF0IHRoZSBzZXNzaW9uIGlzIGludmFsaWRhdGVkIGFuZCB3b24ndCB1c2UgdGhlCisgIC8v
IGNhbGxiYWNrIGFueW1vcmUuIERvIG5vdCByZW1vdmUgY2FsbGJhY2sgdW50aWwgdGhlIHNlc3Np
b24gaXMgaW52YWxpZGF0ZWQKKyAgLy8gc2luY2UgYXN5bmMgZW5jb2RlciBjYWxsYmFja3MgY2Fu
IG9jY3VyIHVudGlsIGludmFsaWRhdGlvbi4KKyAgW3NlbGYgZGVzdHJveUNvbXByZXNzaW9uU2Vz
c2lvbl07CisgIF9jYWxsYmFjayA9IG51bGxwdHI7CisgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfT0s7Cit9CisKKy0gKGludClyZXNldENvbXByZXNzaW9uU2Vzc2lvbiB7CisgIFtzZWxmIGRl
c3Ryb3lDb21wcmVzc2lvblNlc3Npb25dOworCisgIC8vIFNldCBzb3VyY2UgaW1hZ2UgYnVmZmVy
IGF0dHJpYnV0ZXMuIFRoZXNlIGF0dHJpYnV0ZXMgd2lsbCBiZSBwcmVzZW50IG9uCisgIC8vIGJ1
ZmZlcnMgcmV0cmlldmVkIGZyb20gdGhlIGVuY29kZXIncyBwaXhlbCBidWZmZXIgcG9vbC4KKyAg
Y29uc3Qgc2l6ZV90IGF0dHJpYnV0ZXNTaXplID0gMzsKKyAgQ0ZUeXBlUmVmIGtleXNbYXR0cmli
dXRlc1NpemVdID0geworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBrQ1ZQaXhlbEJ1ZmZl
ck9wZW5HTEVTQ29tcGF0aWJpbGl0eUtleSwKKyNlbGlmIGRlZmluZWQoV0VCUlRDX01BQykKKyAg
ICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBhdGliaWxpdHlLZXksCisjZW5kaWYKKyAgICBrQ1ZQ
aXhlbEJ1ZmZlcklPU3VyZmFjZVByb3BlcnRpZXNLZXksCisgICAga0NWUGl4ZWxCdWZmZXJQaXhl
bEZvcm1hdFR5cGVLZXkKKyAgfTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIGlvU3VyZmFjZVZhbHVlID0g
Q3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShudWxscHRyLCBudWxscHRyLCAwKTsKKyAgaW50NjRfdCBu
djEydHlwZSA9IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2U7
CisgIENGTnVtYmVyUmVmIHBpeGVsRm9ybWF0ID0KKyAgICAgIENGTnVtYmVyQ3JlYXRlKG51bGxw
dHIsIGtDRk51bWJlckxvbmdUeXBlLCAmbnYxMnR5cGUpOworICBDRlR5cGVSZWYgdmFsdWVzW2F0
dHJpYnV0ZXNTaXplXSA9IHtrQ0ZCb29sZWFuVHJ1ZSwgaW9TdXJmYWNlVmFsdWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVsRm9ybWF0fTsKKyAgQ0ZEaWN0aW9u
YXJ5UmVmIHNvdXJjZUF0dHJpYnV0ZXMgPQorICAgICAgQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShr
ZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXplKTsKKyAgaWYgKGlvU3VyZmFjZVZhbHVlKSB7Cisg
ICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVlKTsKKyAgICBpb1N1cmZhY2VWYWx1ZSA9IG51bGxw
dHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNlKHBpeGVsRm9ybWF0
KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxwdHI7CisgIH0KKyAgQ0ZNdXRhYmxlRGljdGlvbmFy
eVJlZiBlbmNvZGVyX3NwZWNzID0gbnVsbHB0cjsKKyNpZiBkZWZpbmVkKFdFQlJUQ19NQUMpICYm
ICFkZWZpbmVkKFdFQlJUQ19JT1MpCisgIC8vIEN1cnJlbnRseSBodyBhY2NsIGlzIHN1cHBvcnRl
ZCBhYm92ZSAzNjBwIG9uIG1hYywgYmVsb3cgMzYwcAorICAvLyB0aGUgY29tcHJlc3Npb24gc2Vz
c2lvbiB3aWxsIGJlIGNyZWF0ZWQgd2l0aCBodyBhY2NsIGRpc2FibGVkLgorICBlbmNvZGVyX3Nw
ZWNzID0KKyAgICAgIENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUobnVsbHB0ciwgMiwgJmtDRlR5
cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcyk7CisgIENGRGljdGlvbmFyeVNldFZh
bHVlKAorICAgICAgZW5jb2Rlcl9zcGVjcywKKyAgICAgIGtWVFZpZGVvRW5jb2RlclNwZWNpZmlj
YXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwKKyAgICAgIGtDRkJv
b2xlYW5UcnVlKTsKKyNpZiBIQVZFX1ZUQl9SRVFVSVJFRExPV0xBVEVOQ1kKKyAgQ0ZEaWN0aW9u
YXJ5U2V0VmFsdWUoZW5jb2RlclNwZWNzLCBrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX1Jl
cXVpcmVkTG93TGF0ZW5jeSwga0NGQm9vbGVhblRydWUpOworI2VuZGlmCisjZW5kaWYKKyAgT1NT
dGF0dXMgc3RhdHVzID0gVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAgICBudWxscHRy
LCAgLy8gdXNlIGRlZmF1bHQgYWxsb2NhdG9yCisgICAgICBfd2lkdGgsIF9oZWlnaHQsIGtDTVZp
ZGVvQ29kZWNUeXBlX0hFVkMsCisgICAgICBlbmNvZGVyX3NwZWNzLCAgLy8gdXNlIGhhcmR3YXJl
IGFjY2VsZXJhdGVkIGVuY29kZXIgaWYgYXZhaWxhYmxlCisgICAgICBzb3VyY2VBdHRyaWJ1dGVz
LAorICAgICAgbnVsbHB0ciwgIC8vIHVzZSBkZWZhdWx0IGNvbXByZXNzZWQgZGF0YSBhbGxvY2F0
b3IKKyAgICAgIGNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2ssIG51bGxwdHIsICZfY29tcHJlc3Np
b25TZXNzaW9uKTsKKyAgaWYgKHNvdXJjZUF0dHJpYnV0ZXMpIHsKKyAgICBDRlJlbGVhc2Uoc291
cmNlQXR0cmlidXRlcyk7CisgICAgc291cmNlQXR0cmlidXRlcyA9IG51bGxwdHI7CisgIH0KKyAg
aWYgKGVuY29kZXJfc3BlY3MpIHsKKyAgICBDRlJlbGVhc2UoZW5jb2Rlcl9zcGVjcyk7CisgICAg
ZW5jb2Rlcl9zcGVjcyA9IG51bGxwdHI7CisgIH0KKyAgaWYgKHN0YXR1cyAhPSBub0Vycikgewor
ICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIGNvbXByZXNzaW9uIHNl
c3Npb246ICIgPDwgc3RhdHVzOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7
CisgIH0KKyNpZiBkZWZpbmVkKFdFQlJUQ19NQUMpICYmICFkZWZpbmVkKFdFQlJUQ19JT1MpCisg
IENGQm9vbGVhblJlZiBod2FjY2xfZW5hYmxlZCA9IG51bGxwdHI7CisgIHN0YXR1cyA9IFZUU2Vz
c2lvbkNvcHlQcm9wZXJ0eSgKKyAgICAgIF9jb21wcmVzc2lvblNlc3Npb24sCisgICAgICBrVlRD
b21wcmVzc2lvblByb3BlcnR5S2V5X1VzaW5nSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rl
ciwgbnVsbHB0ciwKKyAgICAgICZod2FjY2xfZW5hYmxlZCk7CisgIGlmIChzdGF0dXMgPT0gbm9F
cnIgJiYgKENGQm9vbGVhbkdldFZhbHVlKGh3YWNjbF9lbmFibGVkKSkpIHsKKyAgICBSVENfTE9H
KExTX0lORk8pIDw8ICJDb21wcmVzc2lvbiBzZXNzaW9uIGNyZWF0ZWQgd2l0aCBodyBhY2NsIGVu
YWJsZWQiOworICB9IGVsc2UgeworICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIkNvbXByZXNzaW9u
IHNlc3Npb24gY3JlYXRlZCB3aXRoIGh3IGFjY2wgZGlzYWJsZWQiOworICB9CisjZW5kaWYKKyAg
W3NlbGYgY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uXTsKKyAgcmV0dXJuIFdFQlJUQ19WSURF
T19DT0RFQ19PSzsKK30KKworLSAodm9pZCljb25maWd1cmVDb21wcmVzc2lvblNlc3Npb24gewor
ICBSVENfRENIRUNLKF9jb21wcmVzc2lvblNlc3Npb24pOworICBTZXRWVFNlc3Npb25Qcm9wZXJ0
eShfY29tcHJlc3Npb25TZXNzaW9uLCBudWxscHRyLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X1JlYWxUaW1lLAorICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CisgIC8vIFNldFZUU2Vz
c2lvblByb3BlcnR5KF9jb21wcmVzc2lvblNlc3Npb24sCisgIC8vIGtWVENvbXByZXNzaW9uUHJv
cGVydHlLZXlfUHJvZmlsZUxldmVsLCBfcHJvZmlsZSk7CisgIFNldFZUU2Vzc2lvblByb3BlcnR5
KF9jb21wcmVzc2lvblNlc3Npb24sIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgIGtW
VENvbXByZXNzaW9uUHJvcGVydHlLZXlfQWxsb3dGcmFtZVJlb3JkZXJpbmcsIGZhbHNlKTsKKyAg
W3NlbGYgc2V0RW5jb2RlckJpdHJhdGVCcHM6X3RhcmdldEJpdHJhdGVCcHNdOworCisgIC8vIFNl
dCBhIHJlbGF0aXZlbHkgbGFyZ2UgdmFsdWUgZm9yIGtleWZyYW1lIGVtaXNzaW9uICg3MjAwIGZy
YW1lcyBvciA0IG1pbnV0ZXMpLgorICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25T
ZXNzaW9uLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblBy
b3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWwsIDcyMDApOworICBTZXRWVFNlc3Npb25Qcm9w
ZXJ0eShfY29tcHJlc3Npb25TZXNzaW9uLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAg
ICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgMjQwKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0KKyAgICAg
IFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzKF9jb21wcmVzc2lvblNl
c3Npb24pOworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikg
PDwgIkNvbXByZXNzaW9uIHNlc3Npb24gZmFpbGVkIHRvIHByZXBhcmUgZW5jb2RlIGZyYW1lcy4i
OworICB9Cit9CisKKy0gKHZvaWQpZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIGlmIChf
Y29tcHJlc3Npb25TZXNzaW9uKSB7CisgICAgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRl
KF9jb21wcmVzc2lvblNlc3Npb24pOworICAgIENGUmVsZWFzZShfY29tcHJlc3Npb25TZXNzaW9u
KTsKKyAgICBfY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKKyAgfQorfQorCistIChOU1N0
cmluZyopaW1wbGVtZW50YXRpb25OYW1lIHsKKyAgcmV0dXJuIEAiVmlkZW9Ub29sYm94IjsKK30K
KworLSAodm9pZClzZXRCaXRyYXRlQnBzOih1aW50MzJfdCliaXRyYXRlQnBzIHsKKyAgaWYgKF9l
bmNvZGVyQml0cmF0ZUJwcyAhPSBiaXRyYXRlQnBzKSB7CisgICAgW3NlbGYgc2V0RW5jb2RlckJp
dHJhdGVCcHM6Yml0cmF0ZUJwc107CisgIH0KK30KKworLSAodm9pZClzZXRFbmNvZGVyQml0cmF0
ZUJwczoodWludDMyX3QpYml0cmF0ZUJwcyB7CisgIGlmIChfY29tcHJlc3Npb25TZXNzaW9uKSB7
CisgICAgU2V0VlRTZXNzaW9uUHJvcGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwgbnVsbHB0ciwg
CisgICAgICAgICAgICAgICAgICAgICAgICAga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVy
YWdlQml0UmF0ZSwgYml0cmF0ZUJwcyk7CisKKyAgICAvLyBUT0RPKHRrY2hpbik6IEFkZCBhIGhl
bHBlciBtZXRob2QgdG8gc2V0IGFycmF5IHZhbHVlLgorICAgIGludDY0X3QgZGF0YUxpbWl0Qnl0
ZXNQZXJTZWNvbmRWYWx1ZSA9CisgICAgICAgIHN0YXRpY19jYXN0PGludDY0X3Q+KGJpdHJhdGVC
cHMgKiBrTGltaXRUb0F2ZXJhZ2VCaXRSYXRlRmFjdG9yIC8gOCk7CisgICAgQ0ZOdW1iZXJSZWYg
Ynl0ZXNQZXJTZWNvbmQgPQorICAgICAgICBDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBrQ0ZOdW1iZXJTSW50NjRUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAmZGF0YUxp
bWl0Qnl0ZXNQZXJTZWNvbmRWYWx1ZSk7CisgICAgaW50NjRfdCBvbmVTZWNvbmRWYWx1ZSA9IDE7
CisgICAgQ0ZOdW1iZXJSZWYgb25lU2Vjb25kID0gQ0ZOdW1iZXJDcmVhdGUoCisgICAgICAgIGtD
RkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNJbnQ2NFR5cGUsICZvbmVTZWNvbmRWYWx1ZSk7
CisgICAgY29uc3Qgdm9pZCogbnVtc1syXSA9IHtieXRlc1BlclNlY29uZCwgb25lU2Vjb25kfTsK
KyAgICBDRkFycmF5UmVmIGRhdGFSYXRlTGltaXRzID0KKyAgICAgICAgQ0ZBcnJheUNyZWF0ZShu
dWxscHRyLCBudW1zLCAyLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKTsKKyAgICBPU1N0YXR1cyBz
dGF0dXMgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eSgKKyAgICAgICAgX2NvbXByZXNzaW9uU2Vzc2lv
biwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9EYXRhUmF0ZUxpbWl0cywKKyAgICAgICAgZGF0
YVJhdGVMaW1pdHMpOworICAgIGlmIChieXRlc1BlclNlY29uZCkgeworICAgICAgQ0ZSZWxlYXNl
KGJ5dGVzUGVyU2Vjb25kKTsKKyAgICB9CisgICAgaWYgKG9uZVNlY29uZCkgeworICAgICAgQ0ZS
ZWxlYXNlKG9uZVNlY29uZCk7CisgICAgfQorICAgIGlmIChkYXRhUmF0ZUxpbWl0cykgeworICAg
ICAgQ0ZSZWxlYXNlKGRhdGFSYXRlTGltaXRzKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyAhPSBu
b0VycikgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBzZXQgZGF0YSBy
YXRlIGxpbWl0IjsKKyAgICB9CisKKyAgICBfZW5jb2RlckJpdHJhdGVCcHMgPSBiaXRyYXRlQnBz
OworICB9Cit9CisKKy0gKHZvaWQpZnJhbWVXYXNFbmNvZGVkOihPU1N0YXR1cylzdGF0dXMKKyAg
ICAgICAgICAgICAgICAgIGZsYWdzOihWVEVuY29kZUluZm9GbGFncylpbmZvRmxhZ3MKKyAgICAg
ICAgICAgc2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKKyAgICAg
ICAgICAgICAgICAgIHdpZHRoOihpbnQzMl90KXdpZHRoCisgICAgICAgICAgICAgICAgIGhlaWdo
dDooaW50MzJfdCloZWlnaHQKKyAgICAgICAgICAgcmVuZGVyVGltZU1zOihpbnQ2NF90KXJlbmRl
clRpbWVNcworICAgICAgICAgICAgICB0aW1lc3RhbXA6KHVpbnQzMl90KXRpbWVzdGFtcAorICAg
ICAgICAgICAgICAgcm90YXRpb246KFJUQ1ZpZGVvUm90YXRpb24pcm90YXRpb24geworICBpZiAo
c3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgImgyNjUgZW5jb2Rl
IGZhaWxlZC4iOworICAgIHJldHVybjsKKyAgfQorICBpZiAoaW5mb0ZsYWdzICYga1ZURW5jb2Rl
SW5mb19GcmFtZURyb3BwZWQpIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJoMjY1IGVuY29k
ZXIgZHJvcHBlZCBhIGZyYW1lLiI7CisgICAgcmV0dXJuOworICB9CisKKyAgQk9PTCBpc0tleWZy
YW1lID0gTk87CisgIENGQXJyYXlSZWYgYXR0YWNobWVudHMgPQorICAgICAgQ01TYW1wbGVCdWZm
ZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlciwgMCk7CisgIGlmIChhdHRh
Y2htZW50cyAhPSBudWxscHRyICYmIENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50cykpIHsKKyAg
ICBDRkRpY3Rpb25hcnlSZWYgYXR0YWNobWVudCA9CisgICAgICAgIHN0YXRpY19jYXN0PENGRGlj
dGlvbmFyeVJlZj4oQ0ZBcnJheUdldFZhbHVlQXRJbmRleChhdHRhY2htZW50cywgMCkpOworICAg
IGlzS2V5ZnJhbWUgPQorICAgICAgICAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVu
dCwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Ob3RTeW5jKTsKKyAgfQorCisgIGlmIChpc0tleWZy
YW1lKSB7CisgICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiR2VuZXJhdGVkIGtleWZyYW1lIjsKKyAg
fQorCisgIC8vIENvbnZlcnQgdGhlIHNhbXBsZSBidWZmZXIgaW50byBhIGJ1ZmZlciBzdWl0YWJs
ZSBmb3IgUlRQIHBhY2tldGl6YXRpb24uCisgIC8vIFRPRE8odGtjaGluKTogQWxsb2NhdGUgYnVm
ZmVycyB0aHJvdWdoIGEgcG9vbC4KKyAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QnVmZmVyPiBidWZm
ZXIobmV3IHJ0Yzo6QnVmZmVyKCkpOworICBSVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyKiBoZWFk
ZXI7CisgIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpSVFBGcmFnbWVudGF0aW9uSGVh
ZGVyPiBoZWFkZXJfY3BwOworICAgIGJvb2wgcmVzdWx0ID0gSDI2NUNNU2FtcGxlQnVmZmVyVG9B
bm5leEJCdWZmZXIoc2FtcGxlQnVmZmVyLCBpc0tleWZyYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmdldCgpLCAmaGVhZGVyX2Nw
cCk7CisgICAgaGVhZGVyID0gW1tSVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyIGFsbG9jXQorICAg
ICAgICBpbml0V2l0aE5hdGl2ZUZyYWdtZW50YXRpb25IZWFkZXI6aGVhZGVyX2NwcC5nZXQoKV07
CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQg
dG8gY29udmVydCBzYW1wbGUgYnVmZmVyLiI7CisgICAgICByZXR1cm47CisgICAgfQorICB9CisK
KyAgUlRDRW5jb2RlZEltYWdlKiBmcmFtZSA9IFtbUlRDRW5jb2RlZEltYWdlIGFsbG9jXSBpbml0
XTsKKyAgZnJhbWUuYnVmZmVyID0gW05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5OmJ1ZmZlci0+
ZGF0YSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aDpidWZm
ZXItPnNpemUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlV2hlbkRvbmU6
Tk9dOworICBmcmFtZS5lbmNvZGVkV2lkdGggPSB3aWR0aDsKKyAgZnJhbWUuZW5jb2RlZEhlaWdo
dCA9IGhlaWdodDsKKyAgZnJhbWUuY29tcGxldGVGcmFtZSA9IFlFUzsKKyAgZnJhbWUuZnJhbWVU
eXBlID0KKyAgICAgIGlzS2V5ZnJhbWUgPyBSVENGcmFtZVR5cGVWaWRlb0ZyYW1lS2V5IDogUlRD
RnJhbWVUeXBlVmlkZW9GcmFtZURlbHRhOworICBmcmFtZS5jYXB0dXJlVGltZU1zID0gcmVuZGVy
VGltZU1zOworICBmcmFtZS50aW1lU3RhbXAgPSB0aW1lc3RhbXA7CisgIGZyYW1lLnJvdGF0aW9u
ID0gcm90YXRpb247CisgIGZyYW1lLmNvbnRlbnRUeXBlID0gKF9tb2RlID09IFJUQ1ZpZGVvQ29k
ZWNNb2RlU2NyZWVuc2hhcmluZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgPyBSVENWaWRl
b0NvbnRlbnRUeXBlU2NyZWVuc2hhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSVENW
aWRlb0NvbnRlbnRUeXBlVW5zcGVjaWZpZWQ7CisgIGZyYW1lLmZsYWdzID0gd2VicnRjOjpWaWRl
b1NlbmRUaW1pbmc6OmtJbnZhbGlkOworCisgIC8vIEZJWE1FOiBRUCBpcyBpZ25vcmVkIGJlY2F1
c2UgdGhlcmUgaXMgbm8gSC4yNjUgYml0c3RyZWFtIHBhcnNlci4KKworICBCT09MIHJlcyA9IF9j
YWxsYmFjayhmcmFtZSwgW1tSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUgYWxsb2NdIGluaXRdLCBo
ZWFkZXIpOworICBpZiAoIXJlcykgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJFbmNvZGUg
Y2FsbGJhY2sgZmFpbGVkLiI7CisgICAgcmV0dXJuOworICB9CisgIF9iaXRyYXRlQWRqdXN0ZXIt
PlVwZGF0ZShmcmFtZS5idWZmZXIubGVuZ3RoKTsKK30KKworLSAoUlRDVmlkZW9FbmNvZGVyUXBU
aHJlc2hvbGRzKilzY2FsaW5nU2V0dGluZ3MgeworICByZXR1cm4gW1tSVENWaWRlb0VuY29kZXJR
cFRocmVzaG9sZHMgYWxsb2NdCisgICAgICBpbml0V2l0aFRocmVzaG9sZHNMb3c6a0xvd2gyNjVR
cFRocmVzaG9sZAorICAgICAgICAgICAgICAgICAgICAgICBoaWdoOmtIaWdoaDI2NVFwVGhyZXNo
b2xkXTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3Jp
dGVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmNjCmluZGV4IGRjMjU4ZDYw
NjRhMGZlZWEwMDZlZTI5ODJlMDAzN2IwNTViYmEzNzMuLmRkZjczNDYwNTExNWJjN2I3NGYxMjgy
OWE0Y2RlY2NmMzQ0MGZjZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdy
aXRlci5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuY2MKQEAgLTI0OCw2
ICsyNDgsMjI5IEBAIGJvb2wgSDI2NEFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3Qg
dWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZm5kZWYgRElT
QUJMRV9IMjY1Citib29sIEgyNjVDTVNhbXBsZUJ1ZmZlclRvQW5uZXhCQnVmZmVyKAorICAgIENN
U2FtcGxlQnVmZmVyUmVmIGh2Y2Nfc2FtcGxlX2J1ZmZlciwKKyAgICBib29sIGlzX2tleWZyYW1l
LAorICAgIHJ0Yzo6QnVmZmVyKiBhbm5leGJfYnVmZmVyLAorICAgIHN0ZDo6dW5pcXVlX3B0cjxS
VFBGcmFnbWVudGF0aW9uSGVhZGVyPiAqb3V0X2hlYWRlcikgeworICBSVENfRENIRUNLKGh2Y2Nf
c2FtcGxlX2J1ZmZlcik7CisgIFJUQ19EQ0hFQ0sob3V0X2hlYWRlcik7CisgIG91dF9oZWFkZXIt
PnJlc2V0KG51bGxwdHIpOworCisgIC8vIEdldCBmb3JtYXQgZGVzY3JpcHRpb24gZnJvbSB0aGUg
c2FtcGxlIGJ1ZmZlci4KKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2NyaXB0aW9u
ID0KKyAgICAgIENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oaHZjY19zYW1wbGVf
YnVmZmVyKTsKKyAgaWYgKGRlc2NyaXB0aW9uID09IG51bGxwdHIpIHsKKyAgICBSVENfTE9HKExT
X0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBzYW1wbGUgYnVmZmVyJ3MgZGVzY3JpcHRpb24uIjsK
KyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICAvLyBHZXQgcGFyYW1ldGVyIHNldCBpbmZvcm1h
dGlvbi4KKyAgaW50IG5hbHVfaGVhZGVyX3NpemUgPSAwOworICBzaXplX3QgcGFyYW1fc2V0X2Nv
dW50ID0gMDsKKyAgT1NTdGF0dXMgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0
SEVWQ1BhcmFtZXRlclNldEF0SW5kZXgoCisgICAgICBkZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwg
bnVsbHB0ciwgJnBhcmFtX3NldF9jb3VudCwgJm5hbHVfaGVhZGVyX3NpemUpOworICBpZiAoc3Rh
dHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQg
cGFyYW1ldGVyIHNldC4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBSVENfQ0hFQ0tfRVEo
bmFsdV9oZWFkZXJfc2l6ZSwga0F2Y2NIZWFkZXJCeXRlU2l6ZSk7CisgIFJUQ19EQ0hFQ0tfRVEo
cGFyYW1fc2V0X2NvdW50LCAzKTsKKworICAvLyBUcnVuY2F0ZSBhbnkgcHJldmlvdXMgZGF0YSBp
biB0aGUgYnVmZmVyIHdpdGhvdXQgY2hhbmdpbmcgaXRzIGNhcGFjaXR5LgorICBhbm5leGJfYnVm
ZmVyLT5TZXRTaXplKDApOworCisgIHNpemVfdCBuYWx1X29mZnNldCA9IDA7CisgIHN0ZDo6dmVj
dG9yPHNpemVfdD4gZnJhZ19vZmZzZXRzOworICBzdGQ6OnZlY3RvcjxzaXplX3Q+IGZyYWdfbGVu
Z3RoczsKKworICAvLyBQbGFjZSBhbGwgcGFyYW1ldGVyIHNldHMgYXQgdGhlIGZyb250IG9mIGJ1
ZmZlci4KKyAgaWYgKGlzX2tleWZyYW1lKSB7CisgICAgc2l6ZV90IHBhcmFtX3NldF9zaXplID0g
MDsKKyAgICBjb25zdCB1aW50OF90KiBwYXJhbV9zZXQgPSBudWxscHRyOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgcGFyYW1fc2V0X2NvdW50OyArK2kpIHsKKyAgICAgIHN0YXR1cyA9IENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldEhFVkNQYXJhbWV0ZXJTZXRBdEluZGV4KAorICAgICAg
ICAgIGRlc2NyaXB0aW9uLCBpLCAmcGFyYW1fc2V0LCAmcGFyYW1fc2V0X3NpemUsIG51bGxwdHIs
IG51bGxwdHIpOworICAgICAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgICAgICBSVENfTE9H
KExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBwYXJhbWV0ZXIgc2V0LiI7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIC8vIFVwZGF0ZSBidWZmZXIuCisgICAgICBhbm5l
eGJfYnVmZmVyLT5BcHBlbmREYXRhKGtBbm5leEJIZWFkZXJCeXRlcywgc2l6ZW9mKGtBbm5leEJI
ZWFkZXJCeXRlcykpOworICAgICAgYW5uZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShyZWludGVycHJl
dF9jYXN0PGNvbnN0IGNoYXIqPihwYXJhbV9zZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXJhbV9zZXRfc2l6ZSk7CisgICAgICAvLyBVcGRhdGUgZnJhZ21lbnRhdGlvbi4K
KyAgICAgIGZyYWdfb2Zmc2V0cy5wdXNoX2JhY2sobmFsdV9vZmZzZXQgKyBzaXplb2Yoa0FubmV4
QkhlYWRlckJ5dGVzKSk7CisgICAgICBmcmFnX2xlbmd0aHMucHVzaF9iYWNrKHBhcmFtX3NldF9z
aXplKTsKKyAgICAgIG5hbHVfb2Zmc2V0ICs9IHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpICsg
cGFyYW1fc2V0X3NpemU7CisgICAgfQorICB9CisKKyAgLy8gR2V0IGJsb2NrIGJ1ZmZlciBmcm9t
IHRoZSBzYW1wbGUgYnVmZmVyLgorICBDTUJsb2NrQnVmZmVyUmVmIGJsb2NrX2J1ZmZlciA9Cisg
ICAgICBDTVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoaHZjY19zYW1wbGVfYnVmZmVyKTsKKyAg
aWYgKGJsb2NrX2J1ZmZlciA9PSBudWxscHRyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwg
IkZhaWxlZCB0byBnZXQgc2FtcGxlIGJ1ZmZlcidzIGJsb2NrIGJ1ZmZlci4iOworICAgIHJldHVy
biBmYWxzZTsKKyAgfQorICBDTUJsb2NrQnVmZmVyUmVmIGNvbnRpZ3VvdXNfYnVmZmVyID0gbnVs
bHB0cjsKKyAgLy8gTWFrZSBzdXJlIGJsb2NrIGJ1ZmZlciBpcyBjb250aWd1b3VzLgorICBpZiAo
IUNNQmxvY2tCdWZmZXJJc1JhbmdlQ29udGlndW91cyhibG9ja19idWZmZXIsIDAsIDApKSB7Cisg
ICAgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckNyZWF0ZUNvbnRpZ3VvdXMoCisgICAgICAgIG51bGxw
dHIsIGJsb2NrX2J1ZmZlciwgbnVsbHB0ciwgbnVsbHB0ciwgMCwgMCwgMCwgJmNvbnRpZ3VvdXNf
YnVmZmVyKTsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgICBSVENfTE9HKExTX0VS
Uk9SKSA8PCAiRmFpbGVkIHRvIGZsYXR0ZW4gbm9uLWNvbnRpZ3VvdXMgYmxvY2sgYnVmZmVyOiAi
CisgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdGF0dXM7CisgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorICB9IGVsc2UgeworICAgIGNvbnRpZ3VvdXNfYnVmZmVyID0gYmxvY2tfYnVmZmVy
OworICAgIC8vIFJldGFpbiB0byBtYWtlIGNsZWFudXAgZWFzaWVyLgorICAgIENGUmV0YWluKGNv
bnRpZ3VvdXNfYnVmZmVyKTsKKyAgICBibG9ja19idWZmZXIgPSBudWxscHRyOworICB9CisKKyAg
Ly8gTm93IGNvcHkgdGhlIGFjdHVhbCBkYXRhLgorICBjaGFyKiBkYXRhX3B0ciA9IG51bGxwdHI7
CisgIHNpemVfdCBibG9ja19idWZmZXJfc2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3Ro
KGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckdldERhdGFQb2lu
dGVyKGNvbnRpZ3VvdXNfYnVmZmVyLCAwLCBudWxscHRyLCBudWxscHRyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGFfcHRyKTsKKyAgaWYgKHN0YXR1cyAhPSBu
b0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IGJsb2NrIGJ1
ZmZlciBkYXRhLiI7CisgICAgQ0ZSZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICByZXR1
cm4gZmFsc2U7CisgIH0KKyAgc2l6ZV90IGJ5dGVzX3JlbWFpbmluZyA9IGJsb2NrX2J1ZmZlcl9z
aXplOworICB3aGlsZSAoYnl0ZXNfcmVtYWluaW5nID4gMCkgeworICAgIC8vIFRoZSBzaXplIHR5
cGUgaGVyZSBtdXN0IG1hdGNoIHxuYWx1X2hlYWRlcl9zaXplfCwgd2UgZXhwZWN0IDQgYnl0ZXMu
CisgICAgLy8gUmVhZCB0aGUgbGVuZ3RoIG9mIHRoZSBuZXh0IHBhY2tldCBvZiBkYXRhLiBNdXN0
IGNvbnZlcnQgZnJvbSBiaWcgZW5kaWFuCisgICAgLy8gdG8gaG9zdCBlbmRpYW4uCisgICAgUlRD
X0RDSEVDS19HRShieXRlc19yZW1haW5pbmcsIChzaXplX3QpbmFsdV9oZWFkZXJfc2l6ZSk7Cisg
ICAgdWludDMyX3QqIHVpbnQzMl9kYXRhX3B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3Qq
PihkYXRhX3B0cik7CisgICAgdWludDMyX3QgcGFja2V0X3NpemUgPSBDRlN3YXBJbnQzMkJpZ1Rv
SG9zdCgqdWludDMyX2RhdGFfcHRyKTsKKyAgICAvLyBVcGRhdGUgYnVmZmVyLgorICAgIGFubmV4
Yl9idWZmZXItPkFwcGVuZERhdGEoa0FubmV4QkhlYWRlckJ5dGVzLCBzaXplb2Yoa0FubmV4Qkhl
YWRlckJ5dGVzKSk7CisgICAgYW5uZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShkYXRhX3B0ciArIG5h
bHVfaGVhZGVyX3NpemUsIHBhY2tldF9zaXplKTsKKyAgICAvLyBVcGRhdGUgZnJhZ21lbnRhdGlv
bi4KKyAgICBmcmFnX29mZnNldHMucHVzaF9iYWNrKG5hbHVfb2Zmc2V0ICsgc2l6ZW9mKGtBbm5l
eEJIZWFkZXJCeXRlcykpOworICAgIGZyYWdfbGVuZ3Rocy5wdXNoX2JhY2socGFja2V0X3NpemUp
OworICAgIG5hbHVfb2Zmc2V0ICs9IHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpICsgcGFja2V0
X3NpemU7CisKKyAgICBzaXplX3QgYnl0ZXNfd3JpdHRlbiA9IHBhY2tldF9zaXplICsgc2l6ZW9m
KGtBbm5leEJIZWFkZXJCeXRlcyk7CisgICAgYnl0ZXNfcmVtYWluaW5nIC09IGJ5dGVzX3dyaXR0
ZW47CisgICAgZGF0YV9wdHIgKz0gYnl0ZXNfd3JpdHRlbjsKKyAgfQorICBSVENfRENIRUNLX0VR
KGJ5dGVzX3JlbWFpbmluZywgKHNpemVfdCkwKTsKKworICBzdGQ6OnVuaXF1ZV9wdHI8UlRQRnJh
Z21lbnRhdGlvbkhlYWRlcj4gaGVhZGVyKG5ldyBSVFBGcmFnbWVudGF0aW9uSGVhZGVyKCkpOwor
ICBoZWFkZXItPlZlcmlmeUFuZEFsbG9jYXRlRnJhZ21lbnRhdGlvbkhlYWRlcihmcmFnX29mZnNl
dHMuc2l6ZSgpKTsKKyAgUlRDX0RDSEVDS19FUShmcmFnX2xlbmd0aHMuc2l6ZSgpLCBmcmFnX29m
ZnNldHMuc2l6ZSgpKTsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFnX29mZnNldHMuc2l6
ZSgpOyArK2kpIHsKKyAgICBoZWFkZXItPmZyYWdtZW50YXRpb25PZmZzZXRbaV0gPSBmcmFnX29m
ZnNldHNbaV07CisgICAgaGVhZGVyLT5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldID0gZnJhZ19sZW5n
dGhzW2ldOworICB9CisgICpvdXRfaGVhZGVyID0gc3RkOjptb3ZlKGhlYWRlcik7CisgIENGUmVs
ZWFzZShjb250aWd1b3VzX2J1ZmZlcik7CisgIHJldHVybiB0cnVlOworfQorCitib29sIEgyNjVB
bm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbm5leGJfYnVm
ZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb19mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmKiBvdXRfc2FtcGxlX2J1ZmZlcikgewor
ICBSVENfRENIRUNLKGFubmV4Yl9idWZmZXIpOworICBSVENfRENIRUNLKG91dF9zYW1wbGVfYnVm
ZmVyKTsKKyAgUlRDX0RDSEVDSyh2aWRlb19mb3JtYXQpOworICAqb3V0X3NhbXBsZV9idWZmZXIg
PSBudWxscHRyOworCisgIEFubmV4QkJ1ZmZlclJlYWRlciByZWFkZXIoYW5uZXhiX2J1ZmZlciwg
YW5uZXhiX2J1ZmZlcl9zaXplKTsKKyAgaWYgKHJlYWRlci5TZWVrVG9OZXh0TmFsdU9mVHlwZShI
MjY1OjprVnBzKSkgeworICAgIC8vIEJ1ZmZlciBjb250YWlucyBhbiBTUFMgTkFMVSAtIHNraXAg
aXQgYW5kIHRoZSBmb2xsb3dpbmcgUFBTCisgICAgY29uc3QgdWludDhfdCogZGF0YTsKKyAgICBz
aXplX3QgZGF0YV9sZW47CisgICAgaWYgKCFyZWFkZXIuUmVhZE5hbHUoJmRhdGEsICZkYXRhX2xl
bikpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBWUFMiOwor
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmZGF0
YSwgJmRhdGFfbGVuKSkgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBy
ZWFkIFNQUyI7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmICghcmVhZGVyLlJl
YWROYWx1KCZkYXRhLCAmZGF0YV9sZW4pKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
RmFpbGVkIHRvIHJlYWQgUFBTIjsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0gZWxz
ZSB7CisgICAgLy8gTm8gU1BTIE5BTFUgLSBzdGFydCByZWFkaW5nIGZyb20gdGhlIGZpcnN0IE5B
TFUgaW4gdGhlIGJ1ZmZlcgorICAgIHJlYWRlci5TZWVrVG9TdGFydCgpOworICB9CisKKyAgLy8g
QWxsb2NhdGUgbWVtb3J5IGFzIGEgYmxvY2sgYnVmZmVyLgorICAvLyBUT0RPKHRrY2hpbik6IGZp
Z3VyZSBvdXQgaG93IHRvIHVzZSBhIHBvb2wuCisgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tfYnVm
ZmVyID0gbnVsbHB0cjsKKyAgT1NTdGF0dXMgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdp
dGhNZW1vcnlCbG9jaygKKyAgICAgIG51bGxwdHIsIG51bGxwdHIsIHJlYWRlci5CeXRlc1JlbWFp
bmluZygpLCBudWxscHRyLCBudWxscHRyLCAwLAorICAgICAgcmVhZGVyLkJ5dGVzUmVtYWluaW5n
KCksIGtDTUJsb2NrQnVmZmVyQXNzdXJlTWVtb3J5Tm93RmxhZywKKyAgICAgICZibG9ja19idWZm
ZXIpOworICBpZiAoc3RhdHVzICE9IGtDTUJsb2NrQnVmZmVyTm9FcnIpIHsKKyAgICBSVENfTE9H
KExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBibG9jayBidWZmZXIuIjsKKyAgICByZXR1
cm4gZmFsc2U7CisgIH0KKworICAvLyBNYWtlIHN1cmUgYmxvY2sgYnVmZmVyIGlzIGNvbnRpZ3Vv
dXMuCisgIENNQmxvY2tCdWZmZXJSZWYgY29udGlndW91c19idWZmZXIgPSBudWxscHRyOworICBp
ZiAoIUNNQmxvY2tCdWZmZXJJc1JhbmdlQ29udGlndW91cyhibG9ja19idWZmZXIsIDAsIDApKSB7
CisgICAgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckNyZWF0ZUNvbnRpZ3VvdXMoCisgICAgICAgIG51
bGxwdHIsIGJsb2NrX2J1ZmZlciwgbnVsbHB0ciwgbnVsbHB0ciwgMCwgMCwgMCwgJmNvbnRpZ3Vv
dXNfYnVmZmVyKTsKKyAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgICBSVENfTE9HKExT
X0VSUk9SKSA8PCAiRmFpbGVkIHRvIGZsYXR0ZW4gbm9uLWNvbnRpZ3VvdXMgYmxvY2sgYnVmZmVy
OiAiCisgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdGF0dXM7CisgICAgICBDRlJlbGVhc2Uo
YmxvY2tfYnVmZmVyKTsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0gZWxzZSB7Cisg
ICAgY29udGlndW91c19idWZmZXIgPSBibG9ja19idWZmZXI7CisgICAgYmxvY2tfYnVmZmVyID0g
bnVsbHB0cjsKKyAgfQorCisgIC8vIEdldCBhIHJhdyBwb2ludGVyIGludG8gYWxsb2NhdGVkIG1l
bW9yeS4KKyAgc2l6ZV90IGJsb2NrX2J1ZmZlcl9zaXplID0gMDsKKyAgY2hhciogZGF0YV9wdHIg
PSBudWxscHRyOworICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIoY29udGln
dW91c19idWZmZXIsIDAsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmYmxvY2tfYnVmZmVyX3NpemUsICZkYXRhX3B0cik7CisgIGlmIChzdGF0dXMgIT0g
a0NNQmxvY2tCdWZmZXJOb0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQg
dG8gZ2V0IGJsb2NrIGJ1ZmZlciBkYXRhIHBvaW50ZXIuIjsKKyAgICBDRlJlbGVhc2UoY29udGln
dW91c19idWZmZXIpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBSVENfRENIRUNLKGJsb2Nr
X2J1ZmZlcl9zaXplID09IHJlYWRlci5CeXRlc1JlbWFpbmluZygpKTsKKworICAvLyBXcml0ZSBB
dmNjIE5BTFVzIGludG8gYmxvY2sgYnVmZmVyIG1lbW9yeS4KKyAgQXZjY0J1ZmZlcldyaXRlciB3
cml0ZXIocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oZGF0YV9wdHIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBibG9ja19idWZmZXJfc2l6ZSk7CisgIHdoaWxlIChyZWFkZXIuQnl0ZXNS
ZW1haW5pbmcoKSA+IDApIHsKKyAgICBjb25zdCB1aW50OF90KiBuYWx1X2RhdGFfcHRyID0gbnVs
bHB0cjsKKyAgICBzaXplX3QgbmFsdV9kYXRhX3NpemUgPSAwOworICAgIGlmIChyZWFkZXIuUmVh
ZE5hbHUoJm5hbHVfZGF0YV9wdHIsICZuYWx1X2RhdGFfc2l6ZSkpIHsKKyAgICAgIHdyaXRlci5X
cml0ZU5hbHUobmFsdV9kYXRhX3B0ciwgbmFsdV9kYXRhX3NpemUpOworICAgIH0KKyAgfQorCisg
IC8vIENyZWF0ZSBzYW1wbGUgYnVmZmVyLgorICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0
ZShudWxscHRyLCBjb250aWd1b3VzX2J1ZmZlciwgdHJ1ZSwgbnVsbHB0ciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbnVsbHB0ciwgdmlkZW9fZm9ybWF0LCAxLCAwLCBudWxscHRy
LCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyLCBvdXRfc2FtcGxl
X2J1ZmZlcik7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9S
KSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBzYW1wbGUgYnVmZmVyLiI7CisgICAgQ0ZSZWxlYXNlKGNv
bnRpZ3VvdXNfYnVmZmVyKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQ0ZSZWxlYXNlKGNv
bnRpZ3VvdXNfYnVmZmVyKTsKKyAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwogQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uUmVmIENyZWF0ZVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCiAgICAgY29u
c3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICBzaXplX3QgYW5uZXhiX2J1ZmZlcl9zaXpl
KSB7CkBAIC0yNzgsNiArNTAxLDQzIEBAIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBDcmVh
dGVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKAogICByZXR1cm4gZGVzY3JpcHRpb247CiB9CiAKKyNp
Zm5kZWYgRElTQUJMRV9IMjY1CitDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgQ3JlYXRlSDI2
NVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCisgICAgY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZl
ciwKKyAgICBzaXplX3QgYW5uZXhiX2J1ZmZlcl9zaXplKSB7CisgIGNvbnN0IHVpbnQ4X3QqIHBh
cmFtX3NldF9wdHJzWzNdID0ge307CisgIHNpemVfdCBwYXJhbV9zZXRfc2l6ZXNbM10gPSB7fTsK
KyAgQW5uZXhCQnVmZmVyUmVhZGVyIHJlYWRlcihhbm5leGJfYnVmZmVyLCBhbm5leGJfYnVmZmVy
X3NpemUpOworICAvLyBTa2lwIGV2ZXJ5dGluZyBiZWZvcmUgdGhlIFZQUywgdGhlbiByZWFkIHRo
ZSBWUFMsIFNQUyBhbmQgUFBTCisgIGlmICghcmVhZGVyLlNlZWtUb05leHROYWx1T2ZUeXBlKEgy
NjU6OmtWcHMpKSB7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgaWYgKCFyZWFkZXIuUmVh
ZE5hbHUoJnBhcmFtX3NldF9wdHJzWzBdLCAmcGFyYW1fc2V0X3NpemVzWzBdKSkgeworICAgIFJU
Q19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBWUFMiOworICAgIHJldHVybiBudWxs
cHRyOworICB9CisgIGlmICghcmVhZGVyLlJlYWROYWx1KCZwYXJhbV9zZXRfcHRyc1sxXSwgJnBh
cmFtX3NldF9zaXplc1sxXSkpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRv
IHJlYWQgU1BTIjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICBpZiAoIXJlYWRlci5SZWFk
TmFsdSgmcGFyYW1fc2V0X3B0cnNbMl0sICZwYXJhbV9zZXRfc2l6ZXNbMl0pKSB7CisgICAgUlRD
X0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byByZWFkIFBQUyI7CisgICAgcmV0dXJuIG51bGxw
dHI7CisgIH0KKworICAvLyBQYXJzZSB0aGUgU1BTIGFuZCBQUFMgaW50byBhIENNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbi4KKyAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2NyaXB0aW9u
ID0gbnVsbHB0cjsKKyAgT1NTdGF0dXMgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
Q3JlYXRlRnJvbUhFVkNQYXJhbWV0ZXJTZXRzKAorICAgICAga0NGQWxsb2NhdG9yRGVmYXVsdCwg
MywgcGFyYW1fc2V0X3B0cnMsIHBhcmFtX3NldF9zaXplcywgNCwgbnVsbHB0ciwKKyAgICAgICZk
ZXNjcmlwdGlvbik7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VS
Uk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSB2aWRlbyBmb3JtYXQgZGVzY3JpcHRpb24uIjsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICByZXR1cm4gZGVzY3JpcHRpb247Cit9CisjZW5kaWYK
KwogQW5uZXhCQnVmZmVyUmVhZGVyOjpBbm5leEJCdWZmZXJSZWFkZXIoY29uc3QgdWludDhfdCog
YW5uZXhiX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVfdCBsZW5ndGgpCiAgICAgOiBzdGFydF8oYW5uZXhiX2J1ZmZlciksIGxlbmd0aF8obGVuZ3Ro
KSB7CkBAIC0zMjQsNiArNTg0LDE5IEBAIGJvb2wgQW5uZXhCQnVmZmVyUmVhZGVyOjpTZWVrVG9O
ZXh0TmFsdU9mVHlwZShOYWx1VHlwZSB0eXBlKSB7CiAgIH0KICAgcmV0dXJuIGZhbHNlOwogfQor
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorYm9vbCBBbm5leEJCdWZmZXJSZWFkZXI6OlNlZWtUb05l
eHROYWx1T2ZUeXBlKEgyNjU6Ok5hbHVUeXBlIHR5cGUpIHsKKyAgZm9yICg7IG9mZnNldF8gIT0g
b2Zmc2V0c18uZW5kKCk7ICsrb2Zmc2V0XykgeworICAgIGlmIChvZmZzZXRfLT5wYXlsb2FkX3Np
emUgPCAxKQorICAgICAgY29udGludWU7CisgICAgaWYgKEgyNjU6OlBhcnNlTmFsdVR5cGUoKihz
dGFydF8gKyBvZmZzZXRfLT5wYXlsb2FkX3N0YXJ0X29mZnNldCkpID09IHR5cGUpCisgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgfQorICByZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogQXZjY0J1ZmZl
cldyaXRlcjo6QXZjY0J1ZmZlcldyaXRlcih1aW50OF90KiBjb25zdCBhdmNjX2J1ZmZlciwgc2l6
ZV90IGxlbmd0aCkKICAgICA6IHN0YXJ0XyhhdmNjX2J1ZmZlciksIG9mZnNldF8oMCksIGxlbmd0
aF8obGVuZ3RoKSB7CiAgIFJUQ19EQ0hFQ0soYXZjY19idWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3
cml0ZXIuaAppbmRleCBhMGMxYWE5MGFmNTc1OWRlMzliNWQwNmMyMjFkMjg0Mjk0Mzg5ODc2Li40
ZGExY2M1N2M3ZDEwYThiZjM2YTI4OGQ3MzFjM2M4NjEwZWQ1N2MzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVf
cmV3cml0ZXIuaApAQCAtMTgsNiArMTgsOSBAQAogI2luY2x1ZGUgPHZlY3Rvcj4KIAogI2luY2x1
ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2
NQorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisjZW5kaWYKICNp
bmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgogI2luY2x1ZGUg
InJ0Y19iYXNlL2J1ZmZlci5oIgogCkBAIC00Nyw2ICs1MCwzMSBAQCBib29sIEgyNjRBbm5leEJC
dWZmZXJUb0NNU2FtcGxlQnVmZmVyKGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmKiBvdXRf
c2FtcGxlX2J1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01N
ZW1vcnlQb29sUmVmIG1lbW9yeV9wb29sKTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKy8vIENv
bnZlcnRzIGEgc2FtcGxlIGJ1ZmZlciBlbWl0dGVkIGZyb20gdGhlIFZpZGVvVG9vbGJveCBlbmNv
ZGVyIGludG8gYSBidWZmZXIKKy8vIHN1aXRhYmxlIGZvciBSVFAuIFRoZSBzYW1wbGUgYnVmZmVy
IGlzIGluIGh2Y2MgZm9ybWF0IHdoZXJlYXMgdGhlIHJ0cCBidWZmZXIKKy8vIG5lZWRzIHRvIGJl
IGluIEFubmV4IEIgZm9ybWF0LiBEYXRhIGlzIHdyaXR0ZW4gZGlyZWN0bHkgdG8gfGFubmV4Yl9i
dWZmZXJ8CisvLyBhbmQgYSBuZXcgUlRQRnJhZ21lbnRhdGlvbkhlYWRlciBpcyByZXR1cm5lZCBp
biB8b3V0X2hlYWRlcnwuCitib29sIEgyNjVDTVNhbXBsZUJ1ZmZlclRvQW5uZXhCQnVmZmVyKAor
ICAgIENNU2FtcGxlQnVmZmVyUmVmIGh2Y2Nfc2FtcGxlX2J1ZmZlciwKKyAgICBib29sIGlzX2tl
eWZyYW1lLAorICAgIHJ0Yzo6QnVmZmVyKiBhbm5leGJfYnVmZmVyLAorICAgIHN0ZDo6dW5pcXVl
X3B0cjxSVFBGcmFnbWVudGF0aW9uSGVhZGVyPiAqb3V0X2hlYWRlcikKKyAgICBfX09TWF9BVkFJ
TEFCTEVfU1RBUlRJTkcoX19NQUNfMTBfMTIsIF9fSVBIT05FXzExXzApOworCisgLy8gQ29udmVy
dHMgYSBidWZmZXIgcmVjZWl2ZWQgZnJvbSBSVFAgaW50byBhIHNhbXBsZSBidWZmZXIgc3VpdGFi
bGUgZm9yIHRoZQorLy8gVmlkZW9Ub29sYm94IGRlY29kZXIuIFRoZSBSVFAgYnVmZmVyIGlzIGlu
IGFubmV4IGIgZm9ybWF0IHdoZXJlYXMgdGhlIHNhbXBsZQorLy8gYnVmZmVyIGlzIGluIGh2Y2Mg
Zm9ybWF0LgorLy8gSWYgfGlzX2tleWZyYW1lfCBpcyB0cnVlIHRoZW4gfHZpZGVvX2Zvcm1hdHwg
aXMgaWdub3JlZCBzaW5jZSB0aGUgZm9ybWF0IHdpbGwKKy8vIGJlIHJlYWQgZnJvbSB0aGUgYnVm
ZmVyLiBPdGhlcndpc2UgfHZpZGVvX2Zvcm1hdHwgbXVzdCBiZSBwcm92aWRlZC4KKy8vIENhbGxl
ciBpcyByZXNwb25zaWJsZSBmb3IgcmVsZWFzaW5nIHRoZSBjcmVhdGVkIHNhbXBsZSBidWZmZXIu
Citib29sIEgyNjVBbm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKGNvbnN0IHVpbnQ4X3QqIGFu
bmV4Yl9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBhbm5leGJfYnVmZmVyX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2aWRlb19mb3JtYXQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmKiBvdXRfc2FtcGxl
X2J1ZmZlcikKKyAgICBfX09TWF9BVkFJTEFCTEVfU1RBUlRJTkcoX19NQUNfMTBfMTIsIF9fSVBI
T05FXzExXzApOworI2VuZGlmCisKIC8vIFJldHVybnMgYSB2aWRlbyBmb3JtYXQgZGVzY3JpcHRp
b24gY3JlYXRlZCBmcm9tIHRoZSBzcHMvcHBzIGluZm9ybWF0aW9uIGluCiAvLyB0aGUgQW5uZXgg
QiBidWZmZXIuIElmIHRoZXJlIGlzIG5vIHN1Y2ggaW5mb3JtYXRpb24sIG51bGxwdHIgaXMgcmV0
dXJuZWQuCiAvLyBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciByZWxlYXNpbmcgdGhlIGRl
c2NyaXB0aW9uLgpAQCAtNTQsNiArODIsMTMgQEAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IENyZWF0ZVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCiAgICAgY29uc3QgdWludDhfdCogYW5uZXhi
X2J1ZmZlciwKICAgICBzaXplX3QgYW5uZXhiX2J1ZmZlcl9zaXplKTsKIAorI2lmbmRlZiBESVNB
QkxFX0gyNjUKK0NNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBDcmVhdGVIMjY1VmlkZW9Gb3Jt
YXREZXNjcmlwdGlvbigKKyAgICBjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAorICAgIHNp
emVfdCBhbm5leGJfYnVmZmVyX3NpemUpCisgICAgX19PU1hfQVZBSUxBQkxFX1NUQVJUSU5HKF9f
TUFDXzEwXzEyLCBfX0lQSE9ORV8xMV8wKTsKKyNlbmRpZgorCiAvLyBIZWxwZXIgY2xhc3MgZm9y
IHJlYWRpbmcgTkFMVXMgZnJvbSBhbiBSVFAgQW5uZXggQiBidWZmZXIuCiBjbGFzcyBBbm5leEJC
dWZmZXJSZWFkZXIgZmluYWwgewogIHB1YmxpYzoKQEAgLTc4LDYgKzExMyw5IEBAIGNsYXNzIEFu
bmV4QkJ1ZmZlclJlYWRlciBmaW5hbCB7CiAgIC8vIFJldHVybiB0cnVlIGlmIGEgTkFMVSBvZiB0
aGUgZGVzaXJlZCB0eXBlIGlzIGZvdW5kLCBmYWxzZSBpZiB3ZQogICAvLyByZWFjaGVkIHRoZSBl
bmQgaW5zdGVhZAogICBib29sIFNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjQ6Ok5hbHVUeXBlIHR5
cGUpOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgYm9vbCBTZWVrVG9OZXh0TmFsdU9mVHlwZShI
MjY1OjpOYWx1VHlwZSB0eXBlKTsKKyNlbmRpZgogCiAgcHJpdmF0ZToKICAgLy8gUmV0dXJucyB0
aGUgdGhlIG5leHQgb2Zmc2V0IHRoYXQgY29udGFpbnMgTkFMVSBkYXRhLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZl
L3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNv
ZGVyX2ZhY3RvcnkubW0KaW5kZXggNWFjYTAyZDVhYjBjMDQ3NWQzNzM4YjQ3NmVjZTlkMTQwMzkx
Zjc3MC4uMmNhNmQwZWE2OThiYzRmODkxOTZhMjFiNDI5ZDNmNzc4YmUyNWJkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlk
ZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCkBAIC05Nyw3ICs5NywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8
VmlkZW9EZWNvZGVyPiBPYmpDVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVy
KAogICAgIGlmIChbY29kZWNOYW1lIGlzRXF1YWxUb1N0cmluZzpjb2RlY0luZm8ubmFtZV0pIHsK
ICAgICAgIGlkPFJUQ1ZpZGVvRGVjb2Rlcj4gZGVjb2RlciA9IFtkZWNvZGVyX2ZhY3RvcnlfIGNy
ZWF0ZURlY29kZXI6Y29kZWNJbmZvXTsKIAotICAgICAgaWYgKFtkZWNvZGVyIGlzS2luZE9mQ2xh
c3M6W1JUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIgY2xhc3NdXSkgeworICAgICAgLy8gQmVj
YXVzZSBvZiBzeW1ib2wgY29uZmxpY3QsIGlzS2luZE9mQ2xhc3MgZG9lc24ndCB3b3JrIGFzIGV4
cGVjdGVkLgorICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTg3ODIuCisgICAgICAvLyBpZiAoW2RlY29kZXIgaXNLaW5kT2ZDbGFzczpbUlRDV3Jh
cHBlZE5hdGl2ZVZpZGVvRGVjb2RlciBjbGFzc11dKSB7CisgICAgICBpZiAoW2NvZGVjTmFtZSBp
c0VxdWFsOkAiVlA4Il0gfHwgW2NvZGVjTmFtZSBpc0VxdWFsOkAiVlA5Il0pIHsKICAgICAgICAg
cmV0dXJuIFsoUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIgcmVsZWFzZVdy
YXBwZWREZWNvZGVyXTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8T2JqQ1ZpZGVvRGVjb2Rlcj4obmV3IE9iakNWaWRlb0RlY29kZXIoZGVjb2RlcikpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2Jq
Y192aWRlb19lbmNvZGVyX2ZhY3RvcnkubW0KaW5kZXggYTc1NTMwN2M2YjdjZjI1NDg3ZjYyOWNi
MDI0NjlkN2I5NGI0NGE3Ni4uMzM0Njk4MTNhZjM0NGQyOWI0YWZkNjI5YzgwYTIyZDQzZTdlZGQz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbQorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUv
c3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lm1tCkBAIC0xNSw2ICsxNSw5IEBACiAjaW1w
b3J0ICJiYXNlL1JUQ1ZpZGVvRW5jb2Rlci5oIgogI2ltcG9ydCAiYmFzZS9SVENWaWRlb0VuY29k
ZXJGYWN0b3J5LmgiCiAjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3Bl
Y2lmaWNJbmZvSDI2NCtQcml2YXRlLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2ltcG9ydCAi
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5o
IgorI2VuZGlmCiAjaW1wb3J0ICJzZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDRW5jb2Rl
ZEltYWdlK1ByaXZhdGUuaCIKICNpbXBvcnQgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9S
VENSdHBGcmFnbWVudGF0aW9uSGVhZGVyK1ByaXZhdGUuaCIKICNpbXBvcnQgInNkay9vYmpjL2Fw
aS9wZWVyY29ubmVjdGlvbi9SVENWaWRlb0NvZGVjSW5mbytQcml2YXRlLmgiCkBAIC02NSw4ICs2
OCwxNiBAQCBjbGFzcyBPYmpDVmlkZW9FbmNvZGVyIDogcHVibGljIFZpZGVvRW5jb2RlciB7CiAK
ICAgICAgIC8vIEhhbmRsZSB0eXBlcyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgaW50byBvbmUgb2Yg
Q29kZWNTcGVjaWZpY0luZm8ncyBoYXJkIGNvZGVkIGNhc2VzLgogICAgICAgQ29kZWNTcGVjaWZp
Y0luZm8gY29kZWNTcGVjaWZpY0luZm87Ci0gICAgICBpZiAoW2luZm8gaXNLaW5kT2ZDbGFzczpb
UlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0IGNsYXNzXV0pIHsKKyAgICAgIC8vIEJlY2F1c2Ugb2Yg
c3ltYm9sIGNvbmZsaWN0LCBpc0tpbmRPZkNsYXNzIGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZC4K
KyAgICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4
NzgyLgorICAgICAgaWYgKFtOU1N0cmluZ0Zyb21DbGFzcyhbaW5mbyBjbGFzc10pIGlzRXF1YWw6
QCJXS19SVENDb2RlY1NwZWNpZmljSW5mb0gyNjQiXSkgeworICAgICAgICAvLyBpZiAoW2luZm8g
aXNLaW5kT2ZDbGFzczpbUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0IGNsYXNzXV0pIHsKICAgICAg
ICAgY29kZWNTcGVjaWZpY0luZm8gPSBbKFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCAqKWluZm8g
bmF0aXZlQ29kZWNTcGVjaWZpY0luZm9dOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgIH0g
ZWxzZSBpZiAoW05TU3RyaW5nRnJvbUNsYXNzKFtpbmZvIGNsYXNzXSkgaXNFcXVhbDpAIldLX1JU
Q0NvZGVjU3BlY2lmaWNJbmZvSDI2NSJdKSB7CisgICAgICAgIC8vIGlmIChbaW5mbyBpc0tpbmRP
ZkNsYXNzOltSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUgY2xhc3NdXSkgeworICAgICAgICBjb2Rl
Y1NwZWNpZmljSW5mbyA9IFsoUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1ICopaW5mbyBuYXRpdmVD
b2RlY1NwZWNpZmljSW5mb107CisjZW5kaWYKICAgICAgIH0KIAogICAgICAgc3RkOjp1bmlxdWVf
cHRyPFJUUEZyYWdtZW50YXRpb25IZWFkZXI+IGZyYWdtZW50YXRpb25IZWFkZXIgPQpAQCAtMTY3
LDcgKzE3OCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9FbmNvZGVyPiBPYmpDVmlkZW9FbmNv
ZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9FbmNvZGVyKAogICAgIGNvbnN0IFNkcFZpZGVvRm9ybWF0
ICZmb3JtYXQpIHsKICAgUlRDVmlkZW9Db2RlY0luZm8gKmluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJ
bmZvIGFsbG9jXSBpbml0V2l0aE5hdGl2ZVNkcFZpZGVvRm9ybWF0OmZvcm1hdF07CiAgIGlkPFJU
Q1ZpZGVvRW5jb2Rlcj4gZW5jb2RlciA9IFtlbmNvZGVyX2ZhY3RvcnlfIGNyZWF0ZUVuY29kZXI6
aW5mb107Ci0gIGlmIChbZW5jb2RlciBpc0tpbmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlk
ZW9FbmNvZGVyIGNsYXNzXV0pIHsKKyAgLy8gQmVjYXVzZSBvZiBzeW1ib2wgY29uZmxpY3QsIGlz
S2luZE9mQ2xhc3MgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLgorICAvLyBTZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KKyAgLy8gaWYgKFtlbmNvZGVy
IGlzS2luZE9mQ2xhc3M6W1JUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIgY2xhc3NdXSkgewor
ICBpZiAoW2luZm8ubmFtZSBpc0VxdWFsOkAiVlA4Il0gfHwgW2luZm8ubmFtZSBpc0VxdWFsOkAi
VlA5Il0pIHsKICAgICByZXR1cm4gWyhSVENXcmFwcGVkTmF0aXZlVmlkZW9FbmNvZGVyICopZW5j
b2RlciByZWxlYXNlV3JhcHBlZEVuY29kZXJdOwogICB9IGVsc2UgewogICAgIHJldHVybiBzdGQ6
OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVvRW5jb2Rlcj4obmV3IE9iakNWaWRlb0VuY29kZXIoZW5jb2Rl
cikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIu
Y2MKaW5kZXggODVmYjg4NjJmMjVmMWUyMWY3NWJhMjE3OGNmZGNmNWQwNWYwN2E1My4uMDU4ZGYw
YWU5NjZlNWQxMWVmYTI0ZTAzMDY0OWM1NjI5MTlhMmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9y
ZWNlaXZlci5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjCkBAIC01ODcsNyArNTg3LDI0IEBA
IHZvaWQgUnRwVmlkZW9TdHJlYW1SZWNlaXZlcjo6T25SZWNlaXZlZFBheWxvYWREYXRhKAogICAg
ICAgICBwYWNrZXQtPnZpZGVvX3BheWxvYWQgPSBzdGQ6Om1vdmUoZml4ZWQuYml0c3RyZWFtKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQotCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB9IGVsc2Ug
aWYgKHBhY2tldC0+Y29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICB2aWRlb19jb2Rp
bmc6OkgyNjVWcHNTcHNQcHNUcmFja2VyOjpGaXhlZEJpdHN0cmVhbSBmaXhlZCA9CisgICAgICAg
IGgyNjVfdHJhY2tlcl8uQ29weUFuZEZpeEJpdHN0cmVhbSgKKyAgICAgICAgICAgIHJ0Yzo6TWFr
ZUFycmF5Vmlldyhjb2RlY19wYXlsb2FkLmNkYXRhKCksIGNvZGVjX3BheWxvYWQuc2l6ZSgpKSwK
KyAgICAgICAgICAgICZwYWNrZXQtPnZpZGVvX2hlYWRlcik7CisgICAgc3dpdGNoIChmaXhlZC5h
Y3Rpb24pIHsKKyAgICAgIGNhc2UgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlcjo6
a1JlcXVlc3RLZXlmcmFtZToKKyAgICAgICAgcnRjcF9mZWVkYmFja19idWZmZXJfLlJlcXVlc3RL
ZXlGcmFtZSgpOworICAgICAgICBydGNwX2ZlZWRiYWNrX2J1ZmZlcl8uU2VuZEJ1ZmZlcmVkUnRj
cEZlZWRiYWNrKCk7CisgICAgICAgIEFCU0xfRkFMTFRIUk9VR0hfSU5URU5ERUQ7CisgICAgICBj
YXNlIHZpZGVvX2NvZGluZzo6SDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OmtEcm9wOgorICAgICAgICBy
ZXR1cm47CisgICAgICBjYXNlIHZpZGVvX2NvZGluZzo6SDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OmtJ
bnNlcnQ6CisgICAgICAgIHBhY2tldC0+dmlkZW9fcGF5bG9hZCA9IHN0ZDo6bW92ZShmaXhlZC5i
aXRzdHJlYW0pOworICAgICAgICBicmVhazsKKyAgICB9CisjZW5kaWYKICAgfSBlbHNlIHsKICAg
ICBwYWNrZXQtPnZpZGVvX3BheWxvYWQgPSBzdGQ6Om1vdmUoY29kZWNfcGF5bG9hZCk7CiAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Zp
ZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaAppbmRl
eCAwMzA3MGRiNTFkYzVkM2JiZjMwZTYxZmI4YWEwZWViZTk1ZTIyYTcxLi4zMzA0NTViMWI4NmJk
NWZkM2U0MGQ1MzYzNmI2MDNlYzY3MDM3N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVy
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8v
cnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oCkBAIC0zOCw2ICszOCw5IEBACiAjaW5jbHVkZSAi
bW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvdmlkZW9fcnRwX2RlcGFja2V0aXplci5oIgogI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjRfc3BzX3Bwc190cmFja2VyLmgiCiAjaW5jbHVk
ZSAibW9kdWxlcy92aWRlb19jb2RpbmcvbG9zc19ub3RpZmljYXRpb25fY29udHJvbGxlci5oIgor
I2lmbmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1
X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9f
Y29kaW5nL3BhY2tldF9idWZmZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9y
dHBfZnJhbWVfcmVmZXJlbmNlX2ZpbmRlci5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29k
aW5nL3VuaXF1ZV90aW1lc3RhbXBfY291bnRlci5oIgpAQCAtMzE3LDYgKzMyMCwxMCBAQCBjbGFz
cyBSdHBWaWRlb1N0cmVhbVJlY2VpdmVyIDogcHVibGljIExvc3NOb3RpZmljYXRpb25TZW5kZXIs
CiAgIC8vIE1hcHMgcGF5bG9hZCBpZCB0byB0aGUgZGVwYWNrZXRpemVyLgogICBzdGQ6Om1hcDx1
aW50OF90LCBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9SdHBEZXBhY2tldGl6ZXI+PiBwYXlsb2FkX3R5
cGVfbWFwXzsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgdmlkZW9fY29kaW5nOjpIMjY1VnBz
U3BzUHBzVHJhY2tlciBoMjY1X3RyYWNrZXJfOworI2VuZGlmCisKICAgLy8gVE9ETyhqb2hhbik6
IFJlbW92ZSBwdF9jb2RlY19wYXJhbXNfIG9uY2UKICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVt
Lm9yZy9wL3dlYnJ0Yy9pc3N1ZXMvZGV0YWlsP2lkPTY4ODMgaXMgcmVzb2x2ZWQuCiAgIC8vIE1h
cHMgYSBwYXlsb2FkIHR5cGUgdG8gYSBtYXAgb2Ygb3V0LW9mLWJhbmQgc3VwcGxpZWQgY29kZWMg
cGFyYW1ldGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3ZpZGVvL3NlbmRfc3RhdGlzdGljc19wcm94eS5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3NlbmRfc3RhdGlzdGljc19wcm94eS5j
YwppbmRleCA2MGQ4NGYxNGM3ODllOWM1ZDM5OWFkZWU0OGJkZDMxN2RhYzA4NjAwLi5mMjE0MTcy
MjlhNzBmMmI4MjEzODg2MDVjNDgwYzAxYzU3OTVkODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9zZW5kX3N0YXRpc3RpY3NfcHJv
eHkuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlk
ZW8vc2VuZF9zdGF0aXN0aWNzX3Byb3h5LmNjCkBAIC00Nyw2ICs0Nyw3IEBAIGVudW0gSGlzdG9n
cmFtQ29kZWNUeXBlIHsKICAga1ZpZGVvVnA4ID0gMSwKICAga1ZpZGVvVnA5ID0gMiwKICAga1Zp
ZGVvSDI2NCA9IDMsCisgIGtWaWRlb0gyNjUgPSA0LAogICBrVmlkZW9NYXggPSA2NCwKIH07CiAK
QEAgLTc0LDYgKzc1LDEwIEBAIEhpc3RvZ3JhbUNvZGVjVHlwZSBQYXlsb2FkTmFtZVRvSGlzdG9n
cmFtQ29kZWNUeXBlKAogICAgICAgcmV0dXJuIGtWaWRlb1ZwOTsKICAgICBjYXNlIGtWaWRlb0Nv
ZGVjSDI2NDoKICAgICAgIHJldHVybiBrVmlkZW9IMjY0OworI2lmbmRlZiBESVNBQkxFX0gyNjUK
KyAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NToKKyAgICAgIHJldHVybiBrVmlkZW9IMjY1OworI2Vu
ZGlmCiAgICAgZGVmYXVsdDoKICAgICAgIHJldHVybiBrVmlkZW9Vbmtub3duOwogICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92
aWRlb19yZWNlaXZlX3N0cmVhbS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3RyZWFtLmNjCmluZGV4IDI0NmRhYWRiODFi
YmJlZjhjYzBmODhkYmM1MWQ5NGVjMzk2YmM3ODMuLmYxYjY1NWYwMTg0M2EyYmY2NjQzZjJlYjc2
N2E0NzJkMTA4NjI2ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3RyZWFtLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3Ry
ZWFtLmNjCkBAIC0xMzQsNiArMTM0LDExIEBAIFZpZGVvQ29kZWMgQ3JlYXRlRGVjb2RlclZpZGVv
Q29kZWMoY29uc3QgVmlkZW9SZWNlaXZlU3RyZWFtOjpEZWNvZGVyJiBkZWNvZGVyKSB7CiAgICAg
YXNzb2NpYXRlZF9jb2RlYy5jb2RlY1R5cGUgPSBrVmlkZW9Db2RlY011bHRpcGxleDsKICAgICBy
ZXR1cm4gYXNzb2NpYXRlZF9jb2RlYzsKICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgZWxz
ZSBpZiAoY29kZWMuY29kZWNUeXBlID09IGtWaWRlb0NvZGVjSDI2NSkgeworICAgICooY29kZWMu
SDI2NSgpKSA9IFZpZGVvRW5jb2Rlcjo6R2V0RGVmYXVsdEgyNjVTZXR0aW5ncygpOworICB9Cisj
ZW5kaWYKIAogICBjb2RlYy53aWR0aCA9IDMyMDsKICAgY29kZWMuaGVpZ2h0ID0gMTgwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8v
dmlkZW9fc3RyZWFtX2VuY29kZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy92aWRlby92aWRlb19zdHJlYW1fZW5jb2Rlci5jYwppbmRleCA4MjUyY2IyOWVm
MTdkZjBjZjBhMmZjOGZkZGU3MGYxZDU5ZTlkOGQ1Li41Mjg5MWU5YzFiNzBjODg2NDc4NGI0NTQz
MmUzZWMzOGYyMDU4YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19zdHJlYW1fZW5jb2Rlci5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19zdHJlYW1fZW5j
b2Rlci5jYwpAQCAtMTAwLDcgKzEwMCwxMyBAQCBib29sIFJlcXVpcmVzRW5jb2RlclJlc2V0KGNv
bnN0IFZpZGVvQ29kZWMmIHByZXZfc2VuZF9jb2RlYywKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICB9CiAgICAgICBicmVhazsKLQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtW
aWRlb0NvZGVjSDI2NToKKyAgICAgIGlmIChuZXdfc2VuZF9jb2RlYy5IMjY1KCkgIT0gcHJldl9z
ZW5kX2NvZGVjLkgyNjUoKSkgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgICAg
IGJyZWFrOworI2VuZGlmCiAgICAgZGVmYXVsdDoKICAgICAgIGJyZWFrOwogICB9CkBAIC0xNDAz
LDYgKzE0MDksOSBAQCBFbmNvZGVkSW1hZ2VDYWxsYmFjazo6UmVzdWx0IFZpZGVvU3RyZWFtRW5j
b2Rlcjo6T25FbmNvZGVkSW1hZ2UoCiAgIGlmIChjb2RlY19zcGVjaWZpY19pbmZvICYmCiAgICAg
ICAoY29kZWNfc3BlY2lmaWNfaW5mby0+Y29kZWNUeXBlID09IGtWaWRlb0NvZGVjVlA4IHx8CiAg
ICAgICAgY29kZWNfc3BlY2lmaWNfaW5mby0+Y29kZWNUeXBlID09IGtWaWRlb0NvZGVjSDI2NCB8
fAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgICBjb2RlY19zcGVjaWZpY19pbmZvLT5jb2Rl
Y1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY1IHx8CisjZW5kaWYKICAgICAgICBjb2RlY19zcGVjaWZp
Y19pbmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNHZW5lcmljKSkgewogICAgIHNpbXVsY2Fz
dF9pZCA9IGVuY29kZWRfaW1hZ2UuU3BhdGlhbEluZGV4KCkudmFsdWVfb3IoMCk7CiAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlM2RmMDk4YzdlMjU0OTRhZDFkYTg4MDc1
ZmE4N2Q2YzJmZmM4M2ZlLi4zM2IxYjEzYjI5MzZjNDkxNGQwMmViZjNmNDJlOTZhZGY4Mjk1MDUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xp
YndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOSw2ICsyOSwyOCBAQAogCQk0
MTAwOTFEQzI0MkUwQkJDMDBDNUVEQTIgLyogdmlkZW9fY29kZWNfdHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRDcyNDJFMEJCQjAwQzVF
REEyIC8qIHZpZGVvX2NvZGVjX3R5cGUuaCAqLzsgfTsKIAkJNDEwMDkxREQyNDJFMEJCQzAwQzVF
REEyIC8qIHJlY29yZGFibGVfZW5jb2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRDgyNDJFMEJCQjAwQzVFREEyIC8qIHJlY29y
ZGFibGVfZW5jb2RlZF9mcmFtZS5oICovOyB9OwogCQk0MTAwOTFERTI0MkUwQkJDMDBDNUVEQTIg
LyogdmlkZW9fZnJhbWVfdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEwMDkxRDkyNDJFMEJCQjAwQzVFREEyIC8qIHZpZGVvX2ZyYW1lX3R5cGUu
aCAqLzsgfTsKKwkJNDEwMDkxRTYyNDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5j
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUUw
MjQyRTJBQTEwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuY2MgKi87IH07CisJCTQxMDA5MUU3
MjQyRTJBQTMwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUUxMjQyRTJBQTIwMEM1RURBMiAvKiBy
dHBfZm9ybWF0X2gyNjUuaCAqLzsgfTsKKwkJNDEwMDkxRTkyNDJFMkFBMzAwQzVFREEyIC8qIGgy
NjVfc3BzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDEwMDkxRTMyNDJFMkFBMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oICovOyB9
OworCQk0MTAwOTFFRDI0MkUzMTc0MDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFF
QjI0MkUzMTczMDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggKi87IH07CisJ
CTQxMDA5MUVFMjQyRTMxNzQwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2Mg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFFQzI0
MkUzMTczMDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjICovOyB9OworCQk0
MTAwOTFGODI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRjAyNDJFMzYyMDAwQzVF
REEyIC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLzsgfTsKKwkJNDEwMDkxRjkyNDJFMzYyMjAwQzVF
REEyIC8qIGgyNjVfc3BzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwMDkxRjEyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNl
ci5oICovOyB9OworCQk0MTAwOTFGQTI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFG
MjI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmggKi87IH07CisJCTQxMDA5MUZC
MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGMzI0MkUzNjIxMDBDNUVEQTIgLyog
aDI2NV9wcHNfcGFyc2VyLmNjICovOyB9OworCQk0MTAwOTFGQzI0MkUzNjIyMDBDNUVEQTIgLyog
aDI2NV92cHNfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwMDkxRjQyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyAq
LzsgfTsKKwkJNDEwMDkxRkQyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGNTI0MkUzNjIx
MDBDNUVEQTIgLyogaDI2NV9jb21tb24uaCAqLzsgfTsKKwkJNDEwMDkxRkUyNDJFMzYyMjAwQzVF
REEyIC8qIGgyNjVfdnBzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwMDkxRjYyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNl
ci5oICovOyB9OworCQk0MTAwOTFGRjI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uY2Mg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGNzI0
MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uY2MgKi87IH07CisJCTQxMDA5MjA5MjQyRTNB
NDYwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRD
VmlkZW9EZWNvZGVySDI2NS5oICovOyB9OworCQk0MTAwOTIwQTI0MkUzQTQ2MDBDNUVEQTIgLyog
UlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwMDkyMDEyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxl
TGV2ZWxJZC5tbSAqLzsgfTsKKwkJNDEwMDkyMEIyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVj
U3BlY2lmaWNJbmZvSDI2NS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwMDkyMDIyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5oICovOyB9OworCQk0MTAwOTIwQzI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1K1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMDA5MjAzMjQyRTNBNDQwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjUrUHJpdmF0ZS5oICovOyB9OworCQk0MTAwOTIwRDI0MkUzQTQ2MDBDNUVEQTIgLyog
UlRDVmlkZW9FbmNvZGVySDI2NS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEwMDkyMDQyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2Rlckgy
NjUuaCAqLzsgfTsKKwkJNDEwMDkyMEUyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxl
TGV2ZWxJZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDEwMDkyMDUyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oICovOyB9
OworCQk0MTAwOTIwRjI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MjA2MjQy
RTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1tICovOyB9OworCQk0MTAwOTIx
MDI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MjA3MjQyRTNBNDUwMEM1RURB
MiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tICovOyB9OworCQk0MTAwOTIxMTI0MkUzQTQ2MDBD
NUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDgyNDJFM0E0NjAwQzVFREEyIC8qIFJU
Q0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSAqLzsgfTsKIAkJNDEwMkY2QTEyMTI3MzI2MjAwNkFF
OEQ3IC8qIHJlbWl4X3Jlc2FtcGxlLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwMkY2OTcyMTI3MzI2MDAwNkFFOEQ3IC8qIHJlbWl4X3Jlc2FtcGxl
LmNjICovOyB9OwogCQk0MTAyRjZBMjIxMjczMjYyMDA2QUU4RDcgLyogYXVkaW9fbGV2ZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDJGNjk4MjEy
NzMyNjAwMDZBRThENyAvKiBhdWRpb19sZXZlbC5oICovOyB9OwogCQk0MTAyRjZBNDIxMjczMjYy
MDA2QUU4RDcgLyogYXVkaW9fbGV2ZWwuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTAyRjY5QTIxMjczMjYxMDA2QUU4RDcgLyogYXVkaW9fbGV2ZWwu
Y2MgKi87IH07CkBAIC0zOTI2LDYgKzM5NDgsMzEgQEAKIAkJNDEwMDkxRDcyNDJFMEJCQjAwQzVF
REEyIC8qIHZpZGVvX2NvZGVjX3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gdmlkZW9fY29kZWNfdHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAw
OTFEODI0MkUwQkJCMDBDNUVEQTIgLyogcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1lLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJlY29yZGFibGVfZW5jb2RlZF9mcmFtZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwOTFEOTI0MkUwQkJCMDBDNUVEQTIgLyog
dmlkZW9fZnJhbWVfdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB2aWRl
b19mcmFtZV90eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MURGMjQy
RTJBQTEwMEM1RURBMiAvKiBjb250cmlidXRpbmdfc291cmNlcy5jYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGNvbnRyaWJ1dGluZ19zb3VyY2VzLmNjOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFMDI0MkUyQUExMDBDNUVEQTIgLyogcnRwX2Zvcm1h
dF9oMjY1LmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcnRwX2Zvcm1h
dF9oMjY1LmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFMTI0MkUyQUEy
MDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHJ0cF9mb3JtYXRfaDI2NS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTAwOTFFMjI0MkUyQUEyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV9zcHNfcGFyc2VyLmNjOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFMzI0MkUyQUEyMDBDNUVEQTIgLyogaDI2NV9zcHNf
cGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVfc3BzX3BhcnNl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFNDI0MkUyQUEyMDBDNUVE
QTIgLyogY29udHJpYnV0aW5nX3NvdXJjZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gY29udHJpYnV0aW5nX3NvdXJjZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDEwMDkxRUIyNDJFMzE3MzAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBoMjY1X3Zwc19zcHNfcHBzX3RyYWNr
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRUMyNDJFMzE3MzAwQzVF
REEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjAyNDJFMzYyMDAwQzVFREEyIC8qIGgyNjVfc3BzX3Bh
cnNlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfc3BzX3Bh
cnNlci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjEyNDJFMzYyMTAw
QzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBoMjY1X3Nwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEw
MDkxRjIyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBoMjY1X3Bwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDEwMDkxRjMyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5j
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfcHBzX3BhcnNlci5j
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjQyNDJFMzYyMTAwQzVFREEy
IC8qIGgyNjVfdnBzX3BhcnNlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IGgyNjVfdnBzX3BhcnNlci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEw
MDkxRjUyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IGgyNjVfY29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxMDA5MUY2MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Zwc19wYXJzZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaDI2NV92cHNfcGFyc2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MUY3MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1v
bi5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfY29tbW9uLmNj
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIg
LyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSVENWaWRlb0RlY29kZXJIMjY1Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MDA5MjAxMjQyRTNBNDQwMEM1RURBMiAvKiBSVENIMjY1UHJvZmlsZUxldmVsSWQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENIMjY1UHJvZmlsZUxldmVsSWQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjAyMjQyRTNBNDQwMEM1RURB
MiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxMDA5MjAzMjQyRTNBNDQwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5m
b0gyNjUrUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiUlRDQ29k
ZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxMDA5MjA0MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJIMjY1LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1ZpZGVvRW5jb2RlckgyNjUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDUyNDJFM0E0NTAwQzVFREEyIC8qIFJU
Q0gyNjVQcm9maWxlTGV2ZWxJZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
VENIMjY1UHJvZmlsZUxldmVsSWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEw
MDkyMDYyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENWaWRlb0VuY29kZXJIMjY1Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTIwNzI0MkUzQTQ1MDBDNUVEQTIgLyog
UlRDVmlkZW9EZWNvZGVySDI2NS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFJUQ1ZpZGVvRGVjb2RlckgyNjUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxMDA5MjA4MjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENDb2RlY1NwZWNp
ZmljSW5mb0gyNjUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDBDREU1MjFD
QUNGRDAwMEY5Qjg3RCAvKiBMUENfZml0LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFt
ZSA9IExQQ19maXQuYzsgcGF0aCA9IHNpbGsvTFBDX2ZpdC5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTAwQ0RFODIxQ0FEMDMzMDBGOUI4N0QgLyogdnFfc3NlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHZxX3NzZS5oOyBwYXRoID0geDg2L3ZxX3NzZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwQ0RFQjIxQ0FEMUY1MDBGOUI4N0QgLyog
cGl0Y2hfc3NlNF8xLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBpdGNoX3Nz
ZTRfMS5jOyBwYXRoID0geDg2L3BpdGNoX3NzZTRfMS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNzg1Nyw2ICs3OTA0LDIxIEBACiAvKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhh
c2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCisJCTQxMDA5MUVG
MjQyRTM2MDgwMEM1RURBMiAvKiBoMjY1ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk0MTAwOTFGNzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24u
Y2MgKi8sCisJCQkJNDEwMDkxRjUyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggKi8s
CisJCQkJNDEwMDkxRjMyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5jYyAqLywK
KwkJCQk0MTAwOTFGMjI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmggKi8sCisJ
CQkJNDEwMDkxRjAyNDJFMzYyMDAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLywKKwkJ
CQk0MTAwOTFGMTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmggKi8sCisJCQkJ
NDEwMDkxRjQyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyAqLywKKwkJCQk0
MTAwOTFGNjI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmggKi8sCisJCQkpOwor
CQkJcGF0aCA9IGgyNjU7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk0MTA1
RUI2NDIxMkUwMThDMDA4QzBDMjAgLyogbGlidnB4ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKQEAgLTkxMTgsMjMgKzkxODAsMzIgQEAKIAkJCQk0MTYyMjVGNTIx
Njk4MUY0MDBBOTFDOUIgLyogaGVscGVycy5oICovLAogCQkJCTQxNzk1M0FDMjE2OTgyM0QwMDI4
MjY2QiAvKiBuYWx1X3Jld3JpdGVyLmNjICovLAogCQkJCTQxMTUyMUQ1MjE2OTgyMjAwMDBBQkFG
NyAvKiBuYWx1X3Jld3JpdGVyLmggKi8sCi0JCQkJNDE3OTUzQjIyMTY5ODI0MTAwMjgyNjZCIC8q
IFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8sCiAJCQkJNDE2MjI1RjEyMTY5
ODFGMzAwQTkxQzlCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NC5oICovLAogCQkJCTQxNjIy
NUVEMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQubW0gKi8sCisJ
CQkJNDE3OTUzQjIyMTY5ODI0MTAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQ
cml2YXRlLmggKi8sCisJCQkJNDEwMDkyMDIyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3Bl
Y2lmaWNJbmZvSDI2NS5oICovLAorCQkJCTQxMDA5MjA4MjQyRTNBNDYwMEM1RURBMiAvKiBSVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUubW0gKi8sCisJCQkJNDEwMDkyMDMyNDJFM0E0NDAwQzVFREEy
IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmggKi8sCiAJCQkJNDE3OTUzQjMy
MTY5ODI0MjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmggKi8sCiAJ
CQkJNDE3OTUzQUQyMTY5ODIzRTAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0
b3J5Lm0gKi8sCiAJCQkJNDE2MjI1RjcyMTY5ODFGNDAwQTkxQzlCIC8qIFJUQ0RlZmF1bHRWaWRl
b0VuY29kZXJGYWN0b3J5LmggKi8sCiAJCQkJNDE3OTUzQUYyMTY5ODIzRjAwMjgyNjZCIC8qIFJU
Q0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0gKi8sCiAJCQkJNDExNTIxRDQyMTY5ODIxRjAw
MEFCQUY3IC8qIFJUQ0gyNjRQcm9maWxlTGV2ZWxJZC5oICovLAogCQkJCTQxMTUyMUQ2MjE2OTgy
MjAwMDBBQkFGNyAvKiBSVENIMjY0UHJvZmlsZUxldmVsSWQubW0gKi8sCisJCQkJNDEwMDkyMDUy
NDJFM0E0NTAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oICovLAorCQkJCTQxMDA5
MjAxMjQyRTNBNDQwMEM1RURBMiAvKiBSVENIMjY1UHJvZmlsZUxldmVsSWQubW0gKi8sCiAJCQkJ
NDE2MjI1RjIyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0Lmgg
Ki8sCiAJCQkJNDE3OTUzQjAyMTY5ODI0MDAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3Rv
cnlIMjY0Lm0gKi8sCiAJCQkJNDE2MjI1RjMyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ1ZpZGVvRGVj
b2RlckgyNjQuaCAqLywKIAkJCQk0MTYyMjVGNDIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9E
ZWNvZGVySDI2NC5tbSAqLywKKwkJCQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlk
ZW9EZWNvZGVySDI2NS5oICovLAorCQkJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENW
aWRlb0RlY29kZXJIMjY1Lm1tICovLAogCQkJCTQxNjIyNUVGMjE2OTgxRjIwMEE5MUM5QiAvKiBS
VENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5oICovLAogCQkJCTQxNzk1M0IxMjE2OTgyNDAwMDI4
MjY2QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5SDI2NC5tICovLAogCQkJCTQxNjIyNUVDMjE2
OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJIMjY0LmggKi8sCiAJCQkJNDE2MjI1RjYy
MTY5ODFGNDAwQTkxQzlCIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjQubW0gKi8sCisJCQkJNDEwMDky
MDQyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCAqLywKKwkJCQk0MTAw
OTIwNjI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSAqLywKIAkJCQk0
MTYyMjVFRTIxNjk4MUYyMDBBOTFDOUIgLyogVUlEZXZpY2UrSDI2NFByb2ZpbGUuaCAqLywKIAkJ
CQk0MTc5NTNBRTIxNjk4MjNGMDAyODI2NkIgLyogVUlEZXZpY2UrSDI2NFByb2ZpbGUubW0gKi8s
CiAJCQkpOwpAQCAtMTE3MDksNiArMTE3ODAsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNDEz
MUM0MkEyMzRDN0Q3MDAwMjhBNjE1IC8qIGdlbmVyaWNfZnJhbWVfZGVzY3JpcHRvciAqLywKIAkJ
CQk1Q0REODM0MTFFNDMyNTY0MDA2MjFFOTIgLyogaDI2NCAqLywKKwkJCQk0MTAwOTFFRjI0MkUz
NjA4MDBDNUVEQTIgLyogaDI2NSAqLywKIAkJCQk0MTEwOUFBNDFFNUZBMTgxMDBDMDk1NUEgLyog
aW5jbHVkZSAqLywKIAkJCQk1Q0REODM2NTFFNDMyNUMyMDA2MjFFOTIgLyogbGlieXV2ICovLAog
CQkJCTVDNEI0QzEwMUU0MzFGNzUwMDI2NTFDOCAvKiBiaXRyYXRlX2FkanVzdGVyLmNjICovLApA
QCAtMTI2MzIsNiArMTI3MDQsOCBAQAogCQkJCTVDRDI4NUU5MUU2QTYzOUYwMDk0RkRDOCAvKiBo
MjY0X3Nwcm9wX3BhcmFtZXRlcl9zZXRzLmggKi8sCiAJCQkJNUNERDgzOUExRTQzOUE2RjAwNjIx
RTkyIC8qIGgyNjRfc3BzX3Bwc190cmFja2VyLmNjICovLAogCQkJCTVDREQ4MzlCMUU0MzlBNkYw
MDYyMUU5MiAvKiBoMjY0X3Nwc19wcHNfdHJhY2tlci5oICovLAorCQkJCTQxMDA5MUVDMjQyRTMx
NzMwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgKi8sCisJCQkJNDEwMDkx
RUIyNDJFMzE3MzAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oICovLAogCQkJ
CTVDREQ4MzlDMUU0MzlBNkYwMDYyMUU5MiAvKiBoaXN0b2dyYW0uY2MgKi8sCiAJCQkJNUNERDgz
OUQxRTQzOUE2RjAwNjIxRTkyIC8qIGhpc3RvZ3JhbS5oICovLAogCQkJCTVDREQ4MzlFMUU0MzlB
NkYwMDYyMUU5MiAvKiBpbnRlcl9mcmFtZV9kZWxheS5jYyAqLywKQEAgLTEzMjY3LDExICsxMzM0
MSwxNCBAQAogCQk1Q0REODdGQTFFNDNCRTI2MDA2MjFFOTIgLyogc291cmNlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1Q0REODhFQjFFNDNCRjI1MDA2
MjFFOTIgLyogcnRjcF9wYWNrZXQgKi8sCiAJCQkJNDEzMUM0QzgyMzRDODRBMTAwMjhBNjE1IC8q
IGFic29sdXRlX2NhcHR1cmVfdGltZV9yZWNlaXZlci5jYyAqLywKIAkJCQk0MTMxQzRDRDIzNEM4
NEEyMDAyOEE2MTUgLyogYWJzb2x1dGVfY2FwdHVyZV90aW1lX3JlY2VpdmVyLmggKi8sCiAJCQkJ
NDEzMUM0Q0MyMzRDODRBMjAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGltZV9zZW5kZXIu
Y2MgKi8sCiAJCQkJNDEzMUM0Q0UyMzRDODRBMjAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVf
dGltZV9zZW5kZXIuaCAqLywKIAkJCQk1Q0REODdGQzFFNDNCRTNDMDA2MjFFOTIgLyogYnl0ZV9p
by5oICovLAorCQkJCTQxMDA5MURGMjQyRTJBQTEwMEM1RURBMiAvKiBjb250cmlidXRpbmdfc291
cmNlcy5jYyAqLywKKwkJCQk0MTAwOTFFNDI0MkUyQUEyMDBDNUVEQTIgLyogY29udHJpYnV0aW5n
X3NvdXJjZXMuaCAqLywKIAkJCQk0MTg5MzkwOTI0MkE3MDRDMDA3RkRDNDEgLyogY3JlYXRlX3Zp
ZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MgKi8sCiAJCQkJNDE4OTM5MDQyNDJBNzA0QjAwN0ZEQzQx
IC8qIGNyZWF0ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmggKi8sCiAJCQkJNUNERDg3RkUxRTQz
QkUzQzAwNjIxRTkyIC8qIGR0bWZfcXVldWUuY2MgKi8sCkBAIC0xMzI5MCw2ICsxMzM2Nyw4IEBA
CiAJCQkJNUNERDg4MEUxRTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3JfY29ycmVjdGlv
bl9pbnRlcm5hbC5oICovLAogCQkJCTVDREQ4ODBGMUU0M0JFM0MwMDYyMUU5MiAvKiBmb3J3YXJk
X2Vycm9yX2NvcnJlY3Rpb24uY2MgKi8sCiAJCQkJNUNERDg4MTAxRTQzQkUzQzAwNjIxRTkyIC8q
IGZvcndhcmRfZXJyb3JfY29ycmVjdGlvbi5oICovLAorCQkJCTQxMDA5MUUyMjQyRTJBQTIwMEM1
RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgKi8sCisJCQkJNDEwMDkxRTMyNDJFMkFBMjAwQzVF
REEyIC8qIGgyNjVfc3BzX3BhcnNlci5oICovLAogCQkJCTVDREQ4ODE1MUU0M0JFM0MwMDYyMUU5
MiAvKiBwYWNrZXRfbG9zc19zdGF0cy5jYyAqLywKIAkJCQk1Q0REODgxNjFFNDNCRTNDMDA2MjFF
OTIgLyogcGFja2V0X2xvc3Nfc3RhdHMuaCAqLywKIAkJCQk1Q0REODgxQTFFNDNCRTNDMDA2MjFF
OTIgLyogcmVjZWl2ZV9zdGF0aXN0aWNzX2ltcGwuY2MgKi8sCkBAIC0xMzI5Nyw3ICsxMzM3Niw2
IEBACiAJCQkJNUNERDg4MUUxRTQzQkUzQzAwNjIxRTkyIC8qIHJlbW90ZV9udHBfdGltZV9lc3Rp
bWF0b3IuY2MgKi8sCiAJCQkJNUNEMjg1RjgxRTZBNjQ1MjAwOTRGREM4IC8qIHJ0Y3BfbmFja19z
dGF0cy5jYyAqLywKIAkJCQk1Q0QyODVGOTFFNkE2NDUyMDA5NEZEQzggLyogcnRjcF9uYWNrX3N0
YXRzLmggKi8sCi0JCQkJNUNERDg4RUIxRTQzQkYyNTAwNjIxRTkyIC8qIHJ0Y3BfcGFja2V0ICov
LAogCQkJCTVDREQ4ODIxMUU0M0JFM0MwMDYyMUU5MiAvKiBydGNwX3BhY2tldC5jYyAqLywKIAkJ
CQk1Q0REODgyMjFFNDNCRTNDMDA2MjFFOTIgLyogcnRjcF9wYWNrZXQuaCAqLywKIAkJCQk1Q0RE
ODgyNDFFNDNCRTNDMDA2MjFFOTIgLyogcnRjcF9yZWNlaXZlci5jYyAqLywKQEAgLTEzMzIwLDYg
KzEzMzk4LDggQEAKIAkJCQk0MTg5MzkwMzI0MkE3MDRBMDA3RkRDNDEgLyogcnRwX2Rlc2NyaXB0
b3JfYXV0aGVudGljYXRpb24uaCAqLywKIAkJCQk1Q0REODgyRTFFNDNCRTNDMDA2MjFFOTIgLyog
cnRwX2Zvcm1hdF9oMjY0LmNjICovLAogCQkJCTVDREQ4ODJGMUU0M0JFM0MwMDYyMUU5MiAvKiBy
dHBfZm9ybWF0X2gyNjQuaCAqLywKKwkJCQk0MTAwOTFFMDI0MkUyQUExMDBDNUVEQTIgLyogcnRw
X2Zvcm1hdF9oMjY1LmNjICovLAorCQkJCTQxMDA5MUUxMjQyRTJBQTIwMEM1RURBMiAvKiBydHBf
Zm9ybWF0X2gyNjUuaCAqLywKIAkJCQk1Q0REODgzMDFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zv
cm1hdF92aWRlb19nZW5lcmljLmNjICovLAogCQkJCTVDREQ4ODMxMUU0M0JFM0MwMDYyMUU5MiAv
KiBydHBfZm9ybWF0X3ZpZGVvX2dlbmVyaWMuaCAqLywKIAkJCQk1Q0REODgzNTFFNDNCRTNDMDA2
MjFFOTIgLyogcnRwX2Zvcm1hdF92cDguY2MgKi8sCkBAIC0xNDYyNCw2ICsxNDcwNCw3IEBACiAJ
CQkJNUNEMjg1QTcxRTZBNjM0MzAwOTRGREM4IC8qIGFlY19zdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNERDg1RTgxRTQzQjgxMDAwNjIxRTkyIC8qIGFlY21fY29yZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDg1RTkxRTQzQjgxMDAwNjIxRTkyIC8qIGFlY21fZGVmaW5lcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDEwMDkxRTcyNDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2
NS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MjcxRTRBOTlEMjAwNDAzOTk1IC8qIGFlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MjQxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19nY21f
b3NzbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMwODg1MjYxRTRBOTlEMjAwNDAzOTk1IC8qIGFl
c19pY20uaCBpbiBIZWFkZXJzICovLApAQCAtMTQ2NzIsNiArMTQ3NTMsNyBAQAogCQkJCTVDRDI4
NTQ1MUU2QTYxRDIwMDk0RkRDOCAvKiBhdWRpb19kZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0QyODU0MzFFNkE2MUQyMDA5NEZEQzggLyogYXVkaW9fZGVjb2Rlcl9mYWN0b3J5LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTg5MzhEQTI0MkE2OUNDMDA3RkRDNDEgLyogcXVhbGl0eV9zY2Fs
ZXJfcmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUZBMjQyRTM2MjIwMEM1RURB
MiAvKiBoMjY1X3Bwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjlCRjk4MjA1MUM4
MjEwMEFCRjBCOSAvKiBhdWRpb19kZWNvZGVyX2ZhY3RvcnlfdGVtcGxhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxOUM4M0U4MUZFMjQ4MzUwMDQwQzMwRiAvKiBhdWRpb19kZWNvZGVyX2c3MTEu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDA5MURFMjQyRTBCQkMwMEM1RURBMiAvKiB2aWRlb19m
cmFtZV90eXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTE0NjkxLDYgKzE0NzczLDcgQEAKIAkJCQk0
MTMxQzNDMjIzNEI5N0I0MDAyOEE2MTUgLyogYXVkaW9fZGVjb2Rlcl9tdWx0aV9jaGFubmVsX29w
dXNfaW1wbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTNBMjEyNDJBNzVDMTAwN0ZEQzQxIC8q
IGR0bHNfdHJhbnNwb3J0X2ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODkzOUNBMjQy
QTczMzcwMDdGREM0MSAvKiB1c2VkX2lkcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMEQy
NDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDREQ4QzYxMUU0M0M2MDkwMDYyMUU5MiAvKiBhdWRpb19kZWNvZGVyX29wdXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxOUM4MkYyMUZFMjBFQjUwMDQwQzMwRiAvKiBhdWRpb19kZWNvZGVy
X29wdXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODkzOUQ3MjQyQTczMzcwMDdGREM0MSAvKiB0
cmFja19tZWRpYV9pbmZvX21hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDc1OCwxMCArMTQ4NDEs
MTIgQEAKIAkJCQk0MTg5Mzk1QzI0MkE3MUY1MDA3RkRDNDEgLyogbWluX3ZpZGVvX2JpdHJhdGVf
ZXhwZXJpbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBRDAxRTQzQzIzOTAwNjIxRTky
IC8qIGF1ZGlvX3NlbmRfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODRCMjFFNkE1
RjlGMDA5NEZEQzggLyogYXVkaW9fc2VuZF9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MDA5MUU5MjQyRTJBQTMwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4QzRGMUU0M0M1OEUwMDYyMUU5MiAvKiBhdWRpb19zaW5rLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1Q0REOEE5MjFFNDNDMDBGMDA2MjFFOTIgLyogYXVkaW9fc2luay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUJGQTAyMzRCODhBNjAwMjhBNjE1IC8qIGF1ZGlvX3NvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTM5NUYyNDJBNzFGNTAwN0ZEQzQxIC8qIHF1YWxpdHlf
cmFtcHVwX2V4cGVyaW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MjBCMjQyRTNBNDYw
MEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4QUQzMUU0M0MyMzkwMDYyMUU5MiAvKiBhdWRpb19zdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUNEMjg0QjMxRTZBNUY5RjAwOTRGREM4IC8qIGF1ZGlvX3N0YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTMxQkYwNTIzNEI4ODIwMDAyOEE2MTUgLyogYXVkaW9fdHJhY2suaCBpbiBI
ZWFkZXJzICovLApAQCAtMTQ5ODMsNiArMTUwNjgsNyBAQAogCQkJCTQxM0EyMTNFMUZFMEYwRUYw
MDM3M0U5OSAvKiBla3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4Qjk3MUU0M0MyQjUwMDYy
MUU5MiAvKiBlbmNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4N0I2MUU0M0JDMDUwMDYy
MUU5MiAvKiBlbmNvZGVfbHBjX3N3Yi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMDkyNDJF
M0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDREQ4QTk2MUU0M0MwMEYwMDYyMUU5MiAvKiBlbmNvZGVfbmV0ZXFfaW5wdXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4M0NEMUU0MzlBNkYwMDYyMUU5MiAvKiBlbmNvZGVkX2ZyYW1lLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MUEwOEJBQzIxMjY4MUM4MDAxRDVEN0IgLyogZW5jb2RlZF9m
cmFtZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTAxNCw2ICsxNTEwMCw3IEBACiAJCQkJNDEwMkY2
QUYyMTI3MzJFNzAwNkFFOEQ3IC8qIGV4cGFuZF91bWFfbG9nZ2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MUJFNzFBNjIxNUM0NjM3MDBBN0IxOTYgLyogZXhwci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUNERDg5NEIxRTQzQkYzQTAwNjIxRTkyIC8qIGV4dGVuZGVkX2ppdHRlcl9yZXBvcnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMDA5MUZFMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Zwc19w
YXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4OTRFMUU0M0JGM0EwMDYyMUU5MiAvKiBl
eHRlbmRlZF9yZXBvcnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkY0NjIzNEI4ODIwMDAy
OEE2MTUgLyogZXh0ZXJuYWxfaG1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwNzcyMzRC
ODk4RDAwMjhBNjE1IC8qIGZha2VfY2xvY2suaCBpbiBIZWFkZXJzICovLApAQCAtMTU0NTMsNiAr
MTU1NDAsNyBAQAogCQkJCTVDREQ4RkRFMUU0M0NENjYwMDYyMUU5MiAvKiByZW1vdGVfYml0cmF0
ZV9lc3RpbWF0b3Jfc2luZ2xlX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0Qjcy
MzRDODNERDAwMjhBNjE1IC8qIHJlbW90ZV9lc3RpbWF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDhGRTIxRTQzQ0Q2NjAwNjIxRTkyIC8qIHJlbW90ZV9lc3RpbWF0b3JfcHJveHkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTQxMDA5MUY5MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJz
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0M1MUZFMjQ3QjQwMDQwQzMwRiAvKiByZW1v
dGVfbnRwX3RpbWVfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ1RTREQTFFRjhD
QzlCMDBGQ0Y2RTYgLyogcmVuZGVyX2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1
RDYxRTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9kZWxheV9idWZmZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtMTU1NzgsNiArMTU2NjYsNyBAQAogCQkJCTVDREQ4ODlFMUU0M0JFM0MwMDYyMUU5MiAv
KiBydGNwX3NlbmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0RUYyMzRDODYxMTAwMjhB
NjE1IC8qIHJ0Y3Bfc3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzMDMxRkUy
MEYwMjAwNDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MDA5MUZEMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE5QzgzMDExRkUyMEYwMjAwNDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXJfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODMwNTFGRTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFu
c2NlaXZlcl9pbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQzRTFGRTE5OTFBMDAzNzNF
OTkgLyogUlRDUGVlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMTU2MjYsNiArMTU3
MTUsNyBAQAogCQkJCTQxM0EyNDRGMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb0ZyYW1lLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MTNFNjc4RjIxNjk4N0RCMDBFRjM3RUQgLyogUlRDVmlkZW9G
cmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzRTY3OTEyMTY5ODdEQjAwRUYzN0VEIC8qIFJU
Q1ZpZGVvRnJhbWVCdWZmZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUVEMjQyRTMxNzQw
MEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxM0EyNDQxMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb0ZyYW1lQnVmZmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTNBMjQ2RjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9SZW5kZXJl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NjExRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1Zp
ZGVvU291cmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTE1ODE4LDYgKzE1OTA4LDcgQEAKIAkJCQk0
MTMxQzEwMzIzNEI4OUUyMDAyOEE2MTUgLyogc3RyaW5nX2VuY29kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE4OTNBMEEyNDJBNzUzQzAwN0ZEQzQxIC8qIHN1YmJhbmRfbmVhcmVuZF9kZXRlY3Rv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMxMDUyMzRCODlFMjAwMjhBNjE1IC8qIHN0cmlu
Z190b19udW1iZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MjBDMjQyRTNBNDYwMEM1RURB
MiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE4OTNBNDEyNDJBNzZGMjAwN0ZEQzQxIC8qIG9wZXJhdGlvbnNfY2hhaW4uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxMzFDMTMyMjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJpbmdfdXRpbHMuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxODkzOTg2MjQyQTcyNTEwMDdGREM0MSAvKiBwcmlvcl9zaWdu
YWxfbW9kZWwuaCBpbiBIZWFkZXJzICovLApAQCAtMTU5NTgsNiArMTYwNDksNyBAQAogCQkJCTQx
NjIyNUQzMjE2OTgxODEwMEE5MUM5QiAvKiB2aWRlb19mcmFtZV9idWZmZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxMDJGNkNGMjEyNzMzQjcwMDZBRThENyAvKiB2aWRlb19xdWFsaXR5X29ic2Vy
dmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODJDNDFGRTIwRENEMDA0MEMzMEYgLyogdmlk
ZW9fcmVjZWl2ZV9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MjBFMjQyRTNBNDYw
MEM1RURBMiAvKiBSVENIMjY1UHJvZmlsZUxldmVsSWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4NUNCMUU0M0I1QzAwMDYyMUU5MiAvKiB2aWRlb19yZWNlaXZlX3N0cmVhbS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUM0QjRDMjExRTQzMUY3NTAwMjY1MUM4IC8qIHZpZGVvX3JlbmRlcl9mcmFt
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRDI4NDZDMUU2QTU3RjQwMDk0RkRDOCAvKiB2aWRl
b19yb3RhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzQ3Niw4ICsxNzU2OCwxMCBAQAogCQkJ
CTQxMzFDMDMzMjM0Qjg5OEQwMDI4QTYxNSAvKiBjcnlwdF9zdHJpbmcuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzNCNjIzNEI5NzEyMDAyOEE2MTUgLyogY3J5cHRvX29wdGlvbnMuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTg5Mzk4QzI0MkE3MjUyMDA3RkRDNDEgLyogbnNfZmZ0LmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDEwMDkxRkMyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3Bh
cnNlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjI2MjM0Qjg4MjAwMDI4QTYxNSAvKiBk
YXRhX2NoYW5uZWwuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzMxMTIzNEI4REMyMDAyOEE2
MTUgLyogZGF0YV9jaGFubmVsX2ludGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5
MUY4MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk0MTkyNDFFMTIxMjc1QTMwMDA2MzRGQ0YgLyogZGF0YV9yYXRlLmNjIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDE4OTM5NUIyNDJBNzFGNTAwN0ZEQzQxIC8qIG1pbl92aWRlb19iaXRyYXRlX2V4
cGVyaW1lbnQuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzAyNDIzNEI4OThEMDAyOEE2MTUg
LyogZGF0YV9yYXRlX2xpbWl0ZXIuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3Njc4LDExICsxNzc3
MiwxNCBAQAogCQkJCTQxMDJGNkUwMjEyNzM0MTYwMDZBRThENyAvKiBpMDEwX2J1ZmZlci5jYyBp
biBTb3VyY2VzICovLAogCQkJCTVDRDI4NDY3MUU2QTU3RjQwMDk0RkRDOCAvKiBpNDIwX2J1ZmZl
ci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDNEI0QzFCMUU0MzFGNzUwMDI2NTFDOCAvKiBpNDIw
X2J1ZmZlcl9wb29sLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkxRUUyNDJFMzE3NDAwQzVF
REEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
MzFDMUYxMjM0QjhBNEIwMDI4QTYxNSAvKiBpY2VfY3JlZGVudGlhbHNfaXRlcmF0b3IuY2MgaW4g
U291cmNlcyAqLywKIAkJCQk0MTg5M0E0QTI0MkE3Nzg5MDA3RkRDNDEgLyogZXZlbnRfYmFzZWRf
ZXhwb25lbnRpYWxfbW92aW5nX2F2ZXJhZ2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzNF
NjIzNEM3QTA4MDAyOEE2MTUgLyogaWNlX2xvZ2dlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQx
MzFCRjU1MjM0Qjg4MjAwMDI4QTYxNSAvKiBpY2Vfc2VydmVyX3BhcnNpbmcuY2MgaW4gU291cmNl
cyAqLywKKwkJCQk0MTAwOTIxMDI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2
NS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjBFMjM0Qjg4MjAwMDI4QTYxNSAvKiBpY2Vf
dHJhbnNwb3J0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkyMTEyNDJFM0E0NjAwQzVFREEy
IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFD
MzFBMjM0QjhEQzIwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0X2ZhY3RvcnkuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzFCRjIzNEI4QTRBMDAyOEE2MTUgLyogaWNlX3RyYW5zcG9ydF9pbnRl
cm5hbC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxODkzQTVFMjQyQTc3QjgwMDdGREM0MSAvKiBl
dmVudF9yYXRlX2NvdW50ZXIuY2MgaW4gU291cmNlcyAqLywKQEAgLTE3NzUwLDYgKzE3ODQ3LDcg
QEAKIAkJCQk1Q0REODdDNTFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX2FuYWx5c2lzLmMgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REOEJDMTFFNDNDMkI1MDA2MjFFOTIgLyogbHBjX2VuY29kZS5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3QzcxRTQzQkMwNTAwNjIxRTkyIC8qIGxwY19nYWluX3N3
Yl90YWJsZXMuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUU2MjQyRTJBQTMwMEM1RURBMiAv
KiBydHBfZm9ybWF0X2gyNjUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0NFRTFGNzlCMzM0
MDAzODdCNEQgLyogbHBjX21hc2tpbmdfbW9kZWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4
N0M5MUU0M0JDMDUwMDYyMUU5MiAvKiBscGNfc2hhcGVfc3diMTJfdGFibGVzLmMgaW4gU291cmNl
cyAqLywKIAkJCQk1Q0REODdDQjFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX3NoYXBlX3N3YjE2X3Rh
Ymxlcy5jIGluIFNvdXJjZXMgKi8sCkBAIC0xODAyNSwxMCArMTgxMjMsMTIgQEAKIAkJCQk0MTc5
NTNCNzIxNjk4MjQyMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubSBp
biBTb3VyY2VzICovLAogCQkJCTQxNDRCM0Y1MjE2QjA4MUIwMDQzNjNBQyAvKiBSVENFbmNvZGVk
SW1hZ2UrUHJpdmF0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxNzk1M0ZBMjE2OTg0QkUwMDI4
MjY2QiAvKiBSVENFbmNvZGVkSW1hZ2UubSBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUZCMjQy
RTM2MjIwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0
MTg5MzkxNTI0MkE3MDRFMDA3RkRDNDEgLyogdHJhbnNmb3JtYWJsZV9lbmNvZGVkX2ZyYW1lLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRDYyMTY5OEExQTAwNDM2M0FDIC8qIFJUQ0gyNjRQ
cm9maWxlTGV2ZWxJZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxNDRCM0QzMjE2OTg5NkQwMDQz
NjNBQyAvKiBSVENOYXRpdmVJNDIwQnVmZmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIz
RDEyMTY5ODk2NzAwNDM2M0FDIC8qIFJUQ05hdGl2ZU11dGFibGVJNDIwQnVmZmVyLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEwMDkyMEYyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2Rl
ckgyNjUubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODJCOTFGRTIwRENEMDA0MEMzMEYgLyog
cnRjcF9kZW11eGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGMUEyMzRCODgyMDAwMjhB
NjE1IC8qIHJ0Y3BfbXV4X2ZpbHRlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUZBMUU2
QTY0NTIwMDk0RkRDOCAvKiBydGNwX25hY2tfc3RhdHMuY2MgaW4gU291cmNlcyAqLywKQEAgLTE4
MjM2LDYgKzE4MzM2LDcgQEAKIAkJCQk0MTkyNDFFMjIxMjc1QTMwMDA2MzRGQ0YgLyogdGltZV9k
ZWx0YS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTVBMUU0M0JGQjMwMDYyMUU5MiAvKiB0
aW1lX3N0cmV0Y2guY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhEQTFFNDNCRTNEMDA2MjFF
OTIgLyogdGltZV91dGlsLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkyMEEyNDJFM0E0NjAw
QzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQx
MzFDMTRBMjM0Qjg5RTIwMDI4QTYxNSAvKiB0aW1lX3V0aWxzLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDE5MjQxRTMyMTI3NUEzMDAwNjM0RkNGIC8qIHRpbWVzdGFtcC5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFDMTMzMjM0Qjg5RTIwMDI4QTYxNSAvKiB0aW1lc3RhbXBfYWxpZ25lci5jYyBp
biBTb3VyY2VzICovLApAQCAtMTgzNTQsNiArMTg0NTUsNyBAQAogCQkJCTVDREQ4MzY3MUU0MzI1
RDUwMDYyMUU5MiAvKiB3ZWJydGNfbGlieXV2LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMy
N0EyMzRCOENDNDAwMjhBNjE1IC8qIHdlYnJ0Y19tZWRpYV9lbmdpbmUuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTMxQzI3ODIzNEI4Q0M0MDAyOEE2MTUgLyogd2VicnRjX21lZGlhX2VuZ2luZV9k
ZWZhdWx0cy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUZGMjQyRTM2MjIwMEM1RURBMiAv
KiBoMjY1X2NvbW1vbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjUwMjM0Qjg4MjAwMDI4
QTYxNSAvKiB3ZWJydGNfc2RwLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJFRjQyMzRCODgy
MDAwMjhBNjE1IC8qIHdlYnJ0Y19zZXNzaW9uX2Rlc2NyaXB0aW9uX2ZhY3RvcnkuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REODZFNDFFNDNCQTI4MDA2MjFFOTIgLyogd2VicnRjX3ZhZC5jIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA5ZjBhNDA2ZGU0MTQ5MTgzZjg1MTE2
MTI0YjNlZDVjMTliMWVmMmViLi4wOTRkMzNjNzNkMTgyNjZiNmYyZjE5MDYzZDBiZjVmZjI2MmJm
YWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTMyNSw3ICszMjUsNyBAQCBQYWdlOjpQYWdlKFBh
Z2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjZW5kaWYKIAogI2lmIFVTRShM
SUJXRUJSVEMpCi0gICAgbV9saWJXZWJSVENQcm92aWRlci0+c3VwcG9ydHNWUDgoUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJSVENWUDhDb2RlY0VuYWJsZWQoKSk7
CisgICAgbV9saWJXZWJSVENQcm92aWRlci0+c3VwcG9ydHNIMjY1KFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgpKTsKICNlbmRp
ZgogCiAgICAgbV9jb3JzRGlzYWJsaW5nUGF0dGVybnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShw
YWdlQ29uZmlndXJhdGlvbi5jb3JzRGlzYWJsaW5nUGF0dGVybnMuc2l6ZSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggZGU3ZTM4ZDI1ZWIy
MzNjODg1YTgxNGZkY2MyMmM2YmMzOGM0NTI0YS4uMWVlMGQyNzcxNTc1MTEyYWRiODYwMjRkOTBj
MThjMDZjYWI2NjkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgKQEAgLTIzNiw4ICsyMzYsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQl9SVEMp
CiAgICAgYm9vbCB3ZWJSVENEVE1GRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENE
VE1GRW5hYmxlZDsgfQogICAgIHZvaWQgc2V0V2ViUlRDRFRNRkVuYWJsZWQoYm9vbCBpc0VuYWJs
ZWQpIHsgbV9pc1dlYlJUQ0RUTUZFbmFibGVkID0gaXNFbmFibGVkOyB9Ci0gICAgYm9vbCB3ZWJS
VENWUDhDb2RlY0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzV2ViUlRDVlA4Q29kZWNFbmFi
bGVkOyB9Ci0gICAgdm9pZCBzZXRXZWJSVENWUDhDb2RlY0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQp
IHsgbV9pc1dlYlJUQ1ZQOENvZGVjRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgd2Vi
UlRDSDI2NUNvZGVjRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENIMjY1Q29kZWNF
bmFibGVkOyB9CisgICAgdm9pZCBzZXRXZWJSVENIMjY1Q29kZWNFbmFibGVkKGJvb2wgaXNFbmFi
bGVkKSB7IG1faXNXZWJSVENIMjY1Q29kZWNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9v
bCBwZWVyQ29ubmVjdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUGVlckNvbm5lY3Rp
b25FbmFibGVkOyB9CiAgICAgdm9pZCBzZXRQZWVyQ29ubmVjdGlvbkVuYWJsZWQoYm9vbCBpc0Vu
YWJsZWQpIHsgbV9pc1BlZXJDb25uZWN0aW9uRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJv
b2wgd2ViUlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1dl
YlJUQ01ETlNJQ0VDYW5kaWRhdGVzRW5hYmxlZDsgfQpAQCAtNTAyLDcgKzUwMiw3IEBAIHByaXZh
dGU6CiAKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBib29sIG1faXNXZWJSVENEVE1GRW5hYmxl
ZCB7IHRydWUgfTsKLSAgICBib29sIG1faXNXZWJSVENWUDhDb2RlY0VuYWJsZWQgeyB0cnVlIH07
CisgICAgYm9vbCBtX2lzV2ViUlRDSDI2NUNvZGVjRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29s
IG1faXNQZWVyQ29ubmVjdGlvbkVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzV2ViUlRD
TUROU0lDRUNhbmRpZGF0ZXNFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNXZWJSVENI
MjY0U2ltdWxjYXN0RW5hYmxlZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3Zp
ZGVyLmgKaW5kZXggYTBiNGNmNzE2ZDU0MGViOWNlYjRhMGU2NzZlZTAyNjQzZmU4ZWQ5MC4uMjJi
MTBkZDQ4MGM4N2Y0ZGNkMDQyZmJjODhjOTk1NGRlMzIwZDc4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aXNhYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpOwogICAgIHZvaWQgZW5hYmxl
RW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpOwogCi0gICAgdm9pZCBzdXBwb3J0c1ZQ
OChib29sIHZhbHVlKSB7IG1fc3VwcG9ydHNWUDggPSB2YWx1ZTsgfQorICAgIHZvaWQgc3VwcG9y
dHNIMjY1KGJvb2wgdmFsdWUpIHsgbV9zdXBwb3J0c0gyNjUgPSB2YWx1ZTsgfQogICAgIHZpcnR1
YWwgdm9pZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxv
Y2FsaG9zdENvbm5lY3Rpb25zID0gdHJ1ZTsgfQogCiAgICAgcnRjOjpSVENDZXJ0aWZpY2F0ZUdl
bmVyYXRvciYgY2VydGlmaWNhdGVHZW5lcmF0b3IoKTsKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcm90
ZWN0ZWQ6CiAKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZh
Y3RvcnlJbnRlcmZhY2U+IG1fZmFjdG9yeTsKICAgICBib29sIG1fZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zIHsgZmFsc2UgfTsKLSAgICBib29sIG1fc3VwcG9ydHNWUDggeyBmYWxzZSB9
OworICAgIGJvb2wgbV9zdXBwb3J0c0gyNjUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVM
b2dnaW5nIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9OwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKaW5kZXggNGU1
NTM4OGVhZGUxMDk4YWU5MWJmYjQ5NjZkYTQ0Zjg5NmM4YTM0Mi4uYzczNzE3NDRmNzhlODZmZDUz
NGFhOTkyYjI4NWQ1OWQ1Y2YxMTZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlckNvY29hLmNwcApAQCAtNTQsNyArNTQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRj
OjpWaWRlb0RlY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNv
ZAogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIGNvZGVjU3VwcG9y
dCA9IG1fc3VwcG9ydHNWUDggPyB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQ
OCA6IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0OworICAgIGF1dG8gY29kZWNTdXBw
b3J0ID0gbV9zdXBwb3J0c0gyNjUgPyB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NFZQ
OEFuZEgyNjUgOiB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQODsKICAgICBy
ZXR1cm4gd2VicnRjOjpjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQpOwog
fQogCkBAIC02Miw3ICs2Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2Rl
ckZhY3Rvcnk+IExpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZUVuY29kCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGF1dG8gY29kZWNTdXBwb3J0ID0gbV9zdXBwb3J0
c1ZQOCA/IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4IDogd2VicnRjOjpX
ZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjQ7CisgICAgYXV0byBjb2RlY1N1cHBvcnQgPSBtX3N1cHBv
cnRzSDI2NSA/IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0VlA4QW5kSDI2NSA6IHdl
YnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4OwogICAgIHJldHVybiB3ZWJydGM6
OmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KGNvZGVjU3VwcG9ydCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA5NDVkZGZkNTc2ZDI2ZmUzYjgyNzhjZDI2OTBl
YzBmYTRlOGY1ZWY2Li42ODVjZDM1MGU2MjU2OGNkZjY5ZDg2NjQyYmIyYWM5NDJkODBmMjgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01NTMsNyArNTUzLDcgQEAgdm9p
ZCBJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAgICBhdXRv
JiBydGNQcm92aWRlciA9IHBhZ2UubGliV2ViUlRDUHJvdmlkZXIoKTsKICAgICBXZWJDb3JlOjp1
c2VSZWFsUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KHJ0Y1Byb3ZpZGVyKTsKICAgICBydGNQcm92
aWRlci5kaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKTsKLSAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlJUQ1ZQOENvZGVjRW5hYmxlZCh0cnVl
KTsKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlJU
Q0gyNjVDb2RlY0VuYWJsZWQodHJ1ZSk7CiAgICAgcGFnZS5zZXR0aW5ncygpLnNldFdlYlJUQ0Vu
Y3J5cHRpb25FbmFibGVkKHRydWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCmluZGV4IGM2ZmRkYjYxMjBmMmM5NThiMzAyMTU1MjIyMGI4OTkxZmFi
MzIyZWYuLmMwZTQzZTBlYjAwMmE0MzBiNTVmMDExY2QzMDQ3NjA2NmM3MmM2ODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtNTgxLDE0ICs1ODEsMTQgQEAg
SW50ZXJydXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRW5hYmxlZDoKICAgd2ViY29yZUJp
bmRpbmc6IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCi1XZWJSVENWUDhDb2RlY0VuYWJsZWQ6CitXZWJSVENIMjY1Q29kZWNFbmFibGVk
OgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogdHJ1ZQogICB3ZWJjb3JlQmluZGluZzog
UnVudGltZUVuYWJsZWRGZWF0dXJlcwogICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQotICBo
dW1hblJlYWRhYmxlTmFtZTogIldlYlJUQyBWUDggY29kZWMiCi0gIGh1bWFuUmVhZGFibGVEZXNj
cmlwdGlvbjogIkVuYWJsZSBXZWJSVEMgVlA4IGNvZGVjIgotICBjYXRlZ29yeTogaW50ZXJuYWwK
KyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJXZWJSVEMgSDI2NSBjb2RlYyIKKyAgaHVtYW5SZWFkYWJs
ZURlc2NyaXB0aW9uOiAiRW5hYmxlIFdlYlJUQyBIMjY1IGNvZGVjIgorICBjYXRlZ29yeTogZXhw
ZXJpbWVudGFsCiAKIFdlYlJUQ1BsYXRmb3JtQ29kZWNzSW5HUFVQcm9jZXNzRW5hYmxlZDoKICAg
dHlwZTogYm9vbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCAyMjQzODRhMmIzNWNmMTQ0YzBmM2U3NjIzY2ZkYjQ3MWI1YmFjODkyLi40M2I4MDc5
YmYyOTM1NDg2Njk1ODUzNzJhY2RjM2E0NGM4OWE1ZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzY2Miw2ICszNjYyLDEwIEBAIHZvaWQg
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3Rv
cmUpCiAgICAgaWYgKG1fZHJhd2luZ0FyZWEpCiAgICAgICAgIG1fZHJhd2luZ0FyZWEtPnVwZGF0
ZVByZWZlcmVuY2VzKHN0b3JlKTsKIAorI2lmIFVTRShMSUJXRUJSVEMpCisgICAgbV9wYWdlLT5s
aWJXZWJSVENQcm92aWRlcigpLnN1cHBvcnRzSDI2NShSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLndlYlJUQ0gyNjVDb2RlY0VuYWJsZWQoKSk7CisjZW5kaWYKKwogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAvLyBGSVhNRTogdXNlR1BVUHJvY2Vzc0Zvck1lZGlh
IHNob3VsZCBiZSBhIFJ1bnRpbWVFbmFibGVkRmVhdHVyZSBzaW5jZSBpdCdzIGdsb2JhbC4KICAg
ICBzdGF0aWNfY2FzdDxXZWJNZWRpYVN0cmF0ZWd5Jj4ocGxhdGZvcm1TdHJhdGVnaWVzKCktPm1l
ZGlhU3RyYXRlZ3koKSkuc2V0VXNlR1BVUHJvY2VzcyhzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9y
TWVkaWEoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggZmQyNTNmNjViNjVlN2MzMmNiMDFjOGNlY2E1ZTY4Nzc1OTIyMzkw
Zi4uNjM5MDQwYmQ0ZDk3MzQwMzJjYmFjNGQ3NzljMzI2YzFmMjk4YTY3MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDIwLTA0LTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBXZWJSVEMgSEVWQworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MjgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHdlYnJ0Yy9oMjY1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2VicnRjL2gyNjUuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQtMDEgIHlvdWVubiBmYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1bXAgbGlid2VicnRjIHRvIE04MgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggZmVmYmU5MDhlM2Y0ZWU1MGU4YjQxZTQ4N2M0OTdmOTM1OGZlN2M4MC4u
ZWIxNjkzM2I4ZmE4N2M1NTNlMzlkM2Q0ZjU2ZDFiOTNiYzZlMzFjNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0xNzc4LDYgKzE3NzgsOSBAQCB3ZWJraXQub3JnL2IvMTQ2MTgyIGVkaXRpbmcvc2Vs
ZWN0aW9uL2xlYWstZG9jdW1lbnQtd2l0aC1zZWxlY3Rpb24taW5zaWRlLmh0bWwgWwogIyBNZWRp
YSBTZXNzaW9ucyBpcyBub3QgeWV0IGVuYWJsZWQgYnkgZGVmYXVsdDogRU5BQkxFKE1FRElBX1NF
U1NJT04pCiBtZWRpYS9zZXNzaW9uIFsgU2tpcCBdCiAKKyMgRXhwZXJpbWVudGFsIEgyNjUgc3Vw
cG9ydC4KK3dlYnJ0Yy9oMjY1Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCiB3ZWJydGMvc2ltdWxj
YXN0LWgyNjQuaHRtbCBbIFNsb3cgXQogCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzLmh0dHBzLmh0
bWwgWyBTbG93IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
Zjk4M2JhZjliMzNlMDIxOTYxOTQ3ZTgzYjZhM2E2ZGVmZWRlYzMzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAK
K1ZpZGVvIHNob3VsZCBiZSBydW5uaW5nLCBnbyB0byBibGFjayBhbmQgcnVubmluZy4KK0ZvbGxv
d2luZywgc2hvdWxkIGJlIGEgc25hcHNob3Qgb2YgdGhlIHZpZGVvLCBhIGJsYWNrIGZyYW1lIGFu
ZCBhIHNuYXBzaG90IG9mIHRoZSB2aWRlby4KKyAgCisKK1BBU1MgSDI2NSBpbiBnZXRDYXBhYmls
aXRpZXMgCitQQVNTIFZlcmlmeSBIMjY1IGFjdGl2YXRpb24gCitQQVNTIFNldHRpbmcgdmlkZW8g
ZXhjaGFuZ2UgCitQQVNTIEVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29ubmVjdGVkIAor
UEFTUyBUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIAorUEFTUyBU
cmFjayBpcyBkaXNhYmxlZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrIAorUEFTUyBUcmFjayBpcyBl
bmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU3ZTFjNDEyMDg0NGFlOTRlNjg1MzRlY2M2ZjM4ZTY3YTExNjY2Y2MKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS5odG1sCkBAIC0wLDAgKzEsOTQg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlRlc3RpbmcgbXV0aW5nIHZpZGVvPC90aXRs
ZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdj5W
aWRlbyBzaG91bGQgYmUgcnVubmluZywgZ28gdG8gYmxhY2sgYW5kIHJ1bm5pbmcuPC9kaXY+Cisg
ICAgICAgIDxkaXY+Rm9sbG93aW5nLCBzaG91bGQgYmUgYSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8s
IGEgYmxhY2sgZnJhbWUgYW5kIGEgc25hcHNob3Qgb2YgdGhlIHZpZGVvLjwvZGl2PgorICAgICAg
ICA8dmlkZW8gaWQ9InZpZGVvIiBhdXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWln
aHQ9IjI0MCI+PC92aWRlbz4KKyAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMSIgd2lkdGg9IjMy
MCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMyIiB3
aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNh
bnZhczMiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPHNjcmlw
dCBzcmMgPSJyb3V0aW5lcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+Cit2YXIgaGFz
SDI2NSA9IGZhbHNlOwordGVzdCgoKSA9PiB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xlYXJQZWVyQ29ubmVjdGlvbkZhY3RvcnkoKTsKKwor
ICAgIGNvbnN0IGNvZGVjcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoInZpZGVvIiku
Y29kZWNzOworICAgIGhhc0gyNjUgPSBjb2RlY3Muc29tZSgoY29kZWMpID0+IHsgcmV0dXJuIGNv
ZGVjLm1pbWVUeXBlID09ICJ2aWRlby9IMjY1IjsgfSk7CisgICAgYXNzZXJ0X3RydWUoaGFzSDI2
NSk7Cit9LCAiSDI2NSBpbiBnZXRDYXBhYmlsaXRpZXMiKTsKKworaWYgKGhhc0gyNjUpIHsKKyAg
ICBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICAgICAgcGMuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7
CisgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAg
ICAgICAgcGMuY2xvc2UoKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoZGVzY3JpcHRpb24uc2RwLmlu
ZGV4T2YoIkgyNjUiKSAhPT0gLTEsICJIMjY1IGNvZGVjIGlzIGluIHRoZSBTRFAiKTsKKyAgICB9
LCAiVmVyaWZ5IEgyNjUgYWN0aXZhdGlvbiIpCisgCisgICAgdmFyIHRyYWNrOworICAgIHZhciBy
ZW1vdGVUcmFjazsKKyAgICB2YXIgcmVjZWl2aW5nQ29ubmVjdGlvbjsKKyAgICBwcm9taXNlX3Rl
c3QoKHRlc3QpID0+IHsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0
VXNlck1lZGlhKHt2aWRlbzoge3dpZHRoOiAzMjAsIGhlaWdodDogMjQwLCBmYWNpbmdNb2RlOiAi
ZW52aXJvbm1lbnQifX0pLnRoZW4oKGxvY2FsU3RyZWFtKSA9PiB7CisgICAgICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgICAgIHRy
YWNrID0gbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKyAgICAKKyAgICAgICAgICAg
ICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOwor
ICAgICAgICAgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOworICAgICAgICAg
ICAgICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNrOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOwor
ICAgICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0sIHsgb2JzZXJ2ZU9mZmVy
IDogKG9mZmVyKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIG9mZmVyLnNkcCA9IHNldENvZGVj
KG9mZmVyLnNkcCwgIkgyNjUiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mZmVyOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBz
ZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgMjAwMCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfSkudGhlbigocmVtb3RlU3RyZWFtKSA9PiB7CisgICAgICAgICAg
ICB2aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07CisgICAgICAgICAgICByZXR1cm4gdmlk
ZW8ucGxheSgpOworICAgICAgICB9KTsKKyAgICB9LCAiU2V0dGluZyB2aWRlbyBleGNoYW5nZSIp
OworCisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgaWYgKHJlY2VpdmluZ0Nvbm5l
Y3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVjdGVkIikKKyAgICAgICAgICAgIHJldHVy
biBQcm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZl
LCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24ub25jb25uZWN0
aW9uc3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHJlY2VpdmluZ0Nv
bm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVjdGVkIikKKyAgICAgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQo
KCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCAyMDAwKTsKKyAgICAgICAgfSk7CisgICAg
fSwgIkVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29ubmVjdGVkIik7CisKKyAgICBwcm9t
aXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgcmV0dXJuIGNoZWNrVmlkZW9CbGFjayhmYWxz
ZSwgY2FudmFzMSwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91
bGQgbm90IGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAg
ICAgdHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAgICAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNr
KHRydWUsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVv
IHNob3VsZCBiZSBibGFjayIpOworCisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAg
ICAgIHRyYWNrLmVuYWJsZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNr
KGZhbHNlLCBjYW52YXMyLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZpZGVv
IHNob3VsZCBub3QgYmUgYmxhY2sgMiIpOworfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395257</attachid>
            <date>2020-04-02 03:12:35 -0700</date>
            <delta_ts>2020-04-02 05:05:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204283-20200402121230.patch</filename>
            <type>text/plain</type>
            <size>256373</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA0ZDU0MmMzNmQ1MjViZmUyNjk4NWZiYjQzOTY5NTU5OGY2OGY5MWMxLi5mMzgy
ZGUwODBhNDg5MTU1ZjgzYTliZWM3NjM4NjkwNWI5ZThhNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjYgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQg
Zm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgSDI2NSBwYWNrZXRpemF0aW9uL2RlcGFja2V0aXphdGlvbiBhbmQgT2JqQyBI
MjY1IGVuY29kZXIvZGVjb2Rlci4KKyAgICAgICAgU3VwcG9ydCBpcyBzd2l0Y2hhYmxlIHVzaW5n
IGEgYm9vbGVhbiBnaXZlbiB0byB0aGUgZGVjb2Rlci9lbmNvZGVyIGZhY3Rvcmllcy4KKworICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaDoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2M6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmg6CisgICAg
ICAgICh3ZWJydGM6OlZpZGVvQ29kZWNIMjY1OjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYzoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZp
Zy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5j
b2Rlcl9jb25maWcuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9i
dWlsZC5nbmk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jYWxsL3J0cF9wYXlsb2FkX3BhcmFt
cy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbjoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjOiBB
ZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29t
bW9uLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9wcHNfcGFyc2VyLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1v
bl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYzogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaDog
QWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zw
c19wYXJzZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVv
L2gyNjUvaDI2NV92cHNfcGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
bWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9t
ZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL2NyZWF0ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2Vy
LmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL2gyNjVfc3BzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKHdlYnJ0Yzo6SDI2NVNwc1Bh
cnNlcjo6d2lkdGgpOgorICAgICAgICAod2VicnRjOjpIMjY1U3BzUGFyc2VyOjpoZWlnaHQpOgor
ICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1h
dC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF9mb3JtYXRfaDI2NS5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaDogQWRkZWQuCisgICAgICAgICh3ZWJy
dGM6OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXQ6OlBhY2tldCk6CisgICAgICAgICh3ZWJydGM6
OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXRVbml0OjpQYWNrZXRVbml0KToKKyAgICAgICAgKHdl
YnJ0Yzo6VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1Ojp+VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1
KToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9z
ZW5kZXJfdmlkZW8uY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmg6IEFkZGVk
LgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9m
cmFtZS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gy
NjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaDogQWRkZWQu
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3Zp
ZGVvX2NvZGVjX2ludGVyZmFjZS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaDoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuY2M6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uY2M6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uaDoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4cGVyaW1lbnRzL21pbl92aWRlb19iaXRy
YXRlX2V4cGVyaW1lbnQuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFV0aWxpdGllcy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMubW06CisgICAgICAgICh3ZWJydGM6OmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0
b3J5KToKKyAgICAgICAgKHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkpOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmguCisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tOiBBZGRlZC4KKyAgICAg
ICAgKC1bUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXSk6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGluaXRX
aXRoSDI2NTpdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnkgc3Vw
cG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
IGNyZWF0ZURlY29kZXI6XSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lmg6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0Rl
ZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0Vu
Y29kZXJGYWN0b3J5IGluaXRXaXRoSDI2NTpdKToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRW
aWRlb0VuY29kZXJGYWN0b3J5IGNyZWF0ZUVuY29kZXI6XSk6CisgICAgICAgICgtW1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5IHN1cHBvcnRlZENvZGVjc10pOgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxl
dmVsSWQuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW06IEFkZGVkLgorICAgICAgICAq
IFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0Rl
Y29kZXJIMjY1Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5tbTogQWRkZWQuCisgICAgICAg
IChSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXM6OlJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyk6Cisg
ICAgICAgIChoMjY1RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKC1bUlRD
VmlkZW9EZWNvZGVySDI2NSBpbml0XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUg
ZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHN0YXJ0RGVjb2RlV2l0
aE51bWJlck9mQ29yZXM6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVjb2Rl
Om1pc3NpbmdGcmFtZXM6Y29kZWNTcGVjaWZpY0luZm86cmVuZGVyVGltZU1zOl0pOgorICAgICAg
ICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHNldENhbGxiYWNrOl0pOgorICAgICAgICAoLVtSVENW
aWRlb0RlY29kZXJIMjY1IHJlbGVhc2VEZWNvZGVyXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVj
b2RlckgyNjUgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJIMjY1IGNvbmZpZ3VyZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgc2V0VmlkZW9Gb3JtYXQ6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2Rl
ckgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBpbml0V2l0aENvZGVjSW5mbzpdKToKKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2Rlckgy
NjUgc3RhcnRFbmNvZGVXaXRoU2V0dGluZ3M6bnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBlbmNvZGU6Y29kZWNTcGVjaWZpY0luZm86ZnJhbWVUeXBlczpd
KToKKyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRDYWxsYmFjazpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRCaXRyYXRlOmZyYW1lcmF0ZTpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSByZWxlYXNlRW5jb2Rlcl0pOgorICAgICAgICAoLVtS
VENWaWRlb0VuY29kZXJIMjY1IHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl0pOgor
ICAgICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAg
ICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IHNldEJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgc2V0RW5jb2RlckJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgZnJhbWVXYXNFbmNvZGVkOmZsYWdzOnNhbXBsZUJ1ZmZlcjp3
aWR0aDpoZWlnaHQ6cmVuZGVyVGltZU1zOnRpbWVzdGFtcDpyb3RhdGlvbjpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzY2FsaW5nU2V0dGluZ3NdKToKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5j
YzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvbmFsdV9yZXdyaXRlci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbToKKyAgICAgICAgKHdlYnJ0Yzo6
T2JqQ1ZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0
b3J5Lm1tOgorICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRl
VmlkZW9FbmNvZGVyKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19z
dHJlYW1fcmVjZWl2ZXIuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlk
ZW9fc3RyZWFtX3JlY2VpdmVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9zZW5k
X3N0YXRpc3RpY3NfcHJveHkuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby92aWRl
b19yZWNlaXZlX3N0cmVhbS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVv
X3N0cmVhbV9lbmNvZGVyLmNjOgorICAgICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDIwLTA0LTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4gYW5kIFZpY3RvciBNLiBKYXF1ZXogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBC
dW1wIGxpYndlYnJ0YyB0byBNODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkODczNWE4ZGMzMDQ4YTAzMzY3Nzkw
MTUzMTc1MDFlOTdiMzdlMjNkLi5mMDMzZmU3MjExZWU4NTQ5YjM3NDJiMWQyOTI5Nzg1ZWZiNmJm
YThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9y
IFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBydW50aW1lIGZsYWcgZm9yIEgyNjUgaW4gbGlldSBvZiBWUDggYW5kIHBpcGUg
aXQgdG8gbGlid2VicnRjIGZhY3Rvcmllcy4KKyAgICAgICAgVGVzdDogd2VicnRjL2gyNjUuaHRt
bAorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fZGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlcik6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3
ZWJSVENIMjY1Q29kZWNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29h
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURl
Y29kZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6
OmNyZWF0ZUVuY29kZXJGYWN0b3J5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgor
CiAyMDIwLTA0LTAxICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgogCiAgICAg
ICAgIE5vdGlmeSBhY2Nlc3NpYmlsaXR5IHdoZW4gYSBub2RlIGlzIHJlbW92ZWQgZnJvbSBpdHMg
YW5jZXN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyNmNhYTU5YmY5ZGVlMGE5NDRmMGUwMGEyNDJhOGZmNzgw
NjExMGMuLmU1MmNmYTYyMmUyMWY4ZWY0YzgxYmIwZGY3YTk2N2QwNzhkZTEyMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIFdlYlJUQyBIRVZDCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyODMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgVlA4
IHJ1bnRpbWUgZmxhZyBhbmQgYWRkIGEgSDM2NSBydW50aW1lIGZsYWcgaW5zdGVhZC4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMpOgorCiAyMDIwLTA0LTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVwcmVjYXRlIFdLV2Vic2l0ZURhdGFTdG9yZS5faW5k
ZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFr
ZUxpc3RzLnR4dAppbmRleCAxZTZkNDhhNjRmZjhkN2UyMDI4ODA5ZGQ3ZGU4YjRiNjE1N2QwMmQx
Li43MGNjYzliZDBlMWQ4ZDU3Y2JmZGM1ZmVhNzJmZTlhYWU1MjAzODY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMudHh0CkBAIC0xNDA0LDYgKzE0MDQsNyBAQCB0
YXJnZXRfY29tcGlsZV9vcHRpb25zKHdlYnJ0YyBQUklWQVRFCiAKIHRhcmdldF9jb21waWxlX2Rl
ZmluaXRpb25zKHdlYnJ0YyBQUklWQVRFCiAgIE9QRU5TU0xfTk9fQVNNCisgIERJU0FCTEVfSDI2
NQogICBEWU5BTUlDX0FOTk9UQVRJT05TX0VOQUJMRUQ9MQogICBFWFBBVF9SRUxBVElWRV9QQVRI
CiAgIEhBVkVfTFJJTlQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5o
CmluZGV4IDEyZGNmYWMxYjlhNjg2ODc5MjBhZWJjODA0NWI2MmM1NzQ0OTJiZTcuLmM0ZTQ1ZGJk
YzBhNDk5MjcxMTNiMGU1MTAxZTU0Y2VlZTkwNTdhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBl
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3Zp
ZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaApAQCAtMjIsNiArMjIsOSBAQCBlbnVtIFZpZGVvQ29kZWNU
eXBlIHsKICAga1ZpZGVvQ29kZWNWUDksCiAgIGtWaWRlb0NvZGVjQVYxLAogICBrVmlkZW9Db2Rl
Y0gyNjQsCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBrVmlkZW9Db2RlY0gyNjUsCisjZW5kaWYK
ICAga1ZpZGVvQ29kZWNNdWx0aXBsZXgsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVj
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVv
X2NvZGVjcy92aWRlb19jb2RlYy5jYwppbmRleCBkMDMwODJiOTFlMzhjNDdiNGQ0YjE4MGYwZDIz
NThjMzkxMzFkMzk5Li41NGY3ODkwMDQ2NjJmODRjZjE1MTBhOTFjM2Y1NWU0ZDA3Mjk0NTFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkv
dmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2MKQEAgLTI1
LDYgKzI1LDkgQEAgY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lVnA5W10gPSAiVlA5IjsKIC8v
IGZyb3plbi4KIGNvbnN0ZXhwciBjaGFyIGtQYXlsb2FkTmFtZUF2MVtdID0gIkFWMVgiOwogY29u
c3RleHByIGNoYXIga1BheWxvYWROYW1lSDI2NFtdID0gIkgyNjQiOworI2lmbmRlZiBESVNBQkxF
X0gyNjUKK2NvbnN0ZXhwciBjaGFyIGtQYXlsb2FkTmFtZUgyNjVbXSA9ICJIMjY1IjsKKyNlbmRp
ZgogY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lR2VuZXJpY1tdID0gIkdlbmVyaWMiOwogY29u
c3RleHByIGNoYXIga1BheWxvYWROYW1lTXVsdGlwbGV4W10gPSAiTXVsdGlwbGV4IjsKIH0gIC8v
IG5hbWVzcGFjZQpAQCAtNTYsNiArNTksMTcgQEAgYm9vbCBWaWRlb0NvZGVjSDI2NDo6b3BlcmF0
b3I9PShjb25zdCBWaWRlb0NvZGVjSDI2NCYgb3RoZXIpIGNvbnN0IHsKICAgICAgICAgICBudW1i
ZXJPZlRlbXBvcmFsTGF5ZXJzID09IG90aGVyLm51bWJlck9mVGVtcG9yYWxMYXllcnMpOwogfQog
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorYm9vbCBWaWRlb0NvZGVjSDI2NTo6b3BlcmF0b3I9PShj
b25zdCBWaWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsKKyAgcmV0dXJuIChmcmFtZURyb3Bw
aW5nT24gPT0gb3RoZXIuZnJhbWVEcm9wcGluZ09uICYmCisgICAgICAgICAga2V5RnJhbWVJbnRl
cnZhbCA9PSBvdGhlci5rZXlGcmFtZUludGVydmFsICYmCisgICAgICAgICAgdnBzTGVuID09IG90
aGVyLnZwc0xlbiAmJiBzcHNMZW4gPT0gb3RoZXIuc3BzTGVuICYmCisgICAgICAgICAgcHBzTGVu
ID09IG90aGVyLnBwc0xlbiAmJgorICAgICAgICAgIChzcHNMZW4gPT0gMCB8fCBtZW1jbXAoc3Bz
RGF0YSwgb3RoZXIuc3BzRGF0YSwgc3BzTGVuKSA9PSAwKSAmJgorICAgICAgICAgIChwcHNMZW4g
PT0gMCB8fCBtZW1jbXAocHBzRGF0YSwgb3RoZXIucHBzRGF0YSwgcHBzTGVuKSA9PSAwKSk7Cit9
CisjZW5kaWYKKwogYm9vbCBTcGF0aWFsTGF5ZXI6Om9wZXJhdG9yPT0oY29uc3QgU3BhdGlhbExh
eWVyJiBvdGhlcikgY29uc3QgewogICByZXR1cm4gKHdpZHRoID09IG90aGVyLndpZHRoICYmIGhl
aWdodCA9PSBvdGhlci5oZWlnaHQgJiYKICAgICAgICAgICBtYXhGcmFtZXJhdGUgPT0gb3RoZXIu
bWF4RnJhbWVyYXRlICYmCkBAIC0xMTUsNiArMTI5LDE4IEBAIGNvbnN0IFZpZGVvQ29kZWNIMjY0
JiBWaWRlb0NvZGVjOjpIMjY0KCkgY29uc3QgewogICByZXR1cm4gY29kZWNfc3BlY2lmaWNfLkgy
NjQ7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitWaWRlb0NvZGVjSDI2NSogVmlkZW9Db2Rl
Yzo6SDI2NSgpIHsKKyAgUlRDX0RDSEVDS19FUShjb2RlY1R5cGUsIGtWaWRlb0NvZGVjSDI2NSk7
CisgIHJldHVybiAmY29kZWNfc3BlY2lmaWNfLkgyNjU7Cit9CisKK2NvbnN0IFZpZGVvQ29kZWNI
MjY1JiBWaWRlb0NvZGVjOjpIMjY1KCkgY29uc3QgeworICBSVENfRENIRUNLX0VRKGNvZGVjVHlw
ZSwga1ZpZGVvQ29kZWNIMjY1KTsKKyAgcmV0dXJuIGNvZGVjX3NwZWNpZmljXy5IMjY1OworfQor
I2VuZGlmCisKIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5bG9hZFN0cmluZyhWaWRlb0NvZGVj
VHlwZSB0eXBlKSB7CiAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6
CkBAIC0xMjUsNiArMTUxLDEwIEBAIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5bG9hZFN0cmlu
ZyhWaWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgICAgICByZXR1cm4ga1BheWxvYWROYW1lQXYxOwog
ICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZUgyNjQ7
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAgICAg
cmV0dXJuIGtQYXlsb2FkTmFtZUgyNjU7CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjTXVs
dGlwbGV4OgogICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZU11bHRpcGxleDsKICAgICBjYXNlIGtW
aWRlb0NvZGVjR2VuZXJpYzoKQEAgLTE0MSw2ICsxNzEsMTAgQEAgVmlkZW9Db2RlY1R5cGUgUGF5
bG9hZFN0cmluZ1RvQ29kZWNUeXBlKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKSB7CiAgICAgcmV0
dXJuIGtWaWRlb0NvZGVjQVYxOwogICBpZiAoYWJzbDo6RXF1YWxzSWdub3JlQ2FzZShuYW1lLCBr
UGF5bG9hZE5hbWVIMjY0KSkKICAgICByZXR1cm4ga1ZpZGVvQ29kZWNIMjY0OworI2lmbmRlZiBE
SVNBQkxFX0gyNjUKKyAgaWYgKGFic2w6OkVxdWFsc0lnbm9yZUNhc2UobmFtZSwga1BheWxvYWRO
YW1lSDI2NSkpCisgICAgcmV0dXJuIGtWaWRlb0NvZGVjSDI2NTsKKyNlbmRpZgogICBpZiAoYWJz
bDo6RXF1YWxzSWdub3JlQ2FzZShuYW1lLCBrUGF5bG9hZE5hbWVNdWx0aXBsZXgpKQogICAgIHJl
dHVybiBrVmlkZW9Db2RlY011bHRpcGxleDsKICAgcmV0dXJuIGtWaWRlb0NvZGVjR2VuZXJpYzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Fw
aS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaAppbmRleCAzMzBi
YmJjZTE5OTA1NDBlNzQ1ZDQ3Y2Y2ZWM2NTdkZTI5NDM0Y2I3Li43NDgzYWZkZmFmNzlkODcyOGM4
YzIzODY5NTViN2Q3NjYxZDVhOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmgKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19jb2RlYy5oCkBAIC04NCw2ICs4NCwyMyBAQCBzdHJ1Y3QgVmlkZW9Db2RlY0gyNjQg
ewogICB1aW50OF90IG51bWJlck9mVGVtcG9yYWxMYXllcnM7CiB9OwogCisjaWZuZGVmIERJU0FC
TEVfSDI2NQorc3RydWN0IFZpZGVvQ29kZWNIMjY1IHsKKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFZpZGVvQ29kZWNIMjY1JiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBW
aWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhl
cik7CisgIH0KKyAgYm9vbCBmcmFtZURyb3BwaW5nT247CisgIGludCBrZXlGcmFtZUludGVydmFs
OworICBjb25zdCB1aW50OF90KiB2cHNEYXRhOworICBzaXplX3QgdnBzTGVuOworICBjb25zdCB1
aW50OF90KiBzcHNEYXRhOworICBzaXplX3Qgc3BzTGVuOworICBjb25zdCB1aW50OF90KiBwcHNE
YXRhOworICBzaXplX3QgcHBzTGVuOworfTsKKyNlbmRpZgorCiAvLyBUcmFuc2xhdGVzIGZyb20g
bmFtZSBvZiBjb2RlYyB0byBjb2RlYyB0eXBlIGFuZCB2aWNlIHZlcnNhLgogUlRDX0VYUE9SVCBj
b25zdCBjaGFyKiBDb2RlY1R5cGVUb1BheWxvYWRTdHJpbmcoVmlkZW9Db2RlY1R5cGUgdHlwZSk7
CiBSVENfRVhQT1JUIFZpZGVvQ29kZWNUeXBlIFBheWxvYWRTdHJpbmdUb0NvZGVjVHlwZShjb25z
dCBzdGQ6OnN0cmluZyYgbmFtZSk7CkBAIC05Miw2ICsxMDksOSBAQCB1bmlvbiBWaWRlb0NvZGVj
VW5pb24gewogICBWaWRlb0NvZGVjVlA4IFZQODsKICAgVmlkZW9Db2RlY1ZQOSBWUDk7CiAgIFZp
ZGVvQ29kZWNIMjY0IEgyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBWaWRlb0NvZGVjSDI2
NSBIMjY1OworI2VuZGlmCiB9OwogCiBlbnVtIGNsYXNzIFZpZGVvQ29kZWNNb2RlIHsga1JlYWx0
aW1lVmlkZW8sIGtTY3JlZW5zaGFyaW5nIH07CkBAIC0xNTksNiArMTc5LDEwIEBAIGNsYXNzIFJU
Q19FWFBPUlQgVmlkZW9Db2RlYyB7CiAgIGNvbnN0IFZpZGVvQ29kZWNWUDkmIFZQOSgpIGNvbnN0
OwogICBWaWRlb0NvZGVjSDI2NCogSDI2NCgpOwogICBjb25zdCBWaWRlb0NvZGVjSDI2NCYgSDI2
NCgpIGNvbnN0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgVmlkZW9Db2RlY0gyNjUqIEgyNjUo
KTsKKyAgY29uc3QgVmlkZW9Db2RlY0gyNjUmIEgyNjUoKSBjb25zdDsKKyNlbmRpZgogCiAgcHJp
dmF0ZToKICAgLy8gVE9ETyhodGEpOiBDb25zaWRlciByZXBsYWNpbmcgdGhlIHVuaW9uIHdpdGgg
YSBwb2ludGVyIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2MgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVv
X2VuY29kZXIuY2MKaW5kZXggNDQyN2Q2YzFmMTYxMjhkNGE0N2JlMmJkYzEyNWZlZDk3NDQxMDUx
YS4uYjY2YTRmNDFkMmViNjUyZWQ4ZDM4NzRiOTllNzI4MTQ5ZjUzMzVhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19lbmNvZGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYwpAQCAtNjAsNiArNjAs
MjMgQEAgVmlkZW9Db2RlY0gyNjQgVmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0SDI2NFNldHRpbmdz
KCkgewogICByZXR1cm4gaDI2NF9zZXR0aW5nczsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUK
K1ZpZGVvQ29kZWNIMjY1IFZpZGVvRW5jb2Rlcjo6R2V0RGVmYXVsdEgyNjVTZXR0aW5ncygpIHsK
KyAgVmlkZW9Db2RlY0gyNjUgaDI2NV9zZXR0aW5nczsKKyAgbWVtc2V0KCZoMjY1X3NldHRpbmdz
LCAwLCBzaXplb2YoaDI2NV9zZXR0aW5ncykpOworCisgIC8vIGgyNjVfc2V0dGluZ3MucHJvZmls
ZSA9IGtQcm9maWxlQmFzZTsKKyAgaDI2NV9zZXR0aW5ncy5mcmFtZURyb3BwaW5nT24gPSB0cnVl
OworICBoMjY1X3NldHRpbmdzLmtleUZyYW1lSW50ZXJ2YWwgPSAzMDAwOworICBoMjY1X3NldHRp
bmdzLnNwc0RhdGEgPSBudWxscHRyOworICBoMjY1X3NldHRpbmdzLnNwc0xlbiA9IDA7CisgIGgy
NjVfc2V0dGluZ3MucHBzRGF0YSA9IG51bGxwdHI7CisgIGgyNjVfc2V0dGluZ3MucHBzTGVuID0g
MDsKKworICByZXR1cm4gaDI2NV9zZXR0aW5nczsKK30KKyNlbmRpZgorCiBWaWRlb0VuY29kZXI6
OlNjYWxpbmdTZXR0aW5nczo6U2NhbGluZ1NldHRpbmdzKCkgPSBkZWZhdWx0OwogCiBWaWRlb0Vu
Y29kZXI6OlNjYWxpbmdTZXR0aW5nczo6U2NhbGluZ1NldHRpbmdzKEtPZmYpIDogU2NhbGluZ1Nl
dHRpbmdzKCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNv
ZGVyLmgKaW5kZXggMDY0ZGM4ZmZiNTExM2I4NDYzZWZkZWU4YTM5ZWI1NjJlZTgzY2U5Mi4uY2E3
YTJkOGY5NWFlYmQ2OTYwYzAwNDBhMGNkZjQ4OWEwYTU2OGI2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRl
b19lbmNvZGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmgKQEAgLTMyMCw2ICszMjAsOSBAQCBj
bGFzcyBSVENfRVhQT1JUIFZpZGVvRW5jb2RlciB7CiAgIHN0YXRpYyBWaWRlb0NvZGVjVlA4IEdl
dERlZmF1bHRWcDhTZXR0aW5ncygpOwogICBzdGF0aWMgVmlkZW9Db2RlY1ZQOSBHZXREZWZhdWx0
VnA5U2V0dGluZ3MoKTsKICAgc3RhdGljIFZpZGVvQ29kZWNIMjY0IEdldERlZmF1bHRIMjY0U2V0
dGluZ3MoKTsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0YXRpYyBWaWRlb0NvZGVjSDI2NSBH
ZXREZWZhdWx0SDI2NVNldHRpbmdzKCk7CisjZW5kaWYKIAogICB2aXJ0dWFsIH5WaWRlb0VuY29k
ZXIoKSB7fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRl
b19lbmNvZGVyX2NvbmZpZy5jYwppbmRleCA2ZWZjYmYyYmRkYjcyMTIzZjFkYjZjMmUwMDMwMWM3
NTI5NDIzMDNkLi4wMThlOTNiZWI5MTk2NzBmZmZhOTNlMDhjZWMyMjcxYTgzMGFkNGUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlk
ZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9j
b25maWcuY2MKQEAgLTkzLDYgKzkzLDEwIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNv
ZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbEVuY29kZXJTcGVjaWZpY1NldHRpbmdzKAogICAgIEZp
bGxWaWRlb0NvZGVjVnA4KGNvZGVjLT5WUDgoKSk7CiAgIH0gZWxzZSBpZiAoY29kZWMtPmNvZGVj
VHlwZSA9PSBrVmlkZW9Db2RlY1ZQOSkgewogICAgIEZpbGxWaWRlb0NvZGVjVnA5KGNvZGVjLT5W
UDkoKSk7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB9IGVsc2UgaWYgKGNvZGVjLT5jb2RlY1R5
cGUgPT0ga1ZpZGVvQ29kZWNIMjY1KSB7CisgICAgRmlsbFZpZGVvQ29kZWNIMjY1KGNvZGVjLT5I
MjY1KCkpOworI2VuZGlmCiAgIH0gZWxzZSB7CiAgICAgUlRDX05PVFJFQUNIRUQoKSA8PCAiRW5j
b2RlciBzcGVjaWZpY3Mgc2V0L3VzZWQgZm9yIHVua25vd24gY29kZWMgdHlwZS4iOwogICB9CkBA
IC0xMDMsNiArMTA3LDEzIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNvZGVyU3BlY2lm
aWNTZXR0aW5nczo6RmlsbFZpZGVvQ29kZWNIMjY0KAogICBSVENfTk9UUkVBQ0hFRCgpOwogfQog
CisjaWZuZGVmIERJU0FCTEVfSDI2NQordm9pZCBWaWRlb0VuY29kZXJDb25maWc6OkVuY29kZXJT
cGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjUoCisgICAgVmlkZW9Db2RlY0gyNjUq
IGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAgUlRDX05PVFJFQUNIRUQoKTsKK30KKyNlbmRpZgor
CiB2b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OkZpbGxW
aWRlb0NvZGVjVnA4KAogICAgIFZpZGVvQ29kZWNWUDgqIHZwOF9zZXR0aW5ncykgY29uc3Qgewog
ICBSVENfTk9UUkVBQ0hFRCgpOwpAQCAtMTIyLDYgKzEzMywxNyBAQCB2b2lkIFZpZGVvRW5jb2Rl
ckNvbmZpZzo6SDI2NEVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjQo
CiAgICpoMjY0X3NldHRpbmdzID0gc3BlY2lmaWNzXzsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gy
NjUKK1ZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpIMjY1
RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoCisgICAgY29uc3QgVmlkZW9Db2RlY0gyNjUmIHNwZWNp
ZmljcykKKyAgICA6IHNwZWNpZmljc18oc3BlY2lmaWNzKSB7fQorCit2b2lkIFZpZGVvRW5jb2Rl
ckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjUo
CisgICAgVmlkZW9Db2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAgKmgyNjVfc2V0
dGluZ3MgPSBzcGVjaWZpY3NfOworfQorI2VuZGlmCisKIFZpZGVvRW5jb2RlckNvbmZpZzo6VnA4
RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OlZwOEVuY29kZXJTcGVjaWZpY1NldHRpbmdzKAogICAg
IGNvbnN0IFZpZGVvQ29kZWNWUDgmIHNwZWNpZmljcykKICAgICA6IHNwZWNpZmljc18oc3BlY2lm
aWNzKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5oIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19l
bmNvZGVyX2NvbmZpZy5oCmluZGV4IGVmOGRiMTAwYTMyYTIwNWJiZDlkNmZlNzliMjUzNDJmOTMw
YzRlMDUuLmQ1NTk0ZjM2NjQxYTI1YzQzMDAwYTYzYzg1NjBkZjZhZjcwOGUyOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19j
b2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmln
LmgKQEAgLTg0LDYgKzg0LDkgQEAgY2xhc3MgVmlkZW9FbmNvZGVyQ29uZmlnIHsKICAgICB2aXJ0
dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDgoVmlkZW9Db2RlY1ZQOCogdnA4X3NldHRpbmdzKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDkoVmlkZW9Db2RlY1ZQOSog
dnA5X3NldHRpbmdzKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNIMjY0
KFZpZGVvQ29kZWNIMjY0KiBoMjY0X3NldHRpbmdzKSBjb25zdDsKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CisgICAgdmlydHVhbCB2b2lkIEZpbGxWaWRlb0NvZGVjSDI2NShWaWRlb0NvZGVjSDI2NSog
aDI2NV9zZXR0aW5ncykgY29uc3Q7CisjZW5kaWYKIAogICAgcHJpdmF0ZToKICAgICB+RW5jb2Rl
clNwZWNpZmljU2V0dGluZ3MoKSBvdmVycmlkZSB7fQpAQCAtOTksNiArMTAyLDE3IEBAIGNsYXNz
IFZpZGVvRW5jb2RlckNvbmZpZyB7CiAgICAgVmlkZW9Db2RlY0gyNjQgc3BlY2lmaWNzXzsKICAg
fTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgY2xhc3MgSDI2NUVuY29kZXJTcGVjaWZpY1Nl
dHRpbmdzIDogcHVibGljIEVuY29kZXJTcGVjaWZpY1NldHRpbmdzIHsKKyAgIHB1YmxpYzoKKyAg
ICBleHBsaWNpdCBIMjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3QgVmlkZW9Db2RlY0gy
NjUmIHNwZWNpZmljcyk7CisgICAgdm9pZCBGaWxsVmlkZW9Db2RlY0gyNjUoVmlkZW9Db2RlY0gy
NjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IG92ZXJyaWRlOworCisgICBwcml2YXRlOgorICAgIFZp
ZGVvQ29kZWNIMjY1IHNwZWNpZmljc187CisgIH07CisjZW5kaWYKKwogICBjbGFzcyBWcDhFbmNv
ZGVyU3BlY2lmaWNTZXR0aW5ncyA6IHB1YmxpYyBFbmNvZGVyU3BlY2lmaWNTZXR0aW5ncyB7CiAg
ICBwdWJsaWM6CiAgICAgZXhwbGljaXQgVnA4RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3Qg
VmlkZW9Db2RlY1ZQOCYgc3BlY2lmaWNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9idWlsZF9vdmVycmlkZXMvYnVp
bGQuZ25pCmluZGV4IDY2OTA0NGRiODFjYjIxODViZTM3NGIwYjEwMDI3MDkzYzU2ODNjMzUuLjYw
MjVjZGRkMDQ3ZTA5YjFkMGQyNWUwMzQxYTVmY2M1OTU5NzAyODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWls
ZC5nbmkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYnVp
bGRfb3ZlcnJpZGVzL2J1aWxkLmduaQpAQCAtMzUsNiArMzUsMTIgQEAgbGludF9zdXBwcmVzc2lv
bnNfZmlsZSA9ICIvL3Rvb2xzX3dlYnJ0Yy9hbmRyb2lkL3N1cHByZXNzaW9ucy54bWwiCiAjIHNv
IHdlIGp1c3QgaWdub3JlIHRoYXQgYXNzZXJ0LiBTZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNjQ4OTQ4
IGZvciBtb3JlIGluZm8uCiBpZ25vcmVfZWxmMzJfbGltaXRhdGlvbnMgPSB0cnVlCiAKK2lmIChp
c193aW4gfHwgaXNfaW9zIHx8IGlzX2FuZHJvaWQpIHsKKyAgcnRjX3VzZV9oMjY1ID0gdHJ1ZQor
fSBlbHNlIHsKKyAgcnRjX3VzZV9oMjY1ID0gZmFsc2UKK30KKwogIyBVc2UgYnVuZGxlZCBoZXJt
ZXRpYyBYY29kZSBpbnN0YWxsYXRpb24gbWFpbnRhaW50ZWQgYnkgQ2hyb21pdW0sCiAjIGV4Y2Vw
dCBmb3IgbG9jYWwgaU9TIGJ1aWxkcyB3aGVyZSBpdCdzIHVuc3VwcG9ydGVkLgogaWYgKGhvc3Rf
b3MgPT0gIm1hYyIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2NhbGwvcnRwX3BheWxvYWRfcGFyYW1zLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKaW5k
ZXggMzFjYjc0M2Q5ZDkzNjc2ZTFjNmVlNjg1MDliNjU1ODVhZjE0NGUwNC4uM2FhZGY4OWViODNl
ODY0NDBiZmZhZmE2MmU2NDNkMzM3MmE3MWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5
bG9hZF9wYXJhbXMuY2MKQEAgLTEwNSw2ICsxMDUsMTQgQEAgdm9pZCBQb3B1bGF0ZVJ0cFdpdGhD
b2RlY1NwZWNpZmljcyhjb25zdCBDb2RlY1NwZWNpZmljSW5mbyYgaW5mbywKICAgICAgIH0KICAg
ICAgIHJldHVybjsKICAgICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVv
Q29kZWNIMjY1OiB7CisgICAgICBhdXRvIGgyNjVfaGVhZGVyID0gcnRwLT52aWRlb190eXBlX2hl
YWRlci5lbXBsYWNlPFJUUFZpZGVvSGVhZGVySDI2NT4oKTsKKyAgICAgIGgyNjVfaGVhZGVyLnBh
Y2tldGl6YXRpb25fbW9kZSA9CisgICAgICAgICAgaW5mby5jb2RlY1NwZWNpZmljLkgyNjUucGFj
a2V0aXphdGlvbl9tb2RlOworICAgIH0KKyAgICByZXR1cm47CisjZW5kaWYKICAgICBjYXNlIGtW
aWRlb0NvZGVjTXVsdGlwbGV4OgogICAgIGNhc2Uga1ZpZGVvQ29kZWNHZW5lcmljOgogICAgICAg
cnRwLT5jb2RlYyA9IGtWaWRlb0NvZGVjR2VuZXJpYzsKQEAgLTMwMCw2ICszMDgsOSBAQCB2b2lk
IFJ0cFBheWxvYWRQYXJhbXM6OlNldEdlbmVyaWMoY29uc3QgQ29kZWNTcGVjaWZpY0luZm8qIGNv
ZGVjX3NwZWNpZmljX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgaXNfa2V5ZnJhbWUsIHJ0
cF92aWRlb19oZWFkZXIpOwogICAgICAgfQogICAgICAgcmV0dXJuOworI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyAgICBjYXNlIFZpZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY0gyNjU6CisjZW5kaWYK
ICAgICBjYXNlIFZpZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY011bHRpcGxleDoKICAgICAgIHJl
dHVybjsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduCmluZGV4IGRkZjRjMmQ0OTU5
YWVkZTQxOGQyNWQ1YzhlN2I4MGU1MzYwODM1MGIuLjdkNDg5NmVkN2NlODhiNTM0NWZkYWM4MDQ5
NGJmNWZmOWZlMjcwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vQlVJTEQuZ24KQEAgLTQxLDYg
KzQxLDE5IEBAIHJ0Y19saWJyYXJ5KCJjb21tb25fdmlkZW8iKSB7CiAgICAgInZpZGVvX3JlbmRl
cl9mcmFtZXMuaCIsCiAgIF0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyAr
PSBbCisgICAgICAiaDI2NS9oMjY1X2NvbW1vbi5jYyIsCisgICAgICAiaDI2NS9oMjY1X2NvbW1v
bi5oIiwKKyAgICAgICJoMjY1L2gyNjVfcHBzX3BhcnNlci5jYyIsCisgICAgICAiaDI2NS9oMjY1
X3Bwc19wYXJzZXIuaCIsCisgICAgICAiaDI2NS9oMjY1X3Nwc19wYXJzZXIuY2MiLAorICAgICAg
ImgyNjUvaDI2NV9zcHNfcGFyc2VyLmgiLAorICAgICAgImgyNjUvaDI2NV92cHNfcGFyc2VyLmNj
IiwKKyAgICAgICJoMjY1L2gyNjVfdnBzX3BhcnNlci5oIiwKKyAgICBdCisgIH0KKwogICBkZXBz
ID0gWwogICAgICIuLi9hcGk6c2NvcGVkX3JlZnB0ciIsCiAgICAgIi4uL2FwaS90YXNrX3F1ZXVl
IiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uY2MKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmIyY2FjMjI3NTlkOGJkYmJmZmJmMGY3MTRlOTE0N2U2NDIzYjYzZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nv
bW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICog
IENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9u
YWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBp
biB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5
CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9u
LmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworbmFtZXNwYWNlIEgyNjUgeworCitjb25zdCB1aW50
OF90IGtOYWx1VHlwZU1hc2sgPSAweDdFOworCitzdGQ6OnZlY3RvcjxOYWx1SW5kZXg+IEZpbmRO
YWx1SW5kaWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUpIHsKKyAgLy8gVGhpcyBpcyBzb3J0
YSBsaWtlIEJveWVyLU1vb3JlLCBidXQgd2l0aCBvbmx5IHRoZSBmaXJzdCBvcHRpbWl6YXRpb24g
c3RlcDoKKyAgLy8gZ2l2ZW4gYSAzLWJ5dGUgc2VxdWVuY2Ugd2UncmUgbG9va2luZyBhdCwgaWYg
dGhlIDNyZCBieXRlIGlzbid0IDEgb3IgMCwKKyAgLy8gc2tpcCBhaGVhZCB0byB0aGUgbmV4dCAz
LWJ5dGUgc2VxdWVuY2UuIDBzIGFuZCAxcyBhcmUgcmVsYXRpdmVseSByYXJlLCBzbworICAvLyB0
aGlzIHdpbGwgc2tpcCB0aGUgbWFqb3JpdHkgb2YgcmVhZHMvY2hlY2tzLgorICBzdGQ6OnZlY3Rv
cjxOYWx1SW5kZXg+IHNlcXVlbmNlczsKKyAgaWYgKGJ1ZmZlcl9zaXplIDwga05hbHVTaG9ydFN0
YXJ0U2VxdWVuY2VTaXplKQorICAgIHJldHVybiBzZXF1ZW5jZXM7CisKKyAgY29uc3Qgc2l6ZV90
IGVuZCA9IGJ1ZmZlcl9zaXplIC0ga05hbHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXplOworICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGVuZDspIHsKKyAgICBpZiAoYnVmZmVyW2kgKyAyXSA+IDEpIHsK
KyAgICAgIGkgKz0gMzsKKyAgICB9IGVsc2UgaWYgKGJ1ZmZlcltpICsgMl0gPT0gMSAmJiBidWZm
ZXJbaSArIDFdID09IDAgJiYgYnVmZmVyW2ldID09IDApIHsKKyAgICAgIC8vIFdlIGZvdW5kIGEg
c3RhcnQgc2VxdWVuY2UsIG5vdyBjaGVjayBpZiBpdCB3YXMgYSAzIG9mIDQgYnl0ZSBvbmUuCisg
ICAgICBOYWx1SW5kZXggaW5kZXggPSB7aSwgaSArIDMsIDB9OworICAgICAgaWYgKGluZGV4LnN0
YXJ0X29mZnNldCA+IDAgJiYgYnVmZmVyW2luZGV4LnN0YXJ0X29mZnNldCAtIDFdID09IDApCisg
ICAgICAgIC0taW5kZXguc3RhcnRfb2Zmc2V0OworCisgICAgICAvLyBVcGRhdGUgbGVuZ3RoIG9m
IHByZXZpb3VzIGVudHJ5LgorICAgICAgYXV0byBpdCA9IHNlcXVlbmNlcy5yYmVnaW4oKTsKKyAg
ICAgIGlmIChpdCAhPSBzZXF1ZW5jZXMucmVuZCgpKQorICAgICAgICBpdC0+cGF5bG9hZF9zaXpl
ID0gaW5kZXguc3RhcnRfb2Zmc2V0IC0gaXQtPnBheWxvYWRfc3RhcnRfb2Zmc2V0OworCisgICAg
ICBzZXF1ZW5jZXMucHVzaF9iYWNrKGluZGV4KTsKKworICAgICAgaSArPSAzOworICAgIH0gZWxz
ZSB7CisgICAgICArK2k7CisgICAgfQorICB9CisKKyAgLy8gVXBkYXRlIGxlbmd0aCBvZiBsYXN0
IGVudHJ5LCBpZiBhbnkuCisgIGF1dG8gaXQgPSBzZXF1ZW5jZXMucmJlZ2luKCk7CisgIGlmIChp
dCAhPSBzZXF1ZW5jZXMucmVuZCgpKQorICAgIGl0LT5wYXlsb2FkX3NpemUgPSBidWZmZXJfc2l6
ZSAtIGl0LT5wYXlsb2FkX3N0YXJ0X29mZnNldDsKKworICByZXR1cm4gc2VxdWVuY2VzOworfQor
CitOYWx1VHlwZSBQYXJzZU5hbHVUeXBlKHVpbnQ4X3QgZGF0YSkgeworICByZXR1cm4gc3RhdGlj
X2Nhc3Q8TmFsdVR5cGU+KChkYXRhICYga05hbHVUeXBlTWFzaykgPj4gMSk7Cit9CisKK3N0ZDo6
dmVjdG9yPHVpbnQ4X3Q+IFBhcnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVu
Z3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dDsKKyAgb3V0LnJlc2VydmUobGVuZ3Ro
KTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDspIHsKKyAgICAvLyBCZSBjYXJl
ZnVsIGFib3V0IG92ZXIvdW5kZXJmbG93IGhlcmUuIGJ5dGVfbGVuZ3RoXyAtIDMgY2FuIHVuZGVy
ZmxvdywgYW5kCisgICAgLy8gaSArIDMgY2FuIG92ZXJmbG93LCBidXQgYnl0ZV9sZW5ndGhfIC0g
aSBjYW4ndCwgYmVjYXVzZSBpIDwgYnl0ZV9sZW5ndGhfCisgICAgLy8gYWJvdmUsIGFuZCB0aGF0
IGV4cHJlc3Npb24gd2lsbCBwcm9kdWNlIHRoZSBudW1iZXIgb2YgYnl0ZXMgbGVmdCBpbgorICAg
IC8vIHRoZSBzdHJlYW0gaW5jbHVkaW5nIHRoZSBieXRlIGF0IGkuCisgICAgaWYgKGxlbmd0aCAt
IGkgPj0gMyAmJiAhZGF0YVtpXSAmJiAhZGF0YVtpICsgMV0gJiYgZGF0YVtpICsgMl0gPT0gMykg
eworICAgICAgLy8gVHdvIHJic3AgYnl0ZXMuCisgICAgICBvdXQucHVzaF9iYWNrKGRhdGFbaSsr
XSk7CisgICAgICBvdXQucHVzaF9iYWNrKGRhdGFbaSsrXSk7CisgICAgICAvLyBTa2lwIHRoZSBl
bXVsYXRpb24gYnl0ZS4KKyAgICAgIGkrKzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gU2luZ2xl
IHJic3AgYnl0ZS4KKyAgICAgIG91dC5wdXNoX2JhY2soZGF0YVtpKytdKTsKKyAgICB9CisgIH0K
KyAgcmV0dXJuIG91dDsKK30KKwordm9pZCBXcml0ZVJic3AoY29uc3QgdWludDhfdCogYnl0ZXMs
IHNpemVfdCBsZW5ndGgsIHJ0Yzo6QnVmZmVyKiBkZXN0aW5hdGlvbikgeworICBzdGF0aWMgY29u
c3QgdWludDhfdCBrWmVyb3NJblN0YXJ0U2VxdWVuY2UgPSAyOworICBzdGF0aWMgY29uc3QgdWlu
dDhfdCBrRW11bGF0aW9uQnl0ZSA9IDB4MDN1OworICBzaXplX3QgbnVtX2NvbnNlY3V0aXZlX3pl
cm9zID0gMDsKKyAgZGVzdGluYXRpb24tPkVuc3VyZUNhcGFjaXR5KGRlc3RpbmF0aW9uLT5zaXpl
KCkgKyBsZW5ndGgpOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsK
KyAgICB1aW50OF90IGJ5dGUgPSBieXRlc1tpXTsKKyAgICBpZiAoYnl0ZSA8PSBrRW11bGF0aW9u
Qnl0ZSAmJgorICAgICAgICBudW1fY29uc2VjdXRpdmVfemVyb3MgPj0ga1plcm9zSW5TdGFydFNl
cXVlbmNlKSB7CisgICAgICAvLyBOZWVkIHRvIGVzY2FwZS4KKyAgICAgIGRlc3RpbmF0aW9uLT5B
cHBlbmREYXRhKGtFbXVsYXRpb25CeXRlKTsKKyAgICAgIG51bV9jb25zZWN1dGl2ZV96ZXJvcyA9
IDA7CisgICAgfQorICAgIGRlc3RpbmF0aW9uLT5BcHBlbmREYXRhKGJ5dGUpOworICAgIGlmIChi
eXRlID09IDApIHsKKyAgICAgICsrbnVtX2NvbnNlY3V0aXZlX3plcm9zOworICAgIH0gZWxzZSB7
CisgICAgICBudW1fY29uc2VjdXRpdmVfemVyb3MgPSAwOworICAgIH0KKyAgfQorfQorCit9ICAv
LyBuYW1lc3BhY2UgSDI2NQorfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9jb21tb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdiYjI3NzRlZTEw
YWIxM2U5MjI1ZDQ0MDVkNTE2OTNhYzcxMDQxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVf
Y29tbW9uLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRo
ZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl
CisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVy
dHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBB
bGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUg
QVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZu
ZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfQ09NTU9OX0hfCisjZGVmaW5lIENPTU1PTl9WSURF
T19IMjY1X0gyNjVfQ09NTU9OX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dmVj
dG9yPgorCisjaW5jbHVkZSAicnRjX2Jhc2UvYnVmZmVyLmgiCisKK25hbWVzcGFjZSB3ZWJydGMg
eworCituYW1lc3BhY2UgSDI2NSB7CisvLyBUaGUgc2l6ZSBvZiBhIGZ1bGwgTkFMVSBzdGFydCBz
ZXF1ZW5jZSB7MCAwIDAgMX0sIHVzZWQgZm9yIHRoZSBmaXJzdCBOQUxVCisvLyBvZiBhbiBhY2Nl
c3MgdW5pdCwgYW5kIGZvciBTUFMgYW5kIFBQUyBibG9ja3MuCitjb25zdCBzaXplX3Qga05hbHVM
b25nU3RhcnRTZXF1ZW5jZVNpemUgPSA0OworCisvLyBUaGUgc2l6ZSBvZiBhIHNob3J0ZW5lZCBO
QUxVIHN0YXJ0IHNlcXVlbmNlIHswIDAgMX0sIHRoYXQgbWF5IGJlIHVzZWQgaWYKKy8vIG5vdCB0
aGUgZmlyc3QgTkFMVSBvZiBhbiBhY2Nlc3MgdW5pdCBvciBhbiBTUFMgb3IgUFBTIGJsb2NrLgor
Y29uc3Qgc2l6ZV90IGtOYWx1U2hvcnRTdGFydFNlcXVlbmNlU2l6ZSA9IDM7CisKKy8vIFRoZSBz
aXplIG9mIHRoZSBOQUxVIHR5cGUgYnl0ZSAoMSkuCitjb25zdCBzaXplX3Qga05hbHVUeXBlU2l6
ZSA9IDE7CisKK2VudW0gTmFsdVR5cGUgOiB1aW50OF90IHsKKyAga1RyYWlsTiA9IDAsCisgIGtU
cmFpbFIgPSAxLAorICBrVHNhTiA9IDIsCisgIGtUc2FSID0gMywKKyAga1N0c2FOID0gNCwKKyAg
a1N0c2FSID0gNSwKKyAga1JhZGxOID0gNiwKKyAga1JhZGxSID0gNywKKyAga0JsYVdMcCA9IDE2
LAorICBrQmxhV1JhZGwgPSAxNywKKyAga0JsYU5McCA9IDE4LAorICBrSWRyV1JhZGwgPSAxOSwK
KyAga0lkck5McCA9IDIwLAorICBrQ3JhID0gMjEsCisgIGtSc3ZJcmFwVmNsMjMgPSAyMywKKyAg
a1ZwcyA9IDMyLAorICBrU3BzID0gMzMsCisgIGtQcHMgPSAzNCwKKyAga0F1ZCA9IDM1LAorICBr
UHJlZml4U2VpID0gMzksCisgIGtTdWZmaXhTZWkgPSA0MCwKKyAga0FQID0gNDgsCisgIGtGVSA9
IDQ5Cit9OworCitlbnVtIFNsaWNlVHlwZSA6IHVpbnQ4X3QgeyBrUCA9IDAsIGtCID0gMSwga0kg
PSAyLCBrU3AgPSAzLCBrU2kgPSA0IH07CisKK3N0cnVjdCBOYWx1SW5kZXggeworICAvLyBTdGFy
dCBpbmRleCBvZiBOQUxVLCBpbmNsdWRpbmcgc3RhcnQgc2VxdWVuY2UuCisgIHNpemVfdCBzdGFy
dF9vZmZzZXQ7CisgIC8vIFN0YXJ0IGluZGV4IG9mIE5BTFUgcGF5bG9hZCwgdHlwaWNhbGx5IHR5
cGUgaGVhZGVyLgorICBzaXplX3QgcGF5bG9hZF9zdGFydF9vZmZzZXQ7CisgIC8vIExlbmd0aCBv
ZiBOQUxVIHBheWxvYWQsIGluIGJ5dGVzLCBjb3VudGluZyBmcm9tIHBheWxvYWRfc3RhcnRfb2Zm
c2V0LgorICBzaXplX3QgcGF5bG9hZF9zaXplOworfTsKKworLy8gUmV0dXJucyBhIHZlY3RvciBv
ZiB0aGUgTkFMVSBpbmRpY2VzIGluIHRoZSBnaXZlbiBidWZmZXIuCitzdGQ6OnZlY3RvcjxOYWx1
SW5kZXg+IEZpbmROYWx1SW5kaWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUpOworCisvLyBH
ZXQgdGhlIE5BTCB0eXBlIGZyb20gdGhlIGhlYWRlciBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2lu
ZyBzdGFydCBzZXF1ZW5jZS4KK05hbHVUeXBlIFBhcnNlTmFsdVR5cGUodWludDhfdCBkYXRhKTsK
KworLy8gTWV0aG9kcyBmb3IgcGFyc2luZyBhbmQgd3JpdGluZyBSQlNQLiBTZWUgc2VjdGlvbiA3
LjQuMiBvZiB0aGUgSDI2NSBzcGVjLgorLy8KKy8vIFRoZSBmb2xsb3dpbmcgc2VxdWVuY2VzIGFy
ZSBpbGxlZ2FsLCBhbmQgbmVlZCB0byBiZSBlc2NhcGVkIHdoZW4gZW5jb2Rpbmc6CisvLyAwMCAw
MCAwMCAtPiAwMCAwMCAwMyAwMAorLy8gMDAgMDAgMDEgLT4gMDAgMDAgMDMgMDEKKy8vIDAwIDAw
IDAyIC0+IDAwIDAwIDAzIDAyCisvLyBBbmQgdGhpbmdzIGluIHRoZSBzb3VyY2UgdGhhdCBsb29r
IGxpa2UgdGhlIGVtdWxhdGlvbiBieXRlIHBhdHRlcm4gKDAwIDAwIDAzKQorLy8gbmVlZCB0byBo
YXZlIGFuIGV4dHJhIGVtdWxhdGlvbiBieXRlIGFkZGVkLCBzbyBpdCdzIHJlbW92ZWQgd2hlbiBk
ZWNvZGluZzoKKy8vIDAwIDAwIDAzIC0+IDAwIDAwIDAzIDAzCisvLworLy8gRGVjb2RpbmcgaXMg
c2ltcGx5IGEgbWF0dGVyIG9mIGZpbmRpbmcgYW55IDAwIDAwIDAzIHNlcXVlbmNlIGFuZCByZW1v
dmluZworLy8gdGhlIDAzIGVtdWxhdGlvbiBieXRlLgorCisvLyBQYXJzZSB0aGUgZ2l2ZW4gZGF0
YSBhbmQgcmVtb3ZlIGFueSBlbXVsYXRpb24gYnl0ZSBlc2NhcGluZy4KK3N0ZDo6dmVjdG9yPHVp
bnQ4X3Q+IFBhcnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKwor
Ly8gV3JpdGUgdGhlIGdpdmVuIGRhdGEgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciwgaW5zZXJ0
aW5nIGFuZCBlbXVsYXRpb24KKy8vIGJ5dGVzIGluIG9yZGVyIHRvIGVzY2FwZSBhbnkgZGF0YSB0
aGUgY291bGQgYmUgaW50ZXJwcmV0ZWQgYXMgYSBzdGFydAorLy8gc2VxdWVuY2UuCit2b2lkIFdy
aXRlUmJzcChjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IGxlbmd0aCwgcnRjOjpCdWZmZXIq
IGRlc3RpbmF0aW9uKTsKK30gIC8vIG5hbWVzcGFjZSBIMjY1Cit9ICAvLyBuYW1lc3BhY2Ugd2Vi
cnRjCisKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9DT01NT05fSF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92
aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5jYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MTg0MTFjZWQzMjdjODRhNjVlYzkzZjRkZmM3YmU5MmNmZjJlMjZiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29t
bW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMjA5IEBACisvKgor
ICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBM
SUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0
aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAq
ICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMg
bWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUg
c291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBz
X3BhcnNlci5oIgorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2lu
Y2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9u
X3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJydGNfYmFzZS9iaXRfYnVmZmVy
LmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgorCisjZGVmaW5lIFJFVFVSTl9FTVBU
WV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJl
dHVybiBhYnNsOjpudWxsb3B0OyAgICAgICAgXAorICB9CisKK25hbWVzcGFjZSB7Citjb25zdCBp
bnQga01heFBpY0luaXRRcERlbHRhVmFsdWUgPSAyNTsKK2NvbnN0IGludCBrTWluUGljSW5pdFFw
RGVsdGFWYWx1ZSA9IC0yNjsKK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsK
KworLy8gR2VuZXJhbCBub3RlOiB0aGlzIGlzIGJhc2VkIG9mZiB0aGUgMDIvMjAxOCB2ZXJzaW9u
IG9mIHRoZSBILjI2NSBzdGFuZGFyZC4KKy8vIFlvdSBjYW4gZmluZCBpdCBvbiB0aGlzIHBhZ2U6
CisvLyBodHRwOi8vd3d3Lml0dS5pbnQvcmVjL1QtUkVDLUguMjY1CisKK2Fic2w6Om9wdGlvbmFs
PEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwcygKKyAgICBj
b25zdCB1aW50OF90KiBkYXRhLAorICAgIHNpemVfdCBsZW5ndGgpIHsKKyAgLy8gRmlyc3QsIHBh
cnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMg
ZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMg
c2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMuMSBvZiB0aGUg
SC4yNjQgc3RhbmRhcmQuCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9
IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVm
ZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICBy
ZXR1cm4gUGFyc2VJbnRlcm5hbCgmYml0X2J1ZmZlcik7Cit9CisKK2Jvb2wgSDI2NVBwc1BhcnNl
cjo6UGFyc2VQcHNJZHMoY29uc3QgdWludDhfdCogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdWludDMyX3QqIHBwc19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dDMyX3QqIHNwc19pZCkgeworICBSVENfRENIRUNLKHBwc19pZCk7CisgIFJUQ19EQ0hFQ0soc3Bz
X2lkKTsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhl
IHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRl
IG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8g
c2VjdGlvbiA3LjMuMSBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIHN0ZDo6dmVjdG9yPHVpbnQ4
X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBy
dGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2Vk
X2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VQcHNJZHNJbnRlcm5hbCgmYml0X2J1ZmZl
ciwgcHBzX2lkLCBzcHNfaWQpOworfQorCithYnNsOjpvcHRpb25hbDx1aW50MzJfdD4gSDI2NVBw
c1BhcnNlcjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3AoCisgICAgY29uc3Qg
dWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoLAorICAgIHVpbnQ4X3QgbmFsdV90eXBl
KSB7CisgIHJ0Yzo6Qml0QnVmZmVyIHNsaWNlX3JlYWRlcihkYXRhLCBsZW5ndGgpOworCisgIC8v
IGZpcnN0X3NsaWNlX3NlZ21lbnRfaW5fcGljX2ZsYWc6IHUoMSkKKyAgdWludDMyX3QgZmlyc3Rf
c2xpY2Vfc2VnbWVudF9pbl9waWNfZmxhZyA9IDA7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAor
ICAgICAgc2xpY2VfcmVhZGVyLlJlYWRCaXRzKCZmaXJzdF9zbGljZV9zZWdtZW50X2luX3BpY19m
bGFnLCAxKSk7CisKKyAgaWYgKG5hbHVfdHlwZSA+PSBIMjY1OjpOYWx1VHlwZTo6a0JsYVdMcCAm
JgorICAgICAgbmFsdV90eXBlIDw9IEgyNjU6Ok5hbHVUeXBlOjprUnN2SXJhcFZjbDIzKSB7Cisg
ICAgLy8gbm9fb3V0cHV0X29mX3ByaW9yX3BpY3NfZmxhZzogdSgxKQorICAgIFJFVFVSTl9FTVBU
WV9PTl9GQUlMKHNsaWNlX3JlYWRlci5Db25zdW1lQml0cygxKSk7CisgIH0KKworICAvLyBzbGlj
ZV9waWNfcGFyYW1ldGVyX3NldF9pZDogdWUodikKKyAgdWludDMyX3Qgc2xpY2VfcGljX3BhcmFt
ZXRlcl9zZXRfaWQgPSAwOworICBpZiAoIXNsaWNlX3JlYWRlci5SZWFkRXhwb25lbnRpYWxHb2xv
bWIoJnNsaWNlX3BpY19wYXJhbWV0ZXJfc2V0X2lkKSkKKyAgICByZXR1cm4gYWJzbDo6bnVsbG9w
dDsKKworICByZXR1cm4gc2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQ7Cit9CisKK2Fic2w6Om9w
dGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZUludGVy
bmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKSB7CisgIFBwc1N0YXRlIHBwczsK
KworICBSRVRVUk5fRU1QVFlfT05fRkFJTChQYXJzZVBwc0lkc0ludGVybmFsKGJpdF9idWZmZXIs
ICZwcHMuaWQsICZwcHMuc3BzX2lkKSk7CisKKyAgdWludDMyX3QgYml0c190bXA7CisgIHVpbnQz
Ml90IGdvbG9tYl9pZ25vcmVkOworICAvLyBlbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWc6IHUoMSkK
KyAgdWludDMyX3QgZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnOworICBSRVRVUk5fRU1QVFlfT05f
RkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnLCAxKSk7
CisgIHBwcy5lbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWcgPSBlbnRyb3B5X2NvZGluZ19tb2RlX2Zs
YWcgIT0gMDsKKyAgLy8gYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVzZW50X2Zs
YWc6IHUoMSkKKyAgdWludDMyX3QgYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVz
ZW50X2ZsYWc7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0X2J1ZmZlci0+UmVh
ZEJpdHMoJmJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnLCAxKSk7
CisgIHBwcy5ib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZyA9Cisg
ICAgICBib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZyAhPSAwOwor
CisgIC8vIG51bV9zbGljZV9ncm91cHNfbWludXMxOiB1ZSh2KQorICB1aW50MzJfdCBudW1fc2xp
Y2VfZ3JvdXBzX21pbnVzMTsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVm
ZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJm51bV9zbGljZV9ncm91cHNfbWludXMxKSk7Cisg
IGlmIChudW1fc2xpY2VfZ3JvdXBzX21pbnVzMSA+IDApIHsKKyAgICB1aW50MzJfdCBzbGljZV9n
cm91cF9tYXBfdHlwZTsKKyAgICAvLyBzbGljZV9ncm91cF9tYXBfdHlwZTogdWUodikKKyAgICBS
RVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFs
R29sb21iKCZzbGljZV9ncm91cF9tYXBfdHlwZSkpOworICAgIGlmIChzbGljZV9ncm91cF9tYXBf
dHlwZSA9PSAwKSB7CisgICAgICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAwOyBpX2dyb3VwIDw9
IG51bV9zbGljZV9ncm91cHNfbWludXMxOworICAgICAgICAgICArK2lfZ3JvdXApIHsKKyAgICAg
ICAgLy8gcnVuX2xlbmd0aF9taW51czFbaUdyb3VwXTogdWUodikKKyAgICAgICAgUkVUVVJOX0VN
UFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xv
bWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChzbGljZV9ncm91
cF9tYXBfdHlwZSA9PSAxKSB7CisgICAgICAvLyBUT0RPKHNwcmFuZyk6IEltcGxlbWVudCBzdXBw
b3J0IGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisgICAgICAvLyBTZWUgOC4y
LjIuMiBTcGVjaWZpY2F0aW9uIGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisg
ICAgfSBlbHNlIGlmIChzbGljZV9ncm91cF9tYXBfdHlwZSA9PSAyKSB7CisgICAgICBmb3IgKHVp
bnQzMl90IGlfZ3JvdXAgPSAwOyBpX2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNfbWludXMxOwor
ICAgICAgICAgICArK2lfZ3JvdXApIHsKKyAgICAgICAgLy8gdG9wX2xlZnRbaUdyb3VwXTogdWUo
dikKKyAgICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVy
LT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAgICAgIC8vIGJv
dHRvbV9yaWdodFtpR3JvdXBdOiB1ZSh2KQorICAgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgK
KyAgICAgICAgICAgIGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2ln
bm9yZWQpKTsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBlID09
IDMgfHwgc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0gNCB8fAorICAgICAgICAgICAgICAgc2xpY2Vf
Z3JvdXBfbWFwX3R5cGUgPT0gNSkgeworICAgICAgLy8gc2xpY2VfZ3JvdXBfY2hhbmdlX2RpcmVj
dGlvbl9mbGFnOiB1KDEpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5S
ZWFkQml0cygmYml0c190bXAsIDEpKTsKKyAgICAgIC8vIHNsaWNlX2dyb3VwX2NoYW5nZV9yYXRl
X21pbnVzMTogdWUodikKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJl
YWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgICB9IGVsc2UgaWYgKHNs
aWNlX2dyb3VwX21hcF90eXBlID09IDYpIHsKKyAgICAgIC8vIHBpY19zaXplX2luX21hcF91bml0
c19taW51czE6IHVlKHYpCisgICAgICB1aW50MzJfdCBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWlu
dXMxOworICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgYml0X2J1ZmZlci0+
UmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxKSk7Cisg
ICAgICB1aW50MzJfdCBzbGljZV9ncm91cF9pZF9iaXRzID0gMDsKKyAgICAgIHVpbnQzMl90IG51
bV9zbGljZV9ncm91cHMgPSBudW1fc2xpY2VfZ3JvdXBzX21pbnVzMSArIDE7CisgICAgICAvLyBJ
ZiBudW1fc2xpY2VfZ3JvdXBzIGlzIG5vdCBhIHBvd2VyIG9mIHR3byBhbiBhZGRpdGlvbmFsIGJp
dCBpcyByZXF1aXJlZAorICAgICAgLy8gdG8gYWNjb3VudCBmb3IgdGhlIGNlaWwoKSBvZiBsb2cy
KCkgYmVsb3cuCisgICAgICBpZiAoKG51bV9zbGljZV9ncm91cHMgJiAobnVtX3NsaWNlX2dyb3Vw
cyAtIDEpKSAhPSAwKQorICAgICAgICArK3NsaWNlX2dyb3VwX2lkX2JpdHM7CisgICAgICB3aGls
ZSAobnVtX3NsaWNlX2dyb3VwcyA+IDApIHsKKyAgICAgICAgbnVtX3NsaWNlX2dyb3VwcyA+Pj0g
MTsKKyAgICAgICAgKytzbGljZV9ncm91cF9pZF9iaXRzOworICAgICAgfQorICAgICAgZm9yICh1
aW50MzJfdCBpID0gMDsgaSA8PSBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxOyBpKyspIHsK
KyAgICAgICAgLy8gc2xpY2VfZ3JvdXBfaWRbaV06IHUodikKKyAgICAgICAgLy8gUmVwcmVzZW50
ZWQgYnkgY2VpbChsb2cyKG51bV9zbGljZV9ncm91cHNfbWludXMxICsgMSkpIGJpdHMuCisgICAg
ICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgICAgICAgYml0X2J1ZmZlci0+UmVhZEJp
dHMoJmJpdHNfdG1wLCBzbGljZV9ncm91cF9pZF9iaXRzKSk7CisgICAgICB9CisgICAgfQorICB9
CisgIC8vIG51bV9yZWZfaWR4X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogdWUodikKKyAgUkVU
VVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xv
bWJfaWdub3JlZCkpOworICAvLyBudW1fcmVmX2lkeF9sMV9kZWZhdWx0X2FjdGl2ZV9taW51czE6
IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlh
bEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgLy8gd2VpZ2h0ZWRfcHJlZF9mbGFnOiB1KDEp
CisgIHVpbnQzMl90IHdlaWdodGVkX3ByZWRfZmxhZzsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
Yml0X2J1ZmZlci0+UmVhZEJpdHMoJndlaWdodGVkX3ByZWRfZmxhZywgMSkpOworICBwcHMud2Vp
Z2h0ZWRfcHJlZF9mbGFnID0gd2VpZ2h0ZWRfcHJlZF9mbGFnICE9IDA7CisgIC8vIHdlaWdodGVk
X2JpcHJlZF9pZGM6IHUoMikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVh
ZEJpdHMoJnBwcy53ZWlnaHRlZF9iaXByZWRfaWRjLCAyKSk7CisKKyAgLy8gcGljX2luaXRfcXBf
bWludXMyNjogc2UodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVmZmVy
LT5SZWFkU2lnbmVkRXhwb25lbnRpYWxHb2xvbWIoJnBwcy5waWNfaW5pdF9xcF9taW51czI2KSk7
CisgIC8vIFNhbml0eS1jaGVjayBwYXJzZWQgdmFsdWUKKyAgaWYgKHBwcy5waWNfaW5pdF9xcF9t
aW51czI2ID4ga01heFBpY0luaXRRcERlbHRhVmFsdWUgfHwKKyAgICAgIHBwcy5waWNfaW5pdF9x
cF9taW51czI2IDwga01pblBpY0luaXRRcERlbHRhVmFsdWUpIHsKKyAgICBSRVRVUk5fRU1QVFlf
T05fRkFJTChmYWxzZSk7CisgIH0KKyAgLy8gcGljX2luaXRfcXNfbWludXMyNjogc2UodikKKyAg
UkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZn
b2xvbWJfaWdub3JlZCkpOworICAvLyBjaHJvbWFfcXBfaW5kZXhfb2Zmc2V0OiBzZSh2KQorICBS
RVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdv
bG9tYl9pZ25vcmVkKSk7CisgIC8vIGRlYmxvY2tpbmdfZmlsdGVyX2NvbnRyb2xfcHJlc2VudF9m
bGFnOiB1KDEpCisgIC8vIGNvbnN0cmFpbmVkX2ludHJhX3ByZWRfZmxhZzogdSgxKQorICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmYml0c190bXAsIDIpKTsKKyAg
Ly8gcmVkdW5kYW50X3BpY19jbnRfcHJlc2VudF9mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKAorICAgICAgYml0X2J1ZmZlci0+UmVhZEJpdHMoJnBwcy5yZWR1bmRhbnRfcGljX2Nu
dF9wcmVzZW50X2ZsYWcsIDEpKTsKKworICByZXR1cm4gcHBzOworfQorCitib29sIEgyNjVQcHNQ
YXJzZXI6OlBhcnNlUHBzSWRzSW50ZXJuYWwocnRjOjpCaXRCdWZmZXIqIGJpdF9idWZmZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHBwc19pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogc3BzX2lk
KSB7CisgIC8vIHBpY19wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBpZiAoIWJpdF9idWZmZXIt
PlJlYWRFeHBvbmVudGlhbEdvbG9tYihwcHNfaWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgLy8g
c2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIGlmICghYml0X2J1ZmZlci0+UmVhZEV4cG9u
ZW50aWFsR29sb21iKHNwc19pZCkpCisgICAgcmV0dXJuIGZhbHNlOworICByZXR1cm4gdHJ1ZTsK
K30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFy
c2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25f
dmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmE0NzE4ODNkY2FlYWY1
YTUzNGFjMzEzOWEzNjkwN2YzMDRmZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNf
cGFyc2VyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhl
IFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UK
KyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9m
IHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0
eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFs
bCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBB
VVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpZm5k
ZWYgQ09NTU9OX1ZJREVPX0gyNjVfUFBTX1BBUlNFUl9IXworI2RlZmluZSBDT01NT05fVklERU9f
SDI2NV9QUFNfUEFSU0VSX0hfCisKKyNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisK
K25hbWVzcGFjZSBydGMgeworY2xhc3MgQml0QnVmZmVyOworfQorCituYW1lc3BhY2Ugd2VicnRj
IHsKKworLy8gQSBjbGFzcyBmb3IgcGFyc2luZyBvdXQgcGljdHVyZSBwYXJhbWV0ZXIgc2V0IChQ
UFMpIGRhdGEgZnJvbSBhIEgyNjUgTkFMVS4KK2NsYXNzIEgyNjVQcHNQYXJzZXIgeworIHB1Ymxp
YzoKKyAgLy8gVGhlIHBhcnNlZCBzdGF0ZSBvZiB0aGUgUFBTLiBPbmx5IHNvbWUgc2VsZWN0IHZh
bHVlcyBhcmUgc3RvcmVkLgorICAvLyBBZGQgbW9yZSBhcyB0aGV5IGFyZSBhY3R1YWxseSBuZWVk
ZWQuCisgIHN0cnVjdCBQcHNTdGF0ZSB7CisgICAgUHBzU3RhdGUoKSA9IGRlZmF1bHQ7CisKKyAg
ICBib29sIGJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnID0gZmFs
c2U7CisgICAgYm9vbCB3ZWlnaHRlZF9wcmVkX2ZsYWcgPSBmYWxzZTsKKyAgICBib29sIGVudHJv
cHlfY29kaW5nX21vZGVfZmxhZyA9IGZhbHNlOworICAgIHVpbnQzMl90IHdlaWdodGVkX2JpcHJl
ZF9pZGMgPSBmYWxzZTsKKyAgICB1aW50MzJfdCByZWR1bmRhbnRfcGljX2NudF9wcmVzZW50X2Zs
YWcgPSAwOworICAgIGludCBwaWNfaW5pdF9xcF9taW51czI2ID0gMDsKKyAgICB1aW50MzJfdCBp
ZCA9IDA7CisgICAgdWludDMyX3Qgc3BzX2lkID0gMDsKKyAgfTsKKworICAvLyBVbnBhY2sgUkJT
UCBhbmQgcGFyc2UgUFBTIHN0YXRlIGZyb20gdGhlIHN1cHBsaWVkIGJ1ZmZlci4KKyAgc3RhdGlj
IGFic2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZVBwcyhjb25zdCB1aW50OF90KiBkYXRhLCBz
aXplX3QgbGVuZ3RoKTsKKworICBzdGF0aWMgYm9vbCBQYXJzZVBwc0lkcyhjb25zdCB1aW50OF90
KiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICB1aW50MzJfdCogc3BzX2lkKTsKKworICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8dWlu
dDMyX3Q+IFBhcnNlUHBzSWRGcm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAgICAgY29uc3Qg
dWludDhfdCogZGF0YSwKKyAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICB1aW50OF90IG5hbHVf
dHlwZSk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBQUFMgc3RhdGUsIGZvciBhIGJp
dCBidWZmZXIgd2hlcmUgUkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisgIC8vIHBlcmZv
cm1lZC4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZUludGVybmFsKHJ0
Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKTsKKyAgc3RhdGljIGJvb2wgUGFyc2VQcHNJZHNJbnRl
cm5hbChydGM6OkJpdEJ1ZmZlciogYml0X2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnQzMl90KiBzcHNfaWQpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0Ywor
CisjZW5kaWYgIC8vIENPTU1PTl9WSURFT19IMjY1X1BQU19QQVJTRVJfSF8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9o
MjY1L2gyNjVfc3BzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNDMzZjRiMGVlOTIwYzIzM2YxYjYxODE1MGQyZDNmODhmZWQwZWMxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogIENv
cHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwg
aW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0
aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5Cisg
KiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNl
IHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNp
bmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1v
bl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9i
dWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25hbWVzcGFjZSB7Cit0
eXBlZGVmIGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IE9w
dGlvbmFsU3BzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEo
eCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBPcHRpb25hbFNwcygpOyAgICAg
ICBcCisgIH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworSDI2NVNw
c1BhcnNlcjo6U3BzU3RhdGU6OlNwc1N0YXRlKCkgPSBkZWZhdWx0OworCisvLyBHZW5lcmFsIG5v
dGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2YgdGhlIEguMjY1IHN0
YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8vIGh0dHA6Ly93d3cu
aXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFNQUyBz
dGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNsOjpvcHRpb25hbDxIMjY1U3BzUGFy
c2VyOjpTcHNTdGF0ZT4gSDI2NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAgY29uc3QgdWludDhf
dCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVu
cGFja2VkX2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJp
dEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZl
ci5zaXplKCkpOworICByZXR1cm4gUGFyc2VTcHNVcFRvVnVpKCZiaXRfYnVmZmVyKTsKK30KKwor
YWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IEgyNjVTcHNQYXJzZXI6OlBh
cnNlU3BzVXBUb1Z1aSgKKyAgICBydGM6OkJpdEJ1ZmZlciogYnVmZmVyKSB7CisgIC8vIE5vdywg
d2UgbmVlZCB0byB1c2UgYSBiaXQgYnVmZmVyIHRvIHBhcnNlIHRocm91Z2ggdGhlIGFjdHVhbCBI
RVZDIFNQUworICAvLyBmb3JtYXQuIFNlZSBTZWN0aW9uIDcuMy4yLjIuMSAoIkdlbmVyYWwgc2Vx
dWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhCisgIC8vIHN5bnRheCIpIG9mIHRoZSBILjI2NSBzdGFu
ZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2luY2Ugd2Ugb25seSBjYXJl
IGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkgb2YgZmllbGRzLCBidXQK
KyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJvdWdoIGEgbG90IG9mIHRo
ZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2ZSB2YXJpYWJsZSBzaXpl
LgorICAvLyBXZSdyZSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbjoKKyAgLy8gY2hyb21hX2Zv
cm1hdF9pZGMgLT4gYWZmZWN0cyBjcm9wIHVuaXRzCisgIC8vIHBpY197d2lkdGgsaGVpZ2h0fV8q
IC0+IHJlc29sdXRpb24gb2YgdGhlIGZyYW1lIGluIG1hY3JvYmxvY2tzICgxNngxNikuCisgIC8v
IGZyYW1lX2Nyb3BfKl9vZmZzZXQgLT4gY3JvcCBpbmZvcm1hdGlvbgorCisgIFNwc1N0YXRlIHNw
czsKKworICAvLyBUaGUgZ29sb21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNv
bnN1bWUuCisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91
cl9wbGFuZV9mbGFnIGlzIG9wdGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9u
cworICAvLyBhYm91dCB0aGUgQ2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2Ug
dHJlYXQgY3JvcCBjb29yZGluYXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5l
X2ZsYWcgPSAwOworCisgIC8vIGNocm9tYV9mb3JtYXRfaWRjIHdpbGwgYmUgQ2hyb21hQXJyYXlU
eXBlIGlmIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzCisgIC8vIDAuIEl0IGRlZmF1bHRz
IHRvIDEsIHdoZW4gbm90IHNwZWNpZmllZC4KKyAgdWludDMyX3QgY2hyb21hX2Zvcm1hdF9pZGMg
PSAxOworCisgIC8vIHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIHVpbnQzMl90
IHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
YnVmZmVyLT5SZWFkQml0cygmc3BzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQpKTsKKyAgLy8g
c3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTogdSgzKQorICB1aW50MzJfdCBzcHNfbWF4X3N1Yl9s
YXllcnNfbWludXMxID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0
cygmc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSwgMykpOworICAvLyBzcHNfdGVtcG9yYWxfaWRf
bmVzdGluZ19mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3Vt
ZUJpdHMoMSkpOworICAvLyBwcm9maWxlX3RpZXJfbGV2ZWwoMSwgc3BzX21heF9zdWJfbGF5ZXJz
X21pbnVzMSkuIFdlIGFyZSBhY3V0YWxseSBub3QKKyAgLy8gdXNpbmcgdGhlbSwgc28gcmVhZC9z
a2lwIG92ZXIgaXQuCisgIC8vIGdlbmVyYWxfcHJvZmlsZV9zcGFjZStnZW5lcmFsX3RpZXJfZmxh
ZytnZW5lcmFsX3ByZmlsZV9pZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVy
LT5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVfY29tcGF0YWJpbGl0aXlf
ZmxhZ1szMl0KKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoNCkp
OworICAvLyBnZW5lcmFsX3Byb2dyZXNzaXZlX3NvdXJjZV9mbGFnICsgaW50ZXJsYWNlZF9zb3Vy
Y2VfZmxhZysKKyAgLy8gbm9uLXBhY2tlZF9jb25zdHJhaW50IGZsYWcgKyBmcmFtZV9vbmx5X2Nv
bnN0cmFpbnRfZmxhZzogdSg0KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1
bWVCaXRzKDQpKTsKKyAgLy8gZ2VuZXJhbF9wcm9maWxlX2lkYyBkZWNpZGVkIGZsYWdzIG9yIHJl
c2VydmVkLiAgdSg0MykKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0
cyg0MykpOworICAvLyBnZW5lcmFsX2luYmxkX2ZsYWcgb3IgcmVzZXJ2ZWQgMDogdSgxKQorICBS
RVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gZ2VuZXJh
bF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1l
Qnl0ZXMoMSkpOworICAvLyBpZiBtYXhfc3ViX2xheWVyc19taW51czEgPj0xLCByZWFkIHRoZSBz
dWJsYXllciBwcm9maWxlIGluZm9ybWF0aW9uCisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJf
bGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdzOworICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gc3Vi
X2xheWVyX2xldmVsX3ByZXNlbnRfZmxhZ3M7CisgIHVpbnQzMl90IHN1Yl9sYXllcl9wcm9maWxl
X3ByZXNlbnQgPSAwOworICB1aW50MzJfdCBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCA9IDA7Cisg
IGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBpKysp
IHsKKyAgICAvLyBzdWJsYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZyBhbmQgc3VibGF5ZXJfbGV2
ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+
UmVhZEJpdHMoJnN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQsIDEpKTsKKyAgICBSRVRVUk5fRU1Q
VFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCwgMSkp
OworICAgIHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3MucHVzaF9iYWNrKHN1Yl9sYXll
cl9wcm9maWxlX3ByZXNlbnQpOworICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzLnB1
c2hfYmFjayhzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNwc19tYXhfc3Vi
X2xheWVyc19taW51czEgPiAwKSB7CisgICAgZm9yICh1aW50MzJfdCBqID0gc3BzX21heF9zdWJf
bGF5ZXJzX21pbnVzMTsgaiA8IDg7IGorKykgeworICAgICAgLy8gcmVzZXJ2ZWQgMiBiaXRzOiB1
KDIpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDIpKTsK
KyAgICB9CisgIH0KKyAgZm9yICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVy
c19taW51czE7IGsrKykgeworICAgIGlmIChzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdz
W2tdKSB7ICAvLworICAgICAgLy8gc3ViX2xheWVyIHByb2ZpbGVfc3BhY2UvdGllcl9mbGFnL3By
b2ZpbGVfaWRjLiBpZ25vcmVkLiB1KDgpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZm
ZXItPkNvbnN1bWVCeXRlcygxKSk7CisgICAgICAvLyBwcm9maWxlX2NvbXBhdGFiaWxpdHlfZmxh
ZzogIHUoMzIpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRl
cyg0KSk7CisgICAgICAvLyBzdWJfbGF5ZXIgcHJvZ3Jlc3NpdmVfc291cmNlX2ZsYWcvaW50ZXJs
YWNlZF9zb3VyY2VfZmxhZy8KKyAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2Zy
YW1lX29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJ
TChidWZmZXItPkNvbnN1bWVCaXRzKDQpKTsKKyAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFy
ZSBwcm9maWxlX2lkYyBzcGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4KKyAgICAgIC8v
IHUoNDMpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQz
KSk7CisgICAgICAvLyAxLWJpdCBwcm9maWxlX2lkYyBzcGVjaWZpYyBpbmJsZCBmbGFnLiAgV2Ug
c2ltcGx5IHJlYWQvc2tpcCBpdC4gdSgxKQorICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVm
ZmVyLT5Db25zdW1lQml0cygxKSk7CisgICAgfQorICAgIGlmIChzdWJfbGF5ZXJfbGV2ZWxfcHJl
c2VudF9mbGFnc1trXSkgeworICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAg
ICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkpOworICAgIH0K
KyAgfQorICAvLyBzcHNfc2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIFJFVFVSTl9FTVBU
WV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkp
OworICAvLyBjaHJvbWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
YnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNocm9tYV9mb3JtYXRfaWRjKSk7CisgIGlm
IChjaHJvbWFfZm9ybWF0X2lkYyA9PSAzKSB7CisgICAgLy8gc2VwZXJhdGVfY29sb3VyX3BsYW5l
X2ZsYWc6IHUoMSkKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZz
ZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZywgMSkpOworICB9CisgIHVpbnQzMl90IHBpY193aWR0
aF9pbl9sdW1hX3NhbXBsZXMgPSAwOworICB1aW50MzJfdCBwaWNfaGVpZ2h0X2luX2x1bWFfc2Ft
cGxlcyA9IDA7CisgIC8vIHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBp
Y193aWR0aF9pbl9sdW1hX3NhbXBsZXMpKTsKKyAgLy8gcGljX2hlaWdodF9pbl9sdW1hX3NhbXBs
ZXM6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVyLT5SZWFkRXhw
b25lbnRpYWxHb2xvbWIoJnBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzKSk7CisgIC8vIGNvbmZv
cm1hbmNlX3dpbmRvd19mbGFnOiB1KDEpCisgIHVpbnQzMl90IGNvbmZvcm1hbmNlX3dpbmRvd19m
bGFnID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmY29uZm9y
bWFuY2Vfd2luZG93X2ZsYWcsIDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNl
dCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7CisgIHVpbnQzMl90
IGNvbmZfd2luX3RvcF9vZmZzZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zm
c2V0ID0gMDsKKyAgaWYgKGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAgLy8gY29uZl93
aW5fbGVmdF9vZmZzZXQ6IHVlKHYpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5S
ZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7CisgICAgLy8gY29u
Zl93aW5fcmlnaHRfb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZl
ci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAv
LyBjb25mX3dpbl90b3Bfb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1
ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAg
Ly8gY29uZl93aW5fYm90dG9tX29mZnNldDogdWUodikKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJ
TCgKKyAgICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2JvdHRv
bV9vZmZzZXQpKTsKKyAgfQorCisgIC8vIEZhciBlbm91Z2ghIFdlIGRvbid0IHVzZSB0aGUgcmVz
dCBvZiB0aGUgU1BTLgorCisgIHNwcy52cHNfaWQgPSBzcHNfdmlkZW9fcGFyYW1ldGVyX3NldF9p
ZDsKKworICAvLyBTdGFydCB3aXRoIHRoZSByZXNvbHV0aW9uIGRldGVybWluZWQgYnkgdGhlIHBp
Y193aWR0aC9waWNfaGVpZ2h0IGZpZWxkcy4KKyAgc3BzLndpZHRoID0gcGljX3dpZHRoX2luX2x1
bWFfc2FtcGxlczsKKyAgc3BzLmhlaWdodCA9IHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOwor
CisgIGlmIChjb25mb3JtYW5jZV93aW5kb3dfZmxhZykgeworICAgIGludCBzdWJfd2lkdGhfYyA9
ICgoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgfHwgKDIgPT0gY2hyb21hX2Zvcm1hdF9pZGMpKSAm
JgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPT0gc2VwYXJhdGVfY29sb3VyX3Bs
YW5lX2ZsYWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgID8gMgorICAgICAgICAgICAgICAg
ICAgICAgICAgICA6IDE7CisgICAgaW50IHN1Yl9oZWlnaHRfYyA9CisgICAgICAgICgxID09IGNo
cm9tYV9mb3JtYXRfaWRjKSAmJiAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZykgPyAy
IDogMTsKKyAgICAvLyB0aGUgb2Zmc2V0IGluY2x1ZGVzIHRoZSBwaXhlbCB3aXRoaW4gY29uZm9y
bWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVkIHRvCisgICAgLy8gKzEgYXMgcGVyIHNwZWMKKyAg
ICBzcHMud2lkdGggLT0gc3ViX3dpZHRoX2MgKiAoY29uZl93aW5fcmlnaHRfb2Zmc2V0ICsgY29u
Zl93aW5fbGVmdF9vZmZzZXQpOworICAgIHNwcy5oZWlnaHQgLT0gc3ViX2hlaWdodF9jICogKGNv
bmZfd2luX3RvcF9vZmZzZXQgKyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0KTsKKyAgfQorCisgIHJl
dHVybiBPcHRpb25hbFNwcyhzcHMpOworfQorCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25f
dmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmEwZjg2YjY5ODMyNjMxYmU3MjU2OWI5YWUyMGJjMmM2MGI4MDkyNWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21t
b25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
IENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9u
YWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBp
biB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5
CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlIHRyZWUuCisgKi8KKworI2lmbmRlZiBDT01NT05fVklERU9fSDI2NV9IMjY1X1NQU19QQVJT
RVJfSF8KKyNkZWZpbmUgQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VSX0hfCisKKyNp
bmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisKK25hbWVzcGFjZSBydGMgeworY2xhc3Mg
Qml0QnVmZmVyOworfQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworLy8gQSBjbGFzcyBmb3IgcGFy
c2luZyBvdXQgc2VxdWVuY2UgcGFyYW1ldGVyIHNldCAoU1BTKSBkYXRhIGZyb20gYW4gSDI2NSBO
QUxVLgorY2xhc3MgSDI2NVNwc1BhcnNlciB7CisgcHVibGljOgorICAvLyBUaGUgcGFyc2VkIHN0
YXRlIG9mIHRoZSBTUFMuIE9ubHkgc29tZSBzZWxlY3QgdmFsdWVzIGFyZSBzdG9yZWQuCisgIC8v
IEFkZCBtb3JlIGFzIHRoZXkgYXJlIGFjdHVhbGx5IG5lZWRlZC4KKyAgc3RydWN0IFNwc1N0YXRl
IHsKKyAgICBTcHNTdGF0ZSgpOworCisgICAgdWludDMyX3Qgd2lkdGggPSAwOworICAgIHVpbnQz
Ml90IGhlaWdodCA9IDA7CisgICAgdWludDMyX3QgZGVsdGFfcGljX29yZGVyX2Fsd2F5c196ZXJv
X2ZsYWcgPSAwOworICAgIHVpbnQzMl90IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnID0gMDsK
KyAgICB1aW50MzJfdCBmcmFtZV9tYnNfb25seV9mbGFnID0gMDsKKyAgICB1aW50MzJfdCBsb2cy
X21heF9mcmFtZV9udW1fbWludXM0ID0gMDsKKyAgICB1aW50MzJfdCBsb2cyX21heF9waWNfb3Jk
ZXJfY250X2xzYl9taW51czQgPSAwOworICAgIHVpbnQzMl90IHBpY19vcmRlcl9jbnRfdHlwZSA9
IDA7CisgICAgdWludDMyX3QgbWF4X251bV9yZWZfZnJhbWVzID0gMDsKKyAgICB1aW50MzJfdCB2
dWlfcGFyYW1zX3ByZXNlbnQgPSAwOworICAgIHVpbnQzMl90IGlkID0gMDsKKyAgICB1aW50MzJf
dCB2cHNfaWQgPSAwOworICB9OworCisgIC8vIFVucGFjayBSQlNQIGFuZCBwYXJzZSBTUFMgc3Rh
dGUgZnJvbSB0aGUgc3VwcGxpZWQgYnVmZmVyLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3Bz
U3RhdGU+IFBhcnNlU3BzKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworCisg
cHJvdGVjdGVkOgorICAvLyBQYXJzZSB0aGUgU1BTIHN0YXRlLCB1cCB0aWxsIHRoZSBWVUkgcGFy
dCwgZm9yIGEgYml0IGJ1ZmZlciB3aGVyZSBSQlNQCisgIC8vIGRlY29kaW5nIGhhcyBhbHJlYWR5
IGJlZW4gcGVyZm9ybWVkLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3BzU3RhdGU+IFBhcnNl
U3BzVXBUb1Z1aShydGM6OkJpdEJ1ZmZlciogYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVzcGFj
ZSB3ZWJydGMKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VSX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9j
b21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIu
Y2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjM5MWFlNTFkZjBmOTA4OTAxNmI0OTg4NGMxNWYyYzE0MThkNTRlNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5jYwpAQCAtMCwwICsxLDYyIEBA
CisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFu
IGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91
bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1
dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2
ZWN0b3I+CisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2lu
Y2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0
Y19iYXNlL2JpdF9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25h
bWVzcGFjZSB7Cit0eXBlZGVmIGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVZwc1BhcnNlcjo6
VnBzU3RhdGU+IE9wdGlvbmFsVnBzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgp
IFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBPcHRpb25h
bFZwcygpOyAgICAgICBcCisgIH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRj
IHsKKworSDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU6OlZwc1N0YXRlKCkgPSBkZWZhdWx0OworCisv
LyBHZW5lcmFsIG5vdGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2Yg
dGhlIEguMjY1IHN0YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8v
IGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5k
IHBhcnNlIFNQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNsOjpvcHRpb25h
bDxIMjY1VnBzUGFyc2VyOjpWcHNTdGF0ZT4gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAg
Y29uc3QgdWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9y
PHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgp
OworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVu
cGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5hbCgmYml0X2J1ZmZl
cik7Cit9CisKK2Fic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiBIMjY1VnBz
UGFyc2VyOjpQYXJzZUludGVybmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBidWZmZXIpIHsKKyAg
Ly8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhyb3VnaCB0aGUg
YWN0dWFsIEhFVkMgVlBTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIuMSAoIlZpZGVv
IHBhcmFtZXRlciBzZXQgUkJTUCBzeW50YXgiKSBvZiB0aGUKKyAgLy8gSC4yNjUgc3RhbmRhcmQg
Zm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24uCisKKyAgVnBzU3RhdGUgdnBzOworCisgIC8vIHZw
c192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIHVpbnQzMl90IHZwc192aWRlb19wYXJh
bWV0ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0
cygmdnBzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQpKTsKKworICB2cHMuaWQgPSB2cHNfdmlk
ZW9fcGFyYW1ldGVyX3NldF9pZDsKKyAgdnBzLmlkID0gMDsKKyAgcmV0dXJuIE9wdGlvbmFsVnBz
KHZwcyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVf
dnBzX3BhcnNlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
Y29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThhMjc3NWY0
M2RmMTdkMThlMDlkYzQwMDdlNjIzYTYzMjA4NWE3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gy
NjVfdnBzX3BhcnNlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAy
MDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs
aWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUg
cm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwg
cHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVO
VFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBp
biB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLwor
CisjaWZuZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfVlBTX1BBUlNFUl9IXworI2RlZmluZSBD
T01NT05fVklERU9fSDI2NV9IMjY1X1ZQU19QQVJTRVJfSF8KKworI2luY2x1ZGUgImFic2wvdHlw
ZXMvb3B0aW9uYWwuaCIKKworbmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBCaXRCdWZmZXI7Cit9CisK
K25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBBIGNsYXNzIGZvciBwYXJzaW5nIG91dCBzZXF1ZW5j
ZSBwYXJhbWV0ZXIgc2V0IChWUFMpIGRhdGEgZnJvbSBhbiBIMjY1IE5BTFUuCitjbGFzcyBIMjY1
VnBzUGFyc2VyIHsKKyBwdWJsaWM6CisgIC8vIFRoZSBwYXJzZWQgc3RhdGUgb2YgdGhlIFZQUy4g
T25seSBzb21lIHNlbGVjdCB2YWx1ZXMgYXJlIHN0b3JlZC4KKyAgLy8gQWRkIG1vcmUgYXMgdGhl
eSBhcmUgYWN0dWFsbHkgbmVlZGVkLgorICBzdHJ1Y3QgVnBzU3RhdGUgeworICAgIFZwc1N0YXRl
KCk7CisKKyAgICB1aW50MzJfdCBpZCA9IDA7CisgIH07CisKKyAgLy8gVW5wYWNrIFJCU1AgYW5k
IHBhcnNlIFZQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCisgIHN0YXRpYyBhYnNs
OjpvcHRpb25hbDxWcHNTdGF0ZT4gUGFyc2VWcHMoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90
IGxlbmd0aCk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBWUFMgc3RhdGUsIGZvciBh
IGJpdCBidWZmZXIgd2hlcmUgUkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisgIC8vIHBl
cmZvcm1lZC4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFZwc1N0YXRlPiBQYXJzZUludGVybmFs
KHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJy
dGMKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9WUFNfUEFSU0VSX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9i
YXNlL21lZGlhX2NvbnN0YW50cy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCmluZGV4IDUxNDRhNmVhNjU1
NWRmYmI2NmM0NjJhZTIxNzdkZmNlY2NjOTE4YmIuLjdiNzBmZjllNDg4NGE1MDM1YjllZTM4OTRj
NTUwMDNjYWJmMWJhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3Rh
bnRzLmNjCkBAIC0xMDcsNiArMTA3LDkgQEAgY29uc3QgY2hhciBrVnA4Q29kZWNOYW1lW10gPSAi
VlA4IjsKIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFtZVtdID0gIlZQOSI7CiBjb25zdCBjaGFyIGtB
djFDb2RlY05hbWVbXSA9ICJBVjFYIjsKIGNvbnN0IGNoYXIga0gyNjRDb2RlY05hbWVbXSA9ICJI
MjY0IjsKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citjb25zdCBjaGFyIGtIMjY1Q29kZWNOYW1lW10g
PSAiSDI2NSI7CisjZW5kaWYKIAogLy8gUkZDIDYxODQgUlRQIFBheWxvYWQgRm9ybWF0IGZvciBI
LjI2NCB2aWRlbwogY29uc3QgY2hhciBrSDI2NEZtdHBQcm9maWxlTGV2ZWxJZFtdID0gInByb2Zp
bGUtbGV2ZWwtaWQiOwpAQCAtMTE0LDYgKzExNywxMyBAQCBjb25zdCBjaGFyIGtIMjY0Rm10cExl
dmVsQXN5bW1ldHJ5QWxsb3dlZFtdID0gImxldmVsLWFzeW1tZXRyeS1hbGxvd2VkIjsKIGNvbnN0
IGNoYXIga0gyNjRGbXRwUGFja2V0aXphdGlvbk1vZGVbXSA9ICJwYWNrZXRpemF0aW9uLW1vZGUi
OwogY29uc3QgY2hhciBrSDI2NEZtdHBTcHJvcFBhcmFtZXRlclNldHNbXSA9ICJzcHJvcC1wYXJh
bWV0ZXItc2V0cyI7CiBjb25zdCBjaGFyIGtIMjY0UHJvZmlsZUxldmVsQ29uc3RyYWluZWRCYXNl
bGluZVtdID0gIjQyZTAxZiI7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorLy8gUkZDIDc3OTggUlRQ
IFBheWxvYWQgRm9ybWF0IGZvciBILjI2NSB2aWRlbworY29uc3QgY2hhciBrSDI2NUZtdHBQcm9m
aWxlU3BhY2VbXSA9ICJwcm9maWxlLXNwYWNlIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwUHJvZmls
ZUlkW10gPSAicHJvZmlsZS1pZCI7Citjb25zdCBjaGFyIGtIMjY1Rm10cFRpZXJGbGFnW10gPSAi
dGllci1mbGFnIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwTGV2ZWxJZFtdID0gImxldmVsLWlkIjsK
KyNlbmRpZgogCiBjb25zdCBpbnQga0RlZmF1bHRWaWRlb01heEZyYW1lcmF0ZSA9IDYwOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRp
YS9iYXNlL21lZGlhX2NvbnN0YW50cy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaAppbmRleCBiOWI4YTMzNmY3
ZjBjYWYyZmYxOTQ2OWZlYTc1Y2I3OTI5NDcwYTU4Li5hMTgxOTNlMDVkMjQ4YzEyZjZhNDU4MmI1
NmU0YjIxODE5MWE5MzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3Rh
bnRzLmgKQEAgLTEzNiw2ICsxMzYsOSBAQCBSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtW
cDhDb2RlY05hbWVbXTsKIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFt
ZVtdOwogUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrQXYxQ29kZWNOYW1lW107CiBSVENf
RVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY0Q29kZWNOYW1lW107CisjaWZuZGVmIERJU0FC
TEVfSDI2NQorUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUNvZGVjTmFtZVtdOwor
I2VuZGlmCiAKIC8vIFJGQyA2MTg0IFJUUCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4yNjQgdmlkZW8K
IFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRGbXRwUHJvZmlsZUxldmVsSWRbXTsK
QEAgLTE0NCw2ICsxNDcsMTQgQEAgUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NEZt
dHBQYWNrZXRpemF0aW9uTW9kZVtdOwogZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRGbXRwU3Byb3BQ
YXJhbWV0ZXJTZXRzW107CiBleHRlcm4gY29uc3QgY2hhciBrSDI2NFByb2ZpbGVMZXZlbENvbnN0
cmFpbmVkQmFzZWxpbmVbXTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKy8vIFJGQyA3Nzk4IFJU
UCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4yNjUgdmlkZW8KK1JUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0
IGNoYXIga0gyNjVGbXRwUHJvZmlsZVNwYWNlW107CitSVENfRVhQT1JUIGV4dGVybiBjb25zdCBj
aGFyIGtIMjY1Rm10cFByb2ZpbGVJZFtdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBr
SDI2NUZtdHBUaWVyRmxhZ1tdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUZt
dHBMZXZlbElkW107CisjZW5kaWYKKwogZXh0ZXJuIGNvbnN0IGludCBrRGVmYXVsdFZpZGVvTWF4
RnJhbWVyYXRlOwogCiBleHRlcm4gY29uc3Qgc2l6ZV90IGtDb25mZXJlbmNlTWF4TnVtU3BhdGlh
bExheWVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL0JVSUxELmduCmluZGV4IDI4MjZk
MGYwOWIxNDRlNDVhMGI3ZDQ3MGQwYmE5ZDU3YzQzMzVjZTEuLjZmOTAyZmY3YjBjNWYyYjVhMGFi
OGJhYmI2NDk2ZTVjMzllOGMwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24KKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9CVUlM
RC5nbgpAQCAtMjM2LDYgKzIzNiwxNyBAQCBydGNfbGlicmFyeSgicnRwX3J0Y3AiKSB7CiAgICAg
ZGVmaW5lcyA9IFsgIkJXRV9URVNUX0xPR0dJTkdfQ09NUElMRV9USU1FX0VOQUJMRT0wIiBdCiAg
IH0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisgICAgICAic291
cmNlL3J0cF9mb3JtYXRfaDI2NS5jYyIsCisgICAgICAic291cmNlL3J0cF9mb3JtYXRfaDI2NS5o
IiwKKyAgICBdCisgIH0KKworICBpZiAoIXJ0Y191c2VfaDI2NSkgeworICAgIGRlZmluZXMgKz0g
WyJESVNBQkxFX0gyNjUiXQorICB9CisKICAgZGVwcyA9IFsKICAgICAiOnJ0cF9ydGNwX2Zvcm1h
dCIsCiAgICAgIjpydHBfdmlkZW9faGVhZGVyIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2NyZWF0
ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9k
ZXBhY2tldGl6ZXIuY2MKaW5kZXggNTllMTM5OWM5OWYyMmU5ZTY4ZjVjNjY3NzFkZWVlNzUxNGM3
MGM1ZC4uOGJiYjNhNGQ5NzgwMmE4ZDAwZDY0Nzg4YjMwMTAxMzZlYTlmMmI4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3Vy
Y2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKQEAgLTEzLDYgKzEzLDkgQEAKICNp
bmNsdWRlIDxtZW1vcnk+CiAKICNpbmNsdWRlICJhcGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5o
IgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJj
ZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyX2F2MS5oIgogI2luY2x1ZGUgIm1vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfZ2VuZXJpYy5oIgpAQCAt
MjcsNiArMzAsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvUnRwRGVwYWNrZXRpemVyPiBDcmVh
dGVWaWRlb1J0cERlcGFja2V0aXplcigKICAgc3dpdGNoIChjb2RlYykgewogICAgIGNhc2Uga1Zp
ZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VmlkZW9SdHBEZXBh
Y2tldGl6ZXJIMjY0PigpOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0Nv
ZGVjSDI2NToKKyAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvUnRwRGVwYWNrZXRp
emVySDI2NT4oKTsKKyNlbmRpZgogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6CiAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxWaWRlb1J0cERlcGFja2V0aXplclZwOD4oKTsKICAgICBjYXNl
IGtWaWRlb0NvZGVjVlA5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMzQ2MzBhYTg3YmFi
MDkwYTE0ZDI3YjQ4MzM2Mzc5MWY0ODExZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9o
MjY1X3Nwc19wYXJzZXIuY2MKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBJbnRlbCBMaWNlbnNl
CisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtpdAorICogVGhpcyBpcyBy
ZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlzIGZyZWUgZm9yIGJvdGgg
YWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpbmNsdWRlICJ3ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgiCisKKyNpbmNsdWRlICJydGNf
YmFzZS9iaXRfYnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvYnl0ZV9idWZmZXIuaCIKKyNp
bmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNkZWZp
bmUgUkVUVVJOX0ZBTFNFX09OX0ZBSUwoeCkgXAorICBpZiAoISh4KSkgeyAgICAgICAgICAgICAg
ICAgICBcCisgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgIFwKKyAgfQorCituYW1lc3Bh
Y2Ugd2VicnRjIHsKKworSDI2NVNwc1BhcnNlcjo6SDI2NVNwc1BhcnNlcihjb25zdCB1aW50OF90
KiBzcHMsIHNpemVfdCBieXRlX2xlbmd0aCkKKyAgICA6IHNwc18oc3BzKSwgYnl0ZV9sZW5ndGhf
KGJ5dGVfbGVuZ3RoKSwgd2lkdGhfKCksIGhlaWdodF8oKSB7Cit9CisKK2Jvb2wgSDI2NVNwc1Bh
cnNlcjo6UGFyc2UoKSB7CisgIC8vIEdlbmVyYWwgbm90ZTogdGhpcyBpcyBiYXNlZCBvZmYgdGhl
IDA0LzIwMTUgdmVyc2lvbiBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIC8vIFlvdSBjYW4gZmlu
ZCBpdCBvbiB0aGlzIHBhZ2U6CisgIC8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4y
NjUKKworICBjb25zdCBjaGFyKiBzcHNfYnl0ZXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihzcHNfKTsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2Fs
bHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFz
dCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4K
KyAgLy8gc2VjdGlvbiA3LjMuMS4xIG9mIHRoZSBILjI2NSBzdGFuZGFyZCwgc2ltaWxhciB0byBI
MjY0LgorICBydGM6OkJ5dGVCdWZmZXJXcml0ZXIgcmJzcF9idWZmZXI7CisgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgYnl0ZV9sZW5ndGhfOykgeworICAgIC8vIEJlIGNhcmVmdWwgYWJvdXQgb3Zl
ci91bmRlcmZsb3cgaGVyZS4gYnl0ZV9sZW5ndGhfIC0gMyBjYW4gdW5kZXJmbG93LCBhbmQKKyAg
ICAvLyBpICsgMyBjYW4gb3ZlcmZsb3csIGJ1dCBieXRlX2xlbmd0aF8gLSBpIGNhbid0LCBiZWNh
dXNlIGkgPCBieXRlX2xlbmd0aF8KKyAgICAvLyBhYm92ZSwgYW5kIHRoYXQgZXhwcmVzc2lvbiB3
aWxsIHByb2R1Y2UgdGhlIG51bWJlciBvZiBieXRlcyBsZWZ0IGluCisgICAgLy8gdGhlIHN0cmVh
bSBpbmNsdWRpbmcgdGhlIGJ5dGUgYXQgaS4KKyAgICBpZiAoYnl0ZV9sZW5ndGhfIC0gaSA+PSAz
ICYmIHNwc19baV0gPT0gMCAmJiBzcHNfW2kgKyAxXSA9PSAwICYmCisgICAgICAgIHNwc19baSAr
IDJdID09IDMpIHsKKyAgICAgIC8vIFR3byByYnNwIGJ5dGVzICsgdGhlIGVtdWxhdGlvbiBieXRl
LgorICAgICAgcmJzcF9idWZmZXIuV3JpdGVCeXRlcyhzcHNfYnl0ZXMgKyBpLCAyKTsKKyAgICAg
IGkgKz0gMzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gU2luZ2xlIHJic3AgYnl0ZS4KKyAgICAg
IHJic3BfYnVmZmVyLldyaXRlQnl0ZXMoc3BzX2J5dGVzICsgaSwgMSk7CisgICAgICBpKys7Cisg
ICAgfQorICB9CisKKyAgLy8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFy
c2UgdGhyb3VnaCB0aGUgYWN0dWFsIEhFVkMgU1BTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24g
Ny4zLjIuMS4xICgiU2VxdWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhIHN5bnRheCIpIG9mIHRoZQor
ICAvLyBILjI2NSBzdGFuZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2lu
Y2Ugd2Ugb25seSBjYXJlIGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkg
b2YgZmllbGRzLCBidXQKKyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJv
dWdoIGEgbG90IG9mIHRoZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2
ZSB2YXJpYWJsZSBzaXplLgorICAvLyBVbmxpa2UgSDI2NCwgZm9yIEgyNjUsIHRoZSBwaWN0dXJl
IHNpemUgaXMgaW5kaWNhdGVkIGJ5IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMKKyAgLy8gYW5k
IHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzLCAgaWYgY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcg
IT0xOworICAvLyBXaGVuIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnIGlzIDEsICB0aGUgd2lkdGgg
aXMgYWRqdXN0ZWQgd2l0aCBjb25fd2luX3h4X29mZnNldAorICAvLworICBydGM6OkJpdEJ1ZmZl
ciBwYXJzZXIocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4ocmJzcF9idWZmZXIuRGF0
YSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJic3BfYnVmZmVyLkxlbmd0aCgpKTsKKwor
ICAvLyBUaGUgZ29sb21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNvbnN1bWUu
CisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91cl9wbGFu
ZV9mbGFnIGlzIG9wdGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9ucworICAv
LyBhYm91dCB0aGUgQ2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2UgdHJlYXQg
Y3JvcCBjb29yZGluYXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcg
PSAwOworICAvLyBjaHJvbWFfZm9ybWF0X2lkYyB3aWxsIGJlIENocm9tYUFycmF5VHlwZSBpZiBz
ZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZyBpcworICAvLyAwLiBJdCBkZWZhdWx0cyB0byAxLCB3
aGVuIG5vdCBzcGVjaWZpZWQuCisgIHVpbnQzMl90IGNocm9tYV9mb3JtYXRfaWRjID0gMTsKKwor
CisgIC8vIHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIFJFVFVSTl9GQUxTRV9P
Tl9GQUlMKHBhcnNlci5Db25zdW1lQml0cyg0KSk7CisgIC8vIHNwc19tYXhfc3ViX2xheWVyc19t
aW51czE6IHUoMykKKyAgdWludDMyX3Qgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSA9IDA7Cisg
IFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmc3BzX21heF9zdWJfbGF5ZXJz
X21pbnVzMSwgMykpOworICAvLyBzcHNfdGVtcG9yYWxfaWRfbmVzdGluZ19mbGFnOiB1KDEpCisg
IFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygxKSk7CisgIC8vIHByb2Zp
bGVfdGllcl9sZXZlbCgxLCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxKS4gV2UgYXJlIGFjdXRh
bGx5IG5vdAorICAvLyB1c2luZyB0aGVtLCBzbyByZWFkL3NraXAgb3ZlciBpdC4KKyAgLy8gZ2Vu
ZXJhbF9wcm9maWxlX3NwYWNlK2dlbmVyYWxfdGllcl9mbGFnK2dlbmVyYWxfcHJmaWxlX2lkYzog
dSg4KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDEpKTsKKyAg
Ly8gZ2VuZXJhbF9wcm9maWxlX2NvbXBhdGFiaWxpdGl5X2ZsYWdbMzJdCisgIFJFVFVSTl9GQUxT
RV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoNCkpOworICAvLyBnZW5lcmFsX3Byb2dyZXNz
aXZlX3NvdXJjZV9mbGFnICsgaW50ZXJsYWNlZF9zb3VyY2VfZmxhZysgbm9uLXBhY2tlZF9jb25z
dHJhaW50CisgIC8vIGZsYWcgKyBmcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzogdSg0KQorICBS
RVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNCkpOworICAvLyBnZW5lcmFs
X3Byb2ZpbGVfaWRjIGRlY2lkZWQgZmxhZ3Mgb3IgcmVzZXJ2ZWQuICB1KDQzKQorICBSRVRVUk5f
RkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNDMpKTsKKyAgLy8gZ2VuZXJhbF9pbmJs
ZF9mbGFnIG9yIHJlc2VydmVkIDA6IHUoMSkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2Vy
LkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJO
X0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCeXRlcygxKSk7CisgIC8vIGlmIG1heF9zdWJf
bGF5ZXJzX21pbnVzMSA+PTEsIHJlYWQgdGhlIHN1YmxheWVyIHByb2ZpbGUgaW5mb3JtYXRpb24K
KyAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3M7
CisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnczsK
KyAgdWludDMyX3Qgc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudCA9IDA7CisgIHVpbnQzMl90IHN1
Yl9sYXllcl9sZXZlbF9wcmVzZW50ID0gMDsKKyAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHNw
c19tYXhfc3ViX2xheWVyc19taW51czE7IGkrKykgeworICAgICAgLy9zdWJsYXllcl9wcm9maWxl
X3ByZXNlbnRfZmxhZyBhbmQgc3VibGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAg
ICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRCaXRzKCZzdWJfbGF5ZXJfcHJvZmls
ZV9wcmVzZW50LCAxKSk7CisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEJp
dHMoJnN1Yl9sYXllcl9sZXZlbF9wcmVzZW50LCAxKSk7CisgICAgICBzdWJfbGF5ZXJfcHJvZmls
ZV9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50KTsKKyAg
ICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfbGV2
ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNwc19tYXhfc3ViX2xheWVyc19taW51czEgPiAwKSB7
CisgICAgICBmb3IgKHVpbnQzMl90IGogPSBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBqIDwg
ODsgaisrKSB7CisgICAgICAgIC8vIHJlc2VydmVkIDIgYml0czogdSgyKQorICAgICAgICAgIFJF
VFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygyKSk7CisgICAgICB9CisgIH0K
KyAgZm9yICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGsr
KykgeworICAgICAgaWYoc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnc1trXSkgey8vCisg
ICAgICAgIC8vIHN1Yl9sYXllciBwcm9maWxlX3NwYWNlL3RpZXJfZmxhZy9wcm9maWxlX2lkYy4g
aWdub3JlZC4gdSg4KQorICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3Vt
ZUJ5dGVzKDEpKTsKKyAgICAgICAgLy8gcHJvZmlsZV9jb21wYXRhYmlsaXR5X2ZsYWc6ICB1KDMy
KQorICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDQpKTsK
KyAgICAgICAgLy8gc3ViX2xheWVyIHByb2dyZXNzaXZlX3NvdXJjZV9mbGFnL2ludGVybGFjZWRf
c291cmNlX2ZsYWcvCisgICAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2ZyYW1l
X29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlM
KHBhcnNlci5Db25zdW1lQml0cyg0KSk7CisgICAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFy
ZSBwcm9maWxlX2lkYyBzcGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4gdSg0MykKKyAg
ICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDQzKSk7CisgICAg
ICAgIC8vIDEtYml0IHByb2ZpbGVfaWRjIHNwZWNpZmljIGluYmxkIGZsYWcuICBXZSBzaW1wbHkg
cmVhZC9za2lwIGl0LiB1KDEpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5D
b25zdW1lQml0cygxKSk7CisgICAgICB9CisgICAgICBpZiAoc3ViX2xheWVyX2xldmVsX3ByZXNl
bnRfZmxhZ3Nba10pIHsKKyAgICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAg
ICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoMSkpOworICAg
ICAgfQorICB9CisgIC8vc3BzX3NlcV9wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBSRVRVUk5f
RkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3Jl
ZCkpOworICAvLyBjaHJvbWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0ZBTFNFX09OX0ZB
SUwocGFyc2VyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY2hyb21hX2Zvcm1hdF9pZGMpKTsKKyAg
aWYgKGNocm9tYV9mb3JtYXRfaWRjID09IDMpIHsKKyAgICAvLyBzZXBlcmF0ZV9jb2xvdXJfcGxh
bmVfZmxhZzogdSgxKQorICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygm
c2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcsIDEpKTsKKyAgfQorICB1aW50MzJfdCBwaWNfd2lk
dGhfaW5fbHVtYV9zYW1wbGVzID0gMDsKKyAgdWludDMyX3QgcGljX2hlaWdodF9pbl9sdW1hX3Nh
bXBsZXMgPSAwOworICAvLyBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2KQorICBSRVRV
Uk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfd2lkdGhf
aW5fbHVtYV9zYW1wbGVzKSk7CisgIC8vIHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2
KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZw
aWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcykpOworICAvLyBjb25mb3JtYW5jZV93aW5kb3dfZmxh
ZzogdSgxKQorICB1aW50MzJfdCBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyA9IDA7CisgIFJFVFVS
Tl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcs
IDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNldCA9IDA7CisgIHVpbnQzMl90
IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3RvcF9vZmZz
ZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zmc2V0ID0gMDsKKyAgaWYgKGNv
bmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAgICAvLyBjb25mX3dpbl9sZWZ0X29mZnNldDog
dWUodikKKyAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxH
b2xvbWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7CisgICAgICAvLyBjb25mX3dpbl9yaWdodF9v
ZmZzZXQ6IHVlKHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9u
ZW50aWFsR29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAgIC8vIGNvbmZfd2lu
X3RvcF9vZmZzZXQ6IHVlKHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVh
ZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAgICAvLyBjb25m
X3dpbl9ib3R0b21fb2Zmc2V0OiB1ZSh2KQorICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFy
c2VyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY29uZl93aW5fYm90dG9tX29mZnNldCkpOworICB9
CisKKyAgLy9Gb3IgZW5vdWdoIHRvIGdldCB0aGUgcmVzb2x1dGlvbiBpbmZvcm1hdGlvbi4gY2Fs
Y2FsdWF0ZSBhY2NvcmRpbmcgdG8gSEVWQyBzcGVjIDcuNC4zLjIKKyAgaW50IHdpZHRoID0gMDsK
KyAgaW50IGhlaWdodCA9IDA7CisKKyAgd2lkdGggPSBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVz
OworICBoZWlnaHQgPSBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczsKKworICBpZiAoY29uZm9y
bWFuY2Vfd2luZG93X2ZsYWcpIHsKKyAgICBpbnQgc3ViX3dpZHRoX2MgPSAoKDEgPT0gY2hyb21h
X2Zvcm1hdF9pZGMpIHx8ICgyID09IGNocm9tYV9mb3JtYXRfaWRjKSkgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgICgwID09IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnKSA/IDIgOiAxOwor
ICAgIGludCBzdWJfaGVpZ2h0X2MgPSAoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgJiYgKDAgPT0g
c2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcpID8gMiA6IDE7CisgICAgLy90aGUgb2Zmc2V0IGlu
Y2x1ZGVzIHRoZSBwaXhlbCB3aXRoaW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVk
IHRvICsxIGFzIHBlciBzcGVjCisgICAgd2lkdGggLT0gc3ViX3dpZHRoX2MqKGNvbmZfd2luX3Jp
Z2h0X29mZnNldCArIGNvbmZfd2luX2xlZnRfb2Zmc2V0KTsKKyAgICBoZWlnaHQgLT0gc3ViX2hl
aWdodF9jKihjb25mX3dpbl90b3Bfb2Zmc2V0ICsgY29uZl93aW5fYm90dG9tX29mZnNldCk7Cisg
IH0KKworICB3aWR0aF8gPSB3aWR0aDsKKyAgaGVpZ2h0XyA9IGhlaWdodDsKKyAgcmV0dXJuIHRy
dWU7CisKK30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
aDI2NV9zcHNfcGFyc2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNjQyYjliZDUzNzY1YTFhMGNkNWNhNTBmOGNmZDNmYjAyMzE0NTgwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
ICBJbnRlbCBMaWNlbnNlCisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtp
dAorICogVGhpcyBpcyByZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlz
IGZyZWUgZm9yIGJvdGggYWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpZm5k
ZWYgV0VCUlRDX01PRFVMRVNfUlRQX1JUQ1BfU09VUkNFX0gyNjVfU1BTX1BBUlNFUl9IXworI2Rl
ZmluZSBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfSDI2NV9TUFNfUEFSU0VSX0hfCisK
KyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworbmFtZXNwYWNlIHdl
YnJ0YyB7CisKKy8vIEEgY2xhc3MgZm9yIHBhcnNpbmcgb3V0IHNlcXVlbmNlIHBhcmFtZXRlciBz
ZXQgKFNQUykgZGF0YSBmcm9tIGFuIEgyNjUgTkFMVS4KKy8vIEN1cnJlbnRseSwgb25seSByZXNv
bHV0aW9uIGlzIHJlYWQgd2l0aG91dCBiZWluZyBpZ25vcmVkLgorY2xhc3MgSDI2NVNwc1BhcnNl
ciB7CisgcHVibGljOgorICBIMjY1U3BzUGFyc2VyKGNvbnN0IHVpbnQ4X3QqIHNwcywgc2l6ZV90
IGJ5dGVfbGVuZ3RoKTsKKyAgLy8gUGFyc2VzIHRoZSBTUFMgdG8gY29tcGxldGlvbi4gUmV0dXJu
cyB0cnVlIGlmIHRoZSBTUFMgd2FzIHBhcnNlZCBjb3JyZWN0bHkuCisgIGJvb2wgUGFyc2UoKTsK
KyAgdWludDE2X3Qgd2lkdGgoKSB7IHJldHVybiB3aWR0aF87IH0KKyAgdWludDE2X3QgaGVpZ2h0
KCkgeyByZXR1cm4gaGVpZ2h0XzsgfQorCisgcHJpdmF0ZToKKyAgY29uc3QgdWludDhfdCogY29u
c3Qgc3BzXzsKKyAgY29uc3Qgc2l6ZV90IGJ5dGVfbGVuZ3RoXzsKKworICB1aW50MTZfdCB3aWR0
aF87CisgIHVpbnQxNl90IGhlaWdodF87Cit9OworCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisj
ZW5kaWYgIC8vIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9IMjY1X1NQU19QQVJTRVJf
SF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9y
bWF0LmNjCmluZGV4IDEyYjVlOGRkYzVhZDY3YmNkMTBhNDNhMWJjMzBiMTEwYTVhY2IxZTQuLjYy
ODEzZDJjNmYyN2NiZTgwMzAyYmNiMWE0MmVhYjViZjRiNjRhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL3J0cF9mb3JtYXQuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5jYwpAQCAtMTQsMTEg
KzE0LDE3IEBACiAKICNpbmNsdWRlICJhYnNsL3R5cGVzL3ZhcmlhbnQuaCIKICNpbmNsdWRlICJt
b2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjQuaCIKKyNpZm5kZWYgRElTQUJM
RV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1
LmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0
X3ZpZGVvX2dlbmVyaWMuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBf
Zm9ybWF0X3ZwOC5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3Jt
YXRfdnA5LmgiCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3BhY2tldGl6
ZXJfYXYxLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5j
bHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9k
dWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVkZS92
cDhfZ2xvYmFscy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkv
aW5jbHVkZS92cDlfZ2xvYmFscy5oIgogI2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNrcy5oIgpAQCAt
NDUsNiArNTEsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFJ0cFBhY2tldGl6ZXI+IFJ0cFBhY2tldGl6
ZXI6OkNyZWF0ZSgKICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJ0cFBhY2tldGl6ZXJI
MjY0PigKICAgICAgICAgICBwYXlsb2FkLCBsaW1pdHMsIGgyNjQucGFja2V0aXphdGlvbl9tb2Rl
LCAqZnJhZ21lbnRhdGlvbik7CiAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNl
IGtWaWRlb0NvZGVjSDI2NTogeworICAgICAgUlRDX0NIRUNLKGZyYWdtZW50YXRpb24pOworICAg
ICAgY29uc3QgYXV0byYgaDI2NSA9CisgICAgICAgICAgYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVy
SDI2NT4ocnRwX3ZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisgICAgICByZXR1cm4g
YWJzbDo6bWFrZV91bmlxdWU8UnRwUGFja2V0aXplckgyNjU+KAorICAgICAgICAgIHBheWxvYWQs
IGxpbWl0cywgaDI2NS5wYWNrZXRpemF0aW9uX21vZGUsICpmcmFnbWVudGF0aW9uKTsKKyAgICB9
CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjVlA4OiB7CiAgICAgICBjb25zdCBhdXRvJiB2
cDggPQogICAgICAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlclZQOD4ocnRwX3ZpZGVvX2hl
YWRlci52aWRlb190eXBlX2hlYWRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0
X2gyNjUuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuY2MKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFiMDRh
MDA3YzVlZjM1OWQxYTg2NGZkNTQxZTg3MGIzODUxNzZlNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF9mb3JtYXRfaDI2NS5jYwpAQCAtMCwwICsxLDY1MCBAQAorLyoKKyAqICBJbnRl
bCBMaWNlbnNlCisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtpdAorICog
VGhpcyBpcyByZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlzIGZyZWUg
Zm9yIGJvdGggYWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpbmNsdWRlIDxz
dHJpbmcuaD4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisj
aW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJjb21t
b25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8v
aDI2NS9oMjY1X3Nwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1
X3Zwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90
eXBlcy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2J5dGVfaW8uaCIKKyNp
bmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNpbmNs
dWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfcGFja2V0X3RvX3NlbmQuaCIKKyNpbmNs
dWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCit1c2luZyBuYW1lc3BhY2UgcnRjOworCituYW1lc3Bh
Y2Ugd2VicnRjIHsKK25hbWVzcGFjZSB7CisKK2VudW0gTmFsdVR5cGUgeworICBrVHJhaWxOID0g
MCwKKyAga1RyYWlsUiA9IDEsCisgIGtUc2FOID0gMiwKKyAga1RzYVIgPSAzLAorICBrU3RzYU4g
PSA0LAorICBrU3RzYVIgPSA1LAorICBrUmFkbE4gPSA2LAorICBrUmFkbFIgPSA3LAorICBrQmxh
V0xwID0gMTYsCisgIGtCbGFXUmFkbCA9IDE3LAorICBrQmxhTkxwID0gMTgsCisgIGtJZHJXUmFk
bCA9IDE5LAorICBrSWRyTkxwID0gMjAsCisgIGtDcmEgPSAyMSwKKyAga1ZwcyA9IDMyLAorICBr
SGV2Y1NwcyA9IDMzLAorICBrSGV2Y1BwcyA9IDM0LAorICBrSGV2Y0F1ZCA9IDM1LAorICBrUHJl
Zml4U2VpID0gMzksCisgIGtTdWZmaXhTZWkgPSA0MCwKKyAga0hldmNBcCA9IDQ4LAorICBrSGV2
Y0Z1ID0gNDkKK307CisKKy8qCisgICAwICAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg
ICAgICAgMiAgICAgICAgICAgICAgICAgICAzCisgICAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAy
IDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEKKyAgKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAgfCAg
ICBQYXlsb2FkSGRyIChUeXBlPTQ5KSAgICAgICB8ICAgRlUgaGVhZGVyICAgfCBET05MIChjb25k
KSAgIHwKKyAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLXwKKyovCisvLyBVbmxpa2UgSC4yNjQsIEhFVkMgTkFMIGhlYWRlciBp
cyAyLWJ5dGVzLgorc3RhdGljIGNvbnN0IHNpemVfdCBrSGV2Y05hbEhlYWRlclNpemUgPSAyOwor
Ly8gSC4yNjUncyBGVSBpcyBjb25zdHJ1Y3RlZCBvZiAyLWJ5dGUgcGF5bG9hZCBoZWFkZXIsIGFu
ZCAxLWJ5dGUgRlUgaGVhZGVyCitzdGF0aWMgY29uc3Qgc2l6ZV90IGtIZXZjRnVIZWFkZXJTaXpl
ID0gMTsKK3N0YXRpYyBjb25zdCBzaXplX3Qga0hldmNMZW5ndGhGaWVsZFNpemUgPSAyOworc3Rh
dGljIGNvbnN0IHNpemVfdCBrSGV2Y0FwSGVhZGVyU2l6ZSA9CisgICAga0hldmNOYWxIZWFkZXJT
aXplICsga0hldmNMZW5ndGhGaWVsZFNpemU7CisKK2VudW0gSGV2Y05hbEhkck1hc2tzIHsKKyAg
a0hldmNGQml0ID0gMHg4MCwKKyAga0hldmNUeXBlTWFzayA9IDB4N0UsCisgIGtIZXZjTGF5ZXJJ
REhNYXNrID0gMHgxLAorICBrSGV2Y0xheWVySURMTWFzayA9IDB4RjgsCisgIGtIZXZjVElETWFz
ayA9IDB4NywKKyAga0hldmNUeXBlTWFza04gPSAweDgxLAorICBrSGV2Y1R5cGVNYXNrSW5GdUhl
YWRlciA9IDB4M0YKK307CisKKy8vIEJpdCBtYXNrcyBmb3IgRlUgaGVhZGVycy4KK2VudW0gSGV2
Y0Z1RGVmcyB7IGtIZXZjU0JpdCA9IDB4ODAsIGtIZXZjRUJpdCA9IDB4NDAsIGtIZXZjRnVUeXBl
Qml0ID0gMHgzRiB9OworCisvLyBUT0RPKHBib3MpOiBBdm9pZCBwYXJzaW5nIHRoaXMgaGVyZSBh
cyB3ZWxsIGFzIGluc2lkZSB0aGUgaml0dGVyIGJ1ZmZlci4KK2Jvb2wgUGFyc2VBcFN0YXJ0T2Zm
c2V0cyhjb25zdCB1aW50OF90KiBuYWx1X3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgbGVuZ3RoX3JlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZl
Y3RvcjxzaXplX3Q+KiBvZmZzZXRzKSB7CisgIHNpemVfdCBvZmZzZXQgPSAwOworICB3aGlsZSAo
bGVuZ3RoX3JlbWFpbmluZyA+IDApIHsKKyAgICAvLyBCdWZmZXIgZG9lc24ndCBjb250YWluIHJv
b20gZm9yIGFkZGl0aW9uYWwgbmFsdSBsZW5ndGguCisgICAgaWYgKGxlbmd0aF9yZW1haW5pbmcg
PCBzaXplb2YodWludDE2X3QpKQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIHVpbnQxNl90IG5h
bHVfc2l6ZSA9IEJ5dGVSZWFkZXI8dWludDE2X3Q+OjpSZWFkQmlnRW5kaWFuKG5hbHVfcHRyKTsK
KyAgICBuYWx1X3B0ciArPSBzaXplb2YodWludDE2X3QpOworICAgIGxlbmd0aF9yZW1haW5pbmcg
LT0gc2l6ZW9mKHVpbnQxNl90KTsKKyAgICBpZiAobmFsdV9zaXplID4gbGVuZ3RoX3JlbWFpbmlu
ZykKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICBuYWx1X3B0ciArPSBuYWx1X3NpemU7CisgICAg
bGVuZ3RoX3JlbWFpbmluZyAtPSBuYWx1X3NpemU7CisKKyAgICBvZmZzZXRzLT5wdXNoX2JhY2so
b2Zmc2V0ICsga0hldmNBcEhlYWRlclNpemUpOworICAgIG9mZnNldCArPSBrSGV2Y0xlbmd0aEZp
ZWxkU2l6ZSArIG5hbHVfc2l6ZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFt
ZXNwYWNlCisKK1J0cFBhY2tldGl6ZXJIMjY1OjpSdHBQYWNrZXRpemVySDI2NSgKKyAgICBydGM6
OkFycmF5Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2FkLAorICAgIFBheWxvYWRTaXplTGltaXRz
IGxpbWl0cywKKyAgICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlLAor
ICAgIGNvbnN0IFJUUEZyYWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24pCisgICAgOiBs
aW1pdHNfKGxpbWl0cyksCisgICAgICBudW1fcGFja2V0c19sZWZ0XygwKSB7CisgIC8vIEd1YXJk
IGFnYWluc3QgdW5pbml0aWFsaXplZCBtZW1vcnkgaW4gcGFja2V0aXphdGlvbl9tb2RlLgorICBS
VENfQ0hFQ0socGFja2V0aXphdGlvbl9tb2RlID09IEgyNjVQYWNrZXRpemF0aW9uTW9kZTo6Tm9u
SW50ZXJsZWF2ZWQgfHwKKyAgICAgICAgICAgIHBhY2tldGl6YXRpb25fbW9kZSA9PSBIMjY1UGFj
a2V0aXphdGlvbk1vZGU6OlNpbmdsZU5hbFVuaXQpOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0aW9uVmVjdG9yU2l6ZTsgKytpKSB7CisgICAgY29u
c3QgdWludDhfdCogZnJhZ21lbnQgPQorICAgICAgICBwYXlsb2FkLmRhdGEoKSArIGZyYWdtZW50
YXRpb24uZnJhZ21lbnRhdGlvbk9mZnNldFtpXTsKKyAgICBjb25zdCBzaXplX3QgZnJhZ21lbnRf
bGVuZ3RoID0gZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldOworICAgIGlucHV0
X2ZyYWdtZW50c18ucHVzaF9iYWNrKEZyYWdtZW50KGZyYWdtZW50LCBmcmFnbWVudF9sZW5ndGgp
KTsKKyAgfQorCisgIGlmICghR2VuZXJhdGVQYWNrZXRzKHBhY2tldGl6YXRpb25fbW9kZSkpIHsK
KyAgICAvLyBJZiBmYWlsZWQgdG8gZ2VuZXJhdGUgYWxsIHRoZSBwYWNrZXRzLCBkaXNjYXJkIGFs
cmVhZHkgZ2VuZXJhdGVkCisgICAgLy8gcGFja2V0cyBpbiBjYXNlIHRoZSBjYWxsZXIgd291bGQg
aWdub3JlIHJldHVybiB2YWx1ZSBhbmQgc3RpbGwgdHJ5IHRvCisgICAgLy8gY2FsbCBOZXh0UGFj
a2V0KCkuCisgICAgbnVtX3BhY2tldHNfbGVmdF8gPSAwOworICAgIHdoaWxlICghcGFja2V0c18u
ZW1wdHkoKSkgeworICAgICAgcGFja2V0c18ucG9wKCk7CisgICAgfQorICB9Cit9CisKK1J0cFBh
Y2tldGl6ZXJIMjY1Ojp+UnRwUGFja2V0aXplckgyNjUoKSB7fQorCitzaXplX3QgUnRwUGFja2V0
aXplckgyNjU6Ok51bVBhY2tldHMoKSBjb25zdCB7CisgIHJldHVybiBudW1fcGFja2V0c19sZWZ0
XzsKK30KKworUnRwUGFja2V0aXplckgyNjU6OkZyYWdtZW50OjpGcmFnbWVudChjb25zdCB1aW50
OF90KiBidWZmZXIsIHNpemVfdCBsZW5ndGgpCisgICAgOiBidWZmZXIoYnVmZmVyKSwgbGVuZ3Ro
KGxlbmd0aCkge30KK1J0cFBhY2tldGl6ZXJIMjY1OjpGcmFnbWVudDo6RnJhZ21lbnQoY29uc3Qg
RnJhZ21lbnQmIGZyYWdtZW50KQorICAgIDogYnVmZmVyKGZyYWdtZW50LmJ1ZmZlciksIGxlbmd0
aChmcmFnbWVudC5sZW5ndGgpIHt9CisKKworYm9vbCBSdHBQYWNrZXRpemVySDI2NTo6R2VuZXJh
dGVQYWNrZXRzKAorICAgIEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUp
IHsKKyAgLy8gRm9yIEhFVkMgd2UgZm9sbG93IG5vbi1pbnRlcmxlYXZlZCBtb2RlIGZvciB0aGUg
cGFja2V0aXphdGlvbiwKKyAgLy8gYW5kIGRvbid0IHN1cHBvcnQgc2luZ2xlLW5hbHUgbW9kZSBh
dCBwcmVzZW50LgorICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlucHV0X2ZyYWdtZW50c18uc2l6
ZSgpOykgeworICAgIGludCBmcmFnbWVudF9sZW4gPSBpbnB1dF9mcmFnbWVudHNfW2ldLmxlbmd0
aDsKKyAgICBpbnQgc2luZ2xlX3BhY2tldF9jYXBhY2l0eSA9IGxpbWl0c18ubWF4X3BheWxvYWRf
bGVuOworICAgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSA9PSAxKQorICAgICAgc2luZ2xl
X3BhY2tldF9jYXBhY2l0eSAtPSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbjsK
KyAgICBlbHNlIGlmIChpID09IDApCisgICAgICBzaW5nbGVfcGFja2V0X2NhcGFjaXR5IC09IGxp
bWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgZWxzZSBpZiAoaSArIDEgPT0g
aW5wdXRfZnJhZ21lbnRzXy5zaXplKCkpIHsKKyAgICAgIC8vIFByZXRlbmQgdGhhdCBsYXN0IGZy
YWdtZW50IGlzIGxhcmdlciBpbnN0ZWFkIG9mIG1ha2luZyBsYXN0IHBhY2tldAorICAgICAgLy8g
c21hbGxlci4KKyAgICAgIHNpbmdsZV9wYWNrZXRfY2FwYWNpdHkgLT0gbGltaXRzXy5sYXN0X3Bh
Y2tldF9yZWR1Y3Rpb25fbGVuOworICAgIH0KKyAgICBpZiAoZnJhZ21lbnRfbGVuID4gc2luZ2xl
X3BhY2tldF9jYXBhY2l0eSkgeworICAgICAgUGFja2V0aXplRnUoaSk7CisgICAgICArK2k7Cisg
ICAgfSBlbHNlIHsKKyAgICAgIFBhY2tldGl6ZVNpbmdsZU5hbHUoaSk7CisgICAgICArK2k7Cisg
ICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpQ
YWNrZXRpemVGdShzaXplX3QgZnJhZ21lbnRfaW5kZXgpIHsKKyAgLy8gRnJhZ21lbnQgcGF5bG9h
ZCBpbnRvIHBhY2tldHMgKEZVKS4KKyAgLy8gU3RyaXAgb3V0IHRoZSBvcmlnaW5hbCBoZWFkZXIg
YW5kIGxlYXZlIHJvb20gZm9yIHRoZSBGVSBoZWFkZXIuCisgIGNvbnN0IEZyYWdtZW50JiBmcmFn
bWVudCA9IGlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOworICBQYXlsb2FkU2l6ZUxp
bWl0cyBsaW1pdHMgPSBsaW1pdHNfOworICBsaW1pdHMubWF4X3BheWxvYWRfbGVuIC09IGtIZXZj
RnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplOworCisgIC8vIFVwZGF0ZSBzaW5nbGUv
Zmlyc3QvbGFzdCBwYWNrZXQgcmVkdWN0aW9ucyB1bmxlc3MgaXQgaXMgc2luZ2xlL2ZpcnN0L2xh
c3QKKyAgLy8gZnJhZ21lbnQuCisgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSAhPSAxKSB7
CisgICAgLy8gaWYgdGhpcyBmcmFnbWVudCBpcyBwdXQgaW50byBhIHNpbmdsZSBwYWNrZXQsIGl0
IG1pZ2h0IHN0aWxsIGJlIHRoZQorICAgIC8vIGZpcnN0IG9yIHRoZSBsYXN0IHBhY2tldCBpbiB0
aGUgd2hvbGUgc2VxdWVuY2Ugb2YgcGFja2V0cy4KKyAgICBpZiAoZnJhZ21lbnRfaW5kZXggPT0g
aW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKSB7CisgICAgICBsaW1pdHMuc2luZ2xlX3BhY2tl
dF9yZWR1Y3Rpb25fbGVuID0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICAg
IH0gZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkgeworICAgICAgbGltaXRzLnNpbmdsZV9w
YWNrZXRfcmVkdWN0aW9uX2xlbiA9IGxpbWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47
CisgICAgfSBlbHNlIHsKKyAgICAgIGxpbWl0cy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW4g
PSAwOworICAgIH0KKyAgfQorICBpZiAoZnJhZ21lbnRfaW5kZXggIT0gMCkKKyAgICBsaW1pdHMu
Zmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSAwOworICBpZiAoZnJhZ21lbnRfaW5kZXggIT0g
aW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKQorICAgIGxpbWl0cy5sYXN0X3BhY2tldF9yZWR1
Y3Rpb25fbGVuID0gMDsKKworICAvLyBTdHJpcCBvdXQgdGhlIG9yaWdpbmFsIGhlYWRlci4KKyAg
c2l6ZV90IHBheWxvYWRfbGVmdCA9IGZyYWdtZW50Lmxlbmd0aCAtIGtIZXZjTmFsSGVhZGVyU2l6
ZTsKKyAgaW50IG9mZnNldCA9IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKworICBzdGQ6OnZlY3Rvcjxp
bnQ+IHBheWxvYWRfc2l6ZXMgPSBTcGxpdEFib3V0RXF1YWxseShwYXlsb2FkX2xlZnQsIGxpbWl0
cyk7CisgIGlmIChwYXlsb2FkX3NpemVzLmVtcHR5KCkpCisgICAgcmV0dXJuIGZhbHNlOworCisg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGF5bG9hZF9zaXplcy5zaXplKCk7ICsraSkgeworICAg
IGludCBwYWNrZXRfbGVuZ3RoID0gcGF5bG9hZF9zaXplc1tpXTsKKyAgICBSVENfQ0hFQ0tfR1Qo
cGFja2V0X2xlbmd0aCwgMCk7CisgICAgdWludDE2X3QgaGVhZGVyID0gKGZyYWdtZW50LmJ1ZmZl
clswXSA8PCA4KSB8IGZyYWdtZW50LmJ1ZmZlclsxXTsKKyAgICBwYWNrZXRzXy5wdXNoKFBhY2tl
dFVuaXQoRnJhZ21lbnQoZnJhZ21lbnQuYnVmZmVyICsgb2Zmc2V0LCBwYWNrZXRfbGVuZ3RoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypmaXJzdF9mcmFnbWVudD0qL2kgPT0gMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypsYXN0X2ZyYWdtZW50PSovaSA9PSBwYXls
b2FkX3NpemVzLnNpemUoKSAtIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNl
LCBoZWFkZXIpKTsKKyAgICBvZmZzZXQgKz0gcGFja2V0X2xlbmd0aDsKKyAgICBwYXlsb2FkX2xl
ZnQgLT0gcGFja2V0X2xlbmd0aDsKKyAgfQorICBudW1fcGFja2V0c19sZWZ0XyArPSBwYXlsb2Fk
X3NpemVzLnNpemUoKTsKKyAgUlRDX0NIRUNLX0VRKDAsIHBheWxvYWRfbGVmdCk7CisgIHJldHVy
biB0cnVlOworfQorCisKK2Jvb2wgUnRwUGFja2V0aXplckgyNjU6OlBhY2tldGl6ZVNpbmdsZU5h
bHUoc2l6ZV90IGZyYWdtZW50X2luZGV4KSB7CisgIC8vIEFkZCBhIHNpbmdsZSBOQUxVIHRvIHRo
ZSBxdWV1ZSwgbm8gYWdncmVnYXRpb24uCisgIHNpemVfdCBwYXlsb2FkX3NpemVfbGVmdCA9IGxp
bWl0c18ubWF4X3BheWxvYWRfbGVuOworICBpZiAoaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgPT0g
MSkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0
aW9uX2xlbjsKKyAgZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkKKyAgICBwYXlsb2FkX3Np
emVfbGVmdCAtPSBsaW1pdHNfLmZpcnN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBlbHNlIGlm
IChmcmFnbWVudF9pbmRleCArIDEgPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkpCisgICAgcGF5
bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBj
b25zdCBGcmFnbWVudCogZnJhZ21lbnQgPSAmaW5wdXRfZnJhZ21lbnRzX1tmcmFnbWVudF9pbmRl
eF07CisgIGlmIChwYXlsb2FkX3NpemVfbGVmdCA8IGZyYWdtZW50LT5sZW5ndGgpIHsKKyAgICBS
VENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGZpdCBhIGZyYWdtZW50IHRvIHBhY2tldCBp
biBTaW5nbGVOYWx1ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAicGFja2V0aXphdGlvbiBt
b2RlLiBQYXlsb2FkIHNpemUgbGVmdCAiCisgICAgICAgICAgICAgICAgICAgICAgPDwgcGF5bG9h
ZF9zaXplX2xlZnQgPDwgIiwgZnJhZ21lbnQgbGVuZ3RoICIKKyAgICAgICAgICAgICAgICAgICAg
ICA8PCBmcmFnbWVudC0+bGVuZ3RoIDw8ICIsIHBhY2tldCBjYXBhY2l0eSAiCisgICAgICAgICAg
ICAgICAgICAgICAgPDwgbGltaXRzXy5tYXhfcGF5bG9hZF9sZW47CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIFJUQ19DSEVDS19HVChmcmFnbWVudC0+bGVuZ3RoLCAwdSk7CisgIHBhY2tldHNf
LnB1c2goUGFja2V0VW5pdCgqZnJhZ21lbnQsIHRydWUgLyogZmlyc3QgKi8sIHRydWUgLyogbGFz
dCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIGFnZ3JlZ2F0ZWQgKi8s
IGZyYWdtZW50LT5idWZmZXJbMF0pKTsKKyAgKytudW1fcGFja2V0c19sZWZ0XzsKKyAgcmV0dXJu
IHRydWU7Cit9CisKK2ludCBSdHBQYWNrZXRpemVySDI2NTo6UGFja2V0aXplQXAoc2l6ZV90IGZy
YWdtZW50X2luZGV4KSB7CisgIC8vIEFnZ3JlZ2F0ZSBmcmFnbWVudHMgaW50byBvbmUgcGFja2V0
IChTVEFQLUEpLgorICBzaXplX3QgcGF5bG9hZF9zaXplX2xlZnQgPSBsaW1pdHNfLm1heF9wYXls
b2FkX2xlbjsKKyAgaWYgKGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpCisgICAgcGF5bG9h
ZF9zaXplX2xlZnQgLT0gbGltaXRzXy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgIGVs
c2UgaWYgKGZyYWdtZW50X2luZGV4ID09IDApCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGlt
aXRzXy5maXJzdF9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgaW50IGFnZ3JlZ2F0ZWRfZnJhZ21l
bnRzID0gMDsKKyAgc2l6ZV90IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoID0gMDsKKyAgY29uc3Qg
RnJhZ21lbnQqIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOwor
ICBSVENfQ0hFQ0tfR0UocGF5bG9hZF9zaXplX2xlZnQsIGZyYWdtZW50LT5sZW5ndGgpOworICAr
K251bV9wYWNrZXRzX2xlZnRfOworCisgIGF1dG8gcGF5bG9hZF9zaXplX25lZWRlZCA9IFsmXSB7
CisgICAgc2l6ZV90IGZyYWdtZW50X3NpemUgPSBmcmFnbWVudC0+bGVuZ3RoICsgZnJhZ21lbnRf
aGVhZGVyc19sZW5ndGg7CisgICAgaWYgKGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpIHsK
KyAgICAgIC8vIFNpbmdsZSBmcmFnbWVudCwgc2luZ2xlIHBhY2tldCwgcGF5bG9hZF9zaXplX2xl
ZnQgYWxyZWFkeSBhZGp1c3RlZAorICAgICAgLy8gd2l0aCBsaW1pdHNfLnNpbmdsZV9wYWNrZXRf
cmVkdWN0aW9uX2xlbi4KKyAgICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICAgIH0KKyAgICBp
ZiAoZnJhZ21lbnRfaW5kZXggPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKSB7CisgICAg
ICAvLyBMYXN0IGZyYWdtZW50LCBzbyBTdHJhcEEgbWlnaHQgYmUgdGhlIGxhc3QgcGFja2V0Lgor
ICAgICAgcmV0dXJuIGZyYWdtZW50X3NpemUgKyBsaW1pdHNfLmxhc3RfcGFja2V0X3JlZHVjdGlv
bl9sZW47CisgICAgfQorICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICB9OworCisgIHdoaWxl
IChwYXlsb2FkX3NpemVfbGVmdCA+PSBwYXlsb2FkX3NpemVfbmVlZGVkKCkpIHsKKyAgICBSVENf
Q0hFQ0tfR1QoZnJhZ21lbnQtPmxlbmd0aCwgMCk7CisgICAgcGFja2V0c18ucHVzaChQYWNrZXRV
bml0KCpmcmFnbWVudCwgYWdncmVnYXRlZF9mcmFnbWVudHMgPT0gMCwgZmFsc2UsIHRydWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50LT5idWZmZXJbMF0pKTsKKyAgICBw
YXlsb2FkX3NpemVfbGVmdCAtPSBmcmFnbWVudC0+bGVuZ3RoOworICAgIHBheWxvYWRfc2l6ZV9s
ZWZ0IC09IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoOworCisgICAgZnJhZ21lbnRfaGVhZGVyc19s
ZW5ndGggPSBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAgICAvLyBJZiB3ZSBhcmUgZ29pbmcgdG8g
dHJ5IHRvIGFnZ3JlZ2F0ZSBtb3JlIGZyYWdtZW50cyBpbnRvIHRoaXMgcGFja2V0CisgICAgLy8g
d2UgbmVlZCB0byBhZGQgdGhlIFNUQVAtQSBOQUxVIGhlYWRlciBhbmQgYSBsZW5ndGggZmllbGQg
Zm9yIHRoZSBmaXJzdAorICAgIC8vIE5BTFUgb2YgdGhpcyBwYWNrZXQuCisgICAgaWYgKGFnZ3Jl
Z2F0ZWRfZnJhZ21lbnRzID09IDApCisgICAgICBmcmFnbWVudF9oZWFkZXJzX2xlbmd0aCArPSBr
SGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAgICArK2FnZ3JlZ2F0
ZWRfZnJhZ21lbnRzOworCisgICAgLy8gTmV4dCBmcmFnbWVudC4KKyAgICArK2ZyYWdtZW50X2lu
ZGV4OworICAgIGlmIChmcmFnbWVudF9pbmRleCA9PSBpbnB1dF9mcmFnbWVudHNfLnNpemUoKSkK
KyAgICAgIGJyZWFrOworICAgIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRf
aW5kZXhdOworICB9CisgIFJUQ19DSEVDS19HVChhZ2dyZWdhdGVkX2ZyYWdtZW50cywgMCk7Cisg
IHBhY2tldHNfLmJhY2soKS5sYXN0X2ZyYWdtZW50ID0gdHJ1ZTsKKyAgcmV0dXJuIGZyYWdtZW50
X2luZGV4OworfQorCitib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpOZXh0UGFja2V0KFJ0cFBhY2tl
dFRvU2VuZCogcnRwX3BhY2tldCkgeworICBSVENfRENIRUNLKHJ0cF9wYWNrZXQpOworCisgIGlm
IChwYWNrZXRzXy5lbXB0eSgpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgUGFja2V0
VW5pdCBwYWNrZXQgPSBwYWNrZXRzXy5mcm9udCgpOworCisgIGlmIChwYWNrZXQuZmlyc3RfZnJh
Z21lbnQgJiYgcGFja2V0Lmxhc3RfZnJhZ21lbnQpIHsKKyAgICAvLyBTaW5nbGUgTkFMIHVuaXQg
cGFja2V0LgorICAgIHNpemVfdCBieXRlc190b19zZW5kID0gcGFja2V0LnNvdXJjZV9mcmFnbWVu
dC5sZW5ndGg7CisgICAgdWludDhfdCogYnVmZmVyID0gcnRwX3BhY2tldC0+QWxsb2NhdGVQYXls
b2FkKGJ5dGVzX3RvX3NlbmQpOworICAgIG1lbWNweShidWZmZXIsIHBhY2tldC5zb3VyY2VfZnJh
Z21lbnQuYnVmZmVyLCBieXRlc190b19zZW5kKTsKKyAgICBwYWNrZXRzXy5wb3AoKTsKKyAgICBp
bnB1dF9mcmFnbWVudHNfLnBvcF9mcm9udCgpOworICB9IGVsc2UgaWYgKHBhY2tldC5hZ2dyZWdh
dGVkKSB7CisgICAgYm9vbCBpc19sYXN0X3BhY2tldCA9IG51bV9wYWNrZXRzX2xlZnRfID09IDE7
CisgICAgTmV4dEFnZ3JlZ2F0ZVBhY2tldChydHBfcGFja2V0LCBpc19sYXN0X3BhY2tldCk7Cisg
IH0gZWxzZSB7CisgICAgTmV4dEZyYWdtZW50UGFja2V0KHJ0cF9wYWNrZXQpOworICB9CisgIHJ0
cF9wYWNrZXQtPlNldE1hcmtlcihwYWNrZXRzXy5lbXB0eSgpKTsKKyAgLS1udW1fcGFja2V0c19s
ZWZ0XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUnRwUGFja2V0aXplckgyNjU6Ok5leHRB
Z2dyZWdhdGVQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGxhc3QpIHsKKyAgc2l6ZV90IHBh
eWxvYWRfY2FwYWNpdHkgPSBydHBfcGFja2V0LT5GcmVlQ2FwYWNpdHkoKTsKKyAgUlRDX0NIRUNL
X0dFKHBheWxvYWRfY2FwYWNpdHksIGtIZXZjTmFsSGVhZGVyU2l6ZSk7CisgIHVpbnQ4X3QqIGJ1
ZmZlciA9IHJ0cF9wYWNrZXQtPkFsbG9jYXRlUGF5bG9hZChwYXlsb2FkX2NhcGFjaXR5KTsKKwor
ICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFja2V0c18uZnJvbnQoKTsKKyAgUlRDX0NIRUNLKHBh
Y2tldC0+Zmlyc3RfZnJhZ21lbnQpOworICB1aW50OF90IHBheWxvYWRfaGRyX2ggPSBwYWNrZXQt
PmhlYWRlciA+PiA4OworICB1aW50OF90IHBheWxvYWRfaGRyX2wgPSBwYWNrZXQtPmhlYWRlciAm
IDB4RkY7CisgIHVpbnQ4X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRfaGRyX2ggJiBrSGV2Y0xheWVy
SURITWFzazsKKworICBwYXlsb2FkX2hkcl9oID0KKyAgICAgIChwYXlsb2FkX2hkcl9oICYga0hl
dmNUeXBlTWFza04pIHwgKGtIZXZjQXAgPDwgMSkgfCBsYXllcl9pZF9oOworCisgIGJ1ZmZlclsw
XSA9IHBheWxvYWRfaGRyX2g7CisgIGJ1ZmZlclsxXSA9IHBheWxvYWRfaGRyX2w7CisgIGludCBp
bmRleCA9IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKyAgYm9vbCBpc19sYXN0X2ZyYWdtZW50ID0gcGFj
a2V0LT5sYXN0X2ZyYWdtZW50OworICB3aGlsZSAocGFja2V0LT5hZ2dyZWdhdGVkKSB7CisgICAg
Ly8gQWRkIE5BTCB1bml0IGxlbmd0aCBmaWVsZC4KKyAgICBjb25zdCBGcmFnbWVudCYgZnJhZ21l
bnQgPSBwYWNrZXQtPnNvdXJjZV9mcmFnbWVudDsKKyAgICBCeXRlV3JpdGVyPHVpbnQxNl90Pjo6
V3JpdGVCaWdFbmRpYW4oJmJ1ZmZlcltpbmRleF0sIGZyYWdtZW50Lmxlbmd0aCk7CisgICAgaW5k
ZXggKz0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAgLy8gQWRkIE5BTCB1bml0LgorICAgIG1l
bWNweSgmYnVmZmVyW2luZGV4XSwgZnJhZ21lbnQuYnVmZmVyLCBmcmFnbWVudC5sZW5ndGgpOwor
ICAgIGluZGV4ICs9IGZyYWdtZW50Lmxlbmd0aDsKKyAgICBwYWNrZXRzXy5wb3AoKTsKKyAgICBp
bnB1dF9mcmFnbWVudHNfLnBvcF9mcm9udCgpOworICAgIGlmIChpc19sYXN0X2ZyYWdtZW50KQor
ICAgICAgYnJlYWs7CisgICAgcGFja2V0ID0gJnBhY2tldHNfLmZyb250KCk7CisgICAgaXNfbGFz
dF9mcmFnbWVudCA9IHBhY2tldC0+bGFzdF9mcmFnbWVudDsKKyAgfQorICBSVENfQ0hFQ0soaXNf
bGFzdF9mcmFnbWVudCk7CisgIHJ0cF9wYWNrZXQtPlNldFBheWxvYWRTaXplKGluZGV4KTsKK30K
Kwordm9pZCBSdHBQYWNrZXRpemVySDI2NTo6TmV4dEZyYWdtZW50UGFja2V0KFJ0cFBhY2tldFRv
U2VuZCogcnRwX3BhY2tldCkgeworICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFja2V0c18uZnJv
bnQoKTsKKyAgLy8gTkFMIHVuaXQgZnJhZ21lbnRlZCBvdmVyIG11bHRpcGxlIHBhY2tldHMgKEZV
KS4KKyAgLy8gV2UgZG8gbm90IHNlbmQgb3JpZ2luYWwgTkFMVSBoZWFkZXIsIHNvIGl0IHdpbGwg
YmUgcmVwbGFjZWQgYnkgdGhlCisgIC8vIFBheWxvYWRIZHIgb2YgdGhlIGZpcnN0IHBhY2tldC4K
KyAgdWludDhfdCBwYXlsb2FkX2hkcl9oID0KKyAgICAgIHBhY2tldC0+aGVhZGVyID4+IDg7ICAv
LyAxLWJpdCBGLCA2LWJpdCB0eXBlLCAxLWJpdCBsYXllcklEIGhpZ2hlc3QtYml0CisgIHVpbnQ4
X3QgcGF5bG9hZF9oZHJfbCA9IHBhY2tldC0+aGVhZGVyICYgMHhGRjsKKyAgdWludDhfdCBsYXll
cl9pZF9oID0gcGF5bG9hZF9oZHJfaCAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1aW50OF90IGZ1
X2hlYWRlciA9IDA7CisgIC8vIFMgfCBFIHw2IGJpdCB0eXBlLgorICBmdV9oZWFkZXIgfD0gKHBh
Y2tldC0+Zmlyc3RfZnJhZ21lbnQgPyBrSGV2Y1NCaXQgOiAwKTsKKyAgZnVfaGVhZGVyIHw9IChw
YWNrZXQtPmxhc3RfZnJhZ21lbnQgPyBrSGV2Y0VCaXQgOiAwKTsKKyAgdWludDhfdCB0eXBlID0g
KHBheWxvYWRfaGRyX2ggJiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICBmdV9oZWFkZXIgfD0gdHlw
ZTsKKyAgLy8gTm93IHVwZGF0ZSBwYXlsb2FkX2hkcl9oIHdpdGggRlUgdHlwZS4KKyAgcGF5bG9h
ZF9oZHJfaCA9CisgICAgICAocGF5bG9hZF9oZHJfaCAmIGtIZXZjVHlwZU1hc2tOKSB8IChrSGV2
Y0Z1IDw8IDEpIHwgbGF5ZXJfaWRfaDsKKyAgY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50ID0gcGFj
a2V0LT5zb3VyY2VfZnJhZ21lbnQ7CisgIHVpbnQ4X3QqIGJ1ZmZlciA9IHJ0cF9wYWNrZXQtPkFs
bG9jYXRlUGF5bG9hZCgKKyAgICAgIGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJT
aXplICsgZnJhZ21lbnQubGVuZ3RoKTsKKyAgYnVmZmVyWzBdID0gcGF5bG9hZF9oZHJfaDsKKyAg
YnVmZmVyWzFdID0gcGF5bG9hZF9oZHJfbDsKKyAgYnVmZmVyWzJdID0gZnVfaGVhZGVyOworCisg
IGlmIChwYWNrZXQtPmxhc3RfZnJhZ21lbnQpIHsKKyAgICBtZW1jcHkoYnVmZmVyICsga0hldmNG
dUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZlciwKKyAgICAg
ICAgICAgZnJhZ21lbnQubGVuZ3RoKTsKKyAgfSBlbHNlIHsKKyAgICBtZW1jcHkoYnVmZmVyICsg
a0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZlciwK
KyAgICAgICAgICAgZnJhZ21lbnQubGVuZ3RoKTsKKyAgfQorICBwYWNrZXRzXy5wb3AoKTsKK30K
KworYWJzbDo6b3B0aW9uYWw8VmlkZW9SdHBEZXBhY2tldGl6ZXI6OlBhcnNlZFJ0cFBheWxvYWQ+
IFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6UGFyc2UoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJ0Yzo6Q29weU9uV3JpdGVCdWZmZXIgcnRwX3BheWxvYWQpIHsKKyAgc2l6ZV90
IHBheWxvYWRfZGF0YV9sZW5ndGggPSBydHBfcGF5bG9hZC5zaXplKCk7CisgIGlmIChwYXlsb2Fk
X2RhdGFfbGVuZ3RoID09IDApIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRW1wdHkgcGF5
bG9hZC4iOworICAgIHJldHVybiBhYnNsOjpudWxsb3B0OworICB9CisKKyAgUGFyc2VkUnRwUGF5
bG9hZCBwYXJzZWRfcGF5bG9hZDsKKworICB1aW50OF90KiBwYXlsb2FkX2RhdGEgPSBydHBfcGF5
bG9hZC5kYXRhKCk7CisKKyAgb2Zmc2V0XyA9IDA7CisgIGxlbmd0aF8gPSBwYXlsb2FkX2RhdGFf
bGVuZ3RoOworICBtb2RpZmllZF9idWZmZXJfLnJlc2V0KCk7CisKKyAgdWludDhfdCBuYWxfdHlw
ZSA9IChwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICBwYXJzZWRfcGF5
bG9hZC52aWRlb19oZWFkZXIKKyAgICAgIC52aWRlb190eXBlX2hlYWRlci5lbXBsYWNlPFJUUFZp
ZGVvSGVhZGVySDI2NT4oKTsKKworICBpZiAobmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtG
VSkgeworICAgIC8vIEZyYWdtZW50ZWQgTkFMIHVuaXRzIChGVS1BKS4KKyAgICBpZiAoIVBhcnNl
RnVOYWx1KCZwYXJzZWRfcGF5bG9hZCwgcGF5bG9hZF9kYXRhKSkKKyAgICAgIHJldHVybiBhYnNs
OjpudWxsb3B0OworICB9IGVsc2UgeworICAgIC8vIFdlIGhhbmRsZSBTVEFQLUEgYW5kIHNpbmds
ZSBOQUxVJ3MgdGhlIHNhbWUgd2F5IGhlcmUuIFRoZSBqaXR0ZXIgYnVmZmVyCisgICAgLy8gd2ls
bCBkZXBhY2tldGl6ZSB0aGUgU1RBUC1BIGludG8gTkFMIHVuaXRzIGxhdGVyLgorICAgIC8vIFRP
RE8oc3ByYW5nKTogUGFyc2UgU1RBUC1BIG9mZnNldHMgaGVyZSBhbmQgc3RvcmUgaW4gZnJhZ21l
bnRhdGlvbiB2ZWMuCisgICAgaWYgKCFQcm9jZXNzQXBPclNpbmdsZU5hbHUoJnBhcnNlZF9wYXls
b2FkLCBwYXlsb2FkX2RhdGEpKQorICAgICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7CisgIH0KKwor
ICBjb25zdCB1aW50OF90KiBwYXlsb2FkID0KKyAgICAgIG1vZGlmaWVkX2J1ZmZlcl8gPyBtb2Rp
ZmllZF9idWZmZXJfLT5kYXRhKCkgOiBwYXlsb2FkX2RhdGE7CisKKyAgcGFyc2VkX3BheWxvYWQu
dmlkZW9fcGF5bG9hZCA9IHsgcGF5bG9hZCArIG9mZnNldF8sIGxlbmd0aF8gfTsKKyAgcmV0dXJu
IHBhcnNlZF9wYXlsb2FkOworfQorCitib29sIFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6UHJv
Y2Vzc0FwT3JTaW5nbGVOYWx1KAorICAgIFBhcnNlZFJ0cFBheWxvYWQqIHBhcnNlZF9wYXlsb2Fk
LAorICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSkgeworICBwYXJzZWRfcGF5bG9hZC0+
dmlkZW9faGVhZGVyLndpZHRoID0gMDsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5o
ZWlnaHQgPSAwOworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmNvZGVjID0ga1ZpZGVv
Q29kZWNIMjY1OworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmlzX2ZpcnN0X3BhY2tl
dF9pbl9mcmFtZSA9IHRydWU7CisgIGF1dG8mIGgyNjVfaGVhZGVyID0gYWJzbDo6Z2V0PFJUUFZp
ZGVvSGVhZGVySDI2NT4oCisgICAgICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLnZpZGVv
X3R5cGVfaGVhZGVyKTsKKworICBjb25zdCB1aW50OF90KiBuYWx1X3N0YXJ0ID0gcGF5bG9hZF9k
YXRhICsga0hldmNOYWxIZWFkZXJTaXplOworICBjb25zdCBzaXplX3QgbmFsdV9sZW5ndGggPSBs
ZW5ndGhfIC0ga0hldmNOYWxIZWFkZXJTaXplOworICB1aW50OF90IG5hbF90eXBlID0gKHBheWxv
YWRfZGF0YVswXSAmIGtIZXZjVHlwZU1hc2spID4+IDE7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4g
bmFsdV9zdGFydF9vZmZzZXRzOworICBpZiAobmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtB
UCkgeworICAgIC8vIFNraXAgdGhlIFN0YXBBIGhlYWRlciAoU3RhcEEgTkFMIHR5cGUgKyBsZW5n
dGgpLgorICAgIGlmIChsZW5ndGhfIDw9IGtIZXZjQXBIZWFkZXJTaXplKSB7CisgICAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiQVAgaGVhZGVyIHRydW5jYXRlZC4iOworICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIGlmICghUGFyc2VBcFN0YXJ0T2Zmc2V0cyhuYWx1X3N0YXJ0LCBu
YWx1X2xlbmd0aCwgJm5hbHVfc3RhcnRfb2Zmc2V0cykpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJS
T1IpIDw8ICJBUCBwYWNrZXQgd2l0aCBpbmNvcnJlY3QgTkFMVSBwYWNrZXQgbGVuZ3Rocy4iOwor
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGgyNjVfaGVhZGVyLnBhY2tldGl6YXRp
b25fdHlwZSA9IGtIMjY1QVA7CisgICAgLy8gbmFsX3R5cGUgPSAocGF5bG9hZF9kYXRhW2tIZXZj
QXBIZWFkZXJTaXplXSAmIGtIZXZjVHlwZU1hc2spID4+IDE7CisgIH0gZWxzZSB7CisgICAgaDI2
NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVTaW5nbGVOYWx1OworICAgIG5hbHVf
c3RhcnRfb2Zmc2V0cy5wdXNoX2JhY2soMCk7CisgIH0KKyAgaDI2NV9oZWFkZXIubmFsdV90eXBl
ID0gbmFsX3R5cGU7CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9
IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZURlbHRhOworCisgIG5hbHVfc3RhcnRfb2Zmc2V0
cy5wdXNoX2JhY2sobGVuZ3RoXyArIGtIZXZjTGVuZ3RoRmllbGRTaXplKTsgIC8vIEVuZCBvZmZz
ZXQuCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFsdV9zdGFydF9vZmZzZXRzLnNpemUoKSAt
IDE7ICsraSkgeworICAgIHNpemVfdCBzdGFydF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29mZnNldHNb
aV07CisgICAgLy8gRW5kIG9mZnNldCBpcyBhY3R1YWxseSBzdGFydCBvZmZzZXQgZm9yIG5leHQg
dW5pdCwgZXhjbHVkaW5nIGxlbmd0aCBmaWVsZAorICAgIC8vIHNvIHJlbW92ZSB0aGF0IGZyb20g
dGhpcyB1bml0cyBsZW5ndGguCisgICAgc2l6ZV90IGVuZF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29m
ZnNldHNbaSArIDFdIC0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAgaWYgKGVuZF9vZmZzZXQg
LSBzdGFydF9vZmZzZXQgPCBrSGV2Y05hbEhlYWRlclNpemUpIHsgIC8vIFNhbWUgYXMgSC4yNjQu
CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiQVAgcGFja2V0IHRvbyBzaG9ydCI7CisgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgSDI2NU5hbHVJbmZvIG5hbHU7CisgICAgbmFs
dS50eXBlID0gKHBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdICYga0hldmNUeXBlTWFzaykgPj4g
MTsKKyAgICBuYWx1LnZwc19pZCA9IC0xOworICAgIG5hbHUuc3BzX2lkID0gLTE7CisgICAgbmFs
dS5wcHNfaWQgPSAtMTsKKyAgICBzdGFydF9vZmZzZXQgKz0ga0hldmNOYWxIZWFkZXJTaXplOwor
ICAgIHN3aXRjaCAobmFsdS50eXBlKSB7CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprVnBz
OiB7CisgICAgICAgIGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiB2cHMg
PSBIMjY1VnBzUGFyc2VyOjpQYXJzZVZwcygKKyAgICAgICAgICAgICZwYXlsb2FkX2RhdGFbc3Rh
cnRfb2Zmc2V0XSwgZW5kX29mZnNldCAtIHN0YXJ0X29mZnNldCk7CisgICAgICAgIGlmICh2cHMp
IHsKKyAgICAgICAgICBuYWx1LnZwc19pZCA9IHZwcy0+aWQ7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUyBpZCBm
cm9tIFZQUyBzbGljZS4iOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAg
ICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1NwczogeworICAgICAgICAvLyBDaGVjayBpZiBWVUkg
aXMgcHJlc2VudCBpbiBTUFMgYW5kIGlmIGl0IG5lZWRzIHRvIGJlIG1vZGlmaWVkIHRvCisgICAg
ICAgIC8vIGF2b2lkIGV4Y2Vzc2l2ZSBkZWNvZGVyIGxhdGVuY3kuCisKKyAgICAgICAgLy8gQ29w
eSBhbnkgcHJldmlvdXMgZGF0YSBmaXJzdCAobGlrZWx5IGp1c3QgdGhlIGZpcnN0IGhlYWRlciku
CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gb3V0cHV0X2J1ZmZlcihuZXcg
cnRjOjpCdWZmZXIoKSk7CisgICAgICAgIGlmIChzdGFydF9vZmZzZXQpCisgICAgICAgICAgb3V0
cHV0X2J1ZmZlci0+QXBwZW5kRGF0YShwYXlsb2FkX2RhdGEsIHN0YXJ0X29mZnNldCk7CisKKyAg
ICAgICAgYWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IHNwcyA9IEgyNjVT
cHNQYXJzZXI6OlBhcnNlU3BzKAorICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtzdGFydF9vZmZz
ZXRdLCBlbmRfb2Zmc2V0IC0gc3RhcnRfb2Zmc2V0KTsKKworICAgICAgICBpZiAoc3BzKSB7Cisg
ICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci53aWR0aCA9IHNwcy0+d2lkdGg7
CisgICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5oZWlnaHQgPSBzcHMtPmhl
aWdodDsKKyAgICAgICAgICBuYWx1LnNwc19pZCA9IHNwcy0+aWQ7CisgICAgICAgICAgbmFsdS52
cHNfaWQgPSBzcHMtPnZwc19pZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBSVENfTE9H
KExTX1dBUk5JTkcpCisgICAgICAgICAgICAgIDw8ICJGYWlsZWQgdG8gcGFyc2UgU1BTIGFuZCBW
UFMgaWQgZnJvbSBTUFMgc2xpY2UuIjsKKyAgICAgICAgfQorICAgICAgICBwYXJzZWRfcGF5bG9h
ZC0+dmlkZW9faGVhZGVyLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVL
ZXk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6
a1BwczogeworICAgICAgICB1aW50MzJfdCBwcHNfaWQ7CisgICAgICAgIHVpbnQzMl90IHNwc19p
ZDsKKyAgICAgICAgaWYgKEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRzKCZwYXlsb2FkX2RhdGFb
c3RhcnRfb2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
ZF9vZmZzZXQgLSBzdGFydF9vZmZzZXQsICZwcHNfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmc3BzX2lkKSkgeworICAgICAgICAgIG5hbHUucHBzX2lkID0gcHBz
X2lkOworICAgICAgICAgIG5hbHUuc3BzX2lkID0gc3BzX2lkOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgPDwgIkZhaWxlZCB0
byBwYXJzZSBQUFMgaWQgYW5kIFNQUyBpZCBmcm9tIFBQUyBzbGljZS4iOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkcldS
YWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McDoKKyAgICAgIGNhc2UgSDI2
NTo6TmFsdVR5cGU6OmtDcmE6CisgICAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIu
ZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZUtleTsKKyAgICAgIGNhc2Ug
SDI2NTo6TmFsdVR5cGU6OmtUcmFpbE46CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprVHJh
aWxSOiB7CisgICAgICAgIGFic2w6Om9wdGlvbmFsPHVpbnQzMl90PiBwcHNfaWQgPQorICAgICAg
ICAgICAgSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3Ao
CisgICAgICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdLCBlbmRfb2Zmc2V0
IC0gc3RhcnRfb2Zmc2V0LAorICAgICAgICAgICAgICAgIG5hbHUudHlwZSk7CisgICAgICAgIGlm
IChwcHNfaWQpIHsKKyAgICAgICAgICBuYWx1LnBwc19pZCA9ICpwcHNfaWQ7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNl
IFBQUyBpZCBmcm9tIHNsaWNlIG9mIHR5cGU6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw8IHN0YXRpY19jYXN0PGludD4obmFsdS50eXBlKTsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICAgIH0KKyAgICAgIC8vIFNsaWNlcyBiZWxvdyBkb24ndCBjb250YWluIFNQUyBv
ciBQUFMgaWRzLgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0F1ZDoKKyAgICAgIGNhc2Ug
SDI2NTo6TmFsdVR5cGU6OmtUc2FOOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1RzYVI6
CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3RzYU46CisgICAgICBjYXNlIEgyNjU6Ok5h
bHVUeXBlOjprU3RzYVI6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUmFkbE46CisgICAg
ICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUmFkbFI6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBl
OjprQmxhV0xwOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0JsYVdSYWRsOgorICAgICAg
Y2FzZSBIMjY1OjpOYWx1VHlwZTo6a1ByZWZpeFNlaToKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5
cGU6OmtTdWZmaXhTZWk6CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a0FQOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0ZVOgorICAgICAgICBSVENfTE9H
KExTX1dBUk5JTkcpIDw8ICJVbmV4cGVjdGVkIEFQIG9yIEZVIHJlY2VpdmVkLiI7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3Ro
ID09IGtNYXhOYWx1c1BlclBhY2tldCkgeworICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAg
ICAgICAgIDw8ICJSZWNlaXZlZCBwYWNrZXQgY29udGFpbmluZyBtb3JlIHRoYW4gIiA8PCBrTWF4
TmFsdXNQZXJQYWNrZXQKKyAgICAgICAgICA8PCAiIE5BTCB1bml0cy4gV2lsbCBub3Qga2VlcCB0
cmFjayBzcHMgYW5kIHBwcyBpZHMgZm9yIGFsbCBvZiB0aGVtLiI7CisgICAgfSBlbHNlIHsKKyAg
ICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCsrXSA9IG5hbHU7
CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFZpZGVvUnRwRGVwYWNrZXRp
emVySDI2NTo6UGFyc2VGdU5hbHUoCisgICAgUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3BheWxv
YWQsCisgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhKSB7CisgIGlmIChsZW5ndGhfIDwg
a0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUpIHsKKyAgICBSVENfTE9HKExT
X0VSUk9SKSA8PCAiRlUgTkFMIHVuaXRzIHRydW5jYXRlZC4iOworICAgIHJldHVybiBmYWxzZTsK
KyAgfQorICB1aW50OF90IGYgPSBwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y0ZCaXQ7CisgIHVpbnQ4
X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRfZGF0YVswXSAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1
aW50OF90IGxheWVyX2lkX2xfdW5zaGlmdGVkID0gcGF5bG9hZF9kYXRhWzFdICYga0hldmNMYXll
cklETE1hc2s7CisgIHVpbnQ4X3QgdGlkID0gcGF5bG9hZF9kYXRhWzFdICYga0hldmNUSURNYXNr
OworCisgIHVpbnQ4X3Qgb3JpZ2luYWxfbmFsX3R5cGUgPSBwYXlsb2FkX2RhdGFbMl0gJiBrSGV2
Y1R5cGVNYXNrSW5GdUhlYWRlcjsKKyAgYm9vbCBmaXJzdF9mcmFnbWVudCA9IHBheWxvYWRfZGF0
YVsyXSAmIGtIZXZjU0JpdDsKKyAgSDI2NU5hbHVJbmZvIG5hbHU7CisgIG5hbHUudHlwZSA9IG9y
aWdpbmFsX25hbF90eXBlOworICBuYWx1LnZwc19pZCA9IC0xOworICBuYWx1LnNwc19pZCA9IC0x
OworICBuYWx1LnBwc19pZCA9IC0xOworICBpZiAoZmlyc3RfZnJhZ21lbnQpIHsKKyAgICBvZmZz
ZXRfID0gMTsKKyAgICBsZW5ndGhfIC09IDE7CisgICAgYWJzbDo6b3B0aW9uYWw8dWludDMyX3Q+
IHBwc19pZCA9CisgICAgICAgIEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRGcm9tU2xpY2VTZWdt
ZW50TGF5ZXJSYnNwKAorICAgICAgICAgICAgcGF5bG9hZF9kYXRhICsga0hldmNOYWxIZWFkZXJT
aXplICsga0hldmNGdUhlYWRlclNpemUsCisgICAgICAgICAgICBsZW5ndGhfIC0ga0hldmNGdUhl
YWRlclNpemUsIG5hbHUudHlwZSk7CisgICAgaWYgKHBwc19pZCkgeworICAgICAgbmFsdS5wcHNf
aWQgPSAqcHBzX2lkOworICAgIH0gZWxzZSB7CisgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisg
ICAgICAgICAgPDwgIkZhaWxlZCB0byBwYXJzZSBQUFMgZnJvbSBmaXJzdCBmcmFnbWVudCBvZiBG
VSBOQUwgIgorICAgICAgICAgICAgICJ1bml0IHdpdGggb3JpZ2luYWwgdHlwZTogIgorICAgICAg
ICAgIDw8IHN0YXRpY19jYXN0PGludD4obmFsdS50eXBlKTsKKyAgICB9CisgICAgdWludDhfdCog
cGF5bG9hZCA9IGNvbnN0X2Nhc3Q8dWludDhfdCo+KHBheWxvYWRfZGF0YSArIG9mZnNldF8pOwor
ICAgIHBheWxvYWRbMF0gPSBmIHwgb3JpZ2luYWxfbmFsX3R5cGUgPDwgMSB8IGxheWVyX2lkX2g7
CisgICAgcGF5bG9hZFsxXSA9IGxheWVyX2lkX2xfdW5zaGlmdGVkIHwgdGlkOworICB9IGVsc2Ug
eworICAgIG9mZnNldF8gPSBrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZTsK
KyAgICBsZW5ndGhfIC09IChrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZSk7
CisgIH0KKworICBpZiAob3JpZ2luYWxfbmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJX
UmFkbAorICAgICAgfHwgb3JpZ2luYWxfbmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJO
THAKKyAgICAgIHx8IG9yaWdpbmFsX25hbF90eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprQ3JhKSB7
CisgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFt
ZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICB9IGVsc2UgeworICAgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZURlbHRh
OworICB9CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIud2lkdGggPSAwOworICBwYXJz
ZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmhlaWdodCA9IDA7CisgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIuY29kZWMgPSBrVmlkZW9Db2RlY0gyNjU7CisgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lID0gZmlyc3RfZnJhZ21lbnQ7Cisg
IGF1dG8mIGgyNjVfaGVhZGVyID0gYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4oCisgICAg
ICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKKyAgaDI2
NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVGVTsKKyAgaDI2NV9oZWFkZXIubmFs
dV90eXBlID0gb3JpZ2luYWxfbmFsX3R5cGU7CisgIGlmIChmaXJzdF9mcmFnbWVudCkgeworICAg
IGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aF0gPSBuYWx1OworICAg
IGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCA9IDE7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisK
K30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRf
aDI2NS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk1ZjZlYmJl
ZDQxM2ZlMzYxNzNlN2FhN2Q3YTE2MWJmYTRlYjRlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL3J0cF9mb3JtYXRfaDI2NS5oCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogIEludGVsIExp
Y2Vuc2UKKyAqIFNlZSBodHRwczovLzAxLm9yZy9vcGVuLXdlYnJ0Yy10b29sa2l0CisgKiBUaGlz
IGlzIHJlbGVhc2VkIHVuZGVyIEFwYWNoZSBMaWNlbnNlIDIuMCBhbmQgaXQgaXMgZnJlZSBmb3Ig
Ym90aCBhY2FkZW1pYyBhbmQgY29tbWVyY2lhbCB1c2UuCisgKi8KKworI2lmbmRlZiBXRUJSVENf
TU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfUlRQX0ZPUk1BVF9IMjY1X0hfCisjZGVmaW5lIFdFQlJU
Q19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9SVFBfRk9STUFUX0gyNjVfSF8KKworI2luY2x1ZGUg
PHF1ZXVlPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlICJhcGkvYXJyYXlfdmlldy5oIgor
I2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVk
ZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9wYWNrZXRfdG9fc2VuZC5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyLmgiCisjaW5jbHVkZSAibW9kdWxlcy92
aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNpbmNsdWRl
ICJydGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9jb25zdHJ1Y3Rvcl9tYWdp
Yy5oIgorCituYW1lc3BhY2Ugd2VicnRjIHsKKworY2xhc3MgUnRwUGFja2V0aXplckgyNjUgOiBw
dWJsaWMgUnRwUGFja2V0aXplciB7CisgcHVibGljOgorICAvLyBJbml0aWFsaXplIHdpdGggcGF5
bG9hZCBmcm9tIGVuY29kZXIuCisgIC8vIFRoZSBwYXlsb2FkX2RhdGEgbXVzdCBiZSBleGFjdGx5
IG9uZSBlbmNvZGVkIEguMjY1IGZyYW1lLgorICBSdHBQYWNrZXRpemVySDI2NShydGM6OkFycmF5
Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2FkLAorICAgICAgICAgICAgICAgICAgICBQYXlsb2Fk
U2l6ZUxpbWl0cyBsaW1pdHMsCisgICAgICAgICAgICAgICAgICAgIEgyNjVQYWNrZXRpemF0aW9u
TW9kZSBwYWNrZXRpemF0aW9uX21vZGUsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJUUEZy
YWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24pOworCisgICB+UnRwUGFja2V0aXplckgy
NjUoKSBvdmVycmlkZTsKKworICBzaXplX3QgTnVtUGFja2V0cygpIGNvbnN0IG92ZXJyaWRlOwor
CisgIC8vIEdldCB0aGUgbmV4dCBwYXlsb2FkIHdpdGggSC4yNjUgcGF5bG9hZCBoZWFkZXIuCisg
IC8vIGJ1ZmZlciBpcyBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIG91dHB1dCB3aWxsIGJlIHdyaXR0
ZW4uCisgIC8vIGJ5dGVzX3RvX3NlbmQgaXMgYW4gb3V0cHV0IHZhcmlhYmxlIHRoYXQgd2lsbCBj
b250YWluIG51bWJlciBvZiBieXRlcworICAvLyB3cml0dGVuIHRvIGJ1ZmZlci4gVGhlIHBhcmFt
ZXRlciBsYXN0X3BhY2tldCBpcyB0cnVlIGZvciB0aGUgbGFzdCBwYWNrZXQgb2YKKyAgLy8gdGhl
IGZyYW1lLCBmYWxzZSBvdGhlcndpc2UgKGkuZS4sIGNhbGwgdGhlIGZ1bmN0aW9uIGFnYWluIHRv
IGdldCB0aGUKKyAgLy8gbmV4dCBwYWNrZXQpLgorICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vz
cyBvciBmYWxzZSBpZiB0aGVyZSB3YXMgbm8gcGF5bG9hZCB0byBwYWNrZXRpemUuCisgIGJvb2wg
TmV4dFBhY2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpIG92ZXJyaWRlOworCisgcHJp
dmF0ZToKKyAgc3RydWN0IFBhY2tldCB7CisgICAgUGFja2V0KHNpemVfdCBvZmZzZXQsCisgICAg
ICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICBib29sIGZpcnN0X2ZyYWdtZW50LAorICAg
ICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAgICAgICAgIGJvb2wgYWdncmVnYXRlZCwK
KyAgICAgICAgICAgdWludDE2X3QgaGVhZGVyKQorICAgICAgICA6IG9mZnNldChvZmZzZXQpLAor
ICAgICAgICAgIHNpemUoc2l6ZSksCisgICAgICAgICAgZmlyc3RfZnJhZ21lbnQoZmlyc3RfZnJh
Z21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQobGFzdF9mcmFnbWVudCksCisgICAgICAg
ICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAgICAgICBoZWFkZXIoaGVhZGVyKSB7fQor
CisgICAgc2l6ZV90IG9mZnNldDsKKyAgICBzaXplX3Qgc2l6ZTsKKyAgICBib29sIGZpcnN0X2Zy
YWdtZW50OworICAgIGJvb2wgbGFzdF9mcmFnbWVudDsKKyAgICBib29sIGFnZ3JlZ2F0ZWQ7Cisg
ICAgdWludDE2X3QgaGVhZGVyOyAgLy8gRGlmZmVyZW50IGZyb20gSDI2NAorICB9OworICBzdHJ1
Y3QgRnJhZ21lbnQgeworICAgIEZyYWdtZW50KGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90
IGxlbmd0aCk7CisgICAgZXhwbGljaXQgRnJhZ21lbnQoY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50
KTsKKyAgICBjb25zdCB1aW50OF90KiBidWZmZXIgPSBudWxscHRyOworICAgIHNpemVfdCBsZW5n
dGggPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gdG1wX2J1ZmZlcjsKKyAg
fTsKKyAgc3RydWN0IFBhY2tldFVuaXQgeworICAgIFBhY2tldFVuaXQoY29uc3QgRnJhZ21lbnQm
IHNvdXJjZV9mcmFnbWVudCwKKyAgICAgICAgICAgICAgIGJvb2wgZmlyc3RfZnJhZ21lbnQsCisg
ICAgICAgICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAgICAgICAgICAgICBib29sIGFn
Z3JlZ2F0ZWQsCisgICAgICAgICAgICAgICB1aW50MTZfdCBoZWFkZXIpCisgICAgICAgIDogc291
cmNlX2ZyYWdtZW50KHNvdXJjZV9mcmFnbWVudCksCisgICAgICAgICAgZmlyc3RfZnJhZ21lbnQo
Zmlyc3RfZnJhZ21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQobGFzdF9mcmFnbWVudCks
CisgICAgICAgICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAgICAgICBoZWFkZXIoaGVh
ZGVyKSB7fQorCisgICAgY29uc3QgRnJhZ21lbnQgc291cmNlX2ZyYWdtZW50OworICAgIGJvb2wg
Zmlyc3RfZnJhZ21lbnQ7CisgICAgYm9vbCBsYXN0X2ZyYWdtZW50OworICAgIGJvb2wgYWdncmVn
YXRlZDsKKyAgICB1aW50MTZfdCBoZWFkZXI7CisgIH07CisgIHR5cGVkZWYgc3RkOjpxdWV1ZTxQ
YWNrZXQ+IFBhY2tldFF1ZXVlOworICBzdGQ6OmRlcXVlPEZyYWdtZW50PiBpbnB1dF9mcmFnbWVu
dHNfOworICBzdGQ6OnF1ZXVlPFBhY2tldFVuaXQ+IHBhY2tldHNfOworCisgIGJvb2wgR2VuZXJh
dGVQYWNrZXRzKEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUpOworICBi
b29sIFBhY2tldGl6ZUZ1KHNpemVfdCBmcmFnbWVudF9pbmRleCk7CisgIGludCBQYWNrZXRpemVB
cChzaXplX3QgZnJhZ21lbnRfaW5kZXgpOworICBib29sIFBhY2tldGl6ZVNpbmdsZU5hbHUoc2l6
ZV90IGZyYWdtZW50X2luZGV4KTsKKworICB2b2lkIE5leHRBZ2dyZWdhdGVQYWNrZXQoUnRwUGFj
a2V0VG9TZW5kKiBydHBfcGFja2V0LCBib29sIGxhc3QpOworICB2b2lkIE5leHRGcmFnbWVudFBh
Y2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpOworCisgIGNvbnN0IFBheWxvYWRTaXpl
TGltaXRzIGxpbWl0c187CisgIHNpemVfdCBudW1fcGFja2V0c19sZWZ0XzsKKyAgUlRQRnJhZ21l
bnRhdGlvbkhlYWRlciBmcmFnbWVudGF0aW9uXzsKKworICBSVENfRElTQUxMT1dfQ09QWV9BTkRf
QVNTSUdOKFJ0cFBhY2tldGl6ZXJIMjY1KTsKK307CisKKy8vIERlcGFja2V0aXplciBmb3IgSC4y
NjUuCitjbGFzcyBWaWRlb1J0cERlcGFja2V0aXplckgyNjUgOiBwdWJsaWMgVmlkZW9SdHBEZXBh
Y2tldGl6ZXIgeworIHB1YmxpYzoKKyAgdmlydHVhbCB+VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1
KCkge30KKworICBhYnNsOjpvcHRpb25hbDxQYXJzZWRSdHBQYXlsb2FkPiBQYXJzZSgKKyAgICAg
ICAgICAgICBydGM6OkNvcHlPbldyaXRlQnVmZmVyIHJ0cF9wYXlsb2FkKSBvdmVycmlkZTsKKwor
IHByaXZhdGU6CisgIGJvb2wgUGFyc2VGdU5hbHUoUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3Bh
eWxvYWQsCisgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhKTsK
KyAgYm9vbCBQcm9jZXNzQXBPclNpbmdsZU5hbHUoUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3Bh
eWxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxv
YWRfZGF0YSk7CisKKyAgc2l6ZV90IG9mZnNldF87CisgIHNpemVfdCBsZW5ndGhfOworICBzdGQ6
OnVuaXF1ZV9wdHI8cnRjOjpCdWZmZXI+IG1vZGlmaWVkX2J1ZmZlcl87Cit9OworfSAgLy8gbmFt
ZXNwYWNlIHdlYnJ0YworI2VuZGlmICAvLyBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0Vf
UlRQX0ZPUk1BVF9IMjY1X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVv
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvcnRwX3NlbmRlcl92aWRlby5jYwppbmRleCBlYzVjZjhmZDEzMzFkZTQ1
ZTNlOGUwODljNTgxNDM1NDNjMzkwMDZiLi5lMzNjNTRiNmVkYTM3NDBhZWQxYmNkNjE3ZDVhZTQ3
MzI1YzZkYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVvLmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0
Y3Avc291cmNlL3J0cF9zZW5kZXJfdmlkZW8uY2MKQEAgLTc5OSw2ICs3OTksOSBAQCB1aW50OF90
IFJUUFNlbmRlclZpZGVvOjpHZXRUZW1wb3JhbElkKGNvbnN0IFJUUFZpZGVvSGVhZGVyJiBoZWFk
ZXIpIHsKICAgICAgIHJldHVybiB2cDkudGVtcG9yYWxfaWR4OwogICAgIH0KICAgICB1aW50OF90
IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJIMjY0JikgeyByZXR1cm4ga05vVGVtcG9y
YWxJZHg7IH0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAgdWludDhfdCBvcGVyYXRvcigpKGNv
bnN0IFJUUFZpZGVvSGVhZGVySDI2NSYpIHsgcmV0dXJuIGtOb1RlbXBvcmFsSWR4OyB9CisjZW5k
aWYKICAgICB1aW50OF90IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJMZWdhY3lHZW5l
cmljJikgewogICAgICAgcmV0dXJuIGtOb1RlbXBvcmFsSWR4OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0
Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIu
aAppbmRleCA3MTRkMWViMDhjY2I0NGRlZWQyNzc3MGFlMTdiMDQ2NWNjN2M1OTgwLi41ODUyZTVl
MWFkNzQyN2IxZTI5YWYzMmFiYWJhMGIwOGFhYTJmYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9y
dHBfdmlkZW9faGVhZGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oCkBAIC0y
NSw2ICsyNSw5IEBACiAjaW5jbHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX3RpbWluZy5oIgogI2luY2x1
ZGUgImNvbW1vbl90eXBlcy5oIiAgLy8gTk9MSU5UKGJ1aWxkL2luY2x1ZGUpCiAjaW5jbHVkZSAi
bW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIK
KyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29k
ZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVkZS92cDhfZ2xvYmFscy5oIgogI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvaW5jbHVkZS92cDlfZ2xvYmFscy5o
IgogCkBAIC0zNiwxMSArMzksMjAgQEAgc3RydWN0IFJUUFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJp
YyB7CiAgIHVpbnQxNl90IHBpY3R1cmVfaWQ7CiB9OwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQog
dXNpbmcgUlRQVmlkZW9UeXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjptb25vc3RhdGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVy
VlA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hl
YWRlclZQOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlk
ZW9IZWFkZXJIMjY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
VFBWaWRlb0hlYWRlckgyNjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJUUFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJpYz47CisjZWxzZQordXNpbmcgUlRQVmlkZW9U
eXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjptb25vc3RhdGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyVlA4LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlclZQOSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXJIMjY0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlckxl
Z2FjeUdlbmVyaWM+OworI2VuZGlmCiAKIHN0cnVjdCBSVFBWaWRlb0hlYWRlciB7CiAgIHN0cnVj
dCBHZW5lcmljRGVzY3JpcHRvckluZm8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvQlVJTEQuZ24gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9CVUlMRC5nbgppbmRleCBiMmQxMGM5YWI2OGMyYmM5ZDcyOWRjZDdkZmVkYWRiYjQ5ZDFm
NjMzLi40Yzc4YWFhY2M3NzE1OTY4N2I0YzZiZTFhMzc3NDA4OTlhMWE4YjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbgpAQCAtMTQsNiArMTQsMTQgQEAg
cnRjX2xpYnJhcnkoImVuY29kZWRfZnJhbWUiKSB7CiAgICAgImVuY29kZWRfZnJhbWUuY2MiLAog
ICAgICJlbmNvZGVkX2ZyYW1lLmgiLAogICBdCisKKyAgaWYgKHJ0Y191c2VfaDI2NSkgeworICAg
IHNvdXJjZXMgKz0gWworICAgICAgImgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyIsCisgICAg
ICAiaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgiLAorICAgIF0KKyAgfQorCiAgIGRlcHMgPSBb
CiAgICAgIjpjb2RlY19nbG9iYWxzX2hlYWRlcnMiLAogICAgICI6dmlkZW9fY29kZWNfaW50ZXJm
YWNlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxz
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJjMGVlZjIzNmNmZTgyZDUyZTgzZGRlNWQyMDg0OWI4Y2NkOGJmOGMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oCkBAIC0wLDAgKzEs
NjIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRo
b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJl
ZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBi
ZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2pl
Y3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSBy
b290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisvLyBUaGlzIGZpbGUgY29udGFpbnMgY29k
ZWMgZGVwZW5kZW50IGRlZmluaXRpb25zIHRoYXQgYXJlIG5lZWRlZCBpbgorLy8gb3JkZXIgdG8g
Y29tcGlsZSB0aGUgV2ViUlRDIGNvZGViYXNlLCBldmVuIGlmIHRoaXMgY29kZWMgaXMgbm90IHVz
ZWQuCisKKyNpZm5kZWYgTU9EVUxFU19WSURFT19DT0RJTkdfQ09ERUNTX0gyNjVfSU5DTFVERV9I
MjY1X0dMT0JBTFNfSF8KKyNkZWZpbmUgTU9EVUxFU19WSURFT19DT0RJTkdfQ09ERUNTX0gyNjVf
SU5DTFVERV9IMjY1X0dMT0JBTFNfSF8KKworI2lmbmRlZiBESVNBQkxFX0gyNjUKKworI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxz
LmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBUaGUgcGFja2V0aXphdGlvbiB0eXBlcyB0
aGF0IHdlIHN1cHBvcnQ6IHNpbmdsZSwgYWdncmVnYXRlZCwgYW5kIGZyYWdtZW50ZWQuCitlbnVt
IEgyNjVQYWNrZXRpemF0aW9uVHlwZXMgeworICBrSDI2NVNpbmdsZU5hbHUsICAvLyBUaGlzIHBh
Y2tldCBjb250YWlucyBhIHNpbmdsZSBOQUwgdW5pdC4KKyAga0gyNjVBUCwgICAgICAgICAgLy8g
VGhpcyBwYWNrZXQgY29udGFpbnMgYWdncmVnYXRpb24gUGFja2V0LgorICAgICAgICAgICAgICAg
ICAgICAvLyBJZiB0aGlzIHBhY2tldCBoYXMgYW4gYXNzb2NpYXRlZCBOQUwgdW5pdCB0eXBlLAor
ICAgICAgICAgICAgICAgICAgICAvLyBpdCdsbCBiZSBmb3IgdGhlIGZpcnN0IHN1Y2ggYWdncmVn
YXRlZCBwYWNrZXQuCisgIGtIMjY1RlUsICAgICAgICAgIC8vIFRoaXMgcGFja2V0IGNvbnRhaW5z
IGEgRlUgKGZyYWdtZW50YXRpb24KKyAgICAgICAgICAgICAgICAgICAgLy8gdW5pdCkgcGFja2V0
LCBtZWFuaW5nIGl0IGlzIGEgcGFydCBvZiBhIGZyYW1lCisgICAgICAgICAgICAgICAgICAgIC8v
IHRoYXQgd2FzIHRvbyBsYXJnZSB0byBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQuCit9OworCitz
dHJ1Y3QgSDI2NU5hbHVJbmZvIHsKKyAgdWludDhfdCB0eXBlOworICBpbnQgdnBzX2lkOworICBp
bnQgc3BzX2lkOworICBpbnQgcHBzX2lkOworfTsKKworZW51bSBjbGFzcyBIMjY1UGFja2V0aXph
dGlvbk1vZGUgeworICBOb25JbnRlcmxlYXZlZCA9IDAsICAvLyBNb2RlIDEgLSBTVEFQLUEsIEZV
LUEgaXMgYWxsb3dlZAorICBTaW5nbGVOYWxVbml0ICAgICAgICAvLyBNb2RlIDAgLSBvbmx5IHNp
bmdsZSBOQUxVIGFsbG93ZWQKK307CisKK3N0cnVjdCBSVFBWaWRlb0hlYWRlckgyNjUgeworICAv
LyBUaGUgTkFMIHVuaXQgdHlwZS4gSWYgdGhpcyBpcyBhIGhlYWRlciBmb3IgYSBmcmFnbWVudGVk
IHBhY2tldCwgaXQncyB0aGUKKyAgLy8gTkFMIHVuaXQgdHlwZSBvZiB0aGUgb3JpZ2luYWwgZGF0
YS4gSWYgdGhpcyBpcyB0aGUgaGVhZGVyIGZvciBhbiBhZ2dyZWdhdGVkCisgIC8vIHBhY2tldCwg
aXQncyB0aGUgTkFMIHVuaXQgdHlwZSBvZiB0aGUgZmlyc3QgTkFMIHVuaXQgaW4gdGhlIHBhY2tl
dC4KKyAgdWludDhfdCBuYWx1X3R5cGU7CisgIEgyNjVQYWNrZXRpemF0aW9uVHlwZXMgcGFja2V0
aXphdGlvbl90eXBlOworICBIMjY1TmFsdUluZm8gbmFsdXNba01heE5hbHVzUGVyUGFja2V0XTsK
KyAgc2l6ZV90IG5hbHVzX2xlbmd0aDsKKyAgLy8gVGhlIHBhY2tldGl6YXRpb24gdHlwZSBvZiB0
aGlzIGJ1ZmZlciAtIHNpbmdsZSwgYWdncmVnYXRlZCBvciBmcmFnbWVudGVkLgorICBIMjY1UGFj
a2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlOworfTsKKworfSAgLy8gbmFtZXNwYWNl
IHdlYnJ0YworCisjZW5kaWYKKworI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVPX0NPRElOR19DT0RF
Q1NfSDI2NV9JTkNMVURFX0gyNjVfR0xPQkFMU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2Rl
ZF9mcmFtZS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL2VuY29kZWRfZnJhbWUuY2MKaW5kZXggMWU5ZTM3NGM2NDRlODM1
MTM3NjBlNmRiYjFhNjVmMzBlNjZkNzJjYy4uNTQ5ODkyNjA4MjU2MTdmOGFlMjc0YWI1ZGRjZDRj
OGRiNTE2ZTk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9mcmFtZS5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGlu
Zy9lbmNvZGVkX2ZyYW1lLmNjCkBAIC0xNTEsNiArMTUxLDEyIEBAIHZvaWQgVkNNRW5jb2RlZEZy
YW1lOjpDb3B5Q29kZWNTcGVjaWZpYyhjb25zdCBSVFBWaWRlb0hlYWRlciogaGVhZGVyKSB7CiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQor
ICAgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjU6IHsKKyAgICAgICAgX2NvZGVjU3BlY2lmaWNJbmZv
LmNvZGVjVHlwZSA9IGtWaWRlb0NvZGVjSDI2NTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9Cisj
ZW5kaWYKICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgX2NvZGVjU3BlY2lmaWNJbmZvLmNvZGVj
VHlwZSA9IGtWaWRlb0NvZGVjR2VuZXJpYzsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBz
X3RyYWNrZXIuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFlNjdkODlhYjkzZjVjMmY5YzBiYzhmZDMxY2ZiYmIx
MTgwZmM3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tl
ci5jYwpAQCAtMCwwICsxLDMxMiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdl
YlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAq
ICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRo
ZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBy
aWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBj
b250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRI
T1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbmNsdWRl
ICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCIKKworI2lu
Y2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCisjaW5jbHVkZSAiY29tbW9uX3Zp
ZGVvL2gyNjQvaDI2NF9jb21tb24uaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1
X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5o
IgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgorI2luY2x1
ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaW5j
bHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2Jh
bHMuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9mcmFtZV9vYmplY3QuaCIKKyNp
bmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmgiCisjaW5jbHVkZSAi
cnRjX2Jhc2UvY2hlY2tzLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgorCituYW1l
c3BhY2Ugd2VicnRjIHsKK25hbWVzcGFjZSB2aWRlb19jb2RpbmcgeworCituYW1lc3BhY2Ugewor
Y29uc3QgdWludDhfdCBzdGFydF9jb2RlX2gyNjVbXSA9IHswLCAwLCAwLCAxfTsKK30gIC8vIG5h
bWVzcGFjZQorCitIMjY1VnBzU3BzUHBzVHJhY2tlcjo6Rml4ZWRCaXRzdHJlYW0gSDI2NVZwc1Nw
c1Bwc1RyYWNrZXI6OkNvcHlBbmRGaXhCaXRzdHJlYW0ocnRjOjpBcnJheVZpZXc8Y29uc3QgdWlu
dDhfdD4gYml0c3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBW
aWRlb0hlYWRlciogdmlkZW9faGVhZGVyX3BvaW50ZXIpIHsKKyAgY29uc3QgdWludDhfdCogZGF0
YSA9IGJpdHN0cmVhbS5kYXRhKCk7CisgIGNvbnN0IHNpemVfdCBkYXRhX3NpemUgPSBiaXRzdHJl
YW0uc2l6ZSgpOworICBSVFBWaWRlb0hlYWRlciYgdmlkZW9faGVhZGVyID0gKnZpZGVvX2hlYWRl
cl9wb2ludGVyOworICBSVENfRENIRUNLKHZpZGVvX2hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2Rl
Y0gyNjQpOworCisgIGF1dG8mIGgyNjVfaGVhZGVyID0KKyAgICAgIGFic2w6OmdldDxSVFBWaWRl
b0hlYWRlckgyNjU+KHZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisKKyAgYm9vbCBh
cHBlbmRfdnBzX3Nwc19wcHMgPSBmYWxzZTsKKyAgYXV0byB2cHMgPSB2cHNfZGF0YV8uZW5kKCk7
CisgIGF1dG8gc3BzID0gc3BzX2RhdGFfLmVuZCgpOworICBhdXRvIHBwcyA9IHBwc19kYXRhXy5l
bmQoKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0
aDsgKytpKSB7CisgICAgY29uc3QgSDI2NU5hbHVJbmZvJiBuYWx1ID0gaDI2NV9oZWFkZXIubmFs
dXNbaV07CisgICAgc3dpdGNoIChuYWx1LnR5cGUpIHsKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5
cGU6OmtWcHM6IHsKKyAgICAgICAgdnBzX2RhdGFfW25hbHUudnBzX2lkXS5zaXplID0gMDsKKyAg
ICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3BzOiB7
CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0udnBzX2lkID0gbmFsdS52cHNfaWQ7Cisg
ICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0ud2lkdGggPSB2aWRlb19oZWFkZXIud2lkdGg7
CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0uaGVpZ2h0ID0gdmlkZW9faGVhZGVyLmhl
aWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBl
OjprUHBzOiB7CisgICAgICAgIHBwc19kYXRhX1tuYWx1LnBwc19pZF0uc3BzX2lkID0gbmFsdS5z
cHNfaWQ7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a0lkcldSYWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McDoKKyAgICAg
IGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtDcmE6IHsKKyAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUg
Zmlyc3QgcGFja2V0IG9mIGFuIElEUiwgbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJlcXVpcmVkCisg
ICAgICAgIC8vIFNQUy9QUFMgYW5kIGFsc28gY2FsY3VsYXRlIGhvdyBtdWNoIGV4dHJhIHNwYWNl
IHdlIG5lZWQgaW4gdGhlIGJ1ZmZlcgorICAgICAgICAvLyB0byBwcmVwZW5kIHRoZSBTUFMvUFBT
IHRvIHRoZSBiaXRzdHJlYW0gd2l0aCBzdGFydCBjb2Rlcy4KKyAgICAgICAgaWYgKHZpZGVvX2hl
YWRlci5pc19maXJzdF9wYWNrZXRfaW5fZnJhbWUpIHsKKyAgICAgICAgICBpZiAobmFsdS5wcHNf
aWQgPT0gLTEpIHsKKyAgICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk5vIFBQUyBp
ZCBpbiBJRFIgbmFsdS4iOworICAgICAgICAgICAgcmV0dXJuIHtrUmVxdWVzdEtleWZyYW1lfTsK
KyAgICAgICAgICB9CisKKyAgICAgICAgICBwcHMgPSBwcHNfZGF0YV8uZmluZChuYWx1LnBwc19p
ZCk7CisgICAgICAgICAgaWYgKHBwcyA9PSBwcHNfZGF0YV8uZW5kKCkpIHsKKyAgICAgICAgICAg
IFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgICA8PCAiTm8gUFBTIHdpdGggaWQg
IiA8PCBuYWx1LnBwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1Jl
cXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisgICAgICAgICAgc3BzID0gc3BzX2RhdGFf
LmZpbmQocHBzLT5zZWNvbmQuc3BzX2lkKTsKKyAgICAgICAgICBpZiAoc3BzID09IHNwc19kYXRh
Xy5lbmQoKSkgeworICAgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgICAg
ICAgIDw8ICJObyBTUFMgd2l0aCBpZCA8PCAiIDw8IHBwcy0+c2Vjb25kLnNwc19pZCA8PCAiIHJl
Y2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAg
ICAgfQorCisgICAgICAgICAgdnBzID0gdnBzX2RhdGFfLmZpbmQoc3BzLT5zZWNvbmQudnBzX2lk
KTsKKyAgICAgICAgICBpZiAodnBzID09IHZwc19kYXRhXy5lbmQoKSkgeworICAgICAgICAgICAg
UlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgICAgICAgIDw8ICJObyBWUFMgd2l0aCBpZCAi
IDw8IHNwcy0+c2Vjb25kLnZwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVy
biB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gU2luY2Ug
dGhlIGZpcnN0IHBhY2tldCBvZiBldmVyeSBrZXlmcmFtZSBzaG91bGQgaGF2ZSBpdHMgd2lkdGgg
YW5kCisgICAgICAgICAgLy8gaGVpZ2h0IHNldCB3ZSBzZXQgaXQgaGVyZSBpbiB0aGUgY2FzZSBv
ZiBpdCBiZWluZyBzdXBwbGllZCBvdXQgb2YKKyAgICAgICAgICAvLyBiYW5kLgorICAgICAgICAg
IHZpZGVvX2hlYWRlci53aWR0aCA9IHNwcy0+c2Vjb25kLndpZHRoOworICAgICAgICAgIHZpZGVv
X2hlYWRlci5oZWlnaHQgPSBzcHMtPnNlY29uZC5oZWlnaHQ7CisKKyAgICAgICAgICAvLyBJZiB0
aGUgVlBTL1NQUy9QUFMgd2FzIHN1cHBsaWVkIG91dCBvZiBiYW5kIHRoZW4gd2Ugd2lsbCBoYXZl
IHNhdmVkCisgICAgICAgICAgLy8gdGhlIGFjdHVhbCBiaXRzdHJlYW0gaW4gfGRhdGF8LgorICAg
ICAgICAgIC8vIFRoaXMgYnJhbmNoIGlzIG5vdCB2ZXJpZmllZC4KKyAgICAgICAgICBpZiAodnBz
LT5zZWNvbmQuZGF0YSAmJiBzcHMtPnNlY29uZC5kYXRhICYmIHBwcy0+c2Vjb25kLmRhdGEpIHsK
KyAgICAgICAgICAgIFJUQ19EQ0hFQ0tfR1QodnBzLT5zZWNvbmQuc2l6ZSwgMCk7CisgICAgICAg
ICAgICBSVENfRENIRUNLX0dUKHNwcy0+c2Vjb25kLnNpemUsIDApOworICAgICAgICAgICAgUlRD
X0RDSEVDS19HVChwcHMtPnNlY29uZC5zaXplLCAwKTsKKyAgICAgICAgICAgIGFwcGVuZF92cHNf
c3BzX3BwcyA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgICAgfQorICAgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICB9CisKKyAg
UlRDX0NIRUNLKCFhcHBlbmRfdnBzX3Nwc19wcHMgfHwKKyAgICAgICAgICAgIChzcHMgIT0gc3Bz
X2RhdGFfLmVuZCgpICYmIHBwcyAhPSBwcHNfZGF0YV8uZW5kKCkpKTsKKworICAvLyBDYWxjdWxh
dGUgaG93IG11Y2ggc3BhY2Ugd2UgbmVlZCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGJpdHN0cmVhbS4K
KyAgc2l6ZV90IHJlcXVpcmVkX3NpemUgPSAwOworCisgIGlmIChhcHBlbmRfdnBzX3Nwc19wcHMp
IHsKKyAgICByZXF1aXJlZF9zaXplICs9IHZwcy0+c2Vjb25kLnNpemUgKyBzaXplb2Yoc3RhcnRf
Y29kZV9oMjY1KTsKKyAgICByZXF1aXJlZF9zaXplICs9IHNwcy0+c2Vjb25kLnNpemUgKyBzaXpl
b2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICByZXF1aXJlZF9zaXplICs9IHBwcy0+c2Vjb25kLnNp
emUgKyBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgfQorCisgIGlmIChoMjY1X2hlYWRlci5w
YWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVBUCkgeworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVf
cHRyID0gZGF0YSArIDE7CisgICAgd2hpbGUgKG5hbHVfcHRyIDwgZGF0YSArIGRhdGFfc2l6ZSkg
eworICAgICAgUlRDX0RDSEVDSyh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1l
KTsKKyAgICAgIHJlcXVpcmVkX3NpemUgKz0gc2l6ZW9mKHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAg
ICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21l
bnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBu
YWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHJlcXVpcmVkX3NpemUg
Kz0gc2VnbWVudF9sZW5ndGg7CisgICAgICBuYWx1X3B0ciArPSBzZWdtZW50X2xlbmd0aDsKKyAg
ICB9CisgIH0gZWxzZSB7CisgICAgaWYgKHZpZGVvX2hlYWRlci5pc19maXJzdF9wYWNrZXRfaW5f
ZnJhbWUpCisgICAgICByZXF1aXJlZF9zaXplICs9IHNpemVvZihzdGFydF9jb2RlX2gyNjUpOwor
ICAgIHJlcXVpcmVkX3NpemUgKz0gZGF0YV9zaXplOworICB9CisKKyAgLy8gVGhlbiB3ZSBjb3B5
IHRvIHRoZSBuZXcgYnVmZmVyLgorICBGaXhlZEJpdHN0cmVhbSBmaXhlZDsKKyAgZml4ZWQuYml0
c3RyZWFtLkVuc3VyZUNhcGFjaXR5KHJlcXVpcmVkX3NpemUpOworCisgIGlmIChhcHBlbmRfdnBz
X3Nwc19wcHMpIHsKKyAgICAvLyBJbnNlcnQgVlBTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBl
bmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEo
dnBzLT5zZWNvbmQuZGF0YS5nZXQoKSwgdnBzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBJbnNl
cnQgU1BTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7
CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEoc3BzLT5zZWNvbmQuZGF0YS5nZXQoKSwg
c3BzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBJbnNlcnQgUFBTLgorICAgIGZpeGVkLmJpdHN0
cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFw
cGVuZERhdGEocHBzLT5zZWNvbmQuZGF0YS5nZXQoKSwgcHBzLT5zZWNvbmQuc2l6ZSk7CisKKyAg
ICAvLyBVcGRhdGUgY29kZWMgaGVhZGVyIHRvIHJlZmxlY3QgdGhlIG5ld2x5IGFkZGVkIFNQUyBh
bmQgUFBTLgorICAgIEgyNjVOYWx1SW5mbyB2cHNfaW5mbzsKKyAgICB2cHNfaW5mby50eXBlID0g
SDI2NTo6TmFsdVR5cGU6OmtWcHM7CisgICAgdnBzX2luZm8udnBzX2lkID0gdnBzLT5maXJzdDsK
KyAgICB2cHNfaW5mby5zcHNfaWQgPSAtMTsKKyAgICB2cHNfaW5mby5wcHNfaWQgPSAtMTsKKyAg
ICBIMjY1TmFsdUluZm8gc3BzX2luZm87CisgICAgc3BzX2luZm8udHlwZSA9IEgyNjU6Ok5hbHVU
eXBlOjprU3BzOworICAgIHNwc19pbmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7CisgICAgc3BzX2lu
Zm8uc3BzX2lkID0gc3BzLT5maXJzdDsKKyAgICBzcHNfaW5mby5wcHNfaWQgPSAtMTsKKyAgICBI
MjY1TmFsdUluZm8gcHBzX2luZm87CisgICAgcHBzX2luZm8udHlwZSA9IEgyNjU6Ok5hbHVUeXBl
OjprUHBzOworICAgIHBwc19pbmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7CisgICAgcHBzX2luZm8u
c3BzX2lkID0gc3BzLT5maXJzdDsKKyAgICBwcHNfaW5mby5wcHNfaWQgPSBwcHMtPmZpcnN0Owor
ICAgIGlmIChoMjY1X2hlYWRlci5uYWx1c19sZW5ndGggKyAyIDw9IGtNYXhOYWx1c1BlclBhY2tl
dCkgeworICAgICAgaDI2NV9oZWFkZXIubmFsdXNbaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoKytd
ID0gdnBzX2luZm87CisgICAgICBoMjY1X2hlYWRlci5uYWx1c1toMjY1X2hlYWRlci5uYWx1c19s
ZW5ndGgrK10gPSBzcHNfaW5mbzsKKyAgICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVy
Lm5hbHVzX2xlbmd0aCsrXSA9IHBwc19pbmZvOworICAgIH0gZWxzZSB7CisgICAgICBSVENfTE9H
KExTX1dBUk5JTkcpIDw8ICJOb3QgZW5vdWdoIHNwYWNlIGluIEguMjY1IGNvZGVjIGhlYWRlciB0
byBpbnNlcnQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1BTL1BQUyBwcm92aWRl
ZCBvdXQtb2YtYmFuZC4iOworICAgIH0KKyAgfQorCisgIC8vIENvcHkgdGhlIHJlc3Qgb2YgdGhl
IGJpdHN0cmVhbSBhbmQgaW5zZXJ0IHN0YXJ0IGNvZGVzLgorICBpZiAoaDI2NV9oZWFkZXIucGFj
a2V0aXphdGlvbl90eXBlID09IGtIMjY1QVApIHsKKyAgICBjb25zdCB1aW50OF90KiBuYWx1X3B0
ciA9IGRhdGEgKyAxOworICAgIHdoaWxlIChuYWx1X3B0ciA8IGRhdGEgKyBkYXRhX3NpemUpIHsK
KyAgICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAg
ICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21l
bnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBu
YWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHNpemVfdCBjb3B5X2Vu
ZCA9IG5hbHVfcHRyIC0gZGF0YSArIHNlZ21lbnRfbGVuZ3RoOworICAgICAgaWYgKGNvcHlfZW5k
ID4gZGF0YV9zaXplKSB7CisgICAgICAgIHJldHVybiB7a0Ryb3B9OworICAgICAgfQorCisgICAg
ICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShuYWx1X3B0ciwgc2VnbWVudF9sZW5ndGgpOwor
ICAgICAgbmFsdV9wdHIgKz0gc2VnbWVudF9sZW5ndGg7CisgICAgfQorICB9IGVsc2UgeworICAg
IGlmICh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSB7CisgICAgICBmaXhl
ZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShzdGFydF9jb2RlX2gyNjUpOworICAgIH0KKyAgICBmaXhl
ZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShiaXRzdHJlYW0uZGF0YSgpLCBiaXRzdHJlYW0uc2l6ZSgp
KTsKKyAgfQorCisgIGZpeGVkLmFjdGlvbiA9IGtJbnNlcnQ7CisgIHJldHVybiBmaXhlZDsKK30K
Kwordm9pZCBIMjY1VnBzU3BzUHBzVHJhY2tlcjo6SW5zZXJ0VnBzU3BzUHBzTmFsdXMoCisgICAg
Y29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywKKyAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1
aW50OF90PiYgc3BzLAorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBwcHMpIHsKKyAg
Y29uc3RleHByIHNpemVfdCBrTmFsdUhlYWRlck9mZnNldCA9IDE7CisgIGlmICh2cHMuc2l6ZSgp
IDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJWUFMg
c2l6ZSAgIiA8PCB2cHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBp
ZiAoKHZwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBS
VENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0
dXJuOworICB9CisgIGlmIChzcHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBS
VENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgc2l6ZSAgIiA8PCBzcHMuc2l6ZSgpIDw8ICIgaXMg
c21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zm
c2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAoKHNwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2
NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFs
dSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChwcHMuc2l6ZSgpIDwg
a05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJQUFMgc2l6
ZSAgIiA8PCBwcHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAo
KHBwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtQcHMpIHsKKyAgICBSVENf
TE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJu
OworICB9CisgIGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiBwYXJzZWRf
dnBzID0gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAgICB2cHMuZGF0YSgpICsga05hbHVI
ZWFkZXJPZmZzZXQsIHZwcy5zaXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisgIGFic2w6Om9w
dGlvbmFsPEgyNjVTcHNQYXJzZXI6OlNwc1N0YXRlPiBwYXJzZWRfc3BzID0gSDI2NVNwc1BhcnNl
cjo6UGFyc2VTcHMoCisgICAgICBzcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHNwcy5z
aXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisgIGFic2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJz
ZXI6OlBwc1N0YXRlPiBwYXJzZWRfcHBzID0gSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHMoCisgICAg
ICBwcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHBwcy5zaXplKCkgLSBrTmFsdUhlYWRl
ck9mZnNldCk7CisKKyAgaWYgKCFwYXJzZWRfdnBzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5H
KSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfc3BzKSB7
CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFNQUy4iOworICB9
CisKKyAgaWYgKCFwYXJzZWRfcHBzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFp
bGVkIHRvIHBhcnNlIFBQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfdnBzIHx8ICFwYXJzZWRf
cHBzIHx8ICFwYXJzZWRfc3BzKSB7CisgICAgcmV0dXJuOworICB9CisKKyAgVnBzSW5mbyB2cHNf
aW5mbzsKKyAgdnBzX2luZm8uc2l6ZSA9IHZwcy5zaXplKCk7CisgIHVpbnQ4X3QqIHZwc19kYXRh
ID0gbmV3IHVpbnQ4X3RbdnBzX2luZm8uc2l6ZV07CisgIG1lbWNweSh2cHNfZGF0YSwgdnBzLmRh
dGEoKSwgdnBzX2luZm8uc2l6ZSk7CisgIHZwc19pbmZvLmRhdGEucmVzZXQodnBzX2RhdGEpOwor
ICB2cHNfZGF0YV9bcGFyc2VkX3Zwcy0+aWRdID0gc3RkOjptb3ZlKHZwc19pbmZvKTsKKworICBT
cHNJbmZvIHNwc19pbmZvOworICBzcHNfaW5mby5zaXplID0gc3BzLnNpemUoKTsKKyAgc3BzX2lu
Zm8ud2lkdGggPSBwYXJzZWRfc3BzLT53aWR0aDsKKyAgc3BzX2luZm8uaGVpZ2h0ID0gcGFyc2Vk
X3Nwcy0+aGVpZ2h0OworICBzcHNfaW5mby52cHNfaWQgPSBwYXJzZWRfc3BzLT52cHNfaWQ7Cisg
IHVpbnQ4X3QqIHNwc19kYXRhID0gbmV3IHVpbnQ4X3Rbc3BzX2luZm8uc2l6ZV07CisgIG1lbWNw
eShzcHNfZGF0YSwgc3BzLmRhdGEoKSwgc3BzX2luZm8uc2l6ZSk7CisgIHNwc19pbmZvLmRhdGEu
cmVzZXQoc3BzX2RhdGEpOworICBzcHNfZGF0YV9bcGFyc2VkX3Nwcy0+aWRdID0gc3RkOjptb3Zl
KHNwc19pbmZvKTsKKworICBQcHNJbmZvIHBwc19pbmZvOworICBwcHNfaW5mby5zaXplID0gcHBz
LnNpemUoKTsKKyAgcHBzX2luZm8uc3BzX2lkID0gcGFyc2VkX3Bwcy0+c3BzX2lkOworICB1aW50
OF90KiBwcHNfZGF0YSA9IG5ldyB1aW50OF90W3Bwc19pbmZvLnNpemVdOworICBtZW1jcHkocHBz
X2RhdGEsIHBwcy5kYXRhKCksIHBwc19pbmZvLnNpemUpOworICBwcHNfaW5mby5kYXRhLnJlc2V0
KHBwc19kYXRhKTsKKyAgcHBzX2RhdGFfW3BhcnNlZF9wcHMtPmlkXSA9IHN0ZDo6bW92ZShwcHNf
aW5mbyk7CisKKyAgUlRDX0xPRyhMU19JTkZPKSA8PCAiSW5zZXJ0ZWQgU1BTIGlkICIgPDwgcGFy
c2VkX3Nwcy0+aWQgPDwgIiBhbmQgUFBTIGlkICIKKyAgICAgICAgICAgICAgICAgICA8PCBwYXJz
ZWRfcHBzLT5pZCA8PCAiIChyZWZlcmVuY2luZyBTUFMgIgorICAgICAgICAgICAgICAgICAgIDw8
IHBhcnNlZF9wcHMtPnNwc19pZCA8PCAiKSI7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB2aWRlb19j
b2RpbmcKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBz
X3Nwc19wcHNfdHJhY2tlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2FjNWUyYTAwMWNiZDIwNmZmMzE3YzJiMDlhZTY4MDZjZmIxMjgwMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oCkBAIC0wLDAgKzEs
NzQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRo
b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJl
ZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBi
ZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2pl
Y3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSBy
b290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIE1PRFVMRVNfVklERU9fQ09E
SU5HX0gyNjVfVlBTX1NQU19QUFNfVFJBQ0tFUl9IXworI2RlZmluZSBNT0RVTEVTX1ZJREVPX0NP
RElOR19IMjY1X1ZQU19TUFNfUFBTX1RSQUNLRVJfSF8KKworI2luY2x1ZGUgPGNzdGRpbnQ+Cisj
aW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNp
bmNsdWRlICJhcGkvYXJyYXlfdmlldy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1
bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRw
X3ZpZGVvX2hlYWRlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2NvcHlfb25fd3JpdGVfYnVmZmVy
LmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCitjbGFzcyBWQ01QYWNrZXQ7CisKK25hbWVzcGFj
ZSB2aWRlb19jb2RpbmcgeworCitjbGFzcyBIMjY1VnBzU3BzUHBzVHJhY2tlciB7CisgcHVibGlj
OgorICBlbnVtIFBhY2tldEFjdGlvbiB7IGtJbnNlcnQsIGtEcm9wLCBrUmVxdWVzdEtleWZyYW1l
IH07CisgIHN0cnVjdCBGaXhlZEJpdHN0cmVhbSB7CisgICAgUGFja2V0QWN0aW9uIGFjdGlvbjsK
KyAgICBydGM6OkNvcHlPbldyaXRlQnVmZmVyIGJpdHN0cmVhbTsKKyAgfTsKKworICAvLyBSZXR1
cm5zIGZpeGVkIGJpdHN0cmVhbSBhbmQgbW9kaWZpZXMgfHZpZGVvX2hlYWRlcnwuCisgIEZpeGVk
Qml0c3RyZWFtIENvcHlBbmRGaXhCaXRzdHJlYW0ocnRjOjpBcnJheVZpZXc8Y29uc3QgdWludDhf
dD4gYml0c3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZp
ZGVvSGVhZGVyKiB2aWRlb19oZWFkZXIpOworCisgIHZvaWQgSW5zZXJ0VnBzU3BzUHBzTmFsdXMo
Y29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgc3BzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBwcHMpOworCisgcHJpdmF0ZToK
KyAgc3RydWN0IFZwc0luZm8geworICAgIHNpemVfdCBzaXplID0gMDsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8dWludDhfdFtdPiBkYXRhOworICB9OworCisgIHN0cnVjdCBQcHNJbmZvIHsKKyAgICBp
bnQgc3BzX2lkID0gLTE7CisgICAgc2l6ZV90IHNpemUgPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0
cjx1aW50OF90W10+IGRhdGE7CisgIH07CisKKyAgc3RydWN0IFNwc0luZm8geworICAgIGludCB2
cHNfaWQgPSAtMTsKKyAgICBzaXplX3Qgc2l6ZSA9IDA7CisgICAgaW50IHdpZHRoID0gLTE7Cisg
ICAgaW50IGhlaWdodCA9IC0xOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGRhdGE7
CisgIH07CisKKyAgc3RkOjptYXA8dWludDMyX3QsIFZwc0luZm8+IHZwc19kYXRhXzsKKyAgc3Rk
OjptYXA8dWludDMyX3QsIFBwc0luZm8+IHBwc19kYXRhXzsKKyAgc3RkOjptYXA8dWludDMyX3Qs
IFNwc0luZm8+IHNwc19kYXRhXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSB2aWRlb19jb2RpbmcK
K30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKworI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVPX0NPRElO
R19IMjY0X1NQU19QUFNfVFJBQ0tFUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRl
b19jb2RlY19pbnRlcmZhY2UuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNl
LmgKaW5kZXggYzdiMTE2ZjRhZTNmNzBhZGRiODdmMGE4NDJhZWIzZTI4MWQyODU0Ny4uMzY4NDk2
NjYyM2FiODA5YzA1OGQ5MGJlYWIxZGM3ODI3NjBhNDI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5j
bHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2Nv
ZGVjX2ludGVyZmFjZS5oCkBAIC0yMCw2ICsyMCw5IEBACiAjaW5jbHVkZSAiY29tbW9uX3ZpZGVv
L2dlbmVyaWNfZnJhbWVfZGVzY3JpcHRvci9nZW5lcmljX2ZyYW1lX2luZm8uaCIKICNpbmNsdWRl
ICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgogI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9o
MjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3Zp
ZGVvX2NvZGluZy9jb2RlY3MvdnA5L2luY2x1ZGUvdnA5X2dsb2JhbHMuaCIKICNpbmNsdWRlICJt
b2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2Vycm9yX2NvZGVzLmgiCiAjaW5jbHVk
ZSAicnRjX2Jhc2Uvc3lzdGVtL3J0Y19leHBvcnQuaCIKQEAgLTkyLDEwICs5NSwyMCBAQCBzdHJ1
Y3QgQ29kZWNTcGVjaWZpY0luZm9IMjY0IHsKIH07CiBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9k
PENvZGVjU3BlY2lmaWNJbmZvSDI2ND46OnZhbHVlLCAiIik7CiAKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CitzdHJ1Y3QgQ29kZWNTcGVjaWZpY0luZm9IMjY1IHsKKyAgSDI2NVBhY2tldGl6YXRpb25N
b2RlIHBhY2tldGl6YXRpb25fbW9kZTsKKyAgYm9vbCBpZHJfZnJhbWU7Cit9OworI2VuZGlmCisK
IHVuaW9uIENvZGVjU3BlY2lmaWNJbmZvVW5pb24gewogICBDb2RlY1NwZWNpZmljSW5mb1ZQOCBW
UDg7CiAgIENvZGVjU3BlY2lmaWNJbmZvVlA5IFZQOTsKICAgQ29kZWNTcGVjaWZpY0luZm9IMjY0
IEgyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBDb2RlY1NwZWNpZmljSW5mb0gyNjUgSDI2
NTsKKyNlbmRpZgogfTsKIHN0YXRpY19hc3NlcnQoc3RkOjppc19wb2Q8Q29kZWNTcGVjaWZpY0lu
Zm9Vbmlvbj46OnZhbHVlLCAiIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJf
Y29tbW9uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9qaXR0ZXJfYnVmZmVyX2NvbW1vbi5oCmluZGV4IDZjY2ZlMzkxOTk1
NGY4ZDA5YmI1MzdlNGFkOTE3NjFlZmE1MWEwOWYuLjU0OTJlZTViNDFmMzYwZTdjNWJjNTExMDYw
NDM3ZWJkZWY5MjNjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmgK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaApAQCAtNTQsNiArNTQsOSBAQCBlbnVt
IFZDTUZyYW1lQnVmZmVyU3RhdGVFbnVtIHsKIH07CiAKIGVudW0geyBrSDI2NFN0YXJ0Q29kZUxl
bmd0aEJ5dGVzID0gNCB9OworI2lmbmRlZiBESVNBQkxFX0gyNjUKK2VudW0geyBrSDI2NVN0YXJ0
Q29kZUxlbmd0aEJ5dGVzID0gNCB9OworI2VuZGlmCiB9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCiAK
ICNlbmRpZiAgLy8gTU9EVUxFU19WSURFT19DT0RJTkdfSklUVEVSX0JVRkZFUl9DT01NT05fSF8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYwppbmRleCAwYzRh
NjU4YjhmMjAzNDkxNmMxODUzNDZlNGI4MTQyMmNjZmU4ZjhmLi4xZjlmNGI1MjQ2ZWQ1YTQ3MTE0
NWZkZjNiYTQ4ZTVjMTQzYTA0ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQuY2MKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19j
b2RpbmcvcGFja2V0LmNjCkBAIC00NCw4ICs0NCwxMyBAQCBWQ01QYWNrZXQ6OlZDTVBhY2tldChj
b25zdCB1aW50OF90KiBwdHIsCiAgICAgICBtYXJrZXJCaXQocnRwX2hlYWRlci5tYXJrZXJCaXQp
LAogICAgICAgdGltZXNOYWNrZWQoLTEpLAogICAgICAgY29tcGxldGVOQUxVKGtOYWx1SW5jb21w
bGV0ZSksCi0gICAgICBpbnNlcnRTdGFydENvZGUodmlkZW9IZWFkZXIuY29kZWMgPT0ga1ZpZGVv
Q29kZWNIMjY0ICYmCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaW5zZXJ0U3RhcnRDb2Rl
KCh2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQgfHwgdmlkZW9IZWFkZXIuY29k
ZWMgPT0ga1ZpZGVvQ29kZWNIMjY1KSAmJgogICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSGVh
ZGVyLmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSksCisjZWxzZQorICAgICAgIGluc2VydFN0YXJ0
Q29kZSh2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgdmlkZW9IZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSwKKyNlbmRp
ZgogICAgICAgdmlkZW9faGVhZGVyKHZpZGVvSGVhZGVyKSwKICAgICAgIHBhY2tldF9pbmZvKHJ0
cF9oZWFkZXIsIHJlY2VpdmVfdGltZV9tcykgewogICBpZiAoaXNfZmlyc3RfcGFja2V0X2luX2Zy
YW1lKCkgJiYgbWFya2VyQml0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRl
b19jb2RpbmcvcGFja2V0X2J1ZmZlci5jYwppbmRleCA0ZGU2MjdlZTYzMzQxZTMwMzk4M2ViYjVk
YWE4ODZhYWQ2OGIzMDg2Li41NTE0MTQxYTRjMGNlYjU4OTdjNWM3MjQ4NjZjZDA5N2RhNjlkMDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9i
dWZmZXIuY2MKQEAgLTI0LDExICsyNCwxNyBAQAogI2luY2x1ZGUgImFwaS92aWRlby9lbmNvZGVk
X2ZyYW1lLmgiCiAjaW5jbHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX2ZyYW1lX3R5cGUuaCIKICNpbmNs
dWRlICJjb21tb25fdmlkZW8vaDI2NC9oMjY0X2NvbW1vbi5oIgorI2lmbmRlZiBESVNBQkxFX0gy
NjUKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2VuZGlmCiAj
aW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2hlYWRlcl9leHRlbnNpb25zLmgi
CiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3BhY2tldF9yZWNlaXZlZC5o
IgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaCIK
ICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVy
X2F2MS5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1
ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5k
aWYKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9mcmFtZV9vYmplY3QuaCIKICNpbmNs
dWRlICJydGNfYmFzZS9jaGVja3MuaCIKICNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCkBA
IC0yODksMTIgKzI5NSwyMCBAQCBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UnRwRnJhbWVP
YmplY3Q+PiBQYWNrZXRCdWZmZXI6OkZpbmRGcmFtZXMoCiAgICAgICBib29sIGhhc19oMjY0X3Bw
cyA9IGZhbHNlOwogICAgICAgYm9vbCBoYXNfaDI2NF9pZHIgPSBmYWxzZTsKICAgICAgIGJvb2wg
aXNfaDI2NF9rZXlmcmFtZSA9IGZhbHNlOworICAgICAgYm9vbCBpc19oMjY1ID0gZmFsc2U7Cisj
aWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaXNfaDI2NSA9IGJ1ZmZlcl9bc3RhcnRfaW5kZXhd
LnBhY2tldC0+Y29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjU7CisgICAgICBib29sIGhhc19oMjY1
X3NwcyA9IGZhbHNlOworICAgICAgYm9vbCBoYXNfaDI2NV9wcHMgPSBmYWxzZTsKKyAgICAgIGJv
b2wgaGFzX2gyNjVfaWRyID0gZmFsc2U7CisgICAgICBib29sIGlzX2gyNjVfa2V5ZnJhbWUgPSBm
YWxzZTsKKyNlbmRpZgogICAgICAgaW50IGlkcl93aWR0aCA9IC0xOwogICAgICAgaW50IGlkcl9o
ZWlnaHQgPSAtMTsKICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICsrdGVzdGVkX3BhY2tl
dHM7CiAKLSAgICAgICAgaWYgKCFpc19oMjY0ICYmIGJ1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1l
X2JlZ2luKCkpCisgICAgICAgIGlmICghaXNfaDI2NCAmJiAhaXNfaDI2NSAmJiBidWZmZXJfW3N0
YXJ0X2luZGV4XS5mcmFtZV9iZWdpbigpKQogICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlm
IChpc19oMjY0KSB7CkBAIC0zMjcsNyArMzQxLDI4IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAg
ICAgIH0KICAgICAgICAgICB9CiAgICAgICAgIH0KLQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAg
ICAgICAgaWYgKGlzX2gyNjUgJiYgIWlzX2gyNjVfa2V5ZnJhbWUpIHsKKyAgICAgICAgICBjb25z
dCBhdXRvKiBoMjY1X2hlYWRlciA9IGFic2w6OmdldF9pZjxSVFBWaWRlb0hlYWRlckgyNjU+KAor
ICAgICAgICAgICAgICAmYnVmZmVyX1tzdGFydF9pbmRleF0ucGFja2V0LT52aWRlb19oZWFkZXIu
dmlkZW9fdHlwZV9oZWFkZXIpOworICAgICAgICAgIGlmICghaDI2NV9oZWFkZXIgfHwgaDI2NV9o
ZWFkZXItPm5hbHVzX2xlbmd0aCA+PSBrTWF4TmFsdXNQZXJQYWNrZXQpCisgICAgICAgICAgICBy
ZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgaDI2
NV9oZWFkZXItPm5hbHVzX2xlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBpZiAoaDI2NV9oZWFk
ZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICAgICAgICAg
ICAgaGFzX2gyNjVfc3BzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaDI2NV9oZWFk
ZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtQcHMpIHsKKyAgICAgICAgICAg
ICAgaGFzX2gyNjVfcHBzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaDI2NV9oZWFk
ZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJXUmFkbAorICAgICAgICAg
ICAgICAgICAgICAgICB8fCBoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1OjpOYWx1
VHlwZTo6a0lkck5McAorICAgICAgICAgICAgICAgICAgICAgICB8fCBoMjY1X2hlYWRlci0+bmFs
dXNbal0udHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0NyYSkgeworICAgICAgICAgICAgICBoYXNf
aDI2NV9pZHIgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBp
ZiAoKGhhc19oMjY1X3NwcyAmJiBoYXNfaDI2NV9wcHMpIHx8IGhhc19oMjY1X2lkcikgeworICAg
ICAgICAgICAgaXNfaDI2NV9rZXlmcmFtZSA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICB9
CisjZW5kaWYKICAgICAgICAgaWYgKHRlc3RlZF9wYWNrZXRzID09IGJ1ZmZlcl8uc2l6ZSgpKQog
ICAgICAgICAgIGJyZWFrOwogCkBAIC0zMzksNyArMzc0LDcgQEAgc3RkOjp2ZWN0b3I8c3RkOjp1
bmlxdWVfcHRyPFJ0cEZyYW1lT2JqZWN0Pj4gUGFja2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAg
ICAgICAvLyB0aGUgdGltZXN0YW1wIG9mIHRoYXQgcGFja2V0IGlzIHRoZSBzYW1lIGFzIHRoaXMg
b25lLiBUaGlzIG1heSBjYXVzZQogICAgICAgICAvLyB0aGUgUGFja2V0QnVmZmVyIHRvIGhhbmQg
b3V0IGluY29tcGxldGUgZnJhbWVzLgogICAgICAgICAvLyBTZWU6IGh0dHBzOi8vYnVncy5jaHJv
bWl1bS5vcmcvcC93ZWJydGMvaXNzdWVzL2RldGFpbD9pZD03MTA2Ci0gICAgICAgIGlmIChpc19o
MjY0ICYmCisgICAgICAgIGlmICgoaXNfaDI2NCB8fCBpc19oMjY1KSAmJgogICAgICAgICAgICAg
KCFidWZmZXJfW3N0YXJ0X2luZGV4XS51c2VkKCkgfHwKICAgICAgICAgICAgICBidWZmZXJfW3N0
YXJ0X2luZGV4XS5wYWNrZXQtPnRpbWVzdGFtcCAhPSBmcmFtZV90aW1lc3RhbXApKSB7CiAgICAg
ICAgICAgYnJlYWs7CkBAIC0zOTMsNiArNDI4LDQ1IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAg
fQogICAgICAgfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaWYgKGlzX2gyNjUpIHsK
KyAgICAgICAgLy8gV2FybiBpZiB0aGlzIGlzIGFuIHVuc2FmZSBmcmFtZS4KKyAgICAgICAgaWYg
KGhhc19oMjY1X2lkciAmJiAoIWhhc19oMjY1X3NwcyB8fCAhaGFzX2gyNjVfcHBzKSkgeworICAg
ICAgICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOworICAgICAgICAgIHNzIDw8ICJSZWNlaXZlZCBI
LjI2NS1JRFIgZnJhbWUgIgorICAgICAgICAgICAgIDw8ICIoU1BTOiAiIDw8IGhhc19oMjY1X3Nw
cyA8PCAiLCBQUFM6ICIgPDwgaGFzX2gyNjVfcHBzIDw8ICIpLiAiOworICAgICAgICAgIHNzIDw8
ICJUcmVhdGluZyBhcyBkZWx0YSBmcmFtZSBzaW5jZSAiCisgICAgICAgICAgICAgICAgIldlYlJU
Qy1TcHNQcHNJZHJJc0gyNjVLZXlmcmFtZSBpcyBhbHdheXMgZW5hYmxlZC4iOworICAgICAgICAg
IFJUQ19MT0coTFNfV0FSTklORykgPDwgc3Muc3RyKCk7CisgICAgICAgIH0KKworICAgICAgICAv
LyBOb3cgdGhhdCB3ZSBoYXZlIGRlY2lkZWQgd2hldGhlciB0byB0cmVhdCB0aGlzIGZyYW1lIGFz
IGEga2V5IGZyYW1lCisgICAgICAgIC8vIG9yIGRlbHRhIGZyYW1lIGluIHRoZSBmcmFtZSBidWZm
ZXIsIHdlIHVwZGF0ZSB0aGUgZmllbGQgdGhhdAorICAgICAgICAvLyBkZXRlcm1pbmVzIGlmIHRo
ZSBSdHBGcmFtZU9iamVjdCBpcyBhIGtleSBmcmFtZSBvciBkZWx0YSBmcmFtZS4KKyAgICAgICAg
Y29uc3Qgc2l6ZV90IGZpcnN0X3BhY2tldF9pbmRleCA9IHN0YXJ0X3NlcV9udW0gJSBidWZmZXJf
LnNpemUoKTsKKyAgICAgICAgUlRDX0NIRUNLX0xUKGZpcnN0X3BhY2tldF9pbmRleCwgYnVmZmVy
Xy5zaXplKCkpOworICAgICAgICBpZiAoaXNfaDI2NV9rZXlmcmFtZSkgeworICAgICAgICAgIGJ1
ZmZlcl9bZmlyc3RfcGFja2V0X2luZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBl
ID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgIGJ1ZmZlcl9bZmlyc3RfcGFja2V0X2luZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci5m
cmFtZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lRGVsdGE7CisgICAgICAgIH0K
KworICAgICAgICAvLyBJZiB0aGlzIGlzIG5vdCBhIGtleSBmcmFtZSwgbWFrZSBzdXJlIHRoZXJl
IGFyZSBubyBnYXBzIGluIHRoZQorICAgICAgICAvLyBwYWNrZXQgc2VxdWVuY2UgbnVtYmVycyB1
cCB1bnRpbCB0aGlzIHBvaW50LgorICAgICAgICBpZiAoIWlzX2gyNjVfa2V5ZnJhbWUgJiYgbWlz
c2luZ19wYWNrZXRzXy51cHBlcl9ib3VuZChzdGFydF9zZXFfbnVtKSAhPQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1pc3NpbmdfcGFja2V0c18uYmVnaW4oKSkgeworICAg
ICAgICAgIHVpbnQxNl90IHN0b3BfaW5kZXggPSAoaW5kZXggKyAxKSAlIGJ1ZmZlcl8uc2l6ZSgp
OworICAgICAgICAgIHdoaWxlIChzdGFydF9pbmRleCAhPSBzdG9wX2luZGV4KSB7CisgICAgICAg
ICAgICAvLyBGSVhNRTogZmluZCB3aGF0IGl0IGRvZXMuCisgICAgICAgICAgICAvL3NlcXVlbmNl
X2J1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1lX2NyZWF0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAg
IHN0YXJ0X2luZGV4ID0gKHN0YXJ0X2luZGV4ICsgMSkgJSBidWZmZXJfLnNpemUoKTsKKyAgICAg
ICAgICB9CisKKyAgICAgICAgICByZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAgICB9CisgICAg
ICB9CisjZW5kaWYKKwogICAgICAgaWYgKGF1dG8gZnJhbWUgPSBBc3NlbWJsZUZyYW1lKHN0YXJ0
X3NlcV9udW0sIHNlcV9udW0pKSB7CiAgICAgICAgIGZvdW5kX2ZyYW1lcy5wdXNoX2JhY2soc3Rk
Ojptb3ZlKGZyYW1lKSk7CiAgICAgICB9IGVsc2UgewpAQCAtNDAwLDYgKzQ3NCw3IEBAIHN0ZDo6
dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6Rmlu
ZEZyYW1lcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgc3RhcnRfc2VxX251bSA8PCAi
LSIgPDwgc2VxX251bTsKICAgICAgIH0KIAorCiAgICAgICBtaXNzaW5nX3BhY2tldHNfLmVyYXNl
KG1pc3NpbmdfcGFja2V0c18uYmVnaW4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWlzc2luZ19wYWNrZXRzXy51cHBlcl9ib3VuZChzZXFfbnVtKSk7CiAgICAgICBDbGVhckludGVy
dmFsKHN0YXJ0X3NlcV9udW0sIHNlcV9udW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9p
bmZvLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNjCmluZGV4IGU1MWQyOTM2MDc3ZDBkMDhlNzUx
NTNmOGUzYmE0Yjg3N2M0NTFjMzMuLjZkZjk4Njk5YjBjMjYyYzZlOWQ3YzFhYWVlZWFjNGU5M2Y4
Y2I3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Npb25faW5mby5jYworKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNz
aW9uX2luZm8uY2MKQEAgLTE1Myw2ICsxNTMsMjIgQEAgc3RkOjp2ZWN0b3I8TmFsdUluZm8+IFZD
TVNlc3Npb25JbmZvOjpHZXROYWx1SW5mb3MoKSBjb25zdCB7CiAgIHJldHVybiBuYWx1X2luZm9z
OwogfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorc3RkOjp2ZWN0b3I8SDI2NU5hbHVJbmZvPiBW
Q01TZXNzaW9uSW5mbzo6R2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0IHsKKyAgaWYgKHBhY2tldHNf
LmVtcHR5KCkgfHwgcGFja2V0c18uZnJvbnQoKS52aWRlb19oZWFkZXIuY29kZWMgIT0ga1ZpZGVv
Q29kZWNIMjY1KQorICAgIHJldHVybiBzdGQ6OnZlY3RvcjxIMjY1TmFsdUluZm8+KCk7CisgIHN0
ZDo6dmVjdG9yPEgyNjVOYWx1SW5mbz4gbmFsdV9pbmZvczsKKyAgZm9yIChjb25zdCBWQ01QYWNr
ZXQmIHBhY2tldCA6IHBhY2tldHNfKSB7CisgICAgY29uc3QgYXV0byYgaDI2NSA9CisgICAgICAg
IGFic2w6OmdldDxSVFBWaWRlb0hlYWRlckgyNjU+KHBhY2tldC52aWRlb19oZWFkZXIudmlkZW9f
dHlwZV9oZWFkZXIpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaDI2NS5uYWx1c19sZW5n
dGg7ICsraSkgeworICAgICAgbmFsdV9pbmZvcy5wdXNoX2JhY2soaDI2NS5uYWx1c1tpXSk7Cisg
ICAgfQorICB9CisgIHJldHVybiBuYWx1X2luZm9zOworfQorI2VuZGlmCisKIHZvaWQgVkNNU2Vz
c2lvbkluZm86OlNldEdvZkluZm8oY29uc3QgR29mSW5mb1ZQOSYgZ29mX2luZm8sIHNpemVfdCBp
ZHgpIHsKICAgaWYgKHBhY2tldHNfLmVtcHR5KCkpCiAgICAgcmV0dXJuOwpAQCAtMjExLDYgKzIy
NywxMSBAQCBzaXplX3QgVkNNU2Vzc2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50OF90KiBmcmFt
ZV9idWZmZXIsCiAgIC8vIFRPRE8ocGJvcyk6IFJlbW92ZSBIMjY0IHBhcnNpbmcgZnJvbSB0aGlz
IHN0ZXAgYW5kIHVzZSBhIGZyYWdtZW50YXRpb24KICAgLy8gaGVhZGVyIHN1cHBsaWVkIGJ5IHRo
ZSBIMjY0IGRlcGFja2V0aXplci4KICAgY29uc3Qgc2l6ZV90IGtIMjY0TkFMSGVhZGVyTGVuZ3Ro
SW5CeXRlcyA9IDE7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBjb25zdCBzaXplX3Qga0gyNjVO
QUxIZWFkZXJMZW5ndGhJbkJ5dGVzID0gMjsKKyAgY29uc3QgYXV0byogaDI2NSA9CisgICAgICBh
YnNsOjpnZXRfaWY8UlRQVmlkZW9IZWFkZXJIMjY1PigmcGFja2V0LnZpZGVvX2hlYWRlci52aWRl
b190eXBlX2hlYWRlcik7CisjZW5kaWYKICAgY29uc3Qgc2l6ZV90IGtMZW5ndGhGaWVsZExlbmd0
aCA9IDI7CiAgIGNvbnN0IGF1dG8qIGgyNjQgPQogICAgICAgYWJzbDo6Z2V0X2lmPFJUUFZpZGVv
SGVhZGVySDI2ND4oJnBhY2tldC52aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOwpAQCAt
MjM2LDYgKzI1NywzNiBAQCBzaXplX3QgVkNNU2Vzc2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50
OF90KiBmcmFtZV9idWZmZXIsCiAgICAgcGFja2V0LnNpemVCeXRlcyA9IHJlcXVpcmVkX2xlbmd0
aDsKICAgICByZXR1cm4gcGFja2V0LnNpemVCeXRlczsKICAgfQorI2lmbmRlZiBESVNBQkxFX0gy
NjUKKyAgZWxzZSBpZiAoaDI2NSAmJiBoMjY1LT5wYWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVB
UCkgeworICAgIC8vIFNpbWlsYXIgdG8gSDI2NCwgZm9yIEgyNjUgYWdncmVnYXRpb24gcGFja2V0
cywgd2UgcmVseSBvbiBqaXR0ZXIgYnVmZmVyCisgICAgLy8gdG8gcmVtb3ZlIHRoZSB0d28gbGVu
Z3RoIGJ5dGVzIGJldHdlZW4gZWFjaCBOQUwgdW5pdCwgYW5kIHBvdGVudGlhbGx5IGFkZAorICAg
IC8vIHN0YXJ0IGNvZGVzLgorICAgIHNpemVfdCByZXF1aXJlZF9sZW5ndGggPSAwOworICAgIGNv
bnN0IHVpbnQ4X3QqIG5hbHVfcHRyID0KKyAgICAgICAgcGFja2V0X2J1ZmZlciArIGtIMjY1TkFM
SGVhZGVyTGVuZ3RoSW5CeXRlczsgIC8vIHNraXAgcGF5bG9hZGhkcgorICAgIHdoaWxlIChuYWx1
X3B0ciA8IHBhY2tldF9idWZmZXIgKyBwYWNrZXQuc2l6ZUJ5dGVzKSB7CisgICAgICBzaXplX3Qg
bGVuZ3RoID0gQnVmZmVyVG9VV29yZDE2KG5hbHVfcHRyKTsKKyAgICAgIHJlcXVpcmVkX2xlbmd0
aCArPQorICAgICAgICAgIGxlbmd0aCArIChwYWNrZXQuaW5zZXJ0U3RhcnRDb2RlID8ga0gyNjVT
dGFydENvZGVMZW5ndGhCeXRlcyA6IDApOworICAgICAgbmFsdV9wdHIgKz0ga0xlbmd0aEZpZWxk
TGVuZ3RoICsgbGVuZ3RoOworICAgIH0KKyAgICBTaGlmdFN1YnNlcXVlbnRQYWNrZXRzKHBhY2tl
dF9pdCwgcmVxdWlyZWRfbGVuZ3RoKTsKKyAgICBuYWx1X3B0ciA9IHBhY2tldF9idWZmZXIgKyBr
SDI2NU5BTEhlYWRlckxlbmd0aEluQnl0ZXM7CisgICAgdWludDhfdCogZnJhbWVfYnVmZmVyX3B0
ciA9IGZyYW1lX2J1ZmZlciArIG9mZnNldDsKKyAgICB3aGlsZSAobmFsdV9wdHIgPCBwYWNrZXRf
YnVmZmVyICsgcGFja2V0LnNpemVCeXRlcykgeworICAgICAgc2l6ZV90IGxlbmd0aCA9IEJ1ZmZl
clRvVVdvcmQxNihuYWx1X3B0cik7CisgICAgICBuYWx1X3B0ciArPSBrTGVuZ3RoRmllbGRMZW5n
dGg7CisgICAgICAvLyBzaW5jZSBIMjY1IHNoYXJlcyB0aGUgc2FtZSBzdGFydCBjb2RlIGFzIEgy
NjQsIHVzZSB0aGUgc2FtZSBJbnNlcnQKKyAgICAgIC8vIGZ1bmN0aW9uIHRvIGhhbmRsZSBzdGFy
dCBjb2RlLgorICAgICAgZnJhbWVfYnVmZmVyX3B0ciArPSBJbnNlcnQobmFsdV9wdHIsIGxlbmd0
aCwgcGFja2V0Lmluc2VydFN0YXJ0Q29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0X2Nhc3Q8dWludDhfdCo+KGZyYW1lX2J1ZmZlcl9wdHIpKTsKKyAgICAgIG5hbHVf
cHRyICs9IGxlbmd0aDsKKyAgICB9CisgICAgcGFja2V0LnNpemVCeXRlcyA9IHJlcXVpcmVkX2xl
bmd0aDsKKyAgICByZXR1cm4gcGFja2V0LnNpemVCeXRlczsKKyAgfQorI2VuZGlmCiAgIFNoaWZ0
U3Vic2VxdWVudFBhY2tldHMoCiAgICAgICBwYWNrZXRfaXQsIHBhY2tldC5zaXplQnl0ZXMgKwog
ICAgICAgICAgICAgICAgICAgICAgKHBhY2tldC5pbnNlcnRTdGFydENvZGUgPyBrSDI2NFN0YXJ0
Q29kZUxlbmd0aEJ5dGVzIDogMCkpOwpAQCAtNDYyLDcgKzUxMywyMiBAQCBpbnQgVkNNU2Vzc2lv
bkluZm86Okluc2VydFBhY2tldChjb25zdCBWQ01QYWNrZXQmIHBhY2tldCwKICAgICAgICAgIElz
TmV3ZXJTZXF1ZW5jZU51bWJlcihwYWNrZXQuc2VxTnVtLCBsYXN0X3BhY2tldF9zZXFfbnVtXykp
KSB7CiAgICAgICBsYXN0X3BhY2tldF9zZXFfbnVtXyA9IHBhY2tldC5zZXFOdW07CiAgICAgfQor
I2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgfSBlbHNlIGlmIChwYWNrZXQuY29kZWMoKSA9PSBrVmlk
ZW9Db2RlY0gyNjUpIHsKKyAgICBmcmFtZV90eXBlXyA9IHBhY2tldC52aWRlb19oZWFkZXIuZnJh
bWVfdHlwZTsKKyAgICBpZiAocGFja2V0LmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSgpICYmCisg
ICAgICAgIChmaXJzdF9wYWNrZXRfc2VxX251bV8gPT0gLTEgfHwKKyAgICAgICAgIElzTmV3ZXJT
ZXF1ZW5jZU51bWJlcihmaXJzdF9wYWNrZXRfc2VxX251bV8sIHBhY2tldC5zZXFOdW0pKSkgewor
ICAgICAgZmlyc3RfcGFja2V0X3NlcV9udW1fID0gcGFja2V0LnNlcU51bTsKKyAgICB9CisgICAg
aWYgKHBhY2tldC5tYXJrZXJCaXQgJiYKKyAgICAgICAgKGxhc3RfcGFja2V0X3NlcV9udW1fID09
IC0xIHx8CisgICAgICAgICBJc05ld2VyU2VxdWVuY2VOdW1iZXIocGFja2V0LnNlcU51bSwgbGFz
dF9wYWNrZXRfc2VxX251bV8pKSkgeworICAgICAgbGFzdF9wYWNrZXRfc2VxX251bV8gPSBwYWNr
ZXQuc2VxTnVtOworICAgIH0KKyNlbHNlCiAgIH0gZWxzZSB7CisjZW5kaWYKICAgICAvLyBPbmx5
IGluc2VydCBtZWRpYSBwYWNrZXRzIGJldHdlZW4gZmlyc3QgYW5kIGxhc3QgcGFja2V0cyAod2hl
bgogICAgIC8vIGF2YWlsYWJsZSkuCiAgICAgLy8gUGxhY2luZyBjaGVjayBoZXJlLCBhcyB0byBw
cm9wZXJseSBhY2NvdW50IGZvciBkdXBsaWNhdGUgcGFja2V0cy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5n
L3Nlc3Npb25faW5mby5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKaW5kZXggMDZhMzQ4ZWY3MjM1
NDc3MWIyODM4NWY5ZDZmMjQ1YmE5MGE3MWNkOS4uMDFlYTdiZDI5Nzc3MjdmZDc2NzYxNDJkNGIx
NzNhNWM5ZDY5MjlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvc2Vzc2lvbl9pbmZvLmgKQEAgLTY1LDcgKzY1LDkgQEAgY2xhc3MgVkNNU2Vzc2lvbkluZm8g
ewogICBpbnQgVGwwUGljSWQoKSBjb25zdDsKIAogICBzdGQ6OnZlY3RvcjxOYWx1SW5mbz4gR2V0
TmFsdUluZm9zKCkgY29uc3Q7Ci0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0ZDo6dmVjdG9y
PEgyNjVOYWx1SW5mbz4gR2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0OworI2VuZGlmCiAgIHZvaWQg
U2V0R29mSW5mbyhjb25zdCBHb2ZJbmZvVlA5JiBnb2ZfaW5mbywgc2l6ZV90IGlkeCk7CiAKICBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvcnRjX2Jhc2UvZXhwZXJpbWVudHMvbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4
cGVyaW1lbnRzL21pbl92aWRlb19iaXRyYXRlX2V4cGVyaW1lbnQuY2MKaW5kZXggMTE0NTBkMDg0
OTIxYzY3NDkyNTZhNDRjNmRjNjZhYTNhZThmZmNmMy4uM2IxM2U4ZTliZmVkOTJiZTBmMzg5MWVk
ZWI5MDgxY2ZiOGM2MTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvZXhwZXJpbWVudHMvbWluX3ZpZGVvX2JpdHJhdGVfZXhw
ZXJpbWVudC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9ydGNfYmFzZS9leHBlcmltZW50cy9taW5fdmlkZW9fYml0cmF0ZV9leHBlcmltZW50LmNjCkBA
IC0xMDAsNiArMTAwLDkgQEAgYWJzbDo6b3B0aW9uYWw8RGF0YVJhdGU+IEdldEV4cGVyaW1lbnRh
bE1pblZpZGVvQml0cmF0ZShWaWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgICAgICAgIHJldHVybiBt
aW5fYml0cmF0ZV9hdjEuR2V0T3B0aW9uYWwoKTsKICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0
OgogICAgICAgICByZXR1cm4gbWluX2JpdHJhdGVfaDI2NC5HZXRPcHRpb25hbCgpOworI2lmbmRl
ZiBESVNBQkxFX0gyNjUKKyAgICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorI2VuZGlmCiAgICAg
ICBjYXNlIGtWaWRlb0NvZGVjR2VuZXJpYzoKICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNNdWx0aXBs
ZXg6CiAgICAgICAgIHJldHVybiBhYnNsOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggYWI3Nzk0MmU2OTQ2YmRlMzAwMjk5MGEzYTI2YTEw
MDFlZjYzMDUyNS4uNmYwODA1YjBiYmJlM2QwMzhjNWM0NTZjZTYwYmViZGVhODgwMTJmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC0zOSw3ICszOSw3
IEBAIGNsYXNzIFZpZGVvRGVjb2RlckZhY3Rvcnk7CiBjbGFzcyBWaWRlb0VuY29kZXJGYWN0b3J5
OwogY2xhc3MgVmlkZW9GcmFtZTsKIAotZW51bSBjbGFzcyBXZWJLaXRDb2RlY1N1cHBvcnQgeyBI
MjY0LCBIMjY0QW5kVlA4IH07CitlbnVtIGNsYXNzIFdlYktpdENvZGVjU3VwcG9ydCB7IEgyNjRW
UDhBbmRIMjY1LCBIMjY0QW5kVlA4IH07CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVv
RW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktpdENvZGVjU3Vw
cG9ydCk7CiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVh
dGVXZWJLaXREZWNvZGVyRmFjdG9yeShXZWJLaXRDb2RlY1N1cHBvcnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQppbmRleCAxNDAyYzJiZjNhNDE3MDNhY2I4
ZjNkMGYxZjBhNDNhNzlhYTNjYjZlLi42Y2U4NjUzYzM1NDI1NDFhYjgxZWVkYTFiY2VmZTgzOGZh
YWE1NTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQpA
QCAtMTE2LDcgKzExNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZh
Y3Rvcnk+IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktpdENvCiAgICAgfSk7CiAjZW5k
aWYKIAotICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9FbmNvZGVy
RmFjdG9yeShjb2RlY1N1cHBvcnQgPT0gV2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4ID8g
W1tSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSBhbGxvY10gaW5pdF0gOiBbW1JUQ1ZpZGVv
RW5jb2RlckZhY3RvcnlIMjY0IGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBpbnRlcm5hbEZhY3Rv
cnkgPSBPYmpDVG9OYXRpdmVWaWRlb0VuY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVsdFZpZGVvRW5j
b2RlckZhY3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTogY29kZWNTdXBwb3J0ID09IFdlYktpdENv
ZGVjU3VwcG9ydDo6SDI2NFZQOEFuZEgyNjVdKTsKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxWaWRlb0VuY29kZXJGYWN0b3J5V2l0aFNpbXVsY2FzdD4oc3RkOjptb3ZlKGludGVybmFsRmFj
dG9yeSkpOwogfQogCkBAIC0yNzEsNyArMjcxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVj
b2Rlcj4gUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKGNvbnMK
IAogc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2Vi
S2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKIHsKLSAg
ICBhdXRvIGludGVybmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3Rvcnko
Y29kZWNTdXBwb3J0ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA/IFtbUlRDRGVm
YXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgYWxsb2NdIGluaXRdIDogW1tSVENWaWRlb0RlY29kZXJG
YWN0b3J5SDI2NCBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0gT2Jq
Q1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShbW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0
b3J5IGFsbG9jXSBpbml0V2l0aEgyNjU6IGNvZGVjU3VwcG9ydCA9PSBXZWJLaXRDb2RlY1N1cHBv
cnQ6OkgyNjRWUDhBbmRIMjY1XSk7CiAgICAgaWYgKHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNy
ZWF0ZUNhbGxiYWNrKQogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVWaWRl
b0RlY29kZXJGYWN0b3J5PihzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7CiAgICAgcmV0dXJu
IGludGVybmFsRmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1K1ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjJkMzU5NGY1NTdmN2I3NWZmNjdm
OTQyN2JiNDYxYjBjOWJhNWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisg
KiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFs
IGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4g
dGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQor
ICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJj
ZSB0cmVlLgorICovCisvKiBUaGlzIGZpbGUgaXMgYm9ycm93ZWQgZnJvbSBzZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8K
KworI2ltcG9ydCAiUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgiCisKKyNpbmNsdWRlICJtb2R1
bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oIgorCitOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgorCisvKiBJbnRlcmZhY2VzIGZvciBjb252ZXJ0aW5nIHRvL2Zy
b20gaW50ZXJuYWwgQysrIGZvcm1hdHMuICovCitAaW50ZXJmYWNlIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NSAoKQorCistICh3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3Bl
Y2lmaWNJbmZvOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJiYWUxOWM3YmMz
MWI4NDU5Zjc1ZGJkMTE5NDg1OTA0NmJmZTNiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgKQEAgLTAsMCArMSwyOSBAQAorLyoK
KyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9u
YWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBp
biB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5
CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlIHRyZWUuCisgKi8KKy8qIFRoaXMgZmlsZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0LmguICovCisKKyNp
bXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaW1wb3J0ICJSVENDb2RlY1NwZWNp
ZmljSW5mby5oIgorI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisKKy8qKiBDbGFzcyBmb3IgSDI2NSBz
cGVjaWZpYyBjb25maWcuICovCit0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgUlRDSDI2NVBh
Y2tldGl6YXRpb25Nb2RlKSB7CisgIFJUQ0gyNjVQYWNrZXRpemF0aW9uTW9kZU5vbkludGVybGVh
dmVkID0gMCwgIC8vIE1vZGUgMSAtIFNUQVAtQSwgRlUtQSBpcyBhbGxvd2VkCisgIFJUQ0gyNjVQ
YWNrZXRpemF0aW9uTW9kZVNpbmdsZU5hbFVuaXQgICAgICAgIC8vIE1vZGUgMCAtIG9ubHkgc2lu
Z2xlIE5BTFUgYWxsb3dlZAorfTsKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChv
YmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IikpKQorQGludGVy
ZmFjZSBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUgOiBOU09iamVjdCA8UlRDQ29kZWNTcGVjaWZp
Y0luZm8+CisKK0Bwcm9wZXJ0eShub25hdG9taWMsIGFzc2lnbikgUlRDSDI2NVBhY2tldGl6YXRp
b25Nb2RlIHBhY2tldGl6YXRpb25Nb2RlOworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0YTQ2OTg1ZjcyNzc0ZDQ1ZTMz
NDA1MDhjZDBhNGMwOGZkMWYxZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbQpAQCAtMCwwICsxLDI4IEBACisvKgorICogIENv
cHlyaWdodCAyMDE3IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJT
RC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRl
bGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBm
aWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBi
ZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJl
ZS4KKyAqLworIC8qIFRoaXMgZmlsZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0Lm1tICovCisKKyNpbXBvcnQg
IlJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmgiCisKKy8vIEgyNjUgc3BlY2lmaWMg
c2V0dGluZ3MuCitAaW1wbGVtZW50YXRpb24gUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1CisKK0Bz
eW50aGVzaXplIHBhY2tldGl6YXRpb25Nb2RlID0gX3BhY2tldGl6YXRpb25Nb2RlOworCistICh3
ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvIHsKKyAgd2Vi
cnRjOjpDb2RlY1NwZWNpZmljSW5mbyBjb2RlY1NwZWNpZmljSW5mbzsKKyAgY29kZWNTcGVjaWZp
Y0luZm8uY29kZWNUeXBlID0gd2VicnRjOjprVmlkZW9Db2RlY0gyNjU7CisgIGNvZGVjU3BlY2lm
aWNJbmZvLmNvZGVjU3BlY2lmaWMuSDI2NS5wYWNrZXRpemF0aW9uX21vZGUgPQorICAgICAgKHdl
YnJ0Yzo6SDI2NVBhY2tldGl6YXRpb25Nb2RlKV9wYWNrZXRpemF0aW9uTW9kZTsKKworICByZXR1
cm4gY29kZWNTcGVjaWZpY0luZm87Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaAppbmRleCBkMTE0NjAzMDBkNTFlZDE2NTVl
YjJlNzg5MTlmMGY0ZGRjYzU5OWI3Li5iODM4YTRiOGFlNjk1MDYxN2UxZWVkZTIyYmM4YzhjNjBm
ODQ3Nzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29k
ZXJGYWN0b3J5LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeS5oCkBAIC0yMSw2ICsyMSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBSVENf
T0JKQ19FWFBPUlQKIF9fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENEZWZh
dWx0VmlkZW9EZWNvZGVyRmFjdG9yeSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRGVj
b2RlckZhY3RvcnkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4KKy0gKGlkKWlu
aXRXaXRoSDI2NTooYm9vbClzdXBwb3J0SDI2NTsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExf
RU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
Lm0KaW5kZXggNDQ0NDVmNGIxMzMyMTY2YTY4N2ZhY2JiNGM1MGE4Nzk1NDliMmM3ZS4uYTQ5NmFl
NTQzZTk2NWUzNGNhNzg3Nzc4MzdmMjIzNTM2M2QxOGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQpAQCAtMTgsOCArMTgsMjMgQEAK
ICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2NvZGVjL1JU
Q1ZpZGVvRGVjb2RlclZQOS5oIgogI2VuZGlmCisjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2
NSkKKyNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgorI2ltcG9ydCAiUlRDVmlkZW9E
ZWNvZGVySDI2NS5oIgorI2VuZGlmCisKK0BpbXBsZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9E
ZWNvZGVyRmFjdG9yeSB7CisgIGJvb2wgX3N1cHBvcnRIMjY1OworfQogCi1AaW1wbGVtZW50YXRp
b24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9v
bClzdXBwb3J0SDI2NQoreworICBzZWxmID0gW3N1cGVyIGluaXRdOworICBpZiAoc2VsZikgewor
ICAgICAgX3N1cHBvcnRIMjY1ID0gc3VwcG9ydEgyNjU7CisgIH0KKyAgcmV0dXJuIHNlbGY7Cit9
CiAKIC0gKE5TQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKilzdXBwb3J0ZWRDb2RlY3Mgewog
ICBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKmNvbnN0cmFpbmVkSGlnaFBh
cmFtcyA9IEB7CkBAIC00MiwxMyArNTcsMzAgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRW
aWRlb0RlY29kZXJGYWN0b3J5CiAKICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOEluZm8gPSBbW1JU
Q1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDhOYW1l
XTsKIAorI2lmICFkZWZpbmVkKFJUQ19ESVNBQkxFX0gyNjUpCisgIFJUQ1ZpZGVvQ29kZWNJbmZv
ICpoMjY1SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRD
VmlkZW9Db2RlY0gyNjVOYW1lXTsKKyNlbmRpZgorIAogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9W
UDkpCiAgIFJUQ1ZpZGVvQ29kZWNJbmZvICp2cDlJbmZvID0gW1tSVENWaWRlb0NvZGVjSW5mbyBh
bGxvY10gaW5pdFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZV07CiAjZW5kaWYKIAorICBp
ZiAoIV9zdXBwb3J0SDI2NSkgeworICAgIHJldHVybiBAWworICAgICAgY29uc3RyYWluZWRIaWdo
SW5mbywKKyAgICAgIGNvbnN0cmFpbmVkQmFzZWxpbmVJbmZvLAorICAgICAgdnA4SW5mbywKKyNp
ZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorICAgICAgdnA5SW5mbywKKyNlbmRpZgorICAgIF07
CisgIH0KICAgcmV0dXJuIEBbCiAgICAgY29uc3RyYWluZWRIaWdoSW5mbywKICAgICBjb25zdHJh
aW5lZEJhc2VsaW5lSW5mbywKKyNpZiAhZGVmaW5lZChSVENfRElTQUJMRV9IMjY1KQorICAgIGgy
NjVJbmZvLAorI2VuZGlmCiAgICAgdnA4SW5mbywKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5
KQogICAgIHZwOUluZm8sCkBAIC02MSw2ICs5MywxMCBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVm
YXVsdFZpZGVvRGVjb2RlckZhY3RvcnkKICAgICByZXR1cm4gW1tSVENWaWRlb0RlY29kZXJIMjY0
IGFsbG9jXSBpbml0XTsKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzpr
UlRDVmlkZW9Db2RlY1ZwOE5hbWVdKSB7CiAgICAgcmV0dXJuIFtSVENWaWRlb0RlY29kZXJWUDgg
dnA4RGVjb2Rlcl07CisjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKKyAgfSBlbHNlIGlm
IChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY0gyNjVOYW1lXSkgewor
ICAgIHJldHVybiBbW1JUQ1ZpZGVvRGVjb2RlckgyNjUgYWxsb2NdIGluaXRdOworI2VuZGlmCiAj
aWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1
YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY1ZwOU5hbWVdKSB7CiAgICAgcmV0dXJuIFtSVENWaWRl
b0RlY29kZXJWUDkgdnA5RGVjb2Rlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5LmgKaW5kZXggOTMyMzI1NmNlYWRjODM4YzUzYzgwYTcwZmMw
ZDBiZTI1NTMzNWZlMy4uYTk5NWRhYWI1NDEwZjAzZGQxYjM3ZjA4OGQzNTE1NTgwNGQ2NzgzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9y
eS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnku
aApAQCAtMjIsOCArMjIsNyBAQCBSVENfT0JKQ19FWFBPUlQKIF9fYXR0cmlidXRlX18oKG9iamNf
cnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSIpKSkKIEBpbnRl
cmZhY2UgUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkgOiBOU09iamVjdCA8UlRDVmlkZW9F
bmNvZGVyRmFjdG9yeT4KIAotQHByb3BlcnR5KG5vbmF0b21pYywgcmV0YWluKSBSVENWaWRlb0Nv
ZGVjSW5mbyAqcHJlZmVycmVkQ29kZWM7Ci0KKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBw
b3J0SDI2NTsKICsgKE5TQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKilzdXBwb3J0ZWRDb2Rl
Y3M7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3RvcnkubSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2Rl
ckZhY3RvcnkubQppbmRleCBiNzIyOTZiNjRmMzFiMGVmYjQ1YThiZGRhNjM5YjQ4MmFmYWRiZGEw
Li5kNjg2MDlkNTY0OTMxOGQ4ZTMyMTJjZTQyZWRmOTkyNmRkYjQ4Yzg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0KKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCkBAIC0xOCwxMCAr
MTgsMjMgQEAKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRW5jb2RlclZQOS5oIgogI2VuZGlmCisjaWYgIWRlZmluZWQoRElTQUJM
RV9IMjY1KQorI2ltcG9ydCAiUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgiCisjaW1wb3J0ICJSVENW
aWRlb0VuY29kZXJIMjY1LmgiCisjZW5kaWYKIAotQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRW
aWRlb0VuY29kZXJGYWN0b3J5CitAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2Rl
ckZhY3RvcnkgeworICBib29sIF9zdXBwb3J0SDI2NTsKK30KIAotQHN5bnRoZXNpemUgcHJlZmVy
cmVkQ29kZWM7CistIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydEgyNjUKK3sKKyAgc2Vs
ZiA9IFtzdXBlciBpbml0XTsKKyAgaWYgKHNlbGYpIHsKKyAgICAgIF9zdXBwb3J0SDI2NSA9IHN1
cHBvcnRIMjY1OworICB9CisgIHJldHVybiBzZWxmOworfQogCiArIChOU0FycmF5PFJUQ1ZpZGVv
Q29kZWNJbmZvICo+ICopc3VwcG9ydGVkQ29kZWNzIHsKICAgTlNEaWN0aW9uYXJ5PE5TU3RyaW5n
ICosIE5TU3RyaW5nICo+ICpjb25zdHJhaW5lZEhpZ2hQYXJhbXMgPSBAewpAQCAtNDIsNiArNTUs
MTAgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CiAgICAg
ICBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNI
MjY0TmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOmNv
bnN0cmFpbmVkQmFzZWxpbmVQYXJhbXNdOwogCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQor
ICBSVENWaWRlb0NvZGVjSW5mbyAqaDI2NUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9j
XSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV07CisjZW5kaWYKKwogICBSVENW
aWRlb0NvZGVjSW5mbyAqdnA4SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRX
aXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOE5hbWVdOwogCiAjaWYgZGVmaW5lZChSVENfRU5BQkxF
X1ZQOSkKQEAgLTUxLDYgKzY4LDkgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0Vu
Y29kZXJGYWN0b3J5CiAgIHJldHVybiBAWwogICAgIGNvbnN0cmFpbmVkSGlnaEluZm8sCiAgICAg
Y29uc3RyYWluZWRCYXNlbGluZUluZm8sCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQorICAg
IGgyNjVJbmZvLAorI2VuZGlmCiAgICAgdnA4SW5mbywKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVf
VlA5KQogICAgIHZwOUluZm8sCkBAIC02Niw2ICs4NiwxMiBAQCBAaW1wbGVtZW50YXRpb24gUlRD
RGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQog
ICB9IGVsc2UgaWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVjVnA5
TmFtZV0pIHsKICAgICByZXR1cm4gW1JUQ1ZpZGVvRW5jb2RlclZQOSB2cDlFbmNvZGVyXTsKKyNl
bmRpZgorI2lmICFkZWZpbmVkKERJU0FCTEVfSDI2NSkKKyAgfSBlbHNlIGlmIChAYXZhaWxhYmxl
KGlPUyAxMSwgKikpIHsKKyAgICBpZiAoW2luZm8ubmFtZSBpc0VxdWFsVG9TdHJpbmc6a1JUQ1Zp
ZGVvQ29kZWNIMjY1TmFtZV0pIHsKKyAgICAgIHJldHVybiBbW1JUQ1ZpZGVvRW5jb2RlckgyNjUg
YWxsb2NdIGluaXRXaXRoQ29kZWNJbmZvOmluZm9dOworICAgIH0KICNlbmRpZgogICB9CiAKQEAg
LTc2LDEyICsxMDIsOSBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZh
Y3RvcnkKICAgTlNNdXRhYmxlQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKmNvZGVjcyA9IFtb
W3NlbGYgY2xhc3NdIHN1cHBvcnRlZENvZGVjc10gbXV0YWJsZUNvcHldOwogCiAgIE5TTXV0YWJs
ZUFycmF5PFJUQ1ZpZGVvQ29kZWNJbmZvICo+ICpvcmRlcmVkQ29kZWNzID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5XTsKLSAgTlNVSW50ZWdlciBpbmRleCA9IFtjb2RlY3MgaW5kZXhPZk9iamVjdDpz
ZWxmLnByZWZlcnJlZENvZGVjXTsKLSAgaWYgKGluZGV4ICE9IE5TTm90Rm91bmQpIHsKLSAgICBb
b3JkZXJlZENvZGVjcyBhZGRPYmplY3Q6W2NvZGVjcyBvYmplY3RBdEluZGV4OmluZGV4XV07Ci0g
ICAgW2NvZGVjcyByZW1vdmVPYmplY3RBdEluZGV4OmluZGV4XTsKLSAgfQogICBbb3JkZXJlZENv
ZGVjcyBhZGRPYmplY3RzRnJvbUFycmF5OmNvZGVjc107CisgIGlmICghX3N1cHBvcnRIMjY1KQor
ICAgIFtvcmRlcmVkQ29kZWNzIHJlbW92ZU9iamVjdEF0SW5kZXg6MF07CiAKICAgcmV0dXJuIFtv
cmRlcmVkQ29kZWNzIGNvcHldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENI
MjY1UHJvZmlsZUxldmVsSWQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZl
bElkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGUzNDg2ZDA2ZDQxMjdlOTc4MzkyOWZlNDBiZWRiMzNhNWM2N2Iy
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZl
bElkLmgKQEAgLTAsMCArMSwxNiBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRD
IHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRo
YXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNv
dXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0
cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRy
aWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMg
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9ydCA8Rm91
bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorCitSVENfT0JK
Q19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICpjb25zdCBrUlRDVmlkZW9Db2RlY0gyNjVOYW1lOwor
UlRDX09CSkNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqY29uc3Qga1JUQ0xldmVsMzFNYWluOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW0gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWQ0
NGUyYTU5MzMyZjc2ZjliYjg1NTE2NDZkY2Q3MzJiOTA1MzI2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW0KQEAgLTAsMCArMSwxOCBA
QAorLyoKKyAqICBDb3B5cmlnaHQgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFk
ZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQK
KyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhv
cnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlIHRyZWUuCisgKgorICovCisKKyNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJ
ZC5oIgorCisjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaCIKKworTlNTdHJp
bmcgKmNvbnN0IGtSVENWaWRlb0NvZGVjSDI2NU5hbWUgPSBAIkgyNjUiOworLy8gVE9ETyhqaWFu
anVueik6IFRoaXMgaXMgdmFsdWUgaXMgbm90IGNvcnJlY3QuCitOU1N0cmluZyAqY29uc3Qga1JU
Q0xldmVsMzFNYWluID0gQCI0ZDAwMWYiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENWaWRlb0RlY29kZXJIMjY1LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rlckgy
NjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MzliMzgyODljMmYxOWJjYWQyZjA0NGEwMDg5NjlhOTUwZTI3ZTAy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1
LmgKQEAgLTAsMCArMSwxOSBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHBy
b2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQg
Y2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJj
ZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBn
cmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1
dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmls
ZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9ydCA8Rm91bmRh
dGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorI2ltcG9ydCAiUlRD
VmlkZW9EZWNvZGVyLmgiCisKK1JUQ19PQkpDX0VYUE9SVAorX19hdHRyaWJ1dGVfXygob2JqY19y
dW50aW1lX25hbWUoIldLX1JUQ1ZpZGVvRGVjb2RlckgyNjUiKSkpCitAaW50ZXJmYWNlIFJUQ1Zp
ZGVvRGVjb2RlckgyNjUgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgorQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NjI2NjhhNjE4OTQw
YzgzOWFiODYyY2ExYTMxNGU1OWY1OWNmZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUubW0KQEAgLTAsMCArMSwyNzAgQEAKKy8qCisgKiAg
Q29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25h
bCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGlu
IHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkK
KyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3Vy
Y2UgdHJlZS4KKyAqCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVySDI2NS5oIgorCisj
aW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRD
VmlkZW9GcmFtZS5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1w
b3J0ICJjb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisj
aW1wb3J0ICJoZWxwZXJzLmgiCisjaW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIK
KworI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29k
ZXMuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9s
b2dnaW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorI2luY2x1ZGUgInNk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oIgorCisvLyBTdHJ1
Y3QgdGhhdCB3ZSBwYXNzIHRvIHRoZSBkZWNvZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJl
Y2VpdmUgaXQgYWdhaW4KKy8vIGluIHRoZSBkZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0gy
NjVGcmFtZURlY29kZVBhcmFtcyB7CisgIFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyhSVENWaWRl
b0RlY29kZXJDYWxsYmFjayBjYiwgaW50NjRfdCB0cykKKyAgICAgIDogY2FsbGJhY2soY2IpLCB0
aW1lc3RhbXAodHMpIHt9CisgIFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIGNhbGxiYWNrOworICBp
bnQ2NF90IHRpbWVzdGFtcDsKK307CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9u
IHRoYXQgVmlkZW9Ub29sYm94IGNhbGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3Zv
aWQgaDI2NURlY29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayh2b2lkKiBkZWNvZGVyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHBhcmFtcywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBPU1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VC
dWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01UaW1lIHRpbWVz
dGFtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVRpbWUgZHVyYXRp
b24pIHsKKyAgc3RkOjp1bmlxdWVfcHRyPFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcz4gZGVjb2Rl
UGFyYW1zKAorICAgICAgcmVpbnRlcnByZXRfY2FzdDxSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMq
PihwYXJhbXMpKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJS
T1IpIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lLiBTdGF0dXM6ICIgPDwgc3RhdHVzOworICAg
IHJldHVybjsKKyAgfQorICAvLyBUT0RPKHRrY2hpbik6IEhhbmRsZSBDVk8gcHJvcGVybHkuCisg
IFJUQ0NWUGl4ZWxCdWZmZXIqIGZyYW1lQnVmZmVyID0KKyAgICAgIFtbUlRDQ1ZQaXhlbEJ1ZmZl
ciBhbGxvY10gaW5pdFdpdGhQaXhlbEJ1ZmZlcjppbWFnZUJ1ZmZlcl07CisgIFJUQ1ZpZGVvRnJh
bWUqIGRlY29kZWRGcmFtZSA9IFtbUlRDVmlkZW9GcmFtZSBhbGxvY10KKyAgICAgIGluaXRXaXRo
QnVmZmVyOmZyYW1lQnVmZmVyCisgICAgICAgICAgICByb3RhdGlvbjpSVENWaWRlb1JvdGF0aW9u
XzAKKyAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGltZUdldFNlY29uZHModGltZXN0YW1wKSAqIHJ0
Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVjb2RlZEZyYW1lLnRpbWVTdGFtcCA9IGRlY29k
ZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQYXJhbXMtPmNhbGxiYWNrKGRlY29kZWRGcmFt
ZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9EZWNvZGVySDI2
NSB7CisgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBfdmlkZW9Gb3JtYXQ7CisgIFZURGVj
b21wcmVzc2lvblNlc3Npb25SZWYgX2RlY29tcHJlc3Npb25TZXNzaW9uOworICBSVENWaWRlb0Rl
Y29kZXJDYWxsYmFjayBfY2FsbGJhY2s7CisgIE9TU3RhdHVzIF9lcnJvcjsKK30KKworLSAoaW5z
dGFuY2V0eXBlKWluaXQgeworICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICB9CisKKyAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYyB7CisgIFtzZWxmIGRlc3Ryb3lEZWNv
bXByZXNzaW9uU2Vzc2lvbl07CisgIFtzZWxmIHNldFZpZGVvRm9ybWF0Om51bGxwdHJdOworfQor
CistIChOU0ludGVnZXIpc3RhcnREZWNvZGVXaXRoTnVtYmVyT2ZDb3JlczooaW50KW51bWJlck9m
Q29yZXMgeworICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistIChOU0ludGVn
ZXIpZGVjb2RlOihSVENFbmNvZGVkSW1hZ2UqKWlucHV0SW1hZ2UKKyAgICAgICAgICBtaXNzaW5n
RnJhbWVzOihCT09MKW1pc3NpbmdGcmFtZXMKKyAgICAgIGNvZGVjU3BlY2lmaWNJbmZvOihfX251
bGxhYmxlIGlkPFJUQ0NvZGVjU3BlY2lmaWNJbmZvPilpbmZvCisgICAgICAgICAgIHJlbmRlclRp
bWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMgeworICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVm
ZmVyKTsKKworICBpZiAoX2Vycm9yICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5H
KSA8PCAiTGFzdCBmcmFtZSBkZWNvZGUgZmFpbGVkLiI7CisgICAgX2Vycm9yID0gbm9FcnI7Cisg
ICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorCisgIHJ0Yzo6U2NvcGVk
Q0ZUeXBlUmVmPENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZj4gaW5wdXRGb3JtYXQgPQorICAg
ICAgcnRjOjpTY29wZWRDRih3ZWJydGM6OkNyZWF0ZUgyNjVWaWRlb0Zvcm1hdERlc2NyaXB0aW9u
KAorICAgICAgICAgICh1aW50OF90KilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcywgaW5wdXRJbWFn
ZS5idWZmZXIubGVuZ3RoKSk7CisgIGlmIChpbnB1dEZvcm1hdCkgeworICAgIENNVmlkZW9EaW1l
bnNpb25zIGRpbWVuc2lvbnMgPQorICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRE
aW1lbnNpb25zKGlucHV0Rm9ybWF0LmdldCgpKTsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJS
ZXNvbHV0aW9uOiAiIDw8IGRpbWVuc2lvbnMud2lkdGggPDwgIiB4ICIKKyAgICAgICAgICAgICAg
ICAgICAgIDw8IGRpbWVuc2lvbnMuaGVpZ2h0OworICAgIC8vIENoZWNrIGlmIHRoZSB2aWRlbyBm
b3JtYXQgaGFzIGNoYW5nZWQsIGFuZCByZWluaXRpYWxpemUgZGVjb2RlciBpZgorICAgIC8vIG5l
ZWRlZC4KKyAgICBpZiAoIUNNRm9ybWF0RGVzY3JpcHRpb25FcXVhbChpbnB1dEZvcm1hdC5nZXQo
KSwgX3ZpZGVvRm9ybWF0KSkgeworICAgICAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRGb3Jt
YXQuZ2V0KCldOworICAgICAgaW50IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciA9IFtz
ZWxmIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25dOworICAgICAgaWYgKHJlc2V0RGVjb21wcmVz
c2lvblNlc3Npb25FcnJvciAhPSBXRUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICAgICAgcmV0
dXJuIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvcjsKKyAgICAgIH0KKyAgICB9CisgIH0K
KyAgaWYgKCFfdmlkZW9Gb3JtYXQpIHsKKyAgICAvLyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1dCB3
ZSBkb24ndCBoYXZlIGZvcm1hdCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4ndAorICAgIC8vIGRlY29k
ZSBpdC4KKyAgICAvLyBUaGlzIGNhbiBoYXBwZW4gYWZ0ZXIgYmFja2dyb3VuZGluZy4gV2UgbmVl
ZCB0byB3YWl0IGZvciB0aGUgbmV4dAorICAgIC8vIHNwcy9wcHMgYmVmb3JlIHdlIGNhbiByZXN1
bWUgc28gd2UgcmVxdWVzdCBhIGtleWZyYW1lIGJ5IHJldHVybmluZyBhbgorICAgIC8vIGVycm9y
LgorICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk1pc3NpbmcgdmlkZW8gZm9ybWF0LiBGcmFt
ZSB3aXRoIHNwcy9wcHMgcmVxdWlyZWQuIjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVD
X0VSUk9SOworICB9CisgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7
CisgIGlmICghd2VicnRjOjpIMjY1QW5uZXhCQnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcigKKyAgICAg
ICAgICAodWludDhfdCopaW5wdXRJbWFnZS5idWZmZXIuYnl0ZXMsIGlucHV0SW1hZ2UuYnVmZmVy
Lmxlbmd0aCwKKyAgICAgICAgICBfdmlkZW9Gb3JtYXQsICZzYW1wbGVCdWZmZXIpKSB7CisgICAg
cmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICBSVENfRENIRUNLKHNhbXBs
ZUJ1ZmZlcik7CisgIFZURGVjb2RlRnJhbWVGbGFncyBkZWNvZGVGbGFncyA9CisgICAgICBrVlRE
ZWNvZGVGcmFtZV9FbmFibGVBc3luY2hyb25vdXNEZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1
ZV9wdHI8UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zPiBmcmFtZURlY29kZVBhcmFtczsKKyAgZnJh
bWVEZWNvZGVQYXJhbXMucmVzZXQoCisgICAgICBuZXcgUlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1z
KF9jYWxsYmFjaywgaW5wdXRJbWFnZS50aW1lU3RhbXApKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0g
VlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAgICAgX2RlY29tcHJlc3Npb25T
ZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZsYWdzLAorICAgICAgZnJhbWVEZWNvZGVQYXJh
bXMucmVsZWFzZSgpLCBudWxscHRyKTsKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgIC8vIFJl
LWluaXRpYWxpemUgdGhlIGRlY29kZXIgaWYgd2UgaGF2ZSBhbiBpbnZhbGlkIHNlc3Npb24gd2hp
bGUgdGhlIGFwcCBpcworICAvLyBhY3RpdmUgYW5kIHJldHJ5IHRoZSBkZWNvZGUgcmVxdWVzdC4K
KyAgaWYgKHN0YXR1cyA9PSBrVlRJbnZhbGlkU2Vzc2lvbkVyciAmJgorICAgICAgW3NlbGYgcmVz
ZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0gPT0gV0VCUlRDX1ZJREVPX0NPREVDX09LKSB7CisgICAg
ZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQoCisgICAgICAgIG5ldyBSVENIMjY1RnJhbWVEZWNvZGVQ
YXJhbXMoX2NhbGxiYWNrLCBpbnB1dEltYWdlLnRpbWVTdGFtcCkpOworICAgIHN0YXR1cyA9IFZU
RGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSgKKyAgICAgICAgX2RlY29tcHJlc3Npb25T
ZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZsYWdzLAorICAgICAgICBmcmFtZURlY29kZVBh
cmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworICB9CisjZW5kaWYKKyAgQ0ZSZWxlYXNlKHNhbXBs
ZUJ1ZmZlcik7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9S
KSA8PCAiRmFpbGVkIHRvIGRlY29kZSBmcmFtZSB3aXRoIGNvZGU6ICIgPDwgc3RhdHVzOworICAg
IHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyAgcmV0dXJuIFdFQlJUQ19W
SURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZClzZXRDYWxsYmFjazooUlRDVmlkZW9EZWNvZGVy
Q2FsbGJhY2spY2FsbGJhY2sgeworICBfY2FsbGJhY2sgPSBjYWxsYmFjazsKK30KKworLSAoTlNJ
bnRlZ2VyKXJlbGVhc2VEZWNvZGVyIHsKKyAgLy8gTmVlZCB0byBpbnZhbGlkYXRlIHRoZSBzZXNz
aW9uIHNvIHRoYXQgY2FsbGJhY2tzIG5vIGxvbmdlciBvY2N1ciBhbmQgaXQKKyAgLy8gaXMgc2Fm
ZSB0byBudWxsIG91dCB0aGUgY2FsbGJhY2suCisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9u
U2Vzc2lvbl07CisgIFtzZWxmIHNldFZpZGVvRm9ybWF0Om51bGxwdHJdOworICBfY2FsbGJhY2sg
PSBudWxscHRyOworICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCisjcHJhZ21h
IG1hcmsgLSBQcml2YXRlCisKKy0gKGludClyZXNldERlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAg
W3NlbGYgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXTsKKworICAvLyBOZWVkIHRvIHdhaXQg
Zm9yIHRoZSBmaXJzdCBTUFMgdG8gaW5pdGlhbGl6ZSBkZWNvZGVyLgorICBpZiAoIV92aWRlb0Zv
cm1hdCkgeworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7CisgIH0KKworICAvLyBT
ZXQga2V5cyBmb3IgT3BlbkdMIGFuZCBJT1N1cmZhY2UgY29tcGF0aWJpbHR5LCB3aGljaCBtYWtl
cyB0aGUgZW5jb2RlcgorICAvLyBjcmVhdGUgcGl4ZWwgYnVmZmVycyB3aXRoIEdQVSBiYWNrZWQg
bWVtb3J5LiBUaGUgaW50ZW50IGhlcmUgaXMgdG8gcGFzcworICAvLyB0aGUgcGl4ZWwgYnVmZmVy
cyBkaXJlY3RseSBzbyB3ZSBhdm9pZCBhIHRleHR1cmUgdXBsb2FkIGxhdGVyIGR1cmluZworICAv
LyByZW5kZXJpbmcuIFRoaXMgY3VycmVudGx5IGlzIG1vb3QgYmVjYXVzZSB3ZSBhcmUgY29udmVy
dGluZyBiYWNrIHRvIGFuCisgIC8vIEk0MjAgZnJhbWUgYWZ0ZXIgZGVjb2RlLCBidXQgZXZlbnR1
YWxseSB3ZSB3aWxsIGJlIGFibGUgdG8gcGx1bWIKKyAgLy8gQ1ZQaXhlbEJ1ZmZlcnMgZGlyZWN0
bHkgdG8gdGhlIHJlbmRlcmVyLgorICAvLyBUT0RPKHRrY2hpbik6IE1heWJlIG9ubHkgc2V0IE9w
ZW5HTC9JT1N1cmZhY2Uga2V5cyBpZiB3ZSBrbm93IHRoYXQgdGhhdAorICAvLyB3ZSBjYW4gcGFz
cyBDVlBpeGVsQnVmZmVycyBhcyBuYXRpdmUgaGFuZGxlcyBpbiBkZWNvZGVyIG91dHB1dC4KKyAg
c3RhdGljIHNpemVfdCBjb25zdCBhdHRyaWJ1dGVzU2l6ZSA9IDM7CisgIENGVHlwZVJlZiBrZXlz
W2F0dHJpYnV0ZXNTaXplXSA9IHsKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgICAga0NWUGl4
ZWxCdWZmZXJPcGVuR0xFU0NvbXBhdGliaWxpdHlLZXksCisjZWxpZiBkZWZpbmVkKFdFQlJUQ19N
QUMpCisgICAga0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5LAorI2VuZGlmCisg
ICAga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0aWVzS2V5LAorICAgIGtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5CisgIH07CisgIENGRGljdGlvbmFyeVJlZiBpb1N1cmZhY2VW
YWx1ZSA9IENyZWF0ZUNGVHlwZURpY3Rpb25hcnkobnVsbHB0ciwgbnVsbHB0ciwgMCk7CisgIGlu
dDY0X3QgbnYxMnR5cGUgPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVs
bFJhbmdlOworICBDRk51bWJlclJlZiBwaXhlbEZvcm1hdCA9CisgICAgICBDRk51bWJlckNyZWF0
ZShudWxscHRyLCBrQ0ZOdW1iZXJMb25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZh
bHVlc1thdHRyaWJ1dGVzU2l6ZV0gPSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbEZvcm1hdH07CisgIENG
RGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0KKyAgICAgIENyZWF0ZUNGVHlwZURpY3Rpb25hcnko
a2V5cywgdmFsdWVzLCBhdHRyaWJ1dGVzU2l6ZSk7CisgIGlmIChpb1N1cmZhY2VWYWx1ZSkgewor
ICAgIENGUmVsZWFzZShpb1N1cmZhY2VWYWx1ZSk7CisgICAgaW9TdXJmYWNlVmFsdWUgPSBudWxs
cHRyOworICB9CisgIGlmIChwaXhlbEZvcm1hdCkgeworICAgIENGUmVsZWFzZShwaXhlbEZvcm1h
dCk7CisgICAgcGl4ZWxGb3JtYXQgPSBudWxscHRyOworICB9CisgIFZURGVjb21wcmVzc2lvbk91
dHB1dENhbGxiYWNrUmVjb3JkIHJlY29yZCA9IHsKKyAgICAgIGgyNjVEZWNvbXByZXNzaW9uT3V0
cHV0Q2FsbGJhY2ssCisgICAgICBudWxscHRyLAorICB9OworICBPU1N0YXR1cyBzdGF0dXMgPQor
ICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZShudWxscHRyLCBfdmlkZW9Gb3JtYXQs
IG51bGxwdHIsIGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZyZWNvcmQsICZfZGVjb21wcmVzc2lvblNlc3Npb24pOworICBDRlJlbGVhc2UoYXR0cmlidXRl
cyk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBbc2VsZiBkZXN0cm95RGVjb21wcmVz
c2lvblNlc3Npb25dOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0K
KyAgW3NlbGYgY29uZmlndXJlRGVjb21wcmVzc2lvblNlc3Npb25dOworCisgIHJldHVybiBXRUJS
VENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKHZvaWQpY29uZmlndXJlRGVjb21wcmVzc2lvblNl
c3Npb24geworICBSVENfRENIRUNLKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjaWYgZGVmaW5l
ZChXRUJSVENfSU9TKQorICBWVFNlc3Npb25TZXRQcm9wZXJ0eShfZGVjb21wcmVzc2lvblNlc3Np
b24sIGtWVERlY29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUp
OworI2VuZGlmCit9CisKKy0gKHZvaWQpZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAg
aWYgKF9kZWNvbXByZXNzaW9uU2Vzc2lvbikgeworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAg
ICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcyhfZGVjb21w
cmVzc2lvblNlc3Npb24pOworI2VuZGlmCisgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkludmFs
aWRhdGUoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBDRlJlbGVhc2UoX2RlY29tcHJlc3Np
b25TZXNzaW9uKTsKKyAgICBfZGVjb21wcmVzc2lvblNlc3Npb24gPSBudWxscHRyOworICB9Cit9
CisKKy0gKHZvaWQpc2V0VmlkZW9Gb3JtYXQ6KENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZil2
aWRlb0Zvcm1hdCB7CisgIGlmIChfdmlkZW9Gb3JtYXQgPT0gdmlkZW9Gb3JtYXQpIHsKKyAgICBy
ZXR1cm47CisgIH0KKyAgaWYgKF92aWRlb0Zvcm1hdCkgeworICAgIENGUmVsZWFzZShfdmlkZW9G
b3JtYXQpOworICB9CisgIF92aWRlb0Zvcm1hdCA9IHZpZGVvRm9ybWF0OworICBpZiAoX3ZpZGVv
Rm9ybWF0KSB7CisgICAgQ0ZSZXRhaW4oX3ZpZGVvRm9ybWF0KTsKKyAgfQorfQorCistIChOU1N0
cmluZyopaW1wbGVtZW50YXRpb25OYW1lIHsKKyAgcmV0dXJuIEAiVmlkZW9Ub29sYm94IjsKK30K
KworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZTZhNzRhZmQ4MjlkODczYTkxODE3ZGJhOTZlYjVjYjczMDQ2OWM3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1LmgKQEAgLTAsMCArMSwyMyBA
QAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFk
ZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQK
KyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhv
cnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorI2ltcG9ydCAiUlRDVmlkZW9Db2RlY0luZm8uaCIK
KyNpbXBvcnQgIlJUQ1ZpZGVvRW5jb2Rlci5oIgorCitSVENfT0JKQ19FWFBPUlQKK19fYXR0cmli
dXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENWaWRlb0VuY29kZXJIMjY1IikpKQorQGlu
dGVyZmFjZSBSVENWaWRlb0VuY29kZXJIMjY1IDogTlNPYmplY3QgPFJUQ1ZpZGVvRW5jb2Rlcj4K
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZWNJbmZvOihSVENWaWRlb0NvZGVjSW5mbyAq
KWNvZGVjSW5mbzsKKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRl
b0VuY29kZXJIMjY1Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ1N2M1NzA3N2FjNzAzMWI0MDYxZjZmZjI2NzE2MzRiZTQ2ZjMyOGIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUubW0K
QEAgLTAsMCArMSw1OTIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMg
cHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhh
dCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRz
IGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJp
YnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBm
aWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKi8KKworI2ltcG9ydCAi
UlRDVmlkZW9FbmNvZGVySDI2NS5oIgorCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29s
Ym94Lmg+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW1wb3J0ICJSVENDb2RlY1NwZWNpZmljSW5m
b0gyNjUuaCIKKyNpbXBvcnQgImFwaS9wZWVyY29ubmVjdGlvbi9SVENSdHBGcmFnbWVudGF0aW9u
SGVhZGVyK1ByaXZhdGUuaCIKKyNpbXBvcnQgImFwaS9wZWVyY29ubmVjdGlvbi9SVENWaWRlb0Nv
ZGVjSW5mbytQcml2YXRlLmgiCisjaW1wb3J0ICJiYXNlL1JUQ0k0MjBCdWZmZXIuaCIKKyNpbXBv
cnQgImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVm
ZmVyLmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVs
QnVmZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgiCisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQor
I2ltcG9ydCAiaGVscGVycy9VSURldmljZStSVENEZXZpY2UuaCIKKyNlbmRpZgorCisjaW5jbHVk
ZSAiY29tbW9uX3ZpZGVvL2luY2x1ZGUvYml0cmF0ZV9hZGp1c3Rlci5oIgorI2luY2x1ZGUgImxp
Ynl1di9jb252ZXJ0X2Zyb20uaCIKKyNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2Nv
bW1vbl90eXBlcy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlk
ZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRl
ICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgor
I2luY2x1ZGUgInNkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvVG9vbGJveC9uYWx1X3Jl
d3JpdGVyLmgiCisjaW5jbHVkZSAic3lzdGVtX3dyYXBwZXJzL2luY2x1ZGUvY2xvY2suaCIKKwor
QGludGVyZmFjZSBSVENWaWRlb0VuY29kZXJIMjY1ICgpCisKKy0gKHZvaWQpZnJhbWVXYXNFbmNv
ZGVkOihPU1N0YXR1cylzdGF0dXMKKyAgICAgICAgICAgICAgICAgIGZsYWdzOihWVEVuY29kZUlu
Zm9GbGFncylpbmZvRmxhZ3MKKyAgICAgICAgICAgc2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZl
clJlZilzYW1wbGVCdWZmZXIKKyAgICAgICAgICAgICAgICAgIHdpZHRoOihpbnQzMl90KXdpZHRo
CisgICAgICAgICAgICAgICAgIGhlaWdodDooaW50MzJfdCloZWlnaHQKKyAgICAgICAgICAgcmVu
ZGVyVGltZU1zOihpbnQ2NF90KXJlbmRlclRpbWVNcworICAgICAgICAgICAgICB0aW1lc3RhbXA6
KHVpbnQzMl90KXRpbWVzdGFtcAorICAgICAgICAgICAgICAgcm90YXRpb246KFJUQ1ZpZGVvUm90
YXRpb24pcm90YXRpb247CisKK0BlbmQKKworbmFtZXNwYWNlIHsgIC8vIGFub255bW91cyBuYW1l
c3BhY2UKKworLy8gVGhlIHJhdGlvIGJldHdlZW4ga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9E
YXRhUmF0ZUxpbWl0cyBhbmQKKy8vIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJp
dFJhdGUuIFRoZSBkYXRhIHJhdGUgbGltaXQgaXMgc2V0IGhpZ2hlcgorLy8gdGhhbiB0aGUgYXZl
cmFnZSBiaXQgcmF0ZSB0byBhdm9pZCB1bmRlcnNob290aW5nIHRoZSB0YXJnZXQuCitjb25zdCBm
bG9hdCBrTGltaXRUb0F2ZXJhZ2VCaXRSYXRlRmFjdG9yID0gMS41ZjsKKy8vIFRoZXNlIHRocmVz
aG9sZHMgZGV2aWF0ZSBmcm9tIHRoZSBkZWZhdWx0IGgyNjUgUVAgdGhyZXNob2xkcywgYXMgdGhl
eQorLy8gaGF2ZSBiZWVuIGZvdW5kIHRvIHdvcmsgYmV0dGVyIG9uIGRldmljZXMgdGhhdCBzdXBw
b3J0IFZpZGVvVG9vbGJveAorY29uc3QgaW50IGtMb3doMjY1UXBUaHJlc2hvbGQgPSAyODsKK2Nv
bnN0IGludCBrSGlnaGgyNjVRcFRocmVzaG9sZCA9IDM5OworCisvLyBTdHJ1Y3QgdGhhdCB3ZSBw
YXNzIHRvIHRoZSBlbmNvZGVyIHBlciBmcmFtZSB0byBlbmNvZGUuIFdlIHJlY2VpdmUgaXQgYWdh
aW4KKy8vIGluIHRoZSBlbmNvZGVyIGNhbGxiYWNrLgorc3RydWN0IEFQSV9BVkFJTEFCTEUoaW9z
KDExLjApKSBSVENGcmFtZUVuY29kZVBhcmFtcyB7CisgIFJUQ0ZyYW1lRW5jb2RlUGFyYW1zKFJU
Q1ZpZGVvRW5jb2RlckgyNjUqIGUsCisgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdywK
KyAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBoLAorICAgICAgICAgICAgICAgICAgICAg
ICBpbnQ2NF90IHJ0bXMsCisgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRzLAorICAg
ICAgICAgICAgICAgICAgICAgICBSVENWaWRlb1JvdGF0aW9uIHIpCisgICAgICA6IGVuY29kZXIo
ZSksCisgICAgICAgIHdpZHRoKHcpLAorICAgICAgICBoZWlnaHQoaCksCisgICAgICAgIHJlbmRl
cl90aW1lX21zKHJ0bXMpLAorICAgICAgICB0aW1lc3RhbXAodHMpLAorICAgICAgICByb3RhdGlv
bihyKSB7fQorCisgIFJUQ1ZpZGVvRW5jb2RlckgyNjUqIGVuY29kZXI7CisgIGludDMyX3Qgd2lk
dGg7CisgIGludDMyX3QgaGVpZ2h0OworICBpbnQ2NF90IHJlbmRlcl90aW1lX21zOworICB1aW50
MzJfdCB0aW1lc3RhbXA7CisgIFJUQ1ZpZGVvUm90YXRpb24gcm90YXRpb247Cit9OworCisvLyBX
ZSByZWNlaXZlIEk0MjBGcmFtZXMgYXMgaW5wdXQsIGJ1dCB3ZSBuZWVkIHRvIGZlZWQgQ1ZQaXhl
bEJ1ZmZlcnMgaW50byB0aGUKKy8vIGVuY29kZXIuIFRoaXMgcGVyZm9ybXMgdGhlIGNvcHkgYW5k
IGZvcm1hdCBjb252ZXJzaW9uLgorLy8gVE9ETyh0a2NoaW4pOiBTZWUgaWYgZW5jb2RlciB3aWxs
IGFjY2VwdCBpNDIwIGZyYW1lcyBhbmQgY29tcGFyZSBwZXJmb3JtYW5jZS4KK2Jvb2wgQ29weVZp
ZGVvRnJhbWVUb1BpeGVsQnVmZmVyKGlkPFJUQ0k0MjBCdWZmZXI+IGZyYW1lQnVmZmVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
cikgeworICBSVENfRENIRUNLKHBpeGVsQnVmZmVyKTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVs
QnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSwKKyAgICAgICAgICAgICAgICBr
Q1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKTsKKyAgUlRDX0RD
SEVDS19FUShDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCksCisg
ICAgICAgICAgICAgICAgZnJhbWVCdWZmZXIuaGVpZ2h0KTsKKyAgUlRDX0RDSEVDS19FUShDVlBp
eGVsQnVmZmVyR2V0V2lkdGhPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKSwKKyAgICAgICAgICAgICAg
ICBmcmFtZUJ1ZmZlci53aWR0aCk7CisKKyAgQ1ZSZXR1cm4gY3ZSZXQgPSBDVlBpeGVsQnVmZmVy
TG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCAwKTsKKyAgaWYgKGN2UmV0ICE9IGtDVlJldHVy
blN1Y2Nlc3MpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGxvY2sgYmFz
ZSBhZGRyZXNzOiAiIDw8IGN2UmV0OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHVpbnQ4
X3QqIGRzdFkgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigKKyAgICAgIENWUGl4ZWxCdWZm
ZXJHZXRCYXNlQWRkcmVzc09mUGxhbmUocGl4ZWxCdWZmZXIsIDApKTsKKyAgaW50IGRzdFN0cmlk
ZVkgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKTsK
KyAgdWludDhfdCogZHN0VVYgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigKKyAgICAgIENW
UGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzc09mUGxhbmUocGl4ZWxCdWZmZXIsIDEpKTsKKyAgaW50
IGRzdFN0cmlkZVVWID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1
ZmZlciwgMSk7CisgIC8vIENvbnZlcnQgSTQyMCB0byBOVjEyLgorICBpbnQgcmV0ID0gbGlieXV2
OjpJNDIwVG9OVjEyKAorICAgICAgZnJhbWVCdWZmZXIuZGF0YVksIGZyYW1lQnVmZmVyLnN0cmlk
ZVksIGZyYW1lQnVmZmVyLmRhdGFVLAorICAgICAgZnJhbWVCdWZmZXIuc3RyaWRlVSwgZnJhbWVC
dWZmZXIuZGF0YVYsIGZyYW1lQnVmZmVyLnN0cmlkZVYsIGRzdFksCisgICAgICBkc3RTdHJpZGVZ
LCBkc3RVViwgZHN0U3RyaWRlVVYsIGZyYW1lQnVmZmVyLndpZHRoLCBmcmFtZUJ1ZmZlci5oZWln
aHQpOworICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOwor
ICBpZiAocmV0KSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkVycm9yIGNvbnZlcnRpbmcg
STQyMCBWaWRlb0ZyYW1lIHRvIE5WMTIgOiIgPDwgcmV0OworICAgIHJldHVybiBmYWxzZTsKKyAg
fQorICByZXR1cm4gdHJ1ZTsKK30KKworQ1ZQaXhlbEJ1ZmZlclJlZiBDcmVhdGVQaXhlbEJ1ZmZl
cihDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbF9idWZmZXJfcG9vbCkgeworICBpZiAoIXBpeGVs
X2J1ZmZlcl9wb29sKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQg
cGl4ZWwgYnVmZmVyIHBvb2wuIjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsX2J1ZmZlcjsKKyAgQ1ZSZXR1cm4gcmV0ID0gQ1ZQaXhlbEJ1ZmZlclBv
b2xDcmVhdGVQaXhlbEJ1ZmZlcihudWxscHRyLCBwaXhlbF9idWZmZXJfcG9vbCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGl4ZWxfYnVmZmVy
KTsKKyAgaWYgKHJldCAhPSBrQ1ZSZXR1cm5TdWNjZXNzKSB7CisgICAgUlRDX0xPRyhMU19FUlJP
UikgPDwgIkZhaWxlZCB0byBjcmVhdGUgcGl4ZWwgYnVmZmVyOiAiIDw8IHJldDsKKyAgICAvLyBX
ZSBwcm9iYWJseSB3YW50IHRvIGRyb3AgZnJhbWVzIGhlcmUsIHNpbmNlIGZhaWx1cmUgcHJvYmFi
bHkgbWVhbnMKKyAgICAvLyB0aGF0IHRoZSBwb29sIGlzIGVtcHR5LgorICAgIHJldHVybiBudWxs
cHRyOworICB9CisgIHJldHVybiBwaXhlbF9idWZmZXI7Cit9CisKKy8vIFRoaXMgaXMgdGhlIGNh
bGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNhbGxzIHdoZW4gZW5jb2RlIGlzCisv
LyBjb21wbGV0ZS4gRnJvbSBpbnNwZWN0aW9uIHRoaXMgaGFwcGVucyBvbiBpdHMgb3duIHF1ZXVl
Lgordm9pZCBjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQqIGVuY29kZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogcGFyYW1zLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE9TU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBWVEVuY29kZUluZm9GbGFncyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKQorICAgIEFQSV9BVkFJTEFC
TEUoaW9zKDExLjApKSB7CisgIFJUQ19DSEVDSyhwYXJhbXMpOworICBzdGQ6OnVuaXF1ZV9wdHI8
UlRDRnJhbWVFbmNvZGVQYXJhbXM+IGVuY29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nh
c3Q8UlRDRnJhbWVFbmNvZGVQYXJhbXMqPihwYXJhbXMpKTsKKyAgUlRDX0NIRUNLKGVuY29kZVBh
cmFtcy0+ZW5jb2Rlcik7CisgIFtlbmNvZGVQYXJhbXMtPmVuY29kZXIgZnJhbWVXYXNFbmNvZGVk
OnN0YXR1cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFnczppbmZvRmxh
Z3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVCdWZmZXI6c2FtcGxlQnVmZmVy
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOmVuY29kZVBhcmFtcy0+
d2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ZW5jb2RlUGFy
YW1zLT5oZWlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJUaW1lTXM6ZW5j
b2RlUGFyYW1zLT5yZW5kZXJfdGltZV9tcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRpbWVzdGFtcDplbmNvZGVQYXJhbXMtPnRpbWVzdGFtcAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByb3RhdGlvbjplbmNvZGVQYXJhbXMtPnJvdGF0aW9uXTsKK30KK30gIC8vIG5h
bWVzcGFjZQorCitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9FbmNvZGVySDI2NSB7CisgIFJUQ1Zp
ZGVvQ29kZWNJbmZvKiBfY29kZWNJbmZvOworICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpCaXRy
YXRlQWRqdXN0ZXI+IF9iaXRyYXRlQWRqdXN0ZXI7CisgIHVpbnQzMl90IF90YXJnZXRCaXRyYXRl
QnBzOworICB1aW50MzJfdCBfZW5jb2RlckJpdHJhdGVCcHM7CisgIENGU3RyaW5nUmVmIF9wcm9m
aWxlOworICBSVENWaWRlb0VuY29kZXJDYWxsYmFjayBfY2FsbGJhY2s7CisgIGludDMyX3QgX3dp
ZHRoOworICBpbnQzMl90IF9oZWlnaHQ7CisgIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIF9jb21w
cmVzc2lvblNlc3Npb247CisgIFJUQ1ZpZGVvQ29kZWNNb2RlIF9tb2RlOworICBpbnQgZnJhbWVz
TGVmdDsKKworICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBfbnYxMlNjYWxlQnVmZmVyOworfQorCisv
LyAuNSBpcyBzZXQgYXMgYSBtaW5pbnVtIHRvIHByZXZlbnQgb3ZlcmNvbXBlbnNhdGluZyBmb3Ig
bGFyZ2UgdGVtcG9yYXJ5CisvLyBvdmVyc2hvb3RzLiBXZSBkb24ndCB3YW50IHRvIGRlZ3JhZGUg
dmlkZW8gcXVhbGl0eSB0b28gYmFkbHkuCisvLyAuOTUgaXMgc2V0IHRvIHByZXZlbnQgb3NjaWxs
YXRpb25zLiBXaGVuIGEgbG93ZXIgYml0cmF0ZSBpcyBzZXQgb24gdGhlCisvLyBlbmNvZGVyIHRo
YW4gcHJldmlvdXNseSBzZXQsIGl0cyBvdXRwdXQgc2VlbXMgdG8gaGF2ZSBhIGJyaWVmIHBlcmlv
ZCBvZgorLy8gZHJhc3RpY2FsbHkgcmVkdWNlZCBiaXRyYXRlLCBzbyB3ZSB3YW50IHRvIGF2b2lk
IHRoYXQuIEluIHN0ZWFkeSBzdGF0ZQorLy8gY29uZGl0aW9ucywgMC45NSBzZWVtcyB0byBnaXZl
IHVzIGJldHRlciBvdmVyYWxsIGJpdHJhdGUgb3ZlciBsb25nIHBlcmlvZHMKKy8vIG9mIHRpbWUu
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlY0luZm86KFJUQ1ZpZGVvQ29kZWNJbmZvKilj
b2RlY0luZm8geworICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICAgIF9jb2RlY0luZm8g
PSBjb2RlY0luZm87CisgICAgX2JpdHJhdGVBZGp1c3Rlci5yZXNldChuZXcgd2VicnRjOjpCaXRy
YXRlQWRqdXN0ZXIoLjUsIC45NSkpOworICAgIFJUQ19DSEVDSyhbY29kZWNJbmZvLm5hbWUgaXNF
cXVhbFRvU3RyaW5nOkAiSDI2NSJdKTsKKyAgfQorICByZXR1cm4gc2VsZjsKK30KKworLSAodm9p
ZClkZWFsbG9jIHsKKyAgW3NlbGYgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl07Cit9CisKKy0g
KE5TSW50ZWdlcilzdGFydEVuY29kZVdpdGhTZXR0aW5nczooUlRDVmlkZW9FbmNvZGVyU2V0dGlu
Z3MqKXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mQ29yZXM6KGludClu
dW1iZXJPZkNvcmVzIHsKKyAgUlRDX0RDSEVDSyhzZXR0aW5ncyk7CisgIFJUQ19EQ0hFQ0soW3Nl
dHRpbmdzLm5hbWUgaXNFcXVhbFRvU3RyaW5nOkAiSDI2NSJdKTsKKworICBfd2lkdGggPSBzZXR0
aW5ncy53aWR0aDsKKyAgX2hlaWdodCA9IHNldHRpbmdzLmhlaWdodDsKKyAgX21vZGUgPSBzZXR0
aW5ncy5tb2RlOworCisgIC8vIFdlIGNhbiBvbmx5IHNldCBhdmVyYWdlIGJpdHJhdGUgb24gdGhl
IEhXIGVuY29kZXIuCisgIF90YXJnZXRCaXRyYXRlQnBzID0gc2V0dGluZ3Muc3RhcnRCaXRyYXRl
OworICBfYml0cmF0ZUFkanVzdGVyLT5TZXRUYXJnZXRCaXRyYXRlQnBzKF90YXJnZXRCaXRyYXRl
QnBzKTsKKworICByZXR1cm4gW3NlbGYgcmVzZXRDb21wcmVzc2lvblNlc3Npb25dOworfQorCist
IChOU0ludGVnZXIpZW5jb2RlOihSVENWaWRlb0ZyYW1lKilmcmFtZQorICAgIGNvZGVjU3BlY2lm
aWNJbmZvOihpZDxSVENDb2RlY1NwZWNpZmljSW5mbz4pY29kZWNTcGVjaWZpY0luZm8KKyAgICAg
ICAgICAgZnJhbWVUeXBlczooTlNBcnJheTxOU051bWJlcio+KilmcmFtZVR5cGVzIHsKKyAgUlRD
X0RDSEVDS19FUShmcmFtZS53aWR0aCwgX3dpZHRoKTsKKyAgUlRDX0RDSEVDS19FUShmcmFtZS5o
ZWlnaHQsIF9oZWlnaHQpOworICBpZiAoIV9jYWxsYmFjayB8fCAhX2NvbXByZXNzaW9uU2Vzc2lv
bikgeworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfVU5JTklUSUFMSVpFRDsKKyAgfQor
ICBCT09MIGlzS2V5ZnJhbWVSZXF1aXJlZCA9IE5POworCisgIC8vIEdldCBhIHBpeGVsIGJ1ZmZl
ciBmcm9tIHRoZSBwb29sIGFuZCBjb3B5IGZyYW1lIGRhdGEgb3Zlci4KKyAgQ1ZQaXhlbEJ1ZmZl
clBvb2xSZWYgcGl4ZWxCdWZmZXJQb29sID0KKyAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uR2V0
UGl4ZWxCdWZmZXJQb29sKF9jb21wcmVzc2lvblNlc3Npb24pOworCisjaWYgZGVmaW5lZChXRUJS
VENfSU9TKQorICBpZiAoIXBpeGVsQnVmZmVyUG9vbCkgeworICAgIC8vIEtpbmQgb2YgYSBoYWNr
LiBPbiBiYWNrZ3JvdW5kaW5nLCB0aGUgY29tcHJlc3Npb24gc2Vzc2lvbiBzZWVtcyB0byBnZXQK
KyAgICAvLyBpbnZhbGlkYXRlZCwgd2hpY2ggY2F1c2VzIHRoaXMgcG9vbCBjYWxsIHRvIGZhaWwg
d2hlbiB0aGUgYXBwbGljYXRpb24KKyAgICAvLyBpcyBmb3JlZ3JvdW5kZWQgYW5kIGZyYW1lcyBh
cmUgYmVpbmcgc2VudCBmb3IgZW5jb2RpbmcgYWdhaW4uCisgICAgLy8gUmVzZXR0aW5nIHRoZSBz
ZXNzaW9uIHdoZW4gdGhpcyBoYXBwZW5zIGZpeGVzIHRoZSBpc3N1ZS4KKyAgICAvLyBJbiBhZGRp
dGlvbiB3ZSByZXF1ZXN0IGEga2V5ZnJhbWUgc28gdmlkZW8gY2FuIHJlY292ZXIgcXVpY2tseS4K
KyAgICBbc2VsZiByZXNldENvbXByZXNzaW9uU2Vzc2lvbl07CisgICAgcGl4ZWxCdWZmZXJQb29s
ID0KKyAgICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25HZXRQaXhlbEJ1ZmZlclBvb2woX2NvbXBy
ZXNzaW9uU2Vzc2lvbik7CisgICAgaXNLZXlmcmFtZVJlcXVpcmVkID0gWUVTOworICAgIFJUQ19M
T0coTFNfSU5GTykgPDwgIlJlc2V0dGluZyBjb21wcmVzc2lvbiBzZXNzaW9uIGR1ZSB0byBpbnZh
bGlkIHBvb2wuIjsKKyAgfQorI2VuZGlmCisKKyAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciA9IG51bGxwdHI7CisgIGlmIChbZnJhbWUuYnVmZmVyIGlzS2luZE9mQ2xhc3M6W1JUQ0NWUGl4
ZWxCdWZmZXIgY2xhc3NdXSkgeworICAgIC8vIE5hdGl2ZSBmcmFtZSBidWZmZXIKKyAgICBSVEND
VlBpeGVsQnVmZmVyKiBydGNQaXhlbEJ1ZmZlciA9IChSVENDVlBpeGVsQnVmZmVyKilmcmFtZS5i
dWZmZXI7CisgICAgaWYgKCFbcnRjUGl4ZWxCdWZmZXIgcmVxdWlyZXNDcm9wcGluZ10pIHsKKyAg
ICAgIC8vIFRoaXMgcGl4ZWwgYnVmZmVyIG1pZ2h0IGhhdmUgYSBoaWdoZXIgcmVzb2x1dGlvbiB0
aGFuIHdoYXQgdGhlCisgICAgICAvLyBjb21wcmVzc2lvbiBzZXNzaW9uIGlzIGNvbmZpZ3VyZWQg
dG8uIFRoZSBjb21wcmVzc2lvbiBzZXNzaW9uIGNhbgorICAgICAgLy8gaGFuZGxlIHRoYXQgYW5k
IHdpbGwgb3V0cHV0IGVuY29kZWQgZnJhbWVzIGluIHRoZSBjb25maWd1cmVkCisgICAgICAvLyBy
ZXNvbHV0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhlIGlucHV0IHBpeGVsIGJ1ZmZlciByZXNvbHV0aW9u
LgorICAgICAgcGl4ZWxCdWZmZXIgPSBydGNQaXhlbEJ1ZmZlci5waXhlbEJ1ZmZlcjsKKyAgICAg
IENWQnVmZmVyUmV0YWluKHBpeGVsQnVmZmVyKTsKKyAgICB9IGVsc2UgeworICAgICAgLy8gQ3Jv
cHBpbmcgcmVxdWlyZWQsIHdlIG5lZWQgdG8gY3JvcCBhbmQgc2NhbGUgdG8gYSBuZXcgcGl4ZWwg
YnVmZmVyLgorICAgICAgcGl4ZWxCdWZmZXIgPSBDcmVhdGVQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZl
clBvb2wpOworICAgICAgaWYgKCFwaXhlbEJ1ZmZlcikgeworICAgICAgICByZXR1cm4gV0VCUlRD
X1ZJREVPX0NPREVDX0VSUk9SOworICAgICAgfQorICAgICAgaW50IGRzdFdpZHRoID0gQ1ZQaXhl
bEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKKyAgICAgIGludCBkc3RIZWlnaHQgPSBDVlBp
eGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKKyAgICAgIGlmIChbcnRjUGl4ZWxCdWZm
ZXIgcmVxdWlyZXNTY2FsaW5nVG9XaWR0aDpkc3RXaWR0aCBoZWlnaHQ6ZHN0SGVpZ2h0XSkgewor
ICAgICAgICBpbnQgc2l6ZSA9CisgICAgICAgICAgICBbcnRjUGl4ZWxCdWZmZXIgYnVmZmVyU2l6
ZUZvckNyb3BwaW5nQW5kU2NhbGluZ1RvV2lkdGg6ZHN0V2lkdGgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDpkc3RIZWln
aHRdOworICAgICAgICBfbnYxMlNjYWxlQnVmZmVyLnJlc2l6ZShzaXplKTsKKyAgICAgIH0gZWxz
ZSB7CisgICAgICAgIF9udjEyU2NhbGVCdWZmZXIuY2xlYXIoKTsKKyAgICAgIH0KKyAgICAgIF9u
djEyU2NhbGVCdWZmZXIuc2hyaW5rX3RvX2ZpdCgpOworICAgICAgaWYgKCFbcnRjUGl4ZWxCdWZm
ZXIgY3JvcEFuZFNjYWxlVG86cGl4ZWxCdWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdpdGhUZW1wQnVmZmVyOl9udjEyU2NhbGVCdWZmZXIuZGF0YSgpXSkgeworICAgICAgICByZXR1
cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICAgICAgfQorICAgIH0KKyAgfQorCisgIGlm
ICghcGl4ZWxCdWZmZXIpIHsKKyAgICAvLyBXZSBkaWQgbm90IGhhdmUgYSBuYXRpdmUgZnJhbWUg
YnVmZmVyCisgICAgcGl4ZWxCdWZmZXIgPSBDcmVhdGVQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlclBv
b2wpOworICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAgICAgIHJldHVybiBXRUJSVENfVklERU9f
Q09ERUNfRVJST1I7CisgICAgfQorICAgIFJUQ19EQ0hFQ0socGl4ZWxCdWZmZXIpOworICAgIGlm
ICghQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKFtmcmFtZS5idWZmZXIgdG9JNDIwXSwgcGl4
ZWxCdWZmZXIpKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNvcHkg
ZnJhbWUgZGF0YS4iOworICAgICAgQ1ZCdWZmZXJSZWxlYXNlKHBpeGVsQnVmZmVyKTsKKyAgICAg
IHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgICAgfQorICB9CisKKyAgLy8gQ2hl
Y2sgaWYgd2UgbmVlZCBhIGtleWZyYW1lLgorICBpZiAoIWlzS2V5ZnJhbWVSZXF1aXJlZCAmJiBm
cmFtZVR5cGVzKSB7CisgICAgZm9yIChOU051bWJlciogZnJhbWVUeXBlIGluIGZyYW1lVHlwZXMp
IHsKKyAgICAgIGlmICgoUlRDRnJhbWVUeXBlKWZyYW1lVHlwZS5pbnRWYWx1ZSA9PSBSVENGcmFt
ZVR5cGVWaWRlb0ZyYW1lS2V5KSB7CisgICAgICAgIGlzS2V5ZnJhbWVSZXF1aXJlZCA9IFlFUzsK
KyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICB9CisKKyAgQ01UaW1lIHByZXNlbnRh
dGlvblRpbWVTdGFtcCA9CisgICAgICBDTVRpbWVNYWtlKGZyYW1lLnRpbWVTdGFtcE5zIC8gcnRj
OjprTnVtTmFub3NlY3NQZXJNaWxsaXNlYywgMTAwMCk7CisgIENGRGljdGlvbmFyeVJlZiBmcmFt
ZVByb3BlcnRpZXMgPSBudWxscHRyOworICBpZiAoaXNLZXlmcmFtZVJlcXVpcmVkKSB7CisgICAg
Q0ZUeXBlUmVmIGtleXNbXSA9IHtrVlRFbmNvZGVGcmFtZU9wdGlvbktleV9Gb3JjZUtleUZyYW1l
fTsKKyAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7a0NGQm9vbGVhblRydWV9OworICAgIGZyYW1l
UHJvcGVydGllcyA9IENyZWF0ZUNGVHlwZURpY3Rpb25hcnkoa2V5cywgdmFsdWVzLCAxKTsKKyAg
fQorCisgIHN0ZDo6dW5pcXVlX3B0cjxSVENGcmFtZUVuY29kZVBhcmFtcz4gZW5jb2RlUGFyYW1z
OworICBlbmNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRW5jb2RlUGFyYW1zKAorICAgICAg
c2VsZiwgX3dpZHRoLCBfaGVpZ2h0LCBmcmFtZS50aW1lU3RhbXBOcyAvIHJ0Yzo6a051bU5hbm9z
ZWNzUGVyTWlsbGlzZWMsCisgICAgICBmcmFtZS50aW1lU3RhbXAsIGZyYW1lLnJvdGF0aW9uKSk7
CisKKyAgLy8gVXBkYXRlIHRoZSBiaXRyYXRlIGlmIG5lZWRlZC4KKyAgW3NlbGYgc2V0Qml0cmF0
ZUJwczpfYml0cmF0ZUFkanVzdGVyLT5HZXRBZGp1c3RlZEJpdHJhdGVCcHMoKV07CisKKyAgT1NT
dGF0dXMgc3RhdHVzID0gVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSgKKyAgICAgIF9j
b21wcmVzc2lvblNlc3Npb24sIHBpeGVsQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGtD
TVRpbWVJbnZhbGlkLAorICAgICAgZnJhbWVQcm9wZXJ0aWVzLCBlbmNvZGVQYXJhbXMucmVsZWFz
ZSgpLCBudWxscHRyKTsKKyAgaWYgKGZyYW1lUHJvcGVydGllcykgeworICAgIENGUmVsZWFzZShm
cmFtZVByb3BlcnRpZXMpOworICB9CisgIGlmIChwaXhlbEJ1ZmZlcikgeworICAgIENWQnVmZmVy
UmVsZWFzZShwaXhlbEJ1ZmZlcik7CisgIH0KKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAg
IFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZW5jb2RlIGZyYW1lIHdpdGggY29kZTog
IiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQor
ICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistICh2b2lkKXNldENhbGxiYWNr
OihSVENWaWRlb0VuY29kZXJDYWxsYmFjayljYWxsYmFjayB7CisgIF9jYWxsYmFjayA9IGNhbGxi
YWNrOworfQorCistIChpbnQpc2V0Qml0cmF0ZToodWludDMyX3QpYml0cmF0ZUtiaXQgZnJhbWVy
YXRlOih1aW50MzJfdClmcmFtZXJhdGUgeworICBfdGFyZ2V0Qml0cmF0ZUJwcyA9IDEwMDAgKiBi
aXRyYXRlS2JpdDsKKyAgX2JpdHJhdGVBZGp1c3Rlci0+U2V0VGFyZ2V0Qml0cmF0ZUJwcyhfdGFy
Z2V0Qml0cmF0ZUJwcyk7CisgIFtzZWxmIHNldEJpdHJhdGVCcHM6X2JpdHJhdGVBZGp1c3Rlci0+
R2V0QWRqdXN0ZWRCaXRyYXRlQnBzKCldOworICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09L
OworfQorCisjcHJhZ21hIG1hcmsgLSBQcml2YXRlCisKKy0gKE5TSW50ZWdlcilyZWxlYXNlRW5j
b2RlciB7CisgIC8vIE5lZWQgdG8gZGVzdHJveSBzbyB0aGF0IHRoZSBzZXNzaW9uIGlzIGludmFs
aWRhdGVkIGFuZCB3b24ndCB1c2UgdGhlCisgIC8vIGNhbGxiYWNrIGFueW1vcmUuIERvIG5vdCBy
ZW1vdmUgY2FsbGJhY2sgdW50aWwgdGhlIHNlc3Npb24gaXMgaW52YWxpZGF0ZWQKKyAgLy8gc2lu
Y2UgYXN5bmMgZW5jb2RlciBjYWxsYmFja3MgY2FuIG9jY3VyIHVudGlsIGludmFsaWRhdGlvbi4K
KyAgW3NlbGYgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl07CisgIF9jYWxsYmFjayA9IG51bGxw
dHI7CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKGludClyZXNldENv
bXByZXNzaW9uU2Vzc2lvbiB7CisgIFtzZWxmIGRlc3Ryb3lDb21wcmVzc2lvblNlc3Npb25dOwor
CisgIC8vIFNldCBzb3VyY2UgaW1hZ2UgYnVmZmVyIGF0dHJpYnV0ZXMuIFRoZXNlIGF0dHJpYnV0
ZXMgd2lsbCBiZSBwcmVzZW50IG9uCisgIC8vIGJ1ZmZlcnMgcmV0cmlldmVkIGZyb20gdGhlIGVu
Y29kZXIncyBwaXhlbCBidWZmZXIgcG9vbC4KKyAgY29uc3Qgc2l6ZV90IGF0dHJpYnV0ZXNTaXpl
ID0gMzsKKyAgQ0ZUeXBlUmVmIGtleXNbYXR0cmlidXRlc1NpemVdID0geworI2lmIGRlZmluZWQo
V0VCUlRDX0lPUykKKyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTEVTQ29tcGF0aWJpbGl0eUtleSwK
KyNlbGlmIGRlZmluZWQoV0VCUlRDX01BQykKKyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBh
dGliaWxpdHlLZXksCisjZW5kaWYKKyAgICBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZVByb3BlcnRp
ZXNLZXksCisgICAga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkKKyAgfTsKKyAgQ0ZE
aWN0aW9uYXJ5UmVmIGlvU3VyZmFjZVZhbHVlID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShudWxs
cHRyLCBudWxscHRyLCAwKTsKKyAgaW50NjRfdCBudjEydHlwZSA9IGtDVlBpeGVsRm9ybWF0VHlw
ZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2U7CisgIENGTnVtYmVyUmVmIHBpeGVsRm9ybWF0
ID0KKyAgICAgIENGTnVtYmVyQ3JlYXRlKG51bGxwdHIsIGtDRk51bWJlckxvbmdUeXBlLCAmbnYx
MnR5cGUpOworICBDRlR5cGVSZWYgdmFsdWVzW2F0dHJpYnV0ZXNTaXplXSA9IHtrQ0ZCb29sZWFu
VHJ1ZSwgaW9TdXJmYWNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBpeGVsRm9ybWF0fTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUF0dHJpYnV0ZXMgPQor
ICAgICAgQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXpl
KTsKKyAgaWYgKGlvU3VyZmFjZVZhbHVlKSB7CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVl
KTsKKyAgICBpb1N1cmZhY2VWYWx1ZSA9IG51bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0
KSB7CisgICAgQ0ZSZWxlYXNlKHBpeGVsRm9ybWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxw
dHI7CisgIH0KKyAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBlbmNvZGVyX3NwZWNzID0gQ0ZEaWN0
aW9uYXJ5Q3JlYXRlTXV0YWJsZShudWxscHRyLCAyLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxs
QmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKTsKKyNpZiBkZWZpbmVkKFdF
QlJUQ19NQUMpICYmICFkZWZpbmVkKFdFQlJUQ19JT1MpCisgIENGRGljdGlvbmFyeVNldFZhbHVl
KGVuY29kZXJfc3BlY3MsIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdh
cmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rlciwga0NGQm9vbGVhblRydWUpOworI2VuZGlmCisjaWYg
SEFWRV9WVEJfUkVRVUlSRURMT1dMQVRFTkNZCisgIC8vIFdlIHdpbGwgd2FudCB0byBlbmFibGUg
dGhpcyBwcm9wZXJ0eSBvbmNlIHdvcmtpbmcuCisgIC8vIENGRGljdGlvbmFyeVNldFZhbHVlKGVu
Y29kZXJfc3BlY3MsIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fUmVxdWlyZWRMb3dMYXRl
bmN5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisjZW5kaWYKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlRDb21w
cmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAgICBudWxscHRyLCAgLy8gdXNlIGRlZmF1bHQgYWxs
b2NhdG9yCisgICAgICBfd2lkdGgsIF9oZWlnaHQsIGtDTVZpZGVvQ29kZWNUeXBlX0hFVkMsCisg
ICAgICBlbmNvZGVyX3NwZWNzLCAgLy8gdXNlIGhhcmR3YXJlIGFjY2VsZXJhdGVkIGVuY29kZXIg
aWYgYXZhaWxhYmxlCisgICAgICBzb3VyY2VBdHRyaWJ1dGVzLAorICAgICAgbnVsbHB0ciwgIC8v
IHVzZSBkZWZhdWx0IGNvbXByZXNzZWQgZGF0YSBhbGxvY2F0b3IKKyAgICAgIGNvbXByZXNzaW9u
T3V0cHV0Q2FsbGJhY2ssIG51bGxwdHIsICZfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgaWYgKHNv
dXJjZUF0dHJpYnV0ZXMpIHsKKyAgICBDRlJlbGVhc2Uoc291cmNlQXR0cmlidXRlcyk7CisgICAg
c291cmNlQXR0cmlidXRlcyA9IG51bGxwdHI7CisgIH0KKyAgaWYgKGVuY29kZXJfc3BlY3MpIHsK
KyAgICBDRlJlbGVhc2UoZW5jb2Rlcl9zcGVjcyk7CisgICAgZW5jb2Rlcl9zcGVjcyA9IG51bGxw
dHI7CisgIH0KKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1Ip
IDw8ICJGYWlsZWQgdG8gY3JlYXRlIGNvbXByZXNzaW9uIHNlc3Npb246ICIgPDwgc3RhdHVzOwor
ICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyNpZiBkZWZpbmVkKFdF
QlJUQ19NQUMpICYmICFkZWZpbmVkKFdFQlJUQ19JT1MpCisgIENGQm9vbGVhblJlZiBod2FjY2xf
ZW5hYmxlZCA9IG51bGxwdHI7CisgIHN0YXR1cyA9IFZUU2Vzc2lvbkNvcHlQcm9wZXJ0eSgKKyAg
ICAgIF9jb21wcmVzc2lvblNlc3Npb24sCisgICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X1VzaW5nSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgbnVsbHB0ciwKKyAgICAgICZo
d2FjY2xfZW5hYmxlZCk7CisgIGlmIChzdGF0dXMgPT0gbm9FcnIgJiYgKENGQm9vbGVhbkdldFZh
bHVlKGh3YWNjbF9lbmFibGVkKSkpIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJDb21wcmVz
c2lvbiBzZXNzaW9uIGNyZWF0ZWQgd2l0aCBodyBhY2NsIGVuYWJsZWQiOworICB9IGVsc2Ugewor
ICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIkNvbXByZXNzaW9uIHNlc3Npb24gY3JlYXRlZCB3aXRo
IGh3IGFjY2wgZGlzYWJsZWQiOworICB9CisjZW5kaWYKKyAgW3NlbGYgY29uZmlndXJlQ29tcHJl
c3Npb25TZXNzaW9uXTsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAo
dm9pZCljb25maWd1cmVDb21wcmVzc2lvblNlc3Npb24geworICBSVENfRENIRUNLKF9jb21wcmVz
c2lvblNlc3Npb24pOworICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNzaW9u
LCBudWxscHRyLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICBmYWxzZSk7CisgIC8vIFNldFZUU2Vzc2lvblByb3BlcnR5KF9jb21wcmVz
c2lvblNlc3Npb24sCisgIC8vIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVs
LCBfcHJvZmlsZSk7CisgIFNldFZUU2Vzc2lvblByb3BlcnR5KF9jb21wcmVzc2lvblNlc3Npb24s
IG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgIGtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfQWxsb3dGcmFtZVJlb3JkZXJpbmcsIGZhbHNlKTsKKyAgW3NlbGYgc2V0RW5jb2RlckJpdHJh
dGVCcHM6X3RhcmdldEJpdHJhdGVCcHNdOworCisgIC8vIFNldCBhIHJlbGF0aXZlbHkgbGFyZ2Ug
dmFsdWUgZm9yIGtleWZyYW1lIGVtaXNzaW9uICg3MjAwIGZyYW1lcyBvciA0IG1pbnV0ZXMpLgor
ICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNzaW9uLCBudWxscHRyLAorICAg
ICAgICAgICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1l
SW50ZXJ2YWwsIDcyMDApOworICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNz
aW9uLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgMjQwKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0KKyAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9u
UHJlcGFyZVRvRW5jb2RlRnJhbWVzKF9jb21wcmVzc2lvblNlc3Npb24pOworICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkNvbXByZXNzaW9uIHNlc3Np
b24gZmFpbGVkIHRvIHByZXBhcmUgZW5jb2RlIGZyYW1lcy4iOworICB9Cit9CisKKy0gKHZvaWQp
ZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIGlmIChfY29tcHJlc3Npb25TZXNzaW9uKSB7
CisgICAgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKF9jb21wcmVzc2lvblNlc3Npb24p
OworICAgIENGUmVsZWFzZShfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBfY29tcHJlc3Npb25T
ZXNzaW9uID0gbnVsbHB0cjsKKyAgfQorfQorCistIChOU1N0cmluZyopaW1wbGVtZW50YXRpb25O
YW1lIHsKKyAgcmV0dXJuIEAiVmlkZW9Ub29sYm94IjsKK30KKworLSAodm9pZClzZXRCaXRyYXRl
QnBzOih1aW50MzJfdCliaXRyYXRlQnBzIHsKKyAgaWYgKF9lbmNvZGVyQml0cmF0ZUJwcyAhPSBi
aXRyYXRlQnBzKSB7CisgICAgW3NlbGYgc2V0RW5jb2RlckJpdHJhdGVCcHM6Yml0cmF0ZUJwc107
CisgIH0KK30KKworLSAodm9pZClzZXRFbmNvZGVyQml0cmF0ZUJwczoodWludDMyX3QpYml0cmF0
ZUJwcyB7CisgIGlmIChfY29tcHJlc3Npb25TZXNzaW9uKSB7CisgICAgU2V0VlRTZXNzaW9uUHJv
cGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwgbnVsbHB0ciwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgYml0cmF0ZUJw
cyk7CisKKyAgICAvLyBUT0RPKHRrY2hpbik6IEFkZCBhIGhlbHBlciBtZXRob2QgdG8gc2V0IGFy
cmF5IHZhbHVlLgorICAgIGludDY0X3QgZGF0YUxpbWl0Qnl0ZXNQZXJTZWNvbmRWYWx1ZSA9Cisg
ICAgICAgIHN0YXRpY19jYXN0PGludDY0X3Q+KGJpdHJhdGVCcHMgKiBrTGltaXRUb0F2ZXJhZ2VC
aXRSYXRlRmFjdG9yIC8gOCk7CisgICAgQ0ZOdW1iZXJSZWYgYnl0ZXNQZXJTZWNvbmQgPQorICAg
ICAgICBDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJTSW50NjRU
eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAmZGF0YUxpbWl0Qnl0ZXNQZXJTZWNvbmRWYWx1
ZSk7CisgICAgaW50NjRfdCBvbmVTZWNvbmRWYWx1ZSA9IDE7CisgICAgQ0ZOdW1iZXJSZWYgb25l
U2Vjb25kID0gQ0ZOdW1iZXJDcmVhdGUoCisgICAgICAgIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtD
Rk51bWJlclNJbnQ2NFR5cGUsICZvbmVTZWNvbmRWYWx1ZSk7CisgICAgY29uc3Qgdm9pZCogbnVt
c1syXSA9IHtieXRlc1BlclNlY29uZCwgb25lU2Vjb25kfTsKKyAgICBDRkFycmF5UmVmIGRhdGFS
YXRlTGltaXRzID0KKyAgICAgICAgQ0ZBcnJheUNyZWF0ZShudWxscHRyLCBudW1zLCAyLCAma0NG
VHlwZUFycmF5Q2FsbEJhY2tzKTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBWVFNlc3Npb25TZXRQ
cm9wZXJ0eSgKKyAgICAgICAgX2NvbXByZXNzaW9uU2Vzc2lvbiwga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9EYXRhUmF0ZUxpbWl0cywKKyAgICAgICAgZGF0YVJhdGVMaW1pdHMpOworICAgIGlm
IChieXRlc1BlclNlY29uZCkgeworICAgICAgQ0ZSZWxlYXNlKGJ5dGVzUGVyU2Vjb25kKTsKKyAg
ICB9CisgICAgaWYgKG9uZVNlY29uZCkgeworICAgICAgQ0ZSZWxlYXNlKG9uZVNlY29uZCk7Cisg
ICAgfQorICAgIGlmIChkYXRhUmF0ZUxpbWl0cykgeworICAgICAgQ0ZSZWxlYXNlKGRhdGFSYXRl
TGltaXRzKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgICAgUlRDX0xP
RyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBzZXQgZGF0YSByYXRlIGxpbWl0IjsKKyAgICB9CisK
KyAgICBfZW5jb2RlckJpdHJhdGVCcHMgPSBiaXRyYXRlQnBzOworICB9Cit9CisKKy0gKHZvaWQp
ZnJhbWVXYXNFbmNvZGVkOihPU1N0YXR1cylzdGF0dXMKKyAgICAgICAgICAgICAgICAgIGZsYWdz
OihWVEVuY29kZUluZm9GbGFncylpbmZvRmxhZ3MKKyAgICAgICAgICAgc2FtcGxlQnVmZmVyOihD
TVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKKyAgICAgICAgICAgICAgICAgIHdpZHRoOihp
bnQzMl90KXdpZHRoCisgICAgICAgICAgICAgICAgIGhlaWdodDooaW50MzJfdCloZWlnaHQKKyAg
ICAgICAgICAgcmVuZGVyVGltZU1zOihpbnQ2NF90KXJlbmRlclRpbWVNcworICAgICAgICAgICAg
ICB0aW1lc3RhbXA6KHVpbnQzMl90KXRpbWVzdGFtcAorICAgICAgICAgICAgICAgcm90YXRpb246
KFJUQ1ZpZGVvUm90YXRpb24pcm90YXRpb24geworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7Cisg
ICAgUlRDX0xPRyhMU19FUlJPUikgPDwgImgyNjUgZW5jb2RlIGZhaWxlZC4iOworICAgIHJldHVy
bjsKKyAgfQorICBpZiAoaW5mb0ZsYWdzICYga1ZURW5jb2RlSW5mb19GcmFtZURyb3BwZWQpIHsK
KyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJoMjY1IGVuY29kZXIgZHJvcHBlZCBhIGZyYW1lLiI7
CisgICAgcmV0dXJuOworICB9CisKKyAgQk9PTCBpc0tleWZyYW1lID0gTk87CisgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHMgPQorICAgICAgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50
c0FycmF5KHNhbXBsZUJ1ZmZlciwgMCk7CisgIGlmIChhdHRhY2htZW50cyAhPSBudWxscHRyICYm
IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50cykpIHsKKyAgICBDRkRpY3Rpb25hcnlSZWYgYXR0
YWNobWVudCA9CisgICAgICAgIHN0YXRpY19jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdl
dFZhbHVlQXRJbmRleChhdHRhY2htZW50cywgMCkpOworICAgIGlzS2V5ZnJhbWUgPQorICAgICAg
ICAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudCwga0NNU2FtcGxlQXR0YWNobWVu
dEtleV9Ob3RTeW5jKTsKKyAgfQorCisgIGlmIChpc0tleWZyYW1lKSB7CisgICAgUlRDX0xPRyhM
U19JTkZPKSA8PCAiR2VuZXJhdGVkIGtleWZyYW1lIjsKKyAgfQorCisgIC8vIENvbnZlcnQgdGhl
IHNhbXBsZSBidWZmZXIgaW50byBhIGJ1ZmZlciBzdWl0YWJsZSBmb3IgUlRQIHBhY2tldGl6YXRp
b24uCisgIC8vIFRPRE8odGtjaGluKTogQWxsb2NhdGUgYnVmZmVycyB0aHJvdWdoIGEgcG9vbC4K
KyAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QnVmZmVyPiBidWZmZXIobmV3IHJ0Yzo6QnVmZmVyKCkp
OworICBSVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyKiBoZWFkZXI7CisgIHsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8d2VicnRjOjpSVFBGcmFnbWVudGF0aW9uSGVhZGVyPiBoZWFkZXJfY3BwOworICAg
IGJvb2wgcmVzdWx0ID0gSDI2NUNNU2FtcGxlQnVmZmVyVG9Bbm5leEJCdWZmZXIoc2FtcGxlQnVm
ZmVyLCBpc0tleWZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnVmZmVyLmdldCgpLCAmaGVhZGVyX2NwcCk7CisgICAgaGVhZGVyID0gW1tS
VENSdHBGcmFnbWVudGF0aW9uSGVhZGVyIGFsbG9jXQorICAgICAgICBpbml0V2l0aE5hdGl2ZUZy
YWdtZW50YXRpb25IZWFkZXI6aGVhZGVyX2NwcC5nZXQoKV07CisgICAgaWYgKCFyZXN1bHQpIHsK
KyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY29udmVydCBzYW1wbGUgYnVm
ZmVyLiI7CisgICAgICByZXR1cm47CisgICAgfQorICB9CisKKyAgUlRDRW5jb2RlZEltYWdlKiBm
cmFtZSA9IFtbUlRDRW5jb2RlZEltYWdlIGFsbG9jXSBpbml0XTsKKyAgZnJhbWUuYnVmZmVyID0g
W05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5OmJ1ZmZlci0+ZGF0YSgpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aDpidWZmZXItPnNpemUoKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmcmVlV2hlbkRvbmU6Tk9dOworICBmcmFtZS5lbmNvZGVk
V2lkdGggPSB3aWR0aDsKKyAgZnJhbWUuZW5jb2RlZEhlaWdodCA9IGhlaWdodDsKKyAgZnJhbWUu
Y29tcGxldGVGcmFtZSA9IFlFUzsKKyAgZnJhbWUuZnJhbWVUeXBlID0KKyAgICAgIGlzS2V5ZnJh
bWUgPyBSVENGcmFtZVR5cGVWaWRlb0ZyYW1lS2V5IDogUlRDRnJhbWVUeXBlVmlkZW9GcmFtZURl
bHRhOworICBmcmFtZS5jYXB0dXJlVGltZU1zID0gcmVuZGVyVGltZU1zOworICBmcmFtZS50aW1l
U3RhbXAgPSB0aW1lc3RhbXA7CisgIGZyYW1lLnJvdGF0aW9uID0gcm90YXRpb247CisgIGZyYW1l
LmNvbnRlbnRUeXBlID0gKF9tb2RlID09IFJUQ1ZpZGVvQ29kZWNNb2RlU2NyZWVuc2hhcmluZykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgPyBSVENWaWRlb0NvbnRlbnRUeXBlU2NyZWVuc2hh
cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSVENWaWRlb0NvbnRlbnRUeXBlVW5zcGVj
aWZpZWQ7CisgIGZyYW1lLmZsYWdzID0gd2VicnRjOjpWaWRlb1NlbmRUaW1pbmc6OmtJbnZhbGlk
OworCisgIC8vIEZJWE1FOiBRUCBpcyBpZ25vcmVkIGJlY2F1c2UgdGhlcmUgaXMgbm8gSC4yNjUg
Yml0c3RyZWFtIHBhcnNlci4KKworICBCT09MIHJlcyA9IF9jYWxsYmFjayhmcmFtZSwgW1tSVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUgYWxsb2NdIGluaXRdLCBoZWFkZXIpOworICBpZiAoIXJlcykg
eworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJFbmNvZGUgY2FsbGJhY2sgZmFpbGVkLiI7Cisg
ICAgcmV0dXJuOworICB9CisgIF9iaXRyYXRlQWRqdXN0ZXItPlVwZGF0ZShmcmFtZS5idWZmZXIu
bGVuZ3RoKTsKK30KKworLSAoUlRDVmlkZW9FbmNvZGVyUXBUaHJlc2hvbGRzKilzY2FsaW5nU2V0
dGluZ3MgeworICByZXR1cm4gW1tSVENWaWRlb0VuY29kZXJRcFRocmVzaG9sZHMgYWxsb2NdCisg
ICAgICBpbml0V2l0aFRocmVzaG9sZHNMb3c6a0xvd2gyNjVRcFRocmVzaG9sZAorICAgICAgICAg
ICAgICAgICAgICAgICBoaWdoOmtIaWdoaDI2NVFwVGhyZXNob2xkXTsKK30KKworQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmNjIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9uYWx1X3Jld3JpdGVyLmNjCmluZGV4IGRjMjU4ZDYwNjRhMGZlZWEwMDZlZTI5ODJlMDAz
N2IwNTViYmEzNzMuLmRkZjczNDYwNTExNWJjN2I3NGYxMjgyOWE0Y2RlY2NmMzQ0MGZjZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuY2MKQEAgLTI0OCw2ICsyNDgsMjI5IEBAIGJvb2wgSDI2
NEFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZl
ciwKICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citib29sIEgyNjVD
TVNhbXBsZUJ1ZmZlclRvQW5uZXhCQnVmZmVyKAorICAgIENNU2FtcGxlQnVmZmVyUmVmIGh2Y2Nf
c2FtcGxlX2J1ZmZlciwKKyAgICBib29sIGlzX2tleWZyYW1lLAorICAgIHJ0Yzo6QnVmZmVyKiBh
bm5leGJfYnVmZmVyLAorICAgIHN0ZDo6dW5pcXVlX3B0cjxSVFBGcmFnbWVudGF0aW9uSGVhZGVy
PiAqb3V0X2hlYWRlcikgeworICBSVENfRENIRUNLKGh2Y2Nfc2FtcGxlX2J1ZmZlcik7CisgIFJU
Q19EQ0hFQ0sob3V0X2hlYWRlcik7CisgIG91dF9oZWFkZXItPnJlc2V0KG51bGxwdHIpOworCisg
IC8vIEdldCBmb3JtYXQgZGVzY3JpcHRpb24gZnJvbSB0aGUgc2FtcGxlIGJ1ZmZlci4KKyAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2NyaXB0aW9uID0KKyAgICAgIENNU2FtcGxlQnVm
ZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oaHZjY19zYW1wbGVfYnVmZmVyKTsKKyAgaWYgKGRlc2Ny
aXB0aW9uID09IG51bGxwdHIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRv
IGdldCBzYW1wbGUgYnVmZmVyJ3MgZGVzY3JpcHRpb24uIjsKKyAgICByZXR1cm4gZmFsc2U7Cisg
IH0KKworICAvLyBHZXQgcGFyYW1ldGVyIHNldCBpbmZvcm1hdGlvbi4KKyAgaW50IG5hbHVfaGVh
ZGVyX3NpemUgPSAwOworICBzaXplX3QgcGFyYW1fc2V0X2NvdW50ID0gMDsKKyAgT1NTdGF0dXMg
c3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0SEVWQ1BhcmFtZXRlclNldEF0SW5k
ZXgoCisgICAgICBkZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgJnBhcmFtX3NldF9j
b3VudCwgJm5hbHVfaGVhZGVyX3NpemUpOworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAg
UlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgcGFyYW1ldGVyIHNldC4iOworICAg
IHJldHVybiBmYWxzZTsKKyAgfQorICBSVENfQ0hFQ0tfRVEobmFsdV9oZWFkZXJfc2l6ZSwga0F2
Y2NIZWFkZXJCeXRlU2l6ZSk7CisgIFJUQ19EQ0hFQ0tfRVEocGFyYW1fc2V0X2NvdW50LCAzKTsK
KworICAvLyBUcnVuY2F0ZSBhbnkgcHJldmlvdXMgZGF0YSBpbiB0aGUgYnVmZmVyIHdpdGhvdXQg
Y2hhbmdpbmcgaXRzIGNhcGFjaXR5LgorICBhbm5leGJfYnVmZmVyLT5TZXRTaXplKDApOworCisg
IHNpemVfdCBuYWx1X29mZnNldCA9IDA7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4gZnJhZ19vZmZz
ZXRzOworICBzdGQ6OnZlY3RvcjxzaXplX3Q+IGZyYWdfbGVuZ3RoczsKKworICAvLyBQbGFjZSBh
bGwgcGFyYW1ldGVyIHNldHMgYXQgdGhlIGZyb250IG9mIGJ1ZmZlci4KKyAgaWYgKGlzX2tleWZy
YW1lKSB7CisgICAgc2l6ZV90IHBhcmFtX3NldF9zaXplID0gMDsKKyAgICBjb25zdCB1aW50OF90
KiBwYXJhbV9zZXQgPSBudWxscHRyOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1f
c2V0X2NvdW50OyArK2kpIHsKKyAgICAgIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkdldEhFVkNQYXJhbWV0ZXJTZXRBdEluZGV4KAorICAgICAgICAgIGRlc2NyaXB0aW9uLCBpLCAm
cGFyYW1fc2V0LCAmcGFyYW1fc2V0X3NpemUsIG51bGxwdHIsIG51bGxwdHIpOworICAgICAgaWYg
KHN0YXR1cyAhPSBub0VycikgeworICAgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVk
IHRvIGdldCBwYXJhbWV0ZXIgc2V0LiI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0K
KyAgICAgIC8vIFVwZGF0ZSBidWZmZXIuCisgICAgICBhbm5leGJfYnVmZmVyLT5BcHBlbmREYXRh
KGtBbm5leEJIZWFkZXJCeXRlcywgc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykpOworICAgICAg
YW5uZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihw
YXJhbV9zZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbV9zZXRfc2l6
ZSk7CisgICAgICAvLyBVcGRhdGUgZnJhZ21lbnRhdGlvbi4KKyAgICAgIGZyYWdfb2Zmc2V0cy5w
dXNoX2JhY2sobmFsdV9vZmZzZXQgKyBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAg
ICBmcmFnX2xlbmd0aHMucHVzaF9iYWNrKHBhcmFtX3NldF9zaXplKTsKKyAgICAgIG5hbHVfb2Zm
c2V0ICs9IHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpICsgcGFyYW1fc2V0X3NpemU7CisgICAg
fQorICB9CisKKyAgLy8gR2V0IGJsb2NrIGJ1ZmZlciBmcm9tIHRoZSBzYW1wbGUgYnVmZmVyLgor
ICBDTUJsb2NrQnVmZmVyUmVmIGJsb2NrX2J1ZmZlciA9CisgICAgICBDTVNhbXBsZUJ1ZmZlckdl
dERhdGFCdWZmZXIoaHZjY19zYW1wbGVfYnVmZmVyKTsKKyAgaWYgKGJsb2NrX2J1ZmZlciA9PSBu
dWxscHRyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgc2FtcGxl
IGJ1ZmZlcidzIGJsb2NrIGJ1ZmZlci4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBDTUJs
b2NrQnVmZmVyUmVmIGNvbnRpZ3VvdXNfYnVmZmVyID0gbnVsbHB0cjsKKyAgLy8gTWFrZSBzdXJl
IGJsb2NrIGJ1ZmZlciBpcyBjb250aWd1b3VzLgorICBpZiAoIUNNQmxvY2tCdWZmZXJJc1Jhbmdl
Q29udGlndW91cyhibG9ja19idWZmZXIsIDAsIDApKSB7CisgICAgc3RhdHVzID0gQ01CbG9ja0J1
ZmZlckNyZWF0ZUNvbnRpZ3VvdXMoCisgICAgICAgIG51bGxwdHIsIGJsb2NrX2J1ZmZlciwgbnVs
bHB0ciwgbnVsbHB0ciwgMCwgMCwgMCwgJmNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICBpZiAoc3Rh
dHVzICE9IG5vRXJyKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGZs
YXR0ZW4gbm9uLWNvbnRpZ3VvdXMgYmxvY2sgYnVmZmVyOiAiCisgICAgICAgICAgICAgICAgICAg
ICAgICA8PCBzdGF0dXM7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9IGVsc2Ugewor
ICAgIGNvbnRpZ3VvdXNfYnVmZmVyID0gYmxvY2tfYnVmZmVyOworICAgIC8vIFJldGFpbiB0byBt
YWtlIGNsZWFudXAgZWFzaWVyLgorICAgIENGUmV0YWluKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAg
ICBibG9ja19idWZmZXIgPSBudWxscHRyOworICB9CisKKyAgLy8gTm93IGNvcHkgdGhlIGFjdHVh
bCBkYXRhLgorICBjaGFyKiBkYXRhX3B0ciA9IG51bGxwdHI7CisgIHNpemVfdCBibG9ja19idWZm
ZXJfc2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKGNvbnRpZ3VvdXNfYnVmZmVyKTsK
KyAgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKGNvbnRpZ3VvdXNfYnVmZmVy
LCAwLCBudWxscHRyLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJmRhdGFfcHRyKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0co
TFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IGJsb2NrIGJ1ZmZlciBkYXRhLiI7CisgICAgQ0ZS
ZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgc2l6
ZV90IGJ5dGVzX3JlbWFpbmluZyA9IGJsb2NrX2J1ZmZlcl9zaXplOworICB3aGlsZSAoYnl0ZXNf
cmVtYWluaW5nID4gMCkgeworICAgIC8vIFRoZSBzaXplIHR5cGUgaGVyZSBtdXN0IG1hdGNoIHxu
YWx1X2hlYWRlcl9zaXplfCwgd2UgZXhwZWN0IDQgYnl0ZXMuCisgICAgLy8gUmVhZCB0aGUgbGVu
Z3RoIG9mIHRoZSBuZXh0IHBhY2tldCBvZiBkYXRhLiBNdXN0IGNvbnZlcnQgZnJvbSBiaWcgZW5k
aWFuCisgICAgLy8gdG8gaG9zdCBlbmRpYW4uCisgICAgUlRDX0RDSEVDS19HRShieXRlc19yZW1h
aW5pbmcsIChzaXplX3QpbmFsdV9oZWFkZXJfc2l6ZSk7CisgICAgdWludDMyX3QqIHVpbnQzMl9k
YXRhX3B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihkYXRhX3B0cik7CisgICAgdWlu
dDMyX3QgcGFja2V0X3NpemUgPSBDRlN3YXBJbnQzMkJpZ1RvSG9zdCgqdWludDMyX2RhdGFfcHRy
KTsKKyAgICAvLyBVcGRhdGUgYnVmZmVyLgorICAgIGFubmV4Yl9idWZmZXItPkFwcGVuZERhdGEo
a0FubmV4QkhlYWRlckJ5dGVzLCBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAgYW5u
ZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShkYXRhX3B0ciArIG5hbHVfaGVhZGVyX3NpemUsIHBhY2tl
dF9zaXplKTsKKyAgICAvLyBVcGRhdGUgZnJhZ21lbnRhdGlvbi4KKyAgICBmcmFnX29mZnNldHMu
cHVzaF9iYWNrKG5hbHVfb2Zmc2V0ICsgc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykpOworICAg
IGZyYWdfbGVuZ3Rocy5wdXNoX2JhY2socGFja2V0X3NpemUpOworICAgIG5hbHVfb2Zmc2V0ICs9
IHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpICsgcGFja2V0X3NpemU7CisKKyAgICBzaXplX3Qg
Ynl0ZXNfd3JpdHRlbiA9IHBhY2tldF9zaXplICsgc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcyk7
CisgICAgYnl0ZXNfcmVtYWluaW5nIC09IGJ5dGVzX3dyaXR0ZW47CisgICAgZGF0YV9wdHIgKz0g
Ynl0ZXNfd3JpdHRlbjsKKyAgfQorICBSVENfRENIRUNLX0VRKGJ5dGVzX3JlbWFpbmluZywgKHNp
emVfdCkwKTsKKworICBzdGQ6OnVuaXF1ZV9wdHI8UlRQRnJhZ21lbnRhdGlvbkhlYWRlcj4gaGVh
ZGVyKG5ldyBSVFBGcmFnbWVudGF0aW9uSGVhZGVyKCkpOworICBoZWFkZXItPlZlcmlmeUFuZEFs
bG9jYXRlRnJhZ21lbnRhdGlvbkhlYWRlcihmcmFnX29mZnNldHMuc2l6ZSgpKTsKKyAgUlRDX0RD
SEVDS19FUShmcmFnX2xlbmd0aHMuc2l6ZSgpLCBmcmFnX29mZnNldHMuc2l6ZSgpKTsKKyAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBmcmFnX29mZnNldHMuc2l6ZSgpOyArK2kpIHsKKyAgICBoZWFk
ZXItPmZyYWdtZW50YXRpb25PZmZzZXRbaV0gPSBmcmFnX29mZnNldHNbaV07CisgICAgaGVhZGVy
LT5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldID0gZnJhZ19sZW5ndGhzW2ldOworICB9CisgICpvdXRf
aGVhZGVyID0gc3RkOjptb3ZlKGhlYWRlcik7CisgIENGUmVsZWFzZShjb250aWd1b3VzX2J1ZmZl
cik7CisgIHJldHVybiB0cnVlOworfQorCitib29sIEgyNjVBbm5leEJCdWZmZXJUb0NNU2FtcGxl
QnVmZmVyKGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2
aWRlb19mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNU2Ft
cGxlQnVmZmVyUmVmKiBvdXRfc2FtcGxlX2J1ZmZlcikgeworICBSVENfRENIRUNLKGFubmV4Yl9i
dWZmZXIpOworICBSVENfRENIRUNLKG91dF9zYW1wbGVfYnVmZmVyKTsKKyAgUlRDX0RDSEVDSyh2
aWRlb19mb3JtYXQpOworICAqb3V0X3NhbXBsZV9idWZmZXIgPSBudWxscHRyOworCisgIEFubmV4
QkJ1ZmZlclJlYWRlciByZWFkZXIoYW5uZXhiX2J1ZmZlciwgYW5uZXhiX2J1ZmZlcl9zaXplKTsK
KyAgaWYgKHJlYWRlci5TZWVrVG9OZXh0TmFsdU9mVHlwZShIMjY1OjprVnBzKSkgeworICAgIC8v
IEJ1ZmZlciBjb250YWlucyBhbiBTUFMgTkFMVSAtIHNraXAgaXQgYW5kIHRoZSBmb2xsb3dpbmcg
UFBTCisgICAgY29uc3QgdWludDhfdCogZGF0YTsKKyAgICBzaXplX3QgZGF0YV9sZW47CisgICAg
aWYgKCFyZWFkZXIuUmVhZE5hbHUoJmRhdGEsICZkYXRhX2xlbikpIHsKKyAgICAgIFJUQ19MT0co
TFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBWUFMiOworICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmZGF0YSwgJmRhdGFfbGVuKSkgeworICAg
ICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byByZWFkIFNQUyI7CisgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIGlmICghcmVhZGVyLlJlYWROYWx1KCZkYXRhLCAmZGF0YV9s
ZW4pKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgUFBTIjsK
KyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgLy8gTm8gU1BTIE5B
TFUgLSBzdGFydCByZWFkaW5nIGZyb20gdGhlIGZpcnN0IE5BTFUgaW4gdGhlIGJ1ZmZlcgorICAg
IHJlYWRlci5TZWVrVG9TdGFydCgpOworICB9CisKKyAgLy8gQWxsb2NhdGUgbWVtb3J5IGFzIGEg
YmxvY2sgYnVmZmVyLgorICAvLyBUT0RPKHRrY2hpbik6IGZpZ3VyZSBvdXQgaG93IHRvIHVzZSBh
IHBvb2wuCisgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tfYnVmZmVyID0gbnVsbHB0cjsKKyAgT1NT
dGF0dXMgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jaygKKyAgICAg
IG51bGxwdHIsIG51bGxwdHIsIHJlYWRlci5CeXRlc1JlbWFpbmluZygpLCBudWxscHRyLCBudWxs
cHRyLCAwLAorICAgICAgcmVhZGVyLkJ5dGVzUmVtYWluaW5nKCksIGtDTUJsb2NrQnVmZmVyQXNz
dXJlTWVtb3J5Tm93RmxhZywKKyAgICAgICZibG9ja19idWZmZXIpOworICBpZiAoc3RhdHVzICE9
IGtDTUJsb2NrQnVmZmVyTm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVk
IHRvIGNyZWF0ZSBibG9jayBidWZmZXIuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICAv
LyBNYWtlIHN1cmUgYmxvY2sgYnVmZmVyIGlzIGNvbnRpZ3VvdXMuCisgIENNQmxvY2tCdWZmZXJS
ZWYgY29udGlndW91c19idWZmZXIgPSBudWxscHRyOworICBpZiAoIUNNQmxvY2tCdWZmZXJJc1Jh
bmdlQ29udGlndW91cyhibG9ja19idWZmZXIsIDAsIDApKSB7CisgICAgc3RhdHVzID0gQ01CbG9j
a0J1ZmZlckNyZWF0ZUNvbnRpZ3VvdXMoCisgICAgICAgIG51bGxwdHIsIGJsb2NrX2J1ZmZlciwg
bnVsbHB0ciwgbnVsbHB0ciwgMCwgMCwgMCwgJmNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICBpZiAo
c3RhdHVzICE9IG5vRXJyKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRv
IGZsYXR0ZW4gbm9uLWNvbnRpZ3VvdXMgYmxvY2sgYnVmZmVyOiAiCisgICAgICAgICAgICAgICAg
ICAgICAgICA8PCBzdGF0dXM7CisgICAgICBDRlJlbGVhc2UoYmxvY2tfYnVmZmVyKTsKKyAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgY29udGlndW91c19idWZmZXIg
PSBibG9ja19idWZmZXI7CisgICAgYmxvY2tfYnVmZmVyID0gbnVsbHB0cjsKKyAgfQorCisgIC8v
IEdldCBhIHJhdyBwb2ludGVyIGludG8gYWxsb2NhdGVkIG1lbW9yeS4KKyAgc2l6ZV90IGJsb2Nr
X2J1ZmZlcl9zaXplID0gMDsKKyAgY2hhciogZGF0YV9wdHIgPSBudWxscHRyOworICBzdGF0dXMg
PSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIoY29udGlndW91c19idWZmZXIsIDAsIG51bGxw
dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYmxvY2tfYnVmZmVy
X3NpemUsICZkYXRhX3B0cik7CisgIGlmIChzdGF0dXMgIT0ga0NNQmxvY2tCdWZmZXJOb0Vycikg
eworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IGJsb2NrIGJ1ZmZlciBk
YXRhIHBvaW50ZXIuIjsKKyAgICBDRlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOworICAgIHJl
dHVybiBmYWxzZTsKKyAgfQorICBSVENfRENIRUNLKGJsb2NrX2J1ZmZlcl9zaXplID09IHJlYWRl
ci5CeXRlc1JlbWFpbmluZygpKTsKKworICAvLyBXcml0ZSBBdmNjIE5BTFVzIGludG8gYmxvY2sg
YnVmZmVyIG1lbW9yeS4KKyAgQXZjY0J1ZmZlcldyaXRlciB3cml0ZXIocmVpbnRlcnByZXRfY2Fz
dDx1aW50OF90Kj4oZGF0YV9wdHIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19i
dWZmZXJfc2l6ZSk7CisgIHdoaWxlIChyZWFkZXIuQnl0ZXNSZW1haW5pbmcoKSA+IDApIHsKKyAg
ICBjb25zdCB1aW50OF90KiBuYWx1X2RhdGFfcHRyID0gbnVsbHB0cjsKKyAgICBzaXplX3QgbmFs
dV9kYXRhX3NpemUgPSAwOworICAgIGlmIChyZWFkZXIuUmVhZE5hbHUoJm5hbHVfZGF0YV9wdHIs
ICZuYWx1X2RhdGFfc2l6ZSkpIHsKKyAgICAgIHdyaXRlci5Xcml0ZU5hbHUobmFsdV9kYXRhX3B0
ciwgbmFsdV9kYXRhX3NpemUpOworICAgIH0KKyAgfQorCisgIC8vIENyZWF0ZSBzYW1wbGUgYnVm
ZmVyLgorICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZShudWxscHRyLCBjb250aWd1b3Vz
X2J1ZmZlciwgdHJ1ZSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bnVsbHB0ciwgdmlkZW9fZm9ybWF0LCAxLCAwLCBudWxscHRyLCAwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudWxscHRyLCBvdXRfc2FtcGxlX2J1ZmZlcik7CisgIGlmIChzdGF0
dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0
ZSBzYW1wbGUgYnVmZmVyLiI7CisgICAgQ0ZSZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAg
ICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQ0ZSZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAg
cmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwogQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIENy
ZWF0ZVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCiAgICAgY29uc3QgdWludDhfdCogYW5uZXhiX2J1
ZmZlciwKICAgICBzaXplX3QgYW5uZXhiX2J1ZmZlcl9zaXplKSB7CkBAIC0yNzgsNiArNTAxLDQz
IEBAIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBDcmVhdGVWaWRlb0Zvcm1hdERlc2NyaXB0
aW9uKAogICByZXR1cm4gZGVzY3JpcHRpb247CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgQ3JlYXRlSDI2NVZpZGVvRm9ybWF0RGVzY3JpcHRp
b24oCisgICAgY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKKyAgICBzaXplX3QgYW5uZXhi
X2J1ZmZlcl9zaXplKSB7CisgIGNvbnN0IHVpbnQ4X3QqIHBhcmFtX3NldF9wdHJzWzNdID0ge307
CisgIHNpemVfdCBwYXJhbV9zZXRfc2l6ZXNbM10gPSB7fTsKKyAgQW5uZXhCQnVmZmVyUmVhZGVy
IHJlYWRlcihhbm5leGJfYnVmZmVyLCBhbm5leGJfYnVmZmVyX3NpemUpOworICAvLyBTa2lwIGV2
ZXJ5dGluZyBiZWZvcmUgdGhlIFZQUywgdGhlbiByZWFkIHRoZSBWUFMsIFNQUyBhbmQgUFBTCisg
IGlmICghcmVhZGVyLlNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjU6OmtWcHMpKSB7CisgICAgcmV0
dXJuIG51bGxwdHI7CisgIH0KKyAgaWYgKCFyZWFkZXIuUmVhZE5hbHUoJnBhcmFtX3NldF9wdHJz
WzBdLCAmcGFyYW1fc2V0X3NpemVzWzBdKSkgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJG
YWlsZWQgdG8gcmVhZCBWUFMiOworICAgIHJldHVybiBudWxscHRyOworICB9CisgIGlmICghcmVh
ZGVyLlJlYWROYWx1KCZwYXJhbV9zZXRfcHRyc1sxXSwgJnBhcmFtX3NldF9zaXplc1sxXSkpIHsK
KyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgU1BTIjsKKyAgICByZXR1
cm4gbnVsbHB0cjsKKyAgfQorICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmcGFyYW1fc2V0X3B0cnNb
Ml0sICZwYXJhbV9zZXRfc2l6ZXNbMl0pKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZh
aWxlZCB0byByZWFkIFBQUyI7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKworICAvLyBQYXJz
ZSB0aGUgU1BTIGFuZCBQUFMgaW50byBhIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbi4KKyAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2NyaXB0aW9uID0gbnVsbHB0cjsKKyAgT1NTdGF0
dXMgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRnJvbUhFVkNQYXJhbWV0
ZXJTZXRzKAorICAgICAga0NGQWxsb2NhdG9yRGVmYXVsdCwgMywgcGFyYW1fc2V0X3B0cnMsIHBh
cmFtX3NldF9zaXplcywgNCwgbnVsbHB0ciwKKyAgICAgICZkZXNjcmlwdGlvbik7CisgIGlmIChz
dGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNy
ZWF0ZSB2aWRlbyBmb3JtYXQgZGVzY3JpcHRpb24uIjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAg
fQorICByZXR1cm4gZGVzY3JpcHRpb247Cit9CisjZW5kaWYKKwogQW5uZXhCQnVmZmVyUmVhZGVy
OjpBbm5leEJCdWZmZXJSZWFkZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgpCiAgICAgOiBz
dGFydF8oYW5uZXhiX2J1ZmZlciksIGxlbmd0aF8obGVuZ3RoKSB7CkBAIC0zMjQsNiArNTg0LDE5
IEBAIGJvb2wgQW5uZXhCQnVmZmVyUmVhZGVyOjpTZWVrVG9OZXh0TmFsdU9mVHlwZShOYWx1VHlw
ZSB0eXBlKSB7CiAgIH0KICAgcmV0dXJuIGZhbHNlOwogfQorCisjaWZuZGVmIERJU0FCTEVfSDI2
NQorYm9vbCBBbm5leEJCdWZmZXJSZWFkZXI6OlNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjU6Ok5h
bHVUeXBlIHR5cGUpIHsKKyAgZm9yICg7IG9mZnNldF8gIT0gb2Zmc2V0c18uZW5kKCk7ICsrb2Zm
c2V0XykgeworICAgIGlmIChvZmZzZXRfLT5wYXlsb2FkX3NpemUgPCAxKQorICAgICAgY29udGlu
dWU7CisgICAgaWYgKEgyNjU6OlBhcnNlTmFsdVR5cGUoKihzdGFydF8gKyBvZmZzZXRfLT5wYXls
b2FkX3N0YXJ0X29mZnNldCkpID09IHR5cGUpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICBy
ZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogQXZjY0J1ZmZlcldyaXRlcjo6QXZjY0J1ZmZlcldy
aXRlcih1aW50OF90KiBjb25zdCBhdmNjX2J1ZmZlciwgc2l6ZV90IGxlbmd0aCkKICAgICA6IHN0
YXJ0XyhhdmNjX2J1ZmZlciksIG9mZnNldF8oMCksIGxlbmd0aF8obGVuZ3RoKSB7CiAgIFJUQ19E
Q0hFQ0soYXZjY19idWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jl
d3JpdGVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuaAppbmRleCBhMGMxYWE5
MGFmNTc1OWRlMzliNWQwNmMyMjFkMjg0Mjk0Mzg5ODc2Li40ZGExY2M1N2M3ZDEwYThiZjM2YTI4
OGQ3MzFjM2M4NjEwZWQ1N2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3
cml0ZXIuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuaApAQCAtMTgsNiAr
MTgsOSBAQAogI2luY2x1ZGUgPHZlY3Rvcj4KIAogI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0
L2gyNjRfY29tbW9uLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgImNvbW1vbl92
aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL2luY2x1
ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgogI2luY2x1ZGUgInJ0Y19iYXNlL2J1ZmZlci5oIgog
CkBAIC00Nyw2ICs1MCwzMSBAQCBib29sIEgyNjRBbm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVy
KGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmKiBvdXRfc2FtcGxlX2J1ZmZlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01NZW1vcnlQb29sUmVmIG1lbW9yeV9w
b29sKTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKy8vIENvbnZlcnRzIGEgc2FtcGxlIGJ1ZmZl
ciBlbWl0dGVkIGZyb20gdGhlIFZpZGVvVG9vbGJveCBlbmNvZGVyIGludG8gYSBidWZmZXIKKy8v
IHN1aXRhYmxlIGZvciBSVFAuIFRoZSBzYW1wbGUgYnVmZmVyIGlzIGluIGh2Y2MgZm9ybWF0IHdo
ZXJlYXMgdGhlIHJ0cCBidWZmZXIKKy8vIG5lZWRzIHRvIGJlIGluIEFubmV4IEIgZm9ybWF0LiBE
YXRhIGlzIHdyaXR0ZW4gZGlyZWN0bHkgdG8gfGFubmV4Yl9idWZmZXJ8CisvLyBhbmQgYSBuZXcg
UlRQRnJhZ21lbnRhdGlvbkhlYWRlciBpcyByZXR1cm5lZCBpbiB8b3V0X2hlYWRlcnwuCitib29s
IEgyNjVDTVNhbXBsZUJ1ZmZlclRvQW5uZXhCQnVmZmVyKAorICAgIENNU2FtcGxlQnVmZmVyUmVm
IGh2Y2Nfc2FtcGxlX2J1ZmZlciwKKyAgICBib29sIGlzX2tleWZyYW1lLAorICAgIHJ0Yzo6QnVm
ZmVyKiBhbm5leGJfYnVmZmVyLAorICAgIHN0ZDo6dW5pcXVlX3B0cjxSVFBGcmFnbWVudGF0aW9u
SGVhZGVyPiAqb3V0X2hlYWRlcikKKyAgICBfX09TWF9BVkFJTEFCTEVfU1RBUlRJTkcoX19NQUNf
MTBfMTIsIF9fSVBIT05FXzExXzApOworCisgLy8gQ29udmVydHMgYSBidWZmZXIgcmVjZWl2ZWQg
ZnJvbSBSVFAgaW50byBhIHNhbXBsZSBidWZmZXIgc3VpdGFibGUgZm9yIHRoZQorLy8gVmlkZW9U
b29sYm94IGRlY29kZXIuIFRoZSBSVFAgYnVmZmVyIGlzIGluIGFubmV4IGIgZm9ybWF0IHdoZXJl
YXMgdGhlIHNhbXBsZQorLy8gYnVmZmVyIGlzIGluIGh2Y2MgZm9ybWF0LgorLy8gSWYgfGlzX2tl
eWZyYW1lfCBpcyB0cnVlIHRoZW4gfHZpZGVvX2Zvcm1hdHwgaXMgaWdub3JlZCBzaW5jZSB0aGUg
Zm9ybWF0IHdpbGwKKy8vIGJlIHJlYWQgZnJvbSB0aGUgYnVmZmVyLiBPdGhlcndpc2UgfHZpZGVv
X2Zvcm1hdHwgbXVzdCBiZSBwcm92aWRlZC4KKy8vIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3Ig
cmVsZWFzaW5nIHRoZSBjcmVhdGVkIHNhbXBsZSBidWZmZXIuCitib29sIEgyNjVBbm5leEJCdWZm
ZXJUb0NNU2FtcGxlQnVmZmVyKGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvblJlZiB2aWRlb19mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENNU2FtcGxlQnVmZmVyUmVmKiBvdXRfc2FtcGxlX2J1ZmZlcikKKyAgICBfX09TWF9B
VkFJTEFCTEVfU1RBUlRJTkcoX19NQUNfMTBfMTIsIF9fSVBIT05FXzExXzApOworI2VuZGlmCisK
IC8vIFJldHVybnMgYSB2aWRlbyBmb3JtYXQgZGVzY3JpcHRpb24gY3JlYXRlZCBmcm9tIHRoZSBz
cHMvcHBzIGluZm9ybWF0aW9uIGluCiAvLyB0aGUgQW5uZXggQiBidWZmZXIuIElmIHRoZXJlIGlz
IG5vIHN1Y2ggaW5mb3JtYXRpb24sIG51bGxwdHIgaXMgcmV0dXJuZWQuCiAvLyBUaGUgY2FsbGVy
IGlzIHJlc3BvbnNpYmxlIGZvciByZWxlYXNpbmcgdGhlIGRlc2NyaXB0aW9uLgpAQCAtNTQsNiAr
ODIsMTMgQEAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIENyZWF0ZVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb24oCiAgICAgY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICBzaXplX3Qg
YW5uZXhiX2J1ZmZlcl9zaXplKTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK0NNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBDcmVhdGVIMjY1VmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKKyAgICBj
b25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAorICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3Np
emUpCisgICAgX19PU1hfQVZBSUxBQkxFX1NUQVJUSU5HKF9fTUFDXzEwXzEyLCBfX0lQSE9ORV8x
MV8wKTsKKyNlbmRpZgorCiAvLyBIZWxwZXIgY2xhc3MgZm9yIHJlYWRpbmcgTkFMVXMgZnJvbSBh
biBSVFAgQW5uZXggQiBidWZmZXIuCiBjbGFzcyBBbm5leEJCdWZmZXJSZWFkZXIgZmluYWwgewog
IHB1YmxpYzoKQEAgLTc4LDYgKzExMyw5IEBAIGNsYXNzIEFubmV4QkJ1ZmZlclJlYWRlciBmaW5h
bCB7CiAgIC8vIFJldHVybiB0cnVlIGlmIGEgTkFMVSBvZiB0aGUgZGVzaXJlZCB0eXBlIGlzIGZv
dW5kLCBmYWxzZSBpZiB3ZQogICAvLyByZWFjaGVkIHRoZSBlbmQgaW5zdGVhZAogICBib29sIFNl
ZWtUb05leHROYWx1T2ZUeXBlKEgyNjQ6Ok5hbHVUeXBlIHR5cGUpOworI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyAgYm9vbCBTZWVrVG9OZXh0TmFsdU9mVHlwZShIMjY1OjpOYWx1VHlwZSB0eXBlKTsK
KyNlbmRpZgogCiAgcHJpdmF0ZToKICAgLy8gUmV0dXJucyB0aGUgdGhlIG5leHQgb2Zmc2V0IHRo
YXQgY29udGFpbnMgTkFMVSBkYXRhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29k
ZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0KaW5kZXgg
NWFjYTAyZDVhYjBjMDQ3NWQzNzM4YjQ3NmVjZTlkMTQwMzkxZjc3MC4uMmNhNmQwZWE2OThiYzRm
ODkxOTZhMjFiNDI5ZDNmNzc4YmUyNWJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2Rl
Y29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1t
CkBAIC05Nyw3ICs5NywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyPiBPYmpDVmlk
ZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKAogICAgIGlmIChbY29kZWNOYW1l
IGlzRXF1YWxUb1N0cmluZzpjb2RlY0luZm8ubmFtZV0pIHsKICAgICAgIGlkPFJUQ1ZpZGVvRGVj
b2Rlcj4gZGVjb2RlciA9IFtkZWNvZGVyX2ZhY3RvcnlfIGNyZWF0ZURlY29kZXI6Y29kZWNJbmZv
XTsKIAotICAgICAgaWYgKFtkZWNvZGVyIGlzS2luZE9mQ2xhc3M6W1JUQ1dyYXBwZWROYXRpdmVW
aWRlb0RlY29kZXIgY2xhc3NdXSkgeworICAgICAgLy8gQmVjYXVzZSBvZiBzeW1ib2wgY29uZmxp
Y3QsIGlzS2luZE9mQ2xhc3MgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLgorICAgICAgLy8gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3ODIuCisgICAgICAv
LyBpZiAoW2RlY29kZXIgaXNLaW5kT2ZDbGFzczpbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rl
ciBjbGFzc11dKSB7CisgICAgICBpZiAoW2NvZGVjTmFtZSBpc0VxdWFsOkAiVlA4Il0gfHwgW2Nv
ZGVjTmFtZSBpc0VxdWFsOkAiVlA5Il0pIHsKICAgICAgICAgcmV0dXJuIFsoUlRDV3JhcHBlZE5h
dGl2ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIgcmVsZWFzZVdyYXBwZWREZWNvZGVyXTsKICAgICAg
IH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVvRGVjb2Rl
cj4obmV3IE9iakNWaWRlb0RlY29kZXIoZGVjb2RlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpj
X3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19lbmNvZGVyX2ZhY3Rv
cnkubW0KaW5kZXggYTc1NTMwN2M2YjdjZjI1NDg3ZjYyOWNiMDI0NjlkN2I5NGI0NGE3Ni4uMzM0
Njk4MTNhZjM0NGQyOWI0YWZkNjI5YzgwYTIyZDQzZTdlZGQzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9v
YmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rl
cl9mYWN0b3J5Lm1tCkBAIC0xNSw2ICsxNSw5IEBACiAjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRW5j
b2Rlci5oIgogI2ltcG9ydCAiYmFzZS9SVENWaWRlb0VuY29kZXJGYWN0b3J5LmgiCiAjaW1wb3J0
ICJjb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRl
LmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2ltcG9ydCAiY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oIgorI2VuZGlmCiAjaW1wb3J0ICJz
ZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDRW5jb2RlZEltYWdlK1ByaXZhdGUuaCIKICNp
bXBvcnQgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENSdHBGcmFnbWVudGF0aW9uSGVh
ZGVyK1ByaXZhdGUuaCIKICNpbXBvcnQgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENW
aWRlb0NvZGVjSW5mbytQcml2YXRlLmgiCkBAIC02NSw4ICs2OCwxNiBAQCBjbGFzcyBPYmpDVmlk
ZW9FbmNvZGVyIDogcHVibGljIFZpZGVvRW5jb2RlciB7CiAKICAgICAgIC8vIEhhbmRsZSB0eXBl
cyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgaW50byBvbmUgb2YgQ29kZWNTcGVjaWZpY0luZm8ncyBo
YXJkIGNvZGVkIGNhc2VzLgogICAgICAgQ29kZWNTcGVjaWZpY0luZm8gY29kZWNTcGVjaWZpY0lu
Zm87Ci0gICAgICBpZiAoW2luZm8gaXNLaW5kT2ZDbGFzczpbUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY0IGNsYXNzXV0pIHsKKyAgICAgIC8vIEJlY2F1c2Ugb2Ygc3ltYm9sIGNvbmZsaWN0LCBpc0tp
bmRPZkNsYXNzIGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZC4KKyAgICAgIC8vIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzgyLgorICAgICAgaWYgKFtOU1N0
cmluZ0Zyb21DbGFzcyhbaW5mbyBjbGFzc10pIGlzRXF1YWw6QCJXS19SVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjQiXSkgeworICAgICAgICAvLyBpZiAoW2luZm8gaXNLaW5kT2ZDbGFzczpbUlRDQ29k
ZWNTcGVjaWZpY0luZm9IMjY0IGNsYXNzXV0pIHsKICAgICAgICAgY29kZWNTcGVjaWZpY0luZm8g
PSBbKFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCAqKWluZm8gbmF0aXZlQ29kZWNTcGVjaWZpY0lu
Zm9dOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgIH0gZWxzZSBpZiAoW05TU3RyaW5nRnJv
bUNsYXNzKFtpbmZvIGNsYXNzXSkgaXNFcXVhbDpAIldLX1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NSJdKSB7CisgICAgICAgIC8vIGlmIChbaW5mbyBpc0tpbmRPZkNsYXNzOltSVENDb2RlY1NwZWNp
ZmljSW5mb0gyNjUgY2xhc3NdXSkgeworICAgICAgICBjb2RlY1NwZWNpZmljSW5mbyA9IFsoUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1ICopaW5mbyBuYXRpdmVDb2RlY1NwZWNpZmljSW5mb107Cisj
ZW5kaWYKICAgICAgIH0KIAogICAgICAgc3RkOjp1bmlxdWVfcHRyPFJUUEZyYWdtZW50YXRpb25I
ZWFkZXI+IGZyYWdtZW50YXRpb25IZWFkZXIgPQpAQCAtMTY3LDcgKzE3OCwxMCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8VmlkZW9FbmNvZGVyPiBPYmpDVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlk
ZW9FbmNvZGVyKAogICAgIGNvbnN0IFNkcFZpZGVvRm9ybWF0ICZmb3JtYXQpIHsKICAgUlRDVmlk
ZW9Db2RlY0luZm8gKmluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5h
dGl2ZVNkcFZpZGVvRm9ybWF0OmZvcm1hdF07CiAgIGlkPFJUQ1ZpZGVvRW5jb2Rlcj4gZW5jb2Rl
ciA9IFtlbmNvZGVyX2ZhY3RvcnlfIGNyZWF0ZUVuY29kZXI6aW5mb107Ci0gIGlmIChbZW5jb2Rl
ciBpc0tpbmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9FbmNvZGVyIGNsYXNzXV0pIHsK
KyAgLy8gQmVjYXVzZSBvZiBzeW1ib2wgY29uZmxpY3QsIGlzS2luZE9mQ2xhc3MgZG9lc24ndCB3
b3JrIGFzIGV4cGVjdGVkLgorICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5ODc4Mi4KKyAgLy8gaWYgKFtlbmNvZGVyIGlzS2luZE9mQ2xhc3M6W1JUQ1dy
YXBwZWROYXRpdmVWaWRlb0VuY29kZXIgY2xhc3NdXSkgeworICBpZiAoW2luZm8ubmFtZSBpc0Vx
dWFsOkAiVlA4Il0gfHwgW2luZm8ubmFtZSBpc0VxdWFsOkAiVlA5Il0pIHsKICAgICByZXR1cm4g
WyhSVENXcmFwcGVkTmF0aXZlVmlkZW9FbmNvZGVyICopZW5jb2RlciByZWxlYXNlV3JhcHBlZEVu
Y29kZXJdOwogICB9IGVsc2UgewogICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVv
RW5jb2Rlcj4obmV3IE9iakNWaWRlb0VuY29kZXIoZW5jb2RlcikpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0
cmVhbV9yZWNlaXZlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MKaW5kZXggODVmYjg4NjJmMjVm
MWUyMWY3NWJhMjE3OGNmZGNmNWQwNWYwN2E1My4uMDU4ZGYwYWU5NjZlNWQxMWVmYTI0ZTAzMDY0
OWM1NjI5MTlhMmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3Ry
ZWFtX3JlY2VpdmVyLmNjCkBAIC01ODcsNyArNTg3LDI0IEBAIHZvaWQgUnRwVmlkZW9TdHJlYW1S
ZWNlaXZlcjo6T25SZWNlaXZlZFBheWxvYWREYXRhKAogICAgICAgICBwYWNrZXQtPnZpZGVvX3Bh
eWxvYWQgPSBzdGQ6Om1vdmUoZml4ZWQuYml0c3RyZWFtKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQotCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB9IGVsc2UgaWYgKHBhY2tldC0+Y29kZWMoKSA9
PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICB2aWRlb19jb2Rpbmc6OkgyNjVWcHNTcHNQcHNUcmFj
a2VyOjpGaXhlZEJpdHN0cmVhbSBmaXhlZCA9CisgICAgICAgIGgyNjVfdHJhY2tlcl8uQ29weUFu
ZEZpeEJpdHN0cmVhbSgKKyAgICAgICAgICAgIHJ0Yzo6TWFrZUFycmF5Vmlldyhjb2RlY19wYXls
b2FkLmNkYXRhKCksIGNvZGVjX3BheWxvYWQuc2l6ZSgpKSwKKyAgICAgICAgICAgICZwYWNrZXQt
PnZpZGVvX2hlYWRlcik7CisgICAgc3dpdGNoIChmaXhlZC5hY3Rpb24pIHsKKyAgICAgIGNhc2Ug
dmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlcjo6a1JlcXVlc3RLZXlmcmFtZToKKyAg
ICAgICAgcnRjcF9mZWVkYmFja19idWZmZXJfLlJlcXVlc3RLZXlGcmFtZSgpOworICAgICAgICBy
dGNwX2ZlZWRiYWNrX2J1ZmZlcl8uU2VuZEJ1ZmZlcmVkUnRjcEZlZWRiYWNrKCk7CisgICAgICAg
IEFCU0xfRkFMTFRIUk9VR0hfSU5URU5ERUQ7CisgICAgICBjYXNlIHZpZGVvX2NvZGluZzo6SDI2
NVZwc1Nwc1Bwc1RyYWNrZXI6OmtEcm9wOgorICAgICAgICByZXR1cm47CisgICAgICBjYXNlIHZp
ZGVvX2NvZGluZzo6SDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OmtJbnNlcnQ6CisgICAgICAgIHBhY2tl
dC0+dmlkZW9fcGF5bG9hZCA9IHN0ZDo6bW92ZShmaXhlZC5iaXRzdHJlYW0pOworICAgICAgICBi
cmVhazsKKyAgICB9CisjZW5kaWYKICAgfSBlbHNlIHsKICAgICBwYWNrZXQtPnZpZGVvX3BheWxv
YWQgPSBzdGQ6Om1vdmUoY29kZWNfcGF5bG9hZCk7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1f
cmVjZWl2ZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Zp
ZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaAppbmRleCAwMzA3MGRiNTFkYzVkM2JiZjMw
ZTYxZmI4YWEwZWViZTk1ZTIyYTcxLi4zMzA0NTViMWI4NmJkNWZkM2U0MGQ1MzYzNmI2MDNlYzY3
MDM3N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNl
aXZlci5oCkBAIC0zOCw2ICszOCw5IEBACiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3Vy
Y2UvdmlkZW9fcnRwX2RlcGFja2V0aXplci5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29k
aW5nL2gyNjRfc3BzX3Bwc190cmFja2VyLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2Rp
bmcvbG9zc19ub3RpZmljYXRpb25fY29udHJvbGxlci5oIgorI2lmbmRlZiBESVNBQkxFX0gyNjUK
KyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIu
aCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9ydHBfZnJhbWVfcmVmZXJlbmNlX2Zp
bmRlci5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL3VuaXF1ZV90aW1lc3RhbXBf
Y291bnRlci5oIgpAQCAtMzE3LDYgKzMyMCwxMCBAQCBjbGFzcyBSdHBWaWRlb1N0cmVhbVJlY2Vp
dmVyIDogcHVibGljIExvc3NOb3RpZmljYXRpb25TZW5kZXIsCiAgIC8vIE1hcHMgcGF5bG9hZCBp
ZCB0byB0aGUgZGVwYWNrZXRpemVyLgogICBzdGQ6Om1hcDx1aW50OF90LCBzdGQ6OnVuaXF1ZV9w
dHI8VmlkZW9SdHBEZXBhY2tldGl6ZXI+PiBwYXlsb2FkX3R5cGVfbWFwXzsKIAorI2lmbmRlZiBE
SVNBQkxFX0gyNjUKKyAgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlciBoMjY1X3Ry
YWNrZXJfOworI2VuZGlmCisKICAgLy8gVE9ETyhqb2hhbik6IFJlbW92ZSBwdF9jb2RlY19wYXJh
bXNfIG9uY2UKICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3dlYnJ0Yy9pc3N1ZXMv
ZGV0YWlsP2lkPTY4ODMgaXMgcmVzb2x2ZWQuCiAgIC8vIE1hcHMgYSBwYXlsb2FkIHR5cGUgdG8g
YSBtYXAgb2Ygb3V0LW9mLWJhbmQgc3VwcGxpZWQgY29kZWMgcGFyYW1ldGVycy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3NlbmRf
c3RhdGlzdGljc19wcm94eS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3ZpZGVvL3NlbmRfc3RhdGlzdGljc19wcm94eS5jYwppbmRleCA2MGQ4NGYxNGM3ODll
OWM1ZDM5OWFkZWU0OGJkZDMxN2RhYzA4NjAwLi5mMjE0MTcyMjlhNzBmMmI4MjEzODg2MDVjNDgw
YzAxYzU3OTVkODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy92aWRlby9zZW5kX3N0YXRpc3RpY3NfcHJveHkuY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vc2VuZF9zdGF0aXN0aWNzX3By
b3h5LmNjCkBAIC00Nyw2ICs0Nyw3IEBAIGVudW0gSGlzdG9ncmFtQ29kZWNUeXBlIHsKICAga1Zp
ZGVvVnA4ID0gMSwKICAga1ZpZGVvVnA5ID0gMiwKICAga1ZpZGVvSDI2NCA9IDMsCisgIGtWaWRl
b0gyNjUgPSA0LAogICBrVmlkZW9NYXggPSA2NCwKIH07CiAKQEAgLTc0LDYgKzc1LDEwIEBAIEhp
c3RvZ3JhbUNvZGVjVHlwZSBQYXlsb2FkTmFtZVRvSGlzdG9ncmFtQ29kZWNUeXBlKAogICAgICAg
cmV0dXJuIGtWaWRlb1ZwOTsKICAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NDoKICAgICAgIHJldHVy
biBrVmlkZW9IMjY0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0NvZGVj
SDI2NToKKyAgICAgIHJldHVybiBrVmlkZW9IMjY1OworI2VuZGlmCiAgICAgZGVmYXVsdDoKICAg
ICAgIHJldHVybiBrVmlkZW9Vbmtub3duOwogICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19yZWNlaXZlX3N0cmVhbS5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVv
X3JlY2VpdmVfc3RyZWFtLmNjCmluZGV4IDI0NmRhYWRiODFiYmJlZjhjYzBmODhkYmM1MWQ5NGVj
Mzk2YmM3ODMuLmYxYjY1NWYwMTg0M2EyYmY2NjQzZjJlYjc2N2E0NzJkMTA4NjI2ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3Zp
ZGVvX3JlY2VpdmVfc3RyZWFtLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3RyZWFtLmNjCkBAIC0xMzQsNiArMTM0
LDExIEBAIFZpZGVvQ29kZWMgQ3JlYXRlRGVjb2RlclZpZGVvQ29kZWMoY29uc3QgVmlkZW9SZWNl
aXZlU3RyZWFtOjpEZWNvZGVyJiBkZWNvZGVyKSB7CiAgICAgYXNzb2NpYXRlZF9jb2RlYy5jb2Rl
Y1R5cGUgPSBrVmlkZW9Db2RlY011bHRpcGxleDsKICAgICByZXR1cm4gYXNzb2NpYXRlZF9jb2Rl
YzsKICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgZWxzZSBpZiAoY29kZWMuY29kZWNUeXBl
ID09IGtWaWRlb0NvZGVjSDI2NSkgeworICAgICooY29kZWMuSDI2NSgpKSA9IFZpZGVvRW5jb2Rl
cjo6R2V0RGVmYXVsdEgyNjVTZXR0aW5ncygpOworICB9CisjZW5kaWYKIAogICBjb2RlYy53aWR0
aCA9IDMyMDsKICAgY29kZWMuaGVpZ2h0ID0gMTgwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fc3RyZWFtX2VuY29kZXIu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92aWRl
b19zdHJlYW1fZW5jb2Rlci5jYwppbmRleCA4MjUyY2IyOWVmMTdkZjBjZjBhMmZjOGZkZGU3MGYx
ZDU5ZTlkOGQ1Li41Mjg5MWU5YzFiNzBjODg2NDc4NGI0NTQzMmUzZWMzOGYyMDU4YmViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92
aWRlb19zdHJlYW1fZW5jb2Rlci5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19zdHJlYW1fZW5jb2Rlci5jYwpAQCAtMTAwLDcgKzEw
MCwxMyBAQCBib29sIFJlcXVpcmVzRW5jb2RlclJlc2V0KGNvbnN0IFZpZGVvQ29kZWMmIHByZXZf
c2VuZF9jb2RlYywKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICB9CiAgICAgICBicmVhazsK
LQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NToKKyAgICAg
IGlmIChuZXdfc2VuZF9jb2RlYy5IMjY1KCkgIT0gcHJldl9zZW5kX2NvZGVjLkgyNjUoKSkgewor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworI2VuZGlmCiAgICAg
ZGVmYXVsdDoKICAgICAgIGJyZWFrOwogICB9CkBAIC0xNDAzLDYgKzE0MDksOSBAQCBFbmNvZGVk
SW1hZ2VDYWxsYmFjazo6UmVzdWx0IFZpZGVvU3RyZWFtRW5jb2Rlcjo6T25FbmNvZGVkSW1hZ2Uo
CiAgIGlmIChjb2RlY19zcGVjaWZpY19pbmZvICYmCiAgICAgICAoY29kZWNfc3BlY2lmaWNfaW5m
by0+Y29kZWNUeXBlID09IGtWaWRlb0NvZGVjVlA4IHx8CiAgICAgICAgY29kZWNfc3BlY2lmaWNf
aW5mby0+Y29kZWNUeXBlID09IGtWaWRlb0NvZGVjSDI2NCB8fAorI2lmbmRlZiBESVNBQkxFX0gy
NjUKKyAgICAgICBjb2RlY19zcGVjaWZpY19pbmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNI
MjY1IHx8CisjZW5kaWYKICAgICAgICBjb2RlY19zcGVjaWZpY19pbmZvLT5jb2RlY1R5cGUgPT0g
a1ZpZGVvQ29kZWNHZW5lcmljKSkgewogICAgIHNpbXVsY2FzdF9pZCA9IGVuY29kZWRfaW1hZ2Uu
U3BhdGlhbEluZGV4KCkudmFsdWVfb3IoMCk7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlM2RmMDk4YzdlMjU0OTRhZDFkYTg4MDc1ZmE4N2Q2YzJmZmM4M2ZlLi4zM2Ix
YjEzYjI5MzZjNDkxNGQwMmViZjNmNDJlOTZhZGY4Mjk1MDUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yOSw2ICsyOSwyOCBAQAogCQk0MTAwOTFEQzI0MkUwQkJDMDBDNUVE
QTIgLyogdmlkZW9fY29kZWNfdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwMDkxRDcyNDJFMEJCQjAwQzVFREEyIC8qIHZpZGVvX2NvZGVjX3R5
cGUuaCAqLzsgfTsKIAkJNDEwMDkxREQyNDJFMEJCQzAwQzVFREEyIC8qIHJlY29yZGFibGVfZW5j
b2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDEwMDkxRDgyNDJFMEJCQjAwQzVFREEyIC8qIHJlY29yZGFibGVfZW5jb2RlZF9mcmFtZS5o
ICovOyB9OwogCQk0MTAwOTFERTI0MkUwQkJDMDBDNUVEQTIgLyogdmlkZW9fZnJhbWVfdHlwZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRDky
NDJFMEJCQjAwQzVFREEyIC8qIHZpZGVvX2ZyYW1lX3R5cGUuaCAqLzsgfTsKKwkJNDEwMDkxRTYy
NDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5jYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUUwMjQyRTJBQTEwMEM1RURBMiAvKiBy
dHBfZm9ybWF0X2gyNjUuY2MgKi87IH07CisJCTQxMDA5MUU3MjQyRTJBQTMwMEM1RURBMiAvKiBy
dHBfZm9ybWF0X2gyNjUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMDA5MUUxMjQyRTJBQTIwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuaCAqLzsg
fTsKKwkJNDEwMDkxRTkyNDJFMkFBMzAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRTMyNDJFMkFB
MjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oICovOyB9OworCQk0MTAwOTFFRDI0MkUzMTc0
MDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFFQjI0MkUzMTczMDBDNUVEQTIgLyog
aDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggKi87IH07CisJCTQxMDA5MUVFMjQyRTMxNzQwMEM1
RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFFQzI0MkUzMTczMDBDNUVEQTIgLyogaDI2
NV92cHNfc3BzX3Bwc190cmFja2VyLmNjICovOyB9OworCQk0MTAwOTFGODI0MkUzNjIyMDBDNUVE
QTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwMDkxRjAyNDJFMzYyMDAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNl
ci5jYyAqLzsgfTsKKwkJNDEwMDkxRjkyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkx
RjEyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oICovOyB9OworCQk0MTAwOTFG
QTI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGMjI0MkUzNjIxMDBDNUVEQTIgLyog
aDI2NV9wcHNfcGFyc2VyLmggKi87IH07CisJCTQxMDA5MUZCMjQyRTM2MjIwMEM1RURBMiAvKiBo
MjY1X3Bwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTAwOTFGMzI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmNjICov
OyB9OworCQk0MTAwOTFGQzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRjQyNDJF
MzYyMTAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyAqLzsgfTsKKwkJNDEwMDkxRkQyNDJF
MzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGNTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9jb21t
b24uaCAqLzsgfTsKKwkJNDEwMDkxRkUyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkx
RjYyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5oICovOyB9OworCQk0MTAwOTFG
RjI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uY2MgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGNzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2
NV9jb21tb24uY2MgKi87IH07CisJCTQxMDA5MjA5MjQyRTNBNDYwMEM1RURBMiAvKiBSVENWaWRl
b0RlY29kZXJIMjY1LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICov
OyB9OworCQk0MTAwOTIwQTI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElk
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDky
MDEyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSAqLzsgfTsKKwkJ
NDEwMDkyMEIyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDIyNDJF
M0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oICovOyB9OworCQk0MTAw
OTIwQzI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MjAz
MjQyRTNBNDQwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oICov
OyB9OworCQk0MTAwOTIwRDI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDQy
NDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCAqLzsgfTsKKwkJNDEwMDky
MEUyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDUyNDJFM0E0NTAwQzVF
REEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oICovOyB9OworCQk0MTAwOTIwRjI0MkUzQTQ2
MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MjA2MjQyRTNBNDUwMEM1RURBMiAvKiBSVENW
aWRlb0VuY29kZXJIMjY1Lm1tICovOyB9OworCQk0MTAwOTIxMDI0MkUzQTQ2MDBDNUVEQTIgLyog
UlRDVmlkZW9EZWNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJI
MjY1Lm1tICovOyB9OworCQk0MTAwOTIxMTI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDEwMDkyMDgyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NS5tbSAqLzsgfTsKIAkJNDEwMkY2QTEyMTI3MzI2MjAwNkFFOEQ3IC8qIHJlbWl4X3Jlc2FtcGxl
LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMkY2
OTcyMTI3MzI2MDAwNkFFOEQ3IC8qIHJlbWl4X3Jlc2FtcGxlLmNjICovOyB9OwogCQk0MTAyRjZB
MjIxMjczMjYyMDA2QUU4RDcgLyogYXVkaW9fbGV2ZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDJGNjk4MjEyNzMyNjAwMDZBRThENyAvKiBhdWRp
b19sZXZlbC5oICovOyB9OwogCQk0MTAyRjZBNDIxMjczMjYyMDA2QUU4RDcgLyogYXVkaW9fbGV2
ZWwuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAy
RjY5QTIxMjczMjYxMDA2QUU4RDcgLyogYXVkaW9fbGV2ZWwuY2MgKi87IH07CkBAIC0zOTI2LDYg
KzM5NDgsMzEgQEAKIAkJNDEwMDkxRDcyNDJFMEJCQjAwQzVFREEyIC8qIHZpZGVvX2NvZGVjX3R5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdmlkZW9fY29kZWNfdHlwZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwOTFEODI0MkUwQkJCMDBDNUVEQTIg
LyogcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHJlY29yZGFibGVfZW5jb2RlZF9mcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTAwOTFEOTI0MkUwQkJCMDBDNUVEQTIgLyogdmlkZW9fZnJhbWVfdHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB2aWRlb19mcmFtZV90eXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MURGMjQyRTJBQTEwMEM1RURBMiAvKiBjb250
cmlidXRpbmdfc291cmNlcy5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IGNvbnRyaWJ1dGluZ19zb3VyY2VzLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTAwOTFFMDI0MkUyQUExMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmNjICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcnRwX2Zvcm1hdF9oMjY1LmNjOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFMTI0MkUyQUEyMDBDNUVEQTIgLyogcnRwX2Zvcm1h
dF9oMjY1LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJ0cF9mb3JtYXRfaDI2
NS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFMjI0MkUyQUEyMDBDNUVE
QTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gaDI2NV9zcHNfcGFyc2VyLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTAwOTFFMzI0MkUyQUEyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVfc3BzX3BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTAwOTFFNDI0MkUyQUEyMDBDNUVEQTIgLyogY29udHJpYnV0aW5nX3Nv
dXJjZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29udHJpYnV0aW5nX3Nv
dXJjZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRUIyNDJFMzE3MzAw
QzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRUMyNDJFMzE3MzAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19w
cHNfdHJhY2tlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVf
dnBzX3Nwc19wcHNfdHJhY2tlci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEw
MDkxRjAyNDJFMzYyMDAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfc3BzX3BhcnNlci5jYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjEyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfc3BzX3Bh
cnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBoMjY1X3Nwc19wYXJzZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjIyNDJFMzYyMTAwQzVFREEy
IC8qIGgyNjVfcHBzX3BhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBo
MjY1X3Bwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjMy
NDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfcHBzX3BhcnNlci5jYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDEwMDkxRjQyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5j
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfdnBzX3BhcnNlci5j
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjUyNDJFMzYyMTAwQzVFREEy
IC8qIGgyNjVfY29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVf
Y29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MUY2MjQyRTM2MjIw
MEM1RURBMiAvKiBoMjY1X3Zwc19wYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gaDI2NV92cHNfcGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MDA5MUY3MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5jYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfY29tbW9uLmNjOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2
NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENWaWRlb0RlY29kZXJIMjY1
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjAxMjQyRTNBNDQwMEM1RURB
MiAvKiBSVENIMjY1UHJvZmlsZUxldmVsSWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBSVENIMjY1UHJvZmlsZUxldmVsSWQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMDA5MjAyMjQyRTNBNDQwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjAzMjQy
RTNBNDQwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1By
aXZhdGUuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjA0MjQyRTNBNDUw
MEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJIMjY1LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJUQ1ZpZGVvRW5jb2RlckgyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDEwMDkyMDUyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENIMjY1UHJvZmlsZUxldmVsSWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDYyNDJFM0E0NTAwQzVFREEy
IC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBSVENWaWRlb0VuY29kZXJIMjY1Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTAwOTIwNzI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJUQ1ZpZGVvRGVjb2Rl
ckgyNjUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjA4MjQyRTNBNDYw
MEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDBDREU1MjFDQUNGRDAwMEY5Qjg3RCAvKiBMUENf
Zml0LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IExQQ19maXQuYzsgcGF0aCA9
IHNpbGsvTFBDX2ZpdC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwQ0RFODIx
Q0FEMDMzMDBGOUI4N0QgLyogdnFfc3NlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHZxX3NzZS5oOyBwYXRoID0geDg2L3ZxX3NzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTAwQ0RFQjIxQ0FEMUY1MDBGOUI4N0QgLyogcGl0Y2hfc3NlNF8xLmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBpdGNoX3NzZTRfMS5jOyBwYXRoID0geDg2L3Bp
dGNoX3NzZTRfMS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzg1Nyw2ICs3OTA0
LDIxIEBACiAvKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBC
ZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCisJCTQxMDA5MUVGMjQyRTM2MDgwMEM1RURBMiAvKiBo
MjY1ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0MTAw
OTFGNzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uY2MgKi8sCisJCQkJNDEwMDkxRjUy
NDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggKi8sCisJCQkJNDEwMDkxRjMyNDJFMzYy
MTAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5jYyAqLywKKwkJCQk0MTAwOTFGMjI0MkUzNjIx
MDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmggKi8sCisJCQkJNDEwMDkxRjAyNDJFMzYyMDAw
QzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLywKKwkJCQk0MTAwOTFGMTI0MkUzNjIxMDBD
NUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmggKi8sCisJCQkJNDEwMDkxRjQyNDJFMzYyMTAwQzVF
REEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyAqLywKKwkJCQk0MTAwOTFGNjI0MkUzNjIyMDBDNUVE
QTIgLyogaDI2NV92cHNfcGFyc2VyLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGgyNjU7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk0MTA1RUI2NDIxMkUwMThDMDA4QzBDMjAg
LyogbGlidnB4ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTkxMTgsMjMgKzkxODAsMzIgQEAKIAkJCQk0MTYyMjVGNTIxNjk4MUY0MDBBOTFDOUIgLyogaGVs
cGVycy5oICovLAogCQkJCTQxNzk1M0FDMjE2OTgyM0QwMDI4MjY2QiAvKiBuYWx1X3Jld3JpdGVy
LmNjICovLAogCQkJCTQxMTUyMUQ1MjE2OTgyMjAwMDBBQkFGNyAvKiBuYWx1X3Jld3JpdGVyLmgg
Ki8sCi0JCQkJNDE3OTUzQjIyMTY5ODI0MTAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NCtQcml2YXRlLmggKi8sCiAJCQkJNDE2MjI1RjEyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NC5oICovLAogCQkJCTQxNjIyNUVEMjE2OTgxRjIwMEE5MUM5QiAv
KiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQubW0gKi8sCisJCQkJNDE3OTUzQjIyMTY5ODI0MTAw
MjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8sCisJCQkJNDEw
MDkyMDIyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oICovLAor
CQkJCTQxMDA5MjA4MjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUu
bW0gKi8sCisJCQkJNDEwMDkyMDMyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NStQcml2YXRlLmggKi8sCiAJCQkJNDE3OTUzQjMyMTY5ODI0MjAwMjgyNjZCIC8qIFJU
Q0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmggKi8sCiAJCQkJNDE3OTUzQUQyMTY5ODIzRTAw
MjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gKi8sCiAJCQkJNDE2MjI1
RjcyMTY5ODFGNDAwQTkxQzlCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggKi8s
CiAJCQkJNDE3OTUzQUYyMTY5ODIzRjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJG
YWN0b3J5Lm0gKi8sCiAJCQkJNDExNTIxRDQyMTY5ODIxRjAwMEFCQUY3IC8qIFJUQ0gyNjRQcm9m
aWxlTGV2ZWxJZC5oICovLAogCQkJCTQxMTUyMUQ2MjE2OTgyMjAwMDBBQkFGNyAvKiBSVENIMjY0
UHJvZmlsZUxldmVsSWQubW0gKi8sCisJCQkJNDEwMDkyMDUyNDJFM0E0NTAwQzVFREEyIC8qIFJU
Q0gyNjVQcm9maWxlTGV2ZWxJZC5oICovLAorCQkJCTQxMDA5MjAxMjQyRTNBNDQwMEM1RURBMiAv
KiBSVENIMjY1UHJvZmlsZUxldmVsSWQubW0gKi8sCiAJCQkJNDE2MjI1RjIyMTY5ODFGMzAwQTkx
QzlCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0LmggKi8sCiAJCQkJNDE3OTUzQjAyMTY5
ODI0MDAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0Lm0gKi8sCiAJCQkJNDE2
MjI1RjMyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjQuaCAqLywKIAkJCQk0
MTYyMjVGNDIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5tbSAqLywKKwkJ
CQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICovLAor
CQkJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tICov
LAogCQkJCTQxNjIyNUVGMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5
SDI2NC5oICovLAogCQkJCTQxNzk1M0IxMjE2OTgyNDAwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29k
ZXJGYWN0b3J5SDI2NC5tICovLAogCQkJCTQxNjIyNUVDMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENW
aWRlb0VuY29kZXJIMjY0LmggKi8sCiAJCQkJNDE2MjI1RjYyMTY5ODFGNDAwQTkxQzlCIC8qIFJU
Q1ZpZGVvRW5jb2RlckgyNjQubW0gKi8sCisJCQkJNDEwMDkyMDQyNDJFM0E0NTAwQzVFREEyIC8q
IFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCAqLywKKwkJCQk0MTAwOTIwNjI0MkUzQTQ1MDBDNUVEQTIg
LyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSAqLywKIAkJCQk0MTYyMjVFRTIxNjk4MUYyMDBBOTFD
OUIgLyogVUlEZXZpY2UrSDI2NFByb2ZpbGUuaCAqLywKIAkJCQk0MTc5NTNBRTIxNjk4MjNGMDAy
ODI2NkIgLyogVUlEZXZpY2UrSDI2NFByb2ZpbGUubW0gKi8sCiAJCQkpOwpAQCAtMTE3MDksNiAr
MTE3ODAsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNDEzMUM0MkEyMzRDN0Q3MDAwMjhBNjE1
IC8qIGdlbmVyaWNfZnJhbWVfZGVzY3JpcHRvciAqLywKIAkJCQk1Q0REODM0MTFFNDMyNTY0MDA2
MjFFOTIgLyogaDI2NCAqLywKKwkJCQk0MTAwOTFFRjI0MkUzNjA4MDBDNUVEQTIgLyogaDI2NSAq
LywKIAkJCQk0MTEwOUFBNDFFNUZBMTgxMDBDMDk1NUEgLyogaW5jbHVkZSAqLywKIAkJCQk1Q0RE
ODM2NTFFNDMyNUMyMDA2MjFFOTIgLyogbGlieXV2ICovLAogCQkJCTVDNEI0QzEwMUU0MzFGNzUw
MDI2NTFDOCAvKiBiaXRyYXRlX2FkanVzdGVyLmNjICovLApAQCAtMTI2MzIsNiArMTI3MDQsOCBA
QAogCQkJCTVDRDI4NUU5MUU2QTYzOUYwMDk0RkRDOCAvKiBoMjY0X3Nwcm9wX3BhcmFtZXRlcl9z
ZXRzLmggKi8sCiAJCQkJNUNERDgzOUExRTQzOUE2RjAwNjIxRTkyIC8qIGgyNjRfc3BzX3Bwc190
cmFja2VyLmNjICovLAogCQkJCTVDREQ4MzlCMUU0MzlBNkYwMDYyMUU5MiAvKiBoMjY0X3Nwc19w
cHNfdHJhY2tlci5oICovLAorCQkJCTQxMDA5MUVDMjQyRTMxNzMwMEM1RURBMiAvKiBoMjY1X3Zw
c19zcHNfcHBzX3RyYWNrZXIuY2MgKi8sCisJCQkJNDEwMDkxRUIyNDJFMzE3MzAwQzVFREEyIC8q
IGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oICovLAogCQkJCTVDREQ4MzlDMUU0MzlBNkYwMDYy
MUU5MiAvKiBoaXN0b2dyYW0uY2MgKi8sCiAJCQkJNUNERDgzOUQxRTQzOUE2RjAwNjIxRTkyIC8q
IGhpc3RvZ3JhbS5oICovLAogCQkJCTVDREQ4MzlFMUU0MzlBNkYwMDYyMUU5MiAvKiBpbnRlcl9m
cmFtZV9kZWxheS5jYyAqLywKQEAgLTEzMjY3LDExICsxMzM0MSwxNCBAQAogCQk1Q0REODdGQTFF
NDNCRTI2MDA2MjFFOTIgLyogc291cmNlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQk1Q0REODhFQjFFNDNCRjI1MDA2MjFFOTIgLyogcnRjcF9wYWNrZXQg
Ki8sCiAJCQkJNDEzMUM0QzgyMzRDODRBMTAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGlt
ZV9yZWNlaXZlci5jYyAqLywKIAkJCQk0MTMxQzRDRDIzNEM4NEEyMDAyOEE2MTUgLyogYWJzb2x1
dGVfY2FwdHVyZV90aW1lX3JlY2VpdmVyLmggKi8sCiAJCQkJNDEzMUM0Q0MyMzRDODRBMjAwMjhB
NjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGltZV9zZW5kZXIuY2MgKi8sCiAJCQkJNDEzMUM0Q0Uy
MzRDODRBMjAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGltZV9zZW5kZXIuaCAqLywKIAkJ
CQk1Q0REODdGQzFFNDNCRTNDMDA2MjFFOTIgLyogYnl0ZV9pby5oICovLAorCQkJCTQxMDA5MURG
MjQyRTJBQTEwMEM1RURBMiAvKiBjb250cmlidXRpbmdfc291cmNlcy5jYyAqLywKKwkJCQk0MTAw
OTFFNDI0MkUyQUEyMDBDNUVEQTIgLyogY29udHJpYnV0aW5nX3NvdXJjZXMuaCAqLywKIAkJCQk0
MTg5MzkwOTI0MkE3MDRDMDA3RkRDNDEgLyogY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIu
Y2MgKi8sCiAJCQkJNDE4OTM5MDQyNDJBNzA0QjAwN0ZEQzQxIC8qIGNyZWF0ZV92aWRlb19ydHBf
ZGVwYWNrZXRpemVyLmggKi8sCiAJCQkJNUNERDg3RkUxRTQzQkUzQzAwNjIxRTkyIC8qIGR0bWZf
cXVldWUuY2MgKi8sCkBAIC0xMzI5MCw2ICsxMzM2Nyw4IEBACiAJCQkJNUNERDg4MEUxRTQzQkUz
QzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3JfY29ycmVjdGlvbl9pbnRlcm5hbC5oICovLAogCQkJ
CTVDREQ4ODBGMUU0M0JFM0MwMDYyMUU5MiAvKiBmb3J3YXJkX2Vycm9yX2NvcnJlY3Rpb24uY2Mg
Ki8sCiAJCQkJNUNERDg4MTAxRTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3JfY29ycmVj
dGlvbi5oICovLAorCQkJCTQxMDA5MUUyMjQyRTJBQTIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJz
ZXIuY2MgKi8sCisJCQkJNDEwMDkxRTMyNDJFMkFBMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNl
ci5oICovLAogCQkJCTVDREQ4ODE1MUU0M0JFM0MwMDYyMUU5MiAvKiBwYWNrZXRfbG9zc19zdGF0
cy5jYyAqLywKIAkJCQk1Q0REODgxNjFFNDNCRTNDMDA2MjFFOTIgLyogcGFja2V0X2xvc3Nfc3Rh
dHMuaCAqLywKIAkJCQk1Q0REODgxQTFFNDNCRTNDMDA2MjFFOTIgLyogcmVjZWl2ZV9zdGF0aXN0
aWNzX2ltcGwuY2MgKi8sCkBAIC0xMzI5Nyw3ICsxMzM3Niw2IEBACiAJCQkJNUNERDg4MUUxRTQz
QkUzQzAwNjIxRTkyIC8qIHJlbW90ZV9udHBfdGltZV9lc3RpbWF0b3IuY2MgKi8sCiAJCQkJNUNE
Mjg1RjgxRTZBNjQ1MjAwOTRGREM4IC8qIHJ0Y3BfbmFja19zdGF0cy5jYyAqLywKIAkJCQk1Q0Qy
ODVGOTFFNkE2NDUyMDA5NEZEQzggLyogcnRjcF9uYWNrX3N0YXRzLmggKi8sCi0JCQkJNUNERDg4
RUIxRTQzQkYyNTAwNjIxRTkyIC8qIHJ0Y3BfcGFja2V0ICovLAogCQkJCTVDREQ4ODIxMUU0M0JF
M0MwMDYyMUU5MiAvKiBydGNwX3BhY2tldC5jYyAqLywKIAkJCQk1Q0REODgyMjFFNDNCRTNDMDA2
MjFFOTIgLyogcnRjcF9wYWNrZXQuaCAqLywKIAkJCQk1Q0REODgyNDFFNDNCRTNDMDA2MjFFOTIg
LyogcnRjcF9yZWNlaXZlci5jYyAqLywKQEAgLTEzMzIwLDYgKzEzMzk4LDggQEAKIAkJCQk0MTg5
MzkwMzI0MkE3MDRBMDA3RkRDNDEgLyogcnRwX2Rlc2NyaXB0b3JfYXV0aGVudGljYXRpb24uaCAq
LywKIAkJCQk1Q0REODgyRTFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF9oMjY0LmNjICov
LAogCQkJCTVDREQ4ODJGMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0X2gyNjQuaCAqLywK
KwkJCQk0MTAwOTFFMDI0MkUyQUExMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmNjICovLAor
CQkJCTQxMDA5MUUxMjQyRTJBQTIwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuaCAqLywKIAkJ
CQk1Q0REODgzMDFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF92aWRlb19nZW5lcmljLmNj
ICovLAogCQkJCTVDREQ4ODMxMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0X3ZpZGVvX2dl
bmVyaWMuaCAqLywKIAkJCQk1Q0REODgzNTFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF92
cDguY2MgKi8sCkBAIC0xNDYyNCw2ICsxNDcwNCw3IEBACiAJCQkJNUNEMjg1QTcxRTZBNjM0MzAw
OTRGREM4IC8qIGFlY19zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1RTgxRTQzQjgx
MDAwNjIxRTkyIC8qIGFlY21fY29yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1RTkxRTQz
QjgxMDAwNjIxRTkyIC8qIGFlY21fZGVmaW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkx
RTcyNDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUMwODg1MjcxRTRBOTlEMjAwNDAzOTk1IC8qIGFlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUMwODg1MjQxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19nY21fb3NzbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUMwODg1MjYxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19pY20uaCBpbiBIZWFkZXJzICov
LApAQCAtMTQ2NzIsNiArMTQ3NTMsNyBAQAogCQkJCTVDRDI4NTQ1MUU2QTYxRDIwMDk0RkRDOCAv
KiBhdWRpb19kZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODU0MzFFNkE2MUQyMDA5
NEZEQzggLyogYXVkaW9fZGVjb2Rlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5
MzhEQTI0MkE2OUNDMDA3RkRDNDEgLyogcXVhbGl0eV9zY2FsZXJfcmVzb3VyY2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMDA5MUZBMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjlCRjk4MjA1MUM4MjEwMEFCRjBCOSAvKiBhdWRpb19k
ZWNvZGVyX2ZhY3RvcnlfdGVtcGxhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0U4MUZF
MjQ4MzUwMDQwQzMwRiAvKiBhdWRpb19kZWNvZGVyX2c3MTEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMDA5MURFMjQyRTBCQkMwMEM1RURBMiAvKiB2aWRlb19mcmFtZV90eXBlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTE0NjkxLDYgKzE0NzczLDcgQEAKIAkJCQk0MTMxQzNDMjIzNEI5N0I0MDAyOEE2
MTUgLyogYXVkaW9fZGVjb2Rlcl9tdWx0aV9jaGFubmVsX29wdXNfaW1wbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE4OTNBMjEyNDJBNzVDMTAwN0ZEQzQxIC8qIGR0bHNfdHJhbnNwb3J0X2ZhY3Rv
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODkzOUNBMjQyQTczMzcwMDdGREM0MSAvKiB1c2Vk
X2lkcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMEQyNDJFM0E0NjAwQzVFREEyIC8qIFJU
Q1ZpZGVvRW5jb2RlckgyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzYxMUU0M0M2MDkw
MDYyMUU5MiAvKiBhdWRpb19kZWNvZGVyX29wdXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4
MkYyMUZFMjBFQjUwMDQwQzMwRiAvKiBhdWRpb19kZWNvZGVyX29wdXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxODkzOUQ3MjQyQTczMzcwMDdGREM0MSAvKiB0cmFja19tZWRpYV9pbmZvX21hcC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xNDc1OCwxMCArMTQ4NDEsMTIgQEAKIAkJCQk0MTg5Mzk1QzI0
MkE3MUY1MDA3RkRDNDEgLyogbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhBRDAxRTQzQzIzOTAwNjIxRTkyIC8qIGF1ZGlvX3NlbmRfc3RyZWFt
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODRCMjFFNkE1RjlGMDA5NEZEQzggLyogYXVkaW9f
c2VuZF9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUU5MjQyRTJBQTMwMEM1RURB
MiAvKiBoMjY1X3Nwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzRGMUU0M0M1
OEUwMDYyMUU5MiAvKiBhdWRpb19zaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEE5MjFF
NDNDMDBGMDA2MjFFOTIgLyogYXVkaW9fc2luay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJG
QTAyMzRCODhBNjAwMjhBNjE1IC8qIGF1ZGlvX3NvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE4OTM5NUYyNDJBNzFGNTAwN0ZEQzQxIC8qIHF1YWxpdHlfcmFtcHVwX2V4cGVyaW1lbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMDA5MjBCMjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1Nw
ZWNpZmljSW5mb0gyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QUQzMUU0M0MyMzkwMDYy
MUU5MiAvKiBhdWRpb19zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg0QjMxRTZBNUY5
RjAwOTRGREM4IC8qIGF1ZGlvX3N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkYwNTIz
NEI4ODIwMDAyOEE2MTUgLyogYXVkaW9fdHJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtMTQ5ODMs
NiArMTUwNjgsNyBAQAogCQkJCTQxM0EyMTNFMUZFMEYwRUYwMDM3M0U5OSAvKiBla3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4Qjk3MUU0M0MyQjUwMDYyMUU5MiAvKiBlbmNvZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4N0I2MUU0M0JDMDUwMDYyMUU5MiAvKiBlbmNvZGVfbHBjX3N3
Yi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMDkyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1Zp
ZGVvRGVjb2RlckgyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTk2MUU0M0MwMEYwMDYy
MUU5MiAvKiBlbmNvZGVfbmV0ZXFfaW5wdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4M0NE
MUU0MzlBNkYwMDYyMUU5MiAvKiBlbmNvZGVkX2ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUEwOEJBQzIxMjY4MUM4MDAxRDVEN0IgLyogZW5jb2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xNTAxNCw2ICsxNTEwMCw3IEBACiAJCQkJNDEwMkY2QUYyMTI3MzJFNzAwNkFFOEQ3IC8q
IGV4cGFuZF91bWFfbG9nZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUJFNzFBNjIxNUM0NjM3
MDBBN0IxOTYgLyogZXhwci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NEIxRTQzQkYzQTAw
NjIxRTkyIC8qIGV4dGVuZGVkX2ppdHRlcl9yZXBvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MDA5MUZFMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Zwc19wYXJzZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4OTRFMUU0M0JGM0EwMDYyMUU5MiAvKiBleHRlbmRlZF9yZXBvcnRzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQkY0NjIzNEI4ODIwMDAyOEE2MTUgLyogZXh0ZXJuYWxfaG1h
Yy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwNzcyMzRCODk4RDAwMjhBNjE1IC8qIGZha2Vf
Y2xvY2suaCBpbiBIZWFkZXJzICovLApAQCAtMTU0NTMsNiArMTU1NDAsNyBAQAogCQkJCTVDREQ4
RkRFMUU0M0NENjYwMDYyMUU5MiAvKiByZW1vdGVfYml0cmF0ZV9lc3RpbWF0b3Jfc2luZ2xlX3N0
cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0QjcyMzRDODNERDAwMjhBNjE1IC8qIHJl
bW90ZV9lc3RpbWF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGRTIxRTQzQ0Q2NjAwNjIx
RTkyIC8qIHJlbW90ZV9lc3RpbWF0b3JfcHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5
MUY5MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxOUM4M0M1MUZFMjQ3QjQwMDQwQzMwRiAvKiByZW1vdGVfbnRwX3RpbWVfZXN0aW1hdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ1RTREQTFFRjhDQzlCMDBGQ0Y2RTYgLyogcmVuZGVy
X2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1RDYxRTZBNjM0MzAwOTRGREM4IC8q
IHJlbmRlcl9kZWxheV9idWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTU1NzgsNiArMTU2NjYs
NyBAQAogCQkJCTVDREQ4ODlFMUU0M0JFM0MwMDYyMUU5MiAvKiBydGNwX3NlbmRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUM0RUYyMzRDODYxMTAwMjhBNjE1IC8qIHJ0Y3Bfc3RhdGlzdGlj
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzMDMxRkUyMEYwMjAwNDBDMzBGIC8qIHJ0Y3Bf
dHJhbnNjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUZEMjQyRTM2MjIwMEM1RURB
MiAvKiBoMjY1X2NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzMDExRkUyMEYwMjAw
NDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXJfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTlDODMwNTFGRTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9pbXBsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTNBMjQzRTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDUGVlckNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovLApAQCAtMTU2MjYsNiArMTU3MTUsNyBAQAogCQkJCTQxM0EyNDRG
MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTNFNjc4RjIxNjk4N0RCMDBFRjM3RUQgLyogUlRDVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzRTY3OTEyMTY5ODdEQjAwRUYzN0VEIC8qIFJUQ1ZpZGVvRnJhbWVCdWZmZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMDA5MUVEMjQyRTMxNzQwMEM1RURBMiAvKiBoMjY1X3Zwc19z
cHNfcHBzX3RyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDQxMUZFMTk5MUEwMDM3
M0U5OSAvKiBSVENWaWRlb0ZyYW1lQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ2
RjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9SZW5kZXJlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzQTI0NjExRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvU291cmNlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTE1ODE4LDYgKzE1OTA4LDcgQEAKIAkJCQk0MTMxQzEwMzIzNEI4OUUyMDAyOEE2
MTUgLyogc3RyaW5nX2VuY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTNBMEEyNDJBNzUz
QzAwN0ZEQzQxIC8qIHN1YmJhbmRfbmVhcmVuZF9kZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUMxMDUyMzRCODlFMjAwMjhBNjE1IC8qIHN0cmluZ190b19udW1iZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMDA5MjBDMjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjUrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTNBNDEyNDJBNzZGMjAw
N0ZEQzQxIC8qIG9wZXJhdGlvbnNfY2hhaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMTMy
MjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJpbmdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
ODkzOTg2MjQyQTcyNTEwMDdGREM0MSAvKiBwcmlvcl9zaWduYWxfbW9kZWwuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTU5NTgsNiArMTYwNDksNyBAQAogCQkJCTQxNjIyNUQzMjE2OTgxODEwMEE5MUM5
QiAvKiB2aWRlb19mcmFtZV9idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJGNkNGMjEy
NzMzQjcwMDZBRThENyAvKiB2aWRlb19xdWFsaXR5X29ic2VydmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTlDODJDNDFGRTIwRENEMDA0MEMzMEYgLyogdmlkZW9fcmVjZWl2ZV9zdHJlYW0uaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMDA5MjBFMjQyRTNBNDYwMEM1RURBMiAvKiBSVENIMjY1UHJv
ZmlsZUxldmVsSWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NUNCMUU0M0I1QzAwMDYyMUU5
MiAvKiB2aWRlb19yZWNlaXZlX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjRDMjEx
RTQzMUY3NTAwMjY1MUM4IC8qIHZpZGVvX3JlbmRlcl9mcmFtZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDRDI4NDZDMUU2QTU3RjQwMDk0RkRDOCAvKiB2aWRlb19yb3RhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNzQ3Niw4ICsxNzU2OCwxMCBAQAogCQkJCTQxMzFDMDMzMjM0Qjg5OEQwMDI4
QTYxNSAvKiBjcnlwdF9zdHJpbmcuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzNCNjIzNEI5
NzEyMDAyOEE2MTUgLyogY3J5cHRvX29wdGlvbnMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTg5
Mzk4QzI0MkE3MjUyMDA3RkRDNDEgLyogbnNfZmZ0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEw
MDkxRkMyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFCRjI2MjM0Qjg4MjAwMDI4QTYxNSAvKiBkYXRhX2NoYW5uZWwuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTMxQzMxMTIzNEI4REMyMDAyOEE2MTUgLyogZGF0YV9jaGFubmVsX2lu
dGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUY4MjQyRTM2MjIwMEM1RURBMiAv
KiBoMjY1X3Nwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDFFMTIxMjc1QTMw
MDA2MzRGQ0YgLyogZGF0YV9yYXRlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4OTM5NUIyNDJB
NzFGNTAwN0ZEQzQxIC8qIG1pbl92aWRlb19iaXRyYXRlX2V4cGVyaW1lbnQuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzAyNDIzNEI4OThEMDAyOEE2MTUgLyogZGF0YV9yYXRlX2xpbWl0ZXIu
Y2MgaW4gU291cmNlcyAqLywKQEAgLTE3Njc4LDExICsxNzc3MiwxNCBAQAogCQkJCTQxMDJGNkUw
MjEyNzM0MTYwMDZBRThENyAvKiBpMDEwX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
RDI4NDY3MUU2QTU3RjQwMDk0RkRDOCAvKiBpNDIwX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDNEI0QzFCMUU0MzFGNzUwMDI2NTFDOCAvKiBpNDIwX2J1ZmZlcl9wb29sLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEwMDkxRUUyNDJFMzE3NDAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19w
cHNfdHJhY2tlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMUYxMjM0QjhBNEIwMDI4QTYx
NSAvKiBpY2VfY3JlZGVudGlhbHNfaXRlcmF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTg5
M0E0QTI0MkE3Nzg5MDA3RkRDNDEgLyogZXZlbnRfYmFzZWRfZXhwb25lbnRpYWxfbW92aW5nX2F2
ZXJhZ2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzNFNjIzNEM3QTA4MDAyOEE2MTUgLyog
aWNlX2xvZ2dlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjU1MjM0Qjg4MjAwMDI4QTYx
NSAvKiBpY2Vfc2VydmVyX3BhcnNpbmcuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTAwOTIxMDI0
MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTQxMzFCRjBFMjM0Qjg4MjAwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0LmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEwMDkyMTEyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzFBMjM0QjhEQzIwMDI4QTYxNSAv
KiBpY2VfdHJhbnNwb3J0X2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzFCRjIz
NEI4QTRBMDAyOEE2MTUgLyogaWNlX3RyYW5zcG9ydF9pbnRlcm5hbC5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxODkzQTVFMjQyQTc3QjgwMDdGREM0MSAvKiBldmVudF9yYXRlX2NvdW50ZXIuY2Mg
aW4gU291cmNlcyAqLywKQEAgLTE3NzUwLDYgKzE3ODQ3LDcgQEAKIAkJCQk1Q0REODdDNTFFNDNC
QzA1MDA2MjFFOTIgLyogbHBjX2FuYWx5c2lzLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJD
MTFFNDNDMkI1MDA2MjFFOTIgLyogbHBjX2VuY29kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDg3QzcxRTQzQkMwNTAwNjIxRTkyIC8qIGxwY19nYWluX3N3Yl90YWJsZXMuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxMDA5MUU2MjQyRTJBQTMwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0NFRTFGNzlCMzM0MDAzODdCNEQgLyogbHBjX21hc2tp
bmdfbW9kZWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4N0M5MUU0M0JDMDUwMDYyMUU5MiAv
KiBscGNfc2hhcGVfc3diMTJfdGFibGVzLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODdDQjFF
NDNCQzA1MDA2MjFFOTIgLyogbHBjX3NoYXBlX3N3YjE2X3RhYmxlcy5jIGluIFNvdXJjZXMgKi8s
CkBAIC0xODAyNSwxMCArMTgxMjMsMTIgQEAKIAkJCQk0MTc5NTNCNzIxNjk4MjQyMDAyODI2NkIg
LyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubSBpbiBTb3VyY2VzICovLAogCQkJCTQx
NDRCM0Y1MjE2QjA4MUIwMDQzNjNBQyAvKiBSVENFbmNvZGVkSW1hZ2UrUHJpdmF0ZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTQxNzk1M0ZBMjE2OTg0QkUwMDI4MjY2QiAvKiBSVENFbmNvZGVkSW1h
Z2UubSBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUZCMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1
X3Bwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTg5MzkxNTI0MkE3MDRFMDA3RkRD
NDEgLyogdHJhbnNmb3JtYWJsZV9lbmNvZGVkX2ZyYW1lLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDE0NEIzRDYyMTY5OEExQTAwNDM2M0FDIC8qIFJUQ0gyNjRQcm9maWxlTGV2ZWxJZC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTQxNDRCM0QzMjE2OTg5NkQwMDQzNjNBQyAvKiBSVENOYXRpdmVJNDIw
QnVmZmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRDEyMTY5ODk2NzAwNDM2M0FDIC8q
IFJUQ05hdGl2ZU11dGFibGVJNDIwQnVmZmVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDky
MEYyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUubW0gaW4gU291cmNlcyAq
LywKIAkJCQk0MTlDODJCOTFGRTIwRENEMDA0MEMzMEYgLyogcnRjcF9kZW11eGVyLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEzMUJGMUEyMzRCODgyMDAwMjhBNjE1IC8qIHJ0Y3BfbXV4X2ZpbHRl
ci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUZBMUU2QTY0NTIwMDk0RkRDOCAvKiBydGNw
X25hY2tfc3RhdHMuY2MgaW4gU291cmNlcyAqLywKQEAgLTE4MjM2LDYgKzE4MzM2LDcgQEAKIAkJ
CQk0MTkyNDFFMjIxMjc1QTMwMDA2MzRGQ0YgLyogdGltZV9kZWx0YS5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4QTVBMUU0M0JGQjMwMDYyMUU5MiAvKiB0aW1lX3N0cmV0Y2guY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REODhEQTFFNDNCRTNEMDA2MjFFOTIgLyogdGltZV91dGlsLmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDEwMDkyMEEyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gyNjVQcm9m
aWxlTGV2ZWxJZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMTRBMjM0Qjg5RTIwMDI4QTYx
NSAvKiB0aW1lX3V0aWxzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxRTMyMTI3NUEzMDAw
NjM0RkNGIC8qIHRpbWVzdGFtcC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMTMzMjM0Qjg5
RTIwMDI4QTYxNSAvKiB0aW1lc3RhbXBfYWxpZ25lci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgz
NTQsNiArMTg0NTUsNyBAQAogCQkJCTVDREQ4MzY3MUU0MzI1RDUwMDYyMUU5MiAvKiB3ZWJydGNf
bGlieXV2LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMyN0EyMzRCOENDNDAwMjhBNjE1IC8q
IHdlYnJ0Y19tZWRpYV9lbmdpbmUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzI3ODIzNEI4
Q0M0MDAyOEE2MTUgLyogd2VicnRjX21lZGlhX2VuZ2luZV9kZWZhdWx0cy5jYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxMDA5MUZGMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxMzFCRjUwMjM0Qjg4MjAwMDI4QTYxNSAvKiB3ZWJydGNfc2RwLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJFRjQyMzRCODgyMDAwMjhBNjE1IC8qIHdlYnJ0Y19z
ZXNzaW9uX2Rlc2NyaXB0aW9uX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODZF
NDFFNDNCQTI4MDA2MjFFOTIgLyogd2VicnRjX3ZhZC5jIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAppbmRleCA5ZjBhNDA2ZGU0MTQ5MTgzZjg1MTE2MTI0YjNlZDVjMTliMWVmMmViLi4w
OTRkMzNjNzNkMTgyNjZiNmYyZjE5MDYzZDBiZjVmZjI2MmJmYWI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKQEAgLTMyNSw3ICszMjUsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFn
ZUNvbmZpZ3VyYXRpb24pCiAjZW5kaWYKIAogI2lmIFVTRShMSUJXRUJSVEMpCi0gICAgbV9saWJX
ZWJSVENQcm92aWRlci0+c3VwcG9ydHNWUDgoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS53ZWJSVENWUDhDb2RlY0VuYWJsZWQoKSk7CisgICAgbV9saWJXZWJSVENQcm92
aWRlci0+c3VwcG9ydHNIMjY1KFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkud2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgpKTsKICNlbmRpZgogCiAgICAgbV9jb3JzRGlzYWJs
aW5nUGF0dGVybnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwYWdlQ29uZmlndXJhdGlvbi5jb3Jz
RGlzYWJsaW5nUGF0dGVybnMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggZGU3ZTM4ZDI1ZWIyMzNjODg1YTgxNGZkY2MyMmM2YmMz
OGM0NTI0YS4uMWVlMGQyNzcxNTc1MTEyYWRiODYwMjRkOTBjMThjMDZjYWI2NjkzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTIzNiw4ICsy
MzYsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgYm9vbCB3ZWJSVENEVE1G
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENEVE1GRW5hYmxlZDsgfQogICAgIHZv
aWQgc2V0V2ViUlRDRFRNRkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc1dlYlJUQ0RUTUZF
bmFibGVkID0gaXNFbmFibGVkOyB9Ci0gICAgYm9vbCB3ZWJSVENWUDhDb2RlY0VuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzV2ViUlRDVlA4Q29kZWNFbmFibGVkOyB9Ci0gICAgdm9pZCBzZXRX
ZWJSVENWUDhDb2RlY0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc1dlYlJUQ1ZQOENvZGVj
RW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgd2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENIMjY1Q29kZWNFbmFibGVkOyB9CisgICAgdm9pZCBz
ZXRXZWJSVENIMjY1Q29kZWNFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXNXZWJSVENIMjY1
Q29kZWNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBwZWVyQ29ubmVjdGlvbkVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUGVlckNvbm5lY3Rpb25FbmFibGVkOyB9CiAgICAgdm9p
ZCBzZXRQZWVyQ29ubmVjdGlvbkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc1BlZXJDb25u
ZWN0aW9uRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgd2ViUlRDTUROU0lDRUNhbmRp
ZGF0ZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1dlYlJUQ01ETlNJQ0VDYW5kaWRhdGVz
RW5hYmxlZDsgfQpAQCAtNTAyLDcgKzUwMiw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoV0VC
X1JUQykKICAgICBib29sIG1faXNXZWJSVENEVE1GRW5hYmxlZCB7IHRydWUgfTsKLSAgICBib29s
IG1faXNXZWJSVENWUDhDb2RlY0VuYWJsZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX2lzV2ViUlRD
SDI2NUNvZGVjRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1faXNQZWVyQ29ubmVjdGlvbkVu
YWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzV2ViUlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNXZWJSVENIMjY0U2ltdWxjYXN0RW5hYmxlZCB7
IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggYTBiNGNmNzE2
ZDU0MGViOWNlYjRhMGU2NzZlZTAyNjQzZmU4ZWQ5MC4uMjJiMTBkZDQ4MGM4N2Y0ZGNkMDQyZmJj
ODhjOTk1NGRlMzIwZDc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAg
LTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlRW51bWVyYXRpbmdBbGxO
ZXR3b3JrSW50ZXJmYWNlcygpOwogICAgIHZvaWQgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3Jr
SW50ZXJmYWNlcygpOwogCi0gICAgdm9pZCBzdXBwb3J0c1ZQOChib29sIHZhbHVlKSB7IG1fc3Vw
cG9ydHNWUDggPSB2YWx1ZTsgfQorICAgIHZvaWQgc3VwcG9ydHNIMjY1KGJvb2wgdmFsdWUpIHsg
bV9zdXBwb3J0c0gyNjUgPSB2YWx1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0g
dHJ1ZTsgfQogCiAgICAgcnRjOjpSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvciYgY2VydGlmaWNhdGVH
ZW5lcmF0b3IoKTsKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2U+IG1fZmFj
dG9yeTsKICAgICBib29sIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zIHsgZmFsc2Ug
fTsKLSAgICBib29sIG1fc3VwcG9ydHNWUDggeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdXBwb3J0
c0gyNjUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVMb2dnaW5nIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJD
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKaW5kZXggNGU1NTM4OGVhZGUxMDk4YWU5MWJmYjQ5
NjZkYTQ0Zjg5NmM4YTM0Mi4uYzczNzE3NDRmNzhlODZmZDUzNGFhOTkyYjI4NWQ1OWQ1Y2YxMTZl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcApAQCAt
NTQsNyArNTQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5
PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNvZAogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIGNvZGVjU3VwcG9ydCA9IG1fc3VwcG9ydHNWUDggPyB3
ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA6IHdlYnJ0Yzo6V2ViS2l0Q29k
ZWNTdXBwb3J0OjpIMjY0OworICAgIGF1dG8gY29kZWNTdXBwb3J0ID0gbV9zdXBwb3J0c0gyNjUg
PyB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NFZQOEFuZEgyNjUgOiB3ZWJydGM6Oldl
YktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQODsKICAgICByZXR1cm4gd2VicnRjOjpjcmVhdGVX
ZWJLaXREZWNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQpOwogfQogCkBAIC02Miw3ICs2Miw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IExpYldlYlJUQ1By
b3ZpZGVyQ29jb2E6OmNyZWF0ZUVuY29kCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
IAotICAgIGF1dG8gY29kZWNTdXBwb3J0ID0gbV9zdXBwb3J0c1ZQOCA/IHdlYnJ0Yzo6V2ViS2l0
Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4IDogd2VicnRjOjpXZWJLaXRDb2RlY1N1cHBvcnQ6Okgy
NjQ7CisgICAgYXV0byBjb2RlY1N1cHBvcnQgPSBtX3N1cHBvcnRzSDI2NSA/IHdlYnJ0Yzo6V2Vi
S2l0Q29kZWNTdXBwb3J0OjpIMjY0VlA4QW5kSDI2NSA6IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBw
b3J0OjpIMjY0QW5kVlA4OwogICAgIHJldHVybiB3ZWJydGM6OmNyZWF0ZVdlYktpdEVuY29kZXJG
YWN0b3J5KGNvZGVjU3VwcG9ydCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCA5NDVkZGZkNTc2ZDI2ZmUzYjgyNzhjZDI2OTBlYzBmYTRlOGY1ZWY2Li42ODVjZDM1
MGU2MjU2OGNkZjY5ZDg2NjQyYmIyYWM5NDJkODBmMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC01NTMsNyArNTUzLDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9D
b25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAgICBhdXRvJiBydGNQcm92aWRlciA9IHBhZ2Uu
bGliV2ViUlRDUHJvdmlkZXIoKTsKICAgICBXZWJDb3JlOjp1c2VSZWFsUlRDUGVlckNvbm5lY3Rp
b25GYWN0b3J5KHJ0Y1Byb3ZpZGVyKTsKICAgICBydGNQcm92aWRlci5kaXNhYmxlTm9uTG9jYWxo
b3N0Q29ubmVjdGlvbnMoKTsKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldFdlYlJUQ1ZQOENvZGVjRW5hYmxlZCh0cnVlKTsKKyAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQodHJ1
ZSk7CiAgICAgcGFnZS5zZXR0aW5ncygpLnNldFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkKHRydWUp
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4
IGM2ZmRkYjYxMjBmMmM5NThiMzAyMTU1MjIyMGI4OTkxZmFiMzIyZWYuLmMwZTQzZTBlYjAwMmE0
MzBiNTVmMDExY2QzMDQ3NjA2NmM3MmM2ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbApAQCAtNTgxLDE0ICs1ODEsMTQgQEAgSW50ZXJydXB0QXVkaW9PblBhZ2VW
aXNpYmlsaXR5Q2hhbmdlRW5hYmxlZDoKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi1XZWJSVENWUDhD
b2RlY0VuYWJsZWQ6CitXZWJSVENIMjY1Q29kZWNFbmFibGVkOgogICB0eXBlOiBib29sCiAgIGRl
ZmF1bHRWYWx1ZTogdHJ1ZQogICB3ZWJjb3JlQmluZGluZzogUnVudGltZUVuYWJsZWRGZWF0dXJl
cwogICBjb25kaXRpb246IEVOQUJMRShXRUJfUlRDKQotICBodW1hblJlYWRhYmxlTmFtZTogIldl
YlJUQyBWUDggY29kZWMiCi0gIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBXZWJS
VEMgVlA4IGNvZGVjIgotICBjYXRlZ29yeTogaW50ZXJuYWwKKyAgaHVtYW5SZWFkYWJsZU5hbWU6
ICJXZWJSVEMgSDI2NSBjb2RlYyIKKyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxl
IFdlYlJUQyBIMjY1IGNvZGVjIgorICBjYXRlZ29yeTogZXhwZXJpbWVudGFsCiAKIFdlYlJUQ1Bs
YXRmb3JtQ29kZWNzSW5HUFVQcm9jZXNzRW5hYmxlZDoKICAgdHlwZTogYm9vbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyMjQzODRhMmIzNWNm
MTQ0YzBmM2U3NjIzY2ZkYjQ3MWI1YmFjODkyLi40M2I4MDc5YmYyOTM1NDg2Njk1ODUzNzJhY2Rj
M2E0NGM4OWE1ZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMzY2Miw2ICszNjYyLDEwIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVy
ZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgaWYgKG1fZHJhd2lu
Z0FyZWEpCiAgICAgICAgIG1fZHJhd2luZ0FyZWEtPnVwZGF0ZVByZWZlcmVuY2VzKHN0b3JlKTsK
IAorI2lmIFVTRShMSUJXRUJSVEMpCisgICAgbV9wYWdlLT5saWJXZWJSVENQcm92aWRlcigpLnN1
cHBvcnRzSDI2NShSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYlJU
Q0gyNjVDb2RlY0VuYWJsZWQoKSk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
ICAgICAvLyBGSVhNRTogdXNlR1BVUHJvY2Vzc0Zvck1lZGlhIHNob3VsZCBiZSBhIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZSBzaW5jZSBpdCdzIGdsb2JhbC4KICAgICBzdGF0aWNfY2FzdDxXZWJNZWRp
YVN0cmF0ZWd5Jj4ocGxhdGZvcm1TdHJhdGVnaWVzKCktPm1lZGlhU3RyYXRlZ3koKSkuc2V0VXNl
R1BVUHJvY2VzcyhzZXR0aW5ncy51c2VHUFVQcm9jZXNzRm9yTWVkaWEoKSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmQy
NTNmNjViNjVlN2MzMmNiMDFjOGNlY2E1ZTY4Nzc1OTIyMzkwZi4uNjM5MDQwYmQ0ZDk3MzQwMzJj
YmFjNGQ3NzljMzI2YzFmMjk4YTY3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA0LTAx
ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgaW5pdGlh
bCBzdXBwb3J0IGZvciBXZWJSVEMgSEVWQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHdlYnJ0Yy9o
MjY1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2VicnRjL2gyNjUuaHRtbDogQWRk
ZWQuCisKIDIwMjAtMDQtMDEgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEJ1bXAgbGlid2VicnRjIHRvIE04MgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZmVmYmU5
MDhlM2Y0ZWU1MGU4YjQxZTQ4N2M0OTdmOTM1OGZlN2M4MC4uZWIxNjkzM2I4ZmE4N2M1NTNlMzlk
M2Q0ZjU2ZDFiOTNiYzZlMzFjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzc4LDYgKzE3Nzgs
OSBAQCB3ZWJraXQub3JnL2IvMTQ2MTgyIGVkaXRpbmcvc2VsZWN0aW9uL2xlYWstZG9jdW1lbnQt
d2l0aC1zZWxlY3Rpb24taW5zaWRlLmh0bWwgWwogIyBNZWRpYSBTZXNzaW9ucyBpcyBub3QgeWV0
IGVuYWJsZWQgYnkgZGVmYXVsdDogRU5BQkxFKE1FRElBX1NFU1NJT04pCiBtZWRpYS9zZXNzaW9u
IFsgU2tpcCBdCiAKKyMgRXhwZXJpbWVudGFsIEgyNjUgc3VwcG9ydC4KK3dlYnJ0Yy9oMjY1Lmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQorCiB3ZWJydGMvc2ltdWxjYXN0LWgyNjQuaHRtbCBbIFNsb3cg
XQogCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZl
ci1nZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzLmh0dHBzLmh0bWwgWyBTbG93IF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dl
YnJ0Yy9oMjY1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjk4M2JhZjliMzNlMDIxOTYxOTQ3
ZTgzYjZhM2E2ZGVmZWRlYzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRj
L2gyNjUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1ZpZGVvIHNob3VsZCBiZSBydW5u
aW5nLCBnbyB0byBibGFjayBhbmQgcnVubmluZy4KK0ZvbGxvd2luZywgc2hvdWxkIGJlIGEgc25h
cHNob3Qgb2YgdGhlIHZpZGVvLCBhIGJsYWNrIGZyYW1lIGFuZCBhIHNuYXBzaG90IG9mIHRoZSB2
aWRlby4KKyAgCisKK1BBU1MgSDI2NSBpbiBnZXRDYXBhYmlsaXRpZXMgCitQQVNTIFZlcmlmeSBI
MjY1IGFjdGl2YXRpb24gCitQQVNTIFNldHRpbmcgdmlkZW8gZXhjaGFuZ2UgCitQQVNTIEVuc3Vy
aW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29ubmVjdGVkIAorUEFTUyBUcmFjayBpcyBlbmFibGVk
LCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIAorUEFTUyBUcmFjayBpcyBkaXNhYmxlZCwgdmlk
ZW8gc2hvdWxkIGJlIGJsYWNrIAorUEFTUyBUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQg
bm90IGJlIGJsYWNrIDIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NWU2Njc1YjVj
NjQ5NGQxYzIyYjg4MDBkYjFhYzhlNTQzMTBlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJydGMvaDI2NS5odG1sCkBAIC0wLDAgKzEsOTQgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAg
ICAgPHRpdGxlPlRlc3RpbmcgbXV0aW5nIHZpZGVvPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAg
IDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdj5WaWRlbyBzaG91bGQgYmUgcnVubmlu
ZywgZ28gdG8gYmxhY2sgYW5kIHJ1bm5pbmcuPC9kaXY+CisgICAgICAgIDxkaXY+Rm9sbG93aW5n
LCBzaG91bGQgYmUgYSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8sIGEgYmxhY2sgZnJhbWUgYW5kIGEg
c25hcHNob3Qgb2YgdGhlIHZpZGVvLjwvZGl2PgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvIiBh
dXRvcGxheSBwbGF5c0lubGluZSB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+PC92aWRlbz4KKyAg
ICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMSIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2Fu
dmFzPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMyIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0
MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczMiIHdpZHRoPSIzMjAiIGhl
aWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPHNjcmlwdCBzcmMgPSJyb3V0aW5lcy5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+Cit2YXIgaGFzSDI2NSA9IGZhbHNlOwordGVzdCgo
KSA9PiB7CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuY2xlYXJQZWVyQ29ubmVjdGlvbkZhY3RvcnkoKTsKKworICAgIGNvbnN0IGNvZGVjcyA9IFJU
Q1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoInZpZGVvIikuY29kZWNzOworICAgIGhhc0gyNjUg
PSBjb2RlY3Muc29tZSgoY29kZWMpID0+IHsgcmV0dXJuIGNvZGVjLm1pbWVUeXBlID09ICJ2aWRl
by9IMjY1IjsgfSk7CisgICAgYXNzZXJ0X3RydWUoaGFzSDI2NSk7Cit9LCAiSDI2NSBpbiBnZXRD
YXBhYmlsaXRpZXMiKTsKKworaWYgKGhhc0gyNjUpIHsKKyAgICBwcm9taXNlX3Rlc3QoYXN5bmMg
KHRlc3QpID0+IHsKKyAgICAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICAgICAgcGMuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7CisgICAgICAgIGNvbnN0IGRlc2Ny
aXB0aW9uID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICAgICAgcGMuY2xvc2UoKTsKKyAg
ICAgICAgYXNzZXJ0X3RydWUoZGVzY3JpcHRpb24uc2RwLmluZGV4T2YoIkgyNjUiKSAhPT0gLTEs
ICJIMjY1IGNvZGVjIGlzIGluIHRoZSBTRFAiKTsKKyAgICB9LCAiVmVyaWZ5IEgyNjUgYWN0aXZh
dGlvbiIpCisKKyAgICB2YXIgdHJhY2s7CisgICAgdmFyIHJlbW90ZVRyYWNrOworICAgIHZhciBy
ZWNlaXZpbmdDb25uZWN0aW9uOworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAg
ICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB7d2lk
dGg6IDMyMCwgaGVpZ2h0OiAyNDAsIGZhY2luZ01vZGU6ICJlbnZpcm9ubWVudCJ9fSkudGhlbigo
bG9jYWxTdHJlYW0pID0+IHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgdHJhY2sgPSBsb2NhbFN0cmVhbS5nZXRW
aWRlb1RyYWNrcygpWzBdOworCisgICAgICAgICAgICAgICAgY3JlYXRlQ29ubmVjdGlvbnMoKGZp
cnN0Q29ubmVjdGlvbikgPT4geworICAgICAgICAgICAgICAgICAgICBmaXJzdENvbm5lY3Rpb24u
YWRkVHJhY2sodHJhY2ssIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgICAgICB9LCAoc2Vjb25k
Q29ubmVjdGlvbikgPT4geworICAgICAgICAgICAgICAgICAgICByZWNlaXZpbmdDb25uZWN0aW9u
ID0gc2Vjb25kQ29ubmVjdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgc2Vjb25kQ29ubmVjdGlv
bi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
bW90ZVRyYWNrID0gdHJhY2tFdmVudC50cmFjazsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
c29sdmUodHJhY2tFdmVudC5zdHJlYW1zWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgICAgICB9LCB7IG9ic2VydmVPZmZlciA6IChvZmZlcikgPT4geworICAgICAgICAg
ICAgICAgICAgICBvZmZlci5zZHAgPSBzZXRDb2RlYyhvZmZlci5zZHAsICJIMjY1Iik7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBvZmZlcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRl
c3QgdGltZWQgb3V0IiksIDIwMDApOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pLnRoZW4o
KHJlbW90ZVN0cmVhbSkgPT4geworICAgICAgICAgICAgdmlkZW8uc3JjT2JqZWN0ID0gcmVtb3Rl
U3RyZWFtOworICAgICAgICAgICAgcmV0dXJuIHZpZGVvLnBsYXkoKTsKKyAgICAgICAgfSk7Cisg
ICAgfSwgIlNldHRpbmcgdmlkZW8gZXhjaGFuZ2UiKTsKKworICAgIHByb21pc2VfdGVzdCgoKSA9
PiB7CisgICAgICAgIGlmIChyZWNlaXZpbmdDb25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9PT0g
ImNvbm5lY3RlZCIpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAg
ICByZWNlaXZpbmdDb25uZWN0aW9uLm9uY29ubmVjdGlvbnN0YXRlY2hhbmdlID0gKCkgPT4gewor
ICAgICAgICAgICAgICAgIGlmIChyZWNlaXZpbmdDb25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9
PT0gImNvbm5lY3RlZCIpCisgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
ICAgIH07CisgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBv
dXQiKSwgMjAwMCk7CisgICAgICAgIH0pOworICAgIH0sICJFbnN1cmluZyBjb25uZWN0aW9uIHN0
YXRlIGlzIGNvbm5lY3RlZCIpOworCisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAg
ICAgIHJldHVybiBjaGVja1ZpZGVvQmxhY2soZmFsc2UsIGNhbnZhczEsIHZpZGVvKTsKKyAgICB9
LCAiVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayIpOworCisgICAg
cHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHRyYWNrLmVuYWJsZWQgPSBmYWxzZTsK
KyAgICAgICAgcmV0dXJuIGNoZWNrVmlkZW9CbGFjayh0cnVlLCBjYW52YXMyLCB2aWRlbyk7Cisg
ICAgfSwgIlRyYWNrIGlzIGRpc2FibGVkLCB2aWRlbyBzaG91bGQgYmUgYmxhY2siKTsKKworICAg
IHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICB0cmFjay5lbmFibGVkID0gdHJ1ZTsK
KyAgICAgICAgcmV0dXJuIGNoZWNrVmlkZW9CbGFjayhmYWxzZSwgY2FudmFzMiwgdmlkZW8pOwor
ICAgIH0sICJUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQgbm90IGJlIGJsYWNrIDIiKTsK
K30KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395261</attachid>
            <date>2020-04-02 05:05:55 -0700</date>
            <delta_ts>2020-04-03 02:53:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204283-20200402140547.patch</filename>
            <type>text/plain</type>
            <size>256396</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA0ZDU0MmMzNmQ1MjViZmUyNjk4NWZiYjQzOTY5NTU5OGY2OGY5MWMxLi5mMzgy
ZGUwODBhNDg5MTU1ZjgzYTliZWM3NjM4NjkwNWI5ZThhNTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjYgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQg
Zm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgSDI2NSBwYWNrZXRpemF0aW9uL2RlcGFja2V0aXphdGlvbiBhbmQgT2JqQyBI
MjY1IGVuY29kZXIvZGVjb2Rlci4KKyAgICAgICAgU3VwcG9ydCBpcyBzd2l0Y2hhYmxlIHVzaW5n
IGEgYm9vbGVhbiBnaXZlbiB0byB0aGUgZGVjb2Rlci9lbmNvZGVyIGZhY3Rvcmllcy4KKworICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaDoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2M6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmg6CisgICAg
ICAgICh3ZWJydGM6OlZpZGVvQ29kZWNIMjY1OjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYzoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZp
Zy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5j
b2Rlcl9jb25maWcuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9i
dWlsZC5nbmk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jYWxsL3J0cF9wYXlsb2FkX3BhcmFt
cy5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbjoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjOiBB
ZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29t
bW9uLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9wcHNfcGFyc2VyLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1v
bl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYzogQWRkZWQuCisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaDog
QWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zw
c19wYXJzZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVv
L2gyNjUvaDI2NV92cHNfcGFyc2VyLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
bWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9t
ZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL2NyZWF0ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2Vy
LmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL2gyNjVfc3BzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKHdlYnJ0Yzo6SDI2NVNwc1Bh
cnNlcjo6d2lkdGgpOgorICAgICAgICAod2VicnRjOjpIMjY1U3BzUGFyc2VyOjpoZWlnaHQpOgor
ICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1h
dC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF9mb3JtYXRfaDI2NS5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaDogQWRkZWQuCisgICAgICAgICh3ZWJy
dGM6OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXQ6OlBhY2tldCk6CisgICAgICAgICh3ZWJydGM6
OlJ0cFBhY2tldGl6ZXJIMjY1OjpQYWNrZXRVbml0OjpQYWNrZXRVbml0KToKKyAgICAgICAgKHdl
YnJ0Yzo6VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1Ojp+VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1
KToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9z
ZW5kZXJfdmlkZW8uY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbjoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmg6IEFkZGVk
LgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9m
cmFtZS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gy
NjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaDogQWRkZWQu
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3Zp
ZGVvX2NvZGVjX2ludGVyZmFjZS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaDoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuY2M6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uY2M6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uaDoKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4cGVyaW1lbnRzL21pbl92aWRlb19iaXRy
YXRlX2V4cGVyaW1lbnQuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFV0aWxpdGllcy5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMubW06CisgICAgICAgICh3ZWJydGM6OmNyZWF0ZVdlYktpdEVuY29kZXJGYWN0
b3J5KToKKyAgICAgICAgKHdlYnJ0Yzo6Y3JlYXRlV2ViS2l0RGVjb2RlckZhY3RvcnkpOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmguCisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tOiBBZGRlZC4KKyAgICAg
ICAgKC1bUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXSk6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lmg6CisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IGluaXRX
aXRoSDI2NTpdKToKKyAgICAgICAgKC1bUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3Rvcnkgc3Vw
cG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
IGNyZWF0ZURlY29kZXI6XSk6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lmg6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0Rl
ZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm06CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0Vu
Y29kZXJGYWN0b3J5IGluaXRXaXRoSDI2NTpdKToKKyAgICAgICAgKCtbUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3Rvcnkgc3VwcG9ydGVkQ29kZWNzXSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRW
aWRlb0VuY29kZXJGYWN0b3J5IGNyZWF0ZUVuY29kZXI6XSk6CisgICAgICAgICgtW1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5IHN1cHBvcnRlZENvZGVjc10pOgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxl
dmVsSWQuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW06IEFkZGVkLgorICAgICAgICAq
IFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0Rl
Y29kZXJIMjY1Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RGVjb2RlckZhY3RvcnkuaC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBv
bmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5tbTogQWRkZWQuCisgICAgICAg
IChSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXM6OlJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyk6Cisg
ICAgICAgIChoMjY1RGVjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKToKKyAgICAgICAgKC1bUlRD
VmlkZW9EZWNvZGVySDI2NSBpbml0XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUg
ZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHN0YXJ0RGVjb2RlV2l0
aE51bWJlck9mQ29yZXM6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVjb2Rl
Om1pc3NpbmdGcmFtZXM6Y29kZWNTcGVjaWZpY0luZm86cmVuZGVyVGltZU1zOl0pOgorICAgICAg
ICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHNldENhbGxiYWNrOl0pOgorICAgICAgICAoLVtSVENW
aWRlb0RlY29kZXJIMjY1IHJlbGVhc2VEZWNvZGVyXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVj
b2RlckgyNjUgcmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAgICAoLVtSVENWaWRl
b0RlY29kZXJIMjY1IGNvbmZpZ3VyZURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjUgc2V0VmlkZW9Gb3JtYXQ6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRGVjb2RlckgyNjUgaW1wbGVtZW50YXRpb25OYW1lXSk6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2Rl
ckgyNjUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBpbml0V2l0aENvZGVjSW5mbzpdKToKKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2Rlckgy
NjUgc3RhcnRFbmNvZGVXaXRoU2V0dGluZ3M6bnVtYmVyT2ZDb3JlczpdKToKKyAgICAgICAgKC1b
UlRDVmlkZW9FbmNvZGVySDI2NSBlbmNvZGU6Y29kZWNTcGVjaWZpY0luZm86ZnJhbWVUeXBlczpd
KToKKyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRDYWxsYmFjazpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRCaXRyYXRlOmZyYW1lcmF0ZTpdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSByZWxlYXNlRW5jb2Rlcl0pOgorICAgICAgICAoLVtS
VENWaWRlb0VuY29kZXJIMjY1IHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgY29uZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uXSk6CisgICAg
ICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl0pOgor
ICAgICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAg
ICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IHNldEJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgc2V0RW5jb2RlckJpdHJhdGVCcHM6XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgZnJhbWVXYXNFbmNvZGVkOmZsYWdzOnNhbXBsZUJ1ZmZlcjp3
aWR0aDpoZWlnaHQ6cmVuZGVyVGltZU1zOnRpbWVzdGFtcDpyb3RhdGlvbjpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzY2FsaW5nU2V0dGluZ3NdKToKKyAgICAgICAgKiBTb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5j
YzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvbmFsdV9yZXdyaXRlci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbToKKyAgICAgICAgKHdlYnJ0Yzo6
T2JqQ1ZpZGVvRGVjb2RlckZhY3Rvcnk6OkNyZWF0ZVZpZGVvRGVjb2Rlcik6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0
b3J5Lm1tOgorICAgICAgICAod2VicnRjOjpPYmpDVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRl
VmlkZW9FbmNvZGVyKToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19z
dHJlYW1fcmVjZWl2ZXIuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlk
ZW9fc3RyZWFtX3JlY2VpdmVyLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9zZW5k
X3N0YXRpc3RpY3NfcHJveHkuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby92aWRl
b19yZWNlaXZlX3N0cmVhbS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVv
X3N0cmVhbV9lbmNvZGVyLmNjOgorICAgICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDIwLTA0LTAxICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4gYW5kIFZpY3RvciBNLiBKYXF1ZXogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBC
dW1wIGxpYndlYnJ0YyB0byBNODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkODczNWE4ZGMzMDQ4YTAzMzY3Nzkw
MTUzMTc1MDFlOTdiMzdlMjNkLi5mMDMzZmU3MjExZWU4NTQ5YjM3NDJiMWQyOTI5Nzg1ZWZiNmJm
YThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9y
IFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBydW50aW1lIGZsYWcgZm9yIEgyNjUgaW4gbGlldSBvZiBWUDggYW5kIHBpcGUg
aXQgdG8gbGlid2VicnRjIGZhY3Rvcmllcy4KKyAgICAgICAgVGVzdDogd2VicnRjL2gyNjUuaHRt
bAorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fZGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlcik6CisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3
ZWJSVENIMjY1Q29kZWNFbmFibGVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQpOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29h
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURl
Y29kZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6
OmNyZWF0ZUVuY29kZXJGYWN0b3J5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgor
CiAyMDIwLTA0LTAxICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgogCiAgICAg
ICAgIE5vdGlmeSBhY2Nlc3NpYmlsaXR5IHdoZW4gYSBub2RlIGlzIHJlbW92ZWQgZnJvbSBpdHMg
YW5jZXN0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkyNmNhYTU5YmY5ZGVlMGE5NDRmMGUwMGEyNDJhOGZmNzgw
NjExMGMuLmU1MmNmYTYyMmUyMWY4ZWY0YzgxYmIwZGY3YTk2N2QwNzhkZTEyMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIFdlYlJUQyBIRVZDCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyODMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgVlA4
IHJ1bnRpbWUgZmxhZyBhbmQgYWRkIGEgSDM2NSBydW50aW1lIGZsYWcgaW5zdGVhZC4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMpOgorCiAyMDIwLTA0LTAxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVwcmVjYXRlIFdLV2Vic2l0ZURhdGFTdG9yZS5faW5k
ZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFr
ZUxpc3RzLnR4dAppbmRleCAxZTZkNDhhNjRmZjhkN2UyMDI4ODA5ZGQ3ZGU4YjRiNjE1N2QwMmQx
Li43MGNjYzliZDBlMWQ4ZDU3Y2JmZGM1ZmVhNzJmZTlhYWU1MjAzODY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMudHh0CkBAIC0xNDA0LDYgKzE0MDQsNyBAQCB0
YXJnZXRfY29tcGlsZV9vcHRpb25zKHdlYnJ0YyBQUklWQVRFCiAKIHRhcmdldF9jb21waWxlX2Rl
ZmluaXRpb25zKHdlYnJ0YyBQUklWQVRFCiAgIE9QRU5TU0xfTk9fQVNNCisgIERJU0FCTEVfSDI2
NQogICBEWU5BTUlDX0FOTk9UQVRJT05TX0VOQUJMRUQ9MQogICBFWFBBVF9SRUxBVElWRV9QQVRI
CiAgIEhBVkVfTFJJTlQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmggYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5o
CmluZGV4IDEyZGNmYWMxYjlhNjg2ODc5MjBhZWJjODA0NWI2MmM1NzQ0OTJiZTcuLmM0ZTQ1ZGJk
YzBhNDk5MjcxMTNiMGU1MTAxZTU0Y2VlZTkwNTdhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBl
LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3Zp
ZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaApAQCAtMjIsNiArMjIsOSBAQCBlbnVtIFZpZGVvQ29kZWNU
eXBlIHsKICAga1ZpZGVvQ29kZWNWUDksCiAgIGtWaWRlb0NvZGVjQVYxLAogICBrVmlkZW9Db2Rl
Y0gyNjQsCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBrVmlkZW9Db2RlY0gyNjUsCisjZW5kaWYK
ICAga1ZpZGVvQ29kZWNNdWx0aXBsZXgsCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVj
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVv
X2NvZGVjcy92aWRlb19jb2RlYy5jYwppbmRleCBkMDMwODJiOTFlMzhjNDdiNGQ0YjE4MGYwZDIz
NThjMzkxMzFkMzk5Li41NGY3ODkwMDQ2NjJmODRjZjE1MTBhOTFjM2Y1NWU0ZDA3Mjk0NTFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkv
dmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2MKQEAgLTI1
LDYgKzI1LDkgQEAgY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lVnA5W10gPSAiVlA5IjsKIC8v
IGZyb3plbi4KIGNvbnN0ZXhwciBjaGFyIGtQYXlsb2FkTmFtZUF2MVtdID0gIkFWMVgiOwogY29u
c3RleHByIGNoYXIga1BheWxvYWROYW1lSDI2NFtdID0gIkgyNjQiOworI2lmbmRlZiBESVNBQkxF
X0gyNjUKK2NvbnN0ZXhwciBjaGFyIGtQYXlsb2FkTmFtZUgyNjVbXSA9ICJIMjY1IjsKKyNlbmRp
ZgogY29uc3RleHByIGNoYXIga1BheWxvYWROYW1lR2VuZXJpY1tdID0gIkdlbmVyaWMiOwogY29u
c3RleHByIGNoYXIga1BheWxvYWROYW1lTXVsdGlwbGV4W10gPSAiTXVsdGlwbGV4IjsKIH0gIC8v
IG5hbWVzcGFjZQpAQCAtNTYsNiArNTksMTcgQEAgYm9vbCBWaWRlb0NvZGVjSDI2NDo6b3BlcmF0
b3I9PShjb25zdCBWaWRlb0NvZGVjSDI2NCYgb3RoZXIpIGNvbnN0IHsKICAgICAgICAgICBudW1i
ZXJPZlRlbXBvcmFsTGF5ZXJzID09IG90aGVyLm51bWJlck9mVGVtcG9yYWxMYXllcnMpOwogfQog
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorYm9vbCBWaWRlb0NvZGVjSDI2NTo6b3BlcmF0b3I9PShj
b25zdCBWaWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsKKyAgcmV0dXJuIChmcmFtZURyb3Bw
aW5nT24gPT0gb3RoZXIuZnJhbWVEcm9wcGluZ09uICYmCisgICAgICAgICAga2V5RnJhbWVJbnRl
cnZhbCA9PSBvdGhlci5rZXlGcmFtZUludGVydmFsICYmCisgICAgICAgICAgdnBzTGVuID09IG90
aGVyLnZwc0xlbiAmJiBzcHNMZW4gPT0gb3RoZXIuc3BzTGVuICYmCisgICAgICAgICAgcHBzTGVu
ID09IG90aGVyLnBwc0xlbiAmJgorICAgICAgICAgIChzcHNMZW4gPT0gMCB8fCBtZW1jbXAoc3Bz
RGF0YSwgb3RoZXIuc3BzRGF0YSwgc3BzTGVuKSA9PSAwKSAmJgorICAgICAgICAgIChwcHNMZW4g
PT0gMCB8fCBtZW1jbXAocHBzRGF0YSwgb3RoZXIucHBzRGF0YSwgcHBzTGVuKSA9PSAwKSk7Cit9
CisjZW5kaWYKKwogYm9vbCBTcGF0aWFsTGF5ZXI6Om9wZXJhdG9yPT0oY29uc3QgU3BhdGlhbExh
eWVyJiBvdGhlcikgY29uc3QgewogICByZXR1cm4gKHdpZHRoID09IG90aGVyLndpZHRoICYmIGhl
aWdodCA9PSBvdGhlci5oZWlnaHQgJiYKICAgICAgICAgICBtYXhGcmFtZXJhdGUgPT0gb3RoZXIu
bWF4RnJhbWVyYXRlICYmCkBAIC0xMTUsNiArMTI5LDE4IEBAIGNvbnN0IFZpZGVvQ29kZWNIMjY0
JiBWaWRlb0NvZGVjOjpIMjY0KCkgY29uc3QgewogICByZXR1cm4gY29kZWNfc3BlY2lmaWNfLkgy
NjQ7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitWaWRlb0NvZGVjSDI2NSogVmlkZW9Db2Rl
Yzo6SDI2NSgpIHsKKyAgUlRDX0RDSEVDS19FUShjb2RlY1R5cGUsIGtWaWRlb0NvZGVjSDI2NSk7
CisgIHJldHVybiAmY29kZWNfc3BlY2lmaWNfLkgyNjU7Cit9CisKK2NvbnN0IFZpZGVvQ29kZWNI
MjY1JiBWaWRlb0NvZGVjOjpIMjY1KCkgY29uc3QgeworICBSVENfRENIRUNLX0VRKGNvZGVjVHlw
ZSwga1ZpZGVvQ29kZWNIMjY1KTsKKyAgcmV0dXJuIGNvZGVjX3NwZWNpZmljXy5IMjY1OworfQor
I2VuZGlmCisKIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5bG9hZFN0cmluZyhWaWRlb0NvZGVj
VHlwZSB0eXBlKSB7CiAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6
CkBAIC0xMjUsNiArMTUxLDEwIEBAIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5bG9hZFN0cmlu
ZyhWaWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgICAgICByZXR1cm4ga1BheWxvYWROYW1lQXYxOwog
ICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZUgyNjQ7
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAgICAg
cmV0dXJuIGtQYXlsb2FkTmFtZUgyNjU7CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjTXVs
dGlwbGV4OgogICAgICAgcmV0dXJuIGtQYXlsb2FkTmFtZU11bHRpcGxleDsKICAgICBjYXNlIGtW
aWRlb0NvZGVjR2VuZXJpYzoKQEAgLTE0MSw2ICsxNzEsMTAgQEAgVmlkZW9Db2RlY1R5cGUgUGF5
bG9hZFN0cmluZ1RvQ29kZWNUeXBlKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKSB7CiAgICAgcmV0
dXJuIGtWaWRlb0NvZGVjQVYxOwogICBpZiAoYWJzbDo6RXF1YWxzSWdub3JlQ2FzZShuYW1lLCBr
UGF5bG9hZE5hbWVIMjY0KSkKICAgICByZXR1cm4ga1ZpZGVvQ29kZWNIMjY0OworI2lmbmRlZiBE
SVNBQkxFX0gyNjUKKyAgaWYgKGFic2w6OkVxdWFsc0lnbm9yZUNhc2UobmFtZSwga1BheWxvYWRO
YW1lSDI2NSkpCisgICAgcmV0dXJuIGtWaWRlb0NvZGVjSDI2NTsKKyNlbmRpZgogICBpZiAoYWJz
bDo6RXF1YWxzSWdub3JlQ2FzZShuYW1lLCBrUGF5bG9hZE5hbWVNdWx0aXBsZXgpKQogICAgIHJl
dHVybiBrVmlkZW9Db2RlY011bHRpcGxleDsKICAgcmV0dXJuIGtWaWRlb0NvZGVjR2VuZXJpYzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Fw
aS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaAppbmRleCAzMzBi
YmJjZTE5OTA1NDBlNzQ1ZDQ3Y2Y2ZWM2NTdkZTI5NDM0Y2I3Li43NDgzYWZkZmFmNzlkODcyOGM4
YzIzODY5NTViN2Q3NjYxZDVhOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmgKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19jb2RlYy5oCkBAIC04NCw2ICs4NCwyMyBAQCBzdHJ1Y3QgVmlkZW9Db2RlY0gyNjQg
ewogICB1aW50OF90IG51bWJlck9mVGVtcG9yYWxMYXllcnM7CiB9OwogCisjaWZuZGVmIERJU0FC
TEVfSDI2NQorc3RydWN0IFZpZGVvQ29kZWNIMjY1IHsKKyAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IFZpZGVvQ29kZWNIMjY1JiBvdGhlcikgY29uc3Q7CisgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBW
aWRlb0NvZGVjSDI2NSYgb3RoZXIpIGNvbnN0IHsKKyAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhl
cik7CisgIH0KKyAgYm9vbCBmcmFtZURyb3BwaW5nT247CisgIGludCBrZXlGcmFtZUludGVydmFs
OworICBjb25zdCB1aW50OF90KiB2cHNEYXRhOworICBzaXplX3QgdnBzTGVuOworICBjb25zdCB1
aW50OF90KiBzcHNEYXRhOworICBzaXplX3Qgc3BzTGVuOworICBjb25zdCB1aW50OF90KiBwcHNE
YXRhOworICBzaXplX3QgcHBzTGVuOworfTsKKyNlbmRpZgorCiAvLyBUcmFuc2xhdGVzIGZyb20g
bmFtZSBvZiBjb2RlYyB0byBjb2RlYyB0eXBlIGFuZCB2aWNlIHZlcnNhLgogUlRDX0VYUE9SVCBj
b25zdCBjaGFyKiBDb2RlY1R5cGVUb1BheWxvYWRTdHJpbmcoVmlkZW9Db2RlY1R5cGUgdHlwZSk7
CiBSVENfRVhQT1JUIFZpZGVvQ29kZWNUeXBlIFBheWxvYWRTdHJpbmdUb0NvZGVjVHlwZShjb25z
dCBzdGQ6OnN0cmluZyYgbmFtZSk7CkBAIC05Miw2ICsxMDksOSBAQCB1bmlvbiBWaWRlb0NvZGVj
VW5pb24gewogICBWaWRlb0NvZGVjVlA4IFZQODsKICAgVmlkZW9Db2RlY1ZQOSBWUDk7CiAgIFZp
ZGVvQ29kZWNIMjY0IEgyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBWaWRlb0NvZGVjSDI2
NSBIMjY1OworI2VuZGlmCiB9OwogCiBlbnVtIGNsYXNzIFZpZGVvQ29kZWNNb2RlIHsga1JlYWx0
aW1lVmlkZW8sIGtTY3JlZW5zaGFyaW5nIH07CkBAIC0xNTksNiArMTc5LDEwIEBAIGNsYXNzIFJU
Q19FWFBPUlQgVmlkZW9Db2RlYyB7CiAgIGNvbnN0IFZpZGVvQ29kZWNWUDkmIFZQOSgpIGNvbnN0
OwogICBWaWRlb0NvZGVjSDI2NCogSDI2NCgpOwogICBjb25zdCBWaWRlb0NvZGVjSDI2NCYgSDI2
NCgpIGNvbnN0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgVmlkZW9Db2RlY0gyNjUqIEgyNjUo
KTsKKyAgY29uc3QgVmlkZW9Db2RlY0gyNjUmIEgyNjUoKSBjb25zdDsKKyNlbmRpZgogCiAgcHJp
dmF0ZToKICAgLy8gVE9ETyhodGEpOiBDb25zaWRlciByZXBsYWNpbmcgdGhlIHVuaW9uIHdpdGgg
YSBwb2ludGVyIHR5cGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2MgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVv
X2VuY29kZXIuY2MKaW5kZXggNDQyN2Q2YzFmMTYxMjhkNGE0N2JlMmJkYzEyNWZlZDk3NDQxMDUx
YS4uYjY2YTRmNDFkMmViNjUyZWQ4ZDM4NzRiOTllNzI4MTQ5ZjUzMzVhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19lbmNvZGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYwpAQCAtNjAsNiArNjAs
MjMgQEAgVmlkZW9Db2RlY0gyNjQgVmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0SDI2NFNldHRpbmdz
KCkgewogICByZXR1cm4gaDI2NF9zZXR0aW5nczsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUK
K1ZpZGVvQ29kZWNIMjY1IFZpZGVvRW5jb2Rlcjo6R2V0RGVmYXVsdEgyNjVTZXR0aW5ncygpIHsK
KyAgVmlkZW9Db2RlY0gyNjUgaDI2NV9zZXR0aW5nczsKKyAgbWVtc2V0KCZoMjY1X3NldHRpbmdz
LCAwLCBzaXplb2YoaDI2NV9zZXR0aW5ncykpOworCisgIC8vIGgyNjVfc2V0dGluZ3MucHJvZmls
ZSA9IGtQcm9maWxlQmFzZTsKKyAgaDI2NV9zZXR0aW5ncy5mcmFtZURyb3BwaW5nT24gPSB0cnVl
OworICBoMjY1X3NldHRpbmdzLmtleUZyYW1lSW50ZXJ2YWwgPSAzMDAwOworICBoMjY1X3NldHRp
bmdzLnNwc0RhdGEgPSBudWxscHRyOworICBoMjY1X3NldHRpbmdzLnNwc0xlbiA9IDA7CisgIGgy
NjVfc2V0dGluZ3MucHBzRGF0YSA9IG51bGxwdHI7CisgIGgyNjVfc2V0dGluZ3MucHBzTGVuID0g
MDsKKworICByZXR1cm4gaDI2NV9zZXR0aW5nczsKK30KKyNlbmRpZgorCiBWaWRlb0VuY29kZXI6
OlNjYWxpbmdTZXR0aW5nczo6U2NhbGluZ1NldHRpbmdzKCkgPSBkZWZhdWx0OwogCiBWaWRlb0Vu
Y29kZXI6OlNjYWxpbmdTZXR0aW5nczo6U2NhbGluZ1NldHRpbmdzKEtPZmYpIDogU2NhbGluZ1Nl
dHRpbmdzKCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNv
ZGVyLmgKaW5kZXggMDY0ZGM4ZmZiNTExM2I4NDYzZWZkZWU4YTM5ZWI1NjJlZTgzY2U5Mi4uY2E3
YTJkOGY5NWFlYmQ2OTYwYzAwNDBhMGNkZjQ4OWEwYTU2OGI2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRl
b19lbmNvZGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyLmgKQEAgLTMyMCw2ICszMjAsOSBAQCBj
bGFzcyBSVENfRVhQT1JUIFZpZGVvRW5jb2RlciB7CiAgIHN0YXRpYyBWaWRlb0NvZGVjVlA4IEdl
dERlZmF1bHRWcDhTZXR0aW5ncygpOwogICBzdGF0aWMgVmlkZW9Db2RlY1ZQOSBHZXREZWZhdWx0
VnA5U2V0dGluZ3MoKTsKICAgc3RhdGljIFZpZGVvQ29kZWNIMjY0IEdldERlZmF1bHRIMjY0U2V0
dGluZ3MoKTsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0YXRpYyBWaWRlb0NvZGVjSDI2NSBH
ZXREZWZhdWx0SDI2NVNldHRpbmdzKCk7CisjZW5kaWYKIAogICB2aXJ0dWFsIH5WaWRlb0VuY29k
ZXIoKSB7fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRl
b19lbmNvZGVyX2NvbmZpZy5jYwppbmRleCA2ZWZjYmYyYmRkYjcyMTIzZjFkYjZjMmUwMDMwMWM3
NTI5NDIzMDNkLi4wMThlOTNiZWI5MTk2NzBmZmZhOTNlMDhjZWMyMjcxYTgzMGFkNGUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlk
ZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9j
b25maWcuY2MKQEAgLTkzLDYgKzkzLDEwIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNv
ZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbEVuY29kZXJTcGVjaWZpY1NldHRpbmdzKAogICAgIEZp
bGxWaWRlb0NvZGVjVnA4KGNvZGVjLT5WUDgoKSk7CiAgIH0gZWxzZSBpZiAoY29kZWMtPmNvZGVj
VHlwZSA9PSBrVmlkZW9Db2RlY1ZQOSkgewogICAgIEZpbGxWaWRlb0NvZGVjVnA5KGNvZGVjLT5W
UDkoKSk7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB9IGVsc2UgaWYgKGNvZGVjLT5jb2RlY1R5
cGUgPT0ga1ZpZGVvQ29kZWNIMjY1KSB7CisgICAgRmlsbFZpZGVvQ29kZWNIMjY1KGNvZGVjLT5I
MjY1KCkpOworI2VuZGlmCiAgIH0gZWxzZSB7CiAgICAgUlRDX05PVFJFQUNIRUQoKSA8PCAiRW5j
b2RlciBzcGVjaWZpY3Mgc2V0L3VzZWQgZm9yIHVua25vd24gY29kZWMgdHlwZS4iOwogICB9CkBA
IC0xMDMsNiArMTA3LDEzIEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpFbmNvZGVyU3BlY2lm
aWNTZXR0aW5nczo6RmlsbFZpZGVvQ29kZWNIMjY0KAogICBSVENfTk9UUkVBQ0hFRCgpOwogfQog
CisjaWZuZGVmIERJU0FCTEVfSDI2NQordm9pZCBWaWRlb0VuY29kZXJDb25maWc6OkVuY29kZXJT
cGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjUoCisgICAgVmlkZW9Db2RlY0gyNjUq
IGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAgUlRDX05PVFJFQUNIRUQoKTsKK30KKyNlbmRpZgor
CiB2b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OkZpbGxW
aWRlb0NvZGVjVnA4KAogICAgIFZpZGVvQ29kZWNWUDgqIHZwOF9zZXR0aW5ncykgY29uc3Qgewog
ICBSVENfTk9UUkVBQ0hFRCgpOwpAQCAtMTIyLDYgKzEzMywxNyBAQCB2b2lkIFZpZGVvRW5jb2Rl
ckNvbmZpZzo6SDI2NEVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjQo
CiAgICpoMjY0X3NldHRpbmdzID0gc3BlY2lmaWNzXzsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gy
NjUKK1ZpZGVvRW5jb2RlckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpIMjY1
RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoCisgICAgY29uc3QgVmlkZW9Db2RlY0gyNjUmIHNwZWNp
ZmljcykKKyAgICA6IHNwZWNpZmljc18oc3BlY2lmaWNzKSB7fQorCit2b2lkIFZpZGVvRW5jb2Rl
ckNvbmZpZzo6SDI2NUVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2RlY0gyNjUo
CisgICAgVmlkZW9Db2RlY0gyNjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IHsKKyAgKmgyNjVfc2V0
dGluZ3MgPSBzcGVjaWZpY3NfOworfQorI2VuZGlmCisKIFZpZGVvRW5jb2RlckNvbmZpZzo6VnA4
RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OlZwOEVuY29kZXJTcGVjaWZpY1NldHRpbmdzKAogICAg
IGNvbnN0IFZpZGVvQ29kZWNWUDgmIHNwZWNpZmljcykKICAgICA6IHNwZWNpZmljc18oc3BlY2lm
aWNzKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5oIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19l
bmNvZGVyX2NvbmZpZy5oCmluZGV4IGVmOGRiMTAwYTMyYTIwNWJiZDlkNmZlNzliMjUzNDJmOTMw
YzRlMDUuLmQ1NTk0ZjM2NjQxYTI1YzQzMDAwYTYzYzg1NjBkZjZhZjcwOGUyOGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19j
b2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmln
LmgKQEAgLTg0LDYgKzg0LDkgQEAgY2xhc3MgVmlkZW9FbmNvZGVyQ29uZmlnIHsKICAgICB2aXJ0
dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDgoVmlkZW9Db2RlY1ZQOCogdnA4X3NldHRpbmdzKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNWcDkoVmlkZW9Db2RlY1ZQOSog
dnA5X3NldHRpbmdzKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgRmlsbFZpZGVvQ29kZWNIMjY0
KFZpZGVvQ29kZWNIMjY0KiBoMjY0X3NldHRpbmdzKSBjb25zdDsKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CisgICAgdmlydHVhbCB2b2lkIEZpbGxWaWRlb0NvZGVjSDI2NShWaWRlb0NvZGVjSDI2NSog
aDI2NV9zZXR0aW5ncykgY29uc3Q7CisjZW5kaWYKIAogICAgcHJpdmF0ZToKICAgICB+RW5jb2Rl
clNwZWNpZmljU2V0dGluZ3MoKSBvdmVycmlkZSB7fQpAQCAtOTksNiArMTAyLDE3IEBAIGNsYXNz
IFZpZGVvRW5jb2RlckNvbmZpZyB7CiAgICAgVmlkZW9Db2RlY0gyNjQgc3BlY2lmaWNzXzsKICAg
fTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgY2xhc3MgSDI2NUVuY29kZXJTcGVjaWZpY1Nl
dHRpbmdzIDogcHVibGljIEVuY29kZXJTcGVjaWZpY1NldHRpbmdzIHsKKyAgIHB1YmxpYzoKKyAg
ICBleHBsaWNpdCBIMjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3QgVmlkZW9Db2RlY0gy
NjUmIHNwZWNpZmljcyk7CisgICAgdm9pZCBGaWxsVmlkZW9Db2RlY0gyNjUoVmlkZW9Db2RlY0gy
NjUqIGgyNjVfc2V0dGluZ3MpIGNvbnN0IG92ZXJyaWRlOworCisgICBwcml2YXRlOgorICAgIFZp
ZGVvQ29kZWNIMjY1IHNwZWNpZmljc187CisgIH07CisjZW5kaWYKKwogICBjbGFzcyBWcDhFbmNv
ZGVyU3BlY2lmaWNTZXR0aW5ncyA6IHB1YmxpYyBFbmNvZGVyU3BlY2lmaWNTZXR0aW5ncyB7CiAg
ICBwdWJsaWM6CiAgICAgZXhwbGljaXQgVnA4RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoY29uc3Qg
VmlkZW9Db2RlY1ZQOCYgc3BlY2lmaWNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9idWlsZF9vdmVycmlkZXMvYnVp
bGQuZ25pCmluZGV4IDY2OTA0NGRiODFjYjIxODViZTM3NGIwYjEwMDI3MDkzYzU2ODNjMzUuLjYw
MjVjZGRkMDQ3ZTA5YjFkMGQyNWUwMzQxYTVmY2M1OTU5NzAyODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWls
ZC5nbmkKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYnVp
bGRfb3ZlcnJpZGVzL2J1aWxkLmduaQpAQCAtMzUsNiArMzUsMTIgQEAgbGludF9zdXBwcmVzc2lv
bnNfZmlsZSA9ICIvL3Rvb2xzX3dlYnJ0Yy9hbmRyb2lkL3N1cHByZXNzaW9ucy54bWwiCiAjIHNv
IHdlIGp1c3QgaWdub3JlIHRoYXQgYXNzZXJ0LiBTZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNjQ4OTQ4
IGZvciBtb3JlIGluZm8uCiBpZ25vcmVfZWxmMzJfbGltaXRhdGlvbnMgPSB0cnVlCiAKK2lmIChp
c193aW4gfHwgaXNfaW9zIHx8IGlzX2FuZHJvaWQpIHsKKyAgcnRjX3VzZV9oMjY1ID0gdHJ1ZQor
fSBlbHNlIHsKKyAgcnRjX3VzZV9oMjY1ID0gZmFsc2UKK30KKwogIyBVc2UgYnVuZGxlZCBoZXJt
ZXRpYyBYY29kZSBpbnN0YWxsYXRpb24gbWFpbnRhaW50ZWQgYnkgQ2hyb21pdW0sCiAjIGV4Y2Vw
dCBmb3IgbG9jYWwgaU9TIGJ1aWxkcyB3aGVyZSBpdCdzIHVuc3VwcG9ydGVkLgogaWYgKGhvc3Rf
b3MgPT0gIm1hYyIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2NhbGwvcnRwX3BheWxvYWRfcGFyYW1zLmNjIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKaW5k
ZXggMzFjYjc0M2Q5ZDkzNjc2ZTFjNmVlNjg1MDliNjU1ODVhZjE0NGUwNC4uM2FhZGY4OWViODNl
ODY0NDBiZmZhZmE2MmU2NDNkMzM3MmE3MWM1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJhbXMuY2MKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5
bG9hZF9wYXJhbXMuY2MKQEAgLTEwNSw2ICsxMDUsMTQgQEAgdm9pZCBQb3B1bGF0ZVJ0cFdpdGhD
b2RlY1NwZWNpZmljcyhjb25zdCBDb2RlY1NwZWNpZmljSW5mbyYgaW5mbywKICAgICAgIH0KICAg
ICAgIHJldHVybjsKICAgICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVv
Q29kZWNIMjY1OiB7CisgICAgICBhdXRvIGgyNjVfaGVhZGVyID0gcnRwLT52aWRlb190eXBlX2hl
YWRlci5lbXBsYWNlPFJUUFZpZGVvSGVhZGVySDI2NT4oKTsKKyAgICAgIGgyNjVfaGVhZGVyLnBh
Y2tldGl6YXRpb25fbW9kZSA9CisgICAgICAgICAgaW5mby5jb2RlY1NwZWNpZmljLkgyNjUucGFj
a2V0aXphdGlvbl9tb2RlOworICAgIH0KKyAgICByZXR1cm47CisjZW5kaWYKICAgICBjYXNlIGtW
aWRlb0NvZGVjTXVsdGlwbGV4OgogICAgIGNhc2Uga1ZpZGVvQ29kZWNHZW5lcmljOgogICAgICAg
cnRwLT5jb2RlYyA9IGtWaWRlb0NvZGVjR2VuZXJpYzsKQEAgLTMwMCw2ICszMDgsOSBAQCB2b2lk
IFJ0cFBheWxvYWRQYXJhbXM6OlNldEdlbmVyaWMoY29uc3QgQ29kZWNTcGVjaWZpY0luZm8qIGNv
ZGVjX3NwZWNpZmljX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgaXNfa2V5ZnJhbWUsIHJ0
cF92aWRlb19oZWFkZXIpOwogICAgICAgfQogICAgICAgcmV0dXJuOworI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyAgICBjYXNlIFZpZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY0gyNjU6CisjZW5kaWYK
ICAgICBjYXNlIFZpZGVvQ29kZWNUeXBlOjprVmlkZW9Db2RlY011bHRpcGxleDoKICAgICAgIHJl
dHVybjsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL0JVSUxELmduCmluZGV4IGRkZjRjMmQ0OTU5
YWVkZTQxOGQyNWQ1YzhlN2I4MGU1MzYwODM1MGIuLjdkNDg5NmVkN2NlODhiNTM0NWZkYWM4MDQ5
NGJmNWZmOWZlMjcwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vQlVJTEQuZ24KQEAgLTQxLDYg
KzQxLDE5IEBAIHJ0Y19saWJyYXJ5KCJjb21tb25fdmlkZW8iKSB7CiAgICAgInZpZGVvX3JlbmRl
cl9mcmFtZXMuaCIsCiAgIF0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyAr
PSBbCisgICAgICAiaDI2NS9oMjY1X2NvbW1vbi5jYyIsCisgICAgICAiaDI2NS9oMjY1X2NvbW1v
bi5oIiwKKyAgICAgICJoMjY1L2gyNjVfcHBzX3BhcnNlci5jYyIsCisgICAgICAiaDI2NS9oMjY1
X3Bwc19wYXJzZXIuaCIsCisgICAgICAiaDI2NS9oMjY1X3Nwc19wYXJzZXIuY2MiLAorICAgICAg
ImgyNjUvaDI2NV9zcHNfcGFyc2VyLmgiLAorICAgICAgImgyNjUvaDI2NV92cHNfcGFyc2VyLmNj
IiwKKyAgICAgICJoMjY1L2gyNjVfdnBzX3BhcnNlci5oIiwKKyAgICBdCisgIH0KKwogICBkZXBz
ID0gWwogICAgICIuLi9hcGk6c2NvcGVkX3JlZnB0ciIsCiAgICAgIi4uL2FwaS90YXNrX3F1ZXVl
IiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uY2MKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmIyY2FjMjI3NTlkOGJkYmJmZmJmMGY3MTRlOTE0N2U2NDIzYjYzZgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nv
bW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmNjCkBAIC0wLDAgKzEsMTEwIEBACisvKgorICog
IENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9u
YWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBp
biB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5
CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9u
LmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworbmFtZXNwYWNlIEgyNjUgeworCitjb25zdCB1aW50
OF90IGtOYWx1VHlwZU1hc2sgPSAweDdFOworCitzdGQ6OnZlY3RvcjxOYWx1SW5kZXg+IEZpbmRO
YWx1SW5kaWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUpIHsKKyAgLy8gVGhpcyBpcyBzb3J0
YSBsaWtlIEJveWVyLU1vb3JlLCBidXQgd2l0aCBvbmx5IHRoZSBmaXJzdCBvcHRpbWl6YXRpb24g
c3RlcDoKKyAgLy8gZ2l2ZW4gYSAzLWJ5dGUgc2VxdWVuY2Ugd2UncmUgbG9va2luZyBhdCwgaWYg
dGhlIDNyZCBieXRlIGlzbid0IDEgb3IgMCwKKyAgLy8gc2tpcCBhaGVhZCB0byB0aGUgbmV4dCAz
LWJ5dGUgc2VxdWVuY2UuIDBzIGFuZCAxcyBhcmUgcmVsYXRpdmVseSByYXJlLCBzbworICAvLyB0
aGlzIHdpbGwgc2tpcCB0aGUgbWFqb3JpdHkgb2YgcmVhZHMvY2hlY2tzLgorICBzdGQ6OnZlY3Rv
cjxOYWx1SW5kZXg+IHNlcXVlbmNlczsKKyAgaWYgKGJ1ZmZlcl9zaXplIDwga05hbHVTaG9ydFN0
YXJ0U2VxdWVuY2VTaXplKQorICAgIHJldHVybiBzZXF1ZW5jZXM7CisKKyAgY29uc3Qgc2l6ZV90
IGVuZCA9IGJ1ZmZlcl9zaXplIC0ga05hbHVTaG9ydFN0YXJ0U2VxdWVuY2VTaXplOworICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGVuZDspIHsKKyAgICBpZiAoYnVmZmVyW2kgKyAyXSA+IDEpIHsK
KyAgICAgIGkgKz0gMzsKKyAgICB9IGVsc2UgaWYgKGJ1ZmZlcltpICsgMl0gPT0gMSAmJiBidWZm
ZXJbaSArIDFdID09IDAgJiYgYnVmZmVyW2ldID09IDApIHsKKyAgICAgIC8vIFdlIGZvdW5kIGEg
c3RhcnQgc2VxdWVuY2UsIG5vdyBjaGVjayBpZiBpdCB3YXMgYSAzIG9mIDQgYnl0ZSBvbmUuCisg
ICAgICBOYWx1SW5kZXggaW5kZXggPSB7aSwgaSArIDMsIDB9OworICAgICAgaWYgKGluZGV4LnN0
YXJ0X29mZnNldCA+IDAgJiYgYnVmZmVyW2luZGV4LnN0YXJ0X29mZnNldCAtIDFdID09IDApCisg
ICAgICAgIC0taW5kZXguc3RhcnRfb2Zmc2V0OworCisgICAgICAvLyBVcGRhdGUgbGVuZ3RoIG9m
IHByZXZpb3VzIGVudHJ5LgorICAgICAgYXV0byBpdCA9IHNlcXVlbmNlcy5yYmVnaW4oKTsKKyAg
ICAgIGlmIChpdCAhPSBzZXF1ZW5jZXMucmVuZCgpKQorICAgICAgICBpdC0+cGF5bG9hZF9zaXpl
ID0gaW5kZXguc3RhcnRfb2Zmc2V0IC0gaXQtPnBheWxvYWRfc3RhcnRfb2Zmc2V0OworCisgICAg
ICBzZXF1ZW5jZXMucHVzaF9iYWNrKGluZGV4KTsKKworICAgICAgaSArPSAzOworICAgIH0gZWxz
ZSB7CisgICAgICArK2k7CisgICAgfQorICB9CisKKyAgLy8gVXBkYXRlIGxlbmd0aCBvZiBsYXN0
IGVudHJ5LCBpZiBhbnkuCisgIGF1dG8gaXQgPSBzZXF1ZW5jZXMucmJlZ2luKCk7CisgIGlmIChp
dCAhPSBzZXF1ZW5jZXMucmVuZCgpKQorICAgIGl0LT5wYXlsb2FkX3NpemUgPSBidWZmZXJfc2l6
ZSAtIGl0LT5wYXlsb2FkX3N0YXJ0X29mZnNldDsKKworICByZXR1cm4gc2VxdWVuY2VzOworfQor
CitOYWx1VHlwZSBQYXJzZU5hbHVUeXBlKHVpbnQ4X3QgZGF0YSkgeworICByZXR1cm4gc3RhdGlj
X2Nhc3Q8TmFsdVR5cGU+KChkYXRhICYga05hbHVUeXBlTWFzaykgPj4gMSk7Cit9CisKK3N0ZDo6
dmVjdG9yPHVpbnQ4X3Q+IFBhcnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVu
Z3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG91dDsKKyAgb3V0LnJlc2VydmUobGVuZ3Ro
KTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDspIHsKKyAgICAvLyBCZSBjYXJl
ZnVsIGFib3V0IG92ZXIvdW5kZXJmbG93IGhlcmUuIGJ5dGVfbGVuZ3RoXyAtIDMgY2FuIHVuZGVy
ZmxvdywgYW5kCisgICAgLy8gaSArIDMgY2FuIG92ZXJmbG93LCBidXQgYnl0ZV9sZW5ndGhfIC0g
aSBjYW4ndCwgYmVjYXVzZSBpIDwgYnl0ZV9sZW5ndGhfCisgICAgLy8gYWJvdmUsIGFuZCB0aGF0
IGV4cHJlc3Npb24gd2lsbCBwcm9kdWNlIHRoZSBudW1iZXIgb2YgYnl0ZXMgbGVmdCBpbgorICAg
IC8vIHRoZSBzdHJlYW0gaW5jbHVkaW5nIHRoZSBieXRlIGF0IGkuCisgICAgaWYgKGxlbmd0aCAt
IGkgPj0gMyAmJiAhZGF0YVtpXSAmJiAhZGF0YVtpICsgMV0gJiYgZGF0YVtpICsgMl0gPT0gMykg
eworICAgICAgLy8gVHdvIHJic3AgYnl0ZXMuCisgICAgICBvdXQucHVzaF9iYWNrKGRhdGFbaSsr
XSk7CisgICAgICBvdXQucHVzaF9iYWNrKGRhdGFbaSsrXSk7CisgICAgICAvLyBTa2lwIHRoZSBl
bXVsYXRpb24gYnl0ZS4KKyAgICAgIGkrKzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gU2luZ2xl
IHJic3AgYnl0ZS4KKyAgICAgIG91dC5wdXNoX2JhY2soZGF0YVtpKytdKTsKKyAgICB9CisgIH0K
KyAgcmV0dXJuIG91dDsKK30KKwordm9pZCBXcml0ZVJic3AoY29uc3QgdWludDhfdCogYnl0ZXMs
IHNpemVfdCBsZW5ndGgsIHJ0Yzo6QnVmZmVyKiBkZXN0aW5hdGlvbikgeworICBzdGF0aWMgY29u
c3QgdWludDhfdCBrWmVyb3NJblN0YXJ0U2VxdWVuY2UgPSAyOworICBzdGF0aWMgY29uc3QgdWlu
dDhfdCBrRW11bGF0aW9uQnl0ZSA9IDB4MDN1OworICBzaXplX3QgbnVtX2NvbnNlY3V0aXZlX3pl
cm9zID0gMDsKKyAgZGVzdGluYXRpb24tPkVuc3VyZUNhcGFjaXR5KGRlc3RpbmF0aW9uLT5zaXpl
KCkgKyBsZW5ndGgpOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsK
KyAgICB1aW50OF90IGJ5dGUgPSBieXRlc1tpXTsKKyAgICBpZiAoYnl0ZSA8PSBrRW11bGF0aW9u
Qnl0ZSAmJgorICAgICAgICBudW1fY29uc2VjdXRpdmVfemVyb3MgPj0ga1plcm9zSW5TdGFydFNl
cXVlbmNlKSB7CisgICAgICAvLyBOZWVkIHRvIGVzY2FwZS4KKyAgICAgIGRlc3RpbmF0aW9uLT5B
cHBlbmREYXRhKGtFbXVsYXRpb25CeXRlKTsKKyAgICAgIG51bV9jb25zZWN1dGl2ZV96ZXJvcyA9
IDA7CisgICAgfQorICAgIGRlc3RpbmF0aW9uLT5BcHBlbmREYXRhKGJ5dGUpOworICAgIGlmIChi
eXRlID09IDApIHsKKyAgICAgICsrbnVtX2NvbnNlY3V0aXZlX3plcm9zOworICAgIH0gZWxzZSB7
CisgICAgICBudW1fY29uc2VjdXRpdmVfemVyb3MgPSAwOworICAgIH0KKyAgfQorfQorCit9ICAv
LyBuYW1lc3BhY2UgSDI2NQorfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV9jb21tb24uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2NvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDdiYjI3NzRlZTEw
YWIxM2U5MjI1ZDQ0MDVkNTE2OTNhYzcxMDQxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVf
Y29tbW9uLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRo
ZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl
CisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVy
dHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBB
bGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUg
QVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZu
ZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfQ09NTU9OX0hfCisjZGVmaW5lIENPTU1PTl9WSURF
T19IMjY1X0gyNjVfQ09NTU9OX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8dmVj
dG9yPgorCisjaW5jbHVkZSAicnRjX2Jhc2UvYnVmZmVyLmgiCisKK25hbWVzcGFjZSB3ZWJydGMg
eworCituYW1lc3BhY2UgSDI2NSB7CisvLyBUaGUgc2l6ZSBvZiBhIGZ1bGwgTkFMVSBzdGFydCBz
ZXF1ZW5jZSB7MCAwIDAgMX0sIHVzZWQgZm9yIHRoZSBmaXJzdCBOQUxVCisvLyBvZiBhbiBhY2Nl
c3MgdW5pdCwgYW5kIGZvciBTUFMgYW5kIFBQUyBibG9ja3MuCitjb25zdCBzaXplX3Qga05hbHVM
b25nU3RhcnRTZXF1ZW5jZVNpemUgPSA0OworCisvLyBUaGUgc2l6ZSBvZiBhIHNob3J0ZW5lZCBO
QUxVIHN0YXJ0IHNlcXVlbmNlIHswIDAgMX0sIHRoYXQgbWF5IGJlIHVzZWQgaWYKKy8vIG5vdCB0
aGUgZmlyc3QgTkFMVSBvZiBhbiBhY2Nlc3MgdW5pdCBvciBhbiBTUFMgb3IgUFBTIGJsb2NrLgor
Y29uc3Qgc2l6ZV90IGtOYWx1U2hvcnRTdGFydFNlcXVlbmNlU2l6ZSA9IDM7CisKKy8vIFRoZSBz
aXplIG9mIHRoZSBOQUxVIHR5cGUgYnl0ZSAoMSkuCitjb25zdCBzaXplX3Qga05hbHVUeXBlU2l6
ZSA9IDE7CisKK2VudW0gTmFsdVR5cGUgOiB1aW50OF90IHsKKyAga1RyYWlsTiA9IDAsCisgIGtU
cmFpbFIgPSAxLAorICBrVHNhTiA9IDIsCisgIGtUc2FSID0gMywKKyAga1N0c2FOID0gNCwKKyAg
a1N0c2FSID0gNSwKKyAga1JhZGxOID0gNiwKKyAga1JhZGxSID0gNywKKyAga0JsYVdMcCA9IDE2
LAorICBrQmxhV1JhZGwgPSAxNywKKyAga0JsYU5McCA9IDE4LAorICBrSWRyV1JhZGwgPSAxOSwK
KyAga0lkck5McCA9IDIwLAorICBrQ3JhID0gMjEsCisgIGtSc3ZJcmFwVmNsMjMgPSAyMywKKyAg
a1ZwcyA9IDMyLAorICBrU3BzID0gMzMsCisgIGtQcHMgPSAzNCwKKyAga0F1ZCA9IDM1LAorICBr
UHJlZml4U2VpID0gMzksCisgIGtTdWZmaXhTZWkgPSA0MCwKKyAga0FQID0gNDgsCisgIGtGVSA9
IDQ5Cit9OworCitlbnVtIFNsaWNlVHlwZSA6IHVpbnQ4X3QgeyBrUCA9IDAsIGtCID0gMSwga0kg
PSAyLCBrU3AgPSAzLCBrU2kgPSA0IH07CisKK3N0cnVjdCBOYWx1SW5kZXggeworICAvLyBTdGFy
dCBpbmRleCBvZiBOQUxVLCBpbmNsdWRpbmcgc3RhcnQgc2VxdWVuY2UuCisgIHNpemVfdCBzdGFy
dF9vZmZzZXQ7CisgIC8vIFN0YXJ0IGluZGV4IG9mIE5BTFUgcGF5bG9hZCwgdHlwaWNhbGx5IHR5
cGUgaGVhZGVyLgorICBzaXplX3QgcGF5bG9hZF9zdGFydF9vZmZzZXQ7CisgIC8vIExlbmd0aCBv
ZiBOQUxVIHBheWxvYWQsIGluIGJ5dGVzLCBjb3VudGluZyBmcm9tIHBheWxvYWRfc3RhcnRfb2Zm
c2V0LgorICBzaXplX3QgcGF5bG9hZF9zaXplOworfTsKKworLy8gUmV0dXJucyBhIHZlY3RvciBv
ZiB0aGUgTkFMVSBpbmRpY2VzIGluIHRoZSBnaXZlbiBidWZmZXIuCitzdGQ6OnZlY3RvcjxOYWx1
SW5kZXg+IEZpbmROYWx1SW5kaWNlcyhjb25zdCB1aW50OF90KiBidWZmZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVyX3NpemUpOworCisvLyBH
ZXQgdGhlIE5BTCB0eXBlIGZyb20gdGhlIGhlYWRlciBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2lu
ZyBzdGFydCBzZXF1ZW5jZS4KK05hbHVUeXBlIFBhcnNlTmFsdVR5cGUodWludDhfdCBkYXRhKTsK
KworLy8gTWV0aG9kcyBmb3IgcGFyc2luZyBhbmQgd3JpdGluZyBSQlNQLiBTZWUgc2VjdGlvbiA3
LjQuMiBvZiB0aGUgSDI2NSBzcGVjLgorLy8KKy8vIFRoZSBmb2xsb3dpbmcgc2VxdWVuY2VzIGFy
ZSBpbGxlZ2FsLCBhbmQgbmVlZCB0byBiZSBlc2NhcGVkIHdoZW4gZW5jb2Rpbmc6CisvLyAwMCAw
MCAwMCAtPiAwMCAwMCAwMyAwMAorLy8gMDAgMDAgMDEgLT4gMDAgMDAgMDMgMDEKKy8vIDAwIDAw
IDAyIC0+IDAwIDAwIDAzIDAyCisvLyBBbmQgdGhpbmdzIGluIHRoZSBzb3VyY2UgdGhhdCBsb29r
IGxpa2UgdGhlIGVtdWxhdGlvbiBieXRlIHBhdHRlcm4gKDAwIDAwIDAzKQorLy8gbmVlZCB0byBo
YXZlIGFuIGV4dHJhIGVtdWxhdGlvbiBieXRlIGFkZGVkLCBzbyBpdCdzIHJlbW92ZWQgd2hlbiBk
ZWNvZGluZzoKKy8vIDAwIDAwIDAzIC0+IDAwIDAwIDAzIDAzCisvLworLy8gRGVjb2RpbmcgaXMg
c2ltcGx5IGEgbWF0dGVyIG9mIGZpbmRpbmcgYW55IDAwIDAwIDAzIHNlcXVlbmNlIGFuZCByZW1v
dmluZworLy8gdGhlIDAzIGVtdWxhdGlvbiBieXRlLgorCisvLyBQYXJzZSB0aGUgZ2l2ZW4gZGF0
YSBhbmQgcmVtb3ZlIGFueSBlbXVsYXRpb24gYnl0ZSBlc2NhcGluZy4KK3N0ZDo6dmVjdG9yPHVp
bnQ4X3Q+IFBhcnNlUmJzcChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKwor
Ly8gV3JpdGUgdGhlIGdpdmVuIGRhdGEgdG8gdGhlIGRlc3RpbmF0aW9uIGJ1ZmZlciwgaW5zZXJ0
aW5nIGFuZCBlbXVsYXRpb24KKy8vIGJ5dGVzIGluIG9yZGVyIHRvIGVzY2FwZSBhbnkgZGF0YSB0
aGUgY291bGQgYmUgaW50ZXJwcmV0ZWQgYXMgYSBzdGFydAorLy8gc2VxdWVuY2UuCit2b2lkIFdy
aXRlUmJzcChjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IGxlbmd0aCwgcnRjOjpCdWZmZXIq
IGRlc3RpbmF0aW9uKTsKK30gIC8vIG5hbWVzcGFjZSBIMjY1Cit9ICAvLyBuYW1lc3BhY2Ugd2Vi
cnRjCisKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9DT01NT05fSF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92
aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5jYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MTg0MTFjZWQzMjdjODRhNjVlYzkzZjRkZmM3YmU5MmNmZjJlMjZiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29t
bW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMjA5IEBACisvKgor
ICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu
ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBM
SUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0
aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAq
ICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMg
bWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUg
c291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBz
X3BhcnNlci5oIgorCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2lu
Y2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9u
X3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJydGNfYmFzZS9iaXRfYnVmZmVy
LmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgorCisjZGVmaW5lIFJFVFVSTl9FTVBU
WV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJl
dHVybiBhYnNsOjpudWxsb3B0OyAgICAgICAgXAorICB9CisKK25hbWVzcGFjZSB7Citjb25zdCBp
bnQga01heFBpY0luaXRRcERlbHRhVmFsdWUgPSAyNTsKK2NvbnN0IGludCBrTWluUGljSW5pdFFw
RGVsdGFWYWx1ZSA9IC0yNjsKK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsK
KworLy8gR2VuZXJhbCBub3RlOiB0aGlzIGlzIGJhc2VkIG9mZiB0aGUgMDIvMjAxOCB2ZXJzaW9u
IG9mIHRoZSBILjI2NSBzdGFuZGFyZC4KKy8vIFlvdSBjYW4gZmluZCBpdCBvbiB0aGlzIHBhZ2U6
CisvLyBodHRwOi8vd3d3Lml0dS5pbnQvcmVjL1QtUkVDLUguMjY1CisKK2Fic2w6Om9wdGlvbmFs
PEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwcygKKyAgICBj
b25zdCB1aW50OF90KiBkYXRhLAorICAgIHNpemVfdCBsZW5ndGgpIHsKKyAgLy8gRmlyc3QsIHBh
cnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMg
ZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMg
c2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8gc2VjdGlvbiA3LjMuMSBvZiB0aGUg
SC4yNjQgc3RhbmRhcmQuCisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9
IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVm
ZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZlci5zaXplKCkpOworICBy
ZXR1cm4gUGFyc2VJbnRlcm5hbCgmYml0X2J1ZmZlcik7Cit9CisKK2Jvb2wgSDI2NVBwc1BhcnNl
cjo6UGFyc2VQcHNJZHMoY29uc3QgdWludDhfdCogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdWludDMyX3QqIHBwc19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dDMyX3QqIHNwc19pZCkgeworICBSVENfRENIRUNLKHBwc19pZCk7CisgIFJUQ19EQ0hFQ0soc3Bz
X2lkKTsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2FsbHkgdGhl
IHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFzdCBieXRl
IG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4KKyAgLy8g
c2VjdGlvbiA3LjMuMSBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIHN0ZDo6dmVjdG9yPHVpbnQ4
X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjQ6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBy
dGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2Vk
X2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VQcHNJZHNJbnRlcm5hbCgmYml0X2J1ZmZl
ciwgcHBzX2lkLCBzcHNfaWQpOworfQorCithYnNsOjpvcHRpb25hbDx1aW50MzJfdD4gSDI2NVBw
c1BhcnNlcjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3AoCisgICAgY29uc3Qg
dWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoLAorICAgIHVpbnQ4X3QgbmFsdV90eXBl
KSB7CisgIHJ0Yzo6Qml0QnVmZmVyIHNsaWNlX3JlYWRlcihkYXRhLCBsZW5ndGgpOworCisgIC8v
IGZpcnN0X3NsaWNlX3NlZ21lbnRfaW5fcGljX2ZsYWc6IHUoMSkKKyAgdWludDMyX3QgZmlyc3Rf
c2xpY2Vfc2VnbWVudF9pbl9waWNfZmxhZyA9IDA7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAor
ICAgICAgc2xpY2VfcmVhZGVyLlJlYWRCaXRzKCZmaXJzdF9zbGljZV9zZWdtZW50X2luX3BpY19m
bGFnLCAxKSk7CisKKyAgaWYgKG5hbHVfdHlwZSA+PSBIMjY1OjpOYWx1VHlwZTo6a0JsYVdMcCAm
JgorICAgICAgbmFsdV90eXBlIDw9IEgyNjU6Ok5hbHVUeXBlOjprUnN2SXJhcFZjbDIzKSB7Cisg
ICAgLy8gbm9fb3V0cHV0X29mX3ByaW9yX3BpY3NfZmxhZzogdSgxKQorICAgIFJFVFVSTl9FTVBU
WV9PTl9GQUlMKHNsaWNlX3JlYWRlci5Db25zdW1lQml0cygxKSk7CisgIH0KKworICAvLyBzbGlj
ZV9waWNfcGFyYW1ldGVyX3NldF9pZDogdWUodikKKyAgdWludDMyX3Qgc2xpY2VfcGljX3BhcmFt
ZXRlcl9zZXRfaWQgPSAwOworICBpZiAoIXNsaWNlX3JlYWRlci5SZWFkRXhwb25lbnRpYWxHb2xv
bWIoJnNsaWNlX3BpY19wYXJhbWV0ZXJfc2V0X2lkKSkKKyAgICByZXR1cm4gYWJzbDo6bnVsbG9w
dDsKKworICByZXR1cm4gc2xpY2VfcGljX3BhcmFtZXRlcl9zZXRfaWQ7Cit9CisKK2Fic2w6Om9w
dGlvbmFsPEgyNjVQcHNQYXJzZXI6OlBwc1N0YXRlPiBIMjY1UHBzUGFyc2VyOjpQYXJzZUludGVy
bmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKSB7CisgIFBwc1N0YXRlIHBwczsK
KworICBSRVRVUk5fRU1QVFlfT05fRkFJTChQYXJzZVBwc0lkc0ludGVybmFsKGJpdF9idWZmZXIs
ICZwcHMuaWQsICZwcHMuc3BzX2lkKSk7CisKKyAgdWludDMyX3QgYml0c190bXA7CisgIHVpbnQz
Ml90IGdvbG9tYl9pZ25vcmVkOworICAvLyBlbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWc6IHUoMSkK
KyAgdWludDMyX3QgZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnOworICBSRVRVUk5fRU1QVFlfT05f
RkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnLCAxKSk7
CisgIHBwcy5lbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWcgPSBlbnRyb3B5X2NvZGluZ19tb2RlX2Zs
YWcgIT0gMDsKKyAgLy8gYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVzZW50X2Zs
YWc6IHUoMSkKKyAgdWludDMyX3QgYm90dG9tX2ZpZWxkX3BpY19vcmRlcl9pbl9mcmFtZV9wcmVz
ZW50X2ZsYWc7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYml0X2J1ZmZlci0+UmVh
ZEJpdHMoJmJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnLCAxKSk7
CisgIHBwcy5ib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZyA9Cisg
ICAgICBib3R0b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZyAhPSAwOwor
CisgIC8vIG51bV9zbGljZV9ncm91cHNfbWludXMxOiB1ZSh2KQorICB1aW50MzJfdCBudW1fc2xp
Y2VfZ3JvdXBzX21pbnVzMTsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVm
ZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJm51bV9zbGljZV9ncm91cHNfbWludXMxKSk7Cisg
IGlmIChudW1fc2xpY2VfZ3JvdXBzX21pbnVzMSA+IDApIHsKKyAgICB1aW50MzJfdCBzbGljZV9n
cm91cF9tYXBfdHlwZTsKKyAgICAvLyBzbGljZV9ncm91cF9tYXBfdHlwZTogdWUodikKKyAgICBS
RVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFs
R29sb21iKCZzbGljZV9ncm91cF9tYXBfdHlwZSkpOworICAgIGlmIChzbGljZV9ncm91cF9tYXBf
dHlwZSA9PSAwKSB7CisgICAgICBmb3IgKHVpbnQzMl90IGlfZ3JvdXAgPSAwOyBpX2dyb3VwIDw9
IG51bV9zbGljZV9ncm91cHNfbWludXMxOworICAgICAgICAgICArK2lfZ3JvdXApIHsKKyAgICAg
ICAgLy8gcnVuX2xlbmd0aF9taW51czFbaUdyb3VwXTogdWUodikKKyAgICAgICAgUkVUVVJOX0VN
UFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xv
bWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAgICB9CisgICAgfSBlbHNlIGlmIChzbGljZV9ncm91
cF9tYXBfdHlwZSA9PSAxKSB7CisgICAgICAvLyBUT0RPKHNwcmFuZyk6IEltcGxlbWVudCBzdXBw
b3J0IGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisgICAgICAvLyBTZWUgOC4y
LjIuMiBTcGVjaWZpY2F0aW9uIGZvciBkaXNwZXJzZWQgc2xpY2UgZ3JvdXAgbWFwIHR5cGUuCisg
ICAgfSBlbHNlIGlmIChzbGljZV9ncm91cF9tYXBfdHlwZSA9PSAyKSB7CisgICAgICBmb3IgKHVp
bnQzMl90IGlfZ3JvdXAgPSAwOyBpX2dyb3VwIDw9IG51bV9zbGljZV9ncm91cHNfbWludXMxOwor
ICAgICAgICAgICArK2lfZ3JvdXApIHsKKyAgICAgICAgLy8gdG9wX2xlZnRbaUdyb3VwXTogdWUo
dikKKyAgICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgICBiaXRfYnVmZmVy
LT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgICAgICAgIC8vIGJv
dHRvbV9yaWdodFtpR3JvdXBdOiB1ZSh2KQorICAgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgK
KyAgICAgICAgICAgIGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2ln
bm9yZWQpKTsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBlID09
IDMgfHwgc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0gNCB8fAorICAgICAgICAgICAgICAgc2xpY2Vf
Z3JvdXBfbWFwX3R5cGUgPT0gNSkgeworICAgICAgLy8gc2xpY2VfZ3JvdXBfY2hhbmdlX2RpcmVj
dGlvbl9mbGFnOiB1KDEpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5S
ZWFkQml0cygmYml0c190bXAsIDEpKTsKKyAgICAgIC8vIHNsaWNlX2dyb3VwX2NoYW5nZV9yYXRl
X21pbnVzMTogdWUodikKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJl
YWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgICB9IGVsc2UgaWYgKHNs
aWNlX2dyb3VwX21hcF90eXBlID09IDYpIHsKKyAgICAgIC8vIHBpY19zaXplX2luX21hcF91bml0
c19taW51czE6IHVlKHYpCisgICAgICB1aW50MzJfdCBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWlu
dXMxOworICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICAgICAgYml0X2J1ZmZlci0+
UmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxKSk7Cisg
ICAgICB1aW50MzJfdCBzbGljZV9ncm91cF9pZF9iaXRzID0gMDsKKyAgICAgIHVpbnQzMl90IG51
bV9zbGljZV9ncm91cHMgPSBudW1fc2xpY2VfZ3JvdXBzX21pbnVzMSArIDE7CisgICAgICAvLyBJ
ZiBudW1fc2xpY2VfZ3JvdXBzIGlzIG5vdCBhIHBvd2VyIG9mIHR3byBhbiBhZGRpdGlvbmFsIGJp
dCBpcyByZXF1aXJlZAorICAgICAgLy8gdG8gYWNjb3VudCBmb3IgdGhlIGNlaWwoKSBvZiBsb2cy
KCkgYmVsb3cuCisgICAgICBpZiAoKG51bV9zbGljZV9ncm91cHMgJiAobnVtX3NsaWNlX2dyb3Vw
cyAtIDEpKSAhPSAwKQorICAgICAgICArK3NsaWNlX2dyb3VwX2lkX2JpdHM7CisgICAgICB3aGls
ZSAobnVtX3NsaWNlX2dyb3VwcyA+IDApIHsKKyAgICAgICAgbnVtX3NsaWNlX2dyb3VwcyA+Pj0g
MTsKKyAgICAgICAgKytzbGljZV9ncm91cF9pZF9iaXRzOworICAgICAgfQorICAgICAgZm9yICh1
aW50MzJfdCBpID0gMDsgaSA8PSBwaWNfc2l6ZV9pbl9tYXBfdW5pdHNfbWludXMxOyBpKyspIHsK
KyAgICAgICAgLy8gc2xpY2VfZ3JvdXBfaWRbaV06IHUodikKKyAgICAgICAgLy8gUmVwcmVzZW50
ZWQgYnkgY2VpbChsb2cyKG51bV9zbGljZV9ncm91cHNfbWludXMxICsgMSkpIGJpdHMuCisgICAg
ICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgICAgICAgYml0X2J1ZmZlci0+UmVhZEJp
dHMoJmJpdHNfdG1wLCBzbGljZV9ncm91cF9pZF9iaXRzKSk7CisgICAgICB9CisgICAgfQorICB9
CisgIC8vIG51bV9yZWZfaWR4X2wwX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogdWUodikKKyAgUkVU
VVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xv
bWJfaWdub3JlZCkpOworICAvLyBudW1fcmVmX2lkeF9sMV9kZWZhdWx0X2FjdGl2ZV9taW51czE6
IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlh
bEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgLy8gd2VpZ2h0ZWRfcHJlZF9mbGFnOiB1KDEp
CisgIHVpbnQzMl90IHdlaWdodGVkX3ByZWRfZmxhZzsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
Yml0X2J1ZmZlci0+UmVhZEJpdHMoJndlaWdodGVkX3ByZWRfZmxhZywgMSkpOworICBwcHMud2Vp
Z2h0ZWRfcHJlZF9mbGFnID0gd2VpZ2h0ZWRfcHJlZF9mbGFnICE9IDA7CisgIC8vIHdlaWdodGVk
X2JpcHJlZF9pZGM6IHUoMikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVh
ZEJpdHMoJnBwcy53ZWlnaHRlZF9iaXByZWRfaWRjLCAyKSk7CisKKyAgLy8gcGljX2luaXRfcXBf
bWludXMyNjogc2UodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVmZmVy
LT5SZWFkU2lnbmVkRXhwb25lbnRpYWxHb2xvbWIoJnBwcy5waWNfaW5pdF9xcF9taW51czI2KSk7
CisgIC8vIFNhbml0eS1jaGVjayBwYXJzZWQgdmFsdWUKKyAgaWYgKHBwcy5waWNfaW5pdF9xcF9t
aW51czI2ID4ga01heFBpY0luaXRRcERlbHRhVmFsdWUgfHwKKyAgICAgIHBwcy5waWNfaW5pdF9x
cF9taW51czI2IDwga01pblBpY0luaXRRcERlbHRhVmFsdWUpIHsKKyAgICBSRVRVUk5fRU1QVFlf
T05fRkFJTChmYWxzZSk7CisgIH0KKyAgLy8gcGljX2luaXRfcXNfbWludXMyNjogc2UodikKKyAg
UkVUVVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZn
b2xvbWJfaWdub3JlZCkpOworICAvLyBjaHJvbWFfcXBfaW5kZXhfb2Zmc2V0OiBzZSh2KQorICBS
RVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdv
bG9tYl9pZ25vcmVkKSk7CisgIC8vIGRlYmxvY2tpbmdfZmlsdGVyX2NvbnRyb2xfcHJlc2VudF9m
bGFnOiB1KDEpCisgIC8vIGNvbnN0cmFpbmVkX2ludHJhX3ByZWRfZmxhZzogdSgxKQorICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmYml0c190bXAsIDIpKTsKKyAg
Ly8gcmVkdW5kYW50X3BpY19jbnRfcHJlc2VudF9mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKAorICAgICAgYml0X2J1ZmZlci0+UmVhZEJpdHMoJnBwcy5yZWR1bmRhbnRfcGljX2Nu
dF9wcmVzZW50X2ZsYWcsIDEpKTsKKworICByZXR1cm4gcHBzOworfQorCitib29sIEgyNjVQcHNQ
YXJzZXI6OlBhcnNlUHBzSWRzSW50ZXJuYWwocnRjOjpCaXRCdWZmZXIqIGJpdF9idWZmZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHBwc19pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogc3BzX2lk
KSB7CisgIC8vIHBpY19wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBpZiAoIWJpdF9idWZmZXIt
PlJlYWRFeHBvbmVudGlhbEdvbG9tYihwcHNfaWQpKQorICAgIHJldHVybiBmYWxzZTsKKyAgLy8g
c2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIGlmICghYml0X2J1ZmZlci0+UmVhZEV4cG9u
ZW50aWFsR29sb21iKHNwc19pZCkpCisgICAgcmV0dXJuIGZhbHNlOworICByZXR1cm4gdHJ1ZTsK
K30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFy
c2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25f
dmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmE0NzE4ODNkY2FlYWY1
YTUzNGFjMzEzOWEzNjkwN2YzMDRmZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNf
cGFyc2VyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhl
IFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UK
KyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9m
IHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0
eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFs
bCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBB
VVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpZm5k
ZWYgQ09NTU9OX1ZJREVPX0gyNjVfUFBTX1BBUlNFUl9IXworI2RlZmluZSBDT01NT05fVklERU9f
SDI2NV9QUFNfUEFSU0VSX0hfCisKKyNpbmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisK
K25hbWVzcGFjZSBydGMgeworY2xhc3MgQml0QnVmZmVyOworfQorCituYW1lc3BhY2Ugd2VicnRj
IHsKKworLy8gQSBjbGFzcyBmb3IgcGFyc2luZyBvdXQgcGljdHVyZSBwYXJhbWV0ZXIgc2V0IChQ
UFMpIGRhdGEgZnJvbSBhIEgyNjUgTkFMVS4KK2NsYXNzIEgyNjVQcHNQYXJzZXIgeworIHB1Ymxp
YzoKKyAgLy8gVGhlIHBhcnNlZCBzdGF0ZSBvZiB0aGUgUFBTLiBPbmx5IHNvbWUgc2VsZWN0IHZh
bHVlcyBhcmUgc3RvcmVkLgorICAvLyBBZGQgbW9yZSBhcyB0aGV5IGFyZSBhY3R1YWxseSBuZWVk
ZWQuCisgIHN0cnVjdCBQcHNTdGF0ZSB7CisgICAgUHBzU3RhdGUoKSA9IGRlZmF1bHQ7CisKKyAg
ICBib29sIGJvdHRvbV9maWVsZF9waWNfb3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnID0gZmFs
c2U7CisgICAgYm9vbCB3ZWlnaHRlZF9wcmVkX2ZsYWcgPSBmYWxzZTsKKyAgICBib29sIGVudHJv
cHlfY29kaW5nX21vZGVfZmxhZyA9IGZhbHNlOworICAgIHVpbnQzMl90IHdlaWdodGVkX2JpcHJl
ZF9pZGMgPSBmYWxzZTsKKyAgICB1aW50MzJfdCByZWR1bmRhbnRfcGljX2NudF9wcmVzZW50X2Zs
YWcgPSAwOworICAgIGludCBwaWNfaW5pdF9xcF9taW51czI2ID0gMDsKKyAgICB1aW50MzJfdCBp
ZCA9IDA7CisgICAgdWludDMyX3Qgc3BzX2lkID0gMDsKKyAgfTsKKworICAvLyBVbnBhY2sgUkJT
UCBhbmQgcGFyc2UgUFBTIHN0YXRlIGZyb20gdGhlIHN1cHBsaWVkIGJ1ZmZlci4KKyAgc3RhdGlj
IGFic2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZVBwcyhjb25zdCB1aW50OF90KiBkYXRhLCBz
aXplX3QgbGVuZ3RoKTsKKworICBzdGF0aWMgYm9vbCBQYXJzZVBwc0lkcyhjb25zdCB1aW50OF90
KiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3RoLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICB1aW50MzJfdCogc3BzX2lkKTsKKworICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8dWlu
dDMyX3Q+IFBhcnNlUHBzSWRGcm9tU2xpY2VTZWdtZW50TGF5ZXJSYnNwKAorICAgICAgY29uc3Qg
dWludDhfdCogZGF0YSwKKyAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICB1aW50OF90IG5hbHVf
dHlwZSk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBQUFMgc3RhdGUsIGZvciBhIGJp
dCBidWZmZXIgd2hlcmUgUkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisgIC8vIHBlcmZv
cm1lZC4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFBwc1N0YXRlPiBQYXJzZUludGVybmFsKHJ0
Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKTsKKyAgc3RhdGljIGJvb2wgUGFyc2VQcHNJZHNJbnRl
cm5hbChydGM6OkJpdEJ1ZmZlciogYml0X2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnQzMl90KiBzcHNfaWQpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0Ywor
CisjZW5kaWYgIC8vIENPTU1PTl9WSURFT19IMjY1X1BQU19QQVJTRVJfSF8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9o
MjY1L2gyNjVfc3BzX3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5jYwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wNDMzZjRiMGVlOTIwYzIzM2YxYjYxODE1MGQyZDNmODhmZWQwZWMxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogIENv
cHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNF
IGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwg
aW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0
aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5Cisg
KiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNl
IHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNp
bmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1v
bl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9i
dWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25hbWVzcGFjZSB7Cit0
eXBlZGVmIGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IE9w
dGlvbmFsU3BzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgpIFwKKyAgaWYgKCEo
eCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBPcHRpb25hbFNwcygpOyAgICAg
ICBcCisgIH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworSDI2NVNw
c1BhcnNlcjo6U3BzU3RhdGU6OlNwc1N0YXRlKCkgPSBkZWZhdWx0OworCisvLyBHZW5lcmFsIG5v
dGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2YgdGhlIEguMjY1IHN0
YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8vIGh0dHA6Ly93d3cu
aXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFNQUyBz
dGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNsOjpvcHRpb25hbDxIMjY1U3BzUGFy
c2VyOjpTcHNTdGF0ZT4gSDI2NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAgY29uc3QgdWludDhf
dCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHVu
cGFja2VkX2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgpOworICBydGM6OkJp
dEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVucGFja2VkX2J1ZmZl
ci5zaXplKCkpOworICByZXR1cm4gUGFyc2VTcHNVcFRvVnVpKCZiaXRfYnVmZmVyKTsKK30KKwor
YWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IEgyNjVTcHNQYXJzZXI6OlBh
cnNlU3BzVXBUb1Z1aSgKKyAgICBydGM6OkJpdEJ1ZmZlciogYnVmZmVyKSB7CisgIC8vIE5vdywg
d2UgbmVlZCB0byB1c2UgYSBiaXQgYnVmZmVyIHRvIHBhcnNlIHRocm91Z2ggdGhlIGFjdHVhbCBI
RVZDIFNQUworICAvLyBmb3JtYXQuIFNlZSBTZWN0aW9uIDcuMy4yLjIuMSAoIkdlbmVyYWwgc2Vx
dWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhCisgIC8vIHN5bnRheCIpIG9mIHRoZSBILjI2NSBzdGFu
ZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2luY2Ugd2Ugb25seSBjYXJl
IGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkgb2YgZmllbGRzLCBidXQK
KyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJvdWdoIGEgbG90IG9mIHRo
ZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2ZSB2YXJpYWJsZSBzaXpl
LgorICAvLyBXZSdyZSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbjoKKyAgLy8gY2hyb21hX2Zv
cm1hdF9pZGMgLT4gYWZmZWN0cyBjcm9wIHVuaXRzCisgIC8vIHBpY197d2lkdGgsaGVpZ2h0fV8q
IC0+IHJlc29sdXRpb24gb2YgdGhlIGZyYW1lIGluIG1hY3JvYmxvY2tzICgxNngxNikuCisgIC8v
IGZyYW1lX2Nyb3BfKl9vZmZzZXQgLT4gY3JvcCBpbmZvcm1hdGlvbgorCisgIFNwc1N0YXRlIHNw
czsKKworICAvLyBUaGUgZ29sb21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNv
bnN1bWUuCisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91
cl9wbGFuZV9mbGFnIGlzIG9wdGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9u
cworICAvLyBhYm91dCB0aGUgQ2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2Ug
dHJlYXQgY3JvcCBjb29yZGluYXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5l
X2ZsYWcgPSAwOworCisgIC8vIGNocm9tYV9mb3JtYXRfaWRjIHdpbGwgYmUgQ2hyb21hQXJyYXlU
eXBlIGlmIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnIGlzCisgIC8vIDAuIEl0IGRlZmF1bHRz
IHRvIDEsIHdoZW4gbm90IHNwZWNpZmllZC4KKyAgdWludDMyX3QgY2hyb21hX2Zvcm1hdF9pZGMg
PSAxOworCisgIC8vIHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIHVpbnQzMl90
IHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
YnVmZmVyLT5SZWFkQml0cygmc3BzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQpKTsKKyAgLy8g
c3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTogdSgzKQorICB1aW50MzJfdCBzcHNfbWF4X3N1Yl9s
YXllcnNfbWludXMxID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0
cygmc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSwgMykpOworICAvLyBzcHNfdGVtcG9yYWxfaWRf
bmVzdGluZ19mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3Vt
ZUJpdHMoMSkpOworICAvLyBwcm9maWxlX3RpZXJfbGV2ZWwoMSwgc3BzX21heF9zdWJfbGF5ZXJz
X21pbnVzMSkuIFdlIGFyZSBhY3V0YWxseSBub3QKKyAgLy8gdXNpbmcgdGhlbSwgc28gcmVhZC9z
a2lwIG92ZXIgaXQuCisgIC8vIGdlbmVyYWxfcHJvZmlsZV9zcGFjZStnZW5lcmFsX3RpZXJfZmxh
ZytnZW5lcmFsX3ByZmlsZV9pZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVy
LT5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVfY29tcGF0YWJpbGl0aXlf
ZmxhZ1szMl0KKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoNCkp
OworICAvLyBnZW5lcmFsX3Byb2dyZXNzaXZlX3NvdXJjZV9mbGFnICsgaW50ZXJsYWNlZF9zb3Vy
Y2VfZmxhZysKKyAgLy8gbm9uLXBhY2tlZF9jb25zdHJhaW50IGZsYWcgKyBmcmFtZV9vbmx5X2Nv
bnN0cmFpbnRfZmxhZzogdSg0KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1
bWVCaXRzKDQpKTsKKyAgLy8gZ2VuZXJhbF9wcm9maWxlX2lkYyBkZWNpZGVkIGZsYWdzIG9yIHJl
c2VydmVkLiAgdSg0MykKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0
cyg0MykpOworICAvLyBnZW5lcmFsX2luYmxkX2ZsYWcgb3IgcmVzZXJ2ZWQgMDogdSgxKQorICBS
RVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gZ2VuZXJh
bF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1l
Qnl0ZXMoMSkpOworICAvLyBpZiBtYXhfc3ViX2xheWVyc19taW51czEgPj0xLCByZWFkIHRoZSBz
dWJsYXllciBwcm9maWxlIGluZm9ybWF0aW9uCisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJf
bGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdzOworICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gc3Vi
X2xheWVyX2xldmVsX3ByZXNlbnRfZmxhZ3M7CisgIHVpbnQzMl90IHN1Yl9sYXllcl9wcm9maWxl
X3ByZXNlbnQgPSAwOworICB1aW50MzJfdCBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCA9IDA7Cisg
IGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBpKysp
IHsKKyAgICAvLyBzdWJsYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZyBhbmQgc3VibGF5ZXJfbGV2
ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+
UmVhZEJpdHMoJnN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQsIDEpKTsKKyAgICBSRVRVUk5fRU1Q
VFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCwgMSkp
OworICAgIHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3MucHVzaF9iYWNrKHN1Yl9sYXll
cl9wcm9maWxlX3ByZXNlbnQpOworICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzLnB1
c2hfYmFjayhzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNwc19tYXhfc3Vi
X2xheWVyc19taW51czEgPiAwKSB7CisgICAgZm9yICh1aW50MzJfdCBqID0gc3BzX21heF9zdWJf
bGF5ZXJzX21pbnVzMTsgaiA8IDg7IGorKykgeworICAgICAgLy8gcmVzZXJ2ZWQgMiBiaXRzOiB1
KDIpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDIpKTsK
KyAgICB9CisgIH0KKyAgZm9yICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVy
c19taW51czE7IGsrKykgeworICAgIGlmIChzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50X2ZsYWdz
W2tdKSB7ICAvLworICAgICAgLy8gc3ViX2xheWVyIHByb2ZpbGVfc3BhY2UvdGllcl9mbGFnL3By
b2ZpbGVfaWRjLiBpZ25vcmVkLiB1KDgpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZm
ZXItPkNvbnN1bWVCeXRlcygxKSk7CisgICAgICAvLyBwcm9maWxlX2NvbXBhdGFiaWxpdHlfZmxh
ZzogIHUoMzIpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRl
cyg0KSk7CisgICAgICAvLyBzdWJfbGF5ZXIgcHJvZ3Jlc3NpdmVfc291cmNlX2ZsYWcvaW50ZXJs
YWNlZF9zb3VyY2VfZmxhZy8KKyAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2Zy
YW1lX29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJ
TChidWZmZXItPkNvbnN1bWVCaXRzKDQpKTsKKyAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFy
ZSBwcm9maWxlX2lkYyBzcGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4KKyAgICAgIC8v
IHUoNDMpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQz
KSk7CisgICAgICAvLyAxLWJpdCBwcm9maWxlX2lkYyBzcGVjaWZpYyBpbmJsZCBmbGFnLiAgV2Ug
c2ltcGx5IHJlYWQvc2tpcCBpdC4gdSgxKQorICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVm
ZmVyLT5Db25zdW1lQml0cygxKSk7CisgICAgfQorICAgIGlmIChzdWJfbGF5ZXJfbGV2ZWxfcHJl
c2VudF9mbGFnc1trXSkgeworICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAg
ICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQnl0ZXMoMSkpOworICAgIH0K
KyAgfQorICAvLyBzcHNfc2VxX3BhcmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIFJFVFVSTl9FTVBU
WV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkp
OworICAvLyBjaHJvbWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
YnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNocm9tYV9mb3JtYXRfaWRjKSk7CisgIGlm
IChjaHJvbWFfZm9ybWF0X2lkYyA9PSAzKSB7CisgICAgLy8gc2VwZXJhdGVfY29sb3VyX3BsYW5l
X2ZsYWc6IHUoMSkKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZz
ZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZywgMSkpOworICB9CisgIHVpbnQzMl90IHBpY193aWR0
aF9pbl9sdW1hX3NhbXBsZXMgPSAwOworICB1aW50MzJfdCBwaWNfaGVpZ2h0X2luX2x1bWFfc2Ft
cGxlcyA9IDA7CisgIC8vIHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVS
Tl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBp
Y193aWR0aF9pbl9sdW1hX3NhbXBsZXMpKTsKKyAgLy8gcGljX2hlaWdodF9pbl9sdW1hX3NhbXBs
ZXM6IHVlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgYnVmZmVyLT5SZWFkRXhw
b25lbnRpYWxHb2xvbWIoJnBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzKSk7CisgIC8vIGNvbmZv
cm1hbmNlX3dpbmRvd19mbGFnOiB1KDEpCisgIHVpbnQzMl90IGNvbmZvcm1hbmNlX3dpbmRvd19m
bGFnID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmY29uZm9y
bWFuY2Vfd2luZG93X2ZsYWcsIDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNl
dCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7CisgIHVpbnQzMl90
IGNvbmZfd2luX3RvcF9vZmZzZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zm
c2V0ID0gMDsKKyAgaWYgKGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAgLy8gY29uZl93
aW5fbGVmdF9vZmZzZXQ6IHVlKHYpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5S
ZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7CisgICAgLy8gY29u
Zl93aW5fcmlnaHRfb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZl
ci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAv
LyBjb25mX3dpbl90b3Bfb2Zmc2V0OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1
ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAg
Ly8gY29uZl93aW5fYm90dG9tX29mZnNldDogdWUodikKKyAgICBSRVRVUk5fRU1QVFlfT05fRkFJ
TCgKKyAgICAgICAgYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX2JvdHRv
bV9vZmZzZXQpKTsKKyAgfQorCisgIC8vIEZhciBlbm91Z2ghIFdlIGRvbid0IHVzZSB0aGUgcmVz
dCBvZiB0aGUgU1BTLgorCisgIHNwcy52cHNfaWQgPSBzcHNfdmlkZW9fcGFyYW1ldGVyX3NldF9p
ZDsKKworICAvLyBTdGFydCB3aXRoIHRoZSByZXNvbHV0aW9uIGRldGVybWluZWQgYnkgdGhlIHBp
Y193aWR0aC9waWNfaGVpZ2h0IGZpZWxkcy4KKyAgc3BzLndpZHRoID0gcGljX3dpZHRoX2luX2x1
bWFfc2FtcGxlczsKKyAgc3BzLmhlaWdodCA9IHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOwor
CisgIGlmIChjb25mb3JtYW5jZV93aW5kb3dfZmxhZykgeworICAgIGludCBzdWJfd2lkdGhfYyA9
ICgoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgfHwgKDIgPT0gY2hyb21hX2Zvcm1hdF9pZGMpKSAm
JgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPT0gc2VwYXJhdGVfY29sb3VyX3Bs
YW5lX2ZsYWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgID8gMgorICAgICAgICAgICAgICAg
ICAgICAgICAgICA6IDE7CisgICAgaW50IHN1Yl9oZWlnaHRfYyA9CisgICAgICAgICgxID09IGNo
cm9tYV9mb3JtYXRfaWRjKSAmJiAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZykgPyAy
IDogMTsKKyAgICAvLyB0aGUgb2Zmc2V0IGluY2x1ZGVzIHRoZSBwaXhlbCB3aXRoaW4gY29uZm9y
bWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVkIHRvCisgICAgLy8gKzEgYXMgcGVyIHNwZWMKKyAg
ICBzcHMud2lkdGggLT0gc3ViX3dpZHRoX2MgKiAoY29uZl93aW5fcmlnaHRfb2Zmc2V0ICsgY29u
Zl93aW5fbGVmdF9vZmZzZXQpOworICAgIHNwcy5oZWlnaHQgLT0gc3ViX2hlaWdodF9jICogKGNv
bmZfd2luX3RvcF9vZmZzZXQgKyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0KTsKKyAgfQorCisgIHJl
dHVybiBPcHRpb25hbFNwcyhzcHMpOworfQorCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25f
dmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmEwZjg2YjY5ODMyNjMxYmU3MjU2OWI5YWUyMGJjMmM2MGI4MDkyNWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21t
b25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
IENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9u
YWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBp
biB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5
CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlIHRyZWUuCisgKi8KKworI2lmbmRlZiBDT01NT05fVklERU9fSDI2NV9IMjY1X1NQU19QQVJT
RVJfSF8KKyNkZWZpbmUgQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VSX0hfCisKKyNp
bmNsdWRlICJhYnNsL3R5cGVzL29wdGlvbmFsLmgiCisKK25hbWVzcGFjZSBydGMgeworY2xhc3Mg
Qml0QnVmZmVyOworfQorCituYW1lc3BhY2Ugd2VicnRjIHsKKworLy8gQSBjbGFzcyBmb3IgcGFy
c2luZyBvdXQgc2VxdWVuY2UgcGFyYW1ldGVyIHNldCAoU1BTKSBkYXRhIGZyb20gYW4gSDI2NSBO
QUxVLgorY2xhc3MgSDI2NVNwc1BhcnNlciB7CisgcHVibGljOgorICAvLyBUaGUgcGFyc2VkIHN0
YXRlIG9mIHRoZSBTUFMuIE9ubHkgc29tZSBzZWxlY3QgdmFsdWVzIGFyZSBzdG9yZWQuCisgIC8v
IEFkZCBtb3JlIGFzIHRoZXkgYXJlIGFjdHVhbGx5IG5lZWRlZC4KKyAgc3RydWN0IFNwc1N0YXRl
IHsKKyAgICBTcHNTdGF0ZSgpOworCisgICAgdWludDMyX3Qgd2lkdGggPSAwOworICAgIHVpbnQz
Ml90IGhlaWdodCA9IDA7CisgICAgdWludDMyX3QgZGVsdGFfcGljX29yZGVyX2Fsd2F5c196ZXJv
X2ZsYWcgPSAwOworICAgIHVpbnQzMl90IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnID0gMDsK
KyAgICB1aW50MzJfdCBmcmFtZV9tYnNfb25seV9mbGFnID0gMDsKKyAgICB1aW50MzJfdCBsb2cy
X21heF9mcmFtZV9udW1fbWludXM0ID0gMDsKKyAgICB1aW50MzJfdCBsb2cyX21heF9waWNfb3Jk
ZXJfY250X2xzYl9taW51czQgPSAwOworICAgIHVpbnQzMl90IHBpY19vcmRlcl9jbnRfdHlwZSA9
IDA7CisgICAgdWludDMyX3QgbWF4X251bV9yZWZfZnJhbWVzID0gMDsKKyAgICB1aW50MzJfdCB2
dWlfcGFyYW1zX3ByZXNlbnQgPSAwOworICAgIHVpbnQzMl90IGlkID0gMDsKKyAgICB1aW50MzJf
dCB2cHNfaWQgPSAwOworICB9OworCisgIC8vIFVucGFjayBSQlNQIGFuZCBwYXJzZSBTUFMgc3Rh
dGUgZnJvbSB0aGUgc3VwcGxpZWQgYnVmZmVyLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3Bz
U3RhdGU+IFBhcnNlU3BzKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworCisg
cHJvdGVjdGVkOgorICAvLyBQYXJzZSB0aGUgU1BTIHN0YXRlLCB1cCB0aWxsIHRoZSBWVUkgcGFy
dCwgZm9yIGEgYml0IGJ1ZmZlciB3aGVyZSBSQlNQCisgIC8vIGRlY29kaW5nIGhhcyBhbHJlYWR5
IGJlZW4gcGVyZm9ybWVkLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8U3BzU3RhdGU+IFBhcnNl
U3BzVXBUb1Z1aShydGM6OkJpdEJ1ZmZlciogYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVzcGFj
ZSB3ZWJydGMKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9TUFNfUEFSU0VSX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9j
b21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zwc19wYXJzZXIu
Y2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjM5MWFlNTFkZjBmOTA4OTAxNmI0OTg4NGMxNWYyYzE0MThkNTRlNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5jYwpAQCAtMCwwICsxLDYyIEBA
CisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFu
IGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91
bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1
dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2
ZWN0b3I+CisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2lu
Y2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUgInJ0
Y19iYXNlL2JpdF9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25h
bWVzcGFjZSB7Cit0eXBlZGVmIGFic2w6Om9wdGlvbmFsPHdlYnJ0Yzo6SDI2NVZwc1BhcnNlcjo6
VnBzU3RhdGU+IE9wdGlvbmFsVnBzOworCisjZGVmaW5lIFJFVFVSTl9FTVBUWV9PTl9GQUlMKHgp
IFwKKyAgaWYgKCEoeCkpIHsgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiBPcHRpb25h
bFZwcygpOyAgICAgICBcCisgIH0KK30gIC8vIG5hbWVzcGFjZQorCituYW1lc3BhY2Ugd2VicnRj
IHsKKworSDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU6OlZwc1N0YXRlKCkgPSBkZWZhdWx0OworCisv
LyBHZW5lcmFsIG5vdGU6IHRoaXMgaXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2Yg
dGhlIEguMjY1IHN0YW5kYXJkLgorLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8v
IGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4yNjUKKworLy8gVW5wYWNrIFJCU1AgYW5k
IHBhcnNlIFNQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCithYnNsOjpvcHRpb25h
bDxIMjY1VnBzUGFyc2VyOjpWcHNTdGF0ZT4gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAg
Y29uc3QgdWludDhfdCogZGF0YSwKKyAgICBzaXplX3QgbGVuZ3RoKSB7CisgIHN0ZDo6dmVjdG9y
PHVpbnQ4X3Q+IHVucGFja2VkX2J1ZmZlciA9IEgyNjU6OlBhcnNlUmJzcChkYXRhLCBsZW5ndGgp
OworICBydGM6OkJpdEJ1ZmZlciBiaXRfYnVmZmVyKHVucGFja2VkX2J1ZmZlci5kYXRhKCksIHVu
cGFja2VkX2J1ZmZlci5zaXplKCkpOworICByZXR1cm4gUGFyc2VJbnRlcm5hbCgmYml0X2J1ZmZl
cik7Cit9CisKK2Fic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiBIMjY1VnBz
UGFyc2VyOjpQYXJzZUludGVybmFsKAorICAgIHJ0Yzo6Qml0QnVmZmVyKiBidWZmZXIpIHsKKyAg
Ly8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFyc2UgdGhyb3VnaCB0aGUg
YWN0dWFsIEhFVkMgVlBTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24gNy4zLjIuMSAoIlZpZGVv
IHBhcmFtZXRlciBzZXQgUkJTUCBzeW50YXgiKSBvZiB0aGUKKyAgLy8gSC4yNjUgc3RhbmRhcmQg
Zm9yIGEgY29tcGxldGUgZGVzY3JpcHRpb24uCisKKyAgVnBzU3RhdGUgdnBzOworCisgIC8vIHZw
c192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIHVpbnQzMl90IHZwc192aWRlb19wYXJh
bWV0ZXJfc2V0X2lkID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0
cygmdnBzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQsIDQpKTsKKworICB2cHMuaWQgPSB2cHNfdmlk
ZW9fcGFyYW1ldGVyX3NldF9pZDsKKyAgdnBzLmlkID0gMDsKKyAgcmV0dXJuIE9wdGlvbmFsVnBz
KHZwcyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVf
dnBzX3BhcnNlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
Y29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThhMjc3NWY0
M2RmMTdkMThlMDlkYzQwMDdlNjIzYTYzMjA4NWE3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gy
NjVfdnBzX3BhcnNlci5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAy
MDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs
aWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUg
cm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwg
cHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVO
VFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBp
biB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLwor
CisjaWZuZGVmIENPTU1PTl9WSURFT19IMjY1X0gyNjVfVlBTX1BBUlNFUl9IXworI2RlZmluZSBD
T01NT05fVklERU9fSDI2NV9IMjY1X1ZQU19QQVJTRVJfSF8KKworI2luY2x1ZGUgImFic2wvdHlw
ZXMvb3B0aW9uYWwuaCIKKworbmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBCaXRCdWZmZXI7Cit9CisK
K25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBBIGNsYXNzIGZvciBwYXJzaW5nIG91dCBzZXF1ZW5j
ZSBwYXJhbWV0ZXIgc2V0IChWUFMpIGRhdGEgZnJvbSBhbiBIMjY1IE5BTFUuCitjbGFzcyBIMjY1
VnBzUGFyc2VyIHsKKyBwdWJsaWM6CisgIC8vIFRoZSBwYXJzZWQgc3RhdGUgb2YgdGhlIFZQUy4g
T25seSBzb21lIHNlbGVjdCB2YWx1ZXMgYXJlIHN0b3JlZC4KKyAgLy8gQWRkIG1vcmUgYXMgdGhl
eSBhcmUgYWN0dWFsbHkgbmVlZGVkLgorICBzdHJ1Y3QgVnBzU3RhdGUgeworICAgIFZwc1N0YXRl
KCk7CisKKyAgICB1aW50MzJfdCBpZCA9IDA7CisgIH07CisKKyAgLy8gVW5wYWNrIFJCU1AgYW5k
IHBhcnNlIFZQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZmZXIuCisgIHN0YXRpYyBhYnNs
OjpvcHRpb25hbDxWcHNTdGF0ZT4gUGFyc2VWcHMoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90
IGxlbmd0aCk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRoZSBWUFMgc3RhdGUsIGZvciBh
IGJpdCBidWZmZXIgd2hlcmUgUkJTUCBkZWNvZGluZyBoYXMgYWxyZWFkeSBiZWVuCisgIC8vIHBl
cmZvcm1lZC4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFZwc1N0YXRlPiBQYXJzZUludGVybmFs
KHJ0Yzo6Qml0QnVmZmVyKiBiaXRfYnVmZmVyKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJy
dGMKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9WUFNfUEFSU0VSX0hfCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9i
YXNlL21lZGlhX2NvbnN0YW50cy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCmluZGV4IDUxNDRhNmVhNjU1
NWRmYmI2NmM0NjJhZTIxNzdkZmNlY2NjOTE4YmIuLjdiNzBmZjllNDg4NGE1MDM1YjllZTM4OTRj
NTUwMDNjYWJmMWJhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3Rh
bnRzLmNjCkBAIC0xMDcsNiArMTA3LDkgQEAgY29uc3QgY2hhciBrVnA4Q29kZWNOYW1lW10gPSAi
VlA4IjsKIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFtZVtdID0gIlZQOSI7CiBjb25zdCBjaGFyIGtB
djFDb2RlY05hbWVbXSA9ICJBVjFYIjsKIGNvbnN0IGNoYXIga0gyNjRDb2RlY05hbWVbXSA9ICJI
MjY0IjsKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citjb25zdCBjaGFyIGtIMjY1Q29kZWNOYW1lW10g
PSAiSDI2NSI7CisjZW5kaWYKIAogLy8gUkZDIDYxODQgUlRQIFBheWxvYWQgRm9ybWF0IGZvciBI
LjI2NCB2aWRlbwogY29uc3QgY2hhciBrSDI2NEZtdHBQcm9maWxlTGV2ZWxJZFtdID0gInByb2Zp
bGUtbGV2ZWwtaWQiOwpAQCAtMTE0LDYgKzExNywxMyBAQCBjb25zdCBjaGFyIGtIMjY0Rm10cExl
dmVsQXN5bW1ldHJ5QWxsb3dlZFtdID0gImxldmVsLWFzeW1tZXRyeS1hbGxvd2VkIjsKIGNvbnN0
IGNoYXIga0gyNjRGbXRwUGFja2V0aXphdGlvbk1vZGVbXSA9ICJwYWNrZXRpemF0aW9uLW1vZGUi
OwogY29uc3QgY2hhciBrSDI2NEZtdHBTcHJvcFBhcmFtZXRlclNldHNbXSA9ICJzcHJvcC1wYXJh
bWV0ZXItc2V0cyI7CiBjb25zdCBjaGFyIGtIMjY0UHJvZmlsZUxldmVsQ29uc3RyYWluZWRCYXNl
bGluZVtdID0gIjQyZTAxZiI7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorLy8gUkZDIDc3OTggUlRQ
IFBheWxvYWQgRm9ybWF0IGZvciBILjI2NSB2aWRlbworY29uc3QgY2hhciBrSDI2NUZtdHBQcm9m
aWxlU3BhY2VbXSA9ICJwcm9maWxlLXNwYWNlIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwUHJvZmls
ZUlkW10gPSAicHJvZmlsZS1pZCI7Citjb25zdCBjaGFyIGtIMjY1Rm10cFRpZXJGbGFnW10gPSAi
dGllci1mbGFnIjsKK2NvbnN0IGNoYXIga0gyNjVGbXRwTGV2ZWxJZFtdID0gImxldmVsLWlkIjsK
KyNlbmRpZgogCiBjb25zdCBpbnQga0RlZmF1bHRWaWRlb01heEZyYW1lcmF0ZSA9IDYwOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRp
YS9iYXNlL21lZGlhX2NvbnN0YW50cy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaAppbmRleCBiOWI4YTMzNmY3
ZjBjYWYyZmYxOTQ2OWZlYTc1Y2I3OTI5NDcwYTU4Li5hMTgxOTNlMDVkMjQ4YzEyZjZhNDU4MmI1
NmU0YjIxODE5MWE5MzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21lZGlhX2NvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3Rh
bnRzLmgKQEAgLTEzNiw2ICsxMzYsOSBAQCBSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtW
cDhDb2RlY05hbWVbXTsKIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga1ZwOUNvZGVjTmFt
ZVtdOwogUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrQXYxQ29kZWNOYW1lW107CiBSVENf
RVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY0Q29kZWNOYW1lW107CisjaWZuZGVmIERJU0FC
TEVfSDI2NQorUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUNvZGVjTmFtZVtdOwor
I2VuZGlmCiAKIC8vIFJGQyA2MTg0IFJUUCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4yNjQgdmlkZW8K
IFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRGbXRwUHJvZmlsZUxldmVsSWRbXTsK
QEAgLTE0NCw2ICsxNDcsMTQgQEAgUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NEZt
dHBQYWNrZXRpemF0aW9uTW9kZVtdOwogZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjRGbXRwU3Byb3BQ
YXJhbWV0ZXJTZXRzW107CiBleHRlcm4gY29uc3QgY2hhciBrSDI2NFByb2ZpbGVMZXZlbENvbnN0
cmFpbmVkQmFzZWxpbmVbXTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKy8vIFJGQyA3Nzk4IFJU
UCBQYXlsb2FkIEZvcm1hdCBmb3IgSC4yNjUgdmlkZW8KK1JUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0
IGNoYXIga0gyNjVGbXRwUHJvZmlsZVNwYWNlW107CitSVENfRVhQT1JUIGV4dGVybiBjb25zdCBj
aGFyIGtIMjY1Rm10cFByb2ZpbGVJZFtdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBr
SDI2NUZtdHBUaWVyRmxhZ1tdOworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUZt
dHBMZXZlbElkW107CisjZW5kaWYKKwogZXh0ZXJuIGNvbnN0IGludCBrRGVmYXVsdFZpZGVvTWF4
RnJhbWVyYXRlOwogCiBleHRlcm4gY29uc3Qgc2l6ZV90IGtDb25mZXJlbmNlTWF4TnVtU3BhdGlh
bExheWVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL0JVSUxELmduCmluZGV4IDI4MjZk
MGYwOWIxNDRlNDVhMGI3ZDQ3MGQwYmE5ZDU3YzQzMzVjZTEuLjZmOTAyZmY3YjBjNWYyYjVhMGFi
OGJhYmI2NDk2ZTVjMzllOGMwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3AvQlVJTEQuZ24KKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9CVUlM
RC5nbgpAQCAtMjM2LDYgKzIzNiwxNyBAQCBydGNfbGlicmFyeSgicnRwX3J0Y3AiKSB7CiAgICAg
ZGVmaW5lcyA9IFsgIkJXRV9URVNUX0xPR0dJTkdfQ09NUElMRV9USU1FX0VOQUJMRT0wIiBdCiAg
IH0KIAorICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisgICAgICAic291
cmNlL3J0cF9mb3JtYXRfaDI2NS5jYyIsCisgICAgICAic291cmNlL3J0cF9mb3JtYXRfaDI2NS5o
IiwKKyAgICBdCisgIH0KKworICBpZiAoIXJ0Y191c2VfaDI2NSkgeworICAgIGRlZmluZXMgKz0g
WyJESVNBQkxFX0gyNjUiXQorICB9CisKICAgZGVwcyA9IFsKICAgICAiOnJ0cF9ydGNwX2Zvcm1h
dCIsCiAgICAgIjpydHBfdmlkZW9faGVhZGVyIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2NyZWF0
ZV92aWRlb19ydHBfZGVwYWNrZXRpemVyLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9k
ZXBhY2tldGl6ZXIuY2MKaW5kZXggNTllMTM5OWM5OWYyMmU5ZTY4ZjVjNjY3NzFkZWVlNzUxNGM3
MGM1ZC4uOGJiYjNhNGQ5NzgwMmE4ZDAwZDY0Nzg4YjMwMTAxMzZlYTlmMmI4OSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3Vy
Y2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuY2MKQEAgLTEzLDYgKzEzLDkgQEAKICNp
bmNsdWRlIDxtZW1vcnk+CiAKICNpbmNsdWRlICJhcGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5o
IgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJj
ZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyX2F2MS5oIgogI2luY2x1ZGUgIm1vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfZ2VuZXJpYy5oIgpAQCAt
MjcsNiArMzAsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvUnRwRGVwYWNrZXRpemVyPiBDcmVh
dGVWaWRlb1J0cERlcGFja2V0aXplcigKICAgc3dpdGNoIChjb2RlYykgewogICAgIGNhc2Uga1Zp
ZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VmlkZW9SdHBEZXBh
Y2tldGl6ZXJIMjY0PigpOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0Nv
ZGVjSDI2NToKKyAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvUnRwRGVwYWNrZXRp
emVySDI2NT4oKTsKKyNlbmRpZgogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDg6CiAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxWaWRlb1J0cERlcGFja2V0aXplclZwOD4oKTsKICAgICBjYXNl
IGtWaWRlb0NvZGVjVlA5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMzQ2MzBhYTg3YmFi
MDkwYTE0ZDI3YjQ4MzM2Mzc5MWY0ODExZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9o
MjY1X3Nwc19wYXJzZXIuY2MKQEAgLTAsMCArMSwxOTEgQEAKKy8qCisgKiBJbnRlbCBMaWNlbnNl
CisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtpdAorICogVGhpcyBpcyBy
ZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlzIGZyZWUgZm9yIGJvdGgg
YWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpbmNsdWRlICJ3ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgiCisKKyNpbmNsdWRlICJydGNf
YmFzZS9iaXRfYnVmZmVyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvYnl0ZV9idWZmZXIuaCIKKyNp
bmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNkZWZp
bmUgUkVUVVJOX0ZBTFNFX09OX0ZBSUwoeCkgXAorICBpZiAoISh4KSkgeyAgICAgICAgICAgICAg
ICAgICBcCisgICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgIFwKKyAgfQorCituYW1lc3Bh
Y2Ugd2VicnRjIHsKKworSDI2NVNwc1BhcnNlcjo6SDI2NVNwc1BhcnNlcihjb25zdCB1aW50OF90
KiBzcHMsIHNpemVfdCBieXRlX2xlbmd0aCkKKyAgICA6IHNwc18oc3BzKSwgYnl0ZV9sZW5ndGhf
KGJ5dGVfbGVuZ3RoKSwgd2lkdGhfKCksIGhlaWdodF8oKSB7Cit9CisKK2Jvb2wgSDI2NVNwc1Bh
cnNlcjo6UGFyc2UoKSB7CisgIC8vIEdlbmVyYWwgbm90ZTogdGhpcyBpcyBiYXNlZCBvZmYgdGhl
IDA0LzIwMTUgdmVyc2lvbiBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisgIC8vIFlvdSBjYW4gZmlu
ZCBpdCBvbiB0aGlzIHBhZ2U6CisgIC8vIGh0dHA6Ly93d3cuaXR1LmludC9yZWMvVC1SRUMtSC4y
NjUKKworICBjb25zdCBjaGFyKiBzcHNfYnl0ZXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihzcHNfKTsKKyAgLy8gRmlyc3QsIHBhcnNlIG91dCByYnNwLCB3aGljaCBpcyBiYXNpY2Fs
bHkgdGhlIHNvdXJjZSBidWZmZXIgbWludXMgZW11bGF0aW9uCisgIC8vIGJ5dGVzICh0aGUgbGFz
dCBieXRlIG9mIGEgMHgwMCAweDAwIDB4MDMgc2VxdWVuY2UpLiBSQlNQIGlzIGRlZmluZWQgaW4K
KyAgLy8gc2VjdGlvbiA3LjMuMS4xIG9mIHRoZSBILjI2NSBzdGFuZGFyZCwgc2ltaWxhciB0byBI
MjY0LgorICBydGM6OkJ5dGVCdWZmZXJXcml0ZXIgcmJzcF9idWZmZXI7CisgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgYnl0ZV9sZW5ndGhfOykgeworICAgIC8vIEJlIGNhcmVmdWwgYWJvdXQgb3Zl
ci91bmRlcmZsb3cgaGVyZS4gYnl0ZV9sZW5ndGhfIC0gMyBjYW4gdW5kZXJmbG93LCBhbmQKKyAg
ICAvLyBpICsgMyBjYW4gb3ZlcmZsb3csIGJ1dCBieXRlX2xlbmd0aF8gLSBpIGNhbid0LCBiZWNh
dXNlIGkgPCBieXRlX2xlbmd0aF8KKyAgICAvLyBhYm92ZSwgYW5kIHRoYXQgZXhwcmVzc2lvbiB3
aWxsIHByb2R1Y2UgdGhlIG51bWJlciBvZiBieXRlcyBsZWZ0IGluCisgICAgLy8gdGhlIHN0cmVh
bSBpbmNsdWRpbmcgdGhlIGJ5dGUgYXQgaS4KKyAgICBpZiAoYnl0ZV9sZW5ndGhfIC0gaSA+PSAz
ICYmIHNwc19baV0gPT0gMCAmJiBzcHNfW2kgKyAxXSA9PSAwICYmCisgICAgICAgIHNwc19baSAr
IDJdID09IDMpIHsKKyAgICAgIC8vIFR3byByYnNwIGJ5dGVzICsgdGhlIGVtdWxhdGlvbiBieXRl
LgorICAgICAgcmJzcF9idWZmZXIuV3JpdGVCeXRlcyhzcHNfYnl0ZXMgKyBpLCAyKTsKKyAgICAg
IGkgKz0gMzsKKyAgICB9IGVsc2UgeworICAgICAgLy8gU2luZ2xlIHJic3AgYnl0ZS4KKyAgICAg
IHJic3BfYnVmZmVyLldyaXRlQnl0ZXMoc3BzX2J5dGVzICsgaSwgMSk7CisgICAgICBpKys7Cisg
ICAgfQorICB9CisKKyAgLy8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZmZXIgdG8gcGFy
c2UgdGhyb3VnaCB0aGUgYWN0dWFsIEhFVkMgU1BTCisgIC8vIGZvcm1hdC4gU2VlIFNlY3Rpb24g
Ny4zLjIuMS4xICgiU2VxdWVuY2UgcGFyYW1ldGVyIHNldCBkYXRhIHN5bnRheCIpIG9mIHRoZQor
ICAvLyBILjI2NSBzdGFuZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlvbi4KKyAgLy8gU2lu
Y2Ugd2Ugb25seSBjYXJlIGFib3V0IHJlc29sdXRpb24sIHdlIGlnbm9yZSB0aGUgbWFqb3JpdHkg
b2YgZmllbGRzLCBidXQKKyAgLy8gd2Ugc3RpbGwgaGF2ZSB0byBhY3RpdmVseSBwYXJzZSB0aHJv
dWdoIGEgbG90IG9mIHRoZSBkYXRhLCBzaW5jZSBtYW55IG9mCisgIC8vIHRoZSBmaWVsZHMgaGF2
ZSB2YXJpYWJsZSBzaXplLgorICAvLyBVbmxpa2UgSDI2NCwgZm9yIEgyNjUsIHRoZSBwaWN0dXJl
IHNpemUgaXMgaW5kaWNhdGVkIGJ5IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMKKyAgLy8gYW5k
IHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzLCAgaWYgY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcg
IT0xOworICAvLyBXaGVuIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnIGlzIDEsICB0aGUgd2lkdGgg
aXMgYWRqdXN0ZWQgd2l0aCBjb25fd2luX3h4X29mZnNldAorICAvLworICBydGM6OkJpdEJ1ZmZl
ciBwYXJzZXIocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4ocmJzcF9idWZmZXIuRGF0
YSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJic3BfYnVmZmVyLkxlbmd0aCgpKTsKKwor
ICAvLyBUaGUgZ29sb21iIHZhbHVlcyB3ZSBoYXZlIHRvIHJlYWQsIG5vdCBqdXN0IGNvbnN1bWUu
CisgIHVpbnQzMl90IGdvbG9tYl9pZ25vcmVkOworCisgIC8vIHNlcGFyYXRlX2NvbG91cl9wbGFu
ZV9mbGFnIGlzIG9wdGlvbmFsIChhc3N1bWVkIDApLCBidXQgaGFzIGltcGxpY2F0aW9ucworICAv
LyBhYm91dCB0aGUgQ2hyb21hQXJyYXlUeXBlLCB3aGljaCBtb2RpZmllcyBob3cgd2UgdHJlYXQg
Y3JvcCBjb29yZGluYXRlcy4KKyAgdWludDMyX3Qgc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcg
PSAwOworICAvLyBjaHJvbWFfZm9ybWF0X2lkYyB3aWxsIGJlIENocm9tYUFycmF5VHlwZSBpZiBz
ZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZyBpcworICAvLyAwLiBJdCBkZWZhdWx0cyB0byAxLCB3
aGVuIG5vdCBzcGVjaWZpZWQuCisgIHVpbnQzMl90IGNocm9tYV9mb3JtYXRfaWRjID0gMTsKKwor
CisgIC8vIHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOiB1KDQpCisgIFJFVFVSTl9GQUxTRV9P
Tl9GQUlMKHBhcnNlci5Db25zdW1lQml0cyg0KSk7CisgIC8vIHNwc19tYXhfc3ViX2xheWVyc19t
aW51czE6IHUoMykKKyAgdWludDMyX3Qgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSA9IDA7Cisg
IFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmc3BzX21heF9zdWJfbGF5ZXJz
X21pbnVzMSwgMykpOworICAvLyBzcHNfdGVtcG9yYWxfaWRfbmVzdGluZ19mbGFnOiB1KDEpCisg
IFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygxKSk7CisgIC8vIHByb2Zp
bGVfdGllcl9sZXZlbCgxLCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxKS4gV2UgYXJlIGFjdXRh
bGx5IG5vdAorICAvLyB1c2luZyB0aGVtLCBzbyByZWFkL3NraXAgb3ZlciBpdC4KKyAgLy8gZ2Vu
ZXJhbF9wcm9maWxlX3NwYWNlK2dlbmVyYWxfdGllcl9mbGFnK2dlbmVyYWxfcHJmaWxlX2lkYzog
dSg4KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDEpKTsKKyAg
Ly8gZ2VuZXJhbF9wcm9maWxlX2NvbXBhdGFiaWxpdGl5X2ZsYWdbMzJdCisgIFJFVFVSTl9GQUxT
RV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoNCkpOworICAvLyBnZW5lcmFsX3Byb2dyZXNz
aXZlX3NvdXJjZV9mbGFnICsgaW50ZXJsYWNlZF9zb3VyY2VfZmxhZysgbm9uLXBhY2tlZF9jb25z
dHJhaW50CisgIC8vIGZsYWcgKyBmcmFtZV9vbmx5X2NvbnN0cmFpbnRfZmxhZzogdSg0KQorICBS
RVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNCkpOworICAvLyBnZW5lcmFs
X3Byb2ZpbGVfaWRjIGRlY2lkZWQgZmxhZ3Mgb3IgcmVzZXJ2ZWQuICB1KDQzKQorICBSRVRVUk5f
RkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoNDMpKTsKKyAgLy8gZ2VuZXJhbF9pbmJs
ZF9mbGFnIG9yIHJlc2VydmVkIDA6IHUoMSkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2Vy
LkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gZ2VuZXJhbF9sZXZlbF9pZGM6IHUoOCkKKyAgUkVUVVJO
X0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCeXRlcygxKSk7CisgIC8vIGlmIG1heF9zdWJf
bGF5ZXJzX21pbnVzMSA+PTEsIHJlYWQgdGhlIHN1YmxheWVyIHByb2ZpbGUgaW5mb3JtYXRpb24K
KyAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3M7
CisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnczsK
KyAgdWludDMyX3Qgc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudCA9IDA7CisgIHVpbnQzMl90IHN1
Yl9sYXllcl9sZXZlbF9wcmVzZW50ID0gMDsKKyAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHNw
c19tYXhfc3ViX2xheWVyc19taW51czE7IGkrKykgeworICAgICAgLy9zdWJsYXllcl9wcm9maWxl
X3ByZXNlbnRfZmxhZyBhbmQgc3VibGF5ZXJfbGV2ZWxfcHJlc25ldF9mbGFnOiAgdSgyKQorICAg
ICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRCaXRzKCZzdWJfbGF5ZXJfcHJvZmls
ZV9wcmVzZW50LCAxKSk7CisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEJp
dHMoJnN1Yl9sYXllcl9sZXZlbF9wcmVzZW50LCAxKSk7CisgICAgICBzdWJfbGF5ZXJfcHJvZmls
ZV9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfcHJvZmlsZV9wcmVzZW50KTsKKyAg
ICAgIHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzLnB1c2hfYmFjayhzdWJfbGF5ZXJfbGV2
ZWxfcHJlc2VudCk7CisgIH0KKyAgaWYgKHNwc19tYXhfc3ViX2xheWVyc19taW51czEgPiAwKSB7
CisgICAgICBmb3IgKHVpbnQzMl90IGogPSBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBqIDwg
ODsgaisrKSB7CisgICAgICAgIC8vIHJlc2VydmVkIDIgYml0czogdSgyKQorICAgICAgICAgIFJF
VFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQml0cygyKSk7CisgICAgICB9CisgIH0K
KyAgZm9yICh1aW50MzJfdCBrID0gMDsgayA8IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGsr
KykgeworICAgICAgaWYoc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnc1trXSkgey8vCisg
ICAgICAgIC8vIHN1Yl9sYXllciBwcm9maWxlX3NwYWNlL3RpZXJfZmxhZy9wcm9maWxlX2lkYy4g
aWdub3JlZC4gdSg4KQorICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3Vt
ZUJ5dGVzKDEpKTsKKyAgICAgICAgLy8gcHJvZmlsZV9jb21wYXRhYmlsaXR5X2ZsYWc6ICB1KDMy
KQorICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJ5dGVzKDQpKTsK
KyAgICAgICAgLy8gc3ViX2xheWVyIHByb2dyZXNzaXZlX3NvdXJjZV9mbGFnL2ludGVybGFjZWRf
c291cmNlX2ZsYWcvCisgICAgICAgIC8vIG5vbl9wYWNrZWRfY29uc3RyYWludF9mbGFnL2ZyYW1l
X29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlM
KHBhcnNlci5Db25zdW1lQml0cyg0KSk7CisgICAgICAgIC8vIGZvbGxvd2luZyA0My1iaXRzIGFy
ZSBwcm9maWxlX2lkYyBzcGVjaWZpYy4gV2Ugc2ltcGx5IHJlYWQvc2tpcCBpdC4gdSg0MykKKyAg
ICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDQzKSk7CisgICAg
ICAgIC8vIDEtYml0IHByb2ZpbGVfaWRjIHNwZWNpZmljIGluYmxkIGZsYWcuICBXZSBzaW1wbHkg
cmVhZC9za2lwIGl0LiB1KDEpCisgICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5D
b25zdW1lQml0cygxKSk7CisgICAgICB9CisgICAgICBpZiAoc3ViX2xheWVyX2xldmVsX3ByZXNl
bnRfZmxhZ3Nba10pIHsKKyAgICAgICAgLy8gc3ViX2xheWVyX2xldmVsX2lkYzogdSg4KQorICAg
ICAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoMSkpOworICAg
ICAgfQorICB9CisgIC8vc3BzX3NlcV9wYXJhbWV0ZXJfc2V0X2lkOiB1ZSh2KQorICBSRVRVUk5f
RkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3Jl
ZCkpOworICAvLyBjaHJvbWVfZm9ybWF0X2lkYzogdWUodikKKyAgUkVUVVJOX0ZBTFNFX09OX0ZB
SUwocGFyc2VyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY2hyb21hX2Zvcm1hdF9pZGMpKTsKKyAg
aWYgKGNocm9tYV9mb3JtYXRfaWRjID09IDMpIHsKKyAgICAvLyBzZXBlcmF0ZV9jb2xvdXJfcGxh
bmVfZmxhZzogdSgxKQorICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygm
c2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcsIDEpKTsKKyAgfQorICB1aW50MzJfdCBwaWNfd2lk
dGhfaW5fbHVtYV9zYW1wbGVzID0gMDsKKyAgdWludDMyX3QgcGljX2hlaWdodF9pbl9sdW1hX3Nh
bXBsZXMgPSAwOworICAvLyBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2KQorICBSRVRV
Uk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZwaWNfd2lkdGhf
aW5fbHVtYV9zYW1wbGVzKSk7CisgIC8vIHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzOiB1ZSh2
KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21iKCZw
aWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcykpOworICAvLyBjb25mb3JtYW5jZV93aW5kb3dfZmxh
ZzogdSgxKQorICB1aW50MzJfdCBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyA9IDA7CisgIFJFVFVS
Tl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcs
IDEpKTsKKworICB1aW50MzJfdCBjb25mX3dpbl9sZWZ0X29mZnNldCA9IDA7CisgIHVpbnQzMl90
IGNvbmZfd2luX3JpZ2h0X29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZfd2luX3RvcF9vZmZz
ZXQgPSAwOworICB1aW50MzJfdCBjb25mX3dpbl9ib3R0b21fb2Zmc2V0ID0gMDsKKyAgaWYgKGNv
bmZvcm1hbmNlX3dpbmRvd19mbGFnKSB7CisgICAgICAvLyBjb25mX3dpbl9sZWZ0X29mZnNldDog
dWUodikKKyAgICAgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxH
b2xvbWIoJmNvbmZfd2luX2xlZnRfb2Zmc2V0KSk7CisgICAgICAvLyBjb25mX3dpbl9yaWdodF9v
ZmZzZXQ6IHVlKHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9u
ZW50aWFsR29sb21iKCZjb25mX3dpbl9yaWdodF9vZmZzZXQpKTsKKyAgICAgIC8vIGNvbmZfd2lu
X3RvcF9vZmZzZXQ6IHVlKHYpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVh
ZEV4cG9uZW50aWFsR29sb21iKCZjb25mX3dpbl90b3Bfb2Zmc2V0KSk7CisgICAgICAvLyBjb25m
X3dpbl9ib3R0b21fb2Zmc2V0OiB1ZSh2KQorICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFy
c2VyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY29uZl93aW5fYm90dG9tX29mZnNldCkpOworICB9
CisKKyAgLy9Gb3IgZW5vdWdoIHRvIGdldCB0aGUgcmVzb2x1dGlvbiBpbmZvcm1hdGlvbi4gY2Fs
Y2FsdWF0ZSBhY2NvcmRpbmcgdG8gSEVWQyBzcGVjIDcuNC4zLjIKKyAgaW50IHdpZHRoID0gMDsK
KyAgaW50IGhlaWdodCA9IDA7CisKKyAgd2lkdGggPSBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVz
OworICBoZWlnaHQgPSBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczsKKworICBpZiAoY29uZm9y
bWFuY2Vfd2luZG93X2ZsYWcpIHsKKyAgICBpbnQgc3ViX3dpZHRoX2MgPSAoKDEgPT0gY2hyb21h
X2Zvcm1hdF9pZGMpIHx8ICgyID09IGNocm9tYV9mb3JtYXRfaWRjKSkgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgICgwID09IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnKSA/IDIgOiAxOwor
ICAgIGludCBzdWJfaGVpZ2h0X2MgPSAoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgJiYgKDAgPT0g
c2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcpID8gMiA6IDE7CisgICAgLy90aGUgb2Zmc2V0IGlu
Y2x1ZGVzIHRoZSBwaXhlbCB3aXRoaW4gY29uZm9ybWFuY2Ugd2luZG93LiBzbyBkb24ndCBuZWVk
IHRvICsxIGFzIHBlciBzcGVjCisgICAgd2lkdGggLT0gc3ViX3dpZHRoX2MqKGNvbmZfd2luX3Jp
Z2h0X29mZnNldCArIGNvbmZfd2luX2xlZnRfb2Zmc2V0KTsKKyAgICBoZWlnaHQgLT0gc3ViX2hl
aWdodF9jKihjb25mX3dpbl90b3Bfb2Zmc2V0ICsgY29uZl93aW5fYm90dG9tX29mZnNldCk7Cisg
IH0KKworICB3aWR0aF8gPSB3aWR0aDsKKyAgaGVpZ2h0XyA9IGhlaWdodDsKKyAgcmV0dXJuIHRy
dWU7CisKK30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
aDI2NV9zcHNfcGFyc2VyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNjQyYjliZDUzNzY1YTFhMGNkNWNhNTBmOGNmZDNmYjAyMzE0NTgwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvaDI2NV9zcHNfcGFyc2VyLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
ICBJbnRlbCBMaWNlbnNlCisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtp
dAorICogVGhpcyBpcyByZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlz
IGZyZWUgZm9yIGJvdGggYWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpZm5k
ZWYgV0VCUlRDX01PRFVMRVNfUlRQX1JUQ1BfU09VUkNFX0gyNjVfU1BTX1BBUlNFUl9IXworI2Rl
ZmluZSBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfSDI2NV9TUFNfUEFSU0VSX0hfCisK
KyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworbmFtZXNwYWNlIHdl
YnJ0YyB7CisKKy8vIEEgY2xhc3MgZm9yIHBhcnNpbmcgb3V0IHNlcXVlbmNlIHBhcmFtZXRlciBz
ZXQgKFNQUykgZGF0YSBmcm9tIGFuIEgyNjUgTkFMVS4KKy8vIEN1cnJlbnRseSwgb25seSByZXNv
bHV0aW9uIGlzIHJlYWQgd2l0aG91dCBiZWluZyBpZ25vcmVkLgorY2xhc3MgSDI2NVNwc1BhcnNl
ciB7CisgcHVibGljOgorICBIMjY1U3BzUGFyc2VyKGNvbnN0IHVpbnQ4X3QqIHNwcywgc2l6ZV90
IGJ5dGVfbGVuZ3RoKTsKKyAgLy8gUGFyc2VzIHRoZSBTUFMgdG8gY29tcGxldGlvbi4gUmV0dXJu
cyB0cnVlIGlmIHRoZSBTUFMgd2FzIHBhcnNlZCBjb3JyZWN0bHkuCisgIGJvb2wgUGFyc2UoKTsK
KyAgdWludDE2X3Qgd2lkdGgoKSB7IHJldHVybiB3aWR0aF87IH0KKyAgdWludDE2X3QgaGVpZ2h0
KCkgeyByZXR1cm4gaGVpZ2h0XzsgfQorCisgcHJpdmF0ZToKKyAgY29uc3QgdWludDhfdCogY29u
c3Qgc3BzXzsKKyAgY29uc3Qgc2l6ZV90IGJ5dGVfbGVuZ3RoXzsKKworICB1aW50MTZfdCB3aWR0
aF87CisgIHVpbnQxNl90IGhlaWdodF87Cit9OworCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisj
ZW5kaWYgIC8vIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9IMjY1X1NQU19QQVJTRVJf
SF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9y
bWF0LmNjCmluZGV4IDEyYjVlOGRkYzVhZDY3YmNkMTBhNDNhMWJjMzBiMTEwYTVhY2IxZTQuLjYy
ODEzZDJjNmYyN2NiZTgwMzAyYmNiMWE0MmVhYjViZjRiNjRhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL3J0cF9mb3JtYXQuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5jYwpAQCAtMTQsMTEg
KzE0LDE3IEBACiAKICNpbmNsdWRlICJhYnNsL3R5cGVzL3ZhcmlhbnQuaCIKICNpbmNsdWRlICJt
b2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjQuaCIKKyNpZm5kZWYgRElTQUJM
RV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1
LmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0
X3ZpZGVvX2dlbmVyaWMuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBf
Zm9ybWF0X3ZwOC5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3Jt
YXRfdnA5LmgiCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3BhY2tldGl6
ZXJfYXYxLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5j
bHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9k
dWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNl
bmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVkZS92
cDhfZ2xvYmFscy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkv
aW5jbHVkZS92cDlfZ2xvYmFscy5oIgogI2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNrcy5oIgpAQCAt
NDUsNiArNTEsMTUgQEAgc3RkOjp1bmlxdWVfcHRyPFJ0cFBhY2tldGl6ZXI+IFJ0cFBhY2tldGl6
ZXI6OkNyZWF0ZSgKICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJ0cFBhY2tldGl6ZXJI
MjY0PigKICAgICAgICAgICBwYXlsb2FkLCBsaW1pdHMsIGgyNjQucGFja2V0aXphdGlvbl9tb2Rl
LCAqZnJhZ21lbnRhdGlvbik7CiAgICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNl
IGtWaWRlb0NvZGVjSDI2NTogeworICAgICAgUlRDX0NIRUNLKGZyYWdtZW50YXRpb24pOworICAg
ICAgY29uc3QgYXV0byYgaDI2NSA9CisgICAgICAgICAgYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVy
SDI2NT4ocnRwX3ZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisgICAgICByZXR1cm4g
YWJzbDo6bWFrZV91bmlxdWU8UnRwUGFja2V0aXplckgyNjU+KAorICAgICAgICAgIHBheWxvYWQs
IGxpbWl0cywgaDI2NS5wYWNrZXRpemF0aW9uX21vZGUsICpmcmFnbWVudGF0aW9uKTsKKyAgICB9
CisjZW5kaWYKICAgICBjYXNlIGtWaWRlb0NvZGVjVlA4OiB7CiAgICAgICBjb25zdCBhdXRvJiB2
cDggPQogICAgICAgICAgIGFic2w6OmdldDxSVFBWaWRlb0hlYWRlclZQOD4ocnRwX3ZpZGVvX2hl
YWRlci52aWRlb190eXBlX2hlYWRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0
X2gyNjUuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuY2MKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFiMDRh
MDA3YzVlZjM1OWQxYTg2NGZkNTQxZTg3MGIzODUxNzZlNQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF9mb3JtYXRfaDI2NS5jYwpAQCAtMCwwICsxLDY1MCBAQAorLyoKKyAqICBJbnRl
bCBMaWNlbnNlCisgKiBTZWUgaHR0cHM6Ly8wMS5vcmcvb3Blbi13ZWJydGMtdG9vbGtpdAorICog
VGhpcyBpcyByZWxlYXNlZCB1bmRlciBBcGFjaGUgTGljZW5zZSAyLjAgYW5kIGl0IGlzIGZyZWUg
Zm9yIGJvdGggYWNhZGVtaWMgYW5kIGNvbW1lcmNpYWwgdXNlLgorICovCisKKyNpbmNsdWRlIDxz
dHJpbmcuaD4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gyNjRfY29tbW9uLmgiCisj
aW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKyNpbmNsdWRlICJjb21t
b25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8v
aDI2NS9oMjY1X3Nwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1
X3Zwc19wYXJzZXIuaCIKKyNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90
eXBlcy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2J5dGVfaW8uaCIKKyNp
bmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNpbmNs
dWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfcGFja2V0X3RvX3NlbmQuaCIKKyNpbmNs
dWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCit1c2luZyBuYW1lc3BhY2UgcnRjOworCituYW1lc3Bh
Y2Ugd2VicnRjIHsKK25hbWVzcGFjZSB7CisKK2VudW0gTmFsdVR5cGUgeworICBrVHJhaWxOID0g
MCwKKyAga1RyYWlsUiA9IDEsCisgIGtUc2FOID0gMiwKKyAga1RzYVIgPSAzLAorICBrU3RzYU4g
PSA0LAorICBrU3RzYVIgPSA1LAorICBrUmFkbE4gPSA2LAorICBrUmFkbFIgPSA3LAorICBrQmxh
V0xwID0gMTYsCisgIGtCbGFXUmFkbCA9IDE3LAorICBrQmxhTkxwID0gMTgsCisgIGtJZHJXUmFk
bCA9IDE5LAorICBrSWRyTkxwID0gMjAsCisgIGtDcmEgPSAyMSwKKyAga1ZwcyA9IDMyLAorICBr
SGV2Y1NwcyA9IDMzLAorICBrSGV2Y1BwcyA9IDM0LAorICBrSGV2Y0F1ZCA9IDM1LAorICBrUHJl
Zml4U2VpID0gMzksCisgIGtTdWZmaXhTZWkgPSA0MCwKKyAga0hldmNBcCA9IDQ4LAorICBrSGV2
Y0Z1ID0gNDkKK307CisKKy8qCisgICAwICAgICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAg
ICAgICAgMiAgICAgICAgICAgICAgICAgICAzCisgICAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAy
IDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEKKyAgKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKKyAgfCAg
ICBQYXlsb2FkSGRyIChUeXBlPTQ5KSAgICAgICB8ICAgRlUgaGVhZGVyICAgfCBET05MIChjb25k
KSAgIHwKKyAgKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLXwKKyovCisvLyBVbmxpa2UgSC4yNjQsIEhFVkMgTkFMIGhlYWRlciBp
cyAyLWJ5dGVzLgorc3RhdGljIGNvbnN0IHNpemVfdCBrSGV2Y05hbEhlYWRlclNpemUgPSAyOwor
Ly8gSC4yNjUncyBGVSBpcyBjb25zdHJ1Y3RlZCBvZiAyLWJ5dGUgcGF5bG9hZCBoZWFkZXIsIGFu
ZCAxLWJ5dGUgRlUgaGVhZGVyCitzdGF0aWMgY29uc3Qgc2l6ZV90IGtIZXZjRnVIZWFkZXJTaXpl
ID0gMTsKK3N0YXRpYyBjb25zdCBzaXplX3Qga0hldmNMZW5ndGhGaWVsZFNpemUgPSAyOworc3Rh
dGljIGNvbnN0IHNpemVfdCBrSGV2Y0FwSGVhZGVyU2l6ZSA9CisgICAga0hldmNOYWxIZWFkZXJT
aXplICsga0hldmNMZW5ndGhGaWVsZFNpemU7CisKK2VudW0gSGV2Y05hbEhkck1hc2tzIHsKKyAg
a0hldmNGQml0ID0gMHg4MCwKKyAga0hldmNUeXBlTWFzayA9IDB4N0UsCisgIGtIZXZjTGF5ZXJJ
REhNYXNrID0gMHgxLAorICBrSGV2Y0xheWVySURMTWFzayA9IDB4RjgsCisgIGtIZXZjVElETWFz
ayA9IDB4NywKKyAga0hldmNUeXBlTWFza04gPSAweDgxLAorICBrSGV2Y1R5cGVNYXNrSW5GdUhl
YWRlciA9IDB4M0YKK307CisKKy8vIEJpdCBtYXNrcyBmb3IgRlUgaGVhZGVycy4KK2VudW0gSGV2
Y0Z1RGVmcyB7IGtIZXZjU0JpdCA9IDB4ODAsIGtIZXZjRUJpdCA9IDB4NDAsIGtIZXZjRnVUeXBl
Qml0ID0gMHgzRiB9OworCisvLyBUT0RPKHBib3MpOiBBdm9pZCBwYXJzaW5nIHRoaXMgaGVyZSBh
cyB3ZWxsIGFzIGluc2lkZSB0aGUgaml0dGVyIGJ1ZmZlci4KK2Jvb2wgUGFyc2VBcFN0YXJ0T2Zm
c2V0cyhjb25zdCB1aW50OF90KiBuYWx1X3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgbGVuZ3RoX3JlbWFpbmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZl
Y3RvcjxzaXplX3Q+KiBvZmZzZXRzKSB7CisgIHNpemVfdCBvZmZzZXQgPSAwOworICB3aGlsZSAo
bGVuZ3RoX3JlbWFpbmluZyA+IDApIHsKKyAgICAvLyBCdWZmZXIgZG9lc24ndCBjb250YWluIHJv
b20gZm9yIGFkZGl0aW9uYWwgbmFsdSBsZW5ndGguCisgICAgaWYgKGxlbmd0aF9yZW1haW5pbmcg
PCBzaXplb2YodWludDE2X3QpKQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIHVpbnQxNl90IG5h
bHVfc2l6ZSA9IEJ5dGVSZWFkZXI8dWludDE2X3Q+OjpSZWFkQmlnRW5kaWFuKG5hbHVfcHRyKTsK
KyAgICBuYWx1X3B0ciArPSBzaXplb2YodWludDE2X3QpOworICAgIGxlbmd0aF9yZW1haW5pbmcg
LT0gc2l6ZW9mKHVpbnQxNl90KTsKKyAgICBpZiAobmFsdV9zaXplID4gbGVuZ3RoX3JlbWFpbmlu
ZykKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICBuYWx1X3B0ciArPSBuYWx1X3NpemU7CisgICAg
bGVuZ3RoX3JlbWFpbmluZyAtPSBuYWx1X3NpemU7CisKKyAgICBvZmZzZXRzLT5wdXNoX2JhY2so
b2Zmc2V0ICsga0hldmNBcEhlYWRlclNpemUpOworICAgIG9mZnNldCArPSBrSGV2Y0xlbmd0aEZp
ZWxkU2l6ZSArIG5hbHVfc2l6ZTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFt
ZXNwYWNlCisKK1J0cFBhY2tldGl6ZXJIMjY1OjpSdHBQYWNrZXRpemVySDI2NSgKKyAgICBydGM6
OkFycmF5Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2FkLAorICAgIFBheWxvYWRTaXplTGltaXRz
IGxpbWl0cywKKyAgICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlLAor
ICAgIGNvbnN0IFJUUEZyYWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24pCisgICAgOiBs
aW1pdHNfKGxpbWl0cyksCisgICAgICBudW1fcGFja2V0c19sZWZ0XygwKSB7CisgIC8vIEd1YXJk
IGFnYWluc3QgdW5pbml0aWFsaXplZCBtZW1vcnkgaW4gcGFja2V0aXphdGlvbl9tb2RlLgorICBS
VENfQ0hFQ0socGFja2V0aXphdGlvbl9tb2RlID09IEgyNjVQYWNrZXRpemF0aW9uTW9kZTo6Tm9u
SW50ZXJsZWF2ZWQgfHwKKyAgICAgICAgICAgIHBhY2tldGl6YXRpb25fbW9kZSA9PSBIMjY1UGFj
a2V0aXphdGlvbk1vZGU6OlNpbmdsZU5hbFVuaXQpOworCisgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0aW9uVmVjdG9yU2l6ZTsgKytpKSB7CisgICAgY29u
c3QgdWludDhfdCogZnJhZ21lbnQgPQorICAgICAgICBwYXlsb2FkLmRhdGEoKSArIGZyYWdtZW50
YXRpb24uZnJhZ21lbnRhdGlvbk9mZnNldFtpXTsKKyAgICBjb25zdCBzaXplX3QgZnJhZ21lbnRf
bGVuZ3RoID0gZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldOworICAgIGlucHV0
X2ZyYWdtZW50c18ucHVzaF9iYWNrKEZyYWdtZW50KGZyYWdtZW50LCBmcmFnbWVudF9sZW5ndGgp
KTsKKyAgfQorCisgIGlmICghR2VuZXJhdGVQYWNrZXRzKHBhY2tldGl6YXRpb25fbW9kZSkpIHsK
KyAgICAvLyBJZiBmYWlsZWQgdG8gZ2VuZXJhdGUgYWxsIHRoZSBwYWNrZXRzLCBkaXNjYXJkIGFs
cmVhZHkgZ2VuZXJhdGVkCisgICAgLy8gcGFja2V0cyBpbiBjYXNlIHRoZSBjYWxsZXIgd291bGQg
aWdub3JlIHJldHVybiB2YWx1ZSBhbmQgc3RpbGwgdHJ5IHRvCisgICAgLy8gY2FsbCBOZXh0UGFj
a2V0KCkuCisgICAgbnVtX3BhY2tldHNfbGVmdF8gPSAwOworICAgIHdoaWxlICghcGFja2V0c18u
ZW1wdHkoKSkgeworICAgICAgcGFja2V0c18ucG9wKCk7CisgICAgfQorICB9Cit9CisKK1J0cFBh
Y2tldGl6ZXJIMjY1Ojp+UnRwUGFja2V0aXplckgyNjUoKSB7fQorCitzaXplX3QgUnRwUGFja2V0
aXplckgyNjU6Ok51bVBhY2tldHMoKSBjb25zdCB7CisgIHJldHVybiBudW1fcGFja2V0c19sZWZ0
XzsKK30KKworUnRwUGFja2V0aXplckgyNjU6OkZyYWdtZW50OjpGcmFnbWVudChjb25zdCB1aW50
OF90KiBidWZmZXIsIHNpemVfdCBsZW5ndGgpCisgICAgOiBidWZmZXIoYnVmZmVyKSwgbGVuZ3Ro
KGxlbmd0aCkge30KK1J0cFBhY2tldGl6ZXJIMjY1OjpGcmFnbWVudDo6RnJhZ21lbnQoY29uc3Qg
RnJhZ21lbnQmIGZyYWdtZW50KQorICAgIDogYnVmZmVyKGZyYWdtZW50LmJ1ZmZlciksIGxlbmd0
aChmcmFnbWVudC5sZW5ndGgpIHt9CisKKworYm9vbCBSdHBQYWNrZXRpemVySDI2NTo6R2VuZXJh
dGVQYWNrZXRzKAorICAgIEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUp
IHsKKyAgLy8gRm9yIEhFVkMgd2UgZm9sbG93IG5vbi1pbnRlcmxlYXZlZCBtb2RlIGZvciB0aGUg
cGFja2V0aXphdGlvbiwKKyAgLy8gYW5kIGRvbid0IHN1cHBvcnQgc2luZ2xlLW5hbHUgbW9kZSBh
dCBwcmVzZW50LgorICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlucHV0X2ZyYWdtZW50c18uc2l6
ZSgpOykgeworICAgIGludCBmcmFnbWVudF9sZW4gPSBpbnB1dF9mcmFnbWVudHNfW2ldLmxlbmd0
aDsKKyAgICBpbnQgc2luZ2xlX3BhY2tldF9jYXBhY2l0eSA9IGxpbWl0c18ubWF4X3BheWxvYWRf
bGVuOworICAgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSA9PSAxKQorICAgICAgc2luZ2xl
X3BhY2tldF9jYXBhY2l0eSAtPSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbjsK
KyAgICBlbHNlIGlmIChpID09IDApCisgICAgICBzaW5nbGVfcGFja2V0X2NhcGFjaXR5IC09IGxp
bWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgZWxzZSBpZiAoaSArIDEgPT0g
aW5wdXRfZnJhZ21lbnRzXy5zaXplKCkpIHsKKyAgICAgIC8vIFByZXRlbmQgdGhhdCBsYXN0IGZy
YWdtZW50IGlzIGxhcmdlciBpbnN0ZWFkIG9mIG1ha2luZyBsYXN0IHBhY2tldAorICAgICAgLy8g
c21hbGxlci4KKyAgICAgIHNpbmdsZV9wYWNrZXRfY2FwYWNpdHkgLT0gbGltaXRzXy5sYXN0X3Bh
Y2tldF9yZWR1Y3Rpb25fbGVuOworICAgIH0KKyAgICBpZiAoZnJhZ21lbnRfbGVuID4gc2luZ2xl
X3BhY2tldF9jYXBhY2l0eSkgeworICAgICAgUGFja2V0aXplRnUoaSk7CisgICAgICArK2k7Cisg
ICAgfSBlbHNlIHsKKyAgICAgIFBhY2tldGl6ZVNpbmdsZU5hbHUoaSk7CisgICAgICArK2k7Cisg
ICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpQ
YWNrZXRpemVGdShzaXplX3QgZnJhZ21lbnRfaW5kZXgpIHsKKyAgLy8gRnJhZ21lbnQgcGF5bG9h
ZCBpbnRvIHBhY2tldHMgKEZVKS4KKyAgLy8gU3RyaXAgb3V0IHRoZSBvcmlnaW5hbCBoZWFkZXIg
YW5kIGxlYXZlIHJvb20gZm9yIHRoZSBGVSBoZWFkZXIuCisgIGNvbnN0IEZyYWdtZW50JiBmcmFn
bWVudCA9IGlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOworICBQYXlsb2FkU2l6ZUxp
bWl0cyBsaW1pdHMgPSBsaW1pdHNfOworICBsaW1pdHMubWF4X3BheWxvYWRfbGVuIC09IGtIZXZj
RnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJTaXplOworCisgIC8vIFVwZGF0ZSBzaW5nbGUv
Zmlyc3QvbGFzdCBwYWNrZXQgcmVkdWN0aW9ucyB1bmxlc3MgaXQgaXMgc2luZ2xlL2ZpcnN0L2xh
c3QKKyAgLy8gZnJhZ21lbnQuCisgIGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSAhPSAxKSB7
CisgICAgLy8gaWYgdGhpcyBmcmFnbWVudCBpcyBwdXQgaW50byBhIHNpbmdsZSBwYWNrZXQsIGl0
IG1pZ2h0IHN0aWxsIGJlIHRoZQorICAgIC8vIGZpcnN0IG9yIHRoZSBsYXN0IHBhY2tldCBpbiB0
aGUgd2hvbGUgc2VxdWVuY2Ugb2YgcGFja2V0cy4KKyAgICBpZiAoZnJhZ21lbnRfaW5kZXggPT0g
aW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKSB7CisgICAgICBsaW1pdHMuc2luZ2xlX3BhY2tl
dF9yZWR1Y3Rpb25fbGVuID0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICAg
IH0gZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkgeworICAgICAgbGltaXRzLnNpbmdsZV9w
YWNrZXRfcmVkdWN0aW9uX2xlbiA9IGxpbWl0c18uZmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47
CisgICAgfSBlbHNlIHsKKyAgICAgIGxpbWl0cy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW4g
PSAwOworICAgIH0KKyAgfQorICBpZiAoZnJhZ21lbnRfaW5kZXggIT0gMCkKKyAgICBsaW1pdHMu
Zmlyc3RfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSAwOworICBpZiAoZnJhZ21lbnRfaW5kZXggIT0g
aW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKQorICAgIGxpbWl0cy5sYXN0X3BhY2tldF9yZWR1
Y3Rpb25fbGVuID0gMDsKKworICAvLyBTdHJpcCBvdXQgdGhlIG9yaWdpbmFsIGhlYWRlci4KKyAg
c2l6ZV90IHBheWxvYWRfbGVmdCA9IGZyYWdtZW50Lmxlbmd0aCAtIGtIZXZjTmFsSGVhZGVyU2l6
ZTsKKyAgaW50IG9mZnNldCA9IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKworICBzdGQ6OnZlY3Rvcjxp
bnQ+IHBheWxvYWRfc2l6ZXMgPSBTcGxpdEFib3V0RXF1YWxseShwYXlsb2FkX2xlZnQsIGxpbWl0
cyk7CisgIGlmIChwYXlsb2FkX3NpemVzLmVtcHR5KCkpCisgICAgcmV0dXJuIGZhbHNlOworCisg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGF5bG9hZF9zaXplcy5zaXplKCk7ICsraSkgeworICAg
IGludCBwYWNrZXRfbGVuZ3RoID0gcGF5bG9hZF9zaXplc1tpXTsKKyAgICBSVENfQ0hFQ0tfR1Qo
cGFja2V0X2xlbmd0aCwgMCk7CisgICAgdWludDE2X3QgaGVhZGVyID0gKGZyYWdtZW50LmJ1ZmZl
clswXSA8PCA4KSB8IGZyYWdtZW50LmJ1ZmZlclsxXTsKKyAgICBwYWNrZXRzXy5wdXNoKFBhY2tl
dFVuaXQoRnJhZ21lbnQoZnJhZ21lbnQuYnVmZmVyICsgb2Zmc2V0LCBwYWNrZXRfbGVuZ3RoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypmaXJzdF9mcmFnbWVudD0qL2kgPT0gMCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypsYXN0X2ZyYWdtZW50PSovaSA9PSBwYXls
b2FkX3NpemVzLnNpemUoKSAtIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNl
LCBoZWFkZXIpKTsKKyAgICBvZmZzZXQgKz0gcGFja2V0X2xlbmd0aDsKKyAgICBwYXlsb2FkX2xl
ZnQgLT0gcGFja2V0X2xlbmd0aDsKKyAgfQorICBudW1fcGFja2V0c19sZWZ0XyArPSBwYXlsb2Fk
X3NpemVzLnNpemUoKTsKKyAgUlRDX0NIRUNLX0VRKDAsIHBheWxvYWRfbGVmdCk7CisgIHJldHVy
biB0cnVlOworfQorCisKK2Jvb2wgUnRwUGFja2V0aXplckgyNjU6OlBhY2tldGl6ZVNpbmdsZU5h
bHUoc2l6ZV90IGZyYWdtZW50X2luZGV4KSB7CisgIC8vIEFkZCBhIHNpbmdsZSBOQUxVIHRvIHRo
ZSBxdWV1ZSwgbm8gYWdncmVnYXRpb24uCisgIHNpemVfdCBwYXlsb2FkX3NpemVfbGVmdCA9IGxp
bWl0c18ubWF4X3BheWxvYWRfbGVuOworICBpZiAoaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgPT0g
MSkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1pdHNfLnNpbmdsZV9wYWNrZXRfcmVkdWN0
aW9uX2xlbjsKKyAgZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0gMCkKKyAgICBwYXlsb2FkX3Np
emVfbGVmdCAtPSBsaW1pdHNfLmZpcnN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBlbHNlIGlm
IChmcmFnbWVudF9pbmRleCArIDEgPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkpCisgICAgcGF5
bG9hZF9zaXplX2xlZnQgLT0gbGltaXRzXy5sYXN0X3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBj
b25zdCBGcmFnbWVudCogZnJhZ21lbnQgPSAmaW5wdXRfZnJhZ21lbnRzX1tmcmFnbWVudF9pbmRl
eF07CisgIGlmIChwYXlsb2FkX3NpemVfbGVmdCA8IGZyYWdtZW50LT5sZW5ndGgpIHsKKyAgICBS
VENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGZpdCBhIGZyYWdtZW50IHRvIHBhY2tldCBp
biBTaW5nbGVOYWx1ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAicGFja2V0aXphdGlvbiBt
b2RlLiBQYXlsb2FkIHNpemUgbGVmdCAiCisgICAgICAgICAgICAgICAgICAgICAgPDwgcGF5bG9h
ZF9zaXplX2xlZnQgPDwgIiwgZnJhZ21lbnQgbGVuZ3RoICIKKyAgICAgICAgICAgICAgICAgICAg
ICA8PCBmcmFnbWVudC0+bGVuZ3RoIDw8ICIsIHBhY2tldCBjYXBhY2l0eSAiCisgICAgICAgICAg
ICAgICAgICAgICAgPDwgbGltaXRzXy5tYXhfcGF5bG9hZF9sZW47CisgICAgcmV0dXJuIGZhbHNl
OworICB9CisgIFJUQ19DSEVDS19HVChmcmFnbWVudC0+bGVuZ3RoLCAwdSk7CisgIHBhY2tldHNf
LnB1c2goUGFja2V0VW5pdCgqZnJhZ21lbnQsIHRydWUgLyogZmlyc3QgKi8sIHRydWUgLyogbGFz
dCAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlIC8qIGFnZ3JlZ2F0ZWQgKi8s
IGZyYWdtZW50LT5idWZmZXJbMF0pKTsKKyAgKytudW1fcGFja2V0c19sZWZ0XzsKKyAgcmV0dXJu
IHRydWU7Cit9CisKK2ludCBSdHBQYWNrZXRpemVySDI2NTo6UGFja2V0aXplQXAoc2l6ZV90IGZy
YWdtZW50X2luZGV4KSB7CisgIC8vIEFnZ3JlZ2F0ZSBmcmFnbWVudHMgaW50byBvbmUgcGFja2V0
IChTVEFQLUEpLgorICBzaXplX3QgcGF5bG9hZF9zaXplX2xlZnQgPSBsaW1pdHNfLm1heF9wYXls
b2FkX2xlbjsKKyAgaWYgKGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpCisgICAgcGF5bG9h
ZF9zaXplX2xlZnQgLT0gbGltaXRzXy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgIGVs
c2UgaWYgKGZyYWdtZW50X2luZGV4ID09IDApCisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gbGlt
aXRzXy5maXJzdF9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgaW50IGFnZ3JlZ2F0ZWRfZnJhZ21l
bnRzID0gMDsKKyAgc2l6ZV90IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoID0gMDsKKyAgY29uc3Qg
RnJhZ21lbnQqIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRfaW5kZXhdOwor
ICBSVENfQ0hFQ0tfR0UocGF5bG9hZF9zaXplX2xlZnQsIGZyYWdtZW50LT5sZW5ndGgpOworICAr
K251bV9wYWNrZXRzX2xlZnRfOworCisgIGF1dG8gcGF5bG9hZF9zaXplX25lZWRlZCA9IFsmXSB7
CisgICAgc2l6ZV90IGZyYWdtZW50X3NpemUgPSBmcmFnbWVudC0+bGVuZ3RoICsgZnJhZ21lbnRf
aGVhZGVyc19sZW5ndGg7CisgICAgaWYgKGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpID09IDEpIHsK
KyAgICAgIC8vIFNpbmdsZSBmcmFnbWVudCwgc2luZ2xlIHBhY2tldCwgcGF5bG9hZF9zaXplX2xl
ZnQgYWxyZWFkeSBhZGp1c3RlZAorICAgICAgLy8gd2l0aCBsaW1pdHNfLnNpbmdsZV9wYWNrZXRf
cmVkdWN0aW9uX2xlbi4KKyAgICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICAgIH0KKyAgICBp
ZiAoZnJhZ21lbnRfaW5kZXggPT0gaW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgLSAxKSB7CisgICAg
ICAvLyBMYXN0IGZyYWdtZW50LCBzbyBTdHJhcEEgbWlnaHQgYmUgdGhlIGxhc3QgcGFja2V0Lgor
ICAgICAgcmV0dXJuIGZyYWdtZW50X3NpemUgKyBsaW1pdHNfLmxhc3RfcGFja2V0X3JlZHVjdGlv
bl9sZW47CisgICAgfQorICAgIHJldHVybiBmcmFnbWVudF9zaXplOworICB9OworCisgIHdoaWxl
IChwYXlsb2FkX3NpemVfbGVmdCA+PSBwYXlsb2FkX3NpemVfbmVlZGVkKCkpIHsKKyAgICBSVENf
Q0hFQ0tfR1QoZnJhZ21lbnQtPmxlbmd0aCwgMCk7CisgICAgcGFja2V0c18ucHVzaChQYWNrZXRV
bml0KCpmcmFnbWVudCwgYWdncmVnYXRlZF9mcmFnbWVudHMgPT0gMCwgZmFsc2UsIHRydWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50LT5idWZmZXJbMF0pKTsKKyAgICBw
YXlsb2FkX3NpemVfbGVmdCAtPSBmcmFnbWVudC0+bGVuZ3RoOworICAgIHBheWxvYWRfc2l6ZV9s
ZWZ0IC09IGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoOworCisgICAgZnJhZ21lbnRfaGVhZGVyc19s
ZW5ndGggPSBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAgICAvLyBJZiB3ZSBhcmUgZ29pbmcgdG8g
dHJ5IHRvIGFnZ3JlZ2F0ZSBtb3JlIGZyYWdtZW50cyBpbnRvIHRoaXMgcGFja2V0CisgICAgLy8g
d2UgbmVlZCB0byBhZGQgdGhlIFNUQVAtQSBOQUxVIGhlYWRlciBhbmQgYSBsZW5ndGggZmllbGQg
Zm9yIHRoZSBmaXJzdAorICAgIC8vIE5BTFUgb2YgdGhpcyBwYWNrZXQuCisgICAgaWYgKGFnZ3Jl
Z2F0ZWRfZnJhZ21lbnRzID09IDApCisgICAgICBmcmFnbWVudF9oZWFkZXJzX2xlbmd0aCArPSBr
SGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0xlbmd0aEZpZWxkU2l6ZTsKKyAgICArK2FnZ3JlZ2F0
ZWRfZnJhZ21lbnRzOworCisgICAgLy8gTmV4dCBmcmFnbWVudC4KKyAgICArK2ZyYWdtZW50X2lu
ZGV4OworICAgIGlmIChmcmFnbWVudF9pbmRleCA9PSBpbnB1dF9mcmFnbWVudHNfLnNpemUoKSkK
KyAgICAgIGJyZWFrOworICAgIGZyYWdtZW50ID0gJmlucHV0X2ZyYWdtZW50c19bZnJhZ21lbnRf
aW5kZXhdOworICB9CisgIFJUQ19DSEVDS19HVChhZ2dyZWdhdGVkX2ZyYWdtZW50cywgMCk7Cisg
IHBhY2tldHNfLmJhY2soKS5sYXN0X2ZyYWdtZW50ID0gdHJ1ZTsKKyAgcmV0dXJuIGZyYWdtZW50
X2luZGV4OworfQorCitib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpOZXh0UGFja2V0KFJ0cFBhY2tl
dFRvU2VuZCogcnRwX3BhY2tldCkgeworICBSVENfRENIRUNLKHJ0cF9wYWNrZXQpOworCisgIGlm
IChwYWNrZXRzXy5lbXB0eSgpKSB7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgUGFja2V0
VW5pdCBwYWNrZXQgPSBwYWNrZXRzXy5mcm9udCgpOworCisgIGlmIChwYWNrZXQuZmlyc3RfZnJh
Z21lbnQgJiYgcGFja2V0Lmxhc3RfZnJhZ21lbnQpIHsKKyAgICAvLyBTaW5nbGUgTkFMIHVuaXQg
cGFja2V0LgorICAgIHNpemVfdCBieXRlc190b19zZW5kID0gcGFja2V0LnNvdXJjZV9mcmFnbWVu
dC5sZW5ndGg7CisgICAgdWludDhfdCogYnVmZmVyID0gcnRwX3BhY2tldC0+QWxsb2NhdGVQYXls
b2FkKGJ5dGVzX3RvX3NlbmQpOworICAgIG1lbWNweShidWZmZXIsIHBhY2tldC5zb3VyY2VfZnJh
Z21lbnQuYnVmZmVyLCBieXRlc190b19zZW5kKTsKKyAgICBwYWNrZXRzXy5wb3AoKTsKKyAgICBp
bnB1dF9mcmFnbWVudHNfLnBvcF9mcm9udCgpOworICB9IGVsc2UgaWYgKHBhY2tldC5hZ2dyZWdh
dGVkKSB7CisgICAgYm9vbCBpc19sYXN0X3BhY2tldCA9IG51bV9wYWNrZXRzX2xlZnRfID09IDE7
CisgICAgTmV4dEFnZ3JlZ2F0ZVBhY2tldChydHBfcGFja2V0LCBpc19sYXN0X3BhY2tldCk7Cisg
IH0gZWxzZSB7CisgICAgTmV4dEZyYWdtZW50UGFja2V0KHJ0cF9wYWNrZXQpOworICB9CisgIHJ0
cF9wYWNrZXQtPlNldE1hcmtlcihwYWNrZXRzXy5lbXB0eSgpKTsKKyAgLS1udW1fcGFja2V0c19s
ZWZ0XzsKKyAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUnRwUGFja2V0aXplckgyNjU6Ok5leHRB
Z2dyZWdhdGVQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGxhc3QpIHsKKyAgc2l6ZV90IHBh
eWxvYWRfY2FwYWNpdHkgPSBydHBfcGFja2V0LT5GcmVlQ2FwYWNpdHkoKTsKKyAgUlRDX0NIRUNL
X0dFKHBheWxvYWRfY2FwYWNpdHksIGtIZXZjTmFsSGVhZGVyU2l6ZSk7CisgIHVpbnQ4X3QqIGJ1
ZmZlciA9IHJ0cF9wYWNrZXQtPkFsbG9jYXRlUGF5bG9hZChwYXlsb2FkX2NhcGFjaXR5KTsKKwor
ICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFja2V0c18uZnJvbnQoKTsKKyAgUlRDX0NIRUNLKHBh
Y2tldC0+Zmlyc3RfZnJhZ21lbnQpOworICB1aW50OF90IHBheWxvYWRfaGRyX2ggPSBwYWNrZXQt
PmhlYWRlciA+PiA4OworICB1aW50OF90IHBheWxvYWRfaGRyX2wgPSBwYWNrZXQtPmhlYWRlciAm
IDB4RkY7CisgIHVpbnQ4X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRfaGRyX2ggJiBrSGV2Y0xheWVy
SURITWFzazsKKworICBwYXlsb2FkX2hkcl9oID0KKyAgICAgIChwYXlsb2FkX2hkcl9oICYga0hl
dmNUeXBlTWFza04pIHwgKGtIZXZjQXAgPDwgMSkgfCBsYXllcl9pZF9oOworCisgIGJ1ZmZlclsw
XSA9IHBheWxvYWRfaGRyX2g7CisgIGJ1ZmZlclsxXSA9IHBheWxvYWRfaGRyX2w7CisgIGludCBp
bmRleCA9IGtIZXZjTmFsSGVhZGVyU2l6ZTsKKyAgYm9vbCBpc19sYXN0X2ZyYWdtZW50ID0gcGFj
a2V0LT5sYXN0X2ZyYWdtZW50OworICB3aGlsZSAocGFja2V0LT5hZ2dyZWdhdGVkKSB7CisgICAg
Ly8gQWRkIE5BTCB1bml0IGxlbmd0aCBmaWVsZC4KKyAgICBjb25zdCBGcmFnbWVudCYgZnJhZ21l
bnQgPSBwYWNrZXQtPnNvdXJjZV9mcmFnbWVudDsKKyAgICBCeXRlV3JpdGVyPHVpbnQxNl90Pjo6
V3JpdGVCaWdFbmRpYW4oJmJ1ZmZlcltpbmRleF0sIGZyYWdtZW50Lmxlbmd0aCk7CisgICAgaW5k
ZXggKz0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAgLy8gQWRkIE5BTCB1bml0LgorICAgIG1l
bWNweSgmYnVmZmVyW2luZGV4XSwgZnJhZ21lbnQuYnVmZmVyLCBmcmFnbWVudC5sZW5ndGgpOwor
ICAgIGluZGV4ICs9IGZyYWdtZW50Lmxlbmd0aDsKKyAgICBwYWNrZXRzXy5wb3AoKTsKKyAgICBp
bnB1dF9mcmFnbWVudHNfLnBvcF9mcm9udCgpOworICAgIGlmIChpc19sYXN0X2ZyYWdtZW50KQor
ICAgICAgYnJlYWs7CisgICAgcGFja2V0ID0gJnBhY2tldHNfLmZyb250KCk7CisgICAgaXNfbGFz
dF9mcmFnbWVudCA9IHBhY2tldC0+bGFzdF9mcmFnbWVudDsKKyAgfQorICBSVENfQ0hFQ0soaXNf
bGFzdF9mcmFnbWVudCk7CisgIHJ0cF9wYWNrZXQtPlNldFBheWxvYWRTaXplKGluZGV4KTsKK30K
Kwordm9pZCBSdHBQYWNrZXRpemVySDI2NTo6TmV4dEZyYWdtZW50UGFja2V0KFJ0cFBhY2tldFRv
U2VuZCogcnRwX3BhY2tldCkgeworICBQYWNrZXRVbml0KiBwYWNrZXQgPSAmcGFja2V0c18uZnJv
bnQoKTsKKyAgLy8gTkFMIHVuaXQgZnJhZ21lbnRlZCBvdmVyIG11bHRpcGxlIHBhY2tldHMgKEZV
KS4KKyAgLy8gV2UgZG8gbm90IHNlbmQgb3JpZ2luYWwgTkFMVSBoZWFkZXIsIHNvIGl0IHdpbGwg
YmUgcmVwbGFjZWQgYnkgdGhlCisgIC8vIFBheWxvYWRIZHIgb2YgdGhlIGZpcnN0IHBhY2tldC4K
KyAgdWludDhfdCBwYXlsb2FkX2hkcl9oID0KKyAgICAgIHBhY2tldC0+aGVhZGVyID4+IDg7ICAv
LyAxLWJpdCBGLCA2LWJpdCB0eXBlLCAxLWJpdCBsYXllcklEIGhpZ2hlc3QtYml0CisgIHVpbnQ4
X3QgcGF5bG9hZF9oZHJfbCA9IHBhY2tldC0+aGVhZGVyICYgMHhGRjsKKyAgdWludDhfdCBsYXll
cl9pZF9oID0gcGF5bG9hZF9oZHJfaCAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1aW50OF90IGZ1
X2hlYWRlciA9IDA7CisgIC8vIFMgfCBFIHw2IGJpdCB0eXBlLgorICBmdV9oZWFkZXIgfD0gKHBh
Y2tldC0+Zmlyc3RfZnJhZ21lbnQgPyBrSGV2Y1NCaXQgOiAwKTsKKyAgZnVfaGVhZGVyIHw9IChw
YWNrZXQtPmxhc3RfZnJhZ21lbnQgPyBrSGV2Y0VCaXQgOiAwKTsKKyAgdWludDhfdCB0eXBlID0g
KHBheWxvYWRfaGRyX2ggJiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICBmdV9oZWFkZXIgfD0gdHlw
ZTsKKyAgLy8gTm93IHVwZGF0ZSBwYXlsb2FkX2hkcl9oIHdpdGggRlUgdHlwZS4KKyAgcGF5bG9h
ZF9oZHJfaCA9CisgICAgICAocGF5bG9hZF9oZHJfaCAmIGtIZXZjVHlwZU1hc2tOKSB8IChrSGV2
Y0Z1IDw8IDEpIHwgbGF5ZXJfaWRfaDsKKyAgY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50ID0gcGFj
a2V0LT5zb3VyY2VfZnJhZ21lbnQ7CisgIHVpbnQ4X3QqIGJ1ZmZlciA9IHJ0cF9wYWNrZXQtPkFs
bG9jYXRlUGF5bG9hZCgKKyAgICAgIGtIZXZjRnVIZWFkZXJTaXplICsga0hldmNOYWxIZWFkZXJT
aXplICsgZnJhZ21lbnQubGVuZ3RoKTsKKyAgYnVmZmVyWzBdID0gcGF5bG9hZF9oZHJfaDsKKyAg
YnVmZmVyWzFdID0gcGF5bG9hZF9oZHJfbDsKKyAgYnVmZmVyWzJdID0gZnVfaGVhZGVyOworCisg
IGlmIChwYWNrZXQtPmxhc3RfZnJhZ21lbnQpIHsKKyAgICBtZW1jcHkoYnVmZmVyICsga0hldmNG
dUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZlciwKKyAgICAg
ICAgICAgZnJhZ21lbnQubGVuZ3RoKTsKKyAgfSBlbHNlIHsKKyAgICBtZW1jcHkoYnVmZmVyICsg
a0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUsIGZyYWdtZW50LmJ1ZmZlciwK
KyAgICAgICAgICAgZnJhZ21lbnQubGVuZ3RoKTsKKyAgfQorICBwYWNrZXRzXy5wb3AoKTsKK30K
KworYWJzbDo6b3B0aW9uYWw8VmlkZW9SdHBEZXBhY2tldGl6ZXI6OlBhcnNlZFJ0cFBheWxvYWQ+
IFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6UGFyc2UoCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJ0Yzo6Q29weU9uV3JpdGVCdWZmZXIgcnRwX3BheWxvYWQpIHsKKyAgc2l6ZV90
IHBheWxvYWRfZGF0YV9sZW5ndGggPSBydHBfcGF5bG9hZC5zaXplKCk7CisgIGlmIChwYXlsb2Fk
X2RhdGFfbGVuZ3RoID09IDApIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRW1wdHkgcGF5
bG9hZC4iOworICAgIHJldHVybiBhYnNsOjpudWxsb3B0OworICB9CisKKyAgUGFyc2VkUnRwUGF5
bG9hZCBwYXJzZWRfcGF5bG9hZDsKKworICB1aW50OF90KiBwYXlsb2FkX2RhdGEgPSBydHBfcGF5
bG9hZC5kYXRhKCk7CisKKyAgb2Zmc2V0XyA9IDA7CisgIGxlbmd0aF8gPSBwYXlsb2FkX2RhdGFf
bGVuZ3RoOworICBtb2RpZmllZF9idWZmZXJfLnJlc2V0KCk7CisKKyAgdWludDhfdCBuYWxfdHlw
ZSA9IChwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICBwYXJzZWRfcGF5
bG9hZC52aWRlb19oZWFkZXIKKyAgICAgIC52aWRlb190eXBlX2hlYWRlci5lbXBsYWNlPFJUUFZp
ZGVvSGVhZGVySDI2NT4oKTsKKworICBpZiAobmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtG
VSkgeworICAgIC8vIEZyYWdtZW50ZWQgTkFMIHVuaXRzIChGVS1BKS4KKyAgICBpZiAoIVBhcnNl
RnVOYWx1KCZwYXJzZWRfcGF5bG9hZCwgcGF5bG9hZF9kYXRhKSkKKyAgICAgIHJldHVybiBhYnNs
OjpudWxsb3B0OworICB9IGVsc2UgeworICAgIC8vIFdlIGhhbmRsZSBTVEFQLUEgYW5kIHNpbmds
ZSBOQUxVJ3MgdGhlIHNhbWUgd2F5IGhlcmUuIFRoZSBqaXR0ZXIgYnVmZmVyCisgICAgLy8gd2ls
bCBkZXBhY2tldGl6ZSB0aGUgU1RBUC1BIGludG8gTkFMIHVuaXRzIGxhdGVyLgorICAgIC8vIFRP
RE8oc3ByYW5nKTogUGFyc2UgU1RBUC1BIG9mZnNldHMgaGVyZSBhbmQgc3RvcmUgaW4gZnJhZ21l
bnRhdGlvbiB2ZWMuCisgICAgaWYgKCFQcm9jZXNzQXBPclNpbmdsZU5hbHUoJnBhcnNlZF9wYXls
b2FkLCBwYXlsb2FkX2RhdGEpKQorICAgICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7CisgIH0KKwor
ICBjb25zdCB1aW50OF90KiBwYXlsb2FkID0KKyAgICAgIG1vZGlmaWVkX2J1ZmZlcl8gPyBtb2Rp
ZmllZF9idWZmZXJfLT5kYXRhKCkgOiBwYXlsb2FkX2RhdGE7CisKKyAgcGFyc2VkX3BheWxvYWQu
dmlkZW9fcGF5bG9hZCA9IHsgcGF5bG9hZCArIG9mZnNldF8sIGxlbmd0aF8gfTsKKyAgcmV0dXJu
IHBhcnNlZF9wYXlsb2FkOworfQorCitib29sIFZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6UHJv
Y2Vzc0FwT3JTaW5nbGVOYWx1KAorICAgIFBhcnNlZFJ0cFBheWxvYWQqIHBhcnNlZF9wYXlsb2Fk
LAorICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSkgeworICBwYXJzZWRfcGF5bG9hZC0+
dmlkZW9faGVhZGVyLndpZHRoID0gMDsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5o
ZWlnaHQgPSAwOworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmNvZGVjID0ga1ZpZGVv
Q29kZWNIMjY1OworICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmlzX2ZpcnN0X3BhY2tl
dF9pbl9mcmFtZSA9IHRydWU7CisgIGF1dG8mIGgyNjVfaGVhZGVyID0gYWJzbDo6Z2V0PFJUUFZp
ZGVvSGVhZGVySDI2NT4oCisgICAgICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLnZpZGVv
X3R5cGVfaGVhZGVyKTsKKworICBjb25zdCB1aW50OF90KiBuYWx1X3N0YXJ0ID0gcGF5bG9hZF9k
YXRhICsga0hldmNOYWxIZWFkZXJTaXplOworICBjb25zdCBzaXplX3QgbmFsdV9sZW5ndGggPSBs
ZW5ndGhfIC0ga0hldmNOYWxIZWFkZXJTaXplOworICB1aW50OF90IG5hbF90eXBlID0gKHBheWxv
YWRfZGF0YVswXSAmIGtIZXZjVHlwZU1hc2spID4+IDE7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4g
bmFsdV9zdGFydF9vZmZzZXRzOworICBpZiAobmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtB
UCkgeworICAgIC8vIFNraXAgdGhlIFN0YXBBIGhlYWRlciAoU3RhcEEgTkFMIHR5cGUgKyBsZW5n
dGgpLgorICAgIGlmIChsZW5ndGhfIDw9IGtIZXZjQXBIZWFkZXJTaXplKSB7CisgICAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiQVAgaGVhZGVyIHRydW5jYXRlZC4iOworICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIGlmICghUGFyc2VBcFN0YXJ0T2Zmc2V0cyhuYWx1X3N0YXJ0LCBu
YWx1X2xlbmd0aCwgJm5hbHVfc3RhcnRfb2Zmc2V0cykpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJS
T1IpIDw8ICJBUCBwYWNrZXQgd2l0aCBpbmNvcnJlY3QgTkFMVSBwYWNrZXQgbGVuZ3Rocy4iOwor
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGgyNjVfaGVhZGVyLnBhY2tldGl6YXRp
b25fdHlwZSA9IGtIMjY1QVA7CisgICAgLy8gbmFsX3R5cGUgPSAocGF5bG9hZF9kYXRhW2tIZXZj
QXBIZWFkZXJTaXplXSAmIGtIZXZjVHlwZU1hc2spID4+IDE7CisgIH0gZWxzZSB7CisgICAgaDI2
NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVTaW5nbGVOYWx1OworICAgIG5hbHVf
c3RhcnRfb2Zmc2V0cy5wdXNoX2JhY2soMCk7CisgIH0KKyAgaDI2NV9oZWFkZXIubmFsdV90eXBl
ID0gbmFsX3R5cGU7CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9
IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZURlbHRhOworCisgIG5hbHVfc3RhcnRfb2Zmc2V0
cy5wdXNoX2JhY2sobGVuZ3RoXyArIGtIZXZjTGVuZ3RoRmllbGRTaXplKTsgIC8vIEVuZCBvZmZz
ZXQuCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbmFsdV9zdGFydF9vZmZzZXRzLnNpemUoKSAt
IDE7ICsraSkgeworICAgIHNpemVfdCBzdGFydF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29mZnNldHNb
aV07CisgICAgLy8gRW5kIG9mZnNldCBpcyBhY3R1YWxseSBzdGFydCBvZmZzZXQgZm9yIG5leHQg
dW5pdCwgZXhjbHVkaW5nIGxlbmd0aCBmaWVsZAorICAgIC8vIHNvIHJlbW92ZSB0aGF0IGZyb20g
dGhpcyB1bml0cyBsZW5ndGguCisgICAgc2l6ZV90IGVuZF9vZmZzZXQgPSBuYWx1X3N0YXJ0X29m
ZnNldHNbaSArIDFdIC0ga0hldmNMZW5ndGhGaWVsZFNpemU7CisgICAgaWYgKGVuZF9vZmZzZXQg
LSBzdGFydF9vZmZzZXQgPCBrSGV2Y05hbEhlYWRlclNpemUpIHsgIC8vIFNhbWUgYXMgSC4yNjQu
CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiQVAgcGFja2V0IHRvbyBzaG9ydCI7CisgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgSDI2NU5hbHVJbmZvIG5hbHU7CisgICAgbmFs
dS50eXBlID0gKHBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdICYga0hldmNUeXBlTWFzaykgPj4g
MTsKKyAgICBuYWx1LnZwc19pZCA9IC0xOworICAgIG5hbHUuc3BzX2lkID0gLTE7CisgICAgbmFs
dS5wcHNfaWQgPSAtMTsKKyAgICBzdGFydF9vZmZzZXQgKz0ga0hldmNOYWxIZWFkZXJTaXplOwor
ICAgIHN3aXRjaCAobmFsdS50eXBlKSB7CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprVnBz
OiB7CisgICAgICAgIGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiB2cHMg
PSBIMjY1VnBzUGFyc2VyOjpQYXJzZVZwcygKKyAgICAgICAgICAgICZwYXlsb2FkX2RhdGFbc3Rh
cnRfb2Zmc2V0XSwgZW5kX29mZnNldCAtIHN0YXJ0X29mZnNldCk7CisgICAgICAgIGlmICh2cHMp
IHsKKyAgICAgICAgICBuYWx1LnZwc19pZCA9IHZwcy0+aWQ7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUyBpZCBm
cm9tIFZQUyBzbGljZS4iOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAg
ICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1NwczogeworICAgICAgICAvLyBDaGVjayBpZiBWVUkg
aXMgcHJlc2VudCBpbiBTUFMgYW5kIGlmIGl0IG5lZWRzIHRvIGJlIG1vZGlmaWVkIHRvCisgICAg
ICAgIC8vIGF2b2lkIGV4Y2Vzc2l2ZSBkZWNvZGVyIGxhdGVuY3kuCisKKyAgICAgICAgLy8gQ29w
eSBhbnkgcHJldmlvdXMgZGF0YSBmaXJzdCAobGlrZWx5IGp1c3QgdGhlIGZpcnN0IGhlYWRlciku
CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gb3V0cHV0X2J1ZmZlcihuZXcg
cnRjOjpCdWZmZXIoKSk7CisgICAgICAgIGlmIChzdGFydF9vZmZzZXQpCisgICAgICAgICAgb3V0
cHV0X2J1ZmZlci0+QXBwZW5kRGF0YShwYXlsb2FkX2RhdGEsIHN0YXJ0X29mZnNldCk7CisKKyAg
ICAgICAgYWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3BzU3RhdGU+IHNwcyA9IEgyNjVT
cHNQYXJzZXI6OlBhcnNlU3BzKAorICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtzdGFydF9vZmZz
ZXRdLCBlbmRfb2Zmc2V0IC0gc3RhcnRfb2Zmc2V0KTsKKworICAgICAgICBpZiAoc3BzKSB7Cisg
ICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci53aWR0aCA9IHNwcy0+d2lkdGg7
CisgICAgICAgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5oZWlnaHQgPSBzcHMtPmhl
aWdodDsKKyAgICAgICAgICBuYWx1LnNwc19pZCA9IHNwcy0+aWQ7CisgICAgICAgICAgbmFsdS52
cHNfaWQgPSBzcHMtPnZwc19pZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBSVENfTE9H
KExTX1dBUk5JTkcpCisgICAgICAgICAgICAgIDw8ICJGYWlsZWQgdG8gcGFyc2UgU1BTIGFuZCBW
UFMgaWQgZnJvbSBTUFMgc2xpY2UuIjsKKyAgICAgICAgfQorICAgICAgICBwYXJzZWRfcGF5bG9h
ZC0+dmlkZW9faGVhZGVyLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVL
ZXk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6
a1BwczogeworICAgICAgICB1aW50MzJfdCBwcHNfaWQ7CisgICAgICAgIHVpbnQzMl90IHNwc19p
ZDsKKyAgICAgICAgaWYgKEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRzKCZwYXlsb2FkX2RhdGFb
c3RhcnRfb2Zmc2V0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
ZF9vZmZzZXQgLSBzdGFydF9vZmZzZXQsICZwcHNfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmc3BzX2lkKSkgeworICAgICAgICAgIG5hbHUucHBzX2lkID0gcHBz
X2lkOworICAgICAgICAgIG5hbHUuc3BzX2lkID0gc3BzX2lkOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgPDwgIkZhaWxlZCB0
byBwYXJzZSBQUFMgaWQgYW5kIFNQUyBpZCBmcm9tIFBQUyBzbGljZS4iOworICAgICAgICB9Cisg
ICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkcldS
YWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McDoKKyAgICAgIGNhc2UgSDI2
NTo6TmFsdVR5cGU6OmtDcmE6CisgICAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIu
ZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZUtleTsKKyAgICAgIGNhc2Ug
SDI2NTo6TmFsdVR5cGU6OmtUcmFpbE46CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprVHJh
aWxSOiB7CisgICAgICAgIGFic2w6Om9wdGlvbmFsPHVpbnQzMl90PiBwcHNfaWQgPQorICAgICAg
ICAgICAgSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3Ao
CisgICAgICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdLCBlbmRfb2Zmc2V0
IC0gc3RhcnRfb2Zmc2V0LAorICAgICAgICAgICAgICAgIG5hbHUudHlwZSk7CisgICAgICAgIGlm
IChwcHNfaWQpIHsKKyAgICAgICAgICBuYWx1LnBwc19pZCA9ICpwcHNfaWQ7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNl
IFBQUyBpZCBmcm9tIHNsaWNlIG9mIHR5cGU6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw8IHN0YXRpY19jYXN0PGludD4obmFsdS50eXBlKTsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICAgIH0KKyAgICAgIC8vIFNsaWNlcyBiZWxvdyBkb24ndCBjb250YWluIFNQUyBv
ciBQUFMgaWRzLgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0F1ZDoKKyAgICAgIGNhc2Ug
SDI2NTo6TmFsdVR5cGU6OmtUc2FOOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1RzYVI6
CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3RzYU46CisgICAgICBjYXNlIEgyNjU6Ok5h
bHVUeXBlOjprU3RzYVI6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUmFkbE46CisgICAg
ICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUmFkbFI6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBl
OjprQmxhV0xwOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0JsYVdSYWRsOgorICAgICAg
Y2FzZSBIMjY1OjpOYWx1VHlwZTo6a1ByZWZpeFNlaToKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5
cGU6OmtTdWZmaXhTZWk6CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a0FQOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0ZVOgorICAgICAgICBSVENfTE9H
KExTX1dBUk5JTkcpIDw8ICJVbmV4cGVjdGVkIEFQIG9yIEZVIHJlY2VpdmVkLiI7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3Ro
ID09IGtNYXhOYWx1c1BlclBhY2tldCkgeworICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAg
ICAgICAgIDw8ICJSZWNlaXZlZCBwYWNrZXQgY29udGFpbmluZyBtb3JlIHRoYW4gIiA8PCBrTWF4
TmFsdXNQZXJQYWNrZXQKKyAgICAgICAgICA8PCAiIE5BTCB1bml0cy4gV2lsbCBub3Qga2VlcCB0
cmFjayBzcHMgYW5kIHBwcyBpZHMgZm9yIGFsbCBvZiB0aGVtLiI7CisgICAgfSBlbHNlIHsKKyAg
ICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCsrXSA9IG5hbHU7
CisgICAgfQorICB9CisgIHJldHVybiB0cnVlOworfQorCitib29sIFZpZGVvUnRwRGVwYWNrZXRp
emVySDI2NTo6UGFyc2VGdU5hbHUoCisgICAgUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3BheWxv
YWQsCisgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhKSB7CisgIGlmIChsZW5ndGhfIDwg
a0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUpIHsKKyAgICBSVENfTE9HKExT
X0VSUk9SKSA8PCAiRlUgTkFMIHVuaXRzIHRydW5jYXRlZC4iOworICAgIHJldHVybiBmYWxzZTsK
KyAgfQorICB1aW50OF90IGYgPSBwYXlsb2FkX2RhdGFbMF0gJiBrSGV2Y0ZCaXQ7CisgIHVpbnQ4
X3QgbGF5ZXJfaWRfaCA9IHBheWxvYWRfZGF0YVswXSAmIGtIZXZjTGF5ZXJJREhNYXNrOworICB1
aW50OF90IGxheWVyX2lkX2xfdW5zaGlmdGVkID0gcGF5bG9hZF9kYXRhWzFdICYga0hldmNMYXll
cklETE1hc2s7CisgIHVpbnQ4X3QgdGlkID0gcGF5bG9hZF9kYXRhWzFdICYga0hldmNUSURNYXNr
OworCisgIHVpbnQ4X3Qgb3JpZ2luYWxfbmFsX3R5cGUgPSBwYXlsb2FkX2RhdGFbMl0gJiBrSGV2
Y1R5cGVNYXNrSW5GdUhlYWRlcjsKKyAgYm9vbCBmaXJzdF9mcmFnbWVudCA9IHBheWxvYWRfZGF0
YVsyXSAmIGtIZXZjU0JpdDsKKyAgSDI2NU5hbHVJbmZvIG5hbHU7CisgIG5hbHUudHlwZSA9IG9y
aWdpbmFsX25hbF90eXBlOworICBuYWx1LnZwc19pZCA9IC0xOworICBuYWx1LnNwc19pZCA9IC0x
OworICBuYWx1LnBwc19pZCA9IC0xOworICBpZiAoZmlyc3RfZnJhZ21lbnQpIHsKKyAgICBvZmZz
ZXRfID0gMTsKKyAgICBsZW5ndGhfIC09IDE7CisgICAgYWJzbDo6b3B0aW9uYWw8dWludDMyX3Q+
IHBwc19pZCA9CisgICAgICAgIEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzSWRGcm9tU2xpY2VTZWdt
ZW50TGF5ZXJSYnNwKAorICAgICAgICAgICAgcGF5bG9hZF9kYXRhICsga0hldmNOYWxIZWFkZXJT
aXplICsga0hldmNGdUhlYWRlclNpemUsCisgICAgICAgICAgICBsZW5ndGhfIC0ga0hldmNGdUhl
YWRlclNpemUsIG5hbHUudHlwZSk7CisgICAgaWYgKHBwc19pZCkgeworICAgICAgbmFsdS5wcHNf
aWQgPSAqcHBzX2lkOworICAgIH0gZWxzZSB7CisgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisg
ICAgICAgICAgPDwgIkZhaWxlZCB0byBwYXJzZSBQUFMgZnJvbSBmaXJzdCBmcmFnbWVudCBvZiBG
VSBOQUwgIgorICAgICAgICAgICAgICJ1bml0IHdpdGggb3JpZ2luYWwgdHlwZTogIgorICAgICAg
ICAgIDw8IHN0YXRpY19jYXN0PGludD4obmFsdS50eXBlKTsKKyAgICB9CisgICAgdWludDhfdCog
cGF5bG9hZCA9IGNvbnN0X2Nhc3Q8dWludDhfdCo+KHBheWxvYWRfZGF0YSArIG9mZnNldF8pOwor
ICAgIHBheWxvYWRbMF0gPSBmIHwgb3JpZ2luYWxfbmFsX3R5cGUgPDwgMSB8IGxheWVyX2lkX2g7
CisgICAgcGF5bG9hZFsxXSA9IGxheWVyX2lkX2xfdW5zaGlmdGVkIHwgdGlkOworICB9IGVsc2Ug
eworICAgIG9mZnNldF8gPSBrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZTsK
KyAgICBsZW5ndGhfIC09IChrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZSk7
CisgIH0KKworICBpZiAob3JpZ2luYWxfbmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJX
UmFkbAorICAgICAgfHwgb3JpZ2luYWxfbmFsX3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJO
THAKKyAgICAgIHx8IG9yaWdpbmFsX25hbF90eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprQ3JhKSB7
CisgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFt
ZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICB9IGVsc2UgeworICAgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIuZnJhbWVfdHlwZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZURlbHRh
OworICB9CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIud2lkdGggPSAwOworICBwYXJz
ZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmhlaWdodCA9IDA7CisgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIuY29kZWMgPSBrVmlkZW9Db2RlY0gyNjU7CisgIHBhcnNlZF9wYXlsb2FkLT52
aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lID0gZmlyc3RfZnJhZ21lbnQ7Cisg
IGF1dG8mIGgyNjVfaGVhZGVyID0gYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4oCisgICAg
ICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKKyAgaDI2
NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVGVTsKKyAgaDI2NV9oZWFkZXIubmFs
dV90eXBlID0gb3JpZ2luYWxfbmFsX3R5cGU7CisgIGlmIChmaXJzdF9mcmFnbWVudCkgeworICAg
IGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aF0gPSBuYWx1OworICAg
IGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCA9IDE7CisgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisK
K30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRf
aDI2NS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDk1ZjZlYmJl
ZDQxM2ZlMzYxNzNlN2FhN2Q3YTE2MWJmYTRlYjRlNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL3J0cF9mb3JtYXRfaDI2NS5oCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogIEludGVsIExp
Y2Vuc2UKKyAqIFNlZSBodHRwczovLzAxLm9yZy9vcGVuLXdlYnJ0Yy10b29sa2l0CisgKiBUaGlz
IGlzIHJlbGVhc2VkIHVuZGVyIEFwYWNoZSBMaWNlbnNlIDIuMCBhbmQgaXQgaXMgZnJlZSBmb3Ig
Ym90aCBhY2FkZW1pYyBhbmQgY29tbWVyY2lhbCB1c2UuCisgKi8KKworI2lmbmRlZiBXRUJSVENf
TU9EVUxFU19SVFBfUlRDUF9TT1VSQ0VfUlRQX0ZPUk1BVF9IMjY1X0hfCisjZGVmaW5lIFdFQlJU
Q19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9SVFBfRk9STUFUX0gyNjVfSF8KKworI2luY2x1ZGUg
PHF1ZXVlPgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlICJhcGkvYXJyYXlfdmlldy5oIgor
I2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVk
ZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9wYWNrZXRfdG9fc2VuZC5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVyLmgiCisjaW5jbHVkZSAibW9kdWxlcy92
aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNpbmNsdWRl
ICJydGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9jb25zdHJ1Y3Rvcl9tYWdp
Yy5oIgorCituYW1lc3BhY2Ugd2VicnRjIHsKKworY2xhc3MgUnRwUGFja2V0aXplckgyNjUgOiBw
dWJsaWMgUnRwUGFja2V0aXplciB7CisgcHVibGljOgorICAvLyBJbml0aWFsaXplIHdpdGggcGF5
bG9hZCBmcm9tIGVuY29kZXIuCisgIC8vIFRoZSBwYXlsb2FkX2RhdGEgbXVzdCBiZSBleGFjdGx5
IG9uZSBlbmNvZGVkIEguMjY1IGZyYW1lLgorICBSdHBQYWNrZXRpemVySDI2NShydGM6OkFycmF5
Vmlldzxjb25zdCB1aW50OF90PiBwYXlsb2FkLAorICAgICAgICAgICAgICAgICAgICBQYXlsb2Fk
U2l6ZUxpbWl0cyBsaW1pdHMsCisgICAgICAgICAgICAgICAgICAgIEgyNjVQYWNrZXRpemF0aW9u
TW9kZSBwYWNrZXRpemF0aW9uX21vZGUsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJUUEZy
YWdtZW50YXRpb25IZWFkZXImIGZyYWdtZW50YXRpb24pOworCisgICB+UnRwUGFja2V0aXplckgy
NjUoKSBvdmVycmlkZTsKKworICBzaXplX3QgTnVtUGFja2V0cygpIGNvbnN0IG92ZXJyaWRlOwor
CisgIC8vIEdldCB0aGUgbmV4dCBwYXlsb2FkIHdpdGggSC4yNjUgcGF5bG9hZCBoZWFkZXIuCisg
IC8vIGJ1ZmZlciBpcyBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIG91dHB1dCB3aWxsIGJlIHdyaXR0
ZW4uCisgIC8vIGJ5dGVzX3RvX3NlbmQgaXMgYW4gb3V0cHV0IHZhcmlhYmxlIHRoYXQgd2lsbCBj
b250YWluIG51bWJlciBvZiBieXRlcworICAvLyB3cml0dGVuIHRvIGJ1ZmZlci4gVGhlIHBhcmFt
ZXRlciBsYXN0X3BhY2tldCBpcyB0cnVlIGZvciB0aGUgbGFzdCBwYWNrZXQgb2YKKyAgLy8gdGhl
IGZyYW1lLCBmYWxzZSBvdGhlcndpc2UgKGkuZS4sIGNhbGwgdGhlIGZ1bmN0aW9uIGFnYWluIHRv
IGdldCB0aGUKKyAgLy8gbmV4dCBwYWNrZXQpLgorICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vz
cyBvciBmYWxzZSBpZiB0aGVyZSB3YXMgbm8gcGF5bG9hZCB0byBwYWNrZXRpemUuCisgIGJvb2wg
TmV4dFBhY2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpIG92ZXJyaWRlOworCisgcHJp
dmF0ZToKKyAgc3RydWN0IFBhY2tldCB7CisgICAgUGFja2V0KHNpemVfdCBvZmZzZXQsCisgICAg
ICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICBib29sIGZpcnN0X2ZyYWdtZW50LAorICAg
ICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAgICAgICAgIGJvb2wgYWdncmVnYXRlZCwK
KyAgICAgICAgICAgdWludDE2X3QgaGVhZGVyKQorICAgICAgICA6IG9mZnNldChvZmZzZXQpLAor
ICAgICAgICAgIHNpemUoc2l6ZSksCisgICAgICAgICAgZmlyc3RfZnJhZ21lbnQoZmlyc3RfZnJh
Z21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQobGFzdF9mcmFnbWVudCksCisgICAgICAg
ICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAgICAgICBoZWFkZXIoaGVhZGVyKSB7fQor
CisgICAgc2l6ZV90IG9mZnNldDsKKyAgICBzaXplX3Qgc2l6ZTsKKyAgICBib29sIGZpcnN0X2Zy
YWdtZW50OworICAgIGJvb2wgbGFzdF9mcmFnbWVudDsKKyAgICBib29sIGFnZ3JlZ2F0ZWQ7Cisg
ICAgdWludDE2X3QgaGVhZGVyOyAgLy8gRGlmZmVyZW50IGZyb20gSDI2NAorICB9OworICBzdHJ1
Y3QgRnJhZ21lbnQgeworICAgIEZyYWdtZW50KGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90
IGxlbmd0aCk7CisgICAgZXhwbGljaXQgRnJhZ21lbnQoY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50
KTsKKyAgICBjb25zdCB1aW50OF90KiBidWZmZXIgPSBudWxscHRyOworICAgIHNpemVfdCBsZW5n
dGggPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4gdG1wX2J1ZmZlcjsKKyAg
fTsKKyAgc3RydWN0IFBhY2tldFVuaXQgeworICAgIFBhY2tldFVuaXQoY29uc3QgRnJhZ21lbnQm
IHNvdXJjZV9mcmFnbWVudCwKKyAgICAgICAgICAgICAgIGJvb2wgZmlyc3RfZnJhZ21lbnQsCisg
ICAgICAgICAgICAgICBib29sIGxhc3RfZnJhZ21lbnQsCisgICAgICAgICAgICAgICBib29sIGFn
Z3JlZ2F0ZWQsCisgICAgICAgICAgICAgICB1aW50MTZfdCBoZWFkZXIpCisgICAgICAgIDogc291
cmNlX2ZyYWdtZW50KHNvdXJjZV9mcmFnbWVudCksCisgICAgICAgICAgZmlyc3RfZnJhZ21lbnQo
Zmlyc3RfZnJhZ21lbnQpLAorICAgICAgICAgIGxhc3RfZnJhZ21lbnQobGFzdF9mcmFnbWVudCks
CisgICAgICAgICAgYWdncmVnYXRlZChhZ2dyZWdhdGVkKSwKKyAgICAgICAgICBoZWFkZXIoaGVh
ZGVyKSB7fQorCisgICAgY29uc3QgRnJhZ21lbnQgc291cmNlX2ZyYWdtZW50OworICAgIGJvb2wg
Zmlyc3RfZnJhZ21lbnQ7CisgICAgYm9vbCBsYXN0X2ZyYWdtZW50OworICAgIGJvb2wgYWdncmVn
YXRlZDsKKyAgICB1aW50MTZfdCBoZWFkZXI7CisgIH07CisgIHR5cGVkZWYgc3RkOjpxdWV1ZTxQ
YWNrZXQ+IFBhY2tldFF1ZXVlOworICBzdGQ6OmRlcXVlPEZyYWdtZW50PiBpbnB1dF9mcmFnbWVu
dHNfOworICBzdGQ6OnF1ZXVlPFBhY2tldFVuaXQ+IHBhY2tldHNfOworCisgIGJvb2wgR2VuZXJh
dGVQYWNrZXRzKEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUpOworICBi
b29sIFBhY2tldGl6ZUZ1KHNpemVfdCBmcmFnbWVudF9pbmRleCk7CisgIGludCBQYWNrZXRpemVB
cChzaXplX3QgZnJhZ21lbnRfaW5kZXgpOworICBib29sIFBhY2tldGl6ZVNpbmdsZU5hbHUoc2l6
ZV90IGZyYWdtZW50X2luZGV4KTsKKworICB2b2lkIE5leHRBZ2dyZWdhdGVQYWNrZXQoUnRwUGFj
a2V0VG9TZW5kKiBydHBfcGFja2V0LCBib29sIGxhc3QpOworICB2b2lkIE5leHRGcmFnbWVudFBh
Y2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQpOworCisgIGNvbnN0IFBheWxvYWRTaXpl
TGltaXRzIGxpbWl0c187CisgIHNpemVfdCBudW1fcGFja2V0c19sZWZ0XzsKKyAgUlRQRnJhZ21l
bnRhdGlvbkhlYWRlciBmcmFnbWVudGF0aW9uXzsKKworICBSVENfRElTQUxMT1dfQ09QWV9BTkRf
QVNTSUdOKFJ0cFBhY2tldGl6ZXJIMjY1KTsKK307CisKKy8vIERlcGFja2V0aXplciBmb3IgSC4y
NjUuCitjbGFzcyBWaWRlb1J0cERlcGFja2V0aXplckgyNjUgOiBwdWJsaWMgVmlkZW9SdHBEZXBh
Y2tldGl6ZXIgeworIHB1YmxpYzoKKyAgdmlydHVhbCB+VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1
KCkge30KKworICBhYnNsOjpvcHRpb25hbDxQYXJzZWRSdHBQYXlsb2FkPiBQYXJzZSgKKyAgICAg
ICAgICAgICBydGM6OkNvcHlPbldyaXRlQnVmZmVyIHJ0cF9wYXlsb2FkKSBvdmVycmlkZTsKKwor
IHByaXZhdGU6CisgIGJvb2wgUGFyc2VGdU5hbHUoUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3Bh
eWxvYWQsCisgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhKTsK
KyAgYm9vbCBQcm9jZXNzQXBPclNpbmdsZU5hbHUoUGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3Bh
eWxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHBheWxv
YWRfZGF0YSk7CisKKyAgc2l6ZV90IG9mZnNldF87CisgIHNpemVfdCBsZW5ndGhfOworICBzdGQ6
OnVuaXF1ZV9wdHI8cnRjOjpCdWZmZXI+IG1vZGlmaWVkX2J1ZmZlcl87Cit9OworfSAgLy8gbmFt
ZXNwYWNlIHdlYnJ0YworI2VuZGlmICAvLyBXRUJSVENfTU9EVUxFU19SVFBfUlRDUF9TT1VSQ0Vf
UlRQX0ZPUk1BVF9IMjY1X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVv
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvcnRwX3NlbmRlcl92aWRlby5jYwppbmRleCBlYzVjZjhmZDEzMzFkZTQ1
ZTNlOGUwODljNTgxNDM1NDNjMzkwMDZiLi5lMzNjNTRiNmVkYTM3NDBhZWQxYmNkNjE3ZDVhZTQ3
MzI1YzZkYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVyX3ZpZGVvLmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0
Y3Avc291cmNlL3J0cF9zZW5kZXJfdmlkZW8uY2MKQEAgLTc5OSw2ICs3OTksOSBAQCB1aW50OF90
IFJUUFNlbmRlclZpZGVvOjpHZXRUZW1wb3JhbElkKGNvbnN0IFJUUFZpZGVvSGVhZGVyJiBoZWFk
ZXIpIHsKICAgICAgIHJldHVybiB2cDkudGVtcG9yYWxfaWR4OwogICAgIH0KICAgICB1aW50OF90
IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJIMjY0JikgeyByZXR1cm4ga05vVGVtcG9y
YWxJZHg7IH0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAgdWludDhfdCBvcGVyYXRvcigpKGNv
bnN0IFJUUFZpZGVvSGVhZGVySDI2NSYpIHsgcmV0dXJuIGtOb1RlbXBvcmFsSWR4OyB9CisjZW5k
aWYKICAgICB1aW50OF90IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJMZWdhY3lHZW5l
cmljJikgewogICAgICAgcmV0dXJuIGtOb1RlbXBvcmFsSWR4OwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0
Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIu
aAppbmRleCA3MTRkMWViMDhjY2I0NGRlZWQyNzc3MGFlMTdiMDQ2NWNjN2M1OTgwLi41ODUyZTVl
MWFkNzQyN2IxZTI5YWYzMmFiYWJhMGIwOGFhYTJmYmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9y
dHBfdmlkZW9faGVhZGVyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oCkBAIC0y
NSw2ICsyNSw5IEBACiAjaW5jbHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX3RpbWluZy5oIgogI2luY2x1
ZGUgImNvbW1vbl90eXBlcy5oIiAgLy8gTk9MSU5UKGJ1aWxkL2luY2x1ZGUpCiAjaW5jbHVkZSAi
bW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIK
KyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29k
ZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDgvaW5jbHVkZS92cDhfZ2xvYmFscy5oIgogI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvaW5jbHVkZS92cDlfZ2xvYmFscy5o
IgogCkBAIC0zNiwxMSArMzksMjAgQEAgc3RydWN0IFJUUFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJp
YyB7CiAgIHVpbnQxNl90IHBpY3R1cmVfaWQ7CiB9OwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQog
dXNpbmcgUlRQVmlkZW9UeXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjptb25vc3RhdGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVy
VlA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hl
YWRlclZQOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlk
ZW9IZWFkZXJIMjY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
VFBWaWRlb0hlYWRlckgyNjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJUUFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJpYz47CisjZWxzZQordXNpbmcgUlRQVmlkZW9U
eXBlSGVhZGVyID0gYWJzbDo6dmFyaWFudDxhYnNsOjptb25vc3RhdGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyVlA4LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlclZQOSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXJIMjY0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlckxl
Z2FjeUdlbmVyaWM+OworI2VuZGlmCiAKIHN0cnVjdCBSVFBWaWRlb0hlYWRlciB7CiAgIHN0cnVj
dCBHZW5lcmljRGVzY3JpcHRvckluZm8gewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvQlVJTEQuZ24gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9CVUlMRC5nbgppbmRleCBiMmQxMGM5YWI2OGMyYmM5ZDcyOWRjZDdkZmVkYWRiYjQ5ZDFm
NjMzLi40Yzc4YWFhY2M3NzE1OTY4N2I0YzZiZTFhMzc3NDA4OTlhMWE4YjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbgpAQCAtMTQsNiArMTQsMTQgQEAg
cnRjX2xpYnJhcnkoImVuY29kZWRfZnJhbWUiKSB7CiAgICAgImVuY29kZWRfZnJhbWUuY2MiLAog
ICAgICJlbmNvZGVkX2ZyYW1lLmgiLAogICBdCisKKyAgaWYgKHJ0Y191c2VfaDI2NSkgeworICAg
IHNvdXJjZXMgKz0gWworICAgICAgImgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyIsCisgICAg
ICAiaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgiLAorICAgIF0KKyAgfQorCiAgIGRlcHMgPSBb
CiAgICAgIjpjb2RlY19nbG9iYWxzX2hlYWRlcnMiLAogICAgICI6dmlkZW9fY29kZWNfaW50ZXJm
YWNlIiwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxz
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmJjMGVlZjIzNmNmZTgyZDUyZTgzZGRlNWQyMDg0OWI4Y2NkOGJmOGMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3Zp
ZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oCkBAIC0wLDAgKzEs
NjIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRo
b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJl
ZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBi
ZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2pl
Y3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSBy
b290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisvLyBUaGlzIGZpbGUgY29udGFpbnMgY29k
ZWMgZGVwZW5kZW50IGRlZmluaXRpb25zIHRoYXQgYXJlIG5lZWRlZCBpbgorLy8gb3JkZXIgdG8g
Y29tcGlsZSB0aGUgV2ViUlRDIGNvZGViYXNlLCBldmVuIGlmIHRoaXMgY29kZWMgaXMgbm90IHVz
ZWQuCisKKyNpZm5kZWYgTU9EVUxFU19WSURFT19DT0RJTkdfQ09ERUNTX0gyNjVfSU5DTFVERV9I
MjY1X0dMT0JBTFNfSF8KKyNkZWZpbmUgTU9EVUxFU19WSURFT19DT0RJTkdfQ09ERUNTX0gyNjVf
SU5DTFVERV9IMjY1X0dMT0JBTFNfSF8KKworI2lmbmRlZiBESVNBQkxFX0gyNjUKKworI2luY2x1
ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxz
LmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBUaGUgcGFja2V0aXphdGlvbiB0eXBlcyB0
aGF0IHdlIHN1cHBvcnQ6IHNpbmdsZSwgYWdncmVnYXRlZCwgYW5kIGZyYWdtZW50ZWQuCitlbnVt
IEgyNjVQYWNrZXRpemF0aW9uVHlwZXMgeworICBrSDI2NVNpbmdsZU5hbHUsICAvLyBUaGlzIHBh
Y2tldCBjb250YWlucyBhIHNpbmdsZSBOQUwgdW5pdC4KKyAga0gyNjVBUCwgICAgICAgICAgLy8g
VGhpcyBwYWNrZXQgY29udGFpbnMgYWdncmVnYXRpb24gUGFja2V0LgorICAgICAgICAgICAgICAg
ICAgICAvLyBJZiB0aGlzIHBhY2tldCBoYXMgYW4gYXNzb2NpYXRlZCBOQUwgdW5pdCB0eXBlLAor
ICAgICAgICAgICAgICAgICAgICAvLyBpdCdsbCBiZSBmb3IgdGhlIGZpcnN0IHN1Y2ggYWdncmVn
YXRlZCBwYWNrZXQuCisgIGtIMjY1RlUsICAgICAgICAgIC8vIFRoaXMgcGFja2V0IGNvbnRhaW5z
IGEgRlUgKGZyYWdtZW50YXRpb24KKyAgICAgICAgICAgICAgICAgICAgLy8gdW5pdCkgcGFja2V0
LCBtZWFuaW5nIGl0IGlzIGEgcGFydCBvZiBhIGZyYW1lCisgICAgICAgICAgICAgICAgICAgIC8v
IHRoYXQgd2FzIHRvbyBsYXJnZSB0byBmaXQgaW50byBhIHNpbmdsZSBwYWNrZXQuCit9OworCitz
dHJ1Y3QgSDI2NU5hbHVJbmZvIHsKKyAgdWludDhfdCB0eXBlOworICBpbnQgdnBzX2lkOworICBp
bnQgc3BzX2lkOworICBpbnQgcHBzX2lkOworfTsKKworZW51bSBjbGFzcyBIMjY1UGFja2V0aXph
dGlvbk1vZGUgeworICBOb25JbnRlcmxlYXZlZCA9IDAsICAvLyBNb2RlIDEgLSBTVEFQLUEsIEZV
LUEgaXMgYWxsb3dlZAorICBTaW5nbGVOYWxVbml0ICAgICAgICAvLyBNb2RlIDAgLSBvbmx5IHNp
bmdsZSBOQUxVIGFsbG93ZWQKK307CisKK3N0cnVjdCBSVFBWaWRlb0hlYWRlckgyNjUgeworICAv
LyBUaGUgTkFMIHVuaXQgdHlwZS4gSWYgdGhpcyBpcyBhIGhlYWRlciBmb3IgYSBmcmFnbWVudGVk
IHBhY2tldCwgaXQncyB0aGUKKyAgLy8gTkFMIHVuaXQgdHlwZSBvZiB0aGUgb3JpZ2luYWwgZGF0
YS4gSWYgdGhpcyBpcyB0aGUgaGVhZGVyIGZvciBhbiBhZ2dyZWdhdGVkCisgIC8vIHBhY2tldCwg
aXQncyB0aGUgTkFMIHVuaXQgdHlwZSBvZiB0aGUgZmlyc3QgTkFMIHVuaXQgaW4gdGhlIHBhY2tl
dC4KKyAgdWludDhfdCBuYWx1X3R5cGU7CisgIEgyNjVQYWNrZXRpemF0aW9uVHlwZXMgcGFja2V0
aXphdGlvbl90eXBlOworICBIMjY1TmFsdUluZm8gbmFsdXNba01heE5hbHVzUGVyUGFja2V0XTsK
KyAgc2l6ZV90IG5hbHVzX2xlbmd0aDsKKyAgLy8gVGhlIHBhY2tldGl6YXRpb24gdHlwZSBvZiB0
aGlzIGJ1ZmZlciAtIHNpbmdsZSwgYWdncmVnYXRlZCBvciBmcmFnbWVudGVkLgorICBIMjY1UGFj
a2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlOworfTsKKworfSAgLy8gbmFtZXNwYWNl
IHdlYnJ0YworCisjZW5kaWYKKworI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVPX0NPRElOR19DT0RF
Q1NfSDI2NV9JTkNMVURFX0gyNjVfR0xPQkFMU19IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2Rl
ZF9mcmFtZS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL2VuY29kZWRfZnJhbWUuY2MKaW5kZXggMWU5ZTM3NGM2NDRlODM1
MTM3NjBlNmRiYjFhNjVmMzBlNjZkNzJjYy4uNTQ5ODkyNjA4MjU2MTdmOGFlMjc0YWI1ZGRjZDRj
OGRiNTE2ZTk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2RlZF9mcmFtZS5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGlu
Zy9lbmNvZGVkX2ZyYW1lLmNjCkBAIC0xNTEsNiArMTUxLDEyIEBAIHZvaWQgVkNNRW5jb2RlZEZy
YW1lOjpDb3B5Q29kZWNTcGVjaWZpYyhjb25zdCBSVFBWaWRlb0hlYWRlciogaGVhZGVyKSB7CiAg
ICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQor
ICAgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjU6IHsKKyAgICAgICAgX2NvZGVjU3BlY2lmaWNJbmZv
LmNvZGVjVHlwZSA9IGtWaWRlb0NvZGVjSDI2NTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9Cisj
ZW5kaWYKICAgICAgIGRlZmF1bHQ6IHsKICAgICAgICAgX2NvZGVjU3BlY2lmaWNJbmZvLmNvZGVj
VHlwZSA9IGtWaWRlb0NvZGVjR2VuZXJpYzsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBz
X3RyYWNrZXIuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFlNjdkODlhYjkzZjVjMmY5YzBiYzhmZDMxY2ZiYmIx
MTgwZmM3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tl
ci5jYwpAQCAtMCwwICsxLDMxMiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdl
YlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAq
ICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRo
ZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBy
aWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBj
b250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRI
T1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpbmNsdWRl
ICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaCIKKworI2lu
Y2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCisjaW5jbHVkZSAiY29tbW9uX3Zp
ZGVvL2gyNjQvaDI2NF9jb21tb24uaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1
X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNlci5o
IgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgorI2luY2x1
ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaW5j
bHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2Jh
bHMuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9mcmFtZV9vYmplY3QuaCIKKyNp
bmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmgiCisjaW5jbHVkZSAi
cnRjX2Jhc2UvY2hlY2tzLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvbG9nZ2luZy5oIgorCituYW1l
c3BhY2Ugd2VicnRjIHsKK25hbWVzcGFjZSB2aWRlb19jb2RpbmcgeworCituYW1lc3BhY2Ugewor
Y29uc3QgdWludDhfdCBzdGFydF9jb2RlX2gyNjVbXSA9IHswLCAwLCAwLCAxfTsKK30gIC8vIG5h
bWVzcGFjZQorCitIMjY1VnBzU3BzUHBzVHJhY2tlcjo6Rml4ZWRCaXRzdHJlYW0gSDI2NVZwc1Nw
c1Bwc1RyYWNrZXI6OkNvcHlBbmRGaXhCaXRzdHJlYW0ocnRjOjpBcnJheVZpZXc8Y29uc3QgdWlu
dDhfdD4gYml0c3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBW
aWRlb0hlYWRlciogdmlkZW9faGVhZGVyX3BvaW50ZXIpIHsKKyAgY29uc3QgdWludDhfdCogZGF0
YSA9IGJpdHN0cmVhbS5kYXRhKCk7CisgIGNvbnN0IHNpemVfdCBkYXRhX3NpemUgPSBiaXRzdHJl
YW0uc2l6ZSgpOworICBSVFBWaWRlb0hlYWRlciYgdmlkZW9faGVhZGVyID0gKnZpZGVvX2hlYWRl
cl9wb2ludGVyOworICBSVENfRENIRUNLKHZpZGVvX2hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2Rl
Y0gyNjQpOworCisgIGF1dG8mIGgyNjVfaGVhZGVyID0KKyAgICAgIGFic2w6OmdldDxSVFBWaWRl
b0hlYWRlckgyNjU+KHZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisKKyAgYm9vbCBh
cHBlbmRfdnBzX3Nwc19wcHMgPSBmYWxzZTsKKyAgYXV0byB2cHMgPSB2cHNfZGF0YV8uZW5kKCk7
CisgIGF1dG8gc3BzID0gc3BzX2RhdGFfLmVuZCgpOworICBhdXRvIHBwcyA9IHBwc19kYXRhXy5l
bmQoKTsKKworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGgyNjVfaGVhZGVyLm5hbHVzX2xlbmd0
aDsgKytpKSB7CisgICAgY29uc3QgSDI2NU5hbHVJbmZvJiBuYWx1ID0gaDI2NV9oZWFkZXIubmFs
dXNbaV07CisgICAgc3dpdGNoIChuYWx1LnR5cGUpIHsKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5
cGU6OmtWcHM6IHsKKyAgICAgICAgdnBzX2RhdGFfW25hbHUudnBzX2lkXS5zaXplID0gMDsKKyAg
ICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprU3BzOiB7
CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0udnBzX2lkID0gbmFsdS52cHNfaWQ7Cisg
ICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0ud2lkdGggPSB2aWRlb19oZWFkZXIud2lkdGg7
CisgICAgICAgIHNwc19kYXRhX1tuYWx1LnNwc19pZF0uaGVpZ2h0ID0gdmlkZW9faGVhZGVyLmhl
aWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBl
OjprUHBzOiB7CisgICAgICAgIHBwc19kYXRhX1tuYWx1LnBwc19pZF0uc3BzX2lkID0gbmFsdS5z
cHNfaWQ7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlw
ZTo6a0lkcldSYWRsOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McDoKKyAgICAg
IGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtDcmE6IHsKKyAgICAgICAgLy8gSWYgdGhpcyBpcyB0aGUg
Zmlyc3QgcGFja2V0IG9mIGFuIElEUiwgbWFrZSBzdXJlIHdlIGhhdmUgdGhlIHJlcXVpcmVkCisg
ICAgICAgIC8vIFNQUy9QUFMgYW5kIGFsc28gY2FsY3VsYXRlIGhvdyBtdWNoIGV4dHJhIHNwYWNl
IHdlIG5lZWQgaW4gdGhlIGJ1ZmZlcgorICAgICAgICAvLyB0byBwcmVwZW5kIHRoZSBTUFMvUFBT
IHRvIHRoZSBiaXRzdHJlYW0gd2l0aCBzdGFydCBjb2Rlcy4KKyAgICAgICAgaWYgKHZpZGVvX2hl
YWRlci5pc19maXJzdF9wYWNrZXRfaW5fZnJhbWUpIHsKKyAgICAgICAgICBpZiAobmFsdS5wcHNf
aWQgPT0gLTEpIHsKKyAgICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk5vIFBQUyBp
ZCBpbiBJRFIgbmFsdS4iOworICAgICAgICAgICAgcmV0dXJuIHtrUmVxdWVzdEtleWZyYW1lfTsK
KyAgICAgICAgICB9CisKKyAgICAgICAgICBwcHMgPSBwcHNfZGF0YV8uZmluZChuYWx1LnBwc19p
ZCk7CisgICAgICAgICAgaWYgKHBwcyA9PSBwcHNfZGF0YV8uZW5kKCkpIHsKKyAgICAgICAgICAg
IFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAgICAgICA8PCAiTm8gUFBTIHdpdGggaWQg
IiA8PCBuYWx1LnBwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1Jl
cXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisgICAgICAgICAgc3BzID0gc3BzX2RhdGFf
LmZpbmQocHBzLT5zZWNvbmQuc3BzX2lkKTsKKyAgICAgICAgICBpZiAoc3BzID09IHNwc19kYXRh
Xy5lbmQoKSkgeworICAgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgICAg
ICAgIDw8ICJObyBTUFMgd2l0aCBpZCA8PCAiIDw8IHBwcy0+c2Vjb25kLnNwc19pZCA8PCAiIHJl
Y2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVybiB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAg
ICAgfQorCisgICAgICAgICAgdnBzID0gdnBzX2RhdGFfLmZpbmQoc3BzLT5zZWNvbmQudnBzX2lk
KTsKKyAgICAgICAgICBpZiAodnBzID09IHZwc19kYXRhXy5lbmQoKSkgeworICAgICAgICAgICAg
UlRDX0xPRyhMU19XQVJOSU5HKQorICAgICAgICAgICAgICAgIDw8ICJObyBWUFMgd2l0aCBpZCAi
IDw8IHNwcy0+c2Vjb25kLnZwc19pZCA8PCAiIHJlY2VpdmVkIjsKKyAgICAgICAgICAgIHJldHVy
biB7a1JlcXVlc3RLZXlmcmFtZX07CisgICAgICAgICAgfQorCisgICAgICAgICAgLy8gU2luY2Ug
dGhlIGZpcnN0IHBhY2tldCBvZiBldmVyeSBrZXlmcmFtZSBzaG91bGQgaGF2ZSBpdHMgd2lkdGgg
YW5kCisgICAgICAgICAgLy8gaGVpZ2h0IHNldCB3ZSBzZXQgaXQgaGVyZSBpbiB0aGUgY2FzZSBv
ZiBpdCBiZWluZyBzdXBwbGllZCBvdXQgb2YKKyAgICAgICAgICAvLyBiYW5kLgorICAgICAgICAg
IHZpZGVvX2hlYWRlci53aWR0aCA9IHNwcy0+c2Vjb25kLndpZHRoOworICAgICAgICAgIHZpZGVv
X2hlYWRlci5oZWlnaHQgPSBzcHMtPnNlY29uZC5oZWlnaHQ7CisKKyAgICAgICAgICAvLyBJZiB0
aGUgVlBTL1NQUy9QUFMgd2FzIHN1cHBsaWVkIG91dCBvZiBiYW5kIHRoZW4gd2Ugd2lsbCBoYXZl
IHNhdmVkCisgICAgICAgICAgLy8gdGhlIGFjdHVhbCBiaXRzdHJlYW0gaW4gfGRhdGF8LgorICAg
ICAgICAgIC8vIFRoaXMgYnJhbmNoIGlzIG5vdCB2ZXJpZmllZC4KKyAgICAgICAgICBpZiAodnBz
LT5zZWNvbmQuZGF0YSAmJiBzcHMtPnNlY29uZC5kYXRhICYmIHBwcy0+c2Vjb25kLmRhdGEpIHsK
KyAgICAgICAgICAgIFJUQ19EQ0hFQ0tfR1QodnBzLT5zZWNvbmQuc2l6ZSwgMCk7CisgICAgICAg
ICAgICBSVENfRENIRUNLX0dUKHNwcy0+c2Vjb25kLnNpemUsIDApOworICAgICAgICAgICAgUlRD
X0RDSEVDS19HVChwcHMtPnNlY29uZC5zaXplLCAwKTsKKyAgICAgICAgICAgIGFwcGVuZF92cHNf
c3BzX3BwcyA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgICAgfQorICAgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICB9CisKKyAg
UlRDX0NIRUNLKCFhcHBlbmRfdnBzX3Nwc19wcHMgfHwKKyAgICAgICAgICAgIChzcHMgIT0gc3Bz
X2RhdGFfLmVuZCgpICYmIHBwcyAhPSBwcHNfZGF0YV8uZW5kKCkpKTsKKworICAvLyBDYWxjdWxh
dGUgaG93IG11Y2ggc3BhY2Ugd2UgbmVlZCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGJpdHN0cmVhbS4K
KyAgc2l6ZV90IHJlcXVpcmVkX3NpemUgPSAwOworCisgIGlmIChhcHBlbmRfdnBzX3Nwc19wcHMp
IHsKKyAgICByZXF1aXJlZF9zaXplICs9IHZwcy0+c2Vjb25kLnNpemUgKyBzaXplb2Yoc3RhcnRf
Y29kZV9oMjY1KTsKKyAgICByZXF1aXJlZF9zaXplICs9IHNwcy0+c2Vjb25kLnNpemUgKyBzaXpl
b2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgICByZXF1aXJlZF9zaXplICs9IHBwcy0+c2Vjb25kLnNp
emUgKyBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKyAgfQorCisgIGlmIChoMjY1X2hlYWRlci5w
YWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVBUCkgeworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVf
cHRyID0gZGF0YSArIDE7CisgICAgd2hpbGUgKG5hbHVfcHRyIDwgZGF0YSArIGRhdGFfc2l6ZSkg
eworICAgICAgUlRDX0RDSEVDSyh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1l
KTsKKyAgICAgIHJlcXVpcmVkX3NpemUgKz0gc2l6ZW9mKHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAg
ICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21l
bnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBu
YWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHJlcXVpcmVkX3NpemUg
Kz0gc2VnbWVudF9sZW5ndGg7CisgICAgICBuYWx1X3B0ciArPSBzZWdtZW50X2xlbmd0aDsKKyAg
ICB9CisgIH0gZWxzZSB7CisgICAgaWYgKHZpZGVvX2hlYWRlci5pc19maXJzdF9wYWNrZXRfaW5f
ZnJhbWUpCisgICAgICByZXF1aXJlZF9zaXplICs9IHNpemVvZihzdGFydF9jb2RlX2gyNjUpOwor
ICAgIHJlcXVpcmVkX3NpemUgKz0gZGF0YV9zaXplOworICB9CisKKyAgLy8gVGhlbiB3ZSBjb3B5
IHRvIHRoZSBuZXcgYnVmZmVyLgorICBGaXhlZEJpdHN0cmVhbSBmaXhlZDsKKyAgZml4ZWQuYml0
c3RyZWFtLkVuc3VyZUNhcGFjaXR5KHJlcXVpcmVkX3NpemUpOworCisgIGlmIChhcHBlbmRfdnBz
X3Nwc19wcHMpIHsKKyAgICAvLyBJbnNlcnQgVlBTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBl
bmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEo
dnBzLT5zZWNvbmQuZGF0YS5nZXQoKSwgdnBzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBJbnNl
cnQgU1BTLgorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7
CisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEoc3BzLT5zZWNvbmQuZGF0YS5nZXQoKSwg
c3BzLT5zZWNvbmQuc2l6ZSk7CisKKyAgICAvLyBJbnNlcnQgUFBTLgorICAgIGZpeGVkLmJpdHN0
cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgZml4ZWQuYml0c3RyZWFtLkFw
cGVuZERhdGEocHBzLT5zZWNvbmQuZGF0YS5nZXQoKSwgcHBzLT5zZWNvbmQuc2l6ZSk7CisKKyAg
ICAvLyBVcGRhdGUgY29kZWMgaGVhZGVyIHRvIHJlZmxlY3QgdGhlIG5ld2x5IGFkZGVkIFNQUyBh
bmQgUFBTLgorICAgIEgyNjVOYWx1SW5mbyB2cHNfaW5mbzsKKyAgICB2cHNfaW5mby50eXBlID0g
SDI2NTo6TmFsdVR5cGU6OmtWcHM7CisgICAgdnBzX2luZm8udnBzX2lkID0gdnBzLT5maXJzdDsK
KyAgICB2cHNfaW5mby5zcHNfaWQgPSAtMTsKKyAgICB2cHNfaW5mby5wcHNfaWQgPSAtMTsKKyAg
ICBIMjY1TmFsdUluZm8gc3BzX2luZm87CisgICAgc3BzX2luZm8udHlwZSA9IEgyNjU6Ok5hbHVU
eXBlOjprU3BzOworICAgIHNwc19pbmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7CisgICAgc3BzX2lu
Zm8uc3BzX2lkID0gc3BzLT5maXJzdDsKKyAgICBzcHNfaW5mby5wcHNfaWQgPSAtMTsKKyAgICBI
MjY1TmFsdUluZm8gcHBzX2luZm87CisgICAgcHBzX2luZm8udHlwZSA9IEgyNjU6Ok5hbHVUeXBl
OjprUHBzOworICAgIHBwc19pbmZvLnZwc19pZCA9IHZwcy0+Zmlyc3Q7CisgICAgcHBzX2luZm8u
c3BzX2lkID0gc3BzLT5maXJzdDsKKyAgICBwcHNfaW5mby5wcHNfaWQgPSBwcHMtPmZpcnN0Owor
ICAgIGlmIChoMjY1X2hlYWRlci5uYWx1c19sZW5ndGggKyAyIDw9IGtNYXhOYWx1c1BlclBhY2tl
dCkgeworICAgICAgaDI2NV9oZWFkZXIubmFsdXNbaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoKytd
ID0gdnBzX2luZm87CisgICAgICBoMjY1X2hlYWRlci5uYWx1c1toMjY1X2hlYWRlci5uYWx1c19s
ZW5ndGgrK10gPSBzcHNfaW5mbzsKKyAgICAgIGgyNjVfaGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVy
Lm5hbHVzX2xlbmd0aCsrXSA9IHBwc19pbmZvOworICAgIH0gZWxzZSB7CisgICAgICBSVENfTE9H
KExTX1dBUk5JTkcpIDw8ICJOb3QgZW5vdWdoIHNwYWNlIGluIEguMjY1IGNvZGVjIGhlYWRlciB0
byBpbnNlcnQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU1BTL1BQUyBwcm92aWRl
ZCBvdXQtb2YtYmFuZC4iOworICAgIH0KKyAgfQorCisgIC8vIENvcHkgdGhlIHJlc3Qgb2YgdGhl
IGJpdHN0cmVhbSBhbmQgaW5zZXJ0IHN0YXJ0IGNvZGVzLgorICBpZiAoaDI2NV9oZWFkZXIucGFj
a2V0aXphdGlvbl90eXBlID09IGtIMjY1QVApIHsKKyAgICBjb25zdCB1aW50OF90KiBuYWx1X3B0
ciA9IGRhdGEgKyAxOworICAgIHdoaWxlIChuYWx1X3B0ciA8IGRhdGEgKyBkYXRhX3NpemUpIHsK
KyAgICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0YXJ0X2NvZGVfaDI2NSk7CisKKyAg
ICAgIC8vIFRoZSBmaXJzdCB0d28gYnl0ZXMgZGVzY3JpYmUgdGhlIGxlbmd0aCBvZiBhIHNlZ21l
bnQuCisgICAgICB1aW50MTZfdCBzZWdtZW50X2xlbmd0aCA9IG5hbHVfcHRyWzBdIDw8IDggfCBu
YWx1X3B0clsxXTsKKyAgICAgIG5hbHVfcHRyICs9IDI7CisKKyAgICAgIHNpemVfdCBjb3B5X2Vu
ZCA9IG5hbHVfcHRyIC0gZGF0YSArIHNlZ21lbnRfbGVuZ3RoOworICAgICAgaWYgKGNvcHlfZW5k
ID4gZGF0YV9zaXplKSB7CisgICAgICAgIHJldHVybiB7a0Ryb3B9OworICAgICAgfQorCisgICAg
ICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShuYWx1X3B0ciwgc2VnbWVudF9sZW5ndGgpOwor
ICAgICAgbmFsdV9wdHIgKz0gc2VnbWVudF9sZW5ndGg7CisgICAgfQorICB9IGVsc2UgeworICAg
IGlmICh2aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSB7CisgICAgICBmaXhl
ZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShzdGFydF9jb2RlX2gyNjUpOworICAgIH0KKyAgICBmaXhl
ZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShiaXRzdHJlYW0uZGF0YSgpLCBiaXRzdHJlYW0uc2l6ZSgp
KTsKKyAgfQorCisgIGZpeGVkLmFjdGlvbiA9IGtJbnNlcnQ7CisgIHJldHVybiBmaXhlZDsKK30K
Kwordm9pZCBIMjY1VnBzU3BzUHBzVHJhY2tlcjo6SW5zZXJ0VnBzU3BzUHBzTmFsdXMoCisgICAg
Y29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywKKyAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1
aW50OF90PiYgc3BzLAorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBwcHMpIHsKKyAg
Y29uc3RleHByIHNpemVfdCBrTmFsdUhlYWRlck9mZnNldCA9IDE7CisgIGlmICh2cHMuc2l6ZSgp
IDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJWUFMg
c2l6ZSAgIiA8PCB2cHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBp
ZiAoKHZwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBS
VENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0
dXJuOworICB9CisgIGlmIChzcHMuc2l6ZSgpIDwga05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBS
VENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgc2l6ZSAgIiA8PCBzcHMuc2l6ZSgpIDw8ICIgaXMg
c21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zm
c2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAoKHNwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2
NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFs
dSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChwcHMuc2l6ZSgpIDwg
a05hbHVIZWFkZXJPZmZzZXQpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJQUFMgc2l6
ZSAgIiA8PCBwcHMuc2l6ZSgpIDw8ICIgaXMgc21hbGxlciB0aGFuICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgIDw8IGtOYWx1SGVhZGVyT2Zmc2V0OworICAgIHJldHVybjsKKyAgfQorICBpZiAo
KHBwc1swXSAmIDB4N2UpID4+IDEgIT0gSDI2NTo6TmFsdVR5cGU6OmtQcHMpIHsKKyAgICBSVENf
TE9HKExTX1dBUk5JTkcpIDw8ICJTUFMgTmFsdSBoZWFkZXIgbWlzc2luZyI7CisgICAgcmV0dXJu
OworICB9CisgIGFic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRlPiBwYXJzZWRf
dnBzID0gSDI2NVZwc1BhcnNlcjo6UGFyc2VWcHMoCisgICAgICB2cHMuZGF0YSgpICsga05hbHVI
ZWFkZXJPZmZzZXQsIHZwcy5zaXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisgIGFic2w6Om9w
dGlvbmFsPEgyNjVTcHNQYXJzZXI6OlNwc1N0YXRlPiBwYXJzZWRfc3BzID0gSDI2NVNwc1BhcnNl
cjo6UGFyc2VTcHMoCisgICAgICBzcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHNwcy5z
aXplKCkgLSBrTmFsdUhlYWRlck9mZnNldCk7CisgIGFic2w6Om9wdGlvbmFsPEgyNjVQcHNQYXJz
ZXI6OlBwc1N0YXRlPiBwYXJzZWRfcHBzID0gSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHMoCisgICAg
ICBwcHMuZGF0YSgpICsga05hbHVIZWFkZXJPZmZzZXQsIHBwcy5zaXplKCkgLSBrTmFsdUhlYWRl
ck9mZnNldCk7CisKKyAgaWYgKCFwYXJzZWRfdnBzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5H
KSA8PCAiRmFpbGVkIHRvIHBhcnNlIFZQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfc3BzKSB7
CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFpbGVkIHRvIHBhcnNlIFNQUy4iOworICB9
CisKKyAgaWYgKCFwYXJzZWRfcHBzKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiRmFp
bGVkIHRvIHBhcnNlIFBQUy4iOworICB9CisKKyAgaWYgKCFwYXJzZWRfdnBzIHx8ICFwYXJzZWRf
cHBzIHx8ICFwYXJzZWRfc3BzKSB7CisgICAgcmV0dXJuOworICB9CisKKyAgVnBzSW5mbyB2cHNf
aW5mbzsKKyAgdnBzX2luZm8uc2l6ZSA9IHZwcy5zaXplKCk7CisgIHVpbnQ4X3QqIHZwc19kYXRh
ID0gbmV3IHVpbnQ4X3RbdnBzX2luZm8uc2l6ZV07CisgIG1lbWNweSh2cHNfZGF0YSwgdnBzLmRh
dGEoKSwgdnBzX2luZm8uc2l6ZSk7CisgIHZwc19pbmZvLmRhdGEucmVzZXQodnBzX2RhdGEpOwor
ICB2cHNfZGF0YV9bcGFyc2VkX3Zwcy0+aWRdID0gc3RkOjptb3ZlKHZwc19pbmZvKTsKKworICBT
cHNJbmZvIHNwc19pbmZvOworICBzcHNfaW5mby5zaXplID0gc3BzLnNpemUoKTsKKyAgc3BzX2lu
Zm8ud2lkdGggPSBwYXJzZWRfc3BzLT53aWR0aDsKKyAgc3BzX2luZm8uaGVpZ2h0ID0gcGFyc2Vk
X3Nwcy0+aGVpZ2h0OworICBzcHNfaW5mby52cHNfaWQgPSBwYXJzZWRfc3BzLT52cHNfaWQ7Cisg
IHVpbnQ4X3QqIHNwc19kYXRhID0gbmV3IHVpbnQ4X3Rbc3BzX2luZm8uc2l6ZV07CisgIG1lbWNw
eShzcHNfZGF0YSwgc3BzLmRhdGEoKSwgc3BzX2luZm8uc2l6ZSk7CisgIHNwc19pbmZvLmRhdGEu
cmVzZXQoc3BzX2RhdGEpOworICBzcHNfZGF0YV9bcGFyc2VkX3Nwcy0+aWRdID0gc3RkOjptb3Zl
KHNwc19pbmZvKTsKKworICBQcHNJbmZvIHBwc19pbmZvOworICBwcHNfaW5mby5zaXplID0gcHBz
LnNpemUoKTsKKyAgcHBzX2luZm8uc3BzX2lkID0gcGFyc2VkX3Bwcy0+c3BzX2lkOworICB1aW50
OF90KiBwcHNfZGF0YSA9IG5ldyB1aW50OF90W3Bwc19pbmZvLnNpemVdOworICBtZW1jcHkocHBz
X2RhdGEsIHBwcy5kYXRhKCksIHBwc19pbmZvLnNpemUpOworICBwcHNfaW5mby5kYXRhLnJlc2V0
KHBwc19kYXRhKTsKKyAgcHBzX2RhdGFfW3BhcnNlZF9wcHMtPmlkXSA9IHN0ZDo6bW92ZShwcHNf
aW5mbyk7CisKKyAgUlRDX0xPRyhMU19JTkZPKSA8PCAiSW5zZXJ0ZWQgU1BTIGlkICIgPDwgcGFy
c2VkX3Nwcy0+aWQgPDwgIiBhbmQgUFBTIGlkICIKKyAgICAgICAgICAgICAgICAgICA8PCBwYXJz
ZWRfcHBzLT5pZCA8PCAiIChyZWZlcmVuY2luZyBTUFMgIgorICAgICAgICAgICAgICAgICAgIDw8
IHBhcnNlZF9wcHMtPnNwc19pZCA8PCAiKSI7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB2aWRlb19j
b2RpbmcKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBz
X3Nwc19wcHNfdHJhY2tlci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uN2FjNWUyYTAwMWNiZDIwNmZmMzE3YzJiMDlhZTY4MDZjZmIxMjgwMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oCkBAIC0wLDAgKzEs
NzQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRo
b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJl
ZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBi
ZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2pl
Y3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSBy
b290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVmIE1PRFVMRVNfVklERU9fQ09E
SU5HX0gyNjVfVlBTX1NQU19QUFNfVFJBQ0tFUl9IXworI2RlZmluZSBNT0RVTEVTX1ZJREVPX0NP
RElOR19IMjY1X1ZQU19TUFNfUFBTX1RSQUNLRVJfSF8KKworI2luY2x1ZGUgPGNzdGRpbnQ+Cisj
aW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNp
bmNsdWRlICJhcGkvYXJyYXlfdmlldy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1
bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRw
X3ZpZGVvX2hlYWRlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2NvcHlfb25fd3JpdGVfYnVmZmVy
LmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworCitjbGFzcyBWQ01QYWNrZXQ7CisKK25hbWVzcGFj
ZSB2aWRlb19jb2RpbmcgeworCitjbGFzcyBIMjY1VnBzU3BzUHBzVHJhY2tlciB7CisgcHVibGlj
OgorICBlbnVtIFBhY2tldEFjdGlvbiB7IGtJbnNlcnQsIGtEcm9wLCBrUmVxdWVzdEtleWZyYW1l
IH07CisgIHN0cnVjdCBGaXhlZEJpdHN0cmVhbSB7CisgICAgUGFja2V0QWN0aW9uIGFjdGlvbjsK
KyAgICBydGM6OkNvcHlPbldyaXRlQnVmZmVyIGJpdHN0cmVhbTsKKyAgfTsKKworICAvLyBSZXR1
cm5zIGZpeGVkIGJpdHN0cmVhbSBhbmQgbW9kaWZpZXMgfHZpZGVvX2hlYWRlcnwuCisgIEZpeGVk
Qml0c3RyZWFtIENvcHlBbmRGaXhCaXRzdHJlYW0ocnRjOjpBcnJheVZpZXc8Y29uc3QgdWludDhf
dD4gYml0c3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZp
ZGVvSGVhZGVyKiB2aWRlb19oZWFkZXIpOworCisgIHZvaWQgSW5zZXJ0VnBzU3BzUHBzTmFsdXMo
Y29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHZwcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgc3BzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBwcHMpOworCisgcHJpdmF0ZToK
KyAgc3RydWN0IFZwc0luZm8geworICAgIHNpemVfdCBzaXplID0gMDsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8dWludDhfdFtdPiBkYXRhOworICB9OworCisgIHN0cnVjdCBQcHNJbmZvIHsKKyAgICBp
bnQgc3BzX2lkID0gLTE7CisgICAgc2l6ZV90IHNpemUgPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0
cjx1aW50OF90W10+IGRhdGE7CisgIH07CisKKyAgc3RydWN0IFNwc0luZm8geworICAgIGludCB2
cHNfaWQgPSAtMTsKKyAgICBzaXplX3Qgc2l6ZSA9IDA7CisgICAgaW50IHdpZHRoID0gLTE7Cisg
ICAgaW50IGhlaWdodCA9IC0xOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGRhdGE7
CisgIH07CisKKyAgc3RkOjptYXA8dWludDMyX3QsIFZwc0luZm8+IHZwc19kYXRhXzsKKyAgc3Rk
OjptYXA8dWludDMyX3QsIFBwc0luZm8+IHBwc19kYXRhXzsKKyAgc3RkOjptYXA8dWludDMyX3Qs
IFNwc0luZm8+IHNwc19kYXRhXzsKK307CisKK30gIC8vIG5hbWVzcGFjZSB2aWRlb19jb2RpbmcK
K30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKworI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVPX0NPRElO
R19IMjY0X1NQU19QUFNfVFJBQ0tFUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRl
b19jb2RlY19pbnRlcmZhY2UuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNl
LmgKaW5kZXggYzdiMTE2ZjRhZTNmNzBhZGRiODdmMGE4NDJhZWIzZTI4MWQyODU0Ny4uMzY4NDk2
NjYyM2FiODA5YzA1OGQ5MGJlYWIxZGM3ODI3NjBhNDI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5j
bHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2Nv
ZGVjX2ludGVyZmFjZS5oCkBAIC0yMCw2ICsyMCw5IEBACiAjaW5jbHVkZSAiY29tbW9uX3ZpZGVv
L2dlbmVyaWNfZnJhbWVfZGVzY3JpcHRvci9nZW5lcmljX2ZyYW1lX2luZm8uaCIKICNpbmNsdWRl
ICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgogI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9o
MjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3Zp
ZGVvX2NvZGluZy9jb2RlY3MvdnA5L2luY2x1ZGUvdnA5X2dsb2JhbHMuaCIKICNpbmNsdWRlICJt
b2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2Vycm9yX2NvZGVzLmgiCiAjaW5jbHVk
ZSAicnRjX2Jhc2Uvc3lzdGVtL3J0Y19leHBvcnQuaCIKQEAgLTkyLDEwICs5NSwyMCBAQCBzdHJ1
Y3QgQ29kZWNTcGVjaWZpY0luZm9IMjY0IHsKIH07CiBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9k
PENvZGVjU3BlY2lmaWNJbmZvSDI2ND46OnZhbHVlLCAiIik7CiAKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CitzdHJ1Y3QgQ29kZWNTcGVjaWZpY0luZm9IMjY1IHsKKyAgSDI2NVBhY2tldGl6YXRpb25N
b2RlIHBhY2tldGl6YXRpb25fbW9kZTsKKyAgYm9vbCBpZHJfZnJhbWU7Cit9OworI2VuZGlmCisK
IHVuaW9uIENvZGVjU3BlY2lmaWNJbmZvVW5pb24gewogICBDb2RlY1NwZWNpZmljSW5mb1ZQOCBW
UDg7CiAgIENvZGVjU3BlY2lmaWNJbmZvVlA5IFZQOTsKICAgQ29kZWNTcGVjaWZpY0luZm9IMjY0
IEgyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBDb2RlY1NwZWNpZmljSW5mb0gyNjUgSDI2
NTsKKyNlbmRpZgogfTsKIHN0YXRpY19hc3NlcnQoc3RkOjppc19wb2Q8Q29kZWNTcGVjaWZpY0lu
Zm9Vbmlvbj46OnZhbHVlLCAiIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJf
Y29tbW9uLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1
bGVzL3ZpZGVvX2NvZGluZy9qaXR0ZXJfYnVmZmVyX2NvbW1vbi5oCmluZGV4IDZjY2ZlMzkxOTk1
NGY4ZDA5YmI1MzdlNGFkOTE3NjFlZmE1MWEwOWYuLjU0OTJlZTViNDFmMzYwZTdjNWJjNTExMDYw
NDM3ZWJkZWY5MjNjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmgK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaApAQCAtNTQsNiArNTQsOSBAQCBlbnVt
IFZDTUZyYW1lQnVmZmVyU3RhdGVFbnVtIHsKIH07CiAKIGVudW0geyBrSDI2NFN0YXJ0Q29kZUxl
bmd0aEJ5dGVzID0gNCB9OworI2lmbmRlZiBESVNBQkxFX0gyNjUKK2VudW0geyBrSDI2NVN0YXJ0
Q29kZUxlbmd0aEJ5dGVzID0gNCB9OworI2VuZGlmCiB9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCiAK
ICNlbmRpZiAgLy8gTU9EVUxFU19WSURFT19DT0RJTkdfSklUVEVSX0JVRkZFUl9DT01NT05fSF8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYwppbmRleCAwYzRh
NjU4YjhmMjAzNDkxNmMxODUzNDZlNGI4MTQyMmNjZmU4ZjhmLi4xZjlmNGI1MjQ2ZWQ1YTQ3MTE0
NWZkZjNiYTQ4ZTVjMTQzYTA0ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQuY2MKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19j
b2RpbmcvcGFja2V0LmNjCkBAIC00NCw4ICs0NCwxMyBAQCBWQ01QYWNrZXQ6OlZDTVBhY2tldChj
b25zdCB1aW50OF90KiBwdHIsCiAgICAgICBtYXJrZXJCaXQocnRwX2hlYWRlci5tYXJrZXJCaXQp
LAogICAgICAgdGltZXNOYWNrZWQoLTEpLAogICAgICAgY29tcGxldGVOQUxVKGtOYWx1SW5jb21w
bGV0ZSksCi0gICAgICBpbnNlcnRTdGFydENvZGUodmlkZW9IZWFkZXIuY29kZWMgPT0ga1ZpZGVv
Q29kZWNIMjY0ICYmCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaW5zZXJ0U3RhcnRDb2Rl
KCh2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQgfHwgdmlkZW9IZWFkZXIuY29k
ZWMgPT0ga1ZpZGVvQ29kZWNIMjY1KSAmJgogICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSGVh
ZGVyLmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSksCisjZWxzZQorICAgICAgIGluc2VydFN0YXJ0
Q29kZSh2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQgJiYKKyAgICAgICAgICAg
ICAgICAgICAgICAgdmlkZW9IZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKSwKKyNlbmRp
ZgogICAgICAgdmlkZW9faGVhZGVyKHZpZGVvSGVhZGVyKSwKICAgICAgIHBhY2tldF9pbmZvKHJ0
cF9oZWFkZXIsIHJlY2VpdmVfdGltZV9tcykgewogICBpZiAoaXNfZmlyc3RfcGFja2V0X2luX2Zy
YW1lKCkgJiYgbWFya2VyQml0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNj
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRl
b19jb2RpbmcvcGFja2V0X2J1ZmZlci5jYwppbmRleCA0ZGU2MjdlZTYzMzQxZTMwMzk4M2ViYjVk
YWE4ODZhYWQ2OGIzMDg2Li41NTE0MTQxYTRjMGNlYjU4OTdjNWM3MjQ4NjZjZDA5N2RhNjlkMDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9i
dWZmZXIuY2MKQEAgLTI0LDExICsyNCwxNyBAQAogI2luY2x1ZGUgImFwaS92aWRlby9lbmNvZGVk
X2ZyYW1lLmgiCiAjaW5jbHVkZSAiYXBpL3ZpZGVvL3ZpZGVvX2ZyYW1lX3R5cGUuaCIKICNpbmNs
dWRlICJjb21tb25fdmlkZW8vaDI2NC9oMjY0X2NvbW1vbi5oIgorI2lmbmRlZiBESVNBQkxFX0gy
NjUKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIgorI2VuZGlmCiAj
aW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2hlYWRlcl9leHRlbnNpb25zLmgi
CiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3BhY2tldF9yZWNlaXZlZC5o
IgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaCIK
ICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVy
X2F2MS5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY0L2luY2x1
ZGUvaDI2NF9nbG9iYWxzLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVs
ZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2luY2x1ZGUvaDI2NV9nbG9iYWxzLmgiCisjZW5k
aWYKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9mcmFtZV9vYmplY3QuaCIKICNpbmNs
dWRlICJydGNfYmFzZS9jaGVja3MuaCIKICNpbmNsdWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCkBA
IC0yODksMTIgKzI5NSwyMCBAQCBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UnRwRnJhbWVP
YmplY3Q+PiBQYWNrZXRCdWZmZXI6OkZpbmRGcmFtZXMoCiAgICAgICBib29sIGhhc19oMjY0X3Bw
cyA9IGZhbHNlOwogICAgICAgYm9vbCBoYXNfaDI2NF9pZHIgPSBmYWxzZTsKICAgICAgIGJvb2wg
aXNfaDI2NF9rZXlmcmFtZSA9IGZhbHNlOworICAgICAgYm9vbCBpc19oMjY1ID0gZmFsc2U7Cisj
aWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaXNfaDI2NSA9IGJ1ZmZlcl9bc3RhcnRfaW5kZXhd
LnBhY2tldC0+Y29kZWMoKSA9PSBrVmlkZW9Db2RlY0gyNjU7CisgICAgICBib29sIGhhc19oMjY1
X3NwcyA9IGZhbHNlOworICAgICAgYm9vbCBoYXNfaDI2NV9wcHMgPSBmYWxzZTsKKyAgICAgIGJv
b2wgaGFzX2gyNjVfaWRyID0gZmFsc2U7CisgICAgICBib29sIGlzX2gyNjVfa2V5ZnJhbWUgPSBm
YWxzZTsKKyNlbmRpZgogICAgICAgaW50IGlkcl93aWR0aCA9IC0xOwogICAgICAgaW50IGlkcl9o
ZWlnaHQgPSAtMTsKICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICsrdGVzdGVkX3BhY2tl
dHM7CiAKLSAgICAgICAgaWYgKCFpc19oMjY0ICYmIGJ1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1l
X2JlZ2luKCkpCisgICAgICAgIGlmICghaXNfaDI2NCAmJiAhaXNfaDI2NSAmJiBidWZmZXJfW3N0
YXJ0X2luZGV4XS5mcmFtZV9iZWdpbigpKQogICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGlm
IChpc19oMjY0KSB7CkBAIC0zMjcsNyArMzQxLDI4IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAg
ICAgIH0KICAgICAgICAgICB9CiAgICAgICAgIH0KLQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAg
ICAgICAgaWYgKGlzX2gyNjUgJiYgIWlzX2gyNjVfa2V5ZnJhbWUpIHsKKyAgICAgICAgICBjb25z
dCBhdXRvKiBoMjY1X2hlYWRlciA9IGFic2w6OmdldF9pZjxSVFBWaWRlb0hlYWRlckgyNjU+KAor
ICAgICAgICAgICAgICAmYnVmZmVyX1tzdGFydF9pbmRleF0ucGFja2V0LT52aWRlb19oZWFkZXIu
dmlkZW9fdHlwZV9oZWFkZXIpOworICAgICAgICAgIGlmICghaDI2NV9oZWFkZXIgfHwgaDI2NV9o
ZWFkZXItPm5hbHVzX2xlbmd0aCA+PSBrTWF4TmFsdXNQZXJQYWNrZXQpCisgICAgICAgICAgICBy
ZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgaDI2
NV9oZWFkZXItPm5hbHVzX2xlbmd0aDsgKytqKSB7CisgICAgICAgICAgICBpZiAoaDI2NV9oZWFk
ZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtTcHMpIHsKKyAgICAgICAgICAg
ICAgaGFzX2gyNjVfc3BzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaDI2NV9oZWFk
ZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtQcHMpIHsKKyAgICAgICAgICAg
ICAgaGFzX2gyNjVfcHBzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaDI2NV9oZWFk
ZXItPm5hbHVzW2pdLnR5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtJZHJXUmFkbAorICAgICAgICAg
ICAgICAgICAgICAgICB8fCBoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1OjpOYWx1
VHlwZTo6a0lkck5McAorICAgICAgICAgICAgICAgICAgICAgICB8fCBoMjY1X2hlYWRlci0+bmFs
dXNbal0udHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0NyYSkgeworICAgICAgICAgICAgICBoYXNf
aDI2NV9pZHIgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBp
ZiAoKGhhc19oMjY1X3NwcyAmJiBoYXNfaDI2NV9wcHMpIHx8IGhhc19oMjY1X2lkcikgeworICAg
ICAgICAgICAgaXNfaDI2NV9rZXlmcmFtZSA9IHRydWU7CisgICAgICAgICAgfQorICAgICAgICB9
CisjZW5kaWYKICAgICAgICAgaWYgKHRlc3RlZF9wYWNrZXRzID09IGJ1ZmZlcl8uc2l6ZSgpKQog
ICAgICAgICAgIGJyZWFrOwogCkBAIC0zMzksNyArMzc0LDcgQEAgc3RkOjp2ZWN0b3I8c3RkOjp1
bmlxdWVfcHRyPFJ0cEZyYW1lT2JqZWN0Pj4gUGFja2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAg
ICAgICAvLyB0aGUgdGltZXN0YW1wIG9mIHRoYXQgcGFja2V0IGlzIHRoZSBzYW1lIGFzIHRoaXMg
b25lLiBUaGlzIG1heSBjYXVzZQogICAgICAgICAvLyB0aGUgUGFja2V0QnVmZmVyIHRvIGhhbmQg
b3V0IGluY29tcGxldGUgZnJhbWVzLgogICAgICAgICAvLyBTZWU6IGh0dHBzOi8vYnVncy5jaHJv
bWl1bS5vcmcvcC93ZWJydGMvaXNzdWVzL2RldGFpbD9pZD03MTA2Ci0gICAgICAgIGlmIChpc19o
MjY0ICYmCisgICAgICAgIGlmICgoaXNfaDI2NCB8fCBpc19oMjY1KSAmJgogICAgICAgICAgICAg
KCFidWZmZXJfW3N0YXJ0X2luZGV4XS51c2VkKCkgfHwKICAgICAgICAgICAgICBidWZmZXJfW3N0
YXJ0X2luZGV4XS5wYWNrZXQtPnRpbWVzdGFtcCAhPSBmcmFtZV90aW1lc3RhbXApKSB7CiAgICAg
ICAgICAgYnJlYWs7CkBAIC0zOTMsNiArNDI4LDQ1IEBAIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6RmluZEZyYW1lcygKICAgICAgICAg
fQogICAgICAgfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgaWYgKGlzX2gyNjUpIHsK
KyAgICAgICAgLy8gV2FybiBpZiB0aGlzIGlzIGFuIHVuc2FmZSBmcmFtZS4KKyAgICAgICAgaWYg
KGhhc19oMjY1X2lkciAmJiAoIWhhc19oMjY1X3NwcyB8fCAhaGFzX2gyNjVfcHBzKSkgeworICAg
ICAgICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOworICAgICAgICAgIHNzIDw8ICJSZWNlaXZlZCBI
LjI2NS1JRFIgZnJhbWUgIgorICAgICAgICAgICAgIDw8ICIoU1BTOiAiIDw8IGhhc19oMjY1X3Nw
cyA8PCAiLCBQUFM6ICIgPDwgaGFzX2gyNjVfcHBzIDw8ICIpLiAiOworICAgICAgICAgIHNzIDw8
ICJUcmVhdGluZyBhcyBkZWx0YSBmcmFtZSBzaW5jZSAiCisgICAgICAgICAgICAgICAgIldlYlJU
Qy1TcHNQcHNJZHJJc0gyNjVLZXlmcmFtZSBpcyBhbHdheXMgZW5hYmxlZC4iOworICAgICAgICAg
IFJUQ19MT0coTFNfV0FSTklORykgPDwgc3Muc3RyKCk7CisgICAgICAgIH0KKworICAgICAgICAv
LyBOb3cgdGhhdCB3ZSBoYXZlIGRlY2lkZWQgd2hldGhlciB0byB0cmVhdCB0aGlzIGZyYW1lIGFz
IGEga2V5IGZyYW1lCisgICAgICAgIC8vIG9yIGRlbHRhIGZyYW1lIGluIHRoZSBmcmFtZSBidWZm
ZXIsIHdlIHVwZGF0ZSB0aGUgZmllbGQgdGhhdAorICAgICAgICAvLyBkZXRlcm1pbmVzIGlmIHRo
ZSBSdHBGcmFtZU9iamVjdCBpcyBhIGtleSBmcmFtZSBvciBkZWx0YSBmcmFtZS4KKyAgICAgICAg
Y29uc3Qgc2l6ZV90IGZpcnN0X3BhY2tldF9pbmRleCA9IHN0YXJ0X3NlcV9udW0gJSBidWZmZXJf
LnNpemUoKTsKKyAgICAgICAgUlRDX0NIRUNLX0xUKGZpcnN0X3BhY2tldF9pbmRleCwgYnVmZmVy
Xy5zaXplKCkpOworICAgICAgICBpZiAoaXNfaDI2NV9rZXlmcmFtZSkgeworICAgICAgICAgIGJ1
ZmZlcl9bZmlyc3RfcGFja2V0X2luZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBl
ID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lS2V5OworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgIGJ1ZmZlcl9bZmlyc3RfcGFja2V0X2luZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci5m
cmFtZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lRGVsdGE7CisgICAgICAgIH0K
KworICAgICAgICAvLyBJZiB0aGlzIGlzIG5vdCBhIGtleSBmcmFtZSwgbWFrZSBzdXJlIHRoZXJl
IGFyZSBubyBnYXBzIGluIHRoZQorICAgICAgICAvLyBwYWNrZXQgc2VxdWVuY2UgbnVtYmVycyB1
cCB1bnRpbCB0aGlzIHBvaW50LgorICAgICAgICBpZiAoIWlzX2gyNjVfa2V5ZnJhbWUgJiYgbWlz
c2luZ19wYWNrZXRzXy51cHBlcl9ib3VuZChzdGFydF9zZXFfbnVtKSAhPQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1pc3NpbmdfcGFja2V0c18uYmVnaW4oKSkgeworICAg
ICAgICAgIHVpbnQxNl90IHN0b3BfaW5kZXggPSAoaW5kZXggKyAxKSAlIGJ1ZmZlcl8uc2l6ZSgp
OworICAgICAgICAgIHdoaWxlIChzdGFydF9pbmRleCAhPSBzdG9wX2luZGV4KSB7CisgICAgICAg
ICAgICAvLyBGSVhNRTogZmluZCB3aGF0IGl0IGRvZXMuCisgICAgICAgICAgICAvL3NlcXVlbmNl
X2J1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1lX2NyZWF0ZWQgPSBmYWxzZTsKKyAgICAgICAgICAg
IHN0YXJ0X2luZGV4ID0gKHN0YXJ0X2luZGV4ICsgMSkgJSBidWZmZXJfLnNpemUoKTsKKyAgICAg
ICAgICB9CisKKyAgICAgICAgICByZXR1cm4gZm91bmRfZnJhbWVzOworICAgICAgICB9CisgICAg
ICB9CisjZW5kaWYKKwogICAgICAgaWYgKGF1dG8gZnJhbWUgPSBBc3NlbWJsZUZyYW1lKHN0YXJ0
X3NlcV9udW0sIHNlcV9udW0pKSB7CiAgICAgICAgIGZvdW5kX2ZyYW1lcy5wdXNoX2JhY2soc3Rk
Ojptb3ZlKGZyYW1lKSk7CiAgICAgICB9IGVsc2UgewpAQCAtNDAwLDYgKzQ3NCw3IEBAIHN0ZDo6
dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6Rmlu
ZEZyYW1lcygKICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgc3RhcnRfc2VxX251bSA8PCAi
LSIgPDwgc2VxX251bTsKICAgICAgIH0KIAorCiAgICAgICBtaXNzaW5nX3BhY2tldHNfLmVyYXNl
KG1pc3NpbmdfcGFja2V0c18uYmVnaW4oKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWlzc2luZ19wYWNrZXRzXy51cHBlcl9ib3VuZChzZXFfbnVtKSk7CiAgICAgICBDbGVhckludGVy
dmFsKHN0YXJ0X3NlcV9udW0sIHNlcV9udW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9p
bmZvLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNjCmluZGV4IGU1MWQyOTM2MDc3ZDBkMDhlNzUx
NTNmOGUzYmE0Yjg3N2M0NTFjMzMuLjZkZjk4Njk5YjBjMjYyYzZlOWQ3YzFhYWVlZWFjNGU5M2Y4
Y2I3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Npb25faW5mby5jYworKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNz
aW9uX2luZm8uY2MKQEAgLTE1Myw2ICsxNTMsMjIgQEAgc3RkOjp2ZWN0b3I8TmFsdUluZm8+IFZD
TVNlc3Npb25JbmZvOjpHZXROYWx1SW5mb3MoKSBjb25zdCB7CiAgIHJldHVybiBuYWx1X2luZm9z
OwogfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorc3RkOjp2ZWN0b3I8SDI2NU5hbHVJbmZvPiBW
Q01TZXNzaW9uSW5mbzo6R2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0IHsKKyAgaWYgKHBhY2tldHNf
LmVtcHR5KCkgfHwgcGFja2V0c18uZnJvbnQoKS52aWRlb19oZWFkZXIuY29kZWMgIT0ga1ZpZGVv
Q29kZWNIMjY1KQorICAgIHJldHVybiBzdGQ6OnZlY3RvcjxIMjY1TmFsdUluZm8+KCk7CisgIHN0
ZDo6dmVjdG9yPEgyNjVOYWx1SW5mbz4gbmFsdV9pbmZvczsKKyAgZm9yIChjb25zdCBWQ01QYWNr
ZXQmIHBhY2tldCA6IHBhY2tldHNfKSB7CisgICAgY29uc3QgYXV0byYgaDI2NSA9CisgICAgICAg
IGFic2w6OmdldDxSVFBWaWRlb0hlYWRlckgyNjU+KHBhY2tldC52aWRlb19oZWFkZXIudmlkZW9f
dHlwZV9oZWFkZXIpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaDI2NS5uYWx1c19sZW5n
dGg7ICsraSkgeworICAgICAgbmFsdV9pbmZvcy5wdXNoX2JhY2soaDI2NS5uYWx1c1tpXSk7Cisg
ICAgfQorICB9CisgIHJldHVybiBuYWx1X2luZm9zOworfQorI2VuZGlmCisKIHZvaWQgVkNNU2Vz
c2lvbkluZm86OlNldEdvZkluZm8oY29uc3QgR29mSW5mb1ZQOSYgZ29mX2luZm8sIHNpemVfdCBp
ZHgpIHsKICAgaWYgKHBhY2tldHNfLmVtcHR5KCkpCiAgICAgcmV0dXJuOwpAQCAtMjExLDYgKzIy
NywxMSBAQCBzaXplX3QgVkNNU2Vzc2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50OF90KiBmcmFt
ZV9idWZmZXIsCiAgIC8vIFRPRE8ocGJvcyk6IFJlbW92ZSBIMjY0IHBhcnNpbmcgZnJvbSB0aGlz
IHN0ZXAgYW5kIHVzZSBhIGZyYWdtZW50YXRpb24KICAgLy8gaGVhZGVyIHN1cHBsaWVkIGJ5IHRo
ZSBIMjY0IGRlcGFja2V0aXplci4KICAgY29uc3Qgc2l6ZV90IGtIMjY0TkFMSGVhZGVyTGVuZ3Ro
SW5CeXRlcyA9IDE7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBjb25zdCBzaXplX3Qga0gyNjVO
QUxIZWFkZXJMZW5ndGhJbkJ5dGVzID0gMjsKKyAgY29uc3QgYXV0byogaDI2NSA9CisgICAgICBh
YnNsOjpnZXRfaWY8UlRQVmlkZW9IZWFkZXJIMjY1PigmcGFja2V0LnZpZGVvX2hlYWRlci52aWRl
b190eXBlX2hlYWRlcik7CisjZW5kaWYKICAgY29uc3Qgc2l6ZV90IGtMZW5ndGhGaWVsZExlbmd0
aCA9IDI7CiAgIGNvbnN0IGF1dG8qIGgyNjQgPQogICAgICAgYWJzbDo6Z2V0X2lmPFJUUFZpZGVv
SGVhZGVySDI2ND4oJnBhY2tldC52aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOwpAQCAt
MjM2LDYgKzI1NywzNiBAQCBzaXplX3QgVkNNU2Vzc2lvbkluZm86Okluc2VydEJ1ZmZlcih1aW50
OF90KiBmcmFtZV9idWZmZXIsCiAgICAgcGFja2V0LnNpemVCeXRlcyA9IHJlcXVpcmVkX2xlbmd0
aDsKICAgICByZXR1cm4gcGFja2V0LnNpemVCeXRlczsKICAgfQorI2lmbmRlZiBESVNBQkxFX0gy
NjUKKyAgZWxzZSBpZiAoaDI2NSAmJiBoMjY1LT5wYWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVB
UCkgeworICAgIC8vIFNpbWlsYXIgdG8gSDI2NCwgZm9yIEgyNjUgYWdncmVnYXRpb24gcGFja2V0
cywgd2UgcmVseSBvbiBqaXR0ZXIgYnVmZmVyCisgICAgLy8gdG8gcmVtb3ZlIHRoZSB0d28gbGVu
Z3RoIGJ5dGVzIGJldHdlZW4gZWFjaCBOQUwgdW5pdCwgYW5kIHBvdGVudGlhbGx5IGFkZAorICAg
IC8vIHN0YXJ0IGNvZGVzLgorICAgIHNpemVfdCByZXF1aXJlZF9sZW5ndGggPSAwOworICAgIGNv
bnN0IHVpbnQ4X3QqIG5hbHVfcHRyID0KKyAgICAgICAgcGFja2V0X2J1ZmZlciArIGtIMjY1TkFM
SGVhZGVyTGVuZ3RoSW5CeXRlczsgIC8vIHNraXAgcGF5bG9hZGhkcgorICAgIHdoaWxlIChuYWx1
X3B0ciA8IHBhY2tldF9idWZmZXIgKyBwYWNrZXQuc2l6ZUJ5dGVzKSB7CisgICAgICBzaXplX3Qg
bGVuZ3RoID0gQnVmZmVyVG9VV29yZDE2KG5hbHVfcHRyKTsKKyAgICAgIHJlcXVpcmVkX2xlbmd0
aCArPQorICAgICAgICAgIGxlbmd0aCArIChwYWNrZXQuaW5zZXJ0U3RhcnRDb2RlID8ga0gyNjVT
dGFydENvZGVMZW5ndGhCeXRlcyA6IDApOworICAgICAgbmFsdV9wdHIgKz0ga0xlbmd0aEZpZWxk
TGVuZ3RoICsgbGVuZ3RoOworICAgIH0KKyAgICBTaGlmdFN1YnNlcXVlbnRQYWNrZXRzKHBhY2tl
dF9pdCwgcmVxdWlyZWRfbGVuZ3RoKTsKKyAgICBuYWx1X3B0ciA9IHBhY2tldF9idWZmZXIgKyBr
SDI2NU5BTEhlYWRlckxlbmd0aEluQnl0ZXM7CisgICAgdWludDhfdCogZnJhbWVfYnVmZmVyX3B0
ciA9IGZyYW1lX2J1ZmZlciArIG9mZnNldDsKKyAgICB3aGlsZSAobmFsdV9wdHIgPCBwYWNrZXRf
YnVmZmVyICsgcGFja2V0LnNpemVCeXRlcykgeworICAgICAgc2l6ZV90IGxlbmd0aCA9IEJ1ZmZl
clRvVVdvcmQxNihuYWx1X3B0cik7CisgICAgICBuYWx1X3B0ciArPSBrTGVuZ3RoRmllbGRMZW5n
dGg7CisgICAgICAvLyBzaW5jZSBIMjY1IHNoYXJlcyB0aGUgc2FtZSBzdGFydCBjb2RlIGFzIEgy
NjQsIHVzZSB0aGUgc2FtZSBJbnNlcnQKKyAgICAgIC8vIGZ1bmN0aW9uIHRvIGhhbmRsZSBzdGFy
dCBjb2RlLgorICAgICAgZnJhbWVfYnVmZmVyX3B0ciArPSBJbnNlcnQobmFsdV9wdHIsIGxlbmd0
aCwgcGFja2V0Lmluc2VydFN0YXJ0Q29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0X2Nhc3Q8dWludDhfdCo+KGZyYW1lX2J1ZmZlcl9wdHIpKTsKKyAgICAgIG5hbHVf
cHRyICs9IGxlbmd0aDsKKyAgICB9CisgICAgcGFja2V0LnNpemVCeXRlcyA9IHJlcXVpcmVkX2xl
bmd0aDsKKyAgICByZXR1cm4gcGFja2V0LnNpemVCeXRlczsKKyAgfQorI2VuZGlmCiAgIFNoaWZ0
U3Vic2VxdWVudFBhY2tldHMoCiAgICAgICBwYWNrZXRfaXQsIHBhY2tldC5zaXplQnl0ZXMgKwog
ICAgICAgICAgICAgICAgICAgICAgKHBhY2tldC5pbnNlcnRTdGFydENvZGUgPyBrSDI2NFN0YXJ0
Q29kZUxlbmd0aEJ5dGVzIDogMCkpOwpAQCAtNDYyLDcgKzUxMywyMiBAQCBpbnQgVkNNU2Vzc2lv
bkluZm86Okluc2VydFBhY2tldChjb25zdCBWQ01QYWNrZXQmIHBhY2tldCwKICAgICAgICAgIElz
TmV3ZXJTZXF1ZW5jZU51bWJlcihwYWNrZXQuc2VxTnVtLCBsYXN0X3BhY2tldF9zZXFfbnVtXykp
KSB7CiAgICAgICBsYXN0X3BhY2tldF9zZXFfbnVtXyA9IHBhY2tldC5zZXFOdW07CiAgICAgfQor
I2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgfSBlbHNlIGlmIChwYWNrZXQuY29kZWMoKSA9PSBrVmlk
ZW9Db2RlY0gyNjUpIHsKKyAgICBmcmFtZV90eXBlXyA9IHBhY2tldC52aWRlb19oZWFkZXIuZnJh
bWVfdHlwZTsKKyAgICBpZiAocGFja2V0LmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSgpICYmCisg
ICAgICAgIChmaXJzdF9wYWNrZXRfc2VxX251bV8gPT0gLTEgfHwKKyAgICAgICAgIElzTmV3ZXJT
ZXF1ZW5jZU51bWJlcihmaXJzdF9wYWNrZXRfc2VxX251bV8sIHBhY2tldC5zZXFOdW0pKSkgewor
ICAgICAgZmlyc3RfcGFja2V0X3NlcV9udW1fID0gcGFja2V0LnNlcU51bTsKKyAgICB9CisgICAg
aWYgKHBhY2tldC5tYXJrZXJCaXQgJiYKKyAgICAgICAgKGxhc3RfcGFja2V0X3NlcV9udW1fID09
IC0xIHx8CisgICAgICAgICBJc05ld2VyU2VxdWVuY2VOdW1iZXIocGFja2V0LnNlcU51bSwgbGFz
dF9wYWNrZXRfc2VxX251bV8pKSkgeworICAgICAgbGFzdF9wYWNrZXRfc2VxX251bV8gPSBwYWNr
ZXQuc2VxTnVtOworICAgIH0KKyNlbHNlCiAgIH0gZWxzZSB7CisjZW5kaWYKICAgICAvLyBPbmx5
IGluc2VydCBtZWRpYSBwYWNrZXRzIGJldHdlZW4gZmlyc3QgYW5kIGxhc3QgcGFja2V0cyAod2hl
bgogICAgIC8vIGF2YWlsYWJsZSkuCiAgICAgLy8gUGxhY2luZyBjaGVjayBoZXJlLCBhcyB0byBw
cm9wZXJseSBhY2NvdW50IGZvciBkdXBsaWNhdGUgcGFja2V0cy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5n
L3Nlc3Npb25faW5mby5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKaW5kZXggMDZhMzQ4ZWY3MjM1
NDc3MWIyODM4NWY5ZDZmMjQ1YmE5MGE3MWNkOS4uMDFlYTdiZDI5Nzc3MjdmZDc2NzYxNDJkNGIx
NzNhNWM5ZDY5MjlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmgKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvc2Vzc2lvbl9pbmZvLmgKQEAgLTY1LDcgKzY1LDkgQEAgY2xhc3MgVkNNU2Vzc2lvbkluZm8g
ewogICBpbnQgVGwwUGljSWQoKSBjb25zdDsKIAogICBzdGQ6OnZlY3RvcjxOYWx1SW5mbz4gR2V0
TmFsdUluZm9zKCkgY29uc3Q7Ci0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgIHN0ZDo6dmVjdG9y
PEgyNjVOYWx1SW5mbz4gR2V0SDI2NU5hbHVJbmZvcygpIGNvbnN0OworI2VuZGlmCiAgIHZvaWQg
U2V0R29mSW5mbyhjb25zdCBHb2ZJbmZvVlA5JiBnb2ZfaW5mbywgc2l6ZV90IGlkeCk7CiAKICBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvcnRjX2Jhc2UvZXhwZXJpbWVudHMvbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4
cGVyaW1lbnRzL21pbl92aWRlb19iaXRyYXRlX2V4cGVyaW1lbnQuY2MKaW5kZXggMTE0NTBkMDg0
OTIxYzY3NDkyNTZhNDRjNmRjNjZhYTNhZThmZmNmMy4uM2IxM2U4ZTliZmVkOTJiZTBmMzg5MWVk
ZWI5MDgxY2ZiOGM2MTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvZXhwZXJpbWVudHMvbWluX3ZpZGVvX2JpdHJhdGVfZXhw
ZXJpbWVudC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9ydGNfYmFzZS9leHBlcmltZW50cy9taW5fdmlkZW9fYml0cmF0ZV9leHBlcmltZW50LmNjCkBA
IC0xMDAsNiArMTAwLDkgQEAgYWJzbDo6b3B0aW9uYWw8RGF0YVJhdGU+IEdldEV4cGVyaW1lbnRh
bE1pblZpZGVvQml0cmF0ZShWaWRlb0NvZGVjVHlwZSB0eXBlKSB7CiAgICAgICAgIHJldHVybiBt
aW5fYml0cmF0ZV9hdjEuR2V0T3B0aW9uYWwoKTsKICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY0
OgogICAgICAgICByZXR1cm4gbWluX2JpdHJhdGVfaDI2NC5HZXRPcHRpb25hbCgpOworI2lmbmRl
ZiBESVNBQkxFX0gyNjUKKyAgICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorI2VuZGlmCiAgICAg
ICBjYXNlIGtWaWRlb0NvZGVjR2VuZXJpYzoKICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNNdWx0aXBs
ZXg6CiAgICAgICAgIHJldHVybiBhYnNsOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VXRpbGl0aWVzLmgKaW5kZXggYWI3Nzk0MmU2OTQ2YmRlMzAwMjk5MGEzYTI2YTEw
MDFlZjYzMDUyNS4uNmYwODA1YjBiYmJlM2QwMzhjNWM0NTZjZTYwYmViZGVhODgwMTJmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dl
YktpdC9XZWJLaXRVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCkBAIC0zOSw3ICszOSw3
IEBAIGNsYXNzIFZpZGVvRGVjb2RlckZhY3Rvcnk7CiBjbGFzcyBWaWRlb0VuY29kZXJGYWN0b3J5
OwogY2xhc3MgVmlkZW9GcmFtZTsKIAotZW51bSBjbGFzcyBXZWJLaXRDb2RlY1N1cHBvcnQgeyBI
MjY0LCBIMjY0QW5kVlA4IH07CitlbnVtIGNsYXNzIFdlYktpdENvZGVjU3VwcG9ydCB7IEgyNjRW
UDhBbmRIMjY1LCBIMjY0QW5kVlA4IH07CiAKIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVv
RW5jb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktpdENvZGVjU3Vw
cG9ydCk7CiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVh
dGVXZWJLaXREZWNvZGVyRmFjdG9yeShXZWJLaXRDb2RlY1N1cHBvcnQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQppbmRleCAxNDAyYzJiZjNhNDE3MDNhY2I4
ZjNkMGYxZjBhNDNhNzlhYTNjYjZlLi42Y2U4NjUzYzM1NDI1NDFhYjgxZWVkYTFiY2VmZTgzOGZh
YWE1NTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbQpA
QCAtMTE2LDcgKzExNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZh
Y3Rvcnk+IGNyZWF0ZVdlYktpdEVuY29kZXJGYWN0b3J5KFdlYktpdENvCiAgICAgfSk7CiAjZW5k
aWYKIAotICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0gT2JqQ1RvTmF0aXZlVmlkZW9FbmNvZGVy
RmFjdG9yeShjb2RlY1N1cHBvcnQgPT0gV2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4ID8g
W1tSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSBhbGxvY10gaW5pdF0gOiBbW1JUQ1ZpZGVv
RW5jb2RlckZhY3RvcnlIMjY0IGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBpbnRlcm5hbEZhY3Rv
cnkgPSBPYmpDVG9OYXRpdmVWaWRlb0VuY29kZXJGYWN0b3J5KFtbUlRDRGVmYXVsdFZpZGVvRW5j
b2RlckZhY3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTogY29kZWNTdXBwb3J0ID09IFdlYktpdENv
ZGVjU3VwcG9ydDo6SDI2NFZQOEFuZEgyNjVdKTsKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxWaWRlb0VuY29kZXJGYWN0b3J5V2l0aFNpbXVsY2FzdD4oc3RkOjptb3ZlKGludGVybmFsRmFj
dG9yeSkpOwogfQogCkBAIC0yNzEsNyArMjcxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvRGVj
b2Rlcj4gUmVtb3RlVmlkZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKGNvbnMK
IAogc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlV2Vi
S2l0RGVjb2RlckZhY3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0IGNvZGVjU3VwcG9ydCkKIHsKLSAg
ICBhdXRvIGludGVybmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRGVjb2RlckZhY3Rvcnko
Y29kZWNTdXBwb3J0ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA/IFtbUlRDRGVm
YXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgYWxsb2NdIGluaXRdIDogW1tSVENWaWRlb0RlY29kZXJG
YWN0b3J5SDI2NCBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0gT2Jq
Q1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShbW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0
b3J5IGFsbG9jXSBpbml0V2l0aEgyNjU6IGNvZGVjU3VwcG9ydCA9PSBXZWJLaXRDb2RlY1N1cHBv
cnQ6OkgyNjRWUDhBbmRIMjY1XSk7CiAgICAgaWYgKHZpZGVvRGVjb2RlckNhbGxiYWNrcygpLmNy
ZWF0ZUNhbGxiYWNrKQogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVWaWRl
b0RlY29kZXJGYWN0b3J5PihzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7CiAgICAgcmV0dXJu
IGludGVybmFsRmFjdG9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1K1ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjJkMzU5NGY1NTdmN2I3NWZmNjdm
OTQyN2JiNDYxYjBjOWJhNWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisg
KiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5
IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5T
RSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFs
IGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4g
dGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQor
ICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJj
ZSB0cmVlLgorICovCisvKiBUaGlzIGZpbGUgaXMgYm9ycm93ZWQgZnJvbSBzZGsvb2JqYy9jb21w
b25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8K
KworI2ltcG9ydCAiUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgiCisKKyNpbmNsdWRlICJtb2R1
bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oIgorCitOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgorCisvKiBJbnRlcmZhY2VzIGZvciBjb252ZXJ0aW5nIHRvL2Zy
b20gaW50ZXJuYWwgQysrIGZvcm1hdHMuICovCitAaW50ZXJmYWNlIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NSAoKQorCistICh3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3Bl
Y2lmaWNJbmZvOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUuaCBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJiYWUxOWM3YmMz
MWI4NDU5Zjc1ZGJkMTE5NDg1OTA0NmJmZTNiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmgKQEAgLTAsMCArMSwyOSBAQAorLyoK
KyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQg
YnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNF
TlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9u
YWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBp
biB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5
CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlIHRyZWUuCisgKi8KKy8qIFRoaXMgZmlsZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2Nv
bXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0LmguICovCisKKyNp
bXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCisjaW1wb3J0ICJSVENDb2RlY1NwZWNp
ZmljSW5mby5oIgorI2ltcG9ydCAiUlRDTWFjcm9zLmgiCisKKy8qKiBDbGFzcyBmb3IgSDI2NSBz
cGVjaWZpYyBjb25maWcuICovCit0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgUlRDSDI2NVBh
Y2tldGl6YXRpb25Nb2RlKSB7CisgIFJUQ0gyNjVQYWNrZXRpemF0aW9uTW9kZU5vbkludGVybGVh
dmVkID0gMCwgIC8vIE1vZGUgMSAtIFNUQVAtQSwgRlUtQSBpcyBhbGxvd2VkCisgIFJUQ0gyNjVQ
YWNrZXRpemF0aW9uTW9kZVNpbmdsZU5hbFVuaXQgICAgICAgIC8vIE1vZGUgMCAtIG9ubHkgc2lu
Z2xlIE5BTFUgYWxsb3dlZAorfTsKKworUlRDX09CSkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChv
YmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1IikpKQorQGludGVy
ZmFjZSBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUgOiBOU09iamVjdCA8UlRDQ29kZWNTcGVjaWZp
Y0luZm8+CisKK0Bwcm9wZXJ0eShub25hdG9taWMsIGFzc2lnbikgUlRDSDI2NVBhY2tldGl6YXRp
b25Nb2RlIHBhY2tldGl6YXRpb25Nb2RlOworCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0YTQ2OTg1ZjcyNzc0ZDQ1ZTMz
NDA1MDhjZDBhNGMwOGZkMWYxZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbQpAQCAtMCwwICsxLDI4IEBACisvKgorICogIENv
cHlyaWdodCAyMDE3IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJT
RC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmls
ZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRl
bGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBm
aWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBi
ZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJl
ZS4KKyAqLworIC8qIFRoaXMgZmlsZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0Lm1tICovCisKKyNpbXBvcnQg
IlJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmgiCisKKy8vIEgyNjUgc3BlY2lmaWMg
c2V0dGluZ3MuCitAaW1wbGVtZW50YXRpb24gUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1CisKK0Bz
eW50aGVzaXplIHBhY2tldGl6YXRpb25Nb2RlID0gX3BhY2tldGl6YXRpb25Nb2RlOworCistICh3
ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvKW5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvIHsKKyAgd2Vi
cnRjOjpDb2RlY1NwZWNpZmljSW5mbyBjb2RlY1NwZWNpZmljSW5mbzsKKyAgY29kZWNTcGVjaWZp
Y0luZm8uY29kZWNUeXBlID0gd2VicnRjOjprVmlkZW9Db2RlY0gyNjU7CisgIGNvZGVjU3BlY2lm
aWNJbmZvLmNvZGVjU3BlY2lmaWMuSDI2NS5wYWNrZXRpemF0aW9uX21vZGUgPQorICAgICAgKHdl
YnJ0Yzo6SDI2NVBhY2tldGl6YXRpb25Nb2RlKV9wYWNrZXRpemF0aW9uTW9kZTsKKworICByZXR1
cm4gY29kZWNTcGVjaWZpY0luZm87Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaAppbmRleCBkMTE0NjAzMDBkNTFlZDE2NTVl
YjJlNzg5MTlmMGY0ZGRjYzU5OWI3Li5iODM4YTRiOGFlNjk1MDYxN2UxZWVkZTIyYmM4YzhjNjBm
ODQ3Nzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29k
ZXJGYWN0b3J5LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeS5oCkBAIC0yMSw2ICsyMSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBSVENf
T0JKQ19FWFBPUlQKIF9fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENEZWZh
dWx0VmlkZW9EZWNvZGVyRmFjdG9yeSIpKSkKIEBpbnRlcmZhY2UgUlRDRGVmYXVsdFZpZGVvRGVj
b2RlckZhY3RvcnkgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyRmFjdG9yeT4KKy0gKGlkKWlu
aXRXaXRoSDI2NTooYm9vbClzdXBwb3J0SDI2NTsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExf
RU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJG
YWN0b3J5Lm0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5
Lm0KaW5kZXggNDQ0NDVmNGIxMzMyMTY2YTY4N2ZhY2JiNGM1MGE4Nzk1NDliMmM3ZS4uYTQ5NmFl
NTQzZTk2NWUzNGNhNzg3Nzc4MzdmMjIzNTM2M2QxOGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5tCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQpAQCAtMTgsOCArMTgsMjMgQEAK
ICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVvX2NvZGVjL1JU
Q1ZpZGVvRGVjb2RlclZQOS5oIgogI2VuZGlmCisjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2
NSkKKyNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIgorI2ltcG9ydCAiUlRDVmlkZW9E
ZWNvZGVySDI2NS5oIgorI2VuZGlmCisKK0BpbXBsZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9E
ZWNvZGVyRmFjdG9yeSB7CisgIGJvb2wgX3N1cHBvcnRIMjY1OworfQogCi1AaW1wbGVtZW50YXRp
b24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkKKy0gKGlkKWluaXRXaXRoSDI2NTooYm9v
bClzdXBwb3J0SDI2NQoreworICBzZWxmID0gW3N1cGVyIGluaXRdOworICBpZiAoc2VsZikgewor
ICAgICAgX3N1cHBvcnRIMjY1ID0gc3VwcG9ydEgyNjU7CisgIH0KKyAgcmV0dXJuIHNlbGY7Cit9
CiAKIC0gKE5TQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKilzdXBwb3J0ZWRDb2RlY3Mgewog
ICBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKmNvbnN0cmFpbmVkSGlnaFBh
cmFtcyA9IEB7CkBAIC00MiwxMyArNTcsMzAgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRW
aWRlb0RlY29kZXJGYWN0b3J5CiAKICAgUlRDVmlkZW9Db2RlY0luZm8gKnZwOEluZm8gPSBbW1JU
Q1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNWcDhOYW1l
XTsKIAorI2lmICFkZWZpbmVkKFJUQ19ESVNBQkxFX0gyNjUpCisgIFJUQ1ZpZGVvQ29kZWNJbmZv
ICpoMjY1SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRD
VmlkZW9Db2RlY0gyNjVOYW1lXTsKKyNlbmRpZgorIAogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9W
UDkpCiAgIFJUQ1ZpZGVvQ29kZWNJbmZvICp2cDlJbmZvID0gW1tSVENWaWRlb0NvZGVjSW5mbyBh
bGxvY10gaW5pdFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA5TmFtZV07CiAjZW5kaWYKIAorICBp
ZiAoIV9zdXBwb3J0SDI2NSkgeworICAgIHJldHVybiBAWworICAgICAgY29uc3RyYWluZWRIaWdo
SW5mbywKKyAgICAgIGNvbnN0cmFpbmVkQmFzZWxpbmVJbmZvLAorICAgICAgdnA4SW5mbywKKyNp
ZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQorICAgICAgdnA5SW5mbywKKyNlbmRpZgorICAgIF07
CisgIH0KICAgcmV0dXJuIEBbCiAgICAgY29uc3RyYWluZWRIaWdoSW5mbywKICAgICBjb25zdHJh
aW5lZEJhc2VsaW5lSW5mbywKKyNpZiAhZGVmaW5lZChSVENfRElTQUJMRV9IMjY1KQorICAgIGgy
NjVJbmZvLAorI2VuZGlmCiAgICAgdnA4SW5mbywKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5
KQogICAgIHZwOUluZm8sCkBAIC02MSw2ICs5MywxMCBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVm
YXVsdFZpZGVvRGVjb2RlckZhY3RvcnkKICAgICByZXR1cm4gW1tSVENWaWRlb0RlY29kZXJIMjY0
IGFsbG9jXSBpbml0XTsKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzpr
UlRDVmlkZW9Db2RlY1ZwOE5hbWVdKSB7CiAgICAgcmV0dXJuIFtSVENWaWRlb0RlY29kZXJWUDgg
dnA4RGVjb2Rlcl07CisjaWYgIWRlZmluZWQoUlRDX0RJU0FCTEVfSDI2NSkKKyAgfSBlbHNlIGlm
IChbaW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY0gyNjVOYW1lXSkgewor
ICAgIHJldHVybiBbW1JUQ1ZpZGVvRGVjb2RlckgyNjUgYWxsb2NdIGluaXRdOworI2VuZGlmCiAj
aWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICAgfSBlbHNlIGlmIChbaW5mby5uYW1lIGlzRXF1
YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY1ZwOU5hbWVdKSB7CiAgICAgcmV0dXJuIFtSVENWaWRl
b0RlY29kZXJWUDkgdnA5RGVjb2Rlcl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5LmgKaW5kZXggOTMyMzI1NmNlYWRjODM4YzUzYzgwYTcwZmMw
ZDBiZTI1NTMzNWZlMy4uYTk5NWRhYWI1NDEwZjAzZGQxYjM3ZjA4OGQzNTE1NTgwNGQ2NzgzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9y
eS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rvcnku
aApAQCAtMjIsOCArMjIsNyBAQCBSVENfT0JKQ19FWFBPUlQKIF9fYXR0cmlidXRlX18oKG9iamNf
cnVudGltZV9uYW1lKCJXS19SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSIpKSkKIEBpbnRl
cmZhY2UgUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkgOiBOU09iamVjdCA8UlRDVmlkZW9F
bmNvZGVyRmFjdG9yeT4KIAotQHByb3BlcnR5KG5vbmF0b21pYywgcmV0YWluKSBSVENWaWRlb0Nv
ZGVjSW5mbyAqcHJlZmVycmVkQ29kZWM7Ci0KKy0gKGlkKWluaXRXaXRoSDI2NTooYm9vbClzdXBw
b3J0SDI2NTsKICsgKE5TQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKilzdXBwb3J0ZWRDb2Rl
Y3M7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVv
RW5jb2RlckZhY3RvcnkubSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2Rl
ckZhY3RvcnkubQppbmRleCBiNzIyOTZiNjRmMzFiMGVmYjQ1YThiZGRhNjM5YjQ4MmFmYWRiZGEw
Li5kNjg2MDlkNTY0OTMxOGQ4ZTMyMTJjZTQyZWRmOTkyNmRkYjQ4Yzg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5Lm0KKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCkBAIC0xOCwxMCAr
MTgsMjMgQEAKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQogI2ltcG9ydCAiYXBpL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRW5jb2RlclZQOS5oIgogI2VuZGlmCisjaWYgIWRlZmluZWQoRElTQUJM
RV9IMjY1KQorI2ltcG9ydCAiUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgiCisjaW1wb3J0ICJSVENW
aWRlb0VuY29kZXJIMjY1LmgiCisjZW5kaWYKIAotQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRW
aWRlb0VuY29kZXJGYWN0b3J5CitAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2Rl
ckZhY3RvcnkgeworICBib29sIF9zdXBwb3J0SDI2NTsKK30KIAotQHN5bnRoZXNpemUgcHJlZmVy
cmVkQ29kZWM7CistIChpZClpbml0V2l0aEgyNjU6KGJvb2wpc3VwcG9ydEgyNjUKK3sKKyAgc2Vs
ZiA9IFtzdXBlciBpbml0XTsKKyAgaWYgKHNlbGYpIHsKKyAgICAgIF9zdXBwb3J0SDI2NSA9IHN1
cHBvcnRIMjY1OworICB9CisgIHJldHVybiBzZWxmOworfQogCiArIChOU0FycmF5PFJUQ1ZpZGVv
Q29kZWNJbmZvICo+ICopc3VwcG9ydGVkQ29kZWNzIHsKICAgTlNEaWN0aW9uYXJ5PE5TU3RyaW5n
ICosIE5TU3RyaW5nICo+ICpjb25zdHJhaW5lZEhpZ2hQYXJhbXMgPSBAewpAQCAtNDIsNiArNTUs
MTAgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5CiAgICAg
ICBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNI
MjY0TmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOmNv
bnN0cmFpbmVkQmFzZWxpbmVQYXJhbXNdOwogCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQor
ICBSVENWaWRlb0NvZGVjSW5mbyAqaDI2NUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9j
XSBpbml0V2l0aE5hbWU6a1JUQ1ZpZGVvQ29kZWNIMjY1TmFtZV07CisjZW5kaWYKKwogICBSVENW
aWRlb0NvZGVjSW5mbyAqdnA4SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRX
aXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOE5hbWVdOwogCiAjaWYgZGVmaW5lZChSVENfRU5BQkxF
X1ZQOSkKQEAgLTUxLDYgKzY4LDkgQEAgQGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0Vu
Y29kZXJGYWN0b3J5CiAgIHJldHVybiBAWwogICAgIGNvbnN0cmFpbmVkSGlnaEluZm8sCiAgICAg
Y29uc3RyYWluZWRCYXNlbGluZUluZm8sCisjaWYgIWRlZmluZWQoRElTQUJMRV9IMjY1KQorICAg
IGgyNjVJbmZvLAorI2VuZGlmCiAgICAgdnA4SW5mbywKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVf
VlA5KQogICAgIHZwOUluZm8sCkBAIC02Niw2ICs4NiwxMiBAQCBAaW1wbGVtZW50YXRpb24gUlRD
RGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQog
ICB9IGVsc2UgaWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVjVnA5
TmFtZV0pIHsKICAgICByZXR1cm4gW1JUQ1ZpZGVvRW5jb2RlclZQOSB2cDlFbmNvZGVyXTsKKyNl
bmRpZgorI2lmICFkZWZpbmVkKERJU0FCTEVfSDI2NSkKKyAgfSBlbHNlIGlmIChAYXZhaWxhYmxl
KGlPUyAxMSwgKikpIHsKKyAgICBpZiAoW2luZm8ubmFtZSBpc0VxdWFsVG9TdHJpbmc6a1JUQ1Zp
ZGVvQ29kZWNIMjY1TmFtZV0pIHsKKyAgICAgIHJldHVybiBbW1JUQ1ZpZGVvRW5jb2RlckgyNjUg
YWxsb2NdIGluaXRXaXRoQ29kZWNJbmZvOmluZm9dOworICAgIH0KICNlbmRpZgogICB9CiAKQEAg
LTc2LDEyICsxMDIsOSBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZh
Y3RvcnkKICAgTlNNdXRhYmxlQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKmNvZGVjcyA9IFtb
W3NlbGYgY2xhc3NdIHN1cHBvcnRlZENvZGVjc10gbXV0YWJsZUNvcHldOwogCiAgIE5TTXV0YWJs
ZUFycmF5PFJUQ1ZpZGVvQ29kZWNJbmZvICo+ICpvcmRlcmVkQ29kZWNzID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5XTsKLSAgTlNVSW50ZWdlciBpbmRleCA9IFtjb2RlY3MgaW5kZXhPZk9iamVjdDpz
ZWxmLnByZWZlcnJlZENvZGVjXTsKLSAgaWYgKGluZGV4ICE9IE5TTm90Rm91bmQpIHsKLSAgICBb
b3JkZXJlZENvZGVjcyBhZGRPYmplY3Q6W2NvZGVjcyBvYmplY3RBdEluZGV4OmluZGV4XV07Ci0g
ICAgW2NvZGVjcyByZW1vdmVPYmplY3RBdEluZGV4OmluZGV4XTsKLSAgfQogICBbb3JkZXJlZENv
ZGVjcyBhZGRPYmplY3RzRnJvbUFycmF5OmNvZGVjc107CisgIGlmICghX3N1cHBvcnRIMjY1KQor
ICAgIFtvcmRlcmVkQ29kZWNzIHJlbW92ZU9iamVjdEF0SW5kZXg6MF07CiAKICAgcmV0dXJuIFtv
cmRlcmVkQ29kZWNzIGNvcHldOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENI
MjY1UHJvZmlsZUxldmVsSWQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZl
bElkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGUzNDg2ZDA2ZDQxMjdlOTc4MzkyOWZlNDBiZWRiMzNhNWM2N2Iy
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZl
bElkLmgKQEAgLTAsMCArMSwxNiBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRD
IHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRo
YXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNv
dXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0
cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRy
aWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMg
ZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9ydCA8Rm91
bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorCitSVENfT0JK
Q19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICpjb25zdCBrUlRDVmlkZW9Db2RlY0gyNjVOYW1lOwor
UlRDX09CSkNfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqY29uc3Qga1JUQ0xldmVsMzFNYWluOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW0gYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWQ0
NGUyYTU5MzMyZjc2ZjliYjg1NTE2NDZkY2Q3MzJiOTA1MzI2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQubW0KQEAgLTAsMCArMSwxOCBA
QAorLyoKKyAqICBDb3B5cmlnaHQgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFk
ZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQK
KyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhv
cnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlIHRyZWUuCisgKgorICovCisKKyNpbXBvcnQgIlJUQ0gyNjVQcm9maWxlTGV2ZWxJ
ZC5oIgorCisjaW5jbHVkZSAibWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaCIKKworTlNTdHJp
bmcgKmNvbnN0IGtSVENWaWRlb0NvZGVjSDI2NU5hbWUgPSBAIkgyNjUiOworLy8gVE9ETyhqaWFu
anVueik6IFRoaXMgaXMgdmFsdWUgaXMgbm90IGNvcnJlY3QuCitOU1N0cmluZyAqY29uc3Qga1JU
Q0xldmVsMzFNYWluID0gQCI0ZDAwMWYiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENWaWRlb0RlY29kZXJIMjY1LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rlckgy
NjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MzliMzgyODljMmYxOWJjYWQyZjA0NGEwMDg5NjlhOTUwZTI3ZTAy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1
LmgKQEAgLTAsMCArMSwxOSBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHBy
b2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMg
c291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQg
Y2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJj
ZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBn
cmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1
dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmls
ZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9ydCA8Rm91bmRh
dGlvbi9Gb3VuZGF0aW9uLmg+CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorI2ltcG9ydCAiUlRD
VmlkZW9EZWNvZGVyLmgiCisKK1JUQ19PQkpDX0VYUE9SVAorX19hdHRyaWJ1dGVfXygob2JqY19y
dW50aW1lX25hbWUoIldLX1JUQ1ZpZGVvRGVjb2RlckgyNjUiKSkpCitAaW50ZXJmYWNlIFJUQ1Zp
ZGVvRGVjb2RlckgyNjUgOiBOU09iamVjdCA8UlRDVmlkZW9EZWNvZGVyPgorQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRl
b19jb2RlYy9SVENWaWRlb0RlY29kZXJIMjY1Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0NjI2NjhhNjE4OTQw
YzgzOWFiODYyY2ExYTMxNGU1OWY1OWNmZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVv
X2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUubW0KQEAgLTAsMCArMSwyNzAgQEAKKy8qCisgKiAg
Q29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25h
bCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGlu
IHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkK
KyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3Vy
Y2UgdHJlZS4KKyAqCisgKi8KKworI2ltcG9ydCAiUlRDVmlkZW9EZWNvZGVySDI2NS5oIgorCisj
aW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CisKKyNpbXBvcnQgImJhc2UvUlRD
VmlkZW9GcmFtZS5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVmZmVyLmgiCisjaW1w
b3J0ICJjb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVsQnVmZmVyLmgiCisj
aW1wb3J0ICJoZWxwZXJzLmgiCisjaW1wb3J0ICJoZWxwZXJzL3Njb3BlZF9jZnR5cGVyZWYuaCIK
KworI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fZXJyb3JfY29k
ZXMuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9jaGVja3MuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9s
b2dnaW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgorI2luY2x1ZGUgInNk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oIgorCisvLyBTdHJ1
Y3QgdGhhdCB3ZSBwYXNzIHRvIHRoZSBkZWNvZGVyIHBlciBmcmFtZSB0byBkZWNvZGUuIFdlIHJl
Y2VpdmUgaXQgYWdhaW4KKy8vIGluIHRoZSBkZWNvZGVyIGNhbGxiYWNrLgorc3RydWN0IFJUQ0gy
NjVGcmFtZURlY29kZVBhcmFtcyB7CisgIFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyhSVENWaWRl
b0RlY29kZXJDYWxsYmFjayBjYiwgaW50NjRfdCB0cykKKyAgICAgIDogY2FsbGJhY2soY2IpLCB0
aW1lc3RhbXAodHMpIHt9CisgIFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIGNhbGxiYWNrOworICBp
bnQ2NF90IHRpbWVzdGFtcDsKK307CisKKy8vIFRoaXMgaXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9u
IHRoYXQgVmlkZW9Ub29sYm94IGNhbGxzIHdoZW4gZGVjb2RlIGlzCisvLyBjb21wbGV0ZS4KK3Zv
aWQgaDI2NURlY29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayh2b2lkKiBkZWNvZGVyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHBhcmFtcywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBPU1N0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVlREZWNvZGVJbmZvRmxhZ3MgaW5mb0ZsYWdzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VC
dWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01UaW1lIHRpbWVz
dGFtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVRpbWUgZHVyYXRp
b24pIHsKKyAgc3RkOjp1bmlxdWVfcHRyPFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcz4gZGVjb2Rl
UGFyYW1zKAorICAgICAgcmVpbnRlcnByZXRfY2FzdDxSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMq
PihwYXJhbXMpKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJS
T1IpIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZyYW1lLiBTdGF0dXM6ICIgPDwgc3RhdHVzOworICAg
IHJldHVybjsKKyAgfQorICAvLyBUT0RPKHRrY2hpbik6IEhhbmRsZSBDVk8gcHJvcGVybHkuCisg
IFJUQ0NWUGl4ZWxCdWZmZXIqIGZyYW1lQnVmZmVyID0KKyAgICAgIFtbUlRDQ1ZQaXhlbEJ1ZmZl
ciBhbGxvY10gaW5pdFdpdGhQaXhlbEJ1ZmZlcjppbWFnZUJ1ZmZlcl07CisgIFJUQ1ZpZGVvRnJh
bWUqIGRlY29kZWRGcmFtZSA9IFtbUlRDVmlkZW9GcmFtZSBhbGxvY10KKyAgICAgIGluaXRXaXRo
QnVmZmVyOmZyYW1lQnVmZmVyCisgICAgICAgICAgICByb3RhdGlvbjpSVENWaWRlb1JvdGF0aW9u
XzAKKyAgICAgICAgIHRpbWVTdGFtcE5zOkNNVGltZUdldFNlY29uZHModGltZXN0YW1wKSAqIHJ0
Yzo6a051bU5hbm9zZWNzUGVyU2VjXTsKKyAgZGVjb2RlZEZyYW1lLnRpbWVTdGFtcCA9IGRlY29k
ZVBhcmFtcy0+dGltZXN0YW1wOworICBkZWNvZGVQYXJhbXMtPmNhbGxiYWNrKGRlY29kZWRGcmFt
ZSk7Cit9CisKKy8vIERlY29kZXIuCitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9EZWNvZGVySDI2
NSB7CisgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBfdmlkZW9Gb3JtYXQ7CisgIFZURGVj
b21wcmVzc2lvblNlc3Npb25SZWYgX2RlY29tcHJlc3Npb25TZXNzaW9uOworICBSVENWaWRlb0Rl
Y29kZXJDYWxsYmFjayBfY2FsbGJhY2s7CisgIE9TU3RhdHVzIF9lcnJvcjsKK30KKworLSAoaW5z
dGFuY2V0eXBlKWluaXQgeworICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICB9CisKKyAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpZGVhbGxvYyB7CisgIFtzZWxmIGRlc3Ryb3lEZWNv
bXByZXNzaW9uU2Vzc2lvbl07CisgIFtzZWxmIHNldFZpZGVvRm9ybWF0Om51bGxwdHJdOworfQor
CistIChOU0ludGVnZXIpc3RhcnREZWNvZGVXaXRoTnVtYmVyT2ZDb3JlczooaW50KW51bWJlck9m
Q29yZXMgeworICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistIChOU0ludGVn
ZXIpZGVjb2RlOihSVENFbmNvZGVkSW1hZ2UqKWlucHV0SW1hZ2UKKyAgICAgICAgICBtaXNzaW5n
RnJhbWVzOihCT09MKW1pc3NpbmdGcmFtZXMKKyAgICAgIGNvZGVjU3BlY2lmaWNJbmZvOihfX251
bGxhYmxlIGlkPFJUQ0NvZGVjU3BlY2lmaWNJbmZvPilpbmZvCisgICAgICAgICAgIHJlbmRlclRp
bWVNczooaW50NjRfdClyZW5kZXJUaW1lTXMgeworICBSVENfRENIRUNLKGlucHV0SW1hZ2UuYnVm
ZmVyKTsKKworICBpZiAoX2Vycm9yICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19XQVJOSU5H
KSA8PCAiTGFzdCBmcmFtZSBkZWNvZGUgZmFpbGVkLiI7CisgICAgX2Vycm9yID0gbm9FcnI7Cisg
ICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorCisgIHJ0Yzo6U2NvcGVk
Q0ZUeXBlUmVmPENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZj4gaW5wdXRGb3JtYXQgPQorICAg
ICAgcnRjOjpTY29wZWRDRih3ZWJydGM6OkNyZWF0ZUgyNjVWaWRlb0Zvcm1hdERlc2NyaXB0aW9u
KAorICAgICAgICAgICh1aW50OF90KilpbnB1dEltYWdlLmJ1ZmZlci5ieXRlcywgaW5wdXRJbWFn
ZS5idWZmZXIubGVuZ3RoKSk7CisgIGlmIChpbnB1dEZvcm1hdCkgeworICAgIENNVmlkZW9EaW1l
bnNpb25zIGRpbWVuc2lvbnMgPQorICAgICAgICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXRE
aW1lbnNpb25zKGlucHV0Rm9ybWF0LmdldCgpKTsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJS
ZXNvbHV0aW9uOiAiIDw8IGRpbWVuc2lvbnMud2lkdGggPDwgIiB4ICIKKyAgICAgICAgICAgICAg
ICAgICAgIDw8IGRpbWVuc2lvbnMuaGVpZ2h0OworICAgIC8vIENoZWNrIGlmIHRoZSB2aWRlbyBm
b3JtYXQgaGFzIGNoYW5nZWQsIGFuZCByZWluaXRpYWxpemUgZGVjb2RlciBpZgorICAgIC8vIG5l
ZWRlZC4KKyAgICBpZiAoIUNNRm9ybWF0RGVzY3JpcHRpb25FcXVhbChpbnB1dEZvcm1hdC5nZXQo
KSwgX3ZpZGVvRm9ybWF0KSkgeworICAgICAgW3NlbGYgc2V0VmlkZW9Gb3JtYXQ6aW5wdXRGb3Jt
YXQuZ2V0KCldOworICAgICAgaW50IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvciA9IFtz
ZWxmIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25dOworICAgICAgaWYgKHJlc2V0RGVjb21wcmVz
c2lvblNlc3Npb25FcnJvciAhPSBXRUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICAgICAgcmV0
dXJuIHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25FcnJvcjsKKyAgICAgIH0KKyAgICB9CisgIH0K
KyAgaWYgKCFfdmlkZW9Gb3JtYXQpIHsKKyAgICAvLyBXZSByZWNlaXZlZCBhIGZyYW1lIGJ1dCB3
ZSBkb24ndCBoYXZlIGZvcm1hdCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4ndAorICAgIC8vIGRlY29k
ZSBpdC4KKyAgICAvLyBUaGlzIGNhbiBoYXBwZW4gYWZ0ZXIgYmFja2dyb3VuZGluZy4gV2UgbmVl
ZCB0byB3YWl0IGZvciB0aGUgbmV4dAorICAgIC8vIHNwcy9wcHMgYmVmb3JlIHdlIGNhbiByZXN1
bWUgc28gd2UgcmVxdWVzdCBhIGtleWZyYW1lIGJ5IHJldHVybmluZyBhbgorICAgIC8vIGVycm9y
LgorICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk1pc3NpbmcgdmlkZW8gZm9ybWF0LiBGcmFt
ZSB3aXRoIHNwcy9wcHMgcmVxdWlyZWQuIjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVD
X0VSUk9SOworICB9CisgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlciA9IG51bGxwdHI7
CisgIGlmICghd2VicnRjOjpIMjY1QW5uZXhCQnVmZmVyVG9DTVNhbXBsZUJ1ZmZlcigKKyAgICAg
ICAgICAodWludDhfdCopaW5wdXRJbWFnZS5idWZmZXIuYnl0ZXMsIGlucHV0SW1hZ2UuYnVmZmVy
Lmxlbmd0aCwKKyAgICAgICAgICBfdmlkZW9Gb3JtYXQsICZzYW1wbGVCdWZmZXIpKSB7CisgICAg
cmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICBSVENfRENIRUNLKHNhbXBs
ZUJ1ZmZlcik7CisgIFZURGVjb2RlRnJhbWVGbGFncyBkZWNvZGVGbGFncyA9CisgICAgICBrVlRE
ZWNvZGVGcmFtZV9FbmFibGVBc3luY2hyb25vdXNEZWNvbXByZXNzaW9uOworICBzdGQ6OnVuaXF1
ZV9wdHI8UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zPiBmcmFtZURlY29kZVBhcmFtczsKKyAgZnJh
bWVEZWNvZGVQYXJhbXMucmVzZXQoCisgICAgICBuZXcgUlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1z
KF9jYWxsYmFjaywgaW5wdXRJbWFnZS50aW1lU3RhbXApKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0g
VlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29kZUZyYW1lKAorICAgICAgX2RlY29tcHJlc3Npb25T
ZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZsYWdzLAorICAgICAgZnJhbWVEZWNvZGVQYXJh
bXMucmVsZWFzZSgpLCBudWxscHRyKTsKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgIC8vIFJl
LWluaXRpYWxpemUgdGhlIGRlY29kZXIgaWYgd2UgaGF2ZSBhbiBpbnZhbGlkIHNlc3Npb24gd2hp
bGUgdGhlIGFwcCBpcworICAvLyBhY3RpdmUgYW5kIHJldHJ5IHRoZSBkZWNvZGUgcmVxdWVzdC4K
KyAgaWYgKHN0YXR1cyA9PSBrVlRJbnZhbGlkU2Vzc2lvbkVyciAmJgorICAgICAgW3NlbGYgcmVz
ZXREZWNvbXByZXNzaW9uU2Vzc2lvbl0gPT0gV0VCUlRDX1ZJREVPX0NPREVDX09LKSB7CisgICAg
ZnJhbWVEZWNvZGVQYXJhbXMucmVzZXQoCisgICAgICAgIG5ldyBSVENIMjY1RnJhbWVEZWNvZGVQ
YXJhbXMoX2NhbGxiYWNrLCBpbnB1dEltYWdlLnRpbWVTdGFtcCkpOworICAgIHN0YXR1cyA9IFZU
RGVjb21wcmVzc2lvblNlc3Npb25EZWNvZGVGcmFtZSgKKyAgICAgICAgX2RlY29tcHJlc3Npb25T
ZXNzaW9uLCBzYW1wbGVCdWZmZXIsIGRlY29kZUZsYWdzLAorICAgICAgICBmcmFtZURlY29kZVBh
cmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworICB9CisjZW5kaWYKKyAgQ0ZSZWxlYXNlKHNhbXBs
ZUJ1ZmZlcik7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9S
KSA8PCAiRmFpbGVkIHRvIGRlY29kZSBmcmFtZSB3aXRoIGNvZGU6ICIgPDwgc3RhdHVzOworICAg
IHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyAgcmV0dXJuIFdFQlJUQ19W
SURFT19DT0RFQ19PSzsKK30KKworLSAodm9pZClzZXRDYWxsYmFjazooUlRDVmlkZW9EZWNvZGVy
Q2FsbGJhY2spY2FsbGJhY2sgeworICBfY2FsbGJhY2sgPSBjYWxsYmFjazsKK30KKworLSAoTlNJ
bnRlZ2VyKXJlbGVhc2VEZWNvZGVyIHsKKyAgLy8gTmVlZCB0byBpbnZhbGlkYXRlIHRoZSBzZXNz
aW9uIHNvIHRoYXQgY2FsbGJhY2tzIG5vIGxvbmdlciBvY2N1ciBhbmQgaXQKKyAgLy8gaXMgc2Fm
ZSB0byBudWxsIG91dCB0aGUgY2FsbGJhY2suCisgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9u
U2Vzc2lvbl07CisgIFtzZWxmIHNldFZpZGVvRm9ybWF0Om51bGxwdHJdOworICBfY2FsbGJhY2sg
PSBudWxscHRyOworICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCisjcHJhZ21h
IG1hcmsgLSBQcml2YXRlCisKKy0gKGludClyZXNldERlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAg
W3NlbGYgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXTsKKworICAvLyBOZWVkIHRvIHdhaXQg
Zm9yIHRoZSBmaXJzdCBTUFMgdG8gaW5pdGlhbGl6ZSBkZWNvZGVyLgorICBpZiAoIV92aWRlb0Zv
cm1hdCkgeworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7CisgIH0KKworICAvLyBT
ZXQga2V5cyBmb3IgT3BlbkdMIGFuZCBJT1N1cmZhY2UgY29tcGF0aWJpbHR5LCB3aGljaCBtYWtl
cyB0aGUgZW5jb2RlcgorICAvLyBjcmVhdGUgcGl4ZWwgYnVmZmVycyB3aXRoIEdQVSBiYWNrZWQg
bWVtb3J5LiBUaGUgaW50ZW50IGhlcmUgaXMgdG8gcGFzcworICAvLyB0aGUgcGl4ZWwgYnVmZmVy
cyBkaXJlY3RseSBzbyB3ZSBhdm9pZCBhIHRleHR1cmUgdXBsb2FkIGxhdGVyIGR1cmluZworICAv
LyByZW5kZXJpbmcuIFRoaXMgY3VycmVudGx5IGlzIG1vb3QgYmVjYXVzZSB3ZSBhcmUgY29udmVy
dGluZyBiYWNrIHRvIGFuCisgIC8vIEk0MjAgZnJhbWUgYWZ0ZXIgZGVjb2RlLCBidXQgZXZlbnR1
YWxseSB3ZSB3aWxsIGJlIGFibGUgdG8gcGx1bWIKKyAgLy8gQ1ZQaXhlbEJ1ZmZlcnMgZGlyZWN0
bHkgdG8gdGhlIHJlbmRlcmVyLgorICAvLyBUT0RPKHRrY2hpbik6IE1heWJlIG9ubHkgc2V0IE9w
ZW5HTC9JT1N1cmZhY2Uga2V5cyBpZiB3ZSBrbm93IHRoYXQgdGhhdAorICAvLyB3ZSBjYW4gcGFz
cyBDVlBpeGVsQnVmZmVycyBhcyBuYXRpdmUgaGFuZGxlcyBpbiBkZWNvZGVyIG91dHB1dC4KKyAg
c3RhdGljIHNpemVfdCBjb25zdCBhdHRyaWJ1dGVzU2l6ZSA9IDM7CisgIENGVHlwZVJlZiBrZXlz
W2F0dHJpYnV0ZXNTaXplXSA9IHsKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgICAga0NWUGl4
ZWxCdWZmZXJPcGVuR0xFU0NvbXBhdGliaWxpdHlLZXksCisjZWxpZiBkZWZpbmVkKFdFQlJUQ19N
QUMpCisgICAga0NWUGl4ZWxCdWZmZXJPcGVuR0xDb21wYXRpYmlsaXR5S2V5LAorI2VuZGlmCisg
ICAga0NWUGl4ZWxCdWZmZXJJT1N1cmZhY2VQcm9wZXJ0aWVzS2V5LAorICAgIGtDVlBpeGVsQnVm
ZmVyUGl4ZWxGb3JtYXRUeXBlS2V5CisgIH07CisgIENGRGljdGlvbmFyeVJlZiBpb1N1cmZhY2VW
YWx1ZSA9IENyZWF0ZUNGVHlwZURpY3Rpb25hcnkobnVsbHB0ciwgbnVsbHB0ciwgMCk7CisgIGlu
dDY0X3QgbnYxMnR5cGUgPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVs
bFJhbmdlOworICBDRk51bWJlclJlZiBwaXhlbEZvcm1hdCA9CisgICAgICBDRk51bWJlckNyZWF0
ZShudWxscHRyLCBrQ0ZOdW1iZXJMb25nVHlwZSwgJm52MTJ0eXBlKTsKKyAgQ0ZUeXBlUmVmIHZh
bHVlc1thdHRyaWJ1dGVzU2l6ZV0gPSB7a0NGQm9vbGVhblRydWUsIGlvU3VyZmFjZVZhbHVlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbEZvcm1hdH07CisgIENG
RGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzID0KKyAgICAgIENyZWF0ZUNGVHlwZURpY3Rpb25hcnko
a2V5cywgdmFsdWVzLCBhdHRyaWJ1dGVzU2l6ZSk7CisgIGlmIChpb1N1cmZhY2VWYWx1ZSkgewor
ICAgIENGUmVsZWFzZShpb1N1cmZhY2VWYWx1ZSk7CisgICAgaW9TdXJmYWNlVmFsdWUgPSBudWxs
cHRyOworICB9CisgIGlmIChwaXhlbEZvcm1hdCkgeworICAgIENGUmVsZWFzZShwaXhlbEZvcm1h
dCk7CisgICAgcGl4ZWxGb3JtYXQgPSBudWxscHRyOworICB9CisgIFZURGVjb21wcmVzc2lvbk91
dHB1dENhbGxiYWNrUmVjb3JkIHJlY29yZCA9IHsKKyAgICAgIGgyNjVEZWNvbXByZXNzaW9uT3V0
cHV0Q2FsbGJhY2ssCisgICAgICBudWxscHRyLAorICB9OworICBPU1N0YXR1cyBzdGF0dXMgPQor
ICAgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZShudWxscHRyLCBfdmlkZW9Gb3JtYXQs
IG51bGxwdHIsIGF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZyZWNvcmQsICZfZGVjb21wcmVzc2lvblNlc3Npb24pOworICBDRlJlbGVhc2UoYXR0cmlidXRl
cyk7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBbc2VsZiBkZXN0cm95RGVjb21wcmVz
c2lvblNlc3Npb25dOworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0K
KyAgW3NlbGYgY29uZmlndXJlRGVjb21wcmVzc2lvblNlc3Npb25dOworCisgIHJldHVybiBXRUJS
VENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKHZvaWQpY29uZmlndXJlRGVjb21wcmVzc2lvblNl
c3Npb24geworICBSVENfRENIRUNLKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjaWYgZGVmaW5l
ZChXRUJSVENfSU9TKQorICBWVFNlc3Npb25TZXRQcm9wZXJ0eShfZGVjb21wcmVzc2lvblNlc3Np
b24sIGtWVERlY29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwga0NGQm9vbGVhblRydWUp
OworI2VuZGlmCit9CisKKy0gKHZvaWQpZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAg
aWYgKF9kZWNvbXByZXNzaW9uU2Vzc2lvbikgeworI2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAg
ICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcyhfZGVjb21w
cmVzc2lvblNlc3Npb24pOworI2VuZGlmCisgICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkludmFs
aWRhdGUoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBDRlJlbGVhc2UoX2RlY29tcHJlc3Np
b25TZXNzaW9uKTsKKyAgICBfZGVjb21wcmVzc2lvblNlc3Npb24gPSBudWxscHRyOworICB9Cit9
CisKKy0gKHZvaWQpc2V0VmlkZW9Gb3JtYXQ6KENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZil2
aWRlb0Zvcm1hdCB7CisgIGlmIChfdmlkZW9Gb3JtYXQgPT0gdmlkZW9Gb3JtYXQpIHsKKyAgICBy
ZXR1cm47CisgIH0KKyAgaWYgKF92aWRlb0Zvcm1hdCkgeworICAgIENGUmVsZWFzZShfdmlkZW9G
b3JtYXQpOworICB9CisgIF92aWRlb0Zvcm1hdCA9IHZpZGVvRm9ybWF0OworICBpZiAoX3ZpZGVv
Rm9ybWF0KSB7CisgICAgQ0ZSZXRhaW4oX3ZpZGVvRm9ybWF0KTsKKyAgfQorfQorCistIChOU1N0
cmluZyopaW1wbGVtZW50YXRpb25OYW1lIHsKKyAgcmV0dXJuIEAiVmlkZW9Ub29sYm94IjsKK30K
KworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1
LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9j
b21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
ZTZhNzRhZmQ4MjlkODczYTkxODE3ZGJhOTZlYjVjYjczMDQ2OWM3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1LmgKQEAgLTAsMCArMSwyMyBA
QAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFk
ZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQK
KyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhv
cnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlIHRyZWUuCisgKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CisKKyNpbXBvcnQgIlJUQ01hY3Jvcy5oIgorI2ltcG9ydCAiUlRDVmlkZW9Db2RlY0luZm8uaCIK
KyNpbXBvcnQgIlJUQ1ZpZGVvRW5jb2Rlci5oIgorCitSVENfT0JKQ19FWFBPUlQKK19fYXR0cmli
dXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVENWaWRlb0VuY29kZXJIMjY1IikpKQorQGlu
dGVyZmFjZSBSVENWaWRlb0VuY29kZXJIMjY1IDogTlNPYmplY3QgPFJUQ1ZpZGVvRW5jb2Rlcj4K
KworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZWNJbmZvOihSVENWaWRlb0NvZGVjSW5mbyAq
KWNvZGVjSW5mbzsKKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRl
b0VuY29kZXJIMjY1Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJIMjY1Lm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjQ1N2M1NzA3N2FjNzAzMWI0MDYxZjZmZjI2NzE2MzRiZTQ2ZjMyOGIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUubW0K
QEAgLTAsMCArMSw1OTIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJSVEMg
cHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhp
cyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhh
dCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291
cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRz
IGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJp
YnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBm
aWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKi8KKworI2ltcG9ydCAi
UlRDVmlkZW9FbmNvZGVySDI2NS5oIgorCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29s
Ym94Lmg+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW1wb3J0ICJSVENDb2RlY1NwZWNpZmljSW5m
b0gyNjUuaCIKKyNpbXBvcnQgImFwaS9wZWVyY29ubmVjdGlvbi9SVENSdHBGcmFnbWVudGF0aW9u
SGVhZGVyK1ByaXZhdGUuaCIKKyNpbXBvcnQgImFwaS9wZWVyY29ubmVjdGlvbi9SVENWaWRlb0Nv
ZGVjSW5mbytQcml2YXRlLmgiCisjaW1wb3J0ICJiYXNlL1JUQ0k0MjBCdWZmZXIuaCIKKyNpbXBv
cnQgImJhc2UvUlRDVmlkZW9GcmFtZS5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lQnVm
ZmVyLmgiCisjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2ZyYW1lX2J1ZmZlci9SVENDVlBpeGVs
QnVmZmVyLmgiCisjaW1wb3J0ICJoZWxwZXJzLmgiCisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQor
I2ltcG9ydCAiaGVscGVycy9VSURldmljZStSVENEZXZpY2UuaCIKKyNlbmRpZgorCisjaW5jbHVk
ZSAiY29tbW9uX3ZpZGVvL2luY2x1ZGUvYml0cmF0ZV9hZGp1c3Rlci5oIgorI2luY2x1ZGUgImxp
Ynl1di9jb252ZXJ0X2Zyb20uaCIKKyNpbmNsdWRlICJtb2R1bGVzL2luY2x1ZGUvbW9kdWxlX2Nv
bW1vbl90eXBlcy5oIgorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlk
ZW9fZXJyb3JfY29kZXMuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9idWZmZXIuaCIKKyNpbmNsdWRl
ICJydGNfYmFzZS9sb2dnaW5nLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvdGltZV91dGlscy5oIgor
I2luY2x1ZGUgInNkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvVG9vbGJveC9uYWx1X3Jl
d3JpdGVyLmgiCisjaW5jbHVkZSAic3lzdGVtX3dyYXBwZXJzL2luY2x1ZGUvY2xvY2suaCIKKwor
QGludGVyZmFjZSBSVENWaWRlb0VuY29kZXJIMjY1ICgpCisKKy0gKHZvaWQpZnJhbWVXYXNFbmNv
ZGVkOihPU1N0YXR1cylzdGF0dXMKKyAgICAgICAgICAgICAgICAgIGZsYWdzOihWVEVuY29kZUlu
Zm9GbGFncylpbmZvRmxhZ3MKKyAgICAgICAgICAgc2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZl
clJlZilzYW1wbGVCdWZmZXIKKyAgICAgICAgICAgICAgICAgIHdpZHRoOihpbnQzMl90KXdpZHRo
CisgICAgICAgICAgICAgICAgIGhlaWdodDooaW50MzJfdCloZWlnaHQKKyAgICAgICAgICAgcmVu
ZGVyVGltZU1zOihpbnQ2NF90KXJlbmRlclRpbWVNcworICAgICAgICAgICAgICB0aW1lc3RhbXA6
KHVpbnQzMl90KXRpbWVzdGFtcAorICAgICAgICAgICAgICAgcm90YXRpb246KFJUQ1ZpZGVvUm90
YXRpb24pcm90YXRpb247CisKK0BlbmQKKworbmFtZXNwYWNlIHsgIC8vIGFub255bW91cyBuYW1l
c3BhY2UKKworLy8gVGhlIHJhdGlvIGJldHdlZW4ga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9E
YXRhUmF0ZUxpbWl0cyBhbmQKKy8vIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfQXZlcmFnZUJp
dFJhdGUuIFRoZSBkYXRhIHJhdGUgbGltaXQgaXMgc2V0IGhpZ2hlcgorLy8gdGhhbiB0aGUgYXZl
cmFnZSBiaXQgcmF0ZSB0byBhdm9pZCB1bmRlcnNob290aW5nIHRoZSB0YXJnZXQuCitjb25zdCBm
bG9hdCBrTGltaXRUb0F2ZXJhZ2VCaXRSYXRlRmFjdG9yID0gMS41ZjsKKy8vIFRoZXNlIHRocmVz
aG9sZHMgZGV2aWF0ZSBmcm9tIHRoZSBkZWZhdWx0IGgyNjUgUVAgdGhyZXNob2xkcywgYXMgdGhl
eQorLy8gaGF2ZSBiZWVuIGZvdW5kIHRvIHdvcmsgYmV0dGVyIG9uIGRldmljZXMgdGhhdCBzdXBw
b3J0IFZpZGVvVG9vbGJveAorY29uc3QgaW50IGtMb3doMjY1UXBUaHJlc2hvbGQgPSAyODsKK2Nv
bnN0IGludCBrSGlnaGgyNjVRcFRocmVzaG9sZCA9IDM5OworCisvLyBTdHJ1Y3QgdGhhdCB3ZSBw
YXNzIHRvIHRoZSBlbmNvZGVyIHBlciBmcmFtZSB0byBlbmNvZGUuIFdlIHJlY2VpdmUgaXQgYWdh
aW4KKy8vIGluIHRoZSBlbmNvZGVyIGNhbGxiYWNrLgorc3RydWN0IEFQSV9BVkFJTEFCTEUoaW9z
KDExLjApKSBSVENGcmFtZUVuY29kZVBhcmFtcyB7CisgIFJUQ0ZyYW1lRW5jb2RlUGFyYW1zKFJU
Q1ZpZGVvRW5jb2RlckgyNjUqIGUsCisgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdywK
KyAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBoLAorICAgICAgICAgICAgICAgICAgICAg
ICBpbnQ2NF90IHJ0bXMsCisgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRzLAorICAg
ICAgICAgICAgICAgICAgICAgICBSVENWaWRlb1JvdGF0aW9uIHIpCisgICAgICA6IGVuY29kZXIo
ZSksCisgICAgICAgIHdpZHRoKHcpLAorICAgICAgICBoZWlnaHQoaCksCisgICAgICAgIHJlbmRl
cl90aW1lX21zKHJ0bXMpLAorICAgICAgICB0aW1lc3RhbXAodHMpLAorICAgICAgICByb3RhdGlv
bihyKSB7fQorCisgIFJUQ1ZpZGVvRW5jb2RlckgyNjUqIGVuY29kZXI7CisgIGludDMyX3Qgd2lk
dGg7CisgIGludDMyX3QgaGVpZ2h0OworICBpbnQ2NF90IHJlbmRlcl90aW1lX21zOworICB1aW50
MzJfdCB0aW1lc3RhbXA7CisgIFJUQ1ZpZGVvUm90YXRpb24gcm90YXRpb247Cit9OworCisvLyBX
ZSByZWNlaXZlIEk0MjBGcmFtZXMgYXMgaW5wdXQsIGJ1dCB3ZSBuZWVkIHRvIGZlZWQgQ1ZQaXhl
bEJ1ZmZlcnMgaW50byB0aGUKKy8vIGVuY29kZXIuIFRoaXMgcGVyZm9ybXMgdGhlIGNvcHkgYW5k
IGZvcm1hdCBjb252ZXJzaW9uLgorLy8gVE9ETyh0a2NoaW4pOiBTZWUgaWYgZW5jb2RlciB3aWxs
IGFjY2VwdCBpNDIwIGZyYW1lcyBhbmQgY29tcGFyZSBwZXJmb3JtYW5jZS4KK2Jvb2wgQ29weVZp
ZGVvRnJhbWVUb1BpeGVsQnVmZmVyKGlkPFJUQ0k0MjBCdWZmZXI+IGZyYW1lQnVmZmVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
cikgeworICBSVENfRENIRUNLKHBpeGVsQnVmZmVyKTsKKyAgUlRDX0RDSEVDS19FUShDVlBpeGVs
QnVmZmVyR2V0UGl4ZWxGb3JtYXRUeXBlKHBpeGVsQnVmZmVyKSwKKyAgICAgICAgICAgICAgICBr
Q1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlKTsKKyAgUlRDX0RD
SEVDS19FUShDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCksCisg
ICAgICAgICAgICAgICAgZnJhbWVCdWZmZXIuaGVpZ2h0KTsKKyAgUlRDX0RDSEVDS19FUShDVlBp
eGVsQnVmZmVyR2V0V2lkdGhPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKSwKKyAgICAgICAgICAgICAg
ICBmcmFtZUJ1ZmZlci53aWR0aCk7CisKKyAgQ1ZSZXR1cm4gY3ZSZXQgPSBDVlBpeGVsQnVmZmVy
TG9ja0Jhc2VBZGRyZXNzKHBpeGVsQnVmZmVyLCAwKTsKKyAgaWYgKGN2UmV0ICE9IGtDVlJldHVy
blN1Y2Nlc3MpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGxvY2sgYmFz
ZSBhZGRyZXNzOiAiIDw8IGN2UmV0OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHVpbnQ4
X3QqIGRzdFkgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigKKyAgICAgIENWUGl4ZWxCdWZm
ZXJHZXRCYXNlQWRkcmVzc09mUGxhbmUocGl4ZWxCdWZmZXIsIDApKTsKKyAgaW50IGRzdFN0cmlk
ZVkgPSBDVlBpeGVsQnVmZmVyR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKTsK
KyAgdWludDhfdCogZHN0VVYgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigKKyAgICAgIENW
UGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzc09mUGxhbmUocGl4ZWxCdWZmZXIsIDEpKTsKKyAgaW50
IGRzdFN0cmlkZVVWID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93T2ZQbGFuZShwaXhlbEJ1
ZmZlciwgMSk7CisgIC8vIENvbnZlcnQgSTQyMCB0byBOVjEyLgorICBpbnQgcmV0ID0gbGlieXV2
OjpJNDIwVG9OVjEyKAorICAgICAgZnJhbWVCdWZmZXIuZGF0YVksIGZyYW1lQnVmZmVyLnN0cmlk
ZVksIGZyYW1lQnVmZmVyLmRhdGFVLAorICAgICAgZnJhbWVCdWZmZXIuc3RyaWRlVSwgZnJhbWVC
dWZmZXIuZGF0YVYsIGZyYW1lQnVmZmVyLnN0cmlkZVYsIGRzdFksCisgICAgICBkc3RTdHJpZGVZ
LCBkc3RVViwgZHN0U3RyaWRlVVYsIGZyYW1lQnVmZmVyLndpZHRoLCBmcmFtZUJ1ZmZlci5oZWln
aHQpOworICBDVlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOwor
ICBpZiAocmV0KSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkVycm9yIGNvbnZlcnRpbmcg
STQyMCBWaWRlb0ZyYW1lIHRvIE5WMTIgOiIgPDwgcmV0OworICAgIHJldHVybiBmYWxzZTsKKyAg
fQorICByZXR1cm4gdHJ1ZTsKK30KKworQ1ZQaXhlbEJ1ZmZlclJlZiBDcmVhdGVQaXhlbEJ1ZmZl
cihDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbF9idWZmZXJfcG9vbCkgeworICBpZiAoIXBpeGVs
X2J1ZmZlcl9wb29sKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQg
cGl4ZWwgYnVmZmVyIHBvb2wuIjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICBDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsX2J1ZmZlcjsKKyAgQ1ZSZXR1cm4gcmV0ID0gQ1ZQaXhlbEJ1ZmZlclBv
b2xDcmVhdGVQaXhlbEJ1ZmZlcihudWxscHRyLCBwaXhlbF9idWZmZXJfcG9vbCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGl4ZWxfYnVmZmVy
KTsKKyAgaWYgKHJldCAhPSBrQ1ZSZXR1cm5TdWNjZXNzKSB7CisgICAgUlRDX0xPRyhMU19FUlJP
UikgPDwgIkZhaWxlZCB0byBjcmVhdGUgcGl4ZWwgYnVmZmVyOiAiIDw8IHJldDsKKyAgICAvLyBX
ZSBwcm9iYWJseSB3YW50IHRvIGRyb3AgZnJhbWVzIGhlcmUsIHNpbmNlIGZhaWx1cmUgcHJvYmFi
bHkgbWVhbnMKKyAgICAvLyB0aGF0IHRoZSBwb29sIGlzIGVtcHR5LgorICAgIHJldHVybiBudWxs
cHRyOworICB9CisgIHJldHVybiBwaXhlbF9idWZmZXI7Cit9CisKKy8vIFRoaXMgaXMgdGhlIGNh
bGxiYWNrIGZ1bmN0aW9uIHRoYXQgVmlkZW9Ub29sYm94IGNhbGxzIHdoZW4gZW5jb2RlIGlzCisv
LyBjb21wbGV0ZS4gRnJvbSBpbnNwZWN0aW9uIHRoaXMgaGFwcGVucyBvbiBpdHMgb3duIHF1ZXVl
Lgordm9pZCBjb21wcmVzc2lvbk91dHB1dENhbGxiYWNrKHZvaWQqIGVuY29kZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogcGFyYW1zLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE9TU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBWVEVuY29kZUluZm9GbGFncyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKQorICAgIEFQSV9BVkFJTEFC
TEUoaW9zKDExLjApKSB7CisgIFJUQ19DSEVDSyhwYXJhbXMpOworICBzdGQ6OnVuaXF1ZV9wdHI8
UlRDRnJhbWVFbmNvZGVQYXJhbXM+IGVuY29kZVBhcmFtcygKKyAgICAgIHJlaW50ZXJwcmV0X2Nh
c3Q8UlRDRnJhbWVFbmNvZGVQYXJhbXMqPihwYXJhbXMpKTsKKyAgUlRDX0NIRUNLKGVuY29kZVBh
cmFtcy0+ZW5jb2Rlcik7CisgIFtlbmNvZGVQYXJhbXMtPmVuY29kZXIgZnJhbWVXYXNFbmNvZGVk
OnN0YXR1cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFnczppbmZvRmxh
Z3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVCdWZmZXI6c2FtcGxlQnVmZmVy
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOmVuY29kZVBhcmFtcy0+
d2lkdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ZW5jb2RlUGFy
YW1zLT5oZWlnaHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJUaW1lTXM6ZW5j
b2RlUGFyYW1zLT5yZW5kZXJfdGltZV9tcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRpbWVzdGFtcDplbmNvZGVQYXJhbXMtPnRpbWVzdGFtcAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByb3RhdGlvbjplbmNvZGVQYXJhbXMtPnJvdGF0aW9uXTsKK30KK30gIC8vIG5h
bWVzcGFjZQorCitAaW1wbGVtZW50YXRpb24gUlRDVmlkZW9FbmNvZGVySDI2NSB7CisgIFJUQ1Zp
ZGVvQ29kZWNJbmZvKiBfY29kZWNJbmZvOworICBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpCaXRy
YXRlQWRqdXN0ZXI+IF9iaXRyYXRlQWRqdXN0ZXI7CisgIHVpbnQzMl90IF90YXJnZXRCaXRyYXRl
QnBzOworICB1aW50MzJfdCBfZW5jb2RlckJpdHJhdGVCcHM7CisgIENGU3RyaW5nUmVmIF9wcm9m
aWxlOworICBSVENWaWRlb0VuY29kZXJDYWxsYmFjayBfY2FsbGJhY2s7CisgIGludDMyX3QgX3dp
ZHRoOworICBpbnQzMl90IF9oZWlnaHQ7CisgIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIF9jb21w
cmVzc2lvblNlc3Npb247CisgIFJUQ1ZpZGVvQ29kZWNNb2RlIF9tb2RlOworICBpbnQgZnJhbWVz
TGVmdDsKKworICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBfbnYxMlNjYWxlQnVmZmVyOworfQorCisv
LyAuNSBpcyBzZXQgYXMgYSBtaW5pbnVtIHRvIHByZXZlbnQgb3ZlcmNvbXBlbnNhdGluZyBmb3Ig
bGFyZ2UgdGVtcG9yYXJ5CisvLyBvdmVyc2hvb3RzLiBXZSBkb24ndCB3YW50IHRvIGRlZ3JhZGUg
dmlkZW8gcXVhbGl0eSB0b28gYmFkbHkuCisvLyAuOTUgaXMgc2V0IHRvIHByZXZlbnQgb3NjaWxs
YXRpb25zLiBXaGVuIGEgbG93ZXIgYml0cmF0ZSBpcyBzZXQgb24gdGhlCisvLyBlbmNvZGVyIHRo
YW4gcHJldmlvdXNseSBzZXQsIGl0cyBvdXRwdXQgc2VlbXMgdG8gaGF2ZSBhIGJyaWVmIHBlcmlv
ZCBvZgorLy8gZHJhc3RpY2FsbHkgcmVkdWNlZCBiaXRyYXRlLCBzbyB3ZSB3YW50IHRvIGF2b2lk
IHRoYXQuIEluIHN0ZWFkeSBzdGF0ZQorLy8gY29uZGl0aW9ucywgMC45NSBzZWVtcyB0byBnaXZl
IHVzIGJldHRlciBvdmVyYWxsIGJpdHJhdGUgb3ZlciBsb25nIHBlcmlvZHMKKy8vIG9mIHRpbWUu
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlY0luZm86KFJUQ1ZpZGVvQ29kZWNJbmZvKilj
b2RlY0luZm8geworICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkgeworICAgIF9jb2RlY0luZm8g
PSBjb2RlY0luZm87CisgICAgX2JpdHJhdGVBZGp1c3Rlci5yZXNldChuZXcgd2VicnRjOjpCaXRy
YXRlQWRqdXN0ZXIoLjUsIC45NSkpOworICAgIFJUQ19DSEVDSyhbY29kZWNJbmZvLm5hbWUgaXNF
cXVhbFRvU3RyaW5nOkAiSDI2NSJdKTsKKyAgfQorICByZXR1cm4gc2VsZjsKK30KKworLSAodm9p
ZClkZWFsbG9jIHsKKyAgW3NlbGYgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl07Cit9CisKKy0g
KE5TSW50ZWdlcilzdGFydEVuY29kZVdpdGhTZXR0aW5nczooUlRDVmlkZW9FbmNvZGVyU2V0dGlu
Z3MqKXNldHRpbmdzCisgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mQ29yZXM6KGludClu
dW1iZXJPZkNvcmVzIHsKKyAgUlRDX0RDSEVDSyhzZXR0aW5ncyk7CisgIFJUQ19EQ0hFQ0soW3Nl
dHRpbmdzLm5hbWUgaXNFcXVhbFRvU3RyaW5nOkAiSDI2NSJdKTsKKworICBfd2lkdGggPSBzZXR0
aW5ncy53aWR0aDsKKyAgX2hlaWdodCA9IHNldHRpbmdzLmhlaWdodDsKKyAgX21vZGUgPSBzZXR0
aW5ncy5tb2RlOworCisgIC8vIFdlIGNhbiBvbmx5IHNldCBhdmVyYWdlIGJpdHJhdGUgb24gdGhl
IEhXIGVuY29kZXIuCisgIF90YXJnZXRCaXRyYXRlQnBzID0gc2V0dGluZ3Muc3RhcnRCaXRyYXRl
OworICBfYml0cmF0ZUFkanVzdGVyLT5TZXRUYXJnZXRCaXRyYXRlQnBzKF90YXJnZXRCaXRyYXRl
QnBzKTsKKworICByZXR1cm4gW3NlbGYgcmVzZXRDb21wcmVzc2lvblNlc3Npb25dOworfQorCist
IChOU0ludGVnZXIpZW5jb2RlOihSVENWaWRlb0ZyYW1lKilmcmFtZQorICAgIGNvZGVjU3BlY2lm
aWNJbmZvOihpZDxSVENDb2RlY1NwZWNpZmljSW5mbz4pY29kZWNTcGVjaWZpY0luZm8KKyAgICAg
ICAgICAgZnJhbWVUeXBlczooTlNBcnJheTxOU051bWJlcio+KilmcmFtZVR5cGVzIHsKKyAgUlRD
X0RDSEVDS19FUShmcmFtZS53aWR0aCwgX3dpZHRoKTsKKyAgUlRDX0RDSEVDS19FUShmcmFtZS5o
ZWlnaHQsIF9oZWlnaHQpOworICBpZiAoIV9jYWxsYmFjayB8fCAhX2NvbXByZXNzaW9uU2Vzc2lv
bikgeworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfVU5JTklUSUFMSVpFRDsKKyAgfQor
ICBCT09MIGlzS2V5ZnJhbWVSZXF1aXJlZCA9IE5POworCisgIC8vIEdldCBhIHBpeGVsIGJ1ZmZl
ciBmcm9tIHRoZSBwb29sIGFuZCBjb3B5IGZyYW1lIGRhdGEgb3Zlci4KKyAgQ1ZQaXhlbEJ1ZmZl
clBvb2xSZWYgcGl4ZWxCdWZmZXJQb29sID0KKyAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uR2V0
UGl4ZWxCdWZmZXJQb29sKF9jb21wcmVzc2lvblNlc3Npb24pOworCisjaWYgZGVmaW5lZChXRUJS
VENfSU9TKQorICBpZiAoIXBpeGVsQnVmZmVyUG9vbCkgeworICAgIC8vIEtpbmQgb2YgYSBoYWNr
LiBPbiBiYWNrZ3JvdW5kaW5nLCB0aGUgY29tcHJlc3Npb24gc2Vzc2lvbiBzZWVtcyB0byBnZXQK
KyAgICAvLyBpbnZhbGlkYXRlZCwgd2hpY2ggY2F1c2VzIHRoaXMgcG9vbCBjYWxsIHRvIGZhaWwg
d2hlbiB0aGUgYXBwbGljYXRpb24KKyAgICAvLyBpcyBmb3JlZ3JvdW5kZWQgYW5kIGZyYW1lcyBh
cmUgYmVpbmcgc2VudCBmb3IgZW5jb2RpbmcgYWdhaW4uCisgICAgLy8gUmVzZXR0aW5nIHRoZSBz
ZXNzaW9uIHdoZW4gdGhpcyBoYXBwZW5zIGZpeGVzIHRoZSBpc3N1ZS4KKyAgICAvLyBJbiBhZGRp
dGlvbiB3ZSByZXF1ZXN0IGEga2V5ZnJhbWUgc28gdmlkZW8gY2FuIHJlY292ZXIgcXVpY2tseS4K
KyAgICBbc2VsZiByZXNldENvbXByZXNzaW9uU2Vzc2lvbl07CisgICAgcGl4ZWxCdWZmZXJQb29s
ID0KKyAgICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25HZXRQaXhlbEJ1ZmZlclBvb2woX2NvbXBy
ZXNzaW9uU2Vzc2lvbik7CisgICAgaXNLZXlmcmFtZVJlcXVpcmVkID0gWUVTOworICAgIFJUQ19M
T0coTFNfSU5GTykgPDwgIlJlc2V0dGluZyBjb21wcmVzc2lvbiBzZXNzaW9uIGR1ZSB0byBpbnZh
bGlkIHBvb2wuIjsKKyAgfQorI2VuZGlmCisKKyAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZl
ciA9IG51bGxwdHI7CisgIGlmIChbZnJhbWUuYnVmZmVyIGlzS2luZE9mQ2xhc3M6W1JUQ0NWUGl4
ZWxCdWZmZXIgY2xhc3NdXSkgeworICAgIC8vIE5hdGl2ZSBmcmFtZSBidWZmZXIKKyAgICBSVEND
VlBpeGVsQnVmZmVyKiBydGNQaXhlbEJ1ZmZlciA9IChSVENDVlBpeGVsQnVmZmVyKilmcmFtZS5i
dWZmZXI7CisgICAgaWYgKCFbcnRjUGl4ZWxCdWZmZXIgcmVxdWlyZXNDcm9wcGluZ10pIHsKKyAg
ICAgIC8vIFRoaXMgcGl4ZWwgYnVmZmVyIG1pZ2h0IGhhdmUgYSBoaWdoZXIgcmVzb2x1dGlvbiB0
aGFuIHdoYXQgdGhlCisgICAgICAvLyBjb21wcmVzc2lvbiBzZXNzaW9uIGlzIGNvbmZpZ3VyZWQg
dG8uIFRoZSBjb21wcmVzc2lvbiBzZXNzaW9uIGNhbgorICAgICAgLy8gaGFuZGxlIHRoYXQgYW5k
IHdpbGwgb3V0cHV0IGVuY29kZWQgZnJhbWVzIGluIHRoZSBjb25maWd1cmVkCisgICAgICAvLyBy
ZXNvbHV0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhlIGlucHV0IHBpeGVsIGJ1ZmZlciByZXNvbHV0aW9u
LgorICAgICAgcGl4ZWxCdWZmZXIgPSBydGNQaXhlbEJ1ZmZlci5waXhlbEJ1ZmZlcjsKKyAgICAg
IENWQnVmZmVyUmV0YWluKHBpeGVsQnVmZmVyKTsKKyAgICB9IGVsc2UgeworICAgICAgLy8gQ3Jv
cHBpbmcgcmVxdWlyZWQsIHdlIG5lZWQgdG8gY3JvcCBhbmQgc2NhbGUgdG8gYSBuZXcgcGl4ZWwg
YnVmZmVyLgorICAgICAgcGl4ZWxCdWZmZXIgPSBDcmVhdGVQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZl
clBvb2wpOworICAgICAgaWYgKCFwaXhlbEJ1ZmZlcikgeworICAgICAgICByZXR1cm4gV0VCUlRD
X1ZJREVPX0NPREVDX0VSUk9SOworICAgICAgfQorICAgICAgaW50IGRzdFdpZHRoID0gQ1ZQaXhl
bEJ1ZmZlckdldFdpZHRoKHBpeGVsQnVmZmVyKTsKKyAgICAgIGludCBkc3RIZWlnaHQgPSBDVlBp
eGVsQnVmZmVyR2V0SGVpZ2h0KHBpeGVsQnVmZmVyKTsKKyAgICAgIGlmIChbcnRjUGl4ZWxCdWZm
ZXIgcmVxdWlyZXNTY2FsaW5nVG9XaWR0aDpkc3RXaWR0aCBoZWlnaHQ6ZHN0SGVpZ2h0XSkgewor
ICAgICAgICBpbnQgc2l6ZSA9CisgICAgICAgICAgICBbcnRjUGl4ZWxCdWZmZXIgYnVmZmVyU2l6
ZUZvckNyb3BwaW5nQW5kU2NhbGluZ1RvV2lkdGg6ZHN0V2lkdGgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDpkc3RIZWln
aHRdOworICAgICAgICBfbnYxMlNjYWxlQnVmZmVyLnJlc2l6ZShzaXplKTsKKyAgICAgIH0gZWxz
ZSB7CisgICAgICAgIF9udjEyU2NhbGVCdWZmZXIuY2xlYXIoKTsKKyAgICAgIH0KKyAgICAgIF9u
djEyU2NhbGVCdWZmZXIuc2hyaW5rX3RvX2ZpdCgpOworICAgICAgaWYgKCFbcnRjUGl4ZWxCdWZm
ZXIgY3JvcEFuZFNjYWxlVG86cGl4ZWxCdWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHdpdGhUZW1wQnVmZmVyOl9udjEyU2NhbGVCdWZmZXIuZGF0YSgpXSkgeworICAgICAgICByZXR1
cm4gV0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICAgICAgfQorICAgIH0KKyAgfQorCisgIGlm
ICghcGl4ZWxCdWZmZXIpIHsKKyAgICAvLyBXZSBkaWQgbm90IGhhdmUgYSBuYXRpdmUgZnJhbWUg
YnVmZmVyCisgICAgcGl4ZWxCdWZmZXIgPSBDcmVhdGVQaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlclBv
b2wpOworICAgIGlmICghcGl4ZWxCdWZmZXIpIHsKKyAgICAgIHJldHVybiBXRUJSVENfVklERU9f
Q09ERUNfRVJST1I7CisgICAgfQorICAgIFJUQ19EQ0hFQ0socGl4ZWxCdWZmZXIpOworICAgIGlm
ICghQ29weVZpZGVvRnJhbWVUb1BpeGVsQnVmZmVyKFtmcmFtZS5idWZmZXIgdG9JNDIwXSwgcGl4
ZWxCdWZmZXIpKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNvcHkg
ZnJhbWUgZGF0YS4iOworICAgICAgQ1ZCdWZmZXJSZWxlYXNlKHBpeGVsQnVmZmVyKTsKKyAgICAg
IHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgICAgfQorICB9CisKKyAgLy8gQ2hl
Y2sgaWYgd2UgbmVlZCBhIGtleWZyYW1lLgorICBpZiAoIWlzS2V5ZnJhbWVSZXF1aXJlZCAmJiBm
cmFtZVR5cGVzKSB7CisgICAgZm9yIChOU051bWJlciogZnJhbWVUeXBlIGluIGZyYW1lVHlwZXMp
IHsKKyAgICAgIGlmICgoUlRDRnJhbWVUeXBlKWZyYW1lVHlwZS5pbnRWYWx1ZSA9PSBSVENGcmFt
ZVR5cGVWaWRlb0ZyYW1lS2V5KSB7CisgICAgICAgIGlzS2V5ZnJhbWVSZXF1aXJlZCA9IFlFUzsK
KyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICB9CisKKyAgQ01UaW1lIHByZXNlbnRh
dGlvblRpbWVTdGFtcCA9CisgICAgICBDTVRpbWVNYWtlKGZyYW1lLnRpbWVTdGFtcE5zIC8gcnRj
OjprTnVtTmFub3NlY3NQZXJNaWxsaXNlYywgMTAwMCk7CisgIENGRGljdGlvbmFyeVJlZiBmcmFt
ZVByb3BlcnRpZXMgPSBudWxscHRyOworICBpZiAoaXNLZXlmcmFtZVJlcXVpcmVkKSB7CisgICAg
Q0ZUeXBlUmVmIGtleXNbXSA9IHtrVlRFbmNvZGVGcmFtZU9wdGlvbktleV9Gb3JjZUtleUZyYW1l
fTsKKyAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7a0NGQm9vbGVhblRydWV9OworICAgIGZyYW1l
UHJvcGVydGllcyA9IENyZWF0ZUNGVHlwZURpY3Rpb25hcnkoa2V5cywgdmFsdWVzLCAxKTsKKyAg
fQorCisgIHN0ZDo6dW5pcXVlX3B0cjxSVENGcmFtZUVuY29kZVBhcmFtcz4gZW5jb2RlUGFyYW1z
OworICBlbmNvZGVQYXJhbXMucmVzZXQobmV3IFJUQ0ZyYW1lRW5jb2RlUGFyYW1zKAorICAgICAg
c2VsZiwgX3dpZHRoLCBfaGVpZ2h0LCBmcmFtZS50aW1lU3RhbXBOcyAvIHJ0Yzo6a051bU5hbm9z
ZWNzUGVyTWlsbGlzZWMsCisgICAgICBmcmFtZS50aW1lU3RhbXAsIGZyYW1lLnJvdGF0aW9uKSk7
CisKKyAgLy8gVXBkYXRlIHRoZSBiaXRyYXRlIGlmIG5lZWRlZC4KKyAgW3NlbGYgc2V0Qml0cmF0
ZUJwczpfYml0cmF0ZUFkanVzdGVyLT5HZXRBZGp1c3RlZEJpdHJhdGVCcHMoKV07CisKKyAgT1NT
dGF0dXMgc3RhdHVzID0gVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSgKKyAgICAgIF9j
b21wcmVzc2lvblNlc3Npb24sIHBpeGVsQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGtD
TVRpbWVJbnZhbGlkLAorICAgICAgZnJhbWVQcm9wZXJ0aWVzLCBlbmNvZGVQYXJhbXMucmVsZWFz
ZSgpLCBudWxscHRyKTsKKyAgaWYgKGZyYW1lUHJvcGVydGllcykgeworICAgIENGUmVsZWFzZShm
cmFtZVByb3BlcnRpZXMpOworICB9CisgIGlmIChwaXhlbEJ1ZmZlcikgeworICAgIENWQnVmZmVy
UmVsZWFzZShwaXhlbEJ1ZmZlcik7CisgIH0KKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAg
IFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZW5jb2RlIGZyYW1lIHdpdGggY29kZTog
IiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQor
ICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistICh2b2lkKXNldENhbGxiYWNr
OihSVENWaWRlb0VuY29kZXJDYWxsYmFjayljYWxsYmFjayB7CisgIF9jYWxsYmFjayA9IGNhbGxi
YWNrOworfQorCistIChpbnQpc2V0Qml0cmF0ZToodWludDMyX3QpYml0cmF0ZUtiaXQgZnJhbWVy
YXRlOih1aW50MzJfdClmcmFtZXJhdGUgeworICBfdGFyZ2V0Qml0cmF0ZUJwcyA9IDEwMDAgKiBi
aXRyYXRlS2JpdDsKKyAgX2JpdHJhdGVBZGp1c3Rlci0+U2V0VGFyZ2V0Qml0cmF0ZUJwcyhfdGFy
Z2V0Qml0cmF0ZUJwcyk7CisgIFtzZWxmIHNldEJpdHJhdGVCcHM6X2JpdHJhdGVBZGp1c3Rlci0+
R2V0QWRqdXN0ZWRCaXRyYXRlQnBzKCldOworICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09L
OworfQorCisjcHJhZ21hIG1hcmsgLSBQcml2YXRlCisKKy0gKE5TSW50ZWdlcilyZWxlYXNlRW5j
b2RlciB7CisgIC8vIE5lZWQgdG8gZGVzdHJveSBzbyB0aGF0IHRoZSBzZXNzaW9uIGlzIGludmFs
aWRhdGVkIGFuZCB3b24ndCB1c2UgdGhlCisgIC8vIGNhbGxiYWNrIGFueW1vcmUuIERvIG5vdCBy
ZW1vdmUgY2FsbGJhY2sgdW50aWwgdGhlIHNlc3Npb24gaXMgaW52YWxpZGF0ZWQKKyAgLy8gc2lu
Y2UgYXN5bmMgZW5jb2RlciBjYWxsYmFja3MgY2FuIG9jY3VyIHVudGlsIGludmFsaWRhdGlvbi4K
KyAgW3NlbGYgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl07CisgIF9jYWxsYmFjayA9IG51bGxw
dHI7CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKy0gKGludClyZXNldENv
bXByZXNzaW9uU2Vzc2lvbiB7CisgIFtzZWxmIGRlc3Ryb3lDb21wcmVzc2lvblNlc3Npb25dOwor
CisgIC8vIFNldCBzb3VyY2UgaW1hZ2UgYnVmZmVyIGF0dHJpYnV0ZXMuIFRoZXNlIGF0dHJpYnV0
ZXMgd2lsbCBiZSBwcmVzZW50IG9uCisgIC8vIGJ1ZmZlcnMgcmV0cmlldmVkIGZyb20gdGhlIGVu
Y29kZXIncyBwaXhlbCBidWZmZXIgcG9vbC4KKyAgY29uc3Qgc2l6ZV90IGF0dHJpYnV0ZXNTaXpl
ID0gMzsKKyAgQ0ZUeXBlUmVmIGtleXNbYXR0cmlidXRlc1NpemVdID0geworI2lmIGRlZmluZWQo
V0VCUlRDX0lPUykKKyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTEVTQ29tcGF0aWJpbGl0eUtleSwK
KyNlbGlmIGRlZmluZWQoV0VCUlRDX01BQykKKyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTENvbXBh
dGliaWxpdHlLZXksCisjZW5kaWYKKyAgICBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFjZVByb3BlcnRp
ZXNLZXksCisgICAga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkKKyAgfTsKKyAgQ0ZE
aWN0aW9uYXJ5UmVmIGlvU3VyZmFjZVZhbHVlID0gQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShudWxs
cHRyLCBudWxscHRyLCAwKTsKKyAgaW50NjRfdCBudjEydHlwZSA9IGtDVlBpeGVsRm9ybWF0VHlw
ZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2U7CisgIENGTnVtYmVyUmVmIHBpeGVsRm9ybWF0
ID0KKyAgICAgIENGTnVtYmVyQ3JlYXRlKG51bGxwdHIsIGtDRk51bWJlckxvbmdUeXBlLCAmbnYx
MnR5cGUpOworICBDRlR5cGVSZWYgdmFsdWVzW2F0dHJpYnV0ZXNTaXplXSA9IHtrQ0ZCb29sZWFu
VHJ1ZSwgaW9TdXJmYWNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBpeGVsRm9ybWF0fTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUF0dHJpYnV0ZXMgPQor
ICAgICAgQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNTaXpl
KTsKKyAgaWYgKGlvU3VyZmFjZVZhbHVlKSB7CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZhbHVl
KTsKKyAgICBpb1N1cmZhY2VWYWx1ZSA9IG51bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9ybWF0
KSB7CisgICAgQ0ZSZWxlYXNlKHBpeGVsRm9ybWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51bGxw
dHI7CisgIH0KKyAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBlbmNvZGVyX3NwZWNzID0gQ0ZEaWN0
aW9uYXJ5Q3JlYXRlTXV0YWJsZShudWxscHRyLCAyLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxs
QmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKTsKKyNpZiBkZWZpbmVkKFdF
QlJUQ19NQUMpICYmICFkZWZpbmVkKFdFQlJUQ19JT1MpCisgIENGRGljdGlvbmFyeVNldFZhbHVl
KGVuY29kZXJfc3BlY3MsIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdh
cmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rlciwga0NGQm9vbGVhblRydWUpOworI2VuZGlmCisjaWYg
SEFWRV9WVEJfUkVRVUlSRURMT1dMQVRFTkNZCisgIC8vIFdlIHdpbGwgd2FudCB0byBlbmFibGUg
dGhpcyBwcm9wZXJ0eSBvbmNlIHdvcmtpbmcuCisgIC8vIENGRGljdGlvbmFyeVNldFZhbHVlKGVu
Y29kZXJfc3BlY3MsIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fUmVxdWlyZWRMb3dMYXRl
bmN5LCBrQ0ZCb29sZWFuVHJ1ZSk7CisjZW5kaWYKKyAgT1NTdGF0dXMgc3RhdHVzID0gVlRDb21w
cmVzc2lvblNlc3Npb25DcmVhdGUoCisgICAgICBudWxscHRyLCAgLy8gdXNlIGRlZmF1bHQgYWxs
b2NhdG9yCisgICAgICBfd2lkdGgsIF9oZWlnaHQsIGtDTVZpZGVvQ29kZWNUeXBlX0hFVkMsCisg
ICAgICBlbmNvZGVyX3NwZWNzLCAgLy8gdXNlIGhhcmR3YXJlIGFjY2VsZXJhdGVkIGVuY29kZXIg
aWYgYXZhaWxhYmxlCisgICAgICBzb3VyY2VBdHRyaWJ1dGVzLAorICAgICAgbnVsbHB0ciwgIC8v
IHVzZSBkZWZhdWx0IGNvbXByZXNzZWQgZGF0YSBhbGxvY2F0b3IKKyAgICAgIGNvbXByZXNzaW9u
T3V0cHV0Q2FsbGJhY2ssIG51bGxwdHIsICZfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgaWYgKHNv
dXJjZUF0dHJpYnV0ZXMpIHsKKyAgICBDRlJlbGVhc2Uoc291cmNlQXR0cmlidXRlcyk7CisgICAg
c291cmNlQXR0cmlidXRlcyA9IG51bGxwdHI7CisgIH0KKyAgaWYgKGVuY29kZXJfc3BlY3MpIHsK
KyAgICBDRlJlbGVhc2UoZW5jb2Rlcl9zcGVjcyk7CisgICAgZW5jb2Rlcl9zcGVjcyA9IG51bGxw
dHI7CisgIH0KKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1Ip
IDw8ICJGYWlsZWQgdG8gY3JlYXRlIGNvbXByZXNzaW9uIHNlc3Npb246ICIgPDwgc3RhdHVzOwor
ICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyNpZiBkZWZpbmVkKFdF
QlJUQ19NQUMpICYmICFkZWZpbmVkKFdFQlJUQ19JT1MpCisgIENGQm9vbGVhblJlZiBod2FjY2xf
ZW5hYmxlZCA9IG51bGxwdHI7CisgIHN0YXR1cyA9IFZUU2Vzc2lvbkNvcHlQcm9wZXJ0eSgKKyAg
ICAgIF9jb21wcmVzc2lvblNlc3Npb24sCisgICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5
X1VzaW5nSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgbnVsbHB0ciwKKyAgICAgICZo
d2FjY2xfZW5hYmxlZCk7CisgIGlmIChzdGF0dXMgPT0gbm9FcnIgJiYgKENGQm9vbGVhbkdldFZh
bHVlKGh3YWNjbF9lbmFibGVkKSkpIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJDb21wcmVz
c2lvbiBzZXNzaW9uIGNyZWF0ZWQgd2l0aCBodyBhY2NsIGVuYWJsZWQiOworICB9IGVsc2Ugewor
ICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIkNvbXByZXNzaW9uIHNlc3Npb24gY3JlYXRlZCB3aXRo
IGh3IGFjY2wgZGlzYWJsZWQiOworICB9CisjZW5kaWYKKyAgW3NlbGYgY29uZmlndXJlQ29tcHJl
c3Npb25TZXNzaW9uXTsKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKworLSAo
dm9pZCljb25maWd1cmVDb21wcmVzc2lvblNlc3Npb24geworICBSVENfRENIRUNLKF9jb21wcmVz
c2lvblNlc3Npb24pOworICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNzaW9u
LCBudWxscHRyLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICBmYWxzZSk7CisgIC8vIFNldFZUU2Vzc2lvblByb3BlcnR5KF9jb21wcmVz
c2lvblNlc3Npb24sCisgIC8vIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUHJvZmlsZUxldmVs
LCBfcHJvZmlsZSk7CisgIFNldFZUU2Vzc2lvblByb3BlcnR5KF9jb21wcmVzc2lvblNlc3Npb24s
IG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgIGtWVENvbXByZXNzaW9uUHJvcGVydHlL
ZXlfQWxsb3dGcmFtZVJlb3JkZXJpbmcsIGZhbHNlKTsKKyAgW3NlbGYgc2V0RW5jb2RlckJpdHJh
dGVCcHM6X3RhcmdldEJpdHJhdGVCcHNdOworCisgIC8vIFNldCBhIHJlbGF0aXZlbHkgbGFyZ2Ug
dmFsdWUgZm9yIGtleWZyYW1lIGVtaXNzaW9uICg3MjAwIGZyYW1lcyBvciA0IG1pbnV0ZXMpLgor
ICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNzaW9uLCBudWxscHRyLAorICAg
ICAgICAgICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1l
SW50ZXJ2YWwsIDcyMDApOworICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNz
aW9uLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgMjQwKTsKKyAgT1NTdGF0dXMgc3RhdHVzID0KKyAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9u
UHJlcGFyZVRvRW5jb2RlRnJhbWVzKF9jb21wcmVzc2lvblNlc3Npb24pOworICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkNvbXByZXNzaW9uIHNlc3Np
b24gZmFpbGVkIHRvIHByZXBhcmUgZW5jb2RlIGZyYW1lcy4iOworICB9Cit9CisKKy0gKHZvaWQp
ZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIGlmIChfY29tcHJlc3Npb25TZXNzaW9uKSB7
CisgICAgVlRDb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKF9jb21wcmVzc2lvblNlc3Npb24p
OworICAgIENGUmVsZWFzZShfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBfY29tcHJlc3Npb25T
ZXNzaW9uID0gbnVsbHB0cjsKKyAgfQorfQorCistIChOU1N0cmluZyopaW1wbGVtZW50YXRpb25O
YW1lIHsKKyAgcmV0dXJuIEAiVmlkZW9Ub29sYm94IjsKK30KKworLSAodm9pZClzZXRCaXRyYXRl
QnBzOih1aW50MzJfdCliaXRyYXRlQnBzIHsKKyAgaWYgKF9lbmNvZGVyQml0cmF0ZUJwcyAhPSBi
aXRyYXRlQnBzKSB7CisgICAgW3NlbGYgc2V0RW5jb2RlckJpdHJhdGVCcHM6Yml0cmF0ZUJwc107
CisgIH0KK30KKworLSAodm9pZClzZXRFbmNvZGVyQml0cmF0ZUJwczoodWludDMyX3QpYml0cmF0
ZUJwcyB7CisgIGlmIChfY29tcHJlc3Npb25TZXNzaW9uKSB7CisgICAgU2V0VlRTZXNzaW9uUHJv
cGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwgbnVsbHB0ciwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZSwgYml0cmF0ZUJw
cyk7CisKKyAgICAvLyBUT0RPKHRrY2hpbik6IEFkZCBhIGhlbHBlciBtZXRob2QgdG8gc2V0IGFy
cmF5IHZhbHVlLgorICAgIGludDY0X3QgZGF0YUxpbWl0Qnl0ZXNQZXJTZWNvbmRWYWx1ZSA9Cisg
ICAgICAgIHN0YXRpY19jYXN0PGludDY0X3Q+KGJpdHJhdGVCcHMgKiBrTGltaXRUb0F2ZXJhZ2VC
aXRSYXRlRmFjdG9yIC8gOCk7CisgICAgQ0ZOdW1iZXJSZWYgYnl0ZXNQZXJTZWNvbmQgPQorICAg
ICAgICBDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJTSW50NjRU
eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAmZGF0YUxpbWl0Qnl0ZXNQZXJTZWNvbmRWYWx1
ZSk7CisgICAgaW50NjRfdCBvbmVTZWNvbmRWYWx1ZSA9IDE7CisgICAgQ0ZOdW1iZXJSZWYgb25l
U2Vjb25kID0gQ0ZOdW1iZXJDcmVhdGUoCisgICAgICAgIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtD
Rk51bWJlclNJbnQ2NFR5cGUsICZvbmVTZWNvbmRWYWx1ZSk7CisgICAgY29uc3Qgdm9pZCogbnVt
c1syXSA9IHtieXRlc1BlclNlY29uZCwgb25lU2Vjb25kfTsKKyAgICBDRkFycmF5UmVmIGRhdGFS
YXRlTGltaXRzID0KKyAgICAgICAgQ0ZBcnJheUNyZWF0ZShudWxscHRyLCBudW1zLCAyLCAma0NG
VHlwZUFycmF5Q2FsbEJhY2tzKTsKKyAgICBPU1N0YXR1cyBzdGF0dXMgPSBWVFNlc3Npb25TZXRQ
cm9wZXJ0eSgKKyAgICAgICAgX2NvbXByZXNzaW9uU2Vzc2lvbiwga1ZUQ29tcHJlc3Npb25Qcm9w
ZXJ0eUtleV9EYXRhUmF0ZUxpbWl0cywKKyAgICAgICAgZGF0YVJhdGVMaW1pdHMpOworICAgIGlm
IChieXRlc1BlclNlY29uZCkgeworICAgICAgQ0ZSZWxlYXNlKGJ5dGVzUGVyU2Vjb25kKTsKKyAg
ICB9CisgICAgaWYgKG9uZVNlY29uZCkgeworICAgICAgQ0ZSZWxlYXNlKG9uZVNlY29uZCk7Cisg
ICAgfQorICAgIGlmIChkYXRhUmF0ZUxpbWl0cykgeworICAgICAgQ0ZSZWxlYXNlKGRhdGFSYXRl
TGltaXRzKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgICAgUlRDX0xP
RyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBzZXQgZGF0YSByYXRlIGxpbWl0IjsKKyAgICB9CisK
KyAgICBfZW5jb2RlckJpdHJhdGVCcHMgPSBiaXRyYXRlQnBzOworICB9Cit9CisKKy0gKHZvaWQp
ZnJhbWVXYXNFbmNvZGVkOihPU1N0YXR1cylzdGF0dXMKKyAgICAgICAgICAgICAgICAgIGZsYWdz
OihWVEVuY29kZUluZm9GbGFncylpbmZvRmxhZ3MKKyAgICAgICAgICAgc2FtcGxlQnVmZmVyOihD
TVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKKyAgICAgICAgICAgICAgICAgIHdpZHRoOihp
bnQzMl90KXdpZHRoCisgICAgICAgICAgICAgICAgIGhlaWdodDooaW50MzJfdCloZWlnaHQKKyAg
ICAgICAgICAgcmVuZGVyVGltZU1zOihpbnQ2NF90KXJlbmRlclRpbWVNcworICAgICAgICAgICAg
ICB0aW1lc3RhbXA6KHVpbnQzMl90KXRpbWVzdGFtcAorICAgICAgICAgICAgICAgcm90YXRpb246
KFJUQ1ZpZGVvUm90YXRpb24pcm90YXRpb24geworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7Cisg
ICAgUlRDX0xPRyhMU19FUlJPUikgPDwgImgyNjUgZW5jb2RlIGZhaWxlZC4iOworICAgIHJldHVy
bjsKKyAgfQorICBpZiAoaW5mb0ZsYWdzICYga1ZURW5jb2RlSW5mb19GcmFtZURyb3BwZWQpIHsK
KyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJoMjY1IGVuY29kZXIgZHJvcHBlZCBhIGZyYW1lLiI7
CisgICAgcmV0dXJuOworICB9CisKKyAgQk9PTCBpc0tleWZyYW1lID0gTk87CisgIENGQXJyYXlS
ZWYgYXR0YWNobWVudHMgPQorICAgICAgQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50
c0FycmF5KHNhbXBsZUJ1ZmZlciwgMCk7CisgIGlmIChhdHRhY2htZW50cyAhPSBudWxscHRyICYm
IENGQXJyYXlHZXRDb3VudChhdHRhY2htZW50cykpIHsKKyAgICBDRkRpY3Rpb25hcnlSZWYgYXR0
YWNobWVudCA9CisgICAgICAgIHN0YXRpY19jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZBcnJheUdl
dFZhbHVlQXRJbmRleChhdHRhY2htZW50cywgMCkpOworICAgIGlzS2V5ZnJhbWUgPQorICAgICAg
ICAhQ0ZEaWN0aW9uYXJ5Q29udGFpbnNLZXkoYXR0YWNobWVudCwga0NNU2FtcGxlQXR0YWNobWVu
dEtleV9Ob3RTeW5jKTsKKyAgfQorCisgIGlmIChpc0tleWZyYW1lKSB7CisgICAgUlRDX0xPRyhM
U19JTkZPKSA8PCAiR2VuZXJhdGVkIGtleWZyYW1lIjsKKyAgfQorCisgIC8vIENvbnZlcnQgdGhl
IHNhbXBsZSBidWZmZXIgaW50byBhIGJ1ZmZlciBzdWl0YWJsZSBmb3IgUlRQIHBhY2tldGl6YXRp
b24uCisgIC8vIFRPRE8odGtjaGluKTogQWxsb2NhdGUgYnVmZmVycyB0aHJvdWdoIGEgcG9vbC4K
KyAgc3RkOjp1bmlxdWVfcHRyPHJ0Yzo6QnVmZmVyPiBidWZmZXIobmV3IHJ0Yzo6QnVmZmVyKCkp
OworICBSVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyKiBoZWFkZXI7CisgIHsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8d2VicnRjOjpSVFBGcmFnbWVudGF0aW9uSGVhZGVyPiBoZWFkZXJfY3BwOworICAg
IGJvb2wgcmVzdWx0ID0gSDI2NUNNU2FtcGxlQnVmZmVyVG9Bbm5leEJCdWZmZXIoc2FtcGxlQnVm
ZmVyLCBpc0tleWZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnVmZmVyLmdldCgpLCAmaGVhZGVyX2NwcCk7CisgICAgaGVhZGVyID0gW1tS
VENSdHBGcmFnbWVudGF0aW9uSGVhZGVyIGFsbG9jXQorICAgICAgICBpbml0V2l0aE5hdGl2ZUZy
YWdtZW50YXRpb25IZWFkZXI6aGVhZGVyX2NwcC5nZXQoKV07CisgICAgaWYgKCFyZXN1bHQpIHsK
KyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY29udmVydCBzYW1wbGUgYnVm
ZmVyLiI7CisgICAgICByZXR1cm47CisgICAgfQorICB9CisKKyAgUlRDRW5jb2RlZEltYWdlKiBm
cmFtZSA9IFtbUlRDRW5jb2RlZEltYWdlIGFsbG9jXSBpbml0XTsKKyAgZnJhbWUuYnVmZmVyID0g
W05TRGF0YSBkYXRhV2l0aEJ5dGVzTm9Db3B5OmJ1ZmZlci0+ZGF0YSgpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aDpidWZmZXItPnNpemUoKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmcmVlV2hlbkRvbmU6Tk9dOworICBmcmFtZS5lbmNvZGVk
V2lkdGggPSB3aWR0aDsKKyAgZnJhbWUuZW5jb2RlZEhlaWdodCA9IGhlaWdodDsKKyAgZnJhbWUu
Y29tcGxldGVGcmFtZSA9IFlFUzsKKyAgZnJhbWUuZnJhbWVUeXBlID0KKyAgICAgIGlzS2V5ZnJh
bWUgPyBSVENGcmFtZVR5cGVWaWRlb0ZyYW1lS2V5IDogUlRDRnJhbWVUeXBlVmlkZW9GcmFtZURl
bHRhOworICBmcmFtZS5jYXB0dXJlVGltZU1zID0gcmVuZGVyVGltZU1zOworICBmcmFtZS50aW1l
U3RhbXAgPSB0aW1lc3RhbXA7CisgIGZyYW1lLnJvdGF0aW9uID0gcm90YXRpb247CisgIGZyYW1l
LmNvbnRlbnRUeXBlID0gKF9tb2RlID09IFJUQ1ZpZGVvQ29kZWNNb2RlU2NyZWVuc2hhcmluZykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgPyBSVENWaWRlb0NvbnRlbnRUeXBlU2NyZWVuc2hh
cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBSVENWaWRlb0NvbnRlbnRUeXBlVW5zcGVj
aWZpZWQ7CisgIGZyYW1lLmZsYWdzID0gd2VicnRjOjpWaWRlb1NlbmRUaW1pbmc6OmtJbnZhbGlk
OworCisgIC8vIEZJWE1FOiBRUCBpcyBpZ25vcmVkIGJlY2F1c2UgdGhlcmUgaXMgbm8gSC4yNjUg
Yml0c3RyZWFtIHBhcnNlci4KKworICBCT09MIHJlcyA9IF9jYWxsYmFjayhmcmFtZSwgW1tSVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUgYWxsb2NdIGluaXRdLCBoZWFkZXIpOworICBpZiAoIXJlcykg
eworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJFbmNvZGUgY2FsbGJhY2sgZmFpbGVkLiI7Cisg
ICAgcmV0dXJuOworICB9CisgIF9iaXRyYXRlQWRqdXN0ZXItPlVwZGF0ZShmcmFtZS5idWZmZXIu
bGVuZ3RoKTsKK30KKworLSAoUlRDVmlkZW9FbmNvZGVyUXBUaHJlc2hvbGRzKilzY2FsaW5nU2V0
dGluZ3MgeworICByZXR1cm4gW1tSVENWaWRlb0VuY29kZXJRcFRocmVzaG9sZHMgYWxsb2NdCisg
ICAgICBpbml0V2l0aFRocmVzaG9sZHNMb3c6a0xvd2gyNjVRcFRocmVzaG9sZAorICAgICAgICAg
ICAgICAgICAgICAgICBoaWdoOmtIaWdoaDI2NVFwVGhyZXNob2xkXTsKK30KKworQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvY29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jld3JpdGVyLmNjIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9uYWx1X3Jld3JpdGVyLmNjCmluZGV4IGRjMjU4ZDYwNjRhMGZlZWEwMDZlZTI5ODJlMDAz
N2IwNTViYmEzNzMuLmRkZjczNDYwNTExNWJjN2I3NGYxMjgyOWE0Y2RlY2NmMzQ0MGZjZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuY2MKQEAgLTI0OCw2ICsyNDgsMjI5IEBAIGJvb2wgSDI2
NEFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZl
ciwKICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citib29sIEgyNjVD
TVNhbXBsZUJ1ZmZlclRvQW5uZXhCQnVmZmVyKAorICAgIENNU2FtcGxlQnVmZmVyUmVmIGh2Y2Nf
c2FtcGxlX2J1ZmZlciwKKyAgICBib29sIGlzX2tleWZyYW1lLAorICAgIHJ0Yzo6QnVmZmVyKiBh
bm5leGJfYnVmZmVyLAorICAgIHN0ZDo6dW5pcXVlX3B0cjxSVFBGcmFnbWVudGF0aW9uSGVhZGVy
PiAqb3V0X2hlYWRlcikgeworICBSVENfRENIRUNLKGh2Y2Nfc2FtcGxlX2J1ZmZlcik7CisgIFJU
Q19EQ0hFQ0sob3V0X2hlYWRlcik7CisgIG91dF9oZWFkZXItPnJlc2V0KG51bGxwdHIpOworCisg
IC8vIEdldCBmb3JtYXQgZGVzY3JpcHRpb24gZnJvbSB0aGUgc2FtcGxlIGJ1ZmZlci4KKyAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2NyaXB0aW9uID0KKyAgICAgIENNU2FtcGxlQnVm
ZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oaHZjY19zYW1wbGVfYnVmZmVyKTsKKyAgaWYgKGRlc2Ny
aXB0aW9uID09IG51bGxwdHIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRv
IGdldCBzYW1wbGUgYnVmZmVyJ3MgZGVzY3JpcHRpb24uIjsKKyAgICByZXR1cm4gZmFsc2U7Cisg
IH0KKworICAvLyBHZXQgcGFyYW1ldGVyIHNldCBpbmZvcm1hdGlvbi4KKyAgaW50IG5hbHVfaGVh
ZGVyX3NpemUgPSAwOworICBzaXplX3QgcGFyYW1fc2V0X2NvdW50ID0gMDsKKyAgT1NTdGF0dXMg
c3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0SEVWQ1BhcmFtZXRlclNldEF0SW5k
ZXgoCisgICAgICBkZXNjcmlwdGlvbiwgMCwgbnVsbHB0ciwgbnVsbHB0ciwgJnBhcmFtX3NldF9j
b3VudCwgJm5hbHVfaGVhZGVyX3NpemUpOworICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAg
UlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgcGFyYW1ldGVyIHNldC4iOworICAg
IHJldHVybiBmYWxzZTsKKyAgfQorICBSVENfQ0hFQ0tfRVEobmFsdV9oZWFkZXJfc2l6ZSwga0F2
Y2NIZWFkZXJCeXRlU2l6ZSk7CisgIFJUQ19EQ0hFQ0tfRVEocGFyYW1fc2V0X2NvdW50LCAzKTsK
KworICAvLyBUcnVuY2F0ZSBhbnkgcHJldmlvdXMgZGF0YSBpbiB0aGUgYnVmZmVyIHdpdGhvdXQg
Y2hhbmdpbmcgaXRzIGNhcGFjaXR5LgorICBhbm5leGJfYnVmZmVyLT5TZXRTaXplKDApOworCisg
IHNpemVfdCBuYWx1X29mZnNldCA9IDA7CisgIHN0ZDo6dmVjdG9yPHNpemVfdD4gZnJhZ19vZmZz
ZXRzOworICBzdGQ6OnZlY3RvcjxzaXplX3Q+IGZyYWdfbGVuZ3RoczsKKworICAvLyBQbGFjZSBh
bGwgcGFyYW1ldGVyIHNldHMgYXQgdGhlIGZyb250IG9mIGJ1ZmZlci4KKyAgaWYgKGlzX2tleWZy
YW1lKSB7CisgICAgc2l6ZV90IHBhcmFtX3NldF9zaXplID0gMDsKKyAgICBjb25zdCB1aW50OF90
KiBwYXJhbV9zZXQgPSBudWxscHRyOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1f
c2V0X2NvdW50OyArK2kpIHsKKyAgICAgIHN0YXR1cyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bkdldEhFVkNQYXJhbWV0ZXJTZXRBdEluZGV4KAorICAgICAgICAgIGRlc2NyaXB0aW9uLCBpLCAm
cGFyYW1fc2V0LCAmcGFyYW1fc2V0X3NpemUsIG51bGxwdHIsIG51bGxwdHIpOworICAgICAgaWYg
KHN0YXR1cyAhPSBub0VycikgeworICAgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVk
IHRvIGdldCBwYXJhbWV0ZXIgc2V0LiI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0K
KyAgICAgIC8vIFVwZGF0ZSBidWZmZXIuCisgICAgICBhbm5leGJfYnVmZmVyLT5BcHBlbmREYXRh
KGtBbm5leEJIZWFkZXJCeXRlcywgc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykpOworICAgICAg
YW5uZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihw
YXJhbV9zZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbV9zZXRfc2l6
ZSk7CisgICAgICAvLyBVcGRhdGUgZnJhZ21lbnRhdGlvbi4KKyAgICAgIGZyYWdfb2Zmc2V0cy5w
dXNoX2JhY2sobmFsdV9vZmZzZXQgKyBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAg
ICBmcmFnX2xlbmd0aHMucHVzaF9iYWNrKHBhcmFtX3NldF9zaXplKTsKKyAgICAgIG5hbHVfb2Zm
c2V0ICs9IHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpICsgcGFyYW1fc2V0X3NpemU7CisgICAg
fQorICB9CisKKyAgLy8gR2V0IGJsb2NrIGJ1ZmZlciBmcm9tIHRoZSBzYW1wbGUgYnVmZmVyLgor
ICBDTUJsb2NrQnVmZmVyUmVmIGJsb2NrX2J1ZmZlciA9CisgICAgICBDTVNhbXBsZUJ1ZmZlckdl
dERhdGFCdWZmZXIoaHZjY19zYW1wbGVfYnVmZmVyKTsKKyAgaWYgKGJsb2NrX2J1ZmZlciA9PSBu
dWxscHRyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBnZXQgc2FtcGxl
IGJ1ZmZlcidzIGJsb2NrIGJ1ZmZlci4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBDTUJs
b2NrQnVmZmVyUmVmIGNvbnRpZ3VvdXNfYnVmZmVyID0gbnVsbHB0cjsKKyAgLy8gTWFrZSBzdXJl
IGJsb2NrIGJ1ZmZlciBpcyBjb250aWd1b3VzLgorICBpZiAoIUNNQmxvY2tCdWZmZXJJc1Jhbmdl
Q29udGlndW91cyhibG9ja19idWZmZXIsIDAsIDApKSB7CisgICAgc3RhdHVzID0gQ01CbG9ja0J1
ZmZlckNyZWF0ZUNvbnRpZ3VvdXMoCisgICAgICAgIG51bGxwdHIsIGJsb2NrX2J1ZmZlciwgbnVs
bHB0ciwgbnVsbHB0ciwgMCwgMCwgMCwgJmNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICBpZiAoc3Rh
dHVzICE9IG5vRXJyKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGZs
YXR0ZW4gbm9uLWNvbnRpZ3VvdXMgYmxvY2sgYnVmZmVyOiAiCisgICAgICAgICAgICAgICAgICAg
ICAgICA8PCBzdGF0dXM7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICB9IGVsc2Ugewor
ICAgIGNvbnRpZ3VvdXNfYnVmZmVyID0gYmxvY2tfYnVmZmVyOworICAgIC8vIFJldGFpbiB0byBt
YWtlIGNsZWFudXAgZWFzaWVyLgorICAgIENGUmV0YWluKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAg
ICBibG9ja19idWZmZXIgPSBudWxscHRyOworICB9CisKKyAgLy8gTm93IGNvcHkgdGhlIGFjdHVh
bCBkYXRhLgorICBjaGFyKiBkYXRhX3B0ciA9IG51bGxwdHI7CisgIHNpemVfdCBibG9ja19idWZm
ZXJfc2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRhTGVuZ3RoKGNvbnRpZ3VvdXNfYnVmZmVyKTsK
KyAgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckdldERhdGFQb2ludGVyKGNvbnRpZ3VvdXNfYnVmZmVy
LCAwLCBudWxscHRyLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJmRhdGFfcHRyKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19MT0co
TFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IGJsb2NrIGJ1ZmZlciBkYXRhLiI7CisgICAgQ0ZS
ZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgc2l6
ZV90IGJ5dGVzX3JlbWFpbmluZyA9IGJsb2NrX2J1ZmZlcl9zaXplOworICB3aGlsZSAoYnl0ZXNf
cmVtYWluaW5nID4gMCkgeworICAgIC8vIFRoZSBzaXplIHR5cGUgaGVyZSBtdXN0IG1hdGNoIHxu
YWx1X2hlYWRlcl9zaXplfCwgd2UgZXhwZWN0IDQgYnl0ZXMuCisgICAgLy8gUmVhZCB0aGUgbGVu
Z3RoIG9mIHRoZSBuZXh0IHBhY2tldCBvZiBkYXRhLiBNdXN0IGNvbnZlcnQgZnJvbSBiaWcgZW5k
aWFuCisgICAgLy8gdG8gaG9zdCBlbmRpYW4uCisgICAgUlRDX0RDSEVDS19HRShieXRlc19yZW1h
aW5pbmcsIChzaXplX3QpbmFsdV9oZWFkZXJfc2l6ZSk7CisgICAgdWludDMyX3QqIHVpbnQzMl9k
YXRhX3B0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihkYXRhX3B0cik7CisgICAgdWlu
dDMyX3QgcGFja2V0X3NpemUgPSBDRlN3YXBJbnQzMkJpZ1RvSG9zdCgqdWludDMyX2RhdGFfcHRy
KTsKKyAgICAvLyBVcGRhdGUgYnVmZmVyLgorICAgIGFubmV4Yl9idWZmZXItPkFwcGVuZERhdGEo
a0FubmV4QkhlYWRlckJ5dGVzLCBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAgYW5u
ZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShkYXRhX3B0ciArIG5hbHVfaGVhZGVyX3NpemUsIHBhY2tl
dF9zaXplKTsKKyAgICAvLyBVcGRhdGUgZnJhZ21lbnRhdGlvbi4KKyAgICBmcmFnX29mZnNldHMu
cHVzaF9iYWNrKG5hbHVfb2Zmc2V0ICsgc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcykpOworICAg
IGZyYWdfbGVuZ3Rocy5wdXNoX2JhY2socGFja2V0X3NpemUpOworICAgIG5hbHVfb2Zmc2V0ICs9
IHNpemVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpICsgcGFja2V0X3NpemU7CisKKyAgICBzaXplX3Qg
Ynl0ZXNfd3JpdHRlbiA9IHBhY2tldF9zaXplICsgc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRlcyk7
CisgICAgYnl0ZXNfcmVtYWluaW5nIC09IGJ5dGVzX3dyaXR0ZW47CisgICAgZGF0YV9wdHIgKz0g
Ynl0ZXNfd3JpdHRlbjsKKyAgfQorICBSVENfRENIRUNLX0VRKGJ5dGVzX3JlbWFpbmluZywgKHNp
emVfdCkwKTsKKworICBzdGQ6OnVuaXF1ZV9wdHI8UlRQRnJhZ21lbnRhdGlvbkhlYWRlcj4gaGVh
ZGVyKG5ldyBSVFBGcmFnbWVudGF0aW9uSGVhZGVyKCkpOworICBoZWFkZXItPlZlcmlmeUFuZEFs
bG9jYXRlRnJhZ21lbnRhdGlvbkhlYWRlcihmcmFnX29mZnNldHMuc2l6ZSgpKTsKKyAgUlRDX0RD
SEVDS19FUShmcmFnX2xlbmd0aHMuc2l6ZSgpLCBmcmFnX29mZnNldHMuc2l6ZSgpKTsKKyAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBmcmFnX29mZnNldHMuc2l6ZSgpOyArK2kpIHsKKyAgICBoZWFk
ZXItPmZyYWdtZW50YXRpb25PZmZzZXRbaV0gPSBmcmFnX29mZnNldHNbaV07CisgICAgaGVhZGVy
LT5mcmFnbWVudGF0aW9uTGVuZ3RoW2ldID0gZnJhZ19sZW5ndGhzW2ldOworICB9CisgICpvdXRf
aGVhZGVyID0gc3RkOjptb3ZlKGhlYWRlcik7CisgIENGUmVsZWFzZShjb250aWd1b3VzX2J1ZmZl
cik7CisgIHJldHVybiB0cnVlOworfQorCitib29sIEgyNjVBbm5leEJCdWZmZXJUb0NNU2FtcGxl
QnVmZmVyKGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiB2
aWRlb19mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNU2Ft
cGxlQnVmZmVyUmVmKiBvdXRfc2FtcGxlX2J1ZmZlcikgeworICBSVENfRENIRUNLKGFubmV4Yl9i
dWZmZXIpOworICBSVENfRENIRUNLKG91dF9zYW1wbGVfYnVmZmVyKTsKKyAgUlRDX0RDSEVDSyh2
aWRlb19mb3JtYXQpOworICAqb3V0X3NhbXBsZV9idWZmZXIgPSBudWxscHRyOworCisgIEFubmV4
QkJ1ZmZlclJlYWRlciByZWFkZXIoYW5uZXhiX2J1ZmZlciwgYW5uZXhiX2J1ZmZlcl9zaXplKTsK
KyAgaWYgKHJlYWRlci5TZWVrVG9OZXh0TmFsdU9mVHlwZShIMjY1OjprVnBzKSkgeworICAgIC8v
IEJ1ZmZlciBjb250YWlucyBhbiBTUFMgTkFMVSAtIHNraXAgaXQgYW5kIHRoZSBmb2xsb3dpbmcg
UFBTCisgICAgY29uc3QgdWludDhfdCogZGF0YTsKKyAgICBzaXplX3QgZGF0YV9sZW47CisgICAg
aWYgKCFyZWFkZXIuUmVhZE5hbHUoJmRhdGEsICZkYXRhX2xlbikpIHsKKyAgICAgIFJUQ19MT0co
TFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBWUFMiOworICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmZGF0YSwgJmRhdGFfbGVuKSkgeworICAg
ICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byByZWFkIFNQUyI7CisgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorICAgIGlmICghcmVhZGVyLlJlYWROYWx1KCZkYXRhLCAmZGF0YV9s
ZW4pKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgUFBTIjsK
KyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgLy8gTm8gU1BTIE5B
TFUgLSBzdGFydCByZWFkaW5nIGZyb20gdGhlIGZpcnN0IE5BTFUgaW4gdGhlIGJ1ZmZlcgorICAg
IHJlYWRlci5TZWVrVG9TdGFydCgpOworICB9CisKKyAgLy8gQWxsb2NhdGUgbWVtb3J5IGFzIGEg
YmxvY2sgYnVmZmVyLgorICAvLyBUT0RPKHRrY2hpbik6IGZpZ3VyZSBvdXQgaG93IHRvIHVzZSBh
IHBvb2wuCisgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tfYnVmZmVyID0gbnVsbHB0cjsKKyAgT1NT
dGF0dXMgc3RhdHVzID0gQ01CbG9ja0J1ZmZlckNyZWF0ZVdpdGhNZW1vcnlCbG9jaygKKyAgICAg
IG51bGxwdHIsIG51bGxwdHIsIHJlYWRlci5CeXRlc1JlbWFpbmluZygpLCBudWxscHRyLCBudWxs
cHRyLCAwLAorICAgICAgcmVhZGVyLkJ5dGVzUmVtYWluaW5nKCksIGtDTUJsb2NrQnVmZmVyQXNz
dXJlTWVtb3J5Tm93RmxhZywKKyAgICAgICZibG9ja19idWZmZXIpOworICBpZiAoc3RhdHVzICE9
IGtDTUJsb2NrQnVmZmVyTm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVk
IHRvIGNyZWF0ZSBibG9jayBidWZmZXIuIjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKworICAv
LyBNYWtlIHN1cmUgYmxvY2sgYnVmZmVyIGlzIGNvbnRpZ3VvdXMuCisgIENNQmxvY2tCdWZmZXJS
ZWYgY29udGlndW91c19idWZmZXIgPSBudWxscHRyOworICBpZiAoIUNNQmxvY2tCdWZmZXJJc1Jh
bmdlQ29udGlndW91cyhibG9ja19idWZmZXIsIDAsIDApKSB7CisgICAgc3RhdHVzID0gQ01CbG9j
a0J1ZmZlckNyZWF0ZUNvbnRpZ3VvdXMoCisgICAgICAgIG51bGxwdHIsIGJsb2NrX2J1ZmZlciwg
bnVsbHB0ciwgbnVsbHB0ciwgMCwgMCwgMCwgJmNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgICBpZiAo
c3RhdHVzICE9IG5vRXJyKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRv
IGZsYXR0ZW4gbm9uLWNvbnRpZ3VvdXMgYmxvY2sgYnVmZmVyOiAiCisgICAgICAgICAgICAgICAg
ICAgICAgICA8PCBzdGF0dXM7CisgICAgICBDRlJlbGVhc2UoYmxvY2tfYnVmZmVyKTsKKyAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgY29udGlndW91c19idWZmZXIg
PSBibG9ja19idWZmZXI7CisgICAgYmxvY2tfYnVmZmVyID0gbnVsbHB0cjsKKyAgfQorCisgIC8v
IEdldCBhIHJhdyBwb2ludGVyIGludG8gYWxsb2NhdGVkIG1lbW9yeS4KKyAgc2l6ZV90IGJsb2Nr
X2J1ZmZlcl9zaXplID0gMDsKKyAgY2hhciogZGF0YV9wdHIgPSBudWxscHRyOworICBzdGF0dXMg
PSBDTUJsb2NrQnVmZmVyR2V0RGF0YVBvaW50ZXIoY29udGlndW91c19idWZmZXIsIDAsIG51bGxw
dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYmxvY2tfYnVmZmVy
X3NpemUsICZkYXRhX3B0cik7CisgIGlmIChzdGF0dXMgIT0ga0NNQmxvY2tCdWZmZXJOb0Vycikg
eworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IGJsb2NrIGJ1ZmZlciBk
YXRhIHBvaW50ZXIuIjsKKyAgICBDRlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOworICAgIHJl
dHVybiBmYWxzZTsKKyAgfQorICBSVENfRENIRUNLKGJsb2NrX2J1ZmZlcl9zaXplID09IHJlYWRl
ci5CeXRlc1JlbWFpbmluZygpKTsKKworICAvLyBXcml0ZSBBdmNjIE5BTFVzIGludG8gYmxvY2sg
YnVmZmVyIG1lbW9yeS4KKyAgQXZjY0J1ZmZlcldyaXRlciB3cml0ZXIocmVpbnRlcnByZXRfY2Fz
dDx1aW50OF90Kj4oZGF0YV9wdHIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja19i
dWZmZXJfc2l6ZSk7CisgIHdoaWxlIChyZWFkZXIuQnl0ZXNSZW1haW5pbmcoKSA+IDApIHsKKyAg
ICBjb25zdCB1aW50OF90KiBuYWx1X2RhdGFfcHRyID0gbnVsbHB0cjsKKyAgICBzaXplX3QgbmFs
dV9kYXRhX3NpemUgPSAwOworICAgIGlmIChyZWFkZXIuUmVhZE5hbHUoJm5hbHVfZGF0YV9wdHIs
ICZuYWx1X2RhdGFfc2l6ZSkpIHsKKyAgICAgIHdyaXRlci5Xcml0ZU5hbHUobmFsdV9kYXRhX3B0
ciwgbmFsdV9kYXRhX3NpemUpOworICAgIH0KKyAgfQorCisgIC8vIENyZWF0ZSBzYW1wbGUgYnVm
ZmVyLgorICBzdGF0dXMgPSBDTVNhbXBsZUJ1ZmZlckNyZWF0ZShudWxscHRyLCBjb250aWd1b3Vz
X2J1ZmZlciwgdHJ1ZSwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bnVsbHB0ciwgdmlkZW9fZm9ybWF0LCAxLCAwLCBudWxscHRyLCAwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBudWxscHRyLCBvdXRfc2FtcGxlX2J1ZmZlcik7CisgIGlmIChzdGF0
dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0
ZSBzYW1wbGUgYnVmZmVyLiI7CisgICAgQ0ZSZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAg
ICByZXR1cm4gZmFsc2U7CisgIH0KKyAgQ0ZSZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAg
cmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwogQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIENy
ZWF0ZVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCiAgICAgY29uc3QgdWludDhfdCogYW5uZXhiX2J1
ZmZlciwKICAgICBzaXplX3QgYW5uZXhiX2J1ZmZlcl9zaXplKSB7CkBAIC0yNzgsNiArNTAxLDQz
IEBAIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJlZiBDcmVhdGVWaWRlb0Zvcm1hdERlc2NyaXB0
aW9uKAogICByZXR1cm4gZGVzY3JpcHRpb247CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgQ3JlYXRlSDI2NVZpZGVvRm9ybWF0RGVzY3JpcHRp
b24oCisgICAgY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKKyAgICBzaXplX3QgYW5uZXhi
X2J1ZmZlcl9zaXplKSB7CisgIGNvbnN0IHVpbnQ4X3QqIHBhcmFtX3NldF9wdHJzWzNdID0ge307
CisgIHNpemVfdCBwYXJhbV9zZXRfc2l6ZXNbM10gPSB7fTsKKyAgQW5uZXhCQnVmZmVyUmVhZGVy
IHJlYWRlcihhbm5leGJfYnVmZmVyLCBhbm5leGJfYnVmZmVyX3NpemUpOworICAvLyBTa2lwIGV2
ZXJ5dGluZyBiZWZvcmUgdGhlIFZQUywgdGhlbiByZWFkIHRoZSBWUFMsIFNQUyBhbmQgUFBTCisg
IGlmICghcmVhZGVyLlNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjU6OmtWcHMpKSB7CisgICAgcmV0
dXJuIG51bGxwdHI7CisgIH0KKyAgaWYgKCFyZWFkZXIuUmVhZE5hbHUoJnBhcmFtX3NldF9wdHJz
WzBdLCAmcGFyYW1fc2V0X3NpemVzWzBdKSkgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJG
YWlsZWQgdG8gcmVhZCBWUFMiOworICAgIHJldHVybiBudWxscHRyOworICB9CisgIGlmICghcmVh
ZGVyLlJlYWROYWx1KCZwYXJhbV9zZXRfcHRyc1sxXSwgJnBhcmFtX3NldF9zaXplc1sxXSkpIHsK
KyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgU1BTIjsKKyAgICByZXR1
cm4gbnVsbHB0cjsKKyAgfQorICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmcGFyYW1fc2V0X3B0cnNb
Ml0sICZwYXJhbV9zZXRfc2l6ZXNbMl0pKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZh
aWxlZCB0byByZWFkIFBQUyI7CisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKworICAvLyBQYXJz
ZSB0aGUgU1BTIGFuZCBQUFMgaW50byBhIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbi4KKyAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2NyaXB0aW9uID0gbnVsbHB0cjsKKyAgT1NTdGF0
dXMgc3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlRnJvbUhFVkNQYXJhbWV0
ZXJTZXRzKAorICAgICAga0NGQWxsb2NhdG9yRGVmYXVsdCwgMywgcGFyYW1fc2V0X3B0cnMsIHBh
cmFtX3NldF9zaXplcywgNCwgbnVsbHB0ciwKKyAgICAgICZkZXNjcmlwdGlvbik7CisgIGlmIChz
dGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNy
ZWF0ZSB2aWRlbyBmb3JtYXQgZGVzY3JpcHRpb24uIjsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAg
fQorICByZXR1cm4gZGVzY3JpcHRpb247Cit9CisjZW5kaWYKKwogQW5uZXhCQnVmZmVyUmVhZGVy
OjpBbm5leEJCdWZmZXJSZWFkZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGgpCiAgICAgOiBz
dGFydF8oYW5uZXhiX2J1ZmZlciksIGxlbmd0aF8obGVuZ3RoKSB7CkBAIC0zMjQsNiArNTg0LDE5
IEBAIGJvb2wgQW5uZXhCQnVmZmVyUmVhZGVyOjpTZWVrVG9OZXh0TmFsdU9mVHlwZShOYWx1VHlw
ZSB0eXBlKSB7CiAgIH0KICAgcmV0dXJuIGZhbHNlOwogfQorCisjaWZuZGVmIERJU0FCTEVfSDI2
NQorYm9vbCBBbm5leEJCdWZmZXJSZWFkZXI6OlNlZWtUb05leHROYWx1T2ZUeXBlKEgyNjU6Ok5h
bHVUeXBlIHR5cGUpIHsKKyAgZm9yICg7IG9mZnNldF8gIT0gb2Zmc2V0c18uZW5kKCk7ICsrb2Zm
c2V0XykgeworICAgIGlmIChvZmZzZXRfLT5wYXlsb2FkX3NpemUgPCAxKQorICAgICAgY29udGlu
dWU7CisgICAgaWYgKEgyNjU6OlBhcnNlTmFsdVR5cGUoKihzdGFydF8gKyBvZmZzZXRfLT5wYXls
b2FkX3N0YXJ0X29mZnNldCkpID09IHR5cGUpCisgICAgICByZXR1cm4gdHJ1ZTsKKyAgfQorICBy
ZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogQXZjY0J1ZmZlcldyaXRlcjo6QXZjY0J1ZmZlcldy
aXRlcih1aW50OF90KiBjb25zdCBhdmNjX2J1ZmZlciwgc2l6ZV90IGxlbmd0aCkKICAgICA6IHN0
YXJ0XyhhdmNjX2J1ZmZlciksIG9mZnNldF8oMCksIGxlbmd0aF8obGVuZ3RoKSB7CiAgIFJUQ19E
Q0hFQ0soYXZjY19idWZmZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9uYWx1X3Jl
d3JpdGVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuaAppbmRleCBhMGMxYWE5
MGFmNTc1OWRlMzliNWQwNmMyMjFkMjg0Mjk0Mzg5ODc2Li40ZGExY2M1N2M3ZDEwYThiZjM2YTI4
OGQ3MzFjM2M4NjEwZWQ1N2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3
cml0ZXIuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuaApAQCAtMTgsNiAr
MTgsOSBAQAogI2luY2x1ZGUgPHZlY3Rvcj4KIAogI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0
L2gyNjRfY29tbW9uLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgImNvbW1vbl92
aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL2luY2x1
ZGUvbW9kdWxlX2NvbW1vbl90eXBlcy5oIgogI2luY2x1ZGUgInJ0Y19iYXNlL2J1ZmZlci5oIgog
CkBAIC00Nyw2ICs1MCwzMSBAQCBib29sIEgyNjRBbm5leEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVy
KGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENNU2FtcGxlQnVmZmVyUmVmKiBvdXRfc2FtcGxlX2J1ZmZlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01NZW1vcnlQb29sUmVmIG1lbW9yeV9w
b29sKTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKKy8vIENvbnZlcnRzIGEgc2FtcGxlIGJ1ZmZl
ciBlbWl0dGVkIGZyb20gdGhlIFZpZGVvVG9vbGJveCBlbmNvZGVyIGludG8gYSBidWZmZXIKKy8v
IHN1aXRhYmxlIGZvciBSVFAuIFRoZSBzYW1wbGUgYnVmZmVyIGlzIGluIGh2Y2MgZm9ybWF0IHdo
ZXJlYXMgdGhlIHJ0cCBidWZmZXIKKy8vIG5lZWRzIHRvIGJlIGluIEFubmV4IEIgZm9ybWF0LiBE
YXRhIGlzIHdyaXR0ZW4gZGlyZWN0bHkgdG8gfGFubmV4Yl9idWZmZXJ8CisvLyBhbmQgYSBuZXcg
UlRQRnJhZ21lbnRhdGlvbkhlYWRlciBpcyByZXR1cm5lZCBpbiB8b3V0X2hlYWRlcnwuCitib29s
IEgyNjVDTVNhbXBsZUJ1ZmZlclRvQW5uZXhCQnVmZmVyKAorICAgIENNU2FtcGxlQnVmZmVyUmVm
IGh2Y2Nfc2FtcGxlX2J1ZmZlciwKKyAgICBib29sIGlzX2tleWZyYW1lLAorICAgIHJ0Yzo6QnVm
ZmVyKiBhbm5leGJfYnVmZmVyLAorICAgIHN0ZDo6dW5pcXVlX3B0cjxSVFBGcmFnbWVudGF0aW9u
SGVhZGVyPiAqb3V0X2hlYWRlcikKKyAgICBfX09TWF9BVkFJTEFCTEVfU1RBUlRJTkcoX19NQUNf
MTBfMTIsIF9fSVBIT05FXzExXzApOworCisgLy8gQ29udmVydHMgYSBidWZmZXIgcmVjZWl2ZWQg
ZnJvbSBSVFAgaW50byBhIHNhbXBsZSBidWZmZXIgc3VpdGFibGUgZm9yIHRoZQorLy8gVmlkZW9U
b29sYm94IGRlY29kZXIuIFRoZSBSVFAgYnVmZmVyIGlzIGluIGFubmV4IGIgZm9ybWF0IHdoZXJl
YXMgdGhlIHNhbXBsZQorLy8gYnVmZmVyIGlzIGluIGh2Y2MgZm9ybWF0LgorLy8gSWYgfGlzX2tl
eWZyYW1lfCBpcyB0cnVlIHRoZW4gfHZpZGVvX2Zvcm1hdHwgaXMgaWdub3JlZCBzaW5jZSB0aGUg
Zm9ybWF0IHdpbGwKKy8vIGJlIHJlYWQgZnJvbSB0aGUgYnVmZmVyLiBPdGhlcndpc2UgfHZpZGVv
X2Zvcm1hdHwgbXVzdCBiZSBwcm92aWRlZC4KKy8vIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3Ig
cmVsZWFzaW5nIHRoZSBjcmVhdGVkIHNhbXBsZSBidWZmZXIuCitib29sIEgyNjVBbm5leEJCdWZm
ZXJUb0NNU2FtcGxlQnVmZmVyKGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZmZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENNVmlkZW9Gb3JtYXREZXNj
cmlwdGlvblJlZiB2aWRlb19mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENNU2FtcGxlQnVmZmVyUmVmKiBvdXRfc2FtcGxlX2J1ZmZlcikKKyAgICBfX09TWF9B
VkFJTEFCTEVfU1RBUlRJTkcoX19NQUNfMTBfMTIsIF9fSVBIT05FXzExXzApOworI2VuZGlmCisK
IC8vIFJldHVybnMgYSB2aWRlbyBmb3JtYXQgZGVzY3JpcHRpb24gY3JlYXRlZCBmcm9tIHRoZSBz
cHMvcHBzIGluZm9ybWF0aW9uIGluCiAvLyB0aGUgQW5uZXggQiBidWZmZXIuIElmIHRoZXJlIGlz
IG5vIHN1Y2ggaW5mb3JtYXRpb24sIG51bGxwdHIgaXMgcmV0dXJuZWQuCiAvLyBUaGUgY2FsbGVy
IGlzIHJlc3BvbnNpYmxlIGZvciByZWxlYXNpbmcgdGhlIGRlc2NyaXB0aW9uLgpAQCAtNTQsNiAr
ODIsMTMgQEAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIENyZWF0ZVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb24oCiAgICAgY29uc3QgdWludDhfdCogYW5uZXhiX2J1ZmZlciwKICAgICBzaXplX3Qg
YW5uZXhiX2J1ZmZlcl9zaXplKTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK0NNVmlkZW9Gb3Jt
YXREZXNjcmlwdGlvblJlZiBDcmVhdGVIMjY1VmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKKyAgICBj
b25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAorICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3Np
emUpCisgICAgX19PU1hfQVZBSUxBQkxFX1NUQVJUSU5HKF9fTUFDXzEwXzEyLCBfX0lQSE9ORV8x
MV8wKTsKKyNlbmRpZgorCiAvLyBIZWxwZXIgY2xhc3MgZm9yIHJlYWRpbmcgTkFMVXMgZnJvbSBh
biBSVFAgQW5uZXggQiBidWZmZXIuCiBjbGFzcyBBbm5leEJCdWZmZXJSZWFkZXIgZmluYWwgewog
IHB1YmxpYzoKQEAgLTc4LDYgKzExMyw5IEBAIGNsYXNzIEFubmV4QkJ1ZmZlclJlYWRlciBmaW5h
bCB7CiAgIC8vIFJldHVybiB0cnVlIGlmIGEgTkFMVSBvZiB0aGUgZGVzaXJlZCB0eXBlIGlzIGZv
dW5kLCBmYWxzZSBpZiB3ZQogICAvLyByZWFjaGVkIHRoZSBlbmQgaW5zdGVhZAogICBib29sIFNl
ZWtUb05leHROYWx1T2ZUeXBlKEgyNjQ6Ok5hbHVUeXBlIHR5cGUpOworI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyAgYm9vbCBTZWVrVG9OZXh0TmFsdU9mVHlwZShIMjY1OjpOYWx1VHlwZSB0eXBlKTsK
KyNlbmRpZgogCiAgcHJpdmF0ZToKICAgLy8gUmV0dXJucyB0aGUgdGhlIG5leHQgb2Zmc2V0IHRo
YXQgY29udGFpbnMgTkFMVSBkYXRhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2RlY29k
ZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0KaW5kZXgg
NWFjYTAyZDVhYjBjMDQ3NWQzNzM4YjQ3NmVjZTlkMTQwMzkxZjc3MC4uMmNhNmQwZWE2OThiYzRm
ODkxOTZhMjFiNDI5ZDNmNzc4YmUyNWJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2Rl
Y29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1t
CkBAIC05Nyw3ICs5NywxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyPiBPYmpDVmlk
ZW9EZWNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlkZW9EZWNvZGVyKAogICAgIGlmIChbY29kZWNOYW1l
IGlzRXF1YWxUb1N0cmluZzpjb2RlY0luZm8ubmFtZV0pIHsKICAgICAgIGlkPFJUQ1ZpZGVvRGVj
b2Rlcj4gZGVjb2RlciA9IFtkZWNvZGVyX2ZhY3RvcnlfIGNyZWF0ZURlY29kZXI6Y29kZWNJbmZv
XTsKIAotICAgICAgaWYgKFtkZWNvZGVyIGlzS2luZE9mQ2xhc3M6W1JUQ1dyYXBwZWROYXRpdmVW
aWRlb0RlY29kZXIgY2xhc3NdXSkgeworICAgICAgLy8gQmVjYXVzZSBvZiBzeW1ib2wgY29uZmxp
Y3QsIGlzS2luZE9mQ2xhc3MgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkLgorICAgICAgLy8gU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3ODIuCisgICAgICAv
LyBpZiAoW2RlY29kZXIgaXNLaW5kT2ZDbGFzczpbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rl
ciBjbGFzc11dKSB7CisgICAgICBpZiAoW2NvZGVjTmFtZSBpc0VxdWFsOkAiVlA4Il0gfHwgW2Nv
ZGVjTmFtZSBpc0VxdWFsOkAiVlA5Il0pIHsKICAgICAgICAgcmV0dXJuIFsoUlRDV3JhcHBlZE5h
dGl2ZVZpZGVvRGVjb2RlciAqKWRlY29kZXIgcmVsZWFzZVdyYXBwZWREZWNvZGVyXTsKICAgICAg
IH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVvRGVjb2Rl
cj4obmV3IE9iakNWaWRlb0RlY29kZXIoZGVjb2RlcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpj
X3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19lbmNvZGVyX2ZhY3Rv
cnkubW0KaW5kZXggYTc1NTMwN2M2YjdjZjI1NDg3ZjYyOWNiMDI0NjlkN2I5NGI0NGE3Ni4uMzM0
Njk4MTNhZjM0NGQyOWI0YWZkNjI5YzgwYTIyZDQzZTdlZGQzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9v
YmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rl
cl9mYWN0b3J5Lm1tCkBAIC0xNSw2ICsxNSw5IEBACiAjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRW5j
b2Rlci5oIgogI2ltcG9ydCAiYmFzZS9SVENWaWRlb0VuY29kZXJGYWN0b3J5LmgiCiAjaW1wb3J0
ICJjb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRl
LmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2ltcG9ydCAiY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oIgorI2VuZGlmCiAjaW1wb3J0ICJz
ZGsvb2JqYy9hcGkvcGVlcmNvbm5lY3Rpb24vUlRDRW5jb2RlZEltYWdlK1ByaXZhdGUuaCIKICNp
bXBvcnQgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENSdHBGcmFnbWVudGF0aW9uSGVh
ZGVyK1ByaXZhdGUuaCIKICNpbXBvcnQgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlvbi9SVENW
aWRlb0NvZGVjSW5mbytQcml2YXRlLmgiCkBAIC02NSw4ICs2OCwxNiBAQCBjbGFzcyBPYmpDVmlk
ZW9FbmNvZGVyIDogcHVibGljIFZpZGVvRW5jb2RlciB7CiAKICAgICAgIC8vIEhhbmRsZSB0eXBl
cyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgaW50byBvbmUgb2YgQ29kZWNTcGVjaWZpY0luZm8ncyBo
YXJkIGNvZGVkIGNhc2VzLgogICAgICAgQ29kZWNTcGVjaWZpY0luZm8gY29kZWNTcGVjaWZpY0lu
Zm87Ci0gICAgICBpZiAoW2luZm8gaXNLaW5kT2ZDbGFzczpbUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY0IGNsYXNzXV0pIHsKKyAgICAgIC8vIEJlY2F1c2Ugb2Ygc3ltYm9sIGNvbmZsaWN0LCBpc0tp
bmRPZkNsYXNzIGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZC4KKyAgICAgIC8vIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzgyLgorICAgICAgaWYgKFtOU1N0
cmluZ0Zyb21DbGFzcyhbaW5mbyBjbGFzc10pIGlzRXF1YWw6QCJXS19SVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjQiXSkgeworICAgICAgICAvLyBpZiAoW2luZm8gaXNLaW5kT2ZDbGFzczpbUlRDQ29k
ZWNTcGVjaWZpY0luZm9IMjY0IGNsYXNzXV0pIHsKICAgICAgICAgY29kZWNTcGVjaWZpY0luZm8g
PSBbKFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCAqKWluZm8gbmF0aXZlQ29kZWNTcGVjaWZpY0lu
Zm9dOworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICAgIH0gZWxzZSBpZiAoW05TU3RyaW5nRnJv
bUNsYXNzKFtpbmZvIGNsYXNzXSkgaXNFcXVhbDpAIldLX1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NSJdKSB7CisgICAgICAgIC8vIGlmIChbaW5mbyBpc0tpbmRPZkNsYXNzOltSVENDb2RlY1NwZWNp
ZmljSW5mb0gyNjUgY2xhc3NdXSkgeworICAgICAgICBjb2RlY1NwZWNpZmljSW5mbyA9IFsoUlRD
Q29kZWNTcGVjaWZpY0luZm9IMjY1ICopaW5mbyBuYXRpdmVDb2RlY1NwZWNpZmljSW5mb107Cisj
ZW5kaWYKICAgICAgIH0KIAogICAgICAgc3RkOjp1bmlxdWVfcHRyPFJUUEZyYWdtZW50YXRpb25I
ZWFkZXI+IGZyYWdtZW50YXRpb25IZWFkZXIgPQpAQCAtMTY3LDcgKzE3OCwxMCBAQCBzdGQ6OnVu
aXF1ZV9wdHI8VmlkZW9FbmNvZGVyPiBPYmpDVmlkZW9FbmNvZGVyRmFjdG9yeTo6Q3JlYXRlVmlk
ZW9FbmNvZGVyKAogICAgIGNvbnN0IFNkcFZpZGVvRm9ybWF0ICZmb3JtYXQpIHsKICAgUlRDVmlk
ZW9Db2RlY0luZm8gKmluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5h
dGl2ZVNkcFZpZGVvRm9ybWF0OmZvcm1hdF07CiAgIGlkPFJUQ1ZpZGVvRW5jb2Rlcj4gZW5jb2Rl
ciA9IFtlbmNvZGVyX2ZhY3RvcnlfIGNyZWF0ZUVuY29kZXI6aW5mb107Ci0gIGlmIChbZW5jb2Rl
ciBpc0tpbmRPZkNsYXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9FbmNvZGVyIGNsYXNzXV0pIHsK
KyAgLy8gQmVjYXVzZSBvZiBzeW1ib2wgY29uZmxpY3QsIGlzS2luZE9mQ2xhc3MgZG9lc24ndCB3
b3JrIGFzIGV4cGVjdGVkLgorICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5ODc4Mi4KKyAgLy8gaWYgKFtlbmNvZGVyIGlzS2luZE9mQ2xhc3M6W1JUQ1dy
YXBwZWROYXRpdmVWaWRlb0VuY29kZXIgY2xhc3NdXSkgeworICBpZiAoW2luZm8ubmFtZSBpc0Vx
dWFsOkAiVlA4Il0gfHwgW2luZm8ubmFtZSBpc0VxdWFsOkAiVlA5Il0pIHsKICAgICByZXR1cm4g
WyhSVENXcmFwcGVkTmF0aXZlVmlkZW9FbmNvZGVyICopZW5jb2RlciByZWxlYXNlV3JhcHBlZEVu
Y29kZXJdOwogICB9IGVsc2UgewogICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8T2JqQ1ZpZGVv
RW5jb2Rlcj4obmV3IE9iakNWaWRlb0VuY29kZXIoZW5jb2RlcikpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0
cmVhbV9yZWNlaXZlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MKaW5kZXggODVmYjg4NjJmMjVm
MWUyMWY3NWJhMjE3OGNmZGNmNWQwNWYwN2E1My4uMDU4ZGYwYWU5NjZlNWQxMWVmYTI0ZTAzMDY0
OWM1NjI5MTlhMmNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3Ry
ZWFtX3JlY2VpdmVyLmNjCkBAIC01ODcsNyArNTg3LDI0IEBAIHZvaWQgUnRwVmlkZW9TdHJlYW1S
ZWNlaXZlcjo6T25SZWNlaXZlZFBheWxvYWREYXRhKAogICAgICAgICBwYWNrZXQtPnZpZGVvX3Bh
eWxvYWQgPSBzdGQ6Om1vdmUoZml4ZWQuYml0c3RyZWFtKTsKICAgICAgICAgYnJlYWs7CiAgICAg
fQotCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB9IGVsc2UgaWYgKHBhY2tldC0+Y29kZWMoKSA9
PSBrVmlkZW9Db2RlY0gyNjUpIHsKKyAgICB2aWRlb19jb2Rpbmc6OkgyNjVWcHNTcHNQcHNUcmFj
a2VyOjpGaXhlZEJpdHN0cmVhbSBmaXhlZCA9CisgICAgICAgIGgyNjVfdHJhY2tlcl8uQ29weUFu
ZEZpeEJpdHN0cmVhbSgKKyAgICAgICAgICAgIHJ0Yzo6TWFrZUFycmF5Vmlldyhjb2RlY19wYXls
b2FkLmNkYXRhKCksIGNvZGVjX3BheWxvYWQuc2l6ZSgpKSwKKyAgICAgICAgICAgICZwYWNrZXQt
PnZpZGVvX2hlYWRlcik7CisgICAgc3dpdGNoIChmaXhlZC5hY3Rpb24pIHsKKyAgICAgIGNhc2Ug
dmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlcjo6a1JlcXVlc3RLZXlmcmFtZToKKyAg
ICAgICAgcnRjcF9mZWVkYmFja19idWZmZXJfLlJlcXVlc3RLZXlGcmFtZSgpOworICAgICAgICBy
dGNwX2ZlZWRiYWNrX2J1ZmZlcl8uU2VuZEJ1ZmZlcmVkUnRjcEZlZWRiYWNrKCk7CisgICAgICAg
IEFCU0xfRkFMTFRIUk9VR0hfSU5URU5ERUQ7CisgICAgICBjYXNlIHZpZGVvX2NvZGluZzo6SDI2
NVZwc1Nwc1Bwc1RyYWNrZXI6OmtEcm9wOgorICAgICAgICByZXR1cm47CisgICAgICBjYXNlIHZp
ZGVvX2NvZGluZzo6SDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OmtJbnNlcnQ6CisgICAgICAgIHBhY2tl
dC0+dmlkZW9fcGF5bG9hZCA9IHN0ZDo6bW92ZShmaXhlZC5iaXRzdHJlYW0pOworICAgICAgICBi
cmVhazsKKyAgICB9CisjZW5kaWYKICAgfSBlbHNlIHsKICAgICBwYWNrZXQtPnZpZGVvX3BheWxv
YWQgPSBzdGQ6Om1vdmUoY29kZWNfcGF5bG9hZCk7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1f
cmVjZWl2ZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Zp
ZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuaAppbmRleCAwMzA3MGRiNTFkYzVkM2JiZjMw
ZTYxZmI4YWEwZWViZTk1ZTIyYTcxLi4zMzA0NTViMWI4NmJkNWZkM2U0MGQ1MzYzNmI2MDNlYzY3
MDM3N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmgKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNl
aXZlci5oCkBAIC0zOCw2ICszOCw5IEBACiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3Vy
Y2UvdmlkZW9fcnRwX2RlcGFja2V0aXplci5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29k
aW5nL2gyNjRfc3BzX3Bwc190cmFja2VyLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2Rp
bmcvbG9zc19ub3RpZmljYXRpb25fY29udHJvbGxlci5oIgorI2lmbmRlZiBESVNBQkxFX0gyNjUK
KyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIu
aCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9ydHBfZnJhbWVfcmVmZXJlbmNlX2Zp
bmRlci5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL3VuaXF1ZV90aW1lc3RhbXBf
Y291bnRlci5oIgpAQCAtMzE3LDYgKzMyMCwxMCBAQCBjbGFzcyBSdHBWaWRlb1N0cmVhbVJlY2Vp
dmVyIDogcHVibGljIExvc3NOb3RpZmljYXRpb25TZW5kZXIsCiAgIC8vIE1hcHMgcGF5bG9hZCBp
ZCB0byB0aGUgZGVwYWNrZXRpemVyLgogICBzdGQ6Om1hcDx1aW50OF90LCBzdGQ6OnVuaXF1ZV9w
dHI8VmlkZW9SdHBEZXBhY2tldGl6ZXI+PiBwYXlsb2FkX3R5cGVfbWFwXzsKIAorI2lmbmRlZiBE
SVNBQkxFX0gyNjUKKyAgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlciBoMjY1X3Ry
YWNrZXJfOworI2VuZGlmCisKICAgLy8gVE9ETyhqb2hhbik6IFJlbW92ZSBwdF9jb2RlY19wYXJh
bXNfIG9uY2UKICAgLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3dlYnJ0Yy9pc3N1ZXMv
ZGV0YWlsP2lkPTY4ODMgaXMgcmVzb2x2ZWQuCiAgIC8vIE1hcHMgYSBwYXlsb2FkIHR5cGUgdG8g
YSBtYXAgb2Ygb3V0LW9mLWJhbmQgc3VwcGxpZWQgY29kZWMgcGFyYW1ldGVycy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3NlbmRf
c3RhdGlzdGljc19wcm94eS5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3ZpZGVvL3NlbmRfc3RhdGlzdGljc19wcm94eS5jYwppbmRleCA2MGQ4NGYxNGM3ODll
OWM1ZDM5OWFkZWU0OGJkZDMxN2RhYzA4NjAwLi5mMjE0MTcyMjlhNzBmMmI4MjEzODg2MDVjNDgw
YzAxYzU3OTVkODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy92aWRlby9zZW5kX3N0YXRpc3RpY3NfcHJveHkuY2MKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vc2VuZF9zdGF0aXN0aWNzX3By
b3h5LmNjCkBAIC00Nyw2ICs0Nyw3IEBAIGVudW0gSGlzdG9ncmFtQ29kZWNUeXBlIHsKICAga1Zp
ZGVvVnA4ID0gMSwKICAga1ZpZGVvVnA5ID0gMiwKICAga1ZpZGVvSDI2NCA9IDMsCisgIGtWaWRl
b0gyNjUgPSA0LAogICBrVmlkZW9NYXggPSA2NCwKIH07CiAKQEAgLTc0LDYgKzc1LDEwIEBAIEhp
c3RvZ3JhbUNvZGVjVHlwZSBQYXlsb2FkTmFtZVRvSGlzdG9ncmFtQ29kZWNUeXBlKAogICAgICAg
cmV0dXJuIGtWaWRlb1ZwOTsKICAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NDoKICAgICAgIHJldHVy
biBrVmlkZW9IMjY0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0NvZGVj
SDI2NToKKyAgICAgIHJldHVybiBrVmlkZW9IMjY1OworI2VuZGlmCiAgICAgZGVmYXVsdDoKICAg
ICAgIHJldHVybiBrVmlkZW9Vbmtub3duOwogICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19yZWNlaXZlX3N0cmVhbS5j
YyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVv
X3JlY2VpdmVfc3RyZWFtLmNjCmluZGV4IDI0NmRhYWRiODFiYmJlZjhjYzBmODhkYmM1MWQ5NGVj
Mzk2YmM3ODMuLmYxYjY1NWYwMTg0M2EyYmY2NjQzZjJlYjc2N2E0NzJkMTA4NjI2ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3Zp
ZGVvX3JlY2VpdmVfc3RyZWFtLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3RyZWFtLmNjCkBAIC0xMzQsNiArMTM0
LDExIEBAIFZpZGVvQ29kZWMgQ3JlYXRlRGVjb2RlclZpZGVvQ29kZWMoY29uc3QgVmlkZW9SZWNl
aXZlU3RyZWFtOjpEZWNvZGVyJiBkZWNvZGVyKSB7CiAgICAgYXNzb2NpYXRlZF9jb2RlYy5jb2Rl
Y1R5cGUgPSBrVmlkZW9Db2RlY011bHRpcGxleDsKICAgICByZXR1cm4gYXNzb2NpYXRlZF9jb2Rl
YzsKICAgfQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgZWxzZSBpZiAoY29kZWMuY29kZWNUeXBl
ID09IGtWaWRlb0NvZGVjSDI2NSkgeworICAgICooY29kZWMuSDI2NSgpKSA9IFZpZGVvRW5jb2Rl
cjo6R2V0RGVmYXVsdEgyNjVTZXR0aW5ncygpOworICB9CisjZW5kaWYKIAogICBjb2RlYy53aWR0
aCA9IDMyMDsKICAgY29kZWMuaGVpZ2h0ID0gMTgwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fc3RyZWFtX2VuY29kZXIu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92aWRl
b19zdHJlYW1fZW5jb2Rlci5jYwppbmRleCA4MjUyY2IyOWVmMTdkZjBjZjBhMmZjOGZkZGU3MGYx
ZDU5ZTlkOGQ1Li41Mjg5MWU5YzFiNzBjODg2NDc4NGI0NTQzMmUzZWMzOGYyMDU4YmViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby92
aWRlb19zdHJlYW1fZW5jb2Rlci5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19zdHJlYW1fZW5jb2Rlci5jYwpAQCAtMTAwLDcgKzEw
MCwxMyBAQCBib29sIFJlcXVpcmVzRW5jb2RlclJlc2V0KGNvbnN0IFZpZGVvQ29kZWMmIHByZXZf
c2VuZF9jb2RlYywKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICB9CiAgICAgICBicmVhazsK
LQorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICBjYXNlIGtWaWRlb0NvZGVjSDI2NToKKyAgICAg
IGlmIChuZXdfc2VuZF9jb2RlYy5IMjY1KCkgIT0gcHJldl9zZW5kX2NvZGVjLkgyNjUoKSkgewor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworI2VuZGlmCiAgICAg
ZGVmYXVsdDoKICAgICAgIGJyZWFrOwogICB9CkBAIC0xNDAzLDYgKzE0MDksOSBAQCBFbmNvZGVk
SW1hZ2VDYWxsYmFjazo6UmVzdWx0IFZpZGVvU3RyZWFtRW5jb2Rlcjo6T25FbmNvZGVkSW1hZ2Uo
CiAgIGlmIChjb2RlY19zcGVjaWZpY19pbmZvICYmCiAgICAgICAoY29kZWNfc3BlY2lmaWNfaW5m
by0+Y29kZWNUeXBlID09IGtWaWRlb0NvZGVjVlA4IHx8CiAgICAgICAgY29kZWNfc3BlY2lmaWNf
aW5mby0+Y29kZWNUeXBlID09IGtWaWRlb0NvZGVjSDI2NCB8fAorI2lmbmRlZiBESVNBQkxFX0gy
NjUKKyAgICAgICBjb2RlY19zcGVjaWZpY19pbmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNI
MjY1IHx8CisjZW5kaWYKICAgICAgICBjb2RlY19zcGVjaWZpY19pbmZvLT5jb2RlY1R5cGUgPT0g
a1ZpZGVvQ29kZWNHZW5lcmljKSkgewogICAgIHNpbXVsY2FzdF9pZCA9IGVuY29kZWRfaW1hZ2Uu
U3BhdGlhbEluZGV4KCkudmFsdWVfb3IoMCk7CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlM2RmMDk4YzdlMjU0OTRhZDFkYTg4MDc1ZmE4N2Q2YzJmZmM4M2ZlLi4zM2Ix
YjEzYjI5MzZjNDkxNGQwMmViZjNmNDJlOTZhZGY4Mjk1MDUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yOSw2ICsyOSwyOCBAQAogCQk0MTAwOTFEQzI0MkUwQkJDMDBDNUVE
QTIgLyogdmlkZW9fY29kZWNfdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwMDkxRDcyNDJFMEJCQjAwQzVFREEyIC8qIHZpZGVvX2NvZGVjX3R5
cGUuaCAqLzsgfTsKIAkJNDEwMDkxREQyNDJFMEJCQzAwQzVFREEyIC8qIHJlY29yZGFibGVfZW5j
b2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDEwMDkxRDgyNDJFMEJCQjAwQzVFREEyIC8qIHJlY29yZGFibGVfZW5jb2RlZF9mcmFtZS5o
ICovOyB9OwogCQk0MTAwOTFERTI0MkUwQkJDMDBDNUVEQTIgLyogdmlkZW9fZnJhbWVfdHlwZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRDky
NDJFMEJCQjAwQzVFREEyIC8qIHZpZGVvX2ZyYW1lX3R5cGUuaCAqLzsgfTsKKwkJNDEwMDkxRTYy
NDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5jYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUUwMjQyRTJBQTEwMEM1RURBMiAvKiBy
dHBfZm9ybWF0X2gyNjUuY2MgKi87IH07CisJCTQxMDA5MUU3MjQyRTJBQTMwMEM1RURBMiAvKiBy
dHBfZm9ybWF0X2gyNjUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxMDA5MUUxMjQyRTJBQTIwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuaCAqLzsg
fTsKKwkJNDEwMDkxRTkyNDJFMkFBMzAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRTMyNDJFMkFB
MjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oICovOyB9OworCQk0MTAwOTFFRDI0MkUzMTc0
MDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFFQjI0MkUzMTczMDBDNUVEQTIgLyog
aDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggKi87IH07CisJCTQxMDA5MUVFMjQyRTMxNzQwMEM1
RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFFQzI0MkUzMTczMDBDNUVEQTIgLyogaDI2
NV92cHNfc3BzX3Bwc190cmFja2VyLmNjICovOyB9OworCQk0MTAwOTFGODI0MkUzNjIyMDBDNUVE
QTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDEwMDkxRjAyNDJFMzYyMDAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNl
ci5jYyAqLzsgfTsKKwkJNDEwMDkxRjkyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkx
RjEyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5oICovOyB9OworCQk0MTAwOTFG
QTI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGMjI0MkUzNjIxMDBDNUVEQTIgLyog
aDI2NV9wcHNfcGFyc2VyLmggKi87IH07CisJCTQxMDA5MUZCMjQyRTM2MjIwMEM1RURBMiAvKiBo
MjY1X3Bwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTAwOTFGMzI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmNjICov
OyB9OworCQk0MTAwOTFGQzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRjQyNDJF
MzYyMTAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyAqLzsgfTsKKwkJNDEwMDkxRkQyNDJF
MzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGNTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9jb21t
b24uaCAqLzsgfTsKKwkJNDEwMDkxRkUyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkx
RjYyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5oICovOyB9OworCQk0MTAwOTFG
RjI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uY2MgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGNzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2
NV9jb21tb24uY2MgKi87IH07CisJCTQxMDA5MjA5MjQyRTNBNDYwMEM1RURBMiAvKiBSVENWaWRl
b0RlY29kZXJIMjY1LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICov
OyB9OworCQk0MTAwOTIwQTI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElk
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDky
MDEyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSAqLzsgfTsKKwkJ
NDEwMDkyMEIyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDIyNDJF
M0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oICovOyB9OworCQk0MTAw
OTIwQzI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MjAz
MjQyRTNBNDQwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oICov
OyB9OworCQk0MTAwOTIwRDI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDQy
NDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCAqLzsgfTsKKwkJNDEwMDky
MEUyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDUyNDJFM0E0NTAwQzVF
REEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oICovOyB9OworCQk0MTAwOTIwRjI0MkUzQTQ2
MDBDNUVEQTIgLyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MjA2MjQyRTNBNDUwMEM1RURBMiAvKiBSVENW
aWRlb0VuY29kZXJIMjY1Lm1tICovOyB9OworCQk0MTAwOTIxMDI0MkUzQTQ2MDBDNUVEQTIgLyog
UlRDVmlkZW9EZWNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJI
MjY1Lm1tICovOyB9OworCQk0MTAwOTIxMTI0MkUzQTQ2MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDEwMDkyMDgyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NS5tbSAqLzsgfTsKIAkJNDEwMkY2QTEyMTI3MzI2MjAwNkFFOEQ3IC8qIHJlbWl4X3Jlc2FtcGxl
LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMkY2
OTcyMTI3MzI2MDAwNkFFOEQ3IC8qIHJlbWl4X3Jlc2FtcGxlLmNjICovOyB9OwogCQk0MTAyRjZB
MjIxMjczMjYyMDA2QUU4RDcgLyogYXVkaW9fbGV2ZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDJGNjk4MjEyNzMyNjAwMDZBRThENyAvKiBhdWRp
b19sZXZlbC5oICovOyB9OwogCQk0MTAyRjZBNDIxMjczMjYyMDA2QUU4RDcgLyogYXVkaW9fbGV2
ZWwuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAy
RjY5QTIxMjczMjYxMDA2QUU4RDcgLyogYXVkaW9fbGV2ZWwuY2MgKi87IH07CkBAIC0zOTI2LDYg
KzM5NDgsMzEgQEAKIAkJNDEwMDkxRDcyNDJFMEJCQjAwQzVFREEyIC8qIHZpZGVvX2NvZGVjX3R5
cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdmlkZW9fY29kZWNfdHlwZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwOTFEODI0MkUwQkJCMDBDNUVEQTIg
LyogcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHJlY29yZGFibGVfZW5jb2RlZF9mcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTAwOTFEOTI0MkUwQkJCMDBDNUVEQTIgLyogdmlkZW9fZnJhbWVfdHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSB2aWRlb19mcmFtZV90eXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MURGMjQyRTJBQTEwMEM1RURBMiAvKiBjb250
cmlidXRpbmdfc291cmNlcy5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IGNvbnRyaWJ1dGluZ19zb3VyY2VzLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTAwOTFFMDI0MkUyQUExMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmNjICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcnRwX2Zvcm1hdF9oMjY1LmNjOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFMTI0MkUyQUEyMDBDNUVEQTIgLyogcnRwX2Zvcm1h
dF9oMjY1LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJ0cF9mb3JtYXRfaDI2
NS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFMjI0MkUyQUEyMDBDNUVE
QTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gaDI2NV9zcHNfcGFyc2VyLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTAwOTFFMzI0MkUyQUEyMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVfc3BzX3BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTAwOTFFNDI0MkUyQUEyMDBDNUVEQTIgLyogY29udHJpYnV0aW5nX3Nv
dXJjZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29udHJpYnV0aW5nX3Nv
dXJjZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRUIyNDJFMzE3MzAw
QzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBoMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRUMyNDJFMzE3MzAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19w
cHNfdHJhY2tlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVf
dnBzX3Nwc19wcHNfdHJhY2tlci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEw
MDkxRjAyNDJFMzYyMDAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfc3BzX3BhcnNlci5jYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjEyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfc3BzX3Bh
cnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBoMjY1X3Nwc19wYXJzZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjIyNDJFMzYyMTAwQzVFREEy
IC8qIGgyNjVfcHBzX3BhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBo
MjY1X3Bwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjMy
NDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5jYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfcHBzX3BhcnNlci5jYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDEwMDkxRjQyNDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5j
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfdnBzX3BhcnNlci5j
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjUyNDJFMzYyMTAwQzVFREEy
IC8qIGgyNjVfY29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVf
Y29tbW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MUY2MjQyRTM2MjIw
MEM1RURBMiAvKiBoMjY1X3Zwc19wYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gaDI2NV92cHNfcGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MDA5MUY3MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5jYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGgyNjVfY29tbW9uLmNjOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2
NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENWaWRlb0RlY29kZXJIMjY1
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjAxMjQyRTNBNDQwMEM1RURB
MiAvKiBSVENIMjY1UHJvZmlsZUxldmVsSWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBSVENIMjY1UHJvZmlsZUxldmVsSWQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxMDA5MjAyMjQyRTNBNDQwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDQ29kZWNTcGVj
aWZpY0luZm9IMjY1Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjAzMjQy
RTNBNDQwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1K1By
aXZhdGUuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjA0MjQyRTNBNDUw
MEM1RURBMiAvKiBSVENWaWRlb0VuY29kZXJIMjY1LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJUQ1ZpZGVvRW5jb2RlckgyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDEwMDkyMDUyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENIMjY1UHJvZmlsZUxldmVsSWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDYyNDJFM0E0NTAwQzVFREEy
IC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBSVENWaWRlb0VuY29kZXJIMjY1Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTAwOTIwNzI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJUQ1ZpZGVvRGVjb2Rl
ckgyNjUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDA5MjA4MjQyRTNBNDYw
MEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDBDREU1MjFDQUNGRDAwMEY5Qjg3RCAvKiBMUENf
Zml0LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IExQQ19maXQuYzsgcGF0aCA9
IHNpbGsvTFBDX2ZpdC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAwQ0RFODIx
Q0FEMDMzMDBGOUI4N0QgLyogdnFfc3NlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHZxX3NzZS5oOyBwYXRoID0geDg2L3ZxX3NzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTAwQ0RFQjIxQ0FEMUY1MDBGOUI4N0QgLyogcGl0Y2hfc3NlNF8xLmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBpdGNoX3NzZTRfMS5jOyBwYXRoID0geDg2L3Bp
dGNoX3NzZTRfMS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzg1Nyw2ICs3OTA0
LDIxIEBACiAvKiBFbmQgUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAvKiBC
ZWdpbiBQQlhHcm91cCBzZWN0aW9uICovCisJCTQxMDA5MUVGMjQyRTM2MDgwMEM1RURBMiAvKiBo
MjY1ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0MTAw
OTFGNzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uY2MgKi8sCisJCQkJNDEwMDkxRjUy
NDJFMzYyMTAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggKi8sCisJCQkJNDEwMDkxRjMyNDJFMzYy
MTAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5jYyAqLywKKwkJCQk0MTAwOTFGMjI0MkUzNjIx
MDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmggKi8sCisJCQkJNDEwMDkxRjAyNDJFMzYyMDAw
QzVFREEyIC8qIGgyNjVfc3BzX3BhcnNlci5jYyAqLywKKwkJCQk0MTAwOTFGMTI0MkUzNjIxMDBD
NUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmggKi8sCisJCQkJNDEwMDkxRjQyNDJFMzYyMTAwQzVF
REEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyAqLywKKwkJCQk0MTAwOTFGNjI0MkUzNjIyMDBDNUVE
QTIgLyogaDI2NV92cHNfcGFyc2VyLmggKi8sCisJCQkpOworCQkJcGF0aCA9IGgyNjU7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk0MTA1RUI2NDIxMkUwMThDMDA4QzBDMjAg
LyogbGlidnB4ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTkxMTgsMjMgKzkxODAsMzIgQEAKIAkJCQk0MTYyMjVGNTIxNjk4MUY0MDBBOTFDOUIgLyogaGVs
cGVycy5oICovLAogCQkJCTQxNzk1M0FDMjE2OTgyM0QwMDI4MjY2QiAvKiBuYWx1X3Jld3JpdGVy
LmNjICovLAogCQkJCTQxMTUyMUQ1MjE2OTgyMjAwMDBBQkFGNyAvKiBuYWx1X3Jld3JpdGVyLmgg
Ki8sCi0JCQkJNDE3OTUzQjIyMTY5ODI0MTAwMjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NCtQcml2YXRlLmggKi8sCiAJCQkJNDE2MjI1RjEyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ0Nv
ZGVjU3BlY2lmaWNJbmZvSDI2NC5oICovLAogCQkJCTQxNjIyNUVEMjE2OTgxRjIwMEE5MUM5QiAv
KiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQubW0gKi8sCisJCQkJNDE3OTUzQjIyMTY5ODI0MTAw
MjgyNjZCIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCtQcml2YXRlLmggKi8sCisJCQkJNDEw
MDkyMDIyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oICovLAor
CQkJCTQxMDA5MjA4MjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUu
bW0gKi8sCisJCQkJNDEwMDkyMDMyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NStQcml2YXRlLmggKi8sCiAJCQkJNDE3OTUzQjMyMTY5ODI0MjAwMjgyNjZCIC8qIFJU
Q0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmggKi8sCiAJCQkJNDE3OTUzQUQyMTY5ODIzRTAw
MjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Lm0gKi8sCiAJCQkJNDE2MjI1
RjcyMTY5ODFGNDAwQTkxQzlCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmggKi8s
CiAJCQkJNDE3OTUzQUYyMTY5ODIzRjAwMjgyNjZCIC8qIFJUQ0RlZmF1bHRWaWRlb0VuY29kZXJG
YWN0b3J5Lm0gKi8sCiAJCQkJNDExNTIxRDQyMTY5ODIxRjAwMEFCQUY3IC8qIFJUQ0gyNjRQcm9m
aWxlTGV2ZWxJZC5oICovLAogCQkJCTQxMTUyMUQ2MjE2OTgyMjAwMDBBQkFGNyAvKiBSVENIMjY0
UHJvZmlsZUxldmVsSWQubW0gKi8sCisJCQkJNDEwMDkyMDUyNDJFM0E0NTAwQzVFREEyIC8qIFJU
Q0gyNjVQcm9maWxlTGV2ZWxJZC5oICovLAorCQkJCTQxMDA5MjAxMjQyRTNBNDQwMEM1RURBMiAv
KiBSVENIMjY1UHJvZmlsZUxldmVsSWQubW0gKi8sCiAJCQkJNDE2MjI1RjIyMTY5ODFGMzAwQTkx
QzlCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0LmggKi8sCiAJCQkJNDE3OTUzQjAyMTY5
ODI0MDAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0Lm0gKi8sCiAJCQkJNDE2
MjI1RjMyMTY5ODFGMzAwQTkxQzlCIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjQuaCAqLywKIAkJCQk0
MTYyMjVGNDIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5tbSAqLywKKwkJ
CQk0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5oICovLAor
CQkJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tICov
LAogCQkJCTQxNjIyNUVGMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENWaWRlb0VuY29kZXJGYWN0b3J5
SDI2NC5oICovLAogCQkJCTQxNzk1M0IxMjE2OTgyNDAwMDI4MjY2QiAvKiBSVENWaWRlb0VuY29k
ZXJGYWN0b3J5SDI2NC5tICovLAogCQkJCTQxNjIyNUVDMjE2OTgxRjIwMEE5MUM5QiAvKiBSVENW
aWRlb0VuY29kZXJIMjY0LmggKi8sCiAJCQkJNDE2MjI1RjYyMTY5ODFGNDAwQTkxQzlCIC8qIFJU
Q1ZpZGVvRW5jb2RlckgyNjQubW0gKi8sCisJCQkJNDEwMDkyMDQyNDJFM0E0NTAwQzVFREEyIC8q
IFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCAqLywKKwkJCQk0MTAwOTIwNjI0MkUzQTQ1MDBDNUVEQTIg
LyogUlRDVmlkZW9FbmNvZGVySDI2NS5tbSAqLywKIAkJCQk0MTYyMjVFRTIxNjk4MUYyMDBBOTFD
OUIgLyogVUlEZXZpY2UrSDI2NFByb2ZpbGUuaCAqLywKIAkJCQk0MTc5NTNBRTIxNjk4MjNGMDAy
ODI2NkIgLyogVUlEZXZpY2UrSDI2NFByb2ZpbGUubW0gKi8sCiAJCQkpOwpAQCAtMTE3MDksNiAr
MTE3ODAsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNDEzMUM0MkEyMzRDN0Q3MDAwMjhBNjE1
IC8qIGdlbmVyaWNfZnJhbWVfZGVzY3JpcHRvciAqLywKIAkJCQk1Q0REODM0MTFFNDMyNTY0MDA2
MjFFOTIgLyogaDI2NCAqLywKKwkJCQk0MTAwOTFFRjI0MkUzNjA4MDBDNUVEQTIgLyogaDI2NSAq
LywKIAkJCQk0MTEwOUFBNDFFNUZBMTgxMDBDMDk1NUEgLyogaW5jbHVkZSAqLywKIAkJCQk1Q0RE
ODM2NTFFNDMyNUMyMDA2MjFFOTIgLyogbGlieXV2ICovLAogCQkJCTVDNEI0QzEwMUU0MzFGNzUw
MDI2NTFDOCAvKiBiaXRyYXRlX2FkanVzdGVyLmNjICovLApAQCAtMTI2MzIsNiArMTI3MDQsOCBA
QAogCQkJCTVDRDI4NUU5MUU2QTYzOUYwMDk0RkRDOCAvKiBoMjY0X3Nwcm9wX3BhcmFtZXRlcl9z
ZXRzLmggKi8sCiAJCQkJNUNERDgzOUExRTQzOUE2RjAwNjIxRTkyIC8qIGgyNjRfc3BzX3Bwc190
cmFja2VyLmNjICovLAogCQkJCTVDREQ4MzlCMUU0MzlBNkYwMDYyMUU5MiAvKiBoMjY0X3Nwc19w
cHNfdHJhY2tlci5oICovLAorCQkJCTQxMDA5MUVDMjQyRTMxNzMwMEM1RURBMiAvKiBoMjY1X3Zw
c19zcHNfcHBzX3RyYWNrZXIuY2MgKi8sCisJCQkJNDEwMDkxRUIyNDJFMzE3MzAwQzVFREEyIC8q
IGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oICovLAogCQkJCTVDREQ4MzlDMUU0MzlBNkYwMDYy
MUU5MiAvKiBoaXN0b2dyYW0uY2MgKi8sCiAJCQkJNUNERDgzOUQxRTQzOUE2RjAwNjIxRTkyIC8q
IGhpc3RvZ3JhbS5oICovLAogCQkJCTVDREQ4MzlFMUU0MzlBNkYwMDYyMUU5MiAvKiBpbnRlcl9m
cmFtZV9kZWxheS5jYyAqLywKQEAgLTEzMjY3LDExICsxMzM0MSwxNCBAQAogCQk1Q0REODdGQTFF
NDNCRTI2MDA2MjFFOTIgLyogc291cmNlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQk1Q0REODhFQjFFNDNCRjI1MDA2MjFFOTIgLyogcnRjcF9wYWNrZXQg
Ki8sCiAJCQkJNDEzMUM0QzgyMzRDODRBMTAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGlt
ZV9yZWNlaXZlci5jYyAqLywKIAkJCQk0MTMxQzRDRDIzNEM4NEEyMDAyOEE2MTUgLyogYWJzb2x1
dGVfY2FwdHVyZV90aW1lX3JlY2VpdmVyLmggKi8sCiAJCQkJNDEzMUM0Q0MyMzRDODRBMjAwMjhB
NjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGltZV9zZW5kZXIuY2MgKi8sCiAJCQkJNDEzMUM0Q0Uy
MzRDODRBMjAwMjhBNjE1IC8qIGFic29sdXRlX2NhcHR1cmVfdGltZV9zZW5kZXIuaCAqLywKIAkJ
CQk1Q0REODdGQzFFNDNCRTNDMDA2MjFFOTIgLyogYnl0ZV9pby5oICovLAorCQkJCTQxMDA5MURG
MjQyRTJBQTEwMEM1RURBMiAvKiBjb250cmlidXRpbmdfc291cmNlcy5jYyAqLywKKwkJCQk0MTAw
OTFFNDI0MkUyQUEyMDBDNUVEQTIgLyogY29udHJpYnV0aW5nX3NvdXJjZXMuaCAqLywKIAkJCQk0
MTg5MzkwOTI0MkE3MDRDMDA3RkRDNDEgLyogY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIu
Y2MgKi8sCiAJCQkJNDE4OTM5MDQyNDJBNzA0QjAwN0ZEQzQxIC8qIGNyZWF0ZV92aWRlb19ydHBf
ZGVwYWNrZXRpemVyLmggKi8sCiAJCQkJNUNERDg3RkUxRTQzQkUzQzAwNjIxRTkyIC8qIGR0bWZf
cXVldWUuY2MgKi8sCkBAIC0xMzI5MCw2ICsxMzM2Nyw4IEBACiAJCQkJNUNERDg4MEUxRTQzQkUz
QzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3JfY29ycmVjdGlvbl9pbnRlcm5hbC5oICovLAogCQkJ
CTVDREQ4ODBGMUU0M0JFM0MwMDYyMUU5MiAvKiBmb3J3YXJkX2Vycm9yX2NvcnJlY3Rpb24uY2Mg
Ki8sCiAJCQkJNUNERDg4MTAxRTQzQkUzQzAwNjIxRTkyIC8qIGZvcndhcmRfZXJyb3JfY29ycmVj
dGlvbi5oICovLAorCQkJCTQxMDA5MUUyMjQyRTJBQTIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJz
ZXIuY2MgKi8sCisJCQkJNDEwMDkxRTMyNDJFMkFBMjAwQzVFREEyIC8qIGgyNjVfc3BzX3BhcnNl
ci5oICovLAogCQkJCTVDREQ4ODE1MUU0M0JFM0MwMDYyMUU5MiAvKiBwYWNrZXRfbG9zc19zdGF0
cy5jYyAqLywKIAkJCQk1Q0REODgxNjFFNDNCRTNDMDA2MjFFOTIgLyogcGFja2V0X2xvc3Nfc3Rh
dHMuaCAqLywKIAkJCQk1Q0REODgxQTFFNDNCRTNDMDA2MjFFOTIgLyogcmVjZWl2ZV9zdGF0aXN0
aWNzX2ltcGwuY2MgKi8sCkBAIC0xMzI5Nyw3ICsxMzM3Niw2IEBACiAJCQkJNUNERDg4MUUxRTQz
QkUzQzAwNjIxRTkyIC8qIHJlbW90ZV9udHBfdGltZV9lc3RpbWF0b3IuY2MgKi8sCiAJCQkJNUNE
Mjg1RjgxRTZBNjQ1MjAwOTRGREM4IC8qIHJ0Y3BfbmFja19zdGF0cy5jYyAqLywKIAkJCQk1Q0Qy
ODVGOTFFNkE2NDUyMDA5NEZEQzggLyogcnRjcF9uYWNrX3N0YXRzLmggKi8sCi0JCQkJNUNERDg4
RUIxRTQzQkYyNTAwNjIxRTkyIC8qIHJ0Y3BfcGFja2V0ICovLAogCQkJCTVDREQ4ODIxMUU0M0JF
M0MwMDYyMUU5MiAvKiBydGNwX3BhY2tldC5jYyAqLywKIAkJCQk1Q0REODgyMjFFNDNCRTNDMDA2
MjFFOTIgLyogcnRjcF9wYWNrZXQuaCAqLywKIAkJCQk1Q0REODgyNDFFNDNCRTNDMDA2MjFFOTIg
LyogcnRjcF9yZWNlaXZlci5jYyAqLywKQEAgLTEzMzIwLDYgKzEzMzk4LDggQEAKIAkJCQk0MTg5
MzkwMzI0MkE3MDRBMDA3RkRDNDEgLyogcnRwX2Rlc2NyaXB0b3JfYXV0aGVudGljYXRpb24uaCAq
LywKIAkJCQk1Q0REODgyRTFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF9oMjY0LmNjICov
LAogCQkJCTVDREQ4ODJGMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0X2gyNjQuaCAqLywK
KwkJCQk0MTAwOTFFMDI0MkUyQUExMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmNjICovLAor
CQkJCTQxMDA5MUUxMjQyRTJBQTIwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuaCAqLywKIAkJ
CQk1Q0REODgzMDFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF92aWRlb19nZW5lcmljLmNj
ICovLAogCQkJCTVDREQ4ODMxMUU0M0JFM0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0X3ZpZGVvX2dl
bmVyaWMuaCAqLywKIAkJCQk1Q0REODgzNTFFNDNCRTNDMDA2MjFFOTIgLyogcnRwX2Zvcm1hdF92
cDguY2MgKi8sCkBAIC0xNDYyNCw2ICsxNDcwNCw3IEBACiAJCQkJNUNEMjg1QTcxRTZBNjM0MzAw
OTRGREM4IC8qIGFlY19zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1RTgxRTQzQjgx
MDAwNjIxRTkyIC8qIGFlY21fY29yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1RTkxRTQz
QjgxMDAwNjIxRTkyIC8qIGFlY21fZGVmaW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkx
RTcyNDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUMwODg1MjcxRTRBOTlEMjAwNDAzOTk1IC8qIGFlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUMwODg1MjQxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19nY21fb3NzbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUMwODg1MjYxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19pY20uaCBpbiBIZWFkZXJzICov
LApAQCAtMTQ2NzIsNiArMTQ3NTMsNyBAQAogCQkJCTVDRDI4NTQ1MUU2QTYxRDIwMDk0RkRDOCAv
KiBhdWRpb19kZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODU0MzFFNkE2MUQyMDA5
NEZEQzggLyogYXVkaW9fZGVjb2Rlcl9mYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5
MzhEQTI0MkE2OUNDMDA3RkRDNDEgLyogcXVhbGl0eV9zY2FsZXJfcmVzb3VyY2UuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMDA5MUZBMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjlCRjk4MjA1MUM4MjEwMEFCRjBCOSAvKiBhdWRpb19k
ZWNvZGVyX2ZhY3RvcnlfdGVtcGxhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4M0U4MUZF
MjQ4MzUwMDQwQzMwRiAvKiBhdWRpb19kZWNvZGVyX2c3MTEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMDA5MURFMjQyRTBCQkMwMEM1RURBMiAvKiB2aWRlb19mcmFtZV90eXBlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTE0NjkxLDYgKzE0NzczLDcgQEAKIAkJCQk0MTMxQzNDMjIzNEI5N0I0MDAyOEE2
MTUgLyogYXVkaW9fZGVjb2Rlcl9tdWx0aV9jaGFubmVsX29wdXNfaW1wbC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE4OTNBMjEyNDJBNzVDMTAwN0ZEQzQxIC8qIGR0bHNfdHJhbnNwb3J0X2ZhY3Rv
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxODkzOUNBMjQyQTczMzcwMDdGREM0MSAvKiB1c2Vk
X2lkcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMEQyNDJFM0E0NjAwQzVFREEyIC8qIFJU
Q1ZpZGVvRW5jb2RlckgyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzYxMUU0M0M2MDkw
MDYyMUU5MiAvKiBhdWRpb19kZWNvZGVyX29wdXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4
MkYyMUZFMjBFQjUwMDQwQzMwRiAvKiBhdWRpb19kZWNvZGVyX29wdXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxODkzOUQ3MjQyQTczMzcwMDdGREM0MSAvKiB0cmFja19tZWRpYV9pbmZvX21hcC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xNDc1OCwxMCArMTQ4NDEsMTIgQEAKIAkJCQk0MTg5Mzk1QzI0
MkE3MUY1MDA3RkRDNDEgLyogbWluX3ZpZGVvX2JpdHJhdGVfZXhwZXJpbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNUNERDhBRDAxRTQzQzIzOTAwNjIxRTkyIC8qIGF1ZGlvX3NlbmRfc3RyZWFt
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODRCMjFFNkE1RjlGMDA5NEZEQzggLyogYXVkaW9f
c2VuZF9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUU5MjQyRTJBQTMwMEM1RURB
MiAvKiBoMjY1X3Nwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QzRGMUU0M0M1
OEUwMDYyMUU5MiAvKiBhdWRpb19zaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEE5MjFF
NDNDMDBGMDA2MjFFOTIgLyogYXVkaW9fc2luay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUJG
QTAyMzRCODhBNjAwMjhBNjE1IC8qIGF1ZGlvX3NvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDE4OTM5NUYyNDJBNzFGNTAwN0ZEQzQxIC8qIHF1YWxpdHlfcmFtcHVwX2V4cGVyaW1lbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMDA5MjBCMjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1Nw
ZWNpZmljSW5mb0gyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QUQzMUU0M0MyMzkwMDYy
MUU5MiAvKiBhdWRpb19zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg0QjMxRTZBNUY5
RjAwOTRGREM4IC8qIGF1ZGlvX3N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQkYwNTIz
NEI4ODIwMDAyOEE2MTUgLyogYXVkaW9fdHJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtMTQ5ODMs
NiArMTUwNjgsNyBAQAogCQkJCTQxM0EyMTNFMUZFMEYwRUYwMDM3M0U5OSAvKiBla3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4Qjk3MUU0M0MyQjUwMDYyMUU5MiAvKiBlbmNvZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4N0I2MUU0M0JDMDUwMDYyMUU5MiAvKiBlbmNvZGVfbHBjX3N3
Yi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDEwMDkyMDkyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1Zp
ZGVvRGVjb2RlckgyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4QTk2MUU0M0MwMEYwMDYy
MUU5MiAvKiBlbmNvZGVfbmV0ZXFfaW5wdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4M0NE
MUU0MzlBNkYwMDYyMUU5MiAvKiBlbmNvZGVkX2ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUEwOEJBQzIxMjY4MUM4MDAxRDVEN0IgLyogZW5jb2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xNTAxNCw2ICsxNTEwMCw3IEBACiAJCQkJNDEwMkY2QUYyMTI3MzJFNzAwNkFFOEQ3IC8q
IGV4cGFuZF91bWFfbG9nZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUJFNzFBNjIxNUM0NjM3
MDBBN0IxOTYgLyogZXhwci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NEIxRTQzQkYzQTAw
NjIxRTkyIC8qIGV4dGVuZGVkX2ppdHRlcl9yZXBvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
MDA5MUZFMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Zwc19wYXJzZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4OTRFMUU0M0JGM0EwMDYyMUU5MiAvKiBleHRlbmRlZF9yZXBvcnRzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTMxQkY0NjIzNEI4ODIwMDAyOEE2MTUgLyogZXh0ZXJuYWxfaG1h
Yy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwNzcyMzRCODk4RDAwMjhBNjE1IC8qIGZha2Vf
Y2xvY2suaCBpbiBIZWFkZXJzICovLApAQCAtMTU0NTMsNiArMTU1NDAsNyBAQAogCQkJCTVDREQ4
RkRFMUU0M0NENjYwMDYyMUU5MiAvKiByZW1vdGVfYml0cmF0ZV9lc3RpbWF0b3Jfc2luZ2xlX3N0
cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0QjcyMzRDODNERDAwMjhBNjE1IC8qIHJl
bW90ZV9lc3RpbWF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGRTIxRTQzQ0Q2NjAwNjIx
RTkyIC8qIHJlbW90ZV9lc3RpbWF0b3JfcHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5
MUY5MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxOUM4M0M1MUZFMjQ3QjQwMDQwQzMwRiAvKiByZW1vdGVfbnRwX3RpbWVfZXN0aW1hdG9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTQ1RTREQTFFRjhDQzlCMDBGQ0Y2RTYgLyogcmVuZGVy
X2J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1RDYxRTZBNjM0MzAwOTRGREM4IC8q
IHJlbmRlcl9kZWxheV9idWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTU1NzgsNiArMTU2NjYs
NyBAQAogCQkJCTVDREQ4ODlFMUU0M0JFM0MwMDYyMUU5MiAvKiBydGNwX3NlbmRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUM0RUYyMzRDODYxMTAwMjhBNjE1IC8qIHJ0Y3Bfc3RhdGlzdGlj
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzMDMxRkUyMEYwMjAwNDBDMzBGIC8qIHJ0Y3Bf
dHJhbnNjZWl2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUZEMjQyRTM2MjIwMEM1RURB
MiAvKiBoMjY1X2NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzMDExRkUyMEYwMjAw
NDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXJfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTlDODMwNTFGRTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9pbXBsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTNBMjQzRTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDUGVlckNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovLApAQCAtMTU2MjYsNiArMTU3MTUsNyBAQAogCQkJCTQxM0EyNDRG
MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTNFNjc4RjIxNjk4N0RCMDBFRjM3RUQgLyogUlRDVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzRTY3OTEyMTY5ODdEQjAwRUYzN0VEIC8qIFJUQ1ZpZGVvRnJhbWVCdWZmZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMDA5MUVEMjQyRTMxNzQwMEM1RURBMiAvKiBoMjY1X3Zwc19z
cHNfcHBzX3RyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDQxMUZFMTk5MUEwMDM3
M0U5OSAvKiBSVENWaWRlb0ZyYW1lQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ2
RjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9SZW5kZXJlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzQTI0NjExRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvU291cmNlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTE1ODE4LDYgKzE1OTA4LDcgQEAKIAkJCQk0MTMxQzEwMzIzNEI4OUUyMDAyOEE2
MTUgLyogc3RyaW5nX2VuY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTNBMEEyNDJBNzUz
QzAwN0ZEQzQxIC8qIHN1YmJhbmRfbmVhcmVuZF9kZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUMxMDUyMzRCODlFMjAwMjhBNjE1IC8qIHN0cmluZ190b19udW1iZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxMDA5MjBDMjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjUrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTNBNDEyNDJBNzZGMjAw
N0ZEQzQxIC8qIG9wZXJhdGlvbnNfY2hhaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMTMy
MjM0Qjg5RTIwMDI4QTYxNSAvKiBzdHJpbmdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
ODkzOTg2MjQyQTcyNTEwMDdGREM0MSAvKiBwcmlvcl9zaWduYWxfbW9kZWwuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTU5NTgsNiArMTYwNDksNyBAQAogCQkJCTQxNjIyNUQzMjE2OTgxODEwMEE5MUM5
QiAvKiB2aWRlb19mcmFtZV9idWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMDJGNkNGMjEy
NzMzQjcwMDZBRThENyAvKiB2aWRlb19xdWFsaXR5X29ic2VydmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTlDODJDNDFGRTIwRENEMDA0MEMzMEYgLyogdmlkZW9fcmVjZWl2ZV9zdHJlYW0uaCBp
biBIZWFkZXJzICovLAorCQkJCTQxMDA5MjBFMjQyRTNBNDYwMEM1RURBMiAvKiBSVENIMjY1UHJv
ZmlsZUxldmVsSWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NUNCMUU0M0I1QzAwMDYyMUU5
MiAvKiB2aWRlb19yZWNlaXZlX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUM0QjRDMjEx
RTQzMUY3NTAwMjY1MUM4IC8qIHZpZGVvX3JlbmRlcl9mcmFtZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDRDI4NDZDMUU2QTU3RjQwMDk0RkRDOCAvKiB2aWRlb19yb3RhdGlvbi5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNzQ3Niw4ICsxNzU2OCwxMCBAQAogCQkJCTQxMzFDMDMzMjM0Qjg5OEQwMDI4
QTYxNSAvKiBjcnlwdF9zdHJpbmcuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzNCNjIzNEI5
NzEyMDAyOEE2MTUgLyogY3J5cHRvX29wdGlvbnMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTg5
Mzk4QzI0MkE3MjUyMDA3RkRDNDEgLyogbnNfZmZ0LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEw
MDkxRkMyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFCRjI2MjM0Qjg4MjAwMDI4QTYxNSAvKiBkYXRhX2NoYW5uZWwuY2MgaW4gU291
cmNlcyAqLywKIAkJCQk0MTMxQzMxMTIzNEI4REMyMDAyOEE2MTUgLyogZGF0YV9jaGFubmVsX2lu
dGVyZmFjZS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUY4MjQyRTM2MjIwMEM1RURBMiAv
KiBoMjY1X3Nwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTkyNDFFMTIxMjc1QTMw
MDA2MzRGQ0YgLyogZGF0YV9yYXRlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4OTM5NUIyNDJB
NzFGNTAwN0ZEQzQxIC8qIG1pbl92aWRlb19iaXRyYXRlX2V4cGVyaW1lbnQuY2MgaW4gU291cmNl
cyAqLywKIAkJCQk0MTMxQzAyNDIzNEI4OThEMDAyOEE2MTUgLyogZGF0YV9yYXRlX2xpbWl0ZXIu
Y2MgaW4gU291cmNlcyAqLywKQEAgLTE3Njc4LDExICsxNzc3MiwxNCBAQAogCQkJCTQxMDJGNkUw
MjEyNzM0MTYwMDZBRThENyAvKiBpMDEwX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVD
RDI4NDY3MUU2QTU3RjQwMDk0RkRDOCAvKiBpNDIwX2J1ZmZlci5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTVDNEI0QzFCMUU0MzFGNzUwMDI2NTFDOCAvKiBpNDIwX2J1ZmZlcl9wb29sLmNjIGluIFNv
dXJjZXMgKi8sCisJCQkJNDEwMDkxRUUyNDJFMzE3NDAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19w
cHNfdHJhY2tlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMUYxMjM0QjhBNEIwMDI4QTYx
NSAvKiBpY2VfY3JlZGVudGlhbHNfaXRlcmF0b3IuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTg5
M0E0QTI0MkE3Nzg5MDA3RkRDNDEgLyogZXZlbnRfYmFzZWRfZXhwb25lbnRpYWxfbW92aW5nX2F2
ZXJhZ2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzNFNjIzNEM3QTA4MDAyOEE2MTUgLyog
aWNlX2xvZ2dlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjU1MjM0Qjg4MjAwMDI4QTYx
NSAvKiBpY2Vfc2VydmVyX3BhcnNpbmcuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MTAwOTIxMDI0
MkUzQTQ2MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTQxMzFCRjBFMjM0Qjg4MjAwMDI4QTYxNSAvKiBpY2VfdHJhbnNwb3J0LmNjIGluIFNvdXJj
ZXMgKi8sCisJCQkJNDEwMDkyMTEyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJ
bmZvSDI2NS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMzFBMjM0QjhEQzIwMDI4QTYxNSAv
KiBpY2VfdHJhbnNwb3J0X2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzFCRjIz
NEI4QTRBMDAyOEE2MTUgLyogaWNlX3RyYW5zcG9ydF9pbnRlcm5hbC5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxODkzQTVFMjQyQTc3QjgwMDdGREM0MSAvKiBldmVudF9yYXRlX2NvdW50ZXIuY2Mg
aW4gU291cmNlcyAqLywKQEAgLTE3NzUwLDYgKzE3ODQ3LDcgQEAKIAkJCQk1Q0REODdDNTFFNDNC
QzA1MDA2MjFFOTIgLyogbHBjX2FuYWx5c2lzLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJD
MTFFNDNDMkI1MDA2MjFFOTIgLyogbHBjX2VuY29kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDg3QzcxRTQzQkMwNTAwNjIxRTkyIC8qIGxwY19nYWluX3N3Yl90YWJsZXMuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxMDA5MUU2MjQyRTJBQTMwMEM1RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0NFRTFGNzlCMzM0MDAzODdCNEQgLyogbHBjX21hc2tp
bmdfbW9kZWwuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4N0M5MUU0M0JDMDUwMDYyMUU5MiAv
KiBscGNfc2hhcGVfc3diMTJfdGFibGVzLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODdDQjFF
NDNCQzA1MDA2MjFFOTIgLyogbHBjX3NoYXBlX3N3YjE2X3RhYmxlcy5jIGluIFNvdXJjZXMgKi8s
CkBAIC0xODAyNSwxMCArMTgxMjMsMTIgQEAKIAkJCQk0MTc5NTNCNzIxNjk4MjQyMDAyODI2NkIg
LyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkubSBpbiBTb3VyY2VzICovLAogCQkJCTQx
NDRCM0Y1MjE2QjA4MUIwMDQzNjNBQyAvKiBSVENFbmNvZGVkSW1hZ2UrUHJpdmF0ZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTQxNzk1M0ZBMjE2OTg0QkUwMDI4MjY2QiAvKiBSVENFbmNvZGVkSW1h
Z2UubSBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUZCMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1
X3Bwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTg5MzkxNTI0MkE3MDRFMDA3RkRD
NDEgLyogdHJhbnNmb3JtYWJsZV9lbmNvZGVkX2ZyYW1lLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDE0NEIzRDYyMTY5OEExQTAwNDM2M0FDIC8qIFJUQ0gyNjRQcm9maWxlTGV2ZWxJZC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTQxNDRCM0QzMjE2OTg5NkQwMDQzNjNBQyAvKiBSVENOYXRpdmVJNDIw
QnVmZmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NEIzRDEyMTY5ODk2NzAwNDM2M0FDIC8q
IFJUQ05hdGl2ZU11dGFibGVJNDIwQnVmZmVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDky
MEYyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUubW0gaW4gU291cmNlcyAq
LywKIAkJCQk0MTlDODJCOTFGRTIwRENEMDA0MEMzMEYgLyogcnRjcF9kZW11eGVyLmNjIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDEzMUJGMUEyMzRCODgyMDAwMjhBNjE1IC8qIHJ0Y3BfbXV4X2ZpbHRl
ci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUZBMUU2QTY0NTIwMDk0RkRDOCAvKiBydGNw
X25hY2tfc3RhdHMuY2MgaW4gU291cmNlcyAqLywKQEAgLTE4MjM2LDYgKzE4MzM2LDcgQEAKIAkJ
CQk0MTkyNDFFMjIxMjc1QTMwMDA2MzRGQ0YgLyogdGltZV9kZWx0YS5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4QTVBMUU0M0JGQjMwMDYyMUU5MiAvKiB0aW1lX3N0cmV0Y2guY2MgaW4gU291
cmNlcyAqLywKIAkJCQk1Q0REODhEQTFFNDNCRTNEMDA2MjFFOTIgLyogdGltZV91dGlsLmNjIGlu
IFNvdXJjZXMgKi8sCisJCQkJNDEwMDkyMEEyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gyNjVQcm9m
aWxlTGV2ZWxJZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMTRBMjM0Qjg5RTIwMDI4QTYx
NSAvKiB0aW1lX3V0aWxzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5MjQxRTMyMTI3NUEzMDAw
NjM0RkNGIC8qIHRpbWVzdGFtcC5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMTMzMjM0Qjg5
RTIwMDI4QTYxNSAvKiB0aW1lc3RhbXBfYWxpZ25lci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTgz
NTQsNiArMTg0NTUsNyBAQAogCQkJCTVDREQ4MzY3MUU0MzI1RDUwMDYyMUU5MiAvKiB3ZWJydGNf
bGlieXV2LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMyN0EyMzRCOENDNDAwMjhBNjE1IC8q
IHdlYnJ0Y19tZWRpYV9lbmdpbmUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzI3ODIzNEI4
Q0M0MDAyOEE2MTUgLyogd2VicnRjX21lZGlhX2VuZ2luZV9kZWZhdWx0cy5jYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTQxMDA5MUZGMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5jYyBpbiBT
b3VyY2VzICovLAogCQkJCTQxMzFCRjUwMjM0Qjg4MjAwMDI4QTYxNSAvKiB3ZWJydGNfc2RwLmNj
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJFRjQyMzRCODgyMDAwMjhBNjE1IC8qIHdlYnJ0Y19z
ZXNzaW9uX2Rlc2NyaXB0aW9uX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODZF
NDFFNDNCQTI4MDA2MjFFOTIgLyogd2VicnRjX3ZhZC5jIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAppbmRleCA5ZjBhNDA2ZGU0MTQ5MTgzZjg1MTE2MTI0YjNlZDVjMTliMWVmMmViLi4w
OTRkMzNjNzNkMTgyNjZiNmYyZjE5MDYzZDBiZjVmZjI2MmJmYWI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKQEAgLTMyNSw3ICszMjUsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFn
ZUNvbmZpZ3VyYXRpb24pCiAjZW5kaWYKIAogI2lmIFVTRShMSUJXRUJSVEMpCi0gICAgbV9saWJX
ZWJSVENQcm92aWRlci0+c3VwcG9ydHNWUDgoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS53ZWJSVENWUDhDb2RlY0VuYWJsZWQoKSk7CisgICAgbV9saWJXZWJSVENQcm92
aWRlci0+c3VwcG9ydHNIMjY1KFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkud2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgpKTsKICNlbmRpZgogCiAgICAgbV9jb3JzRGlzYWJs
aW5nUGF0dGVybnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwYWdlQ29uZmlndXJhdGlvbi5jb3Jz
RGlzYWJsaW5nUGF0dGVybnMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggZGU3ZTM4ZDI1ZWIyMzNjODg1YTgxNGZkY2MyMmM2YmMz
OGM0NTI0YS4uMWVlMGQyNzcxNTc1MTEyYWRiODYwMjRkOTBjMThjMDZjYWI2NjkzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTIzNiw4ICsy
MzYsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAgYm9vbCB3ZWJSVENEVE1G
RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENEVE1GRW5hYmxlZDsgfQogICAgIHZv
aWQgc2V0V2ViUlRDRFRNRkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc1dlYlJUQ0RUTUZF
bmFibGVkID0gaXNFbmFibGVkOyB9Ci0gICAgYm9vbCB3ZWJSVENWUDhDb2RlY0VuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzV2ViUlRDVlA4Q29kZWNFbmFibGVkOyB9Ci0gICAgdm9pZCBzZXRX
ZWJSVENWUDhDb2RlY0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc1dlYlJUQ1ZQOENvZGVj
RW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgd2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENIMjY1Q29kZWNFbmFibGVkOyB9CisgICAgdm9pZCBz
ZXRXZWJSVENIMjY1Q29kZWNFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXNXZWJSVENIMjY1
Q29kZWNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBwZWVyQ29ubmVjdGlvbkVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUGVlckNvbm5lY3Rpb25FbmFibGVkOyB9CiAgICAgdm9p
ZCBzZXRQZWVyQ29ubmVjdGlvbkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc1BlZXJDb25u
ZWN0aW9uRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgd2ViUlRDTUROU0lDRUNhbmRp
ZGF0ZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1dlYlJUQ01ETlNJQ0VDYW5kaWRhdGVz
RW5hYmxlZDsgfQpAQCAtNTAyLDcgKzUwMiw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoV0VC
X1JUQykKICAgICBib29sIG1faXNXZWJSVENEVE1GRW5hYmxlZCB7IHRydWUgfTsKLSAgICBib29s
IG1faXNXZWJSVENWUDhDb2RlY0VuYWJsZWQgeyB0cnVlIH07CisgICAgYm9vbCBtX2lzV2ViUlRD
SDI2NUNvZGVjRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1faXNQZWVyQ29ubmVjdGlvbkVu
YWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzV2ViUlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFi
bGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNXZWJSVENIMjY0U2ltdWxjYXN0RW5hYmxlZCB7
IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXggYTBiNGNmNzE2
ZDU0MGViOWNlYjRhMGU2NzZlZTAyNjQzZmU4ZWQ5MC4uMjJiMTBkZDQ4MGM4N2Y0ZGNkMDQyZmJj
ODhjOTk1NGRlMzIwZDc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAg
LTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlRW51bWVyYXRpbmdBbGxO
ZXR3b3JrSW50ZXJmYWNlcygpOwogICAgIHZvaWQgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3Jr
SW50ZXJmYWNlcygpOwogCi0gICAgdm9pZCBzdXBwb3J0c1ZQOChib29sIHZhbHVlKSB7IG1fc3Vw
cG9ydHNWUDggPSB2YWx1ZTsgfQorICAgIHZvaWQgc3VwcG9ydHNIMjY1KGJvb2wgdmFsdWUpIHsg
bV9zdXBwb3J0c0gyNjUgPSB2YWx1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlTm9uTG9j
YWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zID0g
dHJ1ZTsgfQogCiAgICAgcnRjOjpSVENDZXJ0aWZpY2F0ZUdlbmVyYXRvciYgY2VydGlmaWNhdGVH
ZW5lcmF0b3IoKTsKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2U+IG1fZmFj
dG9yeTsKICAgICBib29sIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zIHsgZmFsc2Ug
fTsKLSAgICBib29sIG1fc3VwcG9ydHNWUDggeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdXBwb3J0
c0gyNjUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVMb2dnaW5nIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJD
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKaW5kZXggNGU1NTM4OGVhZGUxMDk4YWU5MWJmYjQ5
NjZkYTQ0Zjg5NmM4YTM0Mi4uYzczNzE3NDRmNzhlODZmZDUzNGFhOTkyYjI4NWQ1OWQ1Y2YxMTZl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcApAQCAt
NTQsNyArNTQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRlb0RlY29kZXJGYWN0b3J5
PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNvZAogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIGNvZGVjU3VwcG9ydCA9IG1fc3VwcG9ydHNWUDggPyB3
ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA6IHdlYnJ0Yzo6V2ViS2l0Q29k
ZWNTdXBwb3J0OjpIMjY0OworICAgIGF1dG8gY29kZWNTdXBwb3J0ID0gbV9zdXBwb3J0c0gyNjUg
PyB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NFZQOEFuZEgyNjUgOiB3ZWJydGM6Oldl
YktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQODsKICAgICByZXR1cm4gd2VicnRjOjpjcmVhdGVX
ZWJLaXREZWNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQpOwogfQogCkBAIC02Miw3ICs2Miw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rvcnk+IExpYldlYlJUQ1By
b3ZpZGVyQ29jb2E6OmNyZWF0ZUVuY29kCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
IAotICAgIGF1dG8gY29kZWNTdXBwb3J0ID0gbV9zdXBwb3J0c1ZQOCA/IHdlYnJ0Yzo6V2ViS2l0
Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4IDogd2VicnRjOjpXZWJLaXRDb2RlY1N1cHBvcnQ6Okgy
NjQ7CisgICAgYXV0byBjb2RlY1N1cHBvcnQgPSBtX3N1cHBvcnRzSDI2NSA/IHdlYnJ0Yzo6V2Vi
S2l0Q29kZWNTdXBwb3J0OjpIMjY0VlA4QW5kSDI2NSA6IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBw
b3J0OjpIMjY0QW5kVlA4OwogICAgIHJldHVybiB3ZWJydGM6OmNyZWF0ZVdlYktpdEVuY29kZXJG
YWN0b3J5KGNvZGVjU3VwcG9ydCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCA5NDVkZGZkNTc2ZDI2ZmUzYjgyNzhjZDI2OTBlYzBmYTRlOGY1ZWY2Li42ODVjZDM1
MGU2MjU2OGNkZjY5ZDg2NjQyYmIyYWM5NDJkODBmMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC01NTMsNyArNTUzLDcgQEAgdm9pZCBJbnRlcm5hbHM6OnJlc2V0VG9D
b25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAgICBhdXRvJiBydGNQcm92aWRlciA9IHBhZ2Uu
bGliV2ViUlRDUHJvdmlkZXIoKTsKICAgICBXZWJDb3JlOjp1c2VSZWFsUlRDUGVlckNvbm5lY3Rp
b25GYWN0b3J5KHJ0Y1Byb3ZpZGVyKTsKICAgICBydGNQcm92aWRlci5kaXNhYmxlTm9uTG9jYWxo
b3N0Q29ubmVjdGlvbnMoKTsKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldFdlYlJUQ1ZQOENvZGVjRW5hYmxlZCh0cnVlKTsKKyAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlJUQ0gyNjVDb2RlY0VuYWJsZWQodHJ1
ZSk7CiAgICAgcGFnZS5zZXR0aW5ncygpLnNldFdlYlJUQ0VuY3J5cHRpb25FbmFibGVkKHRydWUp
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4
IGM2ZmRkYjYxMjBmMmM5NThiMzAyMTU1MjIyMGI4OTkxZmFiMzIyZWYuLmY1NDQ4Mzc2YTM3ZWVi
NDAyODM5OWQxNzM0NzQ5MmI0MzEzMzBlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXMueWFtbApAQCAtNTgxLDE0ICs1ODEsMTQgQEAgSW50ZXJydXB0QXVkaW9PblBhZ2VW
aXNpYmlsaXR5Q2hhbmdlRW5hYmxlZDoKICAgd2ViY29yZUJpbmRpbmc6IFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi1XZWJSVENWUDhD
b2RlY0VuYWJsZWQ6CitXZWJSVENIMjY1Q29kZWNFbmFibGVkOgogICB0eXBlOiBib29sCi0gIGRl
ZmF1bHRWYWx1ZTogdHJ1ZQorICBkZWZhdWx0VmFsdWU6IGZhbHNlCiAgIHdlYmNvcmVCaW5kaW5n
OiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIGNvbmRpdGlvbjogRU5BQkxFKFdFQl9SVEMpCi0g
IGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViUlRDIFZQOCBjb2RlYyIKLSAgaHVtYW5SZWFkYWJsZURl
c2NyaXB0aW9uOiAiRW5hYmxlIFdlYlJUQyBWUDggY29kZWMiCi0gIGNhdGVnb3J5OiBpbnRlcm5h
bAorICBodW1hblJlYWRhYmxlTmFtZTogIldlYlJUQyBIMjY1IGNvZGVjIgorICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJFbmFibGUgV2ViUlRDIEgyNjUgY29kZWMiCisgIGNhdGVnb3J5OiBl
eHBlcmltZW50YWwKIAogV2ViUlRDUGxhdGZvcm1Db2RlY3NJbkdQVVByb2Nlc3NFbmFibGVkOgog
ICB0eXBlOiBib29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDIyNDM4NGEyYjM1Y2YxNDRjMGYzZTc2MjNjZmRiNDcxYjViYWM4OTIuLjQzYjgw
NzliZjI5MzU0ODY2OTU4NTM3MmFjZGMzYTQ0Yzg5YTVlYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNjYyLDYgKzM2NjIsMTAgQEAgdm9p
ZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBz
dG9yZSkKICAgICBpZiAobV9kcmF3aW5nQXJlYSkKICAgICAgICAgbV9kcmF3aW5nQXJlYS0+dXBk
YXRlUHJlZmVyZW5jZXMoc3RvcmUpOwogCisjaWYgVVNFKExJQldFQlJUQykKKyAgICBtX3BhZ2Ut
PmxpYldlYlJUQ1Byb3ZpZGVyKCkuc3VwcG9ydHNIMjY1KFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgpKTsKKyNlbmRpZgorCiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIC8vIEZJWE1FOiB1c2VHUFVQcm9jZXNzRm9yTWVk
aWEgc2hvdWxkIGJlIGEgUnVudGltZUVuYWJsZWRGZWF0dXJlIHNpbmNlIGl0J3MgZ2xvYmFsLgog
ICAgIHN0YXRpY19jYXN0PFdlYk1lZGlhU3RyYXRlZ3kmPihwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+
bWVkaWFTdHJhdGVneSgpKS5zZXRVc2VHUFVQcm9jZXNzKHNldHRpbmdzLnVzZUdQVVByb2Nlc3NG
b3JNZWRpYSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBmZDI1M2Y2NWI2NWU3YzMyY2IwMWM4Y2VjYTVlNjg3NzU5MjIz
OTBmLi42MzkwNDBiZDRkOTczNDAzMmNiYWM0ZDc3OWMzMjZjMWYyOThhNjcxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMjAtMDQtMDEgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIFdlYlJUQyBIRVZDCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQyODMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWJydGMvaDI2NS5odG1sOiBBZGRlZC4KKwogMjAyMC0wNC0wMSAgeW91ZW5uIGZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQnVtcCBsaWJ3ZWJydGMgdG8gTTgyCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBmZWZiZTkwOGUzZjRlZTUwZThiNDFlNDg3YzQ5N2Y5MzU4ZmU3Yzgw
Li5lYjE2OTMzYjhmYTg3YzU1M2UzOWQzZDRmNTZkMWI5M2JjNmUzMWM3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTE3NzgsNiArMTc3OCw5IEBAIHdlYmtpdC5vcmcvYi8xNDYxODIgZWRpdGluZy9z
ZWxlY3Rpb24vbGVhay1kb2N1bWVudC13aXRoLXNlbGVjdGlvbi1pbnNpZGUuaHRtbCBbCiAjIE1l
ZGlhIFNlc3Npb25zIGlzIG5vdCB5ZXQgZW5hYmxlZCBieSBkZWZhdWx0OiBFTkFCTEUoTUVESUFf
U0VTU0lPTikKIG1lZGlhL3Nlc3Npb24gWyBTa2lwIF0KIAorIyBFeHBlcmltZW50YWwgSDI2NSBz
dXBwb3J0Lgord2VicnRjL2gyNjUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKIHdlYnJ0Yy9zaW11
bGNhc3QtaDI2NC5odG1sIFsgU2xvdyBdCiAKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFN5bmNocm9uaXphdGlvblNvdXJjZXMuaHR0cHMu
aHRtbCBbIFNsb3cgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2gyNjUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2VicnRjL2gyNjUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJmOTgzYmFmOWIzM2UwMjE5NjE5NDdlODNiNmEzYTZkZWZlZGVjMzMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBA
QAorVmlkZW8gc2hvdWxkIGJlIHJ1bm5pbmcsIGdvIHRvIGJsYWNrIGFuZCBydW5uaW5nLgorRm9s
bG93aW5nLCBzaG91bGQgYmUgYSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8sIGEgYmxhY2sgZnJhbWUg
YW5kIGEgc25hcHNob3Qgb2YgdGhlIHZpZGVvLgorICAKKworUEFTUyBIMjY1IGluIGdldENhcGFi
aWxpdGllcyAKK1BBU1MgVmVyaWZ5IEgyNjUgYWN0aXZhdGlvbiAKK1BBU1MgU2V0dGluZyB2aWRl
byBleGNoYW5nZSAKK1BBU1MgRW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25uZWN0ZWQg
CitQQVNTIFRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgCitQQVNT
IFRyYWNrIGlzIGRpc2FibGVkLCB2aWRlbyBzaG91bGQgYmUgYmxhY2sgCitQQVNTIFRyYWNrIGlz
IGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2sgMiAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2VicnRjL2gyNjUuaHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTY1ZTY2NzViNWM2NDk0ZDFjMjJiODgwMGRiMWFjOGU1NDMxMGU2YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1Lmh0bWwKQEAgLTAsMCArMSw5
NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VGVzdGluZyBtdXRpbmcgdmlkZW88L3Rp
dGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2
PlZpZGVvIHNob3VsZCBiZSBydW5uaW5nLCBnbyB0byBibGFjayBhbmQgcnVubmluZy48L2Rpdj4K
KyAgICAgICAgPGRpdj5Gb2xsb3dpbmcsIHNob3VsZCBiZSBhIHNuYXBzaG90IG9mIHRoZSB2aWRl
bywgYSBibGFjayBmcmFtZSBhbmQgYSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8uPC9kaXY+CisgICAg
ICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5IHBsYXlzSW5saW5lIHdpZHRoPSIzMjAiIGhl
aWdodD0iMjQwIj48L3ZpZGVvPgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMxIiB3aWR0aD0i
MzIwIiBoZWlnaHQ9IjI0MCI+PC9jYW52YXM+CisgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczIi
IHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAgICAgPGNhbnZhcyBpZD0i
Y2FudmFzMyIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFzPgorICAgICAgICA8c2Ny
aXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KK3ZhciBo
YXNIMjY1ID0gZmFsc2U7Cit0ZXN0KCgpID0+IHsKKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgd2luZG93LmludGVybmFscy5jbGVhclBlZXJDb25uZWN0aW9uRmFjdG9yeSgpOwor
CisgICAgY29uc3QgY29kZWNzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygidmlkZW8i
KS5jb2RlY3M7CisgICAgaGFzSDI2NSA9IGNvZGVjcy5zb21lKChjb2RlYykgPT4geyByZXR1cm4g
Y29kZWMubWltZVR5cGUgPT0gInZpZGVvL0gyNjUiOyB9KTsKKyAgICBhc3NlcnRfdHJ1ZShoYXNI
MjY1KTsKK30sICJIMjY1IGluIGdldENhcGFiaWxpdGllcyIpOworCitpZiAoaGFzSDI2NSkgewor
ICAgIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgICAgICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgICAgICBwYy5hZGRUcmFuc2NlaXZlcigidmlkZW8i
KTsKKyAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOwor
ICAgICAgICBwYy5jbG9zZSgpOworICAgICAgICBhc3NlcnRfdHJ1ZShkZXNjcmlwdGlvbi5zZHAu
aW5kZXhPZigiSDI2NSIpICE9PSAtMSwgIkgyNjUgY29kZWMgaXMgaW4gdGhlIFNEUCIpOworICAg
IH0sICJWZXJpZnkgSDI2NSBhY3RpdmF0aW9uIikKKworICAgIHZhciB0cmFjazsKKyAgICB2YXIg
cmVtb3RlVHJhY2s7CisgICAgdmFyIHJlY2VpdmluZ0Nvbm5lY3Rpb247CisgICAgcHJvbWlzZV90
ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSh7dmlkZW86IHt3aWR0aDogMzIwLCBoZWlnaHQ6IDI0MCwgZmFjaW5nTW9kZTog
ImVudmlyb25tZW50In19KS50aGVuKChsb2NhbFN0cmVhbSkgPT4geworICAgICAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgICAgICB0
cmFjayA9IGxvY2FsU3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF07CisKKyAgICAgICAgICAgICAg
ICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGZpcnN0Q29ubmVjdGlvbi5hZGRUcmFjayh0cmFjaywgbG9jYWxTdHJlYW0pOworICAg
ICAgICAgICAgICAgIH0sIChzZWNvbmRDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24gPSBzZWNvbmRDb25uZWN0aW9uOworICAgICAgICAgICAg
ICAgICAgICBzZWNvbmRDb25uZWN0aW9uLm9udHJhY2sgPSAodHJhY2tFdmVudCkgPT4geworICAg
ICAgICAgICAgICAgICAgICAgICAgcmVtb3RlVHJhY2sgPSB0cmFja0V2ZW50LnRyYWNrOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAg
ICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH0sIHsgb2JzZXJ2ZU9mZmVyIDog
KG9mZmVyKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIG9mZmVyLnNkcCA9IHNldENvZGVjKG9m
ZmVyLnNkcCwgIkgyNjUiKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mZmVyOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBzZXRU
aW1lb3V0KCgpID0+IHJlamVjdCgiVGVzdCB0aW1lZCBvdXQiKSwgMjAwMCk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSkudGhlbigocmVtb3RlU3RyZWFtKSA9PiB7CisgICAgICAgICAgICB2
aWRlby5zcmNPYmplY3QgPSByZW1vdGVTdHJlYW07CisgICAgICAgICAgICByZXR1cm4gdmlkZW8u
cGxheSgpOworICAgICAgICB9KTsKKyAgICB9LCAiU2V0dGluZyB2aWRlbyBleGNoYW5nZSIpOwor
CisgICAgcHJvbWlzZV90ZXN0KCgpID0+IHsKKyAgICAgICAgaWYgKHJlY2VpdmluZ0Nvbm5lY3Rp
b24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVjdGVkIikKKyAgICAgICAgICAgIHJldHVybiBQ
cm9taXNlLnJlc29sdmUoKTsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBy
ZWplY3QpID0+IHsKKyAgICAgICAgICAgIHJlY2VpdmluZ0Nvbm5lY3Rpb24ub25jb25uZWN0aW9u
c3RhdGVjaGFuZ2UgPSAoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKHJlY2VpdmluZ0Nvbm5l
Y3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAiY29ubmVjdGVkIikKKyAgICAgICAgICAgICAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkg
PT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCAyMDAwKTsKKyAgICAgICAgfSk7CisgICAgfSwg
IkVuc3VyaW5nIGNvbm5lY3Rpb24gc3RhdGUgaXMgY29ubmVjdGVkIik7CisKKyAgICBwcm9taXNl
X3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgcmV0dXJuIGNoZWNrVmlkZW9CbGFjayhmYWxzZSwg
Y2FudmFzMSwgdmlkZW8pOworICAgIH0sICJUcmFjayBpcyBlbmFibGVkLCB2aWRlbyBzaG91bGQg
bm90IGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAg
dHJhY2suZW5hYmxlZCA9IGZhbHNlOworICAgICAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNrKHRy
dWUsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNo
b3VsZCBiZSBibGFjayIpOworCisgICAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgICAg
IHRyYWNrLmVuYWJsZWQgPSB0cnVlOworICAgICAgICByZXR1cm4gY2hlY2tWaWRlb0JsYWNrKGZh
bHNlLCBjYW52YXMyLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlzIGVuYWJsZWQsIHZpZGVvIHNo
b3VsZCBub3QgYmUgYmxhY2sgMiIpOworfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395361</attachid>
            <date>2020-04-03 02:53:24 -0700</date>
            <delta_ts>2020-04-03 03:46:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204283-20200403115319.patch</filename>
            <type>text/plain</type>
            <size>252657</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCAwMGE3ZWFkNGQ2ZmUyNDI5MTIxNzgwY2VkOWNlMmI0ZWQ2OTMwNjljLi44NDBi
NmRjNmI3YWRlMTVlZTlmNjk4MjI3ZjY0OGMzM2E1MjI0YjMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjYgQEAKKzIwMjAtMDQtMDMgIHlvdWVubiBm
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQg
Zm9yIFdlYlJUQyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAg
ICAgICAgQWRkIEgyNjUgcGFja2V0aXphdGlvbi9kZXBhY2tldGl6YXRpb24gYW5kIE9iakMgSDI2
NSBlbmNvZGVyL2RlY29kZXIuCisgICAgICAgIFN1cHBvcnQgaXMgc3dpdGNoYWJsZSB1c2luZyBh
IGJvb2xlYW4gZ2l2ZW4gdG8gdGhlIGRlY29kZXIvZW5jb2RlciBmYWN0b3JpZXMuCisKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmg6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2RlYy5oOgorICAgICAg
ICAod2VicnRjOjpWaWRlb0NvZGVjSDI2NTo6b3BlcmF0b3IhPSBjb25zdCk6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2M6CisgICAgICAg
ICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuaDoKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcu
Y2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29k
ZXJfY29uZmlnLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9idWlsZF9vdmVycmlkZXMvYnVp
bGQuZ25pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5bG9hZF9wYXJhbXMu
Y2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vQlVJTEQuZ246CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5jYzogQWRk
ZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1v
bi5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gy
NjVfcHBzX3BhcnNlci5jYzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9jb21tb25f
dmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaDogQWRkZWQuCisgICAgICAgICogU291cmNlL3dl
YnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIuY2M6IEFkZGVkLgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmg6IEFk
ZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNf
cGFyc2VyLmNjOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9o
MjY1L2gyNjVfdnBzX3BhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21l
ZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbWVk
aWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVs
ZXMvcnRwX3J0Y3AvQlVJTEQuZ246CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0
cF9ydGNwL3NvdXJjZS9jcmVhdGVfdmlkZW9fcnRwX2RlcGFja2V0aXplci5jYzoKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2gyNjVfc3BzX3BhcnNlci5j
YzogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJj
ZS9oMjY1X3Nwc19wYXJzZXIuaDogQWRkZWQuCisgICAgICAgICh3ZWJydGM6OkgyNjVTcHNQYXJz
ZXI6OndpZHRoKToKKyAgICAgICAgKHdlYnJ0Yzo6SDI2NVNwc1BhcnNlcjo6aGVpZ2h0KToKKyAg
ICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQu
Y2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBf
Zm9ybWF0X2gyNjUuY2M6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1Lmg6IEFkZGVkLgorICAgICAgICAod2VicnRj
OjpSdHBQYWNrZXRpemVySDI2NTo6UGFja2V0OjpQYWNrZXQpOgorICAgICAgICAod2VicnRjOjpS
dHBQYWNrZXRpemVySDI2NTo6UGFja2V0VW5pdDo6UGFja2V0VW5pdCk6CisgICAgICAgICh3ZWJy
dGM6OlZpZGVvUnRwRGVwYWNrZXRpemVySDI2NTo6flZpZGVvUnRwRGVwYWNrZXRpemVySDI2NSk6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2Vu
ZGVyX3ZpZGVvLmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9z
b3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxl
cy92aWRlb19jb2RpbmcvQlVJTEQuZ246CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oOiBBZGRlZC4K
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2VuY29kZWRfZnJh
bWUuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9oMjY1
X3Zwc19zcHNfcHBzX3RyYWNrZXIuY2M6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
bW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmg6IEFkZGVkLgor
ICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRl
b19jb2RlY19pbnRlcmZhY2UuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlk
ZW9fY29kaW5nL2ppdHRlcl9idWZmZXJfY29tbW9uLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQuY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNjOgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmNjOgorICAgICAgICAq
IFNvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmg6CisgICAg
ICAgICogU291cmNlL3dlYnJ0Yy9ydGNfYmFzZS9leHBlcmltZW50cy9taW5fdmlkZW9fYml0cmF0
ZV9leHBlcmltZW50LmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJL
aXRVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0
VXRpbGl0aWVzLm1tOgorICAgICAgICAod2VicnRjOjpjcmVhdGVXZWJLaXRFbmNvZGVyRmFjdG9y
eSk6CisgICAgICAgICh3ZWJydGM6OmNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KToKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29k
ZWNTcGVjaWZpY0luZm9IMjY1K1ByaXZhdGUuaDogQ29waWVkIGZyb20gU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oLgorICAgICAgICAqIFNvdXJjZS93ZWJy
dGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gy
NjUuaDogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbTogQWRkZWQuCisgICAgICAg
ICgtW1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NSBuYXRpdmVDb2RlY1NwZWNpZmljSW5mb10pOgor
ICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9S
VENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeS5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMv
c2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFj
dG9yeS5tOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSBpbml0V2l0
aEgyNjU6XSk6CisgICAgICAgICgtW1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IHN1cHBv
cnRlZENvZGVjc10pOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSBj
cmVhdGVEZWNvZGVyOl0pOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5oOgorICAgICAg
ICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZh
dWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tOgorICAgICAgICAoLVtSVENEZWZhdWx0VmlkZW9FbmNv
ZGVyRmFjdG9yeSBpbml0V2l0aEgyNjU6XSk6CisgICAgICAgICgrW1JUQ0RlZmF1bHRWaWRlb0Vu
Y29kZXJGYWN0b3J5IHN1cHBvcnRlZENvZGVjc10pOgorICAgICAgICAoLVtSVENEZWZhdWx0Vmlk
ZW9FbmNvZGVyRmFjdG9yeSBjcmVhdGVFbmNvZGVyOl0pOgorICAgICAgICAoLVtSVENEZWZhdWx0
VmlkZW9FbmNvZGVyRmFjdG9yeSBzdXBwb3J0ZWRDb2RlY3NdKToKKyAgICAgICAgKiBTb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZl
bElkLmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3RvcnkuaC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tOiBBZGRlZC4KKyAgICAgICAgKiBT
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNv
ZGVySDI2NS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0Rl
Y29kZXJGYWN0b3J5LmguCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25l
bnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUubW06IEFkZGVkLgorICAgICAgICAo
UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zOjpSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMpOgorICAg
ICAgICAoaDI2NURlY29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayk6CisgICAgICAgICgtW1JUQ1Zp
ZGVvRGVjb2RlckgyNjUgaW5pdF0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IGRl
YWxsb2NdKToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNvZGVySDI2NSBzdGFydERlY29kZVdpdGhO
dW1iZXJPZkNvcmVzOl0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IGRlY29kZTpt
aXNzaW5nRnJhbWVzOmNvZGVjU3BlY2lmaWNJbmZvOnJlbmRlclRpbWVNczpdKToKKyAgICAgICAg
KC1bUlRDVmlkZW9EZWNvZGVySDI2NSBzZXRDYWxsYmFjazpdKToKKyAgICAgICAgKC1bUlRDVmlk
ZW9EZWNvZGVySDI2NSByZWxlYXNlRGVjb2Rlcl0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29k
ZXJIMjY1IHJlc2V0RGVjb21wcmVzc2lvblNlc3Npb25dKToKKyAgICAgICAgKC1bUlRDVmlkZW9E
ZWNvZGVySDI2NSBjb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAgICAoLVtS
VENWaWRlb0RlY29kZXJIMjY1IGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAg
ICAoLVtSVENWaWRlb0RlY29kZXJIMjY1IHNldFZpZGVvRm9ybWF0Ol0pOgorICAgICAgICAoLVtS
VENWaWRlb0RlY29kZXJIMjY1IGltcGxlbWVudGF0aW9uTmFtZV0pOgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENWaWRlb0VuY29kZXJI
MjY1Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2Rl
ckZhY3RvcnkuaC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5tbTogQWRkZWQuCisgICAgICAgICgtW1JU
Q1ZpZGVvRW5jb2RlckgyNjUgaW5pdFdpdGhDb2RlY0luZm86XSk6CisgICAgICAgICgtW1JUQ1Zp
ZGVvRW5jb2RlckgyNjUgZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY1
IHN0YXJ0RW5jb2RlV2l0aFNldHRpbmdzOm51bWJlck9mQ29yZXM6XSk6CisgICAgICAgICgtW1JU
Q1ZpZGVvRW5jb2RlckgyNjUgZW5jb2RlOmNvZGVjU3BlY2lmaWNJbmZvOmZyYW1lVHlwZXM6XSk6
CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgc2V0Q2FsbGJhY2s6XSk6CisgICAgICAg
ICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgc2V0Qml0cmF0ZTpmcmFtZXJhdGU6XSk6CisgICAgICAg
ICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjUgcmVsZWFzZUVuY29kZXJdKToKKyAgICAgICAgKC1bUlRD
VmlkZW9FbmNvZGVySDI2NSByZXNldENvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAgICAoLVtS
VENWaWRlb0VuY29kZXJIMjY1IGNvbmZpZ3VyZUNvbXByZXNzaW9uU2Vzc2lvbl0pOgorICAgICAg
ICAoLVtSVENWaWRlb0VuY29kZXJIMjY1IGRlc3Ryb3lDb21wcmVzc2lvblNlc3Npb25dKToKKyAg
ICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBpbXBsZW1lbnRhdGlvbk5hbWVdKToKKyAgICAg
ICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NSBzZXRCaXRyYXRlQnBzOl0pOgorICAgICAgICAoLVtS
VENWaWRlb0VuY29kZXJIMjY1IHNldEVuY29kZXJCaXRyYXRlQnBzOl0pOgorICAgICAgICAoLVtS
VENWaWRlb0VuY29kZXJIMjY1IGZyYW1lV2FzRW5jb2RlZDpmbGFnczpzYW1wbGVCdWZmZXI6d2lk
dGg6aGVpZ2h0OnJlbmRlclRpbWVNczp0aW1lc3RhbXA6cm90YXRpb246XSk6CisgICAgICAgICgt
W1JUQ1ZpZGVvRW5jb2RlckgyNjUgc2NhbGluZ1NldHRpbmdzXSk6CisgICAgICAgICogU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuY2M6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L25hbHVfcmV3cml0ZXIuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2
ZS9zcmMvb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW06CisgICAgICAgICh3ZWJydGM6Ok9i
akNWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIpOgorICAgICAgICAqIFNv
dXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9y
eS5tbToKKyAgICAgICAgKHdlYnJ0Yzo6T2JqQ1ZpZGVvRW5jb2RlckZhY3Rvcnk6OkNyZWF0ZVZp
ZGVvRW5jb2Rlcik6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3Ry
ZWFtX3JlY2VpdmVyLmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVv
X3N0cmVhbV9yZWNlaXZlci5oOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvdmlkZW8vc2VuZF9z
dGF0aXN0aWNzX3Byb3h5LmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9f
cmVjZWl2ZV9zdHJlYW0uY2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy92aWRlby92aWRlb19z
dHJlYW1fZW5jb2Rlci5jYzoKKyAgICAgICAgKiBsaWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKwogMjAyMC0wNC0wMiAgS2VpdGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgU29ydCBsaWJ3ZWJydGMgWGNvZGUgcHJvamVjdCBmaWxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMDI2M2Y3NjZkNmJiMjRmMDEyYThhNzUwN2Y0ZDY4YjM5NmVkYTk3Yy4uNTIzZDdlMTcwNmNm
MWY5ZmYxMDZkMmEyOTRhZjQ3MTE5Yjk5ZjUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBA
CisyMDIwLTA0LTAzICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBXZWJSVEMgSEVWQworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MjgzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFkZCBhIHJ1bnRpbWUgZmxhZyBmb3IgSDI2NSBp
biBsaWV1IG9mIFZQOCBhbmQgcGlwZSBpdCB0byBsaWJ3ZWJydGMgZmFjdG9yaWVzLgorICAgICAg
ICBUZXN0OiB3ZWJydGMvaDI2NS5odG1sCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6bV9kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKToKKyAgICAg
ICAgKiBwYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OndlYlJUQ0gyNjVDb2RlY0VuYWJsZWQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0V2ViUlRDSDI2NUNvZGVj
RW5hYmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRD
UHJvdmlkZXJDb2NvYTo6Y3JlYXRlRGVjb2RlckZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6
TGliV2ViUlRDUHJvdmlkZXJDb2NvYTo6Y3JlYXRlRW5jb2RlckZhY3RvcnkpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVz
ZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisKIDIwMjAtMDQtMDMgIFlvdXN1a2UgS2ltb3RvICA8eW91
c3VrZS5raW1vdG9Ac29ueS5jb20+CiAKICAgICAgICAgRmlsZVN5c3RlbSBoYW5kbGUgbGVha3Mg
aW4gQ3VybENhY2hlTWFuYWdlciBhbmQgTmV0d29ya0NhY2hlRGF0YSB3aGVuIGZhaWxlZCB0byBv
cGVuIGEgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAxZjZjMDYxMjkxNmZjMGUwMWIyMjkwOWM2ZTBhNjNiMjUz
YWZmOGIyLi4zYjljMDIyZmU5OWRjMjViMmY3M2EwY2M1ZGU1NDE0NjEwNDIyYTZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA0LTAzICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBXZWJSVEMgSEVWQwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MjgzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFJlbW92ZSBWUDgg
cnVudGltZSBmbGFnIGFuZCBhZGQgYSBIMzY1IHJ1bnRpbWUgZmxhZyBpbnN0ZWFkLgorCisgICAg
ICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVm
ZXJlbmNlcyk6CisKIDIwMjAtMDQtMDMgIFlvdXN1a2UgS2ltb3RvICA8eW91c3VrZS5raW1vdG9A
c29ueS5jb20+CiAKICAgICAgICAgRmlsZVN5c3RlbSBoYW5kbGUgbGVha3MgaW4gQ3VybENhY2hl
TWFuYWdlciBhbmQgTmV0d29ya0NhY2hlRGF0YSB3aGVuIGZhaWxlZCB0byBvcGVuIGEgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMudHh0CmluZGV4IDFlNmQ0OGE2
NGZmOGQ3ZTIwMjg4MDlkZDdkZThiNGI2MTU3ZDAyZDEuLjcwY2NjOWJkMGUxZDhkNTdjYmZkYzVm
ZWE3MmZlOWFhZTUyMDM4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VM
aXN0cy50eHQKQEAgLTE0MDQsNiArMTQwNCw3IEBAIHRhcmdldF9jb21waWxlX29wdGlvbnMod2Vi
cnRjIFBSSVZBVEUKIAogdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMod2VicnRjIFBSSVZBVEUK
ICAgT1BFTlNTTF9OT19BU00KKyAgRElTQUJMRV9IMjY1CiAgIERZTkFNSUNfQU5OT1RBVElPTlNf
RU5BQkxFRD0xCiAgIEVYUEFUX1JFTEFUSVZFX1BBVEgKICAgSEFWRV9MUklOVApkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvL3Zp
ZGVvX2NvZGVjX3R5cGUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL2FwaS92aWRlby92aWRlb19jb2RlY190eXBlLmgKaW5kZXggMTJkY2ZhYzFiOWE2ODY4Nzky
MGFlYmM4MDQ1YjYyYzU3NDQ5MmJlNy4uYzRlNDVkYmRjMGE0OTkyNzExM2IwZTUxMDFlNTRjZWVl
OTA1N2EzNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvYXBpL3ZpZGVvL3ZpZGVvX2NvZGVjX3R5cGUuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW8vdmlkZW9fY29kZWNfdHlwZS5oCkBA
IC0yMiw2ICsyMiw5IEBAIGVudW0gVmlkZW9Db2RlY1R5cGUgewogICBrVmlkZW9Db2RlY1ZQOSwK
ICAga1ZpZGVvQ29kZWNBVjEsCiAgIGtWaWRlb0NvZGVjSDI2NCwKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CisgIGtWaWRlb0NvZGVjSDI2NSwKKyNlbmRpZgogICBrVmlkZW9Db2RlY011bHRpcGxleCwK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmNjCmlu
ZGV4IGQwMzA4MmI5MWUzOGM0N2I0ZDRiMTgwZjBkMjM1OGMzOTEzMWQzOTkuLjU0Zjc4OTAwNDY2
MmY4NGNmMTUxMGE5MWMzZjU1ZTRkMDcyOTQ1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fY29kZWMu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3Zp
ZGVvX2NvZGVjcy92aWRlb19jb2RlYy5jYwpAQCAtMjUsNiArMjUsOSBAQCBjb25zdGV4cHIgY2hh
ciBrUGF5bG9hZE5hbWVWcDlbXSA9ICJWUDkiOwogLy8gZnJvemVuLgogY29uc3RleHByIGNoYXIg
a1BheWxvYWROYW1lQXYxW10gPSAiQVYxWCI7CiBjb25zdGV4cHIgY2hhciBrUGF5bG9hZE5hbWVI
MjY0W10gPSAiSDI2NCI7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorY29uc3RleHByIGNoYXIga1Bh
eWxvYWROYW1lSDI2NVtdID0gIkgyNjUiOworI2VuZGlmCiBjb25zdGV4cHIgY2hhciBrUGF5bG9h
ZE5hbWVHZW5lcmljW10gPSAiR2VuZXJpYyI7CiBjb25zdGV4cHIgY2hhciBrUGF5bG9hZE5hbWVN
dWx0aXBsZXhbXSA9ICJNdWx0aXBsZXgiOwogfSAgLy8gbmFtZXNwYWNlCkBAIC01Niw2ICs1OSwx
NyBAQCBib29sIFZpZGVvQ29kZWNIMjY0OjpvcGVyYXRvcj09KGNvbnN0IFZpZGVvQ29kZWNIMjY0
JiBvdGhlcikgY29uc3QgewogICAgICAgICAgIG51bWJlck9mVGVtcG9yYWxMYXllcnMgPT0gb3Ro
ZXIubnVtYmVyT2ZUZW1wb3JhbExheWVycyk7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citi
b29sIFZpZGVvQ29kZWNIMjY1OjpvcGVyYXRvcj09KGNvbnN0IFZpZGVvQ29kZWNIMjY1JiBvdGhl
cikgY29uc3QgeworICByZXR1cm4gKGZyYW1lRHJvcHBpbmdPbiA9PSBvdGhlci5mcmFtZURyb3Bw
aW5nT24gJiYKKyAgICAgICAgICBrZXlGcmFtZUludGVydmFsID09IG90aGVyLmtleUZyYW1lSW50
ZXJ2YWwgJiYKKyAgICAgICAgICB2cHNMZW4gPT0gb3RoZXIudnBzTGVuICYmIHNwc0xlbiA9PSBv
dGhlci5zcHNMZW4gJiYKKyAgICAgICAgICBwcHNMZW4gPT0gb3RoZXIucHBzTGVuICYmCisgICAg
ICAgICAgKHNwc0xlbiA9PSAwIHx8IG1lbWNtcChzcHNEYXRhLCBvdGhlci5zcHNEYXRhLCBzcHNM
ZW4pID09IDApICYmCisgICAgICAgICAgKHBwc0xlbiA9PSAwIHx8IG1lbWNtcChwcHNEYXRhLCBv
dGhlci5wcHNEYXRhLCBwcHNMZW4pID09IDApKTsKK30KKyNlbmRpZgorCiBib29sIFNwYXRpYWxM
YXllcjo6b3BlcmF0b3I9PShjb25zdCBTcGF0aWFsTGF5ZXImIG90aGVyKSBjb25zdCB7CiAgIHJl
dHVybiAod2lkdGggPT0gb3RoZXIud2lkdGggJiYgaGVpZ2h0ID09IG90aGVyLmhlaWdodCAmJgog
ICAgICAgICAgIG1heEZyYW1lcmF0ZSA9PSBvdGhlci5tYXhGcmFtZXJhdGUgJiYKQEAgLTExNSw2
ICsxMjksMTggQEAgY29uc3QgVmlkZW9Db2RlY0gyNjQmIFZpZGVvQ29kZWM6OkgyNjQoKSBjb25z
dCB7CiAgIHJldHVybiBjb2RlY19zcGVjaWZpY18uSDI2NDsKIH0KIAorI2lmbmRlZiBESVNBQkxF
X0gyNjUKK1ZpZGVvQ29kZWNIMjY1KiBWaWRlb0NvZGVjOjpIMjY1KCkgeworICBSVENfRENIRUNL
X0VRKGNvZGVjVHlwZSwga1ZpZGVvQ29kZWNIMjY1KTsKKyAgcmV0dXJuICZjb2RlY19zcGVjaWZp
Y18uSDI2NTsKK30KKworY29uc3QgVmlkZW9Db2RlY0gyNjUmIFZpZGVvQ29kZWM6OkgyNjUoKSBj
b25zdCB7CisgIFJUQ19EQ0hFQ0tfRVEoY29kZWNUeXBlLCBrVmlkZW9Db2RlY0gyNjUpOworICBy
ZXR1cm4gY29kZWNfc3BlY2lmaWNfLkgyNjU7Cit9CisjZW5kaWYKKwogY29uc3QgY2hhciogQ29k
ZWNUeXBlVG9QYXlsb2FkU3RyaW5nKFZpZGVvQ29kZWNUeXBlIHR5cGUpIHsKICAgc3dpdGNoICh0
eXBlKSB7CiAgICAgY2FzZSBrVmlkZW9Db2RlY1ZQODoKQEAgLTEyNSw2ICsxNTEsMTAgQEAgY29u
c3QgY2hhciogQ29kZWNUeXBlVG9QYXlsb2FkU3RyaW5nKFZpZGVvQ29kZWNUeXBlIHR5cGUpIHsK
ICAgICAgIHJldHVybiBrUGF5bG9hZE5hbWVBdjE7CiAgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjQ6
CiAgICAgICByZXR1cm4ga1BheWxvYWROYW1lSDI2NDsKKyNpZm5kZWYgRElTQUJMRV9IMjY1Cisg
ICAgY2FzZSBrVmlkZW9Db2RlY0gyNjU6CisgICAgICByZXR1cm4ga1BheWxvYWROYW1lSDI2NTsK
KyNlbmRpZgogICAgIGNhc2Uga1ZpZGVvQ29kZWNNdWx0aXBsZXg6CiAgICAgICByZXR1cm4ga1Bh
eWxvYWROYW1lTXVsdGlwbGV4OwogICAgIGNhc2Uga1ZpZGVvQ29kZWNHZW5lcmljOgpAQCAtMTQx
LDYgKzE3MSwxMCBAQCBWaWRlb0NvZGVjVHlwZSBQYXlsb2FkU3RyaW5nVG9Db2RlY1R5cGUoY29u
c3Qgc3RkOjpzdHJpbmcmIG5hbWUpIHsKICAgICByZXR1cm4ga1ZpZGVvQ29kZWNBVjE7CiAgIGlm
IChhYnNsOjpFcXVhbHNJZ25vcmVDYXNlKG5hbWUsIGtQYXlsb2FkTmFtZUgyNjQpKQogICAgIHJl
dHVybiBrVmlkZW9Db2RlY0gyNjQ7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBpZiAoYWJzbDo6
RXF1YWxzSWdub3JlQ2FzZShuYW1lLCBrUGF5bG9hZE5hbWVIMjY1KSkKKyAgICByZXR1cm4ga1Zp
ZGVvQ29kZWNIMjY1OworI2VuZGlmCiAgIGlmIChhYnNsOjpFcXVhbHNJZ25vcmVDYXNlKG5hbWUs
IGtQYXlsb2FkTmFtZU11bHRpcGxleCkpCiAgICAgcmV0dXJuIGtWaWRlb0NvZGVjTXVsdGlwbGV4
OwogICByZXR1cm4ga1ZpZGVvQ29kZWNHZW5lcmljOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19jb2Rl
Yy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVv
X2NvZGVjcy92aWRlb19jb2RlYy5oCmluZGV4IDMzMGJiYmNlMTk5MDU0MGU3NDVkNDdjZjZlYzY1
N2RlMjk0MzRjYjcuLjc0ODNhZmRmYWY3OWQ4NzI4YzhjMjM4Njk1NWI3ZDc2NjFkNWE5ZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92
aWRlb19jb2RlY3MvdmlkZW9fY29kZWMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2NvZGVjLmgKQEAgLTg0LDYg
Kzg0LDIzIEBAIHN0cnVjdCBWaWRlb0NvZGVjSDI2NCB7CiAgIHVpbnQ4X3QgbnVtYmVyT2ZUZW1w
b3JhbExheWVyczsKIH07CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitzdHJ1Y3QgVmlkZW9Db2Rl
Y0gyNjUgeworICBib29sIG9wZXJhdG9yPT0oY29uc3QgVmlkZW9Db2RlY0gyNjUmIG90aGVyKSBj
b25zdDsKKyAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFZpZGVvQ29kZWNIMjY1JiBvdGhlcikgY29u
c3QgeworICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgfQorICBib29sIGZyYW1lRHJv
cHBpbmdPbjsKKyAgaW50IGtleUZyYW1lSW50ZXJ2YWw7CisgIGNvbnN0IHVpbnQ4X3QqIHZwc0Rh
dGE7CisgIHNpemVfdCB2cHNMZW47CisgIGNvbnN0IHVpbnQ4X3QqIHNwc0RhdGE7CisgIHNpemVf
dCBzcHNMZW47CisgIGNvbnN0IHVpbnQ4X3QqIHBwc0RhdGE7CisgIHNpemVfdCBwcHNMZW47Cit9
OworI2VuZGlmCisKIC8vIFRyYW5zbGF0ZXMgZnJvbSBuYW1lIG9mIGNvZGVjIHRvIGNvZGVjIHR5
cGUgYW5kIHZpY2UgdmVyc2EuCiBSVENfRVhQT1JUIGNvbnN0IGNoYXIqIENvZGVjVHlwZVRvUGF5
bG9hZFN0cmluZyhWaWRlb0NvZGVjVHlwZSB0eXBlKTsKIFJUQ19FWFBPUlQgVmlkZW9Db2RlY1R5
cGUgUGF5bG9hZFN0cmluZ1RvQ29kZWNUeXBlKGNvbnN0IHN0ZDo6c3RyaW5nJiBuYW1lKTsKQEAg
LTkyLDYgKzEwOSw5IEBAIHVuaW9uIFZpZGVvQ29kZWNVbmlvbiB7CiAgIFZpZGVvQ29kZWNWUDgg
VlA4OwogICBWaWRlb0NvZGVjVlA5IFZQOTsKICAgVmlkZW9Db2RlY0gyNjQgSDI2NDsKKyNpZm5k
ZWYgRElTQUJMRV9IMjY1CisgIFZpZGVvQ29kZWNIMjY1IEgyNjU7CisjZW5kaWYKIH07CiAKIGVu
dW0gY2xhc3MgVmlkZW9Db2RlY01vZGUgeyBrUmVhbHRpbWVWaWRlbywga1NjcmVlbnNoYXJpbmcg
fTsKQEAgLTE1OSw2ICsxNzksMTAgQEAgY2xhc3MgUlRDX0VYUE9SVCBWaWRlb0NvZGVjIHsKICAg
Y29uc3QgVmlkZW9Db2RlY1ZQOSYgVlA5KCkgY29uc3Q7CiAgIFZpZGVvQ29kZWNIMjY0KiBIMjY0
KCk7CiAgIGNvbnN0IFZpZGVvQ29kZWNIMjY0JiBIMjY0KCkgY29uc3Q7CisjaWZuZGVmIERJU0FC
TEVfSDI2NQorICBWaWRlb0NvZGVjSDI2NSogSDI2NSgpOworICBjb25zdCBWaWRlb0NvZGVjSDI2
NSYgSDI2NSgpIGNvbnN0OworI2VuZGlmCiAKICBwcml2YXRlOgogICAvLyBUT0RPKGh0YSk6IENv
bnNpZGVyIHJlcGxhY2luZyB0aGUgdW5pb24gd2l0aCBhIHBvaW50ZXIgdHlwZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19j
b2RlY3MvdmlkZW9fZW5jb2Rlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlci5jYwppbmRleCA0NDI3ZDZj
MWYxNjEyOGQ0YTQ3YmUyYmRjMTI1ZmVkOTc0NDEwNTFhLi5iNjZhNGY0MWQyZWI2NTJlZDhkMzg3
NGI5OWU3MjgxNDlmNTMzNWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuY2MKKysrIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19lbmNvZGVyLmNjCkBAIC02MCw2ICs2MCwyMyBAQCBWaWRlb0NvZGVjSDI2NCBWaWRl
b0VuY29kZXI6OkdldERlZmF1bHRIMjY0U2V0dGluZ3MoKSB7CiAgIHJldHVybiBoMjY0X3NldHRp
bmdzOwogfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorVmlkZW9Db2RlY0gyNjUgVmlkZW9FbmNv
ZGVyOjpHZXREZWZhdWx0SDI2NVNldHRpbmdzKCkgeworICBWaWRlb0NvZGVjSDI2NSBoMjY1X3Nl
dHRpbmdzOworICBtZW1zZXQoJmgyNjVfc2V0dGluZ3MsIDAsIHNpemVvZihoMjY1X3NldHRpbmdz
KSk7CisKKyAgLy8gaDI2NV9zZXR0aW5ncy5wcm9maWxlID0ga1Byb2ZpbGVCYXNlOworICBoMjY1
X3NldHRpbmdzLmZyYW1lRHJvcHBpbmdPbiA9IHRydWU7CisgIGgyNjVfc2V0dGluZ3Mua2V5RnJh
bWVJbnRlcnZhbCA9IDMwMDA7CisgIGgyNjVfc2V0dGluZ3Muc3BzRGF0YSA9IG51bGxwdHI7Cisg
IGgyNjVfc2V0dGluZ3Muc3BzTGVuID0gMDsKKyAgaDI2NV9zZXR0aW5ncy5wcHNEYXRhID0gbnVs
bHB0cjsKKyAgaDI2NV9zZXR0aW5ncy5wcHNMZW4gPSAwOworCisgIHJldHVybiBoMjY1X3NldHRp
bmdzOworfQorI2VuZGlmCisKIFZpZGVvRW5jb2Rlcjo6U2NhbGluZ1NldHRpbmdzOjpTY2FsaW5n
U2V0dGluZ3MoKSA9IGRlZmF1bHQ7CiAKIFZpZGVvRW5jb2Rlcjo6U2NhbGluZ1NldHRpbmdzOjpT
Y2FsaW5nU2V0dGluZ3MoS09mZikgOiBTY2FsaW5nU2V0dGluZ3MoKSB7fQpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVj
cy92aWRlb19lbmNvZGVyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuaAppbmRleCAwNjRkYzhmZmI1MTEz
Yjg0NjNlZmRlZThhMzllYjU2MmVlODNjZTkyLi5jYTdhMmQ4Zjk1YWViZDY5NjBjMDA0MGEwY2Rm
NDg5YTBhNTY4YjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXIuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVv
X2VuY29kZXIuaApAQCAtMzIwLDYgKzMyMCw5IEBAIGNsYXNzIFJUQ19FWFBPUlQgVmlkZW9FbmNv
ZGVyIHsKICAgc3RhdGljIFZpZGVvQ29kZWNWUDggR2V0RGVmYXVsdFZwOFNldHRpbmdzKCk7CiAg
IHN0YXRpYyBWaWRlb0NvZGVjVlA5IEdldERlZmF1bHRWcDlTZXR0aW5ncygpOwogICBzdGF0aWMg
VmlkZW9Db2RlY0gyNjQgR2V0RGVmYXVsdEgyNjRTZXR0aW5ncygpOworI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyAgc3RhdGljIFZpZGVvQ29kZWNIMjY1IEdldERlZmF1bHRIMjY1U2V0dGluZ3MoKTsK
KyNlbmRpZgogCiAgIHZpcnR1YWwgflZpZGVvRW5jb2RlcigpIHt9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3Mv
dmlkZW9fZW5jb2Rlcl9jb25maWcuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmNjCmluZGV4
IDZlZmNiZjJiZGRiNzIxMjNmMWRiNmMyZTAwMzAxYzc1Mjk0MjMwM2QuLjAxOGU5M2JlYjkxOTY3
MGZmZmE5M2UwOGNlYzIyNzFhODMwYWQ0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9j
b25maWcuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
YXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZpZy5jYwpAQCAtOTMsNiArOTMsMTAg
QEAgdm9pZCBWaWRlb0VuY29kZXJDb25maWc6OkVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxs
RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoCiAgICAgRmlsbFZpZGVvQ29kZWNWcDgoY29kZWMtPlZQ
OCgpKTsKICAgfSBlbHNlIGlmIChjb2RlYy0+Y29kZWNUeXBlID09IGtWaWRlb0NvZGVjVlA5KSB7
CiAgICAgRmlsbFZpZGVvQ29kZWNWcDkoY29kZWMtPlZQOSgpKTsKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CisgIH0gZWxzZSBpZiAoY29kZWMtPmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY0gyNjUpIHsK
KyAgICBGaWxsVmlkZW9Db2RlY0gyNjUoY29kZWMtPkgyNjUoKSk7CisjZW5kaWYKICAgfSBlbHNl
IHsKICAgICBSVENfTk9UUkVBQ0hFRCgpIDw8ICJFbmNvZGVyIHNwZWNpZmljcyBzZXQvdXNlZCBm
b3IgdW5rbm93biBjb2RlYyB0eXBlLiI7CiAgIH0KQEAgLTEwMyw2ICsxMDcsMTMgQEAgdm9pZCBW
aWRlb0VuY29kZXJDb25maWc6OkVuY29kZXJTcGVjaWZpY1NldHRpbmdzOjpGaWxsVmlkZW9Db2Rl
Y0gyNjQoCiAgIFJUQ19OT1RSRUFDSEVEKCk7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1Cit2
b2lkIFZpZGVvRW5jb2RlckNvbmZpZzo6RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OkZpbGxWaWRl
b0NvZGVjSDI2NSgKKyAgICBWaWRlb0NvZGVjSDI2NSogaDI2NV9zZXR0aW5ncykgY29uc3Qgewor
ICBSVENfTk9UUkVBQ0hFRCgpOworfQorI2VuZGlmCisKIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmln
OjpFbmNvZGVyU3BlY2lmaWNTZXR0aW5nczo6RmlsbFZpZGVvQ29kZWNWcDgoCiAgICAgVmlkZW9D
b2RlY1ZQOCogdnA4X3NldHRpbmdzKSBjb25zdCB7CiAgIFJUQ19OT1RSRUFDSEVEKCk7CkBAIC0x
MjIsNiArMTMzLDE3IEBAIHZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpIMjY0RW5jb2RlclNwZWNp
ZmljU2V0dGluZ3M6OkZpbGxWaWRlb0NvZGVjSDI2NCgKICAgKmgyNjRfc2V0dGluZ3MgPSBzcGVj
aWZpY3NfOwogfQogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorVmlkZW9FbmNvZGVyQ29uZmlnOjpI
MjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3M6OkgyNjVFbmNvZGVyU3BlY2lmaWNTZXR0aW5ncygK
KyAgICBjb25zdCBWaWRlb0NvZGVjSDI2NSYgc3BlY2lmaWNzKQorICAgIDogc3BlY2lmaWNzXyhz
cGVjaWZpY3MpIHt9CisKK3ZvaWQgVmlkZW9FbmNvZGVyQ29uZmlnOjpIMjY1RW5jb2RlclNwZWNp
ZmljU2V0dGluZ3M6OkZpbGxWaWRlb0NvZGVjSDI2NSgKKyAgICBWaWRlb0NvZGVjSDI2NSogaDI2
NV9zZXR0aW5ncykgY29uc3QgeworICAqaDI2NV9zZXR0aW5ncyA9IHNwZWNpZmljc187Cit9Cisj
ZW5kaWYKKwogVmlkZW9FbmNvZGVyQ29uZmlnOjpWcDhFbmNvZGVyU3BlY2lmaWNTZXR0aW5nczo6
VnA4RW5jb2RlclNwZWNpZmljU2V0dGluZ3MoCiAgICAgY29uc3QgVmlkZW9Db2RlY1ZQOCYgc3Bl
Y2lmaWNzKQogICAgIDogc3BlY2lmaWNzXyhzcGVjaWZpY3MpIHt9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3Zp
ZGVvX2VuY29kZXJfY29uZmlnLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9hcGkvdmlkZW9fY29kZWNzL3ZpZGVvX2VuY29kZXJfY29uZmlnLmgKaW5kZXggZWY4
ZGIxMDBhMzJhMjA1YmJkOWQ2ZmU3OWIyNTM0MmY5MzBjNGUwNS4uZDU1OTRmMzY2NDFhMjVjNDMw
MDBhNjNjODU2MGRmNmFmNzA4ZTI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvYXBpL3ZpZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2NvbmZp
Zy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2FwaS92
aWRlb19jb2RlY3MvdmlkZW9fZW5jb2Rlcl9jb25maWcuaApAQCAtODQsNiArODQsOSBAQCBjbGFz
cyBWaWRlb0VuY29kZXJDb25maWcgewogICAgIHZpcnR1YWwgdm9pZCBGaWxsVmlkZW9Db2RlY1Zw
OChWaWRlb0NvZGVjVlA4KiB2cDhfc2V0dGluZ3MpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBG
aWxsVmlkZW9Db2RlY1ZwOShWaWRlb0NvZGVjVlA5KiB2cDlfc2V0dGluZ3MpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBGaWxsVmlkZW9Db2RlY0gyNjQoVmlkZW9Db2RlY0gyNjQqIGgyNjRfc2V0
dGluZ3MpIGNvbnN0OworI2lmbmRlZiBESVNBQkxFX0gyNjUKKyAgICB2aXJ0dWFsIHZvaWQgRmls
bFZpZGVvQ29kZWNIMjY1KFZpZGVvQ29kZWNIMjY1KiBoMjY1X3NldHRpbmdzKSBjb25zdDsKKyNl
bmRpZgogCiAgICBwcml2YXRlOgogICAgIH5FbmNvZGVyU3BlY2lmaWNTZXR0aW5ncygpIG92ZXJy
aWRlIHt9CkBAIC05OSw2ICsxMDIsMTcgQEAgY2xhc3MgVmlkZW9FbmNvZGVyQ29uZmlnIHsKICAg
ICBWaWRlb0NvZGVjSDI2NCBzcGVjaWZpY3NfOwogICB9OwogCisjaWZuZGVmIERJU0FCTEVfSDI2
NQorICBjbGFzcyBIMjY1RW5jb2RlclNwZWNpZmljU2V0dGluZ3MgOiBwdWJsaWMgRW5jb2RlclNw
ZWNpZmljU2V0dGluZ3MgeworICAgcHVibGljOgorICAgIGV4cGxpY2l0IEgyNjVFbmNvZGVyU3Bl
Y2lmaWNTZXR0aW5ncyhjb25zdCBWaWRlb0NvZGVjSDI2NSYgc3BlY2lmaWNzKTsKKyAgICB2b2lk
IEZpbGxWaWRlb0NvZGVjSDI2NShWaWRlb0NvZGVjSDI2NSogaDI2NV9zZXR0aW5ncykgY29uc3Qg
b3ZlcnJpZGU7CisKKyAgIHByaXZhdGU6CisgICAgVmlkZW9Db2RlY0gyNjUgc3BlY2lmaWNzXzsK
KyAgfTsKKyNlbmRpZgorCiAgIGNsYXNzIFZwOEVuY29kZXJTcGVjaWZpY1NldHRpbmdzIDogcHVi
bGljIEVuY29kZXJTcGVjaWZpY1NldHRpbmdzIHsKICAgIHB1YmxpYzoKICAgICBleHBsaWNpdCBW
cDhFbmNvZGVyU3BlY2lmaWNTZXR0aW5ncyhjb25zdCBWaWRlb0NvZGVjVlA4JiBzcGVjaWZpY3Mp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
YnVpbGRfb3ZlcnJpZGVzL2J1aWxkLmduaSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkKaW5kZXggNjY5MDQ0ZGI4MWNi
MjE4NWJlMzc0YjBiMTAwMjcwOTNjNTY4M2MzNS4uNjAyNWNkZGQwNDdlMDliMWQwZDI1ZTAzNDFh
NWZjYzU5NTk3MDI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvYnVpbGRfb3ZlcnJpZGVzL2J1aWxkLmduaQorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9idWlsZF9vdmVycmlkZXMvYnVpbGQuZ25pCkBA
IC0zNSw2ICszNSwxMiBAQCBsaW50X3N1cHByZXNzaW9uc19maWxlID0gIi8vdG9vbHNfd2VicnRj
L2FuZHJvaWQvc3VwcHJlc3Npb25zLnhtbCIKICMgc28gd2UganVzdCBpZ25vcmUgdGhhdCBhc3Nl
cnQuIFNlZSBodHRwczovL2NyYnVnLmNvbS82NDg5NDggZm9yIG1vcmUgaW5mby4KIGlnbm9yZV9l
bGYzMl9saW1pdGF0aW9ucyA9IHRydWUKIAoraWYgKGlzX3dpbiB8fCBpc19pb3MgfHwgaXNfYW5k
cm9pZCkgeworICBydGNfdXNlX2gyNjUgPSB0cnVlCit9IGVsc2UgeworICBydGNfdXNlX2gyNjUg
PSBmYWxzZQorfQorCiAjIFVzZSBidW5kbGVkIGhlcm1ldGljIFhjb2RlIGluc3RhbGxhdGlvbiBt
YWludGFpbnRlZCBieSBDaHJvbWl1bSwKICMgZXhjZXB0IGZvciBsb2NhbCBpT1MgYnVpbGRzIHdo
ZXJlIGl0J3MgdW5zdXBwb3J0ZWQuCiBpZiAoaG9zdF9vcyA9PSAibWFjIikgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY2FsbC9ydHBfcGF5
bG9hZF9wYXJhbXMuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9jYWxsL3J0cF9wYXlsb2FkX3BhcmFtcy5jYwppbmRleCAzMWNiNzQzZDlkOTM2NzZlMWM2ZWU2
ODUwOWI2NTU4NWFmMTQ0ZTA0Li4zYWFkZjg5ZWI4M2U4NjQ0MGJmZmFmYTYyZTY0M2QzMzcyYTcx
YzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9jYWxsL3J0cF9wYXlsb2FkX3BhcmFtcy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9jYWxsL3J0cF9wYXlsb2FkX3BhcmFtcy5jYwpAQCAtMTA1LDYg
KzEwNSwxNCBAQCB2b2lkIFBvcHVsYXRlUnRwV2l0aENvZGVjU3BlY2lmaWNzKGNvbnN0IENvZGVj
U3BlY2lmaWNJbmZvJiBpbmZvLAogICAgICAgfQogICAgICAgcmV0dXJuOwogICAgIH0KKyNpZm5k
ZWYgRElTQUJMRV9IMjY1CisgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjU6IHsKKyAgICAgIGF1dG8g
aDI2NV9oZWFkZXIgPSBydHAtPnZpZGVvX3R5cGVfaGVhZGVyLmVtcGxhY2U8UlRQVmlkZW9IZWFk
ZXJIMjY1PigpOworICAgICAgaDI2NV9oZWFkZXIucGFja2V0aXphdGlvbl9tb2RlID0KKyAgICAg
ICAgICBpbmZvLmNvZGVjU3BlY2lmaWMuSDI2NS5wYWNrZXRpemF0aW9uX21vZGU7CisgICAgfQor
ICAgIHJldHVybjsKKyNlbmRpZgogICAgIGNhc2Uga1ZpZGVvQ29kZWNNdWx0aXBsZXg6CiAgICAg
Y2FzZSBrVmlkZW9Db2RlY0dlbmVyaWM6CiAgICAgICBydHAtPmNvZGVjID0ga1ZpZGVvQ29kZWNH
ZW5lcmljOwpAQCAtMzAwLDYgKzMwOCw5IEBAIHZvaWQgUnRwUGF5bG9hZFBhcmFtczo6U2V0R2Vu
ZXJpYyhjb25zdCBDb2RlY1NwZWNpZmljSW5mbyogY29kZWNfc3BlY2lmaWNfaW5mbywKICAgICAg
ICAgICAgICAgICAgICAgICBpc19rZXlmcmFtZSwgcnRwX3ZpZGVvX2hlYWRlcik7CiAgICAgICB9
CiAgICAgICByZXR1cm47CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2UgVmlkZW9Db2Rl
Y1R5cGU6OmtWaWRlb0NvZGVjSDI2NToKKyNlbmRpZgogICAgIGNhc2UgVmlkZW9Db2RlY1R5cGU6
OmtWaWRlb0NvZGVjTXVsdGlwbGV4OgogICAgICAgcmV0dXJuOwogICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vQlVJ
TEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25f
dmlkZW8vQlVJTEQuZ24KaW5kZXggZGRmNGMyZDQ5NTlhZWRlNDE4ZDI1ZDVjOGU3YjgwZTUzNjA4
MzUwYi4uN2Q0ODk2ZWQ3Y2U4OGI1MzQ1ZmRhYzgwNDk0YmY1ZmY5ZmUyNzA5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVv
L0JVSUxELmduCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L2NvbW1vbl92aWRlby9CVUlMRC5nbgpAQCAtNDEsNiArNDEsMTkgQEAgcnRjX2xpYnJhcnkoImNv
bW1vbl92aWRlbyIpIHsKICAgICAidmlkZW9fcmVuZGVyX2ZyYW1lcy5oIiwKICAgXQogCisgIGlm
IChydGNfdXNlX2gyNjUpIHsKKyAgICBzb3VyY2VzICs9IFsKKyAgICAgICJoMjY1L2gyNjVfY29t
bW9uLmNjIiwKKyAgICAgICJoMjY1L2gyNjVfY29tbW9uLmgiLAorICAgICAgImgyNjUvaDI2NV9w
cHNfcGFyc2VyLmNjIiwKKyAgICAgICJoMjY1L2gyNjVfcHBzX3BhcnNlci5oIiwKKyAgICAgICJo
MjY1L2gyNjVfc3BzX3BhcnNlci5jYyIsCisgICAgICAiaDI2NS9oMjY1X3Nwc19wYXJzZXIuaCIs
CisgICAgICAiaDI2NS9oMjY1X3Zwc19wYXJzZXIuY2MiLAorICAgICAgImgyNjUvaDI2NV92cHNf
cGFyc2VyLmgiLAorICAgIF0KKyAgfQorCiAgIGRlcHMgPSBbCiAgICAgIi4uL2FwaTpzY29wZWRf
cmVmcHRyIiwKICAgICAiLi4vYXBpL3Rhc2tfcXVldWUiLApkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9j
b21tb24uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21t
b25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjJjYWMyMjc1OWQ4YmRi
YmZmYmYwZjcxNGU5MTQ3ZTY0MjNiNjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21t
b24uY2MKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBX
ZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisg
KiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkg
cmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwg
Y29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVU
SE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW5jbHVk
ZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIKKworbmFtZXNwYWNlIHdlYnJ0YyB7
CituYW1lc3BhY2UgSDI2NSB7CisKK2NvbnN0IHVpbnQ4X3Qga05hbHVUeXBlTWFzayA9IDB4N0U7
CisKK3N0ZDo6dmVjdG9yPE5hbHVJbmRleD4gRmluZE5hbHVJbmRpY2VzKGNvbnN0IHVpbnQ4X3Qq
IGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBi
dWZmZXJfc2l6ZSkgeworICAvLyBUaGlzIGlzIHNvcnRhIGxpa2UgQm95ZXItTW9vcmUsIGJ1dCB3
aXRoIG9ubHkgdGhlIGZpcnN0IG9wdGltaXphdGlvbiBzdGVwOgorICAvLyBnaXZlbiBhIDMtYnl0
ZSBzZXF1ZW5jZSB3ZSdyZSBsb29raW5nIGF0LCBpZiB0aGUgM3JkIGJ5dGUgaXNuJ3QgMSBvciAw
LAorICAvLyBza2lwIGFoZWFkIHRvIHRoZSBuZXh0IDMtYnl0ZSBzZXF1ZW5jZS4gMHMgYW5kIDFz
IGFyZSByZWxhdGl2ZWx5IHJhcmUsIHNvCisgIC8vIHRoaXMgd2lsbCBza2lwIHRoZSBtYWpvcml0
eSBvZiByZWFkcy9jaGVja3MuCisgIHN0ZDo6dmVjdG9yPE5hbHVJbmRleD4gc2VxdWVuY2VzOwor
ICBpZiAoYnVmZmVyX3NpemUgPCBrTmFsdVNob3J0U3RhcnRTZXF1ZW5jZVNpemUpCisgICAgcmV0
dXJuIHNlcXVlbmNlczsKKworICBjb25zdCBzaXplX3QgZW5kID0gYnVmZmVyX3NpemUgLSBrTmFs
dVNob3J0U3RhcnRTZXF1ZW5jZVNpemU7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW5kOykg
eworICAgIGlmIChidWZmZXJbaSArIDJdID4gMSkgeworICAgICAgaSArPSAzOworICAgIH0gZWxz
ZSBpZiAoYnVmZmVyW2kgKyAyXSA9PSAxICYmIGJ1ZmZlcltpICsgMV0gPT0gMCAmJiBidWZmZXJb
aV0gPT0gMCkgeworICAgICAgLy8gV2UgZm91bmQgYSBzdGFydCBzZXF1ZW5jZSwgbm93IGNoZWNr
IGlmIGl0IHdhcyBhIDMgb2YgNCBieXRlIG9uZS4KKyAgICAgIE5hbHVJbmRleCBpbmRleCA9IHtp
LCBpICsgMywgMH07CisgICAgICBpZiAoaW5kZXguc3RhcnRfb2Zmc2V0ID4gMCAmJiBidWZmZXJb
aW5kZXguc3RhcnRfb2Zmc2V0IC0gMV0gPT0gMCkKKyAgICAgICAgLS1pbmRleC5zdGFydF9vZmZz
ZXQ7CisKKyAgICAgIC8vIFVwZGF0ZSBsZW5ndGggb2YgcHJldmlvdXMgZW50cnkuCisgICAgICBh
dXRvIGl0ID0gc2VxdWVuY2VzLnJiZWdpbigpOworICAgICAgaWYgKGl0ICE9IHNlcXVlbmNlcy5y
ZW5kKCkpCisgICAgICAgIGl0LT5wYXlsb2FkX3NpemUgPSBpbmRleC5zdGFydF9vZmZzZXQgLSBp
dC0+cGF5bG9hZF9zdGFydF9vZmZzZXQ7CisKKyAgICAgIHNlcXVlbmNlcy5wdXNoX2JhY2soaW5k
ZXgpOworCisgICAgICBpICs9IDM7CisgICAgfSBlbHNlIHsKKyAgICAgICsraTsKKyAgICB9Cisg
IH0KKworICAvLyBVcGRhdGUgbGVuZ3RoIG9mIGxhc3QgZW50cnksIGlmIGFueS4KKyAgYXV0byBp
dCA9IHNlcXVlbmNlcy5yYmVnaW4oKTsKKyAgaWYgKGl0ICE9IHNlcXVlbmNlcy5yZW5kKCkpCisg
ICAgaXQtPnBheWxvYWRfc2l6ZSA9IGJ1ZmZlcl9zaXplIC0gaXQtPnBheWxvYWRfc3RhcnRfb2Zm
c2V0OworCisgIHJldHVybiBzZXF1ZW5jZXM7Cit9CisKK05hbHVUeXBlIFBhcnNlTmFsdVR5cGUo
dWludDhfdCBkYXRhKSB7CisgIHJldHVybiBzdGF0aWNfY2FzdDxOYWx1VHlwZT4oKGRhdGEgJiBr
TmFsdVR5cGVNYXNrKSA+PiAxKTsKK30KKworc3RkOjp2ZWN0b3I8dWludDhfdD4gUGFyc2VSYnNw
KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpIHsKKyAgc3RkOjp2ZWN0b3I8dWlu
dDhfdD4gb3V0OworICBvdXQucmVzZXJ2ZShsZW5ndGgpOworCisgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbGVuZ3RoOykgeworICAgIC8vIEJlIGNhcmVmdWwgYWJvdXQgb3Zlci91bmRlcmZsb3cg
aGVyZS4gYnl0ZV9sZW5ndGhfIC0gMyBjYW4gdW5kZXJmbG93LCBhbmQKKyAgICAvLyBpICsgMyBj
YW4gb3ZlcmZsb3csIGJ1dCBieXRlX2xlbmd0aF8gLSBpIGNhbid0LCBiZWNhdXNlIGkgPCBieXRl
X2xlbmd0aF8KKyAgICAvLyBhYm92ZSwgYW5kIHRoYXQgZXhwcmVzc2lvbiB3aWxsIHByb2R1Y2Ug
dGhlIG51bWJlciBvZiBieXRlcyBsZWZ0IGluCisgICAgLy8gdGhlIHN0cmVhbSBpbmNsdWRpbmcg
dGhlIGJ5dGUgYXQgaS4KKyAgICBpZiAobGVuZ3RoIC0gaSA+PSAzICYmICFkYXRhW2ldICYmICFk
YXRhW2kgKyAxXSAmJiBkYXRhW2kgKyAyXSA9PSAzKSB7CisgICAgICAvLyBUd28gcmJzcCBieXRl
cy4KKyAgICAgIG91dC5wdXNoX2JhY2soZGF0YVtpKytdKTsKKyAgICAgIG91dC5wdXNoX2JhY2so
ZGF0YVtpKytdKTsKKyAgICAgIC8vIFNraXAgdGhlIGVtdWxhdGlvbiBieXRlLgorICAgICAgaSsr
OworICAgIH0gZWxzZSB7CisgICAgICAvLyBTaW5nbGUgcmJzcCBieXRlLgorICAgICAgb3V0LnB1
c2hfYmFjayhkYXRhW2krK10pOworICAgIH0KKyAgfQorICByZXR1cm4gb3V0OworfQorCit2b2lk
IFdyaXRlUmJzcChjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IGxlbmd0aCwgcnRjOjpCdWZm
ZXIqIGRlc3RpbmF0aW9uKSB7CisgIHN0YXRpYyBjb25zdCB1aW50OF90IGtaZXJvc0luU3RhcnRT
ZXF1ZW5jZSA9IDI7CisgIHN0YXRpYyBjb25zdCB1aW50OF90IGtFbXVsYXRpb25CeXRlID0gMHgw
M3U7CisgIHNpemVfdCBudW1fY29uc2VjdXRpdmVfemVyb3MgPSAwOworICBkZXN0aW5hdGlvbi0+
RW5zdXJlQ2FwYWNpdHkoZGVzdGluYXRpb24tPnNpemUoKSArIGxlbmd0aCk7CisKKyAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgIHVpbnQ4X3QgYnl0ZSA9IGJ5dGVz
W2ldOworICAgIGlmIChieXRlIDw9IGtFbXVsYXRpb25CeXRlICYmCisgICAgICAgIG51bV9jb25z
ZWN1dGl2ZV96ZXJvcyA+PSBrWmVyb3NJblN0YXJ0U2VxdWVuY2UpIHsKKyAgICAgIC8vIE5lZWQg
dG8gZXNjYXBlLgorICAgICAgZGVzdGluYXRpb24tPkFwcGVuZERhdGEoa0VtdWxhdGlvbkJ5dGUp
OworICAgICAgbnVtX2NvbnNlY3V0aXZlX3plcm9zID0gMDsKKyAgICB9CisgICAgZGVzdGluYXRp
b24tPkFwcGVuZERhdGEoYnl0ZSk7CisgICAgaWYgKGJ5dGUgPT0gMCkgeworICAgICAgKytudW1f
Y29uc2VjdXRpdmVfemVyb3M7CisgICAgfSBlbHNlIHsKKyAgICAgIG51bV9jb25zZWN1dGl2ZV96
ZXJvcyA9IDA7CisgICAgfQorICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBIMjY1Cit9ICAvLyBu
YW1lc3BhY2Ugd2VicnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5oIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9j
b21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wN2JiMjc3NGVlMTBhYjEzZTkyMjVkNDQwNWQ1MTY5M2FjNzEw
NDEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaApAQCAtMCwwICsxLDEwMCBA
QAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlz
IGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBp
biB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBB
biBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZv
dW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBh
dXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qg
b2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpZm5kZWYgQ09NTU9OX1ZJREVPX0gyNjVfSDI2
NV9DT01NT05fSF8KKyNkZWZpbmUgQ09NTU9OX1ZJREVPX0gyNjVfSDI2NV9DT01NT05fSF8KKwor
I2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlICJydGNfYmFz
ZS9idWZmZXIuaCIKKworbmFtZXNwYWNlIHdlYnJ0YyB7CisKK25hbWVzcGFjZSBIMjY1IHsKKy8v
IFRoZSBzaXplIG9mIGEgZnVsbCBOQUxVIHN0YXJ0IHNlcXVlbmNlIHswIDAgMCAxfSwgdXNlZCBm
b3IgdGhlIGZpcnN0IE5BTFUKKy8vIG9mIGFuIGFjY2VzcyB1bml0LCBhbmQgZm9yIFNQUyBhbmQg
UFBTIGJsb2Nrcy4KK2NvbnN0IHNpemVfdCBrTmFsdUxvbmdTdGFydFNlcXVlbmNlU2l6ZSA9IDQ7
CisKKy8vIFRoZSBzaXplIG9mIGEgc2hvcnRlbmVkIE5BTFUgc3RhcnQgc2VxdWVuY2UgezAgMCAx
fSwgdGhhdCBtYXkgYmUgdXNlZCBpZgorLy8gbm90IHRoZSBmaXJzdCBOQUxVIG9mIGFuIGFjY2Vz
cyB1bml0IG9yIGFuIFNQUyBvciBQUFMgYmxvY2suCitjb25zdCBzaXplX3Qga05hbHVTaG9ydFN0
YXJ0U2VxdWVuY2VTaXplID0gMzsKKworLy8gVGhlIHNpemUgb2YgdGhlIE5BTFUgdHlwZSBieXRl
ICgxKS4KK2NvbnN0IHNpemVfdCBrTmFsdVR5cGVTaXplID0gMTsKKworZW51bSBOYWx1VHlwZSA6
IHVpbnQ4X3QgeworICBrVHJhaWxOID0gMCwKKyAga1RyYWlsUiA9IDEsCisgIGtUc2FOID0gMiwK
KyAga1RzYVIgPSAzLAorICBrU3RzYU4gPSA0LAorICBrU3RzYVIgPSA1LAorICBrUmFkbE4gPSA2
LAorICBrUmFkbFIgPSA3LAorICBrQmxhV0xwID0gMTYsCisgIGtCbGFXUmFkbCA9IDE3LAorICBr
QmxhTkxwID0gMTgsCisgIGtJZHJXUmFkbCA9IDE5LAorICBrSWRyTkxwID0gMjAsCisgIGtDcmEg
PSAyMSwKKyAga1JzdklyYXBWY2wyMyA9IDIzLAorICBrVnBzID0gMzIsCisgIGtTcHMgPSAzMywK
KyAga1BwcyA9IDM0LAorICBrQXVkID0gMzUsCisgIGtQcmVmaXhTZWkgPSAzOSwKKyAga1N1ZmZp
eFNlaSA9IDQwLAorICBrQVAgPSA0OCwKKyAga0ZVID0gNDkKK307CisKK2VudW0gU2xpY2VUeXBl
IDogdWludDhfdCB7IGtQID0gMCwga0IgPSAxLCBrSSA9IDIsIGtTcCA9IDMsIGtTaSA9IDQgfTsK
Kworc3RydWN0IE5hbHVJbmRleCB7CisgIC8vIFN0YXJ0IGluZGV4IG9mIE5BTFUsIGluY2x1ZGlu
ZyBzdGFydCBzZXF1ZW5jZS4KKyAgc2l6ZV90IHN0YXJ0X29mZnNldDsKKyAgLy8gU3RhcnQgaW5k
ZXggb2YgTkFMVSBwYXlsb2FkLCB0eXBpY2FsbHkgdHlwZSBoZWFkZXIuCisgIHNpemVfdCBwYXls
b2FkX3N0YXJ0X29mZnNldDsKKyAgLy8gTGVuZ3RoIG9mIE5BTFUgcGF5bG9hZCwgaW4gYnl0ZXMs
IGNvdW50aW5nIGZyb20gcGF5bG9hZF9zdGFydF9vZmZzZXQuCisgIHNpemVfdCBwYXlsb2FkX3Np
emU7Cit9OworCisvLyBSZXR1cm5zIGEgdmVjdG9yIG9mIHRoZSBOQUxVIGluZGljZXMgaW4gdGhl
IGdpdmVuIGJ1ZmZlci4KK3N0ZDo6dmVjdG9yPE5hbHVJbmRleD4gRmluZE5hbHVJbmRpY2VzKGNv
bnN0IHVpbnQ4X3QqIGJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBidWZmZXJfc2l6ZSk7CisKKy8vIEdldCB0aGUgTkFMIHR5cGUgZnJvbSB0aGUg
aGVhZGVyIGJ5dGUgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHN0YXJ0IHNlcXVlbmNlLgorTmFsdVR5
cGUgUGFyc2VOYWx1VHlwZSh1aW50OF90IGRhdGEpOworCisvLyBNZXRob2RzIGZvciBwYXJzaW5n
IGFuZCB3cml0aW5nIFJCU1AuIFNlZSBzZWN0aW9uIDcuNC4yIG9mIHRoZSBIMjY1IHNwZWMuCisv
LworLy8gVGhlIGZvbGxvd2luZyBzZXF1ZW5jZXMgYXJlIGlsbGVnYWwsIGFuZCBuZWVkIHRvIGJl
IGVzY2FwZWQgd2hlbiBlbmNvZGluZzoKKy8vIDAwIDAwIDAwIC0+IDAwIDAwIDAzIDAwCisvLyAw
MCAwMCAwMSAtPiAwMCAwMCAwMyAwMQorLy8gMDAgMDAgMDIgLT4gMDAgMDAgMDMgMDIKKy8vIEFu
ZCB0aGluZ3MgaW4gdGhlIHNvdXJjZSB0aGF0IGxvb2sgbGlrZSB0aGUgZW11bGF0aW9uIGJ5dGUg
cGF0dGVybiAoMDAgMDAgMDMpCisvLyBuZWVkIHRvIGhhdmUgYW4gZXh0cmEgZW11bGF0aW9uIGJ5
dGUgYWRkZWQsIHNvIGl0J3MgcmVtb3ZlZCB3aGVuIGRlY29kaW5nOgorLy8gMDAgMDAgMDMgLT4g
MDAgMDAgMDMgMDMKKy8vCisvLyBEZWNvZGluZyBpcyBzaW1wbHkgYSBtYXR0ZXIgb2YgZmluZGlu
ZyBhbnkgMDAgMDAgMDMgc2VxdWVuY2UgYW5kIHJlbW92aW5nCisvLyB0aGUgMDMgZW11bGF0aW9u
IGJ5dGUuCisKKy8vIFBhcnNlIHRoZSBnaXZlbiBkYXRhIGFuZCByZW1vdmUgYW55IGVtdWxhdGlv
biBieXRlIGVzY2FwaW5nLgorc3RkOjp2ZWN0b3I8dWludDhfdD4gUGFyc2VSYnNwKGNvbnN0IHVp
bnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworCisvLyBXcml0ZSB0aGUgZ2l2ZW4gZGF0YSB0
byB0aGUgZGVzdGluYXRpb24gYnVmZmVyLCBpbnNlcnRpbmcgYW5kIGVtdWxhdGlvbgorLy8gYnl0
ZXMgaW4gb3JkZXIgdG8gZXNjYXBlIGFueSBkYXRhIHRoZSBjb3VsZCBiZSBpbnRlcnByZXRlZCBh
cyBhIHN0YXJ0CisvLyBzZXF1ZW5jZS4KK3ZvaWQgV3JpdGVSYnNwKGNvbnN0IHVpbnQ4X3QqIGJ5
dGVzLCBzaXplX3QgbGVuZ3RoLCBydGM6OkJ1ZmZlciogZGVzdGluYXRpb24pOworfSAgLy8gbmFt
ZXNwYWNlIEgyNjUKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKworI2VuZGlmICAvLyBDT01NT05f
VklERU9fSDI2NV9IMjY1X0NPTU1PTl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2Vy
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxODQxMWNlZDMyN2M4NGE2
NWVjOTNmNGRmYzdiZTkyY2ZmMmUyNmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bwc19w
YXJzZXIuY2MKQEAgLTAsMCArMSwyMDkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRo
ZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBV
c2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNl
CisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVy
dHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBB
bGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUg
QVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW5j
bHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmgiCisKKyNpbmNsdWRlIDxt
ZW1vcnk+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjQv
aDI2NF9jb21tb24uaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NS9oMjY1X2NvbW1vbi5o
IgorI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9s
b2dnaW5nLmgiCisKKyNkZWZpbmUgUkVUVVJOX0VNUFRZX09OX0ZBSUwoeCkgXAorICBpZiAoISh4
KSkgeyAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7ICAgICAg
ICBcCisgIH0KKworbmFtZXNwYWNlIHsKK2NvbnN0IGludCBrTWF4UGljSW5pdFFwRGVsdGFWYWx1
ZSA9IDI1OworY29uc3QgaW50IGtNaW5QaWNJbml0UXBEZWx0YVZhbHVlID0gLTI2OworfSAgLy8g
bmFtZXNwYWNlCisKK25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBHZW5lcmFsIG5vdGU6IHRoaXMg
aXMgYmFzZWQgb2ZmIHRoZSAwMi8yMDE4IHZlcnNpb24gb2YgdGhlIEguMjY1IHN0YW5kYXJkLgor
Ly8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKy8vIGh0dHA6Ly93d3cuaXR1LmludC9y
ZWMvVC1SRUMtSC4yNjUKKworYWJzbDo6b3B0aW9uYWw8SDI2NVBwc1BhcnNlcjo6UHBzU3RhdGU+
IEgyNjVQcHNQYXJzZXI6OlBhcnNlUHBzKAorICAgIGNvbnN0IHVpbnQ4X3QqIGRhdGEsCisgICAg
c2l6ZV90IGxlbmd0aCkgeworICAvLyBGaXJzdCwgcGFyc2Ugb3V0IHJic3AsIHdoaWNoIGlzIGJh
c2ljYWxseSB0aGUgc291cmNlIGJ1ZmZlciBtaW51cyBlbXVsYXRpb24KKyAgLy8gYnl0ZXMgKHRo
ZSBsYXN0IGJ5dGUgb2YgYSAweDAwIDB4MDAgMHgwMyBzZXF1ZW5jZSkuIFJCU1AgaXMgZGVmaW5l
ZCBpbgorICAvLyBzZWN0aW9uIDcuMy4xIG9mIHRoZSBILjI2NCBzdGFuZGFyZC4KKyAgc3RkOjp2
ZWN0b3I8dWludDhfdD4gdW5wYWNrZWRfYnVmZmVyID0gSDI2NDo6UGFyc2VSYnNwKGRhdGEsIGxl
bmd0aCk7CisgIHJ0Yzo6Qml0QnVmZmVyIGJpdF9idWZmZXIodW5wYWNrZWRfYnVmZmVyLmRhdGEo
KSwgdW5wYWNrZWRfYnVmZmVyLnNpemUoKSk7CisgIHJldHVybiBQYXJzZUludGVybmFsKCZiaXRf
YnVmZmVyKTsKK30KKworYm9vbCBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwc0lkcyhjb25zdCB1aW50
OF90KiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuZ3Ro
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogc3BzX2lkKSB7CisgIFJUQ19E
Q0hFQ0socHBzX2lkKTsKKyAgUlRDX0RDSEVDSyhzcHNfaWQpOworICAvLyBGaXJzdCwgcGFyc2Ug
b3V0IHJic3AsIHdoaWNoIGlzIGJhc2ljYWxseSB0aGUgc291cmNlIGJ1ZmZlciBtaW51cyBlbXVs
YXRpb24KKyAgLy8gYnl0ZXMgKHRoZSBsYXN0IGJ5dGUgb2YgYSAweDAwIDB4MDAgMHgwMyBzZXF1
ZW5jZSkuIFJCU1AgaXMgZGVmaW5lZCBpbgorICAvLyBzZWN0aW9uIDcuMy4xIG9mIHRoZSBILjI2
NSBzdGFuZGFyZC4KKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gdW5wYWNrZWRfYnVmZmVyID0gSDI2
NDo6UGFyc2VSYnNwKGRhdGEsIGxlbmd0aCk7CisgIHJ0Yzo6Qml0QnVmZmVyIGJpdF9idWZmZXIo
dW5wYWNrZWRfYnVmZmVyLmRhdGEoKSwgdW5wYWNrZWRfYnVmZmVyLnNpemUoKSk7CisgIHJldHVy
biBQYXJzZVBwc0lkc0ludGVybmFsKCZiaXRfYnVmZmVyLCBwcHNfaWQsIHNwc19pZCk7Cit9CisK
K2Fic2w6Om9wdGlvbmFsPHVpbnQzMl90PiBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwc0lkRnJvbVNs
aWNlU2VnbWVudExheWVyUmJzcCgKKyAgICBjb25zdCB1aW50OF90KiBkYXRhLAorICAgIHNpemVf
dCBsZW5ndGgsCisgICAgdWludDhfdCBuYWx1X3R5cGUpIHsKKyAgcnRjOjpCaXRCdWZmZXIgc2xp
Y2VfcmVhZGVyKGRhdGEsIGxlbmd0aCk7CisKKyAgLy8gZmlyc3Rfc2xpY2Vfc2VnbWVudF9pbl9w
aWNfZmxhZzogdSgxKQorICB1aW50MzJfdCBmaXJzdF9zbGljZV9zZWdtZW50X2luX3BpY19mbGFn
ID0gMDsKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBzbGljZV9yZWFkZXIuUmVhZEJp
dHMoJmZpcnN0X3NsaWNlX3NlZ21lbnRfaW5fcGljX2ZsYWcsIDEpKTsKKworICBpZiAobmFsdV90
eXBlID49IEgyNjU6Ok5hbHVUeXBlOjprQmxhV0xwICYmCisgICAgICBuYWx1X3R5cGUgPD0gSDI2
NTo6TmFsdVR5cGU6OmtSc3ZJcmFwVmNsMjMpIHsKKyAgICAvLyBub19vdXRwdXRfb2ZfcHJpb3Jf
cGljc19mbGFnOiB1KDEpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoc2xpY2VfcmVhZGVyLkNv
bnN1bWVCaXRzKDEpKTsKKyAgfQorCisgIC8vIHNsaWNlX3BpY19wYXJhbWV0ZXJfc2V0X2lkOiB1
ZSh2KQorICB1aW50MzJfdCBzbGljZV9waWNfcGFyYW1ldGVyX3NldF9pZCA9IDA7CisgIGlmICgh
c2xpY2VfcmVhZGVyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmc2xpY2VfcGljX3BhcmFtZXRlcl9z
ZXRfaWQpKQorICAgIHJldHVybiBhYnNsOjpudWxsb3B0OworCisgIHJldHVybiBzbGljZV9waWNf
cGFyYW1ldGVyX3NldF9pZDsKK30KKworYWJzbDo6b3B0aW9uYWw8SDI2NVBwc1BhcnNlcjo6UHBz
U3RhdGU+IEgyNjVQcHNQYXJzZXI6OlBhcnNlSW50ZXJuYWwoCisgICAgcnRjOjpCaXRCdWZmZXIq
IGJpdF9idWZmZXIpIHsKKyAgUHBzU3RhdGUgcHBzOworCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlM
KFBhcnNlUHBzSWRzSW50ZXJuYWwoYml0X2J1ZmZlciwgJnBwcy5pZCwgJnBwcy5zcHNfaWQpKTsK
KworICB1aW50MzJfdCBiaXRzX3RtcDsKKyAgdWludDMyX3QgZ29sb21iX2lnbm9yZWQ7CisgIC8v
IGVudHJvcHlfY29kaW5nX21vZGVfZmxhZzogdSgxKQorICB1aW50MzJfdCBlbnRyb3B5X2NvZGlu
Z19tb2RlX2ZsYWc7CisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRCaXRz
KCZlbnRyb3B5X2NvZGluZ19tb2RlX2ZsYWcsIDEpKTsKKyAgcHBzLmVudHJvcHlfY29kaW5nX21v
ZGVfZmxhZyA9IGVudHJvcHlfY29kaW5nX21vZGVfZmxhZyAhPSAwOworICAvLyBib3R0b21fZmll
bGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZzogdSgxKQorICB1aW50MzJfdCBib3R0
b21fZmllbGRfcGljX29yZGVyX2luX2ZyYW1lX3ByZXNlbnRfZmxhZzsKKyAgUkVUVVJOX0VNUFRZ
X09OX0ZBSUwoCisgICAgICBiaXRfYnVmZmVyLT5SZWFkQml0cygmYm90dG9tX2ZpZWxkX3BpY19v
cmRlcl9pbl9mcmFtZV9wcmVzZW50X2ZsYWcsIDEpKTsKKyAgcHBzLmJvdHRvbV9maWVsZF9waWNf
b3JkZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnID0KKyAgICAgIGJvdHRvbV9maWVsZF9waWNfb3Jk
ZXJfaW5fZnJhbWVfcHJlc2VudF9mbGFnICE9IDA7CisKKyAgLy8gbnVtX3NsaWNlX2dyb3Vwc19t
aW51czE6IHVlKHYpCisgIHVpbnQzMl90IG51bV9zbGljZV9ncm91cHNfbWludXMxOworICBSRVRV
Uk5fRU1QVFlfT05fRkFJTCgKKyAgICAgIGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9t
YigmbnVtX3NsaWNlX2dyb3Vwc19taW51czEpKTsKKyAgaWYgKG51bV9zbGljZV9ncm91cHNfbWlu
dXMxID4gMCkgeworICAgIHVpbnQzMl90IHNsaWNlX2dyb3VwX21hcF90eXBlOworICAgIC8vIHNs
aWNlX2dyb3VwX21hcF90eXBlOiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAg
ICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnNsaWNlX2dyb3VwX21hcF90
eXBlKSk7CisgICAgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBlID09IDApIHsKKyAgICAgIGZvciAo
dWludDMyX3QgaV9ncm91cCA9IDA7IGlfZ3JvdXAgPD0gbnVtX3NsaWNlX2dyb3Vwc19taW51czE7
CisgICAgICAgICAgICsraV9ncm91cCkgeworICAgICAgICAvLyBydW5fbGVuZ3RoX21pbnVzMVtp
R3JvdXBdOiB1ZSh2KQorICAgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTCgKKyAgICAgICAgICAg
IGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAg
ICAgIH0KKyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3VwX21hcF90eXBlID09IDEpIHsKKyAgICAg
IC8vIFRPRE8oc3ByYW5nKTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIGRpc3BlcnNlZCBzbGljZSBn
cm91cCBtYXAgdHlwZS4KKyAgICAgIC8vIFNlZSA4LjIuMi4yIFNwZWNpZmljYXRpb24gZm9yIGRp
c3BlcnNlZCBzbGljZSBncm91cCBtYXAgdHlwZS4KKyAgICB9IGVsc2UgaWYgKHNsaWNlX2dyb3Vw
X21hcF90eXBlID09IDIpIHsKKyAgICAgIGZvciAodWludDMyX3QgaV9ncm91cCA9IDA7IGlfZ3Jv
dXAgPD0gbnVtX3NsaWNlX2dyb3Vwc19taW51czE7CisgICAgICAgICAgICsraV9ncm91cCkgewor
ICAgICAgICAvLyB0b3BfbGVmdFtpR3JvdXBdOiB1ZSh2KQorICAgICAgICBSRVRVUk5fRU1QVFlf
T05fRkFJTCgKKyAgICAgICAgICAgIGJpdF9idWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigm
Z29sb21iX2lnbm9yZWQpKTsKKyAgICAgICAgLy8gYm90dG9tX3JpZ2h0W2lHcm91cF06IHVlKHYp
CisgICAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgICAgICAgYml0X2J1ZmZlci0+
UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkpOworICAgICAgfQorICAgIH0g
ZWxzZSBpZiAoc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0gMyB8fCBzbGljZV9ncm91cF9tYXBfdHlw
ZSA9PSA0IHx8CisgICAgICAgICAgICAgICBzbGljZV9ncm91cF9tYXBfdHlwZSA9PSA1KSB7Cisg
ICAgICAvLyBzbGljZV9ncm91cF9jaGFuZ2VfZGlyZWN0aW9uX2ZsYWc6IHUoMSkKKyAgICAgIFJF
VFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZmZXItPlJlYWRCaXRzKCZiaXRzX3RtcCwgMSkpOwor
ICAgICAgLy8gc2xpY2VfZ3JvdXBfY2hhbmdlX3JhdGVfbWludXMxOiB1ZSh2KQorICAgICAgUkVU
VVJOX0VNUFRZX09OX0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xv
bWJfaWdub3JlZCkpOworICAgIH0gZWxzZSBpZiAoc2xpY2VfZ3JvdXBfbWFwX3R5cGUgPT0gNikg
eworICAgICAgLy8gcGljX3NpemVfaW5fbWFwX3VuaXRzX21pbnVzMTogdWUodikKKyAgICAgIHVp
bnQzMl90IHBpY19zaXplX2luX21hcF91bml0c19taW51czE7CisgICAgICBSRVRVUk5fRU1QVFlf
T05fRkFJTCgKKyAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBp
Y19zaXplX2luX21hcF91bml0c19taW51czEpKTsKKyAgICAgIHVpbnQzMl90IHNsaWNlX2dyb3Vw
X2lkX2JpdHMgPSAwOworICAgICAgdWludDMyX3QgbnVtX3NsaWNlX2dyb3VwcyA9IG51bV9zbGlj
ZV9ncm91cHNfbWludXMxICsgMTsKKyAgICAgIC8vIElmIG51bV9zbGljZV9ncm91cHMgaXMgbm90
IGEgcG93ZXIgb2YgdHdvIGFuIGFkZGl0aW9uYWwgYml0IGlzIHJlcXVpcmVkCisgICAgICAvLyB0
byBhY2NvdW50IGZvciB0aGUgY2VpbCgpIG9mIGxvZzIoKSBiZWxvdy4KKyAgICAgIGlmICgobnVt
X3NsaWNlX2dyb3VwcyAmIChudW1fc2xpY2VfZ3JvdXBzIC0gMSkpICE9IDApCisgICAgICAgICsr
c2xpY2VfZ3JvdXBfaWRfYml0czsKKyAgICAgIHdoaWxlIChudW1fc2xpY2VfZ3JvdXBzID4gMCkg
eworICAgICAgICBudW1fc2xpY2VfZ3JvdXBzID4+PSAxOworICAgICAgICArK3NsaWNlX2dyb3Vw
X2lkX2JpdHM7CisgICAgICB9CisgICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDw9IHBpY19z
aXplX2luX21hcF91bml0c19taW51czE7IGkrKykgeworICAgICAgICAvLyBzbGljZV9ncm91cF9p
ZFtpXTogdSh2KQorICAgICAgICAvLyBSZXByZXNlbnRlZCBieSBjZWlsKGxvZzIobnVtX3NsaWNl
X2dyb3Vwc19taW51czEgKyAxKSkgYml0cy4KKyAgICAgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwo
CisgICAgICAgICAgICBiaXRfYnVmZmVyLT5SZWFkQml0cygmYml0c190bXAsIHNsaWNlX2dyb3Vw
X2lkX2JpdHMpKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgLy8gbnVtX3JlZl9pZHhfbDBfZGVm
YXVsdF9hY3RpdmVfbWludXMxOiB1ZSh2KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVm
ZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgIC8vIG51bV9y
ZWZfaWR4X2wxX2RlZmF1bHRfYWN0aXZlX21pbnVzMTogdWUodikKKyAgUkVUVVJOX0VNUFRZX09O
X0ZBSUwoYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKCZnb2xvbWJfaWdub3JlZCkp
OworICAvLyB3ZWlnaHRlZF9wcmVkX2ZsYWc6IHUoMSkKKyAgdWludDMyX3Qgd2VpZ2h0ZWRfcHJl
ZF9mbGFnOworICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmd2Vp
Z2h0ZWRfcHJlZF9mbGFnLCAxKSk7CisgIHBwcy53ZWlnaHRlZF9wcmVkX2ZsYWcgPSB3ZWlnaHRl
ZF9wcmVkX2ZsYWcgIT0gMDsKKyAgLy8gd2VpZ2h0ZWRfYmlwcmVkX2lkYzogdSgyKQorICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChiaXRfYnVmZmVyLT5SZWFkQml0cygmcHBzLndlaWdodGVkX2JpcHJl
ZF9pZGMsIDIpKTsKKworICAvLyBwaWNfaW5pdF9xcF9taW51czI2OiBzZSh2KQorICBSRVRVUk5f
RU1QVFlfT05fRkFJTCgKKyAgICAgIGJpdF9idWZmZXItPlJlYWRTaWduZWRFeHBvbmVudGlhbEdv
bG9tYigmcHBzLnBpY19pbml0X3FwX21pbnVzMjYpKTsKKyAgLy8gU2FuaXR5LWNoZWNrIHBhcnNl
ZCB2YWx1ZQorICBpZiAocHBzLnBpY19pbml0X3FwX21pbnVzMjYgPiBrTWF4UGljSW5pdFFwRGVs
dGFWYWx1ZSB8fAorICAgICAgcHBzLnBpY19pbml0X3FwX21pbnVzMjYgPCBrTWluUGljSW5pdFFw
RGVsdGFWYWx1ZSkgeworICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGZhbHNlKTsKKyAgfQorICAv
LyBwaWNfaW5pdF9xc19taW51czI2OiBzZSh2KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChiaXRf
YnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgIC8vIGNo
cm9tYV9xcF9pbmRleF9vZmZzZXQ6IHNlKHYpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9i
dWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmZ29sb21iX2lnbm9yZWQpKTsKKyAgLy8gZGVi
bG9ja2luZ19maWx0ZXJfY29udHJvbF9wcmVzZW50X2ZsYWc6IHUoMSkKKyAgLy8gY29uc3RyYWlu
ZWRfaW50cmFfcHJlZF9mbGFnOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJpdF9idWZm
ZXItPlJlYWRCaXRzKCZiaXRzX3RtcCwgMikpOworICAvLyByZWR1bmRhbnRfcGljX2NudF9wcmVz
ZW50X2ZsYWc6IHUoMSkKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBiaXRfYnVmZmVy
LT5SZWFkQml0cygmcHBzLnJlZHVuZGFudF9waWNfY250X3ByZXNlbnRfZmxhZywgMSkpOworCisg
IHJldHVybiBwcHM7Cit9CisKK2Jvb2wgSDI2NVBwc1BhcnNlcjo6UGFyc2VQcHNJZHNJbnRlcm5h
bChydGM6OkJpdEJ1ZmZlciogYml0X2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50MzJfdCogcHBzX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQzMl90KiBzcHNfaWQpIHsKKyAgLy8gcGljX3BhcmFtZXRlcl9z
ZXRfaWQ6IHVlKHYpCisgIGlmICghYml0X2J1ZmZlci0+UmVhZEV4cG9uZW50aWFsR29sb21iKHBw
c19pZCkpCisgICAgcmV0dXJuIGZhbHNlOworICAvLyBzZXFfcGFyYW1ldGVyX3NldF9pZDogdWUo
dikKKyAgaWYgKCFiaXRfYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIoc3BzX2lkKSkKKyAg
ICByZXR1cm4gZmFsc2U7CisgIHJldHVybiB0cnVlOworfQorCit9ICAvLyBuYW1lc3BhY2Ugd2Vi
cnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaCBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3BhcnNl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNmYTQ3MTg4M2RjYWVhZjVhNTM0YWMzMTM5YTM2OTA3ZjMwNGZlNTYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Bwc19wYXJzZXIuaApAQCAtMCwwICsxLDY0IEBA
CisvKgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGlu
IHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFu
IGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91
bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1
dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBv
ZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKworI2lmbmRlZiBDT01NT05fVklERU9fSDI2NV9QUFNf
UEFSU0VSX0hfCisjZGVmaW5lIENPTU1PTl9WSURFT19IMjY1X1BQU19QQVJTRVJfSF8KKworI2lu
Y2x1ZGUgImFic2wvdHlwZXMvb3B0aW9uYWwuaCIKKworbmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBC
aXRCdWZmZXI7Cit9CisKK25hbWVzcGFjZSB3ZWJydGMgeworCisvLyBBIGNsYXNzIGZvciBwYXJz
aW5nIG91dCBwaWN0dXJlIHBhcmFtZXRlciBzZXQgKFBQUykgZGF0YSBmcm9tIGEgSDI2NSBOQUxV
LgorY2xhc3MgSDI2NVBwc1BhcnNlciB7CisgcHVibGljOgorICAvLyBUaGUgcGFyc2VkIHN0YXRl
IG9mIHRoZSBQUFMuIE9ubHkgc29tZSBzZWxlY3QgdmFsdWVzIGFyZSBzdG9yZWQuCisgIC8vIEFk
ZCBtb3JlIGFzIHRoZXkgYXJlIGFjdHVhbGx5IG5lZWRlZC4KKyAgc3RydWN0IFBwc1N0YXRlIHsK
KyAgICBQcHNTdGF0ZSgpID0gZGVmYXVsdDsKKworICAgIGJvb2wgYm90dG9tX2ZpZWxkX3BpY19v
cmRlcl9pbl9mcmFtZV9wcmVzZW50X2ZsYWcgPSBmYWxzZTsKKyAgICBib29sIHdlaWdodGVkX3By
ZWRfZmxhZyA9IGZhbHNlOworICAgIGJvb2wgZW50cm9weV9jb2RpbmdfbW9kZV9mbGFnID0gZmFs
c2U7CisgICAgdWludDMyX3Qgd2VpZ2h0ZWRfYmlwcmVkX2lkYyA9IGZhbHNlOworICAgIHVpbnQz
Ml90IHJlZHVuZGFudF9waWNfY250X3ByZXNlbnRfZmxhZyA9IDA7CisgICAgaW50IHBpY19pbml0
X3FwX21pbnVzMjYgPSAwOworICAgIHVpbnQzMl90IGlkID0gMDsKKyAgICB1aW50MzJfdCBzcHNf
aWQgPSAwOworICB9OworCisgIC8vIFVucGFjayBSQlNQIGFuZCBwYXJzZSBQUFMgc3RhdGUgZnJv
bSB0aGUgc3VwcGxpZWQgYnVmZmVyLgorICBzdGF0aWMgYWJzbDo6b3B0aW9uYWw8UHBzU3RhdGU+
IFBhcnNlUHBzKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpOworCisgIHN0YXRp
YyBib29sIFBhcnNlUHBzSWRzKGNvbnN0IHVpbnQ4X3QqIGRhdGEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz
Ml90KiBwcHNfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBzcHNfaWQp
OworCisgIHN0YXRpYyBhYnNsOjpvcHRpb25hbDx1aW50MzJfdD4gUGFyc2VQcHNJZEZyb21TbGlj
ZVNlZ21lbnRMYXllclJic3AoCisgICAgICBjb25zdCB1aW50OF90KiBkYXRhLAorICAgICAgc2l6
ZV90IGxlbmd0aCwKKyAgICAgIHVpbnQ4X3QgbmFsdV90eXBlKTsKKworIHByb3RlY3RlZDoKKyAg
Ly8gUGFyc2UgdGhlIFBQUyBzdGF0ZSwgZm9yIGEgYml0IGJ1ZmZlciB3aGVyZSBSQlNQIGRlY29k
aW5nIGhhcyBhbHJlYWR5IGJlZW4KKyAgLy8gcGVyZm9ybWVkLgorICBzdGF0aWMgYWJzbDo6b3B0
aW9uYWw8UHBzU3RhdGU+IFBhcnNlSW50ZXJuYWwocnRjOjpCaXRCdWZmZXIqIGJpdF9idWZmZXIp
OworICBzdGF0aWMgYm9vbCBQYXJzZVBwc0lkc0ludGVybmFsKHJ0Yzo6Qml0QnVmZmVyKiBiaXRf
YnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBwcHNf
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIHNwc19pZCk7
Cit9OworCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisKKyNlbmRpZiAgLy8gQ09NTU9OX1ZJREVP
X0gyNjVfUFBTX1BBUlNFUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmNjIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gy
NjUvaDI2NV9zcHNfcGFyc2VyLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MzNmNGIwZWU5MjBjMjMzZjFiNjE4
MTUwZDJkM2Y4OGZlZDBlYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Nwc19wYXJzZXIu
Y2MKQEAgLTAsMCArMSwxOTIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBXZWJS
VEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAg
dGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUg
c291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmln
aHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29u
dHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9S
UyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaW5jbHVkZSA8
bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1
L2gyNjVfY29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9zcHNfcGFy
c2VyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvYml0X2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19i
YXNlL2xvZ2dpbmcuaCIKKworbmFtZXNwYWNlIHsKK3R5cGVkZWYgYWJzbDo6b3B0aW9uYWw8d2Vi
cnRjOjpIMjY1U3BzUGFyc2VyOjpTcHNTdGF0ZT4gT3B0aW9uYWxTcHM7CisKKyNkZWZpbmUgUkVU
VVJOX0VNUFRZX09OX0ZBSUwoeCkgXAorICBpZiAoISh4KSkgeyAgICAgICAgICAgICAgICAgICBc
CisgICAgcmV0dXJuIE9wdGlvbmFsU3BzKCk7ICAgICAgIFwKKyAgfQorfSAgLy8gbmFtZXNwYWNl
CisKK25hbWVzcGFjZSB3ZWJydGMgeworCitIMjY1U3BzUGFyc2VyOjpTcHNTdGF0ZTo6U3BzU3Rh
dGUoKSA9IGRlZmF1bHQ7CisKKy8vIEdlbmVyYWwgbm90ZTogdGhpcyBpcyBiYXNlZCBvZmYgdGhl
IDAyLzIwMTggdmVyc2lvbiBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisvLyBZb3UgY2FuIGZpbmQg
aXQgb24gdGhpcyBwYWdlOgorLy8gaHR0cDovL3d3dy5pdHUuaW50L3JlYy9ULVJFQy1ILjI2NQor
CisvLyBVbnBhY2sgUkJTUCBhbmQgcGFyc2UgU1BTIHN0YXRlIGZyb20gdGhlIHN1cHBsaWVkIGJ1
ZmZlci4KK2Fic2w6Om9wdGlvbmFsPEgyNjVTcHNQYXJzZXI6OlNwc1N0YXRlPiBIMjY1U3BzUGFy
c2VyOjpQYXJzZVNwcygKKyAgICBjb25zdCB1aW50OF90KiBkYXRhLAorICAgIHNpemVfdCBsZW5n
dGgpIHsKKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gdW5wYWNrZWRfYnVmZmVyID0gSDI2NTo6UGFy
c2VSYnNwKGRhdGEsIGxlbmd0aCk7CisgIHJ0Yzo6Qml0QnVmZmVyIGJpdF9idWZmZXIodW5wYWNr
ZWRfYnVmZmVyLmRhdGEoKSwgdW5wYWNrZWRfYnVmZmVyLnNpemUoKSk7CisgIHJldHVybiBQYXJz
ZVNwc1VwVG9WdWkoJmJpdF9idWZmZXIpOworfQorCithYnNsOjpvcHRpb25hbDxIMjY1U3BzUGFy
c2VyOjpTcHNTdGF0ZT4gSDI2NVNwc1BhcnNlcjo6UGFyc2VTcHNVcFRvVnVpKAorICAgIHJ0Yzo6
Qml0QnVmZmVyKiBidWZmZXIpIHsKKyAgLy8gTm93LCB3ZSBuZWVkIHRvIHVzZSBhIGJpdCBidWZm
ZXIgdG8gcGFyc2UgdGhyb3VnaCB0aGUgYWN0dWFsIEhFVkMgU1BTCisgIC8vIGZvcm1hdC4gU2Vl
IFNlY3Rpb24gNy4zLjIuMi4xICgiR2VuZXJhbCBzZXF1ZW5jZSBwYXJhbWV0ZXIgc2V0IGRhdGEK
KyAgLy8gc3ludGF4Iikgb2YgdGhlIEguMjY1IHN0YW5kYXJkIGZvciBhIGNvbXBsZXRlIGRlc2Ny
aXB0aW9uLgorICAvLyBTaW5jZSB3ZSBvbmx5IGNhcmUgYWJvdXQgcmVzb2x1dGlvbiwgd2UgaWdu
b3JlIHRoZSBtYWpvcml0eSBvZiBmaWVsZHMsIGJ1dAorICAvLyB3ZSBzdGlsbCBoYXZlIHRvIGFj
dGl2ZWx5IHBhcnNlIHRocm91Z2ggYSBsb3Qgb2YgdGhlIGRhdGEsIHNpbmNlIG1hbnkgb2YKKyAg
Ly8gdGhlIGZpZWxkcyBoYXZlIHZhcmlhYmxlIHNpemUuCisgIC8vIFdlJ3JlIHBhcnRpY3VsYXJs
eSBpbnRlcmVzdGVkIGluOgorICAvLyBjaHJvbWFfZm9ybWF0X2lkYyAtPiBhZmZlY3RzIGNyb3Ag
dW5pdHMKKyAgLy8gcGljX3t3aWR0aCxoZWlnaHR9XyogLT4gcmVzb2x1dGlvbiBvZiB0aGUgZnJh
bWUgaW4gbWFjcm9ibG9ja3MgKDE2eDE2KS4KKyAgLy8gZnJhbWVfY3JvcF8qX29mZnNldCAtPiBj
cm9wIGluZm9ybWF0aW9uCisKKyAgU3BzU3RhdGUgc3BzOworCisgIC8vIFRoZSBnb2xvbWIgdmFs
dWVzIHdlIGhhdmUgdG8gcmVhZCwgbm90IGp1c3QgY29uc3VtZS4KKyAgdWludDMyX3QgZ29sb21i
X2lnbm9yZWQ7CisKKyAgLy8gc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgaXMgb3B0aW9uYWwg
KGFzc3VtZWQgMCksIGJ1dCBoYXMgaW1wbGljYXRpb25zCisgIC8vIGFib3V0IHRoZSBDaHJvbWFB
cnJheVR5cGUsIHdoaWNoIG1vZGlmaWVzIGhvdyB3ZSB0cmVhdCBjcm9wIGNvb3JkaW5hdGVzLgor
ICB1aW50MzJfdCBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZyA9IDA7CisKKyAgLy8gY2hyb21h
X2Zvcm1hdF9pZGMgd2lsbCBiZSBDaHJvbWFBcnJheVR5cGUgaWYgc2VwYXJhdGVfY29sb3VyX3Bs
YW5lX2ZsYWcgaXMKKyAgLy8gMC4gSXQgZGVmYXVsdHMgdG8gMSwgd2hlbiBub3Qgc3BlY2lmaWVk
LgorICB1aW50MzJfdCBjaHJvbWFfZm9ybWF0X2lkYyA9IDE7CisKKyAgLy8gc3BzX3ZpZGVvX3Bh
cmFtZXRlcl9zZXRfaWQ6IHUoNCkKKyAgdWludDMyX3Qgc3BzX3ZpZGVvX3BhcmFtZXRlcl9zZXRf
aWQgPSAwOworICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZzcHNfdmlk
ZW9fcGFyYW1ldGVyX3NldF9pZCwgNCkpOworICAvLyBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMx
OiB1KDMpCisgIHVpbnQzMl90IHNwc19tYXhfc3ViX2xheWVyc19taW51czEgPSAwOworICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZzcHNfbWF4X3N1Yl9sYXllcnNfbWlu
dXMxLCAzKSk7CisgIC8vIHNwc190ZW1wb3JhbF9pZF9uZXN0aW5nX2ZsYWc6IHUoMSkKKyAgUkVU
VVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5Db25zdW1lQml0cygxKSk7CisgIC8vIHByb2ZpbGVf
dGllcl9sZXZlbCgxLCBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxKS4gV2UgYXJlIGFjdXRhbGx5
IG5vdAorICAvLyB1c2luZyB0aGVtLCBzbyByZWFkL3NraXAgb3ZlciBpdC4KKyAgLy8gZ2VuZXJh
bF9wcm9maWxlX3NwYWNlK2dlbmVyYWxfdGllcl9mbGFnK2dlbmVyYWxfcHJmaWxlX2lkYzogdSg4
KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRlcygxKSk7CisgIC8v
IGdlbmVyYWxfcHJvZmlsZV9jb21wYXRhYmlsaXRpeV9mbGFnWzMyXQorICBSRVRVUk5fRU1QVFlf
T05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRlcyg0KSk7CisgIC8vIGdlbmVyYWxfcHJvZ3Jlc3Np
dmVfc291cmNlX2ZsYWcgKyBpbnRlcmxhY2VkX3NvdXJjZV9mbGFnKworICAvLyBub24tcGFja2Vk
X2NvbnN0cmFpbnQgZmxhZyArIGZyYW1lX29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgIFJF
VFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJpdHMoNCkpOworICAvLyBnZW5lcmFs
X3Byb2ZpbGVfaWRjIGRlY2lkZWQgZmxhZ3Mgb3IgcmVzZXJ2ZWQuICB1KDQzKQorICBSRVRVUk5f
RU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDQzKSk7CisgIC8vIGdlbmVyYWxfaW5i
bGRfZmxhZyBvciByZXNlcnZlZCAwOiB1KDEpCisgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZl
ci0+Q29uc3VtZUJpdHMoMSkpOworICAvLyBnZW5lcmFsX2xldmVsX2lkYzogdSg4KQorICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCeXRlcygxKSk7CisgIC8vIGlmIG1heF9z
dWJfbGF5ZXJzX21pbnVzMSA+PTEsIHJlYWQgdGhlIHN1YmxheWVyIHByb2ZpbGUgaW5mb3JtYXRp
b24KKyAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxh
Z3M7CisgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFn
czsKKyAgdWludDMyX3Qgc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudCA9IDA7CisgIHVpbnQzMl90
IHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50ID0gMDsKKyAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8
IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGkrKykgeworICAgIC8vIHN1YmxheWVyX3Byb2Zp
bGVfcHJlc2VudF9mbGFnIGFuZCBzdWJsYXllcl9sZXZlbF9wcmVzbmV0X2ZsYWc6ICB1KDIpCisg
ICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkQml0cygmc3ViX2xheWVyX3Byb2Zp
bGVfcHJlc2VudCwgMSkpOworICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEJp
dHMoJnN1Yl9sYXllcl9sZXZlbF9wcmVzZW50LCAxKSk7CisgICAgc3ViX2xheWVyX3Byb2ZpbGVf
cHJlc2VudF9mbGFncy5wdXNoX2JhY2soc3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudCk7CisgICAg
c3ViX2xheWVyX2xldmVsX3ByZXNlbnRfZmxhZ3MucHVzaF9iYWNrKHN1Yl9sYXllcl9sZXZlbF9w
cmVzZW50KTsKKyAgfQorICBpZiAoc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSA+IDApIHsKKyAg
ICBmb3IgKHVpbnQzMl90IGogPSBzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxOyBqIDwgODsgaisr
KSB7CisgICAgICAvLyByZXNlcnZlZCAyIGJpdHM6IHUoMikKKyAgICAgIFJFVFVSTl9FTVBUWV9P
Tl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJpdHMoMikpOworICAgIH0KKyAgfQorICBmb3IgKHVpbnQz
Ml90IGsgPSAwOyBrIDwgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTsgaysrKSB7CisgICAgaWYg
KHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3Nba10pIHsgIC8vCisgICAgICAvLyBzdWJf
bGF5ZXIgcHJvZmlsZV9zcGFjZS90aWVyX2ZsYWcvcHJvZmlsZV9pZGMuIGlnbm9yZWQuIHUoOCkK
KyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJ5dGVzKDEpKTsKKyAg
ICAgIC8vIHByb2ZpbGVfY29tcGF0YWJpbGl0eV9mbGFnOiAgdSgzMikKKyAgICAgIFJFVFVSTl9F
TVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJ5dGVzKDQpKTsKKyAgICAgIC8vIHN1Yl9sYXll
ciBwcm9ncmVzc2l2ZV9zb3VyY2VfZmxhZy9pbnRlcmxhY2VkX3NvdXJjZV9mbGFnLworICAgICAg
Ly8gbm9uX3BhY2tlZF9jb25zdHJhaW50X2ZsYWcvZnJhbWVfb25seV9jb25zdHJhaW50X2ZsYWc6
IHUoNCkKKyAgICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJpdHMoNCkp
OworICAgICAgLy8gZm9sbG93aW5nIDQzLWJpdHMgYXJlIHByb2ZpbGVfaWRjIHNwZWNpZmljLiBX
ZSBzaW1wbHkgcmVhZC9za2lwIGl0LgorICAgICAgLy8gdSg0MykKKyAgICAgIFJFVFVSTl9FTVBU
WV9PTl9GQUlMKGJ1ZmZlci0+Q29uc3VtZUJpdHMoNDMpKTsKKyAgICAgIC8vIDEtYml0IHByb2Zp
bGVfaWRjIHNwZWNpZmljIGluYmxkIGZsYWcuICBXZSBzaW1wbHkgcmVhZC9za2lwIGl0LiB1KDEp
CisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPkNvbnN1bWVCaXRzKDEpKTsKKyAg
ICB9CisgICAgaWYgKHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzW2tdKSB7CisgICAgICAv
LyBzdWJfbGF5ZXJfbGV2ZWxfaWRjOiB1KDgpCisgICAgICBSRVRVUk5fRU1QVFlfT05fRkFJTChi
dWZmZXItPkNvbnN1bWVCeXRlcygxKSk7CisgICAgfQorICB9CisgIC8vIHNwc19zZXFfcGFyYW1l
dGVyX3NldF9pZDogdWUodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkRXhw
b25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgIC8vIGNocm9tZV9mb3JtYXRfaWRj
OiB1ZSh2KQorICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRFeHBvbmVudGlhbEdv
bG9tYigmY2hyb21hX2Zvcm1hdF9pZGMpKTsKKyAgaWYgKGNocm9tYV9mb3JtYXRfaWRjID09IDMp
IHsKKyAgICAvLyBzZXBlcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZzogdSgxKQorICAgIFJFVFVSTl9F
TVBUWV9PTl9GQUlMKGJ1ZmZlci0+UmVhZEJpdHMoJnNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFn
LCAxKSk7CisgIH0KKyAgdWludDMyX3QgcGljX3dpZHRoX2luX2x1bWFfc2FtcGxlcyA9IDA7Cisg
IHVpbnQzMl90IHBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVzID0gMDsKKyAgLy8gcGljX3dpZHRo
X2luX2x1bWFfc2FtcGxlczogdWUodikKKyAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoCisgICAgICBi
dWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmcGljX3dpZHRoX2luX2x1bWFfc2FtcGxlcykp
OworICAvLyBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlczogdWUodikKKyAgUkVUVVJOX0VNUFRZ
X09OX0ZBSUwoCisgICAgICBidWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmcGljX2hlaWdo
dF9pbl9sdW1hX3NhbXBsZXMpKTsKKyAgLy8gY29uZm9ybWFuY2Vfd2luZG93X2ZsYWc6IHUoMSkK
KyAgdWludDMyX3QgY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcgPSAwOworICBSRVRVUk5fRU1QVFlf
T05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZjb25mb3JtYW5jZV93aW5kb3dfZmxhZywgMSkpOwor
CisgIHVpbnQzMl90IGNvbmZfd2luX2xlZnRfb2Zmc2V0ID0gMDsKKyAgdWludDMyX3QgY29uZl93
aW5fcmlnaHRfb2Zmc2V0ID0gMDsKKyAgdWludDMyX3QgY29uZl93aW5fdG9wX29mZnNldCA9IDA7
CisgIHVpbnQzMl90IGNvbmZfd2luX2JvdHRvbV9vZmZzZXQgPSAwOworICBpZiAoY29uZm9ybWFu
Y2Vfd2luZG93X2ZsYWcpIHsKKyAgICAvLyBjb25mX3dpbl9sZWZ0X29mZnNldDogdWUodikKKyAg
ICBSRVRVUk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY29u
Zl93aW5fbGVmdF9vZmZzZXQpKTsKKyAgICAvLyBjb25mX3dpbl9yaWdodF9vZmZzZXQ6IHVlKHYp
CisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xvbWIo
JmNvbmZfd2luX3JpZ2h0X29mZnNldCkpOworICAgIC8vIGNvbmZfd2luX3RvcF9vZmZzZXQ6IHVl
KHYpCisgICAgUkVUVVJOX0VNUFRZX09OX0ZBSUwoYnVmZmVyLT5SZWFkRXhwb25lbnRpYWxHb2xv
bWIoJmNvbmZfd2luX3RvcF9vZmZzZXQpKTsKKyAgICAvLyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0
OiB1ZSh2KQorICAgIFJFVFVSTl9FTVBUWV9PTl9GQUlMKAorICAgICAgICBidWZmZXItPlJlYWRF
eHBvbmVudGlhbEdvbG9tYigmY29uZl93aW5fYm90dG9tX29mZnNldCkpOworICB9CisKKyAgLy8g
RmFyIGVub3VnaCEgV2UgZG9uJ3QgdXNlIHRoZSByZXN0IG9mIHRoZSBTUFMuCisKKyAgc3BzLnZw
c19pZCA9IHNwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOworCisgIC8vIFN0YXJ0IHdpdGggdGhl
IHJlc29sdXRpb24gZGV0ZXJtaW5lZCBieSB0aGUgcGljX3dpZHRoL3BpY19oZWlnaHQgZmllbGRz
LgorICBzcHMud2lkdGggPSBwaWNfd2lkdGhfaW5fbHVtYV9zYW1wbGVzOworICBzcHMuaGVpZ2h0
ID0gcGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXM7CisKKyAgaWYgKGNvbmZvcm1hbmNlX3dpbmRv
d19mbGFnKSB7CisgICAgaW50IHN1Yl93aWR0aF9jID0gKCgxID09IGNocm9tYV9mb3JtYXRfaWRj
KSB8fCAoMiA9PSBjaHJvbWFfZm9ybWF0X2lkYykpICYmCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgPyAyCisgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTsKKyAgICBpbnQg
c3ViX2hlaWdodF9jID0KKyAgICAgICAgKDEgPT0gY2hyb21hX2Zvcm1hdF9pZGMpICYmICgwID09
IHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFnKSA/IDIgOiAxOworICAgIC8vIHRoZSBvZmZzZXQg
aW5jbHVkZXMgdGhlIHBpeGVsIHdpdGhpbiBjb25mb3JtYW5jZSB3aW5kb3cuIHNvIGRvbid0IG5l
ZWQgdG8KKyAgICAvLyArMSBhcyBwZXIgc3BlYworICAgIHNwcy53aWR0aCAtPSBzdWJfd2lkdGhf
YyAqIChjb25mX3dpbl9yaWdodF9vZmZzZXQgKyBjb25mX3dpbl9sZWZ0X29mZnNldCk7CisgICAg
c3BzLmhlaWdodCAtPSBzdWJfaGVpZ2h0X2MgKiAoY29uZl93aW5fdG9wX29mZnNldCArIGNvbmZf
d2luX2JvdHRvbV9vZmZzZXQpOworICB9CisKKyAgcmV0dXJuIE9wdGlvbmFsU3BzKHNwcyk7Cit9
CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNl
ci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3Zp
ZGVvL2gyNjUvaDI2NV9zcHNfcGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBmODZiNjk4MzI2MzFiZTcy
NTY5YjlhZTIwYmMyYzYwYjgwOTI1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3Bh
cnNlci5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBX
ZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisg
KiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkg
cmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwg
Y29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVU
SE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisjaWZuZGVm
IENPTU1PTl9WSURFT19IMjY1X0gyNjVfU1BTX1BBUlNFUl9IXworI2RlZmluZSBDT01NT05fVklE
RU9fSDI2NV9IMjY1X1NQU19QQVJTRVJfSF8KKworI2luY2x1ZGUgImFic2wvdHlwZXMvb3B0aW9u
YWwuaCIKKworbmFtZXNwYWNlIHJ0YyB7CitjbGFzcyBCaXRCdWZmZXI7Cit9CisKK25hbWVzcGFj
ZSB3ZWJydGMgeworCisvLyBBIGNsYXNzIGZvciBwYXJzaW5nIG91dCBzZXF1ZW5jZSBwYXJhbWV0
ZXIgc2V0IChTUFMpIGRhdGEgZnJvbSBhbiBIMjY1IE5BTFUuCitjbGFzcyBIMjY1U3BzUGFyc2Vy
IHsKKyBwdWJsaWM6CisgIC8vIFRoZSBwYXJzZWQgc3RhdGUgb2YgdGhlIFNQUy4gT25seSBzb21l
IHNlbGVjdCB2YWx1ZXMgYXJlIHN0b3JlZC4KKyAgLy8gQWRkIG1vcmUgYXMgdGhleSBhcmUgYWN0
dWFsbHkgbmVlZGVkLgorICBzdHJ1Y3QgU3BzU3RhdGUgeworICAgIFNwc1N0YXRlKCk7CisKKyAg
ICB1aW50MzJfdCB3aWR0aCA9IDA7CisgICAgdWludDMyX3QgaGVpZ2h0ID0gMDsKKyAgICB1aW50
MzJfdCBkZWx0YV9waWNfb3JkZXJfYWx3YXlzX3plcm9fZmxhZyA9IDA7CisgICAgdWludDMyX3Qg
c2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgPSAwOworICAgIHVpbnQzMl90IGZyYW1lX21ic19v
bmx5X2ZsYWcgPSAwOworICAgIHVpbnQzMl90IGxvZzJfbWF4X2ZyYW1lX251bV9taW51czQgPSAw
OworICAgIHVpbnQzMl90IGxvZzJfbWF4X3BpY19vcmRlcl9jbnRfbHNiX21pbnVzNCA9IDA7Cisg
ICAgdWludDMyX3QgcGljX29yZGVyX2NudF90eXBlID0gMDsKKyAgICB1aW50MzJfdCBtYXhfbnVt
X3JlZl9mcmFtZXMgPSAwOworICAgIHVpbnQzMl90IHZ1aV9wYXJhbXNfcHJlc2VudCA9IDA7Cisg
ICAgdWludDMyX3QgaWQgPSAwOworICAgIHVpbnQzMl90IHZwc19pZCA9IDA7CisgIH07CisKKyAg
Ly8gVW5wYWNrIFJCU1AgYW5kIHBhcnNlIFNQUyBzdGF0ZSBmcm9tIHRoZSBzdXBwbGllZCBidWZm
ZXIuCisgIHN0YXRpYyBhYnNsOjpvcHRpb25hbDxTcHNTdGF0ZT4gUGFyc2VTcHMoY29uc3QgdWlu
dDhfdCogZGF0YSwgc2l6ZV90IGxlbmd0aCk7CisKKyBwcm90ZWN0ZWQ6CisgIC8vIFBhcnNlIHRo
ZSBTUFMgc3RhdGUsIHVwIHRpbGwgdGhlIFZVSSBwYXJ0LCBmb3IgYSBiaXQgYnVmZmVyIHdoZXJl
IFJCU1AKKyAgLy8gZGVjb2RpbmcgaGFzIGFscmVhZHkgYmVlbiBwZXJmb3JtZWQuCisgIHN0YXRp
YyBhYnNsOjpvcHRpb25hbDxTcHNTdGF0ZT4gUGFyc2VTcHNVcFRvVnVpKHJ0Yzo6Qml0QnVmZmVy
KiBidWZmZXIpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworI2VuZGlmICAvLyBDT01N
T05fVklERU9fSDI2NV9IMjY1X1NQU19QQVJTRVJfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBz
X3BhcnNlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2Nv
bW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzkxYWU1MWRm
MGY5MDg5MDE2YjQ5ODg0YzE1ZjJjMTQxOGQ1NGU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2
NV92cHNfcGFyc2VyLmNjCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChjKSAy
MDE4IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs
aWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUg
cm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwg
cHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVO
VFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBp
biB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLwor
CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgImNvbW1v
bl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUv
aDI2NV92cHNfcGFyc2VyLmgiCisjaW5jbHVkZSAicnRjX2Jhc2UvYml0X2J1ZmZlci5oIgorI2lu
Y2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKworbmFtZXNwYWNlIHsKK3R5cGVkZWYgYWJzbDo6
b3B0aW9uYWw8d2VicnRjOjpIMjY1VnBzUGFyc2VyOjpWcHNTdGF0ZT4gT3B0aW9uYWxWcHM7CisK
KyNkZWZpbmUgUkVUVVJOX0VNUFRZX09OX0ZBSUwoeCkgXAorICBpZiAoISh4KSkgeyAgICAgICAg
ICAgICAgICAgICBcCisgICAgcmV0dXJuIE9wdGlvbmFsVnBzKCk7ICAgICAgIFwKKyAgfQorfSAg
Ly8gbmFtZXNwYWNlCisKK25hbWVzcGFjZSB3ZWJydGMgeworCitIMjY1VnBzUGFyc2VyOjpWcHNT
dGF0ZTo6VnBzU3RhdGUoKSA9IGRlZmF1bHQ7CisKKy8vIEdlbmVyYWwgbm90ZTogdGhpcyBpcyBi
YXNlZCBvZmYgdGhlIDAyLzIwMTggdmVyc2lvbiBvZiB0aGUgSC4yNjUgc3RhbmRhcmQuCisvLyBZ
b3UgY2FuIGZpbmQgaXQgb24gdGhpcyBwYWdlOgorLy8gaHR0cDovL3d3dy5pdHUuaW50L3JlYy9U
LVJFQy1ILjI2NQorCisvLyBVbnBhY2sgUkJTUCBhbmQgcGFyc2UgU1BTIHN0YXRlIGZyb20gdGhl
IHN1cHBsaWVkIGJ1ZmZlci4KK2Fic2w6Om9wdGlvbmFsPEgyNjVWcHNQYXJzZXI6OlZwc1N0YXRl
PiBIMjY1VnBzUGFyc2VyOjpQYXJzZVZwcygKKyAgICBjb25zdCB1aW50OF90KiBkYXRhLAorICAg
IHNpemVfdCBsZW5ndGgpIHsKKyAgc3RkOjp2ZWN0b3I8dWludDhfdD4gdW5wYWNrZWRfYnVmZmVy
ID0gSDI2NTo6UGFyc2VSYnNwKGRhdGEsIGxlbmd0aCk7CisgIHJ0Yzo6Qml0QnVmZmVyIGJpdF9i
dWZmZXIodW5wYWNrZWRfYnVmZmVyLmRhdGEoKSwgdW5wYWNrZWRfYnVmZmVyLnNpemUoKSk7Cisg
IHJldHVybiBQYXJzZUludGVybmFsKCZiaXRfYnVmZmVyKTsKK30KKworYWJzbDo6b3B0aW9uYWw8
SDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU+IEgyNjVWcHNQYXJzZXI6OlBhcnNlSW50ZXJuYWwoCisg
ICAgcnRjOjpCaXRCdWZmZXIqIGJ1ZmZlcikgeworICAvLyBOb3csIHdlIG5lZWQgdG8gdXNlIGEg
Yml0IGJ1ZmZlciB0byBwYXJzZSB0aHJvdWdoIHRoZSBhY3R1YWwgSEVWQyBWUFMKKyAgLy8gZm9y
bWF0LiBTZWUgU2VjdGlvbiA3LjMuMi4xICgiVmlkZW8gcGFyYW1ldGVyIHNldCBSQlNQIHN5bnRh
eCIpIG9mIHRoZQorICAvLyBILjI2NSBzdGFuZGFyZCBmb3IgYSBjb21wbGV0ZSBkZXNjcmlwdGlv
bi4KKworICBWcHNTdGF0ZSB2cHM7CisKKyAgLy8gdnBzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQ6
IHUoNCkKKyAgdWludDMyX3QgdnBzX3ZpZGVvX3BhcmFtZXRlcl9zZXRfaWQgPSAwOworICBSRVRV
Uk5fRU1QVFlfT05fRkFJTChidWZmZXItPlJlYWRCaXRzKCZ2cHNfdmlkZW9fcGFyYW1ldGVyX3Nl
dF9pZCwgNCkpOworCisgIHZwcy5pZCA9IHZwc192aWRlb19wYXJhbWV0ZXJfc2V0X2lkOworICB2
cHMuaWQgPSAwOworICByZXR1cm4gT3B0aW9uYWxWcHModnBzKTsKK30KKworfSAgLy8gbmFtZXNw
YWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NS9oMjY1X3Zw
c19wYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGEyNzc1ZjQzZGYxN2QxOGUwOWRjNDAwN2U2MjNhNjMy
MDg1YTdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV92cHNfcGFyc2VyLmgKQEAgLTAsMCAr
MSw0MyBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1
dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBj
b2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBm
b3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0
cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2Fu
IGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJv
amVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhl
IHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisKKyNpZm5kZWYgQ09NTU9OX1ZJREVPX0gy
NjVfSDI2NV9WUFNfUEFSU0VSX0hfCisjZGVmaW5lIENPTU1PTl9WSURFT19IMjY1X0gyNjVfVlBT
X1BBUlNFUl9IXworCisjaW5jbHVkZSAiYWJzbC90eXBlcy9vcHRpb25hbC5oIgorCituYW1lc3Bh
Y2UgcnRjIHsKK2NsYXNzIEJpdEJ1ZmZlcjsKK30KKworbmFtZXNwYWNlIHdlYnJ0YyB7CisKKy8v
IEEgY2xhc3MgZm9yIHBhcnNpbmcgb3V0IHNlcXVlbmNlIHBhcmFtZXRlciBzZXQgKFZQUykgZGF0
YSBmcm9tIGFuIEgyNjUgTkFMVS4KK2NsYXNzIEgyNjVWcHNQYXJzZXIgeworIHB1YmxpYzoKKyAg
Ly8gVGhlIHBhcnNlZCBzdGF0ZSBvZiB0aGUgVlBTLiBPbmx5IHNvbWUgc2VsZWN0IHZhbHVlcyBh
cmUgc3RvcmVkLgorICAvLyBBZGQgbW9yZSBhcyB0aGV5IGFyZSBhY3R1YWxseSBuZWVkZWQuCisg
IHN0cnVjdCBWcHNTdGF0ZSB7CisgICAgVnBzU3RhdGUoKTsKKworICAgIHVpbnQzMl90IGlkID0g
MDsKKyAgfTsKKworICAvLyBVbnBhY2sgUkJTUCBhbmQgcGFyc2UgVlBTIHN0YXRlIGZyb20gdGhl
IHN1cHBsaWVkIGJ1ZmZlci4KKyAgc3RhdGljIGFic2w6Om9wdGlvbmFsPFZwc1N0YXRlPiBQYXJz
ZVZwcyhjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKTsKKworIHByb3RlY3RlZDoK
KyAgLy8gUGFyc2UgdGhlIFZQUyBzdGF0ZSwgZm9yIGEgYml0IGJ1ZmZlciB3aGVyZSBSQlNQIGRl
Y29kaW5nIGhhcyBhbHJlYWR5IGJlZW4KKyAgLy8gcGVyZm9ybWVkLgorICBzdGF0aWMgYWJzbDo6
b3B0aW9uYWw8VnBzU3RhdGU+IFBhcnNlSW50ZXJuYWwocnRjOjpCaXRCdWZmZXIqIGJpdF9idWZm
ZXIpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YworI2VuZGlmICAvLyBDT01NT05fVklE
RU9fSDI2NV9IMjY1X1ZQU19QQVJTRVJfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmNjIGIv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRp
YV9jb25zdGFudHMuY2MKaW5kZXggNTE0NGE2ZWE2NTU1ZGZiYjY2YzQ2MmFlMjE3N2RmY2VjY2M5
MThiYi4uN2I3MGZmOWU0ODg0YTUwMzViOWVlMzg5NGM1NTAwM2NhYmYxYmE1NSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbWVkaWEvYmFzZS9t
ZWRpYV9jb25zdGFudHMuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuY2MKQEAgLTEwNyw2ICsxMDcsOSBA
QCBjb25zdCBjaGFyIGtWcDhDb2RlY05hbWVbXSA9ICJWUDgiOwogY29uc3QgY2hhciBrVnA5Q29k
ZWNOYW1lW10gPSAiVlA5IjsKIGNvbnN0IGNoYXIga0F2MUNvZGVjTmFtZVtdID0gIkFWMVgiOwog
Y29uc3QgY2hhciBrSDI2NENvZGVjTmFtZVtdID0gIkgyNjQiOworI2lmbmRlZiBESVNBQkxFX0gy
NjUKK2NvbnN0IGNoYXIga0gyNjVDb2RlY05hbWVbXSA9ICJIMjY1IjsKKyNlbmRpZgogCiAvLyBS
RkMgNjE4NCBSVFAgUGF5bG9hZCBGb3JtYXQgZm9yIEguMjY0IHZpZGVvCiBjb25zdCBjaGFyIGtI
MjY0Rm10cFByb2ZpbGVMZXZlbElkW10gPSAicHJvZmlsZS1sZXZlbC1pZCI7CkBAIC0xMTQsNiAr
MTE3LDEzIEBAIGNvbnN0IGNoYXIga0gyNjRGbXRwTGV2ZWxBc3ltbWV0cnlBbGxvd2VkW10gPSAi
bGV2ZWwtYXN5bW1ldHJ5LWFsbG93ZWQiOwogY29uc3QgY2hhciBrSDI2NEZtdHBQYWNrZXRpemF0
aW9uTW9kZVtdID0gInBhY2tldGl6YXRpb24tbW9kZSI7CiBjb25zdCBjaGFyIGtIMjY0Rm10cFNw
cm9wUGFyYW1ldGVyU2V0c1tdID0gInNwcm9wLXBhcmFtZXRlci1zZXRzIjsKIGNvbnN0IGNoYXIg
a0gyNjRQcm9maWxlTGV2ZWxDb25zdHJhaW5lZEJhc2VsaW5lW10gPSAiNDJlMDFmIjsKKyNpZm5k
ZWYgRElTQUJMRV9IMjY1CisvLyBSRkMgNzc5OCBSVFAgUGF5bG9hZCBGb3JtYXQgZm9yIEguMjY1
IHZpZGVvCitjb25zdCBjaGFyIGtIMjY1Rm10cFByb2ZpbGVTcGFjZVtdID0gInByb2ZpbGUtc3Bh
Y2UiOworY29uc3QgY2hhciBrSDI2NUZtdHBQcm9maWxlSWRbXSA9ICJwcm9maWxlLWlkIjsKK2Nv
bnN0IGNoYXIga0gyNjVGbXRwVGllckZsYWdbXSA9ICJ0aWVyLWZsYWciOworY29uc3QgY2hhciBr
SDI2NUZtdHBMZXZlbElkW10gPSAibGV2ZWwtaWQiOworI2VuZGlmCiAKIGNvbnN0IGludCBrRGVm
YXVsdFZpZGVvTWF4RnJhbWVyYXRlID0gNjA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2UvbWVkaWFfY29uc3RhbnRzLmgg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tZWRpYS9iYXNlL21l
ZGlhX2NvbnN0YW50cy5oCmluZGV4IGI5YjhhMzM2ZjdmMGNhZjJmZjE5NDY5ZmVhNzVjYjc5Mjk0
NzBhNTguLmExODE5M2UwNWQyNDhjMTJmNmE0NTgyYjU2ZTRiMjE4MTkxYTkzM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21lZGlhL2Jhc2Uv
bWVkaWFfY29uc3RhbnRzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbWVkaWEvYmFzZS9tZWRpYV9jb25zdGFudHMuaApAQCAtMTM2LDYgKzEzNiw5IEBA
IFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga1ZwOENvZGVjTmFtZVtdOwogUlRDX0VYUE9S
VCBleHRlcm4gY29uc3QgY2hhciBrVnA5Q29kZWNOYW1lW107CiBSVENfRVhQT1JUIGV4dGVybiBj
b25zdCBjaGFyIGtBdjFDb2RlY05hbWVbXTsKIFJUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIg
a0gyNjRDb2RlY05hbWVbXTsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CitSVENfRVhQT1JUIGV4dGVy
biBjb25zdCBjaGFyIGtIMjY1Q29kZWNOYW1lW107CisjZW5kaWYKIAogLy8gUkZDIDYxODQgUlRQ
IFBheWxvYWQgRm9ybWF0IGZvciBILjI2NCB2aWRlbwogUlRDX0VYUE9SVCBleHRlcm4gY29uc3Qg
Y2hhciBrSDI2NEZtdHBQcm9maWxlTGV2ZWxJZFtdOwpAQCAtMTQ0LDYgKzE0NywxNCBAQCBSVENf
RVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY0Rm10cFBhY2tldGl6YXRpb25Nb2RlW107CiBl
eHRlcm4gY29uc3QgY2hhciBrSDI2NEZtdHBTcHJvcFBhcmFtZXRlclNldHNbXTsKIGV4dGVybiBj
b25zdCBjaGFyIGtIMjY0UHJvZmlsZUxldmVsQ29uc3RyYWluZWRCYXNlbGluZVtdOwogCisjaWZu
ZGVmIERJU0FCTEVfSDI2NQorLy8gUkZDIDc3OTggUlRQIFBheWxvYWQgRm9ybWF0IGZvciBILjI2
NSB2aWRlbworUlRDX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciBrSDI2NUZtdHBQcm9maWxlU3Bh
Y2VbXTsKK1JUQ19FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIga0gyNjVGbXRwUHJvZmlsZUlkW107
CitSVENfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY1Rm10cFRpZXJGbGFnW107CitSVENf
RVhQT1JUIGV4dGVybiBjb25zdCBjaGFyIGtIMjY1Rm10cExldmVsSWRbXTsKKyNlbmRpZgorCiBl
eHRlcm4gY29uc3QgaW50IGtEZWZhdWx0VmlkZW9NYXhGcmFtZXJhdGU7CiAKIGV4dGVybiBjb25z
dCBzaXplX3Qga0NvbmZlcmVuY2VNYXhOdW1TcGF0aWFsTGF5ZXJzOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9C
VUlMRC5nbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvcnRwX3J0Y3AvQlVJTEQuZ24KaW5kZXggMjgyNmQwZjA5YjE0NGU0NWEwYjdkNDcwZDBiYTlk
NTdjNDMzNWNlMS4uNmY5MDJmZjdiMGM1ZjJiNWEwYWI4YmFiYjY0OTZlNWMzOWU4YzAzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy9ydHBfcnRjcC9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL0JVSUxELmduCkBAIC0yMzYsNiArMjM2LDE3IEBA
IHJ0Y19saWJyYXJ5KCJydHBfcnRjcCIpIHsKICAgICBkZWZpbmVzID0gWyAiQldFX1RFU1RfTE9H
R0lOR19DT01QSUxFX1RJTUVfRU5BQkxFPTAiIF0KICAgfQogCisgIGlmIChydGNfdXNlX2gyNjUp
IHsKKyAgICBzb3VyY2VzICs9IFsKKyAgICAgICJzb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmNjIiwK
KyAgICAgICJzb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmgiLAorICAgIF0KKyAgfQorCisgIGlmICgh
cnRjX3VzZV9oMjY1KSB7CisgICAgZGVmaW5lcyArPSBbIkRJU0FCTEVfSDI2NSJdCisgIH0KKwog
ICBkZXBzID0gWwogICAgICI6cnRwX3J0Y3BfZm9ybWF0IiwKICAgICAiOnJ0cF92aWRlb19oZWFk
ZXIiLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0
cF9ydGNwL3NvdXJjZS9jcmVhdGVfdmlkZW9fcnRwX2RlcGFja2V0aXplci5jYwppbmRleCA1OWUx
Mzk5Yzk5ZjIyZTllNjhmNWM2Njc3MWRlZWU3NTE0YzcwYzVkLi44YmJiM2E0ZDk3ODAyYThkMDBk
NjQ3ODhiMzAxMDEzNmVhOWYyYjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9jcmVhdGVfdmlkZW9f
cnRwX2RlcGFja2V0aXplci5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9jcmVhdGVfdmlkZW9fcnRwX2RlcGFj
a2V0aXplci5jYwpAQCAtMTMsNiArMTMsOSBAQAogI2luY2x1ZGUgPG1lbW9yeT4KIAogI2luY2x1
ZGUgImFwaS92aWRlby92aWRlb19jb2RlY190eXBlLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQor
I2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfaDI2NS5oIgorI2Vu
ZGlmCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvdmlkZW9fcnRwX2RlcGFja2V0
aXplci5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3ZpZGVvX3J0cF9kZXBh
Y2tldGl6ZXJfYXYxLmgiCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvdmlkZW9f
cnRwX2RlcGFja2V0aXplcl9nZW5lcmljLmgiCkBAIC0yNyw2ICszMCwxMCBAQCBzdGQ6OnVuaXF1
ZV9wdHI8VmlkZW9SdHBEZXBhY2tldGl6ZXI+IENyZWF0ZVZpZGVvUnRwRGVwYWNrZXRpemVyKAog
ICBzd2l0Y2ggKGNvZGVjKSB7CiAgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjQ6CiAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxWaWRlb1J0cERlcGFja2V0aXplckgyNjQ+KCk7CisjaWZuZGVm
IERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8VmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1PigpOworI2VuZGlmCiAgICAg
Y2FzZSBrVmlkZW9Db2RlY1ZQODoKICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVv
UnRwRGVwYWNrZXRpemVyVnA4PigpOwogICAgIGNhc2Uga1ZpZGVvQ29kZWNWUDk6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0
cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJz
ZXIuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2YzNDYzMGFhODdiYWIwOTBhMTRkMjdiNDgzMzYzNzkxZjQ4MTFm
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL2gyNjVfc3BzX3BhcnNlci5jYwpAQCAtMCww
ICsxLDE5MSBAQAorLyoKKyAqIEludGVsIExpY2Vuc2UKKyAqIFNlZSBodHRwczovLzAxLm9yZy9v
cGVuLXdlYnJ0Yy10b29sa2l0CisgKiBUaGlzIGlzIHJlbGVhc2VkIHVuZGVyIEFwYWNoZSBMaWNl
bnNlIDIuMCBhbmQgaXQgaXMgZnJlZSBmb3IgYm90aCBhY2FkZW1pYyBhbmQgY29tbWVyY2lhbCB1
c2UuCisgKi8KKworI2luY2x1ZGUgIndlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1
X3Nwc19wYXJzZXIuaCIKKworI2luY2x1ZGUgInJ0Y19iYXNlL2JpdF9idWZmZXIuaCIKKyNpbmNs
dWRlICJydGNfYmFzZS9ieXRlX2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcu
aCIKKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2RlZmluZSBSRVRVUk5fRkFMU0VfT05fRkFJTCh4
KSBcCisgIGlmICghKHgpKSB7ICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gZmFsc2U7
ICAgICAgICAgICAgICAgXAorICB9CisKK25hbWVzcGFjZSB3ZWJydGMgeworCitIMjY1U3BzUGFy
c2VyOjpIMjY1U3BzUGFyc2VyKGNvbnN0IHVpbnQ4X3QqIHNwcywgc2l6ZV90IGJ5dGVfbGVuZ3Ro
KQorICAgIDogc3BzXyhzcHMpLCBieXRlX2xlbmd0aF8oYnl0ZV9sZW5ndGgpLCB3aWR0aF8oKSwg
aGVpZ2h0XygpIHsKK30KKworYm9vbCBIMjY1U3BzUGFyc2VyOjpQYXJzZSgpIHsKKyAgLy8gR2Vu
ZXJhbCBub3RlOiB0aGlzIGlzIGJhc2VkIG9mZiB0aGUgMDQvMjAxNSB2ZXJzaW9uIG9mIHRoZSBI
LjI2NSBzdGFuZGFyZC4KKyAgLy8gWW91IGNhbiBmaW5kIGl0IG9uIHRoaXMgcGFnZToKKyAgLy8g
aHR0cDovL3d3dy5pdHUuaW50L3JlYy9ULVJFQy1ILjI2NQorCisgIGNvbnN0IGNoYXIqIHNwc19i
eXRlcyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHNwc18pOworICAvLyBGaXJzdCwg
cGFyc2Ugb3V0IHJic3AsIHdoaWNoIGlzIGJhc2ljYWxseSB0aGUgc291cmNlIGJ1ZmZlciBtaW51
cyBlbXVsYXRpb24KKyAgLy8gYnl0ZXMgKHRoZSBsYXN0IGJ5dGUgb2YgYSAweDAwIDB4MDAgMHgw
MyBzZXF1ZW5jZSkuIFJCU1AgaXMgZGVmaW5lZCBpbgorICAvLyBzZWN0aW9uIDcuMy4xLjEgb2Yg
dGhlIEguMjY1IHN0YW5kYXJkLCBzaW1pbGFyIHRvIEgyNjQuCisgIHJ0Yzo6Qnl0ZUJ1ZmZlcldy
aXRlciByYnNwX2J1ZmZlcjsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBieXRlX2xlbmd0aF87
KSB7CisgICAgLy8gQmUgY2FyZWZ1bCBhYm91dCBvdmVyL3VuZGVyZmxvdyBoZXJlLiBieXRlX2xl
bmd0aF8gLSAzIGNhbiB1bmRlcmZsb3csIGFuZAorICAgIC8vIGkgKyAzIGNhbiBvdmVyZmxvdywg
YnV0IGJ5dGVfbGVuZ3RoXyAtIGkgY2FuJ3QsIGJlY2F1c2UgaSA8IGJ5dGVfbGVuZ3RoXworICAg
IC8vIGFib3ZlLCBhbmQgdGhhdCBleHByZXNzaW9uIHdpbGwgcHJvZHVjZSB0aGUgbnVtYmVyIG9m
IGJ5dGVzIGxlZnQgaW4KKyAgICAvLyB0aGUgc3RyZWFtIGluY2x1ZGluZyB0aGUgYnl0ZSBhdCBp
LgorICAgIGlmIChieXRlX2xlbmd0aF8gLSBpID49IDMgJiYgc3BzX1tpXSA9PSAwICYmIHNwc19b
aSArIDFdID09IDAgJiYKKyAgICAgICAgc3BzX1tpICsgMl0gPT0gMykgeworICAgICAgLy8gVHdv
IHJic3AgYnl0ZXMgKyB0aGUgZW11bGF0aW9uIGJ5dGUuCisgICAgICByYnNwX2J1ZmZlci5Xcml0
ZUJ5dGVzKHNwc19ieXRlcyArIGksIDIpOworICAgICAgaSArPSAzOworICAgIH0gZWxzZSB7Cisg
ICAgICAvLyBTaW5nbGUgcmJzcCBieXRlLgorICAgICAgcmJzcF9idWZmZXIuV3JpdGVCeXRlcyhz
cHNfYnl0ZXMgKyBpLCAxKTsKKyAgICAgIGkrKzsKKyAgICB9CisgIH0KKworICAvLyBOb3csIHdl
IG5lZWQgdG8gdXNlIGEgYml0IGJ1ZmZlciB0byBwYXJzZSB0aHJvdWdoIHRoZSBhY3R1YWwgSEVW
QyBTUFMKKyAgLy8gZm9ybWF0LiBTZWUgU2VjdGlvbiA3LjMuMi4xLjEgKCJTZXF1ZW5jZSBwYXJh
bWV0ZXIgc2V0IGRhdGEgc3ludGF4Iikgb2YgdGhlCisgIC8vIEguMjY1IHN0YW5kYXJkIGZvciBh
IGNvbXBsZXRlIGRlc2NyaXB0aW9uLgorICAvLyBTaW5jZSB3ZSBvbmx5IGNhcmUgYWJvdXQgcmVz
b2x1dGlvbiwgd2UgaWdub3JlIHRoZSBtYWpvcml0eSBvZiBmaWVsZHMsIGJ1dAorICAvLyB3ZSBz
dGlsbCBoYXZlIHRvIGFjdGl2ZWx5IHBhcnNlIHRocm91Z2ggYSBsb3Qgb2YgdGhlIGRhdGEsIHNp
bmNlIG1hbnkgb2YKKyAgLy8gdGhlIGZpZWxkcyBoYXZlIHZhcmlhYmxlIHNpemUuCisgIC8vIFVu
bGlrZSBIMjY0LCBmb3IgSDI2NSwgdGhlIHBpY3R1cmUgc2l6ZSBpcyBpbmRpY2F0ZWQgYnkgcGlj
X3dpZHRoX2luX2x1bWFfc2FtcGxlcworICAvLyBhbmQgcGljX2hlaWdodF9pbl9sdW1hX3NhbXBs
ZXMsICBpZiBjb25mb3JtYW5jZV93aW5kb3dfZmxhZyAhPTE7CisgIC8vIFdoZW4gY29uZm9ybWFu
Y2Vfd2luZG93X2ZsYWcgaXMgMSwgIHRoZSB3aWR0aCBpcyBhZGp1c3RlZCB3aXRoIGNvbl93aW5f
eHhfb2Zmc2V0CisgIC8vCisgIHJ0Yzo6Qml0QnVmZmVyIHBhcnNlcihyZWludGVycHJldF9jYXN0
PGNvbnN0IHVpbnQ4X3QqPihyYnNwX2J1ZmZlci5EYXRhKCkpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgcmJzcF9idWZmZXIuTGVuZ3RoKCkpOworCisgIC8vIFRoZSBnb2xvbWIgdmFsdWVzIHdl
IGhhdmUgdG8gcmVhZCwgbm90IGp1c3QgY29uc3VtZS4KKyAgdWludDMyX3QgZ29sb21iX2lnbm9y
ZWQ7CisKKyAgLy8gc2VwYXJhdGVfY29sb3VyX3BsYW5lX2ZsYWcgaXMgb3B0aW9uYWwgKGFzc3Vt
ZWQgMCksIGJ1dCBoYXMgaW1wbGljYXRpb25zCisgIC8vIGFib3V0IHRoZSBDaHJvbWFBcnJheVR5
cGUsIHdoaWNoIG1vZGlmaWVzIGhvdyB3ZSB0cmVhdCBjcm9wIGNvb3JkaW5hdGVzLgorICB1aW50
MzJfdCBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxhZyA9IDA7CisgIC8vIGNocm9tYV9mb3JtYXRf
aWRjIHdpbGwgYmUgQ2hyb21hQXJyYXlUeXBlIGlmIHNlcGFyYXRlX2NvbG91cl9wbGFuZV9mbGFn
IGlzCisgIC8vIDAuIEl0IGRlZmF1bHRzIHRvIDEsIHdoZW4gbm90IHNwZWNpZmllZC4KKyAgdWlu
dDMyX3QgY2hyb21hX2Zvcm1hdF9pZGMgPSAxOworCisKKyAgLy8gc3BzX3ZpZGVvX3BhcmFtZXRl
cl9zZXRfaWQ6IHUoNCkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRz
KDQpKTsKKyAgLy8gc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTogdSgzKQorICB1aW50MzJfdCBz
cHNfbWF4X3N1Yl9sYXllcnNfbWludXMxID0gMDsKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFy
c2VyLlJlYWRCaXRzKCZzcHNfbWF4X3N1Yl9sYXllcnNfbWludXMxLCAzKSk7CisgIC8vIHNwc190
ZW1wb3JhbF9pZF9uZXN0aW5nX2ZsYWc6IHUoMSkKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFy
c2VyLkNvbnN1bWVCaXRzKDEpKTsKKyAgLy8gcHJvZmlsZV90aWVyX2xldmVsKDEsIHNwc19tYXhf
c3ViX2xheWVyc19taW51czEpLiBXZSBhcmUgYWN1dGFsbHkgbm90CisgIC8vIHVzaW5nIHRoZW0s
IHNvIHJlYWQvc2tpcCBvdmVyIGl0LgorICAvLyBnZW5lcmFsX3Byb2ZpbGVfc3BhY2UrZ2VuZXJh
bF90aWVyX2ZsYWcrZ2VuZXJhbF9wcmZpbGVfaWRjOiB1KDgpCisgIFJFVFVSTl9GQUxTRV9PTl9G
QUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoMSkpOworICAvLyBnZW5lcmFsX3Byb2ZpbGVfY29tcGF0
YWJpbGl0aXlfZmxhZ1szMl0KKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVC
eXRlcyg0KSk7CisgIC8vIGdlbmVyYWxfcHJvZ3Jlc3NpdmVfc291cmNlX2ZsYWcgKyBpbnRlcmxh
Y2VkX3NvdXJjZV9mbGFnKyBub24tcGFja2VkX2NvbnN0cmFpbnQKKyAgLy8gZmxhZyArIGZyYW1l
X29ubHlfY29uc3RyYWludF9mbGFnOiB1KDQpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNl
ci5Db25zdW1lQml0cyg0KSk7CisgIC8vIGdlbmVyYWxfcHJvZmlsZV9pZGMgZGVjaWRlZCBmbGFn
cyBvciByZXNlcnZlZC4gIHUoNDMpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25z
dW1lQml0cyg0MykpOworICAvLyBnZW5lcmFsX2luYmxkX2ZsYWcgb3IgcmVzZXJ2ZWQgMDogdSgx
KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29uc3VtZUJpdHMoMSkpOworICAvLyBn
ZW5lcmFsX2xldmVsX2lkYzogdSg4KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuQ29u
c3VtZUJ5dGVzKDEpKTsKKyAgLy8gaWYgbWF4X3N1Yl9sYXllcnNfbWludXMxID49MSwgcmVhZCB0
aGUgc3VibGF5ZXIgcHJvZmlsZSBpbmZvcm1hdGlvbgorICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4g
c3ViX2xheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnczsKKyAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+
IHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50X2ZsYWdzOworICB1aW50MzJfdCBzdWJfbGF5ZXJfcHJv
ZmlsZV9wcmVzZW50ID0gMDsKKyAgdWludDMyX3Qgc3ViX2xheWVyX2xldmVsX3ByZXNlbnQgPSAw
OworICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTsg
aSsrKSB7CisgICAgICAvL3N1YmxheWVyX3Byb2ZpbGVfcHJlc2VudF9mbGFnIGFuZCBzdWJsYXll
cl9sZXZlbF9wcmVzbmV0X2ZsYWc6ICB1KDIpCisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChw
YXJzZXIuUmVhZEJpdHMoJnN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQsIDEpKTsKKyAgICAgIFJF
VFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkQml0cygmc3ViX2xheWVyX2xldmVsX3ByZXNl
bnQsIDEpKTsKKyAgICAgIHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnRfZmxhZ3MucHVzaF9iYWNr
KHN1Yl9sYXllcl9wcm9maWxlX3ByZXNlbnQpOworICAgICAgc3ViX2xheWVyX2xldmVsX3ByZXNl
bnRfZmxhZ3MucHVzaF9iYWNrKHN1Yl9sYXllcl9sZXZlbF9wcmVzZW50KTsKKyAgfQorICBpZiAo
c3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMSA+IDApIHsKKyAgICAgIGZvciAodWludDMyX3QgaiA9
IHNwc19tYXhfc3ViX2xheWVyc19taW51czE7IGogPCA4OyBqKyspIHsKKyAgICAgICAgLy8gcmVz
ZXJ2ZWQgMiBiaXRzOiB1KDIpCisgICAgICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2Vy
LkNvbnN1bWVCaXRzKDIpKTsKKyAgICAgIH0KKyAgfQorICBmb3IgKHVpbnQzMl90IGsgPSAwOyBr
IDwgc3BzX21heF9zdWJfbGF5ZXJzX21pbnVzMTsgaysrKSB7CisgICAgICBpZihzdWJfbGF5ZXJf
cHJvZmlsZV9wcmVzZW50X2ZsYWdzW2tdKSB7Ly8KKyAgICAgICAgLy8gc3ViX2xheWVyIHByb2Zp
bGVfc3BhY2UvdGllcl9mbGFnL3Byb2ZpbGVfaWRjLiBpZ25vcmVkLiB1KDgpCisgICAgICAgIFJF
VFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoMSkpOworICAgICAgICAvLyBw
cm9maWxlX2NvbXBhdGFiaWxpdHlfZmxhZzogIHUoMzIpCisgICAgICAgIFJFVFVSTl9GQUxTRV9P
Tl9GQUlMKHBhcnNlci5Db25zdW1lQnl0ZXMoNCkpOworICAgICAgICAvLyBzdWJfbGF5ZXIgcHJv
Z3Jlc3NpdmVfc291cmNlX2ZsYWcvaW50ZXJsYWNlZF9zb3VyY2VfZmxhZy8KKyAgICAgICAgLy8g
bm9uX3BhY2tlZF9jb25zdHJhaW50X2ZsYWcvZnJhbWVfb25seV9jb25zdHJhaW50X2ZsYWc6IHUo
NCkKKyAgICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDQpKTsK
KyAgICAgICAgLy8gZm9sbG93aW5nIDQzLWJpdHMgYXJlIHByb2ZpbGVfaWRjIHNwZWNpZmljLiBX
ZSBzaW1wbHkgcmVhZC9za2lwIGl0LiB1KDQzKQorICAgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJ
TChwYXJzZXIuQ29uc3VtZUJpdHMoNDMpKTsKKyAgICAgICAgLy8gMS1iaXQgcHJvZmlsZV9pZGMg
c3BlY2lmaWMgaW5ibGQgZmxhZy4gIFdlIHNpbXBseSByZWFkL3NraXAgaXQuIHUoMSkKKyAgICAg
ICAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLkNvbnN1bWVCaXRzKDEpKTsKKyAgICAgIH0K
KyAgICAgIGlmIChzdWJfbGF5ZXJfbGV2ZWxfcHJlc2VudF9mbGFnc1trXSkgeworICAgICAgICAv
LyBzdWJfbGF5ZXJfbGV2ZWxfaWRjOiB1KDgpCisgICAgICAgICAgUkVUVVJOX0ZBTFNFX09OX0ZB
SUwocGFyc2VyLkNvbnN1bWVCeXRlcygxKSk7CisgICAgICB9CisgIH0KKyAgLy9zcHNfc2VxX3Bh
cmFtZXRlcl9zZXRfaWQ6IHVlKHYpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFk
RXhwb25lbnRpYWxHb2xvbWIoJmdvbG9tYl9pZ25vcmVkKSk7CisgIC8vIGNocm9tZV9mb3JtYXRf
aWRjOiB1ZSh2KQorICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFs
R29sb21iKCZjaHJvbWFfZm9ybWF0X2lkYykpOworICBpZiAoY2hyb21hX2Zvcm1hdF9pZGMgPT0g
MykgeworICAgIC8vIHNlcGVyYXRlX2NvbG91cl9wbGFuZV9mbGFnOiB1KDEpCisgICAgUkVUVVJO
X0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJlYWRCaXRzKCZzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxh
ZywgMSkpOworICB9CisgIHVpbnQzMl90IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMgPSAwOwor
ICB1aW50MzJfdCBwaWNfaGVpZ2h0X2luX2x1bWFfc2FtcGxlcyA9IDA7CisgIC8vIHBpY193aWR0
aF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5S
ZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXMpKTsKKyAgLy8g
cGljX2hlaWdodF9pbl9sdW1hX3NhbXBsZXM6IHVlKHYpCisgIFJFVFVSTl9GQUxTRV9PTl9GQUlM
KHBhcnNlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJnBpY19oZWlnaHRfaW5fbHVtYV9zYW1wbGVz
KSk7CisgIC8vIGNvbmZvcm1hbmNlX3dpbmRvd19mbGFnOiB1KDEpCisgIHVpbnQzMl90IGNvbmZv
cm1hbmNlX3dpbmRvd19mbGFnID0gMDsKKyAgUkVUVVJOX0ZBTFNFX09OX0ZBSUwocGFyc2VyLlJl
YWRCaXRzKCZjb25mb3JtYW5jZV93aW5kb3dfZmxhZywgMSkpOworCisgIHVpbnQzMl90IGNvbmZf
d2luX2xlZnRfb2Zmc2V0ID0gMDsKKyAgdWludDMyX3QgY29uZl93aW5fcmlnaHRfb2Zmc2V0ID0g
MDsKKyAgdWludDMyX3QgY29uZl93aW5fdG9wX29mZnNldCA9IDA7CisgIHVpbnQzMl90IGNvbmZf
d2luX2JvdHRvbV9vZmZzZXQgPSAwOworICBpZiAoY29uZm9ybWFuY2Vfd2luZG93X2ZsYWcpIHsK
KyAgICAgIC8vIGNvbmZfd2luX2xlZnRfb2Zmc2V0OiB1ZSh2KQorICAgICAgUkVUVVJOX0ZBTFNF
X09OX0ZBSUwocGFyc2VyLlJlYWRFeHBvbmVudGlhbEdvbG9tYigmY29uZl93aW5fbGVmdF9vZmZz
ZXQpKTsKKyAgICAgIC8vIGNvbmZfd2luX3JpZ2h0X29mZnNldDogdWUodikKKyAgICAgIFJFVFVS
Tl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZfd2luX3Jp
Z2h0X29mZnNldCkpOworICAgICAgLy8gY29uZl93aW5fdG9wX29mZnNldDogdWUodikKKyAgICAg
IFJFVFVSTl9GQUxTRV9PTl9GQUlMKHBhcnNlci5SZWFkRXhwb25lbnRpYWxHb2xvbWIoJmNvbmZf
d2luX3RvcF9vZmZzZXQpKTsKKyAgICAgIC8vIGNvbmZfd2luX2JvdHRvbV9vZmZzZXQ6IHVlKHYp
CisgICAgICBSRVRVUk5fRkFMU0VfT05fRkFJTChwYXJzZXIuUmVhZEV4cG9uZW50aWFsR29sb21i
KCZjb25mX3dpbl9ib3R0b21fb2Zmc2V0KSk7CisgIH0KKworICAvL0ZvciBlbm91Z2ggdG8gZ2V0
IHRoZSByZXNvbHV0aW9uIGluZm9ybWF0aW9uLiBjYWxjYWx1YXRlIGFjY29yZGluZyB0byBIRVZD
IHNwZWMgNy40LjMuMgorICBpbnQgd2lkdGggPSAwOworICBpbnQgaGVpZ2h0ID0gMDsKKworICB3
aWR0aCA9IHBpY193aWR0aF9pbl9sdW1hX3NhbXBsZXM7CisgIGhlaWdodCA9IHBpY19oZWlnaHRf
aW5fbHVtYV9zYW1wbGVzOworCisgIGlmIChjb25mb3JtYW5jZV93aW5kb3dfZmxhZykgeworICAg
IGludCBzdWJfd2lkdGhfYyA9ICgoMSA9PSBjaHJvbWFfZm9ybWF0X2lkYykgfHwgKDIgPT0gY2hy
b21hX2Zvcm1hdF9pZGMpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKDAgPT0gc2VwYXJh
dGVfY29sb3VyX3BsYW5lX2ZsYWcpID8gMiA6IDE7CisgICAgaW50IHN1Yl9oZWlnaHRfYyA9ICgx
ID09IGNocm9tYV9mb3JtYXRfaWRjKSAmJiAoMCA9PSBzZXBhcmF0ZV9jb2xvdXJfcGxhbmVfZmxh
ZykgPyAyIDogMTsKKyAgICAvL3RoZSBvZmZzZXQgaW5jbHVkZXMgdGhlIHBpeGVsIHdpdGhpbiBj
b25mb3JtYW5jZSB3aW5kb3cuIHNvIGRvbid0IG5lZWQgdG8gKzEgYXMgcGVyIHNwZWMKKyAgICB3
aWR0aCAtPSBzdWJfd2lkdGhfYyooY29uZl93aW5fcmlnaHRfb2Zmc2V0ICsgY29uZl93aW5fbGVm
dF9vZmZzZXQpOworICAgIGhlaWdodCAtPSBzdWJfaGVpZ2h0X2MqKGNvbmZfd2luX3RvcF9vZmZz
ZXQgKyBjb25mX3dpbl9ib3R0b21fb2Zmc2V0KTsKKyAgfQorCisgIHdpZHRoXyA9IHdpZHRoOwor
ICBoZWlnaHRfID0gaGVpZ2h0OworICByZXR1cm4gdHJ1ZTsKKworfQorCit9ICAvLyBuYW1lc3Bh
Y2Ugd2VicnRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19wYXJzZXIuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL2gyNjVfc3BzX3BhcnNlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NDJiOWJkNTM3NjVhMWEwY2Q1Y2E1
MGY4Y2ZkM2ZiMDIzMTQ1ODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9oMjY1X3Nwc19w
YXJzZXIuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogIEludGVsIExpY2Vuc2UKKyAqIFNlZSBo
dHRwczovLzAxLm9yZy9vcGVuLXdlYnJ0Yy10b29sa2l0CisgKiBUaGlzIGlzIHJlbGVhc2VkIHVu
ZGVyIEFwYWNoZSBMaWNlbnNlIDIuMCBhbmQgaXQgaXMgZnJlZSBmb3IgYm90aCBhY2FkZW1pYyBh
bmQgY29tbWVyY2lhbCB1c2UuCisgKi8KKworI2lmbmRlZiBXRUJSVENfTU9EVUxFU19SVFBfUlRD
UF9TT1VSQ0VfSDI2NV9TUFNfUEFSU0VSX0hfCisjZGVmaW5lIFdFQlJUQ19NT0RVTEVTX1JUUF9S
VENQX1NPVVJDRV9IMjY1X1NQU19QQVJTRVJfSF8KKworI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2lu
Y2x1ZGUgPHN0ZGludC5oPgorCituYW1lc3BhY2Ugd2VicnRjIHsKKworLy8gQSBjbGFzcyBmb3Ig
cGFyc2luZyBvdXQgc2VxdWVuY2UgcGFyYW1ldGVyIHNldCAoU1BTKSBkYXRhIGZyb20gYW4gSDI2
NSBOQUxVLgorLy8gQ3VycmVudGx5LCBvbmx5IHJlc29sdXRpb24gaXMgcmVhZCB3aXRob3V0IGJl
aW5nIGlnbm9yZWQuCitjbGFzcyBIMjY1U3BzUGFyc2VyIHsKKyBwdWJsaWM6CisgIEgyNjVTcHNQ
YXJzZXIoY29uc3QgdWludDhfdCogc3BzLCBzaXplX3QgYnl0ZV9sZW5ndGgpOworICAvLyBQYXJz
ZXMgdGhlIFNQUyB0byBjb21wbGV0aW9uLiBSZXR1cm5zIHRydWUgaWYgdGhlIFNQUyB3YXMgcGFy
c2VkIGNvcnJlY3RseS4KKyAgYm9vbCBQYXJzZSgpOworICB1aW50MTZfdCB3aWR0aCgpIHsgcmV0
dXJuIHdpZHRoXzsgfQorICB1aW50MTZfdCBoZWlnaHQoKSB7IHJldHVybiBoZWlnaHRfOyB9CisK
KyBwcml2YXRlOgorICBjb25zdCB1aW50OF90KiBjb25zdCBzcHNfOworICBjb25zdCBzaXplX3Qg
Ynl0ZV9sZW5ndGhfOworCisgIHVpbnQxNl90IHdpZHRoXzsKKyAgdWludDE2X3QgaGVpZ2h0XzsK
K307CisKK30gIC8vIG5hbWVzcGFjZSB3ZWJydGMKKyNlbmRpZiAgLy8gV0VCUlRDX01PRFVMRVNf
UlRQX1JUQ1BfU09VUkNFX0gyNjVfU1BTX1BBUlNFUl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2Uv
cnRwX2Zvcm1hdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXQuY2MKaW5kZXggMTJiNWU4ZGRjNWFk
NjdiY2QxMGE0M2ExYmMzMGIxMTBhNWFjYjFlNC4uNjI4MTNkMmM2ZjI3Y2JlODAzMDJiY2IxYTQy
ZWFiNWJmNGI2NGEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdC5jYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfZm9ybWF0LmNjCkBAIC0xNCwxMSArMTQsMTcgQEAKIAogI2luY2x1ZGUgImFi
c2wvdHlwZXMvdmFyaWFudC5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0
cF9mb3JtYXRfaDI2NC5oIgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVz
L3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9ybWF0X2gyNjUuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1v
ZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfdmlkZW9fZ2VuZXJpYy5oIgogI2luY2x1
ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfdnA4LmgiCiAjaW5jbHVkZSAi
bW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF92cDkuaCIKICNpbmNsdWRlICJtb2R1
bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfcGFja2V0aXplcl9hdjEuaCIKICNpbmNsdWRlICJtb2R1
bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NC9pbmNsdWRlL2gyNjRfZ2xvYmFscy5oIgorI2lm
bmRlZiBESVNBQkxFX0gyNjUKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3Mv
aDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy92
aWRlb19jb2RpbmcvY29kZWNzL3ZwOC9pbmNsdWRlL3ZwOF9nbG9iYWxzLmgiCiAjaW5jbHVkZSAi
bW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3ZwOS9pbmNsdWRlL3ZwOV9nbG9iYWxzLmgiCiAj
aW5jbHVkZSAicnRjX2Jhc2UvY2hlY2tzLmgiCkBAIC00NSw2ICs1MSwxNSBAQCBzdGQ6OnVuaXF1
ZV9wdHI8UnRwUGFja2V0aXplcj4gUnRwUGFja2V0aXplcjo6Q3JlYXRlKAogICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8UnRwUGFja2V0aXplckgyNjQ+KAogICAgICAgICAgIHBheWxvYWQs
IGxpbWl0cywgaDI2NC5wYWNrZXRpemF0aW9uX21vZGUsICpmcmFnbWVudGF0aW9uKTsKICAgICB9
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OiB7CisgICAg
ICBSVENfQ0hFQ0soZnJhZ21lbnRhdGlvbik7CisgICAgICBjb25zdCBhdXRvJiBoMjY1ID0KKyAg
ICAgICAgICBhYnNsOjpnZXQ8UlRQVmlkZW9IZWFkZXJIMjY1PihydHBfdmlkZW9faGVhZGVyLnZp
ZGVvX3R5cGVfaGVhZGVyKTsKKyAgICAgIHJldHVybiBhYnNsOjptYWtlX3VuaXF1ZTxSdHBQYWNr
ZXRpemVySDI2NT4oCisgICAgICAgICAgcGF5bG9hZCwgbGltaXRzLCBoMjY1LnBhY2tldGl6YXRp
b25fbW9kZSwgKmZyYWdtZW50YXRpb24pOworICAgIH0KKyNlbmRpZgogICAgIGNhc2Uga1ZpZGVv
Q29kZWNWUDg6IHsKICAgICAgIGNvbnN0IGF1dG8mIHZwOCA9CiAgICAgICAgICAgYWJzbDo6Z2V0
PFJUUFZpZGVvSGVhZGVyVlA4PihydHBfdmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21v
ZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9mb3JtYXRfaDI2NS5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF9m
b3JtYXRfaDI2NS5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWIwNGEwMDdjNWVmMzU5ZDFhODY0ZmQ1NDFlODcw
YjM4NTE3NmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmNj
CkBAIC0wLDAgKzEsNjUwIEBACisvKgorICogIEludGVsIExpY2Vuc2UKKyAqIFNlZSBodHRwczov
LzAxLm9yZy9vcGVuLXdlYnJ0Yy10b29sa2l0CisgKiBUaGlzIGlzIHJlbGVhc2VkIHVuZGVyIEFw
YWNoZSBMaWNlbnNlIDIuMCBhbmQgaXQgaXMgZnJlZSBmb3IgYm90aCBhY2FkZW1pYyBhbmQgY29t
bWVyY2lhbCB1c2UuCisgKi8KKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAiY29t
bW9uX3ZpZGVvL2gyNjQvaDI2NF9jb21tb24uaCIKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2
NS9oMjY1X2NvbW1vbi5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfcHBzX3Bh
cnNlci5oIgorI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfc3BzX3BhcnNlci5oIgor
I2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfdnBzX3BhcnNlci5oIgorI2luY2x1ZGUg
Im1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAibW9kdWxl
cy9ydHBfcnRjcC9zb3VyY2UvYnl0ZV9pby5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF9mb3JtYXRfaDI2NS5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291
cmNlL3J0cF9wYWNrZXRfdG9fc2VuZC5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIK
K3VzaW5nIG5hbWVzcGFjZSBydGM7CisKK25hbWVzcGFjZSB3ZWJydGMgeworbmFtZXNwYWNlIHsK
KworZW51bSBOYWx1VHlwZSB7CisgIGtUcmFpbE4gPSAwLAorICBrVHJhaWxSID0gMSwKKyAga1Rz
YU4gPSAyLAorICBrVHNhUiA9IDMsCisgIGtTdHNhTiA9IDQsCisgIGtTdHNhUiA9IDUsCisgIGtS
YWRsTiA9IDYsCisgIGtSYWRsUiA9IDcsCisgIGtCbGFXTHAgPSAxNiwKKyAga0JsYVdSYWRsID0g
MTcsCisgIGtCbGFOTHAgPSAxOCwKKyAga0lkcldSYWRsID0gMTksCisgIGtJZHJOTHAgPSAyMCwK
KyAga0NyYSA9IDIxLAorICBrVnBzID0gMzIsCisgIGtIZXZjU3BzID0gMzMsCisgIGtIZXZjUHBz
ID0gMzQsCisgIGtIZXZjQXVkID0gMzUsCisgIGtQcmVmaXhTZWkgPSAzOSwKKyAga1N1ZmZpeFNl
aSA9IDQwLAorICBrSGV2Y0FwID0gNDgsCisgIGtIZXZjRnUgPSA0OQorfTsKKworLyoKKyAgIDAg
ICAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgICAg
IDMKKyAgIDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEgMiAzIDQg
NSA2IDcgOCA5IDAgMQorICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKworICB8ICAgIFBheWxvYWRIZHIgKFR5cGU9NDkpICAg
ICAgIHwgICBGVSBoZWFkZXIgICB8IERPTkwgKGNvbmQpICAgfAorICArLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstfAorKi8KKy8v
IFVubGlrZSBILjI2NCwgSEVWQyBOQUwgaGVhZGVyIGlzIDItYnl0ZXMuCitzdGF0aWMgY29uc3Qg
c2l6ZV90IGtIZXZjTmFsSGVhZGVyU2l6ZSA9IDI7CisvLyBILjI2NSdzIEZVIGlzIGNvbnN0cnVj
dGVkIG9mIDItYnl0ZSBwYXlsb2FkIGhlYWRlciwgYW5kIDEtYnl0ZSBGVSBoZWFkZXIKK3N0YXRp
YyBjb25zdCBzaXplX3Qga0hldmNGdUhlYWRlclNpemUgPSAxOworc3RhdGljIGNvbnN0IHNpemVf
dCBrSGV2Y0xlbmd0aEZpZWxkU2l6ZSA9IDI7CitzdGF0aWMgY29uc3Qgc2l6ZV90IGtIZXZjQXBI
ZWFkZXJTaXplID0KKyAgICBrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0xlbmd0aEZpZWxkU2l6
ZTsKKworZW51bSBIZXZjTmFsSGRyTWFza3MgeworICBrSGV2Y0ZCaXQgPSAweDgwLAorICBrSGV2
Y1R5cGVNYXNrID0gMHg3RSwKKyAga0hldmNMYXllcklESE1hc2sgPSAweDEsCisgIGtIZXZjTGF5
ZXJJRExNYXNrID0gMHhGOCwKKyAga0hldmNUSURNYXNrID0gMHg3LAorICBrSGV2Y1R5cGVNYXNr
TiA9IDB4ODEsCisgIGtIZXZjVHlwZU1hc2tJbkZ1SGVhZGVyID0gMHgzRgorfTsKKworLy8gQml0
IG1hc2tzIGZvciBGVSBoZWFkZXJzLgorZW51bSBIZXZjRnVEZWZzIHsga0hldmNTQml0ID0gMHg4
MCwga0hldmNFQml0ID0gMHg0MCwga0hldmNGdVR5cGVCaXQgPSAweDNGIH07CisKKy8vIFRPRE8o
cGJvcyk6IEF2b2lkIHBhcnNpbmcgdGhpcyBoZXJlIGFzIHdlbGwgYXMgaW5zaWRlIHRoZSBqaXR0
ZXIgYnVmZmVyLgorYm9vbCBQYXJzZUFwU3RhcnRPZmZzZXRzKGNvbnN0IHVpbnQ4X3QqIG5hbHVf
cHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGhfcmVtYWluaW5nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHNpemVfdD4qIG9mZnNldHMpIHsK
KyAgc2l6ZV90IG9mZnNldCA9IDA7CisgIHdoaWxlIChsZW5ndGhfcmVtYWluaW5nID4gMCkgewor
ICAgIC8vIEJ1ZmZlciBkb2Vzbid0IGNvbnRhaW4gcm9vbSBmb3IgYWRkaXRpb25hbCBuYWx1IGxl
bmd0aC4KKyAgICBpZiAobGVuZ3RoX3JlbWFpbmluZyA8IHNpemVvZih1aW50MTZfdCkpCisgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgdWludDE2X3QgbmFsdV9zaXplID0gQnl0ZVJlYWRlcjx1aW50
MTZfdD46OlJlYWRCaWdFbmRpYW4obmFsdV9wdHIpOworICAgIG5hbHVfcHRyICs9IHNpemVvZih1
aW50MTZfdCk7CisgICAgbGVuZ3RoX3JlbWFpbmluZyAtPSBzaXplb2YodWludDE2X3QpOworICAg
IGlmIChuYWx1X3NpemUgPiBsZW5ndGhfcmVtYWluaW5nKQorICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIG5hbHVfcHRyICs9IG5hbHVfc2l6ZTsKKyAgICBsZW5ndGhfcmVtYWluaW5nIC09IG5hbHVf
c2l6ZTsKKworICAgIG9mZnNldHMtPnB1c2hfYmFjayhvZmZzZXQgKyBrSGV2Y0FwSGVhZGVyU2l6
ZSk7CisgICAgb2Zmc2V0ICs9IGtIZXZjTGVuZ3RoRmllbGRTaXplICsgbmFsdV9zaXplOworICB9
CisgIHJldHVybiB0cnVlOworfQorCit9ICAvLyBuYW1lc3BhY2UKKworUnRwUGFja2V0aXplckgy
NjU6OlJ0cFBhY2tldGl6ZXJIMjY1KAorICAgIHJ0Yzo6QXJyYXlWaWV3PGNvbnN0IHVpbnQ4X3Q+
IHBheWxvYWQsCisgICAgUGF5bG9hZFNpemVMaW1pdHMgbGltaXRzLAorICAgIEgyNjVQYWNrZXRp
emF0aW9uTW9kZSBwYWNrZXRpemF0aW9uX21vZGUsCisgICAgY29uc3QgUlRQRnJhZ21lbnRhdGlv
bkhlYWRlciYgZnJhZ21lbnRhdGlvbikKKyAgICA6IGxpbWl0c18obGltaXRzKSwKKyAgICAgIG51
bV9wYWNrZXRzX2xlZnRfKDApIHsKKyAgLy8gR3VhcmQgYWdhaW5zdCB1bmluaXRpYWxpemVkIG1l
bW9yeSBpbiBwYWNrZXRpemF0aW9uX21vZGUuCisgIFJUQ19DSEVDSyhwYWNrZXRpemF0aW9uX21v
ZGUgPT0gSDI2NVBhY2tldGl6YXRpb25Nb2RlOjpOb25JbnRlcmxlYXZlZCB8fAorICAgICAgICAg
ICAgcGFja2V0aXphdGlvbl9tb2RlID09IEgyNjVQYWNrZXRpemF0aW9uTW9kZTo6U2luZ2xlTmFs
VW5pdCk7CisKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFnbWVudGF0aW9uLmZyYWdtZW50
YXRpb25WZWN0b3JTaXplOyArK2kpIHsKKyAgICBjb25zdCB1aW50OF90KiBmcmFnbWVudCA9Cisg
ICAgICAgIHBheWxvYWQuZGF0YSgpICsgZnJhZ21lbnRhdGlvbi5mcmFnbWVudGF0aW9uT2Zmc2V0
W2ldOworICAgIGNvbnN0IHNpemVfdCBmcmFnbWVudF9sZW5ndGggPSBmcmFnbWVudGF0aW9uLmZy
YWdtZW50YXRpb25MZW5ndGhbaV07CisgICAgaW5wdXRfZnJhZ21lbnRzXy5wdXNoX2JhY2soRnJh
Z21lbnQoZnJhZ21lbnQsIGZyYWdtZW50X2xlbmd0aCkpOworICB9CisKKyAgaWYgKCFHZW5lcmF0
ZVBhY2tldHMocGFja2V0aXphdGlvbl9tb2RlKSkgeworICAgIC8vIElmIGZhaWxlZCB0byBnZW5l
cmF0ZSBhbGwgdGhlIHBhY2tldHMsIGRpc2NhcmQgYWxyZWFkeSBnZW5lcmF0ZWQKKyAgICAvLyBw
YWNrZXRzIGluIGNhc2UgdGhlIGNhbGxlciB3b3VsZCBpZ25vcmUgcmV0dXJuIHZhbHVlIGFuZCBz
dGlsbCB0cnkgdG8KKyAgICAvLyBjYWxsIE5leHRQYWNrZXQoKS4KKyAgICBudW1fcGFja2V0c19s
ZWZ0XyA9IDA7CisgICAgd2hpbGUgKCFwYWNrZXRzXy5lbXB0eSgpKSB7CisgICAgICBwYWNrZXRz
Xy5wb3AoKTsKKyAgICB9CisgIH0KK30KKworUnRwUGFja2V0aXplckgyNjU6On5SdHBQYWNrZXRp
emVySDI2NSgpIHt9CisKK3NpemVfdCBSdHBQYWNrZXRpemVySDI2NTo6TnVtUGFja2V0cygpIGNv
bnN0IHsKKyAgcmV0dXJuIG51bV9wYWNrZXRzX2xlZnRfOworfQorCitSdHBQYWNrZXRpemVySDI2
NTo6RnJhZ21lbnQ6OkZyYWdtZW50KGNvbnN0IHVpbnQ4X3QqIGJ1ZmZlciwgc2l6ZV90IGxlbmd0
aCkKKyAgICA6IGJ1ZmZlcihidWZmZXIpLCBsZW5ndGgobGVuZ3RoKSB7fQorUnRwUGFja2V0aXpl
ckgyNjU6OkZyYWdtZW50OjpGcmFnbWVudChjb25zdCBGcmFnbWVudCYgZnJhZ21lbnQpCisgICAg
OiBidWZmZXIoZnJhZ21lbnQuYnVmZmVyKSwgbGVuZ3RoKGZyYWdtZW50Lmxlbmd0aCkge30KKwor
Citib29sIFJ0cFBhY2tldGl6ZXJIMjY1OjpHZW5lcmF0ZVBhY2tldHMoCisgICAgSDI2NVBhY2tl
dGl6YXRpb25Nb2RlIHBhY2tldGl6YXRpb25fbW9kZSkgeworICAvLyBGb3IgSEVWQyB3ZSBmb2xs
b3cgbm9uLWludGVybGVhdmVkIG1vZGUgZm9yIHRoZSBwYWNrZXRpemF0aW9uLAorICAvLyBhbmQg
ZG9uJ3Qgc3VwcG9ydCBzaW5nbGUtbmFsdSBtb2RlIGF0IHByZXNlbnQuCisgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgaW5wdXRfZnJhZ21lbnRzXy5zaXplKCk7KSB7CisgICAgaW50IGZyYWdtZW50
X2xlbiA9IGlucHV0X2ZyYWdtZW50c19baV0ubGVuZ3RoOworICAgIGludCBzaW5nbGVfcGFja2V0
X2NhcGFjaXR5ID0gbGltaXRzXy5tYXhfcGF5bG9hZF9sZW47CisgICAgaWYgKGlucHV0X2ZyYWdt
ZW50c18uc2l6ZSgpID09IDEpCisgICAgICBzaW5nbGVfcGFja2V0X2NhcGFjaXR5IC09IGxpbWl0
c18uc2luZ2xlX3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICAgIGVsc2UgaWYgKGkgPT0gMCkKKyAg
ICAgIHNpbmdsZV9wYWNrZXRfY2FwYWNpdHkgLT0gbGltaXRzXy5maXJzdF9wYWNrZXRfcmVkdWN0
aW9uX2xlbjsKKyAgICBlbHNlIGlmIChpICsgMSA9PSBpbnB1dF9mcmFnbWVudHNfLnNpemUoKSkg
eworICAgICAgLy8gUHJldGVuZCB0aGF0IGxhc3QgZnJhZ21lbnQgaXMgbGFyZ2VyIGluc3RlYWQg
b2YgbWFraW5nIGxhc3QgcGFja2V0CisgICAgICAvLyBzbWFsbGVyLgorICAgICAgc2luZ2xlX3Bh
Y2tldF9jYXBhY2l0eSAtPSBsaW1pdHNfLmxhc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAg
fQorICAgIGlmIChmcmFnbWVudF9sZW4gPiBzaW5nbGVfcGFja2V0X2NhcGFjaXR5KSB7CisgICAg
ICBQYWNrZXRpemVGdShpKTsKKyAgICAgICsraTsKKyAgICB9IGVsc2UgeworICAgICAgUGFja2V0
aXplU2luZ2xlTmFsdShpKTsKKyAgICAgICsraTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgUnRwUGFja2V0aXplckgyNjU6OlBhY2tldGl6ZUZ1KHNpemVfdCBmcmFnbWVu
dF9pbmRleCkgeworICAvLyBGcmFnbWVudCBwYXlsb2FkIGludG8gcGFja2V0cyAoRlUpLgorICAv
LyBTdHJpcCBvdXQgdGhlIG9yaWdpbmFsIGhlYWRlciBhbmQgbGVhdmUgcm9vbSBmb3IgdGhlIEZV
IGhlYWRlci4KKyAgY29uc3QgRnJhZ21lbnQmIGZyYWdtZW50ID0gaW5wdXRfZnJhZ21lbnRzX1tm
cmFnbWVudF9pbmRleF07CisgIFBheWxvYWRTaXplTGltaXRzIGxpbWl0cyA9IGxpbWl0c187Cisg
IGxpbWl0cy5tYXhfcGF5bG9hZF9sZW4gLT0ga0hldmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhl
YWRlclNpemU7CisKKyAgLy8gVXBkYXRlIHNpbmdsZS9maXJzdC9sYXN0IHBhY2tldCByZWR1Y3Rp
b25zIHVubGVzcyBpdCBpcyBzaW5nbGUvZmlyc3QvbGFzdAorICAvLyBmcmFnbWVudC4KKyAgaWYg
KGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpICE9IDEpIHsKKyAgICAvLyBpZiB0aGlzIGZyYWdtZW50
IGlzIHB1dCBpbnRvIGEgc2luZ2xlIHBhY2tldCwgaXQgbWlnaHQgc3RpbGwgYmUgdGhlCisgICAg
Ly8gZmlyc3Qgb3IgdGhlIGxhc3QgcGFja2V0IGluIHRoZSB3aG9sZSBzZXF1ZW5jZSBvZiBwYWNr
ZXRzLgorICAgIGlmIChmcmFnbWVudF9pbmRleCA9PSBpbnB1dF9mcmFnbWVudHNfLnNpemUoKSAt
IDEpIHsKKyAgICAgIGxpbWl0cy5zaW5nbGVfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSBsaW1pdHNf
Lmxhc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgICAgfSBlbHNlIGlmIChmcmFnbWVudF9pbmRl
eCA9PSAwKSB7CisgICAgICBsaW1pdHMuc2luZ2xlX3BhY2tldF9yZWR1Y3Rpb25fbGVuID0gbGlt
aXRzXy5maXJzdF9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgICB9IGVsc2UgeworICAgICAgbGlt
aXRzLnNpbmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbiA9IDA7CisgICAgfQorICB9CisgIGlmIChm
cmFnbWVudF9pbmRleCAhPSAwKQorICAgIGxpbWl0cy5maXJzdF9wYWNrZXRfcmVkdWN0aW9uX2xl
biA9IDA7CisgIGlmIChmcmFnbWVudF9pbmRleCAhPSBpbnB1dF9mcmFnbWVudHNfLnNpemUoKSAt
IDEpCisgICAgbGltaXRzLmxhc3RfcGFja2V0X3JlZHVjdGlvbl9sZW4gPSAwOworCisgIC8vIFN0
cmlwIG91dCB0aGUgb3JpZ2luYWwgaGVhZGVyLgorICBzaXplX3QgcGF5bG9hZF9sZWZ0ID0gZnJh
Z21lbnQubGVuZ3RoIC0ga0hldmNOYWxIZWFkZXJTaXplOworICBpbnQgb2Zmc2V0ID0ga0hldmNO
YWxIZWFkZXJTaXplOworCisgIHN0ZDo6dmVjdG9yPGludD4gcGF5bG9hZF9zaXplcyA9IFNwbGl0
QWJvdXRFcXVhbGx5KHBheWxvYWRfbGVmdCwgbGltaXRzKTsKKyAgaWYgKHBheWxvYWRfc2l6ZXMu
ZW1wdHkoKSkKKyAgICByZXR1cm4gZmFsc2U7CisKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBw
YXlsb2FkX3NpemVzLnNpemUoKTsgKytpKSB7CisgICAgaW50IHBhY2tldF9sZW5ndGggPSBwYXls
b2FkX3NpemVzW2ldOworICAgIFJUQ19DSEVDS19HVChwYWNrZXRfbGVuZ3RoLCAwKTsKKyAgICB1
aW50MTZfdCBoZWFkZXIgPSAoZnJhZ21lbnQuYnVmZmVyWzBdIDw8IDgpIHwgZnJhZ21lbnQuYnVm
ZmVyWzFdOworICAgIHBhY2tldHNfLnB1c2goUGFja2V0VW5pdChGcmFnbWVudChmcmFnbWVudC5i
dWZmZXIgKyBvZmZzZXQsIHBhY2tldF9sZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKmZpcnN0X2ZyYWdtZW50PSovaSA9PSAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKmxhc3RfZnJhZ21lbnQ9Ki9pID09IHBheWxvYWRfc2l6ZXMuc2l6ZSgpIC0gMSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIGhlYWRlcikpOworICAgIG9mZnNldCAr
PSBwYWNrZXRfbGVuZ3RoOworICAgIHBheWxvYWRfbGVmdCAtPSBwYWNrZXRfbGVuZ3RoOworICB9
CisgIG51bV9wYWNrZXRzX2xlZnRfICs9IHBheWxvYWRfc2l6ZXMuc2l6ZSgpOworICBSVENfQ0hF
Q0tfRVEoMCwgcGF5bG9hZF9sZWZ0KTsKKyAgcmV0dXJuIHRydWU7Cit9CisKKworYm9vbCBSdHBQ
YWNrZXRpemVySDI2NTo6UGFja2V0aXplU2luZ2xlTmFsdShzaXplX3QgZnJhZ21lbnRfaW5kZXgp
IHsKKyAgLy8gQWRkIGEgc2luZ2xlIE5BTFUgdG8gdGhlIHF1ZXVlLCBubyBhZ2dyZWdhdGlvbi4K
KyAgc2l6ZV90IHBheWxvYWRfc2l6ZV9sZWZ0ID0gbGltaXRzXy5tYXhfcGF5bG9hZF9sZW47Cisg
IGlmIChpbnB1dF9mcmFnbWVudHNfLnNpemUoKSA9PSAxKQorICAgIHBheWxvYWRfc2l6ZV9sZWZ0
IC09IGxpbWl0c18uc2luZ2xlX3BhY2tldF9yZWR1Y3Rpb25fbGVuOworICBlbHNlIGlmIChmcmFn
bWVudF9pbmRleCA9PSAwKQorICAgIHBheWxvYWRfc2l6ZV9sZWZ0IC09IGxpbWl0c18uZmlyc3Rf
cGFja2V0X3JlZHVjdGlvbl9sZW47CisgIGVsc2UgaWYgKGZyYWdtZW50X2luZGV4ICsgMSA9PSBp
bnB1dF9mcmFnbWVudHNfLnNpemUoKSkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1pdHNf
Lmxhc3RfcGFja2V0X3JlZHVjdGlvbl9sZW47CisgIGNvbnN0IEZyYWdtZW50KiBmcmFnbWVudCA9
ICZpbnB1dF9mcmFnbWVudHNfW2ZyYWdtZW50X2luZGV4XTsKKyAgaWYgKHBheWxvYWRfc2l6ZV9s
ZWZ0IDwgZnJhZ21lbnQtPmxlbmd0aCkgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWls
ZWQgdG8gZml0IGEgZnJhZ21lbnQgdG8gcGFja2V0IGluIFNpbmdsZU5hbHUgIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICJwYWNrZXRpemF0aW9uIG1vZGUuIFBheWxvYWQgc2l6ZSBsZWZ0ICIK
KyAgICAgICAgICAgICAgICAgICAgICA8PCBwYXlsb2FkX3NpemVfbGVmdCA8PCAiLCBmcmFnbWVu
dCBsZW5ndGggIgorICAgICAgICAgICAgICAgICAgICAgIDw8IGZyYWdtZW50LT5sZW5ndGggPDwg
IiwgcGFja2V0IGNhcGFjaXR5ICIKKyAgICAgICAgICAgICAgICAgICAgICA8PCBsaW1pdHNfLm1h
eF9wYXlsb2FkX2xlbjsKKyAgICByZXR1cm4gZmFsc2U7CisgIH0KKyAgUlRDX0NIRUNLX0dUKGZy
YWdtZW50LT5sZW5ndGgsIDB1KTsKKyAgcGFja2V0c18ucHVzaChQYWNrZXRVbml0KCpmcmFnbWVu
dCwgdHJ1ZSAvKiBmaXJzdCAqLywgdHJ1ZSAvKiBsYXN0ICovLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmFsc2UgLyogYWdncmVnYXRlZCAqLywgZnJhZ21lbnQtPmJ1ZmZlclswXSkpOwor
ICArK251bV9wYWNrZXRzX2xlZnRfOworICByZXR1cm4gdHJ1ZTsKK30KKworaW50IFJ0cFBhY2tl
dGl6ZXJIMjY1OjpQYWNrZXRpemVBcChzaXplX3QgZnJhZ21lbnRfaW5kZXgpIHsKKyAgLy8gQWdn
cmVnYXRlIGZyYWdtZW50cyBpbnRvIG9uZSBwYWNrZXQgKFNUQVAtQSkuCisgIHNpemVfdCBwYXls
b2FkX3NpemVfbGVmdCA9IGxpbWl0c18ubWF4X3BheWxvYWRfbGVuOworICBpZiAoaW5wdXRfZnJh
Z21lbnRzXy5zaXplKCkgPT0gMSkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1pdHNfLnNp
bmdsZV9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgZWxzZSBpZiAoZnJhZ21lbnRfaW5kZXggPT0g
MCkKKyAgICBwYXlsb2FkX3NpemVfbGVmdCAtPSBsaW1pdHNfLmZpcnN0X3BhY2tldF9yZWR1Y3Rp
b25fbGVuOworICBpbnQgYWdncmVnYXRlZF9mcmFnbWVudHMgPSAwOworICBzaXplX3QgZnJhZ21l
bnRfaGVhZGVyc19sZW5ndGggPSAwOworICBjb25zdCBGcmFnbWVudCogZnJhZ21lbnQgPSAmaW5w
dXRfZnJhZ21lbnRzX1tmcmFnbWVudF9pbmRleF07CisgIFJUQ19DSEVDS19HRShwYXlsb2FkX3Np
emVfbGVmdCwgZnJhZ21lbnQtPmxlbmd0aCk7CisgICsrbnVtX3BhY2tldHNfbGVmdF87CisKKyAg
YXV0byBwYXlsb2FkX3NpemVfbmVlZGVkID0gWyZdIHsKKyAgICBzaXplX3QgZnJhZ21lbnRfc2l6
ZSA9IGZyYWdtZW50LT5sZW5ndGggKyBmcmFnbWVudF9oZWFkZXJzX2xlbmd0aDsKKyAgICBpZiAo
aW5wdXRfZnJhZ21lbnRzXy5zaXplKCkgPT0gMSkgeworICAgICAgLy8gU2luZ2xlIGZyYWdtZW50
LCBzaW5nbGUgcGFja2V0LCBwYXlsb2FkX3NpemVfbGVmdCBhbHJlYWR5IGFkanVzdGVkCisgICAg
ICAvLyB3aXRoIGxpbWl0c18uc2luZ2xlX3BhY2tldF9yZWR1Y3Rpb25fbGVuLgorICAgICAgcmV0
dXJuIGZyYWdtZW50X3NpemU7CisgICAgfQorICAgIGlmIChmcmFnbWVudF9pbmRleCA9PSBpbnB1
dF9mcmFnbWVudHNfLnNpemUoKSAtIDEpIHsKKyAgICAgIC8vIExhc3QgZnJhZ21lbnQsIHNvIFN0
cmFwQSBtaWdodCBiZSB0aGUgbGFzdCBwYWNrZXQuCisgICAgICByZXR1cm4gZnJhZ21lbnRfc2l6
ZSArIGxpbWl0c18ubGFzdF9wYWNrZXRfcmVkdWN0aW9uX2xlbjsKKyAgICB9CisgICAgcmV0dXJu
IGZyYWdtZW50X3NpemU7CisgIH07CisKKyAgd2hpbGUgKHBheWxvYWRfc2l6ZV9sZWZ0ID49IHBh
eWxvYWRfc2l6ZV9uZWVkZWQoKSkgeworICAgIFJUQ19DSEVDS19HVChmcmFnbWVudC0+bGVuZ3Ro
LCAwKTsKKyAgICBwYWNrZXRzXy5wdXNoKFBhY2tldFVuaXQoKmZyYWdtZW50LCBhZ2dyZWdhdGVk
X2ZyYWdtZW50cyA9PSAwLCBmYWxzZSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZnJhZ21lbnQtPmJ1ZmZlclswXSkpOworICAgIHBheWxvYWRfc2l6ZV9sZWZ0IC09IGZyYWdt
ZW50LT5sZW5ndGg7CisgICAgcGF5bG9hZF9zaXplX2xlZnQgLT0gZnJhZ21lbnRfaGVhZGVyc19s
ZW5ndGg7CisKKyAgICBmcmFnbWVudF9oZWFkZXJzX2xlbmd0aCA9IGtIZXZjTGVuZ3RoRmllbGRT
aXplOworICAgIC8vIElmIHdlIGFyZSBnb2luZyB0byB0cnkgdG8gYWdncmVnYXRlIG1vcmUgZnJh
Z21lbnRzIGludG8gdGhpcyBwYWNrZXQKKyAgICAvLyB3ZSBuZWVkIHRvIGFkZCB0aGUgU1RBUC1B
IE5BTFUgaGVhZGVyIGFuZCBhIGxlbmd0aCBmaWVsZCBmb3IgdGhlIGZpcnN0CisgICAgLy8gTkFM
VSBvZiB0aGlzIHBhY2tldC4KKyAgICBpZiAoYWdncmVnYXRlZF9mcmFnbWVudHMgPT0gMCkKKyAg
ICAgIGZyYWdtZW50X2hlYWRlcnNfbGVuZ3RoICs9IGtIZXZjTmFsSGVhZGVyU2l6ZSArIGtIZXZj
TGVuZ3RoRmllbGRTaXplOworICAgICsrYWdncmVnYXRlZF9mcmFnbWVudHM7CisKKyAgICAvLyBO
ZXh0IGZyYWdtZW50LgorICAgICsrZnJhZ21lbnRfaW5kZXg7CisgICAgaWYgKGZyYWdtZW50X2lu
ZGV4ID09IGlucHV0X2ZyYWdtZW50c18uc2l6ZSgpKQorICAgICAgYnJlYWs7CisgICAgZnJhZ21l
bnQgPSAmaW5wdXRfZnJhZ21lbnRzX1tmcmFnbWVudF9pbmRleF07CisgIH0KKyAgUlRDX0NIRUNL
X0dUKGFnZ3JlZ2F0ZWRfZnJhZ21lbnRzLCAwKTsKKyAgcGFja2V0c18uYmFjaygpLmxhc3RfZnJh
Z21lbnQgPSB0cnVlOworICByZXR1cm4gZnJhZ21lbnRfaW5kZXg7Cit9CisKK2Jvb2wgUnRwUGFj
a2V0aXplckgyNjU6Ok5leHRQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0KSB7Cisg
IFJUQ19EQ0hFQ0socnRwX3BhY2tldCk7CisKKyAgaWYgKHBhY2tldHNfLmVtcHR5KCkpIHsKKyAg
ICByZXR1cm4gZmFsc2U7CisgIH0KKworICBQYWNrZXRVbml0IHBhY2tldCA9IHBhY2tldHNfLmZy
b250KCk7CisKKyAgaWYgKHBhY2tldC5maXJzdF9mcmFnbWVudCAmJiBwYWNrZXQubGFzdF9mcmFn
bWVudCkgeworICAgIC8vIFNpbmdsZSBOQUwgdW5pdCBwYWNrZXQuCisgICAgc2l6ZV90IGJ5dGVz
X3RvX3NlbmQgPSBwYWNrZXQuc291cmNlX2ZyYWdtZW50Lmxlbmd0aDsKKyAgICB1aW50OF90KiBi
dWZmZXIgPSBydHBfcGFja2V0LT5BbGxvY2F0ZVBheWxvYWQoYnl0ZXNfdG9fc2VuZCk7CisgICAg
bWVtY3B5KGJ1ZmZlciwgcGFja2V0LnNvdXJjZV9mcmFnbWVudC5idWZmZXIsIGJ5dGVzX3RvX3Nl
bmQpOworICAgIHBhY2tldHNfLnBvcCgpOworICAgIGlucHV0X2ZyYWdtZW50c18ucG9wX2Zyb250
KCk7CisgIH0gZWxzZSBpZiAocGFja2V0LmFnZ3JlZ2F0ZWQpIHsKKyAgICBib29sIGlzX2xhc3Rf
cGFja2V0ID0gbnVtX3BhY2tldHNfbGVmdF8gPT0gMTsKKyAgICBOZXh0QWdncmVnYXRlUGFja2V0
KHJ0cF9wYWNrZXQsIGlzX2xhc3RfcGFja2V0KTsKKyAgfSBlbHNlIHsKKyAgICBOZXh0RnJhZ21l
bnRQYWNrZXQocnRwX3BhY2tldCk7CisgIH0KKyAgcnRwX3BhY2tldC0+U2V0TWFya2VyKHBhY2tl
dHNfLmVtcHR5KCkpOworICAtLW51bV9wYWNrZXRzX2xlZnRfOworICByZXR1cm4gdHJ1ZTsKK30K
Kwordm9pZCBSdHBQYWNrZXRpemVySDI2NTo6TmV4dEFnZ3JlZ2F0ZVBhY2tldChSdHBQYWNrZXRU
b1NlbmQqIHJ0cF9wYWNrZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgbGFzdCkgeworICBzaXplX3QgcGF5bG9hZF9jYXBhY2l0eSA9IHJ0cF9wYWNr
ZXQtPkZyZWVDYXBhY2l0eSgpOworICBSVENfQ0hFQ0tfR0UocGF5bG9hZF9jYXBhY2l0eSwga0hl
dmNOYWxIZWFkZXJTaXplKTsKKyAgdWludDhfdCogYnVmZmVyID0gcnRwX3BhY2tldC0+QWxsb2Nh
dGVQYXlsb2FkKHBheWxvYWRfY2FwYWNpdHkpOworCisgIFBhY2tldFVuaXQqIHBhY2tldCA9ICZw
YWNrZXRzXy5mcm9udCgpOworICBSVENfQ0hFQ0socGFja2V0LT5maXJzdF9mcmFnbWVudCk7Cisg
IHVpbnQ4X3QgcGF5bG9hZF9oZHJfaCA9IHBhY2tldC0+aGVhZGVyID4+IDg7CisgIHVpbnQ4X3Qg
cGF5bG9hZF9oZHJfbCA9IHBhY2tldC0+aGVhZGVyICYgMHhGRjsKKyAgdWludDhfdCBsYXllcl9p
ZF9oID0gcGF5bG9hZF9oZHJfaCAmIGtIZXZjTGF5ZXJJREhNYXNrOworCisgIHBheWxvYWRfaGRy
X2ggPQorICAgICAgKHBheWxvYWRfaGRyX2ggJiBrSGV2Y1R5cGVNYXNrTikgfCAoa0hldmNBcCA8
PCAxKSB8IGxheWVyX2lkX2g7CisKKyAgYnVmZmVyWzBdID0gcGF5bG9hZF9oZHJfaDsKKyAgYnVm
ZmVyWzFdID0gcGF5bG9hZF9oZHJfbDsKKyAgaW50IGluZGV4ID0ga0hldmNOYWxIZWFkZXJTaXpl
OworICBib29sIGlzX2xhc3RfZnJhZ21lbnQgPSBwYWNrZXQtPmxhc3RfZnJhZ21lbnQ7CisgIHdo
aWxlIChwYWNrZXQtPmFnZ3JlZ2F0ZWQpIHsKKyAgICAvLyBBZGQgTkFMIHVuaXQgbGVuZ3RoIGZp
ZWxkLgorICAgIGNvbnN0IEZyYWdtZW50JiBmcmFnbWVudCA9IHBhY2tldC0+c291cmNlX2ZyYWdt
ZW50OworICAgIEJ5dGVXcml0ZXI8dWludDE2X3Q+OjpXcml0ZUJpZ0VuZGlhbigmYnVmZmVyW2lu
ZGV4XSwgZnJhZ21lbnQubGVuZ3RoKTsKKyAgICBpbmRleCArPSBrSGV2Y0xlbmd0aEZpZWxkU2l6
ZTsKKyAgICAvLyBBZGQgTkFMIHVuaXQuCisgICAgbWVtY3B5KCZidWZmZXJbaW5kZXhdLCBmcmFn
bWVudC5idWZmZXIsIGZyYWdtZW50Lmxlbmd0aCk7CisgICAgaW5kZXggKz0gZnJhZ21lbnQubGVu
Z3RoOworICAgIHBhY2tldHNfLnBvcCgpOworICAgIGlucHV0X2ZyYWdtZW50c18ucG9wX2Zyb250
KCk7CisgICAgaWYgKGlzX2xhc3RfZnJhZ21lbnQpCisgICAgICBicmVhazsKKyAgICBwYWNrZXQg
PSAmcGFja2V0c18uZnJvbnQoKTsKKyAgICBpc19sYXN0X2ZyYWdtZW50ID0gcGFja2V0LT5sYXN0
X2ZyYWdtZW50OworICB9CisgIFJUQ19DSEVDSyhpc19sYXN0X2ZyYWdtZW50KTsKKyAgcnRwX3Bh
Y2tldC0+U2V0UGF5bG9hZFNpemUoaW5kZXgpOworfQorCit2b2lkIFJ0cFBhY2tldGl6ZXJIMjY1
OjpOZXh0RnJhZ21lbnRQYWNrZXQoUnRwUGFja2V0VG9TZW5kKiBydHBfcGFja2V0KSB7CisgIFBh
Y2tldFVuaXQqIHBhY2tldCA9ICZwYWNrZXRzXy5mcm9udCgpOworICAvLyBOQUwgdW5pdCBmcmFn
bWVudGVkIG92ZXIgbXVsdGlwbGUgcGFja2V0cyAoRlUpLgorICAvLyBXZSBkbyBub3Qgc2VuZCBv
cmlnaW5hbCBOQUxVIGhlYWRlciwgc28gaXQgd2lsbCBiZSByZXBsYWNlZCBieSB0aGUKKyAgLy8g
UGF5bG9hZEhkciBvZiB0aGUgZmlyc3QgcGFja2V0LgorICB1aW50OF90IHBheWxvYWRfaGRyX2gg
PQorICAgICAgcGFja2V0LT5oZWFkZXIgPj4gODsgIC8vIDEtYml0IEYsIDYtYml0IHR5cGUsIDEt
Yml0IGxheWVySUQgaGlnaGVzdC1iaXQKKyAgdWludDhfdCBwYXlsb2FkX2hkcl9sID0gcGFja2V0
LT5oZWFkZXIgJiAweEZGOworICB1aW50OF90IGxheWVyX2lkX2ggPSBwYXlsb2FkX2hkcl9oICYg
a0hldmNMYXllcklESE1hc2s7CisgIHVpbnQ4X3QgZnVfaGVhZGVyID0gMDsKKyAgLy8gUyB8IEUg
fDYgYml0IHR5cGUuCisgIGZ1X2hlYWRlciB8PSAocGFja2V0LT5maXJzdF9mcmFnbWVudCA/IGtI
ZXZjU0JpdCA6IDApOworICBmdV9oZWFkZXIgfD0gKHBhY2tldC0+bGFzdF9mcmFnbWVudCA/IGtI
ZXZjRUJpdCA6IDApOworICB1aW50OF90IHR5cGUgPSAocGF5bG9hZF9oZHJfaCAmIGtIZXZjVHlw
ZU1hc2spID4+IDE7CisgIGZ1X2hlYWRlciB8PSB0eXBlOworICAvLyBOb3cgdXBkYXRlIHBheWxv
YWRfaGRyX2ggd2l0aCBGVSB0eXBlLgorICBwYXlsb2FkX2hkcl9oID0KKyAgICAgIChwYXlsb2Fk
X2hkcl9oICYga0hldmNUeXBlTWFza04pIHwgKGtIZXZjRnUgPDwgMSkgfCBsYXllcl9pZF9oOwor
ICBjb25zdCBGcmFnbWVudCYgZnJhZ21lbnQgPSBwYWNrZXQtPnNvdXJjZV9mcmFnbWVudDsKKyAg
dWludDhfdCogYnVmZmVyID0gcnRwX3BhY2tldC0+QWxsb2NhdGVQYXlsb2FkKAorICAgICAga0hl
dmNGdUhlYWRlclNpemUgKyBrSGV2Y05hbEhlYWRlclNpemUgKyBmcmFnbWVudC5sZW5ndGgpOwor
ICBidWZmZXJbMF0gPSBwYXlsb2FkX2hkcl9oOworICBidWZmZXJbMV0gPSBwYXlsb2FkX2hkcl9s
OworICBidWZmZXJbMl0gPSBmdV9oZWFkZXI7CisKKyAgaWYgKHBhY2tldC0+bGFzdF9mcmFnbWVu
dCkgeworICAgIG1lbWNweShidWZmZXIgKyBrSGV2Y0Z1SGVhZGVyU2l6ZSArIGtIZXZjTmFsSGVh
ZGVyU2l6ZSwgZnJhZ21lbnQuYnVmZmVyLAorICAgICAgICAgICBmcmFnbWVudC5sZW5ndGgpOwor
ICB9IGVsc2UgeworICAgIG1lbWNweShidWZmZXIgKyBrSGV2Y0Z1SGVhZGVyU2l6ZSArIGtIZXZj
TmFsSGVhZGVyU2l6ZSwgZnJhZ21lbnQuYnVmZmVyLAorICAgICAgICAgICBmcmFnbWVudC5sZW5n
dGgpOworICB9CisgIHBhY2tldHNfLnBvcCgpOworfQorCithYnNsOjpvcHRpb25hbDxWaWRlb1J0
cERlcGFja2V0aXplcjo6UGFyc2VkUnRwUGF5bG9hZD4gVmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1
OjpQYXJzZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRjOjpDb3B5T25Xcml0
ZUJ1ZmZlciBydHBfcGF5bG9hZCkgeworICBzaXplX3QgcGF5bG9hZF9kYXRhX2xlbmd0aCA9IHJ0
cF9wYXlsb2FkLnNpemUoKTsKKyAgaWYgKHBheWxvYWRfZGF0YV9sZW5ndGggPT0gMCkgeworICAg
IFJUQ19MT0coTFNfRVJST1IpIDw8ICJFbXB0eSBwYXlsb2FkLiI7CisgICAgcmV0dXJuIGFic2w6
Om51bGxvcHQ7CisgIH0KKworICBQYXJzZWRSdHBQYXlsb2FkIHBhcnNlZF9wYXlsb2FkOworCisg
IHVpbnQ4X3QqIHBheWxvYWRfZGF0YSA9IHJ0cF9wYXlsb2FkLmRhdGEoKTsKKworICBvZmZzZXRf
ID0gMDsKKyAgbGVuZ3RoXyA9IHBheWxvYWRfZGF0YV9sZW5ndGg7CisgIG1vZGlmaWVkX2J1ZmZl
cl8ucmVzZXQoKTsKKworICB1aW50OF90IG5hbF90eXBlID0gKHBheWxvYWRfZGF0YVswXSAmIGtI
ZXZjVHlwZU1hc2spID4+IDE7CisgIHBhcnNlZF9wYXlsb2FkLnZpZGVvX2hlYWRlcgorICAgICAg
LnZpZGVvX3R5cGVfaGVhZGVyLmVtcGxhY2U8UlRQVmlkZW9IZWFkZXJIMjY1PigpOworCisgIGlm
IChuYWxfdHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0ZVKSB7CisgICAgLy8gRnJhZ21lbnRlZCBO
QUwgdW5pdHMgKEZVLUEpLgorICAgIGlmICghUGFyc2VGdU5hbHUoJnBhcnNlZF9wYXlsb2FkLCBw
YXlsb2FkX2RhdGEpKQorICAgICAgcmV0dXJuIGFic2w6Om51bGxvcHQ7CisgIH0gZWxzZSB7Cisg
ICAgLy8gV2UgaGFuZGxlIFNUQVAtQSBhbmQgc2luZ2xlIE5BTFUncyB0aGUgc2FtZSB3YXkgaGVy
ZS4gVGhlIGppdHRlciBidWZmZXIKKyAgICAvLyB3aWxsIGRlcGFja2V0aXplIHRoZSBTVEFQLUEg
aW50byBOQUwgdW5pdHMgbGF0ZXIuCisgICAgLy8gVE9ETyhzcHJhbmcpOiBQYXJzZSBTVEFQLUEg
b2Zmc2V0cyBoZXJlIGFuZCBzdG9yZSBpbiBmcmFnbWVudGF0aW9uIHZlYy4KKyAgICBpZiAoIVBy
b2Nlc3NBcE9yU2luZ2xlTmFsdSgmcGFyc2VkX3BheWxvYWQsIHBheWxvYWRfZGF0YSkpCisgICAg
ICByZXR1cm4gYWJzbDo6bnVsbG9wdDsKKyAgfQorCisgIGNvbnN0IHVpbnQ4X3QqIHBheWxvYWQg
PQorICAgICAgbW9kaWZpZWRfYnVmZmVyXyA/IG1vZGlmaWVkX2J1ZmZlcl8tPmRhdGEoKSA6IHBh
eWxvYWRfZGF0YTsKKworICBwYXJzZWRfcGF5bG9hZC52aWRlb19wYXlsb2FkID0geyBwYXlsb2Fk
ICsgb2Zmc2V0XywgbGVuZ3RoXyB9OworICByZXR1cm4gcGFyc2VkX3BheWxvYWQ7Cit9CisKK2Jv
b2wgVmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1OjpQcm9jZXNzQXBPclNpbmdsZU5hbHUoCisgICAg
UGFyc2VkUnRwUGF5bG9hZCogcGFyc2VkX3BheWxvYWQsCisgICAgY29uc3QgdWludDhfdCogcGF5
bG9hZF9kYXRhKSB7CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIud2lkdGggPSAwOwor
ICBwYXJzZWRfcGF5bG9hZC0+dmlkZW9faGVhZGVyLmhlaWdodCA9IDA7CisgIHBhcnNlZF9wYXls
b2FkLT52aWRlb19oZWFkZXIuY29kZWMgPSBrVmlkZW9Db2RlY0gyNjU7CisgIHBhcnNlZF9wYXls
b2FkLT52aWRlb19oZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lID0gdHJ1ZTsKKyAgYXV0
byYgaDI2NV9oZWFkZXIgPSBhYnNsOjpnZXQ8UlRQVmlkZW9IZWFkZXJIMjY1PigKKyAgICAgIHBh
cnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOworCisgIGNvbnN0
IHVpbnQ4X3QqIG5hbHVfc3RhcnQgPSBwYXlsb2FkX2RhdGEgKyBrSGV2Y05hbEhlYWRlclNpemU7
CisgIGNvbnN0IHNpemVfdCBuYWx1X2xlbmd0aCA9IGxlbmd0aF8gLSBrSGV2Y05hbEhlYWRlclNp
emU7CisgIHVpbnQ4X3QgbmFsX3R5cGUgPSAocGF5bG9hZF9kYXRhWzBdICYga0hldmNUeXBlTWFz
aykgPj4gMTsKKyAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBuYWx1X3N0YXJ0X29mZnNldHM7CisgIGlm
IChuYWxfdHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0FQKSB7CisgICAgLy8gU2tpcCB0aGUgU3Rh
cEEgaGVhZGVyIChTdGFwQSBOQUwgdHlwZSArIGxlbmd0aCkuCisgICAgaWYgKGxlbmd0aF8gPD0g
a0hldmNBcEhlYWRlclNpemUpIHsKKyAgICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJBUCBoZWFk
ZXIgdHJ1bmNhdGVkLiI7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKCFQ
YXJzZUFwU3RhcnRPZmZzZXRzKG5hbHVfc3RhcnQsIG5hbHVfbGVuZ3RoLCAmbmFsdV9zdGFydF9v
ZmZzZXRzKSkgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkFQIHBhY2tldCB3aXRoIGlu
Y29ycmVjdCBOQUxVIHBhY2tldCBsZW5ndGhzLiI7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgaDI2NV9oZWFkZXIucGFja2V0aXphdGlvbl90eXBlID0ga0gyNjVBUDsKKyAgICAv
LyBuYWxfdHlwZSA9IChwYXlsb2FkX2RhdGFba0hldmNBcEhlYWRlclNpemVdICYga0hldmNUeXBl
TWFzaykgPj4gMTsKKyAgfSBlbHNlIHsKKyAgICBoMjY1X2hlYWRlci5wYWNrZXRpemF0aW9uX3R5
cGUgPSBrSDI2NVNpbmdsZU5hbHU7CisgICAgbmFsdV9zdGFydF9vZmZzZXRzLnB1c2hfYmFjaygw
KTsKKyAgfQorICBoMjY1X2hlYWRlci5uYWx1X3R5cGUgPSBuYWxfdHlwZTsKKyAgcGFyc2VkX3Bh
eWxvYWQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFtZVR5cGU6OmtWaWRlb0Zy
YW1lRGVsdGE7CisKKyAgbmFsdV9zdGFydF9vZmZzZXRzLnB1c2hfYmFjayhsZW5ndGhfICsga0hl
dmNMZW5ndGhGaWVsZFNpemUpOyAgLy8gRW5kIG9mZnNldC4KKyAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBuYWx1X3N0YXJ0X29mZnNldHMuc2l6ZSgpIC0gMTsgKytpKSB7CisgICAgc2l6ZV90IHN0
YXJ0X29mZnNldCA9IG5hbHVfc3RhcnRfb2Zmc2V0c1tpXTsKKyAgICAvLyBFbmQgb2Zmc2V0IGlz
IGFjdHVhbGx5IHN0YXJ0IG9mZnNldCBmb3IgbmV4dCB1bml0LCBleGNsdWRpbmcgbGVuZ3RoIGZp
ZWxkCisgICAgLy8gc28gcmVtb3ZlIHRoYXQgZnJvbSB0aGlzIHVuaXRzIGxlbmd0aC4KKyAgICBz
aXplX3QgZW5kX29mZnNldCA9IG5hbHVfc3RhcnRfb2Zmc2V0c1tpICsgMV0gLSBrSGV2Y0xlbmd0
aEZpZWxkU2l6ZTsKKyAgICBpZiAoZW5kX29mZnNldCAtIHN0YXJ0X29mZnNldCA8IGtIZXZjTmFs
SGVhZGVyU2l6ZSkgeyAgLy8gU2FtZSBhcyBILjI2NC4KKyAgICAgIFJUQ19MT0coTFNfRVJST1Ip
IDw8ICJBUCBwYWNrZXQgdG9vIHNob3J0IjsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisK
KyAgICBIMjY1TmFsdUluZm8gbmFsdTsKKyAgICBuYWx1LnR5cGUgPSAocGF5bG9hZF9kYXRhW3N0
YXJ0X29mZnNldF0gJiBrSGV2Y1R5cGVNYXNrKSA+PiAxOworICAgIG5hbHUudnBzX2lkID0gLTE7
CisgICAgbmFsdS5zcHNfaWQgPSAtMTsKKyAgICBuYWx1LnBwc19pZCA9IC0xOworICAgIHN0YXJ0
X29mZnNldCArPSBrSGV2Y05hbEhlYWRlclNpemU7CisgICAgc3dpdGNoIChuYWx1LnR5cGUpIHsK
KyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtWcHM6IHsKKyAgICAgICAgYWJzbDo6b3B0aW9u
YWw8SDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU+IHZwcyA9IEgyNjVWcHNQYXJzZXI6OlBhcnNlVnBz
KAorICAgICAgICAgICAgJnBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdLCBlbmRfb2Zmc2V0IC0g
c3RhcnRfb2Zmc2V0KTsKKyAgICAgICAgaWYgKHZwcykgeworICAgICAgICAgIG5hbHUudnBzX2lk
ID0gdnBzLT5pZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBSVENfTE9HKExTX1dBUk5J
TkcpIDw8ICJGYWlsZWQgdG8gcGFyc2UgVlBTIGlkIGZyb20gVlBTIHNsaWNlLiI7CisgICAgICAg
IH0KKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjpr
U3BzOiB7CisgICAgICAgIC8vIENoZWNrIGlmIFZVSSBpcyBwcmVzZW50IGluIFNQUyBhbmQgaWYg
aXQgbmVlZHMgdG8gYmUgbW9kaWZpZWQgdG8KKyAgICAgICAgLy8gYXZvaWQgZXhjZXNzaXZlIGRl
Y29kZXIgbGF0ZW5jeS4KKworICAgICAgICAvLyBDb3B5IGFueSBwcmV2aW91cyBkYXRhIGZpcnN0
IChsaWtlbHkganVzdCB0aGUgZmlyc3QgaGVhZGVyKS4KKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PHJ0Yzo6QnVmZmVyPiBvdXRwdXRfYnVmZmVyKG5ldyBydGM6OkJ1ZmZlcigpKTsKKyAgICAgICAg
aWYgKHN0YXJ0X29mZnNldCkKKyAgICAgICAgICBvdXRwdXRfYnVmZmVyLT5BcHBlbmREYXRhKHBh
eWxvYWRfZGF0YSwgc3RhcnRfb2Zmc2V0KTsKKworICAgICAgICBhYnNsOjpvcHRpb25hbDxIMjY1
U3BzUGFyc2VyOjpTcHNTdGF0ZT4gc3BzID0gSDI2NVNwc1BhcnNlcjo6UGFyc2VTcHMoCisgICAg
ICAgICAgICAmcGF5bG9hZF9kYXRhW3N0YXJ0X29mZnNldF0sIGVuZF9vZmZzZXQgLSBzdGFydF9v
ZmZzZXQpOworCisgICAgICAgIGlmIChzcHMpIHsKKyAgICAgICAgICBwYXJzZWRfcGF5bG9hZC0+
dmlkZW9faGVhZGVyLndpZHRoID0gc3BzLT53aWR0aDsKKyAgICAgICAgICBwYXJzZWRfcGF5bG9h
ZC0+dmlkZW9faGVhZGVyLmhlaWdodCA9IHNwcy0+aGVpZ2h0OworICAgICAgICAgIG5hbHUuc3Bz
X2lkID0gc3BzLT5pZDsKKyAgICAgICAgICBuYWx1LnZwc19pZCA9IHNwcy0+dnBzX2lkOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICAg
ICAgPDwgIkZhaWxlZCB0byBwYXJzZSBTUFMgYW5kIFZQUyBpZCBmcm9tIFNQUyBzbGljZS4iOwor
ICAgICAgICB9CisgICAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIuZnJhbWVfdHlw
ZSA9IFZpZGVvRnJhbWVUeXBlOjprVmlkZW9GcmFtZUtleTsKKyAgICAgICAgYnJlYWs7CisgICAg
ICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUHBzOiB7CisgICAgICAgIHVpbnQzMl90
IHBwc19pZDsKKyAgICAgICAgdWludDMyX3Qgc3BzX2lkOworICAgICAgICBpZiAoSDI2NVBwc1Bh
cnNlcjo6UGFyc2VQcHNJZHMoJnBheWxvYWRfZGF0YVtzdGFydF9vZmZzZXRdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX29mZnNldCAtIHN0YXJ0X29mZnNldCwg
JnBwc19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzcHNfaWQp
KSB7CisgICAgICAgICAgbmFsdS5wcHNfaWQgPSBwcHNfaWQ7CisgICAgICAgICAgbmFsdS5zcHNf
aWQgPSBzcHNfaWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJO
SU5HKQorICAgICAgICAgICAgICA8PCAiRmFpbGVkIHRvIHBhcnNlIFBQUyBpZCBhbmQgU1BTIGlk
IGZyb20gUFBTIHNsaWNlLiI7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICB9Cisg
ICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprSWRyV1JhZGw6CisgICAgICBjYXNlIEgyNjU6Ok5h
bHVUeXBlOjprSWRyTkxwOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0NyYToKKyAgICAg
ICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0gVmlkZW9GcmFtZVR5
cGU6OmtWaWRlb0ZyYW1lS2V5OworICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1RyYWlsTjoK
KyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtUcmFpbFI6IHsKKyAgICAgICAgYWJzbDo6b3B0
aW9uYWw8dWludDMyX3Q+IHBwc19pZCA9CisgICAgICAgICAgICBIMjY1UHBzUGFyc2VyOjpQYXJz
ZVBwc0lkRnJvbVNsaWNlU2VnbWVudExheWVyUmJzcCgKKyAgICAgICAgICAgICAgICAmcGF5bG9h
ZF9kYXRhW3N0YXJ0X29mZnNldF0sIGVuZF9vZmZzZXQgLSBzdGFydF9vZmZzZXQsCisgICAgICAg
ICAgICAgICAgbmFsdS50eXBlKTsKKyAgICAgICAgaWYgKHBwc19pZCkgeworICAgICAgICAgIG5h
bHUucHBzX2lkID0gKnBwc19pZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBSVENfTE9H
KExTX1dBUk5JTkcpIDw8ICJGYWlsZWQgdG8gcGFyc2UgUFBTIGlkIGZyb20gc2xpY2Ugb2YgdHlw
ZTogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8aW50Pihu
YWx1LnR5cGUpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgLy8g
U2xpY2VzIGJlbG93IGRvbid0IGNvbnRhaW4gU1BTIG9yIFBQUyBpZHMuCisgICAgICBjYXNlIEgy
NjU6Ok5hbHVUeXBlOjprQXVkOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1RzYU46Cisg
ICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprVHNhUjoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5
cGU6OmtTdHNhTjoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtTdHNhUjoKKyAgICAgIGNh
c2UgSDI2NTo6TmFsdVR5cGU6OmtSYWRsTjoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtS
YWRsUjoKKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtCbGFXTHA6CisgICAgICBjYXNlIEgy
NjU6Ok5hbHVUeXBlOjprQmxhV1JhZGw6CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprUHJl
Zml4U2VpOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1N1ZmZpeFNlaToKKyAgICAgICAg
YnJlYWs7CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprQVA6CisgICAgICBjYXNlIEgyNjU6
Ok5hbHVUeXBlOjprRlU6CisgICAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIlVuZXhwZWN0
ZWQgQVAgb3IgRlUgcmVjZWl2ZWQuIjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwor
ICAgIGlmIChoMjY1X2hlYWRlci5uYWx1c19sZW5ndGggPT0ga01heE5hbHVzUGVyUGFja2V0KSB7
CisgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAgICAgICAgPDwgIlJlY2VpdmVkIHBhY2tl
dCBjb250YWluaW5nIG1vcmUgdGhhbiAiIDw8IGtNYXhOYWx1c1BlclBhY2tldAorICAgICAgICAg
IDw8ICIgTkFMIHVuaXRzLiBXaWxsIG5vdCBrZWVwIHRyYWNrIHNwcyBhbmQgcHBzIGlkcyBmb3Ig
YWxsIG9mIHRoZW0uIjsKKyAgICB9IGVsc2UgeworICAgICAgaDI2NV9oZWFkZXIubmFsdXNbaDI2
NV9oZWFkZXIubmFsdXNfbGVuZ3RoKytdID0gbmFsdTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHRy
dWU7Cit9CisKK2Jvb2wgVmlkZW9SdHBEZXBhY2tldGl6ZXJIMjY1OjpQYXJzZUZ1TmFsdSgKKyAg
ICBQYXJzZWRSdHBQYXlsb2FkKiBwYXJzZWRfcGF5bG9hZCwKKyAgICBjb25zdCB1aW50OF90KiBw
YXlsb2FkX2RhdGEpIHsKKyAgaWYgKGxlbmd0aF8gPCBrSGV2Y0Z1SGVhZGVyU2l6ZSArIGtIZXZj
TmFsSGVhZGVyU2l6ZSkgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGVSBOQUwgdW5pdHMg
dHJ1bmNhdGVkLiI7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIHVpbnQ4X3QgZiA9IHBheWxv
YWRfZGF0YVswXSAmIGtIZXZjRkJpdDsKKyAgdWludDhfdCBsYXllcl9pZF9oID0gcGF5bG9hZF9k
YXRhWzBdICYga0hldmNMYXllcklESE1hc2s7CisgIHVpbnQ4X3QgbGF5ZXJfaWRfbF91bnNoaWZ0
ZWQgPSBwYXlsb2FkX2RhdGFbMV0gJiBrSGV2Y0xheWVySURMTWFzazsKKyAgdWludDhfdCB0aWQg
PSBwYXlsb2FkX2RhdGFbMV0gJiBrSGV2Y1RJRE1hc2s7CisKKyAgdWludDhfdCBvcmlnaW5hbF9u
YWxfdHlwZSA9IHBheWxvYWRfZGF0YVsyXSAmIGtIZXZjVHlwZU1hc2tJbkZ1SGVhZGVyOworICBi
b29sIGZpcnN0X2ZyYWdtZW50ID0gcGF5bG9hZF9kYXRhWzJdICYga0hldmNTQml0OworICBIMjY1
TmFsdUluZm8gbmFsdTsKKyAgbmFsdS50eXBlID0gb3JpZ2luYWxfbmFsX3R5cGU7CisgIG5hbHUu
dnBzX2lkID0gLTE7CisgIG5hbHUuc3BzX2lkID0gLTE7CisgIG5hbHUucHBzX2lkID0gLTE7Cisg
IGlmIChmaXJzdF9mcmFnbWVudCkgeworICAgIG9mZnNldF8gPSAxOworICAgIGxlbmd0aF8gLT0g
MTsKKyAgICBhYnNsOjpvcHRpb25hbDx1aW50MzJfdD4gcHBzX2lkID0KKyAgICAgICAgSDI2NVBw
c1BhcnNlcjo6UGFyc2VQcHNJZEZyb21TbGljZVNlZ21lbnRMYXllclJic3AoCisgICAgICAgICAg
ICBwYXlsb2FkX2RhdGEgKyBrSGV2Y05hbEhlYWRlclNpemUgKyBrSGV2Y0Z1SGVhZGVyU2l6ZSwK
KyAgICAgICAgICAgIGxlbmd0aF8gLSBrSGV2Y0Z1SGVhZGVyU2l6ZSwgbmFsdS50eXBlKTsKKyAg
ICBpZiAocHBzX2lkKSB7CisgICAgICBuYWx1LnBwc19pZCA9ICpwcHNfaWQ7CisgICAgfSBlbHNl
IHsKKyAgICAgIFJUQ19MT0coTFNfV0FSTklORykKKyAgICAgICAgICA8PCAiRmFpbGVkIHRvIHBh
cnNlIFBQUyBmcm9tIGZpcnN0IGZyYWdtZW50IG9mIEZVIE5BTCAiCisgICAgICAgICAgICAgInVu
aXQgd2l0aCBvcmlnaW5hbCB0eXBlOiAiCisgICAgICAgICAgPDwgc3RhdGljX2Nhc3Q8aW50Pihu
YWx1LnR5cGUpOworICAgIH0KKyAgICB1aW50OF90KiBwYXlsb2FkID0gY29uc3RfY2FzdDx1aW50
OF90Kj4ocGF5bG9hZF9kYXRhICsgb2Zmc2V0Xyk7CisgICAgcGF5bG9hZFswXSA9IGYgfCBvcmln
aW5hbF9uYWxfdHlwZSA8PCAxIHwgbGF5ZXJfaWRfaDsKKyAgICBwYXlsb2FkWzFdID0gbGF5ZXJf
aWRfbF91bnNoaWZ0ZWQgfCB0aWQ7CisgIH0gZWxzZSB7CisgICAgb2Zmc2V0XyA9IGtIZXZjTmFs
SGVhZGVyU2l6ZSArIGtIZXZjRnVIZWFkZXJTaXplOworICAgIGxlbmd0aF8gLT0gKGtIZXZjTmFs
SGVhZGVyU2l6ZSArIGtIZXZjRnVIZWFkZXJTaXplKTsKKyAgfQorCisgIGlmIChvcmlnaW5hbF9u
YWxfdHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0lkcldSYWRsCisgICAgICB8fCBvcmlnaW5hbF9u
YWxfdHlwZSA9PSBIMjY1OjpOYWx1VHlwZTo6a0lkck5McAorICAgICAgfHwgb3JpZ2luYWxfbmFs
X3R5cGUgPT0gSDI2NTo6TmFsdVR5cGU6OmtDcmEpIHsKKyAgICBwYXJzZWRfcGF5bG9hZC0+dmlk
ZW9faGVhZGVyLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVvRnJhbWVLZXk7Cisg
IH0gZWxzZSB7CisgICAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5mcmFtZV90eXBlID0g
VmlkZW9GcmFtZVR5cGU6OmtWaWRlb0ZyYW1lRGVsdGE7CisgIH0KKyAgcGFyc2VkX3BheWxvYWQt
PnZpZGVvX2hlYWRlci53aWR0aCA9IDA7CisgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19oZWFkZXIu
aGVpZ2h0ID0gMDsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5jb2RlYyA9IGtWaWRl
b0NvZGVjSDI2NTsKKyAgcGFyc2VkX3BheWxvYWQtPnZpZGVvX2hlYWRlci5pc19maXJzdF9wYWNr
ZXRfaW5fZnJhbWUgPSBmaXJzdF9mcmFnbWVudDsKKyAgYXV0byYgaDI2NV9oZWFkZXIgPSBhYnNs
OjpnZXQ8UlRQVmlkZW9IZWFkZXJIMjY1PigKKyAgICAgIHBhcnNlZF9wYXlsb2FkLT52aWRlb19o
ZWFkZXIudmlkZW9fdHlwZV9oZWFkZXIpOworICBoMjY1X2hlYWRlci5wYWNrZXRpemF0aW9uX3R5
cGUgPSBrSDI2NUZVOworICBoMjY1X2hlYWRlci5uYWx1X3R5cGUgPSBvcmlnaW5hbF9uYWxfdHlw
ZTsKKyAgaWYgKGZpcnN0X2ZyYWdtZW50KSB7CisgICAgaDI2NV9oZWFkZXIubmFsdXNbaDI2NV9o
ZWFkZXIubmFsdXNfbGVuZ3RoXSA9IG5hbHU7CisgICAgaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3Ro
ID0gMTsKKyAgfQorICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0Ywpk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfZm9y
bWF0X2gyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTVmNmViYmVkNDEzZmUzNjE3M2U3YWE3ZDdhMTYxYmZh
NGViNGU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zvcm1hdF9oMjY1LmgKQEAg
LTAsMCArMSwxMzEgQEAKKy8qCisgKiAgSW50ZWwgTGljZW5zZQorICogU2VlIGh0dHBzOi8vMDEu
b3JnL29wZW4td2VicnRjLXRvb2xraXQKKyAqIFRoaXMgaXMgcmVsZWFzZWQgdW5kZXIgQXBhY2hl
IExpY2Vuc2UgMi4wIGFuZCBpdCBpcyBmcmVlIGZvciBib3RoIGFjYWRlbWljIGFuZCBjb21tZXJj
aWFsIHVzZS4KKyAqLworCisjaWZuZGVmIFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9S
VFBfRk9STUFUX0gyNjVfSF8KKyNkZWZpbmUgV0VCUlRDX01PRFVMRVNfUlRQX1JUQ1BfU09VUkNF
X1JUUF9GT1JNQVRfSDI2NV9IXworCisjaW5jbHVkZSA8cXVldWU+CisjaW5jbHVkZSA8c3RyaW5n
PgorI2luY2x1ZGUgImFwaS9hcnJheV92aWV3LmgiCisjaW5jbHVkZSAibW9kdWxlcy9pbmNsdWRl
L21vZHVsZV9jb21tb25fdHlwZXMuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJj
ZS9ydHBfZm9ybWF0LmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3Bh
Y2tldF90b19zZW5kLmgiCisjaW5jbHVkZSAibW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX2Zv
cm1hdC5oIgorI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3ZpZGVvX3J0cF9kZXBh
Y2tldGl6ZXIuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9p
bmNsdWRlL2gyNjVfZ2xvYmFscy5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2J1ZmZlci5oIgorI2lu
Y2x1ZGUgInJ0Y19iYXNlL2NvbnN0cnVjdG9yX21hZ2ljLmgiCisKK25hbWVzcGFjZSB3ZWJydGMg
eworCitjbGFzcyBSdHBQYWNrZXRpemVySDI2NSA6IHB1YmxpYyBSdHBQYWNrZXRpemVyIHsKKyBw
dWJsaWM6CisgIC8vIEluaXRpYWxpemUgd2l0aCBwYXlsb2FkIGZyb20gZW5jb2Rlci4KKyAgLy8g
VGhlIHBheWxvYWRfZGF0YSBtdXN0IGJlIGV4YWN0bHkgb25lIGVuY29kZWQgSC4yNjUgZnJhbWUu
CisgIFJ0cFBhY2tldGl6ZXJIMjY1KHJ0Yzo6QXJyYXlWaWV3PGNvbnN0IHVpbnQ4X3Q+IHBheWxv
YWQsCisgICAgICAgICAgICAgICAgICAgIFBheWxvYWRTaXplTGltaXRzIGxpbWl0cywKKyAgICAg
ICAgICAgICAgICAgICAgSDI2NVBhY2tldGl6YXRpb25Nb2RlIHBhY2tldGl6YXRpb25fbW9kZSwK
KyAgICAgICAgICAgICAgICAgICAgY29uc3QgUlRQRnJhZ21lbnRhdGlvbkhlYWRlciYgZnJhZ21l
bnRhdGlvbik7CisKKyAgIH5SdHBQYWNrZXRpemVySDI2NSgpIG92ZXJyaWRlOworCisgIHNpemVf
dCBOdW1QYWNrZXRzKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgLy8gR2V0IHRoZSBuZXh0IHBheWxv
YWQgd2l0aCBILjI2NSBwYXlsb2FkIGhlYWRlci4KKyAgLy8gYnVmZmVyIGlzIGEgcG9pbnRlciB0
byB3aGVyZSB0aGUgb3V0cHV0IHdpbGwgYmUgd3JpdHRlbi4KKyAgLy8gYnl0ZXNfdG9fc2VuZCBp
cyBhbiBvdXRwdXQgdmFyaWFibGUgdGhhdCB3aWxsIGNvbnRhaW4gbnVtYmVyIG9mIGJ5dGVzCisg
IC8vIHdyaXR0ZW4gdG8gYnVmZmVyLiBUaGUgcGFyYW1ldGVyIGxhc3RfcGFja2V0IGlzIHRydWUg
Zm9yIHRoZSBsYXN0IHBhY2tldCBvZgorICAvLyB0aGUgZnJhbWUsIGZhbHNlIG90aGVyd2lzZSAo
aS5lLiwgY2FsbCB0aGUgZnVuY3Rpb24gYWdhaW4gdG8gZ2V0IHRoZQorICAvLyBuZXh0IHBhY2tl
dCkuCisgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzIG9yIGZhbHNlIGlmIHRoZXJlIHdhcyBu
byBwYXlsb2FkIHRvIHBhY2tldGl6ZS4KKyAgYm9vbCBOZXh0UGFja2V0KFJ0cFBhY2tldFRvU2Vu
ZCogcnRwX3BhY2tldCkgb3ZlcnJpZGU7CisKKyBwcml2YXRlOgorICBzdHJ1Y3QgUGFja2V0IHsK
KyAgICBQYWNrZXQoc2l6ZV90IG9mZnNldCwKKyAgICAgICAgICAgc2l6ZV90IHNpemUsCisgICAg
ICAgICAgIGJvb2wgZmlyc3RfZnJhZ21lbnQsCisgICAgICAgICAgIGJvb2wgbGFzdF9mcmFnbWVu
dCwKKyAgICAgICAgICAgYm9vbCBhZ2dyZWdhdGVkLAorICAgICAgICAgICB1aW50MTZfdCBoZWFk
ZXIpCisgICAgICAgIDogb2Zmc2V0KG9mZnNldCksCisgICAgICAgICAgc2l6ZShzaXplKSwKKyAg
ICAgICAgICBmaXJzdF9mcmFnbWVudChmaXJzdF9mcmFnbWVudCksCisgICAgICAgICAgbGFzdF9m
cmFnbWVudChsYXN0X2ZyYWdtZW50KSwKKyAgICAgICAgICBhZ2dyZWdhdGVkKGFnZ3JlZ2F0ZWQp
LAorICAgICAgICAgIGhlYWRlcihoZWFkZXIpIHt9CisKKyAgICBzaXplX3Qgb2Zmc2V0OworICAg
IHNpemVfdCBzaXplOworICAgIGJvb2wgZmlyc3RfZnJhZ21lbnQ7CisgICAgYm9vbCBsYXN0X2Zy
YWdtZW50OworICAgIGJvb2wgYWdncmVnYXRlZDsKKyAgICB1aW50MTZfdCBoZWFkZXI7ICAvLyBE
aWZmZXJlbnQgZnJvbSBIMjY0CisgIH07CisgIHN0cnVjdCBGcmFnbWVudCB7CisgICAgRnJhZ21l
bnQoY29uc3QgdWludDhfdCogYnVmZmVyLCBzaXplX3QgbGVuZ3RoKTsKKyAgICBleHBsaWNpdCBG
cmFnbWVudChjb25zdCBGcmFnbWVudCYgZnJhZ21lbnQpOworICAgIGNvbnN0IHVpbnQ4X3QqIGJ1
ZmZlciA9IG51bGxwdHI7CisgICAgc2l6ZV90IGxlbmd0aCA9IDA7CisgICAgc3RkOjp1bmlxdWVf
cHRyPHJ0Yzo6QnVmZmVyPiB0bXBfYnVmZmVyOworICB9OworICBzdHJ1Y3QgUGFja2V0VW5pdCB7
CisgICAgUGFja2V0VW5pdChjb25zdCBGcmFnbWVudCYgc291cmNlX2ZyYWdtZW50LAorICAgICAg
ICAgICAgICAgYm9vbCBmaXJzdF9mcmFnbWVudCwKKyAgICAgICAgICAgICAgIGJvb2wgbGFzdF9m
cmFnbWVudCwKKyAgICAgICAgICAgICAgIGJvb2wgYWdncmVnYXRlZCwKKyAgICAgICAgICAgICAg
IHVpbnQxNl90IGhlYWRlcikKKyAgICAgICAgOiBzb3VyY2VfZnJhZ21lbnQoc291cmNlX2ZyYWdt
ZW50KSwKKyAgICAgICAgICBmaXJzdF9mcmFnbWVudChmaXJzdF9mcmFnbWVudCksCisgICAgICAg
ICAgbGFzdF9mcmFnbWVudChsYXN0X2ZyYWdtZW50KSwKKyAgICAgICAgICBhZ2dyZWdhdGVkKGFn
Z3JlZ2F0ZWQpLAorICAgICAgICAgIGhlYWRlcihoZWFkZXIpIHt9CisKKyAgICBjb25zdCBGcmFn
bWVudCBzb3VyY2VfZnJhZ21lbnQ7CisgICAgYm9vbCBmaXJzdF9mcmFnbWVudDsKKyAgICBib29s
IGxhc3RfZnJhZ21lbnQ7CisgICAgYm9vbCBhZ2dyZWdhdGVkOworICAgIHVpbnQxNl90IGhlYWRl
cjsKKyAgfTsKKyAgdHlwZWRlZiBzdGQ6OnF1ZXVlPFBhY2tldD4gUGFja2V0UXVldWU7CisgIHN0
ZDo6ZGVxdWU8RnJhZ21lbnQ+IGlucHV0X2ZyYWdtZW50c187CisgIHN0ZDo6cXVldWU8UGFja2V0
VW5pdD4gcGFja2V0c187CisKKyAgYm9vbCBHZW5lcmF0ZVBhY2tldHMoSDI2NVBhY2tldGl6YXRp
b25Nb2RlIHBhY2tldGl6YXRpb25fbW9kZSk7CisgIGJvb2wgUGFja2V0aXplRnUoc2l6ZV90IGZy
YWdtZW50X2luZGV4KTsKKyAgaW50IFBhY2tldGl6ZUFwKHNpemVfdCBmcmFnbWVudF9pbmRleCk7
CisgIGJvb2wgUGFja2V0aXplU2luZ2xlTmFsdShzaXplX3QgZnJhZ21lbnRfaW5kZXgpOworCisg
IHZvaWQgTmV4dEFnZ3JlZ2F0ZVBhY2tldChSdHBQYWNrZXRUb1NlbmQqIHJ0cF9wYWNrZXQsIGJv
b2wgbGFzdCk7CisgIHZvaWQgTmV4dEZyYWdtZW50UGFja2V0KFJ0cFBhY2tldFRvU2VuZCogcnRw
X3BhY2tldCk7CisKKyAgY29uc3QgUGF5bG9hZFNpemVMaW1pdHMgbGltaXRzXzsKKyAgc2l6ZV90
IG51bV9wYWNrZXRzX2xlZnRfOworICBSVFBGcmFnbWVudGF0aW9uSGVhZGVyIGZyYWdtZW50YXRp
b25fOworCisgIFJUQ19ESVNBTExPV19DT1BZX0FORF9BU1NJR04oUnRwUGFja2V0aXplckgyNjUp
OworfTsKKworLy8gRGVwYWNrZXRpemVyIGZvciBILjI2NS4KK2NsYXNzIFZpZGVvUnRwRGVwYWNr
ZXRpemVySDI2NSA6IHB1YmxpYyBWaWRlb1J0cERlcGFja2V0aXplciB7CisgcHVibGljOgorICB2
aXJ0dWFsIH5WaWRlb1J0cERlcGFja2V0aXplckgyNjUoKSB7fQorCisgIGFic2w6Om9wdGlvbmFs
PFBhcnNlZFJ0cFBheWxvYWQ+IFBhcnNlKAorICAgICAgICAgICAgIHJ0Yzo6Q29weU9uV3JpdGVC
dWZmZXIgcnRwX3BheWxvYWQpIG92ZXJyaWRlOworCisgcHJpdmF0ZToKKyAgYm9vbCBQYXJzZUZ1
TmFsdShQYXJzZWRSdHBQYXlsb2FkKiBwYXJzZWRfcGF5bG9hZCwKKyAgICAgICAgICAgICAgICAg
ICBjb25zdCB1aW50OF90KiBwYXlsb2FkX2RhdGEpOworICBib29sIFByb2Nlc3NBcE9yU2luZ2xl
TmFsdShQYXJzZWRSdHBQYXlsb2FkKiBwYXJzZWRfcGF5bG9hZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgdWludDhfdCogcGF5bG9hZF9kYXRhKTsKKworICBzaXplX3Qgb2Zm
c2V0XzsKKyAgc2l6ZV90IGxlbmd0aF87CisgIHN0ZDo6dW5pcXVlX3B0cjxydGM6OkJ1ZmZlcj4g
bW9kaWZpZWRfYnVmZmVyXzsKK307Cit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisjZW5kaWYgIC8v
IFdFQlJUQ19NT0RVTEVTX1JUUF9SVENQX1NPVVJDRV9SVFBfRk9STUFUX0gyNjVfSF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
cnRwX3J0Y3Avc291cmNlL3J0cF9zZW5kZXJfdmlkZW8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfc2VuZGVy
X3ZpZGVvLmNjCmluZGV4IGVjNWNmOGZkMTMzMWRlNDVlM2U4ZTA4OWM1ODE0MzU0M2MzOTAwNmIu
LmUzM2M1NGI2ZWRhMzc0MGFlZDFiY2Q2MTdkNWFlNDczMjVjNmRhZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvcnRwX3J0Y3Av
c291cmNlL3J0cF9zZW5kZXJfdmlkZW8uY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3NlbmRlcl92aWRl
by5jYwpAQCAtNzk5LDYgKzc5OSw5IEBAIHVpbnQ4X3QgUlRQU2VuZGVyVmlkZW86OkdldFRlbXBv
cmFsSWQoY29uc3QgUlRQVmlkZW9IZWFkZXImIGhlYWRlcikgewogICAgICAgcmV0dXJuIHZwOS50
ZW1wb3JhbF9pZHg7CiAgICAgfQogICAgIHVpbnQ4X3Qgb3BlcmF0b3IoKShjb25zdCBSVFBWaWRl
b0hlYWRlckgyNjQmKSB7IHJldHVybiBrTm9UZW1wb3JhbElkeDsgfQorI2lmbmRlZiBESVNBQkxF
X0gyNjUKKyAgICB1aW50OF90IG9wZXJhdG9yKCkoY29uc3QgUlRQVmlkZW9IZWFkZXJIMjY1Jikg
eyByZXR1cm4ga05vVGVtcG9yYWxJZHg7IH0KKyNlbmRpZgogICAgIHVpbnQ4X3Qgb3BlcmF0b3Io
KShjb25zdCBSVFBWaWRlb0hlYWRlckxlZ2FjeUdlbmVyaWMmKSB7CiAgICAgICByZXR1cm4ga05v
VGVtcG9yYWxJZHg7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9ydHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRl
ci5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9y
dHBfcnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oCmluZGV4IDcxNGQxZWIwOGNjYjQ0ZGVl
ZDI3NzcwYWUxN2IwNDY1Y2M3YzU5ODAuLjU4NTJlNWUxYWQ3NDI3YjFlMjlhZjMyYWJhYmEwYjA4
YWFhMmZiZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvcnRwX3J0Y3Avc291cmNlL3J0cF92aWRlb19oZWFkZXIuaAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmgKQEAgLTI1LDYgKzI1LDkgQEAKICNpbmNsdWRlICJh
cGkvdmlkZW8vdmlkZW9fdGltaW5nLmgiCiAjaW5jbHVkZSAiY29tbW9uX3R5cGVzLmgiICAvLyBO
T0xJTlQoYnVpbGQvaW5jbHVkZSkKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2Rl
Y3MvaDI2NC9pbmNsdWRlL2gyNjRfZ2xvYmFscy5oIgorI2lmbmRlZiBESVNBQkxFX0gyNjUKKyNp
bmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xv
YmFscy5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL3Zw
OC9pbmNsdWRlL3ZwOF9nbG9iYWxzLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2Rpbmcv
Y29kZWNzL3ZwOS9pbmNsdWRlL3ZwOV9nbG9iYWxzLmgiCiAKQEAgLTM2LDExICszOSwyMCBAQCBz
dHJ1Y3QgUlRQVmlkZW9IZWFkZXJMZWdhY3lHZW5lcmljIHsKICAgdWludDE2X3QgcGljdHVyZV9p
ZDsKIH07CiAKKyNpZm5kZWYgRElTQUJMRV9IMjY1CiB1c2luZyBSVFBWaWRlb1R5cGVIZWFkZXIg
PSBhYnNsOjp2YXJpYW50PGFic2w6Om1vbm9zdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXJWUDgsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyVlA5LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSVFBWaWRlb0hlYWRlckgyNjQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVySDI2NSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXJMZWdhY3lH
ZW5lcmljPjsKKyNlbHNlCit1c2luZyBSVFBWaWRlb1R5cGVIZWFkZXIgPSBhYnNsOjp2YXJpYW50
PGFic2w6Om1vbm9zdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUlRQVmlkZW9IZWFkZXJWUDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJUUFZpZGVvSGVhZGVyVlA5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSVFBWaWRlb0hlYWRlckgyNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyTGVnYWN5R2VuZXJpYz47CisjZW5kaWYKIAog
c3RydWN0IFJUUFZpZGVvSGVhZGVyIHsKICAgc3RydWN0IEdlbmVyaWNEZXNjcmlwdG9ySW5mbyB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3ZpZGVvX2NvZGluZy9CVUlMRC5nbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL0JVSUxELmduCmluZGV4IGIyZDEw
YzlhYjY4YzJiYzlkNzI5ZGNkN2RmZWRhZGJiNDlkMWY2MzMuLjRjNzhhYWFjYzc3MTU5Njg3YjRj
NmJlMWEzNzc0MDg5OWExYThiMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL0JVSUxELmduCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29k
aW5nL0JVSUxELmduCkBAIC0xNCw2ICsxNCwxNCBAQCBydGNfbGlicmFyeSgiZW5jb2RlZF9mcmFt
ZSIpIHsKICAgICAiZW5jb2RlZF9mcmFtZS5jYyIsCiAgICAgImVuY29kZWRfZnJhbWUuaCIsCiAg
IF0KKworICBpZiAocnRjX3VzZV9oMjY1KSB7CisgICAgc291cmNlcyArPSBbCisgICAgICAiaDI2
NV92cHNfc3BzX3Bwc190cmFja2VyLmNjIiwKKyAgICAgICJoMjY1X3Zwc19zcHNfcHBzX3RyYWNr
ZXIuaCIsCisgICAgXQorICB9CisKICAgZGVwcyA9IFsKICAgICAiOmNvZGVjX2dsb2JhbHNfaGVh
ZGVycyIsCiAgICAgIjp2aWRlb19jb2RlY19pbnRlcmZhY2UiLApkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcv
Y29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2lu
Y2x1ZGUvaDI2NV9nbG9iYWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmMwZWVmMjM2Y2ZlODJkNTJlODNkZGU1
ZDIwODQ5YjhjY2Q4YmY4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy9oMjY1L2lu
Y2x1ZGUvaDI2NV9nbG9iYWxzLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqICBDb3B5cmlnaHQg
KGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0
eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGlu
IHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVj
dHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUg
UEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZv
dW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgor
ICovCisKKy8vIFRoaXMgZmlsZSBjb250YWlucyBjb2RlYyBkZXBlbmRlbnQgZGVmaW5pdGlvbnMg
dGhhdCBhcmUgbmVlZGVkIGluCisvLyBvcmRlciB0byBjb21waWxlIHRoZSBXZWJSVEMgY29kZWJh
c2UsIGV2ZW4gaWYgdGhpcyBjb2RlYyBpcyBub3QgdXNlZC4KKworI2lmbmRlZiBNT0RVTEVTX1ZJ
REVPX0NPRElOR19DT0RFQ1NfSDI2NV9JTkNMVURFX0gyNjVfR0xPQkFMU19IXworI2RlZmluZSBN
T0RVTEVTX1ZJREVPX0NPRElOR19DT0RFQ1NfSDI2NV9JTkNMVURFX0gyNjVfR0xPQkFMU19IXwor
CisjaWZuZGVmIERJU0FCTEVfSDI2NQorCisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2Rpbmcv
Y29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIKKworbmFtZXNwYWNlIHdlYnJ0YyB7
CisKKy8vIFRoZSBwYWNrZXRpemF0aW9uIHR5cGVzIHRoYXQgd2Ugc3VwcG9ydDogc2luZ2xlLCBh
Z2dyZWdhdGVkLCBhbmQgZnJhZ21lbnRlZC4KK2VudW0gSDI2NVBhY2tldGl6YXRpb25UeXBlcyB7
CisgIGtIMjY1U2luZ2xlTmFsdSwgIC8vIFRoaXMgcGFja2V0IGNvbnRhaW5zIGEgc2luZ2xlIE5B
TCB1bml0LgorICBrSDI2NUFQLCAgICAgICAgICAvLyBUaGlzIHBhY2tldCBjb250YWlucyBhZ2dy
ZWdhdGlvbiBQYWNrZXQuCisgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgcGFja2V0IGhh
cyBhbiBhc3NvY2lhdGVkIE5BTCB1bml0IHR5cGUsCisgICAgICAgICAgICAgICAgICAgIC8vIGl0
J2xsIGJlIGZvciB0aGUgZmlyc3Qgc3VjaCBhZ2dyZWdhdGVkIHBhY2tldC4KKyAga0gyNjVGVSwg
ICAgICAgICAgLy8gVGhpcyBwYWNrZXQgY29udGFpbnMgYSBGVSAoZnJhZ21lbnRhdGlvbgorICAg
ICAgICAgICAgICAgICAgICAvLyB1bml0KSBwYWNrZXQsIG1lYW5pbmcgaXQgaXMgYSBwYXJ0IG9m
IGEgZnJhbWUKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCB3YXMgdG9vIGxhcmdlIHRvIGZp
dCBpbnRvIGEgc2luZ2xlIHBhY2tldC4KK307CisKK3N0cnVjdCBIMjY1TmFsdUluZm8geworICB1
aW50OF90IHR5cGU7CisgIGludCB2cHNfaWQ7CisgIGludCBzcHNfaWQ7CisgIGludCBwcHNfaWQ7
Cit9OworCitlbnVtIGNsYXNzIEgyNjVQYWNrZXRpemF0aW9uTW9kZSB7CisgIE5vbkludGVybGVh
dmVkID0gMCwgIC8vIE1vZGUgMSAtIFNUQVAtQSwgRlUtQSBpcyBhbGxvd2VkCisgIFNpbmdsZU5h
bFVuaXQgICAgICAgIC8vIE1vZGUgMCAtIG9ubHkgc2luZ2xlIE5BTFUgYWxsb3dlZAorfTsKKwor
c3RydWN0IFJUUFZpZGVvSGVhZGVySDI2NSB7CisgIC8vIFRoZSBOQUwgdW5pdCB0eXBlLiBJZiB0
aGlzIGlzIGEgaGVhZGVyIGZvciBhIGZyYWdtZW50ZWQgcGFja2V0LCBpdCdzIHRoZQorICAvLyBO
QUwgdW5pdCB0eXBlIG9mIHRoZSBvcmlnaW5hbCBkYXRhLiBJZiB0aGlzIGlzIHRoZSBoZWFkZXIg
Zm9yIGFuIGFnZ3JlZ2F0ZWQKKyAgLy8gcGFja2V0LCBpdCdzIHRoZSBOQUwgdW5pdCB0eXBlIG9m
IHRoZSBmaXJzdCBOQUwgdW5pdCBpbiB0aGUgcGFja2V0LgorICB1aW50OF90IG5hbHVfdHlwZTsK
KyAgSDI2NVBhY2tldGl6YXRpb25UeXBlcyBwYWNrZXRpemF0aW9uX3R5cGU7CisgIEgyNjVOYWx1
SW5mbyBuYWx1c1trTWF4TmFsdXNQZXJQYWNrZXRdOworICBzaXplX3QgbmFsdXNfbGVuZ3RoOwor
ICAvLyBUaGUgcGFja2V0aXphdGlvbiB0eXBlIG9mIHRoaXMgYnVmZmVyIC0gc2luZ2xlLCBhZ2dy
ZWdhdGVkIG9yIGZyYWdtZW50ZWQuCisgIEgyNjVQYWNrZXRpemF0aW9uTW9kZSBwYWNrZXRpemF0
aW9uX21vZGU7Cit9OworCit9ICAvLyBuYW1lc3BhY2Ugd2VicnRjCisKKyNlbmRpZgorCisjZW5k
aWYgIC8vIE1PRFVMRVNfVklERU9fQ09ESU5HX0NPREVDU19IMjY1X0lOQ0xVREVfSDI2NV9HTE9C
QUxTX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9lbmNvZGVkX2ZyYW1lLmNjIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvZW5jb2Rl
ZF9mcmFtZS5jYwppbmRleCAxZTllMzc0YzY0NGU4MzUxMzc2MGU2ZGJiMWE2NWYzMGU2NmQ3MmNj
Li41NDk4OTI2MDgyNTYxN2Y4YWUyNzRhYjVkZGNkNGM4ZGI1MTZlOTgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2Nv
ZGluZy9lbmNvZGVkX2ZyYW1lLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2VuY29kZWRfZnJhbWUuY2MKQEAgLTE1
MSw2ICsxNTEsMTIgQEAgdm9pZCBWQ01FbmNvZGVkRnJhbWU6OkNvcHlDb2RlY1NwZWNpZmljKGNv
bnN0IFJUUFZpZGVvSGVhZGVyKiBoZWFkZXIpIHsKICAgICAgICAgfQogICAgICAgICBicmVhazsK
ICAgICAgIH0KKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAgICBjYXNlIGtWaWRlb0NvZGVjSDI2
NTogeworICAgICAgICBfY29kZWNTcGVjaWZpY0luZm8uY29kZWNUeXBlID0ga1ZpZGVvQ29kZWNI
MjY1OworICAgICAgICBicmVhazsKKyAgICAgIH0KKyNlbmRpZgogICAgICAgZGVmYXVsdDogewog
ICAgICAgICBfY29kZWNTcGVjaWZpY0luZm8uY29kZWNUeXBlID0ga1ZpZGVvQ29kZWNHZW5lcmlj
OwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJh
Y2tlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
YWU2N2Q4OWFiOTNmNWMyZjljMGJjOGZkMzFjZmJiYjExODBmYzc3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRl
b19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjCkBAIC0wLDAgKzEsMzEyIEBACisv
KgorICogIENvcHlyaWdodCAoYykgMjAxOCBUaGUgV2ViUlRDIHByb2plY3QgYXV0aG9ycy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292
ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICogIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZQorICogIHRyZWUuIEFuIGFk
ZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBncmFudCBjYW4gYmUgZm91bmQK
KyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNvbnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhv
cnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhPUlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlIHRyZWUuCisgKi8KKworI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2gy
NjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oIgorCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUg
PHV0aWxpdHk+CisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaDI2NC9oMjY0X2NvbW1vbi5oIgor
I2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY1L2gyNjVfY29tbW9uLmgiCisjaW5jbHVkZSAiY29t
bW9uX3ZpZGVvL2gyNjUvaDI2NV9wcHNfcGFyc2VyLmgiCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVv
L2gyNjUvaDI2NV9zcHNfcGFyc2VyLmgiCisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2
NV92cHNfcGFyc2VyLmgiCisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gy
NjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGlu
Zy9jb2RlY3MvaDI2NS9pbmNsdWRlL2gyNjVfZ2xvYmFscy5oIgorI2luY2x1ZGUgIm1vZHVsZXMv
dmlkZW9fY29kaW5nL2ZyYW1lX29iamVjdC5oIgorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29k
aW5nL3BhY2tldF9idWZmZXIuaCIKKyNpbmNsdWRlICJydGNfYmFzZS9jaGVja3MuaCIKKyNpbmNs
dWRlICJydGNfYmFzZS9sb2dnaW5nLmgiCisKK25hbWVzcGFjZSB3ZWJydGMgeworbmFtZXNwYWNl
IHZpZGVvX2NvZGluZyB7CisKK25hbWVzcGFjZSB7Citjb25zdCB1aW50OF90IHN0YXJ0X2NvZGVf
aDI2NVtdID0gezAsIDAsIDAsIDF9OworfSAgLy8gbmFtZXNwYWNlCisKK0gyNjVWcHNTcHNQcHNU
cmFja2VyOjpGaXhlZEJpdHN0cmVhbSBIMjY1VnBzU3BzUHBzVHJhY2tlcjo6Q29weUFuZEZpeEJp
dHN0cmVhbShydGM6OkFycmF5Vmlldzxjb25zdCB1aW50OF90PiBiaXRzdHJlYW0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJUUFZpZGVvSGVhZGVyKiB2aWRlb19oZWFkZXJf
cG9pbnRlcikgeworICBjb25zdCB1aW50OF90KiBkYXRhID0gYml0c3RyZWFtLmRhdGEoKTsKKyAg
Y29uc3Qgc2l6ZV90IGRhdGFfc2l6ZSA9IGJpdHN0cmVhbS5zaXplKCk7CisgIFJUUFZpZGVvSGVh
ZGVyJiB2aWRlb19oZWFkZXIgPSAqdmlkZW9faGVhZGVyX3BvaW50ZXI7CisgIFJUQ19EQ0hFQ0so
dmlkZW9faGVhZGVyLmNvZGVjID09IGtWaWRlb0NvZGVjSDI2NCk7CisKKyAgYXV0byYgaDI2NV9o
ZWFkZXIgPQorICAgICAgYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVySDI2NT4odmlkZW9faGVhZGVy
LnZpZGVvX3R5cGVfaGVhZGVyKTsKKworICBib29sIGFwcGVuZF92cHNfc3BzX3BwcyA9IGZhbHNl
OworICBhdXRvIHZwcyA9IHZwc19kYXRhXy5lbmQoKTsKKyAgYXV0byBzcHMgPSBzcHNfZGF0YV8u
ZW5kKCk7CisgIGF1dG8gcHBzID0gcHBzX2RhdGFfLmVuZCgpOworCisgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoOyArK2kpIHsKKyAgICBjb25zdCBIMjY1
TmFsdUluZm8mIG5hbHUgPSBoMjY1X2hlYWRlci5uYWx1c1tpXTsKKyAgICBzd2l0Y2ggKG5hbHUu
dHlwZSkgeworICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a1ZwczogeworICAgICAgICB2cHNf
ZGF0YV9bbmFsdS52cHNfaWRdLnNpemUgPSAwOworICAgICAgICBicmVhazsKKyAgICAgIH0KKyAg
ICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtTcHM6IHsKKyAgICAgICAgc3BzX2RhdGFfW25hbHUu
c3BzX2lkXS52cHNfaWQgPSBuYWx1LnZwc19pZDsKKyAgICAgICAgc3BzX2RhdGFfW25hbHUuc3Bz
X2lkXS53aWR0aCA9IHZpZGVvX2hlYWRlci53aWR0aDsKKyAgICAgICAgc3BzX2RhdGFfW25hbHUu
c3BzX2lkXS5oZWlnaHQgPSB2aWRlb19oZWFkZXIuaGVpZ2h0OworICAgICAgICBicmVhazsKKyAg
ICAgIH0KKyAgICAgIGNhc2UgSDI2NTo6TmFsdVR5cGU6OmtQcHM6IHsKKyAgICAgICAgcHBzX2Rh
dGFfW25hbHUucHBzX2lkXS5zcHNfaWQgPSBuYWx1LnNwc19pZDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgICB9CisgICAgICBjYXNlIEgyNjU6Ok5hbHVUeXBlOjprSWRyV1JhZGw6CisgICAgICBjYXNl
IEgyNjU6Ok5hbHVUeXBlOjprSWRyTkxwOgorICAgICAgY2FzZSBIMjY1OjpOYWx1VHlwZTo6a0Ny
YTogeworICAgICAgICAvLyBJZiB0aGlzIGlzIHRoZSBmaXJzdCBwYWNrZXQgb2YgYW4gSURSLCBt
YWtlIHN1cmUgd2UgaGF2ZSB0aGUgcmVxdWlyZWQKKyAgICAgICAgLy8gU1BTL1BQUyBhbmQgYWxz
byBjYWxjdWxhdGUgaG93IG11Y2ggZXh0cmEgc3BhY2Ugd2UgbmVlZCBpbiB0aGUgYnVmZmVyCisg
ICAgICAgIC8vIHRvIHByZXBlbmQgdGhlIFNQUy9QUFMgdG8gdGhlIGJpdHN0cmVhbSB3aXRoIHN0
YXJ0IGNvZGVzLgorICAgICAgICBpZiAodmlkZW9faGVhZGVyLmlzX2ZpcnN0X3BhY2tldF9pbl9m
cmFtZSkgeworICAgICAgICAgIGlmIChuYWx1LnBwc19pZCA9PSAtMSkgeworICAgICAgICAgICAg
UlRDX0xPRyhMU19XQVJOSU5HKSA8PCAiTm8gUFBTIGlkIGluIElEUiBuYWx1LiI7CisgICAgICAg
ICAgICByZXR1cm4ge2tSZXF1ZXN0S2V5ZnJhbWV9OworICAgICAgICAgIH0KKworICAgICAgICAg
IHBwcyA9IHBwc19kYXRhXy5maW5kKG5hbHUucHBzX2lkKTsKKyAgICAgICAgICBpZiAocHBzID09
IHBwc19kYXRhXy5lbmQoKSkgeworICAgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKQorICAg
ICAgICAgICAgICAgIDw8ICJObyBQUFMgd2l0aCBpZCAiIDw8IG5hbHUucHBzX2lkIDw8ICIgcmVj
ZWl2ZWQiOworICAgICAgICAgICAgcmV0dXJuIHtrUmVxdWVzdEtleWZyYW1lfTsKKyAgICAgICAg
ICB9CisKKyAgICAgICAgICBzcHMgPSBzcHNfZGF0YV8uZmluZChwcHMtPnNlY29uZC5zcHNfaWQp
OworICAgICAgICAgIGlmIChzcHMgPT0gc3BzX2RhdGFfLmVuZCgpKSB7CisgICAgICAgICAgICBS
VENfTE9HKExTX1dBUk5JTkcpCisgICAgICAgICAgICAgICAgPDwgIk5vIFNQUyB3aXRoIGlkIDw8
ICIgPDwgcHBzLT5zZWNvbmQuc3BzX2lkIDw8ICIgcmVjZWl2ZWQiOworICAgICAgICAgICAgcmV0
dXJuIHtrUmVxdWVzdEtleWZyYW1lfTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB2cHMgPSB2
cHNfZGF0YV8uZmluZChzcHMtPnNlY29uZC52cHNfaWQpOworICAgICAgICAgIGlmICh2cHMgPT0g
dnBzX2RhdGFfLmVuZCgpKSB7CisgICAgICAgICAgICBSVENfTE9HKExTX1dBUk5JTkcpCisgICAg
ICAgICAgICAgICAgPDwgIk5vIFZQUyB3aXRoIGlkICIgPDwgc3BzLT5zZWNvbmQudnBzX2lkIDw8
ICIgcmVjZWl2ZWQiOworICAgICAgICAgICAgcmV0dXJuIHtrUmVxdWVzdEtleWZyYW1lfTsKKyAg
ICAgICAgICB9CisKKyAgICAgICAgICAvLyBTaW5jZSB0aGUgZmlyc3QgcGFja2V0IG9mIGV2ZXJ5
IGtleWZyYW1lIHNob3VsZCBoYXZlIGl0cyB3aWR0aCBhbmQKKyAgICAgICAgICAvLyBoZWlnaHQg
c2V0IHdlIHNldCBpdCBoZXJlIGluIHRoZSBjYXNlIG9mIGl0IGJlaW5nIHN1cHBsaWVkIG91dCBv
ZgorICAgICAgICAgIC8vIGJhbmQuCisgICAgICAgICAgdmlkZW9faGVhZGVyLndpZHRoID0gc3Bz
LT5zZWNvbmQud2lkdGg7CisgICAgICAgICAgdmlkZW9faGVhZGVyLmhlaWdodCA9IHNwcy0+c2Vj
b25kLmhlaWdodDsKKworICAgICAgICAgIC8vIElmIHRoZSBWUFMvU1BTL1BQUyB3YXMgc3VwcGxp
ZWQgb3V0IG9mIGJhbmQgdGhlbiB3ZSB3aWxsIGhhdmUgc2F2ZWQKKyAgICAgICAgICAvLyB0aGUg
YWN0dWFsIGJpdHN0cmVhbSBpbiB8ZGF0YXwuCisgICAgICAgICAgLy8gVGhpcyBicmFuY2ggaXMg
bm90IHZlcmlmaWVkLgorICAgICAgICAgIGlmICh2cHMtPnNlY29uZC5kYXRhICYmIHNwcy0+c2Vj
b25kLmRhdGEgJiYgcHBzLT5zZWNvbmQuZGF0YSkgeworICAgICAgICAgICAgUlRDX0RDSEVDS19H
VCh2cHMtPnNlY29uZC5zaXplLCAwKTsKKyAgICAgICAgICAgIFJUQ19EQ0hFQ0tfR1Qoc3BzLT5z
ZWNvbmQuc2l6ZSwgMCk7CisgICAgICAgICAgICBSVENfRENIRUNLX0dUKHBwcy0+c2Vjb25kLnNp
emUsIDApOworICAgICAgICAgICAgYXBwZW5kX3Zwc19zcHNfcHBzID0gdHJ1ZTsKKyAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKKyAgICB9CisgIH0KKworICBSVENfQ0hFQ0soIWFwcGVuZF92cHNfc3Bz
X3BwcyB8fAorICAgICAgICAgICAgKHNwcyAhPSBzcHNfZGF0YV8uZW5kKCkgJiYgcHBzICE9IHBw
c19kYXRhXy5lbmQoKSkpOworCisgIC8vIENhbGN1bGF0ZSBob3cgbXVjaCBzcGFjZSB3ZSBuZWVk
IGZvciB0aGUgcmVzdCBvZiB0aGUgYml0c3RyZWFtLgorICBzaXplX3QgcmVxdWlyZWRfc2l6ZSA9
IDA7CisKKyAgaWYgKGFwcGVuZF92cHNfc3BzX3BwcykgeworICAgIHJlcXVpcmVkX3NpemUgKz0g
dnBzLT5zZWNvbmQuc2l6ZSArIHNpemVvZihzdGFydF9jb2RlX2gyNjUpOworICAgIHJlcXVpcmVk
X3NpemUgKz0gc3BzLT5zZWNvbmQuc2l6ZSArIHNpemVvZihzdGFydF9jb2RlX2gyNjUpOworICAg
IHJlcXVpcmVkX3NpemUgKz0gcHBzLT5zZWNvbmQuc2l6ZSArIHNpemVvZihzdGFydF9jb2RlX2gy
NjUpOworICB9CisKKyAgaWYgKGgyNjVfaGVhZGVyLnBhY2tldGl6YXRpb25fdHlwZSA9PSBrSDI2
NUFQKSB7CisgICAgY29uc3QgdWludDhfdCogbmFsdV9wdHIgPSBkYXRhICsgMTsKKyAgICB3aGls
ZSAobmFsdV9wdHIgPCBkYXRhICsgZGF0YV9zaXplKSB7CisgICAgICBSVENfRENIRUNLKHZpZGVv
X2hlYWRlci5pc19maXJzdF9wYWNrZXRfaW5fZnJhbWUpOworICAgICAgcmVxdWlyZWRfc2l6ZSAr
PSBzaXplb2Yoc3RhcnRfY29kZV9oMjY1KTsKKworICAgICAgLy8gVGhlIGZpcnN0IHR3byBieXRl
cyBkZXNjcmliZSB0aGUgbGVuZ3RoIG9mIGEgc2VnbWVudC4KKyAgICAgIHVpbnQxNl90IHNlZ21l
bnRfbGVuZ3RoID0gbmFsdV9wdHJbMF0gPDwgOCB8IG5hbHVfcHRyWzFdOworICAgICAgbmFsdV9w
dHIgKz0gMjsKKworICAgICAgcmVxdWlyZWRfc2l6ZSArPSBzZWdtZW50X2xlbmd0aDsKKyAgICAg
IG5hbHVfcHRyICs9IHNlZ21lbnRfbGVuZ3RoOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICBpZiAo
dmlkZW9faGVhZGVyLmlzX2ZpcnN0X3BhY2tldF9pbl9mcmFtZSkKKyAgICAgIHJlcXVpcmVkX3Np
emUgKz0gc2l6ZW9mKHN0YXJ0X2NvZGVfaDI2NSk7CisgICAgcmVxdWlyZWRfc2l6ZSArPSBkYXRh
X3NpemU7CisgIH0KKworICAvLyBUaGVuIHdlIGNvcHkgdG8gdGhlIG5ldyBidWZmZXIuCisgIEZp
eGVkQml0c3RyZWFtIGZpeGVkOworICBmaXhlZC5iaXRzdHJlYW0uRW5zdXJlQ2FwYWNpdHkocmVx
dWlyZWRfc2l6ZSk7CisKKyAgaWYgKGFwcGVuZF92cHNfc3BzX3BwcykgeworICAgIC8vIEluc2Vy
dCBWUFMuCisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEoc3RhcnRfY29kZV9oMjY1KTsK
KyAgICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YSh2cHMtPnNlY29uZC5kYXRhLmdldCgpLCB2
cHMtPnNlY29uZC5zaXplKTsKKworICAgIC8vIEluc2VydCBTUFMuCisgICAgZml4ZWQuYml0c3Ry
ZWFtLkFwcGVuZERhdGEoc3RhcnRfY29kZV9oMjY1KTsKKyAgICBmaXhlZC5iaXRzdHJlYW0uQXBw
ZW5kRGF0YShzcHMtPnNlY29uZC5kYXRhLmdldCgpLCBzcHMtPnNlY29uZC5zaXplKTsKKworICAg
IC8vIEluc2VydCBQUFMuCisgICAgZml4ZWQuYml0c3RyZWFtLkFwcGVuZERhdGEoc3RhcnRfY29k
ZV9oMjY1KTsKKyAgICBmaXhlZC5iaXRzdHJlYW0uQXBwZW5kRGF0YShwcHMtPnNlY29uZC5kYXRh
LmdldCgpLCBwcHMtPnNlY29uZC5zaXplKTsKKworICAgIC8vIFVwZGF0ZSBjb2RlYyBoZWFkZXIg
dG8gcmVmbGVjdCB0aGUgbmV3bHkgYWRkZWQgU1BTIGFuZCBQUFMuCisgICAgSDI2NU5hbHVJbmZv
IHZwc19pbmZvOworICAgIHZwc19pbmZvLnR5cGUgPSBIMjY1OjpOYWx1VHlwZTo6a1ZwczsKKyAg
ICB2cHNfaW5mby52cHNfaWQgPSB2cHMtPmZpcnN0OworICAgIHZwc19pbmZvLnNwc19pZCA9IC0x
OworICAgIHZwc19pbmZvLnBwc19pZCA9IC0xOworICAgIEgyNjVOYWx1SW5mbyBzcHNfaW5mbzsK
KyAgICBzcHNfaW5mby50eXBlID0gSDI2NTo6TmFsdVR5cGU6OmtTcHM7CisgICAgc3BzX2luZm8u
dnBzX2lkID0gdnBzLT5maXJzdDsKKyAgICBzcHNfaW5mby5zcHNfaWQgPSBzcHMtPmZpcnN0Owor
ICAgIHNwc19pbmZvLnBwc19pZCA9IC0xOworICAgIEgyNjVOYWx1SW5mbyBwcHNfaW5mbzsKKyAg
ICBwcHNfaW5mby50eXBlID0gSDI2NTo6TmFsdVR5cGU6OmtQcHM7CisgICAgcHBzX2luZm8udnBz
X2lkID0gdnBzLT5maXJzdDsKKyAgICBwcHNfaW5mby5zcHNfaWQgPSBzcHMtPmZpcnN0OworICAg
IHBwc19pbmZvLnBwc19pZCA9IHBwcy0+Zmlyc3Q7CisgICAgaWYgKGgyNjVfaGVhZGVyLm5hbHVz
X2xlbmd0aCArIDIgPD0ga01heE5hbHVzUGVyUGFja2V0KSB7CisgICAgICBoMjY1X2hlYWRlci5u
YWx1c1toMjY1X2hlYWRlci5uYWx1c19sZW5ndGgrK10gPSB2cHNfaW5mbzsKKyAgICAgIGgyNjVf
aGVhZGVyLm5hbHVzW2gyNjVfaGVhZGVyLm5hbHVzX2xlbmd0aCsrXSA9IHNwc19pbmZvOworICAg
ICAgaDI2NV9oZWFkZXIubmFsdXNbaDI2NV9oZWFkZXIubmFsdXNfbGVuZ3RoKytdID0gcHBzX2lu
Zm87CisgICAgfSBlbHNlIHsKKyAgICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIk5vdCBlbm91
Z2ggc3BhY2UgaW4gSC4yNjUgY29kZWMgaGVhZGVyIHRvIGluc2VydCAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJTUFMvUFBTIHByb3ZpZGVkIG91dC1vZi1iYW5kLiI7CisgICAgfQor
ICB9CisKKyAgLy8gQ29weSB0aGUgcmVzdCBvZiB0aGUgYml0c3RyZWFtIGFuZCBpbnNlcnQgc3Rh
cnQgY29kZXMuCisgIGlmIChoMjY1X2hlYWRlci5wYWNrZXRpemF0aW9uX3R5cGUgPT0ga0gyNjVB
UCkgeworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfcHRyID0gZGF0YSArIDE7CisgICAgd2hpbGUg
KG5hbHVfcHRyIDwgZGF0YSArIGRhdGFfc2l6ZSkgeworICAgICAgZml4ZWQuYml0c3RyZWFtLkFw
cGVuZERhdGEoc3RhcnRfY29kZV9oMjY1KTsKKworICAgICAgLy8gVGhlIGZpcnN0IHR3byBieXRl
cyBkZXNjcmliZSB0aGUgbGVuZ3RoIG9mIGEgc2VnbWVudC4KKyAgICAgIHVpbnQxNl90IHNlZ21l
bnRfbGVuZ3RoID0gbmFsdV9wdHJbMF0gPDwgOCB8IG5hbHVfcHRyWzFdOworICAgICAgbmFsdV9w
dHIgKz0gMjsKKworICAgICAgc2l6ZV90IGNvcHlfZW5kID0gbmFsdV9wdHIgLSBkYXRhICsgc2Vn
bWVudF9sZW5ndGg7CisgICAgICBpZiAoY29weV9lbmQgPiBkYXRhX3NpemUpIHsKKyAgICAgICAg
cmV0dXJuIHtrRHJvcH07CisgICAgICB9CisKKyAgICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmRE
YXRhKG5hbHVfcHRyLCBzZWdtZW50X2xlbmd0aCk7CisgICAgICBuYWx1X3B0ciArPSBzZWdtZW50
X2xlbmd0aDsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgaWYgKHZpZGVvX2hlYWRlci5pc19maXJz
dF9wYWNrZXRfaW5fZnJhbWUpIHsKKyAgICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKHN0
YXJ0X2NvZGVfaDI2NSk7CisgICAgfQorICAgIGZpeGVkLmJpdHN0cmVhbS5BcHBlbmREYXRhKGJp
dHN0cmVhbS5kYXRhKCksIGJpdHN0cmVhbS5zaXplKCkpOworICB9CisKKyAgZml4ZWQuYWN0aW9u
ID0ga0luc2VydDsKKyAgcmV0dXJuIGZpeGVkOworfQorCit2b2lkIEgyNjVWcHNTcHNQcHNUcmFj
a2VyOjpJbnNlcnRWcHNTcHNQcHNOYWx1cygKKyAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90
PiYgdnBzLAorICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBzcHMsCisgICAgY29uc3Qg
c3RkOjp2ZWN0b3I8dWludDhfdD4mIHBwcykgeworICBjb25zdGV4cHIgc2l6ZV90IGtOYWx1SGVh
ZGVyT2Zmc2V0ID0gMTsKKyAgaWYgKHZwcy5zaXplKCkgPCBrTmFsdUhlYWRlck9mZnNldCkgewor
ICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIlZQUyBzaXplICAiIDw8IHZwcy5zaXplKCkgPDwg
IiBpcyBzbWFsbGVyIHRoYW4gIgorICAgICAgICAgICAgICAgICAgICAgICAgPDwga05hbHVIZWFk
ZXJPZmZzZXQ7CisgICAgcmV0dXJuOworICB9CisgIGlmICgodnBzWzBdICYgMHg3ZSkgPj4gMSAh
PSBIMjY1OjpOYWx1VHlwZTo6a1NwcykgeworICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIlNQ
UyBOYWx1IGhlYWRlciBtaXNzaW5nIjsKKyAgICByZXR1cm47CisgIH0KKyAgaWYgKHNwcy5zaXpl
KCkgPCBrTmFsdUhlYWRlck9mZnNldCkgeworICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIlNQ
UyBzaXplICAiIDw8IHNwcy5zaXplKCkgPDwgIiBpcyBzbWFsbGVyIHRoYW4gIgorICAgICAgICAg
ICAgICAgICAgICAgICAgPDwga05hbHVIZWFkZXJPZmZzZXQ7CisgICAgcmV0dXJuOworICB9Cisg
IGlmICgoc3BzWzBdICYgMHg3ZSkgPj4gMSAhPSBIMjY1OjpOYWx1VHlwZTo6a1NwcykgeworICAg
IFJUQ19MT0coTFNfV0FSTklORykgPDwgIlNQUyBOYWx1IGhlYWRlciBtaXNzaW5nIjsKKyAgICBy
ZXR1cm47CisgIH0KKyAgaWYgKHBwcy5zaXplKCkgPCBrTmFsdUhlYWRlck9mZnNldCkgeworICAg
IFJUQ19MT0coTFNfV0FSTklORykgPDwgIlBQUyBzaXplICAiIDw8IHBwcy5zaXplKCkgPDwgIiBp
cyBzbWFsbGVyIHRoYW4gIgorICAgICAgICAgICAgICAgICAgICAgICAgPDwga05hbHVIZWFkZXJP
ZmZzZXQ7CisgICAgcmV0dXJuOworICB9CisgIGlmICgocHBzWzBdICYgMHg3ZSkgPj4gMSAhPSBI
MjY1OjpOYWx1VHlwZTo6a1BwcykgeworICAgIFJUQ19MT0coTFNfV0FSTklORykgPDwgIlNQUyBO
YWx1IGhlYWRlciBtaXNzaW5nIjsKKyAgICByZXR1cm47CisgIH0KKyAgYWJzbDo6b3B0aW9uYWw8
SDI2NVZwc1BhcnNlcjo6VnBzU3RhdGU+IHBhcnNlZF92cHMgPSBIMjY1VnBzUGFyc2VyOjpQYXJz
ZVZwcygKKyAgICAgIHZwcy5kYXRhKCkgKyBrTmFsdUhlYWRlck9mZnNldCwgdnBzLnNpemUoKSAt
IGtOYWx1SGVhZGVyT2Zmc2V0KTsKKyAgYWJzbDo6b3B0aW9uYWw8SDI2NVNwc1BhcnNlcjo6U3Bz
U3RhdGU+IHBhcnNlZF9zcHMgPSBIMjY1U3BzUGFyc2VyOjpQYXJzZVNwcygKKyAgICAgIHNwcy5k
YXRhKCkgKyBrTmFsdUhlYWRlck9mZnNldCwgc3BzLnNpemUoKSAtIGtOYWx1SGVhZGVyT2Zmc2V0
KTsKKyAgYWJzbDo6b3B0aW9uYWw8SDI2NVBwc1BhcnNlcjo6UHBzU3RhdGU+IHBhcnNlZF9wcHMg
PSBIMjY1UHBzUGFyc2VyOjpQYXJzZVBwcygKKyAgICAgIHBwcy5kYXRhKCkgKyBrTmFsdUhlYWRl
ck9mZnNldCwgcHBzLnNpemUoKSAtIGtOYWx1SGVhZGVyT2Zmc2V0KTsKKworICBpZiAoIXBhcnNl
ZF92cHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJGYWlsZWQgdG8gcGFyc2UgVlBT
LiI7CisgIH0KKworICBpZiAoIXBhcnNlZF9zcHMpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcp
IDw8ICJGYWlsZWQgdG8gcGFyc2UgU1BTLiI7CisgIH0KKworICBpZiAoIXBhcnNlZF9wcHMpIHsK
KyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJGYWlsZWQgdG8gcGFyc2UgUFBTLiI7CisgIH0K
KworICBpZiAoIXBhcnNlZF92cHMgfHwgIXBhcnNlZF9wcHMgfHwgIXBhcnNlZF9zcHMpIHsKKyAg
ICByZXR1cm47CisgIH0KKworICBWcHNJbmZvIHZwc19pbmZvOworICB2cHNfaW5mby5zaXplID0g
dnBzLnNpemUoKTsKKyAgdWludDhfdCogdnBzX2RhdGEgPSBuZXcgdWludDhfdFt2cHNfaW5mby5z
aXplXTsKKyAgbWVtY3B5KHZwc19kYXRhLCB2cHMuZGF0YSgpLCB2cHNfaW5mby5zaXplKTsKKyAg
dnBzX2luZm8uZGF0YS5yZXNldCh2cHNfZGF0YSk7CisgIHZwc19kYXRhX1twYXJzZWRfdnBzLT5p
ZF0gPSBzdGQ6Om1vdmUodnBzX2luZm8pOworCisgIFNwc0luZm8gc3BzX2luZm87CisgIHNwc19p
bmZvLnNpemUgPSBzcHMuc2l6ZSgpOworICBzcHNfaW5mby53aWR0aCA9IHBhcnNlZF9zcHMtPndp
ZHRoOworICBzcHNfaW5mby5oZWlnaHQgPSBwYXJzZWRfc3BzLT5oZWlnaHQ7CisgIHNwc19pbmZv
LnZwc19pZCA9IHBhcnNlZF9zcHMtPnZwc19pZDsKKyAgdWludDhfdCogc3BzX2RhdGEgPSBuZXcg
dWludDhfdFtzcHNfaW5mby5zaXplXTsKKyAgbWVtY3B5KHNwc19kYXRhLCBzcHMuZGF0YSgpLCBz
cHNfaW5mby5zaXplKTsKKyAgc3BzX2luZm8uZGF0YS5yZXNldChzcHNfZGF0YSk7CisgIHNwc19k
YXRhX1twYXJzZWRfc3BzLT5pZF0gPSBzdGQ6Om1vdmUoc3BzX2luZm8pOworCisgIFBwc0luZm8g
cHBzX2luZm87CisgIHBwc19pbmZvLnNpemUgPSBwcHMuc2l6ZSgpOworICBwcHNfaW5mby5zcHNf
aWQgPSBwYXJzZWRfcHBzLT5zcHNfaWQ7CisgIHVpbnQ4X3QqIHBwc19kYXRhID0gbmV3IHVpbnQ4
X3RbcHBzX2luZm8uc2l6ZV07CisgIG1lbWNweShwcHNfZGF0YSwgcHBzLmRhdGEoKSwgcHBzX2lu
Zm8uc2l6ZSk7CisgIHBwc19pbmZvLmRhdGEucmVzZXQocHBzX2RhdGEpOworICBwcHNfZGF0YV9b
cGFyc2VkX3Bwcy0+aWRdID0gc3RkOjptb3ZlKHBwc19pbmZvKTsKKworICBSVENfTE9HKExTX0lO
Rk8pIDw8ICJJbnNlcnRlZCBTUFMgaWQgIiA8PCBwYXJzZWRfc3BzLT5pZCA8PCAiIGFuZCBQUFMg
aWQgIgorICAgICAgICAgICAgICAgICAgIDw8IHBhcnNlZF9wcHMtPmlkIDw8ICIgKHJlZmVyZW5j
aW5nIFNQUyAiCisgICAgICAgICAgICAgICAgICAgPDwgcGFyc2VkX3Bwcy0+c3BzX2lkIDw8ICIp
IjsKK30KKworfSAgLy8gbmFtZXNwYWNlIHZpZGVvX2NvZGluZworfSAgLy8gbmFtZXNwYWNlIHdl
YnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGlu
Zy9oMjY1X3Zwc19zcHNfcHBzX3RyYWNrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWM1ZTJhMDAxY2JkMjA2
ZmYzMTdjMmIwOWFlNjgwNmNmYjEyODAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NV92
cHNfc3BzX3Bwc190cmFja2VyLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqICBDb3B5cmlnaHQg
KGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
CisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0
eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGlu
IHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVj
dHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUg
UEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZv
dW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgor
ICovCisKKyNpZm5kZWYgTU9EVUxFU19WSURFT19DT0RJTkdfSDI2NV9WUFNfU1BTX1BQU19UUkFD
S0VSX0hfCisjZGVmaW5lIE1PRFVMRVNfVklERU9fQ09ESU5HX0gyNjVfVlBTX1NQU19QUFNfVFJB
Q0tFUl9IXworCisjaW5jbHVkZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8
bWVtb3J5PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgImFwaS9hcnJheV92aWV3Lmgi
CisjaW5jbHVkZSAibW9kdWxlcy9pbmNsdWRlL21vZHVsZV9jb21tb25fdHlwZXMuaCIKKyNpbmNs
dWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS9ydHBfdmlkZW9faGVhZGVyLmgiCisjaW5jbHVk
ZSAicnRjX2Jhc2UvY29weV9vbl93cml0ZV9idWZmZXIuaCIKKworbmFtZXNwYWNlIHdlYnJ0YyB7
CisKK2NsYXNzIFZDTVBhY2tldDsKKworbmFtZXNwYWNlIHZpZGVvX2NvZGluZyB7CisKK2NsYXNz
IEgyNjVWcHNTcHNQcHNUcmFja2VyIHsKKyBwdWJsaWM6CisgIGVudW0gUGFja2V0QWN0aW9uIHsg
a0luc2VydCwga0Ryb3AsIGtSZXF1ZXN0S2V5ZnJhbWUgfTsKKyAgc3RydWN0IEZpeGVkQml0c3Ry
ZWFtIHsKKyAgICBQYWNrZXRBY3Rpb24gYWN0aW9uOworICAgIHJ0Yzo6Q29weU9uV3JpdGVCdWZm
ZXIgYml0c3RyZWFtOworICB9OworCisgIC8vIFJldHVybnMgZml4ZWQgYml0c3RyZWFtIGFuZCBt
b2RpZmllcyB8dmlkZW9faGVhZGVyfC4KKyAgRml4ZWRCaXRzdHJlYW0gQ29weUFuZEZpeEJpdHN0
cmVhbShydGM6OkFycmF5Vmlldzxjb25zdCB1aW50OF90PiBiaXRzdHJlYW0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRQVmlkZW9IZWFkZXIqIHZpZGVvX2hlYWRlcik7
CisKKyAgdm9pZCBJbnNlcnRWcHNTcHNQcHNOYWx1cyhjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90
PiYgdnBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVp
bnQ4X3Q+JiBzcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0
b3I8dWludDhfdD4mIHBwcyk7CisKKyBwcml2YXRlOgorICBzdHJ1Y3QgVnBzSW5mbyB7CisgICAg
c2l6ZV90IHNpemUgPSAwOworICAgIHN0ZDo6dW5pcXVlX3B0cjx1aW50OF90W10+IGRhdGE7Cisg
IH07CisKKyAgc3RydWN0IFBwc0luZm8geworICAgIGludCBzcHNfaWQgPSAtMTsKKyAgICBzaXpl
X3Qgc2l6ZSA9IDA7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gZGF0YTsKKyAgfTsK
KworICBzdHJ1Y3QgU3BzSW5mbyB7CisgICAgaW50IHZwc19pZCA9IC0xOworICAgIHNpemVfdCBz
aXplID0gMDsKKyAgICBpbnQgd2lkdGggPSAtMTsKKyAgICBpbnQgaGVpZ2h0ID0gLTE7CisgICAg
c3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gZGF0YTsKKyAgfTsKKworICBzdGQ6Om1hcDx1aW50
MzJfdCwgVnBzSW5mbz4gdnBzX2RhdGFfOworICBzdGQ6Om1hcDx1aW50MzJfdCwgUHBzSW5mbz4g
cHBzX2RhdGFfOworICBzdGQ6Om1hcDx1aW50MzJfdCwgU3BzSW5mbz4gc3BzX2RhdGFfOworfTsK
KworfSAgLy8gbmFtZXNwYWNlIHZpZGVvX2NvZGluZworfSAgLy8gbmFtZXNwYWNlIHdlYnJ0Ywor
CisjZW5kaWYgIC8vIE1PRFVMRVNfVklERU9fQ09ESU5HX0gyNjRfU1BTX1BQU19UUkFDS0VSX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFjZS5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rp
bmcvaW5jbHVkZS92aWRlb19jb2RlY19pbnRlcmZhY2UuaAppbmRleCBjN2IxMTZmNGFlM2Y3MGFk
ZGI4N2YwYTg0MmFlYjNlMjgxZDI4NTQ3Li4zNjg0OTY2NjIzYWI4MDljMDU4ZDkwYmVhYjFkYzc4
Mjc2MGE0MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9pbmNsdWRlL3ZpZGVvX2NvZGVjX2ludGVyZmFj
ZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUvdmlkZW9fY29kZWNfaW50ZXJmYWNlLmgKQEAgLTIwLDYg
KzIwLDkgQEAKICNpbmNsdWRlICJjb21tb25fdmlkZW8vZ2VuZXJpY19mcmFtZV9kZXNjcmlwdG9y
L2dlbmVyaWNfZnJhbWVfaW5mby5oIgogI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVf
Y29tbW9uX3R5cGVzLmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gy
NjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisjaW5jbHVk
ZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMu
aCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2NvZGVjcy92cDkvaW5j
bHVkZS92cDlfZ2xvYmFscy5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1
ZGUvdmlkZW9fZXJyb3JfY29kZXMuaCIKICNpbmNsdWRlICJydGNfYmFzZS9zeXN0ZW0vcnRjX2V4
cG9ydC5oIgpAQCAtOTIsMTAgKzk1LDIwIEBAIHN0cnVjdCBDb2RlY1NwZWNpZmljSW5mb0gyNjQg
ewogfTsKIHN0YXRpY19hc3NlcnQoc3RkOjppc19wb2Q8Q29kZWNTcGVjaWZpY0luZm9IMjY0Pjo6
dmFsdWUsICIiKTsKIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK3N0cnVjdCBDb2RlY1NwZWNpZmlj
SW5mb0gyNjUgeworICBIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbl9tb2RlOwor
ICBib29sIGlkcl9mcmFtZTsKK307CisjZW5kaWYKKwogdW5pb24gQ29kZWNTcGVjaWZpY0luZm9V
bmlvbiB7CiAgIENvZGVjU3BlY2lmaWNJbmZvVlA4IFZQODsKICAgQ29kZWNTcGVjaWZpY0luZm9W
UDkgVlA5OwogICBDb2RlY1NwZWNpZmljSW5mb0gyNjQgSDI2NDsKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CisgIENvZGVjU3BlY2lmaWNJbmZvSDI2NSBIMjY1OworI2VuZGlmCiB9Owogc3RhdGljX2Fz
c2VydChzdGQ6OmlzX3BvZDxDb2RlY1NwZWNpZmljSW5mb1VuaW9uPjo6dmFsdWUsICIiKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy92aWRlb19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL2ppdHRlcl9i
dWZmZXJfY29tbW9uLmgKaW5kZXggNmNjZmUzOTE5OTU0ZjhkMDliYjUzN2U0YWQ5MTc2MWVmYTUx
YTA5Zi4uNTQ5MmVlNWI0MWYzNjBlN2M1YmM1MTEwNjA0MzdlYmRlZjkyM2MyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRl
b19jb2Rpbmcvaml0dGVyX2J1ZmZlcl9jb21tb24uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9qaXR0ZXJfYnVmZmVy
X2NvbW1vbi5oCkBAIC01NCw2ICs1NCw5IEBAIGVudW0gVkNNRnJhbWVCdWZmZXJTdGF0ZUVudW0g
ewogfTsKIAogZW51bSB7IGtIMjY0U3RhcnRDb2RlTGVuZ3RoQnl0ZXMgPSA0IH07CisjaWZuZGVm
IERJU0FCTEVfSDI2NQorZW51bSB7IGtIMjY1U3RhcnRDb2RlTGVuZ3RoQnl0ZXMgPSA0IH07Cisj
ZW5kaWYKIH0gIC8vIG5hbWVzcGFjZSB3ZWJydGMKIAogI2VuZGlmICAvLyBNT0RVTEVTX1ZJREVP
X0NPRElOR19KSVRURVJfQlVGRkVSX0NPTU1PTl9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2RpbmcvcGFja2V0
LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92
aWRlb19jb2RpbmcvcGFja2V0LmNjCmluZGV4IDBjNGE2NThiOGYyMDM0OTE2YzE4NTM0NmU0Yjgx
NDIyY2NmZThmOGYuLjFmOWY0YjUyNDZlZDVhNDcxMTQ1ZmRmM2JhNDhlNWMxNDNhMDRkNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL3BhY2tldC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXQuY2MKQEAgLTQ0LDgg
KzQ0LDEzIEBAIFZDTVBhY2tldDo6VkNNUGFja2V0KGNvbnN0IHVpbnQ4X3QqIHB0ciwKICAgICAg
IG1hcmtlckJpdChydHBfaGVhZGVyLm1hcmtlckJpdCksCiAgICAgICB0aW1lc05hY2tlZCgtMSks
CiAgICAgICBjb21wbGV0ZU5BTFUoa05hbHVJbmNvbXBsZXRlKSwKLSAgICAgIGluc2VydFN0YXJ0
Q29kZSh2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjQgJiYKKyNpZm5kZWYgRElT
QUJMRV9IMjY1CisgICAgICBpbnNlcnRTdGFydENvZGUoKHZpZGVvSGVhZGVyLmNvZGVjID09IGtW
aWRlb0NvZGVjSDI2NCB8fCB2aWRlb0hlYWRlci5jb2RlYyA9PSBrVmlkZW9Db2RlY0gyNjUpICYm
CiAgICAgICAgICAgICAgICAgICAgICAgdmlkZW9IZWFkZXIuaXNfZmlyc3RfcGFja2V0X2luX2Zy
YW1lKSwKKyNlbHNlCisgICAgICAgaW5zZXJ0U3RhcnRDb2RlKHZpZGVvSGVhZGVyLmNvZGVjID09
IGtWaWRlb0NvZGVjSDI2NCAmJgorICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0hlYWRlci5p
c19maXJzdF9wYWNrZXRfaW5fZnJhbWUpLAorI2VuZGlmCiAgICAgICB2aWRlb19oZWFkZXIodmlk
ZW9IZWFkZXIpLAogICAgICAgcGFja2V0X2luZm8ocnRwX2hlYWRlciwgcmVjZWl2ZV90aW1lX21z
KSB7CiAgIGlmIChpc19maXJzdF9wYWNrZXRfaW5fZnJhbWUoKSAmJiBtYXJrZXJCaXQpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvdmlkZW9fY29kaW5nL3BhY2tldF9idWZmZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9wYWNrZXRfYnVmZmVyLmNj
CmluZGV4IDRkZTYyN2VlNjMzNDFlMzAzOTgzZWJiNWRhYTg4NmFhZDY4YjMwODYuLjU1MTQxNDFh
NGMwY2ViNTg5N2M1YzcyNDg2NmNkMDk3ZGE2OWQwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3BhY2tl
dF9idWZmZXIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJy
dGMvbW9kdWxlcy92aWRlb19jb2RpbmcvcGFja2V0X2J1ZmZlci5jYwpAQCAtMjQsMTEgKzI0LDE3
IEBACiAjaW5jbHVkZSAiYXBpL3ZpZGVvL2VuY29kZWRfZnJhbWUuaCIKICNpbmNsdWRlICJhcGkv
dmlkZW8vdmlkZW9fZnJhbWVfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1vbl92aWRlby9oMjY0L2gy
NjRfY29tbW9uLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgImNvbW1vbl92aWRl
by9oMjY1L2gyNjVfY29tbW9uLmgiCisjZW5kaWYKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNw
L3NvdXJjZS9ydHBfaGVhZGVyX2V4dGVuc2lvbnMuaCIKICNpbmNsdWRlICJtb2R1bGVzL3J0cF9y
dGNwL3NvdXJjZS9ydHBfcGFja2V0X3JlY2VpdmVkLmgiCiAjaW5jbHVkZSAibW9kdWxlcy9ydHBf
cnRjcC9zb3VyY2UvcnRwX3ZpZGVvX2hlYWRlci5oIgogI2luY2x1ZGUgIm1vZHVsZXMvcnRwX3J0
Y3Avc291cmNlL3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXJfYXYxLmgiCiAjaW5jbHVkZSAibW9kdWxl
cy92aWRlb19jb2RpbmcvY29kZWNzL2gyNjQvaW5jbHVkZS9oMjY0X2dsb2JhbHMuaCIKKyNpZm5k
ZWYgRElTQUJMRV9IMjY1CisjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvY29kZWNzL2gy
NjUvaW5jbHVkZS9oMjY1X2dsb2JhbHMuaCIKKyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvdmlk
ZW9fY29kaW5nL2ZyYW1lX29iamVjdC5oIgogI2luY2x1ZGUgInJ0Y19iYXNlL2NoZWNrcy5oIgog
I2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKQEAgLTI4OSwxMiArMjk1LDIwIEBAIHN0ZDo6
dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxSdHBGcmFtZU9iamVjdD4+IFBhY2tldEJ1ZmZlcjo6Rmlu
ZEZyYW1lcygKICAgICAgIGJvb2wgaGFzX2gyNjRfcHBzID0gZmFsc2U7CiAgICAgICBib29sIGhh
c19oMjY0X2lkciA9IGZhbHNlOwogICAgICAgYm9vbCBpc19oMjY0X2tleWZyYW1lID0gZmFsc2U7
CisgICAgICBib29sIGlzX2gyNjUgPSBmYWxzZTsKKyNpZm5kZWYgRElTQUJMRV9IMjY1CisgICAg
ICBpc19oMjY1ID0gYnVmZmVyX1tzdGFydF9pbmRleF0ucGFja2V0LT5jb2RlYygpID09IGtWaWRl
b0NvZGVjSDI2NTsKKyAgICAgIGJvb2wgaGFzX2gyNjVfc3BzID0gZmFsc2U7CisgICAgICBib29s
IGhhc19oMjY1X3BwcyA9IGZhbHNlOworICAgICAgYm9vbCBoYXNfaDI2NV9pZHIgPSBmYWxzZTsK
KyAgICAgIGJvb2wgaXNfaDI2NV9rZXlmcmFtZSA9IGZhbHNlOworI2VuZGlmCiAgICAgICBpbnQg
aWRyX3dpZHRoID0gLTE7CiAgICAgICBpbnQgaWRyX2hlaWdodCA9IC0xOwogICAgICAgd2hpbGUg
KHRydWUpIHsKICAgICAgICAgKyt0ZXN0ZWRfcGFja2V0czsKIAotICAgICAgICBpZiAoIWlzX2gy
NjQgJiYgYnVmZmVyX1tzdGFydF9pbmRleF0uZnJhbWVfYmVnaW4oKSkKKyAgICAgICAgaWYgKCFp
c19oMjY0ICYmICFpc19oMjY1ICYmIGJ1ZmZlcl9bc3RhcnRfaW5kZXhdLmZyYW1lX2JlZ2luKCkp
CiAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgaWYgKGlzX2gyNjQpIHsKQEAgLTMyNyw3ICsz
NDEsMjggQEAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ0cEZyYW1lT2JqZWN0Pj4gUGFj
a2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAg
ICAgfQotCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgICBpZiAoaXNfaDI2NSAmJiAhaXNf
aDI2NV9rZXlmcmFtZSkgeworICAgICAgICAgIGNvbnN0IGF1dG8qIGgyNjVfaGVhZGVyID0gYWJz
bDo6Z2V0X2lmPFJUUFZpZGVvSGVhZGVySDI2NT4oCisgICAgICAgICAgICAgICZidWZmZXJfW3N0
YXJ0X2luZGV4XS5wYWNrZXQtPnZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisgICAg
ICAgICAgaWYgKCFoMjY1X2hlYWRlciB8fCBoMjY1X2hlYWRlci0+bmFsdXNfbGVuZ3RoID49IGtN
YXhOYWx1c1BlclBhY2tldCkKKyAgICAgICAgICAgIHJldHVybiBmb3VuZF9mcmFtZXM7CisgICAg
ICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBoMjY1X2hlYWRlci0+bmFsdXNfbGVuZ3RoOyAr
K2opIHsKKyAgICAgICAgICAgIGlmIChoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1
OjpOYWx1VHlwZTo6a1NwcykgeworICAgICAgICAgICAgICBoYXNfaDI2NV9zcHMgPSB0cnVlOwor
ICAgICAgICAgICAgfSBlbHNlIGlmIChoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1
OjpOYWx1VHlwZTo6a1BwcykgeworICAgICAgICAgICAgICBoYXNfaDI2NV9wcHMgPSB0cnVlOwor
ICAgICAgICAgICAgfSBlbHNlIGlmIChoMjY1X2hlYWRlci0+bmFsdXNbal0udHlwZSA9PSBIMjY1
OjpOYWx1VHlwZTo6a0lkcldSYWRsCisgICAgICAgICAgICAgICAgICAgICAgIHx8IGgyNjVfaGVh
ZGVyLT5uYWx1c1tqXS50eXBlID09IEgyNjU6Ok5hbHVUeXBlOjprSWRyTkxwCisgICAgICAgICAg
ICAgICAgICAgICAgIHx8IGgyNjVfaGVhZGVyLT5uYWx1c1tqXS50eXBlID09IEgyNjU6Ok5hbHVU
eXBlOjprQ3JhKSB7CisgICAgICAgICAgICAgIGhhc19oMjY1X2lkciA9IHRydWU7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgfQorICAgICAgICAgIGlmICgoaGFzX2gyNjVfc3BzICYmIGhhc19o
MjY1X3BwcykgfHwgaGFzX2gyNjVfaWRyKSB7CisgICAgICAgICAgICBpc19oMjY1X2tleWZyYW1l
ID0gdHJ1ZTsKKyAgICAgICAgICB9CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBpZiAodGVz
dGVkX3BhY2tldHMgPT0gYnVmZmVyXy5zaXplKCkpCiAgICAgICAgICAgYnJlYWs7CiAKQEAgLTMz
OSw3ICszNzQsNyBAQCBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8UnRwRnJhbWVPYmplY3Q+
PiBQYWNrZXRCdWZmZXI6OkZpbmRGcmFtZXMoCiAgICAgICAgIC8vIHRoZSB0aW1lc3RhbXAgb2Yg
dGhhdCBwYWNrZXQgaXMgdGhlIHNhbWUgYXMgdGhpcyBvbmUuIFRoaXMgbWF5IGNhdXNlCiAgICAg
ICAgIC8vIHRoZSBQYWNrZXRCdWZmZXIgdG8gaGFuZCBvdXQgaW5jb21wbGV0ZSBmcmFtZXMuCiAg
ICAgICAgIC8vIFNlZTogaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL3dlYnJ0Yy9pc3N1ZXMv
ZGV0YWlsP2lkPTcxMDYKLSAgICAgICAgaWYgKGlzX2gyNjQgJiYKKyAgICAgICAgaWYgKChpc19o
MjY0IHx8IGlzX2gyNjUpICYmCiAgICAgICAgICAgICAoIWJ1ZmZlcl9bc3RhcnRfaW5kZXhdLnVz
ZWQoKSB8fAogICAgICAgICAgICAgIGJ1ZmZlcl9bc3RhcnRfaW5kZXhdLnBhY2tldC0+dGltZXN0
YW1wICE9IGZyYW1lX3RpbWVzdGFtcCkpIHsKICAgICAgICAgICBicmVhazsKQEAgLTM5Myw2ICs0
MjgsNDUgQEAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ0cEZyYW1lT2JqZWN0Pj4gUGFj
a2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAgICAgICB9CiAgICAgICB9CiAKKyNpZm5kZWYgRElT
QUJMRV9IMjY1CisgICAgICBpZiAoaXNfaDI2NSkgeworICAgICAgICAvLyBXYXJuIGlmIHRoaXMg
aXMgYW4gdW5zYWZlIGZyYW1lLgorICAgICAgICBpZiAoaGFzX2gyNjVfaWRyICYmICghaGFzX2gy
NjVfc3BzIHx8ICFoYXNfaDI2NV9wcHMpKSB7CisgICAgICAgICAgc3RkOjpzdHJpbmdzdHJlYW0g
c3M7CisgICAgICAgICAgc3MgPDwgIlJlY2VpdmVkIEguMjY1LUlEUiBmcmFtZSAiCisgICAgICAg
ICAgICAgPDwgIihTUFM6ICIgPDwgaGFzX2gyNjVfc3BzIDw8ICIsIFBQUzogIiA8PCBoYXNfaDI2
NV9wcHMgPDwgIikuICI7CisgICAgICAgICAgc3MgPDwgIlRyZWF0aW5nIGFzIGRlbHRhIGZyYW1l
IHNpbmNlICIKKyAgICAgICAgICAgICAgICAiV2ViUlRDLVNwc1Bwc0lkcklzSDI2NUtleWZyYW1l
IGlzIGFsd2F5cyBlbmFibGVkLiI7CisgICAgICAgICAgUlRDX0xPRyhMU19XQVJOSU5HKSA8PCBz
cy5zdHIoKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgZGVjaWRl
ZCB3aGV0aGVyIHRvIHRyZWF0IHRoaXMgZnJhbWUgYXMgYSBrZXkgZnJhbWUKKyAgICAgICAgLy8g
b3IgZGVsdGEgZnJhbWUgaW4gdGhlIGZyYW1lIGJ1ZmZlciwgd2UgdXBkYXRlIHRoZSBmaWVsZCB0
aGF0CisgICAgICAgIC8vIGRldGVybWluZXMgaWYgdGhlIFJ0cEZyYW1lT2JqZWN0IGlzIGEga2V5
IGZyYW1lIG9yIGRlbHRhIGZyYW1lLgorICAgICAgICBjb25zdCBzaXplX3QgZmlyc3RfcGFja2V0
X2luZGV4ID0gc3RhcnRfc2VxX251bSAlIGJ1ZmZlcl8uc2l6ZSgpOworICAgICAgICBSVENfQ0hF
Q0tfTFQoZmlyc3RfcGFja2V0X2luZGV4LCBidWZmZXJfLnNpemUoKSk7CisgICAgICAgIGlmIChp
c19oMjY1X2tleWZyYW1lKSB7CisgICAgICAgICAgYnVmZmVyX1tmaXJzdF9wYWNrZXRfaW5kZXhd
LnBhY2tldC0+dmlkZW9faGVhZGVyLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlwZTo6a1ZpZGVv
RnJhbWVLZXk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgYnVmZmVyX1tmaXJzdF9wYWNr
ZXRfaW5kZXhdLnBhY2tldC0+dmlkZW9faGVhZGVyLmZyYW1lX3R5cGUgPSBWaWRlb0ZyYW1lVHlw
ZTo6a1ZpZGVvRnJhbWVEZWx0YTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHRoaXMgaXMg
bm90IGEga2V5IGZyYW1lLCBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vIGdhcHMgaW4gdGhlCisgICAg
ICAgIC8vIHBhY2tldCBzZXF1ZW5jZSBudW1iZXJzIHVwIHVudGlsIHRoaXMgcG9pbnQuCisgICAg
ICAgIGlmICghaXNfaDI2NV9rZXlmcmFtZSAmJiBtaXNzaW5nX3BhY2tldHNfLnVwcGVyX2JvdW5k
KHN0YXJ0X3NlcV9udW0pICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWlzc2luZ19wYWNrZXRzXy5iZWdpbigpKSB7CisgICAgICAgICAgdWludDE2X3Qgc3RvcF9pbmRl
eCA9IChpbmRleCArIDEpICUgYnVmZmVyXy5zaXplKCk7CisgICAgICAgICAgd2hpbGUgKHN0YXJ0
X2luZGV4ICE9IHN0b3BfaW5kZXgpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBmaW5kIHdoYXQg
aXQgZG9lcy4KKyAgICAgICAgICAgIC8vc2VxdWVuY2VfYnVmZmVyX1tzdGFydF9pbmRleF0uZnJh
bWVfY3JlYXRlZCA9IGZhbHNlOworICAgICAgICAgICAgc3RhcnRfaW5kZXggPSAoc3RhcnRfaW5k
ZXggKyAxKSAlIGJ1ZmZlcl8uc2l6ZSgpOworICAgICAgICAgIH0KKworICAgICAgICAgIHJldHVy
biBmb3VuZF9mcmFtZXM7CisgICAgICAgIH0KKyAgICAgIH0KKyNlbmRpZgorCiAgICAgICBpZiAo
YXV0byBmcmFtZSA9IEFzc2VtYmxlRnJhbWUoc3RhcnRfc2VxX251bSwgc2VxX251bSkpIHsKICAg
ICAgICAgZm91bmRfZnJhbWVzLnB1c2hfYmFjayhzdGQ6Om1vdmUoZnJhbWUpKTsKICAgICAgIH0g
ZWxzZSB7CkBAIC00MDAsNiArNDc0LDcgQEAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFJ0
cEZyYW1lT2JqZWN0Pj4gUGFja2V0QnVmZmVyOjpGaW5kRnJhbWVzKAogICAgICAgICAgICAgICAg
ICAgICAgICAgICA8PCBzdGFydF9zZXFfbnVtIDw8ICItIiA8PCBzZXFfbnVtOwogICAgICAgfQog
CisKICAgICAgIG1pc3NpbmdfcGFja2V0c18uZXJhc2UobWlzc2luZ19wYWNrZXRzXy5iZWdpbigp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNzaW5nX3BhY2tldHNfLnVwcGVyX2Jv
dW5kKHNlcV9udW0pKTsKICAgICAgIENsZWFySW50ZXJ2YWwoc3RhcnRfc2VxX251bSwgc2VxX251
bSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2lu
Zm8uY2MKaW5kZXggZTUxZDI5MzYwNzdkMGQwOGU3NTE1M2Y4ZTNiYTRiODc3YzQ1MWMzMy4uNmRm
OTg2OTliMGMyNjJjNmU5ZDdjMWFhZWVlYWM0ZTkzZjhjYjc1ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcv
c2Vzc2lvbl9pbmZvLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL21vZHVsZXMvdmlkZW9fY29kaW5nL3Nlc3Npb25faW5mby5jYwpAQCAtMTUzLDYgKzE1
MywyMiBAQCBzdGQ6OnZlY3RvcjxOYWx1SW5mbz4gVkNNU2Vzc2lvbkluZm86OkdldE5hbHVJbmZv
cygpIGNvbnN0IHsKICAgcmV0dXJuIG5hbHVfaW5mb3M7CiB9CiAKKyNpZm5kZWYgRElTQUJMRV9I
MjY1CitzdGQ6OnZlY3RvcjxIMjY1TmFsdUluZm8+IFZDTVNlc3Npb25JbmZvOjpHZXRIMjY1TmFs
dUluZm9zKCkgY29uc3QgeworICBpZiAocGFja2V0c18uZW1wdHkoKSB8fCBwYWNrZXRzXy5mcm9u
dCgpLnZpZGVvX2hlYWRlci5jb2RlYyAhPSBrVmlkZW9Db2RlY0gyNjUpCisgICAgcmV0dXJuIHN0
ZDo6dmVjdG9yPEgyNjVOYWx1SW5mbz4oKTsKKyAgc3RkOjp2ZWN0b3I8SDI2NU5hbHVJbmZvPiBu
YWx1X2luZm9zOworICBmb3IgKGNvbnN0IFZDTVBhY2tldCYgcGFja2V0IDogcGFja2V0c18pIHsK
KyAgICBjb25zdCBhdXRvJiBoMjY1ID0KKyAgICAgICAgYWJzbDo6Z2V0PFJUUFZpZGVvSGVhZGVy
SDI2NT4ocGFja2V0LnZpZGVvX2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBoMjY1Lm5hbHVzX2xlbmd0aDsgKytpKSB7CisgICAgICBuYWx1X2lu
Zm9zLnB1c2hfYmFjayhoMjY1Lm5hbHVzW2ldKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIG5hbHVf
aW5mb3M7Cit9CisjZW5kaWYKKwogdm9pZCBWQ01TZXNzaW9uSW5mbzo6U2V0R29mSW5mbyhjb25z
dCBHb2ZJbmZvVlA5JiBnb2ZfaW5mbywgc2l6ZV90IGlkeCkgewogICBpZiAocGFja2V0c18uZW1w
dHkoKSkKICAgICByZXR1cm47CkBAIC0yMTEsNiArMjI3LDExIEBAIHNpemVfdCBWQ01TZXNzaW9u
SW5mbzo6SW5zZXJ0QnVmZmVyKHVpbnQ4X3QqIGZyYW1lX2J1ZmZlciwKICAgLy8gVE9ETyhwYm9z
KTogUmVtb3ZlIEgyNjQgcGFyc2luZyBmcm9tIHRoaXMgc3RlcCBhbmQgdXNlIGEgZnJhZ21lbnRh
dGlvbgogICAvLyBoZWFkZXIgc3VwcGxpZWQgYnkgdGhlIEgyNjQgZGVwYWNrZXRpemVyLgogICBj
b25zdCBzaXplX3Qga0gyNjROQUxIZWFkZXJMZW5ndGhJbkJ5dGVzID0gMTsKKyNpZm5kZWYgRElT
QUJMRV9IMjY1CisgIGNvbnN0IHNpemVfdCBrSDI2NU5BTEhlYWRlckxlbmd0aEluQnl0ZXMgPSAy
OworICBjb25zdCBhdXRvKiBoMjY1ID0KKyAgICAgIGFic2w6OmdldF9pZjxSVFBWaWRlb0hlYWRl
ckgyNjU+KCZwYWNrZXQudmlkZW9faGVhZGVyLnZpZGVvX3R5cGVfaGVhZGVyKTsKKyNlbmRpZgog
ICBjb25zdCBzaXplX3Qga0xlbmd0aEZpZWxkTGVuZ3RoID0gMjsKICAgY29uc3QgYXV0byogaDI2
NCA9CiAgICAgICBhYnNsOjpnZXRfaWY8UlRQVmlkZW9IZWFkZXJIMjY0PigmcGFja2V0LnZpZGVv
X2hlYWRlci52aWRlb190eXBlX2hlYWRlcik7CkBAIC0yMzYsNiArMjU3LDM2IEBAIHNpemVfdCBW
Q01TZXNzaW9uSW5mbzo6SW5zZXJ0QnVmZmVyKHVpbnQ4X3QqIGZyYW1lX2J1ZmZlciwKICAgICBw
YWNrZXQuc2l6ZUJ5dGVzID0gcmVxdWlyZWRfbGVuZ3RoOwogICAgIHJldHVybiBwYWNrZXQuc2l6
ZUJ5dGVzOwogICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBlbHNlIGlmIChoMjY1ICYmIGgy
NjUtPnBhY2tldGl6YXRpb25fdHlwZSA9PSBrSDI2NUFQKSB7CisgICAgLy8gU2ltaWxhciB0byBI
MjY0LCBmb3IgSDI2NSBhZ2dyZWdhdGlvbiBwYWNrZXRzLCB3ZSByZWx5IG9uIGppdHRlciBidWZm
ZXIKKyAgICAvLyB0byByZW1vdmUgdGhlIHR3byBsZW5ndGggYnl0ZXMgYmV0d2VlbiBlYWNoIE5B
TCB1bml0LCBhbmQgcG90ZW50aWFsbHkgYWRkCisgICAgLy8gc3RhcnQgY29kZXMuCisgICAgc2l6
ZV90IHJlcXVpcmVkX2xlbmd0aCA9IDA7CisgICAgY29uc3QgdWludDhfdCogbmFsdV9wdHIgPQor
ICAgICAgICBwYWNrZXRfYnVmZmVyICsga0gyNjVOQUxIZWFkZXJMZW5ndGhJbkJ5dGVzOyAgLy8g
c2tpcCBwYXlsb2FkaGRyCisgICAgd2hpbGUgKG5hbHVfcHRyIDwgcGFja2V0X2J1ZmZlciArIHBh
Y2tldC5zaXplQnl0ZXMpIHsKKyAgICAgIHNpemVfdCBsZW5ndGggPSBCdWZmZXJUb1VXb3JkMTYo
bmFsdV9wdHIpOworICAgICAgcmVxdWlyZWRfbGVuZ3RoICs9CisgICAgICAgICAgbGVuZ3RoICsg
KHBhY2tldC5pbnNlcnRTdGFydENvZGUgPyBrSDI2NVN0YXJ0Q29kZUxlbmd0aEJ5dGVzIDogMCk7
CisgICAgICBuYWx1X3B0ciArPSBrTGVuZ3RoRmllbGRMZW5ndGggKyBsZW5ndGg7CisgICAgfQor
ICAgIFNoaWZ0U3Vic2VxdWVudFBhY2tldHMocGFja2V0X2l0LCByZXF1aXJlZF9sZW5ndGgpOwor
ICAgIG5hbHVfcHRyID0gcGFja2V0X2J1ZmZlciArIGtIMjY1TkFMSGVhZGVyTGVuZ3RoSW5CeXRl
czsKKyAgICB1aW50OF90KiBmcmFtZV9idWZmZXJfcHRyID0gZnJhbWVfYnVmZmVyICsgb2Zmc2V0
OworICAgIHdoaWxlIChuYWx1X3B0ciA8IHBhY2tldF9idWZmZXIgKyBwYWNrZXQuc2l6ZUJ5dGVz
KSB7CisgICAgICBzaXplX3QgbGVuZ3RoID0gQnVmZmVyVG9VV29yZDE2KG5hbHVfcHRyKTsKKyAg
ICAgIG5hbHVfcHRyICs9IGtMZW5ndGhGaWVsZExlbmd0aDsKKyAgICAgIC8vIHNpbmNlIEgyNjUg
c2hhcmVzIHRoZSBzYW1lIHN0YXJ0IGNvZGUgYXMgSDI2NCwgdXNlIHRoZSBzYW1lIEluc2VydAor
ICAgICAgLy8gZnVuY3Rpb24gdG8gaGFuZGxlIHN0YXJ0IGNvZGUuCisgICAgICBmcmFtZV9idWZm
ZXJfcHRyICs9IEluc2VydChuYWx1X3B0ciwgbGVuZ3RoLCBwYWNrZXQuaW5zZXJ0U3RhcnRDb2Rl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDx1aW50OF90Kj4o
ZnJhbWVfYnVmZmVyX3B0cikpOworICAgICAgbmFsdV9wdHIgKz0gbGVuZ3RoOworICAgIH0KKyAg
ICBwYWNrZXQuc2l6ZUJ5dGVzID0gcmVxdWlyZWRfbGVuZ3RoOworICAgIHJldHVybiBwYWNrZXQu
c2l6ZUJ5dGVzOworICB9CisjZW5kaWYKICAgU2hpZnRTdWJzZXF1ZW50UGFja2V0cygKICAgICAg
IHBhY2tldF9pdCwgcGFja2V0LnNpemVCeXRlcyArCiAgICAgICAgICAgICAgICAgICAgICAocGFj
a2V0Lmluc2VydFN0YXJ0Q29kZSA/IGtIMjY0U3RhcnRDb2RlTGVuZ3RoQnl0ZXMgOiAwKSk7CkBA
IC00NjIsNyArNTEzLDIyIEBAIGludCBWQ01TZXNzaW9uSW5mbzo6SW5zZXJ0UGFja2V0KGNvbnN0
IFZDTVBhY2tldCYgcGFja2V0LAogICAgICAgICAgSXNOZXdlclNlcXVlbmNlTnVtYmVyKHBhY2tl
dC5zZXFOdW0sIGxhc3RfcGFja2V0X3NlcV9udW1fKSkpIHsKICAgICAgIGxhc3RfcGFja2V0X3Nl
cV9udW1fID0gcGFja2V0LnNlcU51bTsKICAgICB9CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB9
IGVsc2UgaWYgKHBhY2tldC5jb2RlYygpID09IGtWaWRlb0NvZGVjSDI2NSkgeworICAgIGZyYW1l
X3R5cGVfID0gcGFja2V0LnZpZGVvX2hlYWRlci5mcmFtZV90eXBlOworICAgIGlmIChwYWNrZXQu
aXNfZmlyc3RfcGFja2V0X2luX2ZyYW1lKCkgJiYKKyAgICAgICAgKGZpcnN0X3BhY2tldF9zZXFf
bnVtXyA9PSAtMSB8fAorICAgICAgICAgSXNOZXdlclNlcXVlbmNlTnVtYmVyKGZpcnN0X3BhY2tl
dF9zZXFfbnVtXywgcGFja2V0LnNlcU51bSkpKSB7CisgICAgICBmaXJzdF9wYWNrZXRfc2VxX251
bV8gPSBwYWNrZXQuc2VxTnVtOworICAgIH0KKyAgICBpZiAocGFja2V0Lm1hcmtlckJpdCAmJgor
ICAgICAgICAobGFzdF9wYWNrZXRfc2VxX251bV8gPT0gLTEgfHwKKyAgICAgICAgIElzTmV3ZXJT
ZXF1ZW5jZU51bWJlcihwYWNrZXQuc2VxTnVtLCBsYXN0X3BhY2tldF9zZXFfbnVtXykpKSB7Cisg
ICAgICBsYXN0X3BhY2tldF9zZXFfbnVtXyA9IHBhY2tldC5zZXFOdW07CisgICAgfQorI2Vsc2UK
ICAgfSBlbHNlIHsKKyNlbmRpZgogICAgIC8vIE9ubHkgaW5zZXJ0IG1lZGlhIHBhY2tldHMgYmV0
d2VlbiBmaXJzdCBhbmQgbGFzdCBwYWNrZXRzICh3aGVuCiAgICAgLy8gYXZhaWxhYmxlKS4KICAg
ICAvLyBQbGFjaW5nIGNoZWNrIGhlcmUsIGFzIHRvIHByb3Blcmx5IGFjY291bnQgZm9yIGR1cGxp
Y2F0ZSBwYWNrZXRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy92aWRlb19jb2Rpbmcvc2Vzc2lvbl9pbmZvLmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9z
ZXNzaW9uX2luZm8uaAppbmRleCAwNmEzNDhlZjcyMzU0NzcxYjI4Mzg1ZjlkNmYyNDViYTkwYTcx
Y2Q5Li4wMWVhN2JkMjk3NzcyN2ZkNzY3NjE0MmQ0YjE3M2E1YzlkNjkyOWFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVv
X2NvZGluZy9zZXNzaW9uX2luZm8uaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL3ZpZGVvX2NvZGluZy9zZXNzaW9uX2luZm8uaApAQCAtNjUs
NyArNjUsOSBAQCBjbGFzcyBWQ01TZXNzaW9uSW5mbyB7CiAgIGludCBUbDBQaWNJZCgpIGNvbnN0
OwogCiAgIHN0ZDo6dmVjdG9yPE5hbHVJbmZvPiBHZXROYWx1SW5mb3MoKSBjb25zdDsKLQorI2lm
bmRlZiBESVNBQkxFX0gyNjUKKyAgc3RkOjp2ZWN0b3I8SDI2NU5hbHVJbmZvPiBHZXRIMjY1TmFs
dUluZm9zKCkgY29uc3Q7CisjZW5kaWYKICAgdm9pZCBTZXRHb2ZJbmZvKGNvbnN0IEdvZkluZm9W
UDkmIGdvZl9pbmZvLCBzaXplX3QgaWR4KTsKIAogIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9ydGNfYmFzZS9leHBlcmltZW50
cy9taW5fdmlkZW9fYml0cmF0ZV9leHBlcmltZW50LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvZXhwZXJpbWVudHMvbWluX3ZpZGVvX2JpdHJh
dGVfZXhwZXJpbWVudC5jYwppbmRleCAxMTQ1MGQwODQ5MjFjNjc0OTI1NmE0NGM2ZGM2NmFhM2Fl
OGZmY2YzLi4zYjEzZThlOWJmZWQ5MmJlMGYzODkxZWRlYjkwODFjZmI4YzYxOWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9ydGNfYmFzZS9l
eHBlcmltZW50cy9taW5fdmlkZW9fYml0cmF0ZV9leHBlcmltZW50LmNjCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3J0Y19iYXNlL2V4cGVyaW1lbnRzL21p
bl92aWRlb19iaXRyYXRlX2V4cGVyaW1lbnQuY2MKQEAgLTEwMCw2ICsxMDAsOSBAQCBhYnNsOjpv
cHRpb25hbDxEYXRhUmF0ZT4gR2V0RXhwZXJpbWVudGFsTWluVmlkZW9CaXRyYXRlKFZpZGVvQ29k
ZWNUeXBlIHR5cGUpIHsKICAgICAgICAgcmV0dXJuIG1pbl9iaXRyYXRlX2F2MS5HZXRPcHRpb25h
bCgpOwogICAgICAgY2FzZSBrVmlkZW9Db2RlY0gyNjQ6CiAgICAgICAgIHJldHVybiBtaW5fYml0
cmF0ZV9oMjY0LkdldE9wdGlvbmFsKCk7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgY2Fz
ZSBrVmlkZW9Db2RlY0gyNjU6CisjZW5kaWYKICAgICAgIGNhc2Uga1ZpZGVvQ29kZWNHZW5lcmlj
OgogICAgICAgY2FzZSBrVmlkZW9Db2RlY011bHRpcGxleDoKICAgICAgICAgcmV0dXJuIGFic2w6
Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaAppbmRl
eCBhYjc3OTQyZTY5NDZiZGUzMDAyOTkwYTNhMjZhMTAwMWVmNjMwNTI1Li42ZjA4MDViMGJiYmUz
ZDAzOGM1YzQ1NmNlNjBiZWJkZWE4ODAxMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQv
V2ViS2l0VXRpbGl0aWVzLmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgVmlkZW9EZWNvZGVyRmFj
dG9yeTsKIGNsYXNzIFZpZGVvRW5jb2RlckZhY3Rvcnk7CiBjbGFzcyBWaWRlb0ZyYW1lOwogCi1l
bnVtIGNsYXNzIFdlYktpdENvZGVjU3VwcG9ydCB7IEgyNjQsIEgyNjRBbmRWUDggfTsKK2VudW0g
Y2xhc3MgV2ViS2l0Q29kZWNTdXBwb3J0IHsgSDI2NFZQOEFuZEgyNjUsIEgyNjRBbmRWUDggfTsK
IAogc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4gY3JlYXRlV2Vi
S2l0RW5jb2RlckZhY3RvcnkoV2ViS2l0Q29kZWNTdXBwb3J0KTsKIHN0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVdlYktpdERlY29kZXJGYWN0b3J5KFdl
YktpdENvZGVjU3VwcG9ydCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5tbSBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0
aWVzLm1tCmluZGV4IDE0MDJjMmJmM2E0MTcwM2FjYjhmM2QwZjFmMGE0M2E3OWFhM2NiNmUuLjZj
ZTg2NTNjMzU0MjU0MWFiODFlZWRhMWJjZWZlODM4ZmFhYTU1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRp
bGl0aWVzLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1tCkBAIC0xMTYsNyArMTE2LDcgQEAgc3RkOjp1
bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4gY3JlYXRlV2ViS2l0RW5jb2Rl
ckZhY3RvcnkoV2ViS2l0Q28KICAgICB9KTsKICNlbmRpZgogCi0gICAgYXV0byBpbnRlcm5hbEZh
Y3RvcnkgPSBPYmpDVG9OYXRpdmVWaWRlb0VuY29kZXJGYWN0b3J5KGNvZGVjU3VwcG9ydCA9PSBX
ZWJLaXRDb2RlY1N1cHBvcnQ6OkgyNjRBbmRWUDggPyBbW1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJG
YWN0b3J5IGFsbG9jXSBpbml0XSA6IFtbUlRDVmlkZW9FbmNvZGVyRmFjdG9yeUgyNjQgYWxsb2Nd
IGluaXRdKTsKKyAgICBhdXRvIGludGVybmFsRmFjdG9yeSA9IE9iakNUb05hdGl2ZVZpZGVvRW5j
b2RlckZhY3RvcnkoW1tSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSBhbGxvY10gaW5pdFdp
dGhIMjY1OiBjb2RlY1N1cHBvcnQgPT0gV2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0VlA4QW5kSDI2
NV0pOwogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFZpZGVvRW5jb2RlckZhY3RvcnlXaXRo
U2ltdWxjYXN0PihzdGQ6Om1vdmUoaW50ZXJuYWxGYWN0b3J5KSk7CiB9CiAKQEAgLTI3MSw3ICsy
NzEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8VmlkZW9EZWNvZGVyPiBSZW1vdGVWaWRlb0RlY29kZXJG
YWN0b3J5OjpDcmVhdGVWaWRlb0RlY29kZXIoY29ucwogCiBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRj
OjpWaWRlb0RlY29kZXJGYWN0b3J5PiBjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShXZWJLaXRD
b2RlY1N1cHBvcnQgY29kZWNTdXBwb3J0KQogewotICAgIGF1dG8gaW50ZXJuYWxGYWN0b3J5ID0g
T2JqQ1RvTmF0aXZlVmlkZW9EZWNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQgPT0gV2ViS2l0Q29k
ZWNTdXBwb3J0OjpIMjY0QW5kVlA4ID8gW1tSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSBh
bGxvY10gaW5pdF0gOiBbW1JUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0IGFsbG9jXSBpbml0XSk7
CisgICAgYXV0byBpbnRlcm5hbEZhY3RvcnkgPSBPYmpDVG9OYXRpdmVWaWRlb0RlY29kZXJGYWN0
b3J5KFtbUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkgYWxsb2NdIGluaXRXaXRoSDI2NTog
Y29kZWNTdXBwb3J0ID09IFdlYktpdENvZGVjU3VwcG9ydDo6SDI2NFZQOEFuZEgyNjVdKTsKICAg
ICBpZiAodmlkZW9EZWNvZGVyQ2FsbGJhY2tzKCkuY3JlYXRlQ2FsbGJhY2spCiAgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZVZpZGVvRGVjb2RlckZhY3Rvcnk+KHN0ZDo6bW92
ZShpbnRlcm5hbEZhY3RvcnkpKTsKICAgICByZXR1cm4gaW50ZXJuYWxGYWN0b3J5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
Y29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5o
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29t
cG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0ZS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEyMmQzNTk0ZjU1N2Y3Yjc1ZmY2N2Y5NDI3YmI0NjFiMGM5YmE1Y2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQ
cml2YXRlLmgKQEAgLTAsMCArMSwyNSBAQAorLyoKKyAqICBDb3B5cmlnaHQgMjAxNyBUaGUgV2Vi
UlRDIHByb2plY3QgYXV0aG9ycy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVXNlIG9m
IHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZQorICog
IHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhl
IHNvdXJjZQorICogIHRyZWUuIEFuIGFkZGl0aW9uYWwgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJp
Z2h0cyBncmFudCBjYW4gYmUgZm91bmQKKyAqICBpbiB0aGUgZmlsZSBQQVRFTlRTLiAgQWxsIGNv
bnRyaWJ1dGluZyBwcm9qZWN0IGF1dGhvcnMgbWF5CisgKiAgYmUgZm91bmQgaW4gdGhlIEFVVEhP
UlMgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUuCisgKi8KKy8qIFRoaXMgZmls
ZSBpcyBib3Jyb3dlZCBmcm9tIHNkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29k
ZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZhdGUuaCAqLworCisjaW1wb3J0ICJSVENDb2RlY1NwZWNp
ZmljSW5mb0gyNjUuaCIKKworI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9fY29kaW5nL2luY2x1ZGUv
dmlkZW9fY29kZWNfaW50ZXJmYWNlLmgiCisKK05TX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKKy8q
IEludGVyZmFjZXMgZm9yIGNvbnZlcnRpbmcgdG8vZnJvbSBpbnRlcm5hbCBDKysgZm9ybWF0cy4g
Ki8KK0BpbnRlcmZhY2UgUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1ICgpCisKKy0gKHdlYnJ0Yzo6
Q29kZWNTcGVjaWZpY0luZm8pbmF0aXZlQ29kZWNTcGVjaWZpY0luZm87CisKK0BlbmQKKworTlNf
QVNTVU1FX05PTk5VTExfRU5ECmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVj
U3BlY2lmaWNJbmZvSDI2NS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5m
b0gyNjUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42YmJhZTE5YzdiYzMxYjg0NTlmNzVkYmQxMTk0ODU5MDQ2YmZl
M2I4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjUuaApAQCAtMCwwICsxLDI5IEBACisvKgorICogIENvcHlyaWdodCAyMDE3IFRoZSBX
ZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisg
KiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0
aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkg
cmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwg
Y29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVU
SE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworLyogVGhpcyBm
aWxlIGlzIGJvcnJvd2VkIGZyb20gc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVEND
b2RlY1NwZWNpZmljSW5mb0gyNjQuaC4gKi8KKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0
aW9uLmg+CisKKyNpbXBvcnQgIlJUQ0NvZGVjU3BlY2lmaWNJbmZvLmgiCisjaW1wb3J0ICJSVENN
YWNyb3MuaCIKKworLyoqIENsYXNzIGZvciBIMjY1IHNwZWNpZmljIGNvbmZpZy4gKi8KK3R5cGVk
ZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBSVENIMjY1UGFja2V0aXphdGlvbk1vZGUpIHsKKyAgUlRD
SDI2NVBhY2tldGl6YXRpb25Nb2RlTm9uSW50ZXJsZWF2ZWQgPSAwLCAgLy8gTW9kZSAxIC0gU1RB
UC1BLCBGVS1BIGlzIGFsbG93ZWQKKyAgUlRDSDI2NVBhY2tldGl6YXRpb25Nb2RlU2luZ2xlTmFs
VW5pdCAgICAgICAgLy8gTW9kZSAwIC0gb25seSBzaW5nbGUgTkFMVSBhbGxvd2VkCit9OworCitS
VENfT0JKQ19FWFBPUlQKK19fYXR0cmlidXRlX18oKG9iamNfcnVudGltZV9uYW1lKCJXS19SVEND
b2RlY1NwZWNpZmljSW5mb0gyNjUiKSkpCitAaW50ZXJmYWNlIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NSA6IE5TT2JqZWN0IDxSVENDb2RlY1NwZWNpZmljSW5mbz4KKworQHByb3BlcnR5KG5vbmF0
b21pYywgYXNzaWduKSBSVENIMjY1UGFja2V0aXphdGlvbk1vZGUgcGFja2V0aXphdGlvbk1vZGU7
CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0lu
Zm9IMjY1Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2Rr
L29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1NwZWNpZmljSW5mb0gyNjUubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTRhNDY5ODVmNzI3NzRkNDVlMzM0MDUwOGNkMGE0YzA4ZmQxZjFlNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1
Lm1tCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiAgQ29weXJpZ2h0IDIwMTcgVGhlIFdlYlJUQyBw
cm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlz
IHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0
IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3Vy
Y2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMg
Z3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmli
dXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZp
bGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICovCisgLyogVGhpcyBmaWxlIGlz
IGJvcnJvd2VkIGZyb20gc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENDb2RlY1Nw
ZWNpZmljSW5mb0gyNjQubW0gKi8KKworI2ltcG9ydCAiUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1
K1ByaXZhdGUuaCIKKworLy8gSDI2NSBzcGVjaWZpYyBzZXR0aW5ncy4KK0BpbXBsZW1lbnRhdGlv
biBSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUKKworQHN5bnRoZXNpemUgcGFja2V0aXphdGlvbk1v
ZGUgPSBfcGFja2V0aXphdGlvbk1vZGU7CisKKy0gKHdlYnJ0Yzo6Q29kZWNTcGVjaWZpY0luZm8p
bmF0aXZlQ29kZWNTcGVjaWZpY0luZm8geworICB3ZWJydGM6OkNvZGVjU3BlY2lmaWNJbmZvIGNv
ZGVjU3BlY2lmaWNJbmZvOworICBjb2RlY1NwZWNpZmljSW5mby5jb2RlY1R5cGUgPSB3ZWJydGM6
OmtWaWRlb0NvZGVjSDI2NTsKKyAgY29kZWNTcGVjaWZpY0luZm8uY29kZWNTcGVjaWZpYy5IMjY1
LnBhY2tldGl6YXRpb25fbW9kZSA9CisgICAgICAod2VicnRjOjpIMjY1UGFja2V0aXphdGlvbk1v
ZGUpX3BhY2tldGl6YXRpb25Nb2RlOworCisgIHJldHVybiBjb2RlY1NwZWNpZmljSW5mbzsKK30K
KworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
c2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFj
dG9yeS5oCmluZGV4IGQxMTQ2MDMwMGQ1MWVkMTY1NWViMmU3ODkxOWYwZjRkZGNjNTk5YjcuLmI4
MzhhNGI4YWU2OTUwNjE3ZTFlZWRlMjJiYzhjOGM2MGY4NDc3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMv
dmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5LmgKQEAgLTIxLDYgKzIxLDcg
QEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIFJUQ19PQkpDX0VYUE9SVAogX19hdHRyaWJ1dGVf
Xygob2JqY19ydW50aW1lX25hbWUoIldLX1JUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5Iikp
KQogQGludGVyZmFjZSBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeSA6IE5TT2JqZWN0IDxS
VENWaWRlb0RlY29kZXJGYWN0b3J5PgorLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRI
MjY1OwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubQppbmRleCA0NDQ0NWY0YjEzMzIxNjZh
Njg3ZmFjYmI0YzUwYTg3OTU0OWIyYzdlLi5hNDk2YWU1NDNlOTY1ZTM0Y2E3ODc3NzgzN2YyMjM1
MzYzZDE4ZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRWaWRlb0Rl
Y29kZXJGYWN0b3J5Lm0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9EZWNv
ZGVyRmFjdG9yeS5tCkBAIC0xOCw4ICsxOCwyMyBAQAogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9W
UDkpCiAjaW1wb3J0ICJhcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVyVlA5LmgiCiAjZW5k
aWYKKyNpZiAhZGVmaW5lZChSVENfRElTQUJMRV9IMjY1KQorI2ltcG9ydCAiUlRDSDI2NVByb2Zp
bGVMZXZlbElkLmgiCisjaW1wb3J0ICJSVENWaWRlb0RlY29kZXJIMjY1LmgiCisjZW5kaWYKKwor
QGltcGxlbWVudGF0aW9uIFJUQ0RlZmF1bHRWaWRlb0RlY29kZXJGYWN0b3J5IHsKKyAgYm9vbCBf
c3VwcG9ydEgyNjU7Cit9CiAKLUBpbXBsZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9EZWNvZGVy
RmFjdG9yeQorLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRIMjY1Cit7CisgIHNlbGYg
PSBbc3VwZXIgaW5pdF07CisgIGlmIChzZWxmKSB7CisgICAgICBfc3VwcG9ydEgyNjUgPSBzdXBw
b3J0SDI2NTsKKyAgfQorICByZXR1cm4gc2VsZjsKK30KIAogLSAoTlNBcnJheTxSVENWaWRlb0Nv
ZGVjSW5mbyAqPiAqKXN1cHBvcnRlZENvZGVjcyB7CiAgIE5TRGljdGlvbmFyeTxOU1N0cmluZyAq
LCBOU1N0cmluZyAqPiAqY29uc3RyYWluZWRIaWdoUGFyYW1zID0gQHsKQEAgLTQyLDEzICs1Nywz
MCBAQCBAaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkKIAogICBS
VENWaWRlb0NvZGVjSW5mbyAqdnA4SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGlu
aXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY1ZwOE5hbWVdOwogCisjaWYgIWRlZmluZWQoUlRDX0RJ
U0FCTEVfSDI2NSkKKyAgUlRDVmlkZW9Db2RlY0luZm8gKmgyNjVJbmZvID0gW1tSVENWaWRlb0Nv
ZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjSDI2NU5hbWVdOworI2Vu
ZGlmCisgCiAjaWYgZGVmaW5lZChSVENfRU5BQkxFX1ZQOSkKICAgUlRDVmlkZW9Db2RlY0luZm8g
KnZwOUluZm8gPSBbW1JUQ1ZpZGVvQ29kZWNJbmZvIGFsbG9jXSBpbml0V2l0aE5hbWU6a1JUQ1Zp
ZGVvQ29kZWNWcDlOYW1lXTsKICNlbmRpZgogCisgIGlmICghX3N1cHBvcnRIMjY1KSB7CisgICAg
cmV0dXJuIEBbCisgICAgICBjb25zdHJhaW5lZEhpZ2hJbmZvLAorICAgICAgY29uc3RyYWluZWRC
YXNlbGluZUluZm8sCisgICAgICB2cDhJbmZvLAorI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkp
CisgICAgICB2cDlJbmZvLAorI2VuZGlmCisgICAgXTsKKyAgfQogICByZXR1cm4gQFsKICAgICBj
b25zdHJhaW5lZEhpZ2hJbmZvLAogICAgIGNvbnN0cmFpbmVkQmFzZWxpbmVJbmZvLAorI2lmICFk
ZWZpbmVkKFJUQ19ESVNBQkxFX0gyNjUpCisgICAgaDI2NUluZm8sCisjZW5kaWYKICAgICB2cDhJ
bmZvLAogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAgICAgdnA5SW5mbywKQEAgLTYxLDYg
KzkzLDEwIEBAIEBpbXBsZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9EZWNvZGVyRmFjdG9yeQog
ICAgIHJldHVybiBbW1JUQ1ZpZGVvRGVjb2RlckgyNjQgYWxsb2NdIGluaXRdOwogICB9IGVsc2Ug
aWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVjVnA4TmFtZV0pIHsK
ICAgICByZXR1cm4gW1JUQ1ZpZGVvRGVjb2RlclZQOCB2cDhEZWNvZGVyXTsKKyNpZiAhZGVmaW5l
ZChSVENfRElTQUJMRV9IMjY1KQorICB9IGVsc2UgaWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3Ry
aW5nOmtSVENWaWRlb0NvZGVjSDI2NU5hbWVdKSB7CisgICAgcmV0dXJuIFtbUlRDVmlkZW9EZWNv
ZGVySDI2NSBhbGxvY10gaW5pdF07CisjZW5kaWYKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5
KQogICB9IGVsc2UgaWYgKFtpbmZvLm5hbWUgaXNFcXVhbFRvU3RyaW5nOmtSVENWaWRlb0NvZGVj
VnA5TmFtZV0pIHsKICAgICByZXR1cm4gW1JUQ1ZpZGVvRGVjb2RlclZQOSB2cDlEZWNvZGVyXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nk
ay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rv
cnkuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaApp
bmRleCA5MzIzMjU2Y2VhZGM4MzhjNTNjODBhNzBmYzBkMGJlMjU1MzM1ZmUzLi5hOTk1ZGFhYjU0
MTBmMDNkZDFiMzdmMDg4ZDM1MTU1ODA0ZDY3ODM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0RlZmF1bHRWaWRlb0VuY29kZXJGYWN0b3J5LmgKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5oCkBAIC0yMiw4ICsyMiw3IEBAIFJUQ19P
QkpDX0VYUE9SVAogX19hdHRyaWJ1dGVfXygob2JqY19ydW50aW1lX25hbWUoIldLX1JUQ0RlZmF1
bHRWaWRlb0VuY29kZXJGYWN0b3J5IikpKQogQGludGVyZmFjZSBSVENEZWZhdWx0VmlkZW9FbmNv
ZGVyRmFjdG9yeSA6IE5TT2JqZWN0IDxSVENWaWRlb0VuY29kZXJGYWN0b3J5PgogCi1AcHJvcGVy
dHkobm9uYXRvbWljLCByZXRhaW4pIFJUQ1ZpZGVvQ29kZWNJbmZvICpwcmVmZXJyZWRDb2RlYzsK
LQorLSAoaWQpaW5pdFdpdGhIMjY1Oihib29sKXN1cHBvcnRIMjY1OwogKyAoTlNBcnJheTxSVENW
aWRlb0NvZGVjSW5mbyAqPiAqKXN1cHBvcnRlZENvZGVjczsKIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9u
ZW50cy92aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92
aWRlb19jb2RlYy9SVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeS5tCmluZGV4IGI3MjI5NmI2
NGYzMWIwZWZiNDVhOGJkZGE2MzliNDgyYWZhZGJkYTAuLmQ2ODYwOWQ1NjQ5MzE4ZDhlMzIxMmNl
NDJlZGY5OTI2ZGRiNDhjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDRGVmYXVs
dFZpZGVvRW5jb2RlckZhY3RvcnkubQorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0RlZmF1bHRW
aWRlb0VuY29kZXJGYWN0b3J5Lm0KQEAgLTE4LDEwICsxOCwyMyBAQAogI2lmIGRlZmluZWQoUlRD
X0VOQUJMRV9WUDkpCiAjaW1wb3J0ICJhcGkvdmlkZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVyVlA5
LmgiCiAjZW5kaWYKKyNpZiAhZGVmaW5lZChESVNBQkxFX0gyNjUpCisjaW1wb3J0ICJSVENIMjY1
UHJvZmlsZUxldmVsSWQuaCIKKyNpbXBvcnQgIlJUQ1ZpZGVvRW5jb2RlckgyNjUuaCIKKyNlbmRp
ZgogCi1AaW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKK0BpbXBs
ZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeSB7CisgIGJvb2wgX3N1cHBv
cnRIMjY1OworfQogCi1Ac3ludGhlc2l6ZSBwcmVmZXJyZWRDb2RlYzsKKy0gKGlkKWluaXRXaXRo
SDI2NTooYm9vbClzdXBwb3J0SDI2NQoreworICBzZWxmID0gW3N1cGVyIGluaXRdOworICBpZiAo
c2VsZikgeworICAgICAgX3N1cHBvcnRIMjY1ID0gc3VwcG9ydEgyNjU7CisgIH0KKyAgcmV0dXJu
IHNlbGY7Cit9CiAKICsgKE5TQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8gKj4gKilzdXBwb3J0ZWRD
b2RlY3MgewogICBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKmNvbnN0cmFp
bmVkSGlnaFBhcmFtcyA9IEB7CkBAIC00Miw2ICs1NSwxMCBAQCBAaW1wbGVtZW50YXRpb24gUlRD
RGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICAgICAgIFtbUlRDVmlkZW9Db2RlY0luZm8gYWxs
b2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9Db2RlY0gyNjROYW1lCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6Y29uc3RyYWluZWRCYXNlbGluZVBhcmFtc107
CiAKKyNpZiAhZGVmaW5lZChESVNBQkxFX0gyNjUpCisgIFJUQ1ZpZGVvQ29kZWNJbmZvICpoMjY1
SW5mbyA9IFtbUlRDVmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmFtZTprUlRDVmlkZW9D
b2RlY0gyNjVOYW1lXTsKKyNlbmRpZgorCiAgIFJUQ1ZpZGVvQ29kZWNJbmZvICp2cDhJbmZvID0g
W1tSVENWaWRlb0NvZGVjSW5mbyBhbGxvY10gaW5pdFdpdGhOYW1lOmtSVENWaWRlb0NvZGVjVnA4
TmFtZV07CiAKICNpZiBkZWZpbmVkKFJUQ19FTkFCTEVfVlA5KQpAQCAtNTEsNiArNjgsOSBAQCBA
aW1wbGVtZW50YXRpb24gUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkKICAgcmV0dXJuIEBb
CiAgICAgY29uc3RyYWluZWRIaWdoSW5mbywKICAgICBjb25zdHJhaW5lZEJhc2VsaW5lSW5mbywK
KyNpZiAhZGVmaW5lZChESVNBQkxFX0gyNjUpCisgICAgaDI2NUluZm8sCisjZW5kaWYKICAgICB2
cDhJbmZvLAogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAgICAgdnA5SW5mbywKQEAgLTY2
LDYgKzg2LDEyIEBAIEBpbXBsZW1lbnRhdGlvbiBSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9y
eQogI2lmIGRlZmluZWQoUlRDX0VOQUJMRV9WUDkpCiAgIH0gZWxzZSBpZiAoW2luZm8ubmFtZSBp
c0VxdWFsVG9TdHJpbmc6a1JUQ1ZpZGVvQ29kZWNWcDlOYW1lXSkgewogICAgIHJldHVybiBbUlRD
VmlkZW9FbmNvZGVyVlA5IHZwOUVuY29kZXJdOworI2VuZGlmCisjaWYgIWRlZmluZWQoRElTQUJM
RV9IMjY1KQorICB9IGVsc2UgaWYgKEBhdmFpbGFibGUoaU9TIDExLCAqKSkgeworICAgIGlmIChb
aW5mby5uYW1lIGlzRXF1YWxUb1N0cmluZzprUlRDVmlkZW9Db2RlY0gyNjVOYW1lXSkgeworICAg
ICAgcmV0dXJuIFtbUlRDVmlkZW9FbmNvZGVySDI2NSBhbGxvY10gaW5pdFdpdGhDb2RlY0luZm86
aW5mb107CisgICAgfQogI2VuZGlmCiAgIH0KIApAQCAtNzYsMTIgKzEwMiw5IEBAIEBpbXBsZW1l
bnRhdGlvbiBSVENEZWZhdWx0VmlkZW9FbmNvZGVyRmFjdG9yeQogICBOU011dGFibGVBcnJheTxS
VENWaWRlb0NvZGVjSW5mbyAqPiAqY29kZWNzID0gW1tbc2VsZiBjbGFzc10gc3VwcG9ydGVkQ29k
ZWNzXSBtdXRhYmxlQ29weV07CiAKICAgTlNNdXRhYmxlQXJyYXk8UlRDVmlkZW9Db2RlY0luZm8g
Kj4gKm9yZGVyZWRDb2RlY3MgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOwotICBOU1VJbnRlZ2Vy
IGluZGV4ID0gW2NvZGVjcyBpbmRleE9mT2JqZWN0OnNlbGYucHJlZmVycmVkQ29kZWNdOwotICBp
ZiAoaW5kZXggIT0gTlNOb3RGb3VuZCkgewotICAgIFtvcmRlcmVkQ29kZWNzIGFkZE9iamVjdDpb
Y29kZWNzIG9iamVjdEF0SW5kZXg6aW5kZXhdXTsKLSAgICBbY29kZWNzIHJlbW92ZU9iamVjdEF0
SW5kZXg6aW5kZXhdOwotICB9CiAgIFtvcmRlcmVkQ29kZWNzIGFkZE9iamVjdHNGcm9tQXJyYXk6
Y29kZWNzXTsKKyAgaWYgKCFfc3VwcG9ydEgyNjUpCisgICAgW29yZGVyZWRDb2RlY3MgcmVtb3Zl
T2JqZWN0QXRJbmRleDowXTsKIAogICByZXR1cm4gW29yZGVyZWRDb2RlY3MgY29weV07CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTM0ODZk
MDZkNDEyN2U5NzgzOTI5ZmU0MGJlZGIzM2E1YzY3YjJmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50
cy92aWRlb19jb2RlYy9SVENIMjY1UHJvZmlsZUxldmVsSWQuaApAQCAtMCwwICsxLDE2IEBACisv
KgorICogIENvcHlyaWdodCAyMDE3IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l
ZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJ
Q0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRp
b25hbCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICog
IGluIHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBt
YXkKKyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBz
b3VyY2UgdHJlZS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKwor
I2ltcG9ydCAiUlRDTWFjcm9zLmgiCisKK1JUQ19PQkpDX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcg
KmNvbnN0IGtSVENWaWRlb0NvZGVjSDI2NU5hbWU7CitSVENfT0JKQ19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICpjb25zdCBrUlRDTGV2ZWwzMU1haW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2Nv
ZGVjL1JUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDSDI2NVBy
b2ZpbGVMZXZlbElkLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhZDQ0ZTJhNTkzMzJmNzZmOWJiODU1MTY0NmRj
ZDczMmI5MDUzMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0gyNjVQ
cm9maWxlTGV2ZWxJZC5tbQpAQCAtMCwwICsxLDE4IEBACisvKgorICogIENvcHlyaWdodCAyMDE4
IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
ICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNl
bnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9v
dCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJv
cGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMu
ICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0
aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqCisgKi8K
KworI2ltcG9ydCAiUlRDSDI2NVByb2ZpbGVMZXZlbElkLmgiCisKKyNpbmNsdWRlICJtZWRpYS9i
YXNlL21lZGlhX2NvbnN0YW50cy5oIgorCitOU1N0cmluZyAqY29uc3Qga1JUQ1ZpZGVvQ29kZWNI
MjY1TmFtZSA9IEAiSDI2NSI7CisvLyBUT0RPKGppYW5qdW56KTogVGhpcyBpcyB2YWx1ZSBpcyBu
b3QgY29ycmVjdC4KK05TU3RyaW5nICpjb25zdCBrUlRDTGV2ZWwzMU1haW4gPSBAIjRkMDAxZiI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVu
dHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2NS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzOWIzODI4
OWMyZjE5YmNhZDJmMDQ0YTAwODk2OWE5NTBlMjdlMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2RlckgyNjUuaApAQCAtMCwwICsxLDE5IEBACisvKgor
ICogIENvcHlyaWdodCAyMDE3IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBi
eSBhIEJTRC1zdHlsZSBsaWNlbnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VO
U0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25h
bCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGlu
IHRoZSBmaWxlIFBBVEVOVFMuICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkK
KyAqICBiZSBmb3VuZCBpbiB0aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3Vy
Y2UgdHJlZS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworI2lt
cG9ydCAiUlRDTWFjcm9zLmgiCisjaW1wb3J0ICJSVENWaWRlb0RlY29kZXIuaCIKKworUlRDX09C
SkNfRVhQT1JUCitfX2F0dHJpYnV0ZV9fKChvYmpjX3J1bnRpbWVfbmFtZSgiV0tfUlRDVmlkZW9E
ZWNvZGVySDI2NSIpKSkKK0BpbnRlcmZhY2UgUlRDVmlkZW9EZWNvZGVySDI2NSA6IE5TT2JqZWN0
IDxSVENWaWRlb0RlY29kZXI+CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JU
Q1ZpZGVvRGVjb2RlckgyNjUubW0gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRGVjb2Rlckgy
NjUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDQ2MjY2OGE2MTg5NDBjODM5YWI4NjJjYTFhMzE0ZTU5ZjU5Y2Zk
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
d2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRDVmlkZW9EZWNvZGVySDI2
NS5tbQpAQCAtMCwwICsxLDI3MCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdl
YlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBv
ZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAq
ICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRo
ZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlvbmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBy
aWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAgaW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBj
b250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1heQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRI
T1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNvdXJjZSB0cmVlLgorICoKKyAqLworCisjaW1w
b3J0ICJSVENWaWRlb0RlY29kZXJIMjY1LmgiCisKKyNpbXBvcnQgPFZpZGVvVG9vbGJveC9WaWRl
b1Rvb2xib3guaD4KKworI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lLmgiCisjaW1wb3J0ICJi
YXNlL1JUQ1ZpZGVvRnJhbWVCdWZmZXIuaCIKKyNpbXBvcnQgImNvbXBvbmVudHMvdmlkZW9fZnJh
bWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIuaCIKKyNpbXBvcnQgImhlbHBlcnMuaCIKKyNpbXBv
cnQgImhlbHBlcnMvc2NvcGVkX2NmdHlwZXJlZi5oIgorCisjaW5jbHVkZSAibW9kdWxlcy92aWRl
b19jb2RpbmcvaW5jbHVkZS92aWRlb19lcnJvcl9jb2Rlcy5oIgorI2luY2x1ZGUgInJ0Y19iYXNl
L2NoZWNrcy5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKyNpbmNsdWRlICJydGNf
YmFzZS90aW1lX3V0aWxzLmgiCisjaW5jbHVkZSAic2RrL29iamMvY29tcG9uZW50cy92aWRlb19j
b2RlYy9uYWx1X3Jld3JpdGVyLmgiCisKKy8vIFN0cnVjdCB0aGF0IHdlIHBhc3MgdG8gdGhlIGRl
Y29kZXIgcGVyIGZyYW1lIHRvIGRlY29kZS4gV2UgcmVjZWl2ZSBpdCBhZ2FpbgorLy8gaW4gdGhl
IGRlY29kZXIgY2FsbGJhY2suCitzdHJ1Y3QgUlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zIHsKKyAg
UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zKFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIGNiLCBpbnQ2
NF90IHRzKQorICAgICAgOiBjYWxsYmFjayhjYiksIHRpbWVzdGFtcCh0cykge30KKyAgUlRDVmlk
ZW9EZWNvZGVyQ2FsbGJhY2sgY2FsbGJhY2s7CisgIGludDY0X3QgdGltZXN0YW1wOworfTsKKwor
Ly8gVGhpcyBpcyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBWaWRlb1Rvb2xib3ggY2FsbHMg
d2hlbiBkZWNvZGUgaXMKKy8vIGNvbXBsZXRlLgordm9pZCBoMjY1RGVjb21wcmVzc2lvbk91dHB1
dENhbGxiYWNrKHZvaWQqIGRlY29kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCogcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE9TU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW
VERlY29kZUluZm9GbGFncyBpbmZvRmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ1ZJbWFnZUJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBDTVRpbWUgdGltZXN0YW1wLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENNVGltZSBkdXJhdGlvbikgeworICBzdGQ6OnVuaXF1ZV9wdHI8
UlRDSDI2NUZyYW1lRGVjb2RlUGFyYW1zPiBkZWNvZGVQYXJhbXMoCisgICAgICByZWludGVycHJl
dF9jYXN0PFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyo+KHBhcmFtcykpOworICBpZiAoc3RhdHVz
ICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBkZWNvZGUg
ZnJhbWUuIFN0YXR1czogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuOworICB9CisgIC8vIFRPRE8o
dGtjaGluKTogSGFuZGxlIENWTyBwcm9wZXJseS4KKyAgUlRDQ1ZQaXhlbEJ1ZmZlciogZnJhbWVC
dWZmZXIgPQorICAgICAgW1tSVENDVlBpeGVsQnVmZmVyIGFsbG9jXSBpbml0V2l0aFBpeGVsQnVm
ZmVyOmltYWdlQnVmZmVyXTsKKyAgUlRDVmlkZW9GcmFtZSogZGVjb2RlZEZyYW1lID0gW1tSVENW
aWRlb0ZyYW1lIGFsbG9jXQorICAgICAgaW5pdFdpdGhCdWZmZXI6ZnJhbWVCdWZmZXIKKyAgICAg
ICAgICAgIHJvdGF0aW9uOlJUQ1ZpZGVvUm90YXRpb25fMAorICAgICAgICAgdGltZVN0YW1wTnM6
Q01UaW1lR2V0U2Vjb25kcyh0aW1lc3RhbXApICogcnRjOjprTnVtTmFub3NlY3NQZXJTZWNdOwor
ICBkZWNvZGVkRnJhbWUudGltZVN0YW1wID0gZGVjb2RlUGFyYW1zLT50aW1lc3RhbXA7CisgIGRl
Y29kZVBhcmFtcy0+Y2FsbGJhY2soZGVjb2RlZEZyYW1lKTsKK30KKworLy8gRGVjb2Rlci4KK0Bp
bXBsZW1lbnRhdGlvbiBSVENWaWRlb0RlY29kZXJIMjY1IHsKKyAgQ01WaWRlb0Zvcm1hdERlc2Ny
aXB0aW9uUmVmIF92aWRlb0Zvcm1hdDsKKyAgVlREZWNvbXByZXNzaW9uU2Vzc2lvblJlZiBfZGVj
b21wcmVzc2lvblNlc3Npb247CisgIFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrIF9jYWxsYmFjazsK
KyAgT1NTdGF0dXMgX2Vycm9yOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdCB7CisgIGlmIChz
ZWxmID0gW3N1cGVyIGluaXRdKSB7CisgIH0KKworICByZXR1cm4gc2VsZjsKK30KKworLSAodm9p
ZClkZWFsbG9jIHsKKyAgW3NlbGYgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXTsKKyAgW3Nl
bGYgc2V0VmlkZW9Gb3JtYXQ6bnVsbHB0cl07Cit9CisKKy0gKE5TSW50ZWdlcilzdGFydERlY29k
ZVdpdGhOdW1iZXJPZkNvcmVzOihpbnQpbnVtYmVyT2ZDb3JlcyB7CisgIHJldHVybiBXRUJSVENf
VklERU9fQ09ERUNfT0s7Cit9CisKKy0gKE5TSW50ZWdlcilkZWNvZGU6KFJUQ0VuY29kZWRJbWFn
ZSopaW5wdXRJbWFnZQorICAgICAgICAgIG1pc3NpbmdGcmFtZXM6KEJPT0wpbWlzc2luZ0ZyYW1l
cworICAgICAgY29kZWNTcGVjaWZpY0luZm86KF9fbnVsbGFibGUgaWQ8UlRDQ29kZWNTcGVjaWZp
Y0luZm8+KWluZm8KKyAgICAgICAgICAgcmVuZGVyVGltZU1zOihpbnQ2NF90KXJlbmRlclRpbWVN
cyB7CisgIFJUQ19EQ0hFQ0soaW5wdXRJbWFnZS5idWZmZXIpOworCisgIGlmIChfZXJyb3IgIT0g
bm9FcnIpIHsKKyAgICBSVENfTE9HKExTX1dBUk5JTkcpIDw8ICJMYXN0IGZyYW1lIGRlY29kZSBm
YWlsZWQuIjsKKyAgICBfZXJyb3IgPSBub0VycjsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NP
REVDX0VSUk9SOworICB9CisKKyAgcnRjOjpTY29wZWRDRlR5cGVSZWY8Q01WaWRlb0Zvcm1hdERl
c2NyaXB0aW9uUmVmPiBpbnB1dEZvcm1hdCA9CisgICAgICBydGM6OlNjb3BlZENGKHdlYnJ0Yzo6
Q3JlYXRlSDI2NVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCisgICAgICAgICAgKHVpbnQ4X3QqKWlu
cHV0SW1hZ2UuYnVmZmVyLmJ5dGVzLCBpbnB1dEltYWdlLmJ1ZmZlci5sZW5ndGgpKTsKKyAgaWYg
KGlucHV0Rm9ybWF0KSB7CisgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9CisgICAg
ICAgIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoaW5wdXRGb3JtYXQuZ2V0
KCkpOworICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIlJlc29sdXRpb246ICIgPDwgZGltZW5zaW9u
cy53aWR0aCA8PCAiIHggIgorICAgICAgICAgICAgICAgICAgICAgPDwgZGltZW5zaW9ucy5oZWln
aHQ7CisgICAgLy8gQ2hlY2sgaWYgdGhlIHZpZGVvIGZvcm1hdCBoYXMgY2hhbmdlZCwgYW5kIHJl
aW5pdGlhbGl6ZSBkZWNvZGVyIGlmCisgICAgLy8gbmVlZGVkLgorICAgIGlmICghQ01Gb3JtYXRE
ZXNjcmlwdGlvbkVxdWFsKGlucHV0Rm9ybWF0LmdldCgpLCBfdmlkZW9Gb3JtYXQpKSB7CisgICAg
ICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDppbnB1dEZvcm1hdC5nZXQoKV07CisgICAgICBpbnQgcmVz
ZXREZWNvbXByZXNzaW9uU2Vzc2lvbkVycm9yID0gW3NlbGYgcmVzZXREZWNvbXByZXNzaW9uU2Vz
c2lvbl07CisgICAgICBpZiAocmVzZXREZWNvbXByZXNzaW9uU2Vzc2lvbkVycm9yICE9IFdFQlJU
Q19WSURFT19DT0RFQ19PSykgeworICAgICAgICByZXR1cm4gcmVzZXREZWNvbXByZXNzaW9uU2Vz
c2lvbkVycm9yOworICAgICAgfQorICAgIH0KKyAgfQorICBpZiAoIV92aWRlb0Zvcm1hdCkgewor
ICAgIC8vIFdlIHJlY2VpdmVkIGEgZnJhbWUgYnV0IHdlIGRvbid0IGhhdmUgZm9ybWF0IGluZm9y
bWF0aW9uIHNvIHdlIGNhbid0CisgICAgLy8gZGVjb2RlIGl0LgorICAgIC8vIFRoaXMgY2FuIGhh
cHBlbiBhZnRlciBiYWNrZ3JvdW5kaW5nLiBXZSBuZWVkIHRvIHdhaXQgZm9yIHRoZSBuZXh0Cisg
ICAgLy8gc3BzL3BwcyBiZWZvcmUgd2UgY2FuIHJlc3VtZSBzbyB3ZSByZXF1ZXN0IGEga2V5ZnJh
bWUgYnkgcmV0dXJuaW5nIGFuCisgICAgLy8gZXJyb3IuCisgICAgUlRDX0xPRyhMU19XQVJOSU5H
KSA8PCAiTWlzc2luZyB2aWRlbyBmb3JtYXQuIEZyYW1lIHdpdGggc3BzL3BwcyByZXF1aXJlZC4i
OworICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgIH0KKyAgQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKKyAgaWYgKCF3ZWJydGM6OkgyNjVBbm5l
eEJCdWZmZXJUb0NNU2FtcGxlQnVmZmVyKAorICAgICAgICAgICh1aW50OF90KilpbnB1dEltYWdl
LmJ1ZmZlci5ieXRlcywgaW5wdXRJbWFnZS5idWZmZXIubGVuZ3RoLAorICAgICAgICAgIF92aWRl
b0Zvcm1hdCwgJnNhbXBsZUJ1ZmZlcikpIHsKKyAgICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVD
X0VSUk9SOworICB9CisgIFJUQ19EQ0hFQ0soc2FtcGxlQnVmZmVyKTsKKyAgVlREZWNvZGVGcmFt
ZUZsYWdzIGRlY29kZUZsYWdzID0KKyAgICAgIGtWVERlY29kZUZyYW1lX0VuYWJsZUFzeW5jaHJv
bm91c0RlY29tcHJlc3Npb247CisgIHN0ZDo6dW5pcXVlX3B0cjxSVENIMjY1RnJhbWVEZWNvZGVQ
YXJhbXM+IGZyYW1lRGVjb2RlUGFyYW1zOworICBmcmFtZURlY29kZVBhcmFtcy5yZXNldCgKKyAg
ICAgIG5ldyBSVENIMjY1RnJhbWVEZWNvZGVQYXJhbXMoX2NhbGxiYWNrLCBpbnB1dEltYWdlLnRp
bWVTdGFtcCkpOworICBPU1N0YXR1cyBzdGF0dXMgPSBWVERlY29tcHJlc3Npb25TZXNzaW9uRGVj
b2RlRnJhbWUoCisgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlciwgZGVj
b2RlRmxhZ3MsCisgICAgICBmcmFtZURlY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOwor
I2lmIGRlZmluZWQoV0VCUlRDX0lPUykKKyAgLy8gUmUtaW5pdGlhbGl6ZSB0aGUgZGVjb2RlciBp
ZiB3ZSBoYXZlIGFuIGludmFsaWQgc2Vzc2lvbiB3aGlsZSB0aGUgYXBwIGlzCisgIC8vIGFjdGl2
ZSBhbmQgcmV0cnkgdGhlIGRlY29kZSByZXF1ZXN0LgorICBpZiAoc3RhdHVzID09IGtWVEludmFs
aWRTZXNzaW9uRXJyICYmCisgICAgICBbc2VsZiByZXNldERlY29tcHJlc3Npb25TZXNzaW9uXSA9
PSBXRUJSVENfVklERU9fQ09ERUNfT0spIHsKKyAgICBmcmFtZURlY29kZVBhcmFtcy5yZXNldCgK
KyAgICAgICAgbmV3IFJUQ0gyNjVGcmFtZURlY29kZVBhcmFtcyhfY2FsbGJhY2ssIGlucHV0SW1h
Z2UudGltZVN0YW1wKSk7CisgICAgc3RhdHVzID0gVlREZWNvbXByZXNzaW9uU2Vzc2lvbkRlY29k
ZUZyYW1lKAorICAgICAgICBfZGVjb21wcmVzc2lvblNlc3Npb24sIHNhbXBsZUJ1ZmZlciwgZGVj
b2RlRmxhZ3MsCisgICAgICAgIGZyYW1lRGVjb2RlUGFyYW1zLnJlbGVhc2UoKSwgbnVsbHB0cik7
CisgIH0KKyNlbmRpZgorICBDRlJlbGVhc2Uoc2FtcGxlQnVmZmVyKTsKKyAgaWYgKHN0YXR1cyAh
PSBub0VycikgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZGVjb2RlIGZy
YW1lIHdpdGggY29kZTogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RF
Q19FUlJPUjsKKyAgfQorICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistICh2
b2lkKXNldENhbGxiYWNrOihSVENWaWRlb0RlY29kZXJDYWxsYmFjayljYWxsYmFjayB7CisgIF9j
YWxsYmFjayA9IGNhbGxiYWNrOworfQorCistIChOU0ludGVnZXIpcmVsZWFzZURlY29kZXIgewor
ICAvLyBOZWVkIHRvIGludmFsaWRhdGUgdGhlIHNlc3Npb24gc28gdGhhdCBjYWxsYmFja3Mgbm8g
bG9uZ2VyIG9jY3VyIGFuZCBpdAorICAvLyBpcyBzYWZlIHRvIG51bGwgb3V0IHRoZSBjYWxsYmFj
ay4KKyAgW3NlbGYgZGVzdHJveURlY29tcHJlc3Npb25TZXNzaW9uXTsKKyAgW3NlbGYgc2V0Vmlk
ZW9Gb3JtYXQ6bnVsbHB0cl07CisgIF9jYWxsYmFjayA9IG51bGxwdHI7CisgIHJldHVybiBXRUJS
VENfVklERU9fQ09ERUNfT0s7Cit9CisKKyNwcmFnbWEgbWFyayAtIFByaXZhdGUKKworLSAoaW50
KXJlc2V0RGVjb21wcmVzc2lvblNlc3Npb24geworICBbc2VsZiBkZXN0cm95RGVjb21wcmVzc2lv
blNlc3Npb25dOworCisgIC8vIE5lZWQgdG8gd2FpdCBmb3IgdGhlIGZpcnN0IFNQUyB0byBpbml0
aWFsaXplIGRlY29kZXIuCisgIGlmICghX3ZpZGVvRm9ybWF0KSB7CisgICAgcmV0dXJuIFdFQlJU
Q19WSURFT19DT0RFQ19PSzsKKyAgfQorCisgIC8vIFNldCBrZXlzIGZvciBPcGVuR0wgYW5kIElP
U3VyZmFjZSBjb21wYXRpYmlsdHksIHdoaWNoIG1ha2VzIHRoZSBlbmNvZGVyCisgIC8vIGNyZWF0
ZSBwaXhlbCBidWZmZXJzIHdpdGggR1BVIGJhY2tlZCBtZW1vcnkuIFRoZSBpbnRlbnQgaGVyZSBp
cyB0byBwYXNzCisgIC8vIHRoZSBwaXhlbCBidWZmZXJzIGRpcmVjdGx5IHNvIHdlIGF2b2lkIGEg
dGV4dHVyZSB1cGxvYWQgbGF0ZXIgZHVyaW5nCisgIC8vIHJlbmRlcmluZy4gVGhpcyBjdXJyZW50
bHkgaXMgbW9vdCBiZWNhdXNlIHdlIGFyZSBjb252ZXJ0aW5nIGJhY2sgdG8gYW4KKyAgLy8gSTQy
MCBmcmFtZSBhZnRlciBkZWNvZGUsIGJ1dCBldmVudHVhbGx5IHdlIHdpbGwgYmUgYWJsZSB0byBw
bHVtYgorICAvLyBDVlBpeGVsQnVmZmVycyBkaXJlY3RseSB0byB0aGUgcmVuZGVyZXIuCisgIC8v
IFRPRE8odGtjaGluKTogTWF5YmUgb25seSBzZXQgT3BlbkdML0lPU3VyZmFjZSBrZXlzIGlmIHdl
IGtub3cgdGhhdCB0aGF0CisgIC8vIHdlIGNhbiBwYXNzIENWUGl4ZWxCdWZmZXJzIGFzIG5hdGl2
ZSBoYW5kbGVzIGluIGRlY29kZXIgb3V0cHV0LgorICBzdGF0aWMgc2l6ZV90IGNvbnN0IGF0dHJp
YnV0ZXNTaXplID0gMzsKKyAgQ0ZUeXBlUmVmIGtleXNbYXR0cmlidXRlc1NpemVdID0geworI2lm
IGRlZmluZWQoV0VCUlRDX0lPUykKKyAgICBrQ1ZQaXhlbEJ1ZmZlck9wZW5HTEVTQ29tcGF0aWJp
bGl0eUtleSwKKyNlbGlmIGRlZmluZWQoV0VCUlRDX01BQykKKyAgICBrQ1ZQaXhlbEJ1ZmZlck9w
ZW5HTENvbXBhdGliaWxpdHlLZXksCisjZW5kaWYKKyAgICBrQ1ZQaXhlbEJ1ZmZlcklPU3VyZmFj
ZVByb3BlcnRpZXNLZXksCisgICAga0NWUGl4ZWxCdWZmZXJQaXhlbEZvcm1hdFR5cGVLZXkKKyAg
fTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIGlvU3VyZmFjZVZhbHVlID0gQ3JlYXRlQ0ZUeXBlRGljdGlv
bmFyeShudWxscHRyLCBudWxscHRyLCAwKTsKKyAgaW50NjRfdCBudjEydHlwZSA9IGtDVlBpeGVs
Rm9ybWF0VHlwZV80MjBZcENiQ3I4QmlQbGFuYXJGdWxsUmFuZ2U7CisgIENGTnVtYmVyUmVmIHBp
eGVsRm9ybWF0ID0KKyAgICAgIENGTnVtYmVyQ3JlYXRlKG51bGxwdHIsIGtDRk51bWJlckxvbmdU
eXBlLCAmbnYxMnR5cGUpOworICBDRlR5cGVSZWYgdmFsdWVzW2F0dHJpYnV0ZXNTaXplXSA9IHtr
Q0ZCb29sZWFuVHJ1ZSwgaW9TdXJmYWNlVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBpeGVsRm9ybWF0fTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMg
PQorICAgICAgQ3JlYXRlQ0ZUeXBlRGljdGlvbmFyeShrZXlzLCB2YWx1ZXMsIGF0dHJpYnV0ZXNT
aXplKTsKKyAgaWYgKGlvU3VyZmFjZVZhbHVlKSB7CisgICAgQ0ZSZWxlYXNlKGlvU3VyZmFjZVZh
bHVlKTsKKyAgICBpb1N1cmZhY2VWYWx1ZSA9IG51bGxwdHI7CisgIH0KKyAgaWYgKHBpeGVsRm9y
bWF0KSB7CisgICAgQ0ZSZWxlYXNlKHBpeGVsRm9ybWF0KTsKKyAgICBwaXhlbEZvcm1hdCA9IG51
bGxwdHI7CisgIH0KKyAgVlREZWNvbXByZXNzaW9uT3V0cHV0Q2FsbGJhY2tSZWNvcmQgcmVjb3Jk
ID0geworICAgICAgaDI2NURlY29tcHJlc3Npb25PdXRwdXRDYWxsYmFjaywKKyAgICAgIG51bGxw
dHIsCisgIH07CisgIE9TU3RhdHVzIHN0YXR1cyA9CisgICAgICBWVERlY29tcHJlc3Npb25TZXNz
aW9uQ3JlYXRlKG51bGxwdHIsIF92aWRlb0Zvcm1hdCwgbnVsbHB0ciwgYXR0cmlidXRlcywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlY29yZCwgJl9kZWNvbXByZXNzaW9u
U2Vzc2lvbik7CisgIENGUmVsZWFzZShhdHRyaWJ1dGVzKTsKKyAgaWYgKHN0YXR1cyAhPSBub0Vy
cikgeworICAgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CisgICAgcmV0dXJu
IFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgfQorICBbc2VsZiBjb25maWd1cmVEZWNvbXBy
ZXNzaW9uU2Vzc2lvbl07CisKKyAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19PSzsKK30KKwor
LSAodm9pZCljb25maWd1cmVEZWNvbXByZXNzaW9uU2Vzc2lvbiB7CisgIFJUQ19EQ0hFQ0soX2Rl
Y29tcHJlc3Npb25TZXNzaW9uKTsKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgIFZUU2Vzc2lv
blNldFByb3BlcnR5KF9kZWNvbXByZXNzaW9uU2Vzc2lvbiwga1ZURGVjb21wcmVzc2lvblByb3Bl
cnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CisjZW5kaWYKK30KKworLSAodm9pZClk
ZXN0cm95RGVjb21wcmVzc2lvblNlc3Npb24geworICBpZiAoX2RlY29tcHJlc3Npb25TZXNzaW9u
KSB7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25X
YWl0Rm9yQXN5bmNocm9ub3VzRnJhbWVzKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisjZW5kaWYK
KyAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShfZGVjb21wcmVzc2lvblNlc3Np
b24pOworICAgIENGUmVsZWFzZShfZGVjb21wcmVzc2lvblNlc3Npb24pOworICAgIF9kZWNvbXBy
ZXNzaW9uU2Vzc2lvbiA9IG51bGxwdHI7CisgIH0KK30KKworLSAodm9pZClzZXRWaWRlb0Zvcm1h
dDooQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKXZpZGVvRm9ybWF0IHsKKyAgaWYgKF92aWRl
b0Zvcm1hdCA9PSB2aWRlb0Zvcm1hdCkgeworICAgIHJldHVybjsKKyAgfQorICBpZiAoX3ZpZGVv
Rm9ybWF0KSB7CisgICAgQ0ZSZWxlYXNlKF92aWRlb0Zvcm1hdCk7CisgIH0KKyAgX3ZpZGVvRm9y
bWF0ID0gdmlkZW9Gb3JtYXQ7CisgIGlmIChfdmlkZW9Gb3JtYXQpIHsKKyAgICBDRlJldGFpbihf
dmlkZW9Gb3JtYXQpOworICB9Cit9CisKKy0gKE5TU3RyaW5nKilpbXBsZW1lbnRhdGlvbk5hbWUg
eworICByZXR1cm4gQCJWaWRlb1Rvb2xib3giOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRz
L3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvUlRD
VmlkZW9FbmNvZGVySDI2NS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlNmE3NGFmZDgyOWQ4NzNhOTE4MTdkYmE5
NmViNWNiNzMwNDY5YzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1Zp
ZGVvRW5jb2RlckgyNjUuaApAQCAtMCwwICsxLDIzIEBACisvKgorICogIENvcHlyaWdodCAyMDE3
IFRoZSBXZWJSVEMgcHJvamVjdCBhdXRob3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
ICBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNl
bnNlCisgKiAgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9v
dCBvZiB0aGUgc291cmNlCisgKiAgdHJlZS4gQW4gYWRkaXRpb25hbCBpbnRlbGxlY3R1YWwgcHJv
cGVydHkgcmlnaHRzIGdyYW50IGNhbiBiZSBmb3VuZAorICogIGluIHRoZSBmaWxlIFBBVEVOVFMu
ICBBbGwgY29udHJpYnV0aW5nIHByb2plY3QgYXV0aG9ycyBtYXkKKyAqICBiZSBmb3VuZCBpbiB0
aGUgQVVUSE9SUyBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZS4KKyAqLworCisj
aW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworI2ltcG9ydCAiUlRDTWFjcm9zLmgi
CisjaW1wb3J0ICJSVENWaWRlb0NvZGVjSW5mby5oIgorI2ltcG9ydCAiUlRDVmlkZW9FbmNvZGVy
LmgiCisKK1JUQ19PQkpDX0VYUE9SVAorX19hdHRyaWJ1dGVfXygob2JqY19ydW50aW1lX25hbWUo
IldLX1JUQ1ZpZGVvRW5jb2RlckgyNjUiKSkpCitAaW50ZXJmYWNlIFJUQ1ZpZGVvRW5jb2Rlckgy
NjUgOiBOU09iamVjdCA8UlRDVmlkZW9FbmNvZGVyPgorCistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhDb2RlY0luZm86KFJUQ1ZpZGVvQ29kZWNJbmZvICopY29kZWNJbmZvOworCitAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2Jq
Yy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUubW0gYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3Zp
ZGVvX2NvZGVjL1JUQ1ZpZGVvRW5jb2RlckgyNjUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU3YzU3MDc3YWM3
MDMxYjQwNjFmNmZmMjY3MTYzNGJlNDZmMzI4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlk
ZW9fY29kZWMvUlRDVmlkZW9FbmNvZGVySDI2NS5tbQpAQCAtMCwwICsxLDU5MiBAQAorLyoKKyAq
ICBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIFdlYlJUQyBwcm9qZWN0IGF1dGhvcnMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKgorICogIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVk
IGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UKKyAqICB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElD
RU5TRSBmaWxlIGluIHRoZSByb290IG9mIHRoZSBzb3VyY2UKKyAqICB0cmVlLiBBbiBhZGRpdGlv
bmFsIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgZ3JhbnQgY2FuIGJlIGZvdW5kCisgKiAg
aW4gdGhlIGZpbGUgUEFURU5UUy4gIEFsbCBjb250cmlidXRpbmcgcHJvamVjdCBhdXRob3JzIG1h
eQorICogIGJlIGZvdW5kIGluIHRoZSBBVVRIT1JTIGZpbGUgaW4gdGhlIHJvb3Qgb2YgdGhlIHNv
dXJjZSB0cmVlLgorICoKKyAqLworCisjaW1wb3J0ICJSVENWaWRlb0VuY29kZXJIMjY1LmgiCisK
KyNpbXBvcnQgPFZpZGVvVG9vbGJveC9WaWRlb1Rvb2xib3guaD4KKyNpbmNsdWRlIDx2ZWN0b3I+
CisKKyNpbXBvcnQgIlJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5oIgorI2ltcG9ydCAiYXBpL3Bl
ZXJjb25uZWN0aW9uL1JUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIrUHJpdmF0ZS5oIgorI2ltcG9y
dCAiYXBpL3BlZXJjb25uZWN0aW9uL1JUQ1ZpZGVvQ29kZWNJbmZvK1ByaXZhdGUuaCIKKyNpbXBv
cnQgImJhc2UvUlRDSTQyMEJ1ZmZlci5oIgorI2ltcG9ydCAiYmFzZS9SVENWaWRlb0ZyYW1lLmgi
CisjaW1wb3J0ICJiYXNlL1JUQ1ZpZGVvRnJhbWVCdWZmZXIuaCIKKyNpbXBvcnQgImNvbXBvbmVu
dHMvdmlkZW9fZnJhbWVfYnVmZmVyL1JUQ0NWUGl4ZWxCdWZmZXIuaCIKKyNpbXBvcnQgImhlbHBl
cnMuaCIKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisjaW1wb3J0ICJoZWxwZXJzL1VJRGV2aWNl
K1JUQ0RldmljZS5oIgorI2VuZGlmCisKKyNpbmNsdWRlICJjb21tb25fdmlkZW8vaW5jbHVkZS9i
aXRyYXRlX2FkanVzdGVyLmgiCisjaW5jbHVkZSAibGlieXV2L2NvbnZlcnRfZnJvbS5oIgorI2lu
Y2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgiCisjaW5jbHVkZSAi
bW9kdWxlcy92aWRlb19jb2RpbmcvaW5jbHVkZS92aWRlb19lcnJvcl9jb2Rlcy5oIgorI2luY2x1
ZGUgInJ0Y19iYXNlL2J1ZmZlci5oIgorI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKyNp
bmNsdWRlICJydGNfYmFzZS90aW1lX3V0aWxzLmgiCisjaW5jbHVkZSAic2RrL29iamMvRnJhbWV3
b3JrL0NsYXNzZXMvVmlkZW9Ub29sYm94L25hbHVfcmV3cml0ZXIuaCIKKyNpbmNsdWRlICJzeXN0
ZW1fd3JhcHBlcnMvaW5jbHVkZS9jbG9jay5oIgorCitAaW50ZXJmYWNlIFJUQ1ZpZGVvRW5jb2Rl
ckgyNjUgKCkKKworLSAodm9pZClmcmFtZVdhc0VuY29kZWQ6KE9TU3RhdHVzKXN0YXR1cworICAg
ICAgICAgICAgICAgICAgZmxhZ3M6KFZURW5jb2RlSW5mb0ZsYWdzKWluZm9GbGFncworICAgICAg
ICAgICBzYW1wbGVCdWZmZXI6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlcgorICAgICAg
ICAgICAgICAgICAgd2lkdGg6KGludDMyX3Qpd2lkdGgKKyAgICAgICAgICAgICAgICAgaGVpZ2h0
OihpbnQzMl90KWhlaWdodAorICAgICAgICAgICByZW5kZXJUaW1lTXM6KGludDY0X3QpcmVuZGVy
VGltZU1zCisgICAgICAgICAgICAgIHRpbWVzdGFtcDoodWludDMyX3QpdGltZXN0YW1wCisgICAg
ICAgICAgICAgICByb3RhdGlvbjooUlRDVmlkZW9Sb3RhdGlvbilyb3RhdGlvbjsKKworQGVuZAor
CituYW1lc3BhY2UgeyAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCisvLyBUaGUgcmF0aW8gYmV0
d2VlbiBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0RhdGFSYXRlTGltaXRzIGFuZAorLy8ga1ZU
Q29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BdmVyYWdlQml0UmF0ZS4gVGhlIGRhdGEgcmF0ZSBsaW1p
dCBpcyBzZXQgaGlnaGVyCisvLyB0aGFuIHRoZSBhdmVyYWdlIGJpdCByYXRlIHRvIGF2b2lkIHVu
ZGVyc2hvb3RpbmcgdGhlIHRhcmdldC4KK2NvbnN0IGZsb2F0IGtMaW1pdFRvQXZlcmFnZUJpdFJh
dGVGYWN0b3IgPSAxLjVmOworLy8gVGhlc2UgdGhyZXNob2xkcyBkZXZpYXRlIGZyb20gdGhlIGRl
ZmF1bHQgaDI2NSBRUCB0aHJlc2hvbGRzLCBhcyB0aGV5CisvLyBoYXZlIGJlZW4gZm91bmQgdG8g
d29yayBiZXR0ZXIgb24gZGV2aWNlcyB0aGF0IHN1cHBvcnQgVmlkZW9Ub29sYm94Citjb25zdCBp
bnQga0xvd2gyNjVRcFRocmVzaG9sZCA9IDI4OworY29uc3QgaW50IGtIaWdoaDI2NVFwVGhyZXNo
b2xkID0gMzk7CisKKy8vIFN0cnVjdCB0aGF0IHdlIHBhc3MgdG8gdGhlIGVuY29kZXIgcGVyIGZy
YW1lIHRvIGVuY29kZS4gV2UgcmVjZWl2ZSBpdCBhZ2FpbgorLy8gaW4gdGhlIGVuY29kZXIgY2Fs
bGJhY2suCitzdHJ1Y3QgQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpIFJUQ0ZyYW1lRW5jb2RlUGFy
YW1zIHsKKyAgUlRDRnJhbWVFbmNvZGVQYXJhbXMoUlRDVmlkZW9FbmNvZGVySDI2NSogZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB3LAorICAgICAgICAgICAgICAgICAgICAgICBp
bnQzMl90IGgsCisgICAgICAgICAgICAgICAgICAgICAgIGludDY0X3QgcnRtcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgdWludDMyX3QgdHMsCisgICAgICAgICAgICAgICAgICAgICAgIFJUQ1Zp
ZGVvUm90YXRpb24gcikKKyAgICAgIDogZW5jb2RlcihlKSwKKyAgICAgICAgd2lkdGgodyksCisg
ICAgICAgIGhlaWdodChoKSwKKyAgICAgICAgcmVuZGVyX3RpbWVfbXMocnRtcyksCisgICAgICAg
IHRpbWVzdGFtcCh0cyksCisgICAgICAgIHJvdGF0aW9uKHIpIHt9CisKKyAgUlRDVmlkZW9FbmNv
ZGVySDI2NSogZW5jb2RlcjsKKyAgaW50MzJfdCB3aWR0aDsKKyAgaW50MzJfdCBoZWlnaHQ7Cisg
IGludDY0X3QgcmVuZGVyX3RpbWVfbXM7CisgIHVpbnQzMl90IHRpbWVzdGFtcDsKKyAgUlRDVmlk
ZW9Sb3RhdGlvbiByb3RhdGlvbjsKK307CisKKy8vIFdlIHJlY2VpdmUgSTQyMEZyYW1lcyBhcyBp
bnB1dCwgYnV0IHdlIG5lZWQgdG8gZmVlZCBDVlBpeGVsQnVmZmVycyBpbnRvIHRoZQorLy8gZW5j
b2Rlci4gVGhpcyBwZXJmb3JtcyB0aGUgY29weSBhbmQgZm9ybWF0IGNvbnZlcnNpb24uCisvLyBU
T0RPKHRrY2hpbik6IFNlZSBpZiBlbmNvZGVyIHdpbGwgYWNjZXB0IGk0MjAgZnJhbWVzIGFuZCBj
b21wYXJlIHBlcmZvcm1hbmNlLgorYm9vbCBDb3B5VmlkZW9GcmFtZVRvUGl4ZWxCdWZmZXIoaWQ8
UlRDSTQyMEJ1ZmZlcj4gZnJhbWVCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyKSB7CisgIFJUQ19EQ0hFQ0socGl4ZWxC
dWZmZXIpOworICBSVENfRENIRUNLX0VRKENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUo
cGl4ZWxCdWZmZXIpLAorICAgICAgICAgICAgICAgIGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENi
Q3I4QmlQbGFuYXJGdWxsUmFuZ2UpOworICBSVENfRENIRUNLX0VRKENWUGl4ZWxCdWZmZXJHZXRI
ZWlnaHRPZlBsYW5lKHBpeGVsQnVmZmVyLCAwKSwKKyAgICAgICAgICAgICAgICBmcmFtZUJ1ZmZl
ci5oZWlnaHQpOworICBSVENfRENIRUNLX0VRKENWUGl4ZWxCdWZmZXJHZXRXaWR0aE9mUGxhbmUo
cGl4ZWxCdWZmZXIsIDApLAorICAgICAgICAgICAgICAgIGZyYW1lQnVmZmVyLndpZHRoKTsKKwor
ICBDVlJldHVybiBjdlJldCA9IENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZm
ZXIsIDApOworICBpZiAoY3ZSZXQgIT0ga0NWUmV0dXJuU3VjY2VzcykgeworICAgIFJUQ19MT0co
TFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gbG9jayBiYXNlIGFkZHJlc3M6ICIgPDwgY3ZSZXQ7Cisg
ICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgdWludDhfdCogZHN0WSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dWludDhfdCo+KAorICAgICAgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShw
aXhlbEJ1ZmZlciwgMCkpOworICBpbnQgZHN0U3RyaWRlWSA9IENWUGl4ZWxCdWZmZXJHZXRCeXRl
c1BlclJvd09mUGxhbmUocGl4ZWxCdWZmZXIsIDApOworICB1aW50OF90KiBkc3RVViA9IHJlaW50
ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KAorICAgICAgQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNz
T2ZQbGFuZShwaXhlbEJ1ZmZlciwgMSkpOworICBpbnQgZHN0U3RyaWRlVVYgPSBDVlBpeGVsQnVm
ZmVyR2V0Qnl0ZXNQZXJSb3dPZlBsYW5lKHBpeGVsQnVmZmVyLCAxKTsKKyAgLy8gQ29udmVydCBJ
NDIwIHRvIE5WMTIuCisgIGludCByZXQgPSBsaWJ5dXY6Okk0MjBUb05WMTIoCisgICAgICBmcmFt
ZUJ1ZmZlci5kYXRhWSwgZnJhbWVCdWZmZXIuc3RyaWRlWSwgZnJhbWVCdWZmZXIuZGF0YVUsCisg
ICAgICBmcmFtZUJ1ZmZlci5zdHJpZGVVLCBmcmFtZUJ1ZmZlci5kYXRhViwgZnJhbWVCdWZmZXIu
c3RyaWRlViwgZHN0WSwKKyAgICAgIGRzdFN0cmlkZVksIGRzdFVWLCBkc3RTdHJpZGVVViwgZnJh
bWVCdWZmZXIud2lkdGgsIGZyYW1lQnVmZmVyLmhlaWdodCk7CisgIENWUGl4ZWxCdWZmZXJVbmxv
Y2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwgMCk7CisgIGlmIChyZXQpIHsKKyAgICBSVENfTE9H
KExTX0VSUk9SKSA8PCAiRXJyb3IgY29udmVydGluZyBJNDIwIFZpZGVvRnJhbWUgdG8gTlYxMiA6
IiA8PCByZXQ7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIHJldHVybiB0cnVlOworfQorCitD
VlBpeGVsQnVmZmVyUmVmIENyZWF0ZVBpeGVsQnVmZmVyKENWUGl4ZWxCdWZmZXJQb29sUmVmIHBp
eGVsX2J1ZmZlcl9wb29sKSB7CisgIGlmICghcGl4ZWxfYnVmZmVyX3Bvb2wpIHsKKyAgICBSVENf
TE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBwaXhlbCBidWZmZXIgcG9vbC4iOworICAg
IHJldHVybiBudWxscHRyOworICB9CisgIENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxfYnVmZmVyOwor
ICBDVlJldHVybiByZXQgPSBDVlBpeGVsQnVmZmVyUG9vbENyZWF0ZVBpeGVsQnVmZmVyKG51bGxw
dHIsIHBpeGVsX2J1ZmZlcl9wb29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZwaXhlbF9idWZmZXIpOworICBpZiAocmV0ICE9IGtDVlJldHVy
blN1Y2Nlc3MpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBw
aXhlbCBidWZmZXI6ICIgPDwgcmV0OworICAgIC8vIFdlIHByb2JhYmx5IHdhbnQgdG8gZHJvcCBm
cmFtZXMgaGVyZSwgc2luY2UgZmFpbHVyZSBwcm9iYWJseSBtZWFucworICAgIC8vIHRoYXQgdGhl
IHBvb2wgaXMgZW1wdHkuCisgICAgcmV0dXJuIG51bGxwdHI7CisgIH0KKyAgcmV0dXJuIHBpeGVs
X2J1ZmZlcjsKK30KKworLy8gVGhpcyBpcyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBWaWRl
b1Rvb2xib3ggY2FsbHMgd2hlbiBlbmNvZGUgaXMKKy8vIGNvbXBsZXRlLiBGcm9tIGluc3BlY3Rp
b24gdGhpcyBoYXBwZW5zIG9uIGl0cyBvd24gcXVldWUuCit2b2lkIGNvbXByZXNzaW9uT3V0cHV0
Q2FsbGJhY2sodm9pZCogZW5jb2RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
b2lkKiBwYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1NTdGF0dXMgc3Rh
dHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZURW5jb2RlSW5mb0ZsYWdzIGlu
Zm9GbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGVCdWZmZXIpCisgICAgQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpIHsKKyAgUlRDX0NI
RUNLKHBhcmFtcyk7CisgIHN0ZDo6dW5pcXVlX3B0cjxSVENGcmFtZUVuY29kZVBhcmFtcz4gZW5j
b2RlUGFyYW1zKAorICAgICAgcmVpbnRlcnByZXRfY2FzdDxSVENGcmFtZUVuY29kZVBhcmFtcyo+
KHBhcmFtcykpOworICBSVENfQ0hFQ0soZW5jb2RlUGFyYW1zLT5lbmNvZGVyKTsKKyAgW2VuY29k
ZVBhcmFtcy0+ZW5jb2RlciBmcmFtZVdhc0VuY29kZWQ6c3RhdHVzCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZsYWdzOmluZm9GbGFncworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNhbXBsZUJ1ZmZlcjpzYW1wbGVCdWZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgd2lkdGg6ZW5jb2RlUGFyYW1zLT53aWR0aAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlaWdodDplbmNvZGVQYXJhbXMtPmhlaWdodAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlbmRlclRpbWVNczplbmNvZGVQYXJhbXMtPnJlbmRlcl90aW1lX21z
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOmVuY29kZVBhcmFtcy0+
dGltZXN0YW1wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0aW9uOmVuY29k
ZVBhcmFtcy0+cm90YXRpb25dOworfQorfSAgLy8gbmFtZXNwYWNlCisKK0BpbXBsZW1lbnRhdGlv
biBSVENWaWRlb0VuY29kZXJIMjY1IHsKKyAgUlRDVmlkZW9Db2RlY0luZm8qIF9jb2RlY0luZm87
CisgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OkJpdHJhdGVBZGp1c3Rlcj4gX2JpdHJhdGVBZGp1
c3RlcjsKKyAgdWludDMyX3QgX3RhcmdldEJpdHJhdGVCcHM7CisgIHVpbnQzMl90IF9lbmNvZGVy
Qml0cmF0ZUJwczsKKyAgQ0ZTdHJpbmdSZWYgX3Byb2ZpbGU7CisgIFJUQ1ZpZGVvRW5jb2RlckNh
bGxiYWNrIF9jYWxsYmFjazsKKyAgaW50MzJfdCBfd2lkdGg7CisgIGludDMyX3QgX2hlaWdodDsK
KyAgVlRDb21wcmVzc2lvblNlc3Npb25SZWYgX2NvbXByZXNzaW9uU2Vzc2lvbjsKKyAgUlRDVmlk
ZW9Db2RlY01vZGUgX21vZGU7CisgIGludCBmcmFtZXNMZWZ0OworCisgIHN0ZDo6dmVjdG9yPHVp
bnQ4X3Q+IF9udjEyU2NhbGVCdWZmZXI7Cit9CisKKy8vIC41IGlzIHNldCBhcyBhIG1pbmludW0g
dG8gcHJldmVudCBvdmVyY29tcGVuc2F0aW5nIGZvciBsYXJnZSB0ZW1wb3JhcnkKKy8vIG92ZXJz
aG9vdHMuIFdlIGRvbid0IHdhbnQgdG8gZGVncmFkZSB2aWRlbyBxdWFsaXR5IHRvbyBiYWRseS4K
Ky8vIC45NSBpcyBzZXQgdG8gcHJldmVudCBvc2NpbGxhdGlvbnMuIFdoZW4gYSBsb3dlciBiaXRy
YXRlIGlzIHNldCBvbiB0aGUKKy8vIGVuY29kZXIgdGhhbiBwcmV2aW91c2x5IHNldCwgaXRzIG91
dHB1dCBzZWVtcyB0byBoYXZlIGEgYnJpZWYgcGVyaW9kIG9mCisvLyBkcmFzdGljYWxseSByZWR1
Y2VkIGJpdHJhdGUsIHNvIHdlIHdhbnQgdG8gYXZvaWQgdGhhdC4gSW4gc3RlYWR5IHN0YXRlCisv
LyBjb25kaXRpb25zLCAwLjk1IHNlZW1zIHRvIGdpdmUgdXMgYmV0dGVyIG92ZXJhbGwgYml0cmF0
ZSBvdmVyIGxvbmcgcGVyaW9kcworLy8gb2YgdGltZS4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aENvZGVjSW5mbzooUlRDVmlkZW9Db2RlY0luZm8qKWNvZGVjSW5mbyB7CisgIGlmIChzZWxmID0g
W3N1cGVyIGluaXRdKSB7CisgICAgX2NvZGVjSW5mbyA9IGNvZGVjSW5mbzsKKyAgICBfYml0cmF0
ZUFkanVzdGVyLnJlc2V0KG5ldyB3ZWJydGM6OkJpdHJhdGVBZGp1c3RlciguNSwgLjk1KSk7Cisg
ICAgUlRDX0NIRUNLKFtjb2RlY0luZm8ubmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJIMjY1Il0pOwor
ICB9CisgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MgeworICBbc2VsZiBkZXN0
cm95Q29tcHJlc3Npb25TZXNzaW9uXTsKK30KKworLSAoTlNJbnRlZ2VyKXN0YXJ0RW5jb2RlV2l0
aFNldHRpbmdzOihSVENWaWRlb0VuY29kZXJTZXR0aW5ncyopc2V0dGluZ3MKKyAgICAgICAgICAg
ICAgICAgICAgICAgbnVtYmVyT2ZDb3JlczooaW50KW51bWJlck9mQ29yZXMgeworICBSVENfRENI
RUNLKHNldHRpbmdzKTsKKyAgUlRDX0RDSEVDSyhbc2V0dGluZ3MubmFtZSBpc0VxdWFsVG9TdHJp
bmc6QCJIMjY1Il0pOworCisgIF93aWR0aCA9IHNldHRpbmdzLndpZHRoOworICBfaGVpZ2h0ID0g
c2V0dGluZ3MuaGVpZ2h0OworICBfbW9kZSA9IHNldHRpbmdzLm1vZGU7CisKKyAgLy8gV2UgY2Fu
IG9ubHkgc2V0IGF2ZXJhZ2UgYml0cmF0ZSBvbiB0aGUgSFcgZW5jb2Rlci4KKyAgX3RhcmdldEJp
dHJhdGVCcHMgPSBzZXR0aW5ncy5zdGFydEJpdHJhdGU7CisgIF9iaXRyYXRlQWRqdXN0ZXItPlNl
dFRhcmdldEJpdHJhdGVCcHMoX3RhcmdldEJpdHJhdGVCcHMpOworCisgIHJldHVybiBbc2VsZiBy
ZXNldENvbXByZXNzaW9uU2Vzc2lvbl07Cit9CisKKy0gKE5TSW50ZWdlcillbmNvZGU6KFJUQ1Zp
ZGVvRnJhbWUqKWZyYW1lCisgICAgY29kZWNTcGVjaWZpY0luZm86KGlkPFJUQ0NvZGVjU3BlY2lm
aWNJbmZvPiljb2RlY1NwZWNpZmljSW5mbworICAgICAgICAgICBmcmFtZVR5cGVzOihOU0FycmF5
PE5TTnVtYmVyKj4qKWZyYW1lVHlwZXMgeworICBSVENfRENIRUNLX0VRKGZyYW1lLndpZHRoLCBf
d2lkdGgpOworICBSVENfRENIRUNLX0VRKGZyYW1lLmhlaWdodCwgX2hlaWdodCk7CisgIGlmICgh
X2NhbGxiYWNrIHx8ICFfY29tcHJlc3Npb25TZXNzaW9uKSB7CisgICAgcmV0dXJuIFdFQlJUQ19W
SURFT19DT0RFQ19VTklOSVRJQUxJWkVEOworICB9CisgIEJPT0wgaXNLZXlmcmFtZVJlcXVpcmVk
ID0gTk87CisKKyAgLy8gR2V0IGEgcGl4ZWwgYnVmZmVyIGZyb20gdGhlIHBvb2wgYW5kIGNvcHkg
ZnJhbWUgZGF0YSBvdmVyLgorICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2wg
PQorICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25HZXRQaXhlbEJ1ZmZlclBvb2woX2NvbXByZXNz
aW9uU2Vzc2lvbik7CisKKyNpZiBkZWZpbmVkKFdFQlJUQ19JT1MpCisgIGlmICghcGl4ZWxCdWZm
ZXJQb29sKSB7CisgICAgLy8gS2luZCBvZiBhIGhhY2suIE9uIGJhY2tncm91bmRpbmcsIHRoZSBj
b21wcmVzc2lvbiBzZXNzaW9uIHNlZW1zIHRvIGdldAorICAgIC8vIGludmFsaWRhdGVkLCB3aGlj
aCBjYXVzZXMgdGhpcyBwb29sIGNhbGwgdG8gZmFpbCB3aGVuIHRoZSBhcHBsaWNhdGlvbgorICAg
IC8vIGlzIGZvcmVncm91bmRlZCBhbmQgZnJhbWVzIGFyZSBiZWluZyBzZW50IGZvciBlbmNvZGlu
ZyBhZ2Fpbi4KKyAgICAvLyBSZXNldHRpbmcgdGhlIHNlc3Npb24gd2hlbiB0aGlzIGhhcHBlbnMg
Zml4ZXMgdGhlIGlzc3VlLgorICAgIC8vIEluIGFkZGl0aW9uIHdlIHJlcXVlc3QgYSBrZXlmcmFt
ZSBzbyB2aWRlbyBjYW4gcmVjb3ZlciBxdWlja2x5LgorICAgIFtzZWxmIHJlc2V0Q29tcHJlc3Np
b25TZXNzaW9uXTsKKyAgICBwaXhlbEJ1ZmZlclBvb2wgPQorICAgICAgICBWVENvbXByZXNzaW9u
U2Vzc2lvbkdldFBpeGVsQnVmZmVyUG9vbChfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBpc0tl
eWZyYW1lUmVxdWlyZWQgPSBZRVM7CisgICAgUlRDX0xPRyhMU19JTkZPKSA8PCAiUmVzZXR0aW5n
IGNvbXByZXNzaW9uIHNlc3Npb24gZHVlIHRvIGludmFsaWQgcG9vbC4iOworICB9CisjZW5kaWYK
KworICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gbnVsbHB0cjsKKyAgaWYgKFtmcmFt
ZS5idWZmZXIgaXNLaW5kT2ZDbGFzczpbUlRDQ1ZQaXhlbEJ1ZmZlciBjbGFzc11dKSB7CisgICAg
Ly8gTmF0aXZlIGZyYW1lIGJ1ZmZlcgorICAgIFJUQ0NWUGl4ZWxCdWZmZXIqIHJ0Y1BpeGVsQnVm
ZmVyID0gKFJUQ0NWUGl4ZWxCdWZmZXIqKWZyYW1lLmJ1ZmZlcjsKKyAgICBpZiAoIVtydGNQaXhl
bEJ1ZmZlciByZXF1aXJlc0Nyb3BwaW5nXSkgeworICAgICAgLy8gVGhpcyBwaXhlbCBidWZmZXIg
bWlnaHQgaGF2ZSBhIGhpZ2hlciByZXNvbHV0aW9uIHRoYW4gd2hhdCB0aGUKKyAgICAgIC8vIGNv
bXByZXNzaW9uIHNlc3Npb24gaXMgY29uZmlndXJlZCB0by4gVGhlIGNvbXByZXNzaW9uIHNlc3Np
b24gY2FuCisgICAgICAvLyBoYW5kbGUgdGhhdCBhbmQgd2lsbCBvdXRwdXQgZW5jb2RlZCBmcmFt
ZXMgaW4gdGhlIGNvbmZpZ3VyZWQKKyAgICAgIC8vIHJlc29sdXRpb24gcmVnYXJkbGVzcyBvZiB0
aGUgaW5wdXQgcGl4ZWwgYnVmZmVyIHJlc29sdXRpb24uCisgICAgICBwaXhlbEJ1ZmZlciA9IHJ0
Y1BpeGVsQnVmZmVyLnBpeGVsQnVmZmVyOworICAgICAgQ1ZCdWZmZXJSZXRhaW4ocGl4ZWxCdWZm
ZXIpOworICAgIH0gZWxzZSB7CisgICAgICAvLyBDcm9wcGluZyByZXF1aXJlZCwgd2UgbmVlZCB0
byBjcm9wIGFuZCBzY2FsZSB0byBhIG5ldyBwaXhlbCBidWZmZXIuCisgICAgICBwaXhlbEJ1ZmZl
ciA9IENyZWF0ZVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyUG9vbCk7CisgICAgICBpZiAoIXBpeGVs
QnVmZmVyKSB7CisgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJST1I7CisgICAg
ICB9CisgICAgICBpbnQgZHN0V2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgocGl4ZWxCdWZm
ZXIpOworICAgICAgaW50IGRzdEhlaWdodCA9IENWUGl4ZWxCdWZmZXJHZXRIZWlnaHQocGl4ZWxC
dWZmZXIpOworICAgICAgaWYgKFtydGNQaXhlbEJ1ZmZlciByZXF1aXJlc1NjYWxpbmdUb1dpZHRo
OmRzdFdpZHRoIGhlaWdodDpkc3RIZWlnaHRdKSB7CisgICAgICAgIGludCBzaXplID0KKyAgICAg
ICAgICAgIFtydGNQaXhlbEJ1ZmZlciBidWZmZXJTaXplRm9yQ3JvcHBpbmdBbmRTY2FsaW5nVG9X
aWR0aDpkc3RXaWR0aAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0OmRzdEhlaWdodF07CisgICAgICAgIF9udjEyU2NhbGVC
dWZmZXIucmVzaXplKHNpemUpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgX252MTJTY2FsZUJ1
ZmZlci5jbGVhcigpOworICAgICAgfQorICAgICAgX252MTJTY2FsZUJ1ZmZlci5zaHJpbmtfdG9f
Zml0KCk7CisgICAgICBpZiAoIVtydGNQaXhlbEJ1ZmZlciBjcm9wQW5kU2NhbGVUbzpwaXhlbEJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFRlbXBCdWZmZXI6X252MTJTY2Fs
ZUJ1ZmZlci5kYXRhKCldKSB7CisgICAgICAgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfRVJS
T1I7CisgICAgICB9CisgICAgfQorICB9CisKKyAgaWYgKCFwaXhlbEJ1ZmZlcikgeworICAgIC8v
IFdlIGRpZCBub3QgaGF2ZSBhIG5hdGl2ZSBmcmFtZSBidWZmZXIKKyAgICBwaXhlbEJ1ZmZlciA9
IENyZWF0ZVBpeGVsQnVmZmVyKHBpeGVsQnVmZmVyUG9vbCk7CisgICAgaWYgKCFwaXhlbEJ1ZmZl
cikgeworICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RFQ19FUlJPUjsKKyAgICB9CisgICAg
UlRDX0RDSEVDSyhwaXhlbEJ1ZmZlcik7CisgICAgaWYgKCFDb3B5VmlkZW9GcmFtZVRvUGl4ZWxC
dWZmZXIoW2ZyYW1lLmJ1ZmZlciB0b0k0MjBdLCBwaXhlbEJ1ZmZlcikpIHsKKyAgICAgIFJUQ19M
T0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY29weSBmcmFtZSBkYXRhLiI7CisgICAgICBDVkJ1
ZmZlclJlbGVhc2UocGl4ZWxCdWZmZXIpOworICAgICAgcmV0dXJuIFdFQlJUQ19WSURFT19DT0RF
Q19FUlJPUjsKKyAgICB9CisgIH0KKworICAvLyBDaGVjayBpZiB3ZSBuZWVkIGEga2V5ZnJhbWUu
CisgIGlmICghaXNLZXlmcmFtZVJlcXVpcmVkICYmIGZyYW1lVHlwZXMpIHsKKyAgICBmb3IgKE5T
TnVtYmVyKiBmcmFtZVR5cGUgaW4gZnJhbWVUeXBlcykgeworICAgICAgaWYgKChSVENGcmFtZVR5
cGUpZnJhbWVUeXBlLmludFZhbHVlID09IFJUQ0ZyYW1lVHlwZVZpZGVvRnJhbWVLZXkpIHsKKyAg
ICAgICAgaXNLZXlmcmFtZVJlcXVpcmVkID0gWUVTOworICAgICAgICBicmVhazsKKyAgICAgIH0K
KyAgICB9CisgIH0KKworICBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wID0KKyAgICAgIENN
VGltZU1ha2UoZnJhbWUudGltZVN0YW1wTnMgLyBydGM6OmtOdW1OYW5vc2Vjc1Blck1pbGxpc2Vj
LCAxMDAwKTsKKyAgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVydGllcyA9IG51bGxwdHI7Cisg
IGlmIChpc0tleWZyYW1lUmVxdWlyZWQpIHsKKyAgICBDRlR5cGVSZWYga2V5c1tdID0ge2tWVEVu
Y29kZUZyYW1lT3B0aW9uS2V5X0ZvcmNlS2V5RnJhbWV9OworICAgIENGVHlwZVJlZiB2YWx1ZXNb
XSA9IHtrQ0ZCb29sZWFuVHJ1ZX07CisgICAgZnJhbWVQcm9wZXJ0aWVzID0gQ3JlYXRlQ0ZUeXBl
RGljdGlvbmFyeShrZXlzLCB2YWx1ZXMsIDEpOworICB9CisKKyAgc3RkOjp1bmlxdWVfcHRyPFJU
Q0ZyYW1lRW5jb2RlUGFyYW1zPiBlbmNvZGVQYXJhbXM7CisgIGVuY29kZVBhcmFtcy5yZXNldChu
ZXcgUlRDRnJhbWVFbmNvZGVQYXJhbXMoCisgICAgICBzZWxmLCBfd2lkdGgsIF9oZWlnaHQsIGZy
YW1lLnRpbWVTdGFtcE5zIC8gcnRjOjprTnVtTmFub3NlY3NQZXJNaWxsaXNlYywKKyAgICAgIGZy
YW1lLnRpbWVTdGFtcCwgZnJhbWUucm90YXRpb24pKTsKKworICAvLyBVcGRhdGUgdGhlIGJpdHJh
dGUgaWYgbmVlZGVkLgorICBbc2VsZiBzZXRCaXRyYXRlQnBzOl9iaXRyYXRlQWRqdXN0ZXItPkdl
dEFkanVzdGVkQml0cmF0ZUJwcygpXTsKKworICBPU1N0YXR1cyBzdGF0dXMgPSBWVENvbXByZXNz
aW9uU2Vzc2lvbkVuY29kZUZyYW1lKAorICAgICAgX2NvbXByZXNzaW9uU2Vzc2lvbiwgcGl4ZWxC
dWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwga0NNVGltZUludmFsaWQsCisgICAgICBmcmFt
ZVByb3BlcnRpZXMsIGVuY29kZVBhcmFtcy5yZWxlYXNlKCksIG51bGxwdHIpOworICBpZiAoZnJh
bWVQcm9wZXJ0aWVzKSB7CisgICAgQ0ZSZWxlYXNlKGZyYW1lUHJvcGVydGllcyk7CisgIH0KKyAg
aWYgKHBpeGVsQnVmZmVyKSB7CisgICAgQ1ZCdWZmZXJSZWxlYXNlKHBpeGVsQnVmZmVyKTsKKyAg
fQorICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZh
aWxlZCB0byBlbmNvZGUgZnJhbWUgd2l0aCBjb2RlOiAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4g
V0VCUlRDX1ZJREVPX0NPREVDX0VSUk9SOworICB9CisgIHJldHVybiBXRUJSVENfVklERU9fQ09E
RUNfT0s7Cit9CisKKy0gKHZvaWQpc2V0Q2FsbGJhY2s6KFJUQ1ZpZGVvRW5jb2RlckNhbGxiYWNr
KWNhbGxiYWNrIHsKKyAgX2NhbGxiYWNrID0gY2FsbGJhY2s7Cit9CisKKy0gKGludClzZXRCaXRy
YXRlOih1aW50MzJfdCliaXRyYXRlS2JpdCBmcmFtZXJhdGU6KHVpbnQzMl90KWZyYW1lcmF0ZSB7
CisgIF90YXJnZXRCaXRyYXRlQnBzID0gMTAwMCAqIGJpdHJhdGVLYml0OworICBfYml0cmF0ZUFk
anVzdGVyLT5TZXRUYXJnZXRCaXRyYXRlQnBzKF90YXJnZXRCaXRyYXRlQnBzKTsKKyAgW3NlbGYg
c2V0Qml0cmF0ZUJwczpfYml0cmF0ZUFkanVzdGVyLT5HZXRBZGp1c3RlZEJpdHJhdGVCcHMoKV07
CisgIHJldHVybiBXRUJSVENfVklERU9fQ09ERUNfT0s7Cit9CisKKyNwcmFnbWEgbWFyayAtIFBy
aXZhdGUKKworLSAoTlNJbnRlZ2VyKXJlbGVhc2VFbmNvZGVyIHsKKyAgLy8gTmVlZCB0byBkZXN0
cm95IHNvIHRoYXQgdGhlIHNlc3Npb24gaXMgaW52YWxpZGF0ZWQgYW5kIHdvbid0IHVzZSB0aGUK
KyAgLy8gY2FsbGJhY2sgYW55bW9yZS4gRG8gbm90IHJlbW92ZSBjYWxsYmFjayB1bnRpbCB0aGUg
c2Vzc2lvbiBpcyBpbnZhbGlkYXRlZAorICAvLyBzaW5jZSBhc3luYyBlbmNvZGVyIGNhbGxiYWNr
cyBjYW4gb2NjdXIgdW50aWwgaW52YWxpZGF0aW9uLgorICBbc2VsZiBkZXN0cm95Q29tcHJlc3Np
b25TZXNzaW9uXTsKKyAgX2NhbGxiYWNrID0gbnVsbHB0cjsKKyAgcmV0dXJuIFdFQlJUQ19WSURF
T19DT0RFQ19PSzsKK30KKworLSAoaW50KXJlc2V0Q29tcHJlc3Npb25TZXNzaW9uIHsKKyAgW3Nl
bGYgZGVzdHJveUNvbXByZXNzaW9uU2Vzc2lvbl07CisKKyAgLy8gU2V0IHNvdXJjZSBpbWFnZSBi
dWZmZXIgYXR0cmlidXRlcy4gVGhlc2UgYXR0cmlidXRlcyB3aWxsIGJlIHByZXNlbnQgb24KKyAg
Ly8gYnVmZmVycyByZXRyaWV2ZWQgZnJvbSB0aGUgZW5jb2RlcidzIHBpeGVsIGJ1ZmZlciBwb29s
LgorICBjb25zdCBzaXplX3QgYXR0cmlidXRlc1NpemUgPSAzOworICBDRlR5cGVSZWYga2V5c1th
dHRyaWJ1dGVzU2l6ZV0gPSB7CisjaWYgZGVmaW5lZChXRUJSVENfSU9TKQorICAgIGtDVlBpeGVs
QnVmZmVyT3BlbkdMRVNDb21wYXRpYmlsaXR5S2V5LAorI2VsaWYgZGVmaW5lZChXRUJSVENfTUFD
KQorICAgIGtDVlBpeGVsQnVmZmVyT3BlbkdMQ29tcGF0aWJpbGl0eUtleSwKKyNlbmRpZgorICAg
IGtDVlBpeGVsQnVmZmVySU9TdXJmYWNlUHJvcGVydGllc0tleSwKKyAgICBrQ1ZQaXhlbEJ1ZmZl
clBpeGVsRm9ybWF0VHlwZUtleQorICB9OworICBDRkRpY3Rpb25hcnlSZWYgaW9TdXJmYWNlVmFs
dWUgPSBDcmVhdGVDRlR5cGVEaWN0aW9uYXJ5KG51bGxwdHIsIG51bGxwdHIsIDApOworICBpbnQ2
NF90IG52MTJ0eXBlID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxS
YW5nZTsKKyAgQ0ZOdW1iZXJSZWYgcGl4ZWxGb3JtYXQgPQorICAgICAgQ0ZOdW1iZXJDcmVhdGUo
bnVsbHB0ciwga0NGTnVtYmVyTG9uZ1R5cGUsICZudjEydHlwZSk7CisgIENGVHlwZVJlZiB2YWx1
ZXNbYXR0cmlidXRlc1NpemVdID0ge2tDRkJvb2xlYW5UcnVlLCBpb1N1cmZhY2VWYWx1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4ZWxGb3JtYXR9OworICBDRkRp
Y3Rpb25hcnlSZWYgc291cmNlQXR0cmlidXRlcyA9CisgICAgICBDcmVhdGVDRlR5cGVEaWN0aW9u
YXJ5KGtleXMsIHZhbHVlcywgYXR0cmlidXRlc1NpemUpOworICBpZiAoaW9TdXJmYWNlVmFsdWUp
IHsKKyAgICBDRlJlbGVhc2UoaW9TdXJmYWNlVmFsdWUpOworICAgIGlvU3VyZmFjZVZhbHVlID0g
bnVsbHB0cjsKKyAgfQorICBpZiAocGl4ZWxGb3JtYXQpIHsKKyAgICBDRlJlbGVhc2UocGl4ZWxG
b3JtYXQpOworICAgIHBpeGVsRm9ybWF0ID0gbnVsbHB0cjsKKyAgfQorICBDRk11dGFibGVEaWN0
aW9uYXJ5UmVmIGVuY29kZXJfc3BlY3MgPSBDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKG51bGxw
dHIsIDIsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5
VmFsdWVDYWxsQmFja3MpOworI2lmIGRlZmluZWQoV0VCUlRDX01BQykgJiYgIWRlZmluZWQoV0VC
UlRDX0lPUykKKyAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoZW5jb2Rlcl9zcGVjcywga1ZUVmlkZW9F
bmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVy
LCBrQ0ZCb29sZWFuVHJ1ZSk7CisjZW5kaWYKKyNpZiBIQVZFX1ZUQl9SRVFVSVJFRExPV0xBVEVO
Q1kKKyAgLy8gV2Ugd2lsbCB3YW50IHRvIGVuYWJsZSB0aGlzIHByb3BlcnR5IG9uY2Ugd29ya2lu
Zy4KKyAgLy8gQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoZW5jb2Rlcl9zcGVjcywga1ZUVmlkZW9FbmNv
ZGVyU3BlY2lmaWNhdGlvbl9SZXF1aXJlZExvd0xhdGVuY3ksIGtDRkJvb2xlYW5UcnVlKTsKKyNl
bmRpZgorICBPU1N0YXR1cyBzdGF0dXMgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSgKKyAg
ICAgIG51bGxwdHIsICAvLyB1c2UgZGVmYXVsdCBhbGxvY2F0b3IKKyAgICAgIF93aWR0aCwgX2hl
aWdodCwga0NNVmlkZW9Db2RlY1R5cGVfSEVWQywKKyAgICAgIGVuY29kZXJfc3BlY3MsICAvLyB1
c2UgaGFyZHdhcmUgYWNjZWxlcmF0ZWQgZW5jb2RlciBpZiBhdmFpbGFibGUKKyAgICAgIHNvdXJj
ZUF0dHJpYnV0ZXMsCisgICAgICBudWxscHRyLCAgLy8gdXNlIGRlZmF1bHQgY29tcHJlc3NlZCBk
YXRhIGFsbG9jYXRvcgorICAgICAgY29tcHJlc3Npb25PdXRwdXRDYWxsYmFjaywgbnVsbHB0ciwg
Jl9jb21wcmVzc2lvblNlc3Npb24pOworICBpZiAoc291cmNlQXR0cmlidXRlcykgeworICAgIENG
UmVsZWFzZShzb3VyY2VBdHRyaWJ1dGVzKTsKKyAgICBzb3VyY2VBdHRyaWJ1dGVzID0gbnVsbHB0
cjsKKyAgfQorICBpZiAoZW5jb2Rlcl9zcGVjcykgeworICAgIENGUmVsZWFzZShlbmNvZGVyX3Nw
ZWNzKTsKKyAgICBlbmNvZGVyX3NwZWNzID0gbnVsbHB0cjsKKyAgfQorICBpZiAoc3RhdHVzICE9
IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBjcmVhdGUgY29t
cHJlc3Npb24gc2Vzc2lvbjogIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIFdFQlJUQ19WSURFT19D
T0RFQ19FUlJPUjsKKyAgfQorI2lmIGRlZmluZWQoV0VCUlRDX01BQykgJiYgIWRlZmluZWQoV0VC
UlRDX0lPUykKKyAgQ0ZCb29sZWFuUmVmIGh3YWNjbF9lbmFibGVkID0gbnVsbHB0cjsKKyAgc3Rh
dHVzID0gVlRTZXNzaW9uQ29weVByb3BlcnR5KAorICAgICAgX2NvbXByZXNzaW9uU2Vzc2lvbiwK
KyAgICAgIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfVXNpbmdIYXJkd2FyZUFjY2VsZXJhdGVk
VmlkZW9FbmNvZGVyLCBudWxscHRyLAorICAgICAgJmh3YWNjbF9lbmFibGVkKTsKKyAgaWYgKHN0
YXR1cyA9PSBub0VyciAmJiAoQ0ZCb29sZWFuR2V0VmFsdWUoaHdhY2NsX2VuYWJsZWQpKSkgewor
ICAgIFJUQ19MT0coTFNfSU5GTykgPDwgIkNvbXByZXNzaW9uIHNlc3Npb24gY3JlYXRlZCB3aXRo
IGh3IGFjY2wgZW5hYmxlZCI7CisgIH0gZWxzZSB7CisgICAgUlRDX0xPRyhMU19JTkZPKSA8PCAi
Q29tcHJlc3Npb24gc2Vzc2lvbiBjcmVhdGVkIHdpdGggaHcgYWNjbCBkaXNhYmxlZCI7CisgIH0K
KyNlbmRpZgorICBbc2VsZiBjb25maWd1cmVDb21wcmVzc2lvblNlc3Npb25dOworICByZXR1cm4g
V0VCUlRDX1ZJREVPX0NPREVDX09LOworfQorCistICh2b2lkKWNvbmZpZ3VyZUNvbXByZXNzaW9u
U2Vzc2lvbiB7CisgIFJUQ19EQ0hFQ0soX2NvbXByZXNzaW9uU2Vzc2lvbik7CisgIFNldFZUU2Vz
c2lvblByb3BlcnR5KF9jb21wcmVzc2lvblNlc3Npb24sIG51bGxwdHIsIGtWVENvbXByZXNzaW9u
UHJvcGVydHlLZXlfUmVhbFRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAg
Ly8gU2V0VlRTZXNzaW9uUHJvcGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwKKyAgLy8ga1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9Qcm9maWxlTGV2ZWwsIF9wcm9maWxlKTsKKyAgU2V0VlRTZXNz
aW9uUHJvcGVydHkoX2NvbXByZXNzaW9uU2Vzc2lvbiwgbnVsbHB0ciwKKyAgICAgICAgICAgICAg
ICAgICAgICAga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9BbGxvd0ZyYW1lUmVvcmRlcmluZywg
ZmFsc2UpOworICBbc2VsZiBzZXRFbmNvZGVyQml0cmF0ZUJwczpfdGFyZ2V0Qml0cmF0ZUJwc107
CisKKyAgLy8gU2V0IGEgcmVsYXRpdmVseSBsYXJnZSB2YWx1ZSBmb3Iga2V5ZnJhbWUgZW1pc3Np
b24gKDcyMDAgZnJhbWVzIG9yIDQgbWludXRlcykuCisgIFNldFZUU2Vzc2lvblByb3BlcnR5KF9j
b21wcmVzc2lvblNlc3Npb24sIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgICAgIGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbCwgNzIwMCk7CisgIFNldFZU
U2Vzc2lvblByb3BlcnR5KF9jb21wcmVzc2lvblNlc3Npb24sIG51bGxwdHIsCisgICAgICAgICAg
ICAgICAgICAgICAgIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZh
bER1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAyNDApOworICBPU1N0YXR1cyBzdGF0
dXMgPQorICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMoX2Nv
bXByZXNzaW9uU2Vzc2lvbik7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9H
KExTX0VSUk9SKSA8PCAiQ29tcHJlc3Npb24gc2Vzc2lvbiBmYWlsZWQgdG8gcHJlcGFyZSBlbmNv
ZGUgZnJhbWVzLiI7CisgIH0KK30KKworLSAodm9pZClkZXN0cm95Q29tcHJlc3Npb25TZXNzaW9u
IHsKKyAgaWYgKF9jb21wcmVzc2lvblNlc3Npb24pIHsKKyAgICBWVENvbXByZXNzaW9uU2Vzc2lv
bkludmFsaWRhdGUoX2NvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgQ0ZSZWxlYXNlKF9jb21wcmVz
c2lvblNlc3Npb24pOworICAgIF9jb21wcmVzc2lvblNlc3Npb24gPSBudWxscHRyOworICB9Cit9
CisKKy0gKE5TU3RyaW5nKilpbXBsZW1lbnRhdGlvbk5hbWUgeworICByZXR1cm4gQCJWaWRlb1Rv
b2xib3giOworfQorCistICh2b2lkKXNldEJpdHJhdGVCcHM6KHVpbnQzMl90KWJpdHJhdGVCcHMg
eworICBpZiAoX2VuY29kZXJCaXRyYXRlQnBzICE9IGJpdHJhdGVCcHMpIHsKKyAgICBbc2VsZiBz
ZXRFbmNvZGVyQml0cmF0ZUJwczpiaXRyYXRlQnBzXTsKKyAgfQorfQorCistICh2b2lkKXNldEVu
Y29kZXJCaXRyYXRlQnBzOih1aW50MzJfdCliaXRyYXRlQnBzIHsKKyAgaWYgKF9jb21wcmVzc2lv
blNlc3Npb24pIHsKKyAgICBTZXRWVFNlc3Npb25Qcm9wZXJ0eShfY29tcHJlc3Npb25TZXNzaW9u
LCBudWxscHRyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICBrVlRDb21wcmVzc2lvblByb3Bl
cnR5S2V5X0F2ZXJhZ2VCaXRSYXRlLCBiaXRyYXRlQnBzKTsKKworICAgIC8vIFRPRE8odGtjaGlu
KTogQWRkIGEgaGVscGVyIG1ldGhvZCB0byBzZXQgYXJyYXkgdmFsdWUuCisgICAgaW50NjRfdCBk
YXRhTGltaXRCeXRlc1BlclNlY29uZFZhbHVlID0KKyAgICAgICAgc3RhdGljX2Nhc3Q8aW50NjRf
dD4oYml0cmF0ZUJwcyAqIGtMaW1pdFRvQXZlcmFnZUJpdFJhdGVGYWN0b3IgLyA4KTsKKyAgICBD
Rk51bWJlclJlZiBieXRlc1BlclNlY29uZCA9CisgICAgICAgIENGTnVtYmVyQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNJbnQ2NFR5cGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICZkYXRhTGltaXRCeXRlc1BlclNlY29uZFZhbHVlKTsKKyAgICBpbnQ2NF90IG9uZVNlY29u
ZFZhbHVlID0gMTsKKyAgICBDRk51bWJlclJlZiBvbmVTZWNvbmQgPSBDRk51bWJlckNyZWF0ZSgK
KyAgICAgICAga0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyU0ludDY0VHlwZSwgJm9uZVNl
Y29uZFZhbHVlKTsKKyAgICBjb25zdCB2b2lkKiBudW1zWzJdID0ge2J5dGVzUGVyU2Vjb25kLCBv
bmVTZWNvbmR9OworICAgIENGQXJyYXlSZWYgZGF0YVJhdGVMaW1pdHMgPQorICAgICAgICBDRkFy
cmF5Q3JlYXRlKG51bGxwdHIsIG51bXMsIDIsICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpOworICAg
IE9TU3RhdHVzIHN0YXR1cyA9IFZUU2Vzc2lvblNldFByb3BlcnR5KAorICAgICAgICBfY29tcHJl
c3Npb25TZXNzaW9uLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0RhdGFSYXRlTGltaXRzLAor
ICAgICAgICBkYXRhUmF0ZUxpbWl0cyk7CisgICAgaWYgKGJ5dGVzUGVyU2Vjb25kKSB7CisgICAg
ICBDRlJlbGVhc2UoYnl0ZXNQZXJTZWNvbmQpOworICAgIH0KKyAgICBpZiAob25lU2Vjb25kKSB7
CisgICAgICBDRlJlbGVhc2Uob25lU2Vjb25kKTsKKyAgICB9CisgICAgaWYgKGRhdGFSYXRlTGlt
aXRzKSB7CisgICAgICBDRlJlbGVhc2UoZGF0YVJhdGVMaW1pdHMpOworICAgIH0KKyAgICBpZiAo
c3RhdHVzICE9IG5vRXJyKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRv
IHNldCBkYXRhIHJhdGUgbGltaXQiOworICAgIH0KKworICAgIF9lbmNvZGVyQml0cmF0ZUJwcyA9
IGJpdHJhdGVCcHM7CisgIH0KK30KKworLSAodm9pZClmcmFtZVdhc0VuY29kZWQ6KE9TU3RhdHVz
KXN0YXR1cworICAgICAgICAgICAgICAgICAgZmxhZ3M6KFZURW5jb2RlSW5mb0ZsYWdzKWluZm9G
bGFncworICAgICAgICAgICBzYW1wbGVCdWZmZXI6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1
ZmZlcgorICAgICAgICAgICAgICAgICAgd2lkdGg6KGludDMyX3Qpd2lkdGgKKyAgICAgICAgICAg
ICAgICAgaGVpZ2h0OihpbnQzMl90KWhlaWdodAorICAgICAgICAgICByZW5kZXJUaW1lTXM6KGlu
dDY0X3QpcmVuZGVyVGltZU1zCisgICAgICAgICAgICAgIHRpbWVzdGFtcDoodWludDMyX3QpdGlt
ZXN0YW1wCisgICAgICAgICAgICAgICByb3RhdGlvbjooUlRDVmlkZW9Sb3RhdGlvbilyb3RhdGlv
biB7CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
aDI2NSBlbmNvZGUgZmFpbGVkLiI7CisgICAgcmV0dXJuOworICB9CisgIGlmIChpbmZvRmxhZ3Mg
JiBrVlRFbmNvZGVJbmZvX0ZyYW1lRHJvcHBlZCkgeworICAgIFJUQ19MT0coTFNfSU5GTykgPDwg
ImgyNjUgZW5jb2RlciBkcm9wcGVkIGEgZnJhbWUuIjsKKyAgICByZXR1cm47CisgIH0KKworICBC
T09MIGlzS2V5ZnJhbWUgPSBOTzsKKyAgQ0ZBcnJheVJlZiBhdHRhY2htZW50cyA9CisgICAgICBD
TVNhbXBsZUJ1ZmZlckdldFNhbXBsZUF0dGFjaG1lbnRzQXJyYXkoc2FtcGxlQnVmZmVyLCAwKTsK
KyAgaWYgKGF0dGFjaG1lbnRzICE9IG51bGxwdHIgJiYgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1l
bnRzKSkgeworICAgIENGRGljdGlvbmFyeVJlZiBhdHRhY2htZW50ID0KKyAgICAgICAgc3RhdGlj
X2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRz
LCAwKSk7CisgICAgaXNLZXlmcmFtZSA9CisgICAgICAgICFDRkRpY3Rpb25hcnlDb250YWluc0tl
eShhdHRhY2htZW50LCBrQ01TYW1wbGVBdHRhY2htZW50S2V5X05vdFN5bmMpOworICB9CisKKyAg
aWYgKGlzS2V5ZnJhbWUpIHsKKyAgICBSVENfTE9HKExTX0lORk8pIDw8ICJHZW5lcmF0ZWQga2V5
ZnJhbWUiOworICB9CisKKyAgLy8gQ29udmVydCB0aGUgc2FtcGxlIGJ1ZmZlciBpbnRvIGEgYnVm
ZmVyIHN1aXRhYmxlIGZvciBSVFAgcGFja2V0aXphdGlvbi4KKyAgLy8gVE9ETyh0a2NoaW4pOiBB
bGxvY2F0ZSBidWZmZXJzIHRocm91Z2ggYSBwb29sLgorICBzdGQ6OnVuaXF1ZV9wdHI8cnRjOjpC
dWZmZXI+IGJ1ZmZlcihuZXcgcnRjOjpCdWZmZXIoKSk7CisgIFJUQ1J0cEZyYWdtZW50YXRpb25I
ZWFkZXIqIGhlYWRlcjsKKyAgeworICAgIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlJUUEZyYWdt
ZW50YXRpb25IZWFkZXI+IGhlYWRlcl9jcHA7CisgICAgYm9vbCByZXN1bHQgPSBIMjY1Q01TYW1w
bGVCdWZmZXJUb0FubmV4QkJ1ZmZlcihzYW1wbGVCdWZmZXIsIGlzS2V5ZnJhbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIuZ2V0KCks
ICZoZWFkZXJfY3BwKTsKKyAgICBoZWFkZXIgPSBbW1JUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIg
YWxsb2NdCisgICAgICAgIGluaXRXaXRoTmF0aXZlRnJhZ21lbnRhdGlvbkhlYWRlcjpoZWFkZXJf
Y3BwLmdldCgpXTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikg
PDwgIkZhaWxlZCB0byBjb252ZXJ0IHNhbXBsZSBidWZmZXIuIjsKKyAgICAgIHJldHVybjsKKyAg
ICB9CisgIH0KKworICBSVENFbmNvZGVkSW1hZ2UqIGZyYW1lID0gW1tSVENFbmNvZGVkSW1hZ2Ug
YWxsb2NdIGluaXRdOworICBmcmFtZS5idWZmZXIgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0Nv
cHk6YnVmZmVyLT5kYXRhKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGVuZ3RoOmJ1ZmZlci0+c2l6ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZy
ZWVXaGVuRG9uZTpOT107CisgIGZyYW1lLmVuY29kZWRXaWR0aCA9IHdpZHRoOworICBmcmFtZS5l
bmNvZGVkSGVpZ2h0ID0gaGVpZ2h0OworICBmcmFtZS5jb21wbGV0ZUZyYW1lID0gWUVTOworICBm
cmFtZS5mcmFtZVR5cGUgPQorICAgICAgaXNLZXlmcmFtZSA/IFJUQ0ZyYW1lVHlwZVZpZGVvRnJh
bWVLZXkgOiBSVENGcmFtZVR5cGVWaWRlb0ZyYW1lRGVsdGE7CisgIGZyYW1lLmNhcHR1cmVUaW1l
TXMgPSByZW5kZXJUaW1lTXM7CisgIGZyYW1lLnRpbWVTdGFtcCA9IHRpbWVzdGFtcDsKKyAgZnJh
bWUucm90YXRpb24gPSByb3RhdGlvbjsKKyAgZnJhbWUuY29udGVudFR5cGUgPSAoX21vZGUgPT0g
UlRDVmlkZW9Db2RlY01vZGVTY3JlZW5zaGFyaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICA/IFJUQ1ZpZGVvQ29udGVudFR5cGVTY3JlZW5zaGFyZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICA6IFJUQ1ZpZGVvQ29udGVudFR5cGVVbnNwZWNpZmllZDsKKyAgZnJhbWUuZmxhZ3MgPSB3
ZWJydGM6OlZpZGVvU2VuZFRpbWluZzo6a0ludmFsaWQ7CisKKyAgLy8gRklYTUU6IFFQIGlzIGln
bm9yZWQgYmVjYXVzZSB0aGVyZSBpcyBubyBILjI2NSBiaXRzdHJlYW0gcGFyc2VyLgorCisgIEJP
T0wgcmVzID0gX2NhbGxiYWNrKGZyYW1lLCBbW1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NSBhbGxv
Y10gaW5pdF0sIGhlYWRlcik7CisgIGlmICghcmVzKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikg
PDwgIkVuY29kZSBjYWxsYmFjayBmYWlsZWQuIjsKKyAgICByZXR1cm47CisgIH0KKyAgX2JpdHJh
dGVBZGp1c3Rlci0+VXBkYXRlKGZyYW1lLmJ1ZmZlci5sZW5ndGgpOworfQorCistIChSVENWaWRl
b0VuY29kZXJRcFRocmVzaG9sZHMqKXNjYWxpbmdTZXR0aW5ncyB7CisgIHJldHVybiBbW1JUQ1Zp
ZGVvRW5jb2RlclFwVGhyZXNob2xkcyBhbGxvY10KKyAgICAgIGluaXRXaXRoVGhyZXNob2xkc0xv
dzprTG93aDI2NVFwVGhyZXNob2xkCisgICAgICAgICAgICAgICAgICAgICAgIGhpZ2g6a0hpZ2ho
MjY1UXBUaHJlc2hvbGRdOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVj
L25hbHVfcmV3cml0ZXIuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9zZGsvb2JqYy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuY2MKaW5k
ZXggZGMyNThkNjA2NGEwZmVlYTAwNmVlMjk4MmUwMDM3YjA1NWJiYTM3My4uZGRmNzM0NjA1MTE1
YmM3Yjc0ZjEyODI5YTRjZGVjY2YzNDQwZmNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvY29tcG9uZW50cy92aWRlb19jb2Rl
Yy9uYWx1X3Jld3JpdGVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5j
YwpAQCAtMjQ4LDYgKzI0OCwyMjkgQEAgYm9vbCBIMjY0QW5uZXhCQnVmZmVyVG9DTVNhbXBsZUJ1
ZmZlcihjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICByZXR1cm4gdHJ1ZTsKIH0KIAor
I2lmbmRlZiBESVNBQkxFX0gyNjUKK2Jvb2wgSDI2NUNNU2FtcGxlQnVmZmVyVG9Bbm5leEJCdWZm
ZXIoCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgaHZjY19zYW1wbGVfYnVmZmVyLAorICAgIGJvb2wg
aXNfa2V5ZnJhbWUsCisgICAgcnRjOjpCdWZmZXIqIGFubmV4Yl9idWZmZXIsCisgICAgc3RkOjp1
bmlxdWVfcHRyPFJUUEZyYWdtZW50YXRpb25IZWFkZXI+ICpvdXRfaGVhZGVyKSB7CisgIFJUQ19E
Q0hFQ0soaHZjY19zYW1wbGVfYnVmZmVyKTsKKyAgUlRDX0RDSEVDSyhvdXRfaGVhZGVyKTsKKyAg
b3V0X2hlYWRlci0+cmVzZXQobnVsbHB0cik7CisKKyAgLy8gR2V0IGZvcm1hdCBkZXNjcmlwdGlv
biBmcm9tIHRoZSBzYW1wbGUgYnVmZmVyLgorICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYg
ZGVzY3JpcHRpb24gPQorICAgICAgQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbiho
dmNjX3NhbXBsZV9idWZmZXIpOworICBpZiAoZGVzY3JpcHRpb24gPT0gbnVsbHB0cikgeworICAg
IFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IHNhbXBsZSBidWZmZXIncyBkZXNj
cmlwdGlvbi4iOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIC8vIEdldCBwYXJhbWV0ZXIg
c2V0IGluZm9ybWF0aW9uLgorICBpbnQgbmFsdV9oZWFkZXJfc2l6ZSA9IDA7CisgIHNpemVfdCBw
YXJhbV9zZXRfY291bnQgPSAwOworICBPU1N0YXR1cyBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25HZXRIRVZDUGFyYW1ldGVyU2V0QXRJbmRleCgKKyAgICAgIGRlc2NyaXB0aW9uLCAw
LCBudWxscHRyLCBudWxscHRyLCAmcGFyYW1fc2V0X2NvdW50LCAmbmFsdV9oZWFkZXJfc2l6ZSk7
CisgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFp
bGVkIHRvIGdldCBwYXJhbWV0ZXIgc2V0LiI7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIFJU
Q19DSEVDS19FUShuYWx1X2hlYWRlcl9zaXplLCBrQXZjY0hlYWRlckJ5dGVTaXplKTsKKyAgUlRD
X0RDSEVDS19FUShwYXJhbV9zZXRfY291bnQsIDMpOworCisgIC8vIFRydW5jYXRlIGFueSBwcmV2
aW91cyBkYXRhIGluIHRoZSBidWZmZXIgd2l0aG91dCBjaGFuZ2luZyBpdHMgY2FwYWNpdHkuCisg
IGFubmV4Yl9idWZmZXItPlNldFNpemUoMCk7CisKKyAgc2l6ZV90IG5hbHVfb2Zmc2V0ID0gMDsK
KyAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBmcmFnX29mZnNldHM7CisgIHN0ZDo6dmVjdG9yPHNpemVf
dD4gZnJhZ19sZW5ndGhzOworCisgIC8vIFBsYWNlIGFsbCBwYXJhbWV0ZXIgc2V0cyBhdCB0aGUg
ZnJvbnQgb2YgYnVmZmVyLgorICBpZiAoaXNfa2V5ZnJhbWUpIHsKKyAgICBzaXplX3QgcGFyYW1f
c2V0X3NpemUgPSAwOworICAgIGNvbnN0IHVpbnQ4X3QqIHBhcmFtX3NldCA9IG51bGxwdHI7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbV9zZXRfY291bnQ7ICsraSkgeworICAgICAg
c3RhdHVzID0gQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uR2V0SEVWQ1BhcmFtZXRlclNldEF0SW5k
ZXgoCisgICAgICAgICAgZGVzY3JpcHRpb24sIGksICZwYXJhbV9zZXQsICZwYXJhbV9zZXRfc2l6
ZSwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgICBpZiAoc3RhdHVzICE9IG5vRXJyKSB7CisgICAg
ICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZ2V0IHBhcmFtZXRlciBzZXQuIjsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgICAgLy8gVXBkYXRlIGJ1ZmZlci4K
KyAgICAgIGFubmV4Yl9idWZmZXItPkFwcGVuZERhdGEoa0FubmV4QkhlYWRlckJ5dGVzLCBzaXpl
b2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAgICBhbm5leGJfYnVmZmVyLT5BcHBlbmREYXRh
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHBhcmFtX3NldCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcmFtX3NldF9zaXplKTsKKyAgICAgIC8vIFVwZGF0ZSBmcmFn
bWVudGF0aW9uLgorICAgICAgZnJhZ19vZmZzZXRzLnB1c2hfYmFjayhuYWx1X29mZnNldCArIHNp
emVvZihrQW5uZXhCSGVhZGVyQnl0ZXMpKTsKKyAgICAgIGZyYWdfbGVuZ3Rocy5wdXNoX2JhY2so
cGFyYW1fc2V0X3NpemUpOworICAgICAgbmFsdV9vZmZzZXQgKz0gc2l6ZW9mKGtBbm5leEJIZWFk
ZXJCeXRlcykgKyBwYXJhbV9zZXRfc2l6ZTsKKyAgICB9CisgIH0KKworICAvLyBHZXQgYmxvY2sg
YnVmZmVyIGZyb20gdGhlIHNhbXBsZSBidWZmZXIuCisgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tf
YnVmZmVyID0KKyAgICAgIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlcihodmNjX3NhbXBsZV9i
dWZmZXIpOworICBpZiAoYmxvY2tfYnVmZmVyID09IG51bGxwdHIpIHsKKyAgICBSVENfTE9HKExT
X0VSUk9SKSA8PCAiRmFpbGVkIHRvIGdldCBzYW1wbGUgYnVmZmVyJ3MgYmxvY2sgYnVmZmVyLiI7
CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIENNQmxvY2tCdWZmZXJSZWYgY29udGlndW91c19i
dWZmZXIgPSBudWxscHRyOworICAvLyBNYWtlIHN1cmUgYmxvY2sgYnVmZmVyIGlzIGNvbnRpZ3Vv
dXMuCisgIGlmICghQ01CbG9ja0J1ZmZlcklzUmFuZ2VDb250aWd1b3VzKGJsb2NrX2J1ZmZlciwg
MCwgMCkpIHsKKyAgICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlQ29udGlndW91cygKKyAg
ICAgICAgbnVsbHB0ciwgYmxvY2tfYnVmZmVyLCBudWxscHRyLCBudWxscHRyLCAwLCAwLCAwLCAm
Y29udGlndW91c19idWZmZXIpOworICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICAgIFJU
Q19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZmxhdHRlbiBub24tY29udGlndW91cyBibG9j
ayBidWZmZXI6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IHN0YXR1czsKKyAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisgIH0gZWxzZSB7CisgICAgY29udGlndW91c19idWZmZXIgPSBi
bG9ja19idWZmZXI7CisgICAgLy8gUmV0YWluIHRvIG1ha2UgY2xlYW51cCBlYXNpZXIuCisgICAg
Q0ZSZXRhaW4oY29udGlndW91c19idWZmZXIpOworICAgIGJsb2NrX2J1ZmZlciA9IG51bGxwdHI7
CisgIH0KKworICAvLyBOb3cgY29weSB0aGUgYWN0dWFsIGRhdGEuCisgIGNoYXIqIGRhdGFfcHRy
ID0gbnVsbHB0cjsKKyAgc2l6ZV90IGJsb2NrX2J1ZmZlcl9zaXplID0gQ01CbG9ja0J1ZmZlckdl
dERhdGFMZW5ndGgoY29udGlndW91c19idWZmZXIpOworICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVy
R2V0RGF0YVBvaW50ZXIoY29udGlndW91c19idWZmZXIsIDAsIG51bGxwdHIsIG51bGxwdHIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YV9wdHIpOworICBpZiAo
c3RhdHVzICE9IG5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBn
ZXQgYmxvY2sgYnVmZmVyIGRhdGEuIjsKKyAgICBDRlJlbGVhc2UoY29udGlndW91c19idWZmZXIp
OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBzaXplX3QgYnl0ZXNfcmVtYWluaW5nID0gYmxv
Y2tfYnVmZmVyX3NpemU7CisgIHdoaWxlIChieXRlc19yZW1haW5pbmcgPiAwKSB7CisgICAgLy8g
VGhlIHNpemUgdHlwZSBoZXJlIG11c3QgbWF0Y2ggfG5hbHVfaGVhZGVyX3NpemV8LCB3ZSBleHBl
Y3QgNCBieXRlcy4KKyAgICAvLyBSZWFkIHRoZSBsZW5ndGggb2YgdGhlIG5leHQgcGFja2V0IG9m
IGRhdGEuIE11c3QgY29udmVydCBmcm9tIGJpZyBlbmRpYW4KKyAgICAvLyB0byBob3N0IGVuZGlh
bi4KKyAgICBSVENfRENIRUNLX0dFKGJ5dGVzX3JlbWFpbmluZywgKHNpemVfdCluYWx1X2hlYWRl
cl9zaXplKTsKKyAgICB1aW50MzJfdCogdWludDMyX2RhdGFfcHRyID0gcmVpbnRlcnByZXRfY2Fz
dDx1aW50MzJfdCo+KGRhdGFfcHRyKTsKKyAgICB1aW50MzJfdCBwYWNrZXRfc2l6ZSA9IENGU3dh
cEludDMyQmlnVG9Ib3N0KCp1aW50MzJfZGF0YV9wdHIpOworICAgIC8vIFVwZGF0ZSBidWZmZXIu
CisgICAgYW5uZXhiX2J1ZmZlci0+QXBwZW5kRGF0YShrQW5uZXhCSGVhZGVyQnl0ZXMsIHNpemVv
ZihrQW5uZXhCSGVhZGVyQnl0ZXMpKTsKKyAgICBhbm5leGJfYnVmZmVyLT5BcHBlbmREYXRhKGRh
dGFfcHRyICsgbmFsdV9oZWFkZXJfc2l6ZSwgcGFja2V0X3NpemUpOworICAgIC8vIFVwZGF0ZSBm
cmFnbWVudGF0aW9uLgorICAgIGZyYWdfb2Zmc2V0cy5wdXNoX2JhY2sobmFsdV9vZmZzZXQgKyBz
aXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKSk7CisgICAgZnJhZ19sZW5ndGhzLnB1c2hfYmFjayhw
YWNrZXRfc2l6ZSk7CisgICAgbmFsdV9vZmZzZXQgKz0gc2l6ZW9mKGtBbm5leEJIZWFkZXJCeXRl
cykgKyBwYWNrZXRfc2l6ZTsKKworICAgIHNpemVfdCBieXRlc193cml0dGVuID0gcGFja2V0X3Np
emUgKyBzaXplb2Yoa0FubmV4QkhlYWRlckJ5dGVzKTsKKyAgICBieXRlc19yZW1haW5pbmcgLT0g
Ynl0ZXNfd3JpdHRlbjsKKyAgICBkYXRhX3B0ciArPSBieXRlc193cml0dGVuOworICB9CisgIFJU
Q19EQ0hFQ0tfRVEoYnl0ZXNfcmVtYWluaW5nLCAoc2l6ZV90KTApOworCisgIHN0ZDo6dW5pcXVl
X3B0cjxSVFBGcmFnbWVudGF0aW9uSGVhZGVyPiBoZWFkZXIobmV3IFJUUEZyYWdtZW50YXRpb25I
ZWFkZXIoKSk7CisgIGhlYWRlci0+VmVyaWZ5QW5kQWxsb2NhdGVGcmFnbWVudGF0aW9uSGVhZGVy
KGZyYWdfb2Zmc2V0cy5zaXplKCkpOworICBSVENfRENIRUNLX0VRKGZyYWdfbGVuZ3Rocy5zaXpl
KCksIGZyYWdfb2Zmc2V0cy5zaXplKCkpOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZyYWdf
b2Zmc2V0cy5zaXplKCk7ICsraSkgeworICAgIGhlYWRlci0+ZnJhZ21lbnRhdGlvbk9mZnNldFtp
XSA9IGZyYWdfb2Zmc2V0c1tpXTsKKyAgICBoZWFkZXItPmZyYWdtZW50YXRpb25MZW5ndGhbaV0g
PSBmcmFnX2xlbmd0aHNbaV07CisgIH0KKyAgKm91dF9oZWFkZXIgPSBzdGQ6Om1vdmUoaGVhZGVy
KTsKKyAgQ0ZSZWxlYXNlKGNvbnRpZ3VvdXNfYnVmZmVyKTsKKyAgcmV0dXJuIHRydWU7Cit9CisK
K2Jvb2wgSDI2NUFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3QgdWludDhfdCogYW5u
ZXhiX2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IGFubmV4Yl9idWZmZXJfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvX2Zvcm1hdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYqIG91dF9zYW1wbGVf
YnVmZmVyKSB7CisgIFJUQ19EQ0hFQ0soYW5uZXhiX2J1ZmZlcik7CisgIFJUQ19EQ0hFQ0sob3V0
X3NhbXBsZV9idWZmZXIpOworICBSVENfRENIRUNLKHZpZGVvX2Zvcm1hdCk7CisgICpvdXRfc2Ft
cGxlX2J1ZmZlciA9IG51bGxwdHI7CisKKyAgQW5uZXhCQnVmZmVyUmVhZGVyIHJlYWRlcihhbm5l
eGJfYnVmZmVyLCBhbm5leGJfYnVmZmVyX3NpemUpOworICBpZiAocmVhZGVyLlNlZWtUb05leHRO
YWx1T2ZUeXBlKEgyNjU6OmtWcHMpKSB7CisgICAgLy8gQnVmZmVyIGNvbnRhaW5zIGFuIFNQUyBO
QUxVIC0gc2tpcCBpdCBhbmQgdGhlIGZvbGxvd2luZyBQUFMKKyAgICBjb25zdCB1aW50OF90KiBk
YXRhOworICAgIHNpemVfdCBkYXRhX2xlbjsKKyAgICBpZiAoIXJlYWRlci5SZWFkTmFsdSgmZGF0
YSwgJmRhdGFfbGVuKSkgeworICAgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byBy
ZWFkIFZQUyI7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlmICghcmVhZGVyLlJl
YWROYWx1KCZkYXRhLCAmZGF0YV9sZW4pKSB7CisgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAi
RmFpbGVkIHRvIHJlYWQgU1BTIjsKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWYg
KCFyZWFkZXIuUmVhZE5hbHUoJmRhdGEsICZkYXRhX2xlbikpIHsKKyAgICAgIFJUQ19MT0coTFNf
RVJST1IpIDw8ICJGYWlsZWQgdG8gcmVhZCBQUFMiOworICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgfSBlbHNlIHsKKyAgICAvLyBObyBTUFMgTkFMVSAtIHN0YXJ0IHJlYWRpbmcgZnJvbSB0
aGUgZmlyc3QgTkFMVSBpbiB0aGUgYnVmZmVyCisgICAgcmVhZGVyLlNlZWtUb1N0YXJ0KCk7Cisg
IH0KKworICAvLyBBbGxvY2F0ZSBtZW1vcnkgYXMgYSBibG9jayBidWZmZXIuCisgIC8vIFRPRE8o
dGtjaGluKTogZmlndXJlIG91dCBob3cgdG8gdXNlIGEgcG9vbC4KKyAgQ01CbG9ja0J1ZmZlclJl
ZiBibG9ja19idWZmZXIgPSBudWxscHRyOworICBPU1N0YXR1cyBzdGF0dXMgPSBDTUJsb2NrQnVm
ZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKAorICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgcmVhZGVy
LkJ5dGVzUmVtYWluaW5nKCksIG51bGxwdHIsIG51bGxwdHIsIDAsCisgICAgICByZWFkZXIuQnl0
ZXNSZW1haW5pbmcoKSwga0NNQmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLAorICAgICAg
JmJsb2NrX2J1ZmZlcik7CisgIGlmIChzdGF0dXMgIT0ga0NNQmxvY2tCdWZmZXJOb0Vycikgewor
ICAgIFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIGJsb2NrIGJ1ZmZlci4i
OworICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIC8vIE1ha2Ugc3VyZSBibG9jayBidWZmZXIg
aXMgY29udGlndW91cy4KKyAgQ01CbG9ja0J1ZmZlclJlZiBjb250aWd1b3VzX2J1ZmZlciA9IG51
bGxwdHI7CisgIGlmICghQ01CbG9ja0J1ZmZlcklzUmFuZ2VDb250aWd1b3VzKGJsb2NrX2J1ZmZl
ciwgMCwgMCkpIHsKKyAgICBzdGF0dXMgPSBDTUJsb2NrQnVmZmVyQ3JlYXRlQ29udGlndW91cygK
KyAgICAgICAgbnVsbHB0ciwgYmxvY2tfYnVmZmVyLCBudWxscHRyLCBudWxscHRyLCAwLCAwLCAw
LCAmY29udGlndW91c19idWZmZXIpOworICAgIGlmIChzdGF0dXMgIT0gbm9FcnIpIHsKKyAgICAg
IFJUQ19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gZmxhdHRlbiBub24tY29udGlndW91cyBi
bG9jayBidWZmZXI6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgIDw8IHN0YXR1czsKKyAgICAg
IENGUmVsZWFzZShibG9ja19idWZmZXIpOworICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAg
fSBlbHNlIHsKKyAgICBjb250aWd1b3VzX2J1ZmZlciA9IGJsb2NrX2J1ZmZlcjsKKyAgICBibG9j
a19idWZmZXIgPSBudWxscHRyOworICB9CisKKyAgLy8gR2V0IGEgcmF3IHBvaW50ZXIgaW50byBh
bGxvY2F0ZWQgbWVtb3J5LgorICBzaXplX3QgYmxvY2tfYnVmZmVyX3NpemUgPSAwOworICBjaGFy
KiBkYXRhX3B0ciA9IG51bGxwdHI7CisgIHN0YXR1cyA9IENNQmxvY2tCdWZmZXJHZXREYXRhUG9p
bnRlcihjb250aWd1b3VzX2J1ZmZlciwgMCwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZibG9ja19idWZmZXJfc2l6ZSwgJmRhdGFfcHRyKTsKKyAgaWYg
KHN0YXR1cyAhPSBrQ01CbG9ja0J1ZmZlck5vRXJyKSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikg
PDwgIkZhaWxlZCB0byBnZXQgYmxvY2sgYnVmZmVyIGRhdGEgcG9pbnRlci4iOworICAgIENGUmVs
ZWFzZShjb250aWd1b3VzX2J1ZmZlcik7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisgIFJUQ19E
Q0hFQ0soYmxvY2tfYnVmZmVyX3NpemUgPT0gcmVhZGVyLkJ5dGVzUmVtYWluaW5nKCkpOworCisg
IC8vIFdyaXRlIEF2Y2MgTkFMVXMgaW50byBibG9jayBidWZmZXIgbWVtb3J5LgorICBBdmNjQnVm
ZmVyV3JpdGVyIHdyaXRlcihyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihkYXRhX3B0ciksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX2J1ZmZlcl9zaXplKTsKKyAgd2hpbGUgKHJl
YWRlci5CeXRlc1JlbWFpbmluZygpID4gMCkgeworICAgIGNvbnN0IHVpbnQ4X3QqIG5hbHVfZGF0
YV9wdHIgPSBudWxscHRyOworICAgIHNpemVfdCBuYWx1X2RhdGFfc2l6ZSA9IDA7CisgICAgaWYg
KHJlYWRlci5SZWFkTmFsdSgmbmFsdV9kYXRhX3B0ciwgJm5hbHVfZGF0YV9zaXplKSkgeworICAg
ICAgd3JpdGVyLldyaXRlTmFsdShuYWx1X2RhdGFfcHRyLCBuYWx1X2RhdGFfc2l6ZSk7CisgICAg
fQorICB9CisKKyAgLy8gQ3JlYXRlIHNhbXBsZSBidWZmZXIuCisgIHN0YXR1cyA9IENNU2FtcGxl
QnVmZmVyQ3JlYXRlKG51bGxwdHIsIGNvbnRpZ3VvdXNfYnVmZmVyLCB0cnVlLCBudWxscHRyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyLCB2aWRlb19mb3JtYXQsIDEs
IDAsIG51bGxwdHIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxwdHIs
IG91dF9zYW1wbGVfYnVmZmVyKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJUQ19M
T0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHNhbXBsZSBidWZmZXIuIjsKKyAgICBD
RlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBD
RlJlbGVhc2UoY29udGlndW91c19idWZmZXIpOworICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgor
CiBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYgQ3JlYXRlVmlkZW9Gb3JtYXREZXNjcmlwdGlv
bigKICAgICBjb25zdCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICAgIHNpemVfdCBhbm5leGJf
YnVmZmVyX3NpemUpIHsKQEAgLTI3OCw2ICs1MDEsNDMgQEAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0
aW9uUmVmIENyZWF0ZVZpZGVvRm9ybWF0RGVzY3JpcHRpb24oCiAgIHJldHVybiBkZXNjcmlwdGlv
bjsKIH0KIAorI2lmbmRlZiBESVNBQkxFX0gyNjUKK0NNVmlkZW9Gb3JtYXREZXNjcmlwdGlvblJl
ZiBDcmVhdGVIMjY1VmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKKyAgICBjb25zdCB1aW50OF90KiBh
bm5leGJfYnVmZmVyLAorICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUpIHsKKyAgY29uc3Qg
dWludDhfdCogcGFyYW1fc2V0X3B0cnNbM10gPSB7fTsKKyAgc2l6ZV90IHBhcmFtX3NldF9zaXpl
c1szXSA9IHt9OworICBBbm5leEJCdWZmZXJSZWFkZXIgcmVhZGVyKGFubmV4Yl9idWZmZXIsIGFu
bmV4Yl9idWZmZXJfc2l6ZSk7CisgIC8vIFNraXAgZXZlcnl0aW5nIGJlZm9yZSB0aGUgVlBTLCB0
aGVuIHJlYWQgdGhlIFZQUywgU1BTIGFuZCBQUFMKKyAgaWYgKCFyZWFkZXIuU2Vla1RvTmV4dE5h
bHVPZlR5cGUoSDI2NTo6a1ZwcykpIHsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyAgfQorICBpZiAo
IXJlYWRlci5SZWFkTmFsdSgmcGFyYW1fc2V0X3B0cnNbMF0sICZwYXJhbV9zZXRfc2l6ZXNbMF0p
KSB7CisgICAgUlRDX0xPRyhMU19FUlJPUikgPDwgIkZhaWxlZCB0byByZWFkIFZQUyI7CisgICAg
cmV0dXJuIG51bGxwdHI7CisgIH0KKyAgaWYgKCFyZWFkZXIuUmVhZE5hbHUoJnBhcmFtX3NldF9w
dHJzWzFdLCAmcGFyYW1fc2V0X3NpemVzWzFdKSkgeworICAgIFJUQ19MT0coTFNfRVJST1IpIDw8
ICJGYWlsZWQgdG8gcmVhZCBTUFMiOworICAgIHJldHVybiBudWxscHRyOworICB9CisgIGlmICgh
cmVhZGVyLlJlYWROYWx1KCZwYXJhbV9zZXRfcHRyc1syXSwgJnBhcmFtX3NldF9zaXplc1syXSkp
IHsKKyAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiRmFpbGVkIHRvIHJlYWQgUFBTIjsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgfQorCisgIC8vIFBhcnNlIHRoZSBTUFMgYW5kIFBQUyBpbnRvIGEg
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uLgorICBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25SZWYg
ZGVzY3JpcHRpb24gPSBudWxscHRyOworICBPU1N0YXR1cyBzdGF0dXMgPSBDTVZpZGVvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGVGcm9tSEVWQ1BhcmFtZXRlclNldHMoCisgICAgICBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAzLCBwYXJhbV9zZXRfcHRycywgcGFyYW1fc2V0X3NpemVzLCA0LCBudWxscHRy
LAorICAgICAgJmRlc2NyaXB0aW9uKTsKKyAgaWYgKHN0YXR1cyAhPSBub0VycikgeworICAgIFJU
Q19MT0coTFNfRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHZpZGVvIGZvcm1hdCBkZXNjcmlw
dGlvbi4iOworICAgIHJldHVybiBudWxscHRyOworICB9CisgIHJldHVybiBkZXNjcmlwdGlvbjsK
K30KKyNlbmRpZgorCiBBbm5leEJCdWZmZXJSZWFkZXI6OkFubmV4QkJ1ZmZlclJlYWRlcihjb25z
dCB1aW50OF90KiBhbm5leGJfYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90IGxlbmd0aCkKICAgICA6IHN0YXJ0Xyhhbm5leGJfYnVmZmVyKSwgbGVu
Z3RoXyhsZW5ndGgpIHsKQEAgLTMyNCw2ICs1ODQsMTkgQEAgYm9vbCBBbm5leEJCdWZmZXJSZWFk
ZXI6OlNlZWtUb05leHROYWx1T2ZUeXBlKE5hbHVUeXBlIHR5cGUpIHsKICAgfQogICByZXR1cm4g
ZmFsc2U7CiB9CisKKyNpZm5kZWYgRElTQUJMRV9IMjY1Citib29sIEFubmV4QkJ1ZmZlclJlYWRl
cjo6U2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NTo6TmFsdVR5cGUgdHlwZSkgeworICBmb3IgKDsg
b2Zmc2V0XyAhPSBvZmZzZXRzXy5lbmQoKTsgKytvZmZzZXRfKSB7CisgICAgaWYgKG9mZnNldF8t
PnBheWxvYWRfc2l6ZSA8IDEpCisgICAgICBjb250aW51ZTsKKyAgICBpZiAoSDI2NTo6UGFyc2VO
YWx1VHlwZSgqKHN0YXJ0XyArIG9mZnNldF8tPnBheWxvYWRfc3RhcnRfb2Zmc2V0KSkgPT0gdHlw
ZSkKKyAgICAgIHJldHVybiB0cnVlOworICB9CisgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgor
CiBBdmNjQnVmZmVyV3JpdGVyOjpBdmNjQnVmZmVyV3JpdGVyKHVpbnQ4X3QqIGNvbnN0IGF2Y2Nf
YnVmZmVyLCBzaXplX3QgbGVuZ3RoKQogICAgIDogc3RhcnRfKGF2Y2NfYnVmZmVyKSwgb2Zmc2V0
XygwKSwgbGVuZ3RoXyhsZW5ndGgpIHsKICAgUlRDX0RDSEVDSyhhdmNjX2J1ZmZlcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2Jq
Yy9jb21wb25lbnRzL3ZpZGVvX2NvZGVjL25hbHVfcmV3cml0ZXIuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9fY29k
ZWMvbmFsdV9yZXdyaXRlci5oCmluZGV4IGEwYzFhYTkwYWY1NzU5ZGUzOWI1ZDA2YzIyMWQyODQy
OTQzODk4NzYuLjRkYTFjYzU3YzdkMTBhOGJmMzZhMjg4ZDczMWMzYzg2MTBlZDU3YzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L2NvbXBvbmVudHMvdmlkZW9fY29kZWMvbmFsdV9yZXdyaXRlci5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL2NvbXBvbmVudHMvdmlkZW9f
Y29kZWMvbmFsdV9yZXdyaXRlci5oCkBAIC0xOCw2ICsxOCw5IEBACiAjaW5jbHVkZSA8dmVjdG9y
PgogCiAjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjQvaDI2NF9jb21tb24uaCIKKyNpZm5kZWYg
RElTQUJMRV9IMjY1CisjaW5jbHVkZSAiY29tbW9uX3ZpZGVvL2gyNjUvaDI2NV9jb21tb24uaCIK
KyNlbmRpZgogI2luY2x1ZGUgIm1vZHVsZXMvaW5jbHVkZS9tb2R1bGVfY29tbW9uX3R5cGVzLmgi
CiAjaW5jbHVkZSAicnRjX2Jhc2UvYnVmZmVyLmgiCiAKQEAgLTQ3LDYgKzUwLDMxIEBAIGJvb2wg
SDI2NEFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3QgdWludDhfdCogYW5uZXhiX2J1
ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZm
ZXJSZWYqIG91dF9zYW1wbGVfYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBDTU1lbW9yeVBvb2xSZWYgbWVtb3J5X3Bvb2wpOwogCisjaWZuZGVmIERJU0FCTEVf
SDI2NQorLy8gQ29udmVydHMgYSBzYW1wbGUgYnVmZmVyIGVtaXR0ZWQgZnJvbSB0aGUgVmlkZW9U
b29sYm94IGVuY29kZXIgaW50byBhIGJ1ZmZlcgorLy8gc3VpdGFibGUgZm9yIFJUUC4gVGhlIHNh
bXBsZSBidWZmZXIgaXMgaW4gaHZjYyBmb3JtYXQgd2hlcmVhcyB0aGUgcnRwIGJ1ZmZlcgorLy8g
bmVlZHMgdG8gYmUgaW4gQW5uZXggQiBmb3JtYXQuIERhdGEgaXMgd3JpdHRlbiBkaXJlY3RseSB0
byB8YW5uZXhiX2J1ZmZlcnwKKy8vIGFuZCBhIG5ldyBSVFBGcmFnbWVudGF0aW9uSGVhZGVyIGlz
IHJldHVybmVkIGluIHxvdXRfaGVhZGVyfC4KK2Jvb2wgSDI2NUNNU2FtcGxlQnVmZmVyVG9Bbm5l
eEJCdWZmZXIoCisgICAgQ01TYW1wbGVCdWZmZXJSZWYgaHZjY19zYW1wbGVfYnVmZmVyLAorICAg
IGJvb2wgaXNfa2V5ZnJhbWUsCisgICAgcnRjOjpCdWZmZXIqIGFubmV4Yl9idWZmZXIsCisgICAg
c3RkOjp1bmlxdWVfcHRyPFJUUEZyYWdtZW50YXRpb25IZWFkZXI+ICpvdXRfaGVhZGVyKQorICAg
IF9fT1NYX0FWQUlMQUJMRV9TVEFSVElORyhfX01BQ18xMF8xMiwgX19JUEhPTkVfMTFfMCk7CisK
KyAvLyBDb252ZXJ0cyBhIGJ1ZmZlciByZWNlaXZlZCBmcm9tIFJUUCBpbnRvIGEgc2FtcGxlIGJ1
ZmZlciBzdWl0YWJsZSBmb3IgdGhlCisvLyBWaWRlb1Rvb2xib3ggZGVjb2Rlci4gVGhlIFJUUCBi
dWZmZXIgaXMgaW4gYW5uZXggYiBmb3JtYXQgd2hlcmVhcyB0aGUgc2FtcGxlCisvLyBidWZmZXIg
aXMgaW4gaHZjYyBmb3JtYXQuCisvLyBJZiB8aXNfa2V5ZnJhbWV8IGlzIHRydWUgdGhlbiB8dmlk
ZW9fZm9ybWF0fCBpcyBpZ25vcmVkIHNpbmNlIHRoZSBmb3JtYXQgd2lsbAorLy8gYmUgcmVhZCBm
cm9tIHRoZSBidWZmZXIuIE90aGVyd2lzZSB8dmlkZW9fZm9ybWF0fCBtdXN0IGJlIHByb3ZpZGVk
LgorLy8gQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciByZWxlYXNpbmcgdGhlIGNyZWF0ZWQgc2Ft
cGxlIGJ1ZmZlci4KK2Jvb2wgSDI2NUFubmV4QkJ1ZmZlclRvQ01TYW1wbGVCdWZmZXIoY29uc3Qg
dWludDhfdCogYW5uZXhiX2J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZV90IGFubmV4Yl9idWZmZXJfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIHZpZGVvX2Zvcm1hdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ01TYW1wbGVCdWZmZXJSZWYq
IG91dF9zYW1wbGVfYnVmZmVyKQorICAgIF9fT1NYX0FWQUlMQUJMRV9TVEFSVElORyhfX01BQ18x
MF8xMiwgX19JUEhPTkVfMTFfMCk7CisjZW5kaWYKKwogLy8gUmV0dXJucyBhIHZpZGVvIGZvcm1h
dCBkZXNjcmlwdGlvbiBjcmVhdGVkIGZyb20gdGhlIHNwcy9wcHMgaW5mb3JtYXRpb24gaW4KIC8v
IHRoZSBBbm5leCBCIGJ1ZmZlci4gSWYgdGhlcmUgaXMgbm8gc3VjaCBpbmZvcm1hdGlvbiwgbnVs
bHB0ciBpcyByZXR1cm5lZC4KIC8vIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHJlbGVh
c2luZyB0aGUgZGVzY3JpcHRpb24uCkBAIC01NCw2ICs4MiwxMyBAQCBDTVZpZGVvRm9ybWF0RGVz
Y3JpcHRpb25SZWYgQ3JlYXRlVmlkZW9Gb3JtYXREZXNjcmlwdGlvbigKICAgICBjb25zdCB1aW50
OF90KiBhbm5leGJfYnVmZmVyLAogICAgIHNpemVfdCBhbm5leGJfYnVmZmVyX3NpemUpOwogCisj
aWZuZGVmIERJU0FCTEVfSDI2NQorQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIENyZWF0ZUgy
NjVWaWRlb0Zvcm1hdERlc2NyaXB0aW9uKAorICAgIGNvbnN0IHVpbnQ4X3QqIGFubmV4Yl9idWZm
ZXIsCisgICAgc2l6ZV90IGFubmV4Yl9idWZmZXJfc2l6ZSkKKyAgICBfX09TWF9BVkFJTEFCTEVf
U1RBUlRJTkcoX19NQUNfMTBfMTIsIF9fSVBIT05FXzExXzApOworI2VuZGlmCisKIC8vIEhlbHBl
ciBjbGFzcyBmb3IgcmVhZGluZyBOQUxVcyBmcm9tIGFuIFJUUCBBbm5leCBCIGJ1ZmZlci4KIGNs
YXNzIEFubmV4QkJ1ZmZlclJlYWRlciBmaW5hbCB7CiAgcHVibGljOgpAQCAtNzgsNiArMTEzLDkg
QEAgY2xhc3MgQW5uZXhCQnVmZmVyUmVhZGVyIGZpbmFsIHsKICAgLy8gUmV0dXJuIHRydWUgaWYg
YSBOQUxVIG9mIHRoZSBkZXNpcmVkIHR5cGUgaXMgZm91bmQsIGZhbHNlIGlmIHdlCiAgIC8vIHJl
YWNoZWQgdGhlIGVuZCBpbnN0ZWFkCiAgIGJvb2wgU2Vla1RvTmV4dE5hbHVPZlR5cGUoSDI2NDo6
TmFsdVR5cGUgdHlwZSk7CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICBib29sIFNlZWtUb05leHRO
YWx1T2ZUeXBlKEgyNjU6Ok5hbHVUeXBlIHR5cGUpOworI2VuZGlmCiAKICBwcml2YXRlOgogICAv
LyBSZXR1cm5zIHRoZSB0aGUgbmV4dCBvZmZzZXQgdGhhdCBjb250YWlucyBOQUxVIGRhdGEuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0aXZlL3NyYy9vYmpj
X3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5tbQppbmRleCA1YWNhMDJkNWFiMGMwNDc1ZDM3MzhiNDc2
ZWNlOWQxNDAzOTFmNzcwLi4yY2E2ZDBlYTY5OGJjNGY4OTE5NmEyMWI0MjlkM2Y3NzhiZTI1YmQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZGVjb2Rlcl9mYWN0b3J5Lm1tCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL25hdGl2ZS9z
cmMvb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0KQEAgLTk3LDcgKzk3LDEwIEBAIHN0ZDo6
dW5pcXVlX3B0cjxWaWRlb0RlY29kZXI+IE9iakNWaWRlb0RlY29kZXJGYWN0b3J5OjpDcmVhdGVW
aWRlb0RlY29kZXIoCiAgICAgaWYgKFtjb2RlY05hbWUgaXNFcXVhbFRvU3RyaW5nOmNvZGVjSW5m
by5uYW1lXSkgewogICAgICAgaWQ8UlRDVmlkZW9EZWNvZGVyPiBkZWNvZGVyID0gW2RlY29kZXJf
ZmFjdG9yeV8gY3JlYXRlRGVjb2Rlcjpjb2RlY0luZm9dOwogCi0gICAgICBpZiAoW2RlY29kZXIg
aXNLaW5kT2ZDbGFzczpbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2RlciBjbGFzc11dKSB7Cisg
ICAgICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBjb25mbGljdCwgaXNLaW5kT2ZDbGFzcyBkb2Vzbid0
IHdvcmsgYXMgZXhwZWN0ZWQuCisgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5ODc4Mi4KKyAgICAgIC8vIGlmIChbZGVjb2RlciBpc0tpbmRPZkNs
YXNzOltSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyIGNsYXNzXV0pIHsKKyAgICAgIGlmIChb
Y29kZWNOYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbY29kZWNOYW1lIGlzRXF1YWw6QCJWUDkiXSkg
ewogICAgICAgICByZXR1cm4gWyhSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyICopZGVjb2Rl
ciByZWxlYXNlV3JhcHBlZERlY29kZXJdOwogICAgICAgfSBlbHNlIHsKICAgICAgICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxPYmpDVmlkZW9EZWNvZGVyPihuZXcgT2JqQ1ZpZGVvRGVjb2Rlcihk
ZWNvZGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5Lm1t
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvbmF0
aXZlL3NyYy9vYmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbQppbmRleCBhNzU1MzA3YzZiN2Nm
MjU0ODdmNjI5Y2IwMjQ2OWQ3Yjk0YjQ0YTc2Li4zMzQ2OTgxM2FmMzQ0ZDI5YjRhZmQ2MjljODBh
MjJkNDNlN2VkZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9uYXRpdmUvc3JjL29iamNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5
Lm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL25hdGl2ZS9zcmMvb2JqY192aWRlb19lbmNvZGVyX2ZhY3RvcnkubW0KQEAgLTE1LDYgKzE1
LDkgQEAKICNpbXBvcnQgImJhc2UvUlRDVmlkZW9FbmNvZGVyLmgiCiAjaW1wb3J0ICJiYXNlL1JU
Q1ZpZGVvRW5jb2RlckZhY3RvcnkuaCIKICNpbXBvcnQgImNvbXBvbmVudHMvdmlkZW9fY29kZWMv
UlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZhdGUuaCIKKyNpZm5kZWYgRElTQUJMRV9IMjY1
CisjaW1wb3J0ICJjb21wb25lbnRzL3ZpZGVvX2NvZGVjL1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2
NStQcml2YXRlLmgiCisjZW5kaWYKICNpbXBvcnQgInNkay9vYmpjL2FwaS9wZWVyY29ubmVjdGlv
bi9SVENFbmNvZGVkSW1hZ2UrUHJpdmF0ZS5oIgogI2ltcG9ydCAic2RrL29iamMvYXBpL3BlZXJj
b25uZWN0aW9uL1JUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIrUHJpdmF0ZS5oIgogI2ltcG9ydCAi
c2RrL29iamMvYXBpL3BlZXJjb25uZWN0aW9uL1JUQ1ZpZGVvQ29kZWNJbmZvK1ByaXZhdGUuaCIK
QEAgLTY1LDggKzY4LDE2IEBAIGNsYXNzIE9iakNWaWRlb0VuY29kZXIgOiBwdWJsaWMgVmlkZW9F
bmNvZGVyIHsKIAogICAgICAgLy8gSGFuZGxlIHR5cGVzIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCBp
bnRvIG9uZSBvZiBDb2RlY1NwZWNpZmljSW5mbydzIGhhcmQgY29kZWQgY2FzZXMuCiAgICAgICBD
b2RlY1NwZWNpZmljSW5mbyBjb2RlY1NwZWNpZmljSW5mbzsKLSAgICAgIGlmIChbaW5mbyBpc0tp
bmRPZkNsYXNzOltSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQgY2xhc3NdXSkgeworICAgICAgLy8g
QmVjYXVzZSBvZiBzeW1ib2wgY29uZmxpY3QsIGlzS2luZE9mQ2xhc3MgZG9lc24ndCB3b3JrIGFz
IGV4cGVjdGVkLgorICAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTg3ODIuCisgICAgICBpZiAoW05TU3RyaW5nRnJvbUNsYXNzKFtpbmZvIGNsYXNz
XSkgaXNFcXVhbDpAIldLX1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NCJdKSB7CisgICAgICAgIC8v
IGlmIChbaW5mbyBpc0tpbmRPZkNsYXNzOltSVENDb2RlY1NwZWNpZmljSW5mb0gyNjQgY2xhc3Nd
XSkgewogICAgICAgICBjb2RlY1NwZWNpZmljSW5mbyA9IFsoUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY0ICopaW5mbyBuYXRpdmVDb2RlY1NwZWNpZmljSW5mb107CisjaWZuZGVmIERJU0FCTEVfSDI2
NQorICAgICAgfSBlbHNlIGlmIChbTlNTdHJpbmdGcm9tQ2xhc3MoW2luZm8gY2xhc3NdKSBpc0Vx
dWFsOkAiV0tfUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1Il0pIHsKKyAgICAgICAgLy8gaWYgKFtp
bmZvIGlzS2luZE9mQ2xhc3M6W1JUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NSBjbGFzc11dKSB7Cisg
ICAgICAgIGNvZGVjU3BlY2lmaWNJbmZvID0gWyhSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUgKilp
bmZvIG5hdGl2ZUNvZGVjU3BlY2lmaWNJbmZvXTsKKyNlbmRpZgogICAgICAgfQogCiAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UlRQRnJhZ21lbnRhdGlvbkhlYWRlcj4gZnJhZ21lbnRhdGlvbkhlYWRl
ciA9CkBAIC0xNjcsNyArMTc4LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0VuY29kZXI+IE9i
akNWaWRlb0VuY29kZXJGYWN0b3J5OjpDcmVhdGVWaWRlb0VuY29kZXIoCiAgICAgY29uc3QgU2Rw
VmlkZW9Gb3JtYXQgJmZvcm1hdCkgewogICBSVENWaWRlb0NvZGVjSW5mbyAqaW5mbyA9IFtbUlRD
VmlkZW9Db2RlY0luZm8gYWxsb2NdIGluaXRXaXRoTmF0aXZlU2RwVmlkZW9Gb3JtYXQ6Zm9ybWF0
XTsKICAgaWQ8UlRDVmlkZW9FbmNvZGVyPiBlbmNvZGVyID0gW2VuY29kZXJfZmFjdG9yeV8gY3Jl
YXRlRW5jb2RlcjppbmZvXTsKLSAgaWYgKFtlbmNvZGVyIGlzS2luZE9mQ2xhc3M6W1JUQ1dyYXBw
ZWROYXRpdmVWaWRlb0VuY29kZXIgY2xhc3NdXSkgeworICAvLyBCZWNhdXNlIG9mIHN5bWJvbCBj
b25mbGljdCwgaXNLaW5kT2ZDbGFzcyBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuCisgIC8vIFNl
ZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4NzgyLgorICAvLyBp
ZiAoW2VuY29kZXIgaXNLaW5kT2ZDbGFzczpbUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRW5jb2RlciBj
bGFzc11dKSB7CisgIGlmIChbaW5mby5uYW1lIGlzRXF1YWw6QCJWUDgiXSB8fCBbaW5mby5uYW1l
IGlzRXF1YWw6QCJWUDkiXSkgewogICAgIHJldHVybiBbKFJUQ1dyYXBwZWROYXRpdmVWaWRlb0Vu
Y29kZXIgKillbmNvZGVyIHJlbGVhc2VXcmFwcGVkRW5jb2Rlcl07CiAgIH0gZWxzZSB7CiAgICAg
cmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxPYmpDVmlkZW9FbmNvZGVyPihuZXcgT2JqQ1ZpZGVvRW5j
b2RlcihlbmNvZGVyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmNjIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVh
bV9yZWNlaXZlci5jYwppbmRleCA4NWZiODg2MmYyNWYxZTIxZjc1YmEyMTc4Y2ZkY2Y1ZDA1ZjA3
YTUzLi4wNThkZjBhZTk2NmU1ZDExZWZhMjRlMDMwNjQ5YzU2MjkxOWEyY2U5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy92aWRlby9ydHBfdmlk
ZW9fc3RyZWFtX3JlY2VpdmVyLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJlYW1fcmVjZWl2ZXIuY2MKQEAgLTU4Nyw3
ICs1ODcsMjQgQEAgdm9pZCBSdHBWaWRlb1N0cmVhbVJlY2VpdmVyOjpPblJlY2VpdmVkUGF5bG9h
ZERhdGEoCiAgICAgICAgIHBhY2tldC0+dmlkZW9fcGF5bG9hZCA9IHN0ZDo6bW92ZShmaXhlZC5i
aXRzdHJlYW0pOwogICAgICAgICBicmVhazsKICAgICB9Ci0KKyNpZm5kZWYgRElTQUJMRV9IMjY1
CisgIH0gZWxzZSBpZiAocGFja2V0LT5jb2RlYygpID09IGtWaWRlb0NvZGVjSDI2NSkgeworICAg
IHZpZGVvX2NvZGluZzo6SDI2NVZwc1Nwc1Bwc1RyYWNrZXI6OkZpeGVkQml0c3RyZWFtIGZpeGVk
ID0KKyAgICAgICAgaDI2NV90cmFja2VyXy5Db3B5QW5kRml4Qml0c3RyZWFtKAorICAgICAgICAg
ICAgcnRjOjpNYWtlQXJyYXlWaWV3KGNvZGVjX3BheWxvYWQuY2RhdGEoKSwgY29kZWNfcGF5bG9h
ZC5zaXplKCkpLAorICAgICAgICAgICAgJnBhY2tldC0+dmlkZW9faGVhZGVyKTsKKyAgICBzd2l0
Y2ggKGZpeGVkLmFjdGlvbikgeworICAgICAgY2FzZSB2aWRlb19jb2Rpbmc6OkgyNjVWcHNTcHNQ
cHNUcmFja2VyOjprUmVxdWVzdEtleWZyYW1lOgorICAgICAgICBydGNwX2ZlZWRiYWNrX2J1ZmZl
cl8uUmVxdWVzdEtleUZyYW1lKCk7CisgICAgICAgIHJ0Y3BfZmVlZGJhY2tfYnVmZmVyXy5TZW5k
QnVmZmVyZWRSdGNwRmVlZGJhY2soKTsKKyAgICAgICAgQUJTTF9GQUxMVEhST1VHSF9JTlRFTkRF
RDsKKyAgICAgIGNhc2UgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBzVHJhY2tlcjo6a0Ryb3A6
CisgICAgICAgIHJldHVybjsKKyAgICAgIGNhc2UgdmlkZW9fY29kaW5nOjpIMjY1VnBzU3BzUHBz
VHJhY2tlcjo6a0luc2VydDoKKyAgICAgICAgcGFja2V0LT52aWRlb19wYXlsb2FkID0gc3RkOjpt
b3ZlKGZpeGVkLmJpdHN0cmVhbSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyNlbmRpZgogICB9
IGVsc2UgewogICAgIHBhY2tldC0+dmlkZW9fcGF5bG9hZCA9IHN0ZDo6bW92ZShjb2RlY19wYXls
b2FkKTsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNlaXZlci5oIGIvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vcnRwX3ZpZGVvX3N0cmVhbV9yZWNl
aXZlci5oCmluZGV4IDAzMDcwZGI1MWRjNWQzYmJmMzBlNjFmYjhhYTBlZWJlOTVlMjJhNzEuLjMz
MDQ1NWIxYjg2YmQ1ZmQzZTQwZDUzNjM2YjYwM2VjNjcwMzc3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3J0cF92aWRlb19zdHJl
YW1fcmVjZWl2ZXIuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy92aWRlby9ydHBfdmlkZW9fc3RyZWFtX3JlY2VpdmVyLmgKQEAgLTM4LDYgKzM4LDkgQEAK
ICNpbmNsdWRlICJtb2R1bGVzL3J0cF9ydGNwL3NvdXJjZS92aWRlb19ydHBfZGVwYWNrZXRpemVy
LmgiCiAjaW5jbHVkZSAibW9kdWxlcy92aWRlb19jb2RpbmcvaDI2NF9zcHNfcHBzX3RyYWNrZXIu
aCIKICNpbmNsdWRlICJtb2R1bGVzL3ZpZGVvX2NvZGluZy9sb3NzX25vdGlmaWNhdGlvbl9jb250
cm9sbGVyLmgiCisjaWZuZGVmIERJU0FCTEVfSDI2NQorI2luY2x1ZGUgIm1vZHVsZXMvdmlkZW9f
Y29kaW5nL2gyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oIgorI2VuZGlmCiAjaW5jbHVkZSAibW9k
dWxlcy92aWRlb19jb2RpbmcvcGFja2V0X2J1ZmZlci5oIgogI2luY2x1ZGUgIm1vZHVsZXMvdmlk
ZW9fY29kaW5nL3J0cF9mcmFtZV9yZWZlcmVuY2VfZmluZGVyLmgiCiAjaW5jbHVkZSAibW9kdWxl
cy92aWRlb19jb2RpbmcvdW5pcXVlX3RpbWVzdGFtcF9jb3VudGVyLmgiCkBAIC0zMTcsNiArMzIw
LDEwIEBAIGNsYXNzIFJ0cFZpZGVvU3RyZWFtUmVjZWl2ZXIgOiBwdWJsaWMgTG9zc05vdGlmaWNh
dGlvblNlbmRlciwKICAgLy8gTWFwcyBwYXlsb2FkIGlkIHRvIHRoZSBkZXBhY2tldGl6ZXIuCiAg
IHN0ZDo6bWFwPHVpbnQ4X3QsIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1J0cERlcGFja2V0aXplcj4+
IHBheWxvYWRfdHlwZV9tYXBfOwogCisjaWZuZGVmIERJU0FCTEVfSDI2NQorICB2aWRlb19jb2Rp
bmc6OkgyNjVWcHNTcHNQcHNUcmFja2VyIGgyNjVfdHJhY2tlcl87CisjZW5kaWYKKwogICAvLyBU
T0RPKGpvaGFuKTogUmVtb3ZlIHB0X2NvZGVjX3BhcmFtc18gb25jZQogICAvLyBodHRwczovL2J1
Z3MuY2hyb21pdW0ub3JnL3Avd2VicnRjL2lzc3Vlcy9kZXRhaWw/aWQ9Njg4MyBpcyByZXNvbHZl
ZC4KICAgLy8gTWFwcyBhIHBheWxvYWQgdHlwZSB0byBhIG1hcCBvZiBvdXQtb2YtYmFuZCBzdXBw
bGllZCBjb2RlYyBwYXJhbWV0ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vc2VuZF9zdGF0aXN0aWNzX3Byb3h5LmNjIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vc2VuZF9zdGF0aXN0
aWNzX3Byb3h5LmNjCmluZGV4IDYwZDg0ZjE0Yzc4OWU5YzVkMzk5YWRlZTQ4YmRkMzE3ZGFjMDg2
MDAuLmYyMTQxNzIyOWE3MGYyYjgyMTM4ODYwNWM0ODBjMDFjNTc5NWQ4N2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3NlbmRfc3Rh
dGlzdGljc19wcm94eS5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3dlYnJ0Yy92aWRlby9zZW5kX3N0YXRpc3RpY3NfcHJveHkuY2MKQEAgLTQ3LDYgKzQ3LDcgQEAg
ZW51bSBIaXN0b2dyYW1Db2RlY1R5cGUgewogICBrVmlkZW9WcDggPSAxLAogICBrVmlkZW9WcDkg
PSAyLAogICBrVmlkZW9IMjY0ID0gMywKKyAga1ZpZGVvSDI2NSA9IDQsCiAgIGtWaWRlb01heCA9
IDY0LAogfTsKIApAQCAtNzQsNiArNzUsMTAgQEAgSGlzdG9ncmFtQ29kZWNUeXBlIFBheWxvYWRO
YW1lVG9IaXN0b2dyYW1Db2RlY1R5cGUoCiAgICAgICByZXR1cm4ga1ZpZGVvVnA5OwogICAgIGNh
c2Uga1ZpZGVvQ29kZWNIMjY0OgogICAgICAgcmV0dXJuIGtWaWRlb0gyNjQ7CisjaWZuZGVmIERJ
U0FCTEVfSDI2NQorICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAgICAgcmV0dXJuIGtWaWRl
b0gyNjU7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgcmV0dXJuIGtWaWRlb1Vua25vd247
CiAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2Vi
cnRjL3ZpZGVvL3ZpZGVvX3JlY2VpdmVfc3RyZWFtLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MKaW5kZXgg
MjQ2ZGFhZGI4MWJiYmVmOGNjMGY4OGRiYzUxZDk0ZWMzOTZiYzc4My4uZjFiNjU1ZjAxODQzYTJi
ZjY2NDNmMmViNzY3YTQ3MmQxMDg2MjY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9fcmVjZWl2ZV9zdHJlYW0uY2MKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvdmlkZW8vdmlkZW9f
cmVjZWl2ZV9zdHJlYW0uY2MKQEAgLTEzNCw2ICsxMzQsMTEgQEAgVmlkZW9Db2RlYyBDcmVhdGVE
ZWNvZGVyVmlkZW9Db2RlYyhjb25zdCBWaWRlb1JlY2VpdmVTdHJlYW06OkRlY29kZXImIGRlY29k
ZXIpIHsKICAgICBhc3NvY2lhdGVkX2NvZGVjLmNvZGVjVHlwZSA9IGtWaWRlb0NvZGVjTXVsdGlw
bGV4OwogICAgIHJldHVybiBhc3NvY2lhdGVkX2NvZGVjOwogICB9CisjaWZuZGVmIERJU0FCTEVf
SDI2NQorICBlbHNlIGlmIChjb2RlYy5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29kZWNIMjY1KSB7Cisg
ICAgKihjb2RlYy5IMjY1KCkpID0gVmlkZW9FbmNvZGVyOjpHZXREZWZhdWx0SDI2NVNldHRpbmdz
KCk7CisgIH0KKyNlbmRpZgogCiAgIGNvZGVjLndpZHRoID0gMzIwOwogICBjb2RlYy5oZWlnaHQg
PSAxODA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy92aWRlby92aWRlb19zdHJlYW1fZW5jb2Rlci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjCmluZGV4
IDgyNTJjYjI5ZWYxN2RmMGNmMGEyZmM4ZmRkZTcwZjFkNTllOWQ4ZDUuLjUyODkxZTljMWI3MGM4
ODY0Nzg0YjQ1NDMyZTNlYzM4ZjIwNThiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVvX3N0cmVhbV9lbmNvZGVyLmNjCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3ZpZGVvL3ZpZGVv
X3N0cmVhbV9lbmNvZGVyLmNjCkBAIC0xMDAsNyArMTAwLDEzIEBAIGJvb2wgUmVxdWlyZXNFbmNv
ZGVyUmVzZXQoY29uc3QgVmlkZW9Db2RlYyYgcHJldl9zZW5kX2NvZGVjLAogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgIH0KICAgICAgIGJyZWFrOwotCisjaWZuZGVmIERJU0FCTEVfSDI2NQor
ICAgIGNhc2Uga1ZpZGVvQ29kZWNIMjY1OgorICAgICAgaWYgKG5ld19zZW5kX2NvZGVjLkgyNjUo
KSAhPSBwcmV2X3NlbmRfY29kZWMuSDI2NSgpKSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgfQorICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgYnJlYWs7CiAg
IH0KQEAgLTE0MDMsNiArMTQwOSw5IEBAIEVuY29kZWRJbWFnZUNhbGxiYWNrOjpSZXN1bHQgVmlk
ZW9TdHJlYW1FbmNvZGVyOjpPbkVuY29kZWRJbWFnZSgKICAgaWYgKGNvZGVjX3NwZWNpZmljX2lu
Zm8gJiYKICAgICAgIChjb2RlY19zcGVjaWZpY19pbmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVvQ29k
ZWNWUDggfHwKICAgICAgICBjb2RlY19zcGVjaWZpY19pbmZvLT5jb2RlY1R5cGUgPT0ga1ZpZGVv
Q29kZWNIMjY0IHx8CisjaWZuZGVmIERJU0FCTEVfSDI2NQorICAgICAgIGNvZGVjX3NwZWNpZmlj
X2luZm8tPmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY0gyNjUgfHwKKyNlbmRpZgogICAgICAgIGNv
ZGVjX3NwZWNpZmljX2luZm8tPmNvZGVjVHlwZSA9PSBrVmlkZW9Db2RlY0dlbmVyaWMpKSB7CiAg
ICAgc2ltdWxjYXN0X2lkID0gZW5jb2RlZF9pbWFnZS5TcGF0aWFsSW5kZXgoKS52YWx1ZV9vcigw
KTsKICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0
Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlN2Y3MTZiMDEzODVi
MTFmMzQzOTMxZDE1NGQ4OWNiY2QzMDdlNDIuLjBmZWY1MTExODU1ODQzOGQ2OWRhMmE0ODA0YjA3
ZmQ4NWRlMTQ4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3
ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5LDYgKzI5
LDE2IEBACiAJCTQxMDA5MURDMjQyRTBCQkMwMEM1RURBMiAvKiB2aWRlb19jb2RlY190eXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFENzI0
MkUwQkJCMDBDNUVEQTIgLyogdmlkZW9fY29kZWNfdHlwZS5oICovOyB9OwogCQk0MTAwOTFERDI0
MkUwQkJDMDBDNUVEQTIgLyogcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1lLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFEODI0MkUwQkJCMDBDNUVE
QTIgLyogcmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1lLmggKi87IH07CiAJCTQxMDA5MURFMjQyRTBC
QkMwMEM1RURBMiAvKiB2aWRlb19mcmFtZV90eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFEOTI0MkUwQkJCMDBDNUVEQTIgLyogdmlkZW9f
ZnJhbWVfdHlwZS5oICovOyB9OworCQk0MTAwOTFFNjI0MkUyQUEzMDBDNUVEQTIgLyogcnRwX2Zv
cm1hdF9oMjY1LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDEwMDkxRTAyNDJFMkFBMTAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5jYyAqLzsgfTsK
KwkJNDEwMDkxRTcyNDJFMkFBMzAwQzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRTEyNDJFMkFBMjAw
QzVFREEyIC8qIHJ0cF9mb3JtYXRfaDI2NS5oICovOyB9OworCQk0MTAwOTFFRDI0MkUzMTc0MDBD
NUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFFQjI0MkUzMTczMDBDNUVEQTIgLyogaDI2
NV92cHNfc3BzX3Bwc190cmFja2VyLmggKi87IH07CisJCTQxMDA5MUY5MjQyRTM2MjIwMEM1RURB
MiAvKiBoMjY1X3Nwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxMDA5MUYxMjQyRTM2MjEwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIu
aCAqLzsgfTsKKwkJNDEwMDkxRkQyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFGNTI0MkUz
NjIxMDBDNUVEQTIgLyogaDI2NV9jb21tb24uaCAqLzsgfTsKKwkJNDEwMDkxRkUyNDJFMzYyMjAw
QzVFREEyIC8qIGgyNjVfdnBzX3BhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRjYyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfdnBzX3Bh
cnNlci5oICovOyB9OworCQk0MTAwOTFGRjI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24u
Y2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTFG
NzI0MkUzNjIyMDBDNUVEQTIgLyogaDI2NV9jb21tb24uY2MgKi87IH07CisJCTQxMDA5MjA5MjQy
RTNBNDYwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTIwMDI0MkUzQTQzMDBDNUVEQTIgLyog
UlRDVmlkZW9EZWNvZGVySDI2NS5oICovOyB9OworCQk0MTAwOTIwQTI0MkUzQTQ2MDBDNUVEQTIg
LyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDEwMDkyMDEyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0gyNjVQcm9m
aWxlTGV2ZWxJZC5tbSAqLzsgfTsKKwkJNDEwMDkyMEUyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gy
NjVQcm9maWxlTGV2ZWxJZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEwMDkyMDUyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJ
ZC5oICovOyB9OwogCQk0MTAyRjZBMTIxMjczMjYyMDA2QUU4RDcgLyogcmVtaXhfcmVzYW1wbGUu
Y2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAyRjY5
NzIxMjczMjYwMDA2QUU4RDcgLyogcmVtaXhfcmVzYW1wbGUuY2MgKi87IH07CiAJCTQxMDJGNkEy
MjEyNzMyNjIwMDZBRThENyAvKiBhdWRpb19sZXZlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMkY2OTgyMTI3MzI2MDAwNkFFOEQ3IC8qIGF1ZGlv
X2xldmVsLmggKi87IH07CiAJCTQxMDJGNkE0MjEyNzMyNjIwMDZBRThENyAvKiBhdWRpb19sZXZl
bC5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDJG
NjlBMjEyNzMyNjEwMDZBRThENyAvKiBhdWRpb19sZXZlbC5jYyAqLzsgfTsKQEAgLTE5NjQsNiAr
MTk3NCwxMyBAQAogCQk0MUUwMkNEMDIxMjczNUI3MDBDMjdDRDYgLyogYml0cmF0ZV9zZXR0aW5n
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMDJD
Q0IyMTI3MzVCNzAwQzI3Q0Q2IC8qIGJpdHJhdGVfc2V0dGluZ3MuaCAqLzsgfTsKIAkJNDFFMDJD
RDMyMTI3MzYwNzAwQzI3Q0Q2IC8qIHNhbXBsZV9jb3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUwMkNEMTIxMjczNjA2MDBDMjdDRDYgLyog
c2FtcGxlX2NvdW50ZXIuaCAqLzsgfTsKIAkJNDFFMDJDRDQyMTI3MzYwNzAwQzI3Q0Q2IC8qIHNh
bXBsZV9jb3VudGVyLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFFMDJDRDIyMTI3MzYwNzAwQzI3Q0Q2IC8qIHNhbXBsZV9jb3VudGVyLmNjICovOyB9
OworCQk0MUU4NEJDRTI0MzczQkRFMDBEMzRFNDEgLyogaDI2NV9wcHNfcGFyc2VyLmNjIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRjMyNDJFMzYy
MTAwQzVFREEyIC8qIGgyNjVfcHBzX3BhcnNlci5jYyAqLzsgfTsKKwkJNDFFODRCQ0YyNDM3M0JF
MjAwRDM0RTQxIC8qIGgyNjVfc3BzX3BhcnNlci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MUYwMjQyRTM2MjAwMEM1RURBMiAvKiBoMjY1X3Nw
c19wYXJzZXIuY2MgKi87IH07CisJCTQxRTg0QkQwMjQzNzNCRTYwMEQzNEU0MSAvKiBoMjY1X3Zw
c19wYXJzZXIuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTAwOTFGNDI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjICovOyB9Owor
CQk0MUU4NEJEMTI0MzczQzA3MDBEMzRFNDEgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNj
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEwMDkxRUMy
NDJFMzE3MzAwQzVFREEyIC8qIGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5jYyAqLzsgfTsKKwkJ
NDFFODRCRDIyNDM3M0MxNDAwRDM0RTQxIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTIwNzI0MkUzQTQ1
MDBDNUVEQTIgLyogUlRDVmlkZW9EZWNvZGVySDI2NS5tbSAqLzsgfTsKKwkJNDFFODRCRDMyNDM3
M0MxQTAwRDM0RTQxIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTAwOTIwNjI0MkUzQTQ1MDBDNUVEQTIgLyog
UlRDVmlkZW9FbmNvZGVySDI2NS5tbSAqLzsgfTsKKwkJNDFFODRCRDQyNDM3M0MyOTAwRDM0RTQx
IC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMDA5MjA4MjQyRTNBNDYwMEM1RURBMiAvKiBSVENDb2Rl
Y1NwZWNpZmljSW5mb0gyNjUubW0gKi87IH07CiAJCTQxRUE1M0E1MUVGQzJDMTQwMDJGRjA0QyAv
KiBobWFjLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUVBNTNBNDFFRkMyQkZEMDAyRkYwNEMgLyogaG1hYy5jICovOyB9OwogCQk0MUVBNTNBQjFFRkMy
QzREMDAyRkYwNEMgLyogZGlnZXN0LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MUVBNTNBNzFFRkMyQzREMDAyRkYwNEMgLyogZGlnZXN0LmMgKi87IH07
CiAJCTQxRUE1M0FDMUVGQzJDNEQwMDJGRjA0QyAvKiBkaWdlc3RzLmMgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUVBNTNBODFFRkMyQzREMDAyRkYwNEMg
LyogZGlnZXN0cy5jICovOyB9OwpAQCAtMzkyNiw2ICszOTQzLDI3IEBACiAJCTQxMDA5MUQ3MjQy
RTBCQkIwMEM1RURBMiAvKiB2aWRlb19jb2RlY190eXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHZpZGVvX2NvZGVjX3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDEwMDkxRDgyNDJFMEJCQjAwQzVFREEyIC8qIHJlY29yZGFibGVfZW5jb2RlZF9mcmFt
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSByZWNvcmRhYmxlX2VuY29kZWRf
ZnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMDkxRDkyNDJFMEJCQjAw
QzVFREEyIC8qIHZpZGVvX2ZyYW1lX3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gdmlkZW9fZnJhbWVfdHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MTAwOTFFMDI0MkUyQUExMDBDNUVEQTIgLyogcnRwX2Zvcm1hdF9oMjY1LmNjICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcnRwX2Zvcm1hdF9oMjY1LmNjOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFMTI0MkUyQUEyMDBDNUVEQTIgLyogcnRwX2Zvcm1h
dF9oMjY1LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHJ0cF9mb3JtYXRfaDI2
NS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFFQjI0MkUzMTczMDBDNUVE
QTIgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IGgyNjVfdnBzX3Nwc19wcHNfdHJhY2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MTAwOTFFQzI0MkUzMTczMDBDNUVEQTIgLyogaDI2NV92cHNfc3BzX3Bwc190
cmFja2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV92cHNf
c3BzX3Bwc190cmFja2VyLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFG
MDI0MkUzNjIwMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV9zcHNfcGFyc2VyLmNjOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MTAwOTFGMTI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV9zcHNfcGFyc2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVfc3BzX3BhcnNlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFGMjI0MkUzNjIxMDBDNUVEQTIgLyog
aDI2NV9wcHNfcGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGgyNjVf
cHBzX3BhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFGMzI0MkUz
NjIxMDBDNUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gaDI2NV9wcHNfcGFyc2VyLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTAwOTFGNDI0MkUzNjIxMDBDNUVEQTIgLyogaDI2NV92cHNfcGFyc2VyLmNjICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaDI2NV92cHNfcGFyc2VyLmNjOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTFGNTI0MkUzNjIxMDBDNUVEQTIgLyog
aDI2NV9jb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaDI2NV9jb21t
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkxRjYyNDJFMzYyMjAwQzVF
REEyIC8qIGgyNjVfdnBzX3BhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBoMjY1X3Zwc19wYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkx
RjcyNDJFMzYyMjAwQzVFREEyIC8qIGgyNjVfY29tbW9uLmNjICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gaDI2NV9jb21tb24uY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxMDA5MjAwMjQyRTNBNDMwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ1ZpZGVvRGVjb2RlckgyNjUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDEyNDJFM0E0NDAwQzVFREEyIC8q
IFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDEwMDkyMDIyNDJFM0E0NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZv
SDI2NS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENDb2RlY1NwZWNpZmlj
SW5mb0gyNjUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDMyNDJFM0E0
NDAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NStQcml2YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJSVENDb2RlY1NwZWNpZmljSW5mb0gyNjUrUHJpdmF0
ZS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDQyNDJFM0E0NTAwQzVF
REEyIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUlRDVmlkZW9FbmNvZGVySDI2NS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTAwOTIwNTI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDSDI2NVByb2ZpbGVMZXZlbElkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTAwOTIwNjI0MkUzQTQ1MDBDNUVEQTIgLyog
UlRDVmlkZW9FbmNvZGVySDI2NS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFJUQ1ZpZGVvRW5jb2RlckgyNjUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxMDA5MjA3MjQyRTNBNDUwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUlRDVmlkZW9EZWNvZGVySDI2
NS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMDkyMDgyNDJFM0E0NjAwQzVF
REEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMENERTUyMUNBQ0ZEMDAwRjlCODdEIC8qIExQQ19maXQu
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gTFBDX2ZpdC5jOyBwYXRoID0gc2ls
ay9MUENfZml0LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMDBDREU4MjFDQUQw
MzMwMEY5Qjg3RCAvKiB2cV9zc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
dnFfc3NlLmg7IHBhdGggPSB4ODYvdnFfc3NlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxMDBDREVCMjFDQUQxRjUwMEY5Qjg3RCAvKiBwaXRjaF9zc2U0XzEuYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGl0Y2hfc3NlNF8xLmM7IHBhdGggPSB4ODYvcGl0Y2hf
c3NlNF8xLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03ODU3LDYgKzc4OTUsMjEg
QEAKIC8qIEVuZCBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCiAKIC8qIEJlZ2lu
IFBCWEdyb3VwIHNlY3Rpb24gKi8KKwkJNDEwMDkxRUYyNDJFMzYwODAwQzVFREEyIC8qIGgyNjUg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTQxMDA5MUY3
MjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1X2NvbW1vbi5jYyAqLywKKwkJCQk0MTAwOTFGNTI0MkUz
NjIxMDBDNUVEQTIgLyogaDI2NV9jb21tb24uaCAqLywKKwkJCQk0MTAwOTFGMzI0MkUzNjIxMDBD
NUVEQTIgLyogaDI2NV9wcHNfcGFyc2VyLmNjICovLAorCQkJCTQxMDA5MUYyMjQyRTM2MjEwMEM1
RURBMiAvKiBoMjY1X3Bwc19wYXJzZXIuaCAqLywKKwkJCQk0MTAwOTFGMDI0MkUzNjIwMDBDNUVE
QTIgLyogaDI2NV9zcHNfcGFyc2VyLmNjICovLAorCQkJCTQxMDA5MUYxMjQyRTM2MjEwMEM1RURB
MiAvKiBoMjY1X3Nwc19wYXJzZXIuaCAqLywKKwkJCQk0MTAwOTFGNDI0MkUzNjIxMDBDNUVEQTIg
LyogaDI2NV92cHNfcGFyc2VyLmNjICovLAorCQkJCTQxMDA5MUY2MjQyRTM2MjIwMEM1RURBMiAv
KiBoMjY1X3Zwc19wYXJzZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gaDI2NTsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTQxMDVFQjY0MjEyRTAxOEMwMDhDMEMyMCAvKiBs
aWJ2cHggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTEx
OCwyMyArOTE3MSwzMiBAQAogCQkJCTQxNjIyNUY1MjE2OTgxRjQwMEE5MUM5QiAvKiBoZWxwZXJz
LmggKi8sCiAJCQkJNDE3OTUzQUMyMTY5ODIzRDAwMjgyNjZCIC8qIG5hbHVfcmV3cml0ZXIuY2Mg
Ki8sCiAJCQkJNDExNTIxRDUyMTY5ODIyMDAwMEFCQUY3IC8qIG5hbHVfcmV3cml0ZXIuaCAqLywK
LQkJCQk0MTc5NTNCMjIxNjk4MjQxMDAyODI2NkIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0
K1ByaXZhdGUuaCAqLywKIAkJCQk0MTYyMjVGMTIxNjk4MUYzMDBBOTFDOUIgLyogUlRDQ29kZWNT
cGVjaWZpY0luZm9IMjY0LmggKi8sCiAJCQkJNDE2MjI1RUQyMTY5ODFGMjAwQTkxQzlCIC8qIFJU
Q0NvZGVjU3BlY2lmaWNJbmZvSDI2NC5tbSAqLywKKwkJCQk0MTc5NTNCMjIxNjk4MjQxMDAyODI2
NkIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY0K1ByaXZhdGUuaCAqLywKKwkJCQk0MTAwOTIw
MjI0MkUzQTQ0MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9IMjY1LmggKi8sCisJCQkJ
NDEwMDkyMDgyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0NvZGVjU3BlY2lmaWNJbmZvSDI2NS5tbSAq
LywKKwkJCQk0MTAwOTIwMzI0MkUzQTQ0MDBDNUVEQTIgLyogUlRDQ29kZWNTcGVjaWZpY0luZm9I
MjY1K1ByaXZhdGUuaCAqLywKIAkJCQk0MTc5NTNCMzIxNjk4MjQyMDAyODI2NkIgLyogUlRDRGVm
YXVsdFZpZGVvRGVjb2RlckZhY3RvcnkuaCAqLywKIAkJCQk0MTc5NTNBRDIxNjk4MjNFMDAyODI2
NkIgLyogUlRDRGVmYXVsdFZpZGVvRGVjb2RlckZhY3RvcnkubSAqLywKIAkJCQk0MTYyMjVGNzIx
Njk4MUY0MDBBOTFDOUIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3RvcnkuaCAqLywKIAkJ
CQk0MTc5NTNBRjIxNjk4MjNGMDAyODI2NkIgLyogUlRDRGVmYXVsdFZpZGVvRW5jb2RlckZhY3Rv
cnkubSAqLywKIAkJCQk0MTE1MjFENDIxNjk4MjFGMDAwQUJBRjcgLyogUlRDSDI2NFByb2ZpbGVM
ZXZlbElkLmggKi8sCiAJCQkJNDExNTIxRDYyMTY5ODIyMDAwMEFCQUY3IC8qIFJUQ0gyNjRQcm9m
aWxlTGV2ZWxJZC5tbSAqLywKKwkJCQk0MTAwOTIwNTI0MkUzQTQ1MDBDNUVEQTIgLyogUlRDSDI2
NVByb2ZpbGVMZXZlbElkLmggKi8sCisJCQkJNDEwMDkyMDEyNDJFM0E0NDAwQzVFREEyIC8qIFJU
Q0gyNjVQcm9maWxlTGV2ZWxJZC5tbSAqLywKIAkJCQk0MTYyMjVGMjIxNjk4MUYzMDBBOTFDOUIg
LyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQuaCAqLywKIAkJCQk0MTc5NTNCMDIxNjk4MjQw
MDAyODI2NkIgLyogUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQubSAqLywKIAkJCQk0MTYyMjVG
MzIxNjk4MUYzMDBBOTFDOUIgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5oICovLAogCQkJCTQxNjIy
NUY0MjE2OTgxRjMwMEE5MUM5QiAvKiBSVENWaWRlb0RlY29kZXJIMjY0Lm1tICovLAorCQkJCTQx
MDA5MjAwMjQyRTNBNDMwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1LmggKi8sCisJCQkJ
NDEwMDkyMDcyNDJFM0E0NTAwQzVFREEyIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjUubW0gKi8sCiAJ
CQkJNDE2MjI1RUYyMTY5ODFGMjAwQTkxQzlCIC8qIFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0
LmggKi8sCiAJCQkJNDE3OTUzQjEyMTY5ODI0MDAwMjgyNjZCIC8qIFJUQ1ZpZGVvRW5jb2RlckZh
Y3RvcnlIMjY0Lm0gKi8sCiAJCQkJNDE2MjI1RUMyMTY5ODFGMjAwQTkxQzlCIC8qIFJUQ1ZpZGVv
RW5jb2RlckgyNjQuaCAqLywKIAkJCQk0MTYyMjVGNjIxNjk4MUY0MDBBOTFDOUIgLyogUlRDVmlk
ZW9FbmNvZGVySDI2NC5tbSAqLywKKwkJCQk0MTAwOTIwNDI0MkUzQTQ1MDBDNUVEQTIgLyogUlRD
VmlkZW9FbmNvZGVySDI2NS5oICovLAorCQkJCTQxMDA5MjA2MjQyRTNBNDUwMEM1RURBMiAvKiBS
VENWaWRlb0VuY29kZXJIMjY1Lm1tICovLAogCQkJCTQxNjIyNUVFMjE2OTgxRjIwMEE5MUM5QiAv
KiBVSURldmljZStIMjY0UHJvZmlsZS5oICovLAogCQkJCTQxNzk1M0FFMjE2OTgyM0YwMDI4MjY2
QiAvKiBVSURldmljZStIMjY0UHJvZmlsZS5tbSAqLywKIAkJCSk7CkBAIC0xMTcwOSw2ICsxMTc3
MSw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0MTMxQzQyQTIzNEM3RDcwMDAyOEE2MTUgLyog
Z2VuZXJpY19mcmFtZV9kZXNjcmlwdG9yICovLAogCQkJCTVDREQ4MzQxMUU0MzI1NjQwMDYyMUU5
MiAvKiBoMjY0ICovLAorCQkJCTQxMDA5MUVGMjQyRTM2MDgwMEM1RURBMiAvKiBoMjY1ICovLAog
CQkJCTQxMTA5QUE0MUU1RkExODEwMEMwOTU1QSAvKiBpbmNsdWRlICovLAogCQkJCTVDREQ4MzY1
MUU0MzI1QzIwMDYyMUU5MiAvKiBsaWJ5dXYgKi8sCiAJCQkJNUM0QjRDMTAxRTQzMUY3NTAwMjY1
MUM4IC8qIGJpdHJhdGVfYWRqdXN0ZXIuY2MgKi8sCkBAIC0xMjYzMiw2ICsxMjY5NSw4IEBACiAJ
CQkJNUNEMjg1RTkxRTZBNjM5RjAwOTRGREM4IC8qIGgyNjRfc3Byb3BfcGFyYW1ldGVyX3NldHMu
aCAqLywKIAkJCQk1Q0REODM5QTFFNDM5QTZGMDA2MjFFOTIgLyogaDI2NF9zcHNfcHBzX3RyYWNr
ZXIuY2MgKi8sCiAJCQkJNUNERDgzOUIxRTQzOUE2RjAwNjIxRTkyIC8qIGgyNjRfc3BzX3Bwc190
cmFja2VyLmggKi8sCisJCQkJNDEwMDkxRUMyNDJFMzE3MzAwQzVFREEyIC8qIGgyNjVfdnBzX3Nw
c19wcHNfdHJhY2tlci5jYyAqLywKKwkJCQk0MTAwOTFFQjI0MkUzMTczMDBDNUVEQTIgLyogaDI2
NV92cHNfc3BzX3Bwc190cmFja2VyLmggKi8sCiAJCQkJNUNERDgzOUMxRTQzOUE2RjAwNjIxRTky
IC8qIGhpc3RvZ3JhbS5jYyAqLywKIAkJCQk1Q0REODM5RDFFNDM5QTZGMDA2MjFFOTIgLyogaGlz
dG9ncmFtLmggKi8sCiAJCQkJNUNERDgzOUUxRTQzOUE2RjAwNjIxRTkyIC8qIGludGVyX2ZyYW1l
X2RlbGF5LmNjICovLApAQCAtMTMzMjIsNiArMTMzODcsOCBAQAogCQkJCTVDREQ4ODNCMUU0M0JF
M0MwMDYyMUU5MiAvKiBydHBfZm9ybWF0LmggKi8sCiAJCQkJNUNERDg4MkUxRTQzQkUzQzAwNjIx
RTkyIC8qIHJ0cF9mb3JtYXRfaDI2NC5jYyAqLywKIAkJCQk1Q0REODgyRjFFNDNCRTNDMDA2MjFF
OTIgLyogcnRwX2Zvcm1hdF9oMjY0LmggKi8sCisJCQkJNDEwMDkxRTAyNDJFMkFBMTAwQzVFREEy
IC8qIHJ0cF9mb3JtYXRfaDI2NS5jYyAqLywKKwkJCQk0MTAwOTFFMTI0MkUyQUEyMDBDNUVEQTIg
LyogcnRwX2Zvcm1hdF9oMjY1LmggKi8sCiAJCQkJNUNERDg4MzAxRTQzQkUzQzAwNjIxRTkyIC8q
IHJ0cF9mb3JtYXRfdmlkZW9fZ2VuZXJpYy5jYyAqLywKIAkJCQk1Q0REODgzMTFFNDNCRTNDMDA2
MjFFOTIgLyogcnRwX2Zvcm1hdF92aWRlb19nZW5lcmljLmggKi8sCiAJCQkJNUNERDg4MzUxRTQz
QkUzQzAwNjIxRTkyIC8qIHJ0cF9mb3JtYXRfdnA4LmNjICovLApAQCAtMTQ2MjUsNiArMTQ2OTIs
NyBAQAogCQkJCTVDRDI4NUE3MUU2QTYzNDMwMDk0RkRDOCAvKiBhZWNfc3RhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4NUU4MUU0M0I4MTAwMDYyMUU5MiAvKiBhZWNtX2NvcmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDREQ4NUU5MUU0M0I4MTAwMDYyMUU5MiAvKiBhZWNtX2RlZmluZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUU3MjQyRTJBQTMwMEM1RURBMiAvKiBydHBfZm9y
bWF0X2gyNjUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMDg4NTI3MUU0QTk5RDIwMDQwMzk5NSAv
KiBhZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMDg4NTI0MUU0QTk5RDIwMDQwMzk5NSAvKiBh
ZXNfZ2NtX29zc2wuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMDg4NTI2MUU0QTk5RDIwMDQwMzk5
NSAvKiBhZXNfaWNtLmggaW4gSGVhZGVycyAqLywKQEAgLTE0OTY0LDYgKzE1MDMyLDcgQEAKIAkJ
CQk0MTNBMjEzRTFGRTBGMEVGMDAzNzNFOTkgLyogZWt0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REOEI5NzFFNDNDMkI1MDA2MjFFOTIgLyogZW5jb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
Q0REODdCNjFFNDNCQzA1MDA2MjFFOTIgLyogZW5jb2RlX2xwY19zd2IuaCBpbiBIZWFkZXJzICov
LAorCQkJCTQxMDA5MjA5MjQyRTNBNDYwMEM1RURBMiAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEE5NjFFNDNDMDBGMDA2MjFFOTIgLyogZW5jb2RlX25l
dGVxX2lucHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5MzhEODI0MkE2OUNDMDA3RkRDNDEg
LyogZW5jb2RlX3VzYWdlX3Jlc291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODNDRDFF
NDM5QTZGMDA2MjFFOTIgLyogZW5jb2RlZF9mcmFtZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDk5
Niw2ICsxNTA2NSw3IEBACiAJCQkJNDEwMkY2QUYyMTI3MzJFNzAwNkFFOEQ3IC8qIGV4cGFuZF91
bWFfbG9nZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUJFNzFBNjIxNUM0NjM3MDBBN0IxOTYg
LyogZXhwci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg5NEIxRTQzQkYzQTAwNjIxRTkyIC8q
IGV4dGVuZGVkX2ppdHRlcl9yZXBvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUZFMjQy
RTM2MjIwMEM1RURBMiAvKiBoMjY1X3Zwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
REQ4OTRFMUU0M0JGM0EwMDYyMUU5MiAvKiBleHRlbmRlZF9yZXBvcnRzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MTMxQkY0NjIzNEI4ODIwMDAyOEE2MTUgLyogZXh0ZXJuYWxfaG1hYy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUMwNzcyMzRCODk4RDAwMjhBNjE1IC8qIGZha2VfY2xvY2suaCBp
biBIZWFkZXJzICovLApAQCAtMTU0MzQsNiArMTU1MDQsNyBAQAogCQkJCTVDREQ4RkRFMUU0M0NE
NjYwMDYyMUU5MiAvKiByZW1vdGVfYml0cmF0ZV9lc3RpbWF0b3Jfc2luZ2xlX3N0cmVhbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEzMUM0QjcyMzRDODNERDAwMjhBNjE1IC8qIHJlbW90ZV9lc3Rp
bWF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhGRTIxRTQzQ0Q2NjAwNjIxRTkyIC8qIHJl
bW90ZV9lc3RpbWF0b3JfcHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUY5MjQyRTM2
MjIwMEM1RURBMiAvKiBoMjY1X3Nwc19wYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4
M0M1MUZFMjQ3QjQwMDQwQzMwRiAvKiByZW1vdGVfbnRwX3RpbWVfZXN0aW1hdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MTQ1RTREQTFFRjhDQzlCMDBGQ0Y2RTYgLyogcmVuZGVyX2J1ZmZlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNEMjg1RDYxRTZBNjM0MzAwOTRGREM4IC8qIHJlbmRlcl9k
ZWxheV9idWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTU1NjYsNiArMTU2MzcsNyBAQAogCQkJ
CTVDREQ4ODlFMUU0M0JFM0MwMDYyMUU5MiAvKiBydGNwX3NlbmRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzMUM0RUYyMzRDODYxMTAwMjhBNjE1IC8qIHJ0Y3Bfc3RhdGlzdGljcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDE5QzgzMDMxRkUyMEYwMjAwNDBDMzBGIC8qIHJ0Y3BfdHJhbnNjZWl2
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMDA5MUZEMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1
X2NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzMDExRkUyMEYwMjAwNDBDMzBGIC8q
IHJ0Y3BfdHJhbnNjZWl2ZXJfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTlDODMwNTFG
RTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9pbXBsLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MTNBMjQzRTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDUGVlckNvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLApAQCAtMTU2MTEsNiArMTU2ODMsNyBAQAogCQkJCTQxM0EyNDRGMUZFMTk5MUEw
MDM3M0U5OSAvKiBSVENWaWRlb0ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNFNjc4RjIx
Njk4N0RCMDBFRjM3RUQgLyogUlRDVmlkZW9GcmFtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
RTY3OTEyMTY5ODdEQjAwRUYzN0VEIC8qIFJUQ1ZpZGVvRnJhbWVCdWZmZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxMDA5MUVEMjQyRTMxNzQwMEM1RURBMiAvKiBoMjY1X3Zwc19zcHNfcHBzX3Ry
YWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDQxMUZFMTk5MUEwMDM3M0U5OSAvKiBS
VENWaWRlb0ZyYW1lQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ2RjFGRTE5OTFB
MDAzNzNFOTkgLyogUlRDVmlkZW9SZW5kZXJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0
NjExRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvU291cmNlLmggaW4gSGVhZGVycyAqLywKQEAg
LTE1OTQ5LDYgKzE2MDIyLDcgQEAKIAkJCQk0MTAwOTFERTI0MkUwQkJDMDBDNUVEQTIgLyogdmlk
ZW9fZnJhbWVfdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEwMkY2Q0YyMTI3MzNCNzAwNkFF
OEQ3IC8qIHZpZGVvX3F1YWxpdHlfb2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4
MkM0MUZFMjBEQ0QwMDQwQzMwRiAvKiB2aWRlb19yZWNlaXZlX3N0cmVhbS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDEwMDkyMEUyNDJFM0E0NjAwQzVFREEyIC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJ
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg1Q0IxRTQzQjVDMDAwNjIxRTkyIC8qIHZpZGVv
X3JlY2VpdmVfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5M0ExNzI0MkE3NTdBMDA3
RkRDNDEgLyogdmlkZW9fcmVjZWl2ZXIyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzRCNEMyMTFF
NDMxRjc1MDAyNjUxQzggLyogdmlkZW9fcmVuZGVyX2ZyYW1lcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xNzM0Niw2ICsxNzQyMCw3IEBACiAJCQkJNUNERDhCNzIxRTQzQzJCNTAwNjIxRTkyIC8qIGF1
Z21lbnRlZF9jYl9jb3JyLmMgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODY0MDFFNDNCOEI1MDA2
MjFFOTIgLyogYXV0b19jb3JyX3RvX3JlZmxfY29lZi5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDg2NDExRTQzQjhCNTAwNjIxRTkyIC8qIGF1dG9fY29ycmVsYXRpb24uYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxRTg0QkQzMjQzNzNDMUEwMEQzNEU0MSAvKiBSVENWaWRlb0VuY29kZXJIMjY1Lm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUM0MDUyMzRDN0I3RTAwMjhBNjE1IC8qIGF1dG9fY29y
cmVsYXRpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEEwNzFFNDNCRkIzMDA2MjFFOTIg
LyogYmFja2dyb3VuZF9ub2lzZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxQTA4QkM4MjEyNjk1
REUwMDFENUQ3QiAvKiBiYWRfb3B0aW9uYWxfYWNjZXNzLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0x
NzUyMyw2ICsxNzU5OCw3IEBACiAJCQkJNUNEMjg1QzAxRTZBNjM0MzAwOTRGREM4IC8qIGVjaG9f
cmVtb3Zlci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDRDI4NUJFMUU2QTYzNDMwMDk0RkRDOCAv
KiBlY2hvX3JlbW92ZXJfbWV0cmljcy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4Qjk2MUU0
M0MyQjUwMDYyMUU5MiAvKiBlbmNvZGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxRTg0QkQyMjQz
NzNDMTQwMEQzNEU0MSAvKiBSVENWaWRlb0RlY29kZXJIMjY1Lm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDg3QjcxRTQzQkMwNTAwNjIxRTkyIC8qIGVuY29kZS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDE0MzNEMTIxRjc5QjMzNDAwMzg3QjREIC8qIGVuY29kZS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNERDg3QjUxRTQzQkMwNTAwNjIxRTkyIC8qIGVuY29kZV9scGNfc3diLmMgaW4gU291cmNl
cyAqLywKQEAgLTE3Njg1LDYgKzE3NzYxLDcgQEAKIAkJCQk0MTMxQzI4NTIzNEI4Q0M0MDAyOEE2
MTUgLyogaW50ZXJuYWxfZW5jb2Rlcl9mYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNE
RDhCQkYxRTQzQzJCNTAwNjIxRTkyIC8qIGludGVycG9sYXRlLmMgaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0REOEJCRDFFNDNDMkI1MDA2MjFFOTIgLyogaW50ZXJwb2xhdGVfc2FtcGxlcy5jIGluIFNv
dXJjZXMgKi8sCisJCQkJNDFFODRCRDQyNDM3M0MyOTAwRDM0RTQxIC8qIFJUQ0NvZGVjU3BlY2lm
aWNJbmZvSDI2NS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxNUYxRkIyMjEyNzJGQkEwMDA2NENC
RiAvKiBpbnRlcnBvbGF0ZWRfZ2Fpbl9jdXJ2ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4
MjlBMUZFMjBDQTEwMDQwQzMwRiAvKiBpbnRlcnZhbF9idWRnZXQuY2MgaW4gU291cmNlcyAqLywK
IAkJCQk1Q0REODdDMDFFNDNCQzA1MDA2MjFFOTIgLyogaW50aWFsaXplLmMgaW4gU291cmNlcyAq
LywKQEAgLTE3NzE0LDYgKzE3NzkxLDcgQEAKIAkJCQk0MTI5NDA5NDIxMkUxMjhEMDBBRDk1RTcg
LyogbGlidnB4X3ZwOF9kZWNvZGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyOTQwOTIyMTJF
MTI4RDAwQUQ5NUU3IC8qIGxpYnZweF92cDhfZW5jb2Rlci5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxNkQzQkU2MjEyNzMxQzIwMDc3NUYwOSAvKiBsaW1pdGVyLmNjIGluIFNvdXJjZXMgKi8sCisJ
CQkJNDFFODRCQ0YyNDM3M0JFMjAwRDM0RTQxIC8qIGgyNjVfc3BzX3BhcnNlci5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxMzFDNEM1MjM0Qzg0NTIwMDI4QTYxNSAvKiBsaW5rX2NhcGFjaXR5X2Vz
dGltYXRvci5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjRBMjM0Qjg4MjAwMDI4QTYxNSAv
KiBsb2NhbF9hdWRpb19zb3VyY2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzA2OTIzNEI4
OThEMDAyOEE2MTUgLyogbG9jYXRpb24uY2MgaW4gU291cmNlcyAqLywKQEAgLTE3NzI5LDYgKzE3
ODA3LDcgQEAKIAkJCQk1Q0REODdDNTFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX2FuYWx5c2lzLmMg
aW4gU291cmNlcyAqLywKIAkJCQk1Q0REOEJDMTFFNDNDMkI1MDA2MjFFOTIgLyogbHBjX2VuY29k
ZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg3QzcxRTQzQkMwNTAwNjIxRTkyIC8qIGxwY19n
YWluX3N3Yl90YWJsZXMuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUU2MjQyRTJBQTMwMEM1
RURBMiAvKiBydHBfZm9ybWF0X2gyNjUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTQzM0NFRTFG
NzlCMzM0MDAzODdCNEQgLyogbHBjX21hc2tpbmdfbW9kZWwuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDREQ4N0M5MUU0M0JDMDUwMDYyMUU5MiAvKiBscGNfc2hhcGVfc3diMTJfdGFibGVzLmMgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0REODdDQjFFNDNCQzA1MDA2MjFFOTIgLyogbHBjX3NoYXBlX3N3
YjE2X3RhYmxlcy5jIGluIFNvdXJjZXMgKi8sCkBAIC0xNzc1Nyw2ICsxNzgzNiw3IEBACiAJCQkJ
NDEzMUJGMTgyMzRCODgyMDAwMjhBNjE1IC8qIG1lZGlhX3N0cmVhbS5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxMzFDMzE1MjM0QjhEQzIwMDI4QTYxNSAvKiBtZWRpYV9zdHJlYW1faW50ZXJmYWNl
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJGMjUyMzRCODgyMDAwMjhBNjE1IC8qIG1lZGlh
X3N0cmVhbV9vYnNlcnZlci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxRTg0QkQwMjQzNzNCRTYw
MEQzNEU0MSAvKiBoMjY1X3Zwc19wYXJzZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTg5MzlG
NzI0MkE3NEY4MDA3RkRDNDEgLyogbWVkaWFfdHJhbnNwb3J0X2NvbmZpZy5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxODkzOUY2MjQyQTc0RjgwMDdGREM0MSAvKiBtZWRpYV90cmFuc3BvcnRfaW50
ZXJmYWNlLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMyRjcyMzRCOERDMjAwMjhBNjE1IC8q
IG1lZGlhX3R5cGVzLmNjIGluIFNvdXJjZXMgKi8sCkBAIC0xNzgyNSw2ICsxNzkwNSw3IEBACiAJ
CQkJNDE4OTM4RTAyNDJBNjlDQzAwN0ZEQzQxIC8qIG92ZXJ1c2VfZnJhbWVfZGV0ZWN0b3IuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzFCNTIzNEI4QTRBMDAyOEE2MTUgLyogcDJwX2NvbnN0
YW50cy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMUQ0MjM0QjhBNEIwMDI4QTYxNSAvKiBw
MnBfdHJhbnNwb3J0X2NoYW5uZWwuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MUU4NEJEMTI0Mzcz
QzA3MDBEMzRFNDEgLyogaDI2NV92cHNfc3BzX3Bwc190cmFja2VyLmNjIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDFGMjYzOUEyMTI2N0Y1RTAwMjc0RjU5IC8qIHBhX3JpbmdidWZmZXIuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDREQ4RkEyMUU0M0NDQkUwMDYyMUU5MiAvKiBwYWNlZF9zZW5kZXIuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQk0MTMxQzRDMTIzNEM4NDI0MDAyOEE2MTUgLyogcGFjaW5nX2Nv
bnRyb2xsZXIuY2MgaW4gU291cmNlcyAqLywKQEAgLTE4MDI2LDYgKzE4MTA3LDcgQEAKIAkJCQk0
MTQ0QjNFODIxNjlDNUUzMDA0MzYzQUMgLyogUlRDVmlkZW9Db2RlY0luZm8rUHJpdmF0ZS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTQxM0U2Nzk4MjE2OTg4MzkwMEVGMzdFRCAvKiBSVENWaWRlb0Nv
ZGVjSW5mby5tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3OTUzQjgyMTY5ODI0MjAwMjgyNjZCIC8q
IFJUQ1ZpZGVvRGVjb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291cmNlcyAqLywKKwkJCQk0MUU4NEJD
RTI0MzczQkRFMDBEMzRFNDEgLyogaDI2NV9wcHNfcGFyc2VyLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDE3OTUzQzcyMTY5ODI0QjAwMjgyNjZCIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk0MTNFNjc2ODIxNjk4NTRCMDBFRjM3RUQgLyogUlRDVmlkZW9EZWNv
ZGVyVlA4Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3OTUzQjkyMTY5ODI0MjAwMjgyNjZCIC8q
IFJUQ1ZpZGVvRW5jb2RlckZhY3RvcnlIMjY0Lm0gaW4gU291cmNlcyAqLywKQEAgLTE4MjI5LDYg
KzE4MzExLDcgQEAKIAkJCQk0MTkyNDFFMjIxMjc1QTMwMDA2MzRGQ0YgLyogdGltZV9kZWx0YS5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4QTVBMUU0M0JGQjMwMDYyMUU5MiAvKiB0aW1lX3N0
cmV0Y2guY2MgaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODhEQTFFNDNCRTNEMDA2MjFFOTIgLyog
dGltZV91dGlsLmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDEwMDkyMEEyNDJFM0E0NjAwQzVFREEy
IC8qIFJUQ0gyNjVQcm9maWxlTGV2ZWxJZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFDMTRB
MjM0Qjg5RTIwMDI4QTYxNSAvKiB0aW1lX3V0aWxzLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5
MjQxRTMyMTI3NUEzMDAwNjM0RkNGIC8qIHRpbWVzdGFtcC5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxMzFDMTMzMjM0Qjg5RTIwMDI4QTYxNSAvKiB0aW1lc3RhbXBfYWxpZ25lci5jYyBpbiBTb3Vy
Y2VzICovLApAQCAtMTgzNTMsNiArMTg0MzYsNyBAQAogCQkJCTVDREQ4MzY3MUU0MzI1RDUwMDYy
MUU5MiAvKiB3ZWJydGNfbGlieXV2LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUMyN0EyMzRC
OENDNDAwMjhBNjE1IC8qIHdlYnJ0Y19tZWRpYV9lbmdpbmUuY2MgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTMxQzI3ODIzNEI4Q0M0MDAyOEE2MTUgLyogd2VicnRjX21lZGlhX2VuZ2luZV9kZWZhdWx0
cy5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxMDA5MUZGMjQyRTM2MjIwMEM1RURBMiAvKiBoMjY1
X2NvbW1vbi5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFCRjUwMjM0Qjg4MjAwMDI4QTYxNSAv
KiB3ZWJydGNfc2RwLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMUJFRjQyMzRCODgyMDAwMjhB
NjE1IC8qIHdlYnJ0Y19zZXNzaW9uX2Rlc2NyaXB0aW9uX2ZhY3RvcnkuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk1Q0REODZFNDFFNDNCQTI4MDA2MjFFOTIgLyogd2VicnRjX3ZhZC5jIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA5MzE2M2FiN2RkY2ZmNmQwNmJhN2U1YmM0NDZh
NTBjY2QwNmVhMWEyLi4wMzEwOTM3MTM3YzcwYzQ5Zjk3MWE5N2QxNzZhZWYwNzE0MGEyOWY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDb25m
aWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24pCiAjZW5kaWYKIAogI2lmIFVTRShMSUJXRUJS
VEMpCi0gICAgbV9saWJXZWJSVENQcm92aWRlci0+c3VwcG9ydHNWUDgoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJSVENWUDhDb2RlY0VuYWJsZWQoKSk7CisgICAg
bV9saWJXZWJSVENQcm92aWRlci0+c3VwcG9ydHNIMjY1KFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgpKTsKICNlbmRpZgogCiAg
ICAgbV9jb3JzRGlzYWJsaW5nUGF0dGVybnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwYWdlQ29u
ZmlndXJhdGlvbi5jb3JzRGlzYWJsaW5nUGF0dGVybnMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggZGU3ZTM4ZDI1ZWIyMzNjODg1
YTgxNGZkY2MyMmM2YmMzOGM0NTI0YS4uMWVlMGQyNzcxNTc1MTEyYWRiODYwMjRkOTBjMThjMDZj
YWI2NjkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgKQEAgLTIzNiw4ICsyMzYsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAg
Ym9vbCB3ZWJSVENEVE1GRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENEVE1GRW5h
YmxlZDsgfQogICAgIHZvaWQgc2V0V2ViUlRDRFRNRkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsg
bV9pc1dlYlJUQ0RUTUZFbmFibGVkID0gaXNFbmFibGVkOyB9Ci0gICAgYm9vbCB3ZWJSVENWUDhD
b2RlY0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzV2ViUlRDVlA4Q29kZWNFbmFibGVkOyB9
Ci0gICAgdm9pZCBzZXRXZWJSVENWUDhDb2RlY0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9p
c1dlYlJUQ1ZQOENvZGVjRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgd2ViUlRDSDI2
NUNvZGVjRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNXZWJSVENIMjY1Q29kZWNFbmFibGVk
OyB9CisgICAgdm9pZCBzZXRXZWJSVENIMjY1Q29kZWNFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7
IG1faXNXZWJSVENIMjY1Q29kZWNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCBwZWVy
Q29ubmVjdGlvbkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzUGVlckNvbm5lY3Rpb25FbmFi
bGVkOyB9CiAgICAgdm9pZCBzZXRQZWVyQ29ubmVjdGlvbkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQp
IHsgbV9pc1BlZXJDb25uZWN0aW9uRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIGJvb2wgd2Vi
UlRDTUROU0lDRUNhbmRpZGF0ZXNFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1dlYlJUQ01E
TlNJQ0VDYW5kaWRhdGVzRW5hYmxlZDsgfQpAQCAtNTAyLDcgKzUwMiw3IEBAIHByaXZhdGU6CiAK
ICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBib29sIG1faXNXZWJSVENEVE1GRW5hYmxlZCB7IHRy
dWUgfTsKLSAgICBib29sIG1faXNXZWJSVENWUDhDb2RlY0VuYWJsZWQgeyB0cnVlIH07CisgICAg
Ym9vbCBtX2lzV2ViUlRDSDI2NUNvZGVjRW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1faXNQ
ZWVyQ29ubmVjdGlvbkVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2lzV2ViUlRDTUROU0lD
RUNhbmRpZGF0ZXNFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNXZWJSVENIMjY0U2lt
dWxjYXN0RW5hYmxlZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
aW5kZXggYTBiNGNmNzE2ZDU0MGViOWNlYjRhMGU2NzZlZTAyNjQzZmU4ZWQ5MC4uMjJiMTBkZDQ4
MGM4N2Y0ZGNkMDQyZmJjODhjOTk1NGRlMzIwZDc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmgKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxl
RW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpOwogICAgIHZvaWQgZW5hYmxlRW51bWVy
YXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcygpOwogCi0gICAgdm9pZCBzdXBwb3J0c1ZQOChib29s
IHZhbHVlKSB7IG1fc3VwcG9ydHNWUDggPSB2YWx1ZTsgfQorICAgIHZvaWQgc3VwcG9ydHNIMjY1
KGJvb2wgdmFsdWUpIHsgbV9zdXBwb3J0c0gyNjUgPSB2YWx1ZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKSB7IG1fZGlzYWJsZU5vbkxvY2FsaG9z
dENvbm5lY3Rpb25zID0gdHJ1ZTsgfQogCiAgICAgcnRjOjpSVENDZXJ0aWZpY2F0ZUdlbmVyYXRv
ciYgY2VydGlmaWNhdGVHZW5lcmF0b3IoKTsKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcm90ZWN0ZWQ6
CiAKICAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJ
bnRlcmZhY2U+IG1fZmFjdG9yeTsKICAgICBib29sIG1fZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5l
Y3Rpb25zIHsgZmFsc2UgfTsKLSAgICBib29sIG1fc3VwcG9ydHNWUDggeyBmYWxzZSB9OworICAg
IGJvb2wgbV9zdXBwb3J0c0gyNjUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVMb2dnaW5n
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV91c2VEVExTMTAgeyBmYWxzZSB9OwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKaW5kZXggNGU1NTM4OGVh
ZGUxMDk4YWU5MWJmYjQ5NjZkYTQ0Zjg5NmM4YTM0Mi4uYzczNzE3NDRmNzhlODZmZDUzNGFhOTky
YjI4NWQ1OWQ1Y2YxMTZlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ckNvY29hLmNwcApAQCAtNTQsNyArNTQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8d2VicnRjOjpWaWRl
b0RlY29kZXJGYWN0b3J5PiBMaWJXZWJSVENQcm92aWRlckNvY29hOjpjcmVhdGVEZWNvZAogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIGNvZGVjU3VwcG9ydCA9IG1f
c3VwcG9ydHNWUDggPyB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQOCA6IHdl
YnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0OworICAgIGF1dG8gY29kZWNTdXBwb3J0ID0g
bV9zdXBwb3J0c0gyNjUgPyB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NFZQOEFuZEgy
NjUgOiB3ZWJydGM6OldlYktpdENvZGVjU3VwcG9ydDo6SDI2NEFuZFZQODsKICAgICByZXR1cm4g
d2VicnRjOjpjcmVhdGVXZWJLaXREZWNvZGVyRmFjdG9yeShjb2RlY1N1cHBvcnQpOwogfQogCkBA
IC02Miw3ICs2Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5jb2RlckZhY3Rv
cnk+IExpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZUVuY29kCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKIAotICAgIGF1dG8gY29kZWNTdXBwb3J0ID0gbV9zdXBwb3J0c1ZQOCA/
IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4IDogd2VicnRjOjpXZWJLaXRD
b2RlY1N1cHBvcnQ6OkgyNjQ7CisgICAgYXV0byBjb2RlY1N1cHBvcnQgPSBtX3N1cHBvcnRzSDI2
NSA/IHdlYnJ0Yzo6V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0VlA4QW5kSDI2NSA6IHdlYnJ0Yzo6
V2ViS2l0Q29kZWNTdXBwb3J0OjpIMjY0QW5kVlA4OwogICAgIHJldHVybiB3ZWJydGM6OmNyZWF0
ZVdlYktpdEVuY29kZXJGYWN0b3J5KGNvZGVjU3VwcG9ydCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCBlOWU3NzM3MzJiMThlMzNkMjllNDQ4M2UzNjg3ODkyYjg4
MDNjMDJiLi41MWU3ZDFiZTkzMmExNzczYzY2NTAwYzg2MGRkZDRlY2UxMzFiNTJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01NTMsNyArNTUzLDcgQEAgdm9pZCBJbnRl
cm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoUGFnZSYgcGFnZSkKICAgICBhdXRvJiBydGNQ
cm92aWRlciA9IHBhZ2UubGliV2ViUlRDUHJvdmlkZXIoKTsKICAgICBXZWJDb3JlOjp1c2VSZWFs
UlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KHJ0Y1Byb3ZpZGVyKTsKICAgICBydGNQcm92aWRlci5k
aXNhYmxlTm9uTG9jYWxob3N0Q29ubmVjdGlvbnMoKTsKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlJUQ1ZQOENvZGVjRW5hYmxlZCh0cnVlKTsKKyAg
ICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYlJUQ0gyNjVD
b2RlY0VuYWJsZWQodHJ1ZSk7CiAgICAgcGFnZS5zZXR0aW5ncygpLnNldFdlYlJUQ0VuY3J5cHRp
b25FbmFibGVkKHRydWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCmluZGV4IGM2ZmRkYjYxMjBmMmM5NThiMzAyMTU1MjIyMGI4OTkxZmFiMzIyZWYu
LmY1NDQ4Mzc2YTM3ZWViNDAyODM5OWQxNzM0NzQ5MmI0MzEzMzBlNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtNTgxLDE0ICs1ODEsMTQgQEAgSW50ZXJy
dXB0QXVkaW9PblBhZ2VWaXNpYmlsaXR5Q2hhbmdlRW5hYmxlZDoKICAgd2ViY29yZUJpbmRpbmc6
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKICAgY29uZGl0aW9uOiBFTkFCTEUoTUVESUFfU1RSRUFN
KQogCi1XZWJSVENWUDhDb2RlY0VuYWJsZWQ6CitXZWJSVENIMjY1Q29kZWNFbmFibGVkOgogICB0
eXBlOiBib29sCi0gIGRlZmF1bHRWYWx1ZTogdHJ1ZQorICBkZWZhdWx0VmFsdWU6IGZhbHNlCiAg
IHdlYmNvcmVCaW5kaW5nOiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzCiAgIGNvbmRpdGlvbjogRU5B
QkxFKFdFQl9SVEMpCi0gIGh1bWFuUmVhZGFibGVOYW1lOiAiV2ViUlRDIFZQOCBjb2RlYyIKLSAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIFdlYlJUQyBWUDggY29kZWMiCi0gIGNh
dGVnb3J5OiBpbnRlcm5hbAorICBodW1hblJlYWRhYmxlTmFtZTogIldlYlJUQyBIMjY1IGNvZGVj
IgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUgV2ViUlRDIEgyNjUgY29kZWMi
CisgIGNhdGVnb3J5OiBleHBlcmltZW50YWwKIAogV2ViUlRDUGxhdGZvcm1Db2RlY3NJbkdQVVBy
b2Nlc3NFbmFibGVkOgogICB0eXBlOiBib29sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGI3ODg5ZDhhYzk3Y2M5YjA1MjBhZTMxNDY4MjdlNDc1
YWQzZGJjNGMuLmU3ODU2NWZmMjZhMGUyYmI4MzEzNDg0ODc2ZWIyZDA5NGQ3NjQwYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNjY1LDYg
KzM2NjUsMTAgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBpZiAobV9kcmF3aW5nQXJlYSkKICAgICAgICAgbV9k
cmF3aW5nQXJlYS0+dXBkYXRlUHJlZmVyZW5jZXMoc3RvcmUpOwogCisjaWYgVVNFKExJQldFQlJU
QykKKyAgICBtX3BhZ2UtPmxpYldlYlJUQ1Byb3ZpZGVyKCkuc3VwcG9ydHNIMjY1KFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViUlRDSDI2NUNvZGVjRW5hYmxlZCgp
KTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgIC8vIEZJWE1FOiB1c2VH
UFVQcm9jZXNzRm9yTWVkaWEgc2hvdWxkIGJlIGEgUnVudGltZUVuYWJsZWRGZWF0dXJlIHNpbmNl
IGl0J3MgZ2xvYmFsLgogICAgIHN0YXRpY19jYXN0PFdlYk1lZGlhU3RyYXRlZ3kmPihwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+bWVkaWFTdHJhdGVneSgpKS5zZXRVc2VHUFVQcm9jZXNzKHNldHRpbmdz
LnVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZTFmMDdhZWYyN2RhNzNmYjBhZTM3
ZmFjZDBmN2FiYjUyNzM4Yzg0Li41MTQzMmY2YjA4NTBhNTNkZmM2NjcwYmRhMmU5ZDk5M2Q5ZTk1
YTdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDQtMDMgIHlvdWVubiBmYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIFdlYlJU
QyBIRVZDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDQyODMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBU
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHdlYnJ0Yy9oMjY1LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2VicnRjL2gyNjUuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQtMDIgIEpv
aG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFNQSSB0byBj
b25maWd1cmUgV2Vic2l0ZURhdGFTdG9yZXMgd2l0aCBhIFVSTCBmb3Igc3RhbmRhbG9uZSB3ZWIg
YXBwbGljYXRpb25zIGFuZCB1c2UgaXQgdG8gZGlzYWJsZSBmaXJzdC1wYXJ0eSB3ZWJzaXRlIGRh
dGEgcmVtb3ZhbCBpbiBJVFAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGZlZmJlOTA4ZTNmNGVlNTBl
OGI0MWU0ODdjNDk3ZjkzNThmZTdjODAuLmViMTY5MzNiOGZhODdjNTUzZTM5ZDNkNGY1NmQxYjkz
YmM2ZTMxYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTc3OCw2ICsxNzc4LDkgQEAgd2Via2l0
Lm9yZy9iLzE0NjE4MiBlZGl0aW5nL3NlbGVjdGlvbi9sZWFrLWRvY3VtZW50LXdpdGgtc2VsZWN0
aW9uLWluc2lkZS5odG1sIFsKICMgTWVkaWEgU2Vzc2lvbnMgaXMgbm90IHlldCBlbmFibGVkIGJ5
IGRlZmF1bHQ6IEVOQUJMRShNRURJQV9TRVNTSU9OKQogbWVkaWEvc2Vzc2lvbiBbIFNraXAgXQog
CisjIEV4cGVyaW1lbnRhbCBIMjY1IHN1cHBvcnQuCit3ZWJydGMvaDI2NS5odG1sIFsgUGFzcyBG
YWlsdXJlIF0KKwogd2VicnRjL3NpbXVsY2FzdC1oMjY0Lmh0bWwgWyBTbG93IF0KIAogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0U3luY2hy
b25pemF0aW9uU291cmNlcy5odHRwcy5odG1sIFsgU2xvdyBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJydGMvaDI2NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmY5ODNiYWY5YjMzZTAyMTk2MTk0N2U4M2I2YTNhNmRl
ZmVkZWMzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy9oMjY1LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitWaWRlbyBzaG91bGQgYmUgcnVubmluZywgZ28gdG8g
YmxhY2sgYW5kIHJ1bm5pbmcuCitGb2xsb3dpbmcsIHNob3VsZCBiZSBhIHNuYXBzaG90IG9mIHRo
ZSB2aWRlbywgYSBibGFjayBmcmFtZSBhbmQgYSBzbmFwc2hvdCBvZiB0aGUgdmlkZW8uCisgIAor
CitQQVNTIEgyNjUgaW4gZ2V0Q2FwYWJpbGl0aWVzIAorUEFTUyBWZXJpZnkgSDI2NSBhY3RpdmF0
aW9uIAorUEFTUyBTZXR0aW5nIHZpZGVvIGV4Y2hhbmdlIAorUEFTUyBFbnN1cmluZyBjb25uZWN0
aW9uIHN0YXRlIGlzIGNvbm5lY3RlZCAKK1BBU1MgVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hv
dWxkIG5vdCBiZSBibGFjayAKK1BBU1MgVHJhY2sgaXMgZGlzYWJsZWQsIHZpZGVvIHNob3VsZCBi
ZSBibGFjayAKK1BBU1MgVHJhY2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFj
ayAyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvaDI2NS5odG1sIGIvTGF5b3V0
VGVzdHMvd2VicnRjL2gyNjUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTg4YjZhNjkyMzVlOTI4NTlkNzI1
OWQ5MDBhMGRlNTZjMjQ0ZjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRj
L2gyNjUuaHRtbApAQCAtMCwwICsxLDk0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5U
ZXN0aW5nIG11dGluZyB2aWRlbzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDxkaXY+VmlkZW8gc2hvdWxkIGJlIHJ1bm5pbmcsIGdvIHRvIGJs
YWNrIGFuZCBydW5uaW5nLjwvZGl2PgorICAgICAgICA8ZGl2PkZvbGxvd2luZywgc2hvdWxkIGJl
IGEgc25hcHNob3Qgb2YgdGhlIHZpZGVvLCBhIGJsYWNrIGZyYW1lIGFuZCBhIHNuYXBzaG90IG9m
IHRoZSB2aWRlby48L2Rpdj4KKyAgICAgICAgPHZpZGVvIGlkPSJ2aWRlbyIgYXV0b3BsYXkgcGxh
eXNJbmxpbmUgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvdmlkZW8+CisgICAgICAgIDxjYW52
YXMgaWQ9ImNhbnZhczEiIHdpZHRoPSIzMjAiIGhlaWdodD0iMjQwIj48L2NhbnZhcz4KKyAgICAg
ICAgPGNhbnZhcyBpZD0iY2FudmFzMiIgd2lkdGg9IjMyMCIgaGVpZ2h0PSIyNDAiPjwvY2FudmFz
PgorICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMzIiB3aWR0aD0iMzIwIiBoZWlnaHQ9IjI0MCI+
PC9jYW52YXM+CisgICAgICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0PgordmFyIGhhc0gyNjUgPSBmYWxzZTsKK3Rlc3QoKCkgPT4geworICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmNsZWFyUGVl
ckNvbm5lY3Rpb25GYWN0b3J5KCk7CisKKyAgICBjb25zdCBjb2RlY3MgPSBSVENSdHBTZW5kZXIu
Z2V0Q2FwYWJpbGl0aWVzKCJ2aWRlbyIpLmNvZGVjczsKKyAgICBoYXNIMjY1ID0gY29kZWNzLnNv
bWUoKGNvZGVjKSA9PiB7IHJldHVybiBjb2RlYy5taW1lVHlwZSA9PSAidmlkZW8vSDI2NSI7IH0p
OworICAgIGFzc2VydF90cnVlKGhhc0gyNjUpOworfSwgIkgyNjUgaW4gZ2V0Q2FwYWJpbGl0aWVz
Iik7CisKK2lmIChoYXNIMjY1KSB7CisgICAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7
CisgICAgICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgICAgIHBj
LmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIpOworICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGF3
YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgICAgICAgIHBjLmNsb3NlKCk7CisgICAgICAgIGFzc2Vy
dF90cnVlKGRlc2NyaXB0aW9uLnNkcC5pbmRleE9mKCJIMjY1IikgIT09IC0xLCAiSDI2NSBjb2Rl
YyBpcyBpbiB0aGUgU0RQIik7CisgICAgfSwgIlZlcmlmeSBIMjY1IGFjdGl2YXRpb24iKQorCisg
ICAgdmFyIHRyYWNrOworICAgIHZhciByZW1vdGVUcmFjazsKKyAgICB2YXIgcmVjZWl2aW5nQ29u
bmVjdGlvbjsKKyAgICBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICAgICAgcmV0dXJuIG5h
dmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHt2aWRlbzoge3dpZHRoOiAzMjAsIGhl
aWdodDogMjQwLCBmYWNpbmdNb2RlOiAiZW52aXJvbm1lbnQifX0pLnRoZW4oKGxvY2FsU3RyZWFt
KSA9PiB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkg
PT4geworICAgICAgICAgICAgICAgIHRyYWNrID0gbG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3Mo
KVswXTsKKworICAgICAgICAgICAgICAgIGNyZWF0ZUNvbm5lY3Rpb25zKChmaXJzdENvbm5lY3Rp
b24pID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RDb25uZWN0aW9uLmFkZFRyYWNrKHRy
YWNrLCBsb2NhbFN0cmVhbSk7CisgICAgICAgICAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24p
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgcmVjZWl2aW5nQ29ubmVjdGlvbiA9IHNlY29uZENv
bm5lY3Rpb247CisgICAgICAgICAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9
ICh0cmFja0V2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVUcmFjayA9
IHRyYWNrRXZlbnQudHJhY2s7CisgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRyYWNr
RXZlbnQuc3RyZWFtc1swXSk7CisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAg
ICAgfSwgeyBvYnNlcnZlT2ZmZXIgOiAob2ZmZXIpID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
b2ZmZXIuc2RwID0gc2V0Q29kZWMob2ZmZXIuc2RwLCAiSDI2NSIpOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gb2ZmZXI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91
dCIpLCA1MDAwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KS50aGVuKChyZW1vdGVTdHJl
YW0pID0+IHsKKyAgICAgICAgICAgIHZpZGVvLnNyY09iamVjdCA9IHJlbW90ZVN0cmVhbTsKKyAg
ICAgICAgICAgIHJldHVybiB2aWRlby5wbGF5KCk7CisgICAgICAgIH0pOworICAgIH0sICJTZXR0
aW5nIHZpZGVvIGV4Y2hhbmdlIik7CisKKyAgICBwcm9taXNlX3Rlc3QoKCkgPT4geworICAgICAg
ICBpZiAocmVjZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0ZWQi
KQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgcmVjZWl2aW5n
Q29ubmVjdGlvbi5vbmNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9ICgpID0+IHsKKyAgICAgICAgICAg
ICAgICBpZiAocmVjZWl2aW5nQ29ubmVjdGlvbi5jb25uZWN0aW9uU3RhdGUgPT09ICJjb25uZWN0
ZWQiKQorICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9OworICAg
ICAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGltZWQgb3V0IiksIDUwMDAp
OworICAgICAgICB9KTsKKyAgICB9LCAiRW5zdXJpbmcgY29ubmVjdGlvbiBzdGF0ZSBpcyBjb25u
ZWN0ZWQiKTsKKworICAgIHByb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgICAgICByZXR1cm4g
Y2hlY2tWaWRlb0JsYWNrKGZhbHNlLCBjYW52YXMxLCB2aWRlbyk7CisgICAgfSwgIlRyYWNrIGlz
IGVuYWJsZWQsIHZpZGVvIHNob3VsZCBub3QgYmUgYmxhY2siKTsKKworICAgIHByb21pc2VfdGVz
dCgodGVzdCkgPT4geworICAgICAgICB0cmFjay5lbmFibGVkID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiBjaGVja1ZpZGVvQmxhY2sodHJ1ZSwgY2FudmFzMiwgdmlkZW8pOworICAgIH0sICJUcmFj
ayBpcyBkaXNhYmxlZCwgdmlkZW8gc2hvdWxkIGJlIGJsYWNrIik7CisKKyAgICBwcm9taXNlX3Rl
c3QoKHRlc3QpID0+IHsKKyAgICAgICAgdHJhY2suZW5hYmxlZCA9IHRydWU7CisgICAgICAgIHJl
dHVybiBjaGVja1ZpZGVvQmxhY2soZmFsc2UsIGNhbnZhczIsIHZpZGVvKTsKKyAgICB9LCAiVHJh
Y2sgaXMgZW5hYmxlZCwgdmlkZW8gc2hvdWxkIG5vdCBiZSBibGFjayAyIik7Cit9CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>