<?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>231963</bug_id>
          
          <creation_ts>2021-10-19 10:00:27 -0700</creation_ts>
          <short_desc>WebAuthn Platform UI callbacks are not guaranteed to happen on the main thread</short_desc>
          <delta_ts>2021-10-19 13:32:49 -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>New Bugs</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="Garrett Davidson">garrett_davidson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>garrett_davidson</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1806102</commentid>
    <comment_count>0</comment_count>
    <who name="Garrett Davidson">garrett_davidson</who>
    <bug_when>2021-10-19 10:00:27 -0700</bug_when>
    <thetext>WebAuthn Platform UI callbacks are not guaranteed to happen on the main thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806118</commentid>
    <comment_count>1</comment_count>
      <attachid>441748</attachid>
    <who name="Garrett Davidson">garrett_davidson</who>
    <bug_when>2021-10-19 10:12:48 -0700</bug_when>
    <thetext>Created attachment 441748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806119</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-19 10:14:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/84420452&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806154</commentid>
    <comment_count>3</comment_count>
      <attachid>441748</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-10-19 10:54:51 -0700</bug_when>
    <thetext>Comment on attachment 441748
Patch

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

&gt; Source/WebKit/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=231963

Please add: &lt;rdar://84420452&gt;

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:268
&gt; +        dispatch_async(dispatch_get_main_queue(), makeBlockPtr([weakThis, handler = WTFMove(handler), window = WTFMove(window), proxy = WTFMove(proxy), daemonEndpoint = retainPtr(daemonEndpoint), error = retainPtr(error)] () mutable {

This would be better as:

callOnMainThread([weakThis, handler = WTFMove(handler), window = WTFMove(window), proxy = WTFMove(proxy), daemonEndpoint = retainPtr(daemonEndpoint), error = retainPtr(error)] {
...
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806185</commentid>
    <comment_count>4</comment_count>
      <attachid>441763</attachid>
    <who name="Garrett Davidson">garrett_davidson</who>
    <bug_when>2021-10-19 11:27:23 -0700</bug_when>
    <thetext>Created attachment 441763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806210</commentid>
    <comment_count>5</comment_count>
      <attachid>441763</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-10-19 12:02:34 -0700</bug_when>
    <thetext>Comment on attachment 441763
Patch

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

r=me, but please adjust the &apos;protectedThis&apos; naming to reflect that this is a weak pointer, and does not hold the instance alive.

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:270
&gt; +            auto protectedThis = weakThis.get();

protectedThis is a bad name for a WeakPtr -- can we just use &apos;weakThis&apos;? I don&apos;t think we need to pull a bare pointer out of the WeakPtr wrapper (it should cast properly). &apos;protectedThis&apos; implies we have a RetainPtr that is holding the object alive -- which is misleading in this case.

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:271
&gt; +            if (!protectedThis || !daemonEndpoint) {

So this would just be &quot;if (!weakThis || !daemonEndpoint) {&quot;

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:277
&gt; +            protectedThis-&gt;m_presenter = adoptNS([allocASCAuthorizationRemotePresenterInstance() init]);

Then these could just be &quot;weakThis-&gt;m_presenter&quot;, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806230</commentid>
    <comment_count>6</comment_count>
      <attachid>441770</attachid>
    <who name="Garrett Davidson">garrett_davidson</who>
    <bug_when>2021-10-19 12:36:01 -0700</bug_when>
    <thetext>Created attachment 441770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806239</commentid>
    <comment_count>7</comment_count>
      <attachid>441770</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-10-19 12:43:23 -0700</bug_when>
    <thetext>Comment on attachment 441770
Patch

Looks great! Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806270</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-19 13:32:47 -0700</bug_when>
    <thetext>Committed r284489 (243243@main): &lt;https://commits.webkit.org/243243@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441770.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441748</attachid>
            <date>2021-10-19 10:12:48 -0700</date>
            <delta_ts>2021-10-19 11:27:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231963-20211019101247.patch</filename>
            <type>text/plain</type>
            <size>11223</size>
            <attacher name="Garrett Davidson">garrett_davidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ2MzczZjQyNGQwN2UyM2Ux
OWNlOWZlZjk3NjVjYzljNDZiNDgyYWUuLjYyZTlmZjAwNzFhMjAzOGE3ZTU3MzhmMzdlZjExNTFm
ZmE4ZDBjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMTAtMTkgIEdhcnJldHQg
RGF2aWRzb24gIDxnYXJyZXR0X2Rhdmlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdXRo
biBQbGF0Zm9ybSBVSSBjYWxsYmFja3MgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGhhcHBlbiBvbiB0
aGUgbWFpbiB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTk2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIC0gVGhlIGNsZWFyYW5jZUhhbmRsZXIgaXMgbm90IGd1YXJhbnRlZWQgdG8gaGFwcGVu
IG9uIHRoZSBtYWluIHRocmVhZCwgYnV0CisgICAgICAgIHdlYWtUaGlzLmdldCgpIG5lZWRzIHRv
IGhhcHBlbiB0aGVyZS4KKworICAgICAgICAtIGBwcm94eWAgbmVlZHMgdG8gc3RheSBhbGl2ZSBm
b3IgdGhlIHdob2xlIHRyYW5zYWN0aW9uLCBvdGhlcndpc2UgaXQgd2lsbCB0ZWFyCisgICAgICAg
IGRvd24gdGhlIGNvbm5lY3Rpb24gYW5kIGNhbmNlbCB0aGUgcmVxdWVzdCwgc28gZXhwbGljaXRs
eSBjYXB0dXJlIGl0IGV2ZXJ5d2hlcmUuCisKKyAgICAgICAgLSBTdGFydCBsb2dnaW5nIGlmIHdl
IGdldCBhbiBlcnJvciBmcm9tIGNsZWFyYW5jZUhhbmRsZXIuCisKKyAgICAgICAgQ292ZXJlZCBi
eSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OnBlcmZvcm1SZXF1ZXN0KToK
KwogMjAyMS0xMC0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJldmVydCByMjg0MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tCmluZGV4IDBiYmRiZjM2YTU0
ZjljNWI0MTgwNDY5ZWYwMzEyOTkzZTg4NWE2YTguLjRkNDkwMWFkN2NlNmQ4MDY0ZmU4YjI2ZmY1
Mjg4ZTY2YjY5MTcwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tCkBAIC0yNjQsNzUgKzI2NCw3NiBAQCB2b2lk
IFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpwZXJmb3JtUmVxdWVzdChSZXRhaW5Q
dHI8QVNDQ3JlZGVudGlhbFJlcQogICAgIGF1dG8gcHJveHkgPSBhZG9wdE5TKFthbGxvY0FTQ0Fn
ZW50UHJveHlJbnN0YW5jZSgpIGluaXRdKTsKIAogICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2lu
ZG93ID0gbV93ZWJQYWdlUHJveHkucGxhdGZvcm1XaW5kb3coKTsKLSAgICBbcHJveHkgcGVyZm9y
bUF1dGhvcml6YXRpb25SZXF1ZXN0c0ZvckNvbnRleHQ6cmVxdWVzdENvbnRleHQuZ2V0KCkgd2l0
aENsZWFyYW5jZUhhbmRsZXI6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92ZSh3aW5kb3cp
XShOU1hQQ0xpc3RlbmVyRW5kcG9pbnQgKmRhZW1vbkVucG9pbnQsIE5TRXJyb3IgKmVycm9yKSBt
dXRhYmxlIHsKLSAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gd2Vha1RoaXMuZ2V0KCk7Cisg
ICAgW3Byb3h5IHBlcmZvcm1BdXRob3JpemF0aW9uUmVxdWVzdHNGb3JDb250ZXh0OnJlcXVlc3RD
b250ZXh0LmdldCgpIHdpdGhDbGVhcmFuY2VIYW5kbGVyOm1ha2VCbG9ja1B0cihbd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlciksIHdpbmRvdyA9
IFdURk1vdmUod2luZG93KSwgcHJveHkgPSBXVEZNb3ZlKHByb3h5KV0oTlNYUENMaXN0ZW5lckVu
ZHBvaW50ICpkYWVtb25FbmRwb2ludCwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgeworICAgICAg
ICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBtYWtlQmxvY2tQdHIo
W3dlYWtUaGlzLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RGTW92ZSh3
aW5kb3cpLCBwcm94eSA9IFdURk1vdmUocHJveHkpLCBkYWVtb25FbmRwb2ludCA9IHJldGFpblB0
cihkYWVtb25FbmRwb2ludCksIGVycm9yID0gcmV0YWluUHRyKGVycm9yKV0gKCkgbXV0YWJsZSB7
CiAKLSAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzIHx8ICFkYWVtb25FbnBvaW50KSB7Ci0gICAg
ICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2hhbmRsZXIgPSBXVEZNb3ZlKGhhbmRs
ZXIpXSgpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gd2Vha1Ro
aXMuZ2V0KCk7CisgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMgfHwgIWRhZW1vbkVuZHBv
aW50KSB7CisgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgY29ubmVjdCB0byBh
dXRob3JpemF0aW9uIGRhZW1vbjogJUBcbiIsIGVycm9yLmdldCgpKTsKICAgICAgICAgICAgICAg
ICBoYW5kbGVyKHsgfSwgKEF1dGhlbnRpY2F0b3JBdHRhY2htZW50KTAsIEV4Y2VwdGlvbkRhdGEg
eyBOb3RBbGxvd2VkRXJyb3IsICJPcGVyYXRpb24gZmFpbGVkLiIgfSk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KIAotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3ByZXNlbnRlciA9
IGFkb3B0TlMoW2FsbG9jQVNDQXV0aG9yaXphdGlvblJlbW90ZVByZXNlbnRlckluc3RhbmNlKCkg
aW5pdF0pOwotICAgICAgICBbcHJvdGVjdGVkVGhpcy0+bV9wcmVzZW50ZXIgcHJlc2VudFdpdGhX
aW5kb3c6d2luZG93LmdldCgpIGRhZW1vbkVuZHBvaW50OmRhZW1vbkVucG9pbnQgY29tcGxldGlv
bkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKV0oaWQgPEFT
Q0NyZWRlbnRpYWxQcm90b2NvbD4gY3JlZGVudGlhbCwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUg
ewotICAgICAgICAgICAgQXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSByZXNwb25zZSA9IHsgfTsK
LSAgICAgICAgICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQ7Ci0gICAgICAg
ICAgICBFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbkRhdGEgPSB7IH07Ci0KLSAgICAgICAgICAgIGlm
IChbY3JlZGVudGlhbCBpc0tpbmRPZkNsYXNzOmdldEFTQ1BsYXRmb3JtUHVibGljS2V5Q3JlZGVu
dGlhbFJlZ2lzdHJhdGlvbkNsYXNzKCldKSB7Ci0gICAgICAgICAgICAgICAgYXR0YWNobWVudCA9
IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybTsKLSAgICAgICAgICAgICAgICByZXNw
b25zZS5pc0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlID0gdHJ1ZTsKLQotICAgICAg
ICAgICAgICAgIEFTQ1BsYXRmb3JtUHVibGljS2V5Q3JlZGVudGlhbFJlZ2lzdHJhdGlvbiAqcmVn
aXN0cmF0aW9uQ3JlZGVudGlhbCA9IGNyZWRlbnRpYWw7Ci0gICAgICAgICAgICAgICAgcmVzcG9u
c2UucmF3SWQgPSB0b0FycmF5QnVmZmVyKHJlZ2lzdHJhdGlvbkNyZWRlbnRpYWwuY3JlZGVudGlh
bElEKTsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5hdHRlc3RhdGlvbk9iamVjdCA9IHRvQXJy
YXlCdWZmZXIocmVnaXN0cmF0aW9uQ3JlZGVudGlhbC5hdHRlc3RhdGlvbk9iamVjdCk7Ci0gICAg
ICAgICAgICB9IGVsc2UgaWYgKFtjcmVkZW50aWFsIGlzS2luZE9mQ2xhc3M6Z2V0QVNDU2VjdXJp
dHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsUmVnaXN0cmF0aW9uQ2xhc3MoKV0pIHsKLSAgICAgICAg
ICAgICAgICBhdHRhY2htZW50ID0gQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OkNyb3NzUGxhdGZv
cm07Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UuaXNBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25S
ZXNwb25zZSA9IHRydWU7Ci0KLSAgICAgICAgICAgICAgICBBU0NTZWN1cml0eUtleVB1YmxpY0tl
eUNyZWRlbnRpYWxSZWdpc3RyYXRpb24gKnJlZ2lzdHJhdGlvbkNyZWRlbnRpYWwgPSBjcmVkZW50
aWFsOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJhd0lkID0gdG9BcnJheUJ1ZmZlcihyZWdp
c3RyYXRpb25DcmVkZW50aWFsLmNyZWRlbnRpYWxJRCk7Ci0gICAgICAgICAgICAgICAgcmVzcG9u
c2UuYXR0ZXN0YXRpb25PYmplY3QgPSB0b0FycmF5QnVmZmVyKHJlZ2lzdHJhdGlvbkNyZWRlbnRp
YWwuYXR0ZXN0YXRpb25PYmplY3QpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChbY3JlZGVudGlh
bCBpc0tpbmRPZkNsYXNzOmdldEFTQ1BsYXRmb3JtUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlv
bkNsYXNzKCldKSB7Ci0gICAgICAgICAgICAgICAgYXR0YWNobWVudCA9IEF1dGhlbnRpY2F0b3JB
dHRhY2htZW50OjpQbGF0Zm9ybTsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5pc0F1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlID0gZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICBBU0NQ
bGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb24gKmFzc2VydGlvbkNyZWRlbnRpYWwg
PSBjcmVkZW50aWFsOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJhd0lkID0gdG9BcnJheUJ1
ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLmNyZWRlbnRpYWxJRCk7Ci0gICAgICAgICAgICAgICAg
cmVzcG9uc2UuYXV0aGVudGljYXRvckRhdGEgPSB0b0FycmF5QnVmZmVyKGFzc2VydGlvbkNyZWRl
bnRpYWwuYXV0aGVudGljYXRvckRhdGEpOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNpZ25h
dHVyZSA9IHRvQXJyYXlCdWZmZXIoYXNzZXJ0aW9uQ3JlZGVudGlhbC5zaWduYXR1cmUpOwotICAg
ICAgICAgICAgICAgIHJlc3BvbnNlLnVzZXJIYW5kbGUgPSB0b0FycmF5QnVmZmVyKGFzc2VydGlv
bkNyZWRlbnRpYWwudXNlckhhbmRsZSk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKFtjcmVkZW50
aWFsIGlzS2luZE9mQ2xhc3M6Z2V0QVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsQXNz
ZXJ0aW9uQ2xhc3MoKV0pIHsKLSAgICAgICAgICAgICAgICBhdHRhY2htZW50ID0gQXV0aGVudGlj
YXRvckF0dGFjaG1lbnQ6OkNyb3NzUGxhdGZvcm07Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2Uu
aXNBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA9IGZhbHNlOwotCi0gICAgICAgICAg
ICAgICAgQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uICphc3NlcnRp
b25DcmVkZW50aWFsID0gY3JlZGVudGlhbDsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5yYXdJ
ZCA9IHRvQXJyYXlCdWZmZXIoYXNzZXJ0aW9uQ3JlZGVudGlhbC5jcmVkZW50aWFsSUQpOwotICAg
ICAgICAgICAgICAgIHJlc3BvbnNlLmF1dGhlbnRpY2F0b3JEYXRhID0gdG9BcnJheUJ1ZmZlcihh
c3NlcnRpb25DcmVkZW50aWFsLmF1dGhlbnRpY2F0b3JEYXRhKTsKLSAgICAgICAgICAgICAgICBy
ZXNwb25zZS5zaWduYXR1cmUgPSB0b0FycmF5QnVmZmVyKGFzc2VydGlvbkNyZWRlbnRpYWwuc2ln
bmF0dXJlKTsKLSAgICAgICAgICAgICAgICByZXNwb25zZS51c2VySGFuZGxlID0gdG9BcnJheUJ1
ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLnVzZXJIYW5kbGUpOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBhdHRhY2htZW50ID0gKEF1dGhlbnRpY2F0b3JBdHRhY2htZW50
KSAwOwotICAgICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZXhjZXB0aW9uQ29kZTsKLSAgICAg
ICAgICAgICAgICBOU1N0cmluZyAqZXJyb3JNZXNzYWdlID0gbmlsOwotICAgICAgICAgICAgICAg
IGlmIChbZXJyb3IuZG9tYWluIGlzRXF1YWxUb1N0cmluZzpXS0Vycm9yRG9tYWluXSkgewotICAg
ICAgICAgICAgICAgICAgICBleGNlcHRpb25Db2RlID0gdG9FeGNlcHRpb25Db2RlKGVycm9yLmNv
ZGUpOwotICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci51c2VySW5mb1tO
U0xvY2FsaXplZERlc2NyaXB0aW9uS2V5XTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1f
cHJlc2VudGVyID0gYWRvcHROUyhbYWxsb2NBU0NBdXRob3JpemF0aW9uUmVtb3RlUHJlc2VudGVy
SW5zdGFuY2UoKSBpbml0XSk7CisgICAgICAgICAgICBbcHJvdGVjdGVkVGhpcy0+bV9wcmVzZW50
ZXIgcHJlc2VudFdpdGhXaW5kb3c6d2luZG93LmdldCgpIGRhZW1vbkVuZHBvaW50OmRhZW1vbkVu
ZHBvaW50LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbaGFuZGxlciA9IFdU
Rk1vdmUoaGFuZGxlciksIHByb3h5ID0gV1RGTW92ZShwcm94eSldKGlkIDxBU0NDcmVkZW50aWFs
UHJvdG9jb2w+IGNyZWRlbnRpYWwsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgICAgICBBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIHJlc3BvbnNlID0geyB9OworICAgICAg
ICAgICAgICAgIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQ7CisgICAgICAgICAg
ICAgICAgRXhjZXB0aW9uRGF0YSBleGNlcHRpb25EYXRhID0geyB9OworCisgICAgICAgICAgICAg
ICAgaWYgKFtjcmVkZW50aWFsIGlzS2luZE9mQ2xhc3M6Z2V0QVNDUGxhdGZvcm1QdWJsaWNLZXlD
cmVkZW50aWFsUmVnaXN0cmF0aW9uQ2xhc3MoKV0pIHsKKyAgICAgICAgICAgICAgICAgICAgYXR0
YWNobWVudCA9IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybTsKKyAgICAgICAgICAg
ICAgICAgICAgcmVzcG9uc2UuaXNBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA9IHRy
dWU7CisKKyAgICAgICAgICAgICAgICAgICAgQVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFs
UmVnaXN0cmF0aW9uICpyZWdpc3RyYXRpb25DcmVkZW50aWFsID0gY3JlZGVudGlhbDsKKyAgICAg
ICAgICAgICAgICAgICAgcmVzcG9uc2UucmF3SWQgPSB0b0FycmF5QnVmZmVyKHJlZ2lzdHJhdGlv
bkNyZWRlbnRpYWwuY3JlZGVudGlhbElEKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uu
YXR0ZXN0YXRpb25PYmplY3QgPSB0b0FycmF5QnVmZmVyKHJlZ2lzdHJhdGlvbkNyZWRlbnRpYWwu
YXR0ZXN0YXRpb25PYmplY3QpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoW2NyZWRlbnRp
YWwgaXNLaW5kT2ZDbGFzczpnZXRBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxSZWdp
c3RyYXRpb25DbGFzcygpXSkgeworICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50ID0gQXV0
aGVudGljYXRvckF0dGFjaG1lbnQ6OkNyb3NzUGxhdGZvcm07CisgICAgICAgICAgICAgICAgICAg
IHJlc3BvbnNlLmlzQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgPSB0cnVlOworCisg
ICAgICAgICAgICAgICAgICAgIEFTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbFJlZ2lz
dHJhdGlvbiAqcmVnaXN0cmF0aW9uQ3JlZGVudGlhbCA9IGNyZWRlbnRpYWw7CisgICAgICAgICAg
ICAgICAgICAgIHJlc3BvbnNlLnJhd0lkID0gdG9BcnJheUJ1ZmZlcihyZWdpc3RyYXRpb25DcmVk
ZW50aWFsLmNyZWRlbnRpYWxJRCk7CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmF0dGVz
dGF0aW9uT2JqZWN0ID0gdG9BcnJheUJ1ZmZlcihyZWdpc3RyYXRpb25DcmVkZW50aWFsLmF0dGVz
dGF0aW9uT2JqZWN0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFtjcmVkZW50aWFsIGlz
S2luZE9mQ2xhc3M6Z2V0QVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uQ2xh
c3MoKV0pIHsKKyAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudCA9IEF1dGhlbnRpY2F0b3JB
dHRhY2htZW50OjpQbGF0Zm9ybTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuaXNBdXRo
ZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA9IGZhbHNlOworCisgICAgICAgICAgICAgICAg
ICAgIEFTQ1BsYXRmb3JtUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbiAqYXNzZXJ0aW9uQ3Jl
ZGVudGlhbCA9IGNyZWRlbnRpYWw7CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJhd0lk
ID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLmNyZWRlbnRpYWxJRCk7CisgICAg
ICAgICAgICAgICAgICAgIHJlc3BvbnNlLmF1dGhlbnRpY2F0b3JEYXRhID0gdG9BcnJheUJ1ZmZl
cihhc3NlcnRpb25DcmVkZW50aWFsLmF1dGhlbnRpY2F0b3JEYXRhKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmVzcG9uc2Uuc2lnbmF0dXJlID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50
aWFsLnNpZ25hdHVyZSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnVzZXJIYW5kbGUg
PSB0b0FycmF5QnVmZmVyKGFzc2VydGlvbkNyZWRlbnRpYWwudXNlckhhbmRsZSk7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIGlmIChbY3JlZGVudGlhbCBpc0tpbmRPZkNsYXNzOmdldEFTQ1NlY3Vy
aXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbkNsYXNzKCldKSB7CisgICAgICAgICAg
ICAgICAgICAgIGF0dGFjaG1lbnQgPSBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6Q3Jvc3NQbGF0
Zm9ybTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuaXNBdXRoZW50aWNhdG9yQXR0ZXN0
YXRpb25SZXNwb25zZSA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgICAgIEFTQ1NlY3VyaXR5
S2V5UHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbiAqYXNzZXJ0aW9uQ3JlZGVudGlhbCA9IGNy
ZWRlbnRpYWw7CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJhd0lkID0gdG9BcnJheUJ1
ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLmNyZWRlbnRpYWxJRCk7CisgICAgICAgICAgICAgICAg
ICAgIHJlc3BvbnNlLmF1dGhlbnRpY2F0b3JEYXRhID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25D
cmVkZW50aWFsLmF1dGhlbnRpY2F0b3JEYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9u
c2Uuc2lnbmF0dXJlID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLnNpZ25hdHVy
ZSk7CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnVzZXJIYW5kbGUgPSB0b0FycmF5QnVm
ZmVyKGFzc2VydGlvbkNyZWRlbnRpYWwudXNlckhhbmRsZSk7CiAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uQ29kZSA9IE5vdEFsbG93ZWRFcnJv
cjsKLQotICAgICAgICAgICAgICAgICAgICBpZiAoW2Vycm9yLmRvbWFpbiBpc0VxdWFsVG9TdHJp
bmc6QVNDQXV0aG9yaXphdGlvbkVycm9yRG9tYWluXSAmJiBlcnJvci5jb2RlID09IEFTQ0F1dGhv
cml6YXRpb25FcnJvclVzZXJDYW5jZWxlZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9y
TWVzc2FnZSA9IEAiVGhpcyByZXF1ZXN0IGhhcyBiZWVuIGNhbmNlbGxlZCBieSB0aGUgdXNlci4i
OwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBlcnJv
ck1lc3NhZ2UgPSBAIk9wZXJhdGlvbiBmYWlsZWQuIjsKKyAgICAgICAgICAgICAgICAgICAgYXR0
YWNobWVudCA9IChBdXRoZW50aWNhdG9yQXR0YWNobWVudCkgMDsKKyAgICAgICAgICAgICAgICAg
ICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOworICAgICAgICAgICAgICAgICAgICBOU1N0
cmluZyAqZXJyb3JNZXNzYWdlID0gbmlsOworICAgICAgICAgICAgICAgICAgICBpZiAoW2Vycm9y
LmRvbWFpbiBpc0VxdWFsVG9TdHJpbmc6V0tFcnJvckRvbWFpbl0pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvbkNvZGUgPSB0b0V4Y2VwdGlvbkNvZGUoZXJyb3IuY29kZSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci51c2VySW5mb1tOU0xv
Y2FsaXplZERlc2NyaXB0aW9uS2V5XTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkNvZGUgPSBOb3RBbGxvd2VkRXJyb3I7CisK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChbZXJyb3IuZG9tYWluIGlzRXF1YWxUb1N0cmlu
ZzpBU0NBdXRob3JpemF0aW9uRXJyb3JEb21haW5dICYmIGVycm9yLmNvZGUgPT0gQVNDQXV0aG9y
aXphdGlvbkVycm9yVXNlckNhbmNlbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy
cm9yTWVzc2FnZSA9IEAiVGhpcyByZXF1ZXN0IGhhcyBiZWVuIGNhbmNlbGxlZCBieSB0aGUgdXNl
ci4iOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVycm9yTWVzc2FnZSA9IEAiT3BlcmF0aW9uIGZhaWxlZC4iOworICAgICAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uRGF0YSA9IHsgZXhjZXB0
aW9uQ29kZSwgZXJyb3JNZXNzYWdlIH07CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICAgICAgZXhjZXB0aW9uRGF0YSA9IHsgZXhjZXB0aW9uQ29kZSwgZXJyb3JNZXNzYWdlIH07Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGhhbmRsZXIocmVzcG9uc2UsIGF0dGFjaG1lbnQs
IGV4Y2VwdGlvbkRhdGEpOwotICAgICAgICB9KS5nZXQoKV07CisgICAgICAgICAgICAgICAgaGFu
ZGxlcihyZXNwb25zZSwgYXR0YWNobWVudCwgZXhjZXB0aW9uRGF0YSk7CisgICAgICAgICAgICB9
KS5nZXQoKV07CisgICAgICAgIH0pLmdldCgpKTsKICAgICB9KS5nZXQoKV07CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441763</attachid>
            <date>2021-10-19 11:27:23 -0700</date>
            <delta_ts>2021-10-19 12:35:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231963-20211019112722.patch</filename>
            <type>text/plain</type>
            <size>11206</size>
            <attacher name="Garrett Davidson">garrett_davidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ2MzczZjQyNGQwN2UyM2Ux
OWNlOWZlZjk3NjVjYzljNDZiNDgyYWUuLjc1NTY2ODMzOGNkNWY3YjYyMTJmYzNmODE3MTEyNmM0
YzNkZTU3MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMTAtMTkgIEdhcnJldHQg
RGF2aWRzb24gIDxnYXJyZXR0X2Rhdmlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdXRo
biBQbGF0Zm9ybSBVSSBjYWxsYmFja3MgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGhhcHBlbiBvbiB0
aGUgbWFpbiB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTk2MworICAgICAgICA8cmRhcjovLzg0NDIwNDUyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gVGhlIGNsZWFyYW5jZUhhbmRsZXIg
aXMgbm90IGd1YXJhbnRlZWQgdG8gaGFwcGVuIG9uIHRoZSBtYWluIHRocmVhZCwgYnV0CisgICAg
ICAgIHdlYWtUaGlzLmdldCgpIG5lZWRzIHRvIGhhcHBlbiB0aGVyZS4KKworICAgICAgICAtIGBw
cm94eWAgbmVlZHMgdG8gc3RheSBhbGl2ZSBmb3IgdGhlIHdob2xlIHRyYW5zYWN0aW9uLCBvdGhl
cndpc2UgaXQgd2lsbCB0ZWFyCisgICAgICAgIGRvd24gdGhlIGNvbm5lY3Rpb24gYW5kIGNhbmNl
bCB0aGUgcmVxdWVzdCwgc28gZXhwbGljaXRseSBjYXB0dXJlIGl0IGV2ZXJ5d2hlcmUuCisKKyAg
ICAgICAgLSBTdGFydCBsb2dnaW5nIGlmIHdlIGdldCBhbiBlcnJvciBmcm9tIGNsZWFyYW5jZUhh
bmRsZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OnBlcmZvcm1SZXF1ZXN0KToKKwogMjAyMS0xMC0xOCAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmVydCByMjg0MjE2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5Lm1tCmluZGV4IDBiYmRiZjM2YTU0ZjljNWI0MTgwNDY5ZWYwMzEyOTkzZTg4NWE2YTgu
LjVjYzY2ZjQyNWM4YjI2ZDEwYmMyYmYwOTAwYTkwZDA2MDkwNjYxNTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1t
CkBAIC0yNjQsNzUgKzI2NCw3NiBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5OjpwZXJmb3JtUmVxdWVzdChSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcQogICAgIGF1dG8g
cHJveHkgPSBhZG9wdE5TKFthbGxvY0FTQ0FnZW50UHJveHlJbnN0YW5jZSgpIGluaXRdKTsKIAog
ICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gbV93ZWJQYWdlUHJveHkucGxhdGZvcm1X
aW5kb3coKTsKLSAgICBbcHJveHkgcGVyZm9ybUF1dGhvcml6YXRpb25SZXF1ZXN0c0ZvckNvbnRl
eHQ6cmVxdWVzdENvbnRleHQuZ2V0KCkgd2l0aENsZWFyYW5jZUhhbmRsZXI6bWFrZUJsb2NrUHRy
KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVy
KSwgd2luZG93ID0gV1RGTW92ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5kcG9pbnQgKmRhZW1v
bkVucG9pbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBwcm90ZWN0
ZWRUaGlzID0gd2Vha1RoaXMuZ2V0KCk7CisgICAgW3Byb3h5IHBlcmZvcm1BdXRob3JpemF0aW9u
UmVxdWVzdHNGb3JDb250ZXh0OnJlcXVlc3RDb250ZXh0LmdldCgpIHdpdGhDbGVhcmFuY2VIYW5k
bGVyOm1ha2VCbG9ja1B0cihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgaGFuZGxlciA9
IFdURk1vdmUoaGFuZGxlciksIHdpbmRvdyA9IFdURk1vdmUod2luZG93KSwgcHJveHkgPSBXVEZN
b3ZlKHByb3h5KV0oTlNYUENMaXN0ZW5lckVuZHBvaW50ICpkYWVtb25FbmRwb2ludCwgTlNFcnJv
ciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMs
IGhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpLCB3aW5kb3cgPSBXVEZNb3ZlKHdpbmRvdyksIHBy
b3h5ID0gV1RGTW92ZShwcm94eSksIGRhZW1vbkVuZHBvaW50ID0gcmV0YWluUHRyKGRhZW1vbkVu
ZHBvaW50KSwgZXJyb3IgPSByZXRhaW5QdHIoZXJyb3IpXSAoKSBtdXRhYmxlIHsKIAotICAgICAg
ICBpZiAoIXByb3RlY3RlZFRoaXMgfHwgIWRhZW1vbkVucG9pbnQpIHsKLSAgICAgICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcildKCkgbXV0
YWJsZSB7CisgICAgICAgICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSB3ZWFrVGhpcy5nZXQoKTsK
KyAgICAgICAgICAgIGlmICghcHJvdGVjdGVkVGhpcyB8fCAhZGFlbW9uRW5kcG9pbnQpIHsKKyAg
ICAgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBjb25uZWN0IHRvIGF1dGhvcml6YXRp
b24gZGFlbW9uOiAlQFxuIiwgZXJyb3IuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGhhbmRsZXIo
eyB9LCAoQXV0aGVudGljYXRvckF0dGFjaG1lbnQpMCwgRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93
ZWRFcnJvciwgIk9wZXJhdGlvbiBmYWlsZWQuIiB9KTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQogCi0gICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJlc2VudGVyID0gYWRvcHROUyhb
YWxsb2NBU0NBdXRob3JpemF0aW9uUmVtb3RlUHJlc2VudGVySW5zdGFuY2UoKSBpbml0XSk7Ci0g
ICAgICAgIFtwcm90ZWN0ZWRUaGlzLT5tX3ByZXNlbnRlciBwcmVzZW50V2l0aFdpbmRvdzp3aW5k
b3cuZ2V0KCkgZGFlbW9uRW5kcG9pbnQ6ZGFlbW9uRW5wb2ludCBjb21wbGV0aW9uSGFuZGxlcjpt
YWtlQmxvY2tQdHIoW2hhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpXShpZCA8QVNDQ3JlZGVudGlh
bFByb3RvY29sPiBjcmVkZW50aWFsLCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7Ci0gICAgICAg
ICAgICBBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIHJlc3BvbnNlID0geyB9OwotICAgICAgICAg
ICAgQXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0YWNobWVudDsKLSAgICAgICAgICAgIEV4Y2Vw
dGlvbkRhdGEgZXhjZXB0aW9uRGF0YSA9IHsgfTsKLQotICAgICAgICAgICAgaWYgKFtjcmVkZW50
aWFsIGlzS2luZE9mQ2xhc3M6Z2V0QVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsUmVnaXN0
cmF0aW9uQ2xhc3MoKV0pIHsKLSAgICAgICAgICAgICAgICBhdHRhY2htZW50ID0gQXV0aGVudGlj
YXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLmlzQXV0
aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgPSB0cnVlOwotCi0gICAgICAgICAgICAgICAg
QVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsUmVnaXN0cmF0aW9uICpyZWdpc3RyYXRpb25D
cmVkZW50aWFsID0gY3JlZGVudGlhbDsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5yYXdJZCA9
IHRvQXJyYXlCdWZmZXIocmVnaXN0cmF0aW9uQ3JlZGVudGlhbC5jcmVkZW50aWFsSUQpOwotICAg
ICAgICAgICAgICAgIHJlc3BvbnNlLmF0dGVzdGF0aW9uT2JqZWN0ID0gdG9BcnJheUJ1ZmZlcihy
ZWdpc3RyYXRpb25DcmVkZW50aWFsLmF0dGVzdGF0aW9uT2JqZWN0KTsKLSAgICAgICAgICAgIH0g
ZWxzZSBpZiAoW2NyZWRlbnRpYWwgaXNLaW5kT2ZDbGFzczpnZXRBU0NTZWN1cml0eUtleVB1Ymxp
Y0tleUNyZWRlbnRpYWxSZWdpc3RyYXRpb25DbGFzcygpXSkgewotICAgICAgICAgICAgICAgIGF0
dGFjaG1lbnQgPSBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6Q3Jvc3NQbGF0Zm9ybTsKLSAgICAg
ICAgICAgICAgICByZXNwb25zZS5pc0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlID0g
dHJ1ZTsKLQotICAgICAgICAgICAgICAgIEFTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlh
bFJlZ2lzdHJhdGlvbiAqcmVnaXN0cmF0aW9uQ3JlZGVudGlhbCA9IGNyZWRlbnRpYWw7Ci0gICAg
ICAgICAgICAgICAgcmVzcG9uc2UucmF3SWQgPSB0b0FycmF5QnVmZmVyKHJlZ2lzdHJhdGlvbkNy
ZWRlbnRpYWwuY3JlZGVudGlhbElEKTsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5hdHRlc3Rh
dGlvbk9iamVjdCA9IHRvQXJyYXlCdWZmZXIocmVnaXN0cmF0aW9uQ3JlZGVudGlhbC5hdHRlc3Rh
dGlvbk9iamVjdCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKFtjcmVkZW50aWFsIGlzS2luZE9m
Q2xhc3M6Z2V0QVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uQ2xhc3MoKV0p
IHsKLSAgICAgICAgICAgICAgICBhdHRhY2htZW50ID0gQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6
OlBsYXRmb3JtOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLmlzQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uUmVzcG9uc2UgPSBmYWxzZTsKLQotICAgICAgICAgICAgICAgIEFTQ1BsYXRmb3JtUHVi
bGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbiAqYXNzZXJ0aW9uQ3JlZGVudGlhbCA9IGNyZWRlbnRp
YWw7Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UucmF3SWQgPSB0b0FycmF5QnVmZmVyKGFzc2Vy
dGlvbkNyZWRlbnRpYWwuY3JlZGVudGlhbElEKTsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5h
dXRoZW50aWNhdG9yRGF0YSA9IHRvQXJyYXlCdWZmZXIoYXNzZXJ0aW9uQ3JlZGVudGlhbC5hdXRo
ZW50aWNhdG9yRGF0YSk7Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2lnbmF0dXJlID0gdG9B
cnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLnNpZ25hdHVyZSk7Ci0gICAgICAgICAgICAg
ICAgcmVzcG9uc2UudXNlckhhbmRsZSA9IHRvQXJyYXlCdWZmZXIoYXNzZXJ0aW9uQ3JlZGVudGlh
bC51c2VySGFuZGxlKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoW2NyZWRlbnRpYWwgaXNLaW5k
T2ZDbGFzczpnZXRBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb25DbGFz
cygpXSkgewotICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQgPSBBdXRoZW50aWNhdG9yQXR0YWNo
bWVudDo6Q3Jvc3NQbGF0Zm9ybTsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5pc0F1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlID0gZmFsc2U7Ci0KLSAgICAgICAgICAgICAgICBBU0NT
ZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb24gKmFzc2VydGlvbkNyZWRlbnRp
YWwgPSBjcmVkZW50aWFsOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJhd0lkID0gdG9BcnJh
eUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLmNyZWRlbnRpYWxJRCk7Ci0gICAgICAgICAgICAg
ICAgcmVzcG9uc2UuYXV0aGVudGljYXRvckRhdGEgPSB0b0FycmF5QnVmZmVyKGFzc2VydGlvbkNy
ZWRlbnRpYWwuYXV0aGVudGljYXRvckRhdGEpOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLnNp
Z25hdHVyZSA9IHRvQXJyYXlCdWZmZXIoYXNzZXJ0aW9uQ3JlZGVudGlhbC5zaWduYXR1cmUpOwot
ICAgICAgICAgICAgICAgIHJlc3BvbnNlLnVzZXJIYW5kbGUgPSB0b0FycmF5QnVmZmVyKGFzc2Vy
dGlvbkNyZWRlbnRpYWwudXNlckhhbmRsZSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGF0dGFjaG1lbnQgPSAoQXV0aGVudGljYXRvckF0dGFjaG1lbnQpIDA7Ci0gICAg
ICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBleGNlcHRpb25Db2RlOwotICAgICAgICAgICAgICAg
IE5TU3RyaW5nICplcnJvck1lc3NhZ2UgPSBuaWw7Ci0gICAgICAgICAgICAgICAgaWYgKFtlcnJv
ci5kb21haW4gaXNFcXVhbFRvU3RyaW5nOldLRXJyb3JEb21haW5dKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGV4Y2VwdGlvbkNvZGUgPSB0b0V4Y2VwdGlvbkNvZGUoZXJyb3IuY29kZSk7Ci0gICAg
ICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLnVzZXJJbmZvW05TTG9jYWxpemVk
RGVzY3JpcHRpb25LZXldOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wcmVzZW50ZXIg
PSBhZG9wdE5TKFthbGxvY0FTQ0F1dGhvcml6YXRpb25SZW1vdGVQcmVzZW50ZXJJbnN0YW5jZSgp
IGluaXRdKTsKKyAgICAgICAgICAgIFtwcm90ZWN0ZWRUaGlzLT5tX3ByZXNlbnRlciBwcmVzZW50
V2l0aFdpbmRvdzp3aW5kb3cuZ2V0KCkgZGFlbW9uRW5kcG9pbnQ6ZGFlbW9uRW5kcG9pbnQuZ2V0
KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtoYW5kbGVyID0gV1RGTW92ZShoYW5k
bGVyKSwgcHJveHkgPSBXVEZNb3ZlKHByb3h5KV0oaWQgPEFTQ0NyZWRlbnRpYWxQcm90b2NvbD4g
Y3JlZGVudGlhbCwgTlNFcnJvciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICAgICAgICAgIEF1
dGhlbnRpY2F0b3JSZXNwb25zZURhdGEgcmVzcG9uc2UgPSB7IH07CisgICAgICAgICAgICAgICAg
QXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0YWNobWVudDsKKyAgICAgICAgICAgICAgICBFeGNl
cHRpb25EYXRhIGV4Y2VwdGlvbkRhdGEgPSB7IH07CisKKyAgICAgICAgICAgICAgICBpZiAoW2Ny
ZWRlbnRpYWwgaXNLaW5kT2ZDbGFzczpnZXRBU0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxS
ZWdpc3RyYXRpb25DbGFzcygpXSkgeworICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50ID0g
QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtOworICAgICAgICAgICAgICAgICAgICBy
ZXNwb25zZS5pc0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlID0gdHJ1ZTsKKworICAg
ICAgICAgICAgICAgICAgICBBU0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxSZWdpc3RyYXRp
b24gKnJlZ2lzdHJhdGlvbkNyZWRlbnRpYWwgPSBjcmVkZW50aWFsOworICAgICAgICAgICAgICAg
ICAgICByZXNwb25zZS5yYXdJZCA9IHRvQXJyYXlCdWZmZXIocmVnaXN0cmF0aW9uQ3JlZGVudGlh
bC5jcmVkZW50aWFsSUQpOworICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5hdHRlc3RhdGlv
bk9iamVjdCA9IHRvQXJyYXlCdWZmZXIocmVnaXN0cmF0aW9uQ3JlZGVudGlhbC5hdHRlc3RhdGlv
bk9iamVjdCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChbY3JlZGVudGlhbCBpc0tpbmRP
ZkNsYXNzOmdldEFTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbFJlZ2lzdHJhdGlvbkNs
YXNzKCldKSB7CisgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQgPSBBdXRoZW50aWNhdG9y
QXR0YWNobWVudDo6Q3Jvc3NQbGF0Zm9ybTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uu
aXNBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA9IHRydWU7CisKKyAgICAgICAgICAg
ICAgICAgICAgQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50aWFsUmVnaXN0cmF0aW9uICpy
ZWdpc3RyYXRpb25DcmVkZW50aWFsID0gY3JlZGVudGlhbDsKKyAgICAgICAgICAgICAgICAgICAg
cmVzcG9uc2UucmF3SWQgPSB0b0FycmF5QnVmZmVyKHJlZ2lzdHJhdGlvbkNyZWRlbnRpYWwuY3Jl
ZGVudGlhbElEKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuYXR0ZXN0YXRpb25PYmpl
Y3QgPSB0b0FycmF5QnVmZmVyKHJlZ2lzdHJhdGlvbkNyZWRlbnRpYWwuYXR0ZXN0YXRpb25PYmpl
Y3QpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoW2NyZWRlbnRpYWwgaXNLaW5kT2ZDbGFz
czpnZXRBU0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb25DbGFzcygpXSkgewor
ICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50ID0gQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6
OlBsYXRmb3JtOworICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5pc0F1dGhlbnRpY2F0b3JB
dHRlc3RhdGlvblJlc3BvbnNlID0gZmFsc2U7CisKKyAgICAgICAgICAgICAgICAgICAgQVNDUGxh
dGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uICphc3NlcnRpb25DcmVkZW50aWFsID0g
Y3JlZGVudGlhbDsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmF3SWQgPSB0b0FycmF5
QnVmZmVyKGFzc2VydGlvbkNyZWRlbnRpYWwuY3JlZGVudGlhbElEKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmVzcG9uc2UuYXV0aGVudGljYXRvckRhdGEgPSB0b0FycmF5QnVmZmVyKGFzc2VydGlv
bkNyZWRlbnRpYWwuYXV0aGVudGljYXRvckRhdGEpOworICAgICAgICAgICAgICAgICAgICByZXNw
b25zZS5zaWduYXR1cmUgPSB0b0FycmF5QnVmZmVyKGFzc2VydGlvbkNyZWRlbnRpYWwuc2lnbmF0
dXJlKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UudXNlckhhbmRsZSA9IHRvQXJyYXlC
dWZmZXIoYXNzZXJ0aW9uQ3JlZGVudGlhbC51c2VySGFuZGxlKTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKFtjcmVkZW50aWFsIGlzS2luZE9mQ2xhc3M6Z2V0QVNDU2VjdXJpdHlLZXlQdWJs
aWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uQ2xhc3MoKV0pIHsKKyAgICAgICAgICAgICAgICAgICAg
YXR0YWNobWVudCA9IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpDcm9zc1BsYXRmb3JtOworICAg
ICAgICAgICAgICAgICAgICByZXNwb25zZS5pc0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3Bv
bnNlID0gZmFsc2U7CisKKyAgICAgICAgICAgICAgICAgICAgQVNDU2VjdXJpdHlLZXlQdWJsaWNL
ZXlDcmVkZW50aWFsQXNzZXJ0aW9uICphc3NlcnRpb25DcmVkZW50aWFsID0gY3JlZGVudGlhbDsK
KyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UucmF3SWQgPSB0b0FycmF5QnVmZmVyKGFzc2Vy
dGlvbkNyZWRlbnRpYWwuY3JlZGVudGlhbElEKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9u
c2UuYXV0aGVudGljYXRvckRhdGEgPSB0b0FycmF5QnVmZmVyKGFzc2VydGlvbkNyZWRlbnRpYWwu
YXV0aGVudGljYXRvckRhdGEpOworICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5zaWduYXR1
cmUgPSB0b0FycmF5QnVmZmVyKGFzc2VydGlvbkNyZWRlbnRpYWwuc2lnbmF0dXJlKTsKKyAgICAg
ICAgICAgICAgICAgICAgcmVzcG9uc2UudXNlckhhbmRsZSA9IHRvQXJyYXlCdWZmZXIoYXNzZXJ0
aW9uQ3JlZGVudGlhbC51c2VySGFuZGxlKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgICAgICBleGNlcHRpb25Db2RlID0gTm90QWxsb3dlZEVycm9yOwotCi0gICAg
ICAgICAgICAgICAgICAgIGlmIChbZXJyb3IuZG9tYWluIGlzRXF1YWxUb1N0cmluZzpBU0NBdXRo
b3JpemF0aW9uRXJyb3JEb21haW5dICYmIGVycm9yLmNvZGUgPT0gQVNDQXV0aG9yaXphdGlvbkVy
cm9yVXNlckNhbmNlbGVkKQotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0g
QCJUaGlzIHJlcXVlc3QgaGFzIGJlZW4gY2FuY2VsbGVkIGJ5IHRoZSB1c2VyLiI7Ci0gICAgICAg
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
IEAiT3BlcmF0aW9uIGZhaWxlZC4iOworICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50ID0g
KEF1dGhlbnRpY2F0b3JBdHRhY2htZW50KSAwOworICAgICAgICAgICAgICAgICAgICBFeGNlcHRp
b25Db2RlIGV4Y2VwdGlvbkNvZGU7CisgICAgICAgICAgICAgICAgICAgIE5TU3RyaW5nICplcnJv
ck1lc3NhZ2UgPSBuaWw7CisgICAgICAgICAgICAgICAgICAgIGlmIChbZXJyb3IuZG9tYWluIGlz
RXF1YWxUb1N0cmluZzpXS0Vycm9yRG9tYWluXSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ZXhjZXB0aW9uQ29kZSA9IHRvRXhjZXB0aW9uQ29kZShlcnJvci5jb2RlKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGVycm9yLnVzZXJJbmZvW05TTG9jYWxpemVkRGVz
Y3JpcHRpb25LZXldOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgZXhjZXB0aW9uQ29kZSA9IE5vdEFsbG93ZWRFcnJvcjsKKworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKFtlcnJvci5kb21haW4gaXNFcXVhbFRvU3RyaW5nOkFTQ0F1dGhv
cml6YXRpb25FcnJvckRvbWFpbl0gJiYgZXJyb3IuY29kZSA9PSBBU0NBdXRob3JpemF0aW9uRXJy
b3JVc2VyQ2FuY2VsZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdl
ID0gQCJUaGlzIHJlcXVlc3QgaGFzIGJlZW4gY2FuY2VsbGVkIGJ5IHRoZSB1c2VyLiI7CisgICAg
ICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJy
b3JNZXNzYWdlID0gQCJPcGVyYXRpb24gZmFpbGVkLiI7CisgICAgICAgICAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25EYXRhID0geyBleGNlcHRpb25Db2RlLCBl
cnJvck1lc3NhZ2UgfTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBleGNl
cHRpb25EYXRhID0geyBleGNlcHRpb25Db2RlLCBlcnJvck1lc3NhZ2UgfTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgaGFuZGxlcihyZXNwb25zZSwgYXR0YWNobWVudCwgZXhjZXB0aW9u
RGF0YSk7Ci0gICAgICAgIH0pLmdldCgpXTsKKyAgICAgICAgICAgICAgICBoYW5kbGVyKHJlc3Bv
bnNlLCBhdHRhY2htZW50LCBleGNlcHRpb25EYXRhKTsKKyAgICAgICAgICAgIH0pLmdldCgpXTsK
KyAgICAgICAgfSk7CiAgICAgfSkuZ2V0KCldOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441770</attachid>
            <date>2021-10-19 12:36:01 -0700</date>
            <delta_ts>2021-10-19 13:32:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231963-20211019123600.patch</filename>
            <type>text/plain</type>
            <size>11141</size>
            <attacher name="Garrett Davidson">garrett_davidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ2MzczZjQyNGQwN2UyM2Ux
OWNlOWZlZjk3NjVjYzljNDZiNDgyYWUuLjc1NTY2ODMzOGNkNWY3YjYyMTJmYzNmODE3MTEyNmM0
YzNkZTU3MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMTAtMTkgIEdhcnJldHQg
RGF2aWRzb24gIDxnYXJyZXR0X2Rhdmlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdXRo
biBQbGF0Zm9ybSBVSSBjYWxsYmFja3MgYXJlIG5vdCBndWFyYW50ZWVkIHRvIGhhcHBlbiBvbiB0
aGUgbWFpbiB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMTk2MworICAgICAgICA8cmRhcjovLzg0NDIwNDUyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gVGhlIGNsZWFyYW5jZUhhbmRsZXIg
aXMgbm90IGd1YXJhbnRlZWQgdG8gaGFwcGVuIG9uIHRoZSBtYWluIHRocmVhZCwgYnV0CisgICAg
ICAgIHdlYWtUaGlzLmdldCgpIG5lZWRzIHRvIGhhcHBlbiB0aGVyZS4KKworICAgICAgICAtIGBw
cm94eWAgbmVlZHMgdG8gc3RheSBhbGl2ZSBmb3IgdGhlIHdob2xlIHRyYW5zYWN0aW9uLCBvdGhl
cndpc2UgaXQgd2lsbCB0ZWFyCisgICAgICAgIGRvd24gdGhlIGNvbm5lY3Rpb24gYW5kIGNhbmNl
bCB0aGUgcmVxdWVzdCwgc28gZXhwbGljaXRseSBjYXB0dXJlIGl0IGV2ZXJ5d2hlcmUuCisKKyAg
ICAgICAgLSBTdGFydCBsb2dnaW5nIGlmIHdlIGdldCBhbiBlcnJvciBmcm9tIGNsZWFyYW5jZUhh
bmRsZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OnBlcmZvcm1SZXF1ZXN0KToKKwogMjAyMS0xMC0xOCAgQWxleCBDaHJpc3RlbnNl
biAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmVydCByMjg0MjE2CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2Nv
YS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5Lm1tCmluZGV4IDBiYmRiZjM2YTU0ZjljNWI0MTgwNDY5ZWYwMzEyOTkzZTg4NWE2YTgu
LmIwMWNiZTliNmI4MThhOTU1YTI5ZDY5YTJhNjEzOGU1MDA3NGYwNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1t
CkBAIC0yNjQsNzUgKzI2NCw3NCBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5OjpwZXJmb3JtUmVxdWVzdChSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcQogICAgIGF1dG8g
cHJveHkgPSBhZG9wdE5TKFthbGxvY0FTQ0FnZW50UHJveHlJbnN0YW5jZSgpIGluaXRdKTsKIAog
ICAgIFJldGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gbV93ZWJQYWdlUHJveHkucGxhdGZvcm1X
aW5kb3coKTsKLSAgICBbcHJveHkgcGVyZm9ybUF1dGhvcml6YXRpb25SZXF1ZXN0c0ZvckNvbnRl
eHQ6cmVxdWVzdENvbnRleHQuZ2V0KCkgd2l0aENsZWFyYW5jZUhhbmRsZXI6bWFrZUJsb2NrUHRy
KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVy
KSwgd2luZG93ID0gV1RGTW92ZSh3aW5kb3cpXShOU1hQQ0xpc3RlbmVyRW5kcG9pbnQgKmRhZW1v
bkVucG9pbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBwcm90ZWN0
ZWRUaGlzID0gd2Vha1RoaXMuZ2V0KCk7Ci0KLSAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzIHx8
ICFkYWVtb25FbnBvaW50KSB7Ci0gICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W2hhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpXSgpIG11dGFibGUgeworICAgIFtwcm94eSBwZXJm
b3JtQXV0aG9yaXphdGlvblJlcXVlc3RzRm9yQ29udGV4dDpyZXF1ZXN0Q29udGV4dC5nZXQoKSB3
aXRoQ2xlYXJhbmNlSGFuZGxlcjptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIGhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpLCB3aW5kb3cgPSBXVEZNb3ZlKHdpbmRv
dyksIHByb3h5ID0gV1RGTW92ZShwcm94eSldKE5TWFBDTGlzdGVuZXJFbmRwb2ludCAqZGFlbW9u
RW5kcG9pbnQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1
bkxvb3AoW3dlYWtUaGlzLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgd2luZG93ID0gV1RG
TW92ZSh3aW5kb3cpLCBwcm94eSA9IFdURk1vdmUocHJveHkpLCBkYWVtb25FbmRwb2ludCA9IHJl
dGFpblB0cihkYWVtb25FbmRwb2ludCksIGVycm9yID0gcmV0YWluUHRyKGVycm9yKV0gKCkgbXV0
YWJsZSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICFkYWVtb25FbmRwb2ludCkgewor
ICAgICAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGNvbm5lY3QgdG8gYXV0aG9yaXph
dGlvbiBkYWVtb246ICVAXG4iLCBlcnJvci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgaGFuZGxl
cih7IH0sIChBdXRoZW50aWNhdG9yQXR0YWNobWVudCkwLCBFeGNlcHRpb25EYXRhIHsgTm90QWxs
b3dlZEVycm9yLCAiT3BlcmF0aW9uIGZhaWxlZC4iIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CiAKLSAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wcmVzZW50ZXIgPSBhZG9wdE5T
KFthbGxvY0FTQ0F1dGhvcml6YXRpb25SZW1vdGVQcmVzZW50ZXJJbnN0YW5jZSgpIGluaXRdKTsK
LSAgICAgICAgW3Byb3RlY3RlZFRoaXMtPm1fcHJlc2VudGVyIHByZXNlbnRXaXRoV2luZG93Ondp
bmRvdy5nZXQoKSBkYWVtb25FbmRwb2ludDpkYWVtb25FbnBvaW50IGNvbXBsZXRpb25IYW5kbGVy
Om1ha2VCbG9ja1B0cihbaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcildKGlkIDxBU0NDcmVkZW50
aWFsUHJvdG9jb2w+IGNyZWRlbnRpYWwsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKLSAgICAg
ICAgICAgIEF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEgcmVzcG9uc2UgPSB7IH07Ci0gICAgICAg
ICAgICBBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50OwotICAgICAgICAgICAgRXhj
ZXB0aW9uRGF0YSBleGNlcHRpb25EYXRhID0geyB9OwotCi0gICAgICAgICAgICBpZiAoW2NyZWRl
bnRpYWwgaXNLaW5kT2ZDbGFzczpnZXRBU0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxSZWdp
c3RyYXRpb25DbGFzcygpXSkgewotICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQgPSBBdXRoZW50
aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm07Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UuaXNB
dXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA9IHRydWU7Ci0KLSAgICAgICAgICAgICAg
ICBBU0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxSZWdpc3RyYXRpb24gKnJlZ2lzdHJhdGlv
bkNyZWRlbnRpYWwgPSBjcmVkZW50aWFsOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJhd0lk
ID0gdG9BcnJheUJ1ZmZlcihyZWdpc3RyYXRpb25DcmVkZW50aWFsLmNyZWRlbnRpYWxJRCk7Ci0g
ICAgICAgICAgICAgICAgcmVzcG9uc2UuYXR0ZXN0YXRpb25PYmplY3QgPSB0b0FycmF5QnVmZmVy
KHJlZ2lzdHJhdGlvbkNyZWRlbnRpYWwuYXR0ZXN0YXRpb25PYmplY3QpOwotICAgICAgICAgICAg
fSBlbHNlIGlmIChbY3JlZGVudGlhbCBpc0tpbmRPZkNsYXNzOmdldEFTQ1NlY3VyaXR5S2V5UHVi
bGljS2V5Q3JlZGVudGlhbFJlZ2lzdHJhdGlvbkNsYXNzKCldKSB7Ci0gICAgICAgICAgICAgICAg
YXR0YWNobWVudCA9IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpDcm9zc1BsYXRmb3JtOwotICAg
ICAgICAgICAgICAgIHJlc3BvbnNlLmlzQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2Ug
PSB0cnVlOwotCi0gICAgICAgICAgICAgICAgQVNDU2VjdXJpdHlLZXlQdWJsaWNLZXlDcmVkZW50
aWFsUmVnaXN0cmF0aW9uICpyZWdpc3RyYXRpb25DcmVkZW50aWFsID0gY3JlZGVudGlhbDsKLSAg
ICAgICAgICAgICAgICByZXNwb25zZS5yYXdJZCA9IHRvQXJyYXlCdWZmZXIocmVnaXN0cmF0aW9u
Q3JlZGVudGlhbC5jcmVkZW50aWFsSUQpOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLmF0dGVz
dGF0aW9uT2JqZWN0ID0gdG9BcnJheUJ1ZmZlcihyZWdpc3RyYXRpb25DcmVkZW50aWFsLmF0dGVz
dGF0aW9uT2JqZWN0KTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoW2NyZWRlbnRpYWwgaXNLaW5k
T2ZDbGFzczpnZXRBU0NQbGF0Zm9ybVB1YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb25DbGFzcygp
XSkgewotICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQgPSBBdXRoZW50aWNhdG9yQXR0YWNobWVu
dDo6UGxhdGZvcm07Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UuaXNBdXRoZW50aWNhdG9yQXR0
ZXN0YXRpb25SZXNwb25zZSA9IGZhbHNlOwotCi0gICAgICAgICAgICAgICAgQVNDUGxhdGZvcm1Q
dWJsaWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uICphc3NlcnRpb25DcmVkZW50aWFsID0gY3JlZGVu
dGlhbDsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5yYXdJZCA9IHRvQXJyYXlCdWZmZXIoYXNz
ZXJ0aW9uQ3JlZGVudGlhbC5jcmVkZW50aWFsSUQpOwotICAgICAgICAgICAgICAgIHJlc3BvbnNl
LmF1dGhlbnRpY2F0b3JEYXRhID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLmF1
dGhlbnRpY2F0b3JEYXRhKTsKLSAgICAgICAgICAgICAgICByZXNwb25zZS5zaWduYXR1cmUgPSB0
b0FycmF5QnVmZmVyKGFzc2VydGlvbkNyZWRlbnRpYWwuc2lnbmF0dXJlKTsKLSAgICAgICAgICAg
ICAgICByZXNwb25zZS51c2VySGFuZGxlID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50
aWFsLnVzZXJIYW5kbGUpOwotICAgICAgICAgICAgfSBlbHNlIGlmIChbY3JlZGVudGlhbCBpc0tp
bmRPZkNsYXNzOmdldEFTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbkNs
YXNzKCldKSB7Ci0gICAgICAgICAgICAgICAgYXR0YWNobWVudCA9IEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50OjpDcm9zc1BsYXRmb3JtOwotICAgICAgICAgICAgICAgIHJlc3BvbnNlLmlzQXV0aGVu
dGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgPSBmYWxzZTsKLQotICAgICAgICAgICAgICAgIEFT
Q1NlY3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbiAqYXNzZXJ0aW9uQ3JlZGVu
dGlhbCA9IGNyZWRlbnRpYWw7Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UucmF3SWQgPSB0b0Fy
cmF5QnVmZmVyKGFzc2VydGlvbkNyZWRlbnRpYWwuY3JlZGVudGlhbElEKTsKLSAgICAgICAgICAg
ICAgICByZXNwb25zZS5hdXRoZW50aWNhdG9yRGF0YSA9IHRvQXJyYXlCdWZmZXIoYXNzZXJ0aW9u
Q3JlZGVudGlhbC5hdXRoZW50aWNhdG9yRGF0YSk7Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2Uu
c2lnbmF0dXJlID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLnNpZ25hdHVyZSk7
Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UudXNlckhhbmRsZSA9IHRvQXJyYXlCdWZmZXIoYXNz
ZXJ0aW9uQ3JlZGVudGlhbC51c2VySGFuZGxlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgYXR0YWNobWVudCA9IChBdXRoZW50aWNhdG9yQXR0YWNobWVudCkgMDsKLSAg
ICAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbkNvZGU7Ci0gICAgICAgICAgICAg
ICAgTlNTdHJpbmcgKmVycm9yTWVzc2FnZSA9IG5pbDsKLSAgICAgICAgICAgICAgICBpZiAoW2Vy
cm9yLmRvbWFpbiBpc0VxdWFsVG9TdHJpbmc6V0tFcnJvckRvbWFpbl0pIHsKLSAgICAgICAgICAg
ICAgICAgICAgZXhjZXB0aW9uQ29kZSA9IHRvRXhjZXB0aW9uQ29kZShlcnJvci5jb2RlKTsKLSAg
ICAgICAgICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gZXJyb3IudXNlckluZm9bTlNMb2NhbGl6
ZWREZXNjcmlwdGlvbktleV07CisgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wcmVzZW50ZXIgPSBh
ZG9wdE5TKFthbGxvY0FTQ0F1dGhvcml6YXRpb25SZW1vdGVQcmVzZW50ZXJJbnN0YW5jZSgpIGlu
aXRdKTsKKyAgICAgICAgICAgIFt3ZWFrVGhpcy0+bV9wcmVzZW50ZXIgcHJlc2VudFdpdGhXaW5k
b3c6d2luZG93LmdldCgpIGRhZW1vbkVuZHBvaW50OmRhZW1vbkVuZHBvaW50LmdldCgpIGNvbXBs
ZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlciksIHBy
b3h5ID0gV1RGTW92ZShwcm94eSldKGlkIDxBU0NDcmVkZW50aWFsUHJvdG9jb2w+IGNyZWRlbnRp
YWwsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBBdXRoZW50aWNh
dG9yUmVzcG9uc2VEYXRhIHJlc3BvbnNlID0geyB9OworICAgICAgICAgICAgICAgIEF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQ7CisgICAgICAgICAgICAgICAgRXhjZXB0aW9uRGF0
YSBleGNlcHRpb25EYXRhID0geyB9OworCisgICAgICAgICAgICAgICAgaWYgKFtjcmVkZW50aWFs
IGlzS2luZE9mQ2xhc3M6Z2V0QVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsUmVnaXN0cmF0
aW9uQ2xhc3MoKV0pIHsKKyAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudCA9IEF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uu
aXNBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA9IHRydWU7CisKKyAgICAgICAgICAg
ICAgICAgICAgQVNDUGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsUmVnaXN0cmF0aW9uICpyZWdp
c3RyYXRpb25DcmVkZW50aWFsID0gY3JlZGVudGlhbDsKKyAgICAgICAgICAgICAgICAgICAgcmVz
cG9uc2UucmF3SWQgPSB0b0FycmF5QnVmZmVyKHJlZ2lzdHJhdGlvbkNyZWRlbnRpYWwuY3JlZGVu
dGlhbElEKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuYXR0ZXN0YXRpb25PYmplY3Qg
PSB0b0FycmF5QnVmZmVyKHJlZ2lzdHJhdGlvbkNyZWRlbnRpYWwuYXR0ZXN0YXRpb25PYmplY3Qp
OworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoW2NyZWRlbnRpYWwgaXNLaW5kT2ZDbGFzczpn
ZXRBU0NTZWN1cml0eUtleVB1YmxpY0tleUNyZWRlbnRpYWxSZWdpc3RyYXRpb25DbGFzcygpXSkg
eworICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50ID0gQXV0aGVudGljYXRvckF0dGFjaG1l
bnQ6OkNyb3NzUGxhdGZvcm07CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmlzQXV0aGVu
dGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgPSB0cnVlOworCisgICAgICAgICAgICAgICAgICAg
IEFTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3JlZGVudGlhbFJlZ2lzdHJhdGlvbiAqcmVnaXN0cmF0
aW9uQ3JlZGVudGlhbCA9IGNyZWRlbnRpYWw7CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNl
LnJhd0lkID0gdG9BcnJheUJ1ZmZlcihyZWdpc3RyYXRpb25DcmVkZW50aWFsLmNyZWRlbnRpYWxJ
RCk7CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmF0dGVzdGF0aW9uT2JqZWN0ID0gdG9B
cnJheUJ1ZmZlcihyZWdpc3RyYXRpb25DcmVkZW50aWFsLmF0dGVzdGF0aW9uT2JqZWN0KTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UgaWYgKFtjcmVkZW50aWFsIGlzS2luZE9mQ2xhc3M6Z2V0QVND
UGxhdGZvcm1QdWJsaWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uQ2xhc3MoKV0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgYXR0YWNobWVudCA9IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9y
bTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuaXNBdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZSA9IGZhbHNlOworCisgICAgICAgICAgICAgICAgICAgIEFTQ1BsYXRmb3JtUHVi
bGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbiAqYXNzZXJ0aW9uQ3JlZGVudGlhbCA9IGNyZWRlbnRp
YWw7CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJhd0lkID0gdG9BcnJheUJ1ZmZlcihh
c3NlcnRpb25DcmVkZW50aWFsLmNyZWRlbnRpYWxJRCk7CisgICAgICAgICAgICAgICAgICAgIHJl
c3BvbnNlLmF1dGhlbnRpY2F0b3JEYXRhID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50
aWFsLmF1dGhlbnRpY2F0b3JEYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2ln
bmF0dXJlID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLnNpZ25hdHVyZSk7Cisg
ICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLnVzZXJIYW5kbGUgPSB0b0FycmF5QnVmZmVyKGFz
c2VydGlvbkNyZWRlbnRpYWwudXNlckhhbmRsZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChbY3JlZGVudGlhbCBpc0tpbmRPZkNsYXNzOmdldEFTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3Jl
ZGVudGlhbEFzc2VydGlvbkNsYXNzKCldKSB7CisgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1l
bnQgPSBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6Q3Jvc3NQbGF0Zm9ybTsKKyAgICAgICAgICAg
ICAgICAgICAgcmVzcG9uc2UuaXNBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSA9IGZh
bHNlOworCisgICAgICAgICAgICAgICAgICAgIEFTQ1NlY3VyaXR5S2V5UHVibGljS2V5Q3JlZGVu
dGlhbEFzc2VydGlvbiAqYXNzZXJ0aW9uQ3JlZGVudGlhbCA9IGNyZWRlbnRpYWw7CisgICAgICAg
ICAgICAgICAgICAgIHJlc3BvbnNlLnJhd0lkID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25DcmVk
ZW50aWFsLmNyZWRlbnRpYWxJRCk7CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmF1dGhl
bnRpY2F0b3JEYXRhID0gdG9BcnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLmF1dGhlbnRp
Y2F0b3JEYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uuc2lnbmF0dXJlID0gdG9B
cnJheUJ1ZmZlcihhc3NlcnRpb25DcmVkZW50aWFsLnNpZ25hdHVyZSk7CisgICAgICAgICAgICAg
ICAgICAgIHJlc3BvbnNlLnVzZXJIYW5kbGUgPSB0b0FycmF5QnVmZmVyKGFzc2VydGlvbkNyZWRl
bnRpYWwudXNlckhhbmRsZSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgZXhjZXB0aW9uQ29kZSA9IE5vdEFsbG93ZWRFcnJvcjsKLQotICAgICAgICAgICAg
ICAgICAgICBpZiAoW2Vycm9yLmRvbWFpbiBpc0VxdWFsVG9TdHJpbmc6QVNDQXV0aG9yaXphdGlv
bkVycm9yRG9tYWluXSAmJiBlcnJvci5jb2RlID09IEFTQ0F1dGhvcml6YXRpb25FcnJvclVzZXJD
YW5jZWxlZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IEAiVGhpcyBy
ZXF1ZXN0IGhhcyBiZWVuIGNhbmNlbGxlZCBieSB0aGUgdXNlci4iOwotICAgICAgICAgICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBAIk9wZXJh
dGlvbiBmYWlsZWQuIjsKKyAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudCA9IChBdXRoZW50
aWNhdG9yQXR0YWNobWVudCkgMDsKKyAgICAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBl
eGNlcHRpb25Db2RlOworICAgICAgICAgICAgICAgICAgICBOU1N0cmluZyAqZXJyb3JNZXNzYWdl
ID0gbmlsOworICAgICAgICAgICAgICAgICAgICBpZiAoW2Vycm9yLmRvbWFpbiBpc0VxdWFsVG9T
dHJpbmc6V0tFcnJvckRvbWFpbl0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlv
bkNvZGUgPSB0b0V4Y2VwdGlvbkNvZGUoZXJyb3IuY29kZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSBlcnJvci51c2VySW5mb1tOU0xvY2FsaXplZERlc2NyaXB0aW9u
S2V5XTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGV4Y2VwdGlvbkNvZGUgPSBOb3RBbGxvd2VkRXJyb3I7CisKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChbZXJyb3IuZG9tYWluIGlzRXF1YWxUb1N0cmluZzpBU0NBdXRob3JpemF0aW9u
RXJyb3JEb21haW5dICYmIGVycm9yLmNvZGUgPT0gQVNDQXV0aG9yaXphdGlvbkVycm9yVXNlckNh
bmNlbGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9IEAiVGhp
cyByZXF1ZXN0IGhhcyBiZWVuIGNhbmNlbGxlZCBieSB0aGUgdXNlci4iOworICAgICAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTWVzc2Fn
ZSA9IEAiT3BlcmF0aW9uIGZhaWxlZC4iOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICAgICAgZXhjZXB0aW9uRGF0YSA9IHsgZXhjZXB0aW9uQ29kZSwgZXJyb3JNZXNz
YWdlIH07CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgZXhjZXB0aW9uRGF0
YSA9IHsgZXhjZXB0aW9uQ29kZSwgZXJyb3JNZXNzYWdlIH07Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGhhbmRsZXIocmVzcG9uc2UsIGF0dGFjaG1lbnQsIGV4Y2VwdGlvbkRhdGEpOwot
ICAgICAgICB9KS5nZXQoKV07CisgICAgICAgICAgICAgICAgaGFuZGxlcihyZXNwb25zZSwgYXR0
YWNobWVudCwgZXhjZXB0aW9uRGF0YSk7CisgICAgICAgICAgICB9KS5nZXQoKV07CisgICAgICAg
IH0pOwogICAgIH0pLmdldCgpXTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>