<?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>229159</bug_id>
          
          <creation_ts>2021-08-16 13:51:03 -0700</creation_ts>
          <short_desc>REGRESSION(r281093): broke many GTK media tests</short_desc>
          <delta_ts>2021-08-16 13:54:28 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>229123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>calvaris</cc>
    
    <cc>lmoura</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1784635</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-08-16 13:51:03 -0700</bug_when>
    <thetext>https://commits.webkit.org/r281093 introduced a regression:
broke many GTK media tests

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>1784637</commentid>
    <comment_count>1</comment_count>
      <attachid>435627</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-08-16 13:51:11 -0700</bug_when>
    <thetext>Created attachment 435627
REVERT of r281093

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>1784639</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-16 13:53:51 -0700</bug_when>
    <thetext>Committed r281107 (240566@main): &lt;https://commits.webkit.org/240566@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435627.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1784642</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-16 13:54:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/81997255&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435627</attachid>
            <date>2021-08-16 13:51:11 -0700</date>
            <delta_ts>2021-08-16 13:53:52 -0700</delta_ts>
            <desc>REVERT of r281093</desc>
            <filename>bug-229159-20210816135110.patch</filename>
            <type>text/plain</type>
            <size>33877</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE2YWI2ODkzYTYzMDY0
Y2Q1M2JlN2JkNDY2OTgxNWNjNmJhNzQ3My4uZTY5YTQ0OGVlMzFjZTk4NzY1YTFjM2Q3MDIyMDRm
MWY2N2JhMDBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA4LTE2ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI4MTA5My4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyOTE1OQorCisgICAgICAgIGJyb2tlIG1hbnkgR1RLIG1lZGlhIHRlc3Rz
CisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJSRUdSRVNTSU9OKHIy
Nzg5ODEpOiBbR1N0cmVhbWVyXVtEZWJ1Z10gQXNzZXJ0IGNyYXNoZXMgd2hlbgorICAgICAgICBy
dW5uaW5nIG1lZGlhL3RyYWNrIHRlc3RzIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI5MTIzCisgICAgICAgIGh0dHBzOi8vY29tbWl0cy53ZWJraXQu
b3JnL3IyODEwOTMKKwogMjAyMS0wOC0xNiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjgxMDEyKTogV2ViSW5zcGVjdG9yIGNvbnNv
bGUgbm8gbG9uZ2VyIHNob3dzIHNjcmlwdCBpbnRlZ3JpdHkgaW5mb3JtYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9BdWRpb1RyYWNr
UHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDcyNDI5ODgyYTI0
MmNhYzcwMTlmYjIyNjlmYTU4MTI5Y2EzMjYxYTguLjZkM2Y0MjgwMWYzMjQyYzdjY2JjNWUyYjU2
MGYwMzRlNWU0MmM5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0
cmVhbWVyLmNwcApAQCAtMzAsMjYgKzMwLDMxIEBACiAjaW5jbHVkZSAiQXVkaW9UcmFja1ByaXZh
dGVHU3RyZWFtZXIuaCIKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
IgorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQXVk
aW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyKFdlYWtQ
dHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBwbGF5ZXIsIHVuc2lnbmVkIGluZGV4LCBH
UmVmUHRyPEdzdFBhZD4mJiBwYWQpCi0gICAgOiBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyKFRy
YWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OlRyYWNrVHlwZTo6QXVkaW8sIHRoaXMsIGluZGV4LCBX
VEZNb3ZlKHBhZCkpCitBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6QXVkaW9UcmFja1ByaXZh
dGVHU3RyZWFtZXIoV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+IHBsYXllciwg
Z2ludCBpbmRleCwgR1JlZlB0cjxHc3RQYWQ+IHBhZCkKKyAgICA6IFRyYWNrUHJpdmF0ZUJhc2VH
U3RyZWFtZXIodGhpcywgaW5kZXgsIHBhZCkKICAgICAsIG1fcGxheWVyKHBsYXllcikKIHsKKyAg
ICAvLyBGSVhNRTogR2V0IGEgcmVhbCBJRCBmcm9tIHRoZSB0a2hkIGF0b20uCisgICAgbV9pZCA9
ICJBIiArIFN0cmluZzo6bnVtYmVyKGluZGV4KTsKIH0KIAotQXVkaW9UcmFja1ByaXZhdGVHU3Ry
ZWFtZXI6OkF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyKFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyPiBwbGF5ZXIsIHVuc2lnbmVkIGluZGV4LCBHUmVmUHRyPEdzdFN0cmVhbT4m
JiBzdHJlYW0pCi0gICAgOiBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyKFRyYWNrUHJpdmF0ZUJh
c2VHU3RyZWFtZXI6OlRyYWNrVHlwZTo6QXVkaW8sIHRoaXMsIGluZGV4LCBXVEZNb3ZlKHN0cmVh
bSkpCitBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6QXVkaW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXIoV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+IHBsYXllciwgZ2ludCBpbmRl
eCwgR1JlZlB0cjxHc3RTdHJlYW0+IHN0cmVhbSkKKyAgICA6IFRyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXIodGhpcywgaW5kZXgsIHN0cmVhbSkKICAgICAsIG1fcGxheWVyKHBsYXllcikKIHsKLSAg
ICBpbnQga2luZDsKKyAgICBnaW50IGtpbmQ7CiAgICAgYXV0byB0YWdzID0gYWRvcHRHUmVmKGdz
dF9zdHJlYW1fZ2V0X3RhZ3MobV9zdHJlYW0uZ2V0KCkpKTsKIAotICAgIGlmICh0YWdzICYmIGdz
dF90YWdfbGlzdF9nZXRfaW50KHRhZ3MuZ2V0KCksICJ3ZWJraXQtbWVkaWEtc3RyZWFtLWtpbmQi
LCAma2luZCkgJiYga2luZCA9PSBzdGF0aWNfY2FzdDxpbnQ+KEF1ZGlvVHJhY2tQcml2YXRlOjpL
aW5kOjpNYWluKSkgewotICAgICAgICBhdXRvIHN0cmVhbUZsYWdzID0gZ3N0X3N0cmVhbV9nZXRf
c3RyZWFtX2ZsYWdzKG1fc3RyZWFtLmdldCgpKTsKLSAgICAgICAgZ3N0X3N0cmVhbV9zZXRfc3Ry
ZWFtX2ZsYWdzKG1fc3RyZWFtLmdldCgpLCBzdGF0aWNfY2FzdDxHc3RTdHJlYW1GbGFncz4oc3Ry
ZWFtRmxhZ3MgfCBHU1RfU1RSRUFNX0ZMQUdfU0VMRUNUKSk7CisgICAgaWYgKHRhZ3MgJiYgZ3N0
X3RhZ19saXN0X2dldF9pbnQodGFncy5nZXQoKSwgIndlYmtpdC1tZWRpYS1zdHJlYW0ta2luZCIs
ICZraW5kKSAmJiBraW5kID09IHN0YXRpY19jYXN0PGludD4oVmlkZW9UcmFja1ByaXZhdGU6Oktp
bmQ6Ok1haW4pKSB7CisgICAgICAgIEdzdFN0cmVhbUZsYWdzIHN0cmVhbUZsYWdzID0gZ3N0X3N0
cmVhbV9nZXRfc3RyZWFtX2ZsYWdzKHN0cmVhbS5nZXQoKSk7CisgICAgICAgIGdzdF9zdHJlYW1f
c2V0X3N0cmVhbV9mbGFncyhzdHJlYW0uZ2V0KCksIHN0YXRpY19jYXN0PEdzdFN0cmVhbUZsYWdz
PihzdHJlYW1GbGFncyB8IEdTVF9TVFJFQU1fRkxBR19TRUxFQ1QpKTsKICAgICB9CisKKyAgICBt
X2lkID0gZ3N0X3N0cmVhbV9nZXRfc3RyZWFtX2lkKHN0cmVhbS5nZXQoKSk7CiB9CiAKIEF1ZGlv
VHJhY2tQcml2YXRlOjpLaW5kIEF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjpraW5kKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9BdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggNjZh
Mzk1NWJiZGVmZTYwM2RjOWUxMjY5NmFiNDU3YjBlZDdmMzNjZS4uZmU5NzlmNDM4MDdkOTZlNTJk
OGNkMjM2YTNlNzYyN2MxZTZlYWM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0F1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyLmgKQEAgLTM4LDMzICszOCwzNCBAQCBjbGFzcyBNZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXI7CiAKIGNsYXNzIEF1ZGlvVHJhY2tQcml2YXRlR1N0cmVhbWVyIGZpbmFsIDog
cHVibGljIEF1ZGlvVHJhY2tQcml2YXRlLCBwdWJsaWMgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1l
ciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4g
Y3JlYXRlKFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBwbGF5ZXIsIHVuc2ln
bmVkIGluZGV4LCBHUmVmUHRyPEdzdFBhZD4mJiBwYWQpCisgICAgc3RhdGljIFJlZjxBdWRpb1Ry
YWNrUHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRlKFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyPiBwbGF5ZXIsIGdpbnQgaW5kZXgsIEdSZWZQdHI8R3N0UGFkPiBwYWQpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcihw
bGF5ZXIsIGluZGV4LCBXVEZNb3ZlKHBhZCkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIocGxheWVyLCBpbmRleCwgcGFkKSk7CiAgICAg
fQogCi0gICAgc3RhdGljIFJlZjxBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRlKFdl
YWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBwbGF5ZXIsIHVuc2lnbmVkIGluZGV4
LCBHUmVmUHRyPEdzdFN0cmVhbT4mJiBzdHJlYW0pCisgICAgc3RhdGljIFJlZjxBdWRpb1RyYWNr
UHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRlKFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyPiBwbGF5ZXIsIGdpbnQgaW5kZXgsIEdSZWZQdHI8R3N0U3RyZWFtPiBzdHJlYW0pCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1l
cihwbGF5ZXIsIGluZGV4LCBXVEZNb3ZlKHN0cmVhbSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgQXVkaW9UcmFja1ByaXZhdGVHU3RyZWFtZXIocGxheWVyLCBpbmRleCwgc3RyZWFt
KSk7CiAgICAgfQogCiAgICAgS2luZCBraW5kKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGRp
c2Nvbm5lY3QoKSBmaW5hbDsKKyAgICB2b2lkIGRpc2Nvbm5lY3QoKSBvdmVycmlkZTsKIAotICAg
IHZvaWQgc2V0RW5hYmxlZChib29sKSBmaW5hbDsKLSAgICB2b2lkIHNldEFjdGl2ZShib29sIGVu
YWJsZWQpIGZpbmFsIHsgc2V0RW5hYmxlZChlbmFibGVkKTsgfQorICAgIHZvaWQgc2V0RW5hYmxl
ZChib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEFjdGl2ZShib29sIGVuYWJsZWQpIG92ZXJy
aWRlIHsgc2V0RW5hYmxlZChlbmFibGVkKTsgfQogCi0gICAgaW50IHRyYWNrSW5kZXgoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2luZGV4OyB9CisgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2luZGV4OyB9CiAKLSAgICBBdG9tU3RyaW5nIGlkKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9pZDsgfQotICAgIEF0b21TdHJpbmcgbGFiZWwoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2xhYmVsOyB9Ci0gICAgQXRvbVN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0KKyAgICBBdG9tU3RyaW5nIGlkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9pZDsgfQorICAgIEF0b21TdHJpbmcgbGFiZWwoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2xhYmVsOyB9CisgICAgQXRvbVN0cmluZyBsYW5ndWFnZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGFuZ3VhZ2U7IH0KIAogcHJpdmF0ZToKLSAgICBBdWRpb1Ry
YWNrUHJpdmF0ZUdTdHJlYW1lcihXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4s
IHVuc2lnbmVkIGluZGV4LCBHUmVmUHRyPEdzdFBhZD4mJik7Ci0gICAgQXVkaW9UcmFja1ByaXZh
dGVHU3RyZWFtZXIoV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+LCB1bnNpZ25l
ZCBpbmRleCwgR1JlZlB0cjxHc3RTdHJlYW0+JiYpOworICAgIEF1ZGlvVHJhY2tQcml2YXRlR1N0
cmVhbWVyKFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiwgZ2ludCBpbmRleCwg
R1JlZlB0cjxHc3RQYWQ+KTsKKyAgICBBdWRpb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcihXZWFrUHRy
PE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4sIGdpbnQgaW5kZXgsIEdSZWZQdHI8R3N0U3Ry
ZWFtPik7CiAKKyAgICBBdG9tU3RyaW5nIG1faWQ7CiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI+IG1fcGxheWVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3Ry
ZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0lu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGFkODIzMzdjMTQ0Y2U5YzJk
ZWE4ZTMzYjVhMTI2M2UzYzE3NDEyMTIuLjRjMWNiOGFjOTY2NWFlYmM3MWNkODIwYWJhYzM0ZDg4
NzI1NDMxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lci5jcHAKQEAgLTI5LDMzICsyOSw1NyBAQAogCiAjaW5jbHVkZSAiSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIgogCi0jaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNs
dWRlICJHU3RyZWFtZXJDb21tb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8
Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CiAKIEdTVF9ERUJVR19DQVRFR09S
WV9FWFRFUk4od2Via2l0X21lZGlhX3BsYXllcl9kZWJ1Zyk7CiAjZGVmaW5lIEdTVF9DQVRfREVG
QVVMVCB3ZWJraXRfbWVkaWFfcGxheWVyX2RlYnVnCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lcih1bnNpZ25lZCBpbmRleCwgR1JlZlB0cjxHc3RQYWQ+JiYgcGFkKQorSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcihn
aW50IGluZGV4LCBHUmVmUHRyPEdzdFBhZD4gcGFkKQogICAgIDogSW5iYW5kVGV4dFRyYWNrUHJp
dmF0ZShDdWVGb3JtYXQ6OldlYlZUVCkKLSAgICAsIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIo
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6VHJhY2tUeXBlOjpUZXh0LCB0aGlzLCBpbmRleCwg
V1RGTW92ZShwYWQpKQorICAgICwgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcih0aGlzLCBpbmRl
eCwgcGFkKQogICAgICwgbV9raW5kKEtpbmQ6OlN1YnRpdGxlcykKIHsKKyAgICBtX2V2ZW50UHJv
YmUgPSBnc3RfcGFkX2FkZF9wcm9iZShtX3BhZC5nZXQoKSwgR1NUX1BBRF9QUk9CRV9UWVBFX0VW
RU5UX0RPV05TVFJFQU0sIFtdIChHc3RQYWQqLCBHc3RQYWRQcm9iZUluZm8qIGluZm8sIGdwb2lu
dGVyIHVzZXJEYXRhKSAtPiBHc3RQYWRQcm9iZVJldHVybiB7CisgICAgICAgIGF1dG8qIHRyYWNr
ID0gc3RhdGljX2Nhc3Q8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcio+KHVzZXJEYXRh
KTsKKyAgICAgICAgc3dpdGNoIChHU1RfRVZFTlRfVFlQRShnc3RfcGFkX3Byb2JlX2luZm9fZ2V0
X2V2ZW50KGluZm8pKSkgeworICAgICAgICBjYXNlIEdTVF9FVkVOVF9TVFJFQU1fU1RBUlQ6Cisg
ICAgICAgICAgICB0cmFjay0+c3RyZWFtQ2hhbmdlZCgpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gR1NUX1BBRF9QUk9CRV9PSzsKKyAgICB9LCB0aGlzLCBudWxscHRyKTsKKworICAgIG5v
dGlmeVRyYWNrT2ZTdHJlYW1DaGFuZ2VkKCk7CiB9CiAKLUluYmFuZFRleHRUcmFja1ByaXZhdGVH
U3RyZWFtZXI6OkluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIodW5zaWduZWQgaW5kZXgs
IEdSZWZQdHI8R3N0U3RyZWFtPiYmIHN0cmVhbSkKK0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3Ry
ZWFtZXI6OkluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIoZ2ludCBpbmRleCwgR1JlZlB0
cjxHc3RTdHJlYW0+IHN0cmVhbSkKICAgICA6IEluYmFuZFRleHRUcmFja1ByaXZhdGUoQ3VlRm9y
bWF0OjpXZWJWVFQpCi0gICAgLCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyKFRyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXI6OlRyYWNrVHlwZTo6VGV4dCwgdGhpcywgaW5kZXgsIFdURk1vdmUoc3Ry
ZWFtKSkKKyAgICAsIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIodGhpcywgaW5kZXgsIHN0cmVh
bSkKIHsKLSAgICBtX2lkID0gZ3N0X3N0cmVhbV9nZXRfc3RyZWFtX2lkKG1fc3RyZWFtLmdldCgp
KTsKLSAgICBHU1RfSU5GTygiVHJhY2sgJWQgZ290IHN0cmVhbSBzdGFydCBmb3Igc3RyZWFtICVz
LiIsIG1faW5kZXgsIG1faWQuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgbV9zdHJlYW1J
ZCA9IGdzdF9zdHJlYW1fZ2V0X3N0cmVhbV9pZChzdHJlYW0uZ2V0KCkpOworICAgIEdTVF9JTkZP
KCJUcmFjayAlZCBnb3Qgc3RyZWFtIHN0YXJ0IGZvciBzdHJlYW0gJXMuIiwgbV9pbmRleCwgbV9z
dHJlYW1JZC51dGY4KCkuZGF0YSgpKTsKIAotICAgIEdTVF9ERUJVRygiU3RyZWFtICUiIEdTVF9Q
VFJfRk9STUFULCBtX3N0cmVhbS5nZXQoKSk7Ci0gICAgYXV0byBjYXBzID0gYWRvcHRHUmVmKGdz
dF9zdHJlYW1fZ2V0X2NhcHMobV9zdHJlYW0uZ2V0KCkpKTsKKyAgICBHU1RfREVCVUcoIlN0cmVh
bSAlIiBHU1RfUFRSX0ZPUk1BVCwgc3RyZWFtLmdldCgpKTsKKyAgICBhdXRvIGNhcHMgPSBhZG9w
dEdSZWYoZ3N0X3N0cmVhbV9nZXRfY2FwcyhzdHJlYW0uZ2V0KCkpKTsKICAgICBjb25zdCBjaGFy
KiBtZWRpYVR5cGUgPSBjYXBzTWVkaWFUeXBlKGNhcHMuZ2V0KCkpOwogICAgIG1fa2luZCA9IGdf
c3RyX2hhc19wcmVmaXgobWVkaWFUeXBlLCAiY2xvc2VkY2FwdGlvbi8iKSA/IEtpbmQ6OkNhcHRp
b25zIDogS2luZDo6U3VidGl0bGVzOwogfQogCit2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVH
U3RyZWFtZXI6OmRpc2Nvbm5lY3QoKQoreworICAgIGlmIChtX3BhZCkKKyAgICAgICAgZ3N0X3Bh
ZF9yZW1vdmVfcHJvYmUobV9wYWQuZ2V0KCksIG1fZXZlbnRQcm9iZSk7CisKKyAgICBUcmFja1By
aXZhdGVCYXNlR1N0cmVhbWVyOjpkaXNjb25uZWN0KCk7Cit9CisKIHZvaWQgSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUdTdHJlYW1lcjo6aGFuZGxlU2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxlPiBzYW1w
bGUpCiB7CiAgICAgewpAQCAtNjksNiArOTMsMTQgQEAgdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlR1N0cmVhbWVyOjpoYW5kbGVTYW1wbGUoR1JlZlB0cjxHc3RTYW1wbGU+IHNhbXBsZSkKICAg
ICB9KTsKIH0KIAordm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpzdHJlYW1D
aGFuZ2VkKCkKK3sKKyAgICBSZWZQdHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcj4g
cHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICBtX25vdGlmaWVyLT5ub3RpZnkoTWFpblRocmVhZE5v
dGlmaWNhdGlvbjo6U3RyZWFtQ2hhbmdlZCwgW3Byb3RlY3RlZFRoaXNdIHsKKyAgICAgICAgcHJv
dGVjdGVkVGhpcy0+bm90aWZ5VHJhY2tPZlN0cmVhbUNoYW5nZWQoKTsKKyAgICB9KTsKK30KKwog
dm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU2FtcGxl
KCkKIHsKICAgICBWZWN0b3I8R1JlZlB0cjxHc3RTYW1wbGU+ID4gc2FtcGxlczsKQEAgLTk3LDYg
KzEyOSwxOSBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRy
YWNrT2ZTYW1wbGUoKQogICAgIH0KIH0KIAordm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0
cmVhbWVyOjpub3RpZnlUcmFja09mU3RyZWFtQ2hhbmdlZCgpCit7CisgICAgR1JlZlB0cjxHc3RF
dmVudD4gZXZlbnQgPSBhZG9wdEdSZWYoZ3N0X3BhZF9nZXRfc3RpY2t5X2V2ZW50KG1fcGFkLmdl
dCgpLAorICAgICAgICBHU1RfRVZFTlRfU1RSRUFNX1NUQVJULCAwKSk7CisgICAgaWYgKCFldmVu
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgZ2NoYXIqIHN0cmVhbUlkOworICAgIGdz
dF9ldmVudF9wYXJzZV9zdHJlYW1fc3RhcnQoZXZlbnQuZ2V0KCksICZzdHJlYW1JZCk7CisgICAg
R1NUX0lORk8oIlRyYWNrICVkIGdvdCBzdHJlYW0gc3RhcnQgZm9yIHN0cmVhbSAlcy4iLCBtX2lu
ZGV4LCBzdHJlYW1JZCk7CisgICAgbV9zdHJlYW1JZCA9IHN0cmVhbUlkOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFN
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIu
aAppbmRleCAyYjAyYTU5MGYwZGRlMWNlN2E3NTU0YTk3YmI5YTliNDc2YzBiZjNlLi5mMDUzODA2
M2ExZjA3ZDJkMDc5YjZhY2ZmZTRhMjcwODEzY2E3MDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdT
dHJlYW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKQEAgLTMwLDcgKzMwLDggQEAKICNp
bmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2tQcml2
YXRlLmgiCiAjaW5jbHVkZSAiVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5oIgotI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8Z3N0L2dzdC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2Nr
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzgsMzYgKzM5LDQ1IEBAIGNsYXNzIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjsKIAogY2xhc3MgSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lciA6IHB1YmxpYyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlLCBwdWJsaWMgVHJhY2tQ
cml2YXRlQmFzZUdTdHJlYW1lciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxJbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyPiBjcmVhdGUodW5zaWduZWQgaW5kZXgsIEdSZWZQdHI8R3N0
UGFkPiYmIHBhZCkKKyAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFt
ZXI+IGNyZWF0ZShnaW50IGluZGV4LCBHUmVmUHRyPEdzdFBhZD4gcGFkKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcihp
bmRleCwgV1RGTW92ZShwYWQpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluYmFu
ZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIoaW5kZXgsIHBhZCkpOwogICAgIH0KIAotICAgIHN0
YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRlKFdlYWtQdHI8
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiwgdW5zaWduZWQgaW5kZXgsIEdSZWZQdHI8R3N0
UGFkPiBwYWQpCisgICAgc3RhdGljIFJlZjxJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVy
PiBjcmVhdGUoV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+LCBnaW50IGluZGV4
LCBHUmVmUHRyPEdzdFBhZD4gcGFkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShpbmRl
eCwgV1RGTW92ZShwYWQpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShpbmRleCwgcGFkKTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUmVmPEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI+IGNy
ZWF0ZSh1bnNpZ25lZCBpbmRleCwgR1JlZlB0cjxHc3RTdHJlYW0+JiYgc3RyZWFtKQorICAgIHN0
YXRpYyBSZWY8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcj4gY3JlYXRlKGdpbnQgaW5k
ZXgsIEdSZWZQdHI8R3N0U3RyZWFtPiBzdHJlYW0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyKGluZGV4LCBXVEZNb3Zl
KHN0cmVhbSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUdTdHJlYW1lcihpbmRleCwgc3RyZWFtKSk7CiAgICAgfQogCi0gICAgS2luZCBraW5k
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9raW5kOyB9Ci0gICAgQXRvbVN0cmluZyBpZCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1faWQ7IH0KLSAgICBBdG9tU3RyaW5nIGxhYmVsKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9sYWJlbDsgfQotICAgIEF0b21TdHJpbmcgbGFuZ3VhZ2UoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2xhbmd1YWdlOyB9Ci0gICAgaW50IHRyYWNrSW5kZXgoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2luZGV4OyB9CisgICAgdm9pZCBkaXNjb25uZWN0KCkgb3ZlcnJp
ZGU7CisKKyAgICBLaW5kIGtpbmQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2tpbmQ7IH0K
KworICAgIEF0b21TdHJpbmcgbGFiZWwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xhYmVs
OyB9CisgICAgQXRvbVN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
bGFuZ3VhZ2U7IH0KKworICAgIGludCB0cmFja0luZGV4KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9pbmRleDsgfQorICAgIFN0cmluZyBzdHJlYW1JZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3Ry
ZWFtSWQ7IH0KIAogICAgIHZvaWQgaGFuZGxlU2FtcGxlKEdSZWZQdHI8R3N0U2FtcGxlPik7CiAK
IHByaXZhdGU6Ci0gICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcih1bnNpZ25lZCBp
bmRleCwgR1JlZlB0cjxHc3RQYWQ+JiYpOwotICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3Ry
ZWFtZXIodW5zaWduZWQgaW5kZXgsIEdSZWZQdHI8R3N0U3RyZWFtPiYmKTsKKyAgICBJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyKGdpbnQgaW5kZXgsIEdSZWZQdHI8R3N0UGFkPik7Cisg
ICAgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcihnaW50IGluZGV4LCBHUmVmUHRyPEdz
dFN0cmVhbT4pOworCisgICAgdm9pZCBzdHJlYW1DaGFuZ2VkKCk7CiAKICAgICB2b2lkIG5vdGlm
eVRyYWNrT2ZTYW1wbGUoKTsKKyAgICB2b2lkIG5vdGlmeVRyYWNrT2ZTdHJlYW1DaGFuZ2VkKCk7
CiAKKyAgICBndWxvbmcgbV9ldmVudFByb2JlOwogICAgIFZlY3RvcjxHUmVmUHRyPEdzdFNhbXBs
ZT4+IG1fcGVuZGluZ1NhbXBsZXMgV1RGX0dVQVJERURfQllfTE9DSyhtX3NhbXBsZU11dGV4KTsK
KyAgICBTdHJpbmcgbV9zdHJlYW1JZDsKICAgICBLaW5kIG1fa2luZDsKICAgICBMb2NrIG1fc2Ft
cGxlTXV0ZXg7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAppbmRleCA2NDBhNTQ5N2M3MmI3ZDgyOTVmMGE4M2RjYTM0M2FkZTA2NjZmYTkxLi4w
OTQxZDQ0OTU0OTU0YTg2YmE2MTViYzA0NDMzM2NmMWYyN2EyZWVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtOTkyLDIzICs5OTIsMjMg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVHJhY2so
KQogCiAgICAgQVNTRVJUKG1faXNMZWdhY3lQbGF5YmluIHx8IGlzTWVkaWFTb3VyY2UoKSk7CiAK
LSAgICB1c2luZyBUcmFja1R5cGUgPSBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpUcmFja1R5
cGU7CisgICAgZW51bSBUcmFja1R5cGUgeyBBdWRpbyA9IDAsIFZpZGVvID0gMSwgVGV4dCA9IDIg
fTsKICAgICBWYXJpYW50PEhhc2hNYXA8QXRvbVN0cmluZywgUmVmUHRyPEF1ZGlvVHJhY2tQcml2
YXRlR1N0cmVhbWVyPj4qLCBIYXNoTWFwPEF0b21TdHJpbmcsIFJlZlB0cjxWaWRlb1RyYWNrUHJp
dmF0ZUdTdHJlYW1lcj4+KiwgSGFzaE1hcDxBdG9tU3RyaW5nLCBSZWZQdHI8SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZUdTdHJlYW1lcj4+Kj4gdmFyaWFudFRyYWNrcyA9IHN0YXRpY19jYXN0PEhhc2hN
YXA8QXRvbVN0cmluZywgUmVmUHRyPFRyYWNrUHJpdmF0ZVR5cGU+Pio+KDApOwogICAgIGF1dG8g
dHlwZShzdGF0aWNfY2FzdDxUcmFja1R5cGU+KHZhcmlhbnRUcmFja3MuaW5kZXgoKSkpOwogICAg
IGNvbnN0IGNoYXIqIHR5cGVOYW1lOwogICAgIGJvb2wqIGhhc1R5cGU7CiAgICAgc3dpdGNoICh0
eXBlKSB7Ci0gICAgY2FzZSBUcmFja1R5cGU6OkF1ZGlvOgorICAgIGNhc2UgQXVkaW86CiAgICAg
ICAgIHR5cGVOYW1lID0gImF1ZGlvIjsKICAgICAgICAgaGFzVHlwZSA9ICZtX2hhc0F1ZGlvOwog
ICAgICAgICB2YXJpYW50VHJhY2tzID0gJm1fYXVkaW9UcmFja3M7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgVHJhY2tUeXBlOjpWaWRlbzoKKyAgICBjYXNlIFZpZGVvOgogICAgICAgICB0eXBl
TmFtZSA9ICJ2aWRlbyI7CiAgICAgICAgIGhhc1R5cGUgPSAmbV9oYXNWaWRlbzsKICAgICAgICAg
dmFyaWFudFRyYWNrcyA9ICZtX3ZpZGVvVHJhY2tzOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IFRyYWNrVHlwZTo6VGV4dDoKKyAgICBjYXNlIFRleHQ6CiAgICAgICAgIHR5cGVOYW1lID0gInRl
eHQiOwogICAgICAgICBoYXNUeXBlID0gbnVsbHB0cjsKICAgICAgICAgdmFyaWFudFRyYWNrcyA9
ICZtX3RleHRUcmFja3M7CkBAIC0xMDE5LDcgKzEwMTksNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZUcmFjaygpCiAgICAgSGFzaE1hcDxBdG9tU3Ry
aW5nLCBSZWZQdHI8VHJhY2tQcml2YXRlVHlwZT4+JiB0cmFja3MgPSAqZ2V0PEhhc2hNYXA8QXRv
bVN0cmluZywgUmVmUHRyPFRyYWNrUHJpdmF0ZVR5cGU+Pio+KHZhcmlhbnRUcmFja3MpOwogCiAg
ICAgLy8gSWdub3JlIG5vdGlmaWNhdGlvbnMgYWZ0ZXIgYSBFT1MuIFdlIGRvbid0IHdhbnQgdGhl
IHRyYWNrcyB0byBkaXNhcHBlYXIgd2hlbiB0aGUgdmlkZW8gaXMgZmluaXNoZWQuCi0gICAgaWYg
KG1faXNFbmRSZWFjaGVkICYmICh0eXBlID09IFRyYWNrVHlwZTo6QXVkaW8gfHwgdHlwZSA9PSBU
cmFja1R5cGU6OlZpZGVvKSkKKyAgICBpZiAobV9pc0VuZFJlYWNoZWQgJiYgKHR5cGUgPT0gQXVk
aW8gfHwgdHlwZSA9PSBWaWRlbykpCiAgICAgICAgIHJldHVybjsKIAogICAgIHVuc2lnbmVkIG51
bWJlck9mVHJhY2tzID0gMDsKQEAgLTEwMzksNyArMTAzOSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlRyYWNrKCkKICAgICAgICAgaWYgKG9sZEhh
c1R5cGUgIT0gKmhhc1R5cGUpCiAgICAgICAgICAgICBtX3BsYXllci0+Y2hhcmFjdGVyaXN0aWND
aGFuZ2VkKCk7CiAKLSAgICAgICAgaWYgKCpoYXNUeXBlICYmIHR5cGUgPT0gVHJhY2tUeXBlOjpW
aWRlbykKKyAgICAgICAgaWYgKCpoYXNUeXBlICYmIHR5cGUgPT0gVmlkZW8pCiAgICAgICAgICAg
ICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKICAgICB9CiAKQEAgLTEwNDksNyArMTA0OSw3IEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlRyYWNrKCkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFZlY3RvcjxBdG9tU3RyaW5nPiB2YWxpZFN0
cmVhbXM7CisgICAgVmVjdG9yPFN0cmluZz4gdmFsaWRTdHJlYW1zOwogICAgIFN0cmluZ1ByaW50
U3RyZWFtIGdldFBhZFByb3BlcnR5OwogICAgIGdldFBhZFByb3BlcnR5LnByaW50ZigiZ2V0LSVz
LXBhZCIsIHR5cGVOYW1lKTsKIApAQCAtMTA1OCw5ICsxMDU4LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVHJhY2soKQogICAgICAgICBnX3NpZ25h
bF9lbWl0X2J5X25hbWUobV9waXBlbGluZS5nZXQoKSwgZ2V0UGFkUHJvcGVydHkudG9DU3RyaW5n
KCkuZGF0YSgpLCBpLCAmcGFkLm91dFB0cigpLCBudWxscHRyKTsKICAgICAgICAgQVNTRVJUKHBh
ZCk7CiAKLSAgICAgICAgLy8gVGhlIHBhZCBtaWdodCBub3QgaGF2ZSBhIHN0aWNreSBzdHJlYW0t
c3RhcnQgZXZlbnQgeWV0LCBzbyB3ZSBjYW4ndCB1c2UKLSAgICAgICAgLy8gZ3N0X3BhZF9nZXRf
c3RyZWFtX2lkKCkgaGVyZS4KLSAgICAgICAgYXV0byBzdHJlYW1JZCA9IFRyYWNrUHJpdmF0ZUJh
c2VHU3RyZWFtZXI6OmdlbmVyYXRlVW5pcXVlUGxheWJpbjJTdHJlYW1JRCh0eXBlLCBpKTsKKyAg
ICAgICAgU3RyaW5nIHN0cmVhbUlkID0gU3RyaW5nKHR5cGVOYW1lKS5zdWJzdHJpbmcoMCwgMSku
Y29udmVydFRvQVNDSUlVcHBlcmNhc2UoKSArIFN0cmluZzo6bnVtYmVyKGkpOwogICAgICAgICB2
YWxpZFN0cmVhbXMuYXBwZW5kKHN0cmVhbUlkKTsKIAogICAgICAgICBpZiAoaSA8IHRyYWNrcy5z
aXplKCkpIHsKQEAgLTEwNzUsMjMgKzEwNzMsMTcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVHJhY2soKQogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKLSAgICAgICAgYXV0byB0cmFjayA9IFRyYWNrUHJpdmF0ZVR5cGU6OmNyZWF0ZShtYWtlV2Vh
a1B0cigqdGhpcyksIGksIFdURk1vdmUocGFkKSk7Ci0gICAgICAgIGlmICghdHJhY2stPnRyYWNr
SW5kZXgoKSAmJiAodHlwZSA9PSBUcmFja1R5cGU6OkF1ZGlvIHx8IHR5cGUgPT0gVHJhY2tUeXBl
OjpWaWRlbykpCisgICAgICAgIGF1dG8gdHJhY2sgPSBUcmFja1ByaXZhdGVUeXBlOjpjcmVhdGUo
bWFrZVdlYWtQdHIoKnRoaXMpLCBpLCBwYWQpOworICAgICAgICBpZiAoIXRyYWNrLT50cmFja0lu
ZGV4KCkgJiYgKHR5cGUgPT0gQXVkaW8gfHwgdHlwZSA9PSBWaWRlbykpCiAgICAgICAgICAgICB0
cmFjay0+c2V0QWN0aXZlKHRydWUpOwogICAgICAgICBBU1NFUlQoc3RyZWFtSWQgPT0gdHJhY2st
PmlkKCkpOwogICAgICAgICB0cmFja3MuYWRkKHN0cmVhbUlkLCB0cmFjay5jb3B5UmVmKCkpOwog
CiAgICAgICAgIFZhcmlhbnQ8QXVkaW9UcmFja1ByaXZhdGUmLCBWaWRlb1RyYWNrUHJpdmF0ZSYs
IEluYmFuZFRleHRUcmFja1ByaXZhdGUmPiB2YXJpYW50VHJhY2sodHJhY2suZ2V0KCkpOwogICAg
ICAgICBzd2l0Y2ggKHZhcmlhbnRUcmFjay5pbmRleCgpKSB7Ci0gICAgICAgIGNhc2UgVHJhY2tU
eXBlOjpBdWRpbzoKLSAgICAgICAgICAgIG1fcGxheWVyLT5hZGRBdWRpb1RyYWNrKGdldDxBdWRp
b1RyYWNrUHJpdmF0ZSY+KHZhcmlhbnRUcmFjaykpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgVHJhY2tUeXBlOjpWaWRlbzoKLSAgICAgICAgICAgIG1fcGxheWVyLT5hZGRWaWRl
b1RyYWNrKGdldDxWaWRlb1RyYWNrUHJpdmF0ZSY+KHZhcmlhbnRUcmFjaykpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHJhY2tUeXBlOjpUZXh0OgotICAgICAgICAgICAgbV9w
bGF5ZXItPmFkZFRleHRUcmFjayhnZXQ8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSY+KHZhcmlhbnRU
cmFjaykpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQXVkaW86IG1fcGxheWVy
LT5hZGRBdWRpb1RyYWNrKGdldDxBdWRpb1RyYWNrUHJpdmF0ZSY+KHZhcmlhbnRUcmFjaykpOyBi
cmVhazsKKyAgICAgICAgY2FzZSBWaWRlbzogbV9wbGF5ZXItPmFkZFZpZGVvVHJhY2soZ2V0PFZp
ZGVvVHJhY2tQcml2YXRlJj4odmFyaWFudFRyYWNrKSk7IGJyZWFrOworICAgICAgICBjYXNlIFRl
eHQ6IG1fcGxheWVyLT5hZGRUZXh0VHJhY2soZ2V0PEluYmFuZFRleHRUcmFja1ByaXZhdGUmPih2
YXJpYW50VHJhY2spKTsgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTExNTEsNyArMTE0
Myw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp0ZXh0Q2hhbmdlZENhbGxi
YWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6aGFuZGxlVGV4dFNhbXBsZShHc3RTYW1wbGUqIHNhbXBsZSwgY29uc3QgY2hhciog
c3RyZWFtSWQpCiB7CiAgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdGV4dFRyYWNrcy52YWx1ZXMo
KSkgewotICAgICAgICBpZiAoIXN0cmNtcCh0cmFjay0+aWQoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCBzdHJlYW1JZCkpIHsKKyAgICAgICAgaWYgKCFzdHJjbXAodHJhY2stPnN0cmVhbUlkKCku
dXRmOCgpLmRhdGEoKSwgc3RyZWFtSWQpKSB7CiAgICAgICAgICAgICB0cmFjay0+aGFuZGxlU2Ft
cGxlKHNhbXBsZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTE0NTcsOCAr
MTQ0OSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp1cGRhdGVUcmFja3Mo
Y29uc3QgR1JlZlB0cjxHc3RTdHJlYW1Db2xsZWN0aW9uCiAgICAgdW5zaWduZWQgdmlkZW9UcmFj
a0luZGV4ID0gMDsKICAgICB1bnNpZ25lZCB0ZXh0VHJhY2tJbmRleCA9IDA7CiAKLSNkZWZpbmUg
Q1JFQVRFX1RSQUNLKHR5cGUsIFR5cGUpIEdfU1RNVF9TVEFSVCB7ICAgICAgICAgICAgICAgICAg
ICAgXAotICAgICAgICBSZWZQdHI8VHlwZSMjVHJhY2tQcml2YXRlR1N0cmVhbWVyPiB0cmFjayA9
IFR5cGUjI1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VXZWFrUHRyKCp0aGlzKSwg
dHlwZSMjVHJhY2tJbmRleCwgV1RGTW92ZShzdHJlYW0pKTsgXAorI2RlZmluZSBDUkVBVEVfVFJB
Q0sodHlwZSwgVHlwZSkgR19TVE1UX1NUQVJUIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgICAgICBSZWZQdHI8VHlwZSMjVHJhY2tQcml2YXRlR1N0cmVhbWVyPiB0cmFjayA9IFR5cGUj
I1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKG1ha2VXZWFrUHRyKCp0aGlzKSwgdHlwZSMj
VHJhY2tJbmRleCwgc3RyZWFtKTsgXAogICAgICAgICBhdXRvIHRyYWNrSWQgPSB0cmFjay0+aWQo
KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIGlmICghdHlwZSMj
VHJhY2tJbmRleCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg
ICAgICAgIG1fd2FudGVkIyNUeXBlIyNTdHJlYW1JZCA9IHRyYWNrSWQ7ICAgICAgICAgICAgICAg
ICAgICAgXApAQCAtMTQ3MSwxMSArMTQ2MywxMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6dXBkYXRlVHJhY2tzKGNvbnN0IEdSZWZQdHI8R3N0U3RyZWFtQ29sbGVjdGlvbgog
ICAgIH0gR19TVE1UX0VORAogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
aSsrKSB7Ci0gICAgICAgIEdSZWZQdHI8R3N0U3RyZWFtPiBzdHJlYW0gPSBnc3Rfc3RyZWFtX2Nv
bGxlY3Rpb25fZ2V0X3N0cmVhbShzdHJlYW1Db2xsZWN0aW9uLmdldCgpLCBpKTsKLSAgICAgICAg
Y29uc3QgY2hhciogc3RyZWFtSWQgPSBnc3Rfc3RyZWFtX2dldF9zdHJlYW1faWQoc3RyZWFtLmdl
dCgpKTsKLSAgICAgICAgYXV0byB0eXBlID0gZ3N0X3N0cmVhbV9nZXRfc3RyZWFtX3R5cGUoc3Ry
ZWFtLmdldCgpKTsKKyAgICAgICAgYXV0byogc3RyZWFtID0gZ3N0X3N0cmVhbV9jb2xsZWN0aW9u
X2dldF9zdHJlYW0oc3RyZWFtQ29sbGVjdGlvbi5nZXQoKSwgaSk7CisgICAgICAgIFN0cmluZyBz
dHJlYW1JZChnc3Rfc3RyZWFtX2dldF9zdHJlYW1faWQoc3RyZWFtKSk7CisgICAgICAgIGF1dG8g
dHlwZSA9IGdzdF9zdHJlYW1fZ2V0X3N0cmVhbV90eXBlKHN0cmVhbSk7CiAKLSAgICAgICAgR1NU
X0RFQlVHX09CSkVDVChwaXBlbGluZSgpLCAiSW5zcGVjdGluZyAlcyB0cmFjayB3aXRoIElEICVz
IiwgZ3N0X3N0cmVhbV90eXBlX2dldF9uYW1lKHR5cGUpLCBzdHJlYW1JZCk7CisgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QocGlwZWxpbmUoKSwgIkluc3BlY3RpbmcgJXMgdHJhY2sgd2l0aCBJRCAl
cyIsIGdzdF9zdHJlYW1fdHlwZV9nZXRfbmFtZSh0eXBlKSwgc3RyZWFtSWQudXRmOCgpLmRhdGEo
KSk7CiAKICAgICAgICAgaWYgKHR5cGUgJiBHU1RfU1RSRUFNX1RZUEVfQVVESU8pIHsKICAgICAg
ICAgICAgIENSRUFURV9UUkFDSyhhdWRpbywgQXVkaW8pOwpAQCAtMTQ4MywxMSArMTQ3NSwxMSBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dXBkYXRlVHJhY2tzKGNvbnN0IEdS
ZWZQdHI8R3N0U3RyZWFtQ29sbGVjdGlvbgogICAgICAgICB9IGVsc2UgaWYgKHR5cGUgJiBHU1Rf
U1RSRUFNX1RZUEVfVklERU8gJiYgbV9wbGF5ZXItPmlzVmlkZW9QbGF5ZXIoKSkKICAgICAgICAg
ICAgIENSRUFURV9UUkFDSyh2aWRlbywgVmlkZW8pOwogICAgICAgICBlbHNlIGlmICh0eXBlICYg
R1NUX1NUUkVBTV9UWVBFX1RFWFQgJiYgIXVzZU1lZGlhU291cmNlKSB7Ci0gICAgICAgICAgICBh
dXRvIHRyYWNrID0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKHRleHRU
cmFja0luZGV4KyssIFdURk1vdmUoc3RyZWFtKSk7CisgICAgICAgICAgICBhdXRvIHRyYWNrID0g
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6Y3JlYXRlKHRleHRUcmFja0luZGV4Kyss
IHN0cmVhbSk7CiAgICAgICAgICAgICBtX3RleHRUcmFja3MuYWRkKHN0cmVhbUlkLCB0cmFjay5j
b3B5UmVmKCkpOwogICAgICAgICAgICAgbV9wbGF5ZXItPmFkZFRleHRUcmFjayh0cmFjay5nZXQo
KSk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgR1NUX1dBUk5JTkcoIlVua25vd24gdHJh
Y2sgdHlwZSBmb3VuZCBmb3Igc3RyZWFtICVzIiwgc3RyZWFtSWQpOworICAgICAgICAgICAgR1NU
X1dBUk5JTkcoIlVua25vd24gdHJhY2sgdHlwZSBmb3VuZCBmb3Igc3RyZWFtICVzIiwgc3RyZWFt
SWQudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogCiAgICAgbV9oYXNBdWRpbyA9ICFtX2F1ZGlvVHJh
Y2tzLmlzRW1wdHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVy
LmNwcAppbmRleCBiODU1YmRiOGNkZjdlZTQ1YTNhMjk2YTMzZjE5ZjA3YWJjYzNkY2E5Li42MDBh
NjdmZGY3NGY2OTFjODU3MTA4MWRiODMwODQzZmMyYTU0MjJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJl
YW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCkBAIC0zMCw4ICszMCwxMiBAQAogI2luY2x1
ZGUgIlRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaCIKIAogI2luY2x1ZGUgIkdTdHJlYW1lckNv
bW1vbi5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNl
LmgiCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDxnc3QvZ3N0Lmg+CiAjaW5j
bHVkZSA8Z3N0L3RhZy90YWcuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBHU1RfREVCVUdfQ0FURUdPUllfRVhURVJO
KHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcpOwpAQCAtMzksMjUgKzQzLDYgQEAgR1NUX0RFQlVH
X0NBVEVHT1JZX0VYVEVSTih3ZWJraXRfbWVkaWFfcGxheWVyX2RlYnVnKTsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1BdG9tU3RyaW5nIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OmdlbmVy
YXRlVW5pcXVlUGxheWJpbjJTdHJlYW1JRChUcmFja1R5cGUgdHJhY2tUeXBlLCB1bnNpZ25lZCBp
bmRleCkKLXsKLSAgICBhdXRvIHByZWZpeCA9IFt0cmFja1R5cGVdKCkgLT4gY2hhciB7Ci0gICAg
ICAgIHN3aXRjaCAodHJhY2tUeXBlKSB7Ci0gICAgICAgIGNhc2UgVHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcjo6VHJhY2tUeXBlOjpBdWRpbzoKLSAgICAgICAgICAgIHJldHVybiAnQSc7Ci0gICAg
ICAgIGNhc2UgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6VHJhY2tUeXBlOjpWaWRlbzoKLSAg
ICAgICAgICAgIHJldHVybiAnVic7Ci0gICAgICAgIGNhc2UgVHJhY2tQcml2YXRlQmFzZUdTdHJl
YW1lcjo6VHJhY2tUeXBlOjpUZXh0OgotICAgICAgICAgICAgcmV0dXJuICdUJzsKLSAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAg
cmV0dXJuICdVJzsKLSAgICAgICAgfQotICAgIH0oKTsKLQotICAgIHJldHVybiBtYWtlU3RyaW5n
KHByZWZpeCwgaW5kZXgpOwotfQotCiBzdGF0aWMgR1JlZlB0cjxHc3RQYWQ+IGZpbmRCZXN0VXBz
dHJlYW1QYWQoR1JlZlB0cjxHc3RQYWQ+IHBhZCkKIHsKICAgICBHUmVmUHRyPEdzdFBhZD4gc2lu
a1BhZCA9IHBhZDsKQEAgLTcxLDEwICs1NiwxMCBAQCBzdGF0aWMgR1JlZlB0cjxHc3RQYWQ+IGZp
bmRCZXN0VXBzdHJlYW1QYWQoR1JlZlB0cjxHc3RQYWQ+IHBhZCkKICAgICByZXR1cm4gc2lua1Bh
ZDsKIH0KIAotVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6VHJhY2tQcml2YXRlQmFzZUdTdHJl
YW1lcihUcmFja1R5cGUgdHlwZSwgVHJhY2tQcml2YXRlQmFzZSogb3duZXIsIHVuc2lnbmVkIGlu
ZGV4LCBHUmVmUHRyPEdzdFBhZD4mJiBwYWQpCitUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpU
cmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyKFRyYWNrUHJpdmF0ZUJhc2UqIG93bmVyLCBnaW50IGlu
ZGV4LCBHUmVmUHRyPEdzdFBhZD4gcGFkKQogICAgIDogbV9ub3RpZmllcihNYWluVGhyZWFkTm90
aWZpZXI8TWFpblRocmVhZE5vdGlmaWNhdGlvbj46OmNyZWF0ZSgpKQogICAgICwgbV9pbmRleChp
bmRleCkKLSAgICAsIG1fdHlwZSh0eXBlKQorICAgICwgbV9ldmVudFByb2JlKDApCiAgICAgLCBt
X293bmVyKG93bmVyKQogewogICAgIHNldFBhZChXVEZNb3ZlKHBhZCkpOwpAQCAtODQsMTUgKzY5
LDE0IEBAIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OlRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFt
ZXIoVHJhY2tUeXBlIHR5cGUsIFRyYWNrUHJpdmF0CiAgICAgdGFnc0NoYW5nZWQoKTsKIH0KIAot
VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcihUcmFj
a1R5cGUgdHlwZSwgVHJhY2tQcml2YXRlQmFzZSogb3duZXIsIHVuc2lnbmVkIGluZGV4LCBHUmVm
UHRyPEdzdFN0cmVhbT4mJiBzdHJlYW0pCitUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpUcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyKFRyYWNrUHJpdmF0ZUJhc2UqIG93bmVyLCBnaW50IGluZGV4
LCBHUmVmUHRyPEdzdFN0cmVhbT4gc3RyZWFtKQogICAgIDogbV9ub3RpZmllcihNYWluVGhyZWFk
Tm90aWZpZXI8TWFpblRocmVhZE5vdGlmaWNhdGlvbj46OmNyZWF0ZSgpKQogICAgICwgbV9pbmRl
eChpbmRleCkKLSAgICAsIG1fc3RyZWFtKFdURk1vdmUoc3RyZWFtKSkKLSAgICAsIG1fdHlwZSh0
eXBlKQorICAgICwgbV9zdHJlYW0oc3RyZWFtKQorICAgICwgbV9ldmVudFByb2JlKDApCiAgICAg
LCBtX293bmVyKG93bmVyKQogewogICAgIEFTU0VSVChtX3N0cmVhbSk7Ci0gICAgbV9pZCA9IGdz
dF9zdHJlYW1fZ2V0X3N0cmVhbV9pZChtX3N0cmVhbS5nZXQoKSk7CiAKICAgICAvLyBXZSBjYW4n
dCBjYWxsIG5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCgpIGRpcmVjdGx5LCBiZWNhdXNlIHdlIG5l
ZWQgdGFnc0NoYW5nZWQoKSB0byBzZXR1cCBtX3RhZ3MuCiAgICAgdGFnc0NoYW5nZWQoKTsKQEAg
LTEwNSwxNyArODksMTIgQEAgdm9pZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpzZXRQYWQo
R1JlZlB0cjxHc3RQYWQ+JiYgcGFkKQogCiAgICAgbV9wYWQgPSBXVEZNb3ZlKHBhZCk7CiAgICAg
bV9iZXN0VXBzdHJlYW1QYWQgPSBmaW5kQmVzdFVwc3RyZWFtUGFkKG1fcGFkKTsKLSAgICBtX2lk
ID0gZ2VuZXJhdGVVbmlxdWVQbGF5YmluMlN0cmVhbUlEKG1fdHlwZSwgbV9pbmRleCk7Ci0KICAg
ICBtX2V2ZW50UHJvYmUgPSBnc3RfcGFkX2FkZF9wcm9iZShtX2Jlc3RVcHN0cmVhbVBhZC5nZXQo
KSwgR1NUX1BBRF9QUk9CRV9UWVBFX0VWRU5UX0RPV05TVFJFQU0sIFtdIChHc3RQYWQqLCBHc3RQ
YWRQcm9iZUluZm8qIGluZm8sIGdwb2ludGVyIHVzZXJEYXRhKSAtPiBHc3RQYWRQcm9iZVJldHVy
biB7CiAgICAgICAgIGF1dG8qIHRyYWNrID0gc3RhdGljX2Nhc3Q8VHJhY2tQcml2YXRlQmFzZUdT
dHJlYW1lcio+KHVzZXJEYXRhKTsKICAgICAgICAgc3dpdGNoIChHU1RfRVZFTlRfVFlQRShnc3Rf
cGFkX3Byb2JlX2luZm9fZ2V0X2V2ZW50KGluZm8pKSkgewogICAgICAgICBjYXNlIEdTVF9FVkVO
VF9UQUc6CiAgICAgICAgICAgICB0YWdzQ2hhbmdlZENhbGxiYWNrKHRyYWNrKTsKICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIEdTVF9FVkVOVF9TVFJFQU1fU1RBUlQ6Ci0gICAgICAg
ICAgICB0cmFjay0+c3RyZWFtQ2hhbmdlZCgpOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTg0LDkgKzE2Myw3
IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6dGFnc0NoYW5nZWQoKQogICAgICAg
ICBtX3RhZ3Muc3dhcCh0YWdzKTsKICAgICB9CiAKLSAgICBtX25vdGlmaWVyLT5ub3RpZnkoTWFp
blRocmVhZE5vdGlmaWNhdGlvbjo6VGFnc0NoYW5nZWQsIFt0aGlzXSB7Ci0gICAgICAgIG5vdGlm
eVRyYWNrT2ZUYWdzQ2hhbmdlZCgpOwotICAgIH0pOworICAgIG1fbm90aWZpZXItPm5vdGlmeShN
YWluVGhyZWFkTm90aWZpY2F0aW9uOjpUYWdzQ2hhbmdlZCwgW3RoaXNdIHsgbm90aWZ5VHJhY2tP
ZlRhZ3NDaGFuZ2VkKCk7IH0pOwogfQogCiBib29sIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6
OmdldExhbmd1YWdlQ29kZShHc3RUYWdMaXN0KiB0YWdzLCBBdG9tU3RyaW5nJiB2YWx1ZSkKQEAg
LTI0MywyMyArMjIwLDYgQEAgdm9pZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpub3RpZnlU
cmFja09mVGFnc0NoYW5nZWQoKQogICAgICAgICBjbGllbnQtPmxhbmd1YWdlQ2hhbmdlZChtX2xh
bmd1YWdlKTsKIH0KIAotdm9pZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpub3RpZnlUcmFj
a09mU3RyZWFtQ2hhbmdlZCgpCi17Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBzdHJlYW1JZChnc3Rf
cGFkX2dldF9zdHJlYW1faWQobV9wYWQuZ2V0KCkpKTsKLSAgICBpZiAoIXN0cmVhbUlkKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBHU1RfSU5GTygiVHJhY2sgJWQgZ290IHN0cmVhbSBzdGFydCBm
b3Igc3RyZWFtICVzLiIsIG1faW5kZXgsIHN0cmVhbUlkLmdldCgpKTsKLSAgICBtX2lkID0gc3Ry
ZWFtSWQuZ2V0KCk7Ci19Ci0KLXZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6c3RyZWFt
Q2hhbmdlZCgpCi17Ci0gICAgbV9ub3RpZmllci0+bm90aWZ5KE1haW5UaHJlYWROb3RpZmljYXRp
b246OlN0cmVhbUNoYW5nZWQsIFt0aGlzXSB7Ci0gICAgICAgIG5vdGlmeVRyYWNrT2ZTdHJlYW1D
aGFuZ2VkKCk7Ci0gICAgfSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQ
cml2YXRlQmFzZUdTdHJlYW1lci5oCmluZGV4IGZmOTRiMGVhYWMwMmE2MjllNWViZWNjMzMxN2Rk
MjNhZjhjYzljODkuLjA5NTc1YWQ5MGY4MGExMGZiZDhhZjEzZmI0NDcxMjhlMDIxZDU2OWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuaApAQCAtNDgsOCArNDgs
NiBAQCBwdWJsaWM6CiAgICAgICAgIFVua25vd24KICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIEF0b21TdHJpbmcgZ2VuZXJhdGVVbmlxdWVQbGF5YmluMlN0cmVhbUlEKFRyYWNr
VHlwZSwgdW5zaWduZWQgaW5kZXgpOwotCiAgICAgR3N0UGFkKiBwYWQoKSBjb25zdCB7IHJldHVy
biBtX3BhZC5nZXQoKTsgfQogICAgIHZvaWQgc2V0UGFkKEdSZWZQdHI8R3N0UGFkPiYmKTsKIApA
QCAtNTcsOSArNTUsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldEFjdGl2ZShi
b29sKSB7IH0KIAotICAgIHZvaWQgc2V0SW5kZXgodW5zaWduZWQgaW5kZXgpIHsgbV9pbmRleCA9
ICBpbmRleDsgfQorICAgIHZvaWQgc2V0SW5kZXgoaW50IGluZGV4KSB7IG1faW5kZXggPSAgaW5k
ZXg7IH0KIAotICAgIEdzdFN0cmVhbSogc3RyZWFtKCkgeyByZXR1cm4gbV9zdHJlYW0uZ2V0KCk7
IH0KKyAgICBHc3RTdHJlYW0qIHN0cmVhbSgpCisgICAgeworICAgICAgICByZXR1cm4gbV9zdHJl
YW0uZ2V0KCk7CisgICAgfQogCiAgICAgLy8gVXNlZCBmb3IgTVNFLCB3aGVyZSB0aGUgaW5pdGlh
bCBjYXBzIG9mIHRoZSBwYWQgYXJlIHJlbGV2YW50IGZvciBpbml0aWFsaXppbmcgdGhlIG1hdGNo
aW5nIHBhZCBpbiB0aGUKICAgICAvLyBwbGF5YmFjayBwaXBlbGluZS4KQEAgLTY3LDExICs2OCwx
MCBAQCBwdWJsaWM6CiAgICAgY29uc3QgR1JlZlB0cjxHc3RDYXBzPiYgaW5pdGlhbENhcHMoKSB7
IHJldHVybiBtX2luaXRpYWxDYXBzOyB9CiAKIHByb3RlY3RlZDoKLSAgICBUcmFja1ByaXZhdGVC
YXNlR1N0cmVhbWVyKFRyYWNrVHlwZSwgVHJhY2tQcml2YXRlQmFzZSosIHVuc2lnbmVkIGluZGV4
LCBHUmVmUHRyPEdzdFBhZD4mJik7Ci0gICAgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcihUcmFj
a1R5cGUsIFRyYWNrUHJpdmF0ZUJhc2UqLCB1bnNpZ25lZCBpbmRleCwgR1JlZlB0cjxHc3RTdHJl
YW0+JiYpOworICAgIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIoVHJhY2tQcml2YXRlQmFzZSog
b3duZXIsIGdpbnQgaW5kZXgsIEdSZWZQdHI8R3N0UGFkPik7CisgICAgVHJhY2tQcml2YXRlQmFz
ZUdTdHJlYW1lcihUcmFja1ByaXZhdGVCYXNlKiBvd25lciwgZ2ludCBpbmRleCwgR1JlZlB0cjxH
c3RTdHJlYW0+KTsKIAogICAgIHZvaWQgbm90aWZ5VHJhY2tPZlRhZ3NDaGFuZ2VkKCk7Ci0gICAg
dm9pZCBub3RpZnlUcmFja09mU3RyZWFtQ2hhbmdlZCgpOwogCiAgICAgZW51bSBNYWluVGhyZWFk
Tm90aWZpY2F0aW9uIHsKICAgICAgICAgVGFnc0NoYW5nZWQgPSAxIDw8IDEsCkBAIC04MCwxNCAr
ODAsMTMgQEAgcHJvdGVjdGVkOgogICAgIH07CiAKICAgICBSZWY8TWFpblRocmVhZE5vdGlmaWVy
PE1haW5UaHJlYWROb3RpZmljYXRpb24+PiBtX25vdGlmaWVyOwotICAgIHVuc2lnbmVkIG1faW5k
ZXg7CisgICAgZ2ludCBtX2luZGV4OwogICAgIEF0b21TdHJpbmcgbV9sYWJlbDsKICAgICBBdG9t
U3RyaW5nIG1fbGFuZ3VhZ2U7Ci0gICAgQXRvbVN0cmluZyBtX2lkOwogICAgIEdSZWZQdHI8R3N0
UGFkPiBtX3BhZDsKICAgICBHUmVmUHRyPEdzdFBhZD4gbV9iZXN0VXBzdHJlYW1QYWQ7CiAgICAg
R1JlZlB0cjxHc3RTdHJlYW0+IG1fc3RyZWFtOwotICAgIHVuc2lnbmVkIGxvbmcgbV9ldmVudFBy
b2JlIHsgMCB9OworICAgIGd1bG9uZyBtX2V2ZW50UHJvYmU7CiAgICAgR1JlZlB0cjxHc3RDYXBz
PiBtX2luaXRpYWxDYXBzOwogCiBwcml2YXRlOgpAQCAtOTYsMTQgKzk1LDExIEBAIHByaXZhdGU6
CiAgICAgdGVtcGxhdGU8Y2xhc3MgU3RyaW5nVHlwZT4KICAgICBib29sIGdldFRhZyhHc3RUYWdM
aXN0KiB0YWdzLCBjb25zdCBnY2hhciogdGFnTmFtZSwgU3RyaW5nVHlwZSYgdmFsdWUpOwogCi0g
ICAgdm9pZCBzdHJlYW1DaGFuZ2VkKCk7Ci0KICAgICBzdGF0aWMgdm9pZCBhY3RpdmVDaGFuZ2Vk
Q2FsbGJhY2soVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lciopOwogICAgIHN0YXRpYyB2b2lkIHRh
Z3NDaGFuZ2VkQ2FsbGJhY2soVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lciopOwogCiAgICAgdm9p
ZCB0YWdzQ2hhbmdlZCgpOwogCi0gICAgVHJhY2tUeXBlIG1fdHlwZTsKICAgICBUcmFja1ByaXZh
dGVCYXNlKiBtX293bmVyOwogICAgIExvY2sgbV90YWdNdXRleDsKICAgICBHUmVmUHRyPEdzdFRh
Z0xpc3Q+IG1fdGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXIuY3BwCmluZGV4IDVjMGVhOWRmYzliMTUzZjJjN2RjNmJlOTE5NDI4ZmMxNWQxOGY2NmMuLmU2
MWY1NWE1NjBmZjgxZjAzNWI5MjNiMzI0OTEwODQwNmEwNWZhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RyYWNrUHJpdmF0ZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzAsMjYgKzMwLDMxIEBACiAj
aW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIuaCIKIAogI2luY2x1ZGUgIk1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oIgorI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OlZpZGVvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyKFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBw
bGF5ZXIsIHVuc2lnbmVkIGluZGV4LCBHUmVmUHRyPEdzdFBhZD4mJiBwYWQpCi0gICAgOiBUcmFj
a1ByaXZhdGVCYXNlR1N0cmVhbWVyKFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OlRyYWNrVHlw
ZTo6VmlkZW8sIHRoaXMsIGluZGV4LCBXVEZNb3ZlKHBhZCkpCitWaWRlb1RyYWNrUHJpdmF0ZUdT
dHJlYW1lcjo6VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIoV2Vha1B0cjxNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI+IHBsYXllciwgZ2ludCBpbmRleCwgR1JlZlB0cjxHc3RQYWQ+IHBhZCkK
KyAgICA6IFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIodGhpcywgaW5kZXgsIHBhZCkKICAgICAs
IG1fcGxheWVyKHBsYXllcikKIHsKKyAgICAvLyBGSVhNRTogR2V0IGEgcmVhbCBJRCBmcm9tIHRo
ZSB0a2hkIGF0b20uCisgICAgbV9pZCA9ICJWIiArIFN0cmluZzo6bnVtYmVyKGluZGV4KTsKIH0K
IAotVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI6OlZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVy
KFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiBwbGF5ZXIsIHVuc2lnbmVkIGlu
ZGV4LCBHUmVmUHRyPEdzdFN0cmVhbT4mJiBzdHJlYW0pCi0gICAgOiBUcmFja1ByaXZhdGVCYXNl
R1N0cmVhbWVyKFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OlRyYWNrVHlwZTo6VmlkZW8sIHRo
aXMsIGluZGV4LCBXVEZNb3ZlKHN0cmVhbSkpCitWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6
VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIoV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXI+IHBsYXllciwgZ2ludCBpbmRleCwgR1JlZlB0cjxHc3RTdHJlYW0+IHN0cmVhbSkKKyAg
ICA6IFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIodGhpcywgaW5kZXgsIHN0cmVhbSkKICAgICAs
IG1fcGxheWVyKHBsYXllcikKIHsKLSAgICBpbnQga2luZDsKKyAgICBnaW50IGtpbmQ7CiAgICAg
YXV0byB0YWdzID0gYWRvcHRHUmVmKGdzdF9zdHJlYW1fZ2V0X3RhZ3MobV9zdHJlYW0uZ2V0KCkp
KTsKIAogICAgIGlmICh0YWdzICYmIGdzdF90YWdfbGlzdF9nZXRfaW50KHRhZ3MuZ2V0KCksICJ3
ZWJraXQtbWVkaWEtc3RyZWFtLWtpbmQiLCAma2luZCkgJiYga2luZCA9PSBzdGF0aWNfY2FzdDxp
bnQ+KFZpZGVvVHJhY2tQcml2YXRlOjpLaW5kOjpNYWluKSkgewotICAgICAgICBhdXRvIHN0cmVh
bUZsYWdzID0gZ3N0X3N0cmVhbV9nZXRfc3RyZWFtX2ZsYWdzKG1fc3RyZWFtLmdldCgpKTsKLSAg
ICAgICAgZ3N0X3N0cmVhbV9zZXRfc3RyZWFtX2ZsYWdzKG1fc3RyZWFtLmdldCgpLCBzdGF0aWNf
Y2FzdDxHc3RTdHJlYW1GbGFncz4oc3RyZWFtRmxhZ3MgfCBHU1RfU1RSRUFNX0ZMQUdfU0VMRUNU
KSk7CisgICAgICAgIEdzdFN0cmVhbUZsYWdzIHN0cmVhbUZsYWdzID0gZ3N0X3N0cmVhbV9nZXRf
c3RyZWFtX2ZsYWdzKHN0cmVhbS5nZXQoKSk7CisgICAgICAgIGdzdF9zdHJlYW1fc2V0X3N0cmVh
bV9mbGFncyhzdHJlYW0uZ2V0KCksIHN0YXRpY19jYXN0PEdzdFN0cmVhbUZsYWdzPihzdHJlYW1G
bGFncyB8IEdTVF9TVFJFQU1fRkxBR19TRUxFQ1QpKTsKICAgICB9CisKKyAgICBtX2lkID0gZ3N0
X3N0cmVhbV9nZXRfc3RyZWFtX2lkKHN0cmVhbS5nZXQoKSk7CiB9CiAKIFZpZGVvVHJhY2tQcml2
YXRlOjpLaW5kIFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyOjpraW5kKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1Ry
YWNrUHJpdmF0ZUdTdHJlYW1lci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggZTUyYTUwN2M2N2Mx
MDQzMjA2MjU2OGM2M2M0ZmE2MWEwNjQ5MjgzYS4uNjM0Y2FhMDRhNGQ0Y2VmOGU0MWYzOTdlYWE5
MDdlMTcxNjA0Mjk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVHJhY2tQcml2YXRlR1N0cmVh
bWVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJUcmFja1ByaXZhdGVCYXNlR1N0cmVh
bWVyLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja1ByaXZhdGUuaCIKIAorI2luY2x1ZGUgPGdzdC9n
c3QuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0zOCwzMyArMzksMzQgQEAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOwogCiBj
bGFzcyBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lciBmaW5hbCA6IHB1YmxpYyBWaWRlb1RyYWNr
UHJpdmF0ZSwgcHVibGljIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWY8VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI+IGNyZWF0ZShXZWFrUHRyPE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4gcGxheWVyLCB1bnNpZ25lZCBpbmRleCwgR1JlZlB0
cjxHc3RQYWQ+JiYgcGFkKQorICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFt
ZXI+IGNyZWF0ZShXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4gcGxheWVyLCBn
aW50IGluZGV4LCBHUmVmUHRyPEdzdFBhZD4gcGFkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIocGxheWVyLCBpbmRleCwgV1RG
TW92ZShwYWQpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJhY2tQcml2
YXRlR1N0cmVhbWVyKHBsYXllciwgaW5kZXgsIHBhZCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBS
ZWY8VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI+IGNyZWF0ZShXZWFrUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcj4gcGxheWVyLCB1bnNpZ25lZCBpbmRleCwgR1JlZlB0cjxHc3RTdHJl
YW0+JiYgc3RyZWFtKQorICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXI+
IGNyZWF0ZShXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4gcGxheWVyLCBnaW50
IGluZGV4LCBHUmVmUHRyPEdzdFN0cmVhbT4gc3RyZWFtKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIocGxheWVyLCBpbmRleCwg
V1RGTW92ZShzdHJlYW0pKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJh
Y2tQcml2YXRlR1N0cmVhbWVyKHBsYXllciwgaW5kZXgsIHN0cmVhbSkpOwogICAgIH0KIAogICAg
IEtpbmQga2luZCgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBkaXNjb25uZWN0KCkgZmluYWw7
CisgICAgdm9pZCBkaXNjb25uZWN0KCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNldFNlbGVjdGVk
KGJvb2wpIGZpbmFsOwotICAgIHZvaWQgc2V0QWN0aXZlKGJvb2wgZW5hYmxlZCkgZmluYWwgeyBz
ZXRTZWxlY3RlZChlbmFibGVkKTsgfQorICAgIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRBY3RpdmUoYm9vbCBlbmFibGVkKSBvdmVycmlkZSB7IHNldFNlbGVj
dGVkKGVuYWJsZWQpOyB9CiAKLSAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1faW5kZXg7IH0KKyAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1faW5kZXg7IH0KIAotICAgIEF0b21TdHJpbmcgaWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2lkOyB9Ci0gICAgQXRvbVN0cmluZyBsYWJlbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
bGFiZWw7IH0KLSAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9sYW5ndWFnZTsgfQorICAgIEF0b21TdHJpbmcgaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX2lkOyB9CisgICAgQXRvbVN0cmluZyBsYWJlbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fbGFiZWw7IH0KKyAgICBBdG9tU3RyaW5nIGxhbmd1YWdlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9sYW5ndWFnZTsgfQogCiBwcml2YXRlOgotICAgIFZpZGVvVHJhY2tQcml2YXRlR1N0
cmVhbWVyKFdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyPiwgdW5zaWduZWQgaW5k
ZXgsIEdSZWZQdHI8R3N0UGFkPiYmKTsKLSAgICBWaWRlb1RyYWNrUHJpdmF0ZUdTdHJlYW1lcihX
ZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcj4sIHVuc2lnbmVkIGluZGV4LCBHUmVm
UHRyPEdzdFN0cmVhbT4mJik7CisgICAgVmlkZW9UcmFja1ByaXZhdGVHU3RyZWFtZXIoV2Vha1B0
cjxNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI+LCBnaW50IGluZGV4LCBHUmVmUHRyPEdzdFBh
ZD4pOworICAgIFZpZGVvVHJhY2tQcml2YXRlR1N0cmVhbWVyKFdlYWtQdHI8TWVkaWFQbGF5ZXJQ
cml2YXRlR1N0cmVhbWVyPiwgZ2ludCBpbmRleCwgR1JlZlB0cjxHc3RTdHJlYW0+KTsKIAorICAg
IEF0b21TdHJpbmcgbV9pZDsKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
cj4gbV9wbGF5ZXI7CiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>