<?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>195223</bug_id>
          
          <creation_ts>2019-03-01 13:02:27 -0800</creation_ts>
          <short_desc>Add a WebViewDidMoveToWindowObserver for WKWebView</short_desc>
          <delta_ts>2019-03-04 15:50:44 -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>WebKit Misc.</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="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1511558</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-01 13:02:27 -0800</bug_when>
    <thetext>Add a WebViewDidMoveToWindowObserver for WKWebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511563</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-01 13:11:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/48520161&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511570</commentid>
    <comment_count>2</comment_count>
      <attachid>363365</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-01 13:29:10 -0800</bug_when>
    <thetext>Created attachment 363365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511915</commentid>
    <comment_count>3</comment_count>
      <attachid>363365</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-03-03 00:06:54 -0800</bug_when>
    <thetext>Comment on attachment 363365
Patch

What is the &quot;load optimizer&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511972</commentid>
    <comment_count>4</comment_count>
      <attachid>363365</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-03-03 12:19:15 -0800</bug_when>
    <thetext>Comment on attachment 363365
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.h:1467
&gt; +    void addWebViewDidMoveToWindowObserver(WebViewDidMoveToWindowObserver&amp;);
&gt; +    void removeWebViewDidMoveToWindowObserver(WebViewDidMoveToWindowObserver*);

I think these functions could have shorter names. C++ overloading means they could have names as short as &quot;add/remove&quot;, but I was thinking &quot;addObserver/removeObserver&quot;.

Can the remove function take a reference instead of a pointer? Is there a caller that needs to call it with null?

&gt; Source/WebKit/UIProcess/WebPageProxy.h:2389
&gt; +    HashMap&lt;WebViewDidMoveToWindowObserver*, WeakPtr&lt;WebViewDidMoveToWindowObserver&gt;&gt; m_webViewDidMoveToWindowObservers;

Is a WeakPtr the optimal pattern here? Where else are we using that for observers?

Since this entire observer function is just a &quot;call this function&quot; thing, maybe we could do something with functions instead? Unless this is a common pattern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512021</commentid>
    <comment_count>5</comment_count>
      <attachid>363365</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-03 19:49:13 -0800</bug_when>
    <thetext>Comment on attachment 363365
Patch

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

Thanks Darin for r+ the patch.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.h:1467
&gt;&gt; +    void removeWebViewDidMoveToWindowObserver(WebViewDidMoveToWindowObserver*);
&gt; 
&gt; I think these functions could have shorter names. C++ overloading means they could have names as short as &quot;add/remove&quot;, but I was thinking &quot;addObserver/removeObserver&quot;.
&gt; 
&gt; Can the remove function take a reference instead of a pointer? Is there a caller that needs to call it with null?

Fixed.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.h:2389
&gt;&gt; +    HashMap&lt;WebViewDidMoveToWindowObserver*, WeakPtr&lt;WebViewDidMoveToWindowObserver&gt;&gt; m_webViewDidMoveToWindowObservers;
&gt; 
&gt; Is a WeakPtr the optimal pattern here? Where else are we using that for observers?
&gt; 
&gt; Since this entire observer function is just a &quot;call this function&quot; thing, maybe we could do something with functions instead? Unless this is a common pattern.

A more common pattern is to use HashSet&lt;WebViewDidMoveToWindowObserver*&gt; without weak ptrs. However, that relies on the observers to remove themselves from the set when they are about to destroy. Otherwise, UAF could happen.

I could see pros and cons of using Functions here.
Pros: More clean code; Leave UAF from the WebPageProxy to Functions suppliers.
Cons: More memory.

I don&apos;t really have opinions on which is significantly better than which. It looks like that it is a bigger topic to discuss than this patch. If you don&apos;t have strong opinions with my current approach, I will go ahead to land this patch. Maybe we could open a discussion on webkit-dev@lists.webkit.org?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512024</commentid>
    <comment_count>6</comment_count>
      <attachid>363478</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-03 20:01:05 -0800</bug_when>
    <thetext>Created attachment 363478
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512029</commentid>
    <comment_count>7</comment_count>
      <attachid>363478</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-03 20:38:31 -0800</bug_when>
    <thetext>Comment on attachment 363478
Patch for landing

Clearing flags on attachment: 363478

Committed r242336: &lt;https://trac.webkit.org/changeset/242336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512394</commentid>
    <comment_count>8</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-03-04 15:50:40 -0800</bug_when>
    <thetext>A follow up from Tim&apos;s comment is committed:
Committed r242398: &lt;https://trac.webkit.org/changeset/242398&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363365</attachid>
            <date>2019-03-01 13:29:10 -0800</date>
            <delta_ts>2019-03-03 12:19:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195223-20190301132910.patch</filename>
            <type>text/plain</type>
            <size>11504</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxOTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg3NTcxZGM3YjAyYzg1OTE1
ZmU5YzQwMjQ4MjBmZDU5YjhlMDIyZGMuLmRhY2Y5YzRlZDk0MThjMjY4YWNkMDQ1ZDg0NGRmMTYy
MDMyMTM4MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTktMDMtMDEgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBXZWJWaWV3RGlkTW92
ZVRvV2luZG93T2JzZXJ2ZXIgZm9yIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MjIzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
ODUyMDE2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgbG9hZCBvcHRpbWl6ZXIgd291bGQgb25seSBhbGxvdyBpdHNlbGYgdG8gb3B0aW1pemUg
bG9hZHMgd2hlbmV2ZXIgdGhlIHdlYiB2aWV3CisgICAgICAgIHdobyBvd25zIHRoZSBwYWdlIGlz
ICh2aXNpYmxlICYmIGZvY3VzZWQpLCBvdGhlcndpc2VzIGl0IHdpbGwgd2FpdCB1bnRpbCB0aGUg
d2ViIHZpZXcKKyAgICAgICAgYmVjb21lcyAodmlzaWJsZSAmJiBmb2N1c2VkKS4gVGhlcmVmb3Jl
LCB3ZSBuZWVkIGEgd2F5IHRvIG5vdGlmeSB0aGUgbG9hZCBvcHRpbWl6ZXIKKyAgICAgICAgY2hh
bmdlcyBvZiBzdGF0dXNlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgZGlkTW92ZVRvV2luZG93XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkV2ViVmlld0Rp
ZE1vdmVUb1dpbmRvd09ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZW1vdmVXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OndlYlZpZXdEaWRNb3ZlVG9XaW5kb3cpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlld0RpZE1vdmVUb1dp
bmRvd09ic2VydmVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDE5LTAyLTIxICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29u
eS5jb20+CiAKICAgICAgICAgW01TVkNdIEZpeCBjb21waWxhdGlvbiBlcnJvcnMgd2l0aCBsYW1i
ZGFzIGluIFJlc291cmNlTG9hZFN0YXRpc3RpY3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDc1MmEzYTQ5YmIzODhjYTRmMTZkMWI5ZjM3
YWNlMDNjMTc4Y2U5YWUuLmY5ZDk3OGIwZjcyZjIzZDJlMmE0MjcwZmE4YTc3MjMxNjAxYmRjZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMjQ4Nyw2ICsyNDg3LDcgQEAgLSAoQk9PTClfem9vbVRvUmVjdDooV2ViQ29yZTo6RmxvYXRS
ZWN0KXRhcmdldFJlY3Qgd2l0aE9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2kKIC0gKHZvaWQpZGlk
TW92ZVRvV2luZG93CiB7CiAgICAgX3BhZ2UtPmFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoV2ViQ29y
ZTo6QWN0aXZpdHlTdGF0ZTo6YWxsRmxhZ3MoKSk7CisgICAgX3BhZ2UtPndlYlZpZXdEaWRNb3Zl
VG9XaW5kb3coKTsKIH0KIAogLSAodm9pZClzZXRPcGFxdWU6KEJPT0wpb3BhcXVlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGExOWYzNjljNjA4
MmVjODYxNmUyYTg0NTIxOWIwNGNiYzk4YzJkODIuLjk0YWZkNzk5MGIwOGY2YzQ5MDhjYWI2MWRj
MDQwNmE3YWY0NmU4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCkBAIC0yMjEzLDYgKzIyMTMsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlk
TW92ZVRvV2luZG93KCkKICAgICB9CiAKICAgICBtX3BhZ2UtPnNldEludHJpbnNpY0RldmljZVNj
YWxlRmFjdG9yKGludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkpOworICAgIG1fcGFnZS0+d2Vi
Vmlld0RpZE1vdmVUb1dpbmRvdygpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkQ2hh
bmdlQmFja2luZ1Byb3BlcnRpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggYjA4YTFiZjY2NjkwOTdhMTBkYWIwODMwMGZkNWY3MzZmNWMzMTgwNy4uOWVj
OWQ4Y2JhMGEwYWEyNzI3ZWMzZGUyYjI1ZjViNTAxMWY3Mzk4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMjgsNiArMTI4LDcgQEAKICNpbmNsdWRlICJX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVI
YW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCIKKyNp
bmNsdWRlICJXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJXZWJz
aXRlRGF0YVN0b3JlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BZENsaWNrQXR0cmlidXRpb24uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0JpdG1hcEltYWdlLmg+CkBAIC04NzI4LDYgKzg3MjksMjcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyQWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW8KICAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuY2xl
YXJBZENsaWNrQXR0cmlidXRpb24obV93ZWJzaXRlRGF0YVN0b3JlLT5zZXNzaW9uSUQoKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6YWRkV2Vi
Vmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyKFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZl
ciYgb2JzZXJ2ZXIpCit7CisgICAgYXV0byByZXN1bHQgPSBtX3dlYlZpZXdEaWRNb3ZlVG9XaW5k
b3dPYnNlcnZlcnMuYWRkKCZvYnNlcnZlciwgbWFrZVdlYWtQdHIob2JzZXJ2ZXIpKTsKKyAgICBB
U1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOworfQorCit2b2lkIFdlYlBh
Z2VQcm94eTo6cmVtb3ZlV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyKFdlYlZpZXdEaWRN
b3ZlVG9XaW5kb3dPYnNlcnZlciogb2JzZXJ2ZXIpCit7CisgICAgYXV0byByZXN1bHQgPSBtX3dl
YlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlcnMucmVtb3ZlKG9ic2VydmVyKTsKKyAgICBBU1NF
UlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0KTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OndlYlZp
ZXdEaWRNb3ZlVG9XaW5kb3coKQoreworICAgIGZvciAoY29uc3QgYXV0byYgb2JzZXJ2ZXIgOiBt
X3dlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlcnMpIHsKKyAgICAgICAgaWYgKCFvYnNlcnZl
ci52YWx1ZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBvYnNlcnZlci52YWx1ZS0+
d2ViVmlld0RpZE1vdmVUb1dpbmRvdygpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKICN1bmRlZiBNRVJHRV9XSEVFTF9FVkVOVFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggZmFhYTViNzIxZGY1ZWZmZjViMTIxYTcxMjZhMDlmMGExZTg0ZThi
YS4uN2U2OTEyNmE0OWQ5ZGVmOWVjMDNhZmYwYTMwY2I3YmIxOGNmMmQ2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIyNyw2ICsyMjcsNyBAQCB0eXBlZGVmIEhX
TkQgUGxhdGZvcm1XaWRnZXQ7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIERyYXdpbmdBcmVh
UHJveHk7CiBjbGFzcyBFZGl0YWJsZUltYWdlQ29udHJvbGxlcjsKK2NsYXNzIEdhbWVwYWREYXRh
OwogY2xhc3MgTmF0aXZlV2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudDsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CkBAIC0yNjIsNyArMjYzLDcgQEAgY2xh
c3MgV2ViUHJvY2Vzc1Byb3h5OwogY2xhc3MgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk7
CiBjbGFzcyBXZWJXaGVlbEV2ZW50OwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKLWNsYXNzIEdh
bWVwYWREYXRhOworY2xhc3MgV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyOwogCiBzdHJ1
Y3QgQXR0cmlidXRlZFN0cmluZzsKIHN0cnVjdCBDb2xvclNwYWNlRGF0YTsKQEAgLTE0NjIsNiAr
MTQ2MywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0aW9uKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwogICAgIHZvaWQgY2xlYXJBZENs
aWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAorICAgIHZvaWQg
YWRkV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyKFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dP
YnNlcnZlciYpOworICAgIHZvaWQgcmVtb3ZlV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVy
KFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlciopOworICAgIHZvaWQgd2ViVmlld0RpZE1v
dmVUb1dpbmRvdygpOworCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICAvLyBJbXBs
ZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViUGFnZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGU7CkBAIC0yMzgwLDYgKzIzODUsOCBAQCBwcml2YXRlOgogI2lmIEhBVkUoUEVOQ0lM
S0lUKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxFZGl0YWJsZUltYWdlQ29udHJvbGxlcj4gbV9lZGl0
YWJsZUltYWdlQ29udHJvbGxlcjsKICNlbmRpZgorCisgICAgSGFzaE1hcDxXZWJWaWV3RGlkTW92
ZVRvV2luZG93T2JzZXJ2ZXIqLCBXZWFrUHRyPFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZl
cj4+IG1fd2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyczsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViVmlld0Rp
ZE1vdmVUb1dpbmRvd09ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJWaWV3
RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGJmODMyNmZjN2RhZDljMmEy
MjUzN2VlZDc1NTU0ZGEzZmQ3ZmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmgKQEAgLTAsMCArMSwzOSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNl
cnZlciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2
ZXI+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2
ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIHZvaWQgd2ViVmlld0RpZE1vdmVUb1dpbmRv
dygpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjQzNjU1MzZkNjEyNzQ3YzYw
ZjY3Yjg3NTc5MDNmMWU4NTkxOWFmNS4uM2EwNDcwZjJlZWY5YjYzN2UxNTE5OGYyOTBhYzFmZTE2
YWVjNzc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMDE5LDYgKzEwMTksNyBAQAogCQk1MzVCQ0I5MjIwNjlDNDlDMDBDQ0NFMDIg
LyogTmV0d29ya0FjdGl2aXR5VHJhY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTM1QkNCOTAyMDY5QzQ5QzAwQ0NDRTAyIC8qIE5ldHdvcmtBY3Rp
dml0eVRyYWNrZXIuaCAqLzsgfTsKIAkJNTNCQTQ3RDExREMyRUY1RTAwNERGNEFEIC8qIE5ldHdv
cmtEYXRhVGFza0Jsb2IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzOUVCNTQ3MURDMkVFNDAwMDlENDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmgg
Ki87IH07CiAJCTU3MEFCOEYzMjBBRTNCRDcwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVN0b3JlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzBBQjhGMjIw
QUUzQkQ3MDBCOEJFODcgLyogU2VjS2V5UHJveHlTdG9yZS5oICovOyB9OworCQk1NzJGRDQ0MzIy
MjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzJGRDQ0MTIyMjY1Q0Uy
MDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmggKi87IH07CiAJCTU3
NTk3RUI5MjE4MTFEOUEwMDM3RjkyNCAvKiBDdGFwSGlkRHJpdmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzU5N0VCNzIxODExRDlBMDAzN0Y5MjQg
LyogQ3RhcEhpZERyaXZlci5oICovOyB9OwogCQk1NzU5N0VCRDIxODE4NDkwMDAzN0Y5MjQgLyog
Q3RhcEhpZEF1dGhlbnRpY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3NTk3RUJCMjE4MTg0OEYwMDM3RjkyNCAvKiBDdGFwSGlkQXV0aGVudGlj
YXRvci5oICovOyB9OwogCQk1NzcyRjIwNjIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc3MkYyMDQy
MTdEQkQ2QTAwNTZCRjJDIC8qIEhpZFNlcnZpY2UuaCAqLzsgfTsKQEAgLTMzNTUsNiArMzM1Niw3
IEBACiAJCTU3MEFCOEYyMjBBRTNCRDcwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVN0b3JlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNlY0tleVByb3h5U3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTcwQUI5MDAyMEIyNTE3NDAwQjhCRTg3IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwQUI5MDMy
MEIyNTQxQzAwQjhCRTg3IC8qIFNlY0tleVByb3h5U3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTZWNLZXlQcm94eVN0b3JlLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1NzJGRDQ0MTIyMjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1v
dmVUb1dpbmRvd09ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZpZXdEaWRNb3ZlVG9XaW5k
b3dPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzUwNzVBNzIwQUI3
NjM2MDA2OTNFQTkgLyogV2ViQ3JlZGVudGlhbE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYkNyZWRlbnRpYWxNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NTBG
MzJBMjAzMkQ0RTUwMDM4OTM0NyAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yayAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJh
bWV3b3JrOyBuYW1lID0gTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcms7IHBhdGggPSBTeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0xvY2FsQXV0aGVudGljYXRpb24uZnJhbWV3b3JrOyBzb3Vy
Y2VUcmVlID0gU0RLUk9PVDsgfTsKIAkJNTc1NkRENzQyMThEMTA0OTAwRDRFRTZBIC8qIE1vY2tI
aWRTZXJ2aWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tIaWRTZXJ2aWNlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC03NTEzLDYgKzc1MTUsNyBAQAogCQkJCTUxRDEyNDI1MUU2RDND
QzMwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVyLmggKi8sCiAJCQkJNTFFOEI2OEQxRTcx
Mjg3MzAwMUI3MTMyIC8qIFdlYlVSTFNjaGVtZVRhc2suY3BwICovLAogCQkJCTUxRDEyNDI3MUU2
RDNGMUYwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVUYXNrLmggKi8sCisJCQkJNTcyRkQ0NDEyMjI2
NUNFMjAwQTFFQ0MzIC8qIFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlci5oICovLAogCQkJ
KTsKIAkJCXBhdGggPSBVSVByb2Nlc3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
OTYwMyw2ICs5NjA2LDcgQEAKIAkJCQk3QzM2MUQ3OTE5MjgwM0JEMDAzNkE1OUQgLyogV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTU3
MzlCQkQxQjQyMDQyRDAwRDI1OEMxIC8qIFdlYlVzZXJNZWRpYUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODNFRTU3NUMxREI3RDYxMTAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdl
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzJGRDQ0MzIyMjY1Q0UyMDBBMUVDQzMgLyog
V2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREZD
N0RCQjFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTI5Q0Q1NUFBMTI4RTI5NEYwMDEzM0M4NSAvKiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0
QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjkyMzJERjQxOEIyOUQ2ODAwRDA1OTZGIC8qIFdL
QWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RNYWMuaCBpbiBIZWFkZXJzICovLAo=
</data>
<flag name="review"
          id="379968"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363478</attachid>
            <date>2019-03-03 20:01:05 -0800</date>
            <delta_ts>2019-03-03 20:38:31 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-195223-20190303200104.patch</filename>
            <type>text/plain</type>
            <size>11354</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMyNjAyZmU4OTZmNjVjYzll
Njk1ZDk0NzY0N2I2MzhiYmQzM2U4YTIuLmZhNWIxNDU5Y2E5NWY0Yzg0YjZiNmI2NWEwMjA4ZTgw
NWQ3MWRhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTktMDMtMDEgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBXZWJWaWV3RGlkTW92
ZVRvV2luZG93T2JzZXJ2ZXIgZm9yIFdLV2ViVmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1MjIzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
ODUyMDE2MT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBU
aGUgbG9hZCBvcHRpbWl6ZXIgd291bGQgb25seSBhbGxvdyBpdHNlbGYgdG8gb3B0aW1pemUgbG9h
ZHMgd2hlbmV2ZXIgdGhlIHdlYiB2aWV3CisgICAgICAgIHdobyBvd25zIHRoZSBwYWdlIGlzICh2
aXNpYmxlICYmIGZvY3VzZWQpLCBvdGhlcndpc2VzIGl0IHdpbGwgd2FpdCB1bnRpbCB0aGUgd2Vi
IHZpZXcKKyAgICAgICAgYmVjb21lcyAodmlzaWJsZSAmJiBmb2N1c2VkKS4gVGhlcmVmb3JlLCB3
ZSBuZWVkIGEgd2F5IHRvIG5vdGlmeSB0aGUgbG9hZCBvcHRpbWl6ZXIKKyAgICAgICAgY2hhbmdl
cyBvZiBzdGF0dXNlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgZGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkV2ViVmlld0RpZE1v
dmVUb1dpbmRvd09ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZW1v
dmVXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OndlYlZpZXdEaWRNb3ZlVG9XaW5kb3cpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVmlld0RpZE1vdmVUb1dpbmRv
d09ic2VydmVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDE5LTAzLTAxICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5j
b20+CiAKICAgICAgICAgVW5pZnkgV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gYWNyb3NzIHBvcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAwMTUzZDQ4MmU0ZTZhMmU3NWFlM2EzNDkzMzRjZDNi
OWE1N2Q5YzZhLi41NzI1ODQ4OTEyYTI5ZWFjMjc5Y2FhM2U1OTNmN2NiMmU1ZTdhMDliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI0
ODgsNiArMjQ4OCw3IEBAIC0gKEJPT0wpX3pvb21Ub1JlY3Q6KFdlYkNvcmU6OkZsb2F0UmVjdCl0
YXJnZXRSZWN0IHdpdGhPcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pCiAtICh2b2lkKWRpZE1vdmVU
b1dpbmRvdwogewogICAgIF9wYWdlLT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OmFsbEZsYWdzKCkpOworICAgIF9wYWdlLT53ZWJWaWV3RGlkTW92ZVRvV2lu
ZG93KCk7CiB9CiAKIC0gKHZvaWQpc2V0T3BhcXVlOihCT09MKW9wYXF1ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBkNDhkNmNjOTEwMzYxMDdi
NDE1ZDBhMDE2YmE4ODI0MTI0MTUyZGUyLi5kNTQ4NDhiNzdiNDRmYTdlYTVkMjgwN2MzZGIyZjBi
ZmY0ZThjMGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQpAQCAtMjIxNyw2ICsyMjE3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVU
b1dpbmRvdygpCiAgICAgfQogCiAgICAgbV9wYWdlLT5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZh
Y3RvcihpbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpKTsKKyAgICBtX3BhZ2UtPndlYlZpZXdE
aWRNb3ZlVG9XaW5kb3coKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZENoYW5nZUJh
Y2tpbmdQcm9wZXJ0aWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IDgwNTkxZDNmNzExZDM2YzFhZTM2NDYwNmRjM2U1OGExMDY2OWUyNjUuLmY5NDQyNWVh
YjdiZTliYmQ2MzM1ODViOGRjZTA0MWU5MDYxYmQzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTI4LDYgKzEyOCw3IEBACiAjaW5jbHVkZSAiV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxl
ci5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgiCisjaW5jbHVk
ZSAiV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGFTdG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWRDbGlja0F0dHJpYnV0aW9uLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9CaXRtYXBJbWFnZS5oPgpAQCAtODc1Miw2ICs4NzUzLDI3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpjbGVhckFkQ2xpY2tBdHRyaWJ1dGlvbihDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvCiAgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmNsZWFyQWRD
bGlja0F0dHJpYnV0aW9uKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmFkZE9ic2VydmVy
KFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgYXV0byBy
ZXN1bHQgPSBtX3dlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlcnMuYWRkKCZvYnNlcnZlciwg
bWFrZVdlYWtQdHIob2JzZXJ2ZXIpKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0
LmlzTmV3RW50cnkpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVtb3ZlT2JzZXJ2ZXIoV2Vi
Vmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBhdXRvIHJlc3Vs
dCA9IG1fd2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVycy5yZW1vdmUoJm9ic2VydmVyKTsK
KyAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0KTsKK30KKwordm9pZCBXZWJQYWdlUHJv
eHk6OndlYlZpZXdEaWRNb3ZlVG9XaW5kb3coKQoreworICAgIGZvciAoY29uc3QgYXV0byYgb2Jz
ZXJ2ZXIgOiBtX3dlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlcnMpIHsKKyAgICAgICAgaWYg
KCFvYnNlcnZlci52YWx1ZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBvYnNlcnZl
ci52YWx1ZS0+d2ViVmlld0RpZE1vdmVUb1dpbmRvdygpOworICAgIH0KK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVJHRV9XSEVFTF9FVkVOVFMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMmE1MzlmNTU0ZDYxMWRkYzdlMjY5MmRlZWVjNTcz
YWJiNTFlMjg1Ni4uMzlhMDIxNWUyYmEzOWU2NmExOTM4MmIxNjI4MDMwOTRlNWI2MzE3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIyOCw2ICsyMjgsNyBAQCB0
eXBlZGVmIEhXTkQgUGxhdGZvcm1XaWRnZXQ7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIERy
YXdpbmdBcmVhUHJveHk7CiBjbGFzcyBFZGl0YWJsZUltYWdlQ29udHJvbGxlcjsKK2NsYXNzIEdh
bWVwYWREYXRhOwogY2xhc3MgTmF0aXZlV2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CkBAIC0yNjMsNyArMjY0
LDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogY2xhc3MgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHk7CiBjbGFzcyBXZWJXaGVlbEV2ZW50OwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsK
LWNsYXNzIEdhbWVwYWREYXRhOworY2xhc3MgV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVy
OwogCiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKIHN0cnVjdCBDb2xvclNwYWNlRGF0YTsKQEAg
LTE0NjcsNiArMTQ2OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wQWRDbGlja0F0dHJpYnV0
aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYpOwogICAgIHZvaWQg
Y2xlYXJBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAor
ICAgIHZvaWQgYWRkT2JzZXJ2ZXIoV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyJik7Cisg
ICAgdm9pZCByZW1vdmVPYnNlcnZlcihXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXImKTsK
KyAgICB2b2lkIHdlYlZpZXdEaWRNb3ZlVG9XaW5kb3coKTsKKwogICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlBhZ2VQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwpAQCAtMjM4NCw2ICsyMzg5LDggQEAgcHJp
dmF0ZToKICNpZiBIQVZFKFBFTkNJTEtJVCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RWRpdGFibGVJ
bWFnZUNvbnRyb2xsZXI+IG1fZWRpdGFibGVJbWFnZUNvbnRyb2xsZXI7CiAjZW5kaWYKKworICAg
IEhhc2hNYXA8V2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyKiwgV2Vha1B0cjxXZWJWaWV3
RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXI+PiBtX3dlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZl
cnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNjRiZjgzMjZmYzdkYWQ5YzJhMjI1MzdlZWQ3NTU1NGRhM2ZkN2ZkOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNl
cnZlci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJW
aWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViVmll
d0RpZE1vdmVUb1dpbmRvd09ic2VydmVyPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViVmll
d0RpZE1vdmVUb1dpbmRvd09ic2VydmVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lk
IHdlYlZpZXdEaWRNb3ZlVG9XaW5kb3coKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGI0N2JhOTFkZWU0MTExZWFkM2Y3NmI4YmMxMGI5MDU5ZDEwYTUzZTIuLmExMzI4ZmJhNmYx
Zjc3ZjY1OTczZGMwZTFmYzA5NmMzZTlkZmE0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAxOSw2ICsxMDE5LDcgQEAKIAkJNTNC
QTQ3RDExREMyRUY1RTAwNERGNEFEIC8qIE5ldHdvcmtEYXRhVGFza0Jsb2IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOUVCNTQ3MURDMkVFNDAwMDlE
NDhDRiAvKiBOZXR3b3JrRGF0YVRhc2tCbG9iLmggKi87IH07CiAJCTUzQ0ZCQkM4MjIyNEQxQjUw
MDI2NjU0NiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzQ0ZCQkM3MjIyNEQxQjAwMDI2NjU0NiAvKiBUZXh0
Q2hlY2tlckNvbXBsZXRpb24uaCAqLzsgfTsKIAkJNTcwQUI4RjMyMEFFM0JENzAwQjhCRTg3IC8q
IFNlY0tleVByb3h5U3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3MEFCOEYyMjBBRTNCRDcwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVN0b3JlLmgg
Ki87IH07CisJCTU3MkZENDQzMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3RGlkTW92ZVRvV2lu
ZG93T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3MkZENDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2Jz
ZXJ2ZXIuaCAqLzsgfTsKIAkJNTc1OTdFQjkyMTgxMUQ5QTAwMzdGOTI0IC8qIEN0YXBIaWREcml2
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTk3
RUI3MjE4MTFEOUEwMDM3RjkyNCAvKiBDdGFwSGlkRHJpdmVyLmggKi87IH07CiAJCTU3NTk3RUJE
MjE4MTg0OTAwMDM3RjkyNCAvKiBDdGFwSGlkQXV0aGVudGljYXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc1OTdFQkIyMTgxODQ4RjAwMzdGOTI0
IC8qIEN0YXBIaWRBdXRoZW50aWNhdG9yLmggKi87IH07CiAJCTU3NzJGMjA2MjE3REJENkEwMDU2
QkYyQyAvKiBIaWRTZXJ2aWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzcyRjIwNDIxN0RCRDZBMDA1NkJGMkMgLyogSGlkU2VydmljZS5oICovOyB9
OwpAQCAtMzM1NSw2ICszMzU2LDcgQEAKIAkJNTcwQUI4RjIyMEFFM0JENzAwQjhCRTg3IC8qIFNl
Y0tleVByb3h5U3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VjS2V5UHJveHlTdG9yZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzBBQjkwMDIwQjI1MTc0MDBCOEJFODcgLyogQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzBBQjkwMzIwQjI1NDFDMDBCOEJFODcgLyogU2VjS2V5UHJveHlTdG9yZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlY0tleVByb3h5U3Rv
cmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3MkZENDQxMjIyNjVDRTIwMEEx
RUNDMyAvKiBXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3NTA3NUE3MjBBQjc2MzYwMDY5M0VBOSAvKiBXZWJDcmVkZW50aWFsTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ3JlZGVudGlhbE1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTc1MEYzMkEyMDMyRDRFNTAwMzg5MzQ3IC8qIExvY2FsQXV0aGVudGlj
YXRpb24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBMb2NhbEF1dGhlbnRpY2F0aW9uLmZy
YW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTG9jYWxBdXRoZW50aWNh
dGlvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk1NzU2REQ3NDIxOEQx
MDQ5MDBENEVFNkEgLyogTW9ja0hpZFNlcnZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja0hpZFNl
cnZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc1MTMsNiArNzUxNSw3IEBA
CiAJCQkJNTFEMTI0MjUxRTZEM0NDMzAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXIuaCAq
LywKIAkJCQk1MUU4QjY4RDFFNzEyODczMDAxQjcxMzIgLyogV2ViVVJMU2NoZW1lVGFzay5jcHAg
Ki8sCiAJCQkJNTFEMTI0MjcxRTZEM0YxRjAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZVRhc2suaCAq
LywKKwkJCQk1NzJGRDQ0MTIyMjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dpbmRv
d09ic2VydmVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFVJUHJvY2VzczsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC05NzM5LDYgKzk3NDIsNyBAQAogCQkJCUM1NDI1NkJBMThCRUMx
OEMwMERFNDE3OSAvKiBXS0Zvcm1TZWxlY3RDb250cm9sLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjA4Q0Y1MjFENjNDMTNBMDBCNDhERjEgLyogV0tGb3JtU2VsZWN0UGlja2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjA4Q0Y1NDFENjNDMTQwMDBCNDhERjEgLyogV0tGb3JtU2VsZWN0UG9wb3Zl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTcyRkQ0NDMyMjI2NUNFMjAwQTFFQ0MzIC8qIFdlYlZp
ZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5NUEx
MjE0RURGNDAwMEI5OEVCIC8qIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzdERkE3MDAxODEwQkI5MjAwMUY0QTlGIC8qIFdLRm91bmRhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNEMDEzOUIxMTBGQTQyMDAwM0I4QTY3IC8qIFdLRnJhbWUuaCBpbiBI
ZWFkZXJzICovLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>