<?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>208687</bug_id>
          
          <creation_ts>2020-03-05 19:11:28 -0800</creation_ts>
          <short_desc>Adopt UIContextMenu for WKFileUploadPanel</short_desc>
          <delta_ts>2020-06-17 13:20:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          <blocked>213314</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1626451</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-05 19:11:28 -0800</bug_when>
    <thetext>Adopt UIContextMenu</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626819</commentid>
    <comment_count>1</comment_count>
      <attachid>392758</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-06 12:53:15 -0800</bug_when>
    <thetext>Created attachment 392758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626836</commentid>
    <comment_count>2</comment_count>
      <attachid>392764</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-06 13:23:26 -0800</bug_when>
    <thetext>Created attachment 392764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626849</commentid>
    <comment_count>3</comment_count>
      <attachid>392767</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-06 13:42:47 -0800</bug_when>
    <thetext>Created attachment 392767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626858</commentid>
    <comment_count>4</comment_count>
      <attachid>392767</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-06 14:01:24 -0800</bug_when>
    <thetext>Comment on attachment 392767
Patch

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

&gt; Source/WebKit/Platform/spi/ios/UIKitSPI.h:1100
&gt; +typedef NS_ENUM(NSUInteger, _UIContextMenuLayout) {

You can limit this to only the values you need, as long as you specify their values explicitly

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:279
&gt; +    [[UIViewController _viewControllerForFullScreenPresentationFromView:_view.get().get()] dismissViewControllerAnimated:NO completion:nil];

most (all?) of your .get().get()s should be .getAutoreleased()

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:421
&gt; +        NSArray* actions;
&gt; +        NSArray *mediaTypesBlock = UTIsForMIMETypes(_mimeTypes.get()).allObjects;

Stars on the right!

What is &quot;mediaTypesBlock&quot;? Also, it&apos;s not a block.

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:423
&gt; +        BOOL containsImageMediaTypeBlock = !mediaTypesBlock.count || arrayContainsUTIThatConformsTo(mediaTypesBlock, kUTTypeImage);

Contains a block? What is happening?

Also, why does it contain it if there aren&apos;t any (if count is 0)? Seems like a misleading name

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:427
&gt; +        UIAction *browseAction = [UIAction actionWithTitle:[strongSelf _browseFilesButtonLabel] image:[UIImage systemImageNamed:@&quot;ellipsis&quot;] identifier:@&quot;browse&quot; handler:^(__kindof UIAction *action) {

If you add a null-check-and-early-return after creating strongSelf, you can just use &apos;self&apos; in all these places; strongSelf is ensuring it&apos;s alive, so self will remain valid.

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:448
&gt; +    return [UIContextMenuConfiguration configurationWithIdentifier:@&quot;file&quot; previewProvider:nil actionProvider:actionMenuProvider];

Is this identifier important in any way? If it is, this. seems like a poor choice (should it have a WK prefix? or be the class name? or ... what do we do in other places?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626896</commentid>
    <comment_count>5</comment_count>
      <attachid>392781</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-06 15:09:36 -0800</bug_when>
    <thetext>Created attachment 392781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626909</commentid>
    <comment_count>6</comment_count>
      <attachid>392787</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-06 15:23:54 -0800</bug_when>
    <thetext>Created attachment 392787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627255</commentid>
    <comment_count>7</comment_count>
      <attachid>392787</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-07 11:20:38 -0800</bug_when>
    <thetext>Comment on attachment 392787
Patch

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

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:454
&gt; +- (void)_initInteraction

Do not love &quot;init&quot;. But also I think this will go away.

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:457
&gt; +    if (!_documentMenuInteraction) {
&gt; +        _documentMenuInteraction = adoptNS([[UIContextMenuInteraction alloc] initWithDelegate:self]);

I think this will cause problems (having two UIContextMenuInteractions installed on the same view without more care) and so I think you should do the same workaround you did for DD, allowing you to just use the main UIContextMenuInteraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627294</commentid>
    <comment_count>8</comment_count>
      <attachid>392889</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-07 13:45:16 -0800</bug_when>
    <thetext>Created attachment 392889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627300</commentid>
    <comment_count>9</comment_count>
      <attachid>392889</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-07 13:49:27 -0800</bug_when>
    <thetext>Comment on attachment 392889
Patch

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

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:457
&gt; +        [self _cancel];

Why cancel?

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:465
&gt; +- (void)_removeInteraction
&gt; +{
&gt; +    if (_documentMenuInteraction)
&gt; +        [_view removeInteraction:_documentMenuInteraction.get()];
&gt; +}

No need for all the underscores in method names in this file, this class is not SPI/API.

Also, do you want to nil it out here? Is it OK to remove it twice?

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:467
&gt; +- (void)_initInteraction

As previously mentioned, this is not a great name. Maybe ensureContextMenuInteraction?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627308</commentid>
    <comment_count>10</comment_count>
      <attachid>392896</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-07 14:00:07 -0800</bug_when>
    <thetext>Created attachment 392896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627316</commentid>
    <comment_count>11</comment_count>
      <attachid>392896</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-07 14:13:51 -0800</bug_when>
    <thetext>Comment on attachment 392896
Patch

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

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:427
&gt; +        if (!strongSelf)
&gt; +            return [UIMenu menuWithTitle:@&quot;&quot; children:@[]];

it is valid to return a nil menu, right? Wouldn&apos;t that be more appropriate?

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:477
&gt; +- (void)_showFilePickerMenu

The underscores!

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:488
&gt; +- (void)_showDocumentPickerMenu

Again!

&gt; Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:493
&gt; +    BOOL containsImageMediaType = !mediaTypes.count || arrayContainsUTIThatConformsTo(mediaTypes, kUTTypeImage);
&gt; +    BOOL containsVideoMediaType = !mediaTypes.count || arrayContainsUTIThatConformsTo(mediaTypes, kUTTypeMovie);

Is this &quot;contains&quot;, or maybe &quot;allows&quot;?

These are unused on Catalyst, maybe move them inside the #else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627317</commentid>
    <comment_count>12</comment_count>
      <attachid>392898</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-07 14:26:14 -0800</bug_when>
    <thetext>Created attachment 392898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627405</commentid>
    <comment_count>13</comment_count>
      <attachid>392926</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-07 18:37:19 -0800</bug_when>
    <thetext>Created attachment 392926
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627406</commentid>
    <comment_count>14</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-03-07 18:38:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/59358002&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627419</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-07 19:40:57 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 392926:

editing/spelling/spellcheck-async-remove-frame.html bug 160571 (authors: morrita@google.com, rniwa@webkit.org, and tony@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627420</commentid>
    <comment_count>16</comment_count>
      <attachid>392926</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-07 19:41:31 -0800</bug_when>
    <thetext>Comment on attachment 392926
Patch for landing

Clearing flags on attachment: 392926

Committed r258092: &lt;https://trac.webkit.org/changeset/258092&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627421</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-07 19:41:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392758</attachid>
            <date>2020-03-06 12:53:15 -0800</date>
            <delta_ts>2020-03-06 13:23:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208687-20200306125314.patch</filename>
            <type>text/plain</type>
            <size>16621</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZmODM5ZDc1OTE0ZWQz
NTVkYTUxMzkxNTM1ZmEwMzBmYWJhYWY2Yy4uOTU4ZmNlNDMxOGE1NmE2ZmU0ZWU4NGVlYWU3Y2Q3
MmRiMTQ0N2E1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVUlD
b250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBzdHJpbmcsIG5vIHRlc3RzIG5lZWRlZC4KKwor
ICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIwMjAtMDMtMDQgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBuZXcgYW5kIGlt
cHJvdmVkIENGTmV0d29yayBTUEkgZm9yIGNvb2tpZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAxZGY5MjViNTQ0OTZiNThkODM4NWYxNzM0NjExNzM3ZTRiZDRkNTFjLi4wYmM1ZWVl
ODRiMWYzYTQyMjg2Y2Y2YzJhM2JhMzk3NjJkMWEyMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDIwLTAzLTA1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgVUlDb250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgZnJvbSB0
aGUgZGVwcmljYXRlZCBVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyIHRvIFVJQ29udGV4dE1l
bnUuCisgICAgICAgIFVJIGNoYW5nZSwgbm90IGN1cnJlbnRseSB0ZXN0YWJsZS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgt
W1dLRmlsZVVwbG9hZFBhbmVsIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFu
ZWwgZGlzbWlzc10pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjdXJyZW50QXZhaWxh
YmxlQWN0aW9uVGl0bGVzXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9icm93c2VG
aWxlc0J1dHRvbkxhYmVsXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGNvbnRleHRN
ZW51SW50ZXJhY3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlv
bjpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX2NvbnRleHRNZW51SW50ZXJhY3Rp
b246c3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRmlsZVVw
bG9hZFBhbmVsIGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJhdGlvbkZvck1lbnVBdExv
Y2F0aW9uOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfaW5pdEludGVyYWN0aW9u
XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9zaG93RmlsZVBpY2tlck1lbnVdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3Nob3dEb2N1bWVudFBpY2tlck1lbnVdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3ByZXNlbnRQb3BvdmVyV2l0aENvbnRlbnRW
aWV3Q29udHJvbGxlcjphbmltYXRlZDpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwg
X3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6YW5pbWF0ZWQ6XSk6CisgICAgICAgIChw
aG90b0xpYnJhcnlJY29uKTogRGVsZXRlZC4KKyAgICAgICAgKGNhbWVyYUljb24pOiBEZWxldGVk
LgorCiAyMDIwLTAzLTA0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQ2FsbCBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lIGJlZm9y
ZSBldmFsdWF0aW5nIEphdmFTY3JpcHQgaW4gbmV3bHkgY3JlYXRlZCB3b3JsZHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2Uv
V2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDc1NTIyNWU2YmEzZGUz
MTM4ZDM2NmYxNDdmZmY1Yjg0YTI4ZmFkOTYuLmIxMGIzZTA3ZTU0YjlmYjI4NDdhMTFjYjcwOGYx
MGMwZGQ0YjBiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5ncwpAQCAtMTU0LDYgKzE1NCw5IEBACiAvKiBMYWJlbCBmb3IgdGhlIGJvb2sgd2l0aCBBcHBs
ZSBQYXkgYnV0dG9uLiAqLwogIkJvb2sgd2l0aCBBcHBsZSBQYXkiID0gIkJvb2sgd2l0aCBBcHBs
ZSBQYXkiOwogCisvKiBGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZvciBj
aG9vc2luZyBhbiBleGlzdGluZyBmaWxlIGZyb20gdGhlIGZpbGUgYnJvd2VyICovCisiQnJvd3Nl
IChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiA9ICJCcm93c2UiOworCiAvKiBPcHRpb24gaW4g
c2VnbWVudGVkIGNvbnRyb2wgZm9yIGluc2VydGluZyBhIGJ1bGxldGVkIGxpc3QgaW4gdGV4dCBl
ZGl0aW5nICovCiAiQnVsbGV0ZWQgbGlzdCIgPSAiQnVsbGV0ZWQgbGlzdCI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggNGE2NmU0MzgxY2VkMTI2ZThm
NjQwY2JmMDUwOTcwMGIyMDA4N2I1Zi4uNDQ5NjZmNzM4NTVhOWYxYWZjZTg2NDgyMDY2Y2FkMzJk
YTRjOWJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAg
LTExMDQsNiArMTEwNCwxMSBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNJbnRlZ2VyLCBVSVdLRG9j
dW1lbnRSZXF1ZXN0RmxhZ3MpIHsKIEBpbnRlcmZhY2UgVUlUYXJnZXRlZFByZXZpZXcgKCkKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcsIHNldHRlcj1fc2V0T3ZlcnJpZGVQb3NpdGlvblRy
YWNraW5nVmlldzopIFVJVmlldyAqb3ZlcnJpZGVQb3NpdGlvblRyYWNraW5nVmlldzsKIEBlbmQK
KworQGludGVyZmFjZSBVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKCkKKy0gKHZvaWQpX3ByZXNl
bnRNZW51QXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbjsKK0BlbmQKKwogI2VuZGlmIC8vIFVT
RShVSUNPTlRFWFRNRU5VKQogCiAjaWYgSEFWRShMSU5LX1BSRVZJRVcpICYmIFVTRShVSUNPTlRF
WFRNRU5VKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dL
RmlsZVVwbG9hZFBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dL
RmlsZVVwbG9hZFBhbmVsLm1tCmluZGV4IDVkYjQ2NWZiMjMyMDhmNDE4MDY0MTMxNTZjZGYwNjVh
MjQ1ZDlkYmIuLjZjOTVhMWMxZWQwYWY0ODNhOTdkZjJkZTdkZTcxNjZjZDg2MTYwNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5l
bC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2Fk
UGFuZWwubW0KQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdp
c3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvU3RyaW5nVmlldy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNjcsMTggKzY4
LDYgQEAgc3RhdGljIGJvb2wgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKE5TQXJyYXk8
TlNTdHJpbmcgKj4gKnR5cGVJZGVudGlmaWVycywKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNw
cmFnbWEgbWFyayAtIERvY3VtZW50IHBpY2tlciBpY29ucwotCi1zdGF0aWMgaW5saW5lIFVJSW1h
Z2UgKnBob3RvTGlicmFyeUljb24oKQotewotICAgIHJldHVybiBfVUlJbWFnZUdldFdlYktpdFBo
b3RvTGlicmFyeUljb24oKTsKLX0KLQotc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29u
KCkKLXsKLSAgICByZXR1cm4gX1VJSW1hZ2VHZXRXZWJLaXRUYWtlUGhvdG9PclZpZGVvSWNvbigp
OwotfQotCiAjcHJhZ21hIG1hcmsgLSBfV0tGaWxlVXBsb2FkSXRlbQogCiBAaW50ZXJmYWNlIF9X
S0ZpbGVVcGxvYWRJdGVtIDogTlNPYmplY3QKQEAgLTE2MSwxMSArMTUwLDExIEBAIEBlbmQKIAog
I3ByYWdtYSBtYXJrIC0gV0tGaWxlVXBsb2FkUGFuZWwKIAotQGludGVyZmFjZSBXS0ZpbGVVcGxv
YWRQYW5lbCAoKSA8VUlQb3BvdmVyQ29udHJvbGxlckRlbGVnYXRlLCBVSU5hdmlnYXRpb25Db250
cm9sbGVyRGVsZWdhdGUsIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyRGVsZWdhdGUsIFVJRG9jdW1l
bnRQaWNrZXJEZWxlZ2F0ZSwgVUlEb2N1bWVudE1lbnVEZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV0tG
aWxlVXBsb2FkUGFuZWwgKCkgPFVJUG9wb3ZlckNvbnRyb2xsZXJEZWxlZ2F0ZSwgVUlOYXZpZ2F0
aW9uQ29udHJvbGxlckRlbGVnYXRlLCBVSUltYWdlUGlja2VyQ29udHJvbGxlckRlbGVnYXRlLCBV
SURvY3VtZW50UGlja2VyRGVsZWdhdGUsIFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRl
PgogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tGaWxlVXBsb2FkUGFuZWwgewotICAgIFdLQ29u
dGVudFZpZXcgKl92aWV3OworICAgIFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+IF92aWV3Owog
ICAgIFJlZlB0cjxXZWJLaXQ6OldlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk+IF9saXN0
ZW5lcjsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX21pbWVUeXBlczsKICAgICBDR1BvaW50IF9p
bnRlcmFjdGlvblBvaW50OwpAQCAtMTc2LDcgKzE2NSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0Zp
bGVVcGxvYWRQYW5lbCB7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICAgICBSZXRhaW5QdHI8VUlQb3BvdmVyQ29udHJvbGxlcj4gX3ByZXNlbnRhdGlvblBvcG92ZXI7
IC8vIGlQYWQgZm9yIGFjdGlvbiBzaGVldCBhbmQgUGhvdG8gTGlicmFyeS4KICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAgICBSZXRhaW5QdHI8VUlEb2N1bWVudE1lbnVW
aWV3Q29udHJvbGxlcj4gX2RvY3VtZW50TWVudUNvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFVJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX2RvY3VtZW50TWVudUludGVyYWN0aW9uOwogICAgIFJl
dGFpblB0cjxVSURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXI+IF9kb2N1bWVudFBpY2tlckNv
bnRyb2xsZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFDYXB0dXJlVHlwZSBfbWVkaWFDYXB0dXJlVHlw
ZTsKIH0KQEAgLTE5Myw4ICsxODIsOSBAQCAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbX2ltYWdl
UGlja2VyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHNldERl
bGVnYXRlOm5pbF07Ci0gICAgW19kb2N1bWVudE1lbnVDb250cm9sbGVyIHNldERlbGVnYXRlOm5p
bF07CiAgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAg
ICBpZiAoX2RvY3VtZW50TWVudUludGVyYWN0aW9uKQorICAgICAgICBbX3ZpZXcgcmVtb3ZlSW50
ZXJhY3Rpb246X2RvY3VtZW50TWVudUludGVyYWN0aW9uLmdldCgpXTsKIAogICAgIFtzdXBlciBk
ZWFsbG9jXTsKIH0KQEAgLTI4Niw3ICsyNzYsNyBAQCAtICh2b2lkKWRpc21pc3MKICAgICAvLyBE
aXNtaXNzIGFueSB2aWV3IGNvbnRyb2xsZXIgdGhhdCBpcyBiZWluZyBwcmVzZW50ZWQuIFRoaXMg
d29ya3MgZm9yIGFsbCB0eXBlcyBvZiB2aWV3IGNvbnRyb2xsZXJzLCBwb3BvdmVycywgZXRjLgog
ICAgIC8vIElmIHRoZXJlIGlzIGFueSBraW5kIG9mIHZpZXcgY29udHJvbGxlciBwcmVzZW50ZWQg
b24gdGhpcyB2aWV3LCBpdCB3aWxsIGJlIHJlbW92ZWQuCiAgICAgCi0gICAgW1tVSVZpZXdDb250
cm9sbGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpf
dmlld10gZGlzbWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6Tk8gY29tcGxldGlvbjpuaWxdOwor
ICAgIFtbVUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2Vu
dGF0aW9uRnJvbVZpZXc6X3ZpZXcuZ2V0KCkuZ2V0KCldIGRpc21pc3NWaWV3Q29udHJvbGxlckFu
aW1hdGVkOk5PIGNvbXBsZXRpb246bmlsXTsKICAgICAKICAgICBbX3ByZXNlbnRhdGlvblBvcG92
ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBfcHJlc2VudGF0aW9uUG9wb3ZlciA9IG5pbDsKQEAg
LTM4Niw2ICszNzYsMTEgQEAgLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKV9tZWRpYVR5cGVzRm9y
UGlja2VyU291cmNlVHlwZTooVUlJbWFnZVBpY2tlckNvbnRyb2xsZXIKIAogI3ByYWdtYSBtYXJr
IC0gU291cmNlIHNlbGVjdGlvbiBtZW51CiAKKy0gKE5TU3RyaW5nICopX2Jyb3dzZUZpbGVzQnV0
dG9uTGFiZWwKK3sKKyAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkJyb3dzZSIsICJCcm93
c2UgKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQg
YnV0dG9uIHN0cmluZyBmb3IgY2hvb3NpbmcgYW4gZXhpc3RpbmcgZmlsZSBmcm9tIHRoZSBmaWxl
IGJyb3dlciIpOworfQorCiAtIChOU1N0cmluZyAqKV9waG90b0xpYnJhcnlCdXR0b25MYWJlbAog
ewogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiUGhvdG8gTGlicmFyeSIsICJQaG90byBM
aWJyYXJ5IChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiwgIkZpbGUgVXBsb2FkIGFsZXJ0IHNo
ZWV0IGJ1dHRvbiBzdHJpbmcgZm9yIGNob29zaW5nIGFuIGV4aXN0aW5nIG1lZGlhIGl0ZW0gZnJv
bSB0aGUgUGhvdG8gTGlicmFyeSIpOwpAQCAtNDAzLDYgKzM5OCw3NSBAQCAtIChOU1N0cmluZyAq
KV9jYW1lcmFCdXR0b25MYWJlbEFsbG93aW5nUGhvdG86KEJPT0wpYWxsb3dQaG90byBhbGxvd2lu
Z1ZpZGVvOihCTwogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVGFrZSBQaG90byIsICJU
YWtlIFBob3RvIChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiwgIkZpbGUgVXBsb2FkIGFsZXJ0
IHNoZWV0IGNhbWVyYSBidXR0b24gc3RyaW5nIGZvciB0YWtpbmcgb25seSBwaG90b3MiKTsKIH0K
IAorLSAoVUlUYXJnZXRlZFByZXZpZXcgKiljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRl
eHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBwcmV2aWV3Rm9ySGlnaGxpZ2h0aW5nTWVu
dVdpdGhDb25maWd1cmF0aW9uOihVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3Vy
YXRpb24KK3sKKyAgICBSZXRhaW5QdHI8VUlQcmV2aWV3UGFyYW1ldGVycz4gdW51c2VkUHJldmll
d1BhcmFtZXRlcnMgPSBhZG9wdE5TKFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0p
OworICAgIFJldGFpblB0cjxVSVByZXZpZXdUYXJnZXQ+IHByZXZpZXdUYXJnZXQgPSBhZG9wdE5T
KFtbVUlQcmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmlldy5nZXQoKS5n
ZXQoKSBjZW50ZXI6Q0dQb2ludE1ha2UoX2ludGVyYWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9u
UG9pbnQueSldKTsKKyAgICBSZXRhaW5QdHI8VUlUYXJnZXRlZFByZXZpZXc+IHByZXZpZXcgPSBh
ZG9wdE5TKFtbVUlUYXJnZXRlZFByZXZpZXcgYWxsb2NdIGluaXRXaXRoVmlldzpfdmlldy5nZXQo
KS5nZXQoKSBwYXJhbWV0ZXJzOnVudXNlZFByZXZpZXdQYXJhbWV0ZXJzLmdldCgpIHRhcmdldDpw
cmV2aWV3VGFyZ2V0LmdldCgpXSk7CisKKyAgICByZXR1cm4gcHJldmlldy5hdXRvcmVsZWFzZSgp
OworfQorCistIChfVUlDb250ZXh0TWVudVN0eWxlICopX2NvbnRleHRNZW51SW50ZXJhY3Rpb246
KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHN0eWxlRm9yTWVudVdpdGhD
b25maWd1cmF0aW9uOihVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24K
K3sKKyAgICBfVUlDb250ZXh0TWVudVN0eWxlICpzdHlsZSA9IFtfVUlDb250ZXh0TWVudVN0eWxl
IGRlZmF1bHRTdHlsZV07CisgICAgc3R5bGUucHJlZmVycmVkTGF5b3V0ID0gX1VJQ29udGV4dE1l
bnVMYXlvdXRDb21wYWN0TWVudTsKKyAgICByZXR1cm4gc3R5bGU7Cit9CisKKy0gKFVJQ29udGV4
dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVu
dUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gY29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0aW9u
OihDR1BvaW50KWxvY2F0aW9uIHsKKworICAgIFVJQ29udGV4dE1lbnVBY3Rpb25Qcm92aWRlciBh
Y3Rpb25NZW51UHJvdmlkZXIgPSBbc2VsZiwgd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0ZpbGVV
cGxvYWRQYW5lbD4oc2VsZildIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKikgLT4gVUlNZW51
ICogeworICAgICAgICBOU0FycmF5KiBhY3Rpb25zOworICAgICAgICBOU0FycmF5ICptZWRpYVR5
cGVzQmxvY2sgPSBVVElzRm9yTUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0KCkpLmFsbE9iamVjdHM7
CisKKyAgICAgICAgQk9PTCBjb250YWluc0ltYWdlTWVkaWFUeXBlQmxvY2sgPSAhbWVkaWFUeXBl
c0Jsb2NrLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVz
QmxvY2ssIGtVVFR5cGVJbWFnZSk7CisgICAgICAgIEJPT0wgY29udGFpbnNWaWRlb01lZGlhVHlw
ZUJsb2NrID0gIW1lZGlhVHlwZXNCbG9jay5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENv
bmZvcm1zVG8obWVkaWFUeXBlc0Jsb2NrLCBrVVRUeXBlTW92aWUpOworICAgICAgICBhdXRvIHN0
cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgCisgICAgICAgIFVJQWN0aW9uICpi
cm93c2VBY3Rpb24gPSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOltzdHJvbmdTZWxmIF9icm93
c2VGaWxlc0J1dHRvbkxhYmVsXSBpbWFnZTpbVUlJbWFnZSBzeXN0ZW1JbWFnZU5hbWVkOkAiZWxs
aXBzaXMiXSBpZGVudGlmaWVyOkAiYnJvd3NlIiBoYW5kbGVyOl4oX19raW5kb2YgVUlBY3Rpb24g
KmFjdGlvbikgeworICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX3Nob3dGaWxlUGlja2VyTWVudV07
CisgICAgICAgIH1dOworCisgICAgICAgIFVJQWN0aW9uICpwaG90b0FjdGlvbiA9IFtVSUFjdGlv
biBhY3Rpb25XaXRoVGl0bGU6W3N0cm9uZ1NlbGYgX3Bob3RvTGlicmFyeUJ1dHRvbkxhYmVsXSBp
bWFnZTpbVUlJbWFnZSBzeXN0ZW1JbWFnZU5hbWVkOkAiY2FtZXJhLmZpbGwiXSBpZGVudGlmaWVy
OkAicGhvdG8iIGhhbmRsZXI6XihfX2tpbmRvZiBVSUFjdGlvbiAqYWN0aW9uKSB7CisgICAgICAg
ICAgICBbc3Ryb25nU2VsZiBfc2hvd1Bob3RvUGlja2VyV2l0aFNvdXJjZVR5cGU6VUlJbWFnZVBp
Y2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlUGhvdG9MaWJyYXJ5XTsKKyAgICAgICAgfV07CisKKyAg
ICAgICAgaWYgKFtVSUltYWdlUGlja2VyQ29udHJvbGxlciBpc1NvdXJjZVR5cGVBdmFpbGFibGU6
VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXSkgeworICAgICAgICAgICAg
TlNTdHJpbmcgKmNhbWVyYVN0cmluZyA9IFtzdHJvbmdTZWxmIF9jYW1lcmFCdXR0b25MYWJlbEFs
bG93aW5nUGhvdG86Y29udGFpbnNJbWFnZU1lZGlhVHlwZUJsb2NrIGFsbG93aW5nVmlkZW86Y29u
dGFpbnNWaWRlb01lZGlhVHlwZUJsb2NrXTsKKyAgICAgICAgICAgIFVJQWN0aW9uICpjYW1lcmFB
Y3Rpb24gPSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOmNhbWVyYVN0cmluZyBpbWFnZTpbVUlJ
bWFnZSBzeXN0ZW1JbWFnZU5hbWVkOkAicmVjdGFuZ2xlLm9uLnJlY3RhbmdsZSJdIGlkZW50aWZp
ZXI6QCJjYW1lcmEiIGhhbmRsZXI6XihfX2tpbmRvZiBVSUFjdGlvbiAqYWN0aW9uKSB7CisgICAg
ICAgICAgICAgICAgX3VzaW5nQ2FtZXJhID0gWUVTOworICAgICAgICAgICAgICAgIFtzdHJvbmdT
ZWxmIF9zaG93UGhvdG9QaWNrZXJXaXRoU291cmNlVHlwZTpVSUltYWdlUGlja2VyQ29udHJvbGxl
clNvdXJjZVR5cGVDYW1lcmFdOworICAgICAgICAgICAgfV07CisgICAgICAgICAgICBhY3Rpb25z
ID0gQFtwaG90b0FjdGlvbiwgY2FtZXJhQWN0aW9uLCBicm93c2VBY3Rpb25dOworICAgICAgICB9
IGVsc2UKKyAgICAgICAgICAgIGFjdGlvbnMgPSBAW3Bob3RvQWN0aW9uLCBicm93c2VBY3Rpb25d
OworCisgICAgICAgIHJldHVybiBbVUlNZW51IG1lbnVXaXRoVGl0bGU6QCIiIGNoaWxkcmVuOmFj
dGlvbnNdOworICAgIH07CisgICAgCisgICAgcmV0dXJuIFtVSUNvbnRleHRNZW51Q29uZmlndXJh
dGlvbiBjb25maWd1cmF0aW9uV2l0aElkZW50aWZpZXI6QCJmaWxlIiBwcmV2aWV3UHJvdmlkZXI6
bmlsIGFjdGlvblByb3ZpZGVyOmFjdGlvbk1lbnVQcm92aWRlcl07Cit9CisKKy0gKHZvaWQpX2lu
aXRJbnRlcmFjdGlvbgoreworICAgIGlmICghX2RvY3VtZW50TWVudUludGVyYWN0aW9uKSB7Cisg
ICAgICAgIF9kb2N1bWVudE1lbnVJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW1tVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb24gYWxsb2NdIGluaXRXaXRoRGVsZWdhdGU6c2VsZl0pOworICAgICAgICBbX3Zp
ZXcgYWRkSW50ZXJhY3Rpb246X2RvY3VtZW50TWVudUludGVyYWN0aW9uLmdldCgpXTsKKyAgICB9
Cit9CisKKy0gKHZvaWQpX3Nob3dGaWxlUGlja2VyTWVudQoreworICAgIE5TQXJyYXkgKm1lZGlh
VHlwZXMgPSBVVElzRm9yTUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0KCkpLmFsbE9iamVjdHM7Cisg
ICAgTlNBcnJheSAqZG9jdW1lbnRUeXBlcyA9IG1lZGlhVHlwZXMuY291bnQgPyBtZWRpYVR5cGVz
IDogQFsoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlSXRlbV07CisgICAgCisgICAgX2RvY3Vt
ZW50UGlja2VyQ29udHJvbGxlciA9IGFkb3B0TlMoW1tVSURvY3VtZW50UGlja2VyVmlld0NvbnRy
b2xsZXIgYWxsb2NdIGluaXRXaXRoRG9jdW1lbnRUeXBlczpkb2N1bWVudFR5cGVzIGluTW9kZTpV
SURvY3VtZW50UGlja2VyTW9kZUltcG9ydF0pOworICAgIFtfZG9jdW1lbnRQaWNrZXJDb250cm9s
bGVyIHNldEFsbG93c011bHRpcGxlU2VsZWN0aW9uOl9hbGxvd011bHRpcGxlRmlsZXNdOworICAg
IFtfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtzZWxm
IF9wcmVzZW50RnVsbHNjcmVlblZpZXdDb250cm9sbGVyOl9kb2N1bWVudFBpY2tlckNvbnRyb2xs
ZXIuZ2V0KCkgYW5pbWF0ZWQ6WUVTXTsKK30KKwogLSAodm9pZClfc2hvd0RvY3VtZW50UGlja2Vy
TWVudQogewogICAgIE5TQXJyYXkgKm1lZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVzKF9taW1l
VHlwZXMuZ2V0KCkpLmFsbE9iamVjdHM7CkBAIC00MTYsMzUgKzQ4MCwxMyBAQCAtICh2b2lkKV9z
aG93RG9jdW1lbnRQaWNrZXJNZW51CiAjZWxzZQogICAgIEJPT0wgc2hvdWxkUHJlc2VudERvY3Vt
ZW50TWVudVZpZXdDb250cm9sbGVyID0gY29udGFpbnNJbWFnZU1lZGlhVHlwZSB8fCBjb250YWlu
c1ZpZGVvTWVkaWFUeXBlOwogI2VuZGlmCi0KLSAgICBOU0FycmF5ICpkb2N1bWVudFR5cGVzID0g
bWVkaWFUeXBlcy5jb3VudCA/IG1lZGlhVHlwZXMgOiBAWyhfX2JyaWRnZSBOU1N0cmluZyAqKWtV
VFR5cGVJdGVtXTsKICAgICBpZiAoc2hvdWxkUHJlc2VudERvY3VtZW50TWVudVZpZXdDb250cm9s
bGVyKSB7Ci0gICAgICAgIC8vIEZJWE1FIDQ5OTc5NDQyOiBVSURvY3VtZW50TWVudVZpZXdDb250
cm9sbGVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBVSURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXIg
aW5zdGVhZCB0byBzdXBwb3J0IG11bHRpcGxlIGZpbGUgc2VsZWN0aW9uLgotICAgICAgICBfZG9j
dW1lbnRNZW51Q29udHJvbGxlciA9IGFkb3B0TlMoW1tVSURvY3VtZW50TWVudVZpZXdDb250cm9s
bGVyIGFsbG9jXSBfaW5pdElnbm9yaW5nQXBwbGljYXRpb25FbnRpdGxlbWVudEZvckltcG9ydE9m
VHlwZXM6ZG9jdW1lbnRUeXBlc10pOwotICAgICAgICBbX2RvY3VtZW50TWVudUNvbnRyb2xsZXIg
c2V0RGVsZWdhdGU6c2VsZl07Ci0KLSAgICAgICAgW19kb2N1bWVudE1lbnVDb250cm9sbGVyIGFk
ZE9wdGlvbldpdGhUaXRsZTpbc2VsZiBfcGhvdG9MaWJyYXJ5QnV0dG9uTGFiZWxdIGltYWdlOnBo
b3RvTGlicmFyeUljb24oKSBvcmRlcjpVSURvY3VtZW50TWVudU9yZGVyRmlyc3QgaGFuZGxlcjpe
ewotICAgICAgICAgICAgW3NlbGYgX3Nob3dQaG90b1BpY2tlcldpdGhTb3VyY2VUeXBlOlVJSW1h
Z2VQaWNrZXJDb250cm9sbGVyU291cmNlVHlwZVBob3RvTGlicmFyeV07Ci0gICAgICAgIH1dOwot
Ci0gICAgICAgIGlmIChbVUlJbWFnZVBpY2tlckNvbnRyb2xsZXIgaXNTb3VyY2VUeXBlQXZhaWxh
YmxlOlVJSW1hZ2VQaWNrZXJDb250cm9sbGVyU291cmNlVHlwZUNhbWVyYV0pIHsKLSAgICAgICAg
ICAgIE5TU3RyaW5nICpjYW1lcmFTdHJpbmcgPSBbc2VsZiBfY2FtZXJhQnV0dG9uTGFiZWxBbGxv
d2luZ1Bob3RvOmNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgYWxsb3dpbmdWaWRlbzpjb250YWluc1Zp
ZGVvTWVkaWFUeXBlXTsKLSAgICAgICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBhZGRP
cHRpb25XaXRoVGl0bGU6Y2FtZXJhU3RyaW5nIGltYWdlOmNhbWVyYUljb24oKSBvcmRlcjpVSURv
Y3VtZW50TWVudU9yZGVyRmlyc3QgaGFuZGxlcjpeewotICAgICAgICAgICAgICAgIF91c2luZ0Nh
bWVyYSA9IFlFUzsKLSAgICAgICAgICAgICAgICBbc2VsZiBfc2hvd1Bob3RvUGlja2VyV2l0aFNv
dXJjZVR5cGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXTsKLSAgICAg
ICAgICAgIH1dOwotICAgICAgICB9Ci0KLSAgICAgICAgW3NlbGYgX3ByZXNlbnRNZW51T3B0aW9u
Rm9yQ3VycmVudEludGVyZmFjZUlkaW9tOl9kb2N1bWVudE1lbnVDb250cm9sbGVyLmdldCgpXTsK
LSAgICB9IGVsc2UgewotICAgICAgICAvLyBJbWFnZSBhbmQgVmlkZW8gdHlwZXMgYXJlIG5vdCBh
Y2NlcHRlZCBzbyBieXBhc3MgdGhlIG1lbnUgYW5kIG9wZW4gdGhlIGZpbGUgcGlja2VyIGRpcmVj
dGx5LgotICAgICAgICBfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyID0gYWRvcHROUyhbW1VJRG9j
dW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhEb2N1bWVudFR5cGVzOmRv
Y3VtZW50VHlwZXMgaW5Nb2RlOlVJRG9jdW1lbnRQaWNrZXJNb2RlSW1wb3J0XSk7Ci0gICAgICAg
IFtfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyIHNldEFsbG93c011bHRpcGxlU2VsZWN0aW9uOl9h
bGxvd011bHRpcGxlRmlsZXNdOwotICAgICAgICBbX2RvY3VtZW50UGlja2VyQ29udHJvbGxlciBz
ZXREZWxlZ2F0ZTpzZWxmXTsKLSAgICAgICAgW3NlbGYgX3ByZXNlbnRGdWxsc2NyZWVuVmlld0Nv
bnRyb2xsZXI6X2RvY3VtZW50UGlja2VyQ29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZRVNdOwot
ICAgIH0KLQotICAgIC8vIENsZWFyIG91dCB0aGUgdmlldyBjb250cm9sbGVyIHdlIGp1c3QgcHJl
c2VudGVkLiBEb24ndCBzYXZlIGEgcmVmZXJlbmNlIHRvIHRoZSBVSURvY3VtZW50TWVudVZpZXdD
b250cm9sbGVyIC8gVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFzIGl0IGlzIHNlbGYg
ZGlzbWlzc2luZy4KKyAgICAgICAgW3NlbGYgX2luaXRJbnRlcmFjdGlvbl07CisgICAgICAgIFtf
ZG9jdW1lbnRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjpDR1BvaW50TWFr
ZShfaW50ZXJhY3Rpb25Qb2ludC54LCBfaW50ZXJhY3Rpb25Qb2ludC55KV07CisgICAgfSBlbHNl
IC8vIEltYWdlIGFuZCBWaWRlbyB0eXBlcyBhcmUgbm90IGFjY2VwdGVkIHNvIGJ5cGFzcyB0aGUg
bWVudSBhbmQgb3BlbiB0aGUgZmlsZSBwaWNrZXIgZGlyZWN0bHkuCisgICAgICAgIFtzZWxmIF9z
aG93RmlsZVBpY2tlck1lbnVdOworICAgIAorICAgIC8vIENsZWFyIG91dCB0aGUgdmlldyBjb250
cm9sbGVyIHdlIGp1c3QgcHJlc2VudGVkLiBEb24ndCBzYXZlIGEgcmVmZXJlbmNlIHRvIHRoZSBV
SURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXIgYXMgaXQgaXMgc2VsZiBkaXNtaXNzaW5nLgog
ICAgIF9wcmVzZW50YXRpb25WaWV3Q29udHJvbGxlciA9IG5pbDsKIH0KIApAQCAtNTIwLDE0ICs1
NjIsMTQgQEAgLSAodm9pZClfcHJlc2VudFBvcG92ZXJXaXRoQ29udGVudFZpZXdDb250cm9sbGVy
OihVSVZpZXdDb250cm9sbGVyICopY29udGVudFZpZXcKICAgICBfcHJlc2VudGF0aW9uUG9wb3Zl
ciA9IGFkb3B0TlMoW1tVSVBvcG92ZXJDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aENvbnRlbnRW
aWV3Q29udHJvbGxlcjpjb250ZW50Vmlld0NvbnRyb2xsZXJdKTsKICAgICBBTExPV19ERVBSRUNB
VEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgc2V0RGVsZWdh
dGU6c2VsZl07Ci0gICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHByZXNlbnRQb3BvdmVyRnJvbVJl
Y3Q6Q0dSZWN0SW50ZWdyYWwoQ0dSZWN0TWFrZShfaW50ZXJhY3Rpb25Qb2ludC54LCBfaW50ZXJh
Y3Rpb25Qb2ludC55LCAxLCAxKSkgaW5WaWV3Ol92aWV3IHBlcm1pdHRlZEFycm93RGlyZWN0aW9u
czpVSVBvcG92ZXJBcnJvd0RpcmVjdGlvbkFueSBhbmltYXRlZDphbmltYXRlZF07CisgICAgW19w
cmVzZW50YXRpb25Qb3BvdmVyIHByZXNlbnRQb3BvdmVyRnJvbVJlY3Q6Q0dSZWN0SW50ZWdyYWwo
Q0dSZWN0TWFrZShfaW50ZXJhY3Rpb25Qb2ludC54LCBfaW50ZXJhY3Rpb25Qb2ludC55LCAxLCAx
KSkgaW5WaWV3Ol92aWV3LmdldCgpLmdldCgpIHBlcm1pdHRlZEFycm93RGlyZWN0aW9uczpVSVBv
cG92ZXJBcnJvd0RpcmVjdGlvbkFueSBhbmltYXRlZDphbmltYXRlZF07CiB9CiAKIC0gKHZvaWQp
X3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKil2aWV3
Q29udHJvbGxlciBhbmltYXRlZDooQk9PTClhbmltYXRlZAogewogICAgIFtzZWxmIF9kaXNtaXNz
RGlzcGxheUFuaW1hdGVkOmFuaW1hdGVkXTsKIAotICAgIF9wcmVzZW50YXRpb25WaWV3Q29udHJv
bGxlciA9IFtVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVz
ZW50YXRpb25Gcm9tVmlldzpfdmlld107CisgICAgX3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVy
ID0gW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRh
dGlvbkZyb21WaWV3Ol92aWV3LmdldCgpLmdldCgpXTsKICAgICBbX3ByZXNlbnRhdGlvblZpZXdD
b250cm9sbGVyIHByZXNlbnRWaWV3Q29udHJvbGxlcjp2aWV3Q29udHJvbGxlciBhbmltYXRlZDph
bmltYXRlZCBjb21wbGV0aW9uOm5pbF07CiB9CiAKQEAgLTU0MCwyMCArNTgyLDYgQEAgQUxMT1df
REVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgW3NlbGYgX2NhbmNlbF07CiB9CiAK
LSNwcmFnbWEgbWFyayAtIFVJRG9jdW1lbnRNZW51RGVsZWdhdGUgaW1wbGVtZW50YXRpb24KLQot
LSAodm9pZClkb2N1bWVudE1lbnU6KFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgKilkb2N1
bWVudE1lbnUgZGlkUGlja0RvY3VtZW50UGlja2VyOihVSURvY3VtZW50UGlja2VyVmlld0NvbnRy
b2xsZXIgKilkb2N1bWVudFBpY2tlcgotewotICAgIGRvY3VtZW50UGlja2VyLmRlbGVnYXRlID0g
c2VsZjsKLSAgICBbc2VsZiBfcHJlc2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjpkb2N1bWVu
dFBpY2tlciBhbmltYXRlZDpZRVNdOwotfQotCi0tICh2b2lkKWRvY3VtZW50TWVudVdhc0NhbmNl
bGxlZDooVUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlciAqKWRvY3VtZW50TWVudQotewotICAg
IFtzZWxmIF9kaXNtaXNzRGlzcGxheUFuaW1hdGVkOllFU107Ci0gICAgW3NlbGYgX2NhbmNlbF07
Ci19Ci0KICNwcmFnbWEgbWFyayAtIFVJRG9jdW1lbnRQaWNrZXJDb250cm9sbGVyRGVsZWdhdGUg
aW1wbGVtZW50YXRpb24KIAogc3RhdGljIE5TU3RyaW5nICpkaXNwbGF5U3RyaW5nRm9yRG9jdW1l
bnRzQXRVUkxzKE5TQXJyYXk8TlNVUkwgKj4gKnVybHMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392764</attachid>
            <date>2020-03-06 13:23:26 -0800</date>
            <delta_ts>2020-03-06 13:42:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208687-20200306132326.patch</filename>
            <type>text/plain</type>
            <size>16809</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZmODM5ZDc1OTE0ZWQz
NTVkYTUxMzkxNTM1ZmEwMzBmYWJhYWY2Yy4uOTU4ZmNlNDMxOGE1NmE2ZmU0ZWU4NGVlYWU3Y2Q3
MmRiMTQ0N2E1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVUlD
b250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBzdHJpbmcsIG5vIHRlc3RzIG5lZWRlZC4KKwor
ICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIwMjAtMDMtMDQgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBuZXcgYW5kIGlt
cHJvdmVkIENGTmV0d29yayBTUEkgZm9yIGNvb2tpZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAxZGY5MjViNTQ0OTZiNThkODM4NWYxNzM0NjExNzM3ZTRiZDRkNTFjLi4wYmM1ZWVl
ODRiMWYzYTQyMjg2Y2Y2YzJhM2JhMzk3NjJkMWEyMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDIwLTAzLTA1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgVUlDb250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgZnJvbSB0
aGUgZGVwcmljYXRlZCBVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyIHRvIFVJQ29udGV4dE1l
bnUuCisgICAgICAgIFVJIGNoYW5nZSwgbm90IGN1cnJlbnRseSB0ZXN0YWJsZS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgt
W1dLRmlsZVVwbG9hZFBhbmVsIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFu
ZWwgZGlzbWlzc10pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjdXJyZW50QXZhaWxh
YmxlQWN0aW9uVGl0bGVzXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9icm93c2VG
aWxlc0J1dHRvbkxhYmVsXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGNvbnRleHRN
ZW51SW50ZXJhY3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlv
bjpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX2NvbnRleHRNZW51SW50ZXJhY3Rp
b246c3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRmlsZVVw
bG9hZFBhbmVsIGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJhdGlvbkZvck1lbnVBdExv
Y2F0aW9uOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfaW5pdEludGVyYWN0aW9u
XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9zaG93RmlsZVBpY2tlck1lbnVdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3Nob3dEb2N1bWVudFBpY2tlck1lbnVdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3ByZXNlbnRQb3BvdmVyV2l0aENvbnRlbnRW
aWV3Q29udHJvbGxlcjphbmltYXRlZDpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwg
X3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6YW5pbWF0ZWQ6XSk6CisgICAgICAgIChw
aG90b0xpYnJhcnlJY29uKTogRGVsZXRlZC4KKyAgICAgICAgKGNhbWVyYUljb24pOiBEZWxldGVk
LgorCiAyMDIwLTAzLTA0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQ2FsbCBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lIGJlZm9y
ZSBldmFsdWF0aW5nIEphdmFTY3JpcHQgaW4gbmV3bHkgY3JlYXRlZCB3b3JsZHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2Uv
V2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDc1NTIyNWU2YmEzZGUz
MTM4ZDM2NmYxNDdmZmY1Yjg0YTI4ZmFkOTYuLmIxMGIzZTA3ZTU0YjlmYjI4NDdhMTFjYjcwOGYx
MGMwZGQ0YjBiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5ncwpAQCAtMTU0LDYgKzE1NCw5IEBACiAvKiBMYWJlbCBmb3IgdGhlIGJvb2sgd2l0aCBBcHBs
ZSBQYXkgYnV0dG9uLiAqLwogIkJvb2sgd2l0aCBBcHBsZSBQYXkiID0gIkJvb2sgd2l0aCBBcHBs
ZSBQYXkiOwogCisvKiBGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZvciBj
aG9vc2luZyBhbiBleGlzdGluZyBmaWxlIGZyb20gdGhlIGZpbGUgYnJvd2VyICovCisiQnJvd3Nl
IChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiA9ICJCcm93c2UiOworCiAvKiBPcHRpb24gaW4g
c2VnbWVudGVkIGNvbnRyb2wgZm9yIGluc2VydGluZyBhIGJ1bGxldGVkIGxpc3QgaW4gdGV4dCBl
ZGl0aW5nICovCiAiQnVsbGV0ZWQgbGlzdCIgPSAiQnVsbGV0ZWQgbGlzdCI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggNGE2NmU0MzgxY2VkMTI2ZThm
NjQwY2JmMDUwOTcwMGIyMDA4N2I1Zi4uYzI2OThmY2E2Y2I5NWJiYjUwNzBhNjA5YTcxNmEzYTM2
YjljMDU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAg
LTEwOTgsMTIgKzEwOTgsMTkgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgVUlXS0Rv
Y3VtZW50UmVxdWVzdEZsYWdzKSB7CiBAZW5kCiAKIEBpbnRlcmZhY2UgX1VJQ29udGV4dE1lbnVT
dHlsZSA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYykgX1VJQ29u
dGV4dE1lbnVMYXlvdXQgcHJlZmVycmVkTGF5b3V0OworKyAoaW5zdGFuY2V0eXBlKWRlZmF1bHRT
dHlsZTsKIEBlbmQKIAogI2lmIFVTRShVSUNPTlRFWFRNRU5VKQogQGludGVyZmFjZSBVSVRhcmdl
dGVkUHJldmlldyAoKQogQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRP
dmVycmlkZVBvc2l0aW9uVHJhY2tpbmdWaWV3OikgVUlWaWV3ICpvdmVycmlkZVBvc2l0aW9uVHJh
Y2tpbmdWaWV3OwogQGVuZAorCitAaW50ZXJmYWNlIFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAo
KQorLSAodm9pZClfcHJlc2VudE1lbnVBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOworQGVu
ZAorCiAjZW5kaWYgLy8gVVNFKFVJQ09OVEVYVE1FTlUpCiAKICNpZiBIQVZFKExJTktfUFJFVklF
VykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KaW5kZXggNWRiNDY1ZmIyMzIwOGY0
MTgwNjQxMzE1NmNkZjA2NWEyNDVkOWRiYi4uNmM5NWExYzFlZDBhZjQ4M2E5N2RmMmRlN2RlNzE2
NmNkODYxNjA2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLRmlsZVVwbG9hZFBhbmVsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9m
b3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CkBAIC02NywxOCArNjgsNiBAQCBzdGF0aWMgYm9vbCBhcnJheUNvbnRhaW5zVVRJVGhhdENv
bmZvcm1zVG8oTlNBcnJheTxOU1N0cmluZyAqPiAqdHlwZUlkZW50aWZpZXJzLAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotI3ByYWdtYSBtYXJrIC0gRG9jdW1lbnQgcGlja2VyIGljb25zCi0KLXN0
YXRpYyBpbmxpbmUgVUlJbWFnZSAqcGhvdG9MaWJyYXJ5SWNvbigpCi17Ci0gICAgcmV0dXJuIF9V
SUltYWdlR2V0V2ViS2l0UGhvdG9MaWJyYXJ5SWNvbigpOwotfQotCi1zdGF0aWMgaW5saW5lIFVJ
SW1hZ2UgKmNhbWVyYUljb24oKQotewotICAgIHJldHVybiBfVUlJbWFnZUdldFdlYktpdFRha2VQ
aG90b09yVmlkZW9JY29uKCk7Ci19Ci0KICNwcmFnbWEgbWFyayAtIF9XS0ZpbGVVcGxvYWRJdGVt
CiAKIEBpbnRlcmZhY2UgX1dLRmlsZVVwbG9hZEl0ZW0gOiBOU09iamVjdApAQCAtMTYxLDExICsx
NTAsMTEgQEAgQGVuZAogCiAjcHJhZ21hIG1hcmsgLSBXS0ZpbGVVcGxvYWRQYW5lbAogCi1AaW50
ZXJmYWNlIFdLRmlsZVVwbG9hZFBhbmVsICgpIDxVSVBvcG92ZXJDb250cm9sbGVyRGVsZWdhdGUs
IFVJTmF2aWdhdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSwgVUlJbWFnZVBpY2tlckNvbnRyb2xsZXJE
ZWxlZ2F0ZSwgVUlEb2N1bWVudFBpY2tlckRlbGVnYXRlLCBVSURvY3VtZW50TWVudURlbGVnYXRl
PgorQGludGVyZmFjZSBXS0ZpbGVVcGxvYWRQYW5lbCAoKSA8VUlQb3BvdmVyQ29udHJvbGxlckRl
bGVnYXRlLCBVSU5hdmlnYXRpb25Db250cm9sbGVyRGVsZWdhdGUsIFVJSW1hZ2VQaWNrZXJDb250
cm9sbGVyRGVsZWdhdGUsIFVJRG9jdW1lbnRQaWNrZXJEZWxlZ2F0ZSwgVUlDb250ZXh0TWVudUlu
dGVyYWN0aW9uRGVsZWdhdGU+CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0ZpbGVVcGxvYWRQ
YW5lbCB7Ci0gICAgV0tDb250ZW50VmlldyAqX3ZpZXc7CisgICAgV2Vha09iakNQdHI8V0tDb250
ZW50Vmlldz4gX3ZpZXc7CiAgICAgUmVmUHRyPFdlYktpdDo6V2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eT4gX2xpc3RlbmVyOwogICAgIFJldGFpblB0cjxOU0FycmF5PiBfbWltZVR5cGVz
OwogICAgIENHUG9pbnQgX2ludGVyYWN0aW9uUG9pbnQ7CkBAIC0xNzYsNyArMTY1LDcgQEAgQGlt
cGxlbWVudGF0aW9uIFdLRmlsZVVwbG9hZFBhbmVsIHsKICAgICBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogICAgIFJldGFpblB0cjxVSVBvcG92ZXJDb250cm9sbGVyPiBfcHJl
c2VudGF0aW9uUG9wb3ZlcjsgLy8gaVBhZCBmb3IgYWN0aW9uIHNoZWV0IGFuZCBQaG90byBMaWJy
YXJ5LgogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAotICAgIFJldGFpblB0
cjxVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyPiBfZG9jdW1lbnRNZW51Q29udHJvbGxlcjsK
KyAgICBSZXRhaW5QdHI8VUlDb250ZXh0TWVudUludGVyYWN0aW9uPiBfZG9jdW1lbnRNZW51SW50
ZXJhY3Rpb247CiAgICAgUmV0YWluUHRyPFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlcj4g
X2RvY3VtZW50UGlja2VyQ29udHJvbGxlcjsKICAgICBXZWJDb3JlOjpNZWRpYUNhcHR1cmVUeXBl
IF9tZWRpYUNhcHR1cmVUeXBlOwogfQpAQCAtMTkzLDggKzE4Miw5IEBAIC0gKHZvaWQpZGVhbGxv
YwogewogICAgIFtfaW1hZ2VQaWNrZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbX3ByZXNlbnRh
dGlvblBvcG92ZXIgc2V0RGVsZWdhdGU6bmlsXTsKLSAgICBbX2RvY3VtZW50TWVudUNvbnRyb2xs
ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbX2RvY3VtZW50UGlja2VyQ29udHJvbGxlciBzZXRE
ZWxlZ2F0ZTpuaWxdOworICAgIGlmIChfZG9jdW1lbnRNZW51SW50ZXJhY3Rpb24pCisgICAgICAg
IFtfdmlldyByZW1vdmVJbnRlcmFjdGlvbjpfZG9jdW1lbnRNZW51SW50ZXJhY3Rpb24uZ2V0KCld
OwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQpAQCAtMjg2LDcgKzI3Niw3IEBAIC0gKHZvaWQp
ZGlzbWlzcwogICAgIC8vIERpc21pc3MgYW55IHZpZXcgY29udHJvbGxlciB0aGF0IGlzIGJlaW5n
IHByZXNlbnRlZC4gVGhpcyB3b3JrcyBmb3IgYWxsIHR5cGVzIG9mIHZpZXcgY29udHJvbGxlcnMs
IHBvcG92ZXJzLCBldGMuCiAgICAgLy8gSWYgdGhlcmUgaXMgYW55IGtpbmQgb2YgdmlldyBjb250
cm9sbGVyIHByZXNlbnRlZCBvbiB0aGlzIHZpZXcsIGl0IHdpbGwgYmUgcmVtb3ZlZC4KICAgICAK
LSAgICBbW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblByZXNl
bnRhdGlvbkZyb21WaWV3Ol92aWV3XSBkaXNtaXNzVmlld0NvbnRyb2xsZXJBbmltYXRlZDpOTyBj
b21wbGV0aW9uOm5pbF07CisgICAgW1tVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxlckZv
ckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpfdmlldy5nZXQoKS5nZXQoKV0gZGlzbWlz
c1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6Tk8gY29tcGxldGlvbjpuaWxdOwogICAgIAogICAgIFtf
cHJlc2VudGF0aW9uUG9wb3ZlciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIF9wcmVzZW50YXRpb25Q
b3BvdmVyID0gbmlsOwpAQCAtMzg2LDYgKzM3NiwxMSBAQCAtIChOU0FycmF5PE5TU3RyaW5nICo+
ICopX21lZGlhVHlwZXNGb3JQaWNrZXJTb3VyY2VUeXBlOihVSUltYWdlUGlja2VyQ29udHJvbGxl
cgogCiAjcHJhZ21hIG1hcmsgLSBTb3VyY2Ugc2VsZWN0aW9uIG1lbnUKIAorLSAoTlNTdHJpbmcg
KilfYnJvd3NlRmlsZXNCdXR0b25MYWJlbAoreworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tF
WSgiQnJvd3NlIiwgIkJyb3dzZSAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJGaWxlIFVw
bG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZvciBjaG9vc2luZyBhbiBleGlzdGluZyBm
aWxlIGZyb20gdGhlIGZpbGUgYnJvd2VyIik7Cit9CisKIC0gKE5TU3RyaW5nICopX3Bob3RvTGli
cmFyeUJ1dHRvbkxhYmVsCiB7CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJQaG90byBM
aWJyYXJ5IiwgIlBob3RvIExpYnJhcnkgKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiLCAiRmls
ZSBVcGxvYWQgYWxlcnQgc2hlZXQgYnV0dG9uIHN0cmluZyBmb3IgY2hvb3NpbmcgYW4gZXhpc3Rp
bmcgbWVkaWEgaXRlbSBmcm9tIHRoZSBQaG90byBMaWJyYXJ5Iik7CkBAIC00MDMsNiArMzk4LDc1
IEBAIC0gKE5TU3RyaW5nICopX2NhbWVyYUJ1dHRvbkxhYmVsQWxsb3dpbmdQaG90bzooQk9PTClh
bGxvd1Bob3RvIGFsbG93aW5nVmlkZW86KEJPCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZ
KCJUYWtlIFBob3RvIiwgIlRha2UgUGhvdG8gKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiLCAi
RmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgY2FtZXJhIGJ1dHRvbiBzdHJpbmcgZm9yIHRha2luZyBv
bmx5IHBob3RvcyIpOwogfQogCistIChVSVRhcmdldGVkUHJldmlldyAqKWNvbnRleHRNZW51SW50
ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHByZXZpZXdG
b3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1
cmF0aW9uICopY29uZmlndXJhdGlvbgoreworICAgIFJldGFpblB0cjxVSVByZXZpZXdQYXJhbWV0
ZXJzPiB1bnVzZWRQcmV2aWV3UGFyYW1ldGVycyA9IGFkb3B0TlMoW1tVSVByZXZpZXdQYXJhbWV0
ZXJzIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPFVJUHJldmlld1RhcmdldD4gcHJldmll
d1RhcmdldCA9IGFkb3B0TlMoW1tVSVByZXZpZXdUYXJnZXQgYWxsb2NdIGluaXRXaXRoQ29udGFp
bmVyOl92aWV3LmdldCgpLmdldCgpIGNlbnRlcjpDR1BvaW50TWFrZShfaW50ZXJhY3Rpb25Qb2lu
dC54LCBfaW50ZXJhY3Rpb25Qb2ludC55KV0pOworICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJl
dmlldz4gcHJldmlldyA9IGFkb3B0TlMoW1tVSVRhcmdldGVkUHJldmlldyBhbGxvY10gaW5pdFdp
dGhWaWV3Ol92aWV3LmdldCgpLmdldCgpIHBhcmFtZXRlcnM6dW51c2VkUHJldmlld1BhcmFtZXRl
cnMuZ2V0KCkgdGFyZ2V0OnByZXZpZXdUYXJnZXQuZ2V0KCldKTsKKworICAgIHJldHVybiBwcmV2
aWV3LmF1dG9yZWxlYXNlKCk7Cit9CisKKy0gKF9VSUNvbnRleHRNZW51U3R5bGUgKilfY29udGV4
dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24g
c3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9u
ICopY29uZmlndXJhdGlvbgoreworICAgIF9VSUNvbnRleHRNZW51U3R5bGUgKnN0eWxlID0gW19V
SUNvbnRleHRNZW51U3R5bGUgZGVmYXVsdFN0eWxlXTsKKyAgICBzdHlsZS5wcmVmZXJyZWRMYXlv
dXQgPSBfVUlDb250ZXh0TWVudUxheW91dENvbXBhY3RNZW51OworICAgIHJldHVybiBzdHlsZTsK
K30KKworLSAoVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb250ZXh0TWVudUludGVyYWN0
aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25maWd1cmF0aW9u
Rm9yTWVudUF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRpb24geworCisgICAgVUlDb250ZXh0TWVu
dUFjdGlvblByb3ZpZGVyIGFjdGlvbk1lbnVQcm92aWRlciA9IFtzZWxmLCB3ZWFrU2VsZiA9IFdl
YWtPYmpDUHRyPFdLRmlsZVVwbG9hZFBhbmVsPihzZWxmKV0gKE5TQXJyYXk8VUlNZW51RWxlbWVu
dCAqPiAqKSAtPiBVSU1lbnUgKiB7CisgICAgICAgIE5TQXJyYXkqIGFjdGlvbnM7CisgICAgICAg
IE5TQXJyYXkgKm1lZGlhVHlwZXNCbG9jayA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5n
ZXQoKSkuYWxsT2JqZWN0czsKKworICAgICAgICBCT09MIGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGVC
bG9jayA9ICFtZWRpYVR5cGVzQmxvY2suY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25m
b3Jtc1RvKG1lZGlhVHlwZXNCbG9jaywga1VUVHlwZUltYWdlKTsKKyAgICAgICAgQk9PTCBjb250
YWluc1ZpZGVvTWVkaWFUeXBlQmxvY2sgPSAhbWVkaWFUeXBlc0Jsb2NrLmNvdW50IHx8IGFycmF5
Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzQmxvY2ssIGtVVFR5cGVNb3ZpZSk7
CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAKKyAg
ICAgICAgVUlBY3Rpb24gKmJyb3dzZUFjdGlvbiA9IFtVSUFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6
W3N0cm9uZ1NlbGYgX2Jyb3dzZUZpbGVzQnV0dG9uTGFiZWxdIGltYWdlOltVSUltYWdlIHN5c3Rl
bUltYWdlTmFtZWQ6QCJlbGxpcHNpcyJdIGlkZW50aWZpZXI6QCJicm93c2UiIGhhbmRsZXI6Xihf
X2tpbmRvZiBVSUFjdGlvbiAqYWN0aW9uKSB7CisgICAgICAgICAgICBbc3Ryb25nU2VsZiBfc2hv
d0ZpbGVQaWNrZXJNZW51XTsKKyAgICAgICAgfV07CisKKyAgICAgICAgVUlBY3Rpb24gKnBob3Rv
QWN0aW9uID0gW1VJQWN0aW9uIGFjdGlvbldpdGhUaXRsZTpbc3Ryb25nU2VsZiBfcGhvdG9MaWJy
YXJ5QnV0dG9uTGFiZWxdIGltYWdlOltVSUltYWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJjYW1lcmEu
ZmlsbCJdIGlkZW50aWZpZXI6QCJwaG90byIgaGFuZGxlcjpeKF9fa2luZG9mIFVJQWN0aW9uICph
Y3Rpb24pIHsKKyAgICAgICAgICAgIFtzdHJvbmdTZWxmIF9zaG93UGhvdG9QaWNrZXJXaXRoU291
cmNlVHlwZTpVSUltYWdlUGlja2VyQ29udHJvbGxlclNvdXJjZVR5cGVQaG90b0xpYnJhcnldOwor
ICAgICAgICB9XTsKKworICAgICAgICBpZiAoW1VJSW1hZ2VQaWNrZXJDb250cm9sbGVyIGlzU291
cmNlVHlwZUF2YWlsYWJsZTpVSUltYWdlUGlja2VyQ29udHJvbGxlclNvdXJjZVR5cGVDYW1lcmFd
KSB7CisgICAgICAgICAgICBOU1N0cmluZyAqY2FtZXJhU3RyaW5nID0gW3N0cm9uZ1NlbGYgX2Nh
bWVyYUJ1dHRvbkxhYmVsQWxsb3dpbmdQaG90bzpjb250YWluc0ltYWdlTWVkaWFUeXBlQmxvY2sg
YWxsb3dpbmdWaWRlbzpjb250YWluc1ZpZGVvTWVkaWFUeXBlQmxvY2tdOworICAgICAgICAgICAg
VUlBY3Rpb24gKmNhbWVyYUFjdGlvbiA9IFtVSUFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6Y2FtZXJh
U3RyaW5nIGltYWdlOltVSUltYWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJyZWN0YW5nbGUub24ucmVj
dGFuZ2xlIl0gaWRlbnRpZmllcjpAImNhbWVyYSIgaGFuZGxlcjpeKF9fa2luZG9mIFVJQWN0aW9u
ICphY3Rpb24pIHsKKyAgICAgICAgICAgICAgICBfdXNpbmdDYW1lcmEgPSBZRVM7CisgICAgICAg
ICAgICAgICAgW3N0cm9uZ1NlbGYgX3Nob3dQaG90b1BpY2tlcldpdGhTb3VyY2VUeXBlOlVJSW1h
Z2VQaWNrZXJDb250cm9sbGVyU291cmNlVHlwZUNhbWVyYV07CisgICAgICAgICAgICB9XTsKKyAg
ICAgICAgICAgIGFjdGlvbnMgPSBAW3Bob3RvQWN0aW9uLCBjYW1lcmFBY3Rpb24sIGJyb3dzZUFj
dGlvbl07CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYWN0aW9ucyA9IEBbcGhvdG9BY3Rp
b24sIGJyb3dzZUFjdGlvbl07CisKKyAgICAgICAgcmV0dXJuIFtVSU1lbnUgbWVudVdpdGhUaXRs
ZTpAIiIgY2hpbGRyZW46YWN0aW9uc107CisgICAgfTsKKyAgICAKKyAgICByZXR1cm4gW1VJQ29u
dGV4dE1lbnVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb25XaXRoSWRlbnRpZmllcjpAImZpbGUi
IHByZXZpZXdQcm92aWRlcjpuaWwgYWN0aW9uUHJvdmlkZXI6YWN0aW9uTWVudVByb3ZpZGVyXTsK
K30KKworLSAodm9pZClfaW5pdEludGVyYWN0aW9uCit7CisgICAgaWYgKCFfZG9jdW1lbnRNZW51
SW50ZXJhY3Rpb24pIHsKKyAgICAgICAgX2RvY3VtZW50TWVudUludGVyYWN0aW9uID0gYWRvcHRO
UyhbW1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiBhbGxvY10gaW5pdFdpdGhEZWxlZ2F0ZTpzZWxm
XSk7CisgICAgICAgIFtfdmlldyBhZGRJbnRlcmFjdGlvbjpfZG9jdW1lbnRNZW51SW50ZXJhY3Rp
b24uZ2V0KCldOworICAgIH0KK30KKworLSAodm9pZClfc2hvd0ZpbGVQaWNrZXJNZW51Cit7Cisg
ICAgTlNBcnJheSAqbWVkaWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQo
KSkuYWxsT2JqZWN0czsKKyAgICBOU0FycmF5ICpkb2N1bWVudFR5cGVzID0gbWVkaWFUeXBlcy5j
b3VudCA/IG1lZGlhVHlwZXMgOiBAWyhfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVJdGVtXTsK
KyAgICAKKyAgICBfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyID0gYWRvcHROUyhbW1VJRG9jdW1l
bnRQaWNrZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhEb2N1bWVudFR5cGVzOmRvY3Vt
ZW50VHlwZXMgaW5Nb2RlOlVJRG9jdW1lbnRQaWNrZXJNb2RlSW1wb3J0XSk7CisgICAgW19kb2N1
bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0QWxsb3dzTXVsdGlwbGVTZWxlY3Rpb246X2FsbG93TXVs
dGlwbGVGaWxlc107CisgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6
c2VsZl07CisgICAgW3NlbGYgX3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6X2RvY3Vt
ZW50UGlja2VyQ29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZRVNdOworfQorCiAtICh2b2lkKV9z
aG93RG9jdW1lbnRQaWNrZXJNZW51CiB7CiAgICAgTlNBcnJheSAqbWVkaWFUeXBlcyA9IFVUSXNG
b3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0czsKQEAgLTQxNiwzNSArNDgw
LDEzIEBAIC0gKHZvaWQpX3Nob3dEb2N1bWVudFBpY2tlck1lbnUKICNlbHNlCiAgICAgQk9PTCBz
aG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBjb250YWluc0ltYWdlTWVk
aWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGU7CiAjZW5kaWYKLQotICAgIE5TQXJyYXkg
KmRvY3VtZW50VHlwZXMgPSBtZWRpYVR5cGVzLmNvdW50ID8gbWVkaWFUeXBlcyA6IEBbKF9fYnJp
ZGdlIE5TU3RyaW5nICopa1VUVHlwZUl0ZW1dOwogICAgIGlmIChzaG91bGRQcmVzZW50RG9jdW1l
bnRNZW51Vmlld0NvbnRyb2xsZXIpIHsKLSAgICAgICAgLy8gRklYTUUgNDk5Nzk0NDI6IFVJRG9j
dW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgaXMgZGVwcmVjYXRlZC4gVXNlIFVJRG9jdW1lbnRQaWNr
ZXJWaWV3Q29udHJvbGxlciBpbnN0ZWFkIHRvIHN1cHBvcnQgbXVsdGlwbGUgZmlsZSBzZWxlY3Rp
b24uCi0gICAgICAgIF9kb2N1bWVudE1lbnVDb250cm9sbGVyID0gYWRvcHROUyhbW1VJRG9jdW1l
bnRNZW51Vmlld0NvbnRyb2xsZXIgYWxsb2NdIF9pbml0SWdub3JpbmdBcHBsaWNhdGlvbkVudGl0
bGVtZW50Rm9ySW1wb3J0T2ZUeXBlczpkb2N1bWVudFR5cGVzXSk7Ci0gICAgICAgIFtfZG9jdW1l
bnRNZW51Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpzZWxmXTsKLQotICAgICAgICBbX2RvY3VtZW50
TWVudUNvbnRyb2xsZXIgYWRkT3B0aW9uV2l0aFRpdGxlOltzZWxmIF9waG90b0xpYnJhcnlCdXR0
b25MYWJlbF0gaW1hZ2U6cGhvdG9MaWJyYXJ5SWNvbigpIG9yZGVyOlVJRG9jdW1lbnRNZW51T3Jk
ZXJGaXJzdCBoYW5kbGVyOl57Ci0gICAgICAgICAgICBbc2VsZiBfc2hvd1Bob3RvUGlja2VyV2l0
aFNvdXJjZVR5cGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlUGhvdG9MaWJyYXJ5
XTsKLSAgICAgICAgfV07Ci0KLSAgICAgICAgaWYgKFtVSUltYWdlUGlja2VyQ29udHJvbGxlciBp
c1NvdXJjZVR5cGVBdmFpbGFibGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2Ft
ZXJhXSkgewotICAgICAgICAgICAgTlNTdHJpbmcgKmNhbWVyYVN0cmluZyA9IFtzZWxmIF9jYW1l
cmFCdXR0b25MYWJlbEFsbG93aW5nUGhvdG86Y29udGFpbnNJbWFnZU1lZGlhVHlwZSBhbGxvd2lu
Z1ZpZGVvOmNvbnRhaW5zVmlkZW9NZWRpYVR5cGVdOwotICAgICAgICAgICAgW19kb2N1bWVudE1l
bnVDb250cm9sbGVyIGFkZE9wdGlvbldpdGhUaXRsZTpjYW1lcmFTdHJpbmcgaW1hZ2U6Y2FtZXJh
SWNvbigpIG9yZGVyOlVJRG9jdW1lbnRNZW51T3JkZXJGaXJzdCBoYW5kbGVyOl57Ci0gICAgICAg
ICAgICAgICAgX3VzaW5nQ2FtZXJhID0gWUVTOwotICAgICAgICAgICAgICAgIFtzZWxmIF9zaG93
UGhvdG9QaWNrZXJXaXRoU291cmNlVHlwZTpVSUltYWdlUGlja2VyQ29udHJvbGxlclNvdXJjZVR5
cGVDYW1lcmFdOwotICAgICAgICAgICAgfV07Ci0gICAgICAgIH0KLQotICAgICAgICBbc2VsZiBf
cHJlc2VudE1lbnVPcHRpb25Gb3JDdXJyZW50SW50ZXJmYWNlSWRpb206X2RvY3VtZW50TWVudUNv
bnRyb2xsZXIuZ2V0KCldOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEltYWdlIGFuZCBWaWRl
byB0eXBlcyBhcmUgbm90IGFjY2VwdGVkIHNvIGJ5cGFzcyB0aGUgbWVudSBhbmQgb3BlbiB0aGUg
ZmlsZSBwaWNrZXIgZGlyZWN0bHkuCi0gICAgICAgIF9kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIg
PSBhZG9wdE5TKFtbVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0
aERvY3VtZW50VHlwZXM6ZG9jdW1lbnRUeXBlcyBpbk1vZGU6VUlEb2N1bWVudFBpY2tlck1vZGVJ
bXBvcnRdKTsKLSAgICAgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0QWxsb3dzTXVs
dGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlwbGVGaWxlc107Ci0gICAgICAgIFtfZG9jdW1lbnRQ
aWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOwotICAgICAgICBbc2VsZiBfcHJlc2Vu
dEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjpfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyLmdldCgp
IGFuaW1hdGVkOllFU107Ci0gICAgfQotCi0gICAgLy8gQ2xlYXIgb3V0IHRoZSB2aWV3IGNvbnRy
b2xsZXIgd2UganVzdCBwcmVzZW50ZWQuIERvbid0IHNhdmUgYSByZWZlcmVuY2UgdG8gdGhlIFVJ
RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgLyBVSURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xs
ZXIgYXMgaXQgaXMgc2VsZiBkaXNtaXNzaW5nLgorICAgICAgICBbc2VsZiBfaW5pdEludGVyYWN0
aW9uXTsKKyAgICAgICAgW19kb2N1bWVudE1lbnVJbnRlcmFjdGlvbiBfcHJlc2VudE1lbnVBdExv
Y2F0aW9uOkNHUG9pbnRNYWtlKF9pbnRlcmFjdGlvblBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50
LnkpXTsKKyAgICB9IGVsc2UgLy8gSW1hZ2UgYW5kIFZpZGVvIHR5cGVzIGFyZSBub3QgYWNjZXB0
ZWQgc28gYnlwYXNzIHRoZSBtZW51IGFuZCBvcGVuIHRoZSBmaWxlIHBpY2tlciBkaXJlY3RseS4K
KyAgICAgICAgW3NlbGYgX3Nob3dGaWxlUGlja2VyTWVudV07CisgICAgCisgICAgLy8gQ2xlYXIg
b3V0IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2UganVzdCBwcmVzZW50ZWQuIERvbid0IHNhdmUgYSBy
ZWZlcmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBhcyBpdCBpcyBz
ZWxmIGRpc21pc3NpbmcuCiAgICAgX3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyID0gbmlsOwog
fQogCkBAIC01MjAsMTQgKzU2MiwxNCBAQCAtICh2b2lkKV9wcmVzZW50UG9wb3ZlcldpdGhDb250
ZW50Vmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKiljb250ZW50VmlldwogICAgIF9w
cmVzZW50YXRpb25Qb3BvdmVyID0gYWRvcHROUyhbW1VJUG9wb3ZlckNvbnRyb2xsZXIgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOmNvbnRlbnRWaWV3Q29udHJvbGxlcl0pOwog
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtfcHJlc2VudGF0aW9u
UG9wb3ZlciBzZXREZWxlZ2F0ZTpzZWxmXTsKLSAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgcHJl
c2VudFBvcG92ZXJGcm9tUmVjdDpDR1JlY3RJbnRlZ3JhbChDR1JlY3RNYWtlKF9pbnRlcmFjdGlv
blBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnksIDEsIDEpKSBpblZpZXc6X3ZpZXcgcGVybWl0
dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93RGlyZWN0aW9uQW55IGFuaW1hdGVkOmFu
aW1hdGVkXTsKKyAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgcHJlc2VudFBvcG92ZXJGcm9tUmVj
dDpDR1JlY3RJbnRlZ3JhbChDR1JlY3RNYWtlKF9pbnRlcmFjdGlvblBvaW50LngsIF9pbnRlcmFj
dGlvblBvaW50LnksIDEsIDEpKSBpblZpZXc6X3ZpZXcuZ2V0KCkuZ2V0KCkgcGVybWl0dGVkQXJy
b3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93RGlyZWN0aW9uQW55IGFuaW1hdGVkOmFuaW1hdGVk
XTsKIH0KIAogLSAodm9pZClfcHJlc2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjooVUlWaWV3
Q29udHJvbGxlciAqKXZpZXdDb250cm9sbGVyIGFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiB7CiAg
ICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6YW5pbWF0ZWRdOwogCi0gICAgX3ByZXNl
bnRhdGlvblZpZXdDb250cm9sbGVyID0gW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250cm9sbGVy
Rm9yRnVsbFNjcmVlblByZXNlbnRhdGlvbkZyb21WaWV3Ol92aWV3XTsKKyAgICBfcHJlc2VudGF0
aW9uVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JG
dWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6X3ZpZXcuZ2V0KCkuZ2V0KCldOwogICAgIFtf
cHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9sbGVyOnZpZXdDb250
cm9sbGVyIGFuaW1hdGVkOmFuaW1hdGVkIGNvbXBsZXRpb246bmlsXTsKIH0KIApAQCAtNTQwLDIw
ICs1ODIsNiBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBbc2Vs
ZiBfY2FuY2VsXTsKIH0KIAotI3ByYWdtYSBtYXJrIC0gVUlEb2N1bWVudE1lbnVEZWxlZ2F0ZSBp
bXBsZW1lbnRhdGlvbgotCi0tICh2b2lkKWRvY3VtZW50TWVudTooVUlEb2N1bWVudE1lbnVWaWV3
Q29udHJvbGxlciAqKWRvY3VtZW50TWVudSBkaWRQaWNrRG9jdW1lbnRQaWNrZXI6KFVJRG9jdW1l
bnRQaWNrZXJWaWV3Q29udHJvbGxlciAqKWRvY3VtZW50UGlja2VyCi17Ci0gICAgZG9jdW1lbnRQ
aWNrZXIuZGVsZWdhdGUgPSBzZWxmOwotICAgIFtzZWxmIF9wcmVzZW50RnVsbHNjcmVlblZpZXdD
b250cm9sbGVyOmRvY3VtZW50UGlja2VyIGFuaW1hdGVkOllFU107Ci19Ci0KLS0gKHZvaWQpZG9j
dW1lbnRNZW51V2FzQ2FuY2VsbGVkOihVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyICopZG9j
dW1lbnRNZW51Ci17Ci0gICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6WUVTXTsKLSAg
ICBbc2VsZiBfY2FuY2VsXTsKLX0KLQogI3ByYWdtYSBtYXJrIC0gVUlEb2N1bWVudFBpY2tlckNv
bnRyb2xsZXJEZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbgogCiBzdGF0aWMgTlNTdHJpbmcgKmRpc3Bs
YXlTdHJpbmdGb3JEb2N1bWVudHNBdFVSTHMoTlNBcnJheTxOU1VSTCAqPiAqdXJscykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392767</attachid>
            <date>2020-03-06 13:42:47 -0800</date>
            <delta_ts>2020-03-06 15:09:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208687-20200306134246.patch</filename>
            <type>text/plain</type>
            <size>17118</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZmODM5ZDc1OTE0ZWQz
NTVkYTUxMzkxNTM1ZmEwMzBmYWJhYWY2Yy4uOTU4ZmNlNDMxOGE1NmE2ZmU0ZWU4NGVlYWU3Y2Q3
MmRiMTQ0N2E1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVUlD
b250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBzdHJpbmcsIG5vIHRlc3RzIG5lZWRlZC4KKwor
ICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIwMjAtMDMtMDQgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBuZXcgYW5kIGlt
cHJvdmVkIENGTmV0d29yayBTUEkgZm9yIGNvb2tpZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAxZGY5MjViNTQ0OTZiNThkODM4NWYxNzM0NjExNzM3ZTRiZDRkNTFjLi4wYmM1ZWVl
ODRiMWYzYTQyMjg2Y2Y2YzJhM2JhMzk3NjJkMWEyMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDIwLTAzLTA1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgVUlDb250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgZnJvbSB0
aGUgZGVwcmljYXRlZCBVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyIHRvIFVJQ29udGV4dE1l
bnUuCisgICAgICAgIFVJIGNoYW5nZSwgbm90IGN1cnJlbnRseSB0ZXN0YWJsZS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgt
W1dLRmlsZVVwbG9hZFBhbmVsIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFu
ZWwgZGlzbWlzc10pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjdXJyZW50QXZhaWxh
YmxlQWN0aW9uVGl0bGVzXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9icm93c2VG
aWxlc0J1dHRvbkxhYmVsXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGNvbnRleHRN
ZW51SW50ZXJhY3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlv
bjpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX2NvbnRleHRNZW51SW50ZXJhY3Rp
b246c3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRmlsZVVw
bG9hZFBhbmVsIGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJhdGlvbkZvck1lbnVBdExv
Y2F0aW9uOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfaW5pdEludGVyYWN0aW9u
XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9zaG93RmlsZVBpY2tlck1lbnVdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3Nob3dEb2N1bWVudFBpY2tlck1lbnVdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3ByZXNlbnRQb3BvdmVyV2l0aENvbnRlbnRW
aWV3Q29udHJvbGxlcjphbmltYXRlZDpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwg
X3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6YW5pbWF0ZWQ6XSk6CisgICAgICAgIChw
aG90b0xpYnJhcnlJY29uKTogRGVsZXRlZC4KKyAgICAgICAgKGNhbWVyYUljb24pOiBEZWxldGVk
LgorCiAyMDIwLTAzLTA0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQ2FsbCBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lIGJlZm9y
ZSBldmFsdWF0aW5nIEphdmFTY3JpcHQgaW4gbmV3bHkgY3JlYXRlZCB3b3JsZHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2Uv
V2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDc1NTIyNWU2YmEzZGUz
MTM4ZDM2NmYxNDdmZmY1Yjg0YTI4ZmFkOTYuLmIxMGIzZTA3ZTU0YjlmYjI4NDdhMTFjYjcwOGYx
MGMwZGQ0YjBiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5ncwpAQCAtMTU0LDYgKzE1NCw5IEBACiAvKiBMYWJlbCBmb3IgdGhlIGJvb2sgd2l0aCBBcHBs
ZSBQYXkgYnV0dG9uLiAqLwogIkJvb2sgd2l0aCBBcHBsZSBQYXkiID0gIkJvb2sgd2l0aCBBcHBs
ZSBQYXkiOwogCisvKiBGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZvciBj
aG9vc2luZyBhbiBleGlzdGluZyBmaWxlIGZyb20gdGhlIGZpbGUgYnJvd2VyICovCisiQnJvd3Nl
IChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiA9ICJCcm93c2UiOworCiAvKiBPcHRpb24gaW4g
c2VnbWVudGVkIGNvbnRyb2wgZm9yIGluc2VydGluZyBhIGJ1bGxldGVkIGxpc3QgaW4gdGV4dCBl
ZGl0aW5nICovCiAiQnVsbGV0ZWQgbGlzdCIgPSAiQnVsbGV0ZWQgbGlzdCI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggNGE2NmU0MzgxY2VkMTI2ZThm
NjQwY2JmMDUwOTcwMGIyMDA4N2I1Zi4uOWZkOWEwODgyODIyNjhiYjYxYzQxYjcyNTFhMmJkZTdl
NTkwNGYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAg
LTEwOTcsMTMgKzEwOTcsMjggQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgVUlXS0Rv
Y3VtZW50UmVxdWVzdEZsYWdzKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBVSUlt
YWdlICppbWFnZTsKIEBlbmQKIAordHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9VSUNvbnRl
eHRNZW51TGF5b3V0KSB7CisgICAgX1VJQ29udGV4dE1lbnVMYXlvdXRQcmV2aWV3QW5kQWN0aW9u
cyA9IDAsCisgICAgX1VJQ29udGV4dE1lbnVMYXlvdXRBY3Rpb25zT25seSwKKyAgICBfVUlDb250
ZXh0TWVudUxheW91dFByZXZpZXdPbmx5LAorICAgIF9VSUNvbnRleHRNZW51TGF5b3V0Q29tcGFj
dE1lbnUsCisgICAgX1VJQ29udGV4dE1lbnVMYXlvdXRBdXRvbWF0aWMgPSAxMDAKK307CisKIEBp
bnRlcmZhY2UgX1VJQ29udGV4dE1lbnVTdHlsZSA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CitAcHJv
cGVydHkgKG5vbmF0b21pYykgX1VJQ29udGV4dE1lbnVMYXlvdXQgcHJlZmVycmVkTGF5b3V0Owor
KyAoaW5zdGFuY2V0eXBlKWRlZmF1bHRTdHlsZTsKIEBlbmQKIAogI2lmIFVTRShVSUNPTlRFWFRN
RU5VKQogQGludGVyZmFjZSBVSVRhcmdldGVkUHJldmlldyAoKQogQHByb3BlcnR5IChub25hdG9t
aWMsIHN0cm9uZywgc2V0dGVyPV9zZXRPdmVycmlkZVBvc2l0aW9uVHJhY2tpbmdWaWV3OikgVUlW
aWV3ICpvdmVycmlkZVBvc2l0aW9uVHJhY2tpbmdWaWV3OwogQGVuZAorCitAaW50ZXJmYWNlIFVJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbiAoKQorLSAodm9pZClfcHJlc2VudE1lbnVBdExvY2F0aW9u
OihDR1BvaW50KWxvY2F0aW9uOworQGVuZAorCiAjZW5kaWYgLy8gVVNFKFVJQ09OVEVYVE1FTlUp
CiAKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwu
bW0KaW5kZXggNWRiNDY1ZmIyMzIwOGY0MTgwNjQxMzE1NmNkZjA2NWEyNDVkOWRiYi4uNmM5NWEx
YzFlZDBhZjQ4M2E5N2RmMmRlN2RlNzE2NmNkODYxNjA2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQpAQCAtNDcs
NiArNDcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2lt
cG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC02NywxOCArNjgsNiBAQCBzdGF0aWMgYm9v
bCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8oTlNBcnJheTxOU1N0cmluZyAqPiAqdHlw
ZUlkZW50aWZpZXJzLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI3ByYWdtYSBtYXJrIC0gRG9j
dW1lbnQgcGlja2VyIGljb25zCi0KLXN0YXRpYyBpbmxpbmUgVUlJbWFnZSAqcGhvdG9MaWJyYXJ5
SWNvbigpCi17Ci0gICAgcmV0dXJuIF9VSUltYWdlR2V0V2ViS2l0UGhvdG9MaWJyYXJ5SWNvbigp
OwotfQotCi1zdGF0aWMgaW5saW5lIFVJSW1hZ2UgKmNhbWVyYUljb24oKQotewotICAgIHJldHVy
biBfVUlJbWFnZUdldFdlYktpdFRha2VQaG90b09yVmlkZW9JY29uKCk7Ci19Ci0KICNwcmFnbWEg
bWFyayAtIF9XS0ZpbGVVcGxvYWRJdGVtCiAKIEBpbnRlcmZhY2UgX1dLRmlsZVVwbG9hZEl0ZW0g
OiBOU09iamVjdApAQCAtMTYxLDExICsxNTAsMTEgQEAgQGVuZAogCiAjcHJhZ21hIG1hcmsgLSBX
S0ZpbGVVcGxvYWRQYW5lbAogCi1AaW50ZXJmYWNlIFdLRmlsZVVwbG9hZFBhbmVsICgpIDxVSVBv
cG92ZXJDb250cm9sbGVyRGVsZWdhdGUsIFVJTmF2aWdhdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSwg
VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJEZWxlZ2F0ZSwgVUlEb2N1bWVudFBpY2tlckRlbGVnYXRl
LCBVSURvY3VtZW50TWVudURlbGVnYXRlPgorQGludGVyZmFjZSBXS0ZpbGVVcGxvYWRQYW5lbCAo
KSA8VUlQb3BvdmVyQ29udHJvbGxlckRlbGVnYXRlLCBVSU5hdmlnYXRpb25Db250cm9sbGVyRGVs
ZWdhdGUsIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyRGVsZWdhdGUsIFVJRG9jdW1lbnRQaWNrZXJE
ZWxlZ2F0ZSwgVUlDb250ZXh0TWVudUludGVyYWN0aW9uRGVsZWdhdGU+CiBAZW5kCiAKIEBpbXBs
ZW1lbnRhdGlvbiBXS0ZpbGVVcGxvYWRQYW5lbCB7Ci0gICAgV0tDb250ZW50VmlldyAqX3ZpZXc7
CisgICAgV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4gX3ZpZXc7CiAgICAgUmVmUHRyPFdlYktp
dDo6V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eT4gX2xpc3RlbmVyOwogICAgIFJldGFp
blB0cjxOU0FycmF5PiBfbWltZVR5cGVzOwogICAgIENHUG9pbnQgX2ludGVyYWN0aW9uUG9pbnQ7
CkBAIC0xNzYsNyArMTY1LDcgQEAgQGltcGxlbWVudGF0aW9uIFdLRmlsZVVwbG9hZFBhbmVsIHsK
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIFJldGFpblB0cjxV
SVBvcG92ZXJDb250cm9sbGVyPiBfcHJlc2VudGF0aW9uUG9wb3ZlcjsgLy8gaVBhZCBmb3IgYWN0
aW9uIHNoZWV0IGFuZCBQaG90byBMaWJyYXJ5LgogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAotICAgIFJldGFpblB0cjxVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyPiBf
ZG9jdW1lbnRNZW51Q29udHJvbGxlcjsKKyAgICBSZXRhaW5QdHI8VUlDb250ZXh0TWVudUludGVy
YWN0aW9uPiBfZG9jdW1lbnRNZW51SW50ZXJhY3Rpb247CiAgICAgUmV0YWluUHRyPFVJRG9jdW1l
bnRQaWNrZXJWaWV3Q29udHJvbGxlcj4gX2RvY3VtZW50UGlja2VyQ29udHJvbGxlcjsKICAgICBX
ZWJDb3JlOjpNZWRpYUNhcHR1cmVUeXBlIF9tZWRpYUNhcHR1cmVUeXBlOwogfQpAQCAtMTkzLDgg
KzE4Miw5IEBAIC0gKHZvaWQpZGVhbGxvYwogewogICAgIFtfaW1hZ2VQaWNrZXIgc2V0RGVsZWdh
dGU6bmlsXTsKICAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgc2V0RGVsZWdhdGU6bmlsXTsKLSAg
ICBbX2RvY3VtZW50TWVudUNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbX2RvY3Vt
ZW50UGlja2VyQ29udHJvbGxlciBzZXREZWxlZ2F0ZTpuaWxdOworICAgIGlmIChfZG9jdW1lbnRN
ZW51SW50ZXJhY3Rpb24pCisgICAgICAgIFtfdmlldyByZW1vdmVJbnRlcmFjdGlvbjpfZG9jdW1l
bnRNZW51SW50ZXJhY3Rpb24uZ2V0KCldOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQpAQCAt
Mjg2LDcgKzI3Niw3IEBAIC0gKHZvaWQpZGlzbWlzcwogICAgIC8vIERpc21pc3MgYW55IHZpZXcg
Y29udHJvbGxlciB0aGF0IGlzIGJlaW5nIHByZXNlbnRlZC4gVGhpcyB3b3JrcyBmb3IgYWxsIHR5
cGVzIG9mIHZpZXcgY29udHJvbGxlcnMsIHBvcG92ZXJzLCBldGMuCiAgICAgLy8gSWYgdGhlcmUg
aXMgYW55IGtpbmQgb2YgdmlldyBjb250cm9sbGVyIHByZXNlbnRlZCBvbiB0aGlzIHZpZXcsIGl0
IHdpbGwgYmUgcmVtb3ZlZC4KICAgICAKLSAgICBbW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250
cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRhdGlvbkZyb21WaWV3Ol92aWV3XSBkaXNtaXNzVmll
d0NvbnRyb2xsZXJBbmltYXRlZDpOTyBjb21wbGV0aW9uOm5pbF07CisgICAgW1tVSVZpZXdDb250
cm9sbGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpf
dmlldy5nZXQoKS5nZXQoKV0gZGlzbWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6Tk8gY29tcGxl
dGlvbjpuaWxdOwogICAgIAogICAgIFtfcHJlc2VudGF0aW9uUG9wb3ZlciBzZXREZWxlZ2F0ZTpu
aWxdOwogICAgIF9wcmVzZW50YXRpb25Qb3BvdmVyID0gbmlsOwpAQCAtMzg2LDYgKzM3NiwxMSBA
QCAtIChOU0FycmF5PE5TU3RyaW5nICo+ICopX21lZGlhVHlwZXNGb3JQaWNrZXJTb3VyY2VUeXBl
OihVSUltYWdlUGlja2VyQ29udHJvbGxlcgogCiAjcHJhZ21hIG1hcmsgLSBTb3VyY2Ugc2VsZWN0
aW9uIG1lbnUKIAorLSAoTlNTdHJpbmcgKilfYnJvd3NlRmlsZXNCdXR0b25MYWJlbAoreworICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiQnJvd3NlIiwgIkJyb3dzZSAoZmlsZSB1cGxvYWQg
YWN0aW9uIHNoZWV0KSIsICJGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZv
ciBjaG9vc2luZyBhbiBleGlzdGluZyBmaWxlIGZyb20gdGhlIGZpbGUgYnJvd2VyIik7Cit9CisK
IC0gKE5TU3RyaW5nICopX3Bob3RvTGlicmFyeUJ1dHRvbkxhYmVsCiB7CiAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJQaG90byBMaWJyYXJ5IiwgIlBob3RvIExpYnJhcnkgKGZpbGUgdXBs
b2FkIGFjdGlvbiBzaGVldCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgYnV0dG9uIHN0cmlu
ZyBmb3IgY2hvb3NpbmcgYW4gZXhpc3RpbmcgbWVkaWEgaXRlbSBmcm9tIHRoZSBQaG90byBMaWJy
YXJ5Iik7CkBAIC00MDMsNiArMzk4LDc1IEBAIC0gKE5TU3RyaW5nICopX2NhbWVyYUJ1dHRvbkxh
YmVsQWxsb3dpbmdQaG90bzooQk9PTClhbGxvd1Bob3RvIGFsbG93aW5nVmlkZW86KEJPCiAgICAg
cmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUYWtlIFBob3RvIiwgIlRha2UgUGhvdG8gKGZpbGUg
dXBsb2FkIGFjdGlvbiBzaGVldCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgY2FtZXJhIGJ1
dHRvbiBzdHJpbmcgZm9yIHRha2luZyBvbmx5IHBob3RvcyIpOwogfQogCistIChVSVRhcmdldGVk
UHJldmlldyAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlv
biAqKWludGVyYWN0aW9uIHByZXZpZXdGb3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRp
b246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgoreworICAgIFJl
dGFpblB0cjxVSVByZXZpZXdQYXJhbWV0ZXJzPiB1bnVzZWRQcmV2aWV3UGFyYW1ldGVycyA9IGFk
b3B0TlMoW1tVSVByZXZpZXdQYXJhbWV0ZXJzIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRy
PFVJUHJldmlld1RhcmdldD4gcHJldmlld1RhcmdldCA9IGFkb3B0TlMoW1tVSVByZXZpZXdUYXJn
ZXQgYWxsb2NdIGluaXRXaXRoQ29udGFpbmVyOl92aWV3LmdldCgpLmdldCgpIGNlbnRlcjpDR1Bv
aW50TWFrZShfaW50ZXJhY3Rpb25Qb2ludC54LCBfaW50ZXJhY3Rpb25Qb2ludC55KV0pOworICAg
IFJldGFpblB0cjxVSVRhcmdldGVkUHJldmlldz4gcHJldmlldyA9IGFkb3B0TlMoW1tVSVRhcmdl
dGVkUHJldmlldyBhbGxvY10gaW5pdFdpdGhWaWV3Ol92aWV3LmdldCgpLmdldCgpIHBhcmFtZXRl
cnM6dW51c2VkUHJldmlld1BhcmFtZXRlcnMuZ2V0KCkgdGFyZ2V0OnByZXZpZXdUYXJnZXQuZ2V0
KCldKTsKKworICAgIHJldHVybiBwcmV2aWV3LmF1dG9yZWxlYXNlKCk7Cit9CisKKy0gKF9VSUNv
bnRleHRNZW51U3R5bGUgKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUlu
dGVyYWN0aW9uICopaW50ZXJhY3Rpb24gc3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJ
Q29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgoreworICAgIF9VSUNvbnRl
eHRNZW51U3R5bGUgKnN0eWxlID0gW19VSUNvbnRleHRNZW51U3R5bGUgZGVmYXVsdFN0eWxlXTsK
KyAgICBzdHlsZS5wcmVmZXJyZWRMYXlvdXQgPSBfVUlDb250ZXh0TWVudUxheW91dENvbXBhY3RN
ZW51OworICAgIHJldHVybiBzdHlsZTsKK30KKworLSAoVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRp
b24gKiljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilp
bnRlcmFjdGlvbiBjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246KENHUG9pbnQpbG9jYXRp
b24geworCisgICAgVUlDb250ZXh0TWVudUFjdGlvblByb3ZpZGVyIGFjdGlvbk1lbnVQcm92aWRl
ciA9IFtzZWxmLCB3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLRmlsZVVwbG9hZFBhbmVsPihzZWxm
KV0gKE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqKSAtPiBVSU1lbnUgKiB7CisgICAgICAgIE5T
QXJyYXkqIGFjdGlvbnM7CisgICAgICAgIE5TQXJyYXkgKm1lZGlhVHlwZXNCbG9jayA9IFVUSXNG
b3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0czsKKworICAgICAgICBCT09M
IGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGVCbG9jayA9ICFtZWRpYVR5cGVzQmxvY2suY291bnQgfHwg
YXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXNCbG9jaywga1VUVHlwZUlt
YWdlKTsKKyAgICAgICAgQk9PTCBjb250YWluc1ZpZGVvTWVkaWFUeXBlQmxvY2sgPSAhbWVkaWFU
eXBlc0Jsb2NrLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5
cGVzQmxvY2ssIGtVVFR5cGVNb3ZpZSk7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtT
ZWxmLmdldCgpOworICAgICAgICAKKyAgICAgICAgVUlBY3Rpb24gKmJyb3dzZUFjdGlvbiA9IFtV
SUFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6W3N0cm9uZ1NlbGYgX2Jyb3dzZUZpbGVzQnV0dG9uTGFi
ZWxdIGltYWdlOltVSUltYWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJlbGxpcHNpcyJdIGlkZW50aWZp
ZXI6QCJicm93c2UiIGhhbmRsZXI6XihfX2tpbmRvZiBVSUFjdGlvbiAqYWN0aW9uKSB7CisgICAg
ICAgICAgICBbc3Ryb25nU2VsZiBfc2hvd0ZpbGVQaWNrZXJNZW51XTsKKyAgICAgICAgfV07CisK
KyAgICAgICAgVUlBY3Rpb24gKnBob3RvQWN0aW9uID0gW1VJQWN0aW9uIGFjdGlvbldpdGhUaXRs
ZTpbc3Ryb25nU2VsZiBfcGhvdG9MaWJyYXJ5QnV0dG9uTGFiZWxdIGltYWdlOltVSUltYWdlIHN5
c3RlbUltYWdlTmFtZWQ6QCJjYW1lcmEuZmlsbCJdIGlkZW50aWZpZXI6QCJwaG90byIgaGFuZGxl
cjpeKF9fa2luZG9mIFVJQWN0aW9uICphY3Rpb24pIHsKKyAgICAgICAgICAgIFtzdHJvbmdTZWxm
IF9zaG93UGhvdG9QaWNrZXJXaXRoU291cmNlVHlwZTpVSUltYWdlUGlja2VyQ29udHJvbGxlclNv
dXJjZVR5cGVQaG90b0xpYnJhcnldOworICAgICAgICB9XTsKKworICAgICAgICBpZiAoW1VJSW1h
Z2VQaWNrZXJDb250cm9sbGVyIGlzU291cmNlVHlwZUF2YWlsYWJsZTpVSUltYWdlUGlja2VyQ29u
dHJvbGxlclNvdXJjZVR5cGVDYW1lcmFdKSB7CisgICAgICAgICAgICBOU1N0cmluZyAqY2FtZXJh
U3RyaW5nID0gW3N0cm9uZ1NlbGYgX2NhbWVyYUJ1dHRvbkxhYmVsQWxsb3dpbmdQaG90bzpjb250
YWluc0ltYWdlTWVkaWFUeXBlQmxvY2sgYWxsb3dpbmdWaWRlbzpjb250YWluc1ZpZGVvTWVkaWFU
eXBlQmxvY2tdOworICAgICAgICAgICAgVUlBY3Rpb24gKmNhbWVyYUFjdGlvbiA9IFtVSUFjdGlv
biBhY3Rpb25XaXRoVGl0bGU6Y2FtZXJhU3RyaW5nIGltYWdlOltVSUltYWdlIHN5c3RlbUltYWdl
TmFtZWQ6QCJyZWN0YW5nbGUub24ucmVjdGFuZ2xlIl0gaWRlbnRpZmllcjpAImNhbWVyYSIgaGFu
ZGxlcjpeKF9fa2luZG9mIFVJQWN0aW9uICphY3Rpb24pIHsKKyAgICAgICAgICAgICAgICBfdXNp
bmdDYW1lcmEgPSBZRVM7CisgICAgICAgICAgICAgICAgW3N0cm9uZ1NlbGYgX3Nob3dQaG90b1Bp
Y2tlcldpdGhTb3VyY2VUeXBlOlVJSW1hZ2VQaWNrZXJDb250cm9sbGVyU291cmNlVHlwZUNhbWVy
YV07CisgICAgICAgICAgICB9XTsKKyAgICAgICAgICAgIGFjdGlvbnMgPSBAW3Bob3RvQWN0aW9u
LCBjYW1lcmFBY3Rpb24sIGJyb3dzZUFjdGlvbl07CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgYWN0aW9ucyA9IEBbcGhvdG9BY3Rpb24sIGJyb3dzZUFjdGlvbl07CisKKyAgICAgICAgcmV0
dXJuIFtVSU1lbnUgbWVudVdpdGhUaXRsZTpAIiIgY2hpbGRyZW46YWN0aW9uc107CisgICAgfTsK
KyAgICAKKyAgICByZXR1cm4gW1VJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRp
b25XaXRoSWRlbnRpZmllcjpAImZpbGUiIHByZXZpZXdQcm92aWRlcjpuaWwgYWN0aW9uUHJvdmlk
ZXI6YWN0aW9uTWVudVByb3ZpZGVyXTsKK30KKworLSAodm9pZClfaW5pdEludGVyYWN0aW9uCit7
CisgICAgaWYgKCFfZG9jdW1lbnRNZW51SW50ZXJhY3Rpb24pIHsKKyAgICAgICAgX2RvY3VtZW50
TWVudUludGVyYWN0aW9uID0gYWRvcHROUyhbW1VJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiBhbGxv
Y10gaW5pdFdpdGhEZWxlZ2F0ZTpzZWxmXSk7CisgICAgICAgIFtfdmlldyBhZGRJbnRlcmFjdGlv
bjpfZG9jdW1lbnRNZW51SW50ZXJhY3Rpb24uZ2V0KCldOworICAgIH0KK30KKworLSAodm9pZClf
c2hvd0ZpbGVQaWNrZXJNZW51Cit7CisgICAgTlNBcnJheSAqbWVkaWFUeXBlcyA9IFVUSXNGb3JN
SU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0czsKKyAgICBOU0FycmF5ICpkb2N1
bWVudFR5cGVzID0gbWVkaWFUeXBlcy5jb3VudCA/IG1lZGlhVHlwZXMgOiBAWyhfX2JyaWRnZSBO
U1N0cmluZyAqKWtVVFR5cGVJdGVtXTsKKyAgICAKKyAgICBfZG9jdW1lbnRQaWNrZXJDb250cm9s
bGVyID0gYWRvcHROUyhbW1VJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5p
dFdpdGhEb2N1bWVudFR5cGVzOmRvY3VtZW50VHlwZXMgaW5Nb2RlOlVJRG9jdW1lbnRQaWNrZXJN
b2RlSW1wb3J0XSk7CisgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0QWxsb3dzTXVs
dGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlwbGVGaWxlc107CisgICAgW19kb2N1bWVudFBpY2tl
ckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6c2VsZl07CisgICAgW3NlbGYgX3ByZXNlbnRGdWxsc2Ny
ZWVuVmlld0NvbnRyb2xsZXI6X2RvY3VtZW50UGlja2VyQ29udHJvbGxlci5nZXQoKSBhbmltYXRl
ZDpZRVNdOworfQorCiAtICh2b2lkKV9zaG93RG9jdW1lbnRQaWNrZXJNZW51CiB7CiAgICAgTlNB
cnJheSAqbWVkaWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxs
T2JqZWN0czsKQEAgLTQxNiwzNSArNDgwLDEzIEBAIC0gKHZvaWQpX3Nob3dEb2N1bWVudFBpY2tl
ck1lbnUKICNlbHNlCiAgICAgQk9PTCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRy
b2xsZXIgPSBjb250YWluc0ltYWdlTWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGU7
CiAjZW5kaWYKLQotICAgIE5TQXJyYXkgKmRvY3VtZW50VHlwZXMgPSBtZWRpYVR5cGVzLmNvdW50
ID8gbWVkaWFUeXBlcyA6IEBbKF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZUl0ZW1dOwogICAg
IGlmIChzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIpIHsKLSAgICAgICAg
Ly8gRklYTUUgNDk5Nzk0NDI6IFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgaXMgZGVwcmVj
YXRlZC4gVXNlIFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBpbnN0ZWFkIHRvIHN1cHBv
cnQgbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb24uCi0gICAgICAgIF9kb2N1bWVudE1lbnVDb250cm9s
bGVyID0gYWRvcHROUyhbW1VJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgYWxsb2NdIF9pbml0
SWdub3JpbmdBcHBsaWNhdGlvbkVudGl0bGVtZW50Rm9ySW1wb3J0T2ZUeXBlczpkb2N1bWVudFR5
cGVzXSk7Ci0gICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpzZWxm
XTsKLQotICAgICAgICBbX2RvY3VtZW50TWVudUNvbnRyb2xsZXIgYWRkT3B0aW9uV2l0aFRpdGxl
OltzZWxmIF9waG90b0xpYnJhcnlCdXR0b25MYWJlbF0gaW1hZ2U6cGhvdG9MaWJyYXJ5SWNvbigp
IG9yZGVyOlVJRG9jdW1lbnRNZW51T3JkZXJGaXJzdCBoYW5kbGVyOl57Ci0gICAgICAgICAgICBb
c2VsZiBfc2hvd1Bob3RvUGlja2VyV2l0aFNvdXJjZVR5cGU6VUlJbWFnZVBpY2tlckNvbnRyb2xs
ZXJTb3VyY2VUeXBlUGhvdG9MaWJyYXJ5XTsKLSAgICAgICAgfV07Ci0KLSAgICAgICAgaWYgKFtV
SUltYWdlUGlja2VyQ29udHJvbGxlciBpc1NvdXJjZVR5cGVBdmFpbGFibGU6VUlJbWFnZVBpY2tl
ckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXSkgewotICAgICAgICAgICAgTlNTdHJpbmcgKmNh
bWVyYVN0cmluZyA9IFtzZWxmIF9jYW1lcmFCdXR0b25MYWJlbEFsbG93aW5nUGhvdG86Y29udGFp
bnNJbWFnZU1lZGlhVHlwZSBhbGxvd2luZ1ZpZGVvOmNvbnRhaW5zVmlkZW9NZWRpYVR5cGVdOwot
ICAgICAgICAgICAgW19kb2N1bWVudE1lbnVDb250cm9sbGVyIGFkZE9wdGlvbldpdGhUaXRsZTpj
YW1lcmFTdHJpbmcgaW1hZ2U6Y2FtZXJhSWNvbigpIG9yZGVyOlVJRG9jdW1lbnRNZW51T3JkZXJG
aXJzdCBoYW5kbGVyOl57Ci0gICAgICAgICAgICAgICAgX3VzaW5nQ2FtZXJhID0gWUVTOwotICAg
ICAgICAgICAgICAgIFtzZWxmIF9zaG93UGhvdG9QaWNrZXJXaXRoU291cmNlVHlwZTpVSUltYWdl
UGlja2VyQ29udHJvbGxlclNvdXJjZVR5cGVDYW1lcmFdOwotICAgICAgICAgICAgfV07Ci0gICAg
ICAgIH0KLQotICAgICAgICBbc2VsZiBfcHJlc2VudE1lbnVPcHRpb25Gb3JDdXJyZW50SW50ZXJm
YWNlSWRpb206X2RvY3VtZW50TWVudUNvbnRyb2xsZXIuZ2V0KCldOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIC8vIEltYWdlIGFuZCBWaWRlbyB0eXBlcyBhcmUgbm90IGFjY2VwdGVkIHNvIGJ5cGFz
cyB0aGUgbWVudSBhbmQgb3BlbiB0aGUgZmlsZSBwaWNrZXIgZGlyZWN0bHkuCi0gICAgICAgIF9k
b2N1bWVudFBpY2tlckNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlEb2N1bWVudFBpY2tlclZpZXdD
b250cm9sbGVyIGFsbG9jXSBpbml0V2l0aERvY3VtZW50VHlwZXM6ZG9jdW1lbnRUeXBlcyBpbk1v
ZGU6VUlEb2N1bWVudFBpY2tlck1vZGVJbXBvcnRdKTsKLSAgICAgICAgW19kb2N1bWVudFBpY2tl
ckNvbnRyb2xsZXIgc2V0QWxsb3dzTXVsdGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlwbGVGaWxl
c107Ci0gICAgICAgIFtfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZd
OwotICAgICAgICBbc2VsZiBfcHJlc2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjpfZG9jdW1l
bnRQaWNrZXJDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFU107Ci0gICAgfQotCi0gICAgLy8g
Q2xlYXIgb3V0IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2UganVzdCBwcmVzZW50ZWQuIERvbid0IHNh
dmUgYSByZWZlcmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgLyBVSURv
Y3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXIgYXMgaXQgaXMgc2VsZiBkaXNtaXNzaW5nLgorICAg
ICAgICBbc2VsZiBfaW5pdEludGVyYWN0aW9uXTsKKyAgICAgICAgW19kb2N1bWVudE1lbnVJbnRl
cmFjdGlvbiBfcHJlc2VudE1lbnVBdExvY2F0aW9uOkNHUG9pbnRNYWtlKF9pbnRlcmFjdGlvblBv
aW50LngsIF9pbnRlcmFjdGlvblBvaW50LnkpXTsKKyAgICB9IGVsc2UgLy8gSW1hZ2UgYW5kIFZp
ZGVvIHR5cGVzIGFyZSBub3QgYWNjZXB0ZWQgc28gYnlwYXNzIHRoZSBtZW51IGFuZCBvcGVuIHRo
ZSBmaWxlIHBpY2tlciBkaXJlY3RseS4KKyAgICAgICAgW3NlbGYgX3Nob3dGaWxlUGlja2VyTWVu
dV07CisgICAgCisgICAgLy8gQ2xlYXIgb3V0IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2UganVzdCBw
cmVzZW50ZWQuIERvbid0IHNhdmUgYSByZWZlcmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRQaWNrZXJW
aWV3Q29udHJvbGxlciBhcyBpdCBpcyBzZWxmIGRpc21pc3NpbmcuCiAgICAgX3ByZXNlbnRhdGlv
blZpZXdDb250cm9sbGVyID0gbmlsOwogfQogCkBAIC01MjAsMTQgKzU2MiwxNCBAQCAtICh2b2lk
KV9wcmVzZW50UG9wb3ZlcldpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xs
ZXIgKiljb250ZW50VmlldwogICAgIF9wcmVzZW50YXRpb25Qb3BvdmVyID0gYWRvcHROUyhbW1VJ
UG9wb3ZlckNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOmNv
bnRlbnRWaWV3Q29udHJvbGxlcl0pOwogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgIFtfcHJlc2VudGF0aW9uUG9wb3ZlciBzZXREZWxlZ2F0ZTpzZWxmXTsKLSAgICBb
X3ByZXNlbnRhdGlvblBvcG92ZXIgcHJlc2VudFBvcG92ZXJGcm9tUmVjdDpDR1JlY3RJbnRlZ3Jh
bChDR1JlY3RNYWtlKF9pbnRlcmFjdGlvblBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnksIDEs
IDEpKSBpblZpZXc6X3ZpZXcgcGVybWl0dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93
RGlyZWN0aW9uQW55IGFuaW1hdGVkOmFuaW1hdGVkXTsKKyAgICBbX3ByZXNlbnRhdGlvblBvcG92
ZXIgcHJlc2VudFBvcG92ZXJGcm9tUmVjdDpDR1JlY3RJbnRlZ3JhbChDR1JlY3RNYWtlKF9pbnRl
cmFjdGlvblBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnksIDEsIDEpKSBpblZpZXc6X3ZpZXcu
Z2V0KCkuZ2V0KCkgcGVybWl0dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93RGlyZWN0
aW9uQW55IGFuaW1hdGVkOmFuaW1hdGVkXTsKIH0KIAogLSAodm9pZClfcHJlc2VudEZ1bGxzY3Jl
ZW5WaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXZpZXdDb250cm9sbGVyIGFuaW1h
dGVkOihCT09MKWFuaW1hdGVkCiB7CiAgICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6
YW5pbWF0ZWRdOwogCi0gICAgX3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyID0gW1VJVmlld0Nv
bnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRhdGlvbkZyb21WaWV3
Ol92aWV3XTsKKyAgICBfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJv
bGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6X3Zp
ZXcuZ2V0KCkuZ2V0KCldOwogICAgIFtfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgcHJlc2Vu
dFZpZXdDb250cm9sbGVyOnZpZXdDb250cm9sbGVyIGFuaW1hdGVkOmFuaW1hdGVkIGNvbXBsZXRp
b246bmlsXTsKIH0KIApAQCAtNTQwLDIwICs1ODIsNiBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExF
TUVOVEFUSU9OU19FTkQKICAgICBbc2VsZiBfY2FuY2VsXTsKIH0KIAotI3ByYWdtYSBtYXJrIC0g
VUlEb2N1bWVudE1lbnVEZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbgotCi0tICh2b2lkKWRvY3VtZW50
TWVudTooVUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlciAqKWRvY3VtZW50TWVudSBkaWRQaWNr
RG9jdW1lbnRQaWNrZXI6KFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciAqKWRvY3VtZW50
UGlja2VyCi17Ci0gICAgZG9jdW1lbnRQaWNrZXIuZGVsZWdhdGUgPSBzZWxmOwotICAgIFtzZWxm
IF9wcmVzZW50RnVsbHNjcmVlblZpZXdDb250cm9sbGVyOmRvY3VtZW50UGlja2VyIGFuaW1hdGVk
OllFU107Ci19Ci0KLS0gKHZvaWQpZG9jdW1lbnRNZW51V2FzQ2FuY2VsbGVkOihVSURvY3VtZW50
TWVudVZpZXdDb250cm9sbGVyICopZG9jdW1lbnRNZW51Ci17Ci0gICAgW3NlbGYgX2Rpc21pc3NE
aXNwbGF5QW5pbWF0ZWQ6WUVTXTsKLSAgICBbc2VsZiBfY2FuY2VsXTsKLX0KLQogI3ByYWdtYSBt
YXJrIC0gVUlEb2N1bWVudFBpY2tlckNvbnRyb2xsZXJEZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbgog
CiBzdGF0aWMgTlNTdHJpbmcgKmRpc3BsYXlTdHJpbmdGb3JEb2N1bWVudHNBdFVSTHMoTlNBcnJh
eTxOU1VSTCAqPiAqdXJscykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392781</attachid>
            <date>2020-03-06 15:09:36 -0800</date>
            <delta_ts>2020-03-06 15:23:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208687-20200306150935.patch</filename>
            <type>text/plain</type>
            <size>17693</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZmODM5ZDc1OTE0ZWQz
NTVkYTUxMzkxNTM1ZmEwMzBmYWJhYWY2Yy4uOTU4ZmNlNDMxOGE1NmE2ZmU0ZWU4NGVlYWU3Y2Q3
MmRiMTQ0N2E1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVUlD
b250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBzdHJpbmcsIG5vIHRlc3RzIG5lZWRlZC4KKwor
ICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIwMjAtMDMtMDQgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBuZXcgYW5kIGlt
cHJvdmVkIENGTmV0d29yayBTUEkgZm9yIGNvb2tpZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAxZGY5MjViNTQ0OTZiNThkODM4NWYxNzM0NjExNzM3ZTRiZDRkNTFjLi4wYmM1ZWVl
ODRiMWYzYTQyMjg2Y2Y2YzJhM2JhMzk3NjJkMWEyMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDIwLTAzLTA1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgVUlDb250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgZnJvbSB0
aGUgZGVwcmljYXRlZCBVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyIHRvIFVJQ29udGV4dE1l
bnUuCisgICAgICAgIFVJIGNoYW5nZSwgbm90IGN1cnJlbnRseSB0ZXN0YWJsZS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgt
W1dLRmlsZVVwbG9hZFBhbmVsIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFu
ZWwgZGlzbWlzc10pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjdXJyZW50QXZhaWxh
YmxlQWN0aW9uVGl0bGVzXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9icm93c2VG
aWxlc0J1dHRvbkxhYmVsXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGNvbnRleHRN
ZW51SW50ZXJhY3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlv
bjpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX2NvbnRleHRNZW51SW50ZXJhY3Rp
b246c3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRmlsZVVw
bG9hZFBhbmVsIGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJhdGlvbkZvck1lbnVBdExv
Y2F0aW9uOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfaW5pdEludGVyYWN0aW9u
XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9zaG93RmlsZVBpY2tlck1lbnVdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3Nob3dEb2N1bWVudFBpY2tlck1lbnVdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3ByZXNlbnRQb3BvdmVyV2l0aENvbnRlbnRW
aWV3Q29udHJvbGxlcjphbmltYXRlZDpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwg
X3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6YW5pbWF0ZWQ6XSk6CisgICAgICAgIChw
aG90b0xpYnJhcnlJY29uKTogRGVsZXRlZC4KKyAgICAgICAgKGNhbWVyYUljb24pOiBEZWxldGVk
LgorCiAyMDIwLTAzLTA0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQ2FsbCBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lIGJlZm9y
ZSBldmFsdWF0aW5nIEphdmFTY3JpcHQgaW4gbmV3bHkgY3JlYXRlZCB3b3JsZHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2Uv
V2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDc1NTIyNWU2YmEzZGUz
MTM4ZDM2NmYxNDdmZmY1Yjg0YTI4ZmFkOTYuLmIxMGIzZTA3ZTU0YjlmYjI4NDdhMTFjYjcwOGYx
MGMwZGQ0YjBiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5ncwpAQCAtMTU0LDYgKzE1NCw5IEBACiAvKiBMYWJlbCBmb3IgdGhlIGJvb2sgd2l0aCBBcHBs
ZSBQYXkgYnV0dG9uLiAqLwogIkJvb2sgd2l0aCBBcHBsZSBQYXkiID0gIkJvb2sgd2l0aCBBcHBs
ZSBQYXkiOwogCisvKiBGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZvciBj
aG9vc2luZyBhbiBleGlzdGluZyBmaWxlIGZyb20gdGhlIGZpbGUgYnJvd2VyICovCisiQnJvd3Nl
IChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiA9ICJCcm93c2UiOworCiAvKiBPcHRpb24gaW4g
c2VnbWVudGVkIGNvbnRyb2wgZm9yIGluc2VydGluZyBhIGJ1bGxldGVkIGxpc3QgaW4gdGV4dCBl
ZGl0aW5nICovCiAiQnVsbGV0ZWQgbGlzdCIgPSAiQnVsbGV0ZWQgbGlzdCI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggNGE2NmU0MzgxY2VkMTI2ZThm
NjQwY2JmMDUwOTcwMGIyMDA4N2I1Zi4uYTk2ZDE5YjFlYzhkYjM5YzhiZDRhZGY4ZGEwZGQwOGM5
M2ZiMTUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAg
LTEwOTcsMTMgKzEwOTcsMjUgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgVUlXS0Rv
Y3VtZW50UmVxdWVzdEZsYWdzKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBVSUlt
YWdlICppbWFnZTsKIEBlbmQKIAordHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9VSUNvbnRl
eHRNZW51TGF5b3V0KSB7CisgICAgX1VJQ29udGV4dE1lbnVMYXlvdXRBY3Rpb25zT25seSA9IDEs
CisgICAgX1VJQ29udGV4dE1lbnVMYXlvdXRDb21wYWN0TWVudSA9IDMsCit9OworCiBAaW50ZXJm
YWNlIF9VSUNvbnRleHRNZW51U3R5bGUgOiBOU09iamVjdCA8TlNDb3B5aW5nPgorQHByb3BlcnR5
IChub25hdG9taWMpIF9VSUNvbnRleHRNZW51TGF5b3V0IHByZWZlcnJlZExheW91dDsKKysgKGlu
c3RhbmNldHlwZSlkZWZhdWx0U3R5bGU7CiBAZW5kCiAKICNpZiBVU0UoVUlDT05URVhUTUVOVSkK
IEBpbnRlcmZhY2UgVUlUYXJnZXRlZFByZXZpZXcgKCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcsIHNldHRlcj1fc2V0T3ZlcnJpZGVQb3NpdGlvblRyYWNraW5nVmlldzopIFVJVmlldyAq
b3ZlcnJpZGVQb3NpdGlvblRyYWNraW5nVmlldzsKIEBlbmQKKworQGludGVyZmFjZSBVSUNvbnRl
eHRNZW51SW50ZXJhY3Rpb24gKCkKKy0gKHZvaWQpX3ByZXNlbnRNZW51QXRMb2NhdGlvbjooQ0dQ
b2ludClsb2NhdGlvbjsKK0BlbmQKKwogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogCiAj
aWYgSEFWRShMSU5LX1BSRVZJRVcpICYmIFVTRShVSUNPTlRFWFRNRU5VKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCmlu
ZGV4IDVkYjQ2NWZiMjMyMDhmNDE4MDY0MTMxNTZjZGYwNjVhMjQ1ZDlkYmIuLjEwMjJkNWQ4Njc0
YWM3MmU3Y2Y5YjAzN2M0YzM4NzczNDdiODUyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KQEAgLTQ3LDYgKzQ3
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9VVElVdGlsaXRpZXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQg
PHd0Zi9XZWFrT2JqQ1B0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNjcsMTggKzY4LDYgQEAgc3RhdGljIGJvb2wgYXJy
YXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKE5TQXJyYXk8TlNTdHJpbmcgKj4gKnR5cGVJZGVu
dGlmaWVycywKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNwcmFnbWEgbWFyayAtIERvY3VtZW50
IHBpY2tlciBpY29ucwotCi1zdGF0aWMgaW5saW5lIFVJSW1hZ2UgKnBob3RvTGlicmFyeUljb24o
KQotewotICAgIHJldHVybiBfVUlJbWFnZUdldFdlYktpdFBob3RvTGlicmFyeUljb24oKTsKLX0K
LQotc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29uKCkKLXsKLSAgICByZXR1cm4gX1VJ
SW1hZ2VHZXRXZWJLaXRUYWtlUGhvdG9PclZpZGVvSWNvbigpOwotfQotCiAjcHJhZ21hIG1hcmsg
LSBfV0tGaWxlVXBsb2FkSXRlbQogCiBAaW50ZXJmYWNlIF9XS0ZpbGVVcGxvYWRJdGVtIDogTlNP
YmplY3QKQEAgLTE2MSwxMSArMTUwLDExIEBAIEBlbmQKIAogI3ByYWdtYSBtYXJrIC0gV0tGaWxl
VXBsb2FkUGFuZWwKIAotQGludGVyZmFjZSBXS0ZpbGVVcGxvYWRQYW5lbCAoKSA8VUlQb3BvdmVy
Q29udHJvbGxlckRlbGVnYXRlLCBVSU5hdmlnYXRpb25Db250cm9sbGVyRGVsZWdhdGUsIFVJSW1h
Z2VQaWNrZXJDb250cm9sbGVyRGVsZWdhdGUsIFVJRG9jdW1lbnRQaWNrZXJEZWxlZ2F0ZSwgVUlE
b2N1bWVudE1lbnVEZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV0tGaWxlVXBsb2FkUGFuZWwgKCkgPFVJ
UG9wb3ZlckNvbnRyb2xsZXJEZWxlZ2F0ZSwgVUlOYXZpZ2F0aW9uQ29udHJvbGxlckRlbGVnYXRl
LCBVSUltYWdlUGlja2VyQ29udHJvbGxlckRlbGVnYXRlLCBVSURvY3VtZW50UGlja2VyRGVsZWdh
dGUsIFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRlPgogQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gV0tGaWxlVXBsb2FkUGFuZWwgewotICAgIFdLQ29udGVudFZpZXcgKl92aWV3OworICAg
IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+IF92aWV3OwogICAgIFJlZlB0cjxXZWJLaXQ6Oldl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk+IF9saXN0ZW5lcjsKICAgICBSZXRhaW5QdHI8
TlNBcnJheT4gX21pbWVUeXBlczsKICAgICBDR1BvaW50IF9pbnRlcmFjdGlvblBvaW50OwpAQCAt
MTc2LDcgKzE2NSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0ZpbGVVcGxvYWRQYW5lbCB7CiAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRhaW5QdHI8VUlQb3Bv
dmVyQ29udHJvbGxlcj4gX3ByZXNlbnRhdGlvblBvcG92ZXI7IC8vIGlQYWQgZm9yIGFjdGlvbiBz
aGVldCBhbmQgUGhvdG8gTGlicmFyeS4KICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKLSAgICBSZXRhaW5QdHI8VUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcj4gX2RvY3Vt
ZW50TWVudUNvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlv
bj4gX2RvY3VtZW50TWVudUludGVyYWN0aW9uOwogICAgIFJldGFpblB0cjxVSURvY3VtZW50UGlj
a2VyVmlld0NvbnRyb2xsZXI+IF9kb2N1bWVudFBpY2tlckNvbnRyb2xsZXI7CiAgICAgV2ViQ29y
ZTo6TWVkaWFDYXB0dXJlVHlwZSBfbWVkaWFDYXB0dXJlVHlwZTsKIH0KQEAgLTE5Myw4ICsxODIs
OSBAQCAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbX2ltYWdlUGlja2VyIHNldERlbGVnYXRlOm5p
bF07CiAgICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHNldERlbGVnYXRlOm5pbF07Ci0gICAgW19k
b2N1bWVudE1lbnVDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW19kb2N1bWVudFBp
Y2tlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBpZiAoX2RvY3VtZW50TWVudUlu
dGVyYWN0aW9uKQorICAgICAgICBbX3ZpZXcgcmVtb3ZlSW50ZXJhY3Rpb246X2RvY3VtZW50TWVu
dUludGVyYWN0aW9uLmdldCgpXTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KQEAgLTI4Niw3
ICsyNzYsNyBAQCAtICh2b2lkKWRpc21pc3MKICAgICAvLyBEaXNtaXNzIGFueSB2aWV3IGNvbnRy
b2xsZXIgdGhhdCBpcyBiZWluZyBwcmVzZW50ZWQuIFRoaXMgd29ya3MgZm9yIGFsbCB0eXBlcyBv
ZiB2aWV3IGNvbnRyb2xsZXJzLCBwb3BvdmVycywgZXRjLgogICAgIC8vIElmIHRoZXJlIGlzIGFu
eSBraW5kIG9mIHZpZXcgY29udHJvbGxlciBwcmVzZW50ZWQgb24gdGhpcyB2aWV3LCBpdCB3aWxs
IGJlIHJlbW92ZWQuCiAgICAgCi0gICAgW1tVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxl
ckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpfdmlld10gZGlzbWlzc1ZpZXdDb250
cm9sbGVyQW5pbWF0ZWQ6Tk8gY29tcGxldGlvbjpuaWxdOworICAgIFtbVUlWaWV3Q29udHJvbGxl
ciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6X3ZpZXcu
Z2V0QXV0b3JlbGVhc2VkKCldIGRpc21pc3NWaWV3Q29udHJvbGxlckFuaW1hdGVkOk5PIGNvbXBs
ZXRpb246bmlsXTsKICAgICAKICAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgc2V0RGVsZWdhdGU6
bmlsXTsKICAgICBfcHJlc2VudGF0aW9uUG9wb3ZlciA9IG5pbDsKQEAgLTM4Niw2ICszNzYsMTEg
QEAgLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKV9tZWRpYVR5cGVzRm9yUGlja2VyU291cmNlVHlw
ZTooVUlJbWFnZVBpY2tlckNvbnRyb2xsZXIKIAogI3ByYWdtYSBtYXJrIC0gU291cmNlIHNlbGVj
dGlvbiBtZW51CiAKKy0gKE5TU3RyaW5nICopX2Jyb3dzZUZpbGVzQnV0dG9uTGFiZWwKK3sKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkJyb3dzZSIsICJCcm93c2UgKGZpbGUgdXBsb2Fk
IGFjdGlvbiBzaGVldCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgYnV0dG9uIHN0cmluZyBm
b3IgY2hvb3NpbmcgYW4gZXhpc3RpbmcgZmlsZSBmcm9tIHRoZSBmaWxlIGJyb3dlciIpOworfQor
CiAtIChOU1N0cmluZyAqKV9waG90b0xpYnJhcnlCdXR0b25MYWJlbAogewogICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiUGhvdG8gTGlicmFyeSIsICJQaG90byBMaWJyYXJ5IChmaWxlIHVw
bG9hZCBhY3Rpb24gc2hlZXQpIiwgIkZpbGUgVXBsb2FkIGFsZXJ0IHNoZWV0IGJ1dHRvbiBzdHJp
bmcgZm9yIGNob29zaW5nIGFuIGV4aXN0aW5nIG1lZGlhIGl0ZW0gZnJvbSB0aGUgUGhvdG8gTGli
cmFyeSIpOwpAQCAtNDAzLDQ4ICszOTgsOTggQEAgLSAoTlNTdHJpbmcgKilfY2FtZXJhQnV0dG9u
TGFiZWxBbGxvd2luZ1Bob3RvOihCT09MKWFsbG93UGhvdG8gYWxsb3dpbmdWaWRlbzooQk8KICAg
ICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlRha2UgUGhvdG8iLCAiVGFrZSBQaG90byAoZmls
ZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBjYW1lcmEg
YnV0dG9uIHN0cmluZyBmb3IgdGFraW5nIG9ubHkgcGhvdG9zIik7CiB9CiAKLS0gKHZvaWQpX3No
b3dEb2N1bWVudFBpY2tlck1lbnUKKy0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY29udGV4dE1lbnVJ
bnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJldmll
d0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZp
Z3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7Ci0gICAgTlNBcnJheSAqbWVkaWFUeXBlcyA9IFVU
SXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0czsKKyAgICBSZXRhaW5Q
dHI8VUlQcmV2aWV3UGFyYW1ldGVycz4gdW51c2VkUHJldmlld1BhcmFtZXRlcnMgPSBhZG9wdE5T
KFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0pOworICAgIFJldGFpblB0cjxVSVBy
ZXZpZXdUYXJnZXQ+IHByZXZpZXdUYXJnZXQgPSBhZG9wdE5TKFtbVUlQcmV2aWV3VGFyZ2V0IGFs
bG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjZW50ZXI6Q0dQ
b2ludE1ha2UoX2ludGVyYWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSldKTsKKyAg
ICBSZXRhaW5QdHI8VUlUYXJnZXRlZFByZXZpZXc+IHByZXZpZXcgPSBhZG9wdE5TKFtbVUlUYXJn
ZXRlZFByZXZpZXcgYWxsb2NdIGluaXRXaXRoVmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBw
YXJhbWV0ZXJzOnVudXNlZFByZXZpZXdQYXJhbWV0ZXJzLmdldCgpIHRhcmdldDpwcmV2aWV3VGFy
Z2V0LmdldCgpXSk7CiAKLSAgICBCT09MIGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgPSAhbWVkaWFU
eXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywg
a1VUVHlwZUltYWdlKTsKLSAgICBCT09MIGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUgPSAhbWVkaWFU
eXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywg
a1VUVHlwZU1vdmllKTsKKyAgICByZXR1cm4gcHJldmlldy5hdXRvcmVsZWFzZSgpOworfQogCi0j
aWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgLy8gRklYTUUgNDk5NjE1ODk6IFN1cHBvcnQg
cGlja2luZyBtZWRpYSB3aXRoIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyCi0gICAgQk9PTCBzaG91
bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBOTzsKLSNlbHNlCi0gICAgQk9P
TCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBjb250YWluc0ltYWdl
TWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGU7Ci0jZW5kaWYKKy0gKF9VSUNvbnRl
eHRNZW51U3R5bGUgKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVy
YWN0aW9uICopaW50ZXJhY3Rpb24gc3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29u
dGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgoreworICAgIF9VSUNvbnRleHRN
ZW51U3R5bGUgKnN0eWxlID0gW19VSUNvbnRleHRNZW51U3R5bGUgZGVmYXVsdFN0eWxlXTsKKyAg
ICBzdHlsZS5wcmVmZXJyZWRMYXlvdXQgPSBfVUlDb250ZXh0TWVudUxheW91dENvbXBhY3RNZW51
OworICAgIHJldHVybiBzdHlsZTsKK30KIAotICAgIE5TQXJyYXkgKmRvY3VtZW50VHlwZXMgPSBt
ZWRpYVR5cGVzLmNvdW50ID8gbWVkaWFUeXBlcyA6IEBbKF9fYnJpZGdlIE5TU3RyaW5nICopa1VU
VHlwZUl0ZW1dOwotICAgIGlmIChzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xs
ZXIpIHsKLSAgICAgICAgLy8gRklYTUUgNDk5Nzk0NDI6IFVJRG9jdW1lbnRNZW51Vmlld0NvbnRy
b2xsZXIgaXMgZGVwcmVjYXRlZC4gVXNlIFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBp
bnN0ZWFkIHRvIHN1cHBvcnQgbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb24uCi0gICAgICAgIF9kb2N1
bWVudE1lbnVDb250cm9sbGVyID0gYWRvcHROUyhbW1VJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xs
ZXIgYWxsb2NdIF9pbml0SWdub3JpbmdBcHBsaWNhdGlvbkVudGl0bGVtZW50Rm9ySW1wb3J0T2ZU
eXBlczpkb2N1bWVudFR5cGVzXSk7Ci0gICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBz
ZXREZWxlZ2F0ZTpzZWxmXTsKKy0gKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4
dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24g
Y29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIHsKKworICAg
IFVJQ29udGV4dE1lbnVBY3Rpb25Qcm92aWRlciBhY3Rpb25NZW51UHJvdmlkZXIgPSBbc2VsZiwg
d2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0ZpbGVVcGxvYWRQYW5lbD4oc2VsZildIChOU0FycmF5
PFVJTWVudUVsZW1lbnQgKj4gKikgLT4gVUlNZW51ICogeworICAgICAgICBOU0FycmF5ICphY3Rp
b25zOworICAgICAgICBOU0FycmF5ICptZWRpYVR5cGVzID0gVVRJc0Zvck1JTUVUeXBlcyhfbWlt
ZVR5cGVzLmdldCgpKS5hbGxPYmplY3RzOwogCi0gICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJv
bGxlciBhZGRPcHRpb25XaXRoVGl0bGU6W3NlbGYgX3Bob3RvTGlicmFyeUJ1dHRvbkxhYmVsXSBp
bWFnZTpwaG90b0xpYnJhcnlJY29uKCkgb3JkZXI6VUlEb2N1bWVudE1lbnVPcmRlckZpcnN0IGhh
bmRsZXI6XnsKKyAgICAgICAgQk9PTCBjb250YWluc0ltYWdlTWVkaWFUeXBlID0gIW1lZGlhVHlw
ZXMuY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtV
VFR5cGVJbWFnZSk7CisgICAgICAgIEJPT0wgY29udGFpbnNWaWRlb01lZGlhVHlwZSA9ICFtZWRp
YVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVz
LCBrVVRUeXBlTW92aWUpOworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQo
KTsKKyAgICAgICAgCisgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVy
biBbVUlNZW51IG1lbnVXaXRoVGl0bGU6QCIiIGNoaWxkcmVuOkBbXV07CisgICAgICAgIAorICAg
ICAgICBVSUFjdGlvbiAqYnJvd3NlQWN0aW9uID0gW1VJQWN0aW9uIGFjdGlvbldpdGhUaXRsZTpb
c3Ryb25nU2VsZiBfYnJvd3NlRmlsZXNCdXR0b25MYWJlbF0gaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVt
SW1hZ2VOYW1lZDpAImVsbGlwc2lzIl0gaWRlbnRpZmllcjpAImJyb3dzZSIgaGFuZGxlcjpeKF9f
a2luZG9mIFVJQWN0aW9uICphY3Rpb24pIHsKKyAgICAgICAgICAgIFtzZWxmIF9zaG93RmlsZVBp
Y2tlck1lbnVdOworICAgICAgICB9XTsKKworICAgICAgICBVSUFjdGlvbiAqcGhvdG9BY3Rpb24g
PSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOltzdHJvbmdTZWxmIF9waG90b0xpYnJhcnlCdXR0
b25MYWJlbF0gaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVtSW1hZ2VOYW1lZDpAInJlY3RhbmdsZS5vbi5y
ZWN0YW5nbGUiXSBpZGVudGlmaWVyOkAicGhvdG8iIGhhbmRsZXI6XihfX2tpbmRvZiBVSUFjdGlv
biAqYWN0aW9uKSB7CiAgICAgICAgICAgICBbc2VsZiBfc2hvd1Bob3RvUGlja2VyV2l0aFNvdXJj
ZVR5cGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlUGhvdG9MaWJyYXJ5XTsKICAg
ICAgICAgfV07CiAKICAgICAgICAgaWYgKFtVSUltYWdlUGlja2VyQ29udHJvbGxlciBpc1NvdXJj
ZVR5cGVBdmFpbGFibGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXSkg
ewotICAgICAgICAgICAgTlNTdHJpbmcgKmNhbWVyYVN0cmluZyA9IFtzZWxmIF9jYW1lcmFCdXR0
b25MYWJlbEFsbG93aW5nUGhvdG86Y29udGFpbnNJbWFnZU1lZGlhVHlwZSBhbGxvd2luZ1ZpZGVv
OmNvbnRhaW5zVmlkZW9NZWRpYVR5cGVdOwotICAgICAgICAgICAgW19kb2N1bWVudE1lbnVDb250
cm9sbGVyIGFkZE9wdGlvbldpdGhUaXRsZTpjYW1lcmFTdHJpbmcgaW1hZ2U6Y2FtZXJhSWNvbigp
IG9yZGVyOlVJRG9jdW1lbnRNZW51T3JkZXJGaXJzdCBoYW5kbGVyOl57CisgICAgICAgICAgICBO
U1N0cmluZyAqY2FtZXJhU3RyaW5nID0gW3N0cm9uZ1NlbGYgX2NhbWVyYUJ1dHRvbkxhYmVsQWxs
b3dpbmdQaG90bzpjb250YWluc0ltYWdlTWVkaWFUeXBlIGFsbG93aW5nVmlkZW86Y29udGFpbnNW
aWRlb01lZGlhVHlwZV07CisgICAgICAgICAgICBVSUFjdGlvbiAqY2FtZXJhQWN0aW9uID0gW1VJ
QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpjYW1lcmFTdHJpbmcgaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVt
SW1hZ2VOYW1lZDpAImNhbWVyYS5maWxsIl0gaWRlbnRpZmllcjpAImNhbWVyYSIgaGFuZGxlcjpe
KF9fa2luZG9mIFVJQWN0aW9uICphY3Rpb24pIHsKICAgICAgICAgICAgICAgICBfdXNpbmdDYW1l
cmEgPSBZRVM7CiAgICAgICAgICAgICAgICAgW3NlbGYgX3Nob3dQaG90b1BpY2tlcldpdGhTb3Vy
Y2VUeXBlOlVJSW1hZ2VQaWNrZXJDb250cm9sbGVyU291cmNlVHlwZUNhbWVyYV07CiAgICAgICAg
ICAgICB9XTsKLSAgICAgICAgfQorICAgICAgICAgICAgYWN0aW9ucyA9IEBbcGhvdG9BY3Rpb24s
IGNhbWVyYUFjdGlvbiwgYnJvd3NlQWN0aW9uXTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBhY3Rpb25zID0gQFtwaG90b0FjdGlvbiwgYnJvd3NlQWN0aW9uXTsKIAotICAgICAgICBbc2Vs
ZiBfcHJlc2VudE1lbnVPcHRpb25Gb3JDdXJyZW50SW50ZXJmYWNlSWRpb206X2RvY3VtZW50TWVu
dUNvbnRyb2xsZXIuZ2V0KCldOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEltYWdlIGFuZCBW
aWRlbyB0eXBlcyBhcmUgbm90IGFjY2VwdGVkIHNvIGJ5cGFzcyB0aGUgbWVudSBhbmQgb3BlbiB0
aGUgZmlsZSBwaWNrZXIgZGlyZWN0bHkuCi0gICAgICAgIF9kb2N1bWVudFBpY2tlckNvbnRyb2xs
ZXIgPSBhZG9wdE5TKFtbVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0
V2l0aERvY3VtZW50VHlwZXM6ZG9jdW1lbnRUeXBlcyBpbk1vZGU6VUlEb2N1bWVudFBpY2tlck1v
ZGVJbXBvcnRdKTsKLSAgICAgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0QWxsb3dz
TXVsdGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlwbGVGaWxlc107Ci0gICAgICAgIFtfZG9jdW1l
bnRQaWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOwotICAgICAgICBbc2VsZiBfcHJl
c2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjpfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyLmdl
dCgpIGFuaW1hdGVkOllFU107CisgICAgICAgIHJldHVybiBbVUlNZW51IG1lbnVXaXRoVGl0bGU6
QCIiIGNoaWxkcmVuOmFjdGlvbnNdOworICAgIH07CisgICAgCisgICAgcmV0dXJuIFtVSUNvbnRl
eHRNZW51Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uV2l0aElkZW50aWZpZXI6QCJ3a2ZpbGV1
cGxvYWRwYW5lbCIgcHJldmlld1Byb3ZpZGVyOm5pbCBhY3Rpb25Qcm92aWRlcjphY3Rpb25NZW51
UHJvdmlkZXJdOworfQorCistICh2b2lkKV9pbml0SW50ZXJhY3Rpb24KK3sKKyAgICBpZiAoIV9k
b2N1bWVudE1lbnVJbnRlcmFjdGlvbikgeworICAgICAgICBfZG9jdW1lbnRNZW51SW50ZXJhY3Rp
b24gPSBhZG9wdE5TKFtbVUlDb250ZXh0TWVudUludGVyYWN0aW9uIGFsbG9jXSBpbml0V2l0aERl
bGVnYXRlOnNlbGZdKTsKKyAgICAgICAgW192aWV3IGFkZEludGVyYWN0aW9uOl9kb2N1bWVudE1l
bnVJbnRlcmFjdGlvbi5nZXQoKV07CiAgICAgfQorfQorCistICh2b2lkKV9zaG93RmlsZVBpY2tl
ck1lbnUKK3sKKyAgICBOU0FycmF5ICptZWRpYVR5cGVzID0gVVRJc0Zvck1JTUVUeXBlcyhfbWlt
ZVR5cGVzLmdldCgpKS5hbGxPYmplY3RzOworICAgIE5TQXJyYXkgKmRvY3VtZW50VHlwZXMgPSBt
ZWRpYVR5cGVzLmNvdW50ID8gbWVkaWFUeXBlcyA6IEBbKF9fYnJpZGdlIE5TU3RyaW5nICopa1VU
VHlwZUl0ZW1dOworICAgIAorICAgIF9kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgPSBhZG9wdE5T
KFtbVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aERvY3VtZW50
VHlwZXM6ZG9jdW1lbnRUeXBlcyBpbk1vZGU6VUlEb2N1bWVudFBpY2tlck1vZGVJbXBvcnRdKTsK
KyAgICBbX2RvY3VtZW50UGlja2VyQ29udHJvbGxlciBzZXRBbGxvd3NNdWx0aXBsZVNlbGVjdGlv
bjpfYWxsb3dNdWx0aXBsZUZpbGVzXTsKKyAgICBbX2RvY3VtZW50UGlja2VyQ29udHJvbGxlciBz
ZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbc2VsZiBfcHJlc2VudEZ1bGxzY3JlZW5WaWV3Q29udHJv
bGxlcjpfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFU107Cit9CiAK
LSAgICAvLyBDbGVhciBvdXQgdGhlIHZpZXcgY29udHJvbGxlciB3ZSBqdXN0IHByZXNlbnRlZC4g
RG9uJ3Qgc2F2ZSBhIHJlZmVyZW5jZSB0byB0aGUgVUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxl
ciAvIFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBhcyBpdCBpcyBzZWxmIGRpc21pc3Np
bmcuCistICh2b2lkKV9zaG93RG9jdW1lbnRQaWNrZXJNZW51Cit7CisgICAgTlNBcnJheSAqbWVk
aWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0czsK
KworICAgIEJPT0wgY29udGFpbnNJbWFnZU1lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8
IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlSW1hZ2Up
OworICAgIEJPT0wgY29udGFpbnNWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8
IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlTW92aWUp
OworCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgLy8gRklYTUUgNDk5NjE1ODk6IFN1
cHBvcnQgcGlja2luZyBtZWRpYSB3aXRoIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyCisgICAgQk9P
TCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBOTzsKKyNlbHNlCisg
ICAgQk9PTCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBjb250YWlu
c0ltYWdlTWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGU7CisjZW5kaWYKKyAgICBp
ZiAoc2hvdWxkUHJlc2VudERvY3VtZW50TWVudVZpZXdDb250cm9sbGVyKSB7CisgICAgICAgIFtz
ZWxmIF9pbml0SW50ZXJhY3Rpb25dOworICAgICAgICBbX2RvY3VtZW50TWVudUludGVyYWN0aW9u
IF9wcmVzZW50TWVudUF0TG9jYXRpb246Q0dQb2ludE1ha2UoX2ludGVyYWN0aW9uUG9pbnQueCwg
X2ludGVyYWN0aW9uUG9pbnQueSldOworICAgIH0gZWxzZSAvLyBJbWFnZSBhbmQgVmlkZW8gdHlw
ZXMgYXJlIG5vdCBhY2NlcHRlZCBzbyBieXBhc3MgdGhlIG1lbnUgYW5kIG9wZW4gdGhlIGZpbGUg
cGlja2VyIGRpcmVjdGx5LgorICAgICAgICBbc2VsZiBfc2hvd0ZpbGVQaWNrZXJNZW51XTsKKyAg
ICAKKyAgICAvLyBDbGVhciBvdXQgdGhlIHZpZXcgY29udHJvbGxlciB3ZSBqdXN0IHByZXNlbnRl
ZC4gRG9uJ3Qgc2F2ZSBhIHJlZmVyZW5jZSB0byB0aGUgVUlEb2N1bWVudFBpY2tlclZpZXdDb250
cm9sbGVyIGFzIGl0IGlzIHNlbGYgZGlzbWlzc2luZy4KICAgICBfcHJlc2VudGF0aW9uVmlld0Nv
bnRyb2xsZXIgPSBuaWw7CiB9CiAKQEAgLTUyMCwxNCArNTY1LDE0IEBAIC0gKHZvaWQpX3ByZXNl
bnRQb3BvdmVyV2l0aENvbnRlbnRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKWNv
bnRlbnRWaWV3CiAgICAgX3ByZXNlbnRhdGlvblBvcG92ZXIgPSBhZG9wdE5TKFtbVUlQb3BvdmVy
Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6Y29udGVudFZp
ZXdDb250cm9sbGVyXSk7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHNldERlbGVnYXRlOnNlbGZdOwotICAgIFtfcHJlc2Vu
dGF0aW9uUG9wb3ZlciBwcmVzZW50UG9wb3ZlckZyb21SZWN0OkNHUmVjdEludGVncmFsKENHUmVj
dE1ha2UoX2ludGVyYWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSwgMSwgMSkpIGlu
VmlldzpfdmlldyBwZXJtaXR0ZWRBcnJvd0RpcmVjdGlvbnM6VUlQb3BvdmVyQXJyb3dEaXJlY3Rp
b25BbnkgYW5pbWF0ZWQ6YW5pbWF0ZWRdOworICAgIFtfcHJlc2VudGF0aW9uUG9wb3ZlciBwcmVz
ZW50UG9wb3ZlckZyb21SZWN0OkNHUmVjdEludGVncmFsKENHUmVjdE1ha2UoX2ludGVyYWN0aW9u
UG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSwgMSwgMSkpIGluVmlldzpfdmlldy5nZXRBdXRv
cmVsZWFzZWQoKSBwZXJtaXR0ZWRBcnJvd0RpcmVjdGlvbnM6VUlQb3BvdmVyQXJyb3dEaXJlY3Rp
b25BbnkgYW5pbWF0ZWQ6YW5pbWF0ZWRdOwogfQogCiAtICh2b2lkKV9wcmVzZW50RnVsbHNjcmVl
blZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopdmlld0NvbnRyb2xsZXIgYW5pbWF0
ZWQ6KEJPT0wpYW5pbWF0ZWQKIHsKICAgICBbc2VsZiBfZGlzbWlzc0Rpc3BsYXlBbmltYXRlZDph
bmltYXRlZF07CiAKLSAgICBfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29u
dHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6
X3ZpZXddOworICAgIF9wcmVzZW50YXRpb25WaWV3Q29udHJvbGxlciA9IFtVSVZpZXdDb250cm9s
bGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpfdmll
dy5nZXRBdXRvcmVsZWFzZWQoKV07CiAgICAgW19wcmVzZW50YXRpb25WaWV3Q29udHJvbGxlciBw
cmVzZW50Vmlld0NvbnRyb2xsZXI6dmlld0NvbnRyb2xsZXIgYW5pbWF0ZWQ6YW5pbWF0ZWQgY29t
cGxldGlvbjpuaWxdOwogfQogCkBAIC01NDAsMjAgKzU4NSw2IEBAIEFMTE9XX0RFUFJFQ0FURURf
SU1QTEVNRU5UQVRJT05TX0VORAogICAgIFtzZWxmIF9jYW5jZWxdOwogfQogCi0jcHJhZ21hIG1h
cmsgLSBVSURvY3VtZW50TWVudURlbGVnYXRlIGltcGxlbWVudGF0aW9uCi0KLS0gKHZvaWQpZG9j
dW1lbnRNZW51OihVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyICopZG9jdW1lbnRNZW51IGRp
ZFBpY2tEb2N1bWVudFBpY2tlcjooVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyICopZG9j
dW1lbnRQaWNrZXIKLXsKLSAgICBkb2N1bWVudFBpY2tlci5kZWxlZ2F0ZSA9IHNlbGY7Ci0gICAg
W3NlbGYgX3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6ZG9jdW1lbnRQaWNrZXIgYW5p
bWF0ZWQ6WUVTXTsKLX0KLQotLSAodm9pZClkb2N1bWVudE1lbnVXYXNDYW5jZWxsZWQ6KFVJRG9j
dW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgKilkb2N1bWVudE1lbnUKLXsKLSAgICBbc2VsZiBfZGlz
bWlzc0Rpc3BsYXlBbmltYXRlZDpZRVNdOwotICAgIFtzZWxmIF9jYW5jZWxdOwotfQotCiAjcHJh
Z21hIG1hcmsgLSBVSURvY3VtZW50UGlja2VyQ29udHJvbGxlckRlbGVnYXRlIGltcGxlbWVudGF0
aW9uCiAKIHN0YXRpYyBOU1N0cmluZyAqZGlzcGxheVN0cmluZ0ZvckRvY3VtZW50c0F0VVJMcyhO
U0FycmF5PE5TVVJMICo+ICp1cmxzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392787</attachid>
            <date>2020-03-06 15:23:54 -0800</date>
            <delta_ts>2020-03-07 13:45:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208687-20200306152354.patch</filename>
            <type>text/plain</type>
            <size>17676</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZmODM5ZDc1OTE0ZWQz
NTVkYTUxMzkxNTM1ZmEwMzBmYWJhYWY2Yy4uOTU4ZmNlNDMxOGE1NmE2ZmU0ZWU4NGVlYWU3Y2Q3
MmRiMTQ0N2E1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVUlD
b250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBzdHJpbmcsIG5vIHRlc3RzIG5lZWRlZC4KKwor
ICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIwMjAtMDMtMDQgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBuZXcgYW5kIGlt
cHJvdmVkIENGTmV0d29yayBTUEkgZm9yIGNvb2tpZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAxZGY5MjViNTQ0OTZiNThkODM4NWYxNzM0NjExNzM3ZTRiZDRkNTFjLi4wYmM1ZWVl
ODRiMWYzYTQyMjg2Y2Y2YzJhM2JhMzk3NjJkMWEyMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5
IEBACisyMDIwLTAzLTA1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRvcHQgVUlDb250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgZnJvbSB0
aGUgZGVwcmljYXRlZCBVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyIHRvIFVJQ29udGV4dE1l
bnUuCisgICAgICAgIFVJIGNoYW5nZSwgbm90IGN1cnJlbnRseSB0ZXN0YWJsZS4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgt
W1dLRmlsZVVwbG9hZFBhbmVsIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFu
ZWwgZGlzbWlzc10pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjdXJyZW50QXZhaWxh
YmxlQWN0aW9uVGl0bGVzXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9icm93c2VG
aWxlc0J1dHRvbkxhYmVsXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGNvbnRleHRN
ZW51SW50ZXJhY3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlv
bjpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX2NvbnRleHRNZW51SW50ZXJhY3Rp
b246c3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRmlsZVVw
bG9hZFBhbmVsIGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJhdGlvbkZvck1lbnVBdExv
Y2F0aW9uOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfaW5pdEludGVyYWN0aW9u
XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9zaG93RmlsZVBpY2tlck1lbnVdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3Nob3dEb2N1bWVudFBpY2tlck1lbnVdKToK
KyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3ByZXNlbnRQb3BvdmVyV2l0aENvbnRlbnRW
aWV3Q29udHJvbGxlcjphbmltYXRlZDpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwg
X3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6YW5pbWF0ZWQ6XSk6CisgICAgICAgIChw
aG90b0xpYnJhcnlJY29uKTogRGVsZXRlZC4KKyAgICAgICAgKGNhbWVyYUljb24pOiBEZWxldGVk
LgorCiAyMDIwLTAzLTA0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQ2FsbCBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lIGJlZm9y
ZSBldmFsdWF0aW5nIEphdmFTY3JpcHQgaW4gbmV3bHkgY3JlYXRlZCB3b3JsZHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9Tb3VyY2Uv
V2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDc1NTIyNWU2YmEzZGUz
MTM4ZDM2NmYxNDdmZmY1Yjg0YTI4ZmFkOTYuLmIxMGIzZTA3ZTU0YjlmYjI4NDdhMTFjYjcwOGYx
MGMwZGQ0YjBiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3Ry
aW5ncwpAQCAtMTU0LDYgKzE1NCw5IEBACiAvKiBMYWJlbCBmb3IgdGhlIGJvb2sgd2l0aCBBcHBs
ZSBQYXkgYnV0dG9uLiAqLwogIkJvb2sgd2l0aCBBcHBsZSBQYXkiID0gIkJvb2sgd2l0aCBBcHBs
ZSBQYXkiOwogCisvKiBGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZvciBj
aG9vc2luZyBhbiBleGlzdGluZyBmaWxlIGZyb20gdGhlIGZpbGUgYnJvd2VyICovCisiQnJvd3Nl
IChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiA9ICJCcm93c2UiOworCiAvKiBPcHRpb24gaW4g
c2VnbWVudGVkIGNvbnRyb2wgZm9yIGluc2VydGluZyBhIGJ1bGxldGVkIGxpc3QgaW4gdGV4dCBl
ZGl0aW5nICovCiAiQnVsbGV0ZWQgbGlzdCIgPSAiQnVsbGV0ZWQgbGlzdCI7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggNGE2NmU0MzgxY2VkMTI2ZThm
NjQwY2JmMDUwOTcwMGIyMDA4N2I1Zi4uYTk2ZDE5YjFlYzhkYjM5YzhiZDRhZGY4ZGEwZGQwOGM5
M2ZiMTUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAg
LTEwOTcsMTMgKzEwOTcsMjUgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgVUlXS0Rv
Y3VtZW50UmVxdWVzdEZsYWdzKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBVSUlt
YWdlICppbWFnZTsKIEBlbmQKIAordHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9VSUNvbnRl
eHRNZW51TGF5b3V0KSB7CisgICAgX1VJQ29udGV4dE1lbnVMYXlvdXRBY3Rpb25zT25seSA9IDEs
CisgICAgX1VJQ29udGV4dE1lbnVMYXlvdXRDb21wYWN0TWVudSA9IDMsCit9OworCiBAaW50ZXJm
YWNlIF9VSUNvbnRleHRNZW51U3R5bGUgOiBOU09iamVjdCA8TlNDb3B5aW5nPgorQHByb3BlcnR5
IChub25hdG9taWMpIF9VSUNvbnRleHRNZW51TGF5b3V0IHByZWZlcnJlZExheW91dDsKKysgKGlu
c3RhbmNldHlwZSlkZWZhdWx0U3R5bGU7CiBAZW5kCiAKICNpZiBVU0UoVUlDT05URVhUTUVOVSkK
IEBpbnRlcmZhY2UgVUlUYXJnZXRlZFByZXZpZXcgKCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
dHJvbmcsIHNldHRlcj1fc2V0T3ZlcnJpZGVQb3NpdGlvblRyYWNraW5nVmlldzopIFVJVmlldyAq
b3ZlcnJpZGVQb3NpdGlvblRyYWNraW5nVmlldzsKIEBlbmQKKworQGludGVyZmFjZSBVSUNvbnRl
eHRNZW51SW50ZXJhY3Rpb24gKCkKKy0gKHZvaWQpX3ByZXNlbnRNZW51QXRMb2NhdGlvbjooQ0dQ
b2ludClsb2NhdGlvbjsKK0BlbmQKKwogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRNRU5VKQogCiAj
aWYgSEFWRShMSU5LX1BSRVZJRVcpICYmIFVTRShVSUNPTlRFWFRNRU5VKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCmlu
ZGV4IDVkYjQ2NWZiMjMyMDhmNDE4MDY0MTMxNTZjZGYwNjVhMjQ1ZDlkYmIuLjRjOGRmMGYxZjcy
ZTRjM2M1ZjAzNWZkZWEyMWRjMjBiZGZkNzgzMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KQEAgLTQ3LDYgKzQ3
LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9VVElVdGlsaXRpZXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQg
PHd0Zi9XZWFrT2JqQ1B0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNjcsMTggKzY4LDYgQEAgc3RhdGljIGJvb2wgYXJy
YXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKE5TQXJyYXk8TlNTdHJpbmcgKj4gKnR5cGVJZGVu
dGlmaWVycywKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNwcmFnbWEgbWFyayAtIERvY3VtZW50
IHBpY2tlciBpY29ucwotCi1zdGF0aWMgaW5saW5lIFVJSW1hZ2UgKnBob3RvTGlicmFyeUljb24o
KQotewotICAgIHJldHVybiBfVUlJbWFnZUdldFdlYktpdFBob3RvTGlicmFyeUljb24oKTsKLX0K
LQotc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29uKCkKLXsKLSAgICByZXR1cm4gX1VJ
SW1hZ2VHZXRXZWJLaXRUYWtlUGhvdG9PclZpZGVvSWNvbigpOwotfQotCiAjcHJhZ21hIG1hcmsg
LSBfV0tGaWxlVXBsb2FkSXRlbQogCiBAaW50ZXJmYWNlIF9XS0ZpbGVVcGxvYWRJdGVtIDogTlNP
YmplY3QKQEAgLTE2MSwxMSArMTUwLDExIEBAIEBlbmQKIAogI3ByYWdtYSBtYXJrIC0gV0tGaWxl
VXBsb2FkUGFuZWwKIAotQGludGVyZmFjZSBXS0ZpbGVVcGxvYWRQYW5lbCAoKSA8VUlQb3BvdmVy
Q29udHJvbGxlckRlbGVnYXRlLCBVSU5hdmlnYXRpb25Db250cm9sbGVyRGVsZWdhdGUsIFVJSW1h
Z2VQaWNrZXJDb250cm9sbGVyRGVsZWdhdGUsIFVJRG9jdW1lbnRQaWNrZXJEZWxlZ2F0ZSwgVUlE
b2N1bWVudE1lbnVEZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV0tGaWxlVXBsb2FkUGFuZWwgKCkgPFVJ
UG9wb3ZlckNvbnRyb2xsZXJEZWxlZ2F0ZSwgVUlOYXZpZ2F0aW9uQ29udHJvbGxlckRlbGVnYXRl
LCBVSUltYWdlUGlja2VyQ29udHJvbGxlckRlbGVnYXRlLCBVSURvY3VtZW50UGlja2VyRGVsZWdh
dGUsIFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRlPgogQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gV0tGaWxlVXBsb2FkUGFuZWwgewotICAgIFdLQ29udGVudFZpZXcgKl92aWV3OworICAg
IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+IF92aWV3OwogICAgIFJlZlB0cjxXZWJLaXQ6Oldl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk+IF9saXN0ZW5lcjsKICAgICBSZXRhaW5QdHI8
TlNBcnJheT4gX21pbWVUeXBlczsKICAgICBDR1BvaW50IF9pbnRlcmFjdGlvblBvaW50OwpAQCAt
MTc2LDcgKzE2NSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0ZpbGVVcGxvYWRQYW5lbCB7CiAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRhaW5QdHI8VUlQb3Bv
dmVyQ29udHJvbGxlcj4gX3ByZXNlbnRhdGlvblBvcG92ZXI7IC8vIGlQYWQgZm9yIGFjdGlvbiBz
aGVldCBhbmQgUGhvdG8gTGlicmFyeS4KICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKLSAgICBSZXRhaW5QdHI8VUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcj4gX2RvY3Vt
ZW50TWVudUNvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlv
bj4gX2RvY3VtZW50TWVudUludGVyYWN0aW9uOwogICAgIFJldGFpblB0cjxVSURvY3VtZW50UGlj
a2VyVmlld0NvbnRyb2xsZXI+IF9kb2N1bWVudFBpY2tlckNvbnRyb2xsZXI7CiAgICAgV2ViQ29y
ZTo6TWVkaWFDYXB0dXJlVHlwZSBfbWVkaWFDYXB0dXJlVHlwZTsKIH0KQEAgLTE5Myw4ICsxODIs
OSBAQCAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBbX2ltYWdlUGlja2VyIHNldERlbGVnYXRlOm5p
bF07CiAgICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHNldERlbGVnYXRlOm5pbF07Ci0gICAgW19k
b2N1bWVudE1lbnVDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW19kb2N1bWVudFBp
Y2tlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBpZiAoX2RvY3VtZW50TWVudUlu
dGVyYWN0aW9uKQorICAgICAgICBbX3ZpZXcgcmVtb3ZlSW50ZXJhY3Rpb246X2RvY3VtZW50TWVu
dUludGVyYWN0aW9uLmdldCgpXTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KQEAgLTI4Niw3
ICsyNzYsNyBAQCAtICh2b2lkKWRpc21pc3MKICAgICAvLyBEaXNtaXNzIGFueSB2aWV3IGNvbnRy
b2xsZXIgdGhhdCBpcyBiZWluZyBwcmVzZW50ZWQuIFRoaXMgd29ya3MgZm9yIGFsbCB0eXBlcyBv
ZiB2aWV3IGNvbnRyb2xsZXJzLCBwb3BvdmVycywgZXRjLgogICAgIC8vIElmIHRoZXJlIGlzIGFu
eSBraW5kIG9mIHZpZXcgY29udHJvbGxlciBwcmVzZW50ZWQgb24gdGhpcyB2aWV3LCBpdCB3aWxs
IGJlIHJlbW92ZWQuCiAgICAgCi0gICAgW1tVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxl
ckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpfdmlld10gZGlzbWlzc1ZpZXdDb250
cm9sbGVyQW5pbWF0ZWQ6Tk8gY29tcGxldGlvbjpuaWxdOworICAgIFtbVUlWaWV3Q29udHJvbGxl
ciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6X3ZpZXcu
Z2V0QXV0b3JlbGVhc2VkKCldIGRpc21pc3NWaWV3Q29udHJvbGxlckFuaW1hdGVkOk5PIGNvbXBs
ZXRpb246bmlsXTsKICAgICAKICAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgc2V0RGVsZWdhdGU6
bmlsXTsKICAgICBfcHJlc2VudGF0aW9uUG9wb3ZlciA9IG5pbDsKQEAgLTM4Niw2ICszNzYsMTEg
QEAgLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKV9tZWRpYVR5cGVzRm9yUGlja2VyU291cmNlVHlw
ZTooVUlJbWFnZVBpY2tlckNvbnRyb2xsZXIKIAogI3ByYWdtYSBtYXJrIC0gU291cmNlIHNlbGVj
dGlvbiBtZW51CiAKKy0gKE5TU3RyaW5nICopX2Jyb3dzZUZpbGVzQnV0dG9uTGFiZWwKK3sKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkJyb3dzZSIsICJCcm93c2UgKGZpbGUgdXBsb2Fk
IGFjdGlvbiBzaGVldCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgYnV0dG9uIHN0cmluZyBm
b3IgY2hvb3NpbmcgYW4gZXhpc3RpbmcgZmlsZSBmcm9tIHRoZSBmaWxlIGJyb3dlciIpOworfQor
CiAtIChOU1N0cmluZyAqKV9waG90b0xpYnJhcnlCdXR0b25MYWJlbAogewogICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiUGhvdG8gTGlicmFyeSIsICJQaG90byBMaWJyYXJ5IChmaWxlIHVw
bG9hZCBhY3Rpb24gc2hlZXQpIiwgIkZpbGUgVXBsb2FkIGFsZXJ0IHNoZWV0IGJ1dHRvbiBzdHJp
bmcgZm9yIGNob29zaW5nIGFuIGV4aXN0aW5nIG1lZGlhIGl0ZW0gZnJvbSB0aGUgUGhvdG8gTGli
cmFyeSIpOwpAQCAtNDAzLDQ4ICszOTgsOTggQEAgLSAoTlNTdHJpbmcgKilfY2FtZXJhQnV0dG9u
TGFiZWxBbGxvd2luZ1Bob3RvOihCT09MKWFsbG93UGhvdG8gYWxsb3dpbmdWaWRlbzooQk8KICAg
ICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlRha2UgUGhvdG8iLCAiVGFrZSBQaG90byAoZmls
ZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBjYW1lcmEg
YnV0dG9uIHN0cmluZyBmb3IgdGFraW5nIG9ubHkgcGhvdG9zIik7CiB9CiAKLS0gKHZvaWQpX3No
b3dEb2N1bWVudFBpY2tlck1lbnUKKy0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY29udGV4dE1lbnVJ
bnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJldmll
d0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZp
Z3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7Ci0gICAgTlNBcnJheSAqbWVkaWFUeXBlcyA9IFVU
SXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0czsKKyAgICBSZXRhaW5Q
dHI8VUlQcmV2aWV3UGFyYW1ldGVycz4gdW51c2VkUHJldmlld1BhcmFtZXRlcnMgPSBhZG9wdE5T
KFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0pOworICAgIFJldGFpblB0cjxVSVBy
ZXZpZXdUYXJnZXQ+IHByZXZpZXdUYXJnZXQgPSBhZG9wdE5TKFtbVUlQcmV2aWV3VGFyZ2V0IGFs
bG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjZW50ZXI6Q0dQ
b2ludE1ha2UoX2ludGVyYWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSldKTsKKyAg
ICBSZXRhaW5QdHI8VUlUYXJnZXRlZFByZXZpZXc+IHByZXZpZXcgPSBhZG9wdE5TKFtbVUlUYXJn
ZXRlZFByZXZpZXcgYWxsb2NdIGluaXRXaXRoVmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBw
YXJhbWV0ZXJzOnVudXNlZFByZXZpZXdQYXJhbWV0ZXJzLmdldCgpIHRhcmdldDpwcmV2aWV3VGFy
Z2V0LmdldCgpXSk7CiAKLSAgICBCT09MIGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgPSAhbWVkaWFU
eXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywg
a1VUVHlwZUltYWdlKTsKLSAgICBCT09MIGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUgPSAhbWVkaWFU
eXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywg
a1VUVHlwZU1vdmllKTsKKyAgICByZXR1cm4gcHJldmlldy5hdXRvcmVsZWFzZSgpOworfQogCi0j
aWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgLy8gRklYTUUgNDk5NjE1ODk6IFN1cHBvcnQg
cGlja2luZyBtZWRpYSB3aXRoIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyCi0gICAgQk9PTCBzaG91
bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBOTzsKLSNlbHNlCi0gICAgQk9P
TCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBjb250YWluc0ltYWdl
TWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGU7Ci0jZW5kaWYKKy0gKF9VSUNvbnRl
eHRNZW51U3R5bGUgKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVy
YWN0aW9uICopaW50ZXJhY3Rpb24gc3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29u
dGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgoreworICAgIF9VSUNvbnRleHRN
ZW51U3R5bGUgKnN0eWxlID0gW19VSUNvbnRleHRNZW51U3R5bGUgZGVmYXVsdFN0eWxlXTsKKyAg
ICBzdHlsZS5wcmVmZXJyZWRMYXlvdXQgPSBfVUlDb250ZXh0TWVudUxheW91dENvbXBhY3RNZW51
OworICAgIHJldHVybiBzdHlsZTsKK30KIAotICAgIE5TQXJyYXkgKmRvY3VtZW50VHlwZXMgPSBt
ZWRpYVR5cGVzLmNvdW50ID8gbWVkaWFUeXBlcyA6IEBbKF9fYnJpZGdlIE5TU3RyaW5nICopa1VU
VHlwZUl0ZW1dOwotICAgIGlmIChzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xs
ZXIpIHsKLSAgICAgICAgLy8gRklYTUUgNDk5Nzk0NDI6IFVJRG9jdW1lbnRNZW51Vmlld0NvbnRy
b2xsZXIgaXMgZGVwcmVjYXRlZC4gVXNlIFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBp
bnN0ZWFkIHRvIHN1cHBvcnQgbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb24uCi0gICAgICAgIF9kb2N1
bWVudE1lbnVDb250cm9sbGVyID0gYWRvcHROUyhbW1VJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xs
ZXIgYWxsb2NdIF9pbml0SWdub3JpbmdBcHBsaWNhdGlvbkVudGl0bGVtZW50Rm9ySW1wb3J0T2ZU
eXBlczpkb2N1bWVudFR5cGVzXSk7Ci0gICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBz
ZXREZWxlZ2F0ZTpzZWxmXTsKKy0gKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4
dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24g
Y29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIHsKKworICAg
IFVJQ29udGV4dE1lbnVBY3Rpb25Qcm92aWRlciBhY3Rpb25NZW51UHJvdmlkZXIgPSBbc2VsZiwg
d2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0ZpbGVVcGxvYWRQYW5lbD4oc2VsZildIChOU0FycmF5
PFVJTWVudUVsZW1lbnQgKj4gKikgLT4gVUlNZW51ICogeworICAgICAgICBOU0FycmF5ICphY3Rp
b25zOworICAgICAgICBOU0FycmF5ICptZWRpYVR5cGVzID0gVVRJc0Zvck1JTUVUeXBlcyhfbWlt
ZVR5cGVzLmdldCgpKS5hbGxPYmplY3RzOwogCi0gICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJv
bGxlciBhZGRPcHRpb25XaXRoVGl0bGU6W3NlbGYgX3Bob3RvTGlicmFyeUJ1dHRvbkxhYmVsXSBp
bWFnZTpwaG90b0xpYnJhcnlJY29uKCkgb3JkZXI6VUlEb2N1bWVudE1lbnVPcmRlckZpcnN0IGhh
bmRsZXI6XnsKKyAgICAgICAgQk9PTCBjb250YWluc0ltYWdlTWVkaWFUeXBlID0gIW1lZGlhVHlw
ZXMuY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtV
VFR5cGVJbWFnZSk7CisgICAgICAgIEJPT0wgY29udGFpbnNWaWRlb01lZGlhVHlwZSA9ICFtZWRp
YVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVz
LCBrVVRUeXBlTW92aWUpOworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQo
KTsKKyAgICAgICAgCisgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVy
biBbVUlNZW51IG1lbnVXaXRoVGl0bGU6QCIiIGNoaWxkcmVuOkBbXV07CisgICAgICAgIAorICAg
ICAgICBVSUFjdGlvbiAqYnJvd3NlQWN0aW9uID0gW1VJQWN0aW9uIGFjdGlvbldpdGhUaXRsZTpb
c3Ryb25nU2VsZiBfYnJvd3NlRmlsZXNCdXR0b25MYWJlbF0gaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVt
SW1hZ2VOYW1lZDpAImVsbGlwc2lzIl0gaWRlbnRpZmllcjpAImJyb3dzZSIgaGFuZGxlcjpeKF9f
a2luZG9mIFVJQWN0aW9uICphY3Rpb24pIHsKKyAgICAgICAgICAgIFtzZWxmIF9zaG93RmlsZVBp
Y2tlck1lbnVdOworICAgICAgICB9XTsKKworICAgICAgICBVSUFjdGlvbiAqcGhvdG9BY3Rpb24g
PSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOltzdHJvbmdTZWxmIF9waG90b0xpYnJhcnlCdXR0
b25MYWJlbF0gaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVtSW1hZ2VOYW1lZDpAInJlY3RhbmdsZS5vbi5y
ZWN0YW5nbGUiXSBpZGVudGlmaWVyOkAicGhvdG8iIGhhbmRsZXI6XihfX2tpbmRvZiBVSUFjdGlv
biAqYWN0aW9uKSB7CiAgICAgICAgICAgICBbc2VsZiBfc2hvd1Bob3RvUGlja2VyV2l0aFNvdXJj
ZVR5cGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlUGhvdG9MaWJyYXJ5XTsKICAg
ICAgICAgfV07CiAKICAgICAgICAgaWYgKFtVSUltYWdlUGlja2VyQ29udHJvbGxlciBpc1NvdXJj
ZVR5cGVBdmFpbGFibGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXSkg
ewotICAgICAgICAgICAgTlNTdHJpbmcgKmNhbWVyYVN0cmluZyA9IFtzZWxmIF9jYW1lcmFCdXR0
b25MYWJlbEFsbG93aW5nUGhvdG86Y29udGFpbnNJbWFnZU1lZGlhVHlwZSBhbGxvd2luZ1ZpZGVv
OmNvbnRhaW5zVmlkZW9NZWRpYVR5cGVdOwotICAgICAgICAgICAgW19kb2N1bWVudE1lbnVDb250
cm9sbGVyIGFkZE9wdGlvbldpdGhUaXRsZTpjYW1lcmFTdHJpbmcgaW1hZ2U6Y2FtZXJhSWNvbigp
IG9yZGVyOlVJRG9jdW1lbnRNZW51T3JkZXJGaXJzdCBoYW5kbGVyOl57CisgICAgICAgICAgICBO
U1N0cmluZyAqY2FtZXJhU3RyaW5nID0gW3N0cm9uZ1NlbGYgX2NhbWVyYUJ1dHRvbkxhYmVsQWxs
b3dpbmdQaG90bzpjb250YWluc0ltYWdlTWVkaWFUeXBlIGFsbG93aW5nVmlkZW86Y29udGFpbnNW
aWRlb01lZGlhVHlwZV07CisgICAgICAgICAgICBVSUFjdGlvbiAqY2FtZXJhQWN0aW9uID0gW1VJ
QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpjYW1lcmFTdHJpbmcgaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVt
SW1hZ2VOYW1lZDpAImNhbWVyYS5maWxsIl0gaWRlbnRpZmllcjpAImNhbWVyYSIgaGFuZGxlcjpe
KF9fa2luZG9mIFVJQWN0aW9uICphY3Rpb24pIHsKICAgICAgICAgICAgICAgICBfdXNpbmdDYW1l
cmEgPSBZRVM7CiAgICAgICAgICAgICAgICAgW3NlbGYgX3Nob3dQaG90b1BpY2tlcldpdGhTb3Vy
Y2VUeXBlOlVJSW1hZ2VQaWNrZXJDb250cm9sbGVyU291cmNlVHlwZUNhbWVyYV07CiAgICAgICAg
ICAgICB9XTsKLSAgICAgICAgfQorICAgICAgICAgICAgYWN0aW9ucyA9IEBbcGhvdG9BY3Rpb24s
IGNhbWVyYUFjdGlvbiwgYnJvd3NlQWN0aW9uXTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBhY3Rpb25zID0gQFtwaG90b0FjdGlvbiwgYnJvd3NlQWN0aW9uXTsKIAotICAgICAgICBbc2Vs
ZiBfcHJlc2VudE1lbnVPcHRpb25Gb3JDdXJyZW50SW50ZXJmYWNlSWRpb206X2RvY3VtZW50TWVu
dUNvbnRyb2xsZXIuZ2V0KCldOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEltYWdlIGFuZCBW
aWRlbyB0eXBlcyBhcmUgbm90IGFjY2VwdGVkIHNvIGJ5cGFzcyB0aGUgbWVudSBhbmQgb3BlbiB0
aGUgZmlsZSBwaWNrZXIgZGlyZWN0bHkuCi0gICAgICAgIF9kb2N1bWVudFBpY2tlckNvbnRyb2xs
ZXIgPSBhZG9wdE5TKFtbVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0
V2l0aERvY3VtZW50VHlwZXM6ZG9jdW1lbnRUeXBlcyBpbk1vZGU6VUlEb2N1bWVudFBpY2tlck1v
ZGVJbXBvcnRdKTsKLSAgICAgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0QWxsb3dz
TXVsdGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlwbGVGaWxlc107Ci0gICAgICAgIFtfZG9jdW1l
bnRQaWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOwotICAgICAgICBbc2VsZiBfcHJl
c2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjpfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyLmdl
dCgpIGFuaW1hdGVkOllFU107CisgICAgICAgIHJldHVybiBbVUlNZW51IG1lbnVXaXRoVGl0bGU6
QCIiIGNoaWxkcmVuOmFjdGlvbnNdOworICAgIH07CisgICAgCisgICAgcmV0dXJuIFtVSUNvbnRl
eHRNZW51Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uV2l0aElkZW50aWZpZXI6bmlsIHByZXZp
ZXdQcm92aWRlcjpuaWwgYWN0aW9uUHJvdmlkZXI6YWN0aW9uTWVudVByb3ZpZGVyXTsKK30KKwor
LSAodm9pZClfaW5pdEludGVyYWN0aW9uCit7CisgICAgaWYgKCFfZG9jdW1lbnRNZW51SW50ZXJh
Y3Rpb24pIHsKKyAgICAgICAgX2RvY3VtZW50TWVudUludGVyYWN0aW9uID0gYWRvcHROUyhbW1VJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbiBhbGxvY10gaW5pdFdpdGhEZWxlZ2F0ZTpzZWxmXSk7Cisg
ICAgICAgIFtfdmlldyBhZGRJbnRlcmFjdGlvbjpfZG9jdW1lbnRNZW51SW50ZXJhY3Rpb24uZ2V0
KCldOwogICAgIH0KK30KKworLSAodm9pZClfc2hvd0ZpbGVQaWNrZXJNZW51Cit7CisgICAgTlNB
cnJheSAqbWVkaWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxs
T2JqZWN0czsKKyAgICBOU0FycmF5ICpkb2N1bWVudFR5cGVzID0gbWVkaWFUeXBlcy5jb3VudCA/
IG1lZGlhVHlwZXMgOiBAWyhfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVJdGVtXTsKKyAgICAK
KyAgICBfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyID0gYWRvcHROUyhbW1VJRG9jdW1lbnRQaWNr
ZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhEb2N1bWVudFR5cGVzOmRvY3VtZW50VHlw
ZXMgaW5Nb2RlOlVJRG9jdW1lbnRQaWNrZXJNb2RlSW1wb3J0XSk7CisgICAgW19kb2N1bWVudFBp
Y2tlckNvbnRyb2xsZXIgc2V0QWxsb3dzTXVsdGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlwbGVG
aWxlc107CisgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6c2VsZl07
CisgICAgW3NlbGYgX3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6X2RvY3VtZW50UGlj
a2VyQ29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZRVNdOworfQogCi0gICAgLy8gQ2xlYXIgb3V0
IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2UganVzdCBwcmVzZW50ZWQuIERvbid0IHNhdmUgYSByZWZl
cmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgLyBVSURvY3VtZW50UGlj
a2VyVmlld0NvbnRyb2xsZXIgYXMgaXQgaXMgc2VsZiBkaXNtaXNzaW5nLgorLSAodm9pZClfc2hv
d0RvY3VtZW50UGlja2VyTWVudQoreworICAgIE5TQXJyYXkgKm1lZGlhVHlwZXMgPSBVVElzRm9y
TUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0KCkpLmFsbE9iamVjdHM7CisKKyAgICBCT09MIGNvbnRh
aW5zSW1hZ2VNZWRpYVR5cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJ
VGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywga1VUVHlwZUltYWdlKTsKKyAgICBCT09MIGNvbnRh
aW5zVmlkZW9NZWRpYVR5cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJ
VGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywga1VUVHlwZU1vdmllKTsKKworI2lmIFBMQVRGT1JN
KE1BQ0NBVEFMWVNUKQorICAgIC8vIEZJWE1FIDQ5OTYxNTg5OiBTdXBwb3J0IHBpY2tpbmcgbWVk
aWEgd2l0aCBVSUltYWdlUGlja2VyQ29udHJvbGxlcgorICAgIEJPT0wgc2hvdWxkUHJlc2VudERv
Y3VtZW50TWVudVZpZXdDb250cm9sbGVyID0gTk87CisjZWxzZQorICAgIEJPT0wgc2hvdWxkUHJl
c2VudERvY3VtZW50TWVudVZpZXdDb250cm9sbGVyID0gY29udGFpbnNJbWFnZU1lZGlhVHlwZSB8
fCBjb250YWluc1ZpZGVvTWVkaWFUeXBlOworI2VuZGlmCisgICAgaWYgKHNob3VsZFByZXNlbnRE
b2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcikgeworICAgICAgICBbc2VsZiBfaW5pdEludGVyYWN0
aW9uXTsKKyAgICAgICAgW19kb2N1bWVudE1lbnVJbnRlcmFjdGlvbiBfcHJlc2VudE1lbnVBdExv
Y2F0aW9uOkNHUG9pbnRNYWtlKF9pbnRlcmFjdGlvblBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50
LnkpXTsKKyAgICB9IGVsc2UgLy8gSW1hZ2UgYW5kIFZpZGVvIHR5cGVzIGFyZSBub3QgYWNjZXB0
ZWQgc28gYnlwYXNzIHRoZSBtZW51IGFuZCBvcGVuIHRoZSBmaWxlIHBpY2tlciBkaXJlY3RseS4K
KyAgICAgICAgW3NlbGYgX3Nob3dGaWxlUGlja2VyTWVudV07CisgICAgCisgICAgLy8gQ2xlYXIg
b3V0IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2UganVzdCBwcmVzZW50ZWQuIERvbid0IHNhdmUgYSBy
ZWZlcmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBhcyBpdCBpcyBz
ZWxmIGRpc21pc3NpbmcuCiAgICAgX3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyID0gbmlsOwog
fQogCkBAIC01MjAsMTQgKzU2NSwxNCBAQCAtICh2b2lkKV9wcmVzZW50UG9wb3ZlcldpdGhDb250
ZW50Vmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKiljb250ZW50VmlldwogICAgIF9w
cmVzZW50YXRpb25Qb3BvdmVyID0gYWRvcHROUyhbW1VJUG9wb3ZlckNvbnRyb2xsZXIgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOmNvbnRlbnRWaWV3Q29udHJvbGxlcl0pOwog
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtfcHJlc2VudGF0aW9u
UG9wb3ZlciBzZXREZWxlZ2F0ZTpzZWxmXTsKLSAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgcHJl
c2VudFBvcG92ZXJGcm9tUmVjdDpDR1JlY3RJbnRlZ3JhbChDR1JlY3RNYWtlKF9pbnRlcmFjdGlv
blBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnksIDEsIDEpKSBpblZpZXc6X3ZpZXcgcGVybWl0
dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93RGlyZWN0aW9uQW55IGFuaW1hdGVkOmFu
aW1hdGVkXTsKKyAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgcHJlc2VudFBvcG92ZXJGcm9tUmVj
dDpDR1JlY3RJbnRlZ3JhbChDR1JlY3RNYWtlKF9pbnRlcmFjdGlvblBvaW50LngsIF9pbnRlcmFj
dGlvblBvaW50LnksIDEsIDEpKSBpblZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgcGVybWl0
dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93RGlyZWN0aW9uQW55IGFuaW1hdGVkOmFu
aW1hdGVkXTsKIH0KIAogLSAodm9pZClfcHJlc2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjoo
VUlWaWV3Q29udHJvbGxlciAqKXZpZXdDb250cm9sbGVyIGFuaW1hdGVkOihCT09MKWFuaW1hdGVk
CiB7CiAgICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6YW5pbWF0ZWRdOwogCi0gICAg
X3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyID0gW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250
cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRhdGlvbkZyb21WaWV3Ol92aWV3XTsKKyAgICBfcHJl
c2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xs
ZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2Vk
KCldOwogICAgIFtfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9s
bGVyOnZpZXdDb250cm9sbGVyIGFuaW1hdGVkOmFuaW1hdGVkIGNvbXBsZXRpb246bmlsXTsKIH0K
IApAQCAtNTQwLDIwICs1ODUsNiBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19F
TkQKICAgICBbc2VsZiBfY2FuY2VsXTsKIH0KIAotI3ByYWdtYSBtYXJrIC0gVUlEb2N1bWVudE1l
bnVEZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbgotCi0tICh2b2lkKWRvY3VtZW50TWVudTooVUlEb2N1
bWVudE1lbnVWaWV3Q29udHJvbGxlciAqKWRvY3VtZW50TWVudSBkaWRQaWNrRG9jdW1lbnRQaWNr
ZXI6KFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciAqKWRvY3VtZW50UGlja2VyCi17Ci0g
ICAgZG9jdW1lbnRQaWNrZXIuZGVsZWdhdGUgPSBzZWxmOwotICAgIFtzZWxmIF9wcmVzZW50RnVs
bHNjcmVlblZpZXdDb250cm9sbGVyOmRvY3VtZW50UGlja2VyIGFuaW1hdGVkOllFU107Ci19Ci0K
LS0gKHZvaWQpZG9jdW1lbnRNZW51V2FzQ2FuY2VsbGVkOihVSURvY3VtZW50TWVudVZpZXdDb250
cm9sbGVyICopZG9jdW1lbnRNZW51Ci17Ci0gICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0
ZWQ6WUVTXTsKLSAgICBbc2VsZiBfY2FuY2VsXTsKLX0KLQogI3ByYWdtYSBtYXJrIC0gVUlEb2N1
bWVudFBpY2tlckNvbnRyb2xsZXJEZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbgogCiBzdGF0aWMgTlNT
dHJpbmcgKmRpc3BsYXlTdHJpbmdGb3JEb2N1bWVudHNBdFVSTHMoTlNBcnJheTxOU1VSTCAqPiAq
dXJscykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392889</attachid>
            <date>2020-03-07 13:45:16 -0800</date>
            <delta_ts>2020-03-07 14:00:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208687-20200307134515.patch</filename>
            <type>text/plain</type>
            <size>18371</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYyNWZkMGMxYWFiYTdi
ODcxMjRhZTIzODM3ODVhMDMzNWJlMzI4YS4uMzFmM2Y3NTk1NTM1YTY4NWQzYjg3NjA1OGEwMzdi
ZDQ4NDQ3ZjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA3ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVUlD
b250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBzdHJpbmcsIG5vIHRlc3RzIG5lZWRlZC4KKwor
ICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIwMjAtMDMtMDYgIEFu
ZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVu
dGF0aW9uIG9mIEFjY2Vzc2liaWxpdHlTdXBwb3J0IEFYU0lzb2xhdGVkVHJlZU1vZGUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDU4ZWExOTMzMjMwZjg1ZWJhNmEwYzU4YTEzOGQzNTE2OGUzZTU2MzEuLjIyNWRlOWVm
ZmFmYjVjZGU1NTIxZDc5MzJiOTc2N2MwMDE4NmQwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMjAtMDMtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBBZG9wdCBVSUNvbnRleHRNZW51IGZvciBXS0ZpbGVVcGxvYWRQYW5lbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4Njg3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBmcm9tIHRo
ZSBkZXByaWNhdGVkIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgdG8gVUlDb250ZXh0TWVu
dS4KKyAgICAgICAgVUkgY2hhbmdlLCBub3QgY3VycmVudGx5IHRlc3RhYmxlLgorCisgICAgICAg
ICogUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVs
IGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgcHJlc2VudFdpdGhQYXJh
bWV0ZXJzOnJlc3VsdExpc3RlbmVyOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBk
aXNtaXNzXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9icm93c2VGaWxlc0J1dHRv
bkxhYmVsXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGNvbnRleHRNZW51SW50ZXJh
Y3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAg
ICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX2NvbnRleHRNZW51SW50ZXJhY3Rpb246c3R5bGVG
b3JNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVs
IGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0aW9uOl0p
OgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjb250ZXh0TWVudUludGVyYWN0aW9uOndp
bGxFbmRGb3JDb25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxv
YWRQYW5lbCBfcmVtb3ZlSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFu
ZWwgX2luaXRJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfc2hv
d0ZpbGVQaWNrZXJNZW51XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9zaG93RG9j
dW1lbnRQaWNrZXJNZW51XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9wcmVzZW50
UG9wb3ZlcldpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6YW5pbWF0ZWQ6XSk6CisgICAgICAgICgt
W1dLRmlsZVVwbG9hZFBhbmVsIF9wcmVzZW50RnVsbHNjcmVlblZpZXdDb250cm9sbGVyOmFuaW1h
dGVkOl0pOgorICAgICAgICAocGhvdG9MaWJyYXJ5SWNvbik6IERlbGV0ZWQuCisgICAgICAgIChj
YW1lcmFJY29uKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgZG9jdW1l
bnRNZW51OmRpZFBpY2tEb2N1bWVudFBpY2tlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tG
aWxlVXBsb2FkUGFuZWwgZG9jdW1lbnRNZW51V2FzQ2FuY2VsbGVkOl0pOiBEZWxldGVkLgorCiAy
MDIwLTAzLTA2ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3NpYmlsaXR5U3VwcG9ydCBBWFNJc29sYXRlZFRy
ZWVNb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5k
ZXggNzU1MjI1ZTZiYTNkZTMxMzhkMzY2ZjE0N2ZmZjViODRhMjhmYWQ5Ni4uYjEwYjNlMDdlNTRi
OWZiMjg0N2ExMWNiNzA4ZjEwYzBkZDRiMGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC0xNTQsNiArMTU0LDkgQEAKIC8qIExhYmVsIGZvciB0
aGUgYm9vayB3aXRoIEFwcGxlIFBheSBidXR0b24uICovCiAiQm9vayB3aXRoIEFwcGxlIFBheSIg
PSAiQm9vayB3aXRoIEFwcGxlIFBheSI7CiAKKy8qIEZpbGUgVXBsb2FkIGFsZXJ0IHNoZWV0IGJ1
dHRvbiBzdHJpbmcgZm9yIGNob29zaW5nIGFuIGV4aXN0aW5nIGZpbGUgZnJvbSB0aGUgZmlsZSBi
cm93ZXIgKi8KKyJCcm93c2UgKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiID0gIkJyb3dzZSI7
CisKIC8qIE9wdGlvbiBpbiBzZWdtZW50ZWQgY29udHJvbCBmb3IgaW5zZXJ0aW5nIGEgYnVsbGV0
ZWQgbGlzdCBpbiB0ZXh0IGVkaXRpbmcgKi8KICJCdWxsZXRlZCBsaXN0IiA9ICJCdWxsZXRlZCBs
aXN0IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCA0
YTY2ZTQzODFjZWQxMjZlOGY2NDBjYmYwNTA5NzAwYjIwMDg3YjVmLi5hOTZkMTliMWVjOGRiMzlj
OGJkNGFkZjhkYTBkZDA4YzkzZmIxNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaApAQCAtMTA5NywxMyArMTA5NywyNSBAQCB0eXBlZGVmIE5TX09QVElPTlMo
TlNJbnRlZ2VyLCBVSVdLRG9jdW1lbnRSZXF1ZXN0RmxhZ3MpIHsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcpIFVJSW1hZ2UgKmltYWdlOwogQGVuZAogCit0eXBlZGVmIE5TX0VOVU0oTlNV
SW50ZWdlciwgX1VJQ29udGV4dE1lbnVMYXlvdXQpIHsKKyAgICBfVUlDb250ZXh0TWVudUxheW91
dEFjdGlvbnNPbmx5ID0gMSwKKyAgICBfVUlDb250ZXh0TWVudUxheW91dENvbXBhY3RNZW51ID0g
MywKK307CisKIEBpbnRlcmZhY2UgX1VJQ29udGV4dE1lbnVTdHlsZSA6IE5TT2JqZWN0IDxOU0Nv
cHlpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYykgX1VJQ29udGV4dE1lbnVMYXlvdXQgcHJlZmVy
cmVkTGF5b3V0OworKyAoaW5zdGFuY2V0eXBlKWRlZmF1bHRTdHlsZTsKIEBlbmQKIAogI2lmIFVT
RShVSUNPTlRFWFRNRU5VKQogQGludGVyZmFjZSBVSVRhcmdldGVkUHJldmlldyAoKQogQHByb3Bl
cnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRPdmVycmlkZVBvc2l0aW9uVHJhY2tp
bmdWaWV3OikgVUlWaWV3ICpvdmVycmlkZVBvc2l0aW9uVHJhY2tpbmdWaWV3OwogQGVuZAorCitA
aW50ZXJmYWNlIFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAoKQorLSAodm9pZClfcHJlc2VudE1l
bnVBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOworQGVuZAorCiAjZW5kaWYgLy8gVVNFKFVJ
Q09OVEVYVE1FTlUpCiAKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVYVE1F
TlUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxl
VXBsb2FkUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxl
VXBsb2FkUGFuZWwubW0KaW5kZXggNWRiNDY1ZmIyMzIwOGY0MTgwNjQxMzE1NmNkZjA2NWEyNDVk
OWRiYi4uYTM5MjBlZWY1M2JhY2ZmNjc2ZTRmYTAyZmExZmU5NDVhZDM5ZGM2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5l
bC5tbQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9T
dHJpbmdWaWV3Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC02NywxOCArNjgsNiBA
QCBzdGF0aWMgYm9vbCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8oTlNBcnJheTxOU1N0
cmluZyAqPiAqdHlwZUlkZW50aWZpZXJzLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI3ByYWdt
YSBtYXJrIC0gRG9jdW1lbnQgcGlja2VyIGljb25zCi0KLXN0YXRpYyBpbmxpbmUgVUlJbWFnZSAq
cGhvdG9MaWJyYXJ5SWNvbigpCi17Ci0gICAgcmV0dXJuIF9VSUltYWdlR2V0V2ViS2l0UGhvdG9M
aWJyYXJ5SWNvbigpOwotfQotCi1zdGF0aWMgaW5saW5lIFVJSW1hZ2UgKmNhbWVyYUljb24oKQot
ewotICAgIHJldHVybiBfVUlJbWFnZUdldFdlYktpdFRha2VQaG90b09yVmlkZW9JY29uKCk7Ci19
Ci0KICNwcmFnbWEgbWFyayAtIF9XS0ZpbGVVcGxvYWRJdGVtCiAKIEBpbnRlcmZhY2UgX1dLRmls
ZVVwbG9hZEl0ZW0gOiBOU09iamVjdApAQCAtMTYxLDExICsxNTAsMTEgQEAgc3RhdGljIGlubGlu
ZSBVSUltYWdlICpjYW1lcmFJY29uKCkKIAogI3ByYWdtYSBtYXJrIC0gV0tGaWxlVXBsb2FkUGFu
ZWwKIAotQGludGVyZmFjZSBXS0ZpbGVVcGxvYWRQYW5lbCAoKSA8VUlQb3BvdmVyQ29udHJvbGxl
ckRlbGVnYXRlLCBVSU5hdmlnYXRpb25Db250cm9sbGVyRGVsZWdhdGUsIFVJSW1hZ2VQaWNrZXJD
b250cm9sbGVyRGVsZWdhdGUsIFVJRG9jdW1lbnRQaWNrZXJEZWxlZ2F0ZSwgVUlEb2N1bWVudE1l
bnVEZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV0tGaWxlVXBsb2FkUGFuZWwgKCkgPFVJUG9wb3ZlckNv
bnRyb2xsZXJEZWxlZ2F0ZSwgVUlOYXZpZ2F0aW9uQ29udHJvbGxlckRlbGVnYXRlLCBVSUltYWdl
UGlja2VyQ29udHJvbGxlckRlbGVnYXRlLCBVSURvY3VtZW50UGlja2VyRGVsZWdhdGUsIFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRlPgogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tG
aWxlVXBsb2FkUGFuZWwgewotICAgIFdLQ29udGVudFZpZXcgKl92aWV3OworICAgIFdlYWtPYmpD
UHRyPFdLQ29udGVudFZpZXc+IF92aWV3OwogICAgIFJlZlB0cjxXZWJLaXQ6OldlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHk+IF9saXN0ZW5lcjsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4g
X21pbWVUeXBlczsKICAgICBDR1BvaW50IF9pbnRlcmFjdGlvblBvaW50OwpAQCAtMTc2LDcgKzE2
NSw3IEBAIHN0YXRpYyBpbmxpbmUgVUlJbWFnZSAqY2FtZXJhSWNvbigpCiAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRhaW5QdHI8VUlQb3BvdmVyQ29udHJv
bGxlcj4gX3ByZXNlbnRhdGlvblBvcG92ZXI7IC8vIGlQYWQgZm9yIGFjdGlvbiBzaGVldCBhbmQg
UGhvdG8gTGlicmFyeS4KICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAg
ICBSZXRhaW5QdHI8VUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcj4gX2RvY3VtZW50TWVudUNv
bnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX2RvY3Vt
ZW50TWVudUludGVyYWN0aW9uOwogICAgIFJldGFpblB0cjxVSURvY3VtZW50UGlja2VyVmlld0Nv
bnRyb2xsZXI+IF9kb2N1bWVudFBpY2tlckNvbnRyb2xsZXI7CiAgICAgV2ViQ29yZTo6TWVkaWFD
YXB0dXJlVHlwZSBfbWVkaWFDYXB0dXJlVHlwZTsKIH0KQEAgLTE5Myw4ICsxODIsOCBAQCBzdGF0
aWMgaW5saW5lIFVJSW1hZ2UgKmNhbWVyYUljb24oKQogewogICAgIFtfaW1hZ2VQaWNrZXIgc2V0
RGVsZWdhdGU6bmlsXTsKICAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgc2V0RGVsZWdhdGU6bmls
XTsKLSAgICBbX2RvY3VtZW50TWVudUNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBb
X2RvY3VtZW50UGlja2VyQ29udHJvbGxlciBzZXREZWxlZ2F0ZTpuaWxdOworICAgIFtzZWxmIF9y
ZW1vdmVJbnRlcmFjdGlvbl07CiAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CkBAIC0yODYsNyAr
Mjc1LDcgQEAgc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29uKCkKICAgICAvLyBEaXNt
aXNzIGFueSB2aWV3IGNvbnRyb2xsZXIgdGhhdCBpcyBiZWluZyBwcmVzZW50ZWQuIFRoaXMgd29y
a3MgZm9yIGFsbCB0eXBlcyBvZiB2aWV3IGNvbnRyb2xsZXJzLCBwb3BvdmVycywgZXRjLgogICAg
IC8vIElmIHRoZXJlIGlzIGFueSBraW5kIG9mIHZpZXcgY29udHJvbGxlciBwcmVzZW50ZWQgb24g
dGhpcyB2aWV3LCBpdCB3aWxsIGJlIHJlbW92ZWQuCiAgICAgCi0gICAgW1tVSVZpZXdDb250cm9s
bGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpfdmll
d10gZGlzbWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6Tk8gY29tcGxldGlvbjpuaWxdOworICAg
IFtbVUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0
aW9uRnJvbVZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCldIGRpc21pc3NWaWV3Q29udHJvbGxl
ckFuaW1hdGVkOk5PIGNvbXBsZXRpb246bmlsXTsKICAgICAKICAgICBbX3ByZXNlbnRhdGlvblBv
cG92ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBfcHJlc2VudGF0aW9uUG9wb3ZlciA9IG5pbDsK
QEAgLTM4Niw2ICszNzUsMTEgQEAgc3RhdGljIE5TU2V0PE5TU3RyaW5nICo+ICpVVElzRm9yTUlN
RVR5cGVzKE5TQXJyYXkgKm1pbWVUeXBlcykKIAogI3ByYWdtYSBtYXJrIC0gU291cmNlIHNlbGVj
dGlvbiBtZW51CiAKKy0gKE5TU3RyaW5nICopX2Jyb3dzZUZpbGVzQnV0dG9uTGFiZWwKK3sKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkJyb3dzZSIsICJCcm93c2UgKGZpbGUgdXBsb2Fk
IGFjdGlvbiBzaGVldCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgYnV0dG9uIHN0cmluZyBm
b3IgY2hvb3NpbmcgYW4gZXhpc3RpbmcgZmlsZSBmcm9tIHRoZSBmaWxlIGJyb3dlciIpOworfQor
CiAtIChOU1N0cmluZyAqKV9waG90b0xpYnJhcnlCdXR0b25MYWJlbAogewogICAgIHJldHVybiBX
RUJfVUlfU1RSSU5HX0tFWSgiUGhvdG8gTGlicmFyeSIsICJQaG90byBMaWJyYXJ5IChmaWxlIHVw
bG9hZCBhY3Rpb24gc2hlZXQpIiwgIkZpbGUgVXBsb2FkIGFsZXJ0IHNoZWV0IGJ1dHRvbiBzdHJp
bmcgZm9yIGNob29zaW5nIGFuIGV4aXN0aW5nIG1lZGlhIGl0ZW0gZnJvbSB0aGUgUGhvdG8gTGli
cmFyeSIpOwpAQCAtNDAzLDQ4ICszOTcsMTEyIEBAIHN0YXRpYyBOU1NldDxOU1N0cmluZyAqPiAq
VVRJc0Zvck1JTUVUeXBlcyhOU0FycmF5ICptaW1lVHlwZXMpCiAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkdfS0VZKCJUYWtlIFBob3RvIiwgIlRha2UgUGhvdG8gKGZpbGUgdXBsb2FkIGFjdGlvbiBz
aGVldCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgY2FtZXJhIGJ1dHRvbiBzdHJpbmcgZm9y
IHRha2luZyBvbmx5IHBob3RvcyIpOwogfQogCi0tICh2b2lkKV9zaG93RG9jdW1lbnRQaWNrZXJN
ZW51CistIChVSVRhcmdldGVkUHJldmlldyAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHByZXZpZXdGb3JIaWdobGlnaHRpbmdN
ZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmln
dXJhdGlvbgogewotICAgIE5TQXJyYXkgKm1lZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVzKF9t
aW1lVHlwZXMuZ2V0KCkpLmFsbE9iamVjdHM7CisgICAgUmV0YWluUHRyPFVJUHJldmlld1BhcmFt
ZXRlcnM+IHVudXNlZFByZXZpZXdQYXJhbWV0ZXJzID0gYWRvcHROUyhbW1VJUHJldmlld1BhcmFt
ZXRlcnMgYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8VUlQcmV2aWV3VGFyZ2V0PiBwcmV2
aWV3VGFyZ2V0ID0gYWRvcHROUyhbW1VJUHJldmlld1RhcmdldCBhbGxvY10gaW5pdFdpdGhDb250
YWluZXI6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgY2VudGVyOkNHUG9pbnRNYWtlKF9pbnRlcmFj
dGlvblBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnkpXSk7CisgICAgUmV0YWluUHRyPFVJVGFy
Z2V0ZWRQcmV2aWV3PiBwcmV2aWV3ID0gYWRvcHROUyhbW1VJVGFyZ2V0ZWRQcmV2aWV3IGFsbG9j
XSBpbml0V2l0aFZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgcGFyYW1ldGVyczp1bnVzZWRQ
cmV2aWV3UGFyYW1ldGVycy5nZXQoKSB0YXJnZXQ6cHJldmlld1RhcmdldC5nZXQoKV0pOwogCi0g
ICAgQk9PTCBjb250YWluc0ltYWdlTWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJy
YXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVJbWFnZSk7Ci0g
ICAgQk9PTCBjb250YWluc1ZpZGVvTWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJy
YXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVNb3ZpZSk7Cisg
ICAgcmV0dXJuIHByZXZpZXcuYXV0b3JlbGVhc2UoKTsKK30KIAotI2lmIFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQotICAgIC8vIEZJWE1FIDQ5OTYxNTg5OiBTdXBwb3J0IHBpY2tpbmcgbWVkaWEgd2l0
aCBVSUltYWdlUGlja2VyQ29udHJvbGxlcgotICAgIEJPT0wgc2hvdWxkUHJlc2VudERvY3VtZW50
TWVudVZpZXdDb250cm9sbGVyID0gTk87Ci0jZWxzZQotICAgIEJPT0wgc2hvdWxkUHJlc2VudERv
Y3VtZW50TWVudVZpZXdDb250cm9sbGVyID0gY29udGFpbnNJbWFnZU1lZGlhVHlwZSB8fCBjb250
YWluc1ZpZGVvTWVkaWFUeXBlOwotI2VuZGlmCistIChfVUlDb250ZXh0TWVudVN0eWxlICopX2Nv
bnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0
aW9uIHN0eWxlRm9yTWVudVdpdGhDb25maWd1cmF0aW9uOihVSUNvbnRleHRNZW51Q29uZmlndXJh
dGlvbiAqKWNvbmZpZ3VyYXRpb24KK3sKKyAgICBfVUlDb250ZXh0TWVudVN0eWxlICpzdHlsZSA9
IFtfVUlDb250ZXh0TWVudVN0eWxlIGRlZmF1bHRTdHlsZV07CisgICAgc3R5bGUucHJlZmVycmVk
TGF5b3V0ID0gX1VJQ29udGV4dE1lbnVMYXlvdXRDb21wYWN0TWVudTsKKyAgICByZXR1cm4gc3R5
bGU7Cit9CiAKLSAgICBOU0FycmF5ICpkb2N1bWVudFR5cGVzID0gbWVkaWFUeXBlcy5jb3VudCA/
IG1lZGlhVHlwZXMgOiBAWyhfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVJdGVtXTsKLSAgICBp
ZiAoc2hvdWxkUHJlc2VudERvY3VtZW50TWVudVZpZXdDb250cm9sbGVyKSB7Ci0gICAgICAgIC8v
IEZJWE1FIDQ5OTc5NDQyOiBVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyIGlzIGRlcHJlY2F0
ZWQuIFVzZSBVSURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXIgaW5zdGVhZCB0byBzdXBwb3J0
IG11bHRpcGxlIGZpbGUgc2VsZWN0aW9uLgotICAgICAgICBfZG9jdW1lbnRNZW51Q29udHJvbGxl
ciA9IGFkb3B0TlMoW1tVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyIGFsbG9jXSBfaW5pdEln
bm9yaW5nQXBwbGljYXRpb25FbnRpdGxlbWVudEZvckltcG9ydE9mVHlwZXM6ZG9jdW1lbnRUeXBl
c10pOwotICAgICAgICBbX2RvY3VtZW50TWVudUNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6c2VsZl07
CistIChVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbnRleHRNZW51SW50ZXJhY3Rpb246
KFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIGNvbmZpZ3VyYXRpb25Gb3JN
ZW51QXRMb2NhdGlvbjooQ0dQb2ludClsb2NhdGlvbiB7CisKKyAgICBVSUNvbnRleHRNZW51QWN0
aW9uUHJvdmlkZXIgYWN0aW9uTWVudVByb3ZpZGVyID0gW3NlbGYsIHdlYWtTZWxmID0gV2Vha09i
akNQdHI8V0tGaWxlVXBsb2FkUGFuZWw+KHNlbGYpXSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+
ICopIC0+IFVJTWVudSAqIHsKKyAgICAgICAgTlNBcnJheSAqYWN0aW9uczsKKyAgICAgICAgTlNB
cnJheSAqbWVkaWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxs
T2JqZWN0czsKKworICAgICAgICBCT09MIGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgPSAhbWVkaWFU
eXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywg
a1VUVHlwZUltYWdlKTsKKyAgICAgICAgQk9PTCBjb250YWluc1ZpZGVvTWVkaWFUeXBlID0gIW1l
ZGlhVHlwZXMuY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlw
ZXMsIGtVVFR5cGVNb3ZpZSk7CisgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdl
dCgpOworICAgICAgICAKKyAgICAgICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0
dXJuIFtVSU1lbnUgbWVudVdpdGhUaXRsZTpAIiIgY2hpbGRyZW46QFtdXTsKKyAgICAgICAgCisg
ICAgICAgIFVJQWN0aW9uICpicm93c2VBY3Rpb24gPSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxl
OltzdHJvbmdTZWxmIF9icm93c2VGaWxlc0J1dHRvbkxhYmVsXSBpbWFnZTpbVUlJbWFnZSBzeXN0
ZW1JbWFnZU5hbWVkOkAiZWxsaXBzaXMiXSBpZGVudGlmaWVyOkAiYnJvd3NlIiBoYW5kbGVyOl4o
X19raW5kb2YgVUlBY3Rpb24gKmFjdGlvbikgeworICAgICAgICAgICAgW3NlbGYgX3Nob3dGaWxl
UGlja2VyTWVudV07CisgICAgICAgIH1dOwogCi0gICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJv
bGxlciBhZGRPcHRpb25XaXRoVGl0bGU6W3NlbGYgX3Bob3RvTGlicmFyeUJ1dHRvbkxhYmVsXSBp
bWFnZTpwaG90b0xpYnJhcnlJY29uKCkgb3JkZXI6VUlEb2N1bWVudE1lbnVPcmRlckZpcnN0IGhh
bmRsZXI6XnsKKyAgICAgICAgVUlBY3Rpb24gKnBob3RvQWN0aW9uID0gW1VJQWN0aW9uIGFjdGlv
bldpdGhUaXRsZTpbc3Ryb25nU2VsZiBfcGhvdG9MaWJyYXJ5QnV0dG9uTGFiZWxdIGltYWdlOltV
SUltYWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJyZWN0YW5nbGUub24ucmVjdGFuZ2xlIl0gaWRlbnRp
ZmllcjpAInBob3RvIiBoYW5kbGVyOl4oX19raW5kb2YgVUlBY3Rpb24gKmFjdGlvbikgewogICAg
ICAgICAgICAgW3NlbGYgX3Nob3dQaG90b1BpY2tlcldpdGhTb3VyY2VUeXBlOlVJSW1hZ2VQaWNr
ZXJDb250cm9sbGVyU291cmNlVHlwZVBob3RvTGlicmFyeV07CiAgICAgICAgIH1dOwogCiAgICAg
ICAgIGlmIChbVUlJbWFnZVBpY2tlckNvbnRyb2xsZXIgaXNTb3VyY2VUeXBlQXZhaWxhYmxlOlVJ
SW1hZ2VQaWNrZXJDb250cm9sbGVyU291cmNlVHlwZUNhbWVyYV0pIHsKLSAgICAgICAgICAgIE5T
U3RyaW5nICpjYW1lcmFTdHJpbmcgPSBbc2VsZiBfY2FtZXJhQnV0dG9uTGFiZWxBbGxvd2luZ1Bo
b3RvOmNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgYWxsb3dpbmdWaWRlbzpjb250YWluc1ZpZGVvTWVk
aWFUeXBlXTsKLSAgICAgICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBhZGRPcHRpb25X
aXRoVGl0bGU6Y2FtZXJhU3RyaW5nIGltYWdlOmNhbWVyYUljb24oKSBvcmRlcjpVSURvY3VtZW50
TWVudU9yZGVyRmlyc3QgaGFuZGxlcjpeeworICAgICAgICAgICAgTlNTdHJpbmcgKmNhbWVyYVN0
cmluZyA9IFtzdHJvbmdTZWxmIF9jYW1lcmFCdXR0b25MYWJlbEFsbG93aW5nUGhvdG86Y29udGFp
bnNJbWFnZU1lZGlhVHlwZSBhbGxvd2luZ1ZpZGVvOmNvbnRhaW5zVmlkZW9NZWRpYVR5cGVdOwor
ICAgICAgICAgICAgVUlBY3Rpb24gKmNhbWVyYUFjdGlvbiA9IFtVSUFjdGlvbiBhY3Rpb25XaXRo
VGl0bGU6Y2FtZXJhU3RyaW5nIGltYWdlOltVSUltYWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJjYW1l
cmEuZmlsbCJdIGlkZW50aWZpZXI6QCJjYW1lcmEiIGhhbmRsZXI6XihfX2tpbmRvZiBVSUFjdGlv
biAqYWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgX3VzaW5nQ2FtZXJhID0gWUVTOwogICAgICAg
ICAgICAgICAgIFtzZWxmIF9zaG93UGhvdG9QaWNrZXJXaXRoU291cmNlVHlwZTpVSUltYWdlUGlj
a2VyQ29udHJvbGxlclNvdXJjZVR5cGVDYW1lcmFdOwogICAgICAgICAgICAgfV07Ci0gICAgICAg
IH0KKyAgICAgICAgICAgIGFjdGlvbnMgPSBAW3Bob3RvQWN0aW9uLCBjYW1lcmFBY3Rpb24sIGJy
b3dzZUFjdGlvbl07CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYWN0aW9ucyA9IEBbcGhv
dG9BY3Rpb24sIGJyb3dzZUFjdGlvbl07CisKKyAgICAgICAgcmV0dXJuIFtVSU1lbnUgbWVudVdp
dGhUaXRsZTpAIiIgY2hpbGRyZW46YWN0aW9uc107CisgICAgfTsKKyAgICAKKyAgICByZXR1cm4g
W1VJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb25XaXRoSWRlbnRpZmllcjpu
aWwgcHJldmlld1Byb3ZpZGVyOm5pbCBhY3Rpb25Qcm92aWRlcjphY3Rpb25NZW51UHJvdmlkZXJd
OworfQorCistICh2b2lkKWNvbnRleHRNZW51SW50ZXJhY3Rpb246KFVJQ29udGV4dE1lbnVJbnRl
cmFjdGlvbiAqKWludGVyYWN0aW9uIHdpbGxFbmRGb3JDb25maWd1cmF0aW9uOihVSUNvbnRleHRN
ZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gYW5pbWF0b3I6KGlkPFVJQ29udGV4dE1l
bnVJbnRlcmFjdGlvbkFuaW1hdGluZz4pYW5pbWF0b3IKK3sKKyAgICBbYW5pbWF0b3IgYWRkQ29t
cGxldGlvbjpeeworICAgICAgICBbc2VsZiBfcmVtb3ZlSW50ZXJhY3Rpb25dOworICAgICAgICBb
c2VsZiBfY2FuY2VsXTsKKyAgICB9XTsKK30KKworLSAodm9pZClfcmVtb3ZlSW50ZXJhY3Rpb24K
K3sKKyAgICBpZiAoX2RvY3VtZW50TWVudUludGVyYWN0aW9uKQorICAgICAgICBbX3ZpZXcgcmVt
b3ZlSW50ZXJhY3Rpb246X2RvY3VtZW50TWVudUludGVyYWN0aW9uLmdldCgpXTsKK30KIAotICAg
ICAgICBbc2VsZiBfcHJlc2VudE1lbnVPcHRpb25Gb3JDdXJyZW50SW50ZXJmYWNlSWRpb206X2Rv
Y3VtZW50TWVudUNvbnRyb2xsZXIuZ2V0KCldOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIElt
YWdlIGFuZCBWaWRlbyB0eXBlcyBhcmUgbm90IGFjY2VwdGVkIHNvIGJ5cGFzcyB0aGUgbWVudSBh
bmQgb3BlbiB0aGUgZmlsZSBwaWNrZXIgZGlyZWN0bHkuCi0gICAgICAgIF9kb2N1bWVudFBpY2tl
ckNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFs
bG9jXSBpbml0V2l0aERvY3VtZW50VHlwZXM6ZG9jdW1lbnRUeXBlcyBpbk1vZGU6VUlEb2N1bWVu
dFBpY2tlck1vZGVJbXBvcnRdKTsKLSAgICAgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIg
c2V0QWxsb3dzTXVsdGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlwbGVGaWxlc107Ci0gICAgICAg
IFtfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOwotICAgICAgICBb
c2VsZiBfcHJlc2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjpfZG9jdW1lbnRQaWNrZXJDb250
cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFU107CistICh2b2lkKV9pbml0SW50ZXJhY3Rpb24KK3sK
KyAgICBpZiAoIV9kb2N1bWVudE1lbnVJbnRlcmFjdGlvbikgeworICAgICAgICBfZG9jdW1lbnRN
ZW51SW50ZXJhY3Rpb24gPSBhZG9wdE5TKFtbVUlDb250ZXh0TWVudUludGVyYWN0aW9uIGFsbG9j
XSBpbml0V2l0aERlbGVnYXRlOnNlbGZdKTsKKyAgICAgICAgW192aWV3IGFkZEludGVyYWN0aW9u
Ol9kb2N1bWVudE1lbnVJbnRlcmFjdGlvbi5nZXQoKV07CiAgICAgfQorfQogCi0gICAgLy8gQ2xl
YXIgb3V0IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2UganVzdCBwcmVzZW50ZWQuIERvbid0IHNhdmUg
YSByZWZlcmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgLyBVSURvY3Vt
ZW50UGlja2VyVmlld0NvbnRyb2xsZXIgYXMgaXQgaXMgc2VsZiBkaXNtaXNzaW5nLgorLSAodm9p
ZClfc2hvd0ZpbGVQaWNrZXJNZW51Cit7CisgICAgTlNBcnJheSAqbWVkaWFUeXBlcyA9IFVUSXNG
b3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0czsKKyAgICBOU0FycmF5ICpk
b2N1bWVudFR5cGVzID0gbWVkaWFUeXBlcy5jb3VudCA/IG1lZGlhVHlwZXMgOiBAWyhfX2JyaWRn
ZSBOU1N0cmluZyAqKWtVVFR5cGVJdGVtXTsKKyAgICAKKyAgICBfZG9jdW1lbnRQaWNrZXJDb250
cm9sbGVyID0gYWRvcHROUyhbW1VJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBhbGxvY10g
aW5pdFdpdGhEb2N1bWVudFR5cGVzOmRvY3VtZW50VHlwZXMgaW5Nb2RlOlVJRG9jdW1lbnRQaWNr
ZXJNb2RlSW1wb3J0XSk7CisgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0QWxsb3dz
TXVsdGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlwbGVGaWxlc107CisgICAgW19kb2N1bWVudFBp
Y2tlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6c2VsZl07CisgICAgW3NlbGYgX3ByZXNlbnRGdWxs
c2NyZWVuVmlld0NvbnRyb2xsZXI6X2RvY3VtZW50UGlja2VyQ29udHJvbGxlci5nZXQoKSBhbmlt
YXRlZDpZRVNdOworfQorCistICh2b2lkKV9zaG93RG9jdW1lbnRQaWNrZXJNZW51Cit7CisgICAg
TlNBcnJheSAqbWVkaWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSku
YWxsT2JqZWN0czsKKworICAgIEJPT0wgY29udGFpbnNJbWFnZU1lZGlhVHlwZSA9ICFtZWRpYVR5
cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBr
VVRUeXBlSW1hZ2UpOworICAgIEJPT0wgY29udGFpbnNWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5
cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBr
VVRUeXBlTW92aWUpOworCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgLy8gRklYTUUg
NDk5NjE1ODk6IFN1cHBvcnQgcGlja2luZyBtZWRpYSB3aXRoIFVJSW1hZ2VQaWNrZXJDb250cm9s
bGVyCisgICAgQk9PTCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBO
TzsKKyNlbHNlCisgICAgQk9PTCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xs
ZXIgPSBjb250YWluc0ltYWdlTWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGU7Cisj
ZW5kaWYKKyAgICBpZiAoc2hvdWxkUHJlc2VudERvY3VtZW50TWVudVZpZXdDb250cm9sbGVyKSB7
CisgICAgICAgIFtzZWxmIF9pbml0SW50ZXJhY3Rpb25dOworICAgICAgICBbX2RvY3VtZW50TWVu
dUludGVyYWN0aW9uIF9wcmVzZW50TWVudUF0TG9jYXRpb246Q0dQb2ludE1ha2UoX2ludGVyYWN0
aW9uUG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSldOworICAgIH0gZWxzZSAvLyBJbWFnZSBh
bmQgVmlkZW8gdHlwZXMgYXJlIG5vdCBhY2NlcHRlZCBzbyBieXBhc3MgdGhlIG1lbnUgYW5kIG9w
ZW4gdGhlIGZpbGUgcGlja2VyIGRpcmVjdGx5LgorICAgICAgICBbc2VsZiBfc2hvd0ZpbGVQaWNr
ZXJNZW51XTsKKyAgICAKKyAgICAvLyBDbGVhciBvdXQgdGhlIHZpZXcgY29udHJvbGxlciB3ZSBq
dXN0IHByZXNlbnRlZC4gRG9uJ3Qgc2F2ZSBhIHJlZmVyZW5jZSB0byB0aGUgVUlEb2N1bWVudFBp
Y2tlclZpZXdDb250cm9sbGVyIGFzIGl0IGlzIHNlbGYgZGlzbWlzc2luZy4KICAgICBfcHJlc2Vu
dGF0aW9uVmlld0NvbnRyb2xsZXIgPSBuaWw7CiB9CiAKQEAgLTUyMCwxNCArNTc4LDE0IEBAIHN0
YXRpYyBOU1NldDxOU1N0cmluZyAqPiAqVVRJc0Zvck1JTUVUeXBlcyhOU0FycmF5ICptaW1lVHlw
ZXMpCiAgICAgX3ByZXNlbnRhdGlvblBvcG92ZXIgPSBhZG9wdE5TKFtbVUlQb3BvdmVyQ29udHJv
bGxlciBhbGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6Y29udGVudFZpZXdDb250
cm9sbGVyXSk7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW19w
cmVzZW50YXRpb25Qb3BvdmVyIHNldERlbGVnYXRlOnNlbGZdOwotICAgIFtfcHJlc2VudGF0aW9u
UG9wb3ZlciBwcmVzZW50UG9wb3ZlckZyb21SZWN0OkNHUmVjdEludGVncmFsKENHUmVjdE1ha2Uo
X2ludGVyYWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSwgMSwgMSkpIGluVmlldzpf
dmlldyBwZXJtaXR0ZWRBcnJvd0RpcmVjdGlvbnM6VUlQb3BvdmVyQXJyb3dEaXJlY3Rpb25Bbnkg
YW5pbWF0ZWQ6YW5pbWF0ZWRdOworICAgIFtfcHJlc2VudGF0aW9uUG9wb3ZlciBwcmVzZW50UG9w
b3ZlckZyb21SZWN0OkNHUmVjdEludGVncmFsKENHUmVjdE1ha2UoX2ludGVyYWN0aW9uUG9pbnQu
eCwgX2ludGVyYWN0aW9uUG9pbnQueSwgMSwgMSkpIGluVmlldzpfdmlldy5nZXRBdXRvcmVsZWFz
ZWQoKSBwZXJtaXR0ZWRBcnJvd0RpcmVjdGlvbnM6VUlQb3BvdmVyQXJyb3dEaXJlY3Rpb25Bbnkg
YW5pbWF0ZWQ6YW5pbWF0ZWRdOwogfQogCiAtICh2b2lkKV9wcmVzZW50RnVsbHNjcmVlblZpZXdD
b250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopdmlld0NvbnRyb2xsZXIgYW5pbWF0ZWQ6KEJP
T0wpYW5pbWF0ZWQKIHsKICAgICBbc2VsZiBfZGlzbWlzc0Rpc3BsYXlBbmltYXRlZDphbmltYXRl
ZF07CiAKLSAgICBfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJvbGxl
ciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6X3ZpZXdd
OworICAgIF9wcmVzZW50YXRpb25WaWV3Q29udHJvbGxlciA9IFtVSVZpZXdDb250cm9sbGVyIF92
aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpfdmlldy5nZXRB
dXRvcmVsZWFzZWQoKV07CiAgICAgW19wcmVzZW50YXRpb25WaWV3Q29udHJvbGxlciBwcmVzZW50
Vmlld0NvbnRyb2xsZXI6dmlld0NvbnRyb2xsZXIgYW5pbWF0ZWQ6YW5pbWF0ZWQgY29tcGxldGlv
bjpuaWxdOwogfQogCkBAIC01NDAsMjAgKzU5OCw2IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVN
RU5UQVRJT05TX0VORAogICAgIFtzZWxmIF9jYW5jZWxdOwogfQogCi0jcHJhZ21hIG1hcmsgLSBV
SURvY3VtZW50TWVudURlbGVnYXRlIGltcGxlbWVudGF0aW9uCi0KLS0gKHZvaWQpZG9jdW1lbnRN
ZW51OihVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyICopZG9jdW1lbnRNZW51IGRpZFBpY2tE
b2N1bWVudFBpY2tlcjooVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyICopZG9jdW1lbnRQ
aWNrZXIKLXsKLSAgICBkb2N1bWVudFBpY2tlci5kZWxlZ2F0ZSA9IHNlbGY7Ci0gICAgW3NlbGYg
X3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6ZG9jdW1lbnRQaWNrZXIgYW5pbWF0ZWQ6
WUVTXTsKLX0KLQotLSAodm9pZClkb2N1bWVudE1lbnVXYXNDYW5jZWxsZWQ6KFVJRG9jdW1lbnRN
ZW51Vmlld0NvbnRyb2xsZXIgKilkb2N1bWVudE1lbnUKLXsKLSAgICBbc2VsZiBfZGlzbWlzc0Rp
c3BsYXlBbmltYXRlZDpZRVNdOwotICAgIFtzZWxmIF9jYW5jZWxdOwotfQotCiAjcHJhZ21hIG1h
cmsgLSBVSURvY3VtZW50UGlja2VyQ29udHJvbGxlckRlbGVnYXRlIGltcGxlbWVudGF0aW9uCiAK
IHN0YXRpYyBOU1N0cmluZyAqZGlzcGxheVN0cmluZ0ZvckRvY3VtZW50c0F0VVJMcyhOU0FycmF5
PE5TVVJMICo+ICp1cmxzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392896</attachid>
            <date>2020-03-07 14:00:07 -0800</date>
            <delta_ts>2020-03-07 18:37:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208687-20200307140006.patch</filename>
            <type>text/plain</type>
            <size>18531</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYyNWZkMGMxYWFiYTdi
ODcxMjRhZTIzODM3ODVhMDMzNWJlMzI4YS4uMzFmM2Y3NTk1NTM1YTY4NWQzYjg3NjA1OGEwMzdi
ZDQ4NDQ3ZjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA3ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVUlD
b250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBzdHJpbmcsIG5vIHRlc3RzIG5lZWRlZC4KKwor
ICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIwMjAtMDMtMDYgIEFu
ZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVu
dGF0aW9uIG9mIEFjY2Vzc2liaWxpdHlTdXBwb3J0IEFYU0lzb2xhdGVkVHJlZU1vZGUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDU4ZWExOTMzMjMwZjg1ZWJhNmEwYzU4YTEzOGQzNTE2OGUzZTU2MzEuLjIyNWRlOWVm
ZmFmYjVjZGU1NTIxZDc5MzJiOTc2N2MwMDE4NmQwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMjAtMDMtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBBZG9wdCBVSUNvbnRleHRNZW51IGZvciBXS0ZpbGVVcGxvYWRQYW5lbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4Njg3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBmcm9tIHRo
ZSBkZXByaWNhdGVkIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgdG8gVUlDb250ZXh0TWVu
dS4KKyAgICAgICAgVUkgY2hhbmdlLCBub3QgY3VycmVudGx5IHRlc3RhYmxlLgorCisgICAgICAg
ICogUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVs
IGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgcHJlc2VudFdpdGhQYXJh
bWV0ZXJzOnJlc3VsdExpc3RlbmVyOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBk
aXNtaXNzXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9icm93c2VGaWxlc0J1dHRv
bkxhYmVsXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGNvbnRleHRNZW51SW50ZXJh
Y3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAg
ICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX2NvbnRleHRNZW51SW50ZXJhY3Rpb246c3R5bGVG
b3JNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVs
IGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0aW9uOl0p
OgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjb250ZXh0TWVudUludGVyYWN0aW9uOndp
bGxFbmRGb3JDb25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxv
YWRQYW5lbCBfcmVtb3ZlSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFu
ZWwgX2luaXRJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfc2hv
d0ZpbGVQaWNrZXJNZW51XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9zaG93RG9j
dW1lbnRQaWNrZXJNZW51XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9wcmVzZW50
UG9wb3ZlcldpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6YW5pbWF0ZWQ6XSk6CisgICAgICAgICgt
W1dLRmlsZVVwbG9hZFBhbmVsIF9wcmVzZW50RnVsbHNjcmVlblZpZXdDb250cm9sbGVyOmFuaW1h
dGVkOl0pOgorICAgICAgICAocGhvdG9MaWJyYXJ5SWNvbik6IERlbGV0ZWQuCisgICAgICAgIChj
YW1lcmFJY29uKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgZG9jdW1l
bnRNZW51OmRpZFBpY2tEb2N1bWVudFBpY2tlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tG
aWxlVXBsb2FkUGFuZWwgZG9jdW1lbnRNZW51V2FzQ2FuY2VsbGVkOl0pOiBEZWxldGVkLgorCiAy
MDIwLTAzLTA2ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3NpYmlsaXR5U3VwcG9ydCBBWFNJc29sYXRlZFRy
ZWVNb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5k
ZXggNzU1MjI1ZTZiYTNkZTMxMzhkMzY2ZjE0N2ZmZjViODRhMjhmYWQ5Ni4uYjEwYjNlMDdlNTRi
OWZiMjg0N2ExMWNiNzA4ZjEwYzBkZDRiMGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC0xNTQsNiArMTU0LDkgQEAKIC8qIExhYmVsIGZvciB0
aGUgYm9vayB3aXRoIEFwcGxlIFBheSBidXR0b24uICovCiAiQm9vayB3aXRoIEFwcGxlIFBheSIg
PSAiQm9vayB3aXRoIEFwcGxlIFBheSI7CiAKKy8qIEZpbGUgVXBsb2FkIGFsZXJ0IHNoZWV0IGJ1
dHRvbiBzdHJpbmcgZm9yIGNob29zaW5nIGFuIGV4aXN0aW5nIGZpbGUgZnJvbSB0aGUgZmlsZSBi
cm93ZXIgKi8KKyJCcm93c2UgKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiID0gIkJyb3dzZSI7
CisKIC8qIE9wdGlvbiBpbiBzZWdtZW50ZWQgY29udHJvbCBmb3IgaW5zZXJ0aW5nIGEgYnVsbGV0
ZWQgbGlzdCBpbiB0ZXh0IGVkaXRpbmcgKi8KICJCdWxsZXRlZCBsaXN0IiA9ICJCdWxsZXRlZCBs
aXN0IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCA0
YTY2ZTQzODFjZWQxMjZlOGY2NDBjYmYwNTA5NzAwYjIwMDg3YjVmLi5hOTZkMTliMWVjOGRiMzlj
OGJkNGFkZjhkYTBkZDA4YzkzZmIxNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaApAQCAtMTA5NywxMyArMTA5NywyNSBAQCB0eXBlZGVmIE5TX09QVElPTlMo
TlNJbnRlZ2VyLCBVSVdLRG9jdW1lbnRSZXF1ZXN0RmxhZ3MpIHsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcpIFVJSW1hZ2UgKmltYWdlOwogQGVuZAogCit0eXBlZGVmIE5TX0VOVU0oTlNV
SW50ZWdlciwgX1VJQ29udGV4dE1lbnVMYXlvdXQpIHsKKyAgICBfVUlDb250ZXh0TWVudUxheW91
dEFjdGlvbnNPbmx5ID0gMSwKKyAgICBfVUlDb250ZXh0TWVudUxheW91dENvbXBhY3RNZW51ID0g
MywKK307CisKIEBpbnRlcmZhY2UgX1VJQ29udGV4dE1lbnVTdHlsZSA6IE5TT2JqZWN0IDxOU0Nv
cHlpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYykgX1VJQ29udGV4dE1lbnVMYXlvdXQgcHJlZmVy
cmVkTGF5b3V0OworKyAoaW5zdGFuY2V0eXBlKWRlZmF1bHRTdHlsZTsKIEBlbmQKIAogI2lmIFVT
RShVSUNPTlRFWFRNRU5VKQogQGludGVyZmFjZSBVSVRhcmdldGVkUHJldmlldyAoKQogQHByb3Bl
cnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRPdmVycmlkZVBvc2l0aW9uVHJhY2tp
bmdWaWV3OikgVUlWaWV3ICpvdmVycmlkZVBvc2l0aW9uVHJhY2tpbmdWaWV3OwogQGVuZAorCitA
aW50ZXJmYWNlIFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAoKQorLSAodm9pZClfcHJlc2VudE1l
bnVBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOworQGVuZAorCiAjZW5kaWYgLy8gVVNFKFVJ
Q09OVEVYVE1FTlUpCiAKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVYVE1F
TlUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxl
VXBsb2FkUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxl
VXBsb2FkUGFuZWwubW0KaW5kZXggNWRiNDY1ZmIyMzIwOGY0MTgwNjQxMzE1NmNkZjA2NWEyNDVk
OWRiYi4uNjMzMjM0YzJmMzgwYzc4NmEzYmUxNTAyMmIxZmZhODA0MWVjZGIzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5l
bC5tbQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9T
dHJpbmdWaWV3Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC02NywxOCArNjgsNiBA
QCBzdGF0aWMgYm9vbCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8oTlNBcnJheTxOU1N0
cmluZyAqPiAqdHlwZUlkZW50aWZpZXJzLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI3ByYWdt
YSBtYXJrIC0gRG9jdW1lbnQgcGlja2VyIGljb25zCi0KLXN0YXRpYyBpbmxpbmUgVUlJbWFnZSAq
cGhvdG9MaWJyYXJ5SWNvbigpCi17Ci0gICAgcmV0dXJuIF9VSUltYWdlR2V0V2ViS2l0UGhvdG9M
aWJyYXJ5SWNvbigpOwotfQotCi1zdGF0aWMgaW5saW5lIFVJSW1hZ2UgKmNhbWVyYUljb24oKQot
ewotICAgIHJldHVybiBfVUlJbWFnZUdldFdlYktpdFRha2VQaG90b09yVmlkZW9JY29uKCk7Ci19
Ci0KICNwcmFnbWEgbWFyayAtIF9XS0ZpbGVVcGxvYWRJdGVtCiAKIEBpbnRlcmZhY2UgX1dLRmls
ZVVwbG9hZEl0ZW0gOiBOU09iamVjdApAQCAtMTYxLDExICsxNTAsMTEgQEAgc3RhdGljIGlubGlu
ZSBVSUltYWdlICpjYW1lcmFJY29uKCkKIAogI3ByYWdtYSBtYXJrIC0gV0tGaWxlVXBsb2FkUGFu
ZWwKIAotQGludGVyZmFjZSBXS0ZpbGVVcGxvYWRQYW5lbCAoKSA8VUlQb3BvdmVyQ29udHJvbGxl
ckRlbGVnYXRlLCBVSU5hdmlnYXRpb25Db250cm9sbGVyRGVsZWdhdGUsIFVJSW1hZ2VQaWNrZXJD
b250cm9sbGVyRGVsZWdhdGUsIFVJRG9jdW1lbnRQaWNrZXJEZWxlZ2F0ZSwgVUlEb2N1bWVudE1l
bnVEZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV0tGaWxlVXBsb2FkUGFuZWwgKCkgPFVJUG9wb3ZlckNv
bnRyb2xsZXJEZWxlZ2F0ZSwgVUlOYXZpZ2F0aW9uQ29udHJvbGxlckRlbGVnYXRlLCBVSUltYWdl
UGlja2VyQ29udHJvbGxlckRlbGVnYXRlLCBVSURvY3VtZW50UGlja2VyRGVsZWdhdGUsIFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRlPgogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tG
aWxlVXBsb2FkUGFuZWwgewotICAgIFdLQ29udGVudFZpZXcgKl92aWV3OworICAgIFdlYWtPYmpD
UHRyPFdLQ29udGVudFZpZXc+IF92aWV3OwogICAgIFJlZlB0cjxXZWJLaXQ6OldlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHk+IF9saXN0ZW5lcjsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4g
X21pbWVUeXBlczsKICAgICBDR1BvaW50IF9pbnRlcmFjdGlvblBvaW50OwpAQCAtMTc2LDcgKzE2
NSw3IEBAIHN0YXRpYyBpbmxpbmUgVUlJbWFnZSAqY2FtZXJhSWNvbigpCiAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRhaW5QdHI8VUlQb3BvdmVyQ29udHJv
bGxlcj4gX3ByZXNlbnRhdGlvblBvcG92ZXI7IC8vIGlQYWQgZm9yIGFjdGlvbiBzaGVldCBhbmQg
UGhvdG8gTGlicmFyeS4KICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAg
ICBSZXRhaW5QdHI8VUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcj4gX2RvY3VtZW50TWVudUNv
bnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX2RvY3Vt
ZW50Q29udGV4dE1lbnVJbnRlcmFjdGlvbjsKICAgICBSZXRhaW5QdHI8VUlEb2N1bWVudFBpY2tl
clZpZXdDb250cm9sbGVyPiBfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyOwogICAgIFdlYkNvcmU6
Ok1lZGlhQ2FwdHVyZVR5cGUgX21lZGlhQ2FwdHVyZVR5cGU7CiB9CkBAIC0xOTMsOCArMTgyLDgg
QEAgc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29uKCkKIHsKICAgICBbX2ltYWdlUGlj
a2VyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHNldERlbGVn
YXRlOm5pbF07Ci0gICAgW19kb2N1bWVudE1lbnVDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07
CiAgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBb
c2VsZiByZW1vdmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKIAogICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KQEAgLTI4Niw3ICsyNzUsNyBAQCBzdGF0aWMgaW5saW5lIFVJSW1hZ2UgKmNhbWVyYUlj
b24oKQogICAgIC8vIERpc21pc3MgYW55IHZpZXcgY29udHJvbGxlciB0aGF0IGlzIGJlaW5nIHBy
ZXNlbnRlZC4gVGhpcyB3b3JrcyBmb3IgYWxsIHR5cGVzIG9mIHZpZXcgY29udHJvbGxlcnMsIHBv
cG92ZXJzLCBldGMuCiAgICAgLy8gSWYgdGhlcmUgaXMgYW55IGtpbmQgb2YgdmlldyBjb250cm9s
bGVyIHByZXNlbnRlZCBvbiB0aGlzIHZpZXcsIGl0IHdpbGwgYmUgcmVtb3ZlZC4KICAgICAKLSAg
ICBbW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRh
dGlvbkZyb21WaWV3Ol92aWV3XSBkaXNtaXNzVmlld0NvbnRyb2xsZXJBbmltYXRlZDpOTyBjb21w
bGV0aW9uOm5pbF07CisgICAgW1tVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxlckZvckZ1
bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKV0gZGlz
bWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6Tk8gY29tcGxldGlvbjpuaWxdOwogICAgIAogICAg
IFtfcHJlc2VudGF0aW9uUG9wb3ZlciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIF9wcmVzZW50YXRp
b25Qb3BvdmVyID0gbmlsOwpAQCAtMzg2LDYgKzM3NSwxMSBAQCBzdGF0aWMgTlNTZXQ8TlNTdHJp
bmcgKj4gKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAqbWltZVR5cGVzKQogCiAjcHJhZ21hIG1h
cmsgLSBTb3VyY2Ugc2VsZWN0aW9uIG1lbnUKIAorLSAoTlNTdHJpbmcgKilfYnJvd3NlRmlsZXNC
dXR0b25MYWJlbAoreworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiQnJvd3NlIiwgIkJy
b3dzZSAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJGaWxlIFVwbG9hZCBhbGVydCBzaGVl
dCBidXR0b24gc3RyaW5nIGZvciBjaG9vc2luZyBhbiBleGlzdGluZyBmaWxlIGZyb20gdGhlIGZp
bGUgYnJvd2VyIik7Cit9CisKIC0gKE5TU3RyaW5nICopX3Bob3RvTGlicmFyeUJ1dHRvbkxhYmVs
CiB7CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJQaG90byBMaWJyYXJ5IiwgIlBob3Rv
IExpYnJhcnkgKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQg
c2hlZXQgYnV0dG9uIHN0cmluZyBmb3IgY2hvb3NpbmcgYW4gZXhpc3RpbmcgbWVkaWEgaXRlbSBm
cm9tIHRoZSBQaG90byBMaWJyYXJ5Iik7CkBAIC00MDMsNDggKzM5NywxMTQgQEAgc3RhdGljIE5T
U2V0PE5TU3RyaW5nICo+ICpVVElzRm9yTUlNRVR5cGVzKE5TQXJyYXkgKm1pbWVUeXBlcykKICAg
ICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlRha2UgUGhvdG8iLCAiVGFrZSBQaG90byAoZmls
ZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBjYW1lcmEg
YnV0dG9uIHN0cmluZyBmb3IgdGFraW5nIG9ubHkgcGhvdG9zIik7CiB9CiAKLS0gKHZvaWQpX3No
b3dEb2N1bWVudFBpY2tlck1lbnUKKy0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY29udGV4dE1lbnVJ
bnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gcHJldmll
d0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZp
Z3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7Ci0gICAgTlNBcnJheSAqbWVkaWFUeXBlcyA9IFVU
SXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0czsKKyAgICBSZXRhaW5Q
dHI8VUlQcmV2aWV3UGFyYW1ldGVycz4gdW51c2VkUHJldmlld1BhcmFtZXRlcnMgPSBhZG9wdE5T
KFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0pOworICAgIFJldGFpblB0cjxVSVBy
ZXZpZXdUYXJnZXQ+IHByZXZpZXdUYXJnZXQgPSBhZG9wdE5TKFtbVUlQcmV2aWV3VGFyZ2V0IGFs
bG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBjZW50ZXI6Q0dQ
b2ludE1ha2UoX2ludGVyYWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSldKTsKKyAg
ICBSZXRhaW5QdHI8VUlUYXJnZXRlZFByZXZpZXc+IHByZXZpZXcgPSBhZG9wdE5TKFtbVUlUYXJn
ZXRlZFByZXZpZXcgYWxsb2NdIGluaXRXaXRoVmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBw
YXJhbWV0ZXJzOnVudXNlZFByZXZpZXdQYXJhbWV0ZXJzLmdldCgpIHRhcmdldDpwcmV2aWV3VGFy
Z2V0LmdldCgpXSk7CiAKLSAgICBCT09MIGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgPSAhbWVkaWFU
eXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywg
a1VUVHlwZUltYWdlKTsKLSAgICBCT09MIGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUgPSAhbWVkaWFU
eXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywg
a1VUVHlwZU1vdmllKTsKKyAgICByZXR1cm4gcHJldmlldy5hdXRvcmVsZWFzZSgpOworfQogCi0j
aWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgLy8gRklYTUUgNDk5NjE1ODk6IFN1cHBvcnQg
cGlja2luZyBtZWRpYSB3aXRoIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyCi0gICAgQk9PTCBzaG91
bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBOTzsKLSNlbHNlCi0gICAgQk9P
TCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBjb250YWluc0ltYWdl
TWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGU7Ci0jZW5kaWYKKy0gKF9VSUNvbnRl
eHRNZW51U3R5bGUgKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVy
YWN0aW9uICopaW50ZXJhY3Rpb24gc3R5bGVGb3JNZW51V2l0aENvbmZpZ3VyYXRpb246KFVJQ29u
dGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgoreworICAgIF9VSUNvbnRleHRN
ZW51U3R5bGUgKnN0eWxlID0gW19VSUNvbnRleHRNZW51U3R5bGUgZGVmYXVsdFN0eWxlXTsKKyAg
ICBzdHlsZS5wcmVmZXJyZWRMYXlvdXQgPSBfVUlDb250ZXh0TWVudUxheW91dENvbXBhY3RNZW51
OworICAgIHJldHVybiBzdHlsZTsKK30KIAotICAgIE5TQXJyYXkgKmRvY3VtZW50VHlwZXMgPSBt
ZWRpYVR5cGVzLmNvdW50ID8gbWVkaWFUeXBlcyA6IEBbKF9fYnJpZGdlIE5TU3RyaW5nICopa1VU
VHlwZUl0ZW1dOwotICAgIGlmIChzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xs
ZXIpIHsKLSAgICAgICAgLy8gRklYTUUgNDk5Nzk0NDI6IFVJRG9jdW1lbnRNZW51Vmlld0NvbnRy
b2xsZXIgaXMgZGVwcmVjYXRlZC4gVXNlIFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBp
bnN0ZWFkIHRvIHN1cHBvcnQgbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb24uCi0gICAgICAgIF9kb2N1
bWVudE1lbnVDb250cm9sbGVyID0gYWRvcHROUyhbW1VJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xs
ZXIgYWxsb2NdIF9pbml0SWdub3JpbmdBcHBsaWNhdGlvbkVudGl0bGVtZW50Rm9ySW1wb3J0T2ZU
eXBlczpkb2N1bWVudFR5cGVzXSk7Ci0gICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBz
ZXREZWxlZ2F0ZTpzZWxmXTsKKy0gKFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29udGV4
dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24g
Y29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uIHsKKworICAg
IFVJQ29udGV4dE1lbnVBY3Rpb25Qcm92aWRlciBhY3Rpb25NZW51UHJvdmlkZXIgPSBbc2VsZiwg
d2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0ZpbGVVcGxvYWRQYW5lbD4oc2VsZildIChOU0FycmF5
PFVJTWVudUVsZW1lbnQgKj4gKikgLT4gVUlNZW51ICogeworICAgICAgICBOU0FycmF5ICphY3Rp
b25zOworICAgICAgICBOU0FycmF5ICptZWRpYVR5cGVzID0gVVRJc0Zvck1JTUVUeXBlcyhfbWlt
ZVR5cGVzLmdldCgpKS5hbGxPYmplY3RzOwogCi0gICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJv
bGxlciBhZGRPcHRpb25XaXRoVGl0bGU6W3NlbGYgX3Bob3RvTGlicmFyeUJ1dHRvbkxhYmVsXSBp
bWFnZTpwaG90b0xpYnJhcnlJY29uKCkgb3JkZXI6VUlEb2N1bWVudE1lbnVPcmRlckZpcnN0IGhh
bmRsZXI6XnsKKyAgICAgICAgQk9PTCBjb250YWluc0ltYWdlTWVkaWFUeXBlID0gIW1lZGlhVHlw
ZXMuY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtV
VFR5cGVJbWFnZSk7CisgICAgICAgIEJPT0wgY29udGFpbnNWaWRlb01lZGlhVHlwZSA9ICFtZWRp
YVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVz
LCBrVVRUeXBlTW92aWUpOworICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQo
KTsKKyAgICAgICAgCisgICAgICAgIGlmICghc3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVy
biBbVUlNZW51IG1lbnVXaXRoVGl0bGU6QCIiIGNoaWxkcmVuOkBbXV07CisgICAgICAgIAorICAg
ICAgICBVSUFjdGlvbiAqYnJvd3NlQWN0aW9uID0gW1VJQWN0aW9uIGFjdGlvbldpdGhUaXRsZTpb
c3Ryb25nU2VsZiBfYnJvd3NlRmlsZXNCdXR0b25MYWJlbF0gaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVt
SW1hZ2VOYW1lZDpAImVsbGlwc2lzIl0gaWRlbnRpZmllcjpAImJyb3dzZSIgaGFuZGxlcjpeKF9f
a2luZG9mIFVJQWN0aW9uICphY3Rpb24pIHsKKyAgICAgICAgICAgIFtzZWxmIF9zaG93RmlsZVBp
Y2tlck1lbnVdOworICAgICAgICB9XTsKKworICAgICAgICBVSUFjdGlvbiAqcGhvdG9BY3Rpb24g
PSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOltzdHJvbmdTZWxmIF9waG90b0xpYnJhcnlCdXR0
b25MYWJlbF0gaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVtSW1hZ2VOYW1lZDpAInJlY3RhbmdsZS5vbi5y
ZWN0YW5nbGUiXSBpZGVudGlmaWVyOkAicGhvdG8iIGhhbmRsZXI6XihfX2tpbmRvZiBVSUFjdGlv
biAqYWN0aW9uKSB7CiAgICAgICAgICAgICBbc2VsZiBfc2hvd1Bob3RvUGlja2VyV2l0aFNvdXJj
ZVR5cGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlUGhvdG9MaWJyYXJ5XTsKICAg
ICAgICAgfV07CiAKICAgICAgICAgaWYgKFtVSUltYWdlUGlja2VyQ29udHJvbGxlciBpc1NvdXJj
ZVR5cGVBdmFpbGFibGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXSkg
ewotICAgICAgICAgICAgTlNTdHJpbmcgKmNhbWVyYVN0cmluZyA9IFtzZWxmIF9jYW1lcmFCdXR0
b25MYWJlbEFsbG93aW5nUGhvdG86Y29udGFpbnNJbWFnZU1lZGlhVHlwZSBhbGxvd2luZ1ZpZGVv
OmNvbnRhaW5zVmlkZW9NZWRpYVR5cGVdOwotICAgICAgICAgICAgW19kb2N1bWVudE1lbnVDb250
cm9sbGVyIGFkZE9wdGlvbldpdGhUaXRsZTpjYW1lcmFTdHJpbmcgaW1hZ2U6Y2FtZXJhSWNvbigp
IG9yZGVyOlVJRG9jdW1lbnRNZW51T3JkZXJGaXJzdCBoYW5kbGVyOl57CisgICAgICAgICAgICBO
U1N0cmluZyAqY2FtZXJhU3RyaW5nID0gW3N0cm9uZ1NlbGYgX2NhbWVyYUJ1dHRvbkxhYmVsQWxs
b3dpbmdQaG90bzpjb250YWluc0ltYWdlTWVkaWFUeXBlIGFsbG93aW5nVmlkZW86Y29udGFpbnNW
aWRlb01lZGlhVHlwZV07CisgICAgICAgICAgICBVSUFjdGlvbiAqY2FtZXJhQWN0aW9uID0gW1VJ
QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpjYW1lcmFTdHJpbmcgaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVt
SW1hZ2VOYW1lZDpAImNhbWVyYS5maWxsIl0gaWRlbnRpZmllcjpAImNhbWVyYSIgaGFuZGxlcjpe
KF9fa2luZG9mIFVJQWN0aW9uICphY3Rpb24pIHsKICAgICAgICAgICAgICAgICBfdXNpbmdDYW1l
cmEgPSBZRVM7CiAgICAgICAgICAgICAgICAgW3NlbGYgX3Nob3dQaG90b1BpY2tlcldpdGhTb3Vy
Y2VUeXBlOlVJSW1hZ2VQaWNrZXJDb250cm9sbGVyU291cmNlVHlwZUNhbWVyYV07CiAgICAgICAg
ICAgICB9XTsKLSAgICAgICAgfQorICAgICAgICAgICAgYWN0aW9ucyA9IEBbcGhvdG9BY3Rpb24s
IGNhbWVyYUFjdGlvbiwgYnJvd3NlQWN0aW9uXTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBhY3Rpb25zID0gQFtwaG90b0FjdGlvbiwgYnJvd3NlQWN0aW9uXTsKIAotICAgICAgICBbc2Vs
ZiBfcHJlc2VudE1lbnVPcHRpb25Gb3JDdXJyZW50SW50ZXJmYWNlSWRpb206X2RvY3VtZW50TWVu
dUNvbnRyb2xsZXIuZ2V0KCldOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEltYWdlIGFuZCBW
aWRlbyB0eXBlcyBhcmUgbm90IGFjY2VwdGVkIHNvIGJ5cGFzcyB0aGUgbWVudSBhbmQgb3BlbiB0
aGUgZmlsZSBwaWNrZXIgZGlyZWN0bHkuCi0gICAgICAgIF9kb2N1bWVudFBpY2tlckNvbnRyb2xs
ZXIgPSBhZG9wdE5TKFtbVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0
V2l0aERvY3VtZW50VHlwZXM6ZG9jdW1lbnRUeXBlcyBpbk1vZGU6VUlEb2N1bWVudFBpY2tlck1v
ZGVJbXBvcnRdKTsKLSAgICAgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0QWxsb3dz
TXVsdGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlwbGVGaWxlc107Ci0gICAgICAgIFtfZG9jdW1l
bnRQaWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOwotICAgICAgICBbc2VsZiBfcHJl
c2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjpfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyLmdl
dCgpIGFuaW1hdGVkOllFU107CisgICAgICAgIHJldHVybiBbVUlNZW51IG1lbnVXaXRoVGl0bGU6
QCIiIGNoaWxkcmVuOmFjdGlvbnNdOworICAgIH07CisgICAgCisgICAgcmV0dXJuIFtVSUNvbnRl
eHRNZW51Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uV2l0aElkZW50aWZpZXI6bmlsIHByZXZp
ZXdQcm92aWRlcjpuaWwgYWN0aW9uUHJvdmlkZXI6YWN0aW9uTWVudVByb3ZpZGVyXTsKK30KKwor
LSAodm9pZCljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24g
KilpbnRlcmFjdGlvbiB3aWxsRW5kRm9yQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZp
Z3VyYXRpb24gKiljb25maWd1cmF0aW9uIGFuaW1hdG9yOihpZDxVSUNvbnRleHRNZW51SW50ZXJh
Y3Rpb25BbmltYXRpbmc+KWFuaW1hdG9yCit7CisgICAgW2FuaW1hdG9yIGFkZENvbXBsZXRpb246
XnsKKyAgICAgICAgW3NlbGYgcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CisgICAgICAg
IFtzZWxmIF9jYW5jZWxdOworICAgIH1dOworfQorCistICh2b2lkKXJlbW92ZUNvbnRleHRNZW51
SW50ZXJhY3Rpb24KK3sKKyAgICBpZiAoX2RvY3VtZW50Q29udGV4dE1lbnVJbnRlcmFjdGlvbikg
eworICAgICAgICBbX3ZpZXcgcmVtb3ZlSW50ZXJhY3Rpb246X2RvY3VtZW50Q29udGV4dE1lbnVJ
bnRlcmFjdGlvbi5nZXQoKV07CisgICAgICAgIF9kb2N1bWVudENvbnRleHRNZW51SW50ZXJhY3Rp
b24gPSBuaWw7CisgICAgfQorfQorCistICh2b2lkKWVuc3VyZUNvbnRleHRNZW51SW50ZXJhY3Rp
b24KK3sKKyAgICBpZiAoIV9kb2N1bWVudENvbnRleHRNZW51SW50ZXJhY3Rpb24pIHsKKyAgICAg
ICAgX2RvY3VtZW50Q29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW1tVSUNvbnRleHRN
ZW51SW50ZXJhY3Rpb24gYWxsb2NdIGluaXRXaXRoRGVsZWdhdGU6c2VsZl0pOworICAgICAgICBb
X3ZpZXcgYWRkSW50ZXJhY3Rpb246X2RvY3VtZW50Q29udGV4dE1lbnVJbnRlcmFjdGlvbi5nZXQo
KV07CiAgICAgfQorfQogCi0gICAgLy8gQ2xlYXIgb3V0IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2Ug
anVzdCBwcmVzZW50ZWQuIERvbid0IHNhdmUgYSByZWZlcmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRN
ZW51Vmlld0NvbnRyb2xsZXIgLyBVSURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXIgYXMgaXQg
aXMgc2VsZiBkaXNtaXNzaW5nLgorLSAodm9pZClfc2hvd0ZpbGVQaWNrZXJNZW51Cit7CisgICAg
TlNBcnJheSAqbWVkaWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSku
YWxsT2JqZWN0czsKKyAgICBOU0FycmF5ICpkb2N1bWVudFR5cGVzID0gbWVkaWFUeXBlcy5jb3Vu
dCA/IG1lZGlhVHlwZXMgOiBAWyhfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVJdGVtXTsKKyAg
ICAKKyAgICBfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyID0gYWRvcHROUyhbW1VJRG9jdW1lbnRQ
aWNrZXJWaWV3Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhEb2N1bWVudFR5cGVzOmRvY3VtZW50
VHlwZXMgaW5Nb2RlOlVJRG9jdW1lbnRQaWNrZXJNb2RlSW1wb3J0XSk7CisgICAgW19kb2N1bWVu
dFBpY2tlckNvbnRyb2xsZXIgc2V0QWxsb3dzTXVsdGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlw
bGVGaWxlc107CisgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6c2Vs
Zl07CisgICAgW3NlbGYgX3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6X2RvY3VtZW50
UGlja2VyQ29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZRVNdOworfQorCistICh2b2lkKV9zaG93
RG9jdW1lbnRQaWNrZXJNZW51Cit7CisgICAgTlNBcnJheSAqbWVkaWFUeXBlcyA9IFVUSXNGb3JN
SU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0czsKKworICAgIEJPT0wgY29udGFp
bnNJbWFnZU1lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElU
aGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlSW1hZ2UpOworICAgIEJPT0wgY29udGFp
bnNWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElU
aGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlTW92aWUpOworCisjaWYgUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCisgICAgLy8gRklYTUUgNDk5NjE1ODk6IFN1cHBvcnQgcGlja2luZyBtZWRp
YSB3aXRoIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyCisgICAgQk9PTCBzaG91bGRQcmVzZW50RG9j
dW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBOTzsKKyNlbHNlCisgICAgQk9PTCBzaG91bGRQcmVz
ZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBjb250YWluc0ltYWdlTWVkaWFUeXBlIHx8
IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGU7CisjZW5kaWYKKyAgICBpZiAoc2hvdWxkUHJlc2VudERv
Y3VtZW50TWVudVZpZXdDb250cm9sbGVyKSB7CisgICAgICAgIFtzZWxmIGVuc3VyZUNvbnRleHRN
ZW51SW50ZXJhY3Rpb25dOworICAgICAgICBbX2RvY3VtZW50Q29udGV4dE1lbnVJbnRlcmFjdGlv
biBfcHJlc2VudE1lbnVBdExvY2F0aW9uOkNHUG9pbnRNYWtlKF9pbnRlcmFjdGlvblBvaW50Lngs
IF9pbnRlcmFjdGlvblBvaW50LnkpXTsKKyAgICB9IGVsc2UgLy8gSW1hZ2UgYW5kIFZpZGVvIHR5
cGVzIGFyZSBub3QgYWNjZXB0ZWQgc28gYnlwYXNzIHRoZSBtZW51IGFuZCBvcGVuIHRoZSBmaWxl
IHBpY2tlciBkaXJlY3RseS4KKyAgICAgICAgW3NlbGYgX3Nob3dGaWxlUGlja2VyTWVudV07Cisg
ICAgCisgICAgLy8gQ2xlYXIgb3V0IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2UganVzdCBwcmVzZW50
ZWQuIERvbid0IHNhdmUgYSByZWZlcmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29u
dHJvbGxlciBhcyBpdCBpcyBzZWxmIGRpc21pc3NpbmcuCiAgICAgX3ByZXNlbnRhdGlvblZpZXdD
b250cm9sbGVyID0gbmlsOwogfQogCkBAIC01MjAsMTQgKzU4MCwxNCBAQCBzdGF0aWMgTlNTZXQ8
TlNTdHJpbmcgKj4gKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAqbWltZVR5cGVzKQogICAgIF9w
cmVzZW50YXRpb25Qb3BvdmVyID0gYWRvcHROUyhbW1VJUG9wb3ZlckNvbnRyb2xsZXIgYWxsb2Nd
IGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOmNvbnRlbnRWaWV3Q29udHJvbGxlcl0pOwog
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIFtfcHJlc2VudGF0aW9u
UG9wb3ZlciBzZXREZWxlZ2F0ZTpzZWxmXTsKLSAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgcHJl
c2VudFBvcG92ZXJGcm9tUmVjdDpDR1JlY3RJbnRlZ3JhbChDR1JlY3RNYWtlKF9pbnRlcmFjdGlv
blBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnksIDEsIDEpKSBpblZpZXc6X3ZpZXcgcGVybWl0
dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93RGlyZWN0aW9uQW55IGFuaW1hdGVkOmFu
aW1hdGVkXTsKKyAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgcHJlc2VudFBvcG92ZXJGcm9tUmVj
dDpDR1JlY3RJbnRlZ3JhbChDR1JlY3RNYWtlKF9pbnRlcmFjdGlvblBvaW50LngsIF9pbnRlcmFj
dGlvblBvaW50LnksIDEsIDEpKSBpblZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgcGVybWl0
dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93RGlyZWN0aW9uQW55IGFuaW1hdGVkOmFu
aW1hdGVkXTsKIH0KIAogLSAodm9pZClfcHJlc2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjoo
VUlWaWV3Q29udHJvbGxlciAqKXZpZXdDb250cm9sbGVyIGFuaW1hdGVkOihCT09MKWFuaW1hdGVk
CiB7CiAgICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6YW5pbWF0ZWRdOwogCi0gICAg
X3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyID0gW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250
cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRhdGlvbkZyb21WaWV3Ol92aWV3XTsKKyAgICBfcHJl
c2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xs
ZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2Vk
KCldOwogICAgIFtfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9s
bGVyOnZpZXdDb250cm9sbGVyIGFuaW1hdGVkOmFuaW1hdGVkIGNvbXBsZXRpb246bmlsXTsKIH0K
IApAQCAtNTQwLDIwICs2MDAsNiBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19F
TkQKICAgICBbc2VsZiBfY2FuY2VsXTsKIH0KIAotI3ByYWdtYSBtYXJrIC0gVUlEb2N1bWVudE1l
bnVEZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbgotCi0tICh2b2lkKWRvY3VtZW50TWVudTooVUlEb2N1
bWVudE1lbnVWaWV3Q29udHJvbGxlciAqKWRvY3VtZW50TWVudSBkaWRQaWNrRG9jdW1lbnRQaWNr
ZXI6KFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciAqKWRvY3VtZW50UGlja2VyCi17Ci0g
ICAgZG9jdW1lbnRQaWNrZXIuZGVsZWdhdGUgPSBzZWxmOwotICAgIFtzZWxmIF9wcmVzZW50RnVs
bHNjcmVlblZpZXdDb250cm9sbGVyOmRvY3VtZW50UGlja2VyIGFuaW1hdGVkOllFU107Ci19Ci0K
LS0gKHZvaWQpZG9jdW1lbnRNZW51V2FzQ2FuY2VsbGVkOihVSURvY3VtZW50TWVudVZpZXdDb250
cm9sbGVyICopZG9jdW1lbnRNZW51Ci17Ci0gICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0
ZWQ6WUVTXTsKLSAgICBbc2VsZiBfY2FuY2VsXTsKLX0KLQogI3ByYWdtYSBtYXJrIC0gVUlEb2N1
bWVudFBpY2tlckNvbnRyb2xsZXJEZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbgogCiBzdGF0aWMgTlNT
dHJpbmcgKmRpc3BsYXlTdHJpbmdGb3JEb2N1bWVudHNBdFVSTHMoTlNBcnJheTxOU1VSTCAqPiAq
dXJscykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392898</attachid>
            <date>2020-03-07 14:26:14 -0800</date>
            <delta_ts>2020-03-07 18:37:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208687-20200307142613.patch</filename>
            <type>text/plain</type>
            <size>19868</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYyNWZkMGMxYWFiYTdi
ODcxMjRhZTIzODM3ODVhMDMzNWJlMzI4YS4uMzFmM2Y3NTk1NTM1YTY4NWQzYjg3NjA1OGEwMzdi
ZDQ4NDQ3ZjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA3ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVUlD
b250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyBzdHJpbmcsIG5vIHRlc3RzIG5lZWRlZC4KKwor
ICAgICAgICAqIGVuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6CisKIDIwMjAtMDMtMDYgIEFu
ZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVu
dGF0aW9uIG9mIEFjY2Vzc2liaWxpdHlTdXBwb3J0IEFYU0lzb2xhdGVkVHJlZU1vZGUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDU4ZWExOTMzMjMwZjg1ZWJhNmEwYzU4YTEzOGQzNTE2OGUzZTU2MzEuLjIyNWRlOWVm
ZmFmYjVjZGU1NTIxZDc5MzJiOTc2N2MwMDE4NmQwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMjAtMDMtMDcgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBBZG9wdCBVSUNvbnRleHRNZW51IGZvciBXS0ZpbGVVcGxvYWRQYW5lbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4Njg3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBmcm9tIHRo
ZSBkZXByaWNhdGVkIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgdG8gVUlDb250ZXh0TWVu
dS4KKyAgICAgICAgVUkgY2hhbmdlLCBub3QgY3VycmVudGx5IHRlc3RhYmxlLgorCisgICAgICAg
ICogUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVs
IGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgcHJlc2VudFdpdGhQYXJh
bWV0ZXJzOnJlc3VsdExpc3RlbmVyOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBk
aXNtaXNzXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9icm93c2VGaWxlc0J1dHRv
bkxhYmVsXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGNvbnRleHRNZW51SW50ZXJh
Y3Rpb246cHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAg
ICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX2NvbnRleHRNZW51SW50ZXJhY3Rpb246c3R5bGVG
b3JNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVs
IGNvbnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0aW9uOl0p
OgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjb250ZXh0TWVudUludGVyYWN0aW9uOndp
bGxFbmRGb3JDb25maWd1cmF0aW9uOmFuaW1hdG9yOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxv
YWRQYW5lbCBfcmVtb3ZlSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFu
ZWwgX2luaXRJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfc2hv
d0ZpbGVQaWNrZXJNZW51XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9zaG93RG9j
dW1lbnRQaWNrZXJNZW51XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9wcmVzZW50
UG9wb3ZlcldpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6YW5pbWF0ZWQ6XSk6CisgICAgICAgICgt
W1dLRmlsZVVwbG9hZFBhbmVsIF9wcmVzZW50RnVsbHNjcmVlblZpZXdDb250cm9sbGVyOmFuaW1h
dGVkOl0pOgorICAgICAgICAocGhvdG9MaWJyYXJ5SWNvbik6IERlbGV0ZWQuCisgICAgICAgIChj
YW1lcmFJY29uKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgZG9jdW1l
bnRNZW51OmRpZFBpY2tEb2N1bWVudFBpY2tlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tG
aWxlVXBsb2FkUGFuZWwgZG9jdW1lbnRNZW51V2FzQ2FuY2VsbGVkOl0pOiBEZWxldGVkLgorCiAy
MDIwLTAzLTA2ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBJbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3NpYmlsaXR5U3VwcG9ydCBBWFNJc29sYXRlZFRy
ZWVNb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MKaW5k
ZXggNzU1MjI1ZTZiYTNkZTMxMzhkMzY2ZjE0N2ZmZjViODRhMjhmYWQ5Ni4uYjEwYjNlMDdlNTRi
OWZiMjg0N2ExMWNiNzA4ZjEwYzBkZDRiMGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncworKysgYi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCkBAIC0xNTQsNiArMTU0LDkgQEAKIC8qIExhYmVsIGZvciB0
aGUgYm9vayB3aXRoIEFwcGxlIFBheSBidXR0b24uICovCiAiQm9vayB3aXRoIEFwcGxlIFBheSIg
PSAiQm9vayB3aXRoIEFwcGxlIFBheSI7CiAKKy8qIEZpbGUgVXBsb2FkIGFsZXJ0IHNoZWV0IGJ1
dHRvbiBzdHJpbmcgZm9yIGNob29zaW5nIGFuIGV4aXN0aW5nIGZpbGUgZnJvbSB0aGUgZmlsZSBi
cm93ZXIgKi8KKyJCcm93c2UgKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiID0gIkJyb3dzZSI7
CisKIC8qIE9wdGlvbiBpbiBzZWdtZW50ZWQgY29udHJvbCBmb3IgaW5zZXJ0aW5nIGEgYnVsbGV0
ZWQgbGlzdCBpbiB0ZXh0IGVkaXRpbmcgKi8KICJCdWxsZXRlZCBsaXN0IiA9ICJCdWxsZXRlZCBs
aXN0IjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAppbmRleCA0
YTY2ZTQzODFjZWQxMjZlOGY2NDBjYmYwNTA5NzAwYjIwMDg3YjVmLi5hOTZkMTliMWVjOGRiMzlj
OGJkNGFkZjhkYTBkZDA4YzkzZmIxNTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaApAQCAtMTA5NywxMyArMTA5NywyNSBAQCB0eXBlZGVmIE5TX09QVElPTlMo
TlNJbnRlZ2VyLCBVSVdLRG9jdW1lbnRSZXF1ZXN0RmxhZ3MpIHsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzdHJvbmcpIFVJSW1hZ2UgKmltYWdlOwogQGVuZAogCit0eXBlZGVmIE5TX0VOVU0oTlNV
SW50ZWdlciwgX1VJQ29udGV4dE1lbnVMYXlvdXQpIHsKKyAgICBfVUlDb250ZXh0TWVudUxheW91
dEFjdGlvbnNPbmx5ID0gMSwKKyAgICBfVUlDb250ZXh0TWVudUxheW91dENvbXBhY3RNZW51ID0g
MywKK307CisKIEBpbnRlcmZhY2UgX1VJQ29udGV4dE1lbnVTdHlsZSA6IE5TT2JqZWN0IDxOU0Nv
cHlpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYykgX1VJQ29udGV4dE1lbnVMYXlvdXQgcHJlZmVy
cmVkTGF5b3V0OworKyAoaW5zdGFuY2V0eXBlKWRlZmF1bHRTdHlsZTsKIEBlbmQKIAogI2lmIFVT
RShVSUNPTlRFWFRNRU5VKQogQGludGVyZmFjZSBVSVRhcmdldGVkUHJldmlldyAoKQogQHByb3Bl
cnR5IChub25hdG9taWMsIHN0cm9uZywgc2V0dGVyPV9zZXRPdmVycmlkZVBvc2l0aW9uVHJhY2tp
bmdWaWV3OikgVUlWaWV3ICpvdmVycmlkZVBvc2l0aW9uVHJhY2tpbmdWaWV3OwogQGVuZAorCitA
aW50ZXJmYWNlIFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbiAoKQorLSAodm9pZClfcHJlc2VudE1l
bnVBdExvY2F0aW9uOihDR1BvaW50KWxvY2F0aW9uOworQGVuZAorCiAjZW5kaWYgLy8gVVNFKFVJ
Q09OVEVYVE1FTlUpCiAKICNpZiBIQVZFKExJTktfUFJFVklFVykgJiYgVVNFKFVJQ09OVEVYVE1F
TlUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxl
VXBsb2FkUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxl
VXBsb2FkUGFuZWwubW0KaW5kZXggNWRiNDY1ZmIyMzIwOGY0MTgwNjQxMzE1NmNkZjA2NWEyNDVk
OWRiYi4uZmFkNThlNTE1M2NmMWU1ZGQ0ZmY5YzhiZjZjNDhmNTM1ZDA2Nzg2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5l
bC5tbQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxpdGllcy5oPgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9T
dHJpbmdWaWV3Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CkBAIC02NywxOCArNjgsNiBA
QCBzdGF0aWMgYm9vbCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8oTlNBcnJheTxOU1N0
cmluZyAqPiAqdHlwZUlkZW50aWZpZXJzLAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI3ByYWdt
YSBtYXJrIC0gRG9jdW1lbnQgcGlja2VyIGljb25zCi0KLXN0YXRpYyBpbmxpbmUgVUlJbWFnZSAq
cGhvdG9MaWJyYXJ5SWNvbigpCi17Ci0gICAgcmV0dXJuIF9VSUltYWdlR2V0V2ViS2l0UGhvdG9M
aWJyYXJ5SWNvbigpOwotfQotCi1zdGF0aWMgaW5saW5lIFVJSW1hZ2UgKmNhbWVyYUljb24oKQot
ewotICAgIHJldHVybiBfVUlJbWFnZUdldFdlYktpdFRha2VQaG90b09yVmlkZW9JY29uKCk7Ci19
Ci0KICNwcmFnbWEgbWFyayAtIF9XS0ZpbGVVcGxvYWRJdGVtCiAKIEBpbnRlcmZhY2UgX1dLRmls
ZVVwbG9hZEl0ZW0gOiBOU09iamVjdApAQCAtMTYxLDExICsxNTAsMTEgQEAgc3RhdGljIGlubGlu
ZSBVSUltYWdlICpjYW1lcmFJY29uKCkKIAogI3ByYWdtYSBtYXJrIC0gV0tGaWxlVXBsb2FkUGFu
ZWwKIAotQGludGVyZmFjZSBXS0ZpbGVVcGxvYWRQYW5lbCAoKSA8VUlQb3BvdmVyQ29udHJvbGxl
ckRlbGVnYXRlLCBVSU5hdmlnYXRpb25Db250cm9sbGVyRGVsZWdhdGUsIFVJSW1hZ2VQaWNrZXJD
b250cm9sbGVyRGVsZWdhdGUsIFVJRG9jdW1lbnRQaWNrZXJEZWxlZ2F0ZSwgVUlEb2N1bWVudE1l
bnVEZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV0tGaWxlVXBsb2FkUGFuZWwgKCkgPFVJUG9wb3ZlckNv
bnRyb2xsZXJEZWxlZ2F0ZSwgVUlOYXZpZ2F0aW9uQ29udHJvbGxlckRlbGVnYXRlLCBVSUltYWdl
UGlja2VyQ29udHJvbGxlckRlbGVnYXRlLCBVSURvY3VtZW50UGlja2VyRGVsZWdhdGUsIFVJQ29u
dGV4dE1lbnVJbnRlcmFjdGlvbkRlbGVnYXRlPgogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tG
aWxlVXBsb2FkUGFuZWwgewotICAgIFdLQ29udGVudFZpZXcgKl92aWV3OworICAgIFdlYWtPYmpD
UHRyPFdLQ29udGVudFZpZXc+IF92aWV3OwogICAgIFJlZlB0cjxXZWJLaXQ6OldlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUHJveHk+IF9saXN0ZW5lcjsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4g
X21pbWVUeXBlczsKICAgICBDR1BvaW50IF9pbnRlcmFjdGlvblBvaW50OwpAQCAtMTc2LDcgKzE2
NSw3IEBAIHN0YXRpYyBpbmxpbmUgVUlJbWFnZSAqY2FtZXJhSWNvbigpCiAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICBSZXRhaW5QdHI8VUlQb3BvdmVyQ29udHJv
bGxlcj4gX3ByZXNlbnRhdGlvblBvcG92ZXI7IC8vIGlQYWQgZm9yIGFjdGlvbiBzaGVldCBhbmQg
UGhvdG8gTGlicmFyeS4KICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAg
ICBSZXRhaW5QdHI8VUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcj4gX2RvY3VtZW50TWVudUNv
bnRyb2xsZXI7CisgICAgUmV0YWluUHRyPFVJQ29udGV4dE1lbnVJbnRlcmFjdGlvbj4gX2RvY3Vt
ZW50Q29udGV4dE1lbnVJbnRlcmFjdGlvbjsKICAgICBSZXRhaW5QdHI8VUlEb2N1bWVudFBpY2tl
clZpZXdDb250cm9sbGVyPiBfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyOwogICAgIFdlYkNvcmU6
Ok1lZGlhQ2FwdHVyZVR5cGUgX21lZGlhQ2FwdHVyZVR5cGU7CiB9CkBAIC0xOTMsOCArMTgyLDgg
QEAgc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29uKCkKIHsKICAgICBbX2ltYWdlUGlj
a2VyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHNldERlbGVn
YXRlOm5pbF07Ci0gICAgW19kb2N1bWVudE1lbnVDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07
CiAgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAgICBb
c2VsZiByZW1vdmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKIAogICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KQEAgLTI3OCw3ICsyNjcsNyBAQCBzdGF0aWMgaW5saW5lIFVJSW1hZ2UgKmNhbWVyYUlj
b24oKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgW3NlbGYgX3Nob3dEb2N1bWVudFBp
Y2tlck1lbnVdOworICAgIFtzZWxmIHNob3dEb2N1bWVudFBpY2tlck1lbnVdOwogfQogCiAtICh2
b2lkKWRpc21pc3MKQEAgLTI4Niw3ICsyNzUsNyBAQCBzdGF0aWMgaW5saW5lIFVJSW1hZ2UgKmNh
bWVyYUljb24oKQogICAgIC8vIERpc21pc3MgYW55IHZpZXcgY29udHJvbGxlciB0aGF0IGlzIGJl
aW5nIHByZXNlbnRlZC4gVGhpcyB3b3JrcyBmb3IgYWxsIHR5cGVzIG9mIHZpZXcgY29udHJvbGxl
cnMsIHBvcG92ZXJzLCBldGMuCiAgICAgLy8gSWYgdGhlcmUgaXMgYW55IGtpbmQgb2YgdmlldyBj
b250cm9sbGVyIHByZXNlbnRlZCBvbiB0aGlzIHZpZXcsIGl0IHdpbGwgYmUgcmVtb3ZlZC4KICAg
ICAKLSAgICBbW1VJVmlld0NvbnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblBy
ZXNlbnRhdGlvbkZyb21WaWV3Ol92aWV3XSBkaXNtaXNzVmlld0NvbnRyb2xsZXJBbmltYXRlZDpO
TyBjb21wbGV0aW9uOm5pbF07CisgICAgW1tVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxl
ckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9tVmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQo
KV0gZGlzbWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6Tk8gY29tcGxldGlvbjpuaWxdOwogICAg
IAogICAgIFtfcHJlc2VudGF0aW9uUG9wb3ZlciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIF9wcmVz
ZW50YXRpb25Qb3BvdmVyID0gbmlsOwpAQCAtMzE4LDEzICszMDcsMTMgQEAgc3RhdGljIGlubGlu
ZSBVSUltYWdlICpjYW1lcmFJY29uKCkKICAgICBOU011dGFibGVBcnJheTxOU1N0cmluZyAqPiAq
YWN0aW9uVGl0bGVzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKIAogICAgIE5TQXJyYXkgKm1l
ZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0KCkpLmFsbE9iamVjdHM7
Ci0gICAgQk9PTCBjb250YWluc0ltYWdlTWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwg
YXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVJbWFnZSk7
Ci0gICAgQk9PTCBjb250YWluc1ZpZGVvTWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwg
YXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVNb3ZpZSk7
Ci0gICAgaWYgKGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgfHwgY29udGFpbnNWaWRlb01lZGlhVHlw
ZSkgeworICAgIEJPT0wgYWxsb3dzSW1hZ2VNZWRpYVR5cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8
fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywga1VUVHlwZUltYWdl
KTsKKyAgICBCT09MIGFsbG93c1ZpZGVvTWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwg
YXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVNb3ZpZSk7
CisgICAgaWYgKGFsbG93c0ltYWdlTWVkaWFUeXBlIHx8IGFsbG93c1ZpZGVvTWVkaWFUeXBlKSB7
CiAgICAgICAgIFthY3Rpb25UaXRsZXMgYWRkT2JqZWN0OkAiUGhvdG8gTGlicmFyeSJdOwotICAg
ICAgICBpZiAoY29udGFpbnNJbWFnZU1lZGlhVHlwZSAmJiBjb250YWluc1ZpZGVvTWVkaWFUeXBl
KQorICAgICAgICBpZiAoYWxsb3dzSW1hZ2VNZWRpYVR5cGUgJiYgYWxsb3dzVmlkZW9NZWRpYVR5
cGUpCiAgICAgICAgICAgICBbYWN0aW9uVGl0bGVzIGFkZE9iamVjdDpAIlRha2UgUGhvdG8gb3Ig
VmlkZW8iXTsKLSAgICAgICAgZWxzZSBpZiAoY29udGFpbnNWaWRlb01lZGlhVHlwZSkKKyAgICAg
ICAgZWxzZSBpZiAoYWxsb3dzVmlkZW9NZWRpYVR5cGUpCiAgICAgICAgICAgICBbYWN0aW9uVGl0
bGVzIGFkZE9iamVjdDpAIlRha2UgVmlkZW8iXTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
W2FjdGlvblRpdGxlcyBhZGRPYmplY3Q6QCJUYWtlIFBob3RvIl07CkBAIC0zODYsNiArMzc1LDEx
IEBAIHN0YXRpYyBOU1NldDxOU1N0cmluZyAqPiAqVVRJc0Zvck1JTUVUeXBlcyhOU0FycmF5ICpt
aW1lVHlwZXMpCiAKICNwcmFnbWEgbWFyayAtIFNvdXJjZSBzZWxlY3Rpb24gbWVudQogCistIChO
U1N0cmluZyAqKV9icm93c2VGaWxlc0J1dHRvbkxhYmVsCit7CisgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkdfS0VZKCJCcm93c2UiLCAiQnJvd3NlIChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiwg
IkZpbGUgVXBsb2FkIGFsZXJ0IHNoZWV0IGJ1dHRvbiBzdHJpbmcgZm9yIGNob29zaW5nIGFuIGV4
aXN0aW5nIGZpbGUgZnJvbSB0aGUgZmlsZSBicm93ZXIiKTsKK30KKwogLSAoTlNTdHJpbmcgKilf
cGhvdG9MaWJyYXJ5QnV0dG9uTGFiZWwKIHsKICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVko
IlBob3RvIExpYnJhcnkiLCAiUGhvdG8gTGlicmFyeSAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0
KSIsICJGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZvciBjaG9vc2luZyBh
biBleGlzdGluZyBtZWRpYSBpdGVtIGZyb20gdGhlIFBob3RvIExpYnJhcnkiKTsKQEAgLTQwMyw0
OCArMzk3LDExMyBAQCBzdGF0aWMgTlNTZXQ8TlNTdHJpbmcgKj4gKlVUSXNGb3JNSU1FVHlwZXMo
TlNBcnJheSAqbWltZVR5cGVzKQogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVGFrZSBQ
aG90byIsICJUYWtlIFBob3RvIChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiwgIkZpbGUgVXBs
b2FkIGFsZXJ0IHNoZWV0IGNhbWVyYSBidXR0b24gc3RyaW5nIGZvciB0YWtpbmcgb25seSBwaG90
b3MiKTsKIH0KIAotLSAodm9pZClfc2hvd0RvY3VtZW50UGlja2VyTWVudQorLSAoVUlUYXJnZXRl
ZFByZXZpZXcgKiljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rp
b24gKilpbnRlcmFjdGlvbiBwcmV2aWV3Rm9ySGlnaGxpZ2h0aW5nTWVudVdpdGhDb25maWd1cmF0
aW9uOihVSUNvbnRleHRNZW51Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24KIHsKLSAgICBO
U0FycmF5ICptZWRpYVR5cGVzID0gVVRJc0Zvck1JTUVUeXBlcyhfbWltZVR5cGVzLmdldCgpKS5h
bGxPYmplY3RzOworICAgIFJldGFpblB0cjxVSVByZXZpZXdQYXJhbWV0ZXJzPiB1bnVzZWRQcmV2
aWV3UGFyYW1ldGVycyA9IGFkb3B0TlMoW1tVSVByZXZpZXdQYXJhbWV0ZXJzIGFsbG9jXSBpbml0
XSk7CisgICAgUmV0YWluUHRyPFVJUHJldmlld1RhcmdldD4gcHJldmlld1RhcmdldCA9IGFkb3B0
TlMoW1tVSVByZXZpZXdUYXJnZXQgYWxsb2NdIGluaXRXaXRoQ29udGFpbmVyOl92aWV3LmdldEF1
dG9yZWxlYXNlZCgpIGNlbnRlcjpDR1BvaW50TWFrZShfaW50ZXJhY3Rpb25Qb2ludC54LCBfaW50
ZXJhY3Rpb25Qb2ludC55KV0pOworICAgIFJldGFpblB0cjxVSVRhcmdldGVkUHJldmlldz4gcHJl
dmlldyA9IGFkb3B0TlMoW1tVSVRhcmdldGVkUHJldmlldyBhbGxvY10gaW5pdFdpdGhWaWV3Ol92
aWV3LmdldEF1dG9yZWxlYXNlZCgpIHBhcmFtZXRlcnM6dW51c2VkUHJldmlld1BhcmFtZXRlcnMu
Z2V0KCkgdGFyZ2V0OnByZXZpZXdUYXJnZXQuZ2V0KCldKTsKIAotICAgIEJPT0wgY29udGFpbnNJ
bWFnZU1lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0
Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlSW1hZ2UpOwotICAgIEJPT0wgY29udGFpbnNW
aWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0
Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlTW92aWUpOworICAgIHJldHVybiBwcmV2aWV3
LmF1dG9yZWxlYXNlKCk7Cit9CiAKLSNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICAvLyBG
SVhNRSA0OTk2MTU4OTogU3VwcG9ydCBwaWNraW5nIG1lZGlhIHdpdGggVUlJbWFnZVBpY2tlckNv
bnRyb2xsZXIKLSAgICBCT09MIHNob3VsZFByZXNlbnREb2N1bWVudE1lbnVWaWV3Q29udHJvbGxl
ciA9IE5POwotI2Vsc2UKLSAgICBCT09MIHNob3VsZFByZXNlbnREb2N1bWVudE1lbnVWaWV3Q29u
dHJvbGxlciA9IGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgfHwgY29udGFpbnNWaWRlb01lZGlhVHlw
ZTsKLSNlbmRpZgorLSAoX1VJQ29udGV4dE1lbnVTdHlsZSAqKV9jb250ZXh0TWVudUludGVyYWN0
aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBzdHlsZUZvck1lbnVX
aXRoQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0
aW9uCit7CisgICAgX1VJQ29udGV4dE1lbnVTdHlsZSAqc3R5bGUgPSBbX1VJQ29udGV4dE1lbnVT
dHlsZSBkZWZhdWx0U3R5bGVdOworICAgIHN0eWxlLnByZWZlcnJlZExheW91dCA9IF9VSUNvbnRl
eHRNZW51TGF5b3V0Q29tcGFjdE1lbnU7CisgICAgcmV0dXJuIHN0eWxlOworfQogCi0gICAgTlNB
cnJheSAqZG9jdW1lbnRUeXBlcyA9IG1lZGlhVHlwZXMuY291bnQgPyBtZWRpYVR5cGVzIDogQFso
X19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlSXRlbV07Ci0gICAgaWYgKHNob3VsZFByZXNlbnRE
b2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcikgewotICAgICAgICAvLyBGSVhNRSA0OTk3OTQ0Mjog
VUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlciBpcyBkZXByZWNhdGVkLiBVc2UgVUlEb2N1bWVu
dFBpY2tlclZpZXdDb250cm9sbGVyIGluc3RlYWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBmaWxlIHNl
bGVjdGlvbi4KLSAgICAgICAgX2RvY3VtZW50TWVudUNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlE
b2N1bWVudE1lbnVWaWV3Q29udHJvbGxlciBhbGxvY10gX2luaXRJZ25vcmluZ0FwcGxpY2F0aW9u
RW50aXRsZW1lbnRGb3JJbXBvcnRPZlR5cGVzOmRvY3VtZW50VHlwZXNdKTsKLSAgICAgICAgW19k
b2N1bWVudE1lbnVDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOworLSAoVUlDb250ZXh0TWVu
dUNvbmZpZ3VyYXRpb24gKiljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50
ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246KENH
UG9pbnQpbG9jYXRpb24geworCisgICAgVUlDb250ZXh0TWVudUFjdGlvblByb3ZpZGVyIGFjdGlv
bk1lbnVQcm92aWRlciA9IFtzZWxmLCB3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLRmlsZVVwbG9h
ZFBhbmVsPihzZWxmKV0gKE5TQXJyYXk8VUlNZW51RWxlbWVudCAqPiAqKSAtPiBVSU1lbnUgKiB7
CisgICAgICAgIE5TQXJyYXkgKmFjdGlvbnM7CisgICAgICAgIE5TQXJyYXkgKm1lZGlhVHlwZXMg
PSBVVElzRm9yTUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0KCkpLmFsbE9iamVjdHM7CisKKyAgICAg
ICAgQk9PTCBhbGxvd3NJbWFnZU1lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5
Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlSW1hZ2UpOworICAg
ICAgICBCT09MIGFsbG93c1ZpZGVvTWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJy
YXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVNb3ZpZSk7Cisg
ICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOworICAgICAgICAKKyAgICAg
ICAgaWYgKCFzdHJvbmdTZWxmKQorICAgICAgICAgICAgcmV0dXJuIG5pbDsKKyAgICAgICAgCisg
ICAgICAgIFVJQWN0aW9uICpicm93c2VBY3Rpb24gPSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxl
OltzdHJvbmdTZWxmIF9icm93c2VGaWxlc0J1dHRvbkxhYmVsXSBpbWFnZTpbVUlJbWFnZSBzeXN0
ZW1JbWFnZU5hbWVkOkAiZWxsaXBzaXMiXSBpZGVudGlmaWVyOkAiYnJvd3NlIiBoYW5kbGVyOl4o
X19raW5kb2YgVUlBY3Rpb24gKmFjdGlvbikgeworICAgICAgICAgICAgW3NlbGYgc2hvd0ZpbGVQ
aWNrZXJNZW51XTsKKyAgICAgICAgfV07CiAKLSAgICAgICAgW19kb2N1bWVudE1lbnVDb250cm9s
bGVyIGFkZE9wdGlvbldpdGhUaXRsZTpbc2VsZiBfcGhvdG9MaWJyYXJ5QnV0dG9uTGFiZWxdIGlt
YWdlOnBob3RvTGlicmFyeUljb24oKSBvcmRlcjpVSURvY3VtZW50TWVudU9yZGVyRmlyc3QgaGFu
ZGxlcjpeeworICAgICAgICBVSUFjdGlvbiAqcGhvdG9BY3Rpb24gPSBbVUlBY3Rpb24gYWN0aW9u
V2l0aFRpdGxlOltzdHJvbmdTZWxmIF9waG90b0xpYnJhcnlCdXR0b25MYWJlbF0gaW1hZ2U6W1VJ
SW1hZ2Ugc3lzdGVtSW1hZ2VOYW1lZDpAInJlY3RhbmdsZS5vbi5yZWN0YW5nbGUiXSBpZGVudGlm
aWVyOkAicGhvdG8iIGhhbmRsZXI6XihfX2tpbmRvZiBVSUFjdGlvbiAqYWN0aW9uKSB7CiAgICAg
ICAgICAgICBbc2VsZiBfc2hvd1Bob3RvUGlja2VyV2l0aFNvdXJjZVR5cGU6VUlJbWFnZVBpY2tl
ckNvbnRyb2xsZXJTb3VyY2VUeXBlUGhvdG9MaWJyYXJ5XTsKICAgICAgICAgfV07CiAKICAgICAg
ICAgaWYgKFtVSUltYWdlUGlja2VyQ29udHJvbGxlciBpc1NvdXJjZVR5cGVBdmFpbGFibGU6VUlJ
bWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXSkgewotICAgICAgICAgICAgTlNT
dHJpbmcgKmNhbWVyYVN0cmluZyA9IFtzZWxmIF9jYW1lcmFCdXR0b25MYWJlbEFsbG93aW5nUGhv
dG86Y29udGFpbnNJbWFnZU1lZGlhVHlwZSBhbGxvd2luZ1ZpZGVvOmNvbnRhaW5zVmlkZW9NZWRp
YVR5cGVdOwotICAgICAgICAgICAgW19kb2N1bWVudE1lbnVDb250cm9sbGVyIGFkZE9wdGlvbldp
dGhUaXRsZTpjYW1lcmFTdHJpbmcgaW1hZ2U6Y2FtZXJhSWNvbigpIG9yZGVyOlVJRG9jdW1lbnRN
ZW51T3JkZXJGaXJzdCBoYW5kbGVyOl57CisgICAgICAgICAgICBOU1N0cmluZyAqY2FtZXJhU3Ry
aW5nID0gW3N0cm9uZ1NlbGYgX2NhbWVyYUJ1dHRvbkxhYmVsQWxsb3dpbmdQaG90bzphbGxvd3NJ
bWFnZU1lZGlhVHlwZSBhbGxvd2luZ1ZpZGVvOmFsbG93c1ZpZGVvTWVkaWFUeXBlXTsKKyAgICAg
ICAgICAgIFVJQWN0aW9uICpjYW1lcmFBY3Rpb24gPSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxl
OmNhbWVyYVN0cmluZyBpbWFnZTpbVUlJbWFnZSBzeXN0ZW1JbWFnZU5hbWVkOkAiY2FtZXJhLmZp
bGwiXSBpZGVudGlmaWVyOkAiY2FtZXJhIiBoYW5kbGVyOl4oX19raW5kb2YgVUlBY3Rpb24gKmFj
dGlvbikgewogICAgICAgICAgICAgICAgIF91c2luZ0NhbWVyYSA9IFlFUzsKICAgICAgICAgICAg
ICAgICBbc2VsZiBfc2hvd1Bob3RvUGlja2VyV2l0aFNvdXJjZVR5cGU6VUlJbWFnZVBpY2tlckNv
bnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXTsKICAgICAgICAgICAgIH1dOwotICAgICAgICB9Cisg
ICAgICAgICAgICBhY3Rpb25zID0gQFtwaG90b0FjdGlvbiwgY2FtZXJhQWN0aW9uLCBicm93c2VB
Y3Rpb25dOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGFjdGlvbnMgPSBAW3Bob3RvQWN0
aW9uLCBicm93c2VBY3Rpb25dOworCisgICAgICAgIHJldHVybiBbVUlNZW51IG1lbnVXaXRoVGl0
bGU6QCIiIGNoaWxkcmVuOmFjdGlvbnNdOworICAgIH07CisgICAgCisgICAgcmV0dXJuIFtVSUNv
bnRleHRNZW51Q29uZmlndXJhdGlvbiBjb25maWd1cmF0aW9uV2l0aElkZW50aWZpZXI6bmlsIHBy
ZXZpZXdQcm92aWRlcjpuaWwgYWN0aW9uUHJvdmlkZXI6YWN0aW9uTWVudVByb3ZpZGVyXTsKK30K
KworLSAodm9pZCljb250ZXh0TWVudUludGVyYWN0aW9uOihVSUNvbnRleHRNZW51SW50ZXJhY3Rp
b24gKilpbnRlcmFjdGlvbiB3aWxsRW5kRm9yQ29uZmlndXJhdGlvbjooVUlDb250ZXh0TWVudUNv
bmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uIGFuaW1hdG9yOihpZDxVSUNvbnRleHRNZW51SW50
ZXJhY3Rpb25BbmltYXRpbmc+KWFuaW1hdG9yCit7CisgICAgW2FuaW1hdG9yIGFkZENvbXBsZXRp
b246XnsKKyAgICAgICAgW3NlbGYgcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CisgICAg
ICAgIFtzZWxmIF9jYW5jZWxdOworICAgIH1dOworfQogCi0gICAgICAgIFtzZWxmIF9wcmVzZW50
TWVudU9wdGlvbkZvckN1cnJlbnRJbnRlcmZhY2VJZGlvbTpfZG9jdW1lbnRNZW51Q29udHJvbGxl
ci5nZXQoKV07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gSW1hZ2UgYW5kIFZpZGVvIHR5cGVz
IGFyZSBub3QgYWNjZXB0ZWQgc28gYnlwYXNzIHRoZSBtZW51IGFuZCBvcGVuIHRoZSBmaWxlIHBp
Y2tlciBkaXJlY3RseS4KLSAgICAgICAgX2RvY3VtZW50UGlja2VyQ29udHJvbGxlciA9IGFkb3B0
TlMoW1tVSURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoRG9jdW1l
bnRUeXBlczpkb2N1bWVudFR5cGVzIGluTW9kZTpVSURvY3VtZW50UGlja2VyTW9kZUltcG9ydF0p
OwotICAgICAgICBbX2RvY3VtZW50UGlja2VyQ29udHJvbGxlciBzZXRBbGxvd3NNdWx0aXBsZVNl
bGVjdGlvbjpfYWxsb3dNdWx0aXBsZUZpbGVzXTsKLSAgICAgICAgW19kb2N1bWVudFBpY2tlckNv
bnRyb2xsZXIgc2V0RGVsZWdhdGU6c2VsZl07Ci0gICAgICAgIFtzZWxmIF9wcmVzZW50RnVsbHNj
cmVlblZpZXdDb250cm9sbGVyOl9kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIuZ2V0KCkgYW5pbWF0
ZWQ6WUVTXTsKKy0gKHZvaWQpcmVtb3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbgoreworICAgIGlm
IChfZG9jdW1lbnRDb250ZXh0TWVudUludGVyYWN0aW9uKSB7CisgICAgICAgIFtfdmlldyByZW1v
dmVJbnRlcmFjdGlvbjpfZG9jdW1lbnRDb250ZXh0TWVudUludGVyYWN0aW9uLmdldCgpXTsKKyAg
ICAgICAgX2RvY3VtZW50Q29udGV4dE1lbnVJbnRlcmFjdGlvbiA9IG5pbDsKICAgICB9Cit9CiAK
LSAgICAvLyBDbGVhciBvdXQgdGhlIHZpZXcgY29udHJvbGxlciB3ZSBqdXN0IHByZXNlbnRlZC4g
RG9uJ3Qgc2F2ZSBhIHJlZmVyZW5jZSB0byB0aGUgVUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxl
ciAvIFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBhcyBpdCBpcyBzZWxmIGRpc21pc3Np
bmcuCistICh2b2lkKWVuc3VyZUNvbnRleHRNZW51SW50ZXJhY3Rpb24KK3sKKyAgICBpZiAoIV9k
b2N1bWVudENvbnRleHRNZW51SW50ZXJhY3Rpb24pIHsKKyAgICAgICAgX2RvY3VtZW50Q29udGV4
dE1lbnVJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW1tVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gYWxs
b2NdIGluaXRXaXRoRGVsZWdhdGU6c2VsZl0pOworICAgICAgICBbX3ZpZXcgYWRkSW50ZXJhY3Rp
b246X2RvY3VtZW50Q29udGV4dE1lbnVJbnRlcmFjdGlvbi5nZXQoKV07CisgICAgfQorfQorCist
ICh2b2lkKXNob3dGaWxlUGlja2VyTWVudQoreworICAgIE5TQXJyYXkgKm1lZGlhVHlwZXMgPSBV
VElzRm9yTUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0KCkpLmFsbE9iamVjdHM7CisgICAgTlNBcnJh
eSAqZG9jdW1lbnRUeXBlcyA9IG1lZGlhVHlwZXMuY291bnQgPyBtZWRpYVR5cGVzIDogQFsoX19i
cmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlSXRlbV07CisgICAgCisgICAgX2RvY3VtZW50UGlja2Vy
Q29udHJvbGxlciA9IGFkb3B0TlMoW1tVSURvY3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXIgYWxs
b2NdIGluaXRXaXRoRG9jdW1lbnRUeXBlczpkb2N1bWVudFR5cGVzIGluTW9kZTpVSURvY3VtZW50
UGlja2VyTW9kZUltcG9ydF0pOworICAgIFtfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyIHNldEFs
bG93c011bHRpcGxlU2VsZWN0aW9uOl9hbGxvd011bHRpcGxlRmlsZXNdOworICAgIFtfZG9jdW1l
bnRQaWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtzZWxmIF9wcmVzZW50
RnVsbHNjcmVlblZpZXdDb250cm9sbGVyOl9kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIuZ2V0KCkg
YW5pbWF0ZWQ6WUVTXTsKK30KKworLSAodm9pZClzaG93RG9jdW1lbnRQaWNrZXJNZW51Cit7Cisg
ICAgTlNBcnJheSAqbWVkaWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQo
KSkuYWxsT2JqZWN0czsKKyAgICAKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKKyAgICAvLyBG
SVhNRSA0OTk2MTU4OTogU3VwcG9ydCBwaWNraW5nIG1lZGlhIHdpdGggVUlJbWFnZVBpY2tlckNv
bnRyb2xsZXIKKyAgICBCT09MIHNob3VsZFByZXNlbnREb2N1bWVudE1lbnVWaWV3Q29udHJvbGxl
ciA9IE5POworI2Vsc2UKKyAgICBCT09MIGFsbG93c0ltYWdlTWVkaWFUeXBlID0gIW1lZGlhVHlw
ZXMuY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtV
VFR5cGVJbWFnZSk7CisgICAgQk9PTCBhbGxvd3NWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVz
LmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRU
eXBlTW92aWUpOworICAgIEJPT0wgc2hvdWxkUHJlc2VudERvY3VtZW50TWVudVZpZXdDb250cm9s
bGVyID0gYWxsb3dzSW1hZ2VNZWRpYVR5cGUgfHwgYWxsb3dzVmlkZW9NZWRpYVR5cGU7CisjZW5k
aWYKKyAgICBpZiAoc2hvdWxkUHJlc2VudERvY3VtZW50TWVudVZpZXdDb250cm9sbGVyKSB7Cisg
ICAgICAgIFtzZWxmIGVuc3VyZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dOworICAgICAgICBbX2Rv
Y3VtZW50Q29udGV4dE1lbnVJbnRlcmFjdGlvbiBfcHJlc2VudE1lbnVBdExvY2F0aW9uOkNHUG9p
bnRNYWtlKF9pbnRlcmFjdGlvblBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnkpXTsKKyAgICB9
IGVsc2UgLy8gSW1hZ2UgYW5kIFZpZGVvIHR5cGVzIGFyZSBub3QgYWNjZXB0ZWQgc28gYnlwYXNz
IHRoZSBtZW51IGFuZCBvcGVuIHRoZSBmaWxlIHBpY2tlciBkaXJlY3RseS4KKyAgICAgICAgW3Nl
bGYgc2hvd0ZpbGVQaWNrZXJNZW51XTsKKyAgICAKKyAgICAvLyBDbGVhciBvdXQgdGhlIHZpZXcg
Y29udHJvbGxlciB3ZSBqdXN0IHByZXNlbnRlZC4gRG9uJ3Qgc2F2ZSBhIHJlZmVyZW5jZSB0byB0
aGUgVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFzIGl0IGlzIHNlbGYgZGlzbWlzc2lu
Zy4KICAgICBfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBuaWw7CiB9CiAKQEAgLTUyMCwx
NCArNTc5LDE0IEBAIHN0YXRpYyBOU1NldDxOU1N0cmluZyAqPiAqVVRJc0Zvck1JTUVUeXBlcyhO
U0FycmF5ICptaW1lVHlwZXMpCiAgICAgX3ByZXNlbnRhdGlvblBvcG92ZXIgPSBhZG9wdE5TKFtb
VUlQb3BvdmVyQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhDb250ZW50Vmlld0NvbnRyb2xsZXI6
Y29udGVudFZpZXdDb250cm9sbGVyXSk7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAgICAgW19wcmVzZW50YXRpb25Qb3BvdmVyIHNldERlbGVnYXRlOnNlbGZdOwotICAg
IFtfcHJlc2VudGF0aW9uUG9wb3ZlciBwcmVzZW50UG9wb3ZlckZyb21SZWN0OkNHUmVjdEludGVn
cmFsKENHUmVjdE1ha2UoX2ludGVyYWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSwg
MSwgMSkpIGluVmlldzpfdmlldyBwZXJtaXR0ZWRBcnJvd0RpcmVjdGlvbnM6VUlQb3BvdmVyQXJy
b3dEaXJlY3Rpb25BbnkgYW5pbWF0ZWQ6YW5pbWF0ZWRdOworICAgIFtfcHJlc2VudGF0aW9uUG9w
b3ZlciBwcmVzZW50UG9wb3ZlckZyb21SZWN0OkNHUmVjdEludGVncmFsKENHUmVjdE1ha2UoX2lu
dGVyYWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9uUG9pbnQueSwgMSwgMSkpIGluVmlldzpfdmll
dy5nZXRBdXRvcmVsZWFzZWQoKSBwZXJtaXR0ZWRBcnJvd0RpcmVjdGlvbnM6VUlQb3BvdmVyQXJy
b3dEaXJlY3Rpb25BbnkgYW5pbWF0ZWQ6YW5pbWF0ZWRdOwogfQogCiAtICh2b2lkKV9wcmVzZW50
RnVsbHNjcmVlblZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopdmlld0NvbnRyb2xs
ZXIgYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQKIHsKICAgICBbc2VsZiBfZGlzbWlzc0Rpc3BsYXlB
bmltYXRlZDphbmltYXRlZF07CiAKLSAgICBfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBb
VUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9u
RnJvbVZpZXc6X3ZpZXddOworICAgIF9wcmVzZW50YXRpb25WaWV3Q29udHJvbGxlciA9IFtVSVZp
ZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRpb25Gcm9t
Vmlldzpfdmlldy5nZXRBdXRvcmVsZWFzZWQoKV07CiAgICAgW19wcmVzZW50YXRpb25WaWV3Q29u
dHJvbGxlciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6dmlld0NvbnRyb2xsZXIgYW5pbWF0ZWQ6YW5p
bWF0ZWQgY29tcGxldGlvbjpuaWxdOwogfQogCkBAIC01NDAsMjAgKzU5OSw2IEBAIEFMTE9XX0RF
UFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIFtzZWxmIF9jYW5jZWxdOwogfQogCi0j
cHJhZ21hIG1hcmsgLSBVSURvY3VtZW50TWVudURlbGVnYXRlIGltcGxlbWVudGF0aW9uCi0KLS0g
KHZvaWQpZG9jdW1lbnRNZW51OihVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyICopZG9jdW1l
bnRNZW51IGRpZFBpY2tEb2N1bWVudFBpY2tlcjooVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9s
bGVyICopZG9jdW1lbnRQaWNrZXIKLXsKLSAgICBkb2N1bWVudFBpY2tlci5kZWxlZ2F0ZSA9IHNl
bGY7Ci0gICAgW3NlbGYgX3ByZXNlbnRGdWxsc2NyZWVuVmlld0NvbnRyb2xsZXI6ZG9jdW1lbnRQ
aWNrZXIgYW5pbWF0ZWQ6WUVTXTsKLX0KLQotLSAodm9pZClkb2N1bWVudE1lbnVXYXNDYW5jZWxs
ZWQ6KFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgKilkb2N1bWVudE1lbnUKLXsKLSAgICBb
c2VsZiBfZGlzbWlzc0Rpc3BsYXlBbmltYXRlZDpZRVNdOwotICAgIFtzZWxmIF9jYW5jZWxdOwot
fQotCiAjcHJhZ21hIG1hcmsgLSBVSURvY3VtZW50UGlja2VyQ29udHJvbGxlckRlbGVnYXRlIGlt
cGxlbWVudGF0aW9uCiAKIHN0YXRpYyBOU1N0cmluZyAqZGlzcGxheVN0cmluZ0ZvckRvY3VtZW50
c0F0VVJMcyhOU0FycmF5PE5TVVJMICo+ICp1cmxzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392926</attachid>
            <date>2020-03-07 18:37:19 -0800</date>
            <delta_ts>2020-03-07 19:41:31 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208687-20200307183718.patch</filename>
            <type>text/plain</type>
            <size>19860</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTYyNWZkMGMxYWFiYTdi
ODcxMjRhZTIzODM3ODVhMDMzNWJlMzI4YS4uZmM5OTdlMTM5YjY1YjU2ZjIzNDRmOWFhNzlmYWNl
MTAzYmIzZjBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA3ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgVUlD
b250ZXh0TWVudSBmb3IgV0tGaWxlVXBsb2FkUGFuZWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODY4NworCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgTmV3IHN0cmluZywgbm8gdGVzdHMgbmVlZGVkLgorCisgICAg
ICAgICogZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKwogMjAyMC0wMy0wNiAgQW5kcmVz
IEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50YXRp
b24gb2YgQWNjZXNzaWJpbGl0eVN1cHBvcnQgQVhTSXNvbGF0ZWRUcmVlTW9kZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggNThlYTE5MzMyMzBmODVlYmE2YTBjNThhMTM4ZDM1MTY4ZTNlNTYzMS4uY2Q3NzdjMzczM2Rk
MzIyODU3NTAyYjY2YzZmODc3YWQ2OWYwY2Q5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAor
MjAyMC0wMy0wNyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIEFkb3B0IFVJQ29udGV4dE1lbnUgZm9yIFdLRmlsZVVwbG9hZFBhbmVsCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDg2ODcKKworICAgICAg
ICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIE1vdmUgZnJvbSB0aGUgZGVwcmlj
YXRlZCBVSURvY3VtZW50TWVudVZpZXdDb250cm9sbGVyIHRvIFVJQ29udGV4dE1lbnUuCisgICAg
ICAgIFVJIGNoYW5nZSwgbm90IGN1cnJlbnRseSB0ZXN0YWJsZS4KKworICAgICAgICAqIFBsYXRm
b3JtL3NwaS9pb3MvVUlLaXRTUEkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dL
RmlsZVVwbG9hZFBhbmVsLm1tOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBkZWFsbG9j
XSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIHByZXNlbnRXaXRoUGFyYW1ldGVyczpy
ZXN1bHRMaXN0ZW5lcjpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgZGlzbWlzc10p
OgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfYnJvd3NlRmlsZXNCdXR0b25MYWJlbF0p
OgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjb250ZXh0TWVudUludGVyYWN0aW9uOnBy
ZXZpZXdGb3JIaWdobGlnaHRpbmdNZW51V2l0aENvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICgt
W1dLRmlsZVVwbG9hZFBhbmVsIF9jb250ZXh0TWVudUludGVyYWN0aW9uOnN0eWxlRm9yTWVudVdp
dGhDb25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjb250ZXh0
TWVudUludGVyYWN0aW9uOmNvbmZpZ3VyYXRpb25Gb3JNZW51QXRMb2NhdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgY29udGV4dE1lbnVJbnRlcmFjdGlvbjp3aWxsRW5kRm9y
Q29uZmlndXJhdGlvbjphbmltYXRvcjpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwg
X3JlbW92ZUludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9pbml0
SW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX3Nob3dGaWxlUGlj
a2VyTWVudV0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfc2hvd0RvY3VtZW50UGlj
a2VyTWVudV0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfcHJlc2VudFBvcG92ZXJX
aXRoQ29udGVudFZpZXdDb250cm9sbGVyOmFuaW1hdGVkOl0pOgorICAgICAgICAoLVtXS0ZpbGVV
cGxvYWRQYW5lbCBfcHJlc2VudEZ1bGxzY3JlZW5WaWV3Q29udHJvbGxlcjphbmltYXRlZDpdKToK
KyAgICAgICAgKHBob3RvTGlicmFyeUljb24pOiBEZWxldGVkLgorICAgICAgICAoY2FtZXJhSWNv
bik6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGRvY3VtZW50TWVudTpk
aWRQaWNrRG9jdW1lbnRQaWNrZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRmlsZVVwbG9h
ZFBhbmVsIGRvY3VtZW50TWVudVdhc0NhbmNlbGxlZDpdKTogRGVsZXRlZC4KKwogMjAyMC0wMy0w
NiAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1w
bGVtZW50YXRpb24gb2YgQWNjZXNzaWJpbGl0eVN1cHBvcnQgQVhTSXNvbGF0ZWRUcmVlTW9kZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3Mg
Yi9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDc1NTIy
NWU2YmEzZGUzMTM4ZDM2NmYxNDdmZmY1Yjg0YTI4ZmFkOTYuLmIxMGIzZTA3ZTU0YjlmYjI4NDdh
MTFjYjcwOGYxMGMwZGQ0YjBiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9q
L0xvY2FsaXphYmxlLnN0cmluZ3MKKysrIGIvU291cmNlL1dlYkNvcmUvZW4ubHByb2ovTG9jYWxp
emFibGUuc3RyaW5ncwpAQCAtMTU0LDYgKzE1NCw5IEBACiAvKiBMYWJlbCBmb3IgdGhlIGJvb2sg
d2l0aCBBcHBsZSBQYXkgYnV0dG9uLiAqLwogIkJvb2sgd2l0aCBBcHBsZSBQYXkiID0gIkJvb2sg
d2l0aCBBcHBsZSBQYXkiOwogCisvKiBGaWxlIFVwbG9hZCBhbGVydCBzaGVldCBidXR0b24gc3Ry
aW5nIGZvciBjaG9vc2luZyBhbiBleGlzdGluZyBmaWxlIGZyb20gdGhlIGZpbGUgYnJvd2VyICov
CisiQnJvd3NlIChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiA9ICJCcm93c2UiOworCiAvKiBP
cHRpb24gaW4gc2VnbWVudGVkIGNvbnRyb2wgZm9yIGluc2VydGluZyBhIGJ1bGxldGVkIGxpc3Qg
aW4gdGV4dCBlZGl0aW5nICovCiAiQnVsbGV0ZWQgbGlzdCIgPSAiQnVsbGV0ZWQgbGlzdCI7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggNGE2NmU0Mzgx
Y2VkMTI2ZThmNjQwY2JmMDUwOTcwMGIyMDA4N2I1Zi4uYTk2ZDE5YjFlYzhkYjM5YzhiZDRhZGY4
ZGEwZGQwOGM5M2ZiMTUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
aW9zL1VJS2l0U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0
U1BJLmgKQEAgLTEwOTcsMTMgKzEwOTcsMjUgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdl
ciwgVUlXS0RvY3VtZW50UmVxdWVzdEZsYWdzKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ry
b25nKSBVSUltYWdlICppbWFnZTsKIEBlbmQKIAordHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIs
IF9VSUNvbnRleHRNZW51TGF5b3V0KSB7CisgICAgX1VJQ29udGV4dE1lbnVMYXlvdXRBY3Rpb25z
T25seSA9IDEsCisgICAgX1VJQ29udGV4dE1lbnVMYXlvdXRDb21wYWN0TWVudSA9IDMsCit9Owor
CiBAaW50ZXJmYWNlIF9VSUNvbnRleHRNZW51U3R5bGUgOiBOU09iamVjdCA8TlNDb3B5aW5nPgor
QHByb3BlcnR5IChub25hdG9taWMpIF9VSUNvbnRleHRNZW51TGF5b3V0IHByZWZlcnJlZExheW91
dDsKKysgKGluc3RhbmNldHlwZSlkZWZhdWx0U3R5bGU7CiBAZW5kCiAKICNpZiBVU0UoVUlDT05U
RVhUTUVOVSkKIEBpbnRlcmZhY2UgVUlUYXJnZXRlZFByZXZpZXcgKCkKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzdHJvbmcsIHNldHRlcj1fc2V0T3ZlcnJpZGVQb3NpdGlvblRyYWNraW5nVmlldzop
IFVJVmlldyAqb3ZlcnJpZGVQb3NpdGlvblRyYWNraW5nVmlldzsKIEBlbmQKKworQGludGVyZmFj
ZSBVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24gKCkKKy0gKHZvaWQpX3ByZXNlbnRNZW51QXRMb2Nh
dGlvbjooQ0dQb2ludClsb2NhdGlvbjsKK0BlbmQKKwogI2VuZGlmIC8vIFVTRShVSUNPTlRFWFRN
RU5VKQogCiAjaWYgSEFWRShMSU5LX1BSRVZJRVcpICYmIFVTRShVSUNPTlRFWFRNRU5VKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBh
bmVsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBh
bmVsLm1tCmluZGV4IDVkYjQ2NWZiMjMyMDhmNDE4MDY0MTMxNTZjZGYwNjVhMjQ1ZDlkYmIuLmZh
ZDU4ZTUxNTNjZjFlNWRkNGZmOWM4YmY2YzQ4ZjUzNWQwNjc4NjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0KQEAg
LTQ3LDYgKzQ3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KyNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmll
dy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNjcsMTggKzY4LDYgQEAgc3RhdGlj
IGJvb2wgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKE5TQXJyYXk8TlNTdHJpbmcgKj4g
KnR5cGVJZGVudGlmaWVycywKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNwcmFnbWEgbWFyayAt
IERvY3VtZW50IHBpY2tlciBpY29ucwotCi1zdGF0aWMgaW5saW5lIFVJSW1hZ2UgKnBob3RvTGli
cmFyeUljb24oKQotewotICAgIHJldHVybiBfVUlJbWFnZUdldFdlYktpdFBob3RvTGlicmFyeUlj
b24oKTsKLX0KLQotc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29uKCkKLXsKLSAgICBy
ZXR1cm4gX1VJSW1hZ2VHZXRXZWJLaXRUYWtlUGhvdG9PclZpZGVvSWNvbigpOwotfQotCiAjcHJh
Z21hIG1hcmsgLSBfV0tGaWxlVXBsb2FkSXRlbQogCiBAaW50ZXJmYWNlIF9XS0ZpbGVVcGxvYWRJ
dGVtIDogTlNPYmplY3QKQEAgLTE2MSwxMSArMTUwLDExIEBAIHN0YXRpYyBpbmxpbmUgVUlJbWFn
ZSAqY2FtZXJhSWNvbigpCiAKICNwcmFnbWEgbWFyayAtIFdLRmlsZVVwbG9hZFBhbmVsCiAKLUBp
bnRlcmZhY2UgV0tGaWxlVXBsb2FkUGFuZWwgKCkgPFVJUG9wb3ZlckNvbnRyb2xsZXJEZWxlZ2F0
ZSwgVUlOYXZpZ2F0aW9uQ29udHJvbGxlckRlbGVnYXRlLCBVSUltYWdlUGlja2VyQ29udHJvbGxl
ckRlbGVnYXRlLCBVSURvY3VtZW50UGlja2VyRGVsZWdhdGUsIFVJRG9jdW1lbnRNZW51RGVsZWdh
dGU+CitAaW50ZXJmYWNlIFdLRmlsZVVwbG9hZFBhbmVsICgpIDxVSVBvcG92ZXJDb250cm9sbGVy
RGVsZWdhdGUsIFVJTmF2aWdhdGlvbkNvbnRyb2xsZXJEZWxlZ2F0ZSwgVUlJbWFnZVBpY2tlckNv
bnRyb2xsZXJEZWxlZ2F0ZSwgVUlEb2N1bWVudFBpY2tlckRlbGVnYXRlLCBVSUNvbnRleHRNZW51
SW50ZXJhY3Rpb25EZWxlZ2F0ZT4KIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLRmlsZVVwbG9h
ZFBhbmVsIHsKLSAgICBXS0NvbnRlbnRWaWV3ICpfdmlldzsKKyAgICBXZWFrT2JqQ1B0cjxXS0Nv
bnRlbnRWaWV3PiBfdmlldzsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5PiBfbGlzdGVuZXI7CiAgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9taW1lVHlw
ZXM7CiAgICAgQ0dQb2ludCBfaW50ZXJhY3Rpb25Qb2ludDsKQEAgLTE3Niw3ICsxNjUsNyBAQCBz
dGF0aWMgaW5saW5lIFVJSW1hZ2UgKmNhbWVyYUljb24oKQogICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0JFR0lOCiAgICAgUmV0YWluUHRyPFVJUG9wb3ZlckNvbnRyb2xsZXI+IF9w
cmVzZW50YXRpb25Qb3BvdmVyOyAvLyBpUGFkIGZvciBhY3Rpb24gc2hlZXQgYW5kIFBob3RvIExp
YnJhcnkuCiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgUmV0YWlu
UHRyPFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXI+IF9kb2N1bWVudE1lbnVDb250cm9sbGVy
OworICAgIFJldGFpblB0cjxVSUNvbnRleHRNZW51SW50ZXJhY3Rpb24+IF9kb2N1bWVudENvbnRl
eHRNZW51SW50ZXJhY3Rpb247CiAgICAgUmV0YWluUHRyPFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29u
dHJvbGxlcj4gX2RvY3VtZW50UGlja2VyQ29udHJvbGxlcjsKICAgICBXZWJDb3JlOjpNZWRpYUNh
cHR1cmVUeXBlIF9tZWRpYUNhcHR1cmVUeXBlOwogfQpAQCAtMTkzLDggKzE4Miw4IEBAIHN0YXRp
YyBpbmxpbmUgVUlJbWFnZSAqY2FtZXJhSWNvbigpCiB7CiAgICAgW19pbWFnZVBpY2tlciBzZXRE
ZWxlZ2F0ZTpuaWxdOwogICAgIFtfcHJlc2VudGF0aW9uUG9wb3ZlciBzZXREZWxlZ2F0ZTpuaWxd
OwotICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtf
ZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyIHNldERlbGVnYXRlOm5pbF07CisgICAgW3NlbGYgcmVt
b3ZlQ29udGV4dE1lbnVJbnRlcmFjdGlvbl07CiAKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CkBA
IC0yNzgsNyArMjY3LDcgQEAgc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29uKCkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFtzZWxmIF9zaG93RG9jdW1lbnRQaWNrZXJNZW51
XTsKKyAgICBbc2VsZiBzaG93RG9jdW1lbnRQaWNrZXJNZW51XTsKIH0KIAogLSAodm9pZClkaXNt
aXNzCkBAIC0yODYsNyArMjc1LDcgQEAgc3RhdGljIGlubGluZSBVSUltYWdlICpjYW1lcmFJY29u
KCkKICAgICAvLyBEaXNtaXNzIGFueSB2aWV3IGNvbnRyb2xsZXIgdGhhdCBpcyBiZWluZyBwcmVz
ZW50ZWQuIFRoaXMgd29ya3MgZm9yIGFsbCB0eXBlcyBvZiB2aWV3IGNvbnRyb2xsZXJzLCBwb3Bv
dmVycywgZXRjLgogICAgIC8vIElmIHRoZXJlIGlzIGFueSBraW5kIG9mIHZpZXcgY29udHJvbGxl
ciBwcmVzZW50ZWQgb24gdGhpcyB2aWV3LCBpdCB3aWxsIGJlIHJlbW92ZWQuCiAgICAgCi0gICAg
W1tVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRp
b25Gcm9tVmlldzpfdmlld10gZGlzbWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6Tk8gY29tcGxl
dGlvbjpuaWxdOworICAgIFtbVUlWaWV3Q29udHJvbGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxs
U2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6X3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCldIGRpc21p
c3NWaWV3Q29udHJvbGxlckFuaW1hdGVkOk5PIGNvbXBsZXRpb246bmlsXTsKICAgICAKICAgICBb
X3ByZXNlbnRhdGlvblBvcG92ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBfcHJlc2VudGF0aW9u
UG9wb3ZlciA9IG5pbDsKQEAgLTMxOCwxMyArMzA3LDEzIEBAIHN0YXRpYyBpbmxpbmUgVUlJbWFn
ZSAqY2FtZXJhSWNvbigpCiAgICAgTlNNdXRhYmxlQXJyYXk8TlNTdHJpbmcgKj4gKmFjdGlvblRp
dGxlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07CiAKICAgICBOU0FycmF5ICptZWRpYVR5cGVz
ID0gVVRJc0Zvck1JTUVUeXBlcyhfbWltZVR5cGVzLmdldCgpKS5hbGxPYmplY3RzOwotICAgIEJP
T0wgY29udGFpbnNJbWFnZU1lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29u
dGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlSW1hZ2UpOwotICAgIEJP
T0wgY29udGFpbnNWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29u
dGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlTW92aWUpOwotICAgIGlm
IChjb250YWluc0ltYWdlTWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUpIHsKKyAg
ICBCT09MIGFsbG93c0ltYWdlTWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJyYXlD
b250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVJbWFnZSk7CisgICAg
Qk9PTCBhbGxvd3NWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29u
dGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlTW92aWUpOworICAgIGlm
IChhbGxvd3NJbWFnZU1lZGlhVHlwZSB8fCBhbGxvd3NWaWRlb01lZGlhVHlwZSkgewogICAgICAg
ICBbYWN0aW9uVGl0bGVzIGFkZE9iamVjdDpAIlBob3RvIExpYnJhcnkiXTsKLSAgICAgICAgaWYg
KGNvbnRhaW5zSW1hZ2VNZWRpYVR5cGUgJiYgY29udGFpbnNWaWRlb01lZGlhVHlwZSkKKyAgICAg
ICAgaWYgKGFsbG93c0ltYWdlTWVkaWFUeXBlICYmIGFsbG93c1ZpZGVvTWVkaWFUeXBlKQogICAg
ICAgICAgICAgW2FjdGlvblRpdGxlcyBhZGRPYmplY3Q6QCJUYWtlIFBob3RvIG9yIFZpZGVvIl07
Ci0gICAgICAgIGVsc2UgaWYgKGNvbnRhaW5zVmlkZW9NZWRpYVR5cGUpCisgICAgICAgIGVsc2Ug
aWYgKGFsbG93c1ZpZGVvTWVkaWFUeXBlKQogICAgICAgICAgICAgW2FjdGlvblRpdGxlcyBhZGRP
YmplY3Q6QCJUYWtlIFZpZGVvIl07CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIFthY3Rpb25U
aXRsZXMgYWRkT2JqZWN0OkAiVGFrZSBQaG90byJdOwpAQCAtMzg2LDYgKzM3NSwxMSBAQCBzdGF0
aWMgTlNTZXQ8TlNTdHJpbmcgKj4gKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAqbWltZVR5cGVz
KQogCiAjcHJhZ21hIG1hcmsgLSBTb3VyY2Ugc2VsZWN0aW9uIG1lbnUKIAorLSAoTlNTdHJpbmcg
KilfYnJvd3NlRmlsZXNCdXR0b25MYWJlbAoreworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tF
WSgiQnJvd3NlIiwgIkJyb3dzZSAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJGaWxlIFVw
bG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZvciBjaG9vc2luZyBhbiBleGlzdGluZyBm
aWxlIGZyb20gdGhlIGZpbGUgYnJvd2VyIik7Cit9CisKIC0gKE5TU3RyaW5nICopX3Bob3RvTGli
cmFyeUJ1dHRvbkxhYmVsCiB7CiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJQaG90byBM
aWJyYXJ5IiwgIlBob3RvIExpYnJhcnkgKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiLCAiRmls
ZSBVcGxvYWQgYWxlcnQgc2hlZXQgYnV0dG9uIHN0cmluZyBmb3IgY2hvb3NpbmcgYW4gZXhpc3Rp
bmcgbWVkaWEgaXRlbSBmcm9tIHRoZSBQaG90byBMaWJyYXJ5Iik7CkBAIC00MDMsNDggKzM5Nywx
MTMgQEAgc3RhdGljIE5TU2V0PE5TU3RyaW5nICo+ICpVVElzRm9yTUlNRVR5cGVzKE5TQXJyYXkg
Km1pbWVUeXBlcykKICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlRha2UgUGhvdG8iLCAi
VGFrZSBQaG90byAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJGaWxlIFVwbG9hZCBhbGVy
dCBzaGVldCBjYW1lcmEgYnV0dG9uIHN0cmluZyBmb3IgdGFraW5nIG9ubHkgcGhvdG9zIik7CiB9
CiAKLS0gKHZvaWQpX3Nob3dEb2N1bWVudFBpY2tlck1lbnUKKy0gKFVJVGFyZ2V0ZWRQcmV2aWV3
ICopY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50
ZXJhY3Rpb24gcHJldmlld0ZvckhpZ2hsaWdodGluZ01lbnVXaXRoQ29uZmlndXJhdGlvbjooVUlD
b250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9uCiB7Ci0gICAgTlNBcnJheSAq
bWVkaWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0
czsKKyAgICBSZXRhaW5QdHI8VUlQcmV2aWV3UGFyYW1ldGVycz4gdW51c2VkUHJldmlld1BhcmFt
ZXRlcnMgPSBhZG9wdE5TKFtbVUlQcmV2aWV3UGFyYW1ldGVycyBhbGxvY10gaW5pdF0pOworICAg
IFJldGFpblB0cjxVSVByZXZpZXdUYXJnZXQ+IHByZXZpZXdUYXJnZXQgPSBhZG9wdE5TKFtbVUlQ
cmV2aWV3VGFyZ2V0IGFsbG9jXSBpbml0V2l0aENvbnRhaW5lcjpfdmlldy5nZXRBdXRvcmVsZWFz
ZWQoKSBjZW50ZXI6Q0dQb2ludE1ha2UoX2ludGVyYWN0aW9uUG9pbnQueCwgX2ludGVyYWN0aW9u
UG9pbnQueSldKTsKKyAgICBSZXRhaW5QdHI8VUlUYXJnZXRlZFByZXZpZXc+IHByZXZpZXcgPSBh
ZG9wdE5TKFtbVUlUYXJnZXRlZFByZXZpZXcgYWxsb2NdIGluaXRXaXRoVmlldzpfdmlldy5nZXRB
dXRvcmVsZWFzZWQoKSBwYXJhbWV0ZXJzOnVudXNlZFByZXZpZXdQYXJhbWV0ZXJzLmdldCgpIHRh
cmdldDpwcmV2aWV3VGFyZ2V0LmdldCgpXSk7CiAKLSAgICBCT09MIGNvbnRhaW5zSW1hZ2VNZWRp
YVR5cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1z
VG8obWVkaWFUeXBlcywga1VUVHlwZUltYWdlKTsKLSAgICBCT09MIGNvbnRhaW5zVmlkZW9NZWRp
YVR5cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1z
VG8obWVkaWFUeXBlcywga1VUVHlwZU1vdmllKTsKKyAgICByZXR1cm4gcHJldmlldy5hdXRvcmVs
ZWFzZSgpOworfQogCi0jaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgLy8gRklYTUUgNDk5
NjE1ODk6IFN1cHBvcnQgcGlja2luZyBtZWRpYSB3aXRoIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVy
Ci0gICAgQk9PTCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBOTzsK
LSNlbHNlCi0gICAgQk9PTCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIg
PSBjb250YWluc0ltYWdlTWVkaWFUeXBlIHx8IGNvbnRhaW5zVmlkZW9NZWRpYVR5cGU7Ci0jZW5k
aWYKKy0gKF9VSUNvbnRleHRNZW51U3R5bGUgKilfY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlD
b250ZXh0TWVudUludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gc3R5bGVGb3JNZW51V2l0aENvbmZp
Z3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgorewor
ICAgIF9VSUNvbnRleHRNZW51U3R5bGUgKnN0eWxlID0gW19VSUNvbnRleHRNZW51U3R5bGUgZGVm
YXVsdFN0eWxlXTsKKyAgICBzdHlsZS5wcmVmZXJyZWRMYXlvdXQgPSBfVUlDb250ZXh0TWVudUxh
eW91dENvbXBhY3RNZW51OworICAgIHJldHVybiBzdHlsZTsKK30KIAotICAgIE5TQXJyYXkgKmRv
Y3VtZW50VHlwZXMgPSBtZWRpYVR5cGVzLmNvdW50ID8gbWVkaWFUeXBlcyA6IEBbKF9fYnJpZGdl
IE5TU3RyaW5nICopa1VUVHlwZUl0ZW1dOwotICAgIGlmIChzaG91bGRQcmVzZW50RG9jdW1lbnRN
ZW51Vmlld0NvbnRyb2xsZXIpIHsKLSAgICAgICAgLy8gRklYTUUgNDk5Nzk0NDI6IFVJRG9jdW1l
bnRNZW51Vmlld0NvbnRyb2xsZXIgaXMgZGVwcmVjYXRlZC4gVXNlIFVJRG9jdW1lbnRQaWNrZXJW
aWV3Q29udHJvbGxlciBpbnN0ZWFkIHRvIHN1cHBvcnQgbXVsdGlwbGUgZmlsZSBzZWxlY3Rpb24u
Ci0gICAgICAgIF9kb2N1bWVudE1lbnVDb250cm9sbGVyID0gYWRvcHROUyhbW1VJRG9jdW1lbnRN
ZW51Vmlld0NvbnRyb2xsZXIgYWxsb2NdIF9pbml0SWdub3JpbmdBcHBsaWNhdGlvbkVudGl0bGVt
ZW50Rm9ySW1wb3J0T2ZUeXBlczpkb2N1bWVudFR5cGVzXSk7Ci0gICAgICAgIFtfZG9jdW1lbnRN
ZW51Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpzZWxmXTsKKy0gKFVJQ29udGV4dE1lbnVDb25maWd1
cmF0aW9uICopY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9u
ICopaW50ZXJhY3Rpb24gY29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0aW9uOihDR1BvaW50KWxv
Y2F0aW9uIHsKKworICAgIFVJQ29udGV4dE1lbnVBY3Rpb25Qcm92aWRlciBhY3Rpb25NZW51UHJv
dmlkZXIgPSBbc2VsZiwgd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0ZpbGVVcGxvYWRQYW5lbD4o
c2VsZildIChOU0FycmF5PFVJTWVudUVsZW1lbnQgKj4gKikgLT4gVUlNZW51ICogeworICAgICAg
ICBOU0FycmF5ICphY3Rpb25zOworICAgICAgICBOU0FycmF5ICptZWRpYVR5cGVzID0gVVRJc0Zv
ck1JTUVUeXBlcyhfbWltZVR5cGVzLmdldCgpKS5hbGxPYmplY3RzOworCisgICAgICAgIEJPT0wg
YWxsb3dzSW1hZ2VNZWRpYVR5cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5z
VVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywga1VUVHlwZUltYWdlKTsKKyAgICAgICAgQk9P
TCBhbGxvd3NWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFp
bnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlTW92aWUpOworICAgICAgICBh
dXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKKyAgICAgICAgCisgICAgICAgIGlmICgh
c3Ryb25nU2VsZikKKyAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgICAgIAorICAgICAgICBV
SUFjdGlvbiAqYnJvd3NlQWN0aW9uID0gW1VJQWN0aW9uIGFjdGlvbldpdGhUaXRsZTpbc3Ryb25n
U2VsZiBfYnJvd3NlRmlsZXNCdXR0b25MYWJlbF0gaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVtSW1hZ2VO
YW1lZDpAImVsbGlwc2lzIl0gaWRlbnRpZmllcjpAImJyb3dzZSIgaGFuZGxlcjpeKF9fa2luZG9m
IFVJQWN0aW9uICphY3Rpb24pIHsKKyAgICAgICAgICAgIFtzZWxmIHNob3dGaWxlUGlja2VyTWVu
dV07CisgICAgICAgIH1dOwogCi0gICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBhZGRP
cHRpb25XaXRoVGl0bGU6W3NlbGYgX3Bob3RvTGlicmFyeUJ1dHRvbkxhYmVsXSBpbWFnZTpwaG90
b0xpYnJhcnlJY29uKCkgb3JkZXI6VUlEb2N1bWVudE1lbnVPcmRlckZpcnN0IGhhbmRsZXI6XnsK
KyAgICAgICAgVUlBY3Rpb24gKnBob3RvQWN0aW9uID0gW1VJQWN0aW9uIGFjdGlvbldpdGhUaXRs
ZTpbc3Ryb25nU2VsZiBfcGhvdG9MaWJyYXJ5QnV0dG9uTGFiZWxdIGltYWdlOltVSUltYWdlIHN5
c3RlbUltYWdlTmFtZWQ6QCJyZWN0YW5nbGUub24ucmVjdGFuZ2xlIl0gaWRlbnRpZmllcjpAInBo
b3RvIiBoYW5kbGVyOl4oX19raW5kb2YgVUlBY3Rpb24gKmFjdGlvbikgewogICAgICAgICAgICAg
W3NlbGYgX3Nob3dQaG90b1BpY2tlcldpdGhTb3VyY2VUeXBlOlVJSW1hZ2VQaWNrZXJDb250cm9s
bGVyU291cmNlVHlwZVBob3RvTGlicmFyeV07CiAgICAgICAgIH1dOwogCiAgICAgICAgIGlmIChb
VUlJbWFnZVBpY2tlckNvbnRyb2xsZXIgaXNTb3VyY2VUeXBlQXZhaWxhYmxlOlVJSW1hZ2VQaWNr
ZXJDb250cm9sbGVyU291cmNlVHlwZUNhbWVyYV0pIHsKLSAgICAgICAgICAgIE5TU3RyaW5nICpj
YW1lcmFTdHJpbmcgPSBbc2VsZiBfY2FtZXJhQnV0dG9uTGFiZWxBbGxvd2luZ1Bob3RvOmNvbnRh
aW5zSW1hZ2VNZWRpYVR5cGUgYWxsb3dpbmdWaWRlbzpjb250YWluc1ZpZGVvTWVkaWFUeXBlXTsK
LSAgICAgICAgICAgIFtfZG9jdW1lbnRNZW51Q29udHJvbGxlciBhZGRPcHRpb25XaXRoVGl0bGU6
Y2FtZXJhU3RyaW5nIGltYWdlOmNhbWVyYUljb24oKSBvcmRlcjpVSURvY3VtZW50TWVudU9yZGVy
Rmlyc3QgaGFuZGxlcjpeeworICAgICAgICAgICAgTlNTdHJpbmcgKmNhbWVyYVN0cmluZyA9IFtz
dHJvbmdTZWxmIF9jYW1lcmFCdXR0b25MYWJlbEFsbG93aW5nUGhvdG86YWxsb3dzSW1hZ2VNZWRp
YVR5cGUgYWxsb3dpbmdWaWRlbzphbGxvd3NWaWRlb01lZGlhVHlwZV07CisgICAgICAgICAgICBV
SUFjdGlvbiAqY2FtZXJhQWN0aW9uID0gW1VJQWN0aW9uIGFjdGlvbldpdGhUaXRsZTpjYW1lcmFT
dHJpbmcgaW1hZ2U6W1VJSW1hZ2Ugc3lzdGVtSW1hZ2VOYW1lZDpAImNhbWVyYS5maWxsIl0gaWRl
bnRpZmllcjpAImNhbWVyYSIgaGFuZGxlcjpeKF9fa2luZG9mIFVJQWN0aW9uICphY3Rpb24pIHsK
ICAgICAgICAgICAgICAgICBfdXNpbmdDYW1lcmEgPSBZRVM7CiAgICAgICAgICAgICAgICAgW3Nl
bGYgX3Nob3dQaG90b1BpY2tlcldpdGhTb3VyY2VUeXBlOlVJSW1hZ2VQaWNrZXJDb250cm9sbGVy
U291cmNlVHlwZUNhbWVyYV07CiAgICAgICAgICAgICB9XTsKLSAgICAgICAgfQorICAgICAgICAg
ICAgYWN0aW9ucyA9IEBbcGhvdG9BY3Rpb24sIGNhbWVyYUFjdGlvbiwgYnJvd3NlQWN0aW9uXTsK
KyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBhY3Rpb25zID0gQFtwaG90b0FjdGlvbiwgYnJv
d3NlQWN0aW9uXTsKKworICAgICAgICByZXR1cm4gW1VJTWVudSBtZW51V2l0aFRpdGxlOkAiIiBj
aGlsZHJlbjphY3Rpb25zXTsKKyAgICB9OworICAgIAorICAgIHJldHVybiBbVUlDb250ZXh0TWVu
dUNvbmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbldpdGhJZGVudGlmaWVyOm5pbCBwcmV2aWV3UHJv
dmlkZXI6bmlsIGFjdGlvblByb3ZpZGVyOmFjdGlvbk1lbnVQcm92aWRlcl07Cit9CisKKy0gKHZv
aWQpY29udGV4dE1lbnVJbnRlcmFjdGlvbjooVUlDb250ZXh0TWVudUludGVyYWN0aW9uICopaW50
ZXJhY3Rpb24gd2lsbEVuZEZvckNvbmZpZ3VyYXRpb246KFVJQ29udGV4dE1lbnVDb25maWd1cmF0
aW9uICopY29uZmlndXJhdGlvbiBhbmltYXRvcjooaWQ8VUlDb250ZXh0TWVudUludGVyYWN0aW9u
QW5pbWF0aW5nPilhbmltYXRvcgoreworICAgIFthbmltYXRvciBhZGRDb21wbGV0aW9uOl57Cisg
ICAgICAgIFtzZWxmIHJlbW92ZUNvbnRleHRNZW51SW50ZXJhY3Rpb25dOworICAgICAgICBbc2Vs
ZiBfY2FuY2VsXTsKKyAgICB9XTsKK30KIAotICAgICAgICBbc2VsZiBfcHJlc2VudE1lbnVPcHRp
b25Gb3JDdXJyZW50SW50ZXJmYWNlSWRpb206X2RvY3VtZW50TWVudUNvbnRyb2xsZXIuZ2V0KCld
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEltYWdlIGFuZCBWaWRlbyB0eXBlcyBhcmUgbm90
IGFjY2VwdGVkIHNvIGJ5cGFzcyB0aGUgbWVudSBhbmQgb3BlbiB0aGUgZmlsZSBwaWNrZXIgZGly
ZWN0bHkuCi0gICAgICAgIF9kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbVUlE
b2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aERvY3VtZW50VHlwZXM6
ZG9jdW1lbnRUeXBlcyBpbk1vZGU6VUlEb2N1bWVudFBpY2tlck1vZGVJbXBvcnRdKTsKLSAgICAg
ICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0QWxsb3dzTXVsdGlwbGVTZWxlY3Rpb246
X2FsbG93TXVsdGlwbGVGaWxlc107Ci0gICAgICAgIFtfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVy
IHNldERlbGVnYXRlOnNlbGZdOwotICAgICAgICBbc2VsZiBfcHJlc2VudEZ1bGxzY3JlZW5WaWV3
Q29udHJvbGxlcjpfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFU107
CistICh2b2lkKXJlbW92ZUNvbnRleHRNZW51SW50ZXJhY3Rpb24KK3sKKyAgICBpZiAoX2RvY3Vt
ZW50Q29udGV4dE1lbnVJbnRlcmFjdGlvbikgeworICAgICAgICBbX3ZpZXcgcmVtb3ZlSW50ZXJh
Y3Rpb246X2RvY3VtZW50Q29udGV4dE1lbnVJbnRlcmFjdGlvbi5nZXQoKV07CisgICAgICAgIF9k
b2N1bWVudENvbnRleHRNZW51SW50ZXJhY3Rpb24gPSBuaWw7CiAgICAgfQorfQogCi0gICAgLy8g
Q2xlYXIgb3V0IHRoZSB2aWV3IGNvbnRyb2xsZXIgd2UganVzdCBwcmVzZW50ZWQuIERvbid0IHNh
dmUgYSByZWZlcmVuY2UgdG8gdGhlIFVJRG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgLyBVSURv
Y3VtZW50UGlja2VyVmlld0NvbnRyb2xsZXIgYXMgaXQgaXMgc2VsZiBkaXNtaXNzaW5nLgorLSAo
dm9pZCllbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9uCit7CisgICAgaWYgKCFfZG9jdW1lbnRD
b250ZXh0TWVudUludGVyYWN0aW9uKSB7CisgICAgICAgIF9kb2N1bWVudENvbnRleHRNZW51SW50
ZXJhY3Rpb24gPSBhZG9wdE5TKFtbVUlDb250ZXh0TWVudUludGVyYWN0aW9uIGFsbG9jXSBpbml0
V2l0aERlbGVnYXRlOnNlbGZdKTsKKyAgICAgICAgW192aWV3IGFkZEludGVyYWN0aW9uOl9kb2N1
bWVudENvbnRleHRNZW51SW50ZXJhY3Rpb24uZ2V0KCldOworICAgIH0KK30KKworLSAodm9pZClz
aG93RmlsZVBpY2tlck1lbnUKK3sKKyAgICBOU0FycmF5ICptZWRpYVR5cGVzID0gVVRJc0Zvck1J
TUVUeXBlcyhfbWltZVR5cGVzLmdldCgpKS5hbGxPYmplY3RzOworICAgIE5TQXJyYXkgKmRvY3Vt
ZW50VHlwZXMgPSBtZWRpYVR5cGVzLmNvdW50ID8gbWVkaWFUeXBlcyA6IEBbKF9fYnJpZGdlIE5T
U3RyaW5nICopa1VUVHlwZUl0ZW1dOworICAgIAorICAgIF9kb2N1bWVudFBpY2tlckNvbnRyb2xs
ZXIgPSBhZG9wdE5TKFtbVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFsbG9jXSBpbml0
V2l0aERvY3VtZW50VHlwZXM6ZG9jdW1lbnRUeXBlcyBpbk1vZGU6VUlEb2N1bWVudFBpY2tlck1v
ZGVJbXBvcnRdKTsKKyAgICBbX2RvY3VtZW50UGlja2VyQ29udHJvbGxlciBzZXRBbGxvd3NNdWx0
aXBsZVNlbGVjdGlvbjpfYWxsb3dNdWx0aXBsZUZpbGVzXTsKKyAgICBbX2RvY3VtZW50UGlja2Vy
Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbc2VsZiBfcHJlc2VudEZ1bGxzY3Jl
ZW5WaWV3Q29udHJvbGxlcjpfZG9jdW1lbnRQaWNrZXJDb250cm9sbGVyLmdldCgpIGFuaW1hdGVk
OllFU107Cit9CisKKy0gKHZvaWQpc2hvd0RvY3VtZW50UGlja2VyTWVudQoreworICAgIE5TQXJy
YXkgKm1lZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0KCkpLmFsbE9i
amVjdHM7CisgICAgCisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgLy8gRklYTUUgNDk5
NjE1ODk6IFN1cHBvcnQgcGlja2luZyBtZWRpYSB3aXRoIFVJSW1hZ2VQaWNrZXJDb250cm9sbGVy
CisgICAgQk9PTCBzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xsZXIgPSBOTzsK
KyNlbHNlCisgICAgQk9PTCBhbGxvd3NJbWFnZU1lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50
IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlSW1h
Z2UpOworICAgIEJPT0wgYWxsb3dzVmlkZW9NZWRpYVR5cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8
fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywga1VUVHlwZU1vdmll
KTsKKyAgICBCT09MIHNob3VsZFByZXNlbnREb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlciA9IGFs
bG93c0ltYWdlTWVkaWFUeXBlIHx8IGFsbG93c1ZpZGVvTWVkaWFUeXBlOworI2VuZGlmCisgICAg
aWYgKHNob3VsZFByZXNlbnREb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcikgeworICAgICAgICBb
c2VsZiBlbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKKyAgICAgICAgW19kb2N1bWVudENv
bnRleHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2NhdGlvbjpDR1BvaW50TWFrZShf
aW50ZXJhY3Rpb25Qb2ludC54LCBfaW50ZXJhY3Rpb25Qb2ludC55KV07CisgICAgfSBlbHNlIC8v
IEltYWdlIGFuZCBWaWRlbyB0eXBlcyBhcmUgbm90IGFjY2VwdGVkIHNvIGJ5cGFzcyB0aGUgbWVu
dSBhbmQgb3BlbiB0aGUgZmlsZSBwaWNrZXIgZGlyZWN0bHkuCisgICAgICAgIFtzZWxmIHNob3dG
aWxlUGlja2VyTWVudV07CisgICAgCisgICAgLy8gQ2xlYXIgb3V0IHRoZSB2aWV3IGNvbnRyb2xs
ZXIgd2UganVzdCBwcmVzZW50ZWQuIERvbid0IHNhdmUgYSByZWZlcmVuY2UgdG8gdGhlIFVJRG9j
dW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBhcyBpdCBpcyBzZWxmIGRpc21pc3NpbmcuCiAgICAg
X3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyID0gbmlsOwogfQogCkBAIC01MjAsMTQgKzU3OSwx
NCBAQCBzdGF0aWMgTlNTZXQ8TlNTdHJpbmcgKj4gKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAq
bWltZVR5cGVzKQogICAgIF9wcmVzZW50YXRpb25Qb3BvdmVyID0gYWRvcHROUyhbW1VJUG9wb3Zl
ckNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoQ29udGVudFZpZXdDb250cm9sbGVyOmNvbnRlbnRW
aWV3Q29udHJvbGxlcl0pOwogICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIFtfcHJlc2VudGF0aW9uUG9wb3ZlciBzZXREZWxlZ2F0ZTpzZWxmXTsKLSAgICBbX3ByZXNl
bnRhdGlvblBvcG92ZXIgcHJlc2VudFBvcG92ZXJGcm9tUmVjdDpDR1JlY3RJbnRlZ3JhbChDR1Jl
Y3RNYWtlKF9pbnRlcmFjdGlvblBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnksIDEsIDEpKSBp
blZpZXc6X3ZpZXcgcGVybWl0dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93RGlyZWN0
aW9uQW55IGFuaW1hdGVkOmFuaW1hdGVkXTsKKyAgICBbX3ByZXNlbnRhdGlvblBvcG92ZXIgcHJl
c2VudFBvcG92ZXJGcm9tUmVjdDpDR1JlY3RJbnRlZ3JhbChDR1JlY3RNYWtlKF9pbnRlcmFjdGlv
blBvaW50LngsIF9pbnRlcmFjdGlvblBvaW50LnksIDEsIDEpKSBpblZpZXc6X3ZpZXcuZ2V0QXV0
b3JlbGVhc2VkKCkgcGVybWl0dGVkQXJyb3dEaXJlY3Rpb25zOlVJUG9wb3ZlckFycm93RGlyZWN0
aW9uQW55IGFuaW1hdGVkOmFuaW1hdGVkXTsKIH0KIAogLSAodm9pZClfcHJlc2VudEZ1bGxzY3Jl
ZW5WaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXZpZXdDb250cm9sbGVyIGFuaW1h
dGVkOihCT09MKWFuaW1hdGVkCiB7CiAgICAgW3NlbGYgX2Rpc21pc3NEaXNwbGF5QW5pbWF0ZWQ6
YW5pbWF0ZWRdOwogCi0gICAgX3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyID0gW1VJVmlld0Nv
bnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRhdGlvbkZyb21WaWV3
Ol92aWV3XTsKKyAgICBfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBbVUlWaWV3Q29udHJv
bGxlciBfdmlld0NvbnRyb2xsZXJGb3JGdWxsU2NyZWVuUHJlc2VudGF0aW9uRnJvbVZpZXc6X3Zp
ZXcuZ2V0QXV0b3JlbGVhc2VkKCldOwogICAgIFtfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIg
cHJlc2VudFZpZXdDb250cm9sbGVyOnZpZXdDb250cm9sbGVyIGFuaW1hdGVkOmFuaW1hdGVkIGNv
bXBsZXRpb246bmlsXTsKIH0KIApAQCAtNTQwLDIwICs1OTksNiBAQCBBTExPV19ERVBSRUNBVEVE
X0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBbc2VsZiBfY2FuY2VsXTsKIH0KIAotI3ByYWdtYSBt
YXJrIC0gVUlEb2N1bWVudE1lbnVEZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbgotCi0tICh2b2lkKWRv
Y3VtZW50TWVudTooVUlEb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlciAqKWRvY3VtZW50TWVudSBk
aWRQaWNrRG9jdW1lbnRQaWNrZXI6KFVJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciAqKWRv
Y3VtZW50UGlja2VyCi17Ci0gICAgZG9jdW1lbnRQaWNrZXIuZGVsZWdhdGUgPSBzZWxmOwotICAg
IFtzZWxmIF9wcmVzZW50RnVsbHNjcmVlblZpZXdDb250cm9sbGVyOmRvY3VtZW50UGlja2VyIGFu
aW1hdGVkOllFU107Ci19Ci0KLS0gKHZvaWQpZG9jdW1lbnRNZW51V2FzQ2FuY2VsbGVkOihVSURv
Y3VtZW50TWVudVZpZXdDb250cm9sbGVyICopZG9jdW1lbnRNZW51Ci17Ci0gICAgW3NlbGYgX2Rp
c21pc3NEaXNwbGF5QW5pbWF0ZWQ6WUVTXTsKLSAgICBbc2VsZiBfY2FuY2VsXTsKLX0KLQogI3By
YWdtYSBtYXJrIC0gVUlEb2N1bWVudFBpY2tlckNvbnRyb2xsZXJEZWxlZ2F0ZSBpbXBsZW1lbnRh
dGlvbgogCiBzdGF0aWMgTlNTdHJpbmcgKmRpc3BsYXlTdHJpbmdGb3JEb2N1bWVudHNBdFVSTHMo
TlNBcnJheTxOU1VSTCAqPiAqdXJscykK
</data>

          </attachment>
      

    </bug>

</bugzilla>