<?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>213704</bug_id>
          
          <creation_ts>2020-06-28 14:52:42 -0700</creation_ts>
          <short_desc>[iOS] Implement support for UIWKDocumentRequestSpatialAndCurrentSelection</short_desc>
          <delta_ts>2020-07-01 10:08:48 -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>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1666925</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 14:52:42 -0700</bug_when>
    <thetext>Implement support in WebKit for the UIWKDocumentRequestSpatialAndCurrentSelection flag I added to UIKit in &lt;rdar://problem/64867540&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666926</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 14:52:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/59738878&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666928</commentid>
    <comment_count>2</comment_count>
      <attachid>403011</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 15:06:12 -0700</bug_when>
    <thetext>Created attachment 403011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666929</commentid>
    <comment_count>3</comment_count>
      <attachid>403011</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 15:08:32 -0700</bug_when>
    <thetext>Comment on attachment 403011
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:4163
&gt; +        if (bool shouldIncludeCurrentSelection = request.options.contains(DocumentEditingContextRequest::Options::SpatialAndCurrentSelection)) {

I&apos;m leaning to removing this bool and assignment because its name only improves readability a very tiny bit....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666930</commentid>
    <comment_count>4</comment_count>
      <attachid>403012</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 15:09:20 -0700</bug_when>
    <thetext>Created attachment 403012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666945</commentid>
    <comment_count>5</comment_count>
      <attachid>403016</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-28 17:00:09 -0700</bug_when>
    <thetext>Created attachment 403016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667619</commentid>
    <comment_count>6</comment_count>
      <attachid>403207</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 10:52:37 -0700</bug_when>
    <thetext>Created attachment 403207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667661</commentid>
    <comment_count>7</comment_count>
      <attachid>403207</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 12:09:56 -0700</bug_when>
    <thetext>Comment on attachment 403207
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:477
&gt; +    spatialBoxRect.size.height = 1;

I think I can get rid of this...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667668</commentid>
    <comment_count>8</comment_count>
      <attachid>403207</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 12:23:28 -0700</bug_when>
    <thetext>Comment on attachment 403207
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:477
&gt;&gt; +    spatialBoxRect.size.height = 1;
&gt; 
&gt; I think I can get rid of this...

No, I can&apos;t so I will add a comment. The issue is that (and maybe this is a bug) hit testing the bottom of the line is considered the top of the next line (i.e. there&apos;s no gap in the programming model, though visually there could be via CSS line-height). So, a height of glyphWidth (because this is Ahem so things are square) or greater will cause the hit test to hit the next line. I don&apos;t want that because it then triggers another behavior: hit testing below the last line (also above the first line I think) is as if the entire line was hit (this is to cause a selection highlight of the entire line when painted). So, I just need to pick a height &lt; glyphWidth. I like small things, so I chose 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667670</commentid>
    <comment_count>9</comment_count>
      <attachid>403222</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 12:28:22 -0700</bug_when>
    <thetext>Created attachment 403222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667673</commentid>
    <comment_count>10</comment_count>
      <attachid>403222</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 12:29:57 -0700</bug_when>
    <thetext>Comment on attachment 403222
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:34
&gt; +#import &quot;UserInterfaceSwizzler.h&quot;

This is not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667676</commentid>
    <comment_count>11</comment_count>
      <attachid>403222</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 12:31:10 -0700</bug_when>
    <thetext>Comment on attachment 403222
Patch

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

&gt; Source/WebKit/ChangeLog:11
&gt; +        rect and current selection, if there is one.

and =&gt; and the</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667798</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-30 17:15:16 -0700</bug_when>
    <thetext>Thanks for the review, Wenson!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667978</commentid>
    <comment_count>13</comment_count>
      <attachid>403302</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-01 09:52:44 -0700</bug_when>
    <thetext>Created attachment 403302
To Land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667987</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-07-01 10:08:48 -0700</bug_when>
    <thetext>Committed r263813: &lt;https://trac.webkit.org/changeset/263813&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403011</attachid>
            <date>2020-06-28 15:06:12 -0700</date>
            <delta_ts>2020-06-28 15:09:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213704-20200628150611.patch</filename>
            <type>text/plain</type>
            <size>12955</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1NTYxNDE4OTk4ODg2NzNh
ZTUyNzcyMWU1YzE1MTcxMTNmMWI5MjkuLjJiYWMwNTgxZTFkODRkZGZmYTA0YmVjMDRjMTg4Nzg0
YzU1OWEzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDYtMjggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBw
b3J0IGZvciBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcwNAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTk3Mzg4Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIHRoZSBuZXcgcmVx
dWVzdCB0eXBlIFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbi4K
KyAgICAgICAgUmVxdWVzdHMgb2YgdGhpcyB0eXBlIHJldHVybiB0aGUgY29udGVudHMgaW5zaWRl
IHRoZSByYW5nZSB0aGF0IGNvdmVycyBib3RoIHRoZSBzcGVjaWZpZWQKKyAgICAgICAgcmVjdCBh
bmQgY3VycmVudCBzZWxlY3Rpb24sIGlmIHRoZXJlIGlzIG9uZS4KKworICAgICAgICBUaGUgZmxh
ZyBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24gd2FzIGFkZGVk
IGluIDxyZGFyOi8vcHJvYmxlbS82NDg2NzU0MD4uCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmg6IFNhbWUgdGhpbmcgSSBkaWQgaW4gVGVzdFdlYktpdEFQSS9pb3MvVUlL
aXRTUEkuaC4gU2VlIFRvb2xzIENoYW5nZUxvZyBmb3Igd2h5LgorICAgICAgICAqIFNoYXJlZC9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICh0b1dlYkRvY3VtZW50UmVxdWVzdE9wdGlv
bnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQpOgor
CiAyMDIwLTA2LTI4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBDbGVhbiB1cCB2aXNpYmxlIHBvc2l0aW9uIGNvbXBhcmlzb25zIGluIFdlYlBhZ2U6
OnJlcXVlc3REb2N1bWVudEVkaXRpbmdDb250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggZWU1YWMxOWY2NGY5ODgxZTcxYjc2YzJlMzAwMWI2YzVl
YTBiZjk5Zi4uOGM5YTI1MjkxZjZkNDA1NjRkYzI0MWM1MzgwYTJkZmRiNWNhMTRlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTEyMTIsNiArMTIxMiw3
IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfVUlDb250ZXh0TWVudUxheW91dCkgewog
I2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNkZWZpbmUgVUlXS0RvY3VtZW50
UmVxdWVzdE1hcmtlZFRleHRSZWN0cyAoMSA8PCA1KQorI2RlZmluZSBVSVdLRG9jdW1lbnRSZXF1
ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24gKDEgPDwgNikKIAogQGludGVyZmFjZSBVSVRl
eHRJbnRlcmFjdGlvbkFzc2lzdGFudCAoSVBJKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIGluR2VzdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Rv
Y3VtZW50RWRpdGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3VtZW50RWRp
dGluZ0NvbnRleHQuaAppbmRleCBlZmMwYTQxODZkYjlmYjgxMmYwNTdhOWI5MGJmNTFhYjRiNTY4
NmJjLi43ODcxM2UxYTRiODU1NjUzNTBiOGQ3OTExNDUxZGE1NTdiM2RmMTNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oCkBAIC00OCw2ICs0OCw3
IEBAIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCB7CiAgICAgICAgIFNwYXRp
YWwgPSAxIDw8IDMsCiAgICAgICAgIEFubm90YXRpb24gPSAxIDw8IDQsCiAgICAgICAgIE1hcmtl
ZFRleHRSZWN0cyA9IDEgPDwgNSwKKyAgICAgICAgU3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24g
PSAxIDw8IDYsCiAgICAgfTsKIAogICAgIE9wdGlvblNldDxPcHRpb25zPiBvcHRpb25zOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KaW5kZXggYjQ3MjYxOTQyM2NiZmVmN2M1ZmIwYzBmNGY3OWM2NmM3ZGU0NWMwOS4u
NzY4MTI2NzYzZGFhOWNjMzY2ZTMzMDJiYzAyODU3MmQyYmE1ZjVhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CkBAIC03Nzg2LDYgKzc3ODYsOCBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkRv
Y3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zPiB0b1dlYkRvYwogICAgICAgICBv
cHRpb25zLmFkZChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25z
OjpBbm5vdGF0aW9uKTsKICAgICBpZiAoZmxhZ3MgJiBVSVdLRG9jdW1lbnRSZXF1ZXN0TWFya2Vk
VGV4dFJlY3RzKQogICAgICAgICBvcHRpb25zLmFkZChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0Nv
bnRleHRSZXF1ZXN0OjpPcHRpb25zOjpNYXJrZWRUZXh0UmVjdHMpOworICAgIGlmIChmbGFncyAm
IFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbikKKyAgICAgICAg
b3B0aW9ucy5hZGQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9u
czo6U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24pOwogCiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCmluZGV4IGEzZDU1NzE1ZWZlNDk4NWNhMmQ0MTQzYWNlZjQ4OWM5ZDM1MWEzNDMuLmI5YTc1
YTM4Y2NlMWRhNWM2ZTJjZjk1YzA0NDhkOTU5M2FhYzBiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00MTM2LDcgKzQx
MzYsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3REb2N1bWVudEVkaXRpbmdDb250ZXh0KERvY3Vt
ZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0IHJlcXVlcwogICAgIFZpc2libGVQb3NpdGlvbiBzZWxl
Y3Rpb25TdGFydCA9IHNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKTsKICAgICBWaXNpYmxlUG9zaXRp
b24gc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uLnZpc2libGVFbmQoKTsKIAotICAgIGJvb2wgaXNT
cGF0aWFsUmVxdWVzdCA9IHJlcXVlc3Qub3B0aW9ucy5jb250YWlucyhEb2N1bWVudEVkaXRpbmdD
b250ZXh0UmVxdWVzdDo6T3B0aW9uczo6U3BhdGlhbCk7CisgICAgYm9vbCBpc1NwYXRpYWxSZXF1
ZXN0ID0gcmVxdWVzdC5vcHRpb25zLmNvbnRhaW5zQW55KHsgRG9jdW1lbnRFZGl0aW5nQ29udGV4
dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWwsIERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0
OjpPcHRpb25zOjpTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiB9KTsKICAgICBib29sIHdhbnRz
UmVjdHMgPSByZXF1ZXN0Lm9wdGlvbnMuY29udGFpbnMoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJl
cXVlc3Q6Ok9wdGlvbnM6OlJlY3RzKTsKICAgICBib29sIHdhbnRzTWFya2VkVGV4dFJlY3RzID0g
cmVxdWVzdC5vcHRpb25zLmNvbnRhaW5zKERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpP
cHRpb25zOjpNYXJrZWRUZXh0UmVjdHMpOwogCkBAIC00MTYwLDYgKzQxNjAsMTIgQEAgdm9pZCBX
ZWJQYWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChEb2N1bWVudEVkaXRpbmdDb250
ZXh0UmVxdWVzdCByZXF1ZXMKICAgICAgICAgcmFuZ2VPZkludGVyZXN0RW5kID0gdmlzaWJsZVBv
c2l0aW9uRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoZnJhbWUuZ2V0KCksIHJlcXVlc3Qu
cmVjdC5tYXhYTWF4WUNvcm5lcigpKTsKICAgICAgICAgaWYgKHJhbmdlT2ZJbnRlcmVzdEVuZCA8
IHJhbmdlT2ZJbnRlcmVzdFN0YXJ0KQogICAgICAgICAgICAgc3RkOjpleGNoYW5nZShyYW5nZU9m
SW50ZXJlc3RTdGFydCwgcmFuZ2VPZkludGVyZXN0RW5kKTsKKyAgICAgICAgaWYgKGJvb2wgc2hv
dWxkSW5jbHVkZUN1cnJlbnRTZWxlY3Rpb24gPSByZXF1ZXN0Lm9wdGlvbnMuY29udGFpbnMoRG9j
dW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWxBbmRDdXJyZW50U2Vs
ZWN0aW9uKSkgeworICAgICAgICAgICAgaWYgKHNlbGVjdGlvblN0YXJ0IDwgcmFuZ2VPZkludGVy
ZXN0U3RhcnQpCisgICAgICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0U3RhcnQgPSBzZWxlY3Rp
b25TdGFydDsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25FbmQgPiByYW5nZU9mSW50ZXJlc3RF
bmQpCisgICAgICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0RW5kID0gc2VsZWN0aW9uRW5kOwor
ICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CiAgICAgICAg
IHJhbmdlT2ZJbnRlcmVzdFN0YXJ0ID0gc2VsZWN0aW9uU3RhcnQ7CiAgICAgICAgIHJhbmdlT2ZJ
bnRlcmVzdEVuZCA9IHNlbGVjdGlvbkVuZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2NmI4NDZmMzVhN2ZjMDM0ODU4ZWVhMzRmMGZiYzdmMzJm
ZDFkNWRiLi43OTQ2MzVjMGMyYjc1ZWRlNTBmOGMwMDg5N2U0NTk5YmIwNjhiNzJmIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMjAtMDYtMjggIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAg
ICAgIFtpT1NdIEltcGxlbWVudCBzdXBwb3J0IGZvciBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlh
bEFuZEN1cnJlbnRTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMzcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk3Mzg4Nzg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNvbWUg
dGVzdHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3Vt
ZW50RWRpdGluZ0NvbnRleHQubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL2lvcy9VSUtpdFNQSS5oOiBEZWZpbmUgdGhlIGVudW1lcmF0b3IgdXNpbmcgYSBtYWNy
byBqdXN0IGxpa2Ugd2hhdCB3YXMgZG9uZSBmb3IKKyAgICAgICAgVUlXS0RvY3VtZW50UmVxdWVz
dE1hcmtlZFRleHRSZWN0cy4gVGhlIHJlYXNvbiBmb3IgdGhlIG1hY3JvIGluc3RlYWQgb2YgbW9k
aWZ5aW5nIHRoZSBlbnVtZXJhdGlvbgorICAgICAgICBkZWZpbml0aW9uIGluIHRoaXMgZmlsZSBp
cyB0byAxKSBhdm9pZCBicmVha2luZyB0aGUgYnVpbGQgZm9yIEFwcGxlIGVuZ2luZWVycyB0aGF0
IGhhdmVuJ3QgcGlja2VkCisgICAgICAgIHVwIDxyZGFyOi8vcHJvYmxlbS82NDg2NzU0MD4gYW5k
IHRvIDIpIGF2b2lkIGJyZWFraW5nIHRoZSBPcGVuU291cmNlIGJ1aWxkLgorCiAyMDE5LTA5LTEz
ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IGJ1
aWxkaW5nIFdlYktpdCBmb3IgTWFjIENhdGFseXN0IGZyb20gWGNvZGUKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4
dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0
aW5nQ29udGV4dC5tbQppbmRleCA5Zjk4Yjg5NGMzY2E4MjE0MjcyMmFlNWI0MzgwMmRhZjgyNTU1
MmUwLi45YjBkZWEwMmM2ZDc0NmY1NWU5N2U4ZWFhMjdjYTFkMTg0OWFiZWE3IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0Nv
bnRleHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1
bWVudEVkaXRpbmdDb250ZXh0Lm1tCkBAIC00NTgsNiArNDU4LDc4IEBAIFRFU1QoRG9jdW1lbnRF
ZGl0aW5nQ29udGV4dCwgU3BhdGlhbFJlcXVlc3RJblRleHRGaWVsZCkKICAgICB9CiB9CiAKK1RF
U1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgU3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb25SZXF1
ZXN0X1JlY3RCZWZvcmVSYW5nZVNlbGVjdGlvbikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzph
cHBseVN0eWxlKEAiVGhlIHF1aWNrIGJyb3duIGZveCA8c3BhbiBpZD0nanVtcHMnPmp1bXBzPC9z
cGFuPiBvdmVyIHRoZSBsYXp5IGRvZy4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoanVtcHMsIDAs
IGp1bXBzLCAxKSJdOworICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmll
dyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9j
dW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNl
bGVjdGlvbiwgVUlUZXh0R3JhbnVsYXJpdHlXb3JkLCAyLCBDR1JlY3RNYWtlKDAsIDAsIDEwLCAx
MCkpXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5H
X0VRKCJUaGUgcXVpY2sgYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAg
RVhQRUNUX05TU1RSSU5HX0VRKCJqdW1wcyIsIGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICBF
WFBFQ1RfTlNTVFJJTkdfRVEoIiBvdmVyIHRoZSIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKK30K
KworVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlv
blJlcXVlc3RfUmVjdEFmdGVyUmFuZ2VTZWxlY3Rpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6YXBwbHlTdHlsZShAIlRoZSBxdWljayBicm93biBmb3ggPHNwYW4gaWQ9J2p1bXBzJz5qdW1w
czwvc3Bhbj4gb3ZlciB0aGUgbGF6eSBkb2cuIildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGp1bXBz
LCAwLCBqdW1wcywgMSkiXTsKKyAgICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250ZXh0ID0gW3dl
YlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlX
S0RvY3VtZW50UmVxdWVzdFRleHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJl
bnRTZWxlY3Rpb24sIFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMiwgQ0dSZWN0TWFrZSg3MDAsIDAs
IDEwLCAxMCkpXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05T
U1RSSU5HX0VRKCJicm93biBmb3ggIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBF
Q1RfTlNTVFJJTkdfRVEoImp1bXBzIiwgY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVYUEVD
VF9OU1NUUklOR19FUSgiIG92ZXIgdGhlIGxhenkgZG9nLiIsIGNvbnRleHQuY29udGV4dEFmdGVy
KTsKK30KKworVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsQW5kQ3VycmVudFNl
bGVjdGlvblJlcXVlc3RfUmVjdEFyb3VuZFJhbmdlU2VsZWN0aW9uKQoreworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nQW5kV2FpdFVudGlsQWxsSW1tZWRpYXRlQ2hpbGRGcmFtZXNQYWludDphcHBseUFo
ZW1TdHlsZShAIlRoZSBxdWljayBicm93biBmb3ggPHNwYW4gaWQ9J2p1bXBzJz5qdW1wczwvc3Bh
bj4gb3ZlciB0aGUgbGF6eSBkb2cuIildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGp1bXBzLCAwLCBq
dW1wcywgMSkiXTsKKyAgICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250ZXh0ID0gW3dlYlZpZXcg
c3luY2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3Vt
ZW50UmVxdWVzdFRleHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxl
Y3Rpb24sIFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMiwgQ0dSZWN0TWFrZSgxNiAqIGdseXBoV2lk
dGgsIDAsIDEwICogZ2x5cGhXaWR0aCwgMSkpXTsgLy8gImZveCBqdW1wcyAiCisgICAgRVhQRUNU
X05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgicXVpY2sgYnJvd24g
Zm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJq
dW1wcyIsIGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoIiBv
dmVyIHRoZSIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKK30KKworVEVTVChEb2N1bWVudEVkaXRp
bmdDb250ZXh0LCBTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvblJlcXVlc3RfUmVjdEJlZm9yZUNh
cmV0U2VsZWN0aW9uKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7Cisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCJUaGUg
cXVpY2sgYnJvd24gZm94IDxzcGFuIGlkPSdqdW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhlIGxh
enkgZG9nLiIpXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
Z2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChqdW1wcywgMCwganVtcHMsIDApIl07Cisg
ICAgVUlXS0RvY3VtZW50Q29udGV4dCAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlS
ZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0
IHwgVUlXS0RvY3VtZW50UmVxdWVzdFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRH
cmFudWxhcml0eVdvcmQsIDIsIENHUmVjdE1ha2UoMCwgMCwgMTAsIDEwKSldOworICAgIEVYUEVD
VF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoIlRoZSBxdWljayBi
cm93biBmb3ggIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlVMTChjb250
ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJqdW1wcyBvdmVyIiwg
Y29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQs
IFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QWZ0ZXJDYXJldFNlbGVjdGlv
bikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiVGhlIHF1aWNrIGJyb3du
IGZveCA8c3BhbiBpZD0nanVtcHMnPmp1bXBzPC9zcGFuPiBvdmVyIHRoZSBsYXp5IGRvZy4iKV07
CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlv
bigpLnNldEJhc2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAwKSJdOworICAgIFVJV0tEb2N1
bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3Vt
ZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1
bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiwgVUlUZXh0R3JhbnVsYXJpdHlX
b3JkLCAyLCBDR1JlY3RNYWtlKDcwMCwgMCwgMTAsIDEwKSldOworICAgIEVYUEVDVF9OT1RfTlVM
TChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImJyb3duIGZveCAiLCBjb250ZXh0
LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9OVUxMKGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsK
KyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImp1bXBzIG92ZXIgdGhlIGxhenkgZG9nLiIsIGNvbnRl
eHQuY29udGV4dEFmdGVyKTsKK30KKworVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0
aWFsQW5kQ3VycmVudFNlbGVjdGlvblJlcXVlc3RfUmVjdEFyb3VuZENhcmV0U2VsZWN0aW9uKQor
eworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nQW5kV2FpdFVudGlsQWxsSW1tZWRpYXRlQ2hpbGRGcmFt
ZXNQYWludDphcHBseUFoZW1TdHlsZShAIlRoZSBxdWljayBicm93biBmb3ggPHNwYW4gaWQ9J2p1
bXBzJz5qdW1wczwvc3Bhbj4gb3ZlciB0aGUgbGF6eSBkb2cuIildOworICAgIFt3ZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0
ZW50KGp1bXBzLCAwLCBqdW1wcywgMCkiXTsKKyAgICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250
ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJl
cXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRleHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlh
bEFuZEN1cnJlbnRTZWxlY3Rpb24sIFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMiwgQ0dSZWN0TWFr
ZSgxNiAqIGdseXBoV2lkdGgsIDAsIDEwICogZ2x5cGhXaWR0aCwgMSkpXTsgLy8gImZveCBqdW1w
cyAiCisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19F
USgicXVpY2sgYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNU
X05VTEwoY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgianVt
cHMgb3ZlciB0aGUiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7Cit9CisKIFRFU1QoRG9jdW1lbnRF
ZGl0aW5nQ29udGV4dCwgUmVxdWVzdFJlY3RzSW5UZXh0QXJlYUFjcm9zc1dvcmRXcmFwcGVkTGlu
ZSkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
aW9zL1VJS2l0U1BJLmgKaW5kZXggYWQ3MGRkNTRhM2E0YzU2YzFkZDgyZGFmMDg5ZTFmMmIzZDM0
MjBhMi4uMWViODMxNDg4MmZlOWI0MDdlNDc1ZDgxZDYyMDE1OWQwNTZjZDgwYyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2lvcy9VSUtpdFNQSS5oCkBAIC0yMjMsNiArMjIzLDcgQEAgSUdOT1JFX1dBUk5JTkdT
X0VORAogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNkZWZpbmUgVUlXS0Rv
Y3VtZW50UmVxdWVzdE1hcmtlZFRleHRSZWN0cyAoMSA8PCA1KQorI2RlZmluZSBVSVdLRG9jdW1l
bnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24gKDEgPDwgNikKIAogQGludGVyZmFj
ZSBVSVRleHRBdXRvZmlsbFN1Z2dlc3Rpb24gKCkKICsgKGluc3RhbmNldHlwZSlhdXRvZmlsbFN1
Z2dlc3Rpb25XaXRoVXNlcm5hbWU6KE5TU3RyaW5nICopdXNlcm5hbWUgcGFzc3dvcmQ6KE5TU3Ry
aW5nICopcGFzc3dvcmQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403012</attachid>
            <date>2020-06-28 15:09:20 -0700</date>
            <delta_ts>2020-06-28 17:00:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213704-20200628150919.patch</filename>
            <type>text/plain</type>
            <size>12918</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1NTYxNDE4OTk4ODg2NzNh
ZTUyNzcyMWU1YzE1MTcxMTNmMWI5MjkuLjJiYWMwNTgxZTFkODRkZGZmYTA0YmVjMDRjMTg4Nzg0
YzU1OWEzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDYtMjggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBw
b3J0IGZvciBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcwNAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTk3Mzg4Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIHRoZSBuZXcgcmVx
dWVzdCB0eXBlIFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbi4K
KyAgICAgICAgUmVxdWVzdHMgb2YgdGhpcyB0eXBlIHJldHVybiB0aGUgY29udGVudHMgaW5zaWRl
IHRoZSByYW5nZSB0aGF0IGNvdmVycyBib3RoIHRoZSBzcGVjaWZpZWQKKyAgICAgICAgcmVjdCBh
bmQgY3VycmVudCBzZWxlY3Rpb24sIGlmIHRoZXJlIGlzIG9uZS4KKworICAgICAgICBUaGUgZmxh
ZyBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24gd2FzIGFkZGVk
IGluIDxyZGFyOi8vcHJvYmxlbS82NDg2NzU0MD4uCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmg6IFNhbWUgdGhpbmcgSSBkaWQgaW4gVGVzdFdlYktpdEFQSS9pb3MvVUlL
aXRTUEkuaC4gU2VlIFRvb2xzIENoYW5nZUxvZyBmb3Igd2h5LgorICAgICAgICAqIFNoYXJlZC9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICh0b1dlYkRvY3VtZW50UmVxdWVzdE9wdGlv
bnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQpOgor
CiAyMDIwLTA2LTI4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBDbGVhbiB1cCB2aXNpYmxlIHBvc2l0aW9uIGNvbXBhcmlzb25zIGluIFdlYlBhZ2U6
OnJlcXVlc3REb2N1bWVudEVkaXRpbmdDb250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggZWU1YWMxOWY2NGY5ODgxZTcxYjc2YzJlMzAwMWI2YzVl
YTBiZjk5Zi4uOGM5YTI1MjkxZjZkNDA1NjRkYzI0MWM1MzgwYTJkZmRiNWNhMTRlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTEyMTIsNiArMTIxMiw3
IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfVUlDb250ZXh0TWVudUxheW91dCkgewog
I2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNkZWZpbmUgVUlXS0RvY3VtZW50
UmVxdWVzdE1hcmtlZFRleHRSZWN0cyAoMSA8PCA1KQorI2RlZmluZSBVSVdLRG9jdW1lbnRSZXF1
ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24gKDEgPDwgNikKIAogQGludGVyZmFjZSBVSVRl
eHRJbnRlcmFjdGlvbkFzc2lzdGFudCAoSVBJKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIGluR2VzdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Rv
Y3VtZW50RWRpdGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3VtZW50RWRp
dGluZ0NvbnRleHQuaAppbmRleCBlZmMwYTQxODZkYjlmYjgxMmYwNTdhOWI5MGJmNTFhYjRiNTY4
NmJjLi43ODcxM2UxYTRiODU1NjUzNTBiOGQ3OTExNDUxZGE1NTdiM2RmMTNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oCkBAIC00OCw2ICs0OCw3
IEBAIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCB7CiAgICAgICAgIFNwYXRp
YWwgPSAxIDw8IDMsCiAgICAgICAgIEFubm90YXRpb24gPSAxIDw8IDQsCiAgICAgICAgIE1hcmtl
ZFRleHRSZWN0cyA9IDEgPDwgNSwKKyAgICAgICAgU3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24g
PSAxIDw8IDYsCiAgICAgfTsKIAogICAgIE9wdGlvblNldDxPcHRpb25zPiBvcHRpb25zOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KaW5kZXggYjQ3MjYxOTQyM2NiZmVmN2M1ZmIwYzBmNGY3OWM2NmM3ZGU0NWMwOS4u
NzY4MTI2NzYzZGFhOWNjMzY2ZTMzMDJiYzAyODU3MmQyYmE1ZjVhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CkBAIC03Nzg2LDYgKzc3ODYsOCBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkRv
Y3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zPiB0b1dlYkRvYwogICAgICAgICBv
cHRpb25zLmFkZChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25z
OjpBbm5vdGF0aW9uKTsKICAgICBpZiAoZmxhZ3MgJiBVSVdLRG9jdW1lbnRSZXF1ZXN0TWFya2Vk
VGV4dFJlY3RzKQogICAgICAgICBvcHRpb25zLmFkZChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0Nv
bnRleHRSZXF1ZXN0OjpPcHRpb25zOjpNYXJrZWRUZXh0UmVjdHMpOworICAgIGlmIChmbGFncyAm
IFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbikKKyAgICAgICAg
b3B0aW9ucy5hZGQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9u
czo6U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24pOwogCiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCmluZGV4IGEzZDU1NzE1ZWZlNDk4NWNhMmQ0MTQzYWNlZjQ4OWM5ZDM1MWEzNDMuLjExYTRh
NGE5YmI2ZTg0YjVkYWNjNTcxZWY3NDY3OTNmYzNlY2E4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00MTM2LDcgKzQx
MzYsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3REb2N1bWVudEVkaXRpbmdDb250ZXh0KERvY3Vt
ZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0IHJlcXVlcwogICAgIFZpc2libGVQb3NpdGlvbiBzZWxl
Y3Rpb25TdGFydCA9IHNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKTsKICAgICBWaXNpYmxlUG9zaXRp
b24gc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uLnZpc2libGVFbmQoKTsKIAotICAgIGJvb2wgaXNT
cGF0aWFsUmVxdWVzdCA9IHJlcXVlc3Qub3B0aW9ucy5jb250YWlucyhEb2N1bWVudEVkaXRpbmdD
b250ZXh0UmVxdWVzdDo6T3B0aW9uczo6U3BhdGlhbCk7CisgICAgYm9vbCBpc1NwYXRpYWxSZXF1
ZXN0ID0gcmVxdWVzdC5vcHRpb25zLmNvbnRhaW5zQW55KHsgRG9jdW1lbnRFZGl0aW5nQ29udGV4
dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWwsIERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0
OjpPcHRpb25zOjpTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiB9KTsKICAgICBib29sIHdhbnRz
UmVjdHMgPSByZXF1ZXN0Lm9wdGlvbnMuY29udGFpbnMoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJl
cXVlc3Q6Ok9wdGlvbnM6OlJlY3RzKTsKICAgICBib29sIHdhbnRzTWFya2VkVGV4dFJlY3RzID0g
cmVxdWVzdC5vcHRpb25zLmNvbnRhaW5zKERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpP
cHRpb25zOjpNYXJrZWRUZXh0UmVjdHMpOwogCkBAIC00MTYwLDYgKzQxNjAsMTIgQEAgdm9pZCBX
ZWJQYWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChEb2N1bWVudEVkaXRpbmdDb250
ZXh0UmVxdWVzdCByZXF1ZXMKICAgICAgICAgcmFuZ2VPZkludGVyZXN0RW5kID0gdmlzaWJsZVBv
c2l0aW9uRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoZnJhbWUuZ2V0KCksIHJlcXVlc3Qu
cmVjdC5tYXhYTWF4WUNvcm5lcigpKTsKICAgICAgICAgaWYgKHJhbmdlT2ZJbnRlcmVzdEVuZCA8
IHJhbmdlT2ZJbnRlcmVzdFN0YXJ0KQogICAgICAgICAgICAgc3RkOjpleGNoYW5nZShyYW5nZU9m
SW50ZXJlc3RTdGFydCwgcmFuZ2VPZkludGVyZXN0RW5kKTsKKyAgICAgICAgaWYgKHJlcXVlc3Qu
b3B0aW9ucy5jb250YWlucyhEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6
U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24pKSB7CisgICAgICAgICAgICBpZiAoc2VsZWN0aW9u
U3RhcnQgPCByYW5nZU9mSW50ZXJlc3RTdGFydCkKKyAgICAgICAgICAgICAgICByYW5nZU9mSW50
ZXJlc3RTdGFydCA9IHNlbGVjdGlvblN0YXJ0OworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkVu
ZCA+IHJhbmdlT2ZJbnRlcmVzdEVuZCkKKyAgICAgICAgICAgICAgICByYW5nZU9mSW50ZXJlc3RF
bmQgPSBzZWxlY3Rpb25FbmQ7CisgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKCFzZWxlY3Rpb24u
aXNOb25lKCkpIHsKICAgICAgICAgcmFuZ2VPZkludGVyZXN0U3RhcnQgPSBzZWxlY3Rpb25TdGFy
dDsKICAgICAgICAgcmFuZ2VPZkludGVyZXN0RW5kID0gc2VsZWN0aW9uRW5kOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY2Yjg0NmYzNWE3ZmMw
MzQ4NThlZWEzNGYwZmJjN2YzMmZkMWQ1ZGIuLjc5NDYzNWMwYzJiNzVlZGU1MGY4YzAwODk3ZTQ1
OTliYjA2OGI3MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wNi0yOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gSW1wbGVtZW50IHN1cHBvcnQgZm9yIFVJV0tE
b2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzA0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81OTczODg3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc29tZSB0ZXN0cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmg6IERlZmluZSB0aGUgZW51
bWVyYXRvciB1c2luZyBhIG1hY3JvIGp1c3QgbGlrZSB3aGF0IHdhcyBkb25lIGZvcgorICAgICAg
ICBVSVdLRG9jdW1lbnRSZXF1ZXN0TWFya2VkVGV4dFJlY3RzLiBUaGUgcmVhc29uIGZvciB0aGUg
bWFjcm8gaW5zdGVhZCBvZiBtb2RpZnlpbmcgdGhlIGVudW1lcmF0aW9uCisgICAgICAgIGRlZmlu
aXRpb24gaW4gdGhpcyBmaWxlIGlzIHRvIDEpIGF2b2lkIGJyZWFraW5nIHRoZSBidWlsZCBmb3Ig
QXBwbGUgZW5naW5lZXJzIHRoYXQgaGF2ZW4ndCBwaWNrZWQKKyAgICAgICAgdXAgPHJkYXI6Ly9w
cm9ibGVtLzY0ODY3NTQwPiBhbmQgdG8gMikgYXZvaWQgYnJlYWtpbmcgdGhlIE9wZW5Tb3VyY2Ug
YnVpbGQuCisKIDIwMTktMDktMTMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFN1cHBvcnQgYnVpbGRpbmcgV2ViS2l0IGZvciBNYWMgQ2F0YWx5c3QgZnJvbSBY
Y29kZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCmluZGV4IDlmOThiODk0YzNjYTgyMTQy
NzIyYWU1YjQzODAyZGFmODI1NTUyZTAuLjliMGRlYTAyYzZkNzQ2ZjU1ZTk3ZThlYWEyN2NhMWQx
ODQ5YWJlYTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KQEAgLTQ1OCw2ICs0NTgs
NzggQEAgVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsUmVxdWVzdEluVGV4dEZp
ZWxkKQogICAgIH0KIH0KIAorVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsQW5k
Q3VycmVudFNlbGVjdGlvblJlcXVlc3RfUmVjdEJlZm9yZVJhbmdlU2VsZWN0aW9uKQoreworICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCJUaGUgcXVpY2sgYnJvd24gZm94IDxzcGFu
IGlkPSdqdW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhlIGxhenkgZG9nLiIpXTsKKyAgICBbd2Vi
VmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0QmFz
ZUFuZEV4dGVudChqdW1wcywgMCwganVtcHMsIDEpIl07CisgICAgVUlXS0RvY3VtZW50Q29udGV4
dCAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0
Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVz
dFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxhcml0eVdvcmQsIDIsIENH
UmVjdE1ha2UoMCwgMCwgMTAsIDEwKSldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsK
KyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoIlRoZSBxdWljayBicm93biBmb3ggIiwgY29udGV4dC5j
b250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImp1bXBzIiwgY29udGV4dC5z
ZWxlY3RlZFRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiIG92ZXIgdGhlIiwgY29udGV4
dC5jb250ZXh0QWZ0ZXIpOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRp
YWxBbmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QWZ0ZXJSYW5nZVNlbGVjdGlvbikKK3sK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiVGhlIHF1aWNrIGJyb3duIGZveCA8
c3BhbiBpZD0nanVtcHMnPmp1bXBzPC9zcGFuPiBvdmVyIHRoZSBsYXp5IGRvZy4iKV07CisgICAg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNl
dEJhc2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAxKSJdOworICAgIFVJV0tEb2N1bWVudENv
bnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29u
dGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJl
cXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiwgVUlUZXh0R3JhbnVsYXJpdHlXb3JkLCAy
LCBDR1JlY3RNYWtlKDcwMCwgMCwgMTAsIDEwKSldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250
ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImJyb3duIGZveCAiLCBjb250ZXh0LmNvbnRl
eHRCZWZvcmUpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgianVtcHMiLCBjb250ZXh0LnNlbGVj
dGVkVGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCIgb3ZlciB0aGUgbGF6eSBkb2cuIiwg
Y29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQs
IFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QXJvdW5kUmFuZ2VTZWxlY3Rp
b24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGls
ZEZyYW1lc1BhaW50OmFwcGx5QWhlbVN0eWxlKEAiVGhlIHF1aWNrIGJyb3duIGZveCA8c3BhbiBp
ZD0nanVtcHMnPmp1bXBzPC9zcGFuPiBvdmVyIHRoZSBsYXp5IGRvZy4iKV07CisgICAgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAxKSJdOworICAgIFVJV0tEb2N1bWVudENvbnRleHQg
KmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDpt
YWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RT
cGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiwgVUlUZXh0R3JhbnVsYXJpdHlXb3JkLCAyLCBDR1Jl
Y3RNYWtlKDE2ICogZ2x5cGhXaWR0aCwgMCwgMTAgKiBnbHlwaFdpZHRoLCAxKSldOyAvLyAiZm94
IGp1bXBzICIKKyAgICBFWFBFQ1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RS
SU5HX0VRKCJxdWljayBicm93biBmb3ggIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBF
WFBFQ1RfTlNTVFJJTkdfRVEoImp1bXBzIiwgY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVY
UEVDVF9OU1NUUklOR19FUSgiIG92ZXIgdGhlIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQor
CitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9u
UmVxdWVzdF9SZWN0QmVmb3JlQ2FyZXRTZWxlY3Rpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6YXBwbHlTdHlsZShAIlRoZSBxdWljayBicm93biBmb3ggPHNwYW4gaWQ9J2p1bXBzJz5qdW1w
czwvc3Bhbj4gb3ZlciB0aGUgbGF6eSBkb2cuIildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGp1bXBz
LCAwLCBqdW1wcywgMCkiXTsKKyAgICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250ZXh0ID0gW3dl
YlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlX
S0RvY3VtZW50UmVxdWVzdFRleHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJl
bnRTZWxlY3Rpb24sIFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMiwgQ0dSZWN0TWFrZSgwLCAwLCAx
MCwgMTApKV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9OU1NU
UklOR19FUSgiVGhlIHF1aWNrIGJyb3duIGZveCAiLCBjb250ZXh0LmNvbnRleHRCZWZvcmUpOwor
ICAgIEVYUEVDVF9OVUxMKGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJ
TkdfRVEoImp1bXBzIG92ZXIiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7Cit9CisKK1RFU1QoRG9j
dW1lbnRFZGl0aW5nQ29udGV4dCwgU3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb25SZXF1ZXN0X1Jl
Y3RBZnRlckNhcmV0U2VsZWN0aW9uKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5
bGUoQCJUaGUgcXVpY2sgYnJvd24gZm94IDxzcGFuIGlkPSdqdW1wcyc+anVtcHM8L3NwYW4+IG92
ZXIgdGhlIGxhenkgZG9nLiIpXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChqdW1wcywgMCwganVtcHMs
IDApIl07CisgICAgVUlXS0RvY3VtZW50Q29udGV4dCAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJl
cXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVzdFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9u
LCBVSVRleHRHcmFudWxhcml0eVdvcmQsIDIsIENHUmVjdE1ha2UoNzAwLCAwLCAxMCwgMTApKV07
CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgi
YnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05VTEwoY29u
dGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgianVtcHMgb3ZlciB0
aGUgbGF6eSBkb2cuIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQorCitURVNUKERvY3VtZW50
RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QXJv
dW5kQ2FyZXRTZWxlY3Rpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCld
KTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxB
bGxJbW1lZGlhdGVDaGlsZEZyYW1lc1BhaW50OmFwcGx5QWhlbVN0eWxlKEAiVGhlIHF1aWNrIGJy
b3duIGZveCA8c3BhbiBpZD0nanVtcHMnPmp1bXBzPC9zcGFuPiBvdmVyIHRoZSBsYXp5IGRvZy4i
KV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVj
dGlvbigpLnNldEJhc2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAwKSJdOworICAgIFVJV0tE
b2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERv
Y3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tE
b2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiwgVUlUZXh0R3JhbnVsYXJp
dHlXb3JkLCAyLCBDR1JlY3RNYWtlKDE2ICogZ2x5cGhXaWR0aCwgMCwgMTAgKiBnbHlwaFdpZHRo
LCAxKSldOyAvLyAiZm94IGp1bXBzICIKKyAgICBFWFBFQ1RfTk9UX05VTEwoY29udGV4dCk7Cisg
ICAgRVhQRUNUX05TU1RSSU5HX0VRKCJxdWljayBicm93biBmb3ggIiwgY29udGV4dC5jb250ZXh0
QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlVMTChjb250ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgRVhQ
RUNUX05TU1RSSU5HX0VRKCJqdW1wcyBvdmVyIHRoZSIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsK
K30KKwogVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBSZXF1ZXN0UmVjdHNJblRleHRBcmVh
QWNyb3NzV29yZFdyYXBwZWRMaW5lKQogewogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApXSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaAppbmRleCBhZDcwZGQ1NGEzYTRjNTZj
MWRkODJkYWYwODllMWYyYjNkMzQyMGEyLi4xZWI4MzE0ODgyZmU5YjQwN2U0NzVkODFkNjIwMTU5
ZDA1NmNkODBjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5o
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKQEAgLTIyMyw2ICsyMjMs
NyBAQCBJR05PUkVfV0FSTklOR1NfRU5ECiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKIAogI2RlZmluZSBVSVdLRG9jdW1lbnRSZXF1ZXN0TWFya2VkVGV4dFJlY3RzICgxIDw8IDUp
CisjZGVmaW5lIFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiAo
MSA8PCA2KQogCiBAaW50ZXJmYWNlIFVJVGV4dEF1dG9maWxsU3VnZ2VzdGlvbiAoKQogKyAoaW5z
dGFuY2V0eXBlKWF1dG9maWxsU3VnZ2VzdGlvbldpdGhVc2VybmFtZTooTlNTdHJpbmcgKil1c2Vy
bmFtZSBwYXNzd29yZDooTlNTdHJpbmcgKilwYXNzd29yZDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403016</attachid>
            <date>2020-06-28 17:00:09 -0700</date>
            <delta_ts>2020-06-30 10:52:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213704-20200628170008.patch</filename>
            <type>text/plain</type>
            <size>13583</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1NTYxNDE4OTk4ODg2NzNh
ZTUyNzcyMWU1YzE1MTcxMTNmMWI5MjkuLjJiYWMwNTgxZTFkODRkZGZmYTA0YmVjMDRjMTg4Nzg0
YzU1OWEzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDYtMjggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBw
b3J0IGZvciBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcwNAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTk3Mzg4Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIHRoZSBuZXcgcmVx
dWVzdCB0eXBlIFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbi4K
KyAgICAgICAgUmVxdWVzdHMgb2YgdGhpcyB0eXBlIHJldHVybiB0aGUgY29udGVudHMgaW5zaWRl
IHRoZSByYW5nZSB0aGF0IGNvdmVycyBib3RoIHRoZSBzcGVjaWZpZWQKKyAgICAgICAgcmVjdCBh
bmQgY3VycmVudCBzZWxlY3Rpb24sIGlmIHRoZXJlIGlzIG9uZS4KKworICAgICAgICBUaGUgZmxh
ZyBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24gd2FzIGFkZGVk
IGluIDxyZGFyOi8vcHJvYmxlbS82NDg2NzU0MD4uCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmg6IFNhbWUgdGhpbmcgSSBkaWQgaW4gVGVzdFdlYktpdEFQSS9pb3MvVUlL
aXRTUEkuaC4gU2VlIFRvb2xzIENoYW5nZUxvZyBmb3Igd2h5LgorICAgICAgICAqIFNoYXJlZC9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICh0b1dlYkRvY3VtZW50UmVxdWVzdE9wdGlv
bnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQpOgor
CiAyMDIwLTA2LTI4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBDbGVhbiB1cCB2aXNpYmxlIHBvc2l0aW9uIGNvbXBhcmlzb25zIGluIFdlYlBhZ2U6
OnJlcXVlc3REb2N1bWVudEVkaXRpbmdDb250ZXh0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggZWU1YWMxOWY2NGY5ODgxZTcxYjc2YzJlMzAwMWI2YzVl
YTBiZjk5Zi4uOGM5YTI1MjkxZjZkNDA1NjRkYzI0MWM1MzgwYTJkZmRiNWNhMTRlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTEyMTIsNiArMTIxMiw3
IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfVUlDb250ZXh0TWVudUxheW91dCkgewog
I2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNkZWZpbmUgVUlXS0RvY3VtZW50
UmVxdWVzdE1hcmtlZFRleHRSZWN0cyAoMSA8PCA1KQorI2RlZmluZSBVSVdLRG9jdW1lbnRSZXF1
ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24gKDEgPDwgNikKIAogQGludGVyZmFjZSBVSVRl
eHRJbnRlcmFjdGlvbkFzc2lzdGFudCAoSVBJKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIGluR2VzdHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Rv
Y3VtZW50RWRpdGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3VtZW50RWRp
dGluZ0NvbnRleHQuaAppbmRleCBlZmMwYTQxODZkYjlmYjgxMmYwNTdhOWI5MGJmNTFhYjRiNTY4
NmJjLi43ODcxM2UxYTRiODU1NjUzNTBiOGQ3OTExNDUxZGE1NTdiM2RmMTNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0LmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oCkBAIC00OCw2ICs0OCw3
IEBAIHN0cnVjdCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdCB7CiAgICAgICAgIFNwYXRp
YWwgPSAxIDw8IDMsCiAgICAgICAgIEFubm90YXRpb24gPSAxIDw8IDQsCiAgICAgICAgIE1hcmtl
ZFRleHRSZWN0cyA9IDEgPDwgNSwKKyAgICAgICAgU3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24g
PSAxIDw8IDYsCiAgICAgfTsKIAogICAgIE9wdGlvblNldDxPcHRpb25zPiBvcHRpb25zOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KaW5kZXggYjQ3MjYxOTQyM2NiZmVmN2M1ZmIwYzBmNGY3OWM2NmM3ZGU0NWMwOS4u
NzY4MTI2NzYzZGFhOWNjMzY2ZTMzMDJiYzAyODU3MmQyYmE1ZjVhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CkBAIC03Nzg2LDYgKzc3ODYsOCBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkRv
Y3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zPiB0b1dlYkRvYwogICAgICAgICBv
cHRpb25zLmFkZChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25z
OjpBbm5vdGF0aW9uKTsKICAgICBpZiAoZmxhZ3MgJiBVSVdLRG9jdW1lbnRSZXF1ZXN0TWFya2Vk
VGV4dFJlY3RzKQogICAgICAgICBvcHRpb25zLmFkZChXZWJLaXQ6OkRvY3VtZW50RWRpdGluZ0Nv
bnRleHRSZXF1ZXN0OjpPcHRpb25zOjpNYXJrZWRUZXh0UmVjdHMpOworICAgIGlmIChmbGFncyAm
IFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbikKKyAgICAgICAg
b3B0aW9ucy5hZGQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9u
czo6U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24pOwogCiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCmluZGV4IGEzZDU1NzE1ZWZlNDk4NWNhMmQ0MTQzYWNlZjQ4OWM5ZDM1MWEzNDMuLjExYTRh
NGE5YmI2ZTg0YjVkYWNjNTcxZWY3NDY3OTNmYzNlY2E4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC00MTM2LDcgKzQx
MzYsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3REb2N1bWVudEVkaXRpbmdDb250ZXh0KERvY3Vt
ZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0IHJlcXVlcwogICAgIFZpc2libGVQb3NpdGlvbiBzZWxl
Y3Rpb25TdGFydCA9IHNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKTsKICAgICBWaXNpYmxlUG9zaXRp
b24gc2VsZWN0aW9uRW5kID0gc2VsZWN0aW9uLnZpc2libGVFbmQoKTsKIAotICAgIGJvb2wgaXNT
cGF0aWFsUmVxdWVzdCA9IHJlcXVlc3Qub3B0aW9ucy5jb250YWlucyhEb2N1bWVudEVkaXRpbmdD
b250ZXh0UmVxdWVzdDo6T3B0aW9uczo6U3BhdGlhbCk7CisgICAgYm9vbCBpc1NwYXRpYWxSZXF1
ZXN0ID0gcmVxdWVzdC5vcHRpb25zLmNvbnRhaW5zQW55KHsgRG9jdW1lbnRFZGl0aW5nQ29udGV4
dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWwsIERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0
OjpPcHRpb25zOjpTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiB9KTsKICAgICBib29sIHdhbnRz
UmVjdHMgPSByZXF1ZXN0Lm9wdGlvbnMuY29udGFpbnMoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJl
cXVlc3Q6Ok9wdGlvbnM6OlJlY3RzKTsKICAgICBib29sIHdhbnRzTWFya2VkVGV4dFJlY3RzID0g
cmVxdWVzdC5vcHRpb25zLmNvbnRhaW5zKERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpP
cHRpb25zOjpNYXJrZWRUZXh0UmVjdHMpOwogCkBAIC00MTYwLDYgKzQxNjAsMTIgQEAgdm9pZCBX
ZWJQYWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChEb2N1bWVudEVkaXRpbmdDb250
ZXh0UmVxdWVzdCByZXF1ZXMKICAgICAgICAgcmFuZ2VPZkludGVyZXN0RW5kID0gdmlzaWJsZVBv
c2l0aW9uRm9yUG9pbnRJblJvb3RWaWV3Q29vcmRpbmF0ZXMoZnJhbWUuZ2V0KCksIHJlcXVlc3Qu
cmVjdC5tYXhYTWF4WUNvcm5lcigpKTsKICAgICAgICAgaWYgKHJhbmdlT2ZJbnRlcmVzdEVuZCA8
IHJhbmdlT2ZJbnRlcmVzdFN0YXJ0KQogICAgICAgICAgICAgc3RkOjpleGNoYW5nZShyYW5nZU9m
SW50ZXJlc3RTdGFydCwgcmFuZ2VPZkludGVyZXN0RW5kKTsKKyAgICAgICAgaWYgKHJlcXVlc3Qu
b3B0aW9ucy5jb250YWlucyhEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6
U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24pKSB7CisgICAgICAgICAgICBpZiAoc2VsZWN0aW9u
U3RhcnQgPCByYW5nZU9mSW50ZXJlc3RTdGFydCkKKyAgICAgICAgICAgICAgICByYW5nZU9mSW50
ZXJlc3RTdGFydCA9IHNlbGVjdGlvblN0YXJ0OworICAgICAgICAgICAgaWYgKHNlbGVjdGlvbkVu
ZCA+IHJhbmdlT2ZJbnRlcmVzdEVuZCkKKyAgICAgICAgICAgICAgICByYW5nZU9mSW50ZXJlc3RF
bmQgPSBzZWxlY3Rpb25FbmQ7CisgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKCFzZWxlY3Rpb24u
aXNOb25lKCkpIHsKICAgICAgICAgcmFuZ2VPZkludGVyZXN0U3RhcnQgPSBzZWxlY3Rpb25TdGFy
dDsKICAgICAgICAgcmFuZ2VPZkludGVyZXN0RW5kID0gc2VsZWN0aW9uRW5kOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY2Yjg0NmYzNWE3ZmMw
MzQ4NThlZWEzNGYwZmJjN2YzMmZkMWQ1ZGIuLjc5NDYzNWMwYzJiNzVlZGU1MGY4YzAwODk3ZTQ1
OTliYjA2OGI3MmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wNi0yOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gSW1wbGVtZW50IHN1cHBvcnQgZm9yIFVJV0tE
b2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNzA0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81OTczODg3OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc29tZSB0ZXN0cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKFRFU1Qp
OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmg6IERlZmluZSB0aGUgZW51
bWVyYXRvciB1c2luZyBhIG1hY3JvIGp1c3QgbGlrZSB3aGF0IHdhcyBkb25lIGZvcgorICAgICAg
ICBVSVdLRG9jdW1lbnRSZXF1ZXN0TWFya2VkVGV4dFJlY3RzLiBUaGUgcmVhc29uIGZvciB0aGUg
bWFjcm8gaW5zdGVhZCBvZiBtb2RpZnlpbmcgdGhlIGVudW1lcmF0aW9uCisgICAgICAgIGRlZmlu
aXRpb24gaW4gdGhpcyBmaWxlIGlzIHRvIDEpIGF2b2lkIGJyZWFraW5nIHRoZSBidWlsZCBmb3Ig
QXBwbGUgZW5naW5lZXJzIHRoYXQgaGF2ZW4ndCBwaWNrZWQKKyAgICAgICAgdXAgPHJkYXI6Ly9w
cm9ibGVtLzY0ODY3NTQwPiBhbmQgdG8gMikgYXZvaWQgYnJlYWtpbmcgdGhlIE9wZW5Tb3VyY2Ug
YnVpbGQuCisKIDIwMTktMDktMTMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIFN1cHBvcnQgYnVpbGRpbmcgV2ViS2l0IGZvciBNYWMgQ2F0YWx5c3QgZnJvbSBY
Y29kZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCmluZGV4IDlmOThiODk0YzNjYTgyMTQy
NzIyYWU1YjQzODAyZGFmODI1NTUyZTAuLjhkN2Y0Y2I5YzI4YjAwMTg4NzBhZjk1ODNmOWMwODY1
Zjc4MTBiMDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KQEAgLTMxLDYgKzMxLDcg
QEAKICNpbXBvcnQgIlRlc3RDb2NvYS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2lt
cG9ydCAiVUlLaXRTUEkuaCIKKyNpbXBvcnQgIlVzZXJJbnRlcmZhY2VTd2l6emxlci5oIgogI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CiAjaW1wb3J0IDxXZWJL
aXQvX1dLVGV4dElucHV0Q29udGV4dC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAt
NDU4LDYgKzQ1OSw5MCBAQCBURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxSZXF1
ZXN0SW5UZXh0RmllbGQpCiAgICAgfQogfQogCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQs
IFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QmVmb3JlUmFuZ2VTZWxlY3Rp
b24pCit7CisgICAgVGVzdFdlYktpdEFQSTo6SVBhZFVzZXJJbnRlcmZhY2VTd2l6emxlciB1c2Vy
SW50ZXJmYWNlU3dpenpsZXI7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0p
OworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAi
VGhlIHF1aWNrIGJyb3duIGZveCA8c3BhbiBpZD0nanVtcHMnPmp1bXBzPC9zcGFuPiBvdmVyIHRo
ZSBsYXp5IGRvZy4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAxKSJd
OworICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91
c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0
VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiwgVUlU
ZXh0R3JhbnVsYXJpdHlXb3JkLCAyLCBDR1JlY3RNYWtlKDAsIDAsIDEwLCAxMCkpXTsKKyAgICBF
WFBFQ1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJUaGUgcXVp
Y2sgYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05TU1RS
SU5HX0VRKCJqdW1wcyIsIGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJ
TkdfRVEoIiBvdmVyIHRoZSIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKK30KKworVEVTVChEb2N1
bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvblJlcXVlc3RfUmVj
dEFmdGVyUmFuZ2VTZWxlY3Rpb24pCit7CisgICAgVGVzdFdlYktpdEFQSTo6SVBhZFVzZXJJbnRl
cmZhY2VTd2l6emxlciB1c2VySW50ZXJmYWNlU3dpenpsZXI7CisKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzphcHBseVN0eWxlKEAiVGhlIHF1aWNrIGJyb3duIGZveCA8c3BhbiBpZD0nanVtcHMnPmp1
bXBzPC9zcGFuPiBvdmVyIHRoZSBsYXp5IGRvZy4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoanVt
cHMsIDAsIGp1bXBzLCAxKSJdOworICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBb
d2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChV
SVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3Vy
cmVudFNlbGVjdGlvbiwgVUlUZXh0R3JhbnVsYXJpdHlXb3JkLCAyLCBDR1JlY3RNYWtlKDcwMCwg
MCwgMTAsIDEwKSldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1Rf
TlNTVFJJTkdfRVEoImJyb3duIGZveCAiLCBjb250ZXh0LmNvbnRleHRCZWZvcmUpOworICAgIEVY
UEVDVF9OU1NUUklOR19FUSgianVtcHMiLCBjb250ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgRVhQ
RUNUX05TU1RSSU5HX0VRKCIgb3ZlciB0aGUgbGF6eSBkb2cuIiwgY29udGV4dC5jb250ZXh0QWZ0
ZXIpOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxBbmRDdXJyZW50
U2VsZWN0aW9uUmVxdWVzdF9SZWN0QXJvdW5kUmFuZ2VTZWxlY3Rpb24pCit7CisgICAgVGVzdFdl
YktpdEFQSTo6SVBhZFVzZXJJbnRlcmZhY2VTd2l6emxlciB1c2VySW50ZXJmYWNlU3dpenpsZXI7
CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZ0FuZFdhaXRVbnRpbEFsbEltbWVkaWF0ZUNoaWxkRnJh
bWVzUGFpbnQ6YXBwbHlBaGVtU3R5bGUoQCJUaGUgcXVpY2sgYnJvd24gZm94IDxzcGFuIGlkPSdq
dW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhlIGxhenkgZG9nLiIpXTsKKyAgICBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4
dGVudChqdW1wcywgMCwganVtcHMsIDEpIl07CisgICAgVUlXS0RvY3VtZW50Q29udGV4dCAqY29u
dGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VS
ZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVzdFNwYXRp
YWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxhcml0eVdvcmQsIDIsIENHUmVjdE1h
a2UoMTYgKiBnbHlwaFdpZHRoLCAwLCAxMCAqIGdseXBoV2lkdGgsIDEpKV07IC8vICJmb3gganVt
cHMgIgorICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdf
RVEoInF1aWNrIGJyb3duIGZveCAiLCBjb250ZXh0LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVD
VF9OU1NUUklOR19FUSgianVtcHMiLCBjb250ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgRVhQRUNU
X05TU1RSSU5HX0VRKCIgb3ZlciB0aGUiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7Cit9CisKK1RF
U1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgU3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb25SZXF1
ZXN0X1JlY3RCZWZvcmVDYXJldFNlbGVjdGlvbikKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpJUGFk
VXNlckludGVyZmFjZVN3aXp6bGVyIHVzZXJJbnRlcmZhY2VTd2l6emxlcjsKKworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCJUaGUgcXVpY2sgYnJvd24gZm94IDxzcGFuIGlkPSdq
dW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhlIGxhenkgZG9nLiIpXTsKKyAgICBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4
dGVudChqdW1wcywgMCwganVtcHMsIDApIl07CisgICAgVUlXS0RvY3VtZW50Q29udGV4dCAqY29u
dGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VS
ZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVzdFNwYXRp
YWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxhcml0eVdvcmQsIDIsIENHUmVjdE1h
a2UoMCwgMCwgMTAsIDEwKSldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBF
WFBFQ1RfTlNTVFJJTkdfRVEoIlRoZSBxdWljayBicm93biBmb3ggIiwgY29udGV4dC5jb250ZXh0
QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlVMTChjb250ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgRVhQ
RUNUX05TU1RSSU5HX0VRKCJqdW1wcyBvdmVyIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQor
CitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9u
UmVxdWVzdF9SZWN0QWZ0ZXJDYXJldFNlbGVjdGlvbikKK3sKKyAgICBUZXN0V2ViS2l0QVBJOjpJ
UGFkVXNlckludGVyZmFjZVN3aXp6bGVyIHVzZXJJbnRlcmZhY2VTd2l6emxlcjsKKworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCJUaGUgcXVpY2sgYnJvd24gZm94IDxzcGFuIGlk
PSdqdW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhlIGxhenkgZG9nLiIpXTsKKyAgICBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFu
ZEV4dGVudChqdW1wcywgMCwganVtcHMsIDApIl07CisgICAgVUlXS0RvY3VtZW50Q29udGV4dCAq
Y29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1h
a2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVzdFNw
YXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxhcml0eVdvcmQsIDIsIENHUmVj
dE1ha2UoNzAwLCAwLCAxMCwgMTApKV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOwor
ICAgIEVYUEVDVF9OU1NUUklOR19FUSgiYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9y
ZSk7CisgICAgRVhQRUNUX05VTEwoY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVYUEVDVF9O
U1NUUklOR19FUSgianVtcHMgb3ZlciB0aGUgbGF6eSBkb2cuIiwgY29udGV4dC5jb250ZXh0QWZ0
ZXIpOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxBbmRDdXJyZW50
U2VsZWN0aW9uUmVxdWVzdF9SZWN0QXJvdW5kQ2FyZXRTZWxlY3Rpb24pCit7CisgICAgVGVzdFdl
YktpdEFQSTo6SVBhZFVzZXJJbnRlcmZhY2VTd2l6emxlciB1c2VySW50ZXJmYWNlU3dpenpsZXI7
CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZ0FuZFdhaXRVbnRpbEFsbEltbWVkaWF0ZUNoaWxkRnJh
bWVzUGFpbnQ6YXBwbHlBaGVtU3R5bGUoQCJUaGUgcXVpY2sgYnJvd24gZm94IDxzcGFuIGlkPSdq
dW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhlIGxhenkgZG9nLiIpXTsKKyAgICBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4
dGVudChqdW1wcywgMCwganVtcHMsIDApIl07CisgICAgVUlXS0RvY3VtZW50Q29udGV4dCAqY29u
dGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VS
ZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVzdFNwYXRp
YWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxhcml0eVdvcmQsIDIsIENHUmVjdE1h
a2UoMTYgKiBnbHlwaFdpZHRoLCAwLCAxMCAqIGdseXBoV2lkdGgsIDEpKV07IC8vICJmb3gganVt
cHMgIgorICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdf
RVEoInF1aWNrIGJyb3duIGZveCAiLCBjb250ZXh0LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVD
VF9OVUxMKGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImp1
bXBzIG92ZXIgdGhlIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQorCiBURVNUKERvY3VtZW50
RWRpdGluZ0NvbnRleHQsIFJlcXVlc3RSZWN0c0luVGV4dEFyZWFBY3Jvc3NXb3JkV3JhcHBlZExp
bmUpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2lvcy9VSUtpdFNQSS5oCmluZGV4IGFkNzBkZDU0YTNhNGM1NmMxZGQ4MmRhZjA4OWUxZjJiM2Qz
NDIwYTIuLjFlYjgzMTQ4ODJmZTliNDA3ZTQ3NWQ4MWQ2MjAxNTlkMDU2Y2Q4MGMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9pb3MvVUlLaXRTUEkuaApAQCAtMjIzLDYgKzIyMyw3IEBAIElHTk9SRV9XQVJOSU5H
U19FTkQKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjZGVmaW5lIFVJV0tE
b2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMgKDEgPDwgNSkKKyNkZWZpbmUgVUlXS0RvY3Vt
ZW50UmVxdWVzdFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uICgxIDw8IDYpCiAKIEBpbnRlcmZh
Y2UgVUlUZXh0QXV0b2ZpbGxTdWdnZXN0aW9uICgpCiArIChpbnN0YW5jZXR5cGUpYXV0b2ZpbGxT
dWdnZXN0aW9uV2l0aFVzZXJuYW1lOihOU1N0cmluZyAqKXVzZXJuYW1lIHBhc3N3b3JkOihOU1N0
cmluZyAqKXBhc3N3b3JkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403207</attachid>
            <date>2020-06-30 10:52:37 -0700</date>
            <delta_ts>2020-06-30 12:28:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213704-20200630105237.patch</filename>
            <type>text/plain</type>
            <size>15928</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwZTQ5NzZlYTYxMTEyN2Nl
MGUwZjRkMzI3MDVlYzIwODIzZWQ3YWIuLjdkNTUzZTA1MzI2Nzk2OTc1ZmFkZGI0ZmIxNTE2MjYx
MWRmYTVjNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDYtMjkgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBw
b3J0IGZvciBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcwNAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTk3Mzg4Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIHRoZSBuZXcgcmVx
dWVzdCB0eXBlIFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbi4K
KyAgICAgICAgUmVxdWVzdHMgb2YgdGhpcyB0eXBlIHJldHVybiB0aGUgY29udGVudHMgaW5zaWRl
IHRoZSByYW5nZSB0aGF0IGNvdmVycyBib3RoIHRoZSBzcGVjaWZpZWQKKyAgICAgICAgcmVjdCBh
bmQgY3VycmVudCBzZWxlY3Rpb24sIGlmIHRoZXJlIGlzIG9uZS4KKworICAgICAgICBUaGUgZmxh
ZyBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24gd2FzIGFkZGVk
IGluIDxyZGFyOi8vcHJvYmxlbS82NDg2NzU0MD4uCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmg6IFNhbWUgdGhpbmcgSSBkaWQgaW4gVGVzdFdlYktpdEFQSS9pb3MvVUlL
aXRTUEkuaC4gU2VlIFRvb2xzIENoYW5nZUxvZyBmb3Igd2h5LgorICAgICAgICAqIFNoYXJlZC9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICh0b1dlYkRvY3VtZW50UmVxdWVzdE9wdGlv
bnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQpOgor
CiAyMDIwLTA2LTI2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ3Jhc2ggYXQgV2ViS2l0OiBfXzYyLVtXS0NvbnRlbnRWaWV3KFdLSW50ZXJhY3Rpb24pIHJl
c2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlld11fYmxvY2tfaW52b2tlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDBlNDE4MDk5Mjk3NzYyMTMwZjAxZjAw
NWU1MmMzMDg3NzkwYmNmN2MuLjYwYjU3MGE5YjVhOTgwMDFmNTBkOTEwZTZlZjc2MTcwZmFlNGYx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0xMjI0
LDYgKzEyMjQsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1VJQ29udGV4dE1lbnVM
YXlvdXQpIHsKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjZGVmaW5lIFVJ
V0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMgKDEgPDwgNSkKKyNkZWZpbmUgVUlXS0Rv
Y3VtZW50UmVxdWVzdFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uICgxIDw8IDYpCiAKIEBpbnRl
cmZhY2UgVUlUZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgKElQSSkKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQk9PTCBpbkdlc3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9E
b2N1bWVudEVkaXRpbmdDb250ZXh0LmgKaW5kZXggNTQ2NmUxZTA3OWQwN2NmMGIzM2Q1OTA5MGVi
NGY0OTdlNWIyNWZiMC4uOWI5ZmQ2MGMzMTA0MDllNTUxZDQ3MzcyOWFhMjA3ZDVhYTEzMzRhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3VtZW50RWRpdGluZ0NvbnRleHQuaApAQCAt
NDgsNiArNDgsNyBAQCBzdHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgewogICAg
ICAgICBTcGF0aWFsID0gMSA8PCAzLAogICAgICAgICBBbm5vdGF0aW9uID0gMSA8PCA0LAogICAg
ICAgICBNYXJrZWRUZXh0UmVjdHMgPSAxIDw8IDUsCisgICAgICAgIFNwYXRpYWxBbmRDdXJyZW50
U2VsZWN0aW9uID0gMSA8PCA2LAogICAgIH07CiAKICAgICBPcHRpb25TZXQ8T3B0aW9ucz4gb3B0
aW9uczsKQEAgLTExOCw3ICsxMTksOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM+IHsKICAgICAgICAg
V2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6UmVjdHMsCiAg
ICAgICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNw
YXRpYWwsCiAgICAgICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9w
dGlvbnM6OkFubm90YXRpb24sCi0gICAgICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4
dFJlcXVlc3Q6Ok9wdGlvbnM6Ok1hcmtlZFRleHRSZWN0cworICAgICAgICBXZWJLaXQ6OkRvY3Vt
ZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zOjpNYXJrZWRUZXh0UmVjdHMsCisgICAg
ICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRp
YWxBbmRDdXJyZW50U2VsZWN0aW9uCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDRh
MzNjYzgxOThhZDg0M2Y3YTg3NjdhMDE0OTY5OGI4ZDdiZDdmNzguLjg2Y2YxZWY1NDBjMjlhZjg2
NDkyMjA3MmU1ZDA2MTQ0YzczZjc0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzgwMiw2ICs3ODAy
LDggQEAgc3RhdGljIGlubGluZSBPcHRpb25TZXQ8V2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250
ZXh0UmVxdWVzdDo6T3B0aW9ucz4gdG9XZWJEb2MKICAgICAgICAgb3B0aW9ucy5hZGQoV2ViS2l0
OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6QW5ub3RhdGlvbik7CiAg
ICAgaWYgKGZsYWdzICYgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtlZFRleHRSZWN0cykKICAgICAg
ICAgb3B0aW9ucy5hZGQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0
aW9uczo6TWFya2VkVGV4dFJlY3RzKTsKKyAgICBpZiAoZmxhZ3MgJiBVSVdLRG9jdW1lbnRSZXF1
ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24pCisgICAgICAgIG9wdGlvbnMuYWRkKFdlYktp
dDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWxBbmRDdXJy
ZW50U2VsZWN0aW9uKTsKIAogICAgIHJldHVybiBvcHRpb25zOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBkZGIyMzZi
ODdkZDcwMDgxMTQ5M2QxMWQyOTFkMWFiNDU0ODk0YzdmLi5iNGU3ZDJiZjI0ZjE2MTBmMjE1NDFi
MmFmZTcwNzEwZDBkYzY3OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDEzNiw3ICs0MTM2LDcgQEAgdm9pZCBXZWJQ
YWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChEb2N1bWVudEVkaXRpbmdDb250ZXh0
UmVxdWVzdCByZXF1ZXMKICAgICBWaXNpYmxlUG9zaXRpb24gc2VsZWN0aW9uU3RhcnQgPSBzZWxl
Y3Rpb24udmlzaWJsZVN0YXJ0KCk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHNlbGVjdGlvbkVuZCA9
IHNlbGVjdGlvbi52aXNpYmxlRW5kKCk7CiAKLSAgICBib29sIGlzU3BhdGlhbFJlcXVlc3QgPSBy
ZXF1ZXN0Lm9wdGlvbnMuY29udGFpbnMoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9w
dGlvbnM6OlNwYXRpYWwpOworICAgIGJvb2wgaXNTcGF0aWFsUmVxdWVzdCA9IHJlcXVlc3Qub3B0
aW9ucy5jb250YWluc0FueSh7IERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25z
OjpTcGF0aWFsLCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6U3BhdGlh
bEFuZEN1cnJlbnRTZWxlY3Rpb24gfSk7CiAgICAgYm9vbCB3YW50c1JlY3RzID0gcmVxdWVzdC5v
cHRpb25zLmNvbnRhaW5zKERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zOjpS
ZWN0cyk7CiAgICAgYm9vbCB3YW50c01hcmtlZFRleHRSZWN0cyA9IHJlcXVlc3Qub3B0aW9ucy5j
b250YWlucyhEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6TWFya2VkVGV4
dFJlY3RzKTsKIApAQCAtNDE2MCw2ICs0MTYwLDEyIEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdERv
Y3VtZW50RWRpdGluZ0NvbnRleHQoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgcmVxdWVz
CiAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdEVuZCA9IHZpc2libGVQb3NpdGlvbkZvclBvaW50SW5S
b290Vmlld0Nvb3JkaW5hdGVzKGZyYW1lLmdldCgpLCByZXF1ZXN0LnJlY3QubWF4WE1heFlDb3Ju
ZXIoKSk7CiAgICAgICAgIGlmIChyYW5nZU9mSW50ZXJlc3RFbmQgPCByYW5nZU9mSW50ZXJlc3RT
dGFydCkKICAgICAgICAgICAgIHN0ZDo6ZXhjaGFuZ2UocmFuZ2VPZkludGVyZXN0U3RhcnQsIHJh
bmdlT2ZJbnRlcmVzdEVuZCk7CisgICAgICAgIGlmIChyZXF1ZXN0Lm9wdGlvbnMuY29udGFpbnMo
RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWxBbmRDdXJyZW50
U2VsZWN0aW9uKSkgeworICAgICAgICAgICAgaWYgKHNlbGVjdGlvblN0YXJ0IDwgcmFuZ2VPZklu
dGVyZXN0U3RhcnQpCisgICAgICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0U3RhcnQgPSBzZWxl
Y3Rpb25TdGFydDsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25FbmQgPiByYW5nZU9mSW50ZXJl
c3RFbmQpCisgICAgICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0RW5kID0gc2VsZWN0aW9uRW5k
OworICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CiAgICAg
ICAgIHJhbmdlT2ZJbnRlcmVzdFN0YXJ0ID0gc2VsZWN0aW9uU3RhcnQ7CiAgICAgICAgIHJhbmdl
T2ZJbnRlcmVzdEVuZCA9IHNlbGVjdGlvbkVuZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMmRhNTZjMjI5MWE2OTk3ZTA5YzBmZjk0MTUxZDgz
MzY3NTBiMmI5Li5hZTcwZjcyZjE4MTYzNzViN2VkYjBkY2UyYzY1MzJjOTEwYmUwMmVhIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMjAtMDYtMjkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisg
ICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBwb3J0IGZvciBVSVdLRG9jdW1lbnRSZXF1ZXN0U3Bh
dGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk3Mzg4Nzg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNv
bWUgdGVzdHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rv
Y3VtZW50RWRpdGluZ0NvbnRleHQubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oOiBEZWZpbmUgdGhlIGVudW1lcmF0b3IgdXNpbmcgYSBt
YWNybyBqdXN0IGxpa2Ugd2hhdCB3YXMgZG9uZSBmb3IKKyAgICAgICAgVUlXS0RvY3VtZW50UmVx
dWVzdE1hcmtlZFRleHRSZWN0cy4gVGhlIHJlYXNvbiBmb3IgdGhlIG1hY3JvIGluc3RlYWQgb2Yg
bW9kaWZ5aW5nIHRoZSBlbnVtZXJhdGlvbgorICAgICAgICBkZWZpbml0aW9uIGluIHRoaXMgZmls
ZSBpcyB0byAxKSBhdm9pZCBicmVha2luZyB0aGUgYnVpbGQgZm9yIEFwcGxlIGVuZ2luZWVycyB0
aGF0IGhhdmVuJ3QgcGlja2VkCisgICAgICAgIHVwIDxyZGFyOi8vcHJvYmxlbS82NDg2NzU0MD4g
YW5kIHRvIDIpIGF2b2lkIGJyZWFraW5nIHRoZSBPcGVuU291cmNlIGJ1aWxkLgorCiAyMDIwLTA2
LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIGlPUyBTYWZh
cmkgaW5jb3JyZWN0bHkgcmVwb3J0cyAiQXBwbGVDb3JlTWVkaWEiIGFzIFVBIHN0cmluZwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVk
aXRpbmdDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCmluZGV4IGY2ZjhjZGU2ZmJiYTAxNWEyOTViZDY0NTZj
ZWZhNWJiMTk4OGMzYWUuLjg0YjM1ZmM5ZmViYmUxMjAyNzc1YjViZTJkYTExN2I3ZWRmNGFmYWEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1l
bnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBv
cnQgIlRlc3RDb2NvYS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCAiVUlL
aXRTUEkuaCIKKyNpbXBvcnQgIlVzZXJJbnRlcmZhY2VTd2l6emxlci5oIgogI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLVGV4
dElucHV0Q29udGV4dC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtNDU4LDYgKzQ1
OSwxMTYgQEAgVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsUmVxdWVzdEluVGV4
dEZpZWxkKQogICAgIH0KIH0KIAorc3RhdGljIENHUmVjdCBDR1JlY3RGcm9tSlNPTkVuY29kZWRE
T01SZWN0SlNWYWx1ZShpZCBqc1ZhbHVlKQoreworICAgIGlmICghW2pzVmFsdWUgaXNLaW5kT2ZD
bGFzczpOU0RpY3Rpb25hcnkuY2xhc3NdKQorICAgICAgICByZXR1cm4gQ0dSZWN0TnVsbDsKKyAg
ICBOU0RpY3Rpb25hcnkgKmRvbVJlY3QgPSBqc1ZhbHVlOworICAgIHJldHVybiBDR1JlY3RNYWtl
KFtkb21SZWN0W0AibGVmdCJdIGZsb2F0VmFsdWVdLCBbZG9tUmVjdFtAInRvcCJdIGZsb2F0VmFs
dWVdLCBbZG9tUmVjdFtAIndpZHRoIl0gZmxvYXRWYWx1ZV0sIFtkb21SZWN0W0AiaGVpZ2h0Il0g
ZmxvYXRWYWx1ZV0pOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxB
bmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QmVmb3JlUmFuZ2VTZWxlY3Rpb24pCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA5ODAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGlsZEZyYW1lc1Bh
aW50OmFwcGx5QWhlbVN0eWxlKEAiPHNwYW4gaWQ9J3NwYXRpYWxCb3gnPlRoZTwvc3Bhbj4gcXVp
Y2sgYnJvd24gZm94IDxzcGFuIGlkPSdqdW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhlIGRvZy4i
KV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVj
dGlvbigpLnNldEJhc2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAxKSJdOworCisgICAgYXV0
byBzcGF0aWFsQm94UmVjdCA9IENHUmVjdEZyb21KU09ORW5jb2RlZERPTVJlY3RKU1ZhbHVlKFt3
ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJzcGF0aWFsQm94LmdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpLnRvSlNPTigpIl0pOworICAgIHNwYXRpYWxCb3hSZWN0LnNpemUuaGVp
Z2h0ID0gMTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCAzICogZ2x5cGhXaWR0aCwg
MSksIHNwYXRpYWxCb3hSZWN0KTsKKworICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQg
PSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVz
dChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5k
Q3VycmVudFNlbGVjdGlvbiwgVUlUZXh0R3JhbnVsYXJpdHlXb3JkLCAyLCBzcGF0aWFsQm94UmVj
dCldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdf
RVEoIlRoZSBxdWljayBicm93biBmb3ggIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBF
WFBFQ1RfTlNTVFJJTkdfRVEoImp1bXBzIiwgY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVY
UEVDVF9OU1NUUklOR19FUSgiIG92ZXIgdGhlIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQor
CitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9u
UmVxdWVzdF9SZWN0QWZ0ZXJSYW5nZVNlbGVjdGlvbikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDk4MCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmlu
Z0FuZFdhaXRVbnRpbEFsbEltbWVkaWF0ZUNoaWxkRnJhbWVzUGFpbnQ6YXBwbHlBaGVtU3R5bGUo
QCJUaGUgcXVpY2sgYnJvd24gZm94IDxzcGFuIGlkPSdqdW1wcyc+anVtcHM8L3NwYW4+IG92ZXIg
dGhlIGRvZy48c3BhbiBpZD0nc3BhdGlhbEJveCc+PC9zcGFuPiIpXTsKKyAgICBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4
dGVudChqdW1wcywgMCwganVtcHMsIDEpIl07CisKKyAgICBhdXRvIHNwYXRpYWxCb3hSZWN0ID0g
Q0dSZWN0RnJvbUpTT05FbmNvZGVkRE9NUmVjdEpTVmFsdWUoW3dlYlZpZXcgb2JqZWN0QnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAInNwYXRpYWxCb3guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9K
U09OKCkiXSk7CisgICAgc3BhdGlhbEJveFJlY3Quc2l6ZS5oZWlnaHQgPSAxOworICAgIEVYUEVD
VF9FUShDR1JlY3RNYWtlKDM5ICogZ2x5cGhXaWR0aCwgMCwgMCwgMSksIHNwYXRpYWxCb3hSZWN0
KTsKKworICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJv
bm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1
ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiwg
VUlUZXh0R3JhbnVsYXJpdHlXb3JkLCAyLCBzcGF0aWFsQm94UmVjdCldOworICAgIEVYUEVDVF9O
T1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImJyb3duIGZveCAiLCBj
b250ZXh0LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgianVtcHMiLCBj
b250ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCIgb3ZlciB0aGUg
ZG9nLiIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKK30KKworVEVTVChEb2N1bWVudEVkaXRpbmdD
b250ZXh0LCBTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvblJlcXVlc3RfUmVjdEFyb3VuZFJhbmdl
U2VsZWN0aW9uKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgOTgwLCA2MDApXSk7CisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nQW5kV2FpdFVudGlsQWxsSW1tZWRp
YXRlQ2hpbGRGcmFtZXNQYWludDphcHBseUFoZW1TdHlsZShAIlRoZSBxdWljayBicm93biA8c3Bh
biBpZD0nc3BhdGlhbEJveCc+Zm94IDxzcGFuIGlkPSdqdW1wcyc+anVtcHM8L3NwYW4+IDwvc3Bh
bj5vdmVyIHRoZSBkb2cuIildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFT
Y3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGp1bXBzLCAwLCBqdW1wcywg
MSkiXTsKKworICAgIGF1dG8gc3BhdGlhbEJveFJlY3QgPSBDR1JlY3RGcm9tSlNPTkVuY29kZWRE
T01SZWN0SlNWYWx1ZShbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic3Bh
dGlhbEJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b0pTT04oKSJdKTsKKyAgICBzcGF0aWFs
Qm94UmVjdC5zaXplLmhlaWdodCA9IDE7CisgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMTYgKiBn
bHlwaFdpZHRoLCAwLCAxMCAqIGdseXBoV2lkdGgsIDEpLCBzcGF0aWFsQm94UmVjdCk7CisKKyAg
ICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJl
cXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRleHQg
fCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24sIFVJVGV4dEdy
YW51bGFyaXR5V29yZCwgMiwgc3BhdGlhbEJveFJlY3QpXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwo
Y29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJxdWljayBicm93biBmb3ggIiwgY29u
dGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImp1bXBzIiwgY29u
dGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiIG92ZXIgdGhlIiwg
Y29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQs
IFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QmVmb3JlQ2FyZXRTZWxlY3Rp
b24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA5ODAsIDYwMCldKTsKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGls
ZEZyYW1lc1BhaW50OmFwcGx5QWhlbVN0eWxlKEAiPGJvZHkgY29udGVudGVkaXRhYmxlPSd0cnVl
Jz48c3BhbiBpZD0nc3BhdGlhbEJveCc+VGhlPC9zcGFuPiBxdWljayBicm93biBmb3ggPHNwYW4g
aWQ9J2p1bXBzJz5qdW1wczwvc3Bhbj4gb3ZlciB0aGUgZG9nLjwvYm9keT4iKV07CisgICAgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJh
c2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAwKSJdOworCisgICAgYXV0byBzcGF0aWFsQm94
UmVjdCA9IENHUmVjdEZyb21KU09ORW5jb2RlZERPTVJlY3RKU1ZhbHVlKFt3ZWJWaWV3IG9iamVj
dEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJzcGF0aWFsQm94LmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpLnRvSlNPTigpIl0pOworICAgIHNwYXRpYWxCb3hSZWN0LnNpemUuaGVpZ2h0ID0gMTsKKyAg
ICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCAzICogZ2x5cGhXaWR0aCwgMSksIHNwYXRpYWxC
b3hSZWN0KTsKKworICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmlldyBz
eW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1l
bnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVj
dGlvbiwgVUlUZXh0R3JhbnVsYXJpdHlXb3JkLCAyLCBzcGF0aWFsQm94UmVjdCldOworICAgIEVY
UEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoIlRoZSBxdWlj
ayBicm93biBmb3ggIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlVMTChj
b250ZXh0LnNlbGVjdGVkVGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJqdW1wcyBvdmVy
IiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRl
eHQsIFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QWZ0ZXJDYXJldFNlbGVj
dGlvbikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDk4MCwgNjAwKV0pOworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZ0FuZFdhaXRVbnRpbEFsbEltbWVkaWF0ZUNo
aWxkRnJhbWVzUGFpbnQ6YXBwbHlBaGVtU3R5bGUoQCI8Ym9keSBjb250ZW50ZWRpdGFibGU9J3Ry
dWUnPlRoZSBxdWljayBicm93biBmb3ggPHNwYW4gaWQ9J2p1bXBzJz5qdW1wczwvc3Bhbj4gb3Zl
ciB0aGUgZG9nLjxzcGFuIGlkPSdzcGF0aWFsQm94Jz48L3NwYW4+PC9ib2R5PiIpXTsKKyAgICBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0
QmFzZUFuZEV4dGVudChqdW1wcywgMCwganVtcHMsIDApIl07CisKKyAgICBhdXRvIHNwYXRpYWxC
b3hSZWN0ID0gQ0dSZWN0RnJvbUpTT05FbmNvZGVkRE9NUmVjdEpTVmFsdWUoW3dlYlZpZXcgb2Jq
ZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNwYXRpYWxCb3guZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0KCkudG9KU09OKCkiXSk7CisgICAgc3BhdGlhbEJveFJlY3Quc2l6ZS5oZWlnaHQgPSAxOwor
ICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDM5ICogZ2x5cGhXaWR0aCwgMCwgMCwgMSksIHNwYXRp
YWxCb3hSZWN0KTsKKworICAgIFVJV0tEb2N1bWVudENvbnRleHQgKmNvbnRleHQgPSBbd2ViVmll
dyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9j
dW1lbnRSZXF1ZXN0VGV4dCB8IFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNl
bGVjdGlvbiwgVUlUZXh0R3JhbnVsYXJpdHlXb3JkLCAyLCBzcGF0aWFsQm94UmVjdCldOworICAg
IEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImJyb3du
IGZveCAiLCBjb250ZXh0LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9OVUxMKGNvbnRleHQu
c2VsZWN0ZWRUZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImp1bXBzIG92ZXIgdGhlIGRv
Zy4iLCBjb250ZXh0LmNvbnRleHRBZnRlcik7Cit9CisKK1RFU1QoRG9jdW1lbnRFZGl0aW5nQ29u
dGV4dCwgU3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb25SZXF1ZXN0X1JlY3RBcm91bmRDYXJldFNl
bGVjdGlvbikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDk4MCwgNjAwKV0pOworICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZ0FuZFdhaXRVbnRpbEFsbEltbWVkaWF0
ZUNoaWxkRnJhbWVzUGFpbnQ6YXBwbHlBaGVtU3R5bGUoQCI8Ym9keSBjb250ZW50ZWRpdGFibGU9
J3RydWUnPlRoZSBxdWljayBicm93biA8c3BhbiBpZD0nc3BhdGlhbEJveCc+Zm94IDxzcGFuIGlk
PSdqdW1wcyc+anVtcHM8L3NwYW4+IDwvc3Bhbj5vdmVyIHRoZSBkb2cuPC9ib2R5PiIpXTsKKyAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCku
c2V0QmFzZUFuZEV4dGVudChqdW1wcywgMCwganVtcHMsIDApIl07CisKKyAgICBhdXRvIHNwYXRp
YWxCb3hSZWN0ID0gQ0dSZWN0RnJvbUpTT05FbmNvZGVkRE9NUmVjdEpTVmFsdWUoW3dlYlZpZXcg
b2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNwYXRpYWxCb3guZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCkudG9KU09OKCkiXSk7CisgICAgc3BhdGlhbEJveFJlY3Quc2l6ZS5oZWlnaHQgPSAx
OworICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDE2ICogZ2x5cGhXaWR0aCwgMCwgMTAgKiBnbHlw
aFdpZHRoLCAxKSwgc3BhdGlhbEJveFJlY3QpOworCisgICAgVUlXS0RvY3VtZW50Q29udGV4dCAq
Y29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1h
a2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVzdFNw
YXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxhcml0eVdvcmQsIDIsIHNwYXRp
YWxCb3hSZWN0KV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9O
U1NUUklOR19FUSgicXVpY2sgYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7Cisg
ICAgRVhQRUNUX05VTEwoY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVYUEVDVF9OU1NUUklO
R19FUSgianVtcHMgb3ZlciB0aGUiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7Cit9CisKIFRFU1Qo
RG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdFJlY3RzSW5UZXh0QXJlYUFjcm9zc1dvcmRX
cmFwcGVkTGluZSkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYWQ3MGRkNTRhM2E0YzU2YzFkZDgyZGFmMDg5
ZTFmMmIzZDM0MjBhMi4uMWViODMxNDg4MmZlOWI0MDdlNDc1ZDgxZDYyMDE1OWQwNTZjZDgwYyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCkBAIC0yMjMsNiArMjIzLDcgQEAgSUdOT1JF
X1dBUk5JTkdTX0VORAogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNkZWZp
bmUgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtlZFRleHRSZWN0cyAoMSA8PCA1KQorI2RlZmluZSBV
SVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24gKDEgPDwgNikKIAog
QGludGVyZmFjZSBVSVRleHRBdXRvZmlsbFN1Z2dlc3Rpb24gKCkKICsgKGluc3RhbmNldHlwZSlh
dXRvZmlsbFN1Z2dlc3Rpb25XaXRoVXNlcm5hbWU6KE5TU3RyaW5nICopdXNlcm5hbWUgcGFzc3dv
cmQ6KE5TU3RyaW5nICopcGFzc3dvcmQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403222</attachid>
            <date>2020-06-30 12:28:22 -0700</date>
            <delta_ts>2020-07-01 09:52:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213704-20200630122821.patch</filename>
            <type>text/plain</type>
            <size>16852</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwZTQ5NzZlYTYxMTEyN2Nl
MGUwZjRkMzI3MDVlYzIwODIzZWQ3YWIuLjdkNTUzZTA1MzI2Nzk2OTc1ZmFkZGI0ZmIxNTE2MjYx
MWRmYTVjNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDYtMjkgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBw
b3J0IGZvciBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcwNAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTk3Mzg4Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIHRoZSBuZXcgcmVx
dWVzdCB0eXBlIFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbi4K
KyAgICAgICAgUmVxdWVzdHMgb2YgdGhpcyB0eXBlIHJldHVybiB0aGUgY29udGVudHMgaW5zaWRl
IHRoZSByYW5nZSB0aGF0IGNvdmVycyBib3RoIHRoZSBzcGVjaWZpZWQKKyAgICAgICAgcmVjdCBh
bmQgY3VycmVudCBzZWxlY3Rpb24sIGlmIHRoZXJlIGlzIG9uZS4KKworICAgICAgICBUaGUgZmxh
ZyBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24gd2FzIGFkZGVk
IGluIDxyZGFyOi8vcHJvYmxlbS82NDg2NzU0MD4uCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmg6IFNhbWUgdGhpbmcgSSBkaWQgaW4gVGVzdFdlYktpdEFQSS9pb3MvVUlL
aXRTUEkuaC4gU2VlIFRvb2xzIENoYW5nZUxvZyBmb3Igd2h5LgorICAgICAgICAqIFNoYXJlZC9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICh0b1dlYkRvY3VtZW50UmVxdWVzdE9wdGlv
bnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVxdWVzdERvY3VtZW50RWRpdGluZ0NvbnRleHQpOgor
CiAyMDIwLTA2LTI2ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ3Jhc2ggYXQgV2ViS2l0OiBfXzYyLVtXS0NvbnRlbnRWaWV3KFdLSW50ZXJhY3Rpb24pIHJl
c2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlld11fYmxvY2tfaW52b2tlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDBlNDE4MDk5Mjk3NzYyMTMwZjAxZjAw
NWU1MmMzMDg3NzkwYmNmN2MuLjYwYjU3MGE5YjVhOTgwMDFmNTBkOTEwZTZlZjc2MTcwZmFlNGYx
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0xMjI0
LDYgKzEyMjQsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1VJQ29udGV4dE1lbnVM
YXlvdXQpIHsKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjZGVmaW5lIFVJ
V0tEb2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMgKDEgPDwgNSkKKyNkZWZpbmUgVUlXS0Rv
Y3VtZW50UmVxdWVzdFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uICgxIDw8IDYpCiAKIEBpbnRl
cmZhY2UgVUlUZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgKElQSSkKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgQk9PTCBpbkdlc3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9E
b2N1bWVudEVkaXRpbmdDb250ZXh0LmgKaW5kZXggNTQ2NmUxZTA3OWQwN2NmMGIzM2Q1OTA5MGVi
NGY0OTdlNWIyNWZiMC4uOWI5ZmQ2MGMzMTA0MDllNTUxZDQ3MzcyOWFhMjA3ZDVhYTEzMzRhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3VtZW50RWRpdGluZ0NvbnRleHQuaApAQCAt
NDgsNiArNDgsNyBAQCBzdHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgewogICAg
ICAgICBTcGF0aWFsID0gMSA8PCAzLAogICAgICAgICBBbm5vdGF0aW9uID0gMSA8PCA0LAogICAg
ICAgICBNYXJrZWRUZXh0UmVjdHMgPSAxIDw8IDUsCisgICAgICAgIFNwYXRpYWxBbmRDdXJyZW50
U2VsZWN0aW9uID0gMSA8PCA2LAogICAgIH07CiAKICAgICBPcHRpb25TZXQ8T3B0aW9ucz4gb3B0
aW9uczsKQEAgLTExOCw3ICsxMTksOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM+IHsKICAgICAgICAg
V2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6UmVjdHMsCiAg
ICAgICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNw
YXRpYWwsCiAgICAgICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9w
dGlvbnM6OkFubm90YXRpb24sCi0gICAgICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4
dFJlcXVlc3Q6Ok9wdGlvbnM6Ok1hcmtlZFRleHRSZWN0cworICAgICAgICBXZWJLaXQ6OkRvY3Vt
ZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zOjpNYXJrZWRUZXh0UmVjdHMsCisgICAg
ICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRp
YWxBbmRDdXJyZW50U2VsZWN0aW9uCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDRh
MzNjYzgxOThhZDg0M2Y3YTg3NjdhMDE0OTY5OGI4ZDdiZDdmNzguLjg2Y2YxZWY1NDBjMjlhZjg2
NDkyMjA3MmU1ZDA2MTQ0YzczZjc0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzgwMiw2ICs3ODAy
LDggQEAgc3RhdGljIGlubGluZSBPcHRpb25TZXQ8V2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250
ZXh0UmVxdWVzdDo6T3B0aW9ucz4gdG9XZWJEb2MKICAgICAgICAgb3B0aW9ucy5hZGQoV2ViS2l0
OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6QW5ub3RhdGlvbik7CiAg
ICAgaWYgKGZsYWdzICYgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtlZFRleHRSZWN0cykKICAgICAg
ICAgb3B0aW9ucy5hZGQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0
aW9uczo6TWFya2VkVGV4dFJlY3RzKTsKKyAgICBpZiAoZmxhZ3MgJiBVSVdLRG9jdW1lbnRSZXF1
ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24pCisgICAgICAgIG9wdGlvbnMuYWRkKFdlYktp
dDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWxBbmRDdXJy
ZW50U2VsZWN0aW9uKTsKIAogICAgIHJldHVybiBvcHRpb25zOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCBkZGIyMzZi
ODdkZDcwMDgxMTQ5M2QxMWQyOTFkMWFiNDU0ODk0YzdmLi5iNGU3ZDJiZjI0ZjE2MTBmMjE1NDFi
MmFmZTcwNzEwZDBkYzY3OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDEzNiw3ICs0MTM2LDcgQEAgdm9pZCBXZWJQ
YWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChEb2N1bWVudEVkaXRpbmdDb250ZXh0
UmVxdWVzdCByZXF1ZXMKICAgICBWaXNpYmxlUG9zaXRpb24gc2VsZWN0aW9uU3RhcnQgPSBzZWxl
Y3Rpb24udmlzaWJsZVN0YXJ0KCk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHNlbGVjdGlvbkVuZCA9
IHNlbGVjdGlvbi52aXNpYmxlRW5kKCk7CiAKLSAgICBib29sIGlzU3BhdGlhbFJlcXVlc3QgPSBy
ZXF1ZXN0Lm9wdGlvbnMuY29udGFpbnMoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9w
dGlvbnM6OlNwYXRpYWwpOworICAgIGJvb2wgaXNTcGF0aWFsUmVxdWVzdCA9IHJlcXVlc3Qub3B0
aW9ucy5jb250YWluc0FueSh7IERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25z
OjpTcGF0aWFsLCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6U3BhdGlh
bEFuZEN1cnJlbnRTZWxlY3Rpb24gfSk7CiAgICAgYm9vbCB3YW50c1JlY3RzID0gcmVxdWVzdC5v
cHRpb25zLmNvbnRhaW5zKERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zOjpS
ZWN0cyk7CiAgICAgYm9vbCB3YW50c01hcmtlZFRleHRSZWN0cyA9IHJlcXVlc3Qub3B0aW9ucy5j
b250YWlucyhEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6TWFya2VkVGV4
dFJlY3RzKTsKIApAQCAtNDE2MCw2ICs0MTYwLDEyIEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdERv
Y3VtZW50RWRpdGluZ0NvbnRleHQoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgcmVxdWVz
CiAgICAgICAgIHJhbmdlT2ZJbnRlcmVzdEVuZCA9IHZpc2libGVQb3NpdGlvbkZvclBvaW50SW5S
b290Vmlld0Nvb3JkaW5hdGVzKGZyYW1lLmdldCgpLCByZXF1ZXN0LnJlY3QubWF4WE1heFlDb3Ju
ZXIoKSk7CiAgICAgICAgIGlmIChyYW5nZU9mSW50ZXJlc3RFbmQgPCByYW5nZU9mSW50ZXJlc3RT
dGFydCkKICAgICAgICAgICAgIHN0ZDo6ZXhjaGFuZ2UocmFuZ2VPZkludGVyZXN0U3RhcnQsIHJh
bmdlT2ZJbnRlcmVzdEVuZCk7CisgICAgICAgIGlmIChyZXF1ZXN0Lm9wdGlvbnMuY29udGFpbnMo
RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWxBbmRDdXJyZW50
U2VsZWN0aW9uKSkgeworICAgICAgICAgICAgaWYgKHNlbGVjdGlvblN0YXJ0IDwgcmFuZ2VPZklu
dGVyZXN0U3RhcnQpCisgICAgICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0U3RhcnQgPSBzZWxl
Y3Rpb25TdGFydDsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25FbmQgPiByYW5nZU9mSW50ZXJl
c3RFbmQpCisgICAgICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0RW5kID0gc2VsZWN0aW9uRW5k
OworICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CiAgICAg
ICAgIHJhbmdlT2ZJbnRlcmVzdFN0YXJ0ID0gc2VsZWN0aW9uU3RhcnQ7CiAgICAgICAgIHJhbmdl
T2ZJbnRlcmVzdEVuZCA9IHNlbGVjdGlvbkVuZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMmRhNTZjMjI5MWE2OTk3ZTA5YzBmZjk0MTUxZDgz
MzY3NTBiMmI5Li5hZTcwZjcyZjE4MTYzNzViN2VkYjBkY2UyYzY1MzJjOTEwYmUwMmVhIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMjAtMDYtMjkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisg
ICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBwb3J0IGZvciBVSVdLRG9jdW1lbnRSZXF1ZXN0U3Bh
dGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMzcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk3Mzg4Nzg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHNv
bWUgdGVzdHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rv
Y3VtZW50RWRpdGluZ0NvbnRleHQubW06CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oOiBEZWZpbmUgdGhlIGVudW1lcmF0b3IgdXNpbmcgYSBt
YWNybyBqdXN0IGxpa2Ugd2hhdCB3YXMgZG9uZSBmb3IKKyAgICAgICAgVUlXS0RvY3VtZW50UmVx
dWVzdE1hcmtlZFRleHRSZWN0cy4gVGhlIHJlYXNvbiBmb3IgdGhlIG1hY3JvIGluc3RlYWQgb2Yg
bW9kaWZ5aW5nIHRoZSBlbnVtZXJhdGlvbgorICAgICAgICBkZWZpbml0aW9uIGluIHRoaXMgZmls
ZSBpcyB0byAxKSBhdm9pZCBicmVha2luZyB0aGUgYnVpbGQgZm9yIEFwcGxlIGVuZ2luZWVycyB0
aGF0IGhhdmVuJ3QgcGlja2VkCisgICAgICAgIHVwIDxyZGFyOi8vcHJvYmxlbS82NDg2NzU0MD4g
YW5kIHRvIDIpIGF2b2lkIGJyZWFraW5nIHRoZSBPcGVuU291cmNlIGJ1aWxkLgorCiAyMDIwLTA2
LTI3ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIGlPUyBTYWZh
cmkgaW5jb3JyZWN0bHkgcmVwb3J0cyAiQXBwbGVDb3JlTWVkaWEiIGFzIFVBIHN0cmluZwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVk
aXRpbmdDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9E
b2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCmluZGV4IGY2ZjhjZGU2ZmJiYTAxNWEyOTViZDY0NTZj
ZWZhNWJiMTk4OGMzYWUuLjBjMWI5NWFlYjIxOTQ2ZDUwMmE5MDNhOTNmNzA5OWFlOTQwYTE1MDYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1l
bnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBv
cnQgIlRlc3RDb2NvYS5oIgogI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCAiVUlL
aXRTUEkuaCIKKyNpbXBvcnQgIlVzZXJJbnRlcmZhY2VTd2l6emxlci5oIgogI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLVGV4
dElucHV0Q29udGV4dC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpAQCAtNDU4LDYgKzQ1
OSwxMjggQEAgVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsUmVxdWVzdEluVGV4
dEZpZWxkKQogICAgIH0KIH0KIAorc3RhdGljIENHUmVjdCBDR1JlY3RGcm9tSlNPTkVuY29kZWRE
T01SZWN0SlNWYWx1ZShpZCBqc1ZhbHVlKQoreworICAgIGlmICghW2pzVmFsdWUgaXNLaW5kT2ZD
bGFzczpOU0RpY3Rpb25hcnkuY2xhc3NdKQorICAgICAgICByZXR1cm4gQ0dSZWN0TnVsbDsKKyAg
ICBOU0RpY3Rpb25hcnkgKmRvbVJlY3QgPSBqc1ZhbHVlOworICAgIHJldHVybiBDR1JlY3RNYWtl
KFtkb21SZWN0W0AibGVmdCJdIGZsb2F0VmFsdWVdLCBbZG9tUmVjdFtAInRvcCJdIGZsb2F0VmFs
dWVdLCBbZG9tUmVjdFtAIndpZHRoIl0gZmxvYXRWYWx1ZV0sIFtkb21SZWN0W0AiaGVpZ2h0Il0g
ZmxvYXRWYWx1ZV0pOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxB
bmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QmVmb3JlUmFuZ2VTZWxlY3Rpb24pCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA5ODAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGlsZEZyYW1lc1Bh
aW50OmFwcGx5QWhlbVN0eWxlKEAiPHNwYW4gaWQ9J3NwYXRpYWxCb3gnPlRoZTwvc3Bhbj4gcXVp
Y2sgYnJvd24gZm94IDxzcGFuIGlkPSdqdW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhlIGRvZy4i
KV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVj
dGlvbigpLnNldEJhc2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAxKSJdOworCisgICAgLy8g
SGl0IHRlc3RpbmcgYmVsb3cgdGhlIGxhc3QgbGluZSBpcyB0cmVhdGVkIGFzIGlmIHRoZSBsaW5l
IHdhcyBoaXQuIFNvLCB1c2UgaGVpZ2h0IG9mIDEKKyAgICAvLyB0byBlbnN1cmUgd2UgYXJlbid0
IGV2ZW4gY2xvc2UgdG8gdGhlIGxpbmUgaGVpZ2h0LgorICAgIGF1dG8gc3BhdGlhbEJveFJlY3Qg
PSBDR1JlY3RGcm9tSlNPTkVuY29kZWRET01SZWN0SlNWYWx1ZShbd2ViVmlldyBvYmplY3RCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAic3BhdGlhbEJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50
b0pTT04oKSJdKTsKKyAgICBzcGF0aWFsQm94UmVjdC5zaXplLmhlaWdodCA9IDE7CisgICAgRVhQ
RUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgMyAqIGdseXBoV2lkdGgsIDEpLCBzcGF0aWFsQm94UmVj
dCk7CisKKyAgICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hy
b25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVx
dWVzdFRleHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24s
IFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMiwgc3BhdGlhbEJveFJlY3QpXTsKKyAgICBFWFBFQ1Rf
Tk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJUaGUgcXVpY2sgYnJv
d24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VR
KCJqdW1wcyIsIGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEo
IiBvdmVyIHRoZSIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKK30KKworVEVTVChEb2N1bWVudEVk
aXRpbmdDb250ZXh0LCBTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvblJlcXVlc3RfUmVjdEFmdGVy
UmFuZ2VTZWxlY3Rpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA5ODAsIDYwMCldKTsK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJ
bW1lZGlhdGVDaGlsZEZyYW1lc1BhaW50OmFwcGx5QWhlbVN0eWxlKEAiVGhlIHF1aWNrIGJyb3du
IGZveCA8c3BhbiBpZD0nanVtcHMnPmp1bXBzPC9zcGFuPiBvdmVyIHRoZSBkb2cuPHNwYW4gaWQ9
J3NwYXRpYWxCb3gnPjwvc3Bhbj4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1
bXBzLCAxKSJdOworCisgICAgLy8gSGl0IHRlc3RpbmcgYmVsb3cgdGhlIGxhc3QgbGluZSBpcyB0
cmVhdGVkIGFzIGlmIHRoZSBsaW5lIHdhcyBoaXQuIFNvLCB1c2UgaGVpZ2h0IG9mIDEKKyAgICAv
LyB0byBlbnN1cmUgd2UgYXJlbid0IGV2ZW4gY2xvc2UgdG8gdGhlIGxpbmUgaGVpZ2h0LgorICAg
IGF1dG8gc3BhdGlhbEJveFJlY3QgPSBDR1JlY3RGcm9tSlNPTkVuY29kZWRET01SZWN0SlNWYWx1
ZShbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic3BhdGlhbEJveC5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKS50b0pTT04oKSJdKTsKKyAgICBzcGF0aWFsQm94UmVjdC5zaXpl
LmhlaWdodCA9IDE7CisgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMzkgKiBnbHlwaFdpZHRoLCAw
LCAwLCAxKSwgc3BhdGlhbEJveFJlY3QpOworCisgICAgVUlXS0RvY3VtZW50Q29udGV4dCAqY29u
dGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VS
ZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVzdFNwYXRp
YWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxhcml0eVdvcmQsIDIsIHNwYXRpYWxC
b3hSZWN0KV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9OU1NU
UklOR19FUSgiYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNU
X05TU1RSSU5HX0VRKCJqdW1wcyIsIGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICBFWFBFQ1Rf
TlNTVFJJTkdfRVEoIiBvdmVyIHRoZSBkb2cuIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQor
CitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9u
UmVxdWVzdF9SZWN0QXJvdW5kUmFuZ2VTZWxlY3Rpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA5ODAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGlsZEZyYW1lc1BhaW50OmFwcGx5QWhlbVN0eWxl
KEAiVGhlIHF1aWNrIGJyb3duIDxzcGFuIGlkPSdzcGF0aWFsQm94Jz5mb3ggPHNwYW4gaWQ9J2p1
bXBzJz5qdW1wczwvc3Bhbj4gPC9zcGFuPm92ZXIgdGhlIGRvZy4iKV07CisgICAgW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQoanVtcHMsIDAsIGp1bXBzLCAxKSJdOworCisgICAgLy8gSGl0IHRlc3RpbmcgYmVsb3cg
dGhlIGxhc3QgbGluZSBpcyB0cmVhdGVkIGFzIGlmIHRoZSBsaW5lIHdhcyBoaXQuIFNvLCB1c2Ug
aGVpZ2h0IG9mIDEKKyAgICAvLyB0byBlbnN1cmUgd2UgYXJlbid0IGV2ZW4gY2xvc2UgdG8gdGhl
IGxpbmUgaGVpZ2h0LgorICAgIGF1dG8gc3BhdGlhbEJveFJlY3QgPSBDR1JlY3RGcm9tSlNPTkVu
Y29kZWRET01SZWN0SlNWYWx1ZShbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAic3BhdGlhbEJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b0pTT04oKSJdKTsKKyAgICBz
cGF0aWFsQm94UmVjdC5zaXplLmhlaWdodCA9IDE7CisgICAgRVhQRUNUX0VRKENHUmVjdE1ha2Uo
MTYgKiBnbHlwaFdpZHRoLCAwLCAxMCAqIGdseXBoV2lkdGgsIDEpLCBzcGF0aWFsQm94UmVjdCk7
CisKKyAgICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25v
dXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVz
dFRleHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24sIFVJ
VGV4dEdyYW51bGFyaXR5V29yZCwgMiwgc3BhdGlhbEJveFJlY3QpXTsKKyAgICBFWFBFQ1RfTk9U
X05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJxdWljayBicm93biBmb3gg
IiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImp1bXBz
IiwgY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiIG92ZXIg
dGhlIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0Nv
bnRleHQsIFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QmVmb3JlQ2FyZXRT
ZWxlY3Rpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA5ODAsIDYwMCldKTsKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlh
dGVDaGlsZEZyYW1lc1BhaW50OmFwcGx5QWhlbVN0eWxlKEAiPGJvZHkgY29udGVudGVkaXRhYmxl
PSd0cnVlJz48c3BhbiBpZD0nc3BhdGlhbEJveCc+VGhlPC9zcGFuPiBxdWljayBicm93biBmb3gg
PHNwYW4gaWQ9J2p1bXBzJz5qdW1wczwvc3Bhbj4gb3ZlciB0aGUgZG9nLjwvYm9keT4iKV07Cisg
ICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigp
LnNldEJhc2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAwKSJdOworCisgICAgLy8gSGl0IHRl
c3RpbmcgYmVsb3cgdGhlIGxhc3QgbGluZSBpcyB0cmVhdGVkIGFzIGlmIHRoZSBsaW5lIHdhcyBo
aXQuIFNvLCB1c2UgaGVpZ2h0IG9mIDEKKyAgICAvLyB0byBlbnN1cmUgd2UgYXJlbid0IGV2ZW4g
Y2xvc2UgdG8gdGhlIGxpbmUgaGVpZ2h0LgorICAgIGF1dG8gc3BhdGlhbEJveFJlY3QgPSBDR1Jl
Y3RGcm9tSlNPTkVuY29kZWRET01SZWN0SlNWYWx1ZShbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAic3BhdGlhbEJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b0pTT04o
KSJdKTsKKyAgICBzcGF0aWFsQm94UmVjdC5zaXplLmhlaWdodCA9IDE7CisgICAgRVhQRUNUX0VR
KENHUmVjdE1ha2UoMCwgMCwgMyAqIGdseXBoV2lkdGgsIDEpLCBzcGF0aWFsQm94UmVjdCk7CisK
KyAgICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNs
eVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRl
eHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24sIFVJVGV4
dEdyYW51bGFyaXR5V29yZCwgMiwgc3BhdGlhbEJveFJlY3QpXTsKKyAgICBFWFBFQ1RfTk9UX05V
TEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJUaGUgcXVpY2sgYnJvd24gZm94
ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05VTEwoY29udGV4dC5zZWxl
Y3RlZFRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgianVtcHMgb3ZlciIsIGNvbnRleHQu
Y29udGV4dEFmdGVyKTsKK30KKworVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFs
QW5kQ3VycmVudFNlbGVjdGlvblJlcXVlc3RfUmVjdEFmdGVyQ2FyZXRTZWxlY3Rpb24pCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA5ODAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGlsZEZyYW1lc1Bh
aW50OmFwcGx5QWhlbVN0eWxlKEAiPGJvZHkgY29udGVudGVkaXRhYmxlPSd0cnVlJz5UaGUgcXVp
Y2sgYnJvd24gZm94IDxzcGFuIGlkPSdqdW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhlIGRvZy48
c3BhbiBpZD0nc3BhdGlhbEJveCc+PC9zcGFuPjwvYm9keT4iKV07CisgICAgW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRl
bnQoanVtcHMsIDAsIGp1bXBzLCAwKSJdOworCisgICAgLy8gSGl0IHRlc3RpbmcgYmVsb3cgdGhl
IGxhc3QgbGluZSBpcyB0cmVhdGVkIGFzIGlmIHRoZSBsaW5lIHdhcyBoaXQuIFNvLCB1c2UgaGVp
Z2h0IG9mIDEKKyAgICAvLyB0byBlbnN1cmUgd2UgYXJlbid0IGV2ZW4gY2xvc2UgdG8gdGhlIGxp
bmUgaGVpZ2h0LgorICAgIGF1dG8gc3BhdGlhbEJveFJlY3QgPSBDR1JlY3RGcm9tSlNPTkVuY29k
ZWRET01SZWN0SlNWYWx1ZShbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
c3BhdGlhbEJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b0pTT04oKSJdKTsKKyAgICBzcGF0
aWFsQm94UmVjdC5zaXplLmhlaWdodCA9IDE7CisgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMzkg
KiBnbHlwaFdpZHRoLCAwLCAwLCAxKSwgc3BhdGlhbEJveFJlY3QpOworCisgICAgVUlXS0RvY3Vt
ZW50Q29udGV4dCAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1l
bnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3Vt
ZW50UmVxdWVzdFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxhcml0eVdv
cmQsIDIsIHNwYXRpYWxCb3hSZWN0KV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOwor
ICAgIEVYUEVDVF9OU1NUUklOR19FUSgiYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9y
ZSk7CisgICAgRVhQRUNUX05VTEwoY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVYUEVDVF9O
U1NUUklOR19FUSgianVtcHMgb3ZlciB0aGUgZG9nLiIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsK
K30KKworVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsQW5kQ3VycmVudFNlbGVj
dGlvblJlcXVlc3RfUmVjdEFyb3VuZENhcmV0U2VsZWN0aW9uKQoreworICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgOTgwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nQW5kV2FpdFVudGlsQWxsSW1tZWRpYXRlQ2hpbGRGcmFtZXNQYWludDphcHBseUFoZW1T
dHlsZShAIjxib2R5IGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+VGhlIHF1aWNrIGJyb3duIDxzcGFu
IGlkPSdzcGF0aWFsQm94Jz5mb3ggPHNwYW4gaWQ9J2p1bXBzJz5qdW1wczwvc3Bhbj4gPC9zcGFu
Pm92ZXIgdGhlIGRvZy48L2JvZHk+IildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGp1bXBzLCAwLCBq
dW1wcywgMCkiXTsKKworICAgIC8vIEhpdCB0ZXN0aW5nIGJlbG93IHRoZSBsYXN0IGxpbmUgaXMg
dHJlYXRlZCBhcyBpZiB0aGUgbGluZSB3YXMgaGl0LiBTbywgdXNlIGhlaWdodCBvZiAxCisgICAg
Ly8gdG8gZW5zdXJlIHdlIGFyZW4ndCBldmVuIGNsb3NlIHRvIHRoZSBsaW5lIGhlaWdodC4KKyAg
ICBhdXRvIHNwYXRpYWxCb3hSZWN0ID0gQ0dSZWN0RnJvbUpTT05FbmNvZGVkRE9NUmVjdEpTVmFs
dWUoW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNwYXRpYWxCb3guZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCkudG9KU09OKCkiXSk7CisgICAgc3BhdGlhbEJveFJlY3Quc2l6
ZS5oZWlnaHQgPSAxOworICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDE2ICogZ2x5cGhXaWR0aCwg
MCwgMTAgKiBnbHlwaFdpZHRoLCAxKSwgc3BhdGlhbEJveFJlY3QpOworCisgICAgVUlXS0RvY3Vt
ZW50Q29udGV4dCAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1l
bnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3Vt
ZW50UmVxdWVzdFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxhcml0eVdv
cmQsIDIsIHNwYXRpYWxCb3hSZWN0KV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOwor
ICAgIEVYUEVDVF9OU1NUUklOR19FUSgicXVpY2sgYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4
dEJlZm9yZSk7CisgICAgRVhQRUNUX05VTEwoY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVY
UEVDVF9OU1NUUklOR19FUSgianVtcHMgb3ZlciB0aGUiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7
Cit9CisKIFRFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdFJlY3RzSW5UZXh0QXJl
YUFjcm9zc1dvcmRXcmFwcGVkTGluZSkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYWQ3MGRkNTRhM2E0YzU2
YzFkZDgyZGFmMDg5ZTFmMmIzZDM0MjBhMi4uMWViODMxNDg4MmZlOWI0MDdlNDc1ZDgxZDYyMDE1
OWQwNTZjZDgwYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEku
aAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCkBAIC0yMjMsNiArMjIz
LDcgQEAgSUdOT1JFX1dBUk5JTkdTX0VORAogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCiAKICNkZWZpbmUgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtlZFRleHRSZWN0cyAoMSA8PCA1
KQorI2RlZmluZSBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24g
KDEgPDwgNikKIAogQGludGVyZmFjZSBVSVRleHRBdXRvZmlsbFN1Z2dlc3Rpb24gKCkKICsgKGlu
c3RhbmNldHlwZSlhdXRvZmlsbFN1Z2dlc3Rpb25XaXRoVXNlcm5hbWU6KE5TU3RyaW5nICopdXNl
cm5hbWUgcGFzc3dvcmQ6KE5TU3RyaW5nICopcGFzc3dvcmQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403302</attachid>
            <date>2020-07-01 09:52:44 -0700</date>
            <delta_ts>2020-07-01 09:52:44 -0700</delta_ts>
            <desc>To Land</desc>
            <filename>bug-213704-20200701095243.patch</filename>
            <type>text/plain</type>
            <size>16573</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzODExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUzNWYwZTNlNDM4NWEwMDEy
NGYwM2M1MDI3OTUxYTc3MTYzYjU3OTAuLmMzODczYmY0OTE4MTgyNDQ5MDMzYmY5OTViNzk0ZjFj
NzcxM2IzOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjAtMDctMDEgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEltcGxlbWVudCBzdXBw
b3J0IGZvciBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzcwNAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNTk3Mzg4Nzg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vu
c29uIEhzaWVoLgorCisgICAgICAgIEltcGxlbWVudCBzdXBwb3J0IGZvciB0aGUgbmV3IHJlcXVl
c3QgdHlwZSBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24uCisg
ICAgICAgIFJlcXVlc3RzIG9mIHRoaXMgdHlwZSByZXR1cm4gdGhlIGNvbnRlbnRzIGluc2lkZSB0
aGUgcmFuZ2UgdGhhdCBjb3ZlcnMgYm90aCB0aGUgc3BlY2lmaWVkCisgICAgICAgIHJlY3QgYW5k
IHRoZSBjdXJyZW50IHNlbGVjdGlvbiwgaWYgdGhlcmUgaXMgb25lLgorCisgICAgICAgIFRoZSBm
bGFnIFVJV0tEb2N1bWVudFJlcXVlc3RTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvbiB3YXMgYWRk
ZWQgaW4gPHJkYXI6Ly9wcm9ibGVtLzY0ODY3NTQwPi4KKworICAgICAgICAqIFBsYXRmb3JtL3Nw
aS9pb3MvVUlLaXRTUEkuaDogU2FtZSB0aGluZyBJIGRpZCBpbiBUZXN0V2ViS2l0QVBJL2lvcy9V
SUtpdFNQSS5oLiBTZWUgVG9vbHMgQ2hhbmdlTG9nIGZvciB3aHkuCisgICAgICAgICogU2hhcmVk
L0RvY3VtZW50RWRpdGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKHRvV2ViRG9jdW1lbnRSZXF1ZXN0T3B0
aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dCk6
CisKIDIwMjAtMDctMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBDcmFzaCB1bmRlciBJUEM6OmlzVmFsaWRNZXNzYWdlTmFtZSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4IDQ4NGJmODk4ZjcyMTA5YzJlMjAzNjMwY2Qw
NWY3NDNhYzU4M2VmNjUuLmEyOGI0NmRjNTE4YjA3YmQ3OGQ1NDlmYTk3NmM4NTJkZDhkYjk0MGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC0xMjI1LDYg
KzEyMjUsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1VJQ29udGV4dE1lbnVMYXlv
dXQpIHsKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjZGVmaW5lIFVJV0tE
b2N1bWVudFJlcXVlc3RNYXJrZWRUZXh0UmVjdHMgKDEgPDwgNSkKKyNkZWZpbmUgVUlXS0RvY3Vt
ZW50UmVxdWVzdFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uICgxIDw8IDYpCiAKIEBpbnRlcmZh
Y2UgVUlUZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgKElQSSkKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQk9PTCBpbkdlc3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Eb2N1bWVudEVkaXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Eb2N1
bWVudEVkaXRpbmdDb250ZXh0LmgKaW5kZXggNTQ2NmUxZTA3OWQwN2NmMGIzM2Q1OTA5MGViNGY0
OTdlNWIyNWZiMC4uOWI5ZmQ2MGMzMTA0MDllNTUxZDQ3MzcyOWFhMjA3ZDVhYTEzMzRhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0RvY3VtZW50RWRpdGluZ0NvbnRleHQuaApAQCAtNDgs
NiArNDgsNyBAQCBzdHJ1Y3QgRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgewogICAgICAg
ICBTcGF0aWFsID0gMSA8PCAzLAogICAgICAgICBBbm5vdGF0aW9uID0gMSA8PCA0LAogICAgICAg
ICBNYXJrZWRUZXh0UmVjdHMgPSAxIDw8IDUsCisgICAgICAgIFNwYXRpYWxBbmRDdXJyZW50U2Vs
ZWN0aW9uID0gMSA8PCA2LAogICAgIH07CiAKICAgICBPcHRpb25TZXQ8T3B0aW9ucz4gb3B0aW9u
czsKQEAgLTExOCw3ICsxMTksOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYktp
dDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM+IHsKICAgICAgICAgV2Vi
S2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6UmVjdHMsCiAgICAg
ICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRp
YWwsCiAgICAgICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlv
bnM6OkFubm90YXRpb24sCi0gICAgICAgIFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJl
cXVlc3Q6Ok9wdGlvbnM6Ok1hcmtlZFRleHRSZWN0cworICAgICAgICBXZWJLaXQ6OkRvY3VtZW50
RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zOjpNYXJrZWRUZXh0UmVjdHMsCisgICAgICAg
IFdlYktpdDo6RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWxB
bmRDdXJyZW50U2VsZWN0aW9uCiAgICAgPjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDY2NzQw
MWMyMDgxMjgyNjM4MzI0MDUxMjU2OTdiMWEzNmIyYjg3MGIuLjdiOGI1ZmZkNGJiODMwNTAwMmJk
MTJiYWRmOGE1MWE4ZWUwMTU0ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzgwMCw2ICs3ODAwLDgg
QEAgc3RhdGljIGlubGluZSBPcHRpb25TZXQ8V2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0
UmVxdWVzdDo6T3B0aW9ucz4gdG9XZWJEb2MKICAgICAgICAgb3B0aW9ucy5hZGQoV2ViS2l0OjpE
b2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6QW5ub3RhdGlvbik7CiAgICAg
aWYgKGZsYWdzICYgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtlZFRleHRSZWN0cykKICAgICAgICAg
b3B0aW9ucy5hZGQoV2ViS2l0OjpEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9u
czo6TWFya2VkVGV4dFJlY3RzKTsKKyAgICBpZiAoZmxhZ3MgJiBVSVdLRG9jdW1lbnRSZXF1ZXN0
U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24pCisgICAgICAgIG9wdGlvbnMuYWRkKFdlYktpdDo6
RG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWxBbmRDdXJyZW50
U2VsZWN0aW9uKTsKIAogICAgIHJldHVybiBvcHRpb25zOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA3YjgxMDJjNzI4
ZDU3OTNjZTRjMDExNmIwZmFmYjJhNWYyZTk4Mzk2Li45MzVjMzQ5NzA5NDZlOTU3MmVhYWMyNGFi
MWUzODFmODM4MTA0OTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtNDEzNyw3ICs0MTM3LDcgQEAgdm9pZCBXZWJQYWdl
OjpyZXF1ZXN0RG9jdW1lbnRFZGl0aW5nQ29udGV4dChEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVx
dWVzdCByZXF1ZXMKICAgICBWaXNpYmxlUG9zaXRpb24gc2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rp
b24udmlzaWJsZVN0YXJ0KCk7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHNlbGVjdGlvbkVuZCA9IHNl
bGVjdGlvbi52aXNpYmxlRW5kKCk7CiAKLSAgICBib29sIGlzU3BhdGlhbFJlcXVlc3QgPSByZXF1
ZXN0Lm9wdGlvbnMuY29udGFpbnMoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlv
bnM6OlNwYXRpYWwpOworICAgIGJvb2wgaXNTcGF0aWFsUmVxdWVzdCA9IHJlcXVlc3Qub3B0aW9u
cy5jb250YWluc0FueSh7IERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zOjpT
cGF0aWFsLCBEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6U3BhdGlhbEFu
ZEN1cnJlbnRTZWxlY3Rpb24gfSk7CiAgICAgYm9vbCB3YW50c1JlY3RzID0gcmVxdWVzdC5vcHRp
b25zLmNvbnRhaW5zKERvY3VtZW50RWRpdGluZ0NvbnRleHRSZXF1ZXN0OjpPcHRpb25zOjpSZWN0
cyk7CiAgICAgYm9vbCB3YW50c01hcmtlZFRleHRSZWN0cyA9IHJlcXVlc3Qub3B0aW9ucy5jb250
YWlucyhEb2N1bWVudEVkaXRpbmdDb250ZXh0UmVxdWVzdDo6T3B0aW9uczo6TWFya2VkVGV4dFJl
Y3RzKTsKIApAQCAtNDE2MSw2ICs0MTYxLDEyIEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdERvY3Vt
ZW50RWRpdGluZ0NvbnRleHQoRG9jdW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3QgcmVxdWVzCiAg
ICAgICAgIHJhbmdlT2ZJbnRlcmVzdEVuZCA9IHZpc2libGVQb3NpdGlvbkZvclBvaW50SW5Sb290
Vmlld0Nvb3JkaW5hdGVzKGZyYW1lLmdldCgpLCByZXF1ZXN0LnJlY3QubWF4WE1heFlDb3JuZXIo
KSk7CiAgICAgICAgIGlmIChyYW5nZU9mSW50ZXJlc3RFbmQgPCByYW5nZU9mSW50ZXJlc3RTdGFy
dCkKICAgICAgICAgICAgIHN0ZDo6ZXhjaGFuZ2UocmFuZ2VPZkludGVyZXN0U3RhcnQsIHJhbmdl
T2ZJbnRlcmVzdEVuZCk7CisgICAgICAgIGlmIChyZXF1ZXN0Lm9wdGlvbnMuY29udGFpbnMoRG9j
dW1lbnRFZGl0aW5nQ29udGV4dFJlcXVlc3Q6Ok9wdGlvbnM6OlNwYXRpYWxBbmRDdXJyZW50U2Vs
ZWN0aW9uKSkgeworICAgICAgICAgICAgaWYgKHNlbGVjdGlvblN0YXJ0IDwgcmFuZ2VPZkludGVy
ZXN0U3RhcnQpCisgICAgICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0U3RhcnQgPSBzZWxlY3Rp
b25TdGFydDsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rpb25FbmQgPiByYW5nZU9mSW50ZXJlc3RF
bmQpCisgICAgICAgICAgICAgICAgcmFuZ2VPZkludGVyZXN0RW5kID0gc2VsZWN0aW9uRW5kOwor
ICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghc2VsZWN0aW9uLmlzTm9uZSgpKSB7CiAgICAgICAg
IHJhbmdlT2ZJbnRlcmVzdFN0YXJ0ID0gc2VsZWN0aW9uU3RhcnQ7CiAgICAgICAgIHJhbmdlT2ZJ
bnRlcmVzdEVuZCA9IHNlbGVjdGlvbkVuZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxMTFhMTE0NTRjN2RkYTk3YjMxOWZmMjY0YWFlMTIyYzE4
YjViOTc2Li4wYmQ3NDRlZTUxYjYzYzI2YWQwN2NlN2FjOGU5MjdhNmEwNzViZjEyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMjAtMDctMDEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAg
ICAgIFtpT1NdIEltcGxlbWVudCBzdXBwb3J0IGZvciBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlh
bEFuZEN1cnJlbnRTZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMzcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk3Mzg4Nzg+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIEFkZCBzb21lIHRl
c3RzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVu
dEVkaXRpbmdDb250ZXh0Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9pb3MvVUlLaXRTUEkuaDogRGVmaW5lIHRoZSBlbnVtZXJhdG9yIHVzaW5nIGEgbWFjcm8g
anVzdCBsaWtlIHdoYXQgd2FzIGRvbmUgZm9yCisgICAgICAgIFVJV0tEb2N1bWVudFJlcXVlc3RN
YXJrZWRUZXh0UmVjdHMuIFRoZSByZWFzb24gZm9yIHRoZSBtYWNybyBpbnN0ZWFkIG9mIG1vZGlm
eWluZyB0aGUgZW51bWVyYXRpb24KKyAgICAgICAgZGVmaW5pdGlvbiBpbiB0aGlzIGZpbGUgaXMg
dG8gMSkgYXZvaWQgYnJlYWtpbmcgdGhlIGJ1aWxkIGZvciBBcHBsZSBlbmdpbmVlcnMgdGhhdCBo
YXZlbid0IHBpY2tlZAorICAgICAgICB1cCA8cmRhcjovL3Byb2JsZW0vNjQ4Njc1NDA+IGFuZCB0
byAyKSBhdm9pZCBicmVha2luZyB0aGUgT3BlblNvdXJjZSBidWlsZC4KKwogMjAyMC0wNy0wMSAg
S2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBXS1Vz
ZXJTY3JpcHRzIGluamVjdGluZyBpbnRvIGFsbCBmcmFtZXMgc2VlbSB0byB2aW9sYXRlIGFwcC1i
b3VuZCBkb21haW5zCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KaW5kZXggZjZmOGNkZTZm
YmJhMDE1YTI5NWJkNjQ1NmNlZmE1YmIxOTg4YzNhZS4uMzZjMTM3MjE3YWY2ZmM4NWZmNGMyZGMy
OTViZGI2YTU0MzA5MzQyZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQpAQCAtNDU4
LDYgKzQ1OCwxMjggQEAgVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsUmVxdWVz
dEluVGV4dEZpZWxkKQogICAgIH0KIH0KIAorc3RhdGljIENHUmVjdCBDR1JlY3RGcm9tSlNPTkVu
Y29kZWRET01SZWN0SlNWYWx1ZShpZCBqc1ZhbHVlKQoreworICAgIGlmICghW2pzVmFsdWUgaXNL
aW5kT2ZDbGFzczpOU0RpY3Rpb25hcnkuY2xhc3NdKQorICAgICAgICByZXR1cm4gQ0dSZWN0TnVs
bDsKKyAgICBOU0RpY3Rpb25hcnkgKmRvbVJlY3QgPSBqc1ZhbHVlOworICAgIHJldHVybiBDR1Jl
Y3RNYWtlKFtkb21SZWN0W0AibGVmdCJdIGZsb2F0VmFsdWVdLCBbZG9tUmVjdFtAInRvcCJdIGZs
b2F0VmFsdWVdLCBbZG9tUmVjdFtAIndpZHRoIl0gZmxvYXRWYWx1ZV0sIFtkb21SZWN0W0AiaGVp
Z2h0Il0gZmxvYXRWYWx1ZV0pOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNw
YXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QmVmb3JlUmFuZ2VTZWxlY3Rpb24p
Cit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA5ODAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGlsZEZy
YW1lc1BhaW50OmFwcGx5QWhlbVN0eWxlKEAiPHNwYW4gaWQ9J3NwYXRpYWxCb3gnPlRoZTwvc3Bh
bj4gcXVpY2sgYnJvd24gZm94IDxzcGFuIGlkPSdqdW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhl
IGRvZy4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdl
dFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAxKSJdOworCisg
ICAgLy8gSGl0IHRlc3RpbmcgYmVsb3cgdGhlIGxhc3QgbGluZSBpcyB0cmVhdGVkIGFzIGlmIHRo
ZSBsaW5lIHdhcyBoaXQuIFNvLCB1c2UgaGVpZ2h0IG9mIDEKKyAgICAvLyB0byBlbnN1cmUgd2Ug
YXJlbid0IGV2ZW4gY2xvc2UgdG8gdGhlIGxpbmUgaGVpZ2h0LgorICAgIGF1dG8gc3BhdGlhbEJv
eFJlY3QgPSBDR1JlY3RGcm9tSlNPTkVuY29kZWRET01SZWN0SlNWYWx1ZShbd2ViVmlldyBvYmpl
Y3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic3BhdGlhbEJveC5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKS50b0pTT04oKSJdKTsKKyAgICBzcGF0aWFsQm94UmVjdC5zaXplLmhlaWdodCA9IDE7Cisg
ICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgMyAqIGdseXBoV2lkdGgsIDEpLCBzcGF0aWFs
Qm94UmVjdCk7CisKKyAgICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250ZXh0ID0gW3dlYlZpZXcg
c3luY2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3Vt
ZW50UmVxdWVzdFRleHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxl
Y3Rpb24sIFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMiwgc3BhdGlhbEJveFJlY3QpXTsKKyAgICBF
WFBFQ1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJUaGUgcXVp
Y2sgYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05TU1RS
SU5HX0VRKCJqdW1wcyIsIGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJ
TkdfRVEoIiBvdmVyIHRoZSIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKK30KKworVEVTVChEb2N1
bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvblJlcXVlc3RfUmVj
dEFmdGVyUmFuZ2VTZWxlY3Rpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA5ODAsIDYw
MCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50
aWxBbGxJbW1lZGlhdGVDaGlsZEZyYW1lc1BhaW50OmFwcGx5QWhlbVN0eWxlKEAiVGhlIHF1aWNr
IGJyb3duIGZveCA8c3BhbiBpZD0nanVtcHMnPmp1bXBzPC9zcGFuPiBvdmVyIHRoZSBkb2cuPHNw
YW4gaWQ9J3NwYXRpYWxCb3gnPjwvc3Bhbj4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFs
dWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRFeHRlbnQoanVtcHMs
IDAsIGp1bXBzLCAxKSJdOworCisgICAgLy8gSGl0IHRlc3RpbmcgYmVsb3cgdGhlIGxhc3QgbGlu
ZSBpcyB0cmVhdGVkIGFzIGlmIHRoZSBsaW5lIHdhcyBoaXQuIFNvLCB1c2UgaGVpZ2h0IG9mIDEK
KyAgICAvLyB0byBlbnN1cmUgd2UgYXJlbid0IGV2ZW4gY2xvc2UgdG8gdGhlIGxpbmUgaGVpZ2h0
LgorICAgIGF1dG8gc3BhdGlhbEJveFJlY3QgPSBDR1JlY3RGcm9tSlNPTkVuY29kZWRET01SZWN0
SlNWYWx1ZShbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic3BhdGlhbEJv
eC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b0pTT04oKSJdKTsKKyAgICBzcGF0aWFsQm94UmVj
dC5zaXplLmhlaWdodCA9IDE7CisgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMzkgKiBnbHlwaFdp
ZHRoLCAwLCAwLCAxKSwgc3BhdGlhbEJveFJlY3QpOworCisgICAgVUlXS0RvY3VtZW50Q29udGV4
dCAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0
Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlXS0RvY3VtZW50UmVxdWVz
dFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxhcml0eVdvcmQsIDIsIHNw
YXRpYWxCb3hSZWN0KV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVD
VF9OU1NUUklOR19FUSgiYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAg
RVhQRUNUX05TU1RSSU5HX0VRKCJqdW1wcyIsIGNvbnRleHQuc2VsZWN0ZWRUZXh0KTsKKyAgICBF
WFBFQ1RfTlNTVFJJTkdfRVEoIiBvdmVyIHRoZSBkb2cuIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIp
OworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFNwYXRpYWxBbmRDdXJyZW50U2Vs
ZWN0aW9uUmVxdWVzdF9SZWN0QXJvdW5kUmFuZ2VTZWxlY3Rpb24pCit7CisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA5ODAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGlsZEZyYW1lc1BhaW50OmFwcGx5QWhl
bVN0eWxlKEAiVGhlIHF1aWNrIGJyb3duIDxzcGFuIGlkPSdzcGF0aWFsQm94Jz5mb3ggPHNwYW4g
aWQ9J2p1bXBzJz5qdW1wczwvc3Bhbj4gPC9zcGFuPm92ZXIgdGhlIGRvZy4iKV07CisgICAgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJh
c2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAxKSJdOworCisgICAgLy8gSGl0IHRlc3Rpbmcg
YmVsb3cgdGhlIGxhc3QgbGluZSBpcyB0cmVhdGVkIGFzIGlmIHRoZSBsaW5lIHdhcyBoaXQuIFNv
LCB1c2UgaGVpZ2h0IG9mIDEKKyAgICAvLyB0byBlbnN1cmUgd2UgYXJlbid0IGV2ZW4gY2xvc2Ug
dG8gdGhlIGxpbmUgaGVpZ2h0LgorICAgIGF1dG8gc3BhdGlhbEJveFJlY3QgPSBDR1JlY3RGcm9t
SlNPTkVuY29kZWRET01SZWN0SlNWYWx1ZShbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAic3BhdGlhbEJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b0pTT04oKSJdKTsK
KyAgICBzcGF0aWFsQm94UmVjdC5zaXplLmhlaWdodCA9IDE7CisgICAgRVhQRUNUX0VRKENHUmVj
dE1ha2UoMTYgKiBnbHlwaFdpZHRoLCAwLCAxMCAqIGdseXBoV2lkdGgsIDEpLCBzcGF0aWFsQm94
UmVjdCk7CisKKyAgICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250ZXh0ID0gW3dlYlZpZXcgc3lu
Y2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50
UmVxdWVzdFRleHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rp
b24sIFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMiwgc3BhdGlhbEJveFJlY3QpXTsKKyAgICBFWFBF
Q1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJxdWljayBicm93
biBmb3ggIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEo
Imp1bXBzIiwgY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgi
IG92ZXIgdGhlIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworfQorCitURVNUKERvY3VtZW50RWRp
dGluZ0NvbnRleHQsIFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uUmVxdWVzdF9SZWN0QmVmb3Jl
Q2FyZXRTZWxlY3Rpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA5ODAsIDYwMCldKTsK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJ
bW1lZGlhdGVDaGlsZEZyYW1lc1BhaW50OmFwcGx5QWhlbVN0eWxlKEAiPGJvZHkgY29udGVudGVk
aXRhYmxlPSd0cnVlJz48c3BhbiBpZD0nc3BhdGlhbEJveCc+VGhlPC9zcGFuPiBxdWljayBicm93
biBmb3ggPHNwYW4gaWQ9J2p1bXBzJz5qdW1wczwvc3Bhbj4gb3ZlciB0aGUgZG9nLjwvYm9keT4i
KV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVj
dGlvbigpLnNldEJhc2VBbmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAwKSJdOworCisgICAgLy8g
SGl0IHRlc3RpbmcgYmVsb3cgdGhlIGxhc3QgbGluZSBpcyB0cmVhdGVkIGFzIGlmIHRoZSBsaW5l
IHdhcyBoaXQuIFNvLCB1c2UgaGVpZ2h0IG9mIDEKKyAgICAvLyB0byBlbnN1cmUgd2UgYXJlbid0
IGV2ZW4gY2xvc2UgdG8gdGhlIGxpbmUgaGVpZ2h0LgorICAgIGF1dG8gc3BhdGlhbEJveFJlY3Qg
PSBDR1JlY3RGcm9tSlNPTkVuY29kZWRET01SZWN0SlNWYWx1ZShbd2ViVmlldyBvYmplY3RCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAic3BhdGlhbEJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50
b0pTT04oKSJdKTsKKyAgICBzcGF0aWFsQm94UmVjdC5zaXplLmhlaWdodCA9IDE7CisgICAgRVhQ
RUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgMyAqIGdseXBoV2lkdGgsIDEpLCBzcGF0aWFsQm94UmVj
dCk7CisKKyAgICBVSVdLRG9jdW1lbnRDb250ZXh0ICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hy
b25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVx
dWVzdFRleHQgfCBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxlY3Rpb24s
IFVJVGV4dEdyYW51bGFyaXR5V29yZCwgMiwgc3BhdGlhbEJveFJlY3QpXTsKKyAgICBFWFBFQ1Rf
Tk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJUaGUgcXVpY2sgYnJv
d24gZm94ICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05VTEwoY29udGV4
dC5zZWxlY3RlZFRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgianVtcHMgb3ZlciIsIGNv
bnRleHQuY29udGV4dEFmdGVyKTsKK30KKworVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBT
cGF0aWFsQW5kQ3VycmVudFNlbGVjdGlvblJlcXVlc3RfUmVjdEFmdGVyQ2FyZXRTZWxlY3Rpb24p
Cit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA5ODAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmdBbmRXYWl0VW50aWxBbGxJbW1lZGlhdGVDaGlsZEZy
YW1lc1BhaW50OmFwcGx5QWhlbVN0eWxlKEAiPGJvZHkgY29udGVudGVkaXRhYmxlPSd0cnVlJz5U
aGUgcXVpY2sgYnJvd24gZm94IDxzcGFuIGlkPSdqdW1wcyc+anVtcHM8L3NwYW4+IG92ZXIgdGhl
IGRvZy48c3BhbiBpZD0nc3BhdGlhbEJveCc+PC9zcGFuPjwvYm9keT4iKV07CisgICAgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldEJhc2VB
bmRFeHRlbnQoanVtcHMsIDAsIGp1bXBzLCAwKSJdOworCisgICAgLy8gSGl0IHRlc3RpbmcgYmVs
b3cgdGhlIGxhc3QgbGluZSBpcyB0cmVhdGVkIGFzIGlmIHRoZSBsaW5lIHdhcyBoaXQuIFNvLCB1
c2UgaGVpZ2h0IG9mIDEKKyAgICAvLyB0byBlbnN1cmUgd2UgYXJlbid0IGV2ZW4gY2xvc2UgdG8g
dGhlIGxpbmUgaGVpZ2h0LgorICAgIGF1dG8gc3BhdGlhbEJveFJlY3QgPSBDR1JlY3RGcm9tSlNP
TkVuY29kZWRET01SZWN0SlNWYWx1ZShbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAic3BhdGlhbEJveC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b0pTT04oKSJdKTsKKyAg
ICBzcGF0aWFsQm94UmVjdC5zaXplLmhlaWdodCA9IDE7CisgICAgRVhQRUNUX0VRKENHUmVjdE1h
a2UoMzkgKiBnbHlwaFdpZHRoLCAwLCAwLCAxKSwgc3BhdGlhbEJveFJlY3QpOworCisgICAgVUlX
S0RvY3VtZW50Q29udGV4dCAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0
RG9jdW1lbnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlX
S0RvY3VtZW50UmVxdWVzdFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxh
cml0eVdvcmQsIDIsIHNwYXRpYWxCb3hSZWN0KV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRl
eHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiYnJvd24gZm94ICIsIGNvbnRleHQuY29udGV4
dEJlZm9yZSk7CisgICAgRVhQRUNUX05VTEwoY29udGV4dC5zZWxlY3RlZFRleHQpOworICAgIEVY
UEVDVF9OU1NUUklOR19FUSgianVtcHMgb3ZlciB0aGUgZG9nLiIsIGNvbnRleHQuY29udGV4dEFm
dGVyKTsKK30KKworVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBTcGF0aWFsQW5kQ3VycmVu
dFNlbGVjdGlvblJlcXVlc3RfUmVjdEFyb3VuZENhcmV0U2VsZWN0aW9uKQoreworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgOTgwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nQW5kV2FpdFVudGlsQWxsSW1tZWRpYXRlQ2hpbGRGcmFtZXNQYWludDphcHBs
eUFoZW1TdHlsZShAIjxib2R5IGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+VGhlIHF1aWNrIGJyb3du
IDxzcGFuIGlkPSdzcGF0aWFsQm94Jz5mb3ggPHNwYW4gaWQ9J2p1bXBzJz5qdW1wczwvc3Bhbj4g
PC9zcGFuPm92ZXIgdGhlIGRvZy48L2JvZHk+IildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KGp1bXBz
LCAwLCBqdW1wcywgMCkiXTsKKworICAgIC8vIEhpdCB0ZXN0aW5nIGJlbG93IHRoZSBsYXN0IGxp
bmUgaXMgdHJlYXRlZCBhcyBpZiB0aGUgbGluZSB3YXMgaGl0LiBTbywgdXNlIGhlaWdodCBvZiAx
CisgICAgLy8gdG8gZW5zdXJlIHdlIGFyZW4ndCBldmVuIGNsb3NlIHRvIHRoZSBsaW5lIGhlaWdo
dC4KKyAgICBhdXRvIHNwYXRpYWxCb3hSZWN0ID0gQ0dSZWN0RnJvbUpTT05FbmNvZGVkRE9NUmVj
dEpTVmFsdWUoW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNwYXRpYWxC
b3guZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9KU09OKCkiXSk7CisgICAgc3BhdGlhbEJveFJl
Y3Quc2l6ZS5oZWlnaHQgPSAxOworICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDE2ICogZ2x5cGhX
aWR0aCwgMCwgMTAgKiBnbHlwaFdpZHRoLCAxKSwgc3BhdGlhbEJveFJlY3QpOworCisgICAgVUlX
S0RvY3VtZW50Q29udGV4dCAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0
RG9jdW1lbnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0IHwgVUlX
S0RvY3VtZW50UmVxdWVzdFNwYXRpYWxBbmRDdXJyZW50U2VsZWN0aW9uLCBVSVRleHRHcmFudWxh
cml0eVdvcmQsIDIsIHNwYXRpYWxCb3hSZWN0KV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRl
eHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgicXVpY2sgYnJvd24gZm94ICIsIGNvbnRleHQu
Y29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05VTEwoY29udGV4dC5zZWxlY3RlZFRleHQpOwor
ICAgIEVYUEVDVF9OU1NUUklOR19FUSgianVtcHMgb3ZlciB0aGUiLCBjb250ZXh0LmNvbnRleHRB
ZnRlcik7Cit9CisKIFRFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdFJlY3RzSW5U
ZXh0QXJlYUFjcm9zc1dvcmRXcmFwcGVkTGluZSkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKV0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRT
UEkuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYWQ3MGRkNTRh
M2E0YzU2YzFkZDgyZGFmMDg5ZTFmMmIzZDM0MjBhMi4uMWViODMxNDg4MmZlOWI0MDdlNDc1ZDgx
ZDYyMDE1OWQwNTZjZDgwYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlL
aXRTUEkuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCkBAIC0yMjMs
NiArMjIzLDcgQEAgSUdOT1JFX1dBUk5JTkdTX0VORAogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCiAKICNkZWZpbmUgVUlXS0RvY3VtZW50UmVxdWVzdE1hcmtlZFRleHRSZWN0cyAo
MSA8PCA1KQorI2RlZmluZSBVSVdLRG9jdW1lbnRSZXF1ZXN0U3BhdGlhbEFuZEN1cnJlbnRTZWxl
Y3Rpb24gKDEgPDwgNikKIAogQGludGVyZmFjZSBVSVRleHRBdXRvZmlsbFN1Z2dlc3Rpb24gKCkK
ICsgKGluc3RhbmNldHlwZSlhdXRvZmlsbFN1Z2dlc3Rpb25XaXRoVXNlcm5hbWU6KE5TU3RyaW5n
ICopdXNlcm5hbWUgcGFzc3dvcmQ6KE5TU3RyaW5nICopcGFzc3dvcmQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>