<?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>289634</bug_id>
          
          <creation_ts>2025-03-12 13:08:00 -0700</creation_ts>
          <short_desc>REGRESSION(292008@main): speculative revert to monitor JS2</short_desc>
          <delta_ts>2025-04-03 23:56:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>291062</dependson>
          <blocked>289521</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2102630</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-03-12 13:08:00 -0700</bug_when>
    <thetext>https://commits.webkit.org/292008@main introduced a regression:
speculative revert to monitor JS2

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>2102632</commentid>
    <comment_count>1</comment_count>
      <attachid>474539</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-03-12 13:08:07 -0700</bug_when>
    <thetext>Created attachment 474539
REVERT of 292008@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>2102654</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-03-12 13:42:36 -0700</bug_when>
    <thetext>Committed 292040@main (c5e067115873): &lt;https://commits.webkit.org/292040@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 474539.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2102657</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-03-12 13:43:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/146886220&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2108804</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-04-03 23:56:01 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 291062</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>474539</attachid>
            <date>2025-03-12 13:08:07 -0700</date>
            <delta_ts>2025-03-12 13:42:36 -0700</delta_ts>
            <desc>REVERT of 292008@main</desc>
            <filename>bug-289634-20250312200807.patch</filename>
            <type>text/plain</type>
            <size>54365</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA1YjlhZjk4NjgxZTZkZDM4MjU5NTRmNjhhMzYwODIxOWY3ODcxMGNhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDEyIE1hciAyMDI1IDIwOjA4OjA0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDI5MjAwOEBtYWluLgogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI4OTYzNAoKc3BlY3VsYXRpdmUgcmV2ZXJ0IHRvIG1vbml0b3Ig
SlMyCgpSZXZlcnRlZCBjaGFuZ2VzZXQ6CgoiW0pTQ10gVXNlIDMtb3BlcmFuZCBpbnN0cnVjdGlv
bnMgbW9yZSBpbiBCYXNlbGluZSAvIERGRyIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI4OTUyMQpodHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy8yOTIwMDhAbWFpbgot
LS0KIC4uLi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaCB8ICAxNCAr
LQogLi4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggICAgICAgICAgIHwgIDEyIC0t
CiAuLi4vYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCAgICAgICAgICAgfCAgMTYgLS0K
IC4uLi9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJSSVNDVjY0LmggICAgICAgICB8ICAxNiAtLQog
Li4uL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oICAgICAgICAgIHwgIDQ3ICstLS0t
CiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXQuY3BwICAgICAgfCAgIDMgKy0K
IC4uLi9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwICB8ICA3NSArKyst
LS0tCiAuLi4vZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwICAgICAgICAgICAgICAgfCAgODEg
KysrKy0tLS0KIC4uLi9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNwcCB8
ICAgMyArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwIHwg
IDM2ICsrLS0KIC4uLi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQml0QW5kR2VuZXJhdG9yLmNwcCB8
ICAgNCArLQogLi4uL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRCaXRPckdlbmVyYXRvci5jcHAgIHwg
ICA4ICstCiAuLi4vSmF2YVNjcmlwdENvcmUvaml0L0pJVEJpdFhvckdlbmVyYXRvci5jcHAgfCAg
IDYgKy0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcCB8ICAg
MSArCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCAgICAgICAgfCAgIDMg
Ky0KIC4uLi9qaXQvSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmNwcCAgICAgICAgICAgICB8ICAyNCAr
LS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTmVnR2VuZXJhdG9yLmNwcCB8ICAxMSAr
LQogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCAgICAgIHwgICA2ICst
CiAuLi4vaml0L0pJVFJpZ2h0U2hpZnRHZW5lcmF0b3IuY3BwICAgICAgICAgICAgfCAxODUgKysr
KysrKy0tLS0tLS0tLS0tCiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRv
ci5jcHAgfCAgMTEgKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9qaXQvU2V0dXBWYXJhcmdzRnJhbWUu
Y3BwICB8ICAgOSArLQogU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAgICAg
ICAgIHwgICAzICstCiAyMiBmaWxlcyBjaGFuZ2VkLCAyMjEgaW5zZXJ0aW9ucygrKSwgMzUzIGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXIuaAppbmRleCBhY2FmYzUxNWI2ODAuLjZkYzM2M2I0YzI1NCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaApAQCAtMjMzNyw3
ICsyMzM3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBsc2hpZnQzMihJbW0zMiBhbW91bnQsIFJl
Z2lzdGVySUQgc2hpZnRBbW91bnQsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIGxz
aGlmdDMyKGFtb3VudC5hc1RydXN0ZWRJbW0zMigpLCBzaGlmdEFtb3VudCwgZGVzdCk7CisgICAg
ICAgIGxzaGlmdDMyKHRydXN0ZWRJbW0zMkZvclNoaWZ0KGFtb3VudCksIHNoaWZ0QW1vdW50LCBk
ZXN0KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCByc2hpZnQzMihJbW0zMiBpbW0sIFJlZ2lzdGVy
SUQgZGVzdCkKQEAgLTIzNDksMTIgKzIzNDksNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBy
c2hpZnQzMihzcmMsIHRydXN0ZWRJbW0zMkZvclNoaWZ0KGFtb3VudCksIGRlc3QpOwogICAgIH0K
LQotICAgIHZvaWQgcnNoaWZ0MzIoSW1tMzIgYW1vdW50LCBSZWdpc3RlcklEIHNoaWZ0QW1vdW50
LCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICByc2hpZnQzMihhbW91bnQuYXNUcnVz
dGVkSW1tMzIoKSwgc2hpZnRBbW91bnQsIGRlc3QpOwotICAgIH0KLQorICAgIAogICAgIHZvaWQg
dXJzaGlmdDMyKEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgdXJz
aGlmdDMyKHRydXN0ZWRJbW0zMkZvclNoaWZ0KGltbSksIGRlc3QpOwpAQCAtMjM2NSwxMSArMjM2
MCw2IEBAIHB1YmxpYzoKICAgICAgICAgdXJzaGlmdDMyKHNyYywgdHJ1c3RlZEltbTMyRm9yU2hp
ZnQoYW1vdW50KSwgZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCB1cnNoaWZ0MzIoSW1tMzIgYW1v
dW50LCBSZWdpc3RlcklEIHNoaWZ0QW1vdW50LCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAg
ICAgICB1cnNoaWZ0MzIoYW1vdW50LmFzVHJ1c3RlZEltbTMyKCksIHNoaWZ0QW1vdW50LCBkZXN0
KTsKLSAgICB9Ci0KICAgICB2b2lkIG11bDMyKFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQg
c3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoaGFzT25lQml0U2V0KGlt
bS5tX3ZhbHVlKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlckFSTTY0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaAppbmRleCBjOTM2ODJiMTE0Y2EuLjdmMjFiMzhlMTcwYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
ckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmgKQEAgLTEzMjEsMTIgKzEzMjEsNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmFzcjwzMj4oZGVzdCwgc3JjLCBpbW0ubV92YWx1ZSAmIDB4MWYpOwogICAgIH0KIAot
ICAgIHZvaWQgcnNoaWZ0MzIoVHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzaGlmdEFtb3Vu
dCwgUmVnaXN0ZXJJRCBkZXN0KQotICAgIHsKLSAgICAgICAgbW92ZShpbW0sIGdldENhY2hlZERh
dGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmFz
cjwzMj4oZGVzdCwgZGF0YVRlbXBSZWdpc3Rlciwgc2hpZnRBbW91bnQpOwotICAgIH0KLQogICAg
IHZvaWQgcnNoaWZ0MzIoUmVnaXN0ZXJJRCBzaGlmdEFtb3VudCwgUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKICAgICAgICAgcnNoaWZ0MzIoZGVzdCwgc2hpZnRBbW91bnQsIGRlc3QpOwpAQCAtMTQ5
MSwxMiArMTQ4NSw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIubHNyPDMyPihkZXN0
LCBzcmMsIGltbS5tX3ZhbHVlICYgMHgxZik7CiAgICAgfQogCi0gICAgdm9pZCB1cnNoaWZ0MzIo
VHJ1c3RlZEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzaGlmdEFtb3VudCwgUmVnaXN0ZXJJRCBkZXN0
KQotICAgIHsKLSAgICAgICAgbW92ZShpbW0sIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFu
ZEludmFsaWRhdGUoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmxzcjwzMj4oZGVzdCwgZGF0YVRl
bXBSZWdpc3Rlciwgc2hpZnRBbW91bnQpOwotICAgIH0KLQogICAgIHZvaWQgdXJzaGlmdDMyKFJl
Z2lzdGVySUQgc2hpZnRBbW91bnQsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIHVy
c2hpZnQzMihkZXN0LCBzaGlmdEFtb3VudCwgZGVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDM3MGI2ZjYw
OTQ5My4uNGYzNzdlZjUyMDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtNjA2LDE0ICs2MDYsNiBAQCBwdWJs
aWM6CiAgICAgICAgIHJzaGlmdDMyKGRlc3QsIGltbSwgZGVzdCk7CiAgICAgfQogCi0gICAgdm9p
ZCByc2hpZnQzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNoaWZ0QW1vdW50LCBSZWdp
c3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICAvLyBDbGFtcCB0aGUgc2hpZnQgdG8gdGhlIHJh
bmdlIDAuLjMxCi0gICAgICAgIG1fYXNzZW1ibGVyLkFSTV9hbmQoZGVzdCwgc2hpZnRBbW91bnQs
IEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2RlZEltbSgweDFmKSk7Ci0gICAgICAgIG1vdmUo
aW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwotICAgICAg
ICBtX2Fzc2VtYmxlci5hc3IoZGVzdCwgZGF0YVRlbXBSZWdpc3RlciwgZGVzdCk7Ci0gICAgfQot
CiAgICAgdm9pZCB1cnNoaWZ0MzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgc2hpZnRBbW91
bnQsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIFJlZ2lzdGVySUQgc2NyYXRjaCA9
IGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKTsKQEAgLTY0MywxNCAr
NjM1LDYgQEAgcHVibGljOgogICAgICAgICB1cnNoaWZ0MzIoZGVzdCwgaW1tLCBkZXN0KTsKICAg
ICB9CiAKLSAgICB2b2lkIHVyc2hpZnQzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNo
aWZ0QW1vdW50LCBSZWdpc3RlcklEIGRlc3QpCi0gICAgewotICAgICAgICAvLyBDbGFtcCB0aGUg
c2hpZnQgdG8gdGhlIHJhbmdlIDAuLjMxCi0gICAgICAgIG1fYXNzZW1ibGVyLkFSTV9hbmQoZGVz
dCwgc2hpZnRBbW91bnQsIEFSTVRodW1iSW1tZWRpYXRlOjptYWtlRW5jb2RlZEltbSgweDFmKSk7
Ci0gICAgICAgIG1vdmUoaW1tLCBnZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlk
YXRlKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5sc3IoZGVzdCwgZGF0YVRlbXBSZWdpc3Rlciwg
ZGVzdCk7Ci0gICAgfQotCiAgICAgdm9pZCBhZGRVbnNpZ25lZFJpZ2h0U2hpZnQzMihSZWdpc3Rl
cklEIHNyYzEsIFJlZ2lzdGVySUQgc3JjMiwgVHJ1c3RlZEltbTMyIGFtb3VudCwgUmVnaXN0ZXJJ
RCBkZXN0KQogICAgIHsKICAgICAgICAgLy8gZGVzdCA9IHNyYzEgKyAoc3JjMiA+PiBhbW91bnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyUklTQ1Y2NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlclJJU0NWNjQuaAppbmRleCA1Y2E0N2FjMjcyYzYuLjc1ZmJiNGQ4YmQ4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclJJU0NWNjQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUklT
Q1Y2NC5oCkBAIC03MjgsMTQgKzcyOCw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIu
bWFza1JlZ2lzdGVyPDMyPihkZXN0KTsKICAgICB9CiAKLSAgICB2b2lkIHJzaGlmdDMyKFRydXN0
ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc2hpZnRBbW91bnQsIFJlZ2lzdGVySUQgZGVzdCkKLSAg
ICB7Ci0gICAgICAgIGF1dG8gdGVtcCA9IHRlbXBzPERhdGE+KCk7Ci0gICAgICAgIG1vdmUoaW1t
LCB0ZW1wLmRhdGEoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLnNyYXdJbnNuKGRlc3QsIHRlbXAu
ZGF0YSgpLCBzaGlmdEFtb3VudCk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm1hc2tSZWdpc3Rlcjwz
Mj4oZGVzdCk7Ci0gICAgfQotCiAgICAgdm9pZCByc2hpZnQ2NChSZWdpc3RlcklEIHNoaWZ0QW1v
dW50LCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICByc2hpZnQ2NChkZXN0LCBzaGlm
dEFtb3VudCwgZGVzdCk7CkBAIC03ODAsMTQgKzc3Miw2IEBAIHB1YmxpYzoKICAgICAgICAgbV9h
c3NlbWJsZXIubWFza1JlZ2lzdGVyPDMyPihkZXN0KTsKICAgICB9CiAKLSAgICB2b2lkIHVyc2hp
ZnQzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNoaWZ0QW1vdW50LCBSZWdpc3RlcklE
IGRlc3QpCi0gICAgewotICAgICAgICBhdXRvIHRlbXAgPSB0ZW1wczxEYXRhPigpOwotICAgICAg
ICBtb3ZlKGltbSwgdGVtcC5kYXRhKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5zcmx3SW5zbihk
ZXN0LCB0ZW1wLmRhdGEoKSwgc2hpZnRBbW91bnQpOwotICAgICAgICBtX2Fzc2VtYmxlci5tYXNr
UmVnaXN0ZXI8MzI+KGRlc3QpOwotICAgIH0KLQogICAgIHZvaWQgYWRkVW5zaWduZWRSaWdodFNo
aWZ0MzIoUmVnaXN0ZXJJRCBzcmMxLCBSZWdpc3RlcklEIHNyYzIsIFRydXN0ZWRJbW0zMiBhbW91
bnQsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIC8vIGRlc3QgPSBzcmMxICsgKHNy
YzIgPj4gYW1vdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4IDRkMjY1MzJlNzhiOS4uNjU5MDQ4YjljMWRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCkBAIC04MDEsMTggKzgwMSw2IEBAIHB1YmxpYzoKICAgICAgICAgcnNo
aWZ0MzIoaW1tLCBkZXN0KTsKICAgICB9CiAKLSAgICB2b2lkIHJzaGlmdDMyKFRydXN0ZWRJbW0z
MiBpbW0sIFJlZ2lzdGVySUQgc2hpZnRBbW91bnQsIFJlZ2lzdGVySUQgZGVzdCkKLSAgICB7Ci0g
ICAgICAgIGlmIChzaGlmdEFtb3VudCA9PSBkZXN0KSB7Ci0gICAgICAgICAgICBtb3ZlKGltbSwg
c2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICAgICAgcnNoaWZ0MzIoc2hpZnRBbW91bnQsIHNj
cmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgICAgIG1vdmUoc2NyYXRjaFJlZ2lzdGVyKCksIGRl
c3QpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbW92ZShpbW0sIGRlc3QpOwotICAg
ICAgICAgICAgcnNoaWZ0MzIoc2hpZnRBbW91bnQsIGRlc3QpOwotICAgICAgICB9Ci0gICAgfQot
CiAgICAgdm9pZCB1cnNoaWZ0MzIoUmVnaXN0ZXJJRCBzaGlmdF9hbW91bnQsIFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7CiAgICAgICAgIGlmIChzaGlmdF9hbW91bnQgPT0gWDg2UmVnaXN0ZXJzOjpl
Y3gpCkBAIC04NDgsMTggKzgzNiw2IEBAIHB1YmxpYzoKICAgICAgICAgdXJzaGlmdDMyKGltbSwg
ZGVzdCk7CiAgICAgfQogCi0gICAgdm9pZCB1cnNoaWZ0MzIoVHJ1c3RlZEltbTMyIGltbSwgUmVn
aXN0ZXJJRCBzaGlmdEFtb3VudCwgUmVnaXN0ZXJJRCBkZXN0KQotICAgIHsKLSAgICAgICAgaWYg
KHNoaWZ0QW1vdW50ID09IGRlc3QpIHsKLSAgICAgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoUmVn
aXN0ZXIoKSk7Ci0gICAgICAgICAgICB1cnNoaWZ0MzIoc2hpZnRBbW91bnQsIHNjcmF0Y2hSZWdp
c3RlcigpKTsKLSAgICAgICAgICAgIG1vdmUoc2NyYXRjaFJlZ2lzdGVyKCksIGRlc3QpOwotICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgbW92ZShpbW0sIGRlc3QpOwotICAgICAgICAgICAg
dXJzaGlmdDMyKHNoaWZ0QW1vdW50LCBkZXN0KTsKLSAgICAgICAgfQotICAgIH0KLQogICAgIHZv
aWQgcm90YXRlUmlnaHQzMihUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
ewogICAgICAgICBtX2Fzc2VtYmxlci5yb3JsX2k4cihpbW0ubV92YWx1ZSwgZGVzdCk7CkBAIC05
MzgsMTAgKzkxNCw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGFkZDMyKGxlZnQsIGRlc3QpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGlmIChsZWZ0ID09IHJpZ2h0
KSB7Ci0gICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigwKSwgZGVzdCk7Ci0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KICAgICAgICAgbW92ZShsZWZ0LCBkZXN0KTsKICAgICAgICAg
c3ViMzIocmlnaHQsIGRlc3QpOwogICAgIH0KQEAgLTU1NjcsMTkgKzU1MzksMTYgQEAgcHVibGlj
OgogICAgICAgICBtX2Fzc2VtYmxlci5zdWJxX3JyKHNyYywgZGVzdCk7CiAgICAgfQogICAgIAot
ICAgIHZvaWQgc3ViNjQoUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0LCBSZWdpc3Rl
cklEIGRlc3QpCisgICAgdm9pZCBzdWI2NChSZWdpc3RlcklEIGEsIFJlZ2lzdGVySUQgYiwgUmVn
aXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgaWYgKGRlc3QgPT0gcmlnaHQpIHsKLSAgICAg
ICAgICAgIG5lZzY0KGRlc3QpOwotICAgICAgICAgICAgYWRkNjQobGVmdCwgZGVzdCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGxlZnQgPT0gcmlnaHQpIHsK
KyAgICAgICAgaWYgKGIgIT0gZGVzdCkgeworICAgICAgICAgICAgbW92ZShhLCBkZXN0KTsKKyAg
ICAgICAgICAgIHN1YjY0KGIsIGRlc3QpOworICAgICAgICB9IGVsc2UgaWYgKGEgIT0gYikgewor
ICAgICAgICAgICAgbmVnNjQoYik7CisgICAgICAgICAgICBhZGQ2NChhLCBiKTsKKyAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigwKSwgZGVzdCk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgbW92ZShsZWZ0LCBkZXN0KTsKLSAgICAg
ICAgc3ViNjQocmlnaHQsIGRlc3QpOwogICAgIH0KIAogICAgIHZvaWQgc3ViNjQoVHJ1c3RlZElt
bTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NS
RXhpdC5jcHAKaW5kZXggMTRiZmEzYmY5OTIyLi4xYzc3Y2Q3MTlkZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0LmNwcApAQCAtMzk3LDcgKzM5Nyw4IEBAIHZvaWQgT1NS
RXhpdDo6Y29tcGlsZUV4aXQoQ0NhbGxIZWxwZXJzJiBqaXQsIFZNJiB2bSwgY29uc3QgT1NSRXhp
dCYgZXhpdCwgY29uc3QKICAgICAgICAgICAgICAgICBqaXQubG9hZDgoQXNzZW1ibHlIZWxwZXJz
OjpBZGRyZXNzKHNjcmF0Y2gxLCBTdHJ1Y3R1cmU6OmluZGV4aW5nTW9kZUluY2x1ZGluZ0hpc3Rv
cnlPZmZzZXQoKSksIHNjcmF0Y2gxKTsKICNlbmRpZgogICAgICAgICAgICAgICAgIGppdC5hbmQz
MihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihJbmRleGluZ01vZGVNYXNrKSwgc2NyYXRj
aDEpOwotICAgICAgICAgICAgICAgIGppdC5sc2hpZnQzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW0zMigxKSwgc2NyYXRjaDEsIHNjcmF0Y2gyKTsKKyAgICAgICAgICAgICAgICBqaXQubW92
ZShBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgc2NyYXRjaDIpOworICAgICAgICAg
ICAgICAgIGppdC5sc2hpZnQzMihzY3JhdGNoMSwgc2NyYXRjaDIpOwogICAgICAgICAgICAgICAg
IHN0b3JlQXJyYXlNb2Rlcy5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgIGppdC5vcjMyKHNj
cmF0Y2gyLCBBc3NlbWJseUhlbHBlcnM6OkFic29sdXRlQWRkcmVzcyhhcnJheVByb2ZpbGUtPmFk
ZHJlc3NPZkFycmF5TW9kZXMoKSkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGNjMjkwNmJhNzg4My4uN2FjNTk0MDlmMWYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApA
QCAtNTE0MCwxOCArNTE0MCwxNSBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhT
dWIoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGludDMyX3QgaW1tMiA9IG5vZGUtPmNoaWxkMigp
LT5hc0ludDMyKCk7CiAgICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwogCi0g
ICAgICAgICAgICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOwotICAgICAgICAgICAgR1BSUmVn
IHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKLQotICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVj
a092ZXJmbG93KG5vZGUtPmFyaXRoTW9kZSgpKSkKLSAgICAgICAgICAgICAgICBzdWIzMihvcDFH
UFIsIEltbTMyKGltbTIpLCByZXN1bHRHUFIpOwotICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICBpZiAoIXNob3VsZENoZWNrT3ZlcmZsb3cobm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAg
ICAgICAgICAgICAgbW92ZShvcDEuZ3ByKCksIHJlc3VsdC5ncHIoKSk7CisgICAgICAgICAgICAg
ICAgc3ViMzIoSW1tMzIoaW1tMiksIHJlc3VsdC5ncHIoKSk7CisgICAgICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwotICAgICAgICAg
ICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gc2NyYXRjaC5ncHIoKTsKLSAgICAgICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKEV4aXRLaW5kOjpPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgbnVs
bHB0ciwgYnJhbmNoU3ViMzIoT3ZlcmZsb3csIG9wMUdQUiwgSW1tMzIoaW1tMiksIHJlc3VsdEdQ
Uiwgc2NyYXRjaEdQUikpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soRXhpdEtp
bmQ6Ok92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBicmFuY2hTdWIzMihPdmVyZmxv
dywgb3AxLmdwcigpLCBJbW0zMihpbW0yKSwgcmVzdWx0LmdwcigpLCBzY3JhdGNoLmdwcigpKSk7
CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHN0cmljdEludDMyUmVzdWx0KHJlc3VsdEdQ
Uiwgbm9kZSk7CisgICAgICAgICAgICBzdHJpY3RJbnQzMlJlc3VsdChyZXN1bHQuZ3ByKCksIG5v
ZGUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTUx
NTksMTUgKzUxNTYsMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoU3ViKE5v
ZGUqIG5vZGUpCiAgICAgICAgICAgICBpbnQzMl90IGltbTEgPSBub2RlLT5jaGlsZDEoKS0+YXNJ
bnQzMigpOwogICAgICAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wMih0aGlzLCBub2Rl
LT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOwotCi0g
ICAgICAgICAgICBHUFJSZWcgb3AyR1BSID0gb3AyLmdwcigpOwotICAgICAgICAgICAgR1BSUmVn
IHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
IG1vdmUoSW1tMzIoaW1tMSksIHJlc3VsdEdQUik7CisgICAgICAgICAgICBtb3ZlKEltbTMyKGlt
bTEpLCByZXN1bHQuZ3ByKCkpOwogICAgICAgICAgICAgaWYgKCFzaG91bGRDaGVja092ZXJmbG93
KG5vZGUtPmFyaXRoTW9kZSgpKSkKLSAgICAgICAgICAgICAgICBzdWIzMihvcDJHUFIsIHJlc3Vs
dEdQUik7CisgICAgICAgICAgICAgICAgc3ViMzIob3AyLmdwcigpLCByZXN1bHQuZ3ByKCkpOwog
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soRXhpdEtp
bmQ6Ok92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBicmFuY2hTdWIzMihPdmVyZmxv
dywgb3AyR1BSLCByZXN1bHRHUFIpKTsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNr
KEV4aXRLaW5kOjpPdmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgYnJhbmNoU3ViMzIo
T3ZlcmZsb3csIG9wMi5ncHIoKSwgcmVzdWx0LmdwcigpKSk7CiAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICBzdHJpY3RJbnQzMlJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOwogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNTE3NywxNiArNTE3MSwxMyBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlQXJpdGhTdWIoTm9kZSogbm9kZSkKICAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVy
YW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1
bHQodGhpcyk7CiAKLSAgICAgICAgR1BSUmVnIG9wMUdQUiA9IG9wMS5ncHIoKTsKLSAgICAgICAg
R1BSUmVnIG9wMkdQUiA9IG9wMi5ncHIoKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJl
c3VsdC5ncHIoKTsKLQotICAgICAgICBpZiAoIXNob3VsZENoZWNrT3ZlcmZsb3cobm9kZS0+YXJp
dGhNb2RlKCkpKQotICAgICAgICAgICAgc3ViMzIob3AxR1BSLCBvcDJHUFIsIHJlc3VsdEdQUik7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soRXhpdEtpbmQ6Ok92
ZXJmbG93LCBKU1ZhbHVlUmVncygpLCBudWxscHRyLCBicmFuY2hTdWIzMihPdmVyZmxvdywgb3Ax
R1BSLCBvcDJHUFIsIHJlc3VsdEdQUikpOworICAgICAgICBpZiAoIXNob3VsZENoZWNrT3ZlcmZs
b3cobm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICBtb3ZlKG9wMS5ncHIoKSwgcmVz
dWx0LmdwcigpKTsKKyAgICAgICAgICAgIHN1YjMyKG9wMi5ncHIoKSwgcmVzdWx0LmdwcigpKTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEV4aXRLaW5kOjpP
dmVyZmxvdywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwgYnJhbmNoU3ViMzIoT3ZlcmZsb3csIG9w
MS5ncHIoKSwgb3AyLmdwcigpLCByZXN1bHQuZ3ByKCkpKTsKIAotICAgICAgICBzdHJpY3RJbnQz
MlJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOworICAgICAgICBzdHJpY3RJbnQzMlJlc3VsdChyZXN1
bHQuZ3ByKCksIG5vZGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKQEAgLTUy
MDIsMzEgKzUxOTMsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoU3ViKE5v
ZGUqIG5vZGUpCiAgICAgICAgICAgICBTcGVjdWxhdGVXaGljaGV2ZXJJbnQ1Mk9wZXJhbmQgb3Ax
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIFNwZWN1bGF0ZVdoaWNoZXZlcklu
dDUyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCksIG9wMSk7CiAgICAgICAgICAgICBH
UFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBvcDEpOwotCi0gICAgICAgICAgICBHUFJS
ZWcgb3AxR1BSID0gb3AxLmdwcigpOwotICAgICAgICAgICAgR1BSUmVnIG9wMkdQUiA9IG9wMi5n
cHIoKTsKLSAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7Ci0KLSAg
ICAgICAgICAgIHN1YjY0KG9wMUdQUiwgb3AyR1BSLCByZXN1bHRHUFIpOwotICAgICAgICAgICAg
aW50NTJSZXN1bHQocmVzdWx0R1BSLCBub2RlLCBvcDEuZm9ybWF0KCkpOworICAgICAgICAgICAg
bW92ZShvcDEuZ3ByKCksIHJlc3VsdC5ncHIoKSk7CisgICAgICAgICAgICBzdWI2NChvcDIuZ3By
KCksIHJlc3VsdC5ncHIoKSk7CisgICAgICAgICAgICBpbnQ1MlJlc3VsdChyZXN1bHQuZ3ByKCks
IG5vZGUsIG9wMS5mb3JtYXQoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIFNwZWN1bGF0ZUludDUyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwogICAgICAgICBTcGVjdWxhdGVJbnQ1Mk9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLQotICAgICAgICBH
UFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOwotICAgICAgICBHUFJSZWcgb3AyR1BSID0gb3AyLmdw
cigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwotCi0jaWYgQ1BV
KEFSTTY0KQotICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKEludDUyT3ZlcmZsb3csIEpTVmFsdWVS
ZWdzKCksIG51bGxwdHIsIGJyYW5jaFN1YjY0KE92ZXJmbG93LCBvcDFHUFIsIG9wMkdQUiwgcmVz
dWx0R1BSKSk7Ci0jZWxzZQotICAgICAgICBtb3ZlKG9wMUdQUiwgcmVzdWx0R1BSKTsKLSAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhJbnQ1Mk92ZXJmbG93LCBKU1ZhbHVlUmVncygpLCBudWxscHRy
LCBicmFuY2hTdWI2NChPdmVyZmxvdywgb3AyR1BSLCByZXN1bHRHUFIpKTsKLSNlbmRpZgotICAg
ICAgICBpbnQ1MlJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOworICAgICAgICBtb3ZlKG9wMS5ncHIo
KSwgcmVzdWx0LmdwcigpKTsKKyAgICAgICAgc3BlY3VsYXRpb25DaGVjaygKKyAgICAgICAgICAg
IEludDUyT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIG51bGxwdHIsCisgICAgICAgICAgICBicmFu
Y2hTdWI2NChPdmVyZmxvdywgb3AyLmdwcigpLCByZXN1bHQuZ3ByKCkpKTsKKyAgICAgICAgaW50
NTJSZXN1bHQocmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNl
bmRpZiAvLyBVU0UoSlNWQUxVRTY0KQpAQCAtNTIzNiwxMiArNTIxNiwxMSBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlQXJpdGhTdWIoTm9kZSogbm9kZSkKICAgICAgICAgU3BlY3VsYXRl
RG91YmxlT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICBGUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMsIG9wMSk7CiAKLSAgICAgICAgRlBSUmVnIG9wMUZQUiA9IG9wMS5m
cHIoKTsKLSAgICAgICAgRlBSUmVnIG9wMkZQUiA9IG9wMi5mcHIoKTsKLSAgICAgICAgRlBSUmVn
IHJlc3VsdEZQUiA9IHJlc3VsdC5mcHIoKTsKKyAgICAgICAgRlBSUmVnIHJlZzEgPSBvcDEuZnBy
KCk7CisgICAgICAgIEZQUlJlZyByZWcyID0gb3AyLmZwcigpOworICAgICAgICBzdWJEb3VibGUo
cmVnMSwgcmVnMiwgcmVzdWx0LmZwcigpKTsKIAotICAgICAgICBzdWJEb3VibGUob3AxRlBSLCBv
cDJGUFIsIHJlc3VsdEZQUik7Ci0gICAgICAgIGRvdWJsZVJlc3VsdChyZXN1bHRGUFIsIG5vZGUp
OworICAgICAgICBkb3VibGVSZXN1bHQocmVzdWx0LmZwcigpLCBub2RlKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQ2NC5jcHAKaW5kZXggOTY0Nzg0MzJlNzYzLi41NGFhM2U0MzgzOTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAt
MjYyLDcgKzI2Miw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlTm9uUGVl
cGhvbGVDb21wYXJlTnVsbE9yVW5kZWZpbmVkKEVkZ2Ugb3BlcmFuCiAgICAgfQogIAogICAgIGlm
ICghaXNLbm93bk5vdE90aGVyKG9wZXJhbmQubm9kZSgpKSkgewotICAgICAgICBhbmQ2NChUcnVz
dGVkSW1tMzIofkpTVmFsdWU6OlVuZGVmaW5lZFRhZyksIGFyZ0dQUiwgcmVzdWx0R1BSKTsKKyAg
ICAgICAgbW92ZShhcmdHUFIsIHJlc3VsdEdQUik7CisgICAgICAgIGFuZDY0KFRydXN0ZWRJbW0z
Mih+SlNWYWx1ZTo6VW5kZWZpbmVkVGFnKSwgcmVzdWx0R1BSKTsKICAgICAgICAgY29tcGFyZTY0
KEVxdWFsLCByZXN1bHRHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpWYWx1ZU51bGwpLCByZXN1
bHRHUFIpOwogICAgIH0KIApAQCAtMzIzLDcgKzMyNCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
Om5vblNwZWN1bGF0aXZlUGVlcGhvbGVCcmFuY2hOdWxsT3JVbmRlZmluZWQoRWRnZSBvcGVyYW5k
LCBOCiAgICAgICAgICAgICBjb25kaXRpb24gPSBOb3RFcXVhbDsKICAgICAgICAgICAgIHN0ZDo6
c3dhcCh0YWtlbiwgbm90VGFrZW4pOwogICAgICAgICB9Ci0gICAgICAgIGFuZDY0KFRydXN0ZWRJ
bW0zMih+SlNWYWx1ZTo6VW5kZWZpbmVkVGFnKSwgYXJnR1BSLCByZXN1bHRHUFIpOworICAgICAg
ICBtb3ZlKGFyZ0dQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTMyKH5K
U1ZhbHVlOjpVbmRlZmluZWRUYWcpLCByZXN1bHRHUFIpOwogICAgICAgICBicmFuY2g2NChjb25k
aXRpb24sIHJlc3VsdEdQUiwgVHJ1c3RlZEltbTY0KEpTVmFsdWU6OlZhbHVlTnVsbCksIHRha2Vu
KTsKICAgICAgICAganVtcChub3RUYWtlbik7CiAgICAgfQpAQCAtMTc5OCw3ICsxODAwLDggQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZU9iamVjdFRvT2JqZWN0T3JPdGhlckVxdWFsaXR5
KEVkZ2UgbGVmdENoaWxkLCBFZGdlIHIKICAgICAvLyBXZSBrbm93IHRoYXQgd2l0aGluIHRoaXMg
YnJhbmNoLCByaWdodENoaWxkIG11c3Qgbm90IGJlIGEgY2VsbC4gQ2hlY2sgaWYgdGhhdCBpcyBl
bm91Z2ggdG8KICAgICAvLyBwcm92ZSB0aGF0IGl0IGlzIGVpdGhlciBudWxsIG9yIHVuZGVmaW5l
ZC4KICAgICBpZiAobmVlZHNUeXBlQ2hlY2socmlnaHRDaGlsZCwgU3BlY0NlbGxDaGVjayB8IFNw
ZWNPdGhlcikpIHsKLSAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTMyKH5KU1ZhbHVlOjpVbmRlZmlu
ZWRUYWcpLCBvcDJHUFIsIHJlc3VsdEdQUik7CisgICAgICAgIG1vdmUob3AyR1BSLCByZXN1bHRH
UFIpOworICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIofkpTVmFsdWU6OlVuZGVmaW5lZFRhZyks
IHJlc3VsdEdQUik7CiAgICAgICAgIAogICAgICAgICB0eXBlQ2hlY2soCiAgICAgICAgICAgICBK
U1ZhbHVlUmVncyhvcDJHUFIpLCByaWdodENoaWxkLCBTcGVjQ2VsbENoZWNrIHwgU3BlY090aGVy
LApAQCAtMTg3Myw3ICsxODc2LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVBlZXBI
b2xlT2JqZWN0VG9PYmplY3RPck90aGVyRXF1YWxpdHkoRWRnZSBsZWZ0Q2hpbGQKICAgICAgICAg
anVtcChub3RUYWtlbiwgRm9yY2VKdW1wKTsKICAgICAgICAgCiAgICAgICAgIHJpZ2h0Tm90Q2Vs
bC5saW5rKHRoaXMpOwotICAgICAgICBhbmQ2NChUcnVzdGVkSW1tMzIofkpTVmFsdWU6OlVuZGVm
aW5lZFRhZyksIG9wMkdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgbW92ZShvcDJHUFIsIHJlc3Vs
dEdQUik7CisgICAgICAgIGFuZDY0KFRydXN0ZWRJbW0zMih+SlNWYWx1ZTo6VW5kZWZpbmVkVGFn
KSwgcmVzdWx0R1BSKTsKICAgICAgICAgCiAgICAgICAgIHR5cGVDaGVjaygKICAgICAgICAgICAg
IEpTVmFsdWVSZWdzKG9wMkdQUiksIHJpZ2h0Q2hpbGQsIFNwZWNDZWxsQ2hlY2sgfCBTcGVjT3Ro
ZXIsIGJyYW5jaDY0KApAQCAtMjA1Niw3ICsyMDYwLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZVRvQm9vbGVhbk9iamVjdE9yT3RoZXIoRWRnZSBub2RlVXNlLCBib29sIGludmVydCkK
ICAgICBub3RDZWxsLmxpbmsodGhpcyk7CiAKICAgICBpZiAobmVlZHNUeXBlQ2hlY2sobm9kZVVz
ZSwgU3BlY0NlbGxDaGVjayB8IFNwZWNPdGhlcikpIHsKLSAgICAgICAgYW5kNjQoVHJ1c3RlZElt
bTMyKH5KU1ZhbHVlOjpVbmRlZmluZWRUYWcpLCB2YWx1ZUdQUiwgcmVzdWx0R1BSKTsKKyAgICAg
ICAgbW92ZSh2YWx1ZUdQUiwgcmVzdWx0R1BSKTsKKyAgICAgICAgYW5kNjQoVHJ1c3RlZEltbTMy
KH5KU1ZhbHVlOjpVbmRlZmluZWRUYWcpLCByZXN1bHRHUFIpOwogICAgICAgICB0eXBlQ2hlY2so
CiAgICAgICAgICAgICBKU1ZhbHVlUmVncyh2YWx1ZUdQUiksIG5vZGVVc2UsIFNwZWNDZWxsQ2hl
Y2sgfCBTcGVjT3RoZXIsIGJyYW5jaDY0KAogICAgICAgICAgICAgICAgIE5vdEVxdWFsLApAQCAt
MjExNiwxOCArMjEyMSwxNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9Cb29sZWFu
KE5vZGUqIG5vZGUsIGJvb2wgaW52ZXJ0KQogICAgICAgICAKICAgICAgICAgSlNWYWx1ZU9wZXJh
bmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQxKCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7
CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7IC8vIEZJWE1FOiBXZSBjb3VsZCBy
ZXVzZSwgYnV0IG9uIHNwZWN1bGF0aW9uIGZhaWwgd291bGQgbmVlZCByZWNvdmVyeSB0byByZXN0
b3JlIHRhZyAoYWtpbiB0byBhZGQpLgotCi0gICAgICAgIEdQUlJlZyB2YWx1ZUdQUiA9IHZhbHVl
LmdwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwotCi0gICAg
ICAgIHhvcjY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpWYWx1ZUZhbHNlKSwgdmFsdWVHUFIsIHJl
c3VsdEdQUik7CisgICAgICAgIAorICAgICAgICBtb3ZlKHZhbHVlLmdwcigpLCByZXN1bHQuZ3By
KCkpOworICAgICAgICB4b3I2NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6VmFsdWVGYWxzZSksIHJl
c3VsdC5ncHIoKSk7CiAgICAgICAgIHR5cGVDaGVjaygKLSAgICAgICAgICAgIEpTVmFsdWVSZWdz
KHZhbHVlR1BSKSwgbm9kZS0+Y2hpbGQxKCksIFNwZWNCb29sZWFuLCBicmFuY2hUZXN0NjQoCi0g
ICAgICAgICAgICAgICAgTm9uWmVybywgcmVzdWx0R1BSLCBUcnVzdGVkSW1tMzIoc3RhdGljX2Nh
c3Q8aW50MzJfdD4ofjEpKSkpOwotICAgICAgICB4b3I2NChpbnZlcnQgPyBUcnVzdGVkSW1tMzIo
SlNWYWx1ZTo6VmFsdWVUcnVlKSA6IFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpWYWx1ZUZhbHNlKSwg
cmVzdWx0R1BSKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVlLmdwcigpKSwgbm9kZS0+
Y2hpbGQxKCksIFNwZWNCb29sZWFuLCBicmFuY2hUZXN0NjQoCisgICAgICAgICAgICAgICAgTm9u
WmVybywgcmVzdWx0LmdwcigpLCBUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4ofjEp
KSkpOworICAgICAgICB4b3I2NChpbnZlcnQgPyBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6VmFsdWVU
cnVlKSA6IFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpWYWx1ZUZhbHNlKSwgcmVzdWx0LmdwcigpKTsK
ICAgICAgICAgCiAgICAgICAgIC8vIElmIHdlIGFkZCBhIERhdGFGb3JtYXRCb29sLCB3ZSBzaG91
bGQgdXNlIGl0IGhlcmUuCi0gICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBub2RlLCBE
YXRhRm9ybWF0SlNCb29sZWFuKTsKKyAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCks
IG5vZGUsIERhdGFGb3JtYXRKU0Jvb2xlYW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
ICAgICAKQEAgLTIyMTEsNyArMjIxNCw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRPYmpl
Y3RPck90aGVyQnJhbmNoKEVkZ2Ugbm9kZVVzZSwgQmFzaWNCbG9jayogdGFrZW4sIEJhCiAgICAg
bm90Q2VsbC5saW5rKHRoaXMpOwogICAgIAogICAgIGlmIChuZWVkc1R5cGVDaGVjayhub2RlVXNl
LCBTcGVjQ2VsbENoZWNrIHwgU3BlY090aGVyKSkgewotICAgICAgICBhbmQ2NChUcnVzdGVkSW1t
MzIofkpTVmFsdWU6OlVuZGVmaW5lZFRhZyksIHZhbHVlR1BSLCBzY3JhdGNoR1BSKTsKKyAgICAg
ICAgbW92ZSh2YWx1ZUdQUiwgc2NyYXRjaEdQUik7CisgICAgICAgIGFuZDY0KFRydXN0ZWRJbW0z
Mih+SlNWYWx1ZTo6VW5kZWZpbmVkVGFnKSwgc2NyYXRjaEdQUik7CiAgICAgICAgIHR5cGVDaGVj
aygKICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgbm9kZVVzZSwgU3BlY0NlbGxD
aGVjayB8IFNwZWNPdGhlciwgYnJhbmNoNjQoCiAgICAgICAgICAgICAgICAgTm90RXF1YWwsIHNj
cmF0Y2hHUFIsIFRydXN0ZWRJbW02NChKU1ZhbHVlOjpWYWx1ZU51bGwpKSk7CkBAIC00MzM4LDQx
ICs0MzQyLDM5IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAg
ICAgICAgY2FzZSBCb29sZWFuVXNlOiB7CiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSwgTWFudWFsT3BlcmFuZFNwZWN1bGF0aW9uKTsKICAgICAg
ICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7IC8vIEZJWE1FOiBXZSBjb3VsZCByZXVz
ZSwgYnV0IG9uIHNwZWN1bGF0aW9uIGZhaWwgd291bGQgbmVlZCByZWNvdmVyeSB0byByZXN0b3Jl
IHRhZyAoYWtpbiB0byBhZGQpLgotCi0gICAgICAgICAgICBHUFJSZWcgdmFsdWVHUFIgPSB2YWx1
ZS5ncHIoKTsKLSAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIHhvcjY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpWYWx1
ZUZhbHNlKSwgdmFsdWVHUFIsIHJlc3VsdEdQUik7CisgICAgICAgICAgICBtb3ZlKHZhbHVlLmdw
cigpLCByZXN1bHQuZ3ByKCkpOworICAgICAgICAgICAgeG9yNjQoVHJ1c3RlZEltbTMyKEpTVmFs
dWU6OlZhbHVlRmFsc2UpLCByZXN1bHQuZ3ByKCkpOwogICAgICAgICAgICAgREZHX1RZUEVfQ0hF
Q0soCi0gICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBub2RlLT5jaGlsZDEo
KSwgU3BlY0Jvb2xlYW4sIGJyYW5jaFRlc3Q2NCgKLSAgICAgICAgICAgICAgICAgICAgTm9uWmVy
bywgcmVzdWx0R1BSLCBUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJfdD4ofjEpKSkpOwor
ICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHZhbHVlLmdwcigpKSwgbm9kZS0+Y2hpbGQxKCks
IFNwZWNCb29sZWFuLCBicmFuY2hUZXN0NjQoCisgICAgICAgICAgICAgICAgICAgIE5vblplcm8s
IHJlc3VsdC5ncHIoKSwgVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KH4xKSkpKTsK
IAotICAgICAgICAgICAgc3RyaWN0SW50MzJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKKyAgICAg
ICAgICAgIHN0cmljdEludDMyUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgVW50eXBlZFVz
ZTogewogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hpbGQx
KCkpOwogICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKLQotICAgICAgICAg
ICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWUuZ3ByKCk7Ci0gICAgICAgICAgICBHUFJSZWcgcmVz
dWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIW1f
aW50ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2sobm9kZS0+Y2hpbGQxKCksIFNwZWNCb29sSW50MzIg
fCBTcGVjQm9vbGVhbikpIHsKLSAgICAgICAgICAgICAgICBhbmQzMihUcnVzdGVkSW1tMzIoMSks
IHZhbHVlR1BSLCByZXN1bHRHUFIpOwotICAgICAgICAgICAgICAgIHN0cmljdEludDMyUmVzdWx0
KHJlc3VsdEdQUiwgbm9kZSk7CisgICAgICAgICAgICAgICAgbW92ZSh2YWx1ZS5ncHIoKSwgcmVz
dWx0LmdwcigpKTsKKyAgICAgICAgICAgICAgICBhbmQzMihUcnVzdGVkSW1tMzIoMSksIHJlc3Vs
dC5ncHIoKSk7CisgICAgICAgICAgICAgICAgc3RyaWN0SW50MzJSZXN1bHQocmVzdWx0Lmdwcigp
LCBub2RlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIAotICAgICAgICAgICAgeG9yNjQoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OlZhbHVlRmFsc2Up
LCB2YWx1ZUdQUiwgcmVzdWx0R1BSKTsKLSAgICAgICAgICAgIEp1bXAgaXNCb29sZWFuID0gYnJh
bmNoVGVzdDY0KFplcm8sIHJlc3VsdEdQUiwgVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMy
X3Q+KH4xKSkpOwotICAgICAgICAgICAgbW92ZSh2YWx1ZUdQUiwgcmVzdWx0R1BSKTsKKyAgICAg
ICAgICAgIG1vdmUodmFsdWUuZ3ByKCksIHJlc3VsdC5ncHIoKSk7CisgICAgICAgICAgICB4b3I2
NChUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6VmFsdWVGYWxzZSksIHJlc3VsdC5ncHIoKSk7CisgICAg
ICAgICAgICBKdW1wIGlzQm9vbGVhbiA9IGJyYW5jaFRlc3Q2NCgKKyAgICAgICAgICAgICAgICBa
ZXJvLCByZXN1bHQuZ3ByKCksIFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90Pih+MSkp
KTsKKyAgICAgICAgICAgIG1vdmUodmFsdWUuZ3ByKCksIHJlc3VsdC5ncHIoKSk7CiAgICAgICAg
ICAgICBKdW1wIGRvbmUgPSBqdW1wKCk7CiAgICAgICAgICAgICBpc0Jvb2xlYW4ubGluayh0aGlz
KTsKLSAgICAgICAgICAgIG9yNjQoR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsIHJlc3VsdEdQ
Uik7CisgICAgICAgICAgICBvcjY0KEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyLCByZXN1bHQu
Z3ByKCkpOwogICAgICAgICAgICAgZG9uZS5saW5rKHRoaXMpOwogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CisgICAgICAgICAgICBqc1Zh
bHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICAgICAgCkBAIC01MTY1LDcgKzUxNjcsOCBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyB2YWx1ZUdQUiA9IHZhbHVl
LmdwcigpOwogICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogCi0gICAg
ICAgIGFuZDY0KFRydXN0ZWRJbW0zMih+SlNWYWx1ZTo6VW5kZWZpbmVkVGFnKSwgdmFsdWVHUFIs
IHJlc3VsdEdQUik7CisgICAgICAgIG1vdmUodmFsdWVHUFIsIHJlc3VsdEdQUik7CisgICAgICAg
IGFuZDY0KFRydXN0ZWRJbW0zMih+SlNWYWx1ZTo6VW5kZWZpbmVkVGFnKSwgcmVzdWx0R1BSKTsK
ICAgICAgICAgY29tcGFyZTY0KEVxdWFsLCByZXN1bHRHUFIsIFRydXN0ZWRJbW0zMihKU1ZhbHVl
OjpWYWx1ZU51bGwpLCByZXN1bHRHUFIpOwogCiAgICAgICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1
bHQocmVzdWx0R1BSLCBub2RlKTsKQEAgLTUxNzUsMTQgKzUxNzgsMTIgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgSXNCb29sZWFuOiB7CiAgICAg
ICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgdmFsdWUpOwotCi0gICAgICAgIEdQUlJl
ZyB2YWx1ZUdQUiA9IHZhbHVlLmdwcigpOwotICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVz
dWx0LmdwcigpOwogICAgICAgICAKLSAgICAgICAgeG9yNjQoVHJ1c3RlZEltbTMyKEpTVmFsdWU6
OlZhbHVlRmFsc2UpLCB2YWx1ZUdQUiwgcmVzdWx0R1BSKTsKLSAgICAgICAgdGVzdDY0KFplcm8s
IHJlc3VsdEdQUiwgVHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KH4xKSksIHJlc3Vs
dEdQUik7Ci0gICAgICAgIG9yMzIoVHJ1c3RlZEltbTMyKEpTVmFsdWU6OlZhbHVlRmFsc2UpLCBy
ZXN1bHRHUFIpOwotICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSwgRGF0YUZv
cm1hdEpTQm9vbGVhbik7CisgICAgICAgIG1vdmUodmFsdWUuZ3ByKCksIHJlc3VsdC5ncHIoKSk7
CisgICAgICAgIHhvcjY0KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpWYWx1ZUZhbHNlKSwgcmVzdWx0
LmdwcigpKTsKKyAgICAgICAgdGVzdDY0KFplcm8sIHJlc3VsdC5ncHIoKSwgVHJ1c3RlZEltbTMy
KHN0YXRpY19jYXN0PGludDMyX3Q+KH4xKSksIHJlc3VsdC5ncHIoKSk7CisgICAgICAgIG9yMzIo
VHJ1c3RlZEltbTMyKEpTVmFsdWU6OlZhbHVlRmFsc2UpLCByZXN1bHQuZ3ByKCkpOworICAgICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSwgRGF0YUZvcm1hdEpTQm9vbGVhbik7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAKaW5kZXggYWY3NGVmMzk5ZGY0Li43NTBk
YmI2OWZmNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhp
dENvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRD
b21waWxlci5jcHAKQEAgLTI3OCw3ICsyNzgsOCBAQCBzdGF0aWMgdm9pZCBjb21waWxlU3R1YihW
TSYgdm0sIHVuc2lnbmVkIGV4aXRJRCwgSklUQ29kZSogaml0Q29kZSwgT1NSRXhpdCYgZXhpdAog
ICAgICAgICAgICAgICAgIG5vdFR5cGVkQXJyYXkubGluaygmaml0KTsKICAgICAgICAgICAgICAg
ICBqaXQubG9hZDgoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEpTQ2Vs
bDo6aW5kZXhpbmdUeXBlQW5kTWlzY09mZnNldCgpKSwgR1BSSW5mbzo6cmVnVDEpOwogICAgICAg
ICAgICAgICAgIGppdC5hbmQzMihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKEluZGV4aW5n
TW9kZU1hc2spLCBHUFJJbmZvOjpyZWdUMSk7Ci0gICAgICAgICAgICAgICAgaml0LmxzaGlmdDMy
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMSksIEdQUkluZm86OnJlZ1QxLCBHUFJJbmZv
OjpyZWdUMik7CisgICAgICAgICAgICAgICAgaml0Lm1vdmUoTWFjcm9Bc3NlbWJsZXI6OlRydXN0
ZWRJbW0zMigxKSwgR1BSSW5mbzo6cmVnVDIpOworICAgICAgICAgICAgICAgIGppdC5sc2hpZnQz
MihHUFJJbmZvOjpyZWdUMSwgR1BSSW5mbzo6cmVnVDIpOwogICAgICAgICAgICAgICAgIHN0b3Jl
QXJyYXlNb2Rlcy5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgIGppdC5vcjMyKEdQUkluZm86
OnJlZ1QyLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDMsIEFycmF5UHJvZmls
ZTo6b2Zmc2V0T2ZBcnJheU1vZGVzKCkpKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCBmZmFmNjIyYmE3ZjQuLmQz
OGUyMWYwNGFiNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxw
ZXJzLmNwcApAQCAtODU1LDE1ICs4NTUsMTggQEAgdm9pZCBlbWl0UmFuZG9tVGh1bmtJbXBsKEFz
c2VtYmx5SGVscGVycyYgaml0LCBHUFJSZWcgc2NyYXRjaDAsIEdQUlJlZyBzY3JhdGNoMSwKICAg
ICBzdG9yZVRvTG93KHNjcmF0Y2gxKTsKIAogICAgIC8vIHggXj0geCA8PCAyMzsKLSAgICBqaXQu
bHNoaWZ0NjQoc2NyYXRjaDAsIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDIzKSwgc2Ny
YXRjaDIpOworICAgIGppdC5tb3ZlKHNjcmF0Y2gwLCBzY3JhdGNoMik7CisgICAgaml0LmxzaGlm
dDY0KEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKDIzKSwgc2NyYXRjaDIpOwogICAgIGpp
dC54b3I2NChzY3JhdGNoMiwgc2NyYXRjaDApOwogCiAgICAgLy8geCBePSB4ID4+IDE3OwotICAg
IGppdC5yc2hpZnQ2NChzY3JhdGNoMCwgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMTcp
LCBzY3JhdGNoMik7CisgICAgaml0Lm1vdmUoc2NyYXRjaDAsIHNjcmF0Y2gyKTsKKyAgICBqaXQu
cnNoaWZ0NjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMTcpLCBzY3JhdGNoMik7CiAg
ICAgaml0LnhvcjY0KHNjcmF0Y2gyLCBzY3JhdGNoMCk7CiAKICAgICAvLyB4IF49IHkgXiAoeSA+
PiAyNik7Ci0gICAgaml0LnJzaGlmdDY0KHNjcmF0Y2gxLCBBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW0zMigyNiksIHNjcmF0Y2gyKTsKKyAgICBqaXQubW92ZShzY3JhdGNoMSwgc2NyYXRjaDIp
OworICAgIGppdC5yc2hpZnQ2NChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMigyNiksIHNj
cmF0Y2gyKTsKICAgICBqaXQueG9yNjQoc2NyYXRjaDEsIHNjcmF0Y2gyKTsKICAgICBqaXQueG9y
NjQoc2NyYXRjaDIsIHNjcmF0Y2gwKTsKIApAQCAtODc0LDcgKzg3Nyw4IEBAIHZvaWQgZW1pdFJh
bmRvbVRodW5rSW1wbChBc3NlbWJseUhlbHBlcnMmIGppdCwgR1BSUmVnIHNjcmF0Y2gwLCBHUFJS
ZWcgc2NyYXRjaDEsCiAgICAgaml0LmFkZDY0KHNjcmF0Y2gxLCBzY3JhdGNoMCk7CiAKICAgICAv
LyBFeHRyYWN0IHJhbmRvbSA1M2JpdC4gWzAsIDUzXSBiaXQgaXMgc2FmZSBpbnRlZ2VyIG51bWJl
ciByYW5nZXMgaW4gZG91YmxlIHJlcHJlc2VudGF0aW9uLgotICAgIGppdC5hbmQ2NChBc3NlbWJs
eUhlbHBlcnM6OlRydXN0ZWRJbW02NCgoMVVMTCA8PCA1MykgLSAxKSwgc2NyYXRjaDApOworICAg
IGppdC5tb3ZlKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTY0KCgxVUxMIDw8IDUzKSAtIDEp
LCBzY3JhdGNoMSk7CisgICAgaml0LmFuZDY0KHNjcmF0Y2gxLCBzY3JhdGNoMCk7CiAgICAgLy8g
Tm93LCBzY3JhdGNoMCBpcyBhbHdheXMgaW4gcmFuZ2Ugb2YgaW50NjRfdC4gU2FmZSB0byBjb252
ZXJ0IGl0IHRvIGRvdWJsZSB3aXRoIGN2dHNpMnNkcS4KICAgICBqaXQuY29udmVydEludDY0VG9E
b3VibGUoc2NyYXRjaDAsIHJlc3VsdCk7CiAKQEAgLTEyMzYsMzEgKzEyNDAsMzkgQEAgdm9pZCBB
c3NlbWJseUhlbHBlcnM6OndhbmdzSW50NjRIYXNoKEdQUlJlZyBpbnB1dEFuZFJlc3VsdCwgR1BS
UmVnIHNjcmF0Y2gpCiB7CiAgICAgR1BSUmVnIGlucHV0ID0gaW5wdXRBbmRSZXN1bHQ7CiAgICAg
Ly8ga2V5ICs9IH4oa2V5IDw8IDMyKTsKLSAgICBsc2hpZnQ2NChpbnB1dCwgVHJ1c3RlZEltbTMy
KDMyKSwgc2NyYXRjaCk7CisgICAgbW92ZShpbnB1dCwgc2NyYXRjaCk7CisgICAgbHNoaWZ0NjQo
VHJ1c3RlZEltbTMyKDMyKSwgc2NyYXRjaCk7CiAgICAgbm90NjQoc2NyYXRjaCk7CiAgICAgYWRk
NjQoc2NyYXRjaCwgaW5wdXQpOwogICAgIC8vIGtleSBePSAoa2V5ID4+IDIyKTsKLSAgICB1cnNo
aWZ0NjQoaW5wdXQsIFRydXN0ZWRJbW0zMigyMiksIHNjcmF0Y2gpOworICAgIG1vdmUoaW5wdXQs
IHNjcmF0Y2gpOworICAgIHVyc2hpZnQ2NChUcnVzdGVkSW1tMzIoMjIpLCBzY3JhdGNoKTsKICAg
ICB4b3I2NChzY3JhdGNoLCBpbnB1dCk7CiAgICAgLy8ga2V5ICs9IH4oa2V5IDw8IDEzKTsKLSAg
ICBsc2hpZnQ2NChpbnB1dCwgVHJ1c3RlZEltbTMyKDEzKSwgc2NyYXRjaCk7CisgICAgbW92ZShp
bnB1dCwgc2NyYXRjaCk7CisgICAgbHNoaWZ0NjQoVHJ1c3RlZEltbTMyKDEzKSwgc2NyYXRjaCk7
CiAgICAgbm90NjQoc2NyYXRjaCk7CiAgICAgYWRkNjQoc2NyYXRjaCwgaW5wdXQpOwogICAgIC8v
IGtleSBePSAoa2V5ID4+IDgpOwotICAgIHVyc2hpZnQ2NChpbnB1dCwgVHJ1c3RlZEltbTMyKDgp
LCBzY3JhdGNoKTsKKyAgICBtb3ZlKGlucHV0LCBzY3JhdGNoKTsKKyAgICB1cnNoaWZ0NjQoVHJ1
c3RlZEltbTMyKDgpLCBzY3JhdGNoKTsKICAgICB4b3I2NChzY3JhdGNoLCBpbnB1dCk7CiAgICAg
Ly8ga2V5ICs9IChrZXkgPDwgMyk7Ci0gICAgbHNoaWZ0NjQoaW5wdXQsIFRydXN0ZWRJbW0zMigz
KSwgc2NyYXRjaCk7CisgICAgbW92ZShpbnB1dCwgc2NyYXRjaCk7CisgICAgbHNoaWZ0NjQoVHJ1
c3RlZEltbTMyKDMpLCBzY3JhdGNoKTsKICAgICBhZGQ2NChzY3JhdGNoLCBpbnB1dCk7CiAgICAg
Ly8ga2V5IF49IChrZXkgPj4gMTUpOwotICAgIHVyc2hpZnQ2NChpbnB1dCwgVHJ1c3RlZEltbTMy
KDE1KSwgc2NyYXRjaCk7CisgICAgbW92ZShpbnB1dCwgc2NyYXRjaCk7CisgICAgdXJzaGlmdDY0
KFRydXN0ZWRJbW0zMigxNSksIHNjcmF0Y2gpOwogICAgIHhvcjY0KHNjcmF0Y2gsIGlucHV0KTsK
ICAgICAvLyBrZXkgKz0gfihrZXkgPDwgMjcpOwotICAgIGxzaGlmdDY0KGlucHV0LCBUcnVzdGVk
SW1tMzIoMjcpLCBzY3JhdGNoKTsKKyAgICBtb3ZlKGlucHV0LCBzY3JhdGNoKTsKKyAgICBsc2hp
ZnQ2NChUcnVzdGVkSW1tMzIoMjcpLCBzY3JhdGNoKTsKICAgICBub3Q2NChzY3JhdGNoKTsKICAg
ICBhZGQ2NChzY3JhdGNoLCBpbnB1dCk7CiAgICAgLy8ga2V5IF49IChrZXkgPj4gMzEpOwotICAg
IHVyc2hpZnQ2NChpbnB1dCwgVHJ1c3RlZEltbTMyKDMxKSwgc2NyYXRjaCk7CisgICAgbW92ZShp
bnB1dCwgc2NyYXRjaCk7CisgICAgdXJzaGlmdDY0KFRydXN0ZWRJbW0zMigzMSksIHNjcmF0Y2gp
OwogICAgIHhvcjY0KHNjcmF0Y2gsIGlucHV0KTsKIAogICAgIC8vIHJldHVybiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4ocmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRCaXRBbmRHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRC
aXRBbmRHZW5lcmF0b3IuY3BwCmluZGV4IDUyYjA0YzYzZGJjYy4uMTJkMTIwNWU4ZDcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEJpdEFuZEdlbmVyYXRvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRCaXRBbmRHZW5lcmF0b3IuY3BwCkBA
IC01NSw3ICs1NSw3IEBAIHZvaWQgSklUQml0QW5kR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KENDYWxsSGVscGVycyYgaml0KQogI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgICAgICBqaXQu
YW5kNjQoQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25zdE9wci5hc0NvbnN0SW50MzIoKSksIHZhci5w
YXlsb2FkR1BSKCksIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAgICBpZiAoY29u
c3RPcHIuYXNDb25zdEludDMyKCkgPj0gMCkKLSAgICAgICAgICAgICAgICBqaXQuYm94SW50MzIo
bV9yZXN1bHQucGF5bG9hZEdQUigpLCBtX3Jlc3VsdCk7CisgICAgICAgICAgICAgICAgaml0Lm9y
NjQoR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CiAj
ZWxzZQogICAgICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3ModmFyLCBtX3Jlc3VsdCk7CiAgICAg
ICAgICAgICBqaXQuYW5kMzIoQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25zdE9wci5hc0NvbnN0SW50
MzIoKSksIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgSklU
Qml0QW5kR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQogICAg
IGlmIChtX2xlZnRPcGVyYW5kLmRlZmluaXRlbHlJc0Jvb2xlYW4oKSAmJiBtX3JpZ2h0T3BlcmFu
ZC5kZWZpbml0ZWx5SXNCb29sZWFuKCkpIHsKICAgICAgICAgaml0LmFuZDMyKG1fbGVmdC5wYXls
b2FkR1BSKCksIG1fcmlnaHQucGF5bG9hZEdQUigpLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOwog
ICAgICAgICBqaXQuYW5kMzIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIG1fcmVzdWx0
LnBheWxvYWRHUFIoKSk7Ci0gICAgICAgIGppdC5ib3hJbnQzMihtX3Jlc3VsdC5wYXlsb2FkR1BS
KCksIG1fcmVzdWx0KTsKKyAgICAgICAgaml0Lm9yNjQoR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0
ZXIsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQml0T3JHZW5lcmF0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRCaXRPckdlbmVyYXRvci5jcHAK
aW5kZXggNGNhOTAyMmYzMjc4Li4xMmJmODJhMjE1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQml0T3JHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUQml0T3JHZW5lcmF0b3IuY3BwCkBAIC00NSw3ICs0NSwxMyBAQCB2b2lk
IEpJVEJpdE9yR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQog
CiAgICAgICAgIGlmIChjb25zdE9wci5hc0NvbnN0SW50MzIoKSkgewogI2lmIFVTRShKU1ZBTFVF
NjQpCisjaWYgQ1BVKEFSTTY0KQogICAgICAgICAgICAgaml0Lm9yNjQoQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tNjQoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHN0YXRpY19jYXN0PHVpbnQzMl90Pihj
b25zdE9wci5hc0NvbnN0SW50MzIoKSkpKSwgdmFyLnBheWxvYWRHUFIoKSwgbV9yZXN1bHQucGF5
bG9hZEdQUigpKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyh2YXIsIG1f
cmVzdWx0KTsKKyAgICAgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6SW1tMzIoY29uc3RP
cHIuYXNDb25zdEludDMyKCkpLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAg
aml0Lm9yNjQoR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsIG1fcmVzdWx0LnBheWxvYWRHUFIo
KSk7CisjZW5kaWYKICNlbHNlCiAgICAgICAgICAgICBqaXQubW92ZVZhbHVlUmVncyh2YXIsIG1f
cmVzdWx0KTsKICAgICAgICAgICAgIGppdC5vcjMyKENDYWxsSGVscGVyczo6SW1tMzIoY29uc3RP
cHIuYXNDb25zdEludDMyKCkpLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOwpAQCAtNTksNyArNjUs
NyBAQCB2b2lkIEpJVEJpdE9yR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVy
cyYgaml0KQogICAgIGlmIChtX2xlZnRPcGVyYW5kLmRlZmluaXRlbHlJc0Jvb2xlYW4oKSAmJiBt
X3JpZ2h0T3BlcmFuZC5kZWZpbml0ZWx5SXNCb29sZWFuKCkpIHsKICAgICAgICAgaml0Lm9yMzIo
bV9sZWZ0LnBheWxvYWRHUFIoKSwgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1fcmVzdWx0LnBheWxv
YWRHUFIoKSk7CiAgICAgICAgIGppdC5hbmQzMihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigx
KSwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsKLSAgICAgICAgaml0LmJveEludDMyKG1fcmVzdWx0
LnBheWxvYWRHUFIoKSwgbV9yZXN1bHQpOworICAgICAgICBqaXQub3I2NChHUFJJbmZvOjpudW1i
ZXJUYWdSZWdpc3RlciwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRC
aXRYb3JHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRCaXRYb3JH
ZW5lcmF0b3IuY3BwCmluZGV4IDAyOTIzNDcwMGQ3Yi4uNDU1OTBhYTczMmU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEJpdFhvckdlbmVyYXRvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRCaXRYb3JHZW5lcmF0b3IuY3BwCkBAIC00NSw3
ICs0NSw3IEBAIHZvaWQgSklUQml0WG9yR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxs
SGVscGVycyYgaml0KQogICAgICAgICAKICNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBqaXQu
eG9yMzIoQ0NhbGxIZWxwZXJzOjpJbW0zMihjb25zdE9wci5hc0NvbnN0SW50MzIoKSksIHZhci5w
YXlsb2FkR1BSKCksIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7Ci0gICAgICAgIGppdC5ib3hJbnQz
MihtX3Jlc3VsdC5wYXlsb2FkR1BSKCksIG1fcmVzdWx0KTsKKyAgICAgICAgaml0Lm9yNjQoR1BS
SW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CiAjZWxzZQog
ICAgICAgICBqaXQubW92ZVZhbHVlUmVncyh2YXIsIG1fcmVzdWx0KTsKICAgICAgICAgaml0Lnhv
cjMyKENDYWxsSGVscGVyczo6SW1tMzIoY29uc3RPcHIuYXNDb25zdEludDMyKCkpLCBtX3Jlc3Vs
dC5wYXlsb2FkR1BSKCkpOwpAQCAtNTcsNyArNTcsNyBAQCB2b2lkIEpJVEJpdFhvckdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKICAgICBpZiAobV9sZWZ0T3Bl
cmFuZC5kZWZpbml0ZWx5SXNCb29sZWFuKCkgJiYgbV9yaWdodE9wZXJhbmQuZGVmaW5pdGVseUlz
Qm9vbGVhbigpKSB7CiAgICAgICAgIGppdC54b3IzMihtX2xlZnQucGF5bG9hZEdQUigpLCBtX3Jp
Z2h0LnBheWxvYWRHUFIoKSwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsKICAgICAgICAgaml0LmFu
ZDMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkp
OwotICAgICAgICBqaXQuYm94SW50MzIobV9yZXN1bHQucGF5bG9hZEdQUigpLCBtX3Jlc3VsdCk7
CisgICAgICAgIGppdC5vcjY0KEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyLCBtX3Jlc3VsdC5w
YXlsb2FkR1BSKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC03MCw3ICs3
MCw3IEBAIHZvaWQgSklUQml0WG9yR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVs
cGVycyYgaml0KQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBqaXQueG9yMzIobV9yaWdodC5w
YXlsb2FkR1BSKCksIG1fbGVmdC5wYXlsb2FkR1BSKCksIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7
Ci0gICAgaml0LmJveEludDMyKG1fcmVzdWx0LnBheWxvYWRHUFIoKSwgbV9yZXN1bHQpOworICAg
IGppdC5vcjY0KEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyLCBtX3Jlc3VsdC5wYXlsb2FkR1BS
KCkpOwogI2Vsc2UKICAgICBqaXQubW92ZVZhbHVlUmVncyhtX2xlZnQsIG1fcmVzdWx0KTsKICAg
ICBqaXQueG9yMzIobV9yaWdodC5wYXlsb2FkR1BSKCksIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVERpdkdlbmVyYXRvci5jcHAKaW5kZXgg
ZmNmODI1MjczZWVkLi4wNzY3MjhjN2U0MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklURGl2R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVERpdkdlbmVyYXRvci5jcHAKQEAgLTEyMyw2ICsxMjMsNyBAQCB2b2lkIEpJVERpdkdl
bmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKICNpZiBVU0UoSlNW
QUxVRTY0KQogICAgIGppdC5tb3ZlRG91YmxlVG82NChtX2xlZnRGUFIsIG1fc2NyYXRjaEdQUik7
CiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIG5vdERvdWJsZVplcm8gPSBqaXQuYnJhbmNoVGVzdDY0
KENDYWxsSGVscGVyczo6Tm9uWmVybywgbV9zY3JhdGNoR1BSKTsKKwogICAgIGppdC5tb3ZlKEdQ
UkluZm86Om51bWJlclRhZ1JlZ2lzdGVyLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOwogICAgIG1f
ZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUSW5saW5lcy5oCmluZGV4IDI4MjI1Y2JiZjdlNi4uYTZiNjQ2Mzk1MmVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZXMuaApAQCAtNDIwLDcgKzQyMCw4IEBAIEFMV0FZU19J
TkxJTkUgdm9pZCBKSVQ6OmVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoVmlydHVhbFJlZ2lzdGVyIGRz
dCwgUmVnaXN0ZXJJRCBmCiAKIEFMV0FZU19JTkxJTkUgSklUOjpKdW1wIEpJVDo6ZW1pdEp1bXBJ
Zk5vdEludChSZWdpc3RlcklEIHJlZzEsIFJlZ2lzdGVySUQgcmVnMiwgUmVnaXN0ZXJJRCBzY3Jh
dGNoKQogewotICAgIGFuZDY0KHJlZzEsIHJlZzIsIHNjcmF0Y2gpOworICAgIG1vdmUocmVnMSwg
c2NyYXRjaCk7CisgICAgYW5kNjQocmVnMiwgc2NyYXRjaCk7CiAgICAgcmV0dXJuIGJyYW5jaElm
Tm90SW50MzIoc2NyYXRjaCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUTGVmdFNoaWZ0R2VuZXJhdG9yLmNwcAppbmRleCBkYTViZGM4MjZkN2YuLjk5MGJhMTc2
MmNlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRMZWZ0U2hpZnRH
ZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTGVmdFNoaWZ0
R2VuZXJhdG9yLmNwcApAQCAtNDQsMTIgKzQ0LDEzIEBAIHZvaWQgSklUTGVmdFNoaWZ0R2VuZXJh
dG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQogCiAgICAgbV9kaWRFbWl0
RmFzdFBhdGggPSB0cnVlOwogCi0jaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBpZiAobV9yaWdo
dE9wZXJhbmQuaXNDb25zdEludDMyKCkpIHsKICAgICAgICAgLy8gVHJ5IHRvIGRvIChpbnRWYXIg
PDwgaW50Q29uc3RhbnQpLgogICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5i
cmFuY2hJZk5vdEludDMyKG1fbGVmdCkpOworCiAgICAgICAgIGppdC5tb3ZlVmFsdWVSZWdzKG1f
bGVmdCwgbV9yZXN1bHQpOwogICAgICAgICBqaXQubHNoaWZ0MzIoQ0NhbGxIZWxwZXJzOjpJbW0z
MihtX3JpZ2h0T3BlcmFuZC5hc0NvbnN0SW50MzIoKSksIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7
CisKICAgICB9IGVsc2UgewogICAgICAgICAvLyBUcnkgdG8gZG8gKGludENvbnN0YW50IDw8IGlu
dFZhcikgb3IgKGludFZhciA8PCBpbnRWYXIpLgogICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3Qu
YXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpKTsKQEAgLTYxLDcgKzYyLDkgQEAg
dm9pZCBKSVRMZWZ0U2hpZnRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJz
JiBqaXQpCiAgICAgICAgIH0KIAogICAgICAgICBpZiAobV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50
MzIoKSkgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgICAgICAgICBqaXQubW92ZShtX3Jp
Z2h0LnRhZ0dQUigpLCBtX3Jlc3VsdC50YWdHUFIoKSk7CisjZW5kaWYKICAgICAgICAgICAgIGpp
dC5tb3ZlKENDYWxsSGVscGVyczo6SW1tMzIobV9sZWZ0T3BlcmFuZC5hc0NvbnN0SW50MzIoKSks
IG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBt
X3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKG1fbGVmdCkpOwpA
QCAtNzAsMjIgKzczLDkgQEAgdm9pZCBKSVRMZWZ0U2hpZnRHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCiAKICAgICAgICAgaml0LmxzaGlmdDMyKHJpZ2h0T3Bl
cmFuZEdQUiwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsKICAgICB9Ci0jZWxzZQotICAgIGlmICht
X3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkgewotICAgICAgICAvLyBUcnkgdG8gZG8gKGlu
dFZhciA8PCBpbnRDb25zdGFudCkuCi0gICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQo
aml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KSk7Ci0gICAgICAgIGppdC5sc2hpZnQzMihtX2xl
ZnQucGF5bG9hZEdQUigpLCBDQ2FsbEhlbHBlcnM6OkltbTMyKG1fcmlnaHRPcGVyYW5kLmFzQ29u
c3RJbnQzMigpKSwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICAvLyBUcnkgdG8gZG8gKGludENvbnN0YW50IDw8IGludFZhcikgb3IgKGludFZhciA8PCBpbnRW
YXIpLgotICAgICAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdElu
dDMyKG1fcmlnaHQpKTsKLSAgICAgICAgaWYgKG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkp
Ci0gICAgICAgICAgICBqaXQubHNoaWZ0MzIoQ0NhbGxIZWxwZXJzOjpJbW0zMihtX2xlZnRPcGVy
YW5kLmFzQ29uc3RJbnQzMigpKSwgbV9yaWdodC5wYXlsb2FkR1BSKCksIG1fcmVzdWx0LnBheWxv
YWRHUFIoKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0
LmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQpKTsKLSAgICAgICAgICAgIGppdC5s
c2hpZnQzMihtX2xlZnQucGF5bG9hZEdQUigpLCBtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9yZXN1
bHQucGF5bG9hZEdQUigpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBqaXQuYm94SW50MzIobV9y
ZXN1bHQucGF5bG9hZEdQUigpLCBtX3Jlc3VsdCk7CisKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAg
IGppdC5vcjY0KEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyLCBtX3Jlc3VsdC5wYXlsb2FkR1BS
KCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUTmVnR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTmVnR2Vu
ZXJhdG9yLmNwcAppbmRleCA2MTdiYjc4Y2VhYzYuLmMxYzc3MmM4OWJkNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVROZWdHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUTmVnR2VuZXJhdG9yLmNwcApAQCAtNjYsNyArNjYsMTMg
QEAgSklUTWF0aElDSW5saW5lUmVzdWx0IEpJVE5lZ0dlbmVyYXRvcjo6Z2VuZXJhdGVJbmxpbmUo
Q0NhbGxIZWxwZXJzJiBqaXQsIE1hdGhJQ0cKICAgICAgICAgc3RhdGUuc2xvd1BhdGhKdW1wcy5h
cHBlbmQoaml0LmJyYW5jaElmSW50MzIobV9zcmMpKTsKICAgICAgICAgc3RhdGUuc2xvd1BhdGhK
dW1wcy5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fc3JjLCBtX3NjcmF0Y2hHUFIpKTsK
ICNpZiBVU0UoSlNWQUxVRTY0KQotICAgICAgICBqaXQueG9yNjQoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tNjQoc3RhdGljX2Nhc3Q8aW50NjRfdD4oMXVsbCA8PCA2MykpLCBtX3NyYy5wYXlsb2Fk
R1BSKCksIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CisgICAgICAgIGlmIChtX3NyYy5wYXlsb2Fk
R1BSKCkgIT0gbV9yZXN1bHQucGF5bG9hZEdQUigpKSB7CisgICAgICAgICAgICBqaXQubW92ZShD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW02NChzdGF0aWNfY2FzdDxpbnQ2NF90PigxdWxsIDw8IDYz
KSksIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CisgICAgICAgICAgICBqaXQueG9yNjQobV9zcmMu
cGF5bG9hZEdQUigpLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tNjQoc3RhdGljX2Nh
c3Q8aW50NjRfdD4oMXVsbCA8PCA2MykpLCBtX3NjcmF0Y2hHUFIpOworICAgICAgICAgICAgaml0
LnhvcjY0KG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsKKyAgICAgICAgfQog
I2Vsc2UKICAgICAgICAgaml0Lm1vdmVWYWx1ZVJlZ3MobV9zcmMsIG1fcmVzdWx0KTsKICAgICAg
ICAgaml0LnhvcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEgPDwgMzEpLCBtX3Jlc3Vs
dC50YWdHUFIoKSk7CkBAIC0xMDQsNyArMTEwLDggQEAgYm9vbCBKSVROZWdHZW5lcmF0b3I6Omdl
bmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQsIENDYWxsSGVscGVyczo6SnVtcExpc3QK
IAogICAgIC8vIEZvciBhIGRvdWJsZSwgYWxsIHdlIG5lZWQgdG8gZG8gaXMgdG8gaW52ZXJ0IHRo
ZSBzaWduIGJpdC4KICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIGppdC54b3I2NChDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW02NCgoaW50NjRfdCkoMXVsbCA8PCA2MykpLCBtX3Jlc3VsdC5wYXlsb2Fk
R1BSKCkpOworICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTY0KChpbnQ2NF90
KSgxdWxsIDw8IDYzKSksIG1fc2NyYXRjaEdQUik7CisgICAgaml0LnhvcjY0KG1fc2NyYXRjaEdQ
UiwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsKICNlbHNlCiAgICAgaml0LnhvcjMyKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKDEgPDwgMzEpLCBtX3Jlc3VsdC50YWdHUFIoKSk7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGQ0MGY4OGNhY2Y2
OC4uOTc2NGEwNmI2ZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5j
cHAKQEAgLTg5MSw3ICs4OTEsOCBAQCB2b2lkIEpJVDo6Y29tcGlsZU9wU3RyaWN0RXEoY29uc3Qg
SlNJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRQdXRWaXJ0dWFsUmVn
aXN0ZXIoZHN0LCByZWdUNSk7CiAjZWxzZSAvLyBpZiAhVVNFKEJJR0lOVDMyKQogICAgIC8vIEp1
bXAgc2xvdyBpZiBib3RoIGFyZSBjZWxscyAodG8gY292ZXIgc3RyaW5ncykuCi0gICAgb3I2NChy
ZWdUMSwgcmVnVDAsIHJlZ1QyKTsKKyAgICBtb3ZlKHJlZ1QwLCByZWdUMik7CisgICAgb3I2NChy
ZWdUMSwgcmVnVDIpOwogICAgIGFkZFNsb3dDYXNlKGJyYW5jaElmQ2VsbChyZWdUMikpOwogCiAg
ICAgLy8gSnVtcCBzbG93IGlmIGVpdGhlciBpcyBhIGRvdWJsZS4gRmlyc3QgdGVzdCBpZiBpdCdz
IGFuIGludGVnZXIsIHdoaWNoIGlzIGZpbmUsIGFuZCB0aGVuIHRlc3QKQEAgLTEwNTksNyArMTA2
MCw4IEBAIHZvaWQgSklUOjpjb21waWxlT3BTdHJpY3RFcUp1bXAoY29uc3QgSlNJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogICAgIH0KICNlbHNlIC8vIGlmICFVU0UoQklHSU5UMzIp
CiAgICAgLy8gSnVtcCBzbG93IGlmIGJvdGggYXJlIGNlbGxzICh0byBjb3ZlciBzdHJpbmdzKS4K
LSAgICBvcjY0KHJlZ1QxLCByZWdUMCwgcmVnVDIpOworICAgIG1vdmUocmVnVDAsIHJlZ1QyKTsK
KyAgICBvcjY0KHJlZ1QxLCByZWdUMik7CiAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZDZWxsKHJl
Z1QyKSk7CiAKICAgICAvLyBKdW1wIHNsb3cgaWYgZWl0aGVyIGlzIGEgZG91YmxlLiBGaXJzdCB0
ZXN0IGlmIGl0J3MgYW4gaW50ZWdlciwgd2hpY2ggaXMgZmluZSwgYW5kIHRoZW4gdGVzdApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRSaWdodFNoaWZ0R2VuZXJhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUmlnaHRTaGlmdEdlbmVyYXRvci5j
cHAKaW5kZXggYzY3ZTRhM2MwYTkyLi43NmMyNTFiYjFiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUmlnaHRTaGlmdEdlbmVyYXRvci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRSaWdodFNoaWZ0R2VuZXJhdG9yLmNwcApAQCAtNDQsNyAr
NDQsNiBAQCB2b2lkIEpJVFJpZ2h0U2hpZnRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0Nh
bGxIZWxwZXJzJiBqaXQpCiAKICAgICBtX2RpZEVtaXRGYXN0UGF0aCA9IHRydWU7CiAKLSNpZiBV
U0UoSlNWQUxVRTMyXzY0KQogICAgIGlmIChtX3JpZ2h0T3BlcmFuZC5pc0NvbnN0SW50MzIoKSkg
ewogICAgICAgICAvLyBUcnkgdG8gZG8gKGludFZhciA+PiBpbnRDb25zdGFudCkuCiAgICAgICAg
IENDYWxsSGVscGVyczo6SnVtcCBub3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQp
OwpAQCAtNTYsMTQzICs1NSw5NyBAQCB2b2lkIEpJVFJpZ2h0U2hpZnRHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCiAgICAgICAgICAgICAgICAgaml0LnJzaGlm
dDMyKENDYWxsSGVscGVyczo6SW1tMzIoc2hpZnRBbW91bnQpLCBtX3Jlc3VsdC5wYXlsb2FkR1BS
KCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGppdC51cnNoaWZ0MzIoQ0Nh
bGxIZWxwZXJzOjpJbW0zMihzaGlmdEFtb3VudCksIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7Cisj
aWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgICAgIGppdC5vcjY0KEdQUkluZm86Om51bWJlclRh
Z1JlZ2lzdGVyLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOworI2VuZGlmCiAgICAgICAgIH0KLSAg
ICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7IC8vIFRlcm1pbmF0ZSB0aGUg
YWJvdmUgY2FzZSBiZWZvcmUgZW1pdHRpbmcgbW9yZSBjb2RlLgogCi0gICAgICAgIC8vIFRyeSB0
byBkbyAoZG91YmxlVmFyID4+IGludENvbnN0YW50KS4KLSAgICAgICAgbm90SW50LmxpbmsoJmpp
dCk7CisgICAgICAgIGlmIChqaXQuc3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUoKSkgewor
ICAgICAgICAgICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7IC8vIFRlcm1pbmF0
ZSB0aGUgYWJvdmUgY2FzZSBiZWZvcmUgZW1pdHRpbmcgbW9yZSBjb2RlLgogCi0gICAgICAgIG1f
c2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90TnVtYmVyKG1fbGVmdCwgbV9z
Y3JhdGNoR1BSKSk7CisgICAgICAgICAgICAvLyBUcnkgdG8gZG8gKGRvdWJsZVZhciA+PiBpbnRD
b25zdGFudCkuCisgICAgICAgICAgICBub3RJbnQubGluaygmaml0KTsKIAotICAgICAgICBqaXQu
dW5ib3hEb3VibGVOb25EZXN0cnVjdGl2ZShtX2xlZnQsIG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BS
KTsKLSAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoVHJ1bmNhdGVE
b3VibGVUb0ludDMyKG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BSKSk7CisgICAgICAgICAgICBtX3Ns
b3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX2xlZnQsIG1fc2Ny
YXRjaEdQUikpOwogCi0gICAgICAgIGlmIChzaGlmdEFtb3VudCkgewotICAgICAgICAgICAgaWYg
KG1fc2hpZnRUeXBlID09IFNpZ25lZFNoaWZ0KQotICAgICAgICAgICAgICAgIGppdC5yc2hpZnQz
MihDQ2FsbEhlbHBlcnM6OkltbTMyKHNoaWZ0QW1vdW50KSwgbV9zY3JhdGNoR1BSKTsKKyAgICAg
ICAgICAgIGppdC51bmJveERvdWJsZU5vbkRlc3RydWN0aXZlKG1fbGVmdCwgbV9sZWZ0RlBSLCBt
X3NjcmF0Y2hHUFIpOworI2lmIENQVShBUk02NCkKKyAgICAgICAgICAgIGlmIChNYWNyb0Fzc2Vt
YmxlckFSTTY0OjpzdXBwb3J0c0RvdWJsZVRvSW50MzJDb252ZXJzaW9uVXNpbmdKYXZhU2NyaXB0
U2VtYW50aWNzKCkpCisgICAgICAgICAgICAgICAgaml0LmNvbnZlcnREb3VibGVUb0ludDMyVXNp
bmdKYXZhU2NyaXB0U2VtYW50aWNzKG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBqaXQudXJzaGlmdDMyKENDYWxsSGVscGVyczo6SW1t
MzIoc2hpZnRBbW91bnQpLCBtX3NjcmF0Y2hHUFIpOwotICAgICAgICB9Ci0gICAgICAgIGppdC5i
b3hJbnQzMihtX3NjcmF0Y2hHUFIsIG1fcmVzdWx0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIC8vIFRyeSB0byBkbyAoaW50Q29uc3RhbnQgPj4gaW50VmFyKSBvciAoaW50VmFyID4+
IGludFZhcikuCi0gICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3RJ
bnQzMihtX3JpZ2h0KSk7CisjZW5kaWYKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBt
X3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIo
bV9sZWZ0RlBSLCBtX3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKHNoaWZ0QW1vdW50KSB7CisgICAgICAgICAgICAgICAgaWYgKG1fc2hpZnRUeXBlID09IFNp
Z25lZFNoaWZ0KQorICAgICAgICAgICAgICAgICAgICBqaXQucnNoaWZ0MzIoQ0NhbGxIZWxwZXJz
OjpJbW0zMihzaGlmdEFtb3VudCksIG1fc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICBqaXQudXJzaGlmdDMyKENDYWxsSGVscGVyczo6SW1tMzIo
c2hpZnRBbW91bnQpLCBtX3NjcmF0Y2hHUFIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
aml0LmJveEludDMyKG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQpOwogCi0gICAgR1BSUmVnIHJpZ2h0
T3BlcmFuZEdQUiA9IG1fcmlnaHQucGF5bG9hZEdQUigpOwotICAgIGlmIChyaWdodE9wZXJhbmRH
UFIgPT0gbV9yZXN1bHQucGF5bG9hZEdQUigpKQotICAgICAgICByaWdodE9wZXJhbmRHUFIgPSBt
X3NjcmF0Y2hHUFI7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBM
aXN0LmFwcGVuZChub3RJbnQpOwogCi0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGxlZnROb3RJbnQ7
Ci0gICAgaWYgKG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkpIHsKLSAgICAgICAgaml0Lm1v
dmUobV9yaWdodC5wYXlsb2FkR1BSKCksIHJpZ2h0T3BlcmFuZEdQUik7Ci0gICAgICAgIGppdC5t
b3ZlKG1fcmlnaHQudGFnR1BSKCksIG1fcmVzdWx0LnRhZ0dQUigpKTsKLSAgICAgICAgaml0Lm1v
dmUoQ0NhbGxIZWxwZXJzOjpJbW0zMihtX2xlZnRPcGVyYW5kLmFzQ29uc3RJbnQzMigpKSwgbV9y
ZXN1bHQucGF5bG9hZEdQUigpKTsKICAgICB9IGVsc2UgewotICAgICAgICBsZWZ0Tm90SW50ID0g
aml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KTsKLSAgICAgICAgaml0Lm1vdmUobV9yaWdodC5w
YXlsb2FkR1BSKCksIHJpZ2h0T3BlcmFuZEdQUik7Ci0gICAgICAgIGppdC5tb3ZlVmFsdWVSZWdz
KG1fbGVmdCwgbV9yZXN1bHQpOwotICAgIH0KLQotICAgIGlmIChtX3NoaWZ0VHlwZSA9PSBTaWdu
ZWRTaGlmdCkKLSAgICAgICAgaml0LnJzaGlmdDMyKHJpZ2h0T3BlcmFuZEdQUiwgbV9yZXN1bHQu
cGF5bG9hZEdQUigpKTsKLSAgICBlbHNlCi0gICAgICAgIGppdC51cnNoaWZ0MzIocmlnaHRPcGVy
YW5kR1BSLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOwotICAgIGlmIChtX2xlZnRPcGVyYW5kLmlz
Q29uc3RJbnQzMigpKQotICAgICAgICByZXR1cm47CisgICAgICAgIC8vIFRyeSB0byBkbyAoaW50
Q29uc3RhbnQgPj4gaW50VmFyKSBvciAoaW50VmFyID4+IGludFZhcikuCisgICAgICAgIG1fc2xv
d1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCkpOwogCi0g
ICAgbV9lbmRKdW1wTGlzdC5hcHBlbmQoaml0Lmp1bXAoKSk7IC8vIFRlcm1pbmF0ZSB0aGUgYWJv
dmUgY2FzZSBiZWZvcmUgZW1pdHRpbmcgbW9yZSBjb2RlLgorICAgICAgICBHUFJSZWcgcmlnaHRP
cGVyYW5kR1BSID0gbV9yaWdodC5wYXlsb2FkR1BSKCk7CisgICAgICAgIGlmIChyaWdodE9wZXJh
bmRHUFIgPT0gbV9yZXN1bHQucGF5bG9hZEdQUigpKQorICAgICAgICAgICAgcmlnaHRPcGVyYW5k
R1BSID0gbV9zY3JhdGNoR1BSOwogCi0gICAgLy8gVHJ5IHRvIGRvIChkb3VibGVWYXIgPj4gaW50
VmFyKS4KLSAgICBsZWZ0Tm90SW50LmxpbmsoJmppdCk7CisgICAgICAgIENDYWxsSGVscGVyczo6
SnVtcCBsZWZ0Tm90SW50OworICAgICAgICBpZiAobV9sZWZ0T3BlcmFuZC5pc0NvbnN0SW50MzIo
KSkgeworICAgICAgICAgICAgaml0Lm1vdmUobV9yaWdodC5wYXlsb2FkR1BSKCksIHJpZ2h0T3Bl
cmFuZEdQUik7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgIGppdC5tb3ZlKG1f
cmlnaHQudGFnR1BSKCksIG1fcmVzdWx0LnRhZ0dQUigpKTsKKyNlbmRpZgorICAgICAgICAgICAg
aml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpJbW0zMihtX2xlZnRPcGVyYW5kLmFzQ29uc3RJbnQzMigp
KSwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGxlZnROb3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQpOworICAgICAgICAgICAg
aml0Lm1vdmUobV9yaWdodC5wYXlsb2FkR1BSKCksIHJpZ2h0T3BlcmFuZEdQUik7CisgICAgICAg
ICAgICBqaXQubW92ZVZhbHVlUmVncyhtX2xlZnQsIG1fcmVzdWx0KTsKKyAgICAgICAgfQogCi0g
ICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1iZXIobV9sZWZ0
LCBtX3NjcmF0Y2hHUFIpKTsKLSAgICBqaXQudW5ib3hEb3VibGVOb25EZXN0cnVjdGl2ZShtX2xl
ZnQsIG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BSKTsKLSAgICBtX3Nsb3dQYXRoSnVtcExpc3QuYXBw
ZW5kKGppdC5icmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIobV9sZWZ0RlBSLCBtX3NjcmF0Y2hH
UFIpKTsKKyAgICAgICAgaWYgKG1fc2hpZnRUeXBlID09IFNpZ25lZFNoaWZ0KQorICAgICAgICAg
ICAgaml0LnJzaGlmdDMyKHJpZ2h0T3BlcmFuZEdQUiwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgaml0LnVyc2hpZnQzMihyaWdodE9wZXJhbmRHUFIs
IG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgaml0
Lm9yNjQoR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7
CisjZW5kaWYKKyAgICAgICAgaWYgKG1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkpCisgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9zaGlmdFR5cGUgPT0gU2lnbmVkU2hpZnQpCi0g
ICAgICAgIGppdC5yc2hpZnQzMihtX3JpZ2h0LnBheWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BSKTsK
LSAgICBlbHNlCi0gICAgICAgIGppdC51cnNoaWZ0MzIobV9yaWdodC5wYXlsb2FkR1BSKCksIG1f
c2NyYXRjaEdQUik7Ci0gICAgaml0LmJveEludDMyKG1fc2NyYXRjaEdQUiwgbV9yZXN1bHQpOwot
I2Vsc2UKLSAgICBpZiAobV9yaWdodE9wZXJhbmQuaXNDb25zdEludDMyKCkpIHsKLSAgICAgICAg
Ly8gVHJ5IHRvIGRvIChpbnRWYXIgPj4gaW50Q29uc3RhbnQpLgotICAgICAgICBDQ2FsbEhlbHBl
cnM6Okp1bXAgbm90SW50ID0gaml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KTsKKyAgICAgICAg
aWYgKGppdC5zdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpKSB7CisgICAgICAgICAgICBt
X2VuZEp1bXBMaXN0LmFwcGVuZChqaXQuanVtcCgpKTsgLy8gVGVybWluYXRlIHRoZSBhYm92ZSBj
YXNlIGJlZm9yZSBlbWl0dGluZyBtb3JlIGNvZGUuCiAKLSAgICAgICAgaW50MzJfdCBzaGlmdEFt
b3VudCA9IG1fcmlnaHRPcGVyYW5kLmFzQ29uc3RJbnQzMigpICYgMHgxZjsKLSAgICAgICAgaWYg
KHNoaWZ0QW1vdW50KSB7Ci0gICAgICAgICAgICBpZiAobV9zaGlmdFR5cGUgPT0gU2lnbmVkU2hp
ZnQpCi0gICAgICAgICAgICAgICAgaml0LnJzaGlmdDMyKG1fbGVmdC5wYXlsb2FkR1BSKCksIEND
YWxsSGVscGVyczo6SW1tMzIoc2hpZnRBbW91bnQpLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGppdC51cnNoaWZ0MzIobV9sZWZ0LnBh
eWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpJbW0zMihzaGlmdEFtb3VudCksIG1fcmVzdWx0LnBh
eWxvYWRHUFIoKSk7Ci0gICAgICAgICAgICBqaXQuYm94SW50MzIobV9yZXN1bHQucGF5bG9hZEdQ
UigpLCBtX3Jlc3VsdCk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgaml0Lm1vdmVWYWx1
ZVJlZ3MobV9sZWZ0LCBtX3Jlc3VsdCk7Ci0gICAgICAgIG1fZW5kSnVtcExpc3QuYXBwZW5kKGpp
dC5qdW1wKCkpOyAvLyBUZXJtaW5hdGUgdGhlIGFib3ZlIGNhc2UgYmVmb3JlIGVtaXR0aW5nIG1v
cmUgY29kZS4KKyAgICAgICAgICAgIC8vIFRyeSB0byBkbyAoZG91YmxlVmFyID4+IGludFZhciku
CisgICAgICAgICAgICBsZWZ0Tm90SW50LmxpbmsoJmppdCk7CiAKLSAgICAgICAgLy8gVHJ5IHRv
IGRvIChkb3VibGVWYXIgPj4gaW50Q29uc3RhbnQpLgotICAgICAgICBub3RJbnQubGluaygmaml0
KTsKLSAgICAgICAgbV9zbG93UGF0aEp1bXBMaXN0LmFwcGVuZChqaXQuYnJhbmNoSWZOb3ROdW1i
ZXIobV9sZWZ0LCBtX3NjcmF0Y2hHUFIpKTsKLSAgICAgICAgaml0LnVuYm94RG91YmxlTm9uRGVz
dHJ1Y3RpdmUobV9sZWZ0LCBtX2xlZnRGUFIsIG1fc2NyYXRjaEdQUik7CisgICAgICAgICAgICBt
X3Nsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX2xlZnQsIG1f
c2NyYXRjaEdQUikpOworICAgICAgICAgICAgaml0LnVuYm94RG91YmxlTm9uRGVzdHJ1Y3RpdmUo
bV9sZWZ0LCBtX2xlZnRGUFIsIG1fc2NyYXRjaEdQUik7CiAjaWYgQ1BVKEFSTTY0KQotICAgICAg
ICBpZiAoTWFjcm9Bc3NlbWJsZXJBUk02NDo6c3VwcG9ydHNEb3VibGVUb0ludDMyQ29udmVyc2lv
blVzaW5nSmF2YVNjcmlwdFNlbWFudGljcygpKQotICAgICAgICAgICAgaml0LmNvbnZlcnREb3Vi
bGVUb0ludDMyVXNpbmdKYXZhU2NyaXB0U2VtYW50aWNzKG1fbGVmdEZQUiwgbV9zY3JhdGNoR1BS
KTsKLSAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKE1hY3JvQXNzZW1ibGVyQVJNNjQ6OnN1
cHBvcnRzRG91YmxlVG9JbnQzMkNvbnZlcnNpb25Vc2luZ0phdmFTY3JpcHRTZW1hbnRpY3MoKSkK
KyAgICAgICAgICAgICAgICBqaXQuY29udmVydERvdWJsZVRvSW50MzJVc2luZ0phdmFTY3JpcHRT
ZW1hbnRpY3MobV9sZWZ0RlBSLCBtX3NjcmF0Y2hHUFIpOworICAgICAgICAgICAgZWxzZQogI2Vu
ZGlmCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0
LmJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQzMihtX2xlZnRGUFIsIG1fc2NyYXRjaEdQUikpOwot
ICAgICAgICB9CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbV9zbG93UGF0aEp1bXBM
aXN0LmFwcGVuZChqaXQuYnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKG1fbGVmdEZQUiwgbV9z
Y3JhdGNoR1BSKSk7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgaWYgKHNoaWZ0QW1vdW50KSB7
CiAgICAgICAgICAgICBpZiAobV9zaGlmdFR5cGUgPT0gU2lnbmVkU2hpZnQpCi0gICAgICAgICAg
ICAgICAgaml0LnJzaGlmdDMyKENDYWxsSGVscGVyczo6SW1tMzIoc2hpZnRBbW91bnQpLCBtX3Nj
cmF0Y2hHUFIpOworICAgICAgICAgICAgICAgIGppdC5yc2hpZnQzMihtX3JpZ2h0LnBheWxvYWRH
UFIoKSwgbV9zY3JhdGNoR1BSKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBq
aXQudXJzaGlmdDMyKENDYWxsSGVscGVyczo6SW1tMzIoc2hpZnRBbW91bnQpLCBtX3NjcmF0Y2hH
UFIpOwotICAgICAgICB9Ci0gICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0Y2hHUFIsIG1fcmVz
dWx0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAvLyBUcnkgdG8gZG8gKGludENvbnN0
YW50ID4+IGludFZhcikgb3IgKGludFZhciA+PiBpbnRWYXIpLgotICAgIG1fc2xvd1BhdGhKdW1w
TGlzdC5hcHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIobV9yaWdodCkpOwotCi0gICAgaWYgKG1f
bGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkpIHsKLSAgICAgICAgaWYgKG1fc2hpZnRUeXBlID09
IFNpZ25lZFNoaWZ0KQotICAgICAgICAgICAgaml0LnJzaGlmdDMyKENDYWxsSGVscGVyczo6SW1t
MzIobV9sZWZ0T3BlcmFuZC5hc0NvbnN0SW50MzIoKSksIG1fcmlnaHQucGF5bG9hZEdQUigpLCBt
X3Jlc3VsdC5wYXlsb2FkR1BSKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBqaXQudXJz
aGlmdDMyKENDYWxsSGVscGVyczo6SW1tMzIobV9sZWZ0T3BlcmFuZC5hc0NvbnN0SW50MzIoKSks
IG1fcmlnaHQucGF5bG9hZEdQUigpLCBtX3Jlc3VsdC5wYXlsb2FkR1BSKCkpOwotICAgICAgICBq
aXQuYm94SW50MzIobV9yZXN1bHQucGF5bG9hZEdQUigpLCBtX3Jlc3VsdCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9CisgICAgICAgICAgICAgICAgaml0LnVyc2hpZnQzMihtX3JpZ2h0LnBheWxv
YWRHUFIoKSwgbV9zY3JhdGNoR1BSKTsKKyAgICAgICAgICAgIGppdC5ib3hJbnQzMihtX3NjcmF0
Y2hHUFIsIG1fcmVzdWx0KTsKIAotICAgIENDYWxsSGVscGVyczo6SnVtcCBsZWZ0Tm90SW50ID0g
aml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KTsKLSAgICBpZiAobV9zaGlmdFR5cGUgPT0gU2ln
bmVkU2hpZnQpCi0gICAgICAgIGppdC5yc2hpZnQzMihtX2xlZnQucGF5bG9hZEdQUigpLCBtX3Jp
Z2h0LnBheWxvYWRHUFIoKSwgbV9yZXN1bHQucGF5bG9hZEdQUigpKTsKLSAgICBlbHNlCi0gICAg
ICAgIGppdC51cnNoaWZ0MzIobV9sZWZ0LnBheWxvYWRHUFIoKSwgbV9yaWdodC5wYXlsb2FkR1BS
KCksIG1fcmVzdWx0LnBheWxvYWRHUFIoKSk7Ci0gICAgaml0LmJveEludDMyKG1fcmVzdWx0LnBh
eWxvYWRHUFIoKSwgbV9yZXN1bHQpOwotICAgIG1fZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1w
KCkpOyAvLyBUZXJtaW5hdGUgdGhlIGFib3ZlIGNhc2UgYmVmb3JlIGVtaXR0aW5nIG1vcmUgY29k
ZS4KLQotICAgIC8vIFRyeSB0byBkbyAoZG91YmxlVmFyID4+IGludFZhcikuCi0gICAgbGVmdE5v
dEludC5saW5rKCZqaXQpOwotICAgIG1fc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0LmJyYW5j
aElmTm90TnVtYmVyKG1fbGVmdCwgbV9zY3JhdGNoR1BSKSk7Ci0gICAgaml0LnVuYm94RG91Ymxl
Tm9uRGVzdHJ1Y3RpdmUobV9sZWZ0LCBtX2xlZnRGUFIsIG1fc2NyYXRjaEdQUik7Ci0jaWYgQ1BV
KEFSTTY0KQotICAgIGlmIChNYWNyb0Fzc2VtYmxlckFSTTY0OjpzdXBwb3J0c0RvdWJsZVRvSW50
MzJDb252ZXJzaW9uVXNpbmdKYXZhU2NyaXB0U2VtYW50aWNzKCkpCi0gICAgICAgIGppdC5jb252
ZXJ0RG91YmxlVG9JbnQzMlVzaW5nSmF2YVNjcmlwdFNlbWFudGljcyhtX2xlZnRGUFIsIG1fc2Ny
YXRjaEdQUik7Ci0gICAgZWxzZQotI2VuZGlmCi0gICAgewotICAgICAgICBtX3Nsb3dQYXRoSnVt
cExpc3QuYXBwZW5kKGppdC5icmFuY2hUcnVuY2F0ZURvdWJsZVRvSW50MzIobV9sZWZ0RlBSLCBt
X3NjcmF0Y2hHUFIpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBtX3Nsb3dQYXRoSnVt
cExpc3QuYXBwZW5kKGxlZnROb3RJbnQpOwogICAgIH0KLQotICAgIGlmIChtX3NoaWZ0VHlwZSA9
PSBTaWduZWRTaGlmdCkKLSAgICAgICAgaml0LnJzaGlmdDMyKG1fcmlnaHQucGF5bG9hZEdQUigp
LCBtX3NjcmF0Y2hHUFIpOwotICAgIGVsc2UKLSAgICAgICAgaml0LnVyc2hpZnQzMihtX3JpZ2h0
LnBheWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BSKTsKLSAgICBqaXQuYm94SW50MzIobV9zY3JhdGNo
R1BSLCBtX3Jlc3VsdCk7Ci0jZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAKaW5kZXggNWMxZjgyYTBm
M2E3Li4xNWZlZjBhODFjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUU3ViR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN1
YkdlbmVyYXRvci5jcHAKQEAgLTY3LDEyICs2NywxMCBAQCBKSVRNYXRoSUNJbmxpbmVSZXN1bHQg
SklUU3ViR2VuZXJhdG9yOjpnZW5lcmF0ZUlubGluZShDQ2FsbEhlbHBlcnMmIGppdCwgTWF0aElD
RwogICAgICAgICBBU1NFUlQoIW1fbGVmdE9wZXJhbmQuaXNDb25zdEludDMyKCkgfHwgIW1fcmln
aHRPcGVyYW5kLmlzQ29uc3RJbnQzMigpKTsKICAgICAgICAgc3RhdGUuc2xvd1BhdGhKdW1wcy5h
cHBlbmQoaml0LmJyYW5jaElmTm90SW50MzIobV9sZWZ0KSk7CiAgICAgICAgIHN0YXRlLnNsb3dQ
YXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpKTsKLSNpZiBDUFUo
QVJNNjQpCi0gICAgICAgIHN0YXRlLnNsb3dQYXRoSnVtcHMuYXBwZW5kKGppdC5icmFuY2hTdWIz
MihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3JpZ2h0LnBh
eWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BSKSk7Ci0jZWxzZQorCiAgICAgICAgIGppdC5tb3ZlKG1f
bGVmdC5wYXlsb2FkR1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAgICAgIHN0YXRlLnNsb3dQYXRo
SnVtcHMuYXBwZW5kKGppdC5icmFuY2hTdWIzMihDQ2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX3Jp
Z2h0LnBheWxvYWRHUFIoKSwgbV9zY3JhdGNoR1BSKSk7Ci0jZW5kaWYKKwogICAgICAgICBqaXQu
Ym94SW50MzIobV9zY3JhdGNoR1BSLCBtX3Jlc3VsdCk7CiAgICAgICAgIHJldHVybiBKSVRNYXRo
SUNJbmxpbmVSZXN1bHQ6OkdlbmVyYXRlZEZhc3RQYXRoOwogICAgIH0KQEAgLTkzLDEyICs5MSw5
IEBAIGJvb2wgSklUU3ViR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYg
aml0LCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0CiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGxlZnRO
b3RJbnQgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX2xlZnQpOwogICAgIENDYWxsSGVscGVyczo6
SnVtcCByaWdodE5vdEludCA9IGppdC5icmFuY2hJZk5vdEludDMyKG1fcmlnaHQpOwogCi0jaWYg
Q1BVKEFSTTY0KQotICAgIHNsb3dQYXRoSnVtcExpc3QuYXBwZW5kKGppdC5icmFuY2hTdWIzMihD
Q2FsbEhlbHBlcnM6Ok92ZXJmbG93LCBtX2xlZnQucGF5bG9hZEdQUigpLCBtX3JpZ2h0LnBheWxv
YWRHUFIoKSwgbV9zY3JhdGNoR1BSKSk7Ci0jZWxzZQogICAgIGppdC5tb3ZlKG1fbGVmdC5wYXls
b2FkR1BSKCksIG1fc2NyYXRjaEdQUik7CiAgICAgc2xvd1BhdGhKdW1wTGlzdC5hcHBlbmQoaml0
LmJyYW5jaFN1YjMyKENDYWxsSGVscGVyczo6T3ZlcmZsb3csIG1fcmlnaHQucGF5bG9hZEdQUigp
LCBtX3NjcmF0Y2hHUFIpKTsKLSNlbmRpZgorCiAgICAgaml0LmJveEludDMyKG1fc2NyYXRjaEdQ
UiwgbV9yZXN1bHQpOwogCiAgICAgZW5kSnVtcExpc3QuYXBwZW5kKGppdC5qdW1wKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TZXR1cFZhcmFyZ3NGcmFtZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1NldHVwVmFyYXJnc0ZyYW1lLmNwcAppbmRleCA0
YTU4MWYyMTM4ZGMuLmZlNWNiOWRjYzg5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9TZXR1cFZhcmFyZ3NGcmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9TZXR1cFZhcmFyZ3NGcmFtZS5jcHAKQEAgLTM2LDE5ICszNiwyMiBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogdm9pZCBlbWl0U2V0VmFyYXJnc0ZyYW1lKENDYWxsSGVscGVycyYgaml0LCBHUFJS
ZWcgbGVuZ3RoR1BSLCBib29sIGxlbmd0aEluY2x1ZGVzVGhpcywgR1BSUmVnIG51bVVzZWRTbG90
c0dQUiwgR1BSUmVnIHJlc3VsdEdQUikKIHsKKyAgICBqaXQubW92ZShudW1Vc2VkU2xvdHNHUFIs
IHJlc3VsdEdQUik7CiAgICAgLy8gV2UgcmVhbGx5IHdhbnQgdG8gbWFrZSBzdXJlIHRoZSBzaXpl
IG9mIHRoZSBuZXcgY2FsbCBmcmFtZSBpcyBhIG11bHRpcGxlIG9mCiAgICAgLy8gc3RhY2tBbGln
bm1lbnRSZWdpc3RlcnMoKSwgaG93ZXZlciBpdCBpcyBlYXNpZXIgdG8gYWNjb21wbGlzaCB0aGlz
IGJ5CiAgICAgLy8gcm91bmRpbmcgbnVtVXNlZFNsb3RzR1BSIHRvIHRoZSBuZXh0IG11bHRpcGxl
IG9mIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkuCiAgICAgLy8gVG9nZXRoZXIgd2l0aCB0aGUg
cm91bmRpbmcgYmVsb3csIHdlIHdpbGwgYXNzdXJlIHRoYXQgdGhlIG5ldyBjYWxsIGZyYW1lIGlz
CiAgICAgLy8gbG9jYXRlZCBvbiBhIHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCkgYm91bmRhcnkg
YW5kIGEgbXVsdGlwbGUgb2YKICAgICAvLyBzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIGluIHNp
emUuCi0gICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihzdGFja0FsaWdu
bWVudFJlZ2lzdGVycygpIC0gMSksIG51bVVzZWRTbG90c0dQUiwgcmVzdWx0R1BSKTsKKyAgICBq
aXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHN0YWNrQWxpZ25tZW50UmVnaXN0
ZXJzKCkgLSAxKSwgcmVzdWx0R1BSKTsKICAgICBqaXQuYW5kUHRyKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbTMyKH4oc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAtIDEpKSwgcmVzdWx0R1BSKTsK
IAorICAgIGppdC5hZGRQdHIobGVuZ3RoR1BSLCByZXN1bHRHUFIpOworICAgIGppdC5hZGRQdHIo
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoQ2FsbEZyYW1lOjpoZWFkZXJTaXplSW5SZWdpc3Rl
cnMgKyAobGVuZ3RoSW5jbHVkZXNUaGlzID8gMCA6IDEpKSwgcmVzdWx0R1BSKTsKKyAgICAKICAg
ICAvLyByZXN1bHRHUFIgbm93IGhhcyB0aGUgcmVxdWlyZWQgZnJhbWUgc2l6ZSBpbiBSZWdpc3Rl
ciB1bml0cwogICAgIC8vIFJvdW5kIHJlc3VsdEdQUiB0byBuZXh0IG11bHRpcGxlIG9mIHN0YWNr
QWxpZ25tZW50UmVnaXN0ZXJzKCkKLSAgICBqaXQuYWRkUHRyKGxlbmd0aEdQUiwgcmVzdWx0R1BS
KTsKLSAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKENhbGxGcmFtZTo6
aGVhZGVyU2l6ZUluUmVnaXN0ZXJzICsgKGxlbmd0aEluY2x1ZGVzVGhpcyA/IDAgOiAxKSArIChz
dGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSkpLCByZXN1bHRHUFIpOworICAgIGppdC5hZGRQ
dHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSAt
IDEpLCByZXN1bHRHUFIpOwogICAgIGppdC5hbmRQdHIoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
MzIofihzdGFja0FsaWdubWVudFJlZ2lzdGVycygpIC0gMSkpLCByZXN1bHRHUFIpOwogICAgIAog
ICAgIC8vIE5vdyByZXN1bHRHUFIgaGFzIHRoZSByaWdodCBzdGFjayBmcmFtZSBvZmZzZXQgaW4g
UmVnaXN0ZXIgdW5pdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwCmluZGV4
IDcyZjkxMDQwODk4Yi4uZjRhMDBjYTkxOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySklULmNwcApAQCAtMzEwMyw3ICszMTAzLDggQEAgY2xhc3MgWWFyckdlbmVyYXRvciBmaW5h
bCA6IHB1YmxpYyBZYXJySklUSW5mbyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGljX2Fzc2VydChzaXplb2YoQm95ZXJNb29yZUJpdG1hcDo6TWFwOjpXb3JkVHlwZSkgPT0gc2l6
ZW9mKHVpbnQ2NF90KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2Vy
dCgxIDw8IDYgPT0gNjQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19hc3Nl
cnQoMSA8PCAoNiArIDEpID09IEJveWVyTW9vcmVCaXRtYXA6Ok1hcDo6c2l6ZSgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2ppdC51cnNoaWZ0MzIobV9yZWdzLnJlZ1QwLCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDYpLCBtX3JlZ3MucmVnVDIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1faml0Lm1vdmUobV9yZWdzLnJlZ1QwLCBtX3JlZ3MucmVnVDIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faml0LnVyc2hpZnQzMihNYWNyb0Fzc2VtYmxl
cjo6VHJ1c3RlZEltbTMyKDYpLCBtX3JlZ3MucmVnVDIpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1faml0LmFuZDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMSksIG1fcmVn
cy5yZWdUMik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9qaXQubG9hZDY0KE1hY3Jv
QXNzZW1ibGVyOjpCYXNlSW5kZXgobV9yZWdzLnJlZ1QxLCBtX3JlZ3MucmVnVDIsIE1hY3JvQXNz
ZW1ibGVyOjpUaW1lc0VpZ2h0KSwgbV9yZWdzLnJlZ1QyKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXRjaGVkLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0Qml0NjQoTWFjcm9Bc3NlbWJs
ZXI6Ok5vblplcm8sIG1fcmVncy5yZWdUMiwgbV9yZWdzLnJlZ1QwKSk7IC8vIFdlIGNhbiBpZ25v
cmUgdXBwZXIgYml0cyBzaW5jZSBtb2R1bG8tNjQgaXMgcGVyZm9ybWVkLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>