<?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>18556</bug_id>
          
          <creation_ts>2008-04-17 14:29:19 -0700</creation_ts>
          <short_desc>Rename Frame::renderer() to contentRenderer()</short_desc>
          <delta_ts>2008-04-18 15:03:07 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>darin</cc>
    
    <cc>hyatt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>77997</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-04-17 14:29:19 -0700</bug_when>
    <thetext>Rename Frame::renderer() to contentRenderer()

There was a fixme in the code.  I fixed it, it was bothering me (and causing some minor confusion).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78001</commentid>
    <comment_count>1</comment_count>
      <attachid>20638</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-04-17 14:46:08 -0700</bug_when>
    <thetext>Created attachment 20638
patch

I&apos;d like hyatt or darin to look at this.

This is not just a rename.  I also simplified a few cases where the code did things like this:
m_frame-&gt;document()-&gt;renderer()-&gt;view() instead of m_frame-&gt;view() or other such nonsense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78127</commentid>
    <comment_count>2</comment_count>
      <attachid>20638</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2008-04-18 10:41:12 -0700</bug_when>
    <thetext>Comment on attachment 20638
patch

r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78135</commentid>
    <comment_count>3</comment_count>
      <attachid>20638</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-04-18 11:16:16 -0700</bug_when>
    <thetext>Comment on attachment 20638
patch

+    // FIXME: is root always a RenderView? if so, static_cast at initialization
+    ASSERT(root-&gt;isRenderView());

This assert is wrong and the FIXME should be removed. The root is always a RenderView when subtree is false, but never is when subtree is true.

Everything else looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78141</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-04-18 11:53:42 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 20638 [edit])
&gt; +    // FIXME: is root always a RenderView? if so, static_cast at
&gt; initialization
&gt; +    ASSERT(root-&gt;isRenderView());
&gt; 
&gt; This assert is wrong and the FIXME should be removed. The root is always a
&gt; RenderView when subtree is false, but never is when subtree is true.
&gt; 
&gt; Everything else looks fine.

Interesting.  I removed the ASSERT and changed the if as part of:
https://bugs.webkit.org/show_bug.cgi?id=18585

(when I found the ASSERT was being hit by the layout tests).

I really should squash these two bugs into one, and the patches likewise.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78181</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-04-18 15:03:07 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/WebCore.base.exp
	M	WebCore/editing/Editor.cpp
	M	WebCore/loader/FrameLoader.cpp
	M	WebCore/page/DragController.cpp
	M	WebCore/page/EventHandler.cpp
	M	WebCore/page/Frame.cpp
	M	WebCore/page/Frame.h
	M	WebCore/page/FrameView.cpp
	M	WebCore/rendering/RenderTreeAsText.cpp
	M	WebCore/svg/graphics/SVGImage.cpp
	M	WebKit/mac/ChangeLog
	M	WebKit/mac/Misc/WebCoreStatistics.mm
	M	WebKit/mac/WebView/WebRenderNode.mm
Committed r32231

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20638</attachid>
            <date>2008-04-17 14:46:08 -0700</date>
            <delta_ts>2008-04-18 10:41:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>test.patch</filename>
            <type>text/plain</type>
            <size>24653</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjkyMzRmZS4uMGIwNzIwYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAwOC0wNC0xNyAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgaHlhdHQuCisKKyAgICAg
ICAgUmVuYW1lIEZyYW1lOjpyZW5kZXJlcigpIHRvIGNvbnRlbnRSZW5kZXJlcigpIGFuZCBmaXgg
dXNlcy4KKworICAgICAgICAqIFdlYkNvcmUuYmFzZS5leHA6CisgICAgICAgICogZWRpdGluZy9F
ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXNwb25kVG9DaGFuZ2VkQ29u
dGVudHMpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6Z290b0FuY2hvcik6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y2FuUHJvY2Vzc0Ry
YWcpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6Om1heVN0YXJ0RHJhZ0F0RXZl
bnRMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFn
KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmV2ZW50TWF5U3RhcnREcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjpob3ZlclRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjpoYW5kbGVEcmFnKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lOjpzZWxlY3Rpb25MYXlvdXRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lOjpjb250ZW50UmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnBh
aW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjptYXJrQWxsTWF0Y2hlc0ZvclRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRvY3VtZW50QXRQb2ludCk6CisgICAgICAgICogcGFn
ZS9GcmFtZS5oOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6fkZyYW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OmFkanVzdFZpZXdTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6bGF5b3V0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2NoZWR1bGVSZWxheW91dE9mU3VidHJlZSk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6Om5lZWRzTGF5b3V0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2V0TmVlZHNMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3Ojp1cGRhdGVDb250cm9sVGludHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlKToKKyAgICAgICAgKiBzdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6Om5hdGl2
ZUltYWdlRm9yQ3VycmVudEZyYW1lKToKKwogMjAwOC0wNC0xNyAgRGVhbiBKYWNrc29uICA8ZGlu
b0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSHlhdHQuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAgYi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKaW5kZXgg
ZDVmZmIwZS4uMjE4MDc1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cApAQCAtNDM3LDcgKzQzNyw2IEBAIF9fWk43V2Vi
Q29yZTVGcmFtZTEwZmluZFN0cmluZ0VSS05TXzZTdHJpbmdFYmJiYgogX19aTjdXZWJDb3JlNUZy
YW1lMTFmb3JjZUxheW91dEViCiBfX1pON1dlYkNvcmU1RnJhbWUxMXNjcmlwdFByb3h5RXYKIF9f
Wk43V2ViQ29yZTVGcmFtZTExc2hvdWxkQ2xvc2VFdgotX19aTjdXZWJDb3JlNUZyYW1lMTNvd25l
clJlbmRlcmVyRXYKIF9fWk43V2ViQ29yZTVGcmFtZTEzcmVhcHBseVN0eWxlc0V2CiBfX1pON1dl
YkNvcmU1RnJhbWUxM3NldFpvb21GYWN0b3JFZmIKIF9fWk43V2ViQ29yZTVGcmFtZTE1c2VuZFNj
cm9sbEV2ZW50RXYKQEAgLTczMSw4ICs3MzAsMTAgQEAgX19aTks3V2ViQ29yZTVGcmFtZTExdHlw
aW5nU3R5bGVFdgogX19aTks3V2ViQ29yZTVGcmFtZTEyZXZlbnRIYW5kbGVyRXYKIF9fWk5LN1dl
YkNvcmU1RnJhbWUxMm93bmVyRWxlbWVudEV2CiBfX1pOSzdXZWJDb3JlNUZyYW1lMTJzZWxlY3Rl
ZFRleHRFdgorX19aTks3V2ViQ29yZTVGcmFtZTEzb3duZXJSZW5kZXJlckV2CiBfX1pOSzdXZWJD
b3JlNUZyYW1lMTNzZWxlY3Rpb25SZWN0RWIKIF9fWk5LN1dlYkNvcmU1RnJhbWUxNHNlbGVjdGlv
bkltYWdlRWIKK19fWk5LN1dlYkNvcmU1RnJhbWUxNWNvbnRlbnRSZW5kZXJlckV2CiBfX1pOSzdX
ZWJDb3JlNUZyYW1lMTVyZXZlYWxTZWxlY3Rpb25FUktOU18xMVJlbmRlckxheWVyMTVTY3JvbGxB
bGlnbm1lbnRFCiBfX1pOSzdXZWJDb3JlNUZyYW1lMTZpblZpZXdTb3VyY2VNb2RlRXYKIF9fWk5L
N1dlYkNvcmU1RnJhbWUxN2ZpcnN0UmVjdEZvclJhbmdlRVBOU181UmFuZ2VFCkBAIC03NTQsNyAr
NzU1LDYgQEAgX19aTks3V2ViQ29yZTVGcmFtZTR2aWV3RXYKIF9fWk5LN1dlYkNvcmU1RnJhbWU2
ZWRpdG9yRXYKIF9fWk5LN1dlYkNvcmU1RnJhbWU2bG9hZGVyRXYKIF9fWk5LN1dlYkNvcmU1RnJh
bWU4ZG9jdW1lbnRFdgotX19aTks3V2ViQ29yZTVGcmFtZThyZW5kZXJlckV2CiBfX1pOSzdXZWJD
b3JlNUZyYW1lOHNldHRpbmdzRXYKIF9fWk5LN1dlYkNvcmU1UmFuZ2UxMXN0YXJ0T2Zmc2V0RVJp
CiBfX1pOSzdXZWJDb3JlNVJhbmdlMTJlbmRDb250YWluZXJFUmkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXgg
YjYwY2ZjOS4uOTZjZGIyNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAK
KysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTQwMSw3ICs0MDEsNyBAQCB2b2lk
IEVkaXRvcjo6cmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKGNvbnN0IFNlbGVjdGlvbiYgZW5kaW5n
U2VsZWN0aW9uKQogICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
KSB7CiAgICAgICAgIE5vZGUqIG5vZGUgPSBlbmRpbmdTZWxlY3Rpb24uc3RhcnQoKS5ub2RlKCk7
CiAgICAgICAgIGlmIChub2RlKQotICAgICAgICAgICAgbV9mcmFtZS0+cmVuZGVyZXIoKS0+ZG9j
dW1lbnQoKS0+YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVy
KCksICJBWFZhbHVlQ2hhbmdlZCIpOworICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0aW9uKG5vZGUtPnJlbmRlcmVyKCksICJBWFZh
bHVlQ2hhbmdlZCIpOwogICAgIH0KICAgICAKICAgICBpZiAoY2xpZW50KCkpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKaW5kZXggNzFkOTRlMi4uNjJhMzMwMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApA
QCAtNzQsNiArNzQsNyBAQAogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgogI2luY2x1ZGUg
IlJlbmRlclBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKKyNpbmNsdWRlICJSZW5k
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZVJlcXVlc3QuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgpAQCAtMTYyOSw4ICsxNjMw
LDggQEAgYm9vbCBGcmFtZUxvYWRlcjo6Z290b0FuY2hvcihjb25zdCBTdHJpbmcmIG5hbWUpCiAg
ICAgLy8gcmVhbGx5IG1lc3MgdGhpbmdzIHVwIGlmIGFuIGFuY2hvciBzY3JvbGwgY29tZXMgYXQg
YSBiYWQgbW9tZW50LgogICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKSB7CiAgICAgICAgIG1f
ZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZVJlbmRlcmluZygpOwotICAgICAgICAvLyBPbmx5IGRv
IGEgbGF5b3V0IGlmIGNoYW5nZXMgaGF2ZSBvY2N1cnJlZCB0aGF0IG1ha2UgaXQgbmVjZXNzYXJ5
LiAgICAgIAotICAgICAgICBpZiAobV9mcmFtZS0+dmlldygpICYmIG1fZnJhbWUtPmRvY3VtZW50
KCktPnJlbmRlcmVyKCkgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVuZGVyZXIoKS0+bmVlZHNM
YXlvdXQoKSkKKyAgICAgICAgLy8gT25seSBkbyBhIGxheW91dCBpZiBjaGFuZ2VzIGhhdmUgb2Nj
dXJyZWQgdGhhdCBtYWtlIGl0IG5lY2Vzc2FyeS4KKyAgICAgICAgaWYgKG1fZnJhbWUtPnZpZXco
KSAmJiBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSAmJiBtX2ZyYW1lLT5jb250ZW50UmVuZGVy
ZXIoKS0+bmVlZHNMYXlvdXQoKSkKICAgICAgICAgICAgIG1fZnJhbWUtPnZpZXcoKS0+bGF5b3V0
KCk7CiAgICAgfQogICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5j
cHAgYi9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDNhM2RjOTcuLmI5OWU3
NTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtNDM0LDcgKzQzNCw3IEBAIGJvb2wgRHJh
Z0NvbnRyb2xsZXI6OmNhblByb2Nlc3NEcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICAKICAg
ICBJbnRQb2ludCBwb2ludCA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+d2luZG93VG9D
b250ZW50cyhkcmFnRGF0YS0+Y2xpZW50UG9zaXRpb24oKSk7CiAgICAgSGl0VGVzdFJlc3VsdCBy
ZXN1bHQgPSBIaXRUZXN0UmVzdWx0KHBvaW50KTsKLSAgICBpZiAoIW1fcGFnZS0+bWFpbkZyYW1l
KCktPnJlbmRlcmVyKCkpCisgICAgaWYgKCFtX3BhZ2UtPm1haW5GcmFtZSgpLT5jb250ZW50UmVu
ZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmVzdWx0ID0gbV9wYWdlLT5t
YWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhpdFRlc3RSZXN1bHRBdFBvaW50KHBvaW50LCB0
cnVlKTsKQEAgLTQ5OCw3ICs0OTgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjptYXlTdGFydERy
YWdBdEV2ZW50TG9jYXRpb24oY29uc3QgRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRQbwogICAgIEFT
U0VSVChmcmFtZSk7CiAgICAgQVNTRVJUKGZyYW1lLT5zZXR0aW5ncygpKTsKIAotICAgIGlmICgh
ZnJhbWUtPnZpZXcoKSB8fCAhZnJhbWUtPnJlbmRlcmVyKCkpCisgICAgaWYgKCFmcmFtZS0+dmll
dygpIHx8ICFmcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIEhpdFRlc3RSZXN1bHQgbW91c2VEb3duVGFyZ2V0ID0gSGl0VGVzdFJlc3VsdChmcmFt
ZVBvcyk7CkBAIC01OTMsNyArNTkzLDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFn
KEZyYW1lKiBzcmMsIENsaXBib2FyZCogY2xpcGJvYXJkLCBEcmFnT3BlcmF0aW9uIHMKICAgICBB
U1NFUlQoc3JjKTsKICAgICBBU1NFUlQoY2xpcGJvYXJkKTsKICAgICAKLSAgICBpZiAoIXNyYy0+
dmlldygpIHx8ICFzcmMtPnJlbmRlcmVyKCkpCisgICAgaWYgKCFzcmMtPnZpZXcoKSB8fCAhc3Jj
LT5jb250ZW50UmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIEhp
dFRlc3RSZXN1bHQgZHJhZ1NvdXJjZSA9IEhpdFRlc3RSZXN1bHQoZHJhZ09yaWdpbik7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGFnZS9FdmVu
dEhhbmRsZXIuY3BwCmluZGV4IDk4MDk0ZWUuLjkyMTAzYTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JvbGxCYXIuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKKyNp
bmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCkBAIC0zODYsNyAr
Mzg3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50TWF5U3RhcnREcmFnKGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgLy8gdGhhdCBpdHMgbG9naWMgbmVlZHMg
dG8gc3RheSBpbiBzeW5jIHdpdGggaGFuZGxlTW91c2VNb3ZlRXZlbnQoKSBhbmQgdGhlIHdheSB3
ZSBzZXRNb3VzZURvd25NYXlTdGFydERyYWcKICAgICAvLyBpbiBoYW5kbGVNb3VzZVByZXNzRXZl
bnQKICAgICAKLSAgICBpZiAoIW1fZnJhbWUtPnJlbmRlcmVyKCkgfHwgIW1fZnJhbWUtPnJlbmRl
cmVyKCktPmhhc0xheWVyKCkKKyAgICBpZiAoIW1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpIHx8
ICFtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKS0+aGFzTGF5ZXIoKQogICAgICAgICB8fCBldmVu
dC5idXR0b24oKSAhPSBMZWZ0QnV0dG9uIHx8IGV2ZW50LmNsaWNrQ291bnQoKSAhPSAxKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgCkBAIC0zOTgsNyArMzk5LDcgQEAgYm9vbCBFdmVudEhh
bmRsZXI6OmV2ZW50TWF5U3RhcnREcmFnKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQp
IGNvbnN0CiAgICAgCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdCh0cnVlLCBmYWxzZSk7CiAg
ICAgSGl0VGVzdFJlc3VsdCByZXN1bHQobV9mcmFtZS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRz
KGV2ZW50LnBvcygpKSk7Ci0gICAgbV9mcmFtZS0+cmVuZGVyZXIoKS0+bGF5ZXIoKS0+aGl0VGVz
dChyZXF1ZXN0LCByZXN1bHQpOworICAgIG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpLT5sYXll
cigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAgICAgYm9vbCBzcmNJc0RIVE1MOwogICAg
IHJldHVybiByZXN1bHQuaW5uZXJOb2RlKCkgJiYgcmVzdWx0LmlubmVyTm9kZSgpLT5yZW5kZXJl
cigpLT5kcmFnZ2FibGVOb2RlKERIVE1MRmxhZywgVUFGbGFnLCByZXN1bHQucG9pbnQoKS54KCks
IHJlc3VsdC5wb2ludCgpLnkoKSwgc3JjSXNESFRNTCk7CiB9CkBAIC00MDgsNyArNDA5LDcgQEAg
dm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZygpCiAgICAgRnJh
bWVWaWV3KiB2aWV3ID0gbV9mcmFtZS0+dmlldygpOwogICAgIGlmICghdmlldykKICAgICAgICAg
cmV0dXJuOwotICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBtX2ZyYW1lLT5yZW5kZXJlcigp
OworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIo
KTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm47CiAgICAgUmVuZGVyTGF5ZXIq
IGxheWVyID0gcmVuZGVyZXItPmxheWVyKCk7CkBAIC01NjksOSArNTcwLDkgQEAgdm9pZCBFdmVu
dEhhbmRsZXI6OmFsbG93REhUTUxEcmFnKGJvb2wmIGZsYWdESFRNTCwgYm9vbCYgZmxhZ1VBKSBj
b25zdAogSGl0VGVzdFJlc3VsdCBFdmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50KGNv
bnN0IEludFBvaW50JiBwb2ludCwgYm9vbCBhbGxvd1NoYWRvd0NvbnRlbnQpCiB7CiAgICAgSGl0
VGVzdFJlc3VsdCByZXN1bHQocG9pbnQpOwotICAgIGlmICghbV9mcmFtZS0+cmVuZGVyZXIoKSkK
KyAgICBpZiAoIW1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgIG1fZnJhbWUtPnJlbmRlcmVyKCktPmxheWVyKCktPmhpdFRlc3QoSGl0VGVzdFJl
cXVlc3QodHJ1ZSwgdHJ1ZSksIHJlc3VsdCk7CisgICAgbV9mcmFtZS0+Y29udGVudFJlbmRlcmVy
KCktPmxheWVyKCktPmhpdFRlc3QoSGl0VGVzdFJlcXVlc3QodHJ1ZSwgdHJ1ZSksIHJlc3VsdCk7
CiAKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICBOb2RlKiBuID0gcmVzdWx0LmlubmVyTm9k
ZSgpOwpAQCAtNTgxLDEzICs1ODIsMTMgQEAgSGl0VGVzdFJlc3VsdCBFdmVudEhhbmRsZXI6Omhp
dFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCwgYm9vbCBhbGwKICAgICAg
ICAgaWYgKCF3aWRnZXQgfHwgIXdpZGdldC0+aXNGcmFtZVZpZXcoKSkKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBGcmFtZSogZnJhbWUgPSBzdGF0aWNfY2FzdDxIVE1MRnJhbWVFbGVtZW50
QmFzZSo+KG4pLT5jb250ZW50RnJhbWUoKTsKLSAgICAgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUt
PnJlbmRlcmVyKCkpCisgICAgICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5jb250ZW50UmVuZGVy
ZXIoKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBzdGF0
aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQpOwogICAgICAgICBJbnRQb2ludCB3aWRnZXRQb2lu
dChyZXN1bHQubG9jYWxQb2ludCgpLngoKSArIHZpZXctPmNvbnRlbnRzWCgpIC0gbi0+cmVuZGVy
ZXIoKS0+Ym9yZGVyTGVmdCgpIC0gbi0+cmVuZGVyZXIoKS0+cGFkZGluZ0xlZnQoKSwgCiAgICAg
ICAgICAgICByZXN1bHQubG9jYWxQb2ludCgpLnkoKSArIHZpZXctPmNvbnRlbnRzWSgpIC0gbi0+
cmVuZGVyZXIoKS0+Ym9yZGVyVG9wKCkgLSBuLT5yZW5kZXJlcigpLT5wYWRkaW5nVG9wKCkpOwog
ICAgICAgICBIaXRUZXN0UmVzdWx0IHdpZGdldEhpdFRlc3RSZXN1bHQod2lkZ2V0UG9pbnQpOwot
ICAgICAgICBmcmFtZS0+cmVuZGVyZXIoKS0+bGF5ZXIoKS0+aGl0VGVzdChIaXRUZXN0UmVxdWVz
dCh0cnVlLCB0cnVlKSwgd2lkZ2V0SGl0VGVzdFJlc3VsdCk7CisgICAgICAgIGZyYW1lLT5jb250
ZW50UmVuZGVyZXIoKS0+bGF5ZXIoKS0+aGl0VGVzdChIaXRUZXN0UmVxdWVzdCh0cnVlLCB0cnVl
KSwgd2lkZ2V0SGl0VGVzdFJlc3VsdCk7CiAgICAgICAgIHJlc3VsdCA9IHdpZGdldEhpdFRlc3RS
ZXN1bHQ7CiAgICAgfQogCkBAIC0xNDQwLDcgKzE0NDEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
aG92ZXJUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4qKQogICAgIEFTU0VSVChtX2ZyYW1l
KTsKICAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7CiAKLSAgICBpZiAoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IG1fZnJhbWUtPnJlbmRlcmVyKCkpIHsKKyAgICBpZiAoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKSB7CiAgICAgICAgIEhp
dFRlc3RSZXN1bHQgcmVzdWx0KG1fZnJhbWUtPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhtX2N1
cnJlbnRNb3VzZVBvc2l0aW9uKSk7CiAgICAgICAgIHJlbmRlcmVyLT5sYXllcigpLT5oaXRUZXN0
KEhpdFRlc3RSZXF1ZXN0KGZhbHNlLCBmYWxzZSwgdHJ1ZSksIHJlc3VsdCk7CiAgICAgICAgIG1f
ZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZVJlbmRlcmluZygpOwpAQCAtMTY3Niw3ICsxNjc3LDcg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZURyYWcoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYgZXZlbnQpCiAgICAgICAgIC8vIHRyeSB0byBmaW5kIGFuIGVsZW1lbnQgdGhh
dCB3YW50cyB0byBiZSBkcmFnZ2VkCiAgICAgICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QodHJ1
ZSwgZmFsc2UpOwogICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChtX21vdXNlRG93blBvcyk7
Ci0gICAgICAgIG1fZnJhbWUtPnJlbmRlcmVyKCktPmxheWVyKCktPmhpdFRlc3QocmVxdWVzdCwg
cmVzdWx0KTsKKyAgICAgICAgbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmxheWVyKCktPmhp
dFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKICAgICAgICAgTm9kZSogbm9kZSA9IHJlc3VsdC5pbm5l
ck5vZGUoKTsKICAgICAgICAgaWYgKG5vZGUgJiYgbm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAg
ICAgIGRyYWdTdGF0ZSgpLm1fZHJhZ1NyYyA9IG5vZGUtPnJlbmRlcmVyKCktPmRyYWdnYWJsZU5v
ZGUoZHJhZ1N0YXRlKCkubV9kcmFnU3JjTWF5QmVESFRNTCwgZHJhZ1N0YXRlKCkubV9kcmFnU3Jj
TWF5QmVVQSwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9XZWJDb3JlL3Bh
Z2UvRnJhbWUuY3BwCmluZGV4IDVkY2Q2NmUuLmZmYmI1OWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNTkyLDkgKzU5
Miw5IEBAIHZvaWQgRnJhbWU6OnNlbGVjdGlvbkxheW91dENoYW5nZWQoKQogICAgICAgICB9CiAg
ICAgfQogCi0gICAgaWYgKCFyZW5kZXJlcigpKQorICAgIFJlbmRlclZpZXcqIGNhbnZhcyA9IGNv
bnRlbnRSZW5kZXJlcigpOworICAgIGlmICghY2FudmFzKQogICAgICAgICByZXR1cm47Ci0gICAg
UmVuZGVyVmlldyogY2FudmFzID0gc3RhdGljX2Nhc3Q8UmVuZGVyVmlldyo+KHJlbmRlcmVyKCkp
OwogCiAgICAgU2VsZWN0aW9uIHNlbGVjdGlvbiA9IHNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+c2Vs
ZWN0aW9uKCk7CiAgICAgICAgIApAQCAtMTE2MywxMCArMTE2MywxNCBAQCB2b2lkIEZyYW1lOjpj
bGVhclNjcmlwdE9iamVjdHMoKQogICAgIGNsZWFyUGxhdGZvcm1TY3JpcHRPYmplY3RzKCk7CiB9
CiAKLVJlbmRlck9iamVjdCAqRnJhbWU6OnJlbmRlcmVyKCkgY29uc3QKK1JlbmRlclZpZXcqIEZy
YW1lOjpjb250ZW50UmVuZGVyZXIoKSBjb25zdAogewotICAgIERvY3VtZW50ICpkb2MgPSBkb2N1
bWVudCgpOwotICAgIHJldHVybiBkb2MgPyBkb2MtPnJlbmRlcmVyKCkgOiAwOworICAgIERvY3Vt
ZW50KiBkb2MgPSBkb2N1bWVudCgpOworICAgIGlmICghZG9jKQorICAgICAgICByZXR1cm4gMDsK
KyAgICBSZW5kZXJPYmplY3QqIG9iamVjdCA9IGRvYy0+cmVuZGVyZXIoKTsKKyAgICBBU1NFUlQo
b2JqZWN0LT5pc1JlbmRlclZpZXcoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFJlbmRlclZp
ZXcqPihvYmplY3QpOwogfQogCiBIVE1MRnJhbWVPd25lckVsZW1lbnQqIEZyYW1lOjpvd25lckVs
ZW1lbnQoKSBjb25zdApAQCAtMTE3NCw3ICsxMTc4LDcgQEAgSFRNTEZyYW1lT3duZXJFbGVtZW50
KiBGcmFtZTo6b3duZXJFbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gZC0+bV9vd25lckVsZW1l
bnQ7CiB9CiAKLVJlbmRlclBhcnQqIEZyYW1lOjpvd25lclJlbmRlcmVyKCkKK1JlbmRlclBhcnQq
IEZyYW1lOjpvd25lclJlbmRlcmVyKCkgY29uc3QKIHsKICAgICBIVE1MRnJhbWVPd25lckVsZW1l
bnQqIG93bmVyRWxlbWVudCA9IGQtPm1fb3duZXJFbGVtZW50OwogICAgIGlmICghb3duZXJFbGVt
ZW50KQpAQCAtMTE4NSw3ICsxMTg5LDcgQEAgUmVuZGVyUGFydCogRnJhbWU6Om93bmVyUmVuZGVy
ZXIoKQogLy8gcmV0dXJucyBGbG9hdFJlY3QgYmVjYXVzZSBnb2luZyB0aHJvdWdoIEludFJlY3Qg
d291bGQgdHJ1bmNhdGUgYW55IGZsb2F0cwogRmxvYXRSZWN0IEZyYW1lOjpzZWxlY3Rpb25SZWN0
KGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpIGNvbnN0CiB7Ci0gICAgUmVuZGVyVmlldyAqcm9v
dCA9IHN0YXRpY19jYXN0PFJlbmRlclZpZXcqPihyZW5kZXJlcigpKTsKKyAgICBSZW5kZXJWaWV3
KiByb290ID0gY29udGVudFJlbmRlcmVyKCk7CiAgICAgaWYgKCFyb290KQogICAgICAgICByZXR1
cm4gSW50UmVjdCgpOwogICAgIApAQCAtMTE5NSw3ICsxMTk5LDcgQEAgRmxvYXRSZWN0IEZyYW1l
OjpzZWxlY3Rpb25SZWN0KGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpIGNvbnN0CiAKIHZvaWQg
RnJhbWU6OnNlbGVjdGlvblRleHRSZWN0cyhWZWN0b3I8RmxvYXRSZWN0PiYgcmVjdHMsIGJvb2wg
Y2xpcFRvVmlzaWJsZUNvbnRlbnQpIGNvbnN0CiB7Ci0gICAgUmVuZGVyVmlldyAqcm9vdCA9IHN0
YXRpY19jYXN0PFJlbmRlclZpZXcqPihyZW5kZXJlcigpKTsKKyAgICBSZW5kZXJWaWV3KiByb290
ID0gY29udGVudFJlbmRlcmVyKCk7CiAgICAgaWYgKCFyb290KQogICAgICAgICByZXR1cm47CiAK
QEAgLTEzMzMsMjMgKzEzMzcsMjMgQEAgdm9pZCBGcmFtZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
KiBwLCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIGlmIChpc1RvcExldmVsUGFpbnRlcikKICAg
ICAgICAgc19jdXJyZW50UGFpbnRUaW1lU3RhbXAgPSBjdXJyZW50VGltZSgpOwogICAgIAotICAg
IGlmIChyZW5kZXJlcigpKSB7CisgICAgaWYgKGNvbnRlbnRSZW5kZXJlcigpKSB7CiAgICAgICAg
IEFTU0VSVChkLT5tX3ZpZXcgJiYgIWQtPm1fdmlldy0+bmVlZHNMYXlvdXQoKSk7CiAgICAgICAg
IEFTU0VSVCghZC0+bV9pc1BhaW50aW5nKTsKICAgICAgICAgCiAgICAgICAgIGQtPm1faXNQYWlu
dGluZyA9IHRydWU7CiAgICAgICAgIAogICAgICAgICAvLyBkLT5tX2VsZW1lbnRUb0RyYXcgaXMg
dXNlZCB0byBkcmF3IG9ubHkgb25lIGVsZW1lbnQKLSAgICAgICAgUmVuZGVyT2JqZWN0ICplbHRS
ZW5kZXJlciA9IGQtPm1fZWxlbWVudFRvRHJhdyA/IGQtPm1fZWxlbWVudFRvRHJhdy0+cmVuZGVy
ZXIoKSA6IDA7CisgICAgICAgIFJlbmRlck9iamVjdCogZWx0UmVuZGVyZXIgPSBkLT5tX2VsZW1l
bnRUb0RyYXcgPyBkLT5tX2VsZW1lbnRUb0RyYXctPnJlbmRlcmVyKCkgOiAwOwogICAgICAgICBp
ZiAoZC0+bV9wYWludFJlc3RyaWN0aW9uID09IFBhaW50UmVzdHJpY3Rpb25Ob25lKQotICAgICAg
ICAgICAgcmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS0+aW52YWxpZGF0ZVJlbmRlcmVkUmVjdHNGb3JN
YXJrZXJzSW5SZWN0KHJlY3QpOwotICAgICAgICByZW5kZXJlcigpLT5sYXllcigpLT5wYWludChw
LCByZWN0LCBkLT5tX3BhaW50UmVzdHJpY3Rpb24sIGVsdFJlbmRlcmVyKTsKKyAgICAgICAgICAg
IGRvY3VtZW50KCktPmludmFsaWRhdGVSZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0luUmVjdChyZWN0
KTsKKyAgICAgICAgY29udGVudFJlbmRlcmVyKCktPmxheWVyKCktPnBhaW50KHAsIHJlY3QsIGQt
Pm1fcGFpbnRSZXN0cmljdGlvbiwgZWx0UmVuZGVyZXIpOwogICAgICAgICAKICAgICAgICAgZC0+
bV9pc1BhaW50aW5nID0gZmFsc2U7CiAKICAgICAgICAgLy8gUmVnaW9ucyBtYXkgaGF2ZSBjaGFu
Z2VkIGFzIGEgcmVzdWx0IG9mIHRoZSB2aXNpYmlsaXR5L3otaW5kZXggb2YgZWxlbWVudCBjaGFu
Z2luZy4KLSAgICAgICAgaWYgKHJlbmRlcmVyKCktPmRvY3VtZW50KCktPmRhc2hib2FyZFJlZ2lv
bnNEaXJ0eSgpKQotICAgICAgICAgICAgcmVuZGVyZXIoKS0+dmlldygpLT5mcmFtZVZpZXcoKS0+
dXBkYXRlRGFzaGJvYXJkUmVnaW9ucygpOworICAgICAgICBpZiAoZG9jdW1lbnQoKS0+ZGFzaGJv
YXJkUmVnaW9uc0RpcnR5KCkpCisgICAgICAgICAgICB2aWV3KCktPnVwZGF0ZURhc2hib2FyZFJl
Z2lvbnMoKTsKICAgICB9IGVsc2UKICAgICAgICAgTE9HX0VSUk9SKCJjYWxsZWQgRnJhbWU6OnBh
aW50IHdpdGggbmlsIHJlbmRlcmVyIik7CiAgICAgICAgIApAQCAtMTM2OSw3ICsxMzczLDcgQEAg
Ym9vbCBGcmFtZTo6aXNQYWludGluZygpIGNvbnN0CiAKIHZvaWQgRnJhbWU6OmFkanVzdFBhZ2VI
ZWlnaHQoZmxvYXQgKm5ld0JvdHRvbSwgZmxvYXQgb2xkVG9wLCBmbG9hdCBvbGRCb3R0b20sIGZs
b2F0IGJvdHRvbUxpbWl0KQogewotICAgIFJlbmRlclZpZXcgKnJvb3QgPSBzdGF0aWNfY2FzdDxS
ZW5kZXJWaWV3Kj4oZG9jdW1lbnQoKS0+cmVuZGVyZXIoKSk7CisgICAgUmVuZGVyVmlldyogcm9v
dCA9IGNvbnRlbnRSZW5kZXJlcigpOwogICAgIGlmIChyb290KSB7CiAgICAgICAgIC8vIFVzZSBh
IGNvbnRleHQgd2l0aCBwYWludGluZyBkaXNhYmxlZC4KICAgICAgICAgR3JhcGhpY3NDb250ZXh0
IGNvbnRleHQoKFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KikwKTsKQEAgLTE2NDcsNyArMTY1MSw3
IEBAIHVuc2lnbmVkIEZyYW1lOjptYXJrQWxsTWF0Y2hlc0ZvclRleHQoY29uc3QgU3RyaW5nJiB0
YXJnZXQsIGJvb2wgY2FzZUZsYWcsIHVuc2lnCiAgICAgLy8gRG8gYSAiZmFrZSIgcGFpbnQgaW4g
b3JkZXIgdG8gZXhlY3V0ZSB0aGUgY29kZSB0aGF0IGNvbXB1dGVzIHRoZSByZW5kZXJlZCByZWN0
IGZvciAKICAgICAvLyBlYWNoIHRleHQgbWF0Y2guCiAgICAgRG9jdW1lbnQqIGRvYyA9IGRvY3Vt
ZW50KCk7Ci0gICAgaWYgKGRvYyAmJiBkLT5tX3ZpZXcgJiYgcmVuZGVyZXIoKSkgeworICAgIGlm
IChkb2MgJiYgZC0+bV92aWV3ICYmIGNvbnRlbnRSZW5kZXJlcigpKSB7CiAgICAgICAgIGRvYy0+
dXBkYXRlTGF5b3V0KCk7IC8vIEVuc3VyZSBsYXlvdXQgaXMgdXAgdG8gZGF0ZS4KICAgICAgICAg
SW50UmVjdCB2aXNpYmxlUmVjdChlbmNsb3NpbmdJbnRSZWN0KGQtPm1fdmlldy0+dmlzaWJsZUNv
bnRlbnRSZWN0KCkpKTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQoKFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0KikwKTsKQEAgLTE4NzcsNyArMTg4MSw3IEBAIERvY3VtZW50KiBGcmFt
ZTo6ZG9jdW1lbnRBdFBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkKICAgICBJbnRQb2ludCBw
dCA9IHZpZXcoKS0+d2luZG93VG9Db250ZW50cyhwb2ludCk7CiAgICAgSGl0VGVzdFJlc3VsdCBy
ZXN1bHQgPSBIaXRUZXN0UmVzdWx0KHB0KTsKICAgICAKLSAgICBpZiAocmVuZGVyZXIoKSkKKyAg
ICBpZiAoY29udGVudFJlbmRlcmVyKCkpCiAgICAgICAgIHJlc3VsdCA9IGV2ZW50SGFuZGxlcigp
LT5oaXRUZXN0UmVzdWx0QXRQb2ludChwdCwgZmFsc2UpOwogICAgIHJldHVybiByZXN1bHQuaW5u
ZXJOb2RlKCkgPyByZXN1bHQuaW5uZXJOb2RlKCktPmRvY3VtZW50KCkgOiAwOwogfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9XZWJDb3JlL3BhZ2UvRnJhbWUuaAppbmRleCA0
YzVkODk2Li5iYTc5YzQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMTA0LDkgKzEwNCw4IEBAIHB1YmxpYzoKICAgICBBbmlt
YXRpb25Db250cm9sbGVyKiBhbmltYXRpb25Db250cm9sbGVyKCkgY29uc3Q7CiAgICAgS0pTUHJv
eHkqIHNjcmlwdFByb3h5KCk7CiAKLSAgICAvLyBGSVhNRTogUmVuYW1lIHRvIGNvbnRlbnRSZW5k
ZXJlciBhbmQgY2hhbmdlIHR5cGUgdG8gUmVuZGVyVmlldy4KLSAgICBSZW5kZXJPYmplY3QqIHJl
bmRlcmVyKCkgY29uc3Q7IC8vIHJvb3QgcmVuZGVyZXIgZm9yIHRoZSBkb2N1bWVudCBjb250YWlu
ZWQgaW4gdGhpcyBmcmFtZQotICAgIFJlbmRlclBhcnQqIG93bmVyUmVuZGVyZXIoKTsgLy8gcmVu
ZGVyZXIgZm9yIHRoZSBlbGVtZW50IHRoYXQgY29udGFpbnMgdGhpcyBmcmFtZQorICAgIFJlbmRl
clZpZXcqIGNvbnRlbnRSZW5kZXJlcigpIGNvbnN0OyAvLyByb290IHJlbmRlcmVyIGZvciB0aGUg
ZG9jdW1lbnQgY29udGFpbmVkIGluIHRoaXMgZnJhbWUKKyAgICBSZW5kZXJQYXJ0KiBvd25lclJl
bmRlcmVyKCkgY29uc3Q7IC8vIHJlbmRlcmVyIGZvciB0aGUgZWxlbWVudCB0aGF0IGNvbnRhaW5z
IHRoaXMgZnJhbWUKIAogICAgIGZyaWVuZCBjbGFzcyBGcmFtZVByaXZhdGU7CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKaW5kZXggODNhYTM3ZS4uZGJlODdkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTE4MCw3ICsxODAs
NyBAQCBGcmFtZVZpZXc6On5GcmFtZVZpZXcoKQogICAgIEFTU0VSVCghZC0+bV9lbnF1ZXVlRXZl
bnRzKTsKIAogICAgIGlmIChtX2ZyYW1lKSB7Ci0gICAgICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3
KCkgIT0gdGhpcyB8fCAhbV9mcmFtZS0+ZG9jdW1lbnQoKSB8fCAhbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+cmVuZGVyZXIoKSk7CisgICAgICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3KCkgIT0gdGhpcyB8
fCAhbV9mcmFtZS0+ZG9jdW1lbnQoKSB8fCAhbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpOwog
ICAgICAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IG1fZnJhbWUtPm93bmVyUmVuZGVyZXIoKTsK
ICAgICAgICAgaWYgKHJlbmRlcmVyICYmIHJlbmRlcmVyLT53aWRnZXQoKSA9PSB0aGlzKQogICAg
ICAgICAgICAgcmVuZGVyZXItPnNldFdpZGdldCgwKTsKQEAgLTI1Nyw3ICsyNTcsNyBAQCB2b2lk
IEZyYW1lVmlldzo6c2V0TWFyZ2luSGVpZ2h0KGludCBoKQogdm9pZCBGcmFtZVZpZXc6OmFkanVz
dFZpZXdTaXplKCkKIHsKICAgICBBU1NFUlQobV9mcmFtZS0+dmlldygpID09IHRoaXMpOwotICAg
IFJlbmRlclZpZXcqIHJvb3QgPSBzdGF0aWNfY2FzdDxSZW5kZXJWaWV3Kj4obV9mcmFtZS0+cmVu
ZGVyZXIoKSk7CisgICAgUmVuZGVyVmlldyogcm9vdCA9IG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJl
cigpOwogICAgIGlmICghcm9vdCkKICAgICAgICAgcmV0dXJuOwogICAgIHJlc2l6ZUNvbnRlbnRz
KHJvb3QtPm92ZXJmbG93V2lkdGgoKSwgcm9vdC0+b3ZlcmZsb3dIZWlnaHQoKSk7CkBAIC00OTAs
NiArNDkwLDggQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3VidHJlZSkKICAg
IAogICAgIGQtPmxheW91dFNjaGVkdWxpbmdFbmFibGVkID0gdHJ1ZTsKIAorICAgIC8vIEZJWE1F
OiBpcyByb290IGFsd2F5cyBhIFJlbmRlclZpZXc/IGlmIHNvLCBzdGF0aWNfY2FzdCBhdCBpbml0
aWFsaXphdGlvbgorICAgIEFTU0VSVChyb290LT5pc1JlbmRlclZpZXcoKSk7CiAgICAgaWYgKCFz
dWJ0cmVlICYmICFzdGF0aWNfY2FzdDxSZW5kZXJWaWV3Kj4ocm9vdCktPnByaW50aW5nKCkpCiAg
ICAgICAgIGFkanVzdFZpZXdTaXplKCk7CiAKQEAgLTgxMCwzOCArODEyLDM3IEBAIHN0YXRpYyBi
b29sIGlzT2JqZWN0QW5jZXN0b3JDb250YWluZXJPZihSZW5kZXJPYmplY3QqIGFuY2VzdG9yLCBS
ZW5kZXJPYmplY3QqIGRlCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIEZyYW1lVmlldzo6
c2NoZWR1bGVSZWxheW91dE9mU3VidHJlZShSZW5kZXJPYmplY3QqIG8pCit2b2lkIEZyYW1lVmll
dzo6c2NoZWR1bGVSZWxheW91dE9mU3VidHJlZShSZW5kZXJPYmplY3QqIHJlbGF5b3V0Um9vdCkK
IHsKICAgICBBU1NFUlQobV9mcmFtZS0+dmlldygpID09IHRoaXMpOwogCi0gICAgaWYgKCFkLT5s
YXlvdXRTY2hlZHVsaW5nRW5hYmxlZCB8fCAobV9mcmFtZS0+ZG9jdW1lbnQoKQotICAgICAgICAg
ICAgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+cmVuZGVyZXIoKQotICAgICAgICAgICAgJiYgbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSkpIHsKLSAgICAgICAg
aWYgKG8pCi0gICAgICAgICAgICBvLT5tYXJrQ29udGFpbmluZ0Jsb2Nrc0ZvckxheW91dChmYWxz
ZSk7CisgICAgaWYgKCFkLT5sYXlvdXRTY2hlZHVsaW5nRW5hYmxlZCB8fCAobV9mcmFtZS0+Y29u
dGVudFJlbmRlcmVyKCkKKyAgICAgICAgICAgICYmIG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigp
LT5uZWVkc0xheW91dCgpKSkgeworICAgICAgICBpZiAocmVsYXlvdXRSb290KQorICAgICAgICAg
ICAgcmVsYXlvdXRSb290LT5tYXJrQ29udGFpbmluZ0Jsb2Nrc0ZvckxheW91dChmYWxzZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobGF5b3V0UGVuZGluZygpKSB7Ci0gICAg
ICAgIGlmIChkLT5sYXlvdXRSb290ICE9IG8pIHsKLSAgICAgICAgICAgIGlmIChpc09iamVjdEFu
Y2VzdG9yQ29udGFpbmVyT2YoZC0+bGF5b3V0Um9vdCwgbykpIHsKKyAgICAgICAgaWYgKGQtPmxh
eW91dFJvb3QgIT0gcmVsYXlvdXRSb290KSB7CisgICAgICAgICAgICBpZiAoaXNPYmplY3RBbmNl
c3RvckNvbnRhaW5lck9mKGQtPmxheW91dFJvb3QsIHJlbGF5b3V0Um9vdCkpIHsKICAgICAgICAg
ICAgICAgICAvLyBLZWVwIHRoZSBjdXJyZW50IHJvb3QKLSAgICAgICAgICAgICAgICBvLT5tYXJr
Q29udGFpbmluZ0Jsb2Nrc0ZvckxheW91dChmYWxzZSwgZC0+bGF5b3V0Um9vdCk7Ci0gICAgICAg
ICAgICB9IGVsc2UgaWYgKGQtPmxheW91dFJvb3QgJiYgaXNPYmplY3RBbmNlc3RvckNvbnRhaW5l
ck9mKG8sIGQtPmxheW91dFJvb3QpKSB7Ci0gICAgICAgICAgICAgICAgLy8gUmUtcm9vdCBhdCBv
Ci0gICAgICAgICAgICAgICAgZC0+bGF5b3V0Um9vdC0+bWFya0NvbnRhaW5pbmdCbG9ja3NGb3JM
YXlvdXQoZmFsc2UsIG8pOwotICAgICAgICAgICAgICAgIGQtPmxheW91dFJvb3QgPSBvOworICAg
ICAgICAgICAgICAgIHJlbGF5b3V0Um9vdC0+bWFya0NvbnRhaW5pbmdCbG9ja3NGb3JMYXlvdXQo
ZmFsc2UsIGQtPmxheW91dFJvb3QpOworICAgICAgICAgICAgfSBlbHNlIGlmIChkLT5sYXlvdXRS
b290ICYmIGlzT2JqZWN0QW5jZXN0b3JDb250YWluZXJPZihyZWxheW91dFJvb3QsIGQtPmxheW91
dFJvb3QpKSB7CisgICAgICAgICAgICAgICAgLy8gUmUtcm9vdCBhdCByZWxheW91dFJvb3QKKyAg
ICAgICAgICAgICAgICBkLT5sYXlvdXRSb290LT5tYXJrQ29udGFpbmluZ0Jsb2Nrc0ZvckxheW91
dChmYWxzZSwgcmVsYXlvdXRSb290KTsKKyAgICAgICAgICAgICAgICBkLT5sYXlvdXRSb290ID0g
cmVsYXlvdXRSb290OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAvLyBK
dXN0IGRvIGEgZnVsbCByZWxheW91dAogICAgICAgICAgICAgICAgIGlmIChkLT5sYXlvdXRSb290
KQogICAgICAgICAgICAgICAgICAgICBkLT5sYXlvdXRSb290LT5tYXJrQ29udGFpbmluZ0Jsb2Nr
c0ZvckxheW91dChmYWxzZSk7CiAgICAgICAgICAgICAgICAgZC0+bGF5b3V0Um9vdCA9IDA7Ci0g
ICAgICAgICAgICAgICAgby0+bWFya0NvbnRhaW5pbmdCbG9ja3NGb3JMYXlvdXQoZmFsc2UpOwor
ICAgICAgICAgICAgICAgIHJlbGF5b3V0Um9vdC0+bWFya0NvbnRhaW5pbmdCbG9ja3NGb3JMYXlv
dXQoZmFsc2UpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgaW50IGRlbGF5ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+bWluaW11bUxheW91dERlbGF5KCk7
Ci0gICAgICAgIGQtPmxheW91dFJvb3QgPSBvOworICAgICAgICBkLT5sYXlvdXRSb290ID0gcmVs
YXlvdXRSb290OwogICAgICAgICBkLT5kZWxheWVkTGF5b3V0ID0gZGVsYXkgIT0gMDsKICAgICAg
ICAgZC0+bGF5b3V0VGltZXIuc3RhcnRPbmVTaG90KGRlbGF5ICogMC4wMDEpOwogICAgIH0KQEAg
LTg1OCw3ICs4NTksNyBAQCBib29sIEZyYW1lVmlldzo6bmVlZHNMYXlvdXQoKSBjb25zdAogICAg
IC8vIHRoZW4gd2UgYXJlIG5vdCBhbGxvd2VkIHRvIHNjaGVkdWxlIGxheW91dHMgeWV0LCBzbyB3
ZSB3b24ndCBiZSBwZW5kaW5nIGxheW91dC4KICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBSZW5kZXJWaWV3KiByb290ID0gc3RhdGljX2Nhc3Q8UmVuZGVyVmll
dyo+KG1fZnJhbWUtPnJlbmRlcmVyKCkpOworICAgIFJlbmRlclZpZXcqIHJvb3QgPSBtX2ZyYW1l
LT5jb250ZW50UmVuZGVyZXIoKTsKICAgICBEb2N1bWVudCAqIGRvYyA9IG1fZnJhbWUtPmRvY3Vt
ZW50KCk7CiAgICAgLy8gZG9jLT5oYXNDaGFuZ2VkQ2hpbGQoKSBjb25kaXRpb24gY2FuIG9jY3Vy
IHdoZW4gdXNpbmcgV2ViS2l0IE9iakMgaW50ZXJmYWNlCiAgICAgcmV0dXJuIGxheW91dFBlbmRp
bmcoKSB8fCAocm9vdCAmJiByb290LT5uZWVkc0xheW91dCgpKSB8fCBkLT5sYXlvdXRSb290IHx8
IChkb2MgJiYgZG9jLT5oYXNDaGFuZ2VkQ2hpbGQoKSkgfHwgbV9mcmFtZS0+bmVlZHNSZWFwcGx5
U3R5bGVzKCk7CkBAIC04NjYsOCArODY3LDkgQEAgYm9vbCBGcmFtZVZpZXc6Om5lZWRzTGF5b3V0
KCkgY29uc3QKIAogdm9pZCBGcmFtZVZpZXc6OnNldE5lZWRzTGF5b3V0KCkKIHsKLSAgICBpZiAo
bV9mcmFtZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgbV9mcmFtZS0+cmVuZGVyZXIoKS0+c2V0TmVl
ZHNMYXlvdXQodHJ1ZSk7CisgICAgUmVuZGVyVmlldyogcm9vdCA9IG1fZnJhbWUtPmNvbnRlbnRS
ZW5kZXJlcigpOworICAgIGlmIChyb290KQorICAgICAgICByb290LT5zZXROZWVkc0xheW91dCh0
cnVlKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnVuc2NoZWR1bGVSZWxheW91dCgpCkBAIC05Mzcs
NyArOTM5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnJlc3VtZVNjaGVkdWxlZEV2ZW50cygpCiAKIHZv
aWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKCkKIHsKLSAgICBSZW5kZXJWaWV3
KiByb290ID0gc3RhdGljX2Nhc3Q8UmVuZGVyVmlldyo+KG1fZnJhbWUtPmRvY3VtZW50KCktPnJl
bmRlcmVyKCkpOworICAgIFJlbmRlclZpZXcqIHJvb3QgPSBtX2ZyYW1lLT5jb250ZW50UmVuZGVy
ZXIoKTsKIAogICAgIHJvb3QtPnVwZGF0ZVdpZGdldFBvc2l0aW9ucygpOwogICAgIGlmIChtX3dp
ZGdldFVwZGF0ZVNldCAmJiBkLT5uZXN0ZWRMYXlvdXRDb3VudCA8PSAxKSB7CkBAIC0xMDk3LDcg
KzEwOTksNyBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlQ29udHJvbFRpbnRzKCkKICAgICBpZiAo
IW1fZnJhbWUgfHwgbV9mcmFtZS0+bG9hZGVyKCktPnVybCgpLmlzRW1wdHkoKSkgCiAgICAgICAg
IHJldHVybjsKICAgICAKLSAgICBpZiAodGhlbWUoKS0+c3VwcG9ydHNDb250cm9sVGludHMoKSAm
JiBtX2ZyYW1lLT5yZW5kZXJlcigpKSB7CisgICAgaWYgKHRoZW1lKCktPnN1cHBvcnRzQ29udHJv
bFRpbnRzKCkgJiYgbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpIHsKICAgICAgICAgaWYgKG5l
ZWRzTGF5b3V0KCkpCiAgICAgICAgICAgICBsYXlvdXQoKTsKICAgICAgICAgUGxhdGZvcm1HcmFw
aGljc0NvbnRleHQqIGNvbnN0IG5vQ29udGV4dCA9IDA7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRy
ZWVBc1RleHQuY3BwCmluZGV4IDE1YmM2YzAuLjk5YmE2YTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRyZWVBc1RleHQuY3BwCkBAIC0zNjEsNyArMzYxLDcgQEAgdm9pZCB3cml0ZShUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBpbnQgaW5kZW50KQogICAgICAgICBXaWRn
ZXQqIHdpZGdldCA9IHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlcldpZGdldCY+KG8pLndpZGdldCgp
OwogICAgICAgICBpZiAod2lkZ2V0ICYmIHdpZGdldC0+aXNGcmFtZVZpZXcoKSkgewogICAgICAg
ICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4od2lkZ2V0KTsK
LSAgICAgICAgICAgIFJlbmRlck9iamVjdCogcm9vdCA9IHZpZXctPmZyYW1lKCktPnJlbmRlcmVy
KCk7CisgICAgICAgICAgICBSZW5kZXJPYmplY3QqIHJvb3QgPSB2aWV3LT5mcmFtZSgpLT5jb250
ZW50UmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlmIChyb290KSB7CiAgICAgICAgICAgICAgICAg
dmlldy0+bGF5b3V0KCk7CiAgICAgICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGwgPSByb290LT5s
YXllcigpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IDk4NGI4MzIuLjY1Yjg1ZTUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAorKysgYi9XZWJD
b3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRl
ICJJbWFnZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJy
b3IuaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgpA
QCAtMTY3LDcgKzE2OCw3IEBAIE5hdGl2ZUltYWdlUHRyIFNWR0ltYWdlOjpuYXRpdmVJbWFnZUZv
ckN1cnJlbnRGcmFtZSgpCiAgICAgICAgIG1fZnJhbWVDYWNoZS5zZXQoSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShzaXplKCksIGZhbHNlKS5yZWxlYXNlKCkpOwogICAgICAgICBpZiAoIW1fZnJhbWVDYWNo
ZSkgLy8gZmFpbGVkIHRvIGFsbG9jYXRlIGltYWdlCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAg
ICAgICAgcmVuZGVyU3VidHJlZVRvSW1hZ2UobV9mcmFtZUNhY2hlLmdldCgpLCBtX2ZyYW1lLT5y
ZW5kZXJlcigpKTsKKyAgICAgICAgcmVuZGVyU3VidHJlZVRvSW1hZ2UobV9mcmFtZUNhY2hlLmdl
dCgpLCBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSk7CiAgICAgfQogI2lmIFBMQVRGT1JNKENH
KQogICAgIHJldHVybiBtX2ZyYW1lQ2FjaGUtPmNnSW1hZ2UoKTsKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYjU0ZTcyMi4uN2Mz
NTE0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAwOC0wNC0xNyAgRXJpYyBTZWlkZWwgIDxlcmlj
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgaHlhdHQuCisKKyAgICAgICAgUmVu
YW1lIEZyYW1lOjpyZW5kZXJlcigpIHRvIGNvbnRlbnRSZW5kZXJlcigpIGFuZCBmaXggdXNlcy4K
KworICAgICAgICAqIE1pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW06CisgICAgICAgICogV2ViVmll
dy9XZWJSZW5kZXJOb2RlLm1tOgorICAgICAgICAoLVtXZWJSZW5kZXJOb2RlIGluaXRXaXRoV2Vi
RnJhbWVWaWV3Ol0pOgorCiAyMDA4LTA0LTE3ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+
CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAtLWdpdCBh
L1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbSBiL1dlYktpdC9tYWMvTWlzYy9X
ZWJDb3JlU3RhdGlzdGljcy5tbQppbmRleCBmMzY2NjM4Li4wOTBiMmM5IDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0KKysrIGIvV2ViS2l0L21hYy9NaXNj
L1dlYkNvcmVTdGF0aXN0aWNzLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L0dDQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4dC5oPgorI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJW
aWV3Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBLSlM7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
QEAgLTE4MCw3ICsxODEsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogLSAoTlNTdHJp
bmcgKilyZW5kZXJUcmVlQXNFeHRlcm5hbFJlcHJlc2VudGF0aW9uCiB7Ci0gICAgcmV0dXJuIGV4
dGVybmFsUmVwcmVzZW50YXRpb24oX3ByaXZhdGUtPmNvcmVGcmFtZS0+cmVuZGVyZXIoKSk7Cisg
ICAgcmV0dXJuIGV4dGVybmFsUmVwcmVzZW50YXRpb24oX3ByaXZhdGUtPmNvcmVGcmFtZS0+Y29u
dGVudFJlbmRlcmVyKCkpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUmVuZGVyTm9kZS5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZW5kZXJOb2RlLm1t
CmluZGV4IDQ5NTVhZWQuLjQzN2NlODEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJSZW5kZXJOb2RlLm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJSZW5kZXJOb2RlLm1t
CkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJXZWJIVE1MVmlldy5oIgogI2ltcG9ydCA8V2Vi
Q29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJXaWRnZXQuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvUmVuZGVyVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XaWRnZXQuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDQsNyArMTA1LDcgQEAgc3RhdGljIFdlYlJlbmRl
ck5vZGUgKmNvcHlSZW5kZXJOb2RlKFJlbmRlck9iamVjdCogbm9kZSkKICAgICBpZiAoIVtbdmll
dyBkb2N1bWVudFZpZXddIGlzTWVtYmVyT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBjb3JlKFt2
aWV3IHdlYkZyYW1lXSktPnJlbmRlcmVyKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
IGNvcmUoW3ZpZXcgd2ViRnJhbWVdKS0+Y29udGVudFJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5k
ZXJlcikKICAgICAgICAgcmV0dXJuIG5pbDsKIAo=
</data>
<flag name="review"
          id="9004"
          type_id="1"
          status="+"
          setter="bdakin"
    />
          </attachment>
      

    </bug>

</bugzilla>