<?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>179206</bug_id>
          
          <creation_ts>2017-11-02 15:50:37 -0700</creation_ts>
          <short_desc>RenderObject::*positioned() naming cleanup</short_desc>
          <delta_ts>2017-11-03 09:59:36 -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>darin</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>1367597</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-11-02 15:50:37 -0700</bug_when>
    <thetext>+isFixedPositioned()
+isAbsolutePositioned()
isRelPositioned() -&gt; isRelativePositioned()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367598</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-02 15:51:03 -0700</bug_when>
    <thetext>&lt;rdar://problem/35325254&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367604</commentid>
    <comment_count>2</comment_count>
      <attachid>325788</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-11-02 15:55:14 -0700</bug_when>
    <thetext>Created attachment 325788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367911</commentid>
    <comment_count>3</comment_count>
      <attachid>325788</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-11-03 07:42:30 -0700</bug_when>
    <thetext>Comment on attachment 325788
Patch

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

&gt; Source/WebCore/rendering/RenderObject.h:421
&gt; +    bool isAbsolutePositioned() const { return isOutOfFlowPositioned() &amp;&amp; style().position() == AbsolutePosition; }

The CSS specification calls this &quot;is absolutely positioned&quot;, not &quot;is absolute positioned&quot;, and I think the former is better grammar.

&gt; Source/WebCore/rendering/RenderObject.h:422
&gt; +    bool isRelativePositioned() const { return m_bitfields.isRelativePositioned(); }

The CSS specification calls this &quot;is relatively positioned&quot;, as opposed to &quot;is relative positioned&quot;, and I think the former is better grammar.

&gt; Source/WebCore/rendering/RenderObject.h:423
&gt;      bool isStickyPositioned() const { return m_bitfields.isStickyPositioned(); }

The CSS specification calls this &quot;is stickily positioned&quot;, as opposed to &quot;is sticky positioned&quot;, and I think the former is better grammar.

&gt; Source/WebCore/rendering/RenderObject.h:859
&gt; -            IsStaticallyPositioned = 0,
&gt; -            IsRelativelyPositioned = 1,
&gt; +            IsStaticPositioned = 0,
&gt; +            IsRelativePositioned = 1,

I think the old names here are better than the new ones, grammatically speaking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367970</commentid>
    <comment_count>4</comment_count>
      <attachid>325906</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-11-03 09:38:47 -0700</bug_when>
    <thetext>Created attachment 325906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367982</commentid>
    <comment_count>5</comment_count>
      <attachid>325906</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-11-03 09:56:07 -0700</bug_when>
    <thetext>Comment on attachment 325906
Patch

isFixedPositioned vs isStickilyPositioned etc read awkwardly. Maybe it should be isPositionFixed(), isPositionRelative()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367984</commentid>
    <comment_count>6</comment_count>
      <attachid>325906</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-03 09:59:34 -0700</bug_when>
    <thetext>Comment on attachment 325906
Patch

Clearing flags on attachment: 325906

Committed r224404: &lt;https://trac.webkit.org/changeset/224404&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1367985</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-03 09:59:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325788</attachid>
            <date>2017-11-02 15:55:14 -0700</date>
            <delta_ts>2017-11-03 09:38:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179206-20171102155514.patch</filename>
            <type>text/plain</type>
            <size>30122</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZkNmUwMjg3MmU1MjNm
NjRiZmUxN2JhOWY3NjNkZTkwMDQ1N2ExNS4uMGU5NDdlZmZkMzZjYzhhMTU5NTQ4OGNjYTBjMjEx
YjUwZGJjYmFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDE3LTExLTAyICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyT2JqZWN0OjoqcG9z
aXRpb25lZCgpIG5hbWluZyBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzkyMDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MzI1MjU0
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICtpc0Zp
eGVkUG9zaXRpb25lZCgpCisgICAgICAgICtpc0Fic29sdXRlUG9zaXRpb25lZCgpCisgICAgICAg
IGlzUmVsUG9zaXRpb25lZCgpIC0+IGlzUmVsYXRpdmVQb3NpdGlvbmVkKCkKKworICAgICAgICBD
b3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwb3NpdGlvbk9mZnNldFZhbHVl
KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsYXlvdXRP
dmVyZmxvd1JlY3RDb250YWluc0FsbERlc2NlbmRhbnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
TGF5b3V0U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0
YXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnJl
bmRlck5hbWUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpmaXhlZEVsZW1lbnRMYXlzT3V0UmVsYXRpdmVUb0Zy
YW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Zm9yZWdyb3VuZElzS25v
d25Ub0JlT3BhcXVlSW5SZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
bWFwTG9jYWxUb0NvbnRhaW5lciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OnB1c2hNYXBwaW5nVG9Db250YWluZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2ludCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94Ojpjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JQb3NpdGlvbmVkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29udGFpbmluZ0Jsb2NrTG9naWNhbEhl
aWdodEZvclBvc2l0aW9uZWQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6
YWRqdXN0ZWRQb3NpdGlvblJlbGF0aXZlVG9PZmZzZXRQYXJlbnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6Om9mZnNldEZvckluRmxvd1Bvc2l0aW9uIGNv
bnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6cmVuZGVy
TmFtZSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZyYWdtZW50ZWRGbG93OjphZGp1c3RlZFBvc2l0
aW9uUmVsYXRpdmVUb09mZnNldFBhcmVudCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckdlb21ldHJ5TWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNhbk1hcEJldHdlZW5SZW5k
ZXJlcnNWaWFMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlbmRlck5hbWUgY29uc3QpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5s
aW5lOjpyZW5kZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyBjb25zdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbXBvc2l0ZWRCb3VuZHMpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVCYWNraW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0ZUV4dGVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYXNvbnNGb3JDb21wb3NpdGluZyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzVmlld3BvcnRD
b25zdHJhaW5lZEZpeGVkT3JTdGlja3lMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbENvb3JkaW5hdGVkTGF5ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWdpc3RlckFsbFZpZXdwb3J0
Q29uc3RyYWluZWRMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpjb250YWluaW5nQmxvY2sgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpvdXRwdXRSZW5kZXJPYmplY3QgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpvZmZzZXRQYXJlbnQgY29uc3Qp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6aXNQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck9iamVjdDo6aXNJbkZsb3dQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6aXNGaXhlZFBvc2l0aW9uZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0Ojppc0Fic29sdXRlUG9zaXRpb25lZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUmVsYXRpdmVQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNTdGlja3lQb3NpdGlvbmVkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVuZGVyT2JqZWN0Qml0ZmllbGRzOjpSZW5k
ZXJPYmplY3RCaXRmaWVsZHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpSZW5k
ZXJPYmplY3RCaXRmaWVsZHM6OmlzUmVsYXRpdmVQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVuZGVyT2JqZWN0Qml0ZmllbGRzOjppc1Bvc2l0aW9u
ZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1JlbFBvc2l0aW9u
ZWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpSZW5k
ZXJPYmplY3RCaXRmaWVsZHM6OmlzUmVsUG9zaXRpb25lZCBjb25zdCk6IERlbGV0ZWQuCisKIDIw
MTctMTEtMDIgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlv
dXRTdGF0ZTo6bV9uZXh0IGlzIHJlYWxseSB0aGUgYW5jZXN0b3Igc3RhdGUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDM5
MmRmMzQyZWU2M2U3ZjU1NDJhYTAwNDYzNjAxZjQ4YmFmOTUxZDMuLmY5MGQ2YWJkYTJmZDhhODcz
ODYwYTdlMjExMjA1NzNmYTNlN2EzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC03NzksNyArNzc5LDcgQEAgc3RhdGlj
IFJlZlB0cjxDU1NWYWx1ZT4gcG9zaXRpb25PZmZzZXRWYWx1ZShjb25zdCBSZW5kZXJTdHlsZSYg
c3R5bGUsIENTU1Byb3BlcnQKICAgICAvLyBXZSBzaG91bGQgcmV0dXJuIHRoZSAidXNlZCB2YWx1
ZSIuCiAgICAgYXV0byYgYm94ID0gZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpOwogICAg
IGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9IGJveC5jb250YWluaW5nQmxvY2soKTsKLSAgICBpZiAo
Ym94LmlzUmVsUG9zaXRpb25lZCgpIHx8ICFjb250YWluaW5nQmxvY2spCisgICAgaWYgKGJveC5p
c1JlbGF0aXZlUG9zaXRpb25lZCgpIHx8ICFjb250YWluaW5nQmxvY2spCiAgICAgICAgIHJldHVy
biB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKGdldE9mZnNldFVzZWRTdHlsZVJlbGF0aXZlKGJveCwg
cHJvcGVydHlJRCksIHN0eWxlKTsKICAgICBpZiAocmVuZGVyZXItPmlzT3V0T2ZGbG93UG9zaXRp
b25lZCgpKQogICAgICAgICByZXR1cm4gem9vbUFkanVzdGVkUGl4ZWxWYWx1ZShnZXRPZmZzZXRV
c2VkU3R5bGVPdXRPZkZsb3dQb3NpdGlvbmVkKCpjb250YWluaW5nQmxvY2ssIGJveCwgcHJvcGVy
dHlJRCksIHN0eWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA0OGQ0OWNjNzZkMDZlZmQz
ODViYzEyNGM0MWZhZDFmZmYzOGVkMzE4Li4zZmNhZmUwMDk3Y2ZiMzdlY2QxMjQ2YzA0NTYxYmM3
YmQ5OTI1MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMDM1LDcgKzEwMzUsNyBAQCBz
dGF0aWMgYm9vbCBsYXlvdXRPdmVyZmxvd1JlY3RDb250YWluc0FsbERlc2NlbmRhbnRzKGNvbnN0
IFJlbmRlckJveCYgcmVuZGVyQm94KQogICAgICAgICBmb3IgKGF1dG8qIHBvc2l0aW9uZWRCb3gg
OiAqdmlld1Bvc2l0aW9uZWRPYmplY3RzKSB7CiAgICAgICAgICAgICBpZiAocG9zaXRpb25lZEJv
eCA9PSAmcmVuZGVyQm94KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
aWYgKHBvc2l0aW9uZWRCb3gtPnN0eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uICYm
IHJlbmRlckJveC5lbGVtZW50KCktPmNvbnRhaW5zKHBvc2l0aW9uZWRCb3gtPmVsZW1lbnQoKSkp
CisgICAgICAgICAgICBpZiAocG9zaXRpb25lZEJveC0+aXNGaXhlZFBvc2l0aW9uZWQoKSAmJiBy
ZW5kZXJCb3guZWxlbWVudCgpLT5jb250YWlucyhwb3NpdGlvbmVkQm94LT5lbGVtZW50KCkpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCmluZGV4IDk3OGRlNWM0N2Y1ZDIzZWE3ZDlh
M2IyNmI4MjM1YzhjMWQ3NjRmYTAuLmFlMmYxMzc3YWQ0ZGI3MGI0MmY0MzJlNDU5ZGVkZjJjZTYy
MWM2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcApAQCAtNDIs
NyArNDIsNyBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoc3RkOjp1bmlxdWVfcHRyPExheW91
dFN0YXRlPiBhbmNlc3RvciwgUmVuZGVyQm94KiByZW5kZQogewogICAgIEFTU0VSVChtX2FuY2Vz
dG9yKTsKIAotICAgIGJvb2wgZml4ZWQgPSByZW5kZXJlci0+aXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkgJiYgcmVuZGVyZXItPnN0eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uOworICAg
IGJvb2wgZml4ZWQgPSByZW5kZXJlci0+aXNGaXhlZFBvc2l0aW9uZWQoKTsKICAgICBpZiAoZml4
ZWQpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCB3b3JrIGNvcnJlY3RseSB3aXRo
IHRyYW5zZm9ybXMuCiAgICAgICAgIEZsb2F0UG9pbnQgZml4ZWRPZmZzZXQgPSByZW5kZXJlci0+
dmlldygpLmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIElzRml4ZWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAppbmRleCA2ZDU2NmIwMWVkYmJkNDBkOGRkYTY1ZmY2
YmQ1ZTJhZjE1OGIyMjY0Li42Y2YwZDE2ODU2NTAxMjNkMDA3YWRlZjFiN2M2YTZiNGRiZmMwZDBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaApAQCAtMTAzLDkgKzEwMyw5
IEBAIHB1YmxpYzoKICAgICAvLyBlLmcuLCBiZWNhdXNlIG9mIGNvbXBvc2l0ZWQgc2Nyb2xsaW5n
LgogICAgIExheW91dFJlY3QgbV9jbGlwUmVjdDsKICAgICAKLSAgICAvLyB4L3kgb2Zmc2V0IGZy
b20gY29udGFpbmVyLiBJbmNsdWRlcyByZWxhdGl2ZSBwb3NpdGlvbmluZyBhbmQgc2Nyb2xsIG9m
ZnNldHMuCisgICAgLy8geC95IG9mZnNldCBmcm9tIGxheW91dCByb290LiBJbmNsdWRlcyBpbi1m
bG93IHBvc2l0aW9uaW5nIGFuZCBzY3JvbGwgb2Zmc2V0cy4KICAgICBMYXlvdXRTaXplIG1fcGFp
bnRPZmZzZXQ7Ci0gICAgLy8geC95IG9mZnNldCBmcm9tIGNvbnRhaW5lci4gRG9lcyBub3QgaW5j
bHVkZSByZWxhdGl2ZSBwb3NpdGlvbmluZyBvciBzY3JvbGwgb2Zmc2V0cy4KKyAgICAvLyB4L3kg
b2Zmc2V0IGZyb20gbGF5b3V0IHJvb3QuIERvZXMgbm90IGluY2x1ZGUgaW4tZmxvdyBwb3NpdGlv
bmluZyBvciBzY3JvbGwgb2Zmc2V0cy4KICAgICBMYXlvdXRTaXplIG1fbGF5b3V0T2Zmc2V0Owog
ICAgIC8vIFRyYW5zaWVudCBvZmZzZXQgZnJvbSB0aGUgZmluYWwgcG9zaXRpb24gb2YgdGhlIG9i
amVjdAogICAgIC8vIHVzZWQgdG8gZW5zdXJlIHRoYXQgcmVwYWludHMgaGFwcGVuIGluIHRoZSBj
b3JyZWN0IHBsYWNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5k
ZXggNjg2MzVjMzRmNGFkNGM2ODJlOWU1M2IwMWYxZWY2MTU3ZjI3MGY1Yi4uY2MxNzNlMjZlNzZm
MGE2MmVkODAwYTUzMzY5ZDMyOWQ2M2FhYWI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC0zNTM4LDcgKzM1MzgsNyBAQCBjb25zdCBjaGFyKiBSZW5kZXJC
bG9jazo6cmVuZGVyTmFtZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiAiUmVuZGVyQmxvY2sgKGdl
bmVyYXRlZCkiOwogICAgIGlmIChpc0Fub255bW91cygpKQogICAgICAgICByZXR1cm4gIlJlbmRl
ckJsb2NrIChnZW5lcmF0ZWQpIjsKLSAgICBpZiAoaXNSZWxQb3NpdGlvbmVkKCkpCisgICAgaWYg
KGlzUmVsYXRpdmVQb3NpdGlvbmVkKCkpCiAgICAgICAgIHJldHVybiAiUmVuZGVyQmxvY2sgKHJl
bGF0aXZlIHBvc2l0aW9uZWQpIjsKICAgICBpZiAoaXNTdGlja3lQb3NpdGlvbmVkKCkpCiAgICAg
ICAgIHJldHVybiAiUmVuZGVyQmxvY2sgKHN0aWNreSBwb3NpdGlvbmVkKSI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGJhOGE2NjA1NzI4ZDFhNjg1OTQwOTgzYjFj
NTgxYzU0OGE3ZTUyODcuLmY0MDIyNTllNGFkN2EzZGQ3ZDFkY2Q1YjRhMmJlOWIxMWVkODY5YTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC03NDIsNyArNzQyLDcg
QEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OnJlZmxlY3RlZFJlY3QoY29uc3QgTGF5b3V0UmVjdCYg
cikgY29uc3QKIAogYm9vbCBSZW5kZXJCb3g6OmZpeGVkRWxlbWVudExheXNPdXRSZWxhdGl2ZVRv
RnJhbWUoY29uc3QgRnJhbWVWaWV3JiBmcmFtZVZpZXcpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0
eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uICYmIGNvbnRhaW5lcigpLT5pc1JlbmRl
clZpZXcoKSAmJiBmcmFtZVZpZXcuZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgp
OworICAgIHJldHVybiBpc0ZpeGVkUG9zaXRpb25lZCgpICYmIGNvbnRhaW5lcigpLT5pc1JlbmRl
clZpZXcoKSAmJiBmcmFtZVZpZXcuZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSgp
OwogfQogCiBib29sIFJlbmRlckJveDo6aW5jbHVkZVZlcnRpY2FsU2Nyb2xsYmFyU2l6ZSgpIGNv
bnN0CkBAIC0xNDIzLDcgKzE0MjMsNyBAQCBib29sIFJlbmRlckJveDo6Zm9yZWdyb3VuZElzS25v
d25Ub0JlT3BhcXVlSW5SZWN0KGNvbnN0IExheW91dFJlY3QmIGxvY2FsUmVjdCwgdQogICAgICAg
ICBpZiAoIWlzQ2FuZGlkYXRlRm9yT3BhcXVlbmVzc1Rlc3QoY2hpbGRCb3gpKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIExheW91dFBvaW50IGNoaWxkTG9jYXRpb24gPSBjaGlsZEJv
eC5sb2NhdGlvbigpOwotICAgICAgICBpZiAoY2hpbGRCb3guaXNSZWxQb3NpdGlvbmVkKCkpCisg
ICAgICAgIGlmIChjaGlsZEJveC5pc1JlbGF0aXZlUG9zaXRpb25lZCgpKQogICAgICAgICAgICAg
Y2hpbGRMb2NhdGlvbi5tb3ZlKGNoaWxkQm94LnJlbGF0aXZlUG9zaXRpb25PZmZzZXQoKSk7CiAg
ICAgICAgIExheW91dFJlY3QgY2hpbGRMb2NhbFJlY3QgPSBsb2NhbFJlY3Q7CiAgICAgICAgIGNo
aWxkTG9jYWxSZWN0Lm1vdmVCeSgtY2hpbGRMb2NhdGlvbik7CkBAIC0xOTM1LDcgKzE5MzUsNyBA
QCB2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbgogICAgIGlmICghY29udGFpbmVyKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBib29sIGlzRml4ZWRQb3MgPSBzdHlsZSgpLnBvc2l0aW9uKCkgPT0gRml4
ZWRQb3NpdGlvbjsKKyAgICBib29sIGlzRml4ZWRQb3MgPSBpc0ZpeGVkUG9zaXRpb25lZCgpOwog
ICAgIC8vIElmIHRoaXMgYm94IGhhcyBhIHRyYW5zZm9ybSwgaXQgYWN0cyBhcyBhIGZpeGVkIHBv
c2l0aW9uIGNvbnRhaW5lciBmb3IgZml4ZWQgZGVzY2VuZGFudHMsCiAgICAgLy8gYW5kIG1heSBp
dHNlbGYgYWxzbyBiZSBmaXhlZCBwb3NpdGlvbi4gU28gcHJvcGFnYXRlICdmaXhlZCcgdXAgb25s
eSBpZiB0aGlzIGJveCBpcyBmaXhlZCBwb3NpdGlvbi4KICAgICBpZiAoaGFzVHJhbnNmb3JtKCkg
JiYgIWlzRml4ZWRQb3MpCkBAIC0xOTc4LDcgKzE5NzgsNyBAQCBjb25zdCBSZW5kZXJPYmplY3Qq
IFJlbmRlckJveDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZQogICAgIGlmICghY29udGFpbmVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IGJvb2wgaXNGaXhlZFBvcyA9IHN0eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uOwor
ICAgIGJvb2wgaXNGaXhlZFBvcyA9IGlzRml4ZWRQb3NpdGlvbmVkKCk7CiAgICAgTGF5b3V0U2l6
ZSBhZGp1c3RtZW50Rm9yU2tpcHBlZEFuY2VzdG9yOwogICAgIGlmIChhbmNlc3RvclNraXBwZWQp
IHsKICAgICAgICAgLy8gVGhlcmUgY2FuJ3QgYmUgYSB0cmFuc2Zvcm0gYmV0d2VlbiByZXBhaW50
Q29udGFpbmVyIGFuZCBjb250YWluZXIsIGJlY2F1c2UgdHJhbnNmb3JtcyBjcmVhdGUgY29udGFp
bmVycywgc28gaXQgc2hvdWxkIGJlIHNhZmUKQEAgLTIwMDYsNyArMjAwNiw3IEBAIGNvbnN0IFJl
bmRlck9iamVjdCogUmVuZGVyQm94OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplCiAKIHZvaWQgUmVuZGVyQm94OjptYXBBYnNvbHV0ZVRvTG9jYWxQb2lu
dChNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSkgY29uc3QKIHsKLSAgICBib29sIGlzRml4ZWRQb3MgPSBzdHlsZSgpLnBvc2l0aW9uKCkgPT0g
Rml4ZWRQb3NpdGlvbjsKKyAgICBib29sIGlzRml4ZWRQb3MgPSBpc0ZpeGVkUG9zaXRpb25lZCgp
OwogICAgIGlmIChoYXNUcmFuc2Zvcm0oKSAmJiAhaXNGaXhlZFBvcykgewogICAgICAgICAvLyBJ
ZiB0aGlzIGJveCBoYXMgYSB0cmFuc2Zvcm0sIGl0IGFjdHMgYXMgYSBmaXhlZCBwb3NpdGlvbiBj
b250YWluZXIgZm9yIGZpeGVkIGRlc2NlbmRhbnRzLAogICAgICAgICAvLyBhbmQgbWF5IGl0c2Vs
ZiBhbHNvIGJlIGZpeGVkIHBvc2l0aW9uLiBTbyBwcm9wYWdhdGUgJ2ZpeGVkJyB1cCBvbmx5IGlm
IHRoaXMgYm94IGlzIGZpeGVkIHBvc2l0aW9uLgpAQCAtMjAxNywxMCArMjAxNywxMCBAQCB2b2lk
IFJlbmRlckJveDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBUcmFuc2Zvcm1TdGF0ZQogICAgIFJlbmRlckJveE1vZGVsT2JqZWN0OjptYXBBYnNvbHV0
ZVRvTG9jYWxQb2ludChtb2RlLCB0cmFuc2Zvcm1TdGF0ZSk7CiB9CiAKLUxheW91dFNpemUgUmVu
ZGVyQm94OjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25z
dCBMYXlvdXRQb2ludCYsIGJvb2wqIG9mZnNldERlcGVuZHNPblBvaW50KSBjb25zdAorTGF5b3V0
U2l6ZSBSZW5kZXJCb3g6Om9mZnNldEZyb21Db250YWluZXIoUmVuZGVyRWxlbWVudCYgY29udGFp
bmVyLCBjb25zdCBMYXlvdXRQb2ludCYsIGJvb2wqIG9mZnNldERlcGVuZHNPblBvaW50KSBjb25z
dAogewogICAgIC8vIEEgZnJhZ21lbnQgImhhcyIgYm94ZXMgaW5zaWRlIGl0IHdpdGhvdXQgYmVp
bmcgdGhlaXIgY29udGFpbmVyLiAKLSAgICBBU1NFUlQoJnJlbmRlcmVyID09IGNvbnRhaW5lcigp
IHx8IGlzPFJlbmRlckZyYWdtZW50Q29udGFpbmVyPihyZW5kZXJlcikpOworICAgIEFTU0VSVCgm
Y29udGFpbmVyID09IHRoaXMtPmNvbnRhaW5lcigpIHx8IGlzPFJlbmRlckZyYWdtZW50Q29udGFp
bmVyPihjb250YWluZXIpKTsKIAogICAgIExheW91dFNpemUgb2Zmc2V0OyAgICAKICAgICBpZiAo
aXNJbkZsb3dQb3NpdGlvbmVkKCkpCkBAIC0yMDI5LDE0ICsyMDI5LDE0IEBAIExheW91dFNpemUg
UmVuZGVyQm94OjpvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBj
b25zdCBMYXlvdXRQCiAgICAgaWYgKCFpc0lubGluZSgpIHx8IGlzUmVwbGFjZWQoKSkKICAgICAg
ICAgb2Zmc2V0ICs9IHRvcExlZnRMb2NhdGlvbk9mZnNldCgpOwogCi0gICAgaWYgKGlzPFJlbmRl
ckJveD4ocmVuZGVyZXIpKQotICAgICAgICBvZmZzZXQgLT0gdG9MYXlvdXRTaXplKGRvd25jYXN0
PFJlbmRlckJveD4ocmVuZGVyZXIpLnNjcm9sbFBvc2l0aW9uKCkpOworICAgIGlmIChpczxSZW5k
ZXJCb3g+KGNvbnRhaW5lcikpCisgICAgICAgIG9mZnNldCAtPSB0b0xheW91dFNpemUoZG93bmNh
c3Q8UmVuZGVyQm94Pihjb250YWluZXIpLnNjcm9sbFBvc2l0aW9uKCkpOwogCi0gICAgaWYgKHN0
eWxlKCkucG9zaXRpb24oKSA9PSBBYnNvbHV0ZVBvc2l0aW9uICYmIHJlbmRlcmVyLmlzSW5GbG93
UG9zaXRpb25lZCgpICYmIGlzPFJlbmRlcklubGluZT4ocmVuZGVyZXIpKQotICAgICAgICBvZmZz
ZXQgKz0gZG93bmNhc3Q8UmVuZGVySW5saW5lPihyZW5kZXJlcikub2Zmc2V0Rm9ySW5GbG93UG9z
aXRpb25lZElubGluZSh0aGlzKTsKKyAgICBpZiAoaXNBYnNvbHV0ZVBvc2l0aW9uZWQoKSAmJiBj
b250YWluZXIuaXNJbkZsb3dQb3NpdGlvbmVkKCkgJiYgaXM8UmVuZGVySW5saW5lPihjb250YWlu
ZXIpKQorICAgICAgICBvZmZzZXQgKz0gZG93bmNhc3Q8UmVuZGVySW5saW5lPihjb250YWluZXIp
Lm9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRJbmxpbmUodGhpcyk7CiAKICAgICBpZiAob2Zmc2V0
RGVwZW5kc09uUG9pbnQpCi0gICAgICAgICpvZmZzZXREZXBlbmRzT25Qb2ludCB8PSBpczxSZW5k
ZXJGcmFnbWVudGVkRmxvdz4ocmVuZGVyZXIpOworICAgICAgICAqb2Zmc2V0RGVwZW5kc09uUG9p
bnQgfD0gaXM8UmVuZGVyRnJhZ21lbnRlZEZsb3c+KGNvbnRhaW5lcik7CiAKICAgICByZXR1cm4g
b2Zmc2V0OwogfQpAQCAtMzIwOSw3ICszMjA5LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNv
bnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvclBvc2l0aW9uZWQoY29uc3QgUmVuZGVyQm94TW8K
ICAgICB9CiAKICAgICBpZiAoaXM8UmVuZGVyQm94Pihjb250YWluaW5nQmxvY2spKSB7Ci0gICAg
ICAgIGJvb2wgaXNGaXhlZFBvc2l0aW9uID0gc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9z
aXRpb247CisgICAgICAgIGJvb2wgaXNGaXhlZFBvc2l0aW9uID0gaXNGaXhlZFBvc2l0aW9uZWQo
KTsKIAogICAgICAgICBSZW5kZXJGcmFnbWVudGVkRmxvdyogZnJhZ21lbnRlZEZsb3cgPSBlbmNs
b3NpbmdGcmFnbWVudGVkRmxvdygpOwogICAgICAgICBpZiAoIWZyYWdtZW50ZWRGbG93KSB7CkBA
IC0zMjc0LDcgKzMyNzQsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29udGFpbmluZ0Jsb2Nr
TG9naWNhbEhlaWdodEZvclBvc2l0aW9uZWQoY29uc3QgUmVuZGVyQm94TQogICAgIH0KIAogICAg
IGlmIChjb250YWluaW5nQmxvY2suaXNCb3goKSkgewotICAgICAgICBib29sIGlzRml4ZWRQb3Np
dGlvbiA9IHN0eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uOworICAgICAgICBib29s
IGlzRml4ZWRQb3NpdGlvbiA9IGlzRml4ZWRQb3NpdGlvbmVkKCk7CiAKICAgICAgICAgaWYgKGlz
Rml4ZWRQb3NpdGlvbiAmJiBpczxSZW5kZXJWaWV3Pihjb250YWluaW5nQmxvY2spKQogICAgICAg
ICAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlclZpZXc+KGNvbnRhaW5pbmdCbG9jaykuY2xpZW50
TG9naWNhbEhlaWdodEZvckZpeGVkUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IGY4M2VkYWMyNDU2MTcwZjQw
OWM2YmY1MzdhYjQzNDlmYWJhYzE5YTguLmViYmU1YTI3MWI5Mjk5YzQ1MzAyYzYxYjRmZWE1ZDZi
ZjgwMzE4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcApAQCAtNDQ4LDcgKzQ0OCw3IEBAIExheW91dFBvaW50IFJlbmRlckJveE1v
ZGVsT2JqZWN0OjphZGp1c3RlZFBvc2l0aW9uUmVsYXRpdmVUb09mZnNldFBhcmVudChjb25zdCBM
CiAgICAgICAgIGlmIChpczxSZW5kZXJCb3g+KCpvZmZzZXRQYXJlbnQpICYmICFvZmZzZXRQYXJl
bnQtPmlzQm9keSgpICYmICFpczxSZW5kZXJUYWJsZT4oKm9mZnNldFBhcmVudCkpCiAgICAgICAg
ICAgICByZWZlcmVuY2VQb2ludC5tb3ZlKC1kb3duY2FzdDxSZW5kZXJCb3g+KCpvZmZzZXRQYXJl
bnQpLmJvcmRlckxlZnQoKSwgLWRvd25jYXN0PFJlbmRlckJveD4oKm9mZnNldFBhcmVudCkuYm9y
ZGVyVG9wKCkpOwogICAgICAgICBpZiAoIWlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IGVuY2xv
c2luZ0ZyYWdtZW50ZWRGbG93KCkpIHsKLSAgICAgICAgICAgIGlmIChpc1JlbFBvc2l0aW9uZWQo
KSkKKyAgICAgICAgICAgIGlmIChpc1JlbGF0aXZlUG9zaXRpb25lZCgpKQogICAgICAgICAgICAg
ICAgIHJlZmVyZW5jZVBvaW50Lm1vdmUocmVsYXRpdmVQb3NpdGlvbk9mZnNldCgpKTsKICAgICAg
ICAgICAgIGVsc2UgaWYgKGlzU3RpY2t5UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgICAgIHJl
ZmVyZW5jZVBvaW50Lm1vdmUoc3RpY2t5UG9zaXRpb25PZmZzZXQoKSk7CkBAIC02MDEsNyArNjAx
LDcgQEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c3RpY2t5UG9zaXRpb25PZmZz
ZXQoKSBjb25zdAogCiBMYXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2JqZWN0OjpvZmZzZXRGb3JJ
bkZsb3dQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgaWYgKGlzUmVsUG9zaXRpb25lZCgpKQorICAg
IGlmIChpc1JlbGF0aXZlUG9zaXRpb25lZCgpKQogICAgICAgICByZXR1cm4gcmVsYXRpdmVQb3Np
dGlvbk9mZnNldCgpOwogCiAgICAgaWYgKGlzU3RpY2t5UG9zaXRpb25lZCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
LmNwcAppbmRleCBlOTIwMmNiYTcwNDIwZDI1NzQ3MTJmN2VmYjI4MDkwOTg4YWM4NzhlLi41MDAx
ODM4ODEwNDkzNDg2MDU1YjdkZTAxYTMxMTdmNTU3YzE5ZmE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApA
QCAtMTEyMiw3ICsxMTIyLDcgQEAgY29uc3QgY2hhciogUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94OjpyZW5kZXJOYW1lKCkgY29uc3QKICAgICAgICAgcmV0dXJuICJSZW5kZXJEZXByZWNhdGVk
RmxleGlibGVCb3ggKGdlbmVyYXRlZCkiOwogICAgIGlmIChpc0Fub255bW91cygpKQogICAgICAg
ICByZXR1cm4gIlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCAoZ2VuZXJhdGVkKSI7Ci0gICAg
aWYgKGlzUmVsUG9zaXRpb25lZCgpKQorICAgIGlmIChpc1JlbGF0aXZlUG9zaXRpb25lZCgpKQog
ICAgICAgICByZXR1cm4gIlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCAocmVsYXRpdmUgcG9z
aXRpb25lZCkiOwogICAgIHJldHVybiAiUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94IjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3Bw
CmluZGV4IDdkMzhjNzg3NjY0ZTY5Zjc0OTEzNTAwYTFkNWU4ZWIwMWYyNTI4M2IuLjE1YTI5YTUy
MDQxYWFkODg0ZTQ5M2RkMTU5NTE1NjY5Nzk4NTA3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmNwcApAQCAtMzI0LDcgKzMyNCw3IEBA
IExheW91dFBvaW50IFJlbmRlckZyYWdtZW50ZWRGbG93OjphZGp1c3RlZFBvc2l0aW9uUmVsYXRp
dmVUb09mZnNldFBhcmVudChjb25zdCBSCiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFNp
bmNlIHRoZSB0b3AgaGFzIGJlZW4gb3ZlcnJpZGVuLCBjaGVjayBpZiB0aGUKICAgICAgICAgICAg
IC8vIHJlbGF0aXZlL3N0aWNreSBwb3NpdGlvbmluZyBtdXN0IGJlIHJlY29uc2lkZXJlZC4KLSAg
ICAgICAgICAgIGlmIChib3hNb2RlbE9iamVjdC5pc1JlbFBvc2l0aW9uZWQoKSkKKyAgICAgICAg
ICAgIGlmIChib3hNb2RlbE9iamVjdC5pc1JlbGF0aXZlUG9zaXRpb25lZCgpKQogICAgICAgICAg
ICAgICAgIHJlZmVyZW5jZVBvaW50Lm1vdmUoMCwgYm94TW9kZWxPYmplY3QucmVsYXRpdmVQb3Np
dGlvbk9mZnNldCgpLmhlaWdodCgpKTsKICAgICAgICAgICAgIGVsc2UgaWYgKGJveE1vZGVsT2Jq
ZWN0LmlzU3RpY2t5UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgICAgIHJlZmVyZW5jZVBvaW50
Lm1vdmUoMCwgYm94TW9kZWxPYmplY3Quc3RpY2t5UG9zaXRpb25PZmZzZXQoKS5oZWlnaHQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAppbmRl
eCA2YjMzMWNmZjdiYzQyNWZkYzBhYzQ3ZjdhZWJlZGU1YWY2YTUxMTM4Li5iOTA0NWU2NzkwODcz
YWJmODFhOTBkZmE1YmJiMTEwOTNjNjc3YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCBzdGF0aWMgYm9v
bCBjYW5NYXBCZXR3ZWVuUmVuZGVyZXJzVmlhTGF5ZXJzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QmIHJlbmRlcgogewogICAgIGZvciAoY29uc3QgUmVuZGVyRWxlbWVudCogY3VycmVudCA9
ICZyZW5kZXJlcjsgOyBjdXJyZW50ID0gY3VycmVudC0+cGFyZW50KCkpIHsKICAgICAgICAgY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlID0gY3VycmVudC0+c3R5bGUoKTsKLSAgICAgICAgaWYgKHN0
eWxlLnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbiB8fCBzdHlsZS5pc0ZsaXBwZWRCbG9ja3NX
cml0aW5nTW9kZSgpKQorICAgICAgICBpZiAoY3VycmVudC0+aXNGaXhlZFBvc2l0aW9uZWQoKSB8
fCBzdHlsZS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgICAgIGlmIChjdXJyZW50LT5oYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVy
dHkoKSAmJiAoY3VycmVudC0+c3R5bGUoKS5oYXNUcmFuc2Zvcm0oKSB8fCBjdXJyZW50LT5zdHls
ZSgpLmhhc1BlcnNwZWN0aXZlKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
Y3BwCmluZGV4IDk4NTY1YzkxZTM4YTllYzMwNDM3YjlhMTcwMTBjNmE2ZjNjODRhMDAuLjM5ZGU5
NTVlMGRkODdhM2NmNjdiNmVjYjBkNTljNzFhODU0OTlkODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTE2OTMsNyArMTY5Myw3IEBAIGNvbnN0IGNoYXIqIFJl
bmRlckdyaWQ6OnJlbmRlck5hbWUoKSBjb25zdAogICAgICAgICByZXR1cm4gIlJlbmRlckdyaWQg
KHBvc2l0aW9uZWQpIjsKICAgICBpZiAoaXNBbm9ueW1vdXMoKSkKICAgICAgICAgcmV0dXJuICJS
ZW5kZXJHcmlkIChnZW5lcmF0ZWQpIjsKLSAgICBpZiAoaXNSZWxQb3NpdGlvbmVkKCkpCisgICAg
aWYgKGlzUmVsYXRpdmVQb3NpdGlvbmVkKCkpCiAgICAgICAgIHJldHVybiAiUmVuZGVyR3JpZCAo
cmVsYXRpdmUgcG9zaXRpb25lZCkiOwogICAgIHJldHVybiAiUmVuZGVyR3JpZCI7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IGY1YzQ0NGQ0OWNkMzRh
MzcyZGE0OTI3ZDViMWFkMzk2MTlhMzc0M2EuLjA2ODZkYmFkODZkZDFjZjk0NzFiOWQ2YTExZDIy
ZWVjMDIzMzg3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CkBAIC04NDIsNyArODQyLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJJbmxpbmU6Om1hcmdpbkFmdGVy
KGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlclN0eWxlKSBjb25zdAogCiBjb25zdCBjaGFyKiBSZW5k
ZXJJbmxpbmU6OnJlbmRlck5hbWUoKSBjb25zdAogewotICAgIGlmIChpc1JlbFBvc2l0aW9uZWQo
KSkKKyAgICBpZiAoaXNSZWxhdGl2ZVBvc2l0aW9uZWQoKSkKICAgICAgICAgcmV0dXJuICJSZW5k
ZXJJbmxpbmUgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIjsKICAgICBpZiAoaXNTdGlja3lQb3NpdGlv
bmVkKCkpCiAgICAgICAgIHJldHVybiAiUmVuZGVySW5saW5lIChzdGlja3kgcG9zaXRpb25lZCki
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggOWNjMTg1N2Nh
OTg2YjNlZWFkOWNjYTQ4ZjIwNWU0NTZhNjA4YTU0Yi4uZjQ2ZTNiYTk0NTdlNTZlMzZlODhkYzUz
NGIzNzdiMmU4YTk1Nzg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCkBAIC0zOTU5LDcgKzM5NTksNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyKEdy
YXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mCiAgICAgfSBl
bHNlIGlmICh2aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbigpID09IE5vdENv
bXBvc2l0ZWRGb3JCb3VuZHNPdXRPZlZpZXcpIHsKICAgICAgICAgLy8gRG9uJ3QgcGFpbnQgb3V0
LW9mLXZpZXcgdmlld3BvcnQgY29uc3RyYWluZWQgbGF5ZXJzICh3aGVuIGRvaW5nIHByZXBhaW50
aW5nKSBiZWNhdXNlIHRoZXkgd2lsbCBuZXZlciBiZSB2aXNpYmxlCiAgICAgICAgIC8vIHVubGVz
cyB0aGVpciBwb3NpdGlvbiBvciB2aWV3cG9ydCBzaXplIGlzIGNoYW5nZWQuCi0gICAgICAgIEFT
U0VSVChyZW5kZXJlcigpLnN0eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKTsKKyAg
ICAgICAgQVNTRVJUKHJlbmRlcmVyKCkuaXNGaXhlZFBvc2l0aW9uZWQoKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTU0MTQsMTMgKzU0MTQsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6
Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRl
eHQsIEMKIAogICAgIC8vIEEgZml4ZWQgb2JqZWN0IGlzIGVzc2VudGlhbGx5IHRoZSByb290IG9m
IGl0cyBjb250YWluaW5nIGJsb2NrIGhpZXJhcmNoeSwgc28gd2hlbgogICAgIC8vIHdlIGVuY291
bnRlciBzdWNoIGFuIG9iamVjdCwgd2UgcmVzZXQgb3VyIGNsaXAgcmVjdHMgdG8gdGhlIGZpeGVk
Q2xpcFJlY3QuCi0gICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVk
UG9zaXRpb24pIHsKKyAgICBpZiAocmVuZGVyZXIoKS5pc0ZpeGVkUG9zaXRpb25lZCgpKSB7CiAg
ICAgICAgIGNsaXBSZWN0cy5zZXRQb3NDbGlwUmVjdChjbGlwUmVjdHMuZml4ZWRDbGlwUmVjdCgp
KTsKICAgICAgICAgY2xpcFJlY3RzLnNldE92ZXJmbG93Q2xpcFJlY3QoY2xpcFJlY3RzLmZpeGVk
Q2xpcFJlY3QoKSk7CiAgICAgICAgIGNsaXBSZWN0cy5zZXRGaXhlZCh0cnVlKTsKLSAgICB9IGVs
c2UgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5oYXNJbkZsb3dQb3NpdGlvbigpKQorICAgIH0gZWxz
ZSBpZiAocmVuZGVyZXIoKS5pc0luRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAgY2xpcFJlY3Rz
LnNldFBvc0NsaXBSZWN0KGNsaXBSZWN0cy5vdmVyZmxvd0NsaXBSZWN0KCkpOwotICAgIGVsc2Ug
aWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb24pCisg
ICAgZWxzZSBpZiAocmVuZGVyZXIoKS5pc0Fic29sdXRlUG9zaXRpb25lZCgpKQogICAgICAgICBj
bGlwUmVjdHMuc2V0T3ZlcmZsb3dDbGlwUmVjdChjbGlwUmVjdHMucG9zQ2xpcFJlY3QoKSk7CiAg
ICAgCiAgICAgLy8gVXBkYXRlIHRoZSBjbGlwIHJlY3RzIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8g
Y2hpbGQgbGF5ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJC
YWNraW5nLmNwcAppbmRleCAzMThiNzMzNGFhZDY2MTQ5OTJmYWJmMTIzOWQ5ZTBmMWM3ZDU4NTE3
Li5mZDYwZTQ0ZTdmZDE1NWFiY2NiMzdhZGIxMzNiZTcxNzE2MjhmYjJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNTkyLDcgKzU5
Miw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb21wb3NpdGVkQm91bmRzKCkK
ICAgICAgICAgYXV0byogcm9vdExheWVyID0gdmlldy5sYXllcigpOwogCiAgICAgICAgIExheW91
dFJlY3QgY2xpcHBpbmdCb3VuZHM7Ci0gICAgICAgIGlmIChyZW5kZXJlcigpLnN0eWxlKCkucG9z
aXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uICYmIHJlbmRlcmVyKCkuY29udGFpbmVyKCkgPT0gJnZp
ZXcpCisgICAgICAgIGlmIChyZW5kZXJlcigpLmlzRml4ZWRQb3NpdGlvbmVkKCkgJiYgcmVuZGVy
ZXIoKS5jb250YWluZXIoKSA9PSAmdmlldykKICAgICAgICAgICAgIGNsaXBwaW5nQm91bmRzID0g
dmlldy5mcmFtZVZpZXcoKS5yZWN0Rm9yRml4ZWRQb3NpdGlvbkxheW91dCgpOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBjbGlwcGluZ0JvdW5kcyA9IHZpZXcudW5zY2FsZWREb2N1bWVudFJl
Y3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKaW5kZXggZDA0ZTY0N2YzZGI1ZWMzN2NiMjZkZDg1ZTQxMTZmNTdmYTA2YzQ5OC4u
ZTI0M2RlM2IyNjA2YTNjYjU2YTE0ZGRlOGYzZjQ5ZDNmOWNlMmNjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTEwODYs
NyArMTA4Niw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVCYWNraW5nKFJl
bmRlckxheWVyJiBsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSCiAKICAgICAvLyBJZiBhIGZpeGVk
IHBvc2l0aW9uIGxheWVyIGdhaW5lZC9sb3N0IGEgYmFja2luZyBvciB0aGUgcmVhc29uIG5vdCBj
b21wb3NpdGluZyBpdCBjaGFuZ2VkLAogICAgIC8vIHRoZSBzY3JvbGxpbmcgY29vcmRpbmF0b3Ig
bmVlZHMgdG8gcmVjYWxjdWxhdGUgd2hldGhlciBpdCBjYW4gZG8gZmFzdCBzY3JvbGxpbmcuCi0g
ICAgaWYgKGxheWVyLnJlbmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRp
b24pIHsKKyAgICBpZiAobGF5ZXIucmVuZGVyZXIoKS5pc0ZpeGVkUG9zaXRpb25lZCgpKSB7CiAg
ICAgICAgIGlmIChsYXllci52aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbigp
ICE9IHZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKSB7CiAgICAgICAgICAg
ICBsYXllci5zZXRWaWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbih2aWV3cG9y
dENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbik7CiAgICAgICAgICAgICBsYXllckNoYW5n
ZWQgPSB0cnVlOwpAQCAtMTIwMiw3ICsxMjAyLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OmNvbXB1dGVFeHRlbnQoY29uc3QgT3ZlcmxhcE1hcCYgb3ZlcmxhcE1hcCwgY29uc3QgUmUK
IAogCiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVuZGVyZXIgPSBsYXllci5yZW5kZXJl
cigpOwotICAgIGlmIChyZW5kZXJlci5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiByZW5kZXJl
ci5zdHlsZSgpLnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbiAmJiByZW5kZXJlci5jb250YWlu
ZXIoKSA9PSAmbV9yZW5kZXJWaWV3KSB7CisgICAgaWYgKHJlbmRlcmVyLmlzRml4ZWRQb3NpdGlv
bmVkKCkgJiYgcmVuZGVyZXIuY29udGFpbmVyKCkgPT0gJm1fcmVuZGVyVmlldykgewogICAgICAg
ICAvLyBCZWNhdXNlIGZpeGVkIGVsZW1lbnRzIGdldCBtb3ZlZCBhcm91bmQgd2l0aG91dCByZS1j
b21wdXRpbmcgb3ZlcmxhcCwgd2UgaGF2ZSB0byBjb21wdXRlIGFuIG92ZXJsYXAKICAgICAgICAg
Ly8gcmVjdCB0aGF0IGNvdmVycyBhbGwgdGhlIGxvY2F0aW9ucyB0aGF0IHRoZSBmaXhlZCBlbGVt
ZW50IGNvdWxkIG1vdmUgdG8uCiAgICAgICAgIC8vIEZJWE1FOiBuZWVkIHRvIGhhbmRsZSBzdGlj
a3kgdG9vLgpAQCAtMjE0Miw3ICsyMTQyLDcgQEAgT3B0aW9uU2V0PENvbXBvc2l0aW5nUmVhc29u
PiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlYXNvbnNGb3JDb21wb3NpdGluZyhjb25zdAogICAg
ICAgICByZWFzb25zIHw9IENvbXBvc2l0aW5nUmVhc29uOjpXaWxsQ2hhbmdlOwogCiAgICAgaWYg
KHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihyZW5kZXJlciwgKnJlbmRlcmVyLmxheWVy
KCkpKQotICAgICAgICByZWFzb25zIHw9IHJlbmRlcmVyLnN0eWxlKCkucG9zaXRpb24oKSA9PSBG
aXhlZFBvc2l0aW9uID8gQ29tcG9zaXRpbmdSZWFzb246OlBvc2l0aW9uRml4ZWQgOiBDb21wb3Np
dGluZ1JlYXNvbjo6UG9zaXRpb25TdGlja3k7CisgICAgICAgIHJlYXNvbnMgfD0gcmVuZGVyZXIu
aXNGaXhlZFBvc2l0aW9uZWQoKSA/IENvbXBvc2l0aW5nUmVhc29uOjpQb3NpdGlvbkZpeGVkIDog
Q29tcG9zaXRpbmdSZWFzb246OlBvc2l0aW9uU3RpY2t5OwogCiAjaWYgUExBVEZPUk0oSU9TKQog
ICAgIGlmIChyZXF1aXJlc0NvbXBvc2l0aW5nRm9yU2Nyb2xsaW5nKCpyZW5kZXJlci5sYXllcigp
KSkKQEAgLTI1OTIsNyArMjU5Miw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppc1Zp
ZXdwb3J0Q29uc3RyYWluZWRGaXhlZE9yU3RpY2t5TGF5ZXIoY29uc3QgUmVuZGVyCiAKICAgICAv
LyBGSVhNRTogSGFuZGxlIGZpeGVkIGluc2lkZSBvZiBhIHRyYW5zZm9ybSwgd2hpY2ggc2hvdWxk
IG5vdCBiZWhhdmUgYXMgZml4ZWQuCiAgICAgZm9yIChhdXRvKiBzdGFja2luZ0NvbnRhaW5lciA9
IGxheWVyLnN0YWNraW5nQ29udGFpbmVyKCk7IHN0YWNraW5nQ29udGFpbmVyOyBzdGFja2luZ0Nv
bnRhaW5lciA9IHN0YWNraW5nQ29udGFpbmVyLT5zdGFja2luZ0NvbnRhaW5lcigpKSB7Ci0gICAg
ICAgIGlmIChzdGFja2luZ0NvbnRhaW5lci0+aXNDb21wb3NpdGVkKCkgJiYgc3RhY2tpbmdDb250
YWluZXItPnJlbmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24pCisg
ICAgICAgIGlmIChzdGFja2luZ0NvbnRhaW5lci0+aXNDb21wb3NpdGVkKCkgJiYgc3RhY2tpbmdD
b250YWluZXItPnJlbmRlcmVyKCkuaXNGaXhlZFBvc2l0aW9uZWQoKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTM3NTgsNyArMzc1OCw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxDb29yZGluYXRlZExheWVyKFJlbmRlckxheWVyJiBs
YXllciwgTGF5CiAgICAgLy8gSWYgYSBub2RlIHBsYXlzIGJvdGggcm9sZXMsIGZpeGVkL3N0aWNr
eSBpcyBhbHdheXMgdGhlIGFuY2VzdG9yIG5vZGUgb2Ygc2Nyb2xsaW5nLgogICAgIGlmIChyZWFz
b25zICYgVmlld3BvcnRDb25zdHJhaW5lZCkgewogICAgICAgICBTY3JvbGxpbmdOb2RlVHlwZSBu
b2RlVHlwZSA9IEZyYW1lU2Nyb2xsaW5nTm9kZTsKLSAgICAgICAgaWYgKGxheWVyLnJlbmRlcmVy
KCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24pCisgICAgICAgIGlmIChsYXll
ci5yZW5kZXJlcigpLmlzRml4ZWRQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBub2RlVHlwZSA9
IEZpeGVkTm9kZTsKICAgICAgICAgZWxzZSBpZiAobGF5ZXIucmVuZGVyZXIoKS5zdHlsZSgpLnBv
c2l0aW9uKCkgPT0gU3RpY2t5UG9zaXRpb24pCiAgICAgICAgICAgICBub2RlVHlwZSA9IFN0aWNr
eU5vZGU7CkBAIC0zODYzLDcgKzM4NjMsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVnaXN0ZXJBbGxWaWV3cG9ydENvbnN0cmFpbmVkTGF5ZXJzKCkKICAgICAgICAgICAgICAgICBB
U1NFUlQoZW5jbG9zaW5nVG91Y2hTY3JvbGxhYmxlTGF5ZXItPmlzQ29tcG9zaXRlZCgpKTsKICAg
ICAgICAgICAgICAgICBzdGlja3lDb250YWluZXJNYXAuYWRkKGxheWVyLT5iYWNraW5nKCktPmdy
YXBoaWNzTGF5ZXIoKS0+cGxhdGZvcm1MYXllcigpLCBlbmNsb3NpbmdUb3VjaFNjcm9sbGFibGVM
YXllci0+YmFja2luZygpLT5zY3JvbGxpbmdMYXllcigpLT5wbGF0Zm9ybUxheWVyKCkpOwogICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKGxheWVyLT5yZW5kZXJlcigpLnN0eWxlKCku
cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKQorICAgICAgICB9IGVsc2UgaWYgKGxheWVyLT5y
ZW5kZXJlcigpLmlzRml4ZWRQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBjb25zdHJhaW50cyA9
IHN0ZDo6bWFrZV91bmlxdWU8Rml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM+KGNvbXB1
dGVGaXhlZFZpZXdwb3J0Q29uc3RyYWludHMoKmxheWVyKSk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAppbmRleCAwNmI1NjFjMTI5MGRlN2ZiMDI4NTc3YmFjMmZmNzljNWI2YjczMjRlLi4xMWZiNjc3
MjM4NTUwNTgzZDdmMTNmOTA0MGVmMjQzNTJkZTc4YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNjAyLDEwICs2MDIsOSBAQCBSZW5kZXJCbG9jayog
UmVuZGVyT2JqZWN0Ojpjb250YWluaW5nQmxvY2soKSBjb25zdAogewogICAgIGF1dG8gY29udGFp
bmluZ0Jsb2NrRm9yUmVuZGVyZXIgPSBbXShjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlcikK
ICAgICB7Ci0gICAgICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXIuc3R5bGUoKTsKLSAgICAgICAg
aWYgKHN0eWxlLnBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlvbikKKyAgICAgICAgaWYgKHJl
bmRlcmVyLmlzQWJzb2x1dGVQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVuZGVy
ZXIuY29udGFpbmluZ0Jsb2NrRm9yQWJzb2x1dGVQb3NpdGlvbigpOwotICAgICAgICBpZiAoc3R5
bGUucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKQorICAgICAgICBpZiAocmVuZGVyZXIuaXNG
aXhlZFBvc2l0aW9uZWQoKSkKICAgICAgICAgICAgIHJldHVybiByZW5kZXJlci5jb250YWluaW5n
QmxvY2tGb3JGaXhlZFBvc2l0aW9uKCk7CiAgICAgICAgIHJldHVybiByZW5kZXJlci5jb250YWlu
aW5nQmxvY2tGb3JPYmplY3RJbkZsb3coKTsKICAgICB9OwpAQCAtMTA2OSwxMiArMTA2OCwxMiBA
QCB2b2lkIFJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVyT2JqZWN0KFRleHRTdHJlYW0mIHN0cmVh
bSwgYm9vbCBtYXJrLCBpbnQgZGVwdGgpCiAgICAgICAgIHN0cmVhbSA8PCAiQiI7CiAKICAgICBp
ZiAoaXNQb3NpdGlvbmVkKCkpIHsKLSAgICAgICAgaWYgKGlzUmVsUG9zaXRpb25lZCgpKQorICAg
ICAgICBpZiAoaXNSZWxhdGl2ZVBvc2l0aW9uZWQoKSkKICAgICAgICAgICAgIHN0cmVhbSA8PCAi
UiI7CiAgICAgICAgIGVsc2UgaWYgKGlzU3RpY2t5UG9zaXRpb25lZCgpKQogICAgICAgICAgICAg
c3RyZWFtIDw8ICJLIjsKICAgICAgICAgZWxzZSBpZiAoaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkp
IHsKLSAgICAgICAgICAgIGlmIChzdHlsZSgpLnBvc2l0aW9uKCkgPT0gQWJzb2x1dGVQb3NpdGlv
bikKKyAgICAgICAgICAgIGlmIChpc0Fic29sdXRlUG9zaXRpb25lZCgpKQogICAgICAgICAgICAg
ICAgIHN0cmVhbSA8PCAiQSI7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgc3Ry
ZWFtIDw8ICJYIjsKQEAgLTE3MTksNyArMTcxOCw3IEBAIFJlbmRlckJveE1vZGVsT2JqZWN0KiBS
ZW5kZXJPYmplY3Q6Om9mZnNldFBhcmVudCgpIGNvbnN0CiAgICAgLy8gQSBpcyB0aGUgcm9vdCBl
bGVtZW50LgogICAgIC8vIEEgaXMgdGhlIEhUTUwgYm9keSBlbGVtZW50LgogICAgIC8vIFRoZSBj
b21wdXRlZCB2YWx1ZSBvZiB0aGUgcG9zaXRpb24gcHJvcGVydHkgZm9yIGVsZW1lbnQgQSBpcyBm
aXhlZC4KLSAgICBpZiAoaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpIHx8IGlzQm9keSgpIHx8
IChpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBzdHlsZSgpLnBvc2l0aW9uKCkgPT0gRml4ZWRQ
b3NpdGlvbikpCisgICAgaWYgKGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSB8fCBpc0JvZHko
KSB8fCBpc0ZpeGVkUG9zaXRpb25lZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IC8vIElmIEEgaXMgYW4gYXJlYSBIVE1MIGVsZW1lbnQgd2hpY2ggaGFzIGEgbWFwIEhUTUwgZWxl
bWVudCBzb21ld2hlcmUgaW4gdGhlIGFuY2VzdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgKaW5kZXggMzhiMDEwNWZjMGFiNGE3ZmE5ZmJkNjdmMTFkYmRjZmZkNGM5OTM3
NS4uZDE5NjkyNDJjNmE1OTI0ODdhYThlYzY2MDcxZDA0NzAyMzgzMTBhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNDE0LDExICs0MTQsMTMgQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc0Zsb2F0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuZmxv
YXRpbmcoKTsgfQogCisgICAgYm9vbCBpc1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX2Jp
dGZpZWxkcy5pc1Bvc2l0aW9uZWQoKTsgfQorICAgIGJvb2wgaXNJbkZsb3dQb3NpdGlvbmVkKCkg
Y29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNSZWxhdGl2ZVBvc2l0aW9uZWQoKSB8fCBtX2Jp
dGZpZWxkcy5pc1N0aWNreVBvc2l0aW9uZWQoKTsgfQogICAgIGJvb2wgaXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCk7IH0gLy8gYWJzb2x1dGUgb3IgZml4ZWQgcG9zaXRpb25pbmcKLSAgICBib29sIGlzSW5GbG93
UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVsUG9zaXRpb25lZCgp
IHx8IG1fYml0ZmllbGRzLmlzU3RpY2t5UG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0aXZlIG9yIHN0
aWNreSBwb3NpdGlvbmluZwotICAgIGJvb2wgaXNSZWxQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1
cm4gbV9iaXRmaWVsZHMuaXNSZWxQb3NpdGlvbmVkKCk7IH0gLy8gcmVsYXRpdmUgcG9zaXRpb25p
bmcKKyAgICBib29sIGlzRml4ZWRQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gaXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkgJiYgc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb247IH0K
KyAgICBib29sIGlzQWJzb2x1dGVQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gaXNPdXRPZkZs
b3dQb3NpdGlvbmVkKCkgJiYgc3R5bGUoKS5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb247
IH0KKyAgICBib29sIGlzUmVsYXRpdmVQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRm
aWVsZHMuaXNSZWxhdGl2ZVBvc2l0aW9uZWQoKTsgfQogICAgIGJvb2wgaXNTdGlja3lQb3NpdGlv
bmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNTdGlja3lQb3NpdGlvbmVkKCk7IH0K
LSAgICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUG9z
aXRpb25lZCgpOyB9CiAKICAgICBib29sIGlzVGV4dCgpIGNvbnN0ICB7IHJldHVybiAhbV9iaXRm
aWVsZHMuaXNCb3goKSAmJiBtX2JpdGZpZWxkcy5pc1RleHRPclJlbmRlclZpZXcoKTsgfQogICAg
IGJvb2wgaXNMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc0xpbmVCcmVh
aygpOyB9CkBAIC04NTMsOCArODU1LDggQEAgcHJpdmF0ZToKIAogICAgIGNsYXNzIFJlbmRlck9i
amVjdEJpdGZpZWxkcyB7CiAgICAgICAgIGVudW0gUG9zaXRpb25lZFN0YXRlIHsKLSAgICAgICAg
ICAgIElzU3RhdGljYWxseVBvc2l0aW9uZWQgPSAwLAotICAgICAgICAgICAgSXNSZWxhdGl2ZWx5
UG9zaXRpb25lZCA9IDEsCisgICAgICAgICAgICBJc1N0YXRpY1Bvc2l0aW9uZWQgPSAwLAorICAg
ICAgICAgICAgSXNSZWxhdGl2ZVBvc2l0aW9uZWQgPSAxLAogICAgICAgICAgICAgSXNPdXRPZkZs
b3dQb3NpdGlvbmVkID0gMiwKICAgICAgICAgICAgIElzU3RpY2t5UG9zaXRpb25lZCA9IDMKICAg
ICAgICAgfTsKQEAgLTg4Myw3ICs4ODUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgLCBtX2V2
ZXJIYWRMYXlvdXQoZmFsc2UpCiAgICAgICAgICAgICAsIG1fY2hpbGRyZW5JbmxpbmUoZmFsc2Up
CiAgICAgICAgICAgICAsIG1faXNFeGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQoZmFsc2UpCi0gICAg
ICAgICAgICAsIG1fcG9zaXRpb25lZFN0YXRlKElzU3RhdGljYWxseVBvc2l0aW9uZWQpCisgICAg
ICAgICAgICAsIG1fcG9zaXRpb25lZFN0YXRlKElzU3RhdGljUG9zaXRpb25lZCkKICAgICAgICAg
ICAgICwgbV9zZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25Ob25lKQogICAgICAgICAgICAgLCBtX2Zy
YWdtZW50ZWRGbG93U3RhdGUoTm90SW5zaWRlRnJhZ21lbnRlZEZsb3cpCiAgICAgICAgICAgICAs
IG1fYm94RGVjb3JhdGlvblN0YXRlKE5vQm94RGVjb3JhdGlvbnMpCkBAIC05MjksOSArOTMxLDkg
QEAgcHJpdmF0ZToKIAogICAgIHB1YmxpYzoKICAgICAgICAgYm9vbCBpc091dE9mRmxvd1Bvc2l0
aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uZWRTdGF0ZSA9PSBJc091dE9mRmxvd1Bv
c2l0aW9uZWQ7IH0KLSAgICAgICAgYm9vbCBpc1JlbFBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVy
biBtX3Bvc2l0aW9uZWRTdGF0ZSA9PSBJc1JlbGF0aXZlbHlQb3NpdGlvbmVkOyB9CisgICAgICAg
IGJvb2wgaXNSZWxhdGl2ZVBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uZWRT
dGF0ZSA9PSBJc1JlbGF0aXZlUG9zaXRpb25lZDsgfQogICAgICAgICBib29sIGlzU3RpY2t5UG9z
aXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb25lZFN0YXRlID09IElzU3RpY2t5UG9z
aXRpb25lZDsgfQotICAgICAgICBib29sIGlzUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1f
cG9zaXRpb25lZFN0YXRlICE9IElzU3RhdGljYWxseVBvc2l0aW9uZWQ7IH0KKyAgICAgICAgYm9v
bCBpc1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBtX3Bvc2l0aW9uZWRTdGF0ZSAhPSBJc1N0
YXRpY1Bvc2l0aW9uZWQ7IH0KIAogICAgICAgICB2b2lkIHNldFBvc2l0aW9uZWRTdGF0ZShpbnQg
cG9zaXRpb25TdGF0ZSkKICAgICAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325906</attachid>
            <date>2017-11-03 09:38:47 -0700</date>
            <delta_ts>2017-11-03 09:59:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179206-20171103093847.patch</filename>
            <type>text/plain</type>
            <size>32719</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU4MGUyNmM5NWM0ZmZh
YWZkYTg1NWJkMjk3ZjEwYTdhZmMwYjQ2ZC4uZjU3NzNhNDk0M2E2NmUzN2NlOTFiMTA1OGI2MGM4
MGRjNjM4YTg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDE3LTExLTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyT2JqZWN0OjoqcG9z
aXRpb25lZCgpIG5hbWluZyBjbGVhbnVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzkyMDYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MzI1MjU0
PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICtpc0ZpeGVk
UG9zaXRpb25lZCgpCisgICAgICAgICtpc0Fic29sdXRlbHlQb3NpdGlvbmVkKCkKKyAgICAgICAg
aXNSZWxQb3NpdGlvbmVkKCkgLT4gaXNSZWxhdGl2ZWx5UG9zaXRpb25lZCgpCisKKyAgICAgICAg
Q292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cG9zaXRpb25PZmZzZXRWYWx1
ZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGF5b3V0
T3ZlcmZsb3dSZWN0Q29udGFpbnNBbGxEZXNjZW5kYW50cyk6CisgICAgICAgICogcmVuZGVyaW5n
L0xheW91dFN0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpMYXlvdXRT
dGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpy
ZW5kZXJOYW1lIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Zml4ZWRFbGVtZW50TGF5c091dFJlbGF0aXZlVG9G
cmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmZvcmVncm91bmRJc0tu
b3duVG9CZU9wYXF1ZUluUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
Om1hcExvY2FsVG9Db250YWluZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94
OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94OjpvZmZzZXRGcm9tQ29udGFpbmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveDo6Y29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoRm9yUG9zaXRpb25lZCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxI
ZWlnaHRGb3JQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6
OmFkanVzdGVkUG9zaXRpb25SZWxhdGl2ZVRvT2Zmc2V0UGFyZW50IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpvZmZzZXRGb3JJbkZsb3dQb3NpdGlvbiBj
b25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OnJlbmRl
ck5hbWUgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFnbWVudGVkRmxvdzo6YWRqdXN0ZWRQb3Np
dGlvblJlbGF0aXZlVG9PZmZzZXRQYXJlbnQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJHZW9tZXRyeU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYW5NYXBCZXR3ZWVuUmVu
ZGVyZXJzVmlhTGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZW5kZXJOYW1lIGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklu
bGluZTo6cmVuZGVyTmFtZSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb21wb3NpdGVkQm91bmRzKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNvbXB1dGVFeHRlbnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWFzb25zRm9yQ29tcG9zaXRpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppc1ZpZXdwb3J0
Q29uc3RyYWluZWRGaXhlZE9yU3RpY2t5TGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxDb29yZGluYXRlZExheWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVnaXN0ZXJBbGxWaWV3cG9y
dENvbnN0cmFpbmVkTGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29udGFpbmluZ0Jsb2NrIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVyT2JqZWN0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6b2Zmc2V0UGFyZW50IGNvbnN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJPYmplY3Q6OmlzUG9zaXRpb25lZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJPYmplY3Q6OmlzSW5GbG93UG9zaXRpb25lZCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJPYmplY3Q6OmlzRml4ZWRQb3NpdGlvbmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6aXNBYnNvbHV0ZVBvc2l0aW9uZWQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojppc1JlbGF0aXZlUG9zaXRpb25lZCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzU3RpY2t5UG9zaXRpb25lZCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVjdEJpdGZpZWxkczo6UmVu
ZGVyT2JqZWN0Qml0ZmllbGRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVu
ZGVyT2JqZWN0Qml0ZmllbGRzOjppc1JlbGF0aXZlUG9zaXRpb25lZCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OlJlbmRlck9iamVjdEJpdGZpZWxkczo6aXNQb3NpdGlv
bmVkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNSZWxQb3NpdGlv
bmVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6UmVu
ZGVyT2JqZWN0Qml0ZmllbGRzOjppc1JlbFBvc2l0aW9uZWQgY29uc3QpOiBEZWxldGVkLgorCiAy
MDE3LTExLTAzICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBJ
bnZhbGlkYXRlIG5vZGUgbGlzdCB3aGVuIGFzc29jaWF0ZWQgZm9ybSBjb250cm9sIGVsZW1lbnQg
aXMgcmVtb3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURl
Y2xhcmF0aW9uLmNwcAppbmRleCAzOTJkZjM0MmVlNjNlN2Y1NTQyYWEwMDQ2MzYwMWY0OGJhZjk1
MWQzLi5kMzNlMmNkNmNjMTdlNzJkMjI3NGMwM2Q4YjI0NDFiNzhmODQ5NTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAt
Nzc5LDcgKzc3OSw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IHBvc2l0aW9uT2Zmc2V0VmFs
dWUoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBDU1NQcm9wZXJ0CiAgICAgLy8gV2Ugc2hvdWxk
IHJldHVybiB0aGUgInVzZWQgdmFsdWUiLgogICAgIGF1dG8mIGJveCA9IGRvd25jYXN0PFJlbmRl
ckJveD4oKnJlbmRlcmVyKTsKICAgICBhdXRvKiBjb250YWluaW5nQmxvY2sgPSBib3guY29udGFp
bmluZ0Jsb2NrKCk7Ci0gICAgaWYgKGJveC5pc1JlbFBvc2l0aW9uZWQoKSB8fCAhY29udGFpbmlu
Z0Jsb2NrKQorICAgIGlmIChib3guaXNSZWxhdGl2ZWx5UG9zaXRpb25lZCgpIHx8ICFjb250YWlu
aW5nQmxvY2spCiAgICAgICAgIHJldHVybiB6b29tQWRqdXN0ZWRQaXhlbFZhbHVlKGdldE9mZnNl
dFVzZWRTdHlsZVJlbGF0aXZlKGJveCwgcHJvcGVydHlJRCksIHN0eWxlKTsKICAgICBpZiAocmVu
ZGVyZXItPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQogICAgICAgICByZXR1cm4gem9vbUFkanVz
dGVkUGl4ZWxWYWx1ZShnZXRPZmZzZXRVc2VkU3R5bGVPdXRPZkZsb3dQb3NpdGlvbmVkKCpjb250
YWluaW5nQmxvY2ssIGJveCwgcHJvcGVydHlJRCksIHN0eWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCBjODk3ZTBlYTVhMmVmNjkwN2YxMmM0ZThiMzYyZmI1ZTc5MmJkMTdlLi43ZmJhMGM2
NjllZDY2YzYzMTRlNmIwYzMyMzc5YWU0ZGI4YzA0MmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC0xMDM1LDcgKzEwMzUsNyBAQCBzdGF0aWMgYm9vbCBsYXlvdXRPdmVyZmxvd1JlY3RDb250
YWluc0FsbERlc2NlbmRhbnRzKGNvbnN0IFJlbmRlckJveCYgcmVuZGVyQm94KQogICAgICAgICBm
b3IgKGF1dG8qIHBvc2l0aW9uZWRCb3ggOiAqdmlld1Bvc2l0aW9uZWRPYmplY3RzKSB7CiAgICAg
ICAgICAgICBpZiAocG9zaXRpb25lZEJveCA9PSAmcmVuZGVyQm94KQogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKHBvc2l0aW9uZWRCb3gtPnN0eWxlKCkucG9zaXRp
b24oKSA9PSBGaXhlZFBvc2l0aW9uICYmIHJlbmRlckJveC5lbGVtZW50KCktPmNvbnRhaW5zKHBv
c2l0aW9uZWRCb3gtPmVsZW1lbnQoKSkpCisgICAgICAgICAgICBpZiAocG9zaXRpb25lZEJveC0+
aXNGaXhlZFBvc2l0aW9uZWQoKSAmJiByZW5kZXJCb3guZWxlbWVudCgpLT5jb250YWlucyhwb3Np
dGlvbmVkQm94LT5lbGVtZW50KCkpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlv
dXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCmlu
ZGV4IDk3OGRlNWM0N2Y1ZDIzZWE3ZDlhM2IyNmI4MjM1YzhjMWQ3NjRmYTAuLmFlMmYxMzc3YWQ0
ZGI3MGI0MmY0MzJlNDU5ZGVkZjJjZTYyMWM2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xheW91dFN0YXRlLmNwcApAQCAtNDIsNyArNDIsNyBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3Rh
dGUoc3RkOjp1bmlxdWVfcHRyPExheW91dFN0YXRlPiBhbmNlc3RvciwgUmVuZGVyQm94KiByZW5k
ZQogewogICAgIEFTU0VSVChtX2FuY2VzdG9yKTsKIAotICAgIGJvb2wgZml4ZWQgPSByZW5kZXJl
ci0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgcmVuZGVyZXItPnN0eWxlKCkucG9zaXRpb24o
KSA9PSBGaXhlZFBvc2l0aW9uOworICAgIGJvb2wgZml4ZWQgPSByZW5kZXJlci0+aXNGaXhlZFBv
c2l0aW9uZWQoKTsKICAgICBpZiAoZml4ZWQpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9l
c24ndCB3b3JrIGNvcnJlY3RseSB3aXRoIHRyYW5zZm9ybXMuCiAgICAgICAgIEZsb2F0UG9pbnQg
Zml4ZWRPZmZzZXQgPSByZW5kZXJlci0+dmlldygpLmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50
KCksIElzRml4ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91
dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAppbmRleCA2
ZDU2NmIwMWVkYmJkNDBkOGRkYTY1ZmY2YmQ1ZTJhZjE1OGIyMjY0Li42Y2YwZDE2ODU2NTAxMjNk
MDA3YWRlZjFiN2M2YTZiNGRiZmMwZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGF5b3V0U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0
U3RhdGUuaApAQCAtMTAzLDkgKzEwMyw5IEBAIHB1YmxpYzoKICAgICAvLyBlLmcuLCBiZWNhdXNl
IG9mIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nLgogICAgIExheW91dFJlY3QgbV9jbGlwUmVjdDsKICAg
ICAKLSAgICAvLyB4L3kgb2Zmc2V0IGZyb20gY29udGFpbmVyLiBJbmNsdWRlcyByZWxhdGl2ZSBw
b3NpdGlvbmluZyBhbmQgc2Nyb2xsIG9mZnNldHMuCisgICAgLy8geC95IG9mZnNldCBmcm9tIGxh
eW91dCByb290LiBJbmNsdWRlcyBpbi1mbG93IHBvc2l0aW9uaW5nIGFuZCBzY3JvbGwgb2Zmc2V0
cy4KICAgICBMYXlvdXRTaXplIG1fcGFpbnRPZmZzZXQ7Ci0gICAgLy8geC95IG9mZnNldCBmcm9t
IGNvbnRhaW5lci4gRG9lcyBub3QgaW5jbHVkZSByZWxhdGl2ZSBwb3NpdGlvbmluZyBvciBzY3Jv
bGwgb2Zmc2V0cy4KKyAgICAvLyB4L3kgb2Zmc2V0IGZyb20gbGF5b3V0IHJvb3QuIERvZXMgbm90
IGluY2x1ZGUgaW4tZmxvdyBwb3NpdGlvbmluZyBvciBzY3JvbGwgb2Zmc2V0cy4KICAgICBMYXlv
dXRTaXplIG1fbGF5b3V0T2Zmc2V0OwogICAgIC8vIFRyYW5zaWVudCBvZmZzZXQgZnJvbSB0aGUg
ZmluYWwgcG9zaXRpb24gb2YgdGhlIG9iamVjdAogICAgIC8vIHVzZWQgdG8gZW5zdXJlIHRoYXQg
cmVwYWludHMgaGFwcGVuIGluIHRoZSBjb3JyZWN0IHBsYWNlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDk2MmQwMTBlOTViNzA5ZDk5OTQ0NjE4MjI1MmQ2
YjYyNWU0ZjA2NS4uNGQ5Yzc4MTlhZTkxOGQ4ZTA4ODZhMGZlZWQxM2FkZWE4MjM5OWExMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0zNTMxLDkgKzM1MzEs
OSBAQCBjb25zdCBjaGFyKiBSZW5kZXJCbG9jazo6cmVuZGVyTmFtZSgpIGNvbnN0CiAgICAgICAg
IHJldHVybiAiUmVuZGVyQmxvY2sgKGdlbmVyYXRlZCkiOwogICAgIGlmIChpc0Fub255bW91cygp
KQogICAgICAgICByZXR1cm4gIlJlbmRlckJsb2NrIChnZW5lcmF0ZWQpIjsKLSAgICBpZiAoaXNS
ZWxQb3NpdGlvbmVkKCkpCisgICAgaWYgKGlzUmVsYXRpdmVseVBvc2l0aW9uZWQoKSkKICAgICAg
ICAgcmV0dXJuICJSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkiOwotICAgIGlmIChp
c1N0aWNreVBvc2l0aW9uZWQoKSkKKyAgICBpZiAoaXNTdGlja2lseVBvc2l0aW9uZWQoKSkKICAg
ICAgICAgcmV0dXJuICJSZW5kZXJCbG9jayAoc3RpY2t5IHBvc2l0aW9uZWQpIjsKICAgICByZXR1
cm4gIlJlbmRlckJsb2NrIjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAK
aW5kZXggYmE4YTY2MDU3MjhkMWE2ODU5NDA5ODNiMWM1ODFjNTQ4YTdlNTI4Ny4uZTVmMjU0MDcw
NTZmYzg5MGM3YjhiNDU4MTNiZTRmM2Y3ZDU3Mjg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAKQEAgLTc0Miw3ICs3NDIsNyBAQCBMYXlvdXRSZWN0IFJlbmRlckJveDo6
cmVmbGVjdGVkUmVjdChjb25zdCBMYXlvdXRSZWN0JiByKSBjb25zdAogCiBib29sIFJlbmRlckJv
eDo6Zml4ZWRFbGVtZW50TGF5c091dFJlbGF0aXZlVG9GcmFtZShjb25zdCBGcmFtZVZpZXcmIGZy
YW1lVmlldykgY29uc3QKIHsKLSAgICByZXR1cm4gc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVk
UG9zaXRpb24gJiYgY29udGFpbmVyKCktPmlzUmVuZGVyVmlldygpICYmIGZyYW1lVmlldy5maXhl
ZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCk7CisgICAgcmV0dXJuIGlzRml4ZWRQb3Np
dGlvbmVkKCkgJiYgY29udGFpbmVyKCktPmlzUmVuZGVyVmlldygpICYmIGZyYW1lVmlldy5maXhl
ZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKCk7CiB9CiAKIGJvb2wgUmVuZGVyQm94Ojpp
bmNsdWRlVmVydGljYWxTY3JvbGxiYXJTaXplKCkgY29uc3QKQEAgLTE0MjMsNyArMTQyMyw3IEBA
IGJvb2wgUmVuZGVyQm94Ojpmb3JlZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJlY3QoY29uc3Qg
TGF5b3V0UmVjdCYgbG9jYWxSZWN0LCB1CiAgICAgICAgIGlmICghaXNDYW5kaWRhdGVGb3JPcGFx
dWVuZXNzVGVzdChjaGlsZEJveCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgTGF5
b3V0UG9pbnQgY2hpbGRMb2NhdGlvbiA9IGNoaWxkQm94LmxvY2F0aW9uKCk7Ci0gICAgICAgIGlm
IChjaGlsZEJveC5pc1JlbFBvc2l0aW9uZWQoKSkKKyAgICAgICAgaWYgKGNoaWxkQm94LmlzUmVs
YXRpdmVseVBvc2l0aW9uZWQoKSkKICAgICAgICAgICAgIGNoaWxkTG9jYXRpb24ubW92ZShjaGls
ZEJveC5yZWxhdGl2ZVBvc2l0aW9uT2Zmc2V0KCkpOwogICAgICAgICBMYXlvdXRSZWN0IGNoaWxk
TG9jYWxSZWN0ID0gbG9jYWxSZWN0OwogICAgICAgICBjaGlsZExvY2FsUmVjdC5tb3ZlQnkoLWNo
aWxkTG9jYXRpb24pOwpAQCAtMTkzNSw3ICsxOTM1LDcgQEAgdm9pZCBSZW5kZXJCb3g6Om1hcExv
Y2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW4KICAgICBpZiAoIWNvbnRhaW5lcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBpc0Zp
eGVkUG9zID0gc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb247CisgICAgYm9vbCBp
c0ZpeGVkUG9zID0gaXNGaXhlZFBvc2l0aW9uZWQoKTsKICAgICAvLyBJZiB0aGlzIGJveCBoYXMg
YSB0cmFuc2Zvcm0sIGl0IGFjdHMgYXMgYSBmaXhlZCBwb3NpdGlvbiBjb250YWluZXIgZm9yIGZp
eGVkIGRlc2NlbmRhbnRzLAogICAgIC8vIGFuZCBtYXkgaXRzZWxmIGFsc28gYmUgZml4ZWQgcG9z
aXRpb24uIFNvIHByb3BhZ2F0ZSAnZml4ZWQnIHVwIG9ubHkgaWYgdGhpcyBib3ggaXMgZml4ZWQg
cG9zaXRpb24uCiAgICAgaWYgKGhhc1RyYW5zZm9ybSgpICYmICFpc0ZpeGVkUG9zKQpAQCAtMTk3
OCw3ICsxOTc4LDcgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJCb3g6OnB1c2hNYXBwaW5n
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamUKICAgICBpZiAoIWNvbnRhaW5l
cikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBib29sIGlzRml4ZWRQb3MgPSBzdHls
ZSgpLnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbjsKKyAgICBib29sIGlzRml4ZWRQb3MgPSBp
c0ZpeGVkUG9zaXRpb25lZCgpOwogICAgIExheW91dFNpemUgYWRqdXN0bWVudEZvclNraXBwZWRB
bmNlc3RvcjsKICAgICBpZiAoYW5jZXN0b3JTa2lwcGVkKSB7CiAgICAgICAgIC8vIFRoZXJlIGNh
bid0IGJlIGEgdHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQgY29udGFpbmVy
LCBiZWNhdXNlIHRyYW5zZm9ybXMgY3JlYXRlIGNvbnRhaW5lcnMsIHNvIGl0IHNob3VsZCBiZSBz
YWZlCkBAIC0yMDA2LDcgKzIwMDYsNyBAQCBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlckJveDo6
cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZQogCiB2b2lk
IFJlbmRlckJveDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7Ci0gICAgYm9vbCBp
c0ZpeGVkUG9zID0gc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb247CisgICAgYm9v
bCBpc0ZpeGVkUG9zID0gaXNGaXhlZFBvc2l0aW9uZWQoKTsKICAgICBpZiAoaGFzVHJhbnNmb3Jt
KCkgJiYgIWlzRml4ZWRQb3MpIHsKICAgICAgICAgLy8gSWYgdGhpcyBib3ggaGFzIGEgdHJhbnNm
b3JtLCBpdCBhY3RzIGFzIGEgZml4ZWQgcG9zaXRpb24gY29udGFpbmVyIGZvciBmaXhlZCBkZXNj
ZW5kYW50cywKICAgICAgICAgLy8gYW5kIG1heSBpdHNlbGYgYWxzbyBiZSBmaXhlZCBwb3NpdGlv
bi4gU28gcHJvcGFnYXRlICdmaXhlZCcgdXAgb25seSBpZiB0aGlzIGJveCBpcyBmaXhlZCBwb3Np
dGlvbi4KQEAgLTIwMTcsMTAgKzIwMTcsMTAgQEAgdm9pZCBSZW5kZXJCb3g6Om1hcEFic29sdXRl
VG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgVHJhbnNmb3JtU3RhdGUKICAg
ICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQobW9kZSwgdHJh
bnNmb3JtU3RhdGUpOwogfQogCi1MYXlvdXRTaXplIFJlbmRlckJveDo6b2Zmc2V0RnJvbUNvbnRh
aW5lcihSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgTGF5b3V0UG9pbnQmLCBib29sKiBv
ZmZzZXREZXBlbmRzT25Qb2ludCkgY29uc3QKK0xheW91dFNpemUgUmVuZGVyQm94OjpvZmZzZXRG
cm9tQ29udGFpbmVyKFJlbmRlckVsZW1lbnQmIGNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQm
LCBib29sKiBvZmZzZXREZXBlbmRzT25Qb2ludCkgY29uc3QKIHsKICAgICAvLyBBIGZyYWdtZW50
ICJoYXMiIGJveGVzIGluc2lkZSBpdCB3aXRob3V0IGJlaW5nIHRoZWlyIGNvbnRhaW5lci4gCi0g
ICAgQVNTRVJUKCZyZW5kZXJlciA9PSBjb250YWluZXIoKSB8fCBpczxSZW5kZXJGcmFnbWVudENv
bnRhaW5lcj4ocmVuZGVyZXIpKTsKKyAgICBBU1NFUlQoJmNvbnRhaW5lciA9PSB0aGlzLT5jb250
YWluZXIoKSB8fCBpczxSZW5kZXJGcmFnbWVudENvbnRhaW5lcj4oY29udGFpbmVyKSk7CiAKICAg
ICBMYXlvdXRTaXplIG9mZnNldDsgICAgCiAgICAgaWYgKGlzSW5GbG93UG9zaXRpb25lZCgpKQpA
QCAtMjAyOSwxNCArMjAyOSwxNCBAQCBMYXlvdXRTaXplIFJlbmRlckJveDo6b2Zmc2V0RnJvbUNv
bnRhaW5lcihSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgTGF5b3V0UAogICAgIGlmICgh
aXNJbmxpbmUoKSB8fCBpc1JlcGxhY2VkKCkpCiAgICAgICAgIG9mZnNldCArPSB0b3BMZWZ0TG9j
YXRpb25PZmZzZXQoKTsKIAotICAgIGlmIChpczxSZW5kZXJCb3g+KHJlbmRlcmVyKSkKLSAgICAg
ICAgb2Zmc2V0IC09IHRvTGF5b3V0U2l6ZShkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKS5z
Y3JvbGxQb3NpdGlvbigpKTsKKyAgICBpZiAoaXM8UmVuZGVyQm94Pihjb250YWluZXIpKQorICAg
ICAgICBvZmZzZXQgLT0gdG9MYXlvdXRTaXplKGRvd25jYXN0PFJlbmRlckJveD4oY29udGFpbmVy
KS5zY3JvbGxQb3NpdGlvbigpKTsKIAotICAgIGlmIChzdHlsZSgpLnBvc2l0aW9uKCkgPT0gQWJz
b2x1dGVQb3NpdGlvbiAmJiByZW5kZXJlci5pc0luRmxvd1Bvc2l0aW9uZWQoKSAmJiBpczxSZW5k
ZXJJbmxpbmU+KHJlbmRlcmVyKSkKLSAgICAgICAgb2Zmc2V0ICs9IGRvd25jYXN0PFJlbmRlcklu
bGluZT4ocmVuZGVyZXIpLm9mZnNldEZvckluRmxvd1Bvc2l0aW9uZWRJbmxpbmUodGhpcyk7Cisg
ICAgaWYgKGlzQWJzb2x1dGVseVBvc2l0aW9uZWQoKSAmJiBjb250YWluZXIuaXNJbkZsb3dQb3Np
dGlvbmVkKCkgJiYgaXM8UmVuZGVySW5saW5lPihjb250YWluZXIpKQorICAgICAgICBvZmZzZXQg
Kz0gZG93bmNhc3Q8UmVuZGVySW5saW5lPihjb250YWluZXIpLm9mZnNldEZvckluRmxvd1Bvc2l0
aW9uZWRJbmxpbmUodGhpcyk7CiAKICAgICBpZiAob2Zmc2V0RGVwZW5kc09uUG9pbnQpCi0gICAg
ICAgICpvZmZzZXREZXBlbmRzT25Qb2ludCB8PSBpczxSZW5kZXJGcmFnbWVudGVkRmxvdz4ocmVu
ZGVyZXIpOworICAgICAgICAqb2Zmc2V0RGVwZW5kc09uUG9pbnQgfD0gaXM8UmVuZGVyRnJhZ21l
bnRlZEZsb3c+KGNvbnRhaW5lcik7CiAKICAgICByZXR1cm4gb2Zmc2V0OwogfQpAQCAtMzIwOSw3
ICszMjA5LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxX
aWR0aEZvclBvc2l0aW9uZWQoY29uc3QgUmVuZGVyQm94TW8KICAgICB9CiAKICAgICBpZiAoaXM8
UmVuZGVyQm94Pihjb250YWluaW5nQmxvY2spKSB7Ci0gICAgICAgIGJvb2wgaXNGaXhlZFBvc2l0
aW9uID0gc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb247CisgICAgICAgIGJvb2wg
aXNGaXhlZFBvc2l0aW9uID0gaXNGaXhlZFBvc2l0aW9uZWQoKTsKIAogICAgICAgICBSZW5kZXJG
cmFnbWVudGVkRmxvdyogZnJhZ21lbnRlZEZsb3cgPSBlbmNsb3NpbmdGcmFnbWVudGVkRmxvdygp
OwogICAgICAgICBpZiAoIWZyYWdtZW50ZWRGbG93KSB7CkBAIC0zMjc0LDcgKzMyNzQsNyBAQCBM
YXlvdXRVbml0IFJlbmRlckJveDo6Y29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodEZvclBvc2l0
aW9uZWQoY29uc3QgUmVuZGVyQm94TQogICAgIH0KIAogICAgIGlmIChjb250YWluaW5nQmxvY2su
aXNCb3goKSkgewotICAgICAgICBib29sIGlzRml4ZWRQb3NpdGlvbiA9IHN0eWxlKCkucG9zaXRp
b24oKSA9PSBGaXhlZFBvc2l0aW9uOworICAgICAgICBib29sIGlzRml4ZWRQb3NpdGlvbiA9IGlz
Rml4ZWRQb3NpdGlvbmVkKCk7CiAKICAgICAgICAgaWYgKGlzRml4ZWRQb3NpdGlvbiAmJiBpczxS
ZW5kZXJWaWV3Pihjb250YWluaW5nQmxvY2spKQogICAgICAgICAgICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlclZpZXc+KGNvbnRhaW5pbmdCbG9jaykuY2xpZW50TG9naWNhbEhlaWdodEZvckZpeGVk
UG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCmluZGV4IGY4M2VkYWMyNDU2MTcwZjQwOWM2YmY1MzdhYjQzNDlmYWJhYzE5
YTguLjdjOGY2MDI3OWNjZDMyMDdkZWY2MjNmM2ZmZDE5ZmQ2OWViZjZiNDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcApAQCAtNDQ4
LDkgKzQ0OCw5IEBAIExheW91dFBvaW50IFJlbmRlckJveE1vZGVsT2JqZWN0OjphZGp1c3RlZFBv
c2l0aW9uUmVsYXRpdmVUb09mZnNldFBhcmVudChjb25zdCBMCiAgICAgICAgIGlmIChpczxSZW5k
ZXJCb3g+KCpvZmZzZXRQYXJlbnQpICYmICFvZmZzZXRQYXJlbnQtPmlzQm9keSgpICYmICFpczxS
ZW5kZXJUYWJsZT4oKm9mZnNldFBhcmVudCkpCiAgICAgICAgICAgICByZWZlcmVuY2VQb2ludC5t
b3ZlKC1kb3duY2FzdDxSZW5kZXJCb3g+KCpvZmZzZXRQYXJlbnQpLmJvcmRlckxlZnQoKSwgLWRv
d25jYXN0PFJlbmRlckJveD4oKm9mZnNldFBhcmVudCkuYm9yZGVyVG9wKCkpOwogICAgICAgICBp
ZiAoIWlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IGVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCkp
IHsKLSAgICAgICAgICAgIGlmIChpc1JlbFBvc2l0aW9uZWQoKSkKKyAgICAgICAgICAgIGlmIChp
c1JlbGF0aXZlbHlQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICAgICAgcmVmZXJlbmNlUG9pbnQu
bW92ZShyZWxhdGl2ZVBvc2l0aW9uT2Zmc2V0KCkpOwotICAgICAgICAgICAgZWxzZSBpZiAoaXNT
dGlja3lQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICBlbHNlIGlmIChpc1N0aWNraWx5UG9zaXRp
b25lZCgpKQogICAgICAgICAgICAgICAgIHJlZmVyZW5jZVBvaW50Lm1vdmUoc3RpY2t5UG9zaXRp
b25PZmZzZXQoKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIENTUyByZWdpb25zIHNw
ZWNpZmljYXRpb24gc2F5cyB0aGF0IHJlZ2lvbiBmbG93cyBzaG91bGQgcmV0dXJuIHRoZSBib2R5
IGVsZW1lbnQgYXMgdGhlaXIgb2Zmc2V0UGFyZW50LgpAQCAtNjAxLDEwICs2MDEsMTAgQEAgTGF5
b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c3RpY2t5UG9zaXRpb25PZmZzZXQoKSBjb25z
dAogCiBMYXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2JqZWN0OjpvZmZzZXRGb3JJbkZsb3dQb3Np
dGlvbigpIGNvbnN0CiB7Ci0gICAgaWYgKGlzUmVsUG9zaXRpb25lZCgpKQorICAgIGlmIChpc1Jl
bGF0aXZlbHlQb3NpdGlvbmVkKCkpCiAgICAgICAgIHJldHVybiByZWxhdGl2ZVBvc2l0aW9uT2Zm
c2V0KCk7CiAKLSAgICBpZiAoaXNTdGlja3lQb3NpdGlvbmVkKCkpCisgICAgaWYgKGlzU3RpY2tp
bHlQb3NpdGlvbmVkKCkpCiAgICAgICAgIHJldHVybiBzdGlja3lQb3NpdGlvbk9mZnNldCgpOwog
CiAgICAgcmV0dXJuIExheW91dFNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKaW5kZXggZTkyMDJjYmE3
MDQyMGQyNTc0NzEyZjdlZmIyODA5MDk4OGFjODc4ZS4uNWE0MjVhYTI3ZmQ3NWRmMWZjMWUxNjA2
NGZiMDNmOGJjYWRkMTkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTExMjIsNyArMTEyMiw3IEBA
IGNvbnN0IGNoYXIqIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6cmVuZGVyTmFtZSgpIGNv
bnN0CiAgICAgICAgIHJldHVybiAiUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94IChnZW5lcmF0
ZWQpIjsKICAgICBpZiAoaXNBbm9ueW1vdXMoKSkKICAgICAgICAgcmV0dXJuICJSZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3ggKGdlbmVyYXRlZCkiOwotICAgIGlmIChpc1JlbFBvc2l0aW9uZWQo
KSkKKyAgICBpZiAoaXNSZWxhdGl2ZWx5UG9zaXRpb25lZCgpKQogICAgICAgICByZXR1cm4gIlJl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCAocmVsYXRpdmUgcG9zaXRpb25lZCkiOwogICAgIHJl
dHVybiAiUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94IjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwCmluZGV4IDdkMzhjNzg3NjY0
ZTY5Zjc0OTEzNTAwYTFkNWU4ZWIwMWYyNTI4M2IuLmEwZDQzNjNiNTU0OTllZmZkNjMwZDFmYzEz
MmU4MzdjNjk2OGNiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGcmFnbWVudGVkRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZyYWdtZW50ZWRGbG93LmNwcApAQCAtMzI0LDkgKzMyNCw5IEBAIExheW91dFBvaW50IFJlbmRl
ckZyYWdtZW50ZWRGbG93OjphZGp1c3RlZFBvc2l0aW9uUmVsYXRpdmVUb09mZnNldFBhcmVudChj
b25zdCBSCiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFNpbmNlIHRoZSB0b3AgaGFzIGJl
ZW4gb3ZlcnJpZGVuLCBjaGVjayBpZiB0aGUKICAgICAgICAgICAgIC8vIHJlbGF0aXZlL3N0aWNr
eSBwb3NpdGlvbmluZyBtdXN0IGJlIHJlY29uc2lkZXJlZC4KLSAgICAgICAgICAgIGlmIChib3hN
b2RlbE9iamVjdC5pc1JlbFBvc2l0aW9uZWQoKSkKKyAgICAgICAgICAgIGlmIChib3hNb2RlbE9i
amVjdC5pc1JlbGF0aXZlbHlQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICAgICAgcmVmZXJlbmNl
UG9pbnQubW92ZSgwLCBib3hNb2RlbE9iamVjdC5yZWxhdGl2ZVBvc2l0aW9uT2Zmc2V0KCkuaGVp
Z2h0KCkpOwotICAgICAgICAgICAgZWxzZSBpZiAoYm94TW9kZWxPYmplY3QuaXNTdGlja3lQb3Np
dGlvbmVkKCkpCisgICAgICAgICAgICBlbHNlIGlmIChib3hNb2RlbE9iamVjdC5pc1N0aWNraWx5
UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgICAgIHJlZmVyZW5jZVBvaW50Lm1vdmUoMCwgYm94
TW9kZWxPYmplY3Quc3RpY2t5UG9zaXRpb25PZmZzZXQoKS5oZWlnaHQoKSk7CiAgICAgICAgIH0K
ICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2Vv
bWV0cnlNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFw
LmNwcAppbmRleCA2YjMzMWNmZjdiYzQyNWZkYzBhYzQ3ZjdhZWJlZGU1YWY2YTUxMTM4Li5iOTA0
NWU2NzkwODczYWJmODFhOTBkZmE1YmJiMTEwOTNjNjc3YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCBz
dGF0aWMgYm9vbCBjYW5NYXBCZXR3ZWVuUmVuZGVyZXJzVmlhTGF5ZXJzKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QmIHJlbmRlcgogewogICAgIGZvciAoY29uc3QgUmVuZGVyRWxlbWVudCog
Y3VycmVudCA9ICZyZW5kZXJlcjsgOyBjdXJyZW50ID0gY3VycmVudC0+cGFyZW50KCkpIHsKICAg
ICAgICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlID0gY3VycmVudC0+c3R5bGUoKTsKLSAgICAg
ICAgaWYgKHN0eWxlLnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbiB8fCBzdHlsZS5pc0ZsaXBw
ZWRCbG9ja3NXcml0aW5nTW9kZSgpKQorICAgICAgICBpZiAoY3VycmVudC0+aXNGaXhlZFBvc2l0
aW9uZWQoKSB8fCBzdHlsZS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlmIChjdXJyZW50LT5oYXNUcmFuc2Zvcm1SZWxh
dGVkUHJvcGVydHkoKSAmJiAoY3VycmVudC0+c3R5bGUoKS5oYXNUcmFuc2Zvcm0oKSB8fCBjdXJy
ZW50LT5zdHlsZSgpLmhhc1BlcnNwZWN0aXZlKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwCmluZGV4IDk4NTY1YzkxZTM4YTllYzMwNDM3YjlhMTcwMTBjNmE2ZjNjODRh
MDAuLjUxZGFkZjVhMjBiZmI4MmQ1YzdlNDM0MmIwNjkyOWRkNDEyMWQxNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTE2OTMsNyArMTY5Myw3IEBAIGNvbnN0
IGNoYXIqIFJlbmRlckdyaWQ6OnJlbmRlck5hbWUoKSBjb25zdAogICAgICAgICByZXR1cm4gIlJl
bmRlckdyaWQgKHBvc2l0aW9uZWQpIjsKICAgICBpZiAoaXNBbm9ueW1vdXMoKSkKICAgICAgICAg
cmV0dXJuICJSZW5kZXJHcmlkIChnZW5lcmF0ZWQpIjsKLSAgICBpZiAoaXNSZWxQb3NpdGlvbmVk
KCkpCisgICAgaWYgKGlzUmVsYXRpdmVseVBvc2l0aW9uZWQoKSkKICAgICAgICAgcmV0dXJuICJS
ZW5kZXJHcmlkIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSI7CiAgICAgcmV0dXJuICJSZW5kZXJHcmlk
IjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggZjVj
NDQ0ZDQ5Y2QzNGEzNzJkYTQ5MjdkNWIxYWQzOTYxOWEzNzQzYS4uOGU4Yjk2YTEyOTkxNjhmOGQ0
ODBjMjY4Y2Y2YzVhNTI3YzEwMjUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAKQEAgLTg0Miw5ICs4NDIsOSBAQCBMYXlvdXRVbml0IFJlbmRlcklubGluZTo6
bWFyZ2luQWZ0ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyU3R5bGUpIGNvbnN0CiAKIGNvbnN0
IGNoYXIqIFJlbmRlcklubGluZTo6cmVuZGVyTmFtZSgpIGNvbnN0CiB7Ci0gICAgaWYgKGlzUmVs
UG9zaXRpb25lZCgpKQorICAgIGlmIChpc1JlbGF0aXZlbHlQb3NpdGlvbmVkKCkpCiAgICAgICAg
IHJldHVybiAiUmVuZGVySW5saW5lIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSI7Ci0gICAgaWYgKGlz
U3RpY2t5UG9zaXRpb25lZCgpKQorICAgIGlmIChpc1N0aWNraWx5UG9zaXRpb25lZCgpKQogICAg
ICAgICByZXR1cm4gIlJlbmRlcklubGluZSAoc3RpY2t5IHBvc2l0aW9uZWQpIjsKICAgICAvLyBG
SVhNRTogVGVtcG9yYXJ5IGhhY2sgd2hpbGUgdGhlIG5ldyBnZW5lcmF0ZWQgY29udGVudCBzeXN0
ZW0gaXMgYmVpbmcgaW1wbGVtZW50ZWQuCiAgICAgaWYgKGlzUHNldWRvRWxlbWVudCgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMGNhMTMwZjhjOGE5ZWNh
OTI5ZDAwMjBlMzk4OWU4NDhiYjczMDllMC4uZmE5YWFmZTQ3YjU2MDgxZTEzYWViNDcyNTliY2Y2
YzljNThjNWMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBA
IC0zOTU5LDcgKzM5NTksNyBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mCiAgICAgfSBlbHNlIGlm
ICh2aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbigpID09IE5vdENvbXBvc2l0
ZWRGb3JCb3VuZHNPdXRPZlZpZXcpIHsKICAgICAgICAgLy8gRG9uJ3QgcGFpbnQgb3V0LW9mLXZp
ZXcgdmlld3BvcnQgY29uc3RyYWluZWQgbGF5ZXJzICh3aGVuIGRvaW5nIHByZXBhaW50aW5nKSBi
ZWNhdXNlIHRoZXkgd2lsbCBuZXZlciBiZSB2aXNpYmxlCiAgICAgICAgIC8vIHVubGVzcyB0aGVp
ciBwb3NpdGlvbiBvciB2aWV3cG9ydCBzaXplIGlzIGNoYW5nZWQuCi0gICAgICAgIEFTU0VSVChy
ZW5kZXJlcigpLnN0eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKTsKKyAgICAgICAg
QVNTRVJUKHJlbmRlcmVyKCkuaXNGaXhlZFBvc2l0aW9uZWQoKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTU0MTQsMTMgKzU0MTQsMTMgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3Vs
YXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIEMK
IAogICAgIC8vIEEgZml4ZWQgb2JqZWN0IGlzIGVzc2VudGlhbGx5IHRoZSByb290IG9mIGl0cyBj
b250YWluaW5nIGJsb2NrIGhpZXJhcmNoeSwgc28gd2hlbgogICAgIC8vIHdlIGVuY291bnRlciBz
dWNoIGFuIG9iamVjdCwgd2UgcmVzZXQgb3VyIGNsaXAgcmVjdHMgdG8gdGhlIGZpeGVkQ2xpcFJl
Y3QuCi0gICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRp
b24pIHsKKyAgICBpZiAocmVuZGVyZXIoKS5pc0ZpeGVkUG9zaXRpb25lZCgpKSB7CiAgICAgICAg
IGNsaXBSZWN0cy5zZXRQb3NDbGlwUmVjdChjbGlwUmVjdHMuZml4ZWRDbGlwUmVjdCgpKTsKICAg
ICAgICAgY2xpcFJlY3RzLnNldE92ZXJmbG93Q2xpcFJlY3QoY2xpcFJlY3RzLmZpeGVkQ2xpcFJl
Y3QoKSk7CiAgICAgICAgIGNsaXBSZWN0cy5zZXRGaXhlZCh0cnVlKTsKLSAgICB9IGVsc2UgaWYg
KHJlbmRlcmVyKCkuc3R5bGUoKS5oYXNJbkZsb3dQb3NpdGlvbigpKQorICAgIH0gZWxzZSBpZiAo
cmVuZGVyZXIoKS5pc0luRmxvd1Bvc2l0aW9uZWQoKSkKICAgICAgICAgY2xpcFJlY3RzLnNldFBv
c0NsaXBSZWN0KGNsaXBSZWN0cy5vdmVyZmxvd0NsaXBSZWN0KCkpOwotICAgIGVsc2UgaWYgKHJl
bmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb24pCisgICAgZWxz
ZSBpZiAocmVuZGVyZXIoKS5pc0Fic29sdXRlbHlQb3NpdGlvbmVkKCkpCiAgICAgICAgIGNsaXBS
ZWN0cy5zZXRPdmVyZmxvd0NsaXBSZWN0KGNsaXBSZWN0cy5wb3NDbGlwUmVjdCgpKTsKICAgICAK
ICAgICAvLyBVcGRhdGUgdGhlIGNsaXAgcmVjdHMgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byBjaGls
ZCBsYXllcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCmluZGV4IDMxOGI3MzM0YWFkNjYxNDk5MmZhYmYxMjM5ZDllMGYxYzdkNTg1MTcuLmZk
NjBlNDRlN2ZkMTU1YWJjY2IzN2FkYjEzM2JlNzE3MTYyOGZiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC01OTIsNyArNTkyLDcg
QEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbXBvc2l0ZWRCb3VuZHMoKQogICAg
ICAgICBhdXRvKiByb290TGF5ZXIgPSB2aWV3LmxheWVyKCk7CiAKICAgICAgICAgTGF5b3V0UmVj
dCBjbGlwcGluZ0JvdW5kczsKLSAgICAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlv
bigpID09IEZpeGVkUG9zaXRpb24gJiYgcmVuZGVyZXIoKS5jb250YWluZXIoKSA9PSAmdmlldykK
KyAgICAgICAgaWYgKHJlbmRlcmVyKCkuaXNGaXhlZFBvc2l0aW9uZWQoKSAmJiByZW5kZXJlcigp
LmNvbnRhaW5lcigpID09ICZ2aWV3KQogICAgICAgICAgICAgY2xpcHBpbmdCb3VuZHMgPSB2aWV3
LmZyYW1lVmlldygpLnJlY3RGb3JGaXhlZFBvc2l0aW9uTGF5b3V0KCk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIGNsaXBwaW5nQm91bmRzID0gdmlldy51bnNjYWxlZERvY3VtZW50UmVjdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcAppbmRleCBkMDRlNjQ3ZjNkYjVlYzM3Y2IyNmRkODVlNDExNmY1N2ZhMDZjNDk4Li5mOWY0
YzRmZDMzNDQ1NDYxZjkyOTdjNzQ3NDE5ZWYwODYwNDUyNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTA4Niw3ICsx
MDg2LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcoUmVuZGVy
TGF5ZXImIGxheWVyLCBDb21wb3NpdGluZ0NoYW5nZVIKIAogICAgIC8vIElmIGEgZml4ZWQgcG9z
aXRpb24gbGF5ZXIgZ2FpbmVkL2xvc3QgYSBiYWNraW5nIG9yIHRoZSByZWFzb24gbm90IGNvbXBv
c2l0aW5nIGl0IGNoYW5nZWQsCiAgICAgLy8gdGhlIHNjcm9sbGluZyBjb29yZGluYXRvciBuZWVk
cyB0byByZWNhbGN1bGF0ZSB3aGV0aGVyIGl0IGNhbiBkbyBmYXN0IHNjcm9sbGluZy4KLSAgICBp
ZiAobGF5ZXIucmVuZGVyZXIoKS5zdHlsZSgpLnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbikg
eworICAgIGlmIChsYXllci5yZW5kZXJlcigpLmlzRml4ZWRQb3NpdGlvbmVkKCkpIHsKICAgICAg
ICAgaWYgKGxheWVyLnZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKCkgIT0g
dmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24pIHsKICAgICAgICAgICAgIGxh
eWVyLnNldFZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKHZpZXdwb3J0Q29u
c3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKTsKICAgICAgICAgICAgIGxheWVyQ2hhbmdlZCA9
IHRydWU7CkBAIC0xMjAyLDcgKzEyMDIsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
Y29tcHV0ZUV4dGVudChjb25zdCBPdmVybGFwTWFwJiBvdmVybGFwTWFwLCBjb25zdCBSZQogCiAK
ICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0JiByZW5kZXJlciA9IGxheWVyLnJlbmRlcmVyKCk7
Ci0gICAgaWYgKHJlbmRlcmVyLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIHJlbmRlcmVyLnN0
eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uICYmIHJlbmRlcmVyLmNvbnRhaW5lcigp
ID09ICZtX3JlbmRlclZpZXcpIHsKKyAgICBpZiAocmVuZGVyZXIuaXNGaXhlZFBvc2l0aW9uZWQo
KSAmJiByZW5kZXJlci5jb250YWluZXIoKSA9PSAmbV9yZW5kZXJWaWV3KSB7CiAgICAgICAgIC8v
IEJlY2F1c2UgZml4ZWQgZWxlbWVudHMgZ2V0IG1vdmVkIGFyb3VuZCB3aXRob3V0IHJlLWNvbXB1
dGluZyBvdmVybGFwLCB3ZSBoYXZlIHRvIGNvbXB1dGUgYW4gb3ZlcmxhcAogICAgICAgICAvLyBy
ZWN0IHRoYXQgY292ZXJzIGFsbCB0aGUgbG9jYXRpb25zIHRoYXQgdGhlIGZpeGVkIGVsZW1lbnQg
Y291bGQgbW92ZSB0by4KICAgICAgICAgLy8gRklYTUU6IG5lZWQgdG8gaGFuZGxlIHN0aWNreSB0
b28uCkBAIC0yMTQyLDcgKzIxNDIsNyBAQCBPcHRpb25TZXQ8Q29tcG9zaXRpbmdSZWFzb24+IFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6cmVhc29uc0ZvckNvbXBvc2l0aW5nKGNvbnN0CiAgICAgICAg
IHJlYXNvbnMgfD0gQ29tcG9zaXRpbmdSZWFzb246OldpbGxDaGFuZ2U7CiAKICAgICBpZiAocmVx
dWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKHJlbmRlcmVyLCAqcmVuZGVyZXIubGF5ZXIoKSkp
Ci0gICAgICAgIHJlYXNvbnMgfD0gcmVuZGVyZXIuc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVk
UG9zaXRpb24gPyBDb21wb3NpdGluZ1JlYXNvbjo6UG9zaXRpb25GaXhlZCA6IENvbXBvc2l0aW5n
UmVhc29uOjpQb3NpdGlvblN0aWNreTsKKyAgICAgICAgcmVhc29ucyB8PSByZW5kZXJlci5pc0Zp
eGVkUG9zaXRpb25lZCgpID8gQ29tcG9zaXRpbmdSZWFzb246OlBvc2l0aW9uRml4ZWQgOiBDb21w
b3NpdGluZ1JlYXNvbjo6UG9zaXRpb25TdGlja3k7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAg
aWYgKHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JTY3JvbGxpbmcoKnJlbmRlcmVyLmxheWVyKCkpKQpA
QCAtMjU1Myw3ICsyNTUzLDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVz
Q29tcG9zaXRpbmdGb3JXaWxsQ2hhbmdlKFJlbmRlckxheWVyTW9kZWxPYmoKIAogYm9vbCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmlzQXN5bmNTY3JvbGxhYmxlU3RpY2t5TGF5ZXIoY29uc3QgUmVu
ZGVyTGF5ZXImIGxheWVyLCBjb25zdCBSZW5kZXJMYXllcioqIGVuY2xvc2luZ0FjY2VsZXJhdGVk
T3ZlcmZsb3dMYXllcikgY29uc3QKIHsKLSAgICBBU1NFUlQobGF5ZXIucmVuZGVyZXIoKS5pc1N0
aWNreVBvc2l0aW9uZWQoKSk7CisgICAgQVNTRVJUKGxheWVyLnJlbmRlcmVyKCkuaXNTdGlja2ls
eVBvc2l0aW9uZWQoKSk7CiAKICAgICBhdXRvKiBlbmNsb3NpbmdPdmVyZmxvd0xheWVyID0gbGF5
ZXIuZW5jbG9zaW5nT3ZlcmZsb3dDbGlwTGF5ZXIoRXhjbHVkZVNlbGYpOwogCkBAIC0yNTg0LDcg
KzI1ODQsNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aXNBc3luY1Njcm9sbGFibGVT
dGlja3lMYXllcihjb25zdCBSZW5kZXJMYXllciYgbGF5ZQogCiBib29sIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6aXNWaWV3cG9ydENvbnN0cmFpbmVkRml4ZWRPclN0aWNreUxheWVyKGNvbnN0IFJl
bmRlckxheWVyJiBsYXllcikgY29uc3QKIHsKLSAgICBpZiAobGF5ZXIucmVuZGVyZXIoKS5pc1N0
aWNreVBvc2l0aW9uZWQoKSkKKyAgICBpZiAobGF5ZXIucmVuZGVyZXIoKS5pc1N0aWNraWx5UG9z
aXRpb25lZCgpKQogICAgICAgICByZXR1cm4gaXNBc3luY1Njcm9sbGFibGVTdGlja3lMYXllcihs
YXllcik7CiAKICAgICBpZiAobGF5ZXIucmVuZGVyZXIoKS5zdHlsZSgpLnBvc2l0aW9uKCkgIT0g
Rml4ZWRQb3NpdGlvbikKQEAgLTI1OTIsNyArMjU5Miw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjppc1ZpZXdwb3J0Q29uc3RyYWluZWRGaXhlZE9yU3RpY2t5TGF5ZXIoY29uc3QgUmVu
ZGVyCiAKICAgICAvLyBGSVhNRTogSGFuZGxlIGZpeGVkIGluc2lkZSBvZiBhIHRyYW5zZm9ybSwg
d2hpY2ggc2hvdWxkIG5vdCBiZWhhdmUgYXMgZml4ZWQuCiAgICAgZm9yIChhdXRvKiBzdGFja2lu
Z0NvbnRhaW5lciA9IGxheWVyLnN0YWNraW5nQ29udGFpbmVyKCk7IHN0YWNraW5nQ29udGFpbmVy
OyBzdGFja2luZ0NvbnRhaW5lciA9IHN0YWNraW5nQ29udGFpbmVyLT5zdGFja2luZ0NvbnRhaW5l
cigpKSB7Ci0gICAgICAgIGlmIChzdGFja2luZ0NvbnRhaW5lci0+aXNDb21wb3NpdGVkKCkgJiYg
c3RhY2tpbmdDb250YWluZXItPnJlbmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVk
UG9zaXRpb24pCisgICAgICAgIGlmIChzdGFja2luZ0NvbnRhaW5lci0+aXNDb21wb3NpdGVkKCkg
JiYgc3RhY2tpbmdDb250YWluZXItPnJlbmRlcmVyKCkuaXNGaXhlZFBvc2l0aW9uZWQoKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTM3NTgsNyArMzc1OCw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxDb29yZGluYXRlZExheWVyKFJl
bmRlckxheWVyJiBsYXllciwgTGF5CiAgICAgLy8gSWYgYSBub2RlIHBsYXlzIGJvdGggcm9sZXMs
IGZpeGVkL3N0aWNreSBpcyBhbHdheXMgdGhlIGFuY2VzdG9yIG5vZGUgb2Ygc2Nyb2xsaW5nLgog
ICAgIGlmIChyZWFzb25zICYgVmlld3BvcnRDb25zdHJhaW5lZCkgewogICAgICAgICBTY3JvbGxp
bmdOb2RlVHlwZSBub2RlVHlwZSA9IEZyYW1lU2Nyb2xsaW5nTm9kZTsKLSAgICAgICAgaWYgKGxh
eWVyLnJlbmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24pCisgICAg
ICAgIGlmIChsYXllci5yZW5kZXJlcigpLmlzRml4ZWRQb3NpdGlvbmVkKCkpCiAgICAgICAgICAg
ICBub2RlVHlwZSA9IEZpeGVkTm9kZTsKICAgICAgICAgZWxzZSBpZiAobGF5ZXIucmVuZGVyZXIo
KS5zdHlsZSgpLnBvc2l0aW9uKCkgPT0gU3RpY2t5UG9zaXRpb24pCiAgICAgICAgICAgICBub2Rl
VHlwZSA9IFN0aWNreU5vZGU7CkBAIC0zODU2LDE0ICszODU2LDE0IEBAIHZvaWQgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZWdpc3RlckFsbFZpZXdwb3J0Q29uc3RyYWluZWRMYXllcnMoKQogICAg
ICAgICBBU1NFUlQobGF5ZXItPmlzQ29tcG9zaXRlZCgpKTsKIAogICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Vmlld3BvcnRDb25zdHJhaW50cz4gY29uc3RyYWludHM7Ci0gICAgICAgIGlmIChsYXll
ci0+cmVuZGVyZXIoKS5pc1N0aWNreVBvc2l0aW9uZWQoKSkgeworICAgICAgICBpZiAobGF5ZXIt
PnJlbmRlcmVyKCkuaXNTdGlja2lseVBvc2l0aW9uZWQoKSkgewogICAgICAgICAgICAgY29uc3Ry
YWludHMgPSBzdGQ6Om1ha2VfdW5pcXVlPFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50
cz4oY29tcHV0ZVN0aWNreVZpZXdwb3J0Q29uc3RyYWludHMoKmxheWVyKSk7CiAgICAgICAgICAg
ICBjb25zdCBSZW5kZXJMYXllciogZW5jbG9zaW5nVG91Y2hTY3JvbGxhYmxlTGF5ZXIgPSBudWxs
cHRyOwogICAgICAgICAgICAgaWYgKGlzQXN5bmNTY3JvbGxhYmxlU3RpY2t5TGF5ZXIoKmxheWVy
LCAmZW5jbG9zaW5nVG91Y2hTY3JvbGxhYmxlTGF5ZXIpICYmIGVuY2xvc2luZ1RvdWNoU2Nyb2xs
YWJsZUxheWVyKSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKGVuY2xvc2luZ1RvdWNoU2Nyb2xs
YWJsZUxheWVyLT5pc0NvbXBvc2l0ZWQoKSk7CiAgICAgICAgICAgICAgICAgc3RpY2t5Q29udGFp
bmVyTWFwLmFkZChsYXllci0+YmFja2luZygpLT5ncmFwaGljc0xheWVyKCktPnBsYXRmb3JtTGF5
ZXIoKSwgZW5jbG9zaW5nVG91Y2hTY3JvbGxhYmxlTGF5ZXItPmJhY2tpbmcoKS0+c2Nyb2xsaW5n
TGF5ZXIoKS0+cGxhdGZvcm1MYXllcigpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNl
IGlmIChsYXllci0+cmVuZGVyZXIoKS5zdHlsZSgpLnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlv
bikKKyAgICAgICAgfSBlbHNlIGlmIChsYXllci0+cmVuZGVyZXIoKS5pc0ZpeGVkUG9zaXRpb25l
ZCgpKQogICAgICAgICAgICAgY29uc3RyYWludHMgPSBzdGQ6Om1ha2VfdW5pcXVlPEZpeGVkUG9z
aXRpb25WaWV3cG9ydENvbnN0cmFpbnRzPihjb21wdXRlRml4ZWRWaWV3cG9ydENvbnN0cmFpbnRz
KCpsYXllcikpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggMDZiNTYxYzEyOTBkZTdmYjAy
ODU3N2JhYzJmZjc5YzViNmI3MzI0ZS4uMDIyZTBkZjFmYTlmMTk3ZWU1MmZiNDU0MTA5NmEyZTU0
MTc3ZTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAg
LTYwMiwxMCArNjAyLDkgQEAgUmVuZGVyQmxvY2sqIFJlbmRlck9iamVjdDo6Y29udGFpbmluZ0Js
b2NrKCkgY29uc3QKIHsKICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja0ZvclJlbmRlcmVyID0gW10o
Y29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAgICAgewotICAgICAgICBhdXRvJiBzdHls
ZSA9IHJlbmRlcmVyLnN0eWxlKCk7Ci0gICAgICAgIGlmIChzdHlsZS5wb3NpdGlvbigpID09IEFi
c29sdXRlUG9zaXRpb24pCisgICAgICAgIGlmIChyZW5kZXJlci5pc0Fic29sdXRlbHlQb3NpdGlv
bmVkKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXIuY29udGFpbmluZ0Jsb2NrRm9yQWJz
b2x1dGVQb3NpdGlvbigpOwotICAgICAgICBpZiAoc3R5bGUucG9zaXRpb24oKSA9PSBGaXhlZFBv
c2l0aW9uKQorICAgICAgICBpZiAocmVuZGVyZXIuaXNGaXhlZFBvc2l0aW9uZWQoKSkKICAgICAg
ICAgICAgIHJldHVybiByZW5kZXJlci5jb250YWluaW5nQmxvY2tGb3JGaXhlZFBvc2l0aW9uKCk7
CiAgICAgICAgIHJldHVybiByZW5kZXJlci5jb250YWluaW5nQmxvY2tGb3JPYmplY3RJbkZsb3co
KTsKICAgICB9OwpAQCAtMTA2OSwxMiArMTA2OCwxMiBAQCB2b2lkIFJlbmRlck9iamVjdDo6b3V0
cHV0UmVuZGVyT2JqZWN0KFRleHRTdHJlYW0mIHN0cmVhbSwgYm9vbCBtYXJrLCBpbnQgZGVwdGgp
CiAgICAgICAgIHN0cmVhbSA8PCAiQiI7CiAKICAgICBpZiAoaXNQb3NpdGlvbmVkKCkpIHsKLSAg
ICAgICAgaWYgKGlzUmVsUG9zaXRpb25lZCgpKQorICAgICAgICBpZiAoaXNSZWxhdGl2ZWx5UG9z
aXRpb25lZCgpKQogICAgICAgICAgICAgc3RyZWFtIDw8ICJSIjsKLSAgICAgICAgZWxzZSBpZiAo
aXNTdGlja3lQb3NpdGlvbmVkKCkpCisgICAgICAgIGVsc2UgaWYgKGlzU3RpY2tpbHlQb3NpdGlv
bmVkKCkpCiAgICAgICAgICAgICBzdHJlYW0gPDwgIksiOwogICAgICAgICBlbHNlIGlmIChpc091
dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewotICAgICAgICAgICAgaWYgKHN0eWxlKCkucG9zaXRpb24o
KSA9PSBBYnNvbHV0ZVBvc2l0aW9uKQorICAgICAgICAgICAgaWYgKGlzQWJzb2x1dGVseVBvc2l0
aW9uZWQoKSkKICAgICAgICAgICAgICAgICBzdHJlYW0gPDwgIkEiOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiWCI7CkBAIC0xNzE5LDcgKzE3MTgsNyBAQCBS
ZW5kZXJCb3hNb2RlbE9iamVjdCogUmVuZGVyT2JqZWN0OjpvZmZzZXRQYXJlbnQoKSBjb25zdAog
ICAgIC8vIEEgaXMgdGhlIHJvb3QgZWxlbWVudC4KICAgICAvLyBBIGlzIHRoZSBIVE1MIGJvZHkg
ZWxlbWVudC4KICAgICAvLyBUaGUgY29tcHV0ZWQgdmFsdWUgb2YgdGhlIHBvc2l0aW9uIHByb3Bl
cnR5IGZvciBlbGVtZW50IEEgaXMgZml4ZWQuCi0gICAgaWYgKGlzRG9jdW1lbnRFbGVtZW50UmVu
ZGVyZXIoKSB8fCBpc0JvZHkoKSB8fCAoaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgc3R5bGUo
KS5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24pKQorICAgIGlmIChpc0RvY3VtZW50RWxlbWVu
dFJlbmRlcmVyKCkgfHwgaXNCb2R5KCkgfHwgaXNGaXhlZFBvc2l0aW9uZWQoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJZiBBIGlzIGFuIGFyZWEgSFRNTCBlbGVtZW50IHdo
aWNoIGhhcyBhIG1hcCBIVE1MIGVsZW1lbnQgc29tZXdoZXJlIGluIHRoZSBhbmNlc3RvcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDM4YjAxMDVmYzBhYjRhN2Zh
OWZiZDY3ZjExZGJkY2ZmZDRjOTkzNzUuLjExMDcxOTI1ZDY2ZDgwNmQ3MGQ3YjNlMzY2MTcyNDU4
NTU4MmM2OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTQx
NCwxMSArNDE0LDEzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNGbG9hdGluZygpIGNvbnN0IHsg
cmV0dXJuIG1fYml0ZmllbGRzLmZsb2F0aW5nKCk7IH0KIAotICAgIGJvb2wgaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNPdXRPZkZsb3dQb3NpdGlv
bmVkKCk7IH0gLy8gYWJzb2x1dGUgb3IgZml4ZWQgcG9zaXRpb25pbmcKLSAgICBib29sIGlzSW5G
bG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmlzUmVsUG9zaXRpb25l
ZCgpIHx8IG1fYml0ZmllbGRzLmlzU3RpY2t5UG9zaXRpb25lZCgpOyB9IC8vIHJlbGF0aXZlIG9y
IHN0aWNreSBwb3NpdGlvbmluZwotICAgIGJvb2wgaXNSZWxQb3NpdGlvbmVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9iaXRmaWVsZHMuaXNSZWxQb3NpdGlvbmVkKCk7IH0gLy8gcmVsYXRpdmUgcG9zaXRp
b25pbmcKLSAgICBib29sIGlzU3RpY2t5UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0
ZmllbGRzLmlzU3RpY2t5UG9zaXRpb25lZCgpOyB9CiAgICAgYm9vbCBpc1Bvc2l0aW9uZWQoKSBj
b25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5pc1Bvc2l0aW9uZWQoKTsgfQorICAgIGJvb2wgaXNJ
bkZsb3dQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNSZWxhdGl2ZWx5
UG9zaXRpb25lZCgpIHx8IG1fYml0ZmllbGRzLmlzU3RpY2tpbHlQb3NpdGlvbmVkKCk7IH0KKyAg
ICBib29sIGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRz
LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpOyB9IC8vIGFic29sdXRlIG9yIGZpeGVkIHBvc2l0aW9u
aW5nCisgICAgYm9vbCBpc0ZpeGVkUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIGlzT3V0T2ZG
bG93UG9zaXRpb25lZCgpICYmIHN0eWxlKCkucG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uOyB9
CisgICAgYm9vbCBpc0Fic29sdXRlbHlQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gaXNPdXRP
ZkZsb3dQb3NpdGlvbmVkKCkgJiYgc3R5bGUoKS5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRp
b247IH0KKyAgICBib29sIGlzUmVsYXRpdmVseVBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBt
X2JpdGZpZWxkcy5pc1JlbGF0aXZlbHlQb3NpdGlvbmVkKCk7IH0KKyAgICBib29sIGlzU3RpY2tp
bHlQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNTdGlja2lseVBvc2l0
aW9uZWQoKTsgfQogCiAgICAgYm9vbCBpc1RleHQoKSBjb25zdCAgeyByZXR1cm4gIW1fYml0Zmll
bGRzLmlzQm94KCkgJiYgbV9iaXRmaWVsZHMuaXNUZXh0T3JSZW5kZXJWaWV3KCk7IH0KICAgICBi
b29sIGlzTGluZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuaXNMaW5lQnJlYWso
KTsgfQpAQCAtODU2LDcgKzg1OCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBJc1N0YXRpY2Fs
bHlQb3NpdGlvbmVkID0gMCwKICAgICAgICAgICAgIElzUmVsYXRpdmVseVBvc2l0aW9uZWQgPSAx
LAogICAgICAgICAgICAgSXNPdXRPZkZsb3dQb3NpdGlvbmVkID0gMiwKLSAgICAgICAgICAgIElz
U3RpY2t5UG9zaXRpb25lZCA9IDMKKyAgICAgICAgICAgIElzU3RpY2tpbHlQb3NpdGlvbmVkID0g
MwogICAgICAgICB9OwogCiAgICAgcHVibGljOgpAQCAtOTI5LDggKzkzMSw4IEBAIHByaXZhdGU6
CiAKICAgICBwdWJsaWM6CiAgICAgICAgIGJvb2wgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgY29u
c3QgeyByZXR1cm4gbV9wb3NpdGlvbmVkU3RhdGUgPT0gSXNPdXRPZkZsb3dQb3NpdGlvbmVkOyB9
Ci0gICAgICAgIGJvb2wgaXNSZWxQb3NpdGlvbmVkKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlv
bmVkU3RhdGUgPT0gSXNSZWxhdGl2ZWx5UG9zaXRpb25lZDsgfQotICAgICAgICBib29sIGlzU3Rp
Y2t5UG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb25lZFN0YXRlID09IElzU3Rp
Y2t5UG9zaXRpb25lZDsgfQorICAgICAgICBib29sIGlzUmVsYXRpdmVseVBvc2l0aW9uZWQoKSBj
b25zdCB7IHJldHVybiBtX3Bvc2l0aW9uZWRTdGF0ZSA9PSBJc1JlbGF0aXZlbHlQb3NpdGlvbmVk
OyB9CisgICAgICAgIGJvb2wgaXNTdGlja2lseVBvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBt
X3Bvc2l0aW9uZWRTdGF0ZSA9PSBJc1N0aWNraWx5UG9zaXRpb25lZDsgfQogICAgICAgICBib29s
IGlzUG9zaXRpb25lZCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9zaXRpb25lZFN0YXRlICE9IElzU3Rh
dGljYWxseVBvc2l0aW9uZWQ7IH0KIAogICAgICAgICB2b2lkIHNldFBvc2l0aW9uZWRTdGF0ZShp
bnQgcG9zaXRpb25TdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZVJvdy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93
LmgKaW5kZXggNmFlYmZiM2MyZmM5MzBiNjIyNzA4NGVkMjlhZDJlMjk4Y2IzNDZiZi4uNDEwNjE4
ODBhMWE1ODFjMDZhNTZmNWMxZTdiMWNkMTNlZjYxMWRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlUm93LmgKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGxheW91dCgpIG92ZXJyaWRlOwogICAgIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
cikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBoYXNPdmVyZmxvd0NsaXAoKSB8fCBoYXNUcmFuc2Zvcm1SZWxhdGVkUHJv
cGVydHkoKSB8fCBoYXNIaWRkZW5CYWNrZmFjZSgpIHx8IGhhc0NsaXBQYXRoKCkgfHwgY3JlYXRl
c0dyb3VwKCkgfHwgaXNTdGlja3lQb3NpdGlvbmVkKCk7IH0KKyAgICBib29sIHJlcXVpcmVzTGF5
ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBoYXNPdmVyZmxvd0NsaXAoKSB8fCBoYXNUcmFu
c2Zvcm1SZWxhdGVkUHJvcGVydHkoKSB8fCBoYXNIaWRkZW5CYWNrZmFjZSgpIHx8IGhhc0NsaXBQ
YXRoKCkgfHwgY3JlYXRlc0dyb3VwKCkgfHwgaXNTdGlja2lseVBvc2l0aW9uZWQoKTsgfQogCiAg
ICAgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwog
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>