<?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>151476</bug_id>
          
          <creation_ts>2015-11-19 19:49:11 -0800</creation_ts>
          <short_desc>REGRESSION(r192667): broke api tests (Requested by alexchristensen on #webkit).</short_desc>
          <delta_ts>2015-11-19 19:53:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>151418</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143556</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-19 19:49:11 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/192667 broke the build:
broke api tests (Requested by alexchristensen on #webkit).

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

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

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

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143560</commentid>
    <comment_count>2</comment_count>
      <attachid>265933</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-19 19:53:02 -0800</bug_when>
    <thetext>Comment on attachment 265933
ROLLOUT of r192667

Clearing flags on attachment: 265933

Committed r192673: &lt;http://trac.webkit.org/changeset/192673&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143561</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-19 19:53:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265933</attachid>
            <date>2015-11-19 19:50:06 -0800</date>
            <delta_ts>2015-11-19 19:53:02 -0800</delta_ts>
            <desc>ROLLOUT of r192667</desc>
            <filename>bug-151476-20151119194954.patch</filename>
            <type>text/plain</type>
            <size>167410</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyNjcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTRkZjMyMjRmNGNjZmYw
ZjU4YTY2M2VhZTFkODZkOTJmNmRhODgzYi4uNDk5YTk5NWYyYTgwOWRjMDRkMmQ1ZTIxZWFkNzEy
MjdmMTdiZWQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTExLTE5ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTkyNjY3IGFuZCByMTkyNjY4LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNDc2CisKKyAgICAgICAgYnJva2UgYXBpIHRl
c3RzIChSZXF1ZXN0ZWQgYnkgYWxleGNocmlzdGVuc2VuIG9uICN3ZWJraXQpLgorCisgICAgICAg
IFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIlJlbW92ZSB0aGUgbm9uLU5ldHdvcmtQ
cm9jZXNzIGNvbmZpZ3VyYXRpb25zIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUxNDE4CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hh
bmdlc2V0LzE5MjY2NworCisgICAgICAgICJGaXggR1RLIEJ1aWxkIGFmdGVyIHIxOTI2NjcuIgor
ICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTI2NjgKKwogMjAxNS0x
MS0xOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEZpeCBHVEsgQnVpbGQgYWZ0ZXIgcjE5MjY2Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YTI3NGRjOGZkODRhNDBjNDYxNTFmYzExNWQyYzhlODIwMTU3MmYyMC4uMDNmZmU5OGE5NDMwOTA3
NjkyNjRlMTQwZjlkMDNlOTBiMGQzZDllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01h
a2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTgwMywx
MyArODAzLDE2IEBAIGlmIChXZWJLaXQyX1dlYlByb2Nlc3NfT1VUUFVUX05BTUUpCiAgICAgc2V0
X3RhcmdldF9wcm9wZXJ0aWVzKFdlYlByb2Nlc3MgUFJPUEVSVElFUyBPVVRQVVRfTkFNRSAke1dl
YktpdDJfV2ViUHJvY2Vzc19PVVRQVVRfTkFNRX0pCiBlbmRpZiAoKQogCi1hZGRfZXhlY3V0YWJs
ZShOZXR3b3JrUHJvY2VzcyAke05ldHdvcmtQcm9jZXNzX1NPVVJDRVN9KQotYWRkX3dlYmtpdDJf
cHJlZml4X2hlYWRlcihOZXR3b3JrUHJvY2VzcykKLXRhcmdldF9saW5rX2xpYnJhcmllcyhOZXR3
b3JrUHJvY2VzcyAke05ldHdvcmtQcm9jZXNzX0xJQlJBUklFU30pCi1zZXRfdGFyZ2V0X3Byb3Bl
cnRpZXMoTmV0d29ya1Byb2Nlc3MgUFJPUEVSVElFUyBGT0xERVIgIldlYktpdCIpCi0KLWlmIChX
ZWJLaXQyX05ldHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FKQotICAgIHNldF90YXJnZXRfcHJvcGVy
dGllcyhOZXR3b3JrUHJvY2VzcyBQUk9QRVJUSUVTIE9VVFBVVF9OQU1FICR7V2ViS2l0Ml9OZXR3
b3JrUHJvY2Vzc19PVVRQVVRfTkFNRX0pCitpZiAoRU5BQkxFX05FVFdPUktfUFJPQ0VTUykKKyAg
ICBhZGRfZXhlY3V0YWJsZShOZXR3b3JrUHJvY2VzcyAke05ldHdvcmtQcm9jZXNzX1NPVVJDRVN9
KQorICAgIGFkZF93ZWJraXQyX3ByZWZpeF9oZWFkZXIoTmV0d29ya1Byb2Nlc3MpCisgICAgdGFy
Z2V0X2xpbmtfbGlicmFyaWVzKE5ldHdvcmtQcm9jZXNzICR7TmV0d29ya1Byb2Nlc3NfTElCUkFS
SUVTfSkKKyAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoTmV0d29ya1Byb2Nlc3MgUFJPUEVSVElF
UyBGT0xERVIgIldlYktpdCIpCisgICAgaW5zdGFsbChUQVJHRVRTIE5ldHdvcmtQcm9jZXNzIERF
U1RJTkFUSU9OICIke0xJQkVYRUNfSU5TVEFMTF9ESVJ9IikKKworICAgIGlmIChXZWJLaXQyX05l
dHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FKQorICAgICAgICBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMo
TmV0d29ya1Byb2Nlc3MgUFJPUEVSVElFUyBPVVRQVVRfTkFNRSAke1dlYktpdDJfTmV0d29ya1By
b2Nlc3NfT1VUUFVUX05BTUV9KQorICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCiBpZiAoRU5BQkxF
X1BMVUdJTl9QUk9DRVNTKQpAQCAtODQ0LDcgKzg0Nyw3IEBAIHNldF90YXJnZXRfcHJvcGVydGll
cyhXZWJLaXQyIFBST1BFUlRJRVMgVkVSU0lPTiAke1dFQktJVDJfVkVSU0lPTn0gU09WRVJTSU9O
ICR7CiBpZiAoQVBQTEUpCiAgICAgV0VCS0lUX0ZSQU1FV09SSyhXZWJLaXQyKQogZWxzZSAoKQot
ICAgIGluc3RhbGwoVEFSR0VUUyBXZWJLaXQyIFdlYlByb2Nlc3MgTmV0d29ya1Byb2Nlc3MKKyAg
ICBpbnN0YWxsKFRBUkdFVFMgV2ViS2l0MiBXZWJQcm9jZXNzCiAgICAgICAgIExJQlJBUlkgREVT
VElOQVRJT04gIiR7TElCX0lOU1RBTExfRElSfSIKICAgICAgICAgUlVOVElNRSBERVNUSU5BVElP
TiAiJHtMSUJFWEVDX0lOU1RBTExfRElSfSIKICAgICApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9MZWdhY3lQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzTWFpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL0xlZ2FjeVByb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluLm1tCmluZGV4IDQwM2ZlYWYwMzU0
ZWVjODE4ODdhNzE1NGViMjM1NWJkODAwMTc1ZmQuLjg3YjllNDAwMDAzY2U5NTAzZDliMmM5YmNl
YTZiMGNkODgyNzdjMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvTmV0d29ya1Byb2Nlc3NNYWluLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nl
c3MvTmV0d29ya1Byb2Nlc3NNYWluLm1tCkBAIC0yNSw2ICsyNSw4IEBACiAKICNpbXBvcnQgImNv
bmZpZy5oIgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogI2ltcG9ydCAiQ2hpbGRQ
cm9jZXNzRW50cnlQb2ludC5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKICNpbXBvcnQg
IldLQmFzZS5oIgpAQCAtMzcsMyArMzksNSBAQCBpbnQgTmV0d29ya1Byb2Nlc3NNYWluKGludCBh
cmdjLCBjaGFyKiogYXJndikKIHsKICAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxOZXR3b3Jr
UHJvY2VzcywgQ2hpbGRQcm9jZXNzTWFpbkRlbGVnYXRlPihhcmdjLCBhcmd2KTsKIH0KKworI2Vu
ZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL05ldHdvcmtTZXJ2aWNl
RW50cnlQb2ludC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCmluZGV4IDcyNTEwMzUw
NThhYzkyYzI4YTg4YTcyNzQ1ZTY1ZGJlM2M4MjhkYzkuLjQxZmI0NGVkNGI1ZTk4MzM3YThlOTYy
MGVlZjkwNWQ4ZmFlZTRmZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1Nl
cnZpY2UvTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50Lm1tCkBAIC01Miw2ICs1Miw3IEBAIGV4dGVy
biAiQyIgV0tfRVhQT1JUIHZvaWQgTmV0d29ya1NlcnZpY2VJbml0aWFsaXplcih4cGNfY29ubmVj
dGlvbl90IGNvbm5lY3Rpb24sCiAKIHZvaWQgTmV0d29ya1NlcnZpY2VJbml0aWFsaXplcih4cGNf
Y29ubmVjdGlvbl90IGNvbm5lY3Rpb24sIHhwY19vYmplY3RfdCBpbml0aWFsaXplck1lc3NhZ2Up
CiB7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICAvLyBSZW1vdmUgdGhlIFNlY0l0
ZW1TaGltIGZyb20gdGhlIERZTERfSU5TRVJUX0xJQlJBUklFUyBlbnZpcm9ubWVudCB2YXJpYWJs
ZSBzbyBhbnkgcHJvY2Vzc2VzIHNwYXduZWQgYnkKICAgICAvLyB0aGUgdGhpcyBwcm9jZXNzIGRv
bid0IHRyeSB0byBpbnNlcnQgdGhlIHNoaW0gYW5kIGNyYXNoLgogICAgIEVudmlyb25tZW50VXRp
bGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoIkRZTERfSU5TRVJUX0xJQlJBUklF
UyIsICIvU2VjSXRlbVNoaW0uZHlsaWIiKTsKQEAgLTY4LDQgKzY5LDUgQEAgdm9pZCBOZXR3b3Jr
U2VydmljZUluaXRpYWxpemVyKHhwY19jb25uZWN0aW9uX3QgY29ubmVjdGlvbiwgeHBjX29iamVj
dF90IGluaXRpYWwKICNpZiBIQVZFKE9TX0FDVElWSVRZKQogICAgIG9zX2FjdGl2aXR5X2VuZChh
Y3Rpdml0eSk7CiAjZW5kaWYKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5jcHAKaW5k
ZXggM2E2ZjQ1MmIxMWRjOGFkYTBmZmRlNzNmZjA3YzMxMWNlZTYyOWYyOS4uY2IxOTdjZWQ3OGUx
ZDM5NjZlNWI4ZTljNDY5NjZlYmNkMTg2YzI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtCbG9iUmVnaXN0cnkuY3Bw
CkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29y
a0Jsb2JSZWdpc3RyeS5oIgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogI2luY2x1
ZGUgIkJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYlBhcnQuaD4KQEAg
LTE0OSwzICsxNTEsNSBAQCBWZWN0b3I8UmVmUHRyPEJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+IE5l
dHdvcmtCbG9iUmVnaXN0cnk6OmZpbGVzSW5CbG9iKE5ldHdvcmtDbwogfQogCiB9CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvRmlsZUFQSS9OZXR3
b3JrQmxvYlJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJ
L05ldHdvcmtCbG9iUmVnaXN0cnkuaAppbmRleCBhNzI5NTc4YTRmZDVkN2M3MWZhYTZlOTcyZmVh
ZjE0NGUxNGY4ODk2Li4xNmZkY2VlMzRhOTRkY2ZkYjJlN2E3MjNjNWI3ZjEzY2VhNjY5NWZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJL05ldHdvcmtC
bG9iUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9GaWxlQVBJ
L05ldHdvcmtCbG9iUmVnaXN0cnkuaApAQCAtMjYsNiArMjYsOCBAQAogI2lmbmRlZiBOZXR3b3Jr
QmxvYlJlZ2lzdHJ5X2gKICNkZWZpbmUgTmV0d29ya0Jsb2JSZWdpc3RyeV9oCiAKKyNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQorCiAjaW5jbHVkZSA8V2ViQ29yZS9VUkxIYXNoLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgpAQCAtNjYsNCAr
NjgsNiBAQCBwcml2YXRlOgogCiB9CiAKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQorCiAjZW5kaWYgLy8gTmV0d29ya0Jsb2JSZWdpc3RyeV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggYTY0NTM4YzY2ZDgzMjYzZjVlOTg3NjM0N2MzNTdmYmUxZWNjNzBkNi4u
YzgyZTNmMGVlMTEyMTI5Y2ZhN2EwNTliNDU1YTc2M2RjZGJmNjQ1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAKKyNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQorCiAjaW5jbHVkZSAiTmV0d29ya0Jsb2JSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJOZXR3b3JrTG9hZC5oIgpAQCAtMjcyLDMgKzI3NCw1IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmJsb2JTaXplKGNvbnN0IFVSTCYgdXJsLCB1aW50NjRfdCYgcmVzdWx0
U2l6CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGU0NTViYzc2N2YzZTgz
MmJhNWM2ZDJiMTlmZjQ5NzdlYzNhNDhmZWQuLjBmY2E1Y2UxNDJlY2Y3MTJhZjFiMmNhNzhjZWM2
M2Q0MWEyMTE0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjYsNiArMjYsOCBA
QAogI2lmbmRlZiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc19oCiAjZGVmaW5lIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzX2gKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CisKICNpbmNsdWRlICJCbG9ja2luZ1Jlc3BvbnNlTWFwLmgiCiAjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIK
QEAgLTEwMCw0ICsxMDIsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAor
I2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKICNlbmRpZiAvLyBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCmluZGV4IGFjNzcwZDIzYjc0ZTgzMzFjNzQ2OWZlMDNiM2IzMzQ2ZDhmMGE2NTQu
LjdjZTM5NzE3NGE1NThlMjg0MmUxNTllYTQ1MjM5ZmI0YTIwN2U0NmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yMCw2ICsyMCw4IEBACiAjIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKKyNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQorCiBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciB7CiAKICAgICBTY2hlZHVsZVJlc291cmNlTG9hZChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHJlc291cmNlTG9hZFBhcmFtZXRlcnMpCkBAIC00NiwzICs0
OCw1IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBVbnJlZ2lzdGVyQmxvYlVSTChXZWJDb3JlOjpVUkwgdXJsKQogICAgIEJs
b2JTaXplKFdlYkNvcmU6OlVSTCB1cmwpIC0+ICh1aW50NjRfdCByZXN1bHRTaXplKQogfQorCisj
ZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCBjOGRmNjcyZTBjNWRiYTk3Y2YxNmVjZjdm
MDBhODBhOWNhODcyM2Q2Li5jOTg4MWI3YjM2NTEzM2RkZmU2ZWE2ZTUzYjU5YWRhZjIwOGNlOTcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBA
IC0yNCw2ICsyNCw4IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKICNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgogCiAjaW5jbHVkZSAi
QXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCkBAIC0zNjksMyArMzcxLDUgQEAgdm9pZCBOZXR3b3Jr
TG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3Qg
QXV0aGVudGljYXQKICNlbmRpZiAvLyAhVVNFKE5FVFdPUktfU0VTU0lPTikKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaCBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKaW5kZXggZWMxYjI0ZTNlNzc5
MjkzNWM0ZmMwZDAzODdiM2VmNGEzZTUyYTY1MS4uOWI3ZDEzZjIwMDdkYWFhOTA4NzM5ZjM4NWMy
M2U2N2IxYTQyZjczMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZC5oCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIE5ldHdvcmtMb2FkX2gKICNkZWZpbmUg
TmV0d29ya0xvYWRfaAogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogI2luY2x1ZGUg
Ik5ldHdvcmtMb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIKQEAgLTEyNCw0ICsxMjYsNiBA
QCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorI2VuZGlmIC8vIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCisKICNlbmRpZiAvLyBOZXR3b3JrTG9hZF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRDbGllbnQuaAppbmRleCBiNDVkNDAy
MDk0ZmM2MzdkYTcwMDU3NWRkNzJmYWJlYWFjNDg2NmRmLi5iYTQ4NmI3YTYzNDk5YzQ5NjRmZTBj
MjcxZWM5ZDVhN2NhYmE0NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkQ2xpZW50LmgKQEAgLTI2LDYgKzI2LDggQEAKICNpZm5kZWYgTmV0d29y
a0xvYWRDbGllbnRfaAogI2RlZmluZSBOZXR3b3JrTG9hZENsaWVudF9oCiAKKyNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQorCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVzcG9uc2UuaD4KQEAgLTY0LDUgKzY2LDcgQEAgcHVibGljOgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAorI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKICNlbmRp
ZiAvLyBOZXR3b3JrTG9hZENsaWVudF9oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IGNjODQ4NzU1NTk0
NjU2NGExZmUyM2RhYTMzZWRiMTYyZTUzMDdmZjEuLmQwYjdiMTFiMDVjYjRlZDM4YzBhYmIzNmJj
ZjhmOGQyNDkxNjY5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmNwcApAQCAtMjQsNiArMjQsOCBAQAogICovCiAK
ICNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAjaW5j
bHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAKICNpbmNsdWRlICJOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5oIgpAQCAtNDUsMyArNDcsNSBAQCBOZXR3b3JrTG9hZFBhcmFtZXRl
cnM6Ok5ldHdvcmtMb2FkUGFyYW1ldGVycyhjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDEzMGFhYTM0ODU0MGMxMzFlY2UwYzhhMTFhNDkz
YTBkMzJjODhmNWUuLjdjYjM3NjI0OWQ2ZjNkM2NiMDBjZTI3N2MzODU3MWUwMWFjNTMwOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFy
YW1ldGVycy5oCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIE5ldHdvcmtMb2FkUGFyYW1ldGVy
c19oCiAjZGVmaW5lIE5ldHdvcmtMb2FkUGFyYW1ldGVyc19oCiAKKyNpZiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQorCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2Vzc2lvbklELmg+CkBAIC01Myw0ICs1NSw2IEBAIHB1YmxpYzoKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCiAjZW5kaWYgLy8g
TmV0d29ya0xvYWRQYXJhbWV0ZXJzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBkYjcwZWIwNzJmYWZlNmI4ZDg5YTBjOWU2OWE3
YjAzMWEyM2U0NDUzLi42ODRhMmU3NTY0MWRjMDNlNGEyNTFkOTUzMTNjMDdjNDc4M2UwNGIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3MuaCIKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKICNpbmNsdWRlICJB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKICNpbmNsdWRlICJBdXRo
ZW50aWNhdGlvbk1hbmFnZXIuaCIKQEAgLTU1MiwzICs1NTQsNSBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybUxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWwpCiAjZW5kaWYKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggOGRj
OGE2M2FhZWJkNTU4ZDQ1ZmFlNDJiMWYxNGRiOTkzOTViYjc4My4uMjMwNzBkMWUwMjUyNGUzMTU1
MmIwZWZhODJmOTVmODJkNjNmNzExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIE5ldHdvcmtQ
cm9jZXNzX2gKICNkZWZpbmUgTmV0d29ya1Byb2Nlc3NfaAogCisjaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKKwogI2luY2x1ZGUgIkNhY2hlTW9kZWwuaCIKICNpbmNsdWRlICJDaGlsZFByb2Nl
c3MuaCIKICNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKQEAgLTE5NSw0ICsxOTcsNiBAQCBw
cml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorI2VuZGlmIC8vIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCisKICNlbmRpZiAvLyBOZXR3b3JrUHJvY2Vzc19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CmluZGV4IDAxN2EyOGU1Y2NhYTRkNjQ2YzA2ODYwZmMwYmRiNzg1YTRmZTQzOGUuLjNiZjI5Y2Zm
Y2YzOGVmMzNmODYwMzJkMzkzZmMxZjM1ODQ5ZTQ4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0y
MCw2ICsyMCw4IEBACiAjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKKyNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCiBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgIyBJbml0aWFsaXplcyB0aGUgbmV0d29yayBwcm9jZXNzLgog
ICAgIEluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhzdHJ1Y3QgV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzKQpAQCAtNjEsMyAr
NjMsNSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAg
Q2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZSgpCiB9CisKKyNl
bmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggOTA4MmUz
ODFlMGE3OWQ5M2ZiZGJmZGE4YTllNTdiMmEwZjM1N2MyYi4uMzI1MjE2M2MwNWFlZTExMjE4NDVk
NWIxYjY2NDY3OWY2OGQ2NDEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAK
KyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrQmxvYlJlZ2lzdHJ5Lmgi
CkBAIC01NzksMyArNTgxLDUgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVl
Q2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29sIHIKICNlbmRpZgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oCmluZGV4IGJmMTM2ODMyZmY1ZjA1ZDU1NTNhNmI0NTQ0NjM2YWEzNWIzYjkxM2Iu
LmFlOGNhYzI5MzQzNjg0OTEyNmVhNmZiMTBlOTIzMGFhZGFjMjgxODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5oCkBA
IC0yNiw2ICsyNiw4IEBACiAjaWZuZGVmIE5ldHdvcmtSZXNvdXJjZUxvYWRlcl9oCiAjZGVmaW5l
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcl9oCiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQor
CiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZENsaWVudC5oIgpA
QCAtMTY3LDQgKzE2OSw2IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCisj
ZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogI2VuZGlmIC8vIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KaW5kZXggZWJiOGQ3Y2Qz
MTdlNjdhY2ZjMDhjOWViM2I5NDMwNjY5Y2Q1YThlZS4uNzlhMzVhZjU2MGYxZWJkMmI4OWJhYjI2
YmMwM2RlNmRjMmM2MDE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5tZXNzYWdlcy5pbgpAQCAtMjAs
NiArMjAsOCBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCisjaWYg
RU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogbWVzc2FnZXMgLT4gTmV0d29ya1Jlc291cmNlTG9h
ZGVyIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIENvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0KQpAQCAtMjgsMyArMzAsNSBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUmVzb3VyY2VMb2FkZXIgTGVnYWN5UmVjZWl2ZXIgewogICAgIENvbnRpbnVlQ2Fu
QXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29sIGNhbkF1dGhlbnRpY2F0ZSkK
ICNlbmRpZgogfQorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrUHJvY2Vz
c0NvY29hLm1tCmluZGV4IDNhYmNmNjkzODRmNzRiNjA5YzZmZjRmMzdlZTdlZTk2ZWM3NjAzMDUu
LjVkNTVjZWFiMDZkMjhhMzQyZjY2MWU3NGYwNjU4ZDA0MmE2YWU2ZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9jZXNzQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Byb2Nlc3ND
b2NvYS5tbQpAQCAtMjYsNiArMjYsOCBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJO
ZXR3b3JrUHJvY2Vzcy5oIgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogI2ltcG9y
dCAiTmV0d29ya0NhY2hlLmgiCiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2ltcG9ydCAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCkBAIC0yNjUsMyArMjY3
LDUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJEaXNrQ2FjaGUoc3RkOjpjaHJvbm86OnN5
c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmkKIH0KIAogfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2VmbC9OZXR3b3JrUHJvY2Vzc01haW5F
ZmwuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNz
TWFpbkVmbC5jcHAKaW5kZXggNDMyYzEyYWQ4ZGNhNzg4ODViZWJmZmNmM2JlZDk5OTUzMTYzODY4
ZS4uNDRlMjJlYTYyYTk3Njc5MDc5ZmU2ZDllYzM5YmExODJiMGEyMWJlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNzTWFpbkVmbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvZWZsL05ldHdvcmtQcm9jZXNz
TWFpbkVmbC5jcHAKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc01haW5Vbml4LmgiCiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQorCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgogI2luY2x1ZGUgIk5ldHdvcmtQ
cm9jZXNzLmgiCiAjaW5jbHVkZSA8RWNvcmUuaD4KQEAgLTY4LDMgKzcwLDUgQEAgaW50IE5ldHdv
cmtQcm9jZXNzTWFpblVuaXgoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9ndGsvTmV0d29ya1Byb2Nlc3NNYWlu
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2d0ay9OZXR3b3JrUHJvY2Vz
c01haW5HdGsuY3BwCmluZGV4IGFlYmMyODUwZTJmZjZkOWMzMDE2YmQ5ZTkzZWVjZTFiZWY1NDM4
YTkuLjY4NTVlMzFlMjFjNGI1YmFjZTU0NTAwMjk0NDdlYTQzNDZmN2U1Y2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2d0ay9OZXR3b3JrUHJvY2Vzc01haW5HdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2d0ay9OZXR3b3JrUHJvY2Vz
c01haW5HdGsuY3BwCkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiTmV0d29ya1Byb2Nlc3NNYWluVW5peC5oIgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKKwogI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc01haW4uaCIKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtTZXNzaW9uLmg+CkBAIC02
MSwzICs2Myw1IEBAIGludCBOZXR3b3JrUHJvY2Vzc01haW5Vbml4KGludCBhcmdjLCBjaGFyKiog
YXJndikKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
aW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
aW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmluZGV4IGJkMDQ4Mjg4MzczY2U1YzJkYjY2OGQ4ZThk
YjYwYzAwZjRmMGM3NjQuLmNkNWRlYzY0ZDczNTA1MTE3NjQ3MmQyODM2N2EyYTcwZmRmMzRkOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJv
Y2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29y
a1Byb2Nlc3NJT1MubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2lt
cG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9S
TShJT1MpICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKICNpbXBvcnQgIk5ldHdvcmtDYWNo
ZS5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAgLTEw
MSw0ICsxMDEsNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorI2VuZGlm
IC8vIFBMQVRGT1JNKElPUykgJiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrTG9hZE1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrTG9hZE1hYy5tbQppbmRleCBk
OGQyZDM4ZmFjNmEyNzJjYzJmNzU1MDBkNjRkNmVlZmU3YWQzMGUzLi5mOThlNDkwYjcwZWYxMWUw
MWYwYjZmN2QyZGYyNDdmZWM0ZmJiMTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvTmV0d29ya0xvYWRNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtMb2FkTWFjLm1tCkBAIC0yNCw2ICsyNCw4IEBACiAgKi8K
IAogI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogI2lt
cG9ydCAiTmV0d29ya0xvYWQuaCIKIAogI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4K
QEAgLTU4LDMgKzYwLDUgQEAgdm9pZCBOZXR3b3JrTG9hZDo6d2lsbENhY2hlUmVzcG9uc2VBc3lu
YyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBOU0NhY2hlZFVSTFJlc3AKICNlbmRpZiAvLyAhVVNF
KENGTkVUV09SSykKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvbWFjL05ldHdvcmtQcm9jZXNzTWFjLm1tCmluZGV4IDI4NGU1Yjc4ODYxY2U4N2Y0YjVmYzVm
MWE4NmMwOTcwOTZlYTE0YzAuLmZhYzExYTRmOWUyNWI3MmVmYjczMTgwZjJjMWYzY2Q1MjNjMDRj
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3Jr
UHJvY2Vzc01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0
d29ya1Byb2Nlc3NNYWMubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgog
I2ltcG9ydCAiTmV0d29ya1Byb2Nlc3MuaCIKIAotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAKICNpbXBvcnQgIk5ldHdvcmtD
YWNoZS5oIgogI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKQEAg
LTE0NCw0ICsxNDQsNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgp
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorI2Vu
ZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvTmV0d29ya1Jlc291
cmNlTG9hZGVyTWFjLm1tCmluZGV4IGE2ZDEyNjc3YjNmZjdjYTE2ZTliMTE3MzY5YzE1NDEwMzk0
YTE1ZGYuLjhhMjg2ZTYxZmM4NGQyMTM2NDQ2OTUzNzk3MmQwMjkzZTNhYzJjMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL05ldHdvcmtS
ZXNvdXJjZUxvYWRlck1hYy5tbQpAQCAtMjYsNiArMjYsOCBAQAogI2ltcG9ydCAiY29uZmlnLmgi
CiAjaW1wb3J0ICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKIAorI2lmIEVOQUJMRShORVRXT1JL
X1BST0NFU1MpCisKICNpbXBvcnQgIk5ldHdvcmtEaXNrQ2FjaGVNb25pdG9yLmgiCiAjaW1wb3J0
ICJTaGFyZWFibGVSZXNvdXJjZS5oIgogI2ltcG9ydCA8V2ViQ29yZS9DRk5ldHdvcmtTUEkuaD4K
QEAgLTg5LDMgKzkxLDUgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJl
c3BvbnNlQXN5bmMoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjZlJlc3AKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNz
U291cC5jcHAKaW5kZXggYzJmZDFmYzExMzdmMDhiMGY2MjEyMDc5N2EwYTRhMDdjNmRmNWQ0OC4u
ZjlhMGZmODA4MjljYjY1YjIxMzA3MDhjNzFiZjNmN2M5NjY0ZDUxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc1NvdXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3Vw
LmNwcApAQCAtMjUsNiArMjUsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCiAKICNp
bmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKQEAgLTE2OSwzICsxNzAsNSBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL3NvdXAv
UmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcAppbmRleCA2YWVjYjdm
YmYzYzcxZWYwNGI1MWM1MjIyZmNkYWJiOGI5N2FlNmJjLi42ZGE0ZDY4YTJlNWM4NzRjYTlhZDcy
NGJlYTkyYmFhNDAzOGMyZjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3Mvc291cC9SZW1vdGVOZXR3b3JraW5nQ29udGV4dFNvdXAuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIK
IAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CkBAIC01NiwzICs1
Nyw1IEBAIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnN0
b3JhZ2VTZXNzaW9uKCkgY29uc3QKIH0KIAogfQorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RlcHJl
Y2F0ZWRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLRGVwcmVj
YXRlZEZ1bmN0aW9ucy5jcHAKaW5kZXggZDBkZjY2Nzk0ZTU5ZjU0YzhlNWJlYTRiMTc5ZWJiOTFh
YjhhZjhkMS4uOTM3Zjg3YjJiZWE1YzBhOTA4NDU1ZDgzYzMwNjY1MmU4YTY5NmM4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLRGVwcmVjYXRlZEZ1bmN0aW9ucy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLRGVwcmVjYXRlZEZ1bmN0aW9u
cy5jcHAKQEAgLTI3LDggKzI3LDYgQEAKIAogI2luY2x1ZGUgIkFQSURpY3Rpb25hcnkuaCIKICNp
bmNsdWRlICJXS0FycmF5LmgiCi0jaW5jbHVkZSAiV0tDb250ZXh0LmgiCi0jaW5jbHVkZSAiV0tD
b250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldLTXV0YWJsZURpY3Rpb25hcnkuaCIKICNpbmNs
dWRlICJXS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2Fz
dC5oIgpAQCAtMTM2LDE5ICsxMzQsNiBAQCB2b2lkIFdLSW5zcGVjdG9yVG9nZ2xlSmF2YVNjcmlw
dFByb2ZpbGluZyhXS0luc3BlY3RvclJlZikKIHsKIH0KIAotdm9pZCBXS0NvbnRleHRTZXRQcm9j
ZXNzTW9kZWwoV0tDb250ZXh0UmVmLCBXS1Byb2Nlc3NNb2RlbCkKLXsKLX0KLQotV0tQcm9jZXNz
TW9kZWwgV0tDb250ZXh0R2V0UHJvY2Vzc01vZGVsKFdLQ29udGV4dFJlZikKLXsKLSAgICByZXR1
cm4ga1dLUHJvY2Vzc01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXM7Ci19Ci0KLXZvaWQg
V0tDb250ZXh0U2V0VXNlc05ldHdvcmtQcm9jZXNzKFdLQ29udGV4dFJlZiwgYm9vbCkKLXsKLX0K
LQogI2lmIFBMQVRGT1JNKE1BQykKIENHQ29udGV4dFJlZiBXS0dyYXBoaWNzQ29udGV4dEdldENH
Q29udGV4dChXS0dyYXBoaWNzQ29udGV4dFJlZiBncmFwaGljc0NvbnRleHQpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25N
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGE1MTg0Yzk5Njc3ODIyYmRiNmZjZDJkOTc0YjM4ZWYy
ZmMyNmE3M2IuLjcxNjgwNWE3N2Y0MTczYWY4YWIwMjI2YzQ2M2Q5OWYzNDY0NzU5OTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQ2hp
bGRQcm9jZXNzLmgiCiAjaW5jbHVkZSAiRG93bmxvYWQuaCIKICNpbmNsdWRlICJEb3dubG9hZFBy
b3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5o
IgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKQEAgLTM4LDYgKzM3LDEwIEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVu
dGljYXRpb25DbGllbnQuaD4KIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTI1LDYgKzEyOCw3IEBAIHZv
aWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoV2ViRnJhbWUqIGZyYW1lLCBjCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShmcmFtZS0+ZnJhbWVJ
RCgpLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwgY2hhbGxlbmdlSUQpLCBmcmFtZS0+cGFnZSgp
LT5wYWdlSUQoKSk7CiB9CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogI2lmIFVTRShO
RVRXT1JLX1NFU1NJT04pCiB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLCBD
aGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciBjb21wbGV0aW9uSGFuZGxlcikKIHsKQEAgLTE1Myw2
ICsxNTcsNyBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdQogICAgIAogICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6RGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKHBhZ2VJRCwgZnJhbWVJRCwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UsIGNo
YWxsZW5nZUlEKSk7CiB9CisjZW5kaWYKIAogI2lmICFVU0UoTkVUV09SS19TRVNTSU9OKQogdm9p
ZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShEb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
ZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9DdXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9Db2NvYS9D
dXN0b21Qcm90b2NvbE1hbmFnZXJDb2NvYS5tbQppbmRleCAxNDQzZjE2ZmYxYjRjYTdhMmI0ZTI4
ZDIyZDkzMDg2NzFjMDI1ODc1Li5lMzg4MjU1MjlhZGEwNDk0OTgxZWVmZTY2ZGNhYzFjZWMxMmZh
MzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90
b2NvbHMvQ29jb2EvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL0NvY29hL0N1c3RvbVByb3RvY29s
TWFuYWdlckNvY29hLm1tCkBAIC0zMCw3ICszMCw2IEBACiAjaW1wb3J0ICJDdXN0b21Qcm90b2Nv
bE1hbmFnZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIgogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgotI2ltcG9ydCAiTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCA8
V2ViQ29yZS9VUkwuaD4KQEAgLTM4LDYgKzM3LDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAKKyNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKKyNlbmRpZgorCiAjaWZkZWYgX19oYXNfaW5jbHVkZQogI2lmIF9faGFz
X2luY2x1ZGUoPEZvdW5kYXRpb24vTlNVUkxDb25uZWN0aW9uUHJpdmF0ZS5oPikKICNpbXBvcnQg
PEZvdW5kYXRpb24vTlNVUkxDb25uZWN0aW9uUHJpdmF0ZS5oPgpAQCAtMTM0LDExICsxMzcsMjIg
QEAgdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbikKIAogdm9pZCBDdXN0b21Qcm90b2NvbE1hbmFnZXI6Omlu
aXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
IHsKLSAgICBBU1NFUlQocGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVBy
b3RvY29scy5pc0VtcHR5KCkpOwotICAgIG1fY2hpbGRQcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5yZW1vdmVXb3JrUXVldWVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkN1c3Rv
bVByb3RvY29sTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKLSAgICBtX21lc3NhZ2VR
dWV1ZSA9IG51bGxwdHI7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICBBU1NFUlQo
cGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29scy5pc0VtcHR5
KCkgfHwgIXBhcmFtZXRlcnMudXNlc05ldHdvcmtQcm9jZXNzKTsKKyAgICBpZiAocGFyYW1ldGVy
cy51c2VzTmV0d29ya1Byb2Nlc3MpIHsKKyAgICAgICAgbV9jaGlsZFByb2Nlc3MtPnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnJlbW92ZVdvcmtRdWV1ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgICAg
ICBtX21lc3NhZ2VRdWV1ZSA9IG51bGxwdHI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5k
aWYKKworICAgIFtOU1VSTFByb3RvY29sIHJlZ2lzdGVyQ2xhc3M6W1dLQ3VzdG9tUHJvdG9jb2wg
Y2xhc3NdXTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFyYW1ldGVycy51cmxTY2hl
bWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3RvY29scy5zaXplKCk7ICsraSkKKyAgICAgICAgcmVn
aXN0ZXJTY2hlbWUocGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZvckN1c3RvbVByb3Rv
Y29sc1tpXSk7CiB9CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogdm9pZCBDdXN0b21Q
cm90b2NvbE1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgW05TVVJMUHJvdG9jb2wgcmVnaXN0ZXJDbGFz
czpbV0tDdXN0b21Qcm90b2NvbCBjbGFzc11dOwpAQCAtMTQ2LDYgKzE2MCw3IEBAIHZvaWQgQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbWV0ZXJzLnVy
bFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzLnNpemUoKTsgKytpKQogICAgICAg
ICByZWdpc3RlclNjaGVtZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9t
UHJvdG9jb2xzW2ldKTsKIH0KKyNlbmRpZgogCiB2b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6
YWRkQ3VzdG9tUHJvdG9jb2woV0tDdXN0b21Qcm90b2NvbCAqY3VzdG9tUHJvdG9jb2wpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMv
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9D
dXN0b21Qcm90b2NvbHMvQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgKaW5kZXggYzQ4NTdiMWUzZmVi
NTMzYjg4NzJiODY3OWQyYTlmYmMwYWVlNzdlNS4uMDk4MDA5YzJkOTIxYTZjZDRhYjg5YjI5M2Ey
ZTYxOTQyNTBiOWVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsv
Q3VzdG9tUHJvdG9jb2xzL0N1c3RvbVByb3RvY29sTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9DdXN0b21Qcm90b2NvbE1hbmFnZXIu
aApAQCAtODMsOCArODMsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJQcm9jZXNzU3VwcGxlbWVu
dAogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
Jikgb3ZlcnJpZGU7CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIC8vIE5ldHdv
cmtQcm9jZXNzU3VwcGxlbWVudAogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpIG92ZXJyaWRlOworI2VuZGlmCiAKICAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9DdXN0b21Qcm90b2NvbHMvc291cC9DdXN0
b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3Jr
L0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCmluZGV4
IGIzMGZlNzNiMmFkMGM0NzI2MzU3YTBjYWRiNDNhOGYzOTU1Mjc1NzMuLmE2NWNhMDhlNzQ2OTY0
YzU5NDkxMjQxYjNiODIxMTMxOTAxNmQ0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclNv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9zb3VwL0N1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCkBAIC0yMywxMCArMjMsMTMgQEAK
ICNpbmNsdWRlICJDaGlsZFByb2Nlc3MuaCIKICNpbmNsdWRlICJDdXN0b21Qcm90b2NvbE1hbmFn
ZXJJbXBsLmgiCiAjaW5jbHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCIKLSNp
bmNsdWRlICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNvbnN0IGNoYXIqIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUo
KQpAQCAtNDgsMTYgKzUxLDI1IEBAIHZvaWQgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyOjppbml0aWFs
aXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiAKIHZvaWQgQ3VzdG9t
UHJvdG9jb2xNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0gICAgQVNTRVJUKHBhcmFtZXRlcnMudXJsU2NoZW1lc1Jl
Z2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMuaXNFbXB0eSgpKTsKLSAgICBtX2NoaWxkUHJvY2Vz
cy0+cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+cmVtb3ZlV29ya1F1ZXVlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpDdXN0b21Qcm90b2NvbE1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSk7Ci0gICAgbV9tZXNzYWdlUXVldWUgPSBudWxscHRyOworI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCisgICAgQVNTRVJUKHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0
b21Qcm90b2NvbHMuaXNFbXB0eSgpIHx8ICFwYXJhbWV0ZXJzLnVzZXNOZXR3b3JrUHJvY2Vzcyk7
CisgICAgaWYgKHBhcmFtZXRlcnMudXNlc05ldHdvcmtQcm9jZXNzKSB7CisgICAgICAgIG1fY2hp
bGRQcm9jZXNzLT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5yZW1vdmVXb3JrUXVldWVNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkN1c3RvbVByb3RvY29sTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKTsKKyAgICAgICAgbV9tZXNzYWdlUXVldWUgPSBudWxscHRyOworICAgICAgICBy
ZXR1cm47CisgICAgfQorI2VuZGlmCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwYXJhbWV0
ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9yQ3VzdG9tUHJvdG9jb2xzLnNpemUoKTsgKytpKQor
ICAgICAgICByZWdpc3RlclNjaGVtZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkRm9y
Q3VzdG9tUHJvdG9jb2xzW2ldKTsKIH0KIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiB2
b2lkIEN1c3RvbVByb3RvY29sTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHMu
c2l6ZSgpOyArK2kpCiAgICAgICAgIHJlZ2lzdGVyU2NoZW1lKHBhcmFtZXRlcnMudXJsU2NoZW1l
c1JlZ2lzdGVyZWRGb3JDdXN0b21Qcm90b2NvbHNbaV0pOwogfQorI2VuZGlmCiAKIHZvaWQgQ3Vz
dG9tUHJvdG9jb2xNYW5hZ2VyOjpyZWdpc3RlclNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA3NTFmYmIxMWM0ZmEw
MTA2YTFhNTZlODA2YTAzOTRlYTg5OTYxY2Q1Li5hMzdiYmUzZTE5YzRlYWEwOGY1OWRjYzU1M2Ni
NzM2ODI0ZWJiZGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0y
Niw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisK
ICNpbmNsdWRlICJBcmd1bWVudENvZGVycy5oIgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0x
NjYsMyArMTY4LDUgQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBOZXQKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNzFkMTMzM2UxZjVhMjUxNTBmZGNkODFkMjZiNzQ3
NTA5ZjIwMjViNC4uOTA4NjljMTk1YzRkNzc4NDJhYTljOGI5NTM1YmVjMzU2NTRhOGMzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZuZGVm
IE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzX2gKICNkZWZpbmUgTmV0d29ya1Byb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnNfaAogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwog
I2luY2x1ZGUgIkNhY2hlTW9kZWwuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMTAxLDQgKzEwMyw2IEBAIHN0cnVjdCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCisj
ZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogI2VuZGlmIC8vIE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OZXR3b3JrL05ldHdvcmtQcm9jZXNzU3VwcGxlbWVudC5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmgKaW5kZXggZTJiNDZiMzkxN2Iz
MTk3ZmM2M2EwNGQwZTE4Yjc5ZDMwMjc4OTllMy4uZDZmYmU1YmZkOWQ0ZmQxNWI5MmQ2ZWVhYjEx
OTllNWZlZjc5N2U0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50LmgKQEAgLTMzLDEwICszMywxMiBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsK
IAogY2xhc3MgTmV0d29ya1Byb2Nlc3NTdXBwbGVtZW50IDogcHVibGljIENoaWxkUHJvY2Vzc1N1
cHBsZW1lbnQgeworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGluaXRpYWxpemUoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmKQogICAgIHsKICAgICB9CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IGY0YzU4YTVlNGM2M2E5NTIyYjY0Yjk4
ZmI4MGM4NzAxYTI3MDZiY2QuLmM1ZDg0NjU1ODRjMGViYTUzMzkyOWExODhiYTE5YTIzNTI4ZjA5
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29y
ay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xNTgsMyArMTYwLDUgQEAgYm9vbCBOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBk
ZWNvZGVyLCBOZXR3b3IKIH0KICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCmluZGV4
IDJmMTUyOGExZDIzYzQ5MjAyMmFjMDQwNGY1ZjE4Nzc5ZDE0Y2M5ODkuLjJlOGI5MWNlMDYzNDM5
OWVhZjZiMzM5MTQ0NTZiNGEyNGM4YTJkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaApA
QCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXNzaW9uSUQuaD4KIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCisKIG5hbWVzcGFjZSBJUEMgewogICAgIGNsYXNzIEFyZ3VtZW50RGVjb2RlcjsKICAgICBj
bGFzcyBBcmd1bWVudEVuY29kZXI7CkBAIC02Niw0ICs2OCw2IEBAIHB1YmxpYzoKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCiAj
ZW5kaWYgLy8gTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnNfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmluZGV4IGIwMDc1ODQxMDVhYzk2OTQy
ODcyZGVmMjlmNGYwNzRhYzY2ZGVjMTYuLjRmZmQxMWJkNmZjMTE4MmVlNzFlZWQxMWRjNDhjM2Ez
MmY1NTU3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzRXhlY3V0
YWJsZVBhdGguaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoLmgKQEAgLTMyLDcgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFN0cmluZyBleGVj
dXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpOwogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZQbHVnaW5Q
cm9jZXNzKCk7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIFN0cmluZyBleGVjdXRhYmxl
UGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyNlbmRpZgogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9D
RVNTKQogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3MoKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCmluZGV4IDA5MjUyOTVhZmMzNDE3NjBmOTIxMmMwZDU3N2NiNmI5OTFlYmY4YTYu
LjFlNjMxYTA4OGFhMzU3NjM3NWI1OWM3MjQ2YmE1YzNkNTM0NGM5ZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
QEAgLTQzLDYgKzQzLDkgQEAgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6V2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycygpCiAgICAgLCBzaG91bGRFbmFibGVKSVQoZmFsc2UpCiAgICAg
LCBzaG91bGRFbmFibGVGVExKSVQoZmFsc2UpCiAjZW5kaWYKKyNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQorICAgICwgdXNlc05ldHdvcmtQcm9jZXNzKGZhbHNlKQorI2VuZGlmCiAgICAgLCBt
ZW1vcnlDYWNoZURpc2FibGVkKGZhbHNlKQogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQog
ICAgICwgaGFzSW1hZ2VTZXJ2aWNlcyhmYWxzZSkKQEAgLTEzMCw2ICsxMzMsMTAgQEAgdm9pZCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBub3RpZmljYXRpb25QZXJtaXNzaW9uczsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICBlbmNvZGVyIDw8IHVz
ZXNOZXR3b3JrUHJvY2VzczsKKyNlbmRpZgorCiAgICAgZW5jb2RlciA8PCBwbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoZXM7CiAgICAgZW5jb2RlciA8PCBwbHVnSW5BdXRvU3RhcnRPcmlnaW5zOwog
ICAgIGVuY29kZXIgPDwgbWVtb3J5Q2FjaGVEaXNhYmxlZDsKQEAgLTI4NCw2ICsyOTEsMTEgQEAg
Ym9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFdlYlByb2MKICAgICAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy51c2VzTmV0d29ya1Byb2Nlc3MpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5k
aWYKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5wbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLnBsdWdJbkF1dG9TdGFydE9yaWdpbnMpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggY2Fk
NWI3MDliYjMyNTk2ODFmNmQ1MTJkYjBjZWQ2Yzk4ZDI4Y2I5Yi4uYjgzOGE5NzgxYmNlOTcwOTQ0
Zjc0NjQ0NzBhZTFjYzA3MTNhMjRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xNTQsNiArMTU0LDEwIEBAIHN0
cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBIYXNoTWFwPFN0cmluZywg
Ym9vbD4gbm90aWZpY2F0aW9uUGVybWlzc2lvbnM7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCisgICAgYm9vbCB1c2VzTmV0d29ya1Byb2Nlc3M7CisjZW5kaWYKKwogICAg
IEhhc2hNYXA8V2ViQ29yZTo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiBw
bHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CiAgICAgVmVjdG9yPFN0cmluZz4gcGx1Z0luQXV0
b1N0YXJ0T3JpZ2luczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Q
cm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9Q
cm9jZXNzRXhlY3V0YWJsZVBhdGhFZmwuY3BwCmluZGV4IGU1MzUwZmUyYTAyNzZlMmY1YmE5YzI4
Yzk3NTVhNTJkNWE3NWNiZjguLjNkNTM2MDQxYTRmYTk3YzgyNjM0YjgyZmY0OTgxZTdjYWUyOGVh
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aEVmbC5jcHAKQEAgLTgxLDEyICs4MSwxNCBAQCBTdHJpbmcgZXhlY3V0YWJsZVBh
dGhPZlBsdWdpblByb2Nlc3MoKQogICAgIHJldHVybiB3ZWJLaXRQbHVnaW5Qcm9jZXNzTmFtZTsK
IH0KIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiBTdHJpbmcgZXhlY3V0YWJsZVBhdGhP
Zk5ldHdvcmtQcm9jZXNzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3QgU3Ry
aW5nPiB3ZWJLaXROZXR3b3JrUHJvY2Vzc05hbWUoZmluZFByb2Nlc3NQYXRoKE5FVFdPUktQUk9D
RVNTTkFNRSkpOwogCiAgICAgcmV0dXJuIHdlYktpdE5ldHdvcmtQcm9jZXNzTmFtZTsKIH0KKyNl
bmRpZgogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiBTdHJpbmcgZXhlY3V0YWJsZVBh
dGhPZkRhdGFiYXNlUHJvY2VzcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Z3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Z3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAKaW5kZXggMjJmNzA1YjhjZmRjNWVhMjkx
YmQyM2NkOWQ3YzkzZTUzN2ZiMjE4ZC4uOTFmYzU4MGRjNmE0NzNiNzBjMjMwOTgwMjY3YWRmYzVk
ZjQxZjQwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Qcm9jZXNzRXhl
Y3V0YWJsZVBhdGhHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvUHJvY2Vz
c0V4ZWN1dGFibGVQYXRoR3RrLmNwcApAQCAtNzksMTAgKzc5LDEyIEBAIFN0cmluZyBleGVjdXRh
YmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpCiAgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJX
ZWJLaXRQbHVnaW5Qcm9jZXNzIik7CiB9CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQog
U3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgcmV0dXJuIGZp
bmRXZWJLaXRQcm9jZXNzKCJXZWJLaXROZXR3b3JrUHJvY2VzcyIpOwogfQorI2VuZGlmCiAKICNp
ZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mRGF0YWJh
c2VQcm9jZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2ll
U3RvcmFnZVNoaW0uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNo
aW0uaAppbmRleCA1NWVjNzYxODQzYjJiYzdiYTc1Njk3M2YzZjYzNjFhMDNmN2E2MmY1Li5hYjM0
MjI0NjMzOGZmZTkyN2NkYjlhZGFhM2IxZDhlMzkyMDE4NTE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbS5oCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZu
ZGVmIENvb2tpZVN0b3JhZ2VTaGltX2gKICNkZWZpbmUgQ29va2llU3RvcmFnZVNoaW1faAogCisj
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCkBAIC00Nyw0ICs0OSw2IEBAIHBy
aXZhdGU6CiAKIH0KIAorI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKICNlbmRp
ZiAvLyBDb29raWVTdG9yYWdlU2hpbV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9D
b29raWVTdG9yYWdlU2hpbS5tbQppbmRleCA3MDExNzYzYzM4NTRiZjdiZjQwNjUyODA2MjBiNDY4
OTEwYWIwNGNkLi4wNDNkNjU2NmMzMjcyMGFmYWRjYjdlZDI1ZGI4YjlmNGZiZWY5ZDQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW0ubW0KQEAgLTI2
LDYgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb29raWVTdG9yYWdl
U2hpbS5oIgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogI2luY2x1ZGUgIkNvb2tp
ZVN0b3JhZ2VTaGltTGlicmFyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCkBAIC0xMzMs
MyArMTM1LDUgQEAgdXNpbmcgQ29tcGxldGlvbkhhbmRsZXJCbG9jayA9IHZvaWQoXikoQ0ZEaWN0
aW9uYXJ5UmVmKTsKIH0KIAogQGVuZAorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNo
aW1MaWJyYXJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNo
aW1MaWJyYXJ5LmNwcAppbmRleCBkZjdmODk2OWJiYTVlOTQxNTJkM2Y1ZDY1MzJjMDIxYWViNmIy
N2ViLi42NzdkYjI3ZTFjOWZkNzRjOTRiYmUwYWJhNzRiZDg4YjAxMDU3Mzg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnku
Y3BwCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29v
a2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgiCiAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpICYmICFQTEFURk9STShJT1MpCiAKICNpbmNsdWRlIDxXZWJDb3Jl
L0R5bmFtaWNMaW5rZXJJbnRlcnBvc2luZy5oPgogCkBAIC05MCw0ICs5MCw0IEBAIHZvaWQgV2Vi
S2l0Q29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplKGNvbnN0IENvb2tpZVN0b3JhZ2VTaGltQ2Fs
bGJhY2tzJiBjYWxsYmFjCiAgICAgCiB9CiAKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQorI2Vu
ZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpICYmICFQTEFURk9STShJT1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9Db29raWVTdG9yYWdlU2hpbUxpYnJhcnkuaApp
bmRleCA3NzQ3ZmM5NmIyNzAyY2MzOGQ4NTAxNzk2NGRlM2U1MDE4MGQzZTE3Li4zMTA4ZTBhMWRm
NjdiYTYxZGE5NGY3MjJiNTUwZjRmMWViNDQ5OWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL0Nvb2tpZVN0b3JhZ2VTaGltTGlicmFyeS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5LmgKQEAgLTI2LDYgKzI2LDgg
QEAKICNpZm5kZWYgQ29va2llU3RvcmFnZVNoaW1MaWJyYXJ5X2gKICNkZWZpbmUgQ29va2llU3Rv
cmFnZVNoaW1MaWJyYXJ5X2gKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKIHR5cGVk
ZWYgc3RydWN0IE9wYXF1ZUNGSFRUUENvb2tpZVN0b3JhZ2UqICBDRkhUVFBDb29raWVTdG9yYWdl
UmVmOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM4LDQgKzQwLDYgQEAgdHlwZWRlZiB2b2lk
ICgqQ29va2llU3RvcmFnZVNoaW1Jbml0aWFsaXplRnVuYykoY29uc3QgQ29va2llU3RvcmFnZVNo
aW1DYWxsYmFja3MKIAogfQogCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwog
I2VuZGlmIC8vIENvb2tpZVN0b3JhZ2VTaGltTGlicmFyeV9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5j
cHAKaW5kZXggZmY3NjU1MTUyYzI0NzllZmFmOTNiODRiZmMwOTgyMDE0MjU1YTBhMS4uMGRjOGUy
OTc5ODYzOGM5Mzc4MTk4NmM1Y2ZkNmYwNjkzYTYwNjRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
LmNwcApAQCAtNDEsNiArNDEsNyBAQCBSZWY8UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uPiBQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb246OmNyZWF0ZVdpdGhMZWdhY3lPcHRpb25zKAogICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbjo6Y3JlYXRlKCk7CiAKICAg
ICBjb25maWd1cmF0aW9uLT5tX3Nob3VsZEhhdmVMZWdhY3lEYXRhU3RvcmUgPSB0cnVlOworICAg
IGNvbmZpZ3VyYXRpb24tPm1fcHJvY2Vzc01vZGVsID0gV2ViS2l0OjpQcm9jZXNzTW9kZWxTaGFy
ZWRTZWNvbmRhcnlQcm9jZXNzOwogICAgIGNvbmZpZ3VyYXRpb24tPm1fdXNlTmV0d29ya1Byb2Nl
c3MgPSBmYWxzZTsKICAgICBjb25maWd1cmF0aW9uLT5tX2NhY2hlTW9kZWwgPSBXZWJLaXQ6OkNh
Y2hlTW9kZWxEb2N1bWVudFZpZXdlcjsKIApAQCAtNzMsNiArNzQsNyBAQCBSZWY8UHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uPiBQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb246OmNvcHkoKQogICAgIGF1
dG8gY29weSA9IHRoaXMtPmNyZWF0ZSgpOwogCiAgICAgY29weS0+bV9zaG91bGRIYXZlTGVnYWN5
RGF0YVN0b3JlID0gdGhpcy0+bV9zaG91bGRIYXZlTGVnYWN5RGF0YVN0b3JlOworICAgIGNvcHkt
Pm1fcHJvY2Vzc01vZGVsID0gdGhpcy0+bV9wcm9jZXNzTW9kZWw7CiAgICAgY29weS0+bV91c2VO
ZXR3b3JrUHJvY2VzcyA9IHRoaXMtPm1fdXNlTmV0d29ya1Byb2Nlc3M7CiAgICAgY29weS0+bV9t
YXhpbXVtUHJvY2Vzc0NvdW50ID0gdGhpcy0+bV9tYXhpbXVtUHJvY2Vzc0NvdW50OwogICAgIGNv
cHktPm1fY2FjaGVNb2RlbCA9IHRoaXMtPm1fY2FjaGVNb2RlbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5o
CmluZGV4IDlkNWUyNWJmNTMzNzlhYzJjOGM1YjNiNjJiNjM5NjdiNWU3NTFkZDYuLjZkYzlmMmE5
ZWRiODViMzFmMTY5ZTdjYjUzOTFjMWJkMzE0NzA3Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ2Fj
aGVNb2RlbC5oIgorI2luY2x1ZGUgIlByb2Nlc3NNb2RlbC5oIgogI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CkBAIC00Nyw2ICs0OCw5IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZEhhdmVMZWdhY3lE
YXRhU3RvcmUoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEhhdmVMZWdhY3lEYXRhU3RvcmU7IH0K
ICAgICB2b2lkIHNldFNob3VsZEhhdmVMZWdhY3lEYXRhU3RvcmUoYm9vbCBzaG91bGRIYXZlTGVn
YWN5RGF0YVN0b3JlKSB7IG1fc2hvdWxkSGF2ZUxlZ2FjeURhdGFTdG9yZSA9IHNob3VsZEhhdmVM
ZWdhY3lEYXRhU3RvcmU7IH0KIAorICAgIFdlYktpdDo6UHJvY2Vzc01vZGVsIHByb2Nlc3NNb2Rl
bCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc01vZGVsOyB9CisgICAgdm9pZCBzZXRQcm9jZXNz
TW9kZWwoV2ViS2l0OjpQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsKSB7IG1fcHJvY2Vzc01vZGVs
ID0gcHJvY2Vzc01vZGVsOyB9IAorCiAgICAgYm9vbCB1c2VOZXR3b3JrUHJvY2VzcygpIGNvbnN0
IHsgcmV0dXJuIG1fdXNlTmV0d29ya1Byb2Nlc3M7IH0KICAgICB2b2lkIHNldFVzZU5ldHdvcmtQ
cm9jZXNzKGJvb2wgdXNlTmV0d29ya1Byb2Nlc3MpIHsgbV91c2VOZXR3b3JrUHJvY2VzcyA9IHVz
ZU5ldHdvcmtQcm9jZXNzOyB9IAogCkBAIC05Miw2ICs5Niw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgYm9vbCBtX3Nob3VsZEhhdmVMZWdhY3lEYXRhU3RvcmUgeyBmYWxzZSB9OwogCisgICAg
V2ViS2l0OjpQcm9jZXNzTW9kZWwgbV9wcm9jZXNzTW9kZWwgeyBXZWJLaXQ6OlByb2Nlc3NNb2Rl
bE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzIH07CiAgICAgYm9vbCBtX3VzZU5ldHdvcmtQcm9j
ZXNzIHsgdHJ1ZSB9OwogICAgIHVuc2lnbmVkIG1fbWF4aW11bVByb2Nlc3NDb3VudCB7IDAgfTsK
ICAgICBXZWJLaXQ6OkNhY2hlTW9kZWwgbV9jYWNoZU1vZGVsIHsgV2ViS2l0OjpDYWNoZU1vZGVs
UHJpbWFyeVdlYkJyb3dzZXIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQVBJU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVNl
c3Npb24uY3BwCmluZGV4IDZjNDYwZGNjZDM1NWE4N2ExZTM0NjgyZjEzMjliMmI2ZjZlMmJmZjku
LmEyOTZlNzY1MzUwYjg0NGNmY2E5YzNlMmMyY2JhYTkzMmY2M2I0ZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElTZXNzaW9uLmNwcApAQCAtMjgsOCArMjgsMTAgQEAKIAog
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UG9vbC5oIgorI2VuZGlmCiAKIG5hbWVzcGFjZSBBUEkgewogCkBAIC03OCwxMCArODAsMTIgQEAg
V2ViQ29yZTo6U2Vzc2lvbklEIFNlc3Npb246OmdldElEKCkgY29uc3QKIAogU2Vzc2lvbjo6flNl
c3Npb24oKQogeworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKG1fc2Vzc2lv
bklELmlzRXBoZW1lcmFsKCkpIHsKICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6IFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKQogICAgICAgICAgICAgcHJv
Y2Vzc1Bvb2wtPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24obV9zZXNzaW9uSUQpKTsKICAgICB9Cisj
ZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNDg0NmVhM2I2YTAwNDczOTczNDFhZjZlZWZiMzI4MWE5
ZDgwZmE5Zi4uOGNiYjhkNWQzNTI4OGMxMzcwNDlmODZhZDc5NDMwNmM5ZTViNjk5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIkhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCIKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJ
bmZvLmgiCisjaW5jbHVkZSAiUHJvY2Vzc01vZGVsLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VDYWNo
ZXNUb0NsZWFyLmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVk
ZSAiV0tDb250ZXh0LmgiCkBAIC0yMjksNiArMjMwLDMxIEBAIGlubGluZSBXS0NhY2hlTW9kZWwg
dG9BUEkoQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKQogICAgIHJldHVybiBrV0tDYWNoZU1vZGVsRG9j
dW1lbnRWaWV3ZXI7CiB9CiAKK2lubGluZSBQcm9jZXNzTW9kZWwgdG9Qcm9jZXNzTW9kZWwoV0tQ
cm9jZXNzTW9kZWwgd2tQcm9jZXNzTW9kZWwpCit7CisgICAgc3dpdGNoICh3a1Byb2Nlc3NNb2Rl
bCkgeworICAgIGNhc2Uga1dLUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAg
ICAgICAgcmV0dXJuIFByb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M7CisgICAgY2Fz
ZSBrV0tQcm9jZXNzTW9kZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczoKKyAgICAgICAgcmV0
dXJuIFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOworICAgIH0KKworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBQcm9jZXNzTW9kZWxTaGFyZWRTZWNv
bmRhcnlQcm9jZXNzOworfQorCitpbmxpbmUgV0tQcm9jZXNzTW9kZWwgdG9BUEkoUHJvY2Vzc01v
ZGVsIHByb2Nlc3NNb2RlbCkKK3sKKyAgICBzd2l0Y2ggKHByb2Nlc3NNb2RlbCkgeworICAgIGNh
c2UgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAgICAgICAgcmV0dXJuIGtX
S1Byb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3M7CisgICAgY2FzZSBQcm9jZXNzTW9k
ZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczoKKyAgICAgICAgcmV0dXJuIGtXS1Byb2Nlc3NN
b2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOworICAgIH0KKyAgICAKKyAgICByZXR1cm4g
a1dLUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczsKK30KKwogaW5saW5lIEZvbnRT
bW9vdGhpbmdMZXZlbCB0b0ZvbnRTbW9vdGhpbmdMZXZlbChXS0ZvbnRTbW9vdGhpbmdMZXZlbCB3
a0xldmVsKQogewogICAgIHN3aXRjaCAod2tMZXZlbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCA4NzY4NzkyYmE4MzA1NTRkMjZhNjZkZTll
YTM4YjVhNThkY2ZiYWI1Li43MDI1MzEzNDQ5MWY4YTY4MTA2MTlkMTdiZWFjNzZiMTg4OWQ0NmE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAt
MzI5LDYgKzMyOSwxNiBAQCBXS0NhY2hlTW9kZWwgV0tDb250ZXh0R2V0Q2FjaGVNb2RlbChXS0Nv
bnRleHRSZWYgY29udGV4dFJlZikKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYp
LT5jYWNoZU1vZGVsKCkpOwogfQogCit2b2lkIFdLQ29udGV4dFNldFByb2Nlc3NNb2RlbChXS0Nv
bnRleHRSZWYgY29udGV4dFJlZiwgV0tQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsKQoreworICAg
IHRvSW1wbChjb250ZXh0UmVmKS0+c2V0UHJvY2Vzc01vZGVsKHRvUHJvY2Vzc01vZGVsKHByb2Nl
c3NNb2RlbCkpOworfQorCitXS1Byb2Nlc3NNb2RlbCBXS0NvbnRleHRHZXRQcm9jZXNzTW9kZWwo
V0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCit7CisgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChjb250
ZXh0UmVmKS0+cHJvY2Vzc01vZGVsKCkpOworfQorCiB2b2lkIFdLQ29udGV4dFNldE1heGltdW1O
dW1iZXJPZlByb2Nlc3NlcyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgdW5zaWduZWQgbnVtYmVy
T2ZQcm9jZXNzZXMpCiB7CiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5zZXRNYXhpbXVtTnVtYmVy
T2ZQcm9jZXNzZXMobnVtYmVyT2ZQcm9jZXNzZXMpOwpAQCAtNTQ0LDYgKzU1NCwxMSBAQCB2b2lk
IFdLQ29udGV4dFNldEphdmFTY3JpcHRHYXJiYWdlQ29sbGVjdG9yVGltZXJFbmFibGVkKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLAogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c2V0SmF2YVNjcmlw
dEdhcmJhZ2VDb2xsZWN0b3JUaW1lckVuYWJsZWQoZW5hYmxlKTsKIH0KIAordm9pZCBXS0NvbnRl
eHRTZXRVc2VzTmV0d29ya1Byb2Nlc3MoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIGJvb2wgdXNl
c05ldHdvcmtQcm9jZXNzKQoreworICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c2V0VXNlc05ldHdv
cmtQcm9jZXNzKHVzZXNOZXR3b3JrUHJvY2Vzcyk7Cit9CisKIHZvaWQgV0tDb250ZXh0VXNlVGVz
dGluZ05ldHdvcmtTZXNzaW9uKFdLQ29udGV4dFJlZiBjb250ZXh0KQogewogICAgIHRvSW1wbChj
b250ZXh0KS0+dXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKaW5kZXggNmRlMDEzZWNkYWEyM2Y1MzMxYjY0ZjFiYTUw
OGQxMGJlOThjNmJlMS4uMWIzZDgyYzFiZmIxNDMwZjhiNDQ3ZWZhOWM4N2E5MTMwOGE3Y2M2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaApAQCAtNzUsNyAr
NzUsNiBAQCB0eXBlZGVmIHN0cnVjdCBXS0NvbnRleHRDbGllbnRWMSB7CiAgICAgV0tDb250ZXh0
Q29weVdlYkNyeXB0b01hc3RlcktleUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb3B5V2ViQ3J5cHRvTWFzdGVyS2V5OwogfSBXS0NvbnRleHRDbGllbnRWMTsKIAotLy8gRklY
TUU6IFRoZXNlIGNhbiBiZSByZW1vdmVkIG9uY2Ugd2UgYXJlIG5vIGxvbmdlciBzdXBwb3J0aW5n
IE1hdmVyaWNrcy4KIGVudW0gewogICAgIGtXS1Byb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVBy
b2Nlc3MgPSAwLAogICAgIGtXS1Byb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2Vz
ID0gMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0Nv
bnRleHRQcml2YXRlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9X
S0NvbnRleHRQcml2YXRlTWFjLm1tCmluZGV4IDQzYTIzNjJjZWU3ZDI0M2FjM2Q2ZTQ2MWZiZDc1
NzRmYWQ3NjUyNjMuLjlhMjhkYWIwM2Q3ZGI5MmNjMWRjY2JhNGZiMTE5ZDNlMTg3NTNkOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tDb250ZXh0UHJp
dmF0ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ29u
dGV4dFByaXZhdGVNYWMubW0KQEAgLTE2Niw1ICsxNjYsMTAgQEAgYm9vbCBXS0NvbnRleHRTaG91
bGRTdWdnZXN0QmxvY2tXZWJHTCgpCiAKIHBpZF90IFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNz
SWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKKyNpZiBFTkFCTEUoTkVUV09S
S19QUk9DRVNTKQogICAgIHJldHVybiB0b0ltcGwoY29udGV4dFJlZiktPm5ldHdvcmtQcm9jZXNz
SWRlbnRpZmllcigpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dFJlZik7CisgICAg
cmV0dXJuIDA7CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzR3JvdXAubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJvY2Vzc0dyb3VwLm1tCmluZGV4IGVjZmM4MGZlYzJmMTM3YTI0MWU3OGM5
MjhkNmNlYTk0NjcxODA0M2EuLjg0YTc2ODFiZDJmYjIyNTI4NTdmMTY1YWQyODIxODIwZmMxOTIz
MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzR3JvdXAubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NHcm91cC5tbQpAQCAtMTkyLDYgKzE5MiwxMCBAQCBzdGF0aWMgdm9pZCBzZXRVcEhpc3Rv
cnlDbGllbnQoV0tQcm9jZXNzR3JvdXAgKnByb2Nlc3NHcm91cCwgV0tDb250ZXh0UmVmIGNvbnRl
eAogCiAgICAgYXV0byBjb25maWd1cmF0aW9uID0gQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b246OmNyZWF0ZVdpdGhMZWdhY3lPcHRpb25zKCk7CiAgICAgY29uZmlndXJhdGlvbi0+c2V0SW5q
ZWN0ZWRCdW5kbGVQYXRoKGJ1bmRsZVVSTCA/IFN0cmluZyhidW5kbGVVUkwucGF0aCkgOiBTdHJp
bmcoKSk7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIGNvbmZpZ3VyYXRpb24tPnNldFVzZU5ldHdv
cmtQcm9jZXNzKHRydWUpOworICAgIGNvbmZpZ3VyYXRpb24tPnNldFByb2Nlc3NNb2RlbChQcm9j
ZXNzTW9kZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3Nlcyk7CisjZW5kaWYKIAogICAgIF9wcm9j
ZXNzUG9vbCA9IFdlYlByb2Nlc3NQb29sOjpjcmVhdGUoY29uZmlndXJhdGlvbik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpp
bmRleCAxOGZkYTUwY2MxNTQ0MDdmZjQxNjhkOTY4YzAzMjE3YzYxMzdiZGI0Li45NjgxYWU4M2Ex
MTljYmVlNTczM2I0Nzc4MGE5OWM2YThhMzk4NWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0zMCw2ICszMCw3IEBA
CiAKICNpbXBvcnQgIkNhY2hlTW9kZWwuaCIKICNpbXBvcnQgIkRvd25sb2FkQ2xpZW50LmgiCisj
aW1wb3J0ICJQcm9jZXNzTW9kZWwuaCIKICNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNp
bXBvcnQgIldLT2JqZWN0LmgiCiAjaW1wb3J0ICJXZWFrT2JqQ1B0ci5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCmluZGV4IDY5NzE5ZDc4
ZDlmMThlOTljNmNkZmJiNzAwYzU4M2I1NDNjNmRjYTAuLjg1NzAzNTA5ZjQ4YWY5MGE2MjRlMjIw
ZjRiMmMxMTQxODQxMmFhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dC5jcHAKQEAgLTU3MCwxOCArNTcwLDI5IEBAIHZvaWQgZXdrX2NvbnRl
eHRfbWVzc2FnZV9mcm9tX2V4dGVuc2lvbnNfY2FsbGJhY2tfc2V0KEV3a19Db250ZXh0KiBld2tD
b250ZXh0LCBFCiAKIEVpbmFfQm9vbCBld2tfY29udGV4dF9wcm9jZXNzX21vZGVsX3NldChFd2tf
Q29udGV4dCogZXdrQ29udGV4dCwgRXdrX1Byb2Nlc3NfTW9kZWwgcHJvY2Vzc01vZGVsKQogewor
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgRVdLX09CSl9HRVRfSU1QTF9PUl9SRVRV
Uk4oRXdrQ29udGV4dCwgZXdrQ29udGV4dCwgaW1wbCwgZmFsc2UpOwogCiAgICAgaW1wbC0+c2V0
UHJvY2Vzc01vZGVsKHByb2Nlc3NNb2RlbCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGV3a0NvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShwcm9jZXNzTW9k
ZWwpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQogCiBFd2tfUHJvY2Vzc19Nb2RlbCBl
d2tfY29udGV4dF9wcm9jZXNzX21vZGVsX2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4
dCkKIHsKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIEVXS19PQkpfR0VUX0lNUExf
T1JfUkVUVVJOKGNvbnN0IEV3a0NvbnRleHQsIGV3a0NvbnRleHQsIGltcGwsIEVXS19QUk9DRVNT
X01PREVMX1NIQVJFRF9TRUNPTkRBUlkpOwogCiAgICAgcmV0dXJuIGltcGwtPnByb2Nlc3NNb2Rl
bCgpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZXdrQ29udGV4dCk7CisgICAgcmV0dXJuIEVX
S19QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUlk7CisjZW5kaWYKIH0KIAogRXdrX1RMU19F
cnJvcl9Qb2xpY3kgZXdrX2NvbnRleHRfdGxzX2Vycm9yX3BvbGljeV9nZXQoY29uc3QgRXdrX0Nv
bnRleHQqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IDQxZTg0M2I2M2RlN2NjMTY0ZGEwZTE4OTQz
NDA1OTUwNzhiNDdlMWQuLjlmYmM1MTFmYTRjNmVkODU1MTkyNTdiOTMzZDY2MzM2OGMzM2Y5NTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuY3BwCkBAIC0xOTMsNiArMTkzLDMyIEBAIHN0YXRpYyBndWludCBzaWduYWxzW0xB
U1RfU0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdFdlYkNvbnRl
eHQsIHdlYmtpdF93ZWJfY29udGV4dCwgR19UWVBFX09CSkVDVCkKIAorc3RhdGljIGlubGluZSBX
ZWJLaXQ6OlByb2Nlc3NNb2RlbCB0b1Byb2Nlc3NNb2RlbChXZWJLaXRQcm9jZXNzTW9kZWwgd2Vi
S2l0UHJvY2Vzc01vZGVsKQoreworICAgIHN3aXRjaCAod2ViS2l0UHJvY2Vzc01vZGVsKSB7Cisg
ICAgY2FzZSBXRUJLSVRfUFJPQ0VTU19NT0RFTF9TSEFSRURfU0VDT05EQVJZX1BST0NFU1M6Cisg
ICAgICAgIHJldHVybiBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzOworICAgIGNh
c2UgV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzoKKyAg
ICAgICAgcmV0dXJuIFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
UHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczsKKyAgICB9Cit9CisKK3N0YXRpYyBp
bmxpbmUgV2ViS2l0UHJvY2Vzc01vZGVsIHRvV2ViS2l0UHJvY2Vzc01vZGVsKFdlYktpdDo6UHJv
Y2Vzc01vZGVsIHByb2Nlc3NNb2RlbCkKK3sKKyAgICBzd2l0Y2ggKHByb2Nlc3NNb2RlbCkgewor
ICAgIGNhc2UgUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzczoKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzsKKyAgICBj
YXNlIFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgorICAgICAgICByZXR1
cm4gV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQTEVfU0VDT05EQVJZX1BST0NFU1NFUzsKKyAg
ICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
IFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNPTkRBUllfUFJPQ0VTUzsKKyAgICB9Cit9
CisKIHN0YXRpYyBjb25zdCBjaGFyKiBpbmplY3RlZEJ1bmRsZURpcmVjdG9yeSgpCiB7CiAjaWYg
RU5BQkxFKERFVkVMT1BFUl9NT0RFKQpAQCAtMjU5LDYgKzI4NSw3IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdFdlYkNvbnRleHRDb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmplY3QpCiAKICAgICBBUEk6OlBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uOwogICAgIGNvbmZpZ3VyYXRpb24u
c2V0SW5qZWN0ZWRCdW5kbGVQYXRoKFdlYkNvcmU6OmZpbGVuYW1lVG9TdHJpbmcoYnVuZGxlRmls
ZW5hbWUuZ2V0KCkpKTsKKyAgICBjb25maWd1cmF0aW9uLnNldFByb2Nlc3NNb2RlbChQcm9jZXNz
TW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzKTsKICAgICBjb25maWd1cmF0aW9uLnNldFVzZU5l
dHdvcmtQcm9jZXNzKGZhbHNlKTsKIAogICAgIFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQg
PSBXRUJLSVRfV0VCX0NPTlRFWFQob2JqZWN0KTsKQEAgLTExMzgsOSArMTE2NSwxNyBAQCB2b2lk
IHdlYmtpdF93ZWJfY29udGV4dF9hbGxvd190bHNfY2VydGlmaWNhdGVfZm9yX2hvc3QoV2ViS2l0
V2ViQ29udGV4dCogY29udGV4dAogICoKICAqIFNpbmNlOiAyLjQKICAqLwotdm9pZCB3ZWJraXRf
d2ViX2NvbnRleHRfc2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29udGV4dCosIFdlYktpdFBy
b2Nlc3NNb2RlbCkKK3ZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVsKFdl
YktpdFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYktpdFByb2Nlc3NNb2RlbCBwcm9jZXNzTW9kZWwp
CiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgZGVwcmVjYXRlZC4gT25seSBXRUJLSVRfUFJPQ0VT
U19NT0RFTF9NVUxUSVBMRV9TRUNPTkRBUllfUFJPQ0VTU0VTIGlzIHN1cHBvcnRlZCBub3cuCisg
ICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCkpOworCisg
ICAgUHJvY2Vzc01vZGVsIG5ld1Byb2Nlc3NNb2RlbCh0b1Byb2Nlc3NNb2RlbChwcm9jZXNzTW9k
ZWwpKTsKKworICAgIGlmIChuZXdQcm9jZXNzTW9kZWwgPT0gY29udGV4dC0+cHJpdi0+Y29udGV4
dC0+cHJvY2Vzc01vZGVsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnRleHQtPnByaXYt
PmNvbnRleHQtPnNldFVzZXNOZXR3b3JrUHJvY2VzcyhuZXdQcm9jZXNzTW9kZWwgPT0gUHJvY2Vz
c01vZGVsTXVsdGlwbGVTZWNvbmRhcnlQcm9jZXNzZXMpOworICAgIGNvbnRleHQtPnByaXYtPmNv
bnRleHQtPnNldFByb2Nlc3NNb2RlbChuZXdQcm9jZXNzTW9kZWwpOwogfQogCiAvKioKQEAgLTEx
NTYsNyArMTE5MSw5IEBAIHZvaWQgd2Via2l0X3dlYl9jb250ZXh0X3NldF9wcm9jZXNzX21vZGVs
KFdlYktpdFdlYkNvbnRleHQqLCBXZWJLaXRQcm9jZXNzTW9kZWwpCiAgKi8KIFdlYktpdFByb2Nl
c3NNb2RlbCB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3Byb2Nlc3NfbW9kZWwoV2ViS2l0V2ViQ29u
dGV4dCogY29udGV4dCkKIHsKLSAgICByZXR1cm4gV0VCS0lUX1BST0NFU1NfTU9ERUxfTVVMVElQ
TEVfU0VDT05EQVJZX1BST0NFU1NFUzsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
SVNfV0VCX0NPTlRFWFQoY29udGV4dCksIFdFQktJVF9QUk9DRVNTX01PREVMX1NIQVJFRF9TRUNP
TkRBUllfUFJPQ0VTUyk7CisKKyAgICByZXR1cm4gdG9XZWJLaXRQcm9jZXNzTW9kZWwoY29udGV4
dC0+cHJpdi0+Y29udGV4dC0+cHJvY2Vzc01vZGVsKCkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5k
ZXggN2Q0ZjQ5NDVkMjI5ODRlNGUzYzdlY2NkNzg2ZTY5Y2RiNTE3YjViYy4uZmQxMDgzZjZlNmZj
NWUxZGFkYzZhMWVhMWNkMzRlMjAzM2Y3MmE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTI2LDggKzI2LDYg
QEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKIAotI2lt
cG9ydCAiTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKLSNpbXBvcnQgIk5ldHdv
cmtQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW1w
b3J0ICJTYW5kYm94VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgpAQCAtNDks
NiArNDcsMTEgQEAKICNpbXBvcnQgPFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+
CiAjaW1wb3J0IDxzeXMvcGFyYW0uaD4KIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisj
aW1wb3J0ICJOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2ltcG9ydCAiTmV0
d29ya1Byb2Nlc3NQcm94eS5oIgorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0
ICJBcmd1bWVudENvZGVyc0NGLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXJJ
T1MuaCIKQEAgLTczLDggKzc2LDEwIEBAIHN0YXRpYyBOU1N0cmluZyAqV2ViS2l0QXBwbGljYXRp
b25EaWRDaGFuZ2VBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlTm90CiAvLyBGSVhN
RTogPHJkYXI6Ly9wcm9ibGVtLzkxMzg4MTc+IC0gQWZ0ZXIgdGhpcyAiYmFja3dhcmRzIGNvbXBh
dGliaWxpdHkiIHJhZGFyIGlzIHJlbW92ZWQsIHRoaXMgY29kZSBzaG91bGQgYmUgcmVtb3ZlZCB0
byBvbmx5IHJldHVybiBhbiBlbXB0eSBTdHJpbmcuCiBOU1N0cmluZyAqV2ViSWNvbkRhdGFiYXNl
RGlyZWN0b3J5RGVmYXVsdHNLZXkgPSBAIldlYkljb25EYXRhYmFzZURpcmVjdG9yeURlZmF1bHRz
S2V5IjsKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiBzdGF0aWMgTlNTdHJpbmcgKiBj
b25zdCBXZWJLaXQySFRUUFByb3h5RGVmYXVsdHNLZXkgPSBAIldlYktpdDJIVFRQUHJveHkiOwog
c3RhdGljIE5TU3RyaW5nICogY29uc3QgV2ViS2l0MkhUVFBTUHJveHlEZWZhdWx0c0tleSA9IEAi
V2ViS2l0MkhUVFBTUHJveHkiOworI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkK
IHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IFdlYktpdE5ldHdvcmtDYWNoZUVuYWJsZWREZWZhdWx0
c0tleSA9IEAiV2ViS2l0TmV0d29ya0NhY2hlRW5hYmxlZCI7CkBAIC0xMTQsOCArMTE5LDEwIEBA
IHN0YXRpYyB2b2lkIHJlZ2lzdGVyVXNlckRlZmF1bHRzSWZOZWVkZWQoKQogCiB2b2lkIFdlYlBy
b2Nlc3NQb29sOjp1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZSgpCiB7Ci0gICAgaWYgKG1f
bmV0d29ya1Byb2Nlc3MpCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICBpZiAodXNl
c05ldHdvcmtQcm9jZXNzKCkgJiYgbV9uZXR3b3JrUHJvY2VzcykKICAgICAgICAgbV9uZXR3b3Jr
UHJvY2Vzcy0+c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChwcm9jZXNzU3VwcHJlc3Npb25F
bmFibGVkKCkpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAg
ICBpZiAoIW1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRGb3JQYWdlQ291bnRlci52YWx1ZSgp
KQpAQCAtMTkwLDYgKzE5NywxNSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmCiAKICAgICBwYXJh
bWV0ZXJzLnVpUHJvY2Vzc0J1bmRsZUlkZW50aWZpZXIgPSBTdHJpbmcoW1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXSk7CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQorICAgIGlmICghdXNlc05ldHdvcmtQcm9jZXNzKCkpIHsKKyNlbmRpZgorICAgICAgICBmb3Ig
KGNvbnN0IGF1dG8mIHNjaGVtZSA6IGdsb2JhbFVSTFNjaGVtZXNXaXRoQ3VzdG9tUHJvdG9jb2xI
YW5kbGVycygpKQorICAgICAgICAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEZv
ckN1c3RvbVByb3RvY29scy5hcHBlbmQoc2NoZW1lKTsKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQorICAgIH0KKyNlbmRpZgorCiAgICAgcGFyYW1ldGVycy5mb250V2hpdGVsaXN0ID0gbV9m
b250V2hpdGVsaXN0OwogCiAgICAgaWYgKG1fYnVuZGxlUGFyYW1ldGVycykgewpAQCAtMjIwLDYg
KzIzNiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYKICNlbmRpZgogfQogCisjaWYgRU5BQkxF
KE5FVFdPUktfUFJPQ0VTUykKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQogewogICAgIE5TVVJMQ2FjaGUgKnVybENhY2hlID0gW05TVVJMQ2FjaGUgc2hhcmVkVVJM
Q2FjaGVdOwpAQCAtMjU0LDYgKzI3MSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3Jt
SW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhCiAgICAg
cGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllci5hcHBlbmQoQ0ZEYXRh
R2V0Qnl0ZVB0cihjb29raWVTdG9yYWdlRGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChjb29r
aWVTdG9yYWdlRGF0YS5nZXQoKSkpOwogI2VuZGlmCiB9CisjZW5kaWYKIAogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcAppbmRleCA0YWNi
NTQ0ZmU1YzJiZjczZjExMTI3ZGQ2MzJiYjlhZjk5ZTU2ZmYwLi5lNTA1ZDA0ZDkzZTU4YTM2NTdh
OWFiMjNhZWVmYzQ1NWQzODgxY2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAKQEAgLTMxLDEzICszMSwxNiBAQAogI2lu
Y2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCIKICNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1hcC5oIgotI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5LmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5LmgiCisj
ZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtNzEsOCArNzQsMTUgQEAgdm9pZCBEb3dubG9hZFByb3h5OjpjYW5jZWwoKQogICAgIGlmICgh
bV9wcm9jZXNzUG9vbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKE5ldHdvcmtQcm9jZXNz
UHJveHkqIG5ldHdvcmtQcm9jZXNzID0gbV9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3MoKSkK
LSAgICAgICAgbmV0d29ya1Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OkNhbmNlbERvd25sb2FkKG1fZG93bmxvYWRJRCksIDApOworI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCisgICAgaWYgKG1fcHJvY2Vzc1Bvb2wtPnVzZXNOZXR3b3JrUHJv
Y2VzcygpKSB7CisgICAgICAgIGlmIChOZXR3b3JrUHJvY2Vzc1Byb3h5KiBuZXR3b3JrUHJvY2Vz
cyA9IG1fcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNzKCkpCisgICAgICAgICAgICBuZXR3b3Jr
UHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q2Fu
Y2VsRG93bmxvYWQobV9kb3dubG9hZElEKSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisj
ZW5kaWYKKworICAgIG1fcHJvY2Vzc1Bvb2wtPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6
V2ViUHJvY2Vzczo6Q2FuY2VsRG93bmxvYWQobV9kb3dubG9hZElEKSk7CiB9CiAKIHZvaWQgRG93
bmxvYWRQcm94eTo6aW52YWxpZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwCmluZGV4IDJlNzk4NTE1MjFjNWMxNzA2
ZmM2OTU2NjU0ZjI1ZWU4MjJhODM0ZTUuLjc2ZWE3MWZhYjJkOGMwZTI1NWY3OTE0ZWJlNzgyZTI3
MjIwMjJjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Q
cm9jZXNzTGF1bmNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9Qcm9jZXNzTGF1bmNoZXIuY3BwCkBAIC04NCw4ICs4NCwxMCBAQCBjb25zdCBjaGFyKiBQcm9j
ZXNzTGF1bmNoZXI6OnByb2Nlc3NUeXBlQXNTdHJpbmcoUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUp
CiAgICAgY2FzZSBQbHVnaW5Qcm9jZXNzOgogICAgICAgICByZXR1cm4gInBsdWdpbnByb2Nlc3Mi
OwogI2VuZGlmCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBjYXNlIE5ldHdvcmtQ
cm9jZXNzOgogICAgICAgICByZXR1cm4gIm5ldHdvcmtwcm9jZXNzIjsKKyNlbmRpZgogI2lmIEVO
QUJMRShEQVRBQkFTRV9QUk9DRVNTKQogICAgIGNhc2UgRGF0YWJhc2VQcm9jZXNzOgogICAgICAg
ICByZXR1cm4gImRhdGFiYXNlcHJvY2VzcyI7CkBAIC0xMTAsMTAgKzExMiwxMiBAQCBib29sIFBy
b2Nlc3NMYXVuY2hlcjo6Z2V0UHJvY2Vzc1R5cGVGcm9tU3RyaW5nKGNvbnN0IGNoYXIqIHN0cmlu
ZywgUHJvY2Vzc1R5cGUmCiAgICAgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQogICAgIGlmICghc3RyY21wKHN0cmluZywgIm5ldHdvcmtwcm9jZXNzIikpIHsKICAgICAg
ICAgcHJvY2Vzc1R5cGUgPSBOZXR3b3JrUHJvY2VzczsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQorI2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKICAgICBpZiAoIXN0
cmNtcChzdHJpbmcsICJkYXRhYmFzZXByb2Nlc3MiKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IDIwMGRiYWU0ZmJl
MTIwNDk5YjllMWUzMTcxYTM5ZWZhZTI1MmMyMWUuLmZlN2RhOGU2YmEzNTFkMGVjZTQzMGQ3Nzk2
MjA0OWQzZjJhNTg3NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTUwLDcgKzUwLDkgQEAgcHVibGljOgogI2lmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICBQbHVnaW5Qcm9jZXNzLAogI2VuZGlm
CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICAgICAgTmV0d29ya1Byb2Nlc3MsCisj
ZW5kaWYKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKICAgICAgICAgRGF0YWJhc2VQcm9j
ZXNzLAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvZWZsL1Byb2Nlc3NMYXVuY2hlckVmbC5jcHAKaW5kZXggZTJhNjA5NjIxMmJkNzU3
MjQ4ZDZkNDhkMTYzNDg3NzlhYTVhMDZiYi4uNGM2MDFkMmVjMzI1ZjQ2ZjUwYzIwYWRmYTFlNjM2
OTU0OTZmOTQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L2VmbC9Qcm9jZXNzTGF1bmNoZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci9lZmwvUHJvY2Vzc0xhdW5jaGVyRWZsLmNwcApAQCAtMTE0LDkgKzExNCwxMSBA
QCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAgICAgICAgIHBsdWdpblBh
dGggPSBtX2xhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZ2V0KCJwbHVnaW4t
cGF0aCIpOwogICAgICAgICBicmVhazsKICNlbmRpZgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCiAgICAgY2FzZSBOZXR3b3JrUHJvY2VzczoKICAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBl
eGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKICAgICAgICAgYnJlYWs7CisjZW5kaWYK
ICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKICAgICBjYXNlIERhdGFiYXNlUHJvY2VzczoK
ICAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1By
b2Nlc3NMYXVuY2hlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
Z3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKaW5kZXggNDM1YjEzNzhmMDc2OGQxYzY2ZDMwZWZm
ZDU5YmYwOTRlYTZmOTkwYS4uOWQ0MTZhOGY3ZWIxZDMxOTM3YWZmNmUxNTExOWRiMjQzMDA3ZGYz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9j
ZXNzTGF1bmNoZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcApAQCAtNzYsOSArNzYsMTEgQEAgdm9pZCBQcm9j
ZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgICAgICByZWFsUGx1Z2luUGF0aCA9IGZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwbHVnaW5QYXRoKTsKICAgICAgICAgYnJlYWs7CiAjZW5k
aWYKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIGNhc2UgTmV0d29ya1Byb2Nlc3M6
CiAgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNz
KCk7CiAgICAgICAgIGJyZWFrOworI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1Mp
CiAgICAgY2FzZSBEYXRhYmFzZVByb2Nlc3M6CiAgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhl
Y3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRl
eCA2Y2M2MWIzYjE4NzAwNWEyNmU2MTY5Y2I2MzA0YTAxOTI1ODcyOTJkLi40NTM2ODQ4NmIyMWZl
MTRiZTIzYTU0ZWM3MWZkOGVkOWE0ZTcwMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAt
MTA1LDEyICsxMDUsMTQgQEAgc3RhdGljIFJldGFpblB0cjxOU1N0cmluZz4gY29tcHV0ZVByb2Nl
c3NTaGltUGF0aChjb25zdCBQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE8KICAgICB9CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgaWYgKGxhdW5jaE9wdGlvbnMucHJv
Y2Vzc1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpOZXR3b3JrUHJvY2VzcykgewogICAgICAgICBO
U1N0cmluZyAqcHJvY2Vzc1BhdGggPSBbd2ViS2l0QnVuZGxlIHBhdGhGb3JBdXhpbGlhcnlFeGVj
dXRhYmxlOkAiTmV0d29ya1Byb2Nlc3MuYXBwIl07CiAgICAgICAgIE5TU3RyaW5nICpwcm9jZXNz
QXBwRXhlY3V0YWJsZVBhdGggPSBbW05TQnVuZGxlIGJ1bmRsZVdpdGhQYXRoOnByb2Nlc3NQYXRo
XSBleGVjdXRhYmxlUGF0aF07CiAKICAgICAgICAgcmV0dXJuIFtbcHJvY2Vzc0FwcEV4ZWN1dGFi
bGVQYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlBcHBlbmRp
bmdQYXRoQ29tcG9uZW50OkAiU2VjSXRlbVNoaW0uZHlsaWIiXTsKICAgICB9CisjZW5kaWYKIAog
ICAgIGlmIChsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6V2Vi
UHJvY2VzcykgewogICAgICAgICBOU1N0cmluZyAqcHJvY2Vzc1BhdGggPSBbd2ViS2l0QnVuZGxl
IHBhdGhGb3JBdXhpbGlhcnlFeGVjdXRhYmxlOkAiV2ViUHJvY2Vzcy5hcHAiXTsKQEAgLTE2NSwx
MCArMTY3LDEyIEBAIHN0YXRpYyBjb25zdCBjaGFyKiBzZXJ2aWNlTmFtZShjb25zdCBQcm9jZXNz
TGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvCiAgICAgICAgIGlmIChmb3JEZXZl
bG9wbWVudCkKICAgICAgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LkRldmVsb3BtZW50IjsKICAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRl
bnQiOworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgY2FzZSBQcm9jZXNzTGF1bmNo
ZXI6Ok5ldHdvcmtQcm9jZXNzOgogICAgICAgICBpZiAoZm9yRGV2ZWxvcG1lbnQpCiAgICAgICAg
ICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5EZXZlbG9wbWVudCI7CiAg
ICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nIjsKKyNlbmRpZgogI2lm
IEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpEYXRh
YmFzZVByb2Nlc3M6CiAgICAgICAgIGlmIChmb3JEZXZlbG9wbWVudCkKQEAgLTIwMiw5ICsyMDYs
MTIgQEAgc3RhdGljIGJvb2wgc2hvdWxkTGVha0Jvb3N0KGNvbnN0IFByb2Nlc3NMYXVuY2hlcjo6
TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykKICAgICAvLyBPbiBpT1MsIGxlYWsgYSBib29z
dCBvbnRvIGFsbCBjaGlsZCBwcm9jZXNzZXMKICAgICBVTlVTRURfUEFSQU0obGF1bmNoT3B0aW9u
cyk7CiAgICAgcmV0dXJuIHRydWU7Ci0jZWxzZQorI2VsaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKICAgICAvLyBPbiBNYWMsIGxlYWsgYSBib29zdCBvbnRvIHRoZSBOZXR3b3JrUHJvY2Vzcy4K
ICAgICByZXR1cm4gbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6
Ok5ldHdvcmtQcm9jZXNzOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF1bmNoT3B0aW9ucyk7
CisgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CiAgICAgCkBAIC00NzYsOSArNDgzLDExIEBA
IHN0YXRpYyB2b2lkIGNyZWF0ZVByb2Nlc3MoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hP
cHRpb25zJiBsYXVuY2hPcHRpb25zLCBiCiAgICAgICAgIHByb2Nlc3NQYXRoID0gW3dlYktpdEJ1
bmRsZSBwYXRoRm9yQXV4aWxpYXJ5RXhlY3V0YWJsZTpAIlBsdWdpblByb2Nlc3MuYXBwIl07CiAg
ICAgICAgIGJyZWFrOwogI2VuZGlmCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBj
YXNlIFByb2Nlc3NMYXVuY2hlcjo6TmV0d29ya1Byb2Nlc3M6CiAgICAgICAgIHByb2Nlc3NQYXRo
ID0gW3dlYktpdEJ1bmRsZSBwYXRoRm9yQXV4aWxpYXJ5RXhlY3V0YWJsZTpAIk5ldHdvcmtQcm9j
ZXNzLmFwcCJdOwogICAgICAgICBicmVhazsKKyNlbmRpZgogI2lmIEVOQUJMRShEQVRBQkFTRV9Q
Uk9DRVNTKQogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpEYXRhYmFzZVByb2Nlc3M6CiAgICAg
ICAgIHByb2Nlc3NQYXRoID0gW3dlYktpdEJ1bmRsZSBwYXRoRm9yQXV4aWxpYXJ5RXhlY3V0YWJs
ZTpAIkRhdGFiYXNlUHJvY2Vzcy5hcHAiXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMWFlZDVhMWEx
Njg3ZjkwNTM5YjRlNzM4ODUyNTg2YWNhYmE5NzQzYy4uOTY5ODY3ZTFmYTc0YjExZWFkZWEyMzNl
NmFlNmY2Yzc1MDkwZDM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5LmgiCiAKKyNp
ZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eS5oIgogI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKQEAgLTM3NSwzICszNzcs
NSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJv
b2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBiYmRkN2Zi
ZDJmYTM1ODliYTMyMDA2OWRhZTUxNTUyMGQ3YzY0OGRmLi4zNjRmYzJmNTg4ZGJlNDhjYWI5YTc1
ODExZDNlOWYzMDMzMDA3NmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0yNiw2ICsyNiw4IEBACiAjaWZu
ZGVmIE5ldHdvcmtQcm9jZXNzUHJveHlfaAogI2RlZmluZSBOZXR3b3JrUHJvY2Vzc1Byb3h5X2gK
IAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKICNpbmNsdWRlICJDaGlsZFByb2Nlc3NQ
cm94eS5oIgogI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmgiCiAjaW5jbHVk
ZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCkBAIC0xMzAsNCArMTMyLDYgQEAgcHJpdmF0ZToKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQor
CiAjZW5kaWYgLy8gTmV0d29ya1Byb2Nlc3NQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbgppbmRleCBkYzkzYjg0ODEwMmFhZTIwNzI5MDNmNjRhYjlhNDkyZDkyM2NhYzI4Li5h
ZDNkZTM1NDgxNTA4Y2NjMjNkMWUyYmMwMmVkNWMwYzhjM2JhNzc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIwLDYgKzIwLDggQEAKICMgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIERpZENyZWF0
ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9u
SWRlbnRpZmllcikKIApAQCAtMzcsMyArMzksNSBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vz
c1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBMb2dTYW1wbGVkRGlhZ25vc3RpY01lc3NhZ2VX
aXRoUmVzdWx0KHVpbnQ2NF90IHBhZ2VJRCwgU3RyaW5nIG1lc3NhZ2UsIFN0cmluZyBkZXNjcmlw
dGlvbiwgdWludDMyX3QgcmVzdWx0KQogICAgIExvZ1NhbXBsZWREaWFnbm9zdGljTWVzc2FnZVdp
dGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIFN0cmluZyBtZXNzYWdlLCBTdHJpbmcgZGVzY3JpcHRp
b24sIFN0cmluZyB2YWx1ZSkKIH0KKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9tYWMvTmV0d29y
a1Byb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL21h
Yy9OZXR3b3JrUHJvY2Vzc1Byb3h5TWFjLm1tCmluZGV4IDE5ZjcyMjVjMDE2Mjk3MDczZGFiODQ5
MjBhYmNiMjBlMDI0OWNiYjYuLmIwZGYxYjgwODI3YjQ4ZTQ3ZTEzZmVlOTI3ZWFmYWM3NjE5ZDUx
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL21hYy9OZXR3
b3JrUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL21hYy9OZXR3b3JrUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC0yOCw2ICsyOCw4IEBACiAKICNp
bXBvcnQgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKIAorI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
QEAgLTU3LDMgKzU5LDUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExh
dW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb24KIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvc291cC9OZXR3b3JrUHJvY2Vz
c1Byb3h5U291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9zb3VwL05l
dHdvcmtQcm9jZXNzUHJveHlTb3VwLmNwcAppbmRleCA4NTljYjc1NzczZDYyOWExYTQyMGRjYjJj
MTU3ODU5ZjEyMzk4ZTk0Li4xYmRmMGVkN2MyOGVkOWU2YWY0ZGVkOGUxZDkzMjEwYjdmOWRjMTU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9zb3VwL05ldHdv
cmtQcm9jZXNzUHJveHlTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0
d29yay9zb3VwL05ldHdvcmtQcm9jZXNzUHJveHlTb3VwLmNwcApAQCAtMjQsOCArMjQsOSBAQAog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5
LmgiCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKIAorI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzUHJveHkuaCIKICNpbmNsdWRlIDxnbGliLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NDIsMyArNDMsNSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnBsYXRmb3JtR2V0TGF1bmNo
T3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbgogfQogCiB9CisKKyNlbmRpZiAv
LyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Byb2Nlc3NNb2RlbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NN
b2RlbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZjMThkYTBhMjBhMDlhMjdjYmYwMTk1NDBkZDkxYmIwZTk1NGRh
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc01v
ZGVsLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUHJvY2Vzc01vZGVs
X2gKKyNkZWZpbmUgUHJvY2Vzc01vZGVsX2gKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0g
UHJvY2Vzc01vZGVsIHsKKyAgICBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzLAor
ICAgIFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzCit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFByb2Nlc3NNb2RlbF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDExNGYx
YWExOTkwOTE2NjNiYWIyOTE2M2JjOTRlYzU1MmQ0YjBmZjguLjEyMDEyZmRmYmNhZjI3YmVjMjRi
NzNmMzFhM2E5ZWJiMzcxNGJlNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb29raWVNYW5hZ2VyUHJveHkuY3BwCkBAIC04NSw4ICs4NSw4IEBAIHZvaWQgV2ViQ29v
a2llTWFuYWdlclByb3h5Ojpwcm9jZXNzRGlkQ2xvc2UoTmV0d29ya1Byb2Nlc3NQcm94eSopCiAK
IGJvb2wgV2ViQ29va2llTWFuYWdlclByb3h5OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1By
b3h5KikgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMuCi0gICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIHByb2Nlc3NQb29sKCktPnByb2Nlc3NNb2RlbCgpICE9IFByb2Nlc3NN
b2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3MKKyAgICAgICAgfHwgKG1fYXJyYXlDYWxsYmFja3Mu
aXNFbXB0eSgpICYmIG1faHR0cENvb2tpZUFjY2VwdFBvbGljeUNhbGxiYWNrcy5pc0VtcHR5KCkp
OwogfQogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6cmVmV2ViQ29udGV4dFN1cHBsZW1l
bnQoKQpAQCAtMTYzLDcgKzE2MywxMCBAQCB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6c2V0
SFRUUENvb2tpZUFjY2VwdFBvbGljeShIVFRQQ29va2llQWNjZXB0UG9saWN5IHBvbAogICAgIC8v
IC0gV2hlbiB0ZXN0aW5nLCB3ZSBvbmx5IGhhdmUgb25lIFdlYlByb2Nlc3MgYW5kIG9uZSBOZXR3
b3JrUHJvY2VzcywgYW5kIFdlYktpdFRlc3RSdW5uZXIgbmV2ZXIgcmVzdGFydHMgdGhlbTsKICAg
ICAvLyAtIFdoZW4gbm90IHRlc3RpbmcsIENvY29hIGhhcyB0aGUgcG9saWN5IHBlcnNpc3RlZCwg
YW5kIHRodXMgbmV3IHByb2Nlc3NlcyB1c2UgaXQgKGV2ZW4gZm9yIGVwaGVtZXJhbCBzZXNzaW9u
cykuCiAgICAgcHJvY2Vzc1Bvb2woKS0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJD
b29raWVNYW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSkpOwotICAgIHBy
b2Nlc3NQb29sKCktPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpXZWJDb29raWVN
YW5hZ2VyOjpTZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KHBvbGljeSkpOworI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCisgICAgaWYgKHByb2Nlc3NQb29sKCktPnVzZXNOZXR3b3JrUHJvY2Vz
cygpKQorICAgICAgICBwcm9jZXNzUG9vbCgpLT5zZW5kVG9OZXR3b3JraW5nUHJvY2VzcyhNZXNz
YWdlczo6V2ViQ29va2llTWFuYWdlcjo6U2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeShwb2xpY3kp
KTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYkNvb2tpZU1hbmFnZXJQcm94eTo6Z2V0SFRUUENvb2tp
ZUFjY2VwdFBvbGljeShzdGQ6OmZ1bmN0aW9uPHZvaWQgKEhUVFBDb29raWVBY2NlcHRQb2xpY3ks
IENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKaW5kZXggMjgxZGFmYWI1YTI2NThj
ZGExZjY0ZjhiZjlkM2E0MjAxMmQ3M2U2ZC4uNjVhYWE1MTAxMTYyZTUyMTVjMjIyMzAyYTM4MzE2
Mjc1Mzk3ZGFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3Bl
Y3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9y
UHJveHkuY3BwCkBAIC0zMTIsNiArMzEyLDcgQEAgV2ViUHJvY2Vzc1Bvb2wmIFdlYkluc3BlY3Rv
clByb3h5OjppbnNwZWN0b3JQcm9jZXNzUG9vbCgpCiAgICAgLy8gZ3VhcmFudGVlcyBubyBwcm9j
ZXNzIHNoYXJpbmcgZm9yIG91ciB1c2VyIGludGVyZmFjZS4KICAgICBpZiAoIXNfcHJvY2Vzc1Bv
b2wpIHsKICAgICAgICAgYXV0byBjb25maWd1cmF0aW9uID0gQVBJOjpQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb246OmNyZWF0ZVdpdGhMZWdhY3lPcHRpb25zKCk7CisgICAgICAgIGNvbmZpZ3VyYXRp
b24tPnNldFByb2Nlc3NNb2RlbChQcm9jZXNzTW9kZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3Nl
cyk7CiAgICAgICAgIHNfcHJvY2Vzc1Bvb2wgPSAmV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZShjb25m
aWd1cmF0aW9uLmdldCgpKS5sZWFrUmVmKCk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkZTBjNDJiMmMwZTQ3OWRjMjc2M2FmZmE1NGMz
ZWUzNmNkYTU2MGE4Li40NTMxNjM5NzU4ZTcyNjhlOGFjNDAyYmJlMmM1NmRmY2E4ZWNjYTE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjAsNyArNjAs
NiBAQAogI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJOYXRpdmVX
ZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIKLSNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuaCIKICNpbmNsdWRlICJQYWdlQ2xpZW50LmgiCkBAIC0xMzksNiArMTM4LDEwIEBA
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMu
aCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZVNjcm9sbGlu
Z1BlcmZvcm1hbmNlRGF0YS5oIgpAQCAtNDg0LDggKzQ4NywxMCBAQCBXZWJQYWdlUHJveHk6Oldl
YlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nl
c3MsIHVpbgogCiAgICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCwgKnRoaXMpOwogCisj
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAobV9zZXNzaW9uSUQuaXNFcGhlbWVy
YWwoKSkKICAgICAgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnNlbmRUb05ldHdvcmtpbmdQ
cm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vz
c2lvbihtX3Nlc3Npb25JRCkpOworI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBj
b25zdCBDRkluZGV4IHZpZXdTdGF0ZUNoYW5nZVJ1bkxvb3BPcmRlciA9IChDRkluZGV4KVJ1bkxv
b3BPYnNlcnZlcjo6V2VsbEtub3duUnVuTG9vcE9yZGVyczo6Q29yZUFuaW1hdGlvbkNvbW1pdCAt
IDE7CkBAIC02OTEsNyArNjk2LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2VzcygpCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVXZWJQYWdlKG1fcGFnZUlEKTsKICAgICBt
X3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZUlEKTsKIAotICAgIG1fcHJvY2VzcyA9IG1fcHJv
Y2Vzcy0+cHJvY2Vzc1Bvb2woKS5jcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3ND
b3VudExpbWl0KCk7CisgICAgaWYgKG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5wcm9jZXNzTW9k
ZWwoKSA9PSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQcm9jZXNzKQorICAgICAgICBtX3By
b2Nlc3MgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuZW5zdXJlU2hhcmVkV2ViUHJvY2Vzcygp
OworICAgIGVsc2UKKyAgICAgICAgbV9wcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgp
LmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoKTsKIAogICAg
IEFTU0VSVChtX3Byb2Nlc3MtPnN0YXRlKCkgIT0gQ2hpbGRQcm9jZXNzUHJveHk6OlN0YXRlOjpU
ZXJtaW5hdGVkKTsKICAgICBpZiAobV9wcm9jZXNzLT5zdGF0ZSgpID09IENoaWxkUHJvY2Vzc1By
b3h5OjpTdGF0ZTo6UnVubmluZykKQEAgLTc2Niw4ICs3NzQsMTAgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldFNlc3Npb25JRChTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIG1fc2Vzc2lvbklEID0g
c2Vzc2lvbklEOwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0U2Vz
c2lvbklEKHNlc3Npb25JRCksIG1fcGFnZUlEKTsKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCiAgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQogICAgICAgICBtX3Byb2Nlc3Mt
PnByb2Nlc3NQb29sKCkuc2VuZFRvTmV0d29ya2luZ1Byb2Nlc3MoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKHNlc3Npb25JRCkpOworI2VuZGlm
CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojppbml0aWFsaXplV2ViUGFnZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA0Y2UyMGJmMDNhNWVjZGZk
NzNhZGY4MDc5YTcyNzJiZTNhNjRkMmE4Li45NmJmNDI5OWUzNjM5YmQ5OWYzOTg3ZThhMjE4MTlj
OWI4ZjcyNGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKQEAgLTM1LDkgKzM1LDYgQEAKICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVk
ZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAiTmV0d29y
a1Byb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKICNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIK
ICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgpAQCAtODEsNiArNzgsMTEgQEAKICNpbmNsdWRlICJE
YXRhYmFzZVByb2Nlc3NNZXNzYWdlcy5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzUHJveHkuaCIKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAjaW5j
bHVkZSAiU2VydmljZXNDb250cm9sbGVyLmgiCkBAIC0xMDMsNiArMTA1LDggQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0YXRpYyBjb25zdCBkb3Vi
bGUgc2hhcmVkU2Vjb25kYXJ5UHJvY2Vzc1NodXRkb3duVGltZW91dCA9IDYwOworCiBERUZJTkVf
REVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkTGVha0NvdW50ZXIsIHByb2Nlc3NQb29s
Q291bnRlciwgKCJXZWJQcm9jZXNzUG9vbCIpKTsKIAogUmVmPFdlYlByb2Nlc3NQb29sPiBXZWJQ
cm9jZXNzUG9vbDo6Y3JlYXRlKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1
cmF0aW9uKQpAQCAtMTU1LDggKzE1OSwxMCBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bv
b2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAjZW5kaWYK
ICAgICAsIG1fc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKGZhbHNlKQogICAgICwgbV9w
cm9jZXNzVGVybWluYXRpb25FbmFibGVkKHRydWUpCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKICAgICAsIG1fY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24odHJ1ZSkKICAg
ICAsIG1fZGlkTmV0d29ya1Byb2Nlc3NDcmFzaChmYWxzZSkKKyNlbmRpZgogI2lmIFVTRShTT1VQ
KQogICAgICwgbV9pZ25vcmVUTFNFcnJvcnModHJ1ZSkKICNlbmRpZgpAQCAtMjQ4LDggKzI1NCwx
MCBAQCBXZWJQcm9jZXNzUG9vbDo6fldlYlByb2Nlc3NQb29sKCkKICAgICBwcm9jZXNzUG9vbENv
dW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNo
dXREb3duUHJvY2VzcygpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmluaXRp
YWxpemVDbGllbnQoY29uc3QgV0tDb250ZXh0Q2xpZW50QmFzZSogY2xpZW50KQpAQCAtMjgzLDYg
KzI5MSwxNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXREb3dubG9hZENsaWVudChzdGQ6OnVu
aXF1ZV9wdHI8QVBJOjpEb3dubG9hZENsaWVudD4gZG93bgogICAgICAgICBtX2Rvd25sb2FkQ2xp
ZW50ID0gV1RGOjptb3ZlKGRvd25sb2FkQ2xpZW50KTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2V0UHJvY2Vzc01vZGVsKFByb2Nlc3NNb2RlbCBwcm9jZXNzTW9kZWwpCit7CisgICAgLy8g
R3VhcmQgYWdhaW5zdCBBUEkgbWlzdXNlLgorICAgIGlmICghbV9wcm9jZXNzZXMuaXNFbXB0eSgp
KQorICAgICAgICBDUkFTSCgpOworICAgIGlmIChwcm9jZXNzTW9kZWwgIT0gUHJvY2Vzc01vZGVs
U2hhcmVkU2Vjb25kYXJ5UHJvY2VzcyAmJiAhbV9tZXNzYWdlc1RvSW5qZWN0ZWRCdW5kbGVQb3N0
ZWRUb0VtcHR5Q29udGV4dC5pc0VtcHR5KCkpCisgICAgICAgIENSQVNIKCk7CisKKyAgICBtX2Nv
bmZpZ3VyYXRpb24tPnNldFByb2Nlc3NNb2RlbChwcm9jZXNzTW9kZWwpOworfQorCiB2b2lkIFdl
YlByb2Nlc3NQb29sOjpzZXRNYXhpbXVtTnVtYmVyT2ZQcm9jZXNzZXModW5zaWduZWQgbWF4aW11
bU51bWJlck9mUHJvY2Vzc2VzKQogewogICAgIC8vIEd1YXJkIGFnYWluc3QgQVBJIG1pc3VzZS4K
QEAgLTI5NCw3ICszMTMsMjMgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0TWF4aW11bU51bWJl
ck9mUHJvY2Vzc2VzKHVuc2lnbmVkIG1heGltdW1OdW1iZXJPZlByb2Nlc3MKIAogSVBDOjpDb25u
ZWN0aW9uKiBXZWJQcm9jZXNzUG9vbDo6bmV0d29ya2luZ1Byb2Nlc3NDb25uZWN0aW9uKCkKIHsK
LSAgICByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy0+Y29ubmVjdGlvbigpOworICAgIHN3aXRjaCAo
cHJvY2Vzc01vZGVsKCkpIHsKKyAgICBjYXNlIFByb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVBy
b2Nlc3M6CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICAgICAgaWYgKHVzZXNOZXR3
b3JrUHJvY2VzcygpKQorICAgICAgICAgICAgcmV0dXJuIG1fbmV0d29ya1Byb2Nlc3MtPmNvbm5l
Y3Rpb24oKTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gbV9wcm9jZXNzZXNbMF0tPmNvbm5lY3Rp
b24oKTsKKyAgICBjYXNlIFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzOgor
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgICAgIEFTU0VSVCh1c2VzTmV0d29ya1By
b2Nlc3MoKSk7CisgICAgICAgIHJldHVybiBtX25ldHdvcmtQcm9jZXNzLT5jb25uZWN0aW9uKCk7
CisjZWxzZQorICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIH0KKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6bGFuZ3Vh
Z2VDaGFuZ2VkKHZvaWQqIGNvbnRleHQpCkBAIC0zMDUsOCArMzQwLDggQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6bGFuZ3VhZ2VDaGFuZ2VkKHZvaWQqIGNvbnRleHQpCiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpsYW5ndWFnZUNoYW5nZWQoKQogewogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdl
czo6V2ViUHJvY2Vzczo6VXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQodXNlclByZWZlcnJl
ZExhbmd1YWdlcygpKSk7Ci0jaWYgVVNFKFNPVVApCi0gICAgaWYgKG1fbmV0d29ya1Byb2Nlc3Mp
CisjaWYgVVNFKFNPVVApICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgaWYgKHVzZXNO
ZXR3b3JrUHJvY2VzcygpICYmIG1fbmV0d29ya1Byb2Nlc3MpCiAgICAgICAgIG1fbmV0d29ya1By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpVc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzQ2hhbmdlZCh1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkpLCAwKTsKICNlbmRpZgogfQpAQCAt
MzIxLDYgKzM1NiwyNSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXh0Q2hlY2tlclN0YXRlQ2hh
bmdlZCgpCiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRU
ZXh0Q2hlY2tlclN0YXRlKFRleHRDaGVja2VyOjpzdGF0ZSgpKSk7CiB9CiAKK3ZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnNldFVzZXNOZXR3b3JrUHJvY2Vzcyhib29sIHVzZXNOZXR3b3JrUHJvY2VzcykK
K3sKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIG1fY29uZmlndXJhdGlvbi0+c2V0
VXNlTmV0d29ya1Byb2Nlc3ModXNlc05ldHdvcmtQcm9jZXNzKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHVzZXNOZXR3b3JrUHJvY2Vzcyk7CisjZW5kaWYKK30KKworYm9vbCBXZWJQcm9jZXNz
UG9vbDo6dXNlc05ldHdvcmtQcm9jZXNzKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQorICAgIHJldHVybiBtX2NvbmZpZ3VyYXRpb24tPnVzZU5ldHdvcmtQcm9jZXNzKCk7
CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisjaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKIE5ldHdvcmtQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjplbnN1cmVO
ZXR3b3JrUHJvY2VzcygpCiB7CiAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCkBAIC00MDUsNiAr
NDU5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlByb2Nlc3MKIAogICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihyZXBseSk7CiB9CisjZW5kaWYKIAogI2lmIEVO
QUJMRShEQVRBQkFTRV9QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlRGF0YWJh
c2VQcm9jZXNzKCkKQEAgLTQ3MiwxMiArNTI3LDE0IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNl
dEFueVBhZ2VHcm91cE1pZ2h0SGF2ZVByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCBwcml2YXRl
CiB7CiAgICAgbV9pY29uRGF0YWJhc2UtPnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQocHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCk7CiAKLSAgICBpZiAobmV0d29ya1Byb2Nlc3MoKSkgeworI2lmIEVO
QUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG5l
dHdvcmtQcm9jZXNzKCkpIHsKICAgICAgICAgaWYgKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCiAg
ICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6RW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVT
ZXNzaW9uSUQoKSksIDApOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vz
cygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGVzdHJveVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oU2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkpLCAwKTsKICAgICB9
CisjZW5kaWYgLy8gRU5BQkxFRChORVRXT1JLX1BST0NFU1MpCiAKICAgICBpZiAocHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZCkKICAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzOjpFbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFNlc3Npb25JRDo6bGVnYWN5UHJp
dmF0ZVNlc3Npb25JRCgpKSk7CkBAIC01MTIsOSArNTY5LDIwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnByb2Nlc3NEaWRDYWNoZVBhZ2UoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKQogICAgIG1f
cHJvY2Vzc1dpdGhQYWdlQ2FjaGUgPSBwcm9jZXNzOwogfQogCitXZWJQcm9jZXNzUHJveHkmIFdl
YlByb2Nlc3NQb29sOjplbnN1cmVTaGFyZWRXZWJQcm9jZXNzKCkKK3sKKyAgICBBU1NFUlQocHJv
Y2Vzc01vZGVsKCkgPT0gUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2Vzcyk7CisgICAg
aWYgKG1fcHJvY2Vzc2VzLmlzRW1wdHkoKSkKKyAgICAgICAgY3JlYXRlTmV3V2ViUHJvY2Vzcygp
OworICAgIHJldHVybiAqbV9wcm9jZXNzZXNbMF07Cit9CisKIFdlYlByb2Nlc3NQcm94eSYgV2Vi
UHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQogewotICAgIGVuc3VyZU5ldHdvcmtQ
cm9jZXNzKCk7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICBpZiAodXNlc05ldHdv
cmtQcm9jZXNzKCkpCisgICAgICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7CisjZW5kaWYKIAog
ICAgIFJlZjxXZWJQcm9jZXNzUHJveHk+IHByb2Nlc3MgPSBXZWJQcm9jZXNzUHJveHk6OmNyZWF0
ZSgqdGhpcyk7CiAKQEAgLTU3OCw3ICs2NDYsNyBAQCBXZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nl
c3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKCkKICAgICAvLyBpY29uRGF0YWJhc2VQYXRoIGlz
IG5vbi1lbXB0eSBieSBkZWZhdWx0LCBidXQgbV9pY29uRGF0YWJhc2UgaXNuJ3QgZW5hYmxlZCBp
biBVSSBwcm9jZXNzIHVubGVzcyBzZXREYXRhYmFzZVBhdGggaXMgY2FsbGVkIGV4cGxpY2l0bHku
CiAgICAgcGFyYW1ldGVycy5pY29uRGF0YWJhc2VFbmFibGVkID0gIWljb25EYXRhYmFzZVBhdGgo
KS5pc0VtcHR5KCk7CiAKLSAgICBwYXJhbWV0ZXJzLnRlcm1pbmF0aW9uVGltZW91dCA9IDA7Cisg
ICAgcGFyYW1ldGVycy50ZXJtaW5hdGlvblRpbWVvdXQgPSAocHJvY2Vzc01vZGVsKCkgPT0gUHJv
Y2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzcykgPyBzaGFyZWRTZWNvbmRhcnlQcm9jZXNz
U2h1dGRvd25UaW1lb3V0IDogMDsKIAogICAgIHBhcmFtZXRlcnMudGV4dENoZWNrZXJTdGF0ZSA9
IFRleHRDaGVja2VyOjpzdGF0ZSgpOwogCkBAIC01OTEsNiArNjU5LDEwIEBAIFdlYlByb2Nlc3NQ
cm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQogICAgIHN1cHBsZW1l
bnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PigpLT5wb3B1bGF0ZUNvcHlPZk5vdGlmaWNh
dGlvblBlcm1pc3Npb25zKHBhcmFtZXRlcnMubm90aWZpY2F0aW9uUGVybWlzc2lvbnMpOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIHBhcmFtZXRlcnMudXNlc05l
dHdvcmtQcm9jZXNzID0gdXNlc05ldHdvcmtQcm9jZXNzKCk7CisjZW5kaWYKKwogICAgIHBhcmFt
ZXRlcnMucGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzID0gbV9wbHVnSW5BdXRvU3RhcnRQcm92
aWRlci5hdXRvU3RhcnRPcmlnaW5IYXNoZXNDb3B5KCk7CiAgICAgY29weVRvVmVjdG9yKG1fcGx1
Z0luQXV0b1N0YXJ0UHJvdmlkZXIuYXV0b1N0YXJ0T3JpZ2lucygpLCBwYXJhbWV0ZXJzLnBsdWdJ
bkF1dG9TdGFydE9yaWdpbnMpOwogCkBAIC02MzQsNyArNzA2LDE1IEBAIFdlYlByb2Nlc3NQcm94
eSYgV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQogCiAgICAgbV9wcm9jZXNz
ZXMuYXBwZW5kKHByb2Nlc3MucHRyKCkpOwogCi0gICAgQVNTRVJUKG1fbWVzc2FnZXNUb0luamVj
dGVkQnVuZGxlUG9zdGVkVG9FbXB0eUNvbnRleHQuaXNFbXB0eSgpKTsKKyAgICBpZiAocHJvY2Vz
c01vZGVsKCkgPT0gUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzcykgeworICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSAhPSBtX21lc3NhZ2VzVG9JbmplY3RlZEJ1bmRsZVBvc3Rl
ZFRvRW1wdHlDb250ZXh0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBhdXRvJiBtZXNzYWdl
TmFtZUFuZEJvZHkgPSBtX21lc3NhZ2VzVG9JbmplY3RlZEJ1bmRsZVBvc3RlZFRvRW1wdHlDb250
ZXh0W2ldOworCisgICAgICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpIYW5kbGVJbmplY3RlZEJ1bmRsZU1lc3NhZ2UobWVzc2FnZU5hbWVBbmRCb2R5LmZpcnN0LCBV
c2VyRGF0YShwcm9jZXNzLT50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKG1lc3NhZ2VOYW1lQW5k
Qm9keS5zZWNvbmQuZ2V0KCkpLmdldCgpKSksIDApOworICAgICAgICB9CisgICAgICAgIG1fbWVz
c2FnZXNUb0luamVjdGVkQnVuZGxlUG9zdGVkVG9FbXB0eUNvbnRleHQuY2xlYXIoKTsKKyAgICB9
IGVsc2UKKyAgICAgICAgQVNTRVJUKG1fbWVzc2FnZXNUb0luamVjdGVkQnVuZGxlUG9zdGVkVG9F
bXB0eUNvbnRleHQuaXNFbXB0eSgpKTsKIAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQog
ICAgIC8vIEluaXRpYWxpemUgcmVtb3RlIGluc3BlY3RvciBjb25uZWN0aW9uIG5vdyB0aGF0IHdl
IGhhdmUgYSBzdWItcHJvY2VzcyB0aGF0IGlzIGhvc3Rpbmcgb25lIG9mIG91ciB3ZWIgdmlld3Mu
CkBAIC03MTgsMTIgKzc5OCwyOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaXNjb25uZWN0UHJv
Y2VzcyhXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAKICAgICAvLyBGSVhNRSAoTXVsdGktV2Vi
UHJvY2Vzcyk6IDxyZGFyOi8vcHJvYmxlbS8xMjIzOTc2NT4gU29tZSBvZiB0aGUgaW52YWxpZGF0
aW9uIGNhbGxzIGJlbG93IGFyZSBzdGlsbCBuZWNlc3NhcnkgaW4gbXVsdGktcHJvY2VzcyBtb2Rl
LCBidXQgdGhleSBzaG91bGQgb25seSBhZmZlY3QgZGF0YSBzdHJ1Y3R1cmVzIHBlcnRhaW5pbmcg
dG8gdGhlIHByb2Nlc3MgYmVpbmcgZGlzY29ubmVjdGVkLgogICAgIC8vIENsZWFyaW5nIGV2ZXJ5
dGhpbmcgY2F1c2VzIGFzc2VydGlvbiBmYWlsdXJlcywgc28gaXQncyBsZXNzIHRyb3VibGUgdG8g
c2tpcCB0aGF0IGZvciBub3cuCi0gICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcHJvdGVjdChw
cm9jZXNzKTsKLSAgICBpZiAobV9wcm9jZXNzV2l0aFBhZ2VDYWNoZSA9PSBwcm9jZXNzKQotICAg
ICAgICBtX3Byb2Nlc3NXaXRoUGFnZUNhY2hlID0gMDsKKyAgICBpZiAocHJvY2Vzc01vZGVsKCkg
IT0gUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzcykgeworICAgICAgICBSZWZQdHI8
V2ViUHJvY2Vzc1Byb3h5PiBwcm90ZWN0KHByb2Nlc3MpOworICAgICAgICBpZiAobV9wcm9jZXNz
V2l0aFBhZ2VDYWNoZSA9PSBwcm9jZXNzKQorICAgICAgICAgICAgbV9wcm9jZXNzV2l0aFBhZ2VD
YWNoZSA9IDA7CisKKyAgICAgICAgc3RhdGljX2Nhc3Q8V2ViQ29udGV4dFN1cHBsZW1lbnQqPihz
dXBwbGVtZW50PFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpKS0+cHJvY2Vzc0RpZENsb3Nl
KHByb2Nlc3MpOworCisgICAgICAgIG1fcHJvY2Vzc2VzLnJlbW92ZUZpcnN0KHByb2Nlc3MpOwor
ICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgc3RhdGljX2Nhc3Q8V2ViQ29udGV4dFN1cHBs
ZW1lbnQqPihzdXBwbGVtZW50PFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5PigpKS0+cHJvY2Vz
c0RpZENsb3NlKHByb2Nlc3MpOworICAgIFdlYkNvbnRleHRTdXBwbGVtZW50TWFwOjpjb25zdF9p
dGVyYXRvciBpdCA9IG1fc3VwcGxlbWVudHMuYmVnaW4oKTsKKyAgICBXZWJDb250ZXh0U3VwcGxl
bWVudE1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9zdXBwbGVtZW50cy5lbmQoKTsKKyAgICBm
b3IgKDsgaXQgIT0gZW5kOyArK2l0KQorICAgICAgICBpdC0+dmFsdWUtPnByb2Nlc3NEaWRDbG9z
ZShwcm9jZXNzKTsKIAorICAgIC8vIFRoZSB2ZWN0b3IgbWF5IGhhdmUgdGhlIGxhc3QgcmVmZXJl
bmNlIHRvIHByb2Nlc3MgcHJveHksIHdoaWNoIGluIHR1cm4gbWF5IGhhdmUgdGhlIGxhc3QgcmVm
ZXJlbmNlIHRvIHRoZSBjb250ZXh0LgorICAgIC8vIFNpbmNlIHZlY3RvciBlbGVtZW50cyBhcmUg
ZGVzdHJveWVkIGluIHBsYWNlLCB3ZSB3b3VsZCByZWN1cnNlIGludG8gV2ViUHJvY2Vzc1Byb3h5
IGRlc3RydWN0b3IKKyAgICAvLyBpZiBpdCB3ZXJlIGludm9rZWQgZnJvbSBWZWN0b3I6OnJlbW92
ZSgpLiBSZWZQdHIgZGVsYXlzIGRlc3RydWN0aW9uIHVudGlsIGl0J3Mgc2FmZS4KKyAgICBSZWZQ
dHI8V2ViUHJvY2Vzc1Byb3h5PiBwcm90ZWN0KHByb2Nlc3MpOworICAgIGlmIChtX3Byb2Nlc3NX
aXRoUGFnZUNhY2hlID09IHByb2Nlc3MpCisgICAgICAgIG1fcHJvY2Vzc1dpdGhQYWdlQ2FjaGUg
PSBudWxscHRyOwogICAgIG1fcHJvY2Vzc2VzLnJlbW92ZUZpcnN0KHByb2Nlc3MpOwogfQogCkBA
IC03NTUsMTQgKzg1MSwxOCBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3Jl
YXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogICAgIH0KIAogICAg
IFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHByb2Nlc3M7Ci0gICAgaWYgKG1faGF2ZUluaXRpYWxF
bXB0eVByb2Nlc3MpIHsKLSAgICAgICAgcHJvY2VzcyA9IG1fcHJvY2Vzc2VzLmxhc3QoKTsKLSAg
ICAgICAgbV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcyA9IGZhbHNlOwotICAgIH0gZWxzZSBpZiAo
cGFnZUNvbmZpZ3VyYXRpb24tPnJlbGF0ZWRQYWdlKCkpIHsKLSAgICAgICAgLy8gU2hhcmluZyBw
cm9jZXNzZXMsIGUuZy4gd2hlbiBjcmVhdGluZyB0aGUgcGFnZSB2aWEgd2luZG93Lm9wZW4oKS4K
LSAgICAgICAgcHJvY2VzcyA9ICZwYWdlQ29uZmlndXJhdGlvbi0+cmVsYXRlZFBhZ2UoKS0+cHJv
Y2VzcygpOwotICAgIH0gZWxzZQotICAgICAgICBwcm9jZXNzID0gJmNyZWF0ZU5ld1dlYlByb2Nl
c3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoKTsKKyAgICBpZiAocHJvY2Vzc01vZGVsKCkg
PT0gUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2VzcykgeworICAgICAgICBwcm9jZXNz
ID0gJmVuc3VyZVNoYXJlZFdlYlByb2Nlc3MoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAo
bV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcykgeworICAgICAgICAgICAgcHJvY2VzcyA9IG1fcHJv
Y2Vzc2VzLmxhc3QoKTsKKyAgICAgICAgICAgIG1faGF2ZUluaXRpYWxFbXB0eVByb2Nlc3MgPSBm
YWxzZTsKKyAgICAgICAgfSBlbHNlIGlmIChwYWdlQ29uZmlndXJhdGlvbi0+cmVsYXRlZFBhZ2Uo
KSkgeworICAgICAgICAgICAgLy8gU2hhcmluZyBwcm9jZXNzZXMsIGUuZy4gd2hlbiBjcmVhdGlu
ZyB0aGUgcGFnZSB2aWEgd2luZG93Lm9wZW4oKS4KKyAgICAgICAgICAgIHByb2Nlc3MgPSAmcGFn
ZUNvbmZpZ3VyYXRpb24tPnJlbGF0ZWRQYWdlKCktPnByb2Nlc3MoKTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICBwcm9jZXNzID0gJmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJv
Y2Vzc0NvdW50TGltaXQoKTsKKyAgICB9CiAKICAgICByZXR1cm4gcHJvY2Vzcy0+Y3JlYXRlV2Vi
UGFnZShwYWdlQ2xpZW50LCBXVEY6Om1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsKIH0KQEAgLTc3
MCwxNiArODcwLDE4IEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVX
ZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiBEb3dubG9hZFByb3h5KiBX
ZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQoV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIERvd25sb2FkUHJveHkqIGRvd25s
b2FkUHJveHkgPSBjcmVhdGVEb3dubG9hZFByb3h5KHJlcXVlc3QpOworICAgIHVpbnQ2NF90IGlu
aXRpYXRpbmdQYWdlSUQgPSBpbml0aWF0aW5nUGFnZSA/IGluaXRpYXRpbmdQYWdlLT5wYWdlSUQo
KSA6IDA7CiAgICAgU2Vzc2lvbklEIHNlc3Npb25JRCA9IGluaXRpYXRpbmdQYWdlID8gaW5pdGlh
dGluZ1BhZ2UtPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CiAK
LSAgICBpZiAobmV0d29ya1Byb2Nlc3MoKSkgeworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CisgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG5ldHdvcmtQcm9jZXNzKCkpIHsKICAg
ICAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogUmVwbGljYXRlIHdoYXRldmVyIEZyYW1l
TG9hZGVyOjpzZXRPcmlnaW5hbFVSTEZvckRvd25sb2FkUmVxdWVzdCBkb2VzIHdpdGggdGhlIHJl
cXVlc3QgaGVyZS4KICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OkRvd25sb2FkUmVxdWVzdChzZXNzaW9uSUQsIGRvd25sb2FkUHJveHktPmRv
d25sb2FkSUQoKSwgcmVxdWVzdCksIDApOwogICAgICAgICByZXR1cm4gZG93bmxvYWRQcm94eTsK
ICAgICB9CisjZW5kaWYKIAotICAgIC8vIEZJWE1FOiBtYWtlIG5ldHdvcmtQcm9jZXNzKCkgcmV0
dXJuIGEgcmVmZXJlbmNlIHNvIHRoaXMgaXMgbm90IG5lY2Vzc2FyeS4KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICBtX3Byb2Nlc3Nlc1swXS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vz
czo6RG93bmxvYWRSZXF1ZXN0KHNlc3Npb25JRCwgZG93bmxvYWRQcm94eS0+ZG93bmxvYWRJRCgp
LCBpbml0aWF0aW5nUGFnZUlELCByZXF1ZXN0KSwgMCk7CiAgICAgcmV0dXJuIGRvd25sb2FkUHJv
eHk7CiB9CiAKQEAgLTc5MSwxOCArODkzLDI1IEBAIERvd25sb2FkUHJveHkqIFdlYlByb2Nlc3NQ
b29sOjpyZXN1bWVEb3dubG9hZChjb25zdCBBUEk6OkRhdGEqIHJlc3VtZURhdGEsIGNvbnN0CiAg
ICAgaWYgKCFwYXRoLmlzRW1wdHkoKSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlKHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlJlYWRXcml0ZSwgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSk7CiAKLSAgICBpZiAobmV0d29ya1Byb2Nlc3MoKSkgeworI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCisgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG5ldHdvcmtQcm9j
ZXNzKCkpIHsKICAgICAgICAgbmV0d29ya1Byb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlJlc3VtZURvd25sb2FkKGRvd25sb2FkUHJveHktPmRvd25sb2FkSUQoKSwgcmVz
dW1lRGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBwYXRoLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwg
MCk7CiAgICAgICAgIHJldHVybiBkb3dubG9hZFByb3h5OwogICAgIH0KKyNlbmRpZgogCi0gICAg
Ly8gRklYTUU6IG1ha2UgbmV0d29ya1Byb2Nlc3MoKSByZXR1cm4gYSByZWZlcmVuY2Ugc28gdGhp
cyBpcyBub3QgbmVjZXNzYXJ5LgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIG1fcHJv
Y2Vzc2VzWzBdLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpSZXN1bWVEb3dubG9hZChkb3du
bG9hZFByb3h5LT5kb3dubG9hZElEKCksIHJlc3VtZURhdGEtPmRhdGFSZWZlcmVuY2UoKSwgcGF0
aCwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSksIDApOwogICAgIHJldHVybiBkb3dubG9hZFByb3h5
OwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgQVBJOjpPYmplY3QqIG1lc3NhZ2VCb2R5KQogewor
ICAgIGlmIChtX3Byb2Nlc3Nlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKHByb2Nlc3NNb2Rl
bCgpID09IFByb2Nlc3NNb2RlbFNoYXJlZFNlY29uZGFyeVByb2Nlc3MpCisgICAgICAgICAgICBt
X21lc3NhZ2VzVG9JbmplY3RlZEJ1bmRsZVBvc3RlZFRvRW1wdHlDb250ZXh0LmFwcGVuZChzdGQ6
Om1ha2VfcGFpcihtZXNzYWdlTmFtZSwgbWVzc2FnZUJvZHkpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIGZvciAoYXV0byYgcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKSB7CiAgICAgICAg
IC8vIEZJWE1FOiBSZXR1cm4gZWFybHkgaWYgdGhlIG1lc3NhZ2UgYm9keSBjb250YWlucyBhbnkg
cmVmZXJlbmNlcyB0byBXS1BhZ2VSZWZzL1dLRnJhbWVSZWZzIGV0Yy4gc2luY2UgdGhleSdyZSBs
b2NhbCB0byBhIHByb2Nlc3MuCiAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OkhhbmRsZUluamVjdGVkQnVuZGxlTWVzc2FnZShtZXNzYWdlTmFtZSwgVXNlckRhdGEo
cHJvY2Vzcy0+dHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyhtZXNzYWdlQm9keSkuZ2V0KCkpKSwg
MCk7CkBAIC04MzEsNiArOTQwLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0QWRkaXRpb25h
bFBsdWdpbnNEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBkaXJlY3RvcnkpCiB9CiAjZW5kaWYgLy8g
RU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQogUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllciBXZWJQcm9jZXNzUG9vbDo6bmV0d29ya1Byb2Nl
c3NJZGVudGlmaWVyKCkKIHsKICAgICBpZiAoIW1fbmV0d29ya1Byb2Nlc3MpCkBAIC04MzgsNiAr
OTQ4LDcgQEAgUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllciBXZWJQcm9jZXNzUG9vbDo6bmV0d29y
a1Byb2Nlc3NJZGVudGlmaWVyKCkKIAogICAgIHJldHVybiBtX25ldHdvcmtQcm9jZXNzLT5wcm9j
ZXNzSWRlbnRpZmllcigpOwogfQorI2VuZGlmCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldEFs
d2F5c1VzZXNDb21wbGV4VGV4dENvZGVQYXRoKGJvb2wgYWx3YXlzVXNlQ29tcGxleFRleHQpCiB7
CkBAIC04NzcsOSArOTg4LDE1IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldERvbWFpblJlbGF4
YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiB1cmxTCiAKIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnNldENhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKGJvb2wg
dmFsdWUpCiB7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBtX2NhbkhhbmRsZUhU
VFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uID0gdmFsdWU7Ci0gICAgaWYgKG1fbmV0d29ya1Byb2Nl
c3MpCisgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG1fbmV0d29ya1Byb2Nlc3MpIHsK
ICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldENhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKHZhbHVlKSwgMCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7CisjZW5k
aWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKGNv
bnN0IFN0cmluZyYgdXJsU2NoZW1lKQpAQCAtOTQ3LDggKzEwNjQsMTAgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAgICAgbV9jb25m
aWd1cmF0aW9uLT5zZXRDYWNoZU1vZGVsKGNhY2hlTW9kZWwpOwogICAgIHNlbmRUb0FsbFByb2Nl
c3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0Q2FjaGVNb2RlbChjYWNoZU1vZGVsKSk7CiAK
LSAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQor
ICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSAmJiBtX25ldHdvcmtQcm9jZXNzKQogICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0Q2Fj
aGVNb2RlbChjYWNoZU1vZGVsKSwgMCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwoZG91YmxlIHRpbWVvdXRJbnRlcnZh
bCkKQEAgLTk1OCw5ICsxMDc3LDE1IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldERlZmF1bHRS
ZXF1ZXN0VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCiAKIERvd25sb2Fk
UHJveHkqIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVEb3dubG9hZFByb3h5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBlbnN1cmVOZXR3b3JrUHJvY2VzcygpOwotICAgIEFT
U0VSVChtX25ldHdvcmtQcm9jZXNzKTsKLSAgICByZXR1cm4gbV9uZXR3b3JrUHJvY2Vzcy0+Y3Jl
YXRlRG93bmxvYWRQcm94eShyZXF1ZXN0KTsKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQor
ICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSkgeworICAgICAgICBlbnN1cmVOZXR3b3JrUHJv
Y2VzcygpOworICAgICAgICBBU1NFUlQobV9uZXR3b3JrUHJvY2Vzcyk7CisgICAgICAgIHJldHVy
biBtX25ldHdvcmtQcm9jZXNzLT5jcmVhdGVEb3dubG9hZFByb3h5KHJlcXVlc3QpOworICAgIH0K
KyNlbmRpZgorCisgICAgcmV0dXJuIGVuc3VyZVNoYXJlZFdlYlByb2Nlc3MoKS5jcmVhdGVEb3du
bG9hZFByb3h5KHJlcXVlc3QpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjphZGRNZXNzYWdl
UmVjZWl2ZXIoSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXImIG1lc3NhZ2VSZWNlaXZlcikKQEAgLTEwNTcsMTAgKzExODIsMTIgQEAg
U3RyaW5nIFdlYlByb2Nlc3NQb29sOjpjb29raWVTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnVzZVRlc3RpbmdOZXR3b3JrU2Vzc2lvbigpCiB7CiAgICAgQVNT
RVJUKG1fcHJvY2Vzc2VzLmlzRW1wdHkoKSk7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
ICAgICBBU1NFUlQoIW1fbmV0d29ya1Byb2Nlc3MpOwogCiAgICAgaWYgKG1fbmV0d29ya1Byb2Nl
c3MpCiAgICAgICAgIHJldHVybjsKKyNlbmRpZgogCiAgICAgaWYgKCFtX3Byb2Nlc3Nlcy5pc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwNzAsMTggKzExOTcsMjIgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6dXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKCkKIAogdm9pZCBXZWJQcm9jZXNz
UG9vbDo6YWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRp
ZmljYXRlSW5mbyogY2VydGlmaWNhdGUsIGNvbnN0IFN0cmluZyYgaG9zdCkKIHsKLSAgICBpZiAo
bV9uZXR3b3JrUHJvY2VzcykgeworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgaWYg
KHVzZXNOZXR3b3JrUHJvY2VzcygpICYmIG1fbmV0d29ya1Byb2Nlc3MpIHsKICAgICAgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFsbG93U3BlY2lm
aWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0aWZpY2F0ZS0+Y2VydGlmaWNhdGVJbmZvKCks
IGhvc3QpLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNlbmRpZgogCiAjaWYgVVNFKFNP
VVApCiAgICAgbV9wcm9jZXNzZXNbMF0tPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkFsbG93
U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjZXJ0aWZpY2F0ZS0+Y2VydGlmaWNhdGVJ
bmZvKCksIGhvc3QpLCAwKTsKICAgICByZXR1cm47CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShj
ZXJ0aWZpY2F0ZSk7CisgICAgVU5VU0VEX1BBUkFNKGhvc3QpOwogI2VuZGlmCiAKICNpZiAhUExB
VEZPUk0oSU9TKQotICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhpcyBvbmx5IG9uIGlPUz8gQ2FuIHdl
IHJlbW92ZSBpdD8KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbmRpZgogfQpAQCAtMTEy
MiwxOSArMTI1Myw0MCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRTdGF0aXN0aWNzKHVpbnQz
Ml90IHN0YXRpc3RpY3NNYXNrLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKAogCiB2b2lkIFdlYlByb2Nl
c3NQb29sOjpyZXF1ZXN0V2ViQ29udGVudFN0YXRpc3RpY3MoU3RhdGlzdGljc1JlcXVlc3QqIHJl
cXVlc3QpCiB7Ci0gICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpIDxyZGFyOi8vcHJvYmxl
bS8xMzIwMDA1OT46IE1ha2UgZ2V0dGluZyBzdGF0aXN0aWNzIGZyb20gbXVsdGlwbGUgV2ViUHJv
Y2Vzc2VzIHdvcmsuCisgICAgaWYgKHByb2Nlc3NNb2RlbCgpID09IFByb2Nlc3NNb2RlbFNoYXJl
ZFNlY29uZGFyeVByb2Nlc3MpIHsKKyAgICAgICAgaWYgKG1fcHJvY2Vzc2VzLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIHVpbnQ2NF90IHJlcXVlc3RJ
RCA9IHJlcXVlc3QtPmFkZE91dHN0YW5kaW5nUmVxdWVzdCgpOworICAgICAgICBtX3N0YXRpc3Rp
Y3NSZXF1ZXN0cy5zZXQocmVxdWVzdElELCByZXF1ZXN0KTsKKyAgICAgICAgbV9wcm9jZXNzZXNb
MF0tPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkdldFdlYkNvcmVTdGF0aXN0aWNzKHJlcXVl
c3RJRCksIDApOworCisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRklYTUUgKE11bHRpLVdlYlBy
b2Nlc3MpIDxyZGFyOi8vcHJvYmxlbS8xMzIwMDA1OT46IE1ha2UgZ2V0dGluZyBzdGF0aXN0aWNz
IGZyb20gbXVsdGlwbGUgV2ViUHJvY2Vzc2VzIHdvcmsuCisgICAgfQogfQogCiB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpyZXF1ZXN0TmV0d29ya2luZ1N0YXRpc3RpY3MoU3RhdGlzdGljc1JlcXVlc3Qq
IHJlcXVlc3QpCiB7Ci0gICAgaWYgKCFtX25ldHdvcmtQcm9jZXNzKSB7CisgICAgYm9vbCBuZXR3
b3JrUHJvY2Vzc1VuYXZhaWxhYmxlOworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAg
bmV0d29ya1Byb2Nlc3NVbmF2YWlsYWJsZSA9ICF1c2VzTmV0d29ya1Byb2Nlc3MoKSB8fCAhbV9u
ZXR3b3JrUHJvY2VzczsKKyNlbHNlCisgICAgbmV0d29ya1Byb2Nlc3NVbmF2YWlsYWJsZSA9IHRy
dWU7CisjZW5kaWYKKworICAgIGlmIChuZXR3b3JrUHJvY2Vzc1VuYXZhaWxhYmxlKSB7CiAgICAg
ICAgIExPR19FUlJPUigiQXR0ZW1wdCB0byBnZXQgTmV0d29ya1Byb2Nlc3Mgc3RhdGlzdGljcyBi
dXQgdGhlIE5ldHdvcmtQcm9jZXNzIGlzIHVuYXZhaWxhYmxlIik7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogICAgIHVpbnQ2NF90IHJlcXVl
c3RJRCA9IHJlcXVlc3QtPmFkZE91dHN0YW5kaW5nUmVxdWVzdCgpOwogICAgIG1fc3RhdGlzdGlj
c1JlcXVlc3RzLnNldChyZXF1ZXN0SUQsIHJlcXVlc3QpOwogICAgIG1fbmV0d29ya1Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpHZXROZXR3b3JrUHJvY2Vzc1N0YXRpc3Rp
Y3MocmVxdWVzdElEKSwgMCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsKKyNl
bmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpoYW5kbGVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlTmFtZSwgY29uc3QgV2ViS2l0
OjpVc2VyRGF0YSYgbWVzc2FnZUJvZHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCmluZGV4IDMwN2E1Y2FjNzBjZjdiMTk0YmJhNzdjMzk5M2E1M2NiYmQxNDY3NDIu
LmNmZjA2ZjEwYmU5OGRmMmQ4MDRkYTRiZTY5MzgxYmM1ODZkNWExYTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0zNCw5ICszNCw5IEBACiAjaW5jbHVk
ZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyTWFwLmgiCi0jaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94
eS5oIgogI2luY2x1ZGUgIlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiUGx1
Z2luSW5mb1N0b3JlLmgiCisjaW5jbHVkZSAiUHJvY2Vzc01vZGVsLmgiCiAjaW5jbHVkZSAiUHJv
Y2Vzc1Rocm90dGxlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiVmlzaXRlZExpbmtTdG9yZS5oIgpAQCAtNTksNiArNTksMTAgQEAKICNpbmNsdWRlICJEYXRh
YmFzZVByb2Nlc3NQcm94eS5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNT
KQorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxF
KE1FRElBX1NFU1NJT04pCiAjaW5jbHVkZSAiV2ViTWVkaWFTZXNzaW9uRm9jdXNNYW5hZ2VyLmgi
CiAjZW5kaWYKQEAgLTgyLDEyICs4NiwxNCBAQCBjbGFzcyBXZWJDb250ZXh0U3VwcGxlbWVudDsK
IGNsYXNzIFdlYkljb25EYXRhYmFzZTsKIGNsYXNzIFdlYlBhZ2VHcm91cDsKIGNsYXNzIFdlYlBh
Z2VQcm94eTsKLXN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVj
dCBTdGF0aXN0aWNzRGF0YTsKIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwog
ICAgIAogdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8QVBJOjpEaWN0aW9uYXJ5Kj4gRGljdGlvbmFy
eUNhbGxiYWNrOwogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKK3N0cnVjdCBOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiBpbnQgbmV0d29ya1Byb2Nlc3NMYXRlbmN5UU9TKCk7CkBAIC0xMzYsNiArMTQyLDkgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0SGlzdG9yeUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpMZWdh
Y3lDb250ZXh0SGlzdG9yeUNsaWVudD4pOwogICAgIHZvaWQgc2V0RG93bmxvYWRDbGllbnQoc3Rk
Ojp1bmlxdWVfcHRyPEFQSTo6RG93bmxvYWRDbGllbnQ+KTsKIAorICAgIHZvaWQgc2V0UHJvY2Vz
c01vZGVsKFByb2Nlc3NNb2RlbCk7IC8vIENhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZXJlIGFy
ZSBubyBwcm9jZXNzZXMgcnVubmluZy4KKyAgICBQcm9jZXNzTW9kZWwgcHJvY2Vzc01vZGVsKCkg
Y29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLT5wcm9jZXNzTW9kZWwoKTsgfQorCiAgICAg
dm9pZCBzZXRNYXhpbXVtTnVtYmVyT2ZQcm9jZXNzZXModW5zaWduZWQpOyAvLyBDYW4gb25seSBi
ZSBjYWxsZWQgd2hlbiB0aGVyZSBhcmUgbm8gcHJvY2Vzc2VzIHJ1bm5pbmcuCiAgICAgdW5zaWdu
ZWQgbWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKCkgY29uc3QgeyByZXR1cm4gIW1fY29uZmlndXJh
dGlvbi0+bWF4aW11bVByb2Nlc3NDb3VudCgpID8gVUlOVF9NQVggOiBtX2NvbmZpZ3VyYXRpb24t
Pm1heGltdW1Qcm9jZXNzQ291bnQoKTsgfQogCkBAIC0xODQsNyArMTkzLDkgQEAgcHVibGljOgog
ICAgIHZvaWQgY2xlYXJQbHVnaW5DbGllbnRQb2xpY2llcygpOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQogICAgIFBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIgbmV0d29y
a1Byb2Nlc3NJZGVudGlmaWVyKCk7CisjZW5kaWYKIAogICAgIHZvaWQgc2V0QWx3YXlzVXNlc0Nv
bXBsZXhUZXh0Q29kZVBhdGgoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRVc2VGb250U21vb3Ro
aW5nKGJvb2wpOwpAQCAtMjc1LDExICsyODYsMTYgQEAgcHVibGljOgogCiAgICAgLy8gTmV0d29y
ayBQcm9jZXNzIE1hbmFnZW1lbnQKIAorICAgIHZvaWQgc2V0VXNlc05ldHdvcmtQcm9jZXNzKGJv
b2wpOworICAgIGJvb2wgdXNlc05ldHdvcmtQcm9jZXNzKCkgY29uc3Q7CisKKyNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQogICAgIE5ldHdvcmtQcm9jZXNzUHJveHkmIGVuc3VyZU5ldHdvcmtQ
cm9jZXNzKCk7CiAgICAgTmV0d29ya1Byb2Nlc3NQcm94eSogbmV0d29ya1Byb2Nlc3MoKSB7IHJl
dHVybiBtX25ldHdvcmtQcm9jZXNzLmdldCgpOyB9CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0Ny
YXNoZWQoTmV0d29ya1Byb2Nlc3NQcm94eSopOwogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4pOworI2VuZGlmCiAKICNpZiBFTkFC
TEUoREFUQUJBU0VfUFJPQ0VTUykKICAgICB2b2lkIGVuc3VyZURhdGFiYXNlUHJvY2VzcygpOwpA
QCAtMzYyLDcgKzM3OCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0V2ViQ29udGVudFN0
YXRpc3RpY3MoU3RhdGlzdGljc1JlcXVlc3QqKTsKICAgICB2b2lkIHJlcXVlc3ROZXR3b3JraW5n
U3RhdGlzdGljcyhTdGF0aXN0aWNzUmVxdWVzdCopOwogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CisjZW5kaWYKIAogICAgIHZvaWQgaGFuZGxlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBjb25zdCBV
c2VyRGF0YSYgbWVzc2FnZUJvZHkpOwogICAgIHZvaWQgaGFuZGxlU3luY2hyb25vdXNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hbWUsIGNvbnN0IFVzZXJE
YXRhJiBtZXNzYWdlQm9keSwgVXNlckRhdGEmIHJldHVyblVzZXJEYXRhKTsKQEAgLTQ4Miw5ICs1
MDAsMTEgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9wcm9jZXNzVGVybWluYXRpb25FbmFibGVk
OwogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBib29sIG1fY2FuSGFuZGxlSFRU
UFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb247CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNzQ3Jh
c2g7CiAgICAgUmVmUHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IG1fbmV0d29ya1Byb2Nlc3M7Cisj
ZW5kaWYKIAogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogICAgIFJlZlB0cjxEYXRhYmFz
ZVByb2Nlc3NQcm94eT4gbV9kYXRhYmFzZVByb2Nlc3M7CkBAIC01MTksMTUgKzUzOSw1NSBAQCBw
cml2YXRlOgogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRU
b05ldHdvcmtpbmdQcm9jZXNzKFQmJiBtZXNzYWdlKQogewotICAgIGlmIChtX25ldHdvcmtQcm9j
ZXNzICYmIG1fbmV0d29ya1Byb2Nlc3MtPmNhblNlbmRNZXNzYWdlKCkpCi0gICAgICAgIG1fbmV0
d29ya1Byb2Nlc3MtPnNlbmQoc3RkOjpmb3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKKyAgICBzd2l0
Y2ggKHByb2Nlc3NNb2RlbCgpKSB7CisgICAgY2FzZSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRh
cnlQcm9jZXNzOgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgICAgIGlmICh1c2Vz
TmV0d29ya1Byb2Nlc3MoKSkgeworICAgICAgICAgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MgJiYg
bV9uZXR3b3JrUHJvY2Vzcy0+Y2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAgICAgICAgICBtX25l
dHdvcmtQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBpZiAoIW1fcHJvY2Vzc2Vz
LmlzRW1wdHkoKSAmJiBtX3Byb2Nlc3Nlc1swXS0+Y2FuU2VuZE1lc3NhZ2UoKSkKKyAgICAgICAg
ICAgIG1fcHJvY2Vzc2VzWzBdLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICBjYXNlIFByb2Nlc3NNb2RlbE11bHRpcGxlU2Vjb25kYXJ5UHJv
Y2Vzc2VzOgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgICAgIGlmIChtX25ldHdv
cmtQcm9jZXNzICYmIG1fbmV0d29ya1Byb2Nlc3MtPmNhblNlbmRNZXNzYWdlKCkpCisgICAgICAg
ICAgICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7
CisgICAgICAgIHJldHVybjsKKyNlbHNlCisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgfQor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvTmV0d29ya2luZ1Byb2Nlc3NSZWxhdW5jaGluZ0lmTmVj
ZXNzYXJ5KFQmJiBtZXNzYWdlKQogewotICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7Ci0gICAg
bV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOworICAg
IHN3aXRjaCAocHJvY2Vzc01vZGVsKCkpIHsKKyAgICBjYXNlIFByb2Nlc3NNb2RlbFNoYXJlZFNl
Y29uZGFyeVByb2Nlc3M6CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICAgICAgaWYg
KHVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CisgICAgICAgICAgICBlbnN1cmVOZXR3b3JrUHJvY2Vz
cygpOworICAgICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2VuZChzdGQ6OmZvcndhcmQ8VD4o
bWVzc2FnZSksIDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisjZW5kaWYKKyAg
ICAgICAgZW5zdXJlU2hhcmVkV2ViUHJvY2VzcygpOworICAgICAgICBtX3Byb2Nlc3Nlc1swXS0+
c2VuZChzdGQ6OmZvcndhcmQ8VD4obWVzc2FnZSksIDApOworICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBQcm9jZXNzTW9kZWxNdWx0aXBsZVNlY29uZGFyeVByb2Nlc3NlczoKKyNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQorICAgICAgICBlbnN1cmVOZXR3b3JrUHJvY2VzcygpOworICAgICAg
ICBtX25ldHdvcmtQcm9jZXNzLT5zZW5kKHN0ZDo6Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7Cisg
ICAgICAgIHJldHVybjsKKyNlbHNlCisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgfQorICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtNTU2
LDEyICs2MTYsMTcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnNlbmRUb0FsbFByb2Nlc3Nlc1JlbGF1bmNoaW5nVGhlbUlmTmVjZXNzYXJ5KGNvbnN0IFQmIG1l
c3NhZ2UpCiB7CiAgICAgLy8gRklYTUUgKE11bHRpLVdlYlByb2Nlc3MpOiBXZWJQcm9jZXNzUG9v
bCBkb2Vzbid0IHRyYWNrIHByb2Nlc3NlcyB0aGF0IGhhdmUgZXhpdGVkLCBzbyBpdCBjYW5ub3Qg
cmVsYXVuY2ggdGhlc2UuIFBlcmhhcHMgdGhpcyBmdW5jdGlvbmFsaXR5IHdvbid0IGJlIG5lZWRl
ZCBpbiB0aGlzIG1vZGUuCisgICAgaWYgKHByb2Nlc3NNb2RlbCgpID09IFByb2Nlc3NNb2RlbFNo
YXJlZFNlY29uZGFyeVByb2Nlc3MpCisgICAgICAgIGVuc3VyZVNoYXJlZFdlYlByb2Nlc3MoKTsK
ICAgICBzZW5kVG9BbGxQcm9jZXNzZXMobWVzc2FnZSk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZW5kVG9PbmVQcm9jZXNzKFQmJiBtZXNzYWdlKQog
eworICAgIGlmIChwcm9jZXNzTW9kZWwoKSA9PSBQcm9jZXNzTW9kZWxTaGFyZWRTZWNvbmRhcnlQ
cm9jZXNzKQorICAgICAgICBlbnN1cmVTaGFyZWRXZWJQcm9jZXNzKCk7CisKICAgICBib29sIG1l
c3NhZ2VTZW50ID0gZmFsc2U7CiAgICAgc2l6ZV90IHByb2Nlc3NDb3VudCA9IG1fcHJvY2Vzc2Vz
LnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHByb2Nlc3NDb3VudDsgKytpKSB7
CkBAIC01NzMsNyArNjM4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VuZFRvT25lUHJvY2Vz
cyhUJiYgbWVzc2FnZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghbWVzc2FnZVNlbnQp
IHsKKyAgICBpZiAoIW1lc3NhZ2VTZW50ICYmIHByb2Nlc3NNb2RlbCgpID09IFByb2Nlc3NNb2Rl
bE11bHRpcGxlU2Vjb25kYXJ5UHJvY2Vzc2VzKSB7CiAgICAgICAgIHdhcm1Jbml0aWFsUHJvY2Vz
cygpOwogICAgICAgICBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBwcm9jZXNzID0gbV9wcm9jZXNz
ZXMubGFzdCgpOwogICAgICAgICBpZiAocHJvY2Vzcy0+Y2FuU2VuZE1lc3NhZ2UoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMGQzMWMwNGM1
ODVkMzgyYzBlZTljZjQxZDA2OWNlZTA2NmZjN2ZjYy4uMTkxMmNkYTc5NzgzZTQ5YWY2ZjVlZjE4
NTA0NzU3YTNkN2YzZmQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVt
b3ZlV2ViUGFnZSh1aW50NjRfdCBwYWdlSUQpCiAKICAgICAvLyBJZiB0aGlzIHdhcyB0aGUgbGFz
dCBXZWJQYWdlIG9wZW4gaW4gdGhhdCB3ZWIgcHJvY2VzcywgYW5kIHdlIGhhdmUgbm8gb3RoZXIg
cmVhc29uIHRvIGtlZXAgaXQgYWxpdmUsIGxldCBpdCBnby4KICAgICAvLyBXZSBvbmx5IGFsbG93
IHRoaXMgd2hlbiB1c2luZyBhIG5ldHdvcmsgcHJvY2VzcywgYXMgb3RoZXJ3aXNlIHRoZSBXZWJQ
cm9jZXNzIG5lZWRzIHRvIHByZXNlcnZlIGl0cyBzZXNzaW9uIHN0YXRlLgotICAgIGlmIChzdGF0
ZSgpID09IFN0YXRlOjpUZXJtaW5hdGVkIHx8ICFjYW5UZXJtaW5hdGVDaGlsZFByb2Nlc3MoKSkK
KyAgICBpZiAoIW1fcHJvY2Vzc1Bvb2wtPnVzZXNOZXR3b3JrUHJvY2VzcygpIHx8IHN0YXRlKCkg
PT0gU3RhdGU6OlRlcm1pbmF0ZWQgfHwgIWNhblRlcm1pbmF0ZUNoaWxkUHJvY2VzcygpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBzaHV0RG93bigpOwpAQCAtNDI3LDEwICs0MjcsMTIgQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBs
dWdpblByb2Nlc3NUb2tlbiwgUGEKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJP
Q0VTUykKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24o
UGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OkRlbGF5ZWRSZXBseT4gcmVwbHkpCiB7CiAgICAgbV9wcm9jZXNzUG9vbC0+Z2V0
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKHJlcGx5KTsKIH0KKyNlbmRpZiAvLyBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6Z2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihQYXNzUmVmUHRyPE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseT4gcmVwbHkpCkBAIC03MDAsNiArNzAyLDE4IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
Ojp1cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCkKICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzczo6U2V0VGV4dENoZWNrZXJTdGF0ZShUZXh0Q2hlY2tlcjo6c3RhdGUoKSksIDApOwogfQog
CitEb3dubG9hZFByb3h5KiBXZWJQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworI2lmIEVOQUJMRShORVRXT1JLX1BST0NF
U1MpCisgICAgQVNTRVJUKCFtX3Byb2Nlc3NQb29sLT51c2VzTmV0d29ya1Byb2Nlc3MoKSk7Cisj
ZW5kaWYKKworICAgIGlmICghbV9kb3dubG9hZFByb3h5TWFwKQorICAgICAgICBtX2Rvd25sb2Fk
UHJveHlNYXAgPSBzdGQ6Om1ha2VfdW5pcXVlPERvd25sb2FkUHJveHlNYXA+KHRoaXMpOworCisg
ICAgcmV0dXJuIG1fZG93bmxvYWRQcm94eU1hcC0+Y3JlYXRlRG93bmxvYWRQcm94eShtX3Byb2Nl
c3NQb29sLCByZXF1ZXN0KTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZFNhdmVUb1Bh
Z2VDYWNoZSgpCiB7CiAgICAgbV9wcm9jZXNzUG9vbC0+cHJvY2Vzc0RpZENhY2hlUGFnZSh0aGlz
KTsKQEAgLTkzMyw2ICs5NDcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkQ2FuY2VsUHJv
Y2Vzc1N1c3BlbnNpb24oKQogICAgIG1fdGhyb3R0bGVyLmRpZENhbmNlbFByb2Nlc3NTdXNwZW5z
aW9uKCk7CiB9CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNz
UHJveHk6OnJlaW5zdGF0ZU5ldHdvcmtQcm9jZXNzQXNzZXJ0aW9uU3RhdGUoTmV0d29ya1Byb2Nl
c3NQcm94eSYgbmV3TmV0d29ya1Byb2Nlc3NQcm94eSkKIHsKICNpZiBQTEFURk9STShJT1MpCkBA
IC05NDcsMTAgKzk2MiwxMSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cmVpbnN0YXRlTmV0d29y
a1Byb2Nlc3NBc3NlcnRpb25TdGF0ZShOZXR3b3JrUHJvY2Vzc1Byb3h5JgogICAgIFVOVVNFRF9Q
QVJBTShuZXdOZXR3b3JrUHJvY2Vzc1Byb3h5KTsKICNlbmRpZgogfQorI2VuZGlmCiAKIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpkaWRTZXRBc3NlcnRpb25TdGF0ZShBc3NlcnRpb25TdGF0ZSBzdGF0
ZSkKIHsKLSNpZiBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oSU9TKSAmJiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQogICAgIEFTU0VSVCghbV9iYWNrZ3JvdW5kVG9rZW5Gb3JOZXR3b3JrUHJv
Y2VzcyB8fCAhbV9mb3JlZ3JvdW5kVG9rZW5Gb3JOZXR3b3JrUHJvY2Vzcyk7CiAKICAgICBzd2l0
Y2ggKHN0YXRlKSB7CkBAIC05NjIsMTIgKzk3OCwxNCBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6
ZGlkU2V0QXNzZXJ0aW9uU3RhdGUoQXNzZXJ0aW9uU3RhdGUgc3RhdGUpCiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6QmFja2dyb3VuZDoKLSAgICAgICAgbV9iYWNr
Z3JvdW5kVG9rZW5Gb3JOZXR3b3JrUHJvY2VzcyA9IHByb2Nlc3NQb29sKCkuZW5zdXJlTmV0d29y
a1Byb2Nlc3MoKS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpOworICAgICAg
ICBpZiAocHJvY2Vzc1Bvb2woKS51c2VzTmV0d29ya1Byb2Nlc3MoKSkKKyAgICAgICAgICAgIG1f
YmFja2dyb3VuZFRva2VuRm9yTmV0d29ya1Byb2Nlc3MgPSBwcm9jZXNzUG9vbCgpLmVuc3VyZU5l
dHdvcmtQcm9jZXNzKCkudGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKICAg
ICAgICAgbV9mb3JlZ3JvdW5kVG9rZW5Gb3JOZXR3b3JrUHJvY2VzcyA9IG51bGxwdHI7CiAgICAg
ICAgIGJyZWFrOwogICAgIAogICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6OkZvcmVncm91bmQ6Ci0g
ICAgICAgIG1fZm9yZWdyb3VuZFRva2VuRm9yTmV0d29ya1Byb2Nlc3MgPSBwcm9jZXNzUG9vbCgp
LmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkudGhyb3R0bGVyKCkuZm9yZWdyb3VuZEFjdGl2aXR5VG9r
ZW4oKTsKKyAgICAgICAgaWYgKHByb2Nlc3NQb29sKCkudXNlc05ldHdvcmtQcm9jZXNzKCkpCisg
ICAgICAgICAgICBtX2ZvcmVncm91bmRUb2tlbkZvck5ldHdvcmtQcm9jZXNzID0gcHJvY2Vzc1Bv
b2woKS5lbnN1cmVOZXR3b3JrUHJvY2VzcygpLnRocm90dGxlcigpLmZvcmVncm91bmRBY3Rpdml0
eVRva2VuKCk7CiAgICAgICAgIG1fYmFja2dyb3VuZFRva2VuRm9yTmV0d29ya1Byb2Nlc3MgPSBu
dWxscHRyOwogICAgICAgICBmb3IgKGF1dG8mIHBhZ2UgOiBtX3BhZ2VNYXAudmFsdWVzKCkpCiAg
ICAgICAgICAgICBwYWdlLT5wcm9jZXNzV2lsbEJlY29tZUZvcmVncm91bmQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA1YWI0MzhiNzExODU5Yjll
ZjgzNjkwZGZmMWI3OGU2ZjY2YTcwYmVhLi5jYzNlY2ViNWQyNzMwZTk3MzBmMTBhYTVlNWVjZTc3
M2M3ZDE4NDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CkBAIC0xNTIsNyArMTUyLDkgQEAgcHVibGljOgogCiAgICAgUHJvY2Vzc1Rocm90dGxlciYgdGhy
b3R0bGVyKCkgeyByZXR1cm4gbV90aHJvdHRsZXI7IH0KIAorI2lmIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCiAgICAgdm9pZCByZWluc3RhdGVOZXR3b3JrUHJvY2Vzc0Fzc2VydGlvblN0YXRlKE5l
dHdvcmtQcm9jZXNzUHJveHkmKTsKKyNlbmRpZgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdl
YlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOwpAQCAtMTg0LDcgKzE4Niw5IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgdm9pZCBnZXRQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIFBhc3NSZWZQdHI8
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseT4pOwogI2VuZGlmCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICB2
b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5Pik7
CisjZW5kaWYKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKICAgICB2b2lkIGdldERhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+KTsKICNlbmRpZgpA
QCAtMjQ5LDcgKzI1Myw3IEBAIHByaXZhdGU6CiAgICAgaW50IG1fbnVtYmVyT2ZUaW1lc1N1ZGRl
blRlcm1pbmF0aW9uV2FzRGlzYWJsZWQ7CiAgICAgUHJvY2Vzc1Rocm90dGxlciBtX3Rocm90dGxl
cjsKICAgICBQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbiBtX3Rva2Vu
Rm9ySG9sZGluZ0xvY2tlZEZpbGVzOwotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShJ
T1MpICYmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgUHJvY2Vzc1Rocm90dGxlcjo6Rm9y
ZWdyb3VuZEFjdGl2aXR5VG9rZW4gbV9mb3JlZ3JvdW5kVG9rZW5Gb3JOZXR3b3JrUHJvY2VzczsK
ICAgICBQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbiBtX2JhY2tncm91
bmRUb2tlbkZvck5ldHdvcmtQcm9jZXNzOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCAyMWRiZmQ0YjUy
ZDMzNWEyYjA5NDA1YzQ0NzM4YjYyYTUwZTYyYzQwLi43NDUwOWUwMzlkNDZkYzdlMWE3Zjg1ZTIy
MDRjYzA2MWM2NmRhYTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTM4LDcgKzM4LDkgQEAgbWVzc2FnZXMgLT4g
V2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBHZXRQbHVnaW5zKGJvb2wgcmVm
cmVzaCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBwbHVnaW5zLCBWZWN0b3I8V2Vi
Q29yZTo6UGx1Z2luSW5mbz4gYXBwbGljYXRpb25QbHVnaW5zKQogICAgIEdldFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikgLT4gKElQQzo6QXR0YWNo
bWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6
YXRpb24pIERlbGF5ZWQKICNlbmRpZgorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAg
R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0
aW9uSGFuZGxlKSBEZWxheWVkCisjZW5kaWYKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykK
ICAgICBHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBj
b25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCA5
MzYxNjJhNzkwNDgwODRhNTE0M2NkYWE2ZTAxMTJlYzIzNzAwNjRmLi41MzA1Zjg4Y2MyOGU0ZTU0
NmE2ZTZiNmI3OGE5YTg3NmNjZTdmMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC05NCwxMCAr
OTQsMTIgQEAgV2Vic2l0ZURhdGFTdG9yZTo6fldlYnNpdGVEYXRhU3RvcmUoKQogewogICAgIHBs
YXRmb3JtRGVzdHJveSgpOwogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICBpZiAo
bV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKSkgewogICAgICAgICBmb3IgKGF1dG8mIHByb2Nlc3NQ
b29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFsbFByb2Nlc3NQb29scygpKQogICAgICAgICAgICAgcHJv
Y2Vzc1Bvb2wtPnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6RGVzdHJveVByaXZhdGVCcm93c2luZ1Nlc3Npb24obV9zZXNzaW9uSUQpKTsKICAgICB9Cisj
ZW5kaWYKIH0KIAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpjbG9uZVNlc3Npb25EYXRhKFdlYlBh
Z2VQcm94eSYgc291cmNlUGFnZSwgV2ViUGFnZVByb3h5JiBuZXdQYWdlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQcm9jZXNzUG9vbEd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NQb29sR3RrLmNwcAppbmRleCBkODI2
YTAxOGFmN2YyOWJhMWE0ZmIwYjQyMzIzYWU1ZmIwZDEwNWU4Li4xNGE4YzczNzRkYzEwNzIzZTNh
NWEyODk4ZmU5ZTI0YTgyNzc3MTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZ3RrL1dlYlByb2Nlc3NQb29sR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZ3RrL1dlYlByb2Nlc3NQb29sR3RrLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVk
ZSAiQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgot
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb29raWVN
YW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC00Miw2ICs0MSwxMCBAQAogI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5n
Lmg+CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorI2luY2x1ZGUgIk5ldHdvcmtQcm9j
ZXNzTWVzc2FnZXMuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIHZv
aWQgaW5pdEluc3BlY3RvclNlcnZlcigpCkBAIC05NSw2ICs5OCwxNiBAQCB2b2lkIFdlYlByb2Nl
c3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmCiAgICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0xvY2Fs
LmFwcGVuZCgicmVzb3VyY2UiKTsKICAgICB9CiAKKyAgICBpZiAoIXVzZXNOZXR3b3JrUHJvY2Vz
cygpKSB7CisgICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRGb3JDdXN0b21Q
cm90b2NvbHMgPSBzdXBwbGVtZW50PFdlYlNvdXBDdXN0b21Qcm90b2NvbFJlcXVlc3RNYW5hZ2Vy
PigpLT5yZWdpc3RlcmVkU2NoZW1lc0ZvckN1c3RvbVByb3RvY29scygpOworCisgICAgICAgIHN1
cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpLT5nZXRDb29raWVQZXJzaXN0ZW50U3Rv
cmFnZShwYXJhbWV0ZXJzLmNvb2tpZVBlcnNpc3RlbnRTdG9yYWdlUGF0aCwgcGFyYW1ldGVycy5j
b29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOworICAgICAgICBwYXJhbWV0ZXJzLmNvb2tpZUFj
Y2VwdFBvbGljeSA9IG1faW5pdGlhbEhUVFBDb29raWVBY2NlcHRQb2xpY3k7CisKKyAgICAgICAg
cGFyYW1ldGVycy5pZ25vcmVUTFNFcnJvcnMgPSBtX2lnbm9yZVRMU0Vycm9yczsKKyAgICAgICAg
cGFyYW1ldGVycy5kaXNrQ2FjaGVEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPmRpc2tDYWNo
ZURpcmVjdG9yeSgpOworICAgIH0KKwogICAgIHBhcmFtZXRlcnMubWVtb3J5Q2FjaGVEaXNhYmxl
ZCA9IG1fbWVtb3J5Q2FjaGVEaXNhYmxlZCB8fCBjYWNoZU1vZGVsKCkgPT0gQ2FjaGVNb2RlbERv
Y3VtZW50Vmlld2VyOwogfQogCkBAIC0xMzYsOCArMTQ5LDEzIEBAIFN0cmluZyBXZWJQcm9jZXNz
UG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KCkKIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnNldElnbm9yZVRMU0Vycm9ycyhib29sIGlnbm9yZVRMU0Vycm9ycykK
IHsKICAgICBtX2lnbm9yZVRMU0Vycm9ycyA9IGlnbm9yZVRMU0Vycm9yczsKLSAgICBpZiAobmV0
d29ya1Byb2Nlc3MoKSkKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIGlmICh1c2Vz
TmV0d29ya1Byb2Nlc3MoKSAmJiBuZXR3b3JrUHJvY2VzcygpKSB7CiAgICAgICAgIG5ldHdvcmtQ
cm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRJZ25vcmVUTFNFcnJv
cnMobV9pZ25vcmVUTFNFcnJvcnMpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRp
ZgorICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0SWdub3Jl
VExTRXJyb3JzKG1faWdub3JlVExTRXJyb3JzKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bv
b2xTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29s
U291cC5jcHAKaW5kZXggNzI2ODJlZGM0MzVmNzgyNzA0ODc5YjYxN2UyY2QwZWE5MjExZDg0ZC4u
YzNkYjBhMWMwOTBkMjI5MTU1NjhmN2Q0YTlkYzE3ODJlM2NiZWYyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Bvb2xTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwCkBAIC0y
NCw2ICsyNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKIAogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC00NiwzICs0Nyw1IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhCiB9CiAKIH0KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGFjMDk1NWIwNDIyYjM3
NDVkOTQyYmMwYWYyNmM5OWY5ZDdhNzM4YS4uZTAyNDJlMmEyMTI1MDJmNDk1NjkwNjdmZTI0ZmYz
YzdjMDg1MWVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTQ2MCw2ICsxNDYwLDcgQEAKIAkJQkM1NzUwOTgxMjY4RjNDNjAw
NkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1NzUwOTYxMjY4RjNDNjAwNkYwRjEyIC8qIFdlYlBv
cHVwTWVudVByb3h5TWFjLm1tICovOyB9OwogCQlCQzU3NTYxMzEyNkUwMTM4MDA2RjBGMTIgLyog
QVBJRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM1NzU2MTIxMjZFMDEzODAwNkYwRjEyIC8qIEFQSUVycm9yLmNwcCAqLzsgfTsKIAkJQkM1
OTU0ODkxNUM3ODY4NTAwRkQxRTNFIC8qIFdlYktpdDIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTk1NDg4MTVDNzg2ODUwMEZEMUUzRSAvKiBXZWJL
aXQyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
QkM1OTcwNzUxMTY1OTFEMDAwNTUxRkNBIC8qIFByb2Nlc3NNb2RlbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1OTcwNzQxMTY1OTFEMDAwNTUxRkNB
IC8qIFByb2Nlc3NNb2RlbC5oICovOyB9OwogCQlCQzVDNzVDODE0OTU0REE2MDBCQzQ3NzUgLyog
V0tDb25uZWN0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDNUM3NUM2MTQ5NTREQTYwMEJDNDc3NSAvKiBXS0Nvbm5lY3Rpb25JbnRl
cm5hbC5oICovOyB9OwogCQlCQzVEMjRBMTE2Q0MzQjlFMDA3RDU0NjEgLyogQ2hpbGRQcm9jZXNz
TWFpbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NUQyNDlGMTZDQzNCOUUwMDdENTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1tICovOyB9OwogCQlC
QzVEMjRBMjE2Q0MzQjlFMDA3RDU0NjEgLyogQ2hpbGRQcm9jZXNzTWFpbi5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUQyNDlGMTZDQzNCOUUwMDdE
NTQ2MSAvKiBDaGlsZFByb2Nlc3NNYWluLm1tICovOyB9OwpAQCAtMzczMSw2ICszNzMyLDcgQEAK
IAkJQkM1NzUwOTYxMjY4RjNDNjAwNkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5TWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUG9wdXBNZW51UHJveHlN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTc1NjEyMTI2RTAxMzgwMDZG
MEYxMiAvKiBBUElFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBUElFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNTk1NDg4MTVD
Nzg2ODUwMEZEMUUzRSAvKiBXZWJLaXQyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdDIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM1OTcwNzQxMTY1
OTFEMDAwNTUxRkNBIC8qIFByb2Nlc3NNb2RlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQcm9jZXNzTW9kZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1
Qzc1QzYxNDk1NERBNjAwQkM0Nzc1IC8qIFdLQ29ubmVjdGlvbkludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29ubmVjdGlvbkludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUQyNDlGMTZDQzNCOUUwMDdENTQ2MSAvKiBDaGlsZFBy
b2Nlc3NNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2hp
bGRQcm9jZXNzTWFpbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RDI0Qjgx
NkNDNDBCQjAwN0Q1NDYxIC8qIEJhc2VMZWdhY3lQcm9jZXNzLnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IEJhc2VMZWdhY3lQcm9jZXNzLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNjIzNiw2ICs2MjM4LDcgQEAKIAkJCQkxQUM3NTM3QTE4M0E5RkRCMDA3MkNCMTUgLyog
UGFnZUxvYWRTdGF0ZS5oICovLAogCQkJCTM3NzE2QTU5MTk1QjkxMDUwMEVFOEIxQiAvKiBQcm9j
ZXNzQXNzZXJ0aW9uLmNwcCAqLywKIAkJCQk4NkY5NTM2MDE4RkY0RkQ0MDAxREIyRUYgLyogUHJv
Y2Vzc0Fzc2VydGlvbi5oICovLAorCQkJCUJDNTk3MDc0MTE2NTkxRDAwMDU1MUZDQSAvKiBQcm9j
ZXNzTW9kZWwuaCAqLywKIAkJCQk4NkU2N0EyMjE5MEY0MTE4MDAwMDRBQjcgLyogUHJvY2Vzc1Ro
cm90dGxlci5jcHAgKi8sCiAJCQkJODZFNjdBMjExOTBGNDExODAwMDA0QUI3IC8qIFByb2Nlc3NU
aHJvdHRsZXIuaCAqLywKIAkJCQk4MzA0OEFFNTFBQ0E0NURDMDA4MkM4MzIgLyogUHJvY2Vzc1Ro
cm90dGxlckNsaWVudC5oICovLApAQCAtNzk4Niw2ICs3OTg5LDcgQEAKIAkJCQlFMUNDMUI5MDEy
RDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkY5NTM2
NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQkM1OTcwNzUxMTY1OTFEMDAwNTUxRkNBIC8qIFByb2Nlc3NNb2RlbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFByb2Nlc3NUaHJv
dHRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMDQ4QUU2MUFDQTQ1REMwMDgyQzgzMiAvKiBQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDdGMTMxMDFBNzAy
RkJBMDA5QTZGQkQgLyogUHJvY2Vzc1R5cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlBy
ZWZpeC5oCmluZGV4IGE5ZjE1MjE2NGRlY2ZlNzVhOTUyY2M3MzNjZmExYjQ2NmJiYWM4NjcuLjhi
MjFmOGY4ODBlNDcxYzYyZDQ2YzdiMTZhMjM2YzNmZmVhNTdlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJl
Zml4LmgKQEAgLTM2LDYgKzM2LDggQEAKIAogI2RlZmluZSBFTkFCTEVfV0VCX1BST0NFU1NfU0FO
REJPWCAxCiAKKyNkZWZpbmUgRU5BQkxFX05FVFdPUktfUFJPQ0VTUyAxCisKICNkZWZpbmUgRU5B
QkxFX0RBVEFCQVNFX1BST0NFU1MgMQogCiAjZGVmaW5lIEVOQUJMRV9NRU1PUllfU0FNUExFUiAx
CkBAIC01Nyw2ICs1OSw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUg
RU5BQkxFX05FVFdPUktfUFJPQ0VTUyAxCiAjZGVmaW5lIEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VS
Q0UgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmls
ZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Zp
bGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCmluZGV4IDdmNDRiZWFkMTM2ODZmNjU1NmYxY2Ey
ODY2ZTA0YWQzNjUyZDI0NGIuLmRhY2U1NzNmMTZhMzUzODQ2MzVhY2E3NTk5Mzg3MmJjMjFjZmQx
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVn
aXN0cnlQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Js
b2JSZWdpc3RyeVByb3h5LmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkJsb2JSZWdpc3RyeVByb3h5LmgiCiAKKyNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQorCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtMzgsNiArNDAsOCBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJGaWxlQmxvYlVSTChjb25zdCBX
ZWJDb3JlOjpVUkwmIHVybCwgUGFzc1JlZlB0cjxCbG9iRGF0YUZpbGVSZWZlcmVuY2U+IGZpbGUs
IGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiB7CisgICAgQVNTRVJUKFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnVzZXNOZXR3b3JrUHJvY2VzcygpKTsKKwogICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBleHRlbnNpb25IYW5kbGU7CiAKICAgICAvLyBGaWxlIHBhdGggY2FuIGJlIGVtcHR5
IHdoZW4gc3VibWl0dGluZyBhIGZvcm0gZmlsZSBpbnB1dCB3aXRob3V0IGEgZmlsZSwgc2VlIGJ1
ZyAxMTE3NzguCkBAIC00OSwyNiArNTMsMzYgQEAgdm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVn
aXN0ZXJGaWxlQmxvYlVSTChjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgUGFzc1JlZlB0cjwKIAog
dm9pZCBCbG9iUmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMKGNvbnN0IFVSTCYgdXJsLCBW
ZWN0b3I8QmxvYlBhcnQ+IGJsb2JQYXJ0cywgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKIHsK
KyAgICBBU1NFUlQoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudXNlc05ldHdvcmtQcm9jZXNzKCkp
OworCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
UmVnaXN0ZXJCbG9iVVJMKHVybCwgYmxvYlBhcnRzLCBjb250ZW50VHlwZSksIDApOwogfQogCiB2
b2lkIEJsb2JSZWdpc3RyeVByb3h5OjpyZWdpc3RlckJsb2JVUkwoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFVSTCYgc3JjVVJMKQogeworICAgIEFTU0VSVChXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS51
c2VzTmV0d29ya1Byb2Nlc3MoKSk7CisKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3
b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWdpc3RlckJsb2JVUkxGcm9tVVJMKHVybCwgc3JjVVJMKSwg
MCk7CiB9CiAKIHZvaWQgQmxvYlJlZ2lzdHJ5UHJveHk6OnVucmVnaXN0ZXJCbG9iVVJMKGNvbnN0
IFVSTCYgdXJsKQogeworICAgIEFTU0VSVChXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS51c2VzTmV0
d29ya1Byb2Nlc3MoKSk7CisKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29u
bmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpVbnJlZ2lzdGVyQmxvYlVSTCh1cmwpLCAwKTsKIH0KIAogdm9pZCBCbG9i
UmVnaXN0cnlQcm94eTo6cmVnaXN0ZXJCbG9iVVJMRm9yU2xpY2UoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFVSTCYgc3JjVVJMLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBlbmQpCiB7CisgICAg
QVNTRVJUKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVzZXNOZXR3b3JrUHJvY2VzcygpKTsKKwog
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlZ2lz
dGVyQmxvYlVSTEZvclNsaWNlKHVybCwgc3JjVVJMLCBzdGFydCwgZW5kKSwgMCk7CiB9CiAKIHVu
c2lnbmVkIGxvbmcgbG9uZyBCbG9iUmVnaXN0cnlQcm94eTo6YmxvYlNpemUoY29uc3QgVVJMJiB1
cmwpCiB7CisgICAgQVNTRVJUKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVzZXNOZXR3b3JrUHJv
Y2VzcygpKTsKKwogICAgIHVpbnQ2NF90IHJlc3VsdFNpemU7CiAgICAgaWYgKCFXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5j
KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6QmxvYlNpemUodXJsKSwg
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpCbG9iU2l6ZTo6UmVwbHko
cmVzdWx0U2l6ZSksIDApKQogICAgICAgICByZXR1cm4gMDsKQEAgLTc2LDMgKzkwLDUgQEAgdW5z
aWduZWQgbG9uZyBsb25nIEJsb2JSZWdpc3RyeVByb3h5OjpibG9iU2l6ZShjb25zdCBVUkwmIHVy
bCkKIH0KIAogfQorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgK
aW5kZXggYWQxYTdjNTRjZTQ0MGM2OTljNzFhOTNlODY0ZDdiNWVmZTcyYWRiMC4uOGNjMDY5YWU1
ZjI1MjhiZDAzMDIzNzRjNTY3M2E3ZmM4ZTIxYzlkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVByb3h5LmgKQEAgLTI2LDYgKzI2
LDggQEAKICNpZm5kZWYgQmxvYlJlZ2lzdHJ5UHJveHlfaAogI2RlZmluZSBCbG9iUmVnaXN0cnlQ
cm94eV9oCiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCiAjaW5jbHVkZSA8V2ViQ29y
ZS9CbG9iUmVnaXN0cnkuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Miw0ICs0NCw2IEBA
IHB1YmxpYzoKIAogfQogCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogI2Vu
ZGlmIC8vIEJsb2JSZWdpc3RyeVByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5k
ZXggZGUzZTVjMGMwYTM2Njg2NDg4MGRkODdkYTYwNTQ1ODViYjI4MGVhOS4uNzE0ODY1ZDZkMDM3
MTNjNWY2MmUwYWExYWUwM2M4MWJkZTQ4NmY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Nlc3Npb25JRC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQorCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC05NiwzICs5OCw1IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJl
c291cmNlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICNlbmRpZgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggY2FlODBhM2UyMGUwMDliNTAwNDliMmEwYzU3MjZkNjAz
MWFlZjJiMC4uMGQ1YWQwODQzYzIxMDYzYjg0MGFmYjJhYzQ2ZjA4ZmVhMWFmNDkwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKKyNpZiBFTkFCTEUo
TkVUV09SS19QUk9DRVNTKQorCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIERhdGFSZWZlcmVuY2U7
CiB9CkBAIC04MCw0ICs4Miw3IEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKworCiAjZW5kaWYgLy8gTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCmluZGV4IGMyNDA3ZjJjZTdhMmYwNmEwY2RiYjQ0OTkzZDgzMmVlZTg5YzliMzAuLmMx
Zjc4YzQxNmIxNTgzMjMwOWQ0OGMwZjY0ZjI3ZTg3YjUwMjg0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjAsNiArMjAsOCBAQAogIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VT
UykKKwogbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVy
IHsKIAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCkBAIC0yNywzICsyOSw1IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAjZW5k
aWYKIAogfQorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5jcHAKaW5kZXggODU3NzhhODNjZWRjZmRjYWRkY2NiOTkwZTA1MjY1ZDhhNzJh
Mzk3MC4uNmUzYWYzMDQxODlmNWY4NWQ5OTRkZTA4NTY5ZTJlNWY3NmM1OTg4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTUyLDYgKzUyLDggQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1N1YnJlc291cmNlTG9hZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisj
aWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjg0LDMgKzI4Niw1IEBAIHZvaWQgV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyOjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmgKaW5kZXggMjIxZTE3NDBmZTNjNWMxOTM2OWJlN2Q4NGQxYzExZGViYjY2MWI2
Zi4uYzMyMzA5YzA3ZmM4MjUzOGRhMTQyOGVlNTI2NDdiNDZhNmVjNWFiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCisjaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjsKQEAgLTc1LDQgKzc3LDYgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKKyNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCiAjZW5kaWYgLy8g
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGY0MWI3NzkxNjlj
N2E5NzY5M2RjOWQ2ZDAyY2E4ZDFkNWNkZTRlN2YuLjM3NTM3OTdjMmFjMjNkMWQ3ZjRhZjBiNmEy
YTcxODRiZWEwOTY3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9XZWJSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmNwcApAQCAtMjYsNiArMjYsOCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZGVyLmgiCiAKKyNpZiBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQorCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKQEAg
LTIxOSwzICsyMjEsNSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZGVyOjpjYW5BdXRoZW50aWNhdGVB
Z2FpbnN0UHJvdGVjdGlvblNwYWNlKGNvbnN0IFByb3RlY3Rpb25TcAogI2VuZGlmCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9h
ZGVyLmgKaW5kZXggM2E2MjAwOWY4M2Y4ZDMzMzUyOTMzZTFkOWUzYWY5MmRhMmU5MmNlZS4uNzk2
ODA2ZTZjM2VlMzJmMWVlM2I2MGExOGJlODI3ZTg1YmE4MDBhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLmgKQEAgLTI2
LDYgKzI2LDggQEAKICNpZm5kZWYgV2ViUmVzb3VyY2VMb2FkZXJfaAogI2RlZmluZSBXZWJSZXNv
dXJjZUxvYWRlcl9oCiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorCiAjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJTaGFy
ZWFibGVSZXNvdXJjZS5oIgpAQCAtOTIsNCArOTQsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAorI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisKICNlbmRp
ZiAvLyBXZWJSZXNvdXJjZUxvYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KaW5k
ZXggNjdmZDBkOWYyYjAzNzQ4NmY0NDc0OWRlMDE1YWZlYzI1M2YxOGE1MC4uMzk5NGQ5N2E4NWJl
YzdiN2IyYTQ5NjA3Y2E2NmUyMjEwMzBjOWFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRlci5tZXNzYWdl
cy5pbgpAQCAtMjAsNiArMjAsOCBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKwogbWVzc2FnZXMgLT4gV2ViUmVz
b3VyY2VMb2FkZXIgTGVnYWN5UmVjZWl2ZXIgewogICAgIFdpbGxTZW5kUmVxdWVzdChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRp
cmVjdFJlc3BvbnNlKQogICAgIERpZFNlbmREYXRhKHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0
X3QgdG90YWxCeXRlc1RvQmVTZW50KQpAQCAtMzcsMyArMzksNSBAQCBtZXNzYWdlcyAtPiBXZWJS
ZXNvdXJjZUxvYWRlciBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGlkUmVjZWl2ZVJlc291cmNlKFdl
YktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSByZXNvdXJjZSwgZG91YmxlIGZpbmlzaFRp
bWUpCiAjZW5kaWYKIH0KKworI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVCcm93c2VyRnVuY3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAppbmRleCBjYzZlNzRkOTk2NjdjYjUwZWEz
NzgzNmRhMGUzNmQ1ODBkNzAxNDI3Li44ZTg0ZjgwMzM0NDNjOGIxODMzM2U1ZmNkODBhNmE2MDcz
ZDAyYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKQEAgLTEwNTMs
NyArMTA1MywxMSBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplQnJvd3NlckZ1bmNzKE5QTmV0c2Nh
cGVGdW5jcyAmbmV0c2NhcGVGdW5jcykKICAgICBuZXRzY2FwZUZ1bmNzLnBvcHVwY29udGV4dG1l
bnUgPSAwOwogICAgIG5ldHNjYXBlRnVuY3MuY29udmVydHBvaW50ID0gMDsKICNlbmRpZgorI2lm
IEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAgbmV0c2NhcGVGdW5jcy51cmxyZWRpcmVjdHJl
c3BvbnNlID0gTlBOX1VSTFJlZGlyZWN0UmVzcG9uc2U7CisjZWxzZQorICAgIG5ldHNjYXBlRnVu
Y3MudXJscmVkaXJlY3RyZXNwb25zZSA9IDA7CisjZW5kaWYKIH0KICAgICAKIE5QTmV0c2NhcGVG
dW5jcyogbmV0c2NhcGVCcm93c2VyRnVuY3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKaW5k
ZXggYmQ5NWI0MzQ5OTdjNGI1YWNkYjY2ZTljOGMyMGUxYjBkNWJlYzI4NS4uNWY3ODk2MzdlYTRi
Njg0MGY0NGIyNTRmMjgwMjliMTIyYzljNDU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3Bw
CkBAIC00MDAsMTIgKzQwMCwxNiBAQCBib29sIE5ldHNjYXBlUGx1Z2luOjpnZXRBdXRoZW50aWNh
dGlvbkluZm8oY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhYwogCiB2b2lkIE5l
dHNjYXBlUGx1Z2luOjpyZWdpc3RlclJlZGlyZWN0KE5ldHNjYXBlUGx1Z2luU3RyZWFtKiBzdHJl
YW0sIGNvbnN0IFVSTCYgcmVxdWVzdFVSTCwgaW50IHJlZGlyZWN0UmVzcG9uc2VTdGF0dXMsIHZv
aWQqIG5vdGlmaWNhdGlvbkRhdGEpCiB7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAg
ICAvLyBOUFBfVVJMUmVkaXJlY3ROb3RpZnkgbWF5IHN5bmNocm9ub3VzbHkgcmVxdWVzdCB0aGlz
IHN0cmVhbSBiYWNrIG91dCwgc28gc2V0IGl0IGZpcnN0CiAgICAgbV9yZWRpcmVjdHMuc2V0KG5v
dGlmaWNhdGlvbkRhdGEsIHN0ZDo6bWFrZV9wYWlyKHN0cmVhbSwgcmVxdWVzdFVSTC5zdHJpbmco
KSkpOwogICAgIGlmICghTlBQX1VSTFJlZGlyZWN0Tm90aWZ5KHJlcXVlc3RVUkwuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgcmVkaXJlY3RSZXNwb25zZVN0YXR1cywgbm90aWZpY2F0aW9uRGF0YSkp
IHsKICAgICAgICAgbV9yZWRpcmVjdHMudGFrZShub3RpZmljYXRpb25EYXRhKTsKICAgICAgICAg
Y29udHJvbGxlcigpLT5jb250aW51ZVN0cmVhbUxvYWQoc3RyZWFtLT5zdHJlYW1JRCgpKTsKICAg
ICB9CisjZWxzZQorICAgIGNvbnRyb2xsZXIoKS0+Y29udGludWVTdHJlYW1Mb2FkKHN0cmVhbS0+
c3RyZWFtSUQoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBOZXRzY2FwZVBsdWdpbjo6dXJsUmVkaXJl
Y3RSZXNwb25zZSh2b2lkKiBub3RpZnlEYXRhLCBib29sIGFsbG93KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDhkMjJlYzlkNjQ1ZDM0NDM0NmEzOTAwOGM0YmM3MzNi
NmExMTFiM2QuLjQ0M2FjZWIxOTMzMWEzNzM4YjE5MjI3ZGE4Y2U1OGI0NTljNTU5MzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTI2LDEyICsyNiw5IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAKLSNp
bmNsdWRlICJCbG9iUmVnaXN0cnlQcm94eS5oIgogI2luY2x1ZGUgIkJsb2NraW5nUmVzcG9uc2VN
YXAuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiSGFuZ0RldGVjdGlv
bkRpc2FibGVyLmgiCi0jaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNz
YWdlcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1Z2luSW5mb1N0
b3JlLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKQEAgLTQ3LDcgKzQ0LDYgQEAKICNp
bmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29sb3IuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5oPgpAQCAtNjcsNiArNjMsMTMgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CiAKKyNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorI2luY2x1ZGUgIkJsb2JSZWdpc3RyeVByb3h5LmgiCisjaW5jbHVkZSAi
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTEwOSw1NiArMTEyLDExNCBAQCBQbHVnaW5TdHJhdGVneSogV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjcmVhdGVQbHVnaW5TdHJhdGVneSgpCiAKIFN0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OmNvb2tpZXNGb3JET00oY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNz
aW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksIGNvbnN0IFVSTCYgdXJsKQogeworI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpOwotICAgIFN0cmluZyByZXN1bHQ7Ci0gICAgaWYgKCF3ZWJQcm9jZXNzLm5ldHdv
cmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRm9yRE9NKFNlc3Npb25UcmFja2VyOjpzZXNz
aW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0ZvckRPTTo6UmVwbHkocmVzdWx0KSwgMCkpCi0gICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIGlmICh3ZWJQcm9j
ZXNzLnVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CisgICAgICAgIFN0cmluZyByZXN1bHQ7CisgICAg
ICAgIGlmICghd2ViUHJvY2Vzcy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0Zv
ckRPTShTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKHNlc3Npb24pLCBmaXJzdFBhcnR5LCB1cmwp
LCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNGb3JET006
OlJlcGx5KHJlc3VsdCksIDApKQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIFdlYkNvcmU6OmNv
b2tpZXNGb3JET00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsKTsKIH0KIAogdm9pZCBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiBjb29raWVTdHJpbmcpCiB7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
ICAgICBhdXRvJiB3ZWJQcm9jZXNzID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7Ci0gICAgd2Vi
UHJvY2Vzcy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTZXRDb29raWVzRnJvbURPTShTZXNzaW9u
VHJhY2tlcjo6c2Vzc2lvbklEKHNlc3Npb24pLCBmaXJzdFBhcnR5LCB1cmwsIGNvb2tpZVN0cmlu
ZyksIDApOworICAgIGlmICh3ZWJQcm9jZXNzLnVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CisgICAg
ICAgIHdlYlByb2Nlc3MubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2V0Q29va2llc0Zyb21ET00o
U2Vzc2lvblRyYWNrZXI6OnNlc3Npb25JRChzZXNzaW9uKSwgZmlyc3RQYXJ0eSwgdXJsLCBjb29r
aWVTdHJpbmcpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgV2Vi
Q29yZTo6c2V0Q29va2llc0Zyb21ET00oc2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCBjb29raWVT
dHJpbmcpOwogfQogCiBib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29va2llc0VuYWJsZWQo
Y29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFy
dHksIGNvbnN0IFVSTCYgdXJsKQogewotICAgIGJvb2wgcmVzdWx0OwotICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFi
bGVkKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoc2Vzc2lvbiksIGZpcnN0UGFydHksIHVybCks
IE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29va2llc0VuYWJsZWQ6
OlJlcGx5KHJlc3VsdCksIDApKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHJl
c3VsdDsKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIGF1dG8mIHdlYlByb2Nlc3Mg
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsKKyAgICBpZiAod2ViUHJvY2Vzcy51c2VzTmV0d29y
a1Byb2Nlc3MoKSkgeworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgaWYgKCF3ZWJQcm9j
ZXNzLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVzRW5hYmxlZChTZXNzaW9uVHJh
Y2tlcjo6c2Vzc2lvbklEKHNlc3Npb24pLCBmaXJzdFBhcnR5LCB1cmwpLCBNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZXNFbmFibGVkOjpSZXBseShyZXN1bHQp
LCAwKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiBXZWJDb3JlOjpjb29raWVzRW5hYmxlZChzZXNz
aW9uLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCiBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwpCiB7Ci0g
ICAgU3RyaW5nIHJlc3VsdDsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdv
cmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShTZXNz
aW9uVHJhY2tlcjo6c2Vzc2lvbklEKHNlc3Npb24pLCBmaXJzdFBhcnR5LCB1cmwpLCBNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlOjpSZXBseShyZXN1bHQpLCAwKSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAg
IHJldHVybiByZXN1bHQ7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICBhdXRvJiB3
ZWJQcm9jZXNzID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7CisgICAgaWYgKHdlYlByb2Nlc3Mu
dXNlc05ldHdvcmtQcm9jZXNzKCkpIHsKKyAgICAgICAgU3RyaW5nIHJlc3VsdDsKKyAgICAgICAg
aWYgKCF3ZWJQcm9jZXNzLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5
bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShTZXNzaW9uVHJhY2tlcjo6c2Vzc2lvbklEKHNlc3Npb24pLCBmaXJz
dFBhcnR5LCB1cmwpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNv
b2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlOjpSZXBseShyZXN1bHQpLCAwKSkKKyAgICAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisjZW5k
aWYKKworICAgIHJldHVybiBXZWJDb3JlOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShz
ZXNzaW9uLCBmaXJzdFBhcnR5LCB1cmwpOwogfQogCiBib29sIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6Z2V0UmF3Q29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNv
bnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiByYXdD
b29raWVzKQogewotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5l
Y3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OkdldFJhd0Nvb2tpZXMoU2Vzc2lvblRyYWNrZXI6OnNlc3Npb25JRChz
ZXNzaW9uKSwgZmlyc3RQYXJ0eSwgdXJsKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpHZXRSYXdDb29raWVzOjpSZXBseShyYXdDb29raWVzKSwgMCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gdHJ1ZTsKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9D
RVNTKQorICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsKKyAg
ICBpZiAod2ViUHJvY2Vzcy51c2VzTmV0d29ya1Byb2Nlc3MoKSkgeworICAgICAgICBpZiAoIXdl
YlByb2Nlc3MubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdldFJhd0Nvb2tpZXMoU2Vzc2lv
blRyYWNrZXI6OnNlc3Npb25JRChzZXNzaW9uKSwgZmlyc3RQYXJ0eSwgdXJsKSwgTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHZXRSYXdDb29raWVzOjpSZXBseShyYXdD
b29raWVzKSwgMCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIFdlYkNvcmU6OmdldFJhd0Nvb2tpZXMo
c2Vzc2lvbiwgZmlyc3RQYXJ0eSwgdXJsLCByYXdDb29raWVzKTsKIH0KIAogdm9pZCBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmRlbGV0ZUNvb2tpZShjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Npb24m
IHNlc3Npb24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUpCiB7Ci0g
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RGVsZXRl
Q29va2llKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoc2Vzc2lvbiksIHVybCwgY29va2llTmFt
ZSksIDApOworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgYXV0byYgd2ViUHJvY2Vz
cyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpOworICAgIGlmICh3ZWJQcm9jZXNzLnVzZXNOZXR3
b3JrUHJvY2VzcygpKSB7CisgICAgICAgIHdlYlByb2Nlc3MubmV0d29ya0Nvbm5lY3Rpb24oKS0+
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6RGVsZXRlQ29va2llKFNlc3Npb25UcmFja2VyOjpzZXNzaW9uSUQoc2Vzc2lvbiksIHVybCwg
Y29va2llTmFtZSksIDApOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBX
ZWJDb3JlOjpkZWxldGVDb29raWUoc2Vzc2lvbiwgdXJsLCBjb29raWVOYW1lKTsKIH0KIAogLy8g
TG9hZGVyU3RyYXRlZ3kKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiBSZXNvdXJjZUxv
YWRTY2hlZHVsZXIqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVzb3VyY2VMb2FkU2NoZWR1bGVy
KCkKIHsKLSAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcigpOworICAgIHN0YXRpYyBSZXNvdXJjZUxvYWRTY2hlZHVsZXIqIHNjaGVkdWxl
cjsKKyAgICBpZiAoIXNjaGVkdWxlcikgeworICAgICAgICBhdXRvJiB3ZWJQcm9jZXNzID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCk7CisgICAgICAgIGlmICh3ZWJQcm9jZXNzLnVzZXNOZXR3b3Jr
UHJvY2VzcygpKQorICAgICAgICAgICAgc2NoZWR1bGVyID0gJndlYlByb2Nlc3Mud2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjaGVkdWxlciA9
IFdlYkNvcmU6OnJlc291cmNlTG9hZFNjaGVkdWxlcigpOworICAgIH0KKyAgICAKKyAgICByZXR1
cm4gc2NoZWR1bGVyOwogfQogCiB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQgbG9u
ZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBDbGllbnRDcmVkZW50aWFsUG9s
aWN5IGNsaWVudENyZWRlbnRpYWxQb2xpY3ksIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogeworICAgIGF1dG8mIHdl
YlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoIXdlYlByb2Nlc3Mu
dXNlc05ldHdvcmtQcm9jZXNzKCkpIHsKKyAgICAgICAgTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoY29udGV4dCwgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgcmVxdWVz
dCwgc3RvcmVkQ3JlZGVudGlhbHMsIGNsaWVudENyZWRlbnRpYWxQb2xpY3ksIGVycm9yLCByZXNw
b25zZSwgZGF0YSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0KiB3ZWJDb250ZXh0ID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dCo+KGNvbnRleHQpOwogICAgIC8vIEZJWE1FOiBTb21lIGVudGl0aWVzIGluIFdlYkNv
cmUgdXNlIFdlYkNvcmUncyAiRW1wdHlGcmFtZUxvYWRlckNsaWVudCIgaW5zdGVhZCBvZiBoYXZp
bmcgYSBwcm9wZXIgV2ViRnJhbWVMb2FkZXJDbGllbnQuCiAgICAgLy8gRW1wdHlGcmFtZUxvYWRl
ckNsaWVudCBzaG91bGRuJ3QgZXhpc3QgYW5kIGV2ZXJ5dGhpbmcgc2hvdWxkIGJlIHVzaW5nIGEg
V2ViRnJhbWVMb2FkZXJDbGllbnQsCkBAIC0xODIsNyArMjQzLDcgQEAgdm9pZCBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJs
ZXI7CiAKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9u
KCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2Fk
OjpSZXBseShlcnJvciwgcmVzcG9uc2UsIGRhdGEpLCAwKSkgeworICAgIGlmICghd2ViUHJvY2Vz
cy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZChsb2Fk
UGFyYW1ldGVycyksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVy
Zm9ybVN5bmNocm9ub3VzTG9hZDo6UmVwbHkoZXJyb3IsIHJlc3BvbnNlLCBkYXRhKSwgMCkpIHsK
ICAgICAgICAgcmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7CiAgICAgICAgIGVycm9yID0g
aW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsKICAgICB9CkBAIC0xOTUsNiArMjU2LDEyIEBA
IHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQaW5nSGFuZGxlKE5ldHdvcmtpbmdD
b250ZXh0KiBuZXR3b3JraW5nQ29udGV4CiAgICAgaWYgKCFuZXR3b3JraW5nQ29udGV4dCkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpOworICAgIGlmICghd2ViUHJvY2Vzcy51c2VzTmV0d29ya1Byb2Nlc3MoKSkgeworICAg
ICAgICBMb2FkZXJTdHJhdGVneTo6Y3JlYXRlUGluZ0hhbmRsZShuZXR3b3JraW5nQ29udGV4dCwg
cmVxdWVzdCwgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dCogd2ViQ29udGV4dCA9IHN0YXRp
Y19jYXN0PFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQqPihuZXR3b3JraW5nQ29udGV4dCk7CiAg
ICAgV2ViRnJhbWVMb2FkZXJDbGllbnQqIHdlYkZyYW1lTG9hZGVyQ2xpZW50ID0gd2ViQ29udGV4
dC0+d2ViRnJhbWVMb2FkZXJDbGllbnQoKTsKICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSB3ZWJG
cmFtZUxvYWRlckNsaWVudCA/IHdlYkZyYW1lTG9hZGVyQ2xpZW50LT53ZWJGcmFtZSgpIDogbnVs
bHB0cjsKQEAgLTIwNiwxMyArMjczLDE2IEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
cmVhdGVQaW5nSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBuZXR3b3JraW5nQ29udGV4CiAgICAg
bG9hZFBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlID8gQWxsb3dTdG9yZWRDcmVkZW50aWFscyA6IERvTm90QWxsb3dTdG9yZWRDcmVk
ZW50aWFsczsKICAgICBsb2FkUGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0ID0gbmV0d29ya2luZ0NvbnRleHQtPnNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QoKTsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdv
cmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkxvYWRQaW5nKGxvYWRQYXJhbWV0ZXJzKSwgMCk7CisgICAgd2Vi
UHJvY2Vzcy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpMb2FkUGluZyhsb2FkUGFyYW1ldGVycyks
IDApOwogfQogCiBCbG9iUmVnaXN0cnkqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlQmxv
YlJlZ2lzdHJ5KCkKIHsKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnVzZXNOZXR3
b3JrUHJvY2VzcygpKQorICAgICAgICByZXR1cm4gTG9hZGVyU3RyYXRlZ3k6OmNyZWF0ZUJsb2JS
ZWdpc3RyeSgpOwogICAgIHJldHVybiBuZXcgQmxvYlJlZ2lzdHJ5UHJveHk7ICAgIAogfQorI2Vu
ZGlmCiAKIC8vIFBsdWdpblN0cmF0ZWd5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5o
CmluZGV4IGViOWExMzI0ODgxZmY0YTIxMDBjODZkNzQyMzYzZmFlMmYyZDAyODIuLmM1ODQxYWEy
OTY0ZDdiNDZjMjg0NDkyZmVmNDM3ZWI3YzViZWJjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaApAQCAtNTksMTAgKzU5LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZUNvb2tpZShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25z
dCBXZWJDb3JlOjpVUkwmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIC8vIFdlYkNv
cmU6OkxvYWRlclN0cmF0ZWd5CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICAgICB2aXJ0
dWFsIFdlYkNvcmU6OlJlc291cmNlTG9hZFNjaGVkdWxlciogcmVzb3VyY2VMb2FkU2NoZWR1bGVy
KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHko
V2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQqLCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9hZElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzLCBXZWJDb3JlOjpDbGllbnRDcmVkZW50aWFsUG9saWN5LCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIFZlY3RvcjxjaGFyPiYg
ZGF0YSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpCbG9iUmVnaXN0cnkqIGNyZWF0
ZUJsb2JSZWdpc3RyeSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVQaW5nSGFu
ZGxlKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0KiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSkgb3ZlcnJpZGU7CisjZW5kaWYKIAog
ICAgIC8vIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5CiAgICAgdmlydHVhbCB2b2lkIHJlZnJlc2hQ
bHVnaW5zKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcAppbmRleCBkYzJhNTBjNjIzOWY2Y2U3MWIwNDJmYzAzYzZlYmY5MGExMzU0
NTZjLi5mYTA1NDA3M2U4MGMzOWU4ZTI3M2JkZmMyMTEwYzllYTJkNjFkN2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTMzLDEzICsz
MywxMCBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgogI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVNj
cmlwdFdvcmxkLmgiCi0jaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNz
YWdlcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
IlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRs
ZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEb2N1bWVudExvYWRlci5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgpAQCAt
ODQsNiArODEsMTIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNl
bmRpZgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjZW5kaWYK
KwogI2lmbmRlZiBOREVCVUcKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+
CiAjZW5kaWYKQEAgLTI1NCw5ICsyNTcsMjMgQEAgdm9pZCBXZWJGcmFtZTo6c3RhcnREb3dubG9h
ZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAgICAgbV9wb2xpY3lE
b3dubG9hZElEID0gMDsKIAogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKTsKKyNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQorICAgIEFTU0VSVCh3ZWJQcm9jZXNz
LnVzZXNOZXR3b3JrUHJvY2VzcygpKTsKKyNlbmRpZgogICAgIFNlc3Npb25JRCBzZXNzaW9uSUQg
PSBwYWdlKCkgPyBwYWdlKCktPnNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCk7Ci0gICAgd2ViUHJvY2Vzcy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTdGFydERvd25s
b2FkKHNlc3Npb25JRCwgcG9saWN5RG93bmxvYWRJRCwgcmVxdWVzdCksIDApOwotICAgIHJldHVy
bjsKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQorICAgIGlmICh3ZWJQcm9jZXNzLnVzZXNO
ZXR3b3JrUHJvY2VzcygpKSB7CisgICAgICAgIHdlYlByb2Nlc3MubmV0d29ya0Nvbm5lY3Rpb24o
KS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6U3RhcnREb3dubG9hZChzZXNzaW9uSUQsIHBvbGljeURvd25sb2FkSUQsIHJlcXVlc3Qp
LCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisjaWYgVVNFKE5FVFdPUktf
U0VTU0lPTikKKyAgICAvLyBVc2luZyBORVRXT1JLX1NFU1NJT04gcmVxdWlyZXMgdGhlIHVzZSBv
ZiBhIG5ldHdvcmsgcHJvY2Vzcy4KKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
I2Vsc2UKKyAgICB3ZWJQcm9jZXNzLmRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQoc2Vz
c2lvbklELCBwb2xpY3lEb3dubG9hZElELCByZXF1ZXN0KTsKKyNlbmRpZgogfQogCiB2b2lkIFdl
YkZyYW1lOjpjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIq
IGRvY3VtZW50TG9hZGVyLCBTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpAQCAtMjY5LDEy
ICsyODYsMzkgQEAgdm9pZCBXZWJGcmFtZTo6Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25s
b2FkKERvY3VtZW50TG9hZGVyKiBkb2N1bWVudExvYWRlciwKICAgICBTdWJyZXNvdXJjZUxvYWRl
ciogbWFpblJlc291cmNlTG9hZGVyID0gZG9jdW1lbnRMb2FkZXItPm1haW5SZXNvdXJjZUxvYWRl
cigpOwogCiAgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpOwot
ICAgIC8vIFVzZSAwIHRvIGluZGljYXRlIHRoYXQgdGhlIHJlc291cmNlIGxvYWQgY2FuJ3QgYmUg
Y29udmVydGVkIGFuZCBhIG5ldyBkb3dubG9hZCBtdXN0IGJlIHN0YXJ0ZWQuCi0gICAgLy8gVGhp
cyBjYW4gaGFwcGVuIGlmIHRoZXJlIGlzIG5vIGxvYWRlciBiZWNhdXNlIHRoZSBtYWluIHJlc291
cmNlIGlzIGluIHRoZSBXZWJDb3JlIG1lbW9yeSBjYWNoZSwKLSAgICAvLyBvciBiZWNhdXNlIHRo
ZSBjb252ZXJzaW9uIHdhcyBhdHRlbXB0ZWQgd2hlbiBub3QgY2FsbGluZyBTdWJyZXNvdXJjZUxv
YWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKCkuCi0gICAgdWludDY0X3QgbWFpblJlc291cmNlTG9h
ZElkZW50aWZpZXIgPSBtYWluUmVzb3VyY2VMb2FkZXIgPyBtYWluUmVzb3VyY2VMb2FkZXItPmlk
ZW50aWZpZXIoKSA6IDA7CisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyNpZiBVU0UoTkVU
V09SS19TRVNTSU9OKQorICAgIEFTU0VSVCh3ZWJQcm9jZXNzLnVzZXNOZXR3b3JrUHJvY2Vzcygp
KTsKKyNlbmRpZgorICAgIGlmICh3ZWJQcm9jZXNzLnVzZXNOZXR3b3JrUHJvY2VzcygpKSB7Cisg
ICAgICAgIC8vIFVzZSAwIHRvIGluZGljYXRlIHRoYXQgdGhlIHJlc291cmNlIGxvYWQgY2FuJ3Qg
YmUgY29udmVydGVkIGFuZCBhIG5ldyBkb3dubG9hZCBtdXN0IGJlIHN0YXJ0ZWQuCisgICAgICAg
IC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB0aGVyZSBpcyBubyBsb2FkZXIgYmVjYXVzZSB0aGUgbWFp
biByZXNvdXJjZSBpcyBpbiB0aGUgV2ViQ29yZSBtZW1vcnkgY2FjaGUsCisgICAgICAgIC8vIG9y
IGJlY2F1c2UgdGhlIGNvbnZlcnNpb24gd2FzIGF0dGVtcHRlZCB3aGVuIG5vdCBjYWxsaW5nIFN1
YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoKS4KKyAgICAgICAgdWludDY0X3Qg
bWFpblJlc291cmNlTG9hZElkZW50aWZpZXI7CisgICAgICAgIGlmIChtYWluUmVzb3VyY2VMb2Fk
ZXIpCisgICAgICAgICAgICBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciA9IG1haW5SZXNvdXJj
ZUxvYWRlci0+aWRlbnRpZmllcigpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtYWluUmVz
b3VyY2VMb2FkSWRlbnRpZmllciA9IDA7CisKKyAgICAgICAgd2ViUHJvY2Vzcy5uZXR3b3JrQ29u
bmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoc2Vzc2lvbklE
LCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgcG9saWN5RG93bmxvYWRJRCwgcmVxdWVzdCwg
cmVzcG9uc2UpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgogCi0gICAgd2Vi
UHJvY2Vzcy5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb252ZXJ0TWFpblJlc291cmNlTG9hZFRv
RG93bmxvYWQoc2Vzc2lvbklELCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgcG9saWN5RG93
bmxvYWRJRCwgcmVxdWVzdCwgcmVzcG9uc2UpLCAwKTsKKyAgICBpZiAoIW1haW5SZXNvdXJjZUxv
YWRlcikgeworICAgICAgICAvLyBUaGUgbWFpbiByZXNvdXJjZSBoYXMgYWxyZWFkeSBiZWVuIGxv
YWRlZC4gU3RhcnQgYSBuZXcgZG93bmxvYWQgaW5zdGVhZC4KKyNpZiAhVVNFKE5FVFdPUktfU0VT
U0lPTikKKyAgICAgICAgd2ViUHJvY2Vzcy5kb3dubG9hZE1hbmFnZXIoKS5zdGFydERvd25sb2Fk
KHNlc3Npb25JRCwgcG9saWN5RG93bmxvYWRJRCwgcmVxdWVzdCk7CisjZW5kaWYKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCisgICAgLy8gVXNpbmcg
TkVUV09SS19TRVNTSU9OIHJlcXVpcmVzIHRoZSB1c2Ugb2YgYSBuZXR3b3JrIHByb2Nlc3MuCisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbHNlCisgICAgd2ViUHJvY2Vzcy5k
b3dubG9hZE1hbmFnZXIoKS5jb252ZXJ0SGFuZGxlVG9Eb3dubG9hZChwb2xpY3lEb3dubG9hZElE
LCBkb2N1bWVudExvYWRlci0+bWFpblJlc291cmNlTG9hZGVyKCktPmhhbmRsZSgpLCByZXF1ZXN0
LCByZXNwb25zZSk7CisjZW5kaWYKIH0KIAogU3RyaW5nIFdlYkZyYW1lOjpzb3VyY2UoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZDliMGE3Yjkx
OWFjYzJkNTU2ZjgzMjBmMDFhNjk1OGYyOWEzOTg0YS4uMzhhNGQ4ZmE5MmY1OWU2YTc5MmE2YWRi
Nzg1OWY2MTQ0MTIzNjY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NN
ZXNzYWdlcy5oIgotI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1
ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIlNlc3Npb25U
cmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlzdGljc0RhdGEuaCIKQEAgLTYxLDcgKzYwLDYgQEAK
ICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9v
bE1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKLSNpbmNs
dWRlICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5o
IgogI2luY2x1ZGUgIldlYnNpdGVEYXRhVHlwZXMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU0xvY2suaD4KQEAgLTEwMyw5ICsxMDEsMTIgQEAKICNpbmNsdWRlICJPYmpDT2JqZWN0R3Jh
cGguaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKICNpZiBQTEFURk9S
TShDT0NPQSkKICNpbmNsdWRlICJDb29raWVTdG9yYWdlU2hpbS5oIgogI2VuZGlmCisjaW5jbHVk
ZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCisjZW5kaWYKIAogI2lmIEVOQUJMRShTRUNf
SVRFTV9TSElNKQogI2luY2x1ZGUgIlNlY0l0ZW1TaGltLmgiCkBAIC0xMjMsNiArMTI0LDEwIEBA
CiAjaW5jbHVkZSAiV2ViQmF0dGVyeU1hbmFnZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKE5F
VFdPUktfUFJPQ0VTUykKKyNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCIKKyNl
bmRpZgorCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvUmVtb3RlSW5zcGVjdG9yLmg+CiAjZW5kaWYKQEAgLTE1Niw4ICsxNjEsMTEgQEAgV2Vi
UHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgLCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQo
ZmFsc2UpCiAgICAgLCBtX3RleHRDaGVja2VyU3RhdGUoKQogICAgICwgbV9pY29uRGF0YWJhc2VQ
cm94eShuZXcgV2ViSWNvbkRhdGFiYXNlUHJveHkodGhpcykpCisjaWYgRU5BQkxFKE5FVFdPUktf
UFJPQ0VTUykKKyAgICAsIG1fdXNlc05ldHdvcmtQcm9jZXNzKGZhbHNlKQogICAgICwgbV93ZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIobmV3IFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcikKICAgICAs
IG1fZG5zUHJlZmV0Y2hIeXN0ZXJlcmlzKFt0aGlzXShIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsg
aWYgKHN0YXRlID09IEh5c3RlcmVzaXNTdGF0ZTo6U3RvcHBlZCkgbV9kbnNQcmVmZXRjaGVkSG9z
dHMuY2xlYXIoKTsgfSkKKyNlbmRpZgogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQog
ICAgICwgbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIoUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb25NYW5hZ2VyOjpjcmVhdGUoKSkKICNlbmRpZgpAQCAtMjQ0LDEwICsyNTIsMzQgQEAgdm9p
ZCBXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qIGNvbm5l
Y3Rpb24pCiAgICAgY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpOwogfQog
Cit2b2lkIFdlYlByb2Nlc3M6OmRpZENyZWF0ZURvd25sb2FkKCkKK3sKKyAgICBkaXNhYmxlVGVy
bWluYXRpb24oKTsKK30KKwordm9pZCBXZWJQcm9jZXNzOjpkaWREZXN0cm95RG93bmxvYWQoKQor
eworICAgIGVuYWJsZVRlcm1pbmF0aW9uKCk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiogV2ViUHJv
Y2Vzczo6ZG93bmxvYWRQcm94eUNvbm5lY3Rpb24oKQoreworICAgIHJldHVybiBwYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpOworfQorCitBdXRoZW50aWNhdGlvbk1hbmFnZXImIFdlYlByb2Nlc3M6
OmRvd25sb2Fkc0F1dGhlbnRpY2F0aW9uTWFuYWdlcigpCit7CisgICAgcmV0dXJuICpzdXBwbGVt
ZW50PEF1dGhlbnRpY2F0aW9uTWFuYWdlcj4oKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzOjppbml0
aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVy
cykKIHsKICAgICBBU1NFUlQobV9wYWdlTWFwLmlzRW1wdHkoKSk7CiAKKyNpZiBFTkFCTEUoTkVU
V09SS19QUk9DRVNTKQorICAgIG1fdXNlc05ldHdvcmtQcm9jZXNzID0gcGFyYW1ldGVycy51c2Vz
TmV0d29ya1Byb2Nlc3M7CisjZW5kaWYKKwogI2lmIE9TKExJTlVYKQogICAgIFdlYkNvcmU6Ok1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6UmVsaWVmTG9nZ2VyOjpzZXRMb2dnaW5nRW5hYmxlZChwYXJh
bWV0ZXJzLnNob3VsZEVuYWJsZU1lbW9yeVByZXNzdXJlUmVsaWVmTG9nZ2luZyk7CiAjZW5kaWYK
QEAgLTMyNiwxMCArMzU4LDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nl
c3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgaWYgKHBh
cmFtZXRlcnMuc2hvdWxkVXNlVGVzdGluZ05ldHdvcmtTZXNzaW9uKQogICAgICAgICBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKTsKIAorI2lmIEVOQUJM
RShORVRXT1JLX1BST0NFU1MpCiAgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7
CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBDb29raWVTdG9yYWdlU2hpbTo6c2luZ2xldG9u
KCkuaW5pdGlhbGl6ZSgpOworICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSkKKyAgICAgICAg
Q29va2llU3RvcmFnZVNoaW06OnNpbmdsZXRvbigpLmluaXRpYWxpemUoKTsKKyNlbmRpZgogI2Vu
ZGlmCiAgICAgc2V0VGVybWluYXRpb25UaW1lb3V0KHBhcmFtZXRlcnMudGVybWluYXRpb25UaW1l
b3V0KTsKIApAQCAtMzYxLDggKzM5NiwxMiBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVX
ZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2Vu
ZGlmCiB9CiAKKyNpZiBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzOjpl
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKQogeworICAgIGlmICghbV91c2VzTmV0d29y
a1Byb2Nlc3MpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChtX25ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCkBAIC0zODMsNiArNDIyLDcgQEAgdm9pZCBXZWJQ
cm9jZXNzOjplbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKQogICAgICAgICByZXR1cm47
CiAgICAgbV9uZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24gPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b246OmNyZWF0ZShjb25uZWN0aW9uSWRlbnRpZmllcik7CiB9CisjZW5kaWYgLy8gRU5BQkxFKE5F
VFdPUktfUFJPQ0VTUykKIAogdm9pZCBXZWJQcm9jZXNzOjpyZWdpc3RlclVSTFNjaGVtZUFzRW1w
dHlEb2N1bWVudChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkKIHsKQEAgLTQ3MSw2ICs1MTEsMTQg
QEAgdm9pZCBXZWJQcm9jZXNzOjpkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihTZXNzaW9u
SUQgc2Vzc2lvbklEKQogI2VuZGlmCiB9CiAKK0Rvd25sb2FkTWFuYWdlciYgV2ViUHJvY2Vzczo6
ZG93bmxvYWRNYW5hZ2VyKCkKK3sKKyAgICBBU1NFUlQoIXVzZXNOZXR3b3JrUHJvY2VzcygpKTsK
KworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxEb3dubG9hZE1hbmFnZXI+IGRvd25sb2FkTWFu
YWdlcih0aGlzKTsKKyAgICByZXR1cm4gZG93bmxvYWRNYW5hZ2VyOworfQorCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXImIFdl
YlByb2Nlc3M6OnBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcigpCiB7CkBAIC01MzMsNiAr
NTgxLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpyZW1vdmVXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCkK
IGJvb2wgV2ViUHJvY2Vzczo6c2hvdWxkVGVybWluYXRlKCkKIHsKICAgICBBU1NFUlQobV9wYWdl
TWFwLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKHVzZXNOZXR3b3JrUHJvY2VzcygpIHx8ICFkb3du
bG9hZE1hbmFnZXIoKS5pc0Rvd25sb2FkaW5nKCkpOwogCiAgICAgLy8gRklYTUU6IHRoZSBTaG91
bGRUZXJtaW5hdGUgbWVzc2FnZSBzaG91bGQgYWxzbyBzZW5kIHRlcm1pbmF0aW9uIHBhcmFtZXRl
cnMsIHN1Y2ggYXMgYW55IHNlc3Npb24gY29va2llcyB0aGF0IG5lZWQgdG8gYmUgcHJlc2VydmVk
LgogICAgIGJvb2wgc2hvdWxkVGVybWluYXRlID0gZmFsc2U7CkBAIC05NzYsOCArMTAyNSwyMCBA
QCB2b2lkIFdlYlByb2Nlc3M6OnNldEluamVjdGVkQnVuZGxlUGFyYW1ldGVycyhjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIHZhbHVlKQogICAgIGluamVjdGVkQnVuZGxlLT5zZXRCdW5kbGVQYXJh
bWV0ZXJzKHZhbHVlKTsKIH0KIAorYm9vbCBXZWJQcm9jZXNzOjp1c2VzTmV0d29ya1Byb2Nlc3Mo
KSBjb25zdAoreworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgcmV0dXJuIG1fdXNl
c05ldHdvcmtQcm9jZXNzOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwor
I2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIFdl
YlByb2Nlc3M6Om5ldHdvcmtDb25uZWN0aW9uKCkKIHsKKyAgICBBU1NFUlQobV91c2VzTmV0d29y
a1Byb2Nlc3MpOworCiAgICAgLy8gSWYgd2UndmUgbG9zdCBvdXIgY29ubmVjdGlvbiB0byB0aGUg
bmV0d29yayBwcm9jZXNzIChlLmcuIGl0IGNyYXNoZWQpIHRyeSB0byByZS1lc3RhYmxpc2ggaXQu
CiAgICAgaWYgKCFtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbikKICAgICAgICAgZW5zdXJlTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKCk7CkBAIC0xMDAzLDYgKzEwNjQsNyBAQCBXZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXImIFdlYlByb2Nlc3M6OndlYlJlc291cmNlTG9hZFNjaGVkdWxlcigpCiB7
CiAgICAgcmV0dXJuICptX3dlYlJlc291cmNlTG9hZFNjaGVkdWxlcjsKIH0KKyNlbmRpZiAvLyBF
TkFCTEVEKE5FVFdPUktfUFJPQ0VTUykKIAogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQog
dm9pZCBXZWJQcm9jZXNzOjp3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKiBjb25uZWN0aW9uKQpAQCAtMTA0Niw2ICsxMTA4
LDI3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZW5zdXJlV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0
aW9uKCkKIAogI2VuZGlmIC8vIEVOQUJMRUQoREFUQUJBU0VfUFJPQ0VTUykKIAordm9pZCBXZWJQ
cm9jZXNzOjpkb3dubG9hZFJlcXVlc3QoU2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZG93
bmxvYWRJRCwgdWludDY0X3QgaW5pdGlhdGluZ1BhZ2VJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQoreworICAgIFdlYlBhZ2UqIGluaXRpYXRpbmdQYWdlID0gaW5pdGlhdGluZ1Bh
Z2VJRCA/IHdlYlBhZ2UoaW5pdGlhdGluZ1BhZ2VJRCkgOiAwOworCisgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3RXaXRoT3JpZ2luYWxVUkwgPSByZXF1ZXN0OworICAgIGlmIChpbml0aWF0aW5n
UGFnZSkKKyAgICAgICAgaW5pdGlhdGluZ1BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS5zZXRP
cmlnaW5hbFVSTEZvckRvd25sb2FkUmVxdWVzdChyZXF1ZXN0V2l0aE9yaWdpbmFsVVJMKTsKKwor
ICAgIGRvd25sb2FkTWFuYWdlcigpLnN0YXJ0RG93bmxvYWQoc2Vzc2lvbklELCBkb3dubG9hZElE
LCByZXF1ZXN0V2l0aE9yaWdpbmFsVVJMKTsKK30KKwordm9pZCBXZWJQcm9jZXNzOjpyZXN1bWVE
b3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJl
c3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgV2ViS2l0OjpTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCit7CisgICAgZG93bmxvYWRNYW5h
Z2VyKCkucmVzdW1lRG93bmxvYWQoZG93bmxvYWRJRCwgcmVzdW1lRGF0YSwgcGF0aCwgc2FuZGJv
eEV4dGVuc2lvbkhhbmRsZSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzczo6Y2FuY2VsRG93bmxvYWQo
dWludDY0X3QgZG93bmxvYWRJRCkKK3sKKyAgICBkb3dubG9hZE1hbmFnZXIoKS5jYW5jZWxEb3du
bG9hZChkb3dubG9hZElEKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vz
c2liaWxpdHkoYm9vbCBmbGFnKQogewogICAgIFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldEVu
aGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoZmxhZyk7CkBAIC0xMzg3LDEyICsxNDcw
LDE4IEBAIHZvaWQgV2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBob3N0bmFt
ZSkKICAgICBpZiAoaG9zdG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAobV9kbnNQcmVmZXRjaGVkSG9zdHMuYWRkKGhvc3RuYW1lKS5pc05ld0VudHJ5KQotICAgICAg
ICBuZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQcmVmZXRjaEROUyhob3N0bmFtZSksIDApOwotICAg
IC8vIFRoZSBETlMgcHJlZmV0Y2hlZCBob3N0cyBjYWNoZSBpcyBvbmx5IHRvIGF2b2lkIGFza2lu
ZyBmb3IgdGhlIHNhbWUgaG9zdHMgdG9vIG1hbnkgdGltZXMKLSAgICAvLyBpbiBhIHZlcnkgc2hv
cnQgcGVyaW9kIG9mIHRpbWUsIHByb2R1Y2luZyBhIGxvdCBvZiBJUEMgdHJhZmZpYy4gU28gd2Ug
Y2xlYXIgdGhpcyBjYWNoZSBhZnRlcgotICAgIC8vIHNvbWUgdGltZSBvZiBubyBETlMgcmVxdWVz
dHMuCi0gICAgbV9kbnNQcmVmZXRjaEh5c3RlcmVyaXMuaW1wdWxzZSgpOworI2lmIEVOQUJMRShO
RVRXT1JLX1BST0NFU1MpCisgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpKSB7CisgICAgICAg
IGlmIChtX2Ruc1ByZWZldGNoZWRIb3N0cy5hZGQoaG9zdG5hbWUpLmlzTmV3RW50cnkpCisgICAg
ICAgICAgICBuZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQcmVmZXRjaEROUyhob3N0bmFtZSksIDAp
OworICAgICAgICAvLyBUaGUgRE5TIHByZWZldGNoZWQgaG9zdHMgY2FjaGUgaXMgb25seSB0byBh
dm9pZCBhc2tpbmcgZm9yIHRoZSBzYW1lIGhvc3RzIHRvbyBtYW55IHRpbWVzCisgICAgICAgIC8v
IGluIGEgdmVyeSBzaG9ydCBwZXJpb2Qgb2YgdGltZSwgcHJvZHVjaW5nIGEgbG90IG9mIElQQyB0
cmFmZmljLiBTbyB3ZSBjbGVhciB0aGlzIGNhY2hlIGFmdGVyCisgICAgICAgIC8vIHNvbWUgdGlt
ZSBvZiBubyBETlMgcmVxdWVzdHMuCisgICAgICAgIG1fZG5zUHJlZmV0Y2hIeXN0ZXJlcmlzLmlt
cHVsc2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorICAgIFdlYkNvcmU6OnBy
ZWZldGNoRE5TKGhvc3RuYW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDQ3NDk0NTk2MDBhOTJiZjA2MDg5ZGMy
ZTgwMzAyNWI4ZjJlZmRhOTMuLjI3MDA2ZTViMDdjZDIzM2VhNWQyNGQyOWJiZGRmYmVmMmYxMGY1
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbmNsdWRlICJDYWNoZU1vZGVsLmgiCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzLmgi
CisjaW5jbHVkZSAiRG93bmxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIK
ICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaCIKQEAgLTcwLDkgKzcxLDkgQEAgc3RydWN0IFNlY3VyaXR5
T3JpZ2luRGF0YTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIERvd25sb2FkTWFuYWdl
cjsKIGNsYXNzIEV2ZW50RGlzcGF0Y2hlcjsKIGNsYXNzIEluamVjdGVkQnVuZGxlOwotY2xhc3Mg
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOwogY2xhc3MgT2JqQ09iamVjdEdyYXBoOwogY2xhc3Mg
VXNlckRhdGE7CiBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M7CkBAIC04MSwxNyArODIs
MjIgQEAgY2xhc3MgV2ViSWNvbkRhdGFiYXNlUHJveHk7CiBjbGFzcyBXZWJQYWdlOwogY2xhc3Mg
V2ViUGFnZUdyb3VwUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzU3VwcGxlbWVudDsKLWNsYXNzIFdl
YlJlc291cmNlTG9hZFNjaGVkdWxlcjsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
Owogc3RydWN0IFdlYlBhZ2VHcm91cERhdGE7CiBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsK
IHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwogCisjaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKK2NsYXNzIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKK2NsYXNzIFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NF
U1MpCiBjbGFzcyBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb247CiAjZW5kaWYKIAotY2xh
c3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBDaGlsZFByb2Nlc3MgeworY2xhc3MgV2ViUHJvY2VzcyA6
IHB1YmxpYyBDaGlsZFByb2Nlc3MsIHByaXZhdGUgRG93bmxvYWRNYW5hZ2VyOjpDbGllbnQgewor
ICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxEb3dubG9hZE1hbmFnZXI+OwogcHVibGlj
OgogICAgIHN0YXRpYyBXZWJQcm9jZXNzJiBzaW5nbGV0b24oKTsKIApAQCAtMTQxLDYgKzE0Nyw3
IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIAogICAgIGNvbnN0IFRleHRDaGVja2VyU3RhdGUmIHRl
eHRDaGVja2VyU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3RleHRDaGVja2VyU3RhdGU7IH0KKyAg
ICBEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlcigpOwogCiAgICAgdm9pZCBjbGVhclJl
c291cmNlQ2FjaGVzKFJlc291cmNlQ2FjaGVzVG9DbGVhciA9IEFsbFJlc291cmNlQ2FjaGVzKTsK
ICAgICAKQEAgLTE1MCw5ICsxNTcsMTMgQEAgcHVibGljOgogCiAgICAgRXZlbnREaXNwYXRjaGVy
JiBldmVudERpc3BhdGNoZXIoKSB7IHJldHVybiAqbV9ldmVudERpc3BhdGNoZXI7IH0KIAorICAg
IGJvb2wgdXNlc05ldHdvcmtQcm9jZXNzKCkgY29uc3Q7CisKKyNpZiBFTkFCTEUoTkVUV09SS19Q
Uk9DRVNTKQogICAgIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiogbmV0d29ya0Nvbm5lY3Rpb24o
KTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24qKTsKICAgICBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXImIHdlYlJlc291cmNl
TG9hZFNjaGVkdWxlcigpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykK
ICAgICB2b2lkIHdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb0RhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb24qKTsKQEAgLTIxMSw2ICsyMjIsMTIgQEAgcHJpdmF0ZToKICAg
ICBXZWJQcm9jZXNzKCk7CiAgICAgfldlYlByb2Nlc3MoKTsKIAorICAgIC8vIERvd25sb2FkTWFu
YWdlcjo6Q2xpZW50LgorICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVEb3dubG9hZCgpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95RG93bmxvYWQoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIElQQzo6Q29ubmVjdGlvbiogZG93bmxvYWRQcm94eUNvbm5lY3Rpb24oKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIEF1dGhlbnRpY2F0aW9uTWFuYWdlciYgZG93bmxvYWRzQXV0aGVu
dGljYXRpb25NYW5hZ2VyKCkgb3ZlcnJpZGU7CisKICAgICB2b2lkIGluaXRpYWxpemVXZWJQcm9j
ZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBwbGF0Zm9ybUlu
aXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKQEAg
LTM0MiwxMSArMzU5LDE0IEBAIHByaXZhdGU6CiAKICAgICBXZWJJY29uRGF0YWJhc2VQcm94eSog
bV9pY29uRGF0YWJhc2VQcm94eTsKIAorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCiAgICAg
dm9pZCBlbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBSZWZQdHI8TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uPiBtX25ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjsKKyAgICBib29s
IG1fdXNlc05ldHdvcmtQcm9jZXNzOwogICAgIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlciogbV93
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fZG5zUHJlZmV0
Y2hlZEhvc3RzOwogICAgIFdlYkNvcmU6Okh5c3RlcmVzaXNBY3Rpdml0eSBtX2Ruc1ByZWZldGNo
SHlzdGVyZXJpczsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NFU1MpCiAgICAg
dm9pZCBlbnN1cmVXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA0NjEwMjdl
NDJkYTI5MjRjMWM4YzE2NGI1ODlhY2JiNWNjYWY5MzdhLi5kNDM3MmNlOTBjOWU3OTVhYmRkZTVl
NzdiNzZiZjBmNWQyNzhiMDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC02Miw2ICs2MiwxMiBAQCBtZXNzYWdlcyAtPiBXZWJQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICB2b2lkIFN0YXJ0TWVtb3J5U2FtcGxlcihXZWJL
aXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW1wbGVMb2dGaWxlSGFuZGxlLCBTdHJpbmcg
c2FtcGxlTG9nRmlsZVBhdGgsIGRvdWJsZSBpbnRlcnZhbCk7CiAgICAgdm9pZCBTdG9wTWVtb3J5
U2FtcGxlcigpOwogCisgICAgIyBEb3dubG9hZHMuIFRoaXMgc2hvdWxkIHJlYWxseSBiZSBpbiBh
IERvd25sb2FkLm1lc3NhZ2VzLmluLCBidXQgaXQgc2VlbWVkIHVubmVjZXNzYXJ5IHRvIGNyZWF0
ZSBhIG5ldyBmaWxlIGp1c3QgZm9yCisgICAgIyB0aHJlZSBtZXNzYWdlcy4KKyAgICBEb3dubG9h
ZFJlcXVlc3QoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgZG93bmxvYWRJ
RCwgdWludDY0X3QgaW5pdGlhdGluZ1BhZ2VJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QpCisgICAgUmVzdW1lRG93bmxvYWQodWludDY0X3QgZG93bmxvYWRJRCwgSVBDOjpEYXRh
UmVmZXJlbmNlIHJlc3VtZURhdGEsIFN0cmluZyBwYXRoLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQorICAgIENhbmNlbERvd25sb2FkKHVp
bnQ2NF90IGRvd25sb2FkSUQpCisKICAgICBTZXRUZXh0Q2hlY2tlclN0YXRlKHN0cnVjdCBXZWJL
aXQ6OlRleHRDaGVja2VyU3RhdGUgdGV4dENoZWNrZXJTdGF0ZSkKIAogICAgIFNldEVuaGFuY2Vk
QWNjZXNzaWJpbGl0eShib29sIGZsYWcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1NvdXAuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAppbmRleCBlMzllMTVjZmE0OTVhODgyYTk2NTg1MzYz
NDBmZDRlNGRmMTY1Y2MwLi4zMjViZTQ2MjYwNmUyMjkzNDIwMTkyY2E4YjNjMWM2YzQ2N2QxY2Yz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3NvdXAvV2ViUHJvY2Vzc1Nv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291
cC5jcHAKQEAgLTQ5LDYgKzQ5LDE4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMg
dWludDY0X3QgZ2V0Q2FjaGVEaXNrRnJlZVNpemUoU291cENhY2hlKiBjYWNoZSkKK3sKKyAgICBB
U1NFUlQoY2FjaGUpOworCisgICAgR1VuaXF1ZU91dFB0cjxjaGFyPiBjYWNoZURpcjsKKyAgICBn
X29iamVjdF9nZXQoR19PQkpFQ1QoY2FjaGUpLCAiY2FjaGUtZGlyIiwgJmNhY2hlRGlyLm91dFB0
cigpLCBOVUxMKTsKKyAgICBpZiAoIWNhY2hlRGlyKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IHJldHVybiBXZWJDb3JlOjpnZXRWb2x1bWVGcmVlU2l6ZUZvclBhdGgoY2FjaGVEaXIuZ2V0KCkp
OworfQorCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVs
IGNhY2hlTW9kZWwpCiB7CiAgICAgdW5zaWduZWQgY2FjaGVUb3RhbENhcGFjaXR5ID0gMDsKQEAg
LTYxLDYgKzczLDEyIEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENh
Y2hlTW9kZWwgY2FjaGVNb2RlbCkKICAgICB1bnNpZ25lZCBsb25nIHVybENhY2hlRGlza0NhcGFj
aXR5ID0gMDsKIAogICAgIHVpbnQ2NF90IGRpc2tGcmVlU2l6ZSA9IDA7CisgICAgU291cENhY2hl
KiBjYWNoZSA9IG51bGxwdHI7CisKKyAgICBpZiAoIXVzZXNOZXR3b3JrUHJvY2VzcygpKSB7Cisg
ICAgICAgIGNhY2hlID0gV2ViQ29yZTo6U291cE5ldHdvcmtTZXNzaW9uOjpkZWZhdWx0U2Vzc2lv
bigpLmNhY2hlKCk7CisgICAgICAgIGRpc2tGcmVlU2l6ZSA9IGdldENhY2hlRGlza0ZyZWVTaXpl
KGNhY2hlKSAvIFdURjo6TUI7CisgICAgfQogCiAgICAgdWludDY0X3QgbWVtU2l6ZSA9IFdURjo6
cmFtU2l6ZSgpIC8gV1RGOjpNQjsKICAgICBjYWxjdWxhdGVDYWNoZVNpemVzKGNhY2hlTW9kZWws
IG1lbVNpemUsIGRpc2tGcmVlU2l6ZSwKQEAgLTc2LDEwICs5NCwzMyBAQCB2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNhY2hlTW9kZWwpCiAjaWYgUExB
VEZPUk0oR1RLKQogICAgIFdlYkNvcmU6OlBhZ2VDYWNoZTo6c2luZ2xldG9uKCkuc2V0U2hvdWxk
Q2xlYXJCYWNraW5nU3RvcmVzKHRydWUpOwogI2VuZGlmCisKKyAgICBpZiAoIXVzZXNOZXR3b3Jr
UHJvY2VzcygpKSB7CisgICAgICAgIGlmICh1cmxDYWNoZURpc2tDYXBhY2l0eSA+IHNvdXBfY2Fj
aGVfZ2V0X21heF9zaXplKGNhY2hlKSkKKyAgICAgICAgICAgIHNvdXBfY2FjaGVfc2V0X21heF9z
aXplKGNhY2hlLCB1cmxDYWNoZURpc2tDYXBhY2l0eSk7CisgICAgfQogfQogCiB2b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtQ2xlYXJSZXNvdXJjZUNhY2hlcyhSZXNvdXJjZUNhY2hlc1RvQ2xlYXIg
Y2FjaGVzVG9DbGVhcikKIHsKKyAgICBpZiAoY2FjaGVzVG9DbGVhciA9PSBJbk1lbW9yeVJlc291
cmNlQ2FjaGVzT25seSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgd2UncmUgdXNpbmcg
dGhlIG5ldHdvcmsgcHJvY2VzcyB0aGVuIGl0IGlzIHRoZSBvbmx5IG9uZSB0aGF0IG5lZWRzIHRv
IGNsZWFyIHRoZSBkaXNrIGNhY2hlLgorICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc291cF9jYWNoZV9jbGVhcihXZWJDb3JlOjpTb3VwTmV0d29y
a1Nlc3Npb246OmRlZmF1bHRTZXNzaW9uKCkuY2FjaGUoKSk7Cit9CisKK3N0YXRpYyB2b2lkIHNl
dFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3VhZ2UoY29uc3QgVmVjdG9yPFN0cmluZz4mIGxhbmd1YWdl
cykKK3sKKyAgICBXZWJDb3JlOjpTb3VwTmV0d29ya1Nlc3Npb246OmRlZmF1bHRTZXNzaW9uKCku
c2V0QWNjZXB0TGFuZ3VhZ2VzKGxhbmd1YWdlcyk7Cit9CisKK3N0YXRpYyB2b2lkIGxhbmd1YWdl
Q2hhbmdlZCh2b2lkKikKK3sKKyAgICBzZXRTb3VwU2Vzc2lvbkFjY2VwdExhbmd1YWdlKFdlYkNv
cmU6OnVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycykKQEAgLTk0LDE4ICsxMzUsNjIgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXIK
ICAgICAgICAgc2VjY29tcEZpbHRlcnMuaW5pdGlhbGl6ZSgpOwogICAgIH0KICNlbmRpZgorCisg
ICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NF
UlQoIXBhcmFtZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSk7CisKKyAgICAvLyBX
ZSB1c2VkIHRvIHVzZSB0aGUgZ2l2ZW4gY2FjaGUgZGlyZWN0b3J5IGZvciB0aGUgc291cCBjYWNo
ZSwgYnV0IG5vdyB3ZSB1c2UgYSBzdWJkaXJlY3RvcnkgdG8gYXZvaWQKKyAgICAvLyBjb25mbGlj
dHMgd2l0aCBvdGhlciBjYWNoZSBmaWxlcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuIFJlbW92ZSB0
aGUgb2xkIGNhY2hlIGZpbGVzIGlmIHRoZXkgc3RpbGwgZXhpc3QuCisgICAgV2ViQ29yZTo6U291
cE5ldHdvcmtTZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbigpLmNsZWFyQ2FjaGUoV2ViQ29yZTo6ZGly
ZWN0b3J5TmFtZShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeSkpOworCisjaWYgRU5BQkxF
KE5FVFdPUktfQ0FDSEUpCisgICAgLy8gV2hlbiBuZXR3b3JrIGNhY2hlIGlzIGVuYWJsZWQsIHRo
ZSBkaXNrIGNhY2hlIGRpcmVjdG9yeSBpcyB0aGUgbmV0d29yayBwcm9jZXNzIG9uZS4KKyAgICBD
U3RyaW5nIGRpc2tDYWNoZVBhdGggPSBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
V2ViQ29yZTo6ZGlyZWN0b3J5TmFtZShwYXJhbWV0ZXJzLmRpc2tDYWNoZURpcmVjdG9yeSksICJ3
ZWJraXQiKS51dGY4KCk7CisjZWxzZQorICAgIENTdHJpbmcgZGlza0NhY2hlUGF0aCA9IHBhcmFt
ZXRlcnMuZGlza0NhY2hlRGlyZWN0b3J5LnV0ZjgoKTsKKyNlbmRpZgorCisgICAgR1JlZlB0cjxT
b3VwQ2FjaGU+IHNvdXBDYWNoZSA9IGFkb3B0R1JlZihzb3VwX2NhY2hlX25ldyhkaXNrQ2FjaGVQ
YXRoLmRhdGEoKSwgU09VUF9DQUNIRV9TSU5HTEVfVVNFUikpOworICAgIFdlYkNvcmU6OlNvdXBO
ZXR3b3JrU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKS5zZXRDYWNoZShzb3VwQ2FjaGUuZ2V0KCkp
OworICAgIC8vIFNldCBhbiBpbml0aWFsIGh1Z2UgbWF4X3NpemUgZm9yIHRoZSBTb3VwQ2FjaGUg
c28gdGhlIGNhbGwgdG8gc291cF9jYWNoZV9sb2FkKCkgd29uJ3QgZXZpY3QgYW55IGNhY2hlZAor
ICAgIC8vIHJlc291cmNlLiBUaGUgZmluYWwgc2l6ZSBvZiB0aGUgY2FjaGUgd2lsbCBiZSBzZXQg
YnkgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtU2V0Q2FjaGVNb2RlbCgpLgorICAgIHVuc2lnbmVk
IGluaXRpYWxNYXhTaXplID0gc291cF9jYWNoZV9nZXRfbWF4X3NpemUoc291cENhY2hlLmdldCgp
KTsKKyAgICBzb3VwX2NhY2hlX3NldF9tYXhfc2l6ZShzb3VwQ2FjaGUuZ2V0KCksIEdfTUFYVUlO
VCk7CisgICAgc291cF9jYWNoZV9sb2FkKHNvdXBDYWNoZS5nZXQoKSk7CisgICAgc291cF9jYWNo
ZV9zZXRfbWF4X3NpemUoc291cENhY2hlLmdldCgpLCBpbml0aWFsTWF4U2l6ZSk7CisKKyAgICBp
ZiAoIXBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLmlzRW1wdHkoKSkgewor
ICAgICAgICBzdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+KCktPnNldENvb2tpZVBlcnNpc3Rl
bnRTdG9yYWdlKHBhcmFtZXRlcnMuY29va2llUGVyc2lzdGVudFN0b3JhZ2VQYXRoLAorICAgICAg
ICAgICAgcGFyYW1ldGVycy5jb29raWVQZXJzaXN0ZW50U3RvcmFnZVR5cGUpOworICAgIH0KKyAg
ICBzdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXI+KCktPnNldEhUVFBDb29raWVBY2NlcHRQb2xp
Y3kocGFyYW1ldGVycy5jb29raWVBY2NlcHRQb2xpY3kpOworCisgICAgaWYgKCFwYXJhbWV0ZXJz
Lmxhbmd1YWdlcy5pc0VtcHR5KCkpCisgICAgICAgIHNldFNvdXBTZXNzaW9uQWNjZXB0TGFuZ3Vh
Z2UocGFyYW1ldGVycy5sYW5ndWFnZXMpOworCisgICAgc2V0SWdub3JlVExTRXJyb3JzKHBhcmFt
ZXRlcnMuaWdub3JlVExTRXJyb3JzKTsKKworICAgIFdlYkNvcmU6OmFkZExhbmd1YWdlQ2hhbmdl
T2JzZXJ2ZXIodGhpcywgbGFuZ3VhZ2VDaGFuZ2VkKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybVRlcm1pbmF0ZSgpCiB7CisgICAgaWYgKCF1c2VzTmV0d29ya1Byb2Nlc3MoKSkKKyAg
ICAgICAgV2ViQ29yZTo6cmVtb3ZlTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih0aGlzKTsKIH0KIAog
dm9pZCBXZWJQcm9jZXNzOjpzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25vcmVUTFNFcnJvcnMp
CiB7CisgICAgQVNTRVJUKCF1c2VzTmV0d29ya1Byb2Nlc3MoKSk7CisgICAgV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OnNldElnbm9yZVNTTEVycm9ycyhpZ25vcmVUTFNFcnJvcnMpOwogfQogCiB2
b2lkIFdlYlByb2Nlc3M6OmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25z
dCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgU3RyaW5n
JiBob3N0KQogeworICAgIEFTU0VSVCghdXNlc05ldHdvcmtQcm9jZXNzKCkpOworICAgIFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpzZXRDbGllbnRDZXJ0aWZpY2F0ZShob3N0LCBjZXJ0aWZpY2F0
ZUluZm8uY2VydGlmaWNhdGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvY29uZmlnLmggYi9Tb3VyY2UvV2ViS2l0Mi9jb25maWcuaApp
bmRleCAyNGUzMGE0ZDFjOTJlNWVjMjg3NzZiMjBlNjJmZWUzZmY1OTJjMjFjLi4wZDY0MGM4MGFi
N2UxYjhlODRiYWFmZTEyODU0ZjdmNDUwMzU2MDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9jb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9jb25maWcuaApAQCAtOTEsNyArOTEsNyBA
QAogI2VuZGlmCiAKICNpZm5kZWYgRU5BQkxFX05FVFdPUktfQ0FDSEUKLSNpZiBQTEFURk9STShD
T0NPQSkgfHwgUExBVEZPUk0oR1RLKQorI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1MpICYmIChQ
TEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSkKICNkZWZpbmUgRU5BQkxFX05FVFdPUktf
Q0FDSEUgMQogI2Vsc2UKICNkZWZpbmUgRU5BQkxFX05FVFdPUktfQ0FDSEUgMApkaWZmIC0tZ2l0
IGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0Vm
bC5jbWFrZQppbmRleCBiYzgzMDg5NzRhNDk3NzliZTk0ZThmMTM1YjQ2MjRmZGQzZGI2NjFhLi44
MTFjOWU1OWY2ZTg3NzY4Njk0ZmRiZGMzMjkzZTk4OTlkZmU2MjEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5j
bWFrZQpAQCAtMTA2LDYgKzEwNiw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTIFBVQkxJQyBPTikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9OQVZJR0FUT1JfSFdDT05D
VVJSRU5DWSBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfTkVUV09SS19QUk9DRVNTIFBVQkxJQyBPTikKIFdFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9OT1NOSUZGIFBVQkxJQyBPTikKIFdFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9QT0lOVEVSX0xPQ0sgUFJJVkFURSBPRkYp
CiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfUFVCTElDX1NVRkZJWF9M
SVNUIFBSSVZBVEUgT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFr
ZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCmluZGV4IGZmNDQxOTM0MDUxNjIzNzc0
ZjRkODEzOWVkNTE4MDZjNTYzMjI2ZmUuLjk4NmFmZmZlMDIzNWE5NjZmOTUwNzcwY2Y0MDcxYjFi
OTgxNTU5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisrKyBi
L1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0xODYsNiArMTg2LDcgQEAgV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJREVPX1RSQUNLIFBSSVZBVEUgT04p
CiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklFV19NT0RFX0NTU19N
RURJQSBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1dFQl9USU1JTkcgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9XRUJHTCBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX05FVFdPUktfUFJPQ0VTUyBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX1RIUkVBREVEX0NPTVBPU0lUT1IgUFJJVkFURSBPRkYpCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfU0hBRE9XX0RPTSBQUklWQVRF
IE9GRikKIApkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNNYWMuY21ha2UgYi9Tb3Vy
Y2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQppbmRleCBmNjU0ZjY2ODk2YmQxZTkwZjgyMGYzMDBm
YTAwN2NmODhiMjJmZDc5Li5hZTY0NDUwMTA5ODQ2ZTZkYzQ4ZDljZGI4OTIwZjNhNzBhMTZhNWJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc01hYy5jbWFrZQorKysgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc01hYy5jbWFrZQpAQCAtMjIwLDYgKzIyMCw3IEBAIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JT1NfQUlSUExBWV9pcGhvbmVzaW11bGF0b3IgUFJJ
VkFURSBPRkYpCiAKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TQU5E
Qk9YX0VYVEVOU0lPTlMgUFJJVkFURSBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9XRUJfUFJPQ0VTU19TQU5EQk9YIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUV09SS19QUk9DRVNTIFBSSVZBVEUgT04pCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREFUQUJBU0VfUFJPQ0VTUyBQ
UklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1BMVUdJ
Tl9QUk9DRVNTIFBSSVZBVEUgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfTUVNT1JZX1NBTVBMRVIgUFJJVkFURSBPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFr
ZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFr
ZQppbmRleCBkOTYyMjRkNDE3MWJkYmE3MTcwYzQ1ZDNkZDcyMTc1NDc3MTJmNTBkLi45Mzk1YTY2
ZTRjOWMzZjE1MGZlNjMwOGIwM2VmMGM1Zjg5ODdhNmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21h
a2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVz
LmNtYWtlCkBAIC0xMjgsNiArMTI4LDcgQEAgbWFjcm8oV0VCS0lUX09QVElPTl9CRUdJTikKICAg
ICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVOQ1kgIlRv
Z2dsZSBOYXZpZ2F0b3IgaGFyZHdhcmUgY29uY3VycmVuY3kgc3VwcG9ydCIgUFJJVkFURSBPTikK
ICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfTk9TTklGRiAiVG9nZ2xlIHN1cHBvcnQg
Zm9yICdYLUNvbnRlbnQtVHlwZS1PcHRpb25zOiBub3NuaWZmJyIgUFJJVkFURSBPRkYpCiAgICAg
V0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgIlRvZ2dsZSBO
ZXRzY2FwZSBQbHVnaW4gc3VwcG9ydCIgUFJJVkFURSBPTikKKyAgICBXRUJLSVRfT1BUSU9OX0RF
RklORShFTkFCTEVfTkVUV09SS19QUk9DRVNTICJUb2dnbGUgZGVkaWNhdGVkIG5ldHdvcmsgcHJv
Y2VzcyBzdXBwb3J0IGluIFdlYktpdDIiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05f
REVGSU5FKEVOQUJMRV9OT1RJRklDQVRJT05TICJUb2dnbGUgRGVza3RvcCBOb3RpZmljYXRpb25z
IFN1cHBvcnQiIFBSSVZBVEUgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9P
UklFTlRBVElPTl9FVkVOVFMgIlRvZ2dsZSBPcmllbnRhdGlvbiBFdmVudHMgc3VwcG9ydCIgUFJJ
VkFURSBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1BERktJVF9QTFVHSU4g
IlRvZ2dsZSBQREZLaXQgcGx1Z2luIHN1cHBvcnQiIFBSSVZBVEUgT0ZGKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRlM2Q4ZDQ2ZWY1YWI2OTlh
YTVhNTNjMWYwNTdkOWQyNjM4YzM0YTQuLjg2ZDMwZTU4MGUzMTAzZDVkZDU3NDQ3OTRmOGI3MGFm
NDFlNmY2MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0xMS0xOSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5MjY2
NyBhbmQgcjE5MjY2OC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTQ3NgorCisgICAgICAgIGJyb2tlIGFwaSB0ZXN0cyAoUmVxdWVzdGVkIGJ5IGFs
ZXhjaHJpc3RlbnNlbiBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRz
OgorCisgICAgICAgICJSZW1vdmUgdGhlIG5vbi1OZXR3b3JrUHJvY2VzcyBjb25maWd1cmF0aW9u
cyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTQx
OAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTI2NjcKKworICAg
ICAgICAiRml4IEdUSyBCdWlsZCBhZnRlciByMTkyNjY3LiIKKyAgICAgICAgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTkyNjY4CisKIDIwMTUtMTEtMTkgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdGhlIG5vbi1O
ZXR3b3JrUHJvY2VzcyBjb25maWd1cmF0aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyL21hYy9HZXRQSURBZnRlckFib3J0ZWRQcm9jZXNzTGF1bmNoLmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9tYWMvR2V0UElEQWZ0ZXJBYm9y
dGVkUHJvY2Vzc0xhdW5jaC5jcHAKaW5kZXggN2NkNGY3YzIxYzllMmJjMDkxZDFiM2VlNjE1MzNh
NjhlOGYzNDk0Yy4uYzVjM2VmZjAxNjRmM2RlNjkwODVhMjBkMmFhMDU5YTJkODI3NzY0YiAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL21hYy9HZXRQSURBZnRl
ckFib3J0ZWRQcm9jZXNzTGF1bmNoLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvbWFjL0dldFBJREFmdGVyQWJvcnRlZFByb2Nlc3NMYXVuY2guY3BwCkBAIC00Miw2
ICs0Miw3IEBAIHN0YXRpYyB2b2lkIGRpZEZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzCiBURVNUKFdlYktpdDIsIEdldFBJREFm
dGVyQWJvcnRlZFByb2Nlc3NMYXVuY2gpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVm
PiBjb250ZXh0KEFkb3B0V0ssIFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICBXS0NvbnRleHRTZXRV
c2VzTmV0d29ya1Byb2Nlc3MoY29udGV4dC5nZXQoKSwgdHJ1ZSk7CiAKICAgICBQbGF0Zm9ybVdl
YlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAppbmRleCAxYmY1Y2M1YjAzNzBiZDUyZTU2N2IyODI3MWVhZmJlODFj
N2Q4ZjhlLi4wYjU5MmQwMTAyZjY3YWUwMDRkNzBiMWNhZTgxYjNmODkzMGQwMDM5IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNDAwLDYgKzQwMCwxMSBA
QCBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBUZXN0Q29udHJvbGxlcjo6Z2Vu
ZXJhdGVQYWdlQ29uZmlndXJhdGlvbihXSwogCiAgICAgbV9nZW9sb2NhdGlvblByb3ZpZGVyID0g
c3RkOjptYWtlX3VuaXF1ZTxHZW9sb2NhdGlvblByb3ZpZGVyTW9jaz4obV9jb250ZXh0LmdldCgp
KTsKIAorI2lmIFBMQVRGT1JNKEVGTCkKKyAgICBXS0NvbnRleHRTZXRVc2VzTmV0d29ya1Byb2Nl
c3MobV9jb250ZXh0LmdldCgpLCBmYWxzZSk7CisgICAgV0tDb250ZXh0U2V0UHJvY2Vzc01vZGVs
KG1fY29udGV4dC5nZXQoKSwga1dLUHJvY2Vzc01vZGVsU2hhcmVkU2Vjb25kYXJ5UHJvY2Vzcyk7
CisjZW5kaWYKKwogICAgIGlmIChjb25zdCBjaGFyKiBkdW1wUmVuZGVyVHJlZVRlbXAgPSBsaWJy
YXJ5UGF0aEZvclRlc3RpbmcoKSkgewogICAgICAgICBTdHJpbmcgdGVtcG9yYXJ5Rm9sZGVyID0g
U3RyaW5nOjpmcm9tVVRGOChkdW1wUmVuZGVyVHJlZVRlbXApOwogCmRpZmYgLS1naXQgYS9DaGFu
Z2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMDc4YWI5NTg1N2VjNTNlYjUzNGEyNWFmOTBhNGUyNjNl
MDhjZjM4Ny4uNDEwMTE1M2ZkNWFlY2ViM2RhMGNmNjg5ZWVkYjYzMmQ0ODI3ZDNlNyAxMDA2NDQK
LS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTEx
LTE5ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTkyNjY3IGFuZCByMTkyNjY4LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNDc2CisKKyAgICAgICAgYnJv
a2UgYXBpIHRlc3RzIChSZXF1ZXN0ZWQgYnkgYWxleGNocmlzdGVuc2VuIG9uICN3ZWJraXQpLgor
CisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIlJlbW92ZSB0aGUgbm9u
LU5ldHdvcmtQcm9jZXNzIGNvbmZpZ3VyYXRpb25zIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNDE4CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzE5MjY2NworCisgICAgICAgICJGaXggR1RLIEJ1aWxkIGFmdGVyIHIx
OTI2NjcuIgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xOTI2NjgK
KwogMjAxNS0xMS0xOSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbW92ZSB0aGUgbm9uLU5ldHdvcmtQcm9jZXNzIGNvbmZpZ3VyYXRpb25z
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>