<?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>214331</bug_id>
          
          <creation_ts>2020-07-14 16:24:19 -0700</creation_ts>
          <short_desc>Should represent `TextPlaceholderElement` as an `NSTextAttachmentCharacter` instead of a `\n`</short_desc>
          <delta_ts>2020-07-15 17:37:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1671580</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-14 16:24:19 -0700</bug_when>
    <thetext>This can muck with whitespace addition/removal with iOS smart editing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671594</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-14 16:41:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/64779558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671599</commentid>
    <comment_count>2</comment_count>
      <attachid>404306</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-14 16:50:56 -0700</bug_when>
    <thetext>Created attachment 404306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671616</commentid>
    <comment_count>3</comment_count>
      <attachid>404311</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-14 17:46:04 -0700</bug_when>
    <thetext>Created attachment 404311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671620</commentid>
    <comment_count>4</comment_count>
      <attachid>404312</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-14 17:52:22 -0700</bug_when>
    <thetext>Created attachment 404312
Patch

... stupid semicolons (╯°□°）╯︵ ┻━┻</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671622</commentid>
    <comment_count>5</comment_count>
      <attachid>404311</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-14 17:55:35 -0700</bug_when>
    <thetext>Comment on attachment 404311
Patch

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

&gt; Source/WebCore/editing/TextIterator.cpp:807
&gt; +static bool shouldEmitReplacementInsteadOfNode(Node&amp; node)

This should probably take `const Node&amp;` as the argument type.

&gt; Source/WebCore/editing/TextIterator.cpp:851
&gt; +    // Placeholders should eventually disappear, so treating them as a line break doesn&apos;t make sense
&gt; +    // as when they are removed the text after it is combined with the text before it.

Nit - I think this comment would be more effective inside `shouldEmitReplacementInsteadOfNode`, since that is where the notion of “emitting replacement characters instead of nodes&quot; becomes relevant to `TextPlaceholderElement`.

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:61
&gt; +- (void)_insertTextPlaceholderWithSize:(CGSize)size completionHandler:(void (^)(UITextPlaceholder *))completionHandler;
&gt; +- (void)_removeTextPlaceholder:(UITextPlaceholder *)placeholder willInsertText:(BOOL)willInsertText completionHandler:(void (^)(void))completionHandler;

Nit - I think you could actually omit this extra plumbing on WKWebView, and just use -textInputContentView instead to grab the WKContentView (exposed as a &lt;UIWKInteractionViewProtocol&gt;-conformant responder).

&gt; Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm:117
&gt; +- (void)_insertTextPlaceholderWithSize:(CGSize)size completionHandler:(void (^)(UITextPlaceholder *))completionHandler
&gt; +{
&gt; +    [_contentView insertTextPlaceholderWithSize:size completionHandler:completionHandler];
&gt; +}
&gt; +
&gt; +- (void)_removeTextPlaceholder:(UITextPlaceholder *)placeholder willInsertText:(BOOL)willInsertText completionHandler:(void (^)(void))completionHandler
&gt; +{
&gt; +    [_contentView removeTextPlaceholder:placeholder willInsertText:willInsertText completionHandler:completionHandler];
&gt; +}
&gt; +

(Ditto)

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:863
&gt; +    auto* placeholder = [webView synchronouslyInsertTextPlaceholderWithSize:CGSizeMake(5, 5)];

Nit - the * should be on the other side here. But also, we can just use `auto` for these.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:880
&gt; +    auto* placeholder = [webView synchronouslyInsertTextPlaceholderWithSize:CGSizeMake(5, 5)];

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671625</commentid>
    <comment_count>6</comment_count>
      <attachid>404312</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-14 18:15:33 -0700</bug_when>
    <thetext>Comment on attachment 404312
Patch

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

&gt; Source/WebKit/Platform/spi/ios/UIKitSPI.h:708
&gt; +- (void)insertTextPlaceholderWithSize:(CGSize)size completionHandler:(void (^)(UITextPlaceholder *))completionHandler;
&gt; +- (void)removeTextPlaceholder:(UITextPlaceholder *)placeholder willInsertText:(BOOL)willInsertText completionHandler:(void (^)(void))completionHandler;

This should also go inside the `@optional` section, to match the actual SPI header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671629</commentid>
    <comment_count>7</comment_count>
      <attachid>404311</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-14 18:49:05 -0700</bug_when>
    <thetext>Comment on attachment 404311
Patch

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

&gt;&gt; Source/WebCore/editing/TextIterator.cpp:807
&gt;&gt; +static bool shouldEmitReplacementInsteadOfNode(Node&amp; node)
&gt; 
&gt; This should probably take `const Node&amp;` as the argument type.

I was matching the other `shouldEmit*` functions, but yeah I could do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671630</commentid>
    <comment_count>8</comment_count>
      <attachid>404314</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-14 18:49:56 -0700</bug_when>
    <thetext>Created attachment 404314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671791</commentid>
    <comment_count>9</comment_count>
      <attachid>404355</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-15 10:28:53 -0700</bug_when>
    <thetext>Created attachment 404355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671843</commentid>
    <comment_count>10</comment_count>
      <attachid>404355</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-15 11:37:04 -0700</bug_when>
    <thetext>Comment on attachment 404355
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * editing/TextIterator.cpp:

It would be nice to have a few words here to explain why we want to emit the replacement character instead of a newline (something similar to what you already wrote in the comment below).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671875</commentid>
    <comment_count>11</comment_count>
      <attachid>404376</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-15 12:47:40 -0700</bug_when>
    <thetext>Created attachment 404376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671931</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-15 14:16:00 -0700</bug_when>
    <thetext>Committed r264420: &lt;https://trac.webkit.org/changeset/264420&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404376.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671948</commentid>
    <comment_count>13</comment_count>
      <attachid>404376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-15 14:40:22 -0700</bug_when>
    <thetext>Comment on attachment 404376
Patch

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

&gt; Source/WebCore/editing/TextIterator.cpp:1014
&gt; +            emitCharacter(0xFFFC, *m_node-&gt;parentNode(), m_node, 0, 0);

Should write:

    objectReplacementCharacter

Instead of:

    0xFFFC

It’s in the header CharacterNames.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671972</commentid>
    <comment_count>14</comment_count>
      <attachid>404376</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-15 15:44:58 -0700</bug_when>
    <thetext>Comment on attachment 404376
Patch

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

&gt;&gt; Source/WebCore/editing/TextIterator.cpp:1014
&gt;&gt; +            emitCharacter(0xFFFC, *m_node-&gt;parentNode(), m_node, 0, 0);
&gt; 
&gt; Should write:
&gt; 
&gt;     objectReplacementCharacter
&gt; 
&gt; Instead of:
&gt; 
&gt;     0xFFFC
&gt; 
&gt; It’s in the header CharacterNames.h.

Oh neat!  I did not know that existed :)

Will land a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672002</commentid>
    <comment_count>15</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-07-15 17:37:31 -0700</bug_when>
    <thetext>Committed r264439: Unreviewed followup, use objectReplacementCharacter instead of 0xFFFC</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404306</attachid>
            <date>2020-07-14 16:50:56 -0700</date>
            <delta_ts>2020-07-14 17:46:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214331-20200714165055.patch</filename>
            <type>text/plain</type>
            <size>13447</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNzhhZjZiZTdmMTRmODgwYWEzMGEyYzZhMjcwMzllYWE0NDFlNmViLi42
MTFlNjJhOWQ1YzY2NmFkMmNjNWUwNmRmMTI2YWIzOGNlNGQ2YWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjAtMDctMTQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIHNob3VsZCByZXByZXNlbnQgYFRleHRQbGFjZWhvbGRlckVsZW1lbnRgIGFz
IGFuIGBOU1RleHRBdHRhY2htZW50Q2hhcmFjdGVyYCBpbnN0ZWFkIG9mIGEgYFxuYAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzMxCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NDc3OTU1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNob3VsZEVtaXRSZXBsYWNlbWVudEluc3RlYWRPZk5vZGUpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnNob3VsZEVtaXROZXdsaW5lc0JlZm9yZUFuZEFmdGVyTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnJlcHJlc2VudE5vZGVPZmZzZXRaZXJvKToK
KwogMjAyMC0wNy0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTXVsdGlwbGV4IHRoZSBISUQgYW5kIEdhbWVDb250cm9sbGVyIGdhbWVwYWQgcHJvdmlkZXJz
IG9uIE1hYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMjAxZmIwY2Q3MjE0ZWNkYjVkMzU2MTgwOWU1OTE3YmU2Yjg1
MzFhMy4uMjlhMDgxMzg5NzM3YmRjOTg0MWQ5NjlhYTIyM2U2OTMwZThjMDI0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAyMC0wNy0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgc2hvdWxkIHJlcHJlc2VudCBgVGV4dFBsYWNlaG9sZGVyRWxlbWVu
dGAgYXMgYW4gYE5TVGV4dEF0dGFjaG1lbnRDaGFyYWN0ZXJgIGluc3RlYWQgb2YgYSBgXG5gCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMzEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0Nzc5NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmdJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdUZXN0aW5nSU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luc2VydFRleHRQbGFjZWhv
bGRlcldpdGhTaXplOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9yZW1vdmVUZXh0UGxhY2Vob2xkZXI6d2lsbEluc2VydFRleHQ6Y29tcGxldGlvbkhh
bmRsZXI6XSk6IEFkZGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcmVtb3ZlVGV4dFBsYWNl
aG9sZGVyOndpbGxJbnNlcnRUZXh0OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICBEcml2
ZS1ieTogZW5zdXJlIHRoYXQgdGhlIGBjb21wbGV0aW9uSGFuZGxlcmAgaXMgYWx3YXlzIGNhbGxl
ZC4KKwogMjAyMC0wNy0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgTXVsdGlwbGV4IHRoZSBISUQgYW5kIEdhbWVDb250cm9sbGVyIGdhbWVwYWQgcHJvdmlk
ZXJzIG9uIE1hYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJh
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAppbmRleCA1
YmRjZTg5Y2E2NTgxMWFlMDUwOWY0YTBlYWNiZWIzYzgzMDljM2E2Li42YmZmNGE4NGI3MzlkODE3
NmQ2YmYxZTg1N2Y4ZTgyY2I3YmI5MmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRl
cmF0b3IuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiU2ltcGxlTGluZUxheW91dFJl
c29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dEJvdW5kYXJpZXMuaCIKICNpbmNsdWRlICJUZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuaCIKKyNpbmNsdWRlICJUZXh0UGxhY2Vob2xkZXJFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgi
CiAjaW5jbHVkZSA8dW5pY29kZS91bm9ybTIuaD4KQEAgLTgwMyw2ICs4MDQsMTEgQEAgc3RhdGlj
IGJvb2wgaGFzSGVhZGVyVGFnKEhUTUxFbGVtZW50JiBlbGVtZW50KQogICAgICAgICB8fCBlbGVt
ZW50Lmhhc1RhZ05hbWUoaDZUYWcpOwogfQogCitzdGF0aWMgYm9vbCBzaG91bGRFbWl0UmVwbGFj
ZW1lbnRJbnN0ZWFkT2ZOb2RlKE5vZGUmIG5vZGUpCit7CisgICAgcmV0dXJuIGlzPFRleHRQbGFj
ZWhvbGRlckVsZW1lbnQ+KG5vZGUpOworfQorCiBzdGF0aWMgYm9vbCBzaG91bGRFbWl0TmV3bGlu
ZXNCZWZvcmVBbmRBZnRlck5vZGUoTm9kZSYgbm9kZSkKIHsKICAgICAvLyBCbG9jayBmbG93ICh2
ZXJzdXMgaW5saW5lIGZsb3cpIGlzIHJlcHJlc2VudGVkIGJ5IGhhdmluZwpAQCAtODQwLDcgKzg0
NiwxMiBAQCBzdGF0aWMgYm9vbCBzaG91bGRFbWl0TmV3bGluZXNCZWZvcmVBbmRBZnRlck5vZGUo
Tm9kZSYgbm9kZSkKICAgICAgICAgaWYgKHRhYmxlICYmICF0YWJsZS0+aXNJbmxpbmUoKSkKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICAKKworICAgIC8vIFBsYWNlaG9sZGVy
cyBzaG91bGQgZXZlbnR1YWxseSBkaXNhcHBlYXIsIHNvIHRyZWF0aW5nIHRoZW0gYXMgYSBsaW5l
IGJyZWFrIGRvZXNuJ3QgbWFrZSBzZW5zZQorICAgIC8vIGFzIHdoZW4gdGhleSBhcmUgcmVtb3Zl
ZCB0aGUgdGV4dCBhZnRlciBpdCBpcyBjb21iaW5lZCB3aXRoIHRoZSB0ZXh0IGJlZm9yZSBpdC4K
KyAgICBpZiAoc2hvdWxkRW1pdFJlcGxhY2VtZW50SW5zdGVhZE9mTm9kZShub2RlKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuICFyZW5kZXJlci0+aXNJbmxpbmUoKQogICAg
ICAgICAmJiBpczxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKQogICAgICAgICAmJiAhcmVuZGVyZXIt
PmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKQpAQCAtOTk4LDYgKzEwMDksOSBAQCB2
b2lkIFRleHRJdGVyYXRvcjo6cmVwcmVzZW50Tm9kZU9mZnNldFplcm8oKQogICAgIH0gZWxzZSBp
ZiAoc2hvdWxkRW1pdFNwYWNlQmVmb3JlQW5kQWZ0ZXJOb2RlKCptX25vZGUpKSB7CiAgICAgICAg
IGlmIChzaG91bGRSZXByZXNlbnROb2RlT2Zmc2V0WmVybygpKQogICAgICAgICAgICAgZW1pdENo
YXJhY3RlcignICcsICptX25vZGUtPnBhcmVudE5vZGUoKSwgbV9ub2RlLCAwLCAwKTsKKyAgICB9
IGVsc2UgaWYgKHNob3VsZEVtaXRSZXBsYWNlbWVudEluc3RlYWRPZk5vZGUoKm1fbm9kZSkpIHsK
KyAgICAgICAgaWYgKHNob3VsZFJlcHJlc2VudE5vZGVPZmZzZXRaZXJvKCkpCisgICAgICAgICAg
ICBlbWl0Q2hhcmFjdGVyKDB4RkZGQywgKm1fbm9kZS0+cGFyZW50Tm9kZSgpLCBtX25vZGUsIDAs
IDApOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCmluZGV4IDE0ZjM0
YWIyOTdkZTY4ZGU2ZTZjZmRiZGVmM2ZlMTVkNGIyNTU0NjkuLmE0ZGIzMGNmMDAwYTM5M2U2MGRi
YTE4MTJmMjdlNzJlM2Q4NzFjMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKQEAg
LTU3LDYgKzU3LDggQEAKIC0gKHZvaWQpX2RpZEZpbmlzaFRleHRJbnRlcmFjdGlvbkluVGV4dElu
cHV0Q29udGV4dDooX1dLVGV4dElucHV0Q29udGV4dCAqKWNvbnRleHQ7CiAtICh2b2lkKV9yZXF1
ZXN0RG9jdW1lbnRDb250ZXh0OihVSVdLRG9jdW1lbnRSZXF1ZXN0ICopcmVxdWVzdCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoVUlXS0RvY3VtZW50Q29udGV4dCAqKSljb21wbGV0aW9uSGFu
ZGxlcjsKIC0gKHZvaWQpX2FkanVzdFNlbGVjdGlvbldpdGhEZWx0YTooTlNSYW5nZSlkZWx0YVJh
bmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsK
Ky0gKHZvaWQpX2luc2VydFRleHRQbGFjZWhvbGRlcldpdGhTaXplOihDR1NpemUpc2l6ZSBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoVUlUZXh0UGxhY2Vob2xkZXIgKikpY29tcGxldGlvbkhh
bmRsZXI7CistICh2b2lkKV9yZW1vdmVUZXh0UGxhY2Vob2xkZXI6KFVJVGV4dFBsYWNlaG9sZGVy
ICopcGxhY2Vob2xkZXIgd2lsbEluc2VydFRleHQ6KEJPT0wpd2lsbEluc2VydFRleHQgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogCiAtICh2b2lk
KXNldFRpbWVQaWNrZXJWYWx1ZVRvSG91cjooTlNJbnRlZ2VyKWhvdXIgbWludXRlOihOU0ludGVn
ZXIpbWludXRlOwogLSAoZG91YmxlKXRpbWVQaWNrZXJWYWx1ZUhvdXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5k
ZXggNDA0OWI2YmU4YTg3ZTBhNWFhMTI4MTRhYWFlZGQ2N2QyNjdmMWZjMy4uZmQzMzdjZWNiMjE4
ZmEyOTM4MzU4Yjk4YjQyZmU3ZDZkYjUwMzRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAtMTA1LDYgKzEw
NSwxNiBAQCAtIChCT09MKV9tYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdDooQ0dSZWN0
KXJlY3QKICNlbmRpZgogfQogCistICh2b2lkKV9pbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6
ZTooQ0dTaXplKXNpemUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJVGV4dFBsYWNlaG9s
ZGVyICopKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgW19jb250ZW50VmlldyBpbnNlcnRUZXh0
UGxhY2Vob2xkZXJXaXRoU2l6ZTpzaXplIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5k
bGVyXTsKK30KKworLSAodm9pZClfcmVtb3ZlVGV4dFBsYWNlaG9sZGVyOihVSVRleHRQbGFjZWhv
bGRlciAqKXBsYWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0OihCT09MKXdpbGxJbnNlcnRUZXh0IGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAg
IFtfY29udGVudFZpZXcgcmVtb3ZlVGV4dFBsYWNlaG9sZGVyOnBsYWNlaG9sZGVyIHdpbGxJbnNl
cnRUZXh0OndpbGxJbnNlcnRUZXh0IGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVy
XTsKK30KKwogLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhck5leHQKIHsKICAgICBbX2NvbnRl
bnRWaWV3IGFjY2Vzc29yeVRhYjpZRVNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNTgxMjA4NjdlMDUz
Yzg3NzEwMDY3MGZiZDE1NTRjMjdiN2FiZmNmZS4uODBjNmU1NWJjOTM0ZGVhMWYxNmNkZWJiYTBi
ZDE5MGFlYjZkMGFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03OTEwLDYgKzc5MTAsOCBAQCAtICh2
b2lkKXJlbW92ZVRleHRQbGFjZWhvbGRlcjooVUlUZXh0UGxhY2Vob2xkZXIgKilwbGFjZWhvbGRl
ciB3aWxsSW5zZXJ0VGV4dDooQgogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Ig
d2lsbEluc2VydFRleHQuIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwODc0Nz4uCiAgICAgaWYgKGF1dG8qIHdrVGV4dFBsYWNlaG9sZGVyID0gZHluYW1pY19v
YmpjX2Nhc3Q8V0tUZXh0UGxhY2Vob2xkZXI+KHBsYWNlaG9sZGVyKSkKICAgICAgICAgX3BhZ2Ut
PnJlbW92ZVRleHRQbGFjZWhvbGRlcih3a1RleHRQbGFjZWhvbGRlci5lbGVtZW50Q29udGV4dCwg
bWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgZWxzZQorICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogfQogCiBzdGF0aWMgVmVjdG9yPFdlYkNvcmU6OkludFNpemU+IHNp
emVzT2ZQbGFjZWhvbGRlckVsZW1lbnRzVG9JbnNlcnRXaGVuRHJvcHBpbmdJdGVtcyhOU0FycmF5
PE5TSXRlbVByb3ZpZGVyICo+ICppdGVtUHJvdmlkZXJzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZiZGE3M2IzZTNhNzFhMDkxNGQ4MWM3OGNj
MzdmNTYwOGE4YjFiYjguLmQ5OTU1ZjYyODUxNDgxNjE0ZDFjZGNkMTBiNjdhNTQzZGRiYjI3MTMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAyMC0wNy0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgc2hvdWxkIHJlcHJlc2VudCBgVGV4dFBsYWNlaG9sZGVyRWxlbWVudGAgYXMg
YW4gYE5TVGV4dEF0dGFjaG1lbnRDaGFyYWN0ZXJgIGluc3RlYWQgb2YgYSBgXG5gCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMzEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzY0Nzc5NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1
bWVudEVkaXRpbmdDb250ZXh0Lm1tOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN5bmNocm9u
b3VzbHlJbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTpdKTogQWRkZWQuCisgICAgICAgICgt
W1Rlc3RXS1dlYlZpZXcgc3luY2hyb25vdXNseVJlbW92ZVRleHRQbGFjZWhvbGRlcjp3aWxsSW5z
ZXJ0VGV4dDpdKTogQWRkZWQuCisgICAgICAgIChURVNULkRvY3VtZW50RWRpdGluZ0NvbnRleHQu
UmVxdWVzdEJlZm9yZUlubGluZVBsYWNlaG9sZGVyKTogQWRkZWQuCisgICAgICAgIChURVNULkRv
Y3VtZW50RWRpdGluZ0NvbnRleHQuUmVxdWVzdEFmdGVySW5saW5lUGxhY2Vob2xkZXIpOiBBZGRl
ZC4KKyAgICAgICAgKFRFU1QuRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5SZXF1ZXN0QmVmb3JlQmxv
Y2tQbGFjZWhvbGRlcik6IEFkZGVkLgorICAgICAgICAoVEVTVC5Eb2N1bWVudEVkaXRpbmdDb250
ZXh0LlJlcXVlc3RBZnRlckJsb2NrUGxhY2Vob2xkZXIpOiBBZGRlZC4KKwogMjAyMC0wNy0wOSAg
QW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBh
Y2Nlc3NpYmlsaXR5L01hYy9zZWxlY3RlZC12aXNpYmxlLXBvc2l0aW9uLXJhbmdlLmh0bWwgdGlt
ZS1kZXRlcm1pbmlzdGljLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCmluZGV4IDM2YzEz
NzIxN2FmNmZjODVmZjRjMmRjMjk1YmRiNmE1NDMwOTM0MmQuLmQ3ODczMzFlYTVjNzAwYmVlZTg4
ZDIwNjgwYmFlNWEzNzIxNTc5NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KQEAg
LTE1MSw2ICsxNTEsMjcgQEAgLSAoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0ICo+ICopc3lu
Y2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDoKICAgICByZXR1cm4gcmVz
dWx0LmF1dG9yZWxlYXNlKCk7CiB9CiAKKy0gKFVJVGV4dFBsYWNlaG9sZGVyICopc3luY2hyb25v
dXNseUluc2VydFRleHRQbGFjZWhvbGRlcldpdGhTaXplOihDR1NpemUpc2l6ZQoreworICAgIF9f
YmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIF9fYmxvY2sgUmV0YWluUHRyPFVJVGV4
dFBsYWNlaG9sZGVyPiByZXN1bHQ7CisgICAgW3NlbGYgX2luc2VydFRleHRQbGFjZWhvbGRlcldp
dGhTaXplOnNpemUgY29tcGxldGlvbkhhbmRsZXI6XihVSVRleHRQbGFjZWhvbGRlciAqcGxhY2Vo
b2xkZXIpIHsKKyAgICAgICAgcmVzdWx0ID0gcGxhY2Vob2xkZXI7CisgICAgICAgIGZpbmlzaGVk
ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
KTsKKyAgICByZXR1cm4gcmVzdWx0LmF1dG9yZWxlYXNlKCk7Cit9CisKKy0gKHZvaWQpc3luY2hy
b25vdXNseVJlbW92ZVRleHRQbGFjZWhvbGRlcjooVUlUZXh0UGxhY2Vob2xkZXIgKilwbGFjZWhv
bGRlciB3aWxsSW5zZXJ0VGV4dDooQk9PTCl3aWxsSW5zZXJ0VGV4dAoreworICAgIF9fYmxvY2sg
Ym9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIFtzZWxmIF9yZW1vdmVUZXh0UGxhY2Vob2xkZXI6
cGxhY2Vob2xkZXIgd2lsbEluc2VydFRleHQ6d2lsbEluc2VydFRleHQgY29tcGxldGlvbkhhbmRs
ZXI6Xih2b2lkKSB7CisgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKK30KKwogQGVuZAogCiBzdGF0aWMgTlNT
dHJpbmcgKmFwcGx5U3R5bGUoTlNTdHJpbmcgKmh0bWxTdHJpbmcpCkBAIC04MzMsNiArODU0LDc0
IEBAIFRFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdFRocmVlV29yZHNBcm91bmRT
ZWxlY3Rpb24pCiAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCIgb3ZlciB0aGUgbGF6eSIsIGNvbnRl
eHQuY29udGV4dEFmdGVyKTsKIH0KIAorVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBSZXF1
ZXN0QmVmb3JlSW5saW5lUGxhY2Vob2xkZXIpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBw
bHlTdHlsZShAIjxzcGFuIGlkPSd3cmFwcGVyJyBjb250ZW50ZWRpdGFibGU+aGVsbG8gd29ybGQ8
L3NwYW4+IildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJn
ZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbih3cmFwcGVyLmZpcnN0Q2hpbGQsIDUpIl07IC8vIFBs
YWNlIGN1cnNvciBhZnRlciAiaGVsbG8iLgorCisgICAgYXV0byogcGxhY2Vob2xkZXIgPSBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6Q0dTaXplTWFr
ZSg1LCA1KV07CisgICAgRVhQRUNUX05PVF9OVUxMKHBsYWNlaG9sZGVyKTsKKworICAgIGF1dG8g
KmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDpt
YWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCwgVUlUZXh0R3JhbnVsYXJpdHlDaGFy
YWN0ZXIsIDIwMCldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1Rf
TlNTVFJJTkdfRVEoImhlbGxvIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1Rf
TlNTVFJJTkdfRVEoIlx1RkZGQyB3b3JsZCIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKKworICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZW1vdmVUZXh0UGxhY2Vob2xkZXI6cGxhY2Vob2xkZXIg
d2lsbEluc2VydFRleHQ6Tk9dOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFJl
cXVlc3RBZnRlcklubGluZVBsYWNlaG9sZGVyKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFw
cGx5U3R5bGUoQCI8c3BhbiBpZD0nd3JhcHBlcicgY29udGVudGVkaXRhYmxlPmhlbGxvIHdvcmxk
PC9zcGFuPiIpXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
Z2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24od3JhcHBlci5maXJzdENoaWxkLCA2KSJdOyAvLyBQ
bGFjZSBjdXJzb3IgYmVmb3JlICJ3b3JsZCIuCisKKyAgICBhdXRvKiBwbGFjZWhvbGRlciA9IFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTpDR1NpemVN
YWtlKDUsIDUpXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwocGxhY2Vob2xkZXIpOworCisgICAgYXV0
byAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0
Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0LCBVSVRleHRHcmFudWxhcml0eUNo
YXJhY3RlciwgMjAwKV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVD
VF9OU1NUUklOR19FUSgiaGVsbG8gIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBF
Q1RfTlNTVFJJTkdfRVEoIlx1RkZGQ3dvcmxkIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworCisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseVJlbW92ZVRleHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRl
ciB3aWxsSW5zZXJ0VGV4dDpOT107Cit9CisKK1RFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwg
UmVxdWVzdEJlZm9yZUJsb2NrUGxhY2Vob2xkZXIpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6
YXBwbHlTdHlsZShAIjxzcGFuIGlkPSd3cmFwcGVyJyBjb250ZW50ZWRpdGFibGU+aGVsbG8gd29y
bGQ8L3NwYW4+IildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbih3cmFwcGVyLmZpcnN0Q2hpbGQsIDUpIl07IC8v
IFBsYWNlIGN1cnNvciBhZnRlciAiaGVsbG8iLgorCisgICAgYXV0byogcGxhY2Vob2xkZXIgPSBb
d2ViVmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6Q0dTaXpl
TWFrZSgwLCA1KV07CisgICAgRVhQRUNUX05PVF9OVUxMKHBsYWNlaG9sZGVyKTsKKworICAgIGF1
dG8gKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4
dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCwgVUlUZXh0R3JhbnVsYXJpdHlD
aGFyYWN0ZXIsIDIwMCldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBF
Q1RfTlNTVFJJTkdfRVEoImhlbGxvIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBF
Q1RfTlNTVFJJTkdfRVEoIlx1RkZGQyB3b3JsZCIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKKwor
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZW1vdmVUZXh0UGxhY2Vob2xkZXI6cGxhY2Vob2xk
ZXIgd2lsbEluc2VydFRleHQ6Tk9dOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQs
IFJlcXVlc3RBZnRlckJsb2NrUGxhY2Vob2xkZXIpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6
YXBwbHlTdHlsZShAIjxzcGFuIGlkPSd3cmFwcGVyJyBjb250ZW50ZWRpdGFibGU+aGVsbG8gd29y
bGQ8L3NwYW4+IildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbih3cmFwcGVyLmZpcnN0Q2hpbGQsIDYpIl07IC8v
IFBsYWNlIGN1cnNvciBiZWZvcmUgIndvcmxkIi4KKworICAgIGF1dG8qIHBsYWNlaG9sZGVyID0g
W3dlYlZpZXcgc3luY2hyb25vdXNseUluc2VydFRleHRQbGFjZWhvbGRlcldpdGhTaXplOkNHU2l6
ZU1ha2UoMCwgNSldOworICAgIEVYUEVDVF9OT1RfTlVMTChwbGFjZWhvbGRlcik7CisKKyAgICBh
dXRvICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRl
eHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRleHQsIFVJVGV4dEdyYW51bGFyaXR5
Q2hhcmFjdGVyLCAyMDApXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQ
RUNUX05TU1RSSU5HX0VRKCJoZWxsbyIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQ
RUNUX05TU1RSSU5HX0VRKCJcdUZGRkN3b3JsZCIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKKwor
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZW1vdmVUZXh0UGxhY2Vob2xkZXI6cGxhY2Vob2xk
ZXIgd2lsbEluc2VydFRleHQ6Tk9dOworfQorCiAvLyBNQVJLOiBUZXN0cyB1c2luZyBzZW50ZW5j
ZSBncmFudWxhcml0eQogCiBjb25zdGV4cHIgTlNTdHJpbmcgKiBjb25zdCB0aHJlZVNlbnRlbmNl
c0V4YW1wbGUgPSBAIjxwIGlkPSd0ZXh0JyBjb250ZW50ZWRpdGFibGU+VGhlIGZpcnN0IHNlbnRl
bmNlLiBUaGUgc2Vjb25kIHNlbnRlbmNlLiBUaGUgdGhpcmQgc2VudGVuY2UuPC9wPiI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404311</attachid>
            <date>2020-07-14 17:46:04 -0700</date>
            <delta_ts>2020-07-14 17:52:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214331-20200714174604.patch</filename>
            <type>text/plain</type>
            <size>14753</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNzhhZjZiZTdmMTRmODgwYWEzMGEyYzZhMjcwMzllYWE0NDFlNmViLi42
MTFlNjJhOWQ1YzY2NmFkMmNjNWUwNmRmMTI2YWIzOGNlNGQ2YWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjAtMDctMTQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIHNob3VsZCByZXByZXNlbnQgYFRleHRQbGFjZWhvbGRlckVsZW1lbnRgIGFz
IGFuIGBOU1RleHRBdHRhY2htZW50Q2hhcmFjdGVyYCBpbnN0ZWFkIG9mIGEgYFxuYAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzMxCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NDc3OTU1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNob3VsZEVtaXRSZXBsYWNlbWVudEluc3RlYWRPZk5vZGUpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnNob3VsZEVtaXROZXdsaW5lc0JlZm9yZUFuZEFmdGVyTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnJlcHJlc2VudE5vZGVPZmZzZXRaZXJvKToK
KwogMjAyMC0wNy0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTXVsdGlwbGV4IHRoZSBISUQgYW5kIEdhbWVDb250cm9sbGVyIGdhbWVwYWQgcHJvdmlkZXJz
IG9uIE1hYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMjAxZmIwY2Q3MjE0ZWNkYjVkMzU2MTgwOWU1OTE3YmU2Yjg1
MzFhMy4uZjc5MjkyYjhiMzA2ZTEyZWM2ZTQ4NThhNjcxZmZkZmVlZGMwZGI2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAyMC0wNy0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgc2hvdWxkIHJlcHJlc2VudCBgVGV4dFBsYWNlaG9sZGVyRWxlbWVu
dGAgYXMgYW4gYE5TVGV4dEF0dGFjaG1lbnRDaGFyYWN0ZXJgIGluc3RlYWQgb2YgYSBgXG5gCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMzEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0Nzc5NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9T
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTpjb21w
bGV0aW9uSGFuZGxlcjpdKTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfcmVtb3ZlVGV4
dFBsYWNlaG9sZGVyOndpbGxJbnNlcnRUZXh0OmNvbXBsZXRpb25IYW5kbGVyOl0pOiBBZGRlZC4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlbW92ZVRleHRQbGFjZWhvbGRlcjp3aWxsSW5zZXJ0
VGV4dDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgRHJpdmUtYnk6IGVuc3VyZSB0aGF0
IHRoZSBgY29tcGxldGlvbkhhbmRsZXJgIGlzIGFsd2F5cyBjYWxsZWQuCisKIDIwMjAtMDctMDkg
IEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE11bHRpcGxleCB0
aGUgSElEIGFuZCBHYW1lQ29udHJvbGxlciBnYW1lcGFkIHByb3ZpZGVycyBvbiBNYWMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggNWJkY2U4OWNhNjU4MTFhZTA1
MDlmNGEwZWFjYmViM2M4MzA5YzNhNi4uNmJmZjRhODRiNzM5ZDgxNzZkNmJmMWU4NTdmOGU4MmNi
N2JiOTJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtNTgs
NiArNTgsNyBAQAogI2luY2x1ZGUgIlNpbXBsZUxpbmVMYXlvdXRSZXNvbHZlci5oIgogI2luY2x1
ZGUgIlRleHRCb3VuZGFyaWVzLmgiCiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmgiCisjaW5jbHVkZSAiVGV4dFBsYWNlaG9sZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlZpc2li
bGVQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgPHVuaWNv
ZGUvdW5vcm0yLmg+CkBAIC04MDMsNiArODA0LDExIEBAIHN0YXRpYyBib29sIGhhc0hlYWRlclRh
ZyhIVE1MRWxlbWVudCYgZWxlbWVudCkKICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGg2
VGFnKTsKIH0KIAorc3RhdGljIGJvb2wgc2hvdWxkRW1pdFJlcGxhY2VtZW50SW5zdGVhZE9mTm9k
ZShOb2RlJiBub2RlKQoreworICAgIHJldHVybiBpczxUZXh0UGxhY2Vob2xkZXJFbGVtZW50Pihu
b2RlKTsKK30KKwogc3RhdGljIGJvb2wgc2hvdWxkRW1pdE5ld2xpbmVzQmVmb3JlQW5kQWZ0ZXJO
b2RlKE5vZGUmIG5vZGUpCiB7CiAgICAgLy8gQmxvY2sgZmxvdyAodmVyc3VzIGlubGluZSBmbG93
KSBpcyByZXByZXNlbnRlZCBieSBoYXZpbmcKQEAgLTg0MCw3ICs4NDYsMTIgQEAgc3RhdGljIGJv
b2wgc2hvdWxkRW1pdE5ld2xpbmVzQmVmb3JlQW5kQWZ0ZXJOb2RlKE5vZGUmIG5vZGUpCiAgICAg
ICAgIGlmICh0YWJsZSAmJiAhdGFibGUtPmlzSW5saW5lKCkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9Ci0gICAgCisKKyAgICAvLyBQbGFjZWhvbGRlcnMgc2hvdWxkIGV2ZW50dWFs
bHkgZGlzYXBwZWFyLCBzbyB0cmVhdGluZyB0aGVtIGFzIGEgbGluZSBicmVhayBkb2Vzbid0IG1h
a2Ugc2Vuc2UKKyAgICAvLyBhcyB3aGVuIHRoZXkgYXJlIHJlbW92ZWQgdGhlIHRleHQgYWZ0ZXIg
aXQgaXMgY29tYmluZWQgd2l0aCB0aGUgdGV4dCBiZWZvcmUgaXQuCisgICAgaWYgKHNob3VsZEVt
aXRSZXBsYWNlbWVudEluc3RlYWRPZk5vZGUobm9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIHJldHVybiAhcmVuZGVyZXItPmlzSW5saW5lKCkKICAgICAgICAgJiYgaXM8UmVuZGVy
QmxvY2s+KCpyZW5kZXJlcikKICAgICAgICAgJiYgIXJlbmRlcmVyLT5pc0Zsb2F0aW5nT3JPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkKQEAgLTk5OCw2ICsxMDA5LDkgQEAgdm9pZCBUZXh0SXRlcmF0b3I6
OnJlcHJlc2VudE5vZGVPZmZzZXRaZXJvKCkKICAgICB9IGVsc2UgaWYgKHNob3VsZEVtaXRTcGFj
ZUJlZm9yZUFuZEFmdGVyTm9kZSgqbV9ub2RlKSkgewogICAgICAgICBpZiAoc2hvdWxkUmVwcmVz
ZW50Tm9kZU9mZnNldFplcm8oKSkKICAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJyAnLCAqbV9u
b2RlLT5wYXJlbnROb2RlKCksIG1fbm9kZSwgMCwgMCk7CisgICAgfSBlbHNlIGlmIChzaG91bGRF
bWl0UmVwbGFjZW1lbnRJbnN0ZWFkT2ZOb2RlKCptX25vZGUpKSB7CisgICAgICAgIGlmIChzaG91
bGRSZXByZXNlbnROb2RlT2Zmc2V0WmVybygpKQorICAgICAgICAgICAgZW1pdENoYXJhY3Rlcigw
eEZGRkMsICptX25vZGUtPnBhcmVudE5vZGUoKSwgbV9ub2RlLCAwLCAwKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYmE3ZTU0ZDA1
NTZjNDgzZjIyZTRhY2Y0YWNkMmI5M2Y1OWZiNzZkYi4uNGRiODZiNDI2Y2ExMzM3MGQ1ZDMyM2Jj
MmYxM2Y3ZGNkYTJiNTYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmgKQEAgLTcwNCw2ICs3MDQsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBVSVdL
R2VzdHVyZVR5cGUpIHsKIC0gKHZvaWQpc2VsZWN0UG9zaXRpb25BdFBvaW50OihDR1BvaW50KXBv
aW50IHdpdGhDb250ZXh0UmVxdWVzdDooVUlXS0RvY3VtZW50UmVxdWVzdCAqKXJlcXVlc3QgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJV0tEb2N1bWVudENvbnRleHQgKikpY29tcGxldGlv
bkhhbmRsZXI7CiAjZW5kaWYKIAorLSAodm9pZClpbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6
ZTooQ0dTaXplKXNpemUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJVGV4dFBsYWNlaG9s
ZGVyICopKWNvbXBsZXRpb25IYW5kbGVyCistICh2b2lkKXJlbW92ZVRleHRQbGFjZWhvbGRlcjoo
VUlUZXh0UGxhY2Vob2xkZXIgKilwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDooQk9PTCl3aWxs
SW5zZXJ0VGV4dCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhh
bmRsZXIKKwogLSAodm9pZCljaGFuZ2VTZWxlY3Rpb25XaXRoR2VzdHVyZUF0OihDR1BvaW50KXBv
aW50IHdpdGhHZXN0dXJlOihVSVdLR2VzdHVyZVR5cGUpZ2VzdHVyZVR5cGUgd2l0aFN0YXRlOihV
SUdlc3R1cmVSZWNvZ25pemVyU3RhdGUpc3RhdGU7CiAtICh2b2lkKWNoYW5nZVNlbGVjdGlvbldp
dGhUb3VjaEF0OihDR1BvaW50KXBvaW50IHdpdGhTZWxlY3Rpb25Ub3VjaDooVUlXS1NlbGVjdGlv
blRvdWNoKXRvdWNoIGJhc2VJc1N0YXJ0OihCT09MKWJhc2VJc1N0YXJ0IHdpdGhGbGFnczooVUlX
S1NlbGVjdGlvbkZsYWdzKWZsYWdzOwogLSAodm9pZCljaGFuZ2VTZWxlY3Rpb25XaXRoVG91Y2hl
c0Zyb206KENHUG9pbnQpZnJvbSB0bzooQ0dQb2ludCl0byB3aXRoR2VzdHVyZTooVUlXS0dlc3R1
cmVUeXBlKWdlc3R1cmVUeXBlIHdpdGhTdGF0ZTooVUlHZXN0dXJlUmVjb2duaXplclN0YXRlKWdl
c3R1cmVTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3Mv
V0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaAppbmRleCAxNGYzNGFiMjk3
ZGU2OGRlNmU2Y2ZkYmRlZjNmZTE1ZDRiMjU1NDY5Li5hNGRiMzBjZjAwMGEzOTNlNjBkYmExODEy
ZjI3ZTcyZTNkODcxYzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCkBAIC01Nyw2
ICs1Nyw4IEBACiAtICh2b2lkKV9kaWRGaW5pc2hUZXh0SW50ZXJhY3Rpb25JblRleHRJbnB1dENv
bnRleHQ6KF9XS1RleHRJbnB1dENvbnRleHQgKiljb250ZXh0OwogLSAodm9pZClfcmVxdWVzdERv
Y3VtZW50Q29udGV4dDooVUlXS0RvY3VtZW50UmVxdWVzdCAqKXJlcXVlc3QgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKFVJV0tEb2N1bWVudENvbnRleHQgKikpY29tcGxldGlvbkhhbmRsZXI7
CiAtICh2b2lkKV9hZGp1c3RTZWxlY3Rpb25XaXRoRGVsdGE6KE5TUmFuZ2UpZGVsdGFSYW5nZSBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXI7CistICh2
b2lkKV9pbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTooQ0dTaXplKXNpemUgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKFVJVGV4dFBsYWNlaG9sZGVyICopKWNvbXBsZXRpb25IYW5kbGVy
OworLSAodm9pZClfcmVtb3ZlVGV4dFBsYWNlaG9sZGVyOihVSVRleHRQbGFjZWhvbGRlciAqKXBs
YWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0OihCT09MKXdpbGxJbnNlcnRUZXh0IGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIAogLSAodm9pZClzZXRU
aW1lUGlja2VyVmFsdWVUb0hvdXI6KE5TSW50ZWdlcilob3VyIG1pbnV0ZTooTlNJbnRlZ2VyKW1p
bnV0ZTsKIC0gKGRvdWJsZSl0aW1lUGlja2VyVmFsdWVIb3VyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCmluZGV4IDQw
NDliNmJlOGE4N2UwYTVhYTEyODE0YWFhZWRkNjdkMjY3ZjFmYzMuLmZkMzM3Y2VjYjIxOGZhMjkz
ODM1OGI5OGI0MmZlN2Q2ZGI1MDM0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KQEAgLTEwNSw2ICsxMDUsMTYg
QEAgLSAoQk9PTClfbWF5Q29udGFpbkVkaXRhYmxlRWxlbWVudHNJblJlY3Q6KENHUmVjdClyZWN0
CiAjZW5kaWYKIH0KIAorLSAodm9pZClfaW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6KENH
U2l6ZSlzaXplIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShVSVRleHRQbGFjZWhvbGRlciAq
KSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIFtfY29udGVudFZpZXcgaW5zZXJ0VGV4dFBsYWNl
aG9sZGVyV2l0aFNpemU6c2l6ZSBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07
Cit9CisKKy0gKHZvaWQpX3JlbW92ZVRleHRQbGFjZWhvbGRlcjooVUlUZXh0UGxhY2Vob2xkZXIg
KilwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDooQk9PTCl3aWxsSW5zZXJ0VGV4dCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBbX2Nv
bnRlbnRWaWV3IHJlbW92ZVRleHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4
dDp3aWxsSW5zZXJ0VGV4dCBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07Cit9
CisKIC0gKHZvaWQpa2V5Ym9hcmRBY2Nlc3NvcnlCYXJOZXh0CiB7CiAgICAgW19jb250ZW50Vmll
dyBhY2Nlc3NvcnlUYWI6WUVTXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDU4MTIwODY3ZTA1M2M4Nzcx
MDA2NzBmYmQxNTU0YzI3YjdhYmZjZmUuLjgwYzZlNTViYzkzNGRlYTFmMTZjZGViYmEwYmQxOTBh
ZWI2ZDBhZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNzkxMCw2ICs3OTEwLDggQEAgLSAodm9pZCly
ZW1vdmVUZXh0UGxhY2Vob2xkZXI6KFVJVGV4dFBsYWNlaG9sZGVyICopcGxhY2Vob2xkZXIgd2ls
bEluc2VydFRleHQ6KEIKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHdpbGxJ
bnNlcnRUZXh0LiBTZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDg3NDc+LgogICAgIGlmIChhdXRvKiB3a1RleHRQbGFjZWhvbGRlciA9IGR5bmFtaWNfb2JqY19j
YXN0PFdLVGV4dFBsYWNlaG9sZGVyPihwbGFjZWhvbGRlcikpCiAgICAgICAgIF9wYWdlLT5yZW1v
dmVUZXh0UGxhY2Vob2xkZXIod2tUZXh0UGxhY2Vob2xkZXIuZWxlbWVudENvbnRleHQsIG1ha2VC
bG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKIH0KIAogc3RhdGljIFZlY3RvcjxXZWJDb3JlOjpJbnRTaXplPiBzaXplc09m
UGxhY2Vob2xkZXJFbGVtZW50c1RvSW5zZXJ0V2hlbkRyb3BwaW5nSXRlbXMoTlNBcnJheTxOU0l0
ZW1Qcm92aWRlciAqPiAqaXRlbVByb3ZpZGVycykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2YmRhNzNiM2UzYTcxYTA5MTRkODFjNzhjYzM3ZjU2
MDhhOGIxYmI4Li5kOTk1NWY2Mjg1MTQ4MTYxNGQxY2RjZDEwYjY3YTU0M2RkYmIyNzEzIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMjAtMDctMTQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIHNob3VsZCByZXByZXNlbnQgYFRleHRQbGFjZWhvbGRlckVsZW1lbnRgIGFzIGFuIGBO
U1RleHRBdHRhY2htZW50Q2hhcmFjdGVyYCBpbnN0ZWFkIG9mIGEgYFxuYAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzMxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82NDc3OTU1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRF
ZGl0aW5nQ29udGV4dC5tbToKKyAgICAgICAgKC1bVGVzdFdLV2ViVmlldyBzeW5jaHJvbm91c2x5
SW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6XSk6IEFkZGVkLgorICAgICAgICAoLVtUZXN0
V0tXZWJWaWV3IHN5bmNocm9ub3VzbHlSZW1vdmVUZXh0UGxhY2Vob2xkZXI6d2lsbEluc2VydFRl
eHQ6XSk6IEFkZGVkLgorICAgICAgICAoVEVTVC5Eb2N1bWVudEVkaXRpbmdDb250ZXh0LlJlcXVl
c3RCZWZvcmVJbmxpbmVQbGFjZWhvbGRlcik6IEFkZGVkLgorICAgICAgICAoVEVTVC5Eb2N1bWVu
dEVkaXRpbmdDb250ZXh0LlJlcXVlc3RBZnRlcklubGluZVBsYWNlaG9sZGVyKTogQWRkZWQuCisg
ICAgICAgIChURVNULkRvY3VtZW50RWRpdGluZ0NvbnRleHQuUmVxdWVzdEJlZm9yZUJsb2NrUGxh
Y2Vob2xkZXIpOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5S
ZXF1ZXN0QWZ0ZXJCbG9ja1BsYWNlaG9sZGVyKTogQWRkZWQuCisKIDIwMjAtMDctMDkgIEFuZHJl
cyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgYWNjZXNz
aWJpbGl0eS9NYWMvc2VsZWN0ZWQtdmlzaWJsZS1wb3NpdGlvbi1yYW5nZS5odG1sIHRpbWUtZGV0
ZXJtaW5pc3RpYy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQppbmRleCAzNmMxMzcyMTdh
ZjZmYzg1ZmY0YzJkYzI5NWJkYjZhNTQzMDkzNDJkLi5kNzg3MzMxZWE1YzcwMGJlZWU4OGQyMDY4
MGJhZTVhMzcyMTU3OTVmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCkBAIC0xNTEs
NiArMTUxLDI3IEBAIC0gKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqKXN5bmNocm9u
b3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6CiAgICAgcmV0dXJuIHJlc3VsdC5h
dXRvcmVsZWFzZSgpOwogfQogCistIChVSVRleHRQbGFjZWhvbGRlciAqKXN5bmNocm9ub3VzbHlJ
bnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTooQ0dTaXplKXNpemUKK3sKKyAgICBfX2Jsb2Nr
IGJvb2wgZmluaXNoZWQgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIFJldGFpblB0cjxVSVRleHRQbGFj
ZWhvbGRlcj4gcmVzdWx0OworICAgIFtzZWxmIF9pbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6
ZTpzaXplIGNvbXBsZXRpb25IYW5kbGVyOl4oVUlUZXh0UGxhY2Vob2xkZXIgKnBsYWNlaG9sZGVy
KSB7CisgICAgICAgIHJlc3VsdCA9IHBsYWNlaG9sZGVyOworICAgICAgICBmaW5pc2hlZCA9IHRy
dWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7Cisg
ICAgcmV0dXJuIHJlc3VsdC5hdXRvcmVsZWFzZSgpOworfQorCistICh2b2lkKXN5bmNocm9ub3Vz
bHlSZW1vdmVUZXh0UGxhY2Vob2xkZXI6KFVJVGV4dFBsYWNlaG9sZGVyICopcGxhY2Vob2xkZXIg
d2lsbEluc2VydFRleHQ6KEJPT0wpd2lsbEluc2VydFRleHQKK3sKKyAgICBfX2Jsb2NrIGJvb2wg
ZmluaXNoZWQgPSBmYWxzZTsKKyAgICBbc2VsZiBfcmVtb3ZlVGV4dFBsYWNlaG9sZGVyOnBsYWNl
aG9sZGVyIHdpbGxJbnNlcnRUZXh0OndpbGxJbnNlcnRUZXh0IGNvbXBsZXRpb25IYW5kbGVyOl4o
dm9pZCkgeworICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7Cit9CisKIEBlbmQKIAogc3RhdGljIE5TU3RyaW5n
ICphcHBseVN0eWxlKE5TU3RyaW5nICpodG1sU3RyaW5nKQpAQCAtODMzLDYgKzg1NCw3NCBAQCBU
RVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFJlcXVlc3RUaHJlZVdvcmRzQXJvdW5kU2VsZWN0
aW9uKQogICAgIEVYUEVDVF9OU1NUUklOR19FUSgiIG92ZXIgdGhlIGxhenkiLCBjb250ZXh0LmNv
bnRleHRBZnRlcik7CiB9CiAKK1RFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdEJl
Zm9yZUlubGluZVBsYWNlaG9sZGVyKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5
bGUoQCI8c3BhbiBpZD0nd3JhcHBlcicgY29udGVudGVkaXRhYmxlPmhlbGxvIHdvcmxkPC9zcGFu
PiIpXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0U2Vs
ZWN0aW9uKCkuc2V0UG9zaXRpb24od3JhcHBlci5maXJzdENoaWxkLCA1KSJdOyAvLyBQbGFjZSBj
dXJzb3IgYWZ0ZXIgImhlbGxvIi4KKworICAgIGF1dG8qIHBsYWNlaG9sZGVyID0gW3dlYlZpZXcg
c3luY2hyb25vdXNseUluc2VydFRleHRQbGFjZWhvbGRlcldpdGhTaXplOkNHU2l6ZU1ha2UoNSwg
NSldOworICAgIEVYUEVDVF9OT1RfTlVMTChwbGFjZWhvbGRlcik7CisKKyAgICBhdXRvICpjb250
ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJl
cXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRleHQsIFVJVGV4dEdyYW51bGFyaXR5Q2hhcmFjdGVy
LCAyMDApXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RS
SU5HX0VRKCJoZWxsbyIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05TU1RS
SU5HX0VRKCJcdUZGRkMgd29ybGQiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7CisKKyAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5UmVtb3ZlVGV4dFBsYWNlaG9sZGVyOnBsYWNlaG9sZGVyIHdpbGxJ
bnNlcnRUZXh0Ok5PXTsKK30KKworVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBSZXF1ZXN0
QWZ0ZXJJbmxpbmVQbGFjZWhvbGRlcikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0
eWxlKEAiPHNwYW4gaWQ9J3dyYXBwZXInIGNvbnRlbnRlZGl0YWJsZT5oZWxsbyB3b3JsZDwvc3Bh
bj4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNl
bGVjdGlvbigpLnNldFBvc2l0aW9uKHdyYXBwZXIuZmlyc3RDaGlsZCwgNikiXTsgLy8gUGxhY2Ug
Y3Vyc29yIGJlZm9yZSAid29ybGQiLgorCisgICAgYXV0byogcGxhY2Vob2xkZXIgPSBbd2ViVmll
dyBzeW5jaHJvbm91c2x5SW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6Q0dTaXplTWFrZSg1
LCA1KV07CisgICAgRVhQRUNUX05PVF9OVUxMKHBsYWNlaG9sZGVyKTsKKworICAgIGF1dG8gKmNv
bnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtl
UmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCwgVUlUZXh0R3JhbnVsYXJpdHlDaGFyYWN0
ZXIsIDIwMCldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNT
VFJJTkdfRVEoImhlbGxvICIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05T
U1RSSU5HX0VRKCJcdUZGRkN3b3JsZCIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKKworICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlSZW1vdmVUZXh0UGxhY2Vob2xkZXI6cGxhY2Vob2xkZXIgd2ls
bEluc2VydFRleHQ6Tk9dOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFJlcXVl
c3RCZWZvcmVCbG9ja1BsYWNlaG9sZGVyKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAw
LCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5
U3R5bGUoQCI8c3BhbiBpZD0nd3JhcHBlcicgY29udGVudGVkaXRhYmxlPmhlbGxvIHdvcmxkPC9z
cGFuPiIpXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0
U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24od3JhcHBlci5maXJzdENoaWxkLCA1KSJdOyAvLyBQbGFj
ZSBjdXJzb3IgYWZ0ZXIgImhlbGxvIi4KKworICAgIGF1dG8qIHBsYWNlaG9sZGVyID0gW3dlYlZp
ZXcgc3luY2hyb25vdXNseUluc2VydFRleHRQbGFjZWhvbGRlcldpdGhTaXplOkNHU2l6ZU1ha2Uo
MCwgNSldOworICAgIEVYUEVDVF9OT1RfTlVMTChwbGFjZWhvbGRlcik7CisKKyAgICBhdXRvICpj
b250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFr
ZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRleHQsIFVJVGV4dEdyYW51bGFyaXR5Q2hhcmFj
dGVyLCAyMDApXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05T
U1RSSU5HX0VRKCJoZWxsbyIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNUX05T
U1RSSU5HX0VRKCJcdUZGRkMgd29ybGQiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7CisKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5UmVtb3ZlVGV4dFBsYWNlaG9sZGVyOnBsYWNlaG9sZGVyIHdp
bGxJbnNlcnRUZXh0Ok5PXTsKK30KKworVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBSZXF1
ZXN0QWZ0ZXJCbG9ja1BsYWNlaG9sZGVyKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAw
LCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5
U3R5bGUoQCI8c3BhbiBpZD0nd3JhcHBlcicgY29udGVudGVkaXRhYmxlPmhlbGxvIHdvcmxkPC9z
cGFuPiIpXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0
U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24od3JhcHBlci5maXJzdENoaWxkLCA2KSJdOyAvLyBQbGFj
ZSBjdXJzb3IgYmVmb3JlICJ3b3JsZCIuCisKKyAgICBhdXRvKiBwbGFjZWhvbGRlciA9IFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlJbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTpDR1NpemVNYWtl
KDAsIDUpXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwocGxhY2Vob2xkZXIpOworCisgICAgYXV0byAq
Y29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1h
a2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0LCBVSVRleHRHcmFudWxhcml0eUNoYXJh
Y3RlciwgMjAwKV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9O
U1NUUklOR19FUSgiaGVsbG8iLCBjb250ZXh0LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9O
U1NUUklOR19FUSgiXHVGRkZDd29ybGQiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7CisKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5UmVtb3ZlVGV4dFBsYWNlaG9sZGVyOnBsYWNlaG9sZGVyIHdp
bGxJbnNlcnRUZXh0Ok5PXTsKK30KKwogLy8gTUFSSzogVGVzdHMgdXNpbmcgc2VudGVuY2UgZ3Jh
bnVsYXJpdHkKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3QgdGhyZWVTZW50ZW5jZXNFeGFt
cGxlID0gQCI8cCBpZD0ndGV4dCcgY29udGVudGVkaXRhYmxlPlRoZSBmaXJzdCBzZW50ZW5jZS4g
VGhlIHNlY29uZCBzZW50ZW5jZS4gVGhlIHRoaXJkIHNlbnRlbmNlLjwvcD4iOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404312</attachid>
            <date>2020-07-14 17:52:22 -0700</date>
            <delta_ts>2020-07-14 18:49:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214331-20200714175221.patch</filename>
            <type>text/plain</type>
            <size>14755</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNzhhZjZiZTdmMTRmODgwYWEzMGEyYzZhMjcwMzllYWE0NDFlNmViLi42
MTFlNjJhOWQ1YzY2NmFkMmNjNWUwNmRmMTI2YWIzOGNlNGQ2YWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjAtMDctMTQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIHNob3VsZCByZXByZXNlbnQgYFRleHRQbGFjZWhvbGRlckVsZW1lbnRgIGFz
IGFuIGBOU1RleHRBdHRhY2htZW50Q2hhcmFjdGVyYCBpbnN0ZWFkIG9mIGEgYFxuYAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzMxCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NDc3OTU1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNob3VsZEVtaXRSZXBsYWNlbWVudEluc3RlYWRPZk5vZGUpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnNob3VsZEVtaXROZXdsaW5lc0JlZm9yZUFuZEFmdGVyTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnJlcHJlc2VudE5vZGVPZmZzZXRaZXJvKToK
KwogMjAyMC0wNy0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTXVsdGlwbGV4IHRoZSBISUQgYW5kIEdhbWVDb250cm9sbGVyIGdhbWVwYWQgcHJvdmlkZXJz
IG9uIE1hYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMjAxZmIwY2Q3MjE0ZWNkYjVkMzU2MTgwOWU1OTE3YmU2Yjg1
MzFhMy4uZjc5MjkyYjhiMzA2ZTEyZWM2ZTQ4NThhNjcxZmZkZmVlZGMwZGI2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAyMC0wNy0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgc2hvdWxkIHJlcHJlc2VudCBgVGV4dFBsYWNlaG9sZGVyRWxlbWVu
dGAgYXMgYW4gYE5TVGV4dEF0dGFjaG1lbnRDaGFyYWN0ZXJgIGluc3RlYWQgb2YgYSBgXG5gCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMzEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0Nzc5NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9T
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTpjb21w
bGV0aW9uSGFuZGxlcjpdKTogQWRkZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfcmVtb3ZlVGV4
dFBsYWNlaG9sZGVyOndpbGxJbnNlcnRUZXh0OmNvbXBsZXRpb25IYW5kbGVyOl0pOiBBZGRlZC4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlbW92ZVRleHRQbGFjZWhvbGRlcjp3aWxsSW5zZXJ0
VGV4dDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgRHJpdmUtYnk6IGVuc3VyZSB0aGF0
IHRoZSBgY29tcGxldGlvbkhhbmRsZXJgIGlzIGFsd2F5cyBjYWxsZWQuCisKIDIwMjAtMDctMDkg
IEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE11bHRpcGxleCB0
aGUgSElEIGFuZCBHYW1lQ29udHJvbGxlciBnYW1lcGFkIHByb3ZpZGVycyBvbiBNYWMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKaW5kZXggNWJkY2U4OWNhNjU4MTFhZTA1
MDlmNGEwZWFjYmViM2M4MzA5YzNhNi4uNmJmZjRhODRiNzM5ZDgxNzZkNmJmMWU4NTdmOGU4MmNi
N2JiOTJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtNTgs
NiArNTgsNyBAQAogI2luY2x1ZGUgIlNpbXBsZUxpbmVMYXlvdXRSZXNvbHZlci5oIgogI2luY2x1
ZGUgIlRleHRCb3VuZGFyaWVzLmgiCiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRz
LmgiCisjaW5jbHVkZSAiVGV4dFBsYWNlaG9sZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlZpc2li
bGVQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgPHVuaWNv
ZGUvdW5vcm0yLmg+CkBAIC04MDMsNiArODA0LDExIEBAIHN0YXRpYyBib29sIGhhc0hlYWRlclRh
ZyhIVE1MRWxlbWVudCYgZWxlbWVudCkKICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGg2
VGFnKTsKIH0KIAorc3RhdGljIGJvb2wgc2hvdWxkRW1pdFJlcGxhY2VtZW50SW5zdGVhZE9mTm9k
ZShOb2RlJiBub2RlKQoreworICAgIHJldHVybiBpczxUZXh0UGxhY2Vob2xkZXJFbGVtZW50Pihu
b2RlKTsKK30KKwogc3RhdGljIGJvb2wgc2hvdWxkRW1pdE5ld2xpbmVzQmVmb3JlQW5kQWZ0ZXJO
b2RlKE5vZGUmIG5vZGUpCiB7CiAgICAgLy8gQmxvY2sgZmxvdyAodmVyc3VzIGlubGluZSBmbG93
KSBpcyByZXByZXNlbnRlZCBieSBoYXZpbmcKQEAgLTg0MCw3ICs4NDYsMTIgQEAgc3RhdGljIGJv
b2wgc2hvdWxkRW1pdE5ld2xpbmVzQmVmb3JlQW5kQWZ0ZXJOb2RlKE5vZGUmIG5vZGUpCiAgICAg
ICAgIGlmICh0YWJsZSAmJiAhdGFibGUtPmlzSW5saW5lKCkpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9Ci0gICAgCisKKyAgICAvLyBQbGFjZWhvbGRlcnMgc2hvdWxkIGV2ZW50dWFs
bHkgZGlzYXBwZWFyLCBzbyB0cmVhdGluZyB0aGVtIGFzIGEgbGluZSBicmVhayBkb2Vzbid0IG1h
a2Ugc2Vuc2UKKyAgICAvLyBhcyB3aGVuIHRoZXkgYXJlIHJlbW92ZWQgdGhlIHRleHQgYWZ0ZXIg
aXQgaXMgY29tYmluZWQgd2l0aCB0aGUgdGV4dCBiZWZvcmUgaXQuCisgICAgaWYgKHNob3VsZEVt
aXRSZXBsYWNlbWVudEluc3RlYWRPZk5vZGUobm9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIHJldHVybiAhcmVuZGVyZXItPmlzSW5saW5lKCkKICAgICAgICAgJiYgaXM8UmVuZGVy
QmxvY2s+KCpyZW5kZXJlcikKICAgICAgICAgJiYgIXJlbmRlcmVyLT5pc0Zsb2F0aW5nT3JPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkKQEAgLTk5OCw2ICsxMDA5LDkgQEAgdm9pZCBUZXh0SXRlcmF0b3I6
OnJlcHJlc2VudE5vZGVPZmZzZXRaZXJvKCkKICAgICB9IGVsc2UgaWYgKHNob3VsZEVtaXRTcGFj
ZUJlZm9yZUFuZEFmdGVyTm9kZSgqbV9ub2RlKSkgewogICAgICAgICBpZiAoc2hvdWxkUmVwcmVz
ZW50Tm9kZU9mZnNldFplcm8oKSkKICAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJyAnLCAqbV9u
b2RlLT5wYXJlbnROb2RlKCksIG1fbm9kZSwgMCwgMCk7CisgICAgfSBlbHNlIGlmIChzaG91bGRF
bWl0UmVwbGFjZW1lbnRJbnN0ZWFkT2ZOb2RlKCptX25vZGUpKSB7CisgICAgICAgIGlmIChzaG91
bGRSZXByZXNlbnROb2RlT2Zmc2V0WmVybygpKQorICAgICAgICAgICAgZW1pdENoYXJhY3Rlcigw
eEZGRkMsICptX25vZGUtPnBhcmVudE5vZGUoKSwgbV9ub2RlLCAwLCAwKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYmE3ZTU0ZDA1
NTZjNDgzZjIyZTRhY2Y0YWNkMmI5M2Y1OWZiNzZkYi4uNTIzYWQyY2ZhMTVlYzA5NzA3ZmU3MzEx
YzAyYmQ1NTQ0YjBjMTA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmgKQEAgLTcwNCw2ICs3MDQsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBVSVdL
R2VzdHVyZVR5cGUpIHsKIC0gKHZvaWQpc2VsZWN0UG9zaXRpb25BdFBvaW50OihDR1BvaW50KXBv
aW50IHdpdGhDb250ZXh0UmVxdWVzdDooVUlXS0RvY3VtZW50UmVxdWVzdCAqKXJlcXVlc3QgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJV0tEb2N1bWVudENvbnRleHQgKikpY29tcGxldGlv
bkhhbmRsZXI7CiAjZW5kaWYKIAorLSAodm9pZClpbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6
ZTooQ0dTaXplKXNpemUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJVGV4dFBsYWNlaG9s
ZGVyICopKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClyZW1vdmVUZXh0UGxhY2Vob2xkZXI6
KFVJVGV4dFBsYWNlaG9sZGVyICopcGxhY2Vob2xkZXIgd2lsbEluc2VydFRleHQ6KEJPT0wpd2ls
bEluc2VydFRleHQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyOworCiAtICh2b2lkKWNoYW5nZVNlbGVjdGlvbldpdGhHZXN0dXJlQXQ6KENHUG9pbnQp
cG9pbnQgd2l0aEdlc3R1cmU6KFVJV0tHZXN0dXJlVHlwZSlnZXN0dXJlVHlwZSB3aXRoU3RhdGU6
KFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSlzdGF0ZTsKIC0gKHZvaWQpY2hhbmdlU2VsZWN0aW9u
V2l0aFRvdWNoQXQ6KENHUG9pbnQpcG9pbnQgd2l0aFNlbGVjdGlvblRvdWNoOihVSVdLU2VsZWN0
aW9uVG91Y2gpdG91Y2ggYmFzZUlzU3RhcnQ6KEJPT0wpYmFzZUlzU3RhcnQgd2l0aEZsYWdzOihV
SVdLU2VsZWN0aW9uRmxhZ3MpZmxhZ3M7CiAtICh2b2lkKWNoYW5nZVNlbGVjdGlvbldpdGhUb3Vj
aGVzRnJvbTooQ0dQb2ludClmcm9tIHRvOihDR1BvaW50KXRvIHdpdGhHZXN0dXJlOihVSVdLR2Vz
dHVyZVR5cGUpZ2VzdHVyZVR5cGUgd2l0aFN0YXRlOihVSUdlc3R1cmVSZWNvZ25pemVyU3RhdGUp
Z2VzdHVyZVN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCmluZGV4IDE0ZjM0YWIy
OTdkZTY4ZGU2ZTZjZmRiZGVmM2ZlMTVkNGIyNTU0NjkuLmE0ZGIzMGNmMDAwYTM5M2U2MGRiYTE4
MTJmMjdlNzJlM2Q4NzFjMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKQEAgLTU3
LDYgKzU3LDggQEAKIC0gKHZvaWQpX2RpZEZpbmlzaFRleHRJbnRlcmFjdGlvbkluVGV4dElucHV0
Q29udGV4dDooX1dLVGV4dElucHV0Q29udGV4dCAqKWNvbnRleHQ7CiAtICh2b2lkKV9yZXF1ZXN0
RG9jdW1lbnRDb250ZXh0OihVSVdLRG9jdW1lbnRSZXF1ZXN0ICopcmVxdWVzdCBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikoVUlXS0RvY3VtZW50Q29udGV4dCAqKSljb21wbGV0aW9uSGFuZGxl
cjsKIC0gKHZvaWQpX2FkanVzdFNlbGVjdGlvbldpdGhEZWx0YTooTlNSYW5nZSlkZWx0YVJhbmdl
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKKy0g
KHZvaWQpX2luc2VydFRleHRQbGFjZWhvbGRlcldpdGhTaXplOihDR1NpemUpc2l6ZSBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoVUlUZXh0UGxhY2Vob2xkZXIgKikpY29tcGxldGlvbkhhbmRs
ZXI7CistICh2b2lkKV9yZW1vdmVUZXh0UGxhY2Vob2xkZXI6KFVJVGV4dFBsYWNlaG9sZGVyICop
cGxhY2Vob2xkZXIgd2lsbEluc2VydFRleHQ6KEJPT0wpd2lsbEluc2VydFRleHQgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogCiAtICh2b2lkKXNl
dFRpbWVQaWNrZXJWYWx1ZVRvSG91cjooTlNJbnRlZ2VyKWhvdXIgbWludXRlOihOU0ludGVnZXIp
bWludXRlOwogLSAoZG91YmxlKXRpbWVQaWNrZXJWYWx1ZUhvdXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5kZXgg
NDA0OWI2YmU4YTg3ZTBhNWFhMTI4MTRhYWFlZGQ2N2QyNjdmMWZjMy4uZmQzMzdjZWNiMjE4ZmEy
OTM4MzU4Yjk4YjQyZmU3ZDZkYjUwMzRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAtMTA1LDYgKzEwNSwx
NiBAQCAtIChCT09MKV9tYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdDooQ0dSZWN0KXJl
Y3QKICNlbmRpZgogfQogCistICh2b2lkKV9pbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZToo
Q0dTaXplKXNpemUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJVGV4dFBsYWNlaG9sZGVy
ICopKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgW19jb250ZW50VmlldyBpbnNlcnRUZXh0UGxh
Y2Vob2xkZXJXaXRoU2l6ZTpzaXplIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVy
XTsKK30KKworLSAodm9pZClfcmVtb3ZlVGV4dFBsYWNlaG9sZGVyOihVSVRleHRQbGFjZWhvbGRl
ciAqKXBsYWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0OihCT09MKXdpbGxJbnNlcnRUZXh0IGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIFtf
Y29udGVudFZpZXcgcmVtb3ZlVGV4dFBsYWNlaG9sZGVyOnBsYWNlaG9sZGVyIHdpbGxJbnNlcnRU
ZXh0OndpbGxJbnNlcnRUZXh0IGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsK
K30KKwogLSAodm9pZClrZXlib2FyZEFjY2Vzc29yeUJhck5leHQKIHsKICAgICBbX2NvbnRlbnRW
aWV3IGFjY2Vzc29yeVRhYjpZRVNdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNTgxMjA4NjdlMDUzYzg3
NzEwMDY3MGZiZDE1NTRjMjdiN2FiZmNmZS4uODBjNmU1NWJjOTM0ZGVhMWYxNmNkZWJiYTBiZDE5
MGFlYjZkMGFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC03OTEwLDYgKzc5MTAsOCBAQCAtICh2b2lk
KXJlbW92ZVRleHRQbGFjZWhvbGRlcjooVUlUZXh0UGxhY2Vob2xkZXIgKilwbGFjZWhvbGRlciB3
aWxsSW5zZXJ0VGV4dDooQgogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Igd2ls
bEluc2VydFRleHQuIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODc0Nz4uCiAgICAgaWYgKGF1dG8qIHdrVGV4dFBsYWNlaG9sZGVyID0gZHluYW1pY19vYmpj
X2Nhc3Q8V0tUZXh0UGxhY2Vob2xkZXI+KHBsYWNlaG9sZGVyKSkKICAgICAgICAgX3BhZ2UtPnJl
bW92ZVRleHRQbGFjZWhvbGRlcih3a1RleHRQbGFjZWhvbGRlci5lbGVtZW50Q29udGV4dCwgbWFr
ZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwogfQogCiBzdGF0aWMgVmVjdG9yPFdlYkNvcmU6OkludFNpemU+IHNpemVz
T2ZQbGFjZWhvbGRlckVsZW1lbnRzVG9JbnNlcnRXaGVuRHJvcHBpbmdJdGVtcyhOU0FycmF5PE5T
SXRlbVByb3ZpZGVyICo+ICppdGVtUHJvdmlkZXJzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZiZGE3M2IzZTNhNzFhMDkxNGQ4MWM3OGNjMzdm
NTYwOGE4YjFiYjguLmQ5OTU1ZjYyODUxNDgxNjE0ZDFjZGNkMTBiNjdhNTQzZGRiYjI3MTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAyMC0wNy0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisK
KyAgICAgICAgc2hvdWxkIHJlcHJlc2VudCBgVGV4dFBsYWNlaG9sZGVyRWxlbWVudGAgYXMgYW4g
YE5TVGV4dEF0dGFjaG1lbnRDaGFyYWN0ZXJgIGluc3RlYWQgb2YgYSBgXG5gCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzY0Nzc5NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVu
dEVkaXRpbmdDb250ZXh0Lm1tOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IHN5bmNocm9ub3Vz
bHlJbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTpdKTogQWRkZWQuCisgICAgICAgICgtW1Rl
c3RXS1dlYlZpZXcgc3luY2hyb25vdXNseVJlbW92ZVRleHRQbGFjZWhvbGRlcjp3aWxsSW5zZXJ0
VGV4dDpdKTogQWRkZWQuCisgICAgICAgIChURVNULkRvY3VtZW50RWRpdGluZ0NvbnRleHQuUmVx
dWVzdEJlZm9yZUlubGluZVBsYWNlaG9sZGVyKTogQWRkZWQuCisgICAgICAgIChURVNULkRvY3Vt
ZW50RWRpdGluZ0NvbnRleHQuUmVxdWVzdEFmdGVySW5saW5lUGxhY2Vob2xkZXIpOiBBZGRlZC4K
KyAgICAgICAgKFRFU1QuRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5SZXF1ZXN0QmVmb3JlQmxvY2tQ
bGFjZWhvbGRlcik6IEFkZGVkLgorICAgICAgICAoVEVTVC5Eb2N1bWVudEVkaXRpbmdDb250ZXh0
LlJlcXVlc3RBZnRlckJsb2NrUGxhY2Vob2xkZXIpOiBBZGRlZC4KKwogMjAyMC0wNy0wOSAgQW5k
cmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBhY2Nl
c3NpYmlsaXR5L01hYy9zZWxlY3RlZC12aXNpYmxlLXBvc2l0aW9uLXJhbmdlLmh0bWwgdGltZS1k
ZXRlcm1pbmlzdGljLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCmluZGV4IDM2YzEzNzIx
N2FmNmZjODVmZjRjMmRjMjk1YmRiNmE1NDMwOTM0MmQuLmQ3ODczMzFlYTVjNzAwYmVlZTg4ZDIw
NjgwYmFlNWEzNzIxNTc5NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KQEAgLTE1
MSw2ICsxNTEsMjcgQEAgLSAoTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0ICo+ICopc3luY2hy
b25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDoKICAgICByZXR1cm4gcmVzdWx0
LmF1dG9yZWxlYXNlKCk7CiB9CiAKKy0gKFVJVGV4dFBsYWNlaG9sZGVyICopc3luY2hyb25vdXNs
eUluc2VydFRleHRQbGFjZWhvbGRlcldpdGhTaXplOihDR1NpemUpc2l6ZQoreworICAgIF9fYmxv
Y2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIF9fYmxvY2sgUmV0YWluUHRyPFVJVGV4dFBs
YWNlaG9sZGVyPiByZXN1bHQ7CisgICAgW3NlbGYgX2luc2VydFRleHRQbGFjZWhvbGRlcldpdGhT
aXplOnNpemUgY29tcGxldGlvbkhhbmRsZXI6XihVSVRleHRQbGFjZWhvbGRlciAqcGxhY2Vob2xk
ZXIpIHsKKyAgICAgICAgcmVzdWx0ID0gcGxhY2Vob2xkZXI7CisgICAgICAgIGZpbmlzaGVkID0g
dHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsK
KyAgICByZXR1cm4gcmVzdWx0LmF1dG9yZWxlYXNlKCk7Cit9CisKKy0gKHZvaWQpc3luY2hyb25v
dXNseVJlbW92ZVRleHRQbGFjZWhvbGRlcjooVUlUZXh0UGxhY2Vob2xkZXIgKilwbGFjZWhvbGRl
ciB3aWxsSW5zZXJ0VGV4dDooQk9PTCl3aWxsSW5zZXJ0VGV4dAoreworICAgIF9fYmxvY2sgYm9v
bCBmaW5pc2hlZCA9IGZhbHNlOworICAgIFtzZWxmIF9yZW1vdmVUZXh0UGxhY2Vob2xkZXI6cGxh
Y2Vob2xkZXIgd2lsbEluc2VydFRleHQ6d2lsbEluc2VydFRleHQgY29tcGxldGlvbkhhbmRsZXI6
Xih2b2lkKSB7CisgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkKTsKK30KKwogQGVuZAogCiBzdGF0aWMgTlNTdHJp
bmcgKmFwcGx5U3R5bGUoTlNTdHJpbmcgKmh0bWxTdHJpbmcpCkBAIC04MzMsNiArODU0LDc0IEBA
IFRFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdFRocmVlV29yZHNBcm91bmRTZWxl
Y3Rpb24pCiAgICAgRVhQRUNUX05TU1RSSU5HX0VRKCIgb3ZlciB0aGUgbGF6eSIsIGNvbnRleHQu
Y29udGV4dEFmdGVyKTsKIH0KIAorVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBSZXF1ZXN0
QmVmb3JlSW5saW5lUGxhY2Vob2xkZXIpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAs
IDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBwbHlT
dHlsZShAIjxzcGFuIGlkPSd3cmFwcGVyJyBjb250ZW50ZWRpdGFibGU+aGVsbG8gd29ybGQ8L3Nw
YW4+IildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRT
ZWxlY3Rpb24oKS5zZXRQb3NpdGlvbih3cmFwcGVyLmZpcnN0Q2hpbGQsIDUpIl07IC8vIFBsYWNl
IGN1cnNvciBhZnRlciAiaGVsbG8iLgorCisgICAgYXV0byogcGxhY2Vob2xkZXIgPSBbd2ViVmll
dyBzeW5jaHJvbm91c2x5SW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6Q0dTaXplTWFrZSg1
LCA1KV07CisgICAgRVhQRUNUX05PVF9OVUxMKHBsYWNlaG9sZGVyKTsKKworICAgIGF1dG8gKmNv
bnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtl
UmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCwgVUlUZXh0R3JhbnVsYXJpdHlDaGFyYWN0
ZXIsIDIwMCldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNT
VFJJTkdfRVEoImhlbGxvIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlNT
VFJJTkdfRVEoIlx1RkZGQyB3b3JsZCIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKKworICAgIFt3
ZWJWaWV3IHN5bmNocm9ub3VzbHlSZW1vdmVUZXh0UGxhY2Vob2xkZXI6cGxhY2Vob2xkZXIgd2ls
bEluc2VydFRleHQ6Tk9dOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFJlcXVl
c3RBZnRlcklubGluZVBsYWNlaG9sZGVyKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAw
LCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5
U3R5bGUoQCI8c3BhbiBpZD0nd3JhcHBlcicgY29udGVudGVkaXRhYmxlPmhlbGxvIHdvcmxkPC9z
cGFuPiIpXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZ2V0
U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24od3JhcHBlci5maXJzdENoaWxkLCA2KSJdOyAvLyBQbGFj
ZSBjdXJzb3IgYmVmb3JlICJ3b3JsZCIuCisKKyAgICBhdXRvKiBwbGFjZWhvbGRlciA9IFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlJbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTpDR1NpemVNYWtl
KDUsIDUpXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwocGxhY2Vob2xkZXIpOworCisgICAgYXV0byAq
Y29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1h
a2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0LCBVSVRleHRHcmFudWxhcml0eUNoYXJh
Y3RlciwgMjAwKV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9O
U1NUUklOR19FUSgiaGVsbG8gIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1Rf
TlNTVFJJTkdfRVEoIlx1RkZGQ3dvcmxkIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworCisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseVJlbW92ZVRleHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRlciB3
aWxsSW5zZXJ0VGV4dDpOT107Cit9CisKK1RFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVx
dWVzdEJlZm9yZUJsb2NrUGxhY2Vob2xkZXIpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBw
bHlTdHlsZShAIjxzcGFuIGlkPSd3cmFwcGVyJyBjb250ZW50ZWRpdGFibGU+aGVsbG8gd29ybGQ8
L3NwYW4+IildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJn
ZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbih3cmFwcGVyLmZpcnN0Q2hpbGQsIDUpIl07IC8vIFBs
YWNlIGN1cnNvciBhZnRlciAiaGVsbG8iLgorCisgICAgYXV0byogcGxhY2Vob2xkZXIgPSBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6Q0dTaXplTWFr
ZSgwLCA1KV07CisgICAgRVhQRUNUX05PVF9OVUxMKHBsYWNlaG9sZGVyKTsKKworICAgIGF1dG8g
KmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDpt
YWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCwgVUlUZXh0R3JhbnVsYXJpdHlDaGFy
YWN0ZXIsIDIwMCldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1Rf
TlNTVFJJTkdfRVEoImhlbGxvIiwgY29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1Rf
TlNTVFJJTkdfRVEoIlx1RkZGQyB3b3JsZCIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKKworICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZW1vdmVUZXh0UGxhY2Vob2xkZXI6cGxhY2Vob2xkZXIg
d2lsbEluc2VydFRleHQ6Tk9dOworfQorCitURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFJl
cXVlc3RBZnRlckJsb2NrUGxhY2Vob2xkZXIpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBw
bHlTdHlsZShAIjxzcGFuIGlkPSd3cmFwcGVyJyBjb250ZW50ZWRpdGFibGU+aGVsbG8gd29ybGQ8
L3NwYW4+IildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJn
ZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbih3cmFwcGVyLmZpcnN0Q2hpbGQsIDYpIl07IC8vIFBs
YWNlIGN1cnNvciBiZWZvcmUgIndvcmxkIi4KKworICAgIGF1dG8qIHBsYWNlaG9sZGVyID0gW3dl
YlZpZXcgc3luY2hyb25vdXNseUluc2VydFRleHRQbGFjZWhvbGRlcldpdGhTaXplOkNHU2l6ZU1h
a2UoMCwgNSldOworICAgIEVYUEVDVF9OT1RfTlVMTChwbGFjZWhvbGRlcik7CisKKyAgICBhdXRv
ICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6
bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRleHQsIFVJVGV4dEdyYW51bGFyaXR5Q2hh
cmFjdGVyLCAyMDApXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNU
X05TU1RSSU5HX0VRKCJoZWxsbyIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7CisgICAgRVhQRUNU
X05TU1RSSU5HX0VRKCJcdUZGRkN3b3JsZCIsIGNvbnRleHQuY29udGV4dEFmdGVyKTsKKworICAg
IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZW1vdmVUZXh0UGxhY2Vob2xkZXI6cGxhY2Vob2xkZXIg
d2lsbEluc2VydFRleHQ6Tk9dOworfQorCiAvLyBNQVJLOiBUZXN0cyB1c2luZyBzZW50ZW5jZSBn
cmFudWxhcml0eQogCiBjb25zdGV4cHIgTlNTdHJpbmcgKiBjb25zdCB0aHJlZVNlbnRlbmNlc0V4
YW1wbGUgPSBAIjxwIGlkPSd0ZXh0JyBjb250ZW50ZWRpdGFibGU+VGhlIGZpcnN0IHNlbnRlbmNl
LiBUaGUgc2Vjb25kIHNlbnRlbmNlLiBUaGUgdGhpcmQgc2VudGVuY2UuPC9wPiI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404314</attachid>
            <date>2020-07-14 18:49:56 -0700</date>
            <delta_ts>2020-07-15 10:28:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214331-20200714184955.patch</filename>
            <type>text/plain</type>
            <size>12092</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNzhhZjZiZTdmMTRmODgwYWEzMGEyYzZhMjcwMzllYWE0NDFlNmViLi42
MTFlNjJhOWQ1YzY2NmFkMmNjNWUwNmRmMTI2YWIzOGNlNGQ2YWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjAtMDctMTQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIHNob3VsZCByZXByZXNlbnQgYFRleHRQbGFjZWhvbGRlckVsZW1lbnRgIGFz
IGFuIGBOU1RleHRBdHRhY2htZW50Q2hhcmFjdGVyYCBpbnN0ZWFkIG9mIGEgYFxuYAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzMxCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NDc3OTU1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNob3VsZEVtaXRSZXBsYWNlbWVudEluc3RlYWRPZk5vZGUpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnNob3VsZEVtaXROZXdsaW5lc0JlZm9yZUFuZEFmdGVyTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnJlcHJlc2VudE5vZGVPZmZzZXRaZXJvKToK
KwogMjAyMC0wNy0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTXVsdGlwbGV4IHRoZSBISUQgYW5kIEdhbWVDb250cm9sbGVyIGdhbWVwYWQgcHJvdmlkZXJz
IG9uIE1hYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMjAxZmIwY2Q3MjE0ZWNkYjVkMzU2MTgwOWU1OTE3YmU2Yjg1
MzFhMy4uMWFjZWYwODFkOWY4ZWVjNjViYWQwMWI4ZmY4OWJkMGI2ZDBkZmUxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNy0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgc2hvdWxkIHJlcHJlc2VudCBgVGV4dFBsYWNlaG9sZGVyRWxlbWVu
dGAgYXMgYW4gYE5TVGV4dEF0dGFjaG1lbnRDaGFyYWN0ZXJgIGluc3RlYWQgb2YgYSBgXG5gCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMzEKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0Nzc5NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgor
ICAgICAgICBBZGQgbWlzc2luZyBTUEkgZGVjbGFyYXRpb25zLgorCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgcmVtb3ZlVGV4dFBsYWNlaG9sZGVyOndpbGxJbnNlcnRUZXh0OmNvbXBsZXRpb25IYW5k
bGVyOl0pOgorICAgICAgICBEcml2ZS1ieTogZW5zdXJlIHRoYXQgdGhlIGBjb21wbGV0aW9uSGFu
ZGxlcmAgaXMgYWx3YXlzIGNhbGxlZC4KKwogMjAyMC0wNy0wOSAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTXVsdGlwbGV4IHRoZSBISUQgYW5kIEdhbWVDb250
cm9sbGVyIGdhbWVwYWQgcHJvdmlkZXJzIG9uIE1hYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4
dEl0ZXJhdG9yLmNwcAppbmRleCA1YmRjZTg5Y2E2NTgxMWFlMDUwOWY0YTBlYWNiZWIzYzgzMDlj
M2E2Li4xZDY2NTYyYTM5YWVjOTBlNzVjMmZiNDkxMjkxYTU0M2I2NzkzZDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVk
ZSAiU2ltcGxlTGluZUxheW91dFJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dEJvdW5kYXJpZXMu
aCIKICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKKyNpbmNsdWRlICJUZXh0
UGxhY2Vob2xkZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5j
bHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSA8dW5pY29kZS91bm9ybTIuaD4KQEAgLTgw
Myw2ICs4MDQsMTMgQEAgc3RhdGljIGJvb2wgaGFzSGVhZGVyVGFnKEhUTUxFbGVtZW50JiBlbGVt
ZW50KQogICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaDZUYWcpOwogfQogCitzdGF0aWMg
Ym9vbCBzaG91bGRFbWl0UmVwbGFjZW1lbnRJbnN0ZWFkT2ZOb2RlKGNvbnN0IE5vZGUmIG5vZGUp
Cit7CisgICAgLy8gUGxhY2Vob2xkZXJzIHNob3VsZCBldmVudHVhbGx5IGRpc2FwcGVhciwgc28g
dHJlYXRpbmcgdGhlbSBhcyBhIGxpbmUgYnJlYWsgZG9lc24ndCBtYWtlIHNlbnNlCisgICAgLy8g
YXMgd2hlbiB0aGV5IGFyZSByZW1vdmVkIHRoZSB0ZXh0IGFmdGVyIGl0IGlzIGNvbWJpbmVkIHdp
dGggdGhlIHRleHQgYmVmb3JlIGl0LgorICAgIHJldHVybiBpczxUZXh0UGxhY2Vob2xkZXJFbGVt
ZW50Pihub2RlKTsKK30KKwogc3RhdGljIGJvb2wgc2hvdWxkRW1pdE5ld2xpbmVzQmVmb3JlQW5k
QWZ0ZXJOb2RlKE5vZGUmIG5vZGUpCiB7CiAgICAgLy8gQmxvY2sgZmxvdyAodmVyc3VzIGlubGlu
ZSBmbG93KSBpcyByZXByZXNlbnRlZCBieSBoYXZpbmcKQEAgLTg0MCw3ICs4NDgsMTAgQEAgc3Rh
dGljIGJvb2wgc2hvdWxkRW1pdE5ld2xpbmVzQmVmb3JlQW5kQWZ0ZXJOb2RlKE5vZGUmIG5vZGUp
CiAgICAgICAgIGlmICh0YWJsZSAmJiAhdGFibGUtPmlzSW5saW5lKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgCisKKyAgICBpZiAoc2hvdWxkRW1pdFJlcGxhY2VtZW50
SW5zdGVhZE9mTm9kZShub2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJu
ICFyZW5kZXJlci0+aXNJbmxpbmUoKQogICAgICAgICAmJiBpczxSZW5kZXJCbG9jaz4oKnJlbmRl
cmVyKQogICAgICAgICAmJiAhcmVuZGVyZXItPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9u
ZWQoKQpAQCAtOTk4LDYgKzEwMDksOSBAQCB2b2lkIFRleHRJdGVyYXRvcjo6cmVwcmVzZW50Tm9k
ZU9mZnNldFplcm8oKQogICAgIH0gZWxzZSBpZiAoc2hvdWxkRW1pdFNwYWNlQmVmb3JlQW5kQWZ0
ZXJOb2RlKCptX25vZGUpKSB7CiAgICAgICAgIGlmIChzaG91bGRSZXByZXNlbnROb2RlT2Zmc2V0
WmVybygpKQogICAgICAgICAgICAgZW1pdENoYXJhY3RlcignICcsICptX25vZGUtPnBhcmVudE5v
ZGUoKSwgbV9ub2RlLCAwLCAwKTsKKyAgICB9IGVsc2UgaWYgKHNob3VsZEVtaXRSZXBsYWNlbWVu
dEluc3RlYWRPZk5vZGUoKm1fbm9kZSkpIHsKKyAgICAgICAgaWYgKHNob3VsZFJlcHJlc2VudE5v
ZGVPZmZzZXRaZXJvKCkpCisgICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKDB4RkZGQywgKm1fbm9k
ZS0+cGFyZW50Tm9kZSgpLCBtX25vZGUsIDAsIDApOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCBiYTdlNTRkMDU1NmM0ODNmMjJlNGFj
ZjRhY2QyYjkzZjU5ZmI3NmRiLi41OGM4Y2YwYjc2MmQzYzY2MWY3YTZkZjlhNTUwODA2NzdhOGRh
N2NjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaApAQCAtNzI0
LDYgKzcyNCw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFVJV0tHZXN0dXJlVHlwZSkg
ewogLSAodm9pZClfY2FuY2VsTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI7CiAKIEBvcHRpb25h
bAorLSAodm9pZClpbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTooQ0dTaXplKXNpemUgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJVGV4dFBsYWNlaG9sZGVyICopKWNvbXBsZXRpb25I
YW5kbGVyOworLSAodm9pZClyZW1vdmVUZXh0UGxhY2Vob2xkZXI6KFVJVGV4dFBsYWNlaG9sZGVy
ICopcGxhY2Vob2xkZXIgd2lsbEluc2VydFRleHQ6KEJPT0wpd2lsbEluc2VydFRleHQgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOworCiAtICh2b2lk
KWNsZWFyU2VsZWN0aW9uOwogLSAodm9pZClyZXBsYWNlRGljdGF0ZWRUZXh0OihOU1N0cmluZyAq
KW9sZFRleHQgd2l0aFRleHQ6KE5TU3RyaW5nICopbmV3VGV4dDsKIC0gKHZvaWQpcmVxdWVzdERp
Y3RhdGlvbkNvbnRleHQ6KHZvaWQgKF4pKE5TU3RyaW5nICpzZWxlY3RlZFRleHQsIE5TU3RyaW5n
ICpwcmVmaXhUZXh0LCBOU1N0cmluZyAqcG9zdGZpeFRleHQpKWNvbXBsZXRpb25IYW5kbGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KaW5kZXggNTgxMjA4NjdlMDUzYzg3NzEwMDY3MGZiZDE1NTRjMjdiN2FiZmNm
ZS4uODBjNmU1NWJjOTM0ZGVhMWYxNmNkZWJiYTBiZDE5MGFlYjZkMGFmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCkBAIC03OTEwLDYgKzc5MTAsOCBAQCAtICh2b2lkKXJlbW92ZVRleHRQbGFjZWhvbGRlcjoo
VUlUZXh0UGxhY2Vob2xkZXIgKilwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDooQgogICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Igd2lsbEluc2VydFRleHQuIFNlZSA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc0Nz4uCiAgICAgaWYgKGF1dG8q
IHdrVGV4dFBsYWNlaG9sZGVyID0gZHluYW1pY19vYmpjX2Nhc3Q8V0tUZXh0UGxhY2Vob2xkZXI+
KHBsYWNlaG9sZGVyKSkKICAgICAgICAgX3BhZ2UtPnJlbW92ZVRleHRQbGFjZWhvbGRlcih3a1Rl
eHRQbGFjZWhvbGRlci5lbGVtZW50Q29udGV4dCwgbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCiBzdGF0
aWMgVmVjdG9yPFdlYkNvcmU6OkludFNpemU+IHNpemVzT2ZQbGFjZWhvbGRlckVsZW1lbnRzVG9J
bnNlcnRXaGVuRHJvcHBpbmdJdGVtcyhOU0FycmF5PE5TSXRlbVByb3ZpZGVyICo+ICppdGVtUHJv
dmlkZXJzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDZiZGE3M2IzZTNhNzFhMDkxNGQ4MWM3OGNjMzdmNTYwOGE4YjFiYjguLmQ5OTU1ZjYyODUx
NDgxNjE0ZDFjZGNkMTBiNjdhNTQzZGRiYjI3MTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wNy0xNCAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgc2hvdWxkIHJlcHJlc2Vu
dCBgVGV4dFBsYWNlaG9sZGVyRWxlbWVudGAgYXMgYW4gYE5TVGV4dEF0dGFjaG1lbnRDaGFyYWN0
ZXJgIGluc3RlYWQgb2YgYSBgXG5gCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTQzMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0Nzc5NTU4Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tOgorICAg
ICAgICAoLVtUZXN0V0tXZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRUZXh0UGxhY2Vob2xkZXJX
aXRoU2l6ZTpdKTogQWRkZWQuCisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgc3luY2hyb25vdXNs
eVJlbW92ZVRleHRQbGFjZWhvbGRlcjp3aWxsSW5zZXJ0VGV4dDpdKTogQWRkZWQuCisgICAgICAg
IChURVNULkRvY3VtZW50RWRpdGluZ0NvbnRleHQuUmVxdWVzdEJlZm9yZUlubGluZVBsYWNlaG9s
ZGVyKTogQWRkZWQuCisgICAgICAgIChURVNULkRvY3VtZW50RWRpdGluZ0NvbnRleHQuUmVxdWVz
dEFmdGVySW5saW5lUGxhY2Vob2xkZXIpOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuRG9jdW1lbnRF
ZGl0aW5nQ29udGV4dC5SZXF1ZXN0QmVmb3JlQmxvY2tQbGFjZWhvbGRlcik6IEFkZGVkLgorICAg
ICAgICAoVEVTVC5Eb2N1bWVudEVkaXRpbmdDb250ZXh0LlJlcXVlc3RBZnRlckJsb2NrUGxhY2Vo
b2xkZXIpOiBBZGRlZC4KKwogMjAyMC0wNy0wOSAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18y
MkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBhY2Nlc3NpYmlsaXR5L01hYy9zZWxlY3RlZC12
aXNpYmxlLXBvc2l0aW9uLXJhbmdlLmh0bWwgdGltZS1kZXRlcm1pbmlzdGljLgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdD
b250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVu
dEVkaXRpbmdDb250ZXh0Lm1tCmluZGV4IDM2YzEzNzIxN2FmNmZjODVmZjRjMmRjMjk1YmRiNmE1
NDMwOTM0MmQuLmMxM2NmZGFkMDhlYjMxMzg1MDI4NzA2YzJiNmRiMjU4MjVlZWExZDkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0
aW5nQ29udGV4dC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KQEAgLTE1MSw2ICsxNTEsMjcgQEAgLSAoTlNBcnJh
eTxfV0tUZXh0SW5wdXRDb250ZXh0ICo+ICopc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRD
b250ZXh0c0luUmVjdDoKICAgICByZXR1cm4gcmVzdWx0LmF1dG9yZWxlYXNlKCk7CiB9CiAKKy0g
KFVJVGV4dFBsYWNlaG9sZGVyICopc3luY2hyb25vdXNseUluc2VydFRleHRQbGFjZWhvbGRlcldp
dGhTaXplOihDR1NpemUpc2l6ZQoreworICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNl
OworICAgIF9fYmxvY2sgUmV0YWluUHRyPFVJVGV4dFBsYWNlaG9sZGVyPiByZXN1bHQ7CisgICAg
W3NlbGYudGV4dElucHV0Q29udGVudFZpZXcgaW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6
c2l6ZSBjb21wbGV0aW9uSGFuZGxlcjpeKFVJVGV4dFBsYWNlaG9sZGVyICpwbGFjZWhvbGRlcikg
eworICAgICAgICByZXN1bHQgPSBwbGFjZWhvbGRlcjsKKyAgICAgICAgZmluaXNoZWQgPSB0cnVl
OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQpOworICAg
IHJldHVybiByZXN1bHQuYXV0b3JlbGVhc2UoKTsKK30KKworLSAodm9pZClzeW5jaHJvbm91c2x5
UmVtb3ZlVGV4dFBsYWNlaG9sZGVyOihVSVRleHRQbGFjZWhvbGRlciAqKXBsYWNlaG9sZGVyIHdp
bGxJbnNlcnRUZXh0OihCT09MKXdpbGxJbnNlcnRUZXh0Cit7CisgICAgX19ibG9jayBib29sIGZp
bmlzaGVkID0gZmFsc2U7CisgICAgW3NlbGYudGV4dElucHV0Q29udGVudFZpZXcgcmVtb3ZlVGV4
dFBsYWNlaG9sZGVyOnBsYWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0OndpbGxJbnNlcnRUZXh0IGNv
bXBsZXRpb25IYW5kbGVyOl4odm9pZCkgeworICAgICAgICBmaW5pc2hlZCA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7Cit9CisKIEBlbmQK
IAogc3RhdGljIE5TU3RyaW5nICphcHBseVN0eWxlKE5TU3RyaW5nICpodG1sU3RyaW5nKQpAQCAt
ODMzLDYgKzg1NCw3NCBAQCBURVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFJlcXVlc3RUaHJl
ZVdvcmRzQXJvdW5kU2VsZWN0aW9uKQogICAgIEVYUEVDVF9OU1NUUklOR19FUSgiIG92ZXIgdGhl
IGxhenkiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7CiB9CiAKK1RFU1QoRG9jdW1lbnRFZGl0aW5n
Q29udGV4dCwgUmVxdWVzdEJlZm9yZUlubGluZVBsYWNlaG9sZGVyKQoreworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOmFwcGx5U3R5bGUoQCI8c3BhbiBpZD0nd3JhcHBlcicgY29udGVudGVkaXRhYmxl
PmhlbGxvIHdvcmxkPC9zcGFuPiIpXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24od3JhcHBlci5maXJzdENoaWxk
LCA1KSJdOyAvLyBQbGFjZSBjdXJzb3IgYWZ0ZXIgImhlbGxvIi4KKworICAgIGF1dG8gKnBsYWNl
aG9sZGVyID0gW3dlYlZpZXcgc3luY2hyb25vdXNseUluc2VydFRleHRQbGFjZWhvbGRlcldpdGhT
aXplOkNHU2l6ZU1ha2UoNSwgNSldOworICAgIEVYUEVDVF9OT1RfTlVMTChwbGFjZWhvbGRlcik7
CisKKyAgICBhdXRvICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3REb2N1
bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRleHQsIFVJVGV4dEdy
YW51bGFyaXR5Q2hhcmFjdGVyLCAyMDApXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoY29udGV4dCk7
CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJoZWxsbyIsIGNvbnRleHQuY29udGV4dEJlZm9yZSk7
CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJcdUZGRkMgd29ybGQiLCBjb250ZXh0LmNvbnRleHRB
ZnRlcik7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVtb3ZlVGV4dFBsYWNlaG9sZGVy
OnBsYWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0Ok5PXTsKK30KKworVEVTVChEb2N1bWVudEVkaXRp
bmdDb250ZXh0LCBSZXF1ZXN0QWZ0ZXJJbmxpbmVQbGFjZWhvbGRlcikKK3sKKyAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
SFRNTFN0cmluZzphcHBseVN0eWxlKEAiPHNwYW4gaWQ9J3dyYXBwZXInIGNvbnRlbnRlZGl0YWJs
ZT5oZWxsbyB3b3JsZDwvc3Bhbj4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKHdyYXBwZXIuZmlyc3RDaGls
ZCwgNikiXTsgLy8gUGxhY2UgY3Vyc29yIGJlZm9yZSAid29ybGQiLgorCisgICAgYXV0byAqcGxh
Y2Vob2xkZXIgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0
aFNpemU6Q0dTaXplTWFrZSg1LCA1KV07CisgICAgRVhQRUNUX05PVF9OVUxMKHBsYWNlaG9sZGVy
KTsKKworICAgIGF1dG8gKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdERv
Y3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1ZXN0VGV4dCwgVUlUZXh0
R3JhbnVsYXJpdHlDaGFyYWN0ZXIsIDIwMCldOworICAgIEVYUEVDVF9OT1RfTlVMTChjb250ZXh0
KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImhlbGxvICIsIGNvbnRleHQuY29udGV4dEJlZm9y
ZSk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJcdUZGRkN3b3JsZCIsIGNvbnRleHQuY29udGV4
dEFmdGVyKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZW1vdmVUZXh0UGxhY2Vob2xk
ZXI6cGxhY2Vob2xkZXIgd2lsbEluc2VydFRleHQ6Tk9dOworfQorCitURVNUKERvY3VtZW50RWRp
dGluZ0NvbnRleHQsIFJlcXVlc3RCZWZvcmVCbG9ja1BsYWNlaG9sZGVyKQoreworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCI8c3BhbiBpZD0nd3JhcHBlcicgY29udGVudGVkaXRh
YmxlPmhlbGxvIHdvcmxkPC9zcGFuPiIpXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24od3JhcHBlci5maXJzdENo
aWxkLCA1KSJdOyAvLyBQbGFjZSBjdXJzb3IgYWZ0ZXIgImhlbGxvIi4KKworICAgIGF1dG8gKnBs
YWNlaG9sZGVyID0gW3dlYlZpZXcgc3luY2hyb25vdXNseUluc2VydFRleHRQbGFjZWhvbGRlcldp
dGhTaXplOkNHU2l6ZU1ha2UoMCwgNSldOworICAgIEVYUEVDVF9OT1RfTlVMTChwbGFjZWhvbGRl
cik7CisKKyAgICBhdXRvICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3RE
b2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVzdFRleHQsIFVJVGV4
dEdyYW51bGFyaXR5Q2hhcmFjdGVyLCAyMDApXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoY29udGV4
dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJoZWxsbyIsIGNvbnRleHQuY29udGV4dEJlZm9y
ZSk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJcdUZGRkMgd29ybGQiLCBjb250ZXh0LmNvbnRl
eHRBZnRlcik7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVtb3ZlVGV4dFBsYWNlaG9s
ZGVyOnBsYWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0Ok5PXTsKK30KKworVEVTVChEb2N1bWVudEVk
aXRpbmdDb250ZXh0LCBSZXF1ZXN0QWZ0ZXJCbG9ja1BsYWNlaG9sZGVyKQoreworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCI8c3BhbiBpZD0nd3JhcHBlcicgY29udGVudGVkaXRh
YmxlPmhlbGxvIHdvcmxkPC9zcGFuPiIpXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24od3JhcHBlci5maXJzdENo
aWxkLCA2KSJdOyAvLyBQbGFjZSBjdXJzb3IgYmVmb3JlICJ3b3JsZCIuCisKKyAgICBhdXRvICpw
bGFjZWhvbGRlciA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRUZXh0UGxhY2Vob2xkZXJX
aXRoU2l6ZTpDR1NpemVNYWtlKDAsIDUpXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwocGxhY2Vob2xk
ZXIpOworCisgICAgYXV0byAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0
RG9jdW1lbnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RUZXh0LCBVSVRl
eHRHcmFudWxhcml0eUNoYXJhY3RlciwgMjAwKV07CisgICAgRVhQRUNUX05PVF9OVUxMKGNvbnRl
eHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiaGVsbG8iLCBjb250ZXh0LmNvbnRleHRCZWZv
cmUpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiXHVGRkZDd29ybGQiLCBjb250ZXh0LmNvbnRl
eHRBZnRlcik7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVtb3ZlVGV4dFBsYWNlaG9s
ZGVyOnBsYWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0Ok5PXTsKK30KKwogLy8gTUFSSzogVGVzdHMg
dXNpbmcgc2VudGVuY2UgZ3JhbnVsYXJpdHkKIAogY29uc3RleHByIE5TU3RyaW5nICogY29uc3Qg
dGhyZWVTZW50ZW5jZXNFeGFtcGxlID0gQCI8cCBpZD0ndGV4dCcgY29udGVudGVkaXRhYmxlPlRo
ZSBmaXJzdCBzZW50ZW5jZS4gVGhlIHNlY29uZCBzZW50ZW5jZS4gVGhlIHRoaXJkIHNlbnRlbmNl
LjwvcD4iOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404355</attachid>
            <date>2020-07-15 10:28:53 -0700</date>
            <delta_ts>2020-07-15 12:47:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214331-20200715102853.patch</filename>
            <type>text/plain</type>
            <size>13195</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYzhlMGY3MTYwNDc1NWQ1NmNiZTExNzczZWZlNzE5ODAwNTI3ZDg5Li41
M2YxYzZiNzU1NWFjMjhjNmI1YzFhMjEwNjk1ZWNjOGNhYzlhZTc0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjAtMDctMTQgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIHNob3VsZCByZXByZXNlbnQgYFRleHRQbGFjZWhvbGRlckVsZW1lbnRgIGFz
IGFuIGBOU1RleHRBdHRhY2htZW50Q2hhcmFjdGVyYCBpbnN0ZWFkIG9mIGEgYFxuYAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzMxCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NDc3OTU1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNob3VsZEVtaXRSZXBsYWNlbWVudEluc3RlYWRPZk5vZGUpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OnNob3VsZEVtaXROZXdsaW5lc0JlZm9yZUFuZEFmdGVyTm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0SXRlcmF0b3I6OnJlcHJlc2VudE5vZGVPZmZzZXRaZXJvKToK
KwogMjAyMC0wNy0xNCAgSmFtZXMgRGFycGluaWFuICA8amRhcnBpbmlhbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW1dlYkdMMl0gdmVydGV4QXR0cmliSSogYW5kIGdldEZyYWdEYXRhTG9jYXRp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNGYyZTFkZjc0YTVjMDllNTY3NDZkNzI5YjRmMGU4YWFiNTc1MTQzZS4u
ZjcyZjcxZDQ5YWY1ZjUyYzlkMGI1YmM2ZGEzNjNkMzEyYzdjOTI4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMC0wNy0xNCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgc2hvdWxkIHJlcHJlc2VudCBgVGV4dFBsYWNlaG9sZGVyRWxlbWVudGAgYXMg
YW4gYE5TVGV4dEF0dGFjaG1lbnRDaGFyYWN0ZXJgIGluc3RlYWQgb2YgYSBgXG5gCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQzMzEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzY0Nzc5NTU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgorICAgICAg
ICBBZGQgbWlzc2luZyBTUEkgZGVjbGFyYXRpb25zLgorCisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
cmVtb3ZlVGV4dFBsYWNlaG9sZGVyOndpbGxJbnNlcnRUZXh0OmNvbXBsZXRpb25IYW5kbGVyOl0p
OgorICAgICAgICBEcml2ZS1ieTogZW5zdXJlIHRoYXQgdGhlIGBjb21wbGV0aW9uSGFuZGxlcmAg
aXMgYWx3YXlzIGNhbGxlZC4KKwogMjAyMC0wNy0xNCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIG1pc3NpbmcgbWVzc2FnZXMgdG8gbWVz
c2FnZSBmaWx0ZXIgaW4gV2ViQ29udGVudCBzYW5kYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRJdGVyYXRvci5jcHAKaW5kZXggNWJkY2U4OWNhNjU4MTFhZTA1MDlmNGEwZWFjYmViM2M4MzA5
YzNhNi4uMWQ2NjU2MmEzOWFlYzkwZTc1YzJmYjQ5MTI5MWE1NDNiNjc5M2QyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1
ZGUgIlNpbXBsZUxpbmVMYXlvdXRSZXNvbHZlci5oIgogI2luY2x1ZGUgIlRleHRCb3VuZGFyaWVz
LmgiCiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCisjaW5jbHVkZSAiVGV4
dFBsYWNlaG9sZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgogI2lu
Y2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgPHVuaWNvZGUvdW5vcm0yLmg+CkBAIC04
MDMsNiArODA0LDEzIEBAIHN0YXRpYyBib29sIGhhc0hlYWRlclRhZyhIVE1MRWxlbWVudCYgZWxl
bWVudCkKICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGg2VGFnKTsKIH0KIAorc3RhdGlj
IGJvb2wgc2hvdWxkRW1pdFJlcGxhY2VtZW50SW5zdGVhZE9mTm9kZShjb25zdCBOb2RlJiBub2Rl
KQoreworICAgIC8vIFBsYWNlaG9sZGVycyBzaG91bGQgZXZlbnR1YWxseSBkaXNhcHBlYXIsIHNv
IHRyZWF0aW5nIHRoZW0gYXMgYSBsaW5lIGJyZWFrIGRvZXNuJ3QgbWFrZSBzZW5zZQorICAgIC8v
IGFzIHdoZW4gdGhleSBhcmUgcmVtb3ZlZCB0aGUgdGV4dCBhZnRlciBpdCBpcyBjb21iaW5lZCB3
aXRoIHRoZSB0ZXh0IGJlZm9yZSBpdC4KKyAgICByZXR1cm4gaXM8VGV4dFBsYWNlaG9sZGVyRWxl
bWVudD4obm9kZSk7Cit9CisKIHN0YXRpYyBib29sIHNob3VsZEVtaXROZXdsaW5lc0JlZm9yZUFu
ZEFmdGVyTm9kZShOb2RlJiBub2RlKQogewogICAgIC8vIEJsb2NrIGZsb3cgKHZlcnN1cyBpbmxp
bmUgZmxvdykgaXMgcmVwcmVzZW50ZWQgYnkgaGF2aW5nCkBAIC04NDAsNyArODQ4LDEwIEBAIHN0
YXRpYyBib29sIHNob3VsZEVtaXROZXdsaW5lc0JlZm9yZUFuZEFmdGVyTm9kZShOb2RlJiBub2Rl
KQogICAgICAgICBpZiAodGFibGUgJiYgIXRhYmxlLT5pc0lubGluZSgpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQotICAgIAorCisgICAgaWYgKHNob3VsZEVtaXRSZXBsYWNlbWVu
dEluc3RlYWRPZk5vZGUobm9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVy
biAhcmVuZGVyZXItPmlzSW5saW5lKCkKICAgICAgICAgJiYgaXM8UmVuZGVyQmxvY2s+KCpyZW5k
ZXJlcikKICAgICAgICAgJiYgIXJlbmRlcmVyLT5pc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlv
bmVkKCkKQEAgLTk5OCw2ICsxMDA5LDkgQEAgdm9pZCBUZXh0SXRlcmF0b3I6OnJlcHJlc2VudE5v
ZGVPZmZzZXRaZXJvKCkKICAgICB9IGVsc2UgaWYgKHNob3VsZEVtaXRTcGFjZUJlZm9yZUFuZEFm
dGVyTm9kZSgqbV9ub2RlKSkgewogICAgICAgICBpZiAoc2hvdWxkUmVwcmVzZW50Tm9kZU9mZnNl
dFplcm8oKSkKICAgICAgICAgICAgIGVtaXRDaGFyYWN0ZXIoJyAnLCAqbV9ub2RlLT5wYXJlbnRO
b2RlKCksIG1fbm9kZSwgMCwgMCk7CisgICAgfSBlbHNlIGlmIChzaG91bGRFbWl0UmVwbGFjZW1l
bnRJbnN0ZWFkT2ZOb2RlKCptX25vZGUpKSB7CisgICAgICAgIGlmIChzaG91bGRSZXByZXNlbnRO
b2RlT2Zmc2V0WmVybygpKQorICAgICAgICAgICAgZW1pdENoYXJhY3RlcigweEZGRkMsICptX25v
ZGUtPnBhcmVudE5vZGUoKSwgbV9ub2RlLCAwLCAwKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYmE3ZTU0ZDA1NTZjNDgzZjIyZTRh
Y2Y0YWNkMmI5M2Y1OWZiNzZkYi4uNThjOGNmMGI3NjJkM2M2NjFmN2E2ZGY5YTU1MDgwNjc3YThk
YTdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJ
LmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTcy
NCw2ICs3MjQsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBVSVdLR2VzdHVyZVR5cGUp
IHsKIC0gKHZvaWQpX2NhbmNlbExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyOwogCiBAb3B0aW9u
YWwKKy0gKHZvaWQpaW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6KENHU2l6ZSlzaXplIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShVSVRleHRQbGFjZWhvbGRlciAqKSljb21wbGV0aW9u
SGFuZGxlcjsKKy0gKHZvaWQpcmVtb3ZlVGV4dFBsYWNlaG9sZGVyOihVSVRleHRQbGFjZWhvbGRl
ciAqKXBsYWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0OihCT09MKXdpbGxJbnNlcnRUZXh0IGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKKwogLSAodm9p
ZCljbGVhclNlbGVjdGlvbjsKIC0gKHZvaWQpcmVwbGFjZURpY3RhdGVkVGV4dDooTlNTdHJpbmcg
KilvbGRUZXh0IHdpdGhUZXh0OihOU1N0cmluZyAqKW5ld1RleHQ7CiAtICh2b2lkKXJlcXVlc3RE
aWN0YXRpb25Db250ZXh0Oih2b2lkICheKShOU1N0cmluZyAqc2VsZWN0ZWRUZXh0LCBOU1N0cmlu
ZyAqcHJlZml4VGV4dCwgTlNTdHJpbmcgKnBvc3RmaXhUZXh0KSljb21wbGV0aW9uSGFuZGxlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IDU0YWMxNjUwNWFiM2I0ZjIwOGM4NDY0NmIyMzgxMjFmZTdmMmRl
NWIuLjNkZGEyNTc0NjdlNTk3NTE2ZGFlZjY0NjAyMjMxYTAyNDM1YWM1ZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQpAQCAtNzkzOCw2ICs3OTM4LDggQEAgLSAodm9pZClyZW1vdmVUZXh0UGxhY2Vob2xkZXI6
KFVJVGV4dFBsYWNlaG9sZGVyICopcGxhY2Vob2xkZXIgd2lsbEluc2VydFRleHQ6KEIKICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHdpbGxJbnNlcnRUZXh0LiBTZWUgPGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg3NDc+LgogICAgIGlmIChhdXRv
KiB3a1RleHRQbGFjZWhvbGRlciA9IGR5bmFtaWNfb2JqY19jYXN0PFdLVGV4dFBsYWNlaG9sZGVy
PihwbGFjZWhvbGRlcikpCiAgICAgICAgIF9wYWdlLT5yZW1vdmVUZXh0UGxhY2Vob2xkZXIod2tU
ZXh0UGxhY2Vob2xkZXIuZWxlbWVudENvbnRleHQsIG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIGVsc2UKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogc3Rh
dGljIFZlY3RvcjxXZWJDb3JlOjpJbnRTaXplPiBzaXplc09mUGxhY2Vob2xkZXJFbGVtZW50c1Rv
SW5zZXJ0V2hlbkRyb3BwaW5nSXRlbXMoTlNBcnJheTxOU0l0ZW1Qcm92aWRlciAqPiAqaXRlbVBy
b3ZpZGVycykKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBhNDcyYzg2NDYzYTJiZTA2NzM3ZTNkN2MyOTliNjQzOWJmN2NkMWFmLi5iOWY0ZTBiZDIw
NTdkM2YyOTU0YTMzN2NhYWU1ZmE3NDQ0OTkxZjhjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDctMTQgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIHNob3VsZCByZXByZXNl
bnQgYFRleHRQbGFjZWhvbGRlckVsZW1lbnRgIGFzIGFuIGBOU1RleHRBdHRhY2htZW50Q2hhcmFj
dGVyYCBpbnN0ZWFkIG9mIGEgYFxuYAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE0MzMxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDc3OTU1OD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmg6CisgICAgICAgIEFkZCBtaXNzaW5nIFNQSSBkZWNsYXJh
dGlvbnMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3Vt
ZW50RWRpdGluZ0NvbnRleHQubW06CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgc3luY2hyb25v
dXNseUluc2VydFRleHRQbGFjZWhvbGRlcldpdGhTaXplOl0pOiBBZGRlZC4KKyAgICAgICAgKC1b
VGVzdFdLV2ViVmlldyBzeW5jaHJvbm91c2x5UmVtb3ZlVGV4dFBsYWNlaG9sZGVyOndpbGxJbnNl
cnRUZXh0Ol0pOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5S
ZXF1ZXN0QmVmb3JlSW5saW5lUGxhY2Vob2xkZXIpOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuRG9j
dW1lbnRFZGl0aW5nQ29udGV4dC5SZXF1ZXN0QWZ0ZXJJbmxpbmVQbGFjZWhvbGRlcik6IEFkZGVk
LgorICAgICAgICAoVEVTVC5Eb2N1bWVudEVkaXRpbmdDb250ZXh0LlJlcXVlc3RCZWZvcmVCbG9j
a1BsYWNlaG9sZGVyKTogQWRkZWQuCisgICAgICAgIChURVNULkRvY3VtZW50RWRpdGluZ0NvbnRl
eHQuUmVxdWVzdEFmdGVyQmxvY2tQbGFjZWhvbGRlcik6IEFkZGVkLgorCiAyMDIwLTA3LTE0ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04gKHIyNjQxMDEpOiBTaGFyaW5nIGEgbGluayBhdHRhY2hlcyBhbiBpbWFnZSBpbnN0ZWFkIG9m
IHRoZSBVUkwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQppbmRleCAzNmMxMzcyMTdhZjZm
Yzg1ZmY0YzJkYzI5NWJkYjZhNTQzMDkzNDJkLi5jMTNjZmRhZDA4ZWIzMTM4NTAyODcwNmMyYjZk
YjI1ODI1ZWVhMWQ5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCkBAIC0xNTEsNiAr
MTUxLDI3IEBAIC0gKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqKXN5bmNocm9ub3Vz
bHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6CiAgICAgcmV0dXJuIHJlc3VsdC5hdXRv
cmVsZWFzZSgpOwogfQogCistIChVSVRleHRQbGFjZWhvbGRlciAqKXN5bmNocm9ub3VzbHlJbnNl
cnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTooQ0dTaXplKXNpemUKK3sKKyAgICBfX2Jsb2NrIGJv
b2wgZmluaXNoZWQgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIFJldGFpblB0cjxVSVRleHRQbGFjZWhv
bGRlcj4gcmVzdWx0OworICAgIFtzZWxmLnRleHRJbnB1dENvbnRlbnRWaWV3IGluc2VydFRleHRQ
bGFjZWhvbGRlcldpdGhTaXplOnNpemUgY29tcGxldGlvbkhhbmRsZXI6XihVSVRleHRQbGFjZWhv
bGRlciAqcGxhY2Vob2xkZXIpIHsKKyAgICAgICAgcmVzdWx0ID0gcGxhY2Vob2xkZXI7CisgICAg
ICAgIGZpbmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmZpbmlzaGVkKTsKKyAgICByZXR1cm4gcmVzdWx0LmF1dG9yZWxlYXNlKCk7Cit9CisKKy0g
KHZvaWQpc3luY2hyb25vdXNseVJlbW92ZVRleHRQbGFjZWhvbGRlcjooVUlUZXh0UGxhY2Vob2xk
ZXIgKilwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDooQk9PTCl3aWxsSW5zZXJ0VGV4dAorewor
ICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIFtzZWxmLnRleHRJbnB1dENv
bnRlbnRWaWV3IHJlbW92ZVRleHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4
dDp3aWxsSW5zZXJ0VGV4dCBjb21wbGV0aW9uSGFuZGxlcjpeKHZvaWQpIHsKKyAgICAgICAgZmlu
aXNoZWQgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmlu
aXNoZWQpOworfQorCiBAZW5kCiAKIHN0YXRpYyBOU1N0cmluZyAqYXBwbHlTdHlsZShOU1N0cmlu
ZyAqaHRtbFN0cmluZykKQEAgLTgzMyw2ICs4NTQsNzQgQEAgVEVTVChEb2N1bWVudEVkaXRpbmdD
b250ZXh0LCBSZXF1ZXN0VGhyZWVXb3Jkc0Fyb3VuZFNlbGVjdGlvbikKICAgICBFWFBFQ1RfTlNT
VFJJTkdfRVEoIiBvdmVyIHRoZSBsYXp5IiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOwogfQogCitU
RVNUKERvY3VtZW50RWRpdGluZ0NvbnRleHQsIFJlcXVlc3RCZWZvcmVJbmxpbmVQbGFjZWhvbGRl
cikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiPHNwYW4gaWQ9J3dyYXBw
ZXInIGNvbnRlbnRlZGl0YWJsZT5oZWxsbyB3b3JsZDwvc3Bhbj4iKV07CisgICAgW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9u
KHdyYXBwZXIuZmlyc3RDaGlsZCwgNSkiXTsgLy8gUGxhY2UgY3Vyc29yIGFmdGVyICJoZWxsbyIu
CisKKyAgICBhdXRvICpwbGFjZWhvbGRlciA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRU
ZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTpDR1NpemVNYWtlKDUsIDUpXTsKKyAgICBFWFBFQ1RfTk9U
X05VTEwocGxhY2Vob2xkZXIpOworCisgICAgYXV0byAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJl
cXVlc3RUZXh0LCBVSVRleHRHcmFudWxhcml0eUNoYXJhY3RlciwgMjAwKV07CisgICAgRVhQRUNU
X05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiaGVsbG8iLCBjb250
ZXh0LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiXHVGRkZDIHdvcmxk
IiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseVJl
bW92ZVRleHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDpOT107Cit9CisK
K1RFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdEFmdGVySW5saW5lUGxhY2Vob2xk
ZXIpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBwbHlTdHlsZShAIjxzcGFuIGlkPSd3cmFw
cGVyJyBjb250ZW50ZWRpdGFibGU+aGVsbG8gd29ybGQ8L3NwYW4+IildOworICAgIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlv
bih3cmFwcGVyLmZpcnN0Q2hpbGQsIDYpIl07IC8vIFBsYWNlIGN1cnNvciBiZWZvcmUgIndvcmxk
Ii4KKworICAgIGF1dG8gKnBsYWNlaG9sZGVyID0gW3dlYlZpZXcgc3luY2hyb25vdXNseUluc2Vy
dFRleHRQbGFjZWhvbGRlcldpdGhTaXplOkNHU2l6ZU1ha2UoNSwgNSldOworICAgIEVYUEVDVF9O
T1RfTlVMTChwbGFjZWhvbGRlcik7CisKKyAgICBhdXRvICpjb250ZXh0ID0gW3dlYlZpZXcgc3lu
Y2hyb25vdXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50
UmVxdWVzdFRleHQsIFVJVGV4dEdyYW51bGFyaXR5Q2hhcmFjdGVyLCAyMDApXTsKKyAgICBFWFBF
Q1RfTk9UX05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJoZWxsbyAiLCBj
b250ZXh0LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiXHVGRkZDd29y
bGQiLCBjb250ZXh0LmNvbnRleHRBZnRlcik7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
UmVtb3ZlVGV4dFBsYWNlaG9sZGVyOnBsYWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0Ok5PXTsKK30K
KworVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBSZXF1ZXN0QmVmb3JlQmxvY2tQbGFjZWhv
bGRlcikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiPHNwYW4gaWQ9J3dy
YXBwZXInIGNvbnRlbnRlZGl0YWJsZT5oZWxsbyB3b3JsZDwvc3Bhbj4iKV07CisgICAgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0
aW9uKHdyYXBwZXIuZmlyc3RDaGlsZCwgNSkiXTsgLy8gUGxhY2UgY3Vyc29yIGFmdGVyICJoZWxs
byIuCisKKyAgICBhdXRvICpwbGFjZWhvbGRlciA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNl
cnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTpDR1NpemVNYWtlKDAsIDUpXTsKKyAgICBFWFBFQ1Rf
Tk9UX05VTEwocGxhY2Vob2xkZXIpOworCisgICAgYXV0byAqY29udGV4dCA9IFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVu
dFJlcXVlc3RUZXh0LCBVSVRleHRHcmFudWxhcml0eUNoYXJhY3RlciwgMjAwKV07CisgICAgRVhQ
RUNUX05PVF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiaGVsbG8iLCBj
b250ZXh0LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiXHVGRkZDIHdv
cmxkIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eVJlbW92ZVRleHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDpOT107Cit9
CisKK1RFU1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdEFmdGVyQmxvY2tQbGFjZWhv
bGRlcikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiPHNwYW4gaWQ9J3dy
YXBwZXInIGNvbnRlbnRlZGl0YWJsZT5oZWxsbyB3b3JsZDwvc3Bhbj4iKV07CisgICAgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0
aW9uKHdyYXBwZXIuZmlyc3RDaGlsZCwgNikiXTsgLy8gUGxhY2UgY3Vyc29yIGJlZm9yZSAid29y
bGQiLgorCisgICAgYXV0byAqcGxhY2Vob2xkZXIgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5SW5z
ZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6Q0dTaXplTWFrZSgwLCA1KV07CisgICAgRVhQRUNU
X05PVF9OVUxMKHBsYWNlaG9sZGVyKTsKKworICAgIGF1dG8gKmNvbnRleHQgPSBbd2ViVmlldyBz
eW5jaHJvbm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1l
bnRSZXF1ZXN0VGV4dCwgVUlUZXh0R3JhbnVsYXJpdHlDaGFyYWN0ZXIsIDIwMCldOworICAgIEVY
UEVDVF9OT1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImhlbGxvIiwg
Y29udGV4dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoIlx1RkZGQ3dv
cmxkIiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eVJlbW92ZVRleHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDpOT107Cit9
CisKIC8vIE1BUks6IFRlc3RzIHVzaW5nIHNlbnRlbmNlIGdyYW51bGFyaXR5CiAKIGNvbnN0ZXhw
ciBOU1N0cmluZyAqIGNvbnN0IHRocmVlU2VudGVuY2VzRXhhbXBsZSA9IEAiPHAgaWQ9J3RleHQn
IGNvbnRlbnRlZGl0YWJsZT5UaGUgZmlyc3Qgc2VudGVuY2UuIFRoZSBzZWNvbmQgc2VudGVuY2Uu
IFRoZSB0aGlyZCBzZW50ZW5jZS48L3A+IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvaW9zL1VJS2l0U1BJLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCmlu
ZGV4IDFlYjgzMTQ4ODJmZTliNDA3ZTQ3NWQ4MWQ2MjAxNTlkMDU2Y2Q4MGMuLmQ2M2Q3ZDdkZTc4
MjQ3ZWU5NTY1OWE0YzQ0MzQ4NmZmZmYzMDg5ODggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvaW9zL1VJS2l0U1BJLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRT
UEkuaApAQCAtMTgxLDYgKzE4MSwxMCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNJbnRlZ2VyLCBV
SVdLRG9jdW1lbnRSZXF1ZXN0RmxhZ3MpIHsKIC0gKHZvaWQpdXBkYXRlU2VsZWN0aW9uV2l0aEV4
dGVudFBvaW50OihDR1BvaW50KXBvaW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09M
IHNlbGVjdGlvbkVuZElzTW92aW5nKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpdXBkYXRl
U2VsZWN0aW9uV2l0aEV4dGVudFBvaW50OihDR1BvaW50KXBvaW50IHdpdGhCb3VuZGFyeTooVUlU
ZXh0R3JhbnVsYXJpdHkpZ3JhbnVsYXJpdHkgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wgc2VsZWN0aW9uRW5kSXNNb3ZpbmcpKWNvbXBsZXRpb25IYW5kbGVyOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqc2VsZWN0ZWRUZXh0OworCitAb3B0aW9uYWwK
Ky0gKHZvaWQpaW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6KENHU2l6ZSlzaXplIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShVSVRleHRQbGFjZWhvbGRlciAqKSljb21wbGV0aW9uSGFu
ZGxlcjsKKy0gKHZvaWQpcmVtb3ZlVGV4dFBsYWNlaG9sZGVyOihVSVRleHRQbGFjZWhvbGRlciAq
KXBsYWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0OihCT09MKXdpbGxJbnNlcnRUZXh0IGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIEBlbmQKIAogQGlu
dGVyZmFjZSBVSVZpZXdDb250cm9sbGVyICgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404376</attachid>
            <date>2020-07-15 12:47:40 -0700</date>
            <delta_ts>2020-07-15 14:16:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214331-20200715124739.patch</filename>
            <type>text/plain</type>
            <size>13588</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYzhlMGY3MTYwNDc1NWQ1NmNiZTExNzczZWZlNzE5ODAwNTI3ZDg5Li44
Mjc4OWM2NzFlZTViOGIwZjZlZjQ3MGM2YzcxZGI0MzJmMTA4MmJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjAtMDctMTUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIHNob3VsZCByZXByZXNlbnQgYFRleHRQbGFjZWhvbGRlckVsZW1lbnRgIGFz
IGFuIGBOU1RleHRBdHRhY2htZW50Q2hhcmFjdGVyYCBpbnN0ZWFkIG9mIGEgYFxuYAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzMxCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82NDc3OTU1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24g
SHNpZWguCisKKyAgICAgICAgKiBlZGl0aW5nL1RleHRJdGVyYXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpzaG91bGRFbWl0UmVwbGFjZW1lbnRJbnN0ZWFkT2ZOb2RlKTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpzaG91bGRFbWl0TmV3bGluZXNCZWZvcmVBbmRBZnRlck5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dEl0ZXJhdG9yOjpyZXByZXNlbnROb2RlT2Zmc2V0WmVybyk6Cisg
ICAgICAgIFBsYWNlaG9sZGVycyBzaG91bGQgZXZlbnR1YWxseSBiZSByZW1vdmVkLCBzbyBzdHJp
bmdpZnlpbmcgdGhlbSBhcyBhIG5ld2xpbmUgZG9lc24ndCBtYWtlCisgICAgICAgIHNlbnNlIGFz
IHRoZXkgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYSAic2xvdCIgaW4gdGhlIGV4aXN0aW5nIGZsb3cg
b2YgdGhlIHN1cnJvdW5kaW5nIGNvbnRlbnQKKyAgICAgICAgd2l0aG91dCBjaGFuZ2luZyB0aGUg
Y2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBjb250ZW50IChlLmcuIGEgc2VudGVuY2Ugd2l0aCBhIHBs
YWNlaG9sZGVyCisgICAgICAgIHNob3VsZCByZW1haW4gYXMgYSBzZW50ZW5jZSwgbm90IHN1ZGRl
bmx5IGJlY29tZSB0d28gcGFyYWdyYXBocyBzZXBhcmF0ZWQgYnkgYSBwbGFjZWhvbGRlcikuCisK
IDIwMjAtMDctMTQgIEphbWVzIERhcnBpbmlhbiAgPGpkYXJwaW5pYW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtXZWJHTDJdIHZlcnRleEF0dHJpYkkqIGFuZCBnZXRGcmFnRGF0YUxvY2F0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDRmMmUxZGY3NGE1YzA5ZTU2NzQ2ZDcyOWI0ZjBlOGFhYjU3NTE0M2UuLjM2
OGViMDNlZjUyNTkzZDUyZWJmZTI5MjVjN2RjN2M3ODRlOTMxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMjAtMDctMTUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgor
CisgICAgICAgIHNob3VsZCByZXByZXNlbnQgYFRleHRQbGFjZWhvbGRlckVsZW1lbnRgIGFzIGFu
IGBOU1RleHRBdHRhY2htZW50Q2hhcmFjdGVyYCBpbnN0ZWFkIG9mIGEgYFxuYAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MzMxCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82NDc3OTU1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNp
ZWguCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisgICAgICAgIEFk
ZCBtaXNzaW5nIFNQSSBkZWNsYXJhdGlvbnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyByZW1v
dmVUZXh0UGxhY2Vob2xkZXI6d2lsbEluc2VydFRleHQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6Cisg
ICAgICAgIERyaXZlLWJ5OiBlbnN1cmUgdGhhdCB0aGUgYGNvbXBsZXRpb25IYW5kbGVyYCBpcyBh
bHdheXMgY2FsbGVkLgorCiAyMDIwLTA3LTE0ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgbWlzc2luZyBtZXNzYWdlcyB0byBtZXNzYWdl
IGZpbHRlciBpbiBXZWJDb250ZW50IHNhbmRib3gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0
ZXJhdG9yLmNwcAppbmRleCA1YmRjZTg5Y2E2NTgxMWFlMDUwOWY0YTBlYWNiZWIzYzgzMDljM2E2
Li4xZDY2NTYyYTM5YWVjOTBlNzVjMmZiNDkxMjkxYTU0M2I2NzkzZDIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAi
U2ltcGxlTGluZUxheW91dFJlc29sdmVyLmgiCiAjaW5jbHVkZSAiVGV4dEJvdW5kYXJpZXMuaCIK
ICNpbmNsdWRlICJUZXh0Q29udHJvbElubmVyRWxlbWVudHMuaCIKKyNpbmNsdWRlICJUZXh0UGxh
Y2Vob2xkZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5jbHVk
ZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSA8dW5pY29kZS91bm9ybTIuaD4KQEAgLTgwMyw2
ICs4MDQsMTMgQEAgc3RhdGljIGJvb2wgaGFzSGVhZGVyVGFnKEhUTUxFbGVtZW50JiBlbGVtZW50
KQogICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaDZUYWcpOwogfQogCitzdGF0aWMgYm9v
bCBzaG91bGRFbWl0UmVwbGFjZW1lbnRJbnN0ZWFkT2ZOb2RlKGNvbnN0IE5vZGUmIG5vZGUpCit7
CisgICAgLy8gUGxhY2Vob2xkZXJzIHNob3VsZCBldmVudHVhbGx5IGRpc2FwcGVhciwgc28gdHJl
YXRpbmcgdGhlbSBhcyBhIGxpbmUgYnJlYWsgZG9lc24ndCBtYWtlIHNlbnNlCisgICAgLy8gYXMg
d2hlbiB0aGV5IGFyZSByZW1vdmVkIHRoZSB0ZXh0IGFmdGVyIGl0IGlzIGNvbWJpbmVkIHdpdGgg
dGhlIHRleHQgYmVmb3JlIGl0LgorICAgIHJldHVybiBpczxUZXh0UGxhY2Vob2xkZXJFbGVtZW50
Pihub2RlKTsKK30KKwogc3RhdGljIGJvb2wgc2hvdWxkRW1pdE5ld2xpbmVzQmVmb3JlQW5kQWZ0
ZXJOb2RlKE5vZGUmIG5vZGUpCiB7CiAgICAgLy8gQmxvY2sgZmxvdyAodmVyc3VzIGlubGluZSBm
bG93KSBpcyByZXByZXNlbnRlZCBieSBoYXZpbmcKQEAgLTg0MCw3ICs4NDgsMTAgQEAgc3RhdGlj
IGJvb2wgc2hvdWxkRW1pdE5ld2xpbmVzQmVmb3JlQW5kQWZ0ZXJOb2RlKE5vZGUmIG5vZGUpCiAg
ICAgICAgIGlmICh0YWJsZSAmJiAhdGFibGUtPmlzSW5saW5lKCkpCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9Ci0gICAgCisKKyAgICBpZiAoc2hvdWxkRW1pdFJlcGxhY2VtZW50SW5z
dGVhZE9mTm9kZShub2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgcmV0dXJuICFy
ZW5kZXJlci0+aXNJbmxpbmUoKQogICAgICAgICAmJiBpczxSZW5kZXJCbG9jaz4oKnJlbmRlcmVy
KQogICAgICAgICAmJiAhcmVuZGVyZXItPmlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQo
KQpAQCAtOTk4LDYgKzEwMDksOSBAQCB2b2lkIFRleHRJdGVyYXRvcjo6cmVwcmVzZW50Tm9kZU9m
ZnNldFplcm8oKQogICAgIH0gZWxzZSBpZiAoc2hvdWxkRW1pdFNwYWNlQmVmb3JlQW5kQWZ0ZXJO
b2RlKCptX25vZGUpKSB7CiAgICAgICAgIGlmIChzaG91bGRSZXByZXNlbnROb2RlT2Zmc2V0WmVy
bygpKQogICAgICAgICAgICAgZW1pdENoYXJhY3RlcignICcsICptX25vZGUtPnBhcmVudE5vZGUo
KSwgbV9ub2RlLCAwLCAwKTsKKyAgICB9IGVsc2UgaWYgKHNob3VsZEVtaXRSZXBsYWNlbWVudElu
c3RlYWRPZk5vZGUoKm1fbm9kZSkpIHsKKyAgICAgICAgaWYgKHNob3VsZFJlcHJlc2VudE5vZGVP
ZmZzZXRaZXJvKCkpCisgICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKDB4RkZGQywgKm1fbm9kZS0+
cGFyZW50Tm9kZSgpLCBtX25vZGUsIDAsIDApOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCBiYTdlNTRkMDU1NmM0ODNmMjJlNGFjZjRh
Y2QyYjkzZjU5ZmI3NmRiLi41OGM4Y2YwYjc2MmQzYzY2MWY3YTZkZjlhNTUwODA2NzdhOGRhN2Nj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaApAQCAtNzI0LDYg
KzcyNCw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFVJV0tHZXN0dXJlVHlwZSkgewog
LSAodm9pZClfY2FuY2VsTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXI7CiAKIEBvcHRpb25hbAor
LSAodm9pZClpbnNlcnRUZXh0UGxhY2Vob2xkZXJXaXRoU2l6ZTooQ0dTaXplKXNpemUgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKFVJVGV4dFBsYWNlaG9sZGVyICopKWNvbXBsZXRpb25IYW5k
bGVyOworLSAodm9pZClyZW1vdmVUZXh0UGxhY2Vob2xkZXI6KFVJVGV4dFBsYWNlaG9sZGVyICop
cGxhY2Vob2xkZXIgd2lsbEluc2VydFRleHQ6KEJPT0wpd2lsbEluc2VydFRleHQgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOworCiAtICh2b2lkKWNs
ZWFyU2VsZWN0aW9uOwogLSAodm9pZClyZXBsYWNlRGljdGF0ZWRUZXh0OihOU1N0cmluZyAqKW9s
ZFRleHQgd2l0aFRleHQ6KE5TU3RyaW5nICopbmV3VGV4dDsKIC0gKHZvaWQpcmVxdWVzdERpY3Rh
dGlvbkNvbnRleHQ6KHZvaWQgKF4pKE5TU3RyaW5nICpzZWxlY3RlZFRleHQsIE5TU3RyaW5nICpw
cmVmaXhUZXh0LCBOU1N0cmluZyAqcG9zdGZpeFRleHQpKWNvbXBsZXRpb25IYW5kbGVyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KaW5kZXggNTRhYzE2NTA1YWIzYjRmMjA4Yzg0NjQ2YjIzODEyMWZlN2YyZGU1Yi4u
M2RkYTI1NzQ2N2U1OTc1MTZkYWVmNjQ2MDIyMzFhMDI0MzVhYzVmNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CkBAIC03OTM4LDYgKzc5MzgsOCBAQCAtICh2b2lkKXJlbW92ZVRleHRQbGFjZWhvbGRlcjooVUlU
ZXh0UGxhY2Vob2xkZXIgKilwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDooQgogICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Igd2lsbEluc2VydFRleHQuIFNlZSA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODc0Nz4uCiAgICAgaWYgKGF1dG8qIHdr
VGV4dFBsYWNlaG9sZGVyID0gZHluYW1pY19vYmpjX2Nhc3Q8V0tUZXh0UGxhY2Vob2xkZXI+KHBs
YWNlaG9sZGVyKSkKICAgICAgICAgX3BhZ2UtPnJlbW92ZVRleHRQbGFjZWhvbGRlcih3a1RleHRQ
bGFjZWhvbGRlci5lbGVtZW50Q29udGV4dCwgbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgZWxzZQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCiBzdGF0aWMg
VmVjdG9yPFdlYkNvcmU6OkludFNpemU+IHNpemVzT2ZQbGFjZWhvbGRlckVsZW1lbnRzVG9JbnNl
cnRXaGVuRHJvcHBpbmdJdGVtcyhOU0FycmF5PE5TSXRlbVByb3ZpZGVyICo+ICppdGVtUHJvdmlk
ZXJzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGE0NzJjODY0NjNhMmJlMDY3MzdlM2Q3YzI5OWI2NDM5YmY3Y2QxYWYuLjA0MTFjMTdiMzVjZTE0
MGZjYWQ4ZmU3ZDVmMjAyOTZlYjU5NWRhYjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNy0xNSAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgc2hvdWxkIHJlcHJlc2VudCBg
VGV4dFBsYWNlaG9sZGVyRWxlbWVudGAgYXMgYW4gYE5TVGV4dEF0dGFjaG1lbnRDaGFyYWN0ZXJg
IGluc3RlYWQgb2YgYSBgXG5gCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTQzMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY0Nzc5NTU4PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvaW9zL1VJS2l0U1BJLmg6CisgICAgICAgIEFkZCBtaXNzaW5nIFNQSSBkZWNsYXJhdGlvbnMu
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0RvY3VtZW50RWRp
dGluZ0NvbnRleHQubW06CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgc3luY2hyb25vdXNseUlu
c2VydFRleHRQbGFjZWhvbGRlcldpdGhTaXplOl0pOiBBZGRlZC4KKyAgICAgICAgKC1bVGVzdFdL
V2ViVmlldyBzeW5jaHJvbm91c2x5UmVtb3ZlVGV4dFBsYWNlaG9sZGVyOndpbGxJbnNlcnRUZXh0
Ol0pOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5SZXF1ZXN0
QmVmb3JlSW5saW5lUGxhY2Vob2xkZXIpOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuRG9jdW1lbnRF
ZGl0aW5nQ29udGV4dC5SZXF1ZXN0QWZ0ZXJJbmxpbmVQbGFjZWhvbGRlcik6IEFkZGVkLgorICAg
ICAgICAoVEVTVC5Eb2N1bWVudEVkaXRpbmdDb250ZXh0LlJlcXVlc3RCZWZvcmVCbG9ja1BsYWNl
aG9sZGVyKTogQWRkZWQuCisgICAgICAgIChURVNULkRvY3VtZW50RWRpdGluZ0NvbnRleHQuUmVx
dWVzdEFmdGVyQmxvY2tQbGFjZWhvbGRlcik6IEFkZGVkLgorCiAyMDIwLTA3LTE0ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIy
NjQxMDEpOiBTaGFyaW5nIGEgbGluayBhdHRhY2hlcyBhbiBpbWFnZSBpbnN0ZWFkIG9mIHRoZSBV
UkwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG9j
dW1lbnRFZGl0aW5nQ29udGV4dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbQppbmRleCAzNmMxMzcyMTdhZjZmYzg1ZmY0
YzJkYzI5NWJkYjZhNTQzMDkzNDJkLi5jMTNjZmRhZDA4ZWIzMTM4NTAyODcwNmMyYjZkYjI1ODI1
ZWVhMWQ5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0RvY3VtZW50RWRpdGluZ0NvbnRleHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Eb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tCkBAIC0xNTEsNiArMTUxLDI3
IEBAIC0gKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqKXN5bmNocm9ub3VzbHlSZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6CiAgICAgcmV0dXJuIHJlc3VsdC5hdXRvcmVsZWFz
ZSgpOwogfQogCistIChVSVRleHRQbGFjZWhvbGRlciAqKXN5bmNocm9ub3VzbHlJbnNlcnRUZXh0
UGxhY2Vob2xkZXJXaXRoU2l6ZTooQ0dTaXplKXNpemUKK3sKKyAgICBfX2Jsb2NrIGJvb2wgZmlu
aXNoZWQgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIFJldGFpblB0cjxVSVRleHRQbGFjZWhvbGRlcj4g
cmVzdWx0OworICAgIFtzZWxmLnRleHRJbnB1dENvbnRlbnRWaWV3IGluc2VydFRleHRQbGFjZWhv
bGRlcldpdGhTaXplOnNpemUgY29tcGxldGlvbkhhbmRsZXI6XihVSVRleHRQbGFjZWhvbGRlciAq
cGxhY2Vob2xkZXIpIHsKKyAgICAgICAgcmVzdWx0ID0gcGxhY2Vob2xkZXI7CisgICAgICAgIGZp
bmlzaGVkID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZp
bmlzaGVkKTsKKyAgICByZXR1cm4gcmVzdWx0LmF1dG9yZWxlYXNlKCk7Cit9CisKKy0gKHZvaWQp
c3luY2hyb25vdXNseVJlbW92ZVRleHRQbGFjZWhvbGRlcjooVUlUZXh0UGxhY2Vob2xkZXIgKilw
bGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDooQk9PTCl3aWxsSW5zZXJ0VGV4dAoreworICAgIF9f
YmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIFtzZWxmLnRleHRJbnB1dENvbnRlbnRW
aWV3IHJlbW92ZVRleHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDp3aWxs
SW5zZXJ0VGV4dCBjb21wbGV0aW9uSGFuZGxlcjpeKHZvaWQpIHsKKyAgICAgICAgZmluaXNoZWQg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZmluaXNoZWQp
OworfQorCiBAZW5kCiAKIHN0YXRpYyBOU1N0cmluZyAqYXBwbHlTdHlsZShOU1N0cmluZyAqaHRt
bFN0cmluZykKQEAgLTgzMyw2ICs4NTQsNzQgQEAgVEVTVChEb2N1bWVudEVkaXRpbmdDb250ZXh0
LCBSZXF1ZXN0VGhyZWVXb3Jkc0Fyb3VuZFNlbGVjdGlvbikKICAgICBFWFBFQ1RfTlNTVFJJTkdf
RVEoIiBvdmVyIHRoZSBsYXp5IiwgY29udGV4dC5jb250ZXh0QWZ0ZXIpOwogfQogCitURVNUKERv
Y3VtZW50RWRpdGluZ0NvbnRleHQsIFJlcXVlc3RCZWZvcmVJbmxpbmVQbGFjZWhvbGRlcikKK3sK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiPHNwYW4gaWQ9J3dyYXBwZXInIGNv
bnRlbnRlZGl0YWJsZT5oZWxsbyB3b3JsZDwvc3Bhbj4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKHdyYXBw
ZXIuZmlyc3RDaGlsZCwgNSkiXTsgLy8gUGxhY2UgY3Vyc29yIGFmdGVyICJoZWxsbyIuCisKKyAg
ICBhdXRvICpwbGFjZWhvbGRlciA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRUZXh0UGxh
Y2Vob2xkZXJXaXRoU2l6ZTpDR1NpemVNYWtlKDUsIDUpXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwo
cGxhY2Vob2xkZXIpOworCisgICAgYXV0byAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVlc3RU
ZXh0LCBVSVRleHRHcmFudWxhcml0eUNoYXJhY3RlciwgMjAwKV07CisgICAgRVhQRUNUX05PVF9O
VUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiaGVsbG8iLCBjb250ZXh0LmNv
bnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiXHVGRkZDIHdvcmxkIiwgY29u
dGV4dC5jb250ZXh0QWZ0ZXIpOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseVJlbW92ZVRl
eHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDpOT107Cit9CisKK1RFU1Qo
RG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdEFmdGVySW5saW5lUGxhY2Vob2xkZXIpCit7
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBwbHlTdHlsZShAIjxzcGFuIGlkPSd3cmFwcGVyJyBj
b250ZW50ZWRpdGFibGU+aGVsbG8gd29ybGQ8L3NwYW4+IildOworICAgIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbih3cmFw
cGVyLmZpcnN0Q2hpbGQsIDYpIl07IC8vIFBsYWNlIGN1cnNvciBiZWZvcmUgIndvcmxkIi4KKwor
ICAgIGF1dG8gKnBsYWNlaG9sZGVyID0gW3dlYlZpZXcgc3luY2hyb25vdXNseUluc2VydFRleHRQ
bGFjZWhvbGRlcldpdGhTaXplOkNHU2l6ZU1ha2UoNSwgNSldOworICAgIEVYUEVDVF9OT1RfTlVM
TChwbGFjZWhvbGRlcik7CisKKyAgICBhdXRvICpjb250ZXh0ID0gW3dlYlZpZXcgc3luY2hyb25v
dXNseVJlcXVlc3REb2N1bWVudENvbnRleHQ6bWFrZVJlcXVlc3QoVUlXS0RvY3VtZW50UmVxdWVz
dFRleHQsIFVJVGV4dEdyYW51bGFyaXR5Q2hhcmFjdGVyLCAyMDApXTsKKyAgICBFWFBFQ1RfTk9U
X05VTEwoY29udGV4dCk7CisgICAgRVhQRUNUX05TU1RSSU5HX0VRKCJoZWxsbyAiLCBjb250ZXh0
LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiXHVGRkZDd29ybGQiLCBj
b250ZXh0LmNvbnRleHRBZnRlcik7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVtb3Zl
VGV4dFBsYWNlaG9sZGVyOnBsYWNlaG9sZGVyIHdpbGxJbnNlcnRUZXh0Ok5PXTsKK30KKworVEVT
VChEb2N1bWVudEVkaXRpbmdDb250ZXh0LCBSZXF1ZXN0QmVmb3JlQmxvY2tQbGFjZWhvbGRlcikK
K3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiPHNwYW4gaWQ9J3dyYXBwZXIn
IGNvbnRlbnRlZGl0YWJsZT5oZWxsbyB3b3JsZDwvc3Bhbj4iKV07CisgICAgW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKHdy
YXBwZXIuZmlyc3RDaGlsZCwgNSkiXTsgLy8gUGxhY2UgY3Vyc29yIGFmdGVyICJoZWxsbyIuCisK
KyAgICBhdXRvICpwbGFjZWhvbGRlciA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlJbnNlcnRUZXh0
UGxhY2Vob2xkZXJXaXRoU2l6ZTpDR1NpemVNYWtlKDAsIDUpXTsKKyAgICBFWFBFQ1RfTk9UX05V
TEwocGxhY2Vob2xkZXIpOworCisgICAgYXV0byAqY29udGV4dCA9IFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlSZXF1ZXN0RG9jdW1lbnRDb250ZXh0Om1ha2VSZXF1ZXN0KFVJV0tEb2N1bWVudFJlcXVl
c3RUZXh0LCBVSVRleHRHcmFudWxhcml0eUNoYXJhY3RlciwgMjAwKV07CisgICAgRVhQRUNUX05P
VF9OVUxMKGNvbnRleHQpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiaGVsbG8iLCBjb250ZXh0
LmNvbnRleHRCZWZvcmUpOworICAgIEVYUEVDVF9OU1NUUklOR19FUSgiXHVGRkZDIHdvcmxkIiwg
Y29udGV4dC5jb250ZXh0QWZ0ZXIpOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseVJlbW92
ZVRleHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDpOT107Cit9CisKK1RF
U1QoRG9jdW1lbnRFZGl0aW5nQ29udGV4dCwgUmVxdWVzdEFmdGVyQmxvY2tQbGFjZWhvbGRlcikK
K3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiPHNwYW4gaWQ9J3dyYXBwZXIn
IGNvbnRlbnRlZGl0YWJsZT5oZWxsbyB3b3JsZDwvc3Bhbj4iKV07CisgICAgW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKHdy
YXBwZXIuZmlyc3RDaGlsZCwgNikiXTsgLy8gUGxhY2UgY3Vyc29yIGJlZm9yZSAid29ybGQiLgor
CisgICAgYXV0byAqcGxhY2Vob2xkZXIgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5SW5zZXJ0VGV4
dFBsYWNlaG9sZGVyV2l0aFNpemU6Q0dTaXplTWFrZSgwLCA1KV07CisgICAgRVhQRUNUX05PVF9O
VUxMKHBsYWNlaG9sZGVyKTsKKworICAgIGF1dG8gKmNvbnRleHQgPSBbd2ViVmlldyBzeW5jaHJv
bm91c2x5UmVxdWVzdERvY3VtZW50Q29udGV4dDptYWtlUmVxdWVzdChVSVdLRG9jdW1lbnRSZXF1
ZXN0VGV4dCwgVUlUZXh0R3JhbnVsYXJpdHlDaGFyYWN0ZXIsIDIwMCldOworICAgIEVYUEVDVF9O
T1RfTlVMTChjb250ZXh0KTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoImhlbGxvIiwgY29udGV4
dC5jb250ZXh0QmVmb3JlKTsKKyAgICBFWFBFQ1RfTlNTVFJJTkdfRVEoIlx1RkZGQ3dvcmxkIiwg
Y29udGV4dC5jb250ZXh0QWZ0ZXIpOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseVJlbW92
ZVRleHRQbGFjZWhvbGRlcjpwbGFjZWhvbGRlciB3aWxsSW5zZXJ0VGV4dDpOT107Cit9CisKIC8v
IE1BUks6IFRlc3RzIHVzaW5nIHNlbnRlbmNlIGdyYW51bGFyaXR5CiAKIGNvbnN0ZXhwciBOU1N0
cmluZyAqIGNvbnN0IHRocmVlU2VudGVuY2VzRXhhbXBsZSA9IEAiPHAgaWQ9J3RleHQnIGNvbnRl
bnRlZGl0YWJsZT5UaGUgZmlyc3Qgc2VudGVuY2UuIFRoZSBzZWNvbmQgc2VudGVuY2UuIFRoZSB0
aGlyZCBzZW50ZW5jZS48L3A+IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9z
L1VJS2l0U1BJLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oCmluZGV4IDFl
YjgzMTQ4ODJmZTliNDA3ZTQ3NWQ4MWQ2MjAxNTlkMDU2Y2Q4MGMuLmQ2M2Q3ZDdkZTc4MjQ3ZWU5
NTY1OWE0YzQ0MzQ4NmZmZmYzMDg5ODggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
aW9zL1VJS2l0U1BJLmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaApA
QCAtMTgxLDYgKzE4MSwxMCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNJbnRlZ2VyLCBVSVdLRG9j
dW1lbnRSZXF1ZXN0RmxhZ3MpIHsKIC0gKHZvaWQpdXBkYXRlU2VsZWN0aW9uV2l0aEV4dGVudFBv
aW50OihDR1BvaW50KXBvaW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIHNlbGVj
dGlvbkVuZElzTW92aW5nKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpdXBkYXRlU2VsZWN0
aW9uV2l0aEV4dGVudFBvaW50OihDR1BvaW50KXBvaW50IHdpdGhCb3VuZGFyeTooVUlUZXh0R3Jh
bnVsYXJpdHkpZ3JhbnVsYXJpdHkgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgc2Vs
ZWN0aW9uRW5kSXNNb3ZpbmcpKWNvbXBsZXRpb25IYW5kbGVyOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU1N0cmluZyAqc2VsZWN0ZWRUZXh0OworCitAb3B0aW9uYWwKKy0gKHZv
aWQpaW5zZXJ0VGV4dFBsYWNlaG9sZGVyV2l0aFNpemU6KENHU2l6ZSlzaXplIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShVSVRleHRQbGFjZWhvbGRlciAqKSljb21wbGV0aW9uSGFuZGxlcjsK
Ky0gKHZvaWQpcmVtb3ZlVGV4dFBsYWNlaG9sZGVyOihVSVRleHRQbGFjZWhvbGRlciAqKXBsYWNl
aG9sZGVyIHdpbGxJbnNlcnRUZXh0OihCT09MKXdpbGxJbnNlcnRUZXh0IGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKIEBlbmQKIAogQGludGVyZmFj
ZSBVSVZpZXdDb250cm9sbGVyICgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>