<?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>227392</bug_id>
          
          <creation_ts>2021-06-25 03:04:28 -0700</creation_ts>
          <short_desc>[Model] [iOS] Add support for rendering model resources</short_desc>
          <delta_ts>2021-06-27 01:56:04 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772607</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-25 03:04:28 -0700</bug_when>
    <thetext>[Model] [iOS] Add support for rendering model resources</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772609</commentid>
    <comment_count>1</comment_count>
      <attachid>432252</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-25 03:12:31 -0700</bug_when>
    <thetext>Created attachment 432252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772611</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-25 03:23:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/79770136&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772616</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-25 03:53:08 -0700</bug_when>
    <thetext>I wonder if we should add the ability to write to a file on the Model class, which will allow us to write the file for the macOS code without any new code. On macOS, we will write the file in the WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772742</commentid>
    <comment_count>4</comment_count>
      <attachid>432252</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-25 12:38:15 -0700</bug_when>
    <thetext>Comment on attachment 432252
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Ensure the achor point is set correctly for model content layers, otherwise the preview layer shows

&quot;anchor&quot;

&gt; Source/WebKit/UIProcess/ios/WKModelView.h:3
&gt; +/*
&gt; + * Copyright (C) 2021 Apple Inc. All rights reserved.
&gt; + */

This is not the right copyright header

&gt; Source/WebKit/UIProcess/ios/WKModelView.mm:3
&gt; +/*
&gt; + * Copyright (C) 2021 Apple Inc. All rights reserved.
&gt; + */

Ditto

&gt; Source/WebKit/UIProcess/ios/WKModelView.mm:56
&gt; +    _preview = adoptNS([allocASVInlinePreviewInstance() initWithFrame:self.bounds]);

Do you need to propagate bounds changes on this layer downwards to the ASVInlinePreview?

&gt; Source/WebKit/UIProcess/ios/WKModelView.mm:61
&gt; +    [_preview setupRemoteConnectionWithCompletionHandler:^(NSError * _Nullable contextError) {

Get all these nullables out of this implementation file (because of infectious nullability)

&gt; Source/WebKit/UIProcess/ios/WKModelView.mm:100
&gt; +    _file = FileSystem::openFile(filePath, FileSystem::FileOpenMode::Write);

Definitely need a fixme about this going away here

&gt; Source/WebKit/UIProcess/ios/WKModelView.mm:118
&gt; +    _bounds = bounds;

_bounds is maybe &quot;_previewBounds&quot; or &quot;_lastBounds&quot; or something? Since this is a UIView, it&apos;s a bit weird to have _bounds that isn&apos;t equal to self.bounds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772747</commentid>
    <comment_count>5</comment_count>
      <attachid>432252</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-25 12:56:10 -0700</bug_when>
    <thetext>Comment on attachment 432252
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKModelView.mm:69
&gt; +                LOG(ModelElement, &quot;Unable to load file, error: %s&quot;, [loadError localizedDescription]);

As smfr mentioned, this is not the right format string for an NSString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772879</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-26 08:03:06 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #4)
&gt; Comment on attachment 432252 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432252&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Ensure the achor point is set correctly for model content layers, otherwise the preview layer shows
&gt; 
&gt; &quot;anchor&quot;

Will fix in new patch.

&gt; &gt; Source/WebKit/UIProcess/ios/WKModelView.h:3
&gt; &gt; +/*
&gt; &gt; + * Copyright (C) 2021 Apple Inc. All rights reserved.
&gt; &gt; + */
&gt; 
&gt; This is not the right copyright header

Will fix in new patch.

&gt; &gt; Source/WebKit/UIProcess/ios/WKModelView.mm:3
&gt; &gt; +/*
&gt; &gt; + * Copyright (C) 2021 Apple Inc. All rights reserved.
&gt; &gt; + */
&gt; 
&gt; Ditto
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKModelView.mm:56
&gt; &gt; +    _preview = adoptNS([allocASVInlinePreviewInstance() initWithFrame:self.bounds]);
&gt; 
&gt; Do you need to propagate bounds changes on this layer downwards to the
&gt; ASVInlinePreview?

Oops, forgot the layoutSubviews override from my main branch! Will add a new patch that you can review again just to check it&apos;s good.

&gt; &gt; Source/WebKit/UIProcess/ios/WKModelView.mm:61
&gt; &gt; +    [_preview setupRemoteConnectionWithCompletionHandler:^(NSError * _Nullable contextError) {
&gt; 
&gt; Get all these nullables out of this implementation file (because of
&gt; infectious nullability)

Will fix in new patch.

&gt; &gt; Source/WebKit/UIProcess/ios/WKModelView.mm:100
&gt; &gt; +    _file = FileSystem::openFile(filePath, FileSystem::FileOpenMode::Write);
&gt; 
&gt; Definitely need a fixme about this going away here
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKModelView.mm:118
&gt; &gt; +    _bounds = bounds;
&gt; 
&gt; _bounds is maybe &quot;_previewBounds&quot; or &quot;_lastBounds&quot; or something? Since this
&gt; is a UIView, it&apos;s a bit weird to have _bounds that isn&apos;t equal to self.bounds

Changing to _lastBounds in new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772880</commentid>
    <comment_count>7</comment_count>
      <attachid>432329</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-26 08:05:26 -0700</bug_when>
    <thetext>Created attachment 432329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772898</commentid>
    <comment_count>8</comment_count>
      <attachid>432329</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-26 15:24:31 -0700</bug_when>
    <thetext>Comment on attachment 432329
Patch

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

&gt; Source/WTF/ChangeLog:11
&gt; +        12 SDKs, but ultimately we will only use the iOS version check.

12?

&gt; Source/WebKit/UIProcess/ios/WKModelView.mm:81
&gt; +    [_preview setupRemoteConnectionWithCompletionHandler:^(NSError * _Nullable contextError) {

Your infectious nullables are still here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772899</commentid>
    <comment_count>9</comment_count>
      <attachid>432329</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-06-26 15:26:01 -0700</bug_when>
    <thetext>Comment on attachment 432329
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKModelView.mm:124
&gt; +    auto byteCount = static_cast&lt;std::size_t&gt;(FileSystem::writeToFile(file, model.data()-&gt;data(), model.data()-&gt;size()));

Nothing is cleaning up the file? Maybe because this is intended to go away?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772918</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-27 00:39:45 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #9)
&gt; Comment on attachment 432329 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432329&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKModelView.mm:124
&gt; &gt; +    auto byteCount = static_cast&lt;std::size_t&gt;(FileSystem::writeToFile(file, model.data()-&gt;data(), model.data()-&gt;size()));
&gt; 
&gt; Nothing is cleaning up the file? Maybe because this is intended to go away?

Yes, it&apos;s written to a temporary directory, and we don&apos;t intend to support this approach in the long run. Writing to the file system is only viable while we experiment with rendering 3D models using the &lt;model&gt; element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772920</commentid>
    <comment_count>11</comment_count>
      <attachid>432348</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-06-27 00:59:16 -0700</bug_when>
    <thetext>Created attachment 432348
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772923</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-27 01:56:01 -0700</bug_when>
    <thetext>Committed r279312 (239188@main): &lt;https://commits.webkit.org/239188@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432348.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432252</attachid>
            <date>2021-06-25 03:12:31 -0700</date>
            <delta_ts>2021-06-26 08:05:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227392-20210625121229.patch</filename>
            <type>text/plain</type>
            <size>19364</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmZjY0NjFlYmE1NjcyZGFlMGY4OWMy
NzFhYTQxNzViYTIxZTM4NDIuLjMwMzc0YWJkZDlhYTkwNTNmYjY5OTU1ZDBlNGY0MzEzMzQ1YWRh
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDYtMjUgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBbaU9TXSBBZGQgc3VwcG9ydCBmb3Ig
cmVuZGVyaW5nIG1vZGVsIHJlc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IGNvbXBpbGUtdGltZSBmbGFnIGluZGljYXRpbmcg
dGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgQVNWSW5saW5lUHJldmlldyBTUEkgb24gaU9TLgorICAg
ICAgICBXZSBvbmx5IGRlZmluZSBpdCB3aGVuIHRoZSBoZWFkZXIgaXRzZWxmIGlzIHByZXNlbnQg
Zm9yIG5vdyB0byBhdm9pZCBpc3N1ZXMgd2l0aCBvbGRlciBpT1MKKyAgICAgICAgMTIgU0RLcywg
YnV0IHVsdGltYXRlbHkgd2Ugd2lsbCBvbmx5IHVzZSB0aGUgaU9TIHZlcnNpb24gY2hlY2suCisK
KyAgICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjEtMDYtMjQgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFtjc3Mtc2Nyb2xsLXNuYXBd
IFJlbW92ZSBFTkFCTEVfU0NST0xMX1NOQVAgY29tcGlsZS10aW1lIG9wdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDBkZjYyZjUwMmE4ZjhiOWIxNDM0OGFjMWQxN2I2YjhmY2Q4MTkyYzEuLjkxYjBkODU5MDVi
YTczOGE1NjE5NWFiYjg1YmIwZDMyZmQ3YWRkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMS0wNi0yNSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAg
ICAgICBbTW9kZWxdIFtpT1NdIEFkZCBzdXBwb3J0IGZvciByZW5kZXJpbmcgbW9kZWwgcmVzb3Vy
Y2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcz
OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbnN1
cmUgdGhlIGFjaG9yIHBvaW50IGlzIHNldCBjb3JyZWN0bHkgZm9yIG1vZGVsIGNvbnRlbnQgbGF5
ZXJzLCBvdGhlcndpc2UgdGhlIHByZXZpZXcgbGF5ZXIgc2hvd3MKKyAgICAgICAgaXRzIGNlbnRl
ciBhdCB0aGUgY29ybmVyIG9mIHRoZSBwYXJlbnQgbGF5ZXIncyBvcmlnaW4uCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvTW9kZWwpOgorCiAyMDIxLTA2LTI0
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtNb2RlbF0g
Q3JlYXRlIGEgc2FuZGJveCBleHRlbnNpb24gZm9yIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBz
dG9yZSBtb2RlbCByZXNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDgxMWQ2ODY2YTM0MDc0
YjNmNDc0ZTQxNzNjZjQ3NzZmMDM1ODA5NmMuLjE1MjZkNzI2ZmViMDIzNWE4ODdlZjRjMTAwYTU5
MzM1OGMwZTc1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA2
LTI1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2Rl
bF0gW2lPU10gQWRkIHN1cHBvcnQgZm9yIHJlbmRlcmluZyBtb2RlbCByZXNvdXJjZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzM5MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlY2xhcmUgdGhlIEFT
VklubGluZVByZXZpZXcgY2xhc3MuCisKKyAgICAgICAgKiBwYWwvc3BpL2lvcy9TeXN0ZW1QcmV2
aWV3U1BJLmg6CisKIDIwMjEtMDYtMjMgIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNv
bT4KIAogICAgICAgICBOb3QgYWxsIHVzZXMgb2YgQXVkaW9Ub29sYm94IGZyYW1ld29yayB1c2Ug
c29mdCBsaW5raW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVhYjAwZDdkN2U2ZDQ2NDBiM2U0NDkxYmQ3YTMxMTUx
ZjkzYzM5YjUuLjlkZTI1ODU2NThkYWQwYmEzYTZjYTU3Mzg5Njg5YWEyNDYxYzc3Y2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDYtMjUgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRz
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgcmVu
ZGVyaW5nIG1vZGVsIHJlc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3MzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgbmV3IFdLTW9kZWxWaWV3IGNsYXNzIHdoaWNoIG1hbmFnZXMg
YW4gQVNWSW5saW5lUHJldmlldyBhbmQgZGlzcGxheXMgaXRzIGxheWVyLgorICAgICAgICBUaGUg
Y3VycmVudCBpbmNhcm5hdGlvbiBvZiB0aGUgQVNWSW5saW5lUHJldmlldyBTUEkgcmVxdWlyZXMg
YSBVUkwgdG8gYSBmaWxlIHRvIHNwZWNpZnkKKyAgICAgICAgdGhlIHJlc291cmNlLCBzbyB3ZSB3
cml0ZSBhIGZpbGUgdG8gdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgYWRkZWQgaW4gMjc5MjY3IHdp
dGggdGhlIGRhdGEKKyAgICAgICAgd3JhcHBlZCBpbiB0aGUgTW9kZWwgb2JqZWN0IHBhc3NlZCB0
aHJvdWdoIHRoZSByZW1vdGUgbGF5ZXIgdHJlZS4gVWx0aW1hdGVseSB3ZSB3aWxsIGJlCisgICAg
ICAgIGFibGUgdG8gdXNlIGFuIFNQSSB0aGF0IGRvZXMgbm90IHJlcXVpcmUgYSBmaWxlIGFuZCBp
bnN0ZWFkIHdpbGwgYWxsb3cgZGF0YSB0byBiZSBwYXNzZWQKKyAgICAgICAgZGlyZWN0bHksIHRo
aXMgaXMgcHVyZWx5IGZvciBhIHRlbXBvcmFyeSBleHBlcmltZW50YXRpb24uCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjptYWtlTm9kZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XS01vZGVsVmlldy5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLTW9kZWxWaWV3Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tNb2RlbFZp
ZXcgcHJldmlld10pOgorICAgICAgICAoLVtXS01vZGVsVmlldyBpbml0V2l0aEZyYW1lOl0pOgor
ICAgICAgICAoLVtXS01vZGVsVmlldyBpbml0V2l0aENvZGVyOl0pOgorICAgICAgICAoLVtXS01v
ZGVsVmlldyBpbml0V2l0aE1vZGVsOl0pOgorICAgICAgICAoLVtXS01vZGVsVmlldyBjcmVhdGVG
aWxlRm9yTW9kZWw6XSk6CisgICAgICAgICgtW1dLTW9kZWxWaWV3IHVwZGF0ZUJvdW5kc10pOgor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA2LTI0
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtNb2RlbF0g
Q3JlYXRlIGEgc2FuZGJveCBleHRlbnNpb24gZm9yIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSB0byBz
dG9yZSBtb2RlbCByZXNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggOWVlNjk3NTFjNDFk
NGJkNzU0YTBiOWZlY2NlNGNiZGIyMjEwODc0OS4uYTQwNGY5ZGEyYWM1N2RjOGFiODY1NWE2ZGQw
NmM5ZmZhNjhmYjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgK
KysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTEwMTAsNiArMTAxMCwxMiBA
QAogI2RlZmluZSBIQVZFX0lNQUdFX1JFU1RSSUNURURfREVDT0RJTkcgMQogI2VuZGlmCiAKKyNp
ZiBkZWZpbmVkIF9faGFzX2luY2x1ZGUgJiYgX19oYXNfaW5jbHVkZSg8QXNzZXRWaWV3ZXIvQVNW
SW5saW5lUHJldmlldy5oPikKKyNpZiAoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE1MDAwMAorI2Rl
ZmluZSBIQVZFX0FSS0lUX0lOTElORV9QUkVWSUVXX0lPUyAxCisjZW5kaWYKKyNlbmRpZgorCiAj
aWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApCiAjZGVmaW5l
IEhBVkVfTlNVUkxQUk9UT0NPTF9XSVRIX1NLSVBBUFBTU08gMQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5oIGIvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEkuaAppbmRleCBjMzNj
ODU5NGU3Yjc3ZWIxODU1ODE1MDQ1YzRmNGZjMjljMmY3MDQ1Li42MWFlMGMzNjdiMzNjNGFlYjA1
ZmU4MDg5OTFhM2RlYmE0MjdkOTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2lvcy9TeXN0ZW1QcmV2aWV3U1BJLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAKICNpbXBvcnQg
PEFzc2V0Vmlld2VyL0FTVlRodW1ibmFpbFZpZXcuaD4KIAorI2lmIEhBVkUoQVJLSVRfSU5MSU5F
X1BSRVZJRVdfSU9TKQorI2ltcG9ydCA8QXNzZXRWaWV3ZXIvQVNWSW5saW5lUHJldmlldy5oPgor
I2VuZGlmCisKICNlbHNlCiAKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CkBAIC02NCw0ICs2OCwy
MCBAQAogCiAjZW5kaWYKIAorI2lmIEhBVkUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorCitA
Y2xhc3MgQVNWSW5saW5lUHJldmlldzsKKworQGludGVyZmFjZSBBU1ZJbmxpbmVQcmV2aWV3IDog
TlNPYmplY3QKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0FMYXllciAqbGF5ZXI7
CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWU7CistICh2b2lk
KXNldHVwUmVtb3RlQ29ubmVjdGlvbldpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNF
cnJvciAqIF9OdWxsYWJsZSBlcnJvcikpaGFuZGxlcjsKKy0gKHZvaWQpcHJlcGFyZVByZXZpZXdP
ZkZpbGVBdFVSTDooTlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRXJy
b3IgKiBfTnVsbGFibGUgZXJyb3IpKWhhbmRsZXI7CistICh2b2lkKXVwZGF0ZUZyYW1lOihDR1Jl
Y3QpbmV3RnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKENBRmVuY2VIYW5kbGUgKiBf
TnVsbGFibGUgZmVuY2VIYW5kbGUsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpKWhhbmRsZXI7
CisKK0BlbmQKKworI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggY2M1ZWY3ODM4
NjkwYmY5MWU3ODI4NDk2NzgzMzE3MzVlODJmOGE5ZC4uOWU1MTAyNTAyNjgxOTE5MjBhMTA2NTVh
YjYyOWQ2YWZhZmEyMTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0xMjg1LDYgKzEyODUsNyBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb01vZGVsKFJlZlB0cjxNb2RlbD4mJiBt
b2RlbCkKICAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXROYW1lKE1BS0VfU1RBVElDX1NUUklO
R19JTVBMKCJjb250ZW50cyBtb2RlbCIpKTsKICNlbmRpZgogCisgICAgICAgIG1fY29udGVudHNM
YXllci0+c2V0QW5jaG9yUG9pbnQoeyB9KTsKICAgICAgICAgbV9jb250ZW50c0xheWVyUHVycG9z
ZSA9IENvbnRlbnRzTGF5ZXJQdXJwb3NlOjpNb2RlbDsKICAgICAgICAgY29udGVudHNMYXllckNo
YW5nZWQgPSB0cnVlOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4
IDFmNTU0MDRkZjBmN2E1MmRhNTZjZThkODUwNzZhNjQzMjJjZDQ1NGUuLjk4MGEyNTkxMWQwYjg4
ZDU0YmM2ZmFkN2QwYjI4NzZiY2M3OTJkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCkBA
IC03MCw2ICs3MCw3IEBAIGV4dGVybiAiQyIgewogICAgIE0oTG9jYWxTdG9yYWdlRGF0YWJhc2VU
cmFja2VyKSBcCiAgICAgTShNZWRpYSkgXAogICAgIE0oTWVtb3J5UHJlc3N1cmUpIFwKKyAgICBN
KE1vZGVsRWxlbWVudCkgXAogICAgIE0oTW91c2VIYW5kbGluZykgXAogICAgIE0oTmV0d29yaykg
XAogICAgIE0oTmV0d29ya0NhY2hlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNWE5NTE0
Y2RmNzk0Y2JkZTc5ZThjNGNmMTk3OThjM2YxODFiZDNhOC4uNzU5NTE5MWZjY2ExNzIyZGMzYzQz
OTIzYmViYzU0YzMxYmUwMjBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDg5LDYgKzQ4
OSw3IEBAIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5
T3JpZ2luLm1tCiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29n
bml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIu
bW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLm1tCitVSVByb2Nl
c3MvaW9zL1dLTW9kZWxWaWV3Lm1tCiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZl
ci5tbQogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vz
cy9pb3MvV0tQYXNzd29yZFZpZXcubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9z
dElPUy5tbQppbmRleCA0YTViYmY2ZTczNjgyZWE1Y2E4NmRkMTc1YjFlNzg4NmVjMzQxOWI5Li4z
MmU3MTQ1YjBiODY0OTYyMmI4YTc2NDAzODBmNTVhZTRmNDFiNmZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZUhv
c3RJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tCkBAIC0zNSw2ICszNSwxMCBAQAogI2ltcG9ydCA8
VUlLaXQvVUlTY3JvbGxWaWV3Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVT
UEkuaD4KIAorI2lmIEhBVkUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorI2ltcG9ydCAiV0tN
b2RlbFZpZXcuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC05NSw2ICs5OSw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVMYXll
clRyZWVOb2RlPiBSZW1vdGVMYXllclRyZWVIb3N0OjptYWtlTm9kZShjb25zdCBSZW1vdGVMCiAg
ICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZU1vZGVsTGF5ZXI6CiAjaWYgRU5BQkxF
KFNFUEFSQVRFRF9NT0RFTCkKICAgICAgICAgcmV0dXJuIG1ha2VXaXRoVmlldyhhZG9wdE5TKFtb
V0tTZXBhcmF0ZWRNb2RlbFZpZXcgYWxsb2NdIGluaXRXaXRoTW9kZWw6KnByb3BlcnRpZXMubW9k
ZWxdKSk7CisjZWxpZiBIQVZFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKKyAgICAgICAgcmV0
dXJuIG1ha2VXaXRoVmlldyhhZG9wdE5TKFtbV0tNb2RlbFZpZXcgYWxsb2NdIGluaXRXaXRoTW9k
ZWw6KnByb3BlcnRpZXMubW9kZWxdKSk7CiAjZWxzZQogICAgICAgICByZXR1cm4gbWFrZVdpdGhW
aWV3KGFkb3B0TlMoW1tXS0NvbXBvc2l0aW5nVmlldyBhbGxvY10gaW5pdF0pKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW9kZWxWaWV3LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb2RlbFZpZXcuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZmNh
OWQ4ZTRlYTk5NDU0NWMxZDY5YWZhYjk5MjgzYTA0Mjc4MjcxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW9kZWxWaWV3LmgKQEAgLTAsMCArMSwyNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKi8KKworI2lmIEhBVkUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorCisjaW1wb3J0
ICJSZW1vdGVMYXllclRyZWVWaWV3cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBN
b2RlbDsKK30KKworT0JKQ19DTEFTUyBBU1ZJbmxpbmVQcmV2aWV3OworCitAaW50ZXJmYWNlIFdL
TW9kZWxWaWV3IDogV0tDb21wb3NpdGluZ1ZpZXcKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
TW9kZWw6KFdlYkNvcmU6Ok1vZGVsJiltb2RlbCBOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSOwor
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIE5TX1VOQVZBSUxB
QkxFOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlciBOU19V
TkFWQUlMQUJMRTsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBBU1ZJbmxpbmVQ
cmV2aWV3ICpwcmV2aWV3OworCitAZW5kCisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb2RlbFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tNb2RlbFZpZXcubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWExZGM1ZDNkNGNiMDAzN2ZkNTM1
MDA5NWQzMGNiMzkyNDU4YjRlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS01vZGVsVmlldy5tbQpAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS01vZGVsVmlldy5oIgorCisjaWYgSEFWRShBUktJ
VF9JTkxJTkVfUFJFVklFV19JT1MpCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIlJl
bW90ZUxheWVyVHJlZVZpZXdzLmgiCisjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlLmgiCisjaW1w
b3J0IDxXZWJDb3JlL01vZGVsLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVT
UEkuaD4KKyNpbXBvcnQgPHBhbC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEkuaD4KKyNpbXBvcnQg
PHd0Zi9Bc3NlcnRpb25zLmg+CisjaW1wb3J0IDx3dGYvRmlsZVN5c3RlbS5oPgorI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0IDx3
dGYvVVVJRC5oPgorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoQXNzZXRWaWV3ZXIpOwor
U09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBU1ZJbmxpbmVQcmV2aWV3KTsKKworQGltcGxl
bWVudGF0aW9uIFdLTW9kZWxWaWV3IHsKKyAgICBSZXRhaW5QdHI8QVNWSW5saW5lUHJldmlldz4g
X3ByZXZpZXc7CisgICAgU3RyaW5nIF9maWxlUGF0aDsKKyAgICBGaWxlU3lzdGVtOjpQbGF0Zm9y
bUZpbGVIYW5kbGUgX2ZpbGU7CisgICAgQ0dSZWN0IF9ib3VuZHM7Cit9CisKKy0gKEFTVklubGlu
ZVByZXZpZXcgKilwcmV2aWV3Cit7CisgICAgcmV0dXJuIF9wcmV2aWV3LmdldCgpOworfQorCist
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lCit7CisgICAgcmV0dXJu
IG5pbDsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2Rl
cgoreworICAgIHJldHVybiBuaWw7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1vZGVs
OihXZWJDb3JlOjpNb2RlbCYpbW9kZWwKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJh
bWU6Q0dSZWN0WmVyb107CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisg
ICAgaWYgKCFbc2VsZiBjcmVhdGVGaWxlRm9yTW9kZWw6bW9kZWxdKQorICAgICAgICByZXR1cm4g
c2VsZjsKKworICAgIF9wcmV2aWV3ID0gYWRvcHROUyhbYWxsb2NBU1ZJbmxpbmVQcmV2aWV3SW5z
dGFuY2UoKSBpbml0V2l0aEZyYW1lOnNlbGYuYm91bmRzXSk7CisgICAgW3NlbGYubGF5ZXIgYWRk
U3VibGF5ZXI6W19wcmV2aWV3IGxheWVyXV07CisKKyAgICBhdXRvIHVybCA9IGFkb3B0TlMoW1tO
U1VSTCBhbGxvY10gaW5pdEZpbGVVUkxXaXRoUGF0aDpfZmlsZVBhdGhdKTsKKworICAgIFtfcHJl
dmlldyBzZXR1cFJlbW90ZUNvbm5lY3Rpb25XaXRoQ29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9y
ICogX051bGxhYmxlIGNvbnRleHRFcnJvcikgeworICAgICAgICBpZiAoY29udGV4dEVycm9yKSB7
CisgICAgICAgICAgICBMT0coTW9kZWxFbGVtZW50LCAiVW5hYmxlIHRvIGNyZWF0ZSByZW1vdGUg
Y29ubmVjdGlvbiwgZXJyb3I6ICVzIiwgW2NvbnRleHRFcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlv
bl0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgW19wcmV2aWV3
IHByZXBhcmVQcmV2aWV3T2ZGaWxlQXRVUkw6dXJsLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl4o
TlNFcnJvciAqIF9OdWxsYWJsZSBsb2FkRXJyb3IpIHsKKyAgICAgICAgICAgIGlmIChsb2FkRXJy
b3IpIHsKKyAgICAgICAgICAgICAgICBMT0coTW9kZWxFbGVtZW50LCAiVW5hYmxlIHRvIGxvYWQg
ZmlsZSwgZXJyb3I6ICVzIiwgW2xvYWRFcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0pOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgTE9HKE1v
ZGVsRWxlbWVudCwgIkZpbGUgbG9hZGVkIHN1Y2Nlc3NmdWxseS4iKTsKKyAgICAgICAgICAgIFtz
ZWxmIHVwZGF0ZUJvdW5kc107CisgICAgICAgIH1dOworICAgIH1dOworCisgICAgcmV0dXJuIHNl
bGY7Cit9CisKKy0gKEJPT0wpY3JlYXRlRmlsZUZvck1vZGVsOihXZWJDb3JlOjpNb2RlbCYpbW9k
ZWwKK3sKKyAgICBhdXRvIHBhdGhUb0RpcmVjdG9yeSA9IFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6ZGVmYXVsdE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCk7CisgICAgaWYgKHBhdGhUb0Rp
cmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIGF1dG8gZGlyZWN0
b3J5RXhpc3RzID0gRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhwYXRoVG9EaXJlY3RvcnkpOworICAg
IGlmIChkaXJlY3RvcnlFeGlzdHMgJiYgRmlsZVN5c3RlbTo6ZmlsZVR5cGVGb2xsb3dpbmdTeW1s
aW5rcyhwYXRoVG9EaXJlY3RvcnkpICE9IEZpbGVTeXN0ZW06OkZpbGVUeXBlOjpEaXJlY3Rvcnkp
IHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBOTzsKKyAg
ICB9CisKKyAgICBpZiAoIWRpcmVjdG9yeUV4aXN0cyAmJiAhRmlsZVN5c3RlbTo6bWFrZUFsbERp
cmVjdG9yaWVzKHBhdGhUb0RpcmVjdG9yeSkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHJldHVybiBOTzsKKyAgICB9CisKKyAgICBhdXRvIGZpbGVOYW1lID0gRmls
ZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKSAr
ICIudXNkeiI7CisgICAgYXV0byBmaWxlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudChwYXRoVG9EaXJlY3RvcnksIGZpbGVOYW1lKTsKKyAgICBfZmlsZSA9IEZpbGVT
eXN0ZW06Om9wZW5GaWxlKGZpbGVQYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OldyaXRl
KTsKKyAgICBpZiAoX2ZpbGUgPD0gMCkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgYXV0byBi
eXRlQ291bnQgPSBzdGF0aWNfY2FzdDxzdGQ6OnNpemVfdD4oRmlsZVN5c3RlbTo6d3JpdGVUb0Zp
bGUoX2ZpbGUsIG1vZGVsLmRhdGEoKS0+ZGF0YSgpLCBtb2RlbC5kYXRhKCktPnNpemUoKSkpOwor
ICAgIEFTU0VSVF9VTlVTRUQoYnl0ZUNvdW50LCBieXRlQ291bnQgPT0gbW9kZWwuZGF0YSgpLT5z
aXplKCkpOworICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShfZmlsZSk7CisgICAgX2ZpbGVQYXRo
ID0gZmlsZVBhdGg7CisKKyAgICByZXR1cm4gWUVTOworfQorCistICh2b2lkKXVwZGF0ZUJvdW5k
cworeworICAgIGF1dG8gYm91bmRzID0gc2VsZi5ib3VuZHM7CisgICAgaWYgKENHUmVjdEVxdWFs
VG9SZWN0KF9ib3VuZHMsIGJvdW5kcykpCisgICAgICAgIHJldHVybjsKKworICAgIF9ib3VuZHMg
PSBib3VuZHM7CisKKyAgICBbX3ByZXZpZXcgdXBkYXRlRnJhbWU6Ym91bmRzIGNvbXBsZXRpb25I
YW5kbGVyOl4oQ0FGZW5jZUhhbmRsZSAqIF9OdWxsYWJsZSBmZW5jZUhhbmRsZSwgTlNFcnJvciAq
IF9OdWxsYWJsZSBlcnJvcikgeworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIExP
RyhNb2RlbEVsZW1lbnQsICJVbmFibGUgdG8gdXBkYXRlIGZyYW1lLCBlcnJvcjogJXMiLCBbZXJy
b3IgbG9jYWxpemVkRGVzY3JpcHRpb25dKTsKKyAgICAgICAgICAgIFtmZW5jZUhhbmRsZSBpbnZh
bGlkYXRlXTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFtzZWxm
LmxheWVyLmNvbnRleHQgYWRkRmVuY2U6ZmVuY2VIYW5kbGVdOworICAgICAgICBbZmVuY2VIYW5k
bGUgaW52YWxpZGF0ZV07CisgICAgfV07Cit9CisKK0BlbmQKKworI2VuZGlmCisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMwOTM1YzUy
NGRjYjQ4NWNhYjVjNDAwMDhjOGRlY2IzMzNiYzQ1YTguLmNlNDU1MDdjZDIzNDUwYzdlZTgxOGEx
NjFkZGFmMjQwODM4NzE3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTMyMiw2ICsxMzIyLDcgQEAKIAkJNkVFODQ5QzgxMzY4RDkz
OTAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVFODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdL
SW5zcGVjdG9yUHJpdmF0ZU1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTcxMTcyNUE5MjI4RDU2NDMwMDAxODUxNCAvKiBXZWJzaXRlTGVnYWN5
T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzExNzI1QTgyMjhENTYzQTAwMDE4NTE0IC8qIFdlYnNpdGVM
ZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5LmggKi87IH07CiAJCTcxQTY3NkE2MjJD
NjIzMjUwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQTY3NkE0MjJDNjIzMTgw
MDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaCAqLzsgfTsKKwkJNzFC
QUE3MzMyNUZGRDA5ODAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUJBQTczMTI1RkZDQ0JBMDBEN0NENUQgLyog
V0tNb2RlbFZpZXcuaCAqLzsgfTsKIAkJNzFGQjgxMEIyMjYwNjI3RTAwMzIzNjc3IC8qIFdlYnNp
dGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUZCODEwQTIyNjA2MjdBMDAzMjM2NzcgLyog
V2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCAqLzsgfTsKIAkJNzI4
RTg2RjExNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNvbG9yUGlja2VyTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjhFODZFRjE3OTUxODhDMDA4Nzg3
OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCAqLzsgfTsKIAkJNzVBOEQyQzgxODdDQ0ZBQjAwQzM5
QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyQzQxODdDQ0Y5RjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURh
dGFTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsK
QEAgLTQ1ODAsNiArNDU4MSw4IEBACiAJCTcxMTcyNUE4MjI4RDU2M0EwMDAxODUxNCAvKiBXZWJz
aXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJzaXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGlj
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUE2NzZBNDIyQzYyMzE4MDA3RDYy
OTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5oOyBwYXRoID0g
aW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MUE2NzZBNTIyQzYyMzE4MDA3RDYyOTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
V0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBwYXRoID0gaW9zL1dLVG91Y2hBY3Rp
b25HZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzFC
QUE3MzEyNUZGQ0NCQTAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdLTW9kZWxWaWV3Lmg7IHBhdGggPSBpb3MvV0tNb2RlbFZpZXcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzFCQUE3MzIyNUZGQ0NCQTAwRDdDRDVEIC8q
IFdLTW9kZWxWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
V0tNb2RlbFZpZXcubW07IHBhdGggPSBpb3MvV0tNb2RlbFZpZXcubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcxRkI4MTBBMjI2MDYyN0EwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxh
dGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjI3ODAwQjI0MDhCRDdEMDA3RDM3NkIgLyogUGxh
dGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVt
b3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjZE
NTZERDI1M0E2NDgxMDAwMkVGOTAgLyogUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTc3OTIsNiArNzc5NSw4IEBACiAJCQkJOTMzREY4MkYxQjNCQzBCNDAwQUVBOUUz
IC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJMkRENUUxMjcyMTBB
REM3QTAwREI2MDEyIC8qIFdLS2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvci5oICovLAogCQkJCTJE
RDVFMTI2MjEwQURDN0EwMERCNjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IubW0g
Ki8sCisJCQkJNzFCQUE3MzEyNUZGQ0NCQTAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3LmggKi8sCisJ
CQkJNzFCQUE3MzIyNUZGQ0NCQTAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3Lm1tICovLAogCQkJCTk1
MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLywKIAkJ
CQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLm1tICov
LAogCQkJCTJEQjk0Mjk3MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29nbml6
ZXIuaCAqLywKQEAgLTEyODQ1LDYgKzEyODUwLDcgQEAKIAkJCQk1Q0FCREM4NjIyQzQwRkRFMDAx
RURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxMUUxNjk0
MjEyQjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNwbGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTFBOEREQjIwREREMUFDMDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTcxQkFBNzMzMjVGRkQwOTgwMEQ3Q0Q1RCAvKiBXS01vZGVsVmlldy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTUwRjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRCOTQyOTkyMzRFN0E3RjAwRTc3NkFEIC8q
IFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc1RkUx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZUFycmF5LmggaW4gSGVhZGVycyAqLywKQEAgLTE0
MTI4LDcgKzE0MTM0LDYgQEAKIAkJCQlDREE5M0RCMTIyRjhCQ0Y0MDA0OTBBNjkgLyogRnVsbHNj
cmVlblRvdWNoU2VjaGV1cmlzdGljUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
MUExNTJENzI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ0MjE0NjU2MUIwMDgzODBCRiAvKiBJbmplY3RlZEJ1
bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RGMUI5MUIyNjcwMjU1NTAw
MDdFQzEwIC8qIFdlYktpdFN3aWZ0U29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQkyNzQ5
RjY0NTIxNDY1NjFFMDA4MzgwQkYgLyogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5QkY1RUM2NDI1NDExNDU2MDA5ODRFNzcgLyogSlNJUENCaW5kaW5n
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05Q
TWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTQ0NzIsNiArMTQ0NzcsNyBAQAogCQkJCTFB
NjI4MEYzMTkxOTk4MkEwMDZBRDlGOSAvKiBXZWJLaXQubSBpbiBTb3VyY2VzICovLAogCQkJCTJE
OTJBNzhCMjEyQjZBQjEwMEY0OTNGRCAvKiBXZWJLaXQySW5pdGlhbGl6ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBMTgxQTc5ODIxQUNDNzRCMDA1OUEzMTYgLyogV2ViS2l0QWRkaXRpb25zLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJQ0RGMUI5MUIyNjcwMjU1NTAwMDdFQzEwIC8qIFdlYktpdFN3
aWZ0U29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4
MkYgLyogV2ViTUROU1JlZ2lzdGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEOTJBNzhDMjEyQjZBQjEwMEY0OTNGRCAvKiBXZWJNb3VzZUV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTMxQkE5MjREMTQ4ODMxMjYwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432329</attachid>
            <date>2021-06-26 08:05:26 -0700</date>
            <delta_ts>2021-06-27 00:59:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227392-20210626170524.patch</filename>
            <type>text/plain</type>
            <size>22222</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmZjY0NjFlYmE1NjcyZGFlMGY4OWMy
NzFhYTQxNzViYTIxZTM4NDIuLjJjMGFhYTE3OWE4MDZlYTgzM2MxMTk5NDViYmRiZDdlNThkN2Fl
N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDYtMjUgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBbaU9TXSBBZGQgc3VwcG9ydCBmb3Ig
cmVuZGVyaW5nIG1vZGVsIHJlc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MzkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTc3MDEz
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBuZXcgY29tcGlsZS10aW1lIGZsYWcgaW5kaWNhdGluZyB0aGUgYXZhaWxhYmlsaXR5IG9mIHRo
ZSBBU1ZJbmxpbmVQcmV2aWV3IFNQSSBvbiBpT1MuCisgICAgICAgIFdlIG9ubHkgZGVmaW5lIGl0
IHdoZW4gdGhlIGhlYWRlciBpdHNlbGYgaXMgcHJlc2VudCBmb3Igbm93IHRvIGF2b2lkIGlzc3Vl
cyB3aXRoIG9sZGVyIGlPUworICAgICAgICAxMiBTREtzLCBidXQgdWx0aW1hdGVseSB3ZSB3aWxs
IG9ubHkgdXNlIHRoZSBpT1MgdmVyc2lvbiBjaGVjay4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9y
bUhhdmUuaDoKKwogMjAyMS0wNi0yNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW2Nzcy1zY3JvbGwtc25hcF0gUmVtb3ZlIEVOQUJMRV9TQ1JPTExf
U05BUCBjb21waWxlLXRpbWUgb3B0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRmNjJmNTAyYThmOGI5YjE0
MzQ4YWMxZDE3YjZiOGZjZDgxOTJjMS4uMWJjNWUxZWNmYjc4NjY5ZDYwMjQzMjIzYzk1ZWVkNzMz
MDc2MWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA2LTI1ICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtNb2RlbF0gW2lPU10gQWRk
IHN1cHBvcnQgZm9yIHJlbmRlcmluZyBtb2RlbCByZXNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzM5MgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzk3NzAxMzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRW5zdXJlIHRoZSBhbmNob3IgcG9pbnQgaXMgc2V0IGNvcnJlY3RseSBmb3IgbW9k
ZWwgY29udGVudCBsYXllcnMsIG90aGVyd2lzZSB0aGUgcHJldmlldyBsYXllciBzaG93cworICAg
ICAgICBpdHMgY2VudGVyIGF0IHRoZSBjb3JuZXIgb2YgdGhlIHBhcmVudCBsYXllcidzIG9yaWdp
bi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9Nb2RlbCk6
CisKIDIwMjEtMDYtMjQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW01vZGVsXSBDcmVhdGUgYSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgYSB0ZW1wb3Jhcnkg
ZGlyZWN0b3J5IHRvIHN0b3JlIG1vZGVsIHJlc291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXgg
ODExZDY4NjZhMzQwNzRiM2Y0NzRlNDE3M2NmNDc3NmYwMzU4MDk2Yy4uY2RhZTFjYzZjYzc2MzZk
NjE1ZTM5MGRjMzIzNzkxNzg4NjkzZTcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFM
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjEtMDYtMjUgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgW01vZGVsXSBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIG1vZGVsIHJl
c291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI3MzkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTc3MDEzNj4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWNsYXJlIHRoZSBBU1ZJbmxpbmVQ
cmV2aWV3IGNsYXNzLgorCisgICAgICAgICogcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5o
OgorCiAyMDIxLTA2LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAg
ICAgICAgTm90IGFsbCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlu
a2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA1YWIwMGQ3ZDdlNmQ0NjQwYjNlNDQ5MWJkN2EzMTE1MWY5M2MzOWI1
Li5iZGY3YjBlNTdjYWYyZjI4M2EzZWY1MjUxYmI5MzA4OGI0MzM0YmZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMzIEBACisyMDIxLTA2LTI1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFtNb2RlbF0gW2lPU10gQWRkIHN1cHBvcnQgZm9yIHJlbmRlcmluZyBt
b2RlbCByZXNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNzM5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzk3NzAxMzY+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IFdLTW9k
ZWxWaWV3IGNsYXNzIHdoaWNoIG1hbmFnZXMgYW4gQVNWSW5saW5lUHJldmlldyBhbmQgZGlzcGxh
eXMgaXRzIGxheWVyLgorICAgICAgICBUaGUgY3VycmVudCBpbmNhcm5hdGlvbiBvZiB0aGUgQVNW
SW5saW5lUHJldmlldyBTUEkgcmVxdWlyZXMgYSBVUkwgdG8gYSBmaWxlIHRvIHNwZWNpZnkKKyAg
ICAgICAgdGhlIHJlc291cmNlLCBzbyB3ZSB3cml0ZSBhIGZpbGUgdG8gdGhlIHRlbXBvcmFyeSBk
aXJlY3RvcnkgYWRkZWQgaW4gMjc5MjY3IHdpdGggdGhlIGRhdGEKKyAgICAgICAgd3JhcHBlZCBp
biB0aGUgTW9kZWwgb2JqZWN0IHBhc3NlZCB0aHJvdWdoIHRoZSByZW1vdGUgbGF5ZXIgdHJlZS4g
VWx0aW1hdGVseSB3ZSB3aWxsIGJlCisgICAgICAgIGFibGUgdG8gdXNlIGFuIFNQSSB0aGF0IGRv
ZXMgbm90IHJlcXVpcmUgYSBmaWxlIGFuZCBpbnN0ZWFkIHdpbGwgYWxsb3cgZGF0YSB0byBiZSBw
YXNzZWQKKyAgICAgICAgZGlyZWN0bHksIHRoaXMgaXMgcHVyZWx5IGZvciBhIHRlbXBvcmFyeSBl
eHBlcmltZW50YXRpb24uCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAg
ICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllclRyZWVIb3N0OjptYWtlTm9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS01vZGVs
Vmlldy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW9kZWxWaWV3Lm1tOiBB
ZGRlZC4KKyAgICAgICAgKC1bV0tNb2RlbFZpZXcgcHJldmlld10pOgorICAgICAgICAoLVtXS01v
ZGVsVmlldyBpbml0V2l0aEZyYW1lOl0pOgorICAgICAgICAoLVtXS01vZGVsVmlldyBpbml0V2l0
aENvZGVyOl0pOgorICAgICAgICAoLVtXS01vZGVsVmlldyBpbml0V2l0aE1vZGVsOl0pOgorICAg
ICAgICAoLVtXS01vZGVsVmlldyBjcmVhdGVGaWxlRm9yTW9kZWw6XSk6CisgICAgICAgICgtW1dL
TW9kZWxWaWV3IGxheW91dFN1YnZpZXdzXSk6CisgICAgICAgICgtW1dLTW9kZWxWaWV3IHVwZGF0
ZUJvdW5kc10pOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDIxLTA2LTI0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtNb2RlbF0gQ3JlYXRlIGEgc2FuZGJveCBleHRlbnNpb24gZm9yIGEgdGVtcG9yYXJ5IGRp
cmVjdG9yeSB0byBzdG9yZSBtb2RlbCByZXNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXgg
OWVlNjk3NTFjNDFkNGJkNzU0YTBiOWZlY2NlNGNiZGIyMjEwODc0OS4uYTQwNGY5ZGEyYWM1N2Rj
OGFiODY1NWE2ZGQwNmM5ZmZhNjhmYjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTEwMTAs
NiArMTAxMCwxMiBAQAogI2RlZmluZSBIQVZFX0lNQUdFX1JFU1RSSUNURURfREVDT0RJTkcgMQog
I2VuZGlmCiAKKyNpZiBkZWZpbmVkIF9faGFzX2luY2x1ZGUgJiYgX19oYXNfaW5jbHVkZSg8QXNz
ZXRWaWV3ZXIvQVNWSW5saW5lUHJldmlldy5oPikKKyNpZiAoUExBVEZPUk0oSU9TKSB8fCBQTEFU
Rk9STShNQUNDQVRBTFlTVCkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDE1MDAwMAorI2RlZmluZSBIQVZFX0FSS0lUX0lOTElORV9QUkVWSUVXX0lPUyAxCisjZW5kaWYK
KyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkgfHwg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAw
MDApCiAjZGVmaW5lIEhBVkVfTlNVUkxQUk9UT0NPTF9XSVRIX1NLSVBBUFBTU08gMQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvU3lzdGVtUHJldmll
d1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEku
aAppbmRleCBjMzNjODU5NGU3Yjc3ZWIxODU1ODE1MDQ1YzRmNGZjMjljMmY3MDQ1Li42MWFlMGMz
NjdiMzNjNGFlYjA1ZmU4MDg5OTFhM2RlYmE0MjdkOTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2lvcy9TeXN0ZW1QcmV2aWV3U1BJLmgKQEAgLTMxLDYgKzMxLDEwIEBA
CiAKICNpbXBvcnQgPEFzc2V0Vmlld2VyL0FTVlRodW1ibmFpbFZpZXcuaD4KIAorI2lmIEhBVkUo
QVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorI2ltcG9ydCA8QXNzZXRWaWV3ZXIvQVNWSW5saW5l
UHJldmlldy5oPgorI2VuZGlmCisKICNlbHNlCiAKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CkBA
IC02NCw0ICs2OCwyMCBAQAogCiAjZW5kaWYKIAorI2lmIEhBVkUoQVJLSVRfSU5MSU5FX1BSRVZJ
RVdfSU9TKQorCitAY2xhc3MgQVNWSW5saW5lUHJldmlldzsKKworQGludGVyZmFjZSBBU1ZJbmxp
bmVQcmV2aWV3IDogTlNPYmplY3QKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0FM
YXllciAqbGF5ZXI7CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJh
bWU7CistICh2b2lkKXNldHVwUmVtb3RlQ29ubmVjdGlvbldpdGhDb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikpaGFuZGxlcjsKKy0gKHZvaWQpcHJl
cGFyZVByZXZpZXdPZkZpbGVBdFVSTDooTlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKE5TRXJyb3IgKiBfTnVsbGFibGUgZXJyb3IpKWhhbmRsZXI7CistICh2b2lkKXVwZGF0
ZUZyYW1lOihDR1JlY3QpbmV3RnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKENBRmVu
Y2VIYW5kbGUgKiBfTnVsbGFibGUgZmVuY2VIYW5kbGUsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJy
b3IpKWhhbmRsZXI7CisKK0BlbmQKKworI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5k
ZXggY2M1ZWY3ODM4NjkwYmY5MWU3ODI4NDk2NzgzMzE3MzVlODJmOGE5ZC4uOWU1MTAyNTAyNjgx
OTE5MjBhMTA2NTVhYjYyOWQ2YWZhZmEyMTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0xMjg1LDYg
KzEyODUsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb01vZGVsKFJlZlB0
cjxNb2RlbD4mJiBtb2RlbCkKICAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXROYW1lKE1BS0Vf
U1RBVElDX1NUUklOR19JTVBMKCJjb250ZW50cyBtb2RlbCIpKTsKICNlbmRpZgogCisgICAgICAg
IG1fY29udGVudHNMYXllci0+c2V0QW5jaG9yUG9pbnQoeyB9KTsKICAgICAgICAgbV9jb250ZW50
c0xheWVyUHVycG9zZSA9IENvbnRlbnRzTGF5ZXJQdXJwb3NlOjpNb2RlbDsKICAgICAgICAgY29u
dGVudHNMYXllckNoYW5nZWQgPSB0cnVlOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9n
Z2luZy5oCmluZGV4IDFmNTU0MDRkZjBmN2E1MmRhNTZjZThkODUwNzZhNjQzMjJjZDQ1NGUuLjk4
MGEyNTkxMWQwYjg4ZDU0YmM2ZmFkN2QwYjI4NzZiY2M3OTJkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
TG9nZ2luZy5oCkBAIC03MCw2ICs3MCw3IEBAIGV4dGVybiAiQyIgewogICAgIE0oTG9jYWxTdG9y
YWdlRGF0YWJhc2VUcmFja2VyKSBcCiAgICAgTShNZWRpYSkgXAogICAgIE0oTWVtb3J5UHJlc3N1
cmUpIFwKKyAgICBNKE1vZGVsRWxlbWVudCkgXAogICAgIE0oTW91c2VIYW5kbGluZykgXAogICAg
IE0oTmV0d29yaykgXAogICAgIE0oTmV0d29ya0NhY2hlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
aW5kZXggNWE5NTE0Y2RmNzk0Y2JkZTc5ZThjNGNmMTk3OThjM2YxODFiZDNhOC4uNzU5NTE5MWZj
Y2ExNzIyZGMzYzQzOTIzYmViYzU0YzMxYmUwMjBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApA
QCAtNDg5LDYgKzQ4OSw3IEBAIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9T
T2JqQ1NlY3VyaXR5T3JpZ2luLm1tCiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNz
R2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVy
ZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9y
Lm1tCitVSVByb2Nlc3MvaW9zL1dLTW9kZWxWaWV3Lm1tCiBVSVByb2Nlc3MvaW9zL1dLTW91c2VE
ZXZpY2VPYnNlcnZlci5tbQogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIu
bW0KIFVJUHJvY2Vzcy9pb3MvV0tQYXNzd29yZFZpZXcubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3Rl
TGF5ZXJUcmVlSG9zdElPUy5tbQppbmRleCA0YTViYmY2ZTczNjgyZWE1Y2E4NmRkMTc1YjFlNzg4
NmVjMzQxOWI5Li4zMmU3MTQ1YjBiODY0OTYyMmI4YTc2NDAzODBmNTVhZTRmNDFiNmZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90
ZUxheWVyVHJlZUhvc3RJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tCkBAIC0zNSw2ICszNSwxMCBA
QAogI2ltcG9ydCA8VUlLaXQvVUlTY3JvbGxWaWV3Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29h
L1F1YXJ0ekNvcmVTUEkuaD4KIAorI2lmIEhBVkUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQor
I2ltcG9ydCAiV0tNb2RlbFZpZXcuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05NSw2ICs5OSw4IEBAIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVMYXllclRyZWVOb2RlPiBSZW1vdGVMYXllclRyZWVIb3N0OjptYWtlTm9kZShjb25z
dCBSZW1vdGVMCiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZU1vZGVsTGF5ZXI6
CiAjaWYgRU5BQkxFKFNFUEFSQVRFRF9NT0RFTCkKICAgICAgICAgcmV0dXJuIG1ha2VXaXRoVmll
dyhhZG9wdE5TKFtbV0tTZXBhcmF0ZWRNb2RlbFZpZXcgYWxsb2NdIGluaXRXaXRoTW9kZWw6KnBy
b3BlcnRpZXMubW9kZWxdKSk7CisjZWxpZiBIQVZFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykK
KyAgICAgICAgcmV0dXJuIG1ha2VXaXRoVmlldyhhZG9wdE5TKFtbV0tNb2RlbFZpZXcgYWxsb2Nd
IGluaXRXaXRoTW9kZWw6KnByb3BlcnRpZXMubW9kZWxdKSk7CiAjZWxzZQogICAgICAgICByZXR1
cm4gbWFrZVdpdGhWaWV3KGFkb3B0TlMoW1tXS0NvbXBvc2l0aW5nVmlldyBhbGxvY10gaW5pdF0p
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW9k
ZWxWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb2RlbFZpZXcuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42Y2ZlMmIyODk3YzhlZmQyZDc5Y2UwNjUwMzFhNjZmZTQ5MWViZGRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW9kZWxWaWV3LmgKQEAg
LTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZiBIQVZFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKKworI2ltcG9ydCAiUmVtb3Rl
TGF5ZXJUcmVlVmlld3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTW9kZWw7Cit9
CisKK09CSkNfQ0xBU1MgQVNWSW5saW5lUHJldmlldzsKKworQGludGVyZmFjZSBXS01vZGVsVmll
dyA6IFdLQ29tcG9zaXRpbmdWaWV3CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1vZGVsOihX
ZWJDb3JlOjpNb2RlbCYpbW9kZWwgTlNfREVTSUdOQVRFRF9JTklUSUFMSVpFUjsKKworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBOU19VTkFWQUlMQUJMRTsKKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIgTlNfVU5BVkFJTEFC
TEU7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQVNWSW5saW5lUHJldmlldyAq
cHJldmlldzsKKworQGVuZAorCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLTW9kZWxWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLTW9kZWxWaWV3Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzMjk4ZmNiODY4ZmU3MjM3NWYxMjA0NDc2N2Y1
MzBhMDRjOGYzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tNb2RlbFZpZXcubW0KQEAgLTAsMCArMSwxNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldL
TW9kZWxWaWV3LmgiCisKKyNpZiBIQVZFKEFSS0lUX0lOTElORV9QUkVWSUVXX0lPUykKKworI2lt
cG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVmlld3MuaCIKKyNpbXBv
cnQgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTW9kZWwuaD4KKyNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9pb3Mv
U3lzdGVtUHJldmlld1NQSS5oPgorI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbXBvcnQg
PHd0Zi9GaWxlU3lzdGVtLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPHd0Zi9VVUlELmg+CisKK1NPRlRfTElOS19QUklW
QVRFX0ZSQU1FV09SSyhBc3NldFZpZXdlcik7CitTT0ZUX0xJTktfQ0xBU1MoQXNzZXRWaWV3ZXIs
IEFTVklubGluZVByZXZpZXcpOworCitAaW1wbGVtZW50YXRpb24gV0tNb2RlbFZpZXcgeworICAg
IFJldGFpblB0cjxBU1ZJbmxpbmVQcmV2aWV3PiBfcHJldmlldzsKKyAgICBTdHJpbmcgX2ZpbGVQ
YXRoOworICAgIENHUmVjdCBfbGFzdEJvdW5kczsKK30KKworLSAoQVNWSW5saW5lUHJldmlldyAq
KXByZXZpZXcKK3sKKyAgICByZXR1cm4gX3ByZXZpZXcuZ2V0KCk7Cit9CisKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUKK3sKKyAgICByZXR1cm4gbmlsOworfQor
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCit7CisgICAg
cmV0dXJuIG5pbDsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTW9kZWw6KFdlYkNvcmU6
Ok1vZGVsJiltb2RlbAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpDR1JlY3Ra
ZXJvXTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBpZiAoIVtz
ZWxmIGNyZWF0ZUZpbGVGb3JNb2RlbDptb2RlbF0pCisgICAgICAgIHJldHVybiBzZWxmOworCisg
ICAgX3ByZXZpZXcgPSBhZG9wdE5TKFthbGxvY0FTVklubGluZVByZXZpZXdJbnN0YW5jZSgpIGlu
aXRXaXRoRnJhbWU6c2VsZi5ib3VuZHNdKTsKKyAgICBbc2VsZi5sYXllciBhZGRTdWJsYXllcjpb
X3ByZXZpZXcgbGF5ZXJdXTsKKworICAgIGF1dG8gdXJsID0gYWRvcHROUyhbW05TVVJMIGFsbG9j
XSBpbml0RmlsZVVSTFdpdGhQYXRoOl9maWxlUGF0aF0pOworCisgICAgW19wcmV2aWV3IHNldHVw
UmVtb3RlQ29ubmVjdGlvbldpdGhDb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3IgKiBfTnVsbGFi
bGUgY29udGV4dEVycm9yKSB7CisgICAgICAgIGlmIChjb250ZXh0RXJyb3IpIHsKKyAgICAgICAg
ICAgIExPRyhNb2RlbEVsZW1lbnQsICJVbmFibGUgdG8gY3JlYXRlIHJlbW90ZSBjb25uZWN0aW9u
LCBlcnJvcjogJUAiLCBbY29udGV4dEVycm9yIGxvY2FsaXplZERlc2NyaXB0aW9uXSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBbX3ByZXZpZXcgcHJlcGFyZVBy
ZXZpZXdPZkZpbGVBdFVSTDp1cmwuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICog
X051bGxhYmxlIGxvYWRFcnJvcikgeworICAgICAgICAgICAgaWYgKGxvYWRFcnJvcikgeworICAg
ICAgICAgICAgICAgIExPRyhNb2RlbEVsZW1lbnQsICJVbmFibGUgdG8gbG9hZCBmaWxlLCBlcnJv
cjogJUAiLCBbbG9hZEVycm9yIGxvY2FsaXplZERlc2NyaXB0aW9uXSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBMT0coTW9kZWxFbGVtZW50
LCAiRmlsZSBsb2FkZWQgc3VjY2Vzc2Z1bGx5LiIpOworICAgICAgICAgICAgW3NlbGYgdXBkYXRl
Qm91bmRzXTsKKyAgICAgICAgfV07CisgICAgfV07CisKKyAgICByZXR1cm4gc2VsZjsKK30KKwor
LSAoQk9PTCljcmVhdGVGaWxlRm9yTW9kZWw6KFdlYkNvcmU6Ok1vZGVsJiltb2RlbAoreworICAg
IGF1dG8gcGF0aFRvRGlyZWN0b3J5ID0gV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0
TW9kZWxFbGVtZW50Q2FjaGVEaXJlY3RvcnkoKTsKKyAgICBpZiAocGF0aFRvRGlyZWN0b3J5Lmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgYXV0byBkaXJlY3RvcnlFeGlzdHMg
PSBGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKHBhdGhUb0RpcmVjdG9yeSk7CisgICAgaWYgKGRpcmVj
dG9yeUV4aXN0cyAmJiBGaWxlU3lzdGVtOjpmaWxlVHlwZUZvbGxvd2luZ1N5bWxpbmtzKHBhdGhU
b0RpcmVjdG9yeSkgIT0gRmlsZVN5c3RlbTo6RmlsZVR5cGU6OkRpcmVjdG9yeSkgeworICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIE5POworICAgIH0KKworICAg
IGlmICghZGlyZWN0b3J5RXhpc3RzICYmICFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMo
cGF0aFRvRGlyZWN0b3J5KSkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIE5POworICAgIH0KKworICAgIGF1dG8gZmlsZU5hbWUgPSBGaWxlU3lzdGVtOjpl
bmNvZGVGb3JGaWxlTmFtZShjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpICsgIi51c2R6IjsK
KyAgICBhdXRvIGZpbGVQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50
KHBhdGhUb0RpcmVjdG9yeSwgZmlsZU5hbWUpOworICAgIGF1dG8gZmlsZSA9IEZpbGVTeXN0ZW06
Om9wZW5GaWxlKGZpbGVQYXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OldyaXRlKTsKKyAg
ICBpZiAoZmlsZSA8PSAwKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICBhdXRvIGJ5dGVDb3Vu
dCA9IHN0YXRpY19jYXN0PHN0ZDo6c2l6ZV90PihGaWxlU3lzdGVtOjp3cml0ZVRvRmlsZShmaWxl
LCBtb2RlbC5kYXRhKCktPmRhdGEoKSwgbW9kZWwuZGF0YSgpLT5zaXplKCkpKTsKKyAgICBBU1NF
UlRfVU5VU0VEKGJ5dGVDb3VudCwgYnl0ZUNvdW50ID09IG1vZGVsLmRhdGEoKS0+c2l6ZSgpKTsK
KyAgICBGaWxlU3lzdGVtOjpjbG9zZUZpbGUoZmlsZSk7CisgICAgX2ZpbGVQYXRoID0gZmlsZVBh
dGg7CisKKyAgICByZXR1cm4gWUVTOworfQorCistICh2b2lkKWxheW91dFN1YnZpZXdzCit7Cisg
ICAgW3N1cGVyIGxheW91dFN1YnZpZXdzXTsKKyAgICBpZiAoIUNHUmVjdEVxdWFsVG9SZWN0KF9s
YXN0Qm91bmRzLCBDR1JlY3RaZXJvKSkKKyAgICAgICAgW3NlbGYgdXBkYXRlQm91bmRzXTsKK30K
KworLSAodm9pZCl1cGRhdGVCb3VuZHMKK3sKKyAgICBhdXRvIGJvdW5kcyA9IHNlbGYuYm91bmRz
OworICAgIGlmIChDR1JlY3RFcXVhbFRvUmVjdChfbGFzdEJvdW5kcywgYm91bmRzKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgX2xhc3RCb3VuZHMgPSBib3VuZHM7CisKKyAgICBbX3ByZXZpZXcg
dXBkYXRlRnJhbWU6Ym91bmRzIGNvbXBsZXRpb25IYW5kbGVyOl4oQ0FGZW5jZUhhbmRsZSAqZmVu
Y2VIYW5kbGUsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIGlmIChlcnJvcikgeworICAgICAg
ICAgICAgTE9HKE1vZGVsRWxlbWVudCwgIlVuYWJsZSB0byB1cGRhdGUgZnJhbWUsIGVycm9yOiAl
QCIsIFtlcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlvbl0pOworICAgICAgICAgICAgW2ZlbmNlSGFu
ZGxlIGludmFsaWRhdGVdOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgW3NlbGYubGF5ZXIuY29udGV4dCBhZGRGZW5jZTpmZW5jZUhhbmRsZV07CisgICAgICAgIFtm
ZW5jZUhhbmRsZSBpbnZhbGlkYXRlXTsKKyAgICB9XTsKK30KKworQGVuZAorCisjZW5kaWYKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YzA5MzVjNTI0ZGNiNDg1Y2FiNWM0MDAwOGM4ZGVjYjMzM2JjNDVhOC4uY2U0NTUwN2NkMjM0NTBj
N2VlODE4YTE2MWRkYWYyNDA4Mzg3MTdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzIyLDYgKzEzMjIsNyBAQAogCQk2RUU4NDlD
ODEzNjhEOTM5MDAzOEQ0ODEgLyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUU4NDlDNjEzNjhEOTJEMDAzOEQ0
ODEgLyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzExNzI1QTkyMjhENTY0MzAwMDE4NTE0IC8qIFdlYnNp
dGVMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTE3MjVBODIyOEQ1NjNBMDAwMTg1MTQgLyog
V2Vic2l0ZUxlZ2FjeU92ZXJmbG93U2Nyb2xsaW5nVG91Y2hQb2xpY3kuaCAqLzsgfTsKIAkJNzFB
Njc2QTYyMkM2MjMyNTAwN0Q2Mjk1IC8qIFdLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBNjc2QTQy
MkM2MjMxODAwN0Q2Mjk1IC8qIFdLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5oICovOyB9
OworCQk3MUJBQTczMzI1RkZEMDk4MDBEN0NENUQgLyogV0tNb2RlbFZpZXcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxQkFBNzMxMjVGRkNDQkEwMEQ3
Q0Q1RCAvKiBXS01vZGVsVmlldy5oICovOyB9OwogCQk3MUZCODEwQjIyNjA2MjdFMDAzMjM2Nzcg
LyogV2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlzcGF0Y2hQb2xpY3kuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxRkI4MTBBMjI2MDYyN0EwMDMy
MzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5oICovOyB9
OwogCQk3MjhFODZGMTE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOEU4NkVGMTc5NTE4
OEMwMDg3ODc5RSAvKiBXZWJDb2xvclBpY2tlck1hYy5oICovOyB9OwogCQk3NUE4RDJDODE4N0ND
RkFCMDBDMzlDOUUgLyogV0tXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NUE4RDJDNDE4N0NDRjlGMDBDMzlDOUUgLyogV0tX
ZWJzaXRlRGF0YVN0b3JlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCAp
OyB9OyB9OwpAQCAtNDU4MCw2ICs0NTgxLDggQEAKIAkJNzExNzI1QTgyMjhENTYzQTAwMDE4NTE0
IC8qIFdlYnNpdGVMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9saWN5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1Rv
dWNoUG9saWN5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxQTY3NkE0MjJDNjIz
MTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmg7
IHBhdGggPSBpb3MvV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTcxQTY3NkE1MjJDNjIzMTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW07IHBhdGggPSBpb3MvV0tU
b3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3MUJBQTczMTI1RkZDQ0JBMDBEN0NENUQgLyogV0tNb2RlbFZpZXcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb2RlbFZpZXcuaDsgcGF0aCA9IGlvcy9XS01vZGVs
Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MUJBQTczMjI1RkZDQ0JBMDBE
N0NENUQgLyogV0tNb2RlbFZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXS01vZGVsVmlldy5tbTsgcGF0aCA9IGlvcy9XS01vZGVsVmlldy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzFGQjgxMEEyMjYwNjI3QTAwMzIzNjc3IC8qIFdlYnNp
dGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNoUG9saWN5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMjc4MDBCMjQwOEJEN0QwMDdEMzc2
QiAvKiBQbGF0Zm9ybVJlbW90ZUltYWdlQnVmZmVyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxh
dGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyNkQ1NkREMjUzQTY0ODEwMDAyRUY5MCAvKiBSZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlc291cmNlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNzc5Miw2ICs3Nzk1LDggQEAKIAkJCQk5MzNERjgyRjFCM0JDMEI0
MDBBRUE5RTMgLyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5tbSAqLywKIAkJCQkyREQ1
RTEyNzIxMEFEQzdBMDBEQjYwMTIgLyogV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLmggKi8s
CiAJCQkJMkRENUUxMjYyMTBBREM3QTAwREI2MDEyIC8qIFdLS2V5Ym9hcmRTY3JvbGxpbmdBbmlt
YXRvci5tbSAqLywKKwkJCQk3MUJBQTczMTI1RkZDQ0JBMDBEN0NENUQgLyogV0tNb2RlbFZpZXcu
aCAqLywKKwkJCQk3MUJBQTczMjI1RkZDQ0JBMDBEN0NENUQgLyogV0tNb2RlbFZpZXcubW0gKi8s
CiAJCQkJOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5o
ICovLAogCQkJCTk1MEYyODdGMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2
ZXIubW0gKi8sCiAJCQkJMkRCOTQyOTcyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJl
UmVjb2duaXplci5oICovLApAQCAtMTI4NDUsNiArMTI4NTAsNyBAQAogCQkJCTVDQUJEQzg2MjJD
NDBGREUwMDFFREU4RSAvKiBXS01lc3NhZ2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzExRTE2OTQyMTJCODdDNTAwOTg1RkY2IC8qIFdLTW9ja0Rpc3BsYXkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxMUE4RERCMjBEREQxQUMwMDYwRDM0RiAvKiBXS01vY2tNZWRpYURldmljZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNzFCQUE3MzMyNUZGRDA5ODAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3Vz
ZURldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREI5NDI5OTIzNEU3QTdGMDBF
Nzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzQwNzVGRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJzICov
LApAQCAtMTQxMjgsNyArMTQxMzQsNiBAQAogCQkJCUNEQTkzREIxMjJGOEJDRjQwMDQ5MEE2OSAv
KiBGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWNQYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUMxQTE1MkQ3MjRFNUEyOUEwMDk3OEM4QiAvKiBIYW5kbGVYUENFbmRwb2ludE1lc3Nh
Z2VzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMjc0OUY2NDQyMTQ2NTYxQjAwODM4MEJGIC8qIElu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREYxQjkxQjI2
NzAyNTU1MDAwN0VDMTAgLyogV2ViS2l0U3dpZnRTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTI3NDlGNjQ1MjE0NjU2MUUwMDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlCRjVFQzY0MjU0MTE0NTYwMDk4NEU3NyAvKiBKU0lQ
Q0JpbmRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDEyMTJDRjlGMDAwMTI4QUZE
IC8qIEpTTlBNZXRob2QuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNDQ3Miw2ICsxNDQ3Nyw3IEBA
CiAJCQkJMUE2MjgwRjMxOTE5OTgyQTAwNkFEOUY5IC8qIFdlYktpdC5tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkQ5MkE3OEIyMTJCNkFCMTAwRjQ5M0ZEIC8qIFdlYktpdDJJbml0aWFsaXplLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUExODFBNzk4MjFBQ0M3NEIwMDU5QTMxNiAvKiBXZWJLaXRBZGRp
dGlvbnMubW0gaW4gU291cmNlcyAqLywKKwkJCQlDREYxQjkxQjI2NzAyNTU1MDAwN0VDMTAgLyog
V2ViS2l0U3dpZnRTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMx
ODUwMEYzMjgyRiAvKiBXZWJNRE5TUmVnaXN0ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQ5MkE3OEMyMTJCNkFCMTAwRjQ5M0ZEIC8qIFdlYk1vdXNlRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzFCQTkyNEQxNDg4MzEyNjAwNjJFREI1IC8qIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432348</attachid>
            <date>2021-06-27 00:59:16 -0700</date>
            <delta_ts>2021-06-27 01:56:02 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227392-20210627095915.patch</filename>
            <type>text/plain</type>
            <size>22184</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNmZjY0NjFlYmE1NjcyZGFlMGY4OWMy
NzFhYTQxNzViYTIxZTM4NDIuLmQzNDlhN2ZjYjM0YmRlYjY1OTljNzdmYzk5YjcyZTkyNzgwYWQ1
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDYtMjUgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBbaU9TXSBBZGQgc3VwcG9ydCBmb3Ig
cmVuZGVyaW5nIG1vZGVsIHJlc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MzkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTc3MDEz
Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBhIG5l
dyBjb21waWxlLXRpbWUgZmxhZyBpbmRpY2F0aW5nIHRoZSBhdmFpbGFiaWxpdHkgb2YgdGhlIEFT
VklubGluZVByZXZpZXcgU1BJIG9uIGlPUy4KKyAgICAgICAgV2Ugb25seSBkZWZpbmUgaXQgd2hl
biB0aGUgaGVhZGVyIGl0c2VsZiBpcyBwcmVzZW50IGZvciBub3cgdG8gYXZvaWQgaXNzdWVzIHdp
dGggb2xkZXIgaU9TCisgICAgICAgIDE1IFNES3MsIGJ1dCB1bHRpbWF0ZWx5IHdlIHdpbGwgb25s
eSB1c2UgdGhlIGlPUyB2ZXJzaW9uIGNoZWNrLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2
ZS5oOgorCiAyMDIxLTA2LTI0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBbY3NzLXNjcm9sbC1zbmFwXSBSZW1vdmUgRU5BQkxFX1NDUk9MTF9TTkFQ
IGNvbXBpbGUtdGltZSBvcHRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZGY2MmY1MDJhOGY4YjliMTQzNDhh
YzFkMTdiNmI4ZmNkODE5MmMxLi5lMzYxNDdmOWNkZjdhMWJmMTYyOGQxY2VhYmZlMTEyYTUyZWMw
YjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDYtMjUgIEFudG9pbmUgUXVp
bnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW01vZGVsXSBbaU9TXSBBZGQgc3Vw
cG9ydCBmb3IgcmVuZGVyaW5nIG1vZGVsIHJlc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3MzkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83OTc3MDEzNj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAg
IEVuc3VyZSB0aGUgYW5jaG9yIHBvaW50IGlzIHNldCBjb3JyZWN0bHkgZm9yIG1vZGVsIGNvbnRl
bnQgbGF5ZXJzLCBvdGhlcndpc2UgdGhlIHByZXZpZXcgbGF5ZXIgc2hvd3MKKyAgICAgICAgaXRz
IGNlbnRlciBhdCB0aGUgY29ybmVyIG9mIHRoZSBwYXJlbnQgbGF5ZXIncyBvcmlnaW4uCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvTW9kZWwpOgorCiAyMDIx
LTA2LTI0ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtN
b2RlbF0gQ3JlYXRlIGEgc2FuZGJveCBleHRlbnNpb24gZm9yIGEgdGVtcG9yYXJ5IGRpcmVjdG9y
eSB0byBzdG9yZSBtb2RlbCByZXNvdXJjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDgxMWQ2ODY2
YTM0MDc0YjNmNDc0ZTQxNzNjZjQ3NzZmMDM1ODA5NmMuLjFhZGE2ODg3YjA4ZjIyY2JlYWFlYjgw
OTEwOWU5ODgzOTVhZjVmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIxLTA2LTI1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAg
IFtNb2RlbF0gW2lPU10gQWRkIHN1cHBvcnQgZm9yIHJlbmRlcmluZyBtb2RlbCByZXNvdXJjZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzM5Mgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzk3NzAxMzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltIEhvcnRvbi4KKworICAgICAgICBEZWNsYXJlIHRoZSBBU1ZJbmxpbmVQcmV2aWV3IGNsYXNz
LgorCisgICAgICAgICogcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5oOgorCiAyMDIxLTA2
LTIzICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAgTm90IGFs
bCB1c2VzIG9mIEF1ZGlvVG9vbGJveCBmcmFtZXdvcmsgdXNlIHNvZnQgbGlua2luZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA1YWIwMGQ3ZDdlNmQ0NjQwYjNlNDQ5MWJkN2EzMTE1MWY5M2MzOWI1Li45ZjMzMzcwMDA3
OWNjMDdmZTA3OGVlNjBmZWJhNmZhZTI3ZjM3YWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBA
CisyMDIxLTA2LTI1ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFtNb2RlbF0gW2lPU10gQWRkIHN1cHBvcnQgZm9yIHJlbmRlcmluZyBtb2RlbCByZXNvdXJj
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzM5
MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzk3NzAxMzY+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgYSBuZXcgV0tNb2RlbFZpZXcgY2xhc3Mgd2hp
Y2ggbWFuYWdlcyBhbiBBU1ZJbmxpbmVQcmV2aWV3IGFuZCBkaXNwbGF5cyBpdHMgbGF5ZXIuCisg
ICAgICAgIFRoZSBjdXJyZW50IGluY2FybmF0aW9uIG9mIHRoZSBBU1ZJbmxpbmVQcmV2aWV3IFNQ
SSByZXF1aXJlcyBhIFVSTCB0byBhIGZpbGUgdG8gc3BlY2lmeQorICAgICAgICB0aGUgcmVzb3Vy
Y2UsIHNvIHdlIHdyaXRlIGEgZmlsZSB0byB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBhZGRlZCBp
biAyNzkyNjcgd2l0aCB0aGUgZGF0YQorICAgICAgICB3cmFwcGVkIGluIHRoZSBNb2RlbCBvYmpl
Y3QgcGFzc2VkIHRocm91Z2ggdGhlIHJlbW90ZSBsYXllciB0cmVlLiBVbHRpbWF0ZWx5IHdlIHdp
bGwgYmUKKyAgICAgICAgYWJsZSB0byB1c2UgYW4gU1BJIHRoYXQgZG9lcyBub3QgcmVxdWlyZSBh
IGZpbGUgYW5kIGluc3RlYWQgd2lsbCBhbGxvdyBkYXRhIHRvIGJlIHBhc3NlZAorICAgICAgICBk
aXJlY3RseSwgdGhpcyBpcyBwdXJlbHkgZm9yIGEgdGVtcG9yYXJ5IGV4cGVyaW1lbnRhdGlvbi4K
KworICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVy
VHJlZUhvc3RJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6Om1h
a2VOb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW9kZWxWaWV3Lmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb2RlbFZpZXcubW06IEFkZGVkLgorICAgICAgICAo
LVtXS01vZGVsVmlldyBwcmV2aWV3XSk6CisgICAgICAgICgtW1dLTW9kZWxWaWV3IGluaXRXaXRo
RnJhbWU6XSk6CisgICAgICAgICgtW1dLTW9kZWxWaWV3IGluaXRXaXRoQ29kZXI6XSk6CisgICAg
ICAgICgtW1dLTW9kZWxWaWV3IGluaXRXaXRoTW9kZWw6XSk6CisgICAgICAgICgtW1dLTW9kZWxW
aWV3IGNyZWF0ZUZpbGVGb3JNb2RlbDpdKToKKyAgICAgICAgKC1bV0tNb2RlbFZpZXcgbGF5b3V0
U3Vidmlld3NdKToKKyAgICAgICAgKC1bV0tNb2RlbFZpZXcgdXBkYXRlQm91bmRzXSk6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDYtMjQgIEFu
dG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW01vZGVsXSBDcmVh
dGUgYSBzYW5kYm94IGV4dGVuc2lvbiBmb3IgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHRvIHN0b3Jl
IG1vZGVsIHJlc291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZl
LmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAppbmRleCA5ZWU2OTc1MWM0MWQ0YmQ3
NTRhMGI5ZmVjY2U0Y2JkYjIyMTA4NzQ5Li5hNDA0ZjlkYTJhYzU3ZGM4YWI4NjU1YTZkZDA2Yzlm
ZmE2OGZiMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaApAQCAtMTAxMCw2ICsxMDEwLDEyIEBACiAj
ZGVmaW5lIEhBVkVfSU1BR0VfUkVTVFJJQ1RFRF9ERUNPRElORyAxCiAjZW5kaWYKIAorI2lmIGRl
ZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxBc3NldFZpZXdlci9BU1ZJbmxp
bmVQcmV2aWV3Lmg+KQorI2lmIChQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTUwMDAwCisjZGVmaW5l
IEhBVkVfQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TIDEKKyNlbmRpZgorI2VuZGlmCisKICNpZiBQ
TEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKICNkZWZpbmUgSEFW
RV9OU1VSTFBST1RPQ09MX1dJVEhfU0tJUEFQUFNTTyAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2lvcy9TeXN0ZW1QcmV2aWV3U1BJLmggYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5oCmluZGV4IGMzM2M4NTk0
ZTdiNzdlYjE4NTU4MTUwNDVjNGY0ZmMyOWMyZjcwNDUuLjYxYWUwYzM2N2IzM2M0YWViMDVmZTgw
ODk5MWEzZGViYTQyN2Q5ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2lvcy9TeXN0ZW1QcmV2aWV3U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
aW9zL1N5c3RlbVByZXZpZXdTUEkuaApAQCAtMzEsNiArMzEsMTAgQEAKIAogI2ltcG9ydCA8QXNz
ZXRWaWV3ZXIvQVNWVGh1bWJuYWlsVmlldy5oPgogCisjaWYgSEFWRShBUktJVF9JTkxJTkVfUFJF
VklFV19JT1MpCisjaW1wb3J0IDxBc3NldFZpZXdlci9BU1ZJbmxpbmVQcmV2aWV3Lmg+CisjZW5k
aWYKKwogI2Vsc2UKIAogI2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KQEAgLTY0LDQgKzY4LDIwIEBA
CiAKICNlbmRpZgogCisjaWYgSEFWRShBUktJVF9JTkxJTkVfUFJFVklFV19JT1MpCisKK0BjbGFz
cyBBU1ZJbmxpbmVQcmV2aWV3OworCitAaW50ZXJmYWNlIEFTVklubGluZVByZXZpZXcgOiBOU09i
amVjdAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDQUxheWVyICpsYXllcjsKKwor
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZTsKKy0gKHZvaWQpc2V0
dXBSZW1vdGVDb25uZWN0aW9uV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0Vycm9y
ICogX051bGxhYmxlIGVycm9yKSloYW5kbGVyOworLSAodm9pZClwcmVwYXJlUHJldmlld09mRmls
ZUF0VVJMOihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNFcnJvciAq
IF9OdWxsYWJsZSBlcnJvcikpaGFuZGxlcjsKKy0gKHZvaWQpdXBkYXRlRnJhbWU6KENHUmVjdClu
ZXdGcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQ0FGZW5jZUhhbmRsZSAqIF9OdWxs
YWJsZSBmZW5jZUhhbmRsZSwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikpaGFuZGxlcjsKKwor
QGVuZAorCisjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBjYzVlZjc4Mzg2OTBi
ZjkxZTc4Mjg0OTY3ODMzMTczNWU4MmY4YTlkLi45ZTUxMDI1MDI2ODE5MTkyMGExMDY1NWFiNjI5
ZDZhZmFmYTIxNDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTEyODUsNiArMTI4NSw3IEBAIHZvaWQg
R3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvTW9kZWwoUmVmUHRyPE1vZGVsPiYmIG1vZGVs
KQogICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5hbWUoTUFLRV9TVEFUSUNfU1RSSU5HX0lN
UEwoImNvbnRlbnRzIG1vZGVsIikpOwogI2VuZGlmCiAKKyAgICAgICAgbV9jb250ZW50c0xheWVy
LT5zZXRBbmNob3JQb2ludCh7IH0pOwogICAgICAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0g
Q29udGVudHNMYXllclB1cnBvc2U6Ok1vZGVsOwogICAgICAgICBjb250ZW50c0xheWVyQ2hhbmdl
ZCA9IHRydWU7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggMWY1
NTQwNGRmMGY3YTUyZGE1NmNlOGQ4NTA3NmE2NDMyMmNkNDU0ZS4uOTgwYTI1OTExZDBiODhkNTRi
YzZmYWQ3ZDBiMjg3NmJjYzc5MmQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTcw
LDYgKzcwLDcgQEAgZXh0ZXJuICJDIiB7CiAgICAgTShMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNr
ZXIpIFwKICAgICBNKE1lZGlhKSBcCiAgICAgTShNZW1vcnlQcmVzc3VyZSkgXAorICAgIE0oTW9k
ZWxFbGVtZW50KSBcCiAgICAgTShNb3VzZUhhbmRsaW5nKSBcCiAgICAgTShOZXR3b3JrKSBcCiAg
ICAgTShOZXR3b3JrQ2FjaGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA1YTk1MTRjZGY3
OTRjYmRlNzllOGM0Y2YxOTc5OGMzZjE4MWJkM2E4Li43NTk1MTkxZmNjYTE3MjJkYzNjNDM5MjNi
ZWJjNTRjMzFiZTAyMGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00ODksNiArNDg5LDcg
QEAgVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1NPYmpDU2VjdXJpdHlPcmln
aW4ubW0KIFVJUHJvY2Vzcy9pb3MvV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXpl
ci5tbQogVUlQcm9jZXNzL2lvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbQog
VUlQcm9jZXNzL2lvcy9XS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IubW0KK1VJUHJvY2Vzcy9p
b3MvV0tNb2RlbFZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1t
CiBVSVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lv
cy9XS1Bhc3N3b3JkVmlldy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0SU9T
Lm1tCmluZGV4IDRhNWJiZjZlNzM2ODJlYTVjYTg2ZGQxNzViMWU3ODg2ZWMzNDE5YjkuLjMyZTcx
NDViMGI4NjQ5NjIyYjhhNzY0MDM4MGY1NWFlNGY0MWI2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1Jl
bW90ZUxheWVyVHJlZUhvc3RJT1MubW0KQEAgLTM1LDYgKzM1LDEwIEBACiAjaW1wb3J0IDxVSUtp
dC9VSVNjcm9sbFZpZXcuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5o
PgogCisjaWYgSEFWRShBUktJVF9JTkxJTkVfUFJFVklFV19JT1MpCisjaW1wb3J0ICJXS01vZGVs
Vmlldy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKQEAgLTk1LDYgKzk5LDggQEAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxheWVyVHJl
ZU5vZGU+IFJlbW90ZUxheWVyVHJlZUhvc3Q6Om1ha2VOb2RlKGNvbnN0IFJlbW90ZUwKICAgICBj
YXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTW9kZWxMYXllcjoKICNpZiBFTkFCTEUoU0VQ
QVJBVEVEX01PREVMKQogICAgICAgICByZXR1cm4gbWFrZVdpdGhWaWV3KGFkb3B0TlMoW1tXS1Nl
cGFyYXRlZE1vZGVsVmlldyBhbGxvY10gaW5pdFdpdGhNb2RlbDoqcHJvcGVydGllcy5tb2RlbF0p
KTsKKyNlbGlmIEhBVkUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorICAgICAgICByZXR1cm4g
bWFrZVdpdGhWaWV3KGFkb3B0TlMoW1tXS01vZGVsVmlldyBhbGxvY10gaW5pdFdpdGhNb2RlbDoq
cHJvcGVydGllcy5tb2RlbF0pKTsKICNlbHNlCiAgICAgICAgIHJldHVybiBtYWtlV2l0aFZpZXco
YWRvcHROUyhbW1dLQ29tcG9zaXRpbmdWaWV3IGFsbG9jXSBpbml0XSkpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb2RlbFZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vZGVsVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZmUyYjI4
OTdjOGVmZDJkNzljZTA2NTAzMWE2NmZlNDkxZWJkZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb2RlbFZpZXcuaApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEhBVkUoQVJL
SVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorCisjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVWaWV3cy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBNb2RlbDsKK30KKworT0JKQ19DTEFTUyBB
U1ZJbmxpbmVQcmV2aWV3OworCitAaW50ZXJmYWNlIFdLTW9kZWxWaWV3IDogV0tDb21wb3NpdGlu
Z1ZpZXcKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTW9kZWw6KFdlYkNvcmU6Ok1vZGVsJilt
b2RlbCBOU19ERVNJR05BVEVEX0lOSVRJQUxJWkVSOworCistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhGcmFtZTooQ0dSZWN0KWZyYW1lIE5TX1VOQVZBSUxBQkxFOworLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlciBOU19VTkFWQUlMQUJMRTsKKworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBBU1ZJbmxpbmVQcmV2aWV3ICpwcmV2aWV3OworCitAZW5k
CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tN
b2RlbFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb2RlbFZpZXcubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjQ5ZTdmYmU0NTI4MWMzZWU0YzUyMTM0MTU5MjZiM2EzOWQ0YjQyNQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vZGVsVmlldy5t
bQpAQCAtMCwwICsxLDE2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tNb2RlbFZpZXcuaCIKKwor
I2lmIEhBVkUoQVJLSVRfSU5MSU5FX1BSRVZJRVdfSU9TKQorCisjaW1wb3J0ICJMb2dnaW5nLmgi
CisjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVWaWV3cy5oIgorI2ltcG9ydCAiV2Vic2l0ZURhdGFT
dG9yZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9Nb2RlbC5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2Nv
YS9RdWFydHpDb3JlU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2lvcy9TeXN0ZW1QcmV2aWV3U1BJ
Lmg+CisjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgorI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0u
aD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5o
PgorI2ltcG9ydCA8d3RmL1VVSUQuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKEFz
c2V0Vmlld2VyKTsKK1NPRlRfTElOS19DTEFTUyhBc3NldFZpZXdlciwgQVNWSW5saW5lUHJldmll
dyk7CisKK0BpbXBsZW1lbnRhdGlvbiBXS01vZGVsVmlldyB7CisgICAgUmV0YWluUHRyPEFTVklu
bGluZVByZXZpZXc+IF9wcmV2aWV3OworICAgIFN0cmluZyBfZmlsZVBhdGg7CisgICAgQ0dSZWN0
IF9sYXN0Qm91bmRzOworfQorCistIChBU1ZJbmxpbmVQcmV2aWV3ICopcHJldmlldworeworICAg
IHJldHVybiBfcHJldmlldy5nZXQoKTsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJh
bWU6KENHUmVjdClmcmFtZQoreworICAgIHJldHVybiBuaWw7Cit9CisKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aENvZGVyOihOU0NvZGVyICopY29kZXIKK3sKKyAgICByZXR1cm4gbmlsOworfQor
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhNb2RlbDooV2ViQ29yZTo6TW9kZWwmKW1vZGVsCit7
CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm9dOworICAgIGlmICgh
c2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIGlmICghW3NlbGYgY3JlYXRlRmlsZUZv
ck1vZGVsOm1vZGVsXSkKKyAgICAgICAgcmV0dXJuIHNlbGY7CisKKyAgICBfcHJldmlldyA9IGFk
b3B0TlMoW2FsbG9jQVNWSW5saW5lUHJldmlld0luc3RhbmNlKCkgaW5pdFdpdGhGcmFtZTpzZWxm
LmJvdW5kc10pOworICAgIFtzZWxmLmxheWVyIGFkZFN1YmxheWVyOltfcHJldmlldyBsYXllcl1d
OworCisgICAgYXV0byB1cmwgPSBhZG9wdE5TKFtbTlNVUkwgYWxsb2NdIGluaXRGaWxlVVJMV2l0
aFBhdGg6X2ZpbGVQYXRoXSk7CisKKyAgICBbX3ByZXZpZXcgc2V0dXBSZW1vdGVDb25uZWN0aW9u
V2l0aENvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqY29udGV4dEVycm9yKSB7CisgICAgICAg
IGlmIChjb250ZXh0RXJyb3IpIHsKKyAgICAgICAgICAgIExPRyhNb2RlbEVsZW1lbnQsICJVbmFi
bGUgdG8gY3JlYXRlIHJlbW90ZSBjb25uZWN0aW9uLCBlcnJvcjogJUAiLCBbY29udGV4dEVycm9y
IGxvY2FsaXplZERlc2NyaXB0aW9uXSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBbX3ByZXZpZXcgcHJlcGFyZVByZXZpZXdPZkZpbGVBdFVSTDp1cmwuZ2V0KCkg
Y29tcGxldGlvbkhhbmRsZXI6XihOU0Vycm9yICpsb2FkRXJyb3IpIHsKKyAgICAgICAgICAgIGlm
IChsb2FkRXJyb3IpIHsKKyAgICAgICAgICAgICAgICBMT0coTW9kZWxFbGVtZW50LCAiVW5hYmxl
IHRvIGxvYWQgZmlsZSwgZXJyb3I6ICVAIiwgW2xvYWRFcnJvciBsb2NhbGl6ZWREZXNjcmlwdGlv
bl0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgTE9HKE1vZGVsRWxlbWVudCwgIkZpbGUgbG9hZGVkIHN1Y2Nlc3NmdWxseS4iKTsKKyAgICAg
ICAgICAgIFtzZWxmIHVwZGF0ZUJvdW5kc107CisgICAgICAgIH1dOworICAgIH1dOworCisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKEJPT0wpY3JlYXRlRmlsZUZvck1vZGVsOihXZWJDb3JlOjpN
b2RlbCYpbW9kZWwKK3sKKyAgICBhdXRvIHBhdGhUb0RpcmVjdG9yeSA9IFdlYktpdDo6V2Vic2l0
ZURhdGFTdG9yZTo6ZGVmYXVsdE1vZGVsRWxlbWVudENhY2hlRGlyZWN0b3J5KCk7CisgICAgaWYg
KHBhdGhUb0RpcmVjdG9yeS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIGF1
dG8gZGlyZWN0b3J5RXhpc3RzID0gRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhwYXRoVG9EaXJlY3Rv
cnkpOworICAgIGlmIChkaXJlY3RvcnlFeGlzdHMgJiYgRmlsZVN5c3RlbTo6ZmlsZVR5cGVGb2xs
b3dpbmdTeW1saW5rcyhwYXRoVG9EaXJlY3RvcnkpICE9IEZpbGVTeXN0ZW06OkZpbGVUeXBlOjpE
aXJlY3RvcnkpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBOTzsKKyAgICB9CisKKyAgICBpZiAoIWRpcmVjdG9yeUV4aXN0cyAmJiAhRmlsZVN5c3RlbTo6
bWFrZUFsbERpcmVjdG9yaWVzKHBhdGhUb0RpcmVjdG9yeSkpIHsKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBOTzsKKyAgICB9CisKKyAgICBhdXRvIGZpbGVO
YW1lID0gRmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUoY3JlYXRlQ2Fub25pY2FsVVVJRFN0
cmluZygpKSArICIudXNkeiI7CisgICAgYXV0byBmaWxlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChwYXRoVG9EaXJlY3RvcnksIGZpbGVOYW1lKTsKKyAgICBhdXRv
IGZpbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShmaWxlUGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9w
ZW5Nb2RlOjpXcml0ZSk7CisgICAgaWYgKGZpbGUgPD0gMCkKKyAgICAgICAgcmV0dXJuIE5POwor
CisgICAgYXV0byBieXRlQ291bnQgPSBzdGF0aWNfY2FzdDxzdGQ6OnNpemVfdD4oRmlsZVN5c3Rl
bTo6d3JpdGVUb0ZpbGUoZmlsZSwgbW9kZWwuZGF0YSgpLT5kYXRhKCksIG1vZGVsLmRhdGEoKS0+
c2l6ZSgpKSk7CisgICAgQVNTRVJUX1VOVVNFRChieXRlQ291bnQsIGJ5dGVDb3VudCA9PSBtb2Rl
bC5kYXRhKCktPnNpemUoKSk7CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGZpbGUpOworICAg
IF9maWxlUGF0aCA9IGZpbGVQYXRoOworCisgICAgcmV0dXJuIFlFUzsKK30KKworLSAodm9pZCls
YXlvdXRTdWJ2aWV3cworeworICAgIFtzdXBlciBsYXlvdXRTdWJ2aWV3c107CisgICAgaWYgKCFD
R1JlY3RFcXVhbFRvUmVjdChfbGFzdEJvdW5kcywgQ0dSZWN0WmVybykpCisgICAgICAgIFtzZWxm
IHVwZGF0ZUJvdW5kc107Cit9CisKKy0gKHZvaWQpdXBkYXRlQm91bmRzCit7CisgICAgYXV0byBi
b3VuZHMgPSBzZWxmLmJvdW5kczsKKyAgICBpZiAoQ0dSZWN0RXF1YWxUb1JlY3QoX2xhc3RCb3Vu
ZHMsIGJvdW5kcykpCisgICAgICAgIHJldHVybjsKKworICAgIF9sYXN0Qm91bmRzID0gYm91bmRz
OworCisgICAgW19wcmV2aWV3IHVwZGF0ZUZyYW1lOmJvdW5kcyBjb21wbGV0aW9uSGFuZGxlcjpe
KENBRmVuY2VIYW5kbGUgKmZlbmNlSGFuZGxlLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBp
ZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIExPRyhNb2RlbEVsZW1lbnQsICJVbmFibGUgdG8gdXBk
YXRlIGZyYW1lLCBlcnJvcjogJUAiLCBbZXJyb3IgbG9jYWxpemVkRGVzY3JpcHRpb25dKTsKKyAg
ICAgICAgICAgIFtmZW5jZUhhbmRsZSBpbnZhbGlkYXRlXTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIFtzZWxmLmxheWVyLmNvbnRleHQgYWRkRmVuY2U6ZmVuY2VI
YW5kbGVdOworICAgICAgICBbZmVuY2VIYW5kbGUgaW52YWxpZGF0ZV07CisgICAgfV07Cit9CisK
K0BlbmQKKworI2VuZGlmCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGMwOTM1YzUyNGRjYjQ4NWNhYjVjNDAwMDhjOGRlY2IzMzNiYzQ1
YTguLmNlNDU1MDdjZDIzNDUwYzdlZTgxOGExNjFkZGFmMjQwODM4NzE3ZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMyMiw2ICsx
MzIyLDcgQEAKIAkJNkVFODQ5QzgxMzY4RDkzOTAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0
ZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkVF
ODQ5QzYxMzY4RDkyRDAwMzhENDgxIC8qIFdLSW5zcGVjdG9yUHJpdmF0ZU1hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcxMTcyNUE5MjI4RDU2
NDMwMDAxODUxNCAvKiBXZWJzaXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzExNzI1QTgy
MjhENTYzQTAwMDE4NTE0IC8qIFdlYnNpdGVMZWdhY3lPdmVyZmxvd1Njcm9sbGluZ1RvdWNoUG9s
aWN5LmggKi87IH07CiAJCTcxQTY3NkE2MjJDNjIzMjUwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDcxQTY3NkE0MjJDNjIzMTgwMDdENjI5NSAvKiBXS1RvdWNoQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuaCAqLzsgfTsKKwkJNzFCQUE3MzMyNUZGRDA5ODAwRDdDRDVEIC8qIFdLTW9k
ZWxWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MUJBQTczMTI1RkZDQ0JBMDBEN0NENUQgLyogV0tNb2RlbFZpZXcuaCAqLzsgfTsKIAkJNzFGQjgx
MEIyMjYwNjI3RTAwMzIzNjc3IC8qIFdlYnNpdGVTaW11bGF0ZWRNb3VzZUV2ZW50c0Rpc3BhdGNo
UG9saWN5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MUZCODEwQTIyNjA2MjdBMDAzMjM2NzcgLyogV2Vic2l0ZVNpbXVsYXRlZE1vdXNlRXZlbnRzRGlz
cGF0Y2hQb2xpY3kuaCAqLzsgfTsKIAkJNzI4RTg2RjExNzk1MTg4QzAwODc4NzlFIC8qIFdlYkNv
bG9yUGlja2VyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3MjhFODZFRjE3OTUxODhDMDA4Nzg3OUUgLyogV2ViQ29sb3JQaWNrZXJNYWMuaCAqLzsg
fTsKIAkJNzVBOEQyQzgxODdDQ0ZBQjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzVBOEQyQzQxODdD
Q0Y5RjAwQzM5QzlFIC8qIFdLV2Vic2l0ZURhdGFTdG9yZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKQEAgLTQ1ODAsNiArNDU4MSw4IEBACiAJCTcxMTcy
NUE4MjI4RDU2M0EwMDAxODUxNCAvKiBXZWJzaXRlTGVnYWN5T3ZlcmZsb3dTY3JvbGxpbmdUb3Vj
aFBvbGljeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlTGVnYWN5
T3ZlcmZsb3dTY3JvbGxpbmdUb3VjaFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3MUE2NzZBNDIyQzYyMzE4MDA3RDYyOTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVG91Y2hBY3Rpb25H
ZXN0dXJlUmVjb2duaXplci5oOyBwYXRoID0gaW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2du
aXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MUE2NzZBNTIyQzYyMzE4MDA3
RDYyOTUgLyogV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
Lm1tOyBwYXRoID0gaW9zL1dLVG91Y2hBY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzFCQUE3MzEyNUZGQ0NCQTAwRDdDRDVEIC8qIFdLTW9k
ZWxWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW9kZWxWaWV3Lmg7
IHBhdGggPSBpb3MvV0tNb2RlbFZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NzFCQUE3MzIyNUZGQ0NCQTAwRDdDRDVEIC8qIFdLTW9kZWxWaWV3Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tNb2RlbFZpZXcubW07IHBhdGggPSBpb3MvV0tN
b2RlbFZpZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxRkI4MTBBMjI2MDYy
N0EwMDMyMzY3NyAvKiBXZWJzaXRlU2ltdWxhdGVkTW91c2VFdmVudHNEaXNwYXRjaFBvbGljeS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJzaXRlU2ltdWxhdGVkTW91c2VF
dmVudHNEaXNwYXRjaFBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjI3
ODAwQjI0MDhCRDdEMDA3RDM3NkIgLyogUGxhdGZvcm1SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3MjZENTZERDI1M0E2NDgxMDAwMkVGOTAgLyogUmVtb3Rl
UmVzb3VyY2VDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZXNvdXJjZUNhY2hl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc3OTIsNiArNzc5NSw4IEBACiAJ
CQkJOTMzREY4MkYxQjNCQzBCNDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xs
ZXIubW0gKi8sCiAJCQkJMkRENUUxMjcyMTBBREM3QTAwREI2MDEyIC8qIFdLS2V5Ym9hcmRTY3Jv
bGxpbmdBbmltYXRvci5oICovLAogCQkJCTJERDVFMTI2MjEwQURDN0EwMERCNjAxMiAvKiBXS0tl
eWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IubW0gKi8sCisJCQkJNzFCQUE3MzEyNUZGQ0NCQTAwRDdD
RDVEIC8qIFdLTW9kZWxWaWV3LmggKi8sCisJCQkJNzFCQUE3MzIyNUZGQ0NCQTAwRDdDRDVEIC8q
IFdLTW9kZWxWaWV3Lm1tICovLAogCQkJCTk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01v
dXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLywKIAkJCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyog
V0tNb3VzZURldmljZU9ic2VydmVyLm1tICovLAogCQkJCTJEQjk0Mjk3MjM0RTdBN0YwMEU3NzZB
RCAvKiBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKQEAgLTEyODQ1LDYgKzEyODUwLDcg
QEAKIAkJCQk1Q0FCREM4NjIyQzQwRkRFMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUMxMUUxNjk0MjEyQjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNw
bGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTFBOEREQjIwREREMUFDMDA2MEQzNEYgLyogV0tN
b2NrTWVkaWFEZXZpY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTcxQkFBNzMzMjVGRkQwOTgwMEQ3
Q0Q1RCAvKiBXS01vZGVsVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTUwRjI4ODAyNTI0MTRF
QTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkRCOTQyOTkyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc1RkUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZUFy
cmF5LmggaW4gSGVhZGVycyAqLywKQEAgLTE0MTI4LDcgKzE0MTM0LDYgQEAKIAkJCQlDREE5M0RC
MTIyRjhCQ0Y0MDA0OTBBNjkgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljUGFyYW1ldGVy
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMUExNTJENzI0RTVBMjlBMDA5NzhDOEIgLyogSGFu
ZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ0MjE0
NjU2MUIwMDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQ0RGMUI5MUIyNjcwMjU1NTAwMDdFQzEwIC8qIFdlYktpdFN3aWZ0U29mdExpbmsu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkyNzQ5RjY0NTIxNDY1NjFFMDA4MzgwQkYgLyogSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QkY1RUM2NDI1NDEx
NDU2MDA5ODRFNzcgLyogSlNJUENCaW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEz
NDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MTQ0NzIsNiArMTQ0NzcsNyBAQAogCQkJCTFBNjI4MEYzMTkxOTk4MkEwMDZBRDlGOSAvKiBXZWJL
aXQubSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzhCMjEyQjZBQjEwMEY0OTNGRCAvKiBXZWJL
aXQySW5pdGlhbGl6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTgxQTc5ODIxQUNDNzRCMDA1
OUEzMTYgLyogV2ViS2l0QWRkaXRpb25zLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RGMUI5MUIy
NjcwMjU1NTAwMDdFQzEwIC8qIFdlYktpdFN3aWZ0U29mdExpbmsubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MkYgLyogV2ViTUROU1JlZ2lzdGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzhDMjEyQjZBQjEwMEY0OTNGRCAv
KiBXZWJNb3VzZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQkE5MjREMTQ4ODMxMjYw
MDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>