<?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>161533</bug_id>
          
          <creation_ts>2016-09-02 09:24:59 -0700</creation_ts>
          <short_desc>REGRESSION(r205344): Hitting assertions under CachedResource::removeClient in a few tests (Requested by anttik on #webkit).</short_desc>
          <delta_ts>2016-09-02 09:28:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>161447</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1225783</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-02 09:24:59 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/205344 broke the build:
Hitting assertions under CachedResource::removeClient in a few tests (Requested by anttik on #webkit).

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

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225786</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-09-02 09:26:45 -0700</bug_when>
    <thetext>https://build.webkit.org/results/Apple%20Yosemite%20Debug%20WK2%20(Tests)/r205344%20(14752)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225787</commentid>
    <comment_count>3</comment_count>
      <attachid>287765</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-02 09:28:34 -0700</bug_when>
    <thetext>Comment on attachment 287765
ROLLOUT of r205344

Clearing flags on attachment: 287765

Committed r205346: &lt;http://trac.webkit.org/changeset/205346&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225788</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-02 09:28:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287765</attachid>
            <date>2016-09-02 09:25:59 -0700</date>
            <delta_ts>2016-09-02 09:28:34 -0700</delta_ts>
            <desc>ROLLOUT of r205344</desc>
            <filename>bug-161533-20160902092343.patch</filename>
            <type>text/plain</type>
            <size>32355</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjg1Njg3MGQyMDU4YzY5
NWFiOWZmY2RmOTg5Zjk2NDEyYmNmNTM5ZS4uMmE2OTU0NmQyZmE0ODk5NDRkMTk3ODI4MjQzYzMz
NDEwNGY4ODIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA5LTAyICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMjA1MzQ0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYxNTMzCisKKyAgICAgICAgSGl0dGluZyBhc3NlcnRpb25zIHVuZGVy
IENhY2hlZFJlc291cmNlOjpyZW1vdmVDbGllbnQgaW4gYSBmZXcKKyAgICAgICAgdGVzdHMgKFJl
cXVlc3RlZCBieSBhbnR0aWsgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdl
c2V0OgorCisgICAgICAgICJSZXZlcnNlIG93bmVyc2hpcCByZWxhdGlvbiBvZiBTdHlsZUNhY2hl
ZEltYWdlIGFuZAorICAgICAgICBDU1NJbWFnZVZhbHVlIgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxNDQ3CisgICAgICAgIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzIwNTM0NAorCiAyMDE2LTA5LTAyICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnNlIG93bmVyc2hpcCByZWxhdGlvbiBv
ZiBTdHlsZUNhY2hlZEltYWdlIGFuZCBDU1NJbWFnZVZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHAKaW5kZXggMTkwMTc4NTJhOWMwYzcwNjRjYzA3NTgwMTMy
ZDAwNGFiOGUwZjQ0MC4uYWU0YWMwNTliM2NhMDlmZjQ0Y2U3NTAzNzhjNTNjMjM5YzYwMzZiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmNwcApAQCAtMjYsNiAr
MjYsOCBAQAogI2luY2x1ZGUgIkNTU0ltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFn
ZS5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiU3R5bGVD
YWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIlN0eWxlSW1hZ2UuaCIKICNpbmNsdWRlICJTVkdDdXJz
b3JFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoQ29udGV4dC5oIgogI2luY2x1ZGUgIlNW
R05hbWVzLmgiCkBAIC0xMDcsMjggKzEwOSwyNSBAQCB2b2lkIENTU0N1cnNvckltYWdlVmFsdWU6
OmxvYWRJbWFnZShDYWNoZWRSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCBjb25zdCBSZXNvdXJjZQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGF1dG8qIGN1cnNvckVsZW1lbnQgPSB1
cGRhdGVDdXJzb3JFbGVtZW50KCpsb2FkZXIuZG9jdW1lbnQoKSkpIHsKLSAgICAgICAgaWYgKGN1
cnNvckVsZW1lbnQtPmhyZWYoKSAhPSBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPihtX2ltYWdlVmFs
dWUuZ2V0KCkpLnVybCgpKQotICAgICAgICAgICAgbV9pbWFnZVZhbHVlID0gQ1NTSW1hZ2VWYWx1
ZTo6Y3JlYXRlKGN1cnNvckVsZW1lbnQtPmhyZWYoKSk7Ci0gICAgfQotCiAgICAgZG93bmNhc3Q8
Q1NTSW1hZ2VWYWx1ZT4obV9pbWFnZVZhbHVlLmdldCgpKS5sb2FkSW1hZ2UobG9hZGVyLCBvcHRp
b25zKTsKIH0KIAotQ2FjaGVkSW1hZ2UqIENTU0N1cnNvckltYWdlVmFsdWU6OmNhY2hlZEltYWdl
KCkgY29uc3QKLXsKLSAgICBpZiAoaXM8Q1NTSW1hZ2VTZXRWYWx1ZT4obV9pbWFnZVZhbHVlLmdl
dCgpKSkKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0ltYWdlU2V0VmFsdWU+KG1faW1hZ2VW
YWx1ZS5nZXQoKSkuY2FjaGVkSW1hZ2UoKTsKLQotICAgIHJldHVybiBkb3duY2FzdDxDU1NJbWFn
ZVZhbHVlPihtX2ltYWdlVmFsdWUuZ2V0KCkpLmNhY2hlZEltYWdlKCk7Ci19Ci0KLWZsb2F0IENT
U0N1cnNvckltYWdlVmFsdWU6OnNjYWxlRmFjdG9yKCkgY29uc3QKK1N0eWxlQ2FjaGVkSW1hZ2Um
IENTU0N1cnNvckltYWdlVmFsdWU6OnN0eWxlSW1hZ2UoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50
KQogeworICAgIC8vIE5lZWQgdG8gZGVsZWdhdGUgY29tcGxldGVseSBzbyB0aGF0IGNoYW5nZXMg
aW4gZGV2aWNlIHNjYWxlIGZhY3RvciBjYW4gYmUgaGFuZGxlZCBhcHByb3ByaWF0ZWx5LgorICAg
IFN0eWxlQ2FjaGVkSW1hZ2UqIHN0eWxlSW1hZ2U7CiAgICAgaWYgKGlzPENTU0ltYWdlU2V0VmFs
dWU+KG1faW1hZ2VWYWx1ZS5nZXQoKSkpCi0gICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NJbWFn
ZVNldFZhbHVlPihtX2ltYWdlVmFsdWUuZ2V0KCkpLmJlc3RGaXRTY2FsZUZhY3RvcigpOworICAg
ICAgICBzdHlsZUltYWdlID0gJmRvd25jYXN0PENTU0ltYWdlU2V0VmFsdWU+KG1faW1hZ2VWYWx1
ZS5nZXQoKSkuc3R5bGVJbWFnZShkb2N1bWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChh
dXRvKiBjdXJzb3JFbGVtZW50ID0gdXBkYXRlQ3Vyc29yRWxlbWVudChkb2N1bWVudCkpIHsKKyAg
ICAgICAgICAgIGlmIChjdXJzb3JFbGVtZW50LT5ocmVmKCkgIT0gZG93bmNhc3Q8Q1NTSW1hZ2VW
YWx1ZT4obV9pbWFnZVZhbHVlLmdldCgpKS51cmwoKSkKKyAgICAgICAgICAgICAgICBtX2ltYWdl
VmFsdWUgPSBDU1NJbWFnZVZhbHVlOjpjcmVhdGUoY3Vyc29yRWxlbWVudC0+aHJlZigpKTsKKyAg
ICAgICAgfQorICAgICAgICBzdHlsZUltYWdlID0gJmRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1f
aW1hZ2VWYWx1ZS5nZXQoKSkuc3R5bGVJbWFnZSgpOworICAgIH0KKyAgICBzdHlsZUltYWdlLT5z
ZXRDU1NWYWx1ZSgqdGhpcyk7CiAKLSAgICByZXR1cm4gMTsKKyAgICByZXR1cm4gKnN0eWxlSW1h
Z2U7CiB9CiAKIGJvb2wgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0N1cnNv
ckltYWdlVmFsdWUmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0N1cnNvckltYWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDdXJzb3JJbWFn
ZVZhbHVlLmgKaW5kZXggZDZmYmRlZTdmZTc0Mzc2YTljNmQyZmRiMWNhMjRjMWM0MzQxMzVjZC4u
ZjhlMWVkYTc1ZDRjNTBmNzcwNWU4NGM3MzNlMWNkNDdmM2M4ZGQxOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oCkBAIC0zMSw2ICszMSw3IEBAIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIFNWR0N1cnNvckVsZW1lbnQ7CiBjbGFzcyBTVkdF
bGVtZW50OworY2xhc3MgU3R5bGVDYWNoZWRJbWFnZTsKIAogY2xhc3MgQ1NTQ3Vyc29ySW1hZ2VW
YWx1ZSBmaW5hbCA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJsaWM6CkBAIC01Myw5ICs1NCw3IEBA
IHB1YmxpYzoKICAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwogCiAgICAgdm9pZCBs
b2FkSW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXImLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlv
bnMmKTsKLSAgICBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UoKSBjb25zdDsKLQotICAgIGZsb2F0
IHNjYWxlRmFjdG9yKCkgY29uc3Q7CisgICAgU3R5bGVDYWNoZWRJbWFnZSYgc3R5bGVJbWFnZShj
b25zdCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCByZW1vdmVSZWZlcmVuY2VkRWxlbWVudChTVkdF
bGVtZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVy
YXRvclZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZUdlbmVyYXRvclZhbHVl
LmNwcAppbmRleCA0MTg2MzIxYzUwNWNhMThjZjA5NWFkMTY5NmVlNjY0ODY5ZDg0Y2I5Li4zZDU0
YjZhNDYwZmE5ODhkN2Q2NjI5YTBlZWU4MDgwMGYyODQ5ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlR2VuZXJhdG9yVmFsdWUuY3BwCkBAIC0yNTMsNyArMjUzLDcgQEAgQ2Fj
aGVkSW1hZ2UqIENTU0ltYWdlR2VuZXJhdG9yVmFsdWU6OmNhY2hlZEltYWdlRm9yQ1NTVmFsdWUo
Q1NTVmFsdWUmIHZhbHVlLCBDYWMKICAgICBpZiAoaXM8Q1NTSW1hZ2VWYWx1ZT4odmFsdWUpKSB7
CiAgICAgICAgIGF1dG8mIGltYWdlVmFsdWUgPSBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPih2YWx1
ZSk7CiAgICAgICAgIGltYWdlVmFsdWUubG9hZEltYWdlKGNhY2hlZFJlc291cmNlTG9hZGVyLCBv
cHRpb25zKTsKLSAgICAgICAgcmV0dXJuIGltYWdlVmFsdWUuY2FjaGVkSW1hZ2UoKTsKKyAgICAg
ICAgcmV0dXJuIGltYWdlVmFsdWUuc3R5bGVJbWFnZSgpLmNhY2hlZEltYWdlKCk7CiAgICAgfQog
ICAgIAogICAgIGlmIChpczxDU1NJbWFnZUdlbmVyYXRvclZhbHVlPih2YWx1ZSkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAppbmRleCBjYmU4NWNjMmIxMGY5YzUxODA1
YTU2MzUyNGI2NDI1ZDYwODc2MGYzLi5iYTRhZjFlNTdiZTAwMWIwNWU5ZmE0ZjVlN2I5ODBjMGNh
MTA3MmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zNSwx
NyArMzUsMjIgQEAKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTdHlsZUNhY2hl
ZEltYWdlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIENTU0ltYWdlU2V0VmFsdWU6OkNTU0ltYWdlU2V0VmFsdWUoKQogICAg
IDogQ1NTVmFsdWVMaXN0KEltYWdlU2V0Q2xhc3MsIENvbW1hU2VwYXJhdG9yKQorICAgICwgbV9h
Y2Nlc3NlZEJlc3RGaXRJbWFnZShmYWxzZSkKKyAgICAsIG1fc2NhbGVGYWN0b3IoMSkKIHsKIH0K
IAogQ1NTSW1hZ2VTZXRWYWx1ZTo6fkNTU0ltYWdlU2V0VmFsdWUoKQogeworICAgIGlmIChtX2lt
YWdlKQorICAgICAgICBtX2ltYWdlLT5kZXRhY2hGcm9tQ1NTVmFsdWUoKTsKIH0KIAogdm9pZCBD
U1NJbWFnZVNldFZhbHVlOjpmaWxsSW1hZ2VTZXQoKQpAQCAtNzQsMTQgKzc5LDExIEBAIHZvaWQg
Q1NTSW1hZ2VTZXRWYWx1ZTo6ZmlsbEltYWdlU2V0KCkKIAogQ1NTSW1hZ2VTZXRWYWx1ZTo6SW1h
Z2VXaXRoU2NhbGUgQ1NTSW1hZ2VTZXRWYWx1ZTo6YmVzdEltYWdlRm9yU2NhbGVGYWN0b3IoKQog
ewotICAgIGlmICghbV9pbWFnZXNJblNldC5zaXplKCkpCi0gICAgICAgIGZpbGxJbWFnZVNldCgp
OwotCiAgICAgSW1hZ2VXaXRoU2NhbGUgaW1hZ2U7CiAgICAgc2l6ZV90IG51bWJlck9mSW1hZ2Vz
ID0gbV9pbWFnZXNJblNldC5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1i
ZXJPZkltYWdlczsgKytpKSB7CiAgICAgICAgIGltYWdlID0gbV9pbWFnZXNJblNldC5hdChpKTsK
LSAgICAgICAgaWYgKGltYWdlLnNjYWxlRmFjdG9yID49IG1fZGV2aWNlU2NhbGVGYWN0b3IpCisg
ICAgICAgIGlmIChpbWFnZS5zY2FsZUZhY3RvciA+PSBtX3NjYWxlRmFjdG9yKQogICAgICAgICAg
ICAgcmV0dXJuIGltYWdlOwogICAgIH0KICAgICByZXR1cm4gaW1hZ2U7CkBAIC05MCwxMSArOTIs
MTYgQEAgQ1NTSW1hZ2VTZXRWYWx1ZTo6SW1hZ2VXaXRoU2NhbGUgQ1NTSW1hZ2VTZXRWYWx1ZTo6
YmVzdEltYWdlRm9yU2NhbGVGYWN0b3IoKQogdm9pZCBDU1NJbWFnZVNldFZhbHVlOjpsb2FkQmVz
dEZpdEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFJlc291cmNlTG9h
ZGVyT3B0aW9ucyYgb3B0aW9ucykKIHsKICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBsb2FkZXIu
ZG9jdW1lbnQoKTsKLSAgICB1cGRhdGVEZXZpY2VTY2FsZUZhY3RvcigqZG9jdW1lbnQpOwotICAg
IAorICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAgICAgbV9zY2Fs
ZUZhY3RvciA9IHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgZWxzZQorICAgICAgICBt
X3NjYWxlRmFjdG9yID0gMTsKKworICAgIGlmICghbV9pbWFnZXNJblNldC5zaXplKCkpCisgICAg
ICAgIGZpbGxJbWFnZVNldCgpOworCiAgICAgaWYgKG1fYWNjZXNzZWRCZXN0Rml0SW1hZ2UpCiAg
ICAgICAgIHJldHVybjsKLQogICAgIC8vIEZJWE1FOiBJbiB0aGUgZnV0dXJlLCB3ZSB3YW50IHRv
IHRha2UgbXVjaCBtb3JlIHRoYW4gZGV2aWNlU2NhbGVGYWN0b3IgaW50byBhY291bnQgaGVyZS4K
ICAgICAvLyBBbGwgZm9ybXMgb2Ygc2NhbGUgc2hvdWxkIGJlIGluY2x1ZGVkOiBQYWdlOjpwYWdl
U2NhbGVGYWN0b3IoKSwgRnJhbWU6OnBhZ2Vab29tRmFjdG9yKCksCiAgICAgLy8gYW5kIGFueSBD
U1MgdHJhbnNmb3Jtcy4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgx
Njk4CkBAIC0xMDUsMTkgKzExMiwzMCBAQCB2b2lkIENTU0ltYWdlU2V0VmFsdWU6OmxvYWRCZXN0
Rml0SW1hZ2UoQ2FjaGVkUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVzbwogICAgICAg
ICBBU1NFUlQoZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpOwogICAgICAgICB1cGRhdGVSZXF1
ZXN0Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0Lm11dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgKmRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpOwogICAg
IH0KLSAgICBtX2NhY2hlZEltYWdlID0gbG9hZGVyLnJlcXVlc3RJbWFnZShyZXF1ZXN0KTsKLSAg
ICBtX2Jlc3RGaXRJbWFnZVNjYWxlRmFjdG9yID0gaW1hZ2Uuc2NhbGVGYWN0b3I7Ci0gICAgbV9h
Y2Nlc3NlZEJlc3RGaXRJbWFnZSA9IHRydWU7CisgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxl
PENhY2hlZEltYWdlPiBjYWNoZWRJbWFnZSA9IGxvYWRlci5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkp
IHsKKyAgICAgICAgc3R5bGVJbWFnZSgqZG9jdW1lbnQpLnNldENhY2hlZEltYWdlKCpjYWNoZWRJ
bWFnZSwgaW1hZ2Uuc2NhbGVGYWN0b3IpOworICAgICAgICBtX2FjY2Vzc2VkQmVzdEZpdEltYWdl
ID0gdHJ1ZTsKKyAgICB9CiB9CiAKLXZvaWQgQ1NTSW1hZ2VTZXRWYWx1ZTo6dXBkYXRlRGV2aWNl
U2NhbGVGYWN0b3IoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQorU3R5bGVDYWNoZWRJbWFnZSYg
Q1NTSW1hZ2VTZXRWYWx1ZTo6c3R5bGVJbWFnZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCiB7
Ci0gICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBkb2N1bWVudC5wYWdlKCkgPyBkb2N1bWVu
dC5wYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCkgOiAxOwotICAgIGlmIChkZXZpY2VTY2FsZUZh
Y3RvciA9PSBtX2RldmljZVNjYWxlRmFjdG9yKQotICAgICAgICByZXR1cm47Ci0gICAgbV9kZXZp
Y2VTY2FsZUZhY3RvciA9IGRldmljZVNjYWxlRmFjdG9yOwotICAgIG1fYWNjZXNzZWRCZXN0Rml0
SW1hZ2UgPSBmYWxzZTsKLSAgICBtX2NhY2hlZEltYWdlID0gbnVsbHB0cjsKKyAgICBpZiAoIW1f
aW1hZ2UpCisgICAgICAgIG1faW1hZ2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoKnRoaXMp
OworICAgIGVsc2UgaWYgKCFtX2ltYWdlLT5pc1BlbmRpbmcoKSkgeworICAgICAgICBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvciA9IDE7CisgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQu
cGFnZSgpKQorICAgICAgICAgICAgZGV2aWNlU2NhbGVGYWN0b3IgPSBwYWdlLT5kZXZpY2VTY2Fs
ZUZhY3RvcigpOworCisgICAgICAgIC8vIElmIHRoZSBkZXZpY2VTY2FsZUZhY3RvciBoYXMgY2hh
bmdlZCwgd2UgbWF5IG5vdCBoYXZlIHRoZSBiZXN0IGltYWdlIGxvYWRlZCwgc28gd2UgaGF2ZSB0
byByZS1hc3Nlc3MuCisgICAgICAgIGlmIChkZXZpY2VTY2FsZUZhY3RvciAhPSBtX3NjYWxlRmFj
dG9yKSB7CisgICAgICAgICAgICBtX2FjY2Vzc2VkQmVzdEZpdEltYWdlID0gZmFsc2U7CisgICAg
ICAgICAgICBtX2ltYWdlLT5kZXRhY2hGcm9tQ1NTVmFsdWUoKTsKKyAgICAgICAgICAgIG1faW1h
Z2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoKnRoaXMpOworICAgICAgICB9CisgICAgfQor
CisgICAgcmV0dXJuICptX2ltYWdlOwogfQogCiBTdHJpbmcgQ1NTSW1hZ2VTZXRWYWx1ZTo6Y3Vz
dG9tQ1NTVGV4dCgpIGNvbnN0CkBAIC0xNTIsMTMgKzE3MCwxOCBAQCBTdHJpbmcgQ1NTSW1hZ2VT
ZXRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiAKIGJvb2wgQ1NTSW1hZ2VTZXRWYWx1ZTo6
dHJhdmVyc2VTdWJyZXNvdXJjZXMoY29uc3Qgc3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBDYWNo
ZWRSZXNvdXJjZSYpPiYgaGFuZGxlcikgY29uc3QKIHsKLSAgICBpZiAoIW1fY2FjaGVkSW1hZ2Up
CisgICAgaWYgKCFtX2ltYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgQ2FjaGVkSW1h
Z2UqIGNhY2hlZFJlc291cmNlID0gbV9pbWFnZS0+Y2FjaGVkSW1hZ2UoKTsKKyAgICBpZiAoIWNh
Y2hlZFJlc291cmNlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGhhbmRsZXIo
Km1fY2FjaGVkSW1hZ2UpOworICAgIHJldHVybiBoYW5kbGVyKCpjYWNoZWRSZXNvdXJjZSk7CiB9
CiAKIENTU0ltYWdlU2V0VmFsdWU6OkNTU0ltYWdlU2V0VmFsdWUoY29uc3QgQ1NTSW1hZ2VTZXRW
YWx1ZSYgY2xvbmVGcm9tKQogICAgIDogQ1NTVmFsdWVMaXN0KGNsb25lRnJvbSkKKyAgICAsIG1f
YWNjZXNzZWRCZXN0Rml0SW1hZ2UoZmFsc2UpCisgICAgLCBtX3NjYWxlRmFjdG9yKDEpCiB7CiAg
ICAgLy8gTm9uLUNTU1ZhbHVlTGlzdCBkYXRhIGlzIG5vdCBhY2Nlc3NpYmxlIHRocm91Z2ggQ1NT
IE9NLCBubyBuZWVkIHRvIGNsb25lLgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ltYWdlU2V0VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVl
LmgKaW5kZXggZDM0YWZiYjdmYzg0NDY5ZjUwNDYxZTdkZjYzYzY1OTAwOTU3ZjZjMS4uMjdlODQ2
NTI1ZGFmYjNlNzc2MGEyOTU3ZGI2ZTI1MWNiM2JiMzk3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
SW1hZ2VTZXRWYWx1ZS5oCkBAIC0yNywxNyArMjcsMTggQEAKICNkZWZpbmUgQ1NTSW1hZ2VTZXRW
YWx1ZV9oCiAKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKLSNpbmNsdWRlICJDYWNoZWRJbWFn
ZUNsaWVudC5oIgotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7CiBjbGFzcyBEb2N1bWVu
dDsKK2NsYXNzIFN0eWxlQ2FjaGVkSW1hZ2U7CitjbGFzcyBTdHlsZUltYWdlOwogc3RydWN0IFJl
c291cmNlTG9hZGVyT3B0aW9uczsKIAogY2xhc3MgQ1NTSW1hZ2VTZXRWYWx1ZSBmaW5hbCA6IHB1
YmxpYyBDU1NWYWx1ZUxpc3QgewogcHVibGljOgorCiAgICAgc3RhdGljIFJlZjxDU1NJbWFnZVNl
dFZhbHVlPiBjcmVhdGUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ1NT
SW1hZ2VTZXRWYWx1ZSgpKTsKQEAgLTQ1LDExICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgfkNTU0lt
YWdlU2V0VmFsdWUoKTsKIAogICAgIHZvaWQgbG9hZEJlc3RGaXRJbWFnZShDYWNoZWRSZXNvdXJj
ZUxvYWRlciYsIGNvbnN0IFJlc291cmNlTG9hZGVyT3B0aW9ucyYpOwotICAgIENhY2hlZEltYWdl
KiBjYWNoZWRJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVkSW1hZ2UuZ2V0KCk7IH0KKyAg
ICBTdHlsZUNhY2hlZEltYWdlJiBzdHlsZUltYWdlKGNvbnN0IERvY3VtZW50Jik7CiAKICAgICBT
dHJpbmcgY3VzdG9tQ1NTVGV4dCgpIGNvbnN0OwogCi0gICAgZmxvYXQgYmVzdEZpdFNjYWxlRmFj
dG9yKCkgY29uc3QgeyByZXR1cm4gbV9iZXN0Rml0SW1hZ2VTY2FsZUZhY3RvcjsgfTsKKyAgICBi
b29sIGlzUGVuZGluZygpIGNvbnN0IHsgcmV0dXJuICFtX2FjY2Vzc2VkQmVzdEZpdEltYWdlOyB9
CiAKICAgICBzdHJ1Y3QgSW1hZ2VXaXRoU2NhbGUgewogICAgICAgICBTdHJpbmcgaW1hZ2VVUkw7
CkBAIC02MCw4ICs2MSw2IEBAIHB1YmxpYzoKIAogICAgIFJlZjxDU1NJbWFnZVNldFZhbHVlPiBj
bG9uZUZvckNTU09NKCkgY29uc3Q7CiAKLSAgICB2b2lkIHVwZGF0ZURldmljZVNjYWxlRmFjdG9y
KGNvbnN0IERvY3VtZW50Jik7Ci0KIHByb3RlY3RlZDoKICAgICBJbWFnZVdpdGhTY2FsZSBiZXN0
SW1hZ2VGb3JTY2FsZUZhY3RvcigpOwogCkBAIC03MiwxMCArNzEsMTIgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGZpbGxJbWFnZVNldCgpOwogICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlQnlT
Y2FsZUZhY3RvcihJbWFnZVdpdGhTY2FsZSBmaXJzdCwgSW1hZ2VXaXRoU2NhbGUgc2Vjb25kKSB7
IHJldHVybiBmaXJzdC5zY2FsZUZhY3RvciA8IHNlY29uZC5zY2FsZUZhY3RvcjsgfQogCi0gICAg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkSW1hZ2U+IG1fY2FjaGVkSW1hZ2U7Ci0gICAgYm9v
bCBtX2FjY2Vzc2VkQmVzdEZpdEltYWdlIHsgZmFsc2UgfTsKLSAgICBmbG9hdCBtX2Jlc3RGaXRJ
bWFnZVNjYWxlRmFjdG9yIHsgMSB9OwotICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVGYWN0b3IgeyAx
IH07CisgICAgUmVmUHRyPFN0eWxlQ2FjaGVkSW1hZ2U+IG1faW1hZ2U7CisgICAgYm9vbCBtX2Fj
Y2Vzc2VkQmVzdEZpdEltYWdlOworCisgICAgLy8gVGhpcyByZXByZXNlbnRzIHRoZSBzY2FsZSBm
YWN0b3IgdGhhdCB3ZSB1c2VkIHRvIGZpbmQgdGhlIGJlc3QgZml0IGltYWdlLiBJdCBkb2VzIG5v
dCBuZWNlc3NhcmlseQorICAgIC8vIGNvcnJlc3BvbmQgdG8gdGhlIHNjYWxlIGZhY3RvciBvZiB0
aGUgYmVzdCBmaXQgaW1hZ2UuCisgICAgZmxvYXQgbV9zY2FsZUZhY3RvcjsKIAogICAgIFZlY3Rv
cjxJbWFnZVdpdGhTY2FsZT4gbV9pbWFnZXNJblNldDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTSW1hZ2VWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1h
Z2VWYWx1ZS5jcHAKaW5kZXggYmM5ZTNiNjhmMGIyNjE1YzkzMDkyN2I1ODZlNmJiMDA3ODMzZDZk
YS4uYzhhZWUwZDI1NDk3NDYyM2E3Njk2MjkzZTkxNDU0ZjIyNGFmZTAwYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NJbWFnZVZhbHVlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCisj
aW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQ1LDE5ICs0NiwzMCBAQCBDU1NJbWFnZVZhbHVlOjpDU1NJbWFnZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgdXJsKQogQ1NTSW1hZ2VWYWx1ZTo6Q1NTSW1hZ2VWYWx1ZShDYWNoZWRJbWFnZSYgaW1hZ2Up
CiAgICAgOiBDU1NWYWx1ZShJbWFnZUNsYXNzKQogICAgICwgbV91cmwoaW1hZ2UudXJsKCkpCi0g
ICAgLCBtX2NhY2hlZEltYWdlKCZpbWFnZSkKKyAgICAsIG1faW1hZ2UoU3R5bGVDYWNoZWRJbWFn
ZTo6Y3JlYXRlKCp0aGlzKSkKICAgICAsIG1fYWNjZXNzZWRJbWFnZSh0cnVlKQogeworICAgIG1f
aW1hZ2UtPnNldENhY2hlZEltYWdlKGltYWdlKTsKIH0KIAogCiBDU1NJbWFnZVZhbHVlOjp+Q1NT
SW1hZ2VWYWx1ZSgpCiB7CisgICAgaWYgKG1faW1hZ2UpCisgICAgICAgIG1faW1hZ2UtPmRldGFj
aEZyb21DU1NWYWx1ZSgpOwogfQogCiBib29sIENTU0ltYWdlVmFsdWU6OmlzUGVuZGluZygpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuICFtX2FjY2Vzc2VkSW1hZ2U7CisgICAgcmV0dXJuICFtX2ltYWdl
IHx8ICFtX2ltYWdlLT5jYWNoZWRJbWFnZSgpOworfQorCitTdHlsZUNhY2hlZEltYWdlJiBDU1NJ
bWFnZVZhbHVlOjpzdHlsZUltYWdlKCkKK3sKKyAgICBpZiAoIW1faW1hZ2UpCisgICAgICAgIG1f
aW1hZ2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUoKnRoaXMpOworCisgICAgcmV0dXJuICpt
X2ltYWdlOwogfQogCiB2b2lkIENTU0ltYWdlVmFsdWU6OmxvYWRJbWFnZShDYWNoZWRSZXNvdXJj
ZUxvYWRlciYgbG9hZGVyLCBjb25zdCBSZXNvdXJjZUxvYWRlck9wdGlvbnMmIG9wdGlvbnMpCkBA
IC03NiwxNCArODgsMTggQEAgdm9pZCBDU1NJbWFnZVZhbHVlOjpsb2FkSW1hZ2UoQ2FjaGVkUmVz
b3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgUmVzb3VyY2VMb2FkZXIKICAgICAgICAgQVNTRVJU
KGxvYWRlci5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsKICAgICAgICAgdXBkYXRlUmVx
dWVzdEZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdC5tdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksICps
b2FkZXIuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgb3B0aW9ucy5hbGxvd0NyZWRlbnRp
YWxzKTsKICAgICB9Ci0gICAgbV9jYWNoZWRJbWFnZSA9IGxvYWRlci5yZXF1ZXN0SW1hZ2UocmVx
dWVzdCk7CisgICAgaWYgKENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZEltYWdlPiBjYWNoZWRJ
bWFnZSA9IGxvYWRlci5yZXF1ZXN0SW1hZ2UocmVxdWVzdCkpCisgICAgICAgIHN0eWxlSW1hZ2Uo
KS5zZXRDYWNoZWRJbWFnZSgqY2FjaGVkSW1hZ2UpOwogfQogCiBib29sIENTU0ltYWdlVmFsdWU6
OnRyYXZlcnNlU3VicmVzb3VyY2VzKGNvbnN0IHN0ZDo6ZnVuY3Rpb248Ym9vbCAoY29uc3QgQ2Fj
aGVkUmVzb3VyY2UmKT4mIGhhbmRsZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2NhY2hlZEltYWdl
KQorICAgIGlmICghbV9pbWFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIENhY2hlZFJl
c291cmNlKiBjYWNoZWRSZXNvdXJjZSA9IG1faW1hZ2UtPmNhY2hlZEltYWdlKCk7CisgICAgaWYg
KCFjYWNoZWRSZXNvdXJjZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBoYW5k
bGVyKCptX2NhY2hlZEltYWdlKTsKKyAgICByZXR1cm4gaGFuZGxlcigqY2FjaGVkUmVzb3VyY2Up
OwogfQogCiBib29sIENTU0ltYWdlVmFsdWU6OmVxdWFscyhjb25zdCBDU1NJbWFnZVZhbHVlJiBv
dGhlcikgY29uc3QKQEAgLTEwNiw5ICsxMjIsNyBAQCBSZWY8Q1NTVmFsdWU+IENTU0ltYWdlVmFs
dWU6OmNsb25lRm9yQ1NTT00oKSBjb25zdAogCiBib29sIENTU0ltYWdlVmFsdWU6Omtub3duVG9C
ZU9wYXF1ZShjb25zdCBSZW5kZXJFbGVtZW50KiByZW5kZXJlcikgY29uc3QKIHsKLSAgICBpZiAo
IW1fY2FjaGVkSW1hZ2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gbV9jYWNo
ZWRJbWFnZS0+Y3VycmVudEZyYW1lS25vd25Ub0JlT3BhcXVlKHJlbmRlcmVyKTsKKyAgICByZXR1
cm4gbV9pbWFnZSA/IG1faW1hZ2UtPmtub3duVG9CZU9wYXF1ZShyZW5kZXJlcikgOiBmYWxzZTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltYWdlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVZhbHVlLmgK
aW5kZXggYTVkZjc5Y2IzZTNhZDRlOThmMjY3NzYwNDgwNWY2ODEwYWYzMWExMS4uMGE4ZGU5NWVl
ZTdlMWUxZDEzZjQzNjBiZDhlYmE1MTRkOTViN2VlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0ltYWdlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VW
YWx1ZS5oCkBAIC0yMiw3ICsyMiw2IEBACiAjZGVmaW5lIENTU0ltYWdlVmFsdWVfaAogCiAjaW5j
bHVkZSAiQ1NTVmFsdWUuaCIKLSNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzAsNiArMjks
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hl
ZFJlc291cmNlTG9hZGVyOwogY2xhc3MgRWxlbWVudDsKK2NsYXNzIFN0eWxlQ2FjaGVkSW1hZ2U7
CiBjbGFzcyBSZW5kZXJFbGVtZW50Owogc3RydWN0IFJlc291cmNlTG9hZGVyT3B0aW9uczsKIApA
QCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzUGVuZGluZygpIGNvbnN0Owog
ICAgIHZvaWQgbG9hZEltYWdlKENhY2hlZFJlc291cmNlTG9hZGVyJiwgY29uc3QgUmVzb3VyY2VM
b2FkZXJPcHRpb25zJik7Ci0gICAgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jYWNoZWRJbWFnZS5nZXQoKTsgfQorICAgIFN0eWxlQ2FjaGVkSW1hZ2UmIHN0eWxl
SW1hZ2UoKTsKIAogICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7
IH0KIApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IENTU0ltYWdlVmFs
dWUoQ2FjaGVkSW1hZ2UmKTsKIAogICAgIFN0cmluZyBtX3VybDsKLSAgICBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRJbWFnZT4gbV9jYWNoZWRJbWFnZTsKKyAgICBSZWZQdHI8U3R5bGVDYWNo
ZWRJbWFnZT4gbV9pbWFnZTsKICAgICBib29sIG1fYWNjZXNzZWRJbWFnZTsKICAgICBBdG9taWNT
dHJpbmcgbV9pbml0aWF0b3JOYW1lOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUJ1aWxkZXJDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXJD
dXN0b20uaAppbmRleCA3YTE3MjkwYTAyZmI4ODg4YjE2ZWI4MWVkYThlMTAwNjNjOGQ5YmRiLi5i
MWM1NTIzODViOGFmZjQ2MWI1Y2MwODg5YzAyNTk3MDM1YTIwZDNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlQnVpbGRlckN1c3RvbS5oCkBAIC00Niw3ICs0Niw2IEBACiAjaW5jbHVkZSAiU1ZH
RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVC
dWlsZGVyQ29udmVydGVyLmgiCi0jaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5oIgogI2luY2x1
ZGUgIlN0eWxlRm9udFNpemVGdW5jdGlvbnMuaCIKICNpbmNsdWRlICJTdHlsZUdlbmVyYXRlZElt
YWdlLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAtMTMxNCwxMiArMTMxMywxMiBA
QCBpbmxpbmUgdm9pZCBTdHlsZUJ1aWxkZXJDdXN0b206OmFwcGx5VmFsdWVDb250ZW50KFN0eWxl
UmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsCiAgICAgICAgICAgICAgICAgc3R5bGVSZXNvbHZlci5z
dHlsZSgpLT5zZXRDb250ZW50KFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShkb3duY2FzdDxD
U1NJbWFnZUdlbmVyYXRvclZhbHVlPihpdGVtLmdldCgpKSksIGRpZFNldCk7CiAgICAgICAgICAg
ICBkaWRTZXQgPSB0cnVlOwogICAgICAgICB9IGVsc2UgaWYgKGlzPENTU0ltYWdlU2V0VmFsdWU+
KGl0ZW0uZ2V0KCkpKSB7Ci0gICAgICAgICAgICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldENv
bnRlbnQoc3R5bGVSZXNvbHZlci5zdHlsZUNhY2hlZEltYWdlRnJvbVZhbHVlKENTU1Byb3BlcnR5
Q29udGVudCwgaXRlbSksIGRpZFNldCk7CisgICAgICAgICAgICBzdHlsZVJlc29sdmVyLnN0eWxl
KCktPnNldENvbnRlbnQoc3R5bGVSZXNvbHZlci5zZXRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJv
cGVydHlDb250ZW50LCBkb3duY2FzdDxDU1NJbWFnZVNldFZhbHVlPihpdGVtLmdldCgpKSksIGRp
ZFNldCk7CiAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAg
aWYgKGlzPENTU0ltYWdlVmFsdWU+KGl0ZW0uZ2V0KCkpKSB7Ci0gICAgICAgICAgICBzdHlsZVJl
c29sdmVyLnN0eWxlKCktPnNldENvbnRlbnQoc3R5bGVSZXNvbHZlci5zdHlsZUNhY2hlZEltYWdl
RnJvbVZhbHVlKENTU1Byb3BlcnR5Q29udGVudCwgaXRlbSksIGRpZFNldCk7CisgICAgICAgICAg
ICBzdHlsZVJlc29sdmVyLnN0eWxlKCktPnNldENvbnRlbnQoc3R5bGVSZXNvbHZlci5jYWNoZWRP
clBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlDb250ZW50LCBkb3duY2FzdDxDU1NJbWFnZVZh
bHVlPihpdGVtLmdldCgpKSksIGRpZFNldCk7CiAgICAgICAgICAgICBkaWRTZXQgPSB0cnVlOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAppbmRleCBmNDEyM2JiZjUxODMyZTZiMmZkMTNhNTdlNjk4MWMzODNmZWRmNDAxLi4z
NTk0YjJhYThmMDE3M2IxODk2ZGYzMmEzOGRjODE3NmRjYmEyYTE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xNzAyLDI3ICsxNzAyLDMzIEBAIFJlZlB0cjxDU1NWYWx1
ZT4gU3R5bGVSZXNvbHZlcjo6cmVzb2x2ZWRWYXJpYWJsZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJv
cElELCBjb25zCiAKIFJlZlB0cjxTdHlsZUltYWdlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUltYWdl
KENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTU1ZhbHVlJiB2YWx1ZSkKIHsKKyAgICBpZiAoaXM8
Q1NTSW1hZ2VWYWx1ZT4odmFsdWUpKQorICAgICAgICByZXR1cm4gY2FjaGVkT3JQZW5kaW5nRnJv
bVZhbHVlKHByb3BlcnR5LCBkb3duY2FzdDxDU1NJbWFnZVZhbHVlPih2YWx1ZSkpOworCiAgICAg
aWYgKGlzPENTU0ltYWdlR2VuZXJhdG9yVmFsdWU+KHZhbHVlKSkgewogICAgICAgICBpZiAoaXM8
Q1NTR3JhZGllbnRWYWx1ZT4odmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIHN0eWxlR2VuZXJh
dGVkSW1hZ2VGcm9tVmFsdWUocHJvcGVydHksICpkb3duY2FzdDxDU1NHcmFkaWVudFZhbHVlPih2
YWx1ZSkuZ3JhZGllbnRXaXRoU3R5bGVzUmVzb2x2ZWQodGhpcykpOwotICAgICAgICByZXR1cm4g
c3R5bGVHZW5lcmF0ZWRJbWFnZUZyb21WYWx1ZShwcm9wZXJ0eSwgZG93bmNhc3Q8Q1NTSW1hZ2VH
ZW5lcmF0b3JWYWx1ZT4odmFsdWUpKTsKKyAgICAgICAgICAgIHJldHVybiBnZW5lcmF0ZWRPclBl
bmRpbmdGcm9tVmFsdWUocHJvcGVydHksICpkb3duY2FzdDxDU1NHcmFkaWVudFZhbHVlPih2YWx1
ZSkuZ3JhZGllbnRXaXRoU3R5bGVzUmVzb2x2ZWQodGhpcykpOworICAgICAgICByZXR1cm4gZ2Vu
ZXJhdGVkT3JQZW5kaW5nRnJvbVZhbHVlKHByb3BlcnR5LCBkb3duY2FzdDxDU1NJbWFnZUdlbmVy
YXRvclZhbHVlPih2YWx1ZSkpOwogICAgIH0KIAotICAgIGlmIChpczxDU1NJbWFnZVZhbHVlPih2
YWx1ZSkgfHwgaXM8Q1NTSW1hZ2VTZXRWYWx1ZT4odmFsdWUpIHx8IGlzPENTU0N1cnNvckltYWdl
VmFsdWU+KHZhbHVlKSkKLSAgICAgICAgcmV0dXJuIHN0eWxlQ2FjaGVkSW1hZ2VGcm9tVmFsdWUo
cHJvcGVydHksIHZhbHVlKTsKKyAgICBpZiAoaXM8Q1NTSW1hZ2VTZXRWYWx1ZT4odmFsdWUpKQor
ICAgICAgICByZXR1cm4gc2V0T3JQZW5kaW5nRnJvbVZhbHVlKHByb3BlcnR5LCBkb3duY2FzdDxD
U1NJbWFnZVNldFZhbHVlPih2YWx1ZSkpOworCisgICAgaWYgKGlzPENTU0N1cnNvckltYWdlVmFs
dWU+KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGN1cnNvck9yUGVuZGluZ0Zyb21WYWx1ZShwcm9w
ZXJ0eSwgZG93bmNhc3Q8Q1NTQ3Vyc29ySW1hZ2VWYWx1ZT4odmFsdWUpKTsKIAogICAgIHJldHVy
biBudWxscHRyOwogfQogCi1SZWY8U3R5bGVDYWNoZWRJbWFnZT4gU3R5bGVSZXNvbHZlcjo6c3R5
bGVDYWNoZWRJbWFnZUZyb21WYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1NWYWx1ZSYg
dmFsdWUpCitSZWY8U3R5bGVJbWFnZT4gU3R5bGVSZXNvbHZlcjo6Y2FjaGVkT3JQZW5kaW5nRnJv
bVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTU0ltYWdlVmFsdWUmIHZhbHVlKQogewot
ICAgIGF1dG8gaW1hZ2UgPSBTdHlsZUNhY2hlZEltYWdlOjpjcmVhdGUodmFsdWUpOworICAgIFJl
ZjxTdHlsZUltYWdlPiBpbWFnZSA9IHZhbHVlLnN0eWxlSW1hZ2UoKTsKICAgICBpZiAoaW1hZ2Ut
PmlzUGVuZGluZygpKQogICAgICAgICBtX3N0YXRlLmVuc3VyZVBlbmRpbmdSZXNvdXJjZXMoKS5w
ZW5kaW5nSW1hZ2VzLnNldChwcm9wZXJ0eSwgJnZhbHVlKTsKICAgICByZXR1cm4gaW1hZ2U7CiB9
CiAKLVJlZjxTdHlsZUdlbmVyYXRlZEltYWdlPiBTdHlsZVJlc29sdmVyOjpzdHlsZUdlbmVyYXRl
ZEltYWdlRnJvbVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHksIENTU0ltYWdlR2VuZXJhdG9y
VmFsdWUmIHZhbHVlKQorUmVmPFN0eWxlSW1hZ2U+IFN0eWxlUmVzb2x2ZXI6OmdlbmVyYXRlZE9y
UGVuZGluZ0Zyb21WYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1NJbWFnZUdlbmVyYXRv
clZhbHVlJiB2YWx1ZSkKIHsKICAgICBpZiAoaXM8Q1NTRmlsdGVySW1hZ2VWYWx1ZT4odmFsdWUp
KSB7CiAgICAgICAgIC8vIEZpbHRlckltYWdlIG5lZWRzIHRvIGNhbGN1bGF0ZSBGaWx0ZXJPcGVy
YXRpb25zLgpAQCAtMTczNCw2ICsxNzQwLDIyIEBAIFJlZjxTdHlsZUdlbmVyYXRlZEltYWdlPiBT
dHlsZVJlc29sdmVyOjpzdHlsZUdlbmVyYXRlZEltYWdlRnJvbVZhbHVlKENTU1Byb3BlcnR5CiAg
ICAgcmV0dXJuIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZSh2YWx1ZSk7CiB9CiAKK1JlZlB0
cjxTdHlsZUltYWdlPiBTdHlsZVJlc29sdmVyOjpzZXRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSwgQ1NTSW1hZ2VTZXRWYWx1ZSYgdmFsdWUpCit7CisgICAgYXV0byYg
aW1hZ2UgPSB2YWx1ZS5zdHlsZUltYWdlKGRvY3VtZW50KCkpOworICAgIGlmIChpbWFnZS5pc1Bl
bmRpbmcoKSkKKyAgICAgICAgbV9zdGF0ZS5lbnN1cmVQZW5kaW5nUmVzb3VyY2VzKCkucGVuZGlu
Z0ltYWdlcy5zZXQocHJvcGVydHksICZ2YWx1ZSk7CisgICAgcmV0dXJuICZpbWFnZTsKK30KKwor
UmVmUHRyPFN0eWxlSW1hZ2U+IFN0eWxlUmVzb2x2ZXI6OmN1cnNvck9yUGVuZGluZ0Zyb21WYWx1
ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5LCBDU1NDdXJzb3JJbWFnZVZhbHVlJiB2YWx1ZSkKK3sK
KyAgICBhdXRvJiBpbWFnZSA9IHZhbHVlLnN0eWxlSW1hZ2UoZG9jdW1lbnQoKSk7CisgICAgaWYg
KGltYWdlLmlzUGVuZGluZygpKQorICAgICAgICBtX3N0YXRlLmVuc3VyZVBlbmRpbmdSZXNvdXJj
ZXMoKS5wZW5kaW5nSW1hZ2VzLnNldChwcm9wZXJ0eSwgJnZhbHVlKTsKKyAgICByZXR1cm4gJmlt
YWdlOworfQorCiAjaWYgRU5BQkxFKElPU19URVhUX0FVVE9TSVpJTkcpCiB2b2lkIFN0eWxlUmVz
b2x2ZXI6OmNoZWNrRm9yVGV4dFNpemVBZGp1c3QoUmVuZGVyU3R5bGUqIHN0eWxlKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggMjJlMWJlNjRiNDlhZTljZmRmN2I1NjVmMjAy
NzA4NGQ3OTFmYjE5MS4uM2YwMTE5NThhNjEyMTFkOTc1ZWI4MmViYjkzZGZmMjY3MDY1MDkwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC03Miw4ICs3Miw2IEBAIGNsYXNzIFJ1
bGVEYXRhOwogY2xhc3MgUnVsZVNldDsKIGNsYXNzIFNlbGVjdG9yRmlsdGVyOwogY2xhc3MgU2V0
dGluZ3M7Ci1jbGFzcyBTdHlsZUNhY2hlZEltYWdlOwotY2xhc3MgU3R5bGVHZW5lcmF0ZWRJbWFn
ZTsKIGNsYXNzIFN0eWxlSW1hZ2U7CiBjbGFzcyBTdHlsZUtleWZyYW1lOwogY2xhc3MgU3R5bGVQ
ZW5kaW5nSW1hZ2U7CkBAIC00NjAsOCArNDU4LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdGF0
ZSYgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAKICAgICBSZWZQdHI8U3R5bGVJ
bWFnZT4gc3R5bGVJbWFnZShDU1NQcm9wZXJ0eUlELCBDU1NWYWx1ZSYpOwotICAgIFJlZjxTdHls
ZUNhY2hlZEltYWdlPiBzdHlsZUNhY2hlZEltYWdlRnJvbVZhbHVlKENTU1Byb3BlcnR5SUQsIENT
U1ZhbHVlJik7Ci0gICAgUmVmPFN0eWxlR2VuZXJhdGVkSW1hZ2U+IHN0eWxlR2VuZXJhdGVkSW1h
Z2VGcm9tVmFsdWUoQ1NTUHJvcGVydHlJRCwgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYpOworICAg
IFJlZjxTdHlsZUltYWdlPiBjYWNoZWRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlJRCwg
Q1NTSW1hZ2VWYWx1ZSYpOworICAgIFJlZjxTdHlsZUltYWdlPiBnZW5lcmF0ZWRPclBlbmRpbmdG
cm9tVmFsdWUoQ1NTUHJvcGVydHlJRCwgQ1NTSW1hZ2VHZW5lcmF0b3JWYWx1ZSYpOworICAgIFJl
ZlB0cjxTdHlsZUltYWdlPiBzZXRPclBlbmRpbmdGcm9tVmFsdWUoQ1NTUHJvcGVydHlJRCwgQ1NT
SW1hZ2VTZXRWYWx1ZSYpOworICAgIFJlZlB0cjxTdHlsZUltYWdlPiBjdXJzb3JPclBlbmRpbmdG
cm9tVmFsdWUoQ1NTUHJvcGVydHlJRCwgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZSYpOwogCiAgICAgYm9v
bCBhcHBseVByb3BlcnR5VG9SZWd1bGFyU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLmFw
cGx5UHJvcGVydHlUb1JlZ3VsYXJTdHlsZSgpOyB9CiAgICAgYm9vbCBhcHBseVByb3BlcnR5VG9W
aXNpdGVkTGlua1N0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5hcHBseVByb3BlcnR5VG9W
aXNpdGVkTGlua1N0eWxlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZVNlcmlhbGl6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAK
aW5kZXggNTMxNmQ2N2RkNWQ0OGQ1MzYwMTI4OTY4N2Q5MjY5ZGY3NTlkZWU2My4uMjc5YjIwNmZl
ZGM5MTBmYTIzNmE3NGU0YjdkNzZkYmNlZDk3OTQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
U2VyaWFsaXplci5jcHAKQEAgLTMzMSw3ICszMzEsOSBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpy
ZXRyaWV2ZVJlc291cmNlc0ZvclByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBzdHls
ZQogICAgICAgICBpZiAoIWlzPENTU0ltYWdlVmFsdWU+KCpjc3NWYWx1ZSkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBhdXRvKiBpbWFnZSA9IGRvd25jYXN0PENTU0ltYWdlVmFs
dWU+KCpjc3NWYWx1ZSkuY2FjaGVkSW1hZ2UoKTsKKyAgICAgICAgYXV0byYgc3R5bGVJbWFnZSA9
IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KCpjc3NWYWx1ZSkuc3R5bGVJbWFnZSgpOworCisgICAg
ICAgIGF1dG8qIGltYWdlID0gc3R5bGVJbWFnZS5jYWNoZWRJbWFnZSgpOwogICAgICAgICBpZiAo
IWltYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKaW5kZXggZDg1ZDllMmI1YzQwOTk5NGQzMWI1OGJmMjI3
ODEwOTQ4MTRlNjVlMi4uYTBmMGFiZWU0OTRmYmI0MjRiMzBiZmNhOTJmZWYwNjI1ZTVkMzY1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKQEAgLTM4
MCwxMCArMzgwLDE2IEBAIGJvb2wgRmlsbExheWVyOjpoYXNGaXhlZEltYWdlKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBsYXllckltYWdlc0lkZW50
aWNhbChjb25zdCBGaWxsTGF5ZXImIGxheWVyMSwgY29uc3QgRmlsbExheWVyJiBsYXllcjIpCit7
CisgICAgLy8gV2UganVzdCBjYXJlIGFib3V0IHBvaW50ZXIgZXF1aXZhbGVuY3kuCisgICAgcmV0
dXJuIGxheWVyMS5pbWFnZSgpID09IGxheWVyMi5pbWFnZSgpOworfQorCiBib29sIEZpbGxMYXll
cjo6aW1hZ2VzSWRlbnRpY2FsKGNvbnN0IEZpbGxMYXllciogbGF5ZXIxLCBjb25zdCBGaWxsTGF5
ZXIqIGxheWVyMikKIHsKICAgICBmb3IgKDsgbGF5ZXIxICYmIGxheWVyMjsgbGF5ZXIxID0gbGF5
ZXIxLT5uZXh0KCksIGxheWVyMiA9IGxheWVyMi0+bmV4dCgpKSB7Ci0gICAgICAgIGlmICghYXJl
UG9pbnRpbmdUb0VxdWFsRGF0YShsYXllcjEtPmltYWdlKCksIGxheWVyMi0+aW1hZ2UoKSkpCisg
ICAgICAgIGlmICghbGF5ZXJJbWFnZXNJZGVudGljYWwoKmxheWVyMSwgKmxheWVyMikpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAKaW5kZXggYjFiYTY4YzM0MTAzNzVi
YjgxOTg0MTgyMjk4NTQ3MDM2ZTMwMTgyMC4uZmU2MmNjNzRlYTQzMGRlM2U4OGI1ZmRhZGM3MGRh
NzA0MWMxYTU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUNhY2hlZEltYWdlLmNwcApAQCAtMjQsMTY1ICsyNCwxMjggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlLmgiCiAKLSNpbmNsdWRlICJDU1NDdXJz
b3JJbWFnZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTSW1hZ2VTZXRWYWx1ZS5oIgotI2luY2x1ZGUg
IkNTU0ltYWdlVmFsdWUuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIlJl
bmRlckVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTdHlsZUNhY2hlZEltYWdl
OjpTdHlsZUNhY2hlZEltYWdlKENTU1ZhbHVlJiBjc3NWYWx1ZSkKLSAgICA6IG1fY3NzVmFsdWUo
Y3NzVmFsdWUpCisgICAgOiBtX2Nzc1ZhbHVlKCZjc3NWYWx1ZSkKIHsKLSAgICBBU1NFUlQoaXM8
Q1NTSW1hZ2VWYWx1ZT4obV9jc3NWYWx1ZSkgfHwgaXM8Q1NTSW1hZ2VTZXRWYWx1ZT4obV9jc3NW
YWx1ZSkgfHwgaXM8Q1NTQ3Vyc29ySW1hZ2VWYWx1ZT4obV9jc3NWYWx1ZSkpOwotCiAgICAgbV9p
c0NhY2hlZEltYWdlID0gdHJ1ZTsKIH0KIAogU3R5bGVDYWNoZWRJbWFnZTo6flN0eWxlQ2FjaGVk
SW1hZ2UoKQogeworICAgIGlmIChtX2ltYWdlKQorICAgICAgICBtX2ltYWdlLT5yZW1vdmVDbGll
bnQodGhpcyk7CiB9CiAKLWJvb2wgU3R5bGVDYWNoZWRJbWFnZTo6b3BlcmF0b3I9PShjb25zdCBT
dHlsZUltYWdlJiBvdGhlcikgY29uc3QKK3ZvaWQgU3R5bGVDYWNoZWRJbWFnZTo6c2V0Q2FjaGVk
SW1hZ2UoQ2FjaGVkSW1hZ2UmIGltYWdlLCBmbG9hdCBzY2FsZUZhY3RvcikKIHsKLSAgICBpZiAo
IWlzPFN0eWxlQ2FjaGVkSW1hZ2U+KG90aGVyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGF1dG8mIG90aGVyQ2FjaGVkID0gZG93bmNhc3Q8U3R5bGVDYWNoZWRJbWFnZT4ob3RoZXIpOwot
ICAgIGlmICgmb3RoZXJDYWNoZWQgPT0gdGhpcykKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
aWYgKG1fY3NzVmFsdWUucHRyKCkgPT0gb3RoZXJDYWNoZWQubV9jc3NWYWx1ZS5wdHIoKSkKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKG1fY2FjaGVkSW1hZ2UgJiYgbV9jYWNoZWRJbWFn
ZSA9PSBvdGhlckNhY2hlZC5tX2NhY2hlZEltYWdlKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICByZXR1cm4gZmFsc2U7Ci19Ci0KLUNhY2hlZEltYWdlKiBTdHlsZUNhY2hlZEltYWdlOjpjYWNo
ZWRJbWFnZSgpIGNvbnN0Ci17Ci0gICAgaWYgKCFtX2NhY2hlZEltYWdlKSB7Ci0gICAgICAgIGlm
IChpczxDU1NJbWFnZVZhbHVlPihtX2Nzc1ZhbHVlKSkgewotICAgICAgICAgICAgYXV0byYgaW1h
Z2VWYWx1ZSA9IGRvd25jYXN0PENTU0ltYWdlVmFsdWU+KG1fY3NzVmFsdWUuZ2V0KCkpOwotICAg
ICAgICAgICAgbV9jYWNoZWRJbWFnZSA9IGltYWdlVmFsdWUuY2FjaGVkSW1hZ2UoKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChpczxDU1NJbWFnZVNldFZhbHVlPihtX2Nzc1ZhbHVlKSkgewotICAgICAg
ICAgICAgYXV0byYgaW1hZ2VTZXRWYWx1ZSA9IGRvd25jYXN0PENTU0ltYWdlU2V0VmFsdWU+KG1f
Y3NzVmFsdWUuZ2V0KCkpOwotICAgICAgICAgICAgbV9jYWNoZWRJbWFnZSA9IGltYWdlU2V0VmFs
dWUuY2FjaGVkSW1hZ2UoKTsKLSAgICAgICAgICAgIG1fc2NhbGVGYWN0b3IgPSBpbWFnZVNldFZh
bHVlLmJlc3RGaXRTY2FsZUZhY3RvcigpOwotICAgICAgICB9IGVsc2UgaWYgKGlzPENTU0N1cnNv
ckltYWdlVmFsdWU+KG1fY3NzVmFsdWUuZ2V0KCkpKSB7Ci0gICAgICAgICAgICBhdXRvJiBjdXJz
b3JWYWx1ZSA9IGRvd25jYXN0PENTU0N1cnNvckltYWdlVmFsdWU+KG1fY3NzVmFsdWUuZ2V0KCkp
OwotICAgICAgICAgICAgbV9jYWNoZWRJbWFnZSA9IGN1cnNvclZhbHVlLmNhY2hlZEltYWdlKCk7
Ci0gICAgICAgICAgICBtX3NjYWxlRmFjdG9yID0gY3Vyc29yVmFsdWUuc2NhbGVGYWN0b3IoKTsK
LSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gbV9jYWNoZWRJbWFnZS5nZXQoKTsKKyAgICBB
U1NFUlQoIW1faW1hZ2UpOworICAgIG1faW1hZ2UgPSAmaW1hZ2U7CisgICAgbV9pbWFnZS0+YWRk
Q2xpZW50KHRoaXMpOworICAgIG1fc2NhbGVGYWN0b3IgPSBzY2FsZUZhY3RvcjsKIH0KIAogUGFz
c1JlZlB0cjxDU1NWYWx1ZT4gU3R5bGVDYWNoZWRJbWFnZTo6Y3NzVmFsdWUoKSBjb25zdAogewot
ICAgIHJldHVybiBjb25zdF9jYXN0PENTU1ZhbHVlKj4obV9jc3NWYWx1ZS5wdHIoKSk7CisgICAg
aWYgKG1fY3NzVmFsdWUpCisgICAgICAgIHJldHVybiBtX2Nzc1ZhbHVlOworICAgIHJldHVybiBD
U1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKG1faW1hZ2UtPnVybCgpLCBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1VSSSk7CiB9CiAKIGJvb2wgU3R5bGVDYWNoZWRJbWFnZTo6Y2FuUmVuZGVyKGNvbnN0
IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGZsb2F0IG11bHRpcGxpZXIpIGNvbnN0CiB7Ci0gICAg
YXV0byogaW1hZ2UgPSBjYWNoZWRJbWFnZSgpOwotICAgIGlmICghaW1hZ2UpCisgICAgaWYgKCFt
X2ltYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGltYWdlLT5jYW5SZW5k
ZXIocmVuZGVyZXIsIG11bHRpcGxpZXIpOworICAgIHJldHVybiBtX2ltYWdlLT5jYW5SZW5kZXIo
cmVuZGVyZXIsIG11bHRpcGxpZXIpOwogfQogCiBib29sIFN0eWxlQ2FjaGVkSW1hZ2U6OmlzUGVu
ZGluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX2NhY2hlZEltYWdlOworICAgIHJldHVybiAh
bV9pbWFnZTsKIH0KIAogYm9vbCBTdHlsZUNhY2hlZEltYWdlOjppc0xvYWRlZCgpIGNvbnN0CiB7
Ci0gICAgYXV0byogaW1hZ2UgPSBjYWNoZWRJbWFnZSgpOwotICAgIGlmICghaW1hZ2UpCisgICAg
aWYgKCFtX2ltYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIGltYWdlLT5p
c0xvYWRlZCgpOworICAgIHJldHVybiBtX2ltYWdlLT5pc0xvYWRlZCgpOwogfQogCiBib29sIFN0
eWxlQ2FjaGVkSW1hZ2U6OmVycm9yT2NjdXJyZWQoKSBjb25zdAogewotICAgIGF1dG8qIGltYWdl
ID0gY2FjaGVkSW1hZ2UoKTsKLSAgICBpZiAoIWltYWdlKQorICAgIGlmICghbV9pbWFnZSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBpbWFnZS0+ZXJyb3JPY2N1cnJlZCgpOwor
ICAgIHJldHVybiBtX2ltYWdlLT5lcnJvck9jY3VycmVkKCk7CiB9CiAKIEZsb2F0U2l6ZSBTdHls
ZUNhY2hlZEltYWdlOjppbWFnZVNpemUoY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGZs
b2F0IG11bHRpcGxpZXIpIGNvbnN0CiB7Ci0gICAgYXV0byogaW1hZ2UgPSBjYWNoZWRJbWFnZSgp
OwotICAgIGlmICghaW1hZ2UpCisgICAgaWYgKCFtX2ltYWdlKQogICAgICAgICByZXR1cm4geyB9
OwotICAgIEZsb2F0U2l6ZSBzaXplID0gaW1hZ2UtPmltYWdlU2l6ZUZvclJlbmRlcmVyKHJlbmRl
cmVyLCBtdWx0aXBsaWVyKTsKKyAgICBGbG9hdFNpemUgc2l6ZSA9IG1faW1hZ2UtPmltYWdlU2l6
ZUZvclJlbmRlcmVyKHJlbmRlcmVyLCBtdWx0aXBsaWVyKTsKICAgICBzaXplLnNjYWxlKDEgLyBt
X3NjYWxlRmFjdG9yKTsKICAgICByZXR1cm4gc2l6ZTsKIH0KIAogYm9vbCBTdHlsZUNhY2hlZElt
YWdlOjppbWFnZUhhc1JlbGF0aXZlV2lkdGgoKSBjb25zdAogewotICAgIGF1dG8qIGltYWdlID0g
Y2FjaGVkSW1hZ2UoKTsKLSAgICBpZiAoIWltYWdlKQorICAgIGlmICghbV9pbWFnZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBpbWFnZS0+aW1hZ2VIYXNSZWxhdGl2ZVdpZHRo
KCk7CisgICAgcmV0dXJuIG1faW1hZ2UtPmltYWdlSGFzUmVsYXRpdmVXaWR0aCgpOwogfQogCiBi
b29sIFN0eWxlQ2FjaGVkSW1hZ2U6OmltYWdlSGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdAogewot
ICAgIGF1dG8qIGltYWdlID0gY2FjaGVkSW1hZ2UoKTsKLSAgICBpZiAoIWltYWdlKQorICAgIGlm
ICghbV9pbWFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBpbWFnZS0+aW1h
Z2VIYXNSZWxhdGl2ZUhlaWdodCgpOworICAgIHJldHVybiBtX2ltYWdlLT5pbWFnZUhhc1JlbGF0
aXZlSGVpZ2h0KCk7CiB9CiAKIHZvaWQgU3R5bGVDYWNoZWRJbWFnZTo6Y29tcHV0ZUludHJpbnNp
Y0RpbWVuc2lvbnMoY29uc3QgUmVuZGVyRWxlbWVudCosIExlbmd0aCYgaW50cmluc2ljV2lkdGgs
IExlbmd0aCYgaW50cmluc2ljSGVpZ2h0LCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKQogewot
ICAgIGF1dG8qIGltYWdlID0gY2FjaGVkSW1hZ2UoKTsKLSAgICBpZiAoIWltYWdlKQorICAgIGlm
ICghbV9pbWFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIGltYWdlLT5jb21wdXRlSW50cmluc2lj
RGltZW5zaW9ucyhpbnRyaW5zaWNXaWR0aCwgaW50cmluc2ljSGVpZ2h0LCBpbnRyaW5zaWNSYXRp
byk7CisgICAgbV9pbWFnZS0+Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoaW50cmluc2ljV2lk
dGgsIGludHJpbnNpY0hlaWdodCwgaW50cmluc2ljUmF0aW8pOwogfQogCiBib29sIFN0eWxlQ2Fj
aGVkSW1hZ2U6OnVzZXNJbWFnZUNvbnRhaW5lclNpemUoKSBjb25zdAogewotICAgIGF1dG8qIGlt
YWdlID0gY2FjaGVkSW1hZ2UoKTsKLSAgICBpZiAoIWltYWdlKQorICAgIGlmICghbV9pbWFnZSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBpbWFnZS0+dXNlc0ltYWdlQ29udGFp
bmVyU2l6ZSgpOworICAgIHJldHVybiBtX2ltYWdlLT51c2VzSW1hZ2VDb250YWluZXJTaXplKCk7
CiB9CiAKIHZvaWQgU3R5bGVDYWNoZWRJbWFnZTo6c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVy
KGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBGbG9hdFNpemUmIGltYWdlQ29u
dGFpbmVyU2l6ZSwgZmxvYXQgaW1hZ2VDb250YWluZXJab29tRmFjdG9yKQogewotICAgIGF1dG8q
IGltYWdlID0gY2FjaGVkSW1hZ2UoKTsKLSAgICBpZiAoIWltYWdlKQorICAgIGlmICghbV9pbWFn
ZSkKICAgICAgICAgcmV0dXJuOwotICAgIGltYWdlLT5zZXRDb250YWluZXJTaXplRm9yUmVuZGVy
ZXIocmVuZGVyZXIsIExheW91dFNpemUoaW1hZ2VDb250YWluZXJTaXplKSwgaW1hZ2VDb250YWlu
ZXJab29tRmFjdG9yKTsKKyAgICBtX2ltYWdlLT5zZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIo
cmVuZGVyZXIsIExheW91dFNpemUoaW1hZ2VDb250YWluZXJTaXplKSwgaW1hZ2VDb250YWluZXJa
b29tRmFjdG9yKTsKIH0KIAogdm9pZCBTdHlsZUNhY2hlZEltYWdlOjphZGRDbGllbnQoUmVuZGVy
RWxlbWVudCogcmVuZGVyZXIpCiB7Ci0gICAgYXV0byogaW1hZ2UgPSBjYWNoZWRJbWFnZSgpOwot
ICAgIGlmICghaW1hZ2UpCisgICAgaWYgKCFtX2ltYWdlKQogICAgICAgICByZXR1cm47Ci0gICAg
aW1hZ2UtPmFkZENsaWVudChyZW5kZXJlcik7CisgICAgbV9pbWFnZS0+YWRkQ2xpZW50KHJlbmRl
cmVyKTsKIH0KIAogdm9pZCBTdHlsZUNhY2hlZEltYWdlOjpyZW1vdmVDbGllbnQoUmVuZGVyRWxl
bWVudCogcmVuZGVyZXIpCiB7Ci0gICAgYXV0byogaW1hZ2UgPSBjYWNoZWRJbWFnZSgpOwotICAg
IGlmICghaW1hZ2UpCisgICAgaWYgKCFtX2ltYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgaW1h
Z2UtPnJlbW92ZUNsaWVudChyZW5kZXJlcik7CisgICAgbV9pbWFnZS0+cmVtb3ZlQ2xpZW50KHJl
bmRlcmVyKTsKIH0KIAogUmVmUHRyPEltYWdlPiBTdHlsZUNhY2hlZEltYWdlOjppbWFnZShSZW5k
ZXJFbGVtZW50KiByZW5kZXJlciwgY29uc3QgRmxvYXRTaXplJikgY29uc3QKIHsKLSAgICBhdXRv
KiBpbWFnZSA9IGNhY2hlZEltYWdlKCk7Ci0gICAgaWYgKCFpbWFnZSkKKyAgICBpZiAoIW1faW1h
Z2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBpbWFnZS0+aW1hZ2VGb3JS
ZW5kZXJlcihyZW5kZXJlcik7CisgICAgcmV0dXJuIG1faW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIo
cmVuZGVyZXIpOwogfQogCiBmbG9hdCBTdHlsZUNhY2hlZEltYWdlOjppbWFnZVNjYWxlRmFjdG9y
KCkgY29uc3QKQEAgLTE5MiwxMCArMTU1LDkgQEAgZmxvYXQgU3R5bGVDYWNoZWRJbWFnZTo6aW1h
Z2VTY2FsZUZhY3RvcigpIGNvbnN0CiAKIGJvb2wgU3R5bGVDYWNoZWRJbWFnZTo6a25vd25Ub0Jl
T3BhcXVlKGNvbnN0IFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKSBjb25zdAogewotICAgIGF1dG8q
IGltYWdlID0gY2FjaGVkSW1hZ2UoKTsKLSAgICBpZiAoIWltYWdlKQorICAgIGlmICghbV9pbWFn
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBpbWFnZS0+Y3VycmVudEZyYW1l
S25vd25Ub0JlT3BhcXVlKHJlbmRlcmVyKTsKKyAgICByZXR1cm4gbV9pbWFnZS0+Y3VycmVudEZy
YW1lS25vd25Ub0JlT3BhcXVlKHJlbmRlcmVyKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmgKaW5kZXggNzdlNjI0NjMyNzYw
YmJiNjJkY2Y4ODU1ODAyNGQ5ZmE1ODRlNGZjMi4uZjhhNWQzMTAzNDljMzk4YTRlZmMwZDYzZTIz
YzE2MzQ1N2YxMjk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlQ2FjaGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVDYWNoZWRJbWFnZS5oCkBAIC0zMiwxOSArMzIsMjEgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDU1NWYWx1ZTsKIGNsYXNzIENhY2hlZEltYWdlOwotY2xhc3MgRG9jdW1lbnQ7
CiAKLWNsYXNzIFN0eWxlQ2FjaGVkSW1hZ2UgZmluYWwgOiBwdWJsaWMgU3R5bGVJbWFnZSB7Citj
bGFzcyBTdHlsZUNhY2hlZEltYWdlIGZpbmFsIDogcHVibGljIFN0eWxlSW1hZ2UsIHByaXZhdGUg
Q2FjaGVkSW1hZ2VDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8U3R5bGVDYWNoZWRJbWFnZT4gY3JlYXRlKENTU1ZhbHVlJiBjc3NW
YWx1ZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTdHlsZUNhY2hlZEltYWdlKGNzc1ZhbHVlKSk7
IH0KICAgICB2aXJ0dWFsIH5TdHlsZUNhY2hlZEltYWdlKCk7CiAKLSAgICBib29sIG9wZXJhdG9y
PT0oY29uc3QgU3R5bGVJbWFnZSYgb3RoZXIpIGNvbnN0IG92ZXJyaWRlOworICAgIENhY2hlZElt
YWdlKiBjYWNoZWRJbWFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW1hZ2UuZ2V0KCk7
IH0KIAotICAgIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSgpIGNvbnN0IG92ZXJyaWRlOworICAg
IHZvaWQgZGV0YWNoRnJvbUNTU1ZhbHVlKCkgeyBtX2Nzc1ZhbHVlID0gbnVsbHB0cjsgfQorICAg
IHZvaWQgc2V0Q1NTVmFsdWUoQ1NTVmFsdWUmIHZhbHVlKSB7IG1fY3NzVmFsdWUgPSAmdmFsdWU7
IH0KIAotICAgIFdyYXBwZWRJbWFnZVB0ciBkYXRhKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9jYWNoZWRJbWFnZS5nZXQoKTsgfQorICAgIHZvaWQgc2V0Q2FjaGVkSW1hZ2UoQ2FjaGVkSW1h
Z2UmLCBmbG9hdCBzY2FsZUZhY3RvciA9IDEpOworCisgICAgV3JhcHBlZEltYWdlUHRyIGRhdGEo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9CiAKICAgICBQYXNzUmVm
UHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIApAQCAtNjcsOSAr
NjksOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFN0eWxlQ2FjaGVkSW1hZ2UoQ1NTVmFsdWUm
KTsKIAotICAgIFJlZjxDU1NWYWx1ZT4gbV9jc3NWYWx1ZTsKLSAgICBtdXRhYmxlIGZsb2F0IG1f
c2NhbGVGYWN0b3IgeyAxIH07Ci0gICAgbXV0YWJsZSBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRJbWFnZT4gbV9jYWNoZWRJbWFnZTsKKyAgICBDU1NWYWx1ZSogbV9jc3NWYWx1ZTsKKyAgICBm
bG9hdCBtX3NjYWxlRmFjdG9yIHsgMSB9OworICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZEltYWdlPiBtX2ltYWdlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmgKaW5k
ZXggZDQ5ZjFlNTVkYmU2NDIwNmY2MWY3NTUxNDk1MzkzMWU1ZDg0YTg1Zi4uNjNjNTkyMmQwNzdl
NTEwNGY3MzVmYjU4NzQxZTE4N2VjM2JlYWQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5oCkBAIC00MSw4ICs0MSw2IEBA
IHB1YmxpYzoKICAgICBDU1NJbWFnZUdlbmVyYXRvclZhbHVlJiBpbWFnZVZhbHVlKCkgeyByZXR1
cm4gbV9pbWFnZUdlbmVyYXRvclZhbHVlOyB9CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFN0eWxlSW1hZ2UmIG90aGVyKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBkYXRh
KCkgPT0gb3RoZXIuZGF0YSgpOyB9Ci0KICAgICBXcmFwcGVkSW1hZ2VQdHIgZGF0YSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1faW1hZ2VHZW5lcmF0b3JWYWx1ZS5wdHIoKTsgfQogCiAgICAg
UGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3NzVmFsdWUoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVJbWFnZS5oCmluZGV4IDFmMGQzMTVhNzllNTI4
NjIwM2FhZmVmNmE0MjJiYjU3MDVmYzAzMTUuLmFhNDU2Mzc4ZmNmMDIxNTFiMzA2YzI1ZmY0ZTQx
MWQ2MTg1OThmODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1h
Z2UuaApAQCAtNDUsNyArNDUsMTAgQEAgY2xhc3MgU3R5bGVJbWFnZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFN0eWxlSW1hZ2U+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TdHlsZUltYWdlKCkgeyB9
CiAKLSAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHlsZUltYWdlJiBvdGhlcikg
Y29uc3QgPSAwOworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTdHlsZUltYWdlJiBvdGhlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiAmb3RoZXIgPT0gdGhpcyB8fCAoZGF0YSgpICYm
IGRhdGEoKSA9PSBvdGhlci5kYXRhKCkpOworICAgIH0KIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4gY3NzVmFsdWUoKSBjb25zdCA9IDA7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>