<?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>177667</bug_id>
          
          <creation_ts>2017-09-29 10:16:29 -0700</creation_ts>
          <short_desc>[WK2][NETWORK_SESSION] Move some authentication-related code to avoid duplication</short_desc>
          <delta_ts>2017-09-29 15:09:43 -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>WebKit2</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>
          
          <blocked>177625</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1354566</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-29 10:16:29 -0700</bug_when>
    <thetext>Move some authentication-related code to avoid duplication.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354588</commentid>
    <comment_count>1</comment_count>
      <attachid>322209</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-29 10:47:58 -0700</bug_when>
    <thetext>Created attachment 322209
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354710</commentid>
    <comment_count>2</comment_count>
      <attachid>322209</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-29 14:39:02 -0700</bug_when>
    <thetext>Comment on attachment 322209
Patch

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

&gt; Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:233
&gt; +    if ([challenge.protectionSpace.authenticationMethod isEqualTo:NSURLAuthenticationMethodServerTrust] &amp;&amp; !NetworkProcess::singleton().canHandleHTTPSServerTrustEvaluation()) {

isEqualToString</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354713</commentid>
    <comment_count>3</comment_count>
      <attachid>322237</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-29 14:47:50 -0700</bug_when>
    <thetext>Created attachment 322237
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354725</commentid>
    <comment_count>4</comment_count>
      <attachid>322237</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-29 15:08:37 -0700</bug_when>
    <thetext>Comment on attachment 322237
Patch

Clearing flags on attachment: 322237

Committed r222667: &lt;http://trac.webkit.org/changeset/222667&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354726</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-29 15:08:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354728</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-29 15:09:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/34748554&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322209</attachid>
            <date>2017-09-29 10:47:58 -0700</date>
            <delta_ts>2017-09-29 14:47:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177667-20170929104757.patch</filename>
            <type>text/plain</type>
            <size>15528</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwZTA0YzY2YjBlZDc5NjFi
NjMxNjA0MjE5YmE4YTIxNWMwMWZmMDkuLjk0MDAzNGNkMGZlMWFlY2UyMzM4ZTdjNmI4NjkzYTk5
MjE2ZTY2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTctMDktMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXVtORVRXT1JLX1NFU1NJT05d
IE1vdmUgc29tZSBhdXRoZW50aWNhdGlvbi1yZWxhdGVkIGNvZGUgdG8gYXZvaWQgZHVwbGljYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzY2
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUg
c29tZSBhdXRoZW50aWNhdGlvbi1yZWxhdGVkIGNvZGUgdG8gYXZvaWQgZHVwbGljYXRpb24uCisg
ICAgICAgIFRoaXMgaXMgYSBwcmVwYXJhdGlvbiBjb2RlIHN1cHBvcnRpbmcgRG93bmxvYWQgYXV0
aGVudGljYXRpb24KKyAgICAgICAgYXMgRG93bmxvYWQgdXNlcyBhIE5TVVJMU2Vzc2lvbkRvd25s
b2FkVGFzayBhbmQgbm90IGEKKyAgICAgICAgTmV0d29ya0RhdGFUYXNrLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFzazo6c2V0U3VnZ2VzdGVkRmlsZW5hbWUpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmRpZFJl
Y2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6Y29udGludWVD
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNz
aW9uOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1ByZWNvbm5lY3RUYXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OmRp
ZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29h
OjpkaWRSZWNlaXZlQ2hhbGxlbmdlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRl
IFVSTFNlc3Npb246dGFzazpkaWRSZWNlaXZlQ2hhbGxlbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0p
OgorICAgICAgICAoV2ViS2l0OjpjZXJ0aWZpY2F0ZXNNYXRjaCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhv
c3QpOgorCiAyMDE3LTA5LTI4ICBUaW1vdGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBGaXggdGhlIG1hY09TIENNYWtlIGJ1aWxkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaAppbmRleCBlNTUxNWVjZGU1ODE3
YTI3MTYwNzUxNzIyM2I1MjNiYjRkMTc3ZmRhLi4zMzg4Y2Y4ZTA0NzQyOGYxNTI2ZjFmZmEwZDUy
MjM5YzY1MWNjY2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtEYXRhVGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrLmgKQEAgLTEyNiw3ICsxMjYsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiBmaXJzdFJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0
UmVxdWVzdDsgfQogICAgIHZpcnR1YWwgU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lKCkgY29uc3Qg
eyByZXR1cm4gU3RyaW5nKCk7IH0KICAgICB2b2lkIHNldFN1Z2dlc3RlZEZpbGVuYW1lKGNvbnN0
IFN0cmluZyYgc3VnZ2VzdGVkTmFtZSkgeyBtX3N1Z2dlc3RlZEZpbGVuYW1lID0gc3VnZ2VzdGVk
TmFtZTsgfQotICAgIHZpcnR1YWwgYm9vbCBhbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBjb25zdCBTdHJpbmcmIHBhcnRpdGlvbigpIHsgcmV0dXJuIG1fcGFydGl0
aW9uOyB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5jcHAKaW5kZXggMzllMGMzZmI4YzZlZjY4MGNiNTRlNjU5YWI3MDAyMDAxOTI5Mzdl
MC4uZGU5ZWI1ZGY5NjI5NjIwYTkzODU0NmMxZjNmNmY3ZTdjOTA3NTA2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJEb3dubG9hZFBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgorI2luY2x1ZGUgIk5l
dHdvcmtTZXNzaW9uLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKQEAgLTMxNiwx
OCArMzE3LDYgQEAgdm9pZCBOZXR3b3JrTG9hZDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24o
UmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBSZXNvdXIKIAogdm9pZCBOZXR3b3JrTG9hZDo6
ZGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxl
bmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIC8vIEhhbmRsZSBzZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbiBhdCBwbGF0Zm9ybS1sZXZlbCBp
ZiByZXF1ZXN0ZWQsIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgotI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hl
bWUoKSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZh
bHVhdGlvblJlcXVlc3RlZAotICAgICAgICAmJiAhTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigp
LmNhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKCkpIHsKLSAgICAgICAgaWYgKG1f
dGFzayAmJiBtX3Rhc2stPmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2hh
bGxlbmdlKSkKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlRGlzcG9zaXRpb246OlVzZUNyZWRlbnRpYWwsIHNlcnZlclRydXN0Q3JlZGVudGlhbChj
aGFsbGVuZ2UpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UmVqZWN0UHJvdGVjdGlvblNwYWNl
LCB7IH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotI2VuZGlmCi0KICAgICBtX2NoYWxsZW5n
ZSA9IGNoYWxsZW5nZTsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQog
ICAgIG1fY2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKTsKQEAgLTM2MCw3ICszNDksNyBAQCB2b2lkIE5ldHdvcmtMb2FkOjpjb250aW51ZUNhbkF1
dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoYm9vbCByZXN1bHQpCiAgICAgQVNTRVJU
KG1fY2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIpOwogICAgIGF1dG8gY29tcGxldGlvbkhhbmRs
ZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIp
OwogICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGlmIChtX3Rhc2sgJiYgbV90YXNrLT5hbGxv
d3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KCptX2NoYWxsZW5nZSkpCisgICAgICAg
IGlmIChOZXR3b3JrU2Vzc2lvbjo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9z
dCgqbV9jaGFsbGVuZ2UpKQogICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbCwgc2VydmVyVHJ1c3RDcmVk
ZW50aWFsKCptX2NoYWxsZW5nZSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90
ZWN0aW9uU3BhY2UsIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uY3BwCmluZGV4IDY3OTRkMDBkZmQ3YzUyZDkzZmY3ZmViZDY4YTczZmY0Mjlk
YTMyY2YuLjhlMDYxMTI0ZDhjODQ3ZDRhMzkxYjc2Njg5YzIwMWUzZTIzNmU0NjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwCkBAIC04OSw2
ICs4OSwxNSBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjppbnZhbGlkYXRlQW5kQ2FuY2VsKCkKICAg
ICAgICAgdGFzay0+aW52YWxpZGF0ZUFuZENhbmNlbCgpOwogfQogCitib29sIE5ldHdvcmtTZXNz
aW9uOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCit7CisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgcmV0dXJuIE5ldHdvcmtTZXNzaW9uQ29jb2E6OmFsbG93c1NwZWNpZmljSFRUUFND
ZXJ0aWZpY2F0ZUZvckhvc3QoY2hhbGxlbmdlKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOwor
I2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gVVNFKE5FVFdP
UktfU0VTU0lPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Np
b24uaAppbmRleCBmZDFlNjNiYWY1NTBmM2FjNWQ5Zjk1NDNkMWI3NDlkZDM2YWI3YjczLi42ODhk
OWNhZjYxMjdmMzJmZDU3NGFlYzQ3ZjljZjczM2FmMWJjMmRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2U7CiBjbGFzcyBOZXR3b3JrU3RvcmFnZVNlc3Npb247CiB9CiAK
QEAgLTU2LDYgKzU3LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJOZXR3b3JrRGF0YVRh
c2soTmV0d29ya0RhdGFUYXNrJiB0YXNrKSB7IG1fZGF0YVRhc2tTZXQuYWRkKCZ0YXNrKTsgfQog
ICAgIHZvaWQgdW5yZWdpc3Rlck5ldHdvcmtEYXRhVGFzayhOZXR3b3JrRGF0YVRhc2smIHRhc2sp
IHsgbV9kYXRhVGFza1NldC5yZW1vdmUoJnRhc2spOyB9CiAKKyAgICBzdGF0aWMgYm9vbCBhbGxv
d3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJik7CisKIHByb3RlY3RlZDoKICAgICBOZXR3b3JrU2Vzc2lvbihQQUw6
OlNlc3Npb25JRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
UHJlY29ubmVjdFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25u
ZWN0VGFzay5jcHAKaW5kZXggY2E4OTMzNDAxMzZhOTUxMDIyNDNhNjlhY2JkZWQ0OTRhZGZjZGM1
NC4uODY4M2M5MDQyYzVhNGM0ZmI1OWQxNTU3ZWY2NGEzNDg4YTMzY2I3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHAKQEAgLTc3LDEzICs3
Nyw2IEBAIHZvaWQgUHJlY29ubmVjdFRhc2s6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgV2ViCiAKIHZvaWQgUHJlY29ubmVjdFRhc2s6OmRp
ZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
IGNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKLSAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9u
U2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKLSAgICAgICAgaWYgKG1fdGFzayAmJiBtX3Rhc2stPmFs
bG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2hhbGxlbmdlKSkKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246
OlVzZUNyZWRlbnRpYWwsIHNlcnZlclRydXN0Q3JlZGVudGlhbChjaGFsbGVuZ2UpKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VEaXNwb3NpdGlvbjo6UmVqZWN0UHJvdGVjdGlvblNwYWNlLCB7IH0pOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLmgKaW5kZXggMjEyYTlhMDhmYjEyMTE3ZWQ4M2ExMjI2ZGZiZjRmYWYwZjQ5ZTIyYS4uNzVm
Yzk3ZGY5YzM4MWY1M2RmMTFjNzRlMDcyYzIyYTQ1NWViMWI2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
aApAQCAtNjcsOCArNjcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQZW5kaW5nRG93bmxvYWRM
b2NhdGlvbihjb25zdCBTdHJpbmcmLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCBi
b29sIC8qYWxsb3dPdmVyd3JpdGUqLykgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHN1Z2dlc3RlZEZp
bGVuYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBib29sIGFsbG93c1NwZWNpZmljSFRUUFND
ZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
KSBvdmVycmlkZTsKLQogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xv
YWRNZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0Rh
dGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCmluZGV4IGRiYmIxMDA0MDE0OWE0ZjZlZjIwZGUzOTNmN2M5Njg2
NjFiODRlODYuLjA5ZmYyOGQyOTY5OGU5MDdmOWU0NWMyOTE1NzA5MTg5ODJmZDU3YjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbQpAQCAtMTczLDEzICsxNzMsNiBAQCB2b2lkIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjpkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90
YWxCeQogCiB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UsIENoYWxsZW5n
ZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgLy8gUHJveHkg
YXV0aGVudGljYXRpb24gaXMgaGFuZGxlZCBieSBDRk5ldHdvcmsgaW50ZXJuYWxseS4gV2UgY2Fu
IGdldCBoZXJlIGlmIHRoZSB1c2VyIGNhbmNlbHMKLSAgICAvLyBDRk5ldHdvcmsgYXV0aGVudGlj
YXRpb24gZGlhbG9nLCBhbmQgd2Ugc2hvdWxkbid0IGFzayB0aGUgY2xpZW50IHRvIGRpc3BsYXkg
YW5vdGhlciBvbmUgaW4gdGhhdCBjYXNlLgotICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNw
YWNlKCkuaXNQcm94eSgpKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlVzZUNyZWRlbnRpYWwsIHsgfSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KICAgICBpZiAodHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNo
YWxsZW5nZSwgY29tcGxldGlvbkhhbmRsZXIpKQogICAgICAgICByZXR1cm47CiAKQEAgLTMyMCw1
MyArMzEzLDYgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6dHJhbnNmZXJTYW5kYm94RXh0
ZW5zaW9uVG9Eb3dubG9hZChEb3dubG9hZCYgZG93bmxvYWQKICAgICBkb3dubG9hZC5zZXRTYW5k
Ym94RXh0ZW5zaW9uKFdURk1vdmUobV9zYW5kYm94RXh0ZW5zaW9uKSk7CiB9CiAKLSNpZiAhVVNF
KENGVVJMQ09OTkVDVElPTikKLXN0YXRpYyBib29sIGNlcnRpZmljYXRlc01hdGNoKFNlY1RydXN0
UmVmIHRydXN0MSwgU2VjVHJ1c3RSZWYgdHJ1c3QyKQotewotICAgIGlmICghdHJ1c3QxIHx8ICF0
cnVzdDIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIENGSW5kZXggY291bnQxID0gU2Vj
VHJ1c3RHZXRDZXJ0aWZpY2F0ZUNvdW50KHRydXN0MSk7Ci0gICAgQ0ZJbmRleCBjb3VudDIgPSBT
ZWNUcnVzdEdldENlcnRpZmljYXRlQ291bnQodHJ1c3QyKTsKLSAgICBpZiAoY291bnQxICE9IGNv
dW50MikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZm9yIChDRkluZGV4IGkgPSAwOyBp
IDwgY291bnQxOyBpKyspIHsKLSAgICAgICAgYXV0byBjZXJ0MSA9IFNlY1RydXN0R2V0Q2VydGlm
aWNhdGVBdEluZGV4KHRydXN0MSwgaSk7Ci0gICAgICAgIGF1dG8gY2VydDIgPSBTZWNUcnVzdEdl
dENlcnRpZmljYXRlQXRJbmRleCh0cnVzdDIsIGkpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVChj
ZXJ0MSk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGNlcnQyKTsKLSAgICAgICAgaWYgKCFDRkVx
dWFsKGNlcnQxLCBjZXJ0MikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0jZW5kaWYKLQotYm9vbCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6
YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQotewotICAgIGNvbnN0IFN0cmluZyYgaG9z
dCA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5ob3N0KCk7Ci0gICAgTlNBcnJheSAqY2Vy
dGlmaWNhdGVzID0gW05TVVJMUmVxdWVzdCBhbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVG
b3JIb3N0Omhvc3RdOwotICAgIGlmICghY2VydGlmaWNhdGVzKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgCi0gICAgYm9vbCByZXF1aXJlU2VydmVyQ2VydGlmaWNhdGVzID0gY2hhbGxlbmdl
LnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkOwotICAgIFJldGFpblB0
cjxTZWNQb2xpY3lSZWY+IHBvbGljeSA9IGFkb3B0Q0YoU2VjUG9saWN5Q3JlYXRlU1NMKHJlcXVp
cmVTZXJ2ZXJDZXJ0aWZpY2F0ZXMsIGhvc3QuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwotICAg
IAotICAgIFNlY1RydXN0UmVmIHRydXN0UmVmID0gbnVsbHB0cjsKLSAgICBpZiAoU2VjVHJ1c3RD
cmVhdGVXaXRoQ2VydGlmaWNhdGVzKChDRkFycmF5UmVmKWNlcnRpZmljYXRlcywgcG9saWN5Lmdl
dCgpLCAmdHJ1c3RSZWYpICE9IG5vRXJyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUmV0
YWluUHRyPFNlY1RydXN0UmVmPiB0cnVzdCA9IGFkb3B0Q0YodHJ1c3RSZWYpOwotCi0jaWYgVVNF
KENGVVJMQ09OTkVDVElPTikKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxz
ZTsKLSNlbHNlCi0gICAgcmV0dXJuIGNlcnRpZmljYXRlc01hdGNoKHRydXN0LmdldCgpLCBjaGFs
bGVuZ2UubnNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpLnByb3RlY3Rpb25TcGFjZS5zZXJ2
ZXJUcnVzdCk7Ci0jZW5kaWYKLX0KLQogU3RyaW5nIE5ldHdvcmtEYXRhVGFza0NvY29hOjpzdWdn
ZXN0ZWRGaWxlbmFtZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3N1Z2dlc3RlZEZpbGVuYW1lLmlz
RW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Nlc3Npb25Db2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLmgKaW5kZXggNDU4YzBhZWI1YzY3ZmU2ZjExNmE1Njc0ODg1
YjRlN2VlMDY0YmJjZi4uNWIxMGFmNjdmZGFjNjEwNTk3Y2M2ZGRiY2QyODQ1NGY3MjY0ZTY0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLmgKQEAgLTYzLDYgKzYzLDggQEAgcHVibGljOgogICAgIERvd25sb2Fk
SUQgZG93bmxvYWRJRChOZXR3b3JrRGF0YVRhc2tDb2NvYTo6VGFza0lkZW50aWZpZXIpOwogICAg
IERvd25sb2FkSUQgdGFrZURvd25sb2FkSUQoTmV0d29ya0RhdGFUYXNrQ29jb2E6OlRhc2tJZGVu
dGlmaWVyKTsKIAorICAgIHN0YXRpYyBib29sIGFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0
ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKwogcHJp
dmF0ZToKICAgICBOZXR3b3JrU2Vzc2lvbkNvY29hKFBBTDo6U2Vzc2lvbklELCBMZWdhY3lDdXN0
b21Qcm90b2NvbE1hbmFnZXIqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDk2YWZjY2QwYzRi
MmE2YWFmNDMzYjdhYWE2ZGQ5MTFjOWZiYWFiMDQuLjc0OWI3NTZkZWUyNmVjYWIxYmNkZmIzZWU0
MGNkN2EyMjljNmNhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTIyMiw2ICsyMjIsMjIgQEAg
LSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzZXNzaW9uIHRhc2s6KE5TVVJMU2Vz
c2lvblRhc2sgKil0YXNrIGRpZFJlY2UKICAgICBhdXRvIHRhc2tJZGVudGlmaWVyID0gdGFzay50
YXNrSWRlbnRpZmllcjsKICAgICBMT0coTmV0d29ya1Nlc3Npb24sICIlbGx1IGRpZFJlY2VpdmVD
aGFsbGVuZ2UiLCB0YXNrSWRlbnRpZmllcik7CiAgICAgCisgICAgLy8gUHJveHkgYXV0aGVudGlj
YXRpb24gaXMgaGFuZGxlZCBieSBDRk5ldHdvcmsgaW50ZXJuYWxseS4gV2UgY2FuIGdldCBoZXJl
IGlmIHRoZSB1c2VyIGNhbmNlbHMKKyAgICAvLyBDRk5ldHdvcmsgYXV0aGVudGljYXRpb24gZGlh
bG9nLCBhbmQgd2Ugc2hvdWxkbid0IGFzayB0aGUgY2xpZW50IHRvIGRpc3BsYXkgYW5vdGhlciBv
bmUgaW4gdGhhdCBjYXNlLgorICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLmlzUHJv
eHkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5n
ZVVzZUNyZWRlbnRpYWwsIG5pbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBI
YW5kbGUgc2VydmVyIHRydXN0IGV2YWx1YXRpb24gYXQgcGxhdGZvcm0tbGV2ZWwgaWYgcmVxdWVz
dGVkLCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4KKyAgICBpZiAoW2NoYWxsZW5nZS5wcm90ZWN0
aW9uU3BhY2UuYXV0aGVudGljYXRpb25NZXRob2QgaXNFcXVhbFRvOk5TVVJMQXV0aGVudGljYXRp
b25NZXRob2RTZXJ2ZXJUcnVzdF0gJiYgIU5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5jYW5I
YW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbigpKSB7CisgICAgICAgIGlmIChOZXR3b3Jr
U2Vzc2lvbkNvY29hOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNoYWxs
ZW5nZSkpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hh
bGxlbmdlVXNlQ3JlZGVudGlhbCwgW05TVVJMQ3JlZGVudGlhbCBjcmVkZW50aWFsRm9yVHJ1c3Q6
Y2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUcnVzdF0pOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlUmVq
ZWN0UHJvdGVjdGlvblNwYWNlLCBuaWwpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
aWYgKGF1dG8qIG5ldHdvcmtEYXRhVGFzayA9IFtzZWxmIGV4aXN0aW5nVGFzazp0YXNrXSkgewog
ICAgICAgICBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShjaGFsbGVuZ2UpOwogICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyQ29weSA9
IEJsb2NrX2NvcHkoY29tcGxldGlvbkhhbmRsZXIpOwpAQCAtNjY1LDYgKzY4MSw0NiBAQCBEb3du
bG9hZElEIE5ldHdvcmtTZXNzaW9uQ29jb2E6OnRha2VEb3dubG9hZElEKE5ldHdvcmtEYXRhVGFz
a0NvY29hOjpUYXNrSWRlbnRpZgogICAgIHJldHVybiBkb3dubG9hZElEOwogfQogCitzdGF0aWMg
Ym9vbCBjZXJ0aWZpY2F0ZXNNYXRjaChTZWNUcnVzdFJlZiB0cnVzdDEsIFNlY1RydXN0UmVmIHRy
dXN0MikKK3sKKyAgICBpZiAoIXRydXN0MSB8fCAhdHJ1c3QyKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBDRkluZGV4IGNvdW50MSA9IFNlY1RydXN0R2V0Q2VydGlmaWNhdGVDb3VudCh0
cnVzdDEpOworICAgIENGSW5kZXggY291bnQyID0gU2VjVHJ1c3RHZXRDZXJ0aWZpY2F0ZUNvdW50
KHRydXN0Mik7CisgICAgaWYgKGNvdW50MSAhPSBjb3VudDIpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGNvdW50MTsgaSsrKSB7CisgICAgICAg
IGF1dG8gY2VydDEgPSBTZWNUcnVzdEdldENlcnRpZmljYXRlQXRJbmRleCh0cnVzdDEsIGkpOwor
ICAgICAgICBhdXRvIGNlcnQyID0gU2VjVHJ1c3RHZXRDZXJ0aWZpY2F0ZUF0SW5kZXgodHJ1c3Qy
LCBpKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2VydDEpOworICAgICAgICBSRUxFQVNFX0FT
U0VSVChjZXJ0Mik7CisgICAgICAgIGlmICghQ0ZFcXVhbChjZXJ0MSwgY2VydDIpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29s
IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhv
c3QoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKK3sK
KyAgICBjb25zdCBTdHJpbmcmIGhvc3QgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuaG9z
dCgpOworICAgIE5TQXJyYXkgKmNlcnRpZmljYXRlcyA9IFtOU1VSTFJlcXVlc3QgYWxsb3dzU3Bl
Y2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdDpob3N0XTsKKyAgICBpZiAoIWNlcnRpZmljYXRl
cykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYm9vbCByZXF1aXJlU2VydmVyQ2VydGlm
aWNhdGVzID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1l
KCkgPT0gV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVz
dGVkOworICAgIFJldGFpblB0cjxTZWNQb2xpY3lSZWY+IHBvbGljeSA9IGFkb3B0Q0YoU2VjUG9s
aWN5Q3JlYXRlU1NMKHJlcXVpcmVTZXJ2ZXJDZXJ0aWZpY2F0ZXMsIGhvc3QuY3JlYXRlQ0ZTdHJp
bmcoKS5nZXQoKSkpOworCisgICAgU2VjVHJ1c3RSZWYgdHJ1c3RSZWYgPSBudWxscHRyOworICAg
IGlmIChTZWNUcnVzdENyZWF0ZVdpdGhDZXJ0aWZpY2F0ZXMoKENGQXJyYXlSZWYpY2VydGlmaWNh
dGVzLCBwb2xpY3kuZ2V0KCksICZ0cnVzdFJlZikgIT0gbm9FcnIpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBSZXRhaW5QdHI8U2VjVHJ1c3RSZWY+IHRydXN0ID0gYWRvcHRDRih0cnVzdFJl
Zik7CisKKyAgICByZXR1cm4gY2VydGlmaWNhdGVzTWF0Y2godHJ1c3QuZ2V0KCksIGNoYWxsZW5n
ZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkucHJvdGVjdGlvblNwYWNlLnNlcnZlclRy
dXN0KTsKK30KKwogfQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322237</attachid>
            <date>2017-09-29 14:47:50 -0700</date>
            <delta_ts>2017-09-29 15:08:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177667-20170929144749.patch</filename>
            <type>text/plain</type>
            <size>15536</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAwZTA0YzY2YjBlZDc5NjFi
NjMxNjA0MjE5YmE4YTIxNWMwMWZmMDkuLmNlOTEyYzRlMGU2ZGViMjg0ZjJjOGI5OWZmNjdhZjU2
NTAzZGQ5ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTctMDktMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXVtORVRXT1JLX1NFU1NJT05d
IE1vdmUgc29tZSBhdXRoZW50aWNhdGlvbi1yZWxhdGVkIGNvZGUgdG8gYXZvaWQgZHVwbGljYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzY2
NworCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgTW92
ZSBzb21lIGF1dGhlbnRpY2F0aW9uLXJlbGF0ZWQgY29kZSB0byBhdm9pZCBkdXBsaWNhdGlvbi4K
KyAgICAgICAgVGhpcyBpcyBhIHByZXBhcmF0aW9uIGNvZGUgc3VwcG9ydGluZyBEb3dubG9hZCBh
dXRoZW50aWNhdGlvbgorICAgICAgICBhcyBEb3dubG9hZCB1c2VzIGEgTlNVUkxTZXNzaW9uRG93
bmxvYWRUYXNrIGFuZCBub3QgYQorICAgICAgICBOZXR3b3JrRGF0YVRhc2suCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suaDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrOjpzZXRTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTG9hZDo6ZGlk
UmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkOjpjb250aW51
ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UpOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nl
c3Npb246OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvUHJlY29ubmVjdFRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6
ZGlkUmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29j
b2E6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdh
dGUgVVJMU2Vzc2lvbjp0YXNrOmRpZFJlY2VpdmVDaGFsbGVuZ2U6Y29tcGxldGlvbkhhbmRsZXI6
XSk6CisgICAgICAgIChXZWJLaXQ6OmNlcnRpZmljYXRlc01hdGNoKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9y
SG9zdCk6CisKIDIwMTctMDktMjggIFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgbWFjT1MgQ01ha2UgYnVpbGQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5oCmluZGV4IGU1NTE1ZWNkZTU4
MTdhMjcxNjA3NTE3MjIzYjUyM2JiNGQxNzdmZGEuLjMzODhjZjhlMDQ3NDI4ZjE1MjZmMWZmYTBk
NTIyMzljNjUxY2NjYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrRGF0YVRhc2suaApAQCAtMTI2LDcgKzEyNiw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIGZpcnN0UmVxdWVzdCgpIGNvbnN0IHsgcmV0dXJuIG1fZmly
c3RSZXF1ZXN0OyB9CiAgICAgdmlydHVhbCBTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25z
dCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZvaWQgc2V0U3VnZ2VzdGVkRmlsZW5hbWUoY29u
c3QgU3RyaW5nJiBzdWdnZXN0ZWROYW1lKSB7IG1fc3VnZ2VzdGVkRmlsZW5hbWUgPSBzdWdnZXN0
ZWROYW1lOyB9Ci0gICAgdmlydHVhbCBib29sIGFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0
ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSB7IHJldHVy
biBmYWxzZTsgfQogICAgIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uKCkgeyByZXR1cm4gbV9wYXJ0
aXRpb247IH0KIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcAppbmRleCAzOWUwYzNmYjhjNmVmNjgwY2I1NGU2NTlhYjcwMDIwMDE5Mjkz
N2UwLi5kZTllYjVkZjk2Mjk2MjBhOTM4NTQ2YzFmM2Y2ZjdlN2M5MDc1MDY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUgIkRvd25sb2Fk
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgiCisjaW5jbHVkZSAi
TmV0d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkVycm9ycy5oIgpAQCAtMzE2
LDE4ICszMTcsNiBAQCB2b2lkIE5ldHdvcmtMb2FkOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlv
bihSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIFJlc291cgogCiB2b2lkIE5ldHdvcmtMb2Fk
OjpkaWRSZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFs
bGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgLy8gSGFuZGxlIHNlcnZlciB0cnVzdCBldmFsdWF0aW9uIGF0IHBsYXRmb3JtLWxldmVs
IGlmIHJlcXVlc3RlZCwgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuCi0jaWYgUExBVEZPUk0oQ09D
T0EpCi0gICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNj
aGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RF
dmFsdWF0aW9uUmVxdWVzdGVkCi0gICAgICAgICYmICFOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9u
KCkuY2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24oKSkgewotICAgICAgICBpZiAo
bV90YXNrICYmIG1fdGFzay0+YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChj
aGFsbGVuZ2UpKQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbCwgc2VydmVyVHJ1c3RDcmVkZW50aWFs
KGNoYWxsZW5nZSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3Bh
Y2UsIHsgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIG1fY2hhbGxl
bmdlID0gY2hhbGxlbmdlOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0sp
CiAgICAgbV9jaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpOwpAQCAtMzYwLDcgKzM0OSw3IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmNvbnRpbnVlQ2Fu
QXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29sIHJlc3VsdCkKICAgICBBU1NF
UlQobV9jaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlcik7CiAgICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9jaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0
cik7CiAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgaWYgKG1fdGFzayAmJiBtX3Rhc2stPmFs
bG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoKm1fY2hhbGxlbmdlKSkKKyAgICAg
ICAgaWYgKE5ldHdvcmtTZXNzaW9uOjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JI
b3N0KCptX2NoYWxsZW5nZSkpCiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpVc2VDcmVkZW50aWFsLCBzZXJ2ZXJUcnVzdENy
ZWRlbnRpYWwoKm1fY2hhbGxlbmdlKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlJlamVjdFBy
b3RlY3Rpb25TcGFjZSwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggNjc5NGQwMGRmZDdjNTJkOTNmZjdmZWJkNjhhNzNmZjQy
OWRhMzJjZi4uOGUwNjExMjRkOGM4NDdkNGEzOTFiNzY2ODljMjAxZTNlMjM2ZTQ2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTg5
LDYgKzg5LDE1IEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OmludmFsaWRhdGVBbmRDYW5jZWwoKQog
ICAgICAgICB0YXNrLT5pbnZhbGlkYXRlQW5kQ2FuY2VsKCk7CiB9CiAKK2Jvb2wgTmV0d29ya1Nl
c3Npb246OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkKK3sKKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICByZXR1cm4gTmV0d29ya1Nlc3Npb25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdChjaGFsbGVuZ2UpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7
CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBVU0UoTkVU
V09SS19TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCmluZGV4IGZkMWU2M2JhZjU1MGYzYWM1ZDlmOTU0M2QxYjc0OWRkMzZhYjdiNzMuLjY4
OGQ5Y2FmNjEyN2YzMmZkNTc0YWVjNDdmOWNmNzMzYWYxYmMyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKIGNsYXNzIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjsKIH0K
IApAQCAtNTYsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3Rlck5ldHdvcmtEYXRh
VGFzayhOZXR3b3JrRGF0YVRhc2smIHRhc2spIHsgbV9kYXRhVGFza1NldC5hZGQoJnRhc2spOyB9
CiAgICAgdm9pZCB1bnJlZ2lzdGVyTmV0d29ya0RhdGFUYXNrKE5ldHdvcmtEYXRhVGFzayYgdGFz
aykgeyBtX2RhdGFUYXNrU2V0LnJlbW92ZSgmdGFzayk7IH0KIAorICAgIHN0YXRpYyBib29sIGFs
bG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmKTsKKwogcHJvdGVjdGVkOgogICAgIE5ldHdvcmtTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9QcmVjb25uZWN0VGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNv
bm5lY3RUYXNrLmNwcAppbmRleCBjYTg5MzM0MDEzNmE5NTEwMjI0M2E2OWFjYmRlZDQ5NGFkZmNk
YzU0Li44NjgzYzkwNDJjNWE0YzRmYjU5ZDE1NTdlZjY0YTM0ODhhMzNjYjc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcApAQCAtNzcsMTMg
Kzc3LDYgQEAgdm9pZCBQcmVjb25uZWN0VGFzazo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24o
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBXZWIKIAogdm9pZCBQcmVjb25uZWN0VGFzazo6
ZGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYgY2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewotICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRp
b25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRy
dXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgewotICAgICAgICBpZiAobV90YXNrICYmIG1fdGFzay0+
YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjaGFsbGVuZ2UpKQotICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
bjo6VXNlQ3JlZGVudGlhbCwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNoYWxsZW5nZSkpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2UsIHsgfSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNr
Q29jb2EuaAppbmRleCAyMTJhOWEwOGZiMTIxMTdlZDgzYTEyMjZkZmJmNGZhZjBmNDllMjJhLi43
NWZjOTdkZjljMzgxZjUzZGYxMWM3NGUwNzJjMjJhNDU1ZWIxYjZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oCkBAIC02Nyw4ICs2Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBlbmRpbmdEb3dubG9h
ZExvY2F0aW9uKGNvbnN0IFN0cmluZyYsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYs
IGJvb2wgLyphbGxvd092ZXJ3cml0ZSovKSBvdmVycmlkZTsKICAgICBTdHJpbmcgc3VnZ2VzdGVk
RmlsZW5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIGJvb2wgYWxsb3dzU3BlY2lmaWNIVFRQ
U0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpIG92ZXJyaWRlOwotCiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3Jr
TG9hZE1ldHJpY3MoKSB7IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
RGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggZGJiYjEwMDQwMTQ5YTRmNmVmMjBkZTM5M2Y3Yzk2
ODY2MWI4NGU4Ni4uMDlmZjI4ZDI5Njk4ZTkwN2Y5ZTQ1YzI5MTU3MDkxODk4MmZkNTdiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCkBAIC0xNzMsMTMgKzE3Myw2IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrQ29jb2E6OmRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0
b3RhbEJ5CiAKIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmRpZFJlY2VpdmVDaGFsbGVuZ2Uo
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSwgQ2hhbGxl
bmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICAvLyBQcm94
eSBhdXRoZW50aWNhdGlvbiBpcyBoYW5kbGVkIGJ5IENGTmV0d29yayBpbnRlcm5hbGx5LiBXZSBj
YW4gZ2V0IGhlcmUgaWYgdGhlIHVzZXIgY2FuY2VscwotICAgIC8vIENGTmV0d29yayBhdXRoZW50
aWNhdGlvbiBkaWFsb2csIGFuZCB3ZSBzaG91bGRuJ3QgYXNrIHRoZSBjbGllbnQgdG8gZGlzcGxh
eSBhbm90aGVyIG9uZSBpbiB0aGF0IGNhc2UuCi0gICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9u
U3BhY2UoKS5pc1Byb3h5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbCwgeyB9KTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQogICAgIGlmICh0cnlQYXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24o
Y2hhbGxlbmdlLCBjb21wbGV0aW9uSGFuZGxlcikpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzIw
LDUzICszMTMsNiBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza0NvY29hOjp0cmFuc2ZlclNhbmRib3hF
eHRlbnNpb25Ub0Rvd25sb2FkKERvd25sb2FkJiBkb3dubG9hZAogICAgIGRvd25sb2FkLnNldFNh
bmRib3hFeHRlbnNpb24oV1RGTW92ZShtX3NhbmRib3hFeHRlbnNpb24pKTsKIH0KIAotI2lmICFV
U0UoQ0ZVUkxDT05ORUNUSU9OKQotc3RhdGljIGJvb2wgY2VydGlmaWNhdGVzTWF0Y2goU2VjVHJ1
c3RSZWYgdHJ1c3QxLCBTZWNUcnVzdFJlZiB0cnVzdDIpCi17Ci0gICAgaWYgKCF0cnVzdDEgfHwg
IXRydXN0MikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQ0ZJbmRleCBjb3VudDEgPSBT
ZWNUcnVzdEdldENlcnRpZmljYXRlQ291bnQodHJ1c3QxKTsKLSAgICBDRkluZGV4IGNvdW50MiA9
IFNlY1RydXN0R2V0Q2VydGlmaWNhdGVDb3VudCh0cnVzdDIpOwotICAgIGlmIChjb3VudDEgIT0g
Y291bnQyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBmb3IgKENGSW5kZXggaSA9IDA7
IGkgPCBjb3VudDE7IGkrKykgewotICAgICAgICBhdXRvIGNlcnQxID0gU2VjVHJ1c3RHZXRDZXJ0
aWZpY2F0ZUF0SW5kZXgodHJ1c3QxLCBpKTsKLSAgICAgICAgYXV0byBjZXJ0MiA9IFNlY1RydXN0
R2V0Q2VydGlmaWNhdGVBdEluZGV4KHRydXN0MiwgaSk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJU
KGNlcnQxKTsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2VydDIpOwotICAgICAgICBpZiAoIUNG
RXF1YWwoY2VydDEsIGNlcnQyKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0K
LSAgICByZXR1cm4gdHJ1ZTsKLX0KLSNlbmRpZgotCi1ib29sIE5ldHdvcmtEYXRhVGFza0NvY29h
OjphbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCi17Ci0gICAgY29uc3QgU3RyaW5nJiBo
b3N0ID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmhvc3QoKTsKLSAgICBOU0FycmF5ICpj
ZXJ0aWZpY2F0ZXMgPSBbTlNVUkxSZXF1ZXN0IGFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0
ZUZvckhvc3Q6aG9zdF07Ci0gICAgaWYgKCFjZXJ0aWZpY2F0ZXMpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAKLSAgICBib29sIHJlcXVpcmVTZXJ2ZXJDZXJ0aWZpY2F0ZXMgPSBjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7Ci0gICAgUmV0YWlu
UHRyPFNlY1BvbGljeVJlZj4gcG9saWN5ID0gYWRvcHRDRihTZWNQb2xpY3lDcmVhdGVTU0wocmVx
dWlyZVNlcnZlckNlcnRpZmljYXRlcywgaG9zdC5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7Ci0g
ICAgCi0gICAgU2VjVHJ1c3RSZWYgdHJ1c3RSZWYgPSBudWxscHRyOwotICAgIGlmIChTZWNUcnVz
dENyZWF0ZVdpdGhDZXJ0aWZpY2F0ZXMoKENGQXJyYXlSZWYpY2VydGlmaWNhdGVzLCBwb2xpY3ku
Z2V0KCksICZ0cnVzdFJlZikgIT0gbm9FcnIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBS
ZXRhaW5QdHI8U2VjVHJ1c3RSZWY+IHRydXN0ID0gYWRvcHRDRih0cnVzdFJlZik7Ci0KLSNpZiBV
U0UoQ0ZVUkxDT05ORUNUSU9OKQotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZh
bHNlOwotI2Vsc2UKLSAgICByZXR1cm4gY2VydGlmaWNhdGVzTWF0Y2godHJ1c3QuZ2V0KCksIGNo
YWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkucHJvdGVjdGlvblNwYWNlLnNl
cnZlclRydXN0KTsKLSNlbmRpZgotfQotCiBTdHJpbmcgTmV0d29ya0RhdGFUYXNrQ29jb2E6OnN1
Z2dlc3RlZEZpbGVuYW1lKCkgY29uc3QKIHsKICAgICBpZiAoIW1fc3VnZ2VzdGVkRmlsZW5hbWUu
aXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAppbmRleCA0NThjMGFlYjVjNjdmZTZmMTE2YTU2NzQ4
ODViNGU3ZWUwNjRiYmNmLi41YjEwYWY2N2ZkYWM2MTA1OTdjYzZkZGJjZDI4NDU0ZjcyNjRlNjQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EuaApAQCAtNjMsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgRG93bmxv
YWRJRCBkb3dubG9hZElEKE5ldHdvcmtEYXRhVGFza0NvY29hOjpUYXNrSWRlbnRpZmllcik7CiAg
ICAgRG93bmxvYWRJRCB0YWtlRG93bmxvYWRJRChOZXR3b3JrRGF0YVRhc2tDb2NvYTo6VGFza0lk
ZW50aWZpZXIpOwogCisgICAgc3RhdGljIGJvb2wgYWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmlj
YXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOworCiBw
cml2YXRlOgogICAgIE5ldHdvcmtTZXNzaW9uQ29jb2EoUEFMOjpTZXNzaW9uSUQsIExlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggOTZhZmNjZDBj
NGIyYTZhYWY0MzNiN2FhYTZkZDkxMWM5ZmJhYWIwNC4uYTNlZmM3ZGQ4YTYwYmZmNzg0MjljYzFh
MzIwNGI1MmYxZjdlN2I0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMjIyLDYgKzIyMiwyMiBA
QCAtICh2b2lkKVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNVUkxT
ZXNzaW9uVGFzayAqKXRhc2sgZGlkUmVjZQogICAgIGF1dG8gdGFza0lkZW50aWZpZXIgPSB0YXNr
LnRhc2tJZGVudGlmaWVyOwogICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgZGlkUmVjZWl2
ZUNoYWxsZW5nZSIsIHRhc2tJZGVudGlmaWVyKTsKICAgICAKKyAgICAvLyBQcm94eSBhdXRoZW50
aWNhdGlvbiBpcyBoYW5kbGVkIGJ5IENGTmV0d29yayBpbnRlcm5hbGx5LiBXZSBjYW4gZ2V0IGhl
cmUgaWYgdGhlIHVzZXIgY2FuY2VscworICAgIC8vIENGTmV0d29yayBhdXRoZW50aWNhdGlvbiBk
aWFsb2csIGFuZCB3ZSBzaG91bGRuJ3QgYXNrIHRoZSBjbGllbnQgdG8gZGlzcGxheSBhbm90aGVy
IG9uZSBpbiB0aGF0IGNhc2UuCisgICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UuaXNQ
cm94eSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxl
bmdlVXNlQ3JlZGVudGlhbCwgbmlsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8v
IEhhbmRsZSBzZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbiBhdCBwbGF0Zm9ybS1sZXZlbCBpZiByZXF1
ZXN0ZWQsIGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgorICAgIGlmIChbY2hhbGxlbmdlLnByb3Rl
Y3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRo
ZW50aWNhdGlvbk1ldGhvZFNlcnZlclRydXN0XSAmJiAhTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRv
bigpLmNhbkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKCkpIHsKKyAgICAgICAgaWYg
KE5ldHdvcmtTZXNzaW9uQ29jb2E6OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhv
c3QoY2hhbGxlbmdlKSkKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lv
bkF1dGhDaGFsbGVuZ2VVc2VDcmVkZW50aWFsLCBbTlNVUkxDcmVkZW50aWFsIGNyZWRlbnRpYWxG
b3JUcnVzdDpjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlLnNlcnZlclRydXN0XSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFs
bGVuZ2VSZWplY3RQcm90ZWN0aW9uU3BhY2UsIG5pbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBpZiAoYXV0byogbmV0d29ya0RhdGFUYXNrID0gW3NlbGYgZXhpc3RpbmdUYXNrOnRh
c2tdKSB7CiAgICAgICAgIFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlKGNoYWxsZW5nZSk7CiAgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRs
ZXJDb3B5ID0gQmxvY2tfY29weShjb21wbGV0aW9uSGFuZGxlcik7CkBAIC02NjUsNiArNjgxLDQ2
IEBAIERvd25sb2FkSUQgTmV0d29ya1Nlc3Npb25Db2NvYTo6dGFrZURvd25sb2FkSUQoTmV0d29y
a0RhdGFUYXNrQ29jb2E6OlRhc2tJZGVudGlmCiAgICAgcmV0dXJuIGRvd25sb2FkSUQ7CiB9CiAK
K3N0YXRpYyBib29sIGNlcnRpZmljYXRlc01hdGNoKFNlY1RydXN0UmVmIHRydXN0MSwgU2VjVHJ1
c3RSZWYgdHJ1c3QyKQoreworICAgIGlmICghdHJ1c3QxIHx8ICF0cnVzdDIpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIENGSW5kZXggY291bnQxID0gU2VjVHJ1c3RHZXRDZXJ0aWZpY2F0
ZUNvdW50KHRydXN0MSk7CisgICAgQ0ZJbmRleCBjb3VudDIgPSBTZWNUcnVzdEdldENlcnRpZmlj
YXRlQ291bnQodHJ1c3QyKTsKKyAgICBpZiAoY291bnQxICE9IGNvdW50MikKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgY291bnQxOyBpKyspIHsK
KyAgICAgICAgYXV0byBjZXJ0MSA9IFNlY1RydXN0R2V0Q2VydGlmaWNhdGVBdEluZGV4KHRydXN0
MSwgaSk7CisgICAgICAgIGF1dG8gY2VydDIgPSBTZWNUcnVzdEdldENlcnRpZmljYXRlQXRJbmRl
eCh0cnVzdDIsIGkpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChjZXJ0MSk7CisgICAgICAgIFJF
TEVBU0VfQVNTRVJUKGNlcnQyKTsKKyAgICAgICAgaWYgKCFDRkVxdWFsKGNlcnQxLCBjZXJ0Mikp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmlj
YXRlRm9ySG9zdChjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxl
bmdlKQoreworICAgIGNvbnN0IFN0cmluZyYgaG9zdCA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3Bh
Y2UoKS5ob3N0KCk7CisgICAgTlNBcnJheSAqY2VydGlmaWNhdGVzID0gW05TVVJMUmVxdWVzdCBh
bGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0Omhvc3RdOworICAgIGlmICghY2Vy
dGlmaWNhdGVzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIHJlcXVpcmVTZXJ2
ZXJDZXJ0aWZpY2F0ZXMgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRp
b25TY2hlbWUoKSA9PSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRp
b25SZXF1ZXN0ZWQ7CisgICAgUmV0YWluUHRyPFNlY1BvbGljeVJlZj4gcG9saWN5ID0gYWRvcHRD
RihTZWNQb2xpY3lDcmVhdGVTU0wocmVxdWlyZVNlcnZlckNlcnRpZmljYXRlcywgaG9zdC5jcmVh
dGVDRlN0cmluZygpLmdldCgpKSk7CisKKyAgICBTZWNUcnVzdFJlZiB0cnVzdFJlZiA9IG51bGxw
dHI7CisgICAgaWYgKFNlY1RydXN0Q3JlYXRlV2l0aENlcnRpZmljYXRlcygoQ0ZBcnJheVJlZilj
ZXJ0aWZpY2F0ZXMsIHBvbGljeS5nZXQoKSwgJnRydXN0UmVmKSAhPSBub0VycikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIFJldGFpblB0cjxTZWNUcnVzdFJlZj4gdHJ1c3QgPSBhZG9wdENG
KHRydXN0UmVmKTsKKworICAgIHJldHVybiBjZXJ0aWZpY2F0ZXNNYXRjaCh0cnVzdC5nZXQoKSwg
Y2hhbGxlbmdlLm5zVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKS5wcm90ZWN0aW9uU3BhY2Uu
c2VydmVyVHJ1c3QpOworfQorCiB9CiAKICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>