<?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>239887</bug_id>
          
          <creation_ts>2022-04-28 22:42:01 -0700</creation_ts>
          <short_desc>[JSC] Introduce unlinked version of invalidation</short_desc>
          <delta_ts>2022-05-02 22:08:13 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1865356</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-28 22:42:01 -0700</bug_when>
    <thetext>[JSC] Introduce unlinked version of invalidation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865358</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-28 22:46:04 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/433</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865571</commentid>
    <comment_count>2</comment_count>
      <attachid>458616</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-04-29 16:22:23 -0700</bug_when>
    <thetext>Created attachment 458616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866046</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-02 22:07:50 -0700</bug_when>
    <thetext>Committed r293714 (250203@main): &lt;https://commits.webkit.org/250203@main&gt;

Reviewed commits have been landed. Closing PR #433 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866047</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-02 22:08:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/92651186&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458616</attachid>
            <date>2022-04-29 16:22:23 -0700</date>
            <delta_ts>2022-04-29 16:22:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239887-20220429162223.patch</filename>
            <type>text/plain</type>
            <size>32065</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
YjQ0YjRkM2Q2OWNmOTlmYWQ1MDA4NmQ0M2YyZDAzZDUxZGFiMjRlLi5lNDQ1Nzg3YTk0YTZjNTAx
MTFhYWNhN2QyY2IzMTI1ZDkwYWU2ZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OSBAQAorMjAyMi0wNC0yOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEludHJvZHVjZSB1bmxpbmtlZCB2ZXJzaW9uIG9mIGludmFsaWRh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5
ODg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBtYWtlcyBpbnZhbGlkYXRpb24gbWVjaGFuaXNtIHVubGlua2VkIGZvciB1bmxpbmtl
ZCBERkcuCisKKyAgICAgICAgMS4gV2UgYWx3YXlzIHVzZSBDaGVja1RyYXBzIGluc3RlYWQgb2Yg
SW52YWxpZGF0aW9uUG9pbnQgd2l0aCBWTVRyYXBzIHNvIHRoYXQgd2UgZG8gbm90IG5lZWQKKyAg
ICAgICAgICAgdG8gcmVwYXRjaCBleGlzdGluZyBjb2RlLgorICAgICAgICAyLiBXZSBpbnRyb2R1
Y2UgbG9hZC1hbmQtYnJhbmNoIGJhc2VkIEludmFsaWRhdGlvblBvaW50IGZvciB1bmxpbmtlZCBE
Rkcgc28gdGhhdCB3ZSBkbyBub3QgbmVlZAorICAgICAgICAgICB0byByZXBhdGNoIGl0IHRvIGp1
bXAgdG8gT1NSIGV4aXQgd2hlbiB3YXRjaHBvaW50IGZpcmVzLiBXZSBzdG9yZSB0aGlzIGNvbmRp
dGlvbiBpbiBERkc6OkpJVERhdGEKKyAgICAgICAgICAgc28gdGhhdCBjb2RlIGNhbiBxdWlja2x5
IGFjY2VzcyB0byB0aGF0LgorICAgICAgICAzLiBXZSBtYWtlIGlzU3RpbGxWYWxpZCBjb25kaXRp
b25zIGluIERGRzo6Q29tbW9uRGF0YSBhbHdheXMgdHJ1ZSBmb3IgdW5saW5rZWQgREZHIGNvZGUu
IEluc3RlYWQsCisgICAgICAgICAgIHdlIGNoZWNrIGlzSmV0dGlzb25lZCgpIGNvbmRpdGlvbiBv
ZiBDb2RlQmxvY2sgc2luY2UgaXQgd2lsbCBiZWNvbWUgZXZlbnR1YWxseSBwZXIgQ29kZUJsb2Nr
CisgICAgICAgICAgIGluZm9ybWF0aW9uICh3aGlsZSB0aGlzIENvZGVCbG9jayBnZXRzIGludmFs
aWRhdGVkLCB1bmxpbmtlZCBERkcgY29kZSBpdHNlbGYgY2FuIGJlIHVzZWQgZm9yCisgICAgICAg
ICAgIHRoZSBvdGhlciBDb2RlQmxvY2spLgorCisgICAgICAgIEFmdGVyIHRoaXMgY2hhbmdlLCBu
b3csIGp1bXBSZXBsYWNlbWVudHMgZm9yIHVubGlua2VkIERGRyBiZWNvbWVzIGVtcHR5LiBXZSBu
byBsb25nZXIgcmVwYXRjaCB0aGVzZSBpbnZhbGlkYXRpb24gcG9pbnRzLgorCisgICAgICAgICog
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpqZXR0aXNv
bik6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aGFzSW5zdGFsbGVkVk1UcmFwc0JyZWFrcG9p
bnRzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpjYW5JbnN0YWxsVk1UcmFwQnJl
YWtwb2ludHMgY29uc3QpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Omluc3RhbGxWTVRyYXBC
cmVha3BvaW50cyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6aGFzSW5zdGFsbGVkVk1UcmFw
QnJlYWtwb2ludHMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9j
ay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmlzSmV0dGlzb25lZCBjb25zdCk6CisgICAg
ICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRl
Q29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0NvbW1vbkRhdGEuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkNvbW1vbkRhdGE6OmludmFsaWRhdGVMaW5rZWRDb2RlKToK
KyAgICAgICAgKEpTQzo6REZHOjpDb21tb25EYXRhOjp+Q29tbW9uRGF0YSk6CisgICAgICAgIChK
U0M6OkRGRzo6Q29tbW9uRGF0YTo6aW5zdGFsbFZNVHJhcEJyZWFrcG9pbnRzKToKKyAgICAgICAg
KEpTQzo6REZHOjpDb21tb25EYXRhOjppbnZhbGlkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6REZHOjpDb21tb25EYXRhOjppc1ZNVHJhcEJyZWFrcG9pbnQpOiBEZWxldGVkLgorICAgICAg
ICAqIGRmZy9ERkdDb21tb25EYXRhLmg6CisgICAgICAgIChKU0M6OkRGRzo6Q29tbW9uRGF0YTo6
Q29tbW9uRGF0YSk6CisgICAgICAgIChKU0M6OkRGRzo6Q29tbW9uRGF0YTo6aGFzSW5zdGFsbGVk
Vk1UcmFwc0JyZWFrcG9pbnRzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpDb21tb25EYXRh
Ojppc1VubGlua2VkIGNvbnN0KToKKyAgICAgICAgKEpTQzo6REZHOjpDb21tb25EYXRhOjppc1N0
aWxsVmFsaWQgY29uc3QpOgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAgICogZGZnL0RGR0pJVENvZGUuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OkpJVENvZGU6OkpJVENvZGUpOgorICAgICAgICAqIGRmZy9ERkdKSVRDb2Rl
Lmg6CisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpKSVRDb21waWxlcjo6bGluayk6CisgICAgICAgICogZGZnL0RGR09TUkVudHJ5LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpwcmVwYXJlT1NSRW50cnkpOgorICAgICAgICAoSlNDOjpERkc6OnBy
ZXBhcmVDYXRjaE9TUkVudHJ5KToKKyAgICAgICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6UGxhbjo6ZmluYWxpemUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbnZh
bGlkYXRpb25Qb2ludCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVDaGVja1RyYXBzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdElu
dmFsaWRhdGlvblBvaW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTEpJVENvZGUuY3BwOgorICAgICAgICAoSlNDOjpG
VEw6OkpJVENvZGU6OkpJVENvZGUpOgorICAgICAgICAqIGZ0bC9GVExKSVRDb2RlLmg6CisgICAg
ICAgIChKU0M6OkZUTDo6SklUQ29kZTo6aXNVbmxpbmtlZCBjb25zdCk6CisgICAgICAgICogZnRs
L0ZUTE9TUkVudHJ5LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpwcmVwYXJlT1NSRW50cnkpOgor
ICAgICAgICAqIGppdC9KSVRDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6SklUQ29kZTo6aXNVbmxp
bmtlZCBjb25zdCk6CisgICAgICAgICogaml0L0pJVENvZGUuaDoKKyAgICAgICAgKiBydW50aW1l
L1ZNVHJhcHMuY3BwOgorICAgICAgICAoSlNDOjpWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFr
cG9pbnRzKToKKyAgICAgICAgKEpTQzo6Vk1UcmFwczo6aGFuZGxlVHJhcHMpOgorCiAyMDIyLTA0
LTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10g
VXNlIEZpeGVkVmVjdG9yIGluIEp1bXBSZXBsYWNlbWVudHMgYW5kIFZhcmlhYmxlRXZlbnRTdHJl
YW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXgg
NTcwZmUzMTA0MWM2ZTE2ZDI5YjMzZGZkMTFkZjVkZWVlZWRiZjMxNi4uNzdiOTRiZjRmMDQ4NjVm
ZGQ3NzczMGM4ZDNmODVkN2E1ZjhjNGRjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTIyNTAsMTAgKzIyNTAsMjAgQEAgdm9pZCBDb2RlQmxv
Y2s6OmpldHRpc29uKFByb2ZpbGVyOjpKZXR0aXNvblJlYXNvbiByZWFzb24sIFJlb3B0aW1pemF0
aW9uTW9kZSBtb2QKICAgICAgICAgICAgIGNvbXBpbGF0aW9uLT5zZXRKZXR0aXNvblJlYXNvbihy
ZWFzb24sIGRldGFpbCk7CiAgICAgICAgIAogICAgICAgICAvLyBUaGlzIGFjY29tcGxpc2hlcyAo
MSksIGFuZCBkb2VzIGl0cyBvd24gYm9vay1rZWVwaW5nIGFib3V0IHdoZXRoZXIgaXQgaGFzIGFs
cmVhZHkgaGFwcGVuZWQuCi0gICAgICAgIGlmICghaml0Q29kZSgpLT5kZmdDb21tb24oKS0+aW52
YWxpZGF0ZSgpKSB7Ci0gICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IGJlZW4gaW52YWxpZGF0
ZWQuCi0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh0aGlzICE9IHJlcGxhY2VtZW50KCkgfHwg
KHZtLmhlYXAuY3VycmVudFRocmVhZElzRG9pbmdHQ1dvcmsoKSAmJiAhdm0uaGVhcC5pc01hcmtl
ZChvd25lckV4ZWN1dGFibGUoKSkpKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYg
KGF1dG8qIGppdERhdGEgPSBkZmdKSVREYXRhKCkpIHsKKyAgICAgICAgICAgIGlmIChqaXREYXRh
LT5pc0ludmFsaWRhdGVkKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IGJl
ZW4gaW52YWxpZGF0ZWQuCisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQodGhpcyAhPSBy
ZXBsYWNlbWVudCgpIHx8ICh2bS5oZWFwLmN1cnJlbnRUaHJlYWRJc0RvaW5nR0NXb3JrKCkgJiYg
IXZtLmhlYXAuaXNNYXJrZWQob3duZXJFeGVjdXRhYmxlKCkpKSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaml0RGF0YS0+aW52YWxpZGF0ZSgp
OworICAgICAgICB9CisgICAgICAgIGlmICghaml0Q29kZSgpLT5pc1VubGlua2VkKCkpIHsKKyAg
ICAgICAgICAgIGlmICghaml0Q29kZSgpLT5kZmdDb21tb24oKS0+aW52YWxpZGF0ZUxpbmtlZENv
ZGUoKSkgeworICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGFscmVhZHkgYmVlbiBpbnZhbGlkYXRl
ZC4KKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh0aGlzICE9IHJlcGxhY2VtZW50KCkg
fHwgKHZtLmhlYXAuY3VycmVudFRocmVhZElzRG9pbmdHQ1dvcmsoKSAmJiAhdm0uaGVhcC5pc01h
cmtlZChvd25lckV4ZWN1dGFibGUoKSkpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC0zNDc5LDEzICszNDg5LDEzIEBA
IHZvaWQgQ29kZUJsb2NrOjpqaXROZXh0SW52b2NhdGlvbigpCiAgICAgbV91bmxpbmtlZENvZGUt
PmxsaW50RXhlY3V0ZUNvdW50ZXIoKS5zZXROZXdUaHJlc2hvbGQoMCwgdGhpcyk7CiB9CiAKLWJv
b2wgQ29kZUJsb2NrOjpoYXNJbnN0YWxsZWRWTVRyYXBCcmVha3BvaW50cygpIGNvbnN0Citib29s
IENvZGVCbG9jazo6aGFzSW5zdGFsbGVkVk1UcmFwc0JyZWFrcG9pbnRzKCkgY29uc3QKIHsKICNp
ZiBFTkFCTEUoU0lHTkFMX0JBU0VEX1ZNX1RSQVBTKQogICAgIC8vIFRoaXMgZnVuY3Rpb24gbWF5
IGJlIGNhbGxlZCBmcm9tIGEgc2lnbmFsIGhhbmRsZXIuIFdlIG5lZWQgdG8gYmUKICAgICAvLyBj
YXJlZnVsIHRvIG5vdCBjYWxsIGFueXRoaW5nIHRoYXQgaXMgbm90IHNpZ25hbCBoYW5kbGVyIHNh
ZmUsIGUuZy4KICAgICAvLyB3ZSBzaG91bGQgbm90IHBlcnR1cmIgdGhlIHJlZkNvdW50IG9mIG1f
aml0Q29kZS4KLSAgICBpZiAoIUpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChqaXRUeXBlKCkpKQor
ICAgIGlmICghY2FuSW5zdGFsbFZNVHJhcEJyZWFrcG9pbnRzKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICByZXR1cm4gbV9qaXRDb2RlLT5kZmdDb21tb24oKS0+aGFzSW5zdGFsbGVkVk1U
cmFwc0JyZWFrcG9pbnRzKCk7CiAjZWxzZQpAQCAtMzQ5Myw3ICszNTAzLDcgQEAgYm9vbCBDb2Rl
QmxvY2s6Omhhc0luc3RhbGxlZFZNVHJhcEJyZWFrcG9pbnRzKCkgY29uc3QKICNlbmRpZgogfQog
Ci1ib29sIENvZGVCbG9jazo6aW5zdGFsbFZNVHJhcEJyZWFrcG9pbnRzKCkKK2Jvb2wgQ29kZUJs
b2NrOjpjYW5JbnN0YWxsVk1UcmFwQnJlYWtwb2ludHMoKSBjb25zdAogewogI2lmIEVOQUJMRShT
SUdOQUxfQkFTRURfVk1fVFJBUFMpCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBtYXkgYmUgY2FsbGVk
IGZyb20gYSBzaWduYWwgaGFuZGxlci4gV2UgbmVlZCB0byBiZQpAQCAtMzUwMSw2ICszNTExLDIy
IEBAIGJvb2wgQ29kZUJsb2NrOjppbnN0YWxsVk1UcmFwQnJlYWtwb2ludHMoKQogICAgIC8vIHdl
IHNob3VsZCBub3QgcGVydHVyYiB0aGUgcmVmQ291bnQgb2YgbV9qaXRDb2RlLgogICAgIGlmICgh
SklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGppdFR5cGUoKSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAobV9qaXRDb2RlLT5pc1VubGlua2VkKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9
CisKK2Jvb2wgQ29kZUJsb2NrOjppbnN0YWxsVk1UcmFwQnJlYWtwb2ludHMoKQoreworI2lmIEVO
QUJMRShTSUdOQUxfQkFTRURfVk1fVFJBUFMpCisgICAgLy8gVGhpcyBmdW5jdGlvbiBtYXkgYmUg
Y2FsbGVkIGZyb20gYSBzaWduYWwgaGFuZGxlci4gV2UgbmVlZCB0byBiZQorICAgIC8vIGNhcmVm
dWwgdG8gbm90IGNhbGwgYW55dGhpbmcgdGhhdCBpcyBub3Qgc2lnbmFsIGhhbmRsZXIgc2FmZSwg
ZS5nLgorICAgIC8vIHdlIHNob3VsZCBub3QgcGVydHVyYiB0aGUgcmVmQ291bnQgb2YgbV9qaXRD
b2RlLgorICAgIGlmICghY2FuSW5zdGFsbFZNVHJhcEJyZWFrcG9pbnRzKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBhdXRvJiBjb21tb25EYXRhID0gKm1faml0Q29kZS0+ZGZnQ29tbW9u
KCk7CiAgICAgY29tbW9uRGF0YS5pbnN0YWxsVk1UcmFwQnJlYWtwb2ludHModGhpcyk7CiAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgK
aW5kZXggOGIzNGI5MzRkMTA5YjllM2FiNmJiOTJjMzk0NTgzYzI5NDYyNGYwZi4uYjIxZTllZWUy
Y2I2MmM0MTllOGY0YmE0NTdlM2FmOWU0YTkyMDc0NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtMjI3LDcgKzIyNyw4IEBAIGNsYXNzIENvZGVCbG9j
ayA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgSlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUo
KSBjb25zdCB7IHJldHVybiBtX3VubGlua2VkQ29kZS0+c2NyaXB0TW9kZSgpOyB9CiAKLSAgICBi
b29sIGhhc0luc3RhbGxlZFZNVHJhcEJyZWFrcG9pbnRzKCkgY29uc3Q7CisgICAgYm9vbCBoYXNJ
bnN0YWxsZWRWTVRyYXBzQnJlYWtwb2ludHMoKSBjb25zdDsKKyAgICBib29sIGNhbkluc3RhbGxW
TVRyYXBCcmVha3BvaW50cygpIGNvbnN0OwogICAgIGJvb2wgaW5zdGFsbFZNVHJhcEJyZWFrcG9p
bnRzKCk7CiAKICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNUZW1wb3JhcnlSZWdpc3RlcihWaXJ0
dWFsUmVnaXN0ZXIgcmVnKQpAQCAtNzM5LDYgKzc0MCw4IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1
YmxpYyBKU0NlbGwgewogICAgICAgICBtX251bUJyZWFrcG9pbnRzIC09IG51bUJyZWFrcG9pbnRz
OwogICAgIH0KIAorICAgIGJvb2wgaXNKZXR0aXNvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0pl
dHRpc29uZWQ7IH0KKwogICAgIGVudW0gU3RlcHBpbmdNb2RlIHsKICAgICAgICAgU3RlcHBpbmdN
b2RlRGlzYWJsZWQsCiAgICAgICAgIFN0ZXBwaW5nTW9kZUVuYWJsZWQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggZDFkMDFmZTk0YWE5
YWUxZjYzYTc2ZDE1YmQxODQ3Yzg1ZjE1N2Q4Ni4uNzhkMjUwNjE1ODc4NTAzYjU2OGQ5Nzc1YTA4
ODc3MjdjNThiMGJiNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
eXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKQEAgLTgxMjQsNyArODEyNCw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6
OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IGNhc2Ugb3BfY2hlY2tfdHJhcHM6IHsKLSAgICAgICAgICAgIGFkZFRvR3JhcGgoT3B0aW9uczo6
dXNlUG9sbGluZ1RyYXBzKCkgPyBDaGVja1RyYXBzIDogSW52YWxpZGF0aW9uUG9pbnQpOworICAg
ICAgICAgICAgYWRkVG9HcmFwaCgoT3B0aW9uczo6dXNlUG9sbGluZ1RyYXBzKCkgfHwgbV9ncmFw
aC5tX3BsYW4uaXNVbmxpbmtlZCgpKSA/IENoZWNrVHJhcHMgOiBJbnZhbGlkYXRpb25Qb2ludCk7
CiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9jaGVja190cmFwcyk7CiAgICAgICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5jcHAKaW5kZXggMWQ1MmEz
MDEyNjQyOTFlYjk4NmY3YTFkOTliMzU0YjllZjI1NzJjZi4uOTk1MWJmMzg1MDI4ODYwNDk4Mjcz
ODhjYzI2MjBjODFkZDUyMjkzZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb21tb25EYXRhLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bW1vbkRhdGEuY3BwCkBAIC01NSwyOCArNTUsMzYgQEAgaW5saW5lIEhhc2hNYXA8dm9pZCosIENv
ZGVCbG9jayo+JiBwY0NvZGVCbG9ja01hcCgpIFdURl9SRVFVSVJFU19MT0NLKHBjQ29kZUJsb2MK
ICAgICByZXR1cm4gcGNDb2RlQmxvY2tNYXA7CiB9CiAKLWJvb2wgQ29tbW9uRGF0YTo6aW52YWxp
ZGF0ZSgpCitib29sIENvbW1vbkRhdGE6OmludmFsaWRhdGVMaW5rZWRDb2RlKCkKIHsKLSAgICBp
ZiAoIWlzU3RpbGxWYWxpZCkKKyAgICBpZiAobV9pc1VubGlua2VkKSB7CisgICAgICAgIEFTU0VS
VChtX2p1bXBSZXBsYWNlbWVudHMuaXNFbXB0eSgpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgaWYgKCFtX2lzU3RpbGxWYWxpZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgaWYgKFVOTElLRUxZKGhhc1ZNVHJhcHNCcmVha3BvaW50c0luc3RhbGxlZCkpIHsKKyAg
ICBpZiAoVU5MSUtFTFkobV9oYXNWTVRyYXBzQnJlYWtwb2ludHNJbnN0YWxsZWQpKSB7CiAgICAg
ICAgIExvY2tlciBsb2NrZXIgeyBwY0NvZGVCbG9ja01hcExvY2sgfTsKICAgICAgICAgYXV0byYg
bWFwID0gcGNDb2RlQmxvY2tNYXAoKTsKICAgICAgICAgZm9yIChhdXRvJiBqdW1wUmVwbGFjZW1l
bnQgOiBtX2p1bXBSZXBsYWNlbWVudHMpCiAgICAgICAgICAgICBtYXAucmVtb3ZlKGp1bXBSZXBs
YWNlbWVudC5kYXRhTG9jYXRpb24oKSk7Ci0gICAgICAgIGhhc1ZNVHJhcHNCcmVha3BvaW50c0lu
c3RhbGxlZCA9IGZhbHNlOworICAgICAgICBtX2hhc1ZNVHJhcHNCcmVha3BvaW50c0luc3RhbGxl
ZCA9IGZhbHNlOwogICAgIH0KIAogICAgIGZvciAodW5zaWduZWQgaSA9IG1fanVtcFJlcGxhY2Vt
ZW50cy5zaXplKCk7IGktLTspCiAgICAgICAgIG1fanVtcFJlcGxhY2VtZW50c1tpXS5maXJlKCk7
Ci0gICAgaXNTdGlsbFZhbGlkID0gZmFsc2U7CisKKyAgICBtX2lzU3RpbGxWYWxpZCA9IGZhbHNl
OwogICAgIHJldHVybiB0cnVlOwogfQogCiBDb21tb25EYXRhOjp+Q29tbW9uRGF0YSgpCiB7Ci0g
ICAgaWYgKFVOTElLRUxZKGhhc1ZNVHJhcHNCcmVha3BvaW50c0luc3RhbGxlZCkpIHsKKyAgICBp
ZiAobV9pc1VubGlua2VkKQorICAgICAgICByZXR1cm47CisgICAgaWYgKFVOTElLRUxZKG1faGFz
Vk1UcmFwc0JyZWFrcG9pbnRzSW5zdGFsbGVkKSkgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsg
cGNDb2RlQmxvY2tNYXBMb2NrIH07CiAgICAgICAgIGF1dG8mIG1hcCA9IHBjQ29kZUJsb2NrTWFw
KCk7CiAgICAgICAgIGZvciAoYXV0byYganVtcFJlcGxhY2VtZW50IDogbV9qdW1wUmVwbGFjZW1l
bnRzKQpAQCAtODYsMTAgKzk0LDExIEBAIENvbW1vbkRhdGE6On5Db21tb25EYXRhKCkKIAogdm9p
ZCBDb21tb25EYXRhOjppbnN0YWxsVk1UcmFwQnJlYWtwb2ludHMoQ29kZUJsb2NrKiBvd25lcikK
IHsKKyAgICBBU1NFUlQoIW1faXNVbmxpbmtlZCk7CiAgICAgTG9ja2VyIGxvY2tlciB7IHBjQ29k
ZUJsb2NrTWFwTG9jayB9OwotICAgIGlmICghaXNTdGlsbFZhbGlkIHx8IGhhc1ZNVHJhcHNCcmVh
a3BvaW50c0luc3RhbGxlZCkKKyAgICBpZiAoIW1faXNTdGlsbFZhbGlkIHx8IG1faGFzVk1UcmFw
c0JyZWFrcG9pbnRzSW5zdGFsbGVkKQogICAgICAgICByZXR1cm47Ci0gICAgaGFzVk1UcmFwc0Jy
ZWFrcG9pbnRzSW5zdGFsbGVkID0gdHJ1ZTsKKyAgICBtX2hhc1ZNVHJhcHNCcmVha3BvaW50c0lu
c3RhbGxlZCA9IHRydWU7CiAKICAgICBhdXRvJiBtYXAgPSBwY0NvZGVCbG9ja01hcCgpOwogI2lm
ICFkZWZpbmVkKE5ERUJVRykKQEAgLTEyMCwxNyArMTI5LDYgQEAgQ29kZUJsb2NrKiBjb2RlQmxv
Y2tGb3JWTVRyYXBQQyh2b2lkKiBwYykKICAgICByZXR1cm4gcmVzdWx0LT52YWx1ZTsKIH0KIAot
Ym9vbCBDb21tb25EYXRhOjppc1ZNVHJhcEJyZWFrcG9pbnQodm9pZCogYWRkcmVzcykKLXsKLSAg
ICBpZiAoIWlzU3RpbGxWYWxpZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGZvciAodW5z
aWduZWQgaSA9IG1fanVtcFJlcGxhY2VtZW50cy5zaXplKCk7IGktLTspIHsKLSAgICAgICAgaWYg
KGFkZHJlc3MgPT0gbV9qdW1wUmVwbGFjZW1lbnRzW2ldLmRhdGFMb2NhdGlvbigpKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQogdm9pZCBD
b21tb25EYXRhOjp2YWxpZGF0ZVJlZmVyZW5jZXMoY29uc3QgVHJhY2tlZFJlZmVyZW5jZXMmIHRy
YWNrZWRSZWZlcmVuY2VzKQogewogICAgIGlmIChJbmxpbmVDYWxsRnJhbWVTZXQqIHNldCA9IGlu
bGluZUNhbGxGcmFtZXMuZ2V0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ29tbW9uRGF0YS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21t
b25EYXRhLmgKaW5kZXggNTI3NTYzNmE1NzU4ZjRhMTBiMGM4NTViNDc1N2E2ZmY3MWNlMjg1ZS4u
N2I1ZTUyZjljN2ExZGJhNjU0Nzk5MzA5ZWVhMzhhOGY0YjVlYzcwMCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmgKQEAgLTc5LDE3ICs3OSwyMCBAQCBzdHJ1Y3Qg
V2Vha1JlZmVyZW5jZVRyYW5zaXRpb24gewogY2xhc3MgQ29tbW9uRGF0YSA6IHB1YmxpYyBNYXRo
SUNIb2xkZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbW1vbkRhdGEpOwogcHVibGlj
OgotICAgIENvbW1vbkRhdGEoKQorICAgIENvbW1vbkRhdGEoYm9vbCBpc1VubGlua2VkKQogICAg
ICAgICA6IGNvZGVPcmlnaW5zKENvZGVPcmlnaW5Qb29sOjpjcmVhdGUoKSkKKyAgICAgICAgLCBt
X2lzVW5saW5rZWQoaXNVbmxpbmtlZCkKICAgICB7IH0KICAgICB+Q29tbW9uRGF0YSgpOwogICAg
IAogICAgIHZvaWQgc2hyaW5rVG9GaXQoKTsKICAgICAKLSAgICBib29sIGludmFsaWRhdGUoKTsg
Ly8gUmV0dXJucyB0cnVlIGlmIHdlIGRpZCBpbnZhbGlkYXRlLCBvciBmYWxzZSBpZiB0aGUgY29k
ZSBibG9jayB3YXMgYWxyZWFkeSBpbnZhbGlkYXRlZC4KLSAgICBib29sIGhhc0luc3RhbGxlZFZN
VHJhcHNCcmVha3BvaW50cygpIGNvbnN0IHsgcmV0dXJuIGlzU3RpbGxWYWxpZCAmJiBoYXNWTVRy
YXBzQnJlYWtwb2ludHNJbnN0YWxsZWQ7IH0KKyAgICBib29sIGludmFsaWRhdGVMaW5rZWRDb2Rl
KCk7IC8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBkaWQgaW52YWxpZGF0ZSwgb3IgZmFsc2UgaWYgdGhl
IGNvZGUgYmxvY2sgd2FzIGFscmVhZHkgaW52YWxpZGF0ZWQuCisgICAgYm9vbCBoYXNJbnN0YWxs
ZWRWTVRyYXBzQnJlYWtwb2ludHMoKSBjb25zdCB7IHJldHVybiBtX2lzU3RpbGxWYWxpZCAmJiBt
X2hhc1ZNVHJhcHNCcmVha3BvaW50c0luc3RhbGxlZDsgfQogICAgIHZvaWQgaW5zdGFsbFZNVHJh
cEJyZWFrcG9pbnRzKENvZGVCbG9jayogb3duZXIpOwotICAgIGJvb2wgaXNWTVRyYXBCcmVha3Bv
aW50KHZvaWQqIGFkZHJlc3MpOworCisgICAgYm9vbCBpc1VubGlua2VkKCkgY29uc3QgeyByZXR1
cm4gbV9pc1VubGlua2VkOyB9CisgICAgYm9vbCBpc1N0aWxsVmFsaWQoKSBjb25zdCB7IHJldHVy
biBtX2lzU3RpbGxWYWxpZDsgfQogCiAgICAgQ2F0Y2hFbnRyeXBvaW50RGF0YSogY2F0Y2hPU1JF
bnRyeURhdGFGb3JCeXRlY29kZUluZGV4KEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleCkKICAg
ICB7CkBAIC0xMzYsOCArMTM5LDYgQEAgY2xhc3MgQ29tbW9uRGF0YSA6IHB1YmxpYyBNYXRoSUNI
b2xkZXIgewogICAgIAogICAgIFNjcmF0Y2hCdWZmZXIqIGNhdGNoT1NSRW50cnlCdWZmZXI7CiAg
ICAgUmVmUHRyPFByb2ZpbGVyOjpDb21waWxhdGlvbj4gY29tcGlsYXRpb247Ci0gICAgYm9vbCBp
c1N0aWxsVmFsaWQgeyB0cnVlIH07Ci0gICAgYm9vbCBoYXNWTVRyYXBzQnJlYWtwb2ludHNJbnN0
YWxsZWQgeyBmYWxzZSB9OwogICAgIAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgQmFnPGRv
dWJsZT4gZG91YmxlQ29uc3RhbnRzOwpAQCAtMTQ1LDYgKzE0NiwxMSBAQCBjbGFzcyBDb21tb25E
YXRhIDogcHVibGljIE1hdGhJQ0hvbGRlciB7CiAgICAgCiAgICAgdW5zaWduZWQgZnJhbWVSZWdp
c3RlckNvdW50IHsgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpIH07CiAgICAg
dW5zaWduZWQgcmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhpdCB7IHN0ZDo6bnVtZXJpY19saW1p
dHM8dW5zaWduZWQ+OjptYXgoKSB9OworCitwcml2YXRlOgorICAgIGJvb2wgbV9pc1VubGlua2Vk
IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNTdGlsbFZhbGlkIHsgdHJ1ZSB9OworICAgIGJvb2wg
bV9oYXNWTVRyYXBzQnJlYWtwb2ludHNJbnN0YWxsZWQgeyBmYWxzZSB9OwogfTsKIAogQ29kZUJs
b2NrKiBjb2RlQmxvY2tGb3JWTVRyYXBQQyh2b2lkKiBwYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNWRkY2M3NGVhOTE5YTgxMzY0NGQ4NzZjMTA0ZTZhMTAw
OTAzZjU2ZS4uMDMyOTc3YWM3NDYyYzQzNWU0MWQ5NjRhYTRjN2IyMDZlNDdlY2I5YiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtNDUzLDcgKzQ1Myw3IEBAIGJv
b2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKIAogICAgIGNhc2UgQ2hlY2tUcmFw
czoKICAgICAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTQzMjMKLSAgICAgICAgQVNTRVJUKE9wdGlvbnM6OnVzZVBvbGxpbmdUcmFwcygpKTsK
KyAgICAgICAgQVNTRVJUKE9wdGlvbnM6OnVzZVBvbGxpbmdUcmFwcygpIHx8IGdyYXBoLm1fcGxh
bi5pc1VubGlua2VkKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGNhc2UgQ29tcGFy
ZUVxOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb2RlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5jcHAKaW5kZXggYmVjY2I0
YjQ2MDBmZDM5MjcxZWEwY2EwOTljYzBkNGUwNjRkYmFlNC4uY2MxMzJkMmM4NDQxZmU5Njg1Y2M5
MDdiOTlmZDdmNjlmZjFmY2Q3ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb2RlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENv
ZGUuY3BwCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
IAogSklUQ29kZTo6SklUQ29kZShib29sIGlzVW5saW5rZWQpCiAgICAgOiBEaXJlY3RKSVRDb2Rl
KEpJVFR5cGU6OkRGR0pJVCkKLSAgICAsIGlzVW5saW5rZWQoaXNVbmxpbmtlZCkKKyAgICAsIGNv
bW1vbihpc1VubGlua2VkKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29k
ZS5oCmluZGV4IDlmY2I2ZjViOTQ2N2MwZDg1MDU3ZTFlYzIyNDI4NTliYjZhMzFiYjEuLmYyOTc0
OGE3OWFlYzg4ZDE0NWU0NWU3N2FhYTczOTM5MmI1OWMzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29kZS5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIEpJVERhdGEgZmluYWwg
OiBwdWJsaWMgVHJhaWxpbmdBcnJheTxKSVREYXRhLCB2b2lkKj4gewogICAgIHVzaW5nIEV4aXRW
ZWN0b3IgPSBGaXhlZFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVSZWY8T1NSRXhpdFB0clRhZz4+
OwogCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkV4aXRzKCkgeyByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKEpJVERhdGEsIG1fZXhpdHMpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZz
ZXRPZkludmFsaWRhdGlvbigpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKSVREYXRhLCBtX2lu
dmFsaWRhdGlvbik7IH0KIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SklURGF0YT4gY3Jl
YXRlKHVuc2lnbmVkIHBvb2xTaXplLCBFeGl0VmVjdG9yJiYgZXhpdHMpCiAgICAgewpAQCAtNjks
NiArNzAsMTMgQEAgY2xhc3MgSklURGF0YSBmaW5hbCA6IHB1YmxpYyBUcmFpbGluZ0FycmF5PEpJ
VERhdGEsIHZvaWQqPiB7CiAgICAgfQogICAgIGNvbnN0IE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxP
U1JFeGl0UHRyVGFnPiYgZXhpdENvZGUodW5zaWduZWQgZXhpdEluZGV4KSBjb25zdCB7IHJldHVy
biBtX2V4aXRzW2V4aXRJbmRleF07IH0KIAorICAgIGJvb2wgaXNJbnZhbGlkYXRlZCgpIGNvbnN0
IHsgcmV0dXJuICEhbV9pbnZhbGlkYXRpb247IH0KKworICAgIHZvaWQgaW52YWxpZGF0ZSgpCisg
ICAgeworICAgICAgICBtX2ludmFsaWRhdGlvbiA9IDE7CisgICAgfQorCiBwcml2YXRlOgogICAg
IGV4cGxpY2l0IEpJVERhdGEodW5zaWduZWQgc2l6ZSwgRXhpdFZlY3RvciYmIGV4aXRzKQogICAg
ICAgICA6IEJhc2Uoc2l6ZSkKQEAgLTc3LDYgKzg1LDcgQEAgY2xhc3MgSklURGF0YSBmaW5hbCA6
IHB1YmxpYyBUcmFpbGluZ0FycmF5PEpJVERhdGEsIHZvaWQqPiB7CiAgICAgfQogCiAgICAgRXhp
dFZlY3RvciBtX2V4aXRzOworICAgIHVpbnQ4X3QgbV9pbnZhbGlkYXRpb24geyAwIH07CiB9Owog
CiBjbGFzcyBKSVRDb2RlIGZpbmFsIDogcHVibGljIERpcmVjdEpJVENvZGUgewpAQCAtODYsNiAr
OTUsNyBAQCBjbGFzcyBKSVRDb2RlIGZpbmFsIDogcHVibGljIERpcmVjdEpJVENvZGUgewogICAg
IAogICAgIENvbW1vbkRhdGEqIGRmZ0NvbW1vbigpIGZpbmFsOwogICAgIEpJVENvZGUqIGRmZygp
IGZpbmFsOworICAgIGJvb2wgaXNVbmxpbmtlZCgpIGNvbnN0IHsgcmV0dXJuIGNvbW1vbi5pc1Vu
bGlua2VkKCk7IH0KICAgICAKICAgICBPU1JFbnRyeURhdGEqIG9zckVudHJ5RGF0YUZvckJ5dGVj
b2RlSW5kZXgoQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4KQogICAgIHsKQEAgLTE4MCw3ICsx
OTAsNiBAQCBjbGFzcyBKSVRDb2RlIGZpbmFsIDogcHVibGljIERpcmVjdEpJVENvZGUgewogICAg
IHVuc2lnbmVkIG9zckVudHJ5UmV0cnkgeyAwIH07CiAgICAgYm9vbCBhYmFuZG9uT1NSRW50cnkg
eyBmYWxzZSB9OwogI2VuZGlmIC8vIEVOQUJMRShGVExfSklUKQotICAgIGJvb2wgaXNVbmxpbmtl
ZCB7IGZhbHNlIH07CiB9OwogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwCmluZGV4IDM2MmQwYmZkZDgyNGRk
MjBjMTBmMmI3MDliODI4ZmFkNDdhYzNmNDUuLmJiMTU2YTJmNTk5ZWMyNmRlOTAxNzFiNThkODIw
ZDJhODgxZDQyMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGls
ZXIuY3BwCkBAIC0yOTEsMjUgKzI5MSwzMiBAQCB2b2lkIEpJVENvbXBpbGVyOjpsaW5rKExpbmtC
dWZmZXImIGxpbmtCdWZmZXIpCiAgICAgaWYgKCFtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJh
bWVSb2xsYmFjay5lbXB0eSgpKQogICAgICAgICBsaW5rQnVmZmVyLmxpbmsobV9leGNlcHRpb25D
aGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2ssIENvZGVMb2NhdGlvbkxhYmVsKHZtKCkuZ2V0Q1RJ
U3R1YihoYW5kbGVFeGNlcHRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tHZW5lcmF0b3IpLnJldGFn
Z2VkQ29kZTxOb1B0clRhZz4oKSkpOwogCi0gICAgVmVjdG9yPEp1bXBSZXBsYWNlbWVudD4ganVt
cFJlcGxhY2VtZW50czsKLSAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+
IG9zckV4aXRUaHVuayA9IHZtKCkuZ2V0Q1RJU3R1Yihvc3JFeGl0R2VuZXJhdGlvblRodW5rR2Vu
ZXJhdG9yKTsKLSAgICBhdXRvIHRhcmdldCA9IENvZGVMb2NhdGlvbkxhYmVsPEpJVFRodW5rUHRy
VGFnPihvc3JFeGl0VGh1bmsuY29kZSgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bV9vc3JFeGl0LnNpemUoKTsgKytpKSB7Ci0gICAgICAgIE9TUkV4aXRDb21waWxhdGlvbkluZm8m
IGluZm8gPSBtX2V4aXRDb21waWxhdGlvbkluZm9baV07Ci0KLSAgICAgICAgaWYgKCFtX2dyYXBo
Lm1fcGxhbi5pc1VubGlua2VkKCkpIHsKKyAgICBpZiAoIW1fZ3JhcGgubV9wbGFuLmlzVW5saW5r
ZWQoKSkgeworICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IG9z
ckV4aXRUaHVuayA9IHZtKCkuZ2V0Q1RJU3R1Yihvc3JFeGl0R2VuZXJhdGlvblRodW5rR2VuZXJh
dG9yKTsKKyAgICAgICAgYXV0byB0YXJnZXQgPSBDb2RlTG9jYXRpb25MYWJlbDxKSVRUaHVua1B0
clRhZz4ob3NyRXhpdFRodW5rLmNvZGUoKSk7CisgICAgICAgIFZlY3RvcjxKdW1wUmVwbGFjZW1l
bnQ+IGp1bXBSZXBsYWNlbWVudHM7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X29zckV4aXQuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIE9TUkV4aXRDb21waWxhdGlvbklu
Zm8mIGluZm8gPSBtX2V4aXRDb21waWxhdGlvbkluZm9baV07CiAgICAgICAgICAgICBsaW5rQnVm
ZmVyLmxpbmsoaW5mby5tX3BhdGNoYWJsZUp1bXAubV9qdW1wLCB0YXJnZXQpOwogICAgICAgICAg
ICAgT1NSRXhpdCYgZXhpdCA9IG1fb3NyRXhpdFtpXTsKICAgICAgICAgICAgIGV4aXQubV9wYXRj
aGFibGVKdW1wTG9jYXRpb24gPSBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRh
Zz4oaW5mby5tX3BhdGNoYWJsZUp1bXApOworICAgICAgICAgICAgaWYgKGluZm8ubV9yZXBsYWNl
bWVudFNvdXJjZS5pc1NldCgpKSB7CisgICAgICAgICAgICAgICAganVtcFJlcGxhY2VtZW50cy5h
cHBlbmQoSnVtcFJlcGxhY2VtZW50KAorICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxv
Y2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRhZz4oaW5mby5tX3JlcGxhY2VtZW50U291cmNlKSwKKyAg
ICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mPE9TUkV4aXRQdHJUYWc+KGlu
Zm8ubV9yZXBsYWNlbWVudERlc3RpbmF0aW9uKSkpOworICAgICAgICAgICAgfQogICAgICAgICB9
CisgICAgICAgIG1faml0Q29kZS0+Y29tbW9uLm1fanVtcFJlcGxhY2VtZW50cyA9IFdURk1vdmUo
anVtcFJlcGxhY2VtZW50cyk7CisgICAgfQogCi0gICAgICAgIGlmIChpbmZvLm1fcmVwbGFjZW1l
bnRTb3VyY2UuaXNTZXQoKSkgewotICAgICAgICAgICAganVtcFJlcGxhY2VtZW50cy5hcHBlbmQo
SnVtcFJlcGxhY2VtZW50KAotICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZjxK
U0ludGVybmFsUHRyVGFnPihpbmZvLm1fcmVwbGFjZW1lbnRTb3VyY2UpLAotICAgICAgICAgICAg
ICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZjxPU1JFeGl0UHRyVGFnPihpbmZvLm1fcmVwbGFjZW1l
bnREZXN0aW5hdGlvbikpKTsKLSAgICAgICAgfQorI2lmIEFTU0VSVF9FTkFCTEVECisgICAgZm9y
IChhdXRvJiBpbmZvIDogbV9leGl0Q29tcGlsYXRpb25JbmZvKSB7CisgICAgICAgIGlmIChpbmZv
Lm1fcmVwbGFjZW1lbnRTb3VyY2UuaXNTZXQoKSkKKyAgICAgICAgICAgIEFTU0VSVCghbV9ncmFw
aC5tX3BsYW4uaXNVbmxpbmtlZCgpKTsKICAgICB9Ci0gICAgbV9qaXRDb2RlLT5jb21tb24ubV9q
dW1wUmVwbGFjZW1lbnRzID0gV1RGTW92ZShqdW1wUmVwbGFjZW1lbnRzKTsKKyAgICBpZiAobV9n
cmFwaC5tX3BsYW4uaXNVbmxpbmtlZCgpKQorICAgICAgICBBU1NFUlQobV9qaXRDb2RlLT5jb21t
b24ubV9qdW1wUmVwbGFjZW1lbnRzLmlzRW1wdHkoKSk7CisjZW5kaWYKICAgICAKICAgICBpZiAo
VU5MSUtFTFkobV9ncmFwaC5jb21waWxhdGlvbigpKSkgewogICAgICAgICBBU1NFUlQobV9leGl0
U2l0ZUxhYmVscy5zaXplKCkgPT0gbV9vc3JFeGl0LnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCmluZGV4IDRjOGYyZWVkZWZhY2I1MjVmYzI4YzgyYTIz
YzdlMzZlYzc3ODRiNWYuLjFhNTg4ZmMxNjlmYjhiZDY1ZDRiMWRjNDVmZTU0NzI3Y2RlMTRmYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRW50cnkuY3BwCkBAIC05Nyw3ICs5
Nyw4IEBAIHZvaWQqIHByZXBhcmVPU1JFbnRyeShWTSYgdm0sIENhbGxGcmFtZSogY2FsbEZyYW1l
LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnl0ZWNvCiAgICAgQVNTRVJUKEpJVENvZGU6OmlzT3B0
aW1pemluZ0pJVChjb2RlQmxvY2stPmppdFR5cGUoKSkpOwogICAgIEFTU0VSVChjb2RlQmxvY2st
PmFsdGVybmF0aXZlKCkpOwogICAgIEFTU0VSVChjb2RlQmxvY2stPmFsdGVybmF0aXZlKCktPmpp
dFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCk7Ci0gICAgQVNTRVJUKGNvZGVCbG9jay0+
aml0Q29kZSgpLT5kZmdDb21tb24oKS0+aXNTdGlsbFZhbGlkKTsKKyAgICBBU1NFUlQoY29kZUJs
b2NrLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5pc1N0aWxsVmFsaWQoKSk7CisgICAgQVNTRVJU
KCFjb2RlQmxvY2stPmlzSmV0dGlzb25lZCgpKTsKIAogICAgIGlmICghT3B0aW9uczo6dXNlT1NS
RW50cnlUb0RGRygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTM0Niw3ICszNDcsOCBA
QCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjbwogTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEV4Y2VwdGlv
bkhhbmRsZXJQdHJUYWc+IHByZXBhcmVDYXRjaE9TUkVudHJ5KFZNJiB2bSwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIENvZGVCbG9jayogYmFzZWxpbmVDb2RlQmxvY2ssIENvZGVCbG9jayogb3B0aW1p
emVkQ29kZUJsb2NrLCBCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXgpCiB7CiAgICAgQVNTRVJU
KG9wdGltaXplZENvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkRGR0pJVCB8fCBvcHRp
bWl6ZWRDb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpGVExKSVQpOwotICAgIEFTU0VS
VChvcHRpbWl6ZWRDb2RlQmxvY2stPmppdENvZGUoKS0+ZGZnQ29tbW9uKCktPmlzU3RpbGxWYWxp
ZCk7CisgICAgQVNTRVJUKG9wdGltaXplZENvZGVCbG9jay0+aml0Q29kZSgpLT5kZmdDb21tb24o
KS0+aXNTdGlsbFZhbGlkKCkpOworICAgIEFTU0VSVCghb3B0aW1pemVkQ29kZUJsb2NrLT5pc0pl
dHRpc29uZWQoKSk7CiAKICAgICBpZiAoIU9wdGlvbnM6OnVzZU9TUkVudHJ5VG9ERkcoKSAmJiBv
cHRpbWl6ZWRDb2RlQmxvY2stPmppdENvZGUoKS0+aml0VHlwZSgpID09IEpJVFR5cGU6OkRGR0pJ
VCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1BsYW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQbGFu
LmNwcAppbmRleCA2OTMxNTQxYWQwMWVmMGQ2N2ZjMzA5YWNkM2QwMDRiMzgxZTEwZTJkLi4zNWFl
MTFiYWI3OTg5N2M1NDAxMjVlMWI4NjE1OWUwYWZkOTU5NGU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUGxhbi5jcHAKQEAgLTU1NCw4ICs1NTQsOSBAQCBDb21waWxhdGlvblJlc3VsdCBQ
bGFuOjpmaW5hbGl6ZSgpCiAgICAgICAgICAgICBtX2NvZGVCbG9jay0+c2hyaW5rVG9GaXQobG9j
a2VyLCBDb2RlQmxvY2s6OlNocmlua01vZGU6OkxhdGVTaHJpbmspOwogICAgICAgICB9CiAKLSAg
ICAgICAgLy8gU2luY2UgUGxhbjo6cmVhbGx5QWRkIGNvdWxkIGZpcmUgd2F0Y2hwb2ludHMgKHNl
ZSBBcnJheUJ1ZmZlclZpZXdXYXRjaHBvaW50QWRhcHRvcjo6YWRkKSwgaXQgaXMgcG9zc2libGUg
dGhhdCB0aGUgY3VycmVudCBDb2RlQmxvY2sgaXMgbm93IGludmFsaWRhdGVkLgotICAgICAgICBp
ZiAoIW1fY29kZUJsb2NrLT5qaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5pc1N0aWxsVmFsaWQpIHsK
KyAgICAgICAgLy8gU2luY2UgUGxhbjo6cmVhbGx5QWRkIGNvdWxkIGZpcmUgd2F0Y2hwb2ludHMg
KHNlZSBBcnJheUJ1ZmZlclZpZXdXYXRjaHBvaW50QWRhcHRvcjo6YWRkKSwKKyAgICAgICAgLy8g
aXQgaXMgcG9zc2libGUgdGhhdCB0aGUgY3VycmVudCBDb2RlQmxvY2sgaXMgbm93IGludmFsaWRh
dGVkICYgamV0dGlzb25lZC4KKyAgICAgICAgaWYgKCFtX2NvZGVCbG9jay0+aXNKZXR0aXNvbmVk
KCkpIHsKICAgICAgICAgICAgIENPREVCTE9DS19MT0dfRVZFTlQobV9jb2RlQmxvY2ssICJkZmdG
aW5hbGl6ZSIsICgiaW52YWxpZGF0ZWQiKSk7CiAgICAgICAgICAgICByZXR1cm4gQ29tcGlsYXRp
b25JbnZhbGlkYXRlZDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA3NjZlYzY1YWE4MDVkNjY2MmQ5NWZhYzJhNzA5
ZTg3NjQ3ZmJlMTdhLi5lNWJkZmEzOTRlNWVjNjMwYTkxNDA3NWQ4ZTEyNmE4OWMxZDI4YWNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApA
QCAtMzI0LDEwICszMjQsMjAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6c3BlY3VsYXRpb25DaGVj
ayhFeGl0S2luZCBraW5kLCBKU1ZhbHVlU291cmNlIGpzVmFsdWVTb3VyY2UKICAgICBzcGVjdWxh
dGlvbkNoZWNrKGtpbmQsIGpzVmFsdWVTb3VyY2UsIG5vZGVVc2Uubm9kZSgpLCBqdW1wVG9GYWls
LCByZWNvdmVyeSk7CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmVtaXRJbnZhbGlkYXRpb25Q
b2ludChOb2RlKiBub2RlKQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUludmFsaWRhdGlv
blBvaW50KE5vZGUqIG5vZGUpCiB7CiAgICAgaWYgKCFtX2NvbXBpbGVPa2F5KQogICAgICAgICBy
ZXR1cm47CisKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIGlmIChtX2dyYXBoLm1fcGxhbi5pc1Vu
bGlua2VkKCkpIHsKKyAgICAgICAgYXV0byBleGl0SnVtcCA9IG1faml0LmJyYW5jaFRlc3Q4KEND
YWxsSGVscGVyczo6Tm9uWmVybywgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNvbnN0
YW50c1JlZ2lzdGVyLCBKSVREYXRhOjpvZmZzZXRPZkludmFsaWRhdGlvbigpKSk7CisgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soVW5jb3VudGFibGVJbnZhbGlkYXRpb24sIEpTVmFsdWVSZWdzKCks
IG51bGxwdHIsIGV4aXRKdW1wKTsKKyAgICAgICAgbm9SZXN1bHQobm9kZSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIE9TUkV4aXRDb21waWxhdGlvbkluZm8mIGluZm8g
PSBtX2ppdC5hcHBlbmRFeGl0SW5mbyhKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAgICAgbV9q
aXQuYXBwZW5kT1NSRXhpdChPU1JFeGl0KAogICAgICAgICBVbmNvdW50YWJsZUludmFsaWRhdGlv
biwgSlNWYWx1ZVNvdXJjZSgpLCBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlKCksCkBAIC0y
NDk3LDcgKzI1MDcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpsaW5rT1NSRW50cmllcyhMaW5r
QnVmZmVyJiBsaW5rQnVmZmVyKQogICAgIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrVHJhcHMoTm9kZSogbm9kZSkKIHsKLSAgICBBU1NFUlQoT3B0aW9uczo6dXNlUG9sbGluZ1Ry
YXBzKCkpOworICAgIEFTU0VSVChPcHRpb25zOjp1c2VQb2xsaW5nVHJhcHMoKSB8fCBtX2dyYXBo
Lm1fcGxhbi5pc1VubGlua2VkKCkpOwogICAgIEdQUlRlbXBvcmFyeSB1bnVzZWQodGhpcyk7CiAg
ICAgR1BSUmVnIHVudXNlZEdQUiA9IHVudXNlZC5ncHIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IGIwZDUyZTcwNzc3ODk0N2JlNjZh
MmEwZTNiMTBiZTE2MTVhMmM3MWUuLjM0YTY0ZmY5MTk4YWE4OWNkZTczODRhZTI0N2FmYmRjMzI3
ZmE0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmgKQEAgLTE2NzQsNyArMTY3NCw3IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICB2b2lk
IHNwZWN1bGF0aW9uQ2hlY2soRXhpdEtpbmQsIEpTVmFsdWVTb3VyY2UsIE5vZGUqLCBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBqdW1wVG9GYWlsLCBjb25zdCBTcGVjdWxhdGlvblJlY292ZXJ5Jik7CiAg
ICAgdm9pZCBzcGVjdWxhdGlvbkNoZWNrKEV4aXRLaW5kLCBKU1ZhbHVlU291cmNlLCBFZGdlLCBN
YWNyb0Fzc2VtYmxlcjo6SnVtcCBqdW1wVG9GYWlsLCBjb25zdCBTcGVjdWxhdGlvblJlY292ZXJ5
Jik7CiAgICAgCi0gICAgdm9pZCBlbWl0SW52YWxpZGF0aW9uUG9pbnQoTm9kZSopOworICAgIHZv
aWQgY29tcGlsZUludmFsaWRhdGlvblBvaW50KE5vZGUqKTsKICAgICAKICAgICB2b2lkIHVucmVh
Y2hhYmxlKE5vZGUqKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IGE1MjE5Y2I5OWU2MTljNzI3MTcxMzJl
MTQ5MmZiZDc5NTNmMDY0ZjAuLjA2NmUxMjg3NGYzYmFlMTNhMjI0ODY3ZGMwZjBiOGJlMzMyYTc3
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDMyXzY0LmNwcApAQCAtNDAyNCw3ICs0MDI0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgIH0KIAogICAgIGNhc2UgSW52YWxpZGF0aW9uUG9pbnQ6
Ci0gICAgICAgIGVtaXRJbnZhbGlkYXRpb25Qb2ludChub2RlKTsKKyAgICAgICAgY29tcGlsZUlu
dmFsaWRhdGlvblBvaW50KG5vZGUpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ2hlY2tU
cmFwczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwCmluZGV4IGRhZWU5NWU0MjU4M2FiMjAxOGQ4YzI2NjExNTViZDE3ZDg4MGUzOTIuLjQz
OThiZWQwNzJkNGMwYTYyYzkyODkxMWIyOWRkN2JhMmNkNmMwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNTQzNCw3ICs1
NDM0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgIH0K
ICAgICAgICAgCiAgICAgY2FzZSBJbnZhbGlkYXRpb25Qb2ludDoKLSAgICAgICAgZW1pdEludmFs
aWRhdGlvblBvaW50KG5vZGUpOworICAgICAgICBjb21waWxlSW52YWxpZGF0aW9uUG9pbnQobm9k
ZSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDaGVja1RyYXBzOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMSklUQ29kZS5jcHAKaW5kZXggYmRhNjk1OWM4MDNlMWY4N2Y5Y2M2N2Rl
OTMxMGQ4NTkxMjIxYTNhYi4uN2FlMTEyOWEwY2ZjNDAzZjEyZDhkYjlhNWE1NzNjOTlhNjU3MGIw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuY3BwCkBAIC0zNyw2ICsz
Nyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBCMzsKIAogSklUQ29kZTo6SklUQ29kZSgpCiAgICAgOiBK
U0M6OkpJVENvZGUoSklUVHlwZTo6RlRMSklUKQorICAgICwgY29tbW9uKC8qIGlzVW5saW5rZWQg
Ki8gZmFsc2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSklUQ29kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKaW5k
ZXggNjBmZTk0NGQwOGRmNWYzZmQ1MDI2MTFmNWQyMzFhZDY4MzNhYmM2ZC4uNzcyY2JlMzE1ZmUx
NzRhN2FlMjJhZjQ3MzNhNTFlMmZjYmUzOWIzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExKSVRDb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExKSVRDb2RlLmgKQEAgLTY5LDYgKzY5LDggQEAgY2xhc3MgSklUQ29kZSA6IHB1YmxpYyBKU0M6
OkpJVENvZGUgewogICAgIHN0YXRpYyBwdHJkaWZmX3QgY29tbW9uRGF0YU9mZnNldCgpIHsgcmV0
dXJuIE9CSkVDVF9PRkZTRVRPRihKSVRDb2RlLCBjb21tb24pOyB9CiAgICAgdm9pZCBzaHJpbmtU
b0ZpdChjb25zdCBDb25jdXJyZW50SlNMb2NrZXImKSBvdmVycmlkZTsKIAorICAgIGJvb2wgaXNV
bmxpbmtlZCgpIGNvbnN0IHsgcmV0dXJuIGNvbW1vbi5pc1VubGlua2VkKCk7IH0KKwogICAgIFBD
VG9Db2RlT3JpZ2luTWFwKiBwY1RvQ29kZU9yaWdpbk1hcCgpIG92ZXJyaWRlIHsgcmV0dXJuIGNv
bW1vbi5tX3BjVG9Db2RlT3JpZ2luTWFwLmdldCgpOyB9CiAKICAgICBjb25zdCBSZWdpc3RlckF0
T2Zmc2V0TGlzdCogY2FsbGVlU2F2ZVJlZ2lzdGVycygpIGNvbnN0IHsgcmV0dXJuICZtX2NhbGxl
ZVNhdmVSZWdpc3RlcnM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMT1NSRW50cnkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFbnRyeS5j
cHAKaW5kZXggNjc0OGU2Yjc0MTQ1MjcxOGViZDBjYWQ0ZTQ3ZjljYjM2MDUzYmJlNy4uYzUyMTA4
MDg5YTJkMjdmY2ZiZmFhMzQ4ZmNhYzkyNmNkMWE4NjU1MCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JFbnRyeS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPU1JFbnRyeS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCogcHJlcGFyZU9T
UkVudHJ5KAogICAgIERGRzo6SklUQ29kZSogZGZnQ29kZSA9IGRmZ0NvZGVCbG9jay0+aml0Q29k
ZSgpLT5kZmcoKTsKICAgICBGb3JPU1JFbnRyeUpJVENvZGUqIGVudHJ5Q29kZSA9IGVudHJ5Q29k
ZUJsb2NrLT5qaXRDb2RlKCktPmZ0bEZvck9TUkVudHJ5KCk7CiAKLSAgICBpZiAoIWVudHJ5Q29k
ZS0+ZGZnQ29tbW9uKCktPmlzU3RpbGxWYWxpZCkgeworICAgIGlmICghZW50cnlDb2RlLT5kZmdD
b21tb24oKS0+aXNTdGlsbFZhbGlkKCkpIHsKICAgICAgICAgZGZnQ29kZS0+Y2xlYXJPU1JFbnRy
eUJsb2NrQW5kUmVzZXRUaHJlc2hvbGRzKGRmZ0NvZGVCbG9jayk7CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
Q29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuY3BwCmluZGV4IDk4
MzZlYTVmMzlmNzBiMGE0N2E3NmU1MjM0NjZhOTM0ODZmYzFjZjguLjY4MTU5YmRmNjljNmFkMmE2
ZWM3ZWQxZTFiYjFmMDc0YzViYjRlZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2Rl
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpJ
VENvZGUuaCIKIAorI2luY2x1ZGUgIkRGR0pJVENvZGUuaCIKICNpbmNsdWRlICJGVExKSVRDb2Rl
LmgiCiAKICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KQEAgLTY1LDYgKzY2LDMwIEBAIEFT
Q0lJTGl0ZXJhbCBKSVRDb2RlOjp0eXBlTmFtZShKSVRUeXBlIGppdFR5cGUpCiAgICAgfQogfQog
Citib29sIEpJVENvZGU6OmlzVW5saW5rZWQoKSBjb25zdAoreworICAgIHN3aXRjaCAobV9qaXRU
eXBlKSB7CisgICAgY2FzZSBKSVRUeXBlOjpOb25lOgorICAgIGNhc2UgSklUVHlwZTo6SG9zdENh
bGxUaHVuazoKKyAgICBjYXNlIEpJVFR5cGU6OkludGVycHJldGVyVGh1bms6CisgICAgY2FzZSBK
SVRUeXBlOjpCYXNlbGluZUpJVDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBKSVRU
eXBlOjpERkdKSVQ6CisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxjb25zdCBERkc6OkpJVENvZGUqPih0aGlzKS0+aXNVbmxpbmtlZCgpOworI2Vsc2UKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCisgICAgY2FzZSBKSVRUeXBlOjpGVExKSVQ6Cisj
aWYgRU5BQkxFKEZUTF9KSVQpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBGVEw6
OkpJVENvZGUqPih0aGlzKS0+aXNVbmxpbmtlZCgpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworI2VuZGlmCisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEpJVENvZGU6
OnZhbGlkYXRlUmVmZXJlbmNlcyhjb25zdCBUcmFja2VkUmVmZXJlbmNlcyYpCiB7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCmluZGV4IDhjZTFlMmViNjdhYmZiMTUzMTZkYmRlZTdi
M2Q3ZWU2ZDZhODQ5MjguLjJlNmJhNDI5YWM4NWUwM2UyODI0NmFjNGJkZmQzNzFhYjRjMzEzNjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCkBAIC0xODksNiArMTg5LDggQEAgY2xh
c3MgSklUQ29kZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxKSVRDb2RlPiB7CiAgICAg
ewogICAgICAgICByZXR1cm4gbV9qaXRUeXBlOwogICAgIH0KKworICAgIGJvb2wgaXNVbmxpbmtl
ZCgpIGNvbnN0OwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFBvaW50ZXJUeXBlPgogICAg
IHN0YXRpYyBKSVRUeXBlIGppdFR5cGVGb3IoUG9pbnRlclR5cGUgaml0Q29kZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNVHJhcHMuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKaW5kZXggOTg3NTlmODRjZGIyZmIwNTJh
OTc1ODAzZmE0ODg3Y2UxNWE4OWExYy4uYjUxMDUyOTdiODQ0OTNkNmUzNDNiOGQzNGI0Y2M3NTY1
NWJlMTMyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFw
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1UcmFwcy5jcHAKQEAg
LTE0NSw3ICsxNDUsNyBAQCB2b2lkIFZNVHJhcHM6OnRyeUluc3RhbGxUcmFwQnJlYWtwb2ludHMo
Vk1UcmFwczo6U2lnbmFsQ29udGV4dCYgY29udGV4dCwgU3RhY2tCbwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChmb3VuZENvZGVCbG9j
ay0+aml0VHlwZSgpKSkgeworICAgIGlmIChmb3VuZENvZGVCbG9jay0+Y2FuSW5zdGFsbFZNVHJh
cEJyZWFrcG9pbnRzKCkpIHsKICAgICAgICAgaWYgKCFtX2xvY2stPnRyeUxvY2soKSkKICAgICAg
ICAgICAgIHJldHVybjsgLy8gTGV0IHRoZSBTaWduYWxTZW5kZXIgdHJ5IGFnYWluIGxhdGVyLgog
CkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBWTVRyYXBzOjp0cnlJbnN0YWxsVHJhcEJyZWFrcG9p
bnRzKFZNVHJhcHM6OlNpZ25hbENvbnRleHQmIGNvbnRleHQsIFN0YWNrQm8KICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmICghZm91bmRDb2RlQmxvY2stPmhhc0lu
c3RhbGxlZFZNVHJhcEJyZWFrcG9pbnRzKCkpCisgICAgICAgIGlmICghZm91bmRDb2RlQmxvY2st
Pmhhc0luc3RhbGxlZFZNVHJhcHNCcmVha3BvaW50cygpKQogICAgICAgICAgICAgZm91bmRDb2Rl
QmxvY2stPmluc3RhbGxWTVRyYXBCcmVha3BvaW50cygpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMjIyLDcgKzIyMiw3IEBAIGNsYXNzIFZNVHJhcHM6OlNpZ25hbFNlbmRlciBmaW5hbCA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogICAgICAgICAgICAgICAgICAgICAvLyBFaXRoZXIg
d2UgdHJhcHBlZCBmb3Igc29tZSBvdGhlciByZWFzb24sIGUuZy4gV2FzbSBPT0IsIG9yIHdlIGRp
ZG4ndCBwcm9wZXJseSBtb25pdG9yIHRoZSBQQy4gUmVnYXJkbGVzcywgd2UgY2FuJ3QgZG8gbXVj
aCBub3cuLi4KICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNpZ25hbEFjdGlvbjo6Tm90SGFu
ZGxlZDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGN1cnJlbnRD
b2RlQmxvY2stPmhhc0luc3RhbGxlZFZNVHJhcEJyZWFrcG9pbnRzKCkpOworICAgICAgICAgICAg
ICAgIEFTU0VSVChjdXJyZW50Q29kZUJsb2NrLT5oYXNJbnN0YWxsZWRWTVRyYXBzQnJlYWtwb2lu
dHMoKSk7CiAgICAgICAgICAgICAgICAgVk0mIHZtID0gY3VycmVudENvZGVCbG9jay0+dm0oKTsK
IAogICAgICAgICAgICAgICAgIC8vIFRoaXMgc2lnbmFsIGhhbmRsZXIgaXMgdHJpZ2dlcmVkIGJ5
IHRoZSBtdXRhdG9yIHRocmVhZCBkdWUgdG8gdGhlIGluc3RhbGxlZCBoYWx0IGluc3RydWN0aW9u
cwpAQCAtMjQyLDcgKzI0Miw3IEBAIGNsYXNzIFZNVHJhcHM6OlNpZ25hbFNlbmRlciBmaW5hbCA6
IHB1YmxpYyBBdXRvbWF0aWNUaHJlYWQgewogICAgICAgICAgICAgICAgIGJvb2wgc2F3Q3VycmVu
dENvZGVCbG9jayA9IGZhbHNlOwogICAgICAgICAgICAgICAgIHZtLmhlYXAuZm9yRWFjaENvZGVC
bG9ja0lnbm9yaW5nSklUUGxhbnMoY29kZUJsb2NrU2V0TG9ja2VyLCBbJl0gKENvZGVCbG9jayog
Y29kZUJsb2NrKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHdhbnQgdG8gamV0dGlzb24g
YWxsIGNvZGUgYmxvY2tzIHRoYXQgaGF2ZSB2bSB0cmFwcyBicmVha3BvaW50cywgb3RoZXJ3aXNl
IHdlIGNvdWxkIGhpdCB0aGVtIGxhdGVyLgotICAgICAgICAgICAgICAgICAgICBpZiAoY29kZUJs
b2NrLT5oYXNJbnN0YWxsZWRWTVRyYXBCcmVha3BvaW50cygpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChjb2RlQmxvY2stPmhhc0luc3RhbGxlZFZNVHJhcHNCcmVha3BvaW50cygpKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvZGVCbG9jayA9PSBjb2RlQmxvY2sp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F3Q3VycmVudENvZGVCbG9jayA9IHRydWU7
CiAKQEAgLTM3OSw3ICszNzksNyBAQCB2b2lkIFZNVHJhcHM6OmhhbmRsZVRyYXBzKFZNVHJhcHM6
OkJpdEZpZWxkIG1hc2spCiAgICAgICAgIExvY2tlciBjb2RlQmxvY2tTZXRMb2NrZXIgeyB2bS5o
ZWFwLmNvZGVCbG9ja1NldCgpLmdldExvY2soKSB9OwogICAgICAgICB2bS5oZWFwLmZvckVhY2hD
b2RlQmxvY2tJZ25vcmluZ0pJVFBsYW5zKGNvZGVCbG9ja1NldExvY2tlciwgWyZdIChDb2RlQmxv
Y2sqIGNvZGVCbG9jaykgewogICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBqZXR0aXNvbiBhbGwg
Y29kZSBibG9ja3MgdGhhdCBoYXZlIHZtIHRyYXBzIGJyZWFrcG9pbnRzLCBvdGhlcndpc2Ugd2Ug
Y291bGQgaGl0IHRoZW0gbGF0ZXIuCi0gICAgICAgICAgICBpZiAoY29kZUJsb2NrLT5oYXNJbnN0
YWxsZWRWTVRyYXBCcmVha3BvaW50cygpKQorICAgICAgICAgICAgaWYgKGNvZGVCbG9jay0+aGFz
SW5zdGFsbGVkVk1UcmFwc0JyZWFrcG9pbnRzKCkpCiAgICAgICAgICAgICAgICAgY29kZUJsb2Nr
LT5qZXR0aXNvbihQcm9maWxlcjo6SmV0dGlzb25EdWVUb1ZNVHJhcHMpOwogICAgICAgICB9KTsK
ICAgICB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9wb2xsaW5nLWJhc2VkLXRyYXAtb24t
dW5saW5rZWQtZGZnLmpzIGIvSlNUZXN0cy9zdHJlc3MvcG9sbGluZy1iYXNlZC10cmFwLW9uLXVu
bGlua2VkLWRmZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzUzZjkxNzY0YjE5YmM5MTUxZGU2Nzc1NzBlNjBi
NTZiM2RiNTJhCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvcG9sbGluZy1iYXNl
ZC10cmFwLW9uLXVubGlua2VkLWRmZy5qcwpAQCAtMCwwICsxLDEwIEBACisvL0AgcnVuRGVmYXVs
dCgiLS1mb3JjZVVubGlua2VkREZHPTEiLCAiLS13YXRjaGRvZz0xMDAwIiwgIi0td2F0Y2hkb2ct
ZXhjZXB0aW9uLW9rIiwgIi0tdXNlRlRMSklUPTAiKQorCitmdW5jdGlvbiB0ZXN0KHZhbHVlKQor
eworICAgIHJldHVybiB2YWx1ZSAqIHZhbHVlOworfQorbm9JbmxpbmUodGVzdCk7CisKK2ZvciAo
dmFyIGkgPSAwOzsgKytpKQorICAgIHRlc3QoaSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>