<?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>210664</bug_id>
          
          <creation_ts>2020-04-17 12:14:08 -0700</creation_ts>
          <short_desc>[iOS] Refactor WebKit uploads process assertion logic to minimize chances of leaking them</short_desc>
          <delta_ts>2020-04-17 14:24:27 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210670</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1642766</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-17 12:14:08 -0700</bug_when>
    <thetext>Refactor WebKit uploads process assertion logic to minimize chances of leaking them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642767</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-17 12:14:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/61751982&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642774</commentid>
    <comment_count>2</comment_count>
      <attachid>396782</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-17 12:37:35 -0700</bug_when>
    <thetext>Created attachment 396782
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642798</commentid>
    <comment_count>3</comment_count>
      <attachid>396782</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-04-17 13:37:21 -0700</bug_when>
    <thetext>Comment on attachment 396782
Patch

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

r=me

&gt; Source/WebKit/ChangeLog:17
&gt; +        3. No longer on the WebProcess to send IPC whenever its has pending uploaded or not. Instead,

uploaded =&gt; uploads</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642806</commentid>
    <comment_count>4</comment_count>
      <attachid>396790</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-04-17 13:46:49 -0700</bug_when>
    <thetext>Created attachment 396790
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642831</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-17 14:20:30 -0700</bug_when>
    <thetext>Committed r260283: &lt;https://trac.webkit.org/changeset/260283&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396790.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396782</attachid>
            <date>2020-04-17 12:37:35 -0700</date>
            <delta_ts>2020-04-17 13:46:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210664-20200417123734.patch</filename>
            <type>text/plain</type>
            <size>27565</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzMTc4ZjcxZmI5M2E3ZWQy
YjM5NjM5Y2E2Y2NhMGUzNDcyNTJmZTkuLmJlNzhjMjI1ZmRhOTU3YTc3MDU1NWExMWI3NDU2MDlm
YmZkOGIyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMDQtMTcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBSZWZhY3RvciBXZWJLaXQg
dXBsb2FkcyBwcm9jZXNzIGFzc2VydGlvbiBsb2dpYyB0byBtaW5pbWl6ZSBjaGFuY2VzIG9mIGxl
YWtpbmcgdGhlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwNjY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTc1MTk4Mj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBtaW5pbWl6ZSBjaGFuY2Vz
IG9mIGxlYWtpbmcgIldlYktpdCB1cGxvYWRzIiBwcm9jZXNzIGFzc2VydGlvbiwgdGhlIGZvbGxv
d2luZyByZWZhY3RvcmluZworICAgICAgICB3YXMgZG9uZToKKyAgICAgICAgMS4gV2ViS2l0IHVw
bG9hZCBhc3NlcnRpb25zIGFyZSBub3cgaGVsZCBieSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGluc3Rl
YWQgb2YgdGhlIFdlYlByb2Nlc3NQb29sLgorICAgICAgICAgICBUaGlzIG1ha2VzIG1vcmUgc2Vu
c2Ugc2luY2UgdXBsb2FkcyBhcmUgdGllZCB0byBhIHBhcnRpY3VsYXIgbmV0d29yayBwcm9jZXNz
LiBJbiBiYXNlIG9mCisgICAgICAgICAgIGEgbmV0d29yayBwcm9jZXNzIGNyYXNoLCB3ZSB3b3Vs
ZCBub3Qgd2FudCB0aG9zZSBhc3NlcnRpb25zIHRvIHBlcnNpc3QgZm9yIGV4YW1wbGUuCisgICAg
ICAgIDIuIFN0b3JlIGFsbCB1cGxvYWQgYXNzZXJ0aW9ucyAoVUlQcm9jZXNzICsgTmV0d29ya1By
b2Nlc3MgKyBXZWJQcm9jZXNzZXMpIGludG8gYSBzaW5nbGUKKyAgICAgICAgICAgVXBsb2FkQWN0
aXZpdHkgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gZWFzaWx5IGJlIGNsZWFyZWQuIE1ha2Ugc3Vy
ZSB3ZSBjbGVhciBpdCBvbiBuZXR3b3JrCisgICAgICAgICAgIHByb2Nlc3MgY3Jhc2guCisgICAg
ICAgIDMuIE5vIGxvbmdlciBvbiB0aGUgV2ViUHJvY2VzcyB0byBzZW5kIElQQyB3aGVuZXZlciBp
dHMgaGFzIHBlbmRpbmcgdXBsb2FkZWQgb3Igbm90LiBJbnN0ZWFkLAorICAgICAgICAgICBoYXZl
IHRoZSBuZXR3b3JrIHByb2Nlc3Mgc2VuZCBzdWNoIElQQy4gVGhpcyBtYWtlcyBtb3JlIHNlbnNl
LCBlc3BlY2lhbGx5IG5vdyB0aGF0IGFsbAorICAgICAgICAgICB3ZWJraXQgdXBsb2FkIHByb2Nl
c3MgYXNzZXJ0aW9ucyBhcmUgbm93IHN0b3JlZCBvbiBOZXR3b3JrUHJvY2Vzc1Byb3h5LiBJdCBh
bHNvIG1ha2VzIGl0CisgICAgICAgICAgIHNvIHRoYXQgd2UgZGVhbCBwcm9wZXJseSB3aXRoIFdl
YlByb2Nlc3MgY3Jhc2hlcy4gSW4gY2FzZSBvZiBhIFdlYlByb2Nlc3MgY3Jhc2gsIGl0cworICAg
ICAgICAgICBjb25uZWN0aW9uIHRvIHRoZSBuZXR3b3JrIHByb2Nlc3Mgd2lsbCBnZXQgY2xvc2Vk
LiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UoKQorICAgICAgICAgICBn
ZXRzIGNhbGxlZCBhbmQgY2F1c2VzIGFsbCBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgb2JqZWN0cyBm
b3IgdGhpcyBjb25uZWN0aW9uIHRvIGdldAorICAgICAgICAgICBkZXN0cm95ZWQuIEFzIGEgcmVz
dWx0LCB0aGUgbmV0d29yayBwcm9jZXNzIHdpbGwgcHJvcGVybHkgbm90aWZ5IHRoZSBVSVByb2Nl
c3MgdGhhdCB0aGlzCisgICAgICAgICAgIHByb2Nlc3Mgbm8gbG9uZ2VyIGhhcyBhbnkgdXBsb2Fk
IGluIHByb2dyZXNzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fk5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6Omhhc1VwbG9hZFN0YXRlQ2hhbmdlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZE1hcDo6TmV0d29ya1Jlc291cmNlTG9hZE1hcCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSZXNvdXJjZUxvYWRNYXA6On5OZXR3b3JrUmVzb3VyY2VMb2FkTWFwKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZE1hcDo6YWRkKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZE1hcDo6Y2xlYXIpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UmVzb3VyY2VMb2FkTWFwOjp0YWtlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZE1hcDo6c2V0SGFzVXBsb2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkTWFwLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRN
YXA6Omhhc1VwbG9hZCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0V2Vi
UHJvY2Vzc0hhc1VwbG9hZHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaDoKKyAgICAgICAgKFdl
YktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6cGlkIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Ojp+V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxl
TG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0
ZWd5OjpyZW1vdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5Lmg6CisKIDIwMjAtMDQtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1gxMV0gUkVHUkVTU0lPTihyMjU5OTQ0
KTogV3JvbmcgcG9zaXRpb24gb2Ygc2VsZWN0IHBvcHVwIG1lbnUgaW4gWDExCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IGVlMTI1ZTU3ZTAxY2U2Mjg5Y2VhYzgyM2NjNDc3NTM0Nzky
Mjc2NWYuLjJiY2EyMjJhMjE0MmY5NjRmOWU4MWExMDNlZjYwYTM1YzQ1NGI5NTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0xMDUsNiArMTA1LDcgQEAgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKE5ldHdvcmtQcm9j
ZXNzJiBuZXQKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZl
ckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAgICAsIG1fbmV0d29y
a1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisg
ICAgLCBtX25ldHdvcmtSZXNvdXJjZUxvYWRlcnMoW3RoaXNdKGJvb2wgaGFzVXBsb2FkKSB7IGhh
c1VwbG9hZFN0YXRlQ2hhbmdlZChoYXNVcGxvYWQpOyB9KQogI2lmIEVOQUJMRShXRUJfUlRDKQog
ICAgICwgbV9tZG5zUmVnaXN0ZXIoKnRoaXMpCiAjZW5kaWYKQEAgLTEzMSw2ICsxMzIsOSBAQCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKCkKIAogICAgIG1fY29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwogCisgICAgLy8gVGhpcyBt
YXkgY2FsbCBoYXNVcGxvYWRTdGF0ZUNoYW5nZWQoKS4KKyAgICBtX25ldHdvcmtSZXNvdXJjZUxv
YWRlcnMuY2xlYXIoKTsKKwogICAgIGZvciAoYXV0byYgcG9ydCA6IG1fcHJvY2Vzc0VudGFuZ2xl
ZFBvcnRzKQogICAgICAgICBuZXR3b3JrUHJvY2VzcygpLm1lc3NhZ2VQb3J0Q2hhbm5lbFJlZ2lz
dHJ5KCkuZGlkQ2xvc2VNZXNzYWdlUG9ydChwb3J0KTsKIApAQCAtMTQ5LDYgKzE1MywxMiBAQCBO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6fk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKCkKICNlbmRpZgogfQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpo
YXNVcGxvYWRTdGF0ZUNoYW5nZWQoYm9vbCBoYXNVcGxvYWQpCit7CisgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRChMb2FkaW5nLCAiaGFzVXBsb2FkU3RhdGVDaGFuZ2VkIC0gV2ViUHJvY2VzcyAl
bGx1IC0gaGFzVXBsb2FkOiAlZCIsIHdlYlByb2Nlc3NJZGVudGlmaWVyKCkudG9VSW50NjQoKSwg
aGFzVXBsb2FkKTsKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpTZXRXZWJQcm9jZXNzSGFz
VXBsb2FkcyhtX3dlYlByb2Nlc3NJZGVudGlmaWVyLCBoYXNVcGxvYWQpLCAwKTsKK30KKwogdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xlYW51cFJlc291cmNlTG9hZGVy
KE5ldHdvcmtSZXNvdXJjZUxvYWRlciYgbG9hZGVyKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGxv
YWRlci5pZGVudGlmaWVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDAzODhiMWFk
ZmM1MGFhNzc5Yjg1ZWM1YWY3ZGE0N2I1MzYzZTFmOGIuLmY1YzAzY2M4M2Q3MWY4ZjdiOTdkYjE4
ZWQ4ZmI0NDVkODY3Y2M0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTMxNCw2ICsz
MTQsOCBAQCBwcml2YXRlOgogICAgIHNpemVfdCBmaW5kUm9vdE5ldHdvcmtBY3Rpdml0eShXZWJD
b3JlOjpQYWdlSWRlbnRpZmllcik7CiAgICAgc2l6ZV90IGZpbmROZXR3b3JrQWN0aXZpdHlUcmFj
a2VyKFJlc291cmNlTG9hZElkZW50aWZpZXIgcmVzb3VyY2VJRCk7CiAKKyAgICB2b2lkIGhhc1Vw
bG9hZFN0YXRlQ2hhbmdlZChib29sKTsKKwogI2lmIEVOQUJMRShBUFBMRV9QQVlfUkVNT1RFX1VJ
KQogICAgIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5JiBwYXltZW50Q29vcmRpbmF0b3IoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZE1hcC5jcHAKaW5kZXggNzNlOGNhYjE5NzU0MTRhYjgwNmZjNGM0ZThhOTYxOTNmODcz
NmUyMi4uN2RmMDhiMmM2N2Y2OGRlOTAzYTI0ZjVjZGIwZTg3Y2ViNGQ2ZmIyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRN
YXAuY3BwCkBAIC0yOSwxMCArMjksMjQgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK05ldHdv
cmtSZXNvdXJjZUxvYWRNYXA6Ok5ldHdvcmtSZXNvdXJjZUxvYWRNYXAoRnVuY3Rpb248dm9pZChi
b29sIGhhc1VwbG9hZCk+JiYgaGFzVXBsb2FkQ2hhbmdlTGlzdGVuZXIpCisgICAgOiBtX2hhc1Vw
bG9hZENoYW5nZUxpc3RlbmVyKFdURk1vdmUoaGFzVXBsb2FkQ2hhbmdlTGlzdGVuZXIpKQorewor
fQorCitOZXR3b3JrUmVzb3VyY2VMb2FkTWFwOjp+TmV0d29ya1Jlc291cmNlTG9hZE1hcCgpCit7
CisgICAgY2xlYXIoKTsKK30KKwogTmV0d29ya1Jlc291cmNlTG9hZE1hcDo6TWFwVHlwZTo6QWRk
UmVzdWx0IE5ldHdvcmtSZXNvdXJjZUxvYWRNYXA6OmFkZChSZXNvdXJjZUxvYWRJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+JiYgbG9hZGVyKQogewogICAg
IEFTU0VSVCghbV9sb2FkZXJzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICByZXR1cm4gbV9s
b2FkZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGxvYWRlcikpOworICAgIGJvb2wgaGFzVXBs
b2FkID0gbG9hZGVyLT5vcmlnaW5hbFJlcXVlc3QoKS5oYXNVcGxvYWQoKTsKKyAgICBhdXRvIHJl
c3VsdCA9IG1fbG9hZGVycy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShsb2FkZXIpKTsKKyAgICBp
ZiAoaGFzVXBsb2FkKQorICAgICAgICBzZXRIYXNVcGxvYWQodHJ1ZSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAogYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkTWFwOjpyZW1vdmUoUmVzb3VyY2VM
b2FkSWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtNDAsMTEgKzU0LDIxIEBAIGJvb2wgTmV0d29y
a1Jlc291cmNlTG9hZE1hcDo6cmVtb3ZlKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmll
cikKICAgICByZXR1cm4gISF0YWtlKGlkZW50aWZpZXIpOwogfQogCit2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRNYXA6OmNsZWFyKCkKK3sKKyAgICBtX2xvYWRlcnMuY2xlYXIoKTsKKyAgICBzZXRI
YXNVcGxvYWQoZmFsc2UpOworfQorCiBSZWZQdHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPiBOZXR3
b3JrUmVzb3VyY2VMb2FkTWFwOjp0YWtlKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmll
cikKIHsKICAgICBhdXRvIGxvYWRlciA9IG1fbG9hZGVycy50YWtlKGlkZW50aWZpZXIpOwogICAg
IGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICgoKmxvYWRl
ciktPm9yaWdpbmFsUmVxdWVzdCgpLmhhc1VwbG9hZCgpKQorICAgICAgICBzZXRIYXNVcGxvYWQo
V1RGOjphbnlPZihtX2xvYWRlcnMudmFsdWVzKCksIFtdKGF1dG8mIGxvYWRlcikgeyByZXR1cm4g
bG9hZGVyLT5vcmlnaW5hbFJlcXVlc3QoKS5oYXNVcGxvYWQoKTsgfSkpOworCiAgICAgcmV0dXJu
IFdURk1vdmUoKmxvYWRlcik7CiB9CiAKQEAgLTUzLDQgKzc3LDE0IEBAIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlciogTmV0d29ya1Jlc291cmNlTG9hZE1hcDo6Z2V0KFJlc291cmNlTG9hZElkZW50aWZp
ZXIgaWRlbnRpCiAgICAgcmV0dXJuIG1fbG9hZGVycy5nZXQoaWRlbnRpZmllcik7CiB9CiAKK3Zv
aWQgTmV0d29ya1Jlc291cmNlTG9hZE1hcDo6c2V0SGFzVXBsb2FkKGJvb2wgaGFzVXBsb2FkKQor
eworICAgIGlmIChtX2hhc1VwbG9hZCA9PSBoYXNVcGxvYWQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1faGFzVXBsb2FkID0gaGFzVXBsb2FkOworICAgIGlmIChtX2hhc1VwbG9hZENoYW5nZUxp
c3RlbmVyKQorICAgICAgICBtX2hhc1VwbG9hZENoYW5nZUxpc3RlbmVyKG1faGFzVXBsb2FkKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCmluZGV4IDRmN2EwOGFlYjg0NGVj
YTYyOGU3NDZjMmQ2M2ExYjA3OWExNTJhYTUuLjdiMmI4MzhlODNiOTQ5NjQxYWIwNTI5YTk1ZGJl
ZjU0MzcwMjI5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZE1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Jlc291cmNlTG9hZE1hcC5oCkBAIC00MiwxOSArNDIsMjggQEAgdHlwZWRlZiB1aW50
NjRfdCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZE1h
cCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJlc291cmNlTG9hZElkZW50aWZpZXIs
IFJlZjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+PiBNYXBUeXBlOworICAgIE5ldHdvcmtSZXNvdXJj
ZUxvYWRNYXAoRnVuY3Rpb248dm9pZChib29sIGhhc1VwbG9hZCk+JiYpOworICAgIH5OZXR3b3Jr
UmVzb3VyY2VMb2FkTWFwKCk7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBt
X2xvYWRlcnMuaXNFbXB0eSgpOyB9CiAgICAgYm9vbCBjb250YWlucyhSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZGVycy5jb250YWlucyhpZGVu
dGlmaWVyKTsgfQogICAgIE1hcFR5cGU6Oml0ZXJhdG9yIGJlZ2luKCkgeyByZXR1cm4gbV9sb2Fk
ZXJzLmJlZ2luKCk7IH0KICAgICBNYXBUeXBlOjpWYWx1ZXNJdGVyYXRvclJhbmdlIHZhbHVlcygp
IHsgcmV0dXJuIG1fbG9hZGVycy52YWx1ZXMoKTsgfQorICAgIHZvaWQgY2xlYXIoKTsKIAogICAg
IE1hcFR5cGU6OkFkZFJlc3VsdCBhZGQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgUmVmPE5ldHdv
cmtSZXNvdXJjZUxvYWRlcj4mJik7CiAgICAgTmV0d29ya1Jlc291cmNlTG9hZGVyKiBnZXQoUmVz
b3VyY2VMb2FkSWRlbnRpZmllcikgY29uc3Q7CiAgICAgYm9vbCByZW1vdmUoUmVzb3VyY2VMb2Fk
SWRlbnRpZmllcik7CiAgICAgUmVmUHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gdGFrZShSZXNv
dXJjZUxvYWRJZGVudGlmaWVyKTsKIAorICAgIGJvb2wgaGFzVXBsb2FkKCkgY29uc3QgeyByZXR1
cm4gbV9oYXNVcGxvYWQ7IH0KKwogcHJpdmF0ZToKKyAgICB2b2lkIHNldEhhc1VwbG9hZChib29s
KTsKKwogICAgIE1hcFR5cGUgbV9sb2FkZXJzOworICAgIGJvb2wgbV9oYXNVcGxvYWQgeyBmYWxz
ZSB9OworICAgIEZ1bmN0aW9uPHZvaWQoYm9vbCBoYXNVcGxvYWQpPiBtX2hhc1VwbG9hZENoYW5n
ZUxpc3RlbmVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCA5NzhlMjMyYTY4ZGExZTM4ZWUzMjY2ZGI1OWI3OWMwYTVjZjQyNWNjLi4wODVlNDRjNzYzZmI0
MDNlYmViNDE3MTUwZDhlMjZlNDU5Y2Y5MzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTI3NCw2ICsy
NzQsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlv
biYpCiAgICAgbV9zeW5jQWxsQ29va2llc0FjdGl2aXR5ID0gbnVsbHB0cjsKICAgICBtX3N5bmNB
bGxDb29raWVzQ291bnRlciA9IDA7CiAKKyAgICBtX3VwbG9hZEFjdGl2aXR5ID0gV1RGOjpudWxs
b3B0OworCiAgICAgLy8gVGhpcyB3aWxsIGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQuCiAgICAgbmV0
d29ya1Byb2Nlc3NDcmFzaGVkKCk7CiB9CkBAIC0xMzU1LDE2ICsxMzU3LDQyIEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6dW5yZWdpc3RlclNjaGVtZUZvckxlZ2FjeUN1c3RvbVByb3RvY29s
KGNvbnN0IFN0cmluZyYKICNlbmRpZgogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnRh
a2VVcGxvYWRBc3NlcnRpb24oKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQcm9j
ZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSUQsIGJvb2wg
aGFzVXBsb2FkKQogewotICAgIEFTU0VSVCghbV91cGxvYWRBc3NlcnRpb24pOwotICAgIG1fdXBs
b2FkQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihwcm9jZXNzSWRlbnRp
ZmllcigpLCAiV2ViS2l0IHVwbG9hZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5k
ZWROZXR3b3JraW5nKTsKLX0KKyAgICBpZiAoIWhhc1VwbG9hZCkgeworICAgICAgICBpZiAoIW1f
dXBsb2FkQWN0aXZpdHkpCisgICAgICAgICAgICByZXR1cm47CiAKLXZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6Y2xlYXJVcGxvYWRBc3NlcnRpb24oKQotewotICAgIEFTU0VSVChtX3VwbG9hZEFz
c2VydGlvbik7Ci0gICAgbV91cGxvYWRBc3NlcnRpb24gPSBudWxscHRyOworICAgICAgICBhdXRv
IGFzc2VydGlvbiA9IG1fdXBsb2FkQWN0aXZpdHktPndlYlByb2Nlc3NBc3NlcnRpb25zLnRha2Uo
cHJvY2Vzc0lEKTsKKyAgICAgICAgaWYgKCFhc3NlcnRpb24pCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZXRXZWJQcm9jZXNzSGFzVXBsb2FkczogUmVsZWFzaW5nIHVwbG9hZCBhc3NlcnRp
b24gb24gYmVoYWxmIG9mIFdlYlByb2Nlc3Mgd2l0aCBQSUQgJWQiLCBhc3NlcnRpb24tPnBpZCgp
KTsKKworICAgICAgICBpZiAobV91cGxvYWRBY3Rpdml0eS0+d2ViUHJvY2Vzc0Fzc2VydGlvbnMu
aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
Ik5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFdlYlByb2Nlc3NIYXNVcGxvYWRzOiBUaGUgbnVtYmVy
IG9mIHVwbG9hZHMgaW4gcHJvZ3Jlc3MgaXMgbm93IHplcm8uIFJlbGVhc2luZyBOZXR3b3JraW5n
IGFuZCBVSSBwcm9jZXNzIGFzc2VydGlvbnMuIik7CisgICAgICAgICAgICBtX3VwbG9hZEFjdGl2
aXR5ID0gV1RGOjpudWxsb3B0OworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvKiBwcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzRm9ySWRlbnRpZmll
cihwcm9jZXNzSUQpOworICAgIGlmICghcHJvY2VzcykKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKCFtX3VwbG9hZEFjdGl2aXR5KSB7CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHM6IFRo
ZSBudW1iZXIgb2YgdXBsb2FkcyBpbiBwcm9ncmVzcyBpcyBub3cgZ3JlYXRlciB0aGFuIDAuIFRh
a2luZyBOZXR3b3JraW5nIGFuZCBVSSBwcm9jZXNzIGFzc2VydGlvbnMuIik7CisgICAgICAgIG1f
dXBsb2FkQWN0aXZpdHkgPSBVcGxvYWRBY3Rpdml0eSB7CisgICAgICAgICAgICBtYWtlVW5pcXVl
PFByb2Nlc3NBc3NlcnRpb24+KGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIldlYktpdCB1cGxvYWRz
Il9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyksCisgICAgICAg
ICAgICBtYWtlVW5pcXVlPFByb2Nlc3NBc3NlcnRpb24+KHByb2Nlc3NJZGVudGlmaWVyKCksICJX
ZWJLaXQgdXBsb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtp
bmcpLAorICAgICAgICAgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgc3Rk
Ojp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+PigpCisgICAgICAgIH07CisgICAgfQorCisg
ICAgbV91cGxvYWRBY3Rpdml0eS0+d2ViUHJvY2Vzc0Fzc2VydGlvbnMuZW5zdXJlKHByb2Nlc3NJ
RCwgWyZdIHsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRXZWJQcm9jZXNzSGFzVXBsb2FkczogVGFraW5nIHVwbG9hZCBhc3Nl
cnRpb24gb24gYmVoYWxmIG9mIFdlYlByb2Nlc3Mgd2l0aCBQSUQgJWQiLCBwcm9jZXNzLT5wcm9j
ZXNzSWRlbnRpZmllcigpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2Vy
dGlvbj4ocHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRzIl9zLCBQ
cm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAgfSk7CiB9CiAK
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNzYWdl
c1doZW5XYWl0aW5nRm9yU3luY1JlcGx5KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6VGVzdFByb2Nlc3NJbmNvbWluZ1N5bmNNZXNz
YWdlc1doZW5XYWl0aW5nRm9yU3luY1JlcGx5OjpEZWxheWVkUmVwbHkmJiByZXBseSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKaW5kZXggMDU0MWVmYWZlYmIzOWVjMzdiODE2NzFjZTZmYzc2MTVlNzRmMGJjOS4uYjg2NTdh
MmYwYjljNzA0YzIzMTAwNTNmMjViMDY5ODY5MGQ4ZDcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTIwMSw5
ICsyMDEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRTZXNzaW9uKFJlZjxXZWJzaXRlRGF0YVN0
b3JlPiYmKTsKICAgICB2b2lkIHJlbW92ZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogICAgIAot
ICAgIHZvaWQgdGFrZVVwbG9hZEFzc2VydGlvbigpOwotICAgIHZvaWQgY2xlYXJVcGxvYWRBc3Nl
cnRpb24oKTsKLSAgICAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICB2b2lkIGNy
ZWF0ZVN5bUxpbmtGb3JGaWxlVXBncmFkZShjb25zdCBTdHJpbmcmIGluZGV4ZWREYXRhYmFzZURp
cmVjdG9yeSk7CiAjZW5kaWYKQEAgLTI1NSw2ICsyNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkRmV0Y2hXZWJzaXRlRGF0YShDYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYpOwogICAg
IHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGEoQ2FsbGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxl
dGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoQ2FsbGJhY2tJRCk7CisgICAgdm9pZCBzZXRXZWJQcm9j
ZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgYm9vbCk7CiAgICAgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZShXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNob3VsZFNh
bXBsZSk7CiAgICAgdm9pZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhSZXN1bHQoV2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uLCB1aW50MzJfdCByZXN1bHQsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAgICAgdm9p
ZCBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIGRvdWJsZSB2
YWx1ZSwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBXZWJDb3JlOjpTaG91bGRTYW1wbGUp
OwpAQCAtMzExLDggKzMwOSwxMyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBIYXNoTWFwPFBB
TDo6U2Vzc2lvbklELCBSZWZQdHI8V2Vic2l0ZURhdGFTdG9yZT4+IG1fd2Vic2l0ZURhdGFTdG9y
ZXM7Ci0gICAgCi0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+IG1fdXBsb2Fk
QXNzZXJ0aW9uOworCisgICAgc3RydWN0IFVwbG9hZEFjdGl2aXR5IHsKKyAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+IHVpQXNzZXJ0aW9uOworICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbmV0d29ya0Fzc2VydGlvbjsKKyAgICAgICAgSGFz
aE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NB
c3NlcnRpb24+PiB3ZWJQcm9jZXNzQXNzZXJ0aW9uczsKKyAgICB9OworICAgIE9wdGlvbmFsPFVw
bG9hZEFjdGl2aXR5PiBtX3VwbG9hZEFjdGl2aXR5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMzRhOTFjYzYzY2VhYmE4ZjE2
ODJjNzliODJhOWQwNWE5Mjg1N2JkNi4uYmU1NTg3ODhiNmNmMzBmYjEwYjk1NmMyMWRjZmM5MzVl
NTRhNDU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjUsNiArNjUsOCBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNv
dW50ZWQgewogICAgIFVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKQogI2VuZGlmCiAKKyAg
ICBTZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm9j
ZXNzSUQsIGJvb2wgaGFzVXBsb2FkKQorCiAgICAgUmVxdWVzdFN0b3JhZ2VTcGFjZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCB1
aW50NjRfdCBxdW90YSwgdWludDY0X3QgY3VycmVudFNpemUsIHVpbnQ2NF90IHNwYWNlUmVxdWly
ZWQpIC0+IChPcHRpb25hbDx1aW50NjRfdD4gbmV3UXVvdGEpIEFzeW5jCiAgICAgCiAgICAgUmVz
b3VyY2VMb2FkRGlkU2VuZFJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBh
Z2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpSZXNvdXJjZUxvYWRJbmZvIHJlc291cmNlTG9h
ZEluZm8sIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBPcHRpb25hbDxJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlPiBodHRwQm9keSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
Y2Vzc0Fzc2VydGlvbi5jcHAKaW5kZXggNjMyZTQ1NmQ2Y2VkZmU4ODljZTJmOGVmYjQ3MGQxOTBj
MzRkNzZiNy4uYjVhOTAxNDFkZDBmMWEwYmI3Y2VmMTBlNjE1ZTc1MTE5NDkyYmFmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKQEAgLTMyLDggKzMy
LDkgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NB
c3NlcnRpb24oUHJvY2Vzc0lELCBBU0NJSUxpdGVyYWwsIFByb2Nlc3NBc3NlcnRpb25UeXBlIGFz
c2VydGlvblR5cGUpCitQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKFByb2Nlc3NJ
RCBwaWQsIEFTQ0lJTGl0ZXJhbCwgUHJvY2Vzc0Fzc2VydGlvblR5cGUgYXNzZXJ0aW9uVHlwZSkK
ICAgICA6IG1fYXNzZXJ0aW9uVHlwZShhc3NlcnRpb25UeXBlKQorICAgICwgbV9waWQocGlkKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKaW5kZXgg
ZWUwYzhkYjRhZTgwODc5YTc5ZTc4NzQ2NzcxMmYzYWZmNDg4ZGVjZi4uZDdiMDUwMWU1Mjg4M2Vj
ZTA3NjFmNWJmODc3NGU5NmYwM2U0MWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b2Nlc3NBc3NlcnRpb24uaApAQCAtNjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAgQ2xpZW50KiBj
bGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgUHJvY2Vzc0Fzc2VydGlvblR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXNzZXJ0aW9uVHlwZTsgfQorICAgIFByb2Nlc3NJRCBw
aWQoKSBjb25zdCB7IHJldHVybiBtX3BpZDsgfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
IHByb3RlY3RlZDoKQEAgLTgwLDggKzgxLDggQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAg
IGNvbnN0IFByb2Nlc3NBc3NlcnRpb25UeXBlIG1fYXNzZXJ0aW9uVHlwZTsKLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIGNvbnN0IFByb2Nlc3NJRCBtX3BpZDsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxSQlNBc3NlcnRpb24+IG1fcmJzQXNzZXJ0aW9uOwog
ICAgIFJldGFpblB0cjxXS1JCU0Fzc2VydGlvbkRlbGVnYXRlPiBtX2RlbGVnYXRlOwogICAgIFJl
dGFpblB0cjxCS1NQcm9jZXNzQXNzZXJ0aW9uPiBtX2Jrc0Fzc2VydGlvbjsgLy8gTGVnYWN5Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDk3MzdmZDM0
MTg0YmM5MTY4OTE2MDA4OGQ3NDVmMzhkNGZlOTc4NWQuLmNhNmEzZmNiODYyNjRiOWU4MmM0MzUz
YTQ3YzZlMjhkNzhjZjBlZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKQEAgLTIzNTAsNTQgKzIzNTAsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZWVk
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haQog
fQogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldFdlYlByb2Nlc3NIYXNVcGxvYWRz
KFByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJRCkKLXsKLSAgICBBU1NFUlQocHJvY2Vzc0lEKTsK
LSAgICBhdXRvKiBwcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzRm9ySWRlbnRpZmll
cihwcm9jZXNzSUQpOwotICAgIEFTU0VSVChwcm9jZXNzKTsKLQotICAgIGlmICghcHJvY2VzcykK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgV0VCUFJPQ0VTU1BPT0xfUkVMRUFTRV9MT0coUHJvY2Vz
c1N1c3BlbnNpb24sICJzZXRXZWJQcm9jZXNzSGFzVXBsb2FkczogV2ViIHByb2Nlc3Mgbm93IGhh
cyB1cGxvYWRzIGluIHByb2dyZXNzIChwcm9jZXNzPSVwLCBQSUQ9JWkpIiwgcHJvY2VzcywgcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSk7Ci0KLSAgICBpZiAobV9wcm9jZXNzZXNXaXRoVXBs
b2Fkcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgV0VCUFJPQ0VTU1BPT0xfUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICJzZXRXZWJQcm9jZXNzSGFzVXBsb2FkczogVGhlIG51bWJlciBvZiB1
cGxvYWRzIGluIHByb2dyZXNzIGlzIG5vdyBvbmUuIFRha2luZyBOZXR3b3JraW5nIGFuZCBVSSBw
cm9jZXNzIGFzc2VydGlvbnMuIik7Ci0KLSAgICAgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS50
YWtlVXBsb2FkQXNzZXJ0aW9uKCk7Ci0gICAgICAgIAotICAgICAgICBBU1NFUlQoIW1fdWlQcm9j
ZXNzVXBsb2FkQXNzZXJ0aW9uKTsKLSAgICAgICAgbV91aVByb2Nlc3NVcGxvYWRBc3NlcnRpb24g
PSBtYWtlVW5pcXVlPFByb2Nlc3NBc3NlcnRpb24+KGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIldl
YktpdCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2lu
Zyk7Ci0gICAgfQotICAgIAotICAgIGF1dG8gcmVzdWx0ID0gbV9wcm9jZXNzZXNXaXRoVXBsb2Fk
cy5hZGQocHJvY2Vzc0lELCBudWxscHRyKTsKLSAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50cnkp
OwotICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBtYWtlVW5pcXVlPFByb2Nlc3NBc3NlcnRp
b24+KHByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgdXBsb2FkcyJfcywgUHJv
Y2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOwotfQotCi12b2lkIFdlYlBy
b2Nlc3NQb29sOjpjbGVhcldlYlByb2Nlc3NIYXNVcGxvYWRzKFByb2Nlc3NJZGVudGlmaWVyIHBy
b2Nlc3NJRCkKLXsKLSAgICBBU1NFUlQocHJvY2Vzc0lEKTsKLSAgICBhdXRvIHJlc3VsdCA9IG1f
cHJvY2Vzc2VzV2l0aFVwbG9hZHMudGFrZShwcm9jZXNzSUQpOwotICAgIGlmICghcmVzdWx0KQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvKiBwcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5Ojpw
cm9jZXNzRm9ySWRlbnRpZmllcihwcm9jZXNzSUQpOwotICAgIEFTU0VSVF9VTlVTRUQocHJvY2Vz
cywgcHJvY2Vzcyk7Ci0gICAgV0VCUFJPQ0VTU1BPT0xfUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICJjbGVhcldlYlByb2Nlc3NIYXNVcGxvYWRzOiBXZWIgcHJvY2VzcyBubyBsb25nZXIg
aGFzIHVwbG9hZHMgaW4gcHJvZ3Jlc3MgKHByb2Nlc3M9JXAsIFBJRD0laSkiLCBwcm9jZXNzLCBw
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpKTsKLQotICAgIGlmIChtX3Byb2Nlc3Nlc1dpdGhV
cGxvYWRzLmlzRW1wdHkoKSkgewotICAgICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPRyhQ
cm9jZXNzU3VzcGVuc2lvbiwgImNsZWFyV2ViUHJvY2Vzc0hhc1VwbG9hZHM6IFRoZSBudW1iZXIg
b2YgdXBsb2FkcyBpbiBwcm9ncmVzcyBpcyBub3cgemVyby4gUmVsZWFzaW5nIE5ldHdvcmtpbmcg
YW5kIFVJIHByb2Nlc3MgYXNzZXJ0aW9ucy4iKTsKLQotICAgICAgICBpZiAobV9uZXR3b3JrUHJv
Y2VzcykKLSAgICAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPmNsZWFyVXBsb2FkQXNzZXJ0aW9u
KCk7Ci0gICAgICAgIAotICAgICAgICBBU1NFUlQobV91aVByb2Nlc3NVcGxvYWRBc3NlcnRpb24p
OwotICAgICAgICBtX3VpUHJvY2Vzc1VwbG9hZEFzc2VydGlvbiA9IG51bGxwdHI7Ci0gICAgfQot
ICAgIAotfQotCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRXZWJQcm9jZXNzSXNQbGF5aW5nQXVk
aWJsZU1lZGlhKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJRCkKIHsKICAgICBh
dXRvKiBwcm9jZXNzID0gV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzRm9ySWRlbnRpZmllcihwcm9j
ZXNzSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggZWQ1
NzhkMDIxMjM4OGQyODc5NzY0YzYzMDNhMjNmODU3Yzg2YTEyNC4uNjMyNzg5YzRhZGNiMzc4OTgy
ZjMwZTI2MWVkMDkyNWJjNjJiNjI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCkBAIC01MTYsOSArNTE2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VXNlck1l
c3NhZ2VIYW5kbGVyKEZ1bmN0aW9uPHZvaWQoVXNlck1lc3NhZ2UmJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChVc2VyTWVzc2FnZSYmKT4mJik+JiYgaGFuZGxlcikgeyBtX3VzZXJNZXNzYWdlSGFu
ZGxlciA9IFdURk1vdmUoaGFuZGxlcik7IH0KICAgICBjb25zdCBGdW5jdGlvbjx2b2lkKFVzZXJN
ZXNzYWdlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVXNlck1lc3NhZ2UmJik+JiYpPiYgdXNl
ck1lc3NhZ2VIYW5kbGVyKCkgY29uc3QgeyByZXR1cm4gbV91c2VyTWVzc2FnZUhhbmRsZXI7IH0K
ICNlbmRpZgotICAgIAotICAgIHZvaWQgc2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHMoV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXIpOwotICAgIHZvaWQgY2xlYXJXZWJQcm9jZXNzSGFzVXBsb2FkcyhX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7CiAKICAgICB2b2lkIHNldFdlYlByb2Nlc3NJc1Bs
YXlpbmdBdWRpYmxlTWVkaWEoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIHZvaWQg
Y2xlYXJXZWJQcm9jZXNzSXNQbGF5aW5nQXVkaWJsZU1lZGlhKFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyKTsKQEAgLTc5MCw5ICs3ODcsNiBAQCBwcml2YXRlOgogICAgIEZ1bmN0aW9uPHZvaWQo
VXNlck1lc3NhZ2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChVc2VyTWVzc2FnZSYmKT4mJik+
IG1fdXNlck1lc3NhZ2VIYW5kbGVyOwogI2VuZGlmCiAKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+IG1fcHJv
Y2Vzc2VzV2l0aFVwbG9hZHM7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+
IG1fdWlQcm9jZXNzVXBsb2FkQXNzZXJ0aW9uOwotCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+PiBtX3Byb2Nl
c3Nlc1BsYXlpbmdBdWRpYmxlTWVkaWE7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3Nl
cnRpb24+IG1fdWlQcm9jZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlvbjsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV9ncHVQcm9jZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlv
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2Fn
ZXMuaW4KaW5kZXggNjhhZGVkNzc5ZDAzOWRiNzc1NDQ2Y2Y0NjkzZTUwMmYyYzczYTcxNy4uODg4
MTI1YmZjM2Y2M2RhYmZkZTYzNzdlMWYxYzRmZDY3M2M0NzcxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2FnZXMuaW4KQEAgLTMwLDcgKzMw
LDQgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Bvb2wgewogI2VuZGlmCiAKICAgICBSZXBvcnRX
ZWJDb250ZW50Q1BVVGltZShTZWNvbmRzIGNwdVRpbWUsIHVpbnQ2NF90IGFjdGl2aXR5U3RhdGUp
Ci0KLSAgICBTZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ciBwcm9jZXNzSUQpCi0gICAgQ2xlYXJXZWJQcm9jZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciBwcm9jZXNzSUQpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlY2M1YmE0OGZjYzNkOGM0MjljYWYyM2Y3ZDgxYmIxOGRh
YjJmMDJjLi4yMjhkYjE4MjhmNTg4N2JhZmNlZTI4NjY2ZTNiMTcwODdmMzRhMjdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTIxNSw5ICsyMTUs
NiBAQCBXZWJQcm9jZXNzUHJveHk6On5XZWJQcm9jZXNzUHJveHkoKQogICAgIFJFTEVBU0VfQVNT
RVJUKGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpKTsKICAgICBBU1NFUlQobV9wYWdlVVJM
UmV0YWluQ291bnRNYXAuaXNFbXB0eSgpKTsKIAotICAgIGlmIChtX3Byb2Nlc3NQb29sKQotICAg
ICAgICBtX3Byb2Nlc3NQb29sLT5jbGVhcldlYlByb2Nlc3NIYXNVcGxvYWRzKGNvcmVQcm9jZXNz
SWRlbnRpZmllcigpKTsKLQogICAgIGF1dG8gcmVzdWx0ID0gYWxsUHJvY2Vzc2VzKCkucmVtb3Zl
KGNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVz
dWx0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAz
YWIxYjhlMjM5ZWU2NDFkYTI0ODQ2ZGZmNDZlNzUxMzZlMzlkOWNlLi44NDMyODMyYWRlZWE3Nzcw
OWYyMjI3NTk2NjBmMjc5NGNjY2I0ZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nl
c3NQcm94eS5oIgogI2luY2x1ZGUgIkJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1l
ci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgorI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJQbHVnaW5JbmZvU3RvcmUuaCIKICNpbmNsdWRlICJQ
cm9jZXNzTGF1bmNoZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCIK
QEAgLTc4LDcgKzc5LDYgQEAgZW51bSBjbGFzcyBUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
IDogdWludDhfdDsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0
aW5nQXJiaXRyYXRvclByb3h5OwotY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94eTsKIGNsYXNzIE9i
akNPYmplY3RHcmFwaDsKIGNsYXNzIFBhZ2VDbGllbnQ7CiBjbGFzcyBQcm92aXNpb25hbFBhZ2VQ
cm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcAppbmRleCAxNWYzZjhlOWQ4OWI2M2ExYzZhNTM1ZTE1NmY3NjRmNmRl
ZTNiNjA2Li4yM2ZhMTkzNTI1ZmZmM2EzY2ZmNGJmODEwNDY5YWU4NGMwMTRmY2E4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwCkBAIC0zOTcsMTIgKzM5Nyw2IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVk
dWxlTG9hZEZyb21OZXR3b3JrUHJvY2VzcyhSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2VMCiAgICAg
fQogCiAgICAgYXV0byBsb2FkZXIgPSBXZWJSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKHJlc291cmNl
TG9hZGVyLCB0cmFja2luZ1BhcmFtZXRlcnMpOwotICAgIGlmIChyZXNvdXJjZUxvYWRlci5vcmln
aW5hbFJlcXVlc3QoKS5oYXNVcGxvYWQoKSkgewotICAgICAgICBpZiAobV9sb2FkZXJzV2l0aFVw
bG9hZHMuaXNFbXB0eSgpKQotICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlNl
dFdlYlByb2Nlc3NIYXNVcGxvYWRzKFByb2Nlc3M6OmlkZW50aWZpZXIoKSksIDApOwotICAgICAg
ICBtX2xvYWRlcnNXaXRoVXBsb2Fkcy5hZGQobG9hZGVyLnB0cigpKTsKLSAgICB9Ci0KICAgICBt
X3dlYlJlc291cmNlTG9hZGVycy5zZXQoaWRlbnRpZmllciwgV1RGTW92ZShsb2FkZXIpKTsKIH0K
IApAQCAtNDY0LDkgKzQ1OCw2IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnJlbW92ZShSZXNv
dXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIpCiAKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlbW92ZUxvYWRJZGVudGlmaWVy
KGlkZW50aWZpZXIpLCAwKTsKIAotICAgIGlmIChtX2xvYWRlcnNXaXRoVXBsb2Fkcy5yZW1vdmUo
bG9hZGVyLmdldCgpKSAmJiBtX2xvYWRlcnNXaXRoVXBsb2Fkcy5pc0VtcHR5KCkpCi0gICAgICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpDbGVhcldlYlByb2Nlc3NIYXNVcGxvYWRzIHsgUHJv
Y2Vzczo6aWRlbnRpZmllcigpIH0sIDApOwotCiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRo
aXMgV2ViUmVzb3VyY2VMb2FkZXIgbWlnaHQgYmUganVzdCBhYm91dCB0byBtZXNzYWdlIGJhY2sg
dG8gdGhlIE5ldHdvcmtQcm9jZXNzIChlLmcuIENvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KQogICAg
IC8vIGJ1dCB0aGVyZSdzIG5vIHBvaW50IGluIGRvaW5nIHNvIGFueW1vcmUuCiAgICAgbG9hZGVy
LT5kZXRhY2hGcm9tQ29yZUxvYWRlcigpOwpAQCAtNjE0LDEwICs2MDUsNiBAQCB2b2lkIFdlYkxv
YWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KEZyYW1lTG9hZGVyJiBmcmFt
ZUxvYWRlciwgdW5zaQogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlz
YWJsZXI7CiAgICAgSVBDOjpVbmJvdW5kZWRTeW5jaHJvbm91c0lQQ1Njb3BlIHVuYm91bmRlZFN5
bmNocm9ub3VzSVBDU2NvcGU7CiAKLSAgICBib29sIHNob3VsZE5vdGlmeU9mVXBsb2FkID0gcmVx
dWVzdC5oYXNVcGxvYWQoKSAmJiBtX2xvYWRlcnNXaXRoVXBsb2Fkcy5pc0VtcHR5KCk7Ci0gICAg
aWYgKHNob3VsZE5vdGlmeU9mVXBsb2FkKQotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUG9v
bDo6U2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHMgeyBQcm9jZXNzOjppZGVudGlmaWVyKCkgfSwgMCk7
Ci0KICAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZU5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQobG9hZFBhcmFtZXRlcnMp
LCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJv
bm91c0xvYWQ6OlJlcGx5KGVycm9yLCByZXNwb25zZSwgZGF0YSksIDApKSB7CiAgICAgICAgIFdF
QkxPQURFUlNUUkFURUdZX1dJVEhfRlJBTUVMT0FERVJfUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxM
T1dFRCgibG9hZFJlc291cmNlU3luY2hyb25vdXNseTogZmFpbGVkIHNlbmRpbmcgc3luY2hyb25v
dXMgbmV0d29yayBwcm9jZXNzIG1lc3NhZ2UiKTsKICAgICAgICAgaWYgKHBhZ2UpCkBAIC02MjUs
OSArNjEyLDYgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShGcmFtZUxvYWRlciYgZnJhbWVMb2FkZXIsIHVuc2kKICAgICAgICAgcmVzcG9uc2UgPSBS
ZXNvdXJjZVJlc3BvbnNlKCk7CiAgICAgICAgIGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0
LnVybCgpKTsKICAgICB9Ci0KLSAgICBpZiAoc2hvdWxkTm90aWZ5T2ZVcGxvYWQpCi0gICAgICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpDbGVhcldlYlByb2Nlc3NIYXNVcGxvYWRzIHsgUHJv
Y2Vzczo6aWRlbnRpZmllcigpIH0sIDApOwogfQogCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpw
YWdlTG9hZENvbXBsZXRlZChQYWdlJiBwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKaW5kZXggMjJmNjQ0ZmQ3ZjQ1MGQz
MmVhNDVmOTdlMjc0ODhlZjVmMzRjMTUzYS4uMjgzYWZhYjM0ZDJkNzMyMzUyMTlmOWFhZDgwZjYw
MjhhOWI2ZmFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC0xMjYsNyArMTI2LDYgQEAgcHJpdmF0ZToKICAgICBI
YXNoTWFwPHVuc2lnbmVkIGxvbmcsIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcj4gbV9wcmVj
b25uZWN0Q29tcGxldGlvbkhhbmRsZXJzOwogICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKGJvb2wp
Pj4gbV9vbmxpbmVTdGF0ZUNoYW5nZUxpc3RlbmVyczsKICAgICBib29sIG1faXNPbkxpbmUgeyB0
cnVlIH07Ci0gICAgSGFzaFNldDxXZWJSZXNvdXJjZUxvYWRlcio+IG1fbG9hZGVyc1dpdGhVcGxv
YWRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396790</attachid>
            <date>2020-04-17 13:46:49 -0700</date>
            <delta_ts>2020-04-17 14:20:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210664-20200417134648.patch</filename>
            <type>text/plain</type>
            <size>27561</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzMTc4ZjcxZmI5M2E3ZWQy
YjM5NjM5Y2E2Y2NhMGUzNDcyNTJmZTkuLjMwM2Y3NWE4MTU5MzYwMjljZDIwNzUwOWQ4MTA3ODAz
YjMyZjJmY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjAtMDQtMTcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBSZWZhY3RvciBXZWJLaXQg
dXBsb2FkcyBwcm9jZXNzIGFzc2VydGlvbiBsb2dpYyB0byBtaW5pbWl6ZSBjaGFuY2VzIG9mIGxl
YWtpbmcgdGhlbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwNjY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTc1MTk4Mj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBUbyBtaW5pbWl6ZSBjaGFuY2VzIG9m
IGxlYWtpbmcgIldlYktpdCB1cGxvYWRzIiBwcm9jZXNzIGFzc2VydGlvbiwgdGhlIGZvbGxvd2lu
ZyByZWZhY3RvcmluZworICAgICAgICB3YXMgZG9uZToKKyAgICAgICAgMS4gV2ViS2l0IHVwbG9h
ZCBhc3NlcnRpb25zIGFyZSBub3cgaGVsZCBieSBOZXR3b3JrUHJvY2Vzc1Byb3h5IGluc3RlYWQg
b2YgdGhlIFdlYlByb2Nlc3NQb29sLgorICAgICAgICAgICBUaGlzIG1ha2VzIG1vcmUgc2Vuc2Ug
c2luY2UgdXBsb2FkcyBhcmUgdGllZCB0byBhIHBhcnRpY3VsYXIgbmV0d29yayBwcm9jZXNzLiBJ
biBiYXNlIG9mCisgICAgICAgICAgIGEgbmV0d29yayBwcm9jZXNzIGNyYXNoLCB3ZSB3b3VsZCBu
b3Qgd2FudCB0aG9zZSBhc3NlcnRpb25zIHRvIHBlcnNpc3QgZm9yIGV4YW1wbGUuCisgICAgICAg
IDIuIFN0b3JlIGFsbCB1cGxvYWQgYXNzZXJ0aW9ucyAoVUlQcm9jZXNzICsgTmV0d29ya1Byb2Nl
c3MgKyBXZWJQcm9jZXNzZXMpIGludG8gYSBzaW5nbGUKKyAgICAgICAgICAgVXBsb2FkQWN0aXZp
dHkgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gZWFzaWx5IGJlIGNsZWFyZWQuIE1ha2Ugc3VyZSB3
ZSBjbGVhciBpdCBvbiBuZXR3b3JrCisgICAgICAgICAgIHByb2Nlc3MgY3Jhc2guCisgICAgICAg
IDMuIE5vIGxvbmdlciBvbiB0aGUgV2ViUHJvY2VzcyB0byBzZW5kIElQQyB3aGVuZXZlciBpdHMg
aGFzIHBlbmRpbmcgdXBsb2FkcyBvciBub3QuIEluc3RlYWQsCisgICAgICAgICAgIGhhdmUgdGhl
IG5ldHdvcmsgcHJvY2VzcyBzZW5kIHN1Y2ggSVBDLiBUaGlzIG1ha2VzIG1vcmUgc2Vuc2UsIGVz
cGVjaWFsbHkgbm93IHRoYXQgYWxsCisgICAgICAgICAgIHdlYmtpdCB1cGxvYWQgcHJvY2VzcyBh
c3NlcnRpb25zIGFyZSBub3cgc3RvcmVkIG9uIE5ldHdvcmtQcm9jZXNzUHJveHkuIEl0IGFsc28g
bWFrZXMgaXQKKyAgICAgICAgICAgc28gdGhhdCB3ZSBkZWFsIHByb3Blcmx5IHdpdGggV2ViUHJv
Y2VzcyBjcmFzaGVzLiBJbiBjYXNlIG9mIGEgV2ViUHJvY2VzcyBjcmFzaCwgaXRzCisgICAgICAg
ICAgIGNvbm5lY3Rpb24gdG8gdGhlIG5ldHdvcmsgcHJvY2VzcyB3aWxsIGdldCBjbG9zZWQuIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbG9zZSgpCisgICAgICAgICAgIGdldHMg
Y2FsbGVkIGFuZCBjYXVzZXMgYWxsIE5ldHdvcmtSZXNvdXJjZUxvYWRlciBvYmplY3RzIGZvciB0
aGlzIGNvbm5lY3Rpb24gdG8gZ2V0CisgICAgICAgICAgIGRlc3Ryb3llZC4gQXMgYSByZXN1bHQs
IHRoZSBuZXR3b3JrIHByb2Nlc3Mgd2lsbCBwcm9wZXJseSBub3RpZnkgdGhlIFVJUHJvY2VzcyB0
aGF0IHRoaXMKKyAgICAgICAgICAgcHJvY2VzcyBubyBsb25nZXIgaGFzIGFueSB1cGxvYWQgaW4g
cHJvZ3Jlc3MuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
aGFzVXBsb2FkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkTWFwOjpOZXR3b3JrUmVzb3VyY2VMb2FkTWFwKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Jlc291cmNlTG9hZE1hcDo6fk5ldHdvcmtSZXNvdXJjZUxvYWRNYXApOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkTWFwOjphZGQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkTWFwOjpjbGVhcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRNYXA6OnRha2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2Fk
TWFwOjpzZXRIYXNVcGxvYWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRNYXAuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZE1hcDo6
aGFzVXBsb2FkIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlk
Q2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQcm9j
ZXNzSGFzVXBsb2Fkcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzQXNzZXJ0aW9uOjpwaWQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6On5XZWJQcm9jZXNzUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2Fk
RnJvbU5ldHdvcmtQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6
OnJlbW92ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuaDoKKwogMjAyMC0wNC0xNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bWDExXSBSRUdSRVNTSU9OKHIyNTk5NDQpOiBX
cm9uZyBwb3NpdGlvbiBvZiBzZWxlY3QgcG9wdXAgbWVudSBpbiBYMTEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggZWUxMjVlNTdlMDFjZTYyODljZWFjODIzY2M0Nzc1MzQ3OTIyNzY1
Zi4uMmJjYTIyMmEyMTQyZjk2NGY5ZTgxYTEwM2VmNjBhMzVjNDU0Yjk1MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKQEAgLTEwNSw2ICsxMDUsNyBAQCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoTmV0d29ya1Byb2Nlc3Mm
IG5ldAogICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29u
bmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQogICAgICwgbV9uZXR3b3JrUHJv
Y2VzcyhuZXR3b3JrUHJvY2VzcykKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKKyAgICAs
IG1fbmV0d29ya1Jlc291cmNlTG9hZGVycyhbdGhpc10oYm9vbCBoYXNVcGxvYWQpIHsgaGFzVXBs
b2FkU3RhdGVDaGFuZ2VkKGhhc1VwbG9hZCk7IH0pCiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAgICAg
LCBtX21kbnNSZWdpc3RlcigqdGhpcykKICNlbmRpZgpAQCAtMTMxLDYgKzEzMiw5IEBAIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
KQogCiAgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7CiAKKyAgICAvLyBUaGlzIG1heSBj
YWxsIGhhc1VwbG9hZFN0YXRlQ2hhbmdlZCgpLgorICAgIG1fbmV0d29ya1Jlc291cmNlTG9hZGVy
cy5jbGVhcigpOworCiAgICAgZm9yIChhdXRvJiBwb3J0IDogbV9wcm9jZXNzRW50YW5nbGVkUG9y
dHMpCiAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkubWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnko
KS5kaWRDbG9zZU1lc3NhZ2VQb3J0KHBvcnQpOwogCkBAIC0xNDksNiArMTUzLDEyIEBAIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp+TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
KQogI2VuZGlmCiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1Vw
bG9hZFN0YXRlQ2hhbmdlZChib29sIGhhc1VwbG9hZCkKK3sKKyAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKExvYWRpbmcsICJoYXNVcGxvYWRTdGF0ZUNoYW5nZWQgLSBXZWJQcm9jZXNzICVsbHUg
LSBoYXNVcGxvYWQ6ICVkIiwgd2ViUHJvY2Vzc0lkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBoYXNV
cGxvYWQpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OlNldFdlYlByb2Nlc3NIYXNVcGxv
YWRzKG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIsIGhhc1VwbG9hZCksIDApOworfQorCiB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRDbGVhbnVwUmVzb3VyY2VMb2FkZXIoTmV0
d29ya1Jlc291cmNlTG9hZGVyJiBsb2FkZXIpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobG9hZGVy
LmlkZW50aWZpZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggMDM4OGIxYWRmYzUw
YWE3NzliODVlYzVhZjdkYTQ3YjUzNjNlMWY4Yi4uZjVjMDNjYzgzZDcxZjhmN2I5N2RiMThlZDhm
YjQ0NWQ4NjdjYzRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzE0LDYgKzMxNCw4
IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IGZpbmRSb290TmV0d29ya0FjdGl2aXR5KFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKTsKICAgICBzaXplX3QgZmluZE5ldHdvcmtBY3Rpdml0eVRyYWNrZXIo
UmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUlEKTsKIAorICAgIHZvaWQgaGFzVXBsb2Fk
U3RhdGVDaGFuZ2VkKGJvb2wpOworCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRU1PVEVfVUkpCiAg
ICAgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkmIHBheW1lbnRDb29yZGluYXRvcigpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRNYXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkTWFwLmNwcAppbmRleCA3M2U4Y2FiMTk3NTQxNGFiODA2ZmM0YzRlOGE5NjE5M2Y4NzM2ZTIy
Li43ZGYwOGIyYzY3ZjY4ZGU5MDNhMjRmNWNkYjBlODdjZWI0ZDZmYjJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRNYXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5j
cHAKQEAgLTI5LDEwICsyOSwyNCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorTmV0d29ya1Jl
c291cmNlTG9hZE1hcDo6TmV0d29ya1Jlc291cmNlTG9hZE1hcChGdW5jdGlvbjx2b2lkKGJvb2wg
aGFzVXBsb2FkKT4mJiBoYXNVcGxvYWRDaGFuZ2VMaXN0ZW5lcikKKyAgICA6IG1faGFzVXBsb2Fk
Q2hhbmdlTGlzdGVuZXIoV1RGTW92ZShoYXNVcGxvYWRDaGFuZ2VMaXN0ZW5lcikpCit7Cit9CisK
K05ldHdvcmtSZXNvdXJjZUxvYWRNYXA6On5OZXR3b3JrUmVzb3VyY2VMb2FkTWFwKCkKK3sKKyAg
ICBjbGVhcigpOworfQorCiBOZXR3b3JrUmVzb3VyY2VMb2FkTWFwOjpNYXBUeXBlOjpBZGRSZXN1
bHQgTmV0d29ya1Jlc291cmNlTG9hZE1hcDo6YWRkKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRl
bnRpZmllciwgUmVmPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4mJiBsb2FkZXIpCiB7CiAgICAgQVNT
RVJUKCFtX2xvYWRlcnMuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgIHJldHVybiBtX2xvYWRl
cnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUobG9hZGVyKSk7CisgICAgYm9vbCBoYXNVcGxvYWQg
PSBsb2FkZXItPm9yaWdpbmFsUmVxdWVzdCgpLmhhc1VwbG9hZCgpOworICAgIGF1dG8gcmVzdWx0
ID0gbV9sb2FkZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKGxvYWRlcikpOworICAgIGlmICho
YXNVcGxvYWQpCisgICAgICAgIHNldEhhc1VwbG9hZCh0cnVlKTsKKyAgICByZXR1cm4gcmVzdWx0
OwogfQogCiBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRNYXA6OnJlbW92ZShSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCkBAIC00MCwxMSArNTQsMjEgQEAgYm9vbCBOZXR3b3JrUmVz
b3VyY2VMb2FkTWFwOjpyZW1vdmUoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ICAgIHJldHVybiAhIXRha2UoaWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZE1hcDo6Y2xlYXIoKQoreworICAgIG1fbG9hZGVycy5jbGVhcigpOworICAgIHNldEhhc1Vw
bG9hZChmYWxzZSk7Cit9CisKIFJlZlB0cjxOZXR3b3JrUmVzb3VyY2VMb2FkZXI+IE5ldHdvcmtS
ZXNvdXJjZUxvYWRNYXA6OnRha2UoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewogICAgIGF1dG8gbG9hZGVyID0gbV9sb2FkZXJzLnRha2UoaWRlbnRpZmllcik7CiAgICAgaWYg
KCFsb2FkZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKCgqbG9hZGVyKS0+
b3JpZ2luYWxSZXF1ZXN0KCkuaGFzVXBsb2FkKCkpCisgICAgICAgIHNldEhhc1VwbG9hZChXVEY6
OmFueU9mKG1fbG9hZGVycy52YWx1ZXMoKSwgW10oYXV0byYgbG9hZGVyKSB7IHJldHVybiBsb2Fk
ZXItPm9yaWdpbmFsUmVxdWVzdCgpLmhhc1VwbG9hZCgpOyB9KSk7CisKICAgICByZXR1cm4gV1RG
TW92ZSgqbG9hZGVyKTsKIH0KIApAQCAtNTMsNCArNzcsMTQgQEAgTmV0d29ya1Jlc291cmNlTG9h
ZGVyKiBOZXR3b3JrUmVzb3VyY2VMb2FkTWFwOjpnZXQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBp
ZGVudGkKICAgICByZXR1cm4gbV9sb2FkZXJzLmdldChpZGVudGlmaWVyKTsKIH0KIAordm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkTWFwOjpzZXRIYXNVcGxvYWQoYm9vbCBoYXNVcGxvYWQpCit7Cisg
ICAgaWYgKG1faGFzVXBsb2FkID09IGhhc1VwbG9hZCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9oYXNVcGxvYWQgPSBoYXNVcGxvYWQ7CisgICAgaWYgKG1faGFzVXBsb2FkQ2hhbmdlTGlzdGVu
ZXIpCisgICAgICAgIG1faGFzVXBsb2FkQ2hhbmdlTGlzdGVuZXIobV9oYXNVcGxvYWQpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgKaW5kZXggNGY3YTA4YWViODQ0ZWNhNjI4
ZTc0NmMyZDYzYTFiMDc5YTE1MmFhNS4uN2IyYjgzOGU4M2I5NDk2NDFhYjA1MjlhOTVkYmVmNTQz
NzAyMjlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkTWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUmVzb3VyY2VMb2FkTWFwLmgKQEAgLTQyLDE5ICs0MiwyOCBAQCB0eXBlZGVmIHVpbnQ2NF90
IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkTWFwIHsK
IHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8UmVzb3VyY2VMb2FkSWRlbnRpZmllciwgUmVm
PE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4+IE1hcFR5cGU7CisgICAgTmV0d29ya1Jlc291cmNlTG9h
ZE1hcChGdW5jdGlvbjx2b2lkKGJvb2wgaGFzVXBsb2FkKT4mJik7CisgICAgfk5ldHdvcmtSZXNv
dXJjZUxvYWRNYXAoKTsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9h
ZGVycy5pc0VtcHR5KCk7IH0KICAgICBib29sIGNvbnRhaW5zKFJlc291cmNlTG9hZElkZW50aWZp
ZXIgaWRlbnRpZmllcikgY29uc3QgeyByZXR1cm4gbV9sb2FkZXJzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpOyB9CiAgICAgTWFwVHlwZTo6aXRlcmF0b3IgYmVnaW4oKSB7IHJldHVybiBtX2xvYWRlcnMu
YmVnaW4oKTsgfQogICAgIE1hcFR5cGU6OlZhbHVlc0l0ZXJhdG9yUmFuZ2UgdmFsdWVzKCkgeyBy
ZXR1cm4gbV9sb2FkZXJzLnZhbHVlcygpOyB9CisgICAgdm9pZCBjbGVhcigpOwogCiAgICAgTWFw
VHlwZTo6QWRkUmVzdWx0IGFkZChSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBSZWY8TmV0d29ya1Jl
c291cmNlTG9hZGVyPiYmKTsKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkZXIqIGdldChSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyKSBjb25zdDsKICAgICBib29sIHJlbW92ZShSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyKTsKICAgICBSZWZQdHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPiB0YWtlKFJlc291cmNl
TG9hZElkZW50aWZpZXIpOwogCisgICAgYm9vbCBoYXNVcGxvYWQoKSBjb25zdCB7IHJldHVybiBt
X2hhc1VwbG9hZDsgfQorCiBwcml2YXRlOgorICAgIHZvaWQgc2V0SGFzVXBsb2FkKGJvb2wpOwor
CiAgICAgTWFwVHlwZSBtX2xvYWRlcnM7CisgICAgYm9vbCBtX2hhc1VwbG9hZCB7IGZhbHNlIH07
CisgICAgRnVuY3Rpb248dm9pZChib29sIGhhc1VwbG9hZCk+IG1faGFzVXBsb2FkQ2hhbmdlTGlz
dGVuZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDk3
OGUyMzJhNjhkYTFlMzhlZTMyNjZkYjU5Yjc5YzBhNWNmNDI1Y2MuLjA4NWU0NGM3NjNmYjQwM2Vi
ZWI0MTcxNTBkOGUyNmU0NTljZjkzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjc0LDYgKzI3NCw4
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikK
ICAgICBtX3N5bmNBbGxDb29raWVzQWN0aXZpdHkgPSBudWxscHRyOwogICAgIG1fc3luY0FsbENv
b2tpZXNDb3VudGVyID0gMDsKIAorICAgIG1fdXBsb2FkQWN0aXZpdHkgPSBXVEY6Om51bGxvcHQ7
CisKICAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KICAgICBuZXR3b3Jr
UHJvY2Vzc0NyYXNoZWQoKTsKIH0KQEAgLTEzNTUsMTYgKzEzNTcsNDIgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5Ojp1bnJlZ2lzdGVyU2NoZW1lRm9yTGVnYWN5Q3VzdG9tUHJvdG9jb2woY29u
c3QgU3RyaW5nJgogI2VuZGlmCiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dGFrZVVw
bG9hZEFzc2VydGlvbigpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFdlYlByb2Nlc3NI
YXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJRCwgYm9vbCBoYXNV
cGxvYWQpCiB7Ci0gICAgQVNTRVJUKCFtX3VwbG9hZEFzc2VydGlvbik7Ci0gICAgbV91cGxvYWRB
c3NlcnRpb24gPSBtYWtlVW5pcXVlPFByb2Nlc3NBc3NlcnRpb24+KHByb2Nlc3NJZGVudGlmaWVy
KCksICJXZWJLaXQgdXBsb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5l
dHdvcmtpbmcpOwotfQorICAgIGlmICghaGFzVXBsb2FkKSB7CisgICAgICAgIGlmICghbV91cGxv
YWRBY3Rpdml0eSkKKyAgICAgICAgICAgIHJldHVybjsKIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpjbGVhclVwbG9hZEFzc2VydGlvbigpCi17Ci0gICAgQVNTRVJUKG1fdXBsb2FkQXNzZXJ0
aW9uKTsKLSAgICBtX3VwbG9hZEFzc2VydGlvbiA9IG51bGxwdHI7CisgICAgICAgIGF1dG8gYXNz
ZXJ0aW9uID0gbV91cGxvYWRBY3Rpdml0eS0+d2ViUHJvY2Vzc0Fzc2VydGlvbnMudGFrZShwcm9j
ZXNzSUQpOworICAgICAgICBpZiAoIWFzc2VydGlvbikKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIk5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldFdlYlByb2Nlc3NIYXNVcGxvYWRzOiBSZWxlYXNpbmcgdXBsb2FkIGFzc2VydGlvbiBv
biBiZWhhbGYgb2YgV2ViUHJvY2VzcyB3aXRoIFBJRCAlZCIsIGFzc2VydGlvbi0+cGlkKCkpOwor
CisgICAgICAgIGlmIChtX3VwbG9hZEFjdGl2aXR5LT53ZWJQcm9jZXNzQXNzZXJ0aW9ucy5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiTmV0
d29ya1Byb2Nlc3NQcm94eTo6c2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHM6IFRoZSBudW1iZXIgb2Yg
dXBsb2FkcyBpbiBwcm9ncmVzcyBpcyBub3cgemVyby4gUmVsZWFzaW5nIE5ldHdvcmtpbmcgYW5k
IFVJIHByb2Nlc3MgYXNzZXJ0aW9ucy4iKTsKKyAgICAgICAgICAgIG1fdXBsb2FkQWN0aXZpdHkg
PSBXVEY6Om51bGxvcHQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGF1dG8qIHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NGb3JJZGVudGlmaWVyKHBy
b2Nlc3NJRCk7CisgICAgaWYgKCFwcm9jZXNzKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IW1fdXBsb2FkQWN0aXZpdHkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICJOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQcm9jZXNzSGFzVXBsb2FkczogVGhlIG51
bWJlciBvZiB1cGxvYWRzIGluIHByb2dyZXNzIGlzIG5vdyBncmVhdGVyIHRoYW4gMC4gVGFraW5n
IE5ldHdvcmtpbmcgYW5kIFVJIHByb2Nlc3MgYXNzZXJ0aW9ucy4iKTsKKyAgICAgICAgbV91cGxv
YWRBY3Rpdml0eSA9IFVwbG9hZEFjdGl2aXR5IHsKKyAgICAgICAgICAgIG1ha2VVbmlxdWU8UHJv
Y2Vzc0Fzc2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IHVwbG9hZHMiX3Ms
IFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKSwKKyAgICAgICAgICAg
IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktp
dCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyks
CisgICAgICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+KCkKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBt
X3VwbG9hZEFjdGl2aXR5LT53ZWJQcm9jZXNzQXNzZXJ0aW9ucy5lbnN1cmUocHJvY2Vzc0lELCBb
Jl0geworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIk5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNldFdlYlByb2Nlc3NIYXNVcGxvYWRzOiBUYWtpbmcgdXBsb2FkIGFzc2VydGlv
biBvbiBiZWhhbGYgb2YgV2ViUHJvY2VzcyB3aXRoIFBJRCAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJ
ZGVudGlmaWVyKCkpOworICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9u
Pihwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IHVwbG9hZHMiX3MsIFByb2Nl
c3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKKyAgICB9KTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp0ZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2VzV2hl
bldhaXRpbmdGb3JTeW5jUmVwbHkoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpUZXN0UHJvY2Vzc0luY29taW5nU3luY01lc3NhZ2Vz
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHk6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApp
bmRleCAwNTQxZWZhZmViYjM5ZWMzN2I4MTY3MWNlNmZjNzYxNWU3NGYwYmM5Li5iODY1N2EyZjBi
OWM3MDRjMjMxMDA1M2YyNWIwNjk4NjkwZDhkNzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjAxLDkgKzIw
MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFNlc3Npb24oUmVmPFdlYnNpdGVEYXRhU3RvcmU+
JiYpOwogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CiAgICAgCi0gICAg
dm9pZCB0YWtlVXBsb2FkQXNzZXJ0aW9uKCk7Ci0gICAgdm9pZCBjbGVhclVwbG9hZEFzc2VydGlv
bigpOwotICAgIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIHZvaWQgY3JlYXRl
U3ltTGlua0ZvckZpbGVVcGdyYWRlKGNvbnN0IFN0cmluZyYgaW5kZXhlZERhdGFiYXNlRGlyZWN0
b3J5KTsKICNlbmRpZgpAQCAtMjU1LDYgKzI1Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRG
ZXRjaFdlYnNpdGVEYXRhKENhbGxiYWNrSUQsIGNvbnN0IFdlYnNpdGVEYXRhJik7CiAgICAgdm9p
ZCBkaWREZWxldGVXZWJzaXRlRGF0YShDYWxsYmFja0lEKTsKICAgICB2b2lkIGRpZERlbGV0ZVdl
YnNpdGVEYXRhRm9yT3JpZ2lucyhDYWxsYmFja0lEKTsKKyAgICB2b2lkIHNldFdlYlByb2Nlc3NI
YXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBib29sKTsKICAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxl
KTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aFJlc3VsdChXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24sIHVpbnQzMl90IHJlc3VsdCwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlKTsKICAgICB2b2lkIGxv
Z0RpYWdub3N0aWNNZXNzYWdlV2l0aFZhbHVlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVl
LCB1bnNpZ25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CkBA
IC0zMTEsOCArMzA5LDEzIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIEhhc2hNYXA8UEFMOjpT
ZXNzaW9uSUQsIFJlZlB0cjxXZWJzaXRlRGF0YVN0b3JlPj4gbV93ZWJzaXRlRGF0YVN0b3JlczsK
LSAgICAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV91cGxvYWRBc3Nl
cnRpb247CisKKyAgICBzdHJ1Y3QgVXBsb2FkQWN0aXZpdHkgeworICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gdWlBc3NlcnRpb247CisgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBuZXR3b3JrQXNzZXJ0aW9uOworICAgICAgICBIYXNoTWFw
PFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2Vy
dGlvbj4+IHdlYlByb2Nlc3NBc3NlcnRpb25zOworICAgIH07CisgICAgT3B0aW9uYWw8VXBsb2Fk
QWN0aXZpdHk+IG1fdXBsb2FkQWN0aXZpdHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzNGE5MWNjNjNjZWFiYThmMTY4MmM3
OWI4MmE5ZDA1YTkyODU3YmQ2Li5iZTU1ODc4OGI2Y2YzMGZiMTBiOTU2YzIxZGNmYzkzNWU1NGE0
NTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC02NSw2ICs2NSw4IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRl
ZCB7CiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpCiAjZW5kaWYKIAorICAgIFNl
dFdlYlByb2Nlc3NIYXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHByb2Nlc3NJ
RCwgYm9vbCBoYXNVcGxvYWQpCisKICAgICBSZXF1ZXN0U3RvcmFnZVNwYWNlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4sIHVpbnQ2
NF90IHF1b3RhLCB1aW50NjRfdCBjdXJyZW50U2l6ZSwgdWludDY0X3Qgc3BhY2VSZXF1aXJlZCkg
LT4gKE9wdGlvbmFsPHVpbnQ2NF90PiBuZXdRdW90YSkgQXN5bmMKICAgICAKICAgICBSZXNvdXJj
ZUxvYWREaWRTZW5kUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlk
ZW50aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OlJlc291cmNlTG9hZEluZm8gcmVzb3VyY2VMb2FkSW5m
bywgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIE9wdGlvbmFsPElQQzo6Rm9ybURh
dGFSZWZlcmVuY2U+IGh0dHBCb2R5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNz
QXNzZXJ0aW9uLmNwcAppbmRleCA2MzJlNDU2ZDZjZWRmZTg4OWNlMmY4ZWZiNDcwZDE5MGMzNGQ3
NmI3Li5iNWE5MDE0MWRkMGYxYTBiYjdjZWYxMGU2MTVlNzUxMTk0OTJiYWYzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcApAQCAtMzIsOCArMzIsOSBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2Vy
dGlvbihQcm9jZXNzSUQsIEFTQ0lJTGl0ZXJhbCwgUHJvY2Vzc0Fzc2VydGlvblR5cGUgYXNzZXJ0
aW9uVHlwZSkKK1Byb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lEIHBp
ZCwgQVNDSUlMaXRlcmFsLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSBhc3NlcnRpb25UeXBlKQogICAg
IDogbV9hc3NlcnRpb25UeXBlKGFzc2VydGlvblR5cGUpCisgICAgLCBtX3BpZChwaWQpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAppbmRleCBlZTBj
OGRiNGFlODA4NzlhNzllNzg3NDY3NzEyZjNhZmY0ODhkZWNmLi5kN2IwNTAxZTUyODgzZWNlMDc2
MWY1YmY4Nzc0ZTk2ZjAzZTQxZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vz
c0Fzc2VydGlvbi5oCkBAIC02OSw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICBDbGllbnQqIGNsaWVu
dCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICBQcm9jZXNzQXNzZXJ0aW9uVHlwZSB0eXBl
KCkgY29uc3QgeyByZXR1cm4gbV9hc3NlcnRpb25UeXBlOyB9CisgICAgUHJvY2Vzc0lEIHBpZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGlkOyB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogcHJv
dGVjdGVkOgpAQCAtODAsOCArODEsOCBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgY29u
c3QgUHJvY2Vzc0Fzc2VydGlvblR5cGUgbV9hc3NlcnRpb25UeXBlOwotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgY29uc3QgUHJvY2Vzc0lEIG1fcGlkOworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgUmV0YWluUHRyPFJCU0Fzc2VydGlvbj4gbV9yYnNBc3NlcnRpb247CiAgICAg
UmV0YWluUHRyPFdLUkJTQXNzZXJ0aW9uRGVsZWdhdGU+IG1fZGVsZWdhdGU7CiAgICAgUmV0YWlu
UHRyPEJLU1Byb2Nlc3NBc3NlcnRpb24+IG1fYmtzQXNzZXJ0aW9uOyAvLyBMZWdhY3kuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggOTczN2ZkMzQxODRi
YzkxNjg5MTYwMDg4ZDc0NWYzOGQ0ZmU5Nzg1ZC4uY2E2YTNmY2I4NjI2NGI5ZTgyYzQzNTNhNDdj
NmUyOGQ3OGNmMGVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtMjM1MCw1NCArMjM1MCw2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlZWRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRm9yVGVzdGluZyhjb25zdCBSZWdpc3RyYWJsZURvbWFpCiB9CiAj
ZW5kaWYKIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0V2ViUHJvY2Vzc0hhc1VwbG9hZHMoUHJv
Y2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lEKQotewotICAgIEFTU0VSVChwcm9jZXNzSUQpOwotICAg
IGF1dG8qIHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NGb3JJZGVudGlmaWVyKHBy
b2Nlc3NJRCk7Ci0gICAgQVNTRVJUKHByb2Nlc3MpOwotCi0gICAgaWYgKCFwcm9jZXNzKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgInNldFdlYlByb2Nlc3NIYXNVcGxvYWRzOiBXZWIgcHJvY2VzcyBub3cgaGFzIHVw
bG9hZHMgaW4gcHJvZ3Jlc3MgKHByb2Nlc3M9JXAsIFBJRD0laSkiLCBwcm9jZXNzLCBwcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpKTsKLQotICAgIGlmIChtX3Byb2Nlc3Nlc1dpdGhVcGxvYWRz
LmlzRW1wdHkoKSkgewotICAgICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPRyhQcm9jZXNz
U3VzcGVuc2lvbiwgInNldFdlYlByb2Nlc3NIYXNVcGxvYWRzOiBUaGUgbnVtYmVyIG9mIHVwbG9h
ZHMgaW4gcHJvZ3Jlc3MgaXMgbm93IG9uZS4gVGFraW5nIE5ldHdvcmtpbmcgYW5kIFVJIHByb2Nl
c3MgYXNzZXJ0aW9ucy4iKTsKLQotICAgICAgICBlbnN1cmVOZXR3b3JrUHJvY2VzcygpLnRha2VV
cGxvYWRBc3NlcnRpb24oKTsKLSAgICAgICAgCi0gICAgICAgIEFTU0VSVCghbV91aVByb2Nlc3NV
cGxvYWRBc3NlcnRpb24pOwotICAgICAgICBtX3VpUHJvY2Vzc1VwbG9hZEFzc2VydGlvbiA9IG1h
a2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0
IHVwbG9hZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsK
LSAgICB9Ci0gICAgCi0gICAgYXV0byByZXN1bHQgPSBtX3Byb2Nlc3Nlc1dpdGhVcGxvYWRzLmFk
ZChwcm9jZXNzSUQsIG51bGxwdHIpOwotICAgIEFTU0VSVChyZXN1bHQuaXNOZXdFbnRyeSk7Ci0g
ICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4o
cHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRzIl9zLCBQcm9jZXNz
QXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7Ci19Ci0KLXZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OmNsZWFyV2ViUHJvY2Vzc0hhc1VwbG9hZHMoUHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vz
c0lEKQotewotICAgIEFTU0VSVChwcm9jZXNzSUQpOwotICAgIGF1dG8gcmVzdWx0ID0gbV9wcm9j
ZXNzZXNXaXRoVXBsb2Fkcy50YWtlKHByb2Nlc3NJRCk7Ci0gICAgaWYgKCFyZXN1bHQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGF1dG8qIHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OnByb2Nl
c3NGb3JJZGVudGlmaWVyKHByb2Nlc3NJRCk7Ci0gICAgQVNTRVJUX1VOVVNFRChwcm9jZXNzLCBw
cm9jZXNzKTsKLSAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgImNsZWFyV2ViUHJvY2Vzc0hhc1VwbG9hZHM6IFdlYiBwcm9jZXNzIG5vIGxvbmdlciBoYXMg
dXBsb2FkcyBpbiBwcm9ncmVzcyAocHJvY2Vzcz0lcCwgUElEPSVpKSIsIHByb2Nlc3MsIHByb2Nl
c3MtPnByb2Nlc3NJZGVudGlmaWVyKCkpOwotCi0gICAgaWYgKG1fcHJvY2Vzc2VzV2l0aFVwbG9h
ZHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFdFQlBST0NFU1NQT09MX1JFTEVBU0VfTE9HKFByb2Nl
c3NTdXNwZW5zaW9uLCAiY2xlYXJXZWJQcm9jZXNzSGFzVXBsb2FkczogVGhlIG51bWJlciBvZiB1
cGxvYWRzIGluIHByb2dyZXNzIGlzIG5vdyB6ZXJvLiBSZWxlYXNpbmcgTmV0d29ya2luZyBhbmQg
VUkgcHJvY2VzcyBhc3NlcnRpb25zLiIpOwotCi0gICAgICAgIGlmIChtX25ldHdvcmtQcm9jZXNz
KQotICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+Y2xlYXJVcGxvYWRBc3NlcnRpb24oKTsK
LSAgICAgICAgCi0gICAgICAgIEFTU0VSVChtX3VpUHJvY2Vzc1VwbG9hZEFzc2VydGlvbik7Ci0g
ICAgICAgIG1fdWlQcm9jZXNzVXBsb2FkQXNzZXJ0aW9uID0gbnVsbHB0cjsKLSAgICB9Ci0gICAg
Ci19Ci0KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldFdlYlByb2Nlc3NJc1BsYXlpbmdBdWRpYmxl
TWVkaWEoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lEKQogewogICAgIGF1dG8q
IHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NGb3JJZGVudGlmaWVyKHByb2Nlc3NJ
RCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBlZDU3OGQw
MjEyMzg4ZDI4Nzk3NjRjNjMwM2EyM2Y4NTdjODZhMTI0Li42MzI3ODljNGFkY2IzNzg5ODJmMzBl
MjYxZWQwOTI1YmM2MmI2MjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKQEAgLTUxNiw5ICs1MTYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyTWVzc2Fn
ZUhhbmRsZXIoRnVuY3Rpb248dm9pZChVc2VyTWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFVzZXJNZXNzYWdlJiYpPiYmKT4mJiBoYW5kbGVyKSB7IG1fdXNlck1lc3NhZ2VIYW5kbGVy
ID0gV1RGTW92ZShoYW5kbGVyKTsgfQogICAgIGNvbnN0IEZ1bmN0aW9uPHZvaWQoVXNlck1lc3Nh
Z2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChVc2VyTWVzc2FnZSYmKT4mJik+JiB1c2VyTWVz
c2FnZUhhbmRsZXIoKSBjb25zdCB7IHJldHVybiBtX3VzZXJNZXNzYWdlSGFuZGxlcjsgfQogI2Vu
ZGlmCi0gICAgCi0gICAgdm9pZCBzZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllcik7Ci0gICAgdm9pZCBjbGVhcldlYlByb2Nlc3NIYXNVcGxvYWRzKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgc2V0V2ViUHJvY2Vzc0lzUGxheWlu
Z0F1ZGlibGVNZWRpYShXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7CiAgICAgdm9pZCBjbGVh
cldlYlByb2Nlc3NJc1BsYXlpbmdBdWRpYmxlTWVkaWEoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIpOwpAQCAtNzkwLDkgKzc4Nyw2IEBAIHByaXZhdGU6CiAgICAgRnVuY3Rpb248dm9pZChVc2Vy
TWVzc2FnZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVzZXJNZXNzYWdlJiYpPiYmKT4gbV91
c2VyTWVzc2FnZUhhbmRsZXI7CiAjZW5kaWYKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPj4gbV9wcm9jZXNz
ZXNXaXRoVXBsb2FkczsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV91
aVByb2Nlc3NVcGxvYWRBc3NlcnRpb247Ci0KICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+IG1fcHJvY2Vzc2Vz
UGxheWluZ0F1ZGlibGVNZWRpYTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlv
bj4gbV91aVByb2Nlc3NNZWRpYVBsYXliYWNrQXNzZXJ0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2dwdVByb2Nlc3NNZWRpYVBsYXliYWNrQXNzZXJ0aW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5p
bgppbmRleCA2OGFkZWQ3NzlkMDM5ZGI3NzU0NDZjZjQ2OTNlNTAyZjJjNzNhNzE3Li44ODgxMjVi
ZmMzZjYzZGFiZmRlNjM3N2UxZjFjNGZkNjczYzQ3NzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5tZXNzYWdlcy5pbgpAQCAtMzAsNyArMzAsNCBA
QCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUG9vbCB7CiAjZW5kaWYKIAogICAgIFJlcG9ydFdlYkNv
bnRlbnRDUFVUaW1lKFNlY29uZHMgY3B1VGltZSwgdWludDY0X3QgYWN0aXZpdHlTdGF0ZSkKLQot
ICAgIFNldFdlYlByb2Nlc3NIYXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHBy
b2Nlc3NJRCkKLSAgICBDbGVhcldlYlByb2Nlc3NIYXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGlmaWVyIHByb2Nlc3NJRCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IGVjYzViYTQ4ZmNjM2Q4YzQyOWNhZjIzZjdkODFiYjE4ZGFiMmYw
MmMuLjIyOGRiMTgyOGY1ODg3YmFmY2VlMjg2NjZlM2IxNzA4N2YzNGEyN2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjE1LDkgKzIxNSw2IEBA
IFdlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nlc3NQcm94eSgpCiAgICAgUkVMRUFTRV9BU1NFUlQo
aXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkpOwogICAgIEFTU0VSVChtX3BhZ2VVUkxSZXRh
aW5Db3VudE1hcC5pc0VtcHR5KCkpOwogCi0gICAgaWYgKG1fcHJvY2Vzc1Bvb2wpCi0gICAgICAg
IG1fcHJvY2Vzc1Bvb2wtPmNsZWFyV2ViUHJvY2Vzc0hhc1VwbG9hZHMoY29yZVByb2Nlc3NJZGVu
dGlmaWVyKCkpOwotCiAgICAgYXV0byByZXN1bHQgPSBhbGxQcm9jZXNzZXMoKS5yZW1vdmUoY29y
ZVByb2Nlc3NJZGVudGlmaWVyKCkpOwogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDNhYjFi
OGUyMzllZTY0MWRhMjQ4NDZkZmY0NmU3NTEzNmUzOWQ5Y2UuLjg0MzI4MzJhZGVlYTc3NzA5ZjIy
Mjc1OTY2MGYyNzk0Y2NjYjRmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc1By
b3h5LmgiCiAjaW5jbHVkZSAiQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NQcm94eS5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9TdG9yZS5oIgogI2luY2x1ZGUgIlByb2Nl
c3NMYXVuY2hlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIgpAQCAt
NzgsNyArNzksNiBAQCBlbnVtIGNsYXNzIFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgOiB1
aW50OF90OwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdB
cmJpdHJhdG9yUHJveHk7Ci1jbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OwogY2xhc3MgT2JqQ09i
amVjdEdyYXBoOwogY2xhc3MgUGFnZUNsaWVudDsKIGNsYXNzIFByb3Zpc2lvbmFsUGFnZVByb3h5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCmluZGV4IDE1ZjNmOGU5ZDg5YjYzYTFjNmE1MzVlMTU2Zjc2NGY2ZGVlM2I2
MDYuLjIzZmExOTM1MjVmZmYzYTNjZmY0YmY4MTA0NjlhZTg0YzAxNGZjYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAKQEAgLTM5NywxMiArMzk3LDYgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVM
b2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICB9CiAK
ICAgICBhdXRvIGxvYWRlciA9IFdlYlJlc291cmNlTG9hZGVyOjpjcmVhdGUocmVzb3VyY2VMb2Fk
ZXIsIHRyYWNraW5nUGFyYW1ldGVycyk7Ci0gICAgaWYgKHJlc291cmNlTG9hZGVyLm9yaWdpbmFs
UmVxdWVzdCgpLmhhc1VwbG9hZCgpKSB7Ci0gICAgICAgIGlmIChtX2xvYWRlcnNXaXRoVXBsb2Fk
cy5pc0VtcHR5KCkpCi0gICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUG9vbDo6U2V0V2Vi
UHJvY2Vzc0hhc1VwbG9hZHMoUHJvY2Vzczo6aWRlbnRpZmllcigpKSwgMCk7Ci0gICAgICAgIG1f
bG9hZGVyc1dpdGhVcGxvYWRzLmFkZChsb2FkZXIucHRyKCkpOwotICAgIH0KLQogICAgIG1fd2Vi
UmVzb3VyY2VMb2FkZXJzLnNldChpZGVudGlmaWVyLCBXVEZNb3ZlKGxvYWRlcikpOwogfQogCkBA
IC00NjQsOSArNDU4LDYgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cmVtb3ZlKFJlc291cmNl
TG9hZGVyKiByZXNvdXJjZUxvYWRlcikKIAogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UmVtb3ZlTG9hZElkZW50aWZpZXIoaWRl
bnRpZmllciksIDApOwogCi0gICAgaWYgKG1fbG9hZGVyc1dpdGhVcGxvYWRzLnJlbW92ZShsb2Fk
ZXIuZ2V0KCkpICYmIG1fbG9hZGVyc1dpdGhVcGxvYWRzLmlzRW1wdHkoKSkKLSAgICAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Bvb2w6OkNsZWFyV2ViUHJvY2Vzc0hhc1VwbG9hZHMgeyBQcm9jZXNz
OjppZGVudGlmaWVyKCkgfSwgMCk7Ci0KICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhpcyBX
ZWJSZXNvdXJjZUxvYWRlciBtaWdodCBiZSBqdXN0IGFib3V0IHRvIG1lc3NhZ2UgYmFjayB0byB0
aGUgTmV0d29ya1Byb2Nlc3MgKGUuZy4gQ29udGludWVXaWxsU2VuZFJlcXVlc3QpCiAgICAgLy8g
YnV0IHRoZXJlJ3Mgbm8gcG9pbnQgaW4gZG9pbmcgc28gYW55bW9yZS4KICAgICBsb2FkZXItPmRl
dGFjaEZyb21Db3JlTG9hZGVyKCk7CkBAIC02MTQsMTAgKzYwNSw2IEBAIHZvaWQgV2ViTG9hZGVy
U3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoRnJhbWVMb2FkZXImIGZyYW1lTG9h
ZGVyLCB1bnNpCiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxl
cjsKICAgICBJUEM6OlVuYm91bmRlZFN5bmNocm9ub3VzSVBDU2NvcGUgdW5ib3VuZGVkU3luY2hy
b25vdXNJUENTY29wZTsKIAotICAgIGJvb2wgc2hvdWxkTm90aWZ5T2ZVcGxvYWQgPSByZXF1ZXN0
Lmhhc1VwbG9hZCgpICYmIG1fbG9hZGVyc1dpdGhVcGxvYWRzLmlzRW1wdHkoKTsKLSAgICBpZiAo
c2hvdWxkTm90aWZ5T2ZVcGxvYWQpCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpT
ZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyB7IFByb2Nlc3M6OmlkZW50aWZpZXIoKSB9LCAwKTsKLQog
ICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZChsb2FkUGFyYW1ldGVycyksIE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3Vz
TG9hZDo6UmVwbHkoZXJyb3IsIHJlc3BvbnNlLCBkYXRhKSwgMCkpIHsKICAgICAgICAgV0VCTE9B
REVSU1RSQVRFR1lfV0lUSF9GUkFNRUxPQURFUl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KCJsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5OiBmYWlsZWQgc2VuZGluZyBzeW5jaHJvbm91cyBu
ZXR3b3JrIHByb2Nlc3MgbWVzc2FnZSIpOwogICAgICAgICBpZiAocGFnZSkKQEAgLTYyNSw5ICs2
MTIsNiBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KEZyYW1lTG9hZGVyJiBmcmFtZUxvYWRlciwgdW5zaQogICAgICAgICByZXNwb25zZSA9IFJlc291
cmNlUmVzcG9uc2UoKTsKICAgICAgICAgZXJyb3IgPSBpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJs
KCkpOwogICAgIH0KLQotICAgIGlmIChzaG91bGROb3RpZnlPZlVwbG9hZCkKLSAgICAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Bvb2w6OkNsZWFyV2ViUHJvY2Vzc0hhc1VwbG9hZHMgeyBQcm9jZXNz
OjppZGVudGlmaWVyKCkgfSwgMCk7CiB9CiAKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnBhZ2VM
b2FkQ29tcGxldGVkKFBhZ2UmIHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCAyMmY2NDRmZDdmNDUwZDMyZWE0
NWY5N2UyNzQ4OGVmNWYzNGMxNTNhLi4yODNhZmFiMzRkMmQ3MzIzNTIxOWY5YWFkODBmNjAyOGE5
YjZmYWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJM
b2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmgKQEAgLTEyNiw3ICsxMjYsNiBAQCBwcml2YXRlOgogICAgIEhhc2hN
YXA8dW5zaWduZWQgbG9uZywgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyPiBtX3ByZWNvbm5l
Y3RDb21wbGV0aW9uSGFuZGxlcnM7CiAgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoYm9vbCk+PiBt
X29ubGluZVN0YXRlQ2hhbmdlTGlzdGVuZXJzOwogICAgIGJvb2wgbV9pc09uTGluZSB7IHRydWUg
fTsKLSAgICBIYXNoU2V0PFdlYlJlc291cmNlTG9hZGVyKj4gbV9sb2FkZXJzV2l0aFVwbG9hZHM7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>