<?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>68712</bug_id>
          
          <creation_ts>2011-09-23 12:11:09 -0700</creation_ts>
          <short_desc>Add OVERRIDE to a bunch of virtual member functions on clients</short_desc>
          <delta_ts>2011-09-23 12:23:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472389</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-09-23 12:11:09 -0700</bug_when>
    <thetext>Add OVERRIDE to a bunch of virtual member functions on clients</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472399</commentid>
    <comment_count>1</comment_count>
      <attachid>108507</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-09-23 12:21:42 -0700</bug_when>
    <thetext>Created attachment 108507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472401</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-09-23 12:23:31 -0700</bug_when>
    <thetext>Committed r95847: &lt;http://trac.webkit.org/changeset/95847&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108507</attachid>
            <date>2011-09-23 12:21:42 -0700</date>
            <delta_ts>2011-09-23 12:22:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68712-20110923122142.patch</filename>
            <type>text/plain</type>
            <size>59834</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTg0MykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDktMjMgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgT1ZFUlJJREUgdG8gYSBi
dW5jaCBvZiB2aXJ0dWFsIG1lbWJlciBmdW5jdGlvbnMgb24gY2xpZW50cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3MTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDExLTA5LTIxICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViS2l0IHBhcnQgb2Y6IFByZXZlbnQgdGhlIFdlYktpdCBmcmFtZXdv
cmtzIGZyb20gZGVmaW5pbmcgaW5hcHByb3ByaWF0ZWx5LW5hbWVkIE9iamVjdGl2ZS1DIGNsYXNz
ZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gOTU4MzQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMjc4LDggKzEyNzgsOCBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJQjgyOTU4RDExMzI3MDdEMDAwMEQwRTc5IC8qIENvcnJlY3Rpb25Q
YW5lbC5oICovLAogCQkJCUI4Mjk1OEQyMTMyNzA3RDAwMDBEMEU3OSAvKiBDb3JyZWN0aW9uUGFu
ZWwubW0gKi8sCi0JCQkJNTk4QUQ5MUQxMjAxQ0VDRjAwQUJBRTRFIC8qIFdlYkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50Lm1tICovLAogCQkJCTU5OEFEOTE5MTIwMUNFQzkwMEFCQUU0RSAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAorCQkJCTU5OEFEOTFEMTIwMUNFQ0YwMEFCQUU0
RSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5tbSAqLywKIAkJCQlCNjgwNDk3MTBGRkJD
RUMxMDA5RjdGNjIgLyogV2ViQXBwbGljYXRpb25DYWNoZS5oICovLAogCQkJCUI2ODA0OTcyMEZG
QkNFQzEwMDlGN0Y2MiAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlLm1tICovLAogCQkJCUE1REVGQzEx
MTFENTM0NEIwMDg4NTI3MyAvKiBXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLmggKi8s
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTg0MykKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDExLTA5LTIz
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIE9W
RVJSSURFIHRvIGEgYnVuY2ggb2YgdmlydHVhbCBtZW1iZXIgZnVuY3Rpb25zIG9uIGNsaWVudHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzEyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50Lmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJh
c2VDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKwog
MjAxMS0wOS0yMiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IEVOQUJMRV9DU1NfRklMVEVSUwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlv
bnMvQmFzZS54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1
cmF0aW9ucy9CYXNlLnhjY29uZmlnCShyZXZpc2lvbiA5NTgzNCkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYg
KzIzLDcgQEAKIAogI2luY2x1ZGUgIkNvbXBpbGVyVmVyc2lvbi54Y2NvbmZpZyIKIAorQ0xBTkdf
V0FSTl9DWFgwWF9FWFRFTlNJT05TID0gTk87CiBERUJVR19JTkZPUk1BVElPTl9GT1JNQVQgPSBk
d2FyZjsKIEdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CiBHQ0NfREVCVUdHSU5HX1NZ
TUJPTFMgPSBkZWZhdWx0OwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDk1ODM0KQorKysgU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDE1MyArMzgsMTQ5IEBAIHB1YmxpYzoKICAgICBXZWJDaHJvbWVDbGllbnQoV2ViVmll
dyopOwogICAgIHZpcnR1YWwgdm9pZCogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PHZvaWQqPihtX3dlYlZpZXcpOyB9CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGNocm9tZURl
c3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBPVkVSUklERTsK
ICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpIE9W
RVJSSURFOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIE9WRVJSSURFOwogCi0gICAg
dmlydHVhbCB2b2lkIGZvY3VzKCk7Ci0gICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZm9jdXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygp
IE9WRVJSSURFOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6
Rm9jdXNEaXJlY3Rpb24pOwotICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9j
dXNEaXJlY3Rpb24pOworICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9j
dXNEaXJlY3Rpb24pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2ViQ29y
ZTo6Rm9jdXNEaXJlY3Rpb24pIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRO
b2RlQ2hhbmdlZChXZWJDb3JlOjpOb2RlKik7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFt
ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZE5vZGVD
aGFuZ2VkKFdlYkNvcmU6Ok5vZGUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXNl
ZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSopIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBX
ZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3Jl
OjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25z
dCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJik7Ci0gICAgdmlydHVhbCB2b2lkIHNob3coKTsK
KyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dG
ZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2hvdygpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIGNhblJ1
bk1vZGFsKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCk7CisgICAgdmlydHVhbCBib29s
IGNhblJ1bk1vZGFsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCkgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpOwotICAg
IHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9v
bGJhcnNWaXNpYmxlKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zp
c2libGUoKSBPVkVSUklERTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVmlz
aWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wgc3RhdHVzYmFyVmlzaWJsZSgpOworICAgIHZp
cnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCkgT1ZFUlJJREU7CiAgICAgCi0gICAgdmlydHVhbCB2
b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxi
YXJzVmlzaWJsZSgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJsZShib29s
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKSBPVkVSUklE
RTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCk7Ci0gICAg
dmlydHVhbCBib29sIG1lbnViYXJWaXNpYmxlKCk7CisgICAgdmlydHVhbCB2b2lkIHNldE1lbnVi
YXJWaXNpYmxlKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBtZW51YmFyVmlzaWJs
ZSgpIE9WRVJSSURFOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNpemFibGUoYm9vbCk7
CisgICAgdmlydHVhbCB2b2lkIHNldFJlc2l6YWJsZShib29sKSBPVkVSUklERTsKICAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShXZWJDb3JlOjpNZXNzYWdlU291cmNl
IHNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZVR5cGUgdHlwZSwgV2ViQ29yZTo6TWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VVUkwpOworICAgIHZpcnR1YWwgdm9pZCBhZGRN
ZXNzYWdlVG9Db25zb2xlKFdlYkNvcmU6Ok1lc3NhZ2VTb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VU
eXBlLCBXZWJDb3JlOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCB1
bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVSTCkgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KCk7Ci0gICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBX
VEY6OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqIGZyYW1lKTsKKyAgICB2aXJ0dWFs
IGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBXVEY6OlN0cmluZyYg
bWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBj
bG9zZVdpbmRvd1Nvb24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlw
dENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1
YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3Ry
aW5nJiByZXN1bHQpOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0
KCk7CisgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFT
Y3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZh
bHVlLCBXVEY6OlN0cmluZyYgcmVzdWx0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBXZWJDb3Jl
OjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZVdpbmRvdyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCk7
Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50
c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwotICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y2xpcFJlY3QpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlV2luZG93KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRzQW5kV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNj
cm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkg
T1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvV2luZG93
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpJ
bnRSZWN0IHdpbmRvd1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsK
LSAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSosIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVj
dEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OkludFBvaW50IHNjcmVlblRvV2luZG93KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1RvU2Ny
ZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSosIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBPVkVSUklE
RTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6OlN0
cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFdURjo6U3Ry
aW5nJikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFu
Z2UoKSBjb25zdCB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTWlzc2luZ1BsdWdpbk1lc3Nh
Z2VCZUJ1dHRvbigpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBtaXNzaW5nUGx1Z2luQnV0dG9u
Q2xpY2tlZChXZWJDb3JlOjpFbGVtZW50KikgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25l
ZCBtb2RpZmllckZsYWdzKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFu
Z2UoKSBjb25zdCBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTWlzc2luZ1Bs
dWdpbk1lc3NhZ2VCZUJ1dHRvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBt
aXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50KikgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNv
cmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBPVkVSUklERTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6
VGV4dERpcmVjdGlvbik7CisgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpT
dHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwg
dm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOworICAgIHZpcnR1YWwgdm9pZCBwcmludChXZWJD
b3JlOjpGcmFtZSopIE9WRVJSSURFOwogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgdmly
dHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdU
Rjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUpOworICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1l
KSBPVkVSUklERTsKICNlbmRpZgogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
Ci0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5l
ZWRlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpOwor
ICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVk
ZWQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVl
ZGVkKSBPVkVSUklERTsKICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRM
aW5rcygpOworICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpIE9WRVJSSURF
OwogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgIHZpcnR1YWwgdm9pZCBkYXNo
Ym9hcmRSZWdpb25zQ2hhbmdlZCgpOworICAgIHZpcnR1YWwgdm9pZCBkYXNoYm9hcmRSZWdpb25z
Q2hhbmdlZCgpIE9WRVJSSURFOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBh
bmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxlQ2hvb3Nlcj4pOwot
ICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopOworICAgIHZpcnR1YWwgdm9pZCBydW5PcGVu
UGFuZWwoV2ViQ29yZTo6RnJhbWUqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyKikgT1ZFUlJJREU7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwotICAgIHZp
cnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7CisgICAgdmly
dHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIE9WRVJS
SURFOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY3VzdG9tSGlnaGxpZ2h0UmVj
dChXZWJDb3JlOjpOb2RlKiwgY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIHR5cGUsCi0gICAgICAg
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGluZVJlY3QpOwotICAgIHZpcnR1YWwgdm9pZCBw
YWludEN1c3RvbUhpZ2hsaWdodChXZWJDb3JlOjpOb2RlKiwgY29uc3QgV1RGOjpBdG9taWNTdHJp
bmcmIHR5cGUsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm94UmVjdCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBsaW5lUmVjdCwKLSAgICAgICAgYm9vbCBiZWhpbmRUZXh0
LCBib29sIGVudGlyZUxpbmUpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGN1c3Rv
bUhpZ2hsaWdodFJlY3QoV2ViQ29yZTo6Tm9kZSosIGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiB0
eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGxpbmVSZWN0KSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRDdXN0b21IaWdobGlnaHQoV2ViQ29yZTo6Tm9kZSosIGNvbnN0IFdU
Rjo6QXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGJveFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgbGluZVJlY3QsIGJvb2wgYmVoaW5kVGV4dCwgYm9v
bCBlbnRpcmVMaW5lKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6S2V5Ym9hcmRV
SU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OktleWJvYXJkVUlN
b2RlIGtleWJvYXJkVUlNb2RlKCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIE5TUmVzcG9uZGVy
ICpmaXJzdFJlc3BvbmRlcigpOwotICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIo
TlNSZXNwb25kZXIgKik7CisgICAgdmlydHVhbCBOU1Jlc3BvbmRlciAqZmlyc3RSZXNwb25kZXIo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFrZUZpcnN0UmVzcG9uZGVyKE5TUmVzcG9u
ZGVyICopIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxQb3BVcE1lbnUoTlNNZW51
ICopOworICAgIHZpcnR1YWwgdm9pZCB3aWxsUG9wVXBNZW51KE5TTWVudSAqKSBPVkVSUklERTsK
ICAgICAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9y
VXBsb2FkKGNvbnN0IFdURjo6U3RyaW5nJiBwYXRoLCBXVEY6OlN0cmluZyAmZ2VuZXJhdGVkRmls
ZW5hbWUpOwotICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUo
Y29uc3QgV1RGOjpTdHJpbmcmIHBhdGgpOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXBsYWNl
V2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgsIFdURjo6
U3RyaW5nICZnZW5lcmF0ZWRGaWxlbmFtZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXVEY6OlN0
cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBXVEY6OlN0cmluZyYgcGF0aCkgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0IFdlYkNv
cmU6Ok5vZGUqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZm9ybVN0YXRlRGlkQ2hhbmdlKGNvbnN0
IFdlYkNvcmU6Ok5vZGUqKSBPVkVSUklERSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50
RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSopOwotICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50
RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKik7CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnRE
aWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBPVkVSUklERTsKIAogI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYygpOworICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNP
bmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCkgT1ZFUlJJREU7CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShWSURFTykKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9k
ZShjb25zdCBXZWJDb3JlOjpOb2RlKik7Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVl
bkZvck5vZGUoV2ViQ29yZTo6Tm9kZSopOwotICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVl
bkZvck5vZGUoV2ViQ29yZTo6Tm9kZSopOwotICAgIHZpcnR1YWwgdm9pZCBmdWxsU2NyZWVuUmVu
ZGVyZXJDaGFuZ2VkKFdlYkNvcmU6OlJlbmRlckJveCopOworICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpO
b2RlKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZ1bGxTY3JlZW5SZW5kZXJlckNoYW5n
ZWQoV2ViQ29yZTo6UmVuZGVyQm94KikgT1ZFUlJJREU7CiAjZW5kaWYKICAgICAKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50
Kik7Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpF
bGVtZW50Kik7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQo
Y29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChX
ZWJDb3JlOjpFbGVtZW50KikgT1ZFUlJJREU7CiAjZW5kaWYKIAogICAgIC8vIEZJWE1FOiBSZW1v
dmUgb25jZSBhbGwgcG9ydHMgYXJlIHVzaW5nIGNsaWVudC1iYXNlZCBnZW9sb2NhdGlvbi4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMzczCiAgICAgLy8gRm9yIGNs
aWVudC1iYXNlZCBnZW9sb2NhdGlvbiwgdGhlc2UgdHdvIG1ldGhvZHMgaGF2ZSBtb3ZlZCB0byBX
ZWJHZW9sb2NhdGlvbkNsaWVudC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUwMDYxCi0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgeyB9CisgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShXZWJDb3JlOjpGcmFtZSos
IFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgT1ZFUlJJREUgeyB9CisgICAgdmlydHVhbCB2b2lkIGNh
bmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShXZWJDb3JlOjpGcmFtZSos
IFdlYkNvcmU6Okdlb2xvY2F0aW9uKikgT1ZFUlJJREUgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wg
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKLSAgICB2aXJ0dWFsIGJvb2wg
c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOwotICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5n
RGlyZWN0aW9uSXNOYXR1cmFsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNlbGVjdEl0
ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdl
YkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IE9WRVJSSURFOwogCiAjaWYgRU5BQkxFKENP
TlRFWFRfTUVOVVMpCi0gICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudSgpOworICAgIHZp
cnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoKSBPVkVSUklERTsKICNlbmRpZgogICAgIAotICAg
IHZpcnR1YWwgdm9pZCBudW1XaGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKHVuc2lnbmVkKSB7IH0K
LSAgICAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUnViYmVyQmFuZEluRGlyZWN0aW9uKFdlYkNv
cmU6OlNjcm9sbERpcmVjdGlvbikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgbnVtV2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgT1ZFUlJJREUgeyB9
CisgICAgdmlydHVhbCBib29sIHNob3VsZFJ1YmJlckJhbmRJbkRpcmVjdGlvbihXZWJDb3JlOjpT
Y3JvbGxEaXJlY3Rpb24pIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiBwcml2YXRl
OgogICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmgJKHJldmlz
aW9uIDk1ODM0KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4
dE1lbnVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTggKzM0LDE4IEBAIGNsYXNzIFdl
YkNvbnRleHRNZW51Q2xpZW50IDogcHVibGljIFdlYkMKIHB1YmxpYzoKICAgICBXZWJDb250ZXh0
TWVudUNsaWVudChXZWJWaWV3ICp3ZWJWaWV3KTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgY29u
dGV4dE1lbnVEZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95
ZWQoKSBPVkVSUklERTsKICAgICAKLSAgICB2aXJ0dWFsIE5TTXV0YWJsZUFycmF5KiBnZXRDdXN0
b21NZW51RnJvbURlZmF1bHRJdGVtcyhXZWJDb3JlOjpDb250ZXh0TWVudSopOwotICAgIHZpcnR1
YWwgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0q
LCBjb25zdCBXZWJDb3JlOjpDb250ZXh0TWVudSopOworICAgIHZpcnR1YWwgTlNNdXRhYmxlQXJy
YXkqIGdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKFdlYkNvcmU6OkNvbnRleHRNZW51Kikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKFdlYkNv
cmU6OkNvbnRleHRNZW51SXRlbSosIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51KikgT1ZFUlJJ
REU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGRvd25sb2FkVVJMKGNvbnN0IFdlYkNvcmU6OktV
UkwmKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoV2l0aEdvb2dsZShjb25zdCBXZWJDb3JlOjpG
cmFtZSopOwotICAgIHZpcnR1YWwgdm9pZCBsb29rVXBJbkRpY3Rpb25hcnkoV2ViQ29yZTo6RnJh
bWUqKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTcGVha2luZygpOwotICAgIHZpcnR1YWwgdm9pZCBz
cGVhayhjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wU3BlYWtpbmco
KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoV2l0aFNwb3RsaWdodCgpOworICAgIHZpcnR1YWwg
dm9pZCBkb3dubG9hZFVSTChjb25zdCBXZWJDb3JlOjpLVVJMJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHNlYXJjaFdpdGhHb29nbGUoY29uc3QgV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9va1VwSW5EaWN0aW9uYXJ5KFdlYkNvcmU6OkZyYW1lKikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzU3BlYWtpbmcoKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgc3BlYWsoY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcFNwZWFraW5nKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNlYXJj
aFdpdGhTcG90bGlnaHQoKSBPVkVSUklERTsKIAogICAgIFdlYlZpZXcgKndlYlZpZXcoKSB7IHJl
dHVybiBtX3dlYlZpZXc7IH0KICAgICAgICAgCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50
LmgJKHJldmlzaW9uIDk1ODM0KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTEgKzQz
LDExIEBAIHB1YmxpYzoKICAgICBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudChXZWJWaWV3Kik7
CiAKICAgICAvLyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCBtZXRob2RzCi0gICAgdmlydHVhbCB2
b2lkIHNldENvbnRyb2xsZXIoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKik7
Ci0gICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3Rv
cFVwZGF0aW5nKCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbiogbGFz
dE9yaWVudGF0aW9uKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlckRlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHN0b3BV
cGRhdGluZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b24qIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
ZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBPVkVSUklERTsKIAogcHJpdmF0
ZToKICAgICBpZDxXZWJEZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyPiBnZXRQcm92aWRlcigpIGNv
bnN0OwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkRy
YWdDbGllbnQuaAkocmV2aXNpb24gOTU4MzQpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJEcmFnQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDEzICszMCwxMyBA
QAogY2xhc3MgV2ViRHJhZ0NsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpEcmFnQ2xpZW50IHsKIHB1
YmxpYzoKICAgICBXZWJEcmFnQ2xpZW50KFdlYlZpZXcqKTsKLSAgICB2aXJ0dWFsIHZvaWQgd2ls
bFBlcmZvcm1EcmFnRGVzdGluYXRpb25BY3Rpb24oV2ViQ29yZTo6RHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSopOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURy
YWdTb3VyY2VBY3Rpb24oV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmLCBXZWJDb3JlOjpDbGlwYm9hcmQqKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkRy
YWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrRm9yRHJhZyhXZWJDb3JlOjpEcmFnRGF0YSop
OwotICAgIHZpcnR1YWwgdm9pZCBkcmFnQ29udHJvbGxlckRlc3Ryb3llZCgpOwotICAgIHZpcnR1
YWwgV2ViQ29yZTo6RHJhZ1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB3aW5kb3dQb2ludCk7Ci0gICAgdmlydHVhbCB2b2lk
IHN0YXJ0RHJhZyhXZWJDb3JlOjpEcmFnSW1hZ2VSZWYgZHJhZ0ltYWdlLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZHJhZ1BvcywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGV2ZW50UG9zLCBX
ZWJDb3JlOjpDbGlwYm9hcmQqLCBXZWJDb3JlOjpGcmFtZSosIGJvb2wgbGlua0RyYWcpOwotICAg
IHZpcnR1YWwgdm9pZCBkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoTlNQYXN0ZWJvYXJkKiwgRE9N
RWxlbWVudCosIE5TVVJMKiwgTlNTdHJpbmcqLCBXZWJDb3JlOjpGcmFtZSopOworICAgIHZpcnR1
YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihXZWJDb3JlOjpEcmFnRGVz
dGluYXRpb25BY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhKikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3JlOjpEcmFnU291cmNlQWN0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkNsaXBib2FyZCopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1h
c2tGb3JEcmFnKFdlYkNvcmU6OkRyYWdEYXRhKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHdpbmRvd1BvaW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
c3RhcnREcmFnKFdlYkNvcmU6OkRyYWdJbWFnZVJlZiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGRyYWdQb3MsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBldmVudFBvcywgV2ViQ29yZTo6Q2xp
cGJvYXJkKiwgV2ViQ29yZTo6RnJhbWUqLCBib29sIGxpbmtEcmFnKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKE5TUGFzdGVib2FyZCosIERPTUVs
ZW1lbnQqLCBOU1VSTCosIE5TU3RyaW5nKiwgV2ViQ29yZTo6RnJhbWUqKSBPVkVSUklERTsKIHBy
aXZhdGU6CiAgICAgV2ViVmlldyogbV93ZWJWaWV3OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiA5
NTgzNCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMDYgKzQxLDEwNiBAQCBjbGFzcyBXZWJFZGl0b3JD
bGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6CiBwdWJsaWM6CiAgICAgV2ViRWRpdG9yQ2xpZW50KFdl
YlZpZXcgKik7CiAgICAgdmlydHVhbCB+V2ViRWRpdG9yQ2xpZW50KCk7Ci0gICAgdmlydHVhbCB2
b2lkIHBhZ2VEZXN0cm95ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpIE9W
RVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpOwot
ICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVHcmFtbWFyQ2hlY2tpbmcoKTsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKLSAgICB2aXJ0dWFsIGludCBzcGVsbENo
ZWNrZXJEb2N1bWVudFRhZygpOwotCi0gICAgdmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCgpOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKTsKLQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShXZWJDb3JlOjpS
YW5nZSopOyAgICAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShX
ZWJDb3JlOjpIVE1MRWxlbWVudCopOwotCi0gICAgdmlydHVhbCBib29sIHNob3VsZEJlZ2luRWRp
dGluZyhXZWJDb3JlOjpSYW5nZSopOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFbmRFZGl0aW5n
KFdlYkNvcmU6OlJhbmdlKik7Ci0gICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUoV2Vi
Q29yZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9u
KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25zdCBXVEY6OlN0cmluZyYs
IFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uKTsKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5nZSogZnJvbVJh
bmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgV2ViQ29yZTo6RUFmZmluaXR5LCBib29sIHN0
aWxsU2VsZWN0aW5nKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVk
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUdyYW1tYXJDaGVja2luZygpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVj
a2luZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFn
KCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpIE9WRVJSSURFOworCisgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdl
KFdlYkNvcmU6OlJhbmdlKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFNob3dE
ZWxldGVJbnRlcmZhY2UoV2ViQ29yZTo6SFRNTEVsZW1lbnQqKSBPVkVSUklERTsKKworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRCZWdpbkVkaXRpbmcoV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhXZWJDb3JlOjpSYW5nZSopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBX
ZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJD
b3JlOjpSYW5nZSosIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqIGZy
b21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRvUmFuZ2UsIFdlYkNvcmU6OkVBZmZpbml0eSwgYm9v
bCBzdGlsbFNlbGVjdGluZykgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBw
bHlTdHlsZShXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uKiwgV2ViQ29yZTo6UmFuZ2UqKTsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpDU1NTdHlsZURlY2xh
cmF0aW9uKiwgV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKICAgICAKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoV2ViQ29yZTo6UmFuZ2UqIHJhbmdlLCBXZWJD
b3JlOjpSYW5nZSogcmFuZ2VUb0JlUmVwbGFjZWQpOyAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
TW92ZVJhbmdlQWZ0ZXJEZWxldGUoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSogcmFu
Z2VUb0JlUmVwbGFjZWQpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRp
dGluZygpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRFZGl0aW5nKCk7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZFdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFNldFNlbGVjdGlvblR5cGVzRm9yUGFzdGVib2FyZCgpOwotCi0gICAgdmlydHVhbCBOU1N0cmlu
ZyogdXNlclZpc2libGVTdHJpbmcoTlNVUkwgKik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpEb2N1
bWVudEZyYWdtZW50KiBkb2N1bWVudEZyYWdtZW50RnJvbUF0dHJpYnV0ZWRTdHJpbmcoTlNBdHRy
aWJ1dGVkU3RyaW5nICosIFZlY3RvcjwgUmVmUHRyPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4g
PiYpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRJbnNlcnRpb25QYXN0ZWJvYXJkKE5TUGFzdGVib2Fy
ZCAqKTsKLSAgICB2aXJ0dWFsIE5TVVJMKiBjYW5vbmljYWxpemVVUkwoTlNVUkwqKTsKLSAgICB2
aXJ0dWFsIE5TVVJMKiBjYW5vbmljYWxpemVVUkxTdHJpbmcoTlNTdHJpbmcqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQmVnaW5FZGl0aW5nKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRp
ZEVuZEVkaXRpbmcoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkV3JpdGVTZWxlY3Rp
b25Ub1Bhc3RlYm9hcmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0U2VsZWN0
aW9uVHlwZXNGb3JQYXN0ZWJvYXJkKCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIE5TU3RyaW5n
KiB1c2VyVmlzaWJsZVN0cmluZyhOU1VSTCAqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OkRvY3VtZW50RnJhZ21lbnQqIGRvY3VtZW50RnJhZ21lbnRGcm9tQXR0cmlidXRlZFN0cmlu
ZyhOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgVmVjdG9yPCBSZWZQdHI8V2ViQ29yZTo6QXJjaGl2ZVJl
c291cmNlPiA+JikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEluc2VydGlvblBhc3Rl
Ym9hcmQoTlNQYXN0ZWJvYXJkICopIE9WRVJSSURFOworICAgIHZpcnR1YWwgTlNVUkwqIGNhbm9u
aWNhbGl6ZVVSTChOU1VSTCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgTlNVUkwqIGNhbm9uaWNh
bGl6ZVVSTFN0cmluZyhOU1N0cmluZyopIE9WRVJSSURFOwogICAgIAogI2lmbmRlZiBCVUlMRElO
R19PTl9MRU9QQVJECi0gICAgdmlydHVhbCB2b2lkIHVwcGVyY2FzZVdvcmQoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgbG93ZXJjYXNlV29yZCgpOwotICAgIHZpcnR1YWwgdm9pZCBjYXBpdGFsaXplV29y
ZCgpOwotICAgIHZpcnR1YWwgdm9pZCBzaG93U3Vic3RpdHV0aW9uc1BhbmVsKGJvb2wgc2hvdyk7
Ci0gICAgdmlydHVhbCBib29sIHN1YnN0aXR1dGlvbnNQYW5lbElzU2hvd2luZygpOwotICAgIHZp
cnR1YWwgdm9pZCB0b2dnbGVTbWFydEluc2VydERlbGV0ZSgpOwotICAgIHZpcnR1YWwgYm9vbCBp
c0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCgpOwotICAgIHZpcnR1YWwgdm9pZCB0
b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbigpOwotICAgIHZpcnR1YWwgYm9vbCBpc0F1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKCk7Ci0gICAgdmlydHVhbCB2b2lkIHRvZ2dsZUF1
dG9tYXRpY0xpbmtEZXRlY3Rpb24oKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNEYXNo
U3Vic3RpdHV0aW9uRW5hYmxlZCgpOwotICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNE
YXNoU3Vic3RpdHV0aW9uKCk7Ci0gICAgdmlydHVhbCBib29sIGlzQXV0b21hdGljVGV4dFJlcGxh
Y2VtZW50RW5hYmxlZCgpOwotICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNUZXh0UmVw
bGFjZW1lbnQoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rp
b25FbmFibGVkKCk7Ci0gICAgdmlydHVhbCB2b2lkIHRvZ2dsZUF1dG9tYXRpY1NwZWxsaW5nQ29y
cmVjdGlvbigpOworICAgIHZpcnR1YWwgdm9pZCB1cHBlcmNhc2VXb3JkKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGxvd2VyY2FzZVdvcmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgY2FwaXRhbGl6ZVdvcmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1N1YnN0
aXR1dGlvbnNQYW5lbChib29sIHNob3cpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzdWJz
dGl0dXRpb25zUGFuZWxJc1Nob3dpbmcoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9n
Z2xlU21hcnRJbnNlcnREZWxldGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNBdXRv
bWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgdG9nZ2xlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCB0b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uKCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBib29sIGlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbigp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVu
YWJsZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQXV0b21hdGljVGV4dFJl
cGxhY2VtZW50KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGlzQXV0b21hdGljU3BlbGxp
bmdDb3JyZWN0aW9uRW5hYmxlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVB
dXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24oKSBPVkVSUklERTsKICNlbmRpZgogCi0gICAgVGV4
dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsgfQorICAgIFRleHRD
aGVja2VyQ2xpZW50KiB0ZXh0Q2hlY2tlcigpIE9WRVJSSURFIHsgcmV0dXJuIHRoaXM7IH0KIAot
ICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29udGVudHMoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbigpOworICAgIHZpcnR1YWwgdm9pZCByZXNw
b25kVG9DaGFuZ2VkQ29udGVudHMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9u
ZFRvQ2hhbmdlZFNlbGVjdGlvbigpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lz
dGVyQ29tbWFuZEZvclVuZG8oUGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4pOwotICAg
IHZpcnR1YWwgdm9pZCByZWdpc3RlckNvbW1hbmRGb3JSZWRvKFBhc3NSZWZQdHI8V2ViQ29yZTo6
RWRpdENvbW1hbmQ+KTsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMo
KTsKLQotICAgIHZpcnR1YWwgYm9vbCBjYW5Db3B5Q3V0KFdlYkNvcmU6OkZyYW1lKiwgYm9vbCBk
ZWZhdWx0VmFsdWUpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBjYW5QYXN0ZShXZWJDb3JlOjpG
cmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuVW5k
bygpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBjYW5SZWRvKCkgY29uc3Q7CisgICAgdmlydHVh
bCB2b2lkIHJlZ2lzdGVyQ29tbWFuZEZvclVuZG8oUGFzc1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29t
bWFuZD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckNvbW1hbmRGb3JSZWRv
KFBhc3NSZWZQdHI8V2ViQ29yZTo6RWRpdENvbW1hbmQ+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwg
Ym9vbCBjYW5Db3B5Q3V0KFdlYkNvcmU6OkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5QYXN0ZShXZWJDb3JlOjpGcmFtZSosIGJv
b2wgZGVmYXVsdFZhbHVlKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuVW5k
bygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjYW5SZWRvKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHVuZG8oKTsKLSAgICB2aXJ0dWFsIHZvaWQg
cmVkbygpOworICAgIHZpcnR1YWwgdm9pZCB1bmRvKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHJlZG8oKSBPVkVSUklERTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5Ym9h
cmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUlucHV0TWV0aG9kS2V5ZG93bihXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CisgICAgdmlydHVh
bCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oV2ViQ29yZTo6
S2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERp
ZEJlZ2luRWRpdGluZyhXZWJDb3JlOjpFbGVtZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRG
aWVsZERpZEVuZEVkaXRpbmcoV2ViQ29yZTo6RWxlbWVudCopOwotICAgIHZpcnR1YWwgdm9pZCB0
ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQoV2ViQ29yZTo6RWxlbWVudCopOwotICAgIHZpcnR1YWwg
Ym9vbCBkb1RleHRGaWVsZENvbW1hbmRGcm9tRXZlbnQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNv
cmU6OktleWJvYXJkRXZlbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJ
blRleHRGaWVsZChXZWJDb3JlOjpFbGVtZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIHRleHREaWRD
aGFuZ2VJblRleHRBcmVhKFdlYkNvcmU6OkVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4
dEZpZWxkRGlkQmVnaW5FZGl0aW5nKFdlYkNvcmU6OkVsZW1lbnQqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgdGV4dEZpZWxkRGlkRW5kRWRpdGluZyhXZWJDb3JlOjpFbGVtZW50KikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRleHRGaWVsZChXZWJDb3Jl
OjpFbGVtZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGRvVGV4dEZpZWxkQ29tbWFu
ZEZyb21FdmVudChXZWJDb3JlOjpFbGVtZW50KiwgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKFdl
YkNvcmU6OkVsZW1lbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dERpZENoYW5n
ZUluVGV4dEFyZWEoV2ViQ29yZTo6RWxlbWVudCopIE9WRVJSSURFOwogICAgIAotICAgIHZpcnR1
YWwgdm9pZCBpZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KGNvbnN0IFdURjo6U3RyaW5nJik7Ci0g
ICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1
YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBp
bnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5ndGgpOwotICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxlZFdv
cmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZT
dHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVuZ3RoLCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpHcmFt
bWFyRGV0YWlsPiYsIGludCogYmFkR3JhbW1hckxvY2F0aW9uLCBpbnQqIGJhZEdyYW1tYXJMZW5n
dGgpOwotICAgIHZpcnR1YWwgdm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBVQ2hhciog
dGV4dCwgaW50IGxlbmd0aCwgV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdU
eXBlcywgV1RGOjpWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cyk7
Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25z
dCBXVEY6OlN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKTsKLSAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6OlN0
cmluZyYpOwotICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNob3cpOwotICAg
IHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIGdl
dEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3RyaW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmlu
ZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpTdHJpbmc+JiBndWVzc2VzKTsKLSAgICB2aXJ0
dWFsIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
SW5wdXRNZXRob2RTdGF0ZShib29sIGVuYWJsZWQpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRl
eHRDaGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpOworICAgIHZpcnR1YWwgdm9p
ZCBpZ25vcmVXb3JkSW5TcGVsbERvY3VtZW50KGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGxlYXJuV29yZChjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBp
bnQgbGVuZ3RoLCBpbnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGludCogbWlzc3BlbGxpbmdMZW5n
dGgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2V0QXV0b0NvcnJlY3RTdWdn
ZXN0aW9uRm9yTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2hlY2tHcmFtbWFyT2ZTdHJpbmcoY29uc3QgVUNoYXIqLCBpbnQgbGVu
Z3RoLCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludCogYmFkR3JhbW1h
ckxvY2F0aW9uLCBpbnQqIGJhZEdyYW1tYXJMZW5ndGgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwg
V2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU1hc2sgY2hlY2tpbmdUeXBlcywgV1RGOjpWZWN0b3I8
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhjb25zdCBXVEY6OlN0
cmluZyYsIGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6OlN0
cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzaG93U3BlbGxpbmdVSShib29sIHNo
b3cpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3Ry
aW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpT
dHJpbmc+JiBndWVzc2VzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sIGVuYWJsZWQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyhXZWJDb3JlOjpTcGVsbENoZWNrZXIqLCBpbnQsIFdlYkNvcmU6OlRleHRD
aGVja2luZ1R5cGVNYXNrLCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOwogI2lmICFkZWZp
bmVkKEJVSUxESU5HX09OX0xFT1BBUkQpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVP
UEFSRCkKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3Jy
ZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91
bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0
ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzQ29y
cmVjdGlvblBhbmVsKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwp
OwotICAgIHZpcnR1YWwgU3RyaW5nIGRpc21pc3NDb3JyZWN0aW9uUGFuZWxTb29uKFdlYkNvcmU6
OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpOwotICAgIHZpcnR1YWwgdm9pZCBy
ZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKEF1dG9jb3JyZWN0aW9uUmVzcG9uc2VUeXBlLCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3Ry
aW5nKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpDb3Jy
ZWN0aW9uUGFuZWxJbmZvOjpQYW5lbFR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91
bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0
ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
aXNtaXNzQ29ycmVjdGlvblBhbmVsKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0
aW9uUGFuZWwpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGRpc21pc3NDb3JyZWN0aW9u
UGFuZWxTb29uKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdDb3JyZWN0aW9uUGFuZWwpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKEF1
dG9jb3JyZWN0aW9uUmVzcG9uc2VUeXBlLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBj
b25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKSBPVkVSUklERTsKICNlbmRpZgogcHJpdmF0
ZToKICAgICB2b2lkIHJlZ2lzdGVyQ29tbWFuZEZvclVuZG9PclJlZG8oUGFzc1JlZlB0cjxXZWJD
b3JlOjpFZGl0Q29tbWFuZD4sIGJvb2wgaXNSZWRvKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2
aXNpb24gOTU4MzQpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSwxNzkgKzU1LDE3OSBAQCBwdWJs
aWM6CiAKICAgICBXZWJGcmFtZSogd2ViRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX3dlYkZyYW1l
LmdldCgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBPVkVSUklERTsKICAgICB2b2lk
IHJlY2VpdmVkUG9saWN5RGVjaXNvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pOwogCiBwcml2YXRl
OgotICAgIHZpcnR1YWwgYm9vbCBoYXNXZWJWaWV3KCkgY29uc3Q7IC8vIG1haW5seSBmb3IgYXNz
ZXJ0aW9ucworICAgIHZpcnR1YWwgYm9vbCBoYXNXZWJWaWV3KCkgY29uc3QgT1ZFUlJJREU7IC8v
IG1haW5seSBmb3IgYXNzZXJ0aW9ucwogCi0gICAgdmlydHVhbCB2b2lkIG1ha2VSZXByZXNlbnRh
dGlvbihXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOwotICAgIHZpcnR1YWwgYm9vbCBoYXNIVE1M
VmlldygpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBmb3JjZUxheW91dCgpOwotICAgIHZpcnR1
YWwgdm9pZCBmb3JjZUxheW91dEZvck5vbkhUTUwoKTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFrZVJl
cHJlc2VudGF0aW9uKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIGhhc0hUTUxWaWV3KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGZvcmNlTGF5b3V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0Rm9y
Tm9uSFRNTCgpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIHNldENvcGllc09uU2Nyb2xs
KCk7CisgICAgdmlydHVhbCB2b2lkIHNldENvcGllc09uU2Nyb2xsKCkgT1ZFUlJJREU7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MigpOwotICAgIHZpcnR1YWwgdm9pZCBk
ZXRhY2hlZEZyb21QYXJlbnQzKCk7CisgICAgdmlydHVhbCB2b2lkIGRldGFjaGVkRnJvbVBhcmVu
dDIoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoZWRGcm9tUGFyZW50MygpIE9W
RVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIGRvd25sb2FkKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZp
cnR1YWwgdm9pZCBkb3dubG9hZChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwg
dm9pZCBhc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jik7CisgICAgdmlydHVhbCB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1
ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJik7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoV2ViQ29y
ZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBPVkVSUklERTsKICNpZiBVU0UoUFJPVEVDVElP
Tl9TUEFDRV9BVVRIX0NBTExCQUNLKQotICAgIHZpcnR1YWwgYm9vbCBjYW5BdXRoZW50aWNhdGVB
Z2FpbnN0UHJvdGVjdGlvblNwYWNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmKTsKKyAgICB2
aXJ0dWFsIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlJikgT1ZFUlJJREU7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChXZWJDb3Jl
OjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50IGRhdGFMZW5n
dGgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7Ci0K
LSAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVS
TFJlc3BvbnNlKikgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRIYW5kbGVP
bmxvYWRFdmVudHMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVy
UmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6S1VSTCYsIGRvdWJsZSBpbnRlcnZh
bCwgZG91YmxlIGZpcmVEYXRlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VM
b2NhdGlvbldpdGhpblBhZ2UoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRQdXNoU3Rh
dGVXaXRoaW5QYWdlKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVwbGFjZVN0YXRl
V2l0aGluUGFnZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFBvcFN0YXRlV2l0aGlu
UGFnZSgpOwotICAgIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxDbG9zZSgpOwotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVJY29uKCk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRSZWNlaXZlVGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYp
OwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25U
eXBlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDb21taXRMb2FkKCk7Ci0gICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJik7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZEZpbmlzaERvY3VtZW50TG9hZCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpbmlz
aExvYWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaXJzdExheW91dCgpOwotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCgpOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpEb2N1
bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJl
Y2VpdmVDb250ZW50TGVuZ3RoKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllcikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGlkRmFpbExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKKworICAg
IHZpcnR1YWwgTlNDYWNoZWRVUkxSZXNwb25zZSogd2lsbENhY2hlUmVzcG9uc2UoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVz
cG9uc2UqKSBjb25zdCBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEhh
bmRsZU9ubG9hZEV2ZW50cygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25z
dCBXZWJDb3JlOjpLVVJMJiwgZG91YmxlIGludGVydmFsLCBkb3VibGUgZmlyZURhdGUpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFn
ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFB1c2hTdGF0ZVdpdGhp
blBhZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZXBsYWNlU3Rh
dGVXaXRoaW5QYWdlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUG9w
U3RhdGVXaXRoaW5QYWdlKCkgT1ZFUlJJREU7CisgICAgCisgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoV2lsbENsb3NlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVj
ZWl2ZUljb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRTdGFydFBy
b3Zpc2lvbmFsTG9hZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJl
Y2VpdmVUaXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5
cGUpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZpcnN0TGF5b3V0KCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
KCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0
ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpOwotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaFNob3coKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENy
ZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVu
Y3Rpb24sIAogICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24s
Ci0gICAgICAgIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGNvbnN0
IFdURjo6U3RyaW5nJiBmcmFtZU5hbWUpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0
aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpGb3JtU3RhdGU+LCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBQYXNz
UmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4pOwotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xp
Y3lDaGVjaygpOworICAgICAgICBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3Rh
dGU+KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSBPVkVS
UklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hVbmFibGVUb0ltcGxlbWVudFBvbGljeShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikg
T1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50
KFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aFdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIFBhc3NSZWZQdHI8
V2ViQ29yZTo6Rm9ybVN0YXRlPik7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRT
dWJtaXRFdmVudChXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQqKSBPVkVSUklERSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4pIE9WRVJSSURFOwogCi0gICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTG9hZE1haW5SZXNvdXJjZShXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciopOwotICAgIHZpcnR1YWwgdm9pZCByZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGUoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWFpbkRvY3VtZW50
RXJyb3IoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJik7Ci0gICAgdmlydHVhbCBib29sIGRpc3BhdGNoRGlkTG9hZFJlc291cmNlRnJvbU1lbW9y
eUNhY2hlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGludCBsZW5ndGgpOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZExvYWRNYWluUmVzb3VyY2UoV2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmV2ZXJ0VG9Qcm92aXNp
b25hbFN0YXRlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHNldE1haW5Eb2N1bWVudEVycm9yKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBk
aXNwYXRjaERpZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShXZWJDb3JlOjpEb2N1bWVudExv
YWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmLCBpbnQgbGVuZ3RoKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQ2hhbmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hh
bmdlRXN0aW1hdGVkUHJvZ3Jlc3MoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFByb2dyZXNzU3Rh
cnRlZE5vdGlmaWNhdGlvbigpOwotICAgIHZpcnR1YWwgdm9pZCBwb3N0UHJvZ3Jlc3NFc3RpbWF0
ZUNoYW5nZWROb3RpZmljYXRpb24oKTsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFByb2dyZXNzRmlu
aXNoZWROb3RpZmljYXRpb24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENoYW5nZUVzdGltYXRl
ZFByb2dyZXNzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUVzdGltYXRl
ZFByb2dyZXNzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHBvc3RQcm9ncmVzc1N0YXJ0
ZWROb3RpZmljYXRpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdFByb2dyZXNz
RXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9uKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKCkgT1ZFUlJJREU7CiAgICAgCi0gICAg
dmlydHVhbCB2b2lkIHNldE1haW5GcmFtZURvY3VtZW50UmVhZHkoYm9vbCk7CisgICAgdmlydHVh
bCB2b2lkIHNldE1haW5GcmFtZURvY3VtZW50UmVhZHkoYm9vbCkgT1ZFUlJJREU7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgc3RhcnREb3dubG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZE5hbWUgPSBTdHJpbmcoKSk7CisgICAgdmlydHVhbCB2
b2lkIHN0YXJ0RG93bmxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiBzdWdnZXN0ZWROYW1lID0gU3RyaW5nKCkpIE9WRVJSSURFOwogCi0gICAgdmlydHVh
bCB2b2lkIHdpbGxDaGFuZ2VUaXRsZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRDaGFuZ2VUaXRsZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOworICAg
IHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlVGl0bGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVGl0bGUoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBjb21taXR0ZWRMb2FkKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgY2hhciosIGludCk7Ci0gICAgdmlydHVhbCB2
b2lkIGZpbmlzaGVkTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciopOwotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5KCk7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUds
b2JhbEhpc3RvcnlSZWRpcmVjdExpbmtzKCk7CisgICAgdmlydHVhbCB2b2lkIGNvbW1pdHRlZExv
YWQoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50KSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoZWRMb2FkaW5nKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnkoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeVJlZGlyZWN0TGlua3Mo
KSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRHb1RvSGlzdG9yeUl0ZW0oV2Vi
Q29yZTo6SGlzdG9yeUl0ZW0qKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcExv
YWRpbmdGb3JIaXN0b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopIGNvbnN0OwotICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5SXRlbUZvclBhZ2UoKTsKKyAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkR29Ub0hpc3RvcnlJdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKikgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0
ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlR2xvYmFsSGlzdG9yeUl0ZW1Gb3JQYWdlKCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRSdW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJD
b3JlOjpLVVJMJik7CisgICAgdmlydHVhbCB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYpIE9WRVJSSURFOwogCi0g
ICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAg
dmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2FuY2Vs
bGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgY2Fubm90U2hvd1VSTEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBpbnRlcnJ1
cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNo
b3dNSU1FVHlwZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2
aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNo
b3dNSU1FVHlwZUVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVy
cm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRmFsbEJhY2soY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRGYWxsQmFjayhjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikg
T1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHVzZXJBZ2VudChjb25zdCBXZWJD
b3JlOjpLVVJMJik7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyB1c2VyQWdlbnQoY29uc3QgV2Vi
Q29yZTo6S1VSTCYpIE9WRVJSSURFOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzYXZlUGxhdGZv
cm1EYXRhVG9DYWNoZWRGcmFtZShXZWJDb3JlOjpDYWNoZWRGcmFtZSopOwotICAgIHZpcnR1YWwg
dm9pZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVk
RnJhbWUqKTsKLSAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFn
ZSgpOworICAgIHZpcnR1YWwgdm9pZCBzYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRGcmFtZShXZWJD
b3JlOjpDYWNoZWRGcmFtZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9u
VG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJhbWUqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpIE9W
RVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTYXZlVG9QYWdlQ2FjaGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzdG9y
ZUZyb21QYWdlQ2FjaGUoKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZEJlY29tZUZyYW1lc2V0KGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29t
ZUZyYW1lc2V0KGJvb2wpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIGNhbkhhbmRsZVJl
cXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7Ci0gICAgdmlydHVh
bCBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBXVEY6OlN0cmluZyYgTUlNRVR5cGUpIGNvbnN0
OwotICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgV1RGOjpTdHJp
bmcmIE1JTUVUeXBlKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgcmVwcmVzZW50YXRpb25FeGlz
dHNGb3JVUkxTY2hlbWUoY29uc3QgV1RGOjpTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3Q7Ci0gICAg
dmlydHVhbCBXVEY6OlN0cmluZyBnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25zdCBX
VEY6OlN0cmluZyYgVVJMU2NoZW1lKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGFuZGxl
UmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd01JTUVUeXBlKGNvbnN0IFdURjo6U3RyaW5nJiBNSU1F
VHlwZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNhblNob3dNSU1FVHlwZUFz
SFRNTChjb25zdCBXVEY6OlN0cmluZyYgTUlNRVR5cGUpIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgYm9vbCByZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBXVEY6OlN0
cmluZyYgVVJMU2NoZW1lKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0IFdURjo6U3RyaW5nJiBVUkxTY2hl
bWUpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIGZyYW1lTG9hZENvbXBsZXRl
ZCgpOwotICAgIHZpcnR1YWwgdm9pZCBzYXZlVmlld1N0YXRlVG9JdGVtKFdlYkNvcmU6Okhpc3Rv
cnlJdGVtKik7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVWaWV3U3RhdGUoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5pc2hMb2FkKCk7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNlUmVwbGFj
ZW1lbnQoKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+
IGNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhJik7CisgICAgdmlydHVhbCB2b2lkIGZyYW1lTG9h
ZENvbXBsZXRlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzYXZlVmlld1N0YXRlVG9J
dGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJl
c3RvcmVWaWV3U3RhdGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxM
b2FkU3RhcnRlZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKCkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNlUmVwbGFjZW1l
bnQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXI+IGNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhJikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgV2ViQ29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYsIGNv
bnN0IFdlYkNvcmU6OktVUkwmKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgV2Vi
Q29yZTo6U3RyaW5nV2l0aERpcmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OktVUkwmKSBPVkVSUklE
RTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGcmFtZT4gY3JlYXRlRnJhbWUo
Y29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSwgV2ViQ29y
ZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50KiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xs
aW5nLCBpbnQgbWFyZ2luV2lkdGgsIGludCBtYXJnaW5IZWlnaHQpOwotICAgIHZpcnR1YWwgdm9p
ZCBkaWRUcmFuc2ZlckNoaWxkRnJhbWVUb05ld0RvY3VtZW50KFdlYkNvcmU6OlBhZ2UqIG9sZFBh
Z2UpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdURjo6
U3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwg
aW50IG1hcmdpbkhlaWdodCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVy
Q2hpbGRGcmFtZVRvTmV3RG9jdW1lbnQoV2ViQ29yZTo6UGFnZSogb2xkUGFnZSkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIHRyYW5zZmVyTG9hZGluZ1Jlc291cmNlRnJvbVBhZ2UoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJD
b3JlOjpQYWdlKiBvbGRQYWdlKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6V2lk
Z2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxQ
bHVnSW5FbGVtZW50KiwgY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNvbnN0IFZlY3RvcjxXVEY6OlN0
cmluZz4mLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
VmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6U3RyaW5nJiwgYm9vbCk7Ci0gICAgdmly
dHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdldCogcGx1Z2luV2lk
Z2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZl
Y3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQqIHBs
dWdpbldpZGdldCkgT1ZFUlJJREU7CiAgICAgCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNv
cmU6OldpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBiYXNl
VVJMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxXVEY6
OlN0cmluZz4mIHBhcmFtVmFsdWVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbU5hbWVz
LCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiBwYXJhbVZhbHVlcykgT1ZFUlJJREU7CiAgICAg
CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlTWVkaWFQbGF5ZXJQcm94eVBsdWdpbihjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCosIGNvbnN0IFdlYkNv
cmU6OktVUkwmLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0
IFdURjo6U3RyaW5nJik7Ci0gICAgdmlydHVhbCB2b2lkIGhpZGVNZWRpYVBsYXllclByb3h5UGx1
Z2luKFdlYkNvcmU6OldpZGdldCopOwotICAgIHZpcnR1YWwgdm9pZCBzaG93TWVkaWFQbGF5ZXJQ
cm94eVBsdWdpbihXZWJDb3JlOjpXaWRnZXQqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFdU
Rjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGhpZGVNZWRpYVBsYXllclByb3h5UGx1Z2luKFdlYkNvcmU6OldpZGdldCopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBzaG93TWVkaWFQbGF5ZXJQcm94eVBsdWdpbihXZWJDb3JlOjpX
aWRnZXQqKSBPVkVSUklERTsKICNlbmRpZgogICAgIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6T2Jq
ZWN0Q29udGVudFR5cGUgb2JqZWN0Q29udGVudFR5cGUoY29uc3QgV2ViQ29yZTo6S1VSTCYsIGNv
bnN0IFdURjo6U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBzaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1h
Z2VzKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG92ZXJyaWRlTWVkaWFUeXBlKCkgY29uc3Q7
CisgICAgdmlydHVhbCBXZWJDb3JlOjpPYmplY3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50VHlw
ZShjb25zdCBXZWJDb3JlOjpLVVJMJiwgY29uc3QgV1RGOjpTdHJpbmcmIG1pbWVUeXBlLCBib29s
IHNob3VsZFByZWZlclBsdWdJbnNGb3JJbWFnZXMpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgb3ZlcnJpZGVNZWRpYVR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICAKLSAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoV2ViQ29yZTo6
RE9NV3JhcHBlcldvcmxkKik7Ci0gICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RWxlbWVudEF2YWls
YWJsZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29u
c3Q7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxk
KFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBk
b2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UGVyZm9ybUZpcnN0TmF2aWdhdGlvbigpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2
b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3Rlbik7CisgICAgdmlydHVh
bCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29sIGxpc3RlbikgT1ZFUlJJREU7
CiAKICNpZiBFTkFCTEUoSkFWQV9CUklER0UpCi0gICAgdmlydHVhbCBqb2JqZWN0IGphdmFBcHBs
ZXQoTlNWaWV3Kik7CisgICAgdmlydHVhbCBqb2JqZWN0IGphdmFBcHBsZXQoTlNWaWV3KikgT1ZF
UlJJREU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIFJlbW90ZUFY
T2JqZWN0UmVmIGFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSB7IHJldHVybiAwOyB9CisgICAg
dmlydHVhbCBSZW1vdGVBWE9iamVjdFJlZiBhY2Nlc3NpYmlsaXR5UmVtb3RlT2JqZWN0KCkgT1ZF
UlJJREUgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAgICAgCiAgICAgdm9pZCBzZXRPcmlnaW5hbFVS
TEZvckRvd25sb2FkKFdlYkRvd25sb2FkICosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAkocmV2aXNpb24gOTU4MzQp
CisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDggQEAgcHJpdmF0ZToKICAgICB7
CiAgICAgfQogCi0gICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29u
c3Q7Ci0gICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxl
ZFJ1bkxvb3BQYWlycygpIGNvbnN0OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlNjaGVkdWxlUGFpckhhc2hTZXQqIHNj
aGVkdWxlZFJ1bkxvb3BQYWlycygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JikgY29uc3QgT1ZFUlJJREU7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5oCShyZXZpc2lvbiA5
NTgzNCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDE1ICszNywxNSBAQCBwdWJsaWM6CiAgICAg
V2ViR2VvbG9jYXRpb25DbGllbnQoV2ViVmlldyAqKTsKICAgICBXZWJWaWV3ICp3ZWJWaWV3KCkg
eyByZXR1cm4gbV93ZWJWaWV3OyB9CiAKLSAgICB2b2lkIGdlb2xvY2F0aW9uRGVzdHJveWVkKCk7
Ci0gICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7Ci0gICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKLSAg
ICB2b2lkIHNldEVuYWJsZUhpZ2hBY2N1cmFjeShib29sKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
Z2VvbG9jYXRpb25EZXN0cm95ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRV
cGRhdGluZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlSGlnaEFjY3VyYWN5KGJvb2wpIE9WRVJS
SURFIHsgfQogCi0gICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiogbGFzdFBvc2l0aW9u
KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uKiBsYXN0UG9zaXRp
b24oKSBPVkVSUklERTsKIAotICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6R2Vv
bG9jYXRpb24qKTsKLSAgICB2b2lkIGNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0KFdlYkNvcmU6Okdl
b2xvY2F0aW9uKikgeyB9OworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJD
b3JlOjpHZW9sb2NhdGlvbiopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQZXJt
aXNzaW9uUmVxdWVzdChXZWJDb3JlOjpHZW9sb2NhdGlvbiopIE9WRVJSSURFIHsgfTsKIAogcHJp
dmF0ZToKICAgICBXZWJWaWV3ICptX3dlYlZpZXc7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJY29uRGF0YWJhc2VDbGllbnQuaAkocmV2
aXNpb24gOTU4MzQpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJY29u
RGF0YWJhc2VDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTAgKzMxLDEwIEBACiAKIGNs
YXNzIFdlYkljb25EYXRhYmFzZUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpJY29uRGF0YWJhc2VD
bGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtSW1wb3J0KCk7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZFJlbW92ZUFsbEljb25zKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZElt
cG9ydEljb25VUkxGb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRJbXBvcnRJY29uRGF0YUZvclBhZ2VVUkwoY29uc3QgU3RyaW5nJik7Ci0gICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZUljb25Gb3JQYWdlVVJMKGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRGaW5pc2hVUkxJbXBvcnQoKTsKKyAgICB2aXJ0dWFsIGJvb2wgcGVyZm9ybUltcG9y
dCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVBbGxJY29ucygpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRJbXBvcnRJY29uVVJMRm9yUGFnZVVSTChjb25zdCBT
dHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkSW1wb3J0SWNvbkRhdGFGb3JQ
YWdlVVJMKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VJY29uRm9yUGFnZVVSTChjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoVVJMSW1wb3J0KCkgT1ZFUlJJREU7CiB9OwpJbmRleDogU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgJKHJl
dmlzaW9uIDk1ODM0KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDE0ICs1NSwxNCBAQCBjbGFzcyBX
ZWJJbnNwZWN0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yCiBwdWJsaWM6CiAgICAgV2ViSW5zcGVj
dG9yQ2xpZW50KFdlYlZpZXcgKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdG9yRGVzdHJv
eWVkKCk7CisgICAgdmlydHVhbCB2b2lkIGluc3BlY3RvckRlc3Ryb3llZCgpIE9WRVJSSURFOwog
Ci0gICAgdmlydHVhbCB2b2lkIG9wZW5JbnNwZWN0b3JGcm9udGVuZChXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyKik7CisgICAgdmlydHVhbCB2b2lkIG9wZW5JbnNwZWN0b3JGcm9udGVuZChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyKikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgaGlnaGxpZ2h0KCk7Ci0gICAgdmlydHVhbCB2b2lkIGhpZGVIaWdobGlnaHQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgaGlnaGxpZ2h0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGhpZGVI
aWdobGlnaHQoKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRvRnJv
bnRlbmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VuZE1lc3NhZ2VU
b0Zyb250ZW5kKGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CiAKICAgICBib29sIGluc3Bl
Y3RvclN0YXJ0c0F0dGFjaGVkKCk7CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JTdGFydHNBdHRhY2hl
ZChib29sKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiA5NTgzNCkKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSwyMCArMzksMjAgQEAgcHJpdmF0ZToKICAgICBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMoKTsKICAgICAKICAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXMKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneSogY3JlYXRlQ29va2llc1N0cmF0ZWd5
KCk7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3Ry
YXRlZ3koKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0
ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkNvb2tpZXNTdHJh
dGVneSogY3JlYXRlQ29va2llc1N0cmF0ZWd5KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBXZWJD
b3JlOjpQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3koKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5r
U3RyYXRlZ3koKSBPVkVSUklERTsKIAogICAgIC8vIFdlYkNvcmU6OkNvb2tpZXNTdHJhdGVneQot
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDb29raWVzQ2hhbmdlZCgpOworICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlDb29raWVzQ2hhbmdlZCgpIE9WRVJSSURFOwogCiAgICAgLy8gV2ViQ29yZTo6UGx1
Z2luU3RyYXRlZ3kKLSAgICB2aXJ0dWFsIHZvaWQgcmVmcmVzaFBsdWdpbnMoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZ2V0UGx1Z2luSW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiwgVmVjdG9yPFdlYkNv
cmU6OlBsdWdpbkluZm8+Jik7CisgICAgdmlydHVhbCB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldFBsdWdpbkluZm8oY29uc3QgV2ViQ29yZTo6UGFn
ZSosIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpIE9WRVJSSURFOwogCiAgICAgLy8gV2Vi
Q29yZTo6VmlzaXRlZExpbmtTdHJhdGVneQotICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtWaXNpdGVk
KFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCwgY29uc3QgV2ViQ29yZTo6S1VSTCYg
YmFzZVVSTCwgY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGF0dHJpYnV0ZVVSTCk7Ci0gICAgdmly
dHVhbCB2b2lkIGFkZFZpc2l0ZWRMaW5rKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFz
aCk7CisgICAgdmlydHVhbCBib29sIGlzTGlua1Zpc2l0ZWQoV2ViQ29yZTo6UGFnZSosIFdlYkNv
cmU6OkxpbmtIYXNoLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBiYXNlVVJMLCBjb25zdCBXVEY6OkF0
b21pY1N0cmluZyYgYXR0cmlidXRlVVJMKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRk
VmlzaXRlZExpbmsoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtIYXNoKSBPVkVSUklERTsK
IH07CiAKICNlbmRpZiAvLyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXNfaAo=
</data>
<flag name="review"
          id="105488"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>