<?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>231989</bug_id>
          
          <creation_ts>2021-10-19 15:07:09 -0700</creation_ts>
          <short_desc>Content offset in this codepen when switching tabs</short_desc>
          <delta_ts>2021-10-22 20:25:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</component>
          <version>Safari Technology Preview</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=232148</see_also>
          <bug_file_loc>https://codepen.io/isladjan/pen/abdyPBw</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ayumi_kojima</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>jamesr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1806351</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-19 15:07:09 -0700</bug_when>
    <thetext>Load https://codepen.io/isladjan/pen/abdyPBw and scroll in the lower pane. Now switch to another tab in Safari, and switch back. The bottom content is now entirely or partially missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806372</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-19 15:27:28 -0700</bug_when>
    <thetext>The compositing layers for the RenderSVGRoot and its siblings has different positions after switching tabs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806465</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-19 20:06:40 -0700</bug_when>
    <thetext>I think this is scrolling tree related. When we rebuild the scrolling tree after the view is reattached on tab switch, the iframe&apos;s scrolling tree node has a 0,0 scroll position rather than the correct one, causing the position:fixed to get mis-positioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807015</commentid>
    <comment_count>3</comment_count>
      <attachid>441985</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-20 21:58:12 -0700</bug_when>
    <thetext>Created attachment 441985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807263</commentid>
    <comment_count>4</comment_count>
      <attachid>442049</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-21 11:08:54 -0700</bug_when>
    <thetext>Created attachment 442049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807351</commentid>
    <comment_count>5</comment_count>
      <attachid>442063</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-21 14:11:01 -0700</bug_when>
    <thetext>Created attachment 442063
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807361</commentid>
    <comment_count>6</comment_count>
      <attachid>442063</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-10-21 14:33:41 -0700</bug_when>
    <thetext>Comment on attachment 442063
Patch

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

&gt; Tools/TestWebKitAPI/Tests/mac/ScrollingCoordinatorTests.mm:39
&gt; +static void synthesizeWheelEvents(NSView *view, CGPoint locationInView, CGSize delta)

Surely not unique to this test, should it be on TestWKWebView?

&gt; Tools/TestWebKitAPI/Tests/mac/ScrollingCoordinatorTests.mm:82
&gt; +        return [obj hasPrefix:@&quot;        (last committed scroll position&quot;];

Somewhat eww

&gt; Tools/TestWebKitAPI/Tests/mac/ScrollingCoordinatorTests.mm:115
&gt; +    NSWindow *hostWindow = [webView window];

Doesn&apos;t TestWKWebView have helpers for moving in and out of window too? I guess your test is platform specific so it doesn&apos;t really matter.

&gt; Tools/TestWebKitAPI/Tests/mac/ScrollingCoordinatorTests.mm:125
&gt; +    scrollY = waitForScrollEventAndReturnScrollY(webView.get(), [](WKWebView* webView) {

Star&apos;s on the wrong side etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807383</commentid>
    <comment_count>7</comment_count>
      <attachid>442070</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-21 15:07:31 -0700</bug_when>
    <thetext>Created attachment 442070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807391</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-21 15:14:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/84525145&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807445</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-21 16:58:43 -0700</bug_when>
    <thetext>Committed r284654 (243374@main): &lt;https://commits.webkit.org/243374@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442070.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807696</commentid>
    <comment_count>10</comment_count>
    <who name="">ayumi_kojima</who>
    <bug_when>2021-10-22 09:04:41 -0700</bug_when>
    <thetext>Reverted r284654 for reason:

Reverting because this commit caused scrolling tests to fail

Committed r284685 (243405@main): &lt;https://commits.webkit.org/243405@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807846</commentid>
    <comment_count>11</comment_count>
      <attachid>442190</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-22 13:21:47 -0700</bug_when>
    <thetext>Created attachment 442190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808016</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-22 20:25:30 -0700</bug_when>
    <thetext>Committed r284738 (243447@main): &lt;https://commits.webkit.org/243447@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442190.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441985</attachid>
            <date>2021-10-20 21:58:12 -0700</date>
            <delta_ts>2021-10-21 11:08:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231989-20211020215811.patch</filename>
            <type>text/plain</type>
            <size>26882</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVjMjM2MTc2ODkwZjZi
NjY4ZmUxOWVhZDYxMDhiYTljZjM3OTMyZi4uNzM5Yjc5OTIxYWM4MGIwN2M3NTcwYjJjMjUzOGI3
MmY1ZTQxNTFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTEwLTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbnRlbnQgb2Zm
c2V0IGluIHRoaXMgY29kZXBlbiB3aGVuIHN3aXRjaGluZyB0YWJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5ODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSB3ZXJlIHR3byBwcm9ibGVtcyB0
aGF0IG9jY3VycmVkIHdpdGggYXN5bmMtc2Nyb2xsYWJsZSBpZnJhbWVzIHdoZW4gdGhlaXIgYXNz
b2NpYXRlZAorICAgICAgICBXS1dlYlZpZXcgd2FzIHJlbW92ZWQgYW5kIHJlLWFkZGVkIHRvIHRo
ZSB2aWV3IGhpZXJhcmNoeSAoZS5nLiB3aGVuIHN3aXRjaGluZyB0YWJzKS4KKyAgICAgICAgVGhl
c2UgcmVzdWx0ZWQgaW4gbWlzcGxhY2VkIHBvc2l0aW9uOmZpeGVkIGNvbnRlbnQsIGFuZCB0aGUg
Zmlyc3QgdXNlciBzY3JvbGwgaW4gdGhlIAorICAgICAgICBpZnJhbWUgY2F1c2luZyB0aGUgc2Ny
b2xsIHBvc2l0aW9uIHRvIGp1bXAgYmFjayB0byB0aGUgdG9wLgorCisgICAgICAgIFRoZSBwb3Np
dG9uOmZpeGVkIGlzc3VlIHdhcyBjYXVzZWQgYnkgYW4gb3JkZXJpbmcgcHJvYmxlbSBpbgorICAg
ICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNo
aWxkcmVuKCkgd2hpY2ggcmVzdWx0ZWQgaW4gdGhlIGxheW91dAorICAgICAgICB2aWV3cG9ydCBi
ZWluZyBjb21wdXRlZCBpbmNvcnJlY3RseTsgd2UgY2FsbGVkIHVwZGF0ZVZpZXdwb3J0Rm9yQ3Vy
cmVudFNjcm9sbFBvc2l0aW9uKCkKKyAgICAgICAgYmVmb3JlIHNldHRpbmcgdGhlIG1pbiBhbmQg
bWF4IHNjcm9sbCBwb3NpdGlvbiwgc28gd2UnZCBhbHdheXMgY2xhbXAgdGhlIGxheW91dCB2aWV3
cG9ydCB0bworICAgICAgICBhIGxvY2F0aW9uIG9mIDAsMC4KKworICAgICAgICBUaGUgc2Vjb25k
IHNjcm9sbCBwb3NpdGlvbiByZXNldCBpc3N1ZSB3YXMgY2F1c2VkIGJ5IHRoZSBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZSdzCisgICAgICAgIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uIHJldmVy
dGluZyB0byBhIHN0YWxlIGFmdGVyIHJlLWF0dGFjaGluZyB0aGUgaWZyYW1lJ3Mgc2Nyb2xsaW5n
CisgICAgICAgIHN1YnRyZWUuIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKCkgaGFzIGNvZGUgdG8gc2V0CisgICAgICAgIG1fY3VycmVudFNjcm9s
bFBvc2l0aW9uIGZyb20gdGhlIHN0YXRlIHRyZWUgbm9kZSdzIHNjcm9sbCBwb3NpdGlvbiBvbiBm
aXJzdCBjb21taXQ7CisgICAgICAgIHRoZSBpc3N1ZSB3YXMgdGhhdCBTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUncyBzY3JvbGxQb3NpdGlvbigpIHdhcyBub3QgdXBkYXRlZCBvbiBldmVyeQor
ICAgICAgICBzY3JvbGwsIG9ubHkgd2hlbiBzb21ldGhpbmcgdHJpZ2dlcmVkIGEgc2Nyb2xsaW5n
IHRyZWUgY29tbWl0LgorCisgICAgICAgIEZpeCBieSBzaWxlbnRseSB1cGRhdGluZyBTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUncyBzY3JvbGxQb3NpdGlvbigpIHdoZW4gd2UgZ2V0CisgICAg
ICAgIG5vdGlmaWNhdGlvbnMgYmFjayBmcm9tIHRoZSBzY3JvbGxpbmcgdGhyZWFkIHRoYXQgYSBz
Y3JvbGwgaGFwcGVuZWQuCisKKyAgICAgICAgQm90aCBmaXhlcyBhcmUgdGVzdGVkIGJ5IHRoZSBT
Y3JvbGxpbmdDb29yZGluYXRvclRlc3RzLlNjcm9sbGluZ1RyZWVBZnRlckRldGFjaFJlYXR0YWNo
IEFQSSB0ZXN0LgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Ojp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnN5bmNTY3JvbGxQb3NpdGlvbik6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmg6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6aW5zZXJ0Tm9kZSk6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJl
Zm9yZUNoaWxkcmVuKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjOjpjb21taXRUcmVlU3RhdGVJZk5lZWRlZCk6CisKIDIwMjEtMTAtMjAg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlLWV2
YWx1YXRlIHZpZXdwb3J0IGRlcGVuZGVudCBtZWRpYSBxdWVyaWVzIGlmIHRoZSB2aWV3cG9ydCBk
b2Vzbid0IGNoYW5nZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA1NDgzYjIyZDY5YzljNDQy
MDk5ZGIwZGE1ZGI3MDNiMGYxMTIyNGY4Li42MGUzZDdhYjg5Nzk2ZDFlNjMxMTFiMTY3Zjc1OWFl
ZTBkYzgxNWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtNDUxLDYgKzQ1MSwxMiBAQCB2
b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJB
c3luY1Njcm9sbChTY3JvbGxpbmdObwogICAgICAgICAgICAgbV9wYWdlLT5lZGl0b3JDbGllbnQo
KS5zdWJGcmFtZVNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogICAgIH0KIAorICAgIGF1dG8qIG5v
ZGUgPSBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c3RhdGVOb2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlE
KTsKKyAgICBpZiAoaXM8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihub2RlKSkgeworICAg
ICAgICBhdXRvJiBzY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlPigqbm9kZSk7CisgICAgICAgIHNjcm9sbGluZ05vZGUuc3luY1Njcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uKTsKKyAgICB9CisKICAgICBpZiAoc2Nyb2xsaW5nTm9kZUlEID09IGZy
YW1lVmlldy5zY3JvbGxpbmdOb2RlSUQoKSkgewogICAgICAgICByZWNvbmNpbGVTY3JvbGxpbmdT
dGF0ZShmcmFtZVZpZXcsIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Ny
b2xsVHlwZSwgVmlld3BvcnRSZWN0U3RhYmlsaXR5OjpTdGFibGUsIHNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24pOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApp
bmRleCA4YmE4Y2JiY2NhZmZmYmJkYzZiNTgwYjdlYmM5ZjQ2NzFlNmNiMjljLi5hZDdjYmNmZmFj
OGM0MzI3MTgxOWJkZjc4NzhmZTAxNjU5MThlNzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5j
cHAKQEAgLTE0Myw2ICsxNDMsMTEgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2kKICAgICBzZXRQ
cm9wZXJ0eUNoYW5nZWQoUHJvcGVydHk6OlNjcm9sbFBvc2l0aW9uKTsKIH0KIAordm9pZCBTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnN5bmNTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbikKK3sKKyAgICBtX3Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9z
aXRpb247Cit9CisKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxP
cmlnaW4oY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsKICAgICBpZiAobV9zY3JvbGxP
cmlnaW4gPT0gc2Nyb2xsT3JpZ2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAppbmRleCA0NTg1NDJj
ZWU4ODFmMTk3NDFhN2Q4YjI5MjUxZTY5MWRjMzc1NTFjLi42NzBjYTkzNzI0NTU0NGMzMTYyODAw
NGFiMDBiOWRiY2RkNjQzMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaApAQCAtNTQsNiArNTQs
OSBAQCBwdWJsaWM6CiAgICAgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbFBvc2l0aW9uOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAKKyAgICAvLyBEb2VzIG5vdCB0
cmlnZ2VyIGEgc2Nyb2xsaW5nIHRyZWUgY29tbWl0LgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c3luY1Njcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKKwogICAgIGNvbnN0IEludFBv
aW50JiBzY3JvbGxPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9yaWdpbjsgfQogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsT3JpZ2luKGNvbnN0IEludFBvaW50Jik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRy
ZWUuY3BwCmluZGV4IGI3MzQwMTQyMjE2YTU4MjYwOTdkZTc3ZDQ5NGI2NjhlMTgzOWE5NjQuLjUx
ZWEzMmIyMDJhNDFjMzA5OWQ0ODEyYWE2YzgyZGYwNzgzNjk1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcApAQCAtMTc2
LDcgKzE3Niw3IEBAIFNjcm9sbGluZ05vZGVJRCBTY3JvbGxpbmdTdGF0ZVRyZWU6Omluc2VydE5v
ZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sCiAKICAgICAgICAgaWYgKHBhcmVu
dElEKSB7CiAgICAgICAgICAgICBpZiAoYXV0byB1bnBhcmVudGVkTm9kZSA9IG1fdW5wYXJlbnRl
ZE5vZGVzLnRha2UobmV3Tm9kZUlEKSkgewotICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxpbmdUcmVlLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAiIDw8IHRoaXMg
PDwgIiBpbnNlcnROb2RlICIgPDwgbmV3Tm9kZUlEIDw8ICIgZ2V0dGluZyBub2RlIGZyb20gdW5w
YXJlbnRlZCBub2RlcyIpOworICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxp
bmdUcmVlLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAiIDw8IHRoaXMgPDwgIiBpbnNl
cnROb2RlIHJlYXR0YWNoaW5nIG5vZGUgIiA8PCBuZXdOb2RlSUQpOwogICAgICAgICAgICAgICAg
IG5ld05vZGUgPSB1bnBhcmVudGVkTm9kZS5nZXQoKTsKICAgICAgICAgICAgICAgICBub2RlV2Fz
UmVhdHRhY2hlZFJlY3Vyc2l2ZSgqdW5wYXJlbnRlZE5vZGUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGUuY3BwCmluZGV4IDI0ZTA5ZDc2MmFkNjNmYzJlNTFmMjYyNDgzMzQ3MTZiZDFl
OTRhODguLmY4MzBjY2Y0MDQ0M2U1ODBlOWZiNjQ0NmFmM2JlN2M1MTk0OWZlNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCkBAIC03MiwxMCArNzIsOCBAQCB2b2lkIFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29u
c3QgU2Nyb2xsaW5nUwogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVOb2RlOjpQcm9wZXJ0eTo6Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSkp
CiAgICAgICAgIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSA9IHN0YXRlLmZp
eGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKTsKIAotICAgIGlmIChzdGF0ZS5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6TGF5b3V0Vmlld3Bv
cnQpKSB7CisgICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5v
ZGU6OlByb3BlcnR5OjpMYXlvdXRWaWV3cG9ydCkpCiAgICAgICAgIG1fbGF5b3V0Vmlld3BvcnQg
PSBzdGF0ZS5sYXlvdXRWaWV3cG9ydCgpOwotICAgICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJl
bnRTY3JvbGxQb3NpdGlvbih7IH0pOwotICAgIH0KIAogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6TWluTGF5b3V0Vmlld3BvcnRP
cmlnaW4pKQogICAgICAgICBtX21pbkxheW91dFZpZXdwb3J0T3JpZ2luID0gc3RhdGUubWluTGF5
b3V0Vmlld3BvcnRPcmlnaW4oKTsKQEAgLTg1LDYgKzgzLDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3Jv
bGxpbmdTCiAKICAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
Tm9kZTo6UHJvcGVydHk6Ok92ZXJyaWRlVmlzdWFsVmlld3BvcnRTaXplKSkKICAgICAgICAgbV9v
dmVycmlkZVZpc3VhbFZpZXdwb3J0U2l6ZSA9IHN0YXRlLm92ZXJyaWRlVmlzdWFsVmlld3BvcnRT
aXplKCk7CisKKyAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
Tm9kZTo6UHJvcGVydHk6OkxheW91dFZpZXdwb3J0KSkgeworICAgICAgICAvLyBUaGlzIHJlcXVp
cmVzIHRoYXQgbWluTGF5b3V0Vmlld3BvcnRPcmlnaW4gYW5kIG1heExheW91dFZpZXdwb3J0T3Jp
Z2luIGhhdmUgYmVlbiB1cGRhdGVkLgorICAgICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRT
Y3JvbGxQb3NpdGlvbih7IH0pOworICAgIH0KIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlOjpzY3JvbGxQb3NpdGlvbkFuZExheW91dFZpZXdwb3J0TWF0Y2goY29uc3Qg
RmxvYXRQb2ludCYgcG9zaXRpb24sIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBvdmVycmlkZUxh
eW91dFZpZXdwb3J0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDljY2Y5NzRkOTA5ODdi
ZWY4MGM4N2I5MDRlOGRkMDM1ODNlZjIxZGMuLjliNDBkMDVkMWU3YjAxYTZlN2Q2YTdmMWZkNDhh
ZmY3MWNlNzU2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTMzNiw3ICszMzYsMTAg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0
cmVhbSYgdHMsIE9wdGlvblNldDxTY3JvbGwKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZWFj
aGFibGUgY29udGVudCBzaXplIiwgbV9yZWFjaGFibGVDb250ZW50c1NpemUpOwogICAgIHRzLmR1
bXBQcm9wZXJ0eSgibGFzdCBjb21taXR0ZWQgc2Nyb2xsIHBvc2l0aW9uIiwgbV9sYXN0Q29tbWl0
dGVkU2Nyb2xsUG9zaXRpb24pOwogCi0gICAgaWYgKG1fc2Nyb2xsT3JpZ2luICE9IEludFBvaW50
KCkpCisgICAgaWYgKCFtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbi5pc1plcm8oKSkKKyAgICAgICAg
dHMuZHVtcFByb3BlcnR5KCJzY3JvbGwgcG9zaXRpb24iLCBtX2N1cnJlbnRTY3JvbGxQb3NpdGlv
bik7CisKKyAgICBpZiAoIW1fc2Nyb2xsT3JpZ2luLmlzWmVybygpKQogICAgICAgICB0cy5kdW1w
UHJvcGVydHkoInNjcm9sbCBvcmlnaW4iLCBtX3Njcm9sbE9yaWdpbik7CiAKICAgICBpZiAobV9z
bmFwT2Zmc2V0c0luZm8uaG9yaXpvbnRhbFNuYXBPZmZzZXRzLnNpemUoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbQppbmRleCBiM2Q0OTY4YjM1ODIzOGQ3MDE5MzhhNmQ4MzU3NDVmMTEwNDdjY2U0
Li44OTI0MmM2MWEzYjUwYjhmZDY3ZmIyZDcwOTc3OGUzMzNhM2Q5NTgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjLm1tCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRv
ck1hYzo6Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKQogICAgIGlmICghc2Nyb2xsaW5nU3RhdGVU
cmVlKCktPmhhc0NoYW5nZWRQcm9wZXJ0aWVzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExP
R19XSVRIX1NUUkVBTShTY3JvbGxpbmdUcmVlLCBzdHJlYW0gPDwgc2Nyb2xsaW5nU3RhdGVUcmVl
QXNUZXh0KGRlYnVnU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JzKSk7CisgICAgTE9H
X1dJVEhfU1RSRUFNKFNjcm9sbGluZ1RyZWUsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWM6OmNvbW1pdFRyZWVTdGF0ZTogc3RhdGUgdHJlZSAiIDw8IHNjcm9sbGluZ1N0YXRlVHJl
ZUFzVGV4dChkZWJ1Z1Njcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ycykpOwogCiAgICAg
YXV0byBzdGF0ZVRyZWUgPSBzY3JvbGxpbmdTdGF0ZVRyZWUoKS0+Y29tbWl0KExheWVyUmVwcmVz
ZW50YXRpb246OlBsYXRmb3JtTGF5ZXJSZXByZXNlbnRhdGlvbik7CiAgICAgc2Nyb2xsaW5nVHJl
ZSgpLT5jb21taXRUcmVlU3RhdGUoV1RGTW92ZShzdGF0ZVRyZWUpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNmY2MTJlNmQ0MWU5ZjZiYWVh
NzU4ODI2ZGQ2MzJjN2Y3NWQzMTI2Li44ZmM3NTU0OGJhMTQzM2E1MjNjZWJhODQyZGQyNDgzOWZl
MGUxNGJlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjggQEAKKzIwMjEtMTAtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udGVudCBvZmZzZXQgaW4gdGhpcyBjb2RlcGVuIHdo
ZW4gc3dpdGNoaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTk4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFQSSB0ZXN0IHRoYXQgc2Nyb2xscyBhbiBpZnJhbWUgdmlhIHdoZWVsIGV2ZW50
cywgdGhlbiBkZXRhY2hlZCBhbmQgcmUtYXR0YWNoZXMgdGhlIHZpZXcuCisKKyAgICAgICAgVGhl
IHR3byB3aGVlbCBzY3JvbGxzIGFyZSBuZWNlc3NhcnkgdG8gZXhlcmNpc2UgdGhlICJzdGFsZSBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUKKyAgICAgICAgc2Nyb2xsIHBvc2l0aW9uIiBpc3N1
ZS4KKworICAgICAgICBUaGUgc2Nyb2xsaW5nIHRyZWUgZHVtcHMgdmFsaWRhdGUgdGhlIGxheW91
dCB2aWV3cG9ydCBwYXJ0IG9mIHRoZSBmaXguCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9TY3JvbGxpbmdDb29yZGluYXRvclRlc3RzLm1tOiBBZGRlZC4KKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OnN5bnRoZXNpemVXaGVlbEV2ZW50cyk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjp3YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OnNjcm9sbGluZ1RyZWVFbGlkaW5nTGFzdENvbW1pdHRlZFNjcm9s
bFBvc2l0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBv
YmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgb2JqZWN0QnlDYWxsaW5nQXN5bmNGdW5jdGlvbjp3aXRoQXJndW1lbnRzOmVy
cm9yOl0pOgorCiAyMDIxLTEwLTIwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25v
bWUub3JnPgogCiAgICAgICAgIERvIG5vdCB1c2Ugc3RyZXJyb3IoKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBjMTc5MTY3NmI1OGE1OTRhYTBlZjhiMzQ0ZGJhMWM1MGJjMmQ2YzFiLi4wNzgz
YzEwOTBiZjRjOTYxZDgyMzcwYjRhZGUzMzRiN2ZkMWQyNmE3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtODYsNiArODYsNyBAQAogCQkwRjRGRkE5RTFFRDNBQTg1MDBGNzExMUYgLyogU25h
cHNob3RWaWFSZW5kZXJJbkNvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjRGRkE5RDFFRDNBQTg1MDBGNzExMUYgLyogU25hcHNob3RWaWFS
ZW5kZXJJbkNvbnRleHQubW0gKi87IH07CiAJCTBGNTY1MUY3MUZDRTREREMwMDMxMEZCQyAvKiBO
b0hpc3RvcnlJdGVtU2Nyb2xsVG9GcmFnbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTY1MUY2MUZDRTREREIwMDMxMEZCQyAvKiBOb0hpc3Rv
cnlJdGVtU2Nyb2xsVG9GcmFnbWVudC5tbSAqLzsgfTsKIAkJMEY1NjUxRjkxRkNFNTEzNTAwMzEw
RkJDIC8qIHNjcm9sbC10by1hbmNob3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2NTFGODFGQ0U1MEU4MDAzMTBGQkMgLyogc2Ny
b2xsLXRvLWFuY2hvci5odG1sICovOyB9OworCQkwRkVGQUY2NDI3MUZDMkNEMDA1NzA0RDcgLyog
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUZBRjYzMjcxRkMyQ0QwMDU3MDRENyAvKiBTY3JvbGxpbmdD
b29yZGluYXRvclRlc3RzLm1tICovOyB9OwogCQkwRkYxMTM0RTIyRDY4Njc5MDA5QTgxREEgLyog
U2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjExMzREMjJENjg2NzkwMDlBODFEQSAvKiBTY3JvbGxW
aWV3U2Nyb2xsYWJpbGl0eVRlc3RzLm1tICovOyB9OwogCQkxMTVFQjM0MzFFRTBCQTAzMDAzQzJD
MEEgLyogVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExNUVCMzQyMUVFMEI3MjAwMDNDMkMwQSAvKiBW
aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tICovOyB9OwogCQkxMTcxQjI0RjIxOUY0OUNE
MDBDQjg5N0QgLyogRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmVfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExQjdGRDIxMjE5RjQ2
REQwMDY5QjI3RiAvKiBGaXJzdE1lYW5pbmdmdWxQYWludE1pbGVzdG9uZV9CdW5kbGUuY3BwICov
OyB9OwpAQCAtMTg1Nyw2ICsxODU4LDcgQEAKIAkJMEZDNkM0Q0UxNDEwMzRBRDAwNUI3RjBDIC8q
IE1ldGFBbGxvY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWV0YUFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRTQ0Nzk3
MUI3NkYxRTMwMDk0OThFQiAvKiBQYXJraW5nTG90LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBhcmtpbmdMb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkVBRTM2NzFCN0QxOUNCMDBDRTE3RjIgLyogQ29uZGl0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGRUZBRjYzMjcxRkMyQ0QwMDU3MDRENyAvKiBTY3JvbGxpbmdDb29y
ZGluYXRvclRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZGMTEzNEQyMkQ2ODY3OTAwOUE4MURBIC8qIFNjcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVz
dHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxWaWV3
U2Nyb2xsYWJpbGl0eVRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkZD
NDVBNDFCNzNFQkUyMDA4NUJENjIgLyogTG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE1
RUIzNDIxRUUwQjcyMDAwM0MyQzBBIC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWV3cG9ydFNpemVGb3JW
aWV3cG9ydFVuaXRzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzA4Nyw3ICsz
MDg5LDYgQEAKIAkJRjQ0QTUzMEYyMUI4OTc2OTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenps
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2xhc3NNZXRob2RTd2l6emxl
ci5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE1MzEwMjFCODk3NjkwMERCQjk5
QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbTsgcGF0aCA9IC4uL1Rlc3RS
dW5uZXJTaGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTdEMUYyNjhENUM2OTAwQjQ5QkI4IC8qIEltYWdlQW5hbHlz
aXNUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEltYWdlQW5hbHlzaXNUZXN0cy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQ0QTlBRjUyNjQ5QkJERDAwRTdDQjE2IC8q
IEltbWVkaWF0ZUFjdGlvblRlc3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltbWVkaWF0ZUFjdGlvblRl
c3RzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE5QUY2MjY0OUJCREQwMEU3
Q0IxNiAvKiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IElt
bWVkaWF0ZUFjdGlvblRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRD
NzlGQjIwRjlFNTBDMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblBsdWdJbi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0NEM3OUZEMjBGOUU4NzEwMDE0NDc4QyAvKiBQYXJzZXJZaWVsZFRv
a2VuVGVzdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VyWWllbGRUb2tlblRlc3RzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODIxLDcgKzQ4MjIsNiBAQAogCQkJCTUxRUIxMjU4
MjRDNjg1ODkwMDBDQjAzMCAvKiBISURHYW1lcGFkcy5tbSAqLywKIAkJCQk5QjRGOEZBMzE1OUQ1
MkIxMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCiAJCQkJOUIyNkZD
NkIxNTlEMDYxMDAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAqLywK
LQkJCQlGNDRBOUFGNTI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRpYXRlQWN0aW9uVGVzdHMuaCAq
LywKIAkJCQlGNDRBOUFGNjI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRpYXRlQWN0aW9uVGVzdHMu
bW0gKi8sCiAJCQkJQzUwN0U4QTYxNEM2NTQ1QjAwNUQ2QjNCIC8qIEluc3BlY3RvckJhci5tbSAq
LywKIAkJCQk1N0YxMEQ5MjFDN0U3QjM4MDBFQ0RGMzAgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1
c3RlZC5tbSAqLywKQEAgLTQ4NDEsNiArNDg0MSw3IEBACiAJCQkJQTU3QTM0RUYxNkFGNjc3MjAw
QzI1MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSAqLywKIAkJ
CQkzN0M3ODRERTE5N0M4RjJFMDAxMEE0OTYgLyogUmVuZGVyZWRJbWFnZUZyb21ET01Ob2RlLm1t
ICovLAogCQkJCTM3MjJDODY4MTQ2MUUwM0UwMEM0NUQwMCAvKiBSZW5kZXJlZEltYWdlRnJvbURP
TVJhbmdlLm1tICovLAorCQkJCTBGRUZBRjYzMjcxRkMyQ0QwMDU3MDRENyAvKiBTY3JvbGxpbmdD
b29yZGluYXRvclRlc3RzLm1tICovLAogCQkJCTI2MTUxNkQ1MTVCMEU2MDUwMEEyQzIwMSAvKiBT
ZXRBbmRVcGRhdGVDYWNoZU1vZGVsLm1tICovLAogCQkJCTUyQjhDRjk1MTU4NjhDRjAwMDI4MTA1
MyAvKiBTZXREb2N1bWVudFVSSS5tbSAqLywKIAkJCQlDNTQwRjc3NTE1MkU0REEwMDBBNDBDOEMg
LyogU2ltcGxpZnlNYXJrdXAubW0gKi8sCkBAIC01ODM3LDYgKzU4MzgsNyBAQAogCQkJCTk1MDk1
RjIwMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RDRkE3QUExRTQ1MTgzMjAwQzI0MzNEIC8qIFNhbXBsZU1hcC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDRTA5NDczNzIwNjMyMjNCMDAzQzlCQTAgLyogU2NoZW1lUmVnaXN0cnku
bW0gaW4gU291cmNlcyAqLywKKwkJCQkwRkVGQUY2NDI3MUZDMkNEMDA1NzA0RDcgLyogU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQzA5MzJCMjFDODcy
QzEwMDMwQzRCMCAvKiBTY3JvbGxpbmdEb2VzTm90UGF1c2VNZWRpYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RjEyMUE0MTFBRTYwMDQ0N0M0QyAvKiBTY3JvbGxQaW5uaW5nQmVoYXZpb3Jz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0MzRDQTFBMjJFNjVCQ0EwMDVEREIyNiAvKiBTY3Jv
bGxUb1JldmVhbFNlbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWFlMjMxMzg1ZWY4YTVlN2Y4ZDJjNTgwZjZmYWJiYTAwZjMzMTBhYQotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yVGVzdHMubW0KQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNp
bXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIHZvaWQgc3ludGhlc2l6ZVdoZWVsRXZlbnRzKE5T
VmlldyAqdmlldywgQ0dQb2ludCBsb2NhdGlvbkluVmlldywgQ0dTaXplIGRlbHRhKQoreworICAg
IFJldGFpblB0cjxDR0V2ZW50UmVmPiBjZ1Njcm9sbEV2ZW50ID0gYWRvcHRDRihDR0V2ZW50Q3Jl
YXRlU2Nyb2xsV2hlZWxFdmVudChudWxscHRyLCBrQ0dTY3JvbGxFdmVudFVuaXRQaXhlbCwgMiwg
ZGVsdGEuaGVpZ2h0LCBkZWx0YS53aWR0aCwgMCkpOworCisgICAgQ0dQb2ludCBsb2NhdGlvbklu
V2luZG93ID0gW3ZpZXcgY29udmVydFBvaW50OmxvY2F0aW9uSW5WaWV3IHRvVmlldzpuaWxdOwor
ICAgIENHUG9pbnQgbG9jYXRpb25Jbkdsb2JhbFNjcmVlbkNvb3JkaW5hdGVzID0gW1t2aWV3IHdp
bmRvd10gY29udmVydFBvaW50VG9TY3JlZW46bG9jYXRpb25JbldpbmRvd107CisgICAgbG9jYXRp
b25Jbkdsb2JhbFNjcmVlbkNvb3JkaW5hdGVzLnkgPSBbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmpl
Y3RBdEluZGV4OjBdIGZyYW1lXS5zaXplLmhlaWdodCAtIGxvY2F0aW9uSW5HbG9iYWxTY3JlZW5D
b29yZGluYXRlcy55OworICAgIENHRXZlbnRTZXRMb2NhdGlvbihjZ1Njcm9sbEV2ZW50LmdldCgp
LCBsb2NhdGlvbkluR2xvYmFsU2NyZWVuQ29vcmRpbmF0ZXMpOworICAgIAorICAgIE5TRXZlbnQq
IGV2ZW50ID0gW05TRXZlbnQgZXZlbnRXaXRoQ0dFdmVudDpjZ1Njcm9sbEV2ZW50LmdldCgpXTsK
KyAgICBbdmlldyBzY3JvbGxXaGVlbDpldmVudF07Cit9CisKK3N0YXRpYyBmbG9hdCB3YWl0Rm9y
U2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKFdLV2ViVmlldyogd2ViVmlldywgY29uc3Qgc3Rk
OjpmdW5jdGlvbjx2b2lkKFdLV2ViVmlldyopPiYgc2Nyb2xsVHJpZ2dlcikKK3sKKyAgICBib29s
IHJlY2VpdmVkU2Nyb2xsRXZlbnQgPSBmYWxzZTsKKyAgICBSZXRhaW5QdHI8aWQ+IGV2YWxSZXN1
bHQ7CisgICAgUmV0YWluUHRyPE5TRXJyb3I+IHN0cm9uZ0Vycm9yOworICAgIAorICAgIE5TU3Ry
aW5nICpzY3JpcHRTdHJpbmcgPSBAInJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyIg
XAorICAgICAgICAiICAgbGV0IGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdpZnJhbWUnKVswXTsiIFwKKyAgICAgICAgIiAgIGlmcmFtZS5jb250ZW50V2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKGV2ZW50KSA9PiByZXNvbHZlKGlmcmFtZS5jb250ZW50
V2luZG93LnNjcm9sbFkpKTsgIiBcCisgICAgICAgICJ9KSI7CisKKyAgICBbd2ViVmlldyBjYWxs
QXN5bmNKYXZhU2NyaXB0OnNjcmlwdFN0cmluZyBhcmd1bWVudHM6bmlsIGluRnJhbWU6bmlsIGlu
Q29udGVudFdvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpb
Jl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgZXZhbFJlc3VsdCA9IHJl
c3VsdDsKKyAgICAgICAgc3Ryb25nRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgcmVjZWl2ZWRTY3Jv
bGxFdmVudCA9IHRydWU7CisgICAgfV07CisKKyAgICBzY3JvbGxUcmlnZ2VyKHdlYlZpZXcpOwor
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcm9sbEV2ZW50KTsKKwor
ICAgIHJldHVybiBbZXZhbFJlc3VsdCBmbG9hdFZhbHVlXTsKK30KKworLy8gUmVtb3ZlICJsYXN0
IGNvbW1pdHRlZCBzY3JvbGwgcG9zaXRpb24iIGZvciB0aGUgaWZyYW1lJ3Mgbm9kZSwgd2hpY2gg
d2UgZXhwZWN0IHRvIGJlIGRpZmZlcmVudC4KK3N0YXRpYyBOU1N0cmluZyAqc2Nyb2xsaW5nVHJl
ZUVsaWRpbmdMYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24oTlNTdHJpbmcgKnNjcm9sbGluZ1Ry
ZWUpCit7CisgICAgTlNNdXRhYmxlQXJyYXkgKmxpbmVzID0gW1tbc2Nyb2xsaW5nVHJlZSBjb21w
b25lbnRzU2VwYXJhdGVkQnlDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0IG5ld2xpbmVD
aGFyYWN0ZXJTZXRdXSBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOworICAgIAorICAgIE5TSW5k
ZXhTZXQqIGxhc3RDb21taXR0ZWRMaW5lSW5kaWNlcyA9IFtsaW5lcyBpbmRleGVzT2ZPYmplY3Rz
UGFzc2luZ1Rlc3Q6XkJPT0woaWQgIF9Ob25udWxsIG9iaiwgTlNVSW50ZWdlciBpZHgsIEJPT0wg
KiBfTm9ubnVsbCBzdG9wKSB7CisgICAgICAgIHJldHVybiBbb2JqIGhhc1ByZWZpeDpAIiAgICAg
ICAgKGxhc3QgY29tbWl0dGVkIHNjcm9sbCBwb3NpdGlvbiJdOworICAgIH1dOworICAgIFtsaW5l
cyByZW1vdmVPYmplY3RzQXRJbmRleGVzOmxhc3RDb21taXR0ZWRMaW5lSW5kaWNlc107CisgICAg
cmV0dXJuIFtsaW5lcyBjb21wb25lbnRzSm9pbmVkQnlTdHJpbmc6QCJcbiJdOworfQorCitURVNU
KFNjcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMsIFNjcm9sbGluZ1RyZWVBZnRlckRldGFjaFJlYXR0
YWNoKQoreworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNTAwLCA1MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbiBhZGRUb1dpbmRvdzpZRVNdKTsKKyAgICAKKyAgICBOU1N0cmluZyAq
ZG9jdW1lbnRTdHJpbmcgPSBAIjxzdHlsZT5ib2R5IHsgaGVpZ2h0OiA1MDAwcHg7IH08L3N0eWxl
PiIgXAorICAgICAgICAiPGlmcmFtZSBzcmNkb2M9XCI8c3R5bGU+Ym9keSB7IGhlaWdodDogNTAw
MHB4OyB9PC9zdHlsZT48ZGl2IHN0eWxlPSdwb3NpdGlvbjpmaXhlZDsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6IGJsdWUnPjwvZGl2PlwiPjwvaWZyYW1lPiI7CisgICAg
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmRvY3VtZW50U3RyaW5n
XTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBh
dXRvIHNjcm9sbFkgPSB3YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKHdlYlZpZXcu
Z2V0KCksIFtdKFdLV2ViVmlldyogd2ViVmlldykgeworICAgICAgICBzeW50aGVzaXplV2hlZWxF
dmVudHMod2ViVmlldywgQ0dQb2ludE1ha2UoNTAsIDUwKSwgQ0dTaXplTWFrZSgwLCAtMTAwKSk7
CisgICAgfSk7CisgICAgRVhQRUNUX0VRKHNjcm9sbFksIDEwMCk7CisKKyAgICAvLyBTZW5kIGEg
c2Vjb25kIHdoZWVsIGV2ZW50IHRvIHRyaWdnZXIgcmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUoKSB0
aGF0IGRvZXMgbm90IGVuZCB1cCBpbiBzZXRTY3JvbGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9t
ZXRyeSgpIChzb21lIGNvbXBvc2l0aW5nIGNvZGUgZWFybHkgcmV0dXJucykuCisgICAgLy8gVGhp
cyB3b3VsZCBsZWF2ZSB0aGUgc2Nyb2xsaW5nIHN0YXRlIHRyZWUgd2l0aCBhIHN0YWxlIG1fc2Ny
b2xsUG9zaXRpb24uCisgICAgc2Nyb2xsWSA9IHdhaXRGb3JTY3JvbGxFdmVudEFuZFJldHVyblNj
cm9sbFkod2ViVmlldy5nZXQoKSwgW10oV0tXZWJWaWV3KiB3ZWJWaWV3KSB7CisgICAgICAgIHN5
bnRoZXNpemVXaGVlbEV2ZW50cyh3ZWJWaWV3LCBDR1BvaW50TWFrZSg1MCwgNTApLCBDR1NpemVN
YWtlKDAsIC0xMDApKTsKKyAgICB9KTsKKyAgICBFWFBFQ1RfRVEoc2Nyb2xsWSwgMjAwKTsKKwor
ICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKworICAgIE5TU3Ry
aW5nICpzY3JvbGxpbmdUcmVlQmVmb3JlID0gc2Nyb2xsaW5nVHJlZUVsaWRpbmdMYXN0Q29tbWl0
dGVkU2Nyb2xsUG9zaXRpb24oW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
ImludGVybmFscy5zY3JvbGxpbmdUcmVlQXNUZXh0KCkiXSk7CisKKyAgICBOU1dpbmRvdyAqaG9z
dFdpbmRvdyA9IFt3ZWJWaWV3IHdpbmRvd107CisgICAgW3dlYlZpZXcgcmVtb3ZlRnJvbVN1cGVy
dmlld107CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAg
IFtbaG9zdFdpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKKwor
ICAgIE5TU3RyaW5nICpzY3JvbGxpbmdUcmVlQWZ0ZXIgPSBzY3JvbGxpbmdUcmVlRWxpZGluZ0xh
c3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbihbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiaW50ZXJuYWxzLnNjcm9sbGluZ1RyZWVBc1RleHQoKSJdKTsKKworICAgIEVYUEVD
VF9UUlVFKFtzY3JvbGxpbmdUcmVlQmVmb3JlIGlzRXF1YWxUb1N0cmluZzpzY3JvbGxpbmdUcmVl
QWZ0ZXJdKTsKKworICAgIHNjcm9sbFkgPSB3YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3Jv
bGxZKHdlYlZpZXcuZ2V0KCksIFtdKFdLV2ViVmlldyogd2ViVmlldykgeworICAgICAgICBzeW50
aGVzaXplV2hlZWxFdmVudHMod2ViVmlldywgQ0dQb2ludE1ha2UoNTAsIDUwKSwgQ0dTaXplTWFr
ZSgwLCAtMTAxKSk7CisgICAgfSk7CisgICAgRVhQRUNUX0VRKHNjcm9sbFksIDMwMSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQppbmRleCBjMDJlMGRm
NDI2NzA2ODNkYjU3ZjAzOTBhMWM2NGU3NzdmYTU4ZjhiLi43MmNlZjY4ZDhlZTc5ZTAyODc4ZTdj
M2Q1ODI4NzgwMDRjMjNiM2MxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tCkBAIC0yMDQsMzcgKzIwNCwzNyBAQCAtIChCT09MKWV2YWx1YXRlTWVkaWFRdWVy
eTooTlNTdHJpbmcgKilxdWVyeQogCiAtIChpZClvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OihOU1N0cmluZyAqKXNjcmlwdAogewotICAgIGJvb2wgaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCA9
IGZhbHNlOworICAgIGJvb2wgY2FsbGJhY2tDb21wbGV0ZSA9IGZhbHNlOwogICAgIFJldGFpblB0
cjxpZD4gZXZhbFJlc3VsdDsKICAgICBbc2VsZiBfZXZhbHVhdGVKYXZhU2NyaXB0V2l0aG91dFVz
ZXJHZXN0dXJlOnNjcmlwdCBjb21wbGV0aW9uSGFuZGxlcjpbJl0gKGlkIHJlc3VsdCwgTlNFcnJv
ciAqZXJyb3IpIHsKICAgICAgICAgZXZhbFJlc3VsdCA9IHJlc3VsdDsKLSAgICAgICAgaXNXYWl0
aW5nRm9ySmF2YVNjcmlwdCA9IHRydWU7CisgICAgICAgIGNhbGxiYWNrQ29tcGxldGUgPSB0cnVl
OwogICAgICAgICBFWFBFQ1RfVFJVRSghZXJyb3IpOwogICAgICAgICBpZiAoZXJyb3IpCiAgICAg
ICAgICAgICBOU0xvZyhAIkVuY291bnRlcmVkIGVycm9yOiAlQCB3aGlsZSBldmFsdWF0aW5nIHNj
cmlwdDogJUAiLCBlcnJvciwgc2NyaXB0KTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzV2FpdGluZ0ZvckphdmFTY3JpcHQpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmY2FsbGJhY2tDb21wbGV0ZSk7CiAgICAgcmV0dXJuIGV2YWxSZXN1bHQuYXV0b3Jl
bGVhc2UoKTsKIH0KIAogLSAoaWQpb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdFdpdGhVc2Vy
R2VzdHVyZTooTlNTdHJpbmcgKilzY3JpcHQKIHsKLSAgICBib29sIGlzV2FpdGluZ0ZvckphdmFT
Y3JpcHQgPSBmYWxzZTsKKyAgICBib29sIGNhbGxiYWNrQ29tcGxldGUgPSBmYWxzZTsKICAgICBS
ZXRhaW5QdHI8aWQ+IGV2YWxSZXN1bHQ7CiAgICAgW3NlbGYgZXZhbHVhdGVKYXZhU2NyaXB0OnNj
cmlwdCBjb21wbGV0aW9uSGFuZGxlcjpbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsK
ICAgICAgICAgZXZhbFJlc3VsdCA9IHJlc3VsdDsKLSAgICAgICAgaXNXYWl0aW5nRm9ySmF2YVNj
cmlwdCA9IHRydWU7CisgICAgICAgIGNhbGxiYWNrQ29tcGxldGUgPSB0cnVlOwogICAgICAgICBF
WFBFQ1RfVFJVRSghZXJyb3IpOwogICAgICAgICBpZiAoZXJyb3IpCiAgICAgICAgICAgICBOU0xv
ZyhAIkVuY291bnRlcmVkIGVycm9yOiAlQCB3aGlsZSBldmFsdWF0aW5nIHNjcmlwdDogJUAiLCBl
cnJvciwgc2NyaXB0KTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlz
V2FpdGluZ0ZvckphdmFTY3JpcHQpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmY2Fs
bGJhY2tDb21wbGV0ZSk7CiAgICAgcmV0dXJuIGV2YWxSZXN1bHQuYXV0b3JlbGVhc2UoKTsKIH0K
IAogLSAoaWQpb2JqZWN0QnlDYWxsaW5nQXN5bmNGdW5jdGlvbjooTlNTdHJpbmcgKilzY3JpcHQg
d2l0aEFyZ3VtZW50czooTlNEaWN0aW9uYXJ5ICopYXJndW1lbnRzIGVycm9yOihOU0Vycm9yICoq
KWVycm9yT3V0CiB7Ci0gICAgYm9vbCBpc1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gZmFsc2U7Cisg
ICAgYm9vbCBjYWxsYmFja0NvbXBsZXRlID0gZmFsc2U7CiAgICAgaWYgKGVycm9yT3V0KQogICAg
ICAgICAqZXJyb3JPdXQgPSBuaWw7CiAKQEAgLTI0Myw5ICsyNDMsOSBAQCAtIChpZClvYmplY3RC
eUNhbGxpbmdBc3luY0Z1bmN0aW9uOihOU1N0cmluZyAqKXNjcmlwdCB3aXRoQXJndW1lbnRzOihO
U0RpY3Rpb25hcgogICAgIFtzZWxmIGNhbGxBc3luY0phdmFTY3JpcHQ6c2NyaXB0IGFyZ3VtZW50
czphcmd1bWVudHMgaW5GcmFtZTpuaWwgaW5Db250ZW50V29ybGQ6V0tDb250ZW50V29ybGQucGFn
ZVdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOlsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikg
ewogICAgICAgICBldmFsUmVzdWx0ID0gcmVzdWx0OwogICAgICAgICBzdHJvbmdFcnJvciA9IGVy
cm9yOwotICAgICAgICBpc1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgY2Fs
bGJhY2tDb21wbGV0ZSA9IHRydWU7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZpc1dhaXRpbmdGb3JKYXZhU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmNhbGxiYWNrQ29tcGxldGUpOwogCiAgICAgaWYgKGVycm9yT3V0KQogICAgICAgICAqZXJy
b3JPdXQgPSBzdHJvbmdFcnJvci5hdXRvcmVsZWFzZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442049</attachid>
            <date>2021-10-21 11:08:54 -0700</date>
            <delta_ts>2021-10-21 14:10:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231989-20211021110853.patch</filename>
            <type>text/plain</type>
            <size>29689</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmVjMjM2MTc2ODkwZjZi
NjY4ZmUxOWVhZDYxMDhiYTljZjM3OTMyZi4uNzM5Yjc5OTIxYWM4MGIwN2M3NTcwYjJjMjUzOGI3
MmY1ZTQxNTFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTEwLTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbnRlbnQgb2Zm
c2V0IGluIHRoaXMgY29kZXBlbiB3aGVuIHN3aXRjaGluZyB0YWJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5ODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSB3ZXJlIHR3byBwcm9ibGVtcyB0
aGF0IG9jY3VycmVkIHdpdGggYXN5bmMtc2Nyb2xsYWJsZSBpZnJhbWVzIHdoZW4gdGhlaXIgYXNz
b2NpYXRlZAorICAgICAgICBXS1dlYlZpZXcgd2FzIHJlbW92ZWQgYW5kIHJlLWFkZGVkIHRvIHRo
ZSB2aWV3IGhpZXJhcmNoeSAoZS5nLiB3aGVuIHN3aXRjaGluZyB0YWJzKS4KKyAgICAgICAgVGhl
c2UgcmVzdWx0ZWQgaW4gbWlzcGxhY2VkIHBvc2l0aW9uOmZpeGVkIGNvbnRlbnQsIGFuZCB0aGUg
Zmlyc3QgdXNlciBzY3JvbGwgaW4gdGhlIAorICAgICAgICBpZnJhbWUgY2F1c2luZyB0aGUgc2Ny
b2xsIHBvc2l0aW9uIHRvIGp1bXAgYmFjayB0byB0aGUgdG9wLgorCisgICAgICAgIFRoZSBwb3Np
dG9uOmZpeGVkIGlzc3VlIHdhcyBjYXVzZWQgYnkgYW4gb3JkZXJpbmcgcHJvYmxlbSBpbgorICAg
ICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNo
aWxkcmVuKCkgd2hpY2ggcmVzdWx0ZWQgaW4gdGhlIGxheW91dAorICAgICAgICB2aWV3cG9ydCBi
ZWluZyBjb21wdXRlZCBpbmNvcnJlY3RseTsgd2UgY2FsbGVkIHVwZGF0ZVZpZXdwb3J0Rm9yQ3Vy
cmVudFNjcm9sbFBvc2l0aW9uKCkKKyAgICAgICAgYmVmb3JlIHNldHRpbmcgdGhlIG1pbiBhbmQg
bWF4IHNjcm9sbCBwb3NpdGlvbiwgc28gd2UnZCBhbHdheXMgY2xhbXAgdGhlIGxheW91dCB2aWV3
cG9ydCB0bworICAgICAgICBhIGxvY2F0aW9uIG9mIDAsMC4KKworICAgICAgICBUaGUgc2Vjb25k
IHNjcm9sbCBwb3NpdGlvbiByZXNldCBpc3N1ZSB3YXMgY2F1c2VkIGJ5IHRoZSBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZSdzCisgICAgICAgIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uIHJldmVy
dGluZyB0byBhIHN0YWxlIGFmdGVyIHJlLWF0dGFjaGluZyB0aGUgaWZyYW1lJ3Mgc2Nyb2xsaW5n
CisgICAgICAgIHN1YnRyZWUuIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKCkgaGFzIGNvZGUgdG8gc2V0CisgICAgICAgIG1fY3VycmVudFNjcm9s
bFBvc2l0aW9uIGZyb20gdGhlIHN0YXRlIHRyZWUgbm9kZSdzIHNjcm9sbCBwb3NpdGlvbiBvbiBm
aXJzdCBjb21taXQ7CisgICAgICAgIHRoZSBpc3N1ZSB3YXMgdGhhdCBTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUncyBzY3JvbGxQb3NpdGlvbigpIHdhcyBub3QgdXBkYXRlZCBvbiBldmVyeQor
ICAgICAgICBzY3JvbGwsIG9ubHkgd2hlbiBzb21ldGhpbmcgdHJpZ2dlcmVkIGEgc2Nyb2xsaW5n
IHRyZWUgY29tbWl0LgorCisgICAgICAgIEZpeCBieSBzaWxlbnRseSB1cGRhdGluZyBTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUncyBzY3JvbGxQb3NpdGlvbigpIHdoZW4gd2UgZ2V0CisgICAg
ICAgIG5vdGlmaWNhdGlvbnMgYmFjayBmcm9tIHRoZSBzY3JvbGxpbmcgdGhyZWFkIHRoYXQgYSBz
Y3JvbGwgaGFwcGVuZWQuCisKKyAgICAgICAgQm90aCBmaXhlcyBhcmUgdGVzdGVkIGJ5IHRoZSBT
Y3JvbGxpbmdDb29yZGluYXRvclRlc3RzLlNjcm9sbGluZ1RyZWVBZnRlckRldGFjaFJlYXR0YWNo
IEFQSSB0ZXN0LgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Ojp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnN5bmNTY3JvbGxQb3NpdGlvbik6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmg6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6aW5zZXJ0Tm9kZSk6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJl
Zm9yZUNoaWxkcmVuKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjOjpjb21taXRUcmVlU3RhdGVJZk5lZWRlZCk6CisKIDIwMjEtMTAtMjAg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHJlLWV2
YWx1YXRlIHZpZXdwb3J0IGRlcGVuZGVudCBtZWRpYSBxdWVyaWVzIGlmIHRoZSB2aWV3cG9ydCBk
b2Vzbid0IGNoYW5nZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCA1NDgzYjIyZDY5YzljNDQy
MDk5ZGIwZGE1ZGI3MDNiMGYxMTIyNGY4Li42MGUzZDdhYjg5Nzk2ZDFlNjMxMTFiMTY3Zjc1OWFl
ZTBkYzgxNWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtNDUxLDYgKzQ1MSwxMiBAQCB2
b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJB
c3luY1Njcm9sbChTY3JvbGxpbmdObwogICAgICAgICAgICAgbV9wYWdlLT5lZGl0b3JDbGllbnQo
KS5zdWJGcmFtZVNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpOwogICAgIH0KIAorICAgIGF1dG8qIG5v
ZGUgPSBtX3Njcm9sbGluZ1N0YXRlVHJlZS0+c3RhdGVOb2RlRm9ySUQoc2Nyb2xsaW5nTm9kZUlE
KTsKKyAgICBpZiAoaXM8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPihub2RlKSkgeworICAg
ICAgICBhdXRvJiBzY3JvbGxpbmdOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlPigqbm9kZSk7CisgICAgICAgIHNjcm9sbGluZ05vZGUuc3luY1Njcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uKTsKKyAgICB9CisKICAgICBpZiAoc2Nyb2xsaW5nTm9kZUlEID09IGZy
YW1lVmlldy5zY3JvbGxpbmdOb2RlSUQoKSkgewogICAgICAgICByZWNvbmNpbGVTY3JvbGxpbmdT
dGF0ZShmcmFtZVZpZXcsIHNjcm9sbFBvc2l0aW9uLCBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgc2Ny
b2xsVHlwZSwgVmlld3BvcnRSZWN0U3RhYmlsaXR5OjpTdGFibGUsIHNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24pOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApp
bmRleCA4YmE4Y2JiY2NhZmZmYmJkYzZiNTgwYjdlYmM5ZjQ2NzFlNmNiMjljLi5hZDdjYmNmZmFj
OGM0MzI3MTgxOWJkZjc4NzhmZTAxNjU5MThlNzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5j
cHAKQEAgLTE0Myw2ICsxNDMsMTEgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6
OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2kKICAgICBzZXRQ
cm9wZXJ0eUNoYW5nZWQoUHJvcGVydHk6OlNjcm9sbFBvc2l0aW9uKTsKIH0KIAordm9pZCBTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnN5bmNTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbikKK3sKKyAgICBtX3Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9z
aXRpb247Cit9CisKIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxP
cmlnaW4oY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbikKIHsKICAgICBpZiAobV9zY3JvbGxP
cmlnaW4gPT0gc2Nyb2xsT3JpZ2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAppbmRleCA0NTg1NDJj
ZWU4ODFmMTk3NDFhN2Q4YjI5MjUxZTY5MWRjMzc1NTFjLi42NzBjYTkzNzI0NTU0NGMzMTYyODAw
NGFiMDBiOWRiY2RkNjQzMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaApAQCAtNTQsNiArNTQs
OSBAQCBwdWJsaWM6CiAgICAgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbFBvc2l0aW9uOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAKKyAgICAvLyBEb2VzIG5vdCB0
cmlnZ2VyIGEgc2Nyb2xsaW5nIHRyZWUgY29tbWl0LgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c3luY1Njcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKKwogICAgIGNvbnN0IEludFBv
aW50JiBzY3JvbGxPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9yaWdpbjsgfQogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsT3JpZ2luKGNvbnN0IEludFBvaW50Jik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRy
ZWUuY3BwCmluZGV4IGI3MzQwMTQyMjE2YTU4MjYwOTdkZTc3ZDQ5NGI2NjhlMTgzOWE5NjQuLjUx
ZWEzMmIyMDJhNDFjMzA5OWQ0ODEyYWE2YzgyZGYwNzgzNjk1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcApAQCAtMTc2
LDcgKzE3Niw3IEBAIFNjcm9sbGluZ05vZGVJRCBTY3JvbGxpbmdTdGF0ZVRyZWU6Omluc2VydE5v
ZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sCiAKICAgICAgICAgaWYgKHBhcmVu
dElEKSB7CiAgICAgICAgICAgICBpZiAoYXV0byB1bnBhcmVudGVkTm9kZSA9IG1fdW5wYXJlbnRl
ZE5vZGVzLnRha2UobmV3Tm9kZUlEKSkgewotICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxpbmdUcmVlLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAiIDw8IHRoaXMg
PDwgIiBpbnNlcnROb2RlICIgPDwgbmV3Tm9kZUlEIDw8ICIgZ2V0dGluZyBub2RlIGZyb20gdW5w
YXJlbnRlZCBub2RlcyIpOworICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxp
bmdUcmVlLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAiIDw8IHRoaXMgPDwgIiBpbnNl
cnROb2RlIHJlYXR0YWNoaW5nIG5vZGUgIiA8PCBuZXdOb2RlSUQpOwogICAgICAgICAgICAgICAg
IG5ld05vZGUgPSB1bnBhcmVudGVkTm9kZS5nZXQoKTsKICAgICAgICAgICAgICAgICBub2RlV2Fz
UmVhdHRhY2hlZFJlY3Vyc2l2ZSgqdW5wYXJlbnRlZE5vZGUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGUuY3BwCmluZGV4IDI0ZTA5ZDc2MmFkNjNmYzJlNTFmMjYyNDgzMzQ3MTZiZDFl
OTRhODguLmY4MzBjY2Y0MDQ0M2U1ODBlOWZiNjQ0NmFmM2JlN2M1MTk0OWZlNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCkBAIC03MiwxMCArNzIsOCBAQCB2b2lkIFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29u
c3QgU2Nyb2xsaW5nUwogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVOb2RlOjpQcm9wZXJ0eTo6Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSkp
CiAgICAgICAgIG1fZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSA9IHN0YXRlLmZp
eGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUoKTsKIAotICAgIGlmIChzdGF0ZS5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6TGF5b3V0Vmlld3Bv
cnQpKSB7CisgICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5v
ZGU6OlByb3BlcnR5OjpMYXlvdXRWaWV3cG9ydCkpCiAgICAgICAgIG1fbGF5b3V0Vmlld3BvcnQg
PSBzdGF0ZS5sYXlvdXRWaWV3cG9ydCgpOwotICAgICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJl
bnRTY3JvbGxQb3NpdGlvbih7IH0pOwotICAgIH0KIAogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6TWluTGF5b3V0Vmlld3BvcnRP
cmlnaW4pKQogICAgICAgICBtX21pbkxheW91dFZpZXdwb3J0T3JpZ2luID0gc3RhdGUubWluTGF5
b3V0Vmlld3BvcnRPcmlnaW4oKTsKQEAgLTg1LDYgKzgzLDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3Jv
bGxpbmdTCiAKICAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
Tm9kZTo6UHJvcGVydHk6Ok92ZXJyaWRlVmlzdWFsVmlld3BvcnRTaXplKSkKICAgICAgICAgbV9v
dmVycmlkZVZpc3VhbFZpZXdwb3J0U2l6ZSA9IHN0YXRlLm92ZXJyaWRlVmlzdWFsVmlld3BvcnRT
aXplKCk7CisKKyAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
Tm9kZTo6UHJvcGVydHk6OkxheW91dFZpZXdwb3J0KSkgeworICAgICAgICAvLyBUaGlzIHJlcXVp
cmVzIHRoYXQgbWluTGF5b3V0Vmlld3BvcnRPcmlnaW4gYW5kIG1heExheW91dFZpZXdwb3J0T3Jp
Z2luIGhhdmUgYmVlbiB1cGRhdGVkLgorICAgICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRT
Y3JvbGxQb3NpdGlvbih7IH0pOworICAgIH0KIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlRnJhbWVT
Y3JvbGxpbmdOb2RlOjpzY3JvbGxQb3NpdGlvbkFuZExheW91dFZpZXdwb3J0TWF0Y2goY29uc3Qg
RmxvYXRQb2ludCYgcG9zaXRpb24sIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBvdmVycmlkZUxh
eW91dFZpZXdwb3J0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDljY2Y5NzRkOTA5ODdi
ZWY4MGM4N2I5MDRlOGRkMDM1ODNlZjIxZGMuLjliNDBkMDVkMWU3YjAxYTZlN2Q2YTdmMWZkNDhh
ZmY3MWNlNzU2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTMzNiw3ICszMzYsMTAg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMoVGV4dFN0
cmVhbSYgdHMsIE9wdGlvblNldDxTY3JvbGwKICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJyZWFj
aGFibGUgY29udGVudCBzaXplIiwgbV9yZWFjaGFibGVDb250ZW50c1NpemUpOwogICAgIHRzLmR1
bXBQcm9wZXJ0eSgibGFzdCBjb21taXR0ZWQgc2Nyb2xsIHBvc2l0aW9uIiwgbV9sYXN0Q29tbWl0
dGVkU2Nyb2xsUG9zaXRpb24pOwogCi0gICAgaWYgKG1fc2Nyb2xsT3JpZ2luICE9IEludFBvaW50
KCkpCisgICAgaWYgKCFtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbi5pc1plcm8oKSkKKyAgICAgICAg
dHMuZHVtcFByb3BlcnR5KCJzY3JvbGwgcG9zaXRpb24iLCBtX2N1cnJlbnRTY3JvbGxQb3NpdGlv
bik7CisKKyAgICBpZiAoIW1fc2Nyb2xsT3JpZ2luLmlzWmVybygpKQogICAgICAgICB0cy5kdW1w
UHJvcGVydHkoInNjcm9sbCBvcmlnaW4iLCBtX3Njcm9sbE9yaWdpbik7CiAKICAgICBpZiAobV9z
bmFwT2Zmc2V0c0luZm8uaG9yaXpvbnRhbFNuYXBPZmZzZXRzLnNpemUoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbQppbmRleCBiM2Q0OTY4YjM1ODIzOGQ3MDE5MzhhNmQ4MzU3NDVmMTEwNDdjY2U0
Li44OTI0MmM2MWEzYjUwYjhmZDY3ZmIyZDcwOTc3OGUzMzNhM2Q5NTgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjLm1tCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRv
ck1hYzo6Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKQogICAgIGlmICghc2Nyb2xsaW5nU3RhdGVU
cmVlKCktPmhhc0NoYW5nZWRQcm9wZXJ0aWVzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIExP
R19XSVRIX1NUUkVBTShTY3JvbGxpbmdUcmVlLCBzdHJlYW0gPDwgc2Nyb2xsaW5nU3RhdGVUcmVl
QXNUZXh0KGRlYnVnU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JzKSk7CisgICAgTE9H
X1dJVEhfU1RSRUFNKFNjcm9sbGluZ1RyZWUsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWM6OmNvbW1pdFRyZWVTdGF0ZTogc3RhdGUgdHJlZSAiIDw8IHNjcm9sbGluZ1N0YXRlVHJl
ZUFzVGV4dChkZWJ1Z1Njcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9ycykpOwogCiAgICAg
YXV0byBzdGF0ZVRyZWUgPSBzY3JvbGxpbmdTdGF0ZVRyZWUoKS0+Y29tbWl0KExheWVyUmVwcmVz
ZW50YXRpb246OlBsYXRmb3JtTGF5ZXJSZXByZXNlbnRhdGlvbik7CiAgICAgc2Nyb2xsaW5nVHJl
ZSgpLT5jb21taXRUcmVlU3RhdGUoV1RGTW92ZShzdGF0ZVRyZWUpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNmY2MTJlNmQ0MWU5ZjZiYWVh
NzU4ODI2ZGQ2MzJjN2Y3NWQzMTI2Li44ZmM3NTU0OGJhMTQzM2E1MjNjZWJhODQyZGQyNDgzOWZl
MGUxNGJlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjggQEAKKzIwMjEtMTAtMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udGVudCBvZmZzZXQgaW4gdGhpcyBjb2RlcGVuIHdo
ZW4gc3dpdGNoaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTk4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFQSSB0ZXN0IHRoYXQgc2Nyb2xscyBhbiBpZnJhbWUgdmlhIHdoZWVsIGV2ZW50
cywgdGhlbiBkZXRhY2hlZCBhbmQgcmUtYXR0YWNoZXMgdGhlIHZpZXcuCisKKyAgICAgICAgVGhl
IHR3byB3aGVlbCBzY3JvbGxzIGFyZSBuZWNlc3NhcnkgdG8gZXhlcmNpc2UgdGhlICJzdGFsZSBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUKKyAgICAgICAgc2Nyb2xsIHBvc2l0aW9uIiBpc3N1
ZS4KKworICAgICAgICBUaGUgc2Nyb2xsaW5nIHRyZWUgZHVtcHMgdmFsaWRhdGUgdGhlIGxheW91
dCB2aWV3cG9ydCBwYXJ0IG9mIHRoZSBmaXguCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9TY3JvbGxpbmdDb29yZGluYXRvclRlc3RzLm1tOiBBZGRlZC4KKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OnN5bnRoZXNpemVXaGVlbEV2ZW50cyk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjp3YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OnNjcm9sbGluZ1RyZWVFbGlkaW5nTGFzdENvbW1pdHRlZFNjcm9s
bFBvc2l0aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBv
YmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgb2JqZWN0QnlDYWxsaW5nQXN5bmNGdW5jdGlvbjp3aXRoQXJndW1lbnRzOmVy
cm9yOl0pOgorCiAyMDIxLTEwLTIwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25v
bWUub3JnPgogCiAgICAgICAgIERvIG5vdCB1c2Ugc3RyZXJyb3IoKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBjMTc5MTY3NmI1OGE1OTRhYTBlZjhiMzQ0ZGJhMWM1MGJjMmQ2YzFiLi4wNzgz
YzEwOTBiZjRjOTYxZDgyMzcwYjRhZGUzMzRiN2ZkMWQyNmE3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtODYsNiArODYsNyBAQAogCQkwRjRGRkE5RTFFRDNBQTg1MDBGNzExMUYgLyogU25h
cHNob3RWaWFSZW5kZXJJbkNvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjRGRkE5RDFFRDNBQTg1MDBGNzExMUYgLyogU25hcHNob3RWaWFS
ZW5kZXJJbkNvbnRleHQubW0gKi87IH07CiAJCTBGNTY1MUY3MUZDRTREREMwMDMxMEZCQyAvKiBO
b0hpc3RvcnlJdGVtU2Nyb2xsVG9GcmFnbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTY1MUY2MUZDRTREREIwMDMxMEZCQyAvKiBOb0hpc3Rv
cnlJdGVtU2Nyb2xsVG9GcmFnbWVudC5tbSAqLzsgfTsKIAkJMEY1NjUxRjkxRkNFNTEzNTAwMzEw
RkJDIC8qIHNjcm9sbC10by1hbmNob3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2NTFGODFGQ0U1MEU4MDAzMTBGQkMgLyogc2Ny
b2xsLXRvLWFuY2hvci5odG1sICovOyB9OworCQkwRkVGQUY2NDI3MUZDMkNEMDA1NzA0RDcgLyog
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUZBRjYzMjcxRkMyQ0QwMDU3MDRENyAvKiBTY3JvbGxpbmdD
b29yZGluYXRvclRlc3RzLm1tICovOyB9OwogCQkwRkYxMTM0RTIyRDY4Njc5MDA5QTgxREEgLyog
U2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjExMzREMjJENjg2NzkwMDlBODFEQSAvKiBTY3JvbGxW
aWV3U2Nyb2xsYWJpbGl0eVRlc3RzLm1tICovOyB9OwogCQkxMTVFQjM0MzFFRTBCQTAzMDAzQzJD
MEEgLyogVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExNUVCMzQyMUVFMEI3MjAwMDNDMkMwQSAvKiBW
aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tICovOyB9OwogCQkxMTcxQjI0RjIxOUY0OUNE
MDBDQjg5N0QgLyogRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmVfQnVuZGxlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExQjdGRDIxMjE5RjQ2
REQwMDY5QjI3RiAvKiBGaXJzdE1lYW5pbmdmdWxQYWludE1pbGVzdG9uZV9CdW5kbGUuY3BwICov
OyB9OwpAQCAtMTg1Nyw2ICsxODU4LDcgQEAKIAkJMEZDNkM0Q0UxNDEwMzRBRDAwNUI3RjBDIC8q
IE1ldGFBbGxvY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWV0YUFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRTQ0Nzk3
MUI3NkYxRTMwMDk0OThFQiAvKiBQYXJraW5nTG90LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFBhcmtpbmdMb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkVBRTM2NzFCN0QxOUNCMDBDRTE3RjIgLyogQ29uZGl0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGRUZBRjYzMjcxRkMyQ0QwMDU3MDRENyAvKiBTY3JvbGxpbmdDb29y
ZGluYXRvclRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZGMTEzNEQyMkQ2ODY3OTAwOUE4MURBIC8qIFNjcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVz
dHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxWaWV3
U2Nyb2xsYWJpbGl0eVRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkZD
NDVBNDFCNzNFQkUyMDA4NUJENjIgLyogTG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE1
RUIzNDIxRUUwQjcyMDAwM0MyQzBBIC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWV3cG9ydFNpemVGb3JW
aWV3cG9ydFVuaXRzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzA4Nyw3ICsz
MDg5LDYgQEAKIAkJRjQ0QTUzMEYyMUI4OTc2OTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenps
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2xhc3NNZXRob2RTd2l6emxl
ci5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE1MzEwMjFCODk3NjkwMERCQjk5
QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbTsgcGF0aCA9IC4uL1Rlc3RS
dW5uZXJTaGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTdEMUYyNjhENUM2OTAwQjQ5QkI4IC8qIEltYWdlQW5hbHlz
aXNUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEltYWdlQW5hbHlzaXNUZXN0cy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQ0QTlBRjUyNjQ5QkJERDAwRTdDQjE2IC8q
IEltbWVkaWF0ZUFjdGlvblRlc3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltbWVkaWF0ZUFjdGlvblRl
c3RzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE5QUY2MjY0OUJCREQwMEU3
Q0IxNiAvKiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IElt
bWVkaWF0ZUFjdGlvblRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRD
NzlGQjIwRjlFNTBDMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblBsdWdJbi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0NEM3OUZEMjBGOUU4NzEwMDE0NDc4QyAvKiBQYXJzZXJZaWVsZFRv
a2VuVGVzdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VyWWllbGRUb2tlblRlc3RzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODIxLDcgKzQ4MjIsNiBAQAogCQkJCTUxRUIxMjU4
MjRDNjg1ODkwMDBDQjAzMCAvKiBISURHYW1lcGFkcy5tbSAqLywKIAkJCQk5QjRGOEZBMzE1OUQ1
MkIxMDAyRDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCiAJCQkJOUIyNkZD
NkIxNTlEMDYxMDAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAqLywK
LQkJCQlGNDRBOUFGNTI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRpYXRlQWN0aW9uVGVzdHMuaCAq
LywKIAkJCQlGNDRBOUFGNjI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRpYXRlQWN0aW9uVGVzdHMu
bW0gKi8sCiAJCQkJQzUwN0U4QTYxNEM2NTQ1QjAwNUQ2QjNCIC8qIEluc3BlY3RvckJhci5tbSAq
LywKIAkJCQk1N0YxMEQ5MjFDN0U3QjM4MDBFQ0RGMzAgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1
c3RlZC5tbSAqLywKQEAgLTQ4NDEsNiArNDg0MSw3IEBACiAJCQkJQTU3QTM0RUYxNkFGNjc3MjAw
QzI1MDFGIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSAqLywKIAkJ
CQkzN0M3ODRERTE5N0M4RjJFMDAxMEE0OTYgLyogUmVuZGVyZWRJbWFnZUZyb21ET01Ob2RlLm1t
ICovLAogCQkJCTM3MjJDODY4MTQ2MUUwM0UwMEM0NUQwMCAvKiBSZW5kZXJlZEltYWdlRnJvbURP
TVJhbmdlLm1tICovLAorCQkJCTBGRUZBRjYzMjcxRkMyQ0QwMDU3MDRENyAvKiBTY3JvbGxpbmdD
b29yZGluYXRvclRlc3RzLm1tICovLAogCQkJCTI2MTUxNkQ1MTVCMEU2MDUwMEEyQzIwMSAvKiBT
ZXRBbmRVcGRhdGVDYWNoZU1vZGVsLm1tICovLAogCQkJCTUyQjhDRjk1MTU4NjhDRjAwMDI4MTA1
MyAvKiBTZXREb2N1bWVudFVSSS5tbSAqLywKIAkJCQlDNTQwRjc3NTE1MkU0REEwMDBBNDBDOEMg
LyogU2ltcGxpZnlNYXJrdXAubW0gKi8sCkBAIC01ODM3LDYgKzU4MzgsNyBAQAogCQkJCTk1MDk1
RjIwMjYyRkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RDRkE3QUExRTQ1MTgzMjAwQzI0MzNEIC8qIFNhbXBsZU1hcC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDRTA5NDczNzIwNjMyMjNCMDAzQzlCQTAgLyogU2NoZW1lUmVnaXN0cnku
bW0gaW4gU291cmNlcyAqLywKKwkJCQkwRkVGQUY2NDI3MUZDMkNEMDA1NzA0RDcgLyogU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQzA5MzJCMjFDODcy
QzEwMDMwQzRCMCAvKiBTY3JvbGxpbmdEb2VzTm90UGF1c2VNZWRpYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RjEyMUE0MTFBRTYwMDQ0N0M0QyAvKiBTY3JvbGxQaW5uaW5nQmVoYXZpb3Jz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0MzRDQTFBMjJFNjVCQ0EwMDVEREIyNiAvKiBTY3Jv
bGxUb1JldmVhbFNlbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTc1Mzc5Mzk5ZWMzNTViMTZmYzBjOTY4Y2JlNmM3ZDJiNjQzY2Y3NAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yVGVzdHMubW0KQEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNp
bXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIHZvaWQgc3ludGhlc2l6ZVdoZWVsRXZlbnRzKE5T
VmlldyAqdmlldywgQ0dQb2ludCBsb2NhdGlvbkluVmlldywgQ0dTaXplIGRlbHRhKQoreworICAg
IFJldGFpblB0cjxDR0V2ZW50UmVmPiBjZ1Njcm9sbEV2ZW50ID0gYWRvcHRDRihDR0V2ZW50Q3Jl
YXRlU2Nyb2xsV2hlZWxFdmVudChudWxscHRyLCBrQ0dTY3JvbGxFdmVudFVuaXRQaXhlbCwgMiwg
ZGVsdGEuaGVpZ2h0LCBkZWx0YS53aWR0aCwgMCkpOworCisgICAgQ0dQb2ludCBsb2NhdGlvbklu
V2luZG93ID0gW3ZpZXcgY29udmVydFBvaW50OmxvY2F0aW9uSW5WaWV3IHRvVmlldzpuaWxdOwor
ICAgIENHUG9pbnQgbG9jYXRpb25Jbkdsb2JhbFNjcmVlbkNvb3JkaW5hdGVzID0gW1t2aWV3IHdp
bmRvd10gY29udmVydFBvaW50VG9TY3JlZW46bG9jYXRpb25JbldpbmRvd107CisgICAgbG9jYXRp
b25Jbkdsb2JhbFNjcmVlbkNvb3JkaW5hdGVzLnkgPSBbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmpl
Y3RBdEluZGV4OjBdIGZyYW1lXS5zaXplLmhlaWdodCAtIGxvY2F0aW9uSW5HbG9iYWxTY3JlZW5D
b29yZGluYXRlcy55OworICAgIENHRXZlbnRTZXRMb2NhdGlvbihjZ1Njcm9sbEV2ZW50LmdldCgp
LCBsb2NhdGlvbkluR2xvYmFsU2NyZWVuQ29vcmRpbmF0ZXMpOworICAgIAorICAgIE5TRXZlbnQq
IGV2ZW50ID0gW05TRXZlbnQgZXZlbnRXaXRoQ0dFdmVudDpjZ1Njcm9sbEV2ZW50LmdldCgpXTsK
KyAgICBbdmlldyBzY3JvbGxXaGVlbDpldmVudF07Cit9CisKK3N0YXRpYyBmbG9hdCB3YWl0Rm9y
U2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKFdLV2ViVmlldyogd2ViVmlldywgY29uc3Qgc3Rk
OjpmdW5jdGlvbjx2b2lkKFdLV2ViVmlldyopPiYgc2Nyb2xsVHJpZ2dlcikKK3sKKyAgICBib29s
IHJlY2VpdmVkU2Nyb2xsRXZlbnQgPSBmYWxzZTsKKyAgICBSZXRhaW5QdHI8aWQ+IGV2YWxSZXN1
bHQ7CisgICAgUmV0YWluUHRyPE5TRXJyb3I+IHN0cm9uZ0Vycm9yOworICAgIAorICAgIE5TU3Ry
aW5nICpzY3JpcHRTdHJpbmcgPSBAInJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyIg
XAorICAgICAgICAiICAgbGV0IGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdpZnJhbWUnKVswXTsiIFwKKyAgICAgICAgIiAgIGlmcmFtZS5jb250ZW50V2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKGV2ZW50KSA9PiByZXNvbHZlKGlmcmFtZS5jb250ZW50
V2luZG93LnNjcm9sbFkpKTsgIiBcCisgICAgICAgICJ9KSI7CisKKyAgICBbd2ViVmlldyBjYWxs
QXN5bmNKYXZhU2NyaXB0OnNjcmlwdFN0cmluZyBhcmd1bWVudHM6bmlsIGluRnJhbWU6bmlsIGlu
Q29udGVudFdvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpb
Jl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgZXZhbFJlc3VsdCA9IHJl
c3VsdDsKKyAgICAgICAgc3Ryb25nRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgcmVjZWl2ZWRTY3Jv
bGxFdmVudCA9IHRydWU7CisgICAgfV07CisKKyAgICBzY3JvbGxUcmlnZ2VyKHdlYlZpZXcpOwor
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcm9sbEV2ZW50KTsKKwor
ICAgIHJldHVybiBbZXZhbFJlc3VsdCBmbG9hdFZhbHVlXTsKK30KKworLy8gUmVtb3ZlICJsYXN0
IGNvbW1pdHRlZCBzY3JvbGwgcG9zaXRpb24iIGZvciB0aGUgaWZyYW1lJ3Mgbm9kZSwgd2hpY2gg
d2UgZXhwZWN0IHRvIGJlIGRpZmZlcmVudC4KK3N0YXRpYyBOU1N0cmluZyAqc2Nyb2xsaW5nVHJl
ZUVsaWRpbmdMYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24oTlNTdHJpbmcgKnNjcm9sbGluZ1Ry
ZWUpCit7CisgICAgTlNNdXRhYmxlQXJyYXkgKmxpbmVzID0gW1tbc2Nyb2xsaW5nVHJlZSBjb21w
b25lbnRzU2VwYXJhdGVkQnlDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0IG5ld2xpbmVD
aGFyYWN0ZXJTZXRdXSBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOworICAgIAorICAgIE5TSW5k
ZXhTZXQqIGxhc3RDb21taXR0ZWRMaW5lSW5kaWNlcyA9IFtsaW5lcyBpbmRleGVzT2ZPYmplY3Rz
UGFzc2luZ1Rlc3Q6XkJPT0woaWQgIF9Ob25udWxsIG9iaiwgTlNVSW50ZWdlciBpZHgsIEJPT0wg
KiBfTm9ubnVsbCBzdG9wKSB7CisgICAgICAgIHJldHVybiBbb2JqIGhhc1ByZWZpeDpAIiAgICAg
ICAgKGxhc3QgY29tbWl0dGVkIHNjcm9sbCBwb3NpdGlvbiJdOworICAgIH1dOworICAgIFtsaW5l
cyByZW1vdmVPYmplY3RzQXRJbmRleGVzOmxhc3RDb21taXR0ZWRMaW5lSW5kaWNlc107CisgICAg
cmV0dXJuIFtsaW5lcyBjb21wb25lbnRzSm9pbmVkQnlTdHJpbmc6QCJcbiJdOworfQorCitURVNU
KFNjcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMsIFNjcm9sbGluZ1RyZWVBZnRlckRldGFjaFJlYXR0
YWNoKQoreworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFz
c05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVz
dGluZzpZRVNdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNTAwLCA1MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbiBhZGRUb1dpbmRvdzpZRVNdKTsKKyAgICAKKyAgICBOU1N0cmluZyAq
ZG9jdW1lbnRTdHJpbmcgPSBAIjxzdHlsZT5ib2R5IHsgaGVpZ2h0OiA1MDAwcHg7IH08L3N0eWxl
PiIgXAorICAgICAgICAiPGlmcmFtZSBzcmNkb2M9XCI8c3R5bGU+Ym9keSB7IGhlaWdodDogNTAw
MHB4OyB9PC9zdHlsZT48ZGl2IHN0eWxlPSdwb3NpdGlvbjpmaXhlZDsgd2lkdGg6IDEwMHB4OyBo
ZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6IGJsdWUnPjwvZGl2PlwiPjwvaWZyYW1lPiI7CisgICAg
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmRvY3VtZW50U3RyaW5n
XTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBh
dXRvIHNjcm9sbFkgPSB3YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKHdlYlZpZXcu
Z2V0KCksIFtdKFdLV2ViVmlldyogd2ViVmlldykgeworICAgICAgICBzeW50aGVzaXplV2hlZWxF
dmVudHMod2ViVmlldywgQ0dQb2ludE1ha2UoNTAsIDUwKSwgQ0dTaXplTWFrZSgwLCAtMTAwKSk7
CisgICAgfSk7CisgICAgRVhQRUNUX0VRKHNjcm9sbFksIDEwMCk7CisKKyAgICAvLyBTZW5kIGEg
c2Vjb25kIHdoZWVsIGV2ZW50IHRvIHRyaWdnZXIgcmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUoKSB0
aGF0IGRvZXMgbm90IGVuZCB1cCBpbiBzZXRTY3JvbGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9t
ZXRyeSgpIChzb21lIGNvbXBvc2l0aW5nIGNvZGUgZWFybHkgcmV0dXJucykuCisgICAgLy8gVGhp
cyB3b3VsZCBsZWF2ZSB0aGUgc2Nyb2xsaW5nIHN0YXRlIHRyZWUgd2l0aCBhIHN0YWxlIG1fc2Ny
b2xsUG9zaXRpb24uCisgICAgc2Nyb2xsWSA9IHdhaXRGb3JTY3JvbGxFdmVudEFuZFJldHVyblNj
cm9sbFkod2ViVmlldy5nZXQoKSwgW10oV0tXZWJWaWV3KiB3ZWJWaWV3KSB7CisgICAgICAgIHN5
bnRoZXNpemVXaGVlbEV2ZW50cyh3ZWJWaWV3LCBDR1BvaW50TWFrZSg1MCwgNTApLCBDR1NpemVN
YWtlKDAsIC0xMDApKTsKKyAgICB9KTsKKyAgICBFWFBFQ1RfRVEoc2Nyb2xsWSwgMjAwKTsKKwor
ICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKworICAgIE5TU3Ry
aW5nICpzY3JvbGxpbmdUcmVlQmVmb3JlID0gc2Nyb2xsaW5nVHJlZUVsaWRpbmdMYXN0Q29tbWl0
dGVkU2Nyb2xsUG9zaXRpb24oW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
ImludGVybmFscy5zY3JvbGxpbmdUcmVlQXNUZXh0KCkiXSk7CisKKyAgICBOU1dpbmRvdyAqaG9z
dFdpbmRvdyA9IFt3ZWJWaWV3IHdpbmRvd107CisgICAgW3dlYlZpZXcgcmVtb3ZlRnJvbVN1cGVy
dmlld107CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAg
IFtbaG9zdFdpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKKwor
ICAgIE5TU3RyaW5nICpzY3JvbGxpbmdUcmVlQWZ0ZXIgPSBzY3JvbGxpbmdUcmVlRWxpZGluZ0xh
c3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbihbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiaW50ZXJuYWxzLnNjcm9sbGluZ1RyZWVBc1RleHQoKSJdKTsKKyAgICAvLyBEZWJ1
Z2dpbmcKKyAgICBpZiAoIVtzY3JvbGxpbmdUcmVlQmVmb3JlIGlzRXF1YWxUb1N0cmluZzpzY3Jv
bGxpbmdUcmVlQWZ0ZXJdKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygic2Nyb2xsaW5nVHJlZUJl
Zm9yZSAlQCIsIHNjcm9sbGluZ1RyZWVCZWZvcmUpOworICAgICAgICBXVEZMb2dBbHdheXMoInNj
cm9sbGluZ1RyZWVBZnRlciAlQCIsIHNjcm9sbGluZ1RyZWVBZnRlcik7CisgICAgfQorCisgICAg
RVhQRUNUX1RSVUUoW3Njcm9sbGluZ1RyZWVCZWZvcmUgaXNFcXVhbFRvU3RyaW5nOnNjcm9sbGlu
Z1RyZWVBZnRlcl0pOworCisgICAgc2Nyb2xsWSA9IHdhaXRGb3JTY3JvbGxFdmVudEFuZFJldHVy
blNjcm9sbFkod2ViVmlldy5nZXQoKSwgW10oV0tXZWJWaWV3KiB3ZWJWaWV3KSB7CisgICAgICAg
IHN5bnRoZXNpemVXaGVlbEV2ZW50cyh3ZWJWaWV3LCBDR1BvaW50TWFrZSg1MCwgNTApLCBDR1Np
emVNYWtlKDAsIC0xMDEpKTsKKyAgICB9KTsKKyAgICBFWFBFQ1RfRVEoc2Nyb2xsWSwgMzAxKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IGMw
MmUwZGY0MjY3MDY4M2RiNTdmMDM5MGExYzY0ZTc3N2ZhNThmOGIuLjcyY2VmNjhkOGVlNzllMDI4
NzhlN2MzZDU4Mjg3ODAwNGMyM2IzYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Y29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rl
c3RXS1dlYlZpZXcubW0KQEAgLTIwNCwzNyArMjA0LDM3IEBAIC0gKEJPT0wpZXZhbHVhdGVNZWRp
YVF1ZXJ5OihOU1N0cmluZyAqKXF1ZXJ5CiAKIC0gKGlkKW9iamVjdEJ5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0CiB7Ci0gICAgYm9vbCBpc1dhaXRpbmdGb3JKYXZhU2Ny
aXB0ID0gZmFsc2U7CisgICAgYm9vbCBjYWxsYmFja0NvbXBsZXRlID0gZmFsc2U7CiAgICAgUmV0
YWluUHRyPGlkPiBldmFsUmVzdWx0OwogICAgIFtzZWxmIF9ldmFsdWF0ZUphdmFTY3JpcHRXaXRo
b3V0VXNlckdlc3R1cmU6c2NyaXB0IGNvbXBsZXRpb25IYW5kbGVyOlsmXSAoaWQgcmVzdWx0LCBO
U0Vycm9yICplcnJvcikgewogICAgICAgICBldmFsUmVzdWx0ID0gcmVzdWx0OwotICAgICAgICBp
c1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgY2FsbGJhY2tDb21wbGV0ZSA9
IHRydWU7CiAgICAgICAgIEVYUEVDVF9UUlVFKCFlcnJvcik7CiAgICAgICAgIGlmIChlcnJvcikK
ICAgICAgICAgICAgIE5TTG9nKEAiRW5jb3VudGVyZWQgZXJyb3I6ICVAIHdoaWxlIGV2YWx1YXRp
bmcgc2NyaXB0OiAlQCIsIGVycm9yLCBzY3JpcHQpOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZjYWxsYmFja0NvbXBsZXRlKTsKICAgICByZXR1cm4gZXZhbFJlc3VsdC5h
dXRvcmVsZWFzZSgpOwogfQogCiAtIChpZClvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0
aFVzZXJHZXN0dXJlOihOU1N0cmluZyAqKXNjcmlwdAogewotICAgIGJvb2wgaXNXYWl0aW5nRm9y
SmF2YVNjcmlwdCA9IGZhbHNlOworICAgIGJvb2wgY2FsbGJhY2tDb21wbGV0ZSA9IGZhbHNlOwog
ICAgIFJldGFpblB0cjxpZD4gZXZhbFJlc3VsdDsKICAgICBbc2VsZiBldmFsdWF0ZUphdmFTY3Jp
cHQ6c2NyaXB0IGNvbXBsZXRpb25IYW5kbGVyOlsmXSAoaWQgcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgewogICAgICAgICBldmFsUmVzdWx0ID0gcmVzdWx0OwotICAgICAgICBpc1dhaXRpbmdGb3JK
YXZhU2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgY2FsbGJhY2tDb21wbGV0ZSA9IHRydWU7CiAgICAg
ICAgIEVYUEVDVF9UUlVFKCFlcnJvcik7CiAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAg
IE5TTG9nKEAiRW5jb3VudGVyZWQgZXJyb3I6ICVAIHdoaWxlIGV2YWx1YXRpbmcgc2NyaXB0OiAl
QCIsIGVycm9yLCBzY3JpcHQpOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZjYWxsYmFja0NvbXBsZXRlKTsKICAgICByZXR1cm4gZXZhbFJlc3VsdC5hdXRvcmVsZWFzZSgp
OwogfQogCiAtIChpZClvYmplY3RCeUNhbGxpbmdBc3luY0Z1bmN0aW9uOihOU1N0cmluZyAqKXNj
cmlwdCB3aXRoQXJndW1lbnRzOihOU0RpY3Rpb25hcnkgKilhcmd1bWVudHMgZXJyb3I6KE5TRXJy
b3IgKiopZXJyb3JPdXQKIHsKLSAgICBib29sIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSBmYWxz
ZTsKKyAgICBib29sIGNhbGxiYWNrQ29tcGxldGUgPSBmYWxzZTsKICAgICBpZiAoZXJyb3JPdXQp
CiAgICAgICAgICplcnJvck91dCA9IG5pbDsKIApAQCAtMjQzLDkgKzI0Myw5IEBAIC0gKGlkKW9i
amVjdEJ5Q2FsbGluZ0FzeW5jRnVuY3Rpb246KE5TU3RyaW5nICopc2NyaXB0IHdpdGhBcmd1bWVu
dHM6KE5TRGljdGlvbmFyCiAgICAgW3NlbGYgY2FsbEFzeW5jSmF2YVNjcmlwdDpzY3JpcHQgYXJn
dW1lbnRzOmFyZ3VtZW50cyBpbkZyYW1lOm5pbCBpbkNvbnRlbnRXb3JsZDpXS0NvbnRlbnRXb3Js
ZC5wYWdlV29ybGQgY29tcGxldGlvbkhhbmRsZXI6WyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVy
cm9yKSB7CiAgICAgICAgIGV2YWxSZXN1bHQgPSByZXN1bHQ7CiAgICAgICAgIHN0cm9uZ0Vycm9y
ID0gZXJyb3I7Ci0gICAgICAgIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSB0cnVlOworICAgICAg
ICBjYWxsYmFja0NvbXBsZXRlID0gdHJ1ZTsKICAgICB9XTsKLSAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzV2FpdGluZ0ZvckphdmFTY3JpcHQpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmY2FsbGJhY2tDb21wbGV0ZSk7CiAKICAgICBpZiAoZXJyb3JPdXQpCiAgICAgICAg
ICplcnJvck91dCA9IHN0cm9uZ0Vycm9yLmF1dG9yZWxlYXNlKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2NmNjg1MDhm
MzVlMjFiYzk4NThiZmE3ZWY4ZDBjYTY5ZGNhMzkwMi4uMTYwZTYyOTRjNmRlNDM2ZjlkZjdmOTQw
ZTY1ZGYyOTQwNzU5YjNlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTEwLTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbnRlbnQgb2Zm
c2V0IGluIHRoaXMgY29kZXBlbiB3aGVuIHN3aXRjaGluZyB0YWJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5ODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZXcgYmFzZWxpbmVzLgorCisgICAgICAg
ICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvY2xhbXAtb3V0LW9mLWJvdW5kcy1zY3JvbGxzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGxpbmct
dHJlZS1hZnRlci1zY3JvbGwtZXhwZWN0ZWQudHh0OgorCiAyMDIxLTEwLTIwICBKb2huIFBhc2Nv
ZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJBdXRobl0gT2J0YWluIGNvbnNl
bnQgdG8gY3JlYXRlIG5ldyBjcmVkZW50aWFsIHdoZW4gcGxhdGZvcm0gYXV0aGVudGljYXRvciBp
biBleGNsdWRlZENyZWRlbnRpYWxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9jbGFtcC1vdXQtb2YtYm91bmRzLXNjcm9sbHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvY2xhbXAtb3V0LW9mLWJvdW5kcy1z
Y3JvbGxzLWV4cGVjdGVkLnR4dAppbmRleCAxNTJlYjFiYjMyNDJlN2U4ZTNmZjA5OTVkNzdmYWI1
NTU2MDM4YTVmLi40OWZmMjliNGExZTA1NTg2N2ZlNGEzZGEwMDdkNzVjNTk5ZjQ5N2E2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9jbGFtcC1vdXQtb2Yt
Ym91bmRzLXNjcm9sbHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL2NsYW1wLW91dC1vZi1ib3VuZHMtc2Nyb2xscy1leHBlY3RlZC50eHQKQEAg
LTU1LDYgKzU1LDcgQEAgQXR0ZW1wdGVkIHNjcm9sbCB0byAtNTAwMCwgLTUwMDAKIEF0dGVtcHRl
ZCBzY3JvbGwgdG8gMTAwMDAsIDAKIAogKEZyYW1lIHNjcm9sbGluZyBub2RlCisgIChzY3JvbGwg
cG9zaXRpb24gNDIyMyAwKQogICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgNzg1IDU4NSkKICAgKGNv
bnRlbnRzIHNpemUgNTAwOCA1MDIxKQogICAocmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiA0MjIz
IDApCkBAIC03NSw3ICs3Niw3IEBAIEF0dGVtcHRlZCBzY3JvbGwgdG8gMTAwMDAsIDAKIEF0dGVt
cHRlZCBzY3JvbGwgdG8gMCwgMTAwMDAKIAogKEZyYW1lIHNjcm9sbGluZyBub2RlCi0gIChzY3Jv
bGwgcG9zaXRpb24gNDIyMyAwKQorICAoc2Nyb2xsIHBvc2l0aW9uIDAgNDQzNikKICAgKHNjcm9s
bGFibGUgYXJlYSBzaXplIDc4NSA1ODUpCiAgIChjb250ZW50cyBzaXplIDUwMDggNTAyMSkKICAg
KHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gMCA0NDM2KQpAQCAtOTYsNyArOTcsNyBAQCBBdHRl
bXB0ZWQgc2Nyb2xsIHRvIDAsIDEwMDAwCiBBdHRlbXB0ZWQgc2Nyb2xsIHRvIDEwMDAwLCAxMDAw
MAogCiAoRnJhbWUgc2Nyb2xsaW5nIG5vZGUKLSAgKHNjcm9sbCBwb3NpdGlvbiAwIDQ0MzYpCisg
IChzY3JvbGwgcG9zaXRpb24gNDIyMyA0NDM2KQogICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgNzg1
IDU4NSkKICAgKGNvbnRlbnRzIHNpemUgNTAwOCA1MDIxKQogICAocmVxdWVzdGVkIHNjcm9sbCBw
b3NpdGlvbiA0MjIzIDQ0MzYpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGxpbmctdHJlZS1hZnRlci1zY3JvbGwtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsaW5nLXRyZWUtYWZ0ZXItc2Ny
b2xsLWV4cGVjdGVkLnR4dAppbmRleCBkYjQzNjg4YmI2N2FhZmFmMGJkYTNhN2E0OWZlNmU3ZGI2
YjRiZjRmLi5kMzU5YjcwMjk1ZWUzYmRmN2VkYTIxMTJlMzllNmRlNjFjNWM1NzRhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGxpbmctdHJlZS1h
ZnRlci1zY3JvbGwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcv
c2Nyb2xsaW5nL3Njcm9sbGluZy10cmVlLWFmdGVyLXNjcm9sbC1leHBlY3RlZC50eHQKQEAgLTEs
NSArMSw2IEBACiAKIChGcmFtZSBzY3JvbGxpbmcgbm9kZQorICAoc2Nyb2xsIHBvc2l0aW9uIDAg
MzAwMCkKICAgKHNjcm9sbGFibGUgYXJlYSBzaXplIDc4NSA2MDApCiAgIChjb250ZW50cyBzaXpl
IDc4NSA1MDIxKQogICAocmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiAwIDMwMDApCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442063</attachid>
            <date>2021-10-21 14:11:01 -0700</date>
            <delta_ts>2021-10-21 15:07:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231989-20211021141100.patch</filename>
            <type>text/plain</type>
            <size>31389</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVlYzc2MTZlZGQ1ZDI3
NmY3MTJjZDI5NDZjNjkzNTQyODk3YWI2ZS4uZjU1NTNjM2Q3YjQxOGM3ZmZhMGYxMzBlNDIxNzcz
MTZjMjdmMWY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTEwLTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbnRlbnQgb2Zm
c2V0IGluIHRoaXMgY29kZXBlbiB3aGVuIHN3aXRjaGluZyB0YWJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5ODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSB3ZXJlIHR3byBwcm9ibGVtcyB0
aGF0IG9jY3VycmVkIHdpdGggYXN5bmMtc2Nyb2xsYWJsZSBpZnJhbWVzIHdoZW4gdGhlaXIgYXNz
b2NpYXRlZAorICAgICAgICBXS1dlYlZpZXcgd2FzIHJlbW92ZWQgYW5kIHJlLWFkZGVkIHRvIHRo
ZSB2aWV3IGhpZXJhcmNoeSAoZS5nLiB3aGVuIHN3aXRjaGluZyB0YWJzKS4KKyAgICAgICAgVGhl
c2UgcmVzdWx0ZWQgaW4gbWlzcGxhY2VkIHBvc2l0aW9uOmZpeGVkIGNvbnRlbnQsIGFuZCB0aGUg
Zmlyc3QgdXNlciBzY3JvbGwgaW4gdGhlIAorICAgICAgICBpZnJhbWUgY2F1c2luZyB0aGUgc2Ny
b2xsIHBvc2l0aW9uIHRvIGp1bXAgYmFjayB0byB0aGUgdG9wLgorCisgICAgICAgIFRoZSBwb3Np
dG9uOmZpeGVkIGlzc3VlIHdhcyBjYXVzZWQgYnkgYW4gb3JkZXJpbmcgcHJvYmxlbSBpbgorICAg
ICAgICBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNo
aWxkcmVuKCkgd2hpY2ggcmVzdWx0ZWQgaW4gdGhlIGxheW91dAorICAgICAgICB2aWV3cG9ydCBi
ZWluZyBjb21wdXRlZCBpbmNvcnJlY3RseTsgd2UgY2FsbGVkIHVwZGF0ZVZpZXdwb3J0Rm9yQ3Vy
cmVudFNjcm9sbFBvc2l0aW9uKCkKKyAgICAgICAgYmVmb3JlIHNldHRpbmcgdGhlIG1pbiBhbmQg
bWF4IHNjcm9sbCBwb3NpdGlvbiwgc28gd2UnZCBhbHdheXMgY2xhbXAgdGhlIGxheW91dCB2aWV3
cG9ydCB0bworICAgICAgICBhIGxvY2F0aW9uIG9mIDAsMC4KKworICAgICAgICBUaGUgc2Vjb25k
IHNjcm9sbCBwb3NpdGlvbiByZXNldCBpc3N1ZSB3YXMgY2F1c2VkIGJ5IHRoZSBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZSdzCisgICAgICAgIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uIHJldmVy
dGluZyB0byBhIHN0YWxlIGFmdGVyIHJlLWF0dGFjaGluZyB0aGUgaWZyYW1lJ3Mgc2Nyb2xsaW5n
CisgICAgICAgIHN1YnRyZWUuIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0
ZUJlZm9yZUNoaWxkcmVuKCkgaGFzIGNvZGUgdG8gc2V0CisgICAgICAgIG1fY3VycmVudFNjcm9s
bFBvc2l0aW9uIGZyb20gdGhlIHN0YXRlIHRyZWUgbm9kZSdzIHNjcm9sbCBwb3NpdGlvbiBvbiBm
aXJzdCBjb21taXQ7CisgICAgICAgIHRoZSBpc3N1ZSB3YXMgdGhhdCBTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGUncyBzY3JvbGxQb3NpdGlvbigpIHdhcyBub3QgdXBkYXRlZCBvbiBldmVyeQor
ICAgICAgICBzY3JvbGwsIG9ubHkgd2hlbiBzb21ldGhpbmcgdHJpZ2dlcmVkIGEgc2Nyb2xsaW5n
IHRyZWUgY29tbWl0LgorCisgICAgICAgIEZpeCBieSBzaWxlbnRseSB1cGRhdGluZyBTY3JvbGxp
bmdTdGF0ZVNjcm9sbGluZ05vZGUncyBzY3JvbGxQb3NpdGlvbigpIHdoZW4gd2UgZ2V0CisgICAg
ICAgIG5vdGlmaWNhdGlvbnMgYmFjayBmcm9tIHRoZSBzY3JvbGxpbmcgdGhyZWFkIHRoYXQgYSBz
Y3JvbGwgaGFwcGVuZWQuCisKKyAgICAgICAgQm90aCBmaXhlcyBhcmUgdGVzdGVkIGJ5IHRoZSBT
Y3JvbGxpbmdDb29yZGluYXRvclRlc3RzLlNjcm9sbGluZ1RyZWVBZnRlckRldGFjaFJlYXR0YWNo
IEFQSSB0ZXN0LgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Ojp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnN5bmNTY3JvbGxQb3NpdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6Omhhc1Njcm9sbFBv
c2l0aW9uUmVxdWVzdCBjb25zdCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6aW5z
ZXJ0Tm9kZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKTogV2UgbmVlZCB0byBjaGVjawor
ICAgICAgICBzdGF0ZS5oYXNTY3JvbGxQb3NpdGlvblJlcXVlc3QoKSwgb3RoZXJ3aXNlIHRoZSAi
Y2FuY2VsIGFuaW1hdGVkIHNjcm9sbCByZXF1ZXN0IiB0aGF0IGNvbWVzCisgICAgICAgIG91dCBv
ZiBQYWdlOjpzdG9wS2V5Ym9hcmRTY3JvbGxBbmltYXRpb24oKSBwcmV2ZW50cyBzY3JvbGwgcG9z
aXRpb24gcmVzdG9yYXRpb24uCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6Y29tbWl0VHJlZVN0YXRlSWZO
ZWVkZWQpOgorCiAyMDIxLTEwLTIxICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbbWFjT1NdIFVwZGF0ZSBhcHBlYXJhbmNlIG9mIDxkYXRhbGlzdD4gaW5k
aWNhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDU0ODNiMjJkNjljOWM0NDIwOTlkYjBk
YTVkYjcwM2IwZjExMjI0ZjguLjYwZTNkN2FiODk3OTZkMWU2MzExMWIxNjdmNzU5YWVlMGRjODE1
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC00NTEsNiArNDUxLDEyIEBAIHZvaWQgQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Ny
b2xsKFNjcm9sbGluZ05vCiAgICAgICAgICAgICBtX3BhZ2UtPmVkaXRvckNsaWVudCgpLnN1YkZy
YW1lU2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7CiAgICAgfQogCisgICAgYXV0byogbm9kZSA9IG1f
c2Nyb2xsaW5nU3RhdGVUcmVlLT5zdGF0ZU5vZGVGb3JJRChzY3JvbGxpbmdOb2RlSUQpOworICAg
IGlmIChpczxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+KG5vZGUpKSB7CisgICAgICAgIGF1
dG8mIHNjcm9sbGluZ05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+
KCpub2RlKTsKKyAgICAgICAgc2Nyb2xsaW5nTm9kZS5zeW5jU2Nyb2xsUG9zaXRpb24oc2Nyb2xs
UG9zaXRpb24pOworICAgIH0KKwogICAgIGlmIChzY3JvbGxpbmdOb2RlSUQgPT0gZnJhbWVWaWV3
LnNjcm9sbGluZ05vZGVJRCgpKSB7CiAgICAgICAgIHJlY29uY2lsZVNjcm9sbGluZ1N0YXRlKGZy
YW1lVmlldywgc2Nyb2xsUG9zaXRpb24sIGxheW91dFZpZXdwb3J0T3JpZ2luLCBzY3JvbGxUeXBl
LCBWaWV3cG9ydFJlY3RTdGFiaWxpdHk6OlN0YWJsZSwgc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFj
dGlvbik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDhi
YThjYmJjY2FmZmZiYmRjNmI1ODBiN2ViYzlmNDY3MWU2Y2IyOWMuLmUwNGVhMzQ0MzFlYjVhNzU0
Mjg2Mjk5MTYxNTE1ZjA4MTZiMWFjNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApAQCAt
MTQzLDYgKzE0MywxMSBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Ny
b2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaQogICAgIHNldFByb3BlcnR5
Q2hhbmdlZChQcm9wZXJ0eTo6U2Nyb2xsUG9zaXRpb24pOwogfQogCit2b2lkIFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZTo6c3luY1Njcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uKQoreworICAgIG1fc2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsK
K30KKwogdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFNjcm9sbE9yaWdpbihj
b25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKQogewogICAgIGlmIChtX3Njcm9sbE9yaWdpbiA9
PSBzY3JvbGxPcmlnaW4pCkBAIC0yMDYsNiArMjExLDExIEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpzZXRSZXF1ZXN0ZWRTY3JvbGxEYXRhKGNvbnN0IFJlcXVlc3RlZFNjcm9s
bERhCiAgICAgc2V0UHJvcGVydHlDaGFuZ2VkKFByb3BlcnR5OjpSZXF1ZXN0ZWRTY3JvbGxQb3Np
dGlvbik7CiB9CiAKK2Jvb2wgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpoYXNTY3JvbGxQ
b3NpdGlvblJlcXVlc3QoKSBjb25zdAoreworICAgIHJldHVybiBoYXNDaGFuZ2VkUHJvcGVydHko
UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSAmJiBtX3JlcXVlc3RlZFNjcm9sbERh
dGEucmVxdWVzdFR5cGUgPT0gU2Nyb2xsUmVxdWVzdFR5cGU6OlBvc2l0aW9uVXBkYXRlOworfQor
CiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0SXNNb25pdG9yaW5nV2hlZWxF
dmVudHMoYm9vbCBpc01vbml0b3JpbmdXaGVlbEV2ZW50cykKIHsKICAgICBpZiAoaXNNb25pdG9y
aW5nV2hlZWxFdmVudHMgPT0gbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50cykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlLmgKaW5kZXggNDU4NTQyY2VlODgxZjE5NzQxYTdkOGIyOTI1MWU2OTFkYzM3NTUxYy4u
YWRhNzMxMTIyODdmOTIwZmQwYTYwOWY3MGQwMzViNWViZjY0YzhkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlLmgKQEAgLTU0LDYgKzU0LDkgQEAgcHVibGljOgogICAgIGNvbnN0IEZsb2F0UG9pbnQm
IHNjcm9sbFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxQb3NpdGlvbjsgfQogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYp
OwogCisgICAgLy8gRG9lcyBub3QgdHJpZ2dlciBhIHNjcm9sbGluZyB0cmVlIGNvbW1pdC4KKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN5bmNTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50
Jik7CisKICAgICBjb25zdCBJbnRQb2ludCYgc2Nyb2xsT3JpZ2luKCkgY29uc3QgeyByZXR1cm4g
bV9zY3JvbGxPcmlnaW47IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbE9yaWdp
bihjb25zdCBJbnRQb2ludCYpOwogCkBAIC03OCw2ICs4MSw4IEBAIHB1YmxpYzoKICAgICBjb25z
dCBSZXF1ZXN0ZWRTY3JvbGxEYXRhJiByZXF1ZXN0ZWRTY3JvbGxEYXRhKCkgY29uc3QgeyByZXR1
cm4gbV9yZXF1ZXN0ZWRTY3JvbGxEYXRhOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRS
ZXF1ZXN0ZWRTY3JvbGxEYXRhKGNvbnN0IFJlcXVlc3RlZFNjcm9sbERhdGEmKTsKIAorICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgaGFzU2Nyb2xsUG9zaXRpb25SZXF1ZXN0KCkgY29uc3Q7CisKICAg
ICBib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pc01vbml0
b3JpbmdXaGVlbEV2ZW50czsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SXNNb25pdG9y
aW5nV2hlZWxFdmVudHMoYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCmluZGV4IGI3MzQwMTQyMjE2YTU4MjYwOTdk
ZTc3ZDQ5NGI2NjhlMTgzOWE5NjQuLjUxZWEzMmIyMDJhNDFjMzA5OWQ0ODEyYWE2YzgyZGYwNzgz
Njk1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVUcmVlLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIFNjcm9sbGluZ05vZGVJRCBTY3Jv
bGxpbmdTdGF0ZVRyZWU6Omluc2VydE5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNj
cm9sCiAKICAgICAgICAgaWYgKHBhcmVudElEKSB7CiAgICAgICAgICAgICBpZiAoYXV0byB1bnBh
cmVudGVkTm9kZSA9IG1fdW5wYXJlbnRlZE5vZGVzLnRha2UobmV3Tm9kZUlEKSkgewotICAgICAg
ICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmdUcmVlLCBzdHJlYW0gPDwgIlNjcm9s
bGluZ1N0YXRlVHJlZSAiIDw8IHRoaXMgPDwgIiBpbnNlcnROb2RlICIgPDwgbmV3Tm9kZUlEIDw8
ICIgZ2V0dGluZyBub2RlIGZyb20gdW5wYXJlbnRlZCBub2RlcyIpOworICAgICAgICAgICAgICAg
IExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmdUcmVlLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1N0YXRl
VHJlZSAiIDw8IHRoaXMgPDwgIiBpbnNlcnROb2RlIHJlYXR0YWNoaW5nIG5vZGUgIiA8PCBuZXdO
b2RlSUQpOwogICAgICAgICAgICAgICAgIG5ld05vZGUgPSB1bnBhcmVudGVkTm9kZS5nZXQoKTsK
ICAgICAgICAgICAgICAgICBub2RlV2FzUmVhdHRhY2hlZFJlY3Vyc2l2ZSgqdW5wYXJlbnRlZE5v
ZGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDI0ZTA5ZDc2MmFk
NjNmYzJlNTFmMjYyNDgzMzQ3MTZiZDFlOTRhODguLmY4MzBjY2Y0MDQ0M2U1ODBlOWZiNjQ0NmFm
M2JlN2M1MTk0OWZlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwCkBAIC03
MiwxMCArNzIsOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU6OmNvbW1p
dFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nUwogICAgIGlmIChzdGF0ZS5oYXND
aGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6Rml4ZWRFbGVtZW50
c0xheW91dFJlbGF0aXZlVG9GcmFtZSkpCiAgICAgICAgIG1fZml4ZWRFbGVtZW50c0xheW91dFJl
bGF0aXZlVG9GcmFtZSA9IHN0YXRlLmZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWUo
KTsKIAotICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2Rl
OjpQcm9wZXJ0eTo6TGF5b3V0Vmlld3BvcnQpKSB7CisgICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQ
cm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3BlcnR5OjpMYXlvdXRWaWV3cG9ydCkpCiAg
ICAgICAgIG1fbGF5b3V0Vmlld3BvcnQgPSBzdGF0ZS5sYXlvdXRWaWV3cG9ydCgpOwotICAgICAg
ICB1cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRTY3JvbGxQb3NpdGlvbih7IH0pOwotICAgIH0KIAog
ICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9w
ZXJ0eTo6TWluTGF5b3V0Vmlld3BvcnRPcmlnaW4pKQogICAgICAgICBtX21pbkxheW91dFZpZXdw
b3J0T3JpZ2luID0gc3RhdGUubWluTGF5b3V0Vmlld3BvcnRPcmlnaW4oKTsKQEAgLTg1LDYgKzgz
LDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVC
ZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTCiAKICAgICBpZiAoc3RhdGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6Ok92ZXJyaWRlVmlzdWFsVmll
d3BvcnRTaXplKSkKICAgICAgICAgbV9vdmVycmlkZVZpc3VhbFZpZXdwb3J0U2l6ZSA9IHN0YXRl
Lm92ZXJyaWRlVmlzdWFsVmlld3BvcnRTaXplKCk7CisKKyAgICBpZiAoc3RhdGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OkxheW91dFZpZXdwb3J0KSkg
eworICAgICAgICAvLyBUaGlzIHJlcXVpcmVzIHRoYXQgbWluTGF5b3V0Vmlld3BvcnRPcmlnaW4g
YW5kIG1heExheW91dFZpZXdwb3J0T3JpZ2luIGhhdmUgYmVlbiB1cGRhdGVkLgorICAgICAgICB1
cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRTY3JvbGxQb3NpdGlvbih7IH0pOworICAgIH0KIH0KIAog
Ym9vbCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxQb3NpdGlvbkFuZExh
eW91dFZpZXdwb3J0TWF0Y2goY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIHN0ZDo6b3B0aW9u
YWw8RmxvYXRSZWN0PiBvdmVycmlkZUxheW91dFZpZXdwb3J0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCmluZGV4IDljY2Y5NzRkOTA5ODdiZWY4MGM4N2I5MDRlOGRkMDM1ODNlZjIxZGMuLjkwYzI2
YTAxYTI1NzVkMjZjYzM3MTU3ZDlhYzRjZjcwMjkzNGFkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6
Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU4KIAogICAgIGlm
IChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6
U2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9u
ID0gc3RhdGUuc2Nyb2xsUG9zaXRpb24oKTsKLSAgICAgICAgaWYgKG1faXNGaXJzdENvbW1pdCAm
JiAhc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6
OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkKKyAgICAgICAgaWYgKG1faXNGaXJzdENvbW1pdCAm
JiAhc3RhdGUuaGFzU2Nyb2xsUG9zaXRpb25SZXF1ZXN0KCkpCiAgICAgICAgICAgICBtX2N1cnJl
bnRTY3JvbGxQb3NpdGlvbiA9IG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uOwogICAgIH0K
IApAQCAtMzM2LDcgKzMzNiwxMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpk
dW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgT3B0aW9uU2V0PFNjcm9sbAogICAgICAgICB0
cy5kdW1wUHJvcGVydHkoInJlYWNoYWJsZSBjb250ZW50IHNpemUiLCBtX3JlYWNoYWJsZUNvbnRl
bnRzU2l6ZSk7CiAgICAgdHMuZHVtcFByb3BlcnR5KCJsYXN0IGNvbW1pdHRlZCBzY3JvbGwgcG9z
aXRpb24iLCBtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlvbik7CiAKLSAgICBpZiAobV9zY3Jv
bGxPcmlnaW4gIT0gSW50UG9pbnQoKSkKKyAgICBpZiAoIW1fY3VycmVudFNjcm9sbFBvc2l0aW9u
LmlzWmVybygpKQorICAgICAgICB0cy5kdW1wUHJvcGVydHkoInNjcm9sbCBwb3NpdGlvbiIsIG1f
Y3VycmVudFNjcm9sbFBvc2l0aW9uKTsKKworICAgIGlmICghbV9zY3JvbGxPcmlnaW4uaXNaZXJv
KCkpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgic2Nyb2xsIG9yaWdpbiIsIG1fc2Nyb2xsT3Jp
Z2luKTsKIAogICAgIGlmIChtX3NuYXBPZmZzZXRzSW5mby5ob3Jpem9udGFsU25hcE9mZnNldHMu
c2l6ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCmluZGV4IGIzZDQ5NjhiMzU4MjM4ZDcwMTkz
OGE2ZDgzNTc0NWYxMTA0N2NjZTQuLjg5MjQyYzYxYTNiNTBiOGZkNjdmYjJkNzA5Nzc4ZTMzM2Ez
ZDk1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdDb29yZGluYXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lk
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpjb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpCiAgICAg
aWYgKCFzY3JvbGxpbmdTdGF0ZVRyZWUoKS0+aGFzQ2hhbmdlZFByb3BlcnRpZXMoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZ1RyZWUsIHN0cmVhbSA8
PCBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoZGVidWdTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRC
ZWhhdmlvcnMpKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nVHJlZSwgc3RyZWFtIDw8
ICJTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6Y29tbWl0VHJlZVN0YXRlOiBzdGF0ZSB0cmVlICIg
PDwgc2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KGRlYnVnU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0
QmVoYXZpb3JzKSk7CiAKICAgICBhdXRvIHN0YXRlVHJlZSA9IHNjcm9sbGluZ1N0YXRlVHJlZSgp
LT5jb21taXQoTGF5ZXJSZXByZXNlbnRhdGlvbjo6UGxhdGZvcm1MYXllclJlcHJlc2VudGF0aW9u
KTsKICAgICBzY3JvbGxpbmdUcmVlKCktPmNvbW1pdFRyZWVTdGF0ZShXVEZNb3ZlKHN0YXRlVHJl
ZSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGI4NGMxOWY2ZmMyZDE1ZTU4NTM0MGU2ODM5MDNkMjk2MzczY2MzNzIuLjhhYTMyYjhiNGZjYzBh
Mjk1MGJjYzAxNGIyZmEzMzIxMzA2NGIzNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAyMS0xMC0yMCAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBDb250ZW50IG9mZnNl
dCBpbiB0aGlzIGNvZGVwZW4gd2hlbiBzd2l0Y2hpbmcgdGFicworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxOTg5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVBJIHRlc3QgdGhhdCBzY3JvbGxzIGFuIGlm
cmFtZSB2aWEgd2hlZWwgZXZlbnRzLCB0aGVuIGRldGFjaGVkIGFuZCByZS1hdHRhY2hlcyB0aGUg
dmlldy4KKworICAgICAgICBUaGUgdHdvIHdoZWVsIHNjcm9sbHMgYXJlIG5lY2Vzc2FyeSB0byBl
eGVyY2lzZSB0aGUgInN0YWxlIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZQorICAgICAgICBz
Y3JvbGwgcG9zaXRpb24iIGlzc3VlLgorCisgICAgICAgIFRoZSBzY3JvbGxpbmcgdHJlZSBkdW1w
cyB2YWxpZGF0ZSB0aGUgbGF5b3V0IHZpZXdwb3J0IHBhcnQgb2YgdGhlIGZpeC4KKworICAgICAg
ICBBbHNvIGNvcnJlY3Qgc29tZSBmdW5jdGlvbnMgd2hlcmUgdGhlIHNlbnNlIG9mICdpc1dhaXRp
bmdGb3JKYXZhU2NyaXB0JyB3YXMgZmxpcHBlZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMubW06IEFkZGVkLgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6c3ludGhlc2l6ZVdoZWVsRXZlbnRzKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OndhaXRGb3JTY3JvbGxFdmVudEFuZFJldHVyblNjcm9sbFkpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6c2Nyb2xsaW5nVHJlZUVsaWRpbmdMYXN0Q29tbWl0dGVkU2Ny
b2xsUG9zaXRpb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHRXaXRoVXNlckdlc3R1cmU6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBvYmplY3RCeUNhbGxpbmdBc3luY0Z1bmN0aW9uOndpdGhBcmd1bWVudHM6
ZXJyb3I6XSk6CisKIDIwMjEtMTAtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWJLaXQgc2hvdWxkIHByb2Nlc3Mtc3dhcCBmb3IgaW5pdGlhbCBuYXZpZ2F0
aW9uIG9mIGEgcG9wdXAgaWYgaXQgaGFzIG5vIG9wZW5lcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBjMTc5MTY3NmI1OGE1OTRhYTBlZjhiMzQ0ZGJhMWM1MGJjMmQ2YzFiLi4wNzgzYzEwOTBi
ZjRjOTYxZDgyMzcwYjRhZGUzMzRiN2ZkMWQyNmE3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtODYsNiArODYsNyBAQAogCQkwRjRGRkE5RTFFRDNBQTg1MDBGNzExMUYgLyogU25hcHNob3RW
aWFSZW5kZXJJbkNvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjRGRkE5RDFFRDNBQTg1MDBGNzExMUYgLyogU25hcHNob3RWaWFSZW5kZXJJ
bkNvbnRleHQubW0gKi87IH07CiAJCTBGNTY1MUY3MUZDRTREREMwMDMxMEZCQyAvKiBOb0hpc3Rv
cnlJdGVtU2Nyb2xsVG9GcmFnbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNTY1MUY2MUZDRTREREIwMDMxMEZCQyAvKiBOb0hpc3RvcnlJdGVt
U2Nyb2xsVG9GcmFnbWVudC5tbSAqLzsgfTsKIAkJMEY1NjUxRjkxRkNFNTEzNTAwMzEwRkJDIC8q
IHNjcm9sbC10by1hbmNob3IuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2NTFGODFGQ0U1MEU4MDAzMTBGQkMgLyogc2Nyb2xsLXRv
LWFuY2hvci5odG1sICovOyB9OworCQkwRkVGQUY2NDI3MUZDMkNEMDA1NzA0RDcgLyogU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRUZBRjYzMjcxRkMyQ0QwMDU3MDRENyAvKiBTY3JvbGxpbmdDb29yZGlu
YXRvclRlc3RzLm1tICovOyB9OwogCQkwRkYxMTM0RTIyRDY4Njc5MDA5QTgxREEgLyogU2Nyb2xs
Vmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGRjExMzREMjJENjg2NzkwMDlBODFEQSAvKiBTY3JvbGxWaWV3U2Ny
b2xsYWJpbGl0eVRlc3RzLm1tICovOyB9OwogCQkxMTVFQjM0MzFFRTBCQTAzMDAzQzJDMEEgLyog
Vmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExNUVCMzQyMUVFMEI3MjAwMDNDMkMwQSAvKiBWaWV3cG9y
dFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tICovOyB9OwogCQkxMTcxQjI0RjIxOUY0OUNEMDBDQjg5
N0QgLyogRmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmVfQnVuZGxlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExQjdGRDIxMjE5RjQ2REQwMDY5
QjI3RiAvKiBGaXJzdE1lYW5pbmdmdWxQYWludE1pbGVzdG9uZV9CdW5kbGUuY3BwICovOyB9OwpA
QCAtMTg1Nyw2ICsxODU4LDcgQEAKIAkJMEZDNkM0Q0UxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFB
bGxvY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWV0YUFs
bG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRTQ0Nzk3MUI3NkYx
RTMwMDk0OThFQiAvKiBQYXJraW5nTG90LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFBhcmtpbmdMb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RkVBRTM2NzFCN0QxOUNCMDBDRTE3RjIgLyogQ29uZGl0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGRUZBRjYzMjcxRkMyQ0QwMDU3MDRENyAvKiBTY3JvbGxpbmdDb29yZGluYXRv
clRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xs
aW5nQ29vcmRpbmF0b3JUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZG
MTEzNEQyMkQ2ODY3OTAwOUE4MURBIC8qIFNjcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVzdHMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxWaWV3U2Nyb2xs
YWJpbGl0eVRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkZDNDVBNDFC
NzNFQkUyMDA4NUJENjIgLyogTG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE1RUIzNDIx
RUUwQjcyMDAwM0MyQzBBIC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWV3cG9ydFNpemVGb3JWaWV3cG9y
dFVuaXRzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzA4Nyw3ICszMDg5LDYg
QEAKIAkJRjQ0QTUzMEYyMUI4OTc2OTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2xhc3NNZXRob2RTd2l6emxlci5oOyBw
YXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE1MzEwMjFCODk3NjkwMERCQjk5QyAvKiBJ
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbTsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJT
aGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQ0QTdEMUYyNjhENUM2OTAwQjQ5QkI4IC8qIEltYWdlQW5hbHlzaXNUZXN0
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEltYWdlQW5hbHlzaXNUZXN0cy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQ0QTlBRjUyNjQ5QkJERDAwRTdDQjE2IC8qIEltbWVk
aWF0ZUFjdGlvblRlc3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltbWVkaWF0ZUFjdGlvblRlc3RzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE5QUY2MjY0OUJCREQwMEU3Q0IxNiAv
KiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEltbWVkaWF0
ZUFjdGlvblRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRDNzlGQjIw
RjlFNTBDMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblBsdWdJbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0NEM3OUZEMjBGOUU4NzEwMDE0NDc4QyAvKiBQYXJzZXJZaWVsZFRva2VuVGVz
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VyWWllbGRUb2tlblRlc3RzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC00ODIxLDcgKzQ4MjIsNiBAQAogCQkJCTUxRUIxMjU4MjRDNjg1
ODkwMDBDQjAzMCAvKiBISURHYW1lcGFkcy5tbSAqLywKIAkJCQk5QjRGOEZBMzE1OUQ1MkIxMDAy
RDlGOTQgLyogSFRNTENvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCiAJCQkJOUIyNkZDNkIxNTlE
MDYxMDAwQ0MzNzY1IC8qIEhUTUxGb3JtQ29sbGVjdGlvbk5hbWVkSXRlbS5tbSAqLywKLQkJCQlG
NDRBOUFGNTI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRpYXRlQWN0aW9uVGVzdHMuaCAqLywKIAkJ
CQlGNDRBOUFGNjI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRpYXRlQWN0aW9uVGVzdHMubW0gKi8s
CiAJCQkJQzUwN0U4QTYxNEM2NTQ1QjAwNUQ2QjNCIC8qIEluc3BlY3RvckJhci5tbSAqLywKIAkJ
CQk1N0YxMEQ5MjFDN0U3QjM4MDBFQ0RGMzAgLyogSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5t
bSAqLywKQEAgLTQ4NDEsNiArNDg0MSw3IEBACiAJCQkJQTU3QTM0RUYxNkFGNjc3MjAwQzI1MDFG
IC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGVXaXRoV2luZG93Q2hhbmdlcy5tbSAqLywKIAkJCQkzN0M3
ODRERTE5N0M4RjJFMDAxMEE0OTYgLyogUmVuZGVyZWRJbWFnZUZyb21ET01Ob2RlLm1tICovLAog
CQkJCTM3MjJDODY4MTQ2MUUwM0UwMEM0NUQwMCAvKiBSZW5kZXJlZEltYWdlRnJvbURPTVJhbmdl
Lm1tICovLAorCQkJCTBGRUZBRjYzMjcxRkMyQ0QwMDU3MDRENyAvKiBTY3JvbGxpbmdDb29yZGlu
YXRvclRlc3RzLm1tICovLAogCQkJCTI2MTUxNkQ1MTVCMEU2MDUwMEEyQzIwMSAvKiBTZXRBbmRV
cGRhdGVDYWNoZU1vZGVsLm1tICovLAogCQkJCTUyQjhDRjk1MTU4NjhDRjAwMDI4MTA1MyAvKiBT
ZXREb2N1bWVudFVSSS5tbSAqLywKIAkJCQlDNTQwRjc3NTE1MkU0REEwMDBBNDBDOEMgLyogU2lt
cGxpZnlNYXJrdXAubW0gKi8sCkBAIC01ODM3LDYgKzU4MzgsNyBAQAogCQkJCTk1MDk1RjIwMjYy
RkZGQTUwMDAwRDkyMCAvKiBTYW1wbGVkUGFnZVRvcENvbG9yLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RDRkE3QUExRTQ1MTgzMjAwQzI0MzNEIC8qIFNhbXBsZU1hcC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDRTA5NDczNzIwNjMyMjNCMDAzQzlCQTAgLyogU2NoZW1lUmVnaXN0cnkubW0gaW4g
U291cmNlcyAqLywKKwkJCQkwRkVGQUY2NDI3MUZDMkNEMDA1NzA0RDcgLyogU2Nyb2xsaW5nQ29v
cmRpbmF0b3JUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQzA5MzJCMjFDODcyQzEwMDMw
QzRCMCAvKiBTY3JvbGxpbmdEb2VzTm90UGF1c2VNZWRpYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RjEyMUE0MTFBRTYwMDQ0N0M0QyAvKiBTY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUY0MzRDQTFBMjJFNjVCQ0EwMDVEREIyNiAvKiBTY3JvbGxUb1Jl
dmVhbFNlbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmI3ZjBlYmFjYjUyNmM1N2M4NTU1NWQ1YzE2ZDYyZjIxNmI2MTk2YwotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yVGVzdHMubW0KQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQg
IldLV2ViVmlld0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZp
ZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKKworc3RhdGljIHZvaWQgc3ludGhlc2l6ZVdoZWVsRXZlbnRzKE5TVmlldyAq
dmlldywgQ0dQb2ludCBsb2NhdGlvbkluVmlldywgQ0dTaXplIGRlbHRhKQoreworICAgIFJldGFp
blB0cjxDR0V2ZW50UmVmPiBjZ1Njcm9sbEV2ZW50ID0gYWRvcHRDRihDR0V2ZW50Q3JlYXRlU2Ny
b2xsV2hlZWxFdmVudChudWxscHRyLCBrQ0dTY3JvbGxFdmVudFVuaXRQaXhlbCwgMiwgZGVsdGEu
aGVpZ2h0LCBkZWx0YS53aWR0aCwgMCkpOworCisgICAgQ0dQb2ludCBsb2NhdGlvbkluV2luZG93
ID0gW3ZpZXcgY29udmVydFBvaW50OmxvY2F0aW9uSW5WaWV3IHRvVmlldzpuaWxdOworICAgIENH
UG9pbnQgbG9jYXRpb25Jbkdsb2JhbFNjcmVlbkNvb3JkaW5hdGVzID0gW1t2aWV3IHdpbmRvd10g
Y29udmVydFBvaW50VG9TY3JlZW46bG9jYXRpb25JbldpbmRvd107CisgICAgbG9jYXRpb25Jbkds
b2JhbFNjcmVlbkNvb3JkaW5hdGVzLnkgPSBbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdElu
ZGV4OjBdIGZyYW1lXS5zaXplLmhlaWdodCAtIGxvY2F0aW9uSW5HbG9iYWxTY3JlZW5Db29yZGlu
YXRlcy55OworICAgIENHRXZlbnRTZXRMb2NhdGlvbihjZ1Njcm9sbEV2ZW50LmdldCgpLCBsb2Nh
dGlvbkluR2xvYmFsU2NyZWVuQ29vcmRpbmF0ZXMpOworICAgIAorICAgIE5TRXZlbnQqIGV2ZW50
ID0gW05TRXZlbnQgZXZlbnRXaXRoQ0dFdmVudDpjZ1Njcm9sbEV2ZW50LmdldCgpXTsKKyAgICBb
dmlldyBzY3JvbGxXaGVlbDpldmVudF07Cit9CisKK3N0YXRpYyBmbG9hdCB3YWl0Rm9yU2Nyb2xs
RXZlbnRBbmRSZXR1cm5TY3JvbGxZKFdLV2ViVmlldyogd2ViVmlldywgY29uc3Qgc3RkOjpmdW5j
dGlvbjx2b2lkKFdLV2ViVmlldyopPiYgc2Nyb2xsVHJpZ2dlcikKK3sKKyAgICBib29sIHJlY2Vp
dmVkU2Nyb2xsRXZlbnQgPSBmYWxzZTsKKyAgICBSZXRhaW5QdHI8aWQ+IGV2YWxSZXN1bHQ7Cisg
ICAgUmV0YWluUHRyPE5TRXJyb3I+IHN0cm9uZ0Vycm9yOworICAgIAorICAgIE5TU3RyaW5nICpz
Y3JpcHRTdHJpbmcgPSBAInJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyIgXAorICAg
ICAgICAiICAgbGV0IGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJh
bWUnKVswXTsiIFwKKyAgICAgICAgIiAgIGlmcmFtZS5jb250ZW50V2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoXCJzY3JvbGxcIiwgKGV2ZW50KSA9PiByZXNvbHZlKGlmcmFtZS5jb250ZW50V2luZG93
LnNjcm9sbFkpKTsgIiBcCisgICAgICAgICJ9KSI7CisKKyAgICBbd2ViVmlldyBjYWxsQXN5bmNK
YXZhU2NyaXB0OnNjcmlwdFN0cmluZyBhcmd1bWVudHM6bmlsIGluRnJhbWU6bmlsIGluQ29udGVu
dFdvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpbJl0gKGlk
IHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgZXZhbFJlc3VsdCA9IHJlc3VsdDsK
KyAgICAgICAgc3Ryb25nRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgcmVjZWl2ZWRTY3JvbGxFdmVu
dCA9IHRydWU7CisgICAgfV07CisKKyAgICBzY3JvbGxUcmlnZ2VyKHdlYlZpZXcpOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcm9sbEV2ZW50KTsKKworICAgIHJl
dHVybiBbZXZhbFJlc3VsdCBmbG9hdFZhbHVlXTsKK30KKworLy8gUmVtb3ZlICJsYXN0IGNvbW1p
dHRlZCBzY3JvbGwgcG9zaXRpb24iIGZvciB0aGUgaWZyYW1lJ3Mgbm9kZSwgd2hpY2ggd2UgZXhw
ZWN0IHRvIGJlIGRpZmZlcmVudC4KK3N0YXRpYyBOU1N0cmluZyAqc2Nyb2xsaW5nVHJlZUVsaWRp
bmdMYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24oTlNTdHJpbmcgKnNjcm9sbGluZ1RyZWUpCit7
CisgICAgTlNNdXRhYmxlQXJyYXkgKmxpbmVzID0gW1tbc2Nyb2xsaW5nVHJlZSBjb21wb25lbnRz
U2VwYXJhdGVkQnlDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFjdGVyU2V0IG5ld2xpbmVDaGFyYWN0
ZXJTZXRdXSBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOworICAgIAorICAgIE5TSW5kZXhTZXQq
IGxhc3RDb21taXR0ZWRMaW5lSW5kaWNlcyA9IFtsaW5lcyBpbmRleGVzT2ZPYmplY3RzUGFzc2lu
Z1Rlc3Q6XkJPT0woaWQgIF9Ob25udWxsIG9iaiwgTlNVSW50ZWdlciBpZHgsIEJPT0wgKiBfTm9u
bnVsbCBzdG9wKSB7CisgICAgICAgIHJldHVybiBbb2JqIGhhc1ByZWZpeDpAIiAgICAgICAgKGxh
c3QgY29tbWl0dGVkIHNjcm9sbCBwb3NpdGlvbiJdOworICAgIH1dOworICAgIFtsaW5lcyByZW1v
dmVPYmplY3RzQXRJbmRleGVzOmxhc3RDb21taXR0ZWRMaW5lSW5kaWNlc107CisgICAgcmV0dXJu
IFtsaW5lcyBjb21wb25lbnRzSm9pbmVkQnlTdHJpbmc6QCJcbiJdOworfQorCitURVNUKFNjcm9s
bGluZ0Nvb3JkaW5hdG9yVGVzdHMsIFNjcm9sbGluZ1RyZWVBZnRlckRldGFjaFJlYXR0YWNoKQor
eworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6
QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZ
RVNdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNTAwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbiBhZGRUb1dpbmRvdzpZRVNdKTsKKyAgICAKKyAgICBOU1N0cmluZyAqZG9jdW1l
bnRTdHJpbmcgPSBAIjxzdHlsZT5ib2R5IHsgaGVpZ2h0OiA1MDAwcHg7IH08L3N0eWxlPiIgXAor
ICAgICAgICAiPGlmcmFtZSBzcmNkb2M9XCI8c3R5bGU+Ym9keSB7IGhlaWdodDogNTAwMHB4OyB9
PC9zdHlsZT48ZGl2IHN0eWxlPSdwb3NpdGlvbjpmaXhlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6
IDUwcHg7IGJhY2tncm91bmQ6IGJsdWUnPjwvZGl2PlwiPjwvaWZyYW1lPiI7CisgICAgCisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmRvY3VtZW50U3RyaW5nXTsKKyAg
ICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBhdXRvIHNj
cm9sbFkgPSB3YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKHdlYlZpZXcuZ2V0KCks
IFtdKFdLV2ViVmlldyogd2ViVmlldykgeworICAgICAgICBzeW50aGVzaXplV2hlZWxFdmVudHMo
d2ViVmlldywgQ0dQb2ludE1ha2UoNTAsIDUwKSwgQ0dTaXplTWFrZSgwLCAtMTAwKSk7CisgICAg
fSk7CisgICAgRVhQRUNUX0VRKHNjcm9sbFksIDEwMCk7CisKKyAgICAvLyBTZW5kIGEgc2Vjb25k
IHdoZWVsIGV2ZW50IHRvIHRyaWdnZXIgcmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUoKSB0aGF0IGRv
ZXMgbm90IGVuZCB1cCBpbiBzZXRTY3JvbGxpbmdOb2RlU2Nyb2xsYWJsZUFyZWFHZW9tZXRyeSgp
IChzb21lIGNvbXBvc2l0aW5nIGNvZGUgZWFybHkgcmV0dXJucykuCisgICAgLy8gVGhpcyB3b3Vs
ZCBsZWF2ZSB0aGUgc2Nyb2xsaW5nIHN0YXRlIHRyZWUgd2l0aCBhIHN0YWxlIG1fc2Nyb2xsUG9z
aXRpb24uCisgICAgc2Nyb2xsWSA9IHdhaXRGb3JTY3JvbGxFdmVudEFuZFJldHVyblNjcm9sbFko
d2ViVmlldy5nZXQoKSwgW10oV0tXZWJWaWV3KiB3ZWJWaWV3KSB7CisgICAgICAgIHN5bnRoZXNp
emVXaGVlbEV2ZW50cyh3ZWJWaWV3LCBDR1BvaW50TWFrZSg1MCwgNTApLCBDR1NpemVNYWtlKDAs
IC0xMDApKTsKKyAgICB9KTsKKyAgICBFWFBFQ1RfRVEoc2Nyb2xsWSwgMjAwKTsKKworICAgIFt3
ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKworICAgIE5TU3RyaW5nICpz
Y3JvbGxpbmdUcmVlQmVmb3JlID0gc2Nyb2xsaW5nVHJlZUVsaWRpbmdMYXN0Q29tbWl0dGVkU2Ny
b2xsUG9zaXRpb24oW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImludGVy
bmFscy5zY3JvbGxpbmdUcmVlQXNUZXh0KCkiXSk7CisKKyAgICBOU1dpbmRvdyAqaG9zdFdpbmRv
dyA9IFt3ZWJWaWV3IHdpbmRvd107CisgICAgW3dlYlZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107
CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIFtbaG9z
dFdpbmRvdyBjb250ZW50Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKKyAgICBbd2Vi
VmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBOU1N0cmluZyAqc2Ny
b2xsaW5nVHJlZUFmdGVyID0gc2Nyb2xsaW5nVHJlZUVsaWRpbmdMYXN0Q29tbWl0dGVkU2Nyb2xs
UG9zaXRpb24oW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImludGVybmFs
cy5zY3JvbGxpbmdUcmVlQXNUZXh0KCkiXSk7CisKKyAgICBFWFBFQ1RfVFJVRShbc2Nyb2xsaW5n
VHJlZUJlZm9yZSBpc0VxdWFsVG9TdHJpbmc6c2Nyb2xsaW5nVHJlZUFmdGVyXSk7CisKKyAgICBz
Y3JvbGxZID0gd2FpdEZvclNjcm9sbEV2ZW50QW5kUmV0dXJuU2Nyb2xsWSh3ZWJWaWV3LmdldCgp
LCBbXShXS1dlYlZpZXcqIHdlYlZpZXcpIHsKKyAgICAgICAgc3ludGhlc2l6ZVdoZWVsRXZlbnRz
KHdlYlZpZXcsIENHUG9pbnRNYWtlKDUwLCA1MCksIENHU2l6ZU1ha2UoMCwgLTEwMSkpOworICAg
IH0pOworICAgIEVYUEVDVF9FUShzY3JvbGxZLCAzMDEpOworfQorCit9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggYzAyZTBkZjQyNjcwNjgzZGI1N2YwMzkw
YTFjNjRlNzc3ZmE1OGY4Yi4uNzJjZWY2OGQ4ZWU3OWUwMjg3OGU3YzNkNTgyODc4MDA0YzIzYjNj
MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQpAQCAtMjA0
LDM3ICsyMDQsMzcgQEAgLSAoQk9PTClldmFsdWF0ZU1lZGlhUXVlcnk6KE5TU3RyaW5nICopcXVl
cnkKIAogLSAoaWQpb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDooTlNTdHJpbmcgKilzY3Jp
cHQKIHsKLSAgICBib29sIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSBmYWxzZTsKKyAgICBib29s
IGNhbGxiYWNrQ29tcGxldGUgPSBmYWxzZTsKICAgICBSZXRhaW5QdHI8aWQ+IGV2YWxSZXN1bHQ7
CiAgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdFdpdGhvdXRVc2VyR2VzdHVyZTpzY3JpcHQg
Y29tcGxldGlvbkhhbmRsZXI6WyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAg
ICAgIGV2YWxSZXN1bHQgPSByZXN1bHQ7Ci0gICAgICAgIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQg
PSB0cnVlOworICAgICAgICBjYWxsYmFja0NvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgRVhQRUNU
X1RSVUUoIWVycm9yKTsKICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgTlNMb2coQCJF
bmNvdW50ZXJlZCBlcnJvcjogJUAgd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQ6ICVAIiwgZXJyb3Is
IHNjcmlwdCk7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1dhaXRp
bmdGb3JKYXZhU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNhbGxiYWNr
Q29tcGxldGUpOwogICAgIHJldHVybiBldmFsUmVzdWx0LmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0g
KGlkKW9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHRXaXRoVXNlckdlc3R1cmU6KE5TU3RyaW5n
ICopc2NyaXB0CiB7Ci0gICAgYm9vbCBpc1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gZmFsc2U7Cisg
ICAgYm9vbCBjYWxsYmFja0NvbXBsZXRlID0gZmFsc2U7CiAgICAgUmV0YWluUHRyPGlkPiBldmFs
UmVzdWx0OwogICAgIFtzZWxmIGV2YWx1YXRlSmF2YVNjcmlwdDpzY3JpcHQgY29tcGxldGlvbkhh
bmRsZXI6WyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIGV2YWxSZXN1
bHQgPSByZXN1bHQ7Ci0gICAgICAgIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSB0cnVlOworICAg
ICAgICBjYWxsYmFja0NvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgRVhQRUNUX1RSVUUoIWVycm9y
KTsKICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgTlNMb2coQCJFbmNvdW50ZXJlZCBl
cnJvcjogJUAgd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQ6ICVAIiwgZXJyb3IsIHNjcmlwdCk7CiAg
ICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1dhaXRpbmdGb3JKYXZhU2Ny
aXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNhbGxiYWNrQ29tcGxldGUpOwog
ICAgIHJldHVybiBldmFsUmVzdWx0LmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKGlkKW9iamVjdEJ5
Q2FsbGluZ0FzeW5jRnVuY3Rpb246KE5TU3RyaW5nICopc2NyaXB0IHdpdGhBcmd1bWVudHM6KE5T
RGljdGlvbmFyeSAqKWFyZ3VtZW50cyBlcnJvcjooTlNFcnJvciAqKillcnJvck91dAogewotICAg
IGJvb2wgaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCA9IGZhbHNlOworICAgIGJvb2wgY2FsbGJhY2tD
b21wbGV0ZSA9IGZhbHNlOwogICAgIGlmIChlcnJvck91dCkKICAgICAgICAgKmVycm9yT3V0ID0g
bmlsOwogCkBAIC0yNDMsOSArMjQzLDkgQEAgLSAoaWQpb2JqZWN0QnlDYWxsaW5nQXN5bmNGdW5j
dGlvbjooTlNTdHJpbmcgKilzY3JpcHQgd2l0aEFyZ3VtZW50czooTlNEaWN0aW9uYXIKICAgICBb
c2VsZiBjYWxsQXN5bmNKYXZhU2NyaXB0OnNjcmlwdCBhcmd1bWVudHM6YXJndW1lbnRzIGluRnJh
bWU6bmlsIGluQ29udGVudFdvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21wbGV0aW9u
SGFuZGxlcjpbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAgICAgZXZhbFJl
c3VsdCA9IHJlc3VsdDsKICAgICAgICAgc3Ryb25nRXJyb3IgPSBlcnJvcjsKLSAgICAgICAgaXNX
YWl0aW5nRm9ySmF2YVNjcmlwdCA9IHRydWU7CisgICAgICAgIGNhbGxiYWNrQ29tcGxldGUgPSB0
cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNXYWl0aW5nRm9y
SmF2YVNjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZjYWxsYmFja0NvbXBs
ZXRlKTsKIAogICAgIGlmIChlcnJvck91dCkKICAgICAgICAgKmVycm9yT3V0ID0gc3Ryb25nRXJy
b3IuYXV0b3JlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NzQwNmQwOWI3MjM4ZWY3YmNiYjU0YTQ2YTJiNzI3
YTUxYjQ1YjJkLi4zMzBjOTg1M2MyNWE0YWVkZTVjY2Q3OWEyNjE3YmU5YTE3ZmZmODAzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMjEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udGVudCBvZmZzZXQgaW4gdGhpcyBjb2RlcGVuIHdo
ZW4gc3dpdGNoaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTk4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5ldyBiYXNlbGluZXMuCisKKyAgICAgICAgKiB0aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9jbGFtcC1vdXQtb2YtYm91bmRzLXNjcm9sbHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbGluZy10cmVlLWFmdGVyLXNjcm9sbC1leHBl
Y3RlZC50eHQ6CisKIDIwMjEtMTAtMjEgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI4Mzg2NCk6IEFwcGxlIFBheSBuYW1lZCBpbWFnZXMg
YXJlIG1pc3NpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xs
aW5nL2NsYW1wLW91dC1vZi1ib3VuZHMtc2Nyb2xscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9jbGFtcC1vdXQtb2YtYm91bmRzLXNjcm9sbHMtZXhw
ZWN0ZWQudHh0CmluZGV4IDE1MmViMWJiMzI0MmU3ZThlM2ZmMDk5NWQ3N2ZhYjU1NTYwMzhhNWYu
LjQ5ZmYyOWI0YTFlMDU1ODY3ZmU0YTNkYTAwN2Q3NWM1OTlmNDk3YTYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2NsYW1wLW91dC1vZi1ib3VuZHMtc2Ny
b2xscy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvY2xhbXAtb3V0LW9mLWJvdW5kcy1zY3JvbGxzLWV4cGVjdGVkLnR4dApAQCAtNTUsNiArNTUs
NyBAQCBBdHRlbXB0ZWQgc2Nyb2xsIHRvIC01MDAwLCAtNTAwMAogQXR0ZW1wdGVkIHNjcm9sbCB0
byAxMDAwMCwgMAogCiAoRnJhbWUgc2Nyb2xsaW5nIG5vZGUKKyAgKHNjcm9sbCBwb3NpdGlvbiA0
MjIzIDApCiAgIChzY3JvbGxhYmxlIGFyZWEgc2l6ZSA3ODUgNTg1KQogICAoY29udGVudHMgc2l6
ZSA1MDA4IDUwMjEpCiAgIChyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIDQyMjMgMCkKQEAgLTc1
LDcgKzc2LDcgQEAgQXR0ZW1wdGVkIHNjcm9sbCB0byAxMDAwMCwgMAogQXR0ZW1wdGVkIHNjcm9s
bCB0byAwLCAxMDAwMAogCiAoRnJhbWUgc2Nyb2xsaW5nIG5vZGUKLSAgKHNjcm9sbCBwb3NpdGlv
biA0MjIzIDApCisgIChzY3JvbGwgcG9zaXRpb24gMCA0NDM2KQogICAoc2Nyb2xsYWJsZSBhcmVh
IHNpemUgNzg1IDU4NSkKICAgKGNvbnRlbnRzIHNpemUgNTAwOCA1MDIxKQogICAocmVxdWVzdGVk
IHNjcm9sbCBwb3NpdGlvbiAwIDQ0MzYpCkBAIC05Niw3ICs5Nyw3IEBAIEF0dGVtcHRlZCBzY3Jv
bGwgdG8gMCwgMTAwMDAKIEF0dGVtcHRlZCBzY3JvbGwgdG8gMTAwMDAsIDEwMDAwCiAKIChGcmFt
ZSBzY3JvbGxpbmcgbm9kZQotICAoc2Nyb2xsIHBvc2l0aW9uIDAgNDQzNikKKyAgKHNjcm9sbCBw
b3NpdGlvbiA0MjIzIDQ0MzYpCiAgIChzY3JvbGxhYmxlIGFyZWEgc2l6ZSA3ODUgNTg1KQogICAo
Y29udGVudHMgc2l6ZSA1MDA4IDUwMjEpCiAgIChyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIDQy
MjMgNDQzNikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L3Njcm9sbGluZy10cmVlLWFmdGVyLXNjcm9sbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGxpbmctdHJlZS1hZnRlci1zY3JvbGwtZXhwZWN0
ZWQudHh0CmluZGV4IGRiNDM2ODhiYjY3YWFmYWYwYmRhM2E3YTQ5ZmU2ZTdkYjZiNGJmNGYuLmQz
NTliNzAyOTVlZTNiZGY3ZWRhMjExMmUzOWU2ZGU2MWM1YzU3NGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbGluZy10cmVlLWFmdGVyLXNjcm9s
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
c2Nyb2xsaW5nLXRyZWUtYWZ0ZXItc2Nyb2xsLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDYgQEAK
IAogKEZyYW1lIHNjcm9sbGluZyBub2RlCisgIChzY3JvbGwgcG9zaXRpb24gMCAzMDAwKQogICAo
c2Nyb2xsYWJsZSBhcmVhIHNpemUgNzg1IDYwMCkKICAgKGNvbnRlbnRzIHNpemUgNzg1IDUwMjEp
CiAgIChyZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIDAgMzAwMCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442070</attachid>
            <date>2021-10-21 15:07:31 -0700</date>
            <delta_ts>2021-10-22 13:21:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231989-20211021150730.patch</filename>
            <type>text/plain</type>
            <size>32417</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVlYzc2MTZlZGQ1ZDI3
NmY3MTJjZDI5NDZjNjkzNTQyODk3YWI2ZS4uN2ExNjQ3NGFhNDM5MjdmZjZiM2NjNGEyMDg3MThk
OThlNWQzYWE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTEwLTIwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbnRlbnQgb2Zm
c2V0IGluIHRoaXMgY29kZXBlbiB3aGVuIHN3aXRjaGluZyB0YWJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5ODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFRoZXJlIHdlcmUgdHdvIHByb2JsZW1zIHRoYXQg
b2NjdXJyZWQgd2l0aCBhc3luYy1zY3JvbGxhYmxlIGlmcmFtZXMgd2hlbiB0aGVpciBhc3NvY2lh
dGVkCisgICAgICAgIFdLV2ViVmlldyB3YXMgcmVtb3ZlZCBhbmQgcmUtYWRkZWQgdG8gdGhlIHZp
ZXcgaGllcmFyY2h5IChlLmcuIHdoZW4gc3dpdGNoaW5nIHRhYnMpLgorICAgICAgICBUaGVzZSBy
ZXN1bHRlZCBpbiBtaXNwbGFjZWQgcG9zaXRpb246Zml4ZWQgY29udGVudCwgYW5kIHRoZSBmaXJz
dCB1c2VyIHNjcm9sbCBpbiB0aGUgCisgICAgICAgIGlmcmFtZSBjYXVzaW5nIHRoZSBzY3JvbGwg
cG9zaXRpb24gdG8ganVtcCBiYWNrIHRvIHRoZSB0b3AuCisKKyAgICAgICAgVGhlIHBvc2l0b246
Zml4ZWQgaXNzdWUgd2FzIGNhdXNlZCBieSBhbiBvcmRlcmluZyBwcm9ibGVtIGluCisgICAgICAg
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRy
ZW4oKSB3aGljaCByZXN1bHRlZCBpbiB0aGUgbGF5b3V0CisgICAgICAgIHZpZXdwb3J0IGJlaW5n
IGNvbXB1dGVkIGluY29ycmVjdGx5OyB3ZSBjYWxsZWQgdXBkYXRlVmlld3BvcnRGb3JDdXJyZW50
U2Nyb2xsUG9zaXRpb24oKQorICAgICAgICBiZWZvcmUgc2V0dGluZyB0aGUgbWluIGFuZCBtYXgg
c2Nyb2xsIHBvc2l0aW9uLCBzbyB3ZSdkIGFsd2F5cyBjbGFtcCB0aGUgbGF5b3V0IHZpZXdwb3J0
IHRvCisgICAgICAgIGEgbG9jYXRpb24gb2YgMCwwLgorCisgICAgICAgIFRoZSBzZWNvbmQgc2Ny
b2xsIHBvc2l0aW9uIHJlc2V0IGlzc3VlIHdhcyBjYXVzZWQgYnkgdGhlIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlJ3MKKyAgICAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gcmV2ZXJ0aW5n
IHRvIGEgc3RhbGUgYWZ0ZXIgcmUtYXR0YWNoaW5nIHRoZSBpZnJhbWUncyBzY3JvbGxpbmcKKyAg
ICAgICAgc3VidHJlZS4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVm
b3JlQ2hpbGRyZW4oKSBoYXMgY29kZSB0byBzZXQKKyAgICAgICAgbV9jdXJyZW50U2Nyb2xsUG9z
aXRpb24gZnJvbSB0aGUgc3RhdGUgdHJlZSBub2RlJ3Mgc2Nyb2xsIHBvc2l0aW9uIG9uIGZpcnN0
IGNvbW1pdDsKKyAgICAgICAgdGhlIGlzc3VlIHdhcyB0aGF0IFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSdzIHNjcm9sbFBvc2l0aW9uKCkgd2FzIG5vdCB1cGRhdGVkIG9uIGV2ZXJ5CisgICAg
ICAgIHNjcm9sbCwgb25seSB3aGVuIHNvbWV0aGluZyB0cmlnZ2VyZWQgYSBzY3JvbGxpbmcgdHJl
ZSBjb21taXQuCisKKyAgICAgICAgRml4IGJ5IHNpbGVudGx5IHVwZGF0aW5nIFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZSdzIHNjcm9sbFBvc2l0aW9uKCkgd2hlbiB3ZSBnZXQKKyAgICAgICAg
bm90aWZpY2F0aW9ucyBiYWNrIGZyb20gdGhlIHNjcm9sbGluZyB0aHJlYWQgdGhhdCBhIHNjcm9s
bCBoYXBwZW5lZC4KKworICAgICAgICBCb3RoIGZpeGVzIGFyZSB0ZXN0ZWQgYnkgdGhlIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yVGVzdHMuU2Nyb2xsaW5nVHJlZUFmdGVyRGV0YWNoUmVhdHRhY2ggQVBJ
IHRlc3QuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCk6CisgICAgICAgICogcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c3luY1Njcm9sbFBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6aGFzU2Nyb2xsUG9zaXRp
b25SZXF1ZXN0IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZVRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjppbnNlcnRO
b2RlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4pOiBXZSBuZWVkIHRvIGNoZWNrCisgICAg
ICAgIHN0YXRlLmhhc1Njcm9sbFBvc2l0aW9uUmVxdWVzdCgpLCBvdGhlcndpc2UgdGhlICJjYW5j
ZWwgYW5pbWF0ZWQgc2Nyb2xsIHJlcXVlc3QiIHRoYXQgY29tZXMKKyAgICAgICAgb3V0IG9mIFBh
Z2U6OnN0b3BLZXlib2FyZFNjcm9sbEFuaW1hdGlvbigpIHByZXZlbnRzIHNjcm9sbCBwb3NpdGlv
biByZXN0b3JhdGlvbi4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6ZHVtcFByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpjb21taXRUcmVlU3RhdGVJZk5lZWRl
ZCk6CisKIDIwMjEtMTAtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFttYWNPU10gVXBkYXRlIGFwcGVhcmFuY2Ugb2YgPGRhdGFsaXN0PiBpbmRpY2F0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNTQ4M2IyMmQ2OWM5YzQ0MjA5OWRiMGRhNWRi
NzAzYjBmMTEyMjRmOC4uNjBlM2Q3YWI4OTc5NmQxZTYzMTExYjE2N2Y3NTlhZWUwZGM4MTVjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAgLTQ1MSw2ICs0NTEsMTIgQEAgdm9pZCBBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwo
U2Nyb2xsaW5nTm8KICAgICAgICAgICAgIG1fcGFnZS0+ZWRpdG9yQ2xpZW50KCkuc3ViRnJhbWVT
Y3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsKICAgICB9CiAKKyAgICBhdXRvKiBub2RlID0gbV9zY3Jv
bGxpbmdTdGF0ZVRyZWUtPnN0YXRlTm9kZUZvcklEKHNjcm9sbGluZ05vZGVJRCk7CisgICAgaWYg
KGlzPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4obm9kZSkpIHsKKyAgICAgICAgYXV0byYg
c2Nyb2xsaW5nTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZT4oKm5v
ZGUpOworICAgICAgICBzY3JvbGxpbmdOb2RlLnN5bmNTY3JvbGxQb3NpdGlvbihzY3JvbGxQb3Np
dGlvbik7CisgICAgfQorCiAgICAgaWYgKHNjcm9sbGluZ05vZGVJRCA9PSBmcmFtZVZpZXcuc2Ny
b2xsaW5nTm9kZUlEKCkpIHsKICAgICAgICAgcmVjb25jaWxlU2Nyb2xsaW5nU3RhdGUoZnJhbWVW
aWV3LCBzY3JvbGxQb3NpdGlvbiwgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIHNjcm9sbFR5cGUsIFZp
ZXdwb3J0UmVjdFN0YWJpbGl0eTo6U3RhYmxlLCBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggOGJhOGNi
YmNjYWZmZmJiZGM2YjU4MGI3ZWJjOWY0NjcxZTZjYjI5Yy4uZTA0ZWEzNDQzMWViNWE3NTQyODYy
OTkxNjE1MTVmMDgxNmIxYWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCkBAIC0xNDMs
NiArMTQzLDExIEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRTY3JvbGxQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpCiAgICAgc2V0UHJvcGVydHlDaGFu
Z2VkKFByb3BlcnR5OjpTY3JvbGxQb3NpdGlvbik7CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpzeW5jU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24pCit7CisgICAgbV9zY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOworfQor
CiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xsT3JpZ2luKGNvbnN0
IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCiB7CiAgICAgaWYgKG1fc2Nyb2xsT3JpZ2luID09IHNj
cm9sbE9yaWdpbikKQEAgLTIwNiw2ICsyMTEsMTEgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OnNldFJlcXVlc3RlZFNjcm9sbERhdGEoY29uc3QgUmVxdWVzdGVkU2Nyb2xsRGEK
ICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoUHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9u
KTsKIH0KIAorYm9vbCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6Omhhc1Njcm9sbFBvc2l0
aW9uUmVxdWVzdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc0NoYW5nZWRQcm9wZXJ0eShQcm9w
ZXJ0eTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pICYmIG1fcmVxdWVzdGVkU2Nyb2xsRGF0YS5y
ZXF1ZXN0VHlwZSA9PSBTY3JvbGxSZXF1ZXN0VHlwZTo6UG9zaXRpb25VcGRhdGU7Cit9CisKIHZv
aWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRJc01vbml0b3JpbmdXaGVlbEV2ZW50
cyhib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKQogewogICAgIGlmIChpc01vbml0b3JpbmdX
aGVlbEV2ZW50cyA9PSBtX2lzTW9uaXRvcmluZ1doZWVsRXZlbnRzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuaAppbmRleCA0NTg1NDJjZWU4ODFmMTk3NDFhN2Q4YjI5MjUxZTY5MWRjMzc1NTFjLi5hZGE3
MzExMjI4N2Y5MjBmZDBhNjA5ZjcwZDAzNWI1ZWJmNjRjOGRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuaApAQCAtNTQsNiArNTQsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbFBvc2l0aW9uOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAK
KyAgICAvLyBEb2VzIG5vdCB0cmlnZ2VyIGEgc2Nyb2xsaW5nIHRyZWUgY29tbWl0LgorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc3luY1Njcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsK
KwogICAgIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbE9yaWdpbjsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2Nyb2xsT3JpZ2luKGNv
bnN0IEludFBvaW50Jik7CiAKQEAgLTc4LDYgKzgxLDggQEAgcHVibGljOgogICAgIGNvbnN0IFJl
cXVlc3RlZFNjcm9sbERhdGEmIHJlcXVlc3RlZFNjcm9sbERhdGEoKSBjb25zdCB7IHJldHVybiBt
X3JlcXVlc3RlZFNjcm9sbERhdGE7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVl
c3RlZFNjcm9sbERhdGEoY29uc3QgUmVxdWVzdGVkU2Nyb2xsRGF0YSYpOwogCisgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBoYXNTY3JvbGxQb3NpdGlvblJlcXVlc3QoKSBjb25zdDsKKwogICAgIGJv
b2wgaXNNb25pdG9yaW5nV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lzTW9uaXRvcmlu
Z1doZWVsRXZlbnRzOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRJc01vbml0b3JpbmdX
aGVlbEV2ZW50cyhib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKaW5kZXggYjczNDAxNDIyMTZhNTgyNjA5N2RlNzdk
NDk0YjY2OGUxODM5YTk2NC4uNTFlYTMyYjIwMmE0MWMzMDk5ZDQ4MTJhYTZjODJkZjA3ODM2OTUy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVRyZWUuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGlu
Z1N0YXRlVHJlZTo6aW5zZXJ0Tm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2wK
IAogICAgICAgICBpZiAocGFyZW50SUQpIHsKICAgICAgICAgICAgIGlmIChhdXRvIHVucGFyZW50
ZWROb2RlID0gbV91bnBhcmVudGVkTm9kZXMudGFrZShuZXdOb2RlSUQpKSB7Ci0gICAgICAgICAg
ICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZ1RyZWUsIHN0cmVhbSA8PCAiU2Nyb2xsaW5n
U3RhdGVUcmVlICIgPDwgdGhpcyA8PCAiIGluc2VydE5vZGUgIiA8PCBuZXdOb2RlSUQgPDwgIiBn
ZXR0aW5nIG5vZGUgZnJvbSB1bnBhcmVudGVkIG5vZGVzIik7CisgICAgICAgICAgICAgICAgTE9H
X1dJVEhfU1RSRUFNKFNjcm9sbGluZ1RyZWUsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nU3RhdGVUcmVl
ICIgPDwgdGhpcyA8PCAiIGluc2VydE5vZGUgcmVhdHRhY2hpbmcgbm9kZSAiIDw8IG5ld05vZGVJ
RCk7CiAgICAgICAgICAgICAgICAgbmV3Tm9kZSA9IHVucGFyZW50ZWROb2RlLmdldCgpOwogICAg
ICAgICAgICAgICAgIG5vZGVXYXNSZWF0dGFjaGVkUmVjdXJzaXZlKCp1bnBhcmVudGVkTm9kZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXggMjRlMDlkNzYyYWQ2M2Zj
MmU1MWYyNjI0ODMzNDcxNmJkMWU5NGE4OC4uZjgzMGNjZjQwNDQzZTU4MGU5ZmI2NDQ2YWYzYmU3
YzUxOTQ5ZmU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTcyLDEw
ICs3Miw4IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3Rh
dGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTCiAgICAgaWYgKHN0YXRlLmhhc0NoYW5n
ZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3BlcnR5OjpGaXhlZEVsZW1lbnRzTGF5
b3V0UmVsYXRpdmVUb0ZyYW1lKSkKICAgICAgICAgbV9maXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRp
dmVUb0ZyYW1lID0gc3RhdGUuZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgpOwog
Ci0gICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlBy
b3BlcnR5OjpMYXlvdXRWaWV3cG9ydCkpIHsKKyAgICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVydHk6OkxheW91dFZpZXdwb3J0KSkKICAgICAg
ICAgbV9sYXlvdXRWaWV3cG9ydCA9IHN0YXRlLmxheW91dFZpZXdwb3J0KCk7Ci0gICAgICAgIHVw
ZGF0ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKHsgfSk7Ci0gICAgfQogCiAgICAg
aWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3BlcnR5
OjpNaW5MYXlvdXRWaWV3cG9ydE9yaWdpbikpCiAgICAgICAgIG1fbWluTGF5b3V0Vmlld3BvcnRP
cmlnaW4gPSBzdGF0ZS5taW5MYXlvdXRWaWV3cG9ydE9yaWdpbigpOwpAQCAtODUsNiArODMsMTEg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOjpjb21taXRTdGF0ZUJlZm9y
ZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1MKIAogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6T3ZlcnJpZGVWaXN1YWxWaWV3cG9y
dFNpemUpKQogICAgICAgICBtX292ZXJyaWRlVmlzdWFsVmlld3BvcnRTaXplID0gc3RhdGUub3Zl
cnJpZGVWaXN1YWxWaWV3cG9ydFNpemUoKTsKKworICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJv
cGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6TGF5b3V0Vmlld3BvcnQpKSB7Cisg
ICAgICAgIC8vIFRoaXMgcmVxdWlyZXMgdGhhdCBtaW5MYXlvdXRWaWV3cG9ydE9yaWdpbiBhbmQg
bWF4TGF5b3V0Vmlld3BvcnRPcmlnaW4gaGF2ZSBiZWVuIHVwZGF0ZWQuCisgICAgICAgIHVwZGF0
ZVZpZXdwb3J0Rm9yQ3VycmVudFNjcm9sbFBvc2l0aW9uKHsgfSk7CisgICAgfQogfQogCiBib29s
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU6OnNjcm9sbFBvc2l0aW9uQW5kTGF5b3V0
Vmlld3BvcnRNYXRjaChjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgc3RkOjpvcHRpb25hbDxG
bG9hdFJlY3Q+IG92ZXJyaWRlTGF5b3V0Vmlld3BvcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAK
aW5kZXggOWNjZjk3NGQ5MDk4N2JlZjgwYzg3YjkwNGU4ZGQwMzU4M2VmMjFkYy4uOTBjMjZhMDFh
MjU3NWQyNmNjMzcxNTdkOWFjNGNmNzAyOTM0YWQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNw
cApAQCAtNjcsNyArNjcsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjb21t
aXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTgogCiAgICAgaWYgKHN0
YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3BlcnR5OjpTY3Jv
bGxQb3NpdGlvbikpIHsKICAgICAgICAgbV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24gPSBz
dGF0ZS5zY3JvbGxQb3NpdGlvbigpOwotICAgICAgICBpZiAobV9pc0ZpcnN0Q29tbWl0ICYmICFz
dGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6UmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24pKQorICAgICAgICBpZiAobV9pc0ZpcnN0Q29tbWl0ICYmICFz
dGF0ZS5oYXNTY3JvbGxQb3NpdGlvblJlcXVlc3QoKSkKICAgICAgICAgICAgIG1fY3VycmVudFNj
cm9sbFBvc2l0aW9uID0gbV9sYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb247CiAgICAgfQogCkBA
IC0zMzYsNyArMzM2LDEwIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQ
cm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBPcHRpb25TZXQ8U2Nyb2xsCiAgICAgICAgIHRzLmR1
bXBQcm9wZXJ0eSgicmVhY2hhYmxlIGNvbnRlbnQgc2l6ZSIsIG1fcmVhY2hhYmxlQ29udGVudHNT
aXplKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImxhc3QgY29tbWl0dGVkIHNjcm9sbCBwb3NpdGlv
biIsIG1fbGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uKTsKIAotICAgIGlmIChtX3Njcm9sbE9y
aWdpbiAhPSBJbnRQb2ludCgpKQorICAgIGlmICghbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24uaXNa
ZXJvKCkpCisgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgic2Nyb2xsIHBvc2l0aW9uIiwgbV9jdXJy
ZW50U2Nyb2xsUG9zaXRpb24pOworCisgICAgaWYgKCFtX3Njcm9sbE9yaWdpbi5pc1plcm8oKSkK
ICAgICAgICAgdHMuZHVtcFByb3BlcnR5KCJzY3JvbGwgb3JpZ2luIiwgbV9zY3JvbGxPcmlnaW4p
OwogCiAgICAgaWYgKG1fc25hcE9mZnNldHNJbmZvLmhvcml6b250YWxTbmFwT2Zmc2V0cy5zaXpl
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggYjNkNDk2OGIzNTgyMzhkNzAxOTM4YTZk
ODM1NzQ1ZjExMDQ3Y2NlNC4uODkyNDJjNjFhM2I1MGI4ZmQ2N2ZiMmQ3MDk3NzhlMzMzYTNkOTU4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6OmNvbW1pdFRyZWVTdGF0ZUlmTmVlZGVkKCkKICAgICBpZiAo
IXNjcm9sbGluZ1N0YXRlVHJlZSgpLT5oYXNDaGFuZ2VkUHJvcGVydGllcygpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nVHJlZSwgc3RyZWFtIDw8IHNj
cm9sbGluZ1N0YXRlVHJlZUFzVGV4dChkZWJ1Z1Njcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2
aW9ycykpOworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmdUcmVlLCBzdHJlYW0gPDwgIlNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpjb21taXRUcmVlU3RhdGU6IHN0YXRlIHRyZWUgIiA8PCBz
Y3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoZGVidWdTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhh
dmlvcnMpKTsKIAogICAgIGF1dG8gc3RhdGVUcmVlID0gc2Nyb2xsaW5nU3RhdGVUcmVlKCktPmNv
bW1pdChMYXllclJlcHJlc2VudGF0aW9uOjpQbGF0Zm9ybUxheWVyUmVwcmVzZW50YXRpb24pOwog
ICAgIHNjcm9sbGluZ1RyZWUoKS0+Y29tbWl0VHJlZVN0YXRlKFdURk1vdmUoc3RhdGVUcmVlKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjg0
YzE5ZjZmYzJkMTVlNTg1MzQwZTY4MzkwM2QyOTYzNzNjYzM3Mi4uOTI0YmYyMTljMzA3MTJkZTQy
ODA1ZjYxMGVjNjQ4MTJkZWU5ZjFlOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTEwLTIwICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbnRlbnQgb2Zmc2V0IGlu
IHRoaXMgY29kZXBlbiB3aGVuIHN3aXRjaGluZyB0YWJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5ODkKKworICAgICAgICBSZXZpZXdlZCBieSBU
aW0gSG9ydG9uLgorCisgICAgICAgIEFQSSB0ZXN0IHRoYXQgc2Nyb2xscyBhbiBpZnJhbWUgdmlh
IHdoZWVsIGV2ZW50cywgdGhlbiBkZXRhY2hlZCBhbmQgcmUtYXR0YWNoZXMgdGhlIHZpZXcuCisK
KyAgICAgICAgVGhlIHR3byB3aGVlbCBzY3JvbGxzIGFyZSBuZWNlc3NhcnkgdG8gZXhlcmNpc2Ug
dGhlICJzdGFsZSBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUKKyAgICAgICAgc2Nyb2xsIHBv
c2l0aW9uIiBpc3N1ZS4KKworICAgICAgICBUaGUgc2Nyb2xsaW5nIHRyZWUgZHVtcHMgdmFsaWRh
dGUgdGhlIGxheW91dCB2aWV3cG9ydCBwYXJ0IG9mIHRoZSBmaXguCisKKyAgICAgICAgQWxzbyBj
b3JyZWN0IHNvbWUgZnVuY3Rpb25zIHdoZXJlIHRoZSBzZW5zZSBvZiAnaXNXYWl0aW5nRm9ySmF2
YVNjcmlwdCcgd2FzIGZsaXBwZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL21hYy9TY3JvbGxpbmdDb29yZGluYXRvclRlc3RzLm1tOiBBZGRlZC4KKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OnN5bnRoZXNpemVXaGVlbEV2ZW50cyk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjp3YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OnNjcm9sbGluZ1RyZWVFbGlkaW5nTGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0
aW9uKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG9iamVj
dEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBvYmplY3RC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOl0pOgorICAgICAgICAoLVtXS1dl
YlZpZXcgb2JqZWN0QnlDYWxsaW5nQXN5bmNGdW5jdGlvbjp3aXRoQXJndW1lbnRzOmVycm9yOl0p
OgorCiAyMDIxLTEwLTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViS2l0IHNob3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRpYWwgbmF2aWdhdGlvbiBvZiBh
IHBvcHVwIGlmIGl0IGhhcyBubyBvcGVuZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzE3
OTE2NzZiNThhNTk0YWEwZWY4YjM0NGRiYTFjNTBiYzJkNmMxYi4uMDc4M2MxMDkwYmY0Yzk2MWQ4
MjM3MGI0YWRlMzM0YjdmZDFkMjZhNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg2LDYg
Kzg2LDcgQEAKIAkJMEY0RkZBOUUxRUQzQUE4NTAwRjcxMTFGIC8qIFNuYXBzaG90VmlhUmVuZGVy
SW5Db250ZXh0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY0RkZBOUQxRUQzQUE4NTAwRjcxMTFGIC8qIFNuYXBzaG90VmlhUmVuZGVySW5Db250ZXh0
Lm1tICovOyB9OwogCQkwRjU2NTFGNzFGQ0U0RERDMDAzMTBGQkMgLyogTm9IaXN0b3J5SXRlbVNj
cm9sbFRvRnJhZ21lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjU2NTFGNjFGQ0U0RERCMDAzMTBGQkMgLyogTm9IaXN0b3J5SXRlbVNjcm9sbFRv
RnJhZ21lbnQubW0gKi87IH07CiAJCTBGNTY1MUY5MUZDRTUxMzUwMDMxMEZCQyAvKiBzY3JvbGwt
dG8tYW5jaG9yLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1NjUxRjgxRkNFNTBFODAwMzEwRkJDIC8qIHNjcm9sbC10by1hbmNob3Iu
aHRtbCAqLzsgfTsKKwkJMEZFRkFGNjQyNzFGQzJDRDAwNTcwNEQ3IC8qIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkVGQUY2MzI3MUZDMkNEMDA1NzA0RDcgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0
cy5tbSAqLzsgfTsKIAkJMEZGMTEzNEUyMkQ2ODY3OTAwOUE4MURBIC8qIFNjcm9sbFZpZXdTY3Jv
bGxhYmlsaXR5VGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkYxMTM0RDIyRDY4Njc5MDA5QTgxREEgLyogU2Nyb2xsVmlld1Njcm9sbGFiaWxp
dHlUZXN0cy5tbSAqLzsgfTsKIAkJMTE1RUIzNDMxRUUwQkEwMzAwM0MyQzBBIC8qIFZpZXdwb3J0
U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMTVFQjM0MjFFRTBCNzIwMDAzQzJDMEEgLyogVmlld3BvcnRTaXplRm9y
Vmlld3BvcnRVbml0cy5tbSAqLzsgfTsKIAkJMTE3MUIyNEYyMTlGNDlDRDAwQ0I4OTdEIC8qIEZp
cnN0TWVhbmluZ2Z1bFBhaW50TWlsZXN0b25lX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMUI3RkQyMTIxOUY0NkREMDA2OUIyN0YgLyog
Rmlyc3RNZWFuaW5nZnVsUGFpbnRNaWxlc3RvbmVfQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTE4NTcs
NiArMTg1OCw3IEBACiAJCTBGQzZDNENFMTQxMDM0QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2NhdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1ldGFBbGxvY2F0b3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkU0NDc5NzFCNzZGMUUzMDA5NDk4
RUIgLyogUGFya2luZ0xvdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQYXJraW5nTG90LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQUUzNjcx
QjdEMTlDQjAwQ0UxN0YyIC8qIENvbmRpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBDb25kaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRkVGQUY2MzI3MUZDMkNEMDA1NzA0RDcgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRjExMzREMjJE
Njg2NzkwMDlBODFEQSAvKiBTY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlU
ZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZGQzQ1QTQxQjczRUJFMjAw
ODVCRDYyIC8qIExvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TG9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExNUVCMzQyMUVFMEI3MjAw
MDNDMkMwQSAvKiBWaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwODcsNyArMzA4OSw2IEBACiAJCUY0
NEE1MzBGMjFCODk3NjkwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4u
L1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNDRBNTMxMDIxQjg5NzY5MDBEQkI5OUMgLyogSW5zdGFuY2VN
ZXRob2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2Nv
Y29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0NEE3RDFGMjY4RDVDNjkwMEI0OUJCOCAvKiBJbWFnZUFuYWx5c2lzVGVzdHMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBJbWFnZUFuYWx5c2lzVGVzdHMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCUY0NEE5QUY1MjY0OUJCREQwMEU3Q0IxNiAvKiBJbW1lZGlhdGVBY3Rp
b25UZXN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbW1lZGlhdGVBY3Rpb25UZXN0cy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRBOUFGNjI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRp
YXRlQWN0aW9uVGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbW1lZGlhdGVBY3Rpb25U
ZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0Qzc5RkIyMEY5RTUwQzAw
MTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNDRDNzlGRDIwRjlFODcxMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblRlc3RzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5UZXN0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDgyMSw3ICs0ODIyLDYgQEAKIAkJCQk1MUVCMTI1ODI0QzY4NTg5MDAwQ0Iw
MzAgLyogSElER2FtZXBhZHMubW0gKi8sCiAJCQkJOUI0RjhGQTMxNTlENTJCMTAwMkQ5Rjk0IC8q
IEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLm1tICovLAogCQkJCTlCMjZGQzZCMTU5RDA2MTAwMEND
Mzc2NSAvKiBIVE1MRm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCi0JCQkJRjQ0QTlBRjUy
NjQ5QkJERDAwRTdDQjE2IC8qIEltbWVkaWF0ZUFjdGlvblRlc3RzLmggKi8sCiAJCQkJRjQ0QTlB
RjYyNjQ5QkJERDAwRTdDQjE2IC8qIEltbWVkaWF0ZUFjdGlvblRlc3RzLm1tICovLAogCQkJCUM1
MDdFOEE2MTRDNjU0NUIwMDVENkIzQiAvKiBJbnNwZWN0b3JCYXIubW0gKi8sCiAJCQkJNTdGMTBE
OTIxQzdFN0IzODAwRUNERjMwIC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW0gKi8sCkBA
IC00ODQxLDYgKzQ4NDEsNyBAQAogCQkJCUE1N0EzNEVGMTZBRjY3NzIwMEMyNTAxRiAvKiBQYWdl
VmlzaWJpbGl0eVN0YXRlV2l0aFdpbmRvd0NoYW5nZXMubW0gKi8sCiAJCQkJMzdDNzg0REUxOTdD
OEYyRTAwMTBBNDk2IC8qIFJlbmRlcmVkSW1hZ2VGcm9tRE9NTm9kZS5tbSAqLywKIAkJCQkzNzIy
Qzg2ODE0NjFFMDNFMDBDNDVEMDAgLyogUmVuZGVyZWRJbWFnZUZyb21ET01SYW5nZS5tbSAqLywK
KwkJCQkwRkVGQUY2MzI3MUZDMkNEMDA1NzA0RDcgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0
cy5tbSAqLywKIAkJCQkyNjE1MTZENTE1QjBFNjA1MDBBMkMyMDEgLyogU2V0QW5kVXBkYXRlQ2Fj
aGVNb2RlbC5tbSAqLywKIAkJCQk1MkI4Q0Y5NTE1ODY4Q0YwMDAyODEwNTMgLyogU2V0RG9jdW1l
bnRVUkkubW0gKi8sCiAJCQkJQzU0MEY3NzUxNTJFNERBMDAwQTQwQzhDIC8qIFNpbXBsaWZ5TWFy
a3VwLm1tICovLApAQCAtNTgzNyw2ICs1ODM4LDcgQEAKIAkJCQk5NTA5NUYyMDI2MkZGRkE1MDAw
MEQ5MjAgLyogU2FtcGxlZFBhZ2VUb3BDb2xvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0ZB
N0FBMUU0NTE4MzIwMEMyNDMzRCAvKiBTYW1wbGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0UwOTQ3MzcyMDYzMjIzQjAwM0M5QkEwIC8qIFNjaGVtZVJlZ2lzdHJ5Lm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZFRkFGNjQyNzFGQzJDRDAwNTcwNEQ3IC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
VGVzdHMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDREMwOTMyQjIxQzg3MkMxMDAzMEM0QjAgLyog
U2Nyb2xsaW5nRG9lc05vdFBhdXNlTWVkaWEubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0Yx
MjFBNDExQUU2MDA0NDdDNEMgLyogU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGNDM0Q0ExQTIyRTY1QkNBMDA1RERCMjYgLyogU2Nyb2xsVG9SZXZlYWxTZWxl
Y3Rpb24ubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9TY3JvbGxpbmdDb29yZGluYXRvclRlc3RzLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcz
MjQ1NjRlOTc4OWZiYTI0N2RkYmRkZDgzMzMyM2YxZmUzOTQwODQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9TY3JvbGxpbmdDb29yZGluYXRvclRlc3Rz
Lm1tCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJUZXN0LmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIlBsYXRmb3Jt
VXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXS1dlYlZp
ZXdDb25maWd1cmF0aW9uRXh0cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0
ZS5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisKK3N0YXRpYyBmbG9hdCB3YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKFdL
V2ViVmlldyogd2ViVmlldywgY29uc3Qgc3RkOjpmdW5jdGlvbjx2b2lkKFdLV2ViVmlldyopPiYg
c2Nyb2xsVHJpZ2dlcikKK3sKKyAgICBib29sIHJlY2VpdmVkU2Nyb2xsRXZlbnQgPSBmYWxzZTsK
KyAgICBSZXRhaW5QdHI8aWQ+IGV2YWxSZXN1bHQ7CisgICAgUmV0YWluUHRyPE5TRXJyb3I+IHN0
cm9uZ0Vycm9yOworICAgIAorICAgIE5TU3RyaW5nICpzY3JpcHRTdHJpbmcgPSBAInJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geyIgXAorICAgICAgICAiICAgbGV0IGlmcmFtZSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXTsiIFwKKyAgICAgICAgIiAg
IGlmcmFtZS5jb250ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKGV2ZW50
KSA9PiByZXNvbHZlKGlmcmFtZS5jb250ZW50V2luZG93LnNjcm9sbFkpKTsgIiBcCisgICAgICAg
ICJ9KSI7CisKKyAgICBbd2ViVmlldyBjYWxsQXN5bmNKYXZhU2NyaXB0OnNjcmlwdFN0cmluZyBh
cmd1bWVudHM6bmlsIGluRnJhbWU6bmlsIGluQ29udGVudFdvcmxkOldLQ29udGVudFdvcmxkLnBh
Z2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3Ip
IHsKKyAgICAgICAgZXZhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc3Ryb25nRXJyb3IgPSBl
cnJvcjsKKyAgICAgICAgcmVjZWl2ZWRTY3JvbGxFdmVudCA9IHRydWU7CisgICAgfV07CisKKyAg
ICBzY3JvbGxUcmlnZ2VyKHdlYlZpZXcpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcm9sbEV2ZW50KTsKKworICAgIHJldHVybiBbZXZhbFJlc3VsdCBmbG9hdFZh
bHVlXTsKK30KKworLy8gUmVtb3ZlICJsYXN0IGNvbW1pdHRlZCBzY3JvbGwgcG9zaXRpb24iIGZv
ciB0aGUgaWZyYW1lJ3Mgbm9kZSwgd2hpY2ggd2UgZXhwZWN0IHRvIGJlIGRpZmZlcmVudC4KK3N0
YXRpYyBOU1N0cmluZyAqc2Nyb2xsaW5nVHJlZUVsaWRpbmdMYXN0Q29tbWl0dGVkU2Nyb2xsUG9z
aXRpb24oTlNTdHJpbmcgKnNjcm9sbGluZ1RyZWUpCit7CisgICAgTlNNdXRhYmxlQXJyYXkgKmxp
bmVzID0gW1tbc2Nyb2xsaW5nVHJlZSBjb21wb25lbnRzU2VwYXJhdGVkQnlDaGFyYWN0ZXJzSW5T
ZXQ6W05TQ2hhcmFjdGVyU2V0IG5ld2xpbmVDaGFyYWN0ZXJTZXRdXSBtdXRhYmxlQ29weV0gYXV0
b3JlbGVhc2VdOworICAgIAorICAgIE5TSW5kZXhTZXQqIGxhc3RDb21taXR0ZWRMaW5lSW5kaWNl
cyA9IFtsaW5lcyBpbmRleGVzT2ZPYmplY3RzUGFzc2luZ1Rlc3Q6XkJPT0woaWQgIF9Ob25udWxs
IG9iaiwgTlNVSW50ZWdlciBpZHgsIEJPT0wgKiBfTm9ubnVsbCBzdG9wKSB7CisgICAgICAgIHJl
dHVybiBbb2JqIGhhc1ByZWZpeDpAIiAgICAgICAgKGxhc3QgY29tbWl0dGVkIHNjcm9sbCBwb3Np
dGlvbiJdOworICAgIH1dOworICAgIFtsaW5lcyByZW1vdmVPYmplY3RzQXRJbmRleGVzOmxhc3RD
b21taXR0ZWRMaW5lSW5kaWNlc107CisgICAgcmV0dXJuIFtsaW5lcyBjb21wb25lbnRzSm9pbmVk
QnlTdHJpbmc6QCJcbiJdOworfQorCitURVNUKFNjcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMsIFNj
cm9sbGluZ1RyZWVBZnRlckRldGFjaFJlYXR0YWNoKQoreworICAgIFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25m
aWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aElu
dGVybmFscyIgY29uZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgNTAwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbiBhZGRUb1dpbmRvdzpZ
RVNdKTsKKyAgICAKKyAgICBOU1N0cmluZyAqZG9jdW1lbnRTdHJpbmcgPSBAIjxzdHlsZT5ib2R5
IHsgaGVpZ2h0OiA1MDAwcHg7IH08L3N0eWxlPiIgXAorICAgICAgICAiPGlmcmFtZSBzcmNkb2M9
XCI8c3R5bGU+Ym9keSB7IGhlaWdodDogNTAwMHB4OyB9PC9zdHlsZT48ZGl2IHN0eWxlPSdwb3Np
dGlvbjpmaXhlZDsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6IGJsdWUn
PjwvZGl2PlwiPjwvaWZyYW1lPiI7CisgICAgCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOmRvY3VtZW50U3RyaW5nXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFBy
ZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBDR1BvaW50IGV2ZW50TG9jYXRpb25JbldpbmRvdyA9
IFt3ZWJWaWV3IGNvbnZlcnRQb2ludDpDR1BvaW50TWFrZSg1MCwgNTApIHRvVmlldzpuaWxdOwor
CisgICAgYXV0byBzY3JvbGxZID0gd2FpdEZvclNjcm9sbEV2ZW50QW5kUmV0dXJuU2Nyb2xsWSh3
ZWJWaWV3LmdldCgpLCBbZXZlbnRMb2NhdGlvbkluV2luZG93XShUZXN0V0tXZWJWaWV3ICp3ZWJW
aWV3KSB7CisgICAgICAgIFt3ZWJWaWV3IHdoZWVsRXZlbnRBdFBvaW50OmV2ZW50TG9jYXRpb25J
bldpbmRvdyB3aGVlbERlbHRhOkNHU2l6ZU1ha2UoMCwgLTEwMCldOworICAgIH0pOworICAgIEVY
UEVDVF9FUShzY3JvbGxZLCAxMDApOworCisgICAgLy8gU2VuZCBhIHNlY29uZCB3aGVlbCBldmVu
dCB0byB0cmlnZ2VyIHJlY29uY2lsZVNjcm9sbGluZ1N0YXRlKCkgdGhhdCBkb2VzIG5vdCBlbmQg
dXAgaW4gc2V0U2Nyb2xsaW5nTm9kZVNjcm9sbGFibGVBcmVhR2VvbWV0cnkoKSAoc29tZSBjb21w
b3NpdGluZyBjb2RlIGVhcmx5IHJldHVybnMpLgorICAgIC8vIFRoaXMgd291bGQgbGVhdmUgdGhl
IHNjcm9sbGluZyBzdGF0ZSB0cmVlIHdpdGggYSBzdGFsZSBtX3Njcm9sbFBvc2l0aW9uLgorICAg
IHNjcm9sbFkgPSB3YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKHdlYlZpZXcuZ2V0
KCksIFtldmVudExvY2F0aW9uSW5XaW5kb3ddKFRlc3RXS1dlYlZpZXcgKndlYlZpZXcpIHsKKyAg
ICAgICAgW3dlYlZpZXcgd2hlZWxFdmVudEF0UG9pbnQ6ZXZlbnRMb2NhdGlvbkluV2luZG93IHdo
ZWVsRGVsdGE6Q0dTaXplTWFrZSgwLCAtMTAwKV07CisgICAgfSk7CisgICAgRVhQRUNUX0VRKHNj
cm9sbFksIDIwMCk7CisKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0
ZV07CisKKyAgICBOU1N0cmluZyAqc2Nyb2xsaW5nVHJlZUJlZm9yZSA9IHNjcm9sbGluZ1RyZWVF
bGlkaW5nTGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uKFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHQ6QCJpbnRlcm5hbHMuc2Nyb2xsaW5nVHJlZUFzVGV4dCgpIl0pOworCisg
ICAgTlNXaW5kb3cgKmhvc3RXaW5kb3cgPSBbd2ViVmlldyB3aW5kb3ddOworICAgIFt3ZWJWaWV3
IHJlbW92ZUZyb21TdXBlcnZpZXddOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0
aW9uVXBkYXRlXTsKKyAgICBbW2hvc3RXaW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2Vi
Vmlldy5nZXQoKV07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVd
OworCisgICAgTlNTdHJpbmcgKnNjcm9sbGluZ1RyZWVBZnRlciA9IHNjcm9sbGluZ1RyZWVFbGlk
aW5nTGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uKFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJpbnRlcm5hbHMuc2Nyb2xsaW5nVHJlZUFzVGV4dCgpIl0pOworCisgICAg
RVhQRUNUX1RSVUUoW3Njcm9sbGluZ1RyZWVCZWZvcmUgaXNFcXVhbFRvU3RyaW5nOnNjcm9sbGlu
Z1RyZWVBZnRlcl0pOworCisgICAgc2Nyb2xsWSA9IHdhaXRGb3JTY3JvbGxFdmVudEFuZFJldHVy
blNjcm9sbFkod2ViVmlldy5nZXQoKSwgW2V2ZW50TG9jYXRpb25JbldpbmRvd10oVGVzdFdLV2Vi
VmlldyAqd2ViVmlldykgeworICAgICAgICBbd2ViVmlldyB3aGVlbEV2ZW50QXRQb2ludDpldmVu
dExvY2F0aW9uSW5XaW5kb3cgd2hlZWxEZWx0YTpDR1NpemVNYWtlKDAsIC0xMDEpXTsKKyAgICB9
KTsKKyAgICBFWFBFQ1RfRVEoc2Nyb2xsWSwgMzAxKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCA5YjExYTc5NTI0ZTgxNWIxYWMwOTI3YzUwOTUw
MWVlZDA1NTNkNDJmLi45NWU2NGE2NzQ0Mzk4MGVhZmViMzA4N2QwODFkNzIzN2M5Yzc5MzQyIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtMTM5LDYgKzEz
OSw3IEBACiAtICh2b2lkKW1vdXNlTW92ZVRvUG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyB3
aXRoRmxhZ3M6KE5TRXZlbnRNb2RpZmllckZsYWdzKWZsYWdzOwogLSAodm9pZClzZW5kQ2xpY2tz
QXRQb2ludDooTlNQb2ludClwb2ludEluV2luZG93IG51bWJlck9mQ2xpY2tzOihOU1VJbnRlZ2Vy
KW51bWJlck9mQ2xpY2tzOwogLSAodm9pZClzZW5kQ2xpY2tBdFBvaW50OihOU1BvaW50KXBvaW50
SW5XaW5kb3c7CistICh2b2lkKXdoZWVsRXZlbnRBdFBvaW50OihDR1BvaW50KXBvaW50SW5XaW5k
b3cgd2hlZWxEZWx0YTooQ0dTaXplKWRlbHRhOwogLSAoTlNXaW5kb3cgKilob3N0V2luZG93Owog
LSAodm9pZCl0eXBlQ2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlciBtb2RpZmllcnM6KE5TRXZlbnRN
b2RpZmllckZsYWdzKW1vZGlmaWVyczsKIC0gKHZvaWQpdHlwZUNoYXJhY3RlcjooY2hhciljaGFy
YWN0ZXI7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZp
ZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXgg
YzAyZTBkZjQyNjcwNjgzZGI1N2YwMzkwYTFjNjRlNzc3ZmE1OGY4Yi4uMGFkZmFlMDUyOTc5NmY2
ZTYzY2U5MjdiZmYyMWJjODUxNzQ3NzcxZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2Ev
VGVzdFdLV2ViVmlldy5tbQpAQCAtMjA0LDM3ICsyMDQsMzcgQEAgLSAoQk9PTClldmFsdWF0ZU1l
ZGlhUXVlcnk6KE5TU3RyaW5nICopcXVlcnkKIAogLSAoaWQpb2JqZWN0QnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDooTlNTdHJpbmcgKilzY3JpcHQKIHsKLSAgICBib29sIGlzV2FpdGluZ0ZvckphdmFT
Y3JpcHQgPSBmYWxzZTsKKyAgICBib29sIGNhbGxiYWNrQ29tcGxldGUgPSBmYWxzZTsKICAgICBS
ZXRhaW5QdHI8aWQ+IGV2YWxSZXN1bHQ7CiAgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdFdp
dGhvdXRVc2VyR2VzdHVyZTpzY3JpcHQgY29tcGxldGlvbkhhbmRsZXI6WyZdIChpZCByZXN1bHQs
IE5TRXJyb3IgKmVycm9yKSB7CiAgICAgICAgIGV2YWxSZXN1bHQgPSByZXN1bHQ7Ci0gICAgICAg
IGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSB0cnVlOworICAgICAgICBjYWxsYmFja0NvbXBsZXRl
ID0gdHJ1ZTsKICAgICAgICAgRVhQRUNUX1RSVUUoIWVycm9yKTsKICAgICAgICAgaWYgKGVycm9y
KQogICAgICAgICAgICAgTlNMb2coQCJFbmNvdW50ZXJlZCBlcnJvcjogJUAgd2hpbGUgZXZhbHVh
dGluZyBzY3JpcHQ6ICVAIiwgZXJyb3IsIHNjcmlwdCk7CiAgICAgfV07Ci0gICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc1dhaXRpbmdGb3JKYXZhU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJmNhbGxiYWNrQ29tcGxldGUpOwogICAgIHJldHVybiBldmFsUmVzdWx0
LmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKGlkKW9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHRX
aXRoVXNlckdlc3R1cmU6KE5TU3RyaW5nICopc2NyaXB0CiB7Ci0gICAgYm9vbCBpc1dhaXRpbmdG
b3JKYXZhU2NyaXB0ID0gZmFsc2U7CisgICAgYm9vbCBjYWxsYmFja0NvbXBsZXRlID0gZmFsc2U7
CiAgICAgUmV0YWluUHRyPGlkPiBldmFsUmVzdWx0OwogICAgIFtzZWxmIGV2YWx1YXRlSmF2YVNj
cmlwdDpzY3JpcHQgY29tcGxldGlvbkhhbmRsZXI6WyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVy
cm9yKSB7CiAgICAgICAgIGV2YWxSZXN1bHQgPSByZXN1bHQ7Ci0gICAgICAgIGlzV2FpdGluZ0Zv
ckphdmFTY3JpcHQgPSB0cnVlOworICAgICAgICBjYWxsYmFja0NvbXBsZXRlID0gdHJ1ZTsKICAg
ICAgICAgRVhQRUNUX1RSVUUoIWVycm9yKTsKICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAg
ICAgTlNMb2coQCJFbmNvdW50ZXJlZCBlcnJvcjogJUAgd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQ6
ICVAIiwgZXJyb3IsIHNjcmlwdCk7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZpc1dhaXRpbmdGb3JKYXZhU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmNhbGxiYWNrQ29tcGxldGUpOwogICAgIHJldHVybiBldmFsUmVzdWx0LmF1dG9yZWxlYXNl
KCk7CiB9CiAKIC0gKGlkKW9iamVjdEJ5Q2FsbGluZ0FzeW5jRnVuY3Rpb246KE5TU3RyaW5nICop
c2NyaXB0IHdpdGhBcmd1bWVudHM6KE5TRGljdGlvbmFyeSAqKWFyZ3VtZW50cyBlcnJvcjooTlNF
cnJvciAqKillcnJvck91dAogewotICAgIGJvb2wgaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCA9IGZh
bHNlOworICAgIGJvb2wgY2FsbGJhY2tDb21wbGV0ZSA9IGZhbHNlOwogICAgIGlmIChlcnJvck91
dCkKICAgICAgICAgKmVycm9yT3V0ID0gbmlsOwogCkBAIC0yNDMsOSArMjQzLDkgQEAgLSAoaWQp
b2JqZWN0QnlDYWxsaW5nQXN5bmNGdW5jdGlvbjooTlNTdHJpbmcgKilzY3JpcHQgd2l0aEFyZ3Vt
ZW50czooTlNEaWN0aW9uYXIKICAgICBbc2VsZiBjYWxsQXN5bmNKYXZhU2NyaXB0OnNjcmlwdCBh
cmd1bWVudHM6YXJndW1lbnRzIGluRnJhbWU6bmlsIGluQ29udGVudFdvcmxkOldLQ29udGVudFdv
cmxkLnBhZ2VXb3JsZCBjb21wbGV0aW9uSGFuZGxlcjpbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAq
ZXJyb3IpIHsKICAgICAgICAgZXZhbFJlc3VsdCA9IHJlc3VsdDsKICAgICAgICAgc3Ryb25nRXJy
b3IgPSBlcnJvcjsKLSAgICAgICAgaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCA9IHRydWU7CisgICAg
ICAgIGNhbGxiYWNrQ29tcGxldGUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZjYWxsYmFja0NvbXBsZXRlKTsKIAogICAgIGlmIChlcnJvck91dCkKICAgICAg
ICAgKmVycm9yT3V0ID0gc3Ryb25nRXJyb3IuYXV0b3JlbGVhc2UoKTsKQEAgLTg2Miw2ICs4NjIs
MTggQEAgLSAoTlNFdmVudCAqKV9tb3VzZUV2ZW50V2l0aFR5cGU6KE5TRXZlbnRUeXBlKXR5cGUg
YXRMb2NhdGlvbjooTlNQb2ludClsb2NhdGlvbkkKICAgICB9CiB9CiAKKy0gKHZvaWQpd2hlZWxF
dmVudEF0UG9pbnQ6KENHUG9pbnQpcG9pbnRJbldpbmRvdyB3aGVlbERlbHRhOihDR1NpemUpZGVs
dGEKK3sKKyAgICBSZXRhaW5QdHI8Q0dFdmVudFJlZj4gY2dTY3JvbGxFdmVudCA9IGFkb3B0Q0Yo
Q0dFdmVudENyZWF0ZVNjcm9sbFdoZWVsRXZlbnQobnVsbHB0ciwga0NHU2Nyb2xsRXZlbnRVbml0
UGl4ZWwsIDIsIGRlbHRhLmhlaWdodCwgZGVsdGEud2lkdGgsIDApKTsKKworICAgIENHUG9pbnQg
bG9jYXRpb25Jbkdsb2JhbFNjcmVlbkNvb3JkaW5hdGVzID0gW1tzZWxmIHdpbmRvd10gY29udmVy
dFBvaW50VG9TY3JlZW46cG9pbnRJbldpbmRvd107CisgICAgbG9jYXRpb25Jbkdsb2JhbFNjcmVl
bkNvb3JkaW5hdGVzLnkgPSBbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4OjBdIGZy
YW1lXS5zaXplLmhlaWdodCAtIGxvY2F0aW9uSW5HbG9iYWxTY3JlZW5Db29yZGluYXRlcy55Owor
ICAgIENHRXZlbnRTZXRMb2NhdGlvbihjZ1Njcm9sbEV2ZW50LmdldCgpLCBsb2NhdGlvbkluR2xv
YmFsU2NyZWVuQ29vcmRpbmF0ZXMpOworICAgIAorICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZl
bnQgZXZlbnRXaXRoQ0dFdmVudDpjZ1Njcm9sbEV2ZW50LmdldCgpXTsKKyAgICBbc2VsZiBzY3Jv
bGxXaGVlbDpldmVudF07Cit9CisKIC0gKE5TV2luZG93ICopaG9zdFdpbmRvdwogewogICAgIHJl
dHVybiBfaG9zdFdpbmRvdy5nZXQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NzQwNmQwOWI3MjM4ZWY3YmNiYjU0YTQ2
YTJiNzI3YTUxYjQ1YjJkLi41NjczODFhYTg0NTdkMjhiZjM3ZGY3ZWRkNmVhNDExOTllMzZkMGM3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTAtMjEgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udGVudCBvZmZzZXQgaW4gdGhpcyBjb2Rl
cGVuIHdoZW4gc3dpdGNoaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTk4OQorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24u
CisKKyAgICAgICAgTmV3IGJhc2VsaW5lcy4KKworICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2NsYW1wLW91dC1vZi1ib3VuZHMtc2Nyb2xscy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsaW5nLXRyZWUtYWZ0ZXItc2Nyb2xsLWV4
cGVjdGVkLnR4dDoKKwogMjAyMS0xMC0yMSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjgzODY0KTogQXBwbGUgUGF5IG5hbWVkIGltYWdl
cyBhcmUgbWlzc2luZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvY2xhbXAtb3V0LW9mLWJvdW5kcy1zY3JvbGxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2NsYW1wLW91dC1vZi1ib3VuZHMtc2Nyb2xscy1l
eHBlY3RlZC50eHQKaW5kZXggMTUyZWIxYmIzMjQyZTdlOGUzZmYwOTk1ZDc3ZmFiNTU1NjAzOGE1
Zi4uNDlmZjI5YjRhMWUwNTU4NjdmZTRhM2RhMDA3ZDc1YzU5OWY0OTdhNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvY2xhbXAtb3V0LW9mLWJvdW5kcy1z
Y3JvbGxzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9jbGFtcC1vdXQtb2YtYm91bmRzLXNjcm9sbHMtZXhwZWN0ZWQudHh0CkBAIC01NSw2ICs1
NSw3IEBAIEF0dGVtcHRlZCBzY3JvbGwgdG8gLTUwMDAsIC01MDAwCiBBdHRlbXB0ZWQgc2Nyb2xs
IHRvIDEwMDAwLCAwCiAKIChGcmFtZSBzY3JvbGxpbmcgbm9kZQorICAoc2Nyb2xsIHBvc2l0aW9u
IDQyMjMgMCkKICAgKHNjcm9sbGFibGUgYXJlYSBzaXplIDc4NSA1ODUpCiAgIChjb250ZW50cyBz
aXplIDUwMDggNTAyMSkKICAgKHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gNDIyMyAwKQpAQCAt
NzUsNyArNzYsNyBAQCBBdHRlbXB0ZWQgc2Nyb2xsIHRvIDEwMDAwLCAwCiBBdHRlbXB0ZWQgc2Ny
b2xsIHRvIDAsIDEwMDAwCiAKIChGcmFtZSBzY3JvbGxpbmcgbm9kZQotICAoc2Nyb2xsIHBvc2l0
aW9uIDQyMjMgMCkKKyAgKHNjcm9sbCBwb3NpdGlvbiAwIDQ0MzYpCiAgIChzY3JvbGxhYmxlIGFy
ZWEgc2l6ZSA3ODUgNTg1KQogICAoY29udGVudHMgc2l6ZSA1MDA4IDUwMjEpCiAgIChyZXF1ZXN0
ZWQgc2Nyb2xsIHBvc2l0aW9uIDAgNDQzNikKQEAgLTk2LDcgKzk3LDcgQEAgQXR0ZW1wdGVkIHNj
cm9sbCB0byAwLCAxMDAwMAogQXR0ZW1wdGVkIHNjcm9sbCB0byAxMDAwMCwgMTAwMDAKIAogKEZy
YW1lIHNjcm9sbGluZyBub2RlCi0gIChzY3JvbGwgcG9zaXRpb24gMCA0NDM2KQorICAoc2Nyb2xs
IHBvc2l0aW9uIDQyMjMgNDQzNikKICAgKHNjcm9sbGFibGUgYXJlYSBzaXplIDc4NSA1ODUpCiAg
IChjb250ZW50cyBzaXplIDUwMDggNTAyMSkKICAgKHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24g
NDIyMyA0NDM2KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsaW5nLXRyZWUtYWZ0ZXItc2Nyb2xsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbGluZy10cmVlLWFmdGVyLXNjcm9sbC1leHBl
Y3RlZC50eHQKaW5kZXggZGI0MzY4OGJiNjdhYWZhZjBiZGEzYTdhNDlmZTZlN2RiNmI0YmY0Zi4u
ZDM1OWI3MDI5NWVlM2JkZjdlZGEyMTEyZTM5ZTZkZTYxYzVjNTc0YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsaW5nLXRyZWUtYWZ0ZXItc2Ny
b2xsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGxpbmctdHJlZS1hZnRlci1zY3JvbGwtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNiBA
QAogCiAoRnJhbWUgc2Nyb2xsaW5nIG5vZGUKKyAgKHNjcm9sbCBwb3NpdGlvbiAwIDMwMDApCiAg
IChzY3JvbGxhYmxlIGFyZWEgc2l6ZSA3ODUgNjAwKQogICAoY29udGVudHMgc2l6ZSA3ODUgNTAy
MSkKICAgKHJlcXVlc3RlZCBzY3JvbGwgcG9zaXRpb24gMCAzMDAwKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442190</attachid>
            <date>2021-10-22 13:21:47 -0700</date>
            <delta_ts>2021-10-22 20:25:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231989-20211022132146.patch</filename>
            <type>text/plain</type>
            <size>33404</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NjI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDVlYzc2MTZlZGQ1ZDI3
NmY3MTJjZDI5NDZjNjkzNTQyODk3YWI2ZS4uNTBiMTQ0ZGIwZmQxMjM4MWVkN2U5N2M2OGY4NjZk
MjQzOTM2MTE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEwLTIyICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbnRlbnQgb2Zm
c2V0IGluIHRoaXMgY29kZXBlbiB3aGVuIHN3aXRjaGluZyB0YWJzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE5ODkKKworICAgICAgICBSZXZpZXdl
ZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFRoZXJlIHdlcmUgdHdvIHByb2JsZW1zIHRoYXQg
b2NjdXJyZWQgd2l0aCBhc3luYy1zY3JvbGxhYmxlIGlmcmFtZXMgd2hlbiB0aGVpciBhc3NvY2lh
dGVkCisgICAgICAgIFdLV2ViVmlldyB3YXMgcmVtb3ZlZCBhbmQgcmUtYWRkZWQgdG8gdGhlIHZp
ZXcgaGllcmFyY2h5IChlLmcuIHdoZW4gc3dpdGNoaW5nIHRhYnMpLgorICAgICAgICBUaGVzZSBy
ZXN1bHRlZCBpbiBtaXNwbGFjZWQgcG9zaXRpb246Zml4ZWQgY29udGVudCwgYW5kIHRoZSBmaXJz
dCB1c2VyIHNjcm9sbCBpbiB0aGUgCisgICAgICAgIGlmcmFtZSBjYXVzaW5nIHRoZSBzY3JvbGwg
cG9zaXRpb24gdG8ganVtcCBiYWNrIHRvIHRoZSB0b3AuCisKKyAgICAgICAgVGhlIHBvc2l0b246
Zml4ZWQgaXNzdWUgd2FzIGNhdXNlZCBieSBhbiBvcmRlcmluZyBwcm9ibGVtIGluCisgICAgICAg
IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRy
ZW4oKSB3aGljaCByZXN1bHRlZCBpbiB0aGUgbGF5b3V0CisgICAgICAgIHZpZXdwb3J0IGJlaW5n
IGNvbXB1dGVkIGluY29ycmVjdGx5OyB3ZSBjYWxsZWQgdXBkYXRlVmlld3BvcnRGb3JDdXJyZW50
U2Nyb2xsUG9zaXRpb24oKQorICAgICAgICBiZWZvcmUgc2V0dGluZyB0aGUgbWluIGFuZCBtYXgg
c2Nyb2xsIHBvc2l0aW9uLCBzbyB3ZSdkIGFsd2F5cyBjbGFtcCB0aGUgbGF5b3V0IHZpZXdwb3J0
IHRvCisgICAgICAgIGEgbG9jYXRpb24gb2YgMCwwLgorCisgICAgICAgIFRoZSBzZWNvbmQgc2Ny
b2xsIHBvc2l0aW9uIHJlc2V0IGlzc3VlIHdhcyBjYXVzZWQgYnkgdGhlIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlJ3MKKyAgICAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gcmV2ZXJ0aW5n
IHRvIGEgc3RhbGUgYWZ0ZXIgcmUtYXR0YWNoaW5nIHRoZSBpZnJhbWUncyBzY3JvbGxpbmcKKyAg
ICAgICAgc3VidHJlZS4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVm
b3JlQ2hpbGRyZW4oKSBoYXMgY29kZSB0byBzZXQKKyAgICAgICAgbV9jdXJyZW50U2Nyb2xsUG9z
aXRpb24gZnJvbSB0aGUgc3RhdGUgdHJlZSBub2RlJ3Mgc2Nyb2xsIHBvc2l0aW9uIG9uIGZpcnN0
IGNvbW1pdDsKKyAgICAgICAgdGhlIGlzc3VlIHdhcyB0aGF0IFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSdzIHNjcm9sbFBvc2l0aW9uKCkgd2FzIG5vdCB1cGRhdGVkIG9uIGV2ZXJ5CisgICAg
ICAgIHNjcm9sbCwgb25seSB3aGVuIHNvbWV0aGluZyB0cmlnZ2VyZWQgYSBzY3JvbGxpbmcgdHJl
ZSBjb21taXQuCisKKyAgICAgICAgRml4IGJ5IHVwZGF0aW5nIFNjcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZSdzIHNjcm9sbFBvc2l0aW9uKCkgZm9yIGZyYW1lIG5vZGVzIG9uIGRldGFjaAorICAg
ICAgICAob3ZlcmZsb3cgc2Nyb2xsaW5nIG5vZGVzIGhhdmUgdGhlaXIgc2Nyb2xsIHBvc2l0aW9u
cyB1cGRhdGVkIGVhZ2VybHkpLgorCisgICAgICAgIEJvdGggZml4ZXMgYXJlIHRlc3RlZCBieSB0
aGUgU2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5TY3JvbGxpbmdUcmVlQWZ0ZXJEZXRhY2hSZWF0
dGFjaCBBUEkgdGVzdC4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjo6ZnJhbWVWaWV3V2lsbEJlRGV0YWNoZWQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OmZyYW1lVmlld1dpbGxCZURldGFjaGVkKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpoYXNTY3JvbGxQb3NpdGlvblJlcXVlc3QgY29uc3Qp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5o
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVRyZWU6Omluc2VydE5vZGUpOgorICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3Rh
dGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6Y29tbWl0VHJlZVN0YXRlSWZO
ZWVkZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkZXRhY2hSb290TGF5ZXIp
OgorCiAyMDIxLTEwLTIxICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbbWFjT1NdIFVwZGF0ZSBhcHBlYXJhbmNlIG9mIDxkYXRhbGlzdD4gaW5kaWNhdG9y
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDU0ODNiMjJkNjljOWM0NDIwOTlkYjBkYTVkYjcw
M2IwZjExMjI0ZjguLjNhNmVjNWFmZTUyM2NhNjkzNWJiOGExNTE4YjZhMGQ4MzhlYmRkZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0xODQsNiArMTg0LDIxIEBAIHZvaWQgQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3VmlzdWFsVmlld3BvcnRDaGFuZ2VkKEZyYW1lVmll
dyYgZnJhbWVWCiAgICAgZnJhbWVTY3JvbGxpbmdOb2RlLnNldFZpc3VhbFZpZXdwb3J0SXNTbWFs
bGVyVGhhbkxheW91dFZpZXdwb3J0KHZpc3VhbFZpZXdwb3J0SXNTbWFsbGVyVGhhbkxheW91dFZp
ZXdwb3J0KGZyYW1lVmlldykpOwogfQogCit2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OmZyYW1lVmlld1dpbGxCZURldGFjaGVkKEZyYW1lVmlldyYgZnJhbWVWaWV3KQoreworICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fcGFnZSk7CisKKyAgICBpZiAoIWNv
b3JkaW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KGZyYW1lVmlldykpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8qIHNjcm9sbGluZ05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU+KG1fc2Nyb2xsaW5nU3RhdGVUcmVlLT5zdGF0ZU5vZGVGb3JJRChmcmFtZVZp
ZXcuc2Nyb2xsaW5nTm9kZUlEKCkpKTsKKyAgICBpZiAoIXNjcm9sbGluZ05vZGUpCisgICAgICAg
IHJldHVybjsKKworICAgIHNjcm9sbGluZ05vZGUtPnNldFNjcm9sbFBvc2l0aW9uKGZyYW1lVmll
dy5zY3JvbGxQb3NpdGlvbigpKTsKK30KKwogdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Ojp1cGRhdGVJc01vbml0b3JpbmdXaGVlbEV2ZW50c0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZp
ZXcmIGZyYW1lVmlldykKIHsKICAgICBhdXRvKiBwYWdlID0gZnJhbWVWaWV3LmZyYW1lKCkucGFn
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IDQ4MDBkMTljZThlNGU0YzYxN2E5Y2E4ODMwMGYx
NTllNjkzYjM4ZjcuLjM2ZTdhYzRmNjM3NjAxM2NlOTY0YWIzMzE0YmExYWE2NjRlOGI3YjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKEZyYW1lVmlldyYpIG92
ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZnJhbWVWaWV3VmlzdWFsVmlld3BvcnRD
aGFuZ2VkKEZyYW1lVmlldyYpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZnJh
bWVWaWV3RXZlbnRUcmFja2luZ1JlZ2lvbnNDaGFuZ2VkKEZyYW1lVmlldyYpIG92ZXJyaWRlOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZnJhbWVWaWV3V2lsbEJlRGV0YWNoZWQoRnJhbWVWaWV3
Jikgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IFNjcm9sbFBvc2l0aW9uJiwgU2Nyb2xs
VHlwZSwgU2Nyb2xsQ2xhbXBpbmcpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcmVx
dWVzdEFuaW1hdGVkU2Nyb2xsVG9Qb3NpdGlvbihTY3JvbGxhYmxlQXJlYSYsIGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiwgU2Nyb2xsQ2xhbXBpbmcpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggZmQwZGYyMmE5
NGU0NzA3YTVjYzMyNDNmOGM3ODE5OTliMzg4M2UzMS4uODA3NDc0MmJhYzg4NDQyNDJmYjM4NDkz
MmNlMDlhNzAzZjhmYjAyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC05Niw2ICs5Niw4IEBAIHB1YmxpYzoKICAg
ICAvLyBTaG91bGQgYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSByb290IGxheWVyIGZvciB0aGUgZ2l2
ZW4gZnJhbWUgdmlldyBjaGFuZ2VzLgogICAgIHZpcnR1YWwgdm9pZCBmcmFtZVZpZXdSb290TGF5
ZXJEaWRDaGFuZ2UoRnJhbWVWaWV3Jik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVWaWV3V2ls
bEJlRGV0YWNoZWQoRnJhbWVWaWV3JikgeyB9CisKICAgICAvLyBUcmF2ZXJzZXMgdGhlIHNjcm9s
bGluZyB0cmVlLCBzZXR0aW5nIGxheWVyIHBvc2l0aW9ucyB0byByZXByZXNlbnQgdGhlIGN1cnJl
bnQgc2Nyb2xsZWQgc3RhdGUuCiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsaW5nVHJlZUxh
eWVyUG9zaXRpb25zKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDhiYThj
YmJjY2FmZmZiYmRjNmI1ODBiN2ViYzlmNDY3MWU2Y2IyOWMuLjM3MmQ1ZGJhM2ExOWU5ODNiODNm
ZWIyOWI3YjY0ZTBiOTk4ZDJiNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlLmNwcApAQCAtMjA2
LDYgKzIwNiwxMSBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0UmVxdWVz
dGVkU2Nyb2xsRGF0YShjb25zdCBSZXF1ZXN0ZWRTY3JvbGxEYQogICAgIHNldFByb3BlcnR5Q2hh
bmdlZChQcm9wZXJ0eTo6UmVxdWVzdGVkU2Nyb2xsUG9zaXRpb24pOwogfQogCitib29sIFNjcm9s
bGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6aGFzU2Nyb2xsUG9zaXRpb25SZXF1ZXN0KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gaGFzQ2hhbmdlZFByb3BlcnR5KFByb3BlcnR5OjpSZXF1ZXN0ZWRTY3Jv
bGxQb3NpdGlvbikgJiYgbV9yZXF1ZXN0ZWRTY3JvbGxEYXRhLnJlcXVlc3RUeXBlID09IFNjcm9s
bFJlcXVlc3RUeXBlOjpQb3NpdGlvblVwZGF0ZTsKK30KKwogdm9pZCBTY3JvbGxpbmdTdGF0ZVNj
cm9sbGluZ05vZGU6OnNldElzTW9uaXRvcmluZ1doZWVsRXZlbnRzKGJvb2wgaXNNb25pdG9yaW5n
V2hlZWxFdmVudHMpCiB7CiAgICAgaWYgKGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzID09IG1faXNN
b25pdG9yaW5nV2hlZWxFdmVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IDQ1ODU0MmNl
ZTg4MWYxOTc0MWE3ZDhiMjkyNTFlNjkxZGMzNzU1MWMuLmI3MDU0YTllYjE4MWZhYzU1Yjc4M2M0
M2YxNDVhYzRmYzE1Yjk0ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCkBAIC03OCw2ICs3OCw4
IEBAIHB1YmxpYzoKICAgICBjb25zdCBSZXF1ZXN0ZWRTY3JvbGxEYXRhJiByZXF1ZXN0ZWRTY3Jv
bGxEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0ZWRTY3JvbGxEYXRhOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRSZXF1ZXN0ZWRTY3JvbGxEYXRhKGNvbnN0IFJlcXVlc3RlZFNj
cm9sbERhdGEmKTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFzU2Nyb2xsUG9zaXRpb25S
ZXF1ZXN0KCkgY29uc3Q7CisKICAgICBib29sIGlzTW9uaXRvcmluZ1doZWVsRXZlbnRzKCkgY29u
c3QgeyByZXR1cm4gbV9pc01vbml0b3JpbmdXaGVlbEV2ZW50czsgfQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0SXNNb25pdG9yaW5nV2hlZWxFdmVudHMoYm9vbCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCmluZGV4
IGI3MzQwMTQyMjE2YTU4MjYwOTdkZTc3ZDQ5NGI2NjhlMTgzOWE5NjQuLjUxZWEzMmIyMDJhNDFj
MzA5OWQ0ODEyYWE2YzgyZGYwNzgzNjk1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBA
IFNjcm9sbGluZ05vZGVJRCBTY3JvbGxpbmdTdGF0ZVRyZWU6Omluc2VydE5vZGUoU2Nyb2xsaW5n
Tm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sCiAKICAgICAgICAgaWYgKHBhcmVudElEKSB7CiAgICAg
ICAgICAgICBpZiAoYXV0byB1bnBhcmVudGVkTm9kZSA9IG1fdW5wYXJlbnRlZE5vZGVzLnRha2Uo
bmV3Tm9kZUlEKSkgewotICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmdU
cmVlLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAiIDw8IHRoaXMgPDwgIiBpbnNlcnRO
b2RlICIgPDwgbmV3Tm9kZUlEIDw8ICIgZ2V0dGluZyBub2RlIGZyb20gdW5wYXJlbnRlZCBub2Rl
cyIpOworICAgICAgICAgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmdUcmVlLCBzdHJl
YW0gPDwgIlNjcm9sbGluZ1N0YXRlVHJlZSAiIDw8IHRoaXMgPDwgIiBpbnNlcnROb2RlIHJlYXR0
YWNoaW5nIG5vZGUgIiA8PCBuZXdOb2RlSUQpOwogICAgICAgICAgICAgICAgIG5ld05vZGUgPSB1
bnBhcmVudGVkTm9kZS5nZXQoKTsKICAgICAgICAgICAgICAgICBub2RlV2FzUmVhdHRhY2hlZFJl
Y3Vyc2l2ZSgqdW5wYXJlbnRlZE5vZGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUu
Y3BwCmluZGV4IDI0ZTA5ZDc2MmFkNjNmYzJlNTFmMjYyNDgzMzQ3MTZiZDFlOTRhODguLmY4MzBj
Y2Y0MDQ0M2U1ODBlOWZiNjQ0NmFmM2JlN2M1MTk0OWZlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGUuY3BwCkBAIC03MiwxMCArNzIsOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGU6OmNvbW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5n
UwogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQ
cm9wZXJ0eTo6Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSkpCiAgICAgICAgIG1f
Zml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSA9IHN0YXRlLmZpeGVkRWxlbWVudHNM
YXlvdXRSZWxhdGl2ZVRvRnJhbWUoKTsKIAotICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVy
dHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6TGF5b3V0Vmlld3BvcnQpKSB7CisgICAg
aWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlByb3BlcnR5
OjpMYXlvdXRWaWV3cG9ydCkpCiAgICAgICAgIG1fbGF5b3V0Vmlld3BvcnQgPSBzdGF0ZS5sYXlv
dXRWaWV3cG9ydCgpOwotICAgICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRTY3JvbGxQb3Np
dGlvbih7IH0pOwotICAgIH0KIAogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Ny
b2xsaW5nU3RhdGVOb2RlOjpQcm9wZXJ0eTo6TWluTGF5b3V0Vmlld3BvcnRPcmlnaW4pKQogICAg
ICAgICBtX21pbkxheW91dFZpZXdwb3J0T3JpZ2luID0gc3RhdGUubWluTGF5b3V0Vmlld3BvcnRP
cmlnaW4oKTsKQEAgLTg1LDYgKzgzLDExIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTCiAKICAg
ICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVy
dHk6Ok92ZXJyaWRlVmlzdWFsVmlld3BvcnRTaXplKSkKICAgICAgICAgbV9vdmVycmlkZVZpc3Vh
bFZpZXdwb3J0U2l6ZSA9IHN0YXRlLm92ZXJyaWRlVmlzdWFsVmlld3BvcnRTaXplKCk7CisKKyAg
ICBpZiAoc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6UHJvcGVy
dHk6OkxheW91dFZpZXdwb3J0KSkgeworICAgICAgICAvLyBUaGlzIHJlcXVpcmVzIHRoYXQgbWlu
TGF5b3V0Vmlld3BvcnRPcmlnaW4gYW5kIG1heExheW91dFZpZXdwb3J0T3JpZ2luIGhhdmUgYmVl
biB1cGRhdGVkLgorICAgICAgICB1cGRhdGVWaWV3cG9ydEZvckN1cnJlbnRTY3JvbGxQb3NpdGlv
bih7IH0pOworICAgIH0KIH0KIAogYm9vbCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
OjpzY3JvbGxQb3NpdGlvbkFuZExheW91dFZpZXdwb3J0TWF0Y2goY29uc3QgRmxvYXRQb2ludCYg
cG9zaXRpb24sIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBvdmVycmlkZUxheW91dFZpZXdwb3J0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCmluZGV4IDljY2Y5NzRkOTA5ODdiZWY4MGM4N2I5MDRl
OGRkMDM1ODNlZjIxZGMuLjkwYzI2YTAxYTI1NzVkMjZjYzM3MTU3ZDlhYzRjZjcwMjkzNGFkNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6Y29tbWl0U3RhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3Jv
bGxpbmdTdGF0ZU4KIAogICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5n
U3RhdGVOb2RlOjpQcm9wZXJ0eTo6U2Nyb2xsUG9zaXRpb24pKSB7CiAgICAgICAgIG1fbGFzdENv
bW1pdHRlZFNjcm9sbFBvc2l0aW9uID0gc3RhdGUuc2Nyb2xsUG9zaXRpb24oKTsKLSAgICAgICAg
aWYgKG1faXNGaXJzdENvbW1pdCAmJiAhc3RhdGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGlu
Z1N0YXRlTm9kZTo6UHJvcGVydHk6OlJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKSkKKyAgICAgICAg
aWYgKG1faXNGaXJzdENvbW1pdCAmJiAhc3RhdGUuaGFzU2Nyb2xsUG9zaXRpb25SZXF1ZXN0KCkp
CiAgICAgICAgICAgICBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbiA9IG1fbGFzdENvbW1pdHRlZFNj
cm9sbFBvc2l0aW9uOwogICAgIH0KIApAQCAtMzM2LDcgKzMzNiwxMCBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlOjpkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgT3B0aW9u
U2V0PFNjcm9sbAogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInJlYWNoYWJsZSBjb250ZW50IHNp
emUiLCBtX3JlYWNoYWJsZUNvbnRlbnRzU2l6ZSk7CiAgICAgdHMuZHVtcFByb3BlcnR5KCJsYXN0
IGNvbW1pdHRlZCBzY3JvbGwgcG9zaXRpb24iLCBtX2xhc3RDb21taXR0ZWRTY3JvbGxQb3NpdGlv
bik7CiAKLSAgICBpZiAobV9zY3JvbGxPcmlnaW4gIT0gSW50UG9pbnQoKSkKKyAgICBpZiAoIW1f
Y3VycmVudFNjcm9sbFBvc2l0aW9uLmlzWmVybygpKQorICAgICAgICB0cy5kdW1wUHJvcGVydHko
InNjcm9sbCBwb3NpdGlvbiIsIG1fY3VycmVudFNjcm9sbFBvc2l0aW9uKTsKKworICAgIGlmICgh
bV9zY3JvbGxPcmlnaW4uaXNaZXJvKCkpCiAgICAgICAgIHRzLmR1bXBQcm9wZXJ0eSgic2Nyb2xs
IG9yaWdpbiIsIG1fc2Nyb2xsT3JpZ2luKTsKIAogICAgIGlmIChtX3NuYXBPZmZzZXRzSW5mby5o
b3Jpem9udGFsU25hcE9mZnNldHMuc2l6ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCmluZGV4
IGIzZDQ5NjhiMzU4MjM4ZDcwMTkzOGE2ZDgzNTc0NWYxMTA0N2NjZTQuLjg5MjQyYzYxYTNiNTBi
OGZkNjdmYjJkNzA5Nzc4ZTMzM2EzZDk1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KQEAg
LTExNCw3ICsxMTQsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpjb21taXRUcmVl
U3RhdGVJZk5lZWRlZCgpCiAgICAgaWYgKCFzY3JvbGxpbmdTdGF0ZVRyZWUoKS0+aGFzQ2hhbmdl
ZFByb3BlcnRpZXMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTE9HX1dJVEhfU1RSRUFNKFNj
cm9sbGluZ1RyZWUsIHN0cmVhbSA8PCBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoZGVidWdTY3Jv
bGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcnMpKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Ny
b2xsaW5nVHJlZSwgc3RyZWFtIDw8ICJTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6Y29tbWl0VHJl
ZVN0YXRlOiBzdGF0ZSB0cmVlICIgPDwgc2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KGRlYnVnU2Ny
b2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3JzKSk7CiAKICAgICBhdXRvIHN0YXRlVHJlZSA9
IHNjcm9sbGluZ1N0YXRlVHJlZSgpLT5jb21taXQoTGF5ZXJSZXByZXNlbnRhdGlvbjo6UGxhdGZv
cm1MYXllclJlcHJlc2VudGF0aW9uKTsKICAgICBzY3JvbGxpbmdUcmVlKCktPmNvbW1pdFRyZWVT
dGF0ZShXVEZNb3ZlKHN0YXRlVHJlZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAwY2I5ZWQzMjRhNDRjZWRmYjY2ZGUx
OWUxNzU4YTY5ZjQ2YTUxNzYyLi4wMThjYjYwZDFiZDU4ZTcwYzlhZTQ1OTk0NmIxZTYwN2UxMzU4
ZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcApAQCAtNDI0NCw2ICs0MjQ0LDkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OmRldGFjaFJvb3RMYXllcigpCiAgICAgaWYgKCFtX3Jvb3RDb250ZW50c0xheWVyIHx8IG1f
cm9vdExheWVyQXR0YWNobWVudCA9PSBSb290TGF5ZXJVbmF0dGFjaGVkKQogICAgICAgICByZXR1
cm47CiAKKyAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxp
bmdDb29yZGluYXRvcigpKQorICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3
V2lsbEJlRGV0YWNoZWQobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpKTsKKwogICAgIHN3aXRjaCAo
bV9yb290TGF5ZXJBdHRhY2htZW50KSB7CiAgICAgY2FzZSBSb290TGF5ZXJBdHRhY2hlZFZpYUVu
Y2xvc2luZ0ZyYW1lOiB7CiAgICAgICAgIC8vIFRoZSBsYXllciB3aWxsIGdldCB1bmhvb2tlZCB1
cCB2aWEgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKCkKQEAgLTQyNTcs
MTMgKzQyNjAsMTkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRldGFjaFJvb3RMYXll
cigpCiAgICAgICAgICAgICBvd25lckVsZW1lbnQtPnNjaGVkdWxlSW52YWxpZGF0ZVN0eWxlQW5k
TGF5ZXJDb21wb3NpdGlvbigpOwogCiAgICAgICAgIGlmIChhdXRvIGZyYW1lUm9vdFNjcm9sbGlu
Z05vZGVJRCA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5zY3JvbGxpbmdOb2RlSUQoKSkgewot
ICAgICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xs
aW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxpbmdDb29yZGlu
YXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBz
Y3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3V2lsbEJlRGV0YWNoZWQobV9yZW5kZXJWaWV3
LmZyYW1lVmlldygpKTsKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+dW5w
YXJlbnROb2RlKGZyYW1lUm9vdFNjcm9sbGluZ05vZGVJRCk7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgUm9vdExheWVyQXR0YWNoZWRW
aWFDaHJvbWVDbGllbnQ6IHsKICAgICAgICAgYXV0byYgZnJhbWUgPSBtX3JlbmRlclZpZXcuZnJh
bWVWaWV3KCkuZnJhbWUoKTsKKworICAgICAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0
b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICAgICAgc2Nyb2xsaW5n
Q29vcmRpbmF0b3ItPmZyYW1lVmlld1dpbGxCZURldGFjaGVkKG1fcmVuZGVyVmlldy5mcmFtZVZp
ZXcoKSk7CisKICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKGZyYW1lLCBudWxscHRyKTsKICAgICB9CiAgICAgYnJlYWs7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjg0YzE5ZjZmYzJkMTVl
NTg1MzQwZTY4MzkwM2QyOTYzNzNjYzM3Mi4uNzQ4YWE4Y2UzZjczNjJmMjI2MWUzZTVkMjZlODVk
YWQwY2Q3MzA2MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTEwLTIyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENvbnRlbnQgb2Zmc2V0IGluIHRoaXMgY29kZXBl
biB3aGVuIHN3aXRjaGluZyB0YWJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE5ODkKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgor
CisgICAgICAgIEFQSSB0ZXN0IHRoYXQgc2Nyb2xscyBhbiBpZnJhbWUgdmlhIHdoZWVsIGV2ZW50
cywgdGhlbiBkZXRhY2hlZCBhbmQgcmUtYXR0YWNoZXMgdGhlIHZpZXcuCisKKyAgICAgICAgVGhl
IHR3byB3aGVlbCBzY3JvbGxzIGFyZSBuZWNlc3NhcnkgdG8gZXhlcmNpc2UgdGhlICJzdGFsZSBT
Y3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUKKyAgICAgICAgc2Nyb2xsIHBvc2l0aW9uIiBpc3N1
ZS4KKworICAgICAgICBUaGUgc2Nyb2xsaW5nIHRyZWUgZHVtcHMgdmFsaWRhdGUgdGhlIGxheW91
dCB2aWV3cG9ydCBwYXJ0IG9mIHRoZSBmaXguCisKKyAgICAgICAgQWxzbyBjb3JyZWN0IHNvbWUg
ZnVuY3Rpb25zIHdoZXJlIHRoZSBzZW5zZSBvZiAnaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCcgd2Fz
IGZsaXBwZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9T
Y3JvbGxpbmdDb29yZGluYXRvclRlc3RzLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OnN5bnRoZXNpemVXaGVlbEV2ZW50cyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3YWl0
Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OnNjcm9sbGluZ1RyZWVFbGlkaW5nTGFzdENvbW1pdHRlZFNjcm9sbFBvc2l0aW9uKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvY29jb2Ev
VGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgb2JqZWN0
QnlDYWxsaW5nQXN5bmNGdW5jdGlvbjp3aXRoQXJndW1lbnRzOmVycm9yOl0pOgorCiAyMDIxLTEw
LTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0IHNo
b3VsZCBwcm9jZXNzLXN3YXAgZm9yIGluaXRpYWwgbmF2aWdhdGlvbiBvZiBhIHBvcHVwIGlmIGl0
IGhhcyBubyBvcGVuZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzE3OTE2NzZiNThhNTk0
YWEwZWY4YjM0NGRiYTFjNTBiYzJkNmMxYi4uMDc4M2MxMDkwYmY0Yzk2MWQ4MjM3MGI0YWRlMzM0
YjdmZDFkMjZhNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg2LDYgKzg2LDcgQEAKIAkJ
MEY0RkZBOUUxRUQzQUE4NTAwRjcxMTFGIC8qIFNuYXBzaG90VmlhUmVuZGVySW5Db250ZXh0Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RkZBOUQx
RUQzQUE4NTAwRjcxMTFGIC8qIFNuYXBzaG90VmlhUmVuZGVySW5Db250ZXh0Lm1tICovOyB9Owog
CQkwRjU2NTFGNzFGQ0U0RERDMDAzMTBGQkMgLyogTm9IaXN0b3J5SXRlbVNjcm9sbFRvRnJhZ21l
bnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU2
NTFGNjFGQ0U0RERCMDAzMTBGQkMgLyogTm9IaXN0b3J5SXRlbVNjcm9sbFRvRnJhZ21lbnQubW0g
Ki87IH07CiAJCTBGNTY1MUY5MUZDRTUxMzUwMDMxMEZCQyAvKiBzY3JvbGwtdG8tYW5jaG9yLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY1NjUxRjgxRkNFNTBFODAwMzEwRkJDIC8qIHNjcm9sbC10by1hbmNob3IuaHRtbCAqLzsgfTsK
KwkJMEZFRkFGNjQyNzFGQzJDRDAwNTcwNEQ3IC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVGQUY2
MzI3MUZDMkNEMDA1NzA0RDcgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5tbSAqLzsgfTsK
IAkJMEZGMTEzNEUyMkQ2ODY3OTAwOUE4MURBIC8qIFNjcm9sbFZpZXdTY3JvbGxhYmlsaXR5VGVz
dHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkYx
MTM0RDIyRDY4Njc5MDA5QTgxREEgLyogU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbSAq
LzsgfTsKIAkJMTE1RUIzNDMxRUUwQkEwMzAwM0MyQzBBIC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdw
b3J0VW5pdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxMTVFQjM0MjFFRTBCNzIwMDAzQzJDMEEgLyogVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0
cy5tbSAqLzsgfTsKIAkJMTE3MUIyNEYyMTlGNDlDRDAwQ0I4OTdEIC8qIEZpcnN0TWVhbmluZ2Z1
bFBhaW50TWlsZXN0b25lX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxMUI3RkQyMTIxOUY0NkREMDA2OUIyN0YgLyogRmlyc3RNZWFuaW5n
ZnVsUGFpbnRNaWxlc3RvbmVfQnVuZGxlLmNwcCAqLzsgfTsKQEAgLTE4NTcsNiArMTg1OCw3IEBA
CiAJCTBGQzZDNENFMTQxMDM0QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1ldGFBbGxvY2F0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkU0NDc5NzFCNzZGMUUzMDA5NDk4RUIgLyogUGFya2lu
Z0xvdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXJraW5nTG90
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQUUzNjcxQjdEMTlDQjAwQ0Ux
N0YyIC8qIENvbmRpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDb25kaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkVGQUY2MzI3
MUZDMkNEMDA1NzA0RDcgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRjExMzREMjJENjg2NzkwMDlBODFE
QSAvKiBTY3JvbGxWaWV3U2Nyb2xsYWJpbGl0eVRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsVmlld1Njcm9sbGFiaWxpdHlUZXN0cy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZGQzQ1QTQxQjczRUJFMjAwODVCRDYyIC8qIExv
Y2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9jay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExNUVCMzQyMUVFMEI3MjAwMDNDMkMwQSAvKiBW
aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMwODcsNyArMzA4OSw2IEBACiAJCUY0NEE1MzBGMjFCODk3
NjkwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJT
aGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDRBNTMxMDIxQjg5NzY5MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluc3RhbmNlTWV0
aG9kU3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNl
TWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE3RDFG
MjY4RDVDNjkwMEI0OUJCOCAvKiBJbWFnZUFuYWx5c2lzVGVzdHMubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBJbWFnZUFuYWx5c2lzVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUY0NEE5QUY1MjY0OUJCREQwMEU3Q0IxNiAvKiBJbW1lZGlhdGVBY3Rpb25UZXN0cy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbW1lZGlhdGVBY3Rpb25UZXN0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNDRBOUFGNjI2NDlCQkREMDBFN0NCMTYgLyogSW1tZWRpYXRlQWN0aW9uVGVz
dHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbW1lZGlhdGVBY3Rpb25UZXN0cy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0Qzc5RkIyMEY5RTUwQzAwMTQ0NzhDIC8qIFBh
cnNlcllpZWxkVG9rZW5QbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXJzZXJZaWVs
ZFRva2VuUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRDNzlGRDIw
RjlFODcxMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblRlc3RzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFBhcnNlcllpZWxkVG9rZW5UZXN0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDgyMSw3ICs0ODIyLDYgQEAKIAkJCQk1MUVCMTI1ODI0QzY4NTg5MDAwQ0IwMzAgLyogSElER2Ft
ZXBhZHMubW0gKi8sCiAJCQkJOUI0RjhGQTMxNTlENTJCMTAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0
aW9uTmFtZWRJdGVtLm1tICovLAogCQkJCTlCMjZGQzZCMTU5RDA2MTAwMENDMzc2NSAvKiBIVE1M
Rm9ybUNvbGxlY3Rpb25OYW1lZEl0ZW0ubW0gKi8sCi0JCQkJRjQ0QTlBRjUyNjQ5QkJERDAwRTdD
QjE2IC8qIEltbWVkaWF0ZUFjdGlvblRlc3RzLmggKi8sCiAJCQkJRjQ0QTlBRjYyNjQ5QkJERDAw
RTdDQjE2IC8qIEltbWVkaWF0ZUFjdGlvblRlc3RzLm1tICovLAogCQkJCUM1MDdFOEE2MTRDNjU0
NUIwMDVENkIzQiAvKiBJbnNwZWN0b3JCYXIubW0gKi8sCiAJCQkJNTdGMTBEOTIxQzdFN0IzODAw
RUNERjMwIC8qIElzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW0gKi8sCkBAIC00ODQxLDYgKzQ4
NDEsNyBAQAogCQkJCUE1N0EzNEVGMTZBRjY3NzIwMEMyNTAxRiAvKiBQYWdlVmlzaWJpbGl0eVN0
YXRlV2l0aFdpbmRvd0NoYW5nZXMubW0gKi8sCiAJCQkJMzdDNzg0REUxOTdDOEYyRTAwMTBBNDk2
IC8qIFJlbmRlcmVkSW1hZ2VGcm9tRE9NTm9kZS5tbSAqLywKIAkJCQkzNzIyQzg2ODE0NjFFMDNF
MDBDNDVEMDAgLyogUmVuZGVyZWRJbWFnZUZyb21ET01SYW5nZS5tbSAqLywKKwkJCQkwRkVGQUY2
MzI3MUZDMkNEMDA1NzA0RDcgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3JUZXN0cy5tbSAqLywKIAkJ
CQkyNjE1MTZENTE1QjBFNjA1MDBBMkMyMDEgLyogU2V0QW5kVXBkYXRlQ2FjaGVNb2RlbC5tbSAq
LywKIAkJCQk1MkI4Q0Y5NTE1ODY4Q0YwMDAyODEwNTMgLyogU2V0RG9jdW1lbnRVUkkubW0gKi8s
CiAJCQkJQzU0MEY3NzUxNTJFNERBMDAwQTQwQzhDIC8qIFNpbXBsaWZ5TWFya3VwLm1tICovLApA
QCAtNTgzNyw2ICs1ODM4LDcgQEAKIAkJCQk5NTA5NUYyMDI2MkZGRkE1MDAwMEQ5MjAgLyogU2Ft
cGxlZFBhZ2VUb3BDb2xvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0ZBN0FBMUU0NTE4MzIw
MEMyNDMzRCAvKiBTYW1wbGVNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UwOTQ3MzcyMDYz
MjIzQjAwM0M5QkEwIC8qIFNjaGVtZVJlZ2lzdHJ5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMEZF
RkFGNjQyNzFGQzJDRDAwNTcwNEQ3IC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMubW0gaW4g
U291cmNlcyAqLywKIAkJCQlDREMwOTMyQjIxQzg3MkMxMDAzMEM0QjAgLyogU2Nyb2xsaW5nRG9l
c05vdFBhdXNlTWVkaWEubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YxMjFBNDExQUU2MDA0
NDdDNEMgLyogU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NDM0Q0ExQTIyRTY1QkNBMDA1RERCMjYgLyogU2Nyb2xsVG9SZXZlYWxTZWxlY3Rpb24ubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvclRlc3RzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczMjQ1NjRlOTc4OWZi
YTI0N2RkYmRkZDgzMzMyM2YxZmUzOTQwODQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9TY3JvbGxpbmdDb29yZGluYXRvclRlc3RzLm1tCkBAIC0wLDAg
KzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJUZXN0
LmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgi
CisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0
aW9uRXh0cmFzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRp
YyBmbG9hdCB3YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKFdLV2ViVmlldyogd2Vi
VmlldywgY29uc3Qgc3RkOjpmdW5jdGlvbjx2b2lkKFdLV2ViVmlldyopPiYgc2Nyb2xsVHJpZ2dl
cikKK3sKKyAgICBib29sIHJlY2VpdmVkU2Nyb2xsRXZlbnQgPSBmYWxzZTsKKyAgICBSZXRhaW5Q
dHI8aWQ+IGV2YWxSZXN1bHQ7CisgICAgUmV0YWluUHRyPE5TRXJyb3I+IHN0cm9uZ0Vycm9yOwor
ICAgIAorICAgIE5TU3RyaW5nICpzY3JpcHRTdHJpbmcgPSBAInJldHVybiBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geyIgXAorICAgICAgICAiICAgbGV0IGlmcmFtZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCdpZnJhbWUnKVswXTsiIFwKKyAgICAgICAgIiAgIGlmcmFtZS5jb250
ZW50V2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgKGV2ZW50KSA9PiByZXNvbHZl
KGlmcmFtZS5jb250ZW50V2luZG93LnNjcm9sbFkpKTsgIiBcCisgICAgICAgICJ9KSI7CisKKyAg
ICBbd2ViVmlldyBjYWxsQXN5bmNKYXZhU2NyaXB0OnNjcmlwdFN0cmluZyBhcmd1bWVudHM6bmls
IGluRnJhbWU6bmlsIGluQ29udGVudFdvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3JsZCBjb21w
bGV0aW9uSGFuZGxlcjpbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAg
ZXZhbFJlc3VsdCA9IHJlc3VsdDsKKyAgICAgICAgc3Ryb25nRXJyb3IgPSBlcnJvcjsKKyAgICAg
ICAgcmVjZWl2ZWRTY3JvbGxFdmVudCA9IHRydWU7CisgICAgfV07CisKKyAgICBzY3JvbGxUcmln
Z2VyKHdlYlZpZXcpOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNj
cm9sbEV2ZW50KTsKKworICAgIHJldHVybiBbZXZhbFJlc3VsdCBmbG9hdFZhbHVlXTsKK30KKwor
Ly8gUmVtb3ZlICJsYXN0IGNvbW1pdHRlZCBzY3JvbGwgcG9zaXRpb24iIGZvciB0aGUgaWZyYW1l
J3Mgbm9kZSwgd2hpY2ggd2UgZXhwZWN0IHRvIGJlIGRpZmZlcmVudC4KK3N0YXRpYyBOU1N0cmlu
ZyAqc2Nyb2xsaW5nVHJlZUVsaWRpbmdMYXN0Q29tbWl0dGVkU2Nyb2xsUG9zaXRpb24oTlNTdHJp
bmcgKnNjcm9sbGluZ1RyZWUpCit7CisgICAgTlNNdXRhYmxlQXJyYXkgKmxpbmVzID0gW1tbc2Ny
b2xsaW5nVHJlZSBjb21wb25lbnRzU2VwYXJhdGVkQnlDaGFyYWN0ZXJzSW5TZXQ6W05TQ2hhcmFj
dGVyU2V0IG5ld2xpbmVDaGFyYWN0ZXJTZXRdXSBtdXRhYmxlQ29weV0gYXV0b3JlbGVhc2VdOwor
ICAgIAorICAgIE5TSW5kZXhTZXQqIGxhc3RDb21taXR0ZWRMaW5lSW5kaWNlcyA9IFtsaW5lcyBp
bmRleGVzT2ZPYmplY3RzUGFzc2luZ1Rlc3Q6XkJPT0woaWQgIF9Ob25udWxsIG9iaiwgTlNVSW50
ZWdlciBpZHgsIEJPT0wgKiBfTm9ubnVsbCBzdG9wKSB7CisgICAgICAgIHJldHVybiBbb2JqIGhh
c1ByZWZpeDpAIiAgICAgICAgKGxhc3QgY29tbWl0dGVkIHNjcm9sbCBwb3NpdGlvbiJdOworICAg
IH1dOworICAgIFtsaW5lcyByZW1vdmVPYmplY3RzQXRJbmRleGVzOmxhc3RDb21taXR0ZWRMaW5l
SW5kaWNlc107CisgICAgcmV0dXJuIFtsaW5lcyBjb21wb25lbnRzSm9pbmVkQnlTdHJpbmc6QCJc
biJdOworfQorCitURVNUKFNjcm9sbGluZ0Nvb3JkaW5hdG9yVGVzdHMsIFNjcm9sbGluZ1RyZWVB
ZnRlckRldGFjaFJlYXR0YWNoKQoreworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJXZWJQcm9jZXNzUGx1Z0luV2l0aEludGVybmFscyIgY29u
ZmlndXJlSlNDRm9yVGVzdGluZzpZRVNdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgNTAwLCA1
MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbiBhZGRUb1dpbmRvdzpZRVNdKTsKKyAgICAK
KyAgICBOU1N0cmluZyAqZG9jdW1lbnRTdHJpbmcgPSBAIjxzdHlsZT5ib2R5IHsgaGVpZ2h0OiA1
MDAwcHg7IH08L3N0eWxlPiIgXAorICAgICAgICAiPGlmcmFtZSBzcmNkb2M9XCI8c3R5bGU+Ym9k
eSB7IGhlaWdodDogNTAwMHB4OyB9PC9zdHlsZT48ZGl2IHN0eWxlPSdwb3NpdGlvbjpmaXhlZDsg
d2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7IGJhY2tncm91bmQ6IGJsdWUnPjwvZGl2PlwiPjwv
aWZyYW1lPiI7CisgICAgCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5n
OmRvY3VtZW50U3RyaW5nXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVw
ZGF0ZV07CisKKyAgICBDR1BvaW50IGV2ZW50TG9jYXRpb25JbldpbmRvdyA9IFt3ZWJWaWV3IGNv
bnZlcnRQb2ludDpDR1BvaW50TWFrZSg1MCwgNTApIHRvVmlldzpuaWxdOworCisgICAgYXV0byBz
Y3JvbGxZID0gd2FpdEZvclNjcm9sbEV2ZW50QW5kUmV0dXJuU2Nyb2xsWSh3ZWJWaWV3LmdldCgp
LCBbZXZlbnRMb2NhdGlvbkluV2luZG93XShUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3KSB7CisgICAg
ICAgIFt3ZWJWaWV3IHdoZWVsRXZlbnRBdFBvaW50OmV2ZW50TG9jYXRpb25JbldpbmRvdyB3aGVl
bERlbHRhOkNHU2l6ZU1ha2UoMCwgLTEwMCldOworICAgIH0pOworICAgIEVYUEVDVF9FUShzY3Jv
bGxZLCAxMDApOworCisgICAgLy8gU2VuZCBhIHNlY29uZCB3aGVlbCBldmVudCB0byB0cmlnZ2Vy
IHJlY29uY2lsZVNjcm9sbGluZ1N0YXRlKCkgdGhhdCBkb2VzIG5vdCBlbmQgdXAgaW4gc2V0U2Ny
b2xsaW5nTm9kZVNjcm9sbGFibGVBcmVhR2VvbWV0cnkoKSAoc29tZSBjb21wb3NpdGluZyBjb2Rl
IGVhcmx5IHJldHVybnMpLgorICAgIC8vIFRoaXMgd291bGQgbGVhdmUgdGhlIHNjcm9sbGluZyBz
dGF0ZSB0cmVlIHdpdGggYSBzdGFsZSBtX3Njcm9sbFBvc2l0aW9uLgorICAgIHNjcm9sbFkgPSB3
YWl0Rm9yU2Nyb2xsRXZlbnRBbmRSZXR1cm5TY3JvbGxZKHdlYlZpZXcuZ2V0KCksIFtldmVudExv
Y2F0aW9uSW5XaW5kb3ddKFRlc3RXS1dlYlZpZXcgKndlYlZpZXcpIHsKKyAgICAgICAgW3dlYlZp
ZXcgd2hlZWxFdmVudEF0UG9pbnQ6ZXZlbnRMb2NhdGlvbkluV2luZG93IHdoZWVsRGVsdGE6Q0dT
aXplTWFrZSgwLCAtMTAwKV07CisgICAgfSk7CisgICAgRVhQRUNUX0VRKHNjcm9sbFksIDIwMCk7
CisKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBO
U1N0cmluZyAqc2Nyb2xsaW5nVHJlZUJlZm9yZSA9IHNjcm9sbGluZ1RyZWVFbGlkaW5nTGFzdENv
bW1pdHRlZFNjcm9sbFBvc2l0aW9uKFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJpbnRlcm5hbHMuc2Nyb2xsaW5nVHJlZUFzVGV4dCgpIl0pOworCisgICAgTlNXaW5kb3cg
Kmhvc3RXaW5kb3cgPSBbd2ViVmlldyB3aW5kb3ddOworICAgIFt3ZWJWaWV3IHJlbW92ZUZyb21T
dXBlcnZpZXddOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsK
KyAgICBbW2hvc3RXaW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07
CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworCisgICAgTlNT
dHJpbmcgKnNjcm9sbGluZ1RyZWVBZnRlciA9IHNjcm9sbGluZ1RyZWVFbGlkaW5nTGFzdENvbW1p
dHRlZFNjcm9sbFBvc2l0aW9uKFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJpbnRlcm5hbHMuc2Nyb2xsaW5nVHJlZUFzVGV4dCgpIl0pOworCisgICAgRVhQRUNUX1RSVUUo
W3Njcm9sbGluZ1RyZWVCZWZvcmUgaXNFcXVhbFRvU3RyaW5nOnNjcm9sbGluZ1RyZWVBZnRlcl0p
OworCisgICAgc2Nyb2xsWSA9IHdhaXRGb3JTY3JvbGxFdmVudEFuZFJldHVyblNjcm9sbFkod2Vi
Vmlldy5nZXQoKSwgW2V2ZW50TG9jYXRpb25JbldpbmRvd10oVGVzdFdLV2ViVmlldyAqd2ViVmll
dykgeworICAgICAgICBbd2ViVmlldyB3aGVlbEV2ZW50QXRQb2ludDpldmVudExvY2F0aW9uSW5X
aW5kb3cgd2hlZWxEZWx0YTpDR1NpemVNYWtlKDAsIC0xMDEpXTsKKyAgICB9KTsKKyAgICBFWFBF
Q1RfRVEoc2Nyb2xsWSwgMzAxKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQor
CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RX
S1dlYlZpZXcuaAppbmRleCA5YjExYTc5NTI0ZTgxNWIxYWMwOTI3YzUwOTUwMWVlZDA1NTNkNDJm
Li45NWU2NGE2NzQ0Mzk4MGVhZmViMzA4N2QwODFkNzIzN2M5Yzc5MzQyIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaApAQCAtMTM5LDYgKzEzOSw3IEBACiAtICh2
b2lkKW1vdXNlTW92ZVRvUG9pbnQ6KE5TUG9pbnQpcG9pbnRJbldpbmRvdyB3aXRoRmxhZ3M6KE5T
RXZlbnRNb2RpZmllckZsYWdzKWZsYWdzOwogLSAodm9pZClzZW5kQ2xpY2tzQXRQb2ludDooTlNQ
b2ludClwb2ludEluV2luZG93IG51bWJlck9mQ2xpY2tzOihOU1VJbnRlZ2VyKW51bWJlck9mQ2xp
Y2tzOwogLSAodm9pZClzZW5kQ2xpY2tBdFBvaW50OihOU1BvaW50KXBvaW50SW5XaW5kb3c7Cist
ICh2b2lkKXdoZWVsRXZlbnRBdFBvaW50OihDR1BvaW50KXBvaW50SW5XaW5kb3cgd2hlZWxEZWx0
YTooQ0dTaXplKWRlbHRhOwogLSAoTlNXaW5kb3cgKilob3N0V2luZG93OwogLSAodm9pZCl0eXBl
Q2hhcmFjdGVyOihjaGFyKWNoYXJhY3RlciBtb2RpZmllcnM6KE5TRXZlbnRNb2RpZmllckZsYWdz
KW1vZGlmaWVyczsKIC0gKHZvaWQpdHlwZUNoYXJhY3RlcjooY2hhciljaGFyYWN0ZXI7CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KaW5kZXggYzAyZTBkZjQyNjcw
NjgzZGI1N2YwMzkwYTFjNjRlNzc3ZmE1OGY4Yi4uMGFkZmFlMDUyOTc5NmY2ZTYzY2U5MjdiZmYy
MWJjODUxNzQ3NzcxZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0
V0tXZWJWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmll
dy5tbQpAQCAtMjA0LDM3ICsyMDQsMzcgQEAgLSAoQk9PTClldmFsdWF0ZU1lZGlhUXVlcnk6KE5T
U3RyaW5nICopcXVlcnkKIAogLSAoaWQpb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDooTlNT
dHJpbmcgKilzY3JpcHQKIHsKLSAgICBib29sIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSBmYWxz
ZTsKKyAgICBib29sIGNhbGxiYWNrQ29tcGxldGUgPSBmYWxzZTsKICAgICBSZXRhaW5QdHI8aWQ+
IGV2YWxSZXN1bHQ7CiAgICAgW3NlbGYgX2V2YWx1YXRlSmF2YVNjcmlwdFdpdGhvdXRVc2VyR2Vz
dHVyZTpzY3JpcHQgY29tcGxldGlvbkhhbmRsZXI6WyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVy
cm9yKSB7CiAgICAgICAgIGV2YWxSZXN1bHQgPSByZXN1bHQ7Ci0gICAgICAgIGlzV2FpdGluZ0Zv
ckphdmFTY3JpcHQgPSB0cnVlOworICAgICAgICBjYWxsYmFja0NvbXBsZXRlID0gdHJ1ZTsKICAg
ICAgICAgRVhQRUNUX1RSVUUoIWVycm9yKTsKICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAg
ICAgTlNMb2coQCJFbmNvdW50ZXJlZCBlcnJvcjogJUAgd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQ6
ICVAIiwgZXJyb3IsIHNjcmlwdCk7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZpc1dhaXRpbmdGb3JKYXZhU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmNhbGxiYWNrQ29tcGxldGUpOwogICAgIHJldHVybiBldmFsUmVzdWx0LmF1dG9yZWxlYXNl
KCk7CiB9CiAKIC0gKGlkKW9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHRXaXRoVXNlckdlc3R1
cmU6KE5TU3RyaW5nICopc2NyaXB0CiB7Ci0gICAgYm9vbCBpc1dhaXRpbmdGb3JKYXZhU2NyaXB0
ID0gZmFsc2U7CisgICAgYm9vbCBjYWxsYmFja0NvbXBsZXRlID0gZmFsc2U7CiAgICAgUmV0YWlu
UHRyPGlkPiBldmFsUmVzdWx0OwogICAgIFtzZWxmIGV2YWx1YXRlSmF2YVNjcmlwdDpzY3JpcHQg
Y29tcGxldGlvbkhhbmRsZXI6WyZdIChpZCByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CiAgICAg
ICAgIGV2YWxSZXN1bHQgPSByZXN1bHQ7Ci0gICAgICAgIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQg
PSB0cnVlOworICAgICAgICBjYWxsYmFja0NvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgRVhQRUNU
X1RSVUUoIWVycm9yKTsKICAgICAgICAgaWYgKGVycm9yKQogICAgICAgICAgICAgTlNMb2coQCJF
bmNvdW50ZXJlZCBlcnJvcjogJUAgd2hpbGUgZXZhbHVhdGluZyBzY3JpcHQ6ICVAIiwgZXJyb3Is
IHNjcmlwdCk7CiAgICAgfV07Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc1dhaXRp
bmdGb3JKYXZhU2NyaXB0KTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmNhbGxiYWNr
Q29tcGxldGUpOwogICAgIHJldHVybiBldmFsUmVzdWx0LmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0g
KGlkKW9iamVjdEJ5Q2FsbGluZ0FzeW5jRnVuY3Rpb246KE5TU3RyaW5nICopc2NyaXB0IHdpdGhB
cmd1bWVudHM6KE5TRGljdGlvbmFyeSAqKWFyZ3VtZW50cyBlcnJvcjooTlNFcnJvciAqKillcnJv
ck91dAogewotICAgIGJvb2wgaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCA9IGZhbHNlOworICAgIGJv
b2wgY2FsbGJhY2tDb21wbGV0ZSA9IGZhbHNlOwogICAgIGlmIChlcnJvck91dCkKICAgICAgICAg
KmVycm9yT3V0ID0gbmlsOwogCkBAIC0yNDMsOSArMjQzLDkgQEAgLSAoaWQpb2JqZWN0QnlDYWxs
aW5nQXN5bmNGdW5jdGlvbjooTlNTdHJpbmcgKilzY3JpcHQgd2l0aEFyZ3VtZW50czooTlNEaWN0
aW9uYXIKICAgICBbc2VsZiBjYWxsQXN5bmNKYXZhU2NyaXB0OnNjcmlwdCBhcmd1bWVudHM6YXJn
dW1lbnRzIGluRnJhbWU6bmlsIGluQ29udGVudFdvcmxkOldLQ29udGVudFdvcmxkLnBhZ2VXb3Js
ZCBjb21wbGV0aW9uSGFuZGxlcjpbJl0gKGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKICAg
ICAgICAgZXZhbFJlc3VsdCA9IHJlc3VsdDsKICAgICAgICAgc3Ryb25nRXJyb3IgPSBlcnJvcjsK
LSAgICAgICAgaXNXYWl0aW5nRm9ySmF2YVNjcmlwdCA9IHRydWU7CisgICAgICAgIGNhbGxiYWNr
Q29tcGxldGUgPSB0cnVlOwogICAgIH1dOwotICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
aXNXYWl0aW5nRm9ySmF2YVNjcmlwdCk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZj
YWxsYmFja0NvbXBsZXRlKTsKIAogICAgIGlmIChlcnJvck91dCkKICAgICAgICAgKmVycm9yT3V0
ID0gc3Ryb25nRXJyb3IuYXV0b3JlbGVhc2UoKTsKQEAgLTg2Miw2ICs4NjIsMTggQEAgLSAoTlNF
dmVudCAqKV9tb3VzZUV2ZW50V2l0aFR5cGU6KE5TRXZlbnRUeXBlKXR5cGUgYXRMb2NhdGlvbjoo
TlNQb2ludClsb2NhdGlvbkkKICAgICB9CiB9CiAKKy0gKHZvaWQpd2hlZWxFdmVudEF0UG9pbnQ6
KENHUG9pbnQpcG9pbnRJbldpbmRvdyB3aGVlbERlbHRhOihDR1NpemUpZGVsdGEKK3sKKyAgICBS
ZXRhaW5QdHI8Q0dFdmVudFJlZj4gY2dTY3JvbGxFdmVudCA9IGFkb3B0Q0YoQ0dFdmVudENyZWF0
ZVNjcm9sbFdoZWVsRXZlbnQobnVsbHB0ciwga0NHU2Nyb2xsRXZlbnRVbml0UGl4ZWwsIDIsIGRl
bHRhLmhlaWdodCwgZGVsdGEud2lkdGgsIDApKTsKKworICAgIENHUG9pbnQgbG9jYXRpb25Jbkds
b2JhbFNjcmVlbkNvb3JkaW5hdGVzID0gW1tzZWxmIHdpbmRvd10gY29udmVydFBvaW50VG9TY3Jl
ZW46cG9pbnRJbldpbmRvd107CisgICAgbG9jYXRpb25Jbkdsb2JhbFNjcmVlbkNvb3JkaW5hdGVz
LnkgPSBbW1tOU1NjcmVlbiBzY3JlZW5zXSBvYmplY3RBdEluZGV4OjBdIGZyYW1lXS5zaXplLmhl
aWdodCAtIGxvY2F0aW9uSW5HbG9iYWxTY3JlZW5Db29yZGluYXRlcy55OworICAgIENHRXZlbnRT
ZXRMb2NhdGlvbihjZ1Njcm9sbEV2ZW50LmdldCgpLCBsb2NhdGlvbkluR2xvYmFsU2NyZWVuQ29v
cmRpbmF0ZXMpOworICAgIAorICAgIE5TRXZlbnQqIGV2ZW50ID0gW05TRXZlbnQgZXZlbnRXaXRo
Q0dFdmVudDpjZ1Njcm9sbEV2ZW50LmdldCgpXTsKKyAgICBbc2VsZiBzY3JvbGxXaGVlbDpldmVu
dF07Cit9CisKIC0gKE5TV2luZG93ICopaG9zdFdpbmRvdwogewogICAgIHJldHVybiBfaG9zdFdp
bmRvdy5nZXQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA4NzQwNmQwOWI3MjM4ZWY3YmNiYjU0YTQ2YTJiNzI3YTUxYjQ1
YjJkLi5jMjY4ZGE5OTdlYzJiZjk2MTAyMDEwZGJkYzE4ZjJmYzFiYzQ5YmRkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjEtMTAtMjIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgQ29udGVudCBvZmZzZXQgaW4gdGhpcyBjb2RlcGVuIHdoZW4gc3dp
dGNoaW5nIHRhYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMTk4OQorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAg
TmV3IGJhc2VsaW5lcy4KKworICAgICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2NsYW1w
LW91dC1vZi1ib3VuZHMtc2Nyb2xscy1leHBlY3RlZC50eHQ6CisgICAgICAgICogdGlsZWQtZHJh
d2luZy9zY3JvbGxpbmcvc2Nyb2xsaW5nLXRyZWUtYWZ0ZXItc2Nyb2xsLWV4cGVjdGVkLnR4dDoK
KwogMjAyMS0xMC0yMSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjgzODY0KTogQXBwbGUgUGF5IG5hbWVkIGltYWdlcyBhcmUgbWlzc2lu
Zwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>