<?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>194216</bug_id>
          
          <creation_ts>2019-02-04 03:01:05 -0800</creation_ts>
          <short_desc>[WPE] Do not use a sync IPC message to send the host FD to the web process</short_desc>
          <delta_ts>2019-02-11 00:35:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=194494</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1501782</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-02-04 03:01:05 -0800</bug_when>
    <thetext>It can be sent as a web page creation parameter instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501783</commentid>
    <comment_count>1</comment_count>
      <attachid>361049</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-02-04 03:03:31 -0800</bug_when>
    <thetext>Created attachment 361049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504759</commentid>
    <comment_count>2</comment_count>
      <attachid>361049</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-10 16:48:45 -0800</bug_when>
    <thetext>Comment on attachment 361049
Patch

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

Not thrilled with the use of &quot;FD&quot; in the patch.

&gt; Source/WebKit/UIProcess/API/wpe/PageClientImpl.h:146
&gt; +    IPC::Attachment hostFD();

This should say &quot;override&quot; or &quot;final&quot;; applies even though the underlying function is a pure virtual. My preference is final, but it seems we have a mix in this file.

&gt; Source/WebKit/UIProcess/API/wpe/WPEView.h:57
&gt; +    virtual ~View() = default;

I suggest we consider just deleting this line entirely, because this is what happens if we don’t declare the destructor at all, and I think it’s elegant to just let that happen. OK this way too, though.

&gt; Source/WebKit/UIProcess/PageClient.h:488
&gt; +#if PLATFORM(WPE)
&gt; +    virtual IPC::Attachment hostFD() = 0;
&gt; +#endif

This is a messy pattern, but I suppose it’s what we are using for lots of other things above, so it’s not great for me to complain just about this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504811</commentid>
    <comment_count>3</comment_count>
      <attachid>361660</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-02-10 23:05:44 -0800</bug_when>
    <thetext>Created attachment 361660
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504823</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-02-11 00:12:11 -0800</bug_when>
    <thetext>Committed r241260: &lt;https://trac.webkit.org/changeset/241260&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361049</attachid>
            <date>2019-02-04 03:03:31 -0800</date>
            <delta_ts>2019-02-10 23:05:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wpe-host-fd.diff</filename>
            <type>text/plain</type>
            <size>24316</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNjI3YzkxNDEwNDYuLjY4M2ExZTQxOWY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQxIEBACisyMDE5LTAyLTA0ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV1BFXSBEbyBub3QgdXNlIGEgc3luYyBJUEMgbWVzc2FnZSB0byBz
ZW5kIHRoZSBob3N0IEZEIHRvIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSXQgY2FuIGJlIHNlbnQgYXMgYSB3ZWIgcGFnZSBj
cmVhdGlvbiBwYXJhbWV0ZXIgaW5zdGVhZC4KKworICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtl
OgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNvdXJj
ZXNXUEUudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdl
clByb3h5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3Np
dGluZ01hbmFnZXJQcm94eS5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6Omhvc3RGRCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFn
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcDoK
KyAgICAgICAgKFdLV1BFOjptX2JhY2tlbmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L1dQRVZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2hvc3RGRCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVsZWFz
ZUhvc3RGRCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9BY2NlbGVyYXRlZFN1
cmZhY2VXUEUuY3BwOgorICAgICAgICAoV2ViS2l0OjpBY2NlbGVyYXRlZFN1cmZhY2VXUEU6OkFj
Y2VsZXJhdGVkU3VyZmFjZVdQRSk6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFj
ZVdQRTo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9BY2Nl
bGVyYXRlZFN1cmZhY2VXUEUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0Nv
bXBvc2l0aW5nTWFuYWdlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaDogUmVtb3ZlZC4KKwogMjAxOS0wMS0xOCAgUGhp
bGlwcGUgTm9ybWFuZCA8cG5vcm1hbmRAaWdhbGlhLmNvbT4gYW5kIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIEFkZCBBUEkgZm9yIHdl
YnZpZXcgYmFja2dyb3VuZCBjb2xvciBjb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFr
ZQppbmRleCBhYWMzZGU5M2NjMy4uMWQ2ZDc5OTUxZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFr
ZQpAQCAtNzcsOCArNzcsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXRfVU5JRklFRF9TT1VSQ0VfTElT
VF9GSUxFUwogbGlzdChBUFBFTkQgV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29y
a1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5tZXNz
YWdlcy5pbgogCi0gICAgVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KLQogICAgIFVJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9MZWdh
Y3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogKQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDFi
MjJkOTU0YmYyLi4wNjRhNDc4Yzc1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk2LDYgKzk2LDkgQEAgdm9pZCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVuY29kZXIgPDwgc21hcnRJbnNlcnREZWxldGVF
bmFibGVkOwogICAgIGVuY29kZXIgPDwgYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM7Cisj
ZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgZW5jb2RlciA8PCBob3N0RkQ7CiAjZW5kaWYK
ICAgICBlbmNvZGVyIDw8IGFwcGxlTWFpbFBhZ2luYXRpb25RdWlya0VuYWJsZWQ7CiAgICAgZW5j
b2RlciA8PCBhcHBsZU1haWxMaW5lc0NsYW1wRW5hYmxlZDsKQEAgLTI3Myw2ICsyNzYsMTEgQEAg
T3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1l
dGVycy5ob3N0RkQpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworI2VuZGlmCisKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXBwbGVNYWlsUGFnaW5hdGlvblF1aXJr
RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCA2ZmFlMzdlODQy
Ny4uODc4N2I1OWMwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE1NCw2ICsxNTQsOSBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBzbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQ7CiAgICAgVmVjdG9yPFN0cmluZz4gYWRkaXRpb25hbFN1cHBvcnRlZElt
YWdlVHlwZXM7CisjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgSVBDOjpBdHRhY2htZW50
IGhvc3RGRDsKICNlbmRpZgogICAgIGJvb2wgYXBwbGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxl
ZDsKICAgICBib29sIGFwcGxlTWFpbExpbmVzQ2xhbXBFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQK
aW5kZXggOGI1OGJhYWJmZDYuLjkxMTc0OGJmNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNXUEUudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKQEAgLTE2
Niw3ICsxNjYsNiBAQCBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGEuY3BwIEBu
by11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2luZG93UHJvcGVydGllcy5jcHAg
QG5vLXVuaWZ5CiAKLVVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNw
cCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBAbm8tdW5p
ZnkKIFVJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcCBAbm8tdW5p
ZnkKIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdENvbG9yLmNwcCBAbm8tdW5pZnkKQEAgLTI0OSw3
ICsyNDgsNiBAQCBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKIFdlYlByb2Nlc3MvV2ViUGFnZS9nc3RyZWFt
ZXIvV2ViUGFnZUdTdHJlYW1lci5jcHAKIAogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9BY2NlbGVy
YXRlZFN1cmZhY2VXUEUuY3BwIEBuby11bmlmeQotV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21w
b3NpdGluZ01hbmFnZXIuY3BwCiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJ
V1BFLmNwcAogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMTU1NDdkZDhjMC4u
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3Np
dGluZ01hbmFnZXJQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgotCi0jaW5jbHVk
ZSAiQXR0YWNobWVudC5oIgotI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCIKLSNpbmNsdWRlICJXUEVWaWV3LmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIK
LSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlIDx3cGUvd3BlLmg+Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1Db21wb3NpdGluZ01hbmFnZXJQcm94eTo6Q29tcG9zaXRpbmdN
YW5hZ2VyUHJveHkoV0tXUEU6OlZpZXcmIHZpZXcpCi0gICAgOiBtX3ZpZXcodmlldykKLXsKLX0K
LQotQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6On5Db21wb3NpdGluZ01hbmFnZXJQcm94eSgpID0g
ZGVmYXVsdDsKLQotdm9pZCBDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZSgpCi17
Ci0gICAgbV92aWV3LnBhZ2UoKS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fdmlldy5wYWdlKCkucGFnZUlEKCksICp0aGlzKTsKLX0KLQotdm9pZCBDb21wb3Np
dGluZ01hbmFnZXJQcm94eTo6ZmluYWxpemUoKQotewotICAgIG1fdmlldy5wYWdlKCkucHJvY2Vz
cygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpDb21wb3Np
dGluZ01hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3ZpZXcucGFnZSgpLnBh
Z2VJRCgpKTsKLX0KLQotdm9pZCBDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6ZXN0YWJsaXNoQ29u
bmVjdGlvbihJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rpb25IYW5kbGUpCi17Ci0gICAgY29ubmVj
dGlvbkhhbmRsZSA9IElQQzo6QXR0YWNobWVudCh3cGVfdmlld19iYWNrZW5kX2dldF9yZW5kZXJl
cl9ob3N0X2ZkKG1fdmlldy5iYWNrZW5kKCkpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5n
TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0
aW5nTWFuYWdlclByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyYzJkZmM2
MmVlLi4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL0Nv
bXBvc2l0aW5nTWFuYWdlclByb3h5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCi0jaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+Ci0KLW5hbWVzcGFjZSBJUEMgewotY2xhc3MgQXR0YWNobWVudDsKLX0KLQotbmFt
ZXNwYWNlIFdLV1BFIHsKLWNsYXNzIFZpZXc7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1j
bGFzcyBDb21wb3NpdGluZ01hbmFnZXJQcm94eSBmaW5hbCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VS
ZWNlaXZlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkpOwotcHVibGljOgotICAgIENvbXBvc2l0aW5nTWFuYWdlclByb3h5KFdLV1BFOjpWaWV3Jik7
Ci0gICAgdmlydHVhbCB+Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKTsKLQotICAgIHZvaWQgaW5p
dGlhbGl6ZSgpOwotICAgIHZvaWQgZmluYWxpemUoKTsKLQotcHJpdmF0ZToKLSAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCBkaWRSZWNlaXZlU3lu
Y01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRy
PElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2Rlcikgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGVzdGFi
bGlzaENvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50Jik7Ci0KLSAgICBXS1dQRTo6VmlldyYgbV92
aWV3OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjMwZWY5MWY4MDgu
LjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCww
IEBACi0jIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKLSMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgotIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgotIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi1tZXNzYWdlcyAtPiBDb21wb3NpdGluZ01hbmFnZXJQ
cm94eSB7Ci0gICAgRXN0YWJsaXNoQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29u
bmVjdGlvbkhhbmRsZSkgTGVnYWN5U3luYwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCAyMjMzNjE1MGZlYS4uZWMwNjI5
YTZlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNs
aWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNs
aWVudEltcGwuY3BwCkBAIC01MSw2ICs1MSwxMSBAQCBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCog
UGFnZUNsaWVudEltcGw6OnZpZXdCYWNrZW5kKCkKICAgICByZXR1cm4gbV92aWV3LmJhY2tlbmQo
KTsKIH0KIAorSVBDOjpBdHRhY2htZW50IFBhZ2VDbGllbnRJbXBsOjpob3N0RkQoKQoreworICAg
IHJldHVybiB3cGVfdmlld19iYWNrZW5kX2dldF9yZW5kZXJlcl9ob3N0X2ZkKG1fdmlldy5iYWNr
ZW5kKCkpOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gUGFnZUNsaWVu
dEltcGw6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQog
ewogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEFjY2VsZXJhdGVkRHJhd2luZ0FyZWFQcm94
eT4obV92aWV3LnBhZ2UoKSwgcHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggYjY5OWYyOWY5YjIuLjk0ZmEzZTQyMmFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1w
bC5oCkBAIC0xNDMsNiArMTQzLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkRmluaXNoUHJv
Y2Vzc2luZ0FsbFBlbmRpbmdNb3VzZUV2ZW50cygpIGZpbmFsIHsgfQogCisgICAgSVBDOjpBdHRh
Y2htZW50IGhvc3RGRCgpOworCiAgICAgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVj
dGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkgb3ZlcnJpZGU7CiAKICAgICBXS1dQ
RTo6VmlldyYgbV92aWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XUEVWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmll
dy5jcHAKaW5kZXggYWZkYmQwN2RmYjYuLmViMTNiNDNlYjAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKQEAgLTQ4LDcgKzQ4LDYgQEAgVmlldzo6Vmll
dyhzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCwgY29uc3QgQVBJOjpQYWdlQ29uZmln
dXJhdGlvbiYgYmFzZUMKICNpZiAhZGVmaW5lZChXUEVfQkFDS0VORF9DSEVDS19WRVJTSU9OKSB8
fCAhV1BFX0JBQ0tFTkRfQ0hFQ0tfVkVSU0lPTigxLCAxLCAwKQogICAgICwgbV92aWV3U3RhdGVG
bGFncyB7IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlLCBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQsIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJs
ZSwgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNJbldpbmRvdyB9CiAjZW5kaWYKLSAgICAsIG1f
Y29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKnRoaXMpCiAgICAgLCBtX2JhY2tlbmQoYmFja2VuZCkK
IHsKICAgICBBU1NFUlQobV9iYWNrZW5kKTsKQEAgLTc1LDggKzc0LDYgQEAgVmlldzo6Vmlldyhz
dHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJh
dGlvbiYgYmFzZUMKICAgICAgICAgcG9vbC0+c3RhcnRNZW1vcnlTYW1wbGVyKDApOwogI2VuZGlm
CiAKLSAgICBtX2NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmluaXRpYWxpemUoKTsKLQogICAgIHN0
YXRpYyBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZF9jbGllbnQgc19iYWNrZW5kQ2xpZW50ID0gewog
ICAgICAgICAvLyBzZXRfc2l6ZQogICAgICAgICBbXSh2b2lkKiBkYXRhLCB1aW50MzJfdCB3aWR0
aCwgdWludDMyX3QgaGVpZ2h0KQpAQCAtMTYyLDExICsxNTksNiBAQCBWaWV3OjpWaWV3KHN0cnVj
dCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9u
JiBiYXNlQwogICAgIG1fcGFnZVByb3h5LT5pbml0aWFsaXplV2ViUGFnZSgpOwogfQogCi1WaWV3
Ojp+VmlldygpCi17Ci0gICAgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94eS5maW5hbGl6ZSgpOwot
fQotCiB2b2lkIFZpZXc6OnNldENsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpWaWV3Q2xpZW50
PiYmIGNsaWVudCkKIHsKICAgICBpZiAoIWNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XUEVWaWV3LmgKaW5kZXggOTliZjI3ODk3NWQuLmRiODNlODM0ODQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaApAQCAtMjYsNyArMjYsNiBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJDb21wb3Np
dGluZ01hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CkBA
IC01NSw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBuZXcgVmlldyhi
YWNrZW5kLCBjb25maWd1cmF0aW9uKTsKICAgICB9Ci0gICAgdmlydHVhbCB+VmlldygpOworICAg
IHZpcnR1YWwgflZpZXcoKSA9IGRlZmF1bHQ7CiAKICAgICAvLyBDbGllbnQgbWV0aG9kcwogICAg
IHZvaWQgc2V0Q2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OlZpZXdDbGllbnQ+JiYpOwpAQCAt
OTAsNyArODksNiBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOwogICAg
IE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBtX3ZpZXdTdGF0ZUZsYWdz
OwogCi0gICAgV2ViS2l0OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eSBtX2NvbXBvc2l0aW5nTWFu
YWdlclByb3h5OwogICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBtX2JhY2tlbmQ7CiAKICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
aW5kZXggMzhjNjU1MmJiMWUuLjM1OWMzZjY1MTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oCkBAIC00ODMsNiArNDgzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxQb2ludGVyc0Zvckdlc3R1cmVSZWNvZ25pemVyKFVJR2VzdHVyZVJlY29nbml6ZXIqKSB7
IH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwgSVBDOjpBdHRhY2ht
ZW50IGhvc3RGRCgpID0gMDsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBhNjZkOGI1NDExMS4u
ZTIxMTRmMjE1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApA
QCAtNjg3Niw2ICs2ODc2LDEwIEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVBy
b3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1l
dGVycy5vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IG1fb3ZlcnJpZGVDb250ZW50U2Vj
dXJpdHlQb2xpY3k7CiAgICAgcGFyYW1ldGVycy5jcHVMaW1pdCA9IG1fY3B1TGltaXQ7CiAKKyNp
ZiBQTEFURk9STShXUEUpCisgICAgcGFyYW1ldGVycy5ob3N0RkQgPSBwYWdlQ2xpZW50KCkuaG9z
dEZEKCk7CisjZW5kaWYKKwogICAgIGZvciAoYXV0byYgaXRlcmF0b3IgOiBtX3VybFNjaGVtZUhh
bmRsZXJzQnlTY2hlbWUpCiAgICAgICAgIHBhcmFtZXRlcnMudXJsU2NoZW1lSGFuZGxlcnMuc2V0
KGl0ZXJhdG9yLmtleSwgaXRlcmF0b3IudmFsdWUtPmlkZW50aWZpZXIoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZWE5YzYwMTlhMjku
Ljk4MWNkMTFhMjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtNDA0LDYgKzQwNCw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFn
ZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAsIG1fdXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbihwYXJhbWV0ZXJzLnVzZXJJbnRlcmZhY2VMYXlvdXRE
aXJlY3Rpb24pCiAgICAgLCBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5IHsgcGFyYW1l
dGVycy5vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSB9CiAgICAgLCBtX2NwdUxpbWl0KHBh
cmFtZXRlcnMuY3B1TGltaXQpCisjaWYgUExBVEZPUk0oV1BFKQorICAgICwgbV9ob3N0RkQoV1RG
TW92ZShwYXJhbWV0ZXJzLmhvc3RGRCkpCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9wYWdlSUQp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggODcz
MTYyMWEzYzguLmJmNzdjNWU1OWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC0xMTI1LDYgKzExMjUsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
RmluaXNoTG9hZGluZ0FwcGxpY2F0aW9uTWFuaWZlc3QodWludDY0X3QsIGNvbnN0IE9wdGlvbmFs
PFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3Q+Jik7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JN
KFdQRSkKKyAgICBpbnQgcmVsZWFzZUhvc3RGRCgpIHsgcmV0dXJuIG1faG9zdEZELnJlbGVhc2VG
aWxlRGVzY3JpcHRvcigpOyB9CisjZW5kaWYKKwogICAgIHZvaWQgdXBkYXRlQ3VycmVudE1vZGlm
aWVyU3RhdGUoT3B0aW9uU2V0PFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2Rp
ZmllcnMpOwogCiAgICAgVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciB1c2VyQ29udGVu
dENvbnRyb2xsZXJJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV91c2VyQ29udGVudENvbnRy
b2xsZXItPmlkZW50aWZpZXIoKTsgfQpAQCAtMTgxMyw2ICsxODE3LDEwIEBAIHByaXZhdGU6CiAg
ICAgY29uc3QgU3RyaW5nIG1fb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAgICAgY29u
c3QgT3B0aW9uYWw8ZG91YmxlPiBtX2NwdUxpbWl0OwogCisjaWYgUExBVEZPUk0oV1BFKQorICAg
IElQQzo6QXR0YWNobWVudCBtX2hvc3RGRDsKKyNlbmRpZgorCiAgICAgSGFzaE1hcDxTdHJpbmcs
IFJlZlB0cjxXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk+PiBtX3NjaGVtZVRvVVJMU2NoZW1lSGFu
ZGxlclByb3h5TWFwOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYlVSTFNjaGVtZUhhbmRsZXJQ
cm94eSo+IG1faWRlbnRpZmllclRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQWNjZWxlcmF0ZWRTdXJm
YWNlV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9BY2NlbGVy
YXRlZFN1cmZhY2VXUEUuY3BwCmluZGV4IGU5NTNiYzM0NjZkLi5lYWM2ZDdjNzE0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0FjY2VsZXJhdGVkU3Vy
ZmFjZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0Fj
Y2VsZXJhdGVkU3VyZmFjZVdQRS5jcHAKQEAgLTQxLDcgKzQxLDYgQEAgc3RkOjp1bmlxdWVfcHRy
PEFjY2VsZXJhdGVkU3VyZmFjZVdQRT4gQWNjZWxlcmF0ZWRTdXJmYWNlV1BFOjpjcmVhdGUoV2Vi
UGFnZSYgd2UKIEFjY2VsZXJhdGVkU3VyZmFjZVdQRTo6QWNjZWxlcmF0ZWRTdXJmYWNlV1BFKFdl
YlBhZ2UmIHdlYlBhZ2UsIENsaWVudCYgY2xpZW50KQogICAgIDogQWNjZWxlcmF0ZWRTdXJmYWNl
KHdlYlBhZ2UsIGNsaWVudCkKIHsKLSAgICBtX2NvbXBvc2l0aW5nTWFuYWdlci5lc3RhYmxpc2hD
b25uZWN0aW9uKHdlYlBhZ2UpOwogfQogCiBBY2NlbGVyYXRlZFN1cmZhY2VXUEU6On5BY2NlbGVy
YXRlZFN1cmZhY2VXUEUoKQpAQCAtNTEsNyArNTAsNyBAQCBBY2NlbGVyYXRlZFN1cmZhY2VXUEU6
On5BY2NlbGVyYXRlZFN1cmZhY2VXUEUoKQogCiB2b2lkIEFjY2VsZXJhdGVkU3VyZmFjZVdQRTo6
aW5pdGlhbGl6ZSgpCiB7Ci0gICAgbV9iYWNrZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWds
X3RhcmdldF9jcmVhdGUobV9jb21wb3NpdGluZ01hbmFnZXIucmVsZWFzZUNvbm5lY3Rpb25GZCgp
KTsKKyAgICBtX2JhY2tlbmQgPSB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2NyZWF0
ZShtX3dlYlBhZ2UucmVsZWFzZUhvc3RGRCgpKTsKICAgICBzdGF0aWMgc3RydWN0IHdwZV9yZW5k
ZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfY2xpZW50IHNfY2xpZW50ID0gewogICAgICAgICAvLyBm
cmFtZV9jb21wbGV0ZQogICAgICAgICBbXSh2b2lkKiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQRS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQ
RS5oCmluZGV4IDY5ZTVjMjYyNzY0Li4xOGZjOWQ1YjZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQRS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9BY2NlbGVyYXRlZFN1cmZhY2VX
UEUuaApAQCAtMjgsNyArMjgsNiBAQAogI2lmIFBMQVRGT1JNKFdQRSkKIAogI2luY2x1ZGUgIkFj
Y2VsZXJhdGVkU3VyZmFjZS5oIgotI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgogCiBz
dHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldDsKIApAQCAtNTUsNyArNTQsNiBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEFjY2VsZXJhdGVkU3VyZmFjZVdQRShXZWJQYWdlJiwg
Q2xpZW50Jik7CiAKLSAgICBDb21wb3NpdGluZ01hbmFnZXIgbV9jb21wb3NpdGluZ01hbmFnZXI7
CiAgICAgc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXQqIG1fYmFja2VuZCB7
IG51bGxwdHIgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQ1MTVhMGI1OGViLi4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDU1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMu
TC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbXBvc2l0aW5n
TWFuYWdlci5oIgotCi0jaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IgotI2luY2x1ZGUgIldlYlBhZ2UuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLUNvbXBvc2l0
aW5nTWFuYWdlcjo6fkNvbXBvc2l0aW5nTWFuYWdlcigpCi17Ci0gICAgQVNTRVJUKCFtX2Nvbm5l
Y3Rpb25GZCk7Ci19Ci0KLXZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyOjplc3RhYmxpc2hDb25uZWN0
aW9uKFdlYlBhZ2UmIHdlYlBhZ2UpCi17Ci0gICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25I
YW5kbGU7Ci0gICAgd2ViUGFnZS5zZW5kU3luYyhNZXNzYWdlczo6Q29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHk6OkVzdGFibGlzaENvbm5lY3Rpb24oKSwKLSAgICAgICAgTWVzc2FnZXM6OkNvbXBvc2l0
aW5nTWFuYWdlclByb3h5OjpFc3RhYmxpc2hDb25uZWN0aW9uOjpSZXBseShjb25uZWN0aW9uSGFu
ZGxlKSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb25GZCA9IGNvbm5lY3Rpb25IYW5kbGUucmVsZWFzZUZp
bGVEZXNjcmlwdG9yKCk7Ci19Ci0KLWludCBDb21wb3NpdGluZ01hbmFnZXI6OnJlbGVhc2VDb25u
ZWN0aW9uRmQoKQotewotICAgIGludCBmZCA9IG1fY29ubmVjdGlvbkZkLnZhbHVlT3IoLTEpOwot
ICAgIG1fY29ubmVjdGlvbkZkID0gV1RGOjpudWxsb3B0OwotICAgIHJldHVybiBmZDsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQ2YWRmMmM3NTZjLi4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
Ci0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFz
cyBXZWJQYWdlOwotCi1jbGFzcyBDb21wb3NpdGluZ01hbmFnZXIgZmluYWwgewotICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENvbXBvc2l0aW5nTWFuYWdlcik7Ci1wdWJsaWM6Ci0gICAgQ29tcG9z
aXRpbmdNYW5hZ2VyKCkgPSBkZWZhdWx0OwotICAgIH5Db21wb3NpdGluZ01hbmFnZXIoKTsKLQot
ICAgIHZvaWQgZXN0YWJsaXNoQ29ubmVjdGlvbihXZWJQYWdlJik7Ci0gICAgaW50IHJlbGVhc2VD
b25uZWN0aW9uRmQoKTsKLQotcHJpdmF0ZToKLSAgICBPcHRpb25hbDxpbnQ+IG1fY29ubmVjdGlv
bkZkOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="377732"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361660</attachid>
            <date>2019-02-10 23:05:44 -0800</date>
            <delta_ts>2019-02-10 23:05:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wpe-renderer-host-fd.diff</filename>
            <type>text/plain</type>
            <size>24523</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNzhmMzhlYjc2YjIuLjljNDJhNTZkZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQyIEBACisyMDE5LTAyLTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV1BFXSBEbyBub3QgdXNlIGEgc3luYyBJUEMgbWVzc2FnZSB0byBz
ZW5kIHRoZSBob3N0IEZEIHRvIHRoZSB3ZWIgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCisKKyAgICAgICAgSXQgY2FuIGJlIHNlbnQgYXMgYSB3ZWIgcGFnZSBjcmVh
dGlvbiBwYXJhbWV0ZXIgaW5zdGVhZC4KKworICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNvdXJjZXNX
UEUudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclBy
b3h5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGlu
Z01hbmFnZXJQcm94eS5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL0Nv
bXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6Omhvc3RGaWxlRGVzY3JpcHRvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XUEVW
aWV3LmNwcDoKKyAgICAgICAgKFdLV1BFOjptX2JhY2tlbmQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXcuaDoKKyAgICAgICAgKFdLV1BFOjpWaWV3OjpjcmVhdGUpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJh
bWV0ZXJzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Om1faG9zdEZpbGVEZXNjcmlwdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWxlYXNlSG9z
dEZpbGVEZXNjcmlwdG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0FjY2Vs
ZXJhdGVkU3VyZmFjZVdQRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkFjY2VsZXJhdGVkU3VyZmFj
ZVdQRTo6QWNjZWxlcmF0ZWRTdXJmYWNlV1BFKToKKyAgICAgICAgKFdlYktpdDo6QWNjZWxlcmF0
ZWRTdXJmYWNlV1BFOjppbml0aWFsaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQRS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oOiBSZW1vdmVkLgorCiAyMDE5LTAx
LTE4ICBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29tPiBhbmQgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gQWRkIEFQ
SSBmb3Igd2VidmlldyBiYWNrZ3JvdW5kIGNvbG9yIGNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
V1BFLmNtYWtlCmluZGV4IDI1ODNhMGJkYjM0Li5kM2JhOWJjNGJjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
V1BFLmNtYWtlCkBAIC03Nyw4ICs3Nyw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9VTklGSUVEX1NP
VVJDRV9MSVNUX0ZJTEVTCiBsaXN0KEFQUEVORCBXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAg
ICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5h
Z2VyLm1lc3NhZ2VzLmluCiAKLSAgICBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgotCiAgICAgVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9j
b2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiApCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAK
aW5kZXggMWIyMmQ5NTRiZjIuLjZiYTBhYTc1NzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtOTYsNiArOTYsOSBAQCB2
b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgZW5jb2RlciA8PCBzbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQ7CiAgICAgZW5jb2RlciA8PCBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VU
eXBlczsKKyNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBlbmNvZGVyIDw8IGhvc3RGaWxl
RGVzY3JpcHRvcjsKICNlbmRpZgogICAgIGVuY29kZXIgPDwgYXBwbGVNYWlsUGFnaW5hdGlvblF1
aXJrRW5hYmxlZDsKICAgICBlbmNvZGVyIDw8IGFwcGxlTWFpbExpbmVzQ2xhbXBFbmFibGVkOwpA
QCAtMjczLDYgKzI3NiwxMSBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmhvc3RGaWxlRGVzY3JpcHRvcikpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisjZW5kaWYKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5hcHBsZU1haWxQYWdpbmF0aW9uUXVpcmtFbmFibGVkKSkKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDZmYWUzN2U4NDI3Li4yMDRmZGVlMWU1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTU0
LDYgKzE1NCw5IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKICAgICBWZWN0
b3I8U3RyaW5nPiBhZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczsKKyNlbmRpZgorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBJUEM6OkF0dGFjaG1lbnQgaG9zdEZpbGVEZXNjcmlwdG9yOwogI2Vu
ZGlmCiAgICAgYm9vbCBhcHBsZU1haWxQYWdpbmF0aW9uUXVpcmtFbmFibGVkOwogICAgIGJvb2wg
YXBwbGVNYWlsTGluZXNDbGFtcEVuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNXUEUudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAppbmRleCA0MWJjNjE0
OGZlYi4uYzFkYjNlYWYzMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMTY3LDcgKzE2Nyw2IEBA
IFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YS5jcHAgQG5vLXVuaWZ5CiBVSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcCBAbm8tdW5pZnkKIFVJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXaW5kb3dQcm9wZXJ0aWVzLmNwcCBAbm8tdW5pZnkKIAot
VUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuY3BwIEBuby11bmlmeQog
VUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIEBuby11bmlmeQogVUlQcm9jZXNz
L0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwIEBuby11bmlmeQogVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0Q29sb3IuY3BwIEBuby11bmlmeQpAQCAtMjUwLDcgKzI0OSw2IEBAIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRM
YXllclRyZWVIb3N0LmNwcAogV2ViUHJvY2Vzcy9XZWJQYWdlL2dzdHJlYW1lci9XZWJQYWdlR1N0
cmVhbWVyLmNwcAogCiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQ
RS5jcHAgQG5vLXVuaWZ5Ci1XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdl
ci5jcHAKIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCiBXZWJQ
cm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxNTU0N2RkOGMwLi4wMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclBy
b3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5LmgiCi0KLSNpbmNsdWRlICJBdHRhY2htZW50
LmgiCi0jaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1
ZGUgIldQRVZpZXcuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgotI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgPHdwZS93cGUuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLUNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eShX
S1dQRTo6VmlldyYgdmlldykKLSAgICA6IG1fdmlldyh2aWV3KQotewotfQotCi1Db21wb3NpdGlu
Z01hbmFnZXJQcm94eTo6fkNvbXBvc2l0aW5nTWFuYWdlclByb3h5KCkgPSBkZWZhdWx0OwotCi12
b2lkIENvbXBvc2l0aW5nTWFuYWdlclByb3h5Ojppbml0aWFsaXplKCkKLXsKLSAgICBtX3ZpZXcu
cGFnZSgpLnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV92aWV3
LnBhZ2UoKS5wYWdlSUQoKSwgKnRoaXMpOwotfQotCi12b2lkIENvbXBvc2l0aW5nTWFuYWdlclBy
b3h5OjpmaW5hbGl6ZSgpCi17Ci0gICAgbV92aWV3LnBhZ2UoKS5wcm9jZXNzKCkucHJvY2Vzc1Bv
b2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclBy
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fdmlldy5wYWdlKCkucGFnZUlEKCkpOwotfQot
Ci12b2lkIENvbXBvc2l0aW5nTWFuYWdlclByb3h5Ojplc3RhYmxpc2hDb25uZWN0aW9uKElQQzo6
QXR0YWNobWVudCYgY29ubmVjdGlvbkhhbmRsZSkKLXsKLSAgICBjb25uZWN0aW9uSGFuZGxlID0g
SVBDOjpBdHRhY2htZW50KHdwZV92aWV3X2JhY2tlbmRfZ2V0X3JlbmRlcmVyX2hvc3RfZmQobV92
aWV3LmJhY2tlbmQoKSkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjJjMmRmYzYyZWUuLjAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQot
bmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBBdHRhY2htZW50OwotfQotCi1uYW1lc3BhY2UgV0tXUEUg
ewotY2xhc3MgVmlldzsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIENvbXBvc2l0
aW5nTWFuYWdlclByb3h5IGZpbmFsIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKLSAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21wb3NpdGluZ01hbmFnZXJQcm94eSk7Ci1wdWJsaWM6
Ci0gICAgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6OlZpZXcmKTsKLSAgICB2aXJ0dWFs
IH5Db21wb3NpdGluZ01hbmFnZXJQcm94eSgpOwotCi0gICAgdm9pZCBpbml0aWFsaXplKCk7Ci0g
ICAgdm9pZCBmaW5hbGl6ZSgpOwotCi1wcml2YXRlOgotICAgIC8vIElQQzo6TWVzc2FnZVJlY2Vp
dmVyCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiYgcmVwbHlFbmNvZGVyKSBvdmVycmlkZTsKLQotICAgIHZvaWQgZXN0YWJsaXNoQ29ubmVjdGlv
bihJUEM6OkF0dGFjaG1lbnQmKTsKLQotICAgIFdLV1BFOjpWaWV3JiBtX3ZpZXc7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzBlZjkxZjgwOC4uMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLSMgQ29weXJp
Z2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMg
YXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLW1lc3NhZ2VzIC0+IENvbXBvc2l0aW5nTWFuYWdlclByb3h5IHsKLSAgICBF
c3RhYmxpc2hDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxl
KSBMZWdhY3lTeW5jCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
UGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDIyMzM2MTUwZmVhLi5jMzQ4MTBlYzg3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAK
QEAgLTUxLDYgKzUxLDExIEBAIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBQYWdlQ2xpZW50SW1w
bDo6dmlld0JhY2tlbmQoKQogICAgIHJldHVybiBtX3ZpZXcuYmFja2VuZCgpOwogfQogCitJUEM6
OkF0dGFjaG1lbnQgUGFnZUNsaWVudEltcGw6Omhvc3RGaWxlRGVzY3JpcHRvcigpCit7CisgICAg
cmV0dXJuIHdwZV92aWV3X2JhY2tlbmRfZ2V0X3JlbmRlcmVyX2hvc3RfZmQobV92aWV3LmJhY2tl
bmQoKSk7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50
SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCiB7
CiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8QWNjZWxlcmF0ZWREcmF3aW5nQXJlYVByb3h5
PihtX3ZpZXcucGFnZSgpLCBwcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuaAppbmRleCBiNjk5ZjI5ZjliMi4uZjllMjViNzlhOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBs
LmgKQEAgLTE0Myw2ICsxNDMsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRGaW5pc2hQcm9j
ZXNzaW5nQWxsUGVuZGluZ01vdXNlRXZlbnRzKCkgZmluYWwgeyB9CiAKKyAgICBJUEM6OkF0dGFj
aG1lbnQgaG9zdEZpbGVEZXNjcmlwdG9yKCkgZmluYWw7CisKICAgICBXZWJDb3JlOjpVc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVy
cmlkZTsKIAogICAgIFdLV1BFOjpWaWV3JiBtX3ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XUEVWaWV3LmNwcAppbmRleCBhZmRiZDA3ZGZiNi4uZWIxM2I0M2ViMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApAQCAtNDgsNyAr
NDgsNiBAQCBWaWV3OjpWaWV3KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBjb25z
dCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBiYXNlQwogI2lmICFkZWZpbmVkKFdQRV9CQUNLRU5E
X0NIRUNLX1ZFUlNJT04pIHx8ICFXUEVfQkFDS0VORF9DSEVDS19WRVJTSU9OKDEsIDEsIDApCiAg
ICAgLCBtX3ZpZXdTdGF0ZUZsYWdzIHsgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNB
Y3RpdmUsIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCwgV2ViQ29yZTo6QWN0aXZp
dHlTdGF0ZTo6SXNWaXNpYmxlLCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93IH0K
ICNlbmRpZgotICAgICwgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94eSgqdGhpcykKICAgICAsIG1f
YmFja2VuZChiYWNrZW5kKQogewogICAgIEFTU0VSVChtX2JhY2tlbmQpOwpAQCAtNzUsOCArNzQs
NiBAQCBWaWV3OjpWaWV3KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBjb25zdCBB
UEk6OlBhZ2VDb25maWd1cmF0aW9uJiBiYXNlQwogICAgICAgICBwb29sLT5zdGFydE1lbW9yeVNh
bXBsZXIoMCk7CiAjZW5kaWYKIAotICAgIG1fY29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaW5pdGlh
bGl6ZSgpOwotCiAgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2NsaWVudCBzX2Jh
Y2tlbmRDbGllbnQgPSB7CiAgICAgICAgIC8vIHNldF9zaXplCiAgICAgICAgIFtdKHZvaWQqIGRh
dGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpCkBAIC0xNjIsMTEgKzE1OSw2IEBA
IFZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0IEFQSTo6
UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDCiAgICAgbV9wYWdlUHJveHktPmluaXRpYWxpemVXZWJQ
YWdlKCk7CiB9CiAKLVZpZXc6On5WaWV3KCkKLXsKLSAgICBtX2NvbXBvc2l0aW5nTWFuYWdlclBy
b3h5LmZpbmFsaXplKCk7Ci19Ci0KIHZvaWQgVmlldzo6c2V0Q2xpZW50KHN0ZDo6dW5pcXVlX3B0
cjxBUEk6OlZpZXdDbGllbnQ+JiYgY2xpZW50KQogewogICAgIGlmICghY2xpZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaAppbmRleCA5OWJmMjc4OTc1ZC4uMGRm
YzQyZmY2MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BF
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oCkBA
IC0yNiw3ICsyNiw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgot
I2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVu
dEltcGwuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Fj
dGl2aXR5U3RhdGUuaD4KQEAgLTU1LDcgKzU0LDYgQEAgcHVibGljOgogICAgIHsKICAgICAgICAg
cmV0dXJuIG5ldyBWaWV3KGJhY2tlbmQsIGNvbmZpZ3VyYXRpb24pOwogICAgIH0KLSAgICB2aXJ0
dWFsIH5WaWV3KCk7CiAKICAgICAvLyBDbGllbnQgbWV0aG9kcwogICAgIHZvaWQgc2V0Q2xpZW50
KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OlZpZXdDbGllbnQ+JiYpOwpAQCAtOTAsNyArODgsNiBAQCBw
cml2YXRlOgogICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOwogICAgIE9wdGlvblNldDxXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBtX3ZpZXdTdGF0ZUZsYWdzOwogCi0gICAgV2ViS2l0
OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eSBtX2NvbXBvc2l0aW5nTWFuYWdlclByb3h5OwogICAg
IHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBtX2JhY2tlbmQ7CiAKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggMzk2MWVkNDUx
MmEuLjNjMmRjMDE5OGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC00
ODMsNiArNDgzLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQb2ludGVyc0Zv
ckdlc3R1cmVSZWNvZ25pemVyKFVJR2VzdHVyZVJlY29nbml6ZXIqKSB7IH0KICNlbmRpZgogCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwgSVBDOjpBdHRhY2htZW50IGhvc3RGaWxlRGVz
Y3JpcHRvcigpID0gMDsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4YTljMjFiZmFmOC4uZDVj
NmU2MTkzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
Njg3Nyw2ICs2ODc3LDEwIEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5
OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVy
cy5vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IG1fb3ZlcnJpZGVDb250ZW50U2VjdXJp
dHlQb2xpY3k7CiAgICAgcGFyYW1ldGVycy5jcHVMaW1pdCA9IG1fY3B1TGltaXQ7CiAKKyNpZiBQ
TEFURk9STShXUEUpCisgICAgcGFyYW1ldGVycy5ob3N0RmlsZURlc2NyaXB0b3IgPSBwYWdlQ2xp
ZW50KCkuaG9zdEZpbGVEZXNjcmlwdG9yKCk7CisjZW5kaWYKKwogICAgIGZvciAoYXV0byYgaXRl
cmF0b3IgOiBtX3VybFNjaGVtZUhhbmRsZXJzQnlTY2hlbWUpCiAgICAgICAgIHBhcmFtZXRlcnMu
dXJsU2NoZW1lSGFuZGxlcnMuc2V0KGl0ZXJhdG9yLmtleSwgaXRlcmF0b3IudmFsdWUtPmlkZW50
aWZpZXIoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggM2Y2MGU0MWMwYTMuLmVlYmZiMzZmMTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDA0LDYgKzQwNCw5IEBAIFdlYlBhZ2U6
OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycykKICAgICAsIG1fdXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbihwYXJhbWV0ZXJz
LnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24pCiAgICAgLCBtX292ZXJyaWRlQ29udGVudFNl
Y3VyaXR5UG9saWN5IHsgcGFyYW1ldGVycy5vdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSB9
CiAgICAgLCBtX2NwdUxpbWl0KHBhcmFtZXRlcnMuY3B1TGltaXQpCisjaWYgUExBVEZPUk0oV1BF
KQorICAgICwgbV9ob3N0RmlsZURlc2NyaXB0b3IoV1RGTW92ZShwYXJhbWV0ZXJzLmhvc3RGaWxl
RGVzY3JpcHRvcikpCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9wYWdlSUQpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYjE3ZDBjMjFiNzYuLjlh
ZmU3MzQ1ZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0xMTI3LDYgKzExMjcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmluaXNoTG9hZGlu
Z0FwcGxpY2F0aW9uTWFuaWZlc3QodWludDY0X3QsIGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OkFw
cGxpY2F0aW9uTWFuaWZlc3Q+Jik7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBp
bnQgcmVsZWFzZUhvc3RGaWxlRGVzY3JpcHRvcigpIHsgcmV0dXJuIG1faG9zdEZpbGVEZXNjcmlw
dG9yLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOyB9CisjZW5kaWYKKwogICAgIHZvaWQgdXBkYXRl
Q3VycmVudE1vZGlmaWVyU3RhdGUoT3B0aW9uU2V0PFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1v
ZGlmaWVyPiBtb2RpZmllcnMpOwogCiAgICAgVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmll
ciB1c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV91c2Vy
Q29udGVudENvbnRyb2xsZXItPmlkZW50aWZpZXIoKTsgfQpAQCAtMTgyMSw2ICsxODI1LDEwIEBA
IHByaXZhdGU6CiAgICAgY29uc3QgU3RyaW5nIG1fb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xp
Y3k7CiAgICAgY29uc3QgT3B0aW9uYWw8ZG91YmxlPiBtX2NwdUxpbWl0OwogCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIElQQzo6QXR0YWNobWVudCBtX2hvc3RGaWxlRGVzY3JpcHRvcjsKKyNlbmRp
ZgorCiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHk+
PiBtX3NjaGVtZVRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwOwogICAgIEhhc2hNYXA8dWludDY0
X3QsIFdlYlVSTFNjaGVtZUhhbmRsZXJQcm94eSo+IG1faWRlbnRpZmllclRvVVJMU2NoZW1lSGFu
ZGxlclByb3h5TWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS93cGUvQWNjZWxlcmF0ZWRTdXJmYWNlV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dwZS9BY2NlbGVyYXRlZFN1cmZhY2VXUEUuY3BwCmluZGV4IGU5NTNiYzM0
NjZkLi45YjhjY2JjYjVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQRS5jcHAKQEAgLTQxLDcg
KzQxLDYgQEAgc3RkOjp1bmlxdWVfcHRyPEFjY2VsZXJhdGVkU3VyZmFjZVdQRT4gQWNjZWxlcmF0
ZWRTdXJmYWNlV1BFOjpjcmVhdGUoV2ViUGFnZSYgd2UKIEFjY2VsZXJhdGVkU3VyZmFjZVdQRTo6
QWNjZWxlcmF0ZWRTdXJmYWNlV1BFKFdlYlBhZ2UmIHdlYlBhZ2UsIENsaWVudCYgY2xpZW50KQog
ICAgIDogQWNjZWxlcmF0ZWRTdXJmYWNlKHdlYlBhZ2UsIGNsaWVudCkKIHsKLSAgICBtX2NvbXBv
c2l0aW5nTWFuYWdlci5lc3RhYmxpc2hDb25uZWN0aW9uKHdlYlBhZ2UpOwogfQogCiBBY2NlbGVy
YXRlZFN1cmZhY2VXUEU6On5BY2NlbGVyYXRlZFN1cmZhY2VXUEUoKQpAQCAtNTEsNyArNTAsNyBA
QCBBY2NlbGVyYXRlZFN1cmZhY2VXUEU6On5BY2NlbGVyYXRlZFN1cmZhY2VXUEUoKQogCiB2b2lk
IEFjY2VsZXJhdGVkU3VyZmFjZVdQRTo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgbV9iYWNrZW5kID0g
d3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jcmVhdGUobV9jb21wb3NpdGluZ01hbmFn
ZXIucmVsZWFzZUNvbm5lY3Rpb25GZCgpKTsKKyAgICBtX2JhY2tlbmQgPSB3cGVfcmVuZGVyZXJf
YmFja2VuZF9lZ2xfdGFyZ2V0X2NyZWF0ZShtX3dlYlBhZ2UucmVsZWFzZUhvc3RGaWxlRGVzY3Jp
cHRvcigpKTsKICAgICBzdGF0aWMgc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJn
ZXRfY2xpZW50IHNfY2xpZW50ID0gewogICAgICAgICAvLyBmcmFtZV9jb21wbGV0ZQogICAgICAg
ICBbXSh2b2lkKiBkYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQRS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQRS5oCmluZGV4IDY5ZTVjMjYyNzY0
Li4xOGZjOWQ1YjZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2Uvd3BlL0FjY2VsZXJhdGVkU3VyZmFjZVdQRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dwZS9BY2NlbGVyYXRlZFN1cmZhY2VXUEUuaApAQCAtMjgsNyArMjgsNiBA
QAogI2lmIFBMQVRGT1JNKFdQRSkKIAogI2luY2x1ZGUgIkFjY2VsZXJhdGVkU3VyZmFjZS5oIgot
I2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgogCiBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2Jh
Y2tlbmRfZWdsX3RhcmdldDsKIApAQCAtNTUsNyArNTQsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEFjY2VsZXJhdGVkU3VyZmFjZVdQRShXZWJQYWdlJiwgQ2xpZW50Jik7CiAKLSAgICBDb21w
b3NpdGluZ01hbmFnZXIgbV9jb21wb3NpdGluZ01hbmFnZXI7CiAgICAgc3RydWN0IHdwZV9yZW5k
ZXJlcl9iYWNrZW5kX2VnbF90YXJnZXQqIG1fYmFja2VuZCB7IG51bGxwdHIgfTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGlu
Z01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBv
c2l0aW5nTWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1MTVhMGI1
OGViLi4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93
cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgotCi0jaW5jbHVk
ZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlBhZ2Uu
aCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLUNvbXBvc2l0aW5nTWFuYWdlcjo6fkNvbXBvc2l0
aW5nTWFuYWdlcigpCi17Ci0gICAgQVNTRVJUKCFtX2Nvbm5lY3Rpb25GZCk7Ci19Ci0KLXZvaWQg
Q29tcG9zaXRpbmdNYW5hZ2VyOjplc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmIHdlYlBhZ2Up
Ci17Ci0gICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGU7Ci0gICAgd2ViUGFnZS5z
ZW5kU3luYyhNZXNzYWdlczo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5l
Y3Rpb24oKSwKLSAgICAgICAgTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjpFc3Rh
Ymxpc2hDb25uZWN0aW9uOjpSZXBseShjb25uZWN0aW9uSGFuZGxlKSk7Ci0KLSAgICBtX2Nvbm5l
Y3Rpb25GZCA9IGNvbm5lY3Rpb25IYW5kbGUucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCk7Ci19Ci0K
LWludCBDb21wb3NpdGluZ01hbmFnZXI6OnJlbGVhc2VDb25uZWN0aW9uRmQoKQotewotICAgIGlu
dCBmZCA9IG1fY29ubmVjdGlvbkZkLnZhbHVlT3IoLTEpOwotICAgIG1fY29ubmVjdGlvbkZkID0g
V1RGOjpudWxsb3B0OwotICAgIHJldHVybiBmZDsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9z
aXRpbmdNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29t
cG9zaXRpbmdNYW5hZ2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2YWRmMmM3
NTZjLi4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93
cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEg
b25jZQotCi0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL09wdGlv
bmFsLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdlOwotCi1jbGFzcyBD
b21wb3NpdGluZ01hbmFnZXIgZmluYWwgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbXBv
c2l0aW5nTWFuYWdlcik7Ci1wdWJsaWM6Ci0gICAgQ29tcG9zaXRpbmdNYW5hZ2VyKCkgPSBkZWZh
dWx0OwotICAgIH5Db21wb3NpdGluZ01hbmFnZXIoKTsKLQotICAgIHZvaWQgZXN0YWJsaXNoQ29u
bmVjdGlvbihXZWJQYWdlJik7Ci0gICAgaW50IHJlbGVhc2VDb25uZWN0aW9uRmQoKTsKLQotcHJp
dmF0ZToKLSAgICBPcHRpb25hbDxpbnQ+IG1fY29ubmVjdGlvbkZkOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>