<?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>149647</bug_id>
          
          <creation_ts>2015-09-29 14:21:21 -0700</creation_ts>
          <short_desc>REGRESSION(r190289): Crashing speedometer and some ARM32 tests (Requested by msaboff on #webkit).</short_desc>
          <delta_ts>2015-09-29 14:45:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>148664</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>msaboff</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1129400</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-29 14:21:21 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/190289 broke the build:
Crashing speedometer and some ARM32 tests (Requested by msaboff on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129402</commentid>
    <comment_count>1</comment_count>
      <attachid>262107</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-29 14:22:00 -0700</bug_when>
    <thetext>Created attachment 262107
ROLLOUT of r190289

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129407</commentid>
    <comment_count>2</comment_count>
      <attachid>262107</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-29 14:25:37 -0700</bug_when>
    <thetext>Comment on attachment 262107
ROLLOUT of r190289

Clearing flags on attachment: 262107

Committed r190329: &lt;http://trac.webkit.org/changeset/190329&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129408</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-09-29 14:25:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1129419</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-09-29 14:45:20 -0700</bug_when>
    <thetext>Defects tracking the regressions https://bugs.webkit.org/show_bug.cgi?id=149619 and https://bugs.webkit.org/show_bug.cgi?id=149621.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262107</attachid>
            <date>2015-09-29 14:22:00 -0700</date>
            <delta_ts>2015-09-29 14:25:37 -0700</delta_ts>
            <desc>ROLLOUT of r190289</desc>
            <filename>bug-149647-20150929142136.patch</filename>
            <type>text/plain</type>
            <size>80715</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwMzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YTgxOTE3MWZkNDczN2JhMTUyODEwN2QwYzViMzM1NGZmOGFlNmM2Li5iNDY4MGYwYWM0ODU2NDJj
YzJmNTQ4MzU5ZTMxNTA4NWZmNWViODg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNS0wOS0yOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5MDI4OS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTY0NworCisgICAg
ICAgIENyYXNoaW5nIHNwZWVkb21ldGVyIGFuZCBzb21lIEFSTTMyIHRlc3RzIChSZXF1ZXN0ZWQg
YnkKKyAgICAgICAgbXNhYm9mZiBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFu
Z2VzZXQ6CisKKyAgICAgICAgIltFUzZdIEltcGxlbWVudCB0YWlsIGNhbGxzIGluIHRoZSBGVEwi
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDg2NjQK
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTkwMjg5CisKIDIwMTUt
MDktMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXJhbGxl
bEhlbHBlclBvb2w6OnJ1bkZ1bmN0aW9uSW5QYXJhbGxlbCgpIHNob3VsZG4ndCBhbGxvY2F0ZSwg
YW5kIFBhcmFsbGVsSGVscGVyUG9vbC5oIHNob3VsZG4ndCBiZSBpbmNsdWRlZCBldmVyeXdoZXJl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNWExMzI2MGE1YmIzZGNmMWNi
NmNhODgzYjhiYTVlN2I0OTgwZDkzNy4uMzZlMzMzYjA1YTg4YzRmMGMzYzI5ZWQ5MjQ4ZjBiNTU1
ZjUyYmIyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTAzLDcgKzkw
Myw2IEBAIGlmIChFTkFCTEVfRlRMX0pJVCkKICAgICAgICAgZnRsL0ZUTEpTQ2FsbC5jcHAKICAg
ICAgICAgZnRsL0ZUTEpTQ2FsbEJhc2UuY3BwCiAgICAgICAgIGZ0bC9GVExKU0NhbGxWYXJhcmdz
LmNwcAotICAgICAgICBmdGwvRlRMSlNUYWlsQ2FsbC5jcHAKICAgICAgICAgZnRsL0ZUTExpbmsu
Y3BwCiAgICAgICAgIGZ0bC9GVExMb2NhdGlvbi5jcHAKICAgICAgICAgZnRsL0ZUTExvd2VyREZH
VG9MTFZNLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5kZXggY2M4
MzA2ZWMyNzMzMzA0YTEzNzczODMxMTNiMTk5YWUyZmI2Njc0NS4uNmFiOGYzYWNhNGM4M2VhNTE1
ZWUyMGFmOWJhOTg1OGQ0ODYzNzcxYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qCkBAIC01MzksNyArNTM5LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0
bFxGVExKU0NhbGwuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTEpT
Q2FsbEJhc2UuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTEpTQ2Fs
bFZhcmFyZ3MuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTEpTVGFp
bENhbGwuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTExpbmsuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZnRsXEZUTExvY2F0aW9uLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExMb3dlckRGR1RvTExWTS5jcHAiIC8+
CkBAIC0xMzAwLDcgKzEyOTksNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZU
TEpTQ2FsbC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTEpTQ2FsbEJh
c2UuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExKU0NhbGxWYXJhcmdz
LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxmdGxcRlRMSlNUYWlsQ2FsbC5oIiAv
PgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTExpbmsuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExMb2NhdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cZnRsXEZUTExvd2VyREZHVG9MTFZNLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52
Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4
cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYWJlZjMyMGFlM2JhY2Uw
NmFjN2U5M2U1NDFlYWM2OTAxMWNjOWJlYi4uZDE4NzdmZTQyZTJlM2U4NDg0ZmM5MDA3NzgxZDQy
MTgxN2VmZDY3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ouZmlsdGVycwpAQCAtMTU4MSw5ICsxNTgxLDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXGZ0bFxGVExKU0NhbGwuY3BwIj4KICAgICAgIDxGaWx0ZXI+ZnRsPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxmdGxcRlRMSlNUYWlsQ2Fs
bC5jcHAiPgotICAgICAgPEZpbHRlcj5mdGw8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGZ0bFxGVExMaW5rLmNwcCI+CiAgICAgICA8RmlsdGVy
PmZ0bDwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtNDE0Nyw5ICs0MTQ0LDYgQEAKICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZ0bFxGVExKU0NhbGwuaCI+CiAgICAgICA8RmlsdGVy
PmZ0bDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cZnRsXEZUTEpTVGFpbENhbGwuaCI+Ci0gICAgICA8RmlsdGVyPmZ0bDwvRmlsdGVyPgotICAg
IDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cZnRsXEZUTExpbmsuaCI+
CiAgICAgICA8RmlsdGVyPmZ0bDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBjMjViODRiODYzYjVjZTQwNDg0NTEzNGNjMmY3YTlmYmZj
NDY4YzBkLi5iMDE1N2VhMTc2MGFiMjc0NmYxOWFhYzI4MmNjNjkxNTVlYzUyYWNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTc5LDggKzk3OSw2IEBACiAJCTYyM0EzN0VDMUI4
N0E3QzAwMDc1NDIwOSAvKiBSZWdpc3Rlck1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjIzQTM3RUIxQjg3QTdCRDAwNzU0MjA5IC8qIFJlZ2lzdGVy
TWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NjI3NjczMjMxQjY4MEMxRTAwRkQ5RjJFIC8qIENhbGxNb2RlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYyNzY3MzIxMUI2ODBDMUUwMEZEOUYyRSAv
KiBDYWxsTW9kZS5jcHAgKi87IH07CiAJCTYyNzY3MzI0MUI2ODBDMUUwMEZEOUYyRSAvKiBDYWxs
TW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI3
NjczMjIxQjY4MEMxRTAwRkQ5RjJFIC8qIENhbGxNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNjI3NzREQUExQjhENEIxOTAwMDZGMDVBIC8q
IEZUTEpTVGFpbENhbGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNjI3NzREQTgxQjhENEIxOTAwMDZGMDVBIC8qIEZUTEpTVGFpbENhbGwuY3BwICov
OyB9OwotCQk2Mjc3NERBQjFCOEQ0QjE5MDAwNkYwNUEgLyogRlRMSlNUYWlsQ2FsbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI3NzREQTkxQjhENEIx
OTAwMDZGMDVBIC8qIEZUTEpTVGFpbENhbGwuaCAqLzsgfTsKIAkJNjJEMkQzOEYxQURGMTAzRjAw
MDIwNkMxIC8qIEZ1bmN0aW9uUmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjJEMkQzOEQxQURGMTAzRjAwMDIwNkMxIC8qIEZ1bmN0aW9u
UmFyZURhdGEuY3BwICovOyB9OwogCQk2MkQyRDM5MDFBREYxMDNGMDAwMjA2QzEgLyogRnVuY3Rp
b25SYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjJEMkQzOEUxQURGMTAzRjAwMDIwNkMxIC8qIEZ1bmN0aW9uUmFyZURhdGEuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2MkQ3NTVENDFCODRG
QjNEMDAxODAxRkEgLyogQ2FsbEZyYW1lU2h1ZmZsZXI2NC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MkQ3NTVEMzFCODRGQjM5MDAxODAxRkEgLyog
Q2FsbEZyYW1lU2h1ZmZsZXI2NC5jcHAgKi87IH07CkBAIC0yNzk5LDggKzI3OTcsNiBAQAogCQk2
MjNBMzdFQjFCODdBN0JEMDA3NTQyMDkgLyogUmVnaXN0ZXJNYXAuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0ZXJNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNjI3NjczMjExQjY4MEMxRTAwRkQ5RjJFIC8qIENhbGxNb2RlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhbGxNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjI3NjczMjIxQjY4MEMxRTAwRkQ5RjJFIC8qIENhbGxNb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxNb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTYyNzc0REE4MUI4RDRCMTkwMDA2RjA1QSAvKiBGVExKU1RhaWxDYWxs
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTEpTVGFpbENhbGwu
Y3BwOyBwYXRoID0gZnRsL0ZUTEpTVGFpbENhbGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk2Mjc3NERBOTFCOEQ0QjE5MDAwNkYwNUEgLyogRlRMSlNUYWlsQ2FsbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExKU1RhaWxDYWxsLmg7IHBhdGggPSBmdGwv
RlRMSlNUYWlsQ2FsbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2MkE5QTI5RTFC
MEJFRDQ4MDBCRDU0Q0EgLyogREZHTGF6eU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gREZHTGF6eU5vZGUuY3BwOyBwYXRoID0gZGZnL0RGR0xhenlOb2RlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjJBOUEyOUYxQjBCRUQ0ODAwQkQ1NENB
IC8qIERGR0xhenlOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0xh
enlOb2RlLmg7IHBhdGggPSBkZmcvREZHTGF6eU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNjJEMkQzOEQxQURGMTAzRjAwMDIwNkMxIC8qIEZ1bmN0aW9uUmFyZURhdGEuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRnVuY3Rpb25SYXJlRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zOTc5LDggKzM5NzUsNiBAQAogCQkJ
CTBGRDEyMDJFMUE4QUVEMTIwMDBGNTI4MCAvKiBGVExKU0NhbGxCYXNlLmggKi8sCiAJCQkJMEZE
MTIwMzExQThDODVCRDAwMEY1MjgwIC8qIEZUTEpTQ2FsbFZhcmFyZ3MuY3BwICovLAogCQkJCTBG
RDEyMDMyMUE4Qzg1QkQwMDBGNTI4MCAvKiBGVExKU0NhbGxWYXJhcmdzLmggKi8sCi0JCQkJNjI3
NzREQTgxQjhENEIxOTAwMDZGMDVBIC8qIEZUTEpTVGFpbENhbGwuY3BwICovLAotCQkJCTYyNzc0
REE5MUI4RDRCMTkwMDA2RjA1QSAvKiBGVExKU1RhaWxDYWxsLmggKi8sCiAJCQkJMEY4RjJCOTMx
NzJFMDQ5RTAwN0RCREE1IC8qIEZUTExpbmsuY3BwICovLAogCQkJCTBGOEYyQjk0MTcyRTA0OUUw
MDdEQkRBNSAvKiBGVExMaW5rLmggKi8sCiAJCQkJMEZDRUZBREQxODA3MzhDMDAwNDcyQ0U0IC8q
IEZUTExvY2F0aW9uLmNwcCAqLywKQEAgLTYzMjQsNyArNjMxOCw2IEBACiAJCQkJMEY2QjFDQjYx
ODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZEMTIw
MzAxQThBRUQxMjAwMEY1MjgwIC8qIEZUTEpTQ2FsbEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRDEyMDM0MUE4Qzg1QkQwMDBGNTI4MCAvKiBGVExKU0NhbGxWYXJhcmdzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk2Mjc3NERBQjFCOEQ0QjE5MDAwNkYwNUEgLyogRlRMSlNUYWlsQ2FsbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY4RjJCOTYxNzJFMDRBMzAwN0RCREE1IC8qIEZUTExpbmsuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQ0VGQUUwMTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMTAxNzA1MTNEQjAwQkI3MjJDIC8qIEZUTExv
d2VyREZHVG9MTFZNLmggaW4gSGVhZGVycyAqLywKQEAgLTc2OTcsNyArNzY5MCw2IEBACiAJCQkJ
MEY2QjFDQjUxODVGQzlFOTAwODQ1RDk3IC8qIEZUTEpTQ2FsbC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRkQxMjAyRjFBOEFFRDEyMDAwRjUyODAgLyogRlRMSlNDYWxsQmFzZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkQxMjAzMzFBOEM4NUJEMDAwRjUyODAgLyogRlRMSlNDYWxsVmFyYXJn
cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk2Mjc3NERBQTFCOEQ0QjE5MDAwNkYwNUEgLyogRlRM
SlNUYWlsQ2FsbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjhGMkI5NTE3MkUwNEEwMDA3REJE
QTUgLyogRlRMTGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNFRkFERjE4MDczOEMwMDA0
NzJDRTQgLyogRlRMTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQTBBMEYxNzA1
MTNEQjAwQkI3MjJDIC8qIEZUTExvd2VyREZHVG9MTFZNLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBk
NGZjMWE4ZmYwMTFiNzNhNGYyYjA1Yzk2NzAwM2MzM2QyZDRhZGQyLi40MzQ5MTk2MWI0MDVmMmVi
NmJhYzBiZDc0YzA3NjhmMzJiMzFjM2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMTg4MiwxNSArMTg4MiwxMSBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZygKICAgICAgICAgbV9jdXJyZW50SW5kZXggPSBu
ZXh0T2Zmc2V0OwogICAgICAgICBtX2V4aXRPSyA9IHRydWU7CiAgICAgICAgIHByb2Nlc3NTZXRM
b2NhbFF1ZXVlKCk7IC8vIFRoaXMgb25seSBjb21lcyBpbnRvIHBsYXkgZm9yIGludHJpbnNpY3Ms
IHNpbmNlIG5vcm1hbCBpbmxpbmVkIGNvZGUgd2lsbCBsZWF2ZSBhbiBlbXB0eSBxdWV1ZS4KLSAg
ICAgICAgaWYgKE5vZGUqIHRlcm1pbmFsID0gbV9jdXJyZW50QmxvY2stPnRlcm1pbmFsKCkpCi0g
ICAgICAgICAgICBBU1NFUlRfVU5VU0VEKHRlcm1pbmFsLCB0ZXJtaW5hbC0+b3AoKSA9PSBUYWls
Q2FsbCB8fCB0ZXJtaW5hbC0+b3AoKSA9PSBUYWlsQ2FsbFZhcmFyZ3MpOwotICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgIGFkZFRvR3JhcGgoSnVtcCk7Ci0gICAgICAgICAgICBsYW5kaW5nQmxv
Y2tzLmFwcGVuZChtX2N1cnJlbnRCbG9jayk7Ci0gICAgICAgIH0KKyAgICAgICAgYWRkVG9HcmFw
aChKdW1wKTsKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJNYXJr
aW5nICIsIFJhd1BvaW50ZXIobV9jdXJyZW50QmxvY2spLCAiIGFzIGxpbmtlZCAodGFpbCBvZiBw
b2x5IGlubGluZWUpXG4iKTsKICAgICAgICAgbV9jdXJyZW50QmxvY2stPmRpZExpbmsoKTsKKyAg
ICAgICAgbGFuZGluZ0Jsb2Nrcy5hcHBlbmQobV9jdXJyZW50QmxvY2spOwogCiAgICAgICAgIGlm
ICh2ZXJib3NlKQogICAgICAgICAgICAgZGF0YUxvZygiRmluaXNoZWQgaW5saW5pbmcgIiwgY2Fs
bExpbmtTdGF0dXNbaV0sICIgYXQgIiwgY3VycmVudENvZGVPcmlnaW4oKSwgIi5cbiIpOwpAQCAt
MTkyMywxMiArMTkxOSw4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUlubGluaW5nKAog
ICAgIG1fY3VycmVudEluZGV4ID0gbmV4dE9mZnNldDsKICAgICBtX2V4aXRPSyA9IHRydWU7IC8v
IE9yaWdpbiBjaGFuZ2VkLCBzbyBpdCdzIGZpbmUgdG8gZXhpdCBhZ2Fpbi4KICAgICBwcm9jZXNz
U2V0TG9jYWxRdWV1ZSgpOwotICAgIGlmIChOb2RlKiB0ZXJtaW5hbCA9IG1fY3VycmVudEJsb2Nr
LT50ZXJtaW5hbCgpKQotICAgICAgICBBU1NFUlRfVU5VU0VEKHRlcm1pbmFsLCB0ZXJtaW5hbC0+
b3AoKSA9PSBUYWlsQ2FsbCB8fCB0ZXJtaW5hbC0+b3AoKSA9PSBUYWlsQ2FsbFZhcmFyZ3MpOwot
ICAgIGVsc2UgewotICAgICAgICBhZGRUb0dyYXBoKEp1bXApOwotICAgICAgICBsYW5kaW5nQmxv
Y2tzLmFwcGVuZChtX2N1cnJlbnRCbG9jayk7Ci0gICAgfQorICAgIGFkZFRvR3JhcGgoSnVtcCk7
CisgICAgbGFuZGluZ0Jsb2Nrcy5hcHBlbmQobV9jdXJyZW50QmxvY2spOwogICAgIAogICAgIFJl
ZlB0cjxCYXNpY0Jsb2NrPiBjb250aW51YXRpb25CbG9jayA9IGFkb3B0UmVmKAogICAgICAgICBu
ZXcgQmFzaWNCbG9jayhVSU5UX01BWCwgbV9udW1Bcmd1bWVudHMsIG1fbnVtTG9jYWxzLCBQTmFO
KSk7CkBAIC0zNjcyLDcgKzM2NjQsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2Nr
KHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgICAgIC8vIFdlIGNvdWxkIGJlIHRoZSBkdW1t
eSBqdW1wIHRvIGEgcmV0dXJuIGFmdGVyIGEgbm9uLWlubGluZWQsIG5vbi1lbXVsYXRlZCB0YWls
IGNhbGwgaW4gYSB0ZXJuYXJ5IG9wZXJhdG9yCiAgICAgICAgICAgICAgICAgTm9kZSogdGVybWlu
YWwgPSBtX2N1cnJlbnRCbG9jay0+dGVybWluYWwoKTsKICAgICAgICAgICAgICAgICBBU1NFUlRf
VU5VU0VEKHRlcm1pbmFsLCB0ZXJtaW5hbC0+b3AoKSA9PSBUYWlsQ2FsbCB8fCB0ZXJtaW5hbC0+
b3AoKSA9PSBUYWlsQ2FsbFZhcmFyZ3MpOwotICAgICAgICAgICAgICAgIExBU1RfT1BDT0RFKG9w
X2ptcCk7CisgICAgICAgICAgICAgICAgTEFTVF9PUENPREUob3BfcmV0KTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGludCByZWxhdGl2ZU9mZnNldCA9IGN1cnJlbnRJbnN0cnVjdGlvblsx
XS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBhZGRUb0dyYXBoKEp1bXAsIE9wSW5mbyhtX2N1cnJl
bnRJbmRleCArIHJlbGF0aXZlT2Zmc2V0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q2xvYmJlcml6ZS5oCmluZGV4IGM4MDQwY2VmYTllZDdhODlmYTg2MjllZGNlYzU5OGI4NjgwNmJk
YmIuLmIxZTExMDk4YmUzNDdhMTBmY2ZhNjRlNGI0ZmNlMzU5YmZlNWI5NGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xMDM1LDYgKzEwMzUsOCBAQCB2
b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFkRnVuY3Rv
ciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICAKICAgICBjYXNlIFRocm93UmVmZXJlbmNl
RXJyb3I6CiAgICAgICAgIHdyaXRlKFNpZGVTdGF0ZSk7CisgICAgICAgIHJlYWQoSGVhcE9iamVj
dENvdW50KTsKKyAgICAgICAgd3JpdGUoSGVhcE9iamVjdENvdW50KTsKICAgICAgICAgcmV0dXJu
OwogICAgICAgICAKICAgICBjYXNlIENvdW50RXhlY3V0aW9uOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGUuaAppbmRleCA3OTRlZjNkMWFmYmU2OTc5ZDAyYzA5OGM3ZWFiNjBhOGNkMDE1YjAz
Li44NzQ2ODQ2MDVkZGM2NDM1OGM1OTgzMjBlY2MzNWY4ODI4MjljOGZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTExOCwxNCArMTExOCw2IEBAIHN0cnVjdCBOb2RlIHsK
ICAgICAgICAgfQogICAgIH0KIAotICAgIGJvb2wgaXNGdW5jdGlvblRlcm1pbmFsKCkKLSAgICB7
Ci0gICAgICAgIGlmIChpc1Rlcm1pbmFsKCkgJiYgIW51bVN1Y2Nlc3NvcnMoKSkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KICAgICB1
bnNpZ25lZCB0YXJnZXRCeXRlY29kZU9mZnNldER1cmluZ1BhcnNpbmcoKQogICAgIHsKICAgICAg
ICAgQVNTRVJUKGlzSnVtcCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDY3N2YyMjVmNTE0NmI4NmU4ODY5MTFiMjI2YWM3
MGYwZDhkNjgzYjIuLjlhNjlkMTIyNmIwNTI2NmZkZTcxYjczMDNhYjcxMTBhMDdlMjJmZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cApAQCAtNzcxLDcgKzc3MSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKE5vZGUq
IG5vZGUpCiAgICAgICAgICAgICBjYWxsZWVHUFIgPSBjYWxsZWUuZ3ByKCk7CiAgICAgICAgICAg
ICBjYWxsZWUudXNlKCk7CiAKLSAgICAgICAgICAgIHNodWZmbGVEYXRhLnRhZ1R5cGVOdW1iZXIg
PSBHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXI7CiAgICAgICAgICAgICBzaHVmZmxlRGF0
YS5udW1Mb2NhbHMgPSBtX2ppdC5ncmFwaCgpLmZyYW1lUmVnaXN0ZXJDb3VudCgpOwogICAgICAg
ICAgICAgc2h1ZmZsZURhdGEuY2FsbGVlID0gVmFsdWVSZWNvdmVyeTo6aW5HUFIoY2FsbGVlR1BS
LCBEYXRhRm9ybWF0SlMpOwogICAgICAgICAgICAgc2h1ZmZsZURhdGEuYXJncy5yZXNpemUobnVt
UGFzc2VkQXJncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Rp
ZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAppbmRleCA5NjA5NTM0ZWM1ZjZlNmRkN2Rm
NTU5NjE2N2E5ZDllMjMyMjI2Y2MxLi4wMzhkZjljNjFlODNlZWU0MTIyMGJjODY5NGVhMWJkMjA5
ZGU2MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENo
ZWNrSW5qZWN0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
VGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBOb2RlQW5kSW5kZXggdGVy
bWluYWwgPSBibG9jay0+ZmluZFRlcm1pbmFsKCk7Ci0gICAgICAgICAgICBpZiAodGVybWluYWwu
bm9kZS0+aXNGdW5jdGlvblRlcm1pbmFsKCkpIHsKKyAgICAgICAgICAgIGlmICh0ZXJtaW5hbC5u
b2RlLT5vcCgpID09IFJldHVybikgewogICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNl
cnROb2RlKAogICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hbC5pbmRleCwgU3BlY05vbmUsIENo
ZWNrVGllclVwQXRSZXR1cm4sIHRlcm1pbmFsLm5vZGUtPm9yaWdpbik7CiAgICAgICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXgg
ZjM2MTdiZTUyOGU5YjgxOTBjNjc0ZDY1MGI5Nzc4ZWU5ODQxZDZkZC4uYzhjNmZhNGJiZDM1NWM3
ZDMxYWU3ZGExOWM5ZjRiYWNkMWQ5YTYyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTMwLDE2ICsxMzAsMTAgQEAgaW5saW5lIENhcGFi
aWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgY2FzZSBOb3RpZnlXcml0ZToK
ICAgICBjYXNlIFN0b3JlQmFycmllcjoKICAgICBjYXNlIENhbGw6Ci0gICAgY2FzZSBUYWlsQ2Fs
bDoKLSAgICBjYXNlIFRhaWxDYWxsSW5saW5lZENhbGxlcjoKICAgICBjYXNlIENvbnN0cnVjdDoK
ICAgICBjYXNlIENhbGxWYXJhcmdzOgotICAgIGNhc2UgVGFpbENhbGxWYXJhcmdzOgotICAgIGNh
c2UgVGFpbENhbGxWYXJhcmdzSW5saW5lZENhbGxlcjoKLSAgICBjYXNlIENvbnN0cnVjdFZhcmFy
Z3M6CiAgICAgY2FzZSBDYWxsRm9yd2FyZFZhcmFyZ3M6Ci0gICAgY2FzZSBUYWlsQ2FsbEZvcndh
cmRWYXJhcmdzOgotICAgIGNhc2UgVGFpbENhbGxGb3J3YXJkVmFyYXJnc0lubGluZWRDYWxsZXI6
CisgICAgY2FzZSBDb25zdHJ1Y3RWYXJhcmdzOgogICAgIGNhc2UgQ29uc3RydWN0Rm9yd2FyZFZh
cmFyZ3M6CiAgICAgY2FzZSBMb2FkVmFyYXJnczoKICAgICBjYXNlIFZhbHVlVG9JbnQzMjoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCmluZGV4IGE3MmEwYzdjZjBhZGNm
OGEzOGMwYmEyYTM4MzFkZjFhMTQyOTZhZTEuLmZkNDYyMThkNzk0ZmVhMmEwN2QwYmQ5NDVjZDc0
N2NhOWE2MGVmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29t
cGlsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcApA
QCAtNjE4LDIyICs2MTgsNiBAQCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01h
cHMoCiAgICAgICAgICAgICBjYWxsLmxpbmsodm0sIGxpbmtCdWZmZXIsIHN0YXRlLmZpbmFsaXpl
ci0+aGFuZGxlRXhjZXB0aW9uc0xpbmtCdWZmZXItPmVudHJ5cG9pbnQoKSk7CiAgICAgICAgIH0p
OwogICAgIH0KLQotICAgIGFkanVzdENhbGxJQ3NGb3JTdGFja21hcHMoc3RhdGUuanNUYWlsQ2Fs
bHMsIHJlY29yZE1hcCk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0ZS5qc1RhaWxDYWxs
cy5zaXplKCk7IGktLTspIHsKLSAgICAgICAgSlNUYWlsQ2FsbCYgY2FsbCA9IHN0YXRlLmpzVGFp
bENhbGxzW2ldOwotCi0gICAgICAgIENDYWxsSGVscGVycyBmYXN0UGF0aEpJVCgmdm0sIGNvZGVC
bG9jayk7Ci0gICAgICAgIGNhbGwuZW1pdCgqc3RhdGUuaml0Q29kZS5nZXQoKSwgZmFzdFBhdGhK
SVQpOwotCi0gICAgICAgIGNoYXIqIHN0YXJ0T2ZJQyA9IGJpdHdpc2VfY2FzdDxjaGFyKj4oZ2Vu
ZXJhdGVkRnVuY3Rpb24pICsgY2FsbC5tX2luc3RydWN0aW9uT2Zmc2V0OwotICAgICAgICBzaXpl
X3Qgc2l6ZU9mSUMgPSBjYWxsLmVzdGltYXRlZFNpemUoKTsKLQotICAgICAgICBnZW5lcmF0ZUlu
bGluZUlmUG9zc2libGVPdXRPZkxpbmVJZk5vdChzdGF0ZSwgdm0sIGNvZGVCbG9jaywgZmFzdFBh
dGhKSVQsIHN0YXJ0T2ZJQywgc2l6ZU9mSUMsICJ0YWlsIGNhbGwgaW5saW5lIGNhY2hlIiwgWyZd
IChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyLCBDQ2FsbEhlbHBlcnMmLCBib29sKSB7Ci0gICAgICAg
ICAgICBjYWxsLmxpbmsodm0sIGxpbmtCdWZmZXIpOwotICAgICAgICB9KTsKLSAgICB9CiAgICAg
CiAgICAgYXV0byBpdGVyID0gcmVjb3JkTWFwLmZpbmQoc3RhdGUuaGFuZGxlU3RhY2tPdmVyZmxv
d0V4Y2VwdGlvblN0YWNrbWFwSUQpOwogICAgIC8vIEl0J3Mgc29ydCBvZiByZW1vdGVseSBwb3Nz
aWJsZSB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW4tYmFuZCBleGNlcHRpb24gaGFuZGxpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcAppbmRl
eCA5NGM3YWNlODlkYjIyNDQ4MzE1ZTI5NjdiZmRiYzkwMWNhZjZjZDY2Li5mNWJiZmNiNzc2OWQw
N2Y5ZDBlMjRhNTVkOTBiN2UyN2Y4NmEyMDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCkBAIC04MiwxNSArODIsNiBAQCBzaXplX3Qg
c2l6ZU9mQ2FsbFZhcmFyZ3MoKQogI2VuZGlmCiB9CiAKLXNpemVfdCBzaXplT2ZUYWlsQ2FsbFZh
cmFyZ3MoKQotewotI2lmIENQVShBUk02NCkKLSAgICByZXR1cm4gMTg4ICsgc2l6ZU9mQ2FsbFZh
cmFyZ3MoKTsKLSNlbHNlCi0gICAgcmV0dXJuIDE1MSArIHNpemVPZkNhbGxWYXJhcmdzKCk7Ci0j
ZW5kaWYKLX0KLQogc2l6ZV90IHNpemVPZkNhbGxGb3J3YXJkVmFyYXJncygpCiB7CiAjaWYgQ1BV
KEFSTTY0KQpAQCAtMTAwLDE1ICs5MSw2IEBAIHNpemVfdCBzaXplT2ZDYWxsRm9yd2FyZFZhcmFy
Z3MoKQogI2VuZGlmCiB9CiAKLXNpemVfdCBzaXplT2ZUYWlsQ2FsbEZvcndhcmRWYXJhcmdzKCkK
LXsKLSNpZiBDUFUoQVJNNjQpCi0gICAgcmV0dXJuIDE4OCArIHNpemVPZkNhbGxGb3J3YXJkVmFy
YXJncygpOwotI2Vsc2UKLSAgICByZXR1cm4gMTUxICsgc2l6ZU9mQ2FsbEZvcndhcmRWYXJhcmdz
KCk7Ci0jZW5kaWYKLX0KLQogc2l6ZV90IHNpemVPZkNvbnN0cnVjdFZhcmFyZ3MoKQogewogICAg
IHJldHVybiBzaXplT2ZDYWxsVmFyYXJncygpOyAvLyBTaG91bGQgYmUgdGhlIHNhbWUgc2l6ZS4K
QEAgLTEzOSwxNSArMTIxLDkgQEAgc2l6ZV90IHNpemVPZklDRm9yKE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBDb25zdHJ1Y3Q6CiAgICAgICAgIHJldHVybiBzaXplT2ZDYWxsKCk7CiAgICAgY2FzZSBD
YWxsVmFyYXJnczoKLSAgICBjYXNlIFRhaWxDYWxsVmFyYXJnc0lubGluZWRDYWxsZXI6CiAgICAg
ICAgIHJldHVybiBzaXplT2ZDYWxsVmFyYXJncygpOwotICAgIGNhc2UgVGFpbENhbGxWYXJhcmdz
OgotICAgICAgICByZXR1cm4gc2l6ZU9mVGFpbENhbGxWYXJhcmdzKCk7CiAgICAgY2FzZSBDYWxs
Rm9yd2FyZFZhcmFyZ3M6Ci0gICAgY2FzZSBUYWlsQ2FsbEZvcndhcmRWYXJhcmdzSW5saW5lZENh
bGxlcjoKICAgICAgICAgcmV0dXJuIHNpemVPZkNhbGxGb3J3YXJkVmFyYXJncygpOwotICAgIGNh
c2UgVGFpbENhbGxGb3J3YXJkVmFyYXJnczoKLSAgICAgICAgcmV0dXJuIHNpemVPZlRhaWxDYWxs
Rm9yd2FyZFZhcmFyZ3MoKTsKICAgICBjYXNlIENvbnN0cnVjdFZhcmFyZ3M6CiAgICAgICAgIHJl
dHVybiBzaXplT2ZDb25zdHJ1Y3RWYXJhcmdzKCk7CiAgICAgY2FzZSBDb25zdHJ1Y3RGb3J3YXJk
VmFyYXJnczoKQEAgLTE1NSw3ICsxMzEsNyBAQCBzaXplX3Qgc2l6ZU9mSUNGb3IoTm9kZSogbm9k
ZSkKICAgICBjYXNlIEluOgogICAgICAgICByZXR1cm4gc2l6ZU9mSW4oKTsKICAgICBkZWZhdWx0
OgotICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
MDsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW5saW5lQ2FjaGVTaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNh
Y2hlU2l6ZS5oCmluZGV4IGZlZDg1MGJjNzY0M2FjMjBlMjVkNTI0N2FlNWRlZjJjYTQ3ZmJkODQu
LjgyZjNiYmM3NDY5ZGFlZGFlYmRhMzBlYzVmNjUwZWJhMzI5ZDU1ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuaApAQCAtNDAsOSArNDAsNyBA
QCBzaXplX3Qgc2l6ZU9mR2V0QnlJZCgpOwogc2l6ZV90IHNpemVPZlB1dEJ5SWQoKTsKIHNpemVf
dCBzaXplT2ZDYWxsKCk7CiBzaXplX3Qgc2l6ZU9mQ2FsbFZhcmFyZ3MoKTsKLXNpemVfdCBzaXpl
T2ZUYWlsQ2FsbFZhcmFyZ3MoKTsKIHNpemVfdCBzaXplT2ZDYWxsRm9yd2FyZFZhcmFyZ3MoKTsK
LXNpemVfdCBzaXplT2ZUYWlsQ2FsbEZvcndhcmRWYXJhcmdzKCk7CiBzaXplX3Qgc2l6ZU9mQ29u
c3RydWN0VmFyYXJncygpOwogc2l6ZV90IHNpemVPZkNvbnN0cnVjdEZvcndhcmRWYXJhcmdzKCk7
CiBzaXplX3Qgc2l6ZU9mSW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMSlNDYWxsLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsLmNw
cAppbmRleCAxZGIxNzE5N2QzZDhjZTk3MTE4NWUwOGY1YjY1YTBkMDRkNjU4M2VkLi4yODc3Yjg0
ODY5NTIxYjQwMDBiY2M3ZWJiYzkwZWFjZDY3M2RhMGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExKU0NhbGwuY3BwCkBAIC00OCw3ICs0OCw3IEBAIEpTQ2FsbDo6SlNDYWxsKHVuc2ln
bmVkIHN0YWNrbWFwSUQsIE5vZGUqIG5vZGUpCiAgICAgLCBtX3N0YWNrbWFwSUQoc3RhY2ttYXBJ
RCkKICAgICAsIG1faW5zdHJ1Y3Rpb25PZmZzZXQoMCkKIHsKLSAgICBBU1NFUlQobm9kZS0+b3Ao
KSA9PSBDYWxsIHx8IG5vZGUtPm9wKCkgPT0gQ29uc3RydWN0IHx8IG5vZGUtPm9wKCkgPT0gVGFp
bENhbGxJbmxpbmVkQ2FsbGVyKTsKKyAgICBBU1NFUlQobm9kZS0+b3AoKSA9PSBDYWxsIHx8IG5v
ZGUtPm9wKCkgPT0gQ29uc3RydWN0KTsKIH0KIAogdm9pZCBKU0NhbGw6OmVtaXQoQ0NhbGxIZWxw
ZXJzJiBqaXQsIHVuc2lnbmVkIHN0YWNrU2l6ZUZvckxvY2FscykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsQmFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTEpTQ2FsbEJhc2UuY3BwCmluZGV4IGE1MmM3MzQ5YWZjZDc5OWY0OTAzNzc4
ZmM3YWM3MmFlMmEwMzJlYzYuLmYyMDBhOWY2YjE4MzU4ZDc2YjI4ODE2ZjdhZGVkMzdjNGE2MjA2
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsQmFzZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKU0NhbGxCYXNlLmNwcApAQCAt
NTUsMjkgKzU1LDE2IEBAIHZvaWQgSlNDYWxsQmFzZTo6ZW1pdChDQ2FsbEhlbHBlcnMmIGppdCkK
ICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgc2xvd1BhdGggPSBqaXQuYnJhbmNoUHRyV2l0aFBhdGNo
KAogICAgICAgICBDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFsLCBHUFJJbmZvOjpyZWdUMCwgbV90YXJn
ZXRUb0NoZWNrLAogICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoMCkpOwotCi0g
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmU7Ci0KLSAgICBpZiAoQ2FsbExpbmtJbmZvOjpjYWxs
TW9kZUZvcihtX3R5cGUpID09IENhbGxNb2RlOjpUYWlsKSB7Ci0gICAgICAgIGppdC5lbWl0UmVz
dG9yZUNhbGxlZVNhdmVzKCk7Ci0gICAgICAgIGppdC5wcmVwYXJlRm9yVGFpbENhbGxTbG93KCk7
Ci0gICAgICAgIG1fZmFzdENhbGwgPSBqaXQubmVhclRhaWxDYWxsKCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgbV9mYXN0Q2FsbCA9IGppdC5uZWFyQ2FsbCgpOwotICAgICAgICBkb25lID0gaml0
Lmp1bXAoKTsKLSAgICB9Ci0KKyAgICAKKyAgICBtX2Zhc3RDYWxsID0gaml0Lm5lYXJDYWxsKCk7
CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGRvbmUgPSBqaXQuanVtcCgpOworICAgIAogICAgIHNs
b3dQYXRoLmxpbmsoJmppdCk7Ci0KKyAgICAKICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIobV9jYWxsTGlua0luZm8pLCBHUFJJbmZvOjpyZWdUMik7CiAgICAgbV9zbG93
Q2FsbCA9IGppdC5uZWFyQ2FsbCgpOwotCi0gICAgaWYgKENhbGxMaW5rSW5mbzo6Y2FsbE1vZGVG
b3IobV90eXBlKSA9PSBDYWxsTW9kZTo6VGFpbCkKLSAgICAgICAgaml0LmFib3J0V2l0aFJlYXNv
bihKSVREaWRSZXR1cm5Gcm9tVGFpbENhbGwpOwotICAgIGVsc2UKLSAgICAgICAgZG9uZS5saW5r
KCZqaXQpOwotCi0gICAgbV9jYWxsTGlua0luZm8tPnNldFVwQ2FsbChtX3R5cGUsIG1fb3JpZ2lu
LCBHUFJJbmZvOjpyZWdUMCk7CisgICAgCisgICAgZG9uZS5saW5rKCZqaXQpOwogfQogCiB2b2lk
IEpTQ2FsbEJhc2U6OmxpbmsoVk0mIHZtLCBMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKQpAQCAtODUs
OCArNzIsOSBAQCB2b2lkIEpTQ2FsbEJhc2U6OmxpbmsoVk0mIHZtLCBMaW5rQnVmZmVyJiBsaW5r
QnVmZmVyKQogICAgIGxpbmtCdWZmZXIubGluaygKICAgICAgICAgbV9zbG93Q2FsbCwgRnVuY3Rp
b25QdHIodm0uZ2V0Q1RJU3R1YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5jb2RlKCkuZXhlY3V0
YWJsZUFkZHJlc3MoKSkpOwogCi0gICAgbV9jYWxsTGlua0luZm8tPnNldENhbGxMb2NhdGlvbnMo
bGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9zbG93Q2FsbCksCi0gICAgICAgIGxpbmtC
dWZmZXIubG9jYXRpb25PZihtX3RhcmdldFRvQ2hlY2spLCBsaW5rQnVmZmVyLmxvY2F0aW9uT2ZO
ZWFyQ2FsbChtX2Zhc3RDYWxsKSk7CisgICAgbV9jYWxsTGlua0luZm8tPnNldFVwQ2FsbEZyb21G
VEwobV90eXBlLCBtX29yaWdpbiwgbGlua0J1ZmZlci5sb2NhdGlvbk9mTmVhckNhbGwobV9zbG93
Q2FsbCksCisgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZihtX3RhcmdldFRvQ2hlY2spLCBs
aW5rQnVmZmVyLmxvY2F0aW9uT2ZOZWFyQ2FsbChtX2Zhc3RDYWxsKSwKKyAgICAgICAgR1BSSW5m
bzo6cmVnVDApOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbEJhc2UuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSlNDYWxsQmFzZS5oCmluZGV4IDY2MDczZWZmN2U3NmIzOWY1MTZkZWM5
MjhmMWRmOGI1MDA4OTU3MDQuLjU5NWFjNjk0MzQxYjQxM2M2MTllZjJmMTkwMTkwZDdjN2EwYTA5
OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsQmFzZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsQmFzZS5oCkBAIC01MCw3
ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVtaXQoQ0NhbGxIZWxwZXJzJik7CiAgICAgdm9p
ZCBsaW5rKFZNJiwgTGlua0J1ZmZlciYpOwogICAgIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAg
ICBDYWxsTGlua0luZm86OkNhbGxUeXBlIG1fdHlwZTsKICAgICBDb2RlT3JpZ2luIG1fb3JpZ2lu
OwogICAgIENDYWxsSGVscGVyczo6RGF0YUxhYmVsUHRyIG1fdGFyZ2V0VG9DaGVjazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNDYWxsVmFyYXJncy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTQ2FsbFZhcmFyZ3MuY3BwCmluZGV4IDZkY2Uz
YTUyNmQ0ZTM0MGQzY2VlZmI4MDE1NTBhMGFkMTEwMjUzMWMuLmFjODdhM2M2MTE4YmQyNDRmNDIz
ZDhhZGIyYWY3NWZmZDc0OGQ3YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMSlNDYWxsVmFyYXJncy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExKU0NhbGxWYXJhcmdzLmNwcApAQCAtNTEsMTUgKzUxLDEyIEBAIEpTQ2FsbFZhcmFyZ3M6OkpT
Q2FsbFZhcmFyZ3ModW5zaWduZWQgc3RhY2ttYXBJRCwgTm9kZSogbm9kZSkKICAgICAsIG1fbm9k
ZShub2RlKQogICAgICwgbV9jYWxsQmFzZSgKICAgICAgICAgKG5vZGUtPm9wKCkgPT0gQ29uc3Ry
dWN0VmFyYXJncyB8fCBub2RlLT5vcCgpID09IENvbnN0cnVjdEZvcndhcmRWYXJhcmdzKQotICAg
ICAgICA/IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0VmFyYXJncyA6IChub2RlLT5vcCgpID09IFRh
aWxDYWxsVmFyYXJncyB8fCBub2RlLT5vcCgpID09IFRhaWxDYWxsRm9yd2FyZFZhcmFyZ3MpCi0g
ICAgICAgID8gQ2FsbExpbmtJbmZvOjpUYWlsQ2FsbFZhcmFyZ3MgOiBDYWxsTGlua0luZm86OkNh
bGxWYXJhcmdzLAorICAgICAgICA/IENhbGxMaW5rSW5mbzo6Q29uc3RydWN0VmFyYXJncyA6IENh
bGxMaW5rSW5mbzo6Q2FsbFZhcmFyZ3MsCiAgICAgICAgIG5vZGUtPm9yaWdpbi5zZW1hbnRpYykK
ICAgICAsIG1faW5zdHJ1Y3Rpb25PZmZzZXQoMCkKIHsKICAgICBBU1NFUlQoCiAgICAgICAgIG5v
ZGUtPm9wKCkgPT0gQ2FsbFZhcmFyZ3MgfHwgbm9kZS0+b3AoKSA9PSBDYWxsRm9yd2FyZFZhcmFy
Z3MKLSAgICAgICAgfHwgbm9kZS0+b3AoKSA9PSBUYWlsQ2FsbFZhcmFyZ3NJbmxpbmVkQ2FsbGVy
IHx8IG5vZGUtPm9wKCkgPT0gVGFpbENhbGxGb3J3YXJkVmFyYXJnc0lubGluZWRDYWxsZXIKLSAg
ICAgICAgfHwgbm9kZS0+b3AoKSA9PSBUYWlsQ2FsbFZhcmFyZ3MgfHwgbm9kZS0+b3AoKSA9PSBU
YWlsQ2FsbEZvcndhcmRWYXJhcmdzCiAgICAgICAgIHx8IG5vZGUtPm9wKCkgPT0gQ29uc3RydWN0
VmFyYXJncyB8fCBub2RlLT5vcCgpID09IENvbnN0cnVjdEZvcndhcmRWYXJhcmdzKTsKIH0KIApA
QCAtODYsMTUgKzgzLDExIEBAIHZvaWQgSlNDYWxsVmFyYXJnczo6ZW1pdChDQ2FsbEhlbHBlcnMm
IGppdCwgaW50MzJfdCBzcGlsbFNsb3RzT2Zmc2V0KQogICAgIAogICAgIHN3aXRjaCAobV9ub2Rl
LT5vcCgpKSB7CiAgICAgY2FzZSBDYWxsVmFyYXJnczoKLSAgICBjYXNlIFRhaWxDYWxsVmFyYXJn
czoKLSAgICBjYXNlIFRhaWxDYWxsVmFyYXJnc0lubGluZWRDYWxsZXI6CiAgICAgY2FzZSBDb25z
dHJ1Y3RWYXJhcmdzOgogICAgICAgICBhcmd1bWVudHNHUFIgPSBHUFJJbmZvOjphcmd1bWVudEdQ
UjE7CiAgICAgICAgIHRoaXNHUFIgPSBHUFJJbmZvOjphcmd1bWVudEdQUjI7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ2FsbEZvcndhcmRWYXJhcmdzOgotICAgIGNhc2UgVGFpbENhbGxGb3J3
YXJkVmFyYXJnczoKLSAgICBjYXNlIFRhaWxDYWxsRm9yd2FyZFZhcmFyZ3NJbmxpbmVkQ2FsbGVy
OgogICAgIGNhc2UgQ29uc3RydWN0Rm9yd2FyZFZhcmFyZ3M6CiAgICAgICAgIHRoaXNHUFIgPSBH
UFJJbmZvOjphcmd1bWVudEdQUjE7CiAgICAgICAgIGZvcndhcmRpbmcgPSB0cnVlOwpAQCAtMjAz
LDcgKzE5Niw3IEBAIHZvaWQgSlNDYWxsVmFyYXJnczo6ZW1pdChDQ2FsbEhlbHBlcnMmIGppdCwg
aW50MzJfdCBzcGlsbFNsb3RzT2Zmc2V0KQogICAgIC8vIEhlbmNlZm9ydGggd2UgbWFrZSB0aGUg
Y2FsbC4gVGhlIGJhc2UgRlRMIGNhbGwgbWFjaGluZXJ5IGV4cGVjdHMgdGhlIGNhbGxlZSBpbiBy
ZWdUMCBhbmQgZm9yIHRoZQogICAgIC8vIHN0YWNrIGZyYW1lIHRvIGFscmVhZHkgYmUgc2V0IHVw
LCB3aGljaCBpdCBpcy4KICAgICBqaXQuc3RvcmU2NChHUFJJbmZvOjpyZWdUMCwgQ0NhbGxIZWxw
ZXJzOjpjYWxsZWVGcmFtZVNsb3QoSlNTdGFjazo6Q2FsbGVlKSk7Ci0KKyAgICAKICAgICBtX2Nh
bGxCYXNlLmVtaXQoaml0KTsKICAgICAKICAgICAvLyBVbmRvIHRoZSBkYW1hZ2Ugd2UndmUgZG9u
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNUYWlsQ2FsbC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTVGFpbENhbGwuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzQ3YmUwY2E0YzU1NmQ2ZTZmMDJjY2M4NWI2YWIyYzI2
YTk4ZDhhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSlNUYWlsQ2FsbC5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwzMjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJGVExKU1RhaWxDYWxs
LmgiCi0KLSNpZiBFTkFCTEUoRlRMX0pJVCkKLQotI2luY2x1ZGUgIkNhbGxGcmFtZVNodWZmbGVy
LmgiCi0jaW5jbHVkZSAiREZHTm9kZS5oIgotI2luY2x1ZGUgIkZUTEpJVENvZGUuaCIKLSNpbmNs
dWRlICJGVExMb2NhdGlvbi5oIgotI2luY2x1ZGUgIkZUTFN0YWNrTWFwcy5oIgotI2luY2x1ZGUg
IkpTQ0pTVmFsdWVJbmxpbmVzLmgiCi0jaW5jbHVkZSAiTGlua0J1ZmZlci5oIgotCi1uYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7Ci0KLXVzaW5nIG5hbWVzcGFjZSBERkc7Ci0KLW5hbWVz
cGFjZSB7Ci0KLUZUTDo6TG9jYXRpb24gZ2V0UmVnaXN0ZXJXaXRoQWRkZW5kKGNvbnN0IEV4aXRW
YWx1ZSYgdmFsdWUsIFN0YWNrTWFwczo6UmVjb3JkJiByZWNvcmQsIFN0YWNrTWFwcyYgc3RhY2tt
YXBzKQotewotICAgIGlmICh2YWx1ZS5raW5kKCkgIT0gRXhpdFZhbHVlQXJndW1lbnQpCi0gICAg
ICAgIHJldHVybiB7IH07Ci0KLSAgICBhdXRvIGxvY2F0aW9uID0KLSAgICAgICAgRlRMOjpMb2Nh
dGlvbjo6Zm9yU3RhY2ttYXBzKCZzdGFja21hcHMsIHJlY29yZC5sb2NhdGlvbnNbdmFsdWUuZXhp
dEFyZ3VtZW50KCkuYXJndW1lbnQoKV0pOwotCi0gICAgaWYgKGxvY2F0aW9uLmtpbmQoKSAhPSBM
b2NhdGlvbjo6UmVnaXN0ZXIgfHwgIWxvY2F0aW9uLmFkZGVuZCgpKQotICAgICAgICByZXR1cm4g
eyB9OwotCi0gICAgUkVMRUFTRV9BU1NFUlQobG9jYXRpb24uaXNHUFIoKSk7Ci0gICAgcmV0dXJu
IGxvY2F0aW9uOwotfQotCi1WYWx1ZVJlY292ZXJ5IHJlY292ZXJ5Rm9yKGNvbnN0IEV4aXRWYWx1
ZSYgdmFsdWUsIFN0YWNrTWFwczo6UmVjb3JkJiByZWNvcmQsIFN0YWNrTWFwcyYgc3RhY2ttYXBz
KQotewotICAgIHN3aXRjaCAodmFsdWUua2luZCgpKSB7Ci0gICAgY2FzZSBFeGl0VmFsdWVDb25z
dGFudDoKLSAgICAgICAgcmV0dXJuIFZhbHVlUmVjb3Zlcnk6OmNvbnN0YW50KHZhbHVlLmNvbnN0
YW50KCkpOwotCi0gICAgY2FzZSBFeGl0VmFsdWVBcmd1bWVudDogewotICAgICAgICBhdXRvIGxv
Y2F0aW9uID0KLSAgICAgICAgICAgIEZUTDo6TG9jYXRpb246OmZvclN0YWNrbWFwcygmc3RhY2tt
YXBzLCByZWNvcmQubG9jYXRpb25zW3ZhbHVlLmV4aXRBcmd1bWVudCgpLmFyZ3VtZW50KCldKTsK
LSAgICAgICAgYXV0byBmb3JtYXQgPSB2YWx1ZS5leGl0QXJndW1lbnQoKS5mb3JtYXQoKTsKLQot
ICAgICAgICBzd2l0Y2ggKGxvY2F0aW9uLmtpbmQoKSkgewotICAgICAgICBjYXNlIExvY2F0aW9u
OjpSZWdpc3RlcjoKLSAgICAgICAgICAgIC8vIFdlIGhhbmRsZSB0aGUgYWRkZW5kIG91dHNpZGUK
LSAgICAgICAgICAgIHJldHVybiBWYWx1ZVJlY292ZXJ5OjppblJlZ2lzdGVyKGxvY2F0aW9uLmR3
YXJmUmVnKCkucmVnKCksIGZvcm1hdCk7Ci0KLSAgICAgICAgY2FzZSBMb2NhdGlvbjo6SW5kaXJl
Y3Q6Ci0gICAgICAgICAgICAvLyBPaCBMTFZNLCB5b3UgY3JhenkuLi4KLSAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGxvY2F0aW9uLmR3YXJmUmVnKCkucmVnKCkgPT0gUmVnKE1hY3JvQXNzZW1i
bGVyOjpmcmFtZVBvaW50ZXJSZWdpc3RlcikpOwotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
IShsb2NhdGlvbi5vZmZzZXQoKSAlIHNpemVvZih2b2lkKikpKTsKLSAgICAgICAgICAgIHJldHVy
biBWYWx1ZVJlY292ZXJ5OjpkaXNwbGFjZWRJbkpTU3RhY2soVmlydHVhbFJlZ2lzdGVyIHsgc3Rh
dGljX2Nhc3Q8aW50Pihsb2NhdGlvbi5vZmZzZXQoKSAvIHNpemVvZih2b2lkKikpIH0sIGZvcm1h
dCk7Ci0KLSAgICAgICAgY2FzZSBMb2NhdGlvbjo6Q29uc3RhbnQ6Ci0gICAgICAgICAgICByZXR1
cm4gVmFsdWVSZWNvdmVyeTo6Y29uc3RhbnQoSlNWYWx1ZTo6ZGVjb2RlKGxvY2F0aW9uLmNvbnN0
YW50KCkpKTsKLQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGNhc2UgRXhpdFZhbHVlSW5K
U1N0YWNrOgotICAgICAgICByZXR1cm4gVmFsdWVSZWNvdmVyeTo6ZGlzcGxhY2VkSW5KU1N0YWNr
KHZhbHVlLnZpcnR1YWxSZWdpc3RlcigpLCBEYXRhRm9ybWF0SlMpOwotCi0gICAgY2FzZSBFeGl0
VmFsdWVJbkpTU3RhY2tBc0ludDMyOgotICAgICAgICByZXR1cm4gVmFsdWVSZWNvdmVyeTo6ZGlz
cGxhY2VkSW5KU1N0YWNrKHZhbHVlLnZpcnR1YWxSZWdpc3RlcigpLCBEYXRhRm9ybWF0SW50MzIp
OwotCi0gICAgY2FzZSBFeGl0VmFsdWVJbkpTU3RhY2tBc0ludDUyOgotICAgICAgICByZXR1cm4g
VmFsdWVSZWNvdmVyeTo6ZGlzcGxhY2VkSW5KU1N0YWNrKHZhbHVlLnZpcnR1YWxSZWdpc3Rlcigp
LCBEYXRhRm9ybWF0SW50NTIpOwotCi0gICAgY2FzZSBFeGl0VmFsdWVJbkpTU3RhY2tBc0RvdWJs
ZToKLSAgICAgICAgcmV0dXJuIFZhbHVlUmVjb3Zlcnk6OmRpc3BsYWNlZEluSlNTdGFjayh2YWx1
ZS52aXJ0dWFsUmVnaXN0ZXIoKSwgRGF0YUZvcm1hdERvdWJsZSk7Ci0KLSAgICBkZWZhdWx0Ogot
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIH0KLX0KLQotLy8gVGhp
cyBjb21wdXRlcyBhbiBlc3RpbWF0ZWQgc2l6ZSAoaW4gYml0cykgZm9yIHRoZSBzZXF1ZW5jZSBv
ZgotLy8gaW5zdHJ1Y3Rpb25zIHJlcXVpcmVkIHRvIGxvYWQsIGJveCwgYW5kIHN0b3JlIGEgdmFs
dWUgb2YgYSBnaXZlbgotLy8gdHlwZSwgYXNzdW1pbmcgbm8gc3BpbGxpbmcgaXMgcmVxdWlyZWQu
Ci11aW50MzJfdCBzaXplRm9yKERhdGFGb3JtYXQgZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9y
bWF0KSB7Ci0gICAgY2FzZSBEYXRhRm9ybWF0SW50MzI6Ci0gICAgICAgIC8vIEJveGluZyBpcyB6
ZXJvLWV4dGVuZGluZyBhbmQgdGFnZ2luZwotI2lmIENQVShYODZfNjQpCi0gICAgICAgIHJldHVy
biA2ICsgc2l6ZUZvcihEYXRhRm9ybWF0SlMpOwotI2VsaWYgQ1BVKEFSTTY0KQotICAgICAgICBy
ZXR1cm4gOCArIHNpemVGb3IoRGF0YUZvcm1hdEpTKTsKLSNlbHNlCi0gICAgICAgIHJldHVybiBz
aXplT2ZaZXJvRXh0ZW5kMzIgKyBzaXplT2ZPckltbTY0ICsgc2l6ZUZvcihEYXRhRm9ybWF0SlMp
OwotI2VuZGlmCi0KLSAgICBjYXNlIERhdGFGb3JtYXRJbnQ1MjoKLSAgICAgICAgLy8gQm94aW5n
IGlzIGZpcnN0IGEgY29udmVyc2lvbiB0byBTdHJpY3RJbnQ1MiwgdGhlbgotICAgICAgICAvLyBT
dHJpY3RJbnQ1MiBib3hpbmcKLSNpZiBDUFUoWDg2XzY0KQotICAgICAgICByZXR1cm4gNCArIHNp
emVGb3IoRGF0YUZvcm1hdFN0cmljdEludDUyKTsKLSNlbGlmIENQVShBUk02NCkKLSAgICAgICAg
cmV0dXJuIDQgKyBzaXplRm9yKERhdGFGb3JtYXRTdHJpY3RJbnQ1Mik7Ci0jZWxzZQotICAgICAg
ICByZXR1cm4gc2l6ZU9mU2hpZnRJbW0zMiArIHNpemVGb3IoRGF0YUZvcm1hdFN0cmljdEludDUy
KTsKLSNlbmRpZgotCi0gICAgY2FzZSBEYXRhRm9ybWF0U3RyaWN0SW50NTI6Ci0gICAgICAgIC8v
IEJveGluZyBpcyBmaXJzdCBhIGNvbnZlcnNpb24gdG8gZG91YmxlLCB0aGVuIGRvdWJsZSBib3hp
bmcKLSNpZiBDUFUoWDg2XzY0KQotICAgICAgICByZXR1cm4gOCArIHNpemVGb3IoRGF0YUZvcm1h
dERvdWJsZSk7Ci0jZWxpZiBDUFUoQVJNNjQpCi0gICAgICAgIHJldHVybiA0ICsgc2l6ZUZvcihE
YXRhRm9ybWF0RG91YmxlKTsKLSNlbHNlCi0gICAgICAgIHJldHVybiBzaXplT2ZDb252ZXJ0SW50
NjRUb0RvdWJsZSArIHNpemVGb3IoRGF0YUZvcm1hdERvdWJsZSk7Ci0jZW5kaWYKLQotICAgIGNh
c2UgRGF0YUZvcm1hdERvdWJsZToKLSAgICAgICAgLy8gQm94aW5nIGlzIHB1cmlmeWluZywgbW92
aW5nIHRvIGEgR1BSLCBhbmQgdGFnZ2luZwotI2lmIENQVShYODZfNjQpCi0gICAgICAgIHJldHVy
biAzOCArIHNpemVGb3IoRGF0YUZvcm1hdEpTKTsKLSNlbGlmIENQVShBUk02NCkKLSAgICAgICAg
cmV0dXJuIDI4ICsgc2l6ZUZvcihEYXRhRm9ybWF0SlMpOwotI2Vsc2UKLSAgICAgICAgcmV0dXJu
IHNpemVPZlB1cmlmeU5hTiArIHNpemVPZlN1YkltbTY0ICsgc2l6ZU9mTW92ZURvdWJsZVRvNjQg
KyBzaXplRm9yKERhdGFGb3JtYXRKUyk7Ci0jZW5kaWYKLQotICAgIGNhc2UgRGF0YUZvcm1hdEJv
b2xlYW46Ci0gICAgICAgIC8vIEJveGluZyBpcyBhZGRpbmcgVmFsdWVGYWxzZQotI2lmIENQVShY
ODZfNjQpCi0gICAgICAgIHJldHVybiA0ICsgc2l6ZUZvcihEYXRhRm9ybWF0SlMpOwotI2VsaWYg
Q1BVKEFSTTY0KQotICAgICAgICByZXR1cm4gNCArIHNpemVGb3IoRGF0YUZvcm1hdEpTKTsKLSNl
bHNlCi0gICAgICAgIHJldHVybiBzaXplT2ZBZGRJbW0zMiArIHNpemVGb3IoRGF0YUZvcm1hdEpT
KTsKLSNlbmRpZgotCi0gICAgY2FzZSBEYXRhRm9ybWF0SlM6Ci0gICAgICAgIC8vIFdlIHdpbGwg
bG9hZCAoaW4gYSBHUFIgb3IgRlBSKSB0aGVuIHN0b3JlIHRoZSB2YWx1ZQotI2lmIENQVShYODZf
NjQpCi0gICAgICAgIHJldHVybiA4OwotI2VsaWYgQ1BVKEFSTTY0KQotICAgICAgICByZXR1cm4g
ODsKLSNlbHNlCi0gICAgICAgIHJldHVybiBzaXplT2ZMb2FkICsgc2l6ZU9mU3RvcmU7Ci0jZW5k
aWYKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgfQotfQotCi19IC8vIGFub255bW91cyBuYW1lc3BhY2UKLQotSlNUYWlsQ2FsbDo6SlNU
YWlsQ2FsbCh1bnNpZ25lZCBzdGFja21hcElELCBOb2RlKiBub2RlLCBWZWN0b3I8RXhpdFZhbHVl
PiBhcmd1bWVudHMpCi0gICAgOiBKU0NhbGxCYXNlKENhbGxMaW5rSW5mbzo6VGFpbENhbGwsIG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYykKLSAgICAsIG1fc3RhY2ttYXBJRChzdGFja21hcElEKQotICAg
ICwgbV9hcmd1bWVudHMgeyBXVEY6Om1vdmUoYXJndW1lbnRzKSB9Ci0gICAgLCBtX2luc3RydWN0
aW9uT2Zmc2V0KDApCi17Ci0gICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0gVGFpbENhbGwpOwotICAg
IEFTU0VSVChudW1Bcmd1bWVudHMoKSA9PSBub2RlLT5udW1DaGlsZHJlbigpIC0gMSk7Ci0KLSAg
ICAvLyBFc3RpbWF0ZSB0aGUgc2l6ZSBvZiB0aGUgaW5saW5lIGNhY2hlLCBhc3N1bWluZyB0aGF0
IGV2ZXJ5Ci0gICAgLy8gdmFsdWUgZ29lcyBmcm9tIHRoZSBzdGFjayB0byB0aGUgc3RhY2sgKGlu
IHByYWN0aWNlLCB0aGlzIHdpbGwKLSAgICAvLyBzZWxkb20gYmUgdHJ1ZSwgZ2l2aW5nIHVzIHNv
bWUgYW1vdW50IG9mIGxlZXdheSkgYW5kIHRoYXQgbm8KLSAgICAvLyBzcGlsbGluZyB3aWxsIG9j
Y3VyIChpbiBwcmFjdGljZSwgdGhpcyB3aWxsIGFsbW9zdCBhbHdheXMgYmUKLSAgICAvLyB0cnVl
KS4KLQotICAgIC8vIFdlIGZpcnN0IGNvbXB1dGUgdGhlIG5ldyBmcmFtZSBiYXNlIGFuZCBsb2Fk
IHRoZSBmcC9scgotICAgIC8vIHJlZ2lzdGVycyBmaW5hbCB2YWx1ZXMuIE9uIGRlYnVnIGJ1aWxk
cywgd2UgYWxzbyBuZWVkIHRvCi0gICAgLy8gYWNjb3VudCBmb3IgdGhlIGZwLXNwIGRlbHRhIGNo
ZWNrICh0d2ljZTogZmFzdCBhbmQgc2xvdyBwYXRoKS4KLSNpZiBDUFUoWDg2XzY0KQotICAgIG1f
ZXN0aW1hdGVkU2l6ZSA9IDU2OwotI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICBtX2VzdGltYXRl
ZFNpemUgKz0gMjY7Ci0jICBlbmRpZgotI2VsaWYgQ1BVKEFSTTY0KQotICAgIG1fZXN0aW1hdGVk
U2l6ZSA9IDQ0OwotI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICBtX2VzdGltYXRlZFNpemUgKz0g
MjQ7Ci0jICBlbmRpZgotI2Vsc2UKLSAgICBVTlJFQUNIQUJMRV9GT1JfUExBVEZPUk0oKTsKLSNl
bmRpZgotCi0gICAgLy8gQXJndW1lbnRzIHdpbGwgcHJvYmFibHkgYmUgbG9hZGVkICYgc3RvcmVk
IHR3aWNlIChmYXN0ICYgc2xvdykKLSAgICBmb3IgKEV4aXRWYWx1ZSYgYXJnIDogbV9hcmd1bWVu
dHMpCi0gICAgICAgIG1fZXN0aW1hdGVkU2l6ZSArPSAyICogc2l6ZUZvcihhcmcuZGF0YUZvcm1h
dCgpKTsKLQotICAgIC8vIFdlIGFsc28gaGF2ZSB0aGUgc2xvdyBwYXRoIGNoZWNrLCB0aGUgdHdv
IGNhbGxzLCBhbmQgdGhlCi0gICAgLy8gQ2FsbExpbmtJbmZvIGxvYWQgZm9yIHRoZSBzbG93IHBh
dGgKLSNpZiBDUFUoWDg2XzY0KQotICAgIG1fZXN0aW1hdGVkU2l6ZSArPSA1NTsKLSNlbGlmIENQ
VShBUk02NCkKLSAgICBtX2VzdGltYXRlZFNpemUgKz0gNDQ7Ci0jZWxzZQotICAgIG1fZXN0aW1h
dGVkU2l6ZSArPSBzaXplT2ZDYWxsICsgc2l6ZU9mSnVtcCArIHNpemVPZkxvYWQgKyBzaXplT2ZT
bG93UGF0aENoZWNrOwotI2VuZGlmCi19Ci0KLXZvaWQgSlNUYWlsQ2FsbDo6ZW1pdChKSVRDb2Rl
JiBqaXRDb2RlLCBDQ2FsbEhlbHBlcnMmIGppdCkKLXsKLSAgICBTdGFja01hcHM6OlJlY29yZCog
cmVjb3JkIHsgbnVsbHB0ciB9OwotICAgIAotICAgIGZvciAodW5zaWduZWQgaSA9IGppdENvZGUu
c3RhY2ttYXBzLnJlY29yZHMuc2l6ZSgpOyBpLS07KSB7Ci0gICAgICAgIHJlY29yZCA9ICZqaXRD
b2RlLnN0YWNrbWFwcy5yZWNvcmRzW2ldOwotICAgICAgICBpZiAocmVjb3JkLT5wYXRjaHBvaW50
SUQgPT0gbV9zdGFja21hcElEKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgUkVM
RUFTRV9BU1NFUlQocmVjb3JkLT5wYXRjaHBvaW50SUQgPT0gbV9zdGFja21hcElEKTsKLQotICAg
IG1fY2FsbExpbmtJbmZvID0gaml0LmNvZGVCbG9jaygpLT5hZGRDYWxsTGlua0luZm8oKTsKLQot
ICAgIENhbGxGcmFtZVNodWZmbGVEYXRhIHNodWZmbGVEYXRhOwotCi0gICAgLy8gVGhlIGNhbGxl
ZSB3YXMgdGhlIGZpcnN0IHBhc3NlZCBhcmd1bWVudCwgYW5kIG11c3QgYmUgaW4gYSBHUFIgYmVj
YXVzZQotICAgIC8vIHdlIHVzZWQgdGhlICJhbnlyZWdjYyIgY2FsbGluZyBjb252ZW50aW9uCi0g
ICAgYXV0byBjYWxsZWVMb2NhdGlvbiA9Ci0gICAgICAgIEZUTDo6TG9jYXRpb246OmZvclN0YWNr
bWFwcyhudWxscHRyLCByZWNvcmQtPmxvY2F0aW9uc1swXSk7Ci0gICAgR1BSUmVnIGNhbGxlZUdQ
UiA9IGNhbGxlZUxvY2F0aW9uLmRpcmVjdEdQUigpOwotICAgIHNodWZmbGVEYXRhLmNhbGxlZSA9
IFZhbHVlUmVjb3Zlcnk6OmluR1BSKGNhbGxlZUdQUiwgRGF0YUZvcm1hdEpTKTsKLQotICAgIC8v
IFRoZSB0YWcgdHlwZSBudW1iZXIgd2FzIHRoZSBzZWNvbmQgYXJndW1lbnQsIGlmIHRoZXJlIHdh
cyBvbmUKLSAgICBhdXRvIHRhZ1R5cGVOdW1iZXJMb2NhdGlvbiA9Ci0gICAgICAgIEZUTDo6TG9j
YXRpb246OmZvclN0YWNrbWFwcygmaml0Q29kZS5zdGFja21hcHMsIHJlY29yZC0+bG9jYXRpb25z
WzFdKTsKLSAgICBpZiAodGFnVHlwZU51bWJlckxvY2F0aW9uLmlzR1BSKCkgJiYgIXRhZ1R5cGVO
dW1iZXJMb2NhdGlvbi5hZGRlbmQoKSkKLSAgICAgICAgc2h1ZmZsZURhdGEudGFnVHlwZU51bWJl
ciA9IHRhZ1R5cGVOdW1iZXJMb2NhdGlvbi5kaXJlY3RHUFIoKTsKLQotICAgIHNodWZmbGVEYXRh
LmFyZ3MuZ3JvdyhudW1Bcmd1bWVudHMoKSk7Ci0gICAgSGFzaE1hcDxSZWcsIFZlY3RvcjxzdGQ6
OnBhaXI8VmFsdWVSZWNvdmVyeSosIGludDMyX3Q+Pj4gd2l0aEFkZGVuZDsKLSAgICBzaXplX3Qg
bnVtQWRkZW5kcyB7IDAgfTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUFyZ3VtZW50
cygpOyArK2kpIHsKLSAgICAgICAgc2h1ZmZsZURhdGEuYXJnc1tpXSA9IHJlY292ZXJ5Rm9yKG1f
YXJndW1lbnRzW2ldLCAqcmVjb3JkLCBqaXRDb2RlLnN0YWNrbWFwcyk7Ci0gICAgICAgIGlmIChG
VEw6OkxvY2F0aW9uIGFkZGVuZCA9IGdldFJlZ2lzdGVyV2l0aEFkZGVuZChtX2FyZ3VtZW50c1tp
XSwgKnJlY29yZCwgaml0Q29kZS5zdGFja21hcHMpKSB7Ci0gICAgICAgICAgICB3aXRoQWRkZW5k
LmFkZCgKLSAgICAgICAgICAgICAgICBhZGRlbmQuZHdhcmZSZWcoKS5yZWcoKSwKLSAgICAgICAg
ICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPFZhbHVlUmVjb3ZlcnkqLCBpbnQzMl90Pj4oKSkuaXRl
cmF0b3ItPnZhbHVlLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAgc3RkOjptYWtlX3BhaXIo
JnNodWZmbGVEYXRhLmFyZ3NbaV0sIGFkZGVuZC5hZGRlbmQoKSkpOwotICAgICAgICAgICAgbnVt
QWRkZW5kcysrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbnVtQWRkZW5kcyA9IFdURjo6cm91
bmRVcFRvTXVsdGlwbGVPZihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpLCBudW1BZGRlbmRzKTsK
LQotICAgIHNodWZmbGVEYXRhLm51bUxvY2FscyA9IHN0YXRpY19jYXN0PGludDY0X3Q+KGppdENv
ZGUuc3RhY2ttYXBzLnN0YWNrU2l6ZUZvckxvY2FscygpKSAvIHNpemVvZih2b2lkKikgKyBudW1B
ZGRlbmRzOwotCi0gICAgQVNTRVJUKCFudW1BZGRlbmRzID09IHdpdGhBZGRlbmQuaXNFbXB0eSgp
KTsKLQotICAgIGlmICghd2l0aEFkZGVuZC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaml0LnN1YlB0
cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKG51bUFkZGVuZHMgKiBzaXplb2Yodm9pZCop
KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICAgICAgVmlydHVh
bFJlZ2lzdGVyIHNwaWxsQmFzZSB7IDEgLSBzdGF0aWNfY2FzdDxpbnQ+KHNodWZmbGVEYXRhLm51
bUxvY2FscykgfTsKLSAgICAgICAgZm9yIChhdXRvIGVudHJ5IDogd2l0aEFkZGVuZCkgewotICAg
ICAgICAgICAgZm9yIChhdXRvIHBhaXIgOiBlbnRyeS52YWx1ZSkgewotICAgICAgICAgICAgICAg
IEFTU0VSVChudW1BZGRlbmRzID4gMCk7Ci0gICAgICAgICAgICAgICAgVmlydHVhbFJlZ2lzdGVy
IHNwaWxsU2xvdCB7IHNwaWxsQmFzZSArIC0tbnVtQWRkZW5kcyB9OwotICAgICAgICAgICAgICAg
IEFTU0VSVChlbnRyeS5rZXkuaXNHUFIoKSk7Ci0gICAgICAgICAgICAgICAgaml0LmFkZFB0cihN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHBhaXIuc2Vjb25kKSwgZW50cnkua2V5Lmdwcigp
KTsKLSAgICAgICAgICAgICAgICBqaXQuc3RvcmVQdHIoZW50cnkua2V5LmdwcigpLCBDQ2FsbEhl
bHBlcnM6OmFkZHJlc3NGb3Ioc3BpbGxTbG90KSk7Ci0gICAgICAgICAgICAgICAgaml0LnN1YlB0
cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHBhaXIuc2Vjb25kKSwgZW50cnkua2V5Lmdw
cigpKTsKLSAgICAgICAgICAgICAgICAqcGFpci5maXJzdCA9IFZhbHVlUmVjb3Zlcnk6OmRpc3Bs
YWNlZEluSlNTdGFjayhzcGlsbFNsb3QsIHBhaXIuZmlyc3QtPmRhdGFGb3JtYXQoKSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgQVNTRVJUKG51bUFkZGVuZHMgPCBzdGFja0Fs
aWdubWVudFJlZ2lzdGVycygpKTsKLSAgICB9Ci0KLSAgICBzaHVmZmxlRGF0YS5hcmdzLnJlc2l6
ZShudW1Bcmd1bWVudHMoKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Bcmd1bWVu
dHMoKTsgKytpKQotICAgICAgICBzaHVmZmxlRGF0YS5hcmdzW2ldID0gcmVjb3ZlcnlGb3IobV9h
cmd1bWVudHNbaV0sICpyZWNvcmQsIGppdENvZGUuc3RhY2ttYXBzKTsKLQotICAgIHNodWZmbGVE
YXRhLnNldHVwQ2FsbGVlU2F2ZVJlZ2lzdGVycyhqaXQuY29kZUJsb2NrKCkpOwotCi0gICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoID0gaml0LmJyYW5jaFB0cldpdGhQYXRjaCgKLSAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgY2FsbGVlR1BSLCBtX3RhcmdldFRvQ2hlY2ssCi0g
ICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigwKSk7Ci0KLSAgICBtX2NhbGxMaW5r
SW5mby0+c2V0RnJhbWVTaHVmZmxlRGF0YShzaHVmZmxlRGF0YSk7Ci0gICAgQ2FsbEZyYW1lU2h1
ZmZsZXIoaml0LCBzaHVmZmxlRGF0YSkucHJlcGFyZUZvclRhaWxDYWxsKCk7Ci0KLSAgICBtX2Zh
c3RDYWxsID0gaml0Lm5lYXJUYWlsQ2FsbCgpOwotCi0gICAgc2xvd1BhdGgubGluaygmaml0KTsK
LQotICAgIENhbGxGcmFtZVNodWZmbGVyIHNsb3dQYXRoU2h1ZmZsZXIoaml0LCBzaHVmZmxlRGF0
YSk7Ci0gICAgc2xvd1BhdGhTaHVmZmxlci5zZXRDYWxsZWVKU1ZhbHVlUmVncyhKU1ZhbHVlUmVn
cyB7IEdQUkluZm86OnJlZ1QwIH0pOwotICAgIHNsb3dQYXRoU2h1ZmZsZXIucHJlcGFyZUZvclNs
b3dQYXRoKCk7Ci0KLSAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIobV9j
YWxsTGlua0luZm8pLCBHUFJJbmZvOjpyZWdUMik7Ci0KLSAgICBtX3Nsb3dDYWxsID0gaml0Lm5l
YXJDYWxsKCk7Ci0KLSAgICBqaXQuYWJvcnRXaXRoUmVhc29uKEpJVERpZFJldHVybkZyb21UYWls
Q2FsbCk7Ci0KLSAgICBtX2NhbGxMaW5rSW5mby0+c2V0VXBDYWxsKG1fdHlwZSwgbV9vcmlnaW4s
IGNhbGxlZUdQUik7Ci19Ci0KLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKLQotI2VuZGlmIC8v
IEVOQUJMRShGVExfSklUKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExKU1RhaWxDYWxsLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTVGFpbENhbGwu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTBiNGYwY2Y3YjM0ZDJmMTFhMmU5NWNm
YWVhMTNiMjM3ZWJlZjhkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpTVGFpbENhbGwuaAorKysgL2Rl
di9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEZUTEpTVGFpbENhbGxfaAotI2RlZmluZSBGVExK
U1RhaWxDYWxsX2gKLQotI2lmIEVOQUJMRShGVExfSklUKQotCi0jaW5jbHVkZSAiRlRMRXhpdEFy
Z3VtZW50TGlzdC5oIgotI2luY2x1ZGUgIkZUTEV4aXRWYWx1ZS5oIgotI2luY2x1ZGUgIkZUTEpT
Q2FsbEJhc2UuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLW5hbWVzcGFjZSBERkcgewotc3RydWN0
IE5vZGU7Ci19Ci0KLW5hbWVzcGFjZSBGVEwgewotCi1jbGFzcyBKU1RhaWxDYWxsIDogcHVibGlj
IEpTQ2FsbEJhc2UgewotcHVibGljOgotICAgIEpTVGFpbENhbGwodW5zaWduZWQgc3RhY2ttYXBJ
RCwgREZHOjpOb2RlKiwgVmVjdG9yPEV4aXRWYWx1ZT4gYXJndW1lbnRzKTsKLQotICAgIHZvaWQg
ZW1pdChKSVRDb2RlJiwgQ0NhbGxIZWxwZXJzJik7Ci0gICAgCi0gICAgdW5zaWduZWQgc3RhY2tt
YXBJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2ttYXBJRDsgfQotCi0gICAgdW5zaWduZWQgZXN0
aW1hdGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXN0aW1hdGVkU2l6ZTsgfQotCi0gICAgdW5z
aWduZWQgbnVtQXJndW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9hcmd1bWVudHMuc2l6ZSgpOyB9
Ci0KLSAgICBib29sIG9wZXJhdG9yPChjb25zdCBKU1RhaWxDYWxsJiBvdGhlcikgY29uc3QKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBtX2luc3RydWN0aW9uT2Zmc2V0IDwgb3RoZXIubV9pbnN0cnVj
dGlvbk9mZnNldDsKLSAgICB9Ci0gICAgCi1wcml2YXRlOgotICAgIHVuc2lnbmVkIG1fc3RhY2tt
YXBJRDsKLSAgICBWZWN0b3I8RXhpdFZhbHVlPiBtX2FyZ3VtZW50czsKLSAgICB1bnNpZ25lZCBt
X2VzdGltYXRlZFNpemU7Ci0KLXB1YmxpYzoKLSAgICB1aW50MzJfdCBtX2luc3RydWN0aW9uT2Zm
c2V0OwotfTsKLQotfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAotCi0jZW5kaWYgLy8gRU5BQkxF
KEZUTF9KSVQpCi0KLSNlbmRpZiAvLyBGVExKU1RhaWxDYWxsX2gKLQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb2NhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb2NhdGlvbi5oCmluZGV4IDFkZWM5NzRmMTRkNzY5YWIyMDczMDJmMTQyN2Rl
Yzg5YTdhNDkwNzAuLjcyNzE4YmJkODcyODI1NjBlZjMwMzY1MTZlMjAyY2Y0MzdjY2Y0MjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG9jYXRpb24uaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvY2F0aW9uLmgKQEAgLTEyMCw5ICsxMjAsNyBA
QCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB1LmNvbnN0YW50OwogICAgIH0KICAgICAKLSAgICBl
eHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4ga2luZCgpICE9IFVucHJvY2Vz
c2VkIHx8IHUudmFyaWFibGUub2Zmc2V0OyB9Ci0KLSAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0
IHsgcmV0dXJuICFzdGF0aWNfY2FzdDxib29sPigqdGhpcyk7IH0KKyAgICBib29sIG9wZXJhdG9y
ISgpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBVbnByb2Nlc3NlZCAmJiAhdS52YXJpYWJsZS5v
ZmZzZXQ7IH0KICAgICAKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3Qg
eyByZXR1cm4ga2luZCgpID09IFVucHJvY2Vzc2VkICYmIHUudmFyaWFibGUub2Zmc2V0OyB9CiAg
ICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9M
TFZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3Bw
CmluZGV4IDk4NmI0MzVmYTViOGU2ZDhiNDBlYzQyZThlYWM0NzI4ZDliOWI2MTQuLjM5OGJhNTc1
YWQxYmZkMjkzNjQzOWI3ZGJlMGJiM2MxMzY3NWFmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCkBAIC0xNzMsMTEgKzE3Myw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIGZvciAoTm9kZSogbm9kZSA6ICpibG9jaykgewogICAgICAgICAg
ICAgICAgIHN3aXRjaCAobm9kZS0+b3AoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgQ2FsbFZh
cmFyZ3M6Ci0gICAgICAgICAgICAgICAgY2FzZSBUYWlsQ2FsbFZhcmFyZ3M6Ci0gICAgICAgICAg
ICAgICAgY2FzZSBUYWlsQ2FsbFZhcmFyZ3NJbmxpbmVkQ2FsbGVyOgogICAgICAgICAgICAgICAg
IGNhc2UgQ2FsbEZvcndhcmRWYXJhcmdzOgotICAgICAgICAgICAgICAgIGNhc2UgVGFpbENhbGxG
b3J3YXJkVmFyYXJnczoKLSAgICAgICAgICAgICAgICBjYXNlIFRhaWxDYWxsRm9yd2FyZFZhcmFy
Z3NJbmxpbmVkQ2FsbGVyOgogICAgICAgICAgICAgICAgIGNhc2UgQ29uc3RydWN0VmFyYXJnczoK
ICAgICAgICAgICAgICAgICBjYXNlIENvbnN0cnVjdEZvcndhcmRWYXJhcmdzOgogICAgICAgICAg
ICAgICAgICAgICBoYXNWYXJhcmdzID0gdHJ1ZTsKQEAgLTcyNywxOSArNzIzLDExIEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBjb21waWxlTG9naWNhbE5vdCgpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGNhc2UgQ2FsbDoKLSAgICAgICAgY2FzZSBUYWlsQ2FsbElubGluZWRDYWxsZXI6
CiAgICAgICAgIGNhc2UgQ29uc3RydWN0OgogICAgICAgICAgICAgY29tcGlsZUNhbGxPckNvbnN0
cnVjdCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVGFpbENhbGw6Ci0gICAg
ICAgICAgICBjb21waWxlVGFpbENhbGwoKTsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIENhbGxWYXJhcmdzOgogICAgICAgICBjYXNlIENhbGxGb3J3YXJkVmFyYXJnczoKLSAgICAg
ICAgY2FzZSBUYWlsQ2FsbFZhcmFyZ3M6Ci0gICAgICAgIGNhc2UgVGFpbENhbGxWYXJhcmdzSW5s
aW5lZENhbGxlcjoKLSAgICAgICAgY2FzZSBUYWlsQ2FsbEZvcndhcmRWYXJhcmdzOgotICAgICAg
ICBjYXNlIFRhaWxDYWxsRm9yd2FyZFZhcmFyZ3NJbmxpbmVkQ2FsbGVyOgogICAgICAgICBjYXNl
IENvbnN0cnVjdFZhcmFyZ3M6CiAgICAgICAgIGNhc2UgQ29uc3RydWN0Rm9yd2FyZFZhcmFyZ3M6
CiAgICAgICAgICAgICBjb21waWxlQ2FsbE9yQ29uc3RydWN0VmFyYXJncygpOwpAQCAtNDQxMiw0
MSArNDQwMCw2IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgICAgICBzZXRKU1ZhbHVlKGNhbGwp
OwogICAgIH0KLQotICAgIHZvaWQgY29tcGlsZVRhaWxDYWxsKCkKLSAgICB7Ci0gICAgICAgIGlu
dCBudW1BcmdzID0gbV9ub2RlLT5udW1DaGlsZHJlbigpIC0gMTsKLSAgICAgICAgRXhpdEFyZ3Vt
ZW50TGlzdCBleGl0QXJndW1lbnRzOwotICAgICAgICBleGl0QXJndW1lbnRzLnJlc2VydmVDYXBh
Y2l0eShudW1BcmdzICsgNik7Ci0KLSAgICAgICAgdW5zaWduZWQgc3RhY2ttYXBJRCA9IG1fc3Rh
Y2ttYXBJRHMrKzsKLSAgICAgICAgZXhpdEFyZ3VtZW50cy5hcHBlbmQobG93SlNWYWx1ZShtX2dy
YXBoLnZhckFyZ0NoaWxkKG1fbm9kZSwgMCkpKTsKLSAgICAgICAgZXhpdEFyZ3VtZW50cy5hcHBl
bmQobV90YWdUeXBlTnVtYmVyKTsKLQotICAgICAgICBWZWN0b3I8RXhpdFZhbHVlPiBjYWxsQXJn
dW1lbnRzKG51bUFyZ3MpOwotCi0gICAgICAgIGJvb2wgbmVlZHNUYWdUeXBlTnVtYmVyIHsgZmFs
c2UgfTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1BcmdzOyArK2kpIHsKLSAgICAg
ICAgICAgIGNhbGxBcmd1bWVudHNbaV0gPQotICAgICAgICAgICAgICAgIGV4aXRWYWx1ZUZvclRh
aWxDYWxsKGV4aXRBcmd1bWVudHMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCAxICsgaSku
bm9kZSgpKTsKLSAgICAgICAgICAgIGlmIChjYWxsQXJndW1lbnRzW2ldLmRhdGFGb3JtYXQoKSA9
PSBEYXRhRm9ybWF0SW50MzIpCi0gICAgICAgICAgICAgICAgbmVlZHNUYWdUeXBlTnVtYmVyID0g
dHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIEpTVGFpbENhbGwgdGFpbENhbGwoc3RhY2ttYXBJ
RCwgbV9ub2RlLCBXVEY6Om1vdmUoY2FsbEFyZ3VtZW50cykpOwotCi0gICAgICAgIGV4aXRBcmd1
bWVudHMuaW5zZXJ0KDAsIG1fb3V0LmNvbnN0SW50MzIobmVlZHNUYWdUeXBlTnVtYmVyID8gMiA6
IDEpKTsKLSAgICAgICAgZXhpdEFyZ3VtZW50cy5pbnNlcnQoMCwgY29uc3ROdWxsKG1fb3V0LnJl
ZjgpKTsKLSAgICAgICAgZXhpdEFyZ3VtZW50cy5pbnNlcnQoMCwgbV9vdXQuY29uc3RJbnQzMih0
YWlsQ2FsbC5lc3RpbWF0ZWRTaXplKCkpKTsKLSAgICAgICAgZXhpdEFyZ3VtZW50cy5pbnNlcnQo
MCwgbV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElEKSk7Ci0KLSAgICAgICAgTFZhbHVlIGNhbGwg
PQotICAgICAgICAgICAgbV9vdXQuY2FsbChtX291dC5wYXRjaHBvaW50Vm9pZEludHJpbnNpYygp
LCBleGl0QXJndW1lbnRzKTsKLSAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlv
bihjYWxsLCBMTFZNQW55UmVnQ2FsbENvbnYpOwotICAgICAgICBtX291dC51bnJlYWNoYWJsZSgp
OwotCi0gICAgICAgIG1fZnRsU3RhdGUuanNUYWlsQ2FsbHMuYXBwZW5kKHRhaWxDYWxsKTsKLSAg
ICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlQ2FsbE9yQ29uc3RydWN0VmFyYXJncygpCiAgICAg
ewpAQCAtNDQ1NywxNCArNDQxMCwxMCBAQCBwcml2YXRlOgogICAgICAgICAKICAgICAgICAgc3dp
dGNoIChtX25vZGUtPm9wKCkpIHsKICAgICAgICAgY2FzZSBDYWxsVmFyYXJnczoKLSAgICAgICAg
Y2FzZSBUYWlsQ2FsbFZhcmFyZ3M6Ci0gICAgICAgIGNhc2UgVGFpbENhbGxWYXJhcmdzSW5saW5l
ZENhbGxlcjoKICAgICAgICAgY2FzZSBDb25zdHJ1Y3RWYXJhcmdzOgogICAgICAgICAgICAganNB
cmd1bWVudHMgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgQ2FsbEZvcndhcmRWYXJhcmdzOgotICAgICAgICBjYXNlIFRhaWxD
YWxsRm9yd2FyZFZhcmFyZ3M6Ci0gICAgICAgIGNhc2UgVGFpbENhbGxGb3J3YXJkVmFyYXJnc0lu
bGluZWRDYWxsZXI6CiAgICAgICAgIGNhc2UgQ29uc3RydWN0Rm9yd2FyZFZhcmFyZ3M6CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKQEAgLTQ0OTEsMTYgKzQ0NDAsOCBAQCBw
cml2YXRlOgogICAgICAgICBzZXRJbnN0cnVjdGlvbkNhbGxpbmdDb252ZW50aW9uKGNhbGwsIExM
Vk1DQ2FsbENvbnYpOwogICAgICAgICAKICAgICAgICAgbV9mdGxTdGF0ZS5qc0NhbGxWYXJhcmdz
ZXMuYXBwZW5kKEpTQ2FsbFZhcmFyZ3Moc3RhY2ttYXBJRCwgbV9ub2RlKSk7Ci0KLSAgICAgICAg
c3dpdGNoIChtX25vZGUtPm9wKCkpIHsKLSAgICAgICAgY2FzZSBUYWlsQ2FsbFZhcmFyZ3M6Ci0g
ICAgICAgIGNhc2UgVGFpbENhbGxGb3J3YXJkVmFyYXJnczoKLSAgICAgICAgICAgIG1fb3V0LnVu
cmVhY2hhYmxlKCk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgc2V0SlNWYWx1ZShjYWxsKTsKLSAgICAgICAgfQorICAgICAgICAKKyAgICAgICAg
c2V0SlNWYWx1ZShjYWxsKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBjb21waWxlTG9hZFZhcmFy
Z3MoKQpAQCAtODMxNSwxNCArODI1Niw3IEBAIHByaXZhdGU6CiAgICAgfQogICAgIHZvaWQgY2Fs
bFByZWZsaWdodCgpCiAgICAgewotICAgICAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4gPSBtX25v
ZGUtPm9yaWdpbi5zZW1hbnRpYzsKLQotICAgICAgICBpZiAobV9ub2RlLT5vcCgpID09IFRhaWxD
YWxsSW5saW5lZENhbGxlcgotICAgICAgICAgICAgfHwgbV9ub2RlLT5vcCgpID09IFRhaWxDYWxs
VmFyYXJnc0lubGluZWRDYWxsZXIKLSAgICAgICAgICAgIHx8IG1fbm9kZS0+b3AoKSA9PSBUYWls
Q2FsbEZvcndhcmRWYXJhcmdzSW5saW5lZENhbGxlcikKLSAgICAgICAgICAgIGNvZGVPcmlnaW4g
PSpjb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZS0+Z2V0Q2FsbGVyU2tpcHBpbmdEZWFkRnJhbWVz
KCk7Ci0KLSAgICAgICAgY2FsbFByZWZsaWdodChjb2RlT3JpZ2luKTsKKyAgICAgICAgY2FsbFBy
ZWZsaWdodChtX25vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CiAgICAgfQogICAgIAogICAgIHZvaWQg
Y2FsbENoZWNrKCkKQEAgLTg1OTMsNDYgKzg1MjcsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgREZH
X0NSQVNIKG1fZ3JhcGgsIG1fbm9kZSwgdG9DU3RyaW5nKCJDYW5ub3QgZmluZCB2YWx1ZSBmb3Ig
bm9kZTogIiwgbm9kZSkuZGF0YSgpKTsKICAgICAgICAgcmV0dXJuIEV4aXRWYWx1ZTo6ZGVhZCgp
OwogICAgIH0KLQorICAgIAogICAgIEV4aXRWYWx1ZSBleGl0QXJndW1lbnQoRXhpdEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBEYXRhRm9ybWF0IGZvcm1hdCwgTFZhbHVlIHZhbHVlKQogICAgIHsK
ICAgICAgICAgRXhpdFZhbHVlIHJlc3VsdCA9IEV4aXRWYWx1ZTo6ZXhpdEFyZ3VtZW50KEV4aXRB
cmd1bWVudChmb3JtYXQsIGFyZ3VtZW50cy5zaXplKCkpKTsKICAgICAgICAgYXJndW1lbnRzLmFw
cGVuZCh2YWx1ZSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQotCi0gICAgRXhpdFZh
bHVlIGV4aXRWYWx1ZUZvclRhaWxDYWxsKEV4aXRBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgTm9k
ZSogbm9kZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChub2RlLT5zaG91bGRHZW5lcmF0ZSgpKTsK
LSAgICAgICAgQVNTRVJUKG5vZGUtPmhhc1Jlc3VsdCgpKTsKLQotICAgICAgICBzd2l0Y2ggKG5v
ZGUtPm9wKCkpIHsKLSAgICAgICAgY2FzZSBKU0NvbnN0YW50OgotICAgICAgICBjYXNlIEludDUy
Q29uc3RhbnQ6Ci0gICAgICAgIGNhc2UgRG91YmxlQ29uc3RhbnQ6Ci0gICAgICAgICAgICByZXR1
cm4gRXhpdFZhbHVlOjpjb25zdGFudChub2RlLT5hc0pTVmFsdWUoKSk7Ci0KLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgTG93ZXJlZE5v
ZGVWYWx1ZSB2YWx1ZSA9IG1fanNWYWx1ZVZhbHVlcy5nZXQobm9kZSk7Ci0gICAgICAgIGlmIChp
c1ZhbGlkKHZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBleGl0QXJndW1lbnQoYXJndW1lbnRz
LCBEYXRhRm9ybWF0SlMsIHZhbHVlLnZhbHVlKCkpOwotCi0gICAgICAgIHZhbHVlID0gbV9pbnQz
MlZhbHVlcy5nZXQobm9kZSk7Ci0gICAgICAgIGlmIChpc1ZhbGlkKHZhbHVlKSkKLSAgICAgICAg
ICAgIHJldHVybiBleGl0QXJndW1lbnQoYXJndW1lbnRzLCBEYXRhRm9ybWF0SW50MzIsIHZhbHVl
LnZhbHVlKCkpOwotCi0gICAgICAgIHZhbHVlID0gbV9ib29sZWFuVmFsdWVzLmdldChub2RlKTsK
LSAgICAgICAgaWYgKGlzVmFsaWQodmFsdWUpKSB7Ci0gICAgICAgICAgICBMVmFsdWUgdmFsdWVU
b1Bhc3MgPSBtX291dC56ZXJvRXh0KHZhbHVlLnZhbHVlKCksIG1fb3V0LmludDMyKTsKLSAgICAg
ICAgICAgIHJldHVybiBleGl0QXJndW1lbnQoYXJndW1lbnRzLCBEYXRhRm9ybWF0Qm9vbGVhbiwg
dmFsdWVUb1Bhc3MpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRG91YmxlcyBhbmQgSW50NTIg
aGF2ZSBiZWVuIGNvbnZlcnRlZCBieSBWYWx1ZVJlcCgpCi0gICAgICAgIERGR19DUkFTSChtX2dy
YXBoLCBtX25vZGUsIHRvQ1N0cmluZygiQ2Fubm90IGZpbmQgdmFsdWUgZm9yIG5vZGU6ICIsIG5v
ZGUpLmRhdGEoKSk7Ci0gICAgfQogICAgIAogICAgIGJvb2wgZG9lc0tpbGwoRWRnZSBlZGdlKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAppbmRleCBmODQxNGVjNzUzMTgy
MDgyNTQ0ZDFlMDM1N2E4NDFkMWVmZTU1ZDBmLi40MmZiOWQyY2EzMmFjMGI3OWYzZWNhMWIwZTA0
ODIzYzQzMWI0YzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0
YXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5oCkBAIC0zNyw3
ICszNyw2IEBACiAjaW5jbHVkZSAiRlRMSklURmluYWxpemVyLmgiCiAjaW5jbHVkZSAiRlRMSlND
YWxsLmgiCiAjaW5jbHVkZSAiRlRMSlNDYWxsVmFyYXJncy5oIgotI2luY2x1ZGUgIkZUTEpTVGFp
bENhbGwuaCIKICNpbmNsdWRlICJGVExTdGFja01hcHMuaCIKICNpbmNsdWRlICJGVExTdGF0ZS5o
IgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtODAsNyArNzksNiBAQCBwdWJsaWM6
CiAgICAgU2VnbWVudGVkVmVjdG9yPENoZWNrSW5EZXNjcmlwdG9yPiBjaGVja0luczsKICAgICBW
ZWN0b3I8SlNDYWxsPiBqc0NhbGxzOwogICAgIFZlY3RvcjxKU0NhbGxWYXJhcmdzPiBqc0NhbGxW
YXJhcmdzZXM7Ci0gICAgVmVjdG9yPEpTVGFpbENhbGw+IGpzVGFpbENhbGxzOwogICAgIFZlY3Rv
cjxDU3RyaW5nPiBjb2RlU2VjdGlvbk5hbWVzOwogICAgIFZlY3RvcjxDU3RyaW5nPiBkYXRhU2Vj
dGlvbk5hbWVzOwogICAgIHZvaWQqIHVud2luZERhdGFTZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCmluZGV4IDhlM2MyNzBjZDA1NTAyOGMz
ZTljMDBkOTUzOGIwODk5YzU3NDJhNGMuLmVjY2VkZDk1NGQzNTliNjQ2ZGM4ZTZhZGVmZTVmNDU0
OTU5YzVlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlI
ZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5jcHAKQEAgLTMzOCw3ICszMzgsNyBAQCBBc3NlbWJseUhlbHBlcnM6Okp1bXAgQXNzZW1ibHlI
ZWxwZXJzOjplbWl0RXhjZXB0aW9uQ2hlY2soRXhjZXB0aW9uQ2hlY2tLaW5kIGtpbgogICAgIAog
ICAgIGlmICh3aWR0aCA9PSBOb3JtYWxKdW1wV2lkdGgpCiAgICAgICAgIHJldHVybiByZXN1bHQ7
Ci0KKyAgICAKICAgICBQYXRjaGFibGVKdW1wIHJlYWxKdW1wID0gcGF0Y2hhYmxlSnVtcCgpOwog
ICAgIHJlc3VsdC5saW5rKHRoaXMpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlRGF0YS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9DYWxsRnJhbWVTaHVmZmxlRGF0YS5oCmluZGV4IDQ2MTBjNWU2NGY4Y2ZiNDdkYzJjYmNj
YTgzYjExMDZlNzU1M2IwYTAuLjQ0ODAyZTg2ZDE0YWU5OWFkMzA5YjRhY2ZmMzIwZTEzNjQyMzUw
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZs
ZURhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVE
YXRhLmgKQEAgLTM5LDcgKzM5LDYgQEAgc3RydWN0IENhbGxGcmFtZVNodWZmbGVEYXRhIHsKICAg
ICBWZWN0b3I8VmFsdWVSZWNvdmVyeT4gYXJnczsKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgIFJl
Z2lzdGVyTWFwPFZhbHVlUmVjb3Zlcnk+IHJlZ2lzdGVyczsKLSAgICBHUFJSZWcgdGFnVHlwZU51
bWJlciB7IEludmFsaWRHUFJSZWcgfTsKIAogICAgIHZvaWQgc2V0dXBDYWxsZWVTYXZlUmVnaXN0
ZXJzKENvZGVCbG9jayopOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0NhbGxGcmFtZVNodWZmbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
Q2FsbEZyYW1lU2h1ZmZsZXIuY3BwCmluZGV4IDBhZmI1OTFkNDZiNmRhMzgwMTNmYmY1MWJkM2Vm
NjEyNjNhNGViZDUuLjc1ZWRlYjUyZDVmNmVhZjcxZDUyMDhhZjQ5OTlkMDViODM2ODExMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIuY3BwCkBA
IC03MSwxMCArNzEsNiBAQCBDYWxsRnJhbWVTaHVmZmxlcjo6Q2FsbEZyYW1lU2h1ZmZsZXIoQ0Nh
bGxIZWxwZXJzJiBqaXQsIGNvbnN0IENhbGxGcmFtZVNodWZmbGVEYQogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBhZGROZXcocmVnLmZwcigpLCBkYXRhLnJlZ2lzdGVyc1tyZWddKTsKICAgICB9
Ci0KLSAgICBtX3RhZ1R5cGVOdW1iZXIgPSBkYXRhLnRhZ1R5cGVOdW1iZXI7Ci0gICAgaWYgKG1f
dGFnVHlwZU51bWJlciAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICBsb2NrR1BSKG1fdGFnVHlw
ZU51bWJlcik7CiAjZW5kaWYKIH0KIApAQCAtODQsMTIgKzgwLDEyIEBAIHZvaWQgQ2FsbEZyYW1l
U2h1ZmZsZXI6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogZGFuZ2VyRGVsaW1pdGVyICAgICAgID0gIiBYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLVggIjsKICAgICBzdGF0aWMgY29uc3QgY2hhciogZGFuZ2VyQm91bmRzRGVsaW1pdGVy
ID0gIiBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFggIjsKICAgICBzdGF0aWMgY29u
c3QgY2hhciogZW1wdHlTcGFjZSAgICAgICAgICAgID0gIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIjsKKyAgICBBU1NFUlQobV9hbGlnbmVkTmV3RnJhbWVTaXplIDw9IG51bUxv
Y2FscygpKTsKICAgICBvdXQucHJpbnQoIiAgICAgICAgICAiKTsKICAgICBvdXQucHJpbnQoIiAg
ICAgICAgICAgT2xkIGZyYW1lICAgICAgICAgICAgICAgIik7CiAgICAgb3V0LnByaW50KCIgICAg
ICAgICAgIE5ldyBmcmFtZSAgICAgICAgICAgICAgICIpOwogICAgIG91dC5wcmludCgiXG4iKTsK
LSAgICBpbnQgdG90YWxTaXplID0gbV9hbGlnbmVkT2xkRnJhbWVTaXplICsgc3RkOjptYXgobnVt
TG9jYWxzKCksIG1fYWxpZ25lZE5ld0ZyYW1lU2l6ZSkgKyAzOwotICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgdG90YWxTaXplOyArK2kpIHsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fYWxpZ25l
ZE9sZEZyYW1lU2l6ZSArIG51bUxvY2FscygpICsgMzsgKytpKSB7CiAgICAgICAgIFZpcnR1YWxS
ZWdpc3RlciBvbGQgeyBtX2FsaWduZWRPbGRGcmFtZVNpemUgLSBpIC0gMSB9OwogICAgICAgICBW
aXJ0dWFsUmVnaXN0ZXIgbmV3UmVnIHsgb2xkICsgbV9mcmFtZURlbHRhIH07CiAKQEAgLTIwOCwx
MCArMjA0LDYgQEAgdm9pZCBDYWxsRnJhbWVTaHVmZmxlcjo6ZHVtcChQcmludFN0cmVhbSYgb3V0
KSBjb25zdAogICAgICAgICBvdXQucHJpbnQoIiAgIE9sZCBmcmFtZSBvZmZzZXQgaXMgIiwgbV9v
bGRGcmFtZU9mZnNldCwgIlxuIik7CiAgICAgaWYgKG1fbmV3RnJhbWVPZmZzZXQpCiAgICAgICAg
IG91dC5wcmludCgiICAgTmV3IGZyYW1lIG9mZnNldCBpcyAiLCBtX25ld0ZyYW1lT2Zmc2V0LCAi
XG4iKTsKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIGlmIChtX3RhZ1R5cGVOdW1iZXIgIT0gSW52
YWxpZEdQUlJlZykKLSAgICAgICAgb3V0LnByaW50KCIgICBUYWdUeXBlTnVtYmVyIGlzIGN1cnJl
bnRseSBpbiAiLCBtX3RhZ1R5cGVOdW1iZXIsICJcbiIpOwotI2VuZGlmCiB9CiAKIENhY2hlZFJl
Y292ZXJ5KiBDYWxsRnJhbWVTaHVmZmxlcjo6Z2V0Q2FjaGVkUmVjb3ZlcnkoVmFsdWVSZWNvdmVy
eSByZWNvdmVyeSkKQEAgLTI1NSwyNiArMjQ3LDE3IEBAIHZvaWQgQ2FsbEZyYW1lU2h1ZmZsZXI6
OnNwaWxsKENhY2hlZFJlY292ZXJ5JiBjYWNoZWRSZWNvdmVyeSkKICAgICBBU1NFUlQoY2FjaGVk
UmVjb3ZlcnkucmVjb3ZlcnkoKS5pc0luUmVnaXN0ZXJzKCkpOwogCiAgICAgVmlydHVhbFJlZ2lz
dGVyIHNwaWxsU2xvdCB7IDAgfTsKLSAgICBmb3IgKFZpcnR1YWxSZWdpc3RlciBzbG90ID0gZmly
c3RPbGQoKTsgc2xvdCA8PSBsYXN0T2xkKCk7IHNsb3QgKz0gMSkgewotICAgICAgICBpZiAoc2xv
dCA+PSBuZXdBc09sZChmaXJzdE5ldygpKSkKLSAgICAgICAgICAgIGJyZWFrOwotCisgICAgZm9y
IChWaXJ0dWFsUmVnaXN0ZXIgc2xvdCA9IGZpcnN0T2xkKCk7IHNsb3QgPD0gbGFzdE9sZCgpOyBz
bG90IC09IDEpIHsKKyAgICAgICAgQVNTRVJUKHNsb3QgPCBuZXdBc09sZChmaXJzdE5ldygpKSk7
CiAgICAgICAgIGlmIChnZXRPbGQoc2xvdCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAg
ICAgICBzcGlsbFNsb3QgPSBzbG90OwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgLy8gV2Ug
bXVzdCBoYXZlIGVub3VnaCBzbG90cyB0byBiZSBhYmxlIHRvIGZpdCB0aGUgd2hvbGUgY2FsbGVl
J3MKLSAgICAvLyBmcmFtZSBmb3IgdGhlIHNsb3cgcGF0aCAtIHVubGVzcyB3ZSBhcmUgaW4gdGhl
IEZUTC4gSW4gdGhhdAotICAgIC8vIGNhc2UsIHdlIGFyZSBhbGxvd2VkIHRvIGV4dGVuZCB0aGUg
ZnJhbWUgKm9uY2UqLCBzaW5jZSB3ZSBhcmUKLSAgICAvLyBndWFyYW50ZWVkIHRvIGhhdmUgZW5v
dWdoIGF2YWlsYWJsZSBzcGFjZSBmb3IgdGhhdC4KLSAgICBpZiAoc3BpbGxTbG90ID49IG5ld0Fz
T2xkKGZpcnN0TmV3KCkpIHx8ICFzcGlsbFNsb3QuaXNMb2NhbCgpKSB7Ci0gICAgICAgIFJFTEVB
U0VfQVNTRVJUKCFtX2RpZEV4dGVuZEZyYW1lKTsKLSAgICAgICAgZXh0ZW5kRnJhbWVJZk5lZWRl
ZCgpOwotICAgICAgICBzcGlsbChjYWNoZWRSZWNvdmVyeSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgLy8gV2UgbXVzdCBoYXZlIGVub3VnaCBzbG90cyB0byBiZSBhYmxlIHRvIGZpdCB0
aGUgd2hvbGUKKyAgICAvLyBjYWxsZWUncyBmcmFtZSBmb3IgdGhlIHNsb3cgcGF0aC4KKyAgICBS
RUxFQVNFX0FTU0VSVChzcGlsbFNsb3QuaXNMb2NhbCgpKTsKIAogICAgIGlmICh2ZXJib3NlKQog
ICAgICAgICBkYXRhTG9nKCIgICAqIFNwaWxsaW5nICIsIGNhY2hlZFJlY292ZXJ5LnJlY292ZXJ5
KCksICIgaW50byAiLCBzcGlsbFNsb3QsICJcbiIpOwpAQCAtMzAzLDM4ICsyODYsNiBAQCB2b2lk
IENhbGxGcmFtZVNodWZmbGVyOjplbWl0RGVsdGFDaGVjaygpCiAgICAgICAgIGRhdGFMb2coIiAg
U2tpcHBpbmcgdGhlIGZwLXNwIGRlbHRhIGNoZWNrIHNpbmNlIHRoZXJlIGlzIHRvbyBtdWNoIHBy
ZXNzdXJlIik7CiB9CiAKLXZvaWQgQ2FsbEZyYW1lU2h1ZmZsZXI6OmV4dGVuZEZyYW1lSWZOZWVk
ZWQoKQotewotICAgIEFTU0VSVCghbV9kaWRFeHRlbmRGcmFtZSk7Ci0gICAgQVNTRVJUKCFpc1Vu
ZGVjaWRlZCgpKTsKLQotICAgIFZpcnR1YWxSZWdpc3RlciBmaXJzdFJlYWQgeyBmaXJzdE9sZCgp
IH07Ci0gICAgZm9yICg7IGZpcnN0UmVhZCA8PSB2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbCgwKTsg
Zmlyc3RSZWFkICs9IDEpIHsKLSAgICAgICAgaWYgKGdldE9sZChmaXJzdFJlYWQpKQotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHNpemVfdCBhdmFpbGFibGVTaXplID0gc3RhdGljX2Nh
c3Q8c2l6ZV90PihmaXJzdFJlYWQub2Zmc2V0KCkgLSBmaXJzdE9sZCgpLm9mZnNldCgpKTsKLSAg
ICBzaXplX3Qgd2FudGVkU2l6ZSA9IG1fbmV3RnJhbWUuc2l6ZSgpICsgbV9uZXdGcmFtZU9mZnNl
dDsKLQotICAgIGlmIChhdmFpbGFibGVTaXplIDwgd2FudGVkU2l6ZSkgewotICAgICAgICBzaXpl
X3QgZGVsdGEgPSBXVEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3Rl
cnMoKSwgd2FudGVkU2l6ZSAtIGF2YWlsYWJsZVNpemUpOwotICAgICAgICBtX29sZEZyYW1lLmdy
b3cobV9vbGRGcmFtZS5zaXplKCkgKyBkZWx0YSk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgZGVsdGE7ICsraSkKLSAgICAgICAgICAgIG1fb2xkRnJhbWVbbV9vbGRGcmFtZS5zaXpl
KCkgLSBpIC0gMV0gPSBudWxscHRyOwotICAgICAgICBtX2ppdC5zdWJQdHIoTWFjcm9Bc3NlbWJs
ZXI6OlRydXN0ZWRJbW0zMihkZWx0YSAqIHNpemVvZihSZWdpc3RlcikpLCBNYWNyb0Fzc2VtYmxl
cjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotCi0gICAgICAgIGlmIChpc1Nsb3dQYXRoKCkpCi0g
ICAgICAgICAgICBtX2ZyYW1lRGVsdGEgPSBudW1Mb2NhbHMoKSArIEpTU3RhY2s6OkNhbGxlckZy
YW1lQW5kUENTaXplOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX29sZEZyYW1lT2Zmc2V0
ID0gbnVtTG9jYWxzKCk7Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICBkYXRh
TG9nRigiICBOb3QgZW5vdWdoIHNwYWNlIC0gZXh0ZW5kaW5nIHRoZSBvbGQgZnJhbWUgJXp1IHNs
b3RcbiIsIGRlbHRhKTsKLSAgICB9Ci0KLSAgICBtX2RpZEV4dGVuZEZyYW1lID0gdHJ1ZTsKLX0K
LQogdm9pZCBDYWxsRnJhbWVTaHVmZmxlcjo6cHJlcGFyZUZvclNsb3dQYXRoKCkKIHsKICAgICBB
U1NFUlQoaXNVbmRlY2lkZWQoKSk7CkBAIC0zNDUsMTUgKzI5Niw3IEBAIHZvaWQgQ2FsbEZyYW1l
U2h1ZmZsZXI6OnByZXBhcmVGb3JTbG93UGF0aCgpCiAgICAgbV9uZXdGcmFtZU9mZnNldCA9IC1K
U1N0YWNrOjpDYWxsZXJGcmFtZUFuZFBDU2l6ZTsKIAogICAgIGlmICh2ZXJib3NlKQotICAgICAg
ICBkYXRhTG9nKCJcblxuUHJlcGFyaW5nIGZyYW1lIGZvciBzbG93IHBhdGggY2FsbDpcbiIpOwot
Ci0gICAgLy8gV2hlbiBjb21pbmcgZnJvbSB0aGUgRlRMLCB3ZSBuZWVkIHRvIGV4dGVuZCB0aGUg
ZnJhbWUuIEluIG90aGVyCi0gICAgLy8gY2FzZXMsIHdlIG1heSBlbmQgdXAgZXh0ZW5kaW5nIHRo
ZSBmcmFtZSBpZiB3ZSBwcmV2aW91c2x5Ci0gICAgLy8gc3BpbGxlZCB0aGluZ3MgKGUuZy4gaW4g
cG9seW1vcnBoaWMgY2FjaGUpLgotICAgIGV4dGVuZEZyYW1lSWZOZWVkZWQoKTsKLQotICAgIGlm
ICh2ZXJib3NlKQotICAgICAgICBkYXRhTG9nKCp0aGlzKTsKKyAgICAgICAgZGF0YUxvZygiXG5c
blByZXBhcmluZyBmcmFtZSBmb3Igc2xvdyBwYXRoIGNhbGw6XG4iLCAqdGhpcyk7CiAKICAgICBw
cmVwYXJlQW55KCk7CiAKQEAgLTcwMywxMSArNjQ2LDYgQEAgdm9pZCBDYWxsRnJhbWVTaHVmZmxl
cjo6cHJlcGFyZUFueSgpCiAgICAgICAgIEFTU0VSVF9VTlVTRUQod3JpdGVzT0ssIHdyaXRlc09L
KTsKICAgICB9CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIGlmIChtX3RhZ1R5cGVOdW1iZXIg
IT0gSW52YWxpZEdQUlJlZyAmJiBtX25ld1JlZ2lzdGVyc1ttX3RhZ1R5cGVOdW1iZXJdKQotICAg
ICAgICByZWxlYXNlR1BSKG1fdGFnVHlwZU51bWJlcik7Ci0jZW5kaWYKLQogICAgIC8vIEhhbmRs
ZSAyKSBieSBsb2FkaW5nIGFsbCByZWdpc3RlcnMuIFdlIGRvbid0IGhhdmUgdG8gZG8gYW55CiAg
ICAgLy8gd3JpdGVzLCBzaW5jZSB0aGV5IGhhdmUgYmVlbiB0YWtlbiBjYXJlIG9mIGFib3ZlLgog
ICAgIGlmICh2ZXJib3NlKQpAQCAtNzIyLDExICs2NjAsNiBAQCB2b2lkIENhbGxGcmFtZVNodWZm
bGVyOjpwcmVwYXJlQW55KCkKICAgICAgICAgQVNTRVJUKGNhY2hlZFJlY292ZXJ5LT50YXJnZXRz
KCkuaXNFbXB0eSgpKTsKICAgICB9CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQotICAgIGlmIChtX3Rh
Z1R5cGVOdW1iZXIgIT0gSW52YWxpZEdQUlJlZykKLSAgICAgICAgcmVsZWFzZUdQUihtX3RhZ1R5
cGVOdW1iZXIpOwotI2VuZGlmCi0KICAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBoYXZlIHJlYWQg
ZXZlcnl0aGluZyB3ZSBjYXJlZCBhYm91dCBmcm9tIHRoZQogICAgIC8vIHN0YWNrLCBhbmQgd3Jp
dHRlbiBldmVyeXRoaW5nIHdlIGhhZCB0byB0byB0aGUgc3RhY2suCiAgICAgaWYgKHZlcmJvc2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVyLmgKaW5kZXgg
Yzk5M2U4Yzc1MjkxYmE2N2RjYzMzYTI4MjFjYjdjM2I1ZDU4YzJmNC4uNGJhNDFiMjI0YjQxZGQ0
YTk3NmYxZjQ4YjlhZjZmMjBiNDdjYTVkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQ2FsbEZyYW1lU2h1ZmZsZXIuaApAQCAtNzMsMjEgKzczLDYgQEAgcHVibGljOgogICAgICAg
ICBtX2xvY2tlZFJlZ2lzdGVycy5jbGVhcihncHIpOwogICAgIH0KIAotICAgIHZvaWQgcmVzdG9y
ZUdQUihHUFJSZWcgZ3ByKQotICAgIHsKLSAgICAgICAgaWYgKCFtX25ld1JlZ2lzdGVyc1tncHJd
KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGVuc3VyZUdQUigpOwotI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCi0gICAgICAgIEdQUlJlZyB0ZW1wR1BSIHsgZ2V0RnJlZUdQUigpIH07Ci0g
ICAgICAgIGxvY2tHUFIodGVtcEdQUik7Ci0gICAgICAgIGVuc3VyZUdQUigpOwotICAgICAgICBy
ZWxlYXNlR1BSKHRlbXBHUFIpOwotI2VuZGlmCi0gICAgICAgIGVtaXREaXNwbGFjZSgqbV9uZXdS
ZWdpc3RlcnNbZ3ByXSk7Ci0gICAgfQotCiAgICAgLy8gWW91IGNhbiBvbmx5IHRha2UgYSBzbmFw
c2hvdCBpZiB0aGUgcmVjb3ZlcnkgaGFzIG5vdCBzdGFydGVkCiAgICAgLy8geWV0LiBUaGUgb25s
eSBvcGVyYXRpb25zIHRoYXQgYXJlIHZhbGlkIGJlZm9yZSB0YWtpbmcgYQogICAgIC8vIHNuYXBz
aG90IGFyZSBsb2NrR1BSKCksIGFjcXVpcmVHUFIoKSBhbmQgcmVsZWFzZUdQUigpLgpAQCAtMzI0
LDEwICszMDksNiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gcmVnID49IGZpcnN0T2xkKCkg
JiYgcmVnIDw9IGxhc3RPbGQoKTsKICAgICB9CiAKLSAgICBib29sIG1fZGlkRXh0ZW5kRnJhbWUg
eyBmYWxzZSB9OwotCi0gICAgdm9pZCBleHRlbmRGcmFtZUlmTmVlZGVkKCk7Ci0KICAgICAvLyBU
aGlzIHN0b3JlcywgZm9yIGVhY2ggc2xvdCBpbiB0aGUgbmV3IGZyYW1lLCBpbmZvcm1hdGlvbiBh
Ym91dAogICAgIC8vIHRoZSByZWNvdmVyeSBmb3IgdGhlIHZhbHVlIHRoYXQgc2hvdWxkIGV2ZW50
dWFsbHkgZ28gaW50byB0aGF0CiAgICAgLy8gc2xvdC4KQEAgLTQwNCwxOSArMzg1LDEzIEBAIHBy
aXZhdGU6CiAgICAgLy8gV2UgYWxzbyB1c2UgdGhpcyB0byBsb2NrIHJlZ2lzdGVycyB0ZW1wb3Jh
cmlseSwgZm9yIGluc3RhbmNlIHRvCiAgICAgLy8gZW5zdXJlIHRoYXQgd2UgaGF2ZSBhdCBsZWFz
dCAyIGF2YWlsYWJsZSByZWdpc3RlcnMgZm9yIGxvYWRpbmcKICAgICAvLyBhIHBhaXIgb24gMzJi
aXRzLgotICAgIG11dGFibGUgUmVnaXN0ZXJTZXQgbV9sb2NrZWRSZWdpc3RlcnM7CisgICAgUmVn
aXN0ZXJTZXQgbV9sb2NrZWRSZWdpc3RlcnM7CiAKICAgICAvLyBUaGlzIHN0b3JlcyB0aGUgY3Vy
cmVudCByZWNvdmVyaWVzIHByZXNlbnQgaW4gcmVnaXN0ZXJzLiBBIG51bGwKICAgICAvLyBDYWNo
ZWRSZWNvdmVyeSBtZWFucyB3ZSBjYW4gdHJhc2ggdGhlIGN1cnJlbnQgdmFsdWUgYXMgd2UgZG9u
J3QKICAgICAvLyBjYXJlIGFib3V0IGl0LiAKICAgICBSZWdpc3Rlck1hcDxDYWNoZWRSZWNvdmVy
eSo+IG1fcmVnaXN0ZXJzOwogCi0jaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBtdXRhYmxlIEdQUlJl
ZyBtX3RhZ1R5cGVOdW1iZXI7Ci0KLSAgICBib29sIHRyeUFjcXVpcmVUYWdUeXBlTnVtYmVyKCk7
Ci0jZW5kaWYKLQogICAgIC8vIFRoaXMgc3RvcmVzLCBmb3IgZWFjaCByZWdpc3RlciwgaW5mb3Jt
YXRpb24gYWJvdXQgdGhlIHJlY292ZXJ5CiAgICAgLy8gZm9yIHRoZSB2YWx1ZSB0aGF0IHNob3Vs
ZCBldmVudHVhbGx5IGdvIGludG8gdGhhdCByZWdpc3Rlci4gVGhlCiAgICAgLy8gb25seSByZWdp
c3RlcnMgdGhhdCBoYXZlIGEgdGFyZ2V0IHJlY292ZXJ5IHdpbGwgYmUgY2FsbGVlLXNhdmUKQEAg
LTQ0NiwyNiArNDIxLDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgbm9uVGVtcCA9
IHJlZzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotCi0jaWYgVVNFKEpTVkFMVUU2NCkKLSAg
ICAgICAgaWYgKCFub25UZW1wICYmIG1fdGFnVHlwZU51bWJlciAhPSBJbnZhbGlkR1BSUmVnICYm
IGNoZWNrKFJlZyB7IG1fdGFnVHlwZU51bWJlciB9KSkgewotICAgICAgICAgICAgQVNTRVJUKG1f
bG9ja2VkUmVnaXN0ZXJzLmdldChtX3RhZ1R5cGVOdW1iZXIpKTsKLSAgICAgICAgICAgIG1fbG9j
a2VkUmVnaXN0ZXJzLmNsZWFyKG1fdGFnVHlwZU51bWJlcik7Ci0gICAgICAgICAgICBub25UZW1w
ID0gUmVnIHsgbV90YWdUeXBlTnVtYmVyIH07Ci0gICAgICAgICAgICBtX3RhZ1R5cGVOdW1iZXIg
PSBJbnZhbGlkR1BSUmVnOwotICAgICAgICB9Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuIG5vblRl
bXA7CiAgICAgfQogCi0gICAgR1BSUmVnIGdldEZyZWVUZW1wR1BSKCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIFJlZyBmcmVlVGVtcEdQUiB7IGdldEZyZWVSZWdpc3RlcihbdGhpc10gKFJlZyByZWcp
IHsgcmV0dXJuIHJlZy5pc0dQUigpICYmICFtX25ld1JlZ2lzdGVyc1tyZWddOyB9KSB9OwotICAg
ICAgICBpZiAoIWZyZWVUZW1wR1BSKQotICAgICAgICAgICAgcmV0dXJuIEludmFsaWRHUFJSZWc7
Ci0gICAgICAgIHJldHVybiBmcmVlVGVtcEdQUi5ncHIoKTsKLSAgICB9Ci0KICAgICBHUFJSZWcg
Z2V0RnJlZUdQUigpIGNvbnN0CiAgICAgewogICAgICAgICBSZWcgZnJlZUdQUiB7IGdldEZyZWVS
ZWdpc3RlcihbXSAoUmVnIHJlZykgeyByZXR1cm4gcmVnLmlzR1BSKCk7IH0pIH07CkBAIC01NjEs
MzEgKzUxOSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9KTsKICAgICB9CiAKLSAgICB2b2lk
IGVuc3VyZVRlbXBHUFIoKQotICAgIHsKLSAgICAgICAgaWYgKGdldEZyZWVUZW1wR1BSKCkgIT0g
SW52YWxpZEdQUlJlZykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAodmVyYm9z
ZSkKLSAgICAgICAgICAgIGRhdGFMb2coIiAgRmluZGluZyBhIHRlbXAgR1BSIHRvIHNwaWxsXG4i
KTsKLSAgICAgICAgZW5zdXJlUmVnaXN0ZXIoCi0gICAgICAgICAgICBbdGhpc10gKGNvbnN0IENh
Y2hlZFJlY292ZXJ5JiBjYWNoZWRSZWNvdmVyeSkgewotICAgICAgICAgICAgICAgIGlmIChjYWNo
ZWRSZWNvdmVyeS5yZWNvdmVyeSgpLmlzSW5HUFIoKSkgewotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gIW1fbG9ja2VkUmVnaXN0ZXJzLmdldChjYWNoZWRSZWNvdmVyeS5yZWNvdmVyeSgpLmdw
cigpKSAKLSAgICAgICAgICAgICAgICAgICAgICAgICYmICFtX25ld1JlZ2lzdGVyc1tjYWNoZWRS
ZWNvdmVyeS5yZWNvdmVyeSgpLmdwcigpXTsKLSAgICAgICAgICAgICAgICB9Ci0jaWYgVVNFKEpT
VkFMVUUzMl82NCkKLSAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUmVjb3ZlcnkucmVjb3Zlcnko
KS50ZWNobmlxdWUoKSA9PSBJblBhaXIpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFt
X2xvY2tlZFJlZ2lzdGVycy5nZXQoY2FjaGVkUmVjb3ZlcnkucmVjb3ZlcnkoKS50YWdHUFIoKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICYmICFtX2xvY2tlZFJlZ2lzdGVycy5nZXQoY2FjaGVk
UmVjb3ZlcnkucmVjb3ZlcnkoKS5wYXlsb2FkR1BSKCkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAmJiAhbV9uZXdSZWdpc3RlcnNbY2FjaGVkUmVjb3ZlcnkucmVjb3ZlcnkoKS50YWdHUFIoKV0K
LSAgICAgICAgICAgICAgICAgICAgICAgICYmICFtX25ld1JlZ2lzdGVyc1tjYWNoZWRSZWNvdmVy
eS5yZWNvdmVyeSgpLnBheWxvYWRHUFIoKV07Ci0gICAgICAgICAgICAgICAgfQotI2VuZGlmCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfSk7Ci0gICAgfQotCiAg
ICAgdm9pZCBlbnN1cmVHUFIoKQogICAgIHsKICAgICAgICAgaWYgKGdldEZyZWVHUFIoKSAhPSBJ
bnZhbGlkR1BSUmVnKQpAQCAtNjQwLDI0ICs1NzMsMTYgQEAgcHJpdmF0ZToKICAgICB7CiAgICAg
ICAgIEFTU0VSVChqc1ZhbHVlUmVncyAmJiAhZ2V0TmV3KGpzVmFsdWVSZWdzKSk7CiAgICAgICAg
IENhY2hlZFJlY292ZXJ5KiBjYWNoZWRSZWNvdmVyeSA9IGFkZENhY2hlZFJlY292ZXJ5KHJlY292
ZXJ5KTsKKyAgICAgICAgQVNTRVJUKCFjYWNoZWRSZWNvdmVyeS0+d2FudGVkSlNWYWx1ZVJlZ3Mo
KSk7CisgICAgICAgIGNhY2hlZFJlY292ZXJ5LT5zZXRXYW50ZWRKU1ZhbHVlUmVncyhqc1ZhbHVl
UmVncyk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICAgICAgaWYgKGNhY2hlZFJlY292ZXJ5LT53
YW50ZWRKU1ZhbHVlUmVncygpKQotICAgICAgICAgICAgbV9uZXdSZWdpc3RlcnNbY2FjaGVkUmVj
b3ZlcnktPndhbnRlZEpTVmFsdWVSZWdzKCkuZ3ByKCldID0gbnVsbHB0cjsKICAgICAgICAgbV9u
ZXdSZWdpc3RlcnNbanNWYWx1ZVJlZ3MuZ3ByKCldID0gY2FjaGVkUmVjb3Zlcnk7CiAjZWxzZQot
ICAgICAgICBpZiAoSlNWYWx1ZVJlZ3Mgb2xkUmVncyB7IGNhY2hlZFJlY292ZXJ5LT53YW50ZWRK
U1ZhbHVlUmVncygpIH0pIHsKLSAgICAgICAgICAgIGlmIChvbGRSZWdzLnBheWxvYWRHUFIoKSkK
LSAgICAgICAgICAgICAgICBtX25ld1JlZ2lzdGVyc1tvbGRSZWdzLnBheWxvYWRHUFIoKV0gPSBu
dWxscHRyOwotICAgICAgICAgICAgaWYgKG9sZFJlZ3MudGFnR1BSKCkpCi0gICAgICAgICAgICAg
ICAgbV9uZXdSZWdpc3RlcnNbb2xkUmVncy50YWdHUFIoKV0gPSBudWxscHRyOwotICAgICAgICB9
CiAgICAgICAgIGlmIChqc1ZhbHVlUmVncy5wYXlsb2FkR1BSKCkgIT0gSW52YWxpZEdQUlJlZykK
ICAgICAgICAgICAgIG1fbmV3UmVnaXN0ZXJzW2pzVmFsdWVSZWdzLnBheWxvYWRHUFIoKV0gPSBj
YWNoZWRSZWNvdmVyeTsKICAgICAgICAgaWYgKGpzVmFsdWVSZWdzLnRhZ0dQUigpICE9IEludmFs
aWRHUFJSZWcpCiAgICAgICAgICAgICBtX25ld1JlZ2lzdGVyc1tqc1ZhbHVlUmVncy50YWdHUFIo
KV0gPSBjYWNoZWRSZWNvdmVyeTsKICNlbmRpZgotICAgICAgICBBU1NFUlQoIWNhY2hlZFJlY292
ZXJ5LT53YW50ZWRKU1ZhbHVlUmVncygpKTsKLSAgICAgICAgY2FjaGVkUmVjb3ZlcnktPnNldFdh
bnRlZEpTVmFsdWVSZWdzKGpzVmFsdWVSZWdzKTsKICAgICB9CiAKICAgICB2b2lkIGFkZE5ldyhG
UFJSZWcgZnByLCBWYWx1ZVJlY292ZXJ5IHJlY292ZXJ5KQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlcjY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXI2NC5jcHAKaW5kZXggODAzOWIzYjE4ZmU0Yjc0
NGE0M2Q5NDBiMDQ5ZGQ2NWQzNDAzMTQ5MS4uMzE4MTNjZGU1ZTdmZGZlMjhlMjZiNDliYjQ3MDBl
N2YwZjU5Mzc0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJh
bWVTaHVmZmxlcjY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFt
ZVNodWZmbGVyNjQuY3BwCkBAIC04NywxNSArODcsOSBAQCB2b2lkIENhbGxGcmFtZVNodWZmbGVy
OjplbWl0Qm94KENhY2hlZFJlY292ZXJ5JiBjYWNoZWRSZWNvdmVyeSkKICAgICAgICAgICAgIG1f
aml0Lnplcm9FeHRlbmQzMlRvUHRyKAogICAgICAgICAgICAgICAgIGNhY2hlZFJlY292ZXJ5LnJl
Y292ZXJ5KCkuZ3ByKCksCiAgICAgICAgICAgICAgICAgY2FjaGVkUmVjb3ZlcnkucmVjb3Zlcnko
KS5ncHIoKSk7Ci0gICAgICAgICAgICBtX2xvY2tlZFJlZ2lzdGVycy5zZXQoY2FjaGVkUmVjb3Zl
cnkucmVjb3ZlcnkoKS5ncHIoKSk7Ci0gICAgICAgICAgICBpZiAodHJ5QWNxdWlyZVRhZ1R5cGVO
dW1iZXIoKSkKLSAgICAgICAgICAgICAgICBtX2ppdC5vcjY0KG1fdGFnVHlwZU51bWJlciwgY2Fj
aGVkUmVjb3ZlcnkucmVjb3ZlcnkoKS5ncHIoKSk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgdGhlIGhhcmQgd2F5Ci0gICAgICAgICAg
ICAgICAgbV9qaXQub3I2NChNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0KFRhZ1R5cGVOdW1i
ZXIpLAotICAgICAgICAgICAgICAgICAgICBjYWNoZWRSZWNvdmVyeS5yZWNvdmVyeSgpLmdwcigp
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1fbG9ja2VkUmVnaXN0ZXJzLmNsZWFyKGNh
Y2hlZFJlY292ZXJ5LnJlY292ZXJ5KCkuZ3ByKCkpOworICAgICAgICAgICAgLy8gV2UgaGF2ZSB0
byBkbyB0aGlzIHRoZSBoYXJkIHdheS4KKyAgICAgICAgICAgIG1faml0Lm9yNjQoTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW02NChUYWdUeXBlTnVtYmVyKSwKKyAgICAgICAgICAgICAgICBjYWNo
ZWRSZWNvdmVyeS5yZWNvdmVyeSgpLmdwcigpKTsKICAgICAgICAgICAgIGNhY2hlZFJlY292ZXJ5
LnNldFJlY292ZXJ5KAogICAgICAgICAgICAgICAgIFZhbHVlUmVjb3Zlcnk6OmluR1BSKGNhY2hl
ZFJlY292ZXJ5LnJlY292ZXJ5KCkuZ3ByKCksIERhdGFGb3JtYXRKUykpOwogICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCkBAIC0xNDcsMTIgKzE0MSw3IEBAIHZvaWQgQ2FsbEZyYW1lU2h1ZmZsZXI6
OmVtaXRCb3goQ2FjaGVkUmVjb3ZlcnkmIGNhY2hlZFJlY292ZXJ5KQogICAgICAgICAgICAgQVNT
RVJUKHJlc3VsdEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKICAgICAgICAgICAgIG1faml0LnB1cmlm
eU5hTihjYWNoZWRSZWNvdmVyeS5yZWNvdmVyeSgpLmZwcigpKTsKICAgICAgICAgICAgIG1faml0
Lm1vdmVEb3VibGVUbzY0KGNhY2hlZFJlY292ZXJ5LnJlY292ZXJ5KCkuZnByKCksIHJlc3VsdEdQ
Uik7Ci0gICAgICAgICAgICBtX2xvY2tlZFJlZ2lzdGVycy5zZXQocmVzdWx0R1BSKTsKLSAgICAg
ICAgICAgIGlmICh0cnlBY3F1aXJlVGFnVHlwZU51bWJlcigpKQotICAgICAgICAgICAgICAgIG1f
aml0LnN1YjY0KG1fdGFnVHlwZU51bWJlciwgcmVzdWx0R1BSKTsKLSAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICBtX2ppdC5zdWI2NChNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTY0
KFRhZ1R5cGVOdW1iZXIpLCByZXN1bHRHUFIpOwotICAgICAgICAgICAgbV9sb2NrZWRSZWdpc3Rl
cnMuY2xlYXIocmVzdWx0R1BSKTsKKyAgICAgICAgICAgIG1faml0LnN1YjY0KE1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlciksIHJlc3VsdEdQUik7CiAgICAgICAgICAg
ICB1cGRhdGVSZWNvdmVyeShjYWNoZWRSZWNvdmVyeSwgVmFsdWVSZWNvdmVyeTo6aW5HUFIocmVz
dWx0R1BSLCBEYXRhRm9ybWF0SlMpKTsKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAg
ICAgICAgICAgIGRhdGFMb2coIiBpbnRvICIsIGNhY2hlZFJlY292ZXJ5LnJlY292ZXJ5KCksICJc
biIpOwpAQCAtMzQ4LDIxICszMzcsNiBAQCB2b2lkIENhbGxGcmFtZVNodWZmbGVyOjplbWl0RGlz
cGxhY2UoQ2FjaGVkUmVjb3ZlcnkmIGNhY2hlZFJlY292ZXJ5KQogCiAgICAgQVNTRVJUKG1fcmVn
aXN0ZXJzW3dhbnRlZFJlZ10gPT0gJmNhY2hlZFJlY292ZXJ5KTsKIH0KLSAgICAKLWJvb2wgQ2Fs
bEZyYW1lU2h1ZmZsZXI6OnRyeUFjcXVpcmVUYWdUeXBlTnVtYmVyKCkKLXsKLSAgICBpZiAobV90
YWdUeXBlTnVtYmVyICE9IEludmFsaWRHUFJSZWcpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgbV90YWdUeXBlTnVtYmVyID0gZ2V0RnJlZUdQUigpOwotCi0gICAgaWYgKG1fdGFnVHlwZU51
bWJlciA9PSBJbnZhbGlkR1BSUmVnKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBtX2xv
Y2tlZFJlZ2lzdGVycy5zZXQobV90YWdUeXBlTnVtYmVyKTsKLSAgICBtX2ppdC5tb3ZlKE1hY3Jv
QXNzZW1ibGVyOjpUcnVzdGVkSW1tNjQoVGFnVHlwZU51bWJlciksIG1fdGFnVHlwZU51bWJlcik7
Ci0gICAgcmV0dXJuIHRydWU7Ci19CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRDYWxsLmNwcAppbmRleCBkNDA2ZDViNmZlYzkxNTBjZjM2NmNmOThiYzQ3
NTBkZmY5MzMzZDQwLi4zZmZlNzVkNGQ2M2JiMmViNDhlOTRlNWZhYTY0NDg3NmMxNDM4MDQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKQEAgLTE5Myw3ICsxOTMsNiBAQCB2
b2lkIEpJVDo6Y29tcGlsZU9wQ2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgSW5zdHJ1Y3Rpb24qIGlu
c3RydWN0aW9uLCB1bnNpZ25lZCBjYQogCiAgICAgaWYgKG9wY29kZUlEID09IG9wX3RhaWxfY2Fs
bCkgewogICAgICAgICBDYWxsRnJhbWVTaHVmZmxlRGF0YSBzaHVmZmxlRGF0YTsKLSAgICAgICAg
c2h1ZmZsZURhdGEudGFnVHlwZU51bWJlciA9IEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rl
cjsKICAgICAgICAgc2h1ZmZsZURhdGEubnVtTG9jYWxzID0KICAgICAgICAgICAgIGluc3RydWN0
aW9uWzRdLnUub3BlcmFuZCAtIHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSAvIHNpemVvZihSZWdp
c3Rlcik7CiAgICAgICAgIHNodWZmbGVEYXRhLmFyZ3MucmVzaXplKGluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWcuaAppbmRleCA3ZWMyZmE1M2UyYTFjYTZkMDMw
YmIyNDJhMTU5YTI3OGFhN2VkZWUzLi45ZjZhZDFjMGNkMzQ4NmQ2ZGNiNzkyMGNhYTZmNTFiOTc1
MmJlMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1JlZy5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnLmgKQEAgLTU1LDExICs1NSw2IEBAIHB1Ymxp
YzoKICAgICAgICAgOiBtX2luZGV4KGludmFsaWQoKSkKICAgICB7CiAgICAgfQotCi0gICAgUmVn
KFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKLSAgICAgICAgOiBtX2luZGV4KGRlbGV0
ZWQoKSkKLSAgICB7Ci0gICAgfQogICAgIAogICAgIFJlZyhNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0
ZXJJRCByZWcpCiAgICAgICAgIDogbV9pbmRleChNYWNyb0Fzc2VtYmxlcjo6cmVnaXN0ZXJJbmRl
eChyZWcpKQpAQCAtMTA3LDggKzEwMiw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzU2V0KCkgY29u
c3QgeyByZXR1cm4gbV9pbmRleCAhPSBpbnZhbGlkKCk7IH0KICAgICBib29sIG9wZXJhdG9yISgp
IGNvbnN0IHsgcmV0dXJuICFpc1NldCgpOyB9CiAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgp
IGNvbnN0IHsgcmV0dXJuIGlzU2V0KCk7IH0KLQotICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVk
VmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ID09IGRlbGV0ZWQoKTsgfQogICAgIAogICAg
IGJvb2wgaXNHUFIoKSBjb25zdAogICAgIHsKQEAgLTE3MiwzNCArMTY1LDEyIEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBzdGF0aWMgdWludDhfdCBpbnZhbGlkKCkgeyByZXR1cm4gMHhmZjsg
fQotCi0gICAgc3RhdGljIHVpbnQ4X3QgZGVsZXRlZCgpIHsgcmV0dXJuIDB4ZmU7IH0KICAgICAK
ICAgICB1aW50OF90IG1faW5kZXg7CiB9OwogCi1zdHJ1Y3QgUmVnSGFzaCB7Ci0gICAgc3RhdGlj
IHVuc2lnbmVkIGhhc2goY29uc3QgUmVnJiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KLSAg
ICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBSZWcmIGEsIGNvbnN0IFJlZyYgYikgeyByZXR1cm4g
YSA9PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRl
bGV0ZWQgPSB0cnVlOwotfTsKLQogfSAvLyBuYW1lc3BhY2UgSlNDCiAKLW5hbWVzcGFjZSBXVEYg
ewotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVsdEhhc2g7Ci10ZW1wbGF0ZTw+
IHN0cnVjdCBEZWZhdWx0SGFzaDxKU0M6OlJlZz4gewotICAgIHR5cGVkZWYgSlNDOjpSZWdIYXNo
IEhhc2g7Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSGFzaFRyYWl0czsKLXRl
bXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpSZWc+IDogU2ltcGxlQ2xhc3NIYXNoVHJh
aXRzPEpTQzo6UmVnPiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9
IGZhbHNlOwotIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCiAjZW5kaWYgLy8gRU5BQkxFKEpJ
VCkKIAogI2VuZGlmIC8vIFJlZ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmgKaW5kZXggY2IyOTJmNjlmMTQ1NTk2OTYwZDRiYWU0NGY5NjU2OWE1NDM5OTMxMS4uM2JhNjVm
MGU4NTM3NTY3NTU1YzE1YTAyYjgzM2ViNmM5NGYyMjVmNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMTI4LDcgKzEyOCw3IEBAIHR5cGVkZWYgY29uc3QgY2hh
ciogb3B0aW9uU3RyaW5nOwogICAgIHYoYm9vbCwgZm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJh
dGlvbiwgZmFsc2UsIG51bGxwdHIpIFwKICAgICBcCiAgICAgdihib29sLCBlbmFibGVGdW5jdGlv
bkRvdEFyZ3VtZW50cywgdHJ1ZSwgbnVsbHB0cikgXAotICAgIHYoYm9vbCwgZW5hYmxlVGFpbENh
bGxzLCB0cnVlLCBudWxscHRyKSBcCisgICAgdihib29sLCBlbmFibGVUYWlsQ2FsbHMsIGZhbHNl
LCBudWxscHRyKSBcCiAgICAgXAogICAgIC8qIHNob3dEaXNhc3NlbWJseSBpbXBsaWVzIHNob3dE
RkdEaXNhc3NlbWJseS4gKi8gXAogICAgIHYoYm9vbCwgc2hvd0Rpc2Fzc2VtYmx5LCBmYWxzZSwg
ImR1bXBzIGRpc2Fzc2VtYmx5IG9mIGFsbCBKSVQgY29tcGlsZWQgY29kZSB1cG9uIGNvbXBpbGF0
aW9uIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1s
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi55YW1sCmluZGV4IGNjZTAxNjQ4NzJh
NzQwZDY2NGQwOTY2N2Q3MGZmZTNiNmViMzIwNzkuLjkwYmYyNjIwNGM4ZjliMGJiMTI0MmIzNTlk
YWU4NGJmZDQ0NjNhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYueWFtbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2LnlhbWwKQEAgLTg3
Nyw5ICs4NzcsOSBAQAogLSBwYXRoOiBlczYvUHJvbWlzZV9Qcm9taXNlW1N5bWJvbC5zcGVjaWVz
XS5qcwogICBjbWQ6IHJ1bkVTNiA6ZmFpbAogLSBwYXRoOiBlczYvcHJvcGVyX3RhaWxfY2FsbHNf
dGFpbF9jYWxsX29wdGltaXNhdGlvbl9kaXJlY3RfcmVjdXJzaW9uLmpzCi0gIGNtZDogcnVuRVM2
IDpub3JtYWwKKyAgY21kOiBydW5FUzYgOmZhaWwKIC0gcGF0aDogZXM2L3Byb3Blcl90YWlsX2Nh
bGxzX3RhaWxfY2FsbF9vcHRpbWlzYXRpb25fbXV0dWFsX3JlY3Vyc2lvbi5qcwotICBjbWQ6IHJ1
bkVTNiA6bm9ybWFsCisgIGNtZDogcnVuRVM2IDpmYWlsCiAtIHBhdGg6IGVzNi9wcm90b3R5cGVf
b2ZfYm91bmRfZnVuY3Rpb25zX2Fycm93X2Z1bmN0aW9ucy5qcwogICBjbWQ6IHJ1bkVTNiA6ZmFp
bAogLSBwYXRoOiBlczYvcHJvdG90eXBlX29mX2JvdW5kX2Z1bmN0aW9uc19iYXNpY19mdW5jdGlv
bnMuanMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZn
LXRhaWwtY2FsbHMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RmZy10
YWlsLWNhbGxzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjUxYzBjYTgyZmNk
Mzk4NTY2Y2IyMjE5MTQ1NmRhZGIxNjRhODNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGZn
LXRhaWwtY2FsbHMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0oZnVuY3Rpb24g
bm9uSW5saW5lZFRhaWxDYWxsKCkgewotICAgIGZ1bmN0aW9uIGNhbGxlZSgpIHsgaWYgKGNhbGxl
ZS5jYWxsZXIgIT0gbm9uSW5saW5lZFRhaWxDYWxsKSB0aHJvdyBuZXcgRXJyb3IoKTsgfQotICAg
IG5vSW5saW5lKGNhbGxlZSk7Ci0KLSAgICBmdW5jdGlvbiBjYWxsZXIoKSB7ICJ1c2Ugc3RyaWN0
IjsgcmV0dXJuIGNhbGxlZSgpOyB9Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpCi0gICAgICAgIGNhbGxlcigpOwotCi0gICAgZnVuY3Rpb24gbG9vcChuKSB7ICJ1c2Ugc3Ry
aWN0IjsgaWYgKG4gPiAwKSByZXR1cm4gbG9vcChuIC0gMSk7IH0KLSAgICBub0lubGluZShsb29w
KTsKLQotICAgIGxvb3AoMTAwMDAwMCk7Ci19KSgpOwotCi0oZnVuY3Rpb24gaW5saW5lZFRhaWxD
YWxsKCkgewotICAgIGZ1bmN0aW9uIGNhbGxlZSgpIHsgaWYgKGNhbGxlZS5jYWxsZXIgIT0gaW5s
aW5lZFRhaWxDYWxsKSB0aHJvdyBuZXcgRXJyb3IoKTsgfQotICAgIGZ1bmN0aW9uIGNhbGxlcigp
IHsgInVzZSBzdHJpY3QiOyByZXR1cm4gY2FsbGVlKCk7IH0KLQotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDA7ICsraSkKLSAgICAgICAgY2FsbGVyKCk7Ci0KLSAgICBmdW5jdGlvbiBsb29w
KG4pIHsgInVzZSBzdHJpY3QiOyBpZiAobiA+IDApIHJldHVybiBsb29wKG4gLSAxKTsgfQotCi0g
ICAgbG9vcCgxMDAwMDAwKTsKLX0pKCk7Ci0KLShmdW5jdGlvbiBub25JbmxpbmVkRW11bGF0ZWRU
YWlsQ2FsbCgpIHsKLSAgICBmdW5jdGlvbiBlbXVsYXRvcigpIHsgY2FsbGVyKCk7IH0KLSAgICBm
dW5jdGlvbiBjYWxsZWUoKSB7IGlmIChjYWxsZWUuY2FsbGVyICE9IGVtdWxhdG9yKSB0aHJvdyBu
ZXcgRXJyb3IoKTsgfQotICAgIG5vSW5saW5lKGNhbGxlZSk7Ci0gICAgZnVuY3Rpb24gY2FsbGVy
KCkgeyAidXNlIHN0cmljdCI7IHJldHVybiBjYWxsZWUoKTsgfQotCi0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKQotICAgICAgICBlbXVsYXRvcigpOwotCi0gICAgZnVuY3Rpb24g
cGFkKG4pIHsgInVzZSBzdHJpY3QiOyByZXR1cm4gbG9vcChuKTsgfQotICAgIGZ1bmN0aW9uIGxv
b3AobikgeyAidXNlIHN0cmljdCI7IGlmIChuID4gMCkgcmV0dXJuIHBhZChuIC0gMSk7IH0KLSAg
ICBub0lubGluZShsb29wKTsKLQotICAgIGxvb3AoMTAwMDAwMCk7Ci19KSgpOwotCi0oZnVuY3Rp
b24gaW5saW5lZEVtdWxhdGVkVGFpbENhbGwoKSB7Ci0gICAgZnVuY3Rpb24gZW11bGF0b3IoKSB7
IGNhbGxlcigpOyB9Ci0gICAgZnVuY3Rpb24gY2FsbGVlKCkgeyBpZiAoY2FsbGVlLmNhbGxlciAh
PSBlbXVsYXRvcikgdGhyb3cgbmV3IEVycm9yKCk7IH0KLSAgICBmdW5jdGlvbiBjYWxsZXIoKSB7
ICJ1c2Ugc3RyaWN0IjsgcmV0dXJuIGNhbGxlZSgpOyB9Ci0KLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwOyArK2kpCi0gICAgICAgIGVtdWxhdG9yKCk7Ci0KLSAgICBmdW5jdGlvbiBwYWQo
bikgeyAidXNlIHN0cmljdCI7IHJldHVybiBsb29wKG4pOyB9Ci0gICAgZnVuY3Rpb24gbG9vcChu
KSB7ICJ1c2Ugc3RyaWN0IjsgaWYgKG4gPiAwKSByZXR1cm4gcGFkKG4gLSAxKTsgfQotCi0gICAg
bG9vcCgxMDAwMDAwKTsKLX0pKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL211dHVhbC10YWlsLWNhbGwtbm8tc3RhY2stb3ZlcmZsb3cuanMgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL211dHVhbC10YWlsLWNhbGwtbm8tc3RhY2st
b3ZlcmZsb3cuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1OWM4Y2YzOWRmZjE4
Y2RhZWU1M2I2YjNhM2UzOGE0MWQ1MmRiZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9tdXR1
YWwtdGFpbC1jYWxsLW5vLXN0YWNrLW92ZXJmbG93LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNzEg
KzAsMCBAQAotZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNzYWdlKSB7Ci0gICAg
dmFyIGVycm9yVGhyb3duID0gZmFsc2U7Ci0gICAgdmFyIGVycm9yID0gbnVsbDsKLSAgICB0cnkg
ewotICAgICAgICBmdW5jKCk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBlcnJvclRocm93
biA9IHRydWU7Ci0gICAgICAgIGVycm9yID0gZTsKLSAgICB9Ci0gICAgaWYgKCFlcnJvclRocm93
bikKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdub3QgdGhyb3duJyk7Ci0gICAgaWYgKFN0cmlu
ZyhlcnJvcikgIT09IGVycm9yTWVzc2FnZSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQg
ZXJyb3I6ICR7U3RyaW5nKGVycm9yKX1gKTsKLX0KLQotZnVuY3Rpb24gc2xvcHB5Q291bnRkb3du
KG4pIHsKLSAgICBmdW5jdGlvbiBldmVuKG4pIHsKLSAgICAgICAgaWYgKG4gPT0gMCkKLSAgICAg
ICAgICAgIHJldHVybiBuOwotICAgICAgICByZXR1cm4gb2RkKG4gLSAxKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBvZGQobikgewotICAgICAgICBpZiAobiA9PSAxKQotICAgICAgICAgICAgcmV0
dXJuIG47Ci0gICAgICAgIHJldHVybiBldmVuKG4gLSAxKTsKLSAgICB9Ci0KLSAgICBpZiAobiAl
IDIgPT09IDApCi0gICAgICAgIHJldHVybiBldmVuKG4pOwotICAgIGVsc2UKLSAgICAgICAgcmV0
dXJuIG9kZChuKTsKLX0KLQotZnVuY3Rpb24gc3RyaWN0Q291bnRkb3duKG4pIHsKLSAgICAidXNl
IHN0cmljdCI7Ci0KLSAgICBmdW5jdGlvbiBldmVuKG4pIHsKLSAgICAgICAgaWYgKG4gPT0gMCkK
LSAgICAgICAgICAgIHJldHVybiBuOwotICAgICAgICByZXR1cm4gb2RkKG4gLSAxKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBvZGQobikgewotICAgICAgICBpZiAobiA9PSAxKQotICAgICAgICAg
ICAgcmV0dXJuIG47Ci0gICAgICAgIHJldHVybiBldmVuKG4gLSAxKTsKLSAgICB9Ci0KLSAgICBp
ZiAobiAlIDIgPT09IDApCi0gICAgICAgIHJldHVybiBldmVuKG4pOwotICAgIGVsc2UKLSAgICAg
ICAgcmV0dXJuIG9kZChuKTsKLX0KLQotc2hvdWxkVGhyb3coZnVuY3Rpb24gKCkgeyBzbG9wcHlD
b3VudGRvd24oMTAwMDAwKTsgfSwgIlJhbmdlRXJyb3I6IE1heGltdW0gY2FsbCBzdGFjayBzaXpl
IGV4Y2VlZGVkLiIpOwotc3RyaWN0Q291bnRkb3duKDEwMDAwMCk7Ci0KLS8vIFBhcml0eSBhbHRl
cm5pbmcKLWZ1bmN0aW9uIG9kZChuKSB7Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIGlmIChuID4g
MCkKLSAgICAgICAgcmV0dXJuIGV2ZW4obiwgMCk7Ci19Ci0KLWZ1bmN0aW9uIGV2ZW4obikgewot
ICAgICJ1c2Ugc3RyaWN0IjsKLSAgICByZXR1cm4gb2RkKG4gLSAxKTsKLX0KLQotb2RkKDEwMDAw
MCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RhaWwt
Y2FsbC1uby1zdGFjay1vdmVyZmxvdy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3MvdGFpbC1jYWxsLW5vLXN0YWNrLW92ZXJmbG93LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiODEyNzM3MmM5NjU5Mjk1YjgyOGQzYTllZTBlMjUwODQ5NWJlNjkxLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvdGFpbC1jYWxsLW5vLXN0YWNrLW92ZXJmbG93LmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJy
b3JNZXNzYWdlKSB7Ci0gICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7Ci0gICAgdmFyIGVycm9y
ID0gbnVsbDsKLSAgICB0cnkgewotICAgICAgICBmdW5jKCk7Ci0gICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICBlcnJvclRocm93biA9IHRydWU7Ci0gICAgICAgIGVycm9yID0gZTsKLSAgICB9Ci0g
ICAgaWYgKCFlcnJvclRocm93bikKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdub3QgdGhyb3du
Jyk7Ci0gICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGVycm9yTWVzc2FnZSkKLSAgICAgICAgdGhy
b3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6ICR7U3RyaW5nKGVycm9yKX1gKTsKLX0KLQotZnVuY3Rp
b24gc2xvcHB5TG9vcChuKSB7Ci0gICAgaWYgKG4gPiAwKQotICAgICAgICByZXR1cm4gc2xvcHB5
TG9vcChuIC0gMSk7Ci19Ci0KLWZ1bmN0aW9uIHN0cmljdExvb3AobikgewotICAgICJ1c2Ugc3Ry
aWN0IjsKLSAgICBpZiAobiA+IDApCi0gICAgICAgIHJldHVybiBzdHJpY3RMb29wKG4gLSAxKTsK
LX0KLQotLy8gV2UgaGF2ZSB0d28gb2YgdGhlc2Ugc28gdGhhdCB3ZSBjYW4gdGVzdCBkaWZmZXJl
bnQgc3RhY2sgYWxpZ25tZW50cwotZnVuY3Rpb24gc3RyaWN0TG9vcEFyaXR5Rml4dXAxKG4sIGR1
bW15KSB7Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIGlmIChuID4gMCkKLSAgICAgICAgcmV0dXJu
IHN0cmljdExvb3BBcml0eUZpeHVwMShuIC0gMSk7Ci19Ci0KLWZ1bmN0aW9uIHN0cmljdExvb3BB
cml0eUZpeHVwMihuLCBkdW1teTEsIGR1bW15MikgewotICAgICJ1c2Ugc3RyaWN0IjsKLSAgICBp
ZiAobiA+IDApCi0gICAgICAgIHJldHVybiBzdHJpY3RMb29wQXJpdHlGaXh1cDIobiAtIDEpOwot
fQotCi1zaG91bGRUaHJvdyhmdW5jdGlvbiAoKSB7IHNsb3BweUxvb3AoMTAwMDAwKTsgfSwgJ1Jh
bmdlRXJyb3I6IE1heGltdW0gY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkLicpOwotCi0vLyBUaGVz
ZSBzaG91bGQgbm90IHRocm93Ci1zdHJpY3RMb29wKDEwMDAwMCk7Ci1zdHJpY3RMb29wQXJpdHlG
aXh1cDEoMTAwMDAwMCk7Ci1zdHJpY3RMb29wQXJpdHlGaXh1cDIoMTAwMDAwMCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RhaWwtY2FsbC1yZWNvZ25p
emUuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RhaWwtY2FsbC1yZWNv
Z25pemUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0ZmJlNWUzYjc4NmFmNDU2
YTMzYzc5MjhjZGQ1MDlhMTJkMWI5ZDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90YWlsLWNh
bGwtcmVjb2duaXplLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTc4ICswLDAgQEAKLWZ1bmN0aW9u
IGNhbGxlck11c3RCZVJ1bigpIHsKLSAgICBpZiAoIU9iamVjdC5pcyhjYWxsZXJNdXN0QmVSdW4u
Y2FsbGVyLCBydW5UZXN0cykpCi0gICAgICAgIHRocm93IEVycm9yKCJXcm9uZyBjYWxsZXIsIGV4
cGVjdGVkIHJ1biBidXQgZ290ICIsIGNhbGxlck11c3RCZVJ1bi5jYWxsZXIpOwotfQotCi1mdW5j
dGlvbiBjYWxsZXJNdXN0QmVTdHJpY3QoKSB7Ci0gICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7
Ci0gICAgdHJ5IHsKLSAgICAgICAgY2FsbGVyTXVzdEJlU3RyaWN0LmNhbGxlcjsKLSAgICB9IGNh
dGNoIChlKSB7Ci0gICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKCFl
cnJvclRocm93bikKLSAgICAgICAgdGhyb3cgRXJyb3IoIldyb25nIGNhbGxlciwgZXhwZWN0ZWQg
c3RyaWN0IGNhbGxlciBidXQgZ290ICIsIGNhbGxlck11c3RCZVN0cmljdC5jYWxsZXIpOwotfQot
Ci1mdW5jdGlvbiBydW5UZXN0cygpIHsKLSAgICAvLyBTdGF0ZW1lbnQgdGVzdHMKLSAgICAoZnVu
Y3Rpb24gc2ltcGxlVGFpbENhbGwoKSB7Ci0gICAgICAgICJ1c2Ugc3RyaWN0IjsKLSAgICAgICAg
cmV0dXJuIGNhbGxlck11c3RCZVJ1bigpOwotICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24gbm9U
YWlsQ2FsbEluVHJ5KCkgewotICAgICAgICAidXNlIHN0cmljdCI7Ci0gICAgICAgIHRyeSB7Ci0g
ICAgICAgICAgICByZXR1cm4gY2FsbGVyTXVzdEJlU3RyaWN0KCk7Ci0gICAgICAgIH0gY2F0Y2gg
KGUpIHsKLSAgICAgICAgICAgIHRocm93IGU7Ci0gICAgICAgIH0KLSAgICB9KSgpOwotCi0gICAg
KGZ1bmN0aW9uIHRhaWxDYWxsSW5DYXRjaCgpIHsKLSAgICAgICAgInVzZSBzdHJpY3QiOwotICAg
ICAgICB0cnkgeyB9IGNhdGNoIChlKSB7IHJldHVybiBjYWxsZXJNdXN0QmVSdW4oKTsgfQotICAg
IH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24gdGFpbENhbGxJbkZpbmFsbHkoKSB7Ci0gICAgICAgICJ1
c2Ugc3RyaWN0IjsKLSAgICAgICAgdHJ5IHsgfSBmaW5hbGx5IHsgcmV0dXJuIGNhbGxlck11c3RC
ZVJ1bigpOyB9Ci0gICAgfSkoKTsKLQotICAgIChmdW5jdGlvbiB0YWlsQ2FsbEluRmluYWxseVdp
dGhDYXRjaCgpIHsKLSAgICAgICAgInVzZSBzdHJpY3QiOwotICAgICAgICB0cnkgeyB9IGNhdGNo
IChlKSB7IH0gZmluYWxseSB7IHJldHVybiBjYWxsZXJNdXN0QmVSdW4oKTsgfQotICAgIH0pKCk7
Ci0KLSAgICAoZnVuY3Rpb24gdGFpbENhbGxJbkZpbmFsbHlXaXRoQ2F0Y2hUYWtlbigpIHsKLSAg
ICAgICAgInVzZSBzdHJpY3QiOwotICAgICAgICB0cnkgeyB0aHJvdyBudWxsOyB9IGNhdGNoIChl
KSB7IH0gZmluYWxseSB7IHJldHVybiBjYWxsZXJNdXN0QmVSdW4oKTsgfQotICAgIH0pKCk7Ci0K
LSAgICAoZnVuY3Rpb24gbm9UYWlsQ2FsbEluQ2F0Y2hJZkZpbmFsbHkoKSB7Ci0gICAgICAgICJ1
c2Ugc3RyaWN0IjsKLSAgICAgICAgdHJ5IHsgdGhyb3cgbnVsbDsgfSBjYXRjaCAoZSkgeyByZXR1
cm4gY2FsbGVyTXVzdEJlU3RyaWN0KCk7IH0gZmluYWxseSB7IH0KLSAgICB9KSgpOwotCi0gICAg
KGZ1bmN0aW9uIHRhaWxDYWxsSW5Gb3IoKSB7Ci0gICAgICAgICJ1c2Ugc3RyaWN0IjsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgKytpKQotICAgICAgICAgICAgcmV0dXJuIGNhbGxl
ck11c3RCZVJ1bigpOwotICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24gdGFpbENhbGxJbldoaWxl
KCkgewotICAgICAgICAidXNlIHN0cmljdCI7Ci0gICAgICAgIHdoaWxlICh0cnVlKQotICAgICAg
ICAgICAgcmV0dXJuIGNhbGxlck11c3RCZVJ1bigpOwotICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rp
b24gdGFpbENhbGxJbkRvV2hpbGUoKSB7Ci0gICAgICAgICJ1c2Ugc3RyaWN0IjsKLSAgICAgICAg
ZG8KLSAgICAgICAgICAgIHJldHVybiBjYWxsZXJNdXN0QmVSdW4oKTsKLSAgICAgICAgd2hpbGUg
KHRydWUpOwotICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24gbm9UYWlsQ2FsbEluRm9ySW4oKSB7
Ci0gICAgICAgICJ1c2Ugc3RyaWN0IjsKLSAgICAgICAgZm9yICh2YXIgeCBpbiBbMSwgMl0pCi0g
ICAgICAgICAgICByZXR1cm4gY2FsbGVyTXVzdEJlU3RyaWN0KCk7Ci0gICAgfSkoKTsKLQotICAg
IChmdW5jdGlvbiBub1RhaWxDYWxsSW5Gb3JPZigpIHsKLSAgICAgICAgInVzZSBzdHJpY3QiOwot
ICAgICAgICBmb3IgKHZhciB4IG9mIFsxLCAyXSkKLSAgICAgICAgICAgIHJldHVybiBjYWxsZXJN
dXN0QmVTdHJpY3QoKTsKLSAgICB9KSgpOwotCi0gICAgKGZ1bmN0aW9uIHRhaWxDYWxsSW5JZigp
IHsKLSAgICAgICAgInVzZSBzdHJpY3QiOwotICAgICAgICBpZiAodHJ1ZSkKLSAgICAgICAgICAg
IHJldHVybiBjYWxsZXJNdXN0QmVSdW4oKTsKLSAgICB9KSgpOwotCi0gICAgKGZ1bmN0aW9uIHRh
aWxDYWxsSW5FbHNlKCkgewotICAgICAgICAidXNlIHN0cmljdCI7Ci0gICAgICAgIGlmIChmYWxz
ZSkgdGhyb3cgbmV3IEVycm9yKCJXVEYiKTsKLSAgICAgICAgZWxzZSByZXR1cm4gY2FsbGVyTXVz
dEJlUnVuKCk7Ci0gICAgfSkoKTsKLQotICAgIChmdW5jdGlvbiB0YWlsQ2FsbEluU3dpdGNoQ2Fz
ZSgpIHsKLSAgICAgICAgInVzZSBzdHJpY3QiOwotICAgICAgICBzd2l0Y2ggKDApIHsKLSAgICAg
ICAgY2FzZSAwOiByZXR1cm4gY2FsbGVyTXVzdEJlUnVuKCk7Ci0gICAgICAgIH0KLSAgICB9KSgp
OwotCi0gICAgKGZ1bmN0aW9uIHRhaWxDYWxsSW5Td2l0Y2hEZWZhdWx0KCkgewotICAgICAgICAi
dXNlIHN0cmljdCI7Ci0gICAgICAgIHN3aXRjaCAoMCkgewotICAgICAgICBkZWZhdWx0OiByZXR1
cm4gY2FsbGVyTXVzdEJlUnVuKCk7Ci0gICAgICAgIH0KLSAgICB9KSgpOwotCi0gICAgKGZ1bmN0
aW9uIHRhaWxDYWxsV2l0aExhYmVsKCkgewotICAgICAgICAidXNlIHN0cmljdCI7Ci0gICAgICAg
IGR1bW15OiByZXR1cm4gY2FsbGVyTXVzdEJlUnVuKCk7Ci0gICAgfSkoKTsKLQotICAgIC8vIEV4
cHJlc3Npb24gdGVzdHMsIHdlIGRvbid0IGVudW1lcmF0ZSBhbGwgdGhlIGNhc2VzIHdoZXJlIHRo
ZXJlCi0gICAgLy8gKnNob3VsZG4ndCogYmUgYSB0YWlsIGNhbGwKLQotICAgIChmdW5jdGlvbiB0
YWlsQ2FsbENvbW1hKCkgewotICAgICAgICAidXNlIHN0cmljdCI7Ci0gICAgICAgIHJldHVybiBj
YWxsZXJNdXN0QmVTdHJpY3QoKSwgY2FsbGVyTXVzdEJlUnVuKCk7Ci0gICAgfSkoKTsKLQotICAg
IChmdW5jdGlvbiB0YWlsQ2FsbFRlcm5hcnlMZWZ0KCkgewotICAgICAgICAidXNlIHN0cmljdCI7
Ci0gICAgICAgIHJldHVybiB0cnVlID8gY2FsbGVyTXVzdEJlUnVuKCkgOiB1bnJlYWNoYWJsZSgp
OwotICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24gdGFpbENhbGxUZXJuYXJ5UmlnaHQoKSB7Ci0g
ICAgICAgICJ1c2Ugc3RyaWN0IjsKLSAgICAgICAgcmV0dXJuIGZhbHNlID8gdW5yZWFjaGFibGUo
KSA6IGNhbGxlck11c3RCZVJ1bigpOwotICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24gdGFpbENh
bGxMb2dpY2FsQW5kKCkgewotICAgICAgICAidXNlIHN0cmljdCI7Ci0gICAgICAgIHJldHVybiB0
cnVlICYmIGNhbGxlck11c3RCZVJ1bigpOwotICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24gdGFp
bENhbGxMb2dpY2FsT3IoKSB7Ci0gICAgICAgICJ1c2Ugc3RyaWN0IjsKLSAgICAgICAgcmV0dXJu
IGZhbHNlIHx8IGNhbGxlck11c3RCZVJ1bigpOwotICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24g
bWVtYmVyVGFpbENhbGwoKSB7Ci0gICAgICAgICJ1c2Ugc3RyaWN0IjsKLSAgICAgICAgcmV0dXJu
IHsgZjogY2FsbGVyTXVzdEJlUnVuIH0uZigpOwotICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24g
YmluZFRhaWxDYWxsKCkgewotICAgICAgICAidXNlIHN0cmljdCI7Ci0gICAgICAgIHJldHVybiBj
YWxsZXJNdXN0QmVSdW4uYmluZCgpKCk7Ci0gICAgfSkoKTsKLQotICAgIC8vIEZ1bmN0aW9uLnBy
b3RvdHlwZSB0ZXN0cwotCi0gICAgKGZ1bmN0aW9uIGFwcGx5VGFpbENhbGwoKSB7Ci0gICAgICAg
ICJ1c2Ugc3RyaWN0IjsKLSAgICAgICAgcmV0dXJuIGNhbGxlck11c3RCZVJ1bi5hcHBseSgpOwot
ICAgIH0pKCk7Ci0KLSAgICAoZnVuY3Rpb24gY2FsbFRhaWxDYWxsKCkgewotICAgICAgICAidXNl
IHN0cmljdCI7Ci0gICAgICAgIHJldHVybiBjYWxsZXJNdXN0QmVSdW4uY2FsbCgpOwotICAgIH0p
KCk7Ci0KLSAgICAvLyBObyB0YWlsIGNhbGwgZm9yIGNvbnN0cnVjdG9ycwotICAgIChmdW5jdGlv
biBub1RhaWxDb25zdHJ1Y3QoKSB7Ci0gICAgICAgICJ1c2Ugc3RyaWN0IjsKLSAgICAgICAgcmV0
dXJuIG5ldyBjYWxsZXJNdXN0QmVTdHJpY3QoKTsKLSAgICB9KSgpOwotfQotCi1mb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwOyArK2kpCi0gICAgcnVuVGVzdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvdGFpbC1jYWxsLXZhcmFyZ3Mtbm8tc3RhY2st
b3ZlcmZsb3cuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3RhaWwtY2Fs
bC12YXJhcmdzLW5vLXN0YWNrLW92ZXJmbG93LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhMjlhM2UwM2I4NzQ2NjA0NDljM2E1ZjVkYWI5NzA3MTY5MzJhN2I5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdGFpbC1jYWxsLXZhcmFyZ3Mtbm8tc3RhY2stb3ZlcmZsb3cuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1mdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBl
cnJvck1lc3NhZ2UpIHsKLSAgICB2YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsKLSAgICB2YXIgZXJy
b3IgPSBudWxsOwotICAgIHRyeSB7Ci0gICAgICAgIGZ1bmMoKTsKLSAgICB9IGNhdGNoIChlKSB7
Ci0gICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKLSAgICAgICAgZXJyb3IgPSBlOwotICAgIH0K
LSAgICBpZiAoIWVycm9yVGhyb3duKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB0aHJv
d24nKTsKLSAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQotICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3IpfWApOwotfQotCi1mdW5j
dGlvbiBzbG9wcHlMb29wKG4pIHsKLSAgICBpZiAobiA+IDApCi0gICAgICAgIHJldHVybiBzbG9w
cHlMb29wKC4uLltuIC0gMV0pOwotfQotCi1mdW5jdGlvbiBzdHJpY3RMb29wKG4pIHsKLSAgICAi
dXNlIHN0cmljdCI7Ci0gICAgaWYgKG4gPiAwKQotICAgICAgICByZXR1cm4gc3RyaWN0TG9vcCgu
Li5bbiAtIDFdKTsKLX0KLQotc2hvdWxkVGhyb3coZnVuY3Rpb24gKCkgeyBzbG9wcHlMb29wKDEw
MDAwMCk7IH0sICdSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4n
KTsKLXN0cmljdExvb3AoMTAwMDAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvdGFpbC1jYWxscy1kb250LW92ZXJ3cml0ZS1saXZlLXN0YWNrLmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90YWlsLWNhbGxzLWRvbnQtb3Zlcndy
aXRlLWxpdmUtc3RhY2suanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5NTYzZDFk
Mjg3YjY3NmRlMGVkOWFiMmRkN2RiYjJkOWJlN2YzMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVz
cy90YWlsLWNhbGxzLWRvbnQtb3ZlcndyaXRlLWxpdmUtc3RhY2suanMKKysrIC9kZXYvbnVsbApA
QCAtMSwzMCArMCwwIEBACi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIHRhaWwoYSwgYikgeyB9
Ci1ub0lubGluZSh0YWlsKTsKLQotdmFyIG9iaiA9IHsKLSAgICBtZXRob2Q6IGZ1bmN0aW9uICh4
KSB7Ci0gICAgICAgIHJldHVybiB0YWlsKHgsIHgpOwotICAgIH0sCi0KLSAgICBnZXQgZnJvbU5h
dGl2ZSgpIHsgcmV0dXJuIHRhaWwoMCwgMCk7IH0KLX07Ci1ub0lubGluZShvYmoubWV0aG9kKTsK
LQotZnVuY3Rpb24gZ2V0VGhpcyh4KSB7IHJldHVybiB0aGlzOyB9Ci1ub0lubGluZShnZXRUaGlz
KTsKLQotZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7Ci0gICAgdmFyIHRoYXQgPSBn
ZXRUaGlzKG9iai5tZXRob2QoNDIpKTsKLQotICAgIGlmICghT2JqZWN0LmlzKHRoYXQsIHVuZGVm
aW5lZCkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgJ3RoaXMnIHZhbHVlIGluIGNh
bGwsIGV4cGVjdGVkIHVuZGVmaW5lZCBidXQgZ290ICIgKyB0aGF0KTsKLQotICAgIHRoYXQgPSBn
ZXRUaGlzKG9iai5tZXRob2QoLi4uWzQyXSkpOwotICAgIGlmICghT2JqZWN0LmlzKHRoYXQsIHVu
ZGVmaW5lZCkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgJ3RoaXMnIHZhbHVlIGlu
IHZhcmFyZ3MgY2FsbCwgZXhwZWN0ZWQgdW5kZWZpbmVkIGJ1dCBnb3QgIiArIHRoYXQpOwotCi0g
ICAgaWYgKCFPYmplY3QuaXMob2JqLmZyb21OYXRpdmUsIHVuZGVmaW5lZCkpCi0gICAgICAgIHRo
cm93IG5ldyBFcnJvcigiV3JvbmcgJ2Zyb21OYXRpdmUnIHZhbHVlLCBleHBlY3RlZCB1bmRlZmlu
ZWQgYnV0IGdvdCAiICsgb2JqLmZyb21OYXRpdmUpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIxNzA2OWVhY2VhYTNk
NGM4ODJlZjc3ZDY0NjFmY2IyYTE2NDBjZjIuLmRmZjcxMGQzMTI2NGI1MmMzZjI2MTk5OTYzYmJi
ZjFkYmFlZmZmMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0wOS0yOSAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE5MDI4OS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0OTY0NworCisgICAgICAgIENyYXNoaW5nIHNwZWVkb21ldGVyIGFuZCBzb21l
IEFSTTMyIHRlc3RzIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgbXNhYm9mZiBvbiAjd2Via2l0KS4K
KworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIltFUzZdIEltcGxlbWVu
dCB0YWlsIGNhbGxzIGluIHRoZSBGVEwiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDg2NjQKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMTkwMjg5CisKIDIwMTUtMDktMjkgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gUmViYXNlbGluZSB0ZXN0LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvY2FsbGVyLXByb3BlcnR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2pzL2NhbGxlci1wcm9wZXJ0eS1leHBlY3RlZC50eHQKaW5kZXggZTU1NDQ2MjQ3MzNjMDcyMGYz
ZTRhZGU1MTA2YWQ2ZDVlYWQzZjNmMi4uOTgwYWZkOGY5OTJmM2U5MGY1N2E5NDY4ZmVlZGViOTUz
ZjE4MjY0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvY2FsbGVyLXByb3BlcnR5LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9jYWxsZXItcHJvcGVydHktZXhwZWN0ZWQudHh0
CkBAIC0xMCwxNCArMTAsMTAgQEAgUEFTUyBub25TdHJpY3RDYWxsZXIobm9uU3RyaWN0Q2FsbGVl
KSBpcyBub25TdHJpY3RDYWxsZXIKIFBBU1Mgbm9uU3RyaWN0Q2FsbGVyKHN0cmljdENhbGxlZSkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc3RyaWN0Q2FsbGVy
KG5vblN0cmljdENhbGxlZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRnVuY3Rpb24uY2Fs
bGVyIHVzZWQgdG8gcmV0cmlldmUgc3RyaWN0IGNhbGxlci4KIFBBU1Mgc3RyaWN0Q2FsbGVyKHN0
cmljdENhbGxlZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1Mg
c3RyaWN0VGFpbENhbGxlcihub25TdHJpY3RDYWxsZWUpIGlzIG51bGwKLVBBU1Mgc3RyaWN0VGFp
bENhbGxlcihzdHJpY3RDYWxsZWUpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCiBQQVNTIG5vblN0cmljdENhbGxlcihib3VuZE5vblN0cmljdENhbGxlZSkgaXMgbm9uU3Ry
aWN0Q2FsbGVyCiBQQVNTIG5vblN0cmljdENhbGxlcihib3VuZFN0cmljdENhbGxlZSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgc3RyaWN0Q2FsbGVyKGJvdW5k
Tm9uU3RyaWN0Q2FsbGVlKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBGdW5jdGlvbi5jYWxs
ZXIgdXNlZCB0byByZXRyaWV2ZSBzdHJpY3QgY2FsbGVyLgogUEFTUyBzdHJpY3RDYWxsZXIoYm91
bmRTdHJpY3RDYWxsZWUpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1Q
QVNTIHN0cmljdFRhaWxDYWxsZXIoYm91bmROb25TdHJpY3RDYWxsZWUpIGlzIG51bGwKLVBBU1Mg
c3RyaWN0VGFpbENhbGxlcihib3VuZFN0cmljdENhbGxlZSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KIFBBU1Mgbm9uU3RyaWN0R2V0dGVyKG5vblN0cmljdEFjY2Vzc29y
KSBpcyBub25TdHJpY3RHZXR0ZXIKIFBBU1Mgbm9uU3RyaWN0U2V0dGVyKG5vblN0cmljdEFjY2Vz
c29yKSBpcyB0cnVlCiBQQVNTIG5vblN0cmljdEdldHRlcihzdHJpY3RBY2Nlc3NvcikgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2pzL3NjcmlwdC10ZXN0cy9jYWxsZXItcHJvcGVydHkuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3Jp
cHQtdGVzdHMvY2FsbGVyLXByb3BlcnR5LmpzCmluZGV4IDcwNDhmMGQ3NmQ0MTZkNWIzOWU5MTJl
Y2IyYTE2YzE3NmJkNjcyZDkuLmI3OWYyNzcyZjg2OWJiNWNkOWQ1NmVkZWMwYTQ4NWU3OGZlMzQy
MzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jYWxsZXItcHJvcGVy
dHkuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NhbGxlci1wcm9wZXJ0eS5q
cwpAQCAtMjMsMTUgKzIzLDExIEBAIHNob3VsZEJlKCdjaGlsZEhhc0NhbGxlcldoZW5DYWxsZWRG
cm9tV2l0aGluUGFyZW50JywgJ3RydWUnKQogZnVuY3Rpb24gbm9uU3RyaWN0Q2FsbGVlKCkgeyBy
ZXR1cm4gbm9uU3RyaWN0Q2FsbGVlLmNhbGxlcjsgfQogZnVuY3Rpb24gc3RyaWN0Q2FsbGVlKCkg
eyAidXNlIHN0cmljdCI7IHJldHVybiBzdHJpY3RDYWxsZWUuY2FsbGVyOyB9CiBmdW5jdGlvbiBu
b25TdHJpY3RDYWxsZXIoeCkgeyByZXR1cm4geCgpOyB9Ci0vLyBUYWlsIGNhbGxzIGxlYWsgYW5k
IHNob3cgb3VyIGNhbGxlcidzIGNhbGxlciwgd2hpY2ggaXMgbnVsbCBoZXJlCi1mdW5jdGlvbiBz
dHJpY3RDYWxsZXIoeCkgeyAidXNlIHN0cmljdCI7IHZhciByZXN1bHQgPSB4KCk7IHJldHVybiBy
ZXN1bHQ7IH0KLWZ1bmN0aW9uIHN0cmljdFRhaWxDYWxsZXIoeCkgeyAidXNlIHN0cmljdCI7IHJl
dHVybiB4KCk7IH0KK2Z1bmN0aW9uIHN0cmljdENhbGxlcih4KSB7ICJ1c2Ugc3RyaWN0IjsgcmV0
dXJuIHgoKTsgfQogc2hvdWxkQmUoIm5vblN0cmljdENhbGxlcihub25TdHJpY3RDYWxsZWUpIiwg
Im5vblN0cmljdENhbGxlciIpOwogc2hvdWxkVGhyb3coIm5vblN0cmljdENhbGxlcihzdHJpY3RD
YWxsZWUpIiwgJyJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiJyk7CiBzaG91bGRUaHJvdygic3RyaWN0
Q2FsbGVyKG5vblN0cmljdENhbGxlZSkiLCAnIlR5cGVFcnJvcjogRnVuY3Rpb24uY2FsbGVyIHVz
ZWQgdG8gcmV0cmlldmUgc3RyaWN0IGNhbGxlciInKTsKIHNob3VsZFRocm93KCJzdHJpY3RDYWxs
ZXIoc3RyaWN0Q2FsbGVlKSIsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicpOwotc2hvdWxkQmUo
InN0cmljdFRhaWxDYWxsZXIobm9uU3RyaWN0Q2FsbGVlKSIsICJudWxsIik7Ci1zaG91bGRUaHJv
dygic3RyaWN0VGFpbENhbGxlcihzdHJpY3RDYWxsZWUpIiwgJyJUeXBlRXJyb3I6IFR5cGUgZXJy
b3IiJyk7CiAKIC8vIC5jYWxsZXIgd2l0aGluIGEgYm91bmQgZnVuY3Rpb24gcmVhY2hlcyB0aGUg
Y2FsbGVyLCBpZ25vcmluZyB0aGUgYmluZGluZy4KIHZhciBib3VuZE5vblN0cmljdENhbGxlZSA9
IG5vblN0cmljdENhbGxlZS5iaW5kKCk7CkBAIC00MCw4ICszNiw2IEBAIHNob3VsZEJlKCJub25T
dHJpY3RDYWxsZXIoYm91bmROb25TdHJpY3RDYWxsZWUpIiwgIm5vblN0cmljdENhbGxlciIpOwog
c2hvdWxkVGhyb3coIm5vblN0cmljdENhbGxlcihib3VuZFN0cmljdENhbGxlZSkiLCAnIlR5cGVF
cnJvcjogVHlwZSBlcnJvciInKTsKIHNob3VsZFRocm93KCJzdHJpY3RDYWxsZXIoYm91bmROb25T
dHJpY3RDYWxsZWUpIiwgJyJUeXBlRXJyb3I6IEZ1bmN0aW9uLmNhbGxlciB1c2VkIHRvIHJldHJp
ZXZlIHN0cmljdCBjYWxsZXIiJyk7CiBzaG91bGRUaHJvdygic3RyaWN0Q2FsbGVyKGJvdW5kU3Ry
aWN0Q2FsbGVlKSIsICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicpOwotc2hvdWxkQmUoInN0cmlj
dFRhaWxDYWxsZXIoYm91bmROb25TdHJpY3RDYWxsZWUpIiwgIm51bGwiKTsKLXNob3VsZFRocm93
KCJzdHJpY3RUYWlsQ2FsbGVyKGJvdW5kU3RyaWN0Q2FsbGVlKSIsICciVHlwZUVycm9yOiBUeXBl
IGVycm9yIicpOwogCiAvLyBDaGVjayB0aGF0IC5jYWxsZXIgd29ya3MgKG9yIHRocm93cykgYXMg
ZXhwZWN0ZWQsIG92ZXIgYW4gYWNjZXNzb3IgY2FsbC4KIGZ1bmN0aW9uIGdldEZvb0dldHRlcih4
KSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHgsICdmb28nKS5nZXQ7
IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>