<?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>307106</bug_id>
          
          <creation_ts>2026-02-05 13:50:00 -0800</creation_ts>
          <short_desc>REGRESSION(306057@main): for causing Safari crashes</short_desc>
          <delta_ts>2026-02-05 13:55:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>303715</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>heycam</cc>
    
    <cc>mattwoodrow</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2178552</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-02-05 13:50:00 -0800</bug_when>
    <thetext>https://commits.webkit.org/306057@main introduced a regression:
for causing Safari crashes

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>2178554</commentid>
    <comment_count>1</comment_count>
      <attachid>478262</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2026-02-05 13:50:10 -0800</bug_when>
    <thetext>Created attachment 478262
REVERT of 306057@main

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 revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert 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>2178556</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-02-05 13:54:17 -0800</bug_when>
    <thetext>Committed 306899@main (4c23dc01f76e): &lt;https://commits.webkit.org/306899@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 478262.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2178558</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-02-05 13:55:11 -0800</bug_when>
    <thetext>&lt;rdar://problem/169739125&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>478262</attachid>
            <date>2026-02-05 13:50:10 -0800</date>
            <delta_ts>2026-02-05 13:54:17 -0800</delta_ts>
            <desc>REVERT of 306057@main</desc>
            <filename>bug-307106-20260205215009.patch</filename>
            <type>text/plain</type>
            <size>34996</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA2MDViMWE0ZDg4NzUyOGNjMzE0MDQxYWE1NGFmZjFjZGJhODM4NmEyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUaHUsIDUgRmViIDIwMjYgMjE6NTA6MDcgKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgMzA2MDU3QG1haW4uCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzA3MTA2Cgpmb3IgY2F1c2luZyBTYWZhcmkgY3Jhc2hlcwoKUmV2
ZXJ0ZWQgY2hhbmdlc2V0OgoKIkNoYW5nZSBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
OjpQcm9jZXNzU3RhdGUgdG8gdHJhY2sgYSBzZXQgb2YgcGVuZGluZyBjb21taXRzLCByYXRoZXIg
dGhhbiBhIHNpbmdsZSBzdGF0ZSBtYWNoaW5lLiIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMwMzcxNQpodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8zMDYwNTdAbWFp
bgotLS0KIC4uLi9QcmVmZXJlbmNlcy9VbmlmaWVkV2ViUHJlZmVyZW5jZXMueWFtbCAgICB8ICAg
MyArLQogLi4uL1dlYktpdC9TaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oIHwgICAx
IC0KIC4uLi9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmggICAgICAgICB8ICA4NyAr
KystLS0tLQogLi4uZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluIHwg
ICAxIC0KIC4uLi9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tICAgICAgICB8IDE5
MyArKysrKysrKy0tLS0tLS0tLS0KIC4uLi9pb3MvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eUlPUy5oICB8ICAgMSArCiAuLi4vbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHlNYWMubW0gfCAgIDYgKy0KIC4uLi9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSAgICAg
ICAgICAgICB8ICAgMiAtCiA4IGZpbGVzIGNoYW5nZWQsIDExNiBpbnNlcnRpb25zKCspLCAxNzgg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1VuaWZpZWRXZWJQcmVmZXJlbmNlcy55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1VuaWZpZWRXZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IGJhYzJmNGVhZjFjNS4uMTIzNmYz
ZWQzY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvVW5pZmll
ZFdlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1VuaWZpZWRXZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0yNzgsOCArMjc4LDcgQEAgQWxsb3dNdWx0
aUVsZW1lbnRJbXBsaWNpdFN1Ym1pc3Npb246CiAKIEFsbG93TXVsdGlwbGVDb21taXRMYXllclRy
ZWVQZW5kaW5nOgogICB0eXBlOiBib29sCi0gIHN0YXR1czogdGVzdGFibGUKLSAgY2F0ZWdvcnk6
IGRvbQorICBzdGF0dXM6IGludGVybmFsCiAgIGh1bWFuUmVhZGFibGVOYW1lOiAiQWxsb3cgcmVx
dWVzdGluZyBDb21taXRMYXllclRyZWUgYmVmb3JlIHRoZSBwcmV2aW91cyBoYXMgY29tcGxldGVk
IgogICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJBbGxvdyByZXF1ZXN0aW5nIENvbW1pdExh
eWVyVHJlZSBiZWZvcmUgdGhlIHByZXZpb3VzIGhhcyBjb21wbGV0ZWQiCiAgIGRlZmF1bHRWYWx1
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL01vbm90b25pY09iamVjdElkZW50
aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL01vbm90b25pY09iamVjdElkZW50aWZpZXIu
aAppbmRleCBkZDBmZjIxMzFkMTMuLjE0MTJkNzkxZjgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvTW9ub3RvbmljT2JqZWN0SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL01vbm90b25pY09iamVjdElkZW50aWZpZXIuaApAQCAtNDYsNyArNDYsNiBAQCBw
dWJsaWM6CiAgICAgeyB9CiAKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9pZGVudGlmaWVyID09IGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci0g
ICAgYm9vbCBpc0hhc2hUYWJsZUVtcHR5VmFsdWUoKSBjb25zdCB7IHJldHVybiAhKnRoaXM7IH0K
IAogICAgIGZyaWVuZCBhdXRvIG9wZXJhdG9yPD0+KE1vbm90b25pY09iamVjdElkZW50aWZpZXIs
IE1vbm90b25pY09iamVjdElkZW50aWZpZXIpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggYzJmNTM2MmFhMTVjLi4wOWRm
ODNhYjNiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHkuaApAQCAtNTIsNjAgKzUyLDYgQEAgY2xhc3MgUmVtb3RlQW5pbWF0aW9uU3RhY2s7CiBjbGFz
cyBSZW1vdGVBbmltYXRpb25UaW1lbGluZTsKICNlbmRpZgogCi1lbnVtIGNsYXNzIFBlbmRpbmdD
b21taXRNZXNzYWdlIHsKLSAgICBOb3RpZnlQZW5kaW5nQ29tbWl0TGF5ZXJUcmVlLAotICAgIE5v
dGlmeUZsdXNoaW5nTGF5ZXJUcmVlLAotICAgIENvbW1pdExheWVyVHJlZSwKLX07Ci0KLWVudW0g
Y2xhc3MgQ29tbWl0RGVsYXlTdGF0ZSB7Ci0gICAgUGVuZGluZywKLSAgICBEZWxheWVkLAotICAg
IEludGVudGlvbmFsbHlEZWZlcnJlZCwKLX07Ci0KLXN0cnVjdCBQZW5kaW5nQ29tbWl0IHsKLSAg
ICBUcmFuc2FjdGlvbklEIHRyYW5zYWN0aW9uSUQ7Ci0gICAgUGVuZGluZ0NvbW1pdE1lc3NhZ2Ug
cGVuZGluZ01lc3NhZ2U7Ci0gICAgQ29tbWl0RGVsYXlTdGF0ZSBkZWxheVN0YXRlOwotfTsKLQot
c3RydWN0IFByb2Nlc3NTdGF0ZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUHJvY2Vzc1N0
YXRlKTsKLSAgICBQcm9jZXNzU3RhdGUoV2ViUHJvY2Vzc1Byb3h5Jik7Ci0gICAgUHJvY2Vzc1N0
YXRlKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKLSAgICAgICAgOiBuZXh0TGF5ZXJU
cmVlVHJhbnNhY3Rpb25JRChXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZSkKLSAgICB7Ci0gICAg
fQotICAgIFByb2Nlc3NTdGF0ZShUcmFuc2FjdGlvbklEIHRyYW5zYWN0aW9uSUQpCi0gICAgICAg
IDogbmV4dExheWVyVHJlZVRyYW5zYWN0aW9uSUQodHJhbnNhY3Rpb25JRCkKLSAgICB7Ci0gICAg
fQotICAgIFByb2Nlc3NTdGF0ZShQcm9jZXNzU3RhdGUmJikgPSBkZWZhdWx0OwotICAgIFByb2Nl
c3NTdGF0ZSYgb3BlcmF0b3I9KFByb2Nlc3NTdGF0ZSYmKSA9IGRlZmF1bHQ7Ci0KLSAgICBib29s
IGNhblNlbmREaXNwbGF5RGlkUmVmcmVzaChSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Jik7Ci0KLSAgICBWZWN0b3I8UGVuZGluZ0NvbW1pdCwgMj4gcGVuZGluZ0NvbW1pdHM7Ci0gICAg
VHJhbnNhY3Rpb25JRCBuZXh0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRDsKLSAgICBzdGQ6Om9wdGlv
bmFsPFRyYW5zYWN0aW9uSUQ+IGNvbW1pdHRlZExheWVyVHJlZVRyYW5zYWN0aW9uSUQ7Ci0gICAg
dWludDMyX3QgZGVsYXllZENvbW1pdHMgeyAwIH07Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2Vi
S2l0OjpQcm9jZXNzU3RhdGU+IDogU2ltcGxlQ2xhc3NIYXNoVHJhaXRzPFdlYktpdDo6UHJvY2Vz
c1N0YXRlPiB7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGVtcHR5VmFsdWVJc1plcm8gPSBI
YXNoVHJhaXRzPFdlYktpdDo6VHJhbnNhY3Rpb25JRD46OmVtcHR5VmFsdWVJc1plcm87Ci0gICAg
c3RhdGljIFdlYktpdDo6UHJvY2Vzc1N0YXRlIGVtcHR5VmFsdWUoKSB7IHJldHVybiB7IEhhc2hU
cmFpdHM8V2ViS2l0OjpUcmFuc2FjdGlvbklEPjo6ZW1wdHlWYWx1ZSgpIH07IH0KLSAgICBzdGF0
aWMgYm9vbCBpc0VtcHR5VmFsdWUoY29uc3QgV2ViS2l0OjpQcm9jZXNzU3RhdGUmIHZhbHVlKSB7
IHJldHVybiBIYXNoVHJhaXRzPFdlYktpdDo6VHJhbnNhY3Rpb25JRD46OmlzRW1wdHlWYWx1ZSh2
YWx1ZS5uZXh0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCk7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdURgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQogY2xhc3MgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eSA6IHB1YmxpYyBEcmF3aW5nQXJlYVByb3h5LCBwdWJsaWMgUmVmQ291bnRlZDxS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5PiB7CiAgICAgV1RGX01BS0VfVFpPTkVfQUxM
T0NBVEVEKFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOwogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOwpAQCAtMTU0LDYgKzEw
MCwxNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRyYXdTbG93RnJhbWVJbmRpY2F0b3IoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0Jik7CiAKKyAgICBzdHJ1Y3QgQ29tbWl0TGF5ZXJUcmVlUGVuZGlu
ZyB7CisgICAgICAgIHNpemVfdCByZXF1ZXN0ZWROb3RpZnlQZW5kaW5nQ29tbWl0TGF5ZXJUcmVl
IHsgMSB9OworICAgICAgICBzaXplX3QgcmVxdWVzdGVkQ29tbWl0TGF5ZXJUcmVlIHsgMSB9Owor
ICAgICAgICBib29sIG1pc3NlZERpc3BsYXlEaWRSZWZyZXNoIHsgZmFsc2UgfTsKKyAgICB9Owor
ICAgIHN0cnVjdCBOZWVkc0Rpc3BsYXlEaWRSZWZyZXNoIHsgfTsKKyAgICBzdHJ1Y3QgSWRsZSB7
IH07CisKICAgICBib29sIGFsbG93TXVsdGlwbGVDb21taXRMYXllclRyZWVQZW5kaW5nKCk7CiAK
IHByb3RlY3RlZDoKQEAgLTE2MywxMyArMTE3LDI5IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wg
c2hvdWxkQ29hbGVzY2VWaXN1YWxFZGl0b3JTdGF0ZVVwZGF0ZXMoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAKKyAgICAvLyBkaXNwbGF5RGlkUmVmcmVzaCBpcyBzZW50IHRvIHRo
ZSBXZWJQcm9jZXNzLCBhbmQgaXQgcmVzcG9uZHMKKyAgICAvLyB3aXRoIGEgY29tbWl0TGF5ZXJU
cmVlIG1lc3NhZ2UgKGlkZWFsbHkgYmVmb3JlIHRoZSBuZXh0CisgICAgLy8gZGlzcGxheURpZFJl
ZnJlc2gsIG90aGVyd2lzZSB3ZSBtYXJrIGl0IGFzIG1pc3NlZCBhbmQgc2VuZAorICAgIC8vIGl0
IHdoZW4gY29tbWl0TGF5ZXJUcmVlIGRvZXMgYXJyaXZlKS4KKyAgICBzdHJ1Y3QgUHJvY2Vzc1N0
YXRlIHsKKyAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUHJvY2Vzc1N0YXRlKTsKKyAgICAg
ICAgUHJvY2Vzc1N0YXRlKCkgPSBkZWZhdWx0OworICAgICAgICBQcm9jZXNzU3RhdGUoUHJvY2Vz
c1N0YXRlJiYpID0gZGVmYXVsdDsKKyAgICAgICAgUHJvY2Vzc1N0YXRlJiBvcGVyYXRvcj0oUHJv
Y2Vzc1N0YXRlJiYpID0gZGVmYXVsdDsKKworICAgICAgICBib29sIGNhblNlbmREaXNwbGF5RGlk
UmVmcmVzaChSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Jik7CisKKyAgICAgICAgVmFy
aWFudDxJZGxlLCBDb21taXRMYXllclRyZWVQZW5kaW5nLCBOZWVkc0Rpc3BsYXlEaWRSZWZyZXNo
PiBjb21taXRMYXllclRyZWVNZXNzYWdlU3RhdGU7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8VHJh
bnNhY3Rpb25JRD4gcGVuZGluZ0xheWVyVHJlZVRyYW5zYWN0aW9uSUQ7CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8VHJhbnNhY3Rpb25JRD4gY29tbWl0dGVkTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRDsK
KyAgICB9OworCiAgICAgUHJvY2Vzc1N0YXRlJiBwcm9jZXNzU3RhdGVGb3JDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiYpOwogICAgIGNvbnN0IFByb2Nlc3NTdGF0ZSYgcHJvY2Vzc1N0YXRlRm9y
SWRlbnRpZmllcihXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcikgY29uc3Q7CiAgICAgSVBDOjpD
b25uZWN0aW9uKiBjb25uZWN0aW9uRm9ySWRlbnRpZmllcihXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
Zmllcik7CiAgICAgdm9pZCBmb3JFYWNoUHJvY2Vzc1N0YXRlKE5PRVNDQVBFIEZ1bmN0aW9uPHZv
aWQoUHJvY2Vzc1N0YXRlJiwgV2ViUHJvY2Vzc1Byb3h5Jik+JiYpOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZUxheWVyVHJlZUhvc3Q+IG1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsKLSAgICBi
b29sIG1fbmVlZHNEaXNwbGF5UmVmcmVzaENhbGxiYWNrc0ZvckRyYXdpbmcgeyBmYWxzZSB9Owog
cHJpdmF0ZToKICNpZiBFTkFCTEUoVElMRURfQ0FfRFJBV0lOR19BUkVBKQogICAgIERyYXdpbmdB
cmVhVHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRHJhd2luZ0FyZWFUeXBlOjpSZW1v
dGVMYXllclRyZWU7IH0KQEAgLTIyMSw3ICsxOTEsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRQcmVmZXJyZWRGcmFtZXNQZXJTZWNvbmQoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6RnJhbWVzUGVyU2Vjb25kKSB7IH0KIAogICAgIHZvaWQgbm90aWZ5UGVuZGluZ0NvbW1pdExh
eWVyVHJlZShJUEM6OkNvbm5lY3Rpb24mLCBzdGQ6Om9wdGlvbmFsPFRyYW5zYWN0aW9uSUQ+KTsK
LSAgICB2b2lkIG5vdGlmeUZsdXNoaW5nTGF5ZXJUcmVlKElQQzo6Q29ubmVjdGlvbiYsIFRyYW5z
YWN0aW9uSUQpOwogICAgIHZvaWQgY29tbWl0TGF5ZXJUcmVlKElQQzo6Q29ubmVjdGlvbiYsIGNv
bnN0IFJlbW90ZUxheWVyVHJlZUNvbW1pdEJ1bmRsZSYsIEhhc2hNYXA8SW1hZ2VCdWZmZXJTZXRJ
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8QnVmZmVyU2V0QmFja2VuZEhhbmRsZT4+JiYpOwog
ICAgIHZvaWQgY29tbWl0TGF5ZXJUcmVlVHJhbnNhY3Rpb24oSVBDOjpDb25uZWN0aW9uJiwgY29u
c3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mLCBjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclRyYW5zYWN0aW9uJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxNYWluRnJhbWVEYXRhPiYs
IGNvbnN0IFBhZ2VEYXRhJiwgY29uc3QgVHJhbnNhY3Rpb25JRCYpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDb21taXRMYXllclRyZWUoSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24mLCBjb25zdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0
aW9uJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxNYWluRnJhbWVEYXRhPiYsIGNvbnN0IFRyYW5zYWN0
aW9uSUQmKSB7IH0KQEAgLTI1OCw5ICsyMjcsOSBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1f
Y291bnRPZlRyYW5zYWN0aW9uc1dpdGhOb25FbXB0eUxheWVyQ2hhbmdlcyB7IDAgfTsKIH07CiAK
LVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNvbnN0IENvbW1pdERlbGF5U3Rh
dGUmKTsKLVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNvbnN0IFBlbmRpbmdD
b21taXRNZXNzYWdlJik7Ci1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBjb25z
dCBQZW5kaW5nQ29tbWl0Jik7CitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBj
b25zdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpJZGxlJik7CitUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBjb25zdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5OjpOZWVkc0Rpc3BsYXlEaWRSZWZyZXNoJik7CitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mLCBjb25zdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpDb21t
aXRMYXllclRyZWVQZW5kaW5nJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDFiMDdiNTg2ZTJlNC4uZGE4MTUwNzkyNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjgsNyArMjgsNiBAQAogbWVzc2FnZXMgLT4gUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eSA6IERyYXdpbmdBcmVhUHJveHkgewogICAgIHZvaWQgU2V0UHJlZmVycmVkRnJhbWVzUGVyU2Vj
b25kKHVuc2lnbmVkIHByZWZlcnJlZEZyYW1lc1BlclNlY29uZCkKICAgICB2b2lkIE5vdGlmeVBl
bmRpbmdDb21taXRMYXllclRyZWUoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlRyYW5zYWN0aW9uSUQ+
IHRyYW5zYWN0aW9uSUQpIENhbkRpc3BhdGNoT3V0T2ZPcmRlcgotICAgIHZvaWQgTm90aWZ5Rmx1
c2hpbmdMYXllclRyZWUoV2ViS2l0OjpUcmFuc2FjdGlvbklEIHRyYW5zYWN0aW9uSUQpIENhbkRp
c3BhdGNoT3V0T2ZPcmRlcgogICAgIHZvaWQgQ29tbWl0TGF5ZXJUcmVlKHN0cnVjdCBXZWJLaXQ6
OlJlbW90ZUxheWVyVHJlZUNvbW1pdEJ1bmRsZSBidW5kbGUsIEhhc2hNYXA8V2ViS2l0OjpJbWFn
ZUJ1ZmZlclNldElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkJ1ZmZlclNldEJh
Y2tlbmRIYW5kbGU+PiBoYW5kbGVzTWFwKSBDYW5EaXNwYXRjaE91dE9mT3JkZXIKICAgICB2b2lk
IEFzeW5jU2V0TGF5ZXJDb250ZW50cyhXZWJDb3JlOjpQbGF0Zm9ybUxheWVySWRlbnRpZmllciBs
YXllciwgV2ViS2l0OjpSZW1vdGVMYXllckJhY2tpbmdTdG9yZVByb3BlcnRpZXMgcHJvcGVydGll
cykKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0K
aW5kZXggZDczYzQ4ZWUzMjU4Li40NmY5MmNiMWQxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC05OCw3ICs5OCw2IEBAIFdURl9NQUtF
X1RaT05FX0FMTE9DQVRFRF9JTVBMKFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOwog
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eShXZWJQYWdlUHJveHkmIHBhZ2VQcm94eSwgV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9j
ZXNzUHJveHkpCiAgICAgOiBEcmF3aW5nQXJlYVByb3h5KHBhZ2VQcm94eSwgd2ViUHJvY2Vzc1By
b3h5KQogICAgICwgbV9yZW1vdGVMYXllclRyZWVIb3N0KG1ha2VVbmlxdWU8UmVtb3RlTGF5ZXJU
cmVlSG9zdD4oKnRoaXMpKQotICAgICwgbV93ZWJQYWdlUHJveHlQcm9jZXNzU3RhdGUod2ViUHJv
Y2Vzc1Byb3h5KQogewogICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcG9vbCBzdXJmYWNlcyBpbiB0
aGUgVUkgcHJvY2Vzcy4KICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRvIHRoaXMgc29tZXdoZXJl
IGVsc2UuCkBAIC0xMjEsNyArMTIwLDcgQEAgc3RkOjpzcGFuPElQQzo6UmVjZWl2ZXJOYW1lPiBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW0KIAogdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjphZGRSZW1vdGVQYWdlRHJhd2luZ0Fy
ZWFQcm94eShSZW1vdGVQYWdlRHJhd2luZ0FyZWFQcm94eSYgcHJveHkpCiB7Ci0gICAgbV9yZW1v
dGVQYWdlUHJvY2Vzc1N0YXRlLmFkZChwcm94eS5wcm9jZXNzKCkuY29yZVByb2Nlc3NJZGVudGlm
aWVyKCksIFByb2Nlc3NTdGF0ZShwcm94eS5wcm9jZXNzKCkpKTsKKyAgICBtX3JlbW90ZVBhZ2VQ
cm9jZXNzU3RhdGUuYWRkKHByb3h5LnByb2Nlc3MoKS5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwg
UHJvY2Vzc1N0YXRlIHsgfSk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6cmVtb3ZlUmVtb3RlUGFnZURyYXdpbmdBcmVhUHJveHkoUmVtb3RlUGFnZURyYXdpbmdB
cmVhUHJveHkmIHByb3h5KQpAQCAtMTMwLDExICsxMjksNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OnJlbW92ZVJlbW90ZVBhZ2VEcmF3aW5nQXJlYVByb3h5KFJlbW90
ZVBhZwogICAgIG1fcmVtb3RlUGFnZVByb2Nlc3NTdGF0ZS5yZW1vdmUocHJveHkucHJvY2Vzcygp
LmNvcmVQcm9jZXNzSWRlbnRpZmllcigpKTsKIH0KIAotUHJvY2Vzc1N0YXRlOjpQcm9jZXNzU3Rh
dGUoV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzKQotICAgIDogbmV4dExheWVyVHJlZVRyYW5z
YWN0aW9uSUQoVHJhbnNhY3Rpb25JRChUcmFuc2FjdGlvbklkZW50aWZpZXIoKSwgd2ViUHJvY2Vz
cy5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSkubmV4dCgpKQotewotfQotCiBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlTGF5ZXJUcmVlSG9zdD4gUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6
ZGV0YWNoUmVtb3RlTGF5ZXJUcmVlSG9zdCgpCiB7CiAgICAgbV9yZW1vdGVMYXllclRyZWVIb3N0
LT5kZXRhY2hGcm9tRHJhd2luZ0FyZWEoKTsKQEAgLTE1NiwxMSArMTUwLDcgQEAgdm9pZCBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzaXplRGlkQ2hhbmdlKCkKIAogVHJhbnNhY3Rp
b25JRCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpuZXh0TWFpbkZyYW1lTGF5ZXJU
cmVlVHJhbnNhY3Rpb25JRCgpIGNvbnN0CiB7Ci0gICAgZm9yIChpbnQgaSA9IG1fd2ViUGFnZVBy
b3h5UHJvY2Vzc1N0YXRlLnBlbmRpbmdDb21taXRzLnNpemUoKSAtIDE7IGkgPj0gMDsgaS0tKSB7
Ci0gICAgICAgIGlmIChtX3dlYlBhZ2VQcm94eVByb2Nlc3NTdGF0ZS5wZW5kaW5nQ29tbWl0c1tp
XS5wZW5kaW5nTWVzc2FnZSA+IFBlbmRpbmdDb21taXRNZXNzYWdlOjpOb3RpZnlQZW5kaW5nQ29t
bWl0TGF5ZXJUcmVlKQotICAgICAgICAgICAgcmV0dXJuIG1fd2ViUGFnZVByb3h5UHJvY2Vzc1N0
YXRlLnBlbmRpbmdDb21taXRzW2ldLnRyYW5zYWN0aW9uSUQ7Ci0gICAgfQotICAgIHJldHVybiBs
YXN0Q29tbWl0dGVkTWFpbkZyYW1lTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpOworICAgIHJldHVy
biBtX3dlYlBhZ2VQcm94eVByb2Nlc3NTdGF0ZS5wZW5kaW5nTGF5ZXJUcmVlVHJhbnNhY3Rpb25J
RC52YWx1ZV9vcihUcmFuc2FjdGlvbklEKFRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCB3ZWJQcm9j
ZXNzUHJveHkoKS5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSkpLm5leHQoKTsKIH0KIAogVHJhbnNh
Y3Rpb25JRCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpsYXN0Q29tbWl0dGVkTWFp
bkZyYW1lTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpIGNvbnN0CkBAIC0yNDAsNyArMjMwLDcgQEAg
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzZW5kVXBkYXRlR2VvbWV0cnko
KQogICAgIH0pOwogfQogCi1Qcm9jZXNzU3RhdGUmIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OnByb2Nlc3NTdGF0ZUZvckNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uKQorUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6UHJvY2Vzc1N0YXRlJiBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpwcm9jZXNzU3RhdGVGb3JDb25uZWN0aW9uKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBmb3IgKGF1dG8mIFtrZXksIHZhbHVl
XSA6IG1fcmVtb3RlUGFnZVByb2Nlc3NTdGF0ZSkgewogICAgICAgICBSZWZQdHIgd2ViUHJvY2Vz
cyA9IFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0ZvcklkZW50aWZpZXIoa2V5KTsKQEAgLTI2Miw3
ICsyNTIsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmZvckVhY2hQ
cm9jZXNzU3RhdGUoTk9FU0NBUEUgRnVuY3Rpb248dm9pZAogICAgIH0KIH0KIAotY29uc3QgUHJv
Y2Vzc1N0YXRlJiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpwcm9jZXNzU3RhdGVG
b3JJZGVudGlmaWVyKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0
Citjb25zdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpQcm9jZXNzU3RhdGUmIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnByb2Nlc3NTdGF0ZUZvcklkZW50aWZpZXIo
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikgY29uc3QKIHsKICAgICBpZiAo
d2ViUHJvY2Vzc1Byb3h5KCkuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkgPT0gaWRlbnRpZmllcikK
ICAgICAgICAgcmV0dXJuIG1fd2ViUGFnZVByb3h5UHJvY2Vzc1N0YXRlOwpAQCAtMjgzLDI1ICsy
NzMsMzIgQEAgSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Ojpjb25uZWN0aW9uRm9ySWRlbnRpZmllcihXZWJDb3IKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eTo6bm90aWZ5UGVuZGluZ0NvbW1pdExheWVyVHJlZShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIHN0ZDo6b3B0aW9uYWw8VHJhbnNhY3Rpb25JRD4gdHJhbnNhY3Rpb25J
RCkKIHsKICAgICBQcm9jZXNzU3RhdGUmIHN0YXRlID0gcHJvY2Vzc1N0YXRlRm9yQ29ubmVjdGlv
bihjb25uZWN0aW9uKTsKLSAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlTGF5ZXJUcmVlLCBzdHJl
YW0gPDwgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6Om5vdGlmeVBlbmRpbmdDb21t
aXRMYXllclRyZWUgIiA8PCB0cmFuc2FjdGlvbklEIDw8ICIgb2xkIHN0YXRlOiAiIDw8IHN0YXRl
LnBlbmRpbmdDb21taXRzKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlTGF5ZXJUcmVlLCBz
dHJlYW0gPDwgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6Om5vdGlmeVBlbmRpbmdD
b21taXRMYXllclRyZWUgIiA8PCB0cmFuc2FjdGlvbklEIDw8ICIgb2xkIHN0YXRlOiAiIDw8IHN0
YXRlLmNvbW1pdExheWVyVHJlZU1lc3NhZ2VTdGF0ZSk7CiAgICAgaWYgKHRyYW5zYWN0aW9uSUQp
IHsKLSAgICAgICAgaWYgKHN0YXRlLnBlbmRpbmdDb21taXRzLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgLy8gVGhlIHZlcnkgZmlyc3QgY29tbWl0IGlzIGluaXRpYXRlZCBieSBXZWJDb250ZW50
LCBhbGwgb3RoZXJzIGdldAotICAgICAgICAgICAgLy8gc3RhcnRlZCBpbiByZXNwb25zZSB0byBk
aXNwbGF5RGlkUmVmcmVzaC4KLSAgICAgICAgICAgIE1FU1NBR0VfQ0hFQ0tfQkFTRShzdGF0ZS5u
ZXh0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRC5vYmplY3QoKSA9PSBUcmFuc2FjdGlvbklkZW50aWZp
ZXIoKS5uZXh0KCksIGNvbm5lY3Rpb24pOwotICAgICAgICAgICAgTUVTU0FHRV9DSEVDS19CQVNF
KHN0YXRlLm5leHRMYXllclRyZWVUcmFuc2FjdGlvbklEID09ICp0cmFuc2FjdGlvbklELCBjb25u
ZWN0aW9uKTsKLSAgICAgICAgICAgIHN0YXRlLnBlbmRpbmdDb21taXRzLmluc2VydCgwLCB7ICp0
cmFuc2FjdGlvbklELCBQZW5kaW5nQ29tbWl0TWVzc2FnZTo6Tm90aWZ5Rmx1c2hpbmdMYXllclRy
ZWUsIENvbW1pdERlbGF5U3RhdGU6OlBlbmRpbmcgfSk7Ci0gICAgICAgICAgICBzdGF0ZS5uZXh0
TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCA9IHRyYW5zYWN0aW9uSUQtPm5leHQoKTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIE1FU1NBR0VfQ0hFQ0tfQkFTRShzdGF0ZS5wZW5kaW5nQ29t
bWl0c1swXS5wZW5kaW5nTWVzc2FnZSA9PSBQZW5kaW5nQ29tbWl0TWVzc2FnZTo6Tm90aWZ5UGVu
ZGluZ0NvbW1pdExheWVyVHJlZSAmJiBzdGF0ZS5wZW5kaW5nQ29tbWl0c1swXS50cmFuc2FjdGlv
bklEID09ICp0cmFuc2FjdGlvbklELCBjb25uZWN0aW9uKTsKLSAgICAgICAgICAgIHN0YXRlLnBl
bmRpbmdDb21taXRzWzBdLnBlbmRpbmdNZXNzYWdlID0gUGVuZGluZ0NvbW1pdE1lc3NhZ2U6Ok5v
dGlmeUZsdXNoaW5nTGF5ZXJUcmVlOwotICAgICAgICB9CisgICAgICAgIE1FU1NBR0VfQ0hFQ0tf
QkFTRShzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPENvbW1pdExheWVyVHJlZVBlbmRpbmc+KHN0YXRl
LmNvbW1pdExheWVyVHJlZU1lc3NhZ2VTdGF0ZSkgfHwgc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxJ
ZGxlPihzdGF0ZS5jb21taXRMYXllclRyZWVNZXNzYWdlU3RhdGUpLCBjb25uZWN0aW9uKTsKKyAg
ICAgICAgTUVTU0FHRV9DSEVDS19CQVNFKCFzdGF0ZS5wZW5kaW5nTGF5ZXJUcmVlVHJhbnNhY3Rp
b25JRCB8fCAqdHJhbnNhY3Rpb25JRCA9PSBzdGF0ZS5wZW5kaW5nTGF5ZXJUcmVlVHJhbnNhY3Rp
b25JRC0+bmV4dCgpLCBjb25uZWN0aW9uKTsKKyAgICAgICAgc3RhdGUucGVuZGluZ0xheWVyVHJl
ZVRyYW5zYWN0aW9uSUQgPSAqdHJhbnNhY3Rpb25JRDsKKyAgICAgICAgaWYgKGF1dG8qIGNvbW1p
dExheWVyVHJlZVBlbmRpbmcgPSBzdGQ6OmdldF9pZjxDb21taXRMYXllclRyZWVQZW5kaW5nPigm
c3RhdGUuY29tbWl0TGF5ZXJUcmVlTWVzc2FnZVN0YXRlKSkgeworICAgICAgICAgICAgTUVTU0FH
RV9DSEVDS19CQVNFKGNvbW1pdExheWVyVHJlZVBlbmRpbmctPnJlcXVlc3RlZE5vdGlmeVBlbmRp
bmdDb21taXRMYXllclRyZWUsIGNvbm5lY3Rpb24pOworICAgICAgICAgICAgY29tbWl0TGF5ZXJU
cmVlUGVuZGluZy0+cmVxdWVzdGVkTm90aWZ5UGVuZGluZ0NvbW1pdExheWVyVHJlZS0tOworCisg
ICAgICAgICAgICBpZiAoc3RhdGUuY2FuU2VuZERpc3BsYXlEaWRSZWZyZXNoKCp0aGlzKSAmJiBj
b21taXRMYXllclRyZWVQZW5kaW5nLT5taXNzZWREaXNwbGF5RGlkUmVmcmVzaCkgeworICAgICAg
ICAgICAgICAgIExPR19XSVRIX1NUUkVBTShSZW1vdGVMYXllclRyZWUsIHN0cmVhbSA8PCAiUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6bm90aWZ5UGVuZGluZ0NvbW1pdExheWVyVHJl
ZSAtIHNlbmRpbmcgbWlzc2VkIGRpZFJlZnJlc2hEaXNwbGF5Iik7CisgICAgICAgICAgICAgICAg
Y29tbWl0TGF5ZXJUcmVlUGVuZGluZy0+bWlzc2VkRGlzcGxheURpZFJlZnJlc2ggPSBmYWxzZTsK
KyAgICAgICAgICAgICAgICBkaWRSZWZyZXNoRGlzcGxheSgmY29ubmVjdGlvbik7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgc3RhdGUuY29tbWl0TGF5ZXJUcmVl
TWVzc2FnZVN0YXRlID0gQ29tbWl0TGF5ZXJUcmVlUGVuZGluZyB7IDAsIDEsIGZhbHNlIH07CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgLy8gVGhpcyBmcmFtZSBpcyBzdGlsbCBwZW5kaW5nLCBpdCds
bCBiZSBzZW50IHdoZW4gdGhlIFdlYlByb2Nlc3MgZGVjaWRlcyBpdCdzIHJlYWR5LgotICAgICAg
ICAvLyBVc2UgdGhlIEludGVudGlvbmFsbHlEZWZlcnJlZCBzdGF0ZSBzbyB0aGF0IHdlIGRvbid0
IHRoaW5rIHRoYXQgaXQncyBsYXRlCi0gICAgICAgIC8vIHdoZW4gZGlzcGxheURpZFJlZnJlc2gg
YXJyaXZlcy4KLSAgICAgICAgTUVTU0FHRV9DSEVDS19CQVNFKHN0YXRlLnBlbmRpbmdDb21taXRz
LnNpemUoKSAmJiBzdGF0ZS5wZW5kaW5nQ29tbWl0c1swXS5wZW5kaW5nTWVzc2FnZSA9PSBQZW5k
aW5nQ29tbWl0TWVzc2FnZTo6Tm90aWZ5UGVuZGluZ0NvbW1pdExheWVyVHJlZSwgY29ubmVjdGlv
bik7Ci0gICAgICAgIHN0YXRlLnBlbmRpbmdDb21taXRzWzBdLmRlbGF5U3RhdGUgPSBDb21taXRE
ZWxheVN0YXRlOjpJbnRlbnRpb25hbGx5RGVmZXJyZWQ7CisgICAgICAgIE1FU1NBR0VfQ0hFQ0tf
QkFTRShzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPENvbW1pdExheWVyVHJlZVBlbmRpbmc+KHN0YXRl
LmNvbW1pdExheWVyVHJlZU1lc3NhZ2VTdGF0ZSksIGNvbm5lY3Rpb24pOworICAgICAgICBhdXRv
JiBjb21taXRMYXllclRyZWVQZW5kaW5nID0gc3RkOjpnZXQ8Q29tbWl0TGF5ZXJUcmVlUGVuZGlu
Zz4oc3RhdGUuY29tbWl0TGF5ZXJUcmVlTWVzc2FnZVN0YXRlKTsKKyAgICAgICAgTUVTU0FHRV9D
SEVDS19CQVNFKGNvbW1pdExheWVyVHJlZVBlbmRpbmcucmVxdWVzdGVkTm90aWZ5UGVuZGluZ0Nv
bW1pdExheWVyVHJlZSwgY29ubmVjdGlvbik7CisKKyAgICAgICAgY29tbWl0TGF5ZXJUcmVlUGVu
ZGluZy5yZXF1ZXN0ZWROb3RpZnlQZW5kaW5nQ29tbWl0TGF5ZXJUcmVlLS07CisgICAgICAgIGlm
ICghLS1jb21taXRMYXllclRyZWVQZW5kaW5nLnJlcXVlc3RlZENvbW1pdExheWVyVHJlZSkgewor
ICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZUxheWVyVHJlZSwgc3RyZWFtIDw8ICJS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpub3RpZnlQZW5kaW5nQ29tbWl0TGF5ZXJU
cmUgYWxsIHBlbmRpbmcgY29tbWl0cyByZWNlaXZlZCwgYmVjb21pbmcgaWRsZSIpOworICAgICAg
ICAgICAgc3RhdGUuY29tbWl0TGF5ZXJUcmVlTWVzc2FnZVN0YXRlID0gSWRsZSB7IH07CisgICAg
ICAgIH0KIAogICAgICAgICBtYXliZVBhdXNlRGlzcGxheVJlZnJlc2hDYWxsYmFja3MoKTsKIApA
QCAtMzEyLDMyICszMDksMTkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Ojpub3RpZnlQZW5kaW5nQ29tbWl0TGF5ZXJUcmVlKElQQzo6Q29ubmVjdGkKICAgICB9CiB9CiAK
LXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6bm90aWZ5Rmx1c2hpbmdMYXll
clRyZWUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBUcmFuc2FjdGlvbklEIHRyYW5zYWN0
aW9uSUQpCi17Ci0gICAgUHJvY2Vzc1N0YXRlJiBzdGF0ZSA9IHByb2Nlc3NTdGF0ZUZvckNvbm5l
Y3Rpb24oY29ubmVjdGlvbik7Ci0gICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZUxheWVyVHJlZSwg
c3RyZWFtIDw8ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpub3RpZnlGbHVzaGlu
Z0xheWVyVHJlZSAiIDw8IHRyYW5zYWN0aW9uSUQgPDwgIiBvbGQgc3RhdGU6ICIgPDwgc3RhdGUu
cGVuZGluZ0NvbW1pdHMpOwotCi0gICAgTUVTU0FHRV9DSEVDS19CQVNFKHN0YXRlLnBlbmRpbmdD
b21taXRzWzBdLnBlbmRpbmdNZXNzYWdlID09IFBlbmRpbmdDb21taXRNZXNzYWdlOjpOb3RpZnlG
bHVzaGluZ0xheWVyVHJlZSAmJiBzdGF0ZS5wZW5kaW5nQ29tbWl0c1swXS50cmFuc2FjdGlvbklE
ID09IHRyYW5zYWN0aW9uSUQsIGNvbm5lY3Rpb24pOwotICAgIHN0YXRlLnBlbmRpbmdDb21taXRz
WzBdLnBlbmRpbmdNZXNzYWdlID0gUGVuZGluZ0NvbW1pdE1lc3NhZ2U6OkNvbW1pdExheWVyVHJl
ZTsKLQotICAgIGlmIChzdGF0ZS5jYW5TZW5kRGlzcGxheURpZFJlZnJlc2goKnRoaXMpICYmIHN0
YXRlLnBlbmRpbmdDb21taXRzWzBdLmRlbGF5U3RhdGUgPT0gQ29tbWl0RGVsYXlTdGF0ZTo6RGVs
YXllZCkgewotICAgICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlTGF5ZXJUcmVlLCBzdHJlYW0g
PDwgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6Om5vdGlmeUZsdXNoaW5nTGF5ZXJU
cmVlIC0gc2VuZGluZyBtaXNzZWQgZGlkUmVmcmVzaERpc3BsYXkiKTsKLSAgICAgICAgZGlkUmVm
cmVzaERpc3BsYXkoJmNvbm5lY3Rpb24pOwotICAgIH0KLX0KLQogdm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBjb25zdCBSZW1vdGVMYXllclRyZWVDb21taXRCdW5kbGUmIGJ1bmRsZSwgSGFzaE1h
cDxJbWFnZUJ1ZmZlclNldElkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxCdWZmZXJTZXRCYWNr
ZW5kSGFuZGxlPj4mJiBoYW5kbGVzTWFwKQogewogICAgIHsKICAgICAgICAgUHJvY2Vzc1N0YXRl
JiBzdGF0ZSA9IHByb2Nlc3NTdGF0ZUZvckNvbm5lY3Rpb24oY29ubmVjdGlvbik7Ci0gICAgICAg
IExPR19XSVRIX1NUUkVBTShSZW1vdGVMYXllclRyZWUsIHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlIG9sZCBzdGF0ZTogIiA8PCBzdGF0
ZS5wZW5kaW5nQ29tbWl0cyk7CisgICAgICAgIExPR19XSVRIX1NUUkVBTShSZW1vdGVMYXllclRy
ZWUsIHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5
ZXJUcmVlIG9sZCBzdGF0ZTogIiA8PCBzdGF0ZS5jb21taXRMYXllclRyZWVNZXNzYWdlU3RhdGUp
OwogICAgICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlTGF5ZXJUcmVlLCBzdHJlYW0gPDwgIlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZSBwYWdlIGRhdGE6
ICIgPDwgYnVuZGxlLnBhZ2VEYXRhLmRlc2NyaXB0aW9uKCkpOwogICAgICAgICBpZiAoYnVuZGxl
Lm1haW5GcmFtZURhdGEpCiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlTGF5ZXJU
cmVlLCBzdHJlYW0gPDwgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExh
eWVyVHJlZSBtYWluIGZyYW1lIGRhdGE6ICIgPDwgYnVuZGxlLm1haW5GcmFtZURhdGEtPmRlc2Ny
aXB0aW9uKCkpOwogICAgICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlTGF5ZXJUcmVlLCBzdHJl
YW0gPDwgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZSBi
dW5kbGUgZGF0YTogIiA8PCBidW5kbGUuZGVzY3JpcHRpb24oKSk7Ci0gICAgICAgIE1FU1NBR0Vf
Q0hFQ0tfQkFTRShzdGF0ZS5wZW5kaW5nQ29tbWl0cy5zaXplKCksIGNvbm5lY3Rpb24pOwotICAg
ICAgICBNRVNTQUdFX0NIRUNLX0JBU0Uoc3RhdGUucGVuZGluZ0NvbW1pdHMubGFzdCgpLnBlbmRp
bmdNZXNzYWdlID09IFBlbmRpbmdDb21taXRNZXNzYWdlOjpDb21taXRMYXllclRyZWUsIGNvbm5l
Y3Rpb24pOwotICAgICAgICBNRVNTQUdFX0NIRUNLX0JBU0Uoc3RhdGUucGVuZGluZ0NvbW1pdHMu
bGFzdCgpLnRyYW5zYWN0aW9uSUQgPT0gYnVuZGxlLnRyYW5zYWN0aW9uSUQsIGNvbm5lY3Rpb24p
OworICAgICAgICBNRVNTQUdFX0NIRUNLX0JBU0Uoc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxDb21t
aXRMYXllclRyZWVQZW5kaW5nPihzdGF0ZS5jb21taXRMYXllclRyZWVNZXNzYWdlU3RhdGUpLCBj
b25uZWN0aW9uKTsKKyAgICAgICAgTUVTU0FHRV9DSEVDS19CQVNFKHN0ZDo6Z2V0PENvbW1pdExh
eWVyVHJlZVBlbmRpbmc+KHN0YXRlLmNvbW1pdExheWVyVHJlZU1lc3NhZ2VTdGF0ZSkucmVxdWVz
dGVkQ29tbWl0TGF5ZXJUcmVlLCBjb25uZWN0aW9uKTsKKyAgICAgICAgTUVTU0FHRV9DSEVDS19C
QVNFKHN0YXRlLnBlbmRpbmdMYXllclRyZWVUcmFuc2FjdGlvbklELCBjb25uZWN0aW9uKTsKKyAg
ICAgICAgTUVTU0FHRV9DSEVDS19CQVNFKGJ1bmRsZS50cmFuc2FjdGlvbklELmxlc3NUaGFuT3JF
cXVhbFNhbWVQcm9jZXNzKCpzdGF0ZS5wZW5kaW5nTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCksIGNv
bm5lY3Rpb24pOwogICAgICAgICBNRVNTQUdFX0NIRUNLX0JBU0UoIXN0YXRlLmNvbW1pdHRlZExh
eWVyVHJlZVRyYW5zYWN0aW9uSUQgfHwgYnVuZGxlLnRyYW5zYWN0aW9uSUQgPT0gc3RhdGUuY29t
bWl0dGVkTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRC0+bmV4dCgpLCBjb25uZWN0aW9uKTsKICAgICB9
CiAKQEAgLTM2NSwxMiArMzQ5LDYgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Ojpjb21taXRMYXllclRyZWUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAg
fQogICAgIH0KIAotICAgIFBlbmRpbmdDb21taXQgY29tcGxldGVkQ29tbWl0ID0gWyZdKCkgewot
ICAgICAgICBQcm9jZXNzU3RhdGUmIHN0YXRlID0gcHJvY2Vzc1N0YXRlRm9yQ29ubmVjdGlvbihj
b25uZWN0aW9uKTsKLSAgICAgICAgc3RhdGUuY29tbWl0dGVkTGF5ZXJUcmVlVHJhbnNhY3Rpb25J
RCA9IGJ1bmRsZS50cmFuc2FjdGlvbklEOwotICAgICAgICByZXR1cm4gc3RhdGUucGVuZGluZ0Nv
bW1pdHMudGFrZUxhc3QoKTsKLSAgICB9KCk7Ci0KICAgICBSZWZQdHIgcGFnZSA9IHRoaXMtPnBh
Z2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKQEAgLTM5OCw2ICszNzYsMTEg
QEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgICAgIHBhZ2UtPmRpZFJlYWNoTGF5
b3V0TWlsZXN0b25lKG1pbGVzdG9uZXMsIFdhbGxUaW1lOjpub3coKSk7CiAgICAgfQogCisgICAg
eworICAgICAgICBQcm9jZXNzU3RhdGUmIHN0YXRlID0gcHJvY2Vzc1N0YXRlRm9yQ29ubmVjdGlv
bihjb25uZWN0aW9uKTsKKyAgICAgICAgc3RhdGUuY29tbWl0dGVkTGF5ZXJUcmVlVHJhbnNhY3Rp
b25JRCA9IGJ1bmRsZS50cmFuc2FjdGlvbklEOworICAgIH0KKwogICAgIFdlYWtQdHIgd2Vha1Ro
aXMgeyAqdGhpcyB9OwogCiAgICAgZm9yIChhdXRvJiB0cmFuc2FjdGlvbiA6IGJ1bmRsZS50cmFu
c2FjdGlvbnMpIHsKQEAgLTQyNywxNCArNDEwLDE2IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
CiAKICAgICB7CiAgICAgICAgIFByb2Nlc3NTdGF0ZSYgc3RhdGUgPSBwcm9jZXNzU3RhdGVGb3JD
b25uZWN0aW9uKGNvbm5lY3Rpb24pOwotICAgICAgICBpZiAoc3RhdGUuY2FuU2VuZERpc3BsYXlE
aWRSZWZyZXNoKCp0aGlzKSAmJiBjb21wbGV0ZWRDb21taXQuZGVsYXlTdGF0ZSA9PSBDb21taXRE
ZWxheVN0YXRlOjpEZWxheWVkKSB7CisgICAgICAgIGF1dG8mIGNvbW1pdExheWVyVHJlZVBlbmRp
bmcgPSBzdGQ6OmdldDxDb21taXRMYXllclRyZWVQZW5kaW5nPihzdGF0ZS5jb21taXRMYXllclRy
ZWVNZXNzYWdlU3RhdGUpOworICAgICAgICBBU1NFUlQoY29tbWl0TGF5ZXJUcmVlUGVuZGluZy5y
ZXF1ZXN0ZWRDb21taXRMYXllclRyZWUpOworICAgICAgICBjb21taXRMYXllclRyZWVQZW5kaW5n
LnJlcXVlc3RlZENvbW1pdExheWVyVHJlZS0tOworICAgICAgICBpZiAoc3RhdGUuY2FuU2VuZERp
c3BsYXlEaWRSZWZyZXNoKCp0aGlzKSAmJiBjb21taXRMYXllclRyZWVQZW5kaW5nLm1pc3NlZERp
c3BsYXlEaWRSZWZyZXNoKSB7CiAgICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlTGF5
ZXJUcmVlLCBzdHJlYW0gPDwgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1p
dExheWVyVHJlZSAtIHNlbmRpbmcgbWlzc2VkIGRpZFJlZnJlc2hEaXNwbGF5Iik7CiAgICAgICAg
ICAgICBkaWRSZWZyZXNoRGlzcGxheSgmY29ubmVjdGlvbik7Ci0gICAgICAgIH0gZWxzZSBpZiAo
IXN0YXRlLnBlbmRpbmdDb21taXRzLnNpemUoKSkgeworICAgICAgICB9IGVsc2UgaWYgKCFjb21t
aXRMYXllclRyZWVQZW5kaW5nLnJlcXVlc3RlZENvbW1pdExheWVyVHJlZSkgewogICAgICAgICAg
ICAgTE9HX1dJVEhfU1RSRUFNKFJlbW90ZUxheWVyVHJlZSwgc3RyZWFtIDw8ICJSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUgYWxsIHBlbmRpbmcgY29tbWl0
cyByZWNlaXZlZCwgd2FpdGluZyBmb3IgZGlzcGxheSBkaWQgcmVmcmVzaCIpOworICAgICAgICAg
ICAgc3RhdGUuY29tbWl0TGF5ZXJUcmVlTWVzc2FnZVN0YXRlID0gTmVlZHNEaXNwbGF5RGlkUmVm
cmVzaCB7IH07CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGNvbXBsZXRlZENvbW1pdC5kZWxheVN0
YXRlICE9IENvbW1pdERlbGF5U3RhdGU6OkRlbGF5ZWQgJiYgc3RhdGUuZGVsYXllZENvbW1pdHMp
Ci0gICAgICAgICAgICBzdGF0ZS5kZWxheWVkQ29tbWl0cy0tOwogICAgIH0KIAogICAgIHVwZGF0
ZVNsb3dGcmFtZUluZGljYXRvcigpOwpAQCAtNzMwLDExICs3MTUsMTEgQEAgdm9pZCBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkcmF3U2xvd0ZyYW1lSW5kaWNhdG9yKFdlYkNvcmU6
OkdyYXBoaWNzQ28KIAogYm9vbCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjptYXli
ZVBhdXNlRGlzcGxheVJlZnJlc2hDYWxsYmFja3MoKQogewotICAgIGlmICghbV93ZWJQYWdlUHJv
eHlQcm9jZXNzU3RhdGUucGVuZGluZ0NvbW1pdHMuc2l6ZSgpIHx8IG1fd2ViUGFnZVByb3h5UHJv
Y2Vzc1N0YXRlLnBlbmRpbmdDb21taXRzWzBdLmRlbGF5U3RhdGUgIT0gQ29tbWl0RGVsYXlTdGF0
ZTo6SW50ZW50aW9uYWxseURlZmVycmVkKQorICAgIGlmICghc3RkOjpob2xkc19hbHRlcm5hdGl2
ZTxJZGxlPihtX3dlYlBhZ2VQcm94eVByb2Nlc3NTdGF0ZS5jb21taXRMYXllclRyZWVNZXNzYWdl
U3RhdGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmb3IgKGF1dG8mIHBhaXIgOiBt
X3JlbW90ZVBhZ2VQcm9jZXNzU3RhdGUpIHsKLSAgICAgICAgaWYgKCFwYWlyLnZhbHVlLnBlbmRp
bmdDb21taXRzLnNpemUoKSB8fCBwYWlyLnZhbHVlLnBlbmRpbmdDb21taXRzWzBdLmRlbGF5U3Rh
dGUgIT0gQ29tbWl0RGVsYXlTdGF0ZTo6SW50ZW50aW9uYWxseURlZmVycmVkKQorICAgICAgICBp
ZiAoc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxJZGxlPihwYWlyLnZhbHVlLmNvbW1pdExheWVyVHJl
ZU1lc3NhZ2VTdGF0ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC03
NDcsMjcgKzczMiwxOSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRp
ZFJlZnJlc2hEaXNwbGF5KCkKICAgICBkaWRSZWZyZXNoRGlzcGxheShudWxscHRyKTsKIH0KIAot
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUGVuZGluZ0NvbW1p
dE1lc3NhZ2UmIHN0YXRlKQorVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
Y29uc3QgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6SWRsZSYpCiB7Ci0gICAgaWYg
KHN0YXRlID09IFBlbmRpbmdDb21taXRNZXNzYWdlOjpOb3RpZnlQZW5kaW5nQ29tbWl0TGF5ZXJU
cmVlKQotICAgICAgICByZXR1cm4gdHMgPDwgIk5vdGlmeVBlbmRpbmdDb21taXRMYXllclRyZWUi
OwotICAgIGlmIChzdGF0ZSA9PSBQZW5kaW5nQ29tbWl0TWVzc2FnZTo6Tm90aWZ5Rmx1c2hpbmdM
YXllclRyZWUpCi0gICAgICAgIHJldHVybiB0cyA8PCAiTm90aWZ5Rmx1c2hpbmdMYXllclRyZWUi
OwotICAgIHJldHVybiB0cyA8PCAiQ29tbWl0TGF5ZXJUcmVlIjsKKyAgICByZXR1cm4gdHMgPDwg
IklkbGUiOwogfQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25z
dCBDb21taXREZWxheVN0YXRlJiBzdGF0ZSkKK1RleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIGNvbnN0IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6Ok5lZWRzRGlz
cGxheURpZFJlZnJlc2gmKQogewotICAgIHN3aXRjaCAoc3RhdGUpIHsKLSAgICBjYXNlIENvbW1p
dERlbGF5U3RhdGU6OlBlbmRpbmc6IHJldHVybiB0cyA8PCAiUGVuZGluZyI7Ci0gICAgY2FzZSBD
b21taXREZWxheVN0YXRlOjpEZWxheWVkOiByZXR1cm4gdHMgPDwgIkRlbGF5ZWQiOwotICAgIGNh
c2UgQ29tbWl0RGVsYXlTdGF0ZTo6SW50ZW50aW9uYWxseURlZmVycmVkOiByZXR1cm4gdHMgPDwg
IkludGVudGlvbmFsbHlEZWZlcnJlZCI7Ci0gICAgfQorICAgIHJldHVybiB0cyA8PCAiTmVlZHNE
aXNwbGF5RGlkUmVmcmVzaCI7CiB9CiAKLVRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFBlbmRpbmdDb21taXQmIHBlbmRpbmdDb21taXQpCitUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5OjpDb21taXRMYXllclRyZWVQZW5kaW5nJiBjb21taXRMYXllclRyZWVQZW5kaW5nKQog
ewotICAgIHJldHVybiB0cyA8PCAieyAiIDw8IHBlbmRpbmdDb21taXQudHJhbnNhY3Rpb25JRCA8
PCAiLCBwZW5kaW5nKCIgPDwgcGVuZGluZ0NvbW1pdC5wZW5kaW5nTWVzc2FnZSA8PCAiKSwgZGVs
YXkoIiA8PCBwZW5kaW5nQ29tbWl0LmRlbGF5U3RhdGUgPDwgIikgfSAiOworICAgIHJldHVybiB0
cyA8PCAiQ29tbWl0TGF5ZXJUcmVlUGVuZGluZygiIDw8IGNvbW1pdExheWVyVHJlZVBlbmRpbmcu
cmVxdWVzdGVkTm90aWZ5UGVuZGluZ0NvbW1pdExheWVyVHJlZSA8PCAiLCAiIDw8IGNvbW1pdExh
eWVyVHJlZVBlbmRpbmcucmVxdWVzdGVkQ29tbWl0TGF5ZXJUcmVlIDw8ICIsICIgPDwgY29tbWl0
TGF5ZXJUcmVlUGVuZGluZy5taXNzZWREaXNwbGF5RGlkUmVmcmVzaCA8PCAiKSI7CiB9CiAKIGJv
b2wgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6YWxsb3dNdWx0aXBsZUNvbW1pdExh
eWVyVHJlZVBlbmRpbmcoKQpAQCAtNzc3LDM4ICs3NTQsMzkgQEAgYm9vbCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5OjphbGxvd011bHRpcGxlQ29tbWl0TGF5ZXJUcmVlUGVuZGluZygp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFByb2Nlc3NTdGF0ZTo6Y2FuU2VuZERpc3Bs
YXlEaWRSZWZyZXNoKFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkmIGRyYXdpbmdBcmVh
KQorYm9vbCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpQcm9jZXNzU3RhdGU6OmNh
blNlbmREaXNwbGF5RGlkUmVmcmVzaChSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5JiBk
cmF3aW5nQXJlYSkKIHsKLSAgICBpZiAocGVuZGluZ0NvbW1pdHMuc2l6ZSgpID49IDIpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAocGVuZGluZ0NvbW1pdHMuc2l6ZSgpID09IDEpCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2Vsc2UKLSAg
ICAgICAgcmV0dXJuIGRyYXdpbmdBcmVhLmFsbG93TXVsdGlwbGVDb21taXRMYXllclRyZWVQZW5k
aW5nKCkgJiYgcGVuZGluZ0NvbW1pdHNbMF0ucGVuZGluZ01lc3NhZ2UgPT0gUGVuZGluZ0NvbW1p
dE1lc3NhZ2U6OkNvbW1pdExheWVyVHJlZSAmJiBkZWxheWVkQ29tbWl0cyA+PSA0OwotI2VuZGlm
Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oY29tbWl0TGF5ZXJU
cmVlTWVzc2FnZVN0YXRlLAorICAgICAgICBbJl0oY29uc3QgQ29tbWl0TGF5ZXJUcmVlUGVuZGlu
ZyYgY29tbWl0TGF5ZXJUcmVlUGVuZGluZykgeworICAgICAgICAgICAgaWYgKGNvbW1pdExheWVy
VHJlZVBlbmRpbmcucmVxdWVzdGVkTm90aWZ5UGVuZGluZ0NvbW1pdExheWVyVHJlZSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoZHJhd2luZ0FyZWEuYWxs
b3dNdWx0aXBsZUNvbW1pdExheWVyVHJlZVBlbmRpbmcoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gY29tbWl0TGF5ZXJUcmVlUGVuZGluZy5yZXF1ZXN0ZWRDb21taXRMYXllclRyZWUgPD0gMTsK
KyAgICAgICAgICAgIHJldHVybiAhY29tbWl0TGF5ZXJUcmVlUGVuZGluZy5yZXF1ZXN0ZWRDb21t
aXRMYXllclRyZWU7CisgICAgICAgIH0sCisgICAgICAgIFtdKGNvbnN0IE5lZWRzRGlzcGxheURp
ZFJlZnJlc2gmKSB7IHJldHVybiB0cnVlOyB9LAorICAgICAgICBbXShjb25zdCBJZGxlJikgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICApOwogfQogCiBJUEM6OkVycm9yIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHk6OmRpZFJlZnJlc2hEaXNwbGF5KFByb2Nlc3NTdGF0ZSYgc3RhdGUsIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBpZiAoIXN0YXRlLmNhblNlbmREaXNw
bGF5RGlkUmVmcmVzaCgqdGhpcykpIHsKLSAgICAgICAgQVNTRVJUKHN0YXRlLnBlbmRpbmdDb21t
aXRzLnNpemUoKSk7Ci0gICAgICAgIGlmIChzdGF0ZS5wZW5kaW5nQ29tbWl0cy5sYXN0KCkuZGVs
YXlTdGF0ZSA9PSBDb21taXREZWxheVN0YXRlOjpQZW5kaW5nKSB7Ci0gICAgICAgICAgICBzdGF0
ZS5wZW5kaW5nQ29tbWl0cy5sYXN0KCkuZGVsYXlTdGF0ZSA9IENvbW1pdERlbGF5U3RhdGU6OkRl
bGF5ZWQ7Ci0gICAgICAgICAgICBMT0dfV0lUSF9TVFJFQU0oUmVtb3RlTGF5ZXJUcmVlLCBzdHJl
YW0gPDwgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpZFJlZnJlc2hEaXNwbGF5
IHN0aWxsIHdhaXRpbmcgb24gY29tbWl0LCBtYXJrZWQgYXMgZGVsYXllZCIpOwotICAgICAgICAg
ICAgc3RhdGUuZGVsYXllZENvbW1pdHMrKzsKKyAgICAgICAgaWYgKGF1dG8qIGNvbW1pdExheWVy
VHJlZVBlbmRpbmcgPSBzdGQ6OmdldF9pZjxDb21taXRMYXllclRyZWVQZW5kaW5nPigmc3RhdGUu
Y29tbWl0TGF5ZXJUcmVlTWVzc2FnZVN0YXRlKSkgeworICAgICAgICAgICAgTE9HX1dJVEhfU1RS
RUFNKFJlbW90ZUxheWVyVHJlZSwgc3RyZWFtIDw8ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5OjpkaWRSZWZyZXNoRGlzcGxheSBzdGlsIHdhaXRpbmcgb24gY29tbWl0LCBtYXJrZWQg
YXMgbWlzc2VkIik7CisgICAgICAgICAgICBjb21taXRMYXllclRyZWVQZW5kaW5nLT5taXNzZWRE
aXNwbGF5RGlkUmVmcmVzaCA9IHRydWU7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIElQQzo6
RXJyb3I6Ok5vRXJyb3I7CiAgICAgfQotICAgIC8vIFRoZSB2ZXJ5IGZpcnN0IGNvbW1pdCBpcyBp
bml0aWF0ZWQgYnkgV2ViQ29udGVudCwgc28gZG9uJ3Qgc2VuZCBhIGRpZFJlZnJlc2hEaXNwbGF5
IHVudGlsIHdlJ3ZlIHJlY2VpdmVkIHRoYXQuCi0gICAgaWYgKHN0YXRlLm5leHRMYXllclRyZWVU
cmFuc2FjdGlvbklELm9iamVjdCgpID09IFRyYW5zYWN0aW9uSWRlbnRpZmllcigpLm5leHQoKSkK
LSAgICAgICAgcmV0dXJuIElQQzo6RXJyb3I6Ok5vRXJyb3I7CiAKLSAgICBzdGF0ZS5wZW5kaW5n
Q29tbWl0cy5pbnNlcnQoMCwgeyBzdGF0ZS5uZXh0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCwgUGVu
ZGluZ0NvbW1pdE1lc3NhZ2U6Ok5vdGlmeVBlbmRpbmdDb21taXRMYXllclRyZWUsIENvbW1pdERl
bGF5U3RhdGU6OlBlbmRpbmcgfSk7Ci0gICAgc3RhdGUubmV4dExheWVyVHJlZVRyYW5zYWN0aW9u
SUQuaW5jcmVtZW50KCk7CisgICAgaWYgKGF1dG8qIGNvbW1pdExheWVyVHJlZVBlbmRpbmcgPSBz
dGQ6OmdldF9pZjxDb21taXRMYXllclRyZWVQZW5kaW5nPigmc3RhdGUuY29tbWl0TGF5ZXJUcmVl
TWVzc2FnZVN0YXRlKSkgeworICAgICAgICBjb21taXRMYXllclRyZWVQZW5kaW5nLT5yZXF1ZXN0
ZWROb3RpZnlQZW5kaW5nQ29tbWl0TGF5ZXJUcmVlKys7CisgICAgICAgIGNvbW1pdExheWVyVHJl
ZVBlbmRpbmctPnJlcXVlc3RlZENvbW1pdExheWVyVHJlZSsrOworICAgICAgICBjb21taXRMYXll
clRyZWVQZW5kaW5nLT5taXNzZWREaXNwbGF5RGlkUmVmcmVzaCA9IGZhbHNlOworICAgIH0gZWxz
ZQorICAgICAgICBzdGF0ZS5jb21taXRMYXllclRyZWVNZXNzYWdlU3RhdGUgPSBDb21taXRMYXll
clRyZWVQZW5kaW5nIHsgfTsKIAotICAgIExPR19XSVRIX1NUUkVBTShSZW1vdGVMYXllclRyZWUs
IHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlkUmVmcmVzaERp
c3BsYXkgbmV3IHN0YXRlICIgPDwgc3RhdGUucGVuZGluZ0NvbW1pdHMpOworICAgIExPR19XSVRI
X1NUUkVBTShSZW1vdGVMYXllclRyZWUsIHN0cmVhbSA8PCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6ZGlkUmVmcmVzaERpc3BsYXkgbmV3IHN0YXRlICIgPDwgc3RhdGUuY29tbWl0
TGF5ZXJUcmVlTWVzc2FnZVN0YXRlKTsKIAogICAgIGlmICgmc3RhdGUgPT0gJm1fd2ViUGFnZVBy
b3h5UHJvY2Vzc1N0YXRlKSB7CiAgICAgICAgIGlmIChSZWZQdHIgcGFnZSA9IHRoaXMtPnBhZ2Uo
KSkKQEAgLTg2MywxOCArODQxLDE3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6d2FpdEZvckRpZFVwZGF0ZUFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0CiAgICAgYXV0
byBzdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKIAogICAgIGRvIHsKLSAgICAgICAg
SVBDOjpFcnJvciBlcnJvcjsKLSAgICAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eVByb2Nlc3NTdGF0
ZS5wZW5kaW5nQ29tbWl0cy5zaXplKCkpCi0gICAgICAgICAgICBlcnJvciA9IGRpZFJlZnJlc2hE
aXNwbGF5KG1fd2ViUGFnZVByb3h5UHJvY2Vzc1N0YXRlLCBjb25uZWN0aW9uLmdldCgpKTsKLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBPbmx5IHRoZSBtb3N0IHJlY2VudCBvdXRzdGFu
ZGluZyBmcmFtZSBjYW4gYmUgaW4gTm90aWZ5UGVuZGluZ0NvbW1pdExheWVyVHJlZSBzdGF0ZQot
ICAgICAgICAgICAgaWYgKG1fd2ViUGFnZVByb3h5UHJvY2Vzc1N0YXRlLnBlbmRpbmdDb21taXRz
WzBdLnBlbmRpbmdNZXNzYWdlID09IFBlbmRpbmdDb21taXRNZXNzYWdlOjpOb3RpZnlQZW5kaW5n
Q29tbWl0TGF5ZXJUcmVlKQotICAgICAgICAgICAgICAgIGVycm9yID0gY29ubmVjdGlvbi0+d2Fp
dEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6Ok5vdGlmeVBlbmRpbmdDb21taXRMYXllclRyZWU+KGlkZW50aWZpZXIoKSwg
YWN0aXZpdHlTdGF0ZVVwZGF0ZVRpbWVvdXQgLSAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFy
dFRpbWUpLCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdl
QXJyaXZlcyk7Ci0gICAgICAgICAgICBlbHNlIGlmIChtX3dlYlBhZ2VQcm94eVByb2Nlc3NTdGF0
ZS5wZW5kaW5nQ29tbWl0c1swXS5wZW5kaW5nTWVzc2FnZSA9PSBQZW5kaW5nQ29tbWl0TWVzc2Fn
ZTo6Tm90aWZ5Rmx1c2hpbmdMYXllclRyZWUpCi0gICAgICAgICAgICAgICAgZXJyb3IgPSBjb25u
ZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Tm90aWZ5Rmx1c2hpbmdMYXllclRyZWU+KGlkZW50aWZp
ZXIoKSwgYWN0aXZpdHlTdGF0ZVVwZGF0ZVRpbWVvdXQgLSAoTW9ub3RvbmljVGltZTo6bm93KCkg
LSBzdGFydFRpbWUpLCBJUEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNN
ZXNzYWdlQXJyaXZlcyk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZXJyb3Ig
PSBjb25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Q29tbWl0TGF5ZXJUcmVlPihpZGVudGlmaWVy
KCksIGFjdGl2aXR5U3RhdGVVcGRhdGVUaW1lb3V0IC0gKE1vbm90b25pY1RpbWU6Om5vdygpIC0g
c3RhcnRUaW1lKSwgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1cHRXYWl0aW5nSWZTeW5jTWVz
c2FnZUFycml2ZXMpOwotICAgICAgICB9CisgICAgICAgIElQQzo6RXJyb3IgZXJyb3IgPSBXVEY6
OnN3aXRjaE9uKG1fd2ViUGFnZVByb3h5UHJvY2Vzc1N0YXRlLmNvbW1pdExheWVyVHJlZU1lc3Nh
Z2VTdGF0ZSwKKyAgICAgICAgICAgIFsmXShjb25zdCBDb21taXRMYXllclRyZWVQZW5kaW5nJiBj
b21taXRMYXllclRyZWVQZW5kaW5nKSB7CisgICAgICAgICAgICAgICAgaWYgKGNvbW1pdExheWVy
VHJlZVBlbmRpbmcucmVxdWVzdGVkTm90aWZ5UGVuZGluZ0NvbW1pdExheWVyVHJlZSkKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb24tPndhaXRGb3JBbmREaXNwYXRjaEltbWVk
aWF0ZWx5PE1lc3NhZ2VzOjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpOb3RpZnlQ
ZW5kaW5nQ29tbWl0TGF5ZXJUcmVlPihpZGVudGlmaWVyKCksIGFjdGl2aXR5U3RhdGVVcGRhdGVU
aW1lb3V0IC0gKE1vbm90b25pY1RpbWU6Om5vdygpIC0gc3RhcnRUaW1lKSwgSVBDOjpXYWl0Rm9y
T3B0aW9uOjpJbnRlcnJ1cHRXYWl0aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOworICAgICAgICAg
ICAgICAgIHJldHVybiBjb25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxN
ZXNzYWdlczo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Q29tbWl0TGF5ZXJUcmVl
PihpZGVudGlmaWVyKCksIGFjdGl2aXR5U3RhdGVVcGRhdGVUaW1lb3V0IC0gKE1vbm90b25pY1Rp
bWU6Om5vdygpIC0gc3RhcnRUaW1lKSwgSVBDOjpXYWl0Rm9yT3B0aW9uOjpJbnRlcnJ1cHRXYWl0
aW5nSWZTeW5jTWVzc2FnZUFycml2ZXMpOworICAgICAgICAgICAgfSwgWyZdKGNvbnN0IE5lZWRz
RGlzcGxheURpZFJlZnJlc2gmKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRpZFJlZnJlc2hE
aXNwbGF5KG1fd2ViUGFnZVByb3h5UHJvY2Vzc1N0YXRlLCBjb25uZWN0aW9uLmdldCgpKTsKKyAg
ICAgICAgICAgIH0sIFsmXShjb25zdCBJZGxlJikgeworICAgICAgICAgICAgICAgIHJldHVybiBj
b25uZWN0aW9uLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Tm90aWZ5UGVuZGluZ0NvbW1pdExheWVyVHJlZT4o
aWRlbnRpZmllcigpLCBhY3Rpdml0eVN0YXRlVXBkYXRlVGltZW91dCAtIChNb25vdG9uaWNUaW1l
Ojpub3coKSAtIHN0YXJ0VGltZSksIElQQzo6V2FpdEZvck9wdGlvbjo6SW50ZXJydXB0V2FpdGlu
Z0lmU3luY01lc3NhZ2VBcnJpdmVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKIAogICAg
ICAgICBpZiAoZXJyb3IgIT0gSVBDOjpFcnJvcjo6Tm9FcnJvcikKICAgICAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9p
b3MvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eUlPUy5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5SU9TLmgKaW5kZXggZGUxMDg0NGRmY2QwLi5jOWZjMWJmZmFmYzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eUlPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eUlPUy5oCkBAIC03
MSw2ICs3MSw3IEBAIHByaXZhdGU6CiAKICAgICBSZXRhaW5QdHI8V0tEaXNwbGF5TGlua0hhbmRs
ZXI+IG1fZGlzcGxheUxpbmtIYW5kbGVyOwogCisgICAgYm9vbCBtX25lZWRzRGlzcGxheVJlZnJl
c2hDYWxsYmFja3NGb3JEcmF3aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1fbmVlZHNEaXNwbGF5
UmVmcmVzaENhbGxiYWNrc0Zvck1vbm90b25pY0FuaW1hdGlvbnMgeyBmYWxzZSB9OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
TWFjLm1tCmluZGV4IDBhZWU2NmIwYmIwNi4uNThiMTUzMDQ2ZTQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWFjLm1tCkBAIC00
NjIsNyArNDYyLDYgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWFjOjpz
ZW5kQ29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIEYKIHZvaWQgUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eU1hYzo6c2NoZWR1bGVEaXNwbGF5UmVmcmVzaENhbGxiYWNrcygp
CiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwgIltVSSBdIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNYWMgIiA8PCB0aGlzIDw8ICIgc2NoZWR1bGVE
aXNwbGF5TGluayBmb3IgZGlzcGxheSAiIDw8IG1fZGlzcGxheUlEIDw8ICIgLSBleGlzdGluZyBv
YnNlcnZlciAiIDw8IG1fZGlzcGxheVJlZnJlc2hPYnNlcnZlcklEKTsKLSAgICBtX25lZWRzRGlz
cGxheVJlZnJlc2hDYWxsYmFja3NGb3JEcmF3aW5nID0gdHJ1ZTsKICAgICBpZiAobV9kaXNwbGF5
UmVmcmVzaE9ic2VydmVySUQpCiAgICAgICAgIHJldHVybjsKIApAQCAtNDg4LDcgKzQ4Nyw2IEBA
IHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1hYzo6cGF1c2VEaXNwbGF5UmVm
cmVzaENhbGxiYWNrcygpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJl
YW0gPDwgIltVSSBdIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNYWMgIiA8PCB0aGlz
IDw8ICIgcGF1c2VEaXNwbGF5TGluayBmb3IgZGlzcGxheSAiIDw8IG1fZGlzcGxheUlEIDw8ICIg
LSBvYnNlcnZlciAiIDw8IG1fZGlzcGxheVJlZnJlc2hPYnNlcnZlcklEKTsKICAgICByZW1vdmVP
YnNlcnZlcihtX2Rpc3BsYXlSZWZyZXNoT2JzZXJ2ZXJJRCk7Ci0gICAgbV9uZWVkc0Rpc3BsYXlS
ZWZyZXNoQ2FsbGJhY2tzRm9yRHJhd2luZyA9IGZhbHNlOwogfQogCiB2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHlNYWM6OnNldFByZWZlcnJlZEZyYW1lc1BlclNlY29uZChJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sICBXZWJDb3JlOjpGcmFtZXNQZXJTZWNvbmQgcHJlZmVy
cmVkRnJhbWVzUGVyU2Vjb25kKQpAQCAtNTMyLDcgKzUzMCw2IEBAIHZvaWQgUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eU1hYzo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlz
cGxheUlECiAgICAgaWYgKGRpc3BsYXlJRCA9PSBtX2Rpc3BsYXlJRCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYm9vbCBuZWVkc0Rpc3BsYXlSZWZyZXNoQ2FsbGJhY2tzRm9yRHJhd2luZyA9IG1f
bmVlZHNEaXNwbGF5UmVmcmVzaENhbGxiYWNrc0ZvckRyYXdpbmc7CiAgICAgYm9vbCBoYWRGdWxs
U3BlZWRPYmVydmVyID0gbV9mdWxsU3BlZWRVcGRhdGVPYnNlcnZlcklELmhhc192YWx1ZSgpOwog
ICAgIGlmIChoYWRGdWxsU3BlZWRPYmVydmVyKQogICAgICAgICByZW1vdmVPYnNlcnZlcihtX2Z1
bGxTcGVlZFVwZGF0ZU9ic2VydmVySUQpOwpAQCAtNTQ5LDggKzU0Niw3IEBAIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1hYzo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRm
b3JtRGlzcGxheUlECiAgICAgaWYgKHBhZ2UpCiAgICAgICAgIHBhZ2UtPmNoZWNrZWRTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5KCktPndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5SUQsIG1f
ZGlzcGxheU5vbWluYWxGcmFtZXNQZXJTZWNvbmQpOwogCi0gICAgaWYgKG5lZWRzRGlzcGxheVJl
ZnJlc2hDYWxsYmFja3NGb3JEcmF3aW5nKQotICAgICAgICBzY2hlZHVsZURpc3BsYXlSZWZyZXNo
Q2FsbGJhY2tzKCk7CisgICAgc2NoZWR1bGVEaXNwbGF5UmVmcmVzaENhbGxiYWNrcygpOwogICAg
IGlmIChoYWRGdWxsU3BlZWRPYmVydmVyKSB7CiAgICAgICAgIG1fZnVsbFNwZWVkVXBkYXRlT2Jz
ZXJ2ZXJJRCA9IERpc3BsYXlMaW5rT2JzZXJ2ZXJJRDo6Z2VuZXJhdGUoKTsKICAgICAgICAgaWYg
KGF1dG8qIGRpc3BsYXlMaW5rID0gZXhpc3RpbmdEaXNwbGF5TGluaygpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IDZjN2U0
M2IwYjgyOC4uYzk2MjMxZDZlN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC00MjIsOCArNDIyLDYgQEAgdm9pZCBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKCkKIAogICAgIG1fYmFja2lu
Z1N0b3JlRmx1c2hlci0+bWFya0hhc1BlbmRpbmdGbHVzaCgpOwogCi0gICAgc2VuZChNZXNzYWdl
czo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Tm90aWZ5Rmx1c2hpbmdMYXllclRy
ZWUodHJhbnNhY3Rpb25JRCkpOwotCiAgICAgYXV0byBwYWdlSUQgPSB3ZWJQYWdlLT5pZGVudGlm
aWVyKCk7CiAgICAgbV9jb21taXRRdWV1ZS0+ZGlzcGF0Y2goW2JhY2tpbmdTdG9yZUZsdXNoZXIg
PSBtX2JhY2tpbmdTdG9yZUZsdXNoZXIsIGNvbW1pdEVuY29kZXIgPSBXVEY6Om1vdmUoY29tbWl0
RW5jb2RlciksIGZsdXNoZXJzID0gV1RGOjptb3ZlKGZsdXNoZXJzKSwgcGFnZUlEXSAoKSBtdXRh
YmxlIHsKICAgICAgICAgYm9vbCBmbHVzaFN1Y2NlZWRlZCA9IGJhY2tpbmdTdG9yZUZsdXNoZXIt
PmZsdXNoKFdURjo6bW92ZShjb21taXRFbmNvZGVyKSwgV1RGOjptb3ZlKGZsdXNoZXJzKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>