<?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>184974</bug_id>
          
          <creation_ts>2018-04-25 09:17:41 -0700</creation_ts>
          <short_desc>[LFC] Implement Layout::Box functions.</short_desc>
          <delta_ts>2018-04-25 10:50:25 -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>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>InRadar</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>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1417573</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-04-25 09:17:41 -0700</bug_when>
    <thetext>ssia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417580</commentid>
    <comment_count>1</comment_count>
      <attachid>338745</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-04-25 09:29:15 -0700</bug_when>
    <thetext>Created attachment 338745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417587</commentid>
    <comment_count>2</comment_count>
      <attachid>338745</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-04-25 09:50:47 -0700</bug_when>
    <thetext>Comment on attachment 338745
Patch

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

&gt; Source/WebCore/layout/layouttree/LayoutBox.h:93
&gt; +    WeakPtr&lt;RenderElement&gt; m_renderer;

I&apos;m not sure that having a pointer to old render objects is good even as a temporary measure. It might get difficult to untangle.

&gt; Source/WebCore/layout/layouttree/LayoutBox.h:97
&gt; +    WeakPtr&lt;Box&gt; m_nextSibling;
&gt; +    WeakPtr&lt;Box&gt; m_previousSibling;

The basic tree structure probably shouldn&apos;t use weak ptrs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417592</commentid>
    <comment_count>3</comment_count>
      <attachid>338747</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-04-25 10:12:56 -0700</bug_when>
    <thetext>Created attachment 338747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417611</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-04-25 10:49:11 -0700</bug_when>
    <thetext>Committed r230999: &lt;https://trac.webkit.org/changeset/230999&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1417615</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-25 10:50:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/39726591&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338745</attachid>
            <date>2018-04-25 09:29:15 -0700</date>
            <delta_ts>2018-04-25 10:12:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184974-20180425092915.patch</filename>
            <type>text/plain</type>
            <size>15169</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwOTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FiMDM2OWRlZjJjOTAy
OTU3Nzk0YjBlZjllYTY0YTQ0NTY2NDQ5My4uZmY4ZDhmODg3YjQ4NjQyNGRmZGU3ZmI5MzIwNzQy
MWVjZTRmZTQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTA0LTI1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW1wbGVtZW50IExh
eW91dDo6Qm94IGZ1bmN0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NDk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0QmxvY2tDb250YWluZXIuaDoK
KyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCb3g6OkJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6
fkJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6ZXN0YWJsaXNoZXNGb3JtYXR0
aW5nQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6ZXN0YWJs
aXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Qm94Ojppc1JlbGF0aXZlbHlQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6Qm94Ojppc1N0aWNreVBvc2l0aW9uZWQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCb3g6OmlzQWJzb2x1dGVseVBvc2l0aW9uZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzRml4ZWRQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc0Zsb2F0aW5nUG9zaXRpb25lZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6Y29udGFpbmluZ0Jsb2NrIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc0Rlc2NlbmRhbnRPZiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNBbm9ueW1vdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzSW5saW5lQmxvY2tCb3ggY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzQmxvY2tMZXZlbEJveCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNJbmxpbmVMZXZlbEJveCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNCbG9ja0NvbnRhaW5lckJveCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpuZXh0SW5GbG93U2libGluZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6bmV4dEluRmxvd09yRmxvYXRpbmdTaWJs
aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpwcmV2aW91c0luRmxv
d1NpYmxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnByZXZpb3Vz
SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpCb3g6OnNldFBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6c2V0TmV4
dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnNldFByZXZpb3VzU2li
bGluZyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNPdmVyZmxvd1Zpc2libGUg
Y29uc3QpOgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzSW5GbG93IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc1Bvc2l0aW9uZWQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzSW5GbG93UG9zaXRpb25lZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNPdXRPZkZsb3dQb3NpdGlvbmVkIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc0Zsb2F0aW5nT3JPdXRPZkZs
b3dQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpwYXJl
bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6Om5leHRTaWJsaW5nIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpwcmV2aW91c1NpYmxpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OndlYWtQdHJGYWN0b3J5IGNvbnN0
KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuaDoKKyAgICAg
ICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVCb3guaDoKKyAgICAgICAgKiBsYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVDb250YWluZXIuaDoKKwogMjAxOC0wNC0yNSAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBwcm9qZWN0IGZpbGUg
YWZ0ZXIgcjIzMDkzMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dEJsb2NrQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5oCmluZGV4IDU5YjM2ZDUxYWM4NTk4ZDZhMWVlMTgy
ZjE3NTAzYmI0NzY3MmM4NDkuLjA4OGQwNzAyOTYxNDIyYjliNzFjZjYxOTAwNTE5MWJhMTllNDJj
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJs
b2NrQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0QmxvY2tDb250YWluZXIuaApAQCAtMzIsMTIgKzMyLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgUmVuZGVyRWxlbWVudDsKKwogbmFtZXNwYWNlIExheW91dCB7CiAKIGNs
YXNzIEJsb2NrQ29udGFpbmVyIDogcHVibGljIENvbnRhaW5lciB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChCbG9ja0NvbnRhaW5lcik7CiBwdWJsaWM6Ci0gICAgQmxvY2tDb250YWluZXIo
Y29uc3QgUmVuZGVyU3R5bGUmKTsKKyAgICBCbG9ja0NvbnRhaW5lcihSZW5kZXJFbGVtZW50Jik7
CiAKICAgICBib29sIGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCBm
aW5hbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94
LmNwcAppbmRleCBkNjUwYWZkZGYwZDQ2NTZjMDE3MDIwMGU2M2I4ZDUxZTc5ZTMwZmJmLi4wNmM3
ODkxMmM3ZDRhY2Y4NjBmYjY3MTk0ZmU4NjZlNjc4Nzk2NGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKQEAgLTI1LDMgKzI1LDIxMyBAQAog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCisKKyNpZiBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQu
aCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlvdXQgeworCitXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQm94KTsKKworQm94OjpCb3goUmVuZGVyRWxlbWVudCYg
cmVuZGVyZXIpCisgICAgOiBtX3JlbmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVyKSkKK3sKK30K
KworQm94Ojp+Qm94KCkKK3sKK30KKworYm9vbCBCb3g6OmVzdGFibGlzaGVzRm9ybWF0dGluZ0Nv
bnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQoKSB8fCBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCk7Cit9CisKK2Jv
b2wgQm94Ojplc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdAoreworICAg
IC8vIEluaXRpYWwgQ29udGFpbmluZyBCbG9jayBhbHdheXMgY3JlYXRlcyBhIG5ldyAoaW5pdGFs
KSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQuCisgICAgaWYgKCFwYXJlbnQoKSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgLy8gOS40LjEgQmxvY2sgZm9ybWF0dGluZyBjb250ZXh0cworICAg
IC8vIEZsb2F0cywgYWJzb2x1dGVseSBwb3NpdGlvbmVkIGVsZW1lbnRzLCBibG9jayBjb250YWlu
ZXJzIChzdWNoIGFzIGlubGluZS1ibG9ja3MsIHRhYmxlLWNlbGxzLCBhbmQgdGFibGUtY2FwdGlv
bnMpCisgICAgLy8gdGhhdCBhcmUgbm90IGJsb2NrIGJveGVzLCBhbmQgYmxvY2sgYm94ZXMgd2l0
aCAnb3ZlcmZsb3cnIG90aGVyIHRoYW4gJ3Zpc2libGUnIChleGNlcHQgd2hlbiB0aGF0IHZhbHVl
IGhhcyBiZWVuIHByb3BhZ2F0ZWQgdG8gdGhlIHZpZXdwb3J0KQorICAgIC8vIGVzdGFibGlzaCBu
ZXcgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0cyBmb3IgdGhlaXIgY29udGVudHMuCisgICAgaWYg
KGlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgfHwgaXNBYnNvbHV0ZWx5UG9zaXRpb25lZCgpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoaXNCbG9ja0NvbnRhaW5lckJveCgpICYmICFpc0Js
b2NrTGV2ZWxCb3goKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGlzQmxvY2tMZXZl
bEJveCgpICYmICFpc092ZXJmbG93VmlzaWJsZSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQm94Ojppc1JlbGF0aXZlbHlQb3NpdGlvbmVkKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9yZW5kZXJlci0+c3R5bGUoKS5wb3NpdGlvbigpID09IFJl
bGF0aXZlUG9zaXRpb247Cit9CisKK2Jvb2wgQm94Ojppc1N0aWNreVBvc2l0aW9uZWQoKSBjb25z
dAoreworICAgIHJldHVybiBtX3JlbmRlcmVyLT5zdHlsZSgpLnBvc2l0aW9uKCkgPT0gU3RpY2t5
UG9zaXRpb247Cit9CisKK2Jvb2wgQm94Ojppc0Fic29sdXRlbHlQb3NpdGlvbmVkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9yZW5kZXJlci0+c3R5bGUoKS5wb3NpdGlvbigpID09IEFic29sdXRl
UG9zaXRpb247Cit9CisKK2Jvb2wgQm94Ojppc0ZpeGVkUG9zaXRpb25lZCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcmVuZGVyZXItPnN0eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9u
OworfQorCitib29sIEJveDo6aXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3JlbmRlcmVyLT5zdHlsZSgpLmZsb2F0aW5nKCkgIT0gTm9GbG9hdDsKK30KKworQ29u
dGFpbmVyKiBCb3g6OmNvbnRhaW5pbmdCbG9jaygpIGNvbnN0Cit7CisgICAgLy8gVGhlIGNvbnRh
aW5pbmcgYmxvY2sgaW4gd2hpY2ggdGhlIHJvb3QgZWxlbWVudCBsaXZlcyBpcyBhIHJlY3Rhbmds
ZSBjYWxsZWQgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4KKyAgICAvLyBGb3Igb3RoZXIg
ZWxlbWVudHMsIGlmIHRoZSBlbGVtZW50J3MgcG9zaXRpb24gaXMgJ3JlbGF0aXZlJyBvciAnc3Rh
dGljJywgdGhlIGNvbnRhaW5pbmcgYmxvY2sgaXMgZm9ybWVkIGJ5IHRoZQorICAgIC8vIGNvbnRl
bnQgZWRnZSBvZiB0aGUgbmVhcmVzdCBibG9jayBjb250YWluZXIgYW5jZXN0b3IgYm94LgorICAg
IC8vIElmIHRoZSBlbGVtZW50IGhhcyAncG9zaXRpb246IGZpeGVkJywgdGhlIGNvbnRhaW5pbmcg
YmxvY2sgaXMgZXN0YWJsaXNoZWQgYnkgdGhlIHZpZXdwb3J0CisgICAgLy8gSWYgdGhlIGVsZW1l
bnQgaGFzICdwb3NpdGlvbjogYWJzb2x1dGUnLCB0aGUgY29udGFpbmluZyBibG9jayBpcyBlc3Rh
Ymxpc2hlZCBieSB0aGUgbmVhcmVzdCBhbmNlc3RvciB3aXRoIGEKKyAgICAvLyAncG9zaXRpb24n
IG9mICdhYnNvbHV0ZScsICdyZWxhdGl2ZScgb3IgJ2ZpeGVkJy4KKyAgICBpZiAoIXBhcmVudCgp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghaXNQb3NpdGlvbmVkKCkgfHwg
aXNJbkZsb3dQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgYXV0byogbmVhcmVzdEJsb2NrQ29udGFp
bmVyID0gcGFyZW50KCk7CisgICAgICAgIGZvciAoOyBuZWFyZXN0QmxvY2tDb250YWluZXItPnBh
cmVudCgpICYmICFuZWFyZXN0QmxvY2tDb250YWluZXItPmlzQmxvY2tDb250YWluZXJCb3goKTsg
bmVhcmVzdEJsb2NrQ29udGFpbmVyID0gbmVhcmVzdEJsb2NrQ29udGFpbmVyLT5wYXJlbnQoKSkg
eyB9CisgICAgICAgIHJldHVybiBuZWFyZXN0QmxvY2tDb250YWluZXI7CisgICAgfQorCisgICAg
aWYgKGlzRml4ZWRQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgYXV0byogaW5pdGlhbENvbnRhaW5p
bmdCbG9jayA9IHBhcmVudCgpOworICAgICAgICBmb3IgKDsgaW5pdGlhbENvbnRhaW5pbmdCbG9j
ay0+cGFyZW50KCk7IGluaXRpYWxDb250YWluaW5nQmxvY2sgPSBpbml0aWFsQ29udGFpbmluZ0Js
b2NrLT5wYXJlbnQoKSkgeyB9CisgICAgICAgIHJldHVybiBpbml0aWFsQ29udGFpbmluZ0Jsb2Nr
OworICAgIH0KKworICAgIGlmIChpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgeworICAgICAgICBh
dXRvKiBwb3NpdGlvbmVkQW5jZXN0b3IgPSBwYXJlbnQoKTsKKyAgICAgICAgZm9yICg7IHBvc2l0
aW9uZWRBbmNlc3Rvci0+cGFyZW50KCkgJiYgIXBvc2l0aW9uZWRBbmNlc3Rvci0+aXNQb3NpdGlv
bmVkKCk7IHBvc2l0aW9uZWRBbmNlc3RvciA9IHBvc2l0aW9uZWRBbmNlc3Rvci0+cGFyZW50KCkp
IHsgfQorICAgICAgICByZXR1cm4gcG9zaXRpb25lZEFuY2VzdG9yOworICAgIH0KKworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEJveDo6
aXNEZXNjZW5kYW50T2YoQ29udGFpbmVyJiBjb250YWluZXIpIGNvbnN0Cit7CisgICAgYXV0byog
YW5jZXN0b3IgPSBwYXJlbnQoKTsKKyAgICBmb3IgKDsgYW5jZXN0b3IgJiYgYW5jZXN0b3IgIT0g
JmNvbnRhaW5lcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkpIHsgfQorICAgIHJldHVy
biBhbmNlc3RvcjsKK30KKworYm9vbCBCb3g6OmlzQW5vbnltb3VzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9yZW5kZXJlci0+aXNBbm9ueW1vdXMoKTsKK30KKworYm9vbCBCb3g6OmlzSW5saW5l
QmxvY2tCb3goKSBjb25zdAoreworICAgIHJldHVybiBtX3JlbmRlcmVyLT5zdHlsZSgpLmRpc3Bs
YXkoKSA9PSBJTkxJTkVfQkxPQ0s7Cit9CisKK2Jvb2wgQm94Ojppc0Jsb2NrTGV2ZWxCb3goKSBj
b25zdAoreworICAgIC8vIEJsb2NrIGxldmVsIGVsZW1lbnRzIGdlbmVyYXRlIGJsb2NrIGxldmVs
IGJveGVzLgorICAgIGF1dG8gZGlzcGxheSA9IG1fcmVuZGVyZXItPnN0eWxlKCkuZGlzcGxheSgp
OworICAgIHJldHVybiBkaXNwbGF5ID09IEJMT0NLIHx8IGRpc3BsYXkgPT0gTElTVF9JVEVNIHx8
IGRpc3BsYXkgPT0gVEFCTEU7Cit9CisKK2Jvb2wgQm94Ojppc0lubGluZUxldmVsQm94KCkgY29u
c3QKK3sKKyAgICAvLyBJbmxpbmUgbGV2ZWwgZWxlbWVudHMgZ2VuZXJhdGUgaW5saW5lIGxldmVs
IGJveGVzLgorICAgIGF1dG8gZGlzcGxheSA9IG1fcmVuZGVyZXItPnN0eWxlKCkuZGlzcGxheSgp
OworICAgIHJldHVybiBkaXNwbGF5ID09IElOTElORSB8fCBkaXNwbGF5ID09IElOTElORV9CTE9D
SyB8fCBkaXNwbGF5ID09IElOTElORV9UQUJMRTsKK30KKworYm9vbCBCb3g6OmlzQmxvY2tDb250
YWluZXJCb3goKSBjb25zdAoreworICAgIC8vIElubGluZSBsZXZlbCBlbGVtZW50cyBnZW5lcmF0
ZSBpbmxpbmUgbGV2ZWwgYm94ZXMuCisgICAgYXV0byBkaXNwbGF5ID0gbV9yZW5kZXJlci0+c3R5
bGUoKS5kaXNwbGF5KCk7CisgICAgcmV0dXJuIGRpc3BsYXkgPT0gQkxPQ0sgfHwgZGlzcGxheSA9
PSBMSVNUX0lURU0gfHwgZGlzcGxheSA9PSBJTkxJTkVfQkxPQ0sgfHwgZGlzcGxheSA9PSBUQUJM
RV9DRUxMIHx8IGRpc3BsYXkgPT0gVEFCTEVfQ0FQVElPTjsgLy8gVE9ETyAmJiAhcmVwbGFjZWQg
ZWxlbWVudAorfQorCitib29sIEJveDo6aXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gIXBhcmVudCgpOworfQorCitCb3gqIEJveDo6bmV4dEluRmxvd1NpYmxp
bmcoKSBjb25zdAoreworICAgIGlmIChhdXRvKiBuZXh0U2libGluZyA9IHRoaXMtPm5leHRTaWJs
aW5nKCkpIHsKKyAgICAgICAgaWYgKG5leHRTaWJsaW5nLT5pc0luRmxvdygpKQorICAgICAgICAg
ICAgcmV0dXJuIG5leHRTaWJsaW5nOworICAgICAgICByZXR1cm4gbmV4dFNpYmxpbmctPm5leHRJ
bkZsb3dTaWJsaW5nKCk7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCitCb3gqIEJv
eDo6bmV4dEluRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkgY29uc3QKK3sKKyAgICBpZiAoYXV0byog
bmV4dFNpYmxpbmcgPSB0aGlzLT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmIChuZXh0U2li
bGluZy0+aXNJbkZsb3coKSB8fCBuZXh0U2libGluZy0+aXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkK
KyAgICAgICAgICAgIHJldHVybiBuZXh0U2libGluZzsKKyAgICAgICAgcmV0dXJuIG5leHRTaWJs
aW5nLT5uZXh0SW5GbG93U2libGluZygpOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworQm94KiBCb3g6OnByZXZpb3VzSW5GbG93U2libGluZygpIGNvbnN0Cit7CisgICAgaWYgKGF1
dG8qIHByZXZpb3VzU2libGluZyA9IHRoaXMtPnByZXZpb3VzU2libGluZygpKSB7CisgICAgICAg
IGlmIChwcmV2aW91c1NpYmxpbmctPmlzSW5GbG93KCkpCisgICAgICAgICAgICByZXR1cm4gcHJl
dmlvdXNTaWJsaW5nOworICAgICAgICByZXR1cm4gcHJldmlvdXNTaWJsaW5nLT5wcmV2aW91c0lu
Rmxvd1NpYmxpbmcoKTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0JveCogQm94
OjpwcmV2aW91c0luRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkgY29uc3QKK3sKKyAgICBpZiAoYXV0
byogcHJldmlvdXNTaWJsaW5nID0gdGhpcy0+cHJldmlvdXNTaWJsaW5nKCkpIHsKKyAgICAgICAg
aWYgKHByZXZpb3VzU2libGluZy0+aXNJbkZsb3coKSB8fCBwcmV2aW91c1NpYmxpbmctPmlzRmxv
YXRpbmdQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNTaWJsaW5nOwor
ICAgICAgICByZXR1cm4gcHJldmlvdXNTaWJsaW5nLT5wcmV2aW91c0luRmxvd09yRmxvYXRpbmdT
aWJsaW5nKCk7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lkIEJveDo6c2V0
UGFyZW50KENvbnRhaW5lciYgcGFyZW50KQoreworICAgIG1fcGFyZW50ID0gbWFrZVdlYWtQdHIo
cGFyZW50KTsKK30KKwordm9pZCBCb3g6OnNldE5leHRTaWJsaW5nKEJveCYgbmV4dFNpYmxpbmcp
Cit7CisgICAgbV9uZXh0U2libGluZyA9IG1ha2VXZWFrUHRyKG5leHRTaWJsaW5nKTsKK30KKwor
dm9pZCBCb3g6OnNldFByZXZpb3VzU2libGluZyhCb3gmIHByZXZpb3VzU2libGluZykKK3sKKyAg
ICBtX3ByZXZpb3VzU2libGluZyA9IG1ha2VXZWFrUHRyKHByZXZpb3VzU2libGluZyk7Cit9CisK
K2Jvb2wgQm94Ojppc092ZXJmbG93VmlzaWJsZSgpIGNvbnN0Cit7CisgICAgYXV0byYgc3R5bGUg
PSBtX3JlbmRlcmVyLT5zdHlsZSgpOworICAgIHJldHVybiBzdHlsZS5vdmVyZmxvd1goKSA9PSBP
VklTSUJMRSB8fCBzdHlsZS5vdmVyZmxvd1koKSA9PSBPVklTSUJMRTsKK30KKworfQorfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKaW5k
ZXggMmRjMzkyZjM1YmM1ZDAxMjgyNDFmMWJkNWU1MmExMjQ2YWU3ODEzZC4uNjRjNmIzMGU5MWI1
YjZkNzNlMjcyZTA5NGU1NGFlOTNmZjA2M2Y0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTI4LDYwICsyOCw3MyBAQAogI2lmIEVOQUJMRShM
QVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
UmVuZGVyRWxlbWVudDsKKwogbmFtZXNwYWNlIExheW91dCB7CiAKIGNsYXNzIENvbnRhaW5lcjsK
LWNsYXNzIFJlbmRlclN0eWxlOwogCiBjbGFzcyBCb3ggewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoQm94KTsKIHB1YmxpYzoKLSAgICBCb3goY29uc3QgUmVuZGVyU3R5bGUmKTsKKyAgICBC
b3goUmVuZGVyRWxlbWVudCYpOwogICAgIHZpcnR1YWwgfkJveCgpOwogCiAgICAgYm9vbCBlc3Rh
Ymxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGVzdGFi
bGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBl
c3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCBi
b29sIGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCi0gICAgYm9vbCBpc1Bvc2l0aW9uZWQoKSBjb25zdDsKLSAgICBib29sIGlzSW5G
bG93UG9zaXRpb25lZCgpIGNvbnN0OwotICAgIGJvb2wgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkg
Y29uc3Q7CisgICAgYm9vbCBpc0luRmxvdygpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nT3JP
dXRPZkZsb3dQb3NpdGlvbmVkKCk7IH0KKyAgICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0IHsg
cmV0dXJuIGlzSW5GbG93UG9zaXRpb25lZCgpIHx8IGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpOyB9
CisgICAgYm9vbCBpc0luRmxvd1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBpc1JlbGF0aXZl
bHlQb3NpdGlvbmVkKCkgfHwgaXNTdGlja3lQb3NpdGlvbmVkKCk7IH0KKyAgICBib29sIGlzT3V0
T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIGlzQWJzb2x1dGVseVBvc2l0aW9uZWQo
KSB8fCBpc0ZpeGVkUG9zaXRpb25lZCgpOyB9CiAgICAgYm9vbCBpc1JlbGF0aXZlbHlQb3NpdGlv
bmVkKCkgY29uc3Q7CisgICAgYm9vbCBpc1N0aWNreVBvc2l0aW9uZWQoKSBjb25zdDsKICAgICBi
b29sIGlzQWJzb2x1dGVseVBvc2l0aW9uZWQoKSBjb25zdDsKICAgICBib29sIGlzRml4ZWRQb3Np
dGlvbmVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc0Zsb2F0aW5nUG9zaXRpb25lZCgpIGNvbnN0Owog
Ci0gICAgYm9vbCBpc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkgY29uc3Q7CisgICAg
Ym9vbCBpc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gaXNG
bG9hdGluZ1Bvc2l0aW9uZWQoKSB8fCBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKTsgfQogCiAgICAg
Q29udGFpbmVyKiBjb250YWluaW5nQmxvY2soKSBjb25zdDsKICAgICBib29sIGlzRGVzY2VuZGFu
dE9mKENvbnRhaW5lciYpIGNvbnN0OwogCiAgICAgYm9vbCBpc0Fub255bW91cygpIGNvbnN0Owog
Ci0gICAgYm9vbCBpc0NvbnRhaW5lcigpIGNvbnN0OwotICAgIGJvb2wgaXNJbmxpbmVDb250YWlu
ZXIoKSBjb25zdDsKLSAgICBib29sIGlzSW5saW5lQm94KCkgY29uc3Q7Ci0gICAgYm9vbCBpc0lu
bGluZUJsb2NrQm94KCkgY29uc3Q7Ci0KICAgICBib29sIGlzQmxvY2tMZXZlbEJveCgpIGNvbnN0
OwogICAgIGJvb2wgaXNJbmxpbmVMZXZlbEJveCgpIGNvbnN0OworICAgIGJvb2wgaXNJbmxpbmVC
bG9ja0JveCgpIGNvbnN0OwogICAgIGJvb2wgaXNCbG9ja0NvbnRhaW5lckJveCgpIGNvbnN0Owor
ICAgIGJvb2wgaXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCkgY29uc3Q7CiAKLSAgICBib29sIGlz
Um9vdEJveCgpIGNvbnN0OwotICAgIENvbnRhaW5lciogcGFyZW50KCkgY29uc3Q7Ci0gICAgQm94
KiBuZXh0U2libGluZygpIGNvbnN0OworICAgIENvbnRhaW5lciogcGFyZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9wYXJlbnQuZ2V0KCk7IH0KKyAgICBCb3gqIG5leHRTaWJsaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9uZXh0U2libGluZy5nZXQoKTsgfQogICAgIEJveCogbmV4dEluRmxvd1NpYmxpbmco
KSBjb25zdDsKICAgICBCb3gqIG5leHRJbkZsb3dPckZsb2F0aW5nU2libGluZygpIGNvbnN0Owot
ICAgIEJveCogcHJldmlvdXNTaWJsaW5nKCkgY29uc3Q7CisgICAgQm94KiBwcmV2aW91c1NpYmxp
bmcoKSBjb25zdCB7IHJldHVybiBtX3ByZXZpb3VzU2libGluZy5nZXQoKTsgfQogICAgIEJveCog
cHJldmlvdXNJbkZsb3dTaWJsaW5nKCkgY29uc3Q7CiAgICAgQm94KiBwcmV2aW91c0luRmxvd09y
RmxvYXRpbmdTaWJsaW5nKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFBhcmVudChDb250YWluZXIm
KTsKICAgICB2b2lkIHNldE5leHRTaWJsaW5nKEJveCYpOwogICAgIHZvaWQgc2V0UHJldmlvdXNT
aWJsaW5nKEJveCYpOworCisgICAgYXV0byYgd2Vha1B0ckZhY3RvcnkoKSBjb25zdCB7IHJldHVy
biBtX3dlYWtGYWN0b3J5OyB9CisKK3Byb3RlY3RlZDoKKyAgICBib29sIGlzT3ZlcmZsb3dWaXNp
YmxlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2Vha1B0ckZhY3Rvcnk8Qm94PiBtX3dlYWtG
YWN0b3J5OworICAgIFdlYWtQdHI8UmVuZGVyRWxlbWVudD4gbV9yZW5kZXJlcjsKKyAgICAKKyAg
ICBXZWFrUHRyPENvbnRhaW5lcj4gbV9wYXJlbnQ7CisgICAgV2Vha1B0cjxCb3g+IG1fbmV4dFNp
Ymxpbmc7CisgICAgV2Vha1B0cjxCb3g+IG1fcHJldmlvdXNTaWJsaW5nOwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuaApp
bmRleCAyMDVhZmNjZjMzNTI0MWE3NjZhZTdlNGVmYzY3YTQxMjVmYzcwY2NmLi41ZWVmOGNkYTc4
YmJjMWQ5MjVhMjY4ODViYTFhMWUzNTQzYzYwZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuaApAQCAtMzIsMTQgKzMyLDE0IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotbmFtZXNwYWNlIExheW91dCB7CitjbGFzcyBSZW5k
ZXJFbGVtZW50OwogCi1jbGFzcyBSZW5kZXJTdHlsZTsKK25hbWVzcGFjZSBMYXlvdXQgewogCiBj
bGFzcyBDb250YWluZXIgOiBwdWJsaWMgQm94IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KENvbnRhaW5lcik7CiBwdWJsaWM6Ci0gICAgQ29udGFpbmVyKGNvbnN0IFJlbmRlclN0eWxlJik7
CisgICAgQ29udGFpbmVyKFJlbmRlckVsZW1lbnQmKTsKIAogICAgIHZvaWQgc2V0Rmlyc3RDaGls
ZChMYXlvdXQ6OkJveCYpOwogICAgIHZvaWQgc2V0TGFzdENoaWxkKExheW91dDo6Qm94Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVC
b3guaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZUJveC5o
CmluZGV4IGRjZWY5NTA2OTc2MDVjMTNhNDdhYWZjNGM5ZWQ4ZGJhNTMzNzgyYTMuLjA0YjgzODQx
NzFkMjJmYzVjZDFkYWQzYzg3OWFmMjJlZDM0OGExZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZUJveC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZUJveC5oCkBAIC0zMiwxMiArMzIsMTQg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBSZW5kZXJFbGVtZW50OworCiBuYW1l
c3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgSW5saW5lQm94IDogcHVibGljIEJveCB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChJbmxpbmVCb3gpOwogcHVibGljOgotICAgIElubGluZUJveChj
b25zdCBSZW5kZXJTdHlsZSYpOworICAgIElubGluZUJveChSZW5kZXJFbGVtZW50Jik7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJ
bmxpbmVDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dElubGluZUNvbnRhaW5lci5oCmluZGV4IGE3NDc4NjY4NTE1Y2MwN2EyNDlmMjc4Njg4NmVjNzYy
N2U1ZjUyYTMuLjUzNDkyNDQ2ZTRlOTUzZmRlNTg5ZmU0OGExZGFmOGQyOGYyZjIxMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZUNvbnRh
aW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGlu
ZUNvbnRhaW5lci5oCkBAIC0zMiwxMiArMzIsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBSZW5kZXJFbGVtZW50OworCiBuYW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgSW5s
aW5lQ29udGFpbmVyIDogcHVibGljIENvbnRhaW5lciB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9D
QVRFRChJbmxpbmVDb250YWluZXIpOwogcHVibGljOgotICAgIElubGluZUNvbnRhaW5lcihjb25z
dCBSZW5kZXJTdHlsZSYpOworICAgIElubGluZUNvbnRhaW5lcihSZW5kZXJFbGVtZW50Jik7CiB9
OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338747</attachid>
            <date>2018-04-25 10:12:56 -0700</date>
            <delta_ts>2018-04-25 10:49:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184974-20180425101256.patch</filename>
            <type>text/plain</type>
            <size>15284</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwOTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FiMDM2OWRlZjJjOTAy
OTU3Nzk0YjBlZjllYTY0YTQ0NTY2NDQ5My4uYTNmMzkzYjA1ZTBkOTQ1ZjU0OTIwNDM4NmEzYmQw
NDgwYzY4MDJkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDE4LTA0LTI1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW1wbGVtZW50IExh
eW91dDo6Qm94IGZ1bmN0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NDk3NAorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3Rv
LgorCisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0QmxvY2tDb250YWluZXIuaDoK
KyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCb3g6OkJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6
fkJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6ZXN0YWJsaXNoZXNGb3JtYXR0
aW5nQ29udGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6ZXN0YWJs
aXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Qm94Ojppc1JlbGF0aXZlbHlQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6Qm94Ojppc1N0aWNreVBvc2l0aW9uZWQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpCb3g6OmlzQWJzb2x1dGVseVBvc2l0aW9uZWQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzRml4ZWRQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc0Zsb2F0aW5nUG9zaXRpb25lZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6Y29udGFpbmluZ0Jsb2NrIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc0Rlc2NlbmRhbnRPZiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNBbm9ueW1vdXMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzSW5saW5lQmxvY2tCb3ggY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzQmxvY2tMZXZlbEJveCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNJbmxpbmVMZXZlbEJveCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNCbG9ja0NvbnRhaW5lckJveCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpuZXh0SW5GbG93U2libGluZyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6bmV4dEluRmxvd09yRmxvYXRpbmdTaWJs
aW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpwcmV2aW91c0luRmxv
d1NpYmxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnByZXZpb3Vz
SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpCb3g6OnNldFBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6c2V0TmV4
dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OnNldFByZXZpb3VzU2li
bGluZyk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNPdmVyZmxvd1Zpc2libGUg
Y29uc3QpOgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzSW5GbG93IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc1Bvc2l0aW9uZWQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzSW5GbG93UG9zaXRpb25lZCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNPdXRPZkZsb3dQb3NpdGlvbmVkIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojppc0Zsb2F0aW5nT3JPdXRPZkZs
b3dQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpwYXJl
bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6Om5leHRTaWJsaW5nIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94OjpwcmV2aW91c1NpYmxpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OndlYWtQdHJGYWN0b3J5IGNvbnN0
KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRDb250YWluZXIuaDoKKyAgICAg
ICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVCb3guaDoKKyAgICAgICAgKiBsYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVDb250YWluZXIuaDoKKwogMjAxOC0wNC0yNSAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBwcm9qZWN0IGZpbGUg
YWZ0ZXIgcjIzMDkzMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dEJsb2NrQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5oCmluZGV4IDU5YjM2ZDUxYWM4NTk4ZDZhMWVlMTgy
ZjE3NTAzYmI0NzY3MmM4NDkuLjQzZTlmYWU5Y2JjYjc3N2YxZWY0YjNjMDg4ZjEzN2YzYzBiZjlh
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJs
b2NrQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0QmxvY2tDb250YWluZXIuaApAQCAtMzIsMTIgKzMyLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgUmVuZGVyU3R5bGU7CisKIG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFz
cyBCbG9ja0NvbnRhaW5lciA6IHB1YmxpYyBDb250YWluZXIgewogICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoQmxvY2tDb250YWluZXIpOwogcHVibGljOgotICAgIEJsb2NrQ29udGFpbmVyKGNv
bnN0IFJlbmRlclN0eWxlJik7CisgICAgQmxvY2tDb250YWluZXIoUmVuZGVyU3R5bGUmJik7CiAK
ICAgICBib29sIGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCBmaW5h
bDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNw
cAppbmRleCBkNjUwYWZkZGYwZDQ2NTZjMDE3MDIwMGU2M2I4ZDUxZTc5ZTMwZmJmLi43NjYzNjc1
ZGVjNzkxMTcxMDVmOTE4NTIzYTE5NzQ0ZWMzZjNkNzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAKQEAgLTI1LDMgKzI1LDE5MSBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCisKKyNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisj
aW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
bmFtZXNwYWNlIExheW91dCB7CisKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCb3gpOwor
CitCb3g6OkJveChSZW5kZXJTdHlsZSYmIHN0eWxlKQorICAgIDogbV9zdHlsZShXVEZNb3ZlKHN0
eWxlKSkKK3sKK30KKworQm94Ojp+Qm94KCkKK3sKK30KKworYm9vbCBCb3g6OmVzdGFibGlzaGVz
Rm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBlc3RhYmxpc2hlc0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQoKSB8fCBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0
KCk7Cit9CisKK2Jvb2wgQm94Ojplc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSBj
b25zdAoreworICAgIC8vIEluaXRpYWwgQ29udGFpbmluZyBCbG9jayBhbHdheXMgY3JlYXRlcyBh
IG5ldyAoaW5pdGFsKSBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQuCisgICAgaWYgKCFwYXJlbnQo
KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgLy8gOS40LjEgQmxvY2sgZm9ybWF0dGluZyBj
b250ZXh0cworICAgIC8vIEZsb2F0cywgYWJzb2x1dGVseSBwb3NpdGlvbmVkIGVsZW1lbnRzLCBi
bG9jayBjb250YWluZXJzIChzdWNoIGFzIGlubGluZS1ibG9ja3MsIHRhYmxlLWNlbGxzLCBhbmQg
dGFibGUtY2FwdGlvbnMpCisgICAgLy8gdGhhdCBhcmUgbm90IGJsb2NrIGJveGVzLCBhbmQgYmxv
Y2sgYm94ZXMgd2l0aCAnb3ZlcmZsb3cnIG90aGVyIHRoYW4gJ3Zpc2libGUnIChleGNlcHQgd2hl
biB0aGF0IHZhbHVlIGhhcyBiZWVuIHByb3BhZ2F0ZWQgdG8gdGhlIHZpZXdwb3J0KQorICAgIC8v
IGVzdGFibGlzaCBuZXcgYmxvY2sgZm9ybWF0dGluZyBjb250ZXh0cyBmb3IgdGhlaXIgY29udGVu
dHMuCisgICAgaWYgKGlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgfHwgaXNBYnNvbHV0ZWx5UG9zaXRp
b25lZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoaXNCbG9ja0NvbnRhaW5lckJv
eCgpICYmICFpc0Jsb2NrTGV2ZWxCb3goKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYg
KGlzQmxvY2tMZXZlbEJveCgpICYmICFpc092ZXJmbG93VmlzaWJsZSgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQm94Ojppc1JlbGF0aXZlbHlQ
b3NpdGlvbmVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdHlsZS5wb3NpdGlvbigpID09IFJl
bGF0aXZlUG9zaXRpb247Cit9CisKK2Jvb2wgQm94Ojppc1N0aWNreVBvc2l0aW9uZWQoKSBjb25z
dAoreworICAgIHJldHVybiBtX3N0eWxlLnBvc2l0aW9uKCkgPT0gU3RpY2t5UG9zaXRpb247Cit9
CisKK2Jvb2wgQm94Ojppc0Fic29sdXRlbHlQb3NpdGlvbmVkKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9zdHlsZS5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb247Cit9CisKK2Jvb2wgQm94
Ojppc0ZpeGVkUG9zaXRpb25lZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3R5bGUucG9zaXRp
b24oKSA9PSBGaXhlZFBvc2l0aW9uOworfQorCitib29sIEJveDo6aXNGbG9hdGluZ1Bvc2l0aW9u
ZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3N0eWxlLmZsb2F0aW5nKCkgIT0gTm9GbG9hdDsK
K30KKworY29uc3QgQ29udGFpbmVyKiBCb3g6OmNvbnRhaW5pbmdCbG9jaygpIGNvbnN0Cit7Cisg
ICAgLy8gVGhlIGNvbnRhaW5pbmcgYmxvY2sgaW4gd2hpY2ggdGhlIHJvb3QgZWxlbWVudCBsaXZl
cyBpcyBhIHJlY3RhbmdsZSBjYWxsZWQgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jay4KKyAg
ICAvLyBGb3Igb3RoZXIgZWxlbWVudHMsIGlmIHRoZSBlbGVtZW50J3MgcG9zaXRpb24gaXMgJ3Jl
bGF0aXZlJyBvciAnc3RhdGljJywgdGhlIGNvbnRhaW5pbmcgYmxvY2sgaXMgZm9ybWVkIGJ5IHRo
ZQorICAgIC8vIGNvbnRlbnQgZWRnZSBvZiB0aGUgbmVhcmVzdCBibG9jayBjb250YWluZXIgYW5j
ZXN0b3IgYm94LgorICAgIC8vIElmIHRoZSBlbGVtZW50IGhhcyAncG9zaXRpb246IGZpeGVkJywg
dGhlIGNvbnRhaW5pbmcgYmxvY2sgaXMgZXN0YWJsaXNoZWQgYnkgdGhlIHZpZXdwb3J0CisgICAg
Ly8gSWYgdGhlIGVsZW1lbnQgaGFzICdwb3NpdGlvbjogYWJzb2x1dGUnLCB0aGUgY29udGFpbmlu
ZyBibG9jayBpcyBlc3RhYmxpc2hlZCBieSB0aGUgbmVhcmVzdCBhbmNlc3RvciB3aXRoIGEKKyAg
ICAvLyAncG9zaXRpb24nIG9mICdhYnNvbHV0ZScsICdyZWxhdGl2ZScgb3IgJ2ZpeGVkJy4KKyAg
ICBpZiAoIXBhcmVudCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghaXNQ
b3NpdGlvbmVkKCkgfHwgaXNJbkZsb3dQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgYXV0byogbmVh
cmVzdEJsb2NrQ29udGFpbmVyID0gcGFyZW50KCk7CisgICAgICAgIGZvciAoOyBuZWFyZXN0Qmxv
Y2tDb250YWluZXItPnBhcmVudCgpICYmICFuZWFyZXN0QmxvY2tDb250YWluZXItPmlzQmxvY2tD
b250YWluZXJCb3goKTsgbmVhcmVzdEJsb2NrQ29udGFpbmVyID0gbmVhcmVzdEJsb2NrQ29udGFp
bmVyLT5wYXJlbnQoKSkgeyB9CisgICAgICAgIHJldHVybiBuZWFyZXN0QmxvY2tDb250YWluZXI7
CisgICAgfQorCisgICAgaWYgKGlzRml4ZWRQb3NpdGlvbmVkKCkpIHsKKyAgICAgICAgYXV0byog
aW5pdGlhbENvbnRhaW5pbmdCbG9jayA9IHBhcmVudCgpOworICAgICAgICBmb3IgKDsgaW5pdGlh
bENvbnRhaW5pbmdCbG9jay0+cGFyZW50KCk7IGluaXRpYWxDb250YWluaW5nQmxvY2sgPSBpbml0
aWFsQ29udGFpbmluZ0Jsb2NrLT5wYXJlbnQoKSkgeyB9CisgICAgICAgIHJldHVybiBpbml0aWFs
Q29udGFpbmluZ0Jsb2NrOworICAgIH0KKworICAgIGlmIChpc091dE9mRmxvd1Bvc2l0aW9uZWQo
KSkgeworICAgICAgICBhdXRvKiBwb3NpdGlvbmVkQW5jZXN0b3IgPSBwYXJlbnQoKTsKKyAgICAg
ICAgZm9yICg7IHBvc2l0aW9uZWRBbmNlc3Rvci0+cGFyZW50KCkgJiYgIXBvc2l0aW9uZWRBbmNl
c3Rvci0+aXNQb3NpdGlvbmVkKCk7IHBvc2l0aW9uZWRBbmNlc3RvciA9IHBvc2l0aW9uZWRBbmNl
c3Rvci0+cGFyZW50KCkpIHsgfQorICAgICAgICByZXR1cm4gcG9zaXRpb25lZEFuY2VzdG9yOwor
ICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitib29sIEJveDo6aXNEZXNjZW5kYW50T2YoQ29udGFpbmVyJiBjb250YWluZXIpIGNvbnN0
Cit7CisgICAgYXV0byogYW5jZXN0b3IgPSBwYXJlbnQoKTsKKyAgICBmb3IgKDsgYW5jZXN0b3Ig
JiYgYW5jZXN0b3IgIT0gJmNvbnRhaW5lcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkp
IHsgfQorICAgIHJldHVybiBhbmNlc3RvcjsKK30KKworYm9vbCBCb3g6OmlzSW5saW5lQmxvY2tC
b3goKSBjb25zdAoreworICAgIHJldHVybiBtX3N0eWxlLmRpc3BsYXkoKSA9PSBJTkxJTkVfQkxP
Q0s7Cit9CisKK2Jvb2wgQm94Ojppc0Jsb2NrTGV2ZWxCb3goKSBjb25zdAoreworICAgIC8vIEJs
b2NrIGxldmVsIGVsZW1lbnRzIGdlbmVyYXRlIGJsb2NrIGxldmVsIGJveGVzLgorICAgIGF1dG8g
ZGlzcGxheSA9IG1fc3R5bGUuZGlzcGxheSgpOworICAgIHJldHVybiBkaXNwbGF5ID09IEJMT0NL
IHx8IGRpc3BsYXkgPT0gTElTVF9JVEVNIHx8IGRpc3BsYXkgPT0gVEFCTEU7Cit9CisKK2Jvb2wg
Qm94Ojppc0lubGluZUxldmVsQm94KCkgY29uc3QKK3sKKyAgICAvLyBJbmxpbmUgbGV2ZWwgZWxl
bWVudHMgZ2VuZXJhdGUgaW5saW5lIGxldmVsIGJveGVzLgorICAgIGF1dG8gZGlzcGxheSA9IG1f
c3R5bGUuZGlzcGxheSgpOworICAgIHJldHVybiBkaXNwbGF5ID09IElOTElORSB8fCBkaXNwbGF5
ID09IElOTElORV9CTE9DSyB8fCBkaXNwbGF5ID09IElOTElORV9UQUJMRTsKK30KKworYm9vbCBC
b3g6OmlzQmxvY2tDb250YWluZXJCb3goKSBjb25zdAoreworICAgIC8vIElubGluZSBsZXZlbCBl
bGVtZW50cyBnZW5lcmF0ZSBpbmxpbmUgbGV2ZWwgYm94ZXMuCisgICAgYXV0byBkaXNwbGF5ID0g
bV9zdHlsZS5kaXNwbGF5KCk7CisgICAgcmV0dXJuIGRpc3BsYXkgPT0gQkxPQ0sgfHwgZGlzcGxh
eSA9PSBMSVNUX0lURU0gfHwgZGlzcGxheSA9PSBJTkxJTkVfQkxPQ0sgfHwgZGlzcGxheSA9PSBU
QUJMRV9DRUxMIHx8IGRpc3BsYXkgPT0gVEFCTEVfQ0FQVElPTjsgLy8gVE9ETyAmJiAhcmVwbGFj
ZWQgZWxlbWVudAorfQorCitib29sIEJveDo6aXNJbml0aWFsQ29udGFpbmluZ0Jsb2NrKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIXBhcmVudCgpOworfQorCitjb25zdCBCb3gqIEJveDo6bmV4dElu
Rmxvd1NpYmxpbmcoKSBjb25zdAoreworICAgIGlmIChhdXRvKiBuZXh0U2libGluZyA9IHRoaXMt
Pm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKG5leHRTaWJsaW5nLT5pc0luRmxvdygpKQor
ICAgICAgICAgICAgcmV0dXJuIG5leHRTaWJsaW5nOworICAgICAgICByZXR1cm4gbmV4dFNpYmxp
bmctPm5leHRJbkZsb3dTaWJsaW5nKCk7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQor
Citjb25zdCBCb3gqIEJveDo6bmV4dEluRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkgY29uc3QKK3sK
KyAgICBpZiAoYXV0byogbmV4dFNpYmxpbmcgPSB0aGlzLT5uZXh0U2libGluZygpKSB7CisgICAg
ICAgIGlmIChuZXh0U2libGluZy0+aXNJbkZsb3coKSB8fCBuZXh0U2libGluZy0+aXNGbG9hdGlu
Z1Bvc2l0aW9uZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBuZXh0U2libGluZzsKKyAgICAgICAg
cmV0dXJuIG5leHRTaWJsaW5nLT5uZXh0SW5GbG93U2libGluZygpOworICAgIH0KKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworY29uc3QgQm94KiBCb3g6OnByZXZpb3VzSW5GbG93U2libGluZygp
IGNvbnN0Cit7CisgICAgaWYgKGF1dG8qIHByZXZpb3VzU2libGluZyA9IHRoaXMtPnByZXZpb3Vz
U2libGluZygpKSB7CisgICAgICAgIGlmIChwcmV2aW91c1NpYmxpbmctPmlzSW5GbG93KCkpCisg
ICAgICAgICAgICByZXR1cm4gcHJldmlvdXNTaWJsaW5nOworICAgICAgICByZXR1cm4gcHJldmlv
dXNTaWJsaW5nLT5wcmV2aW91c0luRmxvd1NpYmxpbmcoKTsKKyAgICB9CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK2NvbnN0IEJveCogQm94OjpwcmV2aW91c0luRmxvd09yRmxvYXRpbmdTaWJs
aW5nKCkgY29uc3QKK3sKKyAgICBpZiAoYXV0byogcHJldmlvdXNTaWJsaW5nID0gdGhpcy0+cHJl
dmlvdXNTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKHByZXZpb3VzU2libGluZy0+aXNJbkZsb3co
KSB8fCBwcmV2aW91c1NpYmxpbmctPmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpCisgICAgICAgICAg
ICByZXR1cm4gcHJldmlvdXNTaWJsaW5nOworICAgICAgICByZXR1cm4gcHJldmlvdXNTaWJsaW5n
LT5wcmV2aW91c0luRmxvd09yRmxvYXRpbmdTaWJsaW5nKCk7CisgICAgfQorICAgIHJldHVybiBu
dWxscHRyOworfQorCitib29sIEJveDo6aXNPdmVyZmxvd1Zpc2libGUoKSBjb25zdAoreworICAg
IHJldHVybiBtX3N0eWxlLm92ZXJmbG93WCgpID09IE9WSVNJQkxFIHx8IG1fc3R5bGUub3ZlcmZs
b3dZKCkgPT0gT1ZJU0lCTEU7Cit9CisKK30KK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oCmluZGV4IDJkYzM5MmYzNWJjNWQwMTI4MjQx
ZjFiZDVlNTJhMTI0NmFlNzgxM2QuLjIzMjRmYzhjZjg5ZGVhNjkyYzFhN2I1NjBmNzlhZTdhYTE3
NjRhYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5o
CkBAIC0yNyw2MSArMjcsNzkgQEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05U
RVhUKQogCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBu
YW1lc3BhY2UgTGF5b3V0IHsKIAogY2xhc3MgQ29udGFpbmVyOwotY2xhc3MgUmVuZGVyU3R5bGU7
CitjbGFzcyBUcmVlQnVpbGRlcjsKIAogY2xhc3MgQm94IHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKEJveCk7CiBwdWJsaWM6Ci0gICAgQm94KGNvbnN0IFJlbmRlclN0eWxlJik7CisgICAg
ZnJpZW5kIGNsYXNzIFRyZWVCdWlsZGVyOworCisgICAgQm94KFJlbmRlclN0eWxlJiYpOwogICAg
IHZpcnR1YWwgfkJveCgpOwogCiAgICAgYm9vbCBlc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGVzdGFibGlzaGVzQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRp
bmdDb250ZXh0KCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGVzdGFibGlzaGVzSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgYm9vbCBpc1Bv
c2l0aW9uZWQoKSBjb25zdDsKLSAgICBib29sIGlzSW5GbG93UG9zaXRpb25lZCgpIGNvbnN0Owot
ICAgIGJvb2wgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0luRmxv
dygpIGNvbnN0IHsgcmV0dXJuICFpc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCk7IH0K
KyAgICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIGlzSW5GbG93UG9zaXRpb25l
ZCgpIHx8IGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpOyB9CisgICAgYm9vbCBpc0luRmxvd1Bvc2l0
aW9uZWQoKSBjb25zdCB7IHJldHVybiBpc1JlbGF0aXZlbHlQb3NpdGlvbmVkKCkgfHwgaXNTdGlj
a3lQb3NpdGlvbmVkKCk7IH0KKyAgICBib29sIGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0
IHsgcmV0dXJuIGlzQWJzb2x1dGVseVBvc2l0aW9uZWQoKSB8fCBpc0ZpeGVkUG9zaXRpb25lZCgp
OyB9CiAgICAgYm9vbCBpc1JlbGF0aXZlbHlQb3NpdGlvbmVkKCkgY29uc3Q7CisgICAgYm9vbCBp
c1N0aWNreVBvc2l0aW9uZWQoKSBjb25zdDsKICAgICBib29sIGlzQWJzb2x1dGVseVBvc2l0aW9u
ZWQoKSBjb25zdDsKICAgICBib29sIGlzRml4ZWRQb3NpdGlvbmVkKCkgY29uc3Q7CiAgICAgYm9v
bCBpc0Zsb2F0aW5nUG9zaXRpb25lZCgpIGNvbnN0OwogCi0gICAgYm9vbCBpc0Zsb2F0aW5nT3JP
dXRPZkZsb3dQb3NpdGlvbmVkKCkgY29uc3Q7CisgICAgYm9vbCBpc0Zsb2F0aW5nT3JPdXRPZkZs
b3dQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSB8fCBp
c091dE9mRmxvd1Bvc2l0aW9uZWQoKTsgfQogCi0gICAgQ29udGFpbmVyKiBjb250YWluaW5nQmxv
Y2soKSBjb25zdDsKKyAgICBjb25zdCBDb250YWluZXIqIGNvbnRhaW5pbmdCbG9jaygpIGNvbnN0
OwogICAgIGJvb2wgaXNEZXNjZW5kYW50T2YoQ29udGFpbmVyJikgY29uc3Q7CiAKLSAgICBib29s
IGlzQW5vbnltb3VzKCkgY29uc3Q7Ci0KLSAgICBib29sIGlzQ29udGFpbmVyKCkgY29uc3Q7Ci0g
ICAgYm9vbCBpc0lubGluZUNvbnRhaW5lcigpIGNvbnN0OwotICAgIGJvb2wgaXNJbmxpbmVCb3go
KSBjb25zdDsKLSAgICBib29sIGlzSW5saW5lQmxvY2tCb3goKSBjb25zdDsKKyAgICBib29sIGlz
QW5vbnltb3VzKCkgY29uc3QgeyByZXR1cm4gbV9pc0Fub255bW91czsgfQogCiAgICAgYm9vbCBp
c0Jsb2NrTGV2ZWxCb3goKSBjb25zdDsKICAgICBib29sIGlzSW5saW5lTGV2ZWxCb3goKSBjb25z
dDsKKyAgICBib29sIGlzSW5saW5lQmxvY2tCb3goKSBjb25zdDsKICAgICBib29sIGlzQmxvY2tD
b250YWluZXJCb3goKSBjb25zdDsKKyAgICBib29sIGlzSW5pdGlhbENvbnRhaW5pbmdCbG9jaygp
IGNvbnN0OworCisgICAgY29uc3QgQ29udGFpbmVyKiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBt
X3BhcmVudDsgfQorICAgIGNvbnN0IEJveCogbmV4dFNpYmxpbmcoKSBjb25zdCB7IHJldHVybiBt
X25leHRTaWJsaW5nOyB9CisgICAgY29uc3QgQm94KiBuZXh0SW5GbG93U2libGluZygpIGNvbnN0
OworICAgIGNvbnN0IEJveCogbmV4dEluRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkgY29uc3Q7Cisg
ICAgY29uc3QgQm94KiBwcmV2aW91c1NpYmxpbmcoKSBjb25zdCB7IHJldHVybiBtX3ByZXZpb3Vz
U2libGluZzsgfQorICAgIGNvbnN0IEJveCogcHJldmlvdXNJbkZsb3dTaWJsaW5nKCkgY29uc3Q7
CisgICAgY29uc3QgQm94KiBwcmV2aW91c0luRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkgY29uc3Q7
CisKKyAgICBhdXRvJiB3ZWFrUHRyRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vha0ZhY3Rv
cnk7IH0KKworcHJvdGVjdGVkOgorICAgIGJvb2wgaXNPdmVyZmxvd1Zpc2libGUoKSBjb25zdDsK
KworcHJpdmF0ZToKKyAgICB2b2lkIHNldFBhcmVudChDb250YWluZXImIHBhcmVudCkgeyBtX3Bh
cmVudCA9ICZwYXJlbnQ7IH0KKyAgICB2b2lkIHNldE5leHRTaWJsaW5nKEJveCYgbmV4dFNpYmxp
bmcpIHsgbV9uZXh0U2libGluZyA9ICZuZXh0U2libGluZzsgfQorICAgIHZvaWQgc2V0UHJldmlv
dXNTaWJsaW5nKEJveCYgcHJldmlvdXNTaWJsaW5nKSB7IG1fcHJldmlvdXNTaWJsaW5nID0gJnBy
ZXZpb3VzU2libGluZzsgfQorICAgIHZvaWQgc2V0SXNBbm9ueW1vdXMoKSB7IG1faXNBbm9ueW1v
dXMgPSB0cnVlOyB9CisKKyAgICBXZWFrUHRyRmFjdG9yeTxCb3g+IG1fd2Vha0ZhY3Rvcnk7Cisg
ICAgUmVuZGVyU3R5bGUgbV9zdHlsZTsKKworICAgIENvbnRhaW5lciogbV9wYXJlbnQgeyBudWxs
cHRyIH07CisgICAgQm94KiBtX3ByZXZpb3VzU2libGluZyB7IG51bGxwdHIgfTsKKyAgICBCb3gq
IG1fbmV4dFNpYmxpbmcgeyBudWxscHRyIH07CiAKLSAgICBib29sIGlzUm9vdEJveCgpIGNvbnN0
OwotICAgIENvbnRhaW5lciogcGFyZW50KCkgY29uc3Q7Ci0gICAgQm94KiBuZXh0U2libGluZygp
IGNvbnN0OwotICAgIEJveCogbmV4dEluRmxvd1NpYmxpbmcoKSBjb25zdDsKLSAgICBCb3gqIG5l
eHRJbkZsb3dPckZsb2F0aW5nU2libGluZygpIGNvbnN0OwotICAgIEJveCogcHJldmlvdXNTaWJs
aW5nKCkgY29uc3Q7Ci0gICAgQm94KiBwcmV2aW91c0luRmxvd1NpYmxpbmcoKSBjb25zdDsKLSAg
ICBCb3gqIHByZXZpb3VzSW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSBjb25zdDsKLQotICAgIHZv
aWQgc2V0UGFyZW50KENvbnRhaW5lciYpOwotICAgIHZvaWQgc2V0TmV4dFNpYmxpbmcoQm94Jik7
Ci0gICAgdm9pZCBzZXRQcmV2aW91c1NpYmxpbmcoQm94Jik7CisgICAgYm9vbCBtX2lzQW5vbnlt
b3VzIHsgZmFsc2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dENvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmgKaW5kZXggMjA1YWZjY2YzMzUyNDFhNzY2YWU3ZTRl
ZmM2N2E0MTI1ZmM3MGNjZi4uNzFmMTFlYTFkYTQ5MTI5ZDhkOWU4NWE3NWYxODM2ZmY1NjhkOGY3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29u
dGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29u
dGFpbmVyLmgKQEAgLTMyLDE0ICszMiwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLW5h
bWVzcGFjZSBMYXlvdXQgewotCiBjbGFzcyBSZW5kZXJTdHlsZTsKIAorbmFtZXNwYWNlIExheW91
dCB7CisKIGNsYXNzIENvbnRhaW5lciA6IHB1YmxpYyBCb3ggewogICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoQ29udGFpbmVyKTsKIHB1YmxpYzoKLSAgICBDb250YWluZXIoY29uc3QgUmVuZGVy
U3R5bGUmKTsKKyAgICBDb250YWluZXIoUmVuZGVyU3R5bGUmJik7CiAKICAgICB2b2lkIHNldEZp
cnN0Q2hpbGQoTGF5b3V0OjpCb3gmKTsKICAgICB2b2lkIHNldExhc3RDaGlsZChMYXlvdXQ6OkJv
eCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
SW5saW5lQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxp
bmVCb3guaAppbmRleCBkY2VmOTUwNjk3NjA1YzEzYTQ3YWFmYzRjOWVkOGRiYTUzMzc4MmEzLi44
ODhkY2ZhODBjY2VlZTU2ZmU1NWI2ZjRiNTRmOGI5NDA2MTE1NWQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVCb3guaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVCb3guaApAQCAtMzIsMTIg
KzMyLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUmVuZGVyU3R5bGU7CisK
IG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFzcyBJbmxpbmVCb3ggOiBwdWJsaWMgQm94IHsKICAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKElubGluZUJveCk7CiBwdWJsaWM6Ci0gICAgSW5saW5l
Qm94KGNvbnN0IFJlbmRlclN0eWxlJik7CisgICAgSW5saW5lQm94KFJlbmRlclN0eWxlJiYpOwog
fTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5
b3V0SW5saW5lQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRJbmxpbmVDb250YWluZXIuaAppbmRleCBhNzQ3ODY2ODUxNWNjMDdhMjQ5ZjI3ODY4ODZl
Yzc2MjdlNWY1MmEzLi5lMGFiMDUyMDIwYjY0NWQzMjAwMTQ2OGIyZjE5M2UyYTU0MDI3MzZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVD
b250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJ
bmxpbmVDb250YWluZXIuaApAQCAtMzIsMTIgKzMyLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgUmVuZGVyU3R5bGU7CisKIG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFzcyBJ
bmxpbmVDb250YWluZXIgOiBwdWJsaWMgQ29udGFpbmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKElubGluZUNvbnRhaW5lcik7CiBwdWJsaWM6Ci0gICAgSW5saW5lQ29udGFpbmVyKGNv
bnN0IFJlbmRlclN0eWxlJik7CisgICAgSW5saW5lQ29udGFpbmVyKFJlbmRlclN0eWxlJiYpOwog
fTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>