<?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>135818</bug_id>
          
          <creation_ts>2014-08-11 16:00:48 -0700</creation_ts>
          <short_desc>RenderObject::repaintUsingContainer should take repaint container as reference.</short_desc>
          <delta_ts>2014-08-15 20:56:42 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          
          <blocked>135817</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1028342</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-08-11 16:00:48 -0700</bug_when>
    <thetext>subtask of bug 135817</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028347</commentid>
    <comment_count>1</comment_count>
      <attachid>236411</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-08-11 16:12:53 -0700</bug_when>
    <thetext>Created attachment 236411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028417</commentid>
    <comment_count>2</comment_count>
      <attachid>236411</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-08-11 22:09:28 -0700</bug_when>
    <thetext>Comment on attachment 236411
Patch

This seems worse than the old version. All those null checks at all the call sites are messy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029560</commentid>
    <comment_count>3</comment_count>
      <attachid>236411</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-08-15 20:56:21 -0700</bug_when>
    <thetext>Comment on attachment 236411
Patch

(In reply to comment #2)
&gt; (From update of attachment 236411 [details])
&gt; This seems worse than the old version. All those null checks at all the call sites are messy.
Yes, they are!
This is an incremental change. see Changlog entry:

&quot;This is in preparation to ensure that we always pass a valid repaint container to repaint
functions. (tracked here webkit.org/b/135817). This changeset has explicit view()
calls which are going to be removed once containerForRepaint() starts returning container reference.&quot;

My plan is to enforce containerForRepaint() to return a reference. There&apos;s a chance that it&apos;s not possible without some major changes so I decided to do it incrementally. However, I wasn&apos;t planning to commit these intermediate changes until after the goal is met. (so those null checks should never land on trunk.)  
I should have been more vocal about it in the bug description.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236411</attachid>
            <date>2014-08-11 16:12:53 -0700</date>
            <delta_ts>2014-08-15 20:56:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135818-20140811161248.patch</filename>
            <type>text/plain</type>
            <size>20012</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTMzNDFlMGM5ZmQ4NTE5
MTljNTM4ZWU1ZmE1Y2Q1MTBhZjVlYzcyZi4uNGU0NjAzYWJiOTg3YzZjYmI0ZjQ1YjFkNTFkMWVi
YmZmOGY0OTk1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA4LTExICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyT2JqZWN0OjpyZXBh
aW50VXNpbmdDb250YWluZXIgc2hvdWxkIHRha2UgcmVwYWludCBjb250YWluZXIgYXMgcmVmZXJl
bmNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1
ODE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBpcyBpbiBwcmVwYXJhdGlvbiB0byBlbnN1cmUgdGhhdCB3ZSBhbHdheXMgcGFzcyBhIHZhbGlk
IHJlcGFpbnQgY29udGFpbmVyIHRvIHJlcGFpbnQKKyAgICAgICAgZnVuY3Rpb25zLiAodHJhY2tl
ZCBoZXJlIHdlYmtpdC5vcmcvYi8xMzU4MTcpLiBUaGlzIGNoYW5nZXNldCBoYXMgZXhwbGljaXQg
dmlldygpCisgICAgICAgIGNhbGxzIHdoaWNoIGFyZSBnb2luZyB0byBiZSByZW1vdmVkIG9uY2Ug
Y29udGFpbmVyRm9yUmVwYWludCgpIHN0YXJ0cyByZXR1cm5pbmcgY29udGFpbmVyIHJlZmVyZW5j
ZS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2tGbG93OjpsYXlvdXRSdW5zQW5kRmxvYXRzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpyZXBh
aW50QWZ0ZXJMYXlvdXRJZk5lZWRlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1l
U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZyYW1lU2V0OjpsYXlvdXQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxh
dGVDbGlwUmVjdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXBhaW50T25Db21wb3NpdGluZ0NoYW5nZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJPYmplY3Q6OnJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpy
ZXBhaW50UmVjdGFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6cmVwYWlu
dFNsb3dSZXBhaW50T2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2U6OlJlbmRlclNlbGVjdGlvbkluZm9CYXNl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlbGVjdGlvbkluZm9CYXNlOjpyZXBhaW50UmVj
dGFuZ2xlKToKKwogMjAxNC0wOC0wOCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTjogSW5zcGVjdG9yIGNyYXNoZXMgd2hlbiBkZWJ1Z2dlciBpcyBw
YXVzZWQgYW5kIGluamVjdGVkIHNjcmlwdHMgYWNjZXNzIHdpbmRvdy5zY3JlZW4oKS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5k
ZXggMTM5MDRlNzMwN2ExNmFmNDg2MGE1NDZiMTAzMzRiMDRiMWUzMThlZi4uNWQ4NzI5NzllNWIw
ZjBjZDNiYWRiMjUyNTg2YmQ1ZDFhOTIzNTJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTk4Niw3ICs5ODYsMTAgQEAg
dm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dFJ1bnNBbmRGbG9hdHMoTGluZUxheW91dFN0YXRl
JiBsYXlvdXRTdGF0ZSwgYm9vbCBoYXMKICAgICAgICAgICAgIC8vIHRoYXQgdGhlIGJsb2NrIHJl
YWxseSBuZWVkZWQgYSBmdWxsIGxheW91dCwgd2UgbWlzc2VkIG91ciBjaGFuY2UgdG8gcmVwYWlu
dCB0aGUgbGF5ZXIKICAgICAgICAgICAgIC8vIGJlZm9yZSBsYXlvdXQgc3RhcnRlZC4gIEx1Y2tp
bHkgdGhlIGxheWVyIGhhcyBjYWNoZWQgdGhlIHJlcGFpbnQgcmVjdCBmb3IgaXRzIG9yaWdpbmFs
CiAgICAgICAgICAgICAvLyBwb3NpdGlvbiBhbmQgc2l6ZSwgYW5kIHNvIHdlIGNhbiB1c2UgdGhh
dCB0byBtYWtlIGEgcmVwYWludCBoYXBwZW4gbm93LgotICAgICAgICAgICAgcmVwYWludFVzaW5n
Q29udGFpbmVyKGNvbnRhaW5lckZvclJlcGFpbnQoKSwgbGF5ZXIoKS0+cmVwYWludFJlY3QoKSk7
CisgICAgICAgICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0g
Y29udGFpbmVyRm9yUmVwYWludCgpOworICAgICAgICAgICAgaWYgKCFyZXBhaW50Q29udGFpbmVy
KQorICAgICAgICAgICAgICAgIHJlcGFpbnRDb250YWluZXIgPSAmdmlldygpOworICAgICAgICAg
ICAgcmVwYWludFVzaW5nQ29udGFpbmVyKCpyZXBhaW50Q29udGFpbmVyLCBsYXllcigpLT5yZXBh
aW50UmVjdCgpKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDYyYzkxOTZlODllNDg1ODg5YTQ3NWZjZTU5ZTg2ZDdi
M2RkNWI3YzIuLjczYTgxODgwMzQ1NDgzM2U4ZWY2OGU0MmRmMjhjNGVkOTdjNTU2M2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTExODgsOSArMTE4
OCw5IEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6cmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwCiAgICAgICAgIHJlcGFpbnRDb250YWluZXIg
PSAmdmlldygpOwogCiAgICAgaWYgKGZ1bGxSZXBhaW50KSB7Ci0gICAgICAgIHJlcGFpbnRVc2lu
Z0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBvbGRCb3VuZHMpOworICAgICAgICByZXBhaW50
VXNpbmdDb250YWluZXIoKnJlcGFpbnRDb250YWluZXIsIG9sZEJvdW5kcyk7CiAgICAgICAgIGlm
IChuZXdCb3VuZHMgIT0gb2xkQm91bmRzKQotICAgICAgICAgICAgcmVwYWludFVzaW5nQ29udGFp
bmVyKHJlcGFpbnRDb250YWluZXIsIG5ld0JvdW5kcyk7CisgICAgICAgICAgICByZXBhaW50VXNp
bmdDb250YWluZXIoKnJlcGFpbnRDb250YWluZXIsIG5ld0JvdW5kcyk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIApAQCAtMTE5OSwyNyArMTE5OSwyNyBAQCBib29sIFJlbmRlckVsZW1l
bnQ6OnJlcGFpbnRBZnRlckxheW91dElmTmVlZGVkKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcAogCiAgICAgTGF5b3V0VW5pdCBkZWx0YUxlZnQgPSBuZXdCb3VuZHMueCgpIC0gb2xk
Qm91bmRzLngoKTsKICAgICBpZiAoZGVsdGFMZWZ0ID4gMCkKLSAgICAgICAgcmVwYWludFVzaW5n
Q29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3Qob2xkQm91bmRzLngoKSwgb2xk
Qm91bmRzLnkoKSwgZGVsdGFMZWZ0LCBvbGRCb3VuZHMuaGVpZ2h0KCkpKTsKKyAgICAgICAgcmVw
YWludFVzaW5nQ29udGFpbmVyKCpyZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0KG9sZEJvdW5k
cy54KCksIG9sZEJvdW5kcy55KCksIGRlbHRhTGVmdCwgb2xkQm91bmRzLmhlaWdodCgpKSk7CiAg
ICAgZWxzZSBpZiAoZGVsdGFMZWZ0IDwgMCkKLSAgICAgICAgcmVwYWludFVzaW5nQ29udGFpbmVy
KHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QobmV3Qm91bmRzLngoKSwgbmV3Qm91bmRzLnko
KSwgLWRlbHRhTGVmdCwgbmV3Qm91bmRzLmhlaWdodCgpKSk7CisgICAgICAgIHJlcGFpbnRVc2lu
Z0NvbnRhaW5lcigqcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdChuZXdCb3VuZHMueCgpLCBu
ZXdCb3VuZHMueSgpLCAtZGVsdGFMZWZ0LCBuZXdCb3VuZHMuaGVpZ2h0KCkpKTsKIAogICAgIExh
eW91dFVuaXQgZGVsdGFSaWdodCA9IG5ld0JvdW5kcy5tYXhYKCkgLSBvbGRCb3VuZHMubWF4WCgp
OwogICAgIGlmIChkZWx0YVJpZ2h0ID4gMCkKLSAgICAgICAgcmVwYWludFVzaW5nQ29udGFpbmVy
KHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3Qob2xkQm91bmRzLm1heFgoKSwgbmV3Qm91bmRz
LnkoKSwgZGVsdGFSaWdodCwgbmV3Qm91bmRzLmhlaWdodCgpKSk7CisgICAgICAgIHJlcGFpbnRV
c2luZ0NvbnRhaW5lcigqcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdChvbGRCb3VuZHMubWF4
WCgpLCBuZXdCb3VuZHMueSgpLCBkZWx0YVJpZ2h0LCBuZXdCb3VuZHMuaGVpZ2h0KCkpKTsKICAg
ICBlbHNlIGlmIChkZWx0YVJpZ2h0IDwgMCkKLSAgICAgICAgcmVwYWludFVzaW5nQ29udGFpbmVy
KHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QobmV3Qm91bmRzLm1heFgoKSwgb2xkQm91bmRz
LnkoKSwgLWRlbHRhUmlnaHQsIG9sZEJvdW5kcy5oZWlnaHQoKSkpOworICAgICAgICByZXBhaW50
VXNpbmdDb250YWluZXIoKnJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QobmV3Qm91bmRzLm1h
eFgoKSwgb2xkQm91bmRzLnkoKSwgLWRlbHRhUmlnaHQsIG9sZEJvdW5kcy5oZWlnaHQoKSkpOwog
CiAgICAgTGF5b3V0VW5pdCBkZWx0YVRvcCA9IG5ld0JvdW5kcy55KCkgLSBvbGRCb3VuZHMueSgp
OwogICAgIGlmIChkZWx0YVRvcCA+IDApCi0gICAgICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihy
ZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0KG9sZEJvdW5kcy54KCksIG9sZEJvdW5kcy55KCks
IG9sZEJvdW5kcy53aWR0aCgpLCBkZWx0YVRvcCkpOworICAgICAgICByZXBhaW50VXNpbmdDb250
YWluZXIoKnJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3Qob2xkQm91bmRzLngoKSwgb2xkQm91
bmRzLnkoKSwgb2xkQm91bmRzLndpZHRoKCksIGRlbHRhVG9wKSk7CiAgICAgZWxzZSBpZiAoZGVs
dGFUb3AgPCAwKQotICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5l
ciwgTGF5b3V0UmVjdChuZXdCb3VuZHMueCgpLCBuZXdCb3VuZHMueSgpLCBuZXdCb3VuZHMud2lk
dGgoKSwgLWRlbHRhVG9wKSk7CisgICAgICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcigqcmVwYWlu
dENvbnRhaW5lciwgTGF5b3V0UmVjdChuZXdCb3VuZHMueCgpLCBuZXdCb3VuZHMueSgpLCBuZXdC
b3VuZHMud2lkdGgoKSwgLWRlbHRhVG9wKSk7CiAKICAgICBMYXlvdXRVbml0IGRlbHRhQm90dG9t
ID0gbmV3Qm91bmRzLm1heFkoKSAtIG9sZEJvdW5kcy5tYXhZKCk7CiAgICAgaWYgKGRlbHRhQm90
dG9tID4gMCkKLSAgICAgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIs
IExheW91dFJlY3QobmV3Qm91bmRzLngoKSwgb2xkQm91bmRzLm1heFkoKSwgbmV3Qm91bmRzLndp
ZHRoKCksIGRlbHRhQm90dG9tKSk7CisgICAgICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcigqcmVw
YWludENvbnRhaW5lciwgTGF5b3V0UmVjdChuZXdCb3VuZHMueCgpLCBvbGRCb3VuZHMubWF4WSgp
LCBuZXdCb3VuZHMud2lkdGgoKSwgZGVsdGFCb3R0b20pKTsKICAgICBlbHNlIGlmIChkZWx0YUJv
dHRvbSA8IDApCi0gICAgICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCBMYXlvdXRSZWN0KG9sZEJvdW5kcy54KCksIG5ld0JvdW5kcy5tYXhZKCksIG9sZEJvdW5kcy53
aWR0aCgpLCAtZGVsdGFCb3R0b20pKTsKKyAgICAgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKCpy
ZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0KG9sZEJvdW5kcy54KCksIG5ld0JvdW5kcy5tYXhZ
KCksIG9sZEJvdW5kcy53aWR0aCgpLCAtZGVsdGFCb3R0b20pKTsKIAogICAgIGlmIChuZXdPdXRs
aW5lQm94ID09IG9sZE91dGxpbmVCb3gpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEyNDYs
NyArMTI0Niw3IEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6cmVwYWludEFmdGVyTGF5b3V0SWZOZWVk
ZWQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwCiAgICAgICAgIExheW91dFVuaXQg
cmlnaHQgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihuZXdCb3VuZHMubWF4WCgpLCBvbGRCb3VuZHMu
bWF4WCgpKTsKICAgICAgICAgaWYgKHJpZ2h0UmVjdC54KCkgPCByaWdodCkgewogICAgICAgICAg
ICAgcmlnaHRSZWN0LnNldFdpZHRoKHN0ZDo6bWluKHJpZ2h0UmVjdC53aWR0aCgpLCByaWdodCAt
IHJpZ2h0UmVjdC54KCkpKTsKLSAgICAgICAgICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBh
aW50Q29udGFpbmVyLCByaWdodFJlY3QpOworICAgICAgICAgICAgcmVwYWludFVzaW5nQ29udGFp
bmVyKCpyZXBhaW50Q29udGFpbmVyLCByaWdodFJlY3QpOwogICAgICAgICB9CiAgICAgfQogICAg
IExheW91dFVuaXQgaGVpZ2h0ID0gYWJzb2x1dGVWYWx1ZShuZXdPdXRsaW5lQm94LmhlaWdodCgp
IC0gb2xkT3V0bGluZUJveC5oZWlnaHQoKSk7CkBAIC0xMjY3LDcgKzEyNjcsNyBAQCBib29sIFJl
bmRlckVsZW1lbnQ6OnJlcGFpbnRBZnRlckxheW91dElmTmVlZGVkKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcAogICAgICAgICBMYXlvdXRVbml0IGJvdHRvbSA9IHN0ZDo6bWluKG5l
d0JvdW5kcy5tYXhZKCksIG9sZEJvdW5kcy5tYXhZKCkpOwogICAgICAgICBpZiAoYm90dG9tUmVj
dC55KCkgPCBib3R0b20pIHsKICAgICAgICAgICAgIGJvdHRvbVJlY3Quc2V0SGVpZ2h0KHN0ZDo6
bWluKGJvdHRvbVJlY3QuaGVpZ2h0KCksIGJvdHRvbSAtIGJvdHRvbVJlY3QueSgpKSk7Ci0gICAg
ICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciwgYm90dG9tUmVj
dCk7CisgICAgICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIoKnJlcGFpbnRDb250YWluZXIs
IGJvdHRvbVJlY3QpOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCmluZGV4IGNlZDExMmU0YTA0
NGEwZWFjMzlmZDU4ZGExMWI4MjkyNDdjNTNlMjEuLjcwNDUwYjhmZWViZTE4ZTgwNTRiN2ZkY2Uy
ZjZhMmE5YjUyODVhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGcmFtZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1l
U2V0LmNwcApAQCAtNDgzLDEwICs0ODMsMTIgQEAgdm9pZCBSZW5kZXJGcmFtZVNldDo6bGF5b3V0
KCkKICAgICB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwogCiAgICAgaWYgKGRvRnVsbFJlcGFpbnQp
IHsKLSAgICAgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHBpeGVs
U25hcHBlZEludFJlY3Qob2xkQm91bmRzKSk7CisgICAgICAgIGlmICghcmVwYWludENvbnRhaW5l
cikKKyAgICAgICAgICAgIHJlcGFpbnRDb250YWluZXIgPSAmdmlldygpOworICAgICAgICByZXBh
aW50VXNpbmdDb250YWluZXIoKnJlcGFpbnRDb250YWluZXIsIHBpeGVsU25hcHBlZEludFJlY3Qo
b2xkQm91bmRzKSk7CiAgICAgICAgIExheW91dFJlY3QgbmV3Qm91bmRzID0gY2xpcHBlZE92ZXJm
bG93UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lcik7CiAgICAgICAgIGlmIChuZXdCb3Vu
ZHMgIT0gb2xkQm91bmRzKQotICAgICAgICAgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFp
bnRDb250YWluZXIsIHBpeGVsU25hcHBlZEludFJlY3QobmV3Qm91bmRzKSk7CisgICAgICAgICAg
ICByZXBhaW50VXNpbmdDb250YWluZXIoKnJlcGFpbnRDb250YWluZXIsIHBpeGVsU25hcHBlZElu
dFJlY3QobmV3Qm91bmRzKSk7CiAgICAgfQogCiAgICAgY2xlYXJOZWVkc0xheW91dCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMDQyNGVjYjg1ZWQ4ZTdi
MzJiNjAxMDBhOWUwZWZjMjEyYzhlNTRlYy4uNThmZmMzMWJjNjEzOWI1OWU0OTVlMGZkYTBhM2I3
NDYyM2IxNmYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBA
IC00MDEsOSArNDAxLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25z
KFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1hcCwgVXBkYXRlTGF5CiAgICAgICAgICAgICBp
ZiAoIXJlbmRlcmVyKCkudmlldygpLnByaW50aW5nKCkpIHsKICAgICAgICAgICAgICAgICBib29s
IGRpZFJlcGFpbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICBpZiAobV9yZXBhaW50U3RhdHVz
ICYgTmVlZHNGdWxsUmVwYWludCkgewotICAgICAgICAgICAgICAgICAgICByZW5kZXJlcigpLnJl
cGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBvbGRSZXBhaW50UmVjdCk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghcmVwYWludENvbnRhaW5lcikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGFpbnRDb250YWluZXIgPSAmcmVuZGVyZXIoKS52aWV3KCk7CisgICAgICAg
ICAgICAgICAgICAgIHJlbmRlcmVyKCkucmVwYWludFVzaW5nQ29udGFpbmVyKCpyZXBhaW50Q29u
dGFpbmVyLCBvbGRSZXBhaW50UmVjdCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChtX3JlcGFp
bnRSZWN0ICE9IG9sZFJlcGFpbnRSZWN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZW5k
ZXJlcigpLnJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBtX3JlcGFpbnRS
ZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyKCkucmVwYWludFVzaW5nQ29u
dGFpbmVyKCpyZXBhaW50Q29udGFpbmVyLCBtX3JlcGFpbnRSZWN0KTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpZFJlcGFpbnQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChzaG91bGRSZXBhaW50QWZ0ZXJMYXlvdXQoKSkgewpAQCAt
MjI5MCwxNCArMjI5MiwxNiBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUbyhpbnQgeCwgaW50
IHkpCiAjZW5kaWYKICAgICB9CiAKLSAgICBGcmFtZSYgZnJhbWUgPSByZW5kZXJlcigpLmZyYW1l
KCk7Ci0gICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9IHJlbmRl
cmVyKCkuY29udGFpbmVyRm9yUmVwYWludCgpOwogICAgIC8vIFRoZSBjYXJldCByZWN0IG5lZWRz
IHRvIGJlIGludmFsaWRhdGVkIGFmdGVyIHNjcm9sbGluZworICAgIEZyYW1lJiBmcmFtZSA9IHJl
bmRlcmVyKCkuZnJhbWUoKTsKICAgICBmcmFtZS5zZWxlY3Rpb24oKS5zZXRDYXJldFJlY3ROZWVk
c1VwZGF0ZSgpOwogCiAgICAgRmxvYXRRdWFkIHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQgPSBG
bG9hdFF1YWQobV9yZXBhaW50UmVjdCk7Ci0gICAgaWYgKHJlcGFpbnRDb250YWluZXIpCi0gICAg
ICAgIHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRv
QWJzb2x1dGVRdWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOworICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSByZW5kZXJlcigpLmNvbnRhaW5lckZvclJl
cGFpbnQoKTsKKyAgICBpZiAoIXJlcGFpbnRDb250YWluZXIpCisgICAgICAgIHJlcGFpbnRDb250
YWluZXIgPSAmdmlldzsKKworICAgIHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQgPSByZXBhaW50
Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQp
OwogICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29v
bkluUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50KTsKIAogICAgIGJvb2wgcmVxdWlyZXNS
ZXBhaW50ID0gdHJ1ZTsKQEAgLTIzMDYsNyArMjMxMCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNj
cm9sbFRvKGludCB4LCBpbnQgeSkKIAogICAgIC8vIEp1c3Qgc2NoZWR1bGUgYSBmdWxsIHJlcGFp
bnQgb2Ygb3VyIG9iamVjdC4KICAgICBpZiAocmVxdWlyZXNSZXBhaW50KQotICAgICAgICByZW5k
ZXJlcigpLnJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBtX3JlcGFpbnRS
ZWN0KTsKKyAgICAgICAgcmVuZGVyZXIoKS5yZXBhaW50VXNpbmdDb250YWluZXIoKnJlcGFpbnRD
b250YWluZXIsIG1fcmVwYWludFJlY3QpOwogCiAgICAgLy8gU2NoZWR1bGUgdGhlIHNjcm9sbCBh
bmQgc2Nyb2xsLXJlbGF0ZWQgRE9NIGV2ZW50cy4KICAgICBpZiAoRWxlbWVudCogZWxlbWVudCA9
IHJlbmRlcmVyKCkuZWxlbWVudCgpKSB7CkBAIC02MTQxLDkgKzYxNDUsOSBAQCB2b2lkIFJlbmRl
ckxheWVyOjpzZXRCYWNraW5nTmVlZHNSZXBhaW50SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHIs
IEdyYXBoaWNzTGF5ZQogfQogCiAvLyBTaW5jZSB3ZSdyZSBvbmx5IHBhaW50aW5nIG5vbi1jb21w
b3NpdGVkIGxheWVycywgd2Uga25vdyB0aGF0IHRoZXkgYWxsIHNoYXJlIHRoZSBzYW1lIHJlcGFp
bnRDb250YWluZXIuCi12b2lkIFJlbmRlckxheWVyOjpyZXBhaW50SW5jbHVkaW5nTm9uQ29tcG9z
aXRpbmdEZXNjZW5kYW50cyhSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
KQordm9pZCBSZW5kZXJMYXllcjo6cmVwYWludEluY2x1ZGluZ05vbkNvbXBvc2l0aW5nRGVzY2Vu
ZGFudHMoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVwYWludENvbnRhaW5lcikKIHsKLSAgICBy
ZW5kZXJlcigpLnJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCByZW5kZXJl
cigpLmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIpKTsKKyAg
ICByZW5kZXJlcigpLnJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCByZW5k
ZXJlcigpLmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KCZyZXBhaW50Q29udGFpbmVyKSk7
CiAKICAgICBmb3IgKFJlbmRlckxheWVyKiBjdXJyID0gZmlyc3RDaGlsZCgpOyBjdXJyOyBjdXJy
ID0gY3Vyci0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAoIWN1cnItPmlzQ29tcG9zaXRl
ZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAyNjY1NTlhZmZi
OGNmYTA4OGMwZWFjMDM4ZmQ2ZWI3YzlmOGIxZjQ3Li44MGZhYThjNmQ0ZGFiN2E3N2Q2MGQ3NWY3
YzI3ZDI2ZjRiNmVmOGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApA
QCAtMzY1LDcgKzM2NSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSByZWN0IGlzIGluIHRoZSBj
b29yZGluYXRlIHNwYWNlIG9mIHRoZSBsYXllcidzIHJlbmRlciBvYmplY3QuCiAgICAgdm9pZCBz
ZXRCYWNraW5nTmVlZHNSZXBhaW50SW5SZWN0KGNvbnN0IExheW91dFJlY3QmLCBHcmFwaGljc0xh
eWVyOjpTaG91bGRDbGlwVG9MYXllciA9IEdyYXBoaWNzTGF5ZXI6OkNsaXBUb0xheWVyKTsKLSAg
ICB2b2lkIHJlcGFpbnRJbmNsdWRpbmdOb25Db21wb3NpdGluZ0Rlc2NlbmRhbnRzKFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpOworICAgIHZvaWQgcmVwYWludEluY2x1
ZGluZ05vbkNvbXBvc2l0aW5nRGVzY2VuZGFudHMoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVw
YWludENvbnRhaW5lcik7CiAKICAgICB2b2lkIHN0eWxlQ2hhbmdlZChTdHlsZURpZmZlcmVuY2Us
IGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggYWUxNzUxYjFkNGZlNzI0
MTgwZjZhOWM3ODZiOTM4NTAzNjViMzY4My4uMzk3NjMwODU3MWQ4OTBhZTczYTA1MTM3YzZiMDAz
NDMxNjBjNGVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAKQEAgLTk2NCw3ICs5NjQsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6cmVwYWludE9uQ29tcG9zaXRpbmdDaGFuZ2UoUmVuZGVyTGF5ZXImIGxheWVyKQog
ICAgIGlmICghcmVwYWludENvbnRhaW5lcikKICAgICAgICAgcmVwYWludENvbnRhaW5lciA9ICZt
X3JlbmRlclZpZXc7CiAKLSAgICBsYXllci5yZXBhaW50SW5jbHVkaW5nTm9uQ29tcG9zaXRpbmdE
ZXNjZW5kYW50cyhyZXBhaW50Q29udGFpbmVyKTsKKyAgICBsYXllci5yZXBhaW50SW5jbHVkaW5n
Tm9uQ29tcG9zaXRpbmdEZXNjZW5kYW50cygqcmVwYWludENvbnRhaW5lcik7CiAgICAgaWYgKHJl
cGFpbnRDb250YWluZXIgPT0gJm1fcmVuZGVyVmlldykgewogICAgICAgICAvLyBUaGUgY29udGVu
dHMgb2YgdGhpcyBsYXllciBtYXkgYmUgbW92aW5nIGJldHdlZW4gdGhlIHdpbmRvdwogICAgICAg
ICAvLyBhbmQgYSBHcmFwaGljc0xheWVyLCBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGUgd2lu
ZG93IHN5c3RlbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRl
eCAwYjUzZTUyZDEzMzg1YTY3ZWFiYjZmODNlZjU4MTU3YmUyNjg5MjgyLi5hZWIyNWI5Y2M3ZDEy
YWI0NDBmOWYyZGRhYTM1YTg3MmRiNzViNjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcApAQCAtMTI4MiwyOCArMTI4MiwyMyBAQCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogICAgIHJl
dHVybiByZXBhaW50Q29udGFpbmVyOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFVz
aW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIGNvbnN0IExheW91dFJlY3QmIHIsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIpIGNvbnN0Cit2
b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFVzaW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QmIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IExheW91dFJlY3QmIHIsIGJvb2wg
c2hvdWxkQ2xpcFRvTGF5ZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFyZXBhaW50Q29udGFpbmVyKSB7
Ci0gICAgICAgIHZpZXcoKS5yZXBhaW50Vmlld1JlY3RhbmdsZShyKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGlmIChyZXBhaW50Q29udGFpbmVyLT5pc1JlbmRlckZsb3dUaHJlYWQo
KSkgewotICAgICAgICB0b1JlbmRlckZsb3dUaHJlYWQocmVwYWludENvbnRhaW5lciktPnJlcGFp
bnRSZWN0YW5nbGVJblJlZ2lvbnMocik7CisgICAgaWYgKHJlcGFpbnRDb250YWluZXIuaXNSZW5k
ZXJGbG93VGhyZWFkKCkpIHsKKyAgICAgICAgdG9SZW5kZXJGbG93VGhyZWFkKHJlcGFpbnRDb250
YWluZXIpLnJlcGFpbnRSZWN0YW5nbGVJblJlZ2lvbnMocik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCi0gICAgaWYgKHJlcGFpbnRDb250YWluZXIt
Pmhhc0ZpbHRlcigpICYmIHJlcGFpbnRDb250YWluZXItPmxheWVyKCkgJiYgcmVwYWludENvbnRh
aW5lci0+bGF5ZXIoKS0+cmVxdWlyZXNGdWxsTGF5ZXJJbWFnZUZvckZpbHRlcnMoKSkgewotICAg
ICAgICByZXBhaW50Q29udGFpbmVyLT5sYXllcigpLT5zZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBh
aW50aW5nSW5SZWN0KHIpOworICAgIGlmIChyZXBhaW50Q29udGFpbmVyLmhhc0ZpbHRlcigpICYm
IHJlcGFpbnRDb250YWluZXIubGF5ZXIoKSAmJiByZXBhaW50Q29udGFpbmVyLmxheWVyKCktPnJl
cXVpcmVzRnVsbExheWVySW1hZ2VGb3JGaWx0ZXJzKCkpIHsKKyAgICAgICAgcmVwYWludENvbnRh
aW5lci5sYXllcigpLT5zZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KHIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCiAKICAgICBSZW5kZXJWaWV3JiB2ID0gdmll
dygpOwotICAgIGlmIChyZXBhaW50Q29udGFpbmVyLT5pc1JlbmRlclZpZXcoKSkgewotICAgICAg
ICBBU1NFUlQocmVwYWludENvbnRhaW5lciA9PSAmdik7CisgICAgaWYgKHJlcGFpbnRDb250YWlu
ZXIuaXNSZW5kZXJWaWV3KCkpIHsKKyAgICAgICAgQVNTRVJUKCZyZXBhaW50Q29udGFpbmVyID09
ICZ2KTsKICAgICAgICAgYm9vbCB2aWV3SGFzQ29tcG9zaXRlZExheWVyID0gdi5oYXNMYXllcigp
ICYmIHYubGF5ZXIoKS0+aXNDb21wb3NpdGVkKCk7CiAgICAgICAgIGlmICghdmlld0hhc0NvbXBv
c2l0ZWRMYXllciB8fCB2LmxheWVyKCktPmJhY2tpbmcoKS0+cGFpbnRzSW50b1dpbmRvdygpKSB7
CiAgICAgICAgICAgICB2LnJlcGFpbnRWaWV3UmVjdGFuZ2xlKHZpZXdIYXNDb21wb3NpdGVkTGF5
ZXIgJiYgdi5sYXllcigpLT50cmFuc2Zvcm0oKSA/IExheW91dFJlY3Qodi5sYXllcigpLT50cmFu
c2Zvcm0oKS0+bWFwUmVjdChwaXhlbFNuYXBwZWRGb3JQYWludGluZyhyLCBkb2N1bWVudCgpLmRl
dmljZVNjYWxlRmFjdG9yKCkpKSkgOiByKTsKQEAgLTEzMTIsOCArMTMwNyw4IEBAIHZvaWQgUmVu
ZGVyT2JqZWN0OjpyZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvCiAgICAgfQogICAgIAogICAgIGlmICh2LnVzZXNDb21wb3NpdGluZygp
KSB7Ci0gICAgICAgIEFTU0VSVChyZXBhaW50Q29udGFpbmVyLT5oYXNMYXllcigpICYmIHJlcGFp
bnRDb250YWluZXItPmxheWVyKCktPmlzQ29tcG9zaXRlZCgpKTsKLSAgICAgICAgcmVwYWludENv
bnRhaW5lci0+bGF5ZXIoKS0+c2V0QmFja2luZ05lZWRzUmVwYWludEluUmVjdChyLCBzaG91bGRD
bGlwVG9MYXllciA/IEdyYXBoaWNzTGF5ZXI6OkNsaXBUb0xheWVyIDogR3JhcGhpY3NMYXllcjo6
RG9Ob3RDbGlwVG9MYXllcik7CisgICAgICAgIEFTU0VSVChyZXBhaW50Q29udGFpbmVyLmhhc0xh
eWVyKCkgJiYgcmVwYWludENvbnRhaW5lci5sYXllcigpLT5pc0NvbXBvc2l0ZWQoKSk7CisgICAg
ICAgIHJlcGFpbnRDb250YWluZXIubGF5ZXIoKS0+c2V0QmFja2luZ05lZWRzUmVwYWludEluUmVj
dChyLCBzaG91bGRDbGlwVG9MYXllciA/IEdyYXBoaWNzTGF5ZXI6OkNsaXBUb0xheWVyIDogR3Jh
cGhpY3NMYXllcjo6RG9Ob3RDbGlwVG9MYXllcik7CiAgICAgfQogfQogCkBAIC0xMzI4LDcgKzEz
MjMsOSBAQCB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludCgpIGNvbnN0CiAgICAgICAgIHJldHVy
bjsgLy8gRG9uJ3QgcmVwYWludCBpZiB3ZSdyZSBwcmludGluZy4KIAogICAgIFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBjb250YWluZXJGb3JSZXBhaW50KCk7Ci0g
ICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIgPyByZXBhaW50Q29udGFp
bmVyIDogdmlldywgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5l
cikpOworICAgIGlmICghcmVwYWludENvbnRhaW5lcikKKyAgICAgICAgcmVwYWludENvbnRhaW5l
ciA9IHZpZXc7CisgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKCpyZXBhaW50Q29udGFpbmVyLCBj
bGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyKSk7CiB9CiAKIHZv
aWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHIsIGJv
b2wgc2hvdWxkQ2xpcFRvTGF5ZXIpIGNvbnN0CkBAIC0xMzQ5LDcgKzEzNDYsOSBAQCB2b2lkIFJl
bmRlck9iamVjdDo6cmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByLCBib29sIHNo
b3VsZENsaXBUb0xheWVyKQogCiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciA9IGNvbnRhaW5lckZvclJlcGFpbnQoKTsKICAgICBjb21wdXRlUmVjdEZvclJlcGFp
bnQocmVwYWludENvbnRhaW5lciwgZGlydHlSZWN0KTsKLSAgICByZXBhaW50VXNpbmdDb250YWlu
ZXIocmVwYWludENvbnRhaW5lciA/IHJlcGFpbnRDb250YWluZXIgOiB2aWV3LCBkaXJ0eVJlY3Qs
IHNob3VsZENsaXBUb0xheWVyKTsKKyAgICBpZiAoIXJlcGFpbnRDb250YWluZXIpCisgICAgICAg
IHJlcGFpbnRDb250YWluZXIgPSB2aWV3OworICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcigqcmVw
YWludENvbnRhaW5lciwgZGlydHlSZWN0LCBzaG91bGRDbGlwVG9MYXllcik7CiB9CiAKIHZvaWQg
UmVuZGVyT2JqZWN0OjpyZXBhaW50U2xvd1JlcGFpbnRPYmplY3QoKSBjb25zdApAQCAtMTM3OCw3
ICsxMzc3LDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRTbG93UmVwYWludE9iamVjdCgp
IGNvbnN0CiAgICAgfSBlbHNlCiAgICAgICAgIHJlcGFpbnRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50
UmVjdChjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyKSk7CiAK
LSAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3Qs
IHNob3VsZENsaXBUb0xheWVyKTsKKyAgICByZXBhaW50VXNpbmdDb250YWluZXIoKnJlcGFpbnRD
b250YWluZXIsIHJlcGFpbnRSZWN0LCBzaG91bGRDbGlwVG9MYXllcik7CiB9CiAKIEludFJlY3Qg
UmVuZGVyT2JqZWN0OjpwaXhlbFNuYXBwZWRBYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDBiYzBiNTZj
NzdlNzNiNjBkYTkxN2Y4YmRiZmIwY2NhNjEzNDhmOWMuLmVmNzJiNWY1OWNhYjI3YmJlOGQxZDA0
NjgwMzdjYzAwMjMxYTljYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmgKQEAgLTczMiw4ICs3MzIsOCBAQCBwdWJsaWM6CiAgICAgLy8gbWV0aG9kcy4KICAgICBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiBjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3Q7CiAgICAgLy8g
QWN0dWFsbHkgZG8gdGhlIHJlcGFpbnQgb2YgcmVjdCByIGZvciB0aGlzIG9iamVjdCB3aGljaCBo
YXMgYmVlbiBjb21wdXRlZCBpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZQotICAgIC8vIG9mIHJlcGFp
bnRDb250YWluZXIuIElmIHJlcGFpbnRDb250YWluZXIgaXMgMCwgcmVwYWludCB2aWEgdGhlIHZp
ZXcuCi0gICAgdm9pZCByZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgc2hvdWxk
Q2xpcFRvTGF5ZXIgPSB0cnVlKSBjb25zdDsKKyAgICAvLyBvZiByZXBhaW50Q29udGFpbmVyLgor
ICAgIHZvaWQgcmVwYWludFVzaW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QmIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IExheW91dFJlY3QmLCBib29sIHNob3VsZENsaXBU
b0xheWVyID0gdHJ1ZSkgY29uc3Q7CiAgICAgCiAgICAgLy8gUmVwYWludCB0aGUgZW50aXJlIG9i
amVjdC4gIENhbGxlZCB3aGVuLCBlLmcuLCB0aGUgY29sb3Igb2YgYSBib3JkZXIgY2hhbmdlcywg
b3Igd2hlbiBhIGJvcmRlcgogICAgIC8vIHN0eWxlIGNoYW5nZXMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5jcHAKaW5kZXggM2IxMTk0YTM0Njdl
ZmVjOTJjYTRkNDVjZGNmYTlkYjUxMGI1ZTA0OC4uNjQ1YTllZDU3MzZiY2RmMTE3NTA5MDAyN2U3
MzMzOWVhMzU3YWJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNlbGVjdGlvbkluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
ZWxlY3Rpb25JbmZvLmNwcApAQCAtMjcsMTkgKzI3LDIzIEBACiAjaW5jbHVkZSAiUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oIgogCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgorI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBSZW5kZXJTZWxlY3Rpb25JbmZvQmFz
ZTo6UmVuZGVyU2VsZWN0aW9uSW5mb0Jhc2UoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICA6
IG1fcmVuZGVyZXIocmVuZGVyZXIpCi0gICAgLCBtX3JlcGFpbnRDb250YWluZXIocmVuZGVyZXIu
Y29udGFpbmVyRm9yUmVwYWludCgpKQogICAgICwgbV9zdGF0ZShyZW5kZXJlci5zZWxlY3Rpb25T
dGF0ZSgpKQogeworICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIg
PSByZW5kZXJlci5jb250YWluZXJGb3JSZXBhaW50KCk7CisgICAgaWYgKCFyZXBhaW50Q29udGFp
bmVyKQorICAgICAgICByZXBhaW50Q29udGFpbmVyID0gJnJlbmRlcmVyLnZpZXcoKTsKKyAgICBt
X3JlcGFpbnRDb250YWluZXIgPSByZXBhaW50Q29udGFpbmVyOwogfQogCiB2b2lkIFJlbmRlclNl
bGVjdGlvbkluZm9CYXNlOjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFp
bnRSZWN0KQogewotICAgIG1fcmVuZGVyZXIucmVwYWludFVzaW5nQ29udGFpbmVyKG1fcmVwYWlu
dENvbnRhaW5lciwgZW5jbG9zaW5nSW50UmVjdChyZXBhaW50UmVjdCkpOworICAgIG1fcmVuZGVy
ZXIucmVwYWludFVzaW5nQ29udGFpbmVyKCptX3JlcGFpbnRDb250YWluZXIsIGVuY2xvc2luZ0lu
dFJlY3QocmVwYWludFJlY3QpKTsKIH0KIAogUmVuZGVyU2VsZWN0aW9uSW5mbzo6UmVuZGVyU2Vs
ZWN0aW9uSW5mbyhSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCBib29sIGNsaXBUb1Zpc2libGVDb250
ZW50KQo=
</data>
<flag name="review"
          id="261026"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="261379"
          type_id="3"
          status="-"
          setter="zalan"
    />
          </attachment>
      

    </bug>

</bugzilla>