<?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>231727</bug_id>
          
          <creation_ts>2021-10-14 01:51:12 -0700</creation_ts>
          <short_desc>New spec: Block external protocol handler in sandboxed frames</short_desc>
          <delta_ts>2022-02-28 10:04:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=237269</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>232769</dependson>
    
    <dependson>236516</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Arthur Sonzogni">arthursonzogni</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>mkwst</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1804190</commentid>
    <comment_count>0</comment_count>
    <who name="Arthur Sonzogni">arthursonzogni</who>
    <bug_when>2021-10-14 01:51:12 -0700</bug_when>
    <thetext>Implementation bug about a new specification:
spec: https://github.com/whatwg/html/pull/7124#pullrequestreview-778826909
whatwg/html bug: https://github.com/whatwg/html/issues/2191

Developers are surprised that sandboxed iframe can navigate and/or
redirect the user toward an external application.

General iframe navigation in the sandboxed iframe are not blocked
normally, because they stay within the iframe. However they can be seen
as a popup or a top-level navigation when it opens an external
application. In this case, it makes sense to extend the scope of sandbox
flags, and block malvertisers.

This feature gates access to external protocol from sandboxed iframe behind any of:
- allow-popup
- allow-top-level-navigation
- allow-top-level-navigation-by-user-activation + UserGesture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807049</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-21 01:52:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/84498192&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811720</commentid>
    <comment_count>2</comment_count>
      <attachid>443258</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-03 17:12:05 -0700</bug_when>
    <thetext>Created attachment 443258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811743</commentid>
    <comment_count>3</comment_count>
      <attachid>443258</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-11-03 20:10:18 -0700</bug_when>
    <thetext>Comment on attachment 443258
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=443258&amp;action=review

Vaguely worried about ads that want to pop to the App Store. Also about third party app compatibility. But no concrete examples of either.

&gt; Source/WebKit/ChangeLog:13
&gt; +        an external apps.

“An external apps”

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5359
&gt; +        WEBPAGEPROXY_RELEASE_LOG_ERROR(Process, &quot;Ignoring request to load this main resource because it has a custom protocol and comes from a sandbox iframe&quot;);

“Sandboxed”? Also should we log to the inspector too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811855</commentid>
    <comment_count>4</comment_count>
      <attachid>443305</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-04 08:19:19 -0700</bug_when>
    <thetext>Created attachment 443305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811913</commentid>
    <comment_count>5</comment_count>
      <attachid>443323</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-04 11:15:39 -0700</bug_when>
    <thetext>Created attachment 443323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812243</commentid>
    <comment_count>6</comment_count>
      <attachid>443438</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-05 14:26:11 -0700</bug_when>
    <thetext>Created attachment 443438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812261</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-05 15:23:40 -0700</bug_when>
    <thetext>The iOS API test failure is caused by Bug 232769.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812353</commentid>
    <comment_count>8</comment_count>
      <attachid>443478</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-05 22:41:00 -0700</bug_when>
    <thetext>Created attachment 443478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813141</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-09 07:35:38 -0800</bug_when>
    <thetext>Ping review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813159</commentid>
    <comment_count>10</comment_count>
      <attachid>443478</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-11-09 08:18:11 -0800</bug_when>
    <thetext>Comment on attachment 443478
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813163</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-09 08:40:57 -0800</bug_when>
    <thetext>Committed r285501 (244025@main): &lt;https://commits.webkit.org/244025@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443478.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813167</commentid>
    <comment_count>12</comment_count>
    <who name="Arthur Sonzogni">arthursonzogni</who>
    <bug_when>2021-11-09 08:55:51 -0800</bug_when>
    <thetext>Hi Chris,

Some data I gathered on Chrome about enabling this.
This would impact ~0.015% pages.

Among them, a good quarter is triggered from https://teams.microsoft.com with the msteam: protocol. They have been notified about it here:
https://github.com/whatwg/html/issues/2191#issuecomment-952283644
and we hope this will contribute to reduce the number of impacted pages.

I just wanted to let you know this is still not enforced by default in Chrome, so you may get some websites complaining about it. On the other side, I am expecting a part of this is coming from malicious ads, but I don&apos;t have any estimations, only some reports that this is maliciously used in the wild.

Getting Safari to ship this would greatly help me enabling this in Chrome too, so I am very happy! I just wanted to warn you about the risk and I will let you decide if 0.015% is acceptable.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443258</attachid>
            <date>2021-11-03 17:12:05 -0700</date>
            <delta_ts>2021-11-04 09:15:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231727-20211103171205.patch</filename>
            <type>text/plain</type>
            <size>12921</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY3ZTUxMmQwMzczYTg1NDcx
MWUxZDk2NGU0MWQzOTIxMmZhYWVhNWQuLmFlOTIxMDgxOGExY2ZhM2QzNzRhZmM0YTcwZjRhZjFm
MzZkYTM2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMTEtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOZXcgc3BlYzogQmxvY2sgZXh0ZXJu
YWwgcHJvdG9jb2wgaGFuZGxlciBpbiBzYW5kYm94ZWQgZnJhbWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3MjcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0NDk4MTkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBlciB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIFsxXVsyXSwgd2Ugc2hvdWxkIHBy
ZXZlbnQgc2FuZGJveGVkIGlmcmFtZXMgZnJvbSBvcGVuaW5nCisgICAgICAgIGV4dGVybmFsIGFw
cGxpY2F0aW9ucyBieSBuYXZpZ2F0aW5nIHRvIGEgVVJMIHdpdGggYSBjdXN0b20gcHJvY290b2wg
KGUuZy4gcmRhcjovLykuCisKKyAgICAgICAgSW5kZWVkLCBpdCB3b3VsZCBiZSBzdXJwcmlzaW5n
IGlmIG1hbHZlcnRpc2VycyB3b3VsZCBiZSBhYmxlIHRvIHJlZGlyZWN0IHlvdSB0bworICAgICAg
ICBhbiBleHRlcm5hbCBhcHBzLgorCisgICAgICAgIFRvIHN1cHBvcnQgdmFsaWQgdXNlIGNhc2Vz
LCB3ZSBzdGlsbCBhbGxvdyBzdWNoIG5hdmlnYXRpb25zIGluIHNhbmRib3hlZCBpZnJhbWVzCisg
ICAgICAgIGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6CisgICAgICAgIC0gc2FuZGJv
eEZsYWdzIGNvbnRhaW5zICJhbGxvdy10b3AtbmF2aWdhdGlvbi1ieS11c2VyLWFjdGl2YXRpb24i
IGFuZCBoYXNUcmFuc2llbnRBY3RpdmF0aW9uIGlzIHRydWUKKyAgICAgICAgLSBzYW5kYm94Rmxh
Z3MgY29udGFpbnMgImFsbG93LXRvcC1uYXZpZ2F0aW9uIgorICAgICAgICAtIHNhbmRib3hGbGFn
cyBjb250YWlucyAiYWxsb3ctcG9wdXBzIgorCisgICAgICAgIFsxXSBodHRwczovL2dpdGh1Yi5j
b20vd2hhdHdnL2h0bWwvaXNzdWVzLzIxOTEKKyAgICAgICAgWzJdIGh0dHBzOi8vaHRtbC5zcGVj
LndoYXR3Zy5vcmcvI2hhbmQtb2ZmLXRvLWV4dGVybmFsLXNvZnR3YXJlCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6ZnJhbWVTYW5kYm94
QWxsb3dzT3BlbmluZ0V4dGVybmFsQ3VzdG9tUHJvdG9jb2xzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKwogMjAyMS0x
MS0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIGNv
dXBsZSBvZiBsb2dpYyBpc3N1ZXMgaW4gQ29ubmVjdGlvbjo6ZGlzcGF0Y2hJbmNvbWluZ01lc3Nh
Z2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDRkZmVk
OGRjYzY0YTliNjcwNjA1OTc5OTUyOGRjY2I3MzYyNjkwM2QuLmQ0NTkyYjg5Y2Q2NzdlYmRkZTA0
NDk5NmJkNTJkOTEzNjdhNDg1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtNTI1Myw2ICs1MjUzLDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94CiAg
ICAgICAgIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0
Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHNlbmRl
cikpOwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNoYW5kLW9mZi10by1l
eHRlcm5hbC1zb2Z0d2FyZQorc3RhdGljIGJvb2wgZnJhbWVTYW5kYm94QWxsb3dzT3BlbmluZ0V4
dGVybmFsQ3VzdG9tUHJvdG9jb2xzKFNhbmRib3hGbGFncyBzYW5kYm94RmxhZ3MsIGJvb2wgaGFz
VXNlckdlc3R1cmUpCit7CisgICAgaWYgKCEoc2FuZGJveEZsYWdzICYgU2FuZGJveFBvcHVwcykg
fHwgIShzYW5kYm94RmxhZ3MgJiBTYW5kYm94VG9wTmF2aWdhdGlvbikpCisgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgcmV0dXJuICEoc2FuZGJveEZsYWdzICYgU2FuZGJveFRvcE5hdmlnYXRp
b25CeVVzZXJBY3RpdmF0aW9uKSAmJiBoYXNVc2VyR2VzdHVyZTsKK30KKwogdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94
eT4mJiBwcm9jZXNzLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1l
SW5mbywgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYg
bmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5m
b0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQ
YWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgUmVmPFBvbGljeURlY2lzaW9uU2Vu
ZGVyPiYmIHNlbmRlcikKQEAgLTUzNDQsNiArNTM1MywxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2NlcwogICAgIH0KICNlbmRpZgogCisgICAgLy8gU2FuZGJveGVkIGlmcmFtZXMgc2hvdWxkIGJl
IGFsbG93ZWQgdG8gb3BlbiBleHRlcm5hbCBhcHBzIHZpYSBjdXN0b20gcHJvdG9jb2xzIHVubGVz
cyBleHBsaWNpdGVseSBhbGxvd2VkIChodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNoYW5k
LW9mZi10by1leHRlcm5hbC1zb2Z0d2FyZSkuCisgICAgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0ID0g
bmF2aWdhdGlvbkFjdGlvbkRhdGEuY2FuSGFuZGxlUmVxdWVzdCB8fCBtX3VybFNjaGVtZUhhbmRs
ZXJzQnlTY2hlbWUuY29udGFpbnMocmVxdWVzdC51cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0
aG91dENvcHlpbmcoKSk7CisgICAgaWYgKCFjYW5IYW5kbGVSZXF1ZXN0ICYmICFkZXN0aW5hdGlv
bkZyYW1lSW5mby0+aXNNYWluRnJhbWUoKSAmJiAhZnJhbWVTYW5kYm94QWxsb3dzT3BlbmluZ0V4
dGVybmFsQ3VzdG9tUHJvdG9jb2xzKG5hdmlnYXRpb25BY3Rpb25EYXRhLmVmZmVjdGl2ZVNhbmRi
b3hGbGFncywgISFuYXZpZ2F0aW9uQWN0aW9uRGF0YS51c2VyR2VzdHVyZVRva2VuSWRlbnRpZmll
cikpIHsKKyAgICAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJJ
Z25vcmluZyByZXF1ZXN0IHRvIGxvYWQgdGhpcyBtYWluIHJlc291cmNlIGJlY2F1c2UgaXQgaGFz
IGEgY3VzdG9tIHByb3RvY29sIGFuZCBjb21lcyBmcm9tIGEgc2FuZGJveCBpZnJhbWUiKTsKKyAg
ICAgICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uOjpJZ25vcmUs
IG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCksIG51bGxwdHIsIFdU
Rk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIFdURk1vdmUoc2VuZGVyKSk7CisgICAgfQorCiAgICAg
U2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0IHNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jl
c3VsdCA9IFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6WWVzOwogICAgIGlmICghbV9w
cmVmZXJlbmNlcy0+c2FmZUJyb3dzaW5nRW5hYmxlZCgpKQogICAgICAgICBzaG91bGRFeHBlY3RT
YWZlQnJvd3NpbmdSZXN1bHQgPSBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQ6Ok5vOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDcwN2Q1
MDdhZDM4MzFmMzAxNmVhY2ExM2Y5ZTc3YTFiODkwZDc4ZTAuLjdhMmNlZjcxOWEyMTA4M2U1NzJh
MTMzMGI1NjZhZTE5NzNjZTI4MjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0wMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5ldyBzcGVjOiBCbG9jayBleHRlcm5hbCBw
cm90b2NvbCBoYW5kbGVyIGluIHNhbmRib3hlZCBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTcyNworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vODQ0OTgxOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEt
MTEtMDMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggYSBj
b3VwbGUgb2YgbG9naWMgaXNzdWVzIGluIENvbm5lY3Rpb246OmRpc3BhdGNoSW5jb21pbmdNZXNz
YWdlcygpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L05hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05h
dmlnYXRpb24ubW0KaW5kZXggMDUxZjlhNzc5OGIzMzdmMWUyYzNlZjRkY2M3NDA2ZjU2MmRlMzI2
Yi4uNmQ4MDA0NzNlNDIzNDViMDA1MWNmNzRlMjliZjUzZDUyYTgyODY3MSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbQpAQCAt
ODIzLDMgKzgyMywxOTAgQEAgVEVTVChXS05hdmlnYXRpb24sIFNpbXVsdGFuZW91c05hdmlnYXRp
b25XaXRoRm9udHNGaW5pc2hlcykKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVx
dWVzdCgpXTsKICAgICBVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CiB9CisKK1RFU1Qo
V0tOYXZpZ2F0aW9uLCBMb2FkUmFkYXJVUkxGcm9tU2FuZGJveGVkRnJhbWVBbGxvd1BvcHVwcykK
K3sKKyAgICBjb25zdCBjaGFyKiBtYWluSFRNTCA9ICI8aWZyYW1lIHNyYz0nZnJhbWUuaHRtbCcg
c2FuZGJveD0nYWxsb3ctc2NyaXB0cyBhbGxvdy1wb3B1cHMnPjwvaWZyYW1lPiI7CisgICAgY29u
c3QgY2hhciogZnJhbWVIVE1MID0gIjxhIGlkPSd0ZXN0TGluaycgaHJlZj0ncmRhcjovLzg0NDk4
MTkyJz5MaW5rPC9hPjxzY3JpcHQ+c2V0VGltZW91dCgoKSA9PiB7IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0TGluaycpLmNsaWNrKCkgfSwgMCk7PC9zY3JpcHQ+IjsKKworICAgIHVzaW5n
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOworICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAg
ICAgeyAiLyIsIHsgbWFpbkhUTUwgfSB9LAorICAgICAgICB7ICIvZnJhbWUuaHRtbCIsIHsgZnJh
bWVIVE1MIH0gfSwKKyAgICB9KTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2Vi
VmlldyBuZXddKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmlnYXRpb25E
ZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdh
dGUuZ2V0KCldOworCisgICAgX19ibG9jayBib29sIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gZmFs
c2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9
IF4oV0tOYXZpZ2F0aW9uQWN0aW9uICphY3Rpb24sIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlciko
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSkgeworICAgICAgICBpZiAoW2FjdGlvbi5yZXF1ZXN0
LlVSTC5zY2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAicmRhciJdKSB7CisgICAgICAgICAgICBkaWRU
cnlUb0xvYWRSYWRhclVSTCA9IHRydWU7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3lDYW5jZWwpOworICAgICAgICB9IGVsc2UKKyAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsKKyAg
ICB9OworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAg
IGRlbGVnYXRlLmdldCgpLmRpZEZpbmlzaE5hdmlnYXRpb24gPSBeKFdLV2ViVmlldyAqLCBXS05h
dmlnYXRpb24gKikgeworICAgICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSB0cnVlOworICAgIH07
CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBVdGls
OjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAgICBVdGlsOjpydW4oJmRpZFRyeVRvTG9h
ZFJhZGFyVVJMKTsKK30KKworVEVTVChXS05hdmlnYXRpb24sIExvYWRSYWRhclVSTEZyb21TYW5k
Ym94ZWRGcmFtZUFsbG93VG9wTmF2aWdhdGlvbikKK3sKKyAgICBjb25zdCBjaGFyKiBtYWluSFRN
TCA9ICI8aWZyYW1lIHNyYz0nZnJhbWUuaHRtbCcgc2FuZGJveD0nYWxsb3ctc2NyaXB0cyBhbGxv
dy10b3AtbmF2aWdhdGlvbic+PC9pZnJhbWU+IjsKKyAgICBjb25zdCBjaGFyKiBmcmFtZUhUTUwg
PSAiPGEgaWQ9J3Rlc3RMaW5rJyBocmVmPSdyZGFyOi8vODQ0OTgxOTInPkxpbms8L2E+PHNjcmlw
dD5zZXRUaW1lb3V0KCgpID0+IHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RMaW5rJyku
Y2xpY2soKSB9LCAwKTs8L3NjcmlwdD4iOworCisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEk7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluSFRN
TCB9IH0sCisgICAgICAgIHsgIi9mcmFtZS5odG1sIiwgeyBmcmFtZUhUTUwgfSB9LAorICAgIH0p
OworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAg
IFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBf
X2Jsb2NrIGJvb2wgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5n
ZXQoKS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gXihXS05hdmlnYXRpb25BY3Rp
b24gKmFjdGlvbiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3kpKSB7CisgICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJMLnNjaGVtZSBpc0VxdWFs
VG9TdHJpbmc6QCJyZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0g
dHJ1ZTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeUNhbmNlbCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07CisKKyAgICBfX2Jsb2Nr
IGJvb2wgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlk
RmluaXNoTmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAg
ICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZp
Z2F0aW9uKTsKKworICAgIFV0aWw6OnJ1bigmZGlkVHJ5VG9Mb2FkUmFkYXJVUkwpOworfQorCitU
RVNUKFdLTmF2aWdhdGlvbiwgTG9hZFJhZGFyVVJMRnJvbVNhbmRib3hlZEZyYW1lV2l0aFVzZXJH
ZXN0dXJlKQoreworICAgIGNvbnN0IGNoYXIqIG1haW5IVE1MID0gIjxpZnJhbWUgc3JjPSdmcmFt
ZS5odG1sJyBzYW5kYm94PSdhbGxvdy1zY3JpcHRzIGFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVz
ZXItYWN0aXZhdGlvbic+PC9pZnJhbWU+IjsKKyAgICBjb25zdCBjaGFyKiBmcmFtZUhUTUwgPSAi
PGEgaWQ9J3Rlc3RMaW5rJyBocmVmPSdyZGFyOi8vODQ0OTgxOTInPkxpbms8L2E+PC9zY3JpcHQ+
IjsKKworICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOworICAgIEhUVFBTZXJ2ZXIg
c2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgbWFpbkhUTUwgfSB9LAorICAgICAgICB7ICIvZnJh
bWUuaHRtbCIsIHsgZnJhbWVIVE1MIH0gfSwKKyAgICB9KTsKKworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
VGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9u
RGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgX19ibG9jayBSZXRhaW5QdHI8V0tGcmFt
ZUluZm8+IGlmcmFtZTsKKyAgICBfX2Jsb2NrIGJvb2wgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSBm
YWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
ID0gXihXS05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVy
KShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKSB7CisgICAgICAgIGlmICghYWN0aW9uLnRhcmdl
dEZyYW1lLmlzTWFpbkZyYW1lKQorICAgICAgICAgICAgaWZyYW1lID0gYWN0aW9uLnRhcmdldEZy
YW1lOworICAgICAgICBpZiAoW2FjdGlvbi5yZXF1ZXN0LlVSTC5zY2hlbWUgaXNFcXVhbFRvU3Ry
aW5nOkAicmRhciJdKSB7CisgICAgICAgICAgICBkaWRUcnlUb0xvYWRSYWRhclVSTCA9IHRydWU7
CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lD
YW5jZWwpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsKKyAgICB9OworCisgICAgX19ibG9jayBib29s
IGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIGRlbGVnYXRlLmdldCgpLmRpZEZpbmlz
aE5hdmlnYXRpb24gPSBeKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKikgeworICAgICAgICBm
aW5pc2hlZE5hdmlnYXRpb24gPSB0cnVlOworICAgIH07CisKKyAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlv
bik7CisKKyAgICBBU1NFUlRfVFJVRSghIWlmcmFtZSk7CisKKyAgICAvLyBSdW5uaW5nIEphdmFz
Y3JpcHQgc2ltdWxhdGVzIGEgdXNlciBnZXN0dXJlIHNvIHRoZSBuYXZpZ2F0aW9uIHNob3VsZCBi
ZSBwZXJtaXR0ZWQgZHVlIHRvICdhbGxvdy10b3AtbmF2aWdhdGlvbi1ieS11c2VyLWFjdGl2YXRp
b24nLgorICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0TGluaycpLmNsaWNrKCkiIGluRnJhbWU6aWZyYW1lLmdldCgpIGluQ29udGVu
dFdvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwor
CisgICAgVXRpbDo6cnVuKCZkaWRUcnlUb0xvYWRSYWRhclVSTCk7Cit9CisKK1RFU1QoV0tOYXZp
Z2F0aW9uLCBMb2FkUmFkYXJVUkxGcm9tU2FuZGJveGVkRnJhbWUpCit7CisgICAgY29uc3QgY2hh
ciogbWFpbkhUTUwgPSAiPGlmcmFtZSBzcmM9J2ZyYW1lLmh0bWwnIHNhbmRib3g9J2FsbG93LXNj
cmlwdHMnPjwvaWZyYW1lPiI7CisgICAgY29uc3QgY2hhciogZnJhbWVIVE1MID0gIjxhIGlkPSd0
ZXN0TGluaycgaHJlZj0ncmRhcjovLzg0NDk4MTkyJz5MaW5rPC9hPjxzY3JpcHQ+c2V0VGltZW91
dCgoKSA9PiB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0TGluaycpLmNsaWNrKCkgfSwg
MCk7PC9zY3JpcHQ+IjsKKworICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOworICAg
IEhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgbWFpbkhUTUwgfSB9LAorICAg
ICAgICB7ICIvZnJhbWUuaHRtbCIsIHsgZnJhbWVIVE1MIH0gfSwKKyAgICB9KTsKKworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBz
ZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgX19ibG9jayBib29s
IGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IF4oV0tOYXZpZ2F0aW9uQWN0aW9uICphY3Rpb24s
IHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSkgewor
ICAgICAgICBpZiAoW2FjdGlvbi5yZXF1ZXN0LlVSTC5zY2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAi
cmRhciJdKSB7CisgICAgICAgICAgICBkaWRUcnlUb0xvYWRSYWRhclVSTCA9IHRydWU7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lDYW5jZWwp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeUFsbG93KTsKKyAgICB9OworCisgICAgX19ibG9jayBib29sIGZpbmlz
aGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIGRlbGVnYXRlLmdldCgpLmRpZEZpbmlzaE5hdmln
YXRpb24gPSBeKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKikgeworICAgICAgICBmaW5pc2hl
ZE5hdmlnYXRpb24gPSB0cnVlOworICAgIH07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpz
ZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisK
KyAgICBVdGlsOjpzbGVlcCgwLjUpOworCisgICAgRVhQRUNUX0ZBTFNFKGRpZFRyeVRvTG9hZFJh
ZGFyVVJMKTsKK30KKworVEVTVChXS05hdmlnYXRpb24sIExvYWRSYWRhclVSTEZyb21TYW5kYm94
ZWRGcmFtZU1pc3NpbmdVc2VyR2VzdHVyZSkKK3sKKyAgICBjb25zdCBjaGFyKiBtYWluSFRNTCA9
ICI8aWZyYW1lIHNyYz0nZnJhbWUuaHRtbCcgc2FuZGJveD0nYWxsb3ctc2NyaXB0cyBhbGxvdy10
b3AtbmF2aWdhdGlvbi1ieS11c2VyLWFjdGl2YXRpb24nPjwvaWZyYW1lPiI7CisgICAgY29uc3Qg
Y2hhciogZnJhbWVIVE1MID0gIjxhIGlkPSd0ZXN0TGluaycgaHJlZj0ncmRhcjovLzg0NDk4MTky
Jz5MaW5rPC9hPjxzY3JpcHQ+c2V0VGltZW91dCgoKSA9PiB7IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0TGluaycpLmNsaWNrKCkgfSwgMCk7PC9zY3JpcHQ+IjsKKworICAgIHVzaW5nIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJOworICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAg
eyAiLyIsIHsgbWFpbkhUTUwgfSB9LAorICAgICAgICB7ICIvZnJhbWUuaHRtbCIsIHsgZnJhbWVI
VE1MIH0gfSwKKyAgICB9KTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2ViVmll
dyBuZXddKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmlnYXRpb25EZWxl
Z2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUu
Z2V0KCldOworCisgICAgX19ibG9jayBib29sIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gZmFsc2U7
CisgICAgZGVsZWdhdGUuZ2V0KCkuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IF4o
V0tOYXZpZ2F0aW9uQWN0aW9uICphY3Rpb24sIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5KSkgeworICAgICAgICBpZiAoW2FjdGlvbi5yZXF1ZXN0LlVS
TC5zY2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAicmRhciJdKSB7CisgICAgICAgICAgICBkaWRUcnlU
b0xvYWRSYWRhclVSTCA9IHRydWU7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3lDYW5jZWwpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsKKyAgICB9
OworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIGRl
bGVnYXRlLmdldCgpLmRpZEZpbmlzaE5hdmlnYXRpb24gPSBeKFdLV2ViVmlldyAqLCBXS05hdmln
YXRpb24gKikgeworICAgICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSB0cnVlOworICAgIH07CisK
KyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBVdGlsOjpy
dW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAgICBVdGlsOjpzbGVlcCgwLjUpOworCisgICAg
RVhQRUNUX0ZBTFNFKGRpZFRyeVRvTG9hZFJhZGFyVVJMKTsKK30K
</data>
<flag name="commit-queue"
          id="468029"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443305</attachid>
            <date>2021-11-04 08:19:19 -0700</date>
            <delta_ts>2021-11-04 11:15:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231727-20211104081918.patch</filename>
            <type>text/plain</type>
            <size>25859</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY3ZTUxMmQwMzczYTg1NDcx
MWUxZDk2NGU0MWQzOTIxMmZhYWVhNWQuLjljMjMyZWNhNWE5NjVlMWEwMmE2YjM2NThkNDZkNzRj
NTVhNmZhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMTEtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOZXcgc3BlYzogQmxvY2sgZXh0ZXJu
YWwgcHJvdG9jb2wgaGFuZGxlciBpbiBzYW5kYm94ZWQgZnJhbWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3MjcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0NDk4MTkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBlciB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIFsxXVsyXSwgd2Ugc2hvdWxkIHBy
ZXZlbnQgc2FuZGJveGVkIGlmcmFtZXMgZnJvbSBvcGVuaW5nCisgICAgICAgIGV4dGVybmFsIGFw
cGxpY2F0aW9ucyBieSBuYXZpZ2F0aW5nIHRvIGEgVVJMIHdpdGggYSBjdXN0b20gcHJvY290b2wg
KGUuZy4gcmRhcjovLykuCisKKyAgICAgICAgSW5kZWVkLCBpdCB3b3VsZCBiZSBzdXJwcmlzaW5n
IGlmIG1hbHZlcnRpc2VycyB3b3VsZCBiZSBhYmxlIHRvIHJlZGlyZWN0IHlvdSB0bworICAgICAg
ICBhbiBleHRlcm5hbCBhcHAuCisKKyAgICAgICAgVG8gc3VwcG9ydCB2YWxpZCB1c2UgY2FzZXMs
IHdlIHN0aWxsIGFsbG93IHN1Y2ggbmF2aWdhdGlvbnMgaW4gc2FuZGJveGVkIGlmcmFtZXMKKyAg
ICAgICAgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKKyAgICAgICAgLSBzYW5kYm94
RmxhZ3MgY29udGFpbnMgImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiIg
YW5kIGhhc1RyYW5zaWVudEFjdGl2YXRpb24gaXMgdHJ1ZQorICAgICAgICAtIHNhbmRib3hGbGFn
cyBjb250YWlucyAiYWxsb3ctdG9wLW5hdmlnYXRpb24iCisgICAgICAgIC0gc2FuZGJveEZsYWdz
IGNvbnRhaW5zICJhbGxvdy1wb3B1cHMiCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZ2l0aHViLmNv
bS93aGF0d2cvaHRtbC9pc3N1ZXMvMjE5MQorICAgICAgICBbMl0gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jaGFuZC1vZmYtdG8tZXh0ZXJuYWwtc29mdHdhcmUKKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpmcmFtZVNhbmRib3hB
bGxvd3NPcGVuaW5nRXh0ZXJuYWxDdXN0b21Qcm90b2NvbHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorCiAyMDIxLTEx
LTAzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGEgY291
cGxlIG9mIGxvZ2ljIGlzc3VlcyBpbiBDb25uZWN0aW9uOjpkaXNwYXRjaEluY29taW5nTWVzc2Fn
ZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwCmluZGV4IGRiOTMyNWMyZWI1YTk3ZjZlODA4OWMwZWFjNWU1MDZlMDI2NzVlMGQuLjFkZjdm
MjgwNmFhODRjMzQxZmI4NGQ2NWFjNTU0ZTQzZDVlMWY3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTM4OSw3ICszODksNyBA
QCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYyhGcmFtZUlkZW50aWZpZXIgZgogICAgIH0KICAgICBBU1NFUlQobV9tYWluRnJhbWUp
OwogCi0gICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGlzTWFpbkZyYW1lLCBXVEZNb3ZlKGZyYW1l
SW5mb0RhdGEpLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFj
dGlvbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZvKSwgb3JpZ2luYXRpbmdQYWdl
SUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9k
eSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHJlcGx5KSk7
CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBpc01haW5GcmFtZSwgV1RG
TW92ZShmcmFtZUluZm9EYXRhKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5h
dmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9yaWdp
bmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
cmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgV1RGTW92
ZShyZXBseSkpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2dEaWFnbm9zdGlj
TWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDRkZmVkOGRjYzY0YTliNjcw
NjA1OTc5OTUyOGRjY2I3MzYyNjkwM2QuLjMyYmY4OWZkY2ZjNzkwNzQ5MzJhYmRhNGUyYTMwN2Ri
ZWI4NmMyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
NTI0OSwxMSArNTI0OSwyMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveAogICAgICAgICBwcm9j
ZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24oZnJh
bWVJRCwgbGlzdGVuZXJJRCwgcG9saWN5RGVjaXNpb24sIGNyZWF0ZU5ldHdvcmtFeHRlbnNpb25z
U2FuZGJveEV4dGVuc2lvbnMocHJvY2VzcykpLCB3ZWJQYWdlSUQpOwogICAgIH0pOwogCi0gICAg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihwcm9jZXNzLmNvcHlSZWYoKSwgKmZyYW1l
LCBXVEZNb3ZlKGZyYW1lSW5mbyksIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0
aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJ
RCwKKyAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHByb2Nlc3MuY29weVJlZigp
LCB3ZWJQYWdlSUQsICpmcmFtZSwgV1RGTW92ZShmcmFtZUluZm8pLCBuYXZpZ2F0aW9uSUQsIFdU
Rk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZv
KSwgb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgICAgIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShy
ZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSks
IHVzZXJEYXRhLCBXVEZNb3ZlKHNlbmRlcikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nl
c3MsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNoYW5k
LW9mZi10by1leHRlcm5hbC1zb2Z0d2FyZQorc3RhdGljIGJvb2wgZnJhbWVTYW5kYm94QWxsb3dz
T3BlbmluZ0V4dGVybmFsQ3VzdG9tUHJvdG9jb2xzKFNhbmRib3hGbGFncyBzYW5kYm94RmxhZ3Ms
IGJvb2wgaGFzVXNlckdlc3R1cmUpCit7CisgICAgaWYgKCEoc2FuZGJveEZsYWdzICYgU2FuZGJv
eFBvcHVwcykgfHwgIShzYW5kYm94RmxhZ3MgJiBTYW5kYm94VG9wTmF2aWdhdGlvbikpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuICEoc2FuZGJveEZsYWdzICYgU2FuZGJveFRv
cE5hdmlnYXRpb25CeVVzZXJBY3RpdmF0aW9uKSAmJiBoYXNVc2VyR2VzdHVyZTsKK30KKwordm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFdlYkZyYW1l
UHJveHkmIGZyYW1lLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCB1aW50NjRfdCBuYXZpZ2F0
aW9uSUQsCiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwg
RnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgc3RkOjpvcHRpb25hbDxX
ZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsCiAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVyKQogewpAQCAt
NTM0NCw2ICs1MzUzLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgfQogI2VuZGlm
CiAKKyAgICAvLyBTYW5kYm94ZWQgaWZyYW1lcyBzaG91bGQgYmUgYWxsb3dlZCB0byBvcGVuIGV4
dGVybmFsIGFwcHMgdmlhIGN1c3RvbSBwcm90b2NvbHMgdW5sZXNzIGV4cGxpY2l0ZWx5IGFsbG93
ZWQgKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2hhbmQtb2ZmLXRvLWV4dGVybmFsLXNv
ZnR3YXJlKS4KKyAgICBib29sIGNhbkhhbmRsZVJlcXVlc3QgPSBuYXZpZ2F0aW9uQWN0aW9uRGF0
YS5jYW5IYW5kbGVSZXF1ZXN0IHx8IG1fdXJsU2NoZW1lSGFuZGxlcnNCeVNjaGVtZS5jb250YWlu
cyhyZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKKyAg
ICBpZiAoIWNhbkhhbmRsZVJlcXVlc3QgJiYgIWRlc3RpbmF0aW9uRnJhbWVJbmZvLT5pc01haW5G
cmFtZSgpICYmICFmcmFtZVNhbmRib3hBbGxvd3NPcGVuaW5nRXh0ZXJuYWxDdXN0b21Qcm90b2Nv
bHMobmF2aWdhdGlvbkFjdGlvbkRhdGEuZWZmZWN0aXZlU2FuZGJveEZsYWdzLCAhIW5hdmlnYXRp
b25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9rZW5JZGVudGlmaWVyKSkgeworICAgICAgICBXRUJQ
QUdFUFJPWFlfUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIklnbm9yaW5nIHJlcXVlc3QgdG8g
bG9hZCB0aGlzIG1haW4gcmVzb3VyY2UgYmVjYXVzZSBpdCBoYXMgYSBjdXN0b20gcHJvdG9jb2wg
YW5kIGNvbWVzIGZyb20gYSBzYW5kYm94ZWQgaWZyYW1lIik7CisgICAgICAgIHByb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkFkZENvbnNvbGVNZXNzYWdlKGZyYW1lLmZyYW1lSUQoKSwg
TWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJJZ25vcmluZyBy
ZXF1ZXN0IHRvIGxvYWQgdGhpcyBtYWluIHJlc291cmNlIGJlY2F1c2UgaXQgaGFzIGEgY3VzdG9t
IHByb3RvY29sIGFuZCBjb21lcyBmcm9tIGEgc2FuZGJveGVkIGlmcmFtZSJfcywgc3RkOjpudWxs
b3B0KSwgd2ViUGFnZUlEKTsKKyAgICAgICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5RGVjaXNpb24o
UG9saWN5QWN0aW9uOjpJZ25vcmUsIG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5hdmln
YXRpb25JRCksIG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIFdURk1vdmUoc2Vu
ZGVyKSk7CisgICAgfQorCiAgICAgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0IHNob3Vs
ZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCA9IFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3Vs
dDo6WWVzOwogICAgIGlmICghbV9wcmVmZXJlbmNlcy0+c2FmZUJyb3dzaW5nRW5hYmxlZCgpKQog
ICAgICAgICBzaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQgPSBTaG91bGRFeHBlY3RTYWZl
QnJvd3NpbmdSZXN1bHQ6Ok5vOwpAQCAtNTUxNSwxNyArNTUzMiwxNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsCiAgICAgICAgICAgICBkaWRDcmVhdGVTdWJmcmFtZShmcmFtZUlEKTsKICAgICB9
CiAKLSAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChtX3Byb2Nl
c3MuY29weVJlZigpLCBmcmFtZUlELCBpc01haW5GcmFtZSwgV1RGTW92ZShmcmFtZUluZm8pLCBp
ZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBX
VEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZvKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFs
UmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUo
cmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHJlcGx5KSk7CisgICAgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwg
bV93ZWJQYWdlSUQsIGZyYW1lSUQsIGlzTWFpbkZyYW1lLCBXVEZNb3ZlKGZyYW1lSW5mbyksIGlk
ZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdU
Rk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxS
ZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShy
ZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGJv
b2wgaXNNYWluRnJhbWUsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNrSWRl
bnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGlu
Z0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5h
dGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVl
c3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJl
cGx5KQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIg
d2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgRnJh
bWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9w
dGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgYXV0byBz
ZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFdURk1vdmUo
cmVwbHkpKTsKIAogICAgIGF1dG8qIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCk7
CiAgICAgTUVTU0FHRV9DSEVDSyhwcm9jZXNzLCBmcmFtZSk7CiAKLSAgICBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uKFdURk1vdmUocHJvY2VzcyksICpmcmFtZSwgV1RGTW92ZShmcmFt
ZUluZm8pLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBXVEZN
b3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZvKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVx
dWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVk
aXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBzZW5kZXIuY29weVJlZigpKTsKKyAgICBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdURk1vdmUocHJvY2VzcyksIHdlYlBhZ2VJRCwgKmZy
YW1lLCBXVEZNb3ZlKGZyYW1lSW5mbyksIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9u
QWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1Bh
Z2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RC
b2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIHNlbmRlci5jb3B5UmVm
KCkpOwogCiAgICAgLy8gSWYgdGhlIGNsaWVudCBkaWQgbm90IHJlc3BvbmQgc3luY2hyb25vdXNs
eSwgcHJvY2VlZCB3aXRoIHRoZSBsb2FkLgogICAgIHNlbmRlci0+c2VuZChQb2xpY3lEZWNpc2lv
biB7IHNlbmRlci0+aWRlbnRpZmllcigpLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCks
IFBvbGljeUFjdGlvbjo6VXNlLCBuYXZpZ2F0aW9uSUQsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxs
b3B0IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0OGYxOWI2
ZmQ1NDU2ZmYxNTRlNTA5YTc2ZWQ1NGI2MjM3MmZjOWI0Li5kMzdiOWU3YmEwYzE4Y2JmYjJmMDk1
ZDcwN2Y3MDVmN2EwZjFkNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMTc2MCw3ICsxNzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZERhdGFXaXRoTmF2
aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3Qg
U3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBi
YXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0
ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5
VmlzaWJpbGl0eSk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJl
ZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmln
YXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51bGxv
cHQsIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0aW5n
TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVsbG9wdCk7CiAg
ICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFdlYkJhY2tGb3J3YXJkTGlzdENvdW50cyYpPiYmKTsKLSAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNz
UHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwgRnJh
bWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdp
bmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVz
cG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5
PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBi
b29sIGlzTWFpbkZyYW1lLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBG
cmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBs
eSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIHJlcXVlc3RQYXNzd29yZEZvclF1
aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVTaGFyZWQoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJik7CiAjZW5kaWYKQEAgLTIw
NzYsNyArMjA3Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZERlc3Ryb3lOYXZpZ2F0aW9u
KHVpbnQ2NF90IG5hdmlnYXRpb25JRCk7CiAKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViRnJhbWVQcm94eSYsIEZyYW1l
SW5mb0RhdGEmJiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
LCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sCisgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJGcmFtZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYmLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBv
cmlnaW5hdGluZ0ZyYW1lSW5mbywKICAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIFJlZjxQb2xpY3lE
ZWNpc2lvblNlbmRlcj4mJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0
aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGNkNzJj
OGUzZmUyYTNmZTA3YTMxMjg5N2I4YjllYWYyOTdkOGQxODMuLmI0ZjQ0ODBmNDZlYTVhYzc3Y2Y3
YTVmZGNjZGRhNThjYTk1NTk4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC00MzAyLDEwICs0MzAyLDEwIEBAIFdlYkZ1bGxTY3JlZW5NYW5h
Z2VyKiBXZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcigpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQ
YWdlOjphZGRDb25zb2xlTWVzc2FnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgTWVzc2FnZVNv
dXJjZSBtZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciByZXF1ZXN0SUQp
Cit2b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlcklkZW50aWZpZXI+IHJlcXVlc3RJRCkKIHsKICAgICBpZiAoYXV0byogZnJhbWUgPSBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkKLSAgICAgICAgZnJhbWUtPmFk
ZENvbnNvbGVNZXNzYWdlKG1lc3NhZ2VTb3VyY2UsIG1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgcmVx
dWVzdElELnRvVUludDY0KCkpOworICAgICAgICBmcmFtZS0+YWRkQ29uc29sZU1lc3NhZ2UobWVz
c2FnZVNvdXJjZSwgbWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXF1ZXN0SUQgPyByZXF1ZXN0SUQt
PnRvVUludDY0KCkgOiAwKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9uUmVw
b3J0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYmIHJlcG9ydERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYTNkNzBmNTQxMjQ3MDA1YTkyOTIxM2JlZDQwNjE5NzM2
NTgzMDBkMy4uNzI2MzI0NjJmYjNmZGY5ZmRlNTEwMmM1NWEzYmFiYTA0ODk2OGE2MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDQyLDcgKzQ0Miw3
IEBAIHB1YmxpYzoKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlciogZnVsbFNjcmVlbk1hbmFnZXIo
KTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyID0geyB9KTsKKyAgICB2b2lkIGFkZENvbnNv
bGVNZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgTWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVySWRlbnRpZmllcj4gPSBzdGQ6Om51bGxvcHQpOwogICAgIHZvaWQgc2VuZENTUFZpb2xhdGlv
blJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVwb3J0VVJMLCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOwogICAgIHZvaWQgc2VuZENPRVBQb2xpY3lJbmhlcml0
ZW5jZVZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9pbnQs
IFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBVUkwm
IGJsb2NrZWRVUkwpOwogICAgIHZvaWQgc2VuZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRl
ck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9u
LCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uLCBjb25zdCBVUkwmIGJsb2NrZWRV
UkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KaW5kZXggMzhjZTQ1NzBjOThhOGI3YTkyYTEwMzhhMjE1NWExYjI3ZWE0MTg0
OS4uMDBlZjdkMzQ3NGRjMjc5NWQyMWY5NmUyNjgxYjkzZmU5ODUzOWM1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBA
IC0yNyw3ICsyNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogCiAg
ICAgU2V0QmFja2dyb3VuZENvbG9yKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q29sb3I+IGNvbG9y
KQogCi0gICAgQWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1
aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIFdl
YkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciByZXF1ZXN0SUQpCisgICAgQWRkQ29uc29s
ZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGVudW06dWludDhfdCBK
U0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVzc2Fn
ZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyPiByZXF1ZXN0SUQpCiAgICAgU2VuZENTUFZpb2xh
dGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMIHJlcG9ydFVS
TCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQogICAgIFNlbmRDT0VQUG9saWN5
SW5oZXJpdGVuY2VWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZW1iZWRkZXJPcmlnaW4sIFN0cmluZyBl
bmRwb2ludCwgZW51bTpib29sIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbiwg
U3RyaW5nIHR5cGUsIFVSTCBibG9ja2VkVVJMKQogICAgIFNlbmRDT0VQQ09SUFZpb2xhdGlvbihX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBlbWJlZGRlck9yaWdpbiwgU3RyaW5nIGVuZHBvaW50LCBlbnVtOmJvb2wgV2Vi
Q29yZTo6Q09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgVVJMIGJsb2NrZWRVUkwpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzA3ZDUw
N2FkMzgzMWYzMDE2ZWFjYTEzZjllNzdhMWI4OTBkNzhlMC4uN2EyY2VmNzE5YTIxMDgzZTU3MmEx
MzMwYjU2NmFlMTk3M2NlMjgyOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTExLTAzICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTmV3IHNwZWM6IEJsb2NrIGV4dGVybmFsIHBy
b3RvY29sIGhhbmRsZXIgaW4gc2FuZGJveGVkIGZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNzI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS84NDQ5ODE5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW06CisgICAgICAgIChURVNUKToKKwogMjAyMS0x
MS0wMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIGNv
dXBsZSBvZiBsb2dpYyBpc3N1ZXMgaW4gQ29ubmVjdGlvbjo6ZGlzcGF0Y2hJbmNvbWluZ01lc3Nh
Z2VzKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
TmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2
aWdhdGlvbi5tbQppbmRleCAwNTFmOWE3Nzk4YjMzN2YxZTJjM2VmNGRjYzc0MDZmNTYyZGUzMjZi
Li42ZDgwMDQ3M2U0MjM0NWIwMDUxY2Y3NGUyOWJmNTNkNTJhODI4NjcxIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tCkBAIC04
MjMsMyArODIzLDE5MCBAQCBURVNUKFdLTmF2aWdhdGlvbiwgU2ltdWx0YW5lb3VzTmF2aWdhdGlv
bldpdGhGb250c0ZpbmlzaGVzKQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1
ZXN0KCldOwogICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKIH0KKworVEVTVChX
S05hdmlnYXRpb24sIExvYWRSYWRhclVSTEZyb21TYW5kYm94ZWRGcmFtZUFsbG93UG9wdXBzKQor
eworICAgIGNvbnN0IGNoYXIqIG1haW5IVE1MID0gIjxpZnJhbWUgc3JjPSdmcmFtZS5odG1sJyBz
YW5kYm94PSdhbGxvdy1zY3JpcHRzIGFsbG93LXBvcHVwcyc+PC9pZnJhbWU+IjsKKyAgICBjb25z
dCBjaGFyKiBmcmFtZUhUTUwgPSAiPGEgaWQ9J3Rlc3RMaW5rJyBocmVmPSdyZGFyOi8vODQ0OTgx
OTInPkxpbms8L2E+PHNjcmlwdD5zZXRUaW1lb3V0KCgpID0+IHsgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3RMaW5rJykuY2xpY2soKSB9LCAwKTs8L3NjcmlwdD4iOworCisgICAgdXNpbmcg
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAg
ICB7ICIvIiwgeyBtYWluSFRNTCB9IH0sCisgICAgICAgIHsgIi9mcmFtZS5odG1sIiwgeyBmcmFt
ZUhUTUwgfSB9LAorICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJW
aWV3IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRl
bGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0
ZS5nZXQoKV07CisKKyAgICBfX2Jsb2NrIGJvb2wgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSBmYWxz
ZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0g
XihXS05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKSB7CisgICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3Qu
VVJMLnNjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJyZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRy
eVRvTG9hZFJhZGFyVVJMID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeUNhbmNlbCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAg
IH07CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAg
ZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2
aWdhdGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsK
KworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6
OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIFV0aWw6OnJ1bigmZGlkVHJ5VG9Mb2Fk
UmFkYXJVUkwpOworfQorCitURVNUKFdLTmF2aWdhdGlvbiwgTG9hZFJhZGFyVVJMRnJvbVNhbmRi
b3hlZEZyYW1lQWxsb3dUb3BOYXZpZ2F0aW9uKQoreworICAgIGNvbnN0IGNoYXIqIG1haW5IVE1M
ID0gIjxpZnJhbWUgc3JjPSdmcmFtZS5odG1sJyBzYW5kYm94PSdhbGxvdy1zY3JpcHRzIGFsbG93
LXRvcC1uYXZpZ2F0aW9uJz48L2lmcmFtZT4iOworICAgIGNvbnN0IGNoYXIqIGZyYW1lSFRNTCA9
ICI8YSBpZD0ndGVzdExpbmsnIGhyZWY9J3JkYXI6Ly84NDQ5ODE5Mic+TGluazwvYT48c2NyaXB0
PnNldFRpbWVvdXQoKCkgPT4geyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdExpbmsnKS5j
bGljaygpIH0sIDApOzwvc2NyaXB0PiI7CisKKyAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSTsKKyAgICBIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7IG1haW5IVE1M
IH0gfSwKKyAgICAgICAgeyAiL2ZyYW1lLmh0bWwiLCB7IGZyYW1lSFRNTCB9IH0sCisgICAgfSk7
CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisgICAgYXV0
byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgbmV3XSk7CisgICAg
W3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIF9f
YmxvY2sgYm9vbCBkaWRUcnlUb0xvYWRSYWRhclVSTCA9IGZhbHNlOworICAgIGRlbGVnYXRlLmdl
dCgpLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBeKFdLTmF2aWdhdGlvbkFjdGlv
biAqYWN0aW9uLCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSkpIHsKKyAgICAgICAgaWYgKFthY3Rpb24ucmVxdWVzdC5VUkwuc2NoZW1lIGlzRXF1YWxU
b1N0cmluZzpAInJkYXIiXSkgeworICAgICAgICAgICAgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSB0
cnVlOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5Q2FuY2VsKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyk7CisgICAgfTsKKworICAgIF9fYmxvY2sg
Ym9vbCBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRG
aW5pc2hOYXZpZ2F0aW9uID0gXihXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopIHsKKyAgICAg
ICAgZmluaXNoZWROYXZpZ2F0aW9uID0gdHJ1ZTsKKyAgICB9OworCisgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgVXRpbDo6cnVuKCZmaW5pc2hlZE5hdmln
YXRpb24pOworCisgICAgVXRpbDo6cnVuKCZkaWRUcnlUb0xvYWRSYWRhclVSTCk7Cit9CisKK1RF
U1QoV0tOYXZpZ2F0aW9uLCBMb2FkUmFkYXJVUkxGcm9tU2FuZGJveGVkRnJhbWVXaXRoVXNlckdl
c3R1cmUpCit7CisgICAgY29uc3QgY2hhciogbWFpbkhUTUwgPSAiPGlmcmFtZSBzcmM9J2ZyYW1l
Lmh0bWwnIHNhbmRib3g9J2FsbG93LXNjcmlwdHMgYWxsb3ctdG9wLW5hdmlnYXRpb24tYnktdXNl
ci1hY3RpdmF0aW9uJz48L2lmcmFtZT4iOworICAgIGNvbnN0IGNoYXIqIGZyYW1lSFRNTCA9ICI8
YSBpZD0ndGVzdExpbmsnIGhyZWY9J3JkYXI6Ly84NDQ5ODE5Mic+TGluazwvYT48L3NjcmlwdD4i
OworCisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgSFRUUFNlcnZlciBz
ZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluSFRNTCB9IH0sCisgICAgICAgIHsgIi9mcmFt
ZS5odG1sIiwgeyBmcmFtZUhUTUwgfSB9LAorICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtU
ZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25E
ZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBfX2Jsb2NrIFJldGFpblB0cjxXS0ZyYW1l
SW5mbz4gaWZyYW1lOworICAgIF9fYmxvY2sgYm9vbCBkaWRUcnlUb0xvYWRSYWRhclVSTCA9IGZh
bHNlOworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24g
PSBeKFdLTmF2aWdhdGlvbkFjdGlvbiAqYWN0aW9uLCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIp
KFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpIHsKKyAgICAgICAgaWYgKCFhY3Rpb24udGFyZ2V0
RnJhbWUuaXNNYWluRnJhbWUpCisgICAgICAgICAgICBpZnJhbWUgPSBhY3Rpb24udGFyZ2V0RnJh
bWU7CisgICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJMLnNjaGVtZSBpc0VxdWFsVG9TdHJp
bmc6QCJyZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gdHJ1ZTsK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNh
bmNlbCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07CisKKyAgICBfX2Jsb2NrIGJvb2wg
ZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNo
TmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZp
bmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9u
KTsKKworICAgIEFTU0VSVF9UUlVFKCEhaWZyYW1lKTsKKworICAgIC8vIFJ1bm5pbmcgSmF2YXNj
cmlwdCBzaW11bGF0ZXMgYSB1c2VyIGdlc3R1cmUgc28gdGhlIG5hdmlnYXRpb24gc2hvdWxkIGJl
IHBlcm1pdHRlZCBkdWUgdG8gJ2FsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlv
bicuCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3RMaW5rJykuY2xpY2soKSIgaW5GcmFtZTppZnJhbWUuZ2V0KCkgaW5Db250ZW50
V29ybGQ6V0tDb250ZW50V29ybGQucGFnZVdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisK
KyAgICBVdGlsOjpydW4oJmRpZFRyeVRvTG9hZFJhZGFyVVJMKTsKK30KKworVEVTVChXS05hdmln
YXRpb24sIExvYWRSYWRhclVSTEZyb21TYW5kYm94ZWRGcmFtZSkKK3sKKyAgICBjb25zdCBjaGFy
KiBtYWluSFRNTCA9ICI8aWZyYW1lIHNyYz0nZnJhbWUuaHRtbCcgc2FuZGJveD0nYWxsb3ctc2Ny
aXB0cyc+PC9pZnJhbWU+IjsKKyAgICBjb25zdCBjaGFyKiBmcmFtZUhUTUwgPSAiPGEgaWQ9J3Rl
c3RMaW5rJyBocmVmPSdyZGFyOi8vODQ0OTgxOTInPkxpbms8L2E+PHNjcmlwdD5zZXRUaW1lb3V0
KCgpID0+IHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RMaW5rJykuY2xpY2soKSB9LCAw
KTs8L3NjcmlwdD4iOworCisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAg
SFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluSFRNTCB9IH0sCisgICAg
ICAgIHsgIi9mcmFtZS5odG1sIiwgeyBmcmFtZUhUTUwgfSB9LAorICAgIH0pOworCisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNl
dE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBfX2Jsb2NrIGJvb2wg
ZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gXihXS05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwg
dm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKSB7Cisg
ICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJMLnNjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJy
ZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gdHJ1ZTsKKyAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNhbmNlbCk7
CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNo
ZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdh
dGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVk
TmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNl
cnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKwor
ICAgIFV0aWw6OnNsZWVwKDAuNSk7CisKKyAgICBFWFBFQ1RfRkFMU0UoZGlkVHJ5VG9Mb2FkUmFk
YXJVUkwpOworfQorCitURVNUKFdLTmF2aWdhdGlvbiwgTG9hZFJhZGFyVVJMRnJvbVNhbmRib3hl
ZEZyYW1lTWlzc2luZ1VzZXJHZXN0dXJlKQoreworICAgIGNvbnN0IGNoYXIqIG1haW5IVE1MID0g
IjxpZnJhbWUgc3JjPSdmcmFtZS5odG1sJyBzYW5kYm94PSdhbGxvdy1zY3JpcHRzIGFsbG93LXRv
cC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbic+PC9pZnJhbWU+IjsKKyAgICBjb25zdCBj
aGFyKiBmcmFtZUhUTUwgPSAiPGEgaWQ9J3Rlc3RMaW5rJyBocmVmPSdyZGFyOi8vODQ0OTgxOTIn
Pkxpbms8L2E+PHNjcmlwdD5zZXRUaW1lb3V0KCgpID0+IHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3RMaW5rJykuY2xpY2soKSB9LCAwKTs8L3NjcmlwdD4iOworCisgICAgdXNpbmcgbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7
ICIvIiwgeyBtYWluSFRNTCB9IH0sCisgICAgICAgIHsgIi9mcmFtZS5odG1sIiwgeyBmcmFtZUhU
TUwgfSB9LAorICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3
IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVn
YXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5n
ZXQoKV07CisKKyAgICBfX2Jsb2NrIGJvb2wgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSBmYWxzZTsK
KyAgICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gXihX
S05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3kpKSB7CisgICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJM
LnNjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJyZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRv
TG9hZFJhZGFyVVJMID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2
aWdhdGlvbkFjdGlvblBvbGljeUNhbmNlbCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07
CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVs
ZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdh
dGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKwor
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1
bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIFV0aWw6OnNsZWVwKDAuNSk7CisKKyAgICBF
WFBFQ1RfRkFMU0UoZGlkVHJ5VG9Mb2FkUmFkYXJVUkwpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443323</attachid>
            <date>2021-11-04 11:15:39 -0700</date>
            <delta_ts>2021-11-05 14:26:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231727-20211104111538.patch</filename>
            <type>text/plain</type>
            <size>28592</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0MmEzZGIyZjZkN2FlY2Ix
Mzk0MzI2YjVjODQ2YjIyODE1ZWY1ZTQuLjVlZjQ0OGYyYWJjMzk5MGMwMWYxZjUzOTMzZDJmY2Q5
NzgzNDJhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMTEtMDQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOZXcgc3BlYzogQmxvY2sgZXh0ZXJu
YWwgcHJvdG9jb2wgaGFuZGxlciBpbiBzYW5kYm94ZWQgZnJhbWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3MjcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0NDk4MTkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBlciB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIFsxXVsyXSwgd2Ugc2hvdWxkIHBy
ZXZlbnQgc2FuZGJveGVkIGlmcmFtZXMgZnJvbSBvcGVuaW5nCisgICAgICAgIGV4dGVybmFsIGFw
cGxpY2F0aW9ucyBieSBuYXZpZ2F0aW5nIHRvIGEgVVJMIHdpdGggYSBjdXN0b20gcHJvY290b2wg
KGUuZy4gcmRhcjovLykuCisKKyAgICAgICAgSW5kZWVkLCBpdCB3b3VsZCBiZSBzdXJwcmlzaW5n
IGlmIG1hbHZlcnRpc2VycyB3b3VsZCBiZSBhYmxlIHRvIHJlZGlyZWN0IHlvdSB0bworICAgICAg
ICBhbiBleHRlcm5hbCBhcHAuCisKKyAgICAgICAgVG8gc3VwcG9ydCB2YWxpZCB1c2UgY2FzZXMs
IHdlIHN0aWxsIGFsbG93IHN1Y2ggbmF2aWdhdGlvbnMgaW4gc2FuZGJveGVkIGlmcmFtZXMKKyAg
ICAgICAgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKKyAgICAgICAgLSBzYW5kYm94
RmxhZ3MgY29udGFpbnMgImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiIg
YW5kIGhhc1RyYW5zaWVudEFjdGl2YXRpb24gaXMgdHJ1ZQorICAgICAgICAtIHNhbmRib3hGbGFn
cyBjb250YWlucyAiYWxsb3ctdG9wLW5hdmlnYXRpb24iCisgICAgICAgIC0gc2FuZGJveEZsYWdz
IGNvbnRhaW5zICJhbGxvdy1wb3B1cHMiCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZ2l0aHViLmNv
bS93aGF0d2cvaHRtbC9pc3N1ZXMvMjE5MQorICAgICAgICBbMl0gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jaGFuZC1vZmYtdG8tZXh0ZXJuYWwtc29mdHdhcmUKKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpmcmFtZVNhbmRib3hB
bGxvd3NPcGVuaW5nRXh0ZXJuYWxDdXN0b21Qcm90b2NvbHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorCiAyMDIxLTEx
LTA0ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjI4NTA3NykgW0dMSUJdICdNZW1vcnlQcmVzc3VyZU1vbml0b3InIGhhcyBub3QgYmVlbiBk
ZWNsYXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJv
eHkuY3BwCmluZGV4IGRiOTMyNWMyZWI1YTk3ZjZlODA4OWMwZWFjNWU1MDZlMDI2NzVlMGQuLjFk
ZjdmMjgwNmFhODRjMzQxZmI4NGQ2NWFjNTU0ZTQzZDVlMWY3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAKQEAgLTM4OSw3ICszODks
NyBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyhGcmFtZUlkZW50aWZpZXIgZgogICAgIH0KICAgICBBU1NFUlQobV9tYWluRnJh
bWUpOwogCi0gICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hh
cmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGlzTWFpbkZyYW1lLCBXVEZNb3ZlKGZy
YW1lSW5mb0RhdGEpLCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlv
bkFjdGlvbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZvKSwgb3JpZ2luYXRpbmdQ
YWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0
Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHJlcGx5
KSk7CisgICAgbV9wYWdlLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBmcmFtZUlELCBpc01haW5GcmFtZSwg
V1RGTW92ZShmcmFtZUluZm9EYXRhKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3Zl
KG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9y
aWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgV1RG
TW92ZShyZXBseSkpOwogfQogCiB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5Ojpsb2dEaWFnbm9z
dGljTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbiwgV2ViQ29yZTo6U2hvdWxkU2FtcGxlIHNob3VsZFNhbXBsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDRkZmVkOGRjYzY0YTli
NjcwNjA1OTc5OTUyOGRjY2I3MzYyNjkwM2QuLjMyYmY4OWZkY2ZjNzkwNzQ5MzJhYmRhNGUyYTMw
N2RiZWI4NmMyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtNTI0OSwxMSArNTI0OSwyMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveAogICAgICAgICBw
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRSZWNlaXZlUG9saWN5RGVjaXNpb24o
ZnJhbWVJRCwgbGlzdGVuZXJJRCwgcG9saWN5RGVjaXNpb24sIGNyZWF0ZU5ldHdvcmtFeHRlbnNp
b25zU2FuZGJveEV4dGVuc2lvbnMocHJvY2VzcykpLCB3ZWJQYWdlSUQpOwogICAgIH0pOwogCi0g
ICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihwcm9jZXNzLmNvcHlSZWYoKSwgKmZy
YW1lLCBXVEZNb3ZlKGZyYW1lSW5mbyksIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9u
QWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1Bh
Z2VJRCwKKyAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHByb2Nlc3MuY29weVJl
ZigpLCB3ZWJQYWdlSUQsICpmcmFtZSwgV1RGTW92ZShmcmFtZUluZm8pLCBuYXZpZ2F0aW9uSUQs
IFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJ
bmZvKSwgb3JpZ2luYXRpbmdQYWdlSUQsCiAgICAgICAgIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJlY3RSZXNwb25z
ZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHNlbmRlcikpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2Nlc3MsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNo
YW5kLW9mZi10by1leHRlcm5hbC1zb2Z0d2FyZQorc3RhdGljIGJvb2wgZnJhbWVTYW5kYm94QWxs
b3dzT3BlbmluZ0V4dGVybmFsQ3VzdG9tUHJvdG9jb2xzKFNhbmRib3hGbGFncyBzYW5kYm94Rmxh
Z3MsIGJvb2wgaGFzVXNlckdlc3R1cmUpCit7CisgICAgaWYgKCEoc2FuZGJveEZsYWdzICYgU2Fu
ZGJveFBvcHVwcykgfHwgIShzYW5kYm94RmxhZ3MgJiBTYW5kYm94VG9wTmF2aWdhdGlvbikpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuICEoc2FuZGJveEZsYWdzICYgU2FuZGJv
eFRvcE5hdmlnYXRpb25CeVVzZXJBY3RpdmF0aW9uKSAmJiBoYXNVc2VyR2VzdHVyZTsKK30KKwor
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFdlYkZy
YW1lUHJveHkmIGZyYW1lLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsCiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0
YSwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgc3RkOjpvcHRpb25h
bDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsCiAgICAgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVyKQogewpA
QCAtNTM0NCw2ICs1MzUzLDE0IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgfQogI2Vu
ZGlmCiAKKyAgICAvLyBTYW5kYm94ZWQgaWZyYW1lcyBzaG91bGQgYmUgYWxsb3dlZCB0byBvcGVu
IGV4dGVybmFsIGFwcHMgdmlhIGN1c3RvbSBwcm90b2NvbHMgdW5sZXNzIGV4cGxpY2l0ZWx5IGFs
bG93ZWQgKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2hhbmQtb2ZmLXRvLWV4dGVybmFs
LXNvZnR3YXJlKS4KKyAgICBib29sIGNhbkhhbmRsZVJlcXVlc3QgPSBuYXZpZ2F0aW9uQWN0aW9u
RGF0YS5jYW5IYW5kbGVSZXF1ZXN0IHx8IG1fdXJsU2NoZW1lSGFuZGxlcnNCeVNjaGVtZS5jb250
YWlucyhyZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsK
KyAgICBpZiAoIWNhbkhhbmRsZVJlcXVlc3QgJiYgIWRlc3RpbmF0aW9uRnJhbWVJbmZvLT5pc01h
aW5GcmFtZSgpICYmICFmcmFtZVNhbmRib3hBbGxvd3NPcGVuaW5nRXh0ZXJuYWxDdXN0b21Qcm90
b2NvbHMobmF2aWdhdGlvbkFjdGlvbkRhdGEuZWZmZWN0aXZlU2FuZGJveEZsYWdzLCAhIW5hdmln
YXRpb25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9rZW5JZGVudGlmaWVyKSkgeworICAgICAgICBX
RUJQQUdFUFJPWFlfUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIklnbm9yaW5nIHJlcXVlc3Qg
dG8gbG9hZCB0aGlzIG1haW4gcmVzb3VyY2UgYmVjYXVzZSBpdCBoYXMgYSBjdXN0b20gcHJvdG9j
b2wgYW5kIGNvbWVzIGZyb20gYSBzYW5kYm94ZWQgaWZyYW1lIik7CisgICAgICAgIHByb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkFkZENvbnNvbGVNZXNzYWdlKGZyYW1lLmZyYW1lSUQo
KSwgTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJJZ25vcmlu
ZyByZXF1ZXN0IHRvIGxvYWQgdGhpcyBtYWluIHJlc291cmNlIGJlY2F1c2UgaXQgaGFzIGEgY3Vz
dG9tIHByb3RvY29sIGFuZCBjb21lcyBmcm9tIGEgc2FuZGJveGVkIGlmcmFtZSJfcywgc3RkOjpu
dWxsb3B0KSwgd2ViUGFnZUlEKTsKKyAgICAgICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5RGVjaXNp
b24oUG9saWN5QWN0aW9uOjpJZ25vcmUsIG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5h
dmlnYXRpb25JRCksIG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIFdURk1vdmUo
c2VuZGVyKSk7CisgICAgfQorCiAgICAgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0IHNo
b3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCA9IFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jl
c3VsdDo6WWVzOwogICAgIGlmICghbV9wcmVmZXJlbmNlcy0+c2FmZUJyb3dzaW5nRW5hYmxlZCgp
KQogICAgICAgICBzaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQgPSBTaG91bGRFeHBlY3RT
YWZlQnJvd3NpbmdSZXN1bHQ6Ok5vOwpAQCAtNTUxNSwxNyArNTUzMiwxNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsCiAgICAgICAgICAgICBkaWRDcmVhdGVTdWJmcmFtZShmcmFtZUlEKTsKICAg
ICB9CiAKLSAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChtX3By
b2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBpc01haW5GcmFtZSwgV1RGTW92ZShmcmFtZUluZm8p
LCBpZGVudGlmaWVyLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEp
LCBXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZvKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdp
bmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1v
dmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHJlcGx5KSk7CisgICAgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYo
KSwgbV93ZWJQYWdlSUQsIGZyYW1lSUQsIGlzTWFpbkZyYW1lLCBXVEZNb3ZlKGZyYW1lSW5mbyks
IGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSks
IFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2lu
YWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92
ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IGJvb2wgaXNNYWluRnJhbWUsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFBvbGljeUNoZWNr
SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5h
dGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmln
aW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJl
cXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIElQQzo6Rm9ybURhdGFS
ZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGly
ZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZp
ZXIgd2ViUGFnZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwg
RnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBzdGQ6
Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RC
b2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3Qg
VXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCiB7CiAgICAgYXV0
byBzZW5kZXIgPSBQb2xpY3lEZWNpc2lvblNlbmRlcjo6Y3JlYXRlKGlkZW50aWZpZXIsIFdURk1v
dmUocmVwbHkpKTsKIAogICAgIGF1dG8qIGZyYW1lID0gcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7CiAgICAgTUVTU0FHRV9DSEVDSyhwcm9jZXNzLCBmcmFtZSk7CiAKLSAgICBkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdURk1vdmUocHJvY2VzcyksICpmcmFtZSwgV1RGTW92ZShm
cmFtZUluZm8pLCBuYXZpZ2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBX
VEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZvKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFs
UmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUo
cmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBzZW5kZXIuY29weVJlZigpKTsKKyAgICBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdURk1vdmUocHJvY2VzcyksIHdlYlBhZ2VJRCwg
KmZyYW1lLCBXVEZNb3ZlKGZyYW1lSW5mbyksIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0
aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGlu
Z1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVl
c3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIHNlbmRlci5jb3B5
UmVmKCkpOwogCiAgICAgLy8gSWYgdGhlIGNsaWVudCBkaWQgbm90IHJlc3BvbmQgc3luY2hyb25v
dXNseSwgcHJvY2VlZCB3aXRoIHRoZSBsb2FkLgogICAgIHNlbmRlci0+c2VuZChQb2xpY3lEZWNp
c2lvbiB7IHNlbmRlci0+aWRlbnRpZmllcigpLCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWlu
KCksIFBvbGljeUFjdGlvbjo6VXNlLCBuYXZpZ2F0aW9uSUQsIHN0ZDo6bnVsbG9wdCwgc3RkOjpu
dWxsb3B0IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0OGYx
OWI2ZmQ1NDU2ZmYxNTRlNTA5YTc2ZWQ1NGI2MjM3MmZjOWI0Li5kMzdiOWU3YmEwYzE4Y2JmYjJm
MDk1ZDcwN2Y3MDVmN2EwZjFkNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMTc2MCw3ICsxNzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZERhdGFXaXRo
TmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29u
c3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5n
JiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXND
b250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4s
IHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSwgV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0
b3J5VmlzaWJpbGl0eSk7CiAgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5h
dmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51
bGxvcHQsIHN0ZDo6b3B0aW9uYWw8TmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXI+IGV4aXN0
aW5nTmV0d29ya1Jlc291cmNlTG9hZElkZW50aWZpZXJUb1Jlc3VtZSA9IHN0ZDo6bnVsbG9wdCk7
CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+
JiYsIGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFdlYkJhY2tGb3J3YXJkTGlzdENvdW50cyYpPiYmKTsKLSAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgYm9vbCBpc01haW5GcmFtZSwg
RnJhbWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9y
aWdpbmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChSZWY8V2ViUHJvY2Vzc1By
b3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBib29sIGlzTWFpbkZyYW1lLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
LCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2Vi
UGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRS
ZXBseSYmKTsKICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICB2b2lkIHJlcXVlc3RQYXNzd29yZEZv
clF1aWNrTG9va0RvY3VtZW50SW5NYWluRnJhbWVTaGFyZWQoY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmKT4mJik7CiAjZW5kaWYKQEAg
LTIwNzYsNyArMjA3Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZERlc3Ryb3lOYXZpZ2F0
aW9uKHVpbnQ2NF90IG5hdmlnYXRpb25JRCk7CiAKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViRnJhbWVQcm94eSYsIEZy
YW1lSW5mb0RhdGEmJiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sCisgICAgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJGcmFtZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYmLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEm
JiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywKICAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJQYWdlUHJv
eHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksCiAgICAgICAgIFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIFJlZjxQb2xp
Y3lEZWNpc2lvblNlbmRlcj4mJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uQXN5bmMoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZp
Z2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGNk
NzJjOGUzZmUyYTNmZTA3YTMxMjg5N2I4YjllYWYyOTdkOGQxODMuLmI0ZjQ0ODBmNDZlYTVhYzc3
Y2Y3YTVmZGNjZGRhNThjYTk1NTk4OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MzAyLDEwICs0MzAyLDEwIEBAIFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyKiBXZWJQYWdlOjpmdWxsU2NyZWVuTWFuYWdlcigpCiB9CiAjZW5kaWYKIAotdm9pZCBX
ZWJQYWdlOjphZGRDb25zb2xlTWVzc2FnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgTWVzc2Fn
ZVNvdXJjZSBtZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciByZXF1ZXN0
SUQpCit2b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRlcklkZW50aWZpZXI+IHJlcXVlc3RJRCkKIHsKICAgICBpZiAoYXV0byogZnJhbWUgPSBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKSkKLSAgICAgICAgZnJhbWUt
PmFkZENvbnNvbGVNZXNzYWdlKG1lc3NhZ2VTb3VyY2UsIG1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwg
cmVxdWVzdElELnRvVUludDY0KCkpOworICAgICAgICBmcmFtZS0+YWRkQ29uc29sZU1lc3NhZ2Uo
bWVzc2FnZVNvdXJjZSwgbWVzc2FnZUxldmVsLCBtZXNzYWdlLCByZXF1ZXN0SUQgPyByZXF1ZXN0
SUQtPnRvVUludDY0KCkgOiAwKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZW5kQ1NQVmlvbGF0aW9u
UmVwb3J0KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBVUkwmIHJlcG9ydFVSTCwgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcG9ydERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYTNkNzBmNTQxMjQ3MDA1YTkyOTIxM2JlZDQwNjE5
NzM2NTgzMDBkMy4uNzI2MzI0NjJmYjNmZGY5ZmRlNTEwMmM1NWEzYmFiYTA0ODk2OGE2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDQyLDcgKzQ0
Miw3IEBAIHB1YmxpYzoKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlciogZnVsbFNjcmVlbk1hbmFn
ZXIoKTsKICNlbmRpZgogCi0gICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyID0geyB9KTsKKyAgICB2b2lkIGFkZENv
bnNvbGVNZXNzYWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgTWVzc2FnZVNvdXJjZSwgTWVz
c2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlc291cmNl
TG9hZGVySWRlbnRpZmllcj4gPSBzdGQ6Om51bGxvcHQpOwogICAgIHZvaWQgc2VuZENTUFZpb2xh
dGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgcmVwb3J0VVJM
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOwogICAgIHZvaWQgc2VuZENPRVBQb2xpY3lJbmhl
cml0ZW5jZVZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZW1iZWRkZXJPcmlnaW4sIGNvbnN0IFN0cmluZyYgZW5kcG9p
bnQsIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBV
UkwmIGJsb2NrZWRVUkwpOwogICAgIHZvaWQgc2VuZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJl
ZGRlck9yaWdpbiwgY29uc3QgU3RyaW5nJiBlbmRwb2ludCwgV2ViQ29yZTo6Q09FUERpc3Bvc2l0
aW9uLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uLCBjb25zdCBVUkwmIGJsb2Nr
ZWRVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KaW5kZXggMzhjZTQ1NzBjOThhOGI3YTkyYTEwMzhhMjE1NWExYjI3ZWE0
MTg0OS4uMDBlZjdkMzQ3NGRjMjc5NWQyMWY5NmUyNjgxYjkzZmU5ODUzOWM1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CkBAIC0yNyw3ICsyNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewog
CiAgICAgU2V0QmFja2dyb3VuZENvbG9yKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Q29sb3I+IGNv
bG9yKQogCi0gICAgQWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIGVudW06dWludDhfdCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51
bTp1aW50OF90IEpTQzo6TWVzc2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2Us
IFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllciByZXF1ZXN0SUQpCisgICAgQWRkQ29u
c29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGVudW06dWludDhf
dCBKU0M6Ok1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgZW51bTp1aW50OF90IEpTQzo6TWVz
c2FnZUxldmVsIG1lc3NhZ2VMZXZlbCwgU3RyaW5nIG1lc3NhZ2UsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyPiByZXF1ZXN0SUQpCiAgICAgU2VuZENTUFZp
b2xhdGlvblJlcG9ydChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgVVJMIHJlcG9y
dFVSTCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXBvcnREYXRhKQogICAgIFNlbmRDT0VQUG9s
aWN5SW5oZXJpdGVuY2VWaW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZW1iZWRkZXJPcmlnaW4sIFN0cmlu
ZyBlbmRwb2ludCwgZW51bTpib29sIFdlYkNvcmU6OkNPRVBEaXNwb3NpdGlvbiBkaXNwb3NpdGlv
biwgU3RyaW5nIHR5cGUsIFVSTCBibG9ja2VkVVJMKQogICAgIFNlbmRDT0VQQ09SUFZpb2xhdGlv
bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSBlbWJlZGRlck9yaWdpbiwgU3RyaW5nIGVuZHBvaW50LCBlbnVtOmJvb2wg
V2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uLCBlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgVVJMIGJsb2NrZWRVUkwp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFn
ZUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0
ay5jcHAKaW5kZXggZTM1MDY2ZjM1Mzg1Y2RhZmJjODZlYzcwNDNkMTNkNzZmNzk2NGEwOC4uMTlk
OGVmN2MyNzE5OThiZWJlYzE1MmJhOGU3ZjAwYTc1YTRmYWEzNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcApAQCAtMTQwLDcg
KzE0MCw3IEBAIGJvb2wgV2ViUGFnZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcktleUV2ZW50
KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkCiBib29sIFdlYlBhZ2U6OnBsYXRmb3Jt
Q2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOwogfQogCiBib29s
IFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlQcmltYXJ5UG9pbnRpbmdEZXZpY2UoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQppbmRleCA3ZmVmMDZkMjg2MTk1M2NmMDVlMDUwNzBlMTcxN2RiYWJiMTljZDg4Li4yOGY2YjU2
MjAxZDdlNTBiNTZiOWE1ZTNhZmRjMzRlZWE4ZmJkYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNjI3LDEwICs2Mjcs
OSBAQCBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0KiBXZWJQYWdlOjphY2Nlc3NpYmlsaXR5
UmVtb3RlT2JqZWN0KCkKICAgICByZXR1cm4gMDsKIH0KIAotYm9vbCBXZWJQYWdlOjpwbGF0Zm9y
bUNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikKK2Jvb2wg
V2ViUGFnZTo6cGxhdGZvcm1DYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gW05TVVJMQ29ubmVjdGlvbiBjYW5IYW5kbGVSZXF1ZXN0OnJlcXVl
c3QubnNVUkxSZXF1ZXN0KEhUVFBCb2R5VXBkYXRlUG9saWN5OjpEb05vdFVwZGF0ZUhUVFBCb2R5
KV07CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0V2ZW50KGNv
bnN0IFdlYktpdDo6V2ViTW91c2VFdmVudCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKaW5kZXggMGNmNDcwN2Q0NGZiMjBhMmNiMTI1YWFm
OTQ2NWQxMjgyYmY4NDY1MS4uNzI3YmE0NDhmZTMyODNiY2YxZGQzYTE4Nzc5MWQwYTEwNjczN2M3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBh
Z2VXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQ
YWdlV2luLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIGJvb2wgV2ViUGFnZTo6cGVyZm9ybURlZmF1
bHRCZWhhdmlvckZvcktleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkCiBi
b29sIFdlYlBhZ2U6OnBsYXRmb3JtQ2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiB0cnVlOwogfQogCiBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3Qg
VVJMJikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9XZWJQYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9XZWJQYWdlV1BFLmNwcAppbmRleCBkNmNhNDMzYjg0ZWViMTNkNGZiODc4YWY0ZjdlMjlhOGU4
ZjNiM2UyLi44NTgyNDI1ZWNmYmQzMWMzNzAwNzRiMWMyMjA3ZDQ4MGEyZTg3N2QxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3Bw
CkBAIC02Niw3ICs2Niw3IEBAIGJvb2wgV2ViUGFnZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZv
cktleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmKQogYm9vbCBXZWJQYWdlOjpwbGF0Zm9y
bUNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9v
bCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5UHJpbWFyeVBvaW50aW5nRGV2aWNlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMDgw
M2FjMDdlZDIwYmRiMzllM2NmNWRiMzVmZjJiZjc5NGI4MDc2Li5lY2Y2ZDNlMWMzODFmYjY1OTFl
NDM2NGRlNTNiODM0MmZlYTkzM2MwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMDQgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOZXcgc3BlYzogQmxvY2sgZXh0ZXJuYWwg
cHJvdG9jb2wgaGFuZGxlciBpbiBzYW5kYm94ZWQgZnJhbWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3MjcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzg0NDk4MTkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIx
LTExLTA0ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGaXggZm9yIGNyYXNoZXMgaW4gbGF5b3V0IHRlc3RzIGluIEFYIGlzb2xhdGVkIHRyZWUgbW9k
ZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2
aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdh
dGlvbi5tbQppbmRleCAwNTFmOWE3Nzk4YjMzN2YxZTJjM2VmNGRjYzc0MDZmNTYyZGUzMjZiLi42
ZDgwMDQ3M2U0MjM0NWIwMDUxY2Y3NGUyOWJmNTNkNTJhODI4NjcxIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRpb24ubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tCkBAIC04MjMs
MyArODIzLDE5MCBAQCBURVNUKFdLTmF2aWdhdGlvbiwgU2ltdWx0YW5lb3VzTmF2aWdhdGlvbldp
dGhGb250c0ZpbmlzaGVzKQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0
KCldOwogICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKIH0KKworVEVTVChXS05h
dmlnYXRpb24sIExvYWRSYWRhclVSTEZyb21TYW5kYm94ZWRGcmFtZUFsbG93UG9wdXBzKQorewor
ICAgIGNvbnN0IGNoYXIqIG1haW5IVE1MID0gIjxpZnJhbWUgc3JjPSdmcmFtZS5odG1sJyBzYW5k
Ym94PSdhbGxvdy1zY3JpcHRzIGFsbG93LXBvcHVwcyc+PC9pZnJhbWU+IjsKKyAgICBjb25zdCBj
aGFyKiBmcmFtZUhUTUwgPSAiPGEgaWQ9J3Rlc3RMaW5rJyBocmVmPSdyZGFyOi8vODQ0OTgxOTIn
Pkxpbms8L2E+PHNjcmlwdD5zZXRUaW1lb3V0KCgpID0+IHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3RMaW5rJykuY2xpY2soKSB9LCAwKTs8L3NjcmlwdD4iOworCisgICAgdXNpbmcgbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7
ICIvIiwgeyBtYWluSFRNTCB9IH0sCisgICAgICAgIHsgIi9mcmFtZS5odG1sIiwgeyBmcmFtZUhU
TUwgfSB9LAorICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3
IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVn
YXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5n
ZXQoKV07CisKKyAgICBfX2Jsb2NrIGJvb2wgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSBmYWxzZTsK
KyAgICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gXihX
S05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3kpKSB7CisgICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJM
LnNjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJyZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRv
TG9hZFJhZGFyVVJMID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2
aWdhdGlvbkFjdGlvblBvbGljeUNhbmNlbCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07
CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVs
ZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdh
dGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKwor
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1
bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIFV0aWw6OnJ1bigmZGlkVHJ5VG9Mb2FkUmFk
YXJVUkwpOworfQorCitURVNUKFdLTmF2aWdhdGlvbiwgTG9hZFJhZGFyVVJMRnJvbVNhbmRib3hl
ZEZyYW1lQWxsb3dUb3BOYXZpZ2F0aW9uKQoreworICAgIGNvbnN0IGNoYXIqIG1haW5IVE1MID0g
IjxpZnJhbWUgc3JjPSdmcmFtZS5odG1sJyBzYW5kYm94PSdhbGxvdy1zY3JpcHRzIGFsbG93LXRv
cC1uYXZpZ2F0aW9uJz48L2lmcmFtZT4iOworICAgIGNvbnN0IGNoYXIqIGZyYW1lSFRNTCA9ICI8
YSBpZD0ndGVzdExpbmsnIGhyZWY9J3JkYXI6Ly84NDQ5ODE5Mic+TGluazwvYT48c2NyaXB0PnNl
dFRpbWVvdXQoKCkgPT4geyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdExpbmsnKS5jbGlj
aygpIH0sIDApOzwvc2NyaXB0PiI7CisKKyAgICB1c2luZyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQ
STsKKyAgICBIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7IG1haW5IVE1MIH0g
fSwKKyAgICAgICAgeyAiL2ZyYW1lLmh0bWwiLCB7IGZyYW1lSFRNTCB9IH0sCisgICAgfSk7CisK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZpZ2F0aW9uRGVsZWdhdGUgbmV3XSk7CisgICAgW3dl
YlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIF9fYmxv
Y2sgYm9vbCBkaWRUcnlUb0xvYWRSYWRhclVSTCA9IGZhbHNlOworICAgIGRlbGVnYXRlLmdldCgp
LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBeKFdLTmF2aWdhdGlvbkFjdGlvbiAq
YWN0aW9uLCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eSkpIHsKKyAgICAgICAgaWYgKFthY3Rpb24ucmVxdWVzdC5VUkwuc2NoZW1lIGlzRXF1YWxUb1N0
cmluZzpAInJkYXIiXSkgeworICAgICAgICAgICAgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSB0cnVl
OworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5
Q2FuY2VsKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihX
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyk7CisgICAgfTsKKworICAgIF9fYmxvY2sgYm9v
bCBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRGaW5p
c2hOYXZpZ2F0aW9uID0gXihXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9uICopIHsKKyAgICAgICAg
ZmluaXNoZWROYXZpZ2F0aW9uID0gdHJ1ZTsKKyAgICB9OworCisgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgVXRpbDo6cnVuKCZmaW5pc2hlZE5hdmlnYXRp
b24pOworCisgICAgVXRpbDo6cnVuKCZkaWRUcnlUb0xvYWRSYWRhclVSTCk7Cit9CisKK1RFU1Qo
V0tOYXZpZ2F0aW9uLCBMb2FkUmFkYXJVUkxGcm9tU2FuZGJveGVkRnJhbWVXaXRoVXNlckdlc3R1
cmUpCit7CisgICAgY29uc3QgY2hhciogbWFpbkhUTUwgPSAiPGlmcmFtZSBzcmM9J2ZyYW1lLmh0
bWwnIHNhbmRib3g9J2FsbG93LXNjcmlwdHMgYWxsb3ctdG9wLW5hdmlnYXRpb24tYnktdXNlci1h
Y3RpdmF0aW9uJz48L2lmcmFtZT4iOworICAgIGNvbnN0IGNoYXIqIGZyYW1lSFRNTCA9ICI8YSBp
ZD0ndGVzdExpbmsnIGhyZWY9J3JkYXI6Ly84NDQ5ODE5Mic+TGluazwvYT48L3NjcmlwdD4iOwor
CisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgSFRUUFNlcnZlciBzZXJ2
ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluSFRNTCB9IH0sCisgICAgICAgIHsgIi9mcmFtZS5o
dG1sIiwgeyBmcmFtZUhUTUwgfSB9LAorICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0
TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxl
Z2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBfX2Jsb2NrIFJldGFpblB0cjxXS0ZyYW1lSW5m
bz4gaWZyYW1lOworICAgIF9fYmxvY2sgYm9vbCBkaWRUcnlUb0xvYWRSYWRhclVSTCA9IGZhbHNl
OworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBe
KFdLTmF2aWdhdGlvbkFjdGlvbiAqYWN0aW9uLCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSkpIHsKKyAgICAgICAgaWYgKCFhY3Rpb24udGFyZ2V0RnJh
bWUuaXNNYWluRnJhbWUpCisgICAgICAgICAgICBpZnJhbWUgPSBhY3Rpb24udGFyZ2V0RnJhbWU7
CisgICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJMLnNjaGVtZSBpc0VxdWFsVG9TdHJpbmc6
QCJyZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gdHJ1ZTsKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNhbmNl
bCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07CisKKyAgICBfX2Jsb2NrIGJvb2wgZmlu
aXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2
aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZpbmlz
aGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsK
KworICAgIEFTU0VSVF9UUlVFKCEhaWZyYW1lKTsKKworICAgIC8vIFJ1bm5pbmcgSmF2YXNjcmlw
dCBzaW11bGF0ZXMgYSB1c2VyIGdlc3R1cmUgc28gdGhlIG5hdmlnYXRpb24gc2hvdWxkIGJlIHBl
cm1pdHRlZCBkdWUgdG8gJ2FsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbicu
CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3RMaW5rJykuY2xpY2soKSIgaW5GcmFtZTppZnJhbWUuZ2V0KCkgaW5Db250ZW50V29y
bGQ6V0tDb250ZW50V29ybGQucGFnZVdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisKKyAg
ICBVdGlsOjpydW4oJmRpZFRyeVRvTG9hZFJhZGFyVVJMKTsKK30KKworVEVTVChXS05hdmlnYXRp
b24sIExvYWRSYWRhclVSTEZyb21TYW5kYm94ZWRGcmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiBt
YWluSFRNTCA9ICI8aWZyYW1lIHNyYz0nZnJhbWUuaHRtbCcgc2FuZGJveD0nYWxsb3ctc2NyaXB0
cyc+PC9pZnJhbWU+IjsKKyAgICBjb25zdCBjaGFyKiBmcmFtZUhUTUwgPSAiPGEgaWQ9J3Rlc3RM
aW5rJyBocmVmPSdyZGFyOi8vODQ0OTgxOTInPkxpbms8L2E+PHNjcmlwdD5zZXRUaW1lb3V0KCgp
ID0+IHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RMaW5rJykuY2xpY2soKSB9LCAwKTs8
L3NjcmlwdD4iOworCisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgSFRU
UFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluSFRNTCB9IH0sCisgICAgICAg
IHsgIi9mcmFtZS5odG1sIiwgeyBmcmFtZUhUTUwgfSB9LAorICAgIH0pOworCisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5h
dmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBfX2Jsb2NrIGJvb2wgZGlk
VHJ5VG9Mb2FkUmFkYXJVUkwgPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gXihXS05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgdm9p
ZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKSB7CisgICAg
ICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJMLnNjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJyZGFy
Il0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNhbmNlbCk7Cisg
ICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9u
QWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWRO
YXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlv
biA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2
aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZl
ci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAg
IFV0aWw6OnNsZWVwKDAuNSk7CisKKyAgICBFWFBFQ1RfRkFMU0UoZGlkVHJ5VG9Mb2FkUmFkYXJV
UkwpOworfQorCitURVNUKFdLTmF2aWdhdGlvbiwgTG9hZFJhZGFyVVJMRnJvbVNhbmRib3hlZEZy
YW1lTWlzc2luZ1VzZXJHZXN0dXJlKQoreworICAgIGNvbnN0IGNoYXIqIG1haW5IVE1MID0gIjxp
ZnJhbWUgc3JjPSdmcmFtZS5odG1sJyBzYW5kYm94PSdhbGxvdy1zY3JpcHRzIGFsbG93LXRvcC1u
YXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbic+PC9pZnJhbWU+IjsKKyAgICBjb25zdCBjaGFy
KiBmcmFtZUhUTUwgPSAiPGEgaWQ9J3Rlc3RMaW5rJyBocmVmPSdyZGFyOi8vODQ0OTgxOTInPkxp
bms8L2E+PHNjcmlwdD5zZXRUaW1lb3V0KCgpID0+IHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3RMaW5rJykuY2xpY2soKSB9LCAwKTs8L3NjcmlwdD4iOworCisgICAgdXNpbmcgbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEk7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIv
IiwgeyBtYWluSFRNTCB9IH0sCisgICAgICAgIHsgIi9mcmFtZS5odG1sIiwgeyBmcmFtZUhUTUwg
fSB9LAorICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5l
d10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRl
IG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQo
KV07CisKKyAgICBfX2Jsb2NrIGJvb2wgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSBmYWxzZTsKKyAg
ICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gXihXS05h
dmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3kpKSB7CisgICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJMLnNj
aGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJyZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRvTG9h
ZFJhZGFyVVJMID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeUNhbmNlbCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07CisK
KyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdh
dGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlv
biAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1bigm
ZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIFV0aWw6OnNsZWVwKDAuNSk7CisKKyAgICBFWFBF
Q1RfRkFMU0UoZGlkVHJ5VG9Mb2FkUmFkYXJVUkwpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443438</attachid>
            <date>2021-11-05 14:26:11 -0700</date>
            <delta_ts>2021-11-05 22:40:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231727-20211105142610.patch</filename>
            <type>text/plain</type>
            <size>26789</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFhMjllNTY0OGU3Nzg3OTZm
NTY3NTMzNWU4MDllNDQ0ZmQ4NTlmMDMuLjk5ZmY2YjUxNjZiOGM1YjAwYjk2ZWQ2OWUyODEzMWJk
NTMzYzExM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMTEtMDUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOZXcgc3BlYzogQmxvY2sgZXh0ZXJu
YWwgcHJvdG9jb2wgaGFuZGxlciBpbiBzYW5kYm94ZWQgZnJhbWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3MjcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0NDk4MTkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBlciB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIFsxXVsyXSwgd2Ugc2hvdWxkIHBy
ZXZlbnQgc2FuZGJveGVkIGlmcmFtZXMgZnJvbSBvcGVuaW5nCisgICAgICAgIGV4dGVybmFsIGFw
cGxpY2F0aW9ucyBieSBuYXZpZ2F0aW5nIHRvIGEgVVJMIHdpdGggYSBjdXN0b20gcHJvY290b2wg
KGUuZy4gcmRhcjovLykuCisKKyAgICAgICAgSW5kZWVkLCBpdCB3b3VsZCBiZSBzdXJwcmlzaW5n
IGlmIG1hbHZlcnRpc2VycyB3b3VsZCBiZSBhYmxlIHRvIHJlZGlyZWN0IHlvdSB0bworICAgICAg
ICBhbiBleHRlcm5hbCBhcHAuCisKKyAgICAgICAgVG8gc3VwcG9ydCB2YWxpZCB1c2UgY2FzZXMs
IHdlIHN0aWxsIGFsbG93IHN1Y2ggbmF2aWdhdGlvbnMgaW4gc2FuZGJveGVkIGlmcmFtZXMKKyAg
ICAgICAgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKKyAgICAgICAgLSBzYW5kYm94
RmxhZ3MgY29udGFpbnMgImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiIg
YW5kIGhhc1RyYW5zaWVudEFjdGl2YXRpb24gaXMgdHJ1ZQorICAgICAgICAtIHNhbmRib3hGbGFn
cyBjb250YWlucyAiYWxsb3ctdG9wLW5hdmlnYXRpb24iCisgICAgICAgIC0gc2FuZGJveEZsYWdz
IGNvbnRhaW5zICJhbGxvdy1wb3B1cHMiCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZ2l0aHViLmNv
bS93aGF0d2cvaHRtbC9pc3N1ZXMvMjE5MQorICAgICAgICBbMl0gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jaGFuZC1vZmYtdG8tZXh0ZXJuYWwtc29mdHdhcmUKKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpmcmFtZVNhbmRib3hB
bGxvd3NPcGVuaW5nRXh0ZXJuYWxDdXN0b21Qcm90b2NvbHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorCiAyMDIxLTEx
LTA0ICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgSGF2ZSBS
ZW1vdGVNZWRpYVJlc291cmNlIHVzZSBTaGFyZWRNZW1vcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCBkYjkzMjVjMmViNWE5N2Y2
ZTgwODljMGVhYzVlNTA2ZTAyNjc1ZTBkLi4xZGY3ZjI4MDZhYTg0YzM0MWZiODRkNjVhYzU1NGU0
M2Q1ZTFmNzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25h
bFBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQ
YWdlUHJveHkuY3BwCkBAIC0zODksNyArMzg5LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGYK
ICAgICB9CiAgICAgQVNTRVJUKG1fbWFpbkZyYW1lKTsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFt
ZUlELCBpc01haW5GcmFtZSwgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgaWRlbnRpZmllciwgbmF2
aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5h
dGluZ0ZyYW1lSW5mbyksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9u
c2UpLCB1c2VyRGF0YSwgV1RGTW92ZShyZXBseSkpOworICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBh
Z2VJRCwgZnJhbWVJRCwgaXNNYWluRnJhbWUsIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIGlkZW50
aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1v
dmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1
ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRp
cmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIFdURk1vdmUocmVwbHkpKTsKIH0KIAogdm9pZCBQcm92
aXNpb25hbFBhZ2VQcm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNo
b3VsZFNhbXBsZSBzaG91bGRTYW1wbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBkOWE4Mjk4MjQyOWU0YWM2ZTNlNjcwNjdhNzcyNjJkOGVhZjNlNWZjLi5k
OWRlZTUyZWEyNmM1MzdjNWIyZjYwZGRiNmQ0OGQ5YzBhNmJiZDlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTUyNDksMTEgKzUyNDksMjAgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChS
ZWY8V2ViUHJvY2Vzc1Byb3gKICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIHBvbGljeURl
Y2lzaW9uLCBjcmVhdGVOZXR3b3JrRXh0ZW5zaW9uc1NhbmRib3hFeHRlbnNpb25zKHByb2Nlc3Mp
KSwgd2ViUGFnZUlEKTsKICAgICB9KTsKIAotICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb24ocHJvY2Vzcy5jb3B5UmVmKCksICpmcmFtZSwgV1RGTW92ZShmcmFtZUluZm8pLCBuYXZp
Z2F0aW9uSUQsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbmF0
aW5nRnJhbWVJbmZvKSwgb3JpZ2luYXRpbmdQYWdlSUQsCisgICAgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbihwcm9jZXNzLmNvcHlSZWYoKSwgd2ViUGFnZUlELCAqZnJhbWUsIFdURk1v
dmUoZnJhbWVJbmZvKSwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRh
KSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9yaWdpbmF0aW5nUGFnZUlELAogICAg
ICAgICBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJv
ZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgV1RGTW92ZShzZW5kZXIp
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwg
RnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgdWludDY0X3QgbmF2aWdhdGlvbklELAorLy8gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jaGFuZC1vZmYtdG8tZXh0ZXJuYWwtc29mdHdhcmUK
K3N0YXRpYyBib29sIGZyYW1lU2FuZGJveEFsbG93c09wZW5pbmdFeHRlcm5hbEN1c3RvbVByb3Rv
Y29scyhTYW5kYm94RmxhZ3Mgc2FuZGJveEZsYWdzLCBib29sIGhhc1VzZXJHZXN0dXJlKQorewor
ICAgIGlmICghKHNhbmRib3hGbGFncyAmIFNhbmRib3hQb3B1cHMpIHx8ICEoc2FuZGJveEZsYWdz
ICYgU2FuZGJveFRvcE5hdmlnYXRpb24pKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJl
dHVybiAhKHNhbmRib3hGbGFncyAmIFNhbmRib3hUb3BOYXZpZ2F0aW9uQnlVc2VyQWN0aXZhdGlv
bikgJiYgaGFzVXNlckdlc3R1cmU7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFn
ZUlkZW50aWZpZXIgd2ViUGFnZUlELCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgRnJhbWVJbmZvRGF0
YSYmIGZyYW1lSW5mbywgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGlu
Z0ZyYW1lSW5mb0RhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3Jp
Z2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxS
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
IHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgUmVmPFBvbGljeURl
Y2lzaW9uU2VuZGVyPiYmIHNlbmRlcikKIHsKQEAgLTUzNDQsNiArNTM1MywxNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vz
c1Byb3h5PiYmIHByb2NlcwogICAgIH0KICNlbmRpZgogCisgICAgLy8gT3RoZXIgcG9ydHMgZG8g
bm90IGltcGxlbWVudCBXZWJQYWdlOjpwbGF0Zm9ybUNhbkhhbmRsZVJlcXVlc3QoKS4KKyNpZiBQ
TEFURk9STShDT0NPQSkKKyAgICAvLyBTYW5kYm94ZWQgaWZyYW1lcyBzaG91bGQgYmUgYWxsb3dl
ZCB0byBvcGVuIGV4dGVybmFsIGFwcHMgdmlhIGN1c3RvbSBwcm90b2NvbHMgdW5sZXNzIGV4cGxp
Y2l0ZWx5IGFsbG93ZWQgKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2hhbmQtb2ZmLXRv
LWV4dGVybmFsLXNvZnR3YXJlKS4KKyAgICBib29sIGNhbkhhbmRsZVJlcXVlc3QgPSBuYXZpZ2F0
aW9uQWN0aW9uRGF0YS5jYW5IYW5kbGVSZXF1ZXN0IHx8IG1fdXJsU2NoZW1lSGFuZGxlcnNCeVNj
aGVtZS5jb250YWlucyhyZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29w
eWluZygpKTsKKyAgICBpZiAoIWNhbkhhbmRsZVJlcXVlc3QgJiYgIWRlc3RpbmF0aW9uRnJhbWVJ
bmZvLT5pc01haW5GcmFtZSgpICYmICFmcmFtZVNhbmRib3hBbGxvd3NPcGVuaW5nRXh0ZXJuYWxD
dXN0b21Qcm90b2NvbHMobmF2aWdhdGlvbkFjdGlvbkRhdGEuZWZmZWN0aXZlU2FuZGJveEZsYWdz
LCAhIW5hdmlnYXRpb25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9rZW5JZGVudGlmaWVyKSkgewor
ICAgICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIklnbm9yaW5n
IHJlcXVlc3QgdG8gbG9hZCB0aGlzIG1haW4gcmVzb3VyY2UgYmVjYXVzZSBpdCBoYXMgYSBjdXN0
b20gcHJvdG9jb2wgYW5kIGNvbWVzIGZyb20gYSBzYW5kYm94ZWQgaWZyYW1lIik7CisgICAgICAg
IHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkFkZENvbnNvbGVNZXNzYWdlKGZyYW1l
LmZyYW1lSUQoKSwgTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
ICJJZ25vcmluZyByZXF1ZXN0IHRvIGxvYWQgdGhpcyBtYWluIHJlc291cmNlIGJlY2F1c2UgaXQg
aGFzIGEgY3VzdG9tIHByb3RvY29sIGFuZCBjb21lcyBmcm9tIGEgc2FuZGJveGVkIGlmcmFtZSJf
cywgc3RkOjpudWxsb3B0KSwgd2ViUGFnZUlEKTsKKyAgICAgICAgcmV0dXJuIHJlY2VpdmVkUG9s
aWN5RGVjaXNpb24oUG9saWN5QWN0aW9uOjpJZ25vcmUsIG1fbmF2aWdhdGlvblN0YXRlLT5uYXZp
Z2F0aW9uKG5hdmlnYXRpb25JRCksIG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiks
IFdURk1vdmUoc2VuZGVyKSk7CisgICAgfQorI2VuZGlmCisKICAgICBTaG91bGRFeHBlY3RTYWZl
QnJvd3NpbmdSZXN1bHQgc2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0ID0gU2hvdWxkRXhw
ZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpZZXM7CiAgICAgaWYgKCFtX3ByZWZlcmVuY2VzLT5zYWZl
QnJvd3NpbmdFbmFibGVkKCkpCiAgICAgICAgIHNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3Vs
dCA9IFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6Tm87CkBAIC01NTE1LDE3ICs1NTM1
LDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
U3luYyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwKICAgICAgICAgICAgIGRpZENyZWF0ZVN1YmZy
YW1lKGZyYW1lSUQpOwogICAgIH0KIAotICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25TeW5jU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGlzTWFpbkZyYW1lLCBX
VEZNb3ZlKGZyYW1lSW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZp
Z2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5h
dGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJl
cXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIFdURk1vdmUo
cmVwbHkpKTsKKyAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZCht
X3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgaXNNYWluRnJhbWUsIFdU
Rk1vdmUoZnJhbWVJbmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmln
YXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9yaWdpbmF0
aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVx
dWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgV1RGTW92ZShy
ZXBseSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1l
SW5mbywgUG9saWN5Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJ
bmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94
eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3lu
Yzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9j
ZXNzLCBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBi
b29sIGlzTWFpbkZyYW1lLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lk
ZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRp
bmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2lu
YXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiBy
ZXBseSkKIHsKICAgICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUo
aWRlbnRpZmllciwgV1RGTW92ZShyZXBseSkpOwogCiAgICAgYXV0byogZnJhbWUgPSBwcm9jZXNz
LT53ZWJGcmFtZShmcmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKHByb2Nlc3MsIGZyYW1lKTsK
IAotICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV1RGTW92ZShwcm9jZXNzKSwg
KmZyYW1lLCBXVEZNb3ZlKGZyYW1lSW5mbyksIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0
aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGlu
Z1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVl
c3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIHNlbmRlci5jb3B5
UmVmKCkpOworICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV1RGTW92ZShwcm9j
ZXNzKSwgd2ViUGFnZUlELCAqZnJhbWUsIFdURk1vdmUoZnJhbWVJbmZvKSwgbmF2aWdhdGlvbklE
LCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1l
SW5mbyksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVz
dCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2Vy
RGF0YSwgc2VuZGVyLmNvcHlSZWYoKSk7CiAKICAgICAvLyBJZiB0aGUgY2xpZW50IGRpZCBub3Qg
cmVzcG9uZCBzeW5jaHJvbm91c2x5LCBwcm9jZWVkIHdpdGggdGhlIGxvYWQuCiAgICAgc2VuZGVy
LT5zZW5kKFBvbGljeURlY2lzaW9uIHsgc2VuZGVyLT5pZGVudGlmaWVyKCksIGlzTmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4oKSwgUG9saWN5QWN0aW9uOjpVc2UsIG5hdmlnYXRpb25JRCwgc3Rk
OjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IDQ4ZjE5YjZmZDU0NTZmZjE1NGU1MDlhNzZlZDU0YjYyMzcyZmM5YjQuLmQz
N2I5ZTdiYTBjMThjYmZiMmYwOTVkNzA3ZjcwNWY3YTBmMWQ0MDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNzYwLDcgKzE3NjAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29k
aW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdU
b0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBX
ZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBXZWJDb3JlOjpTdWJzdGl0dXRl
RGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0
aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRh
dGEsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVz
RGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCwgc3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2Fk
SWRlbnRpZmllcj4gZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1l
ID0gc3RkOjpudWxsb3B0KTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVm
PFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRp
ZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQmFja0ZvcndhcmRMaXN0Q291
bnRzJik+JiYpOwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBi
b29sIGlzTWFpbkZyYW1lLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBG
cmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFn
ZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBs
eSYmKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVk
KFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIEZyYW1lSW5mb0RhdGEmJiwgV2Vi
Q29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmln
YXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywg
c3RkOjpvcHRpb25hbDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHks
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2Vy
RGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jRGVsYXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQg
cmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZVNoYXJlZChjb25z
dCBTdHJpbmcmIGZpbGVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYp
PiYmKTsKICNlbmRpZgpAQCAtMjA3Niw3ICsyMDc2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
ZGlkRGVzdHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKTsKIAotICAgIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBX
ZWJGcmFtZVByb3h5JiwgRnJhbWVJbmZvRGF0YSYmLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5m
bywKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nl
c3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkZyYW1lUHJveHkmLCBGcmFt
ZUluZm9EYXRhJiYsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLAogICAgICAgICBzdGQ6Om9w
dGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmKTsKICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZy
YW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmln
aW5hdGluZ0ZyYW1lSW5mbywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggY2Q3MmM4ZTNmZTJhM2ZlMDdhMzEyODk3YjhiOWVhZjI5N2Q4ZDE4My4u
YjRmNDQ4MGY0NmVhNWFjNzdjZjdhNWZkY2NkZGE1OGNhOTU1OTg5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQzMDIsMTAgKzQzMDIsMTAg
QEAgV2ViRnVsbFNjcmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKIH0K
ICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBNZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCBtZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJ
ZGVudGlmaWVyIHJlcXVlc3RJRCkKK3ZvaWQgV2ViUGFnZTo6YWRkQ29uc29sZU1lc3NhZ2UoRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgTWVzc2Fn
ZUxldmVsIG1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcj4gcmVxdWVzdElEKQogewogICAgIGlm
IChhdXRvKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQp
KQotICAgICAgICBmcmFtZS0+YWRkQ29uc29sZU1lc3NhZ2UobWVzc2FnZVNvdXJjZSwgbWVzc2Fn
ZUxldmVsLCBtZXNzYWdlLCByZXF1ZXN0SUQudG9VSW50NjQoKSk7CisgICAgICAgIGZyYW1lLT5h
ZGRDb25zb2xlTWVzc2FnZShtZXNzYWdlU291cmNlLCBtZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHJl
cXVlc3RJRCA/IHJlcXVlc3RJRC0+dG9VSW50NjQoKSA6IDApOwogfQogCiB2b2lkIFdlYlBhZ2U6
OnNlbmRDU1BWaW9sYXRpb25SZXBvcnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVS
TCYgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVwb3J0RGF0YSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBhM2Q3MGY1NDEyNDcw
MDVhOTI5MjEzYmVkNDA2MTk3MzY1ODMwMGQzLi43MjYzMjQ2MmZiM2ZkZjlmZGU1MTAyYzU1YTNi
YWJhMDQ4OTY4YTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC00NDIsNyArNDQyLDcgQEAgcHVibGljOgogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
KiBmdWxsU2NyZWVuTWFuYWdlcigpOwogI2VuZGlmCiAKLSAgICB2b2lkIGFkZENvbnNvbGVNZXNz
YWdlKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVs
LCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgPSB7IH0p
OworICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBN
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyPiA9IHN0ZDo6bnVsbG9wdCk7CiAgICAg
dm9pZCBzZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29u
c3QgVVJMJiByZXBvcnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7CiAgICAgdm9pZCBz
ZW5kQ09FUFBvbGljeUluaGVyaXRlbmNlVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29u
c3QgU3RyaW5nJiBlbmRwb2ludCwgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uLCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CiAgICAgdm9pZCBzZW5kQ09FUENPUlBW
aW9sYXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBXZWJD
b3JlOjpDT0VQRGlzcG9zaXRpb24sIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24s
IGNvbnN0IFVSTCYgYmxvY2tlZFVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAzOGNlNDU3MGM5OGE4YjdhOTJh
MTAzOGEyMTU1YTFiMjdlYTQxODQ5Li4wMGVmN2QzNDc0ZGMyNzk1ZDIxZjk2ZTI2ODFiOTNmZTk4
NTM5YzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI3LDcgKzI3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBM
ZWdhY3lSZWNlaXZlciB7CiAKICAgICBTZXRCYWNrZ3JvdW5kQ29sb3Ioc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpDb2xvcj4gY29sb3IpCiAKLSAgICBBZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBt
ZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVs
LCBTdHJpbmcgbWVzc2FnZSwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIHJlcXVl
c3RJRCkKKyAgICBBZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBlbnVt
OnVpbnQ4X3QgSlNDOjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXI+IHJlcXVlc3RJ
RCkKICAgICBTZW5kQ1NQVmlvbGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBVUkwgcmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcG9ydERhdGEp
CiAgICAgU2VuZENPRVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBlbWJl
ZGRlck9yaWdpbiwgU3RyaW5nIGVuZHBvaW50LCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09FUERpc3Bv
c2l0aW9uIGRpc3Bvc2l0aW9uLCBTdHJpbmcgdHlwZSwgVVJMIGJsb2NrZWRVUkwpCiAgICAgU2Vu
ZENPRVBDT1JQVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1
Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIGVtYmVkZGVyT3JpZ2luLCBTdHJpbmcgZW5k
cG9pbnQsIGVudW06Ym9vbCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIGVu
dW06dWludDhfdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9u
LCBVUkwgYmxvY2tlZFVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggN2ZlZjA2ZDI4NjE5NTNjZjA1ZTA1MDcwZTE3MTdk
YmFiYjE5Y2Q4OC4uMjhmNmI1NjIwMWQ3ZTUwYjU2YjlhNWUzYWZkYzM0ZWVhOGZiZGFkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KQEAgLTYyNywxMCArNjI3LDkgQEAgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCogV2Vi
UGFnZTo6YWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJv
b2wgV2ViUGFnZTo6cGxhdGZvcm1DYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpCitib29sIFdlYlBhZ2U6OnBsYXRmb3JtQ2FuSGFuZGxlUmVxdWVzdChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIFtOU1VSTENvbm5lY3Rpb24gY2Fu
SGFuZGxlUmVxdWVzdDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChIVFRQQm9keVVwZGF0ZVBvbGljeTo6
RG9Ob3RVcGRhdGVIVFRQQm9keSldOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNob3VsZERlbGF5V2lu
ZG93T3JkZXJpbmdFdmVudChjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDA1OGNhOWZlZWY2YTM3NGY0ZDY5
OTlmNzg1ODU2NjI2YzBiN2FlOGEuLmM1NThmOTc1NTc1ZDdmOTBlNWY4MmJjYTEyMGQ5YjM2ZGZi
MjI5NjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIE5ldyBzcGVjOiBCbG9jayBleHRlcm5hbCBwcm90b2NvbCBoYW5kbGVy
IGluIHNhbmRib3hlZCBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMTcyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQ0OTgxOTI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0
ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9OYXZpZ2F0aW9uLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMTEtMDUgIEpvbmF0aGFu
IEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtpYy1zdGF0cy5weV0gQ2hh
bmdlIHNoZWJhbmcgdG8gUHl0aG9uIDMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbQppbmRleCAwNTFmOWE3Nzk4YjMzN2YxZTJjM2Vm
NGRjYzc0MDZmNTYyZGUzMjZiLi42ZDgwMDQ3M2U0MjM0NWIwMDUxY2Y3NGUyOWJmNTNkNTJhODI4
NjcxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05h
dmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9O
YXZpZ2F0aW9uLm1tCkBAIC04MjMsMyArODIzLDE5MCBAQCBURVNUKFdLTmF2aWdhdGlvbiwgU2lt
dWx0YW5lb3VzTmF2aWdhdGlvbldpdGhGb250c0ZpbmlzaGVzKQogICAgIFt3ZWJWaWV3IGxvYWRS
ZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOwogICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0
aW9uKTsKIH0KKworVEVTVChXS05hdmlnYXRpb24sIExvYWRSYWRhclVSTEZyb21TYW5kYm94ZWRG
cmFtZUFsbG93UG9wdXBzKQoreworICAgIGNvbnN0IGNoYXIqIG1haW5IVE1MID0gIjxpZnJhbWUg
c3JjPSdmcmFtZS5odG1sJyBzYW5kYm94PSdhbGxvdy1zY3JpcHRzIGFsbG93LXBvcHVwcyc+PC9p
ZnJhbWU+IjsKKyAgICBjb25zdCBjaGFyKiBmcmFtZUhUTUwgPSAiPGEgaWQ9J3Rlc3RMaW5rJyBo
cmVmPSdyZGFyOi8vODQ0OTgxOTInPkxpbms8L2E+PHNjcmlwdD5zZXRUaW1lb3V0KCgpID0+IHsg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RMaW5rJykuY2xpY2soKSB9LCAwKTs8L3Njcmlw
dD4iOworCisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgSFRUUFNlcnZl
ciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluSFRNTCB9IH0sCisgICAgICAgIHsgIi9m
cmFtZS5odG1sIiwgeyBmcmFtZUhUTUwgfSB9LAorICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRp
b25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBfX2Jsb2NrIGJvb2wgZGlkVHJ5VG9M
b2FkUmFkYXJVUkwgPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uID0gXihXS05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgdm9pZCAoXmNv
bXBsZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKSB7CisgICAgICAgIGlm
IChbYWN0aW9uLnJlcXVlc3QuVVJMLnNjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJyZGFyIl0pIHsK
KyAgICAgICAgICAgIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gdHJ1ZTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNhbmNlbCk7CisgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9u
UG9saWN5QWxsb3cpOworICAgIH07CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0
aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4o
V0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlv
biA9IHRydWU7CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1
ZXN0KCldOworICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIFV0aWw6
OnJ1bigmZGlkVHJ5VG9Mb2FkUmFkYXJVUkwpOworfQorCitURVNUKFdLTmF2aWdhdGlvbiwgTG9h
ZFJhZGFyVVJMRnJvbVNhbmRib3hlZEZyYW1lQWxsb3dUb3BOYXZpZ2F0aW9uKQoreworICAgIGNv
bnN0IGNoYXIqIG1haW5IVE1MID0gIjxpZnJhbWUgc3JjPSdmcmFtZS5odG1sJyBzYW5kYm94PSdh
bGxvdy1zY3JpcHRzIGFsbG93LXRvcC1uYXZpZ2F0aW9uJz48L2lmcmFtZT4iOworICAgIGNvbnN0
IGNoYXIqIGZyYW1lSFRNTCA9ICI8YSBpZD0ndGVzdExpbmsnIGhyZWY9J3JkYXI6Ly84NDQ5ODE5
Mic+TGluazwvYT48c2NyaXB0PnNldFRpbWVvdXQoKCkgPT4geyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdExpbmsnKS5jbGljaygpIH0sIDApOzwvc2NyaXB0PiI7CisKKyAgICB1c2luZyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSTsKKyAgICBIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAg
IHsgIi8iLCB7IG1haW5IVE1MIH0gfSwKKyAgICAgICAgeyAiL2ZyYW1lLmh0bWwiLCB7IGZyYW1l
SFRNTCB9IH0sCisgICAgfSk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZp
ZXcgbmV3XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZpZ2F0aW9uRGVs
ZWdhdGUgbmV3XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRl
LmdldCgpXTsKKworICAgIF9fYmxvY2sgYm9vbCBkaWRUcnlUb0xvYWRSYWRhclVSTCA9IGZhbHNl
OworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBe
KFdLTmF2aWdhdGlvbkFjdGlvbiAqYWN0aW9uLCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSkpIHsKKyAgICAgICAgaWYgKFthY3Rpb24ucmVxdWVzdC5V
Ukwuc2NoZW1lIGlzRXF1YWxUb1N0cmluZzpAInJkYXIiXSkgeworICAgICAgICAgICAgZGlkVHJ5
VG9Mb2FkUmFkYXJVUkwgPSB0cnVlOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5Q2FuY2VsKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyk7CisgICAg
fTsKKworICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZE5hdmlnYXRpb24gPSBmYWxzZTsKKyAgICBk
ZWxlZ2F0ZS5nZXQoKS5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gXihXS1dlYlZpZXcgKiwgV0tOYXZp
Z2F0aW9uICopIHsKKyAgICAgICAgZmluaXNoZWROYXZpZ2F0aW9uID0gdHJ1ZTsKKyAgICB9Owor
CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgVXRpbDo6
cnVuKCZmaW5pc2hlZE5hdmlnYXRpb24pOworCisgICAgVXRpbDo6cnVuKCZkaWRUcnlUb0xvYWRS
YWRhclVSTCk7Cit9CisKK1RFU1QoV0tOYXZpZ2F0aW9uLCBMb2FkUmFkYXJVUkxGcm9tU2FuZGJv
eGVkRnJhbWVXaXRoVXNlckdlc3R1cmUpCit7CisgICAgY29uc3QgY2hhciogbWFpbkhUTUwgPSAi
PGlmcmFtZSBzcmM9J2ZyYW1lLmh0bWwnIHNhbmRib3g9J2FsbG93LXNjcmlwdHMgYWxsb3ctdG9w
LW5hdmlnYXRpb24tYnktdXNlci1hY3RpdmF0aW9uJz48L2lmcmFtZT4iOworICAgIGNvbnN0IGNo
YXIqIGZyYW1lSFRNTCA9ICI8YSBpZD0ndGVzdExpbmsnIGhyZWY9J3JkYXI6Ly84NDQ5ODE5Mic+
TGluazwvYT48L3NjcmlwdD4iOworCisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7
CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluSFRNTCB9IH0s
CisgICAgICAgIHsgIi9mcmFtZS5odG1sIiwgeyBmcmFtZUhUTUwgfSB9LAorICAgIH0pOworCisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJW
aWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBfX2Jsb2Nr
IFJldGFpblB0cjxXS0ZyYW1lSW5mbz4gaWZyYW1lOworICAgIF9fYmxvY2sgYm9vbCBkaWRUcnlU
b0xvYWRSYWRhclVSTCA9IGZhbHNlOworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24gPSBeKFdLTmF2aWdhdGlvbkFjdGlvbiAqYWN0aW9uLCB2b2lkIChe
Y29tcGxldGlvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkpIHsKKyAgICAgICAg
aWYgKCFhY3Rpb24udGFyZ2V0RnJhbWUuaXNNYWluRnJhbWUpCisgICAgICAgICAgICBpZnJhbWUg
PSBhY3Rpb24udGFyZ2V0RnJhbWU7CisgICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJMLnNj
aGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJyZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRvTG9h
ZFJhZGFyVVJMID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeUNhbmNlbCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07CisK
KyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdh
dGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlv
biAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAg
IFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1bigm
ZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIEFTU0VSVF9UUlVFKCEhaWZyYW1lKTsKKworICAg
IC8vIFJ1bm5pbmcgSmF2YXNjcmlwdCBzaW11bGF0ZXMgYSB1c2VyIGdlc3R1cmUgc28gdGhlIG5h
dmlnYXRpb24gc2hvdWxkIGJlIHBlcm1pdHRlZCBkdWUgdG8gJ2FsbG93LXRvcC1uYXZpZ2F0aW9u
LWJ5LXVzZXItYWN0aXZhdGlvbicuCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAi
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RMaW5rJykuY2xpY2soKSIgaW5GcmFtZTppZnJh
bWUuZ2V0KCkgaW5Db250ZW50V29ybGQ6V0tDb250ZW50V29ybGQucGFnZVdvcmxkIGNvbXBsZXRp
b25IYW5kbGVyOm5pbF07CisKKyAgICBVdGlsOjpydW4oJmRpZFRyeVRvTG9hZFJhZGFyVVJMKTsK
K30KKworVEVTVChXS05hdmlnYXRpb24sIExvYWRSYWRhclVSTEZyb21TYW5kYm94ZWRGcmFtZSkK
K3sKKyAgICBjb25zdCBjaGFyKiBtYWluSFRNTCA9ICI8aWZyYW1lIHNyYz0nZnJhbWUuaHRtbCcg
c2FuZGJveD0nYWxsb3ctc2NyaXB0cyc+PC9pZnJhbWU+IjsKKyAgICBjb25zdCBjaGFyKiBmcmFt
ZUhUTUwgPSAiPGEgaWQ9J3Rlc3RMaW5rJyBocmVmPSdyZGFyOi8vODQ0OTgxOTInPkxpbms8L2E+
PHNjcmlwdD5zZXRUaW1lb3V0KCgpID0+IHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RM
aW5rJykuY2xpY2soKSB9LCAwKTs8L3NjcmlwdD4iOworCisgICAgdXNpbmcgbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEk7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBt
YWluSFRNTCB9IH0sCisgICAgICAgIHsgIi9mcmFtZS5odG1sIiwgeyBmcmFtZUhUTUwgfSB9LAor
ICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOwor
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10p
OworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisK
KyAgICBfX2Jsb2NrIGJvb2wgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSBmYWxzZTsKKyAgICBkZWxl
Z2F0ZS5nZXQoKS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gXihXS05hdmlnYXRp
b25BY3Rpb24gKmFjdGlvbiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3kpKSB7CisgICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJMLnNjaGVtZSBp
c0VxdWFsVG9TdHJpbmc6QCJyZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRvTG9hZFJhZGFy
VVJMID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeUNhbmNlbCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07CisKKyAgICBf
X2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0
KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7
CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1bigmZmluaXNo
ZWROYXZpZ2F0aW9uKTsKKworICAgIFV0aWw6OnNsZWVwKDAuNSk7CisKKyAgICBFWFBFQ1RfRkFM
U0UoZGlkVHJ5VG9Mb2FkUmFkYXJVUkwpOworfQorCitURVNUKFdLTmF2aWdhdGlvbiwgTG9hZFJh
ZGFyVVJMRnJvbVNhbmRib3hlZEZyYW1lTWlzc2luZ1VzZXJHZXN0dXJlKQoreworICAgIGNvbnN0
IGNoYXIqIG1haW5IVE1MID0gIjxpZnJhbWUgc3JjPSdmcmFtZS5odG1sJyBzYW5kYm94PSdhbGxv
dy1zY3JpcHRzIGFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbic+PC9pZnJh
bWU+IjsKKyAgICBjb25zdCBjaGFyKiBmcmFtZUhUTUwgPSAiPGEgaWQ9J3Rlc3RMaW5rJyBocmVm
PSdyZGFyOi8vODQ0OTgxOTInPkxpbms8L2E+PHNjcmlwdD5zZXRUaW1lb3V0KCgpID0+IHsgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RMaW5rJykuY2xpY2soKSB9LCAwKTs8L3NjcmlwdD4i
OworCisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7CisgICAgSFRUUFNlcnZlciBz
ZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluSFRNTCB9IH0sCisgICAgICAgIHsgIi9mcmFt
ZS5odG1sIiwgeyBmcmFtZUhUTUwgfSB9LAorICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtU
ZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25E
ZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBfX2Jsb2NrIGJvb2wgZGlkVHJ5VG9Mb2Fk
UmFkYXJVUkwgPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uID0gXihXS05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgdm9pZCAoXmNvbXBs
ZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKSB7CisgICAgICAgIGlmIChb
YWN0aW9uLnJlcXVlc3QuVVJMLnNjaGVtZSBpc0VxdWFsVG9TdHJpbmc6QCJyZGFyIl0pIHsKKyAg
ICAgICAgICAgIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNhbmNlbCk7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5QWxsb3cpOworICAgIH07CisKKyAgICBfX2Jsb2NrIGJvb2wgZmluaXNoZWROYXZpZ2F0aW9u
ID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNoTmF2aWdhdGlvbiA9IF4oV0tX
ZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZpbmlzaGVkTmF2aWdhdGlvbiA9
IHRydWU7CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0
KCldOworICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9uKTsKKworICAgIFV0aWw6OnNs
ZWVwKDAuNSk7CisKKyAgICBFWFBFQ1RfRkFMU0UoZGlkVHJ5VG9Mb2FkUmFkYXJVUkwpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443478</attachid>
            <date>2021-11-05 22:41:00 -0700</date>
            <delta_ts>2021-11-09 08:40:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231727-20211105224059.patch</filename>
            <type>text/plain</type>
            <size>26880</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI0YWFhMDEzY2FlMDYxNjlm
NjBjM2IxZTMyMDljMWU2Yjk1NDc0Y2YuLjhmZTBkYTBhMTY3NzRkMGFiZGJiOWU0YjE1YTdhNzVi
MDViYzk5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMTEtMDUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOZXcgc3BlYzogQmxvY2sgZXh0ZXJu
YWwgcHJvdG9jb2wgaGFuZGxlciBpbiBzYW5kYm94ZWQgZnJhbWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE3MjcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzg0NDk4MTkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBlciB0aGUgSFRNTCBzcGVjaWZpY2F0aW9uIFsxXVsyXSwgd2Ugc2hvdWxkIHBy
ZXZlbnQgc2FuZGJveGVkIGlmcmFtZXMgZnJvbSBvcGVuaW5nCisgICAgICAgIGV4dGVybmFsIGFw
cGxpY2F0aW9ucyBieSBuYXZpZ2F0aW5nIHRvIGEgVVJMIHdpdGggYSBjdXN0b20gcHJvY290b2wg
KGUuZy4gcmRhcjovLykuCisKKyAgICAgICAgSW5kZWVkLCBpdCB3b3VsZCBiZSBzdXJwcmlzaW5n
IGlmIG1hbHZlcnRpc2VycyB3b3VsZCBiZSBhYmxlIHRvIHJlZGlyZWN0IHlvdSB0bworICAgICAg
ICBhbiBleHRlcm5hbCBhcHAuCisKKyAgICAgICAgVG8gc3VwcG9ydCB2YWxpZCB1c2UgY2FzZXMs
IHdlIHN0aWxsIGFsbG93IHN1Y2ggbmF2aWdhdGlvbnMgaW4gc2FuZGJveGVkIGlmcmFtZXMKKyAg
ICAgICAgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKKyAgICAgICAgLSBzYW5kYm94
RmxhZ3MgY29udGFpbnMgImFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0aXZhdGlvbiIg
YW5kIGhhc1RyYW5zaWVudEFjdGl2YXRpb24gaXMgdHJ1ZQorICAgICAgICAtIHNhbmRib3hGbGFn
cyBjb250YWlucyAiYWxsb3ctdG9wLW5hdmlnYXRpb24iCisgICAgICAgIC0gc2FuZGJveEZsYWdz
IGNvbnRhaW5zICJhbGxvdy1wb3B1cHMiCisKKyAgICAgICAgWzFdIGh0dHBzOi8vZ2l0aHViLmNv
bS93aGF0d2cvaHRtbC9pc3N1ZXMvMjE5MQorICAgICAgICBbMl0gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jaGFuZC1vZmYtdG8tZXh0ZXJuYWwtc29mdHdhcmUKKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpmcmFtZVNhbmRib3hB
bGxvd3NPcGVuaW5nRXh0ZXJuYWxDdXN0b21Qcm90b2NvbHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorCiAyMDIxLTEx
LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSVBD
IGRlY29kZXIgZm9yIFJlc291cmNlUmVxdWVzdCBsb3NlcyBzeXN0ZW1QcmV2aWV3SW5mbyB3aGVu
IHRoZXJlIGlzIHBsYXRmb3JtIGRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b3Zpc2lvbmFsUGFnZVByb3h5LmNwcAppbmRleCBkYjkzMjVjMmViNWE5N2Y2ZTgwODljMGVhYzVl
NTA2ZTAyNjc1ZTBkLi4xZGY3ZjI4MDZhYTg0YzM0MWZiODRkNjVhYzU1NGU0M2Q1ZTFmNzAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3Bw
CkBAIC0zODksNyArMzg5LDcgQEAgdm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMoRnJhbWVJZGVudGlmaWVyIGYKICAgICB9CiAgICAg
QVNTRVJUKG1fbWFpbkZyYW1lKTsKIAotICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uU3luY1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFtZUlELCBpc01haW5G
cmFtZSwgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBX
VEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5m
byksIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCks
IFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0
YSwgV1RGTW92ZShyZXBseSkpOworICAgIG1fcGFnZS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luY1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJ
RCwgaXNNYWluRnJhbWUsIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksIGlkZW50aWZpZXIsIG5hdmln
YXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUob3JpZ2luYXRp
bmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3Zl
KHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNl
KSwgdXNlckRhdGEsIFdURk1vdmUocmVwbHkpKTsKIH0KIAogdm9pZCBQcm92aXNpb25hbFBhZ2VQ
cm94eTo6bG9nRGlhZ25vc3RpY01lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24sIFdlYkNvcmU6OlNob3VsZFNhbXBsZSBz
aG91bGRTYW1wbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCA3ZjlhYjE0YTA3NGRkYzk0NTNhOTAyOTY3ZDBlMDM4YjdmMmE4MDRmLi5jOGZlOWEyOTIzZGQ1
MWYwNTA1YjI5NzBjNjMyYzJlMjcyYzgzYzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTUyNDksMTEgKzUyNDksMjAgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luY1NoYXJlZChSZWY8V2ViUHJvY2Vz
c1Byb3gKICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2
ZVBvbGljeURlY2lzaW9uKGZyYW1lSUQsIGxpc3RlbmVySUQsIHBvbGljeURlY2lzaW9uLCBjcmVh
dGVOZXR3b3JrRXh0ZW5zaW9uc1NhbmRib3hFeHRlbnNpb25zKHByb2Nlc3MpKSwgd2ViUGFnZUlE
KTsKICAgICB9KTsKIAotICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24ocHJvY2Vz
cy5jb3B5UmVmKCksICpmcmFtZSwgV1RGTW92ZShmcmFtZUluZm8pLCBuYXZpZ2F0aW9uSUQsIFdU
Rk1vdmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBXVEZNb3ZlKG9yaWdpbmF0aW5nRnJhbWVJbmZv
KSwgb3JpZ2luYXRpbmdQYWdlSUQsCisgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bihwcm9jZXNzLmNvcHlSZWYoKSwgd2ViUGFnZUlELCAqZnJhbWUsIFdURk1vdmUoZnJhbWVJbmZv
KSwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShv
cmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9yaWdpbmF0aW5nUGFnZUlELAogICAgICAgICBvcmlnaW5h
bFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3Zl
KHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgV1RGTW92ZShzZW5kZXIpKTsKIH0KIAotdm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgRnJhbWVJbmZvRGF0
YSYmIGZyYW1lSW5mbywgdWludDY0X3QgbmF2aWdhdGlvbklELAorLy8gaHR0cHM6Ly9odG1sLnNw
ZWMud2hhdHdnLm9yZy8jaGFuZC1vZmYtdG8tZXh0ZXJuYWwtc29mdHdhcmUKK3N0YXRpYyBib29s
IGZyYW1lU2FuZGJveEFsbG93c09wZW5pbmdFeHRlcm5hbEN1c3RvbVByb3RvY29scyhTYW5kYm94
RmxhZ3Mgc2FuZGJveEZsYWdzLCBib29sIGhhc1VzZXJHZXN0dXJlKQoreworICAgIGlmICghKHNh
bmRib3hGbGFncyAmIFNhbmRib3hQb3B1cHMpIHx8ICEoc2FuZGJveEZsYWdzICYgU2FuZGJveFRv
cE5hdmlnYXRpb24pKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiAhKHNhbmRi
b3hGbGFncyAmIFNhbmRib3hUb3BOYXZpZ2F0aW9uQnlVc2VyQWN0aXZhdGlvbikgJiYgaGFzVXNl
ckdlc3R1cmU7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYgcHJvY2VzcywgUGFnZUlkZW50aWZpZXIg
d2ViUGFnZUlELCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5m
bywgdWludDY0X3QgbmF2aWdhdGlvbklELAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2
aWdhdGlvbkFjdGlvbkRhdGEsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mb0Rh
dGEsIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdl
SUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LAogICAgIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVz
cG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVy
PiYmIHNlbmRlcikKIHsKQEAgLTUzNDQsNiArNTM1MywxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHBy
b2NlcwogICAgIH0KICNlbmRpZgogCisgICAgLy8gT3RoZXIgcG9ydHMgZG8gbm90IGltcGxlbWVu
dCBXZWJQYWdlOjpwbGF0Zm9ybUNhbkhhbmRsZVJlcXVlc3QoKS4KKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICAvLyBTYW5kYm94ZWQgaWZyYW1lcyBzaG91bGQgYmUgYWxsb3dlZCB0byBvcGVuIGV4
dGVybmFsIGFwcHMgdmlhIGN1c3RvbSBwcm90b2NvbHMgdW5sZXNzIGV4cGxpY2l0ZWx5IGFsbG93
ZWQgKGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2hhbmQtb2ZmLXRvLWV4dGVybmFsLXNv
ZnR3YXJlKS4KKyAgICBib29sIGNhbkhhbmRsZVJlcXVlc3QgPSBuYXZpZ2F0aW9uQWN0aW9uRGF0
YS5jYW5IYW5kbGVSZXF1ZXN0IHx8IG1fdXJsU2NoZW1lSGFuZGxlcnNCeVNjaGVtZS5jb250YWlu
cyhyZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKKyAg
ICBpZiAoIWNhbkhhbmRsZVJlcXVlc3QgJiYgIWRlc3RpbmF0aW9uRnJhbWVJbmZvLT5pc01haW5G
cmFtZSgpICYmICFmcmFtZVNhbmRib3hBbGxvd3NPcGVuaW5nRXh0ZXJuYWxDdXN0b21Qcm90b2Nv
bHMobmF2aWdhdGlvbkFjdGlvbkRhdGEuZWZmZWN0aXZlU2FuZGJveEZsYWdzLCAhIW5hdmlnYXRp
b25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9rZW5JZGVudGlmaWVyKSkgeworICAgICAgICBXRUJQ
QUdFUFJPWFlfUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIklnbm9yaW5nIHJlcXVlc3QgdG8g
bG9hZCB0aGlzIG1haW4gcmVzb3VyY2UgYmVjYXVzZSBpdCBoYXMgYSBjdXN0b20gcHJvdG9jb2wg
YW5kIGNvbWVzIGZyb20gYSBzYW5kYm94ZWQgaWZyYW1lIik7CisgICAgICAgIHByb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkFkZENvbnNvbGVNZXNzYWdlKGZyYW1lLmZyYW1lSUQoKSwg
TWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJJZ25vcmluZyBy
ZXF1ZXN0IHRvIGxvYWQgdGhpcyBtYWluIHJlc291cmNlIGJlY2F1c2UgaXQgaGFzIGEgY3VzdG9t
IHByb3RvY29sIGFuZCBjb21lcyBmcm9tIGEgc2FuZGJveGVkIGlmcmFtZSJfcywgc3RkOjpudWxs
b3B0KSwgd2ViUGFnZUlEKTsKKyAgICAgICAgcmV0dXJuIHJlY2VpdmVkUG9saWN5RGVjaXNpb24o
UG9saWN5QWN0aW9uOjpJZ25vcmUsIG1fbmF2aWdhdGlvblN0YXRlLT5uYXZpZ2F0aW9uKG5hdmln
YXRpb25JRCksIG51bGxwdHIsIFdURk1vdmUobmF2aWdhdGlvbkFjdGlvbiksIFdURk1vdmUoc2Vu
ZGVyKSk7CisgICAgfQorI2VuZGlmCisKICAgICBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1
bHQgc2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0ID0gU2hvdWxkRXhwZWN0U2FmZUJyb3dz
aW5nUmVzdWx0OjpZZXM7CiAgICAgaWYgKCFtX3ByZWZlcmVuY2VzLT5zYWZlQnJvd3NpbmdFbmFi
bGVkKCkpCiAgICAgICAgIHNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCA9IFNob3VsZEV4
cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6Tm87CkBAIC01NTE1LDE3ICs1NTM1LDE3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyhGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwKICAgICAgICAgICAgIGRpZENyZWF0ZVN1YmZyYW1lKGZyYW1lSUQp
OwogICAgIH0KIAotICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVk
KG1fcHJvY2Vzcy5jb3B5UmVmKCksIGZyYW1lSUQsIGlzTWFpbkZyYW1lLCBXVEZNb3ZlKGZyYW1l
SW5mbyksIGlkZW50aWZpZXIsIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9u
RGF0YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwg
b3JpZ2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwg
V1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIFdURk1vdmUocmVwbHkpKTsKKyAg
ICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBtX3dlYlBhZ2VJRCwgZnJhbWVJRCwgaXNNYWluRnJhbWUsIFdURk1vdmUoZnJhbWVJ
bmZvKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25E
YXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9yaWdpbmF0aW5nUGFnZUlELCBv
cmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBX
VEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgV1RGTW92ZShyZXBseSkpOwogfQog
Ci12b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNT
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgYm9vbCBpc01haW5GcmFtZSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgUG9saWN5
Q2hlY2tJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdh
dGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgRnJhbWVJbmZvRGF0YSYmIG9y
aWdpbmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+
IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdp
bmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYg
cmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJl
cGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvblN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzLCBQYWdlSWRl
bnRpZmllciB3ZWJQYWdlSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBib29sIGlzTWFpbkZy
YW1lLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBQb2xpY3lDaGVja0lkZW50aWZpZXIgaWRl
bnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8s
IHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVx
dWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBj
b25zdCBVc2VyRGF0YSYgdXNlckRhdGEsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKICAg
ICBhdXRvIHNlbmRlciA9IFBvbGljeURlY2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwg
V1RGTW92ZShyZXBseSkpOwogCiAgICAgYXV0byogZnJhbWUgPSBwcm9jZXNzLT53ZWJGcmFtZShm
cmFtZUlEKTsKICAgICBNRVNTQUdFX0NIRUNLKHByb2Nlc3MsIGZyYW1lKTsKIAotICAgIGRlY2lk
ZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV1RGTW92ZShwcm9jZXNzKSwgKmZyYW1lLCBXVEZN
b3ZlKGZyYW1lSW5mbyksIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0
YSksIFdURk1vdmUob3JpZ2luYXRpbmdGcmFtZUluZm8pLCBvcmlnaW5hdGluZ1BhZ2VJRCwgb3Jp
Z2luYWxSZXF1ZXN0LCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlcXVlc3RCb2R5KSwgV1RG
TW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIHNlbmRlci5jb3B5UmVmKCkpOworICAg
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV1RGTW92ZShwcm9jZXNzKSwgd2ViUGFn
ZUlELCAqZnJhbWUsIFdURk1vdmUoZnJhbWVJbmZvKSwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5h
dmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShvcmlnaW5hdGluZ0ZyYW1lSW5mbyksIG9yaWdp
bmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUo
cmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2VyRGF0YSwgc2VuZGVy
LmNvcHlSZWYoKSk7CiAKICAgICAvLyBJZiB0aGUgY2xpZW50IGRpZCBub3QgcmVzcG9uZCBzeW5j
aHJvbm91c2x5LCBwcm9jZWVkIHdpdGggdGhlIGxvYWQuCiAgICAgc2VuZGVyLT5zZW5kKFBvbGlj
eURlY2lzaW9uIHsgc2VuZGVyLT5pZGVudGlmaWVyKCksIGlzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4oKSwgUG9saWN5QWN0aW9uOjpVc2UsIG5hdmlnYXRpb25JRCwgc3RkOjpudWxsb3B0LCBz
dGQ6Om51bGxvcHQgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDgzOGI3ZDFmYjk5NGQ4MDY1MDM2NDlhM2U5YzY5YTAzYTkyM2I5MDQuLjM4N2YyMjcwZTFmNjYy
N2ZkZGQ5MWQ1OGRiMDlhNTZmODhmODZkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xNzYwLDcgKzE3NjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkRGF0
YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyLCBBUEk6Ok5hdmlnYXRpb24mLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
LCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBT
dHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBXZWJDb3JlOjpTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lv
bkhpc3RvcnlWaXNpYmlsaXR5KTsKICAgICB2b2lkIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb25T
aGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQ
STo6TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0
ZDo6bnVsbG9wdCwgc3RkOjpvcHRpb25hbDxOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllcj4g
ZXhpc3RpbmdOZXR3b3JrUmVzb3VyY2VMb2FkSWRlbnRpZmllclRvUmVzdW1lID0gc3RkOjpudWxs
b3B0KTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFyZWQoUmVmPFdlYlByb2Nlc3NQ
cm94eT4mJiwgY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQmFja0ZvcndhcmRMaXN0Q291bnRzJik+JiYpOwot
ICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmNTaGFyZWQoUmVmPFdl
YlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBib29sIGlzTWFpbkZy
YW1lLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBGcmFtZUluZm9EYXRh
JiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZVByb3h5SWRlbnRp
Zmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVk
aXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5ZWRSZXBseSYmKTsKKyAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jU2hhcmVkKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIsIGJvb2wgaXNNYWluRnJhbWUsIEZyYW1lSW5mb0RhdGEmJiwgV2ViQ29yZTo6UG9saWN5
Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25E
YXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywgc3RkOjpvcHRpb25h
bDxXZWJQYWdlUHJveHlJZGVudGlmaWVyPiBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jRGVs
YXllZFJlcGx5JiYpOwogI2lmIFVTRShRVUlDS19MT09LKQogICAgIHZvaWQgcmVxdWVzdFBhc3N3
b3JkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5GcmFtZVNoYXJlZChjb25zdCBTdHJpbmcmIGZp
bGVOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKTsKICNlbmRp
ZgpAQCAtMjA3Niw3ICsyMDc2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkRGVzdHJveU5h
dmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKTsKIAotICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbihSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJGcmFtZVByb3h5
JiwgRnJhbWVJbmZvRGF0YSYmLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1lSW5mbywKKyAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkZyYW1lUHJveHkmLCBGcmFtZUluZm9EYXRhJiYs
IHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZv
RGF0YSYmIG9yaWdpbmF0aW5nRnJhbWVJbmZvLAogICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYlBh
Z2VQcm94eUlkZW50aWZpZXI+IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiByZXF1ZXN0Qm9keSwKICAgICAgICAgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgUmVm
PFBvbGljeURlY2lzaW9uU2VuZGVyPiYmKTsKICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb25Bc3luYyhXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEm
JiwgV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIEZyYW1lSW5mb0RhdGEmJiBvcmlnaW5hdGluZ0ZyYW1l
SW5mbywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggY2NmYTBkZDU1NGQ2NGVjODA5MmY5MWRjZWFiYzdhNWQwNDdhNWU1ZC4uNDhmOGU3ZTMzZDM3
NmNjOWJkNTBhMWVhOWZkN2Q5ODEwNmFkMmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQzMDIsMTAgKzQzMDIsMTAgQEAgV2ViRnVsbFNj
cmVlbk1hbmFnZXIqIFdlYlBhZ2U6OmZ1bGxTY3JlZW5NYW5hZ2VyKCkKIH0KICNlbmRpZgogCi12
b2lkIFdlYlBhZ2U6OmFkZENvbnNvbGVNZXNzYWdlKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBN
ZXNzYWdlU291cmNlIG1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCBtZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIHJl
cXVlc3RJRCkKK3ZvaWQgV2ViUGFnZTo6YWRkQ29uc29sZU1lc3NhZ2UoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIE1lc3NhZ2VTb3VyY2UgbWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsIG1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJl
c291cmNlTG9hZGVySWRlbnRpZmllcj4gcmVxdWVzdElEKQogewogICAgIGlmIChhdXRvKiBmcmFt
ZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpKQotICAgICAgICBm
cmFtZS0+YWRkQ29uc29sZU1lc3NhZ2UobWVzc2FnZVNvdXJjZSwgbWVzc2FnZUxldmVsLCBtZXNz
YWdlLCByZXF1ZXN0SUQudG9VSW50NjQoKSk7CisgICAgICAgIGZyYW1lLT5hZGRDb25zb2xlTWVz
c2FnZShtZXNzYWdlU291cmNlLCBtZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJRCA/IHJl
cXVlc3RJRC0+dG9VSW50NjQoKSA6IDApOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNlbmRDU1BWaW9s
YXRpb25SZXBvcnQoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFVSTCYgcmVwb3J0VVJM
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVwb3J0RGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA4NmQ0YTEyZjcyNTRmMjY0MjgxNWE5ZDNl
ODk5YWU1YmEzNTIzNDk2Li4wYzM2Mzc1NzM4YTA0NWZiOGI3NzhjZjliMTYyMjM3NzJjNTZiMjJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00NDIs
NyArNDQyLDcgQEAgcHVibGljOgogICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyKiBmdWxsU2NyZWVu
TWFuYWdlcigpOwogI2VuZGlmCiAKLSAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgPSB7IH0pOworICAgIHZvaWQg
YWRkQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBNZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXJJZGVudGlmaWVyPiA9IHN0ZDo6bnVsbG9wdCk7CiAgICAgdm9pZCBzZW5kQ1NQ
VmlvbGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgVVJMJiByZXBv
cnRVUkwsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7CiAgICAgdm9pZCBzZW5kQ09FUFBvbGlj
eUluaGVyaXRlbmNlVmlvbGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBlbWJlZGRlck9yaWdpbiwgY29uc3QgU3RyaW5nJiBl
bmRwb2ludCwgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFVSTCYgYmxvY2tlZFVSTCk7CiAgICAgdm9pZCBzZW5kQ09FUENPUlBWaW9sYXRpb24oV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IGVtYmVkZGVyT3JpZ2luLCBjb25zdCBTdHJpbmcmIGVuZHBvaW50LCBXZWJDb3JlOjpDT0VQRGlz
cG9zaXRpb24sIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6RGVzdGluYXRpb24sIGNvbnN0IFVSTCYg
YmxvY2tlZFVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCA5NmU1Yzc2N2YwYmNhMmU3OGZmNzE2OTM1MzMxYTgw
NDY0MjQ4ODAyLi5iNTE2OWE3ODY1MmFjNzlmY2EyMjc1YTUxOGY3OTNjMGQ3OWI4OTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KQEAgLTI3LDcgKzI3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZl
ciB7CiAKICAgICBTZXRCYWNrZ3JvdW5kQ29sb3Ioc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpDb2xv
cj4gY29sb3IpCiAKLSAgICBBZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgZW51bTp1aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNl
LCBlbnVtOnVpbnQ4X3QgSlNDOjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcgbWVz
c2FnZSwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIHJlcXVlc3RJRCkKKyAgICBB
ZGRDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgZW51bTp1
aW50OF90IEpTQzo6TWVzc2FnZVNvdXJjZSBtZXNzYWdlU291cmNlLCBlbnVtOnVpbnQ4X3QgSlND
OjpNZXNzYWdlTGV2ZWwgbWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXI+IHJlcXVlc3RJRCkKICAgICBTZW5k
Q1NQVmlvbGF0aW9uUmVwb3J0KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBVUkwg
cmVwb3J0VVJMLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcG9ydERhdGEpCiAgICAgU2VuZENP
RVBQb2xpY3lJbmhlcml0ZW5jZVZpb2xhdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBlbWJlZGRlck9yaWdpbiwg
U3RyaW5nIGVuZHBvaW50LCBlbnVtOmJvb2wgV2ViQ29yZTo6Q09FUERpc3Bvc2l0aW9uIGRpc3Bv
c2l0aW9uLCBTdHJpbmcgdHlwZSwgVVJMIGJsb2NrZWRVUkwpCiAgICAgU2VuZENPRVBDT1JQVmlv
bGF0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIGVtYmVkZGVyT3JpZ2luLCBTdHJpbmcgZW5kcG9pbnQsIGVudW06
Ym9vbCBXZWJDb3JlOjpDT0VQRGlzcG9zaXRpb24gZGlzcG9zaXRpb24sIGVudW06dWludDhfdCBX
ZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBVUkwgYmxvY2tl
ZFVSTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0KaW5kZXggMDE2ZGQzNGM3NDMxNDIzMjI4OWU5ZjM2OWEzMGU2OTNmMWE4YmRjOS4u
M2U2ZWQwOGNhNjAyYzI2ZmFhZTdjMmI3OWIxNWRlM2M0ZjliNDI2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTYyNywx
MCArNjI3LDkgQEAgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdCogV2ViUGFnZTo6YWNjZXNz
aWJpbGl0eVJlbW90ZU9iamVjdCgpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgV2ViUGFnZTo6
cGxhdGZvcm1DYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
Citib29sIFdlYlBhZ2U6OnBsYXRmb3JtQ2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIFtOU1VSTENvbm5lY3Rpb24gY2FuSGFuZGxlUmVxdWVz
dDpyZXF1ZXN0Lm5zVVJMUmVxdWVzdChIVFRQQm9keVVwZGF0ZVBvbGljeTo6RG9Ob3RVcGRhdGVI
VFRQQm9keSldOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNob3VsZERlbGF5V2luZG93T3JkZXJpbmdF
dmVudChjb25zdCBXZWJLaXQ6OldlYk1vdXNlRXZlbnQmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDdhYTgzZGQ0OTc5OTI0OTgyMzZjYzJlMzc1M2Y2NDUx
ZGFiODQ2NzguLmM2YzY3NzI2MTBmNTczM2E2YjRjNzcwNzQwYjYzMDNjZDdkZjUyZmUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMS0xMS0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIE5ldyBzcGVjOiBCbG9jayBleHRlcm5hbCBwcm90b2NvbCBoYW5kbGVyIGluIHNhbmRib3hl
ZCBmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTcyNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQ0OTgxOTI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdl
LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9u
Lm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMTEtMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gTWFpbCBjb21wb3NlIGJlY29tZXMg
dW5yZXNwb25zaXZlIGFmdGVyIHBhc3RpbmcgaW4gdGV4dCBhbmQgYXR0ZW1wdGluZyB0byB0eXBl
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmln
YXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL05hdmlnYXRp
b24ubW0KaW5kZXggMDUxZjlhNzc5OGIzMzdmMWUyYzNlZjRkY2M3NDA2ZjU2MmRlMzI2Yi4uNmQ4
MDA0NzNlNDIzNDViMDA1MWNmNzRlMjliZjUzZDUyYTgyODY3MSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTmF2aWdhdGlvbi5tbQpAQCAtODIzLDMg
KzgyMywxOTAgQEAgVEVTVChXS05hdmlnYXRpb24sIFNpbXVsdGFuZW91c05hdmlnYXRpb25XaXRo
Rm9udHNGaW5pc2hlcykKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgp
XTsKICAgICBVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CiB9CisKK1RFU1QoV0tOYXZp
Z2F0aW9uLCBMb2FkUmFkYXJVUkxGcm9tU2FuZGJveGVkRnJhbWVBbGxvd1BvcHVwcykKK3sKKyAg
ICBjb25zdCBjaGFyKiBtYWluSFRNTCA9ICI8aWZyYW1lIHNyYz0nZnJhbWUuaHRtbCcgc2FuZGJv
eD0nYWxsb3ctc2NyaXB0cyBhbGxvdy1wb3B1cHMnPjwvaWZyYW1lPiI7CisgICAgY29uc3QgY2hh
ciogZnJhbWVIVE1MID0gIjxhIGlkPSd0ZXN0TGluaycgaHJlZj0ncmRhcjovLzg0NDk4MTkyJz5M
aW5rPC9hPjxzY3JpcHQ+c2V0VGltZW91dCgoKSA9PiB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0TGluaycpLmNsaWNrKCkgfSwgMCk7PC9zY3JpcHQ+IjsKKworICAgIHVzaW5nIG5hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJOworICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAi
LyIsIHsgbWFpbkhUTUwgfSB9LAorICAgICAgICB7ICIvZnJhbWUuaHRtbCIsIHsgZnJhbWVIVE1M
IH0gfSwKKyAgICB9KTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2ViVmlldyBu
ZXddKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmlnYXRpb25EZWxlZ2F0
ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0
KCldOworCisgICAgX19ibG9jayBib29sIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gZmFsc2U7Cisg
ICAgZGVsZWdhdGUuZ2V0KCkuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IF4oV0tO
YXZpZ2F0aW9uQWN0aW9uICphY3Rpb24sIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5KSkgeworICAgICAgICBpZiAoW2FjdGlvbi5yZXF1ZXN0LlVSTC5z
Y2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAicmRhciJdKSB7CisgICAgICAgICAgICBkaWRUcnlUb0xv
YWRSYWRhclVSTCA9IHRydWU7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3lDYW5jZWwpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsKKyAgICB9Owor
CisgICAgX19ibG9jayBib29sIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIGRlbGVn
YXRlLmdldCgpLmRpZEZpbmlzaE5hdmlnYXRpb24gPSBeKFdLV2ViVmlldyAqLCBXS05hdmlnYXRp
b24gKikgeworICAgICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSB0cnVlOworICAgIH07CisKKyAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBVdGlsOjpydW4o
JmZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAgICBVdGlsOjpydW4oJmRpZFRyeVRvTG9hZFJhZGFy
VVJMKTsKK30KKworVEVTVChXS05hdmlnYXRpb24sIExvYWRSYWRhclVSTEZyb21TYW5kYm94ZWRG
cmFtZUFsbG93VG9wTmF2aWdhdGlvbikKK3sKKyAgICBjb25zdCBjaGFyKiBtYWluSFRNTCA9ICI8
aWZyYW1lIHNyYz0nZnJhbWUuaHRtbCcgc2FuZGJveD0nYWxsb3ctc2NyaXB0cyBhbGxvdy10b3At
bmF2aWdhdGlvbic+PC9pZnJhbWU+IjsKKyAgICBjb25zdCBjaGFyKiBmcmFtZUhUTUwgPSAiPGEg
aWQ9J3Rlc3RMaW5rJyBocmVmPSdyZGFyOi8vODQ0OTgxOTInPkxpbms8L2E+PHNjcmlwdD5zZXRU
aW1lb3V0KCgpID0+IHsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RMaW5rJykuY2xpY2so
KSB9LCAwKTs8L3NjcmlwdD4iOworCisgICAgdXNpbmcgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEk7
CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBtYWluSFRNTCB9IH0s
CisgICAgICAgIHsgIi9mcmFtZS5odG1sIiwgeyBmcmFtZUhUTUwgfSB9LAorICAgIH0pOworCisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIFt3ZWJW
aWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBfX2Jsb2Nr
IGJvb2wgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSBmYWxzZTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5k
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gXihXS05hdmlnYXRpb25BY3Rpb24gKmFj
dGlvbiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kp
KSB7CisgICAgICAgIGlmIChbYWN0aW9uLnJlcXVlc3QuVVJMLnNjaGVtZSBpc0VxdWFsVG9TdHJp
bmc6QCJyZGFyIl0pIHsKKyAgICAgICAgICAgIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gdHJ1ZTsK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUNh
bmNlbCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cpOworICAgIH07CisKKyAgICBfX2Jsb2NrIGJvb2wg
ZmluaXNoZWROYXZpZ2F0aW9uID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkRmluaXNo
TmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGZp
bmlzaGVkTmF2aWdhdGlvbiA9IHRydWU7CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1
ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIFV0aWw6OnJ1bigmZmluaXNoZWROYXZpZ2F0aW9u
KTsKKworICAgIFV0aWw6OnJ1bigmZGlkVHJ5VG9Mb2FkUmFkYXJVUkwpOworfQorCitURVNUKFdL
TmF2aWdhdGlvbiwgTG9hZFJhZGFyVVJMRnJvbVNhbmRib3hlZEZyYW1lV2l0aFVzZXJHZXN0dXJl
KQoreworICAgIGNvbnN0IGNoYXIqIG1haW5IVE1MID0gIjxpZnJhbWUgc3JjPSdmcmFtZS5odG1s
JyBzYW5kYm94PSdhbGxvdy1zY3JpcHRzIGFsbG93LXRvcC1uYXZpZ2F0aW9uLWJ5LXVzZXItYWN0
aXZhdGlvbic+PC9pZnJhbWU+IjsKKyAgICBjb25zdCBjaGFyKiBmcmFtZUhUTUwgPSAiPGEgaWQ9
J3Rlc3RMaW5rJyBocmVmPSdyZGFyOi8vODQ0OTgxOTInPkxpbms8L2E+PC9zY3JpcHQ+IjsKKwor
ICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOworICAgIEhUVFBTZXJ2ZXIgc2VydmVy
KHsKKyAgICAgICAgeyAiLyIsIHsgbWFpbkhUTUwgfSB9LAorICAgICAgICB7ICIvZnJhbWUuaHRt
bCIsIHsgZnJhbWVIVE1MIH0gfSwKKyAgICB9KTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5h
dmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdh
dGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgX19ibG9jayBSZXRhaW5QdHI8V0tGcmFtZUluZm8+
IGlmcmFtZTsKKyAgICBfX2Jsb2NrIGJvb2wgZGlkVHJ5VG9Mb2FkUmFkYXJVUkwgPSBmYWxzZTsK
KyAgICBkZWxlZ2F0ZS5nZXQoKS5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gXihX
S05hdmlnYXRpb25BY3Rpb24gKmFjdGlvbiwgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3kpKSB7CisgICAgICAgIGlmICghYWN0aW9uLnRhcmdldEZyYW1l
LmlzTWFpbkZyYW1lKQorICAgICAgICAgICAgaWZyYW1lID0gYWN0aW9uLnRhcmdldEZyYW1lOwor
ICAgICAgICBpZiAoW2FjdGlvbi5yZXF1ZXN0LlVSTC5zY2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAi
cmRhciJdKSB7CisgICAgICAgICAgICBkaWRUcnlUb0xvYWRSYWRhclVSTCA9IHRydWU7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lDYW5jZWwp
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeUFsbG93KTsKKyAgICB9OworCisgICAgX19ibG9jayBib29sIGZpbmlz
aGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIGRlbGVnYXRlLmdldCgpLmRpZEZpbmlzaE5hdmln
YXRpb24gPSBeKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKikgeworICAgICAgICBmaW5pc2hl
ZE5hdmlnYXRpb24gPSB0cnVlOworICAgIH07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpz
ZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisK
KyAgICBBU1NFUlRfVFJVRSghIWlmcmFtZSk7CisKKyAgICAvLyBSdW5uaW5nIEphdmFzY3JpcHQg
c2ltdWxhdGVzIGEgdXNlciBnZXN0dXJlIHNvIHRoZSBuYXZpZ2F0aW9uIHNob3VsZCBiZSBwZXJt
aXR0ZWQgZHVlIHRvICdhbGxvdy10b3AtbmF2aWdhdGlvbi1ieS11c2VyLWFjdGl2YXRpb24nLgor
ICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0TGluaycpLmNsaWNrKCkiIGluRnJhbWU6aWZyYW1lLmdldCgpIGluQ29udGVudFdvcmxk
OldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworCisgICAg
VXRpbDo6cnVuKCZkaWRUcnlUb0xvYWRSYWRhclVSTCk7Cit9CisKK1RFU1QoV0tOYXZpZ2F0aW9u
LCBMb2FkUmFkYXJVUkxGcm9tU2FuZGJveGVkRnJhbWUpCit7CisgICAgY29uc3QgY2hhciogbWFp
bkhUTUwgPSAiPGlmcmFtZSBzcmM9J2ZyYW1lLmh0bWwnIHNhbmRib3g9J2FsbG93LXNjcmlwdHMn
PjwvaWZyYW1lPiI7CisgICAgY29uc3QgY2hhciogZnJhbWVIVE1MID0gIjxhIGlkPSd0ZXN0TGlu
aycgaHJlZj0ncmRhcjovLzg0NDk4MTkyJz5MaW5rPC9hPjxzY3JpcHQ+c2V0VGltZW91dCgoKSA9
PiB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0TGluaycpLmNsaWNrKCkgfSwgMCk7PC9z
Y3JpcHQ+IjsKKworICAgIHVzaW5nIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJOworICAgIEhUVFBT
ZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiLyIsIHsgbWFpbkhUTUwgfSB9LAorICAgICAgICB7
ICIvZnJhbWUuaHRtbCIsIHsgZnJhbWVIVE1MIH0gfSwKKyAgICB9KTsKKworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZp
Z2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworCisgICAgX19ibG9jayBib29sIGRpZFRy
eVRvTG9hZFJhZGFyVVJMID0gZmFsc2U7CisgICAgZGVsZWdhdGUuZ2V0KCkuZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IF4oV0tOYXZpZ2F0aW9uQWN0aW9uICphY3Rpb24sIHZvaWQg
KF5jb21wbGV0aW9uSGFuZGxlcikoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSkgeworICAgICAg
ICBpZiAoW2FjdGlvbi5yZXF1ZXN0LlVSTC5zY2hlbWUgaXNFcXVhbFRvU3RyaW5nOkAicmRhciJd
KSB7CisgICAgICAgICAgICBkaWRUcnlUb0xvYWRSYWRhclVSTCA9IHRydWU7CisgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lDYW5jZWwpOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeUFsbG93KTsKKyAgICB9OworCisgICAgX19ibG9jayBib29sIGZpbmlzaGVkTmF2
aWdhdGlvbiA9IGZhbHNlOworICAgIGRlbGVnYXRlLmdldCgpLmRpZEZpbmlzaE5hdmlnYXRpb24g
PSBeKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24gKikgeworICAgICAgICBmaW5pc2hlZE5hdmln
YXRpb24gPSB0cnVlOworICAgIH07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIu
cmVxdWVzdCgpXTsKKyAgICBVdGlsOjpydW4oJmZpbmlzaGVkTmF2aWdhdGlvbik7CisKKyAgICBV
dGlsOjpzbGVlcCgwLjUpOworCisgICAgRVhQRUNUX0ZBTFNFKGRpZFRyeVRvTG9hZFJhZGFyVVJM
KTsKK30KKworVEVTVChXS05hdmlnYXRpb24sIExvYWRSYWRhclVSTEZyb21TYW5kYm94ZWRGcmFt
ZU1pc3NpbmdVc2VyR2VzdHVyZSkKK3sKKyAgICBjb25zdCBjaGFyKiBtYWluSFRNTCA9ICI8aWZy
YW1lIHNyYz0nZnJhbWUuaHRtbCcgc2FuZGJveD0nYWxsb3ctc2NyaXB0cyBhbGxvdy10b3AtbmF2
aWdhdGlvbi1ieS11c2VyLWFjdGl2YXRpb24nPjwvaWZyYW1lPiI7CisgICAgY29uc3QgY2hhciog
ZnJhbWVIVE1MID0gIjxhIGlkPSd0ZXN0TGluaycgaHJlZj0ncmRhcjovLzg0NDk4MTkyJz5MaW5r
PC9hPjxzY3JpcHQ+c2V0VGltZW91dCgoKSA9PiB7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0TGluaycpLmNsaWNrKCkgfSwgMCk7PC9zY3JpcHQ+IjsKKworICAgIHVzaW5nIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJOworICAgIEhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiLyIs
IHsgbWFpbkhUTUwgfSB9LAorICAgICAgICB7ICIvZnJhbWUuaHRtbCIsIHsgZnJhbWVIVE1MIH0g
fSwKKyAgICB9KTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1dLV2ViVmlldyBuZXdd
KTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBu
ZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCld
OworCisgICAgX19ibG9jayBib29sIGRpZFRyeVRvTG9hZFJhZGFyVVJMID0gZmFsc2U7CisgICAg
ZGVsZWdhdGUuZ2V0KCkuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IF4oV0tOYXZp
Z2F0aW9uQWN0aW9uICphY3Rpb24sIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlcikoV0tOYXZpZ2F0
aW9uQWN0aW9uUG9saWN5KSkgeworICAgICAgICBpZiAoW2FjdGlvbi5yZXF1ZXN0LlVSTC5zY2hl
bWUgaXNFcXVhbFRvU3RyaW5nOkAicmRhciJdKSB7CisgICAgICAgICAgICBkaWRUcnlUb0xvYWRS
YWRhclVSTCA9IHRydWU7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXS05hdmlnYXRp
b25BY3Rpb25Qb2xpY3lDYW5jZWwpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93KTsKKyAgICB9OworCisg
ICAgX19ibG9jayBib29sIGZpbmlzaGVkTmF2aWdhdGlvbiA9IGZhbHNlOworICAgIGRlbGVnYXRl
LmdldCgpLmRpZEZpbmlzaE5hdmlnYXRpb24gPSBeKFdLV2ViVmlldyAqLCBXS05hdmlnYXRpb24g
KikgeworICAgICAgICBmaW5pc2hlZE5hdmlnYXRpb24gPSB0cnVlOworICAgIH07CisKKyAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBVdGlsOjpydW4oJmZp
bmlzaGVkTmF2aWdhdGlvbik7CisKKyAgICBVdGlsOjpzbGVlcCgwLjUpOworCisgICAgRVhQRUNU
X0ZBTFNFKGRpZFRyeVRvTG9hZFJhZGFyVVJMKTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>