<?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>94906</bug_id>
          
          <creation_ts>2012-08-23 23:19:28 -0700</creation_ts>
          <short_desc>[EFL][WK2] Fix PageClientImpl layer violation</short_desc>
          <delta_ts>2012-08-27 23:28:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Kangil Han">kangil.han</reporter>
          <assigned_to name="Kangil Han">kangil.han</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>703801</commentid>
    <comment_count>0</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-08-23 23:19:28 -0700</bug_when>
    <thetext>Compared to other ports, i.e. mac and gtk+, ours has WebContext reference in PageClientImpl.
It seems not necessary because WebContext is singleton and PageClientImpl could be implemented with view only.
Having different implementation to gtk+ isn&apos;t be our policy too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703985</commentid>
    <comment_count>1</comment_count>
      <attachid>160393</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-08-24 04:37:20 -0700</bug_when>
    <thetext>Created attachment 160393
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704001</commentid>
    <comment_count>2</comment_count>
      <attachid>160398</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-08-24 05:06:14 -0700</bug_when>
    <thetext>Created attachment 160398
patch

rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704026</commentid>
    <comment_count>3</comment_count>
      <attachid>160406</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-08-24 05:58:33 -0700</bug_when>
    <thetext>Created attachment 160406
patch

rebase again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704054</commentid>
    <comment_count>4</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-08-24 06:31:35 -0700</bug_when>
    <thetext>ryuan: review please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704064</commentid>
    <comment_count>5</comment_count>
      <attachid>160406</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-08-24 06:42:51 -0700</bug_when>
    <thetext>Comment on attachment 160406
patch

LGTM. Does it stop complaining about the WebContext being leaked now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704072</commentid>
    <comment_count>6</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-08-24 06:50:16 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 160406 [details])
&gt; LGTM. Does it stop complaining about the WebContext being leaked now?

Unfortunately, nope. :-(
WebProcessProxy has the key for resolving WebContext leak but seems WebProcess didn&apos;t do anything for it. To fix it I should discuss more with apple people.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704687</commentid>
    <comment_count>7</comment_count>
      <attachid>160406</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-08-25 06:22:54 -0700</bug_when>
    <thetext>Comment on attachment 160406
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_view.cpp:191
&gt; +    priv-&gt;pageProxy.get()-&gt;viewStateDidChange(WebPageProxy::ViewIsFocused | WebPageProxy::ViewWindowIsActive);

I think that .get() is unnecessary when you call a method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704896</commentid>
    <comment_count>8</comment_count>
      <attachid>160406</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-08-26 15:16:14 -0700</bug_when>
    <thetext>Comment on attachment 160406
patch

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

&gt; Source/WebKit2/ChangeLog:10
&gt; +        Given WK2 hierarchy, current PageClientImpl has violated API layer by having WebPageProxy.
&gt; +        Subsequently, it has been given WebContext, static singleton object, in its argument unnecessarily.
&gt; +        Therefore, this patch fixed addressed issues and let view has WebPageProxy as other ports, i.e. mac and gtk+, does currently.

It&apos;d be good to explain how those arguments that have been removed from PageClientImpl&apos;s constructor are supposed to be retrieved now, as well as add a short indication of what has been done to the methods below when there&apos;s been more than a search-and-replace change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704915</commentid>
    <comment_count>9</comment_count>
      <attachid>160406</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-26 17:58:42 -0700</bug_when>
    <thetext>Comment on attachment 160406
patch

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

&gt; Source/WebKit2/UIProcess/API/efl/PageClientImpl.h:46
&gt; +    PageClientImpl(Evas_Object*);

Missing *explicit* keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706068</commentid>
    <comment_count>10</comment_count>
      <attachid>160900</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2012-08-27 22:30:41 -0700</bug_when>
    <thetext>Created attachment 160900
patch

Done. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706071</commentid>
    <comment_count>11</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-08-27 22:37:03 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=160900) [details]
&gt; patch
&gt; 
&gt; Done. Thanks!

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706080</commentid>
    <comment_count>12</comment_count>
      <attachid>160900</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-08-27 22:44:52 -0700</bug_when>
    <thetext>Comment on attachment 160900
patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706105</commentid>
    <comment_count>13</comment_count>
      <attachid>160900</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-27 23:28:05 -0700</bug_when>
    <thetext>Comment on attachment 160900
patch

Clearing flags on attachment: 160900

Committed r126844: &lt;http://trac.webkit.org/changeset/126844&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706106</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-27 23:28:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160393</attachid>
            <date>2012-08-24 04:37:20 -0700</date>
            <delta_ts>2012-08-24 05:06:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>page_client_impl_patch.txt</filename>
            <type>text/plain</type>
            <size>20370</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1OTY0MmFkLi5jOWZhY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcg
QEAKKzIwMTItMDgtMjQgIEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gRml4IFBhZ2VDbGllbnRJbXBsIGxheWVyIHZpb2xhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ5MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHaXZlbiBXSzIgaGll
cmFyY2h5LCBjdXJyZW50IFBhZ2VDbGllbnRJbXBsIGhhcyB2aW9sYXRlZCBBUEkgbGF5ZXIgYnkg
aGF2aW5nIFdlYlBhZ2VQcm94eS4KKyAgICAgICAgU3Vic2VxdWVudGx5LCBpdCBoYXMgYmVlbiBn
aXZlbiBXZWJDb250ZXh0LCBzdGF0aWMgc2luZ2xldG9uIG9iamVjdCwgaW4gaXRzIGFyZ3VtZW50
IHVubmVjZXNzYXJpbHkuCisgICAgICAgIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBmaXhlZCBhZGRy
ZXNzZWQgaXNzdWVzIGFuZCBsZXQgdmlldyBoYXMgV2ViUGFnZVByb3h5IGFzIG90aGVyIHBvcnRz
LCBpLmUuIG1hYyBhbmQgZ3RrKywgZG9lcyBjdXJyZW50bHkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Q
YWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
KToKKyAgICAgICAgKFBhZ2VDbGllbnRJbXBsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAg
ICAgKF9ld2tfdmlld19zbWFydF9mb2N1c19pbik6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRf
Zm9jdXNfb3V0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9tb3VzZV93aGVlbCk6CisgICAg
ICAgIChfZXdrX3ZpZXdfc21hcnRfbW91c2VfZG93bik6CisgICAgICAgIChfZXdrX3ZpZXdfc21h
cnRfbW91c2VfdXApOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdXNlX21vdmUpOgorICAg
ICAgICAoX2V3a192aWV3X3NtYXJ0X2tleV9kb3duKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFy
dF9rZXlfdXApOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZSk6CisgICAgICAg
IChfZXdrX3ZpZXdfc21hcnRfY29sb3Jfc2V0KToKKyAgICAgICAgKF9ld2tfdmlld19pbml0aWFs
aXplKToKKyAgICAgICAgKGV3a192aWV3X3VyaV91cGRhdGUpOgorICAgICAgICAoZXdrX3ZpZXdf
dXJpX3NldCk6CisgICAgICAgIChld2tfdmlld19yZWxvYWQpOgorICAgICAgICAoZXdrX3ZpZXdf
cmVsb2FkX2J5cGFzc19jYWNoZSk6CisgICAgICAgIChld2tfdmlld19zdG9wKToKKyAgICAgICAg
KGV3a192aWV3X3RpdGxlX2dldCk6CisgICAgICAgIChld2tfdmlld19sb2FkX3Byb2dyZXNzX2dl
dCk6CisgICAgICAgIChld2tfdmlld19zY2FsZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2Nh
bGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X2RldmljZV9waXhlbF9yYXRpb19zZXQpOgorICAg
ICAgICAoZXdrX3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX2dldCk6CisgICAgICAgIChld2tfdmll
d190aGVtZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfYmFjayk6CisgICAgICAgIChld2tfdmll
d19mb3J3YXJkKToKKyAgICAgICAgKGV3a192aWV3X2ludGVudF9kZWxpdmVyKToKKyAgICAgICAg
KGV3a192aWV3X2JhY2tfcG9zc2libGUpOgorICAgICAgICAoZXdrX3ZpZXdfZm9yd2FyZF9wb3Nz
aWJsZSk6CisgICAgICAgIChld2tfdmlld19odG1sX3N0cmluZ19sb2FkKToKKyAgICAgICAgKGV3
a192aWV3X3BhZ2VfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfZW5jb2RpbmdfY3Vz
dG9tX2dldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9zZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfdGV4dF9maW5kKToKKyAgICAgICAgKGV3a192aWV3X3RleHRf
ZmluZF9oaWdobGlnaHRfY2xlYXIpOgorCiAyMDEyLTA4LTIzICBTaGVyaWZmIEJvdCAgPHdlYmtp
dC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTI2NTQyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
UGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFn
ZUNsaWVudEltcGwuY3BwCmluZGV4IDcyNmNhYWEuLjY5OTM2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTQ0LDE4
ICs0NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotUGFnZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBsKFdlYkNvbnRleHQqIGNvbnRleHQsIFdl
YlBhZ2VHcm91cCogcGFnZUdyb3VwLCBFdmFzX09iamVjdCogdmlld1dpZGdldCkKK1BhZ2VDbGll
bnRJbXBsOjpQYWdlQ2xpZW50SW1wbChFdmFzX09iamVjdCogdmlld1dpZGdldCkKICAgICA6IG1f
dmlld1dpZGdldCh2aWV3V2lkZ2V0KQogewotICAgIG1fcGFnZSA9IGNvbnRleHQtPmNyZWF0ZVdl
YlBhZ2UodGhpcywgcGFnZUdyb3VwKTsKLQotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
LSAgICBtX3BhZ2UtPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKLSAgICBtX3BhZ2UtPnBhZ2VHcm91cCgpLT5wcmVmZXJl
bmNlcygpLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKLSAgICBtX3BhZ2UtPnNldFVz
ZUZpeGVkTGF5b3V0KHRydWUpOwotI2VuZGlmCi0KLSAgICBtX3BhZ2UtPmluaXRpYWxpemVXZWJQ
YWdlKCk7CiB9CiAKIFBhZ2VDbGllbnRJbXBsOjp+UGFnZUNsaWVudEltcGwoKQpAQCAtNjUsNyAr
NTYsNyBAQCBQYWdlQ2xpZW50SW1wbDo6flBhZ2VDbGllbnRJbXBsKCkKIC8vIFBhZ2VDbGllbnQK
IFBhc3NPd25QdHI8RHJhd2luZ0FyZWFQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZURyYXdp
bmdBcmVhUHJveHkoKQogewotICAgIHJldHVybiBEcmF3aW5nQXJlYVByb3h5SW1wbDo6Y3JlYXRl
KG1fcGFnZS5nZXQoKSk7CisgICAgcmV0dXJuIERyYXdpbmdBcmVhUHJveHlJbXBsOjpjcmVhdGUo
ZXdrX3ZpZXdfcGFnZV9nZXQobV92aWV3V2lkZ2V0KSk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5oCmlu
ZGV4IDg2MTg1MDIuLjRiNDFiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvUGFnZUNsaWVudEltcGwuaApAQCAtMzMsMTggKzMzLDE3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBQYWdlQ2xpZW50SW1wbCA6IHB1YmxpYyBQYWdlQ2xpZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYWdlQ2xpZW50SW1wbD4gY3JlYXRlKFdlYkNv
bnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCBFdmFzX09iamVjdCogdmll
d1dpZGdldCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxQYWdlQ2xpZW50SW1wbD4gY3JlYXRlKEV2
YXNfT2JqZWN0KiB2aWV3V2lkZ2V0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBQYWdlQ2xpZW50SW1wbChjb250ZXh0LCBwYWdlR3JvdXAsIHZpZXdXaWRnZXQpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ2xpZW50SW1wbCh2aWV3V2lkZ2V0KSk7CiAgICAg
fQogICAgIH5QYWdlQ2xpZW50SW1wbCgpOwogCiAgICAgRXZhc19PYmplY3QqIHZpZXdXaWRnZXQo
KSBjb25zdCB7IHJldHVybiBtX3ZpZXdXaWRnZXQ7IH0KIAotICAgIFdlYlBhZ2VQcm94eSogcGFn
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogCiBwcml2YXRlOgotICAgIFBhZ2VD
bGllbnRJbXBsKFdlYkNvbnRleHQqLCBXZWJQYWdlR3JvdXAqLCBFdmFzX09iamVjdCopOworICAg
IFBhZ2VDbGllbnRJbXBsKEV2YXNfT2JqZWN0Kik7CiAKICAgICAvLyBQYWdlQ2xpZW50CiAgICAg
dmlydHVhbCBQYXNzT3duUHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJv
eHkoKTsKQEAgLTExNSw3ICsxMTQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRD
aGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogCiBwcml2YXRlOgot
ICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKICAgICBFdmFzX09iamVjdCogbV92aWV3
V2lkZ2V0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXcuY3BwCmluZGV4IGExZTY2ODMuLmFmMzBiYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJX
S1JldGFpblB0ci5oIgogI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIK
KyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0
X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19jb250
ZXh0X3ByaXZhdGUuaCIKQEAgLTczLDYgKzc0LDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRl
X0RhdGEgewogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBPd25QdHI8RWZsVmll
d3BvcnRIYW5kbGVyPiB2aWV3cG9ydEhhbmRsZXI7CiAjZW5kaWYKKyAgICBSZWZQdHI8V2ViUGFn
ZVByb3h5PiBwYWdlUHJveHk7CiAKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJpOwogICAgIFdL
RWluYVNoYXJlZFN0cmluZyB0aXRsZTsKQEAgLTE4Niw3ICsxODgsNyBAQCBzdGF0aWMgRWluYV9C
b29sIF9ld2tfdmlld19zbWFydF9mb2N1c19pbihFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERh
dGEpCiB7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwg
ZmFsc2UpCiAKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnZpZXdTdGF0ZURpZENoYW5n
ZShXZWJQYWdlUHJveHk6OlZpZXdJc0ZvY3VzZWQgfCBXZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJ
c0FjdGl2ZSk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT52aWV3U3RhdGVEaWRDaGFuZ2Uo
V2ViUGFnZVByb3h5OjpWaWV3SXNGb2N1c2VkIHwgV2ViUGFnZVByb3h5OjpWaWV3V2luZG93SXNB
Y3RpdmUpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0xOTQsNyArMTk2LDcgQEAgc3RhdGlj
IEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfZm9jdXNfb3V0KEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNtYXJ0RGF0YSkKIHsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRh
LCBwcml2LCBmYWxzZSkKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+dmlld1N0YXRl
RGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzRm9jdXNlZCB8IFdlYlBhZ2VQcm94eTo6Vmll
d1dpbmRvd0lzQWN0aXZlKTsKKyAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPnZpZXdTdGF0ZURp
ZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0ZvY3VzZWQgfCBXZWJQYWdlUHJveHk6OlZpZXdX
aW5kb3dJc0FjdGl2ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIwMyw3ICsyMDUsNyBA
QCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9tb3VzZV93aGVlbChFd2tfVmlld19T
bWFydF9EYXRhKiBzbWFydERhdGEsIGNvbgogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVS
TihzbWFydERhdGEsIHByaXYsIGZhbHNlKQogCiAgICAgRXZhc19Qb2ludCBwb3NpdGlvbiA9IHtz
bWFydERhdGEtPnZpZXcueCwgc21hcnREYXRhLT52aWV3Lnl9OwotICAgIHByaXYtPnBhZ2VDbGll
bnQtPnBhZ2UoKS0+aGFuZGxlV2hlZWxFdmVudChOYXRpdmVXZWJXaGVlbEV2ZW50KHdoZWVsRXZl
bnQsICZwb3NpdGlvbikpOworICAgIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+aGFuZGxlV2hlZWxF
dmVudChOYXRpdmVXZWJXaGVlbEV2ZW50KHdoZWVsRXZlbnQsICZwb3NpdGlvbikpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC0yMTIsNyArMjE0LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdr
X3ZpZXdfc21hcnRfbW91c2VfZG93bihFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNv
bnMKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxz
ZSkKIAogICAgIEV2YXNfUG9pbnQgcG9zaXRpb24gPSB7c21hcnREYXRhLT52aWV3LngsIHNtYXJ0
RGF0YS0+dmlldy55fTsKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmhhbmRsZU1vdXNl
RXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudChkb3duRXZlbnQsICZwb3NpdGlvbikpOworICAgIHBy
aXYtPnBhZ2VQcm94eS5nZXQoKS0+aGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50
KGRvd25FdmVudCwgJnBvc2l0aW9uKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIyMSw3
ICsyMjMsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9tb3VzZV91cChFd2tf
Vmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNvbnN0CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRf
T1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpCiAKICAgICBFdmFzX1BvaW50IHBvc2l0
aW9uID0ge3NtYXJ0RGF0YS0+dmlldy54LCBzbWFydERhdGEtPnZpZXcueX07Ci0gICAgcHJpdi0+
cGFnZUNsaWVudC0+cGFnZSgpLT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQo
dXBFdmVudCwgJnBvc2l0aW9uKSk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5oYW5kbGVN
b3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQodXBFdmVudCwgJnBvc2l0aW9uKSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKQEAgLTIzMCw3ICsyMzIsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9l
d2tfdmlld19zbWFydF9tb3VzZV9tb3ZlKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwg
Y29ucwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZh
bHNlKQogCiAgICAgRXZhc19Qb2ludCBwb3NpdGlvbiA9IHtzbWFydERhdGEtPnZpZXcueCwgc21h
cnREYXRhLT52aWV3Lnl9OwotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+aGFuZGxlTW91
c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KG1vdmVFdmVudCwgJnBvc2l0aW9uKSk7CisgICAg
cHJpdi0+cGFnZVByb3h5LmdldCgpLT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZl
bnQobW92ZUV2ZW50LCAmcG9zaXRpb24pKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjM4
LDcgKzI0MCw3IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2tleV9kb3duKEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QKIHsKICAgICBFV0tfVklFV19QUklW
X0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSkKIAotICAgIHByaXYtPnBhZ2VD
bGllbnQtPnBhZ2UoKS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50
KGRvd25FdmVudCkpOworICAgIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+aGFuZGxlS2V5Ym9hcmRF
dmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGRvd25FdmVudCkpOwogICAgIHJldHVybiB0cnVl
OwogfQogCkBAIC0yNDYsNyArMjQ4LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21h
cnRfa2V5X3VwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXYKIHsKICAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSkKIAot
ICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KHVwRXZlbnQpKTsKKyAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPmhh
bmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh1cEV2ZW50KSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKQEAgLTUzNCw4ICs1MzYsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3Zp
ZXdfc21hcnRfY2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgICAgICBwcml2LT52
aWV3cG9ydEhhbmRsZXItPnVwZGF0ZVZpZXdwb3J0U2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQp
KTsKICNlbmRpZgogCi0gICAgICAgIGlmIChwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdp
bmdBcmVhKCkpCi0gICAgICAgICAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdB
cmVhKCktPnNldFNpemUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSwgSW50U2l6ZSgpKTsKKyAgICAg
ICAgaWYgKHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+ZHJhd2luZ0FyZWEoKSkKKyAgICAgICAgICAg
IHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZShJbnRTaXplKHdp
ZHRoLCBoZWlnaHQpLCBJbnRTaXplKCkpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogICAgICAgICBpZiAoIXByaXYtPmV2YXNHbFN1cmZhY2UpCkBAIC01OTcsOCArNTk5LDgg
QEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2NvbG9yX3NldChFdmFzX09iamVjdCogZXdr
VmlldywgaW50IHJlZCwgaW50IGdyZWVuLAogI3VuZGVmIENIRUNLX0NPTE9SCiAKICAgICBldmFz
X29iamVjdF9pbWFnZV9hbHBoYV9zZXQoc21hcnREYXRhLT5pbWFnZSwgYWxwaGEgPCAyNTUpOwot
ICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+c2V0RHJhd3NCYWNrZ3JvdW5kKHJlZCB8fCBn
cmVlbiB8fCBibHVlKTsKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnNldERyYXdzVHJh
bnNwYXJlbnRCYWNrZ3JvdW5kKGFscGhhIDwgMjU1KTsKKyAgICBwcml2LT5wYWdlUHJveHkuZ2V0
KCktPnNldERyYXdzQmFja2dyb3VuZChyZWQgfHwgZ3JlZW4gfHwgYmx1ZSk7CisgICAgcHJpdi0+
cGFnZVByb3h5LmdldCgpLT5zZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChhbHBoYSA8IDI1
NSk7CiAKICAgICBnX3BhcmVudFNtYXJ0Q2xhc3MuY29sb3Jfc2V0KGV3a1ZpZXcsIHJlZCwgZ3Jl
ZW4sIGJsdWUsIGFscGhhKTsKIH0KQEAgLTY2NCwxNSArNjY2LDIzIEBAIHN0YXRpYyB2b2lkIF9l
d2tfdmlld19pbml0aWFsaXplKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfQ29udGV4dCogY29u
dGV4dCwgV0tQCiAgICAgaWYgKHByaXYtPnBhZ2VDbGllbnQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHByaXYtPnBhZ2VDbGllbnQgPSBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlKHRvSW1wbChld2tf
Y29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnRleHQpKSwgdG9JbXBsKHBhZ2VHcm91cFJlZiksIGV3
a1ZpZXcpOworICAgIHByaXYtPnBhZ2VDbGllbnQgPSBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlKGV3
a1ZpZXcpOworICAgIHByaXYtPnBhZ2VQcm94eSA9IHRvSW1wbChld2tfY29udGV4dF9XS0NvbnRl
eHRfZ2V0KGNvbnRleHQpKS0+Y3JlYXRlV2ViUGFnZShwcml2LT5wYWdlQ2xpZW50LmdldCgpLCB0
b0ltcGwocGFnZUdyb3VwUmVmKSk7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorICAg
IHByaXYtPnBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpOworICAgIHByaXYtPnBhZ2VQcm94eS0+cGFnZUdy
b3VwKCktPnByZWZlcmVuY2VzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAg
IHByaXYtPnBhZ2VQcm94eS0+c2V0VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CisjZW5kaWYKKyAgICBw
cml2LT5wYWdlUHJveHktPmluaXRpYWxpemVXZWJQYWdlKCk7CisKICAgICBmcHJpbnRmKHN0ZGVy
ciwgIltfZXdrX3ZpZXdfaW5pdGlhbGl6ZV0gcmVmIGNvdW50WyVkXVxuIiwgV0tSZWZDb3VudCh0
b0ltcGwoZXdrX2NvbnRleHRfV0tDb250ZXh0X2dldChjb250ZXh0KSkpKTsKLSAgICBwcml2LT5i
YWNrRm9yd2FyZExpc3QgPSBld2tfYmFja19mb3J3YXJkX2xpc3RfbmV3KHRvQVBJKHByaXYtPnBh
Z2VDbGllbnQtPnBhZ2UoKS0+YmFja0ZvcndhcmRMaXN0KCkpKTsKKyAgICBwcml2LT5iYWNrRm9y
d2FyZExpc3QgPSBld2tfYmFja19mb3J3YXJkX2xpc3RfbmV3KHRvQVBJKHByaXYtPnBhZ2VQcm94
eS5nZXQoKS0+YmFja0ZvcndhcmRMaXN0KCkpKTsKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQ
SElDUykKICAgICBwcml2LT52aWV3cG9ydEhhbmRsZXIgPSBFZmxWaWV3cG9ydEhhbmRsZXI6OmNy
ZWF0ZShwcml2LT5wYWdlQ2xpZW50LmdldCgpKTsKICNlbmRpZgogCi0gICAgV0tQYWdlUmVmIHdr
UGFnZSA9IHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSk7CisgICAgV0tQYWdlUmVmIHdr
UGFnZSA9IHRvQVBJKHByaXYtPnBhZ2VQcm94eS5nZXQoKSk7CiAgICAgZXdrX3ZpZXdfZmluZF9j
bGllbnRfYXR0YWNoKHdrUGFnZSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfZm9ybV9jbGllbnRf
YXR0YWNoKHdrUGFnZSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRh
Y2god2tQYWdlLCBld2tWaWV3KTsKQEAgLTc2MCw3ICs3NzAsNyBAQCB2b2lkIGV3a192aWV3X3Vy
aV91cGRhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JF
VFVSTihld2tWaWV3LCBzbWFydERhdGEpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVS
TihzbWFydERhdGEsIHByaXYpOwogCi0gICAgU3RyaW5nIGFjdGl2ZVVSTCA9IHByaXYtPnBhZ2VD
bGllbnQtPnBhZ2UoKS0+YWN0aXZlVVJMKCk7CisgICAgU3RyaW5nIGFjdGl2ZVVSTCA9IHByaXYt
PnBhZ2VQcm94eS5nZXQoKS0+YWN0aXZlVVJMKCk7CiAgICAgaWYgKGFjdGl2ZVVSTC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzc4LDcgKzc4OCw3IEBAIEVpbmFfQm9vbCBld2tf
dmlld191cmlfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiB1cmkpCiAgICAg
RVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh1cmksIGZhbHNlKTsKIAotICAgIHByaXYt
PnBhZ2VDbGllbnQtPnBhZ2UoKS0+bG9hZFVSTCh1cmkpOworICAgIHByaXYtPnBhZ2VQcm94eS5n
ZXQoKS0+bG9hZFVSTCh1cmkpOwogICAgIGV3a192aWV3X3VyaV91cGRhdGUoZXdrVmlldyk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTc5Nyw3ICs4MDcsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdf
cmVsb2FkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1Jf
UkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAgcHJpdi0+cGFnZUNsaWVudC0+
cGFnZSgpLT5yZWxvYWQoLypyZWxvYWRGcm9tT3JpZ2luKi8gZmFsc2UpOworICAgIHByaXYtPnBh
Z2VQcm94eS5nZXQoKS0+cmVsb2FkKC8qcmVsb2FkRnJvbU9yaWdpbiovIGZhbHNlKTsKICAgICBl
d2tfdmlld191cmlfdXBkYXRlKGV3a1ZpZXcpOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC04MDgs
NyArODE4LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3JlbG9hZF9ieXBhc3NfY2FjaGUoRXZhc19P
YmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBz
bWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnRE
YXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnJlbG9h
ZCgvKnJlbG9hZEZyb21PcmlnaW4qLyB0cnVlKTsKKyAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCkt
PnJlbG9hZCgvKnJlbG9hZEZyb21PcmlnaW4qLyB0cnVlKTsKICAgICBld2tfdmlld191cmlfdXBk
YXRlKGV3a1ZpZXcpOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC04MTksNyArODI5LDcgQEAgRWlu
YV9Cb29sIGV3a192aWV3X3N0b3AoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklF
V19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICBwcml2
LT5wYWdlQ2xpZW50LT5wYWdlKCktPnN0b3BMb2FkaW5nKCk7CisgICAgcHJpdi0+cGFnZVByb3h5
LmdldCgpLT5zdG9wTG9hZGluZygpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC05MjcsNyAr
OTM3LDcgQEAgY29uc3QgY2hhciogZXdrX3ZpZXdfdGl0bGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnRE
YXRhLCAwKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2
LCAwKTsKIAotICAgIENTdHJpbmcgdGl0bGUgPSBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnBh
Z2VUaXRsZSgpLnV0ZjgoKTsKKyAgICBDU3RyaW5nIHRpdGxlID0gcHJpdi0+cGFnZVByb3h5Lmdl
dCgpLT5wYWdlVGl0bGUoKS51dGY4KCk7CiAgICAgcHJpdi0+dGl0bGUgPSB0aXRsZS5kYXRhKCk7
CiAKICAgICByZXR1cm4gcHJpdi0+dGl0bGU7CkBAIC05NjAsNyArOTcwLDcgQEAgZG91YmxlIGV3
a192aWV3X2xvYWRfcHJvZ3Jlc3NfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAg
IEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAtMS4wKTsKICAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAtMS4wKTsKIAot
ICAgIHJldHVybiBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmVzdGltYXRlZFByb2dyZXNzKCk7
CisgICAgcmV0dXJuIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+ZXN0aW1hdGVkUHJvZ3Jlc3MoKTsK
IH0KIAogRWluYV9Cb29sIGV3a192aWV3X3NjYWxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywg
ZG91YmxlIHNjYWxlRmFjdG9yLCBpbnQgeCwgaW50IHkpCkBAIC05NjgsNyArOTc4LDcgQEAgRWlu
YV9Cb29sIGV3a192aWV3X3NjYWxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgZG91YmxlIHNj
YWxlRmFjdG9yLCBpbnQgeCwgaW4KICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1Zp
ZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihz
bWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+
c2NhbGVQYWdlKHNjYWxlRmFjdG9yLCBJbnRQb2ludCh4LCB5KSk7CisgICAgcHJpdi0+cGFnZVBy
b3h5LmdldCgpLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIEludFBvaW50KHgsIHkpKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtOTc3LDcgKzk4Nyw3IEBAIGRvdWJsZSBld2tfdmlld19zY2Fs
ZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09S
X1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIC0xKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAtMSk7CiAKLSAgICByZXR1cm4gcHJpdi0+cGFnZUNs
aWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gcHJpdi0+cGFnZVBy
b3h5LmdldCgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKIH0KIAogRWluYV9Cb29sIGV3a192aWV3X2Rl
dmljZV9waXhlbF9yYXRpb19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGZsb2F0IHJhdGlvKQpA
QCAtOTg1LDcgKzk5NSw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19kZXZpY2VfcGl4ZWxfcmF0aW9f
c2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBmbG9hdCByYXRpbykKICAgICBFV0tfVklFV19TRF9H
RVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BS
SVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAotICAgIHByaXYtPnBh
Z2VDbGllbnQtPnBhZ2UoKS0+c2V0Q3VzdG9tRGV2aWNlU2NhbGVGYWN0b3IocmF0aW8pOworICAg
IHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+c2V0Q3VzdG9tRGV2aWNlU2NhbGVGYWN0b3IocmF0aW8p
OwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC05OTUsNyArMTAwNSw3IEBAIGZsb2F0IGV3a192
aWV3X2RldmljZV9waXhlbF9yYXRpb19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAg
ICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIC0xLjApOwog
ICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIC0xLjApOwog
Ci0gICAgcmV0dXJuIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3Io
KTsKKyAgICByZXR1cm4gcHJpdi0+cGFnZVByb3h5LmdldCgpLT5kZXZpY2VTY2FsZUZhY3Rvcigp
OwogfQogCiAvKioKQEAgLTEwMjksNyArMTAzOSw3IEBAIHZvaWQgZXdrX3ZpZXdfdGhlbWVfc2V0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiBwYXRoKQogCiAgICAgaWYgKHByaXYt
PnRoZW1lICE9IHBhdGgpIHsKICAgICAgICAgcHJpdi0+dGhlbWUgPSBwYXRoOwotICAgICAgICBw
cml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnNldFRoZW1lUGF0aChwYXRoKTsKKyAgICAgICAgcHJp
di0+cGFnZVByb3h5LmdldCgpLT5zZXRUaGVtZVBhdGgocGF0aCk7CiAgICAgfQogfQogCkBAIC0x
MTU5LDcgKzExNjksNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfYmFjayhFdmFzX09iamVjdCogZXdr
VmlldykKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwg
ZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYs
IGZhbHNlKTsKIAotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHByaXYtPnBhZ2VDbGllbnQtPnBh
Z2UoKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBwcml2LT5wYWdlUHJveHkuZ2V0KCk7CiAg
ICAgaWYgKHBhZ2UtPmNhbkdvQmFjaygpKSB7CiAgICAgICAgIHBhZ2UtPmdvQmFjaygpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKQEAgLTExNzMsNyArMTE4Myw3IEBAIEVpbmFfQm9vbCBld2tfdmll
d19mb3J3YXJkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9S
RVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRf
T1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAgV2ViUGFnZVByb3h5KiBw
YWdlID0gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9
IHByaXYtPnBhZ2VQcm94eS5nZXQoKTsKICAgICBpZiAocGFnZS0+Y2FuR29Gb3J3YXJkKCkpIHsK
ICAgICAgICAgcGFnZS0+Z29Gb3J3YXJkKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTE4
OSw3ICsxMTk5LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X2ludGVudF9kZWxpdmVyKEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBFd2tfSW50ZW50KiBpbnRlbnQpCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRf
T1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChpbnRlbnQsIGZhbHNlKTsKIAotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9
IHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBwcml2
LT5wYWdlUHJveHkuZ2V0KCk7CiAgICAgcGFnZS0+ZGVsaXZlckludGVudFRvRnJhbWUocGFnZS0+
bWFpbkZyYW1lKCksIHRvSW1wbChld2tfaW50ZW50X1dLSW50ZW50RGF0YVJlZl9nZXQoaW50ZW50
KSkpOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMjAzLDcgKzEyMTMsNyBAQCBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfYmFja19wb3NzaWJsZShFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19W
SUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAotICAgIHJl
dHVybiBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmNhbkdvQmFjaygpOworICAgIHJldHVybiBw
cml2LT5wYWdlUHJveHkuZ2V0KCktPmNhbkdvQmFjaygpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3Zp
ZXdfZm9yd2FyZF9wb3NzaWJsZShFdmFzX09iamVjdCogZXdrVmlldykKQEAgLTEyMTEsNyArMTIy
MSw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19mb3J3YXJkX3Bvc3NpYmxlKEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRh
LCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOwogCi0gICAgcmV0dXJuIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+Y2FuR29G
b3J3YXJkKCk7CisgICAgcmV0dXJuIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+Y2FuR29Gb3J3YXJk
KCk7CiB9CiAKIEV3a19CYWNrX0ZvcndhcmRfTGlzdCogZXdrX3ZpZXdfYmFja19mb3J3YXJkX2xp
c3RfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQpAQCAtMTMzOCw5ICsxMzQ4LDkgQEAg
RWluYV9Cb29sIGV3a192aWV3X2h0bWxfc3RyaW5nX2xvYWQoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGNvbnN0IGNoYXIqIGh0bWwsIGNvbnMKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwoaHRtbCwgZmFsc2UpOwogCiAgICAgaWYgKHVucmVhY2hhYmxlVXJsICYmICp1bnJlYWNoYWJs
ZVVybCkKLSAgICAgICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5sb2FkQWx0ZXJuYXRlSFRN
TFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KGh0bWwpLCBiYXNlVXJsID8gU3RyaW5nOjpmcm9tVVRG
OChiYXNlVXJsKSA6ICIiLCBTdHJpbmc6OmZyb21VVEY4KHVucmVhY2hhYmxlVXJsKSk7CisgICAg
ICAgIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+bG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcoU3RyaW5n
Ojpmcm9tVVRGOChodG1sKSwgYmFzZVVybCA/IFN0cmluZzo6ZnJvbVVURjgoYmFzZVVybCkgOiAi
IiwgU3RyaW5nOjpmcm9tVVRGOCh1bnJlYWNoYWJsZVVybCkpOwogICAgIGVsc2UKLSAgICAgICAg
cHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5sb2FkSFRNTFN0cmluZyhTdHJpbmc6OmZyb21VVEY4
KGh0bWwpLCBiYXNlVXJsID8gU3RyaW5nOjpmcm9tVVRGOChiYXNlVXJsKSA6ICIiKTsKKyAgICAg
ICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5sb2FkSFRNTFN0cmluZyhTdHJpbmc6OmZyb21VVEY4
KGh0bWwpLCBiYXNlVXJsID8gU3RyaW5nOjpmcm9tVVRGOChiYXNlVXJsKSA6ICIiKTsKICAgICBl
d2tfdmlld191cmlfdXBkYXRlKGV3a1ZpZXcpOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzY0
LDcgKzEzNzQsNyBAQCBXZWJQYWdlUHJveHkqIGV3a192aWV3X3BhZ2VfZ2V0KGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywg
c21hcnREYXRhLCAwKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRh
LCBwcml2LCAwKTsKIAotICAgIHJldHVybiBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCk7CisgICAg
cmV0dXJuIHByaXYtPnBhZ2VQcm94eS5nZXQoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX3ZpZXdf
c2V0dGluZ19lbmNvZGluZ19jdXN0b21fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQpA
QCAtMTM3Miw3ICsxMzgyLDcgQEAgY29uc3QgY2hhciogZXdrX3ZpZXdfc2V0dGluZ19lbmNvZGlu
Z19jdXN0b21fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKICAgICBFV0tfVklFV19QUklW
X0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKIAotICAgIFN0cmluZyBjdXN0b21F
bmNvZGluZyA9IHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+Y3VzdG9tVGV4dEVuY29kaW5nTmFt
ZSgpOworICAgIFN0cmluZyBjdXN0b21FbmNvZGluZyA9IHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+
Y3VzdG9tVGV4dEVuY29kaW5nTmFtZSgpOwogICAgIGlmIChjdXN0b21FbmNvZGluZy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xMzg3LDcgKzEzOTcsNyBAQCBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfc2V0dGluZ19lbmNvZGluZ19jdXN0b21fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBjb25zdCBjaGFyKgogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYsIGZhbHNlKTsKIAogICAgIHByaXYtPmN1c3RvbUVuY29kaW5nID0gZW5jb2Rpbmc7Ci0g
ICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5zZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGVu
Y29kaW5nID8gZW5jb2RpbmcgOiBTdHJpbmcoKSk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgp
LT5zZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGVuY29kaW5nID8gZW5jb2RpbmcgOiBTdHJpbmco
KSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE0MjUsNyArMTQzNSw3IEBAIEVpbmFfQm9v
bCBld2tfdmlld190ZXh0X2ZpbmQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIHRl
eHQsIEV3a19GaW5kX09wCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHRleHQs
IGZhbHNlKTsKIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBmaW5kVGV4dChBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyh0ZXh0KSk7Ci0gICAgV0tQYWdlRmluZFN0
cmluZyh0b0FQSShwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBmaW5kVGV4dC5nZXQoKSwgc3Rh
dGljX2Nhc3Q8V0tGaW5kT3B0aW9ucz4ob3B0aW9ucyksIG1heE1hdGNoQ291bnQpOworICAgIFdL
UGFnZUZpbmRTdHJpbmcodG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpKSwgZmluZFRleHQuZ2V0
KCksIHN0YXRpY19jYXN0PFdLRmluZE9wdGlvbnM+KG9wdGlvbnMpLCBtYXhNYXRjaENvdW50KTsK
IAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTQzNSw3ICsxNDQ1LDcgQEAgRWluYV9Cb29sIGV3
a192aWV3X3RleHRfZmluZF9oaWdobGlnaHRfY2xlYXIoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAg
ICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsK
ICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7
CiAKLSAgICBXS1BhZ2VIaWRlRmluZFVJKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSkp
OworICAgIFdLUGFnZUhpZGVGaW5kVUkodG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpKSk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160398</attachid>
            <date>2012-08-24 05:06:14 -0700</date>
            <delta_ts>2012-08-25 06:24:26 -0700</delta_ts>
            <desc>patch</desc>
            <filename>page_client_impl_patch_2.txt</filename>
            <type>text/plain</type>
            <size>20415</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjOTU1ZjZjLi5hODY3M2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcg
QEAKKzIwMTItMDgtMjQgIEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gRml4IFBhZ2VDbGllbnRJbXBsIGxheWVyIHZpb2xhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ5MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHaXZlbiBXSzIgaGll
cmFyY2h5LCBjdXJyZW50IFBhZ2VDbGllbnRJbXBsIGhhcyB2aW9sYXRlZCBBUEkgbGF5ZXIgYnkg
aGF2aW5nIFdlYlBhZ2VQcm94eS4KKyAgICAgICAgU3Vic2VxdWVudGx5LCBpdCBoYXMgYmVlbiBn
aXZlbiBXZWJDb250ZXh0LCBzdGF0aWMgc2luZ2xldG9uIG9iamVjdCwgaW4gaXRzIGFyZ3VtZW50
IHVubmVjZXNzYXJpbHkuCisgICAgICAgIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBmaXhlZCBhZGRy
ZXNzZWQgaXNzdWVzIGFuZCBsZXQgdmlldyBoYXMgV2ViUGFnZVByb3h5IGFzIG90aGVyIHBvcnRz
LCBpLmUuIG1hYyBhbmQgZ3RrKywgZG9lcyBjdXJyZW50bHkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Q
YWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
KToKKyAgICAgICAgKFBhZ2VDbGllbnRJbXBsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAg
ICAgKF9ld2tfdmlld19zbWFydF9mb2N1c19pbik6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRf
Zm9jdXNfb3V0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9tb3VzZV93aGVlbCk6CisgICAg
ICAgIChfZXdrX3ZpZXdfc21hcnRfbW91c2VfZG93bik6CisgICAgICAgIChfZXdrX3ZpZXdfc21h
cnRfbW91c2VfdXApOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdXNlX21vdmUpOgorICAg
ICAgICAoX2V3a192aWV3X3NtYXJ0X2tleV9kb3duKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFy
dF9rZXlfdXApOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZSk6CisgICAgICAg
IChfZXdrX3ZpZXdfc21hcnRfY29sb3Jfc2V0KToKKyAgICAgICAgKF9ld2tfdmlld19pbml0aWFs
aXplKToKKyAgICAgICAgKGV3a192aWV3X3VyaV91cGRhdGUpOgorICAgICAgICAoZXdrX3ZpZXdf
dXJpX3NldCk6CisgICAgICAgIChld2tfdmlld19yZWxvYWQpOgorICAgICAgICAoZXdrX3ZpZXdf
cmVsb2FkX2J5cGFzc19jYWNoZSk6CisgICAgICAgIChld2tfdmlld19zdG9wKToKKyAgICAgICAg
KGV3a192aWV3X3RpdGxlX2dldCk6CisgICAgICAgIChld2tfdmlld19sb2FkX3Byb2dyZXNzX2dl
dCk6CisgICAgICAgIChld2tfdmlld19zY2FsZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2Nh
bGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X2RldmljZV9waXhlbF9yYXRpb19zZXQpOgorICAg
ICAgICAoZXdrX3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX2dldCk6CisgICAgICAgIChld2tfdmll
d190aGVtZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfYmFjayk6CisgICAgICAgIChld2tfdmll
d19mb3J3YXJkKToKKyAgICAgICAgKGV3a192aWV3X2ludGVudF9kZWxpdmVyKToKKyAgICAgICAg
KGV3a192aWV3X2JhY2tfcG9zc2libGUpOgorICAgICAgICAoZXdrX3ZpZXdfZm9yd2FyZF9wb3Nz
aWJsZSk6CisgICAgICAgIChld2tfdmlld19odG1sX3N0cmluZ19sb2FkKToKKyAgICAgICAgKGV3
a192aWV3X3BhZ2VfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfZW5jb2RpbmdfY3Vz
dG9tX2dldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9zZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfdGV4dF9maW5kKToKKyAgICAgICAgKGV3a192aWV3X3RleHRf
ZmluZF9oaWdobGlnaHRfY2xlYXIpOgorCiAyMDEyLTA4LTI0ICBNaWNoYWVsIEJyw7xuaW5nICA8
bWljaGFlbGJydWVuaW5nQGdtYWlsLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gTWFrZSB2aWV3
cG9ydCByZWxhdGVkIGV4cGVyaW1lbnRhbC50ZXN0IHByb3BlcnRpZXMgZW5jYXBzdWxhdGVkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudElt
cGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwu
Y3BwCmluZGV4IDcyNmNhYWEuLjY5OTM2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTQ0LDE4ICs0NCw5IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFnZUNsaWVu
dEltcGw6OlBhZ2VDbGllbnRJbXBsKFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCog
cGFnZUdyb3VwLCBFdmFzX09iamVjdCogdmlld1dpZGdldCkKK1BhZ2VDbGllbnRJbXBsOjpQYWdl
Q2xpZW50SW1wbChFdmFzX09iamVjdCogdmlld1dpZGdldCkKICAgICA6IG1fdmlld1dpZGdldCh2
aWV3V2lkZ2V0KQogewotICAgIG1fcGFnZSA9IGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UodGhpcywg
cGFnZUdyb3VwKTsKLQotI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKLSAgICBtX3BhZ2Ut
PnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCh0cnVlKTsKLSAgICBtX3BhZ2UtPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRG
b3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKLSAgICBtX3BhZ2UtPnNldFVzZUZpeGVkTGF5b3V0
KHRydWUpOwotI2VuZGlmCi0KLSAgICBtX3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7CiB9CiAK
IFBhZ2VDbGllbnRJbXBsOjp+UGFnZUNsaWVudEltcGwoKQpAQCAtNjUsNyArNTYsNyBAQCBQYWdl
Q2xpZW50SW1wbDo6flBhZ2VDbGllbnRJbXBsKCkKIC8vIFBhZ2VDbGllbnQKIFBhc3NPd25QdHI8
RHJhd2luZ0FyZWFQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHko
KQogewotICAgIHJldHVybiBEcmF3aW5nQXJlYVByb3h5SW1wbDo6Y3JlYXRlKG1fcGFnZS5nZXQo
KSk7CisgICAgcmV0dXJuIERyYXdpbmdBcmVhUHJveHlJbXBsOjpjcmVhdGUoZXdrX3ZpZXdfcGFn
ZV9nZXQobV92aWV3V2lkZ2V0KSk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdO
ZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDg2MTg1MDIu
LjRiNDFiMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1Bh
Z2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFn
ZUNsaWVudEltcGwuaApAQCAtMzMsMTggKzMzLDE3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBQYWdlQ2xpZW50SW1wbCA6IHB1YmxpYyBQYWdlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxQYWdlQ2xpZW50SW1wbD4gY3JlYXRlKFdlYkNvbnRleHQqIGNvbnRl
eHQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCBFdmFzX09iamVjdCogdmlld1dpZGdldCkKKyAg
ICBzdGF0aWMgUGFzc093blB0cjxQYWdlQ2xpZW50SW1wbD4gY3JlYXRlKEV2YXNfT2JqZWN0KiB2
aWV3V2lkZ2V0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ2xpZW50
SW1wbChjb250ZXh0LCBwYWdlR3JvdXAsIHZpZXdXaWRnZXQpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBQYWdlQ2xpZW50SW1wbCh2aWV3V2lkZ2V0KSk7CiAgICAgfQogICAgIH5QYWdl
Q2xpZW50SW1wbCgpOwogCiAgICAgRXZhc19PYmplY3QqIHZpZXdXaWRnZXQoKSBjb25zdCB7IHJl
dHVybiBtX3ZpZXdXaWRnZXQ7IH0KIAotICAgIFdlYlBhZ2VQcm94eSogcGFnZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcGFnZS5nZXQoKTsgfQogCiBwcml2YXRlOgotICAgIFBhZ2VDbGllbnRJbXBsKFdl
YkNvbnRleHQqLCBXZWJQYWdlR3JvdXAqLCBFdmFzX09iamVjdCopOworICAgIFBhZ2VDbGllbnRJ
bXBsKEV2YXNfT2JqZWN0Kik7CiAKICAgICAvLyBQYWdlQ2xpZW50CiAgICAgdmlydHVhbCBQYXNz
T3duUHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKTsKQEAgLTEx
NSw3ICsxMTQsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50
c1NpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogCiBwcml2YXRlOgotICAgIFJlZlB0cjxX
ZWJQYWdlUHJveHk+IG1fcGFnZTsKICAgICBFdmFzX09iamVjdCogbV92aWV3V2lkZ2V0OwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4
IGExZTY2ODMuLmFmMzBiYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJXS1JldGFpblB0ci5o
IgogI2luY2x1ZGUgIldLU3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKKyNpbmNsdWRlICJX
ZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUuaCIK
ICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUu
aCIKQEAgLTczLDYgKzc0LDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogI2lm
IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBPd25QdHI8RWZsVmlld3BvcnRIYW5kbGVy
PiB2aWV3cG9ydEhhbmRsZXI7CiAjZW5kaWYKKyAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBwYWdl
UHJveHk7CiAKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJpOwogICAgIFdLRWluYVNoYXJlZFN0
cmluZyB0aXRsZTsKQEAgLTE4Niw3ICsxODgsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmll
d19zbWFydF9mb2N1c19pbihFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiB7CiAgICAg
RVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpCiAKLSAg
ICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJv
eHk6OlZpZXdJc0ZvY3VzZWQgfCBXZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7Cisg
ICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5
OjpWaWV3SXNGb2N1c2VkIHwgV2ViUGFnZVByb3h5OjpWaWV3V2luZG93SXNBY3RpdmUpOwogICAg
IHJldHVybiB0cnVlOwogfQogCkBAIC0xOTQsNyArMTk2LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBf
ZXdrX3ZpZXdfc21hcnRfZm9jdXNfb3V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkK
IHsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxz
ZSkKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdl
YlBhZ2VQcm94eTo6Vmlld0lzRm9jdXNlZCB8IFdlYlBhZ2VQcm94eTo6Vmlld1dpbmRvd0lzQWN0
aXZlKTsKKyAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQ
YWdlUHJveHk6OlZpZXdJc0ZvY3VzZWQgfCBXZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2
ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIwMyw3ICsyMDUsNyBAQCBzdGF0aWMgRWlu
YV9Cb29sIF9ld2tfdmlld19zbWFydF9tb3VzZV93aGVlbChFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEsIGNvbgogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYsIGZhbHNlKQogCiAgICAgRXZhc19Qb2ludCBwb3NpdGlvbiA9IHtzbWFydERhdGEtPnZp
ZXcueCwgc21hcnREYXRhLT52aWV3Lnl9OwotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+
aGFuZGxlV2hlZWxFdmVudChOYXRpdmVXZWJXaGVlbEV2ZW50KHdoZWVsRXZlbnQsICZwb3NpdGlv
bikpOworICAgIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+aGFuZGxlV2hlZWxFdmVudChOYXRpdmVX
ZWJXaGVlbEV2ZW50KHdoZWVsRXZlbnQsICZwb3NpdGlvbikpOwogICAgIHJldHVybiB0cnVlOwog
fQogCkBAIC0yMTIsNyArMjE0LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRf
bW91c2VfZG93bihFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNvbnMKICAgICBFV0tf
VklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSkKIAogICAgIEV2
YXNfUG9pbnQgcG9zaXRpb24gPSB7c21hcnREYXRhLT52aWV3LngsIHNtYXJ0RGF0YS0+dmlldy55
fTsKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZl
V2ViTW91c2VFdmVudChkb3duRXZlbnQsICZwb3NpdGlvbikpOworICAgIHByaXYtPnBhZ2VQcm94
eS5nZXQoKS0+aGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KGRvd25FdmVudCwg
JnBvc2l0aW9uKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIyMSw3ICsyMjMsNyBAQCBz
dGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9tb3VzZV91cChFd2tfVmlld19TbWFydF9E
YXRhKiBzbWFydERhdGEsIGNvbnN0CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNt
YXJ0RGF0YSwgcHJpdiwgZmFsc2UpCiAKICAgICBFdmFzX1BvaW50IHBvc2l0aW9uID0ge3NtYXJ0
RGF0YS0+dmlldy54LCBzbWFydERhdGEtPnZpZXcueX07Ci0gICAgcHJpdi0+cGFnZUNsaWVudC0+
cGFnZSgpLT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQodXBFdmVudCwgJnBv
c2l0aW9uKSk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5oYW5kbGVNb3VzZUV2ZW50KE5h
dGl2ZVdlYk1vdXNlRXZlbnQodXBFdmVudCwgJnBvc2l0aW9uKSk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTIzMCw3ICsyMzIsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFy
dF9tb3VzZV9tb3ZlKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29ucwogICAgIEVX
S19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKQogCiAgICAg
RXZhc19Qb2ludCBwb3NpdGlvbiA9IHtzbWFydERhdGEtPnZpZXcueCwgc21hcnREYXRhLT52aWV3
Lnl9OwotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+aGFuZGxlTW91c2VFdmVudChOYXRp
dmVXZWJNb3VzZUV2ZW50KG1vdmVFdmVudCwgJnBvc2l0aW9uKSk7CisgICAgcHJpdi0+cGFnZVBy
b3h5LmdldCgpLT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQobW92ZUV2ZW50
LCAmcG9zaXRpb24pKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjM4LDcgKzI0MCw3IEBA
IHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2tleV9kb3duKEV3a19WaWV3X1NtYXJ0
X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QKIHsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRV
Uk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSkKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2Uo
KS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGRvd25FdmVudCkp
OworICAgIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KGRvd25FdmVudCkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0y
NDYsNyArMjQ4LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfa2V5X3VwKEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXYKIHsKICAgICBFV0tfVklFV19Q
UklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSkKIAotICAgIHByaXYtPnBh
Z2VDbGllbnQtPnBhZ2UoKS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2
ZW50KHVwRXZlbnQpKTsKKyAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPmhhbmRsZUtleWJvYXJk
RXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh1cEV2ZW50KSk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTUzNCw4ICs1MzYsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfY2Fs
Y3VsYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgICAgICBwcml2LT52aWV3cG9ydEhhbmRs
ZXItPnVwZGF0ZVZpZXdwb3J0U2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKICNlbmRpZgog
Ci0gICAgICAgIGlmIChwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCkpCi0g
ICAgICAgICAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPnNldFNp
emUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSwgSW50U2l6ZSgpKTsKKyAgICAgICAgaWYgKHByaXYt
PnBhZ2VQcm94eS5nZXQoKS0+ZHJhd2luZ0FyZWEoKSkKKyAgICAgICAgICAgIHByaXYtPnBhZ2VQ
cm94eS5nZXQoKS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQp
LCBJbnRTaXplKCkpOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAg
ICBpZiAoIXByaXYtPmV2YXNHbFN1cmZhY2UpCkBAIC01OTcsOCArNTk5LDggQEAgc3RhdGljIHZv
aWQgX2V3a192aWV3X3NtYXJ0X2NvbG9yX3NldChFdmFzX09iamVjdCogZXdrVmlldywgaW50IHJl
ZCwgaW50IGdyZWVuLAogI3VuZGVmIENIRUNLX0NPTE9SCiAKICAgICBldmFzX29iamVjdF9pbWFn
ZV9hbHBoYV9zZXQoc21hcnREYXRhLT5pbWFnZSwgYWxwaGEgPCAyNTUpOwotICAgIHByaXYtPnBh
Z2VDbGllbnQtPnBhZ2UoKS0+c2V0RHJhd3NCYWNrZ3JvdW5kKHJlZCB8fCBncmVlbiB8fCBibHVl
KTsKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnNldERyYXdzVHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKGFscGhhIDwgMjU1KTsKKyAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPnNldERyYXdz
QmFja2dyb3VuZChyZWQgfHwgZ3JlZW4gfHwgYmx1ZSk7CisgICAgcHJpdi0+cGFnZVByb3h5Lmdl
dCgpLT5zZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChhbHBoYSA8IDI1NSk7CiAKICAgICBn
X3BhcmVudFNtYXJ0Q2xhc3MuY29sb3Jfc2V0KGV3a1ZpZXcsIHJlZCwgZ3JlZW4sIGJsdWUsIGFs
cGhhKTsKIH0KQEAgLTY2NCwxNSArNjY2LDIzIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0
aWFsaXplKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFd2tfQ29udGV4dCogY29udGV4dCwgV0tQCiAg
ICAgaWYgKHByaXYtPnBhZ2VDbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHByaXYtPnBh
Z2VDbGllbnQgPSBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlKHRvSW1wbChld2tfY29udGV4dF9XS0Nv
bnRleHRfZ2V0KGNvbnRleHQpKSwgdG9JbXBsKHBhZ2VHcm91cFJlZiksIGV3a1ZpZXcpOworICAg
IHByaXYtPnBhZ2VDbGllbnQgPSBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlKGV3a1ZpZXcpOworICAg
IHByaXYtPnBhZ2VQcm94eSA9IHRvSW1wbChld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnRl
eHQpKS0+Y3JlYXRlV2ViUGFnZShwcml2LT5wYWdlQ2xpZW50LmdldCgpLCB0b0ltcGwocGFnZUdy
b3VwUmVmKSk7CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorICAgIHByaXYtPnBhZ2VQ
cm94eS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdFbmFibGVkKHRydWUpOworICAgIHByaXYtPnBhZ2VQcm94eS0+cGFnZUdyb3VwKCktPnByZWZl
cmVuY2VzKCktPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIHByaXYtPnBhZ2VQ
cm94eS0+c2V0VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CisjZW5kaWYKKyAgICBwcml2LT5wYWdlUHJv
eHktPmluaXRpYWxpemVXZWJQYWdlKCk7CisKICAgICBmcHJpbnRmKHN0ZGVyciwgIltfZXdrX3Zp
ZXdfaW5pdGlhbGl6ZV0gcmVmIGNvdW50WyVkXVxuIiwgV0tSZWZDb3VudCh0b0ltcGwoZXdrX2Nv
bnRleHRfV0tDb250ZXh0X2dldChjb250ZXh0KSkpKTsKLSAgICBwcml2LT5iYWNrRm9yd2FyZExp
c3QgPSBld2tfYmFja19mb3J3YXJkX2xpc3RfbmV3KHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBh
Z2UoKS0+YmFja0ZvcndhcmRMaXN0KCkpKTsKKyAgICBwcml2LT5iYWNrRm9yd2FyZExpc3QgPSBl
d2tfYmFja19mb3J3YXJkX2xpc3RfbmV3KHRvQVBJKHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+YmFj
a0ZvcndhcmRMaXN0KCkpKTsKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBw
cml2LT52aWV3cG9ydEhhbmRsZXIgPSBFZmxWaWV3cG9ydEhhbmRsZXI6OmNyZWF0ZShwcml2LT5w
YWdlQ2xpZW50LmdldCgpKTsKICNlbmRpZgogCi0gICAgV0tQYWdlUmVmIHdrUGFnZSA9IHRvQVBJ
KHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSk7CisgICAgV0tQYWdlUmVmIHdrUGFnZSA9IHRvQVBJ
KHByaXYtPnBhZ2VQcm94eS5nZXQoKSk7CiAgICAgZXdrX3ZpZXdfZmluZF9jbGllbnRfYXR0YWNo
KHdrUGFnZSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfZm9ybV9jbGllbnRfYXR0YWNoKHdrUGFn
ZSwgZXdrVmlldyk7CiAgICAgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2god2tQYWdlLCBl
d2tWaWV3KTsKQEAgLTc2MCw3ICs3NzAsNyBAQCB2b2lkIGV3a192aWV3X3VyaV91cGRhdGUoRXZh
c19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3
LCBzbWFydERhdGEpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYpOwogCi0gICAgU3RyaW5nIGFjdGl2ZVVSTCA9IHByaXYtPnBhZ2VDbGllbnQtPnBhZ2Uo
KS0+YWN0aXZlVVJMKCk7CisgICAgU3RyaW5nIGFjdGl2ZVVSTCA9IHByaXYtPnBhZ2VQcm94eS5n
ZXQoKS0+YWN0aXZlVVJMKCk7CiAgICAgaWYgKGFjdGl2ZVVSTC5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNzc4LDcgKzc4OCw3IEBAIEVpbmFfQm9vbCBld2tfdmlld191cmlfc2V0
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiB1cmkpCiAgICAgRVdLX1ZJRVdfUFJJ
Vl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTCh1cmksIGZhbHNlKTsKIAotICAgIHByaXYtPnBhZ2VDbGllbnQt
PnBhZ2UoKS0+bG9hZFVSTCh1cmkpOworICAgIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+bG9hZFVS
TCh1cmkpOwogICAgIGV3a192aWV3X3VyaV91cGRhdGUoZXdrVmlldyk7CiAKICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTc5Nyw3ICs4MDcsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2FkKEV2YXNf
T2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywg
c21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0
RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5yZWxv
YWQoLypyZWxvYWRGcm9tT3JpZ2luKi8gZmFsc2UpOworICAgIHByaXYtPnBhZ2VQcm94eS5nZXQo
KS0+cmVsb2FkKC8qcmVsb2FkRnJvbU9yaWdpbiovIGZhbHNlKTsKICAgICBld2tfdmlld191cmlf
dXBkYXRlKGV3a1ZpZXcpOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC04MDgsNyArODE4LDcgQEAg
RWluYV9Cb29sIGV3a192aWV3X3JlbG9hZF9ieXBhc3NfY2FjaGUoRXZhc19PYmplY3QqIGV3a1Zp
ZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZh
bHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBm
YWxzZSk7CiAKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnJlbG9hZCgvKnJlbG9hZEZy
b21PcmlnaW4qLyB0cnVlKTsKKyAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPnJlbG9hZCgvKnJl
bG9hZEZyb21PcmlnaW4qLyB0cnVlKTsKICAgICBld2tfdmlld191cmlfdXBkYXRlKGV3a1ZpZXcp
OwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC04MTksNyArODI5LDcgQEAgRWluYV9Cb29sIGV3a192
aWV3X3N0b3AoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JF
VFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICBwcml2LT5wYWdlQ2xpZW50
LT5wYWdlKCktPnN0b3BMb2FkaW5nKCk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5zdG9w
TG9hZGluZygpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC05MjcsNyArOTM3LDcgQEAgY29u
c3QgY2hhciogZXdrX3ZpZXdfdGl0bGVfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQog
ICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKICAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKIAotICAg
IENTdHJpbmcgdGl0bGUgPSBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnBhZ2VUaXRsZSgpLnV0
ZjgoKTsKKyAgICBDU3RyaW5nIHRpdGxlID0gcHJpdi0+cGFnZVByb3h5LmdldCgpLT5wYWdlVGl0
bGUoKS51dGY4KCk7CiAgICAgcHJpdi0+dGl0bGUgPSB0aXRsZS5kYXRhKCk7CiAKICAgICByZXR1
cm4gcHJpdi0+dGl0bGU7CkBAIC05NjAsNyArOTcwLDcgQEAgZG91YmxlIGV3a192aWV3X2xvYWRf
cHJvZ3Jlc3NfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAtMS4wKTsKICAgICBFV0tfVklFV19Q
UklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAtMS4wKTsKIAotICAgIHJldHVybiBw
cml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmVzdGltYXRlZFByb2dyZXNzKCk7CisgICAgcmV0dXJu
IHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+ZXN0aW1hdGVkUHJvZ3Jlc3MoKTsKIH0KIAogRWluYV9C
b29sIGV3a192aWV3X3NjYWxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgZG91YmxlIHNjYWxl
RmFjdG9yLCBpbnQgeCwgaW50IHkpCkBAIC05NjgsNyArOTc4LDcgQEAgRWluYV9Cb29sIGV3a192
aWV3X3NjYWxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgZG91YmxlIHNjYWxlRmFjdG9yLCBp
bnQgeCwgaW4KICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0
YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHBy
aXYsIGZhbHNlKTsKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+c2NhbGVQYWdlKHNj
YWxlRmFjdG9yLCBJbnRQb2ludCh4LCB5KSk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5z
Y2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIEludFBvaW50KHgsIHkpKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApAQCAtOTc3LDcgKzk4Nyw3IEBAIGRvdWJsZSBld2tfdmlld19zY2FsZV9nZXQoY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEsIC0xKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21h
cnREYXRhLCBwcml2LCAtMSk7CiAKLSAgICByZXR1cm4gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgp
LT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gcHJpdi0+cGFnZVByb3h5LmdldCgpLT5w
YWdlU2NhbGVGYWN0b3IoKTsKIH0KIAogRWluYV9Cb29sIGV3a192aWV3X2RldmljZV9waXhlbF9y
YXRpb19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGZsb2F0IHJhdGlvKQpAQCAtOTg1LDcgKzk5
NSw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19kZXZpY2VfcGl4ZWxfcmF0aW9fc2V0KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBmbG9hdCByYXRpbykKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJO
KGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JF
VFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBh
Z2UoKS0+c2V0Q3VzdG9tRGV2aWNlU2NhbGVGYWN0b3IocmF0aW8pOworICAgIHByaXYtPnBhZ2VQ
cm94eS5nZXQoKS0+c2V0Q3VzdG9tRGV2aWNlU2NhbGVGYWN0b3IocmF0aW8pOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CkBAIC05OTUsNyArMTAwNSw3IEBAIGZsb2F0IGV3a192aWV3X2RldmljZV9w
aXhlbF9yYXRpb19nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIC0xLjApOwogICAgIEVXS19WSUVX
X1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIC0xLjApOwogCi0gICAgcmV0dXJu
IHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1
cm4gcHJpdi0+cGFnZVByb3h5LmdldCgpLT5kZXZpY2VTY2FsZUZhY3RvcigpOwogfQogCiAvKioK
QEAgLTEwMjksNyArMTAzOSw3IEBAIHZvaWQgZXdrX3ZpZXdfdGhlbWVfc2V0KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBjaGFyKiBwYXRoKQogCiAgICAgaWYgKHByaXYtPnRoZW1lICE9IHBh
dGgpIHsKICAgICAgICAgcHJpdi0+dGhlbWUgPSBwYXRoOwotICAgICAgICBwcml2LT5wYWdlQ2xp
ZW50LT5wYWdlKCktPnNldFRoZW1lUGF0aChwYXRoKTsKKyAgICAgICAgcHJpdi0+cGFnZVByb3h5
LmdldCgpLT5zZXRUaGVtZVBhdGgocGF0aCk7CiAgICAgfQogfQogCkBAIC0xMTU5LDcgKzExNjks
NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfYmFjayhFdmFzX09iamVjdCogZXdrVmlldykKICAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAg
IEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAot
ICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKTsKKyAgICBX
ZWJQYWdlUHJveHkqIHBhZ2UgPSBwcml2LT5wYWdlUHJveHkuZ2V0KCk7CiAgICAgaWYgKHBhZ2Ut
PmNhbkdvQmFjaygpKSB7CiAgICAgICAgIHBhZ2UtPmdvQmFjaygpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTExNzMsNyArMTE4Myw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19mb3J3YXJkKEV2
YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmll
dywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNt
YXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gcHJpdi0+
cGFnZUNsaWVudC0+cGFnZSgpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHByaXYtPnBhZ2VQ
cm94eS5nZXQoKTsKICAgICBpZiAocGFnZS0+Y2FuR29Gb3J3YXJkKCkpIHsKICAgICAgICAgcGFn
ZS0+Z29Gb3J3YXJkKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTE4OSw3ICsxMTk5LDcg
QEAgRWluYV9Cb29sIGV3a192aWV3X2ludGVudF9kZWxpdmVyKEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBFd2tfSW50ZW50KiBpbnRlbnQpCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNt
YXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChpbnRlbnQsIGZhbHNlKTsKIAotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHByaXYtPnBhZ2VD
bGllbnQtPnBhZ2UoKTsKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBwcml2LT5wYWdlUHJveHku
Z2V0KCk7CiAgICAgcGFnZS0+ZGVsaXZlckludGVudFRvRnJhbWUocGFnZS0+bWFpbkZyYW1lKCks
IHRvSW1wbChld2tfaW50ZW50X1dLSW50ZW50RGF0YVJlZl9nZXQoaW50ZW50KSkpOwogCiAgICAg
cmV0dXJuIHRydWU7CkBAIC0xMjAzLDcgKzEyMTMsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfYmFj
a19wb3NzaWJsZShFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklFV19TRF9HRVRfT1Jf
UkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VU
X09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAotICAgIHJldHVybiBwcml2LT5w
YWdlQ2xpZW50LT5wYWdlKCktPmNhbkdvQmFjaygpOworICAgIHJldHVybiBwcml2LT5wYWdlUHJv
eHkuZ2V0KCktPmNhbkdvQmFjaygpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfZm9yd2FyZF9w
b3NzaWJsZShFdmFzX09iamVjdCogZXdrVmlldykKQEAgLTEyMTEsNyArMTIyMSw3IEBAIEVpbmFf
Qm9vbCBld2tfdmlld19mb3J3YXJkX3Bvc3NpYmxlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAg
IEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAg
ICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwog
Ci0gICAgcmV0dXJuIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+Y2FuR29Gb3J3YXJkKCk7Cisg
ICAgcmV0dXJuIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+Y2FuR29Gb3J3YXJkKCk7CiB9CiAKIEV3
a19CYWNrX0ZvcndhcmRfTGlzdCogZXdrX3ZpZXdfYmFja19mb3J3YXJkX2xpc3RfZ2V0KGNvbnN0
IEV2YXNfT2JqZWN0KiBld2tWaWV3KQpAQCAtMTMzOCw5ICsxMzQ4LDkgQEAgRWluYV9Cb29sIGV3
a192aWV3X2h0bWxfc3RyaW5nX2xvYWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIq
IGh0bWwsIGNvbnMKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoaHRtbCwgZmFs
c2UpOwogCiAgICAgaWYgKHVucmVhY2hhYmxlVXJsICYmICp1bnJlYWNoYWJsZVVybCkKLSAgICAg
ICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5sb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyhTdHJp
bmc6OmZyb21VVEY4KGh0bWwpLCBiYXNlVXJsID8gU3RyaW5nOjpmcm9tVVRGOChiYXNlVXJsKSA6
ICIiLCBTdHJpbmc6OmZyb21VVEY4KHVucmVhY2hhYmxlVXJsKSk7CisgICAgICAgIHByaXYtPnBh
Z2VQcm94eS5nZXQoKS0+bG9hZEFsdGVybmF0ZUhUTUxTdHJpbmcoU3RyaW5nOjpmcm9tVVRGOCho
dG1sKSwgYmFzZVVybCA/IFN0cmluZzo6ZnJvbVVURjgoYmFzZVVybCkgOiAiIiwgU3RyaW5nOjpm
cm9tVVRGOCh1bnJlYWNoYWJsZVVybCkpOwogICAgIGVsc2UKLSAgICAgICAgcHJpdi0+cGFnZUNs
aWVudC0+cGFnZSgpLT5sb2FkSFRNTFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KGh0bWwpLCBiYXNl
VXJsID8gU3RyaW5nOjpmcm9tVVRGOChiYXNlVXJsKSA6ICIiKTsKKyAgICAgICAgcHJpdi0+cGFn
ZVByb3h5LmdldCgpLT5sb2FkSFRNTFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KGh0bWwpLCBiYXNl
VXJsID8gU3RyaW5nOjpmcm9tVVRGOChiYXNlVXJsKSA6ICIiKTsKICAgICBld2tfdmlld191cmlf
dXBkYXRlKGV3a1ZpZXcpOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzY0LDcgKzEzNzQsNyBA
QCBXZWJQYWdlUHJveHkqIGV3a192aWV3X3BhZ2VfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAw
KTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsK
IAotICAgIHJldHVybiBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCk7CisgICAgcmV0dXJuIHByaXYt
PnBhZ2VQcm94eS5nZXQoKTsKIH0KIAogY29uc3QgY2hhciogZXdrX3ZpZXdfc2V0dGluZ19lbmNv
ZGluZ19jdXN0b21fZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQpAQCAtMTM3Miw3ICsx
MzgyLDcgQEAgY29uc3QgY2hhciogZXdrX3ZpZXdfc2V0dGluZ19lbmNvZGluZ19jdXN0b21fZ2V0
KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRV
Uk4oc21hcnREYXRhLCBwcml2LCAwKTsKIAotICAgIFN0cmluZyBjdXN0b21FbmNvZGluZyA9IHBy
aXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+Y3VzdG9tVGV4dEVuY29kaW5nTmFtZSgpOworICAgIFN0
cmluZyBjdXN0b21FbmNvZGluZyA9IHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+Y3VzdG9tVGV4dEVu
Y29kaW5nTmFtZSgpOwogICAgIGlmIChjdXN0b21FbmNvZGluZy5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiAwOwogCkBAIC0xMzg3LDcgKzEzOTcsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2V0
dGluZ19lbmNvZGluZ19jdXN0b21fc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFy
KgogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNl
KTsKIAogICAgIHByaXYtPmN1c3RvbUVuY29kaW5nID0gZW5jb2Rpbmc7Ci0gICAgcHJpdi0+cGFn
ZUNsaWVudC0+cGFnZSgpLT5zZXRDdXN0b21UZXh0RW5jb2RpbmdOYW1lKGVuY29kaW5nID8gZW5j
b2RpbmcgOiBTdHJpbmcoKSk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5zZXRDdXN0b21U
ZXh0RW5jb2RpbmdOYW1lKGVuY29kaW5nID8gZW5jb2RpbmcgOiBTdHJpbmcoKSk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KQEAgLTE0MjUsNyArMTQzNSw3IEBAIEVpbmFfQm9vbCBld2tfdmlld190
ZXh0X2ZpbmQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIHRleHQsIEV3a19GaW5k
X09wCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHRleHQsIGZhbHNlKTsKIAog
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBmaW5kVGV4dChBZG9wdFdLLCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZyh0ZXh0KSk7Ci0gICAgV0tQYWdlRmluZFN0cmluZyh0b0FQSShw
cml2LT5wYWdlQ2xpZW50LT5wYWdlKCkpLCBmaW5kVGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8V0tG
aW5kT3B0aW9ucz4ob3B0aW9ucyksIG1heE1hdGNoQ291bnQpOworICAgIFdLUGFnZUZpbmRTdHJp
bmcodG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpKSwgZmluZFRleHQuZ2V0KCksIHN0YXRpY19j
YXN0PFdLRmluZE9wdGlvbnM+KG9wdGlvbnMpLCBtYXhNYXRjaENvdW50KTsKIAogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtMTQzNSw3ICsxNDQ1LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3RleHRf
ZmluZF9oaWdobGlnaHRfY2xlYXIoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklF
V19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICBXS1Bh
Z2VIaWRlRmluZFVJKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSkpOworICAgIFdLUGFn
ZUhpZGVGaW5kVUkodG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpKSk7CiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160406</attachid>
            <date>2012-08-24 05:58:33 -0700</date>
            <delta_ts>2012-08-27 22:30:41 -0700</delta_ts>
            <desc>patch</desc>
            <filename>page_client_impl_patch_3.txt</filename>
            <type>text/plain</type>
            <size>20276</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjMzA1NTE2Li5kNTdlZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcg
QEAKKzIwMTItMDgtMjQgIEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gRml4IFBhZ2VDbGllbnRJbXBsIGxheWVyIHZpb2xhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ5MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHaXZlbiBXSzIgaGll
cmFyY2h5LCBjdXJyZW50IFBhZ2VDbGllbnRJbXBsIGhhcyB2aW9sYXRlZCBBUEkgbGF5ZXIgYnkg
aGF2aW5nIFdlYlBhZ2VQcm94eS4KKyAgICAgICAgU3Vic2VxdWVudGx5LCBpdCBoYXMgYmVlbiBn
aXZlbiBXZWJDb250ZXh0LCBzdGF0aWMgc2luZ2xldG9uIG9iamVjdCwgaW4gaXRzIGFyZ3VtZW50
IHVubmVjZXNzYXJpbHkuCisgICAgICAgIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBmaXhlZCBhZGRy
ZXNzZWQgaXNzdWVzIGFuZCBsZXQgdmlldyBoYXMgV2ViUGFnZVByb3h5IGFzIG90aGVyIHBvcnRz
LCBpLmUuIG1hYyBhbmQgZ3RrKywgZG9lcyBjdXJyZW50bHkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9Q
YWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
KToKKyAgICAgICAgKFBhZ2VDbGllbnRJbXBsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAg
ICAgKF9ld2tfdmlld19zbWFydF9mb2N1c19pbik6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRf
Zm9jdXNfb3V0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9tb3VzZV93aGVlbCk6CisgICAg
ICAgIChfZXdrX3ZpZXdfc21hcnRfbW91c2VfZG93bik6CisgICAgICAgIChfZXdrX3ZpZXdfc21h
cnRfbW91c2VfdXApOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdXNlX21vdmUpOgorICAg
ICAgICAoX2V3a192aWV3X3NtYXJ0X2tleV9kb3duKToKKyAgICAgICAgKF9ld2tfdmlld19zbWFy
dF9rZXlfdXApOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZSk6CisgICAgICAg
IChfZXdrX3ZpZXdfc21hcnRfY29sb3Jfc2V0KToKKyAgICAgICAgKF9ld2tfdmlld19pbml0aWFs
aXplKToKKyAgICAgICAgKGV3a192aWV3X3VyaV91cGRhdGUpOgorICAgICAgICAoZXdrX3ZpZXdf
dXJpX3NldCk6CisgICAgICAgIChld2tfdmlld19yZWxvYWQpOgorICAgICAgICAoZXdrX3ZpZXdf
cmVsb2FkX2J5cGFzc19jYWNoZSk6CisgICAgICAgIChld2tfdmlld19zdG9wKToKKyAgICAgICAg
KGV3a192aWV3X3RpdGxlX2dldCk6CisgICAgICAgIChld2tfdmlld19sb2FkX3Byb2dyZXNzX2dl
dCk6CisgICAgICAgIChld2tfdmlld19zY2FsZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfc2Nh
bGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X2RldmljZV9waXhlbF9yYXRpb19zZXQpOgorICAg
ICAgICAoZXdrX3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX2dldCk6CisgICAgICAgIChld2tfdmll
d190aGVtZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfYmFjayk6CisgICAgICAgIChld2tfdmll
d19mb3J3YXJkKToKKyAgICAgICAgKGV3a192aWV3X2ludGVudF9kZWxpdmVyKToKKyAgICAgICAg
KGV3a192aWV3X2JhY2tfcG9zc2libGUpOgorICAgICAgICAoZXdrX3ZpZXdfZm9yd2FyZF9wb3Nz
aWJsZSk6CisgICAgICAgIChld2tfdmlld19odG1sX3N0cmluZ19sb2FkKToKKyAgICAgICAgKGV3
a192aWV3X3BhZ2VfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfZW5jb2RpbmdfY3Vz
dG9tX2dldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9zZXQp
OgorICAgICAgICAoZXdrX3ZpZXdfdGV4dF9maW5kKToKKyAgICAgICAgKGV3a192aWV3X3RleHRf
ZmluZF9oaWdobGlnaHRfY2xlYXIpOgorCiAyMDEyLTA4LTI0ICBNaWtoYWlsIFBvemRueWFrb3Yg
IDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gQmFj
ay1mb3J3YXJkIGxpc3QgQVBJIG5lZWRzIGV4dGVuc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDcyNmNhYWEuLjY5
OTM2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VD
bGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdl
Q2xpZW50SW1wbC5jcHAKQEAgLTQ0LDE4ICs0NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFnZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBs
KFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCBFdmFzX09iamVj
dCogdmlld1dpZGdldCkKK1BhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1wbChFdmFzX09iamVj
dCogdmlld1dpZGdldCkKICAgICA6IG1fdmlld1dpZGdldCh2aWV3V2lkZ2V0KQogewotICAgIG1f
cGFnZSA9IGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UodGhpcywgcGFnZUdyb3VwKTsKLQotI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKLSAgICBtX3BhZ2UtPnBhZ2VHcm91cCgpLT5wcmVmZXJl
bmNlcygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKLSAgICBtX3Bh
Z2UtPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0
cnVlKTsKLSAgICBtX3BhZ2UtPnNldFVzZUZpeGVkTGF5b3V0KHRydWUpOwotI2VuZGlmCi0KLSAg
ICBtX3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7CiB9CiAKIFBhZ2VDbGllbnRJbXBsOjp+UGFn
ZUNsaWVudEltcGwoKQpAQCAtNjUsNyArNTYsNyBAQCBQYWdlQ2xpZW50SW1wbDo6flBhZ2VDbGll
bnRJbXBsKCkKIC8vIFBhZ2VDbGllbnQKIFBhc3NPd25QdHI8RHJhd2luZ0FyZWFQcm94eT4gUGFn
ZUNsaWVudEltcGw6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKQogewotICAgIHJldHVybiBEcmF3
aW5nQXJlYVByb3h5SW1wbDo6Y3JlYXRlKG1fcGFnZS5nZXQoKSk7CisgICAgcmV0dXJuIERyYXdp
bmdBcmVhUHJveHlJbXBsOjpjcmVhdGUoZXdrX3ZpZXdfcGFnZV9nZXQobV92aWV3V2lkZ2V0KSk7
CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDg2MTg1MDIuLjRiNDFiMWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuaApAQCAtMzMs
MTggKzMzLDE3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBQYWdlQ2xpZW50SW1wbCA6
IHB1YmxpYyBQYWdlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYWdl
Q2xpZW50SW1wbD4gY3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFn
ZUdyb3VwLCBFdmFzX09iamVjdCogdmlld1dpZGdldCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxQ
YWdlQ2xpZW50SW1wbD4gY3JlYXRlKEV2YXNfT2JqZWN0KiB2aWV3V2lkZ2V0KQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ2xpZW50SW1wbChjb250ZXh0LCBwYWdlR3Jv
dXAsIHZpZXdXaWRnZXQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ2xpZW50
SW1wbCh2aWV3V2lkZ2V0KSk7CiAgICAgfQogICAgIH5QYWdlQ2xpZW50SW1wbCgpOwogCiAgICAg
RXZhc19PYmplY3QqIHZpZXdXaWRnZXQoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdXaWRnZXQ7IH0K
IAotICAgIFdlYlBhZ2VQcm94eSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsg
fQogCiBwcml2YXRlOgotICAgIFBhZ2VDbGllbnRJbXBsKFdlYkNvbnRleHQqLCBXZWJQYWdlR3Jv
dXAqLCBFdmFzX09iamVjdCopOworICAgIFBhZ2VDbGllbnRJbXBsKEV2YXNfT2JqZWN0Kik7CiAK
ICAgICAvLyBQYWdlQ2xpZW50CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPERyYXdpbmdBcmVhUHJv
eHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKTsKQEAgLTExNSw3ICsxMTQsNiBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYpOwogCiBwcml2YXRlOgotICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsK
ICAgICBFdmFzX09iamVjdCogbV92aWV3V2lkZ2V0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGNlN2Y3YjQuLjg0NTFlM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJXS1JldGFpblB0ci5oIgogI2luY2x1ZGUgIldLU3RyaW5n
LmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfY29udGV4
dC5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUuaCIKQEAgLTczLDYgKzc0LDcgQEAg
c3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQ
SElDUykKICAgICBPd25QdHI8RWZsVmlld3BvcnRIYW5kbGVyPiB2aWV3cG9ydEhhbmRsZXI7CiAj
ZW5kaWYKKyAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBwYWdlUHJveHk7CiAKICAgICBXS0VpbmFT
aGFyZWRTdHJpbmcgdXJpOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyB0aXRsZTsKQEAgLTE4Niw3
ICsxODgsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9mb2N1c19pbihFd2tf
Vmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiB7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1Jf
UkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpCiAKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5w
YWdlKCktPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0ZvY3VzZWQgfCBX
ZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7CisgICAgcHJpdi0+cGFnZVByb3h5Lmdl
dCgpLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3SXNGb2N1c2VkIHwgV2Vi
UGFnZVByb3h5OjpWaWV3V2luZG93SXNBY3RpdmUpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBA
IC0xOTQsNyArMTk2LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfZm9jdXNf
b3V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKICAgICBFV0tfVklFV19QUklW
X0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSkKIAotICAgIHByaXYtPnBhZ2VD
bGllbnQtPnBhZ2UoKS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzRm9j
dXNlZCB8IFdlYlBhZ2VQcm94eTo6Vmlld1dpbmRvd0lzQWN0aXZlKTsKKyAgICBwcml2LT5wYWdl
UHJveHkuZ2V0KCktPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0ZvY3Vz
ZWQgfCBXZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTIwMyw3ICsyMDUsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFy
dF9tb3VzZV93aGVlbChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNvbgogICAgIEVX
S19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKQogCiAgICAg
RXZhc19Qb2ludCBwb3NpdGlvbiA9IHtzbWFydERhdGEtPnZpZXcueCwgc21hcnREYXRhLT52aWV3
Lnl9OwotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+aGFuZGxlV2hlZWxFdmVudChOYXRp
dmVXZWJXaGVlbEV2ZW50KHdoZWVsRXZlbnQsICZwb3NpdGlvbikpOworICAgIHByaXYtPnBhZ2VQ
cm94eS5nZXQoKS0+aGFuZGxlV2hlZWxFdmVudChOYXRpdmVXZWJXaGVlbEV2ZW50KHdoZWVsRXZl
bnQsICZwb3NpdGlvbikpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yMTIsNyArMjE0LDcg
QEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfbW91c2VfZG93bihFd2tfVmlld19T
bWFydF9EYXRhKiBzbWFydERhdGEsIGNvbnMKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRV
Uk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSkKIAogICAgIEV2YXNfUG9pbnQgcG9zaXRpb24gPSB7
c21hcnREYXRhLT52aWV3LngsIHNtYXJ0RGF0YS0+dmlldy55fTsKLSAgICBwcml2LT5wYWdlQ2xp
ZW50LT5wYWdlKCktPmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudChkb3duRXZl
bnQsICZwb3NpdGlvbikpOworICAgIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+aGFuZGxlTW91c2VF
dmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KGRvd25FdmVudCwgJnBvc2l0aW9uKSk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKQEAgLTIyMSw3ICsyMjMsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tf
dmlld19zbWFydF9tb3VzZV91cChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNvbnN0
CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2Up
CiAKICAgICBFdmFzX1BvaW50IHBvc2l0aW9uID0ge3NtYXJ0RGF0YS0+dmlldy54LCBzbWFydERh
dGEtPnZpZXcueX07Ci0gICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5oYW5kbGVNb3VzZUV2
ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQodXBFdmVudCwgJnBvc2l0aW9uKSk7CisgICAgcHJpdi0+
cGFnZVByb3h5LmdldCgpLT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQodXBF
dmVudCwgJnBvc2l0aW9uKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTIzMCw3ICsyMzIs
NyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9tb3VzZV9tb3ZlKEV3a19WaWV3
X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29ucwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JF
VFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKQogCiAgICAgRXZhc19Qb2ludCBwb3NpdGlvbiA9
IHtzbWFydERhdGEtPnZpZXcueCwgc21hcnREYXRhLT52aWV3Lnl9OwotICAgIHByaXYtPnBhZ2VD
bGllbnQtPnBhZ2UoKS0+aGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KG1vdmVF
dmVudCwgJnBvc2l0aW9uKSk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5oYW5kbGVNb3Vz
ZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQobW92ZUV2ZW50LCAmcG9zaXRpb24pKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjM4LDcgKzI0MCw3IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3
a192aWV3X3NtYXJ0X2tleV9kb3duKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29u
c3QKIHsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBm
YWxzZSkKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+aGFuZGxlS2V5Ym9hcmRFdmVu
dChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGRvd25FdmVudCkpOworICAgIHByaXYtPnBhZ2VQcm94
eS5nZXQoKS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGRvd25F
dmVudCkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yNDYsNyArMjQ4LDcgQEAgc3RhdGlj
IEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfa2V5X3VwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSwgY29uc3QgRXYKIHsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21h
cnREYXRhLCBwcml2LCBmYWxzZSkKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+aGFu
ZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHVwRXZlbnQpKTsKKyAgICBw
cml2LT5wYWdlUHJveHkuZ2V0KCktPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudCh1cEV2ZW50KSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTUzNCw4ICs1MzYs
OCBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfY2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQogICAgICAgICBwcml2LT52aWV3cG9ydEhhbmRsZXItPnVwZGF0ZVZpZXdwb3J0U2l6
ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKICNlbmRpZgogCi0gICAgICAgIGlmIChwcml2LT5w
YWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgICAgICBwcml2LT5wYWdl
Q2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPnNldFNpemUoSW50U2l6ZSh3aWR0aCwgaGVp
Z2h0KSwgSW50U2l6ZSgpKTsKKyAgICAgICAgaWYgKHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+ZHJh
d2luZ0FyZWEoKSkKKyAgICAgICAgICAgIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+ZHJhd2luZ0Fy
ZWEoKS0+c2V0U2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpLCBJbnRTaXplKCkpOwogCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBpZiAoIXByaXYtPmV2YXNHbFN1
cmZhY2UpCkBAIC01OTcsOCArNTk5LDggQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2Nv
bG9yX3NldChFdmFzX09iamVjdCogZXdrVmlldywgaW50IHJlZCwgaW50IGdyZWVuLAogI3VuZGVm
IENIRUNLX0NPTE9SCiAKICAgICBldmFzX29iamVjdF9pbWFnZV9hbHBoYV9zZXQoc21hcnREYXRh
LT5pbWFnZSwgYWxwaGEgPCAyNTUpOwotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+c2V0
RHJhd3NCYWNrZ3JvdW5kKHJlZCB8fCBncmVlbiB8fCBibHVlKTsKLSAgICBwcml2LT5wYWdlQ2xp
ZW50LT5wYWdlKCktPnNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGFscGhhIDwgMjU1KTsK
KyAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPnNldERyYXdzQmFja2dyb3VuZChyZWQgfHwgZ3Jl
ZW4gfHwgYmx1ZSk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5zZXREcmF3c1RyYW5zcGFy
ZW50QmFja2dyb3VuZChhbHBoYSA8IDI1NSk7CiAKICAgICBnX3BhcmVudFNtYXJ0Q2xhc3MuY29s
b3Jfc2V0KGV3a1ZpZXcsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKIH0KQEAgLTY2NCwxNCAr
NjY2LDIzIEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0aWFsaXplKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFd2tfQ29udGV4dCogY29udGV4dCwgV0tQCiAgICAgaWYgKHByaXYtPnBhZ2VDbGll
bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIHByaXYtPnBhZ2VDbGllbnQgPSBQYWdlQ2xpZW50
SW1wbDo6Y3JlYXRlKHRvSW1wbChld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnRleHQpKSwg
dG9JbXBsKHBhZ2VHcm91cFJlZiksIGV3a1ZpZXcpOwotICAgIHByaXYtPmJhY2tGb3J3YXJkTGlz
dCA9IGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uZXcodG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFn
ZSgpLT5iYWNrRm9yd2FyZExpc3QoKSkpOworICAgIHByaXYtPnBhZ2VDbGllbnQgPSBQYWdlQ2xp
ZW50SW1wbDo6Y3JlYXRlKGV3a1ZpZXcpOworCisgICAgcHJpdi0+cGFnZVByb3h5ID0gdG9JbXBs
KGV3a19jb250ZXh0X1dLQ29udGV4dF9nZXQoY29udGV4dCkpLT5jcmVhdGVXZWJQYWdlKHByaXYt
PnBhZ2VDbGllbnQuZ2V0KCksIHRvSW1wbChwYWdlR3JvdXBSZWYpKTsKKyNpZiBVU0UoQ09PUkRJ
TkFURURfR1JBUEhJQ1MpCisgICAgcHJpdi0+cGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVy
ZW5jZXMoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQodHJ1ZSk7CisgICAgcHJp
di0+cGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUodHJ1ZSk7CisgICAgcHJpdi0+cGFnZVByb3h5LT5zZXRVc2VGaXhlZExheW91dCh0
cnVlKTsKKyNlbmRpZgorICAgIHByaXYtPnBhZ2VQcm94eS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsK
KworICAgIHByaXYtPmJhY2tGb3J3YXJkTGlzdCA9IGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uZXco
dG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpLT5iYWNrRm9yd2FyZExpc3QoKSkpOwogCiAjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIHByaXYtPnZpZXdwb3J0SGFuZGxlciA9IEVm
bFZpZXdwb3J0SGFuZGxlcjo6Y3JlYXRlKHByaXYtPnBhZ2VDbGllbnQuZ2V0KCkpOwogI2VuZGlm
CiAKLSAgICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgp
KTsKKyAgICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpKTsK
ICAgICBld2tfdmlld19maW5kX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICAgICBl
d2tfdmlld19mb3JtX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICAgICBld2tfdmll
d19sb2FkZXJfY2xpZW50X2F0dGFjaCh3a1BhZ2UsIGV3a1ZpZXcpOwpAQCAtNzU5LDcgKzc3MCw3
IEBAIHZvaWQgZXdrX3ZpZXdfdXJpX3VwZGF0ZShFdmFzX09iamVjdCogZXdrVmlldykKICAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CiAgICAgRVdLX1ZJ
RVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7CiAKLSAgICBTdHJpbmcgYWN0
aXZlVVJMID0gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5hY3RpdmVVUkwoKTsKKyAgICBTdHJp
bmcgYWN0aXZlVVJMID0gcHJpdi0+cGFnZVByb3h5LmdldCgpLT5hY3RpdmVVUkwoKTsKICAgICBp
ZiAoYWN0aXZlVVJMLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC03NzcsNyArNzg4
LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3VyaV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNv
bnN0IGNoYXIqIHVyaSkKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRh
LCBwcml2LCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHVyaSwg
ZmFsc2UpOwogCi0gICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5sb2FkVVJMKHVyaSk7Cisg
ICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5sb2FkVVJMKHVyaSk7CiAgICAgZXdrX3ZpZXdfdXJp
X3VwZGF0ZShld2tWaWV3KTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtNzk2LDcgKzgwNyw3IEBA
IEVpbmFfQm9vbCBld2tfdmlld19yZWxvYWQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdL
X1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBF
V0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAg
ICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnJlbG9hZCgvKnJlbG9hZEZyb21PcmlnaW4qLyBm
YWxzZSk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5yZWxvYWQoLypyZWxvYWRGcm9tT3Jp
Z2luKi8gZmFsc2UpOwogICAgIGV3a192aWV3X3VyaV91cGRhdGUoZXdrVmlldyk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTgwNyw3ICs4MTgsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2Fk
X2J5cGFzc19jYWNoZShFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZf
R0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAotICAgIHByaXYtPnBhZ2VD
bGllbnQtPnBhZ2UoKS0+cmVsb2FkKC8qcmVsb2FkRnJvbU9yaWdpbiovIHRydWUpOworICAgIHBy
aXYtPnBhZ2VQcm94eS5nZXQoKS0+cmVsb2FkKC8qcmVsb2FkRnJvbU9yaWdpbiovIHRydWUpOwog
ICAgIGV3a192aWV3X3VyaV91cGRhdGUoZXdrVmlldyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTgxOCw3ICs4MjksNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc3RvcChFdmFzX09iamVjdCogZXdr
VmlldykKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwg
ZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYs
IGZhbHNlKTsKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+c3RvcExvYWRpbmcoKTsK
KyAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPnN0b3BMb2FkaW5nKCk7CiAKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTkyNiw3ICs5MzcsNyBAQCBjb25zdCBjaGFyKiBld2tfdmlld190aXRsZV9n
ZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JF
VFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JF
VFVSTihzbWFydERhdGEsIHByaXYsIDApOwogCi0gICAgQ1N0cmluZyB0aXRsZSA9IHByaXYtPnBh
Z2VDbGllbnQtPnBhZ2UoKS0+cGFnZVRpdGxlKCkudXRmOCgpOworICAgIENTdHJpbmcgdGl0bGUg
PSBwcml2LT5wYWdlUHJveHkuZ2V0KCktPnBhZ2VUaXRsZSgpLnV0ZjgoKTsKICAgICBwcml2LT50
aXRsZSA9IHRpdGxlLmRhdGEoKTsKIAogICAgIHJldHVybiBwcml2LT50aXRsZTsKQEAgLTk1OSw3
ICs5NzAsNyBAQCBkb3VibGUgZXdrX3ZpZXdfbG9hZF9wcm9ncmVzc19nZXQoY29uc3QgRXZhc19P
YmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBz
bWFydERhdGEsIC0xLjApOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERh
dGEsIHByaXYsIC0xLjApOwogCi0gICAgcmV0dXJuIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+
ZXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICByZXR1cm4gcHJpdi0+cGFnZVByb3h5LmdldCgpLT5l
c3RpbWF0ZWRQcm9ncmVzcygpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2NhbGVfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBkb3VibGUgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSkKQEAg
LTk2Nyw3ICs5NzgsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2NhbGVfc2V0KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBkb3VibGUgc2NhbGVGYWN0b3IsIGludCB4LCBpbgogICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdf
UFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAgcHJpdi0+
cGFnZUNsaWVudC0+cGFnZSgpLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIEludFBvaW50KHgsIHkp
KTsKKyAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPnNjYWxlUGFnZShzY2FsZUZhY3RvciwgSW50
UG9pbnQoeCwgeSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC05NzYsNyArOTg3LDcgQEAg
ZG91YmxlIGV3a192aWV3X3NjYWxlX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKICAg
ICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgLTEpOwogICAg
IEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIC0xKTsKIAotICAg
IHJldHVybiBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOworICAg
IHJldHVybiBwcml2LT5wYWdlUHJveHkuZ2V0KCktPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiBF
aW5hX0Jvb2wgZXdrX3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX3NldChFdmFzX09iamVjdCogZXdr
VmlldywgZmxvYXQgcmF0aW8pCkBAIC05ODQsNyArOTk1LDcgQEAgRWluYV9Cb29sIGV3a192aWV3
X2RldmljZV9waXhlbF9yYXRpb19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGZsb2F0IHJhdGlv
KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxz
ZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFs
c2UpOwogCi0gICAgcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5zZXRDdXN0b21EZXZpY2VTY2Fs
ZUZhY3RvcihyYXRpbyk7CisgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5zZXRDdXN0b21EZXZp
Y2VTY2FsZUZhY3RvcihyYXRpbyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTk5NCw3ICsx
MDA1LDcgQEAgZmxvYXQgZXdrX3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX2dldChjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcs
IHNtYXJ0RGF0YSwgLTEuMCk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0
RGF0YSwgcHJpdiwgLTEuMCk7CiAKLSAgICByZXR1cm4gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgp
LT5kZXZpY2VTY2FsZUZhY3RvcigpOworICAgIHJldHVybiBwcml2LT5wYWdlUHJveHkuZ2V0KCkt
PmRldmljZVNjYWxlRmFjdG9yKCk7CiB9CiAKIC8qKgpAQCAtMTAyOCw3ICsxMDM5LDcgQEAgdm9p
ZCBld2tfdmlld190aGVtZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIHBh
dGgpCiAKICAgICBpZiAocHJpdi0+dGhlbWUgIT0gcGF0aCkgewogICAgICAgICBwcml2LT50aGVt
ZSA9IHBhdGg7Ci0gICAgICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+c2V0VGhlbWVQYXRo
KHBhdGgpOworICAgICAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPnNldFRoZW1lUGF0aChwYXRo
KTsKICAgICB9CiB9CiAKQEAgLTExNTgsNyArMTE2OSw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19i
YWNrKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4o
ZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVU
VVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0g
cHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHByaXYt
PnBhZ2VQcm94eS5nZXQoKTsKICAgICBpZiAocGFnZS0+Y2FuR29CYWNrKCkpIHsKICAgICAgICAg
cGFnZS0+Z29CYWNrKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTE3Miw3ICsxMTgzLDcg
QEAgRWluYV9Cb29sIGV3a192aWV3X2ZvcndhcmQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAg
RVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAK
LSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCk7CisgICAg
V2ViUGFnZVByb3h5KiBwYWdlID0gcHJpdi0+cGFnZVByb3h5LmdldCgpOwogICAgIGlmIChwYWdl
LT5jYW5Hb0ZvcndhcmQoKSkgewogICAgICAgICBwYWdlLT5nb0ZvcndhcmQoKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CkBAIC0xMTg4LDcgKzExOTksNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfaW50
ZW50X2RlbGl2ZXIoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19JbnRlbnQqIGludGVudCkKICAg
ICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAg
ICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGludGVudCwgZmFsc2UpOwogCi0gICAg
V2ViUGFnZVByb3h5KiBwYWdlID0gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpOworICAgIFdlYlBh
Z2VQcm94eSogcGFnZSA9IHByaXYtPnBhZ2VQcm94eS5nZXQoKTsKICAgICBwYWdlLT5kZWxpdmVy
SW50ZW50VG9GcmFtZShwYWdlLT5tYWluRnJhbWUoKSwgdG9JbXBsKGV3a19pbnRlbnRfV0tJbnRl
bnREYXRhUmVmX2dldChpbnRlbnQpKSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEyMDIsNyAr
MTIxMyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19iYWNrX3Bvc3NpYmxlKEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRh
LCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJp
diwgZmFsc2UpOwogCi0gICAgcmV0dXJuIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+Y2FuR29C
YWNrKCk7CisgICAgcmV0dXJuIHByaXYtPnBhZ2VQcm94eS5nZXQoKS0+Y2FuR29CYWNrKCk7CiB9
CiAKIEVpbmFfQm9vbCBld2tfdmlld19mb3J3YXJkX3Bvc3NpYmxlKEV2YXNfT2JqZWN0KiBld2tW
aWV3KQpAQCAtMTIxMCw3ICsxMjIxLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X2ZvcndhcmRfcG9z
c2libGUoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVS
Tihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9S
RVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICByZXR1cm4gcHJpdi0+cGFnZUNs
aWVudC0+cGFnZSgpLT5jYW5Hb0ZvcndhcmQoKTsKKyAgICByZXR1cm4gcHJpdi0+cGFnZVByb3h5
LmdldCgpLT5jYW5Hb0ZvcndhcmQoKTsKIH0KIAogRXdrX0JhY2tfRm9yd2FyZF9MaXN0KiBld2tf
dmlld19iYWNrX2ZvcndhcmRfbGlzdF9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCkBA
IC0xMzM3LDkgKzEzNDgsOSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfaHRtbF9zdHJpbmdfbG9hZChF
dmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogaHRtbCwgY29ucwogICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChodG1sLCBmYWxzZSk7CiAKICAgICBpZiAodW5yZWFjaGFi
bGVVcmwgJiYgKnVucmVhY2hhYmxlVXJsKQotICAgICAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdl
KCktPmxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgoaHRtbCksIGJhc2VV
cmwgPyBTdHJpbmc6OmZyb21VVEY4KGJhc2VVcmwpIDogIiIsIFN0cmluZzo6ZnJvbVVURjgodW5y
ZWFjaGFibGVVcmwpKTsKKyAgICAgICAgcHJpdi0+cGFnZVByb3h5LmdldCgpLT5sb2FkQWx0ZXJu
YXRlSFRNTFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KGh0bWwpLCBiYXNlVXJsID8gU3RyaW5nOjpm
cm9tVVRGOChiYXNlVXJsKSA6ICIiLCBTdHJpbmc6OmZyb21VVEY4KHVucmVhY2hhYmxlVXJsKSk7
CiAgICAgZWxzZQotICAgICAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmxvYWRIVE1MU3Ry
aW5nKFN0cmluZzo6ZnJvbVVURjgoaHRtbCksIGJhc2VVcmwgPyBTdHJpbmc6OmZyb21VVEY4KGJh
c2VVcmwpIDogIiIpOworICAgICAgICBwcml2LT5wYWdlUHJveHkuZ2V0KCktPmxvYWRIVE1MU3Ry
aW5nKFN0cmluZzo6ZnJvbVVURjgoaHRtbCksIGJhc2VVcmwgPyBTdHJpbmc6OmZyb21VVEY4KGJh
c2VVcmwpIDogIiIpOwogICAgIGV3a192aWV3X3VyaV91cGRhdGUoZXdrVmlldyk7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTEzNjMsNyArMTM3NCw3IEBAIFdlYlBhZ2VQcm94eSogZXdrX3ZpZXdf
cGFnZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwogICAgIEVXS19WSUVXX1BSSVZfR0VU
X09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOwogCi0gICAgcmV0dXJuIHByaXYtPnBhZ2VD
bGllbnQtPnBhZ2UoKTsKKyAgICByZXR1cm4gcHJpdi0+cGFnZVByb3h5LmdldCgpOwogfQogCiBj
b25zdCBjaGFyKiBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9nZXQoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcpCkBAIC0xMzcxLDcgKzEzODIsNyBAQCBjb25zdCBjaGFyKiBld2tf
dmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1Zp
ZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDAp
OwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOwog
Ci0gICAgU3RyaW5nIGN1c3RvbUVuY29kaW5nID0gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5j
dXN0b21UZXh0RW5jb2RpbmdOYW1lKCk7CisgICAgU3RyaW5nIGN1c3RvbUVuY29kaW5nID0gcHJp
di0+cGFnZVByb3h5LmdldCgpLT5jdXN0b21UZXh0RW5jb2RpbmdOYW1lKCk7CiAgICAgaWYgKGN1
c3RvbUVuY29kaW5nLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEzODYsNyAr
MTM5Nyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9zZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRf
T1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCiAgICAgcHJpdi0+Y3VzdG9tRW5j
b2RpbmcgPSBlbmNvZGluZzsKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnNldEN1c3Rv
bVRleHRFbmNvZGluZ05hbWUoZW5jb2RpbmcgPyBlbmNvZGluZyA6IFN0cmluZygpKTsKKyAgICBw
cml2LT5wYWdlUHJveHkuZ2V0KCktPnNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUoZW5jb2Rpbmcg
PyBlbmNvZGluZyA6IFN0cmluZygpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTQyNCw3
ICsxNDM1LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X3RleHRfZmluZChFdmFzX09iamVjdCogZXdr
VmlldywgY29uc3QgY2hhciogdGV4dCwgRXdrX0ZpbmRfT3AKICAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwodGV4dCwgZmFsc2UpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IGZpbmRUZXh0KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHRleHQp
KTsKLSAgICBXS1BhZ2VGaW5kU3RyaW5nKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSks
IGZpbmRUZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxXS0ZpbmRPcHRpb25zPihvcHRpb25zKSwgbWF4
TWF0Y2hDb3VudCk7CisgICAgV0tQYWdlRmluZFN0cmluZyh0b0FQSShwcml2LT5wYWdlUHJveHku
Z2V0KCkpLCBmaW5kVGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8V0tGaW5kT3B0aW9ucz4ob3B0aW9u
cyksIG1heE1hdGNoQ291bnQpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xNDM0LDcgKzE0
NDUsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfdGV4dF9maW5kX2hpZ2hsaWdodF9jbGVhcihFdmFz
X09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcs
IHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFy
dERhdGEsIHByaXYsIGZhbHNlKTsKIAotICAgIFdLUGFnZUhpZGVGaW5kVUkodG9BUEkocHJpdi0+
cGFnZUNsaWVudC0+cGFnZSgpKSk7CisgICAgV0tQYWdlSGlkZUZpbmRVSSh0b0FQSShwcml2LT5w
YWdlUHJveHkuZ2V0KCkpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQo=
</data>
<flag name="review"
          id="170967"
          type_id="1"
          status="-"
          setter="gyuyoung.kim"
    />
    <flag name="commit-queue"
          id="170968"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160900</attachid>
            <date>2012-08-27 22:30:41 -0700</date>
            <delta_ts>2012-08-27 23:28:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>page_client_impl_patch_4.txt</filename>
            <type>text/plain</type>
            <size>20324</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlZGQ1Njg5Li5jYWU2NzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAg
QEAKKzIwMTItMDgtMjcgIEthbmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gRml4IFBhZ2VDbGllbnRJbXBsIGxheWVyIHZpb2xhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ5MDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHaXZlbiBXSzIgaGll
cmFyY2h5LCBjdXJyZW50IFBhZ2VDbGllbnRJbXBsIGhhcyB2aW9sYXRlZCBBUEkgbGF5ZXIgYnkg
aGF2aW5nIFdlYlBhZ2VQcm94eS4KKyAgICAgICAgU3Vic2VxdWVudGx5LCBpdCBoYXMgYmVlbiBn
aXZlbiBXZWJDb250ZXh0LCBzdGF0aWMgc2luZ2xldG9uIG9iamVjdCwgaW4gaXRzIGFyZ3VtZW50
IHVubmVjZXNzYXJpbHkuCisgICAgICAgIFRoZXJlZm9yZSwgdGhpcyBwYXRjaCBtb3ZlZCBXZWJQ
YWdlUHJveHkgZnJvbSBQYWdlQ2xpZW50SW1wbCB0byBFd2tfVmlld19Qcml2YXRlX0RhdGEuCisg
ICAgICAgIFBsdXMsIFdlYkNvbnRleHQgd2FzIHJlbW92ZWQgZnJvbSBQYWdlQ2xpZW50SW1wbCBz
aW5jZSBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgIEFzIGEgcmVzdWx0LCBFRkwg
aGFzIHNhbWUgZm9ybSBvZiBQYWdlQ2xpZW50SW1wbCB3aXRoIG90aGVyIHBvcnRzLCBpLmUuIGd0
aysgYW5kIG1hYy4KKyAgICAgICAgRnJvbSBBUEkgcG9pbnQgb2Ygdmlldywgbm90aGluZyBoYXMg
YmVlbiBjaGFuZ2VkIGJlY2F1c2UgYWxsIHRoaW5ncyBkb25lIGxvY2FsbHkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6Y3JlYXRlKToKKyAgICAgICAgKFBhZ2VDbGllbnRJbXBsKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRh
KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9mb2N1c19pbik6CisgICAgICAgIChfZXdrX3Zp
ZXdfc21hcnRfZm9jdXNfb3V0KToKKyAgICAgICAgKF9ld2tfdmlld19zbWFydF9tb3VzZV93aGVl
bCk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfbW91c2VfZG93bik6CisgICAgICAgIChfZXdr
X3ZpZXdfc21hcnRfbW91c2VfdXApOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X21vdXNlX21v
dmUpOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2tleV9kb3duKToKKyAgICAgICAgKF9ld2tf
dmlld19zbWFydF9rZXlfdXApOgorICAgICAgICAoX2V3a192aWV3X3NtYXJ0X2NhbGN1bGF0ZSk6
CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfY29sb3Jfc2V0KToKKyAgICAgICAgKF9ld2tfdmll
d19pbml0aWFsaXplKToKKyAgICAgICAgKGV3a192aWV3X3VyaV91cGRhdGUpOgorICAgICAgICAo
ZXdrX3ZpZXdfdXJpX3NldCk6CisgICAgICAgIChld2tfdmlld19yZWxvYWQpOgorICAgICAgICAo
ZXdrX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZSk6CisgICAgICAgIChld2tfdmlld19zdG9wKToK
KyAgICAgICAgKGV3a192aWV3X3RpdGxlX2dldCk6CisgICAgICAgIChld2tfdmlld19sb2FkX3By
b2dyZXNzX2dldCk6CisgICAgICAgIChld2tfdmlld19zY2FsZV9zZXQpOgorICAgICAgICAoZXdr
X3ZpZXdfc2NhbGVfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X2RldmljZV9waXhlbF9yYXRpb19z
ZXQpOgorICAgICAgICAoZXdrX3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX2dldCk6CisgICAgICAg
IChld2tfdmlld190aGVtZV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfYmFjayk6CisgICAgICAg
IChld2tfdmlld19mb3J3YXJkKToKKyAgICAgICAgKGV3a192aWV3X2ludGVudF9kZWxpdmVyKToK
KyAgICAgICAgKGV3a192aWV3X2JhY2tfcG9zc2libGUpOgorICAgICAgICAoZXdrX3ZpZXdfZm9y
d2FyZF9wb3NzaWJsZSk6CisgICAgICAgIChld2tfdmlld19odG1sX3N0cmluZ19sb2FkKToKKyAg
ICAgICAgKGV3a192aWV3X3BhZ2VfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3NldHRpbmdfZW5j
b2RpbmdfY3VzdG9tX2dldCk6CisgICAgICAgIChld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1
c3RvbV9zZXQpOgorICAgICAgICAoZXdrX3ZpZXdfdGV4dF9maW5kKToKKyAgICAgICAgKGV3a192
aWV3X3RleHRfZmluZF9oaWdobGlnaHRfY2xlYXIpOgorCiAyMDEyLTA4LTI3ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgRm9yY2UgUmVwYWlu
dCB3b3JrIHdpdGggdGlsZWQgYmFja2luZyBzdG9yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDcyNmNhYWEuLjY5OTM2
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGll
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9QYWdlQ2xp
ZW50SW1wbC5jcHAKQEAgLTQ0LDE4ICs0NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFnZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBsKFdl
YkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFnZUdyb3VwLCBFdmFzX09iamVjdCog
dmlld1dpZGdldCkKK1BhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1wbChFdmFzX09iamVjdCog
dmlld1dpZGdldCkKICAgICA6IG1fdmlld1dpZGdldCh2aWV3V2lkZ2V0KQogewotICAgIG1fcGFn
ZSA9IGNvbnRleHQtPmNyZWF0ZVdlYlBhZ2UodGhpcywgcGFnZUdyb3VwKTsKLQotI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDUykKLSAgICBtX3BhZ2UtPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKLSAgICBtX3BhZ2Ut
PnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVl
KTsKLSAgICBtX3BhZ2UtPnNldFVzZUZpeGVkTGF5b3V0KHRydWUpOwotI2VuZGlmCi0KLSAgICBt
X3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7CiB9CiAKIFBhZ2VDbGllbnRJbXBsOjp+UGFnZUNs
aWVudEltcGwoKQpAQCAtNjUsNyArNTYsNyBAQCBQYWdlQ2xpZW50SW1wbDo6flBhZ2VDbGllbnRJ
bXBsKCkKIC8vIFBhZ2VDbGllbnQKIFBhc3NPd25QdHI8RHJhd2luZ0FyZWFQcm94eT4gUGFnZUNs
aWVudEltcGw6OmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKQogewotICAgIHJldHVybiBEcmF3aW5n
QXJlYVByb3h5SW1wbDo6Y3JlYXRlKG1fcGFnZS5nZXQoKSk7CisgICAgcmV0dXJuIERyYXdpbmdB
cmVhUHJveHlJbXBsOjpjcmVhdGUoZXdrX3ZpZXdfcGFnZV9nZXQobV92aWV3V2lkZ2V0KSk7CiB9
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDg2MTg1MDIuLmYzZmFkNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuaApAQCAtMzMsMTgg
KzMzLDE3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBQYWdlQ2xpZW50SW1wbCA6IHB1
YmxpYyBQYWdlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxQYWdlQ2xp
ZW50SW1wbD4gY3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VHcm91cCogcGFnZUdy
b3VwLCBFdmFzX09iamVjdCogdmlld1dpZGdldCkKKyAgICBzdGF0aWMgUGFzc093blB0cjxQYWdl
Q2xpZW50SW1wbD4gY3JlYXRlKEV2YXNfT2JqZWN0KiB2aWV3V2lkZ2V0KQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ2xpZW50SW1wbChjb250ZXh0LCBwYWdlR3JvdXAs
IHZpZXdXaWRnZXQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlQ2xpZW50SW1w
bCh2aWV3V2lkZ2V0KSk7CiAgICAgfQogICAgIH5QYWdlQ2xpZW50SW1wbCgpOwogCiAgICAgRXZh
c19PYmplY3QqIHZpZXdXaWRnZXQoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdXaWRnZXQ7IH0KIAot
ICAgIFdlYlBhZ2VQcm94eSogcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQog
CiBwcml2YXRlOgotICAgIFBhZ2VDbGllbnRJbXBsKFdlYkNvbnRleHQqLCBXZWJQYWdlR3JvdXAq
LCBFdmFzX09iamVjdCopOworICAgIGV4cGxpY2l0IFBhZ2VDbGllbnRJbXBsKEV2YXNfT2JqZWN0
Kik7CiAKICAgICAvLyBQYWdlQ2xpZW50CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPERyYXdpbmdB
cmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKTsKQEAgLTExNSw3ICsxMTQsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1NpemUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpOwogCiBwcml2YXRlOgotICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG1f
cGFnZTsKICAgICBFdmFzX09iamVjdCogbV92aWV3V2lkZ2V0OwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGNlN2Y3YjQuLmI4ZmJm
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJXS1JldGFpblB0ci5oIgogI2luY2x1ZGUgIldL
U3RyaW5nLmgiCiAjaW5jbHVkZSAiV0tVUkwuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAj
aW5jbHVkZSAiZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tf
Y29udGV4dC5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUuaCIKQEAgLTczLDYgKzc0
LDcgQEAgc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgewogI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKICAgICBPd25QdHI8RWZsVmlld3BvcnRIYW5kbGVyPiB2aWV3cG9ydEhhbmRs
ZXI7CiAjZW5kaWYKKyAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBwYWdlUHJveHk7CiAKICAgICBX
S0VpbmFTaGFyZWRTdHJpbmcgdXJpOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyB0aXRsZTsKQEAg
LTE4Niw3ICsxODgsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9mb2N1c19p
bihFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEpCiB7CiAgICAgRVdLX1ZJRVdfUFJJVl9H
RVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpCiAKLSAgICBwcml2LT5wYWdlQ2xp
ZW50LT5wYWdlKCktPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0ZvY3Vz
ZWQgfCBXZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7CisgICAgcHJpdi0+cGFnZVBy
b3h5LT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3SXNGb2N1c2VkIHwgV2Vi
UGFnZVByb3h5OjpWaWV3V2luZG93SXNBY3RpdmUpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBA
IC0xOTQsNyArMTk2LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfZm9jdXNf
b3V0KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKIHsKICAgICBFV0tfVklFV19QUklW
X0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSkKIAotICAgIHByaXYtPnBhZ2VD
bGllbnQtPnBhZ2UoKS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eTo6Vmlld0lzRm9j
dXNlZCB8IFdlYlBhZ2VQcm94eTo6Vmlld1dpbmRvd0lzQWN0aXZlKTsKKyAgICBwcml2LT5wYWdl
UHJveHktPnZpZXdTdGF0ZURpZENoYW5nZShXZWJQYWdlUHJveHk6OlZpZXdJc0ZvY3VzZWQgfCBX
ZWJQYWdlUHJveHk6OlZpZXdXaW5kb3dJc0FjdGl2ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTIwMyw3ICsyMDUsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9tb3Vz
ZV93aGVlbChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNvbgogICAgIEVXS19WSUVX
X1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZhbHNlKQogCiAgICAgRXZhc19Q
b2ludCBwb3NpdGlvbiA9IHtzbWFydERhdGEtPnZpZXcueCwgc21hcnREYXRhLT52aWV3Lnl9Owot
ICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+aGFuZGxlV2hlZWxFdmVudChOYXRpdmVXZWJX
aGVlbEV2ZW50KHdoZWVsRXZlbnQsICZwb3NpdGlvbikpOworICAgIHByaXYtPnBhZ2VQcm94eS0+
aGFuZGxlV2hlZWxFdmVudChOYXRpdmVXZWJXaGVlbEV2ZW50KHdoZWVsRXZlbnQsICZwb3NpdGlv
bikpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yMTIsNyArMjE0LDcgQEAgc3RhdGljIEVp
bmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfbW91c2VfZG93bihFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEsIGNvbnMKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRh
LCBwcml2LCBmYWxzZSkKIAogICAgIEV2YXNfUG9pbnQgcG9zaXRpb24gPSB7c21hcnREYXRhLT52
aWV3LngsIHNtYXJ0RGF0YS0+dmlldy55fTsKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkt
PmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudChkb3duRXZlbnQsICZwb3NpdGlv
bikpOworICAgIHByaXYtPnBhZ2VQcm94eS0+aGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3Vz
ZUV2ZW50KGRvd25FdmVudCwgJnBvc2l0aW9uKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTIyMSw3ICsyMjMsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9ld2tfdmlld19zbWFydF9tb3VzZV91
cChFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEsIGNvbnN0CiAgICAgRVdLX1ZJRVdfUFJJ
Vl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpCiAKICAgICBFdmFzX1BvaW50
IHBvc2l0aW9uID0ge3NtYXJ0RGF0YS0+dmlldy54LCBzbWFydERhdGEtPnZpZXcueX07Ci0gICAg
cHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNl
RXZlbnQodXBFdmVudCwgJnBvc2l0aW9uKSk7CisgICAgcHJpdi0+cGFnZVByb3h5LT5oYW5kbGVN
b3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQodXBFdmVudCwgJnBvc2l0aW9uKSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKQEAgLTIzMCw3ICsyMzIsNyBAQCBzdGF0aWMgRWluYV9Cb29sIF9l
d2tfdmlld19zbWFydF9tb3VzZV9tb3ZlKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwg
Y29ucwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZh
bHNlKQogCiAgICAgRXZhc19Qb2ludCBwb3NpdGlvbiA9IHtzbWFydERhdGEtPnZpZXcueCwgc21h
cnREYXRhLT52aWV3Lnl9OwotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+aGFuZGxlTW91
c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KG1vdmVFdmVudCwgJnBvc2l0aW9uKSk7CisgICAg
cHJpdi0+cGFnZVByb3h5LT5oYW5kbGVNb3VzZUV2ZW50KE5hdGl2ZVdlYk1vdXNlRXZlbnQobW92
ZUV2ZW50LCAmcG9zaXRpb24pKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjM4LDcgKzI0
MCw3IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X2tleV9kb3duKEV3a19WaWV3
X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QKIHsKICAgICBFV0tfVklFV19QUklWX0dFVF9P
Ul9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSkKIAotICAgIHByaXYtPnBhZ2VDbGllbnQt
PnBhZ2UoKS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGRvd25F
dmVudCkpOworICAgIHByaXYtPnBhZ2VQcm94eS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KGRvd25FdmVudCkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0y
NDYsNyArMjQ4LDcgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfa2V5X3VwKEV3
a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QgRXYKIHsKICAgICBFV0tfVklFV19Q
UklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSkKIAotICAgIHByaXYtPnBh
Z2VDbGllbnQtPnBhZ2UoKS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2
ZW50KHVwRXZlbnQpKTsKKyAgICBwcml2LT5wYWdlUHJveHktPmhhbmRsZUtleWJvYXJkRXZlbnQo
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh1cEV2ZW50KSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTUzNCw4ICs1MzYsOCBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfY2FsY3VsYXRl
KEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgICAgICBwcml2LT52aWV3cG9ydEhhbmRsZXItPnVw
ZGF0ZVZpZXdwb3J0U2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKICNlbmRpZgogCi0gICAg
ICAgIGlmIChwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCkpCi0gICAgICAg
ICAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPnNldFNpemUoSW50
U2l6ZSh3aWR0aCwgaGVpZ2h0KSwgSW50U2l6ZSgpKTsKKyAgICAgICAgaWYgKHByaXYtPnBhZ2VQ
cm94eS0+ZHJhd2luZ0FyZWEoKSkKKyAgICAgICAgICAgIHByaXYtPnBhZ2VQcm94eS0+ZHJhd2lu
Z0FyZWEoKS0+c2V0U2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpLCBJbnRTaXplKCkpOwogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgICAgICBpZiAoIXByaXYtPmV2YXNH
bFN1cmZhY2UpCkBAIC01OTcsOCArNTk5LDggQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0
X2NvbG9yX3NldChFdmFzX09iamVjdCogZXdrVmlldywgaW50IHJlZCwgaW50IGdyZWVuLAogI3Vu
ZGVmIENIRUNLX0NPTE9SCiAKICAgICBldmFzX29iamVjdF9pbWFnZV9hbHBoYV9zZXQoc21hcnRE
YXRhLT5pbWFnZSwgYWxwaGEgPCAyNTUpOwotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+
c2V0RHJhd3NCYWNrZ3JvdW5kKHJlZCB8fCBncmVlbiB8fCBibHVlKTsKLSAgICBwcml2LT5wYWdl
Q2xpZW50LT5wYWdlKCktPnNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGFscGhhIDwgMjU1
KTsKKyAgICBwcml2LT5wYWdlUHJveHktPnNldERyYXdzQmFja2dyb3VuZChyZWQgfHwgZ3JlZW4g
fHwgYmx1ZSk7CisgICAgcHJpdi0+cGFnZVByb3h5LT5zZXREcmF3c1RyYW5zcGFyZW50QmFja2dy
b3VuZChhbHBoYSA8IDI1NSk7CiAKICAgICBnX3BhcmVudFNtYXJ0Q2xhc3MuY29sb3Jfc2V0KGV3
a1ZpZXcsIHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsKIH0KQEAgLTY2NCwxNCArNjY2LDIzIEBA
IHN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0aWFsaXplKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBF
d2tfQ29udGV4dCogY29udGV4dCwgV0tQCiAgICAgaWYgKHByaXYtPnBhZ2VDbGllbnQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIHByaXYtPnBhZ2VDbGllbnQgPSBQYWdlQ2xpZW50SW1wbDo6Y3Jl
YXRlKHRvSW1wbChld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnRleHQpKSwgdG9JbXBsKHBh
Z2VHcm91cFJlZiksIGV3a1ZpZXcpOwotICAgIHByaXYtPmJhY2tGb3J3YXJkTGlzdCA9IGV3a19i
YWNrX2ZvcndhcmRfbGlzdF9uZXcodG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5iYWNr
Rm9yd2FyZExpc3QoKSkpOworICAgIHByaXYtPnBhZ2VDbGllbnQgPSBQYWdlQ2xpZW50SW1wbDo6
Y3JlYXRlKGV3a1ZpZXcpOworCisgICAgcHJpdi0+cGFnZVByb3h5ID0gdG9JbXBsKGV3a19jb250
ZXh0X1dLQ29udGV4dF9nZXQoY29udGV4dCkpLT5jcmVhdGVXZWJQYWdlKHByaXYtPnBhZ2VDbGll
bnQuZ2V0KCksIHRvSW1wbChwYWdlR3JvdXBSZWYpKTsKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCisgICAgcHJpdi0+cGFnZVByb3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQodHJ1ZSk7CisgICAgcHJpdi0+cGFnZVBy
b3h5LT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
dHJ1ZSk7CisgICAgcHJpdi0+cGFnZVByb3h5LT5zZXRVc2VGaXhlZExheW91dCh0cnVlKTsKKyNl
bmRpZgorICAgIHByaXYtPnBhZ2VQcm94eS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKKworICAgIHBy
aXYtPmJhY2tGb3J3YXJkTGlzdCA9IGV3a19iYWNrX2ZvcndhcmRfbGlzdF9uZXcodG9BUEkocHJp
di0+cGFnZVByb3h5LT5iYWNrRm9yd2FyZExpc3QoKSkpOwogCiAjaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKQogICAgIHByaXYtPnZpZXdwb3J0SGFuZGxlciA9IEVmbFZpZXdwb3J0SGFuZGxl
cjo6Y3JlYXRlKHByaXYtPnBhZ2VDbGllbnQuZ2V0KCkpOwogI2VuZGlmCiAKLSAgICBXS1BhZ2VS
ZWYgd2tQYWdlID0gdG9BUEkocHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpKTsKKyAgICBXS1BhZ2VS
ZWYgd2tQYWdlID0gdG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpKTsKICAgICBld2tfdmlld19m
aW5kX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICAgICBld2tfdmlld19mb3JtX2Ns
aWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICAgICBld2tfdmlld19sb2FkZXJfY2xpZW50
X2F0dGFjaCh3a1BhZ2UsIGV3a1ZpZXcpOwpAQCAtNzU5LDcgKzc3MCw3IEBAIHZvaWQgZXdrX3Zp
ZXdfdXJpX3VwZGF0ZShFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklFV19TRF9HRVRf
T1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1Jf
UkVUVVJOKHNtYXJ0RGF0YSwgcHJpdik7CiAKLSAgICBTdHJpbmcgYWN0aXZlVVJMID0gcHJpdi0+
cGFnZUNsaWVudC0+cGFnZSgpLT5hY3RpdmVVUkwoKTsKKyAgICBTdHJpbmcgYWN0aXZlVVJMID0g
cHJpdi0+cGFnZVByb3h5LT5hY3RpdmVVUkwoKTsKICAgICBpZiAoYWN0aXZlVVJMLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwogCkBAIC03NzcsNyArNzg4LDcgQEAgRWluYV9Cb29sIGV3a192
aWV3X3VyaV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIHVyaSkKICAgICBF
V0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHVyaSwgZmFsc2UpOwogCi0gICAgcHJpdi0+
cGFnZUNsaWVudC0+cGFnZSgpLT5sb2FkVVJMKHVyaSk7CisgICAgcHJpdi0+cGFnZVByb3h5LT5s
b2FkVVJMKHVyaSk7CiAgICAgZXdrX3ZpZXdfdXJpX3VwZGF0ZShld2tWaWV3KTsKIAogICAgIHJl
dHVybiB0cnVlOwpAQCAtNzk2LDcgKzgwNyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19yZWxvYWQo
RXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkt
PnJlbG9hZCgvKnJlbG9hZEZyb21PcmlnaW4qLyBmYWxzZSk7CisgICAgcHJpdi0+cGFnZVByb3h5
LT5yZWxvYWQoLypyZWxvYWRGcm9tT3JpZ2luKi8gZmFsc2UpOwogICAgIGV3a192aWV3X3VyaV91
cGRhdGUoZXdrVmlldyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTgwNyw3ICs4MTgsNyBAQCBF
aW5hX0Jvb2wgZXdrX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZShFdmFzX09iamVjdCogZXdrVmll
dykKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgZmFs
c2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIGZh
bHNlKTsKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+cmVsb2FkKC8qcmVsb2FkRnJv
bU9yaWdpbiovIHRydWUpOworICAgIHByaXYtPnBhZ2VQcm94eS0+cmVsb2FkKC8qcmVsb2FkRnJv
bU9yaWdpbiovIHRydWUpOwogICAgIGV3a192aWV3X3VyaV91cGRhdGUoZXdrVmlldyk7CiAKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTgxOCw3ICs4MjksNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc3Rv
cChFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3
a1ZpZXcsIHNtYXJ0RGF0YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVS
TihzbWFydERhdGEsIHByaXYsIGZhbHNlKTsKIAotICAgIHByaXYtPnBhZ2VDbGllbnQtPnBhZ2Uo
KS0+c3RvcExvYWRpbmcoKTsKKyAgICBwcml2LT5wYWdlUHJveHktPnN0b3BMb2FkaW5nKCk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTkyNiw3ICs5MzcsNyBAQCBjb25zdCBjaGFyKiBld2tf
dmlld190aXRsZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdf
U0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwogICAgIEVXS19WSUVXX1BS
SVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOwogCi0gICAgQ1N0cmluZyB0aXRs
ZSA9IHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKS0+cGFnZVRpdGxlKCkudXRmOCgpOworICAgIENT
dHJpbmcgdGl0bGUgPSBwcml2LT5wYWdlUHJveHktPnBhZ2VUaXRsZSgpLnV0ZjgoKTsKICAgICBw
cml2LT50aXRsZSA9IHRpdGxlLmRhdGEoKTsKIAogICAgIHJldHVybiBwcml2LT50aXRsZTsKQEAg
LTk1OSw3ICs5NzAsNyBAQCBkb3VibGUgZXdrX3ZpZXdfbG9hZF9wcm9ncmVzc19nZXQoY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEsIC0xLjApOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihz
bWFydERhdGEsIHByaXYsIC0xLjApOwogCi0gICAgcmV0dXJuIHByaXYtPnBhZ2VDbGllbnQtPnBh
Z2UoKS0+ZXN0aW1hdGVkUHJvZ3Jlc3MoKTsKKyAgICByZXR1cm4gcHJpdi0+cGFnZVByb3h5LT5l
c3RpbWF0ZWRQcm9ncmVzcygpOwogfQogCiBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2NhbGVfc2V0KEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBkb3VibGUgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSkKQEAg
LTk2Nyw3ICs5NzgsNyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfc2NhbGVfc2V0KEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBkb3VibGUgc2NhbGVGYWN0b3IsIGludCB4LCBpbgogICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdf
UFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAgcHJpdi0+
cGFnZUNsaWVudC0+cGFnZSgpLT5zY2FsZVBhZ2Uoc2NhbGVGYWN0b3IsIEludFBvaW50KHgsIHkp
KTsKKyAgICBwcml2LT5wYWdlUHJveHktPnNjYWxlUGFnZShzY2FsZUZhY3RvciwgSW50UG9pbnQo
eCwgeSkpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC05NzYsNyArOTg3LDcgQEAgZG91Ymxl
IGV3a192aWV3X3NjYWxlX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykKICAgICBFV0tf
VklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgLTEpOwogICAgIEVXS19W
SUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIC0xKTsKIAotICAgIHJldHVy
biBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIHJldHVy
biBwcml2LT5wYWdlUHJveHktPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiBFaW5hX0Jvb2wgZXdr
X3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX3NldChFdmFzX09iamVjdCogZXdrVmlldywgZmxvYXQg
cmF0aW8pCkBAIC05ODQsNyArOTk1LDcgQEAgRWluYV9Cb29sIGV3a192aWV3X2RldmljZV9waXhl
bF9yYXRpb19zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGZsb2F0IHJhdGlvKQogICAgIEVXS19W
SUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdL
X1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAg
cHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5zZXRDdXN0b21EZXZpY2VTY2FsZUZhY3RvcihyYXRp
byk7CisgICAgcHJpdi0+cGFnZVByb3h5LT5zZXRDdXN0b21EZXZpY2VTY2FsZUZhY3RvcihyYXRp
byk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTk5NCw3ICsxMDA1LDcgQEAgZmxvYXQgZXdr
X3ZpZXdfZGV2aWNlX3BpeGVsX3JhdGlvX2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldykK
ICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0YSwgLTEuMCk7
CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgLTEuMCk7
CiAKLSAgICByZXR1cm4gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3Rv
cigpOworICAgIHJldHVybiBwcml2LT5wYWdlUHJveHktPmRldmljZVNjYWxlRmFjdG9yKCk7CiB9
CiAKIC8qKgpAQCAtMTAyOCw3ICsxMDM5LDcgQEAgdm9pZCBld2tfdmlld190aGVtZV9zZXQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIHBhdGgpCiAKICAgICBpZiAocHJpdi0+dGhl
bWUgIT0gcGF0aCkgewogICAgICAgICBwcml2LT50aGVtZSA9IHBhdGg7Ci0gICAgICAgIHByaXYt
PnBhZ2VDbGllbnQtPnBhZ2UoKS0+c2V0VGhlbWVQYXRoKHBhdGgpOworICAgICAgICBwcml2LT5w
YWdlUHJveHktPnNldFRoZW1lUGF0aChwYXRoKTsKICAgICB9CiB9CiAKQEAgLTExNTgsNyArMTE2
OSw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19iYWNrKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAg
IEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAg
ICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwog
Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpOworICAg
IFdlYlBhZ2VQcm94eSogcGFnZSA9IHByaXYtPnBhZ2VQcm94eS5nZXQoKTsKICAgICBpZiAocGFn
ZS0+Y2FuR29CYWNrKCkpIHsKICAgICAgICAgcGFnZS0+Z29CYWNrKCk7CiAgICAgICAgIHJldHVy
biB0cnVlOwpAQCAtMTE3Miw3ICsxMTgzLDcgQEAgRWluYV9Cb29sIGV3a192aWV3X2ZvcndhcmQo
RXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tW
aWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSBwcml2
LT5wYWdlQ2xpZW50LT5wYWdlKCk7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gcHJpdi0+cGFn
ZVByb3h5LmdldCgpOwogICAgIGlmIChwYWdlLT5jYW5Hb0ZvcndhcmQoKSkgewogICAgICAgICBw
YWdlLT5nb0ZvcndhcmQoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0xMTg4LDcgKzExOTks
NyBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfaW50ZW50X2RlbGl2ZXIoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEV3a19JbnRlbnQqIGludGVudCkKICAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4o
c21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKGludGVudCwgZmFsc2UpOwogCi0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gcHJpdi0+cGFn
ZUNsaWVudC0+cGFnZSgpOworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHByaXYtPnBhZ2VQcm94
eS5nZXQoKTsKICAgICBwYWdlLT5kZWxpdmVySW50ZW50VG9GcmFtZShwYWdlLT5tYWluRnJhbWUo
KSwgdG9JbXBsKGV3a19pbnRlbnRfV0tJbnRlbnREYXRhUmVmX2dldChpbnRlbnQpKSk7CiAKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTEyMDIsNyArMTIxMyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19i
YWNrX3Bvc3NpYmxlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIEVXS19WSUVXX1NEX0dFVF9P
Ul9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCBmYWxzZSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9H
RVRfT1JfUkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCi0gICAgcmV0dXJuIHByaXYt
PnBhZ2VDbGllbnQtPnBhZ2UoKS0+Y2FuR29CYWNrKCk7CisgICAgcmV0dXJuIHByaXYtPnBhZ2VQ
cm94eS0+Y2FuR29CYWNrKCk7CiB9CiAKIEVpbmFfQm9vbCBld2tfdmlld19mb3J3YXJkX3Bvc3Np
YmxlKEV2YXNfT2JqZWN0KiBld2tWaWV3KQpAQCAtMTIxMCw3ICsxMjIxLDcgQEAgRWluYV9Cb29s
IGV3a192aWV3X2ZvcndhcmRfcG9zc2libGUoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdL
X1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIGZhbHNlKTsKICAgICBF
V0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCBmYWxzZSk7CiAKLSAg
ICByZXR1cm4gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgpLT5jYW5Hb0ZvcndhcmQoKTsKKyAgICBy
ZXR1cm4gcHJpdi0+cGFnZVByb3h5LT5jYW5Hb0ZvcndhcmQoKTsKIH0KIAogRXdrX0JhY2tfRm9y
d2FyZF9MaXN0KiBld2tfdmlld19iYWNrX2ZvcndhcmRfbGlzdF9nZXQoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcpCkBAIC0xMzM3LDkgKzEzNDgsOSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfaHRt
bF9zdHJpbmdfbG9hZChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogaHRtbCwgY29u
cwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChodG1sLCBmYWxzZSk7CiAKICAg
ICBpZiAodW5yZWFjaGFibGVVcmwgJiYgKnVucmVhY2hhYmxlVXJsKQotICAgICAgICBwcml2LT5w
YWdlQ2xpZW50LT5wYWdlKCktPmxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKFN0cmluZzo6ZnJvbVVU
RjgoaHRtbCksIGJhc2VVcmwgPyBTdHJpbmc6OmZyb21VVEY4KGJhc2VVcmwpIDogIiIsIFN0cmlu
Zzo6ZnJvbVVURjgodW5yZWFjaGFibGVVcmwpKTsKKyAgICAgICAgcHJpdi0+cGFnZVByb3h5LT5s
b2FkQWx0ZXJuYXRlSFRNTFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KGh0bWwpLCBiYXNlVXJsID8g
U3RyaW5nOjpmcm9tVVRGOChiYXNlVXJsKSA6ICIiLCBTdHJpbmc6OmZyb21VVEY4KHVucmVhY2hh
YmxlVXJsKSk7CiAgICAgZWxzZQotICAgICAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPmxv
YWRIVE1MU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgoaHRtbCksIGJhc2VVcmwgPyBTdHJpbmc6OmZy
b21VVEY4KGJhc2VVcmwpIDogIiIpOworICAgICAgICBwcml2LT5wYWdlUHJveHktPmxvYWRIVE1M
U3RyaW5nKFN0cmluZzo6ZnJvbVVURjgoaHRtbCksIGJhc2VVcmwgPyBTdHJpbmc6OmZyb21VVEY4
KGJhc2VVcmwpIDogIiIpOwogICAgIGV3a192aWV3X3VyaV91cGRhdGUoZXdrVmlldyk7CiAKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTEzNjMsNyArMTM3NCw3IEBAIFdlYlBhZ2VQcm94eSogZXdrX3Zp
ZXdfcGFnZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0Rf
R0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwogICAgIEVXS19WSUVXX1BSSVZf
R0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDApOwogCi0gICAgcmV0dXJuIHByaXYtPnBh
Z2VDbGllbnQtPnBhZ2UoKTsKKyAgICByZXR1cm4gcHJpdi0+cGFnZVByb3h5LmdldCgpOwogfQog
CiBjb25zdCBjaGFyKiBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9nZXQoY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcpCkBAIC0xMzcxLDcgKzEzODIsNyBAQCBjb25zdCBjaGFyKiBl
d2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEs
IDApOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHByaXYsIDAp
OwogCi0gICAgU3RyaW5nIGN1c3RvbUVuY29kaW5nID0gcHJpdi0+cGFnZUNsaWVudC0+cGFnZSgp
LT5jdXN0b21UZXh0RW5jb2RpbmdOYW1lKCk7CisgICAgU3RyaW5nIGN1c3RvbUVuY29kaW5nID0g
cHJpdi0+cGFnZVByb3h5LT5jdXN0b21UZXh0RW5jb2RpbmdOYW1lKCk7CiAgICAgaWYgKGN1c3Rv
bUVuY29kaW5nLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEzODYsNyArMTM5
Nyw3IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9zZXQoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqCiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1Jf
UkVUVVJOKHNtYXJ0RGF0YSwgcHJpdiwgZmFsc2UpOwogCiAgICAgcHJpdi0+Y3VzdG9tRW5jb2Rp
bmcgPSBlbmNvZGluZzsKLSAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCktPnNldEN1c3RvbVRl
eHRFbmNvZGluZ05hbWUoZW5jb2RpbmcgPyBlbmNvZGluZyA6IFN0cmluZygpKTsKKyAgICBwcml2
LT5wYWdlUHJveHktPnNldEN1c3RvbVRleHRFbmNvZGluZ05hbWUoZW5jb2RpbmcgPyBlbmNvZGlu
ZyA6IFN0cmluZygpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTQyNCw3ICsxNDM1LDcg
QEAgRWluYV9Cb29sIGV3a192aWV3X3RleHRfZmluZChFdmFzX09iamVjdCogZXdrVmlldywgY29u
c3QgY2hhciogdGV4dCwgRXdrX0ZpbmRfT3AKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwodGV4dCwgZmFsc2UpOwogCiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGZpbmRU
ZXh0KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHRleHQpKTsKLSAgICBX
S1BhZ2VGaW5kU3RyaW5nKHRvQVBJKHByaXYtPnBhZ2VDbGllbnQtPnBhZ2UoKSksIGZpbmRUZXh0
LmdldCgpLCBzdGF0aWNfY2FzdDxXS0ZpbmRPcHRpb25zPihvcHRpb25zKSwgbWF4TWF0Y2hDb3Vu
dCk7CisgICAgV0tQYWdlRmluZFN0cmluZyh0b0FQSShwcml2LT5wYWdlUHJveHkuZ2V0KCkpLCBm
aW5kVGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8V0tGaW5kT3B0aW9ucz4ob3B0aW9ucyksIG1heE1h
dGNoQ291bnQpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xNDM0LDcgKzE0NDUsNyBAQCBF
aW5hX0Jvb2wgZXdrX3ZpZXdfdGV4dF9maW5kX2hpZ2hsaWdodF9jbGVhcihFdmFzX09iamVjdCog
ZXdrVmlldykKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNtYXJ0RGF0
YSwgZmFsc2UpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHBy
aXYsIGZhbHNlKTsKIAotICAgIFdLUGFnZUhpZGVGaW5kVUkodG9BUEkocHJpdi0+cGFnZUNsaWVu
dC0+cGFnZSgpKSk7CisgICAgV0tQYWdlSGlkZUZpbmRVSSh0b0FQSShwcml2LT5wYWdlUHJveHku
Z2V0KCkpKTsKIAogICAgIHJldHVybiB0cnVlOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>