<?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>116732</bug_id>
          
          <creation_ts>2013-05-24 11:33:05 -0700</creation_ts>
          <short_desc>Remove PagePopup code</short_desc>
          <delta_ts>2013-05-24 12:06:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          <cc>gtk-ews</cc>
    
    <cc>rego+ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>893393</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-24 11:33:05 -0700</bug_when>
    <thetext>Remove PagePopup code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893394</commentid>
    <comment_count>1</comment_count>
      <attachid>202840</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-24 11:35:04 -0700</bug_when>
    <thetext>Created attachment 202840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893401</commentid>
    <comment_count>2</comment_count>
      <attachid>202840</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-05-24 11:47:37 -0700</bug_when>
    <thetext>Comment on attachment 202840
Patch

rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893402</commentid>
    <comment_count>3</comment_count>
      <attachid>202840</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-05-24 11:51:02 -0700</bug_when>
    <thetext>Comment on attachment 202840
Patch

Attachment 202840 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/686133</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893405</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-24 12:06:39 -0700</bug_when>
    <thetext>Committed r150652: &lt;http://trac.webkit.org/changeset/150652&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202840</attachid>
            <date>2013-05-24 11:35:04 -0700</date>
            <delta_ts>2013-05-24 11:51:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116732-20130524113348.patch</filename>
            <type>text/plain</type>
            <size>64220</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDhkOTY4OGE0MmEwN2ZmYjE1YmViMjc4
NjY4YzY5ZWE5YWEzMTYyYzIuLmY2MTU5MjZiNjNhNzI2NmZlZWNhNTUzYTAwODAzMTc4MDZkMWFh
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDUtMjQgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFnZVBvcHVwIGNvZGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjczMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBFTkFCTEVf
UEFHRV9QT1BVUC4KKworICAgICAgICAqIHd0Zi9GZWF0dXJlRGVmaW5lcy5oOgorCiAyMDEzLTA1
LTIzICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtXaW5k
b3dzXSBSb2xsaW5nIGJhY2sgcjE1MDYwMCBhcyBpdCBicmVha3MgdGhlIFZTMjAxMCBidWlsZHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZDdlYWE1M2FlYWVkN2JkOTk3NTA2MTNmZmExZTUyMmExNmMyMTI2ZC4u
ZDAxMWViNjRhMTM5ZGI0ZjhlZWQ5MTE1NzNhMjYxZWVkYTU2YTQwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM4IEBACisyMDEzLTA1LTI0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhZ2VQb3B1cCBjb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY3MzIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYWxsIHBhZ2UgcG9wdXAgY29k
ZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMu
Y3BwOgorICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuaDoKKyAgICAgICAgKiBsb2FkZXIv
RW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvd1BhZ2VQb3B1cC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9E
T01XaW5kb3dQYWdlUG9wdXAuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvd1Bh
Z2VQb3B1cC5pZGw6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9QYWdlUG9wdXAuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VQb3B1cENsaWVudC5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogcGFnZS9QYWdlUG9wdXBDbGllbnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VQ
b3B1cENvbnRyb2xsZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBhZ2UvUGFnZVBvcHVwQ29u
dHJvbGxlci5oOiBSZW1vdmVkLgorICAgICAgICAqIHBhZ2UvUGFnZVBvcHVwQ29udHJvbGxlci5p
ZGw6IFJlbW92ZWQuCisgICAgICAgICogcGFnZS9QYWdlUG9wdXBEcml2ZXIuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
SW50ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisgICAgICAgICog
dGVzdGluZy9Nb2NrUGFnZVBvcHVwRHJpdmVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0
aW5nL01vY2tQYWdlUG9wdXBEcml2ZXIuaDogUmVtb3ZlZC4KKwogMjAxMy0wNS0yNCAgQWxiZXJ0
byBHYXJjaWEgIDxhZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUGF0aDogdXBzdHJlYW0g
dGhlIG1pc3NpbmcgYml0cyBmcm9tIHRoZSBCbGFja0JlcnJ5IHBvcnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCmluZGV4IDhkNDhiNGEzODhhMDliM2FjOTlmZjEyYWJiNDllYjExMTZiN2Fl
M2IuLmE4NzZiYzM4N2Y5NjI4MGQ5MWVmYTRiNDMzMmM2M2QxY2U3NzAxM2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTA1LTI0ICBBbmRlcnMg
Q2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhZ2VQb3B1
cCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTY3MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmluOgorICAgICAgICBSZW1v
dmUgUEFHRV9QT1BVUC4KKwogMjAxMy0wNS0yNCAgTWlrZSBGZW50b24gIDxtaWZlbnRvbkByaW0u
Y29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBGaXggYmFkIHR5cGUgd2FybmluZyBpbiBJbnB1
dEhhbmRsZXIgbG9nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMu
aCBiL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKaW5kZXggODlmMzA2NmY2MDkzOTY1
ZThhZDUwMjliMjNiMDY5ZGJmZDJlMTc4OC4uNTY3ZTUzNDk3NmFiNDk2MDZkOTMwZWIzMGYzMzYz
ZTk1ZjgxZjYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCkBAIC02NDQsMTAgKzY0NCw2IEBA
CiAjZGVmaW5lIEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgMAogI2VuZGlmCiAKLSNpZiAhZGVm
aW5lZChFTkFCTEVfUEFHRV9QT1BVUCkKLSNkZWZpbmUgRU5BQkxFX1BBR0VfUE9QVVAgMAotI2Vu
ZGlmCi0KICNpZiAhZGVmaW5lZChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkKICNkZWZpbmUg
RU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgMAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQppbmRleCBiYWU1ZjM5M2ZiOWRlNjhlNjY4OWJhMjczZmVkOTY1NTc2YjM5NmNjLi45
YzMzZWQwNDlkZjBmNTA3MjQxYjIzZTk5M2EwMTk3MjMwZTU1NWYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTQyNzYsOSArNDI3Niw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VH
cm91cExvYWREZWZlcnJlci5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cC5oIFwK
LQlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENsaWVudC5oIFwKLQlTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VQb3B1cERyaXZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJp
YWxpemVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNjY0ZDUy
MDFiMGQ2MWQ2YTY2NDUxYzJiOGQ1MTVjODcxZTIyNzk1Li5kMzdjYzhjZjAxYWY2ZTg0YzQyZTMz
ZGVkMTVhODUyNmZkYWJhZDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NjMxLDExICs1NjMxLDYgQEAKIAkJRjRFQUY0QUYx
MEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyog
T3BlblR5cGVTYW5pdGl6ZXIuaCAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8q
IEZvcm1Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAg
Ki87IH07CiAJCUY1MDY2NEY4MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwNjY0RjYxNTdG
NTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmggKi87IH07Ci0JCUY1MDgyNDY5MTU0OEQ4
OUEwMEExMTlBQiAvKiBQYWdlUG9wdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MDgyNDY4MTU0OEQ4OUEwMEExMTlBQiAvKiBQYWdlUG9wdXAuaCAq
LzsgfTsKLQkJRjUwODI0NkIxNTQ4RDhFMTAwQTExOUFCIC8qIFBhZ2VQb3B1cENsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUwODI0NkExNTQ4
RDhFMTAwQTExOUFCIC8qIFBhZ2VQb3B1cENsaWVudC5oICovOyB9OwotCQlGNTA4MjQ2RTE1NDhE
OTYyMDBBMTE5QUIgLyogTW9ja1BhZ2VQb3B1cERyaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTA4MjQ2QzE1NDhEOTYyMDBBMTE5QUIgLyog
TW9ja1BhZ2VQb3B1cERyaXZlci5jcHAgKi87IH07Ci0JCUY1MDgyNDZGMTU0OEQ5NjIwMEExMTlB
QiAvKiBNb2NrUGFnZVBvcHVwRHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNTA4MjQ2RDE1NDhEOTYyMDBBMTE5QUIgLyogTW9ja1BhZ2VQb3B1
cERyaXZlci5oICovOyB9OwotCQlGNTEyMkM5MDE1NDdGQTFCMDAyOEE5M0IgLyogUGFnZVBvcHVw
RHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTEyMkM4RjE1NDdGQTFCMDAyOEE5M0IgLyogUGFnZVBvcHVwRHJpdmVyLmggKi87IH07CiAJCUY1
MTNBM0VBMTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxM0EzRTkxNUZGNDg0
MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi87IH07CiAJCUY1MkFENUU0
MTUzNDI0NUYwMDU5RkJFNiAvKiBFbXB0eUNsaWVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUyQUQ1RTMxNTM0MjQ1RjAwNTlGQkU2IC8qIEVt
cHR5Q2xpZW50cy5jcHAgKi87IH07CiAJCUY1NDRGNzg4MTVDRkIyQTgwMEFGMzNBOCAvKiBQbGF0
Zm9ybUxvY2FsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTQ0Rjc4NjE1Q0ZCMkE4MDBBRjMzQTggLyogUGxhdGZvcm1Mb2NhbGUuY3BwICovOyB9
OwpAQCAtMTI0NjMsMTEgKzEyNDU4LDYgQEAKIAkJRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQzIC8q
IE9wZW5UeXBlU2FuaXRpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE9w
ZW5UeXBlU2FuaXRpemVyLmg7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyog
Rm9ybUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Rm9ybUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTA2NjRG
NjE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRm9ybUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJRjUwODI0NjgxNTQ4RDg5QTAwQTExOUFCIC8qIFBhZ2VQb3B1cC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlUG9wdXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJRjUwODI0NkExNTQ4RDhFMTAwQTExOUFCIC8qIFBhZ2VQb3B1cENsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlUG9wdXBDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjUwODI0NkMxNTQ4RDk2MjAwQTExOUFCIC8qIE1vY2tQ
YWdlUG9wdXBEcml2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
TW9ja1BhZ2VQb3B1cERyaXZlci5jcHA7IHBhdGggPSB0ZXN0aW5nL01vY2tQYWdlUG9wdXBEcml2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCUY1MDgyNDZEMTU0OEQ5NjIw
MEExMTlBQiAvKiBNb2NrUGFnZVBvcHVwRHJpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE1vY2tQYWdlUG9wdXBEcml2ZXIuaDsgcGF0aCA9IHRlc3RpbmcvTW9ja1BhZ2VQ
b3B1cERyaXZlci5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCUY1MTIyQzhGMTU0
N0ZBMUIwMDI4QTkzQiAvKiBQYWdlUG9wdXBEcml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFnZVBvcHVwRHJpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1MTNBM0U5MTVGRjQ4NDEwMDE1MjZEQiAvKiBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uTWVzc2FnZUNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTIzRDIzQjAyREU0Mzk2MDE4NjM1
Q0EgLyogSFRNTERvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlGNTIzRDIzQzAyREU0Mzk2
MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEb2N1bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE0NzgyLDggKzE0NzcyLDYg
QEAKIAkJCQk5RkZFM0U3ODExQjU5QzVEMDAzNzg3NEUgLyogTWVtb3J5SW5mby5jcHAgKi8sCiAJ
CQkJOUZGRTNFNzkxMUI1OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUluZm8uaCAqLywKIAkJCQk5RkZF
M0U3QzExQjU5QzZFMDAzNzg3NEUgLyogTWVtb3J5SW5mby5pZGwgKi8sCi0JCQkJRjUwODI0NkMx
NTQ4RDk2MjAwQTExOUFCIC8qIE1vY2tQYWdlUG9wdXBEcml2ZXIuY3BwICovLAotCQkJCUY1MDgy
NDZEMTU0OEQ5NjIwMEExMTlBQiAvKiBNb2NrUGFnZVBvcHVwRHJpdmVyLmggKi8sCiAJCQkJOTNF
QjM1NUUwOUUzN0ZENjAwRjQzNzk5IC8qIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuY3Bw
ICovLAogCQkJCTkzNUM0NzYyMDlBQzRDRTYwMEE2QUFCNCAvKiBNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSZXN1bHRzLmggKi8sCiAJCQkJQTlDNkU1QTMwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5hdmlnYXRv
ci5jcHAgKi8sCkBAIC0xNDc5OSw5ICsxNDc4Nyw2IEBACiAJCQkJOTMwMkIwQkUwRDc5RjgyQzAw
QzdFRTgzIC8qIFBhZ2VHcm91cC5oICovLAogCQkJCTdBNjc0QkQ5MEY5RUJGNEUwMDZDRjA5OSAv
KiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwICovLAogCQkJCTdBNjc0QkRBMEY5RUJGNEUwMDZD
RjA5OSAvKiBQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCAqLywKLQkJCQlGNTA4MjQ2ODE1NDhEODlB
MDBBMTE5QUIgLyogUGFnZVBvcHVwLmggKi8sCi0JCQkJRjUwODI0NkExNTQ4RDhFMTAwQTExOUFC
IC8qIFBhZ2VQb3B1cENsaWVudC5oICovLAotCQkJCUY1MTIyQzhGMTU0N0ZBMUIwMDI4QTkzQiAv
KiBQYWdlUG9wdXBEcml2ZXIuaCAqLywKIAkJCQkzNzFFNjVDRDEzNjYxRUVEMDBCRUVEQjAgLyog
UGFnZVNlcmlhbGl6ZXIuY3BwICovLAogCQkJCTM3MUU2NUNCMTM2NjFFREMwMEJFRURCMCAvKiBQ
YWdlU2VyaWFsaXplci5oICovLAogCQkJCUZGRDVCOTc3MTM1Q0M5NzgwMEQ1RTkyQSAvKiBQYWdl
VmlzaWJpbGl0eVN0YXRlLmNwcCAqLywKQEAgLTIyOTAzLDcgKzIyODg4LDYgQEAKIAkJCQkzN0RE
Q0Q5NTEzODQ0RkQ1MDAwOEI3OTMgLyogTUlNRUhlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM3NzJDNEYwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUyRjEwODY2MTYyQjZEQTgwMDlBQzgxRSAvKiBNaXhlZENvbnRlbnRDaGVja2Vy
LmggaW4gSGVhZGVycyAqLywKLQkJCQlGNTA4MjQ2RjE1NDhEOTYyMDBBMTE5QUIgLyogTW9ja1Bh
Z2VQb3B1cERyaXZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZENzRBRDUwOUFBMjgyRTAwMEIw
QTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1
QjNEQzYxMjUxRjEyRDAwM0VGMjY5IC8qIE1vbnRoSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NTAzMUI0NjBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMjk5Myw5ICsyMjk3Nyw2IEBACiAJCQkJOTMwMkIwQkYwRDc5RjgyQzAwQzdFRTgz
IC8qIFBhZ2VHcm91cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE2MDUxNTAwNEVEQTAwNDhB
RjEwIC8qIFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0E2
NzRCREMwRjlFQkY0RTAwNkNGMDk5IC8qIFBhZ2VHcm91cExvYWREZWZlcnJlci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJRjUwODI0NjkxNTQ4RDg5QTAwQTExOUFCIC8qIFBhZ2VQb3B1cC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRjUwODI0NkIxNTQ4RDhFMTAwQTExOUFCIC8qIFBhZ2VQb3B1cENsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRjUxMjJDOTAxNTQ3RkExQjAwMjhBOTNCIC8qIFBhZ2VQ
b3B1cERyaXZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkJEQjYxQTExNkQ2MDM3RTAwQkIzMzk0
IC8qIFBhZ2VSdWxlQ29sbGVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzgyMDg5NTE0N0Qz
NUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjM0
NzQyRTUxMzQzNjMzQzAwNTMxQkMyIC8qIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yNjA5OSw3ICsyNjA4MCw2IEBACiAJCQkJQkM3NzJDNEUwQzRFQjMwNDAwODMy
ODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3NzJDNUUw
QzRFQjM0NDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnlNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MkYxMDg2NTE2MkI2REE0MDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlGNTA4MjQ2RTE1NDhEOTYyMDBBMTE5QUIgLyogTW9ja1BhZ2VQ
b3B1cERyaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNkQ3NEFFNDA5QUEyOTBBMDAwQjBB
NTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1
NUIzREM1MTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NTAzMUI0NTBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAKaW5kZXggNjU5OTJl
NTkyYTgwZDkzMDhmMDg4YzBjYjMwMTE5NjJhMGExMjVlYS4uYzg0Mjc3MzhhYjE0M2JmNmVmM2Zh
NjdiYjBjOTA0NzZmNjhmNjJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRl
eHRGZWF0dXJlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5j
cHAKQEAgLTc0LDE4ICs3NCw2IEBAIGJvb2wgQ29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVu
YWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50KQogI2VuZGlmCiB9CiAKLWJvb2wgQ29udGV4dEZlYXR1
cmVzOjpwYWdlUG9wdXBFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSNpZiBFTkFCTEUo
UEFHRV9QT1BVUCkKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcmV0dXJuIGRvY3VtZW50LT5jb250ZXh0RmVhdHVyZXMoKS0+aXNFbmFibGVkKGRvY3VtZW50
LCBQYWdlUG9wdXAsIGZhbHNlKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsK
LSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogYm9vbCBDb250ZXh0RmVhdHVyZXM6Omh0
bWxOb3RpZmljYXRpb25zRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAjaWYgRU5BQkxF
KExFR0FDWV9OT1RJRklDQVRJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRleHRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCmlu
ZGV4IDJkY2YwMTFmMGU4NTA2ZGNmOWE2ZjBhMDI3YjIwNDEwNzkwN2U2YzEuLjI1YjIwODJkY2Jm
ZWQwOTQ0MzNjMDQwNjZmYzVhNjM1YzM5MTBkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Db250ZXh0RmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZl
YXR1cmVzLmgKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAgIGVudW0gRmVhdHVyZVR5cGUg
ewogICAgICAgICBEaWFsb2dFbGVtZW50ID0gMCwKICAgICAgICAgU3R5bGVTY29wZWQsCi0gICAg
ICAgIFBhZ2VQb3B1cCwKICAgICAgICAgSFRNTE5vdGlmaWNhdGlvbnMsCiAgICAgICAgIE11dGF0
aW9uRXZlbnRzLAogICAgICAgICBQdXNoU3RhdGUsCkBAIC01NCw3ICs1Myw2IEBAIHB1YmxpYzoK
IAogICAgIHN0YXRpYyBib29sIGRpYWxvZ0VsZW1lbnRFbmFibGVkKERvY3VtZW50Kik7CiAgICAg
c3RhdGljIGJvb2wgc3R5bGVTY29wZWRFbmFibGVkKERvY3VtZW50Kik7Ci0gICAgc3RhdGljIGJv
b2wgcGFnZVBvcHVwRW5hYmxlZChEb2N1bWVudCopOwogICAgIHN0YXRpYyBib29sIGh0bWxOb3Rp
ZmljYXRpb25zRW5hYmxlZChEb2N1bWVudCopOwogICAgIHN0YXRpYyBib29sIG11dGF0aW9uRXZl
bnRzRW5hYmxlZChEb2N1bWVudCopOwogICAgIHN0YXRpYyBib29sIHB1c2hTdGF0ZUVuYWJsZWQo
RG9jdW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCAxNDQ2Yjg5
MjkxYjE0ZGI0MThmMGFmZjRiZTUxNDU5MjljNzVmZGYxLi45NDQwNzQ3MjM3MzFjZTFhYTZhOTNm
MTM2MWJhMzkwNDYxYTVkOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBA
IC0xMTcsMTIgKzExNyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9w
dXAoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7Ci0jaWYgRU5B
QkxFKFBBR0VfUE9QVVApCi0gICAgdmlydHVhbCBQYWdlUG9wdXAqIG9wZW5QYWdlUG9wdXAoUGFn
ZVBvcHVwQ2xpZW50KiwgY29uc3QgSW50UmVjdCYpIE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2VQYWdlUG9wdXAoUGFnZVBvcHVwKikgT1ZFUlJJREUgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHNldFBhZ2VQb3B1cERyaXZlcihQYWdlUG9wdXBEcml2ZXIqKSBPVkVS
UklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRQYWdlUG9wdXBEcml2ZXIoKSBPVkVSUklE
RSB7IH0KLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3Qg
U3RyaW5nJikgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGIzZjhiMWYy
NDJjZTUxYTVjNzUzMmNkYWIzNDAzNjRlMTBjYjY4ZjQuLjEwN2Y0YzBjZmU1MmNiM2VjOGJkOGJj
MGVlNWJiOTIxYTI3NTQ0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtNjgs
OSArNjgsNiBAQCBjbGFzcyBJbnRSZWN0OwogY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKIGNsYXNz
IE5vZGU7CiBjbGFzcyBQYWdlOwotY2xhc3MgUGFnZVBvcHVwOwotY2xhc3MgUGFnZVBvcHVwQ2xp
ZW50OwotY2xhc3MgUGFnZVBvcHVwRHJpdmVyOwogY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogY2xh
c3MgU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXaWRnZXQ7CkBAIC0zMjUsMTUgKzMyMiw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2VhcmNoUG9wdXBNZW51
PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOwotI2lm
IEVOQUJMRShQQUdFX1BPUFVQKQotICAgIC8vIENyZWF0ZXMgYSBQYWdlUG9wdXAgb2JqZWN0LCBh
bmQgc2hvd3MgaXQgYmVzaWRlIG9yaWdpbkJvdW5kc0luUm9vdFZpZXcuCi0gICAgLy8gVGhlIHJl
dHVybiB2YWx1ZSBjYW4gYmUgMC4KLSAgICB2aXJ0dWFsIFBhZ2VQb3B1cCogb3BlblBhZ2VQb3B1
cChQYWdlUG9wdXBDbGllbnQqLCBjb25zdCBJbnRSZWN0JiBvcmlnaW5Cb3VuZHNJblJvb3RWaWV3
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlUGFnZVBvcHVwKFBhZ2VQb3B1cCopID0gMDsK
LSAgICAvLyBGb3IgdGVzdGluZy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0UGFnZVBvcHVwRHJpdmVy
KFBhZ2VQb3B1cERyaXZlciopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRQYWdlUG9wdXBE
cml2ZXIoKSA9IDA7Ci0jZW5kaWYKKwogICAgIHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNzaWJpbGl0
eU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhPYmplY3RDYWNoZTo6QVhOb3Rp
ZmljYXRpb24pIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zp
c2libGVJblJlY3QoY29uc3QgSW50UmVjdCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3dQYWdlUG9wdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3dQYWdlUG9wdXAuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTE2YTQ3
ZTE1MjNlYzAwYWI5ZmU5NDVhM2NiZWMwYzYyZTc5MWU4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UGFn
ZVBvcHVwLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRE9NV2luZG93UGFnZVBvcHVwLmgiCi0KLSNpZiBFTkFCTEUoUEFHRV9Q
T1BVUCkKLSNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJQYWdlUG9wdXBDb250cm9s
bGVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotRE9NV2luZG93UGFnZVBvcHVwOjpET01X
aW5kb3dQYWdlUG9wdXAoUGFnZVBvcHVwQ2xpZW50KiBwb3B1cENsaWVudCkKLSAgICA6IG1fY29u
dHJvbGxlcihQYWdlUG9wdXBDb250cm9sbGVyOjpjcmVhdGUocG9wdXBDbGllbnQpKQotewotICAg
IEFTU0VSVChwb3B1cENsaWVudCk7Ci19Ci0KLURPTVdpbmRvd1BhZ2VQb3B1cDo6fkRPTVdpbmRv
d1BhZ2VQb3B1cCgpCi17Ci0gICAgbV9jb250cm9sbGVyLT5jbGVhclBhZ2VQb3B1cENsaWVudCgp
OwotfQotCi1jb25zdCBjaGFyKiBET01XaW5kb3dQYWdlUG9wdXA6OnN1cHBsZW1lbnROYW1lKCkK
LXsKLSAgICByZXR1cm4gIkRPTVdpbmRvd1BhZ2VQb3B1cCI7Ci19Ci0KLVBhZ2VQb3B1cENvbnRy
b2xsZXIqIERPTVdpbmRvd1BhZ2VQb3B1cDo6cGFnZVBvcHVwQ29udHJvbGxlcihET01XaW5kb3cq
IHdpbmRvdykKLXsKLSAgICBET01XaW5kb3dQYWdlUG9wdXAqIHN1cHBsZW1lbnQgPSBzdGF0aWNf
Y2FzdDxET01XaW5kb3dQYWdlUG9wdXAqPihmcm9tKHdpbmRvdywgc3VwcGxlbWVudE5hbWUoKSkp
OwotICAgIEFTU0VSVChzdXBwbGVtZW50KTsKLSAgICByZXR1cm4gc3VwcGxlbWVudC0+bV9jb250
cm9sbGVyLmdldCgpOwotfQotCi12b2lkIERPTVdpbmRvd1BhZ2VQb3B1cDo6aW5zdGFsbChET01X
aW5kb3cqIHdpbmRvdywgUGFnZVBvcHVwQ2xpZW50KiBwb3B1cENsaWVudCkKLXsKLSAgICBBU1NF
UlQod2luZG93KTsKLSAgICBBU1NFUlQocG9wdXBDbGllbnQpOwotICAgIHByb3ZpZGVUbyh3aW5k
b3csIHN1cHBsZW1lbnROYW1lKCksIGFkb3B0UHRyKG5ldyBET01XaW5kb3dQYWdlUG9wdXAocG9w
dXBDbGllbnQpKSk7Ci19Ci0KLXZvaWQgRE9NV2luZG93UGFnZVBvcHVwOjp1bmluc3RhbGwoRE9N
V2luZG93KiB3aW5kb3cpCi17Ci0gICAgQVNTRVJUKHdpbmRvdyk7Ci0gICAgd2luZG93LT5yZW1v
dmVTdXBwbGVtZW50KHN1cHBsZW1lbnROYW1lKCkpOwotfQotCi19Ci0jZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UGFnZVBvcHVwLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvd1BhZ2VQb3B1cC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4Nzk0OWJjYjNhOTA3NTI5ZDEzMzVmMzA3ZjdhZGNkYTM5N2RlZTZiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93UGFnZVBvcHVwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRp
c3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBET01XaW5kb3dQYWdlUG9wdXBfaAotI2RlZmluZSBET01XaW5kb3dQYWdlUG9wdXBfaAotCi0j
aWYgRU5BQkxFKFBBR0VfUE9QVVApCi0jaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBET01XaW5kb3c7Ci1jbGFzcyBQYWdlUG9wdXBDbGll
bnQ7Ci1jbGFzcyBQYWdlUG9wdXBDb250cm9sbGVyOwotCi1jbGFzcyBET01XaW5kb3dQYWdlUG9w
dXAgOiBwdWJsaWMgU3VwcGxlbWVudDxET01XaW5kb3c+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UGFnZVBvcHVwQ29udHJvbGxlciogcGFnZVBvcHVwQ29udHJvbGxlcihET01XaW5kb3cqKTsKLSAg
ICBzdGF0aWMgdm9pZCBpbnN0YWxsKERPTVdpbmRvdyosIFBhZ2VQb3B1cENsaWVudCopOwotICAg
IHN0YXRpYyB2b2lkIHVuaW5zdGFsbChET01XaW5kb3cqKTsKLSAgICB+RE9NV2luZG93UGFnZVBv
cHVwKCk7Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgRE9NV2luZG93UGFnZVBvcHVwKFBhZ2VQ
b3B1cENsaWVudCopOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwot
Ci0gICAgUmVmUHRyPFBhZ2VQb3B1cENvbnRyb2xsZXI+IG1fY29udHJvbGxlcjsKLX07Ci0KLX0K
LSNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
d1BhZ2VQb3B1cC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1BhZ2VQb3B1cC5p
ZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzNmU4MjhmODE4OTU1NGNiZDBmNjlm
OWM2ZGNhMjM1YTQyYWE0M2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQYWdlUG9wdXAuaWRsCisrKyAv
ZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0g
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBDb25kaXRpb25hbD1QQUdFX1BPUFVQLAot
XSBwYXJ0aWFsIGludGVyZmFjZSBET01XaW5kb3cgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQ
YWdlUG9wdXBDb250cm9sbGVyIHBhZ2VQb3B1cENvbnRyb2xsZXI7Ci19OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXAuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZVBvcHVwLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2NzEzY2I4MmE3MGVhMGUw
YWQ0NzU4YmZhNGNlMGI0M2NiODlmM2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXAuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFBhZ2VQb3B1cF9oCi0jZGVmaW5lIFBhZ2VQb3B1
cF9oCi0KLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8g
QSBQYWdlUG9wdXAgb2JqZWN0IGlzIGNyZWF0ZWQgYnkgQ2hyb21lQ2xpZW50OjpvcGVuUGFnZVBv
cHVwKCksIGFuZCBkZWxldGVkCi0vLyBieSBDaHJvbWVDbGllbnQ6OmNsb3NlUGFnZVBvcHVwKCku
Ci1jbGFzcyBQYWdlUG9wdXAgewotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgflBhZ2VQb3B1cCgp
IHsgfQotfTsKLQotfQotI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZVBvcHVwQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVw
Q2xpZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2RhYjgyOGI3Y2M0MTk2
MTY1Nzk2NGEzYzJkODY4ZTRkNDIwY2MyMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENsaWVudC5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxMTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJQYWdlUG9wdXBDbGllbnQuaCIKLQotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotCi0jaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LSNkZWZpbmUgYWRkTGl0ZXJhbChsaXRlcmFsLCB3cml0ZXIpICAgIHdyaXRlci5hZGREYXRhKGxp
dGVyYWwsIHNpemVvZihsaXRlcmFsKSAtIDEpCi0KLXZvaWQgUGFnZVBvcHVwQ2xpZW50OjphZGRK
YXZhU2NyaXB0U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyLCBEb2N1bWVudFdyaXRlciYgd3JpdGVy
KQotewotICAgIGFkZExpdGVyYWwoIlwiIiwgd3JpdGVyKTsKLSAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXI7Ci0gICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoc3RyLmxlbmd0aCgpKTsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RyLmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAgaWYg
KHN0cltpXSA9PSAnXFwnIHx8IHN0cltpXSA9PSAnIicpCi0gICAgICAgICAgICBidWlsZGVyLmFw
cGVuZCgnXFwnKTsKLSAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RyW2ldKTsKLSAgICB9Ci0gICAg
YWRkU3RyaW5nKGJ1aWxkZXIudG9TdHJpbmcoKSwgd3JpdGVyKTsKLSAgICBhZGRMaXRlcmFsKCJc
IiIsIHdyaXRlcik7Ci19Ci0KLXZvaWQgUGFnZVBvcHVwQ2xpZW50OjphZGRQcm9wZXJ0eShjb25z
dCBjaGFyKiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBEb2N1bWVudFdyaXRlciYgd3JpdGVy
KQotewotICAgIHdyaXRlci5hZGREYXRhKG5hbWUsIHN0cmxlbihuYW1lKSk7Ci0gICAgYWRkTGl0
ZXJhbCgiOiAiLCB3cml0ZXIpOwotICAgIGFkZEphdmFTY3JpcHRTdHJpbmcodmFsdWUsIHdyaXRl
cik7Ci0gICAgYWRkTGl0ZXJhbCgiLFxuIiwgd3JpdGVyKTsKLX0KLQotdm9pZCBQYWdlUG9wdXBD
bGllbnQ6OmFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGludCB2YWx1ZSwgRG9jdW1lbnRX
cml0ZXImIHdyaXRlcikKLXsKLSAgICB3cml0ZXIuYWRkRGF0YShuYW1lLCBzdHJsZW4obmFtZSkp
OwotICAgIGFkZExpdGVyYWwoIjogIiwgd3JpdGVyKTsKLSAgICBhZGRTdHJpbmcoU3RyaW5nOjpu
dW1iZXIodmFsdWUpLCB3cml0ZXIpOwotICAgIGFkZExpdGVyYWwoIixcbiIsIHdyaXRlcik7Ci19
Ci0KLXZvaWQgUGFnZVBvcHVwQ2xpZW50OjphZGRQcm9wZXJ0eShjb25zdCBjaGFyKiBuYW1lLCB1
bnNpZ25lZCB2YWx1ZSwgRG9jdW1lbnRXcml0ZXImIHdyaXRlcikKLXsKLSAgICB3cml0ZXIuYWRk
RGF0YShuYW1lLCBzdHJsZW4obmFtZSkpOwotICAgIGFkZExpdGVyYWwoIjogIiwgd3JpdGVyKTsK
LSAgICBhZGRTdHJpbmcoU3RyaW5nOjpudW1iZXIodmFsdWUpLCB3cml0ZXIpOwotICAgIGFkZExp
dGVyYWwoIixcbiIsIHdyaXRlcik7Ci19Ci0KLXZvaWQgUGFnZVBvcHVwQ2xpZW50OjphZGRQcm9w
ZXJ0eShjb25zdCBjaGFyKiBuYW1lLCBib29sIHZhbHVlLCBEb2N1bWVudFdyaXRlciYgd3JpdGVy
KQotewotICAgIHdyaXRlci5hZGREYXRhKG5hbWUsIHN0cmxlbihuYW1lKSk7Ci0gICAgYWRkTGl0
ZXJhbCgiOiAiLCB3cml0ZXIpOwotICAgIGlmICh2YWx1ZSkKLSAgICAgICAgYWRkTGl0ZXJhbCgi
dHJ1ZSIsIHdyaXRlcik7Ci0gICAgZWxzZQotICAgICAgICBhZGRMaXRlcmFsKCJmYWxzZSIsIHdy
aXRlcik7Ci0gICAgYWRkTGl0ZXJhbCgiLFxuIiwgd3JpdGVyKTsKLX0KLQotdm9pZCBQYWdlUG9w
dXBDbGllbnQ6OmFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiB2YWx1ZXMsIERvY3VtZW50V3JpdGVyJiB3cml0ZXIpCi17Ci0gICAgd3JpdGVyLmFkZERh
dGEobmFtZSwgc3RybGVuKG5hbWUpKTsKLSAgICBhZGRMaXRlcmFsKCI6IFsiLCB3cml0ZXIpOwot
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB2YWx1ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAg
ICAgaWYgKGkpCi0gICAgICAgICAgICBhZGRMaXRlcmFsKCIsIiwgd3JpdGVyKTsKLSAgICAgICAg
YWRkSmF2YVNjcmlwdFN0cmluZyh2YWx1ZXNbaV0sIHdyaXRlcik7Ci0gICAgfQotICAgIGFkZExp
dGVyYWwoIl0sXG4iLCB3cml0ZXIpOwotfQotCi12b2lkIFBhZ2VQb3B1cENsaWVudDo6YWRkUHJv
cGVydHkoY29uc3QgY2hhciogbmFtZSwgY29uc3QgSW50UmVjdCYgcmVjdCwgRG9jdW1lbnRXcml0
ZXImIHdyaXRlcikKLXsKLSAgICB3cml0ZXIuYWRkRGF0YShuYW1lLCBzdHJsZW4obmFtZSkpOwot
ICAgIGFkZExpdGVyYWwoIjogeyIsIHdyaXRlcik7Ci0gICAgYWRkUHJvcGVydHkoIngiLCByZWN0
LngoKSwgd3JpdGVyKTsKLSAgICBhZGRQcm9wZXJ0eSgieSIsIHJlY3QueSgpLCB3cml0ZXIpOwot
ICAgIGFkZFByb3BlcnR5KCJ3aWR0aCIsIHJlY3Qud2lkdGgoKSwgd3JpdGVyKTsKLSAgICBhZGRQ
cm9wZXJ0eSgiaGVpZ2h0IiwgcmVjdC5oZWlnaHQoKSwgd3JpdGVyKTsKLSAgICBhZGRMaXRlcmFs
KCJ9LFxuIiwgd3JpdGVyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYg
Ly8gRU5BQkxFKFBBR0VfUE9QVVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VQb3B1cENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDbGllbnQuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjMyNGNmYmRiZTlkMjdhYTllOTRlYjQyMWJl
ZGFmN2E3NjBiODRlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENsaWVudC5oCisrKyAvZGV2L251bGwK
QEAgLTEsOTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgUGFnZVBvcHVwQ2xpZW50X2gKLSNkZWZpbmUgUGFnZVBv
cHVwQ2xpZW50X2gKLQotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotCi0jaW5jbHVkZSAiRG9jdW1l
bnRXcml0ZXIuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRG9jdW1lbnRXcml0ZXI7
Ci1jbGFzcyBMb2NhbGU7Ci0KLWNsYXNzIFBhZ2VQb3B1cENsaWVudCB7Ci1wdWJsaWM6Ci0gICAg
dmlydHVhbCBJbnRTaXplIGNvbnRlbnRTaXplKCkgPSAwOwotCi0gICAgLy8gUHJvdmlkZSBhbiBI
VE1MIHNvdXJjZSB0aHJvdWdoIHRoZSBzcGVjaWZpZWQgRG9jdW1lbnRXcml0ZXIuIFRoZSBIVE1M
Ci0gICAgLy8gc291cmNlIGlzIHJlbmRlcmVkIGluIGEgUGFnZVBvcHVwLgotICAgIC8vIFRoZSBj
b250ZW50IEhUTUwgc3VwcG9ydHM6Ci0gICAgLy8gIC0gTm8gPHNlbGVjdD4gcG9wdXBzCi0gICAg
Ly8gIC0gd2luZG93LnNldFZhbHVlQW5kQ2xvc2VQb3B1cChudW1iZXIsIHN0cmluZykuCi0gICAg
dmlydHVhbCB2b2lkIHdyaXRlRG9jdW1lbnQoRG9jdW1lbnRXcml0ZXImKSA9IDA7Ci0KLSAgICAv
LyBSZXR1cm5zIGEgTG9jYWxlIG9iamVjdCBhc3NvY2lhdGVkIHRvIHRoZSBjbGllbnQuCi0gICAg
dmlydHVhbCBMb2NhbGUmIGxvY2FsZSgpID0gMDsKLQotICAgIC8vIFRoaXMgaXMgY2FsbGVkIGJ5
IHRoZSBjb250ZW50IEhUTUwgb2YgYSBQYWdlUG9wdXAuCi0gICAgLy8gQW4gaW1wbGVtZW50YXRp
b24gb2YgdGhpcyBmdW5jdGlvbiBzaG91bGQgY2FsbCBDaHJvbWVDbGllbnQ6OmNsb3NlUGFnZVBv
cHVwKCkuCi0gICAgdmlydHVhbCB2b2lkIHNldFZhbHVlQW5kQ2xvc2VQb3B1cChpbnQgbnVtVmFs
dWUsIGNvbnN0IFN0cmluZyYgc3RyaW5nVmFsdWUpID0gMDsKLQotICAgIC8vIFRoaXMgaXMgY2Fs
bGVkIGJ5IHRoZSBjb250ZW50IEhUTUwgb2YgYSBQYWdlUG9wdXAuCi0gICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlKGNvbnN0IFN0cmluZyYpID0gMDsKLQotICAgIC8vIFRoaXMgaXMgY2FsbGVkIGJ5
IHRoZSBjb250ZW50IEhUTUwgb2YgYSBQYWdlUG9wdXAuCi0gICAgdmlydHVhbCB2b2lkIGNsb3Nl
UG9wdXAoKSA9IDA7Ci0KLSAgICAvLyBUaGlzIGlzIGNhbGxlZCB3aGVuZXZlciBhIFBhZ2VQb3B1
cCB3YXMgY2xvc2VkLgotICAgIHZpcnR1YWwgdm9pZCBkaWRDbG9zZVBvcHVwKCkgPSAwOwotCi0g
ICAgdmlydHVhbCB+UGFnZVBvcHVwQ2xpZW50KCkgeyB9Ci0KLSAgICAvLyBIZWxwZXIgZnVuY3Rp
b25zIHRvIGJlIHVzZWQgaW4gUGFnZVBvcHVwQ2xpZW50Ojp3cml0ZURvY3VtZW50KCkuCi0gICAg
c3RhdGljIHZvaWQgYWRkU3RyaW5nKGNvbnN0IFN0cmluZyYsIERvY3VtZW50V3JpdGVyJik7Ci0g
ICAgc3RhdGljIHZvaWQgYWRkSmF2YVNjcmlwdFN0cmluZyhjb25zdCBTdHJpbmcmLCBEb2N1bWVu
dFdyaXRlciYpOwotICAgIHN0YXRpYyB2b2lkIGFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmFsdWUsIERvY3VtZW50V3JpdGVyJik7Ci0gICAgc3RhdGljIHZvaWQg
YWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgaW50IHZhbHVlLCBEb2N1bWVudFdyaXRlciYp
OwotICAgIHN0YXRpYyB2b2lkIGFkZFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIHVuc2lnbmVk
IHZhbHVlLCBEb2N1bWVudFdyaXRlciYpOwotICAgIHN0YXRpYyB2b2lkIGFkZFByb3BlcnR5KGNv
bnN0IGNoYXIqIG5hbWUsIGJvb2wgdmFsdWUsIERvY3VtZW50V3JpdGVyJik7Ci0gICAgc3RhdGlj
IHZvaWQgYWRkUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHZhbHVlcywgRG9jdW1lbnRXcml0ZXImKTsKLSAgICBzdGF0aWMgdm9pZCBhZGRQcm9wZXJ0eShj
b25zdCBjaGFyKiBuYW1lLCBjb25zdCBJbnRSZWN0JiwgRG9jdW1lbnRXcml0ZXImKTsKLX07Ci0K
LWlubGluZSB2b2lkIFBhZ2VQb3B1cENsaWVudDo6YWRkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3Ry
LCBEb2N1bWVudFdyaXRlciYgd3JpdGVyKQotewotICAgIENTdHJpbmcgc3RyOCA9IHN0ci51dGY4
KCk7Ci0gICAgd3JpdGVyLmFkZERhdGEoc3RyOC5kYXRhKCksIHN0cjgubGVuZ3RoKCkpOwotfQot
Ci19Ci0jZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
UG9wdXBDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwQ29udHJv
bGxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3ZjcxY2EyYTZmNTIyNWVj
YTM2M2M0NDdlZjRiMWVjODg2MDBlYzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDb250cm9sbGVyLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDEwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlBhZ2VQb3B1cENvbnRyb2xsZXIuaCIKLQotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQot
I2luY2x1ZGUgIkhpc3RvZ3JhbVN1cHBvcnQuaCIKLSNpbmNsdWRlICJQYWdlUG9wdXBDbGllbnQu
aCIKLSNpbmNsdWRlICJQbGF0Zm9ybUxvY2FsZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LVBhZ2VQb3B1cENvbnRyb2xsZXI6OlBhZ2VQb3B1cENvbnRyb2xsZXIoUGFnZVBvcHVwQ2xpZW50
KiBjbGllbnQpCi0gICAgOiBtX3BvcHVwQ2xpZW50KGNsaWVudCkKLXsKLSAgICBBU1NFUlQoY2xp
ZW50KTsKLX0KLQotUGFzc1JlZlB0cjxQYWdlUG9wdXBDb250cm9sbGVyPiBQYWdlUG9wdXBDb250
cm9sbGVyOjpjcmVhdGUoUGFnZVBvcHVwQ2xpZW50KiBjbGllbnQpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQYWdlUG9wdXBDb250cm9sbGVyKGNsaWVudCkpOwotfQotCi12b2lkIFBhZ2VQ
b3B1cENvbnRyb2xsZXI6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cChpbnQgbnVtVmFsdWUsIGNvbnN0
IFN0cmluZyYgc3RyaW5nVmFsdWUpCi17Ci0gICAgaWYgKG1fcG9wdXBDbGllbnQpCi0gICAgICAg
IG1fcG9wdXBDbGllbnQtPnNldFZhbHVlQW5kQ2xvc2VQb3B1cChudW1WYWx1ZSwgc3RyaW5nVmFs
dWUpOwotfQotCi12b2lkIFBhZ2VQb3B1cENvbnRyb2xsZXI6OnNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCi17Ci0gICAgaWYgKG1fcG9wdXBDbGllbnQpCi0gICAgICAgIG1fcG9wdXBDbGll
bnQtPnNldFZhbHVlKHZhbHVlKTsKLX0KLQotdm9pZCBQYWdlUG9wdXBDb250cm9sbGVyOjpjbG9z
ZVBvcHVwKCkKLXsKLSAgICBpZiAobV9wb3B1cENsaWVudCkKLSAgICAgICAgbV9wb3B1cENsaWVu
dC0+Y2xvc2VQb3B1cCgpOwotfQotCi1TdHJpbmcgUGFnZVBvcHVwQ29udHJvbGxlcjo6bG9jYWxp
emVOdW1iZXJTdHJpbmcoY29uc3QgU3RyaW5nJiBudW1iZXJTdHJpbmcpCi17Ci0gICAgaWYgKG1f
cG9wdXBDbGllbnQpCi0gICAgICAgIHJldHVybiBtX3BvcHVwQ2xpZW50LT5sb2NhbGUoKS5jb252
ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIobnVtYmVyU3RyaW5nKTsKLSAgICByZXR1cm4gbnVtYmVyU3Ry
aW5nOwotfQotCi0jaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKLVN0cmluZyBQYWdlUG9wdXBD
b250cm9sbGVyOjpmb3JtYXRNb250aChpbnQgeWVhciwgaW50IHplcm9CYXNlTW9udGgpCi17Ci0g
ICAgaWYgKCFtX3BvcHVwQ2xpZW50KQotICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAg
ICBEYXRlQ29tcG9uZW50cyBkYXRlOwotICAgIGRhdGUuc2V0TW9udGhzU2luY2VFcG9jaCgoeWVh
ciAtIDE5NzApICogMTIuMCArIHplcm9CYXNlTW9udGgpOwotICAgIHJldHVybiBtX3BvcHVwQ2xp
ZW50LT5sb2NhbGUoKS5mb3JtYXREYXRlVGltZShkYXRlLCBMb2NhbGU6OkZvcm1hdFR5cGVNZWRp
dW0pOwotfQotCi1TdHJpbmcgUGFnZVBvcHVwQ29udHJvbGxlcjo6Zm9ybWF0U2hvcnRNb250aChp
bnQgeWVhciwgaW50IHplcm9CYXNlTW9udGgpCi17Ci0gICAgaWYgKCFtX3BvcHVwQ2xpZW50KQot
ICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLSAgICBEYXRlQ29tcG9uZW50cyBkYXRlOwot
ICAgIGRhdGUuc2V0TW9udGhzU2luY2VFcG9jaCgoeWVhciAtIDE5NzApICogMTIuMCArIHplcm9C
YXNlTW9udGgpOwotICAgIHJldHVybiBtX3BvcHVwQ2xpZW50LT5sb2NhbGUoKS5mb3JtYXREYXRl
VGltZShkYXRlLCBMb2NhbGU6OkZvcm1hdFR5cGVTaG9ydCk7Ci19Ci0jZW5kaWYKLQotdm9pZCBQ
YWdlUG9wdXBDb250cm9sbGVyOjpjbGVhclBhZ2VQb3B1cENsaWVudCgpCi17Ci0gICAgbV9wb3B1
cENsaWVudCA9IDA7Ci19Ci0KLXZvaWQgUGFnZVBvcHVwQ29udHJvbGxlcjo6aGlzdG9ncmFtRW51
bWVyYXRpb24oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQgc2FtcGxlLCBpbnQgYm91bmRhcnlWYWx1
ZSkKLXsKLSAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJhdGlvbihuYW1lLnV0
ZjgoKS5kYXRhKCksIHNhbXBsZSwgYm91bmRhcnlWYWx1ZSk7Ci19Ci0KLX0KLSNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlUG9wdXBDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjRlYTJkYTc0NmI3YTlmYTcwZDk2ZTE0ZGYyOWVjZGVjMDE1OWY3Ny4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VQb3B1cENvbnRyb2xsZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFBhZ2VQb3B1cENvbnRyb2xsZXJfaAotI2RlZmluZSBQYWdlUG9wdXBDb250cm9s
bGVyX2gKLQotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIFBhZ2VQb3B1cENsaWVudDsKLQotY2xhc3MgUGFnZVBvcHVwQ29udHJvbGxlciA6IHB1
YmxpYyBSZWZDb3VudGVkPFBhZ2VQb3B1cENvbnRyb2xsZXI+IHsKLXB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxQYWdlUG9wdXBDb250cm9sbGVyPiBjcmVhdGUoUGFnZVBvcHVwQ2xpZW50
Kik7Ci0gICAgdm9pZCBzZXRWYWx1ZUFuZENsb3NlUG9wdXAoaW50IG51bVZhbHVlLCBjb25zdCBT
dHJpbmcmIHN0cmluZ1ZhbHVlKTsKLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwot
ICAgIHZvaWQgY2xvc2VQb3B1cCgpOwotICAgIFN0cmluZyBsb2NhbGl6ZU51bWJlclN0cmluZyhj
b25zdCBTdHJpbmcmKTsKLSNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQotICAgIFN0cmluZyBm
b3JtYXRNb250aChpbnQgeWVhciwgaW50IHplcm9CYXNlTW9udGgpOwotICAgIFN0cmluZyBmb3Jt
YXRTaG9ydE1vbnRoKGludCB5ZWFyLCBpbnQgemVyb0Jhc2VNb250aCk7Ci0jZW5kaWYKLSAgICB2
b2lkIGNsZWFyUGFnZVBvcHVwQ2xpZW50KCk7Ci0gICAgdm9pZCBoaXN0b2dyYW1FbnVtZXJhdGlv
bihjb25zdCBTdHJpbmcmIG5hbWUsIGludCBzYW1wbGUsIGludCBib3VuZGFyeVZhbHVlKTsKLQot
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBQYWdlUG9wdXBDb250cm9sbGVyKFBhZ2VQb3B1cENsaWVu
dCopOwotCi0gICAgUGFnZVBvcHVwQ2xpZW50KiBtX3BvcHVwQ2xpZW50OwotfTsKLQotfQotI2Vu
ZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwQ29u
dHJvbGxlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VQb3B1cENvbnRyb2xsZXIuaWRs
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxY2E1YzU3YTk2OGM0NmZhMzRiYjNiMjlm
ZWUzNDYzZGExNWE2OGMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwQ29udHJvbGxlci5pZGwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAotICAgIENv
bmRpdGlvbmFsPVBBR0VfUE9QVVAsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZQotXSBp
bnRlcmZhY2UgUGFnZVBvcHVwQ29udHJvbGxlciB7Ci0gICAgdm9pZCBzZXRWYWx1ZUFuZENsb3Nl
UG9wdXAobG9uZyBudW1iZXJWYWx1ZSwgRE9NU3RyaW5nIHN0cmluZ1ZhbHVlKTsKLSAgICB2b2lk
IHNldFZhbHVlKERPTVN0cmluZyB2YWx1ZSk7Ci0gICAgdm9pZCBjbG9zZVBvcHVwKCk7Ci0gICAg
RE9NU3RyaW5nIGxvY2FsaXplTnVtYmVyU3RyaW5nKERPTVN0cmluZyBudW1iZXJTdHJpbmcpOwot
ICAgIFtDb25kaXRpb25hbD1DQUxFTkRBUl9QSUNLRVJdIERPTVN0cmluZyBmb3JtYXRNb250aChs
b25nIHllYXIsIGxvbmcgemVyb0Jhc2VNb250aCk7Ci0gICAgW0NvbmRpdGlvbmFsPUNBTEVOREFS
X1BJQ0tFUl0gRE9NU3RyaW5nIGZvcm1hdFNob3J0TW9udGgobG9uZyB5ZWFyLCBsb25nIHplcm9C
YXNlTW9udGgpOwotICAgIHZvaWQgaGlzdG9ncmFtRW51bWVyYXRpb24oRE9NU3RyaW5nIG5hbWUs
IGxvbmcgc2FtcGxlLCBsb25nIGJvdW5kYXJ5VmFsdWUpOwotfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwRHJpdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VQb3B1cERyaXZlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTVkNjIyYzhl
MWE3ZTJjM2VkMDZhYjY3ZDhmOGU3ZmRlYjRhM2EyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVBvcHVwRHJpdmVy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQYWdlUG9w
dXBEcml2ZXJfaAotI2RlZmluZSBQYWdlUG9wdXBEcml2ZXJfaAotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIEludFJlY3Q7Ci1jbGFzcyBQYWdlUG9wdXA7Ci1jbGFzcyBQYWdlUG9wdXBD
bGllbnQ7Ci0KLWNsYXNzIFBhZ2VQb3B1cERyaXZlciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCBQ
YWdlUG9wdXAqIG9wZW5QYWdlUG9wdXAoUGFnZVBvcHVwQ2xpZW50KiwgY29uc3QgSW50UmVjdCYg
b3JpZ2luQm91bmRzSW5Sb290VmlldykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbG9zZVBhZ2VQ
b3B1cChQYWdlUG9wdXAqKSA9IDA7Ci0gICAgdmlydHVhbCB+UGFnZVBvcHVwRHJpdmVyKCkgeyB9
Ci19OwotCi19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBh
NjI1NGM0ZmIxNmM5ZmQ5ODZhNWQ0ODg1YTQ3ZDFhMzYwMTkxMzg2Li5hMmY5MjM4NTEwNzkwZWYy
YTU4NWQ3YTE0NDFiMmMzZGYwNjNhZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC03Miw3ICs3Miw2IEBACiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJN
YWxsb2NTdGF0aXN0aWNzLmgiCiAjaW5jbHVkZSAiTWVtb3J5Q2FjaGUuaCIKLSNpbmNsdWRlICJN
b2NrUGFnZVBvcHVwRHJpdmVyLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJpbnRDb250ZXh0LmgiCkBAIC0xMTYsMTAg
KzExNSw2IEBACiAjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJvbGxlci5oIgogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLSNpbmNsdWRlICJQYWdlUG9wdXBDb250cm9sbGVy
LmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShUT1VDSF9BREpVU1RNRU5UKQogI2luY2x1ZGUgIldl
YktpdFBvaW50LmgiCiAjZW5kaWYKQEAgLTE1MSwxMCArMTQ2LDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0jaWYgRU5BQkxFKFBBR0VfUE9QVVApCi1zdGF0aWMgTW9ja1BhZ2VQb3B1cERy
aXZlciogc19wYWdlUG9wdXBEcml2ZXIgPSAwOwotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpAQCAtMjcwLDExICsyNjEsNiBAQCB2
b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlKiBwYWdlKQogICAgIFRl
eHRSdW46OnNldEFsbG93c1JvdW5kaW5nSGFja3MoZmFsc2UpOwogICAgIFdlYkNvcmU6Om92ZXJy
aWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsKICAgICBXZWJDb3Jl
OjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGZhbHNlKTsKLSNpZiBFTkFCTEUo
UEFHRV9QT1BVUCkKLSAgICBkZWxldGUgc19wYWdlUG9wdXBEcml2ZXI7Ci0gICAgc19wYWdlUG9w
dXBEcml2ZXIgPSAwOwotICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLT5yZXNldFBhZ2VQb3B1
cERyaXZlcigpOwotI2VuZGlmCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpCiAgICAgaWYgKHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKSkKICAg
ICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5zZXRQcm9maWxlckVuYWJsZWQoZmFs
c2UpOwpAQCAtNzY2LDMzICs3NTIsNiBAQCB2b2lkIEludGVybmFsczo6ZW5hYmxlTW9ja1NwZWVj
aFN5bnRoZXNpemVyKCkKIH0KICNlbmRpZgogICAgIAotdm9pZCBJbnRlcm5hbHM6OnNldEVuYWJs
ZU1vY2tQYWdlUG9wdXAoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSNpZiBF
TkFCTEUoUEFHRV9QT1BVUCkKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1l
bnQoKTsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQotICAgICAgICBy
ZXR1cm47Ci0gICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7Ci0gICAgaWYgKCFlbmFi
bGVkKSB7Ci0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLT5yZXNldFBhZ2VQb3B1cERy
aXZlcigpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmICghc19wYWdlUG9wdXBEcml2
ZXIpCi0gICAgICAgIHNfcGFnZVBvcHVwRHJpdmVyID0gTW9ja1BhZ2VQb3B1cERyaXZlcjo6Y3Jl
YXRlKHBhZ2UtPm1haW5GcmFtZSgpKS5sZWFrUHRyKCk7Ci0gICAgcGFnZS0+Y2hyb21lKCkuY2xp
ZW50KCktPnNldFBhZ2VQb3B1cERyaXZlcihzX3BhZ2VQb3B1cERyaXZlcik7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShlbmFibGVkKTsKLSAgICBVTlVTRURfUEFSQU0oZWMpOwotI2VuZGlmCi19
Ci0KLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLVBhc3NSZWZQdHI8UGFnZVBvcHVwQ29udHJvbGxl
cj4gSW50ZXJuYWxzOjpwYWdlUG9wdXBDb250cm9sbGVyKCkKLXsKLSAgICByZXR1cm4gc19wYWdl
UG9wdXBEcml2ZXIgPyBzX3BhZ2VQb3B1cERyaXZlci0+cGFnZVBvcHVwQ29udHJvbGxlcigpIDog
MDsKLX0KLSNlbmRpZgotCiBQYXNzUmVmUHRyPENsaWVudFJlY3Q+IEludGVybmFsczo6YWJzb2x1
dGVDYXJldEJvdW5kcyhFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBEb2N1bWVudCogZG9jdW1l
bnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4
IDEwMmQzNTAzMmY0MmZkMjc5NTM5YTRhYzI5N2VhZmVlYjgwZGExNTYuLmQ5MjNmNzJhZjhhZTNk
ZmRiNDFkNzIyYjNkNjVlZTJmZDJmNzNkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aApAQCAtNTEsNyArNTEsNiBAQCBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZENoYW5uZWxEdW1teTsK
IGNsYXNzIEludGVybmFsU2V0dGluZ3M7CiBjbGFzcyBOb2RlOwogY2xhc3MgUGFnZTsKLWNsYXNz
IFBhZ2VQb3B1cENvbnRyb2xsZXI7CiBjbGFzcyBSYW5nZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CiBjbGFzcyBTaGFkb3dSb290OwpAQCAtMTMwLDEwICsxMjksNiBAQCBwdWJsaWM6
CiAjZW5kaWYKICAgICBWZWN0b3I8U3RyaW5nPiBmb3JtQ29udHJvbFN0YXRlT2ZQcmV2aW91c0hp
c3RvcnlJdGVtKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEZvcm1Db250cm9sU3RhdGVP
ZlByZXZpb3VzSGlzdG9yeUl0ZW0oY29uc3QgVmVjdG9yPFN0cmluZz4mLCBFeGNlcHRpb25Db2Rl
Jik7Ci0gICAgdm9pZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwKGJvb2wsIEV4Y2VwdGlvbkNvZGUm
KTsKLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLSAgICBQYXNzUmVmUHRyPFBhZ2VQb3B1cENvbnRy
b2xsZXI+IHBhZ2VQb3B1cENvbnRyb2xsZXIoKTsKLSNlbmRpZgogCiAgICAgUGFzc1JlZlB0cjxD
bGllbnRSZWN0PiBhYnNvbHV0ZUNhcmV0Qm91bmRzKEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDA5MjJhYTA5MmQ4OTZmNGE0YzJkYTc5MGZh
MTI4YzgyMzMzMTBjZjAuLmFiYjE1Yjc4ZGExMTc1YTY2OTdlNWY0MWQ5ODdiOTRhNmEzOTA4NDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTgxLDEwICs4MSw2IEBACiAj
ZW5kaWYKICAgICBET01TdHJpbmdbXSBmb3JtQ29udHJvbFN0YXRlT2ZQcmV2aW91c0hpc3RvcnlJ
dGVtKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRGb3JtQ29udHJvbFN0YXRl
T2ZQcmV2aW91c0hpc3RvcnlJdGVtKHNlcXVlbmNlPERPTVN0cmluZz4gdmFsdWVzKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKLSAgICB2b2lkIHNldEVuYWJsZU1vY2tQYWdlUG9wdXAoYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSNpZiBkZWZpbmVkKEVOQUJMRV9QQUdFX1BP
UFVQKSAmJiBFTkFCTEVfUEFHRV9QT1BVUAotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBQYWdlUG9w
dXBDb250cm9sbGVyIHBhZ2VQb3B1cENvbnRyb2xsZXI7Ci0jZW5kaWYKIAogICAgIENsaWVudFJl
Y3QgYWJzb2x1dGVDYXJldEJvdW5kcygpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlUG9wdXBEcml2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZVBvcHVwRHJpdmVyLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMGYyMDQ2ZjMyNzM3MTk0MjRkMzk0MmZlMjE5MDZlMjVkNGIyYzk3
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlUG9wdXBEcml2ZXIuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsMTQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTW9j
a1BhZ2VQb3B1cERyaXZlci5oIgotCi0jaWYgRU5BQkxFKFBBR0VfUE9QVVApCi0jaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5oIgotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKLSNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgotI2luY2x1ZGUgIkRvY3VtZW50V3JpdGVyLmgiCi0jaW5j
bHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgotI2luY2x1ZGUgIkhUTUxJ
RnJhbWVFbGVtZW50LmgiCi0jaW5jbHVkZSAiUGFnZVBvcHVwLmgiCi0jaW5jbHVkZSAiUGFnZVBv
cHVwQ2xpZW50LmgiCi0jaW5jbHVkZSAiUGFnZVBvcHVwQ29udHJvbGxlci5oIgotI2luY2x1ZGUg
IlRpbWVyLmgiCi0jaW5jbHVkZSAiV2ViQ29yZVRlc3RTdXBwb3J0LmgiCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgTW9ja1BhZ2VQb3B1cCA6IHB1YmxpYyBQYWdlUG9wdXAsIHB1Ymxp
YyBSZWZDb3VudGVkPE1vY2tQYWdlUG9wdXA+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNb2NrUGFnZVBvcHVwPiBjcmVhdGUoUGFnZVBvcHVwQ2xpZW50KiwgY29uc3QgSW50UmVj
dCYgb3JpZ2luQm91bmRzSW5Sb290VmlldywgRnJhbWUqKTsKLSAgICB2aXJ0dWFsIH5Nb2NrUGFn
ZVBvcHVwKCk7Ci0gICAgdm9pZCBjbG9zZUxhdGVyKCk7Ci0KLXByaXZhdGU6Ci0gICAgTW9ja1Bh
Z2VQb3B1cChQYWdlUG9wdXBDbGllbnQqLCBjb25zdCBJbnRSZWN0JiBvcmlnaW5Cb3VuZHNJblJv
b3RWaWV3LCBGcmFtZSopOwotICAgIHZvaWQgY2xvc2UoVGltZXI8TW9ja1BhZ2VQb3B1cD4qKTsK
LQotICAgIFBhZ2VQb3B1cENsaWVudCogbV9wb3B1cENsaWVudDsKLSAgICBSZWZQdHI8SFRNTElG
cmFtZUVsZW1lbnQ+IG1faWZyYW1lOwotICAgIFRpbWVyPE1vY2tQYWdlUG9wdXA+IG1fY2xvc2VU
aW1lcjsKLX07Ci0KLWlubGluZSBNb2NrUGFnZVBvcHVwOjpNb2NrUGFnZVBvcHVwKFBhZ2VQb3B1
cENsaWVudCogY2xpZW50LCBjb25zdCBJbnRSZWN0JiBvcmlnaW5Cb3VuZHNJblJvb3RWaWV3LCBG
cmFtZSogbWFpbkZyYW1lKQotICAgIDogbV9wb3B1cENsaWVudChjbGllbnQpCi0gICAgLCBtX2Ns
b3NlVGltZXIodGhpcywgJk1vY2tQYWdlUG9wdXA6OmNsb3NlKQotewotICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IG1haW5GcmFtZS0+ZG9jdW1lbnQoKTsKLSAgICBtX2lmcmFtZSA9IEhUTUxJRnJh
bWVFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjppZnJhbWVUYWcsIGRvY3VtZW50KTsKLSAgICBt
X2lmcmFtZS0+c2V0SWRBdHRyaWJ1dGUoIm1vY2stcGFnZS1wb3B1cCIpOwotICAgIG1faWZyYW1l
LT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5Qm9yZGVyV2lkdGgsIDAuMCwgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19QWCk7Ci0gICAgbV9pZnJhbWUtPnNldElubGluZVN0eWxlUHJv
cGVydHkoQ1NTUHJvcGVydHlQb3NpdGlvbiwgQ1NTVmFsdWVBYnNvbHV0ZSk7Ci0gICAgbV9pZnJh
bWUtPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlMZWZ0LCBvcmlnaW5Cb3VuZHNJ
blJvb3RWaWV3LngoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWCwgdHJ1ZSk7Ci0gICAgbV9p
ZnJhbWUtPnNldElubGluZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlUb3AsIG9yaWdpbkJvdW5k
c0luUm9vdFZpZXcubWF4WSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYLCB0cnVlKTsKLSAg
ICBpZiAoZG9jdW1lbnQtPmJvZHkoKSkKLSAgICAgICAgZG9jdW1lbnQtPmJvZHkoKS0+YXBwZW5k
Q2hpbGQobV9pZnJhbWUuZ2V0KCkpOwotICAgIEZyYW1lKiBjb250ZW50RnJhbWUgPSBtX2lmcmFt
ZS0+Y29udGVudEZyYW1lKCk7Ci0gICAgRG9jdW1lbnRXcml0ZXIqIHdyaXRlciA9IGNvbnRlbnRG
cmFtZS0+bG9hZGVyKCktPmFjdGl2ZURvY3VtZW50TG9hZGVyKCktPndyaXRlcigpOwotICAgIHdy
aXRlci0+c2V0TUlNRVR5cGUoInRleHQvaHRtbCIpOwotICAgIHdyaXRlci0+c2V0RW5jb2Rpbmco
IlVURi04IiwgZmFsc2UpOwotICAgIHdyaXRlci0+YmVnaW4oKTsKLSAgICBjb25zdCBjaGFyIHNj
cmlwdFRvU2V0VXBQYWdlUG9wdXBDb250cm9sbGVyW10gPSAiPHNjcmlwdD53aW5kb3cucGFnZVBv
cHVwQ29udHJvbGxlciA9IHBhcmVudC5pbnRlcm5hbHMucGFnZVBvcHVwQ29udHJvbGxlcjs8L3Nj
cmlwdD4iOwotICAgIHdyaXRlci0+YWRkRGF0YShzY3JpcHRUb1NldFVwUGFnZVBvcHVwQ29udHJv
bGxlciwgc2l6ZW9mKHNjcmlwdFRvU2V0VXBQYWdlUG9wdXBDb250cm9sbGVyKSk7Ci0gICAgbV9w
b3B1cENsaWVudC0+d3JpdGVEb2N1bWVudCgqd3JpdGVyKTsKLSAgICB3cml0ZXItPmVuZCgpOwot
fQotCi1QYXNzUmVmUHRyPE1vY2tQYWdlUG9wdXA+IE1vY2tQYWdlUG9wdXA6OmNyZWF0ZShQYWdl
UG9wdXBDbGllbnQqIGNsaWVudCwgY29uc3QgSW50UmVjdCYgb3JpZ2luQm91bmRzSW5Sb290Vmll
dywgRnJhbWUqIG1haW5GcmFtZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1vY2tQYWdl
UG9wdXAoY2xpZW50LCBvcmlnaW5Cb3VuZHNJblJvb3RWaWV3LCBtYWluRnJhbWUpKTsKLX0KLQot
dm9pZCBNb2NrUGFnZVBvcHVwOjpjbG9zZUxhdGVyKCkKLXsKLSAgICByZWYoKTsKLSAgICBtX3Bv
cHVwQ2xpZW50LT5kaWRDbG9zZVBvcHVwKCk7Ci0gICAgbV9wb3B1cENsaWVudCA9IDA7Ci0gICAg
Ly8gVGhpcyBjYW4gYmUgY2FsbGVkIGluIGRldGFjaCgpLCBhbmQgd2Ugc2hvdWxkIG5vdCBjaGFu
Z2UgRE9NIHN0cnVjdHVyZQotICAgIC8vIGR1cmluZyBkZXRhY2goKS4KLSAgICBtX2Nsb3NlVGlt
ZXIuc3RhcnRPbmVTaG90KDApOwotfQotCi12b2lkIE1vY2tQYWdlUG9wdXA6OmNsb3NlKFRpbWVy
PE1vY2tQYWdlUG9wdXA+KikKLXsKLSAgICBkZXJlZigpOwotfQotCi1Nb2NrUGFnZVBvcHVwOjp+
TW9ja1BhZ2VQb3B1cCgpCi17Ci0gICAgaWYgKG1faWZyYW1lICYmIG1faWZyYW1lLT5wYXJlbnRO
b2RlKCkpCi0gICAgICAgIG1faWZyYW1lLT5wYXJlbnROb2RlKCktPnJlbW92ZUNoaWxkKG1faWZy
YW1lLmdldCgpKTsKLX0KLQotaW5saW5lIE1vY2tQYWdlUG9wdXBEcml2ZXI6Ok1vY2tQYWdlUG9w
dXBEcml2ZXIoRnJhbWUqIG1haW5GcmFtZSkKLSAgICA6IG1fbWFpbkZyYW1lKG1haW5GcmFtZSkK
LXsKLX0KLQotUGFzc093blB0cjxNb2NrUGFnZVBvcHVwRHJpdmVyPiBNb2NrUGFnZVBvcHVwRHJp
dmVyOjpjcmVhdGUoRnJhbWUqIG1haW5GcmFtZSkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE1vY2tQYWdlUG9wdXBEcml2ZXIobWFpbkZyYW1lKSk7Ci19Ci0KLU1vY2tQYWdlUG9wdXBEcml2
ZXI6On5Nb2NrUGFnZVBvcHVwRHJpdmVyKCkKLXsKLSAgICBjbG9zZVBhZ2VQb3B1cChtX21vY2tQ
YWdlUG9wdXAuZ2V0KCkpOwotfQotCi1QYWdlUG9wdXAqIE1vY2tQYWdlUG9wdXBEcml2ZXI6Om9w
ZW5QYWdlUG9wdXAoUGFnZVBvcHVwQ2xpZW50KiBjbGllbnQsIGNvbnN0IEludFJlY3QmIG9yaWdp
bkJvdW5kc0luUm9vdFZpZXcpCi17Ci0gICAgaWYgKG1fbW9ja1BhZ2VQb3B1cCkKLSAgICAgICAg
Y2xvc2VQYWdlUG9wdXAobV9tb2NrUGFnZVBvcHVwLmdldCgpKTsKLSAgICBpZiAoIWNsaWVudCB8
fCAhbV9tYWluRnJhbWUpCi0gICAgICAgIHJldHVybiAwOwotICAgIG1fcGFnZVBvcHVwQ29udHJv
bGxlciA9IFBhZ2VQb3B1cENvbnRyb2xsZXI6OmNyZWF0ZShjbGllbnQpOwotICAgIG1fbW9ja1Bh
Z2VQb3B1cCA9IE1vY2tQYWdlUG9wdXA6OmNyZWF0ZShjbGllbnQsIG9yaWdpbkJvdW5kc0luUm9v
dFZpZXcsIG1fbWFpbkZyYW1lKTsKLSAgICByZXR1cm4gbV9tb2NrUGFnZVBvcHVwLmdldCgpOwot
fQotCi12b2lkIE1vY2tQYWdlUG9wdXBEcml2ZXI6OmNsb3NlUGFnZVBvcHVwKFBhZ2VQb3B1cCog
cG9wdXApCi17Ci0gICAgaWYgKCFwb3B1cCB8fCBwb3B1cCAhPSBtX21vY2tQYWdlUG9wdXAuZ2V0
KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX21vY2tQYWdlUG9wdXAtPmNsb3NlTGF0ZXIoKTsK
LSAgICBtX21vY2tQYWdlUG9wdXAuY2xlYXIoKTsKLSAgICBtX3BhZ2VQb3B1cENvbnRyb2xsZXIt
PmNsZWFyUGFnZVBvcHVwQ2xpZW50KCk7Ci0gICAgbV9wYWdlUG9wdXBDb250cm9sbGVyLmNsZWFy
KCk7Ci19Ci0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrUGFnZVBvcHVwRHJpdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlUG9w
dXBEcml2ZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzY4MTE1Nzg2NGJlYmY3
YzE4ZGQ5ZTRlMWJlN2Y5MzM1NmE3ZTcwOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlUG9wdXBEcml2
ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIE1vY2tQ
YWdlUG9wdXBEcml2ZXJfaAotI2RlZmluZSBNb2NrUGFnZVBvcHVwRHJpdmVyX2gKLQotI2luY2x1
ZGUgIlBhZ2VQb3B1cENsaWVudC5oIgotI2luY2x1ZGUgIlBhZ2VQb3B1cERyaXZlci5oIgotI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBGcmFtZTsKLWNsYXNzIEludFJlY3Q7Ci1jbGFzcyBNb2NrUGFn
ZVBvcHVwOwotY2xhc3MgUGFnZVBvcHVwOwotY2xhc3MgUGFnZVBvcHVwQ29udHJvbGxlcjsKLQot
Y2xhc3MgTW9ja1BhZ2VQb3B1cERyaXZlciA6IHB1YmxpYyBQYWdlUG9wdXBEcml2ZXIgewotcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPE1vY2tQYWdlUG9wdXBEcml2ZXI+IGNyZWF0ZShG
cmFtZSogbWFpbkZyYW1lKTsKLSAgICB2aXJ0dWFsIH5Nb2NrUGFnZVBvcHVwRHJpdmVyKCk7Ci0g
ICAgUGFnZVBvcHVwQ29udHJvbGxlciogcGFnZVBvcHVwQ29udHJvbGxlcigpIHsgcmV0dXJuIG1f
cGFnZVBvcHVwQ29udHJvbGxlci5nZXQoKTsgfQotCi1wcml2YXRlOgotICAgIE1vY2tQYWdlUG9w
dXBEcml2ZXIoRnJhbWUqIG1haW5GcmFtZSk7Ci0KLSAgICAvLyBQYWdlUG9wdXBEcml2ZXIgZnVu
Y3Rpb25zOgotICAgIHZpcnR1YWwgUGFnZVBvcHVwKiBvcGVuUGFnZVBvcHVwKFBhZ2VQb3B1cENs
aWVudCosIGNvbnN0IEludFJlY3QmIG9yaWdpbkJvdW5kc0luUm9vdFZpZXcpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBjbG9zZVBhZ2VQb3B1cChQYWdlUG9wdXAqKSBPVkVSUklERTsKLQot
ICAgIFJlZlB0cjxNb2NrUGFnZVBvcHVwPiBtX21vY2tQYWdlUG9wdXA7Ci0gICAgRnJhbWUqIG1f
bWFpbkZyYW1lOwotICAgIFJlZlB0cjxQYWdlUG9wdXBDb250cm9sbGVyPiBtX3BhZ2VQb3B1cENv
bnRyb2xsZXI7Ci19OwotCi19Ci0jZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJsZUZlYXR1cmVzLmlu
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0Fib3V0RGF0YUVuYWJs
ZUZlYXR1cmVzLmluCmluZGV4IGIwNWYxZDBhZjBiZWY5OTI1ZjA2MmE1NDc3MGNhNzNkNWI4NGVm
MGUuLjg1MzViZDRiM2MwMjRjNzU3NWU1NDQxNzkzYWIxYjFjODdhM2FjNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9BYm91dERhdGFFbmFibGVG
ZWF0dXJlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
QWJvdXREYXRhRW5hYmxlRmVhdHVyZXMuaW4KQEAgLTE0Niw3ICsxNDYsNiBAQCBPUEVOQ0wKIE9Q
RU5UWVBFX1ZFUlRJQ0FMCiBPUklFTlRBVElPTl9FVkVOVFMKIE9TUl9FTlRSWQotUEFHRV9QT1BV
UAogUEFHRV9WSVNJQklMSVRZX0FQSQogUEFOX1NDUk9MTElORwogUEFSQUxMRUxfR0MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlIGIvU291cmNlL2NtYWtlY29uZmlnLmgu
Y21ha2UKaW5kZXggNTQwODdkNmVlNmQ1MjYyZjY1MGUyZWUzOWQxYjQyMmYxMTFiMDJmYi4uZTUw
YmY3NWIwY2Y5NmEzNzg5OTZiYmYxZGI5OWM2NWZmYjYzZTVjZSAxMDA2NDQKLS0tIGEvU291cmNl
L2NtYWtlY29uZmlnLmguY21ha2UKKysrIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKQEAg
LTg4LDcgKzg4LDYgQEAKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9ORVRXT1JLX0lORk8KICNjbWFr
ZWRlZmluZTAxIEVOQUJMRV9OT1RJRklDQVRJT05TCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfT1JJ
RU5UQVRJT05fRVZFTlRTCi0jY21ha2VkZWZpbmUwMSBFTkFCTEVfUEFHRV9QT1BVUAogI2NtYWtl
ZGVmaW5lMDEgRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkKICNjbWFrZWRlZmluZTAxIEVOQUJM
RV9QRVJGT1JNQU5DRV9USU1FTElORQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1BMVUdJTl9QUk9Y
WV9GT1JfVklERU8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA5OWMzNzA2ZmFiMWMzZjRkY2RhMTg4N2ZjYmY2ZjUxNDEyYmEw
YWM2Li5jNTZjNmI4NjgyZGZiODQ0ODhmMGRiMTgxOTcwY2QxMjQyYTlhZDJiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTMtMDUtMjQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgUGFnZVBvcHVwIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjczMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0ZXN0cyB0aGF0IHJlbGllZCBv
biB0aGUgbW9jayBwYWdlIHBvcHVwIGRyaXZlci4KKworICAgICAgICAqIGZhc3QvZm9ybXMvZGF0
ZS9uby1wYWdlLXBvcHVwLWNvbnRyb2xsZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvZGF0ZS9uby1wYWdlLXBvcHVwLWNvbnRyb2xsZXIuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jlc291cmNlcy9waWNrZXItY29tbW9uLmpzOiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0
aXBsZS1maWVsZHMtb3Blbi1waWNrZXIta2V5LWJpbmRpbmdzLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlw
bGUtZmllbGRzLW9wZW4tcGlja2VyLWtleS1iaW5kaW5ncy5odG1sOiBSZW1vdmVkLgorCiAyMDEz
LTA1LTI0ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIEltcHJvdmUgbG9hZGVyL2dvLWJhY2stY2FjaGVkLW1haW4tcmVzb3VyY2UuaHRtbCB0ZXN0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGUvbm8tcGFnZS1wb3B1cC1j
b250cm9sbGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9uby1w
YWdlLXBvcHVwLWNvbnRyb2xsZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMjc4MjVmOWM1MzBlMWY0NGIxYzU1MTFiYjRlMGVmOGFmYjk2MGFmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvZGF0ZS9uby1wYWdlLXBvcHVwLWNvbnRyb2xsZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotQ29uZmlybSB0aGF0IHRoZSBtYWluIHdpbmRvdyBkb2Vz
bid0IGhhdmUgcGFnZVBvcHVwQ29udHJvbGxlciwgd2hpY2ggc2hvdWxkIGJlIHByZXNlbnQgb25s
eSBpbiBhIGNhbGVuZGFyIHBpY2tlci4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LVBBU1Mgd2luZG93LnBhZ2VQb3B1cENvbnRyb2xsZXIgPT09IHVuZGVmaW5lZCBpcyB0cnVlCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL25vLXBhZ2UtcG9wdXAtY29udHJvbGxl
ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRlL25vLXBhZ2UtcG9wdXAtY29udHJv
bGxlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMmNjNzA0OWZkNjg0MWU2
MzQzODljYmRkOGFiY2IwZTRkZmE4NDE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0ZS9uby1wYWdlLXBvcHVw
LWNvbnRyb2xsZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxpbnB1dCB0eXBlPWRhdGU+Ci08c2NyaXB0PgotZGVzY3JpcHRp
b24oJ0NvbmZpcm0gdGhhdCB0aGUgbWFpbiB3aW5kb3cgZG9lc25cJ3QgaGF2ZSBwYWdlUG9wdXBD
b250cm9sbGVyLCB3aGljaCBzaG91bGQgYmUgcHJlc2VudCBvbmx5IGluIGEgY2FsZW5kYXIgcGlj
a2VyLicpOwotc2hvdWxkQmVUcnVlKCd3aW5kb3cucGFnZVBvcHVwQ29udHJvbGxlciA9PT0gdW5k
ZWZpbmVkJyk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3BpY2tlci1jb21tb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3Jlc291cmNlcy9waWNrZXItY29tbW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2ZmNiMjExZTRjMjczNTQwY2FkNmI3NTRhNmEyNGZkY2M0ZTU4NzFhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvcmVzb3VyY2VzL3BpY2tlci1jb21tb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSwzOCAr
MCwwIEBACi13aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7Ci1pZiAod2luZG93LmludGVybmFs
cykKLSAgICBpbnRlcm5hbHMuc2V0RW5hYmxlTW9ja1BhZ2VQb3B1cCh0cnVlKTsKLQotdmFyIHBv
cHVwV2luZG93ID0gbnVsbDsKLQotdmFyIHBvcHVwT3BlbkNhbGxiYWNrID0gbnVsbDsKLWZ1bmN0
aW9uIG9wZW5QaWNrZXIoaW5wdXQsIGNhbGxiYWNrKSB7Ci0gICAgaW5wdXQub2Zmc2V0VG9wOyAv
LyBGb3JjZSB0byBsYXkgb3V0Ci0gICAgaWYgKGlucHV0LnR5cGUgPT09ICJjb2xvciIpIHsKLSAg
ICAgICAgaW5wdXQuZm9jdXMoKTsKLSAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiICIpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIHNlbmRLZXkoaW5wdXQsICJEb3duIiwgZmFsc2UsIHRydWUp
OwotICAgIH0KLSAgICBwb3B1cFdpbmRvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2Nr
LXBhZ2UtcG9wdXAnKS5jb250ZW50V2luZG93OwotICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09
ICJmdW5jdGlvbiIpIHsKLSAgICAgICAgcG9wdXBPcGVuQ2FsbGJhY2sgPSBjYWxsYmFjazsKLSAg
ICAgICAgcG9wdXBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZGlkT3BlblBpY2tlciIsIHBvcHVw
T3BlbkNhbGxiYWNrV3JhcHBlciwgZmFsc2UpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gcG9wdXBP
cGVuQ2FsbGJhY2tXcmFwcGVyKCkgewotICAgIHBvcHVwV2luZG93LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoImRpZE9wZW5QaWNrZXIiLCBwb3B1cE9wZW5DYWxsYmFja1dyYXBwZXIpOwotICAgIHBvcHVw
T3BlbkNhbGxiYWNrKCk7Ci19Ci0KLWZ1bmN0aW9uIHdhaXRVbnRpbENsb3NpbmcoY2FsbGJhY2sp
IHsKLSAgICBzZXRUaW1lb3V0KGNhbGxiYWNrLCAxKTsKLX0KLQotZnVuY3Rpb24gc2VuZEtleShp
bnB1dCwga2V5TmFtZSwgY3RybEtleSwgYWx0S2V5KSB7Ci0gICAgdmFyIGV2ZW50ID0gZG9jdW1l
bnQuY3JlYXRlRXZlbnQoJ0tleWJvYXJkRXZlbnQnKTsKLSAgICBldmVudC5pbml0S2V5Ym9hcmRF
dmVudCgna2V5ZG93bicsIHRydWUsIHRydWUsIGRvY3VtZW50LmRlZmF1bHRWaWV3LCBrZXlOYW1l
LCAwLCBjdHJsS2V5LCBhbHRLZXkpOwotICAgIGlucHV0LmRpc3BhdGNoRXZlbnQoZXZlbnQpOwot
fQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1m
aWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtb3Blbi1waWNrZXIta2V5LWJpbmRpbmdzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGlt
ZS1tdWx0aXBsZS1maWVsZHMtb3Blbi1waWNrZXIta2V5LWJpbmRpbmdzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzJjNWM3YTViMmY1YTE4ZWE3YzIxY2ZlZTYw
YmNmMThmOTM4MTEwOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVs
dGlwbGUtZmllbGRzLW9wZW4tcGlja2VyLWtleS1iaW5kaW5ncy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1GNCBvciBBbHQrRG93biBzaG91bGQgbm90IG9wZW4g
dGhlIGNhbGVuZGFyIHBpY2tlci4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vY2stcGFnZS1wb3B1cCIpIGlzIG51bGwKLVBB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vY2stcGFnZS1wb3B1cCIpIGlzIG51bGwKLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVs
dGlwbGUtZmllbGRzLW9wZW4tcGlja2VyLWtleS1iaW5kaW5ncy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1vcGVu
LXBpY2tlci1rZXktYmluZGluZ3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzhjMmNlMTA5YjZkNzE5OGZiM2I0YzliYmIyYjI4NjUwMDAyYTY1ZC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Rp
bWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLW9wZW4tcGlja2VyLWtleS1i
aW5kaW5ncy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3BpY2tlci1j
b21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08aW5wdXQgdHlwZT10aW1lIGlkPXRp
bWUgdmFsdWU9IjIwMTEtMDUtMDEiPgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oJ0Y0IG9yIEFs
dCtEb3duIHNob3VsZCBub3Qgb3BlbiB0aGUgY2FsZW5kYXIgcGlja2VyLicpOwotCi12YXIgaW5w
dXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGltZScpOwotc2VuZEtleShpbnB1dCwgJ0Y0
JywgZmFsc2UsIGZhbHNlKTsKLXNob3VsZEJlTnVsbCgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im1vY2stcGFnZS1wb3B1cCIpJyk7Ci1zZW5kS2V5KGlucHV0LCAnRG93bicsIGZhbHNlLCB0cnVl
KTsKLXNob3VsZEJlTnVsbCgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vY2stcGFnZS1wb3B1
cCIpJyk7Ci0KLWZpbmlzaEpTVGVzdCgpOwotCi08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBjMzJjMzM2MjJmNGVj
M2RiMTFmZDVkNWU4NGY1NzEzNWQzOTMyOGFiLi5lNTdiYTRmZTk5ZDdlNGY5OTkzNGJlNjcwZmM1
MmE0NTEzZjljNTAxIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTMtMDUtMjQgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgUGFnZVBvcHVwIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjczMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlY29uZmlnLmguY21h
a2U6CisgICAgICAgIFJlbW92ZSBFTkFCTEVfUEFHRV9QT1BVUC4KKwogMjAxMy0wNS0yMSAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gW0NN
YWtlXSBBZGQgc3VwcG9ydCBmb3IgYnVpbGRpbmcgV2ViS2l0Mgo=
</data>
<flag name="review"
          id="224238"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="224242"
          type_id="3"
          status="-"
          setter="gtk-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>