<?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>165454</bug_id>
          
          <creation_ts>2016-12-05 20:11:35 -0800</creation_ts>
          <short_desc>Move RenderElement::rendererForRootBackground to RenderView.</short_desc>
          <delta_ts>2016-12-06 17:16:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit 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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1256693</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2016-12-05 20:11:35 -0800</bug_when>
    <thetext>And remove the limitation that this function can only be called on isDocumentElementRenderer() objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256701</commentid>
    <comment_count>1</comment_count>
      <attachid>296255</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-12-05 20:27:15 -0800</bug_when>
    <thetext>Created attachment 296255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1256718</commentid>
    <comment_count>2</comment_count>
      <attachid>296261</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-12-05 21:07:29 -0800</bug_when>
    <thetext>Created attachment 296261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257006</commentid>
    <comment_count>3</comment_count>
      <attachid>296261</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-12-06 15:15:10 -0800</bug_when>
    <thetext>Comment on attachment 296261
Patch

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

&gt; Source/WebCore/rendering/RenderView.cpp:523
&gt; +    if (!is&lt;HTMLHtmlElement&gt;(documentRenderer.element()))
&gt; +        return &amp;documentRenderer;
&gt; +
&gt; +    if (documentRenderer.hasBackground())
&gt; +        return &amp;documentRenderer;

Swap these around and maybe add a comment saying that this is an HTML-specific behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257017</commentid>
    <comment_count>4</comment_count>
      <attachid>296334</attachid>
    <who name="alan">zalan</who>
    <bug_when>2016-12-06 15:27:46 -0800</bug_when>
    <thetext>Created attachment 296334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257102</commentid>
    <comment_count>5</comment_count>
      <attachid>296334</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-06 17:16:09 -0800</bug_when>
    <thetext>Comment on attachment 296334
Patch

Clearing flags on attachment: 296334

Committed r209438: &lt;http://trac.webkit.org/changeset/209438&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1257103</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-06 17:16:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296255</attachid>
            <date>2016-12-05 20:27:15 -0800</date>
            <delta_ts>2016-12-05 20:57:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165454-20161205202639.patch</filename>
            <type>text/plain</type>
            <size>12509</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg3OTFlZTkzZGRmZjU5
MzYwZTJkMTY4MDc3MzI5N2E3MTQ5M2E1Zi4uYTJhNGQ3Yjk5ZWFjOGIwY2E0Y2U5MmQ4Njc5M2Jh
MDIwYWY0NTIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE2LTEyLTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBSZW5kZXJFbGVtZW50
OjpyZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kIHRvIFJlbmRlclZpZXcuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU0NTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgUmVuZGVyRWxlbWVu
dDo6cmVuZGVyZXJGb3JSb290QmFja2dyb3VuZCBjYW4gb25seSBiZSBjYWxsZWQgb24gZG9jdW1l
bnQgZWxlbWVudCdzIHJlbmRlcmVyLgorICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhpcyBs
aW1pdGF0aW9uIGFuZCBtb3ZlcyB0aGUgZnVuY3Rpb25hbGl0eSBmcm9tIFJlbmRlckVsZW1lbnQg
dG8gUmVuZGVyVmlldy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKwor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6Y2FsY3VsYXRlRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50Um9vdEJv
eEZpbGxMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnJlbmRlcmVyQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3Ojpy
ZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlcmVyT2Jz
Y3VyZXNCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnBhaW50Qm94
RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cm9vdEJhY2tncm91
bmRJc0VudGlyZWx5Rml4ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisK
IDIwMTYtMTItMDUgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAg
ICAgICAgIEFkZCBfX1NURENfRk9STUFUX01BQ1JPUyBiZWZvcmUgaW50dHlwZXMuaCBpcyBpbmNs
dWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDgwNjFiNzUxNGQ5NjZkNmM3MjUy
ZmQwMmVjM2NkZDEwODYxMjEyZjkuLjAxNmJiYmI0NjZkNDc0ZmZhMWYzYTJhYjIxZGQ4ZGM3YTMz
ODZjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTMxNzUsMjAgKzMxNzUsMjAg
QEAgRnJhbWVWaWV3OjpFeHRlbmRlZEJhY2tncm91bmRNb2RlIEZyYW1lVmlldzo6Y2FsY3VsYXRl
RXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZSgpIGMKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICBy
ZXR1cm4gRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZU5vbmU7CiAKLSAgICBhdXRvKiBkb2N1bWVudEVs
ZW1lbnQgPSBkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCk7Ci0gICAgYXV0byogZG9jdW1lbnRF
bGVtZW50UmVuZGVyZXIgPSBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQtPnJlbmRl
cmVyKCkgOiBudWxscHRyOwotICAgIGlmICghZG9jdW1lbnRFbGVtZW50UmVuZGVyZXIpCisgICAg
aWYgKCFyZW5kZXJWaWV3KCkpCisgICAgICAgIHJldHVybiBFeHRlbmRlZEJhY2tncm91bmRNb2Rl
Tm9uZTsKKyAgICAKKyAgICBhdXRvKiByb290QmFja2dyb3VuZFJlbmRlcmVyID0gcmVuZGVyVmll
dygpLT5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCk7CisgICAgaWYgKCFyb290QmFja2dyb3Vu
ZFJlbmRlcmVyKQogICAgICAgICByZXR1cm4gRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZU5vbmU7CiAK
LSAgICBhdXRvJiByZW5kZXJlciA9IGRvY3VtZW50RWxlbWVudFJlbmRlcmVyLT5yZW5kZXJlckZv
clJvb3RCYWNrZ3JvdW5kKCk7Ci0gICAgaWYgKCFyZW5kZXJlci5zdHlsZSgpLmhhc0JhY2tncm91
bmRJbWFnZSgpKQorICAgIGlmICghcm9vdEJhY2tncm91bmRSZW5kZXJlci0+c3R5bGUoKS5oYXNC
YWNrZ3JvdW5kSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuIEV4dGVuZGVkQmFja2dyb3VuZE1vZGVO
b25lOwogCiAgICAgRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZSBtb2RlID0gRXh0ZW5kZWRCYWNrZ3Jv
dW5kTW9kZU5vbmU7Ci0KLSAgICBpZiAocmVuZGVyZXIuc3R5bGUoKS5iYWNrZ3JvdW5kUmVwZWF0
WCgpID09IFJlcGVhdEZpbGwpCisgICAgaWYgKHJvb3RCYWNrZ3JvdW5kUmVuZGVyZXItPnN0eWxl
KCkuYmFja2dyb3VuZFJlcGVhdFgoKSA9PSBSZXBlYXRGaWxsKQogICAgICAgICBtb2RlIHw9IEV4
dGVuZGVkQmFja2dyb3VuZE1vZGVIb3Jpem9udGFsOwotICAgIGlmIChyZW5kZXJlci5zdHlsZSgp
LmJhY2tncm91bmRSZXBlYXRZKCkgPT0gUmVwZWF0RmlsbCkKKyAgICBpZiAocm9vdEJhY2tncm91
bmRSZW5kZXJlci0+c3R5bGUoKS5iYWNrZ3JvdW5kUmVwZWF0WSgpID09IFJlcGVhdEZpbGwpCiAg
ICAgICAgIG1vZGUgfD0gRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZVZlcnRpY2FsOwogCiAgICAgcmV0
dXJuIG1vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDBhYjFh
MGQwMzA3YmJjNjAxYWI0NDdjZTAyOWFjNDg5OGM4NWYwYWQuLjI4NmViZjc0MDE4ZTExYTEzM2Zk
YmVlM2MxNTNmNjEwNzYwMmFjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCkBAIC0xMjY0LDE1ICsxMjY0LDE4IEBAIGJvb2wgUmVuZGVyQm94Ojpub2RlQXRQb2ludChj
b25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0CiAKIHZv
aWQgUmVuZGVyQm94OjpwYWludFJvb3RCb3hGaWxsTGF5ZXJzKGNvbnN0IFBhaW50SW5mbyYgcGFp
bnRJbmZvKQogeworICAgIEFTU0VSVChpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkpOwogICAg
IGlmIChwYWludEluZm8uc2tpcFJvb3RCYWNrZ3JvdW5kKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGF1dG8mIHJvb3RCYWNrZ3JvdW5kUmVuZGVyZXIgPSByZW5kZXJlckZvclJvb3RCYWNrZ3Jv
dW5kKCk7Ci0gICAgCi0gICAgY29uc3QgRmlsbExheWVyKiBiZ0xheWVyID0gcm9vdEJhY2tncm91
bmRSZW5kZXJlci5zdHlsZSgpLmJhY2tncm91bmRMYXllcnMoKTsKLSAgICBDb2xvciBiZ0NvbG9y
ID0gcm9vdEJhY2tncm91bmRSZW5kZXJlci5zdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihD
U1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7CisgICAgYXV0byogcm9vdEJhY2tncm91bmRSZW5k
ZXJlciA9IHZpZXcoKS5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCk7CisgICAgaWYgKCFyb290
QmFja2dyb3VuZFJlbmRlcmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBGaWxsTGF5
ZXIqIGJnTGF5ZXIgPSByb290QmFja2dyb3VuZFJlbmRlcmVyLT5zdHlsZSgpLmJhY2tncm91bmRM
YXllcnMoKTsKKyAgICBDb2xvciBiZ0NvbG9yID0gcm9vdEJhY2tncm91bmRSZW5kZXJlci0+c3R5
bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwog
Ci0gICAgcGFpbnRGaWxsTGF5ZXJzKHBhaW50SW5mbywgYmdDb2xvciwgYmdMYXllciwgdmlldygp
LmJhY2tncm91bmRSZWN0KCksIEJhY2tncm91bmRCbGVlZE5vbmUsIENvbXBvc2l0ZVNvdXJjZU92
ZXIsICZyb290QmFja2dyb3VuZFJlbmRlcmVyKTsKKyAgICBwYWludEZpbGxMYXllcnMocGFpbnRJ
bmZvLCBiZ0NvbG9yLCBiZ0xheWVyLCB2aWV3KCkuYmFja2dyb3VuZFJlY3QoKSwgQmFja2dyb3Vu
ZEJsZWVkTm9uZSwgQ29tcG9zaXRlU291cmNlT3Zlciwgcm9vdEJhY2tncm91bmRSZW5kZXJlcik7
CiB9CiAKIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBSZW5kZXJCb3g6OmRldGVybWluZUJhY2tn
cm91bmRCbGVlZEF2b2lkYW5jZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggOTE0NDgxMDY1Yjgz
Njk4MmEzNWNhMzhjNWNiMWRmNDA3YTNkOGE5My4uMDk5ZTM5NjIwNjhjNDZjOWMwOGFkZTNlZjQ4
MjVkMDFlMjlmNTZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcApAQCAtMTE2NywyMiArMTE2Nyw2IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0TmVlZHNT
aW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCgpCiAgICAgICAgIHNldExheWVyTmVlZHNGdWxsUmVw
YWludCgpOwogfQogCi1SZW5kZXJFbGVtZW50JiBSZW5kZXJFbGVtZW50OjpyZW5kZXJlckZvclJv
b3RCYWNrZ3JvdW5kKCkKLXsKLSAgICBBU1NFUlQoaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigp
KTsKLSAgICBpZiAoIWhhc0JhY2tncm91bmQoKSAmJiBpczxIVE1MSHRtbEVsZW1lbnQ+KGVsZW1l
bnQoKSkpIHsKLSAgICAgICAgLy8gTG9jYXRlIHRoZSA8Ym9keT4gZWxlbWVudCB1c2luZyB0aGUg
RE9NLiBUaGlzIGlzIGVhc2llciB0aGFuIHRyeWluZwotICAgICAgICAvLyB0byBjcmF3bCBhcm91
bmQgYSByZW5kZXIgdHJlZSB3aXRoIHBvdGVudGlhbCA6YmVmb3JlLzphZnRlciBjb250ZW50IGFu
ZAotICAgICAgICAvLyBhbm9ueW1vdXMgYmxvY2tzIGNyZWF0ZWQgYnkgaW5saW5lIDxib2R5PiB0
YWdzIGV0Yy4gV2UgY2FuIGxvY2F0ZSB0aGUgPGJvZHk+Ci0gICAgICAgIC8vIHJlbmRlciBvYmpl
Y3QgdmVyeSBlYXNpbHkgdmlhIHRoZSBET00uCi0gICAgICAgIGlmIChhdXRvKiBib2R5ID0gZG9j
dW1lbnQoKS5ib2R5KCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGJvZHkt
PnJlbmRlcmVyKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuICpyZW5kZXJlcjsKLSAgICAgICAg
fQotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KIFJlbmRlckVsZW1lbnQqIFJlbmRlckVs
ZW1lbnQ6OmhvdmVyQW5jZXN0b3IoKSBjb25zdAogewogICAgIC8vIFdoZW4gc2VhcmNoaW5nIGZv
ciB0aGUgaG92ZXIgYW5jZXN0b3IgYW5kIGVuY291bnRlcmluZyBhIG5hbWVkIGZsb3cgdGhyZWFk
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggZTFjNjkzYmRh
Njk4YzEyMzUzMTIyZWUzMWY0ZTNiZDE4NmU5MjQ2My4uN2NmZGE0M2Q5MDI0ZjgwN2RlYTUzNTk2
YWU3NGZmNGZkOTRiMGU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5oCkBAIC0xMjgsOSArMTI4LDYgQEAgcHVibGljOgogICAgIC8qIFRoaXMgZnVuY3Rpb24gcGVy
Zm9ybXMgYSBsYXlvdXQgb25seSBpZiBvbmUgaXMgbmVlZGVkLiAqLwogICAgIHZvaWQgbGF5b3V0
SWZOZWVkZWQoKSB7IGlmIChuZWVkc0xheW91dCgpKSBsYXlvdXQoKTsgfQogCi0gICAgLy8gUmV0
dXJuIHRoZSByZW5kZXJlciB3aG9zZSBiYWNrZ3JvdW5kIHN0eWxlIGlzIHVzZWQgdG8gcGFpbnQg
dGhlIHJvb3QgYmFja2dyb3VuZC4gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIHRoZSByZW5kZXJl
ciBmb3Igd2hpY2ggaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpIGlzIHRydWUuCi0gICAgUmVu
ZGVyRWxlbWVudCYgcmVuZGVyZXJGb3JSb290QmFja2dyb3VuZCgpOwotCiAgICAgLy8gVXBkYXRl
cyBvbmx5IHRoZSBsb2NhbCBzdHlsZSBwdHIgb2YgdGhlIG9iamVjdC4gRG9lcyBub3QgdXBkYXRl
IHRoZSBzdGF0ZSBvZiB0aGUgb2JqZWN0LAogICAgIC8vIGFuZCBzbyBvbmx5IHNob3VsZCBiZSBj
YWxsZWQgd2hlbiB0aGUgc3R5bGUgaXMga25vd24gbm90IHRvIGhhdmUgY2hhbmdlZCAob3IgZnJv
bSBzZXRTdHlsZSkuCiAgICAgdm9pZCBzZXRTdHlsZUludGVybmFsKFJlbmRlclN0eWxlJiYgc3R5
bGUpIHsgbV9zdHlsZSA9IFdURk1vdmUoc3R5bGUpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDYyNmFiNmM0MjhlMDJhM2YwY2Nk
YjFiM2FhZDFmOTQwNDg4ZjQ4MzcuLjAwMjhlNjg1YmQ5YzQ1OWJjYmQzMjJkMjBhYWNhZjRkMTZl
Njk2ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCkBAIC0xNzkyLDggKzE3OTIsMTQgQEAgc3RhdGljIGlubGluZSBib29sIGhhc1BlcnNw
ZWN0aXZlT3JQcmVzZXJ2ZXMzRChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAKIENvbG9yIFJl
bmRlckxheWVyQmFja2luZzo6cmVuZGVyZXJCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewotICAg
IGNvbnN0IGF1dG8mIGJhY2tncm91bmRSZW5kZXJlciA9IHJlbmRlcmVyKCkuaXNEb2N1bWVudEVs
ZW1lbnRSZW5kZXJlcigpID8gcmVuZGVyZXIoKS5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCkg
OiByZW5kZXJlcigpOwotICAgIHJldHVybiBiYWNrZ3JvdW5kUmVuZGVyZXIuc3R5bGUoKS52aXNp
dGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOworICAgIFJlbmRl
ckVsZW1lbnQqIGJhY2tncm91bmRSZW5kZXJlciA9IG51bGxwdHI7CisgICAgaWYgKHJlbmRlcmVy
KCkuaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKQorICAgICAgICBiYWNrZ3JvdW5kUmVuZGVy
ZXIgPSByZW5kZXJlcigpLnZpZXcoKS5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCk7CisgICAg
CisgICAgaWYgKCFiYWNrZ3JvdW5kUmVuZGVyZXIpCisgICAgICAgIGJhY2tncm91bmRSZW5kZXJl
ciA9ICZyZW5kZXJlcigpOworCisgICAgcmV0dXJuIGJhY2tncm91bmRSZW5kZXJlci0+c3R5bGUo
KS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwogfQog
CiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRGlyZWN0bHlDb21wb3NpdGVkQmFja2dy
b3VuZENvbG9yKGJvb2wgaXNTaW1wbGVDb250YWluZXIsIGJvb2wmIGRpZFVwZGF0ZUNvbnRlbnRz
UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA5MWFjMDgw
MDIzODFmYTY1Y2YwYjI1YTU4YzkwMzFmOGFhNmQ4MTdkLi4wMmI4YjM1Njg0ZGI2YjIyMDdiMGQ3
NGViZDBiNWNlODAxODFhMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwCkBAIC0zMCw3ICszMCw5IEBACiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRl
ICJIVE1MQm9keUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSUZyYW1lRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbWFnZVF1YWxpdHlD
b250cm9sbGVyLmgiCkBAIC01MDYsMjQgKzUwOCw0NCBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAg
ICAgcGFpbnRPYmplY3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgYm9vbCByZW5kZXJlck9ic2N1cmVzQmFja2dyb3VuZChSZW5kZXJFbGVtZW50KiByb290T2Jq
ZWN0KQorUmVuZGVyRWxlbWVudCogUmVuZGVyVmlldzo6cmVuZGVyZXJGb3JSb290QmFja2dyb3Vu
ZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFyb290T2JqZWN0KQorICAgIGF1dG8qIGZpcnN0Q2hpbGQg
PSB0aGlzLT5maXJzdENoaWxkKCk7CisgICAgaWYgKCFmaXJzdENoaWxkKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBBU1NFUlQoaXM8UmVuZGVyRWxlbWVudD4oKmZpcnN0Q2hpbGQpKTsK
KyAgICBhdXRvJiBkb2N1bWVudFJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKmZp
cnN0Q2hpbGQpOworCisgICAgaWYgKCFpczxIVE1MSHRtbEVsZW1lbnQ+KGRvY3VtZW50UmVuZGVy
ZXIuZWxlbWVudCgpKSkKKyAgICAgICAgcmV0dXJuICZkb2N1bWVudFJlbmRlcmVyOworCisgICAg
aWYgKGRvY3VtZW50UmVuZGVyZXIuaGFzQmFja2dyb3VuZCgpKQorICAgICAgICByZXR1cm4gJmRv
Y3VtZW50UmVuZGVyZXI7CisKKyAgICBpZiAoYXV0byogYm9keSA9IGRvY3VtZW50KCkuYm9keSgp
KQorICAgICAgICByZXR1cm4gYm9keS0+cmVuZGVyZXIoKTsKKworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcmVu
ZGVyZXJPYnNjdXJlc0JhY2tncm91bmQoY29uc3QgUmVuZGVyRWxlbWVudCYgcm9vdEVsZW1lbnQp
Cit7CisgICAgYXV0byYgc3R5bGUgPSByb290RWxlbWVudC5zdHlsZSgpOworICAgIGlmIChzdHls
ZS52aXNpYmlsaXR5KCkgIT0gVklTSUJMRSB8fCBzdHlsZS5vcGFjaXR5KCkgIT0gMSB8fCBzdHls
ZS5oYXNUcmFuc2Zvcm0oKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSA9IHJvb3RPYmplY3QtPnN0eWxlKCk7Ci0gICAgaWYgKHN0eWxl
LnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFCi0gICAgICAgIHx8IHN0eWxlLm9wYWNpdHkoKSAhPSAx
Ci0gICAgICAgIHx8IHN0eWxlLmhhc1RyYW5zZm9ybSgpKQorCisgICAgaWYgKHN0eWxlLmhhc0Jv
cmRlclJhZGl1cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgaWYgKHJvb3RP
YmplY3QtPmlzQ29tcG9zaXRlZCgpKQorCisgICAgaWYgKHJvb3RFbGVtZW50LmlzQ29tcG9zaXRl
ZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAocm9vdE9iamVjdC0+cmVuZGVy
ZXJGb3JSb290QmFja2dyb3VuZCgpLnN0eWxlKCkuYmFja2dyb3VuZENsaXAoKSA9PSBUZXh0Rmls
bEJveCkKKyAgICBhdXRvKiByZW5kZXJlckZvckJhY2tncm91bmQgPSByb290RWxlbWVudC52aWV3
KCkucmVuZGVyZXJGb3JSb290QmFja2dyb3VuZCgpOworICAgIGlmICghcmVuZGVyZXJGb3JCYWNr
Z3JvdW5kKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoc3R5bGUuaGFzQm9yZGVy
UmFkaXVzKCkpCisgICAgaWYgKHJlbmRlcmVyRm9yQmFja2dyb3VuZC0+c3R5bGUoKS5iYWNrZ3Jv
dW5kQ2xpcCgpID09IFRleHRGaWxsQm94KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTU2Nyw3ICs1ODksNyBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50Qm94
RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKICAg
ICAgICAgLy8gVGhlIGRvY3VtZW50IGVsZW1lbnQncyByZW5kZXJlciBpcyBjdXJyZW50bHkgZm9y
Y2VkIHRvIGJlIGEgYmxvY2ssIGJ1dCBtYXkgbm90IGFsd2F5cyBiZS4KICAgICAgICAgUmVuZGVy
Qm94KiByb290Qm94ID0gaXM8UmVuZGVyQm94Pigqcm9vdFJlbmRlcmVyKSA/IGRvd25jYXN0PFJl
bmRlckJveD4ocm9vdFJlbmRlcmVyKSA6IG51bGxwdHI7CiAgICAgICAgIHJvb3RGaWxsc1ZpZXdw
b3J0ID0gcm9vdEJveCAmJiAhcm9vdEJveC0+eCgpICYmICFyb290Qm94LT55KCkgJiYgcm9vdEJv
eC0+d2lkdGgoKSA+PSB3aWR0aCgpICYmIHJvb3RCb3gtPmhlaWdodCgpID49IGhlaWdodCgpOwot
ICAgICAgICByb290T2JzY3VyZXNCYWNrZ3JvdW5kID0gcmVuZGVyZXJPYnNjdXJlc0JhY2tncm91
bmQocm9vdFJlbmRlcmVyKTsKKyAgICAgICAgcm9vdE9ic2N1cmVzQmFja2dyb3VuZCA9IHJlbmRl
cmVyT2JzY3VyZXNCYWNrZ3JvdW5kKCpyb290UmVuZGVyZXIpOwogICAgIH0KIAogICAgIGJvb2wg
YmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UgPSBmcmFtZVZpZXcoKS5mcmFtZSgpLnNl
dHRpbmdzKCkuYmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UoKTsKQEAgLTExNDQsMTEg
KzExNjYsOSBAQCBJbnRSZWN0IFJlbmRlclZpZXc6OnVuc2NhbGVkRG9jdW1lbnRSZWN0KCkgY29u
c3QKIAogYm9vbCBSZW5kZXJWaWV3Ojpyb290QmFja2dyb3VuZElzRW50aXJlbHlGaXhlZCgpIGNv
bnN0CiB7Ci0gICAgUmVuZGVyRWxlbWVudCogcm9vdE9iamVjdCA9IGRvY3VtZW50KCkuZG9jdW1l
bnRFbGVtZW50KCkgPyBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpLT5yZW5kZXJlcigpIDog
bnVsbHB0cjsKLSAgICBpZiAoIXJvb3RPYmplY3QpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHJldHVybiByb290T2JqZWN0LT5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCkuc3R5bGUo
KS5oYXNFbnRpcmVseUZpeGVkQmFja2dyb3VuZCgpOworICAgIGlmIChhdXRvKiByb290QmFja2dy
b3VuZFJlbmRlcmVyID0gcmVuZGVyZXJGb3JSb290QmFja2dyb3VuZCgpKQorICAgICAgICByZXR1
cm4gcm9vdEJhY2tncm91bmRSZW5kZXJlci0+c3R5bGUoKS5oYXNFbnRpcmVseUZpeGVkQmFja2dy
b3VuZCgpOworICAgIHJldHVybiBmYWxzZTsKIH0KICAgICAKIExheW91dFJlY3QgUmVuZGVyVmll
dzo6dW5leHRlbmRlZEJhY2tncm91bmRSZWN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oCmluZGV4IDRhMTNhYWM4ZWE1OGMzMzg1MDk2MWE3NzFiZmIxZGRhZTZhNzc2
OTIuLjhhYzAzZDcxYTI5OTVhZDg3N2Q2NDE1ZGQ4NjA5MDVhNjdlMzE1NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50
Jikgb3ZlcnJpZGU7CisgICAgLy8gUmV0dXJuIHRoZSByZW5kZXJlciB3aG9zZSBiYWNrZ3JvdW5k
IHN0eWxlIGlzIHVzZWQgdG8gcGFpbnQgdGhlIHJvb3QgYmFja2dyb3VuZC4KKyAgICBSZW5kZXJF
bGVtZW50KiByZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCkgY29uc3Q7CiAKICAgICBlbnVtIFNl
bGVjdGlvblJlcGFpbnRNb2RlIHsgUmVwYWludE5ld1hPUk9sZCwgUmVwYWludE5ld01pbnVzT2xk
LCBSZXBhaW50Tm90aGluZyB9OwogICAgIHZvaWQgc2V0U2VsZWN0aW9uKFJlbmRlck9iamVjdCog
c3RhcnQsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHN0YXJ0UG9zLCBSZW5kZXJPYmplY3QqIGVu
ZE9iamVjdCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gZW5kUG9zLCBTZWxlY3Rpb25SZXBhaW50
TW9kZSA9IFJlcGFpbnROZXdYT1JPbGQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296261</attachid>
            <date>2016-12-05 21:07:29 -0800</date>
            <delta_ts>2016-12-06 15:27:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165454-20161205210653.patch</filename>
            <type>text/plain</type>
            <size>12543</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg3OTFlZTkzZGRmZjU5
MzYwZTJkMTY4MDc3MzI5N2E3MTQ5M2E1Zi4uYTJhNGQ3Yjk5ZWFjOGIwY2E0Y2U5MmQ4Njc5M2Jh
MDIwYWY0NTIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE2LTEyLTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBSZW5kZXJFbGVtZW50
OjpyZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kIHRvIFJlbmRlclZpZXcuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU0NTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgUmVuZGVyRWxlbWVu
dDo6cmVuZGVyZXJGb3JSb290QmFja2dyb3VuZCBjYW4gb25seSBiZSBjYWxsZWQgb24gZG9jdW1l
bnQgZWxlbWVudCdzIHJlbmRlcmVyLgorICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhpcyBs
aW1pdGF0aW9uIGFuZCBtb3ZlcyB0aGUgZnVuY3Rpb25hbGl0eSBmcm9tIFJlbmRlckVsZW1lbnQg
dG8gUmVuZGVyVmlldy4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKwor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6Y2FsY3VsYXRlRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50Um9vdEJv
eEZpbGxMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQp
OiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckJhY2tpbmc6OnJlbmRlcmVyQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3Ojpy
ZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OnJlbmRlcmVyT2Jz
Y3VyZXNCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnBhaW50Qm94
RGVjb3JhdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cm9vdEJhY2tncm91
bmRJc0VudGlyZWx5Rml4ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisK
IDIwMTYtMTItMDUgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAg
ICAgICAgIEFkZCBfX1NURENfRk9STUFUX01BQ1JPUyBiZWZvcmUgaW50dHlwZXMuaCBpcyBpbmNs
dWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDgwNjFiNzUxNGQ5NjZkNmM3MjUy
ZmQwMmVjM2NkZDEwODYxMjEyZjkuLjAxNmJiYmI0NjZkNDc0ZmZhMWYzYTJhYjIxZGQ4ZGM3YTMz
ODZjY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTMxNzUsMjAgKzMxNzUsMjAg
QEAgRnJhbWVWaWV3OjpFeHRlbmRlZEJhY2tncm91bmRNb2RlIEZyYW1lVmlldzo6Y2FsY3VsYXRl
RXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZSgpIGMKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICBy
ZXR1cm4gRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZU5vbmU7CiAKLSAgICBhdXRvKiBkb2N1bWVudEVs
ZW1lbnQgPSBkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCk7Ci0gICAgYXV0byogZG9jdW1lbnRF
bGVtZW50UmVuZGVyZXIgPSBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQtPnJlbmRl
cmVyKCkgOiBudWxscHRyOwotICAgIGlmICghZG9jdW1lbnRFbGVtZW50UmVuZGVyZXIpCisgICAg
aWYgKCFyZW5kZXJWaWV3KCkpCisgICAgICAgIHJldHVybiBFeHRlbmRlZEJhY2tncm91bmRNb2Rl
Tm9uZTsKKyAgICAKKyAgICBhdXRvKiByb290QmFja2dyb3VuZFJlbmRlcmVyID0gcmVuZGVyVmll
dygpLT5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCk7CisgICAgaWYgKCFyb290QmFja2dyb3Vu
ZFJlbmRlcmVyKQogICAgICAgICByZXR1cm4gRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZU5vbmU7CiAK
LSAgICBhdXRvJiByZW5kZXJlciA9IGRvY3VtZW50RWxlbWVudFJlbmRlcmVyLT5yZW5kZXJlckZv
clJvb3RCYWNrZ3JvdW5kKCk7Ci0gICAgaWYgKCFyZW5kZXJlci5zdHlsZSgpLmhhc0JhY2tncm91
bmRJbWFnZSgpKQorICAgIGlmICghcm9vdEJhY2tncm91bmRSZW5kZXJlci0+c3R5bGUoKS5oYXNC
YWNrZ3JvdW5kSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuIEV4dGVuZGVkQmFja2dyb3VuZE1vZGVO
b25lOwogCiAgICAgRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZSBtb2RlID0gRXh0ZW5kZWRCYWNrZ3Jv
dW5kTW9kZU5vbmU7Ci0KLSAgICBpZiAocmVuZGVyZXIuc3R5bGUoKS5iYWNrZ3JvdW5kUmVwZWF0
WCgpID09IFJlcGVhdEZpbGwpCisgICAgaWYgKHJvb3RCYWNrZ3JvdW5kUmVuZGVyZXItPnN0eWxl
KCkuYmFja2dyb3VuZFJlcGVhdFgoKSA9PSBSZXBlYXRGaWxsKQogICAgICAgICBtb2RlIHw9IEV4
dGVuZGVkQmFja2dyb3VuZE1vZGVIb3Jpem9udGFsOwotICAgIGlmIChyZW5kZXJlci5zdHlsZSgp
LmJhY2tncm91bmRSZXBlYXRZKCkgPT0gUmVwZWF0RmlsbCkKKyAgICBpZiAocm9vdEJhY2tncm91
bmRSZW5kZXJlci0+c3R5bGUoKS5iYWNrZ3JvdW5kUmVwZWF0WSgpID09IFJlcGVhdEZpbGwpCiAg
ICAgICAgIG1vZGUgfD0gRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZVZlcnRpY2FsOwogCiAgICAgcmV0
dXJuIG1vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDBhYjFh
MGQwMzA3YmJjNjAxYWI0NDdjZTAyOWFjNDg5OGM4NWYwYWQuLjI4NmViZjc0MDE4ZTExYTEzM2Zk
YmVlM2MxNTNmNjEwNzYwMmFjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCkBAIC0xMjY0LDE1ICsxMjY0LDE4IEBAIGJvb2wgUmVuZGVyQm94Ojpub2RlQXRQb2ludChj
b25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0CiAKIHZv
aWQgUmVuZGVyQm94OjpwYWludFJvb3RCb3hGaWxsTGF5ZXJzKGNvbnN0IFBhaW50SW5mbyYgcGFp
bnRJbmZvKQogeworICAgIEFTU0VSVChpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkpOwogICAg
IGlmIChwYWludEluZm8uc2tpcFJvb3RCYWNrZ3JvdW5kKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGF1dG8mIHJvb3RCYWNrZ3JvdW5kUmVuZGVyZXIgPSByZW5kZXJlckZvclJvb3RCYWNrZ3Jv
dW5kKCk7Ci0gICAgCi0gICAgY29uc3QgRmlsbExheWVyKiBiZ0xheWVyID0gcm9vdEJhY2tncm91
bmRSZW5kZXJlci5zdHlsZSgpLmJhY2tncm91bmRMYXllcnMoKTsKLSAgICBDb2xvciBiZ0NvbG9y
ID0gcm9vdEJhY2tncm91bmRSZW5kZXJlci5zdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihD
U1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7CisgICAgYXV0byogcm9vdEJhY2tncm91bmRSZW5k
ZXJlciA9IHZpZXcoKS5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCk7CisgICAgaWYgKCFyb290
QmFja2dyb3VuZFJlbmRlcmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBjb25zdCBGaWxsTGF5
ZXIqIGJnTGF5ZXIgPSByb290QmFja2dyb3VuZFJlbmRlcmVyLT5zdHlsZSgpLmJhY2tncm91bmRM
YXllcnMoKTsKKyAgICBDb2xvciBiZ0NvbG9yID0gcm9vdEJhY2tncm91bmRSZW5kZXJlci0+c3R5
bGUoKS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwog
Ci0gICAgcGFpbnRGaWxsTGF5ZXJzKHBhaW50SW5mbywgYmdDb2xvciwgYmdMYXllciwgdmlldygp
LmJhY2tncm91bmRSZWN0KCksIEJhY2tncm91bmRCbGVlZE5vbmUsIENvbXBvc2l0ZVNvdXJjZU92
ZXIsICZyb290QmFja2dyb3VuZFJlbmRlcmVyKTsKKyAgICBwYWludEZpbGxMYXllcnMocGFpbnRJ
bmZvLCBiZ0NvbG9yLCBiZ0xheWVyLCB2aWV3KCkuYmFja2dyb3VuZFJlY3QoKSwgQmFja2dyb3Vu
ZEJsZWVkTm9uZSwgQ29tcG9zaXRlU291cmNlT3Zlciwgcm9vdEJhY2tncm91bmRSZW5kZXJlcik7
CiB9CiAKIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBSZW5kZXJCb3g6OmRldGVybWluZUJhY2tn
cm91bmRCbGVlZEF2b2lkYW5jZShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggOTE0NDgxMDY1Yjgz
Njk4MmEzNWNhMzhjNWNiMWRmNDA3YTNkOGE5My4uMDk5ZTM5NjIwNjhjNDZjOWMwOGFkZTNlZjQ4
MjVkMDFlMjlmNTZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcApAQCAtMTE2NywyMiArMTE2Nyw2IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c2V0TmVlZHNT
aW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCgpCiAgICAgICAgIHNldExheWVyTmVlZHNGdWxsUmVw
YWludCgpOwogfQogCi1SZW5kZXJFbGVtZW50JiBSZW5kZXJFbGVtZW50OjpyZW5kZXJlckZvclJv
b3RCYWNrZ3JvdW5kKCkKLXsKLSAgICBBU1NFUlQoaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigp
KTsKLSAgICBpZiAoIWhhc0JhY2tncm91bmQoKSAmJiBpczxIVE1MSHRtbEVsZW1lbnQ+KGVsZW1l
bnQoKSkpIHsKLSAgICAgICAgLy8gTG9jYXRlIHRoZSA8Ym9keT4gZWxlbWVudCB1c2luZyB0aGUg
RE9NLiBUaGlzIGlzIGVhc2llciB0aGFuIHRyeWluZwotICAgICAgICAvLyB0byBjcmF3bCBhcm91
bmQgYSByZW5kZXIgdHJlZSB3aXRoIHBvdGVudGlhbCA6YmVmb3JlLzphZnRlciBjb250ZW50IGFu
ZAotICAgICAgICAvLyBhbm9ueW1vdXMgYmxvY2tzIGNyZWF0ZWQgYnkgaW5saW5lIDxib2R5PiB0
YWdzIGV0Yy4gV2UgY2FuIGxvY2F0ZSB0aGUgPGJvZHk+Ci0gICAgICAgIC8vIHJlbmRlciBvYmpl
Y3QgdmVyeSBlYXNpbHkgdmlhIHRoZSBET00uCi0gICAgICAgIGlmIChhdXRvKiBib2R5ID0gZG9j
dW1lbnQoKS5ib2R5KCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGJvZHkt
PnJlbmRlcmVyKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuICpyZW5kZXJlcjsKLSAgICAgICAg
fQotICAgIH0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KIFJlbmRlckVsZW1lbnQqIFJlbmRlckVs
ZW1lbnQ6OmhvdmVyQW5jZXN0b3IoKSBjb25zdAogewogICAgIC8vIFdoZW4gc2VhcmNoaW5nIGZv
ciB0aGUgaG92ZXIgYW5jZXN0b3IgYW5kIGVuY291bnRlcmluZyBhIG5hbWVkIGZsb3cgdGhyZWFk
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKaW5kZXggZTFjNjkzYmRh
Njk4YzEyMzUzMTIyZWUzMWY0ZTNiZDE4NmU5MjQ2My4uN2NmZGE0M2Q5MDI0ZjgwN2RlYTUzNTk2
YWU3NGZmNGZkOTRiMGU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5oCkBAIC0xMjgsOSArMTI4LDYgQEAgcHVibGljOgogICAgIC8qIFRoaXMgZnVuY3Rpb24gcGVy
Zm9ybXMgYSBsYXlvdXQgb25seSBpZiBvbmUgaXMgbmVlZGVkLiAqLwogICAgIHZvaWQgbGF5b3V0
SWZOZWVkZWQoKSB7IGlmIChuZWVkc0xheW91dCgpKSBsYXlvdXQoKTsgfQogCi0gICAgLy8gUmV0
dXJuIHRoZSByZW5kZXJlciB3aG9zZSBiYWNrZ3JvdW5kIHN0eWxlIGlzIHVzZWQgdG8gcGFpbnQg
dGhlIHJvb3QgYmFja2dyb3VuZC4gU2hvdWxkIG9ubHkgYmUgY2FsbGVkIG9uIHRoZSByZW5kZXJl
ciBmb3Igd2hpY2ggaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpIGlzIHRydWUuCi0gICAgUmVu
ZGVyRWxlbWVudCYgcmVuZGVyZXJGb3JSb290QmFja2dyb3VuZCgpOwotCiAgICAgLy8gVXBkYXRl
cyBvbmx5IHRoZSBsb2NhbCBzdHlsZSBwdHIgb2YgdGhlIG9iamVjdC4gRG9lcyBub3QgdXBkYXRl
IHRoZSBzdGF0ZSBvZiB0aGUgb2JqZWN0LAogICAgIC8vIGFuZCBzbyBvbmx5IHNob3VsZCBiZSBj
YWxsZWQgd2hlbiB0aGUgc3R5bGUgaXMga25vd24gbm90IHRvIGhhdmUgY2hhbmdlZCAob3IgZnJv
bSBzZXRTdHlsZSkuCiAgICAgdm9pZCBzZXRTdHlsZUludGVybmFsKFJlbmRlclN0eWxlJiYgc3R5
bGUpIHsgbV9zdHlsZSA9IFdURk1vdmUoc3R5bGUpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDYyNmFiNmM0MjhlMDJhM2YwY2Nk
YjFiM2FhZDFmOTQwNDg4ZjQ4MzcuLjAwMjhlNjg1YmQ5YzQ1OWJjYmQzMjJkMjBhYWNhZjRkMTZl
Njk2ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCkBAIC0xNzkyLDggKzE3OTIsMTQgQEAgc3RhdGljIGlubGluZSBib29sIGhhc1BlcnNw
ZWN0aXZlT3JQcmVzZXJ2ZXMzRChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAKIENvbG9yIFJl
bmRlckxheWVyQmFja2luZzo6cmVuZGVyZXJCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewotICAg
IGNvbnN0IGF1dG8mIGJhY2tncm91bmRSZW5kZXJlciA9IHJlbmRlcmVyKCkuaXNEb2N1bWVudEVs
ZW1lbnRSZW5kZXJlcigpID8gcmVuZGVyZXIoKS5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCkg
OiByZW5kZXJlcigpOwotICAgIHJldHVybiBiYWNrZ3JvdW5kUmVuZGVyZXIuc3R5bGUoKS52aXNp
dGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOworICAgIFJlbmRl
ckVsZW1lbnQqIGJhY2tncm91bmRSZW5kZXJlciA9IG51bGxwdHI7CisgICAgaWYgKHJlbmRlcmVy
KCkuaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKQorICAgICAgICBiYWNrZ3JvdW5kUmVuZGVy
ZXIgPSByZW5kZXJlcigpLnZpZXcoKS5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCk7CisgICAg
CisgICAgaWYgKCFiYWNrZ3JvdW5kUmVuZGVyZXIpCisgICAgICAgIGJhY2tncm91bmRSZW5kZXJl
ciA9ICZyZW5kZXJlcigpOworCisgICAgcmV0dXJuIGJhY2tncm91bmRSZW5kZXJlci0+c3R5bGUo
KS52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwogfQog
CiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRGlyZWN0bHlDb21wb3NpdGVkQmFja2dy
b3VuZENvbG9yKGJvb2wgaXNTaW1wbGVDb250YWluZXIsIGJvb2wmIGRpZFVwZGF0ZUNvbnRlbnRz
UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA5MWFjMDgw
MDIzODFmYTY1Y2YwYjI1YTU4YzkwMzFmOGFhNmQ4MTdkLi40YzBiYjU0ZWM4MzJiNzk0NDNkZTI1
OTc3YmExYWIzZDk0YTEzY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwCkBAIC0zMCw3ICszMCw5IEBACiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRl
ICJIVE1MQm9keUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSUZyYW1lRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJJbWFnZVF1YWxpdHlD
b250cm9sbGVyLmgiCkBAIC01MDYsMjQgKzUwOCw0NCBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAg
ICAgcGFpbnRPYmplY3QocGFpbnRJbmZvLCBwYWludE9mZnNldCk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgYm9vbCByZW5kZXJlck9ic2N1cmVzQmFja2dyb3VuZChSZW5kZXJFbGVtZW50KiByb290T2Jq
ZWN0KQorUmVuZGVyRWxlbWVudCogUmVuZGVyVmlldzo6cmVuZGVyZXJGb3JSb290QmFja2dyb3Vu
ZCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFyb290T2JqZWN0KQorICAgIGF1dG8qIGZpcnN0Q2hpbGQg
PSB0aGlzLT5maXJzdENoaWxkKCk7CisgICAgaWYgKCFmaXJzdENoaWxkKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBBU1NFUlQoaXM8UmVuZGVyRWxlbWVudD4oKmZpcnN0Q2hpbGQpKTsK
KyAgICBhdXRvJiBkb2N1bWVudFJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKmZp
cnN0Q2hpbGQpOworCisgICAgaWYgKCFpczxIVE1MSHRtbEVsZW1lbnQ+KGRvY3VtZW50UmVuZGVy
ZXIuZWxlbWVudCgpKSkKKyAgICAgICAgcmV0dXJuICZkb2N1bWVudFJlbmRlcmVyOworCisgICAg
aWYgKGRvY3VtZW50UmVuZGVyZXIuaGFzQmFja2dyb3VuZCgpKQorICAgICAgICByZXR1cm4gJmRv
Y3VtZW50UmVuZGVyZXI7CisKKyAgICBpZiAoYXV0byogYm9keSA9IGRvY3VtZW50KCkuYm9keSgp
KSB7CisgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGJvZHktPnJlbmRlcmVyKCkpCisgICAg
ICAgICAgICByZXR1cm4gcmVuZGVyZXI7CisgICAgfQorICAgIHJldHVybiAmZG9jdW1lbnRSZW5k
ZXJlcjsKK30KKworc3RhdGljIGlubGluZSBib29sIHJlbmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5k
KGNvbnN0IFJlbmRlckVsZW1lbnQmIHJvb3RFbGVtZW50KQoreworICAgIGF1dG8mIHN0eWxlID0g
cm9vdEVsZW1lbnQuc3R5bGUoKTsKKyAgICBpZiAoc3R5bGUudmlzaWJpbGl0eSgpICE9IFZJU0lC
TEUgfHwgc3R5bGUub3BhY2l0eSgpICE9IDEgfHwgc3R5bGUuaGFzVHJhbnNmb3JtKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUgPSBy
b290T2JqZWN0LT5zdHlsZSgpOwotICAgIGlmIChzdHlsZS52aXNpYmlsaXR5KCkgIT0gVklTSUJM
RQotICAgICAgICB8fCBzdHlsZS5vcGFjaXR5KCkgIT0gMQotICAgICAgICB8fCBzdHlsZS5oYXNU
cmFuc2Zvcm0oKSkKKworICAgIGlmIChzdHlsZS5oYXNCb3JkZXJSYWRpdXMoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAotICAgIGlmIChyb290T2JqZWN0LT5pc0NvbXBvc2l0ZWQoKSkK
KworICAgIGlmIChyb290RWxlbWVudC5pc0NvbXBvc2l0ZWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKHJvb3RPYmplY3QtPnJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQoKS5z
dHlsZSgpLmJhY2tncm91bmRDbGlwKCkgPT0gVGV4dEZpbGxCb3gpCisgICAgYXV0byogcmVuZGVy
ZXJGb3JCYWNrZ3JvdW5kID0gcm9vdEVsZW1lbnQudmlldygpLnJlbmRlcmVyRm9yUm9vdEJhY2tn
cm91bmQoKTsKKyAgICBpZiAoIXJlbmRlcmVyRm9yQmFja2dyb3VuZCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgaWYgKHN0eWxlLmhhc0JvcmRlclJhZGl1cygpKQorICAgIGlmIChyZW5k
ZXJlckZvckJhY2tncm91bmQtPnN0eWxlKCkuYmFja2dyb3VuZENsaXAoKSA9PSBUZXh0RmlsbEJv
eCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC01NjcsNyAr
NTg5LDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAgICAgICAgIC8vIFRoZSBkb2N1bWVudCBl
bGVtZW50J3MgcmVuZGVyZXIgaXMgY3VycmVudGx5IGZvcmNlZCB0byBiZSBhIGJsb2NrLCBidXQg
bWF5IG5vdCBhbHdheXMgYmUuCiAgICAgICAgIFJlbmRlckJveCogcm9vdEJveCA9IGlzPFJlbmRl
ckJveD4oKnJvb3RSZW5kZXJlcikgPyBkb3duY2FzdDxSZW5kZXJCb3g+KHJvb3RSZW5kZXJlcikg
OiBudWxscHRyOwogICAgICAgICByb290RmlsbHNWaWV3cG9ydCA9IHJvb3RCb3ggJiYgIXJvb3RC
b3gtPngoKSAmJiAhcm9vdEJveC0+eSgpICYmIHJvb3RCb3gtPndpZHRoKCkgPj0gd2lkdGgoKSAm
JiByb290Qm94LT5oZWlnaHQoKSA+PSBoZWlnaHQoKTsKLSAgICAgICAgcm9vdE9ic2N1cmVzQmFj
a2dyb3VuZCA9IHJlbmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKHJvb3RSZW5kZXJlcik7CisgICAg
ICAgIHJvb3RPYnNjdXJlc0JhY2tncm91bmQgPSByZW5kZXJlck9ic2N1cmVzQmFja2dyb3VuZCgq
cm9vdFJlbmRlcmVyKTsKICAgICB9CiAKICAgICBib29sIGJhY2tncm91bmRTaG91bGRFeHRlbmRC
ZXlvbmRQYWdlID0gZnJhbWVWaWV3KCkuZnJhbWUoKS5zZXR0aW5ncygpLmJhY2tncm91bmRTaG91
bGRFeHRlbmRCZXlvbmRQYWdlKCk7CkBAIC0xMTQ0LDExICsxMTY2LDkgQEAgSW50UmVjdCBSZW5k
ZXJWaWV3Ojp1bnNjYWxlZERvY3VtZW50UmVjdCgpIGNvbnN0CiAKIGJvb2wgUmVuZGVyVmlldzo6
cm9vdEJhY2tncm91bmRJc0VudGlyZWx5Rml4ZWQoKSBjb25zdAogewotICAgIFJlbmRlckVsZW1l
bnQqIHJvb3RPYmplY3QgPSBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpID8gZG9jdW1lbnQo
KS5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7Ci0gICAgaWYgKCFyb290
T2JqZWN0KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gcm9vdE9iamVjdC0+
cmVuZGVyZXJGb3JSb290QmFja2dyb3VuZCgpLnN0eWxlKCkuaGFzRW50aXJlbHlGaXhlZEJhY2tn
cm91bmQoKTsKKyAgICBpZiAoYXV0byogcm9vdEJhY2tncm91bmRSZW5kZXJlciA9IHJlbmRlcmVy
Rm9yUm9vdEJhY2tncm91bmQoKSkKKyAgICAgICAgcmV0dXJuIHJvb3RCYWNrZ3JvdW5kUmVuZGVy
ZXItPnN0eWxlKCkuaGFzRW50aXJlbHlGaXhlZEJhY2tncm91bmQoKTsKKyAgICByZXR1cm4gZmFs
c2U7CiB9CiAgICAgCiBMYXlvdXRSZWN0IFJlbmRlclZpZXc6OnVuZXh0ZW5kZWRCYWNrZ3JvdW5k
UmVjdCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA0YTEz
YWFjOGVhNThjMzM4NTA5NjFhNzcxYmZiMWRkYWU2YTc3NjkyLi44YWMwM2Q3MWEyOTk1YWQ4Nzdk
NjQxNWRkODYwOTA1YTY3ZTMxNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmgKQEAgLTgyLDYgKzgyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBwYWludChQYWludEluZm8m
LCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRCb3hEZWNvcmF0
aW9ucyhQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOworICAgIC8vIFJl
dHVybiB0aGUgcmVuZGVyZXIgd2hvc2UgYmFja2dyb3VuZCBzdHlsZSBpcyB1c2VkIHRvIHBhaW50
IHRoZSByb290IGJhY2tncm91bmQuCisgICAgUmVuZGVyRWxlbWVudCogcmVuZGVyZXJGb3JSb290
QmFja2dyb3VuZCgpIGNvbnN0OwogCiAgICAgZW51bSBTZWxlY3Rpb25SZXBhaW50TW9kZSB7IFJl
cGFpbnROZXdYT1JPbGQsIFJlcGFpbnROZXdNaW51c09sZCwgUmVwYWludE5vdGhpbmcgfTsKICAg
ICB2b2lkIHNldFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0YXJ0LCBzdGQ6Om9wdGlvbmFsPHVu
c2lnbmVkPiBzdGFydFBvcywgUmVuZGVyT2JqZWN0KiBlbmRPYmplY3QsIHN0ZDo6b3B0aW9uYWw8
dW5zaWduZWQ+IGVuZFBvcywgU2VsZWN0aW9uUmVwYWludE1vZGUgPSBSZXBhaW50TmV3WE9ST2xk
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296334</attachid>
            <date>2016-12-06 15:27:46 -0800</date>
            <delta_ts>2016-12-06 17:16:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165454-20161206152708.patch</filename>
            <type>text/plain</type>
            <size>12640</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2RhNjlhMjc2YzNjNDY1
MzM1ZjU5MTcwNjFmM2NiZTc5MTdkNGQyOC4uMGU3YTcwZGZmNjdiYzQ1NGMxYjU2NDhkYmRkODQ0
ODFmNGY4MzM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDE2LTEyLTA2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKKyAgICAgICAgTW92ZSBSZW5kZXJFbGVtZW50
OjpyZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kIHRvIFJlbmRlclZpZXcuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU0NTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQ3VycmVudGx5IFJlbmRlckVsZW1lbnQ6
OnJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQgY2FuIG9ubHkgYmUgY2FsbGVkIG9uIGRvY3VtZW50
IGVsZW1lbnQncyByZW5kZXJlci4KKyAgICAgICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoaXMgbGlt
aXRhdGlvbiBhbmQgbW92ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgZnJvbSBSZW5kZXJFbGVtZW50IHRv
IFJlbmRlclZpZXcuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OmNhbGN1bGF0ZUV4dGVuZGVkQmFja2dyb3VuZE1vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludFJvb3RCb3hG
aWxsTGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpyZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKTog
RGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJCYWNraW5nOjpyZW5kZXJlckJhY2tncm91bmRDb2xvcik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cmVu
ZGVyZXJGb3JSb290QmFja2dyb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpyZW5kZXJlck9ic2N1
cmVzQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpwYWludEJveERl
Y29yYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OnJvb3RCYWNrZ3JvdW5k
SXNFbnRpcmVseUZpeGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorCisy
MDE2LTEyLTA2ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKICAgICAgICAgQ2Fu
IG5vdCBzZWxlY3Qgd2hvbGUgbGluZSB3aGVuIHVzaW5nIGZsZXhib3gKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTI5OQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKaW5kZXggY2ZiNjlmYTU1NTQwYmI4NmNlMjI3MjQ5YTVkYTQyNWYxZjk3ODdi
MC4uOTdjZGRlOTM2YjNmZjBmNmU1ZDMxYzVjOTM3NTg1MDVmZjFhN2RlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcApAQCAtMzE4MCwyMCArMzE4MCwyMCBAQCBGcmFtZVZpZXc6OkV4dGVu
ZGVkQmFja2dyb3VuZE1vZGUgRnJhbWVWaWV3OjpjYWxjdWxhdGVFeHRlbmRlZEJhY2tncm91bmRN
b2RlKCkgYwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeHRlbmRlZEJhY2tn
cm91bmRNb2RlTm9uZTsKIAotICAgIGF1dG8qIGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50LT5k
b2N1bWVudEVsZW1lbnQoKTsKLSAgICBhdXRvKiBkb2N1bWVudEVsZW1lbnRSZW5kZXJlciA9IGRv
Y3VtZW50RWxlbWVudCA/IGRvY3VtZW50RWxlbWVudC0+cmVuZGVyZXIoKSA6IG51bGxwdHI7Ci0g
ICAgaWYgKCFkb2N1bWVudEVsZW1lbnRSZW5kZXJlcikKKyAgICBpZiAoIXJlbmRlclZpZXcoKSkK
KyAgICAgICAgcmV0dXJuIEV4dGVuZGVkQmFja2dyb3VuZE1vZGVOb25lOworICAgIAorICAgIGF1
dG8qIHJvb3RCYWNrZ3JvdW5kUmVuZGVyZXIgPSByZW5kZXJWaWV3KCktPnJlbmRlcmVyRm9yUm9v
dEJhY2tncm91bmQoKTsKKyAgICBpZiAoIXJvb3RCYWNrZ3JvdW5kUmVuZGVyZXIpCiAgICAgICAg
IHJldHVybiBFeHRlbmRlZEJhY2tncm91bmRNb2RlTm9uZTsKIAotICAgIGF1dG8mIHJlbmRlcmVy
ID0gZG9jdW1lbnRFbGVtZW50UmVuZGVyZXItPnJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQoKTsK
LSAgICBpZiAoIXJlbmRlcmVyLnN0eWxlKCkuaGFzQmFja2dyb3VuZEltYWdlKCkpCisgICAgaWYg
KCFyb290QmFja2dyb3VuZFJlbmRlcmVyLT5zdHlsZSgpLmhhc0JhY2tncm91bmRJbWFnZSgpKQog
ICAgICAgICByZXR1cm4gRXh0ZW5kZWRCYWNrZ3JvdW5kTW9kZU5vbmU7CiAKICAgICBFeHRlbmRl
ZEJhY2tncm91bmRNb2RlIG1vZGUgPSBFeHRlbmRlZEJhY2tncm91bmRNb2RlTm9uZTsKLQotICAg
IGlmIChyZW5kZXJlci5zdHlsZSgpLmJhY2tncm91bmRSZXBlYXRYKCkgPT0gUmVwZWF0RmlsbCkK
KyAgICBpZiAocm9vdEJhY2tncm91bmRSZW5kZXJlci0+c3R5bGUoKS5iYWNrZ3JvdW5kUmVwZWF0
WCgpID09IFJlcGVhdEZpbGwpCiAgICAgICAgIG1vZGUgfD0gRXh0ZW5kZWRCYWNrZ3JvdW5kTW9k
ZUhvcml6b250YWw7Ci0gICAgaWYgKHJlbmRlcmVyLnN0eWxlKCkuYmFja2dyb3VuZFJlcGVhdFko
KSA9PSBSZXBlYXRGaWxsKQorICAgIGlmIChyb290QmFja2dyb3VuZFJlbmRlcmVyLT5zdHlsZSgp
LmJhY2tncm91bmRSZXBlYXRZKCkgPT0gUmVwZWF0RmlsbCkKICAgICAgICAgbW9kZSB8PSBFeHRl
bmRlZEJhY2tncm91bmRNb2RlVmVydGljYWw7CiAKICAgICByZXR1cm4gbW9kZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggZmRiZGQ2MDkzMTYyYzVkMDhlNWU4Nzk3
ODkwZDNmN2E2Mzk2YTNiYi4uMWQ3Mzg2YTBiOWFiNTg3MzJlYzYzYTRjNzdlNTBlMGI3NTQ4ZmEw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTEyNjQsMTUgKzEy
NjQsMTggQEAgYm9vbCBSZW5kZXJCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQKIAogdm9pZCBSZW5kZXJCb3g6OnBhaW50
Um9vdEJveEZpbGxMYXllcnMoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8pCiB7CisgICAgQVNT
RVJUKGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSk7CiAgICAgaWYgKHBhaW50SW5mby5za2lw
Um9vdEJhY2tncm91bmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byYgcm9vdEJhY2tn
cm91bmRSZW5kZXJlciA9IHJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQoKTsKLSAgICAKLSAgICBj
b25zdCBGaWxsTGF5ZXIqIGJnTGF5ZXIgPSByb290QmFja2dyb3VuZFJlbmRlcmVyLnN0eWxlKCku
YmFja2dyb3VuZExheWVycygpOwotICAgIENvbG9yIGJnQ29sb3IgPSByb290QmFja2dyb3VuZFJl
bmRlcmVyLnN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3Vu
ZENvbG9yKTsKKyAgICBhdXRvKiByb290QmFja2dyb3VuZFJlbmRlcmVyID0gdmlldygpLnJlbmRl
cmVyRm9yUm9vdEJhY2tncm91bmQoKTsKKyAgICBpZiAoIXJvb3RCYWNrZ3JvdW5kUmVuZGVyZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IEZpbGxMYXllciogYmdMYXllciA9IHJvb3RC
YWNrZ3JvdW5kUmVuZGVyZXItPnN0eWxlKCkuYmFja2dyb3VuZExheWVycygpOworICAgIENvbG9y
IGJnQ29sb3IgPSByb290QmFja2dyb3VuZFJlbmRlcmVyLT5zdHlsZSgpLnZpc2l0ZWREZXBlbmRl
bnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7CiAKLSAgICBwYWludEZpbGxMYXll
cnMocGFpbnRJbmZvLCBiZ0NvbG9yLCBiZ0xheWVyLCB2aWV3KCkuYmFja2dyb3VuZFJlY3QoKSwg
QmFja2dyb3VuZEJsZWVkTm9uZSwgQ29tcG9zaXRlU291cmNlT3ZlciwgJnJvb3RCYWNrZ3JvdW5k
UmVuZGVyZXIpOworICAgIHBhaW50RmlsbExheWVycyhwYWludEluZm8sIGJnQ29sb3IsIGJnTGF5
ZXIsIHZpZXcoKS5iYWNrZ3JvdW5kUmVjdCgpLCBCYWNrZ3JvdW5kQmxlZWROb25lLCBDb21wb3Np
dGVTb3VyY2VPdmVyLCByb290QmFja2dyb3VuZFJlbmRlcmVyKTsKIH0KIAogQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlIFJlbmRlckJveDo6ZGV0ZXJtaW5lQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNl
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCA5MTQ0ODEwNjViODM2OTgyYTM1Y2EzOGM1Y2IxZGY0
MDdhM2Q4YTkzLi4wOTllMzk2MjA2OGM0NmM5YzA4YWRlM2VmNDgyNWQwMWUyOWY1NmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC0xMTY3LDIyICsx
MTY3LDYgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93
TGF5b3V0KCkKICAgICAgICAgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCk7CiB9CiAKLVJlbmRl
ckVsZW1lbnQmIFJlbmRlckVsZW1lbnQ6OnJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQoKQotewot
ICAgIEFTU0VSVChpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkpOwotICAgIGlmICghaGFzQmFj
a2dyb3VuZCgpICYmIGlzPEhUTUxIdG1sRWxlbWVudD4oZWxlbWVudCgpKSkgewotICAgICAgICAv
LyBMb2NhdGUgdGhlIDxib2R5PiBlbGVtZW50IHVzaW5nIHRoZSBET00uIFRoaXMgaXMgZWFzaWVy
IHRoYW4gdHJ5aW5nCi0gICAgICAgIC8vIHRvIGNyYXdsIGFyb3VuZCBhIHJlbmRlciB0cmVlIHdp
dGggcG90ZW50aWFsIDpiZWZvcmUvOmFmdGVyIGNvbnRlbnQgYW5kCi0gICAgICAgIC8vIGFub255
bW91cyBibG9ja3MgY3JlYXRlZCBieSBpbmxpbmUgPGJvZHk+IHRhZ3MgZXRjLiBXZSBjYW4gbG9j
YXRlIHRoZSA8Ym9keT4KLSAgICAgICAgLy8gcmVuZGVyIG9iamVjdCB2ZXJ5IGVhc2lseSB2aWEg
dGhlIERPTS4KLSAgICAgICAgaWYgKGF1dG8qIGJvZHkgPSBkb2N1bWVudCgpLmJvZHkoKSkgewot
ICAgICAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gYm9keS0+cmVuZGVyZXIoKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gKnJlbmRlcmVyOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVy
biAqdGhpczsKLX0KLQogUmVuZGVyRWxlbWVudCogUmVuZGVyRWxlbWVudDo6aG92ZXJBbmNlc3Rv
cigpIGNvbnN0CiB7CiAgICAgLy8gV2hlbiBzZWFyY2hpbmcgZm9yIHRoZSBob3ZlciBhbmNlc3Rv
ciBhbmQgZW5jb3VudGVyaW5nIGEgbmFtZWQgZmxvdyB0aHJlYWQsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCBlMWM2OTNiZGE2OThjMTIzNTMxMjJlZTMxZjRl
M2JkMTg2ZTkyNDYzLi43Y2ZkYTQzZDkwMjRmODA3ZGVhNTM1OTZhZTc0ZmY0ZmQ5NGIwZTlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTEyOCw5ICsxMjgs
NiBAQCBwdWJsaWM6CiAgICAgLyogVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhIGxheW91dCBvbmx5
IGlmIG9uZSBpcyBuZWVkZWQuICovCiAgICAgdm9pZCBsYXlvdXRJZk5lZWRlZCgpIHsgaWYgKG5l
ZWRzTGF5b3V0KCkpIGxheW91dCgpOyB9CiAKLSAgICAvLyBSZXR1cm4gdGhlIHJlbmRlcmVyIHdo
b3NlIGJhY2tncm91bmQgc3R5bGUgaXMgdXNlZCB0byBwYWludCB0aGUgcm9vdCBiYWNrZ3JvdW5k
LiBTaG91bGQgb25seSBiZSBjYWxsZWQgb24gdGhlIHJlbmRlcmVyIGZvciB3aGljaCBpc0RvY3Vt
ZW50RWxlbWVudFJlbmRlcmVyKCkgaXMgdHJ1ZS4KLSAgICBSZW5kZXJFbGVtZW50JiByZW5kZXJl
ckZvclJvb3RCYWNrZ3JvdW5kKCk7Ci0KICAgICAvLyBVcGRhdGVzIG9ubHkgdGhlIGxvY2FsIHN0
eWxlIHB0ciBvZiB0aGUgb2JqZWN0LiBEb2VzIG5vdCB1cGRhdGUgdGhlIHN0YXRlIG9mIHRoZSBv
YmplY3QsCiAgICAgLy8gYW5kIHNvIG9ubHkgc2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBzdHls
ZSBpcyBrbm93biBub3QgdG8gaGF2ZSBjaGFuZ2VkIChvciBmcm9tIHNldFN0eWxlKS4KICAgICB2
b2lkIHNldFN0eWxlSW50ZXJuYWwoUmVuZGVyU3R5bGUmJiBzdHlsZSkgeyBtX3N0eWxlID0gV1RG
TW92ZShzdHlsZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggNjI2YWI2YzQyOGUwMmEzZjBjY2RiMWIzYWFkMWY5NDA0ODhmNDgz
Ny4uMDAyOGU2ODViZDljNDU5YmNiZDMyMmQyMGFhY2FmNGQxNmU2OTZmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE3OTIsOCAr
MTc5MiwxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFzUGVyc3BlY3RpdmVPclByZXNlcnZlczNE
KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIAogQ29sb3IgUmVuZGVyTGF5ZXJCYWNraW5nOjpy
ZW5kZXJlckJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7Ci0gICAgY29uc3QgYXV0byYgYmFja2dy
b3VuZFJlbmRlcmVyID0gcmVuZGVyZXIoKS5pc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkgPyBy
ZW5kZXJlcigpLnJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQoKSA6IHJlbmRlcmVyKCk7Ci0gICAg
cmV0dXJuIGJhY2tncm91bmRSZW5kZXJlci5zdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihD
U1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7CisgICAgUmVuZGVyRWxlbWVudCogYmFja2dyb3Vu
ZFJlbmRlcmVyID0gbnVsbHB0cjsKKyAgICBpZiAocmVuZGVyZXIoKS5pc0RvY3VtZW50RWxlbWVu
dFJlbmRlcmVyKCkpCisgICAgICAgIGJhY2tncm91bmRSZW5kZXJlciA9IHJlbmRlcmVyKCkudmll
dygpLnJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQoKTsKKyAgICAKKyAgICBpZiAoIWJhY2tncm91
bmRSZW5kZXJlcikKKyAgICAgICAgYmFja2dyb3VuZFJlbmRlcmVyID0gJnJlbmRlcmVyKCk7CisK
KyAgICByZXR1cm4gYmFja2dyb3VuZFJlbmRlcmVyLT5zdHlsZSgpLnZpc2l0ZWREZXBlbmRlbnRD
b2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjp1cGRhdGVEaXJlY3RseUNvbXBvc2l0ZWRCYWNrZ3JvdW5kQ29sb3IoYm9vbCBpc1Np
bXBsZUNvbnRhaW5lciwgYm9vbCYgZGlkVXBkYXRlQ29udGVudHNSZWN0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDkxYWMwODAwMjM4MWZhNjVjZjBiMjVhNThj
OTAzMWY4YWE2ZDgxN2QuLmEwZGRkNzUwMWRkZjg3MWFiYWZkMGUwNTAzMTgzZTg2OWU0Mzk5Yzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTMwLDcgKzMwLDkg
QEAKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxIdG1s
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0
VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkltYWdlUXVhbGl0eUNvbnRyb2xsZXIuaCIKQEAgLTUw
NiwyNCArNTA4LDQ1IEBAIHZvaWQgUmVuZGVyVmlldzo6cGFpbnQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICBwYWludE9iamVjdChwYWlu
dEluZm8sIHBhaW50T2Zmc2V0KTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHJlbmRlcmVyT2Jz
Y3VyZXNCYWNrZ3JvdW5kKFJlbmRlckVsZW1lbnQqIHJvb3RPYmplY3QpCitSZW5kZXJFbGVtZW50
KiBSZW5kZXJWaWV3OjpyZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCkgY29uc3QKIHsKLSAgICBp
ZiAoIXJvb3RPYmplY3QpCisgICAgYXV0byogZmlyc3RDaGlsZCA9IHRoaXMtPmZpcnN0Q2hpbGQo
KTsKKyAgICBpZiAoIWZpcnN0Q2hpbGQpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIEFT
U0VSVChpczxSZW5kZXJFbGVtZW50PigqZmlyc3RDaGlsZCkpOworICAgIGF1dG8mIGRvY3VtZW50
UmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJFbGVtZW50PigqZmlyc3RDaGlsZCk7CisKKyAgICBp
ZiAoZG9jdW1lbnRSZW5kZXJlci5oYXNCYWNrZ3JvdW5kKCkpCisgICAgICAgIHJldHVybiAmZG9j
dW1lbnRSZW5kZXJlcjsKKworICAgIC8vIFdlIHByb3BhZ2F0ZSB0aGUgYmFja2dyb3VuZCBvbmx5
IGZvciBIVE1MIGNvbnRlbnQuCisgICAgaWYgKCFpczxIVE1MSHRtbEVsZW1lbnQ+KGRvY3VtZW50
UmVuZGVyZXIuZWxlbWVudCgpKSkKKyAgICAgICAgcmV0dXJuICZkb2N1bWVudFJlbmRlcmVyOwor
CisgICAgaWYgKGF1dG8qIGJvZHkgPSBkb2N1bWVudCgpLmJvZHkoKSkgeworICAgICAgICBpZiAo
YXV0byogcmVuZGVyZXIgPSBib2R5LT5yZW5kZXJlcigpKQorICAgICAgICAgICAgcmV0dXJuIHJl
bmRlcmVyOworICAgIH0KKyAgICByZXR1cm4gJmRvY3VtZW50UmVuZGVyZXI7Cit9CisKK3N0YXRp
YyBpbmxpbmUgYm9vbCByZW5kZXJlck9ic2N1cmVzQmFja2dyb3VuZChjb25zdCBSZW5kZXJFbGVt
ZW50JiByb290RWxlbWVudCkKK3sKKyAgICBhdXRvJiBzdHlsZSA9IHJvb3RFbGVtZW50LnN0eWxl
KCk7CisgICAgaWYgKHN0eWxlLnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFIHx8IHN0eWxlLm9wYWNp
dHkoKSAhPSAxIHx8IHN0eWxlLmhhc1RyYW5zZm9ybSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgCi0gICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlID0gcm9vdE9iamVjdC0+c3R5bGUo
KTsKLSAgICBpZiAoc3R5bGUudmlzaWJpbGl0eSgpICE9IFZJU0lCTEUKLSAgICAgICAgfHwgc3R5
bGUub3BhY2l0eSgpICE9IDEKLSAgICAgICAgfHwgc3R5bGUuaGFzVHJhbnNmb3JtKCkpCisKKyAg
ICBpZiAoc3R5bGUuaGFzQm9yZGVyUmFkaXVzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAKLSAgICBpZiAocm9vdE9iamVjdC0+aXNDb21wb3NpdGVkKCkpCisKKyAgICBpZiAocm9vdEVs
ZW1lbnQuaXNDb21wb3NpdGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChy
b290T2JqZWN0LT5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCkuc3R5bGUoKS5iYWNrZ3JvdW5k
Q2xpcCgpID09IFRleHRGaWxsQm94KQorICAgIGF1dG8qIHJlbmRlcmVyRm9yQmFja2dyb3VuZCA9
IHJvb3RFbGVtZW50LnZpZXcoKS5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCk7CisgICAgaWYg
KCFyZW5kZXJlckZvckJhY2tncm91bmQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlm
IChzdHlsZS5oYXNCb3JkZXJSYWRpdXMoKSkKKyAgICBpZiAocmVuZGVyZXJGb3JCYWNrZ3JvdW5k
LT5zdHlsZSgpLmJhY2tncm91bmRDbGlwKCkgPT0gVGV4dEZpbGxCb3gpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtNTY3LDcgKzU5MCw3IEBAIHZvaWQgUmVu
ZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UG9pbnQmKQogICAgICAgICAvLyBUaGUgZG9jdW1lbnQgZWxlbWVudCdzIHJlbmRlcmVy
IGlzIGN1cnJlbnRseSBmb3JjZWQgdG8gYmUgYSBibG9jaywgYnV0IG1heSBub3QgYWx3YXlzIGJl
LgogICAgICAgICBSZW5kZXJCb3gqIHJvb3RCb3ggPSBpczxSZW5kZXJCb3g+KCpyb290UmVuZGVy
ZXIpID8gZG93bmNhc3Q8UmVuZGVyQm94Pihyb290UmVuZGVyZXIpIDogbnVsbHB0cjsKICAgICAg
ICAgcm9vdEZpbGxzVmlld3BvcnQgPSByb290Qm94ICYmICFyb290Qm94LT54KCkgJiYgIXJvb3RC
b3gtPnkoKSAmJiByb290Qm94LT53aWR0aCgpID49IHdpZHRoKCkgJiYgcm9vdEJveC0+aGVpZ2h0
KCkgPj0gaGVpZ2h0KCk7Ci0gICAgICAgIHJvb3RPYnNjdXJlc0JhY2tncm91bmQgPSByZW5kZXJl
ck9ic2N1cmVzQmFja2dyb3VuZChyb290UmVuZGVyZXIpOworICAgICAgICByb290T2JzY3VyZXNC
YWNrZ3JvdW5kID0gcmVuZGVyZXJPYnNjdXJlc0JhY2tncm91bmQoKnJvb3RSZW5kZXJlcik7CiAg
ICAgfQogCiAgICAgYm9vbCBiYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZSA9IGZyYW1l
VmlldygpLmZyYW1lKCkuc2V0dGluZ3MoKS5iYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFn
ZSgpOwpAQCAtMTE0NCwxMSArMTE2Nyw5IEBAIEludFJlY3QgUmVuZGVyVmlldzo6dW5zY2FsZWRE
b2N1bWVudFJlY3QoKSBjb25zdAogCiBib29sIFJlbmRlclZpZXc6OnJvb3RCYWNrZ3JvdW5kSXNF
bnRpcmVseUZpeGVkKCkgY29uc3QKIHsKLSAgICBSZW5kZXJFbGVtZW50KiByb290T2JqZWN0ID0g
ZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKSA/IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50
KCktPnJlbmRlcmVyKCkgOiBudWxscHRyOwotICAgIGlmICghcm9vdE9iamVjdCkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHJvb3RPYmplY3QtPnJlbmRlcmVyRm9yUm9vdEJh
Y2tncm91bmQoKS5zdHlsZSgpLmhhc0VudGlyZWx5Rml4ZWRCYWNrZ3JvdW5kKCk7CisgICAgaWYg
KGF1dG8qIHJvb3RCYWNrZ3JvdW5kUmVuZGVyZXIgPSByZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5k
KCkpCisgICAgICAgIHJldHVybiByb290QmFja2dyb3VuZFJlbmRlcmVyLT5zdHlsZSgpLmhhc0Vu
dGlyZWx5Rml4ZWRCYWNrZ3JvdW5kKCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAogTGF5
b3V0UmVjdCBSZW5kZXJWaWV3Ojp1bmV4dGVuZGVkQmFja2dyb3VuZFJlY3QoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggNGExM2FhYzhlYTU4YzMzODUwOTYx
YTc3MWJmYjFkZGFlNmE3NzY5Mi4uOGFjMDNkNzFhMjk5NWFkODc3ZDY0MTVkZDg2MDkwNWE2N2Uz
MTU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC04Miw2ICs4Miw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9p
bnQmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKKyAgICAvLyBSZXR1cm4gdGhlIHJlbmRlcmVy
IHdob3NlIGJhY2tncm91bmQgc3R5bGUgaXMgdXNlZCB0byBwYWludCB0aGUgcm9vdCBiYWNrZ3Jv
dW5kLgorICAgIFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQoKSBjb25z
dDsKIAogICAgIGVudW0gU2VsZWN0aW9uUmVwYWludE1vZGUgeyBSZXBhaW50TmV3WE9ST2xkLCBS
ZXBhaW50TmV3TWludXNPbGQsIFJlcGFpbnROb3RoaW5nIH07CiAgICAgdm9pZCBzZXRTZWxlY3Rp
b24oUmVuZGVyT2JqZWN0KiBzdGFydCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gc3RhcnRQb3Ms
IFJlbmRlck9iamVjdCogZW5kT2JqZWN0LCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBlbmRQb3Ms
IFNlbGVjdGlvblJlcGFpbnRNb2RlID0gUmVwYWludE5ld1hPUk9sZCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>