<?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>148029</bug_id>
          
          <creation_ts>2015-08-14 09:50:55 -0700</creation_ts>
          <short_desc>REGRESSION(r188444): Broke GTK and EFL (see bug #148027) (Requested by philn on #webkit).</short_desc>
          <delta_ts>2015-08-14 16:35:09 -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>528+ (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>147999</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>ggaren</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1117653</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-14 09:50:55 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/188444 broke the build:
Broke GTK and EFL (see bug #148027) (Requested by philn 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>1117655</commentid>
    <comment_count>1</comment_count>
      <attachid>259006</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-14 09:51:19 -0700</bug_when>
    <thetext>Created attachment 259006
ROLLOUT of r188444

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>1117656</commentid>
    <comment_count>2</comment_count>
      <attachid>259006</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-14 09:53:58 -0700</bug_when>
    <thetext>Comment on attachment 259006
ROLLOUT of r188444

Clearing flags on attachment: 259006

Committed r188475: &lt;http://trac.webkit.org/changeset/188475&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117657</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-14 09:54:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117826</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-08-14 16:35:09 -0700</bug_when>
    <thetext>*** Bug 148027 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259006</attachid>
            <date>2015-08-14 09:51:19 -0700</date>
            <delta_ts>2015-08-14 09:53:58 -0700</delta_ts>
            <desc>ROLLOUT of r188444</desc>
            <filename>bug-148029-20150814095100.patch</filename>
            <type>text/plain</type>
            <size>58098</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
OWFkYmY4ZDQzYmE2ZjZlOTY3YTlmNGYwODQ4YjFmYTFkYjQzMGUyLi45NTYxZjMxMTE4YWU3YzY1
ZmNjMzRiNTg1MGUzODE3OGEyMjVmYjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxNS0wOC0xNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4ODQ0NC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODAyOQorCisgICAg
ICAgIEJyb2tlIEdUSyBhbmQgRUZMIChzZWUgYnVnICMxNDgwMjcpIChSZXF1ZXN0ZWQgYnkgcGhp
bG4gb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0Ogor
CisgICAgICAgICJVc2UgV1RGOjpMb2NrIGFuZCBXVEY6OkNvbmRpdGlvbiBpbnN0ZWFkIG9mIFdU
Rjo6TXV0ZXgsCisgICAgICAgIFdURjo6VGhyZWFkQ29uZGl0aW9uLCBzdGQ6Om11dGV4LCBhbmQg
c3RkOjpjb25kaXRpb25fdmFyaWFibGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDc5OTkKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMTg4NDQ0CisKIDIwMTUtMDgtMTMgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KIAogICAgICAgICBVc2UgV1RGOjpMb2NrIGFuZCBXVEY6OkNvbmRpdGlvbiBpbnN0ZWFk
IG9mIFdURjo6TXV0ZXgsIFdURjo6VGhyZWFkQ29uZGl0aW9uLCBzdGQ6Om11dGV4LCBhbmQgc3Rk
Ojpjb25kaXRpb25fdmFyaWFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNmQ0M2I1YjNmMDZhODdjMzNkYzUxYmE1NmEyMDZj
YmU3N2FjYWQ3Ny4uYjYxMDFjMmU5ZWI4YTAzMjJkMTRjZDFhM2NjZmY5Y2JmMzI3NjRiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAxNS0wOC0xNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4ODQ0NC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODAyOQor
CisgICAgICAgIEJyb2tlIEdUSyBhbmQgRUZMIChzZWUgYnVnICMxNDgwMjcpIChSZXF1ZXN0ZWQg
YnkgcGhpbG4gb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdl
c2V0OgorCisgICAgICAgICJVc2UgV1RGOjpMb2NrIGFuZCBXVEY6OkNvbmRpdGlvbiBpbnN0ZWFk
IG9mIFdURjo6TXV0ZXgsCisgICAgICAgIFdURjo6VGhyZWFkQ29uZGl0aW9uLCBzdGQ6Om11dGV4
LCBhbmQgc3RkOjpjb25kaXRpb25fdmFyaWFibGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc5OTkKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTg4NDQ0CisKIDIwMTUtMDgtMTMgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgV1RGOjpMb2NrIGFuZCBXVEY6OkNvbmRpdGlvbiBp
bnN0ZWFkIG9mIFdURjo6TXV0ZXgsIFdURjo6VGhyZWFkQ29uZGl0aW9uLCBzdGQ6Om11dGV4LCBh
bmQgc3RkOjpjb25kaXRpb25fdmFyaWFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWaXJ0dWFsTWFjaGluZS5tbQppbmRleCA5YWE5MmQ0MjdiOGEzY2U0M2E5NzVjYmU3MWI1OWYw
YmE0OGMxZWFjLi5kNDk5NWFkOTI1YTMxNTJmOGYyZTAyZGUwYmFiMzQ5NGFmMjg1YTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNiwxMyAr
MzYsMTcgQEAKICNpbXBvcnQgIkpTV3JhcHBlck1hcC5oIgogI2ltcG9ydCAiU2xvdFZpc2l0b3JJ
bmxpbmVzLmgiCiAjaW1wb3J0IDxtdXRleD4KLSNpbXBvcnQgPHd0Zi9Mb2NrLmg+CiAjaW1wb3J0
IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbXBvcnQgPHd0Zi9zcGkvY29jb2EvTlNNYXBUYWJs
ZVNQSS5oPgogCiBzdGF0aWMgTlNNYXBUYWJsZSAqZ2xvYmFsV3JhcHBlckNhY2hlID0gMDsKIAot
c3RhdGljIFN0YXRpY0xvY2sgd3JhcHBlckNhY2hlTXV0ZXg7CitzdGF0aWMgc3RkOjptdXRleCYg
d3JhcHBlckNhY2hlTXV0ZXgoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6Om11
dGV4PiBtdXRleDsKKworICAgIHJldHVybiBtdXRleDsKK30KIAogc3RhdGljIHZvaWQgaW5pdFdy
YXBwZXJDYWNoZSgpCiB7CkBAIC02OCwxMyArNzIsMTMgQEAgc3RhdGljIE5TTWFwVGFibGUgKndy
YXBwZXJDYWNoZSgpCiAKICsgKHZvaWQpYWRkV3JhcHBlcjooSlNWaXJ0dWFsTWFjaGluZSAqKXdy
YXBwZXIgZm9ySlNDb250ZXh0R3JvdXBSZWY6KEpTQ29udGV4dEdyb3VwUmVmKWdyb3VwCiB7Ci0g
ICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2sod3JhcHBlckNhY2hlTXV0ZXgpOwor
ICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKHdyYXBwZXJDYWNoZU11dGV4KCkp
OwogICAgIE5TTWFwSW5zZXJ0KHdyYXBwZXJDYWNoZSgpLCBncm91cCwgd3JhcHBlcik7CiB9CiAK
ICsgKEpTVmlydHVhbE1hY2hpbmUgKil3cmFwcGVyRm9ySlNDb250ZXh0R3JvdXBSZWY6KEpTQ29u
dGV4dEdyb3VwUmVmKWdyb3VwCiB7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxv
Y2sod3JhcHBlckNhY2hlTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBs
b2NrKHdyYXBwZXJDYWNoZU11dGV4KCkpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU1ZpcnR1
YWxNYWNoaW5lICo+KE5TTWFwR2V0KHdyYXBwZXJDYWNoZSgpLCBncm91cCkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU2FtcGxpbmdUb29sLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TYW1wbGluZ1Rvb2wuY3BwCmluZGV4IGY1
YmYyYjcyYWI3MGEyMWViNzFlNjI2ZWMzYjFjNmVjYjYzNjM0MDYuLjEyZGJmMjQwZmNkYTJhNDQ1
YTVkNDkzZTAxNTA4ZGI5ZTNiMWQ5ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9TYW1wbGluZ1Rvb2wuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9TYW1wbGluZ1Rvb2wuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOCwgMjAwOSwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yODUsNyArMjg1LDcgQEAgdm9p
ZCBTYW1wbGluZ1Rvb2w6OmRvUnVuKCkKIAogI2lmIEVOQUJMRShDT0RFQkxPQ0tfU0FNUExJTkcp
CiAgICAgaWYgKENvZGVCbG9jayogY29kZUJsb2NrID0gc2FtcGxlLmNvZGVCbG9jaygpKSB7Ci0g
ICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fc2NyaXB0U2FtcGxlTWFwTXV0ZXgpOworICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9zY3JpcHRTYW1wbGVNYXBNdXRleCk7CiAgICAgICAgIFNj
cmlwdFNhbXBsZVJlY29yZCogcmVjb3JkID0gbV9zY29wZVNhbXBsZU1hcC0+Z2V0KGNvZGVCbG9j
ay0+b3duZXJFeGVjdXRhYmxlKCkpOwogICAgICAgICBBU1NFUlQocmVjb3JkKTsKICAgICAgICAg
cmVjb3JkLT5zYW1wbGUoY29kZUJsb2NrLCBzYW1wbGUudlBDKCkpOwpAQCAtMzAxLDcgKzMwMSw3
IEBAIHZvaWQgU2FtcGxpbmdUb29sOjpzYW1wbGUoKQogdm9pZCBTYW1wbGluZ1Rvb2w6Om5vdGlm
eU9mU2NvcGUoVk0mIHZtLCBTY3JpcHRFeGVjdXRhYmxlKiBzY3JpcHQpCiB7CiAjaWYgRU5BQkxF
KENPREVCTE9DS19TQU1QTElORykKLSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3NjcmlwdFNhbXBs
ZU1hcE11dGV4KTsKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9zY3JpcHRTYW1wbGVNYXBNdXRl
eCk7CiAgICAgbV9zY29wZVNhbXBsZU1hcC0+c2V0KHNjcmlwdCwgYWRvcHRQdHIobmV3IFNjcmlw
dFNhbXBsZVJlY29yZCh2bSwgc2NyaXB0KSkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odm0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NhbXBsaW5nVG9v
bC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1NhbXBsaW5nVG9vbC5oCmluZGV4
IDE4ZTM0ODM3N2EzM2VhODkwMGZmODg4YzgzM2RkYjUyMjM0ZGM1NTguLjQ0NzE0YzZmNDA1N2Nk
MzYzYmVmNzJhNzg2NDk4OTUzNDdhMmNiZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TYW1wbGluZ1Rvb2wuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvU2FtcGxpbmdUb29sLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1NwZWN0cnVtLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgpAQCAtMzM5LDcgKzMzOCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB1
bnNpZ25lZCBtX29wY29kZVNhbXBsZXNJbkNUSUZ1bmN0aW9uc1tudW1PcGNvZGVJRHNdOwogICAg
ICAgICAKICNpZiBFTkFCTEUoQ09ERUJMT0NLX1NBTVBMSU5HKQotICAgICAgICBMb2NrIG1fc2Ny
aXB0U2FtcGxlTWFwTXV0ZXg7CisgICAgICAgIE11dGV4IG1fc2NyaXB0U2FtcGxlTWFwTXV0ZXg7
CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JpcHRTYW1wbGVSZWNvcmRNYXA+IG1fc2NvcGVT
YW1wbGVNYXA7CiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdUaHJlYWREYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Ro
cmVhZERhdGEuaAppbmRleCBkODZjZjkwNzhhMzY4ZmE2NzNiMDM0YmQwYzViNDAzY2ZhMDQ2ZTE1
Li5lOWZjNTY1Y2I3NjYxMzUxYTFhZTE0YTZkOGI5MzBkODA5NDk0OGFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1RocmVhZERhdGEuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsOCArMjgsOCBAQAogCiAjaWYgRU5B
QkxFKERGR19KSVQpCiAKLSNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAg
ICAKICAgICBXb3JrbGlzdCogbV93b3JrbGlzdDsKICAgICBUaHJlYWRJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKLSAgICBMb2NrIG1fcmlnaHRUb1J1bjsKKyAgICBNdXRleCBtX3JpZ2h0VG9SdW47
CiAgICAgU2FmZXBvaW50KiBtX3NhZmVwb2ludDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdXb3JrbGlzdC5jcHAKaW5kZXggZjRiYjcwOWRjZmZiYzA5ZTViNjk3ZjE4ODE3OGUx
NWUwOWMxOTUyZC4uNGE4ZjU3MjI0OGQwY2JiNmQ4OGUyMWY0ZWJhNmFiZjRkZjRkMTY4NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5jcHAKQEAgLTQ2LDEwICs0Niwx
MCBAQCBXb3JrbGlzdDo6V29ya2xpc3QoQ1N0cmluZyB3b3JrbGlzdE5hbWUpCiBXb3JrbGlzdDo6
fldvcmtsaXN0KCkKIHsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7
CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSBtX3RocmVhZHMuc2l6ZSgpOyBpLS07KQogICAgICAgICAgICAgbV9xdWV1ZS5hcHBl
bmQobnVsbHB0cik7IC8vIFVzZSBudWxsIHBsYW4gdG8gaW5kaWNhdGUgdGhhdCB3ZSB3YW50IHRo
ZSB0aHJlYWQgdG8gdGVybWluYXRlLgotICAgICAgICBtX3BsYW5FbnF1ZXVlZC5ub3RpZnlBbGwo
KTsKKyAgICAgICAgbV9wbGFuRW5xdWV1ZWQuYnJvYWRjYXN0KCk7CiAgICAgfQogICAgIGZvciAo
dW5zaWduZWQgaSA9IG1fdGhyZWFkcy5zaXplKCk7IGktLTspCiAgICAgICAgIHdhaXRGb3JUaHJl
YWRDb21wbGV0aW9uKG1fdGhyZWFkc1tpXS0+bV9pZGVudGlmaWVyKTsKQEAgLTc3LDcgKzc3LDcg
QEAgUmVmPFdvcmtsaXN0PiBXb3JrbGlzdDo6Y3JlYXRlKENTdHJpbmcgd29ya2xpc3ROYW1lLCB1
bnNpZ25lZCBudW1iZXJPZlRocmVhZHMsIGkKIAogYm9vbCBXb3JrbGlzdDo6aXNBY3RpdmVGb3JW
TShWTSYgdm0pIGNvbnN0CiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICBN
dXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICBQbGFuTWFwOjpjb25zdF9pdGVyYXRvciBl
bmQgPSBtX3BsYW5zLmVuZCgpOwogICAgIGZvciAoUGxhbk1hcDo6Y29uc3RfaXRlcmF0b3IgaXRl
ciA9IG1fcGxhbnMuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikgewogICAgICAgICBpZiAo
Jml0ZXItPnZhbHVlLT52bSA9PSAmdm0pCkBAIC04OSw3ICs4OSw3IEBAIGJvb2wgV29ya2xpc3Q6
OmlzQWN0aXZlRm9yVk0oVk0mIHZtKSBjb25zdAogdm9pZCBXb3JrbGlzdDo6ZW5xdWV1ZShQYXNz
UmVmUHRyPFBsYW4+IHBhc3NlZFBsYW4pCiB7CiAgICAgUmVmUHRyPFBsYW4+IHBsYW4gPSBwYXNz
ZWRQbGFuOwotICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CiAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VDb21waWxhdGlvblF1ZXVl
KCkpIHsKICAgICAgICAgZHVtcChsb2NrZXIsIFdURjo6ZGF0YUZpbGUoKSk7CiAgICAgICAgIGRh
dGFMb2coIjogRW5xdWV1ZWluZyBwbGFuIHRvIG9wdGltaXplICIsIHBsYW4tPmtleSgpLCAiXG4i
KTsKQEAgLTk3LDEyICs5NywxMiBAQCB2b2lkIFdvcmtsaXN0OjplbnF1ZXVlKFBhc3NSZWZQdHI8
UGxhbj4gcGFzc2VkUGxhbikKICAgICBBU1NFUlQobV9wbGFucy5maW5kKHBsYW4tPmtleSgpKSA9
PSBtX3BsYW5zLmVuZCgpKTsKICAgICBtX3BsYW5zLmFkZChwbGFuLT5rZXkoKSwgcGxhbik7CiAg
ICAgbV9xdWV1ZS5hcHBlbmQocGxhbik7Ci0gICAgbV9wbGFuRW5xdWV1ZWQubm90aWZ5T25lKCk7
CisgICAgbV9wbGFuRW5xdWV1ZWQuc2lnbmFsKCk7CiB9CiAKIFdvcmtsaXN0OjpTdGF0ZSBXb3Jr
bGlzdDo6Y29tcGlsYXRpb25TdGF0ZShDb21waWxhdGlvbktleSBrZXkpCiB7Ci0gICAgTG9ja0hv
bGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAg
ICBQbGFuTWFwOjppdGVyYXRvciBpdGVyID0gbV9wbGFucy5maW5kKGtleSk7CiAgICAgaWYgKGl0
ZXIgPT0gbV9wbGFucy5lbmQoKSkKICAgICAgICAgcmV0dXJuIE5vdEtub3duOwpAQCAtMTE4LDcg
KzExOCw3IEBAIHZvaWQgV29ya2xpc3Q6OndhaXRVbnRpbEFsbFBsYW5zRm9yVk1BcmVSZWFkeShW
TSYgdm0pCiAgICAgLy8gQWZ0ZXIgd2UgcmVsZWFzZSB0aGlzIGxvY2ssIHdlIGtub3cgdGhhdCBh
bHRob3VnaCBvdGhlciBWTXMgbWF5IHN0aWxsCiAgICAgLy8gYmUgYWRkaW5nIHBsYW5zLCBvdXIg
Vk0gd2lsbCBub3QgYmUuCiAgICAgCi0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICAKICAgICBpZiAoT3B0aW9uczo6dmVy
Ym9zZUNvbXBpbGF0aW9uUXVldWUoKSkgewogICAgICAgICBkdW1wKGxvY2tlciwgV1RGOjpkYXRh
RmlsZSgpKTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIFdvcmtsaXN0Ojp3YWl0VW50aWxBbGxQ
bGFuc0ZvclZNQXJlUmVhZHkoVk0mIHZtKQogdm9pZCBXb3JrbGlzdDo6cmVtb3ZlQWxsUmVhZHlQ
bGFuc0ZvclZNKFZNJiB2bSwgVmVjdG9yPFJlZlB0cjxQbGFuPiwgOD4mIG15UmVhZHlQbGFucykK
IHsKICAgICBEZWZlckdDIGRlZmVyR0Modm0uaGVhcCk7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9sb2NrKTsKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fcmVhZHlQbGFucy5zaXplKCk7ICsraSkgewogICAgICAgICBSZWZQdHI8
UGxhbj4gcGxhbiA9IG1fcmVhZHlQbGFuc1tpXTsKICAgICAgICAgaWYgKCZwbGFuLT52bSAhPSAm
dm0pCkBAIC0xOTIsNyArMTkyLDcgQEAgV29ya2xpc3Q6OlN0YXRlIFdvcmtsaXN0Ojpjb21wbGV0
ZUFsbFJlYWR5UGxhbnNGb3JWTShWTSYgdm0sIENvbXBpbGF0aW9uS2V5IHJlcXUKICAgICB9CiAg
ICAgCiAgICAgaWYgKCEhcmVxdWVzdGVkS2V5ICYmIHJlc3VsdGluZ1N0YXRlID09IE5vdEtub3du
KSB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBpZiAobV9wbGFucy5jb250YWlucyhyZXF1ZXN0
ZWRLZXkpKQogICAgICAgICAgICAgcmVzdWx0aW5nU3RhdGUgPSBDb21waWxpbmc7CiAgICAgfQpA
QCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgV29ya2xpc3Q6OnZpc2l0V2Vha1JlZmVyZW5jZXMoU2xv
dFZpc2l0b3ImIHZpc2l0b3IsIENvZGVCbG9ja1NldCYgY29kZUJsb2NrCiB7CiAgICAgVk0qIHZt
ID0gdmlzaXRvci5oZWFwKCktPnZtKCk7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tl
cihtX2xvY2spOworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICAgICAg
Zm9yIChQbGFuTWFwOjppdGVyYXRvciBpdGVyID0gbV9wbGFucy5iZWdpbigpOyBpdGVyICE9IG1f
cGxhbnMuZW5kKCk7ICsraXRlcikgewogICAgICAgICAgICAgUGxhbiogcGxhbiA9IGl0ZXItPnZh
bHVlLmdldCgpOwogICAgICAgICAgICAgaWYgKCZwbGFuLT52bSAhPSB2bSkKQEAgLTI0OCw3ICsy
NDgsNyBAQCB2b2lkIFdvcmtsaXN0Ojp2aXNpdFdlYWtSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJiB2
aXNpdG9yLCBDb2RlQmxvY2tTZXQmIGNvZGVCbG9jawogdm9pZCBXb3JrbGlzdDo6cmVtb3ZlRGVh
ZFBsYW5zKFZNJiB2bSkKIHsKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9j
ayk7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOwogICAgICAgICBIYXNoU2V0
PENvbXBpbGF0aW9uS2V5PiBkZWFkUGxhbktleXM7CiAgICAgICAgIGZvciAoUGxhbk1hcDo6aXRl
cmF0b3IgaXRlciA9IG1fcGxhbnMuYmVnaW4oKTsgaXRlciAhPSBtX3BsYW5zLmVuZCgpOyArK2l0
ZXIpIHsKICAgICAgICAgICAgIFBsYW4qIHBsYW4gPSBpdGVyLT52YWx1ZS5nZXQoKTsKQEAgLTI5
NSwxNyArMjk1LDE3IEBAIHZvaWQgV29ya2xpc3Q6OnJlbW92ZURlYWRQbGFucyhWTSYgdm0pCiAK
IHNpemVfdCBXb3JrbGlzdDo6cXVldWVMZW5ndGgoKQogewotICAgIExvY2tIb2xkZXIgbG9ja2Vy
KG1fbG9jayk7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgcmV0dXJuIG1f
cXVldWUuc2l6ZSgpOwogfQogCiB2b2lkIFdvcmtsaXN0OjpkdW1wKFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0CiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9sb2NrKTsKICAgICBkdW1wKGxvY2tlciwgb3V0KTsKIH0KIAotdm9pZCBXb3Jr
bGlzdDo6ZHVtcChjb25zdCBMb2NrSG9sZGVyJiwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3Zv
aWQgV29ya2xpc3Q6OmR1bXAoY29uc3QgTXV0ZXhMb2NrZXImLCBQcmludFN0cmVhbSYgb3V0KSBj
b25zdAogewogICAgIG91dC5wcmludCgKICAgICAgICAgIldvcmtsaXN0KCIsIFJhd1BvaW50ZXIo
dGhpcyksICIpW1F1ZXVlIExlbmd0aCA9ICIsIG1fcXVldWUuc2l6ZSgpLApAQCAtMzI1LDcgKzMy
NSw3IEBAIHZvaWQgV29ya2xpc3Q6OnJ1blRocmVhZChUaHJlYWREYXRhKiBkYXRhKQogICAgIGZv
ciAoOzspIHsKICAgICAgICAgUmVmUHRyPFBsYW4+IHBsYW47CiAgICAgICAgIHsKLSAgICAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9sb2NrKTsKICAgICAgICAgICAgIHdoaWxlIChtX3F1ZXVlLmlzRW1wdHkoKSkKICAg
ICAgICAgICAgICAgICBtX3BsYW5FbnF1ZXVlZC53YWl0KG1fbG9jayk7CiAgICAgICAgICAgICAK
QEAgLTM0MSw5ICszNDEsOSBAQCB2b2lkIFdvcmtsaXN0OjpydW5UaHJlYWQoVGhyZWFkRGF0YSog
ZGF0YSkKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgewotICAgICAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIoZGF0YS0+bV9yaWdodFRvUnVuKTsKKyAgICAgICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihkYXRhLT5tX3JpZ2h0VG9SdW4pOwogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgICAgICAgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fbG9jayk7CiAgICAgICAgICAgICAgICAgaWYgKHBsYW4tPnN0YWdlID09IFBs
YW46OkNhbmNlbGxlZCkgewogICAgICAgICAgICAgICAgICAgICBtX251bWJlck9mQWN0aXZlVGhy
ZWFkcy0tOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTM1OSw3ICszNTksNyBA
QCB2b2lkIFdvcmtsaXN0OjpydW5UaHJlYWQoVGhyZWFkRGF0YSogZGF0YSkKICAgICAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKCFwbGFuLT52bS5oZWFwLmlzQ29sbGVjdGluZygpKTsKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1f
bG9jayk7CisgICAgICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CiAgICAg
ICAgICAgICAgICAgaWYgKHBsYW4tPnN0YWdlID09IFBsYW46OkNhbmNlbGxlZCkgewogICAgICAg
ICAgICAgICAgICAgICBtX251bWJlck9mQWN0aXZlVGhyZWFkcy0tOwogICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKQEAgLTM3MCw3ICszNzAsNyBAQCB2b2lkIFdvcmtsaXN0OjpydW5UaHJl
YWQoVGhyZWFkRGF0YSogZGF0YSkKICAgICAgICAgfQogCiAgICAgICAgIHsKLSAgICAgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9sb2NrKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gV2UgY291bGQgaGF2ZSBi
ZWVuIGNhbmNlbGxlZCBiZXR3ZWVuIHJlbGVhc2luZyByaWdodFRvUnVuIGFuZCBhY3F1aXJpbmcg
bV9sb2NrLgogICAgICAgICAgICAgLy8gVGhpcyB3b3VsZCBtZWFuIHRoYXQgd2UgbWlnaHQgYmUg
aW4gdGhlIG1pZGRsZSBvZiBHQyByaWdodCBub3cuCkBAIC0zODgsNyArMzg4LDcgQEAgdm9pZCBX
b3JrbGlzdDo6cnVuVGhyZWFkKFRocmVhZERhdGEqIGRhdGEpCiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIG1fcmVhZHlQbGFucy5hcHBlbmQocGxhbik7CiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIG1fcGxhbkNvbXBpbGVkLm5vdGlmeUFsbCgpOworICAgICAgICAgICAgbV9wbGFuQ29tcGls
ZWQuYnJvYWRjYXN0KCk7CiAgICAgICAgICAgICBtX251bWJlck9mQWN0aXZlVGhyZWFkcy0tOwog
ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdXb3JrbGlzdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXb3JrbGlzdC5oCmlu
ZGV4IDQxNWIyNmUwMGU0ZDQyN2M2Y2ZjNjQ4YmU1M2ZjYWM1NDhkNDI5NjEuLmJkNmU2ZmE3NWY2
MjQwZTI3ZDMwZTYzMzI5NmQxYTU2NTI1MGZkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHV29ya2xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1dvcmtsaXN0LmgKQEAgLTMwLDExICszMCwxMCBAQAogCiAjaW5jbHVkZSAiREZHUGxhbi5o
IgogI2luY2x1ZGUgIkRGR1RocmVhZERhdGEuaCIKLSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+
CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogCkBAIC04Niw3
ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCByZW1vdmVBbGxSZWFkeVBsYW5zRm9y
Vk0oVk0mLCBWZWN0b3I8UmVmUHRyPFBsYW4+LCA4PiYpOwogCi0gICAgdm9pZCBkdW1wKGNvbnN0
IExvY2tIb2xkZXImLCBQcmludFN0cmVhbSYpIGNvbnN0OworICAgIHZvaWQgZHVtcChjb25zdCBN
dXRleExvY2tlciYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgCiAgICAgQ1N0cmluZyBtX3Ro
cmVhZE5hbWU7CiAgICAgCkBAIC0xMDQsMTEgKzEwMywxMSBAQCBwcml2YXRlOgogICAgIC8vIGJl
IGNvbXBsZXRlZC4KICAgICBWZWN0b3I8UmVmUHRyPFBsYW4+LCAxNj4gbV9yZWFkeVBsYW5zOwog
Ci0gICAgTG9jayBtX3N1c3BlbnNpb25Mb2NrOworICAgIE11dGV4IG1fc3VzcGVuc2lvbkxvY2s7
CiAgICAgCi0gICAgbXV0YWJsZSBMb2NrIG1fbG9jazsKLSAgICBDb25kaXRpb24gbV9wbGFuRW5x
dWV1ZWQ7Ci0gICAgQ29uZGl0aW9uIG1fcGxhbkNvbXBpbGVkOworICAgIG11dGFibGUgTXV0ZXgg
bV9sb2NrOworICAgIFRocmVhZENvbmRpdGlvbiBtX3BsYW5FbnF1ZXVlZDsKKyAgICBUaHJlYWRD
b25kaXRpb24gbV9wbGFuQ29tcGlsZWQ7CiAgICAgCiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0
cjxUaHJlYWREYXRhPj4gbV90aHJlYWRzOwogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZBY3RpdmVU
aHJlYWRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9E
aXNhc3NlbWJsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rpc2Fzc2VtYmxlci9EaXNh
c3NlbWJsZXIuY3BwCmluZGV4IGM2MTY2ODIyNWQzMGI0Yjc3ZDZmODdhMDYzOGU3NWRmOTlkZDJh
ODEuLjhmMzU3NDIzYWM4MWFjZTZlMTRkMzZkODA1NzFjYTI0NDBjNzM5NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kaXNhc3NlbWJsZXIvRGlzYXNzZW1ibGVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGlzYXNzZW1ibGVyL0Rpc2Fzc2VtYmxlci5jcHAKQEAg
LTI3LDEzICsyNywxMiBAQAogI2luY2x1ZGUgIkRpc2Fzc2VtYmxlci5oIgogCiAjaW5jbHVkZSAi
TWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCi0jaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8
d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5j
bHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAg
LTc5LDE0ICs3OCwxNCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBlbnF1ZXVlKHN0ZDo6dW5p
cXVlX3B0cjxEaXNhc3NlbWJseVRhc2s+IHRhc2spCiAgICAgewotICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX2xvY2spOworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAg
ICAgICAgbV9xdWV1ZS5hcHBlbmQoV1RGOjptb3ZlKHRhc2spKTsKLSAgICAgICAgbV9jb25kaXRp
b24ubm90aWZ5QWxsKCk7CisgICAgICAgIG1fY29uZGl0aW9uLmJyb2FkY2FzdCgpOwogICAgIH0K
ICAgICAKICAgICB2b2lkIHdhaXRVbnRpbEVtcHR5KCkKICAgICB7Ci0gICAgICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOwog
ICAgICAgICB3aGlsZSAoIW1fcXVldWUuaXNFbXB0eSgpIHx8IG1fd29ya2luZykKICAgICAgICAg
ICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2NrKTsKICAgICB9CkBAIC05Nyw5ICs5Niw5IEBAIHBy
aXZhdGU6CiAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxE
aXNhc3NlbWJseVRhc2s+IHRhc2s7CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgTG9j
a0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9sb2NrKTsKICAgICAgICAgICAgICAgICBtX3dvcmtpbmcgPSBmYWxzZTsKLSAgICAgICAg
ICAgICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyAgICAgICAgICAgICAgICBtX2NvbmRp
dGlvbi5icm9hZGNhc3QoKTsKICAgICAgICAgICAgICAgICB3aGlsZSAobV9xdWV1ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICAgICAgICAgIG1fY29uZGl0aW9uLndhaXQobV9sb2NrKTsKICAgICAg
ICAgICAgICAgICB0YXNrID0gbV9xdWV1ZS50YWtlRmlyc3QoKTsKQEAgLTExMyw4ICsxMTIsOCBA
QCBwcml2YXRlOgogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIExvY2sgbV9sb2NrOwotICAg
IENvbmRpdGlvbiBtX2NvbmRpdGlvbjsKKyAgICBNdXRleCBtX2xvY2s7CisgICAgVGhyZWFkQ29u
ZGl0aW9uIG1fY29uZGl0aW9uOwogICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxEaXNhc3NlbWJs
eVRhc2s+PiBtX3F1ZXVlOwogICAgIGJvb2wgbV93b3JraW5nIHsgZmFsc2UgfTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5jcHAKaW5kZXggYTM4NzQ5OTRmOTJl
ODQzYWQwYjkyYjBkODI1YTAzNTg4YTA3MjlmMy4uM2YyNjVlN2VjOWQyNmFmNTEwNjRkN2RkZDc2
NDIzODkwM2YzMDJhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29w
aWVkU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNl
LmNwcApAQCAtMTk4LDEyICsxOTgsMTIgQEAgdm9pZCBDb3BpZWRTcGFjZTo6ZG9uZUZpbGxpbmdC
bG9jayhDb3BpZWRCbG9jayogYmxvY2ssIENvcGllZEJsb2NrKiogZXhjaGFuZ2UpCiAgICAgfQog
CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvYW5lZEJsb2Nrc0xvY2spOwor
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2FuZWRCbG9ja3NMb2NrKTsKICAgICAgICAg
QVNTRVJUKG1fbnVtYmVyT2ZMb2FuZWRCbG9ja3MgPiAwKTsKICAgICAgICAgQVNTRVJUKG1faW5D
b3B5aW5nUGhhc2UpOwogICAgICAgICBtX251bWJlck9mTG9hbmVkQmxvY2tzLS07CiAgICAgICAg
IGlmICghbV9udW1iZXJPZkxvYW5lZEJsb2NrcykKLSAgICAgICAgICAgIG1fbG9hbmVkQmxvY2tz
Q29uZGl0aW9uLm5vdGlmeU9uZSgpOworICAgICAgICAgICAgbV9sb2FuZWRCbG9ja3NDb25kaXRp
b24uc2lnbmFsKCk7CiAgICAgfQogfQogCkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBDb3BpZWRT
cGFjZTo6ZGlkU3RhcnRGdWxsQ29sbGVjdGlvbigpCiB2b2lkIENvcGllZFNwYWNlOjpkb25lQ29w
eWluZygpCiB7CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2xvYW5lZEJsb2Nr
c0xvY2spOworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9sb2FuZWRCbG9ja3NMb2NrKTsK
ICAgICAgICAgd2hpbGUgKG1fbnVtYmVyT2ZMb2FuZWRCbG9ja3MgPiAwKQogICAgICAgICAgICAg
bV9sb2FuZWRCbG9ja3NDb25kaXRpb24ud2FpdChtX2xvYW5lZEJsb2Nrc0xvY2spOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5oCmluZGV4IGVkMjk4MmRhMGU3
MzMxM2FlMGU2MTdkZjI3Mzg2ZWMzNjkxODBjMjMuLmQxOGQxZmNjNDRmYWFkNzQ4NWE3N2UxZGI5
ZTcwOWM5YWI2NDRkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZFNwYWNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2Uu
aApAQCAtMzEsMTMgKzMxLDEzIEBACiAjaW5jbHVkZSAiVGlueUJsb29tRmlsdGVyLmgiCiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ2hlY2tlZEJvb2xlYW4uaD4K
LSNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExp
c3QuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL09TQWxsb2NhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1BhZ2VCbG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJp
bWl0aXZlcy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMTM4LDggKzEzOCw4IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2luQ29weWluZ1BoYXNlOwogICAgIGJvb2wgbV9zaG91bGREb0NvcHlQ
aGFzZTsKIAotICAgIExvY2sgbV9sb2FuZWRCbG9ja3NMb2NrOyAKLSAgICBDb25kaXRpb24gbV9s
b2FuZWRCbG9ja3NDb25kaXRpb247CisgICAgTXV0ZXggbV9sb2FuZWRCbG9ja3NMb2NrOyAKKyAg
ICBUaHJlYWRDb25kaXRpb24gbV9sb2FuZWRCbG9ja3NDb25kaXRpb247CiAgICAgc2l6ZV90IG1f
bnVtYmVyT2ZMb2FuZWRCbG9ja3M7CiAgICAgCiAgICAgc2l6ZV90IG1fYnl0ZXNSZW1vdmVkRnJv
bU9sZFNwYWNlRHVlVG9SZWFsbG9jYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9Db3BpZWRTcGFjZUlubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvcGllZFNwYWNlSW5saW5lcy5oCmluZGV4IGFhNGVlZmY0Mjk0NWNjZGZkYmI2ZTFhZDJj
NWYzNzMyNjdkZGQ2OTUuLjhmNDA1OGIxMmI5NmVkZDVkNGNmZjFlNGNjNDQ4MTNlYWUxM2U3Yzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5saW5l
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5saW5lcy5o
CkBAIC0xMTMsMTIgKzExMywxMiBAQCBpbmxpbmUgdm9pZCBDb3BpZWRTcGFjZTo6cmVjeWNsZUJv
cnJvd2VkQmxvY2soQ29waWVkQmxvY2sqIGJsb2NrKQogICAgIENvcGllZEJsb2NrOjpkZXN0cm95
KGJsb2NrKTsKIAogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2FuZWRCbG9j
a3NMb2NrKTsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9hbmVkQmxvY2tzTG9jayk7
CiAgICAgICAgIEFTU0VSVChtX251bWJlck9mTG9hbmVkQmxvY2tzID4gMCk7CiAgICAgICAgIEFT
U0VSVChtX2luQ29weWluZ1BoYXNlKTsKICAgICAgICAgbV9udW1iZXJPZkxvYW5lZEJsb2Nrcy0t
OwogICAgICAgICBpZiAoIW1fbnVtYmVyT2ZMb2FuZWRCbG9ja3MpCi0gICAgICAgICAgICBtX2xv
YW5lZEJsb2Nrc0NvbmRpdGlvbi5ub3RpZnlPbmUoKTsKKyAgICAgICAgICAgIG1fbG9hbmVkQmxv
Y2tzQ29uZGl0aW9uLnNpZ25hbCgpOwogICAgIH0KIH0KIApAQCAtMTI4LDcgKzEyOCw3IEBAIGlu
bGluZSBDb3BpZWRCbG9jayogQ29waWVkU3BhY2U6OmFsbG9jYXRlQmxvY2tGb3JDb3B5aW5nUGhh
c2UoKQogICAgIENvcGllZEJsb2NrKiBibG9jayA9IENvcGllZEJsb2NrOjpjcmVhdGVOb1plcm9G
aWxsKCk7CiAKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9hbmVkQmxvY2tz
TG9jayk7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvYW5lZEJsb2Nrc0xvY2spOwog
ICAgICAgICBtX251bWJlck9mTG9hbmVkQmxvY2tzKys7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ1RocmVhZC5jcHAKaW5kZXggYmY1NjJiNWNmN2M0OWI0Mjc5NTdlZmZhZjhi
MThhNzlhMTY5ZmE5My4uM2EzZGNlYTY2ZTcxNWM5YjQ2MzU2MmNjZDI1OWZjZTQ2YWI2ODVhNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWQuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkLmNwcApAQCAtNjksMTIgKzY5LDEy
IEBAIENvcHlWaXNpdG9yKiBHQ1RocmVhZDo6Y29weVZpc2l0b3IoKQogCiBHQ1BoYXNlIEdDVGhy
ZWFkOjp3YWl0Rm9yTmV4dFBoYXNlKCkKIHsKLSAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxv
Y2sobV9zaGFyZWQubV9waGFzZU11dGV4KTsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0
ZXg+IGxvY2sobV9zaGFyZWQubV9waGFzZU11dGV4KTsKICAgICBtX3NoYXJlZC5tX3BoYXNlQ29u
ZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBbdGhpc10geyByZXR1cm4gIW1fc2hhcmVkLm1fZ2NU
aHJlYWRzU2hvdWxkV2FpdDsgfSk7CiAKICAgICBtX3NoYXJlZC5tX251bWJlck9mQWN0aXZlR0NU
aHJlYWRzLS07CiAgICAgaWYgKCFtX3NoYXJlZC5tX251bWJlck9mQWN0aXZlR0NUaHJlYWRzKQot
ICAgICAgICBtX3NoYXJlZC5tX2FjdGl2aXR5Q29uZGl0aW9uVmFyaWFibGUubm90aWZ5T25lKCk7
CisgICAgICAgIG1fc2hhcmVkLm1fYWN0aXZpdHlDb25kaXRpb25WYXJpYWJsZS5ub3RpZnlfb25l
KCk7CiAKICAgICBtX3NoYXJlZC5tX3BoYXNlQ29uZGl0aW9uVmFyaWFibGUud2FpdChsb2NrLCBb
dGhpc10geyByZXR1cm4gbV9zaGFyZWQubV9jdXJyZW50UGhhc2UgIT0gTm9QaGFzZTsgfSk7CiAg
ICAgbV9zaGFyZWQubV9udW1iZXJPZkFjdGl2ZUdDVGhyZWFkcysrOwpAQCAtOTAsNyArOTAsNyBA
QCB2b2lkIEdDVGhyZWFkOjpnY1RocmVhZE1haW4oKQogICAgIC8vIFdhaXQgZm9yIHRoZSBtYWlu
IHRocmVhZCB0byBmaW5pc2ggY3JlYXRpbmcgYW5kIGluaXRpYWxpemluZyB1cy4gVGhlIG1haW4g
dGhyZWFkIGdyYWJzIHRoaXMgbG9jayBiZWZvcmUgCiAgICAgLy8gY3JlYXRpbmcgdGhpcyB0aHJl
YWQuIFdlIGFyZW4ndCBndWFyYW50ZWVkIHRvIGhhdmUgYSB2YWxpZCB0aHJlYWRJRCB1bnRpbCB0
aGUgbWFpbiB0aHJlYWQgcmVsZWFzZXMgdGhpcyBsb2NrLgogICAgIHsKLSAgICAgICAgc3RkOjps
b2NrX2d1YXJkPExvY2s+IGxvY2sobV9zaGFyZWQubV9waGFzZU11dGV4KTsKKyAgICAgICAgc3Rk
Ojpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9zaGFyZWQubV9waGFzZU11dGV4KTsKICAg
ICB9CiAgICAgewogICAgICAgICBQYXJhbGxlbE1vZGVFbmFibGVyIGVuYWJsZXIoKm1fc2xvdFZp
c2l0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWRT
aGFyZWREYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDVGhyZWFkU2hhcmVk
RGF0YS5jcHAKaW5kZXggM2ZhZDg3MzRiMjUyNTNmNTUxYzZiMTI5MTY4Y2YwYmVhNjI5ODk4My4u
ODI0YjFhYzNhNjBlM2VmOTAyYWRlZTBlMjkzOWMxMzIyZGUyZDdjMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMSwgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC04Myw3ICs4Myw3IEBAIEdDVGhyZWFkU2hhcmVkRGF0YTo6R0NUaHJlYWRTaGFyZWREYXRhKFZN
KiB2bSkKIHsKICNpZiBFTkFCTEUoUEFSQUxMRUxfR0MpCiAgICAgLy8gR3JhYiB0aGUgbG9jayBz
byB0aGUgbmV3IEdDIHRocmVhZHMgY2FuIGJlIHByb3Blcmx5IGluaXRpYWxpemVkIGJlZm9yZSB0
aGV5IHN0YXJ0IHJ1bm5pbmcuCi0gICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1fcGhh
c2VNdXRleCk7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1fcGhhc2VN
dXRleCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IE9wdGlvbnM6Om51bWJlck9mR0NN
YXJrZXJzKCk7ICsraSkgewogICAgICAgICBtX251bWJlck9mQWN0aXZlR0NUaHJlYWRzKys7CiAg
ICAgICAgIEdDVGhyZWFkKiBuZXdUaHJlYWQgPSBuZXcgR0NUaHJlYWQoKnRoaXMsIHN0ZDo6bWFr
ZV91bmlxdWU8U2xvdFZpc2l0b3I+KCp0aGlzKSwgc3RkOjptYWtlX3VuaXF1ZTxDb3B5VmlzaXRv
cj4oKnRoaXMpKTsKQEAgLTEwMiwxMyArMTAyLDEzIEBAIEdDVGhyZWFkU2hhcmVkRGF0YTo6fkdD
VGhyZWFkU2hhcmVkRGF0YSgpCiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKSAgICAKICAgICAvLyBE
ZXN0cm95IG91ciBtYXJraW5nIHRocmVhZHMuCiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3Vh
cmQ8TG9jaz4gbWFya2luZ0xvY2sobV9tYXJraW5nTXV0ZXgpOwotICAgICAgICBzdGQ6OmxvY2tf
Z3VhcmQ8TG9jaz4gcGhhc2VMb2NrKG1fcGhhc2VNdXRleCk7CisgICAgICAgIHN0ZDo6bG9ja19n
dWFyZDxzdGQ6Om11dGV4PiBtYXJraW5nTG9jayhtX21hcmtpbmdNdXRleCk7CisgICAgICAgIHN0
ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBwaGFzZUxvY2sobV9waGFzZU11dGV4KTsKICAgICAg
ICAgQVNTRVJUKG1fY3VycmVudFBoYXNlID09IE5vUGhhc2UpOwogICAgICAgICBtX3BhcmFsbGVs
TWFya2Vyc1Nob3VsZEV4aXQgPSB0cnVlOwogICAgICAgICBtX2djVGhyZWFkc1Nob3VsZFdhaXQg
PSBmYWxzZTsKICAgICAgICAgbV9jdXJyZW50UGhhc2UgPSBFeGl0OwotICAgICAgICBtX3BoYXNl
Q29uZGl0aW9uVmFyaWFibGUubm90aWZ5QWxsKCk7CisgICAgICAgIG1fcGhhc2VDb25kaXRpb25W
YXJpYWJsZS5ub3RpZnlfYWxsKCk7CiAgICAgfQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX2djVGhyZWFkcy5zaXplKCk7ICsraSkgewogICAgICAgICB3YWl0Rm9yVGhyZWFkQ29tcGxl
dGlvbihtX2djVGhyZWFkc1tpXS0+dGhyZWFkSUQoKSk7CkBAIC0xMzEsMjEgKzEzMSwyMSBAQCB2
b2lkIEdDVGhyZWFkU2hhcmVkRGF0YTo6cmVzZXQoKQogCiB2b2lkIEdDVGhyZWFkU2hhcmVkRGF0
YTo6c3RhcnROZXh0UGhhc2UoR0NQaGFzZSBwaGFzZSkKIHsKLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TG9jaz4gbG9jayhtX3BoYXNlTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4
PiBsb2NrKG1fcGhhc2VNdXRleCk7CiAgICAgQVNTRVJUKCFtX2djVGhyZWFkc1Nob3VsZFdhaXQp
OwogICAgIEFTU0VSVChtX2N1cnJlbnRQaGFzZSA9PSBOb1BoYXNlKTsKICAgICBtX2djVGhyZWFk
c1Nob3VsZFdhaXQgPSB0cnVlOwogICAgIG1fY3VycmVudFBoYXNlID0gcGhhc2U7Ci0gICAgbV9w
aGFzZUNvbmRpdGlvblZhcmlhYmxlLm5vdGlmeUFsbCgpOworICAgIG1fcGhhc2VDb25kaXRpb25W
YXJpYWJsZS5ub3RpZnlfYWxsKCk7CiB9CiAKIHZvaWQgR0NUaHJlYWRTaGFyZWREYXRhOjplbmRD
dXJyZW50UGhhc2UoKQogewogICAgIEFTU0VSVChtX2djVGhyZWFkc1Nob3VsZFdhaXQpOwotICAg
IHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX3BoYXNlTXV0ZXgpOworICAgIHN0ZDo6dW5p
cXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtX3BoYXNlTXV0ZXgpOwogICAgIG1fY3VycmVudFBo
YXNlID0gTm9QaGFzZTsKICAgICBtX2djVGhyZWFkc1Nob3VsZFdhaXQgPSBmYWxzZTsKLSAgICBt
X3BoYXNlQ29uZGl0aW9uVmFyaWFibGUubm90aWZ5QWxsKCk7CisgICAgbV9waGFzZUNvbmRpdGlv
blZhcmlhYmxlLm5vdGlmeV9hbGwoKTsKICAgICBtX2FjdGl2aXR5Q29uZGl0aW9uVmFyaWFibGUu
d2FpdChsb2NrLCBbdGhpc10geyByZXR1cm4gIW1fbnVtYmVyT2ZBY3RpdmVHQ1RocmVhZHM7IH0p
OwogfQogCkBAIC0xNTgsNyArMTU4LDcgQEAgdm9pZCBHQ1RocmVhZFNoYXJlZERhdGE6OmRpZFN0
YXJ0TWFya2luZygpCiAgICAgICAgIEFTU0VSVChtX29wYXF1ZVJvb3RzLmlzRW1wdHkoKSk7CiAj
ZW5kaWYKIH0KLSAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhtX21hcmtpbmdNdXRleCk7
CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9tYXJraW5nTXV0ZXgpOwog
ICAgIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCA9IGZhbHNlOwogICAgIHN0YXJ0TmV4dFBo
YXNlKE1hcmspOwogfQpAQCAtMTY2LDkgKzE2Niw5IEBAIHZvaWQgR0NUaHJlYWRTaGFyZWREYXRh
OjpkaWRTdGFydE1hcmtpbmcoKQogdm9pZCBHQ1RocmVhZFNoYXJlZERhdGE6OmRpZEZpbmlzaE1h
cmtpbmcoKQogewogICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9t
YXJraW5nTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayht
X21hcmtpbmdNdXRleCk7CiAgICAgICAgIG1fcGFyYWxsZWxNYXJrZXJzU2hvdWxkRXhpdCA9IHRy
dWU7Ci0gICAgICAgIG1fbWFya2luZ0NvbmRpdGlvblZhcmlhYmxlLm5vdGlmeUFsbCgpOworICAg
ICAgICBtX21hcmtpbmdDb25kaXRpb25WYXJpYWJsZS5ub3RpZnlfYWxsKCk7CiAgICAgfQogCiAg
ICAgQVNTRVJUKG1fY3VycmVudFBoYXNlID09IE1hcmspOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuaAppbmRleCBhZTBjZGZiMmVmNzkzOTFjYTVl
NmI1Njk1MTc3NzcyZWU0MmFlNTVjLi4wYzVhZDFkZWQ4ZjNlNTEyMjJlN2NmMWE2NmFjYTRlZjFi
MzJhMTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNo
YXJlZERhdGEuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJl
ZERhdGEuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTEs
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA5LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIlVuY29uZGl0aW9u
YWxGaW5hbGl6ZXIuaCIKICNpbmNsdWRlICJXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmgiCiAjaW5j
bHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgpAQCAtODksMTMgKzg4LDEzIEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8
R0NUaHJlYWQqPiBtX2djVGhyZWFkczsKIAotICAgIExvY2sgbV9tYXJraW5nTXV0ZXg7Ci0gICAg
Q29uZGl0aW9uIG1fbWFya2luZ0NvbmRpdGlvblZhcmlhYmxlOworICAgIHN0ZDo6bXV0ZXggbV9t
YXJraW5nTXV0ZXg7CisgICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbV9tYXJraW5nQ29uZGl0
aW9uVmFyaWFibGU7CiAgICAgTWFya1N0YWNrQXJyYXkgbV9zaGFyZWRNYXJrU3RhY2s7CiAgICAg
dW5zaWduZWQgbV9udW1iZXJPZkFjdGl2ZVBhcmFsbGVsTWFya2VyczsKICAgICBib29sIG1fcGFy
YWxsZWxNYXJrZXJzU2hvdWxkRXhpdDsKIAotICAgIExvY2sgbV9vcGFxdWVSb290c011dGV4Owor
ICAgIHN0ZDo6bXV0ZXggbV9vcGFxdWVSb290c011dGV4OwogICAgIEhhc2hTZXQ8dm9pZCo+IG1f
b3BhcXVlUm9vdHM7CiAKICAgICBMb2NrIG1fY29weUxvY2s7CkBAIC0xMDMsOSArMTAyLDkgQEAg
cHJpdmF0ZToKICAgICBzaXplX3QgbV9jb3B5SW5kZXg7CiAgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBzX2Jsb2NrRnJhZ21lbnRMZW5ndGggPSAzMjsKIAotICAgIExvY2sgbV9waGFzZU11dGV4Owot
ICAgIENvbmRpdGlvbiBtX3BoYXNlQ29uZGl0aW9uVmFyaWFibGU7Ci0gICAgQ29uZGl0aW9uIG1f
YWN0aXZpdHlDb25kaXRpb25WYXJpYWJsZTsKKyAgICBzdGQ6Om11dGV4IG1fcGhhc2VNdXRleDsK
KyAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBtX3BoYXNlQ29uZGl0aW9uVmFyaWFibGU7Cisg
ICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbV9hY3Rpdml0eUNvbmRpdGlvblZhcmlhYmxlOwog
ICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZBY3RpdmVHQ1RocmVhZHM7CiAgICAgYm9vbCBtX2djVGhy
ZWFkc1Nob3VsZFdhaXQ7CiAgICAgR0NQaGFzZSBtX2N1cnJlbnRQaGFzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBUaW1lci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcFRpbWVyLmgKaW5kZXggYmJjZTVmOTBmNzNhNTBhMmNiZDYzZjI2MGQx
NjRmZjI5ZGIxYzFjZi4uMWVmYmI5YTY3N2RiNDFjMzlmMGM3ZjkxMDliOTQyNGUxMjU5ODA2MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFRpbWVyLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDcgKzI2LDYgQEAKICNp
Zm5kZWYgSGVhcFRpbWVyX2gKICNkZWZpbmUgSGVhcFRpbWVyX2gKIAotI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmcuaD4KIApAQCAtNjAsNyArNTksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmV0YWluUHRyPENGUnVu
TG9vcFJlZj4gbV9ydW5Mb29wOwogICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBtX2NvbnRleHQ7
CiAKLSAgICBMb2NrIG1fc2h1dGRvd25NdXRleDsKKyAgICBNdXRleCBtX3NodXRkb3duTXV0ZXg7
CiAjZWxpZiBQTEFURk9STShFRkwpCiAgICAgc3RhdGljIGJvb2wgdGltZXJFdmVudCh2b2lkKik7
CiAgICAgRWNvcmVfVGltZXIqIGFkZChkb3VibGUgZGVsYXksIHZvaWQqIGFnZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCmluZGV4
IDUxNTZjNTRjYWRmZTZmNTEzZjdhMmExMDkzN2RkZDkwZmE5ZmM0N2IuLjFhOGU4YjFmYWM3MzRi
MzY1MmI0YTRlOTUyNTIzNjRiZGY0OTZjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL01hY2hpbmVTdGFja01hcmtlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcApAQCAtMTAzLDE4ICsxMDMsMTggQEAgcHVi
bGljOgogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBMb2NrSG9sZGVyIG1fbG9j
a2VyOworICAgICAgICBNdXRleExvY2tlciBtX2xvY2tlcjsKICAgICB9OwogCiAgICAgdm9pZCBh
ZGQoTWFjaGluZVRocmVhZHMqIG1hY2hpbmVUaHJlYWRzKQogICAgIHsKLSAgICAgICAgTG9ja0hv
bGRlciBtYW5hZ2VyTG9jayhtX2xvY2spOworICAgICAgICBNdXRleExvY2tlciBtYW5hZ2VyTG9j
ayhtX2xvY2spOwogICAgICAgICBtX3NldC5hZGQobWFjaGluZVRocmVhZHMpOwogICAgIH0KIAog
ICAgIHZvaWQgcmVtb3ZlKE1hY2hpbmVUaHJlYWRzKiBtYWNoaW5lVGhyZWFkcykKICAgICB7Ci0g
ICAgICAgIExvY2tIb2xkZXIgbWFuYWdlckxvY2sobV9sb2NrKTsKKyAgICAgICAgTXV0ZXhMb2Nr
ZXIgbWFuYWdlckxvY2sobV9sb2NrKTsKICAgICAgICAgYXV0byByZWNvcmRlZE1hY2hpbmVUaHJl
YWRzID0gbV9zZXQudGFrZShtYWNoaW5lVGhyZWFkcyk7CiAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHJlY29yZGVkTWFjaGluZVRocmVhZHMgPSBtYWNoaW5lVGhyZWFkcyk7CiAgICAgfQpAQCAtMTI5
LDcgKzEyOSw3IEBAIHByaXZhdGU6CiAKICAgICBBY3RpdmVNYWNoaW5lVGhyZWFkc01hbmFnZXIo
KSB7IH0KICAgICAKLSAgICBMb2NrIG1fbG9jazsKKyAgICBNdXRleCBtX2xvY2s7CiAgICAgTWFj
aGluZVRocmVhZHNTZXQgbV9zZXQ7CiAKICAgICBmcmllbmQgQWN0aXZlTWFjaGluZVRocmVhZHNN
YW5hZ2VyJiBhY3RpdmVNYWNoaW5lVGhyZWFkc01hbmFnZXIoKTsKQEAgLTI2Myw3ICsyNjMsNyBA
QCBNYWNoaW5lVGhyZWFkczo6fk1hY2hpbmVUaHJlYWRzKCkKICAgICBhY3RpdmVNYWNoaW5lVGhy
ZWFkc01hbmFnZXIoKS5yZW1vdmUodGhpcyk7CiAgICAgdGhyZWFkU3BlY2lmaWNLZXlEZWxldGUo
bV90aHJlYWRTcGVjaWZpYyk7CiAKLSAgICBMb2NrSG9sZGVyIHJlZ2lzdGVyZWRUaHJlYWRzTG9j
ayhtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXgpOworICAgIE11dGV4TG9ja2VyIHJlZ2lzdGVyZWRU
aHJlYWRzTG9jayhtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXgpOwogICAgIGZvciAoVGhyZWFkKiB0
ID0gbV9yZWdpc3RlcmVkVGhyZWFkczsgdDspIHsKICAgICAgICAgVGhyZWFkKiBuZXh0ID0gdC0+
bmV4dDsKICAgICAgICAgZGVsZXRlIHQ7CkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBNYWNoaW5l
VGhyZWFkczo6YWRkQ3VycmVudFRocmVhZCgpCiAgICAgdGhyZWFkU3BlY2lmaWNTZXQobV90aHJl
YWRTcGVjaWZpYywgdGhpcyk7CiAgICAgVGhyZWFkKiB0aHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZUZv
ckN1cnJlbnRUaHJlYWQoKTsKIAotICAgIExvY2tIb2xkZXIgbG9jayhtX3JlZ2lzdGVyZWRUaHJl
YWRzTXV0ZXgpOworICAgIE11dGV4TG9ja2VyIGxvY2sobV9yZWdpc3RlcmVkVGhyZWFkc011dGV4
KTsKIAogICAgIHRocmVhZC0+bmV4dCA9IG1fcmVnaXN0ZXJlZFRocmVhZHM7CiAgICAgbV9yZWdp
c3RlcmVkVGhyZWFkcyA9IHRocmVhZDsKQEAgLTMxOCw3ICszMTgsNyBAQCB2b2lkIE1hY2hpbmVU
aHJlYWRzOjpyZW1vdmVUaHJlYWQodm9pZCogcCkKIHRlbXBsYXRlPHR5cGVuYW1lIFBsYXRmb3Jt
VGhyZWFkPgogdm9pZCBNYWNoaW5lVGhyZWFkczo6cmVtb3ZlVGhyZWFkSWZGb3VuZChQbGF0Zm9y
bVRocmVhZCBwbGF0Zm9ybVRocmVhZCkKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2sobV9yZWdpc3Rl
cmVkVGhyZWFkc011dGV4KTsKKyAgICBNdXRleExvY2tlciBsb2NrKG1fcmVnaXN0ZXJlZFRocmVh
ZHNNdXRleCk7CiAgICAgVGhyZWFkKiB0ID0gbV9yZWdpc3RlcmVkVGhyZWFkczsKICAgICBpZiAo
KnQgPT0gcGxhdGZvcm1UaHJlYWQpIHsKICAgICAgICAgbV9yZWdpc3RlcmVkVGhyZWFkcyA9IG1f
cmVnaXN0ZXJlZFRocmVhZHMtPm5leHQ7CkBAIC01NjYsNyArNTY2LDcgQEAgdm9pZCBNYWNoaW5l
VGhyZWFkczo6dHJ5Q29weU90aGVyVGhyZWFkU3RhY2soVGhyZWFkKiB0aHJlYWQsIHZvaWQqIGJ1
ZmZlciwgc2l6ZV8KICAgICB0aHJlYWQtPmZyZWVSZWdpc3RlcnMocmVnaXN0ZXJzKTsKIH0KIAot
Ym9vbCBNYWNoaW5lVGhyZWFkczo6dHJ5Q29weU90aGVyVGhyZWFkU3RhY2tzKExvY2tIb2xkZXIm
LCB2b2lkKiBidWZmZXIsIHNpemVfdCBjYXBhY2l0eSwgc2l6ZV90KiBzaXplKQorYm9vbCBNYWNo
aW5lVGhyZWFkczo6dHJ5Q29weU90aGVyVGhyZWFkU3RhY2tzKE11dGV4TG9ja2VyJiwgdm9pZCog
YnVmZmVyLCBzaXplX3QgY2FwYWNpdHksIHNpemVfdCogc2l6ZSkKIHsKICAgICAvLyBQcmV2ZW50
IHR3byBWTXMgZnJvbSBzdXNwZW5kaW5nIGVhY2ggb3RoZXIncyB0aHJlYWRzIGF0IHRoZSBzYW1l
IHRpbWUsCiAgICAgLy8gd2hpY2ggY2FuIGNhdXNlIGRlYWRsb2NrOiA8cmRhcjovL3Byb2JsZW0v
MjAzMDA4NDI+LgpAQCAtNjYwLDcgKzY2MCw3IEBAIHZvaWQgTWFjaGluZVRocmVhZHM6OmdhdGhl
ckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJvb3RzJiBjb25zZXJ2YXRpdmVSb290CiAg
ICAgc2l6ZV90IHNpemU7CiAgICAgc2l6ZV90IGNhcGFjaXR5ID0gMDsKICAgICB2b2lkKiBidWZm
ZXIgPSBudWxscHRyOwotICAgIExvY2tIb2xkZXIgbG9jayhtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0
ZXgpOworICAgIE11dGV4TG9ja2VyIGxvY2sobV9yZWdpc3RlcmVkVGhyZWFkc011dGV4KTsKICAg
ICB3aGlsZSAoIXRyeUNvcHlPdGhlclRocmVhZFN0YWNrcyhsb2NrLCBidWZmZXIsIGNhcGFjaXR5
LCAmc2l6ZSkpCiAgICAgICAgIGdyb3dCdWZmZXIoc2l6ZSwgJmJ1ZmZlciwgJmNhcGFjaXR5KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFjaGluZVN0YWNrTWFy
a2VyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaApp
bmRleCAzMDgwZDJiNzQzZTk0MzZiZDhiYmVjMGRhNmIxM2QwOTJiNzY4ZjdmLi4wNzIzYWQ4MWNk
ZGE0YjFhNDNlOTMxMjM5NWE2NmM4ZmExZjRkNzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYWNoaW5lU3RhY2tNYXJrZXIuaApAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiAg
Q29weXJpZ2h0IChDKSAxOTk5LTIwMDAgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKICAq
ICBDb3B5cmlnaHQgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bwb3N0LmNvbSkKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMywg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yMyw5ICsyMyw5IEBACiAjZGVmaW5l
IE1hY2hpbmVUaHJlYWRzX2gKIAogI2luY2x1ZGUgPHNldGptcC5oPgotI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZFNwZWNpZmljLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CiAKQEAgLTUyLDE0ICs1MiwxNCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgdm9pZCBnYXRoZXJGcm9tQ3VycmVudFRocmVhZChDb25zZXJ2YXRpdmVSb290cyYsIEpJVFN0
dWJSb3V0aW5lU2V0JiwgQ29kZUJsb2NrU2V0Jiwgdm9pZCogc3RhY2tPcmlnaW4sIHZvaWQqIHN0
YWNrVG9wLCBSZWdpc3RlclN0YXRlJiBjYWxsZWVTYXZlZFJlZ2lzdGVycyk7CiAKICAgICAgICAg
dm9pZCB0cnlDb3B5T3RoZXJUaHJlYWRTdGFjayhUaHJlYWQqLCB2b2lkKiwgc2l6ZV90IGNhcGFj
aXR5LCBzaXplX3QqKTsKLSAgICAgICAgYm9vbCB0cnlDb3B5T3RoZXJUaHJlYWRTdGFja3MoTG9j
a0hvbGRlciYsIHZvaWQqLCBzaXplX3QgY2FwYWNpdHksIHNpemVfdCopOworICAgICAgICBib29s
IHRyeUNvcHlPdGhlclRocmVhZFN0YWNrcyhNdXRleExvY2tlciYsIHZvaWQqLCBzaXplX3QgY2Fw
YWNpdHksIHNpemVfdCopOwogCiAgICAgICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRocmVhZCh2b2lk
Kik7CiAKICAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgUGxhdGZvcm1UaHJlYWQ+CiAgICAgICAg
IHZvaWQgcmVtb3ZlVGhyZWFkSWZGb3VuZChQbGF0Zm9ybVRocmVhZCk7CiAKLSAgICAgICAgTG9j
ayBtX3JlZ2lzdGVyZWRUaHJlYWRzTXV0ZXg7CisgICAgICAgIE11dGV4IG1fcmVnaXN0ZXJlZFRo
cmVhZHNNdXRleDsKICAgICAgICAgVGhyZWFkKiBtX3JlZ2lzdGVyZWRUaHJlYWRzOwogICAgICAg
ICBXVEY6OlRocmVhZFNwZWNpZmljS2V5IG1fdGhyZWFkU3BlY2lmaWM7CiAjaWYgIUFTU0VSVF9E
SVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwCmluZGV4
IGEyMjUzODY2MTIxZjQ3YTM1ZWQxZDcxNGQzOTEwODZmZWVjZWFkOWYuLjRkZTQ5NjY2OGNlNTYz
ZTVlYjlkNjlkYjc4NmM5NTdhODgzMWYwZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9TbG90VmlzaXRvci5jcHAKQEAgLTEsMjggKzEsMyBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvci5oIgogI2luY2x1ZGUgIlNs
b3RWaXNpdG9ySW5saW5lcy5oIgpAQCAtMzcsNyArMTIsNiBAQAogI2luY2x1ZGUgIkpTT2JqZWN0
LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0jaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgogCiBuYW1lc3Bh
Y2UgSlNDIHsKQEAgLTE0Nyw3ICsxMjEsNyBAQCB2b2lkIFNsb3RWaXNpdG9yOjpkb25hdGVLbm93
blBhcmFsbGVsKCkKIAogICAgIC8vIElmIHdlJ3JlIGNvbnRlbmRpbmcgb24gdGhlIGxvY2ssIGJl
IGNvbnNlcnZhdGl2ZSBhbmQgYXNzdW1lIHRoYXQgYW5vdGhlcgogICAgIC8vIHRocmVhZCBpcyBh
bHJlYWR5IGRvbmF0aW5nLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX3NoYXJl
ZC5tX21hcmtpbmdNdXRleCwgc3RkOjp0cnlfdG9fbG9jayk7CisgICAgc3RkOjp1bmlxdWVfbG9j
azxzdGQ6Om11dGV4PiBsb2NrKG1fc2hhcmVkLm1fbWFya2luZ011dGV4LCBzdGQ6OnRyeV90b19s
b2NrKTsKICAgICBpZiAoIWxvY2sub3duc19sb2NrKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAt
MTU1LDcgKzEyOSw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRvbmF0ZUtub3duUGFyYWxsZWwoKQog
ICAgIG1fc3RhY2suZG9uYXRlU29tZUNlbGxzVG8obV9zaGFyZWQubV9zaGFyZWRNYXJrU3RhY2sp
OwogCiAgICAgaWYgKG1fc2hhcmVkLm1fbnVtYmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnMgPCBP
cHRpb25zOjpudW1iZXJPZkdDTWFya2VycygpKQotICAgICAgICBtX3NoYXJlZC5tX21hcmtpbmdD
b25kaXRpb25WYXJpYWJsZS5ub3RpZnlBbGwoKTsKKyAgICAgICAgbV9zaGFyZWQubV9tYXJraW5n
Q29uZGl0aW9uVmFyaWFibGUubm90aWZ5X2FsbCgpOwogfQogCiB2b2lkIFNsb3RWaXNpdG9yOjpk
cmFpbigpCkBAIC0yMTAsMTIgKzE4NCwxMiBAQCB2b2lkIFNsb3RWaXNpdG9yOjpkcmFpbkZyb21T
aGFyZWQoU2hhcmVkRHJhaW5Nb2RlIHNoYXJlZERyYWluTW9kZSkKICAgICAKICNpZiBFTkFCTEUo
UEFSQUxMRUxfR0MpCiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayht
X3NoYXJlZC5tX21hcmtpbmdNdXRleCk7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11
dGV4PiBsb2NrKG1fc2hhcmVkLm1fbWFya2luZ011dGV4KTsKICAgICAgICAgbV9zaGFyZWQubV9u
dW1iZXJPZkFjdGl2ZVBhcmFsbGVsTWFya2VycysrOwogICAgIH0KICAgICB3aGlsZSAodHJ1ZSkg
ewogICAgICAgICB7Ci0gICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9z
aGFyZWQubV9tYXJraW5nTXV0ZXgpOworICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6
Om11dGV4PiBsb2NrKG1fc2hhcmVkLm1fbWFya2luZ011dGV4KTsKICAgICAgICAgICAgIG1fc2hh
cmVkLm1fbnVtYmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnMtLTsKIAogICAgICAgICAgICAgLy8g
SG93IHdlIHdhaXQgZGlmZmVycyBkZXBlbmRpbmcgb24gZHJhaW4gbW9kZS4KQEAgLTIyNiw3ICsy
MDAsNyBAQCB2b2lkIFNsb3RWaXNpdG9yOjpkcmFpbkZyb21TaGFyZWQoU2hhcmVkRHJhaW5Nb2Rl
IHNoYXJlZERyYWluTW9kZSkKICAgICAgICAgICAgICAgICAgICAgLy8gRGlkIHdlIHJlYWNoIHRl
cm1pbmF0aW9uPwogICAgICAgICAgICAgICAgICAgICBpZiAoIW1fc2hhcmVkLm1fbnVtYmVyT2ZB
Y3RpdmVQYXJhbGxlbE1hcmtlcnMgJiYgbV9zaGFyZWQubV9zaGFyZWRNYXJrU3RhY2suaXNFbXB0
eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMZXQgYW55IHNsZWVwaW5nIHNsYXZl
cyBrbm93IGl0J3MgdGltZSBmb3IgdGhlbSB0byByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBtX3NoYXJlZC5tX21hcmtpbmdDb25kaXRpb25WYXJpYWJsZS5ub3RpZnlBbGwoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fc2hhcmVkLm1fbWFya2luZ0NvbmRpdGlvblZhcmlhYmxl
Lm5vdGlmeV9hbGwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAKQEAgLTI0Miw3ICsyMTYsNyBAQCB2
b2lkIFNsb3RWaXNpdG9yOjpkcmFpbkZyb21TaGFyZWQoU2hhcmVkRHJhaW5Nb2RlIHNoYXJlZERy
YWluTW9kZSkKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAvLyBEaWQgd2UgZGV0
ZWN0IHRlcm1pbmF0aW9uPyBJZiBzbywgbGV0IHRoZSBtYXN0ZXIga25vdy4KICAgICAgICAgICAg
ICAgICBpZiAoIW1fc2hhcmVkLm1fbnVtYmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnMgJiYgbV9z
aGFyZWQubV9zaGFyZWRNYXJrU3RhY2suaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBt
X3NoYXJlZC5tX21hcmtpbmdDb25kaXRpb25WYXJpYWJsZS5ub3RpZnlBbGwoKTsKKyAgICAgICAg
ICAgICAgICAgICAgbV9zaGFyZWQubV9tYXJraW5nQ29uZGl0aW9uVmFyaWFibGUubm90aWZ5X2Fs
bCgpOwogCiAgICAgICAgICAgICAgICAgbV9zaGFyZWQubV9tYXJraW5nQ29uZGl0aW9uVmFyaWFi
bGUud2FpdChsb2NrLCBbdGhpc10geyByZXR1cm4gIW1fc2hhcmVkLm1fc2hhcmVkTWFya1N0YWNr
LmlzRW1wdHkoKSB8fCBtX3NoYXJlZC5tX3BhcmFsbGVsTWFya2Vyc1Nob3VsZEV4aXQ7IH0pOwog
ICAgICAgICAgICAgICAgIApAQCAtMjY2LDcgKzI0MCw3IEBAIHZvaWQgU2xvdFZpc2l0b3I6Om1l
cmdlT3BhcXVlUm9vdHMoKQogICAgIFN0YWNrU3RhdHM6OnByb2JlKCk7CiAgICAgQVNTRVJUKCFt
X29wYXF1ZVJvb3RzLmlzRW1wdHkoKSk7IC8vIFNob3VsZCBvbmx5IGJlIGNhbGxlZCB3aGVuIG9w
YXF1ZSByb290cyBhcmUgbm9uLWVtcHR5LgogICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJk
PExvY2s+IGxvY2sobV9zaGFyZWQubV9vcGFxdWVSb290c011dGV4KTsKKyAgICAgICAgc3RkOjps
b2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9zaGFyZWQubV9vcGFxdWVSb290c011dGV4KTsK
ICAgICAgICAgZm9yIChhdXRvKiByb290IDogbV9vcGFxdWVSb290cykKICAgICAgICAgICAgIG1f
c2hhcmVkLm1fb3BhcXVlUm9vdHMuYWRkKHJvb3QpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9ySW5saW5lcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3JJbmxpbmVzLmgKaW5kZXggMzMzOGIxYzNkNzM4Y2Qy
ZmRlN2YwMjM2ZTdhZjMwYjEyOTZiMTg3OS4uNTQ4Yjk5ZGYyMWRhOGE4NzJhZTUyYWNlOTc4MzA3
MmQ3Y2M2ZmE0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZp
c2l0b3JJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3JJbmxpbmVzLmgKQEAgLTE4OCw3ICsxODgsNyBAQCBpbmxpbmUgVHJpU3RhdGUgU2xvdFZpc2l0
b3I6OmNvbnRhaW5zT3BhcXVlUm9vdFRyaVN0YXRlKHZvaWQqIHJvb3QpIGNvbnN0CiB7CiAgICAg
aWYgKG1fb3BhcXVlUm9vdHMuY29udGFpbnMocm9vdCkpCiAgICAgICAgIHJldHVybiBUcnVlVHJp
U3RhdGU7Ci0gICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9zaGFyZWQubV9vcGFxdWVS
b290c011dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtX3NoYXJl
ZC5tX29wYXF1ZVJvb3RzTXV0ZXgpOwogICAgIGlmIChtX3NoYXJlZC5tX29wYXF1ZVJvb3RzLmNv
bnRhaW5zKHJvb3QpKQogICAgICAgICByZXR1cm4gVHJ1ZVRyaVN0YXRlOwogICAgIHJldHVybiBN
aXhlZFRyaVN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL1JlbW90ZUluc3BlY3RvckRlYnVnZ2FibGVD
b25uZWN0aW9uLmgKaW5kZXggZTVlNWQ0ZjVkZmI4ZWQ2MmVmZmNhOGMwMTI1ZDhlNGU1YzA1MDQ0
NS4uY2VkYjdhYmZhZmE0Zjg1MWUxYzBmNzMyOTY4YTNlYTc1NGFhZGE3YSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yRGVi
dWdnYWJsZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlQ29ubmVjdGlvbi5oCkBAIC0zMSw3ICsz
MSw2IEBACiAjaW1wb3J0ICJJbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaCIKICNpbXBvcnQgIlJl
bW90ZUluc3BlY3RvckRlYnVnZ2FibGUuaCIKICNpbXBvcnQgPG11dGV4PgotI2ltcG9ydCA8d3Rm
L0xvY2suaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRT
YWZlUmVmQ291bnRlZC5oPgogCkBAIC05Miw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
bmRNZXNzYWdlVG9CYWNrZW5kKE5TU3RyaW5nICopOwogICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVz
c2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKLSAgICBMb2NrJiBxdWV1
ZU11dGV4KCkgeyByZXR1cm4gbV9xdWV1ZU11dGV4OyB9CisgICAgc3RkOjptdXRleCYgcXVldWVN
dXRleCgpIHsgcmV0dXJuIG1fcXVldWVNdXRleDsgfQogICAgIFJlbW90ZUluc3BlY3RvclF1ZXVl
IHF1ZXVlKCkgY29uc3QgeyByZXR1cm4gbV9xdWV1ZTsgfQogICAgIHZvaWQgY2xlYXJRdWV1ZSgp
IHsgbV9xdWV1ZS5jbGVhcigpOyB9CiAKQEAgLTEwNiwxNCArMTA1LDE0IEBAIHByaXZhdGU6CiAg
ICAgLy8gVGhpcyBjb25uZWN0aW9uIGZyb20gdGhlIFJlbW90ZUluc3BlY3RvciBzaW5nbGV0b24g
dG8gdGhlIERlYnVnZ2FibGUKICAgICAvLyBjYW4gYmUgdXNlZCBvbiBtdWx0aXBsZSB0aHJlYWRz
LiBTbyBhbnkgYWNjZXNzIHRvIHRoZSBkZWJ1Z2dhYmxlCiAgICAgLy8gaXRzZWxmIG11c3QgdGFr
ZSB0aGlzIG11dGV4IHRvIGVuc3VyZSBtX2RlYnVnZ2FibGUgaXMgdmFsaWQuCi0gICAgTG9jayBt
X2RlYnVnZ2FibGVNdXRleDsKKyAgICBzdGQ6Om11dGV4IG1fZGVidWdnYWJsZU11dGV4OwogCiAg
ICAgLy8gSWYgYSBkZWJ1Z2dhYmxlIGhhcyBhIHNwZWNpZmljIHJ1biBsb29wIGl0IHdhbnRzIHRv
IGV2YWx1YXRlIG9uCiAgICAgLy8gd2Ugc2V0dXAgb3VyIHJ1biBsb29wIHNvdXJjZXMgb24gdGhh
dCBzcGVjaWZpYyBydW4gbG9vcC4KICAgICBSZXRhaW5QdHI8Q0ZSdW5Mb29wUmVmPiBtX3J1bkxv
b3A7CiAgICAgUmV0YWluUHRyPENGUnVuTG9vcFNvdXJjZVJlZj4gbV9ydW5Mb29wU291cmNlOwog
ICAgIFJlbW90ZUluc3BlY3RvclF1ZXVlIG1fcXVldWU7Ci0gICAgTG9jayBtX3F1ZXVlTXV0ZXg7
CisgICAgc3RkOjptdXRleCBtX3F1ZXVlTXV0ZXg7CiAKICAgICBSZW1vdGVJbnNwZWN0b3JEZWJ1
Z2dhYmxlKiBtX2RlYnVnZ2FibGU7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBtX2Nvbm5lY3Rp
b25JZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvUmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZUNvbm5lY3Rpb24ubW0gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxl
Q29ubmVjdGlvbi5tbQppbmRleCBiZWRhYWQ3ZmFlNDBjNThjODk2NzJlNGQxYTBiMGE1MTFlOTY1
YWI0Li4wODIxMjY2ZDg4ZjkyOWEyNjdlMTZjNThjNTExMDc1ZWNjMTMyOGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JE
ZWJ1Z2dhYmxlQ29ubmVjdGlvbi5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3JlbW90ZS9SZW1vdGVJbnNwZWN0b3JEZWJ1Z2dhYmxlQ29ubmVjdGlvbi5tbQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksMTkg
KzM5LDIwIEBACiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCi1zdGF0aWMgU3RhdGljTG9jayBy
d2lRdWV1ZU11dGV4Oworc3RhdGljIHN0ZDo6bXV0ZXgqIHJ3aVF1ZXVlTXV0ZXg7CiBzdGF0aWMg
Q0ZSdW5Mb29wU291cmNlUmVmIHJ3aVJ1bkxvb3BTb3VyY2U7CiBzdGF0aWMgUmVtb3RlSW5zcGVj
dG9yUXVldWUqIHJ3aVF1ZXVlOwogCiBzdGF0aWMgdm9pZCBSZW1vdGVJbnNwZWN0b3JIYW5kbGVS
dW5Tb3VyY2VHbG9iYWwodm9pZCopCiB7CiAgICAgQVNTRVJUKENGUnVuTG9vcEdldEN1cnJlbnQo
KSA9PSBDRlJ1bkxvb3BHZXRNYWluKCkpOworICAgIEFTU0VSVChyd2lRdWV1ZU11dGV4KTsKICAg
ICBBU1NFUlQocndpUnVuTG9vcFNvdXJjZSk7CiAgICAgQVNTRVJUKHJ3aVF1ZXVlKTsKIAogICAg
IFJlbW90ZUluc3BlY3RvclF1ZXVlIHF1ZXVlQ29weTsKICAgICB7Ci0gICAgICAgIHN0ZDo6bG9j
a19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHJ3aVF1ZXVlTXV0ZXgpOworICAgICAgICBzdGQ6Omxv
Y2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jaygqcndpUXVldWVNdXRleCk7CiAgICAgICAgIHF1ZXVl
Q29weSA9ICpyd2lRdWV1ZTsKICAgICAgICAgcndpUXVldWUtPmNsZWFyKCk7CiAgICAgfQpAQCAt
NjIsMTEgKzYzLDEyIEBAIHN0YXRpYyB2b2lkIFJlbW90ZUluc3BlY3RvckhhbmRsZVJ1blNvdXJj
ZUdsb2JhbCh2b2lkKikKIAogc3RhdGljIHZvaWQgUmVtb3RlSW5zcGVjdG9yUXVldWVUYXNrT25H
bG9iYWxRdWV1ZSh2b2lkIChedGFzaykoKSkKIHsKKyAgICBBU1NFUlQocndpUXVldWVNdXRleCk7
CiAgICAgQVNTRVJUKHJ3aVJ1bkxvb3BTb3VyY2UpOwogICAgIEFTU0VSVChyd2lRdWV1ZSk7CiAK
ICAgICB7Ci0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxTdGF0aWNMb2NrPiBsb2NrKHJ3aVF1ZXVl
TXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jaygqcndpUXVl
dWVNdXRleCk7CiAgICAgICAgIHJ3aVF1ZXVlLT5hcHBlbmQoUmVtb3RlSW5zcGVjdG9yQmxvY2so
dGFzaykpOwogICAgIH0KIApAQCAtNzksNiArODEsNyBAQCBzdGF0aWMgdm9pZCBSZW1vdGVJbnNw
ZWN0b3JJbml0aWFsaXplR2xvYmFsUXVldWUoKQogICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qg
cHJlZDsKICAgICBkaXNwYXRjaF9vbmNlKCZwcmVkLCBeewogICAgICAgICByd2lRdWV1ZSA9IG5l
dyBSZW1vdGVJbnNwZWN0b3JRdWV1ZTsKKyAgICAgICAgcndpUXVldWVNdXRleCA9IHN0ZDo6bWFr
ZV91bmlxdWU8c3RkOjptdXRleD4oKS5yZWxlYXNlKCk7CiAKICAgICAgICAgQ0ZSdW5Mb29wU291
cmNlQ29udGV4dCBydW5Mb29wU291cmNlQ29udGV4dCA9IHswLCBudWxscHRyLCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBSZW1v
dGVJbnNwZWN0b3JIYW5kbGVSdW5Tb3VyY2VHbG9iYWx9OwogICAgICAgICByd2lSdW5Mb29wU291
cmNlID0gQ0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDEsICZydW5M
b29wU291cmNlQ29udGV4dCk7CkBAIC05NSw3ICs5OCw3IEBAIHN0YXRpYyB2b2lkIFJlbW90ZUlu
c3BlY3RvckhhbmRsZVJ1blNvdXJjZVdpdGhJbmZvKHZvaWQqIGluZm8pCiAKICAgICBSZW1vdGVJ
bnNwZWN0b3JRdWV1ZSBxdWV1ZUNvcHk7CiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TG9jaz4gbG9jayhkZWJ1Z2dhYmxlQ29ubmVjdGlvbi0+cXVldWVNdXRleCgpKTsKKyAgICAgICAg
c3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2soZGVidWdnYWJsZUNvbm5lY3Rpb24tPnF1
ZXVlTXV0ZXgoKSk7CiAgICAgICAgIHF1ZXVlQ29weSA9IGRlYnVnZ2FibGVDb25uZWN0aW9uLT5x
dWV1ZSgpOwogICAgICAgICBkZWJ1Z2dhYmxlQ29ubmVjdGlvbi0+Y2xlYXJRdWV1ZSgpOwogICAg
IH0KQEAgLTE0OSw3ICsxNTIsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvckRlYnVnZ2FibGVDb25u
ZWN0aW9uOjpkaXNwYXRjaEFzeW5jT25EZWJ1Z2dhYmxlKHZvaWQgKF5ibG9jawogCiBib29sIFJl
bW90ZUluc3BlY3RvckRlYnVnZ2FibGVDb25uZWN0aW9uOjpzZXR1cChib29sIGlzQXV0b21hdGlj
SW5zcGVjdGlvbiwgYm9vbCBhdXRvbWF0aWNhbGx5UGF1c2UpCiB7Ci0gICAgc3RkOjpsb2NrX2d1
YXJkPExvY2s+IGxvY2sobV9kZWJ1Z2dhYmxlTXV0ZXgpOworICAgIHN0ZDo6bG9ja19ndWFyZDxz
dGQ6Om11dGV4PiBsb2NrKG1fZGVidWdnYWJsZU11dGV4KTsKIAogICAgIGlmICghbV9kZWJ1Z2dh
YmxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNTcsNyArMTYwLDcgQEAgYm9vbCBSZW1v
dGVJbnNwZWN0b3JEZWJ1Z2dhYmxlQ29ubmVjdGlvbjo6c2V0dXAoYm9vbCBpc0F1dG9tYXRpY0lu
c3BlY3Rpb24sIGJvb2wKICAgICByZWYoKTsKICAgICBkaXNwYXRjaEFzeW5jT25EZWJ1Z2dhYmxl
KF57CiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1f
ZGVidWdnYWJsZU11dGV4KTsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4
PiBsb2NrKG1fZGVidWdnYWJsZU11dGV4KTsKICAgICAgICAgICAgIGlmICghbV9kZWJ1Z2dhYmxl
IHx8ICFtX2RlYnVnZ2FibGUtPnJlbW90ZURlYnVnZ2luZ0FsbG93ZWQoKSB8fCBtX2RlYnVnZ2Fi
bGUtPmhhc0xvY2FsRGVidWdnZXIoKSkgewogICAgICAgICAgICAgICAgIFJlbW90ZUluc3BlY3Rv
cjo6c2luZ2xldG9uKCkuc2V0dXBGYWlsZWQoaWRlbnRpZmllcigpKTsKICAgICAgICAgICAgICAg
ICBtX2RlYnVnZ2FibGUgPSBudWxscHRyOwpAQCAtMTc3LDcgKzE4MCw3IEBAIGJvb2wgUmVtb3Rl
SW5zcGVjdG9yRGVidWdnYWJsZUNvbm5lY3Rpb246OnNldHVwKGJvb2wgaXNBdXRvbWF0aWNJbnNw
ZWN0aW9uLCBib29sCiAKIHZvaWQgUmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZUNvbm5lY3Rpb246
OmNsb3NlRnJvbURlYnVnZ2FibGUoKQogewotICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2Nr
KG1fZGVidWdnYWJsZU11dGV4KTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9j
ayhtX2RlYnVnZ2FibGVNdXRleCk7CiAKICAgICBtX2RlYnVnZ2FibGUgPSBudWxscHRyOwogfQpA
QCAtMTg3LDcgKzE5MCw3IEBAIHZvaWQgUmVtb3RlSW5zcGVjdG9yRGVidWdnYWJsZUNvbm5lY3Rp
b246OmNsb3NlKCkKICAgICByZWYoKTsKICAgICBkaXNwYXRjaEFzeW5jT25EZWJ1Z2dhYmxlKF57
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fZGVi
dWdnYWJsZU11dGV4KTsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBs
b2NrKG1fZGVidWdnYWJsZU11dGV4KTsKIAogICAgICAgICAgICAgaWYgKG1fZGVidWdnYWJsZSkg
ewogICAgICAgICAgICAgICAgIGlmIChtX2Nvbm5lY3RlZCkKQEAgLTIwNyw3ICsyMTAsNyBAQCB2
b2lkIFJlbW90ZUluc3BlY3RvckRlYnVnZ2FibGVDb25uZWN0aW9uOjpzZW5kTWVzc2FnZVRvQmFj
a2VuZChOU1N0cmluZyAqbWVzc2FnZQogICAgICAgICB7CiAgICAgICAgICAgICBSZW1vdGVJbnNw
ZWN0b3JEZWJ1Z2dhYmxlKiBkZWJ1Z2dhYmxlID0gbnVsbHB0cjsKICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9jayhtX2RlYnVnZ2FibGVNdXRl
eCk7CisgICAgICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9k
ZWJ1Z2dhYmxlTXV0ZXgpOwogICAgICAgICAgICAgICAgIGlmICghbV9kZWJ1Z2dhYmxlKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgZGVidWdnYWJsZSA9IG1f
ZGVidWdnYWJsZTsKQEAgLTI2MCw3ICsyNjMsNyBAQCB2b2lkIFJlbW90ZUluc3BlY3RvckRlYnVn
Z2FibGVDb25uZWN0aW9uOjpxdWV1ZVRhc2tPblByaXZhdGVSdW5Mb29wKHZvaWQgKF5ibG9jawog
ICAgIEFTU0VSVChtX3J1bkxvb3ApOwogCiAgICAgewotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8
TG9jaz4gbG9jayhtX3F1ZXVlTXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpt
dXRleD4gbG9jayhtX3F1ZXVlTXV0ZXgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChSZW1vdGVJ
bnNwZWN0b3JCbG9jayhibG9jaykpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0pTU3RhY2suY3BwCmluZGV4IGQ3NTVhYWE3ZGNjNzM3MzRlNGZhNTFmODdk
MWFiNjM5OGU3MzM3ZjcuLjAyNWZlZjA4MzE0NTViZmM2OWZiNzhlZjUzMjM2MjBjZjhlYTMyODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEzLCAyMDE0LCAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwg
MjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDE0ICszMywxNyBAQAogI2luY2x1ZGUgIkludGVycHJl
dGVyLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIk9wdGlvbnMuaCIKLSNp
bmNsdWRlIDx3dGYvTG9jay5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIAogI2lmICFFTkFCTEUoSklU
KQogc3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlc0NvdW50ID0gMDsKIAotc3RhdGljIFN0YXRp
Y0xvY2sgc3RhY2tTdGF0aXN0aWNzTXV0ZXg7CitzdGF0aWMgTXV0ZXgmIHN0YWNrU3RhdGlzdGlj
c011dGV4KCkKK3sKKyAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoTXV0ZXgsIHN0
YXRpY011dGV4LCAoKSk7CisgICAgcmV0dXJuIHN0YXRpY011dGV4OworfSAgICAKICNlbmRpZiAv
LyAhRU5BQkxFKEpJVCkKIAogSlNTdGFjazo6SlNTdGFjayhWTSYgdm0pCkBAIC0xMzYsOSArMTM5
LDE0IEBAIHZvaWQgSlNTdGFjazo6cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCkKICAgICBtX2NvbW1p
dFRvcCA9IGhpZ2hBZGRyZXNzV2l0aFJlc2VydmVkWm9uZTsKIH0KIAordm9pZCBKU1N0YWNrOjpp
bml0aWFsaXplVGhyZWFkaW5nKCkKK3sKKyAgICBzdGFja1N0YXRpc3RpY3NNdXRleCgpOworfQor
CiB2b2lkIEpTU3RhY2s6OmFkZFRvQ29tbWl0dGVkQnl0ZUNvdW50KGxvbmcgYnl0ZUNvdW50KQog
ewotICAgIExvY2tIb2xkZXIgbG9ja2VyKHN0YWNrU3RhdGlzdGljc011dGV4KTsKKyAgICBNdXRl
eExvY2tlciBsb2NrZXIoc3RhY2tTdGF0aXN0aWNzTXV0ZXgoKSk7CiAgICAgQVNTRVJUKHN0YXRp
Y19jYXN0PGxvbmc+KGNvbW1pdHRlZEJ5dGVzQ291bnQpICsgYnl0ZUNvdW50ID4gLTEpOwogICAg
IGNvbW1pdHRlZEJ5dGVzQ291bnQgKz0gYnl0ZUNvdW50OwogfQpAQCAtMTY4LDcgKzE3Niw3IEBA
IFJlZ2lzdGVyKiBKU1N0YWNrOjpoaWdoQWRkcmVzcygpIGNvbnN0CiBzaXplX3QgSlNTdGFjazo6
Y29tbWl0dGVkQnl0ZUNvdW50KCkKIHsKICNpZiAhRU5BQkxFKEpJVCkKLSAgICBMb2NrSG9sZGVy
IGxvY2tlcihzdGFja1N0YXRpc3RpY3NNdXRleCk7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKHN0
YWNrU3RhdGlzdGljc011dGV4KCkpOwogICAgIHJldHVybiBjb21taXR0ZWRCeXRlc0NvdW50Owog
I2Vsc2UKICAgICAvLyBXaGVuIHVzaW5nIHRoZSBDIHN0YWNrLCB3ZSBkb24ndCBrbm93IGhvdyBt
YW55IHN0YWNrIHBhZ2VzIGFyZSBhY3R1YWxseQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9KU1N0YWNrLmgKaW5kZXggMDdjYmJlNjliMjExNDNjZWE2MTlmM2M2Y2MzNWYwOTQx
NzZiNjcxYy4uNDAxZmJjMGM1NWFiZjdjYTExZDRiMDE0ZDZjMmMxYTczMmJiYzgxOCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5oCkBAIC04Miw2ICs4Miw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3Rz
KENvbnNlcnZhdGl2ZVJvb3RzJikgeyB9CiAgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZl
Um9vdHMoQ29uc2VydmF0aXZlUm9vdHMmLCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1Nl
dCYpIHsgfQogICAgICAgICB2b2lkIHNhbml0aXplU3RhY2soKSB7IH0KKyAgICAgICAgc3RhdGlj
IHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpIHsgfQogI2Vsc2UKICAgICAgICAgfkpTU3RhY2so
KTsKIApAQCAtOTYsNiArOTcsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzaXplX3Qg
c2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGhpZ2hBZGRyZXNzKCkgLSBsb3dBZGRyZXNzKCk7IH0KIAor
ICAgICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCk7CisKICAgICAgICAgdm9p
ZCBzZXRSZXNlcnZlZFpvbmVTaXplKHNpemVfdCk7CiAKICAgICAgICAgaW5saW5lIFJlZ2lzdGVy
KiB0b3BPZlN0YWNrKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4
ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRh
YmxlQWxsb2NhdG9yLmNwcAppbmRleCBkMjkxMWEzMTk3ZmQ5MmQxYTY1ZjRlYWVmY2UzYjFkZGYz
MzJhY2RhLi5iYjQ5ZTczNmJjZDU1NGNiZTY3ODIxOWRjYWUwNzc4NTlmNjYwMTA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKQEAg
LTMxLDEwICszMSwxMCBAQAogI2lmIEVOQUJMRShFWEVDVVRBQkxFX0FMTE9DQVRPUl9ERU1BTkQp
CiAjaW5jbHVkZSAiQ29kZVByb2ZpbGluZy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0j
aW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9QYWdlUmVzZXJ2YXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogI2luY2x1ZGUgPHd0
Zi9WTVRhZ3MuaD4KICNlbmRpZgogCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBEZW1h
bmRFeGVjdXRhYmxlQWxsb2NhdG9yKCkKICAgICAgICAgOiBNZXRhQWxsb2NhdG9yKGppdEFsbG9j
YXRpb25HcmFudWxlKQogICAgIHsKLSAgICAgICAgc3RkOjpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+
IGxvY2soYWxsb2NhdG9yc011dGV4KCkpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjpt
dXRleD4gbG9jayhhbGxvY2F0b3JzTXV0ZXgoKSk7CiAgICAgICAgIGFsbG9jYXRvcnMoKS5hZGQo
dGhpcyk7CiAgICAgICAgIC8vIERvbid0IHByZWFsbG9jYXRlIGFueSBtZW1vcnkgaGVyZS4KICAg
ICB9CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5EZW1hbmRFeGVjdXRh
YmxlQWxsb2NhdG9yKCkKICAgICB7CiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0ZDo6bG9ja19n
dWFyZDxTdGF0aWNMb2NrPiBsb2NrKGFsbG9jYXRvcnNNdXRleCgpKTsKKyAgICAgICAgICAgIHN0
ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKGFsbG9jYXRvcnNNdXRleCgpKTsKICAgICAg
ICAgICAgIGFsbG9jYXRvcnMoKS5yZW1vdmUodGhpcyk7CiAgICAgICAgIH0KICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHJlc2VydmF0aW9ucy5zaXplKCk7ICsraSkKQEAgLTc0LDcg
Kzc0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBzaXplX3QgYnl0ZXNBbGxvY2F0ZWRCeUFsbEFs
bG9jYXRvcnMoKQogICAgIHsKICAgICAgICAgc2l6ZV90IHRvdGFsID0gMDsKLSAgICAgICAgc3Rk
Ojpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2soYWxsb2NhdG9yc011dGV4KCkpOworICAgICAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhhbGxvY2F0b3JzTXV0ZXgoKSk7CiAg
ICAgICAgIGZvciAoSGFzaFNldDxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKj46OmNvbnN0X2l0
ZXJhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvcnMoKS5iZWdpbigpOyBhbGxvY2F0b3IgIT0gYWxs
b2NhdG9ycygpLmVuZCgpOyArK2FsbG9jYXRvcikKICAgICAgICAgICAgIHRvdGFsICs9ICgqYWxs
b2NhdG9yKS0+Ynl0ZXNBbGxvY2F0ZWQoKTsKICAgICAgICAgcmV0dXJuIHRvdGFsOwpAQCAtODMs
NyArODMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHNpemVfdCBieXRlc0NvbW1pdHRlZEJ5QWxs
b2NhY3RvcnMoKQogICAgIHsKICAgICAgICAgc2l6ZV90IHRvdGFsID0gMDsKLSAgICAgICAgc3Rk
Ojpsb2NrX2d1YXJkPFN0YXRpY0xvY2s+IGxvY2soYWxsb2NhdG9yc011dGV4KCkpOworICAgICAg
ICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhhbGxvY2F0b3JzTXV0ZXgoKSk7CiAg
ICAgICAgIGZvciAoSGFzaFNldDxEZW1hbmRFeGVjdXRhYmxlQWxsb2NhdG9yKj46OmNvbnN0X2l0
ZXJhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvcnMoKS5iZWdpbigpOyBhbGxvY2F0b3IgIT0gYWxs
b2NhdG9ycygpLmVuZCgpOyArK2FsbG9jYXRvcikKICAgICAgICAgICAgIHRvdGFsICs9ICgqYWxs
b2NhdG9yKS0+Ynl0ZXNDb21taXR0ZWQoKTsKICAgICAgICAgcmV0dXJuIHRvdGFsOwpAQCAtOTIs
NyArOTIsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FVEFfQUxMT0NBVE9SX1BST0ZJTEUpCiAg
ICAgc3RhdGljIHZvaWQgZHVtcFByb2ZpbGVGcm9tQWxsQWxsb2NhdG9ycygpCiAgICAgewotICAg
ICAgICBzdGQ6OmxvY2tfZ3VhcmQ8U3RhdGljTG9jaz4gbG9jayhhbGxvY2F0b3JzTXV0ZXgoKSk7
CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKGFsbG9jYXRvcnNNdXRl
eCgpKTsKICAgICAgICAgZm9yIChIYXNoU2V0PERlbWFuZEV4ZWN1dGFibGVBbGxvY2F0b3IqPjo6
Y29uc3RfaXRlcmF0b3IgYWxsb2NhdG9yID0gYWxsb2NhdG9ycygpLmJlZ2luKCk7IGFsbG9jYXRv
ciAhPSBhbGxvY2F0b3JzKCkuZW5kKCk7ICsrYWxsb2NhdG9yKQogICAgICAgICAgICAgKCphbGxv
Y2F0b3IpLT5kdW1wUHJvZmlsZSgpOwogICAgIH0KQEAgLTEzOCw5ICsxMzgsOSBAQCBwcml2YXRl
OgogICAgICAgICByZXR1cm4gc0FsbG9jYXRvcnM7CiAgICAgfQogCi0gICAgc3RhdGljIFN0YXRp
Y0xvY2smIGFsbG9jYXRvcnNNdXRleCgpCisgICAgc3RhdGljIHN0ZDo6bXV0ZXgmIGFsbG9jYXRv
cnNNdXRleCgpCiAgICAgewotICAgICAgICBzdGF0aWMgU3RhdGljTG9jayBtdXRleDsKKyAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6bXV0ZXg+IG11dGV4OwogCiAgICAgICAgIHJl
dHVybiBtdXRleDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRodW5rcy5jcHAK
aW5kZXggZmE2MTA0NDRhMGQ4Y2Q5YmUzODczYmFiN2JlNGVkNDE0MGEzZTNiZC4uMGE1MGE5MDU0
YzdjYWQ2MWQzNTBmZDJlMmE0MjNjZWZkMmE5YmQzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUVGh1bmtzLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjYsNyArNjYsNyBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIgSklUVGh1bmtzOjpjdGlOYXRpdmVUYWlsQ2FsbChWTSogdm0pCiAKIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiBKSVRUaHVua3M6OmN0aVN0dWIoVk0qIHZtLCBUaHVua0dlbmVyYXRvciBn
ZW5lcmF0b3IpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CiAgICAgQ1RJU3R1Yk1hcDo6QWRkUmVzdWx0IGVudHJ5ID0gbV9jdGlT
dHViTWFwLmFkZChnZW5lcmF0b3IsIE1hY3JvQXNzZW1ibGVyQ29kZVJlZigpKTsKICAgICBpZiAo
ZW50cnkuaXNOZXdFbnRyeSkgewogICAgICAgICAvLyBDb21waWxhdGlvbiB0aHJlYWQgY2FuIG9u
bHkgcmV0cmlldmUgZXhpc3RpbmcgZW50cmllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUVGh1bmtzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFRo
dW5rcy5oCmluZGV4IDJlMDI4ODNmYTJhNGE5ZTFjYWQyNGZhNTIxMzk5ZjEwMjcwMDE0YjMuLjY0
YTA2YjUyYTBhNmYxOWUxYzc3NjU0NzEwMTMwN2MwZWMzNGE2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRUaHVua3MuaApAQCAtNjMsNiArNjMsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
Y2xlYXJIb3N0RnVuY3Rpb25TdHVicygpOwogCiBwcml2YXRlOgorICAgIC8vIE1haW4gdGhyZWFk
IGNhbiBob2xkIHRoaXMgbG9jayBmb3IgYSB3aGlsZSwgc28gdXNlIGFuIGFkYXB0aXZlIG11dGV4
LgorICAgIHR5cGVkZWYgTXV0ZXggTG9jazsKKyAgICB0eXBlZGVmIE11dGV4TG9ja2VyIExvY2tl
cjsKKwogICAgIHZvaWQgZmluYWxpemUoSGFuZGxlPFVua25vd24+LCB2b2lkKiBjb250ZXh0KSBv
dmVycmlkZTsKICAgICAKICAgICB0eXBlZGVmIEhhc2hNYXA8VGh1bmtHZW5lcmF0b3IsIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZj4gQ1RJU3R1Yk1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmNwcAppbmRleCBmYzk1MmMwYzIxMmM3ZjE4
N2RlMWRmZDRhZGVmZTNmYThlNTFhMDc3Li5kNzgzMDVhMTkwYWM4OGViNzkwMmQwMjgwYTgxNzM0
OWE3MzQ3ZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyRGF0YWJhc2UuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIERhdGFiYXNlOjp+RGF0YWJhc2Uo
KQogCiBCeXRlY29kZXMqIERhdGFiYXNlOjplbnN1cmVCeXRlY29kZXNGb3IoQ29kZUJsb2NrKiBj
b2RlQmxvY2spCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICBMb2NrZXIg
bG9ja2VyKG1fbG9jayk7CiAgICAgCiAgICAgY29kZUJsb2NrID0gY29kZUJsb2NrLT5iYXNlbGlu
ZVZlcnNpb24oKTsKICAgICAKQEAgLTc1LDcgKzc1LDcgQEAgQnl0ZWNvZGVzKiBEYXRhYmFzZTo6
ZW5zdXJlQnl0ZWNvZGVzRm9yKENvZGVCbG9jayogY29kZUJsb2NrKQogCiB2b2lkIERhdGFiYXNl
Ojpub3RpZnlEZXN0cnVjdGlvbihDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKLSAgICBMb2NrSG9s
ZGVyIGxvY2tlcihtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIobV9sb2NrKTsKICAgICAKICAg
ICBtX2J5dGVjb2Rlc01hcC5yZW1vdmUoY29kZUJsb2NrKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5oCmluZGV4IDliYjY0Y2Y0OTM5
MjM4N2VkYWY4MTExYzk2OTIzZDg5NTVkYTBhZmMuLjdkNGYzY2YyYzk0YjM5ODNkMmIwMzg2ZjVj
ZDhjZGNlMmIxZmQxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlckRhdGFiYXNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRGF0YWJhc2UuaApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIlByb2ZpbGVy
Q29tcGlsYXRpb25LaW5kLmgiCiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
U2VnbWVudGVkVmVjdG9yLmg+CkBAIC03MSw2ICs3MCwyMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZWdpc3RlclRvU2F2ZUF0RXhpdChjb25zdCBjaGFyKiBmaWxlbmFtZSk7CiAgICAgCiBwcml2YXRl
OgorICAgIC8vIFVzZSBhIGZ1bGwtYmxvd24gYWRhcHRpdmUgbXV0ZXggYmVjYXVzZToKKyAgICAv
LyAtIFRoZXJlIGlzIG9ubHkgb25lIFByb2ZpbGVyRGF0YWJhc2UgcGVyIFZNLiBUaGUgc2l6ZSBv
dmVyaGVhZCBvZiB0aGUgc3lzdGVtJ3MKKyAgICAvLyAgIG11dGV4IGlzIG5lZ2xpZ2libGUgaWYg
eW91IG9ubHkgaGF2ZSBvbmUgb2YgdGhlbS4KKyAgICAvLyAtIEl0J3MgbG9ja2VkIGluZnJlcXVl
bnRseSAtIG9uY2UgcGVyIGJ5dGVjb2RlIGdlbmVyYXRpb24sIGNvbXBpbGF0aW9uLCBhbmQKKyAg
ICAvLyAgIGNvZGUgYmxvY2sgY29sbGVjdGlvbiAtIHNvIHRoZSBmYWN0IHRoYXQgdGhlIGZhc3Qg
cGF0aCBzdGlsbCByZXF1aXJlcyBhCisgICAgLy8gICBmdW5jdGlvbiBjYWxsIGlzIG5lZ2xpYmxl
LgorICAgIC8vIC0gSXQgdGVuZHMgdG8gYmUgaGVsZCBmb3IgYSB3aGlsZS4gQ3VycmVudGx5LCB3
ZSBob2xkIGl0IHdoaWxlIGdlbmVyYXRpbmcKKyAgICAvLyAgIFByb2ZpbGVyOjpCeXRlY29kZXMg
Zm9yIGEgQ29kZUJsb2NrLiBUaGF0J3MgdW5jb21tb24gYW5kIHNob3VsZG4ndCBhZmZlY3QKKyAg
ICAvLyAgIHBlcmZvcm1hbmNlLCBidXQgaWYgd2UgZGlkIGhhdmUgY29udGVudGlvbiwgd2Ugd291
bGQgd2FudCBhIHNlbnNpYmxlLAorICAgIC8vICAgcG93ZXItYXdhcmUgYmFja29mZi4gQW4gYWRh
cHRpdmUgbXV0ZXggd2lsbCBkbyB0aGlzIGFzIGEgbWF0dGVyIG9mIGNvdXJzZSwKKyAgICAvLyAg
IGJ1dCBhIHNwaW5sb2NrIHdvbid0LgorICAgIHR5cGVkZWYgTXV0ZXggTG9jazsKKyAgICB0eXBl
ZGVmIE11dGV4TG9ja2VyIExvY2tlcjsKKyAgICAKKwogICAgIHZvaWQgYWRkRGF0YWJhc2VUb0F0
RXhpdCgpOwogICAgIHZvaWQgcmVtb3ZlRGF0YWJhc2VGcm9tQXRFeGl0KCk7CiAgICAgdm9pZCBw
ZXJmb3JtQXRFeGl0U2F2ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNwcAppbmRleCBkNzQ0NjBmMjA4MzQ1M2Q1
MjdmN2NlMjhiYTQ0NWI0MjFlODQ3ZWUxLi4yZDdhZGJkMGRhNTI2MmM4NDYwOGIyNDNlYmEwYTA5
MTJmNzE2ODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYsNiArNTYsNyBAQCB2b2lkIGluaXRpYWxpemVUaHJl
YWRpbmcoKQogICAgIHN0ZDo6Y2FsbF9vbmNlKGluaXRpYWxpemVUaHJlYWRpbmdPbmNlRmxhZywg
W117CiAgICAgICAgIFdURjo6ZG91YmxlX2NvbnZlcnNpb246OmluaXRpYWxpemUoKTsKICAgICAg
ICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CisgICAgICAgIEdsb2JhbEpTTG9jazo6aW5p
dGlhbGl6ZSgpOwogICAgICAgICBPcHRpb25zOjppbml0aWFsaXplKCk7CiAgICAgICAgIGlmIChP
cHRpb25zOjpyZWNvcmRHQ1BhdXNlVGltZXMoKSkKICAgICAgICAgICAgIEhlYXBTdGF0aXN0aWNz
Ojppbml0aWFsaXplKCk7CkBAIC02NSw2ICs2Niw3IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGlu
ZygpCiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKICAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6
aW5pdGlhbGl6ZUFsbG9jYXRvcigpOwogI2VuZGlmCisgICAgICAgIEpTU3RhY2s6OmluaXRpYWxp
emVUaHJlYWRpbmcoKTsKICAgICAgICAgTExJbnQ6OmluaXRpYWxpemUoKTsKICNpZm5kZWYgTkRF
QlVHCiAgICAgICAgIERpc2FsbG93R0M6OmluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0xvY2suY3BwCmluZGV4IDgyOGRmMTY4YzM0ZTZiZjg2MmM2MDU4MDg1YmU1
NTU5M2Q4YTc0MDcuLjE1MjZkMDk5M2NlYWVlOTQzYzlmMjVjMThkM2ExMjZjYzUyYTFjYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9jay5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcApAQCAtMzAsMTYgKzMwLDIx
IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1TdGF0aWNMb2NrIEdsb2JhbEpTTG9jazo6c19zaGFy
ZWRJbnN0YW5jZU11dGV4Oworc3RkOjptdXRleCogR2xvYmFsSlNMb2NrOjpzX3NoYXJlZEluc3Rh
bmNlTXV0ZXg7CiAKIEdsb2JhbEpTTG9jazo6R2xvYmFsSlNMb2NrKCkKIHsKLSAgICBzX3NoYXJl
ZEluc3RhbmNlTXV0ZXgubG9jaygpOworICAgIHNfc2hhcmVkSW5zdGFuY2VNdXRleC0+bG9jaygp
OwogfQogCiBHbG9iYWxKU0xvY2s6On5HbG9iYWxKU0xvY2soKQogewotICAgIHNfc2hhcmVkSW5z
dGFuY2VNdXRleC51bmxvY2soKTsKKyAgICBzX3NoYXJlZEluc3RhbmNlTXV0ZXgtPnVubG9jaygp
OworfQorCit2b2lkIEdsb2JhbEpTTG9jazo6aW5pdGlhbGl6ZSgpCit7CisgICAgc19zaGFyZWRJ
bnN0YW5jZU11dGV4ID0gbmV3IHN0ZDo6bXV0ZXgoKTsKIH0KIAogSlNMb2NrSG9sZGVyOjpKU0xv
Y2tIb2xkZXIoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNMb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xv
Y2suaAppbmRleCA0ZDBkMTc0MjA3NmNkNTE2NWEyYWNlODFiZDQyMTczYmMxNTY0MmQzLi5jNDMz
OWMwZmRlM2U3NDg5MWNjMDcxNjFmZjNhY2FhMDQwNjFjZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0xvY2suaApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgPG11dGV4Pgog
I2luY2x1ZGUgPHRocmVhZD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUg
PHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtNjEs
OCArNjAsMTAgQEAgY2xhc3MgR2xvYmFsSlNMb2NrIHsKIHB1YmxpYzoKICAgICBKU19FWFBPUlRf
UFJJVkFURSBHbG9iYWxKU0xvY2soKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB+R2xvYmFsSlNM
b2NrKCk7CisKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CiBwcml2YXRlOgotICAgIHN0
YXRpYyBTdGF0aWNMb2NrIHNfc2hhcmVkSW5zdGFuY2VNdXRleDsKKyAgICBzdGF0aWMgc3RkOjpt
dXRleCogc19zaGFyZWRJbnN0YW5jZU11dGV4OwogfTsKIAogY2xhc3MgSlNMb2NrSG9sZGVyIHsK
QEAgLTEzMiw3ICsxMzMsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIGRyb3BBbGxMb2NrcyhE
cm9wQWxsTG9ja3MqKTsKICAgICB2b2lkIGdyYWJBbGxMb2NrcyhEcm9wQWxsTG9ja3MqLCB1bnNp
Z25lZCBsb2NrQ291bnQpOwogCi0gICAgTG9jayBtX2xvY2s7CisgICAgc3RkOjptdXRleCBtX2xv
Y2s7CiAgICAgc3RkOjp0aHJlYWQ6OmlkIG1fb3duZXJUaHJlYWRJRDsKICAgICBpbnRwdHJfdCBt
X2xvY2tDb3VudDsKICAgICB1bnNpZ25lZCBtX2xvY2tEcm9wRGVwdGg7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCmlu
ZGV4IGJkODQxZmJmMDE5NzM1ZDMzNzczMTRiYTA2NDJkYThjZjE0NWM5MTEuLmIxNTVlZjkyMDQ2
MDg5NDVmYzQ2ZTE1YjMxZDNmODc3YTEyMGJkMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0NvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCkBAIC0xMDksNyAr
MTA5LDUgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLXVzaW5nIFdURjo6Q29u
ZGl0aW9uOwotCiAjZW5kaWYgLy8gV1RGX0NvbmRpdGlvbl9oCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaAppbmRleCAzYjU3ODk0Yjlj
YzRiNGZlNGFiODg1YzQ0NGZhYTQ4MGEwYmJmNmExLi5jOWExMTI5Y2QzMGIwMGNjYjRmZDEzMjQw
NTI4Mzk4Yzc0OTQ2YTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKKysrIGIv
U291cmNlL1dURi93dGYvTG9jay5oCkBAIC01NiwyMyArNTYsNiBAQCBzdHJ1Y3QgTG9ja0Jhc2Ug
ewogICAgICAgICBsb2NrU2xvdygpOwogICAgIH0KIAotICAgIGJvb2wgdHJ5TG9jaygpCi0gICAg
ewotICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICB1aW50OF90IGN1cnJlbnRCeXRlVmFs
dWUgPSBtX2J5dGUubG9hZCgpOwotICAgICAgICAgICAgaWYgKGN1cnJlbnRCeXRlVmFsdWUgJiBp
c0hlbGRCaXQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgaWYg
KG1fYnl0ZS5jb21wYXJlRXhjaGFuZ2VXZWFrKGN1cnJlbnRCeXRlVmFsdWUsIGN1cnJlbnRCeXRl
VmFsdWUgfCBpc0hlbGRCaXQpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgLy8gTmVlZCB0aGlzIHZlcnNpb24gZm9yIHN0ZDo6dW5pcXVlX2xv
Y2suCi0gICAgYm9vbCB0cnlfbG9jaygpCi0gICAgewotICAgICAgICByZXR1cm4gdHJ5TG9jaygp
OwotICAgIH0KLQogICAgIHZvaWQgdW5sb2NrKCkKICAgICB7CiAgICAgICAgIGlmIChMSUtFTFko
bV9ieXRlLmNvbXBhcmVFeGNoYW5nZVdlYWsoaXNIZWxkQml0LCAwLCBzdGQ6Om1lbW9yeV9vcmRl
cl9yZWxlYXNlKSkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>