<?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>109377</bug_id>
          
          <creation_ts>2013-02-10 05:51:58 -0800</creation_ts>
          <short_desc>[WK2][EFL] Cleanup of graphics related code in EwkView</short_desc>
          <delta_ts>2013-02-13 10:40:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>829276</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-10 05:51:58 -0800</bug_when>
    <thetext>SSIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829278</commentid>
    <comment_count>1</comment_count>
      <attachid>187479</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-10 05:55:50 -0800</bug_when>
    <thetext>Created attachment 187479
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829749</commentid>
    <comment_count>2</comment_count>
      <attachid>187591</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-11 08:53:39 -0800</bug_when>
    <thetext>Created attachment 187591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830487</commentid>
    <comment_count>3</comment_count>
      <attachid>187591</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-11 20:04:50 -0800</bug_when>
    <thetext>Comment on attachment 187591
Patch

Attachment 187591 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16496563

New failing tests:
http/tests/cache/cached-main-resource.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830808</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-12 05:25:27 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 187591 [details])
&gt; Attachment 187591 [details] did not pass mac-wk2-ews (mac-wk2):
&gt; Output: http://queues.webkit.org/results/16496563
&gt; 
&gt; New failing tests:
&gt; http/tests/cache/cached-main-resource.html

Unrelated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830823</commentid>
    <comment_count>5</comment_count>
      <attachid>187591</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-12 05:35:17 -0800</bug_when>
    <thetext>Comment on attachment 187591
Patch

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830962</commentid>
    <comment_count>6</comment_count>
      <attachid>187872</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-12 08:26:05 -0800</bug_when>
    <thetext>Created attachment 187872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830971</commentid>
    <comment_count>7</comment_count>
      <attachid>187872</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-02-12 08:33:47 -0800</bug_when>
    <thetext>Comment on attachment 187872
Patch

looks nice</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831485</commentid>
    <comment_count>8</comment_count>
      <attachid>187872</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-02-12 17:56:20 -0800</bug_when>
    <thetext>Comment on attachment 187872
Patch

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

Looks nice too.

&gt; Source/WebKit2/UIProcess/API/efl/EwkView.h:80
&gt; +class TransformationMatrix;

Wrong alphabet order ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831943</commentid>
    <comment_count>9</comment_count>
      <attachid>187872</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-13 08:49:29 -0800</bug_when>
    <thetext>Comment on attachment 187872
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/EwkView.h:80
&gt;&gt; +class TransformationMatrix;
&gt; 
&gt; Wrong alphabet order ?

Yup, please fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831951</commentid>
    <comment_count>10</comment_count>
      <attachid>188092</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-13 09:00:09 -0800</bug_when>
    <thetext>Created attachment 188092
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831992</commentid>
    <comment_count>11</comment_count>
      <attachid>188092</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 09:48:11 -0800</bug_when>
    <thetext>Comment on attachment 188092
Patch for landing

Clearing flags on attachment: 188092

Committed r142758: &lt;http://trac.webkit.org/changeset/142758&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831993</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 09:48:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832048</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-13 10:40:28 -0800</bug_when>
    <thetext>It looks like this patch may have caused 2 regressions on the bots:
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r142759%20(9446)/results.html

In particular:
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r142759%20(9446)/fast/dom/Window/mozilla-focus-blur-pretty-diff.html

http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug%20WK2/r142759%20(9446)/compositing/layer-creation/fixed-position-out-of-view-scaled-crash-log.txt</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187479</attachid>
            <date>2013-02-10 05:55:50 -0800</date>
            <delta_ts>2013-02-11 08:53:32 -0800</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-109377-20130210145202.patch</filename>
            <type>text/plain</type>
            <size>17034</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDAxNDZmZjU3ODY5OTQ1
MGQ4ODE2YmQ1NjhhYmEzMjM1OTRlM2VhZi4uZjM4NjgwYWMzYzI2NGUwNzQyMzY2YjcwM2E2N2M0
ZTNhYTY3YjhhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAyLTEwICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBb
V0syXVtFRkxdIENsZWFudXAgb2YgZ3JhcGhpY3MgcmVsYXRlZCBjb2RlIGluIEV3a1ZpZXcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM3NworCisg
ICAgICAgIFdJUCEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAgICAoRXdrVmlldzo6
RXdrVmlldyk6CisgICAgICAgIChFd2tWaWV3OjpzZXRTaXplKToKKyAgICAgICAgKEV3a1ZpZXc6
OnRyYW5zZm9ybUZyb21TY2VuZSk6CisgICAgICAgIChFd2tWaWV3Ojp0cmFuc2Zvcm1Ub1NjZW5l
KToKKyAgICAgICAgKEV3a1ZpZXc6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KToKKyAgICAgICAg
KEV3a1ZpZXc6OnBhaW50VG9DYWlyb1N1cmZhY2UpOgorICAgICAgICAoRXdrVmlldzo6ZGlzcGxh
eVRpbWVyRmlyZWQpOgorICAgICAgICAoRXdrVmlldzo6c2NoZWR1bGVVcGRhdGVEaXNwbGF5KToK
KyAgICAgICAgKEV3a1ZpZXc6OmNyZWF0ZUdMU3VyZmFjZSk6CisgICAgICAgIChFd2tWaWV3Ojpl
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKEV3a1ZpZXc6OmV4aXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAgIChFd2tWaWV3OjpoYW5kbGVFdmFz
T2JqZWN0Q2FsY3VsYXRlKToKKyAgICAgICAgKEV3a1ZpZXc6OnRha2VTbmFwc2hvdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChFd2tWaWV3KToKKyAgICAgICAgKEV3a1ZpZXc6OnNpemUpOgorICAgICAgICAoRXdr
Vmlldzo6c2V0VXNlclZpZXdwb3J0VHJhbnNmb3JtKToKKyAgICAgICAgKEV3a1ZpZXc6OnVzZXJW
aWV3cG9ydFRyYW5zZm9ybSk6CisKIDIwMTMtMDItMDggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KIAogICAgICAgICBGaXggQVNTRVJUIHdoZW4gdGhlIFdlYiBDb250ZW50IFByb2Nlc3Mg
Y3Jhc2hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApp
bmRleCBjNDUzMzEzMzQ4NjNhNTU2YWI4ZjM5NTQ3NDViMTYxMTU0MWYyNmI4Li40NWEyZTkyZjlh
NDQwMjg1ZjEwMGIzOGM3YTVjOTAzMzg2NGUwMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvQ2Fpcm9VdGlsaXRpZXNFZmwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tJbWFn
ZUNhaXJvLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAtMjQ1LDE0ICsyNDYs
MjYgQEAgRXdrVmlldzo6RXdrVmlldyhFdmFzX09iamVjdCogZXZhc09iamVjdCwgUGFzc1JlZlB0
cjxFd2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2UKICNlbmRpZgogICAgICwgbV9kaXNwbGF5VGlt
ZXIodGhpcywgJkV3a1ZpZXc6OmRpc3BsYXlUaW1lckZpcmVkKQogICAgICwgbV9pbnB1dE1ldGhv
ZENvbnRleHQoSW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGUodGhpcywgc21hcnREYXRhKCkt
PmJhc2UuZXZhcykpCi0gICAgLCBtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZCh0cnVlKQorICAgICwg
bV9pc0FjY2VsZXJhdGVkKHRydWUpCiB7CiAgICAgQVNTRVJUKG1fZXZhc09iamVjdCk7CiAgICAg
QVNTRVJUKG1fY29udGV4dCk7CiAKKyAgICBtX2V2YXNHTCA9IGFkb3B0UHRyKGV2YXNfZ2xfbmV3
KGV2YXNfb2JqZWN0X2V2YXNfZ2V0KG1fZXZhc09iamVjdCkpKTsKKyAgICBpZiAobV9ldmFzR0wp
CisgICAgICAgIG1fZXZhc0dMQ29udGV4dCA9IEV2YXNHTENvbnRleHQ6OmNyZWF0ZShtX2V2YXNH
TC5nZXQoKSk7CisKKyAgICBpZiAoIW1fZXZhc0dMQ29udGV4dCkgeworICAgICAgICBXQVJOKCJG
YWlsZWQgdG8gY3JlYXRlIEV2YXNfR0wsIGZhbGxpbmcgYmFjayB0byBzb2Z0d2FyZSBtb2RlLiIp
OworICAgICAgICBtX2lzQWNjZWxlcmF0ZWQgPSBmYWxzZTsKKyAgICB9CisKICAgICBXS1ZpZXdJ
bml0aWFsaXplKHdrVmlldygpKTsKIAotICAgIFdLUGFnZVNldFVzZUZpeGVkTGF5b3V0KHdrUGFn
ZSgpLCBiZWhhdmlvciA9PSBEZWZhdWx0QmVoYXZpb3IpOworICAgIGlmIChiZWhhdmlvciA9PSBE
ZWZhdWx0QmVoYXZpb3IpIHsKKyAgICAgICAgY29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCktPnNl
dEFjdGl2ZSh0cnVlKTsKKyAgICAgICAgV0tQYWdlU2V0VXNlRml4ZWRMYXlvdXQod2tQYWdlKCks
IHRydWUpOworICAgIH0KIAogICAgIFdLUGFnZUdyb3VwUmVmIHdrUGFnZUdyb3VwID0gV0tQYWdl
R2V0UGFnZUdyb3VwKHdrUGFnZSgpKTsKICAgICBXS1ByZWZlcmVuY2VzUmVmIHdrUHJlZmVyZW5j
ZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHdrUGFnZUdyb3VwKTsKQEAgLTQ0MSwyNCAr
NDU0LDMyIEBAIGZsb2F0IEV3a1ZpZXc6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICBy
ZXR1cm4gV0tQYWdlR2V0QmFja2luZ1NjYWxlRmFjdG9yKHdrUGFnZSgpKTsKIH0KIAotQWZmaW5l
VHJhbnNmb3JtIEV3a1ZpZXc6OnRyYW5zZm9ybUZyb21TY2VuZSgpIGNvbnN0Cit2b2lkIEV3a1Zp
ZXc6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBBZmZpbmVUcmFuc2Zvcm0g
dHJhbnNmb3JtOworICAgIG1fc2l6ZSA9IHNpemU7CiAKLSAgICAvLyBOb3RlIHRoYXQgd2UgYXBw
bHkgYm90aCBwYWdlIGFuZCBkZXZpY2Ugc2NhbGUgZmFjdG9ycy4KLSAgICB0cmFuc2Zvcm0uc2Nh
bGUoMSAvIHBhZ2VTY2FsZUZhY3RvcigpKTsKLSAgICB0cmFuc2Zvcm0uc2NhbGUoMSAvIGRldmlj
ZVNjYWxlRmFjdG9yKCkpOwotICAgIHRyYW5zZm9ybS50cmFuc2xhdGUocGFnZVBvc2l0aW9uKCku
eCgpLCBwYWdlUG9zaXRpb24oKS55KCkpOworICAgIERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdB
cmVhID0gcGFnZSgpLT5kcmF3aW5nQXJlYSgpOworICAgIGlmICghZHJhd2luZ0FyZWEpCisgICAg
ICAgIHJldHVybjsKIAotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7
Ci0gICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtc2QtPnZpZXcueCwgLXNkLT52aWV3LnkpOworICAg
IGRyYXdpbmdBcmVhLT5zZXRTaXplKG1fc2l6ZSwgSW50U2l6ZSgpKTsKKyAgICBwYWdlQ2xpZW50
KCktPnVwZGF0ZVZpZXdwb3J0U2l6ZSgpOworfQogCi0gICAgcmV0dXJuIHRyYW5zZm9ybTsKK0Fm
ZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zvcm1Gcm9tU2NlbmUoKSBjb25zdAoreworICAg
IHJldHVybiB0cmFuc2Zvcm1Ub1NjZW5lKCkuaW52ZXJzZSgpOwogfQogCiBBZmZpbmVUcmFuc2Zv
cm0gRXdrVmlldzo6dHJhbnNmb3JtVG9TY2VuZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRyYW5z
Zm9ybUZyb21TY2VuZSgpLmludmVyc2UoKTsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFu
c2Zvcm0gPSB1c2VyVmlld3BvcnRUcmFuc2Zvcm0oKTsKKworICAgIHRyYW5zZm9ybS50cmFuc2xh
dGUoLXBhZ2VQb3NpdGlvbigpLngoKSwgLXBhZ2VQb3NpdGlvbigpLnkoKSk7CisgICAgdHJhbnNm
b3JtLnNjYWxlKGRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIHRyYW5zZm9ybS5zY2FsZShwYWdl
U2NhbGVGYWN0b3IoKSk7CisKKyAgICByZXR1cm4gdHJhbnNmb3JtLnRvQWZmaW5lVHJhbnNmb3Jt
KCk7CiB9CiAKIEFmZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zvcm1Ub1NjcmVlbigpIGNv
bnN0CkBAIC01MTIsNTYgKzUzMyw2NyBAQCBpbmxpbmUgRXdrX1ZpZXdfU21hcnRfRGF0YSogRXdr
Vmlldzo6c21hcnREYXRhKCkgY29uc3QKICAgICByZXR1cm4gdG9TbWFydERhdGEobV9ldmFzT2Jq
ZWN0KTsKIH0KIAordm9pZCBFd2tWaWV3OjpwYWludFRvQ3VycmVudEdMQ29udGV4dCgpCit7Cisg
ICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKiBzY2VuZSA9IGNvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZSgpOworICAgIGlmICghc2NlbmUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1F
OiBXZSBuZWVkIHRvIGNsZWFuIHVwIHRoaXMgY29kZSBhcyBpdCBpcyBzcGxpdCBvdmVyIENvb3Jk
R2Z4IGFuZCBQYWdlLgorICAgIHNjZW5lLT5zZXREcmF3c0JhY2tncm91bmQoV0tWaWV3R2V0RHJh
d3NCYWNrZ3JvdW5kKHdrVmlldygpKSk7CisKKyAgICBGbG9hdFJlY3Qgdmlld3BvcnQgPSB1c2Vy
Vmlld3BvcnRUcmFuc2Zvcm0oKS5tYXBSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgc2l6ZSgpKSk7
CisgICAgc2NlbmUtPnBhaW50VG9DdXJyZW50R0xDb250ZXh0KHRyYW5zZm9ybVRvU2NlbmUoKS50
b1RyYW5zZm9ybWF0aW9uTWF0cml4KCksIC8qIG9wYWNpdHkgKi8gMSwgdmlld3BvcnQpOworfQor
Cit2b2lkIEV3a1ZpZXc6OnBhaW50VG9DYWlyb1N1cmZhY2UoY2Fpcm9fc3VyZmFjZV90KiBzdXJm
YWNlKQoreworICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogc2NlbmUgPSBjb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUoKTsKKyAgICBpZiAoIXNjZW5lKQorICAgICAgICByZXR1cm47CisKKyAg
ICBSZWZQdHI8Y2Fpcm9fdD4gZ3JhcGhpY3NDb250ZXh0ID0gYWRvcHRSZWYoY2Fpcm9fY3JlYXRl
KHN1cmZhY2UpKTsKKworICAgIGNhaXJvX3RyYW5zbGF0ZShncmFwaGljc0NvbnRleHQuZ2V0KCks
IC0gcGFnZVBvc2l0aW9uKCkueCgpLCAtIHBhZ2VQb3NpdGlvbigpLnkoKSk7CisgICAgY2Fpcm9f
c2NhbGUoZ3JhcGhpY3NDb250ZXh0LmdldCgpLCBwYWdlU2NhbGVGYWN0b3IoKSwgcGFnZVNjYWxl
RmFjdG9yKCkpOworICAgIGNhaXJvX3NjYWxlKGdyYXBoaWNzQ29udGV4dC5nZXQoKSwgZGV2aWNl
U2NhbGVGYWN0b3IoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisKKyAgICBzY2VuZS0+cGFpbnRU
b0dyYXBoaWNzQ29udGV4dChncmFwaGljc0NvbnRleHQuZ2V0KCkpOworfQorCiB2b2lkIEV3a1Zp
ZXc6OmRpc3BsYXlUaW1lckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKIHsKICAgICBFd2tfVmlld19T
bWFydF9EYXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwogCiAgICAgaWYgKG1fcGVuZGluZ1N1cmZhY2VS
ZXNpemUpIHsKICAgICAgICAgLy8gQ3JlYXRlIGEgR0wgc3VyZmFjZSBoZXJlIHNvIHRoYXQgRXZh
cyBoYXMgbm8gY2hhbmNlIG9mIHBhaW50aW5nIHRvIGFuIGVtcHR5IEdMIHN1cmZhY2UuCi0gICAg
ICAgIGlmICghY3JlYXRlR0xTdXJmYWNlKEludFNpemUoc2QtPnZpZXcudywgc2QtPnZpZXcuaCkp
KQorICAgICAgICBpZiAoIWNyZWF0ZUdMU3VyZmFjZSgpKQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIG1fcGVuZGluZ1N1cmZhY2VSZXNpemUgPSBmYWxzZTsKICAgICB9CiAKLSAgICBl
dmFzX2dsX21ha2VfY3VycmVudChtX2V2YXNHTC5nZXQoKSwgbV9ldmFzR0xTdXJmYWNlLT5zdXJm
YWNlKCksIG1fZXZhc0dMQ29udGV4dC0+Y29udGV4dCgpKTsKLQotICAgIC8vIFdlIGFyZSBzdXBw
b3NlZCB0byBjbGlwIHRvIHRoZSBhY3R1YWwgdmlld3BvcnQsIG5vdGhpbmcgbGVzcy4KLSAgICBJ
bnRSZWN0IHZpZXdwb3J0KHNkLT52aWV3LngsIHNkLT52aWV3LnksIHNkLT52aWV3LncsIHNkLT52
aWV3LmgpOwotCi0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKiBzY2VuZSA9IGNvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZSgpOwotICAgIGlmICghc2NlbmUpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHNjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7Ci0gICAgc2NlbmUtPnNldERyYXdzQmFja2dyb3Vu
ZChXS1ZpZXdHZXREcmF3c0JhY2tncm91bmQod2tWaWV3KCkpKTsKLQotICAgIGlmIChtX2lzSGFy
ZHdhcmVBY2NlbGVyYXRlZCkgewotICAgICAgICBzY2VuZS0+cGFpbnRUb0N1cnJlbnRHTENvbnRl
eHQodHJhbnNmb3JtVG9TY2VuZSgpLnRvVHJhbnNmb3JtYXRpb25NYXRyaXgoKSwgLyogb3BhY2l0
eSAqLyAxLCB2aWV3cG9ydCk7Ci0gICAgICAgIC8vIHNkLT5pbWFnZSBpcyB0aWVkIHRvIGEgbmF0
aXZlIHN1cmZhY2UuIFRoZSBuYXRpdmUgc3VyZmFjZSBpcyBpbiB0aGUgcGFyZW50J3MgY29vcmRp
bmF0ZXMsCi0gICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gYWNjb3VudCBmb3IgdGhlIHZpZXdwb3J0
IHBvc2l0aW9uIHdoZW4gY2FsbGluZyBldmFzX29iamVjdF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQu
Ci0gICAgICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIHZp
ZXdwb3J0LngoKSwgdmlld3BvcnQueSgpLCB2aWV3cG9ydC53aWR0aCgpLCB2aWV3cG9ydC5oZWln
aHQoKSk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAoIW1faXNBY2NlbGVyYXRlZCkgewogICAgICAg
ICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gY3JlYXRlU3VyZmFjZUZvckltYWdl
KHNkLT5pbWFnZSk7CiAgICAgICAgIGlmICghc3VyZmFjZSkKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBSZWZQdHI8Y2Fpcm9fdD4gZ3JhcGhpY3NDb250ZXh0ID0gYWRvcHRSZWYoY2Fp
cm9fY3JlYXRlKHN1cmZhY2UuZ2V0KCkpKTsKLSAgICAgICAgY2Fpcm9fdHJhbnNsYXRlKGdyYXBo
aWNzQ29udGV4dC5nZXQoKSwgLSBwYWdlUG9zaXRpb24oKS54KCksIC0gcGFnZVBvc2l0aW9uKCku
eSgpKTsKLSAgICAgICAgY2Fpcm9fc2NhbGUoZ3JhcGhpY3NDb250ZXh0LmdldCgpLCBwYWdlU2Nh
bGVGYWN0b3IoKSwgcGFnZVNjYWxlRmFjdG9yKCkpOwotICAgICAgICBjYWlyb19zY2FsZShncmFw
aGljc0NvbnRleHQuZ2V0KCksIGRldmljZVNjYWxlRmFjdG9yKCksIGRldmljZVNjYWxlRmFjdG9y
KCkpOwotICAgICAgICBzY2VuZS0+cGFpbnRUb0dyYXBoaWNzQ29udGV4dChncmFwaGljc0NvbnRl
eHQuZ2V0KCkpOwotICAgICAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3VwZGF0ZV9hZGQoc2Qt
PmltYWdlLCAwLCAwLCB2aWV3cG9ydC53aWR0aCgpLCB2aWV3cG9ydC5oZWlnaHQoKSk7CisgICAg
ICAgIHBhaW50VG9DYWlyb1N1cmZhY2Uoc3VyZmFjZS5nZXQoKSk7CisgICAgICAgIGV2YXNfb2Jq
ZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIDAsIDAsIHNkLT52aWV3LncsIHNk
LT52aWV3LmgpOworICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgZXZhc19nbF9tYWtlX2N1
cnJlbnQobV9ldmFzR0wuZ2V0KCksIG1fZXZhc0dMU3VyZmFjZS0+c3VyZmFjZSgpLCBtX2V2YXNH
TENvbnRleHQtPmNvbnRleHQoKSk7CisKKyAgICBwYWludFRvQ3VycmVudEdMQ29udGV4dCgpOwor
CisgICAgLy8gc2QtPmltYWdlIGlzIHRpZWQgdG8gYSBuYXRpdmUgc3VyZmFjZSwgd2hpY2ggaXMg
aW4gdGhlIHBhcmVudCdzIGNvb3JkaW5hdGVzLgorICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFf
dXBkYXRlX2FkZChzZC0+aW1hZ2UsIHNkLT52aWV3LngsIHNkLT52aWV3LnksIHNkLT52aWV3Lncs
IHNkLT52aWV3LmgpOwogfQogCiB2b2lkIEV3a1ZpZXc6OnNjaGVkdWxlVXBkYXRlRGlzcGxheSgp
CiB7Ci0gICAgLy8gQ29vcmRpbmF0ZWQgZ3JhcGhpY2VzIG5lZWRzIHRvIHNjaGVkdWxlIGFuIGZ1
bGwgdXBkYXRlLCBub3QKLSAgICAvLyByZXBhaW50aW5nIG9mIGEgcmVnaW9uLiBVcGRhdGUgaW4g
dGhlIGV2ZW50IGxvb3AuCi0gICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEo
KTsKLSAgICAvLyBHdWFyZCBmb3IgemVybyBzaXplZCB2aWV3cG9ydC4KLSAgICBpZiAoIShzZC0+
dmlldy53ICYmIHNkLT52aWV3LmgpKQorICAgIGlmIChzaXplKCkuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoIW1fZGlzcGxheVRpbWVyLmlzQWN0aXZlKCkpCkBAIC02MzQs
MTMgKzY2Niw2IEBAIHZvaWQgRXdrVmlldzo6c2V0SW1hZ2VEYXRhKHZvaWQqIGltYWdlRGF0YSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX2NvcHlfc2V0
KHNkLT5pbWFnZSwgaW1hZ2VEYXRhKTsKIH0KIAotSW50U2l6ZSBFd2tWaWV3OjpzaXplKCkgY29u
c3QKLXsKLSAgICBpbnQgd2lkdGgsIGhlaWdodDsKLSAgICBldmFzX29iamVjdF9nZW9tZXRyeV9n
ZXQobV9ldmFzT2JqZWN0LCAwLCAwLCAmd2lkdGgsICZoZWlnaHQpOwotICAgIHJldHVybiBJbnRT
aXplKHdpZHRoLCBoZWlnaHQpOwotfQotCiBib29sIEV3a1ZpZXc6OmlzRm9jdXNlZCgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGV2YXNfb2JqZWN0X2ZvY3VzX2dldChtX2V2YXNPYmplY3QpOwpAQCAt
NzY0LDMyICs3ODksMTIgQEAgdm9pZCBFd2tWaWV3OjppbmZvcm1JY29uQ2hhbmdlKCkKICAgICBz
bWFydENhbGxiYWNrPEljb25DaGFuZ2VkPigpLmNhbGwoKTsKIH0KIAotYm9vbCBFd2tWaWV3Ojpj
cmVhdGVHTFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgdmlld1NpemUpCitib29sIEV3a1ZpZXc6OmNy
ZWF0ZUdMU3VyZmFjZSgpCiB7Ci0gICAgaWYgKCFtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZCkKKyAg
ICBpZiAoIW1faXNBY2NlbGVyYXRlZCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAo
IW1fZXZhc0dMKSB7Ci0gICAgICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVjdF9ldmFzX2dldCht
X2V2YXNPYmplY3QpOwotICAgICAgICBtX2V2YXNHTCA9IGFkb3B0UHRyKGV2YXNfZ2xfbmV3KGV2
YXMpKTsKLSAgICAgICAgaWYgKCFtX2V2YXNHTCkgewotICAgICAgICAgICAgV0FSTigiRmFpbGVk
IHRvIGNyZWF0ZSBFdmFzX0dMLCBmYWxsaW5nIGJhY2sgdG8gc29mdHdhcmUgbW9kZS4iKTsKLSAg
ICAgICAgICAgIG1faXNIYXJkd2FyZUFjY2VsZXJhdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIW1fZXZhc0dMQ29udGV4
dCkgewotICAgICAgICBtX2V2YXNHTENvbnRleHQgPSBFdmFzR0xDb250ZXh0OjpjcmVhdGUobV9l
dmFzR0wuZ2V0KCkpOwotICAgICAgICBpZiAoIW1fZXZhc0dMQ29udGV4dCkgewotICAgICAgICAg
ICAgV0FSTigiRmFpbGVkIHRvIGNyZWF0ZSBHTENvbnRleHQuIik7Ci0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBz
ZCA9IHNtYXJ0RGF0YSgpOwotCi0gICAgRXZhc19HTF9Db25maWcgZXZhc0dMQ29uZmlnID0gewor
ICAgIHN0YXRpYyBFdmFzX0dMX0NvbmZpZyBldmFzR0xDb25maWcgPSB7CiAgICAgICAgIEVWQVNf
R0xfUkdCQV84ODg4LAogICAgICAgICBFVkFTX0dMX0RFUFRIX0JJVF84LAogICAgICAgICBFVkFT
X0dMX1NURU5DSUxfTk9ORSwKQEAgLTc5NywxOSArODAyLDIxIEBAIGJvb2wgRXdrVmlldzo6Y3Jl
YXRlR0xTdXJmYWNlKGNvbnN0IEludFNpemUmIHZpZXdTaXplKQogICAgICAgICBFVkFTX0dMX01V
TFRJU0FNUExFX05PTkUKICAgICB9OwogCi0gICAgLy8gUmVwbGFjZXMgaWYgbm9uLW51bGwsIGFu
ZCBmcmVlcyBleGlzdGluZyBzdXJmYWNlIGFmdGVyIChPd25QdHIpLgotICAgIG1fZXZhc0dMU3Vy
ZmFjZSA9IEV2YXNHTFN1cmZhY2U6OmNyZWF0ZShtX2V2YXNHTC5nZXQoKSwgJmV2YXNHTENvbmZp
Zywgdmlld1NpemUpOworICAgIC8vIFJlY3JlYXRlIHRvIGN1cnJlbnQgc2l6ZTogUmVwbGFjZXMg
aWYgbm9uLW51bGwsIGFuZCBmcmVlcyBleGlzdGluZyBzdXJmYWNlIGFmdGVyIChPd25QdHIpLgor
ICAgIG1fZXZhc0dMU3VyZmFjZSA9IEV2YXNHTFN1cmZhY2U6OmNyZWF0ZShtX2V2YXNHTC5nZXQo
KSwgJmV2YXNHTENvbmZpZywgc2l6ZSgpKTsKICAgICBpZiAoIW1fZXZhc0dMU3VyZmFjZSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgRXZhc19OYXRpdmVfU3VyZmFjZSBuYXRpdmVTdXJm
YWNlOwogICAgIGV2YXNfZ2xfbmF0aXZlX3N1cmZhY2VfZ2V0KG1fZXZhc0dMLmdldCgpLCBtX2V2
YXNHTFN1cmZhY2UtPnN1cmZhY2UoKSwgJm5hdGl2ZVN1cmZhY2UpOwotICAgIGV2YXNfb2JqZWN0
X2ltYWdlX25hdGl2ZV9zdXJmYWNlX3NldChzZC0+aW1hZ2UsICZuYXRpdmVTdXJmYWNlKTsKKyAg
ICBldmFzX29iamVjdF9pbWFnZV9uYXRpdmVfc3VyZmFjZV9zZXQoc21hcnREYXRhKCktPmltYWdl
LCAmbmF0aXZlU3VyZmFjZSk7CiAKICAgICBldmFzX2dsX21ha2VfY3VycmVudChtX2V2YXNHTC5n
ZXQoKSwgbV9ldmFzR0xTdXJmYWNlLT5zdXJmYWNlKCksIG1fZXZhc0dMQ29udGV4dC0+Y29udGV4
dCgpKTsKIAogICAgIEV2YXNfR0xfQVBJKiBnbCA9IGV2YXNfZ2xfYXBpX2dldChtX2V2YXNHTC5n
ZXQoKSk7Ci0gICAgZ2wtPmdsVmlld3BvcnQoMCwgMCwgdmlld1NpemUud2lkdGgoKSArIHNkLT52
aWV3LngsIHZpZXdTaXplLmhlaWdodCgpICsgc2QtPnZpZXcueSk7CisKKyAgICBJbnRQb2ludCBi
b3VuZHNFbmQgPSB1c2VyVmlld3BvcnRUcmFuc2Zvcm0oKS5tYXBQb2ludChJbnRQb2ludChzaXpl
KCkpKTsKKyAgICBnbC0+Z2xWaWV3cG9ydCgwLCAwLCBib3VuZHNFbmQueCgpLCBib3VuZHNFbmQu
eSgpKTsKICAgICBnbC0+Z2xDbGVhckNvbG9yKDEuMCwgMS4wLCAxLjAsIDApOwogICAgIGdsLT5n
bENsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpOwogCkBAIC04MTgsMTYgKzgyNSwxNSBAQCBib29s
IEV3a1ZpZXc6OmNyZWF0ZUdMU3VyZmFjZShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSkKIAogYm9v
bCBFd2tWaWV3OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKLSAgICBjb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUoKS0+c2V0QWN0aXZlKHRydWUpOworICAgIENvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZSogc2NlbmUgPSBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsKKyAgICBp
ZiAoIXNjZW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIW1faXNIYXJkd2Fy
ZUFjY2VsZXJhdGVkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBzY2VuZS0+c2V0QWN0aXZl
KHRydWUpOwogCi0gICAgaWYgKCFtX2V2YXNHTFN1cmZhY2UpIHsKLSAgICAgICAgaWYgKCFjcmVh
dGVHTFN1cmZhY2Uoc2l6ZSgpKSkgewotICAgICAgICAgICAgV0FSTigiRmFpbGVkIHRvIGNyZWF0
ZSBHTFN1cmZhY2UuIik7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KKyAg
ICBpZiAobV9pc0FjY2VsZXJhdGVkICYmICFtX2V2YXNHTFN1cmZhY2UgJiYgIWNyZWF0ZUdMU3Vy
ZmFjZSgpKSB7CisgICAgICAgIFdBUk4oIkZhaWxlZCB0byBjcmVhdGUgR0xTdXJmYWNlLiIpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC04MzUs
NiArODQxLDExIEBAIGJvb2wgRXdrVmlldzo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSgpCiAKIGJvb2wgRXdrVmlldzo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsK
KyAgICBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUqIHNjZW5lID0gY29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lKCk7CisgICAgaWYgKCFzY2VuZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
c2NlbmUtPnNldEFjdGl2ZShmYWxzZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTExNDYs
OCArMTE1Nyw3IEBAIHZvaWQgRXdrVmlldzo6aGFuZGxlRXZhc09iamVjdENhbGN1bGF0ZShFdmFz
X09iamVjdCogZXZhc09iamVjdCkKICAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzbWFydERhdGEg
PSB0b1NtYXJ0RGF0YShldmFzT2JqZWN0KTsKICAgICBBU1NFUlQoc21hcnREYXRhKTsKIAotICAg
IEV3a1ZpZXcqIHZpZXcgPSB0b0V3a1ZpZXcoc21hcnREYXRhKTsKLSAgICBBU1NFUlQodmlldyk7
CisgICAgRXdrVmlldyogc2VsZiA9IHRvRXdrVmlldyhzbWFydERhdGEpOwogCiAgICAgc21hcnRE
YXRhLT5jaGFuZ2VkLmFueSA9IGZhbHNlOwogCkBAIC0xMTU5LDYgKzExNjksOCBAQCB2b2lkIEV3
a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDYWxjdWxhdGUoRXZhc19PYmplY3QqIGV2YXNPYmplY3Qp
CiAgICAgICAgIHNtYXJ0RGF0YS0+dmlldy54ID0geDsKICAgICAgICAgc21hcnREYXRhLT52aWV3
LnkgPSB5OwogICAgICAgICBldmFzX29iamVjdF9tb3ZlKHNtYXJ0RGF0YS0+aW1hZ2UsIHgsIHkp
OworCisgICAgICAgIHNlbGYtPnNldFVzZXJWaWV3cG9ydFRyYW5zZm9ybShUcmFuc2Zvcm1hdGlv
bk1hdHJpeCgpLnRyYW5zbGF0ZSh4LCB5KSk7CiAgICAgfQogCiAgICAgaWYgKHNtYXJ0RGF0YS0+
Y2hhbmdlZC5zaXplKSB7CkBAIC0xMTY2LDExICsxMTc4LDggQEAgdm9pZCBFd2tWaWV3OjpoYW5k
bGVFdmFzT2JqZWN0Q2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0KQogICAgICAgICBz
bWFydERhdGEtPnZpZXcudyA9IHdpZHRoOwogICAgICAgICBzbWFydERhdGEtPnZpZXcuaCA9IGhl
aWdodDsKIAotICAgICAgICBpZiAodmlldy0+cGFnZSgpLT5kcmF3aW5nQXJlYSgpKQotICAgICAg
ICAgICAgdmlldy0+cGFnZSgpLT5kcmF3aW5nQXJlYSgpLT5zZXRTaXplKEludFNpemUod2lkdGgs
IGhlaWdodCksIEludFNpemUoKSk7Ci0KLSAgICAgICAgdmlldy0+c2V0TmVlZHNTdXJmYWNlUmVz
aXplKCk7Ci0gICAgICAgIHZpZXctPnBhZ2VDbGllbnQoKS0+dXBkYXRlVmlld3BvcnRTaXplKCk7
CisgICAgICAgIHNlbGYtPnNldFNpemUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CisgICAgICAg
IHNlbGYtPnNldE5lZWRzU3VyZmFjZVJlc2l6ZSgpOwogICAgIH0KIH0KIApAQCAtMTMzNSw3ICsx
MzQ0LDcgQEAgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IEV3a1ZpZXc6OnRha2VTbmFwc2hv
dCgpCiAgICAgICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7CiAKICAgICBFd2tfVmlld19T
bWFydF9EYXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwotICAgIGlmICghbV9pc0hhcmR3YXJlQWNjZWxl
cmF0ZWQpIHsKKyAgICBpZiAoIW1faXNBY2NlbGVyYXRlZCkgewogICAgICAgICBSZWZQdHI8Y2Fp
cm9fc3VyZmFjZV90PiBzbmFwc2hvdCA9IGNyZWF0ZVN1cmZhY2VGb3JJbWFnZShzZC0+aW1hZ2Up
OwogICAgICAgICAvLyBSZXN1bWUgYWxsIGFuaW1hdGlvbnMuCiAgICAgICAgIFdLVmlld1Jlc3Vt
ZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKHdrVmlldygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCA5YWRmYjBmOTRmMzU4NTZiMGNjZjY0
ZmE0ZDYwM2YwZDY5OWNjMTExLi5kYjI5MDk4OTE5NjdhNGM2ZDNiNmMwY2NjODRiOTg4ZTdjYjJj
YWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oCkBAIC01
Miw2ICs1Miw4IEBACiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiV2ViUHJl
ZmVyZW5jZXMuaCIKIAordHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3N1cmZhY2UgY2Fpcm9fc3VyZmFj
ZV90OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50RWZsOwog
Y2xhc3MgRmluZENsaWVudEVmbDsKQEAgLTc1LDYgKzc3LDcgQEAgY2xhc3MgVmlicmF0aW9uQ2xp
ZW50RWZsOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07Citj
bGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIGNsYXNzIENvbG9yOwogY2xhc3MgQ3Vyc29yOwog
Y2xhc3MgSW50U2l6ZTsKQEAgLTEyMiwxNyArMTI1LDI2IEBAIHB1YmxpYzoKICAgICBFd2tCYWNr
Rm9yd2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdCgpIHsgcmV0dXJuIG1fYmFja0ZvcndhcmRMaXN0
LmdldCgpOyB9CiAgICAgRXdrV2luZG93RmVhdHVyZXMqIHdpbmRvd0ZlYXR1cmVzKCk7CiAKLSAg
ICBXZWJDb3JlOjpJbnRTaXplIHNpemUoKSBjb25zdDsKICAgICBib29sIGlzRm9jdXNlZCgpIGNv
bnN0OwogICAgIGJvb2wgaXNWaXNpYmxlKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldERldmljZVNj
YWxlRmFjdG9yKGZsb2F0IHNjYWxlKTsKICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNv
bnN0OwogCisgICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICBX
ZWJDb3JlOjpJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7IH0KKworICAgIHZv
aWQgc2V0VXNlclZpZXdwb3J0VHJhbnNmb3JtKGNvbnN0IFdlYkNvcmU6OlRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0cmFuc2Zvcm0pIHsgbV91c2VyVmlld3BvcnRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm07
IH0KKyAgICBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCB1c2VyVmlld3BvcnRUcmFuc2Zv
cm0oKSBjb25zdCB7IHJldHVybiBtX3VzZXJWaWV3cG9ydFRyYW5zZm9ybTsgfQorCisgICAgLy8g
RklYTUU6IENvbnZlcnQgdG8gVHJhbnNmb3JtYXRpb25NYXRyaXguCiAgICAgV2ViQ29yZTo6QWZm
aW5lVHJhbnNmb3JtIHRyYW5zZm9ybVRvU2NlbmUoKSBjb25zdDsKICAgICBXZWJDb3JlOjpBZmZp
bmVUcmFuc2Zvcm0gdHJhbnNmb3JtRnJvbVNjZW5lKCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6QWZm
aW5lVHJhbnNmb3JtIHRyYW5zZm9ybVRvU2NyZWVuKCkgY29uc3Q7CiAKKyAgICB2b2lkIHBhaW50
VG9DdXJyZW50R0xDb250ZXh0KCk7CisgICAgdm9pZCBwYWludFRvQ2Fpcm9TdXJmYWNlKGNhaXJv
X3N1cmZhY2VfdCopOworCiAgICAgY29uc3QgY2hhciogdXJsKCkgY29uc3QgeyByZXR1cm4gbV91
cmw7IH0KICAgICBjb25zdCBjaGFyKiBmYXZpY29uVVJMKCkgY29uc3QgeyByZXR1cm4gbV9mYXZp
Y29uVVJMOyB9CiAgICAgY29uc3QgY2hhciogdGl0bGUoKSBjb25zdDsKQEAgLTE2Myw3ICsxNzUs
NyBAQCBwdWJsaWM6CiAgICAgV0tSZWN0IHdpbmRvd0dlb21ldHJ5KCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRXaW5kb3dHZW9tZXRyeShjb25zdCBXS1JlY3QmKTsKIAotICAgIGJvb2wgY3JlYXRlR0xT
dXJmYWNlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHZpZXdTaXplKTsKKyAgICBib29sIGNyZWF0
ZUdMU3VyZmFjZSgpOwogICAgIGJvb2wgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgp
OwogICAgIGJvb2wgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CiAgICAgdm9pZCBz
ZXROZWVkc1N1cmZhY2VSZXNpemUoKSB7IG1fcGVuZGluZ1N1cmZhY2VSZXNpemUgPSB0cnVlOyB9
CkBAIC0xNzgsNyArMTkwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXF1ZXN0UG9wdXBNZW51
KFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlFZmwqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
V2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3RvciwgY29uc3QgVmVj
dG9yPFdlYktpdDo6V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGludDMyX3Qgc2VsZWN0ZWRJbmRleCk7
CiAgICAgdm9pZCBjbG9zZVBvcHVwTWVudSgpOwotICAgIAorCiAgICAgdm9pZCBzaG93Q29udGV4
dE1lbnUoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5RWZsKiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8V2ViS2l0OjpXZWJDb250ZXh0TWVudUl0ZW1E
YXRhPiYgaXRlbXMpOwogICAgIHZvaWQgaGlkZUNvbnRleHRNZW51KCk7CiAKQEAgLTIwNyw4ICsy
MTksNiBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IG5lZWRzIHJlZmFjdG9yaW5nIChzcGxpdCBj
YWxsYmFjayBpbnZva2UpCiAgICAgdm9pZCBpbmZvcm1VUkxDaGFuZ2UoKTsKIAotICAgIGJvb2wg
aXNIYXJkd2FyZUFjY2VsZXJhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0hhcmR3YXJlQWNjZWxl
cmF0ZWQ7IH0KLQogICAgIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiB0YWtlU25hcHNob3Qo
KTsKIAogcHJpdmF0ZToKQEAgLTI1OCw2ICsyNjgsOCBAQCBwcml2YXRlOgogICAgIE93blB0cjxF
dmFzX0dMPiBtX2V2YXNHTDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xDb250ZXh0PiBtX2V2
YXNHTENvbnRleHQ7CiAgICAgT3duUHRyPFdlYktpdDo6RXZhc0dMU3VyZmFjZT4gbV9ldmFzR0xT
dXJmYWNlOworICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOworICAgIFdlYkNvcmU6OlRyYW5z
Zm9ybWF0aW9uTWF0cml4IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtOwogICAgIGJvb2wgbV9wZW5k
aW5nU3VyZmFjZVJlc2l6ZTsKICAgICBPd25QdHI8V2ViS2l0OjpQYWdlQ2xpZW50QmFzZT4gbV9w
YWdlQ2xpZW50OwogICAgIFJlZlB0cjxXZWJLaXQ6OldlYlZpZXc+IG1fd2ViVmlldzsKQEAgLTI5
Miw3ICszMDQsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAg
IE93blB0cjxFd2tDb2xvclBpY2tlcj4gbV9jb2xvclBpY2tlcjsKICNlbmRpZgotICAgIGJvb2wg
bV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQ7CisgICAgYm9vbCBtX2lzQWNjZWxlcmF0ZWQ7CiAKICAg
ICBzdGF0aWMgRXZhc19TbWFydF9DbGFzcyBwYXJlbnRTbWFydENsYXNzOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187591</attachid>
            <date>2013-02-11 08:53:39 -0800</date>
            <delta_ts>2013-02-12 08:25:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109377-20130211175014.patch</filename>
            <type>text/plain</type>
            <size>18335</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTdhZDFkMTgyMmU5OTA3
Y2FmMGFiMzZhYjVmMmYwZjE3MTYyOTAyNy4uZTk1ZmFhMDA4MDI0N2JmMDk4MzUwODU0YTE4MTNm
OWU0YjA4MGU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTAyLTExICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBb
V0syXVtFRkxdIENsZWFudXAgb2YgZ3JhcGhpY3MgcmVsYXRlZCBjb2RlIGluIEV3a1ZpZXcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChFd2tWaWV3OjpFd2tWaWV3KToKKworICAg
ICAgICAgICAgSW5pdGlhbGl6ZSB0aGUgZXZhc0dMIGRlcGVuZGVuY2llcyBoZXJlIGFuZAorICAg
ICAgICAgICAgc2V0IG1faXNBY2NlbGVyYXRlZCB0byBmYWxzZSBpZiB0aGlzIGZhaWxzLgorCisg
ICAgICAgICAgICBTZXQgdGhlIGNvb3JkaW5hdGVkIGdyYXBoaWNzIHNjZW5lIGFzIGFjdGl2ZQor
ICAgICAgICAgICAgd2hlbiB1c2luZyBmaXhlZCBsYXlvdXQuCisKKyAgICAgICAgKEV3a1ZpZXc6
OnNldFNpemUpOgorCisgICAgICAgICAgICBBZGQgYSBtZXRob2QgdG8gc2V0IHRoZSBzaXplIGFu
ZCB1c2VyLXZpZXdwb3J0CisgICAgICAgICAgICB0cmFuc2Zvcm0gZnJvbSB0aGUgb3V0c2lkZS4g
VGhlIGlkZWEgaXMgbW92aW5nCisgICAgICAgICAgICB0aGlzIHRvIG91ciBwdXJlIFdLIEMgQVBJ
IGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgKEV3a1ZpZXc6OnRyYW5zZm9ybUZyb21TY2VuZSk6
CisgICAgICAgIChFd2tWaWV3Ojp0cmFuc2Zvcm1Ub1NjZW5lKToKKworICAgICAgICAgICAgVXBk
YXRlIHRoZSB0cmFuc2Zvcm0gbWV0aG9kcyB0byB1c2UgdGhlIHVzZXItCisgICAgICAgICAgICB2
aWV3cG9ydCB0cmFuc2Zvcm0uCisKKyAgICAgICAgKEV3a1ZpZXc6OnBhaW50VG9DdXJyZW50R0xD
b250ZXh0KToKKyAgICAgICAgKEV3a1ZpZXc6OnBhaW50VG9DYWlyb1N1cmZhY2UpOgorCisgICAg
ICAgICAgICBBZGQgbWV0aG9kcyB0byBwYWludCB0byBlaXRoZXIgdGhlIGN1cnJlbnQgR0wgY29u
dGV4dAorICAgICAgICAgICAgb3IgdG8gYSBnaXZlbiBjYWlyb19zdXJmYWNlX3QgKGZvciBzb2Z0
d2FyZSBmYWxsYmFjaworICAgICAgICAgICAgY2FzZXMpLgorCisgICAgICAgIChFd2tWaWV3Ojpk
aXNwbGF5VGltZXJGaXJlZCk6CisKKyAgICAgICAgICAgIENsZWFuIHVwIGFuZCB1c2UgdGhlIHR3
byBhYm92ZSBtZXRob2RzLgorCisgICAgICAgIChFd2tWaWV3OjpzY2hlZHVsZVVwZGF0ZURpc3Bs
YXkpOgorCisgICAgICAgICAgICBVc2UgdGhlIG5ldyBzaXplKCkgbWV0aG9kcyBpbnN0ZWFkIG9m
IHVzaW5nIHRoZSAKKyAgICAgICAgICAgIHNtYXJ0LW9iamVjdCBkYXRhIGRpcmVjdGx5LgorCisg
ICAgICAgIChFd2tWaWV3OjpjcmVhdGVHTFN1cmZhY2UpOgorCisgICAgICAgICAgICBNYWtlIHRo
aXMgbWV0aG9kIHVzZSBzaXplKCkgdG8gcXVlcnkgdGhlIHN1cmZhY2Ugc2l6ZQorICAgICAgICAg
ICAgYW5kIGF2b2lkIGNyZWF0aW5nIHRoZSBjb250ZXh0IChkb25lIGluIGN0b3Igbm93KS4KKyAg
ICAgICAgICAgIEFsc28gYXZvaWQgdXNpbmcgdGhlIHNtYXJ0LW9iamVjdCBkYXRhIGRpcmVjdGx5
LgorCisgICAgICAgIChFd2tWaWV3OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToK
KyAgICAgICAgKEV3a1ZpZXc6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisKKyAg
ICAgICAgICAgIFR1cm4gb24vb2ZmIHRoZSB1c2Ugb2YgdGhlIGNvb3JkLiBncmFwaGljcyBzY2Vu
ZS4KKworICAgICAgICAoRXdrVmlldzo6aGFuZGxlRXZhc09iamVjdENhbGN1bGF0ZSk6CisKKyAg
ICAgICAgICAgIFVzZSB0aGUgbmV3IHNldFNpemUgYW5kIHNldFVzZXJWaWV3cG9ydFRyYW5zZm9y
bS4KKworICAgICAgICAoRXdrVmlldzo6dGFrZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9Fd2tWaWV3Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEV3a1Zp
ZXcpOgorICAgICAgICAoRXdrVmlldzo6c2l6ZSk6CisgICAgICAgIChFd2tWaWV3OjpzZXRVc2Vy
Vmlld3BvcnRUcmFuc2Zvcm0pOgorICAgICAgICAoRXdrVmlldzo6dXNlclZpZXdwb3J0VHJhbnNm
b3JtKToKKworICAgICAgICAgICAgQWRkIHRoZSBuZXcgbWV0aG9kIGRlZmluaXRpb25zIGFuZCBy
ZW5hbWUgaXNIYXJkd2FyZUFjY2VsZXJhdGVkCisgICAgICAgICAgICB0byBpc0FjY2VsZXJhdGVk
IHdoaWNoIGZpdHMgYmV0dGVyIHdpdGggdGhlIG5hbWluZyBpbiBXZWJDb3JlLgorCiAyMDEzLTAy
LTEwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSB0aGUgUGx1
Zy1pbiBYUENTZXJ2aWNlIGJ1aWxkIHdvcmsgZXZlbiB3aGVuIGJ1aWxkaW5nIGluIFhjb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IGM0NTMz
MTMzNDg2M2E1NTZhYjhmMzk1NDc0NWIxNjExNTQxZjI2YjguLjQ1YTJlOTJmOWE0NDAyODVmMTAw
YjM4YzdhNWM5MDMzODY0ZTAyMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL0V3a1ZpZXcuY3BwCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWly
b1V0aWxpdGllc0VmbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Ry
YW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0ltYWdlQ2Fpcm8uaD4K
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC0yNDUsMTQgKzI0NiwyNiBAQCBFd2tW
aWV3OjpFd2tWaWV3KEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0LCBQYXNzUmVmUHRyPEV3a0NvbnRl
eHQ+IGNvbnRleHQsIFdLUGFnZQogI2VuZGlmCiAgICAgLCBtX2Rpc3BsYXlUaW1lcih0aGlzLCAm
RXdrVmlldzo6ZGlzcGxheVRpbWVyRmlyZWQpCiAgICAgLCBtX2lucHV0TWV0aG9kQ29udGV4dChJ
bnB1dE1ldGhvZENvbnRleHRFZmw6OmNyZWF0ZSh0aGlzLCBzbWFydERhdGEoKS0+YmFzZS5ldmFz
KSkKLSAgICAsIG1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKHRydWUpCisgICAgLCBtX2lzQWNjZWxl
cmF0ZWQodHJ1ZSkKIHsKICAgICBBU1NFUlQobV9ldmFzT2JqZWN0KTsKICAgICBBU1NFUlQobV9j
b250ZXh0KTsKIAorICAgIG1fZXZhc0dMID0gYWRvcHRQdHIoZXZhc19nbF9uZXcoZXZhc19vYmpl
Y3RfZXZhc19nZXQobV9ldmFzT2JqZWN0KSkpOworICAgIGlmIChtX2V2YXNHTCkKKyAgICAgICAg
bV9ldmFzR0xDb250ZXh0ID0gRXZhc0dMQ29udGV4dDo6Y3JlYXRlKG1fZXZhc0dMLmdldCgpKTsK
KworICAgIGlmICghbV9ldmFzR0xDb250ZXh0KSB7CisgICAgICAgIFdBUk4oIkZhaWxlZCB0byBj
cmVhdGUgRXZhc19HTCwgZmFsbGluZyBiYWNrIHRvIHNvZnR3YXJlIG1vZGUuIik7CisgICAgICAg
IG1faXNBY2NlbGVyYXRlZCA9IGZhbHNlOworICAgIH0KKwogICAgIFdLVmlld0luaXRpYWxpemUo
d2tWaWV3KCkpOwogCi0gICAgV0tQYWdlU2V0VXNlRml4ZWRMYXlvdXQod2tQYWdlKCksIGJlaGF2
aW9yID09IERlZmF1bHRCZWhhdmlvcik7CisgICAgaWYgKGJlaGF2aW9yID09IERlZmF1bHRCZWhh
dmlvcikgeworICAgICAgICBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKS0+c2V0QWN0aXZlKHRy
dWUpOworICAgICAgICBXS1BhZ2VTZXRVc2VGaXhlZExheW91dCh3a1BhZ2UoKSwgdHJ1ZSk7Cisg
ICAgfQogCiAgICAgV0tQYWdlR3JvdXBSZWYgd2tQYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3Jv
dXAod2tQYWdlKCkpOwogICAgIFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJlbmNlcyA9IFdLUGFn
ZUdyb3VwR2V0UHJlZmVyZW5jZXMod2tQYWdlR3JvdXApOwpAQCAtNDQxLDI0ICs0NTQsMzIgQEAg
ZmxvYXQgRXdrVmlldzo6ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAogICAgIHJldHVybiBXS1Bh
Z2VHZXRCYWNraW5nU2NhbGVGYWN0b3Iod2tQYWdlKCkpOwogfQogCi1BZmZpbmVUcmFuc2Zvcm0g
RXdrVmlldzo6dHJhbnNmb3JtRnJvbVNjZW5lKCkgY29uc3QKK3ZvaWQgRXdrVmlldzo6c2V0U2l6
ZShjb25zdCBJbnRTaXplJiBzaXplKQogewotICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07
CisgICAgbV9zaXplID0gc2l6ZTsKIAotICAgIC8vIE5vdGUgdGhhdCB3ZSBhcHBseSBib3RoIHBh
Z2UgYW5kIGRldmljZSBzY2FsZSBmYWN0b3JzLgotICAgIHRyYW5zZm9ybS5zY2FsZSgxIC8gcGFn
ZVNjYWxlRmFjdG9yKCkpOwotICAgIHRyYW5zZm9ybS5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0
b3IoKSk7Ci0gICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShwYWdlUG9zaXRpb24oKS54KCksIHBhZ2VQ
b3NpdGlvbigpLnkoKSk7CisgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBwYWdl
KCktPmRyYXdpbmdBcmVhKCk7CisgICAgaWYgKCFkcmF3aW5nQXJlYSkKKyAgICAgICAgcmV0dXJu
OwogCi0gICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKLSAgICB0cmFu
c2Zvcm0udHJhbnNsYXRlKC1zZC0+dmlldy54LCAtc2QtPnZpZXcueSk7CisgICAgZHJhd2luZ0Fy
ZWEtPnNldFNpemUobV9zaXplLCBJbnRTaXplKCkpOworICAgIHBhZ2VDbGllbnQoKS0+dXBkYXRl
Vmlld3BvcnRTaXplKCk7Cit9CiAKLSAgICByZXR1cm4gdHJhbnNmb3JtOworQWZmaW5lVHJhbnNm
b3JtIEV3a1ZpZXc6OnRyYW5zZm9ybUZyb21TY2VuZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRy
YW5zZm9ybVRvU2NlbmUoKS5pbnZlcnNlKCk7CiB9CiAKIEFmZmluZVRyYW5zZm9ybSBFd2tWaWV3
Ojp0cmFuc2Zvcm1Ub1NjZW5lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdHJhbnNmb3JtRnJvbVNj
ZW5lKCkuaW52ZXJzZSgpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybSA9IHVz
ZXJWaWV3cG9ydFRyYW5zZm9ybSgpOworCisgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtcGFnZVBv
c2l0aW9uKCkueCgpLCAtcGFnZVBvc2l0aW9uKCkueSgpKTsKKyAgICB0cmFuc2Zvcm0uc2NhbGUo
ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgdHJhbnNmb3JtLnNjYWxlKHBhZ2VTY2FsZUZhY3Rv
cigpKTsKKworICAgIHJldHVybiB0cmFuc2Zvcm0udG9BZmZpbmVUcmFuc2Zvcm0oKTsKIH0KIAog
QWZmaW5lVHJhbnNmb3JtIEV3a1ZpZXc6OnRyYW5zZm9ybVRvU2NyZWVuKCkgY29uc3QKQEAgLTUx
Miw1NiArNTMzLDY3IEBAIGlubGluZSBFd2tfVmlld19TbWFydF9EYXRhKiBFd2tWaWV3OjpzbWFy
dERhdGEoKSBjb25zdAogICAgIHJldHVybiB0b1NtYXJ0RGF0YShtX2V2YXNPYmplY3QpOwogfQog
Cit2b2lkIEV3a1ZpZXc6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KCkKK3sKKyAgICBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmUqIHNjZW5lID0gY29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCk7Cisg
ICAgaWYgKCFzY2VuZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFdlIG5lZWQg
dG8gY2xlYW4gdXAgdGhpcyBjb2RlIGFzIGl0IGlzIHNwbGl0IG92ZXIgQ29vcmRHZnggYW5kIFBh
Z2UuCisgICAgc2NlbmUtPnNldERyYXdzQmFja2dyb3VuZChXS1ZpZXdHZXREcmF3c0JhY2tncm91
bmQod2tWaWV3KCkpKTsKKworICAgIEZsb2F0UmVjdCB2aWV3cG9ydCA9IHVzZXJWaWV3cG9ydFRy
YW5zZm9ybSgpLm1hcFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBzaXplKCkpKTsKKyAgICBzY2Vu
ZS0+cGFpbnRUb0N1cnJlbnRHTENvbnRleHQodHJhbnNmb3JtVG9TY2VuZSgpLnRvVHJhbnNmb3Jt
YXRpb25NYXRyaXgoKSwgLyogb3BhY2l0eSAqLyAxLCB2aWV3cG9ydCk7Cit9CisKK3ZvaWQgRXdr
Vmlldzo6cGFpbnRUb0NhaXJvU3VyZmFjZShjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UpCit7Cisg
ICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKiBzY2VuZSA9IGNvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZSgpOworICAgIGlmICghc2NlbmUpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxj
YWlyb190PiBncmFwaGljc0NvbnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUoc3VyZmFjZSkp
OworCisgICAgY2Fpcm9fdHJhbnNsYXRlKGdyYXBoaWNzQ29udGV4dC5nZXQoKSwgLSBwYWdlUG9z
aXRpb24oKS54KCksIC0gcGFnZVBvc2l0aW9uKCkueSgpKTsKKyAgICBjYWlyb19zY2FsZShncmFw
aGljc0NvbnRleHQuZ2V0KCksIHBhZ2VTY2FsZUZhY3RvcigpLCBwYWdlU2NhbGVGYWN0b3IoKSk7
CisgICAgY2Fpcm9fc2NhbGUoZ3JhcGhpY3NDb250ZXh0LmdldCgpLCBkZXZpY2VTY2FsZUZhY3Rv
cigpLCBkZXZpY2VTY2FsZUZhY3RvcigpKTsKKworICAgIHNjZW5lLT5wYWludFRvR3JhcGhpY3ND
b250ZXh0KGdyYXBoaWNzQ29udGV4dC5nZXQoKSk7Cit9CisKIHZvaWQgRXdrVmlldzo6ZGlzcGxh
eVRpbWVyRmlyZWQoVGltZXI8RXdrVmlldz4qKQogewogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNkID0gc21hcnREYXRhKCk7CiAKICAgICBpZiAobV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSkgewog
ICAgICAgICAvLyBDcmVhdGUgYSBHTCBzdXJmYWNlIGhlcmUgc28gdGhhdCBFdmFzIGhhcyBubyBj
aGFuY2Ugb2YgcGFpbnRpbmcgdG8gYW4gZW1wdHkgR0wgc3VyZmFjZS4KLSAgICAgICAgaWYgKCFj
cmVhdGVHTFN1cmZhY2UoSW50U2l6ZShzZC0+dmlldy53LCBzZC0+dmlldy5oKSkpCisgICAgICAg
IGlmICghY3JlYXRlR0xTdXJmYWNlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
bV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSA9IGZhbHNlOwogICAgIH0KIAotICAgIGV2YXNfZ2xfbWFr
ZV9jdXJyZW50KG1fZXZhc0dMLmdldCgpLCBtX2V2YXNHTFN1cmZhY2UtPnN1cmZhY2UoKSwgbV9l
dmFzR0xDb250ZXh0LT5jb250ZXh0KCkpOwotCi0gICAgLy8gV2UgYXJlIHN1cHBvc2VkIHRvIGNs
aXAgdG8gdGhlIGFjdHVhbCB2aWV3cG9ydCwgbm90aGluZyBsZXNzLgotICAgIEludFJlY3Qgdmll
d3BvcnQoc2QtPnZpZXcueCwgc2QtPnZpZXcueSwgc2QtPnZpZXcudywgc2QtPnZpZXcuaCk7Ci0K
LSAgICBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUqIHNjZW5lID0gY29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lKCk7Ci0gICAgaWYgKCFzY2VuZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2NlbmUt
PnNldEFjdGl2ZSh0cnVlKTsKLSAgICBzY2VuZS0+c2V0RHJhd3NCYWNrZ3JvdW5kKFdLVmlld0dl
dERyYXdzQmFja2dyb3VuZCh3a1ZpZXcoKSkpOwotCi0gICAgaWYgKG1faXNIYXJkd2FyZUFjY2Vs
ZXJhdGVkKSB7Ci0gICAgICAgIHNjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zv
cm1Ub1NjZW5lKCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICovIDEsIHZp
ZXdwb3J0KTsKLSAgICAgICAgLy8gc2QtPmltYWdlIGlzIHRpZWQgdG8gYSBuYXRpdmUgc3VyZmFj
ZS4gVGhlIG5hdGl2ZSBzdXJmYWNlIGlzIGluIHRoZSBwYXJlbnQncyBjb29yZGluYXRlcywKLSAg
ICAgICAgLy8gc28gd2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGUgdmlld3BvcnQgcG9zaXRpb24g
d2hlbiBjYWxsaW5nIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZC4KLSAgICAgICAg
ZXZhc19vYmplY3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgdmlld3BvcnQueCgp
LCB2aWV3cG9ydC55KCksIHZpZXdwb3J0LndpZHRoKCksIHZpZXdwb3J0LmhlaWdodCgpKTsKLSAg
ICB9IGVsc2UgeworICAgIGlmICghbV9pc0FjY2VsZXJhdGVkKSB7CiAgICAgICAgIFJlZlB0cjxj
YWlyb19zdXJmYWNlX3Q+IHN1cmZhY2UgPSBjcmVhdGVTdXJmYWNlRm9ySW1hZ2Uoc2QtPmltYWdl
KTsKICAgICAgICAgaWYgKCFzdXJmYWNlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
IFJlZlB0cjxjYWlyb190PiBncmFwaGljc0NvbnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUo
c3VyZmFjZS5nZXQoKSkpOwotICAgICAgICBjYWlyb190cmFuc2xhdGUoZ3JhcGhpY3NDb250ZXh0
LmdldCgpLCAtIHBhZ2VQb3NpdGlvbigpLngoKSwgLSBwYWdlUG9zaXRpb24oKS55KCkpOwotICAg
ICAgICBjYWlyb19zY2FsZShncmFwaGljc0NvbnRleHQuZ2V0KCksIHBhZ2VTY2FsZUZhY3Rvcigp
LCBwYWdlU2NhbGVGYWN0b3IoKSk7Ci0gICAgICAgIGNhaXJvX3NjYWxlKGdyYXBoaWNzQ29udGV4
dC5nZXQoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0gICAg
ICAgIHNjZW5lLT5wYWludFRvR3JhcGhpY3NDb250ZXh0KGdyYXBoaWNzQ29udGV4dC5nZXQoKSk7
Ci0gICAgICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIDAs
IDAsIHZpZXdwb3J0LndpZHRoKCksIHZpZXdwb3J0LmhlaWdodCgpKTsKKyAgICAgICAgcGFpbnRU
b0NhaXJvU3VyZmFjZShzdXJmYWNlLmdldCgpKTsKKyAgICAgICAgZXZhc19vYmplY3RfaW1hZ2Vf
ZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgMCwgMCwgc2QtPnZpZXcudywgc2QtPnZpZXcuaCk7
CisgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBldmFzX2dsX21ha2VfY3VycmVudChtX2V2
YXNHTC5nZXQoKSwgbV9ldmFzR0xTdXJmYWNlLT5zdXJmYWNlKCksIG1fZXZhc0dMQ29udGV4dC0+
Y29udGV4dCgpKTsKKworICAgIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KCk7CisKKyAgICAvLyBz
ZC0+aW1hZ2UgaXMgdGllZCB0byBhIG5hdGl2ZSBzdXJmYWNlLCB3aGljaCBpcyBpbiB0aGUgcGFy
ZW50J3MgY29vcmRpbmF0ZXMuCisgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRk
KHNkLT5pbWFnZSwgc2QtPnZpZXcueCwgc2QtPnZpZXcueSwgc2QtPnZpZXcudywgc2QtPnZpZXcu
aCk7CiB9CiAKIHZvaWQgRXdrVmlldzo6c2NoZWR1bGVVcGRhdGVEaXNwbGF5KCkKIHsKLSAgICAv
LyBDb29yZGluYXRlZCBncmFwaGljZXMgbmVlZHMgdG8gc2NoZWR1bGUgYW4gZnVsbCB1cGRhdGUs
IG5vdAotICAgIC8vIHJlcGFpbnRpbmcgb2YgYSByZWdpb24uIFVwZGF0ZSBpbiB0aGUgZXZlbnQg
bG9vcC4KLSAgICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwotICAgIC8v
IEd1YXJkIGZvciB6ZXJvIHNpemVkIHZpZXdwb3J0LgotICAgIGlmICghKHNkLT52aWV3LncgJiYg
c2QtPnZpZXcuaCkpCisgICAgaWYgKHNpemUoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmICghbV9kaXNwbGF5VGltZXIuaXNBY3RpdmUoKSkKQEAgLTYzNCwxMyArNjY2LDYg
QEAgdm9pZCBFd2tWaWV3OjpzZXRJbWFnZURhdGEodm9pZCogaW1hZ2VEYXRhLCBjb25zdCBJbnRT
aXplJiBzaXplKQogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfY29weV9zZXQoc2QtPmltYWdl
LCBpbWFnZURhdGEpOwogfQogCi1JbnRTaXplIEV3a1ZpZXc6OnNpemUoKSBjb25zdAotewotICAg
IGludCB3aWR0aCwgaGVpZ2h0OwotICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5X2dldChtX2V2YXNP
YmplY3QsIDAsIDAsICZ3aWR0aCwgJmhlaWdodCk7Ci0gICAgcmV0dXJuIEludFNpemUod2lkdGgs
IGhlaWdodCk7Ci19Ci0KIGJvb2wgRXdrVmlldzo6aXNGb2N1c2VkKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gZXZhc19vYmplY3RfZm9jdXNfZ2V0KG1fZXZhc09iamVjdCk7CkBAIC03NjQsMzIgKzc4
OSwxMiBAQCB2b2lkIEV3a1ZpZXc6OmluZm9ybUljb25DaGFuZ2UoKQogICAgIHNtYXJ0Q2FsbGJh
Y2s8SWNvbkNoYW5nZWQ+KCkuY2FsbCgpOwogfQogCi1ib29sIEV3a1ZpZXc6OmNyZWF0ZUdMU3Vy
ZmFjZShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSkKK2Jvb2wgRXdrVmlldzo6Y3JlYXRlR0xTdXJm
YWNlKCkKIHsKLSAgICBpZiAoIW1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKQorICAgIGlmICghbV9p
c0FjY2VsZXJhdGVkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICghbV9ldmFzR0wp
IHsKLSAgICAgICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KG1fZXZhc09iamVj
dCk7Ci0gICAgICAgIG1fZXZhc0dMID0gYWRvcHRQdHIoZXZhc19nbF9uZXcoZXZhcykpOwotICAg
ICAgICBpZiAoIW1fZXZhc0dMKSB7Ci0gICAgICAgICAgICBXQVJOKCJGYWlsZWQgdG8gY3JlYXRl
IEV2YXNfR0wsIGZhbGxpbmcgYmFjayB0byBzb2Z0d2FyZSBtb2RlLiIpOwotICAgICAgICAgICAg
bV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICghbV9ldmFzR0xDb250ZXh0KSB7Ci0gICAg
ICAgIG1fZXZhc0dMQ29udGV4dCA9IEV2YXNHTENvbnRleHQ6OmNyZWF0ZShtX2V2YXNHTC5nZXQo
KSk7Ci0gICAgICAgIGlmICghbV9ldmFzR0xDb250ZXh0KSB7Ci0gICAgICAgICAgICBXQVJOKCJG
YWlsZWQgdG8gY3JlYXRlIEdMQ29udGV4dC4iKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnRE
YXRhKCk7Ci0KLSAgICBFdmFzX0dMX0NvbmZpZyBldmFzR0xDb25maWcgPSB7CisgICAgc3RhdGlj
IEV2YXNfR0xfQ29uZmlnIGV2YXNHTENvbmZpZyA9IHsKICAgICAgICAgRVZBU19HTF9SR0JBXzg4
ODgsCiAgICAgICAgIEVWQVNfR0xfREVQVEhfQklUXzgsCiAgICAgICAgIEVWQVNfR0xfU1RFTkNJ
TF9OT05FLApAQCAtNzk3LDE5ICs4MDIsMjEgQEAgYm9vbCBFd2tWaWV3OjpjcmVhdGVHTFN1cmZh
Y2UoY29uc3QgSW50U2l6ZSYgdmlld1NpemUpCiAgICAgICAgIEVWQVNfR0xfTVVMVElTQU1QTEVf
Tk9ORQogICAgIH07CiAKLSAgICAvLyBSZXBsYWNlcyBpZiBub24tbnVsbCwgYW5kIGZyZWVzIGV4
aXN0aW5nIHN1cmZhY2UgYWZ0ZXIgKE93blB0cikuCi0gICAgbV9ldmFzR0xTdXJmYWNlID0gRXZh
c0dMU3VyZmFjZTo6Y3JlYXRlKG1fZXZhc0dMLmdldCgpLCAmZXZhc0dMQ29uZmlnLCB2aWV3U2l6
ZSk7CisgICAgLy8gUmVjcmVhdGUgdG8gY3VycmVudCBzaXplOiBSZXBsYWNlcyBpZiBub24tbnVs
bCwgYW5kIGZyZWVzIGV4aXN0aW5nIHN1cmZhY2UgYWZ0ZXIgKE93blB0cikuCisgICAgbV9ldmFz
R0xTdXJmYWNlID0gRXZhc0dMU3VyZmFjZTo6Y3JlYXRlKG1fZXZhc0dMLmdldCgpLCAmZXZhc0dM
Q29uZmlnLCBzaXplKCkpOwogICAgIGlmICghbV9ldmFzR0xTdXJmYWNlKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBFdmFzX05hdGl2ZV9TdXJmYWNlIG5hdGl2ZVN1cmZhY2U7CiAgICAg
ZXZhc19nbF9uYXRpdmVfc3VyZmFjZV9nZXQobV9ldmFzR0wuZ2V0KCksIG1fZXZhc0dMU3VyZmFj
ZS0+c3VyZmFjZSgpLCAmbmF0aXZlU3VyZmFjZSk7Ci0gICAgZXZhc19vYmplY3RfaW1hZ2VfbmF0
aXZlX3N1cmZhY2Vfc2V0KHNkLT5pbWFnZSwgJm5hdGl2ZVN1cmZhY2UpOworICAgIGV2YXNfb2Jq
ZWN0X2ltYWdlX25hdGl2ZV9zdXJmYWNlX3NldChzbWFydERhdGEoKS0+aW1hZ2UsICZuYXRpdmVT
dXJmYWNlKTsKIAogICAgIGV2YXNfZ2xfbWFrZV9jdXJyZW50KG1fZXZhc0dMLmdldCgpLCBtX2V2
YXNHTFN1cmZhY2UtPnN1cmZhY2UoKSwgbV9ldmFzR0xDb250ZXh0LT5jb250ZXh0KCkpOwogCiAg
ICAgRXZhc19HTF9BUEkqIGdsID0gZXZhc19nbF9hcGlfZ2V0KG1fZXZhc0dMLmdldCgpKTsKLSAg
ICBnbC0+Z2xWaWV3cG9ydCgwLCAwLCB2aWV3U2l6ZS53aWR0aCgpICsgc2QtPnZpZXcueCwgdmll
d1NpemUuaGVpZ2h0KCkgKyBzZC0+dmlldy55KTsKKworICAgIEludFBvaW50IGJvdW5kc0VuZCA9
IHVzZXJWaWV3cG9ydFRyYW5zZm9ybSgpLm1hcFBvaW50KEludFBvaW50KHNpemUoKSkpOworICAg
IGdsLT5nbFZpZXdwb3J0KDAsIDAsIGJvdW5kc0VuZC54KCksIGJvdW5kc0VuZC55KCkpOwogICAg
IGdsLT5nbENsZWFyQ29sb3IoMS4wLCAxLjAsIDEuMCwgMCk7CiAgICAgZ2wtPmdsQ2xlYXIoR0xf
Q09MT1JfQlVGRkVSX0JJVCk7CiAKQEAgLTgxOCwxNiArODI1LDE1IEBAIGJvb2wgRXdrVmlldzo6
Y3JlYXRlR0xTdXJmYWNlKGNvbnN0IEludFNpemUmIHZpZXdTaXplKQogCiBib29sIEV3a1ZpZXc6
OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogewotICAgIGNvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZSgpLT5zZXRBY3RpdmUodHJ1ZSk7CisgICAgQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lKiBzY2VuZSA9IGNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpOworICAgIGlmICghc2NlbmUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghbV9pc0hhcmR3YXJlQWNjZWxlcmF0
ZWQpCi0gICAgICAgIHJldHVybiB0cnVlOworICAgIHNjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CiAK
LSAgICBpZiAoIW1fZXZhc0dMU3VyZmFjZSkgewotICAgICAgICBpZiAoIWNyZWF0ZUdMU3VyZmFj
ZShzaXplKCkpKSB7Ci0gICAgICAgICAgICBXQVJOKCJGYWlsZWQgdG8gY3JlYXRlIEdMU3VyZmFj
ZS4iKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQorICAgIGlmIChtX2lz
QWNjZWxlcmF0ZWQgJiYgIW1fZXZhc0dMU3VyZmFjZSAmJiAhY3JlYXRlR0xTdXJmYWNlKCkpIHsK
KyAgICAgICAgV0FSTigiRmFpbGVkIHRvIGNyZWF0ZSBHTFN1cmZhY2UuIik7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTgzNSw2ICs4NDEsMTEg
QEAgYm9vbCBFd2tWaWV3OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIAogYm9v
bCBFd2tWaWV3OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogeworICAgIENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZSogc2NlbmUgPSBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsK
KyAgICBpZiAoIXNjZW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzY2VuZS0+c2V0
QWN0aXZlKGZhbHNlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTE0Niw4ICsxMTU3LDcg
QEAgdm9pZCBFd2tWaWV3OjpoYW5kbGVFdmFzT2JqZWN0Q2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBl
dmFzT2JqZWN0KQogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHRvU21hcnRE
YXRhKGV2YXNPYmplY3QpOwogICAgIEFTU0VSVChzbWFydERhdGEpOwogCi0gICAgRXdrVmlldyog
dmlldyA9IHRvRXdrVmlldyhzbWFydERhdGEpOwotICAgIEFTU0VSVCh2aWV3KTsKKyAgICBFd2tW
aWV3KiBzZWxmID0gdG9Fd2tWaWV3KHNtYXJ0RGF0YSk7CiAKICAgICBzbWFydERhdGEtPmNoYW5n
ZWQuYW55ID0gZmFsc2U7CiAKQEAgLTExNTksNiArMTE2OSw4IEBAIHZvaWQgRXdrVmlldzo6aGFu
ZGxlRXZhc09iamVjdENhbGN1bGF0ZShFdmFzX09iamVjdCogZXZhc09iamVjdCkKICAgICAgICAg
c21hcnREYXRhLT52aWV3LnggPSB4OwogICAgICAgICBzbWFydERhdGEtPnZpZXcueSA9IHk7CiAg
ICAgICAgIGV2YXNfb2JqZWN0X21vdmUoc21hcnREYXRhLT5pbWFnZSwgeCwgeSk7CisKKyAgICAg
ICAgc2VsZi0+c2V0VXNlclZpZXdwb3J0VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4KCku
dHJhbnNsYXRlKHgsIHkpKTsKICAgICB9CiAKICAgICBpZiAoc21hcnREYXRhLT5jaGFuZ2VkLnNp
emUpIHsKQEAgLTExNjYsMTEgKzExNzgsOCBAQCB2b2lkIEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmpl
Y3RDYWxjdWxhdGUoRXZhc19PYmplY3QqIGV2YXNPYmplY3QpCiAgICAgICAgIHNtYXJ0RGF0YS0+
dmlldy53ID0gd2lkdGg7CiAgICAgICAgIHNtYXJ0RGF0YS0+dmlldy5oID0gaGVpZ2h0OwogCi0g
ICAgICAgIGlmICh2aWV3LT5wYWdlKCktPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgICAgICB2aWV3
LT5wYWdlKCktPmRyYXdpbmdBcmVhKCktPnNldFNpemUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSwg
SW50U2l6ZSgpKTsKLQotICAgICAgICB2aWV3LT5zZXROZWVkc1N1cmZhY2VSZXNpemUoKTsKLSAg
ICAgICAgdmlldy0+cGFnZUNsaWVudCgpLT51cGRhdGVWaWV3cG9ydFNpemUoKTsKKyAgICAgICAg
c2VsZi0+c2V0U2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAgICAgICAgc2VsZi0+c2V0
TmVlZHNTdXJmYWNlUmVzaXplKCk7CiAgICAgfQogfQogCkBAIC0xMzM1LDcgKzEzNDQsNyBAQCBQ
YXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gRXdrVmlldzo6dGFrZVNuYXBzaG90KCkKICAgICAg
ICAgZWNvcmVfbWFpbl9sb29wX2l0ZXJhdGUoKTsKIAogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEq
IHNkID0gc21hcnREYXRhKCk7Ci0gICAgaWYgKCFtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZCkgewor
ICAgIGlmICghbV9pc0FjY2VsZXJhdGVkKSB7CiAgICAgICAgIFJlZlB0cjxjYWlyb19zdXJmYWNl
X3Q+IHNuYXBzaG90ID0gY3JlYXRlU3VyZmFjZUZvckltYWdlKHNkLT5pbWFnZSk7CiAgICAgICAg
IC8vIFJlc3VtZSBhbGwgYW5pbWF0aW9ucy4KICAgICAgICAgV0tWaWV3UmVzdW1lQWN0aXZlRE9N
T2JqZWN0c0FuZEFuaW1hdGlvbnMod2tWaWV3KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5oCmluZGV4IDlhZGZiMGY5NGYzNTg1NmIwY2NmNjRmYTRkNjAzZjBk
Njk5Y2MxMTEuLmRiMjkwOTg5MTk2N2E0YzZkM2I2YzBjY2M4NGI5ODhlN2NiMmNhYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKQEAgLTUyLDYgKzUyLDgg
QEAKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5o
IgogCit0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWlyb19zdXJmYWNlX3Q7CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQ29udGV4dE1lbnVDbGllbnRFZmw7CiBjbGFzcyBGaW5k
Q2xpZW50RWZsOwpAQCAtNzUsNiArNzcsNyBAQCBjbGFzcyBWaWJyYXRpb25DbGllbnRFZmw7CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKK2NsYXNzIFRyYW5z
Zm9ybWF0aW9uTWF0cml4OwogY2xhc3MgQ29sb3I7CiBjbGFzcyBDdXJzb3I7CiBjbGFzcyBJbnRT
aXplOwpAQCAtMTIyLDE3ICsxMjUsMjYgQEAgcHVibGljOgogICAgIEV3a0JhY2tGb3J3YXJkTGlz
dCogYmFja0ZvcndhcmRMaXN0KCkgeyByZXR1cm4gbV9iYWNrRm9yd2FyZExpc3QuZ2V0KCk7IH0K
ICAgICBFd2tXaW5kb3dGZWF0dXJlcyogd2luZG93RmVhdHVyZXMoKTsKIAotICAgIFdlYkNvcmU6
OkludFNpemUgc2l6ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc1Zpc2libGUoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3Io
ZmxvYXQgc2NhbGUpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAKKyAg
ICB2b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIFdlYkNvcmU6Oklu
dFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAgdm9pZCBzZXRVc2Vy
Vmlld3BvcnRUcmFuc2Zvcm0oY29uc3QgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXgmIHRy
YW5zZm9ybSkgeyBtX3VzZXJWaWV3cG9ydFRyYW5zZm9ybSA9IHRyYW5zZm9ybTsgfQorICAgIFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IHVzZXJWaWV3cG9ydFRyYW5zZm9ybSgpIGNvbnN0
IHsgcmV0dXJuIG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtOyB9CisKKyAgICAvLyBGSVhNRTogQ29u
dmVydCB0byBUcmFuc2Zvcm1hdGlvbk1hdHJpeC4KICAgICBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zv
cm0gdHJhbnNmb3JtVG9TY2VuZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkFmZmluZVRyYW5zZm9y
bSB0cmFuc2Zvcm1Gcm9tU2NlbmUoKSBjb25zdDsKICAgICBXZWJDb3JlOjpBZmZpbmVUcmFuc2Zv
cm0gdHJhbnNmb3JtVG9TY3JlZW4oKSBjb25zdDsKIAorICAgIHZvaWQgcGFpbnRUb0N1cnJlbnRH
TENvbnRleHQoKTsKKyAgICB2b2lkIHBhaW50VG9DYWlyb1N1cmZhY2UoY2Fpcm9fc3VyZmFjZV90
Kik7CisKICAgICBjb25zdCBjaGFyKiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQogICAg
IGNvbnN0IGNoYXIqIGZhdmljb25VUkwoKSBjb25zdCB7IHJldHVybiBtX2Zhdmljb25VUkw7IH0K
ICAgICBjb25zdCBjaGFyKiB0aXRsZSgpIGNvbnN0OwpAQCAtMTYzLDcgKzE3NSw3IEBAIHB1Ymxp
YzoKICAgICBXS1JlY3Qgd2luZG93R2VvbWV0cnkoKSBjb25zdDsKICAgICB2b2lkIHNldFdpbmRv
d0dlb21ldHJ5KGNvbnN0IFdLUmVjdCYpOwogCi0gICAgYm9vbCBjcmVhdGVHTFN1cmZhY2UoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUpOworICAgIGJvb2wgY3JlYXRlR0xTdXJmYWNl
KCk7CiAgICAgYm9vbCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7CiAgICAgYm9v
bCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKICAgICB2b2lkIHNldE5lZWRzU3Vy
ZmFjZVJlc2l6ZSgpIHsgbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSA9IHRydWU7IH0KQEAgLTE3OCw3
ICsxOTAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlcXVlc3RQb3B1cE1lbnUoV2ViS2l0OjpX
ZWJQb3B1cE1lbnVQcm94eUVmbCosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXZWJDb3JlOjpU
ZXh0RGlyZWN0aW9uLCBkb3VibGUgcGFnZVNjYWxlRmFjdG9yLCBjb25zdCBWZWN0b3I8V2ViS2l0
OjpXZWJQb3B1cEl0ZW0+JiBpdGVtcywgaW50MzJfdCBzZWxlY3RlZEluZGV4KTsKICAgICB2b2lk
IGNsb3NlUG9wdXBNZW51KCk7Ci0gICAgCisKICAgICB2b2lkIHNob3dDb250ZXh0TWVudShXZWJL
aXQ6OldlYkNvbnRleHRNZW51UHJveHlFZmwqLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9z
aXRpb24sIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYkNvbnRleHRNZW51SXRlbURhdGE+JiBpdGVt
cyk7CiAgICAgdm9pZCBoaWRlQ29udGV4dE1lbnUoKTsKIApAQCAtMjA3LDggKzIxOSw2IEBAIHB1
YmxpYzoKICAgICAvLyBGSVhNRTogbmVlZHMgcmVmYWN0b3JpbmcgKHNwbGl0IGNhbGxiYWNrIGlu
dm9rZSkKICAgICB2b2lkIGluZm9ybVVSTENoYW5nZSgpOwogCi0gICAgYm9vbCBpc0hhcmR3YXJl
QWNjZWxlcmF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZDsgfQot
CiAgICAgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHRha2VTbmFwc2hvdCgpOwogCiBwcml2
YXRlOgpAQCAtMjU4LDYgKzI2OCw4IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEV2YXNfR0w+IG1f
ZXZhc0dMOwogICAgIE93blB0cjxXZWJLaXQ6OkV2YXNHTENvbnRleHQ+IG1fZXZhc0dMQ29udGV4
dDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xTdXJmYWNlPiBtX2V2YXNHTFN1cmZhY2U7Cisg
ICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25N
YXRyaXggbV91c2VyVmlld3BvcnRUcmFuc2Zvcm07CiAgICAgYm9vbCBtX3BlbmRpbmdTdXJmYWNl
UmVzaXplOwogICAgIE93blB0cjxXZWJLaXQ6OlBhZ2VDbGllbnRCYXNlPiBtX3BhZ2VDbGllbnQ7
CiAgICAgUmVmUHRyPFdlYktpdDo6V2ViVmlldz4gbV93ZWJWaWV3OwpAQCAtMjkyLDcgKzMwNCw3
IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAgICAgT3duUHRyPEV3
a0NvbG9yUGlja2VyPiBtX2NvbG9yUGlja2VyOwogI2VuZGlmCi0gICAgYm9vbCBtX2lzSGFyZHdh
cmVBY2NlbGVyYXRlZDsKKyAgICBib29sIG1faXNBY2NlbGVyYXRlZDsKIAogICAgIHN0YXRpYyBF
dmFzX1NtYXJ0X0NsYXNzIHBhcmVudFNtYXJ0Q2xhc3M7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187872</attachid>
            <date>2013-02-12 08:26:05 -0800</date>
            <delta_ts>2013-02-13 08:59:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109377-20130212172241.patch</filename>
            <type>text/plain</type>
            <size>18357</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTY2MjQ3NzMyOTdjNGM2
YmIyY2YyMmM4OTE4MGY0ZTQxNDVkZThlYy4uNWY3M2JmNjdkMWE1ODRiMzgxZjI3ZDhlOTc0OGQ5
M2Q2MjgwNGI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTAyLTExICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBb
V0syXVtFRkxdIENsZWFudXAgb2YgZ3JhcGhpY3MgcmVsYXRlZCBjb2RlIGluIEV3a1ZpZXcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5jcHA6CisgICAgICAgIChFd2tWaWV3OjpFd2tWaWV3KToKKworICAg
ICAgICAgICAgSW5pdGlhbGl6ZSB0aGUgZXZhc0dMIGRlcGVuZGVuY2llcyBoZXJlIGFuZAorICAg
ICAgICAgICAgc2V0IG1faXNBY2NlbGVyYXRlZCB0byBmYWxzZSBpZiB0aGlzIGZhaWxzLgorCisg
ICAgICAgICAgICBTZXQgdGhlIGNvb3JkaW5hdGVkIGdyYXBoaWNzIHNjZW5lIGFzIGFjdGl2ZQor
ICAgICAgICAgICAgd2hlbiB1c2luZyBmaXhlZCBsYXlvdXQuCisKKyAgICAgICAgKEV3a1ZpZXc6
OnNldFNpemUpOgorCisgICAgICAgICAgICBBZGQgYSBtZXRob2QgdG8gc2V0IHRoZSBzaXplIGFu
ZCB1c2VyLXZpZXdwb3J0CisgICAgICAgICAgICB0cmFuc2Zvcm0gZnJvbSB0aGUgb3V0c2lkZS4g
VGhlIGlkZWEgaXMgbW92aW5nCisgICAgICAgICAgICB0aGlzIHRvIG91ciBwdXJlIFdLIEMgQVBJ
IGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgKEV3a1ZpZXc6OnRyYW5zZm9ybUZyb21TY2VuZSk6
CisgICAgICAgIChFd2tWaWV3Ojp0cmFuc2Zvcm1Ub1NjZW5lKToKKworICAgICAgICAgICAgVXBk
YXRlIHRoZSB0cmFuc2Zvcm0gbWV0aG9kcyB0byB1c2UgdGhlIHVzZXItCisgICAgICAgICAgICB2
aWV3cG9ydCB0cmFuc2Zvcm0uCisKKyAgICAgICAgKEV3a1ZpZXc6OnBhaW50VG9DdXJyZW50R0xD
b250ZXh0KToKKyAgICAgICAgKEV3a1ZpZXc6OnBhaW50VG9DYWlyb1N1cmZhY2UpOgorCisgICAg
ICAgICAgICBBZGQgbWV0aG9kcyB0byBwYWludCB0byBlaXRoZXIgdGhlIGN1cnJlbnQgR0wgY29u
dGV4dAorICAgICAgICAgICAgb3IgdG8gYSBnaXZlbiBjYWlyb19zdXJmYWNlX3QgKGZvciBzb2Z0
d2FyZSBmYWxsYmFjaworICAgICAgICAgICAgY2FzZXMpLgorCisgICAgICAgIChFd2tWaWV3Ojpk
aXNwbGF5VGltZXJGaXJlZCk6CisKKyAgICAgICAgICAgIENsZWFuIHVwIGFuZCB1c2UgdGhlIHR3
byBhYm92ZSBtZXRob2RzLgorCisgICAgICAgIChFd2tWaWV3OjpzY2hlZHVsZVVwZGF0ZURpc3Bs
YXkpOgorCisgICAgICAgICAgICBVc2UgdGhlIG5ldyBzaXplKCkgbWV0aG9kcyBpbnN0ZWFkIG9m
IHVzaW5nIHRoZSAKKyAgICAgICAgICAgIHNtYXJ0LW9iamVjdCBkYXRhIGRpcmVjdGx5LgorCisg
ICAgICAgIChFd2tWaWV3OjpjcmVhdGVHTFN1cmZhY2UpOgorCisgICAgICAgICAgICBNYWtlIHRo
aXMgbWV0aG9kIHVzZSBzaXplKCkgdG8gcXVlcnkgdGhlIHN1cmZhY2Ugc2l6ZQorICAgICAgICAg
ICAgYW5kIGF2b2lkIGNyZWF0aW5nIHRoZSBjb250ZXh0IChkb25lIGluIGN0b3Igbm93KS4KKyAg
ICAgICAgICAgIEFsc28gYXZvaWQgdXNpbmcgdGhlIHNtYXJ0LW9iamVjdCBkYXRhIGRpcmVjdGx5
LgorCisgICAgICAgIChFd2tWaWV3OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToK
KyAgICAgICAgKEV3a1ZpZXc6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisKKyAg
ICAgICAgICAgIFR1cm4gb24vb2ZmIHRoZSB1c2Ugb2YgdGhlIGNvb3JkLiBncmFwaGljcyBzY2Vu
ZS4KKworICAgICAgICAoRXdrVmlldzo6aGFuZGxlRXZhc09iamVjdENhbGN1bGF0ZSk6CisKKyAg
ICAgICAgICAgIFVzZSB0aGUgbmV3IHNldFNpemUgYW5kIHNldFVzZXJWaWV3cG9ydFRyYW5zZm9y
bS4KKworICAgICAgICAoRXdrVmlldzo6dGFrZVNuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9Fd2tWaWV3Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEV3a1Zp
ZXcpOgorICAgICAgICAoRXdrVmlldzo6c2l6ZSk6CisgICAgICAgIChFd2tWaWV3OjpzZXRVc2Vy
Vmlld3BvcnRUcmFuc2Zvcm0pOgorICAgICAgICAoRXdrVmlldzo6dXNlclZpZXdwb3J0VHJhbnNm
b3JtKToKKworICAgICAgICAgICAgQWRkIHRoZSBuZXcgbWV0aG9kIGRlZmluaXRpb25zIGFuZCBy
ZW5hbWUgaXNIYXJkd2FyZUFjY2VsZXJhdGVkCisgICAgICAgICAgICB0byBpc0FjY2VsZXJhdGVk
IHdoaWNoIGZpdHMgYmV0dGVyIHdpdGggdGhlIG5hbWluZyBpbiBXZWJDb3JlLgorCiAyMDEzLTAy
LTExICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAg
IENvb3JkaW5hdGVkIEdyYXBoaWNzOiBNYWtlIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSBub3Qg
a25vdyBjb250ZW50cyBzaXplLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRXdrVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9F
d2tWaWV3LmNwcAppbmRleCBjNDUzMzEzMzQ4NjNhNTU2YWI4ZjM5NTQ3NDViMTYxMTU0MWYyNmI4
Li40NWEyZTkyZjlhNDQwMjg1ZjEwMGIzOGM3YTVjOTAzMzg2NGUwMjM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcApAQCAtNjgsNiArNjgsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvQ2Fpcm9VdGlsaXRpZXNFZmwuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oPgogI2luY2x1ZGUgPFdl
YktpdDIvV0tJbWFnZUNhaXJvLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAt
MjQ1LDE0ICsyNDYsMjYgQEAgRXdrVmlldzo6RXdrVmlldyhFdmFzX09iamVjdCogZXZhc09iamVj
dCwgUGFzc1JlZlB0cjxFd2tDb250ZXh0PiBjb250ZXh0LCBXS1BhZ2UKICNlbmRpZgogICAgICwg
bV9kaXNwbGF5VGltZXIodGhpcywgJkV3a1ZpZXc6OmRpc3BsYXlUaW1lckZpcmVkKQogICAgICwg
bV9pbnB1dE1ldGhvZENvbnRleHQoSW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGUodGhpcywg
c21hcnREYXRhKCktPmJhc2UuZXZhcykpCi0gICAgLCBtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZCh0
cnVlKQorICAgICwgbV9pc0FjY2VsZXJhdGVkKHRydWUpCiB7CiAgICAgQVNTRVJUKG1fZXZhc09i
amVjdCk7CiAgICAgQVNTRVJUKG1fY29udGV4dCk7CiAKKyAgICBtX2V2YXNHTCA9IGFkb3B0UHRy
KGV2YXNfZ2xfbmV3KGV2YXNfb2JqZWN0X2V2YXNfZ2V0KG1fZXZhc09iamVjdCkpKTsKKyAgICBp
ZiAobV9ldmFzR0wpCisgICAgICAgIG1fZXZhc0dMQ29udGV4dCA9IEV2YXNHTENvbnRleHQ6OmNy
ZWF0ZShtX2V2YXNHTC5nZXQoKSk7CisKKyAgICBpZiAoIW1fZXZhc0dMQ29udGV4dCkgeworICAg
ICAgICBXQVJOKCJGYWlsZWQgdG8gY3JlYXRlIEV2YXNfR0wsIGZhbGxpbmcgYmFjayB0byBzb2Z0
d2FyZSBtb2RlLiIpOworICAgICAgICBtX2lzQWNjZWxlcmF0ZWQgPSBmYWxzZTsKKyAgICB9CisK
ICAgICBXS1ZpZXdJbml0aWFsaXplKHdrVmlldygpKTsKIAotICAgIFdLUGFnZVNldFVzZUZpeGVk
TGF5b3V0KHdrUGFnZSgpLCBiZWhhdmlvciA9PSBEZWZhdWx0QmVoYXZpb3IpOworICAgIGlmIChi
ZWhhdmlvciA9PSBEZWZhdWx0QmVoYXZpb3IpIHsKKyAgICAgICAgY29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lKCktPnNldEFjdGl2ZSh0cnVlKTsKKyAgICAgICAgV0tQYWdlU2V0VXNlRml4ZWRMYXlv
dXQod2tQYWdlKCksIHRydWUpOworICAgIH0KIAogICAgIFdLUGFnZUdyb3VwUmVmIHdrUGFnZUdy
b3VwID0gV0tQYWdlR2V0UGFnZUdyb3VwKHdrUGFnZSgpKTsKICAgICBXS1ByZWZlcmVuY2VzUmVm
IHdrUHJlZmVyZW5jZXMgPSBXS1BhZ2VHcm91cEdldFByZWZlcmVuY2VzKHdrUGFnZUdyb3VwKTsK
QEAgLTQ0MSwyNCArNDU0LDMyIEBAIGZsb2F0IEV3a1ZpZXc6OmRldmljZVNjYWxlRmFjdG9yKCkg
Y29uc3QKICAgICByZXR1cm4gV0tQYWdlR2V0QmFja2luZ1NjYWxlRmFjdG9yKHdrUGFnZSgpKTsK
IH0KIAotQWZmaW5lVHJhbnNmb3JtIEV3a1ZpZXc6OnRyYW5zZm9ybUZyb21TY2VuZSgpIGNvbnN0
Cit2b2lkIEV3a1ZpZXc6OnNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBBZmZp
bmVUcmFuc2Zvcm0gdHJhbnNmb3JtOworICAgIG1fc2l6ZSA9IHNpemU7CiAKLSAgICAvLyBOb3Rl
IHRoYXQgd2UgYXBwbHkgYm90aCBwYWdlIGFuZCBkZXZpY2Ugc2NhbGUgZmFjdG9ycy4KLSAgICB0
cmFuc2Zvcm0uc2NhbGUoMSAvIHBhZ2VTY2FsZUZhY3RvcigpKTsKLSAgICB0cmFuc2Zvcm0uc2Nh
bGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKCkpOwotICAgIHRyYW5zZm9ybS50cmFuc2xhdGUocGFn
ZVBvc2l0aW9uKCkueCgpLCBwYWdlUG9zaXRpb24oKS55KCkpOworICAgIERyYXdpbmdBcmVhUHJv
eHkqIGRyYXdpbmdBcmVhID0gcGFnZSgpLT5kcmF3aW5nQXJlYSgpOworICAgIGlmICghZHJhd2lu
Z0FyZWEpCisgICAgICAgIHJldHVybjsKIAotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0g
c21hcnREYXRhKCk7Ci0gICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtc2QtPnZpZXcueCwgLXNkLT52
aWV3LnkpOworICAgIGRyYXdpbmdBcmVhLT5zZXRTaXplKG1fc2l6ZSwgSW50U2l6ZSgpKTsKKyAg
ICBwYWdlQ2xpZW50KCktPnVwZGF0ZVZpZXdwb3J0U2l6ZSgpOworfQogCi0gICAgcmV0dXJuIHRy
YW5zZm9ybTsKK0FmZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zvcm1Gcm9tU2NlbmUoKSBj
b25zdAoreworICAgIHJldHVybiB0cmFuc2Zvcm1Ub1NjZW5lKCkuaW52ZXJzZSgpOwogfQogCiBB
ZmZpbmVUcmFuc2Zvcm0gRXdrVmlldzo6dHJhbnNmb3JtVG9TY2VuZSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHRyYW5zZm9ybUZyb21TY2VuZSgpLmludmVyc2UoKTsKKyAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCB0cmFuc2Zvcm0gPSB1c2VyVmlld3BvcnRUcmFuc2Zvcm0oKTsKKworICAgIHRyYW5z
Zm9ybS50cmFuc2xhdGUoLXBhZ2VQb3NpdGlvbigpLngoKSwgLXBhZ2VQb3NpdGlvbigpLnkoKSk7
CisgICAgdHJhbnNmb3JtLnNjYWxlKGRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIHRyYW5zZm9y
bS5zY2FsZShwYWdlU2NhbGVGYWN0b3IoKSk7CisKKyAgICByZXR1cm4gdHJhbnNmb3JtLnRvQWZm
aW5lVHJhbnNmb3JtKCk7CiB9CiAKIEFmZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zvcm1U
b1NjcmVlbigpIGNvbnN0CkBAIC01MTIsNTYgKzUzMyw2NyBAQCBpbmxpbmUgRXdrX1ZpZXdfU21h
cnRfRGF0YSogRXdrVmlldzo6c21hcnREYXRhKCkgY29uc3QKICAgICByZXR1cm4gdG9TbWFydERh
dGEobV9ldmFzT2JqZWN0KTsKIH0KIAordm9pZCBFd2tWaWV3OjpwYWludFRvQ3VycmVudEdMQ29u
dGV4dCgpCit7CisgICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKiBzY2VuZSA9IGNvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZSgpOworICAgIGlmICghc2NlbmUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGNsZWFuIHVwIHRoaXMgY29kZSBhcyBpdCBpcyBzcGxp
dCBvdmVyIENvb3JkR2Z4IGFuZCBQYWdlLgorICAgIHNjZW5lLT5zZXREcmF3c0JhY2tncm91bmQo
V0tWaWV3R2V0RHJhd3NCYWNrZ3JvdW5kKHdrVmlldygpKSk7CisKKyAgICBGbG9hdFJlY3Qgdmll
d3BvcnQgPSB1c2VyVmlld3BvcnRUcmFuc2Zvcm0oKS5tYXBSZWN0KEludFJlY3QoSW50UG9pbnQo
KSwgc2l6ZSgpKSk7CisgICAgc2NlbmUtPnBhaW50VG9DdXJyZW50R0xDb250ZXh0KHRyYW5zZm9y
bVRvU2NlbmUoKS50b1RyYW5zZm9ybWF0aW9uTWF0cml4KCksIC8qIG9wYWNpdHkgKi8gMSwgdmll
d3BvcnQpOworfQorCit2b2lkIEV3a1ZpZXc6OnBhaW50VG9DYWlyb1N1cmZhY2UoY2Fpcm9fc3Vy
ZmFjZV90KiBzdXJmYWNlKQoreworICAgIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogc2NlbmUg
PSBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsKKyAgICBpZiAoIXNjZW5lKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBSZWZQdHI8Y2Fpcm9fdD4gZ3JhcGhpY3NDb250ZXh0ID0gYWRvcHRSZWYo
Y2Fpcm9fY3JlYXRlKHN1cmZhY2UpKTsKKworICAgIGNhaXJvX3RyYW5zbGF0ZShncmFwaGljc0Nv
bnRleHQuZ2V0KCksIC0gcGFnZVBvc2l0aW9uKCkueCgpLCAtIHBhZ2VQb3NpdGlvbigpLnkoKSk7
CisgICAgY2Fpcm9fc2NhbGUoZ3JhcGhpY3NDb250ZXh0LmdldCgpLCBwYWdlU2NhbGVGYWN0b3Io
KSwgcGFnZVNjYWxlRmFjdG9yKCkpOworICAgIGNhaXJvX3NjYWxlKGdyYXBoaWNzQ29udGV4dC5n
ZXQoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisKKyAgICBz
Y2VuZS0+cGFpbnRUb0dyYXBoaWNzQ29udGV4dChncmFwaGljc0NvbnRleHQuZ2V0KCkpOworfQor
CiB2b2lkIEV3a1ZpZXc6OmRpc3BsYXlUaW1lckZpcmVkKFRpbWVyPEV3a1ZpZXc+KikKIHsKICAg
ICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwogCiAgICAgaWYgKG1fcGVu
ZGluZ1N1cmZhY2VSZXNpemUpIHsKICAgICAgICAgLy8gQ3JlYXRlIGEgR0wgc3VyZmFjZSBoZXJl
IHNvIHRoYXQgRXZhcyBoYXMgbm8gY2hhbmNlIG9mIHBhaW50aW5nIHRvIGFuIGVtcHR5IEdMIHN1
cmZhY2UuCi0gICAgICAgIGlmICghY3JlYXRlR0xTdXJmYWNlKEludFNpemUoc2QtPnZpZXcudywg
c2QtPnZpZXcuaCkpKQorICAgICAgICBpZiAoIWNyZWF0ZUdMU3VyZmFjZSgpKQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIG1fcGVuZGluZ1N1cmZhY2VSZXNpemUgPSBmYWxzZTsKICAg
ICB9CiAKLSAgICBldmFzX2dsX21ha2VfY3VycmVudChtX2V2YXNHTC5nZXQoKSwgbV9ldmFzR0xT
dXJmYWNlLT5zdXJmYWNlKCksIG1fZXZhc0dMQ29udGV4dC0+Y29udGV4dCgpKTsKLQotICAgIC8v
IFdlIGFyZSBzdXBwb3NlZCB0byBjbGlwIHRvIHRoZSBhY3R1YWwgdmlld3BvcnQsIG5vdGhpbmcg
bGVzcy4KLSAgICBJbnRSZWN0IHZpZXdwb3J0KHNkLT52aWV3LngsIHNkLT52aWV3LnksIHNkLT52
aWV3LncsIHNkLT52aWV3LmgpOwotCi0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKiBzY2Vu
ZSA9IGNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpOwotICAgIGlmICghc2NlbmUpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHNjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7Ci0gICAgc2NlbmUtPnNldERy
YXdzQmFja2dyb3VuZChXS1ZpZXdHZXREcmF3c0JhY2tncm91bmQod2tWaWV3KCkpKTsKLQotICAg
IGlmIChtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZCkgewotICAgICAgICBzY2VuZS0+cGFpbnRUb0N1
cnJlbnRHTENvbnRleHQodHJhbnNmb3JtVG9TY2VuZSgpLnRvVHJhbnNmb3JtYXRpb25NYXRyaXgo
KSwgLyogb3BhY2l0eSAqLyAxLCB2aWV3cG9ydCk7Ci0gICAgICAgIC8vIHNkLT5pbWFnZSBpcyB0
aWVkIHRvIGEgbmF0aXZlIHN1cmZhY2UuIFRoZSBuYXRpdmUgc3VyZmFjZSBpcyBpbiB0aGUgcGFy
ZW50J3MgY29vcmRpbmF0ZXMsCi0gICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gYWNjb3VudCBmb3Ig
dGhlIHZpZXdwb3J0IHBvc2l0aW9uIHdoZW4gY2FsbGluZyBldmFzX29iamVjdF9pbWFnZV9kYXRh
X3VwZGF0ZV9hZGQuCi0gICAgICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChz
ZC0+aW1hZ2UsIHZpZXdwb3J0LngoKSwgdmlld3BvcnQueSgpLCB2aWV3cG9ydC53aWR0aCgpLCB2
aWV3cG9ydC5oZWlnaHQoKSk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAoIW1faXNBY2NlbGVyYXRl
ZCkgewogICAgICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzdXJmYWNlID0gY3JlYXRlU3Vy
ZmFjZUZvckltYWdlKHNkLT5pbWFnZSk7CiAgICAgICAgIGlmICghc3VyZmFjZSkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBSZWZQdHI8Y2Fpcm9fdD4gZ3JhcGhpY3NDb250ZXh0ID0g
YWRvcHRSZWYoY2Fpcm9fY3JlYXRlKHN1cmZhY2UuZ2V0KCkpKTsKLSAgICAgICAgY2Fpcm9fdHJh
bnNsYXRlKGdyYXBoaWNzQ29udGV4dC5nZXQoKSwgLSBwYWdlUG9zaXRpb24oKS54KCksIC0gcGFn
ZVBvc2l0aW9uKCkueSgpKTsKLSAgICAgICAgY2Fpcm9fc2NhbGUoZ3JhcGhpY3NDb250ZXh0Lmdl
dCgpLCBwYWdlU2NhbGVGYWN0b3IoKSwgcGFnZVNjYWxlRmFjdG9yKCkpOwotICAgICAgICBjYWly
b19zY2FsZShncmFwaGljc0NvbnRleHQuZ2V0KCksIGRldmljZVNjYWxlRmFjdG9yKCksIGRldmlj
ZVNjYWxlRmFjdG9yKCkpOwotICAgICAgICBzY2VuZS0+cGFpbnRUb0dyYXBoaWNzQ29udGV4dChn
cmFwaGljc0NvbnRleHQuZ2V0KCkpOwotICAgICAgICBldmFzX29iamVjdF9pbWFnZV9kYXRhX3Vw
ZGF0ZV9hZGQoc2QtPmltYWdlLCAwLCAwLCB2aWV3cG9ydC53aWR0aCgpLCB2aWV3cG9ydC5oZWln
aHQoKSk7CisgICAgICAgIHBhaW50VG9DYWlyb1N1cmZhY2Uoc3VyZmFjZS5nZXQoKSk7CisgICAg
ICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIDAsIDAsIHNk
LT52aWV3LncsIHNkLT52aWV3LmgpOworICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgZXZh
c19nbF9tYWtlX2N1cnJlbnQobV9ldmFzR0wuZ2V0KCksIG1fZXZhc0dMU3VyZmFjZS0+c3VyZmFj
ZSgpLCBtX2V2YXNHTENvbnRleHQtPmNvbnRleHQoKSk7CisKKyAgICBwYWludFRvQ3VycmVudEdM
Q29udGV4dCgpOworCisgICAgLy8gc2QtPmltYWdlIGlzIHRpZWQgdG8gYSBuYXRpdmUgc3VyZmFj
ZSwgd2hpY2ggaXMgaW4gdGhlIHBhcmVudCdzIGNvb3JkaW5hdGVzLgorICAgIGV2YXNfb2JqZWN0
X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIHNkLT52aWV3LngsIHNkLT52aWV3Lnks
IHNkLT52aWV3LncsIHNkLT52aWV3LmgpOwogfQogCiB2b2lkIEV3a1ZpZXc6OnNjaGVkdWxlVXBk
YXRlRGlzcGxheSgpCiB7Ci0gICAgLy8gQ29vcmRpbmF0ZWQgZ3JhcGhpY2VzIG5lZWRzIHRvIHNj
aGVkdWxlIGFuIGZ1bGwgdXBkYXRlLCBub3QKLSAgICAvLyByZXBhaW50aW5nIG9mIGEgcmVnaW9u
LiBVcGRhdGUgaW4gdGhlIGV2ZW50IGxvb3AuCi0gICAgRXdrX1ZpZXdfU21hcnRfRGF0YSogc2Qg
PSBzbWFydERhdGEoKTsKLSAgICAvLyBHdWFyZCBmb3IgemVybyBzaXplZCB2aWV3cG9ydC4KLSAg
ICBpZiAoIShzZC0+dmlldy53ICYmIHNkLT52aWV3LmgpKQorICAgIGlmIChzaXplKCkuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fZGlzcGxheVRpbWVyLmlzQWN0aXZl
KCkpCkBAIC02MzQsMTMgKzY2Niw2IEBAIHZvaWQgRXdrVmlldzo6c2V0SW1hZ2VEYXRhKHZvaWQq
IGltYWdlRGF0YSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBldmFzX29iamVjdF9pbWFnZV9k
YXRhX2NvcHlfc2V0KHNkLT5pbWFnZSwgaW1hZ2VEYXRhKTsKIH0KIAotSW50U2l6ZSBFd2tWaWV3
OjpzaXplKCkgY29uc3QKLXsKLSAgICBpbnQgd2lkdGgsIGhlaWdodDsKLSAgICBldmFzX29iamVj
dF9nZW9tZXRyeV9nZXQobV9ldmFzT2JqZWN0LCAwLCAwLCAmd2lkdGgsICZoZWlnaHQpOwotICAg
IHJldHVybiBJbnRTaXplKHdpZHRoLCBoZWlnaHQpOwotfQotCiBib29sIEV3a1ZpZXc6OmlzRm9j
dXNlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGV2YXNfb2JqZWN0X2ZvY3VzX2dldChtX2V2YXNP
YmplY3QpOwpAQCAtNzY0LDMyICs3ODksMTIgQEAgdm9pZCBFd2tWaWV3OjppbmZvcm1JY29uQ2hh
bmdlKCkKICAgICBzbWFydENhbGxiYWNrPEljb25DaGFuZ2VkPigpLmNhbGwoKTsKIH0KIAotYm9v
bCBFd2tWaWV3OjpjcmVhdGVHTFN1cmZhY2UoY29uc3QgSW50U2l6ZSYgdmlld1NpemUpCitib29s
IEV3a1ZpZXc6OmNyZWF0ZUdMU3VyZmFjZSgpCiB7Ci0gICAgaWYgKCFtX2lzSGFyZHdhcmVBY2Nl
bGVyYXRlZCkKKyAgICBpZiAoIW1faXNBY2NlbGVyYXRlZCkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICBpZiAoIW1fZXZhc0dMKSB7Ci0gICAgICAgIEV2YXMqIGV2YXMgPSBldmFzX29iamVj
dF9ldmFzX2dldChtX2V2YXNPYmplY3QpOwotICAgICAgICBtX2V2YXNHTCA9IGFkb3B0UHRyKGV2
YXNfZ2xfbmV3KGV2YXMpKTsKLSAgICAgICAgaWYgKCFtX2V2YXNHTCkgewotICAgICAgICAgICAg
V0FSTigiRmFpbGVkIHRvIGNyZWF0ZSBFdmFzX0dMLCBmYWxsaW5nIGJhY2sgdG8gc29mdHdhcmUg
bW9kZS4iKTsKLSAgICAgICAgICAgIG1faXNIYXJkd2FyZUFjY2VsZXJhdGVkID0gZmFsc2U7Ci0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIW1f
ZXZhc0dMQ29udGV4dCkgewotICAgICAgICBtX2V2YXNHTENvbnRleHQgPSBFdmFzR0xDb250ZXh0
OjpjcmVhdGUobV9ldmFzR0wuZ2V0KCkpOwotICAgICAgICBpZiAoIW1fZXZhc0dMQ29udGV4dCkg
ewotICAgICAgICAgICAgV0FSTigiRmFpbGVkIHRvIGNyZWF0ZSBHTENvbnRleHQuIik7Ci0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBFd2tfVmlld19T
bWFydF9EYXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwotCi0gICAgRXZhc19HTF9Db25maWcgZXZhc0dM
Q29uZmlnID0geworICAgIHN0YXRpYyBFdmFzX0dMX0NvbmZpZyBldmFzR0xDb25maWcgPSB7CiAg
ICAgICAgIEVWQVNfR0xfUkdCQV84ODg4LAogICAgICAgICBFVkFTX0dMX0RFUFRIX0JJVF84LAog
ICAgICAgICBFVkFTX0dMX1NURU5DSUxfTk9ORSwKQEAgLTc5NywxOSArODAyLDIxIEBAIGJvb2wg
RXdrVmlldzo6Y3JlYXRlR0xTdXJmYWNlKGNvbnN0IEludFNpemUmIHZpZXdTaXplKQogICAgICAg
ICBFVkFTX0dMX01VTFRJU0FNUExFX05PTkUKICAgICB9OwogCi0gICAgLy8gUmVwbGFjZXMgaWYg
bm9uLW51bGwsIGFuZCBmcmVlcyBleGlzdGluZyBzdXJmYWNlIGFmdGVyIChPd25QdHIpLgotICAg
IG1fZXZhc0dMU3VyZmFjZSA9IEV2YXNHTFN1cmZhY2U6OmNyZWF0ZShtX2V2YXNHTC5nZXQoKSwg
JmV2YXNHTENvbmZpZywgdmlld1NpemUpOworICAgIC8vIFJlY3JlYXRlIHRvIGN1cnJlbnQgc2l6
ZTogUmVwbGFjZXMgaWYgbm9uLW51bGwsIGFuZCBmcmVlcyBleGlzdGluZyBzdXJmYWNlIGFmdGVy
IChPd25QdHIpLgorICAgIG1fZXZhc0dMU3VyZmFjZSA9IEV2YXNHTFN1cmZhY2U6OmNyZWF0ZSht
X2V2YXNHTC5nZXQoKSwgJmV2YXNHTENvbmZpZywgc2l6ZSgpKTsKICAgICBpZiAoIW1fZXZhc0dM
U3VyZmFjZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgRXZhc19OYXRpdmVfU3VyZmFj
ZSBuYXRpdmVTdXJmYWNlOwogICAgIGV2YXNfZ2xfbmF0aXZlX3N1cmZhY2VfZ2V0KG1fZXZhc0dM
LmdldCgpLCBtX2V2YXNHTFN1cmZhY2UtPnN1cmZhY2UoKSwgJm5hdGl2ZVN1cmZhY2UpOwotICAg
IGV2YXNfb2JqZWN0X2ltYWdlX25hdGl2ZV9zdXJmYWNlX3NldChzZC0+aW1hZ2UsICZuYXRpdmVT
dXJmYWNlKTsKKyAgICBldmFzX29iamVjdF9pbWFnZV9uYXRpdmVfc3VyZmFjZV9zZXQoc21hcnRE
YXRhKCktPmltYWdlLCAmbmF0aXZlU3VyZmFjZSk7CiAKICAgICBldmFzX2dsX21ha2VfY3VycmVu
dChtX2V2YXNHTC5nZXQoKSwgbV9ldmFzR0xTdXJmYWNlLT5zdXJmYWNlKCksIG1fZXZhc0dMQ29u
dGV4dC0+Y29udGV4dCgpKTsKIAogICAgIEV2YXNfR0xfQVBJKiBnbCA9IGV2YXNfZ2xfYXBpX2dl
dChtX2V2YXNHTC5nZXQoKSk7Ci0gICAgZ2wtPmdsVmlld3BvcnQoMCwgMCwgdmlld1NpemUud2lk
dGgoKSArIHNkLT52aWV3LngsIHZpZXdTaXplLmhlaWdodCgpICsgc2QtPnZpZXcueSk7CisKKyAg
ICBJbnRQb2ludCBib3VuZHNFbmQgPSB1c2VyVmlld3BvcnRUcmFuc2Zvcm0oKS5tYXBQb2ludChJ
bnRQb2ludChzaXplKCkpKTsKKyAgICBnbC0+Z2xWaWV3cG9ydCgwLCAwLCBib3VuZHNFbmQueCgp
LCBib3VuZHNFbmQueSgpKTsKICAgICBnbC0+Z2xDbGVhckNvbG9yKDEuMCwgMS4wLCAxLjAsIDAp
OwogICAgIGdsLT5nbENsZWFyKEdMX0NPTE9SX0JVRkZFUl9CSVQpOwogCkBAIC04MTgsMTYgKzgy
NSwxNSBAQCBib29sIEV3a1ZpZXc6OmNyZWF0ZUdMU3VyZmFjZShjb25zdCBJbnRTaXplJiB2aWV3
U2l6ZSkKIAogYm9vbCBFd2tWaWV3OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkK
IHsKLSAgICBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKS0+c2V0QWN0aXZlKHRydWUpOworICAg
IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSogc2NlbmUgPSBjb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUoKTsKKyAgICBpZiAoIXNjZW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
IW1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBzY2Vu
ZS0+c2V0QWN0aXZlKHRydWUpOwogCi0gICAgaWYgKCFtX2V2YXNHTFN1cmZhY2UpIHsKLSAgICAg
ICAgaWYgKCFjcmVhdGVHTFN1cmZhY2Uoc2l6ZSgpKSkgewotICAgICAgICAgICAgV0FSTigiRmFp
bGVkIHRvIGNyZWF0ZSBHTFN1cmZhY2UuIik7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIH0KKyAgICBpZiAobV9pc0FjY2VsZXJhdGVkICYmICFtX2V2YXNHTFN1cmZhY2UgJiYg
IWNyZWF0ZUdMU3VyZmFjZSgpKSB7CisgICAgICAgIFdBUk4oIkZhaWxlZCB0byBjcmVhdGUgR0xT
dXJmYWNlLiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgcmV0dXJuIHRy
dWU7CkBAIC04MzUsNiArODQxLDExIEBAIGJvb2wgRXdrVmlldzo6ZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZSgpCiAKIGJvb2wgRXdrVmlldzo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKCkKIHsKKyAgICBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUqIHNjZW5lID0gY29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lKCk7CisgICAgaWYgKCFzY2VuZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgc2NlbmUtPnNldEFjdGl2ZShmYWxzZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKQEAgLTExNDYsOCArMTE1Nyw3IEBAIHZvaWQgRXdrVmlldzo6aGFuZGxlRXZhc09iamVjdENh
bGN1bGF0ZShFdmFzX09iamVjdCogZXZhc09iamVjdCkKICAgICBFd2tfVmlld19TbWFydF9EYXRh
KiBzbWFydERhdGEgPSB0b1NtYXJ0RGF0YShldmFzT2JqZWN0KTsKICAgICBBU1NFUlQoc21hcnRE
YXRhKTsKIAotICAgIEV3a1ZpZXcqIHZpZXcgPSB0b0V3a1ZpZXcoc21hcnREYXRhKTsKLSAgICBB
U1NFUlQodmlldyk7CisgICAgRXdrVmlldyogc2VsZiA9IHRvRXdrVmlldyhzbWFydERhdGEpOwog
CiAgICAgc21hcnREYXRhLT5jaGFuZ2VkLmFueSA9IGZhbHNlOwogCkBAIC0xMTU5LDYgKzExNjks
OCBAQCB2b2lkIEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDYWxjdWxhdGUoRXZhc19PYmplY3Qq
IGV2YXNPYmplY3QpCiAgICAgICAgIHNtYXJ0RGF0YS0+dmlldy54ID0geDsKICAgICAgICAgc21h
cnREYXRhLT52aWV3LnkgPSB5OwogICAgICAgICBldmFzX29iamVjdF9tb3ZlKHNtYXJ0RGF0YS0+
aW1hZ2UsIHgsIHkpOworCisgICAgICAgIHNlbGYtPnNldFVzZXJWaWV3cG9ydFRyYW5zZm9ybShU
cmFuc2Zvcm1hdGlvbk1hdHJpeCgpLnRyYW5zbGF0ZSh4LCB5KSk7CiAgICAgfQogCiAgICAgaWYg
KHNtYXJ0RGF0YS0+Y2hhbmdlZC5zaXplKSB7CkBAIC0xMTY2LDExICsxMTc4LDggQEAgdm9pZCBF
d2tWaWV3OjpoYW5kbGVFdmFzT2JqZWN0Q2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0
KQogICAgICAgICBzbWFydERhdGEtPnZpZXcudyA9IHdpZHRoOwogICAgICAgICBzbWFydERhdGEt
PnZpZXcuaCA9IGhlaWdodDsKIAotICAgICAgICBpZiAodmlldy0+cGFnZSgpLT5kcmF3aW5nQXJl
YSgpKQotICAgICAgICAgICAgdmlldy0+cGFnZSgpLT5kcmF3aW5nQXJlYSgpLT5zZXRTaXplKElu
dFNpemUod2lkdGgsIGhlaWdodCksIEludFNpemUoKSk7Ci0KLSAgICAgICAgdmlldy0+c2V0TmVl
ZHNTdXJmYWNlUmVzaXplKCk7Ci0gICAgICAgIHZpZXctPnBhZ2VDbGllbnQoKS0+dXBkYXRlVmll
d3BvcnRTaXplKCk7CisgICAgICAgIHNlbGYtPnNldFNpemUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0
KSk7CisgICAgICAgIHNlbGYtPnNldE5lZWRzU3VyZmFjZVJlc2l6ZSgpOwogICAgIH0KIH0KIApA
QCAtMTMzNSw3ICsxMzQ0LDcgQEAgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IEV3a1ZpZXc6
OnRha2VTbmFwc2hvdCgpCiAgICAgICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7CiAKICAg
ICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwotICAgIGlmICghbV9pc0hh
cmR3YXJlQWNjZWxlcmF0ZWQpIHsKKyAgICBpZiAoIW1faXNBY2NlbGVyYXRlZCkgewogICAgICAg
ICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBzbmFwc2hvdCA9IGNyZWF0ZVN1cmZhY2VGb3JJbWFn
ZShzZC0+aW1hZ2UpOwogICAgICAgICAvLyBSZXN1bWUgYWxsIGFuaW1hdGlvbnMuCiAgICAgICAg
IFdLVmlld1Jlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKHdrVmlldygpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAppbmRleCA5YWRmYjBmOTRm
MzU4NTZiMGNjZjY0ZmE0ZDYwM2YwZDY5OWNjMTExLi5kYjI5MDk4OTE5NjdhNGM2ZDNiNmMwY2Nj
ODRiOTg4ZTdjYjJjYWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9Fd2tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdr
Vmlldy5oCkBAIC01Miw2ICs1Miw4IEBACiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCiAjaW5j
bHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKIAordHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3N1cmZhY2Ug
Y2Fpcm9fc3VyZmFjZV90OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENvbnRleHRNZW51
Q2xpZW50RWZsOwogY2xhc3MgRmluZENsaWVudEVmbDsKQEAgLTc1LDYgKzc3LDcgQEAgY2xhc3Mg
VmlicmF0aW9uQ2xpZW50RWZsOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBZmZpbmVU
cmFuc2Zvcm07CitjbGFzcyBUcmFuc2Zvcm1hdGlvbk1hdHJpeDsKIGNsYXNzIENvbG9yOwogY2xh
c3MgQ3Vyc29yOwogY2xhc3MgSW50U2l6ZTsKQEAgLTEyMiwxNyArMTI1LDI2IEBAIHB1YmxpYzoK
ICAgICBFd2tCYWNrRm9yd2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdCgpIHsgcmV0dXJuIG1fYmFj
a0ZvcndhcmRMaXN0LmdldCgpOyB9CiAgICAgRXdrV2luZG93RmVhdHVyZXMqIHdpbmRvd0ZlYXR1
cmVzKCk7CiAKLSAgICBXZWJDb3JlOjpJbnRTaXplIHNpemUoKSBjb25zdDsKICAgICBib29sIGlz
Rm9jdXNlZCgpIGNvbnN0OwogICAgIGJvb2wgaXNWaXNpYmxlKCkgY29uc3Q7CiAKICAgICB2b2lk
IHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlKTsKICAgICBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvcigpIGNvbnN0OwogCisgICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBtX3NpemU7
IH0KKworICAgIHZvaWQgc2V0VXNlclZpZXdwb3J0VHJhbnNmb3JtKGNvbnN0IFdlYkNvcmU6OlRy
YW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pIHsgbV91c2VyVmlld3BvcnRUcmFuc2Zvcm0g
PSB0cmFuc2Zvcm07IH0KKyAgICBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCB1c2VyVmll
d3BvcnRUcmFuc2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX3VzZXJWaWV3cG9ydFRyYW5zZm9ybTsg
fQorCisgICAgLy8gRklYTUU6IENvbnZlcnQgdG8gVHJhbnNmb3JtYXRpb25NYXRyaXguCiAgICAg
V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybVRvU2NlbmUoKSBjb25zdDsKICAgICBX
ZWJDb3JlOjpBZmZpbmVUcmFuc2Zvcm0gdHJhbnNmb3JtRnJvbVNjZW5lKCkgY29uc3Q7CiAgICAg
V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybVRvU2NyZWVuKCkgY29uc3Q7CiAKKyAg
ICB2b2lkIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KCk7CisgICAgdm9pZCBwYWludFRvQ2Fpcm9T
dXJmYWNlKGNhaXJvX3N1cmZhY2VfdCopOworCiAgICAgY29uc3QgY2hhciogdXJsKCkgY29uc3Qg
eyByZXR1cm4gbV91cmw7IH0KICAgICBjb25zdCBjaGFyKiBmYXZpY29uVVJMKCkgY29uc3QgeyBy
ZXR1cm4gbV9mYXZpY29uVVJMOyB9CiAgICAgY29uc3QgY2hhciogdGl0bGUoKSBjb25zdDsKQEAg
LTE2Myw3ICsxNzUsNyBAQCBwdWJsaWM6CiAgICAgV0tSZWN0IHdpbmRvd0dlb21ldHJ5KCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRXaW5kb3dHZW9tZXRyeShjb25zdCBXS1JlY3QmKTsKIAotICAgIGJv
b2wgY3JlYXRlR0xTdXJmYWNlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHZpZXdTaXplKTsKKyAg
ICBib29sIGNyZWF0ZUdMU3VyZmFjZSgpOwogICAgIGJvb2wgZW50ZXJBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSgpOwogICAgIGJvb2wgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCk7
CiAgICAgdm9pZCBzZXROZWVkc1N1cmZhY2VSZXNpemUoKSB7IG1fcGVuZGluZ1N1cmZhY2VSZXNp
emUgPSB0cnVlOyB9CkBAIC0xNzgsNyArMTkwLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXF1
ZXN0UG9wdXBNZW51KFdlYktpdDo6V2ViUG9wdXBNZW51UHJveHlFZmwqLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbiwgZG91YmxlIHBhZ2VTY2FsZUZhY3Rv
ciwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViUG9wdXBJdGVtPiYgaXRlbXMsIGludDMyX3Qgc2Vs
ZWN0ZWRJbmRleCk7CiAgICAgdm9pZCBjbG9zZVBvcHVwTWVudSgpOwotICAgIAorCiAgICAgdm9p
ZCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpXZWJDb250ZXh0TWVudVByb3h5RWZsKiwgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8V2ViS2l0OjpXZWJDb250
ZXh0TWVudUl0ZW1EYXRhPiYgaXRlbXMpOwogICAgIHZvaWQgaGlkZUNvbnRleHRNZW51KCk7CiAK
QEAgLTIwNyw4ICsyMTksNiBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IG5lZWRzIHJlZmFjdG9y
aW5nIChzcGxpdCBjYWxsYmFjayBpbnZva2UpCiAgICAgdm9pZCBpbmZvcm1VUkxDaGFuZ2UoKTsK
IAotICAgIGJvb2wgaXNIYXJkd2FyZUFjY2VsZXJhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0hh
cmR3YXJlQWNjZWxlcmF0ZWQ7IH0KLQogICAgIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiB0
YWtlU25hcHNob3QoKTsKIAogcHJpdmF0ZToKQEAgLTI1OCw2ICsyNjgsOCBAQCBwcml2YXRlOgog
ICAgIE93blB0cjxFdmFzX0dMPiBtX2V2YXNHTDsKICAgICBPd25QdHI8V2ViS2l0OjpFdmFzR0xD
b250ZXh0PiBtX2V2YXNHTENvbnRleHQ7CiAgICAgT3duUHRyPFdlYktpdDo6RXZhc0dMU3VyZmFj
ZT4gbV9ldmFzR0xTdXJmYWNlOworICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplOworICAgIFdl
YkNvcmU6OlRyYW5zZm9ybWF0aW9uTWF0cml4IG1fdXNlclZpZXdwb3J0VHJhbnNmb3JtOwogICAg
IGJvb2wgbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZTsKICAgICBPd25QdHI8V2ViS2l0OjpQYWdlQ2xp
ZW50QmFzZT4gbV9wYWdlQ2xpZW50OwogICAgIFJlZlB0cjxXZWJLaXQ6OldlYlZpZXc+IG1fd2Vi
VmlldzsKQEAgLTI5Miw3ICszMDQsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQogICAgIE93blB0cjxFd2tDb2xvclBpY2tlcj4gbV9jb2xvclBpY2tlcjsKICNlbmRp
ZgotICAgIGJvb2wgbV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQ7CisgICAgYm9vbCBtX2lzQWNjZWxl
cmF0ZWQ7CiAKICAgICBzdGF0aWMgRXZhc19TbWFydF9DbGFzcyBwYXJlbnRTbWFydENsYXNzOwog
fTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188092</attachid>
            <date>2013-02-13 09:00:09 -0800</date>
            <delta_ts>2013-02-13 09:48:10 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-109377-20130213175644.patch</filename>
            <type>text/plain</type>
            <size>18415</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzA4NzcxYjljNzNmZWQy
YWFhNTczNjIwMDAxNjM5ZWRhYWQ0ZDllYS4uZmYwM2MyNDkxZjdkMWM0OTAxZDJlODBmYTViYjJh
ZDlkODBmMGI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTAyLTExICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBb
V0syXVtFRkxdIENsZWFudXAgb2YgZ3JhcGhpY3MgcmVsYXRlZCBjb2RlIGluIEV3a1ZpZXcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM3NworCisg
ICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL0V3a1ZpZXcuY3BwOgorICAgICAgICAoRXdrVmlldzo6RXdrVmlldyk6CisKKyAg
ICAgICAgICAgIEluaXRpYWxpemUgdGhlIGV2YXNHTCBkZXBlbmRlbmNpZXMgaGVyZSBhbmQKKyAg
ICAgICAgICAgIHNldCBtX2lzQWNjZWxlcmF0ZWQgdG8gZmFsc2UgaWYgdGhpcyBmYWlscy4KKwor
ICAgICAgICAgICAgU2V0IHRoZSBjb29yZGluYXRlZCBncmFwaGljcyBzY2VuZSBhcyBhY3RpdmUK
KyAgICAgICAgICAgIHdoZW4gdXNpbmcgZml4ZWQgbGF5b3V0LgorCisgICAgICAgIChFd2tWaWV3
OjpzZXRTaXplKToKKworICAgICAgICAgICAgQWRkIGEgbWV0aG9kIHRvIHNldCB0aGUgc2l6ZSBh
bmQgdXNlci12aWV3cG9ydAorICAgICAgICAgICAgdHJhbnNmb3JtIGZyb20gdGhlIG91dHNpZGUu
IFRoZSBpZGVhIGlzIG1vdmluZworICAgICAgICAgICAgdGhpcyB0byBvdXIgcHVyZSBXSyBDIEFQ
SSBpbiB0aGUgZnV0dXJlLgorCisgICAgICAgIChFd2tWaWV3Ojp0cmFuc2Zvcm1Gcm9tU2NlbmUp
OgorICAgICAgICAoRXdrVmlldzo6dHJhbnNmb3JtVG9TY2VuZSk6CisKKyAgICAgICAgICAgIFVw
ZGF0ZSB0aGUgdHJhbnNmb3JtIG1ldGhvZHMgdG8gdXNlIHRoZSB1c2VyLQorICAgICAgICAgICAg
dmlld3BvcnQgdHJhbnNmb3JtLgorCisgICAgICAgIChFd2tWaWV3OjpwYWludFRvQ3VycmVudEdM
Q29udGV4dCk6CisgICAgICAgIChFd2tWaWV3OjpwYWludFRvQ2Fpcm9TdXJmYWNlKToKKworICAg
ICAgICAgICAgQWRkIG1ldGhvZHMgdG8gcGFpbnQgdG8gZWl0aGVyIHRoZSBjdXJyZW50IEdMIGNv
bnRleHQKKyAgICAgICAgICAgIG9yIHRvIGEgZ2l2ZW4gY2Fpcm9fc3VyZmFjZV90IChmb3Igc29m
dHdhcmUgZmFsbGJhY2sKKyAgICAgICAgICAgIGNhc2VzKS4KKworICAgICAgICAoRXdrVmlldzo6
ZGlzcGxheVRpbWVyRmlyZWQpOgorCisgICAgICAgICAgICBDbGVhbiB1cCBhbmQgdXNlIHRoZSB0
d28gYWJvdmUgbWV0aG9kcy4KKworICAgICAgICAoRXdrVmlldzo6c2NoZWR1bGVVcGRhdGVEaXNw
bGF5KToKKworICAgICAgICAgICAgVXNlIHRoZSBuZXcgc2l6ZSgpIG1ldGhvZHMgaW5zdGVhZCBv
ZiB1c2luZyB0aGUgCisgICAgICAgICAgICBzbWFydC1vYmplY3QgZGF0YSBkaXJlY3RseS4KKwor
ICAgICAgICAoRXdrVmlldzo6Y3JlYXRlR0xTdXJmYWNlKToKKworICAgICAgICAgICAgTWFrZSB0
aGlzIG1ldGhvZCB1c2Ugc2l6ZSgpIHRvIHF1ZXJ5IHRoZSBzdXJmYWNlIHNpemUKKyAgICAgICAg
ICAgIGFuZCBhdm9pZCBjcmVhdGluZyB0aGUgY29udGV4dCAoZG9uZSBpbiBjdG9yIG5vdykuCisg
ICAgICAgICAgICBBbHNvIGF2b2lkIHVzaW5nIHRoZSBzbWFydC1vYmplY3QgZGF0YSBkaXJlY3Rs
eS4KKworICAgICAgICAoRXdrVmlldzo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6
CisgICAgICAgIChFd2tWaWV3OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorCisg
ICAgICAgICAgICBUdXJuIG9uL29mZiB0aGUgdXNlIG9mIHRoZSBjb29yZC4gZ3JhcGhpY3Mgc2Nl
bmUuCisKKyAgICAgICAgKEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDYWxjdWxhdGUpOgorCisg
ICAgICAgICAgICBVc2UgdGhlIG5ldyBzZXRTaXplIGFuZCBzZXRVc2VyVmlld3BvcnRUcmFuc2Zv
cm0uCisKKyAgICAgICAgKEV3a1ZpZXc6OnRha2VTbmFwc2hvdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvRXdrVmlldy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFd2tW
aWV3KToKKyAgICAgICAgKEV3a1ZpZXc6OnNpemUpOgorICAgICAgICAoRXdrVmlldzo6c2V0VXNl
clZpZXdwb3J0VHJhbnNmb3JtKToKKyAgICAgICAgKEV3a1ZpZXc6OnVzZXJWaWV3cG9ydFRyYW5z
Zm9ybSk6CisKKyAgICAgICAgICAgIEFkZCB0aGUgbmV3IG1ldGhvZCBkZWZpbml0aW9ucyBhbmQg
cmVuYW1lIGlzSGFyZHdhcmVBY2NlbGVyYXRlZAorICAgICAgICAgICAgdG8gaXNBY2NlbGVyYXRl
ZCB3aGljaCBmaXRzIGJldHRlciB3aXRoIHRoZSBuYW1pbmcgaW4gV2ViQ29yZS4KKwogMjAxMy0w
Mi0xMyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW0VGTF1bV0syXSBJbnRyb2R1Y2UgV0tWaWV3Q2xpZW50IEMgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuY3BwCmluZGV4IGU2M2FlN2MwYjliZDlm
ODZkOTUzMGYwYTNlNmI4OWIxN2VmZmMxMjEuLmZlOTRhMWZhNWMzYjlkYTBhMjg3YzAzNTdhNmE2
YTY1YjZhNjYzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1Zp
ZXcuY3BwCkBAIC02OSw2ICs2OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DYWlyb1V0aWxpdGll
c0VmbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RyYW5zZm9ybWF0
aW9uTWF0cml4Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0ltYWdlQ2Fpcm8uaD4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC0yNDcsMTQgKzI0OCwyNiBAQCBFd2tWaWV3OjpFd2tW
aWV3KEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0LCBQYXNzUmVmUHRyPEV3a0NvbnRleHQ+IGNvbnRl
eHQsIFdLUGFnZQogI2VuZGlmCiAgICAgLCBtX2Rpc3BsYXlUaW1lcih0aGlzLCAmRXdrVmlldzo6
ZGlzcGxheVRpbWVyRmlyZWQpCiAgICAgLCBtX2lucHV0TWV0aG9kQ29udGV4dChJbnB1dE1ldGhv
ZENvbnRleHRFZmw6OmNyZWF0ZSh0aGlzLCBzbWFydERhdGEoKS0+YmFzZS5ldmFzKSkKLSAgICAs
IG1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKHRydWUpCisgICAgLCBtX2lzQWNjZWxlcmF0ZWQodHJ1
ZSkKIHsKICAgICBBU1NFUlQobV9ldmFzT2JqZWN0KTsKICAgICBBU1NFUlQobV9jb250ZXh0KTsK
IAorICAgIG1fZXZhc0dMID0gYWRvcHRQdHIoZXZhc19nbF9uZXcoZXZhc19vYmplY3RfZXZhc19n
ZXQobV9ldmFzT2JqZWN0KSkpOworICAgIGlmIChtX2V2YXNHTCkKKyAgICAgICAgbV9ldmFzR0xD
b250ZXh0ID0gRXZhc0dMQ29udGV4dDo6Y3JlYXRlKG1fZXZhc0dMLmdldCgpKTsKKworICAgIGlm
ICghbV9ldmFzR0xDb250ZXh0KSB7CisgICAgICAgIFdBUk4oIkZhaWxlZCB0byBjcmVhdGUgRXZh
c19HTCwgZmFsbGluZyBiYWNrIHRvIHNvZnR3YXJlIG1vZGUuIik7CisgICAgICAgIG1faXNBY2Nl
bGVyYXRlZCA9IGZhbHNlOworICAgIH0KKwogICAgIFdLVmlld0luaXRpYWxpemUod2tWaWV3KCkp
OwogCi0gICAgV0tQYWdlU2V0VXNlRml4ZWRMYXlvdXQod2tQYWdlKCksIGJlaGF2aW9yID09IERl
ZmF1bHRCZWhhdmlvcik7CisgICAgaWYgKGJlaGF2aW9yID09IERlZmF1bHRCZWhhdmlvcikgewor
ICAgICAgICBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKS0+c2V0QWN0aXZlKHRydWUpOworICAg
ICAgICBXS1BhZ2VTZXRVc2VGaXhlZExheW91dCh3a1BhZ2UoKSwgdHJ1ZSk7CisgICAgfQogCiAg
ICAgV0tQYWdlR3JvdXBSZWYgd2tQYWdlR3JvdXAgPSBXS1BhZ2VHZXRQYWdlR3JvdXAod2tQYWdl
KCkpOwogICAgIFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJlbmNlcyA9IFdLUGFnZUdyb3VwR2V0
UHJlZmVyZW5jZXMod2tQYWdlR3JvdXApOwpAQCAtNDQzLDI0ICs0NTYsMzIgQEAgZmxvYXQgRXdr
Vmlldzo6ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAogICAgIHJldHVybiBXS1BhZ2VHZXRCYWNr
aW5nU2NhbGVGYWN0b3Iod2tQYWdlKCkpOwogfQogCi1BZmZpbmVUcmFuc2Zvcm0gRXdrVmlldzo6
dHJhbnNmb3JtRnJvbVNjZW5lKCkgY29uc3QKK3ZvaWQgRXdrVmlldzo6c2V0U2l6ZShjb25zdCBJ
bnRTaXplJiBzaXplKQogewotICAgIEFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm07CisgICAgbV9z
aXplID0gc2l6ZTsKIAotICAgIC8vIE5vdGUgdGhhdCB3ZSBhcHBseSBib3RoIHBhZ2UgYW5kIGRl
dmljZSBzY2FsZSBmYWN0b3JzLgotICAgIHRyYW5zZm9ybS5zY2FsZSgxIC8gcGFnZVNjYWxlRmFj
dG9yKCkpOwotICAgIHRyYW5zZm9ybS5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0g
ICAgdHJhbnNmb3JtLnRyYW5zbGF0ZShwYWdlUG9zaXRpb24oKS54KCksIHBhZ2VQb3NpdGlvbigp
LnkoKSk7CisgICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBwYWdlKCktPmRyYXdp
bmdBcmVhKCk7CisgICAgaWYgKCFkcmF3aW5nQXJlYSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAg
RXdrX1ZpZXdfU21hcnRfRGF0YSogc2QgPSBzbWFydERhdGEoKTsKLSAgICB0cmFuc2Zvcm0udHJh
bnNsYXRlKC1zZC0+dmlldy54LCAtc2QtPnZpZXcueSk7CisgICAgZHJhd2luZ0FyZWEtPnNldFNp
emUobV9zaXplLCBJbnRTaXplKCkpOworICAgIHBhZ2VDbGllbnQoKS0+dXBkYXRlVmlld3BvcnRT
aXplKCk7Cit9CiAKLSAgICByZXR1cm4gdHJhbnNmb3JtOworQWZmaW5lVHJhbnNmb3JtIEV3a1Zp
ZXc6OnRyYW5zZm9ybUZyb21TY2VuZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRyYW5zZm9ybVRv
U2NlbmUoKS5pbnZlcnNlKCk7CiB9CiAKIEFmZmluZVRyYW5zZm9ybSBFd2tWaWV3Ojp0cmFuc2Zv
cm1Ub1NjZW5lKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdHJhbnNmb3JtRnJvbVNjZW5lKCkuaW52
ZXJzZSgpOworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybSA9IHVzZXJWaWV3cG9y
dFRyYW5zZm9ybSgpOworCisgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtcGFnZVBvc2l0aW9uKCku
eCgpLCAtcGFnZVBvc2l0aW9uKCkueSgpKTsKKyAgICB0cmFuc2Zvcm0uc2NhbGUoZGV2aWNlU2Nh
bGVGYWN0b3IoKSk7CisgICAgdHJhbnNmb3JtLnNjYWxlKHBhZ2VTY2FsZUZhY3RvcigpKTsKKwor
ICAgIHJldHVybiB0cmFuc2Zvcm0udG9BZmZpbmVUcmFuc2Zvcm0oKTsKIH0KIAogQWZmaW5lVHJh
bnNmb3JtIEV3a1ZpZXc6OnRyYW5zZm9ybVRvU2NyZWVuKCkgY29uc3QKQEAgLTUxNCw1NiArNTM1
LDY3IEBAIGlubGluZSBFd2tfVmlld19TbWFydF9EYXRhKiBFd2tWaWV3OjpzbWFydERhdGEoKSBj
b25zdAogICAgIHJldHVybiB0b1NtYXJ0RGF0YShtX2V2YXNPYmplY3QpOwogfQogCit2b2lkIEV3
a1ZpZXc6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0KCkKK3sKKyAgICBDb29yZGluYXRlZEdyYXBo
aWNzU2NlbmUqIHNjZW5lID0gY29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCk7CisgICAgaWYgKCFz
Y2VuZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gY2xlYW4g
dXAgdGhpcyBjb2RlIGFzIGl0IGlzIHNwbGl0IG92ZXIgQ29vcmRHZnggYW5kIFBhZ2UuCisgICAg
c2NlbmUtPnNldERyYXdzQmFja2dyb3VuZChXS1ZpZXdHZXREcmF3c0JhY2tncm91bmQod2tWaWV3
KCkpKTsKKworICAgIEZsb2F0UmVjdCB2aWV3cG9ydCA9IHVzZXJWaWV3cG9ydFRyYW5zZm9ybSgp
Lm1hcFJlY3QoSW50UmVjdChJbnRQb2ludCgpLCBzaXplKCkpKTsKKyAgICBzY2VuZS0+cGFpbnRU
b0N1cnJlbnRHTENvbnRleHQodHJhbnNmb3JtVG9TY2VuZSgpLnRvVHJhbnNmb3JtYXRpb25NYXRy
aXgoKSwgLyogb3BhY2l0eSAqLyAxLCB2aWV3cG9ydCk7Cit9CisKK3ZvaWQgRXdrVmlldzo6cGFp
bnRUb0NhaXJvU3VyZmFjZShjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UpCit7CisgICAgQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lKiBzY2VuZSA9IGNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpOwor
ICAgIGlmICghc2NlbmUpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0cjxjYWlyb190PiBn
cmFwaGljc0NvbnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUoc3VyZmFjZSkpOworCisgICAg
Y2Fpcm9fdHJhbnNsYXRlKGdyYXBoaWNzQ29udGV4dC5nZXQoKSwgLSBwYWdlUG9zaXRpb24oKS54
KCksIC0gcGFnZVBvc2l0aW9uKCkueSgpKTsKKyAgICBjYWlyb19zY2FsZShncmFwaGljc0NvbnRl
eHQuZ2V0KCksIHBhZ2VTY2FsZUZhY3RvcigpLCBwYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgY2Fp
cm9fc2NhbGUoZ3JhcGhpY3NDb250ZXh0LmdldCgpLCBkZXZpY2VTY2FsZUZhY3RvcigpLCBkZXZp
Y2VTY2FsZUZhY3RvcigpKTsKKworICAgIHNjZW5lLT5wYWludFRvR3JhcGhpY3NDb250ZXh0KGdy
YXBoaWNzQ29udGV4dC5nZXQoKSk7Cit9CisKIHZvaWQgRXdrVmlldzo6ZGlzcGxheVRpbWVyRmly
ZWQoVGltZXI8RXdrVmlldz4qKQogewogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21h
cnREYXRhKCk7CiAKICAgICBpZiAobV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSkgewogICAgICAgICAv
LyBDcmVhdGUgYSBHTCBzdXJmYWNlIGhlcmUgc28gdGhhdCBFdmFzIGhhcyBubyBjaGFuY2Ugb2Yg
cGFpbnRpbmcgdG8gYW4gZW1wdHkgR0wgc3VyZmFjZS4KLSAgICAgICAgaWYgKCFjcmVhdGVHTFN1
cmZhY2UoSW50U2l6ZShzZC0+dmlldy53LCBzZC0+dmlldy5oKSkpCisgICAgICAgIGlmICghY3Jl
YXRlR0xTdXJmYWNlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbV9wZW5kaW5n
U3VyZmFjZVJlc2l6ZSA9IGZhbHNlOwogICAgIH0KIAotICAgIGV2YXNfZ2xfbWFrZV9jdXJyZW50
KG1fZXZhc0dMLmdldCgpLCBtX2V2YXNHTFN1cmZhY2UtPnN1cmZhY2UoKSwgbV9ldmFzR0xDb250
ZXh0LT5jb250ZXh0KCkpOwotCi0gICAgLy8gV2UgYXJlIHN1cHBvc2VkIHRvIGNsaXAgdG8gdGhl
IGFjdHVhbCB2aWV3cG9ydCwgbm90aGluZyBsZXNzLgotICAgIEludFJlY3Qgdmlld3BvcnQoc2Qt
PnZpZXcueCwgc2QtPnZpZXcueSwgc2QtPnZpZXcudywgc2QtPnZpZXcuaCk7Ci0KLSAgICBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUqIHNjZW5lID0gY29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCk7
Ci0gICAgaWYgKCFzY2VuZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2NlbmUtPnNldEFjdGl2
ZSh0cnVlKTsKLSAgICBzY2VuZS0+c2V0RHJhd3NCYWNrZ3JvdW5kKFdLVmlld0dldERyYXdzQmFj
a2dyb3VuZCh3a1ZpZXcoKSkpOwotCi0gICAgaWYgKG1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKSB7
Ci0gICAgICAgIHNjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh0cmFuc2Zvcm1Ub1NjZW5l
KCkudG9UcmFuc2Zvcm1hdGlvbk1hdHJpeCgpLCAvKiBvcGFjaXR5ICovIDEsIHZpZXdwb3J0KTsK
LSAgICAgICAgLy8gc2QtPmltYWdlIGlzIHRpZWQgdG8gYSBuYXRpdmUgc3VyZmFjZS4gVGhlIG5h
dGl2ZSBzdXJmYWNlIGlzIGluIHRoZSBwYXJlbnQncyBjb29yZGluYXRlcywKLSAgICAgICAgLy8g
c28gd2UgbmVlZCB0byBhY2NvdW50IGZvciB0aGUgdmlld3BvcnQgcG9zaXRpb24gd2hlbiBjYWxs
aW5nIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZC4KLSAgICAgICAgZXZhc19vYmpl
Y3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFnZSwgdmlld3BvcnQueCgpLCB2aWV3cG9y
dC55KCksIHZpZXdwb3J0LndpZHRoKCksIHZpZXdwb3J0LmhlaWdodCgpKTsKLSAgICB9IGVsc2Ug
eworICAgIGlmICghbV9pc0FjY2VsZXJhdGVkKSB7CiAgICAgICAgIFJlZlB0cjxjYWlyb19zdXJm
YWNlX3Q+IHN1cmZhY2UgPSBjcmVhdGVTdXJmYWNlRm9ySW1hZ2Uoc2QtPmltYWdlKTsKICAgICAg
ICAgaWYgKCFzdXJmYWNlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIFJlZlB0cjxj
YWlyb190PiBncmFwaGljc0NvbnRleHQgPSBhZG9wdFJlZihjYWlyb19jcmVhdGUoc3VyZmFjZS5n
ZXQoKSkpOwotICAgICAgICBjYWlyb190cmFuc2xhdGUoZ3JhcGhpY3NDb250ZXh0LmdldCgpLCAt
IHBhZ2VQb3NpdGlvbigpLngoKSwgLSBwYWdlUG9zaXRpb24oKS55KCkpOwotICAgICAgICBjYWly
b19zY2FsZShncmFwaGljc0NvbnRleHQuZ2V0KCksIHBhZ2VTY2FsZUZhY3RvcigpLCBwYWdlU2Nh
bGVGYWN0b3IoKSk7Ci0gICAgICAgIGNhaXJvX3NjYWxlKGdyYXBoaWNzQ29udGV4dC5nZXQoKSwg
ZGV2aWNlU2NhbGVGYWN0b3IoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSk7Ci0gICAgICAgIHNjZW5l
LT5wYWludFRvR3JhcGhpY3NDb250ZXh0KGdyYXBoaWNzQ29udGV4dC5nZXQoKSk7Ci0gICAgICAg
IGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfdXBkYXRlX2FkZChzZC0+aW1hZ2UsIDAsIDAsIHZpZXdw
b3J0LndpZHRoKCksIHZpZXdwb3J0LmhlaWdodCgpKTsKKyAgICAgICAgcGFpbnRUb0NhaXJvU3Vy
ZmFjZShzdXJmYWNlLmdldCgpKTsKKyAgICAgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV91cGRh
dGVfYWRkKHNkLT5pbWFnZSwgMCwgMCwgc2QtPnZpZXcudywgc2QtPnZpZXcuaCk7CisgICAgICAg
IHJldHVybjsKICAgICB9CisKKyAgICBldmFzX2dsX21ha2VfY3VycmVudChtX2V2YXNHTC5nZXQo
KSwgbV9ldmFzR0xTdXJmYWNlLT5zdXJmYWNlKCksIG1fZXZhc0dMQ29udGV4dC0+Y29udGV4dCgp
KTsKKworICAgIHBhaW50VG9DdXJyZW50R0xDb250ZXh0KCk7CisKKyAgICAvLyBzZC0+aW1hZ2Ug
aXMgdGllZCB0byBhIG5hdGl2ZSBzdXJmYWNlLCB3aGljaCBpcyBpbiB0aGUgcGFyZW50J3MgY29v
cmRpbmF0ZXMuCisgICAgZXZhc19vYmplY3RfaW1hZ2VfZGF0YV91cGRhdGVfYWRkKHNkLT5pbWFn
ZSwgc2QtPnZpZXcueCwgc2QtPnZpZXcueSwgc2QtPnZpZXcudywgc2QtPnZpZXcuaCk7CiB9CiAK
IHZvaWQgRXdrVmlldzo6c2NoZWR1bGVVcGRhdGVEaXNwbGF5KCkKIHsKLSAgICAvLyBDb29yZGlu
YXRlZCBncmFwaGljZXMgbmVlZHMgdG8gc2NoZWR1bGUgYW4gZnVsbCB1cGRhdGUsIG5vdAotICAg
IC8vIHJlcGFpbnRpbmcgb2YgYSByZWdpb24uIFVwZGF0ZSBpbiB0aGUgZXZlbnQgbG9vcC4KLSAg
ICBFd2tfVmlld19TbWFydF9EYXRhKiBzZCA9IHNtYXJ0RGF0YSgpOwotICAgIC8vIEd1YXJkIGZv
ciB6ZXJvIHNpemVkIHZpZXdwb3J0LgotICAgIGlmICghKHNkLT52aWV3LncgJiYgc2QtPnZpZXcu
aCkpCisgICAgaWYgKHNpemUoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
ICghbV9kaXNwbGF5VGltZXIuaXNBY3RpdmUoKSkKQEAgLTYzNiwxMyArNjY4LDYgQEAgdm9pZCBF
d2tWaWV3OjpzZXRJbWFnZURhdGEodm9pZCogaW1hZ2VEYXRhLCBjb25zdCBJbnRTaXplJiBzaXpl
KQogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfY29weV9zZXQoc2QtPmltYWdlLCBpbWFnZURh
dGEpOwogfQogCi1JbnRTaXplIEV3a1ZpZXc6OnNpemUoKSBjb25zdAotewotICAgIGludCB3aWR0
aCwgaGVpZ2h0OwotICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5X2dldChtX2V2YXNPYmplY3QsIDAs
IDAsICZ3aWR0aCwgJmhlaWdodCk7Ci0gICAgcmV0dXJuIEludFNpemUod2lkdGgsIGhlaWdodCk7
Ci19Ci0KIGJvb2wgRXdrVmlldzo6aXNGb2N1c2VkKCkgY29uc3QKIHsKICAgICByZXR1cm4gZXZh
c19vYmplY3RfZm9jdXNfZ2V0KG1fZXZhc09iamVjdCk7CkBAIC03NjYsMzIgKzc5MSwxMiBAQCB2
b2lkIEV3a1ZpZXc6OmluZm9ybUljb25DaGFuZ2UoKQogICAgIHNtYXJ0Q2FsbGJhY2s8SWNvbkNo
YW5nZWQ+KCkuY2FsbCgpOwogfQogCi1ib29sIEV3a1ZpZXc6OmNyZWF0ZUdMU3VyZmFjZShjb25z
dCBJbnRTaXplJiB2aWV3U2l6ZSkKK2Jvb2wgRXdrVmlldzo6Y3JlYXRlR0xTdXJmYWNlKCkKIHsK
LSAgICBpZiAoIW1faXNIYXJkd2FyZUFjY2VsZXJhdGVkKQorICAgIGlmICghbV9pc0FjY2VsZXJh
dGVkKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICghbV9ldmFzR0wpIHsKLSAgICAg
ICAgRXZhcyogZXZhcyA9IGV2YXNfb2JqZWN0X2V2YXNfZ2V0KG1fZXZhc09iamVjdCk7Ci0gICAg
ICAgIG1fZXZhc0dMID0gYWRvcHRQdHIoZXZhc19nbF9uZXcoZXZhcykpOwotICAgICAgICBpZiAo
IW1fZXZhc0dMKSB7Ci0gICAgICAgICAgICBXQVJOKCJGYWlsZWQgdG8gY3JlYXRlIEV2YXNfR0ws
IGZhbGxpbmcgYmFjayB0byBzb2Z0d2FyZSBtb2RlLiIpOwotICAgICAgICAgICAgbV9pc0hhcmR3
YXJlQWNjZWxlcmF0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIGlmICghbV9ldmFzR0xDb250ZXh0KSB7Ci0gICAgICAgIG1fZXZh
c0dMQ29udGV4dCA9IEV2YXNHTENvbnRleHQ6OmNyZWF0ZShtX2V2YXNHTC5nZXQoKSk7Ci0gICAg
ICAgIGlmICghbV9ldmFzR0xDb250ZXh0KSB7Ci0gICAgICAgICAgICBXQVJOKCJGYWlsZWQgdG8g
Y3JlYXRlIEdMQ29udGV4dC4iKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21hcnREYXRhKCk7Ci0K
LSAgICBFdmFzX0dMX0NvbmZpZyBldmFzR0xDb25maWcgPSB7CisgICAgc3RhdGljIEV2YXNfR0xf
Q29uZmlnIGV2YXNHTENvbmZpZyA9IHsKICAgICAgICAgRVZBU19HTF9SR0JBXzg4ODgsCiAgICAg
ICAgIEVWQVNfR0xfREVQVEhfQklUXzgsCiAgICAgICAgIEVWQVNfR0xfU1RFTkNJTF9OT05FLApA
QCAtNzk5LDE5ICs4MDQsMjEgQEAgYm9vbCBFd2tWaWV3OjpjcmVhdGVHTFN1cmZhY2UoY29uc3Qg
SW50U2l6ZSYgdmlld1NpemUpCiAgICAgICAgIEVWQVNfR0xfTVVMVElTQU1QTEVfTk9ORQogICAg
IH07CiAKLSAgICAvLyBSZXBsYWNlcyBpZiBub24tbnVsbCwgYW5kIGZyZWVzIGV4aXN0aW5nIHN1
cmZhY2UgYWZ0ZXIgKE93blB0cikuCi0gICAgbV9ldmFzR0xTdXJmYWNlID0gRXZhc0dMU3VyZmFj
ZTo6Y3JlYXRlKG1fZXZhc0dMLmdldCgpLCAmZXZhc0dMQ29uZmlnLCB2aWV3U2l6ZSk7CisgICAg
Ly8gUmVjcmVhdGUgdG8gY3VycmVudCBzaXplOiBSZXBsYWNlcyBpZiBub24tbnVsbCwgYW5kIGZy
ZWVzIGV4aXN0aW5nIHN1cmZhY2UgYWZ0ZXIgKE93blB0cikuCisgICAgbV9ldmFzR0xTdXJmYWNl
ID0gRXZhc0dMU3VyZmFjZTo6Y3JlYXRlKG1fZXZhc0dMLmdldCgpLCAmZXZhc0dMQ29uZmlnLCBz
aXplKCkpOwogICAgIGlmICghbV9ldmFzR0xTdXJmYWNlKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBFdmFzX05hdGl2ZV9TdXJmYWNlIG5hdGl2ZVN1cmZhY2U7CiAgICAgZXZhc19nbF9u
YXRpdmVfc3VyZmFjZV9nZXQobV9ldmFzR0wuZ2V0KCksIG1fZXZhc0dMU3VyZmFjZS0+c3VyZmFj
ZSgpLCAmbmF0aXZlU3VyZmFjZSk7Ci0gICAgZXZhc19vYmplY3RfaW1hZ2VfbmF0aXZlX3N1cmZh
Y2Vfc2V0KHNkLT5pbWFnZSwgJm5hdGl2ZVN1cmZhY2UpOworICAgIGV2YXNfb2JqZWN0X2ltYWdl
X25hdGl2ZV9zdXJmYWNlX3NldChzbWFydERhdGEoKS0+aW1hZ2UsICZuYXRpdmVTdXJmYWNlKTsK
IAogICAgIGV2YXNfZ2xfbWFrZV9jdXJyZW50KG1fZXZhc0dMLmdldCgpLCBtX2V2YXNHTFN1cmZh
Y2UtPnN1cmZhY2UoKSwgbV9ldmFzR0xDb250ZXh0LT5jb250ZXh0KCkpOwogCiAgICAgRXZhc19H
TF9BUEkqIGdsID0gZXZhc19nbF9hcGlfZ2V0KG1fZXZhc0dMLmdldCgpKTsKLSAgICBnbC0+Z2xW
aWV3cG9ydCgwLCAwLCB2aWV3U2l6ZS53aWR0aCgpICsgc2QtPnZpZXcueCwgdmlld1NpemUuaGVp
Z2h0KCkgKyBzZC0+dmlldy55KTsKKworICAgIEludFBvaW50IGJvdW5kc0VuZCA9IHVzZXJWaWV3
cG9ydFRyYW5zZm9ybSgpLm1hcFBvaW50KEludFBvaW50KHNpemUoKSkpOworICAgIGdsLT5nbFZp
ZXdwb3J0KDAsIDAsIGJvdW5kc0VuZC54KCksIGJvdW5kc0VuZC55KCkpOwogICAgIGdsLT5nbENs
ZWFyQ29sb3IoMS4wLCAxLjAsIDEuMCwgMCk7CiAgICAgZ2wtPmdsQ2xlYXIoR0xfQ09MT1JfQlVG
RkVSX0JJVCk7CiAKQEAgLTgyMCwxNiArODI3LDE1IEBAIGJvb2wgRXdrVmlldzo6Y3JlYXRlR0xT
dXJmYWNlKGNvbnN0IEludFNpemUmIHZpZXdTaXplKQogCiBib29sIEV3a1ZpZXc6OmVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogewotICAgIGNvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZSgpLT5zZXRBY3RpdmUodHJ1ZSk7CisgICAgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKiBzY2Vu
ZSA9IGNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpOworICAgIGlmICghc2NlbmUpCisgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIGlmICghbV9pc0hhcmR3YXJlQWNjZWxlcmF0ZWQpCi0gICAg
ICAgIHJldHVybiB0cnVlOworICAgIHNjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CiAKLSAgICBpZiAo
IW1fZXZhc0dMU3VyZmFjZSkgewotICAgICAgICBpZiAoIWNyZWF0ZUdMU3VyZmFjZShzaXplKCkp
KSB7Ci0gICAgICAgICAgICBXQVJOKCJGYWlsZWQgdG8gY3JlYXRlIEdMU3VyZmFjZS4iKTsKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQorICAgIGlmIChtX2lzQWNjZWxlcmF0
ZWQgJiYgIW1fZXZhc0dMU3VyZmFjZSAmJiAhY3JlYXRlR0xTdXJmYWNlKCkpIHsKKyAgICAgICAg
V0FSTigiRmFpbGVkIHRvIGNyZWF0ZSBHTFN1cmZhY2UuIik7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTgzNyw2ICs4NDMsMTEgQEAgYm9vbCBF
d2tWaWV3OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIAogYm9vbCBFd2tWaWV3
OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogeworICAgIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZSogc2NlbmUgPSBjb29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKTsKKyAgICBpZiAo
IXNjZW5lKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzY2VuZS0+c2V0QWN0aXZlKGZh
bHNlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTE0OCw4ICsxMTU5LDcgQEAgdm9pZCBF
d2tWaWV3OjpoYW5kbGVFdmFzT2JqZWN0Q2FsY3VsYXRlKEV2YXNfT2JqZWN0KiBldmFzT2JqZWN0
KQogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSA9IHRvU21hcnREYXRhKGV2YXNP
YmplY3QpOwogICAgIEFTU0VSVChzbWFydERhdGEpOwogCi0gICAgRXdrVmlldyogdmlldyA9IHRv
RXdrVmlldyhzbWFydERhdGEpOwotICAgIEFTU0VSVCh2aWV3KTsKKyAgICBFd2tWaWV3KiBzZWxm
ID0gdG9Fd2tWaWV3KHNtYXJ0RGF0YSk7CiAKICAgICBzbWFydERhdGEtPmNoYW5nZWQuYW55ID0g
ZmFsc2U7CiAKQEAgLTExNjEsNiArMTE3MSw4IEBAIHZvaWQgRXdrVmlldzo6aGFuZGxlRXZhc09i
amVjdENhbGN1bGF0ZShFdmFzX09iamVjdCogZXZhc09iamVjdCkKICAgICAgICAgc21hcnREYXRh
LT52aWV3LnggPSB4OwogICAgICAgICBzbWFydERhdGEtPnZpZXcueSA9IHk7CiAgICAgICAgIGV2
YXNfb2JqZWN0X21vdmUoc21hcnREYXRhLT5pbWFnZSwgeCwgeSk7CisKKyAgICAgICAgc2VsZi0+
c2V0VXNlclZpZXdwb3J0VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4KCkudHJhbnNsYXRl
KHgsIHkpKTsKICAgICB9CiAKICAgICBpZiAoc21hcnREYXRhLT5jaGFuZ2VkLnNpemUpIHsKQEAg
LTExNjgsMTEgKzExODAsOCBAQCB2b2lkIEV3a1ZpZXc6OmhhbmRsZUV2YXNPYmplY3RDYWxjdWxh
dGUoRXZhc19PYmplY3QqIGV2YXNPYmplY3QpCiAgICAgICAgIHNtYXJ0RGF0YS0+dmlldy53ID0g
d2lkdGg7CiAgICAgICAgIHNtYXJ0RGF0YS0+dmlldy5oID0gaGVpZ2h0OwogCi0gICAgICAgIGlm
ICh2aWV3LT5wYWdlKCktPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgICAgICB2aWV3LT5wYWdlKCkt
PmRyYXdpbmdBcmVhKCktPnNldFNpemUoSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSwgSW50U2l6ZSgp
KTsKLQotICAgICAgICB2aWV3LT5zZXROZWVkc1N1cmZhY2VSZXNpemUoKTsKLSAgICAgICAgdmll
dy0+cGFnZUNsaWVudCgpLT51cGRhdGVWaWV3cG9ydFNpemUoKTsKKyAgICAgICAgc2VsZi0+c2V0
U2l6ZShJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAgICAgICAgc2VsZi0+c2V0TmVlZHNTdXJm
YWNlUmVzaXplKCk7CiAgICAgfQogfQogCkBAIC0xMzM3LDcgKzEzNDYsNyBAQCBQYXNzUmVmUHRy
PGNhaXJvX3N1cmZhY2VfdD4gRXdrVmlldzo6dGFrZVNuYXBzaG90KCkKICAgICAgICAgZWNvcmVf
bWFpbl9sb29wX2l0ZXJhdGUoKTsKIAogICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNkID0gc21h
cnREYXRhKCk7Ci0gICAgaWYgKCFtX2lzSGFyZHdhcmVBY2NlbGVyYXRlZCkgeworICAgIGlmICgh
bV9pc0FjY2VsZXJhdGVkKSB7CiAgICAgICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IHNuYXBz
aG90ID0gY3JlYXRlU3VyZmFjZUZvckltYWdlKHNkLT5pbWFnZSk7CiAgICAgICAgIC8vIFJlc3Vt
ZSBhbGwgYW5pbWF0aW9ucy4KICAgICAgICAgV0tWaWV3UmVzdW1lQWN0aXZlRE9NT2JqZWN0c0Fu
ZEFuaW1hdGlvbnMod2tWaWV3KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvRXdrVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
RXdrVmlldy5oCmluZGV4IGU0MmQxNGEzM2VjZjUxNzUyZmM1MGFiMWE5NmNlNDY2ZDZkOGU2NWQu
LjZmY2M1Y2MyNzc0MjVmZjNlODNhOGUwMjY2NzQ0MWU0NzkwZGUwZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3LmgKQEAgLTUyLDYgKzUyLDggQEAKICNpbmNs
dWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogCit0eXBl
ZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWlyb19zdXJmYWNlX3Q7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogY2xhc3MgQ29udGV4dE1lbnVDbGllbnRFZmw7CiBjbGFzcyBGaW5kQ2xpZW50RWZs
OwpAQCAtNzcsOSArNzksMTAgQEAgY2xhc3MgVmlicmF0aW9uQ2xpZW50RWZsOwogbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgQ29sb3I7CitjbGFzcyBD
b29yZGluYXRlZEdyYXBoaWNzU2NlbmU7CiBjbGFzcyBDdXJzb3I7CiBjbGFzcyBJbnRTaXplOwot
Y2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOworY2xhc3MgVHJhbnNmb3JtYXRpb25NYXRy
aXg7CiB9CiAKIGNsYXNzIEV3a0NvbnRleHQ7CkBAIC0xMjMsMTcgKzEyNiwyNiBAQCBwdWJsaWM6
CiAgICAgRXdrQmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QoKSB7IHJldHVybiBtX2Jh
Y2tGb3J3YXJkTGlzdC5nZXQoKTsgfQogICAgIEV3a1dpbmRvd0ZlYXR1cmVzKiB3aW5kb3dGZWF0
dXJlcygpOwogCi0gICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplKCkgY29uc3Q7CiAgICAgYm9vbCBp
c0ZvY3VzZWQoKSBjb25zdDsKICAgICBib29sIGlzVmlzaWJsZSgpIGNvbnN0OwogCiAgICAgdm9p
ZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSk7CiAgICAgZmxvYXQgZGV2aWNlU2Nh
bGVGYWN0b3IoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXpl
OyB9CisKKyAgICB2b2lkIHNldFVzZXJWaWV3cG9ydFRyYW5zZm9ybShjb25zdCBXZWJDb3JlOjpU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKSB7IG1fdXNlclZpZXdwb3J0VHJhbnNmb3Jt
ID0gdHJhbnNmb3JtOyB9CisgICAgV2ViQ29yZTo6VHJhbnNmb3JtYXRpb25NYXRyaXggdXNlclZp
ZXdwb3J0VHJhbnNmb3JtKCkgY29uc3QgeyByZXR1cm4gbV91c2VyVmlld3BvcnRUcmFuc2Zvcm07
IH0KKworICAgIC8vIEZJWE1FOiBDb252ZXJ0IHRvIFRyYW5zZm9ybWF0aW9uTWF0cml4LgogICAg
IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1Ub1NjZW5lKCkgY29uc3Q7CiAgICAg
V2ViQ29yZTo6QWZmaW5lVHJhbnNmb3JtIHRyYW5zZm9ybUZyb21TY2VuZSgpIGNvbnN0OwogICAg
IFdlYkNvcmU6OkFmZmluZVRyYW5zZm9ybSB0cmFuc2Zvcm1Ub1NjcmVlbigpIGNvbnN0OwogCisg
ICAgdm9pZCBwYWludFRvQ3VycmVudEdMQ29udGV4dCgpOworICAgIHZvaWQgcGFpbnRUb0NhaXJv
U3VyZmFjZShjYWlyb19zdXJmYWNlX3QqKTsKKwogICAgIGNvbnN0IGNoYXIqIHVybCgpIGNvbnN0
IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgY29uc3QgY2hhciogZmF2aWNvblVSTCgpIGNvbnN0IHsg
cmV0dXJuIG1fZmF2aWNvblVSTDsgfQogICAgIGNvbnN0IGNoYXIqIHRpdGxlKCkgY29uc3Q7CkBA
IC0xNjQsNyArMTc2LDcgQEAgcHVibGljOgogICAgIFdLUmVjdCB3aW5kb3dHZW9tZXRyeSgpIGNv
bnN0OwogICAgIHZvaWQgc2V0V2luZG93R2VvbWV0cnkoY29uc3QgV0tSZWN0Jik7CiAKLSAgICBi
b29sIGNyZWF0ZUdMU3VyZmFjZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB2aWV3U2l6ZSk7Cisg
ICAgYm9vbCBjcmVhdGVHTFN1cmZhY2UoKTsKICAgICBib29sIGVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUoKTsKICAgICBib29sIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgp
OwogICAgIHZvaWQgc2V0TmVlZHNTdXJmYWNlUmVzaXplKCkgeyBtX3BlbmRpbmdTdXJmYWNlUmVz
aXplID0gdHJ1ZTsgfQpAQCAtMTc5LDcgKzE5MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVx
dWVzdFBvcHVwTWVudShXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5RWZsKiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24sIGRvdWJsZSBwYWdlU2NhbGVGYWN0
b3IsIGNvbnN0IFZlY3RvcjxXZWJLaXQ6OldlYlBvcHVwSXRlbT4mIGl0ZW1zLCBpbnQzMl90IHNl
bGVjdGVkSW5kZXgpOwogICAgIHZvaWQgY2xvc2VQb3B1cE1lbnUoKTsKLSAgICAKKwogICAgIHZv
aWQgc2hvd0NvbnRleHRNZW51KFdlYktpdDo6V2ViQ29udGV4dE1lbnVQcm94eUVmbCosIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwb3NpdGlvbiwgY29uc3QgVmVjdG9yPFdlYktpdDo6V2ViQ29u
dGV4dE1lbnVJdGVtRGF0YT4mIGl0ZW1zKTsKICAgICB2b2lkIGhpZGVDb250ZXh0TWVudSgpOwog
CkBAIC0yMDgsOCArMjIwLDYgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBuZWVkcyByZWZhY3Rv
cmluZyAoc3BsaXQgY2FsbGJhY2sgaW52b2tlKQogICAgIHZvaWQgaW5mb3JtVVJMQ2hhbmdlKCk7
CiAKLSAgICBib29sIGlzSGFyZHdhcmVBY2NlbGVyYXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNI
YXJkd2FyZUFjY2VsZXJhdGVkOyB9Ci0KICAgICBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4g
dGFrZVNuYXBzaG90KCk7CiAKIHByaXZhdGU6CkBAIC0yNTksNiArMjY5LDggQEAgcHJpdmF0ZToK
ICAgICBPd25QdHI8RXZhc19HTD4gbV9ldmFzR0w7CiAgICAgT3duUHRyPFdlYktpdDo6RXZhc0dM
Q29udGV4dD4gbV9ldmFzR0xDb250ZXh0OwogICAgIE93blB0cjxXZWJLaXQ6OkV2YXNHTFN1cmZh
Y2U+IG1fZXZhc0dMU3VyZmFjZTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1fc2l6ZTsKKyAgICBX
ZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCBtX3VzZXJWaWV3cG9ydFRyYW5zZm9ybTsKICAg
ICBib29sIG1fcGVuZGluZ1N1cmZhY2VSZXNpemU7CiAgICAgT3duUHRyPFdlYktpdDo6UGFnZUNs
aWVudEJhc2U+IG1fcGFnZUNsaWVudDsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJWaWV3PiBtX3dl
YlZpZXc7CkBAIC0yOTQsNyArMzA2LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUikKICAgICBPd25QdHI8RXdrQ29sb3JQaWNrZXI+IG1fY29sb3JQaWNrZXI7CiAjZW5k
aWYKLSAgICBib29sIG1faXNIYXJkd2FyZUFjY2VsZXJhdGVkOworICAgIGJvb2wgbV9pc0FjY2Vs
ZXJhdGVkOwogCiAgICAgc3RhdGljIEV2YXNfU21hcnRfQ2xhc3MgcGFyZW50U21hcnRDbGFzczsK
IH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>