<?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>144934</bug_id>
          
          <creation_ts>2015-05-12 15:57:28 -0700</creation_ts>
          <short_desc>View scale changes are temporarily lost after restoring a page from the page cache</short_desc>
          <delta_ts>2015-05-13 11:14:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1094303</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-05-12 15:57:28 -0700</bug_when>
    <thetext>Steps to Reproduce (through the code!):

1. Set a non-1 viewScale.
2. Navigate.
3. Set a different non-1 viewScale.
4. Go back.

Expected:

WebCore&apos;s pageScaleFactor should be equal to the viewScale set in #3.
The transform on the tiles should be a scale equal to the viewScale set in #3.

Actual:

WebCore&apos;s pageScaleFactor is equal to the viewScale set in #1.
The transform on the tiles is a scale equal to the viewScale set in #1.

Notes:

This is happening because the pageScaleFactor stored on HistoryItem is WebCore&apos;s pageScaleFactor, which has
the viewScale multiplied into it. When we come back from the PageCache, HistoryController does a setPageScaleFactor() with
the stored scale (with the old viewScale multiplied into it), disregarding any viewScale changes since that item went into the PageCache.

Since WebKit2 keeps pageScale and viewScale separately, doing a small pinch zoom will push the correct pageScaleFactor to WebCore and recover from this situation.

To fix this, I think we&apos;re going to have to inform WebCore of the viewScale, something I had previously been trying to avoid -- but only for the purposes of the PageCache, so hopefully it will be OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094305</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-05-12 16:02:17 -0700</bug_when>
    <thetext>There&apos;s a second hilarity here where, once we fix HistoryController to apply the new viewScale when restoring the pageScale, since the Page&apos;s m_pageScaleFactor is already updated to the new value, setPageScaleFactor() will bail and fail to update the scale on the tile container layer.

This never mattered before because the scale that HistoryController handed to setPageScaleFactor() was always the same as the scale already applied to the layer that is coming back from the PageCache (which is no longer true).

I&apos;ve worked around this by notifying the frames of a pageScaleFactor change if either of the scales is now different from what was stored in the history item -- I&apos;m not sure this is the best fix. Alternatively, we could make setPageScaleFactor take a &quot;no really, I mean it&quot; parameter...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094307</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-05-12 16:03:01 -0700</bug_when>
    <thetext>... or, check with the compositor&apos;s notion of the current page scale factor and avoid bailing if it doesn&apos;t match m_pageScaleFactor. Or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094443</commentid>
    <comment_count>3</comment_count>
      <attachid>253027</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-05-13 01:55:11 -0700</bug_when>
    <thetext>Created attachment 253027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094445</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-05-13 01:56:45 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I&apos;ve worked around this by notifying the frames of a pageScaleFactor change
&gt; if either of the scales is now different from what was stored in the history
&gt; item -- I&apos;m not sure this is the best fix.

It turns out there was already a mechanism to do this that I just made use of for this patch (after reinventing it :D).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094480</commentid>
    <comment_count>5</comment_count>
      <attachid>253027</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-05-13 10:19:02 -0700</bug_when>
    <thetext>Comment on attachment 253027
Patch

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

&gt; Source/WebCore/page/Page.cpp:839
&gt; +    m_viewScaleFactor = scale;
&gt; +    PageCache::singleton().markPagesForDeviceOrPageScaleChanged(*this);
&gt; +    PageCache::singleton().markPagesForFullStyleRecalc(*this);

Should this early-return if the scale hasn&apos;t changed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094483</commentid>
    <comment_count>6</comment_count>
      <attachid>253027</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-13 10:31:32 -0700</bug_when>
    <thetext>Comment on attachment 253027
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1451
&gt;  }

What does this function exactly do? Does it scale the view scale factor: new_scale_factor = current_scale_factor * scale? Or does it set the view scale factor: new_scale_factor = scale? I think it is the later and I think this function should be renamed setViewScaleFactor()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094488</commentid>
    <comment_count>7</comment_count>
      <attachid>253027</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-05-13 10:43:55 -0700</bug_when>
    <thetext>Comment on attachment 253027
Patch

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

&gt;&gt; Source/WebCore/page/Page.cpp:839
&gt;&gt; +    PageCache::singleton().markPagesForFullStyleRecalc(*this);
&gt; 
&gt; Should this early-return if the scale hasn&apos;t changed?

Probably! The WebKit2 one should too, probably.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1451
&gt;&gt;  }
&gt; 
&gt; What does this function exactly do? Does it scale the view scale factor: new_scale_factor = current_scale_factor * scale? Or does it set the view scale factor: new_scale_factor = scale? I think it is the later and I think this function should be renamed setViewScaleFactor()?

You&apos;re talking about scaleView()? The naming of scaleView matches the longstanding scalePage() message name, which does the same thing. Not sure why, but I&apos;m not going to change it now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094498</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-05-13 11:14:55 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/184290</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253027</attachid>
            <date>2015-05-13 01:55:11 -0700</date>
            <delta_ts>2015-05-13 10:04:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144934-20150513015349.patch</filename>
            <type>text/plain</type>
            <size>14778</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0MTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRmZTZhMTgyOWIyOWI3
N2JjNWFiNDk1MzQyNDFjZTQ0NTBiZTUxMy4uOGRhNWExMGQ1NDAyMmJkM2M2ZDA2NzVkMjEwMGZl
MTNjYmE4NDM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE1LTA1LTEzICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBWaWV3IHNj
YWxlIGNoYW5nZXMgYXJlIHRlbXBvcmFyaWx5IGxvc3QgYWZ0ZXIgcmVzdG9yaW5nIGEgcGFnZSBm
cm9tIHRoZSBwYWdlIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDQ5MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRQYWdlOjpDYWNoZWRQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFBhZ2U6OnJl
c3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUGFnZTo6Y2xlYXIpOgorICAgICAgICAq
IGhpc3RvcnkvQ2FjaGVkUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUGFnZTo6bWFy
a0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCk6IFJlbmFtZWQuCisgICAgICAgICogaGlzdG9y
eS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjptYXJrUGFnZXNG
b3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQpOiBSZW5hbWVkLgorICAgICAgICAqIGhpc3Rvcnkv
UGFnZUNhY2hlLmg6CisgICAgICAgIFJlbmFtZSBQYWdlQ2FjaGUvQ2FjaGVkUGFnZSBtZXRob2Rz
IHRvIG1ha2UgaXQgbW9yZSBjbGVhciB0aGF0IHRoZXkKKyAgICAgICAgd2lsbCBldmVudHVhbGx5
IHJlc3VsdCBpbiBjYWxsaW5nIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpLgorICAg
ICAgICBBbHNvLCB1c2UgbW9kZXJuIGluaXRpYWxpemF0aW9uIGZvciBDYWNoZWRQYWdlIG1lbWJl
cnMuCisKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0
ZVRvSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNj
cm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKToKKyAgICAgICAgU3RvcmUgdGhlIHBhZ2VTY2FsZUZh
Y3RvciBvbiBIaXN0b3J5SXRlbSB3aXRoIHRoZSB2aWV3IHNjYWxlIGZhY3RvcmVkIG91dCwKKyAg
ICAgICAgYmVjYXVzZSB0aGUgdmlldyBzY2FsZSBjYW4gY2hhbmdlIHdoaWxlIHRoZSBwYWdlIGlz
IGluIHRoZSBwYWdlIGNhY2hlLCBhbmQKKyAgICAgICAgV2ViQ29yZSBuZWVkcyBhIHdheSAtIHdp
dGhvdXQgY29uc3VsdGluZyB3aXRoIFdlYktpdDIgLSB0byBhcHBseSB0aGUgY2hhbmdlZAorICAg
ICAgICB2aWV3IHNjYWxlIHRvIHRoZSBjYWNoZWQgcGFnZSBzY2FsZS4KKworICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRWaWV3U2NhbGVGYWN0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0RGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAg
ICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6dmlld1NjYWxlRmFjdG9y
KToKKyAgICAgICAgS2VlcCB0cmFjayBvZiB0aGUgdmlld1NjYWxlRmFjdG9yLCBhbmQgbWFyayBh
bGwgcGFnZXMgaW4gdGhlIHBhZ2UgY2FjaGUKKyAgICAgICAgYXMgbmVlZGluZyB0byBjYWxsIGRl
dmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCBhbmQgZG8gYSBmdWxsIHN0eWxlIHJlY2FsYwor
ICAgICAgICB3aGVuIHRoZXkgY29tZSBiYWNrIGZyb20gdGhlIHBhZ2UgY2FjaGUuCisKKyAgICAg
ICAgRm9yIG5vdywgd2UgZXhwZWN0IGFsbCBjYWxsZXJzIG9mIHNldFBhZ2VTY2FsZUZhY3RvciAo
aW5jbHVkaW5nIFdlYktpdDIgYW5kCisgICAgICAgIEhpc3RvcnlDb250cm9sbGVyKSB0byBtdWx0
aXBseSB0aGUgdmlld1NjYWxlIGluIG1hbnVhbGx5LCB0byBhdm9pZCB0aGUKKyAgICAgICAgc2ln
bmlmaWNhbnQgYW1vdW50IG9mIGNoYW5nZSBpbiBXZWJDb3JlIHRoYXQgd291bGQgYmUgcmVxdWly
ZWQgdG8ga2VlcCB0aGVtCisgICAgICAgIHRvdGFsbHkgc2VwYXJhdGVseS4KKwogMjAxNS0wNS0x
MSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQ2xv
c2UgYWxsIG9wZW4gZGF0YWJhc2VzIGluIGV4cGlyYXRpb24gaGFuZGxlciBvZiBwcm9jZXNzIGFz
c2VydGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDMwMzc1NzRmN2NmNGEyNDZhZDkzZjMxOGQ4NWMxODI3YTRj
YjdiM2QuLjNiYzgxNmUwODhmYTljMTUxNzk5ZjVmMThhMDlkYTc3YjczYTYzOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAxNS0wNS0xMyAgVGltb3RoeSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVmlldyBzY2FsZSBjaGFuZ2VzIGFyZSB0ZW1w
b3JhcmlseSBsb3N0IGFmdGVyIHJlc3RvcmluZyBhIHBhZ2UgZnJvbSB0aGUgcGFnZSBjYWNoZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0OTM0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzY2FsZVBhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzY2FsZVBhZ2VJblZpZXdDb29yZGluYXRlcyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnZpZXdTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNjYWxlVmlldyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6dmlld1NjYWxlRmFjdG9yKTogRGVsZXRlZC4KKyAgICAgICAgR2V0IHJpZCBv
ZiBtX3ZpZXdTY2FsZUZhY3RvciwgaW5zdGVhZCB1c2luZyBQYWdlOjp2aWV3U2NhbGVGYWN0b3Iu
CisKIDIwMTUtMDUtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUGFnZSBvdmVybGF5IGFjdGlvbiBjb250ZXh0IG92ZXJyaWRlIHNob3VsZCBpbmRp
Y2F0ZSB0aGUgc291cmNlIG9mIHRoZSByZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQ
YWdlLmNwcAppbmRleCA4NGFhMDMwNGQ1ZTJkZGMzMzkzYzNjZThkOGNiZTU5ODY1ZWViMTdjLi5l
ZjcxZWU2YzE0MzNiZDFlOTRiMDVjM2UwOGVjZjY3OGNjNjY4MmI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvQ2FjaGVkUGFnZS5jcHAKQEAgLTUyLDEyICs1Miw2IEBAIERFRklORV9ERUJVR19PTkxZ
X0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgY2FjaGVkUGFnZUNvdW50ZXIsICgi
Q2FjaGVkCiBDYWNoZWRQYWdlOjpDYWNoZWRQYWdlKFBhZ2UmIHBhZ2UpCiAgICAgOiBtX2V4cGly
YXRpb25UaW1lKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpICsgcGFnZS5zZXR0aW5ncygp
LmJhY2tGb3J3YXJkQ2FjaGVFeHBpcmF0aW9uSW50ZXJ2YWwoKSkKICAgICAsIG1fY2FjaGVkTWFp
bkZyYW1lKHN0ZDo6bWFrZV91bmlxdWU8Q2FjaGVkRnJhbWU+KHBhZ2UubWFpbkZyYW1lKCkpKQot
ICAgICwgbV9uZWVkU3R5bGVSZWNhbGNGb3JWaXNpdGVkTGlua3MoZmFsc2UpCi0gICAgLCBtX25l
ZWRzRnVsbFN0eWxlUmVjYWxjKGZhbHNlKQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAs
IG1fbmVlZHNDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKGZhbHNlKQotI2VuZGlmCi0gICAgLCBt
X25lZWRzRGV2aWNlU2NhbGVDaGFuZ2VkKGZhbHNlKQogewogI2lmbmRlZiBOREVCVUcKICAgICBj
YWNoZWRQYWdlQ291bnRlci5pbmNyZW1lbnQoKTsKQEAgLTExMSw3ICsxMDUsNyBAQCB2b2lkIENh
Y2hlZFBhZ2U6OnJlc3RvcmUoUGFnZSYgcGFnZSkKICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVu
dCgpLT52aXNpdGVkTGlua1N0YXRlKCkuaW52YWxpZGF0ZVN0eWxlRm9yQWxsTGlua3MoKTsKICAg
ICB9CiAKLSAgICBpZiAobV9uZWVkc0RldmljZVNjYWxlQ2hhbmdlZCkKKyAgICBpZiAobV9uZWVk
c0RldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCkKICAgICAgICAgcGFnZS5tYWluRnJhbWUoKS5kZXZp
Y2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKTsKIAogICAgIGlmIChtX25lZWRzRnVsbFN0eWxl
UmVjYWxjKQpAQCAtMTM1LDcgKzEyOSw3IEBAIHZvaWQgQ2FjaGVkUGFnZTo6Y2xlYXIoKQogI2lm
IEVOQUJMRShWSURFT19UUkFDSykKICAgICBtX25lZWRzQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdl
ZCA9IGZhbHNlOwogI2VuZGlmCi0gICAgbV9uZWVkc0RldmljZVNjYWxlQ2hhbmdlZCA9IGZhbHNl
OworICAgIG1fbmVlZHNEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQgPSBmYWxzZTsKIH0KIAogYm9v
bCBDYWNoZWRQYWdlOjpoYXNFeHBpcmVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQ
YWdlLmgKaW5kZXggNTYzNmRlMWM1YmEyNWJjNmQ3MmEzZGQ0YjkyMTI0NzhiZDkzY2YyMS4uOTM0
MGVkMjYwOTlmNGNlNDhkYzc3NWM3YWViZmQ2MmE2NjM4MjRlNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9y
eS9DYWNoZWRQYWdlLmgKQEAgLTU1LDE3ICs1NSwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJr
Rm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpIHsgbV9uZWVkc0NhcHRpb25QcmVmZXJlbmNl
c0NoYW5nZWQgPSB0cnVlOyB9CiAjZW5kaWYKIAotICAgIHZvaWQgbWFya0ZvckRldmljZVNjYWxl
Q2hhbmdlZCgpIHsgbV9uZWVkc0RldmljZVNjYWxlQ2hhbmdlZCA9IHRydWU7IH0KKyAgICB2b2lk
IG1hcmtGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoKSB7IG1fbmVlZHNEZXZpY2VPclBhZ2VT
Y2FsZUNoYW5nZWQgPSB0cnVlOyB9CiAKIHByaXZhdGU6CiAgICAgZG91YmxlIG1fZXhwaXJhdGlv
blRpbWU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENhY2hlZEZyYW1lPiBtX2NhY2hlZE1haW5GcmFt
ZTsKLSAgICBib29sIG1fbmVlZFN0eWxlUmVjYWxjRm9yVmlzaXRlZExpbmtzOwotICAgIGJvb2wg
bV9uZWVkc0Z1bGxTdHlsZVJlY2FsYzsKKyAgICBib29sIG1fbmVlZFN0eWxlUmVjYWxjRm9yVmlz
aXRlZExpbmtzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbmVlZHNGdWxsU3R5bGVSZWNhbGMgeyBm
YWxzZSB9OwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBib29sIG1fbmVlZHNDYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkOworICAgIGJvb2wgbV9uZWVkc0NhcHRpb25QcmVmZXJlbmNlc0No
YW5nZWQgeyBmYWxzZSB9OwogI2VuZGlmCi0gICAgYm9vbCBtX25lZWRzRGV2aWNlU2NhbGVDaGFu
Z2VkOworICAgIGJvb2wgbV9uZWVkc0RldmljZU9yUGFnZVNjYWxlQ2hhbmdlZCB7IGZhbHNlIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNo
ZS5jcHAKaW5kZXggODM5ZjM3NjJlYzRmNDcyNDg1MzI5YjE1NDIwOTFjNzFkZTA5NWVjMS4uYmNi
ZGVmMjdhZDY2ZTAxNDgxZTc1NWM3MDZkODNkNzUxYmJmMTYwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvUGFnZUNhY2hlLmNwcApAQCAtMzkwLDEyICszOTAsMTIgQEAgdm9pZCBQYWdlQ2FjaGU6Om1h
cmtQYWdlc0ZvckZ1bGxTdHlsZVJlY2FsYyhQYWdlJiBwYWdlKQogICAgIH0KIH0KIAotdm9pZCBQ
YWdlQ2FjaGU6Om1hcmtQYWdlc0ZvckRldmljZVNjYWxlQ2hhbmdlZChQYWdlJiBwYWdlKQordm9p
ZCBQYWdlQ2FjaGU6Om1hcmtQYWdlc0ZvckRldmljZU9yUGFnZVNjYWxlQ2hhbmdlZChQYWdlJiBw
YWdlKQogewogICAgIGZvciAoYXV0byYgaXRlbSA6IG1faXRlbXMpIHsKICAgICAgICAgQ2FjaGVk
UGFnZSYgY2FjaGVkUGFnZSA9ICppdGVtLT5tX2NhY2hlZFBhZ2U7CiAgICAgICAgIGlmICgmcGFn
ZS5tYWluRnJhbWUoKSA9PSAmY2FjaGVkUGFnZS5jYWNoZWRNYWluRnJhbWUoKS0+dmlldygpLT5m
cmFtZSgpKQotICAgICAgICAgICAgY2FjaGVkUGFnZS5tYXJrRm9yRGV2aWNlU2NhbGVDaGFuZ2Vk
KCk7CisgICAgICAgICAgICBjYWNoZWRQYWdlLm1hcmtGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5n
ZWQoKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFn
ZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oCmluZGV4IGY5MjE0
MGY2MTgwM2MwZWYyOTA1NDczZDg3NDZlMTQyYTZmMjA2ZGIuLjlmYWI4MDJmYjBjM2M2ZDhkYzIx
NTNhYmUzYWE2MDYyNzk3ODI4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3Rvcnkv
UGFnZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaApAQCAt
NjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXJrUGFnZXNG
b3JWaXNpdGVkTGlua1N0eWxlUmVjYWxjKCk7CiAgICAgLy8gV2lsbCBtYXJrIGFsbCBjYWNoZWQg
cGFnZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBwYWdlIGFzIG5lZWRpbmcgc3R5bGUgcmVj
YWxjLgogICAgIHZvaWQgbWFya1BhZ2VzRm9yRnVsbFN0eWxlUmVjYWxjKFBhZ2UmKTsKLSAgICB2
b2lkIG1hcmtQYWdlc0ZvckRldmljZVNjYWxlQ2hhbmdlZChQYWdlJik7CisgICAgdm9pZCBtYXJr
UGFnZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoUGFnZSYpOwogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICB2b2lkIG1hcmtQYWdlc0ZvckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQo
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAK
aW5kZXggNzZhMDk2NDczODY2NzJlMjI3YTA3OTM3NzI2NTczMzRkNWRkYmY2OC4uYWU3ZGIzZGFl
YWVjMzRjYTE3NjZhNzIwOTAyYWZjNWI0Zjc3NDdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgSGlzdG9yeUNv
bnRyb2xsZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShIaXN0b3J5SXRl
bSogaXRlbSkKIAogICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKICAgICBpZiAocGFn
ZSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCi0gICAgICAgIGl0ZW0tPnNldFBhZ2VTY2FsZUZh
Y3RvcihwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgICAgIGl0ZW0tPnNldFBhZ2VTY2Fs
ZUZhY3RvcihwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSAvIHBhZ2UtPnZpZXdTY2FsZUZhY3Rvcigp
KTsKIAogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBncmVhdCB0byB3b3JrIG91dCBhIHdheSB0
byBwdXQgdGhpcyBjb2RlIGluIFdlYkNvcmUgaW5zdGVhZCBvZiBjYWxsaW5nIHRocm91Z2ggdG8g
dGhlIGNsaWVudC4KICAgICBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLnNhdmVWaWV3U3RhdGVU
b0l0ZW0oaXRlbSk7CkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6
cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkKICAgICBpZiAodmlldyAmJiAhdmll
dy0+d2FzU2Nyb2xsZWRCeVVzZXIoKSkgewogICAgICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5w
YWdlKCk7CiAgICAgICAgIGlmIChwYWdlICYmIG1fZnJhbWUuaXNNYWluRnJhbWUoKSAmJiBtX2N1
cnJlbnRJdGVtLT5wYWdlU2NhbGVGYWN0b3IoKSkKLSAgICAgICAgICAgIHBhZ2UtPnNldFBhZ2VT
Y2FsZUZhY3RvcihtX2N1cnJlbnRJdGVtLT5wYWdlU2NhbGVGYWN0b3IoKSwgbV9jdXJyZW50SXRl
bS0+c2Nyb2xsUG9pbnQoKSk7CisgICAgICAgICAgICBwYWdlLT5zZXRQYWdlU2NhbGVGYWN0b3Io
bV9jdXJyZW50SXRlbS0+cGFnZVNjYWxlRmFjdG9yKCkgKiBwYWdlLT52aWV3U2NhbGVGYWN0b3Io
KSwgbV9jdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG1fY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDE0ZDkyZDk0NDU3ZDA0NGQzMTRiNmQyNjZk
MmNkYWE2NTkzNWQyMTMuLjJmMDUzYTU0ODdkZDBhOThhMTllZDhiYjY4NzIwNTBmOWI0MjM5OTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtODMyLDYgKzgzMiwxMyBAQCB2b2lkIFBhZ2U6OnNldFBh
Z2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbiwgYm9vbCBp
blN0YWJsZQogI2VuZGlmCiB9CiAKK3ZvaWQgUGFnZTo6c2V0Vmlld1NjYWxlRmFjdG9yKGZsb2F0
IHNjYWxlKQoreworICAgIG1fdmlld1NjYWxlRmFjdG9yID0gc2NhbGU7CisgICAgUGFnZUNhY2hl
OjpzaW5nbGV0b24oKS5tYXJrUGFnZXNGb3JEZXZpY2VPclBhZ2VTY2FsZUNoYW5nZWQoKnRoaXMp
OworICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yRnVsbFN0eWxlUmVjYWxj
KCp0aGlzKTsKK30KKwogdm9pZCBQYWdlOjpzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2Fs
ZUZhY3RvcikKIHsKICAgICBBU1NFUlQoc2NhbGVGYWN0b3IgPiAwKTsKQEAgLTg0NSw3ICs4NTIs
NyBAQCB2b2lkIFBhZ2U6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQog
ICAgIHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwogCiAgICAgbWFpbkZyYW1lKCku
ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7Ci0gICAgUGFnZUNhY2hlOjpzaW5nbGV0
b24oKS5tYXJrUGFnZXNGb3JEZXZpY2VTY2FsZUNoYW5nZWQoKnRoaXMpOworICAgIFBhZ2VDYWNo
ZTo6c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yRGV2aWNlT3JQYWdlU2NhbGVDaGFuZ2VkKCp0aGlz
KTsKIAogICAgIFBhZ2VDYWNoZTo6c2luZ2xldG9uKCkubWFya1BhZ2VzRm9yRnVsbFN0eWxlUmVj
YWxjKCp0aGlzKTsKICAgICBHcmFwaGljc0NvbnRleHQ6OnVwZGF0ZURvY3VtZW50TWFya2VyUmVz
b3VyY2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGQwMzBiNGIxNGE5ZWFkNTYzZWYwNzJkYWVjZTk4
ZDQzYTViMDZkNjUuLmNmYmVmNjZlZjJlYTU2YWY5ZjBjZDNjYWUyNGRmZGFjMjZmOWUwZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5oCkBAIC0yNjAsNiArMjYwLDExIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSwgY29uc3QgSW50UG9pbnQm
IG9yaWdpbiwgYm9vbCBpblN0YWJsZVN0YXRlID0gdHJ1ZSk7CiAgICAgZmxvYXQgcGFnZVNjYWxl
RmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlU2NhbGVGYWN0b3I7IH0KIAorICAgIC8vIFRo
ZSB2aWV3IHNjYWxlIGZhY3RvciBpcyBtdWx0aXBsaWVkIGludG8gdGhlIHBhZ2Ugc2NhbGUgZmFj
dG9yIGJ5IGFsbAorICAgIC8vIGNhbGxlcnMgb2Ygc2V0UGFnZVNjYWxlRmFjdG9yLgorICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0Vmlld1NjYWxlRmFjdG9yKGZsb2F0KTsKKyAgICBmbG9hdCB2
aWV3U2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTY2FsZUZhY3RvcjsgfQorCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRab29tZWRPdXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQp
OwogICAgIGZsb2F0IHpvb21lZE91dFBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1f
em9vbWVkT3V0UGFnZVNjYWxlRmFjdG9yOyB9CiAKQEAgLTUyMCw2ICs1MjUsNyBAQCBwcml2YXRl
OgogICAgIGZsb2F0IG1fcGFnZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1fem9vbWVkT3V0UGFn
ZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVGYWN0b3I7CisgICAgZmxvYXQg
bV92aWV3U2NhbGVGYWN0b3IgeyAxIH07CiAKICAgICBmbG9hdCBtX3RvcENvbnRlbnRJbnNldDsK
ICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCA0OWRiY2Q5ZGY1YzYzNThmMDg2ZDdmNWRkYTJkNmM2YTFmYTc3M2E3Li4yMWIzNmY4ZDNj
MjYzZTViMDlmMWNmYzE3ODFkMmYzNzY5YThiZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMzgsNyArMzM4LDYgQEAgV2ViUGFnZTo6
V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCiAgICAgLCBtX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQodHJ1ZSkKICAg
ICAsIG1fdXNlckFjdGl2aXR5KCJQcm9jZXNzIHN1cHByZXNzaW9uIGRpc2FibGVkIGZvciBwYWdl
LiIpCiAgICAgLCBtX3BlbmRpbmdOYXZpZ2F0aW9uSUQoMCkKLSAgICAsIG1fdmlld1NjYWxlRmFj
dG9yKHBhcmFtZXRlcnMudmlld1NjYWxlRmFjdG9yKQogI2lmIEVOQUJMRShXRUJHTCkKICAgICAs
IG1fc3lzdGVtV2ViR0xQb2xpY3koV2ViR0xBbGxvd0NyZWF0aW9uKQogI2VuZGlmCkBAIC01MDYs
OCArNTA1LDggQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjZW5kaWYKICAgICBtX3BhZ2UtPnNl
dHRpbmdzKCkuc2V0QXBwbGVNYWlsUGFnaW5hdGlvblF1aXJrRW5hYmxlZChwYXJhbWV0ZXJzLmFw
cGxlTWFpbFBhZ2luYXRpb25RdWlya0VuYWJsZWQpOwogCi0gICAgaWYgKG1fdmlld1NjYWxlRmFj
dG9yICE9IDEpCi0gICAgICAgIHNjYWxlUGFnZSgxLCBJbnRQb2ludCgpKTsKKyAgICBpZiAocGFy
YW1ldGVycy52aWV3U2NhbGVGYWN0b3IgIT0gMSkKKyAgICAgICAgc2NhbGVWaWV3KHBhcmFtZXRl
cnMudmlld1NjYWxlRmFjdG9yKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpyZWluaXRpYWxpemVXZWJQ
YWdlKGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0xMzc0
LDcgKzEzNzMsNyBAQCB2b2lkIFdlYlBhZ2U6OndpbmRvd1NjcmVlbkRpZENoYW5nZSh1aW50MzJf
dCBkaXNwbGF5SUQpCiAKIHZvaWQgV2ViUGFnZTo6c2NhbGVQYWdlKGRvdWJsZSBzY2FsZSwgY29u
c3QgSW50UG9pbnQmIG9yaWdpbikKIHsKLSAgICBkb3VibGUgdG90YWxTY2FsZSA9IHNjYWxlICog
bV92aWV3U2NhbGVGYWN0b3I7CisgICAgZG91YmxlIHRvdGFsU2NhbGUgPSBzY2FsZSAqIHZpZXdT
Y2FsZUZhY3RvcigpOwogICAgIGJvb2wgd2lsbENoYW5nZVNjYWxlRmFjdG9yID0gdG90YWxTY2Fs
ZSAhPSB0b3RhbFNjYWxlRmFjdG9yKCk7CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xNDA3LDcg
KzE0MDYsNyBAQCB2b2lkIFdlYlBhZ2U6OnNjYWxlUGFnZShkb3VibGUgc2NhbGUsIGNvbnN0IElu
dFBvaW50JiBvcmlnaW4pCiAKIHZvaWQgV2ViUGFnZTo6c2NhbGVQYWdlSW5WaWV3Q29vcmRpbmF0
ZXMoZG91YmxlIHNjYWxlLCBJbnRQb2ludCBjZW50ZXJJblZpZXdDb29yZGluYXRlcykKIHsKLSAg
ICBkb3VibGUgdG90YWxTY2FsZSA9IHNjYWxlICogbV92aWV3U2NhbGVGYWN0b3I7CisgICAgZG91
YmxlIHRvdGFsU2NhbGUgPSBzY2FsZSAqIHZpZXdTY2FsZUZhY3RvcigpOwogICAgIGlmICh0b3Rh
bFNjYWxlID09IHRvdGFsU2NhbGVGYWN0b3IoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDI4
LDI2ICsxNDI3LDI5IEBAIGRvdWJsZSBXZWJQYWdlOjp0b3RhbFNjYWxlRmFjdG9yKCkgY29uc3QK
IAogZG91YmxlIFdlYlBhZ2U6OnBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IHRvdGFsU2NhbGVGYWN0b3IoKSAvIG1fdmlld1NjYWxlRmFjdG9yOworICAgIHJldHVybiB0b3Rh
bFNjYWxlRmFjdG9yKCkgLyB2aWV3U2NhbGVGYWN0b3IoKTsKK30KKworZG91YmxlIFdlYlBhZ2U6
OnZpZXdTY2FsZUZhY3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+dmlld1NjYWxl
RmFjdG9yKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2NhbGVWaWV3KGRvdWJsZSBzY2FsZSkKIHsK
ICAgICBmbG9hdCBwYWdlU2NhbGUgPSBwYWdlU2NhbGVGYWN0b3IoKTsKIAotICAgIGRvdWJsZSBz
Y2FsZVJhdGlvID0gc2NhbGUgLyBtX3ZpZXdTY2FsZUZhY3RvcjsKLQogICAgIEludFBvaW50IHNj
cm9sbFBvc2l0aW9uQXROZXdTY2FsZTsKICAgICBpZiAoRnJhbWVWaWV3KiBtYWluRnJhbWVWaWV3
ID0gbV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCkpIHsKKyAgICAgICAgZG91YmxlIHNjYWxlUmF0
aW8gPSBzY2FsZSAvIHZpZXdTY2FsZUZhY3RvcigpOwogICAgICAgICBzY3JvbGxQb3NpdGlvbkF0
TmV3U2NhbGUgPSBtYWluRnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpOwogICAgICAgICBzY3Jv
bGxQb3NpdGlvbkF0TmV3U2NhbGUuc2NhbGUoc2NhbGVSYXRpbywgc2NhbGVSYXRpbyk7CiAgICAg
fQogCi0gICAgbV92aWV3U2NhbGVGYWN0b3IgPSBzY2FsZTsKKyAgICBtX3BhZ2UtPnNldFZpZXdT
Y2FsZUZhY3RvcihzY2FsZSk7CiAgICAgc2NhbGVQYWdlKHBhZ2VTY2FsZSwgc2Nyb2xsUG9zaXRp
b25BdE5ld1NjYWxlKTsKIH0KIAotCiAjaWYgUExBVEZPUk0oQ09DT0EpCiB2b2lkIFdlYlBhZ2U6
OnNjYWxlVmlld0FuZFVwZGF0ZUdlb21ldHJ5RmVuY2VkKGRvdWJsZSBzY2FsZSwgSW50U2l6ZSB2
aWV3U2l6ZSwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGIyNWZkZTA5ZTY1NzBlNGViMmJjNGQ4MmJjNjEw
YmFmMjcxMDlhMWIuLjI0MDU3MmZmMmYxYzFmMDJiZDQwZTQ4MTE0MDBiOTUwOTk4MGEwZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzU5LDcg
KzM1OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjYWxlUGFnZUluVmlld0Nvb3JkaW5hdGVzKGRv
dWJsZSBzY2FsZSwgV2ViQ29yZTo6SW50UG9pbnQgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMpOwog
ICAgIGRvdWJsZSBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICBkb3VibGUgdG90YWxTY2Fs
ZUZhY3RvcigpIGNvbnN0OwotICAgIGRvdWJsZSB2aWV3U2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX3ZpZXdTY2FsZUZhY3RvcjsgfQorICAgIGRvdWJsZSB2aWV3U2NhbGVGYWN0b3IoKSBj
b25zdDsKICAgICB2b2lkIHNjYWxlVmlldyhkb3VibGUgc2NhbGUpOwogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIHZvaWQgc2NhbGVWaWV3QW5kVXBkYXRlR2VvbWV0cnlGZW5jZWQoZG91YmxlIHNj
YWxlLCBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKQEAg
LTEzNTksOCArMTM1OSw2IEBAIHByaXZhdGU6CiAKICAgICB1aW50NjRfdCBtX3BlbmRpbmdOYXZp
Z2F0aW9uSUQ7CiAKLSAgICBkb3VibGUgbV92aWV3U2NhbGVGYWN0b3IgeyAxIH07Ci0KICNpZiBF
TkFCTEUoV0VCR0wpCiAgICAgV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5IG1fc3lzdGVtV2ViR0xQ
b2xpY3k7CiAjZW5kaWYK
</data>
<flag name="review"
          id="277883"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>