<?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>133697</bug_id>
          
          <creation_ts>2014-06-10 13:51:44 -0700</creation_ts>
          <short_desc>[Cocoa] Handling authentication challenges should not require multiple delegate methods</short_desc>
          <delta_ts>2014-06-10 17:02:02 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1014512</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-10 13:51:44 -0700</bug_when>
    <thetext>NSURLAuthenticationChallengeSender now makes it possible to respond to authentication challenges with a single delegate method. We can add that kind of delegate method to WKNavigationDelegate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014547</commentid>
    <comment_count>1</comment_count>
      <attachid>232821</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-10 14:43:18 -0700</bug_when>
    <thetext>Created attachment 232821
Add -[WKNavigationDelegatePrivate _webView:willSendRequestForAuthenticationChallenge:]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014570</commentid>
    <comment_count>2</comment_count>
      <attachid>232826</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-10 16:04:08 -0700</bug_when>
    <thetext>Created attachment 232826
Add -[WKNavigationDelegatePrivate _webView:willSendRequestForAuthenticationChallenge:]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014572</commentid>
    <comment_count>3</comment_count>
      <attachid>232826</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-10 16:08:19 -0700</bug_when>
    <thetext>Comment on attachment 232826
Add -[WKNavigationDelegatePrivate _webView:willSendRequestForAuthenticationChallenge:]

This just contains build fixes on top of the previous patch, which Anders has reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014576</commentid>
    <comment_count>4</comment_count>
      <attachid>232827</attachid>
    <who name="">mitz</who>
    <bug_when>2014-06-10 16:20:19 -0700</bug_when>
    <thetext>Created attachment 232827
Add -[WKNavigationDelegatePrivate _webView:willSendRequestForAuthenticationChallenge:]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014590</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-06-10 17:02:02 -0700</bug_when>
    <thetext>Fixed in &lt;http://trac.webkit.org/r169782&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232821</attachid>
            <date>2014-06-10 14:43:18 -0700</date>
            <delta_ts>2014-06-10 16:04:05 -0700</delta_ts>
            <desc>Add -[WKNavigationDelegatePrivate _webView:willSendRequestForAuthenticationChallenge:]</desc>
            <filename>bug-133697-20140610144253.patch</filename>
            <type>text/plain</type>
            <size>28061</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTc2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTA2LTEwICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ29yZSBwYXJ0IG9mIFtDb2Nv
YV0gSGFuZGxpbmcgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlcyBzaG91bGQgbm90IHJlcXVpcmUg
bXVsdGlwbGUgZGVsZWdhdGUgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2xpZW50
Lmg6IERlY2xhcmVkIG5ldyB2aXJ0dWFsIG1lbWJlciBmdW5jdGlvbnMgZm9yCisgICAgICAgIHJl
cXVlc3RpbmcgZGVmYXVsdCBoYW5kbGluZyBvZiBhIGNoYWxsZW5nZSBhbmQgcmVqZWN0aW5nIGEg
Y2hhbGxlbmdlLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDog
T3ZlcnJpZGUgbmV3IEF1dGhlbnRpY2F0aW9uQ2xpZW50IGZ1bmN0aW9ucy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5k
bGluZyk6IEFkZGVkLiBDYWxscworICAgICAgICBDRlVSTENvbm5lY3Rpb25QZXJmb3JtRGVmYXVs
dEhhbmRsaW5nRm9yQ2hhbGxlbmdlLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKTogQWRkZWQuIENhbGxzCisgICAgICAgIENGVVJM
Q29ubmVjdGlvblJlamVjdENoYWxsZW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L1NvY2tldFN0cmVhbUhhbmRsZS5oOiBPdmVycmlkZSBuZXcgQXV0aGVudGljYXRpb25DbGllbnQg
ZnVuY3Rpb25zLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFu
ZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlOjpyZWNl
aXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmcpOiBBZGRlZCBlbXB0eQorICAgICAg
ICBvdmVycmlkZS4KKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZTo6cmVjZWl2
ZWRDaGFsbGVuZ2VSZWplY3Rpb24pOiBEaXR0by4KKwogMjAxNC0wNi0xMCAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgU2VyaWFsaXplIFJlc291cmNlUmVxdWVz
dHMgd2l0aG91dCBwbGF0Zm9ybSByZXF1ZXN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAx
Njk3NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9u
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmLCBjb25zdCBDcmVkZW50aWFsJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJl
cXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZl
ZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmcoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgPSAwOwogCiAgICAgdm9pZCByZWYoKSB7
IHJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCk7IH0KICAgICB2b2lkIGRlcmVmKCkgeyBkZXJlZkF1
dGhlbnRpY2F0aW9uQ2xpZW50KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDE2OTc1MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMTIzLDYgKzEyMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRD
cmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ3JlZGVudGlh
bCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVl
V2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRSZXF1
ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
TmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCShyZXZpc2lvbiAxNjk3NTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NTQsNiArNDU0LDMyIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVk
Q2FuY2VsbGF0aW8KICAgICAgICAgY2xpZW50KCktPnJlY2VpdmVkQ2FuY2VsbGF0aW9uKHRoaXMs
IGNoYWxsZW5nZSk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRv
UGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hh
bGxlbmdlKQoreworICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSByZWNlaXZlZFJlcXVlc3RUb1Bl
cmZvcm1EZWZhdWx0SGFuZGxpbmcoKSIpOworICAgIEFTU0VSVCghY2hhbGxlbmdlLmlzTnVsbCgp
KTsKKyAgICBBU1NFUlQoY2hhbGxlbmdlLmNmVVJMQXV0aENoYWxsZW5nZVJlZigpKTsKKyAgICBp
ZiAoY2hhbGxlbmdlICE9IGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQ0ZVUkxDb25uZWN0aW9uUGVyZm9ybURlZmF1bHRIYW5kbGluZ0ZvckNoYWxsZW5n
ZShkLT5tX2Nvbm5lY3Rpb24uZ2V0KCksIGNoYWxsZW5nZS5jZlVSTEF1dGhDaGFsbGVuZ2VSZWYo
KSk7CisKKyAgICBjbGVhckF1dGhlbnRpY2F0aW9uKCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VIYW5k
bGU6OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UpCit7CisgICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIHJlY2VpdmVkQ2hh
bGxlbmdlUmVqZWN0aW9uKCkiKTsKKyAgICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7Cisg
ICAgQVNTRVJUKGNoYWxsZW5nZS5jZlVSTEF1dGhDaGFsbGVuZ2VSZWYoKSk7CisgICAgaWYgKGNo
YWxsZW5nZSAhPSBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIENGVVJMQ29ubmVjdGlvblJlamVjdENoYWxsZW5nZShkLT5tX2Nvbm5lY3Rpb24uZ2V0KCks
IGNoYWxsZW5nZS5jZlVSTEF1dGhDaGFsbGVuZ2VSZWYoKSk7CisKKyAgICBjbGVhckF1dGhlbnRp
Y2F0aW9uKCk7Cit9CisKIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgUmVzb3VyY2VIYW5kbGU6OnN0
b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+bV9zdG9yYWdlU2Vzc2lvbi5n
ZXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3Ry
ZWFtSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNpb24gMTY5NzUyKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkod29ya2luZyBj
b3B5KQpAQCAtODgsNiArODgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZl
ZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50
aWFsJik7CiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0
Q3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZpcnR1YWwg
dm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
OworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxp
bmcoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVj
ZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsK
IAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVmKCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVyZWYoKTsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1I
YW5kbGVDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAJKHJldmlzaW9uIDE2OTc1MikKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlQ0ZO
ZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjMsNiArNjYzLDE0IEBAIHZvaWQgU29ja2V0U3Ry
ZWFtSGFuZGxlOjpyZWNlaXZlZENhbmNlbGwKIHsKIH0KIAordm9pZCBTb2NrZXRTdHJlYW1IYW5k
bGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYpCit7Cit9CisKK3ZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpyZWNl
aXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7
Cit9CisKIHVuc2lnbmVkIHNob3J0IFNvY2tldFN0cmVhbUhhbmRsZTo6cG9ydCgpIGNvbnN0CiB7
CiAgICAgaWYgKHVuc2lnbmVkIHNob3J0IHVybFBvcnQgPSBtX3VybC5wb3J0KCkpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjk3NjEpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSw2NyBAQAorMjAxNC0wNi0xMCAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdDIgcGFydCBvZiBbQ29jb2FdIEhhbmRs
aW5nIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZXMgc2hvdWxkIG5vdCByZXF1aXJlIG11bHRpcGxl
IGRlbGVnYXRlIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMzY5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6cGVyZm9ybURlZmF1
bHRIYW5kbGluZyk6IEFkZGVkLiBDYWxscyB0aGUgbmV3CisgICAgICAgIEF1dGhlbnRpY2F0aW9u
Q2xpZW50IGZ1bmN0aW9uIHJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZy4K
KyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpyZWplY3RQcm90ZWN0aW9u
U3BhY2VBbmRDb250aW51ZSk6IEFkZGVkLiBDYWxscyB0aGUgbmV3CisgICAgICAgIEF1dGhlbnRp
Y2F0aW9uQ2xpZW50IGZ1bmN0aW9uIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uLgorICAgICAg
ICAqIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaDoKKyAgICAg
ICAgKiBTaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2Vz
LmluOiBBZGRlZCBuZXcgbWVzc2FnZXMKKyAgICAgICAgUGVyZm9ybURlZmF1bHRIYW5kbGluZyBh
bmQgUmVqZWN0UHJvdGVjdGlvblNwYWNlQW5kQ29udGludWUuCisKKyAgICAgICAgKiBTaGFyZWQv
RG93bmxvYWRzL0Rvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQuaDogT3ZlcnJpZGUgbmV3IEF1
dGhlbnRpY2F0aW9uQ2xpZW50IG1lbWJlcgorICAgICAgICBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBTaGFyZWQvRG93bmxvYWRzL2lvcy9Eb3dubG9hZElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyk6IEFkZGVk
IGVtcHR5IGltcGxlbWVudGF0aW9uLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2
ZWRDaGFsbGVuZ2VSZWplY3Rpb24pOiBEaXR0by4KKworICAgICAgICAqIFNoYXJlZC9Eb3dubG9h
ZHMvbWFjL0Rvd25sb2FkTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2
ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTogQWRkZWQuIEZvcndhcmRzIHRvIHRo
ZSBzZW5kZXIuCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNlaXZlZENoYWxsZW5nZVJl
amVjdGlvbik6IERpdHRvLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05TVVJM
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW06CisgICAgICAgIChjaGVja0NoYWxsZW5nZSk6IEZh
Y3RvcmVkIG91dCBhIGJpdCBvZiBjb2RlIGludG8gdGhpcyBoZWxwZXIgZnVuY3Rpb24uCisgICAg
ICAgICgtW1dLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlciBjYW5jZWxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTpdKTogVXNlIG5ldyBoZWxwZXIuCisgICAgICAgICgtW1dLTlNVUkxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlciBjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9y
QXV0aGVudGljYXRpb25DaGFsbGVuZ2U6XSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoLVtX
S05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXIgdXNlQ3JlZGVudGlhbDpmb3JBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZTpdKTogRGl0dG8uCisgICAgICAgICgtW1dLTlNVUkxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVNlbmRlciBwZXJmb3JtRGVmYXVsdEhhbmRsaW5nRm9yQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6XSk6CisgICAgICAgIEltcGxlbWVudGVkIHRoaXMgb3B0aW9uYWwgTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlciBwcm90b2NvbCBtZXRob2QgYnkgZm9yd2Fy
ZGluZworICAgICAgICB0byB0aGUgZGVjaXNpb24gbGlzdGVuZXIuCisgICAgICAgICgtW1dLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlciByZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRD
b250aW51ZVdpdGhDaGFsbGVuZ2U6XSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDogRGVjbGFyZWQg
bmV3IGRlbGVnYXRlIG1ldGhvZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6cGVyZm9ybURlZmF1bHRIYW5kbGluZyk6IEFkZGVk
LiBTZW5kcyBhIG1lc3NhZ2UgdG8KKyAgICAgICAgdGhlIGF1dGhlbnRpY2F0aW9uIG1hbmFnZXIu
CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OnJlamVjdFBy
b3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0F1
dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaDoKKworICAgICAgICAq
IFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI6OnBl
cmZvcm1EZWZhdWx0SGFuZGxpbmcpOiBBZGRlZC4gRm9yd2FyZHMgdG8gdGhlCisgICAgICAgIGF1
dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGlj
YXRpb25EZWNpc2lvbkxpc3RlbmVyOjpyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSk6
IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bkRlY2lzaW9uTGlzdGVuZXIuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0
aW9uU3RhdGUuaDogQWRkZWQgZmxhZyBpbiBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMgc3Ry
dWN0LgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKTogSW5p
dGlhbGl6ZQorICAgICAgICB3ZWJWaWV3V2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgZmxhZyBpbiB0aGUgZGVsZWdhdGUgbWV0aG9kcyBzdHJ1Y3QuCisgICAgICAgIChX
ZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvblNwYWNlSW5GcmFtZSk6IElmCisgICAgICAgIHRoZSBkZWxlZ2F0ZSBpbXBs
ZW1lbnRzIC1fd2ViVmlldzp3aWxsU2VuZFJlcXVlc3RGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZTosIHJldHVybiB0cnVlCisgICAgICAgIGhlcmU7IHRoZSBkZWxlZ2F0ZSB3aWxsIHJlc3BvbmQg
d2l0aCAtcmVqZWN0UHJvdGVjdGlvblNwYWNlQW5kQ29udGludWVXaXRoQ2hhbGxlbmdlOiBpZgor
ICAgICAgICBpdCBjYW5ub3QgYXV0aGVudGljYXRlLgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0
aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
SW5GcmFtZSk6IElmIHRoZQorICAgICAgICBkZWxlZ2F0ZSBpbXBsZW1lbnRzIC1fd2ViVmlldzp3
aWxsU2VuZFJlcXVlc3RGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTosIHNlbmQgdGhhdCBtZXNz
YWdlLgorCiAyMDE0LTA2LTEwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIHByb2Nlc3MgZW50aXRsZW1lbnRzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5h
Z2VyLmNwcAkocmV2aXNpb24gMTY5NzQ3KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
Niw0ICsxNTYsMzYgQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmNhbmNlbENoYWxsZQog
ICAgIGNvcmVDbGllbnQtPnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNoYWxsZW5nZSk7CiB9CiAKK3Zv
aWQgQXV0aGVudGljYXRpb25NYW5hZ2VyOjpwZXJmb3JtRGVmYXVsdEhhbmRsaW5nKHVpbnQ2NF90
IGNoYWxsZW5nZUlEKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UgPSBtX2NoYWxsZW5nZXMudGFrZShjaGFs
bGVuZ2VJRCk7CisgICAgQVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkpOworICAgIEF1dGhlbnRp
Y2F0aW9uQ2xpZW50KiBjb3JlQ2xpZW50ID0gY2hhbGxlbmdlLmF1dGhlbnRpY2F0aW9uQ2xpZW50
KCk7CisgICAgaWYgKCFjb3JlQ2xpZW50KSB7CisgICAgICAgIC8vIFRoaXMgYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlIGNvbWVzIGZyb20gYSBkb3dubG9hZC4KKyAgICAgICAgRG93bmxvYWQ6OnJl
Y2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyhjaGFsbGVuZ2UpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgY29yZUNsaWVudC0+cmVjZWl2ZWRSZXF1ZXN0VG9QZXJm
b3JtRGVmYXVsdEhhbmRsaW5nKGNoYWxsZW5nZSk7Cit9CisKK3ZvaWQgQXV0aGVudGljYXRpb25N
YW5hZ2VyOjpyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSh1aW50NjRfdCBjaGFsbGVu
Z2VJRCkKK3sKKyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgY2hhbGxlbmdlID0gbV9jaGFsbGVuZ2VzLnRha2UoY2hhbGxlbmdlSUQp
OworICAgIEFTU0VSVCghY2hhbGxlbmdlLmlzTnVsbCgpKTsKKyAgICBBdXRoZW50aWNhdGlvbkNs
aWVudCogY29yZUNsaWVudCA9IGNoYWxsZW5nZS5hdXRoZW50aWNhdGlvbkNsaWVudCgpOworICAg
IGlmICghY29yZUNsaWVudCkgeworICAgICAgICAvLyBUaGlzIGF1dGhlbnRpY2F0aW9uIGNoYWxs
ZW5nZSBjb21lcyBmcm9tIGEgZG93bmxvYWQuCisgICAgICAgIERvd25sb2FkOjpyZWNlaXZlZENo
YWxsZW5nZVJlamVjdGlvbihjaGFsbGVuZ2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgY29yZUNsaWVudC0+cmVjZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY2hhbGxlbmdlKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCShy
ZXZpc2lvbiAxNjk3NDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDkgQEAg
cHVibGljOgogICAgIHZvaWQgdXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRfdCBjaGFs
bGVuZ2VJRCwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYsIGNvbnN0IFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbyYpOwogICAgIHZvaWQgY29udGludWVXaXRob3V0Q3JlZGVudGlhbEZvckNoYWxs
ZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CiAgICAgdm9pZCBjYW5jZWxDaGFsbGVuZ2UodWlu
dDY0X3QgY2hhbGxlbmdlSUQpOwotICAgIAorICAgIHZvaWQgcGVyZm9ybURlZmF1bHRIYW5kbGlu
Zyh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9pZCByZWplY3RQcm90ZWN0aW9uU3BhY2VB
bmRDb250aW51ZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisKICAgICB1aW50NjRfdCBvdXRzdGFu
ZGluZ0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2NoYWxs
ZW5nZXMuc2l6ZSgpOyB9CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIubWVzc2FnZXMuaW4JKHJldmlzaW9uIDE2OTc0NykKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTI0LDQgKzI0LDYgQEAgbWVzc2FnZXMgLT4gQXV0aGVudGljYXRp
b25NYW5hZ2VyIHsKICAgICB2b2lkIFVzZUNyZWRlbnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3Qg
Y2hhbGxlbmdlSUQsIFdlYkNvcmU6OkNyZWRlbnRpYWwgY3JlZGVudGlhbCwgV2ViQ29yZTo6Q2Vy
dGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlKTsKICAgICB2b2lkIENvbnRpbnVlV2l0aG91dENyZWRl
bnRpYWxGb3JDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQpOwogICAgIHZvaWQgQ2FuY2Vs
Q2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKKyAgICB2b2lkIFBlcmZvcm1EZWZhdWx0
SGFuZGxpbmcodWludDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZvaWQgUmVqZWN0UHJvdGVjdGlv
blNwYWNlQW5kQ29udGludWUodWludDY0X3QgY2hhbGxlbmdlSUQpOwogfQpJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWQuaAkocmV2aXNpb24gMTY5NzQ3KQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDAsNiArMTAwLDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlY2VpdmVk
Q3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0
IFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKICAgICBzdGF0aWMgdm9pZCByZWNlaXZlZFJlcXVlc3RU
b0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKTsKICAgICBzdGF0aWMgdm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOworICAgIHN0YXRpYyB2b2lkIHJlY2Vp
dmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYpOworICAgIHN0YXRpYyB2b2lkIHJlY2VpdmVkQ2hhbGxlbmdlUmVq
ZWN0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAKICAgICB2
b2lkIHVzZUNyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
LCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAgICAgdm9pZCBjb250aW51ZVdpdGhvdXRD
cmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkQXV0aGVudGljYXRpb25D
bGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMv
RG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudC5jcHAJKHJldmlzaW9uIDE2OTc0NykKKysrIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDQgKzUzLDE0IEBAIHZvaWQgRG93bmxvYWRBdXRo
ZW50aWNhdGlvbkNsaWVudDo6cmVjZWkKICAgICAvLyBGSVhNRSAoMTE5NjY3KTogVGhpcyBjYW4g
cHJvYmFibHkgYmUganVzdCByZW1vdmVkLgogfQogCit2b2lkIERvd25sb2FkQXV0aGVudGljYXRp
b25DbGllbnQ6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgLy8gRklYTUUgKDExOTY2Nyk6IFRoaXMg
Y2FuIHByb2JhYmx5IGJlIGp1c3QgcmVtb3ZlZC4KK30KKwordm9pZCBEb3dubG9hZEF1dGhlbnRp
Y2F0aW9uQ2xpZW50OjpyZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYpCit7CisgICAgLy8gRklYTUUgKDExOTY2Nyk6IFRoaXMgY2FuIHByb2Jh
Ymx5IGJlIGp1c3QgcmVtb3ZlZC4KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkQXV0aGVudGljYXRpb25DbGll
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25s
b2FkQXV0aGVudGljYXRpb25DbGllbnQuaAkocmV2aXNpb24gMTY5NzQ3KQorKysgU291cmNlL1dl
YktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
cmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZl
ZFJlcXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRp
b24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRp
b25DbGllbnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRp
b25DbGllbnQoKSB7IGRlcmVmKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3du
bG9hZHMvaW9zL0Rvd25sb2FkSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9Eb3dubG9hZHMvaW9zL0Rvd25sb2FkSU9TLm1tCShyZXZpc2lvbiAxNjk3NDcpCisrKyBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL2lvcy9Eb3dubG9hZElPUy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTY5LDYgKzE2OSwxNiBAQCB2b2lkIERvd25sb2FkOjpyZWNlaXZlZENhbmNl
bGxhdGlvbihjb25zCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBEb3dubG9hZDo6
cmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IFdlYkNvcmU6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIERvd25sb2FkOjpyZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5t
bQkocmV2aXNpb24gMTY5NzQ3KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9t
YWMvRG93bmxvYWRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEyNSw2ICsxMjUsMTYgQEAgdm9p
ZCBEb3dubG9hZDo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oY29ucwogICAgIFthdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS5zZW5kZXIoKSBjYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTphdXRoZW50
aWNhdGlvbkNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCldOwogfQogCit2
b2lkIERvd25sb2FkOjpyZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmcoY29u
c3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQorewor
ICAgIFthdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5zZW5kZXIoKSBwZXJmb3JtRGVmYXVsdEhhbmRs
aW5nRm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6YXV0aGVudGljYXRpb25DaGFsbGVuZ2UubnNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpXTsKK30KKwordm9pZCBEb3dubG9hZDo6cmVjZWl2
ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKQoreworICAgIFthdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5zZW5k
ZXIoKSByZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZVdpdGhDaGFsbGVuZ2U6YXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UubnNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgpXTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKIEBpbXBsZW1lbnRhdGlvbiBXS0Rvd25sb2FkQXNEZWxl
Z2F0ZQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW0JKHJldmlz
aW9uIDE2OTc0NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOU1VS
TEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02MywzMiArNjMs
NDUgQEAgLSAoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSYpX3dlYl9hdQogCiBAaW1wbGVt
ZW50YXRpb24gV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyCiAKLS0gKHZvaWQp
Y2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgKiljaGFsbGVuZ2UKK3N0YXRpYyB2b2lkIGNoZWNrQ2hhbGxlbmdlKE5TVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgKmNoYWxsZW5nZSkKIHsKICAgICBpZiAoW2NoYWxsZW5nZSBjbGFzc10g
IT0gW1dLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjbGFzc10pCiAgICAgICAgIFtOU0V4
Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJUaGUgY2hh
bGxlbmdlIHdhcyBub3Qgc2VudCBieSB0aGUgcmVjZWl2ZXIuIl07Cit9CiAKKy0gKHZvaWQpY2Fu
Y2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
KiljaGFsbGVuZ2UKK3sKKyAgICBjaGVja0NoYWxsZW5nZShjaGFsbGVuZ2UpOwogICAgIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkmIHdlYkNoYWxsZW5nZSA9ICgoV0tOU1VSTEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlKS5fd2ViX2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHk7CiAgICAgd2ViQ2hhbGxlbmdlLmxpc3RlbmVyKCktPmNhbmNlbCgpOwogfQogCiAtICh2
b2lkKWNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZToo
TlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZQogewotICAgIGlmIChbY2hh
bGxlbmdlIGNsYXNzXSAhPSBbV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNsYXNzXSkK
LSAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZv
cm1hdDpAIlRoZSBjaGFsbGVuZ2Ugd2FzIG5vdCBzZW50IGJ5IHRoZSByZWNlaXZlci4iXTsKLQor
ICAgIGNoZWNrQ2hhbGxlbmdlKGNoYWxsZW5nZSk7CiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eSYgd2ViQ2hhbGxlbmdlID0gKChXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
KiljaGFsbGVuZ2UpLl93ZWJfYXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKICAgICB3ZWJD
aGFsbGVuZ2UubGlzdGVuZXIoKS0+dXNlQ3JlZGVudGlhbChudWxscHRyKTsKIH0KIAogLSAodm9p
ZCl1c2VDcmVkZW50aWFsOihOU1VSTENyZWRlbnRpYWwgKiljcmVkZW50aWFsIGZvckF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdl
CiB7Ci0gICAgaWYgKFtjaGFsbGVuZ2UgY2xhc3NdICE9IFtXS05TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgY2xhc3NdKQotICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiVGhlIGNoYWxsZW5nZSB3YXMgbm90IHNlbnQgYnkgdGhl
IHJlY2VpdmVyLiJdOworICAgIGNoZWNrQ2hhbGxlbmdlKGNoYWxsZW5nZSk7CisgICAgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VQcm94eSYgd2ViQ2hhbGxlbmdlID0gKChXS05TVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UpLl93ZWJfYXV0aGVudGljYXRpb25DaGFsbGVuZ2VQ
cm94eTsKKyAgICB3ZWJDaGFsbGVuZ2UubGlzdGVuZXIoKS0+dXNlQ3JlZGVudGlhbChXZWJDcmVk
ZW50aWFsOjpjcmVhdGUoY29yZShjcmVkZW50aWFsKSkuZ2V0KCkpOworfQogCistICh2b2lkKXBl
cmZvcm1EZWZhdWx0SGFuZGxpbmdGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZQoreworICAgIGNoZWNrQ2hhbGxlbmdlKGNo
YWxsZW5nZSk7CiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSYgd2ViQ2hhbGxlbmdl
ID0gKChXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UpLl93ZWJfYXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKKyAgICB3ZWJDaGFsbGVuZ2UubGlzdGVuZXIoKS0+
cGVyZm9ybURlZmF1bHRIYW5kbGluZygpOworfQogCi0gICAgd2ViQ2hhbGxlbmdlLmxpc3RlbmVy
KCktPnVzZUNyZWRlbnRpYWwoV2ViQ3JlZGVudGlhbDo6Y3JlYXRlKGNvcmUoY3JlZGVudGlhbCkp
LmdldCgpKTsKKy0gKHZvaWQpcmVqZWN0UHJvdGVjdGlvblNwYWNlQW5kQ29udGludWVXaXRoQ2hh
bGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlCit7CisgICAg
Y2hlY2tDaGFsbGVuZ2UoY2hhbGxlbmdlKTsKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5JiB3ZWJDaGFsbGVuZ2UgPSAoKFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNo
YWxsZW5nZSkuX3dlYl9hdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OworICAgIHdlYkNoYWxs
ZW5nZS5saXN0ZW5lcigpLT5yZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSgpOwogfQog
CiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdh
dGlvbkRlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgJKHJldmlzaW9uIDE2
OTc0NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
RGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAgc3RhdGlj
IGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IAogCiAtICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlOihfV0tSZW5kZXJp
bmdQcm9ncmVzc0V2ZW50cylwcm9ncmVzc0V2ZW50czsKIAorLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyB3aWxsU2VuZFJlcXVlc3RGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZTsKIC0gKEJPT0wpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rp
b25TcGFjZTooTlNVUkxQcm90ZWN0aW9uU3BhY2UgKilwcm90ZWN0aW9uU3BhY2U7CiAtICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZTsKIApJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcAkocmV2aXNp
b24gMTY5NzQ3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4
MywyNiBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OmNhbmNlCiAgICAgbV9j
aGFsbGVuZ2VJRCA9IDA7CiB9CiAKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTo6
cGVyZm9ybURlZmF1bHRIYW5kbGluZygpCit7CisgICAgaWYgKCFtX2NoYWxsZW5nZUlEKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkF1dGhlbnRp
Y2F0aW9uTWFuYWdlcjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZyhtX2NoYWxsZW5nZUlEKSwgMCk7
CisKKyAgICBtX2NoYWxsZW5nZUlEID0gMDsKK30KKwordm9pZCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5OjpyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSgpCit7CisgICAgaWYg
KCFtX2NoYWxsZW5nZUlEKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6UmVqZWN0UHJvdGVjdGlvblNwYWNl
QW5kQ29udGludWUobV9jaGFsbGVuZ2VJRCksIDApOworCisgICAgbV9jaGFsbGVuZ2VJRCA9IDA7
Cit9CisKIFdlYkNyZWRlbnRpYWwqIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OnByb3Bv
c2VkQ3JlZGVudGlhbCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3dlYkNyZWRlbnRpYWwpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmgJKHJldmlzaW9uIDE2
OTc0NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDggQEAg
cHVibGljOgogICAgIAogICAgIHZvaWQgdXNlQ3JlZGVudGlhbChXZWJDcmVkZW50aWFsKik7CiAg
ICAgdm9pZCBjYW5jZWwoKTsKKyAgICB2b2lkIHBlcmZvcm1EZWZhdWx0SGFuZGxpbmcoKTsKKyAg
ICB2b2lkIHJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlKCk7CiAKICAgICBBdXRoZW50
aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIqIGxpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4gbV9saXN0
ZW5lci5nZXQoKTsgfQogICAgIFdlYkNyZWRlbnRpYWwqIHByb3Bvc2VkQ3JlZGVudGlhbCgpIGNv
bnN0OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5l
ci5jcHAJKHJldmlzaW9uIDE2OTc0NykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRo
ZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01Miw2ICs1MiwxOCBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5l
cjo6Y2FuCiAgICAgICAgIG1fY2hhbGxlbmdlUHJveHktPmNhbmNlbCgpOwogfQogCit2b2lkIEF1
dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjo6cGVyZm9ybURlZmF1bHRIYW5kbGluZygpCit7
CisgICAgaWYgKG1fY2hhbGxlbmdlUHJveHkpCisgICAgICAgIG1fY2hhbGxlbmdlUHJveHktPnBl
cmZvcm1EZWZhdWx0SGFuZGxpbmcoKTsKK30KKwordm9pZCBBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXI6OnJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlKCkKK3sKKyAgICBpZiAo
bV9jaGFsbGVuZ2VQcm94eSkKKyAgICAgICAgbV9jaGFsbGVuZ2VQcm94eS0+cmVqZWN0UHJvdGVj
dGlvblNwYWNlQW5kQ29udGludWUoKTsKK30KKwogdm9pZCBBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXI6OmRldGFjaENoYWxsZW5nZSgpCiB7CiAgICAgbV9jaGFsbGVuZ2VQcm94eSA9IDA7
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGlj
YXRpb25EZWNpc2lvbkxpc3RlbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oCShy
ZXZpc2lvbiAxNjk3NDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDcgKzQ0LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgdXNlQ3JlZGVudGlhbChXZWJDcmVk
ZW50aWFsKik7CiAgICAgdm9pZCBjYW5jZWwoKTsKLSAgICAKKyAgICB2b2lkIHBlcmZvcm1EZWZh
dWx0SGFuZGxpbmcoKTsKKyAgICB2b2lkIHJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVl
KCk7CisKICAgICB2b2lkIGRldGFjaENoYWxsZW5nZSgpOwogCiBwcml2YXRlOgpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAkocmV2
aXNpb24gMTY5NzQ3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRp
b25TdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNiArMTQ1LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgYm9vbCB3ZWJWaWV3RGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3IgOiAxOwogCiAgICAg
ICAgIGJvb2wgd2ViVmlld1JlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlIDogMTsKKyAgICAgICAg
Ym9vbCB3ZWJWaWV3V2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgOiAx
OwogICAgICAgICBib29sIHdlYlZpZXdDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoIDogMTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25T
dGF0ZS5tbQkocmV2aXNpb24gMTY5NzQ3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL05hdmlnYXRpb25TdGF0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI2LDYgKzEyNiw3IEBA
IHZvaWQgTmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWcKICAgICBtX25hdmlnYXRp
b25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld05hdmlnYXRpb25EaWRGYWlsUHJvdmlzaW9uYWxMb2Fk
SW5TdWJmcmFtZVdpdGhFcnJvciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3Om5hdmlnYXRpb246ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEluU3ViZnJhbWU6
d2l0aEVycm9yOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TmF2
aWdhdGlvbkRpZEZpbmlzaERvY3VtZW50TG9hZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3Om5hdmlnYXRpb25EaWRGaW5pc2hEb2N1bWVudExvYWQ6KV07
CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZW5kZXJpbmdQcm9ncmVz
c0RpZENoYW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OnJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlOildOworICAgIG1fbmF2aWdhdGlvbkRlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3V2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzp3aWxs
U2VuZFJlcXVlc3RGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTopXTsKICAgICBtX25hdmlnYXRp
b25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpj
YW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOildOwogICAgIG1fbmF2aWdhdGlv
bkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2g6KV07CkBAIC01ODEs
NiArNTgyLDkgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlkTAogCiBi
b29sIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlSW5GcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSosIFdlYktpdDo6V2ViUHJvdGVjdGlvblNwYWNlKiBwcm90ZWN0aW9uU3BhY2Up
CiB7CisgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3V2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCisgICAg
ICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRp
b25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTkzLDYgKzU5NywxNSBAQCBib29s
IE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpjYW5BCiAKIHZvaWQgTmF2aWdhdGlvblN0
YXRlOjpMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUluRnJh
bWUoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkqIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQog
eworICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld1dpbGxTZW5kUmVxdWVzdEZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSB7CisgICAg
ICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0
aW9uRGVsZWdhdGUuZ2V0KCk7CisgICAgICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRlKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZpZ2F0aW9u
RGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpKSBfd2ViVmlldzptX25h
dmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgd2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25D
aGFsbGVuZ2U6d3JhcHBlcigqYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpXTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCiAg
ICAgICAgIHJldHVybjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232826</attachid>
            <date>2014-06-10 16:04:08 -0700</date>
            <delta_ts>2014-06-10 16:22:31 -0700</delta_ts>
            <desc>Add -[WKNavigationDelegatePrivate _webView:willSendRequestForAuthenticationChallenge:]</desc>
            <filename>bug-133697-20140610160343.patch</filename>
            <type>text/plain</type>
            <size>35374</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTA2LTEwICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ29yZSBwYXJ0IG9mIFtDb2Nv
YV0gSGFuZGxpbmcgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlcyBzaG91bGQgbm90IHJlcXVpcmUg
bXVsdGlwbGUgZGVsZWdhdGUgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2xpZW50
Lmg6IERlY2xhcmVkIG5ldyB2aXJ0dWFsIG1lbWJlciBmdW5jdGlvbnMgZm9yCisgICAgICAgIHJl
cXVlc3RpbmcgZGVmYXVsdCBoYW5kbGluZyBvZiBhIGNoYWxsZW5nZSBhbmQgcmVqZWN0aW5nIGEg
Y2hhbGxlbmdlLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDog
T3ZlcnJpZGUgbmV3IEF1dGhlbnRpY2F0aW9uQ2xpZW50IGZ1bmN0aW9ucy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5k
bGluZyk6IEFkZGVkLiBDYWxscworICAgICAgICBDRlVSTENvbm5lY3Rpb25QZXJmb3JtRGVmYXVs
dEhhbmRsaW5nRm9yQ2hhbGxlbmdlLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKTogQWRkZWQuIENhbGxzCisgICAgICAgIENGVVJM
Q29ubmVjdGlvblJlamVjdENoYWxsZW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L1NvY2tldFN0cmVhbUhhbmRsZS5oOiBPdmVycmlkZSBuZXcgQXV0aGVudGljYXRpb25DbGllbnQg
ZnVuY3Rpb25zLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFu
ZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlOjpyZWNl
aXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmcpOiBBZGRlZCBlbXB0eQorICAgICAg
ICBvdmVycmlkZS4KKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZTo6cmVjZWl2
ZWRDaGFsbGVuZ2VSZWplY3Rpb24pOiBEaXR0by4KKwogMjAxNC0wNi0xMCAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjk0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAx
Njk3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9u
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmLCBjb25zdCBDcmVkZW50aWFsJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJl
cXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZl
ZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmcoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgPSAwOwogCiAgICAgdm9pZCByZWYoKSB7
IHJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCk7IH0KICAgICB2b2lkIGRlcmVmKCkgeyBkZXJlZkF1
dGhlbnRpY2F0aW9uQ2xpZW50KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDE2OTc3OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMTIzLDYgKzEyMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRD
cmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ3JlZGVudGlh
bCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVl
V2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRSZXF1
ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
TmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NTQsNiArNDU0LDMyIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVk
Q2FuY2VsbGF0aW8KICAgICAgICAgY2xpZW50KCktPnJlY2VpdmVkQ2FuY2VsbGF0aW9uKHRoaXMs
IGNoYWxsZW5nZSk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRv
UGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hh
bGxlbmdlKQoreworICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSByZWNlaXZlZFJlcXVlc3RUb1Bl
cmZvcm1EZWZhdWx0SGFuZGxpbmcoKSIpOworICAgIEFTU0VSVCghY2hhbGxlbmdlLmlzTnVsbCgp
KTsKKyAgICBBU1NFUlQoY2hhbGxlbmdlLmNmVVJMQXV0aENoYWxsZW5nZVJlZigpKTsKKyAgICBp
ZiAoY2hhbGxlbmdlICE9IGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQ0ZVUkxDb25uZWN0aW9uUGVyZm9ybURlZmF1bHRIYW5kbGluZ0ZvckNoYWxsZW5n
ZShkLT5tX2Nvbm5lY3Rpb24uZ2V0KCksIGNoYWxsZW5nZS5jZlVSTEF1dGhDaGFsbGVuZ2VSZWYo
KSk7CisKKyAgICBjbGVhckF1dGhlbnRpY2F0aW9uKCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VIYW5k
bGU6OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UpCit7CisgICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIHJlY2VpdmVkQ2hh
bGxlbmdlUmVqZWN0aW9uKCkiKTsKKyAgICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7Cisg
ICAgQVNTRVJUKGNoYWxsZW5nZS5jZlVSTEF1dGhDaGFsbGVuZ2VSZWYoKSk7CisgICAgaWYgKGNo
YWxsZW5nZSAhPSBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIENGVVJMQ29ubmVjdGlvblJlamVjdENoYWxsZW5nZShkLT5tX2Nvbm5lY3Rpb24uZ2V0KCks
IGNoYWxsZW5nZS5jZlVSTEF1dGhDaGFsbGVuZ2VSZWYoKSk7CisKKyAgICBjbGVhckF1dGhlbnRp
Y2F0aW9uKCk7Cit9CisKIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgUmVzb3VyY2VIYW5kbGU6OnN0
b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+bV9zdG9yYWdlU2Vzc2lvbi5n
ZXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3Ry
ZWFtSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkod29ya2luZyBj
b3B5KQpAQCAtODgsNiArODgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZl
ZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50
aWFsJik7CiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0
Q3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZpcnR1YWwg
dm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
OworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxp
bmcoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVj
ZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsK
IAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVmKCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVyZWYoKTsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1I
YW5kbGVDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAJKHJldmlzaW9uIDE2OTc3OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlQ0ZO
ZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjMsNiArNjYzLDE0IEBAIHZvaWQgU29ja2V0U3Ry
ZWFtSGFuZGxlOjpyZWNlaXZlZENhbmNlbGwKIHsKIH0KIAordm9pZCBTb2NrZXRTdHJlYW1IYW5k
bGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYpCit7Cit9CisKK3ZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpyZWNl
aXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7
Cit9CisKIHVuc2lnbmVkIHNob3J0IFNvY2tldFN0cmVhbUhhbmRsZTo6cG9ydCgpIGNvbnN0CiB7
CiAgICAgaWYgKHVuc2lnbmVkIHNob3J0IHVybFBvcnQgPSBtX3VybC5wb3J0KCkpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcAkocmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4Miw2ICsyODIsMTYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDYW5j
ZWxsYXRpbwogICAgICAgICBjbGllbnQoKS0+cmVjZWl2ZWRDYW5jZWxsYXRpb24odGhpcywgY2hh
bGxlbmdlKTsKIH0KIAordm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRSZXF1ZXN0VG9QZXJm
b3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2
ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQorewor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tl
dFN0cmVhbUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNpb24gMTY5Nzc4KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
LCBjb25zdCBDcmVkZW50aWFsJik7CiAgICAgICAgIHZvaWQgcmVjZWl2ZWRSZXF1ZXN0VG9Db250
aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAg
ICAgICAgIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKKyAgICAgICAgdm9pZCByZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFu
ZGxpbmcoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICAgICAgdm9pZCByZWNl
aXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwog
ICAgIH07CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlQ3VybC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhh
bmRsZUN1cmwuY3BwCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlQ3VybC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg4LDYgKzg4LDE2IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpyZWNlaXZlZENhbmNl
bGwKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFNvY2tldFN0cmVhbUhhbmRsZTo6
cmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFNvY2tl
dFN0cmVhbUhhbmRsZTo6cmVjZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0gIC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9u
IDE2OTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02ODksNiArNjg5LDMyIEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW8KICAgICAgICAgY2xpZW50KCktPnJlY2Vp
dmVkQ2FuY2VsbGF0aW9uKHRoaXMsIGNoYWxsZW5nZSk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5k
bGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQoreworICAgIExPRyhOZXR3b3JrLCAiSGFuZGxl
ICVwIHJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyIsIHRoaXMpOworCisg
ICAgQVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkpOworICAgIGlmIChjaGFsbGVuZ2UgIT0gZC0+
bV9jdXJyZW50V2ViQ2hhbGxlbmdlKQorICAgICAgICByZXR1cm47CisKKyAgICBbW2QtPm1fY3Vy
cmVudE1hY0NoYWxsZW5nZSBzZW5kZXJdIHBlcmZvcm1EZWZhdWx0SGFuZGxpbmdGb3JBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTpkLT5tX2N1cnJlbnRNYWNDaGFsbGVuZ2VdOworCisgICAgY2xlYXJB
dXRoZW50aWNhdGlvbigpOworfQorCit2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENoYWxs
ZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQor
eworICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
IiwgdGhpcyk7CisKKyAgICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7CisgICAgaWYgKGNo
YWxsZW5nZSAhPSBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFtbZC0+bV9jdXJyZW50TWFjQ2hhbGxlbmdlIHNlbmRlcl0gcmVqZWN0UHJvdGVjdGlvblNw
YWNlQW5kQ29udGludWVXaXRoQ2hhbGxlbmdlOmQtPm1fY3VycmVudE1hY0NoYWxsZW5nZV07CisK
KyAgICBjbGVhckF1dGhlbnRpY2F0aW9uKCk7Cit9CisKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNv
bnRpbnVlV2lsbENhY2hlUmVzcG9uc2UoTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UpCiB7
CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCShyZXZp
c2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5NCw2ICsxMTk0LDE2IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW8KICAgICBjbGVhckF1dGhl
bnRpY2F0aW9uKCk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRv
UGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnJl
Y2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogc3RhdGljIGJvb2wgd2FpdGluZ1Rv
U2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKIHsKICAgICAvLyBXZSBuZWVkIHRv
IGNoZWNrIGZvciBkLT5tX3NvdXBSZXF1ZXN0IGJlY2F1c2UgdGhlIHJlcXVlc3QgbWF5IGhhdmUg
cmFpc2VkIGEgZmFpbHVyZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1NvY2tldFN0cmVhbUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNpb24gMTY5Nzc4
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhh
bmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJik7CiAgICAgICAgIHZvaWQgcmVjZWl2ZWRSZXF1
ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJik7CiAgICAgICAgIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKTsKKyAgICAgICAgdm9pZCByZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1E
ZWZhdWx0SGFuZGxpbmcoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICAgICAg
dm9pZCByZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYpOworCiAgICAgICAgIHZvaWQgYmVnaW5XYWl0aW5nRm9yU29ja2V0V3JpdGFiaWxpdHko
KTsKICAgICAgICAgdm9pZCBzdG9wV2FpdGluZ0ZvclNvY2tldFdyaXRhYmlsaXR5KCk7CiAgICAg
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJl
YW1IYW5kbGVTb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlU291cC5jcHAJKHJldmlzaW9uIDE2OTc3OCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5k
bGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI4LDYgKzIyOCwxNiBAQCB2b2lkIFNvY2tl
dFN0cmVhbUhhbmRsZTo6cmVjZWl2ZWRDYW5jZWxsCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAordm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1
bHRIYW5kbGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnJlY2VpdmVkQ2hhbGxl
bmdlUmVqZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZTo6YmVnaW5XYWl0aW5n
Rm9yU29ja2V0V3JpdGFiaWxpdHkoKQogewogICAgIGlmIChtX3dyaXRlUmVhZHlTb3VyY2UpIC8v
IEFscmVhZHkgd2FpdGluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
d2luL1NvY2tldFN0cmVhbUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL1NvY2tldFN0cmVhbUhhbmRsZS5oCShyZXZpc2lvbiAxNjk3Nzgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Tb2NrZXRTdHJlYW1IYW5k
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
cmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3Qg
Q3JlZGVudGlhbCYpOwogICAgIHZvaWQgcmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRD
cmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAgdm9pZCByZWNl
aXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOworICAgIHZv
aWQgcmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJik7CisgICAgdm9pZCByZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbihj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vU29ja2V0U3Ry
ZWFtSGFuZGxlV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3dpbi9Tb2NrZXRTdHJlYW1IYW5kbGVXaW4uY3BwCShyZXZpc2lvbiAxNjk3NzgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Tb2NrZXRTdHJlYW1IYW5kbGVX
aW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw0ICs4NiwxNCBAQCB2b2lkIFNvY2tldFN0cmVh
bUhhbmRsZTo6cmVjZWl2ZWRDYW5jZWxsCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9p
ZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5k
bGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnJlY2VpdmVkQ2hhbGxlbmdlUmVq
ZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSw2NyBAQAorMjAxNC0wNi0xMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYktpdDIgcGFydCBvZiBbQ29jb2FdIEhhbmRsaW5nIGF1dGhlbnRp
Y2F0aW9uIGNoYWxsZW5nZXMgc2hvdWxkIG5vdCByZXF1aXJlIG11bHRpcGxlIGRlbGVnYXRlIG1l
dGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MzY5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6cGVyZm9ybURlZmF1bHRIYW5kbGluZyk6
IEFkZGVkLiBDYWxscyB0aGUgbmV3CisgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2xpZW50IGZ1bmN0
aW9uIHJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZy4KKyAgICAgICAgKFdl
YktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250
aW51ZSk6IEFkZGVkLiBDYWxscyB0aGUgbmV3CisgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2xpZW50
IGZ1bmN0aW9uIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uLgorICAgICAgICAqIFNoYXJlZC9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBTaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZCBu
ZXcgbWVzc2FnZXMKKyAgICAgICAgUGVyZm9ybURlZmF1bHRIYW5kbGluZyBhbmQgUmVqZWN0UHJv
dGVjdGlvblNwYWNlQW5kQ29udGludWUuCisKKyAgICAgICAgKiBTaGFyZWQvRG93bmxvYWRzL0Rv
d25sb2FkQXV0aGVudGljYXRpb25DbGllbnQuaDogT3ZlcnJpZGUgbmV3IEF1dGhlbnRpY2F0aW9u
Q2xpZW50IG1lbWJlcgorICAgICAgICBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBTaGFyZWQvRG93
bmxvYWRzL2lvcy9Eb3dubG9hZElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnJl
Y2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyk6IEFkZGVkIGVtcHR5IGltcGxl
bWVudGF0aW9uLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2ZWRDaGFsbGVuZ2VS
ZWplY3Rpb24pOiBEaXR0by4KKworICAgICAgICAqIFNoYXJlZC9Eb3dubG9hZHMvbWFjL0Rvd25s
b2FkTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0VG9Q
ZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTogQWRkZWQuIEZvcndhcmRzIHRvIHRoZSBzZW5kZXIuCisg
ICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbik6IERp
dHRvLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05TVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UubW06CisgICAgICAgIChjaGVja0NoYWxsZW5nZSk6IEZhY3RvcmVkIG91dCBh
IGJpdCBvZiBjb2RlIGludG8gdGhpcyBoZWxwZXIgZnVuY3Rpb24uCisgICAgICAgICgtW1dLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlciBjYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTpdKTogVXNlIG5ldyBoZWxwZXIuCisgICAgICAgICgtW1dLTlNVUkxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVNlbmRlciBjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9yQXV0aGVudGljYXRp
b25DaGFsbGVuZ2U6XSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoLVtXS05TVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VTZW5kZXIgdXNlQ3JlZGVudGlhbDpmb3JBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTpdKTogRGl0dG8uCisgICAgICAgICgtW1dLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVNlbmRlciBwZXJmb3JtRGVmYXVsdEhhbmRsaW5nRm9yQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6XSk6CisgICAgICAgIEltcGxlbWVudGVkIHRoaXMgb3B0aW9uYWwgTlNVUkxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVNlbmRlciBwcm90b2NvbCBtZXRob2QgYnkgZm9yd2FyZGluZworICAgICAg
ICB0byB0aGUgZGVjaXNpb24gbGlzdGVuZXIuCisgICAgICAgICgtW1dLTlNVUkxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVNlbmRlciByZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZVdpdGhD
aGFsbGVuZ2U6XSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDogRGVjbGFyZWQgbmV3IGRlbGVnYXRl
IG1ldGhvZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eTo6cGVyZm9ybURlZmF1bHRIYW5kbGluZyk6IEFkZGVkLiBTZW5kcyBhIG1l
c3NhZ2UgdG8KKyAgICAgICAgdGhlIGF1dGhlbnRpY2F0aW9uIG1hbmFnZXIuCisgICAgICAgIChX
ZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OnJlamVjdFByb3RlY3Rpb25TcGFj
ZUFuZENvbnRpbnVlKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI6OnBlcmZvcm1EZWZhdWx0
SGFuZGxpbmcpOiBBZGRlZC4gRm9yd2FyZHMgdG8gdGhlCisgICAgICAgIGF1dGhlbnRpY2F0aW9u
IGNoYWxsZW5nZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyOjpyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSk6IERpdHRvLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXIuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaDog
QWRkZWQgZmxhZyBpbiBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMgc3RydWN0LgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAgIChXZWJLaXQ6
Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKTogSW5pdGlhbGl6ZQorICAg
ICAgICB3ZWJWaWV3V2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgZmxh
ZyBpbiB0aGUgZGVsZWdhdGUgbWV0aG9kcyBzdHJ1Y3QuCisgICAgICAgIChXZWJLaXQ6Ok5hdmln
YXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlSW5GcmFtZSk6IElmCisgICAgICAgIHRoZSBkZWxlZ2F0ZSBpbXBsZW1lbnRzIC1fd2Vi
Vmlldzp3aWxsU2VuZFJlcXVlc3RGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTosIHJldHVybiB0
cnVlCisgICAgICAgIGhlcmU7IHRoZSBkZWxlZ2F0ZSB3aWxsIHJlc3BvbmQgd2l0aCAtcmVqZWN0
UHJvdGVjdGlvblNwYWNlQW5kQ29udGludWVXaXRoQ2hhbGxlbmdlOiBpZgorICAgICAgICBpdCBj
YW5ub3QgYXV0aGVudGljYXRlLgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Okxv
YWRlckNsaWVudDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZSk6IElm
IHRoZQorICAgICAgICBkZWxlZ2F0ZSBpbXBsZW1lbnRzIC1fd2ViVmlldzp3aWxsU2VuZFJlcXVl
c3RGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTosIHNlbmQgdGhhdCBtZXNzYWdlLgorCiAyMDE0
LTA2LTEwICBUaW1vdGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGYWN0b3IgcmVwZWF0ZWQgQ0ZSdW5Mb29wT2JzZXJ2ZXIgY29kZSBvdXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTU2LDQgKzE1NiwzNiBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdl
cjo6Y2FuY2VsQ2hhbGxlCiAgICAgY29yZUNsaWVudC0+cmVjZWl2ZWRDYW5jZWxsYXRpb24oY2hh
bGxlbmdlKTsKIH0KIAordm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnBlcmZvcm1EZWZhdWx0
SGFuZGxpbmcodWludDY0X3QgY2hhbGxlbmdlSUQpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKKworICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSA9IG1fY2hh
bGxlbmdlcy50YWtlKGNoYWxsZW5nZUlEKTsKKyAgICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwo
KSk7CisgICAgQXV0aGVudGljYXRpb25DbGllbnQqIGNvcmVDbGllbnQgPSBjaGFsbGVuZ2UuYXV0
aGVudGljYXRpb25DbGllbnQoKTsKKyAgICBpZiAoIWNvcmVDbGllbnQpIHsKKyAgICAgICAgLy8g
VGhpcyBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgY29tZXMgZnJvbSBhIGRvd25sb2FkLgorICAg
ICAgICBEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNo
YWxsZW5nZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb3JlQ2xpZW50LT5yZWNl
aXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmcoY2hhbGxlbmdlKTsKK30KKwordm9p
ZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVl
KHVpbnQ2NF90IGNoYWxsZW5nZUlEKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CisKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UgPSBtX2NoYWxsZW5nZXMu
dGFrZShjaGFsbGVuZ2VJRCk7CisgICAgQVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkpOworICAg
IEF1dGhlbnRpY2F0aW9uQ2xpZW50KiBjb3JlQ2xpZW50ID0gY2hhbGxlbmdlLmF1dGhlbnRpY2F0
aW9uQ2xpZW50KCk7CisgICAgaWYgKCFjb3JlQ2xpZW50KSB7CisgICAgICAgIC8vIFRoaXMgYXV0
aGVudGljYXRpb24gY2hhbGxlbmdlIGNvbWVzIGZyb20gYSBkb3dubG9hZC4KKyAgICAgICAgRG93
bmxvYWQ6OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKGNoYWxsZW5nZSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBjb3JlQ2xpZW50LT5yZWNlaXZlZENoYWxsZW5nZVJlamVjdGlv
bihjaGFsbGVuZ2UpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGlj
YXRpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNjIsNyArNjIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1c2VDcmVkZW50aWFsRm9yQ2hhbGxl
bmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlELCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiwgY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgdm9pZCBjb250aW51ZVdpdGhvdXRD
cmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKICAgICB2b2lkIGNh
bmNlbENoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7Ci0gICAgCisgICAgdm9pZCBwZXJm
b3JtRGVmYXVsdEhhbmRsaW5nKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKKyAgICB2b2lkIHJlamVj
dFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKKwogICAg
IHVpbnQ2NF90IG91dHN0YW5kaW5nQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDb3VudCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2hhbGxlbmdlcy5zaXplKCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVz
c2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMTY5Nzc4KQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjQsNCArMjQsNiBAQCBtZXNzYWdl
cyAtPiBBdXRoZW50aWNhdGlvbk1hbmFnZXIgewogICAgIHZvaWQgVXNlQ3JlZGVudGlhbEZvckNo
YWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgV2ViQ29yZTo6Q3JlZGVudGlhbCBjcmVkZW50
aWFsLCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGUpOwogICAgIHZvaWQgQ29u
dGludWVXaXRob3V0Q3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7
CiAgICAgdm9pZCBDYW5jZWxDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZv
aWQgUGVyZm9ybURlZmF1bHRIYW5kbGluZyh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9p
ZCBSZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCShy
ZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25s
b2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw2ICsxMDAsOCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgcmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwogICAgIHN0YXRpYyB2b2lk
IHJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25zdCBXZWJDb3Jl
OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHN0YXRpYyB2b2lkIHJlY2VpdmVkQ2Fu
Y2VsbGF0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisgICAg
c3RhdGljIHZvaWQgcmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisgICAgc3RhdGljIHZvaWQgcmVj
ZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKIAogICAgIHZvaWQgdXNlQ3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKICAgICB2b2lk
IGNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxv
YWRBdXRoZW50aWNhdGlvbkNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50LmNwcAkocmV2aXNp
b24gMTY5Nzc4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZEF1
dGhlbnRpY2F0aW9uQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNCArNTMsMTQgQEAg
dm9pZCBEb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50OjpyZWNlaQogICAgIC8vIEZJWE1FICgx
MTk2NjcpOiBUaGlzIGNhbiBwcm9iYWJseSBiZSBqdXN0IHJlbW92ZWQuCiB9CiAKK3ZvaWQgRG93
bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudDo6cmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVs
dEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICAvLyBGSVhN
RSAoMTE5NjY3KTogVGhpcyBjYW4gcHJvYmFibHkgYmUganVzdCByZW1vdmVkLgorfQorCit2b2lk
IERvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQ6OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICAvLyBGSVhNRSAoMTE5NjY3
KTogVGhpcyBjYW4gcHJvYmFibHkgYmUganVzdCByZW1vdmVkLgorfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRB
dXRoZW50aWNhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Eb3dubG9hZHMvRG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAxNjk3
NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkQXV0aGVudGlj
YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsOCBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAgICAgdmly
dHVhbCB2b2lkIHJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25z
dCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZpcnR1YWwgdm9pZCBy
ZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpOworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFu
ZGxpbmcoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9p
ZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVyZWYoKTsgfQpJbmRleDogU291cmNlL1dl
YktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9pb3MvRG93bmxvYWRJT1MubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9pb3MvRG93bmxvYWRJT1MubW0JKHJldmlz
aW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvaW9zL0Rvd25s
b2FkSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNiArMTY5LDE2IEBAIHZvaWQgRG93bmxv
YWQ6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnMKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Cit2b2lkIERvd25sb2FkOjpyZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmco
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvbWFjL0Rvd25s
b2FkTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMv
bWFjL0Rvd25sb2FkTWFjLm1tCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI1
LDYgKzEyNSwxNiBAQCB2b2lkIERvd25sb2FkOjpyZWNlaXZlZENhbmNlbGxhdGlvbihjb25zCiAg
ICAgW2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLnNlbmRlcigpIGNhbmNlbEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlOmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLm5zVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoKV07CiB9CiAKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURl
ZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRp
b25DaGFsbGVuZ2UpCit7CisgICAgW2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLnNlbmRlcigpIHBl
cmZvcm1EZWZhdWx0SGFuZGxpbmdGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTphdXRoZW50aWNh
dGlvbkNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCldOworfQorCit2b2lk
IERvd25sb2FkOjpyZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCit7CisgICAgW2F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlLnNlbmRlcigpIHJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlV2l0
aENoYWxsZW5nZTphdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKCldOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogQGltcGxlbWVudGF0aW9u
IFdLRG93bmxvYWRBc0RlbGVnYXRlCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTlNVUkxBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5tbQkocmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTYzLDMyICs2Myw0NSBAQCAtIChBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Jilf
d2ViX2F1CiAKIEBpbXBsZW1lbnRhdGlvbiBXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VT
ZW5kZXIKIAotLSAodm9pZCljYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZQorc3RhdGljIHZvaWQgY2hlY2tDaGFsbGVu
Z2UoTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqY2hhbGxlbmdlKQogewogICAgIGlmIChb
Y2hhbGxlbmdlIGNsYXNzXSAhPSBbV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNsYXNz
XSkKICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9u
IGZvcm1hdDpAIlRoZSBjaGFsbGVuZ2Ugd2FzIG5vdCBzZW50IGJ5IHRoZSByZWNlaXZlci4iXTsK
K30KIAorLSAodm9pZCljYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZQoreworICAgIGNoZWNrQ2hhbGxlbmdlKGNoYWxs
ZW5nZSk7CiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSYgd2ViQ2hhbGxlbmdlID0g
KChXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UpLl93ZWJfYXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VQcm94eTsKICAgICB3ZWJDaGFsbGVuZ2UubGlzdGVuZXIoKS0+Y2Fu
Y2VsKCk7CiB9CiAKIC0gKHZvaWQpY29udGludWVXaXRob3V0Q3JlZGVudGlhbEZvckF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdl
CiB7Ci0gICAgaWYgKFtjaGFsbGVuZ2UgY2xhc3NdICE9IFtXS05TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgY2xhc3NdKQotICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiVGhlIGNoYWxsZW5nZSB3YXMgbm90IHNlbnQgYnkgdGhl
IHJlY2VpdmVyLiJdOwotCisgICAgY2hlY2tDaGFsbGVuZ2UoY2hhbGxlbmdlKTsKICAgICBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5JiB3ZWJDaGFsbGVuZ2UgPSAoKFdLTlNVUkxBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSkuX3dlYl9hdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVByb3h5OwogICAgIHdlYkNoYWxsZW5nZS5saXN0ZW5lcigpLT51c2VDcmVkZW50aWFsKG51bGxw
dHIpOwogfQogCiAtICh2b2lkKXVzZUNyZWRlbnRpYWw6KE5TVVJMQ3JlZGVudGlhbCAqKWNyZWRl
bnRpYWwgZm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgKiljaGFsbGVuZ2UKIHsKLSAgICBpZiAoW2NoYWxsZW5nZSBjbGFzc10gIT0gW1dLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjbGFzc10pCi0gICAgICAgIFtOU0V4Y2VwdGlvbiBy
YWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJUaGUgY2hhbGxlbmdlIHdh
cyBub3Qgc2VudCBieSB0aGUgcmVjZWl2ZXIuIl07CisgICAgY2hlY2tDaGFsbGVuZ2UoY2hhbGxl
bmdlKTsKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5JiB3ZWJDaGFsbGVuZ2UgPSAo
KFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSkuX3dlYl9hdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5OworICAgIHdlYkNoYWxsZW5nZS5saXN0ZW5lcigpLT51c2VD
cmVkZW50aWFsKFdlYkNyZWRlbnRpYWw6OmNyZWF0ZShjb3JlKGNyZWRlbnRpYWwpKS5nZXQoKSk7
Cit9CiAKKy0gKHZvaWQpcGVyZm9ybURlZmF1bHRIYW5kbGluZ0ZvckF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlCit7CisgICAg
Y2hlY2tDaGFsbGVuZ2UoY2hhbGxlbmdlKTsKICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5JiB3ZWJDaGFsbGVuZ2UgPSAoKFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNo
YWxsZW5nZSkuX3dlYl9hdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OworICAgIHdlYkNoYWxs
ZW5nZS5saXN0ZW5lcigpLT5wZXJmb3JtRGVmYXVsdEhhbmRsaW5nKCk7Cit9CiAKLSAgICB3ZWJD
aGFsbGVuZ2UubGlzdGVuZXIoKS0+dXNlQ3JlZGVudGlhbChXZWJDcmVkZW50aWFsOjpjcmVhdGUo
Y29yZShjcmVkZW50aWFsKSkuZ2V0KCkpOworLSAodm9pZClyZWplY3RQcm90ZWN0aW9uU3BhY2VB
bmRDb250aW51ZVdpdGhDaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKilj
aGFsbGVuZ2UKK3sKKyAgICBjaGVja0NoYWxsZW5nZShjaGFsbGVuZ2UpOworICAgIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHkmIHdlYkNoYWxsZW5nZSA9ICgoV0tOU1VSTEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlKS5fd2ViX2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHk7CisgICAgd2ViQ2hhbGxlbmdlLmxpc3RlbmVyKCktPnJlamVjdFByb3RlY3Rpb25TcGFjZUFu
ZENvbnRpbnVlKCk7CiB9CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZh
dGUuaAkocmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDQs
NiArNDQsNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgCiAKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVuZGVyaW5nUHJvZ3Jlc3NEaWRD
aGFuZ2U6KF9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzKXByb2dyZXNzRXZlbnRzOwogCistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxTZW5kUmVxdWVzdEZvckF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxl
bmdlOwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjYW5BdXRoZW50aWNh
dGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOihOU1VSTFByb3RlY3Rpb25TcGFjZSAqKXByb3RlY3Rp
b25TcGFjZTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICop
Y2hhbGxlbmdlOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
UHJveHkuY3BwCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTgzLDYgKzgzLDI2IEBAIHZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eTo6Y2FuY2UKICAgICBtX2NoYWxsZW5nZUlEID0gMDsKIH0KIAordm9pZCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5OjpwZXJmb3JtRGVmYXVsdEhhbmRsaW5nKCkKK3sKKyAgICBpZiAoIW1f
Y2hhbGxlbmdlSUQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpQZXJmb3JtRGVmYXVsdEhhbmRsaW5nKG1f
Y2hhbGxlbmdlSUQpLCAwKTsKKworICAgIG1fY2hhbGxlbmdlSUQgPSAwOworfQorCit2b2lkIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OnJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRp
bnVlKCkKK3sKKyAgICBpZiAoIW1fY2hhbGxlbmdlSUQpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpSZWpl
Y3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZShtX2NoYWxsZW5nZUlEKSwgMCk7CisKKyAgICBt
X2NoYWxsZW5nZUlEID0gMDsKK30KKwogV2ViQ3JlZGVudGlhbCogQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eTo6cHJvcG9zZWRDcmVkZW50aWFsKCkgY29uc3QKIHsKICAgICBpZiAoIW1fd2Vi
Q3JlZGVudGlhbCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHkuaAkocmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtNTIsNiArNTIsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCB1c2VDcmVkZW50aWFsKFdl
YkNyZWRlbnRpYWwqKTsKICAgICB2b2lkIGNhbmNlbCgpOworICAgIHZvaWQgcGVyZm9ybURlZmF1
bHRIYW5kbGluZygpOworICAgIHZvaWQgcmVqZWN0UHJvdGVjdGlvblNwYWNlQW5kQ29udGludWUo
KTsKIAogICAgIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lciogbGlzdGVuZXIoKSBjb25z
dCB7IHJldHVybiBtX2xpc3RlbmVyLmdldCgpOyB9CiAgICAgV2ViQ3JlZGVudGlhbCogcHJvcG9z
ZWRDcmVkZW50aWFsKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25EZWNpc2lvbkxpc3RlbmVyLmNwcAkocmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5l
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUyLDE4IEBAIHZvaWQgQXV0aGVudGljYXRp
b25EZWNpc2lvbkxpc3RlbmVyOjpjYW4KICAgICAgICAgbV9jaGFsbGVuZ2VQcm94eS0+Y2FuY2Vs
KCk7CiB9CiAKK3ZvaWQgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyOjpwZXJmb3JtRGVm
YXVsdEhhbmRsaW5nKCkKK3sKKyAgICBpZiAobV9jaGFsbGVuZ2VQcm94eSkKKyAgICAgICAgbV9j
aGFsbGVuZ2VQcm94eS0+cGVyZm9ybURlZmF1bHRIYW5kbGluZygpOworfQorCit2b2lkIEF1dGhl
bnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjo6cmVqZWN0UHJvdGVjdGlvblNwYWNlQW5kQ29udGlu
dWUoKQoreworICAgIGlmIChtX2NoYWxsZW5nZVByb3h5KQorICAgICAgICBtX2NoYWxsZW5nZVBy
b3h5LT5yZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSgpOworfQorCiB2b2lkIEF1dGhl
bnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjo6ZGV0YWNoQ2hhbGxlbmdlKCkKIHsKICAgICBtX2No
YWxsZW5nZVByb3h5ID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25EZWNp
c2lvbkxpc3RlbmVyLmgJKHJldmlzaW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtNDQsNyArNDQsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCB1c2VD
cmVkZW50aWFsKFdlYkNyZWRlbnRpYWwqKTsKICAgICB2b2lkIGNhbmNlbCgpOwotICAgIAorICAg
IHZvaWQgcGVyZm9ybURlZmF1bHRIYW5kbGluZygpOworICAgIHZvaWQgcmVqZWN0UHJvdGVjdGlv
blNwYWNlQW5kQ29udGludWUoKTsKKwogICAgIHZvaWQgZGV0YWNoQ2hhbGxlbmdlKCk7CiAKIHBy
aXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5oCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw2ICsxNDUs
NyBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdlYlZpZXdEaWRGYWlsTmF2aWdhdGlvbldpdGhF
cnJvciA6IDE7CiAKICAgICAgICAgYm9vbCB3ZWJWaWV3UmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFu
Z2UgOiAxOworICAgICAgICBib29sIHdlYlZpZXdXaWxsU2VuZFJlcXVlc3RGb3JBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0NhbkF1dGhlbnRpY2F0ZUFn
YWluc3RQcm90ZWN0aW9uU3BhY2UgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdXZWJQcm9j
ZXNzRGlkQ3Jhc2ggOiAxOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjYsNiArMTI2LDcgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25EZWxl
ZwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TmF2aWdhdGlvbkRpZEZh
aWxQcm92aXNpb25hbExvYWRJblN1YmZyYW1lV2l0aEVycm9yID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6bmF2aWdhdGlvbjpkaWRGYWlsUHJvdmlzaW9u
YWxMb2FkSW5TdWJmcmFtZTp3aXRoRXJyb3I6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdOYXZpZ2F0aW9uRGlkRmluaXNoRG9jdW1lbnRMb2FkID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6bmF2aWdhdGlvbkRpZEZpbmlz
aERvY3VtZW50TG9hZDopXTsKICAgICBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1JlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVuZGVyaW5nUHJvZ3Jlc3NEaWRDaGFuZ2U6KV07CisgICAg
bV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsU2VuZFJlcXVlc3RGb3JBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OndpbGxTZW5kUmVxdWVzdEZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOild
OwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2U6KV07
CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KV07CiAgICAgbV9u
YXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2ggPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dlYlByb2Nlc3NEaWRD
cmFzaDopXTsKQEAgLTU4MSw2ICs1ODIsOSBAQCB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVy
Q2xpZW50OjpkaWRMCiAKIGJvb2wgTmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OmNhbkF1
dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VJbkZyYW1lKFdlYktpdDo6V2ViUGFnZVBy
b3h5KiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0OjpXZWJQcm90ZWN0aW9uU3BhY2Uq
IHByb3RlY3Rpb25TcGFjZSkKIHsKKyAgICBpZiAobV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0
aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsU2VuZFJlcXVlc3RGb3JBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAoIW1fbmF2aWdhdGlv
blN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC01OTMs
NiArNTk3LDE1IEBAIGJvb2wgTmF2aWdhdGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OmNhbkEKIAog
dm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlSW5GcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJh
bWVQcm94eSosIFdlYktpdDo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSogYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UpCiB7CisgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlv
bkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UpIHsKKyAgICAgICAgYXV0byBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBtX25hdmlnYXRp
b25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKTsKKyAgICAgICAgaWYgKCFuYXZpZ2F0
aW9uRGVsZWdhdGUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgW3N0YXRpY19jYXN0
PGlkIDxXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGU+PihuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0
KCkpIF93ZWJWaWV3Om1fbmF2aWdhdGlvblN0YXRlLm1fd2ViVmlldyB3aWxsU2VuZFJlcXVlc3RG
b3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTp3cmFwcGVyKCphdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSldOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0
ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSkKICAgICAgICAgcmV0dXJuOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232827</attachid>
            <date>2014-06-10 16:20:19 -0700</date>
            <delta_ts>2014-06-10 16:20:19 -0700</delta_ts>
            <desc>Add -[WKNavigationDelegatePrivate _webView:willSendRequestForAuthenticationChallenge:]</desc>
            <filename>bug-133697-20140610161954.patch</filename>
            <type>text/plain</type>
            <size>35990</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDE0LTA2LTEwICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ29yZSBwYXJ0IG9mIFtDb2Nv
YV0gSGFuZGxpbmcgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlcyBzaG91bGQgbm90IHJlcXVpcmUg
bXVsdGlwbGUgZGVsZWdhdGUgbWV0aG9kcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2xpZW50
Lmg6IERlY2xhcmVkIG5ldyB2aXJ0dWFsIG1lbWJlciBmdW5jdGlvbnMgZm9yCisgICAgICAgIHJl
cXVlc3RpbmcgZGVmYXVsdCBoYW5kbGluZyBvZiBhIGNoYWxsZW5nZSBhbmQgcmVqZWN0aW5nIGEg
Y2hhbGxlbmdlLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDog
T3ZlcnJpZGUgbmV3IEF1dGhlbnRpY2F0aW9uQ2xpZW50IGZ1bmN0aW9ucy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5k
bGluZyk6IEFkZGVkLiBDYWxscworICAgICAgICBDRlVSTENvbm5lY3Rpb25QZXJmb3JtRGVmYXVs
dEhhbmRsaW5nRm9yQ2hhbGxlbmdlLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKTogQWRkZWQuIENhbGxzCisgICAgICAgIENGVVJM
Q29ubmVjdGlvblJlamVjdENoYWxsZW5nZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L1NvY2tldFN0cmVhbUhhbmRsZS5oOiBPdmVycmlkZSBuZXcgQXV0aGVudGljYXRpb25DbGllbnQg
ZnVuY3Rpb25zLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFu
ZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U29ja2V0U3RyZWFtSGFuZGxlOjpyZWNl
aXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmcpOiBBZGRlZCBlbXB0eQorICAgICAg
ICBvdmVycmlkZS4KKyAgICAgICAgKFdlYkNvcmU6OlNvY2tldFN0cmVhbUhhbmRsZTo6cmVjZWl2
ZWRDaGFsbGVuZ2VSZWplY3Rpb24pOiBEaXR0by4KKwogMjAxNC0wNi0xMCAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjk0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9BdXRoZW50aWNhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAx
Njk3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9u
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmLCBjb25zdCBDcmVkZW50aWFsJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJl
cXVlc3RUb0NvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZl
ZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmcoY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgPSAwOwogCiAgICAgdm9pZCByZWYoKSB7
IHJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCk7IH0KICAgICB2b2lkIGRlcmVmKCkgeyBkZXJlZkF1
dGhlbnRpY2F0aW9uQ2xpZW50KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDE2OTc3OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMTIzLDYgKzEyMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRD
cmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQ3JlZGVudGlh
bCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJlcXVlc3RUb0NvbnRpbnVl
V2l0aG91dENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRSZXF1
ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
TmV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NTQsNiArNDU0LDMyIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVk
Q2FuY2VsbGF0aW8KICAgICAgICAgY2xpZW50KCktPnJlY2VpdmVkQ2FuY2VsbGF0aW9uKHRoaXMs
IGNoYWxsZW5nZSk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRv
UGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hh
bGxlbmdlKQoreworICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSByZWNlaXZlZFJlcXVlc3RUb1Bl
cmZvcm1EZWZhdWx0SGFuZGxpbmcoKSIpOworICAgIEFTU0VSVCghY2hhbGxlbmdlLmlzTnVsbCgp
KTsKKyAgICBBU1NFUlQoY2hhbGxlbmdlLmNmVVJMQXV0aENoYWxsZW5nZVJlZigpKTsKKyAgICBp
ZiAoY2hhbGxlbmdlICE9IGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQ0ZVUkxDb25uZWN0aW9uUGVyZm9ybURlZmF1bHRIYW5kbGluZ0ZvckNoYWxsZW5n
ZShkLT5tX2Nvbm5lY3Rpb24uZ2V0KCksIGNoYWxsZW5nZS5jZlVSTEF1dGhDaGFsbGVuZ2VSZWYo
KSk7CisKKyAgICBjbGVhckF1dGhlbnRpY2F0aW9uKCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VIYW5k
bGU6OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiBjaGFsbGVuZ2UpCit7CisgICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIHJlY2VpdmVkQ2hh
bGxlbmdlUmVqZWN0aW9uKCkiKTsKKyAgICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7Cisg
ICAgQVNTRVJUKGNoYWxsZW5nZS5jZlVSTEF1dGhDaGFsbGVuZ2VSZWYoKSk7CisgICAgaWYgKGNo
YWxsZW5nZSAhPSBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIENGVVJMQ29ubmVjdGlvblJlamVjdENoYWxsZW5nZShkLT5tX2Nvbm5lY3Rpb24uZ2V0KCks
IGNoYWxsZW5nZS5jZlVSTEF1dGhDaGFsbGVuZ2VSZWYoKSk7CisKKyAgICBjbGVhckF1dGhlbnRp
Y2F0aW9uKCk7Cit9CisKIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgUmVzb3VyY2VIYW5kbGU6OnN0
b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+bV9zdG9yYWdlU2Vzc2lvbi5n
ZXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3Ry
ZWFtSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkod29ya2luZyBj
b3B5KQpAQCAtODgsNiArODgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCByZWNlaXZl
ZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50
aWFsJik7CiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0
Q3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZpcnR1YWwg
dm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
OworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxp
bmcoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVj
ZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsK
IAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVmKCk7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVyZWYoKTsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1I
YW5kbGVDRk5ldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVDRk5ldC5jcHAJKHJldmlzaW9uIDE2OTc3OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlQ0ZO
ZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjMsNiArNjYzLDE0IEBAIHZvaWQgU29ja2V0U3Ry
ZWFtSGFuZGxlOjpyZWNlaXZlZENhbmNlbGwKIHsKIH0KIAordm9pZCBTb2NrZXRTdHJlYW1IYW5k
bGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYpCit7Cit9CisKK3ZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpyZWNl
aXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7
Cit9CisKIHVuc2lnbmVkIHNob3J0IFNvY2tldFN0cmVhbUhhbmRsZTo6cG9ydCgpIGNvbnN0CiB7
CiAgICAgaWYgKHVuc2lnbmVkIHNob3J0IHVybFBvcnQgPSBtX3VybC5wb3J0KCkpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcAkocmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4Miw2ICsyODIsMTYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDYW5j
ZWxsYXRpbwogICAgICAgICBjbGllbnQoKS0+cmVjZWl2ZWRDYW5jZWxsYXRpb24odGhpcywgY2hh
bGxlbmdlKTsKIH0KIAordm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRSZXF1ZXN0VG9QZXJm
b3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2
ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQorewor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tl
dFN0cmVhbUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNpb24gMTY5Nzc4KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
LCBjb25zdCBDcmVkZW50aWFsJik7CiAgICAgICAgIHZvaWQgcmVjZWl2ZWRSZXF1ZXN0VG9Db250
aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAg
ICAgICAgIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKKyAgICAgICAgdm9pZCByZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFu
ZGxpbmcoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICAgICAgdm9pZCByZWNl
aXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwog
ICAgIH07CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlQ3VybC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhh
bmRsZUN1cmwuY3BwCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2N1cmwvU29ja2V0U3RyZWFtSGFuZGxlQ3VybC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg4LDYgKzg4LDE2IEBAIHZvaWQgU29ja2V0U3RyZWFtSGFuZGxlOjpyZWNlaXZlZENhbmNl
bGwKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFNvY2tldFN0cmVhbUhhbmRsZTo6
cmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFNvY2tl
dFN0cmVhbUhhbmRsZTo6cmVjZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0gIC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlzaW9u
IDE2OTc3OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02ODksNiArNjg5LDMyIEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW8KICAgICAgICAgY2xpZW50KCktPnJlY2Vp
dmVkQ2FuY2VsbGF0aW9uKHRoaXMsIGNoYWxsZW5nZSk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5k
bGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQoreworICAgIExPRyhOZXR3b3JrLCAiSGFuZGxl
ICVwIHJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyIsIHRoaXMpOworCisg
ICAgQVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkpOworICAgIGlmIChjaGFsbGVuZ2UgIT0gZC0+
bV9jdXJyZW50V2ViQ2hhbGxlbmdlKQorICAgICAgICByZXR1cm47CisKKyAgICBbW2QtPm1fY3Vy
cmVudE1hY0NoYWxsZW5nZSBzZW5kZXJdIHBlcmZvcm1EZWZhdWx0SGFuZGxpbmdGb3JBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTpkLT5tX2N1cnJlbnRNYWNDaGFsbGVuZ2VdOworCisgICAgY2xlYXJB
dXRoZW50aWNhdGlvbigpOworfQorCit2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENoYWxs
ZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQor
eworICAgIExPRyhOZXR3b3JrLCAiSGFuZGxlICVwIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
IiwgdGhpcyk7CisKKyAgICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwoKSk7CisgICAgaWYgKGNo
YWxsZW5nZSAhPSBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFtbZC0+bV9jdXJyZW50TWFjQ2hhbGxlbmdlIHNlbmRlcl0gcmVqZWN0UHJvdGVjdGlvblNw
YWNlQW5kQ29udGludWVXaXRoQ2hhbGxlbmdlOmQtPm1fY3VycmVudE1hY0NoYWxsZW5nZV07CisK
KyAgICBjbGVhckF1dGhlbnRpY2F0aW9uKCk7Cit9CisKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNv
bnRpbnVlV2lsbENhY2hlUmVzcG9uc2UoTlNDYWNoZWRVUkxSZXNwb25zZSAqcmVzcG9uc2UpCiB7
CiAgICAgQVNTRVJUKGNsaWVudCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCShyZXZp
c2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVz
b3VyY2VIYW5kbGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5NCw2ICsxMTk0LDE2IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW8KICAgICBjbGVhckF1dGhl
bnRpY2F0aW9uKCk7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRv
UGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnJl
Y2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwogc3RhdGljIGJvb2wgd2FpdGluZ1Rv
U2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKIHsKICAgICAvLyBXZSBuZWVkIHRv
IGNoZWNrIGZvciBkLT5tX3NvdXBSZXF1ZXN0IGJlY2F1c2UgdGhlIHJlcXVlc3QgbWF5IGhhdmUg
cmFpc2VkIGEgZmFpbHVyZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1NvY2tldFN0cmVhbUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGUuaAkocmV2aXNpb24gMTY5Nzc4
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVhbUhh
bmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCw2ICs3OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmLCBjb25zdCBDcmVkZW50aWFsJik7CiAgICAgICAgIHZvaWQgcmVjZWl2ZWRSZXF1
ZXN0VG9Db250aW51ZVdpdGhvdXRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJik7CiAgICAgICAgIHZvaWQgcmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKTsKKyAgICAgICAgdm9pZCByZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1E
ZWZhdWx0SGFuZGxpbmcoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKKyAgICAgICAg
dm9pZCByZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYpOworCiAgICAgICAgIHZvaWQgYmVnaW5XYWl0aW5nRm9yU29ja2V0V3JpdGFiaWxpdHko
KTsKICAgICAgICAgdm9pZCBzdG9wV2FpdGluZ0ZvclNvY2tldFdyaXRhYmlsaXR5KCk7CiAgICAg
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJl
YW1IYW5kbGVTb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU29ja2V0U3RyZWFtSGFuZGxlU291cC5jcHAJKHJldmlzaW9uIDE2OTc3OCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5k
bGVTb3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI4LDYgKzIyOCwxNiBAQCB2b2lkIFNvY2tl
dFN0cmVhbUhhbmRsZTo6cmVjZWl2ZWRDYW5jZWxsCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAordm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1
bHRIYW5kbGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnJlY2VpdmVkQ2hhbGxl
bmdlUmVqZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZTo6YmVnaW5XYWl0aW5n
Rm9yU29ja2V0V3JpdGFiaWxpdHkoKQogewogICAgIGlmIChtX3dyaXRlUmVhZHlTb3VyY2UpIC8v
IEFscmVhZHkgd2FpdGluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
d2luL1NvY2tldFN0cmVhbUhhbmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL1NvY2tldFN0cmVhbUhhbmRsZS5oCShyZXZpc2lvbiAxNjk3Nzgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Tb2NrZXRTdHJlYW1IYW5k
bGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjEsNiArNjEsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
cmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3Qg
Q3JlZGVudGlhbCYpOwogICAgIHZvaWQgcmVjZWl2ZWRSZXF1ZXN0VG9Db250aW51ZVdpdGhvdXRD
cmVkZW50aWFsKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAgdm9pZCByZWNl
aXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOworICAgIHZv
aWQgcmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlJik7CisgICAgdm9pZCByZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbihj
b25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vU29ja2V0U3Ry
ZWFtSGFuZGxlV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3dpbi9Tb2NrZXRTdHJlYW1IYW5kbGVXaW4uY3BwCShyZXZpc2lvbiAxNjk3NzgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9Tb2NrZXRTdHJlYW1IYW5kbGVX
aW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Niw0ICs4NiwxNCBAQCB2b2lkIFNvY2tldFN0cmVh
bUhhbmRsZTo6cmVjZWl2ZWRDYW5jZWxsCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9p
ZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5k
bGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBTb2NrZXRTdHJlYW1IYW5kbGU6OnJlY2VpdmVkQ2hhbGxlbmdlUmVq
ZWN0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSw2NyBAQAorMjAxNC0wNi0xMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYktpdDIgcGFydCBvZiBbQ29jb2FdIEhhbmRsaW5nIGF1dGhlbnRp
Y2F0aW9uIGNoYWxsZW5nZXMgc2hvdWxkIG5vdCByZXF1aXJlIG11bHRpcGxlIGRlbGVnYXRlIG1l
dGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MzY5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6cGVyZm9ybURlZmF1bHRIYW5kbGluZyk6
IEFkZGVkLiBDYWxscyB0aGUgbmV3CisgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2xpZW50IGZ1bmN0
aW9uIHJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZy4KKyAgICAgICAgKFdl
YktpdDo6QXV0aGVudGljYXRpb25NYW5hZ2VyOjpyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250
aW51ZSk6IEFkZGVkLiBDYWxscyB0aGUgbmV3CisgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2xpZW50
IGZ1bmN0aW9uIHJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uLgorICAgICAgICAqIFNoYXJlZC9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBTaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZCBu
ZXcgbWVzc2FnZXMKKyAgICAgICAgUGVyZm9ybURlZmF1bHRIYW5kbGluZyBhbmQgUmVqZWN0UHJv
dGVjdGlvblNwYWNlQW5kQ29udGludWUuCisKKyAgICAgICAgKiBTaGFyZWQvRG93bmxvYWRzL0Rv
d25sb2FkQXV0aGVudGljYXRpb25DbGllbnQuaDogT3ZlcnJpZGUgbmV3IEF1dGhlbnRpY2F0aW9u
Q2xpZW50IG1lbWJlcgorICAgICAgICBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBTaGFyZWQvRG93
bmxvYWRzL2lvcy9Eb3dubG9hZElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWQ6OnJl
Y2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyk6IEFkZGVkIGVtcHR5IGltcGxl
bWVudGF0aW9uLgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2ZWRDaGFsbGVuZ2VS
ZWplY3Rpb24pOiBEaXR0by4KKworICAgICAgICAqIFNoYXJlZC9Eb3dubG9hZHMvbWFjL0Rvd25s
b2FkTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0VG9Q
ZXJmb3JtRGVmYXVsdEhhbmRsaW5nKTogQWRkZWQuIEZvcndhcmRzIHRvIHRoZSBzZW5kZXIuCisg
ICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbik6IERp
dHRvLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05TVVJMQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UubW06CisgICAgICAgIChjaGVja0NoYWxsZW5nZSk6IEZhY3RvcmVkIG91dCBh
IGJpdCBvZiBjb2RlIGludG8gdGhpcyBoZWxwZXIgZnVuY3Rpb24uCisgICAgICAgICgtW1dLTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlciBjYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTpdKTogVXNlIG5ldyBoZWxwZXIuCisgICAgICAgICgtW1dLTlNVUkxBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVNlbmRlciBjb250aW51ZVdpdGhvdXRDcmVkZW50aWFsRm9yQXV0aGVudGljYXRp
b25DaGFsbGVuZ2U6XSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoLVtXS05TVVJMQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VTZW5kZXIgdXNlQ3JlZGVudGlhbDpmb3JBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTpdKTogRGl0dG8uCisgICAgICAgICgtW1dLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVNlbmRlciBwZXJmb3JtRGVmYXVsdEhhbmRsaW5nRm9yQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6XSk6CisgICAgICAgIEltcGxlbWVudGVkIHRoaXMgb3B0aW9uYWwgTlNVUkxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVNlbmRlciBwcm90b2NvbCBtZXRob2QgYnkgZm9yd2FyZGluZworICAgICAg
ICB0byB0aGUgZGVjaXNpb24gbGlzdGVuZXIuCisgICAgICAgICgtW1dLTlNVUkxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVNlbmRlciByZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZVdpdGhD
aGFsbGVuZ2U6XSk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDogRGVjbGFyZWQgbmV3IGRlbGVnYXRl
IG1ldGhvZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eTo6cGVyZm9ybURlZmF1bHRIYW5kbGluZyk6IEFkZGVkLiBTZW5kcyBhIG1l
c3NhZ2UgdG8KKyAgICAgICAgdGhlIGF1dGhlbnRpY2F0aW9uIG1hbmFnZXIuCisgICAgICAgIChX
ZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OnJlamVjdFByb3RlY3Rpb25TcGFj
ZUFuZENvbnRpbnVlKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9B
dXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI6OnBlcmZvcm1EZWZhdWx0
SGFuZGxpbmcpOiBBZGRlZC4gRm9yd2FyZHMgdG8gdGhlCisgICAgICAgIGF1dGhlbnRpY2F0aW9u
IGNoYWxsZW5nZSBwcm94eS4KKyAgICAgICAgKFdlYktpdDo6QXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyOjpyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSk6IERpdHRvLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlz
dGVuZXIuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaDog
QWRkZWQgZmxhZyBpbiBtX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMgc3RydWN0LgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUubW06CisgICAgICAgIChXZWJLaXQ6
Ok5hdmlnYXRpb25TdGF0ZTo6c2V0TmF2aWdhdGlvbkRlbGVnYXRlKTogSW5pdGlhbGl6ZQorICAg
ICAgICB3ZWJWaWV3V2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgZmxh
ZyBpbiB0aGUgZGVsZWdhdGUgbWV0aG9kcyBzdHJ1Y3QuCisgICAgICAgIChXZWJLaXQ6Ok5hdmln
YXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlSW5GcmFtZSk6IElmCisgICAgICAgIHRoZSBkZWxlZ2F0ZSBpbXBsZW1lbnRzIC1fd2Vi
Vmlldzp3aWxsU2VuZFJlcXVlc3RGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTosIHJldHVybiB0
cnVlCisgICAgICAgIGhlcmU7IHRoZSBkZWxlZ2F0ZSB3aWxsIHJlc3BvbmQgd2l0aCAtcmVqZWN0
UHJvdGVjdGlvblNwYWNlQW5kQ29udGludWVXaXRoQ2hhbGxlbmdlOiBpZgorICAgICAgICBpdCBj
YW5ub3QgYXV0aGVudGljYXRlLgorICAgICAgICAoV2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU6Okxv
YWRlckNsaWVudDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZSk6IElm
IHRoZQorICAgICAgICBkZWxlZ2F0ZSBpbXBsZW1lbnRzIC1fd2ViVmlldzp3aWxsU2VuZFJlcXVl
c3RGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTosIHNlbmQgdGhhdCBtZXNzYWdlLgorCiAyMDE0
LTA2LTEwICBUaW1vdGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGYWN0b3IgcmVwZWF0ZWQgQ0ZSdW5Mb29wT2JzZXJ2ZXIgY29kZSBvdXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTU2LDQgKzE1NiwzNiBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdl
cjo6Y2FuY2VsQ2hhbGxlCiAgICAgY29yZUNsaWVudC0+cmVjZWl2ZWRDYW5jZWxsYXRpb24oY2hh
bGxlbmdlKTsKIH0KIAordm9pZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnBlcmZvcm1EZWZhdWx0
SGFuZGxpbmcodWludDY0X3QgY2hhbGxlbmdlSUQpCit7CisgICAgQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKKworICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZSA9IG1fY2hh
bGxlbmdlcy50YWtlKGNoYWxsZW5nZUlEKTsKKyAgICBBU1NFUlQoIWNoYWxsZW5nZS5pc051bGwo
KSk7CisgICAgQXV0aGVudGljYXRpb25DbGllbnQqIGNvcmVDbGllbnQgPSBjaGFsbGVuZ2UuYXV0
aGVudGljYXRpb25DbGllbnQoKTsKKyAgICBpZiAoIWNvcmVDbGllbnQpIHsKKyAgICAgICAgLy8g
VGhpcyBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgY29tZXMgZnJvbSBhIGRvd25sb2FkLgorICAg
ICAgICBEb3dubG9hZDo6cmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNo
YWxsZW5nZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb3JlQ2xpZW50LT5yZWNl
aXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmcoY2hhbGxlbmdlKTsKK30KKwordm9p
ZCBBdXRoZW50aWNhdGlvbk1hbmFnZXI6OnJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVl
KHVpbnQ2NF90IGNoYWxsZW5nZUlEKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CisKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjaGFsbGVuZ2UgPSBtX2NoYWxsZW5nZXMu
dGFrZShjaGFsbGVuZ2VJRCk7CisgICAgQVNTRVJUKCFjaGFsbGVuZ2UuaXNOdWxsKCkpOworICAg
IEF1dGhlbnRpY2F0aW9uQ2xpZW50KiBjb3JlQ2xpZW50ID0gY2hhbGxlbmdlLmF1dGhlbnRpY2F0
aW9uQ2xpZW50KCk7CisgICAgaWYgKCFjb3JlQ2xpZW50KSB7CisgICAgICAgIC8vIFRoaXMgYXV0
aGVudGljYXRpb24gY2hhbGxlbmdlIGNvbWVzIGZyb20gYSBkb3dubG9hZC4KKyAgICAgICAgRG93
bmxvYWQ6OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9uKGNoYWxsZW5nZSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBjb3JlQ2xpZW50LT5yZWNlaXZlZENoYWxsZW5nZVJlamVjdGlv
bihjaGFsbGVuZ2UpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0aGVudGlj
YXRpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNjIsNyArNjIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1c2VDcmVkZW50aWFsRm9yQ2hhbGxl
bmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlELCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJiwgY29u
c3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgdm9pZCBjb250aW51ZVdpdGhvdXRD
cmVkZW50aWFsRm9yQ2hhbGxlbmdlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKICAgICB2b2lkIGNh
bmNlbENoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7Ci0gICAgCisgICAgdm9pZCBwZXJm
b3JtRGVmYXVsdEhhbmRsaW5nKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKKyAgICB2b2lkIHJlamVj
dFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlKHVpbnQ2NF90IGNoYWxsZW5nZUlEKTsKKwogICAg
IHVpbnQ2NF90IG91dHN0YW5kaW5nQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDb3VudCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2hhbGxlbmdlcy5zaXplKCk7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIubWVz
c2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgkocmV2aXNpb24gMTY5Nzc4KQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFu
YWdlci5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjQsNCArMjQsNiBAQCBtZXNzYWdl
cyAtPiBBdXRoZW50aWNhdGlvbk1hbmFnZXIgewogICAgIHZvaWQgVXNlQ3JlZGVudGlhbEZvckNo
YWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwgV2ViQ29yZTo6Q3JlZGVudGlhbCBjcmVkZW50
aWFsLCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGUpOwogICAgIHZvaWQgQ29u
dGludWVXaXRob3V0Q3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7
CiAgICAgdm9pZCBDYW5jZWxDaGFsbGVuZ2UodWludDY0X3QgY2hhbGxlbmdlSUQpOworICAgIHZv
aWQgUGVyZm9ybURlZmF1bHRIYW5kbGluZyh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7CisgICAgdm9p
ZCBSZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCk7
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCShy
ZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25s
b2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw2ICsxMDAsOCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgcmVjZWl2ZWRDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiwgY29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwogICAgIHN0YXRpYyB2b2lk
IHJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25zdCBXZWJDb3Jl
OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHN0YXRpYyB2b2lkIHJlY2VpdmVkQ2Fu
Y2VsbGF0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisgICAg
c3RhdGljIHZvaWQgcmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVsdEhhbmRsaW5nKGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CisgICAgc3RhdGljIHZvaWQgcmVj
ZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmKTsKIAogICAgIHZvaWQgdXNlQ3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYsIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKICAgICB2b2lk
IGNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxv
YWRBdXRoZW50aWNhdGlvbkNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50LmNwcAkocmV2aXNp
b24gMTY5Nzc4KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZEF1
dGhlbnRpY2F0aW9uQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNCArNTMsMTQgQEAg
dm9pZCBEb3dubG9hZEF1dGhlbnRpY2F0aW9uQ2xpZW50OjpyZWNlaQogICAgIC8vIEZJWE1FICgx
MTk2NjcpOiBUaGlzIGNhbiBwcm9iYWJseSBiZSBqdXN0IHJlbW92ZWQuCiB9CiAKK3ZvaWQgRG93
bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudDo6cmVjZWl2ZWRSZXF1ZXN0VG9QZXJmb3JtRGVmYXVs
dEhhbmRsaW5nKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICAvLyBGSVhN
RSAoMTE5NjY3KTogVGhpcyBjYW4gcHJvYmFibHkgYmUganVzdCByZW1vdmVkLgorfQorCit2b2lk
IERvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQ6OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICAvLyBGSVhNRSAoMTE5NjY3
KTogVGhpcyBjYW4gcHJvYmFibHkgYmUganVzdCByZW1vdmVkLgorfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRB
dXRoZW50aWNhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Eb3dubG9hZHMvRG93bmxvYWRBdXRoZW50aWNhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAxNjk3
NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkQXV0aGVudGlj
YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsOCBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6QXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAgICAgdmly
dHVhbCB2b2lkIHJlY2VpdmVkUmVxdWVzdFRvQ29udGludWVXaXRob3V0Q3JlZGVudGlhbChjb25z
dCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZpcnR1YWwgdm9pZCBy
ZWNlaXZlZENhbmNlbGxhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYpOworICAgIHZpcnR1YWwgdm9pZCByZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFu
ZGxpbmcoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9p
ZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVmKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVyZWYoKTsgfQpJbmRleDogU291cmNlL1dl
YktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9pb3MvRG93bmxvYWRJT1MubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9pb3MvRG93bmxvYWRJT1MubW0JKHJldmlz
aW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvaW9zL0Rvd25s
b2FkSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNiArMTY5LDE2IEBAIHZvaWQgRG93bmxv
YWQ6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnMKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Cit2b2lkIERvd25sb2FkOjpyZWNlaXZlZFJlcXVlc3RUb1BlcmZvcm1EZWZhdWx0SGFuZGxpbmco
Y29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkQ2hhbGxlbmdlUmVqZWN0aW9u
KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvbWFjL0Rvd25s
b2FkTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMv
bWFjL0Rvd25sb2FkTWFjLm1tCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI1
LDYgKzEyNSwxNiBAQCB2b2lkIERvd25sb2FkOjpyZWNlaXZlZENhbmNlbGxhdGlvbihjb25zCiAg
ICAgW2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLnNlbmRlcigpIGNhbmNlbEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlOmF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLm5zVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoKV07CiB9CiAKK3ZvaWQgRG93bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURl
ZmF1bHRIYW5kbGluZyhjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYXV0aGVudGljYXRp
b25DaGFsbGVuZ2UpCit7CisgICAgW2F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLnNlbmRlcigpIHBl
cmZvcm1EZWZhdWx0SGFuZGxpbmdGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTphdXRoZW50aWNh
dGlvbkNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCldOworfQorCit2b2lk
IERvd25sb2FkOjpyZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpCit7CisgICAgW2F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlLnNlbmRlcigpIHJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlV2l0
aENoYWxsZW5nZTphdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5uc1VSTEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKCldOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogQGltcGxlbWVudGF0aW9u
IFdLRG93bmxvYWRBc0RlbGVnYXRlCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxv
YWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAkocmV2aXNpb24gMTY5Nzc4KQor
KysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9zb3VwL0Rvd25sb2FkU291cC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4Miw0ICsyODIsMTQgQEAgdm9pZCBEb3dubG9hZDo6Y2FuY2Vs
QXV0aGVudGljYXRpb25DaGFsbAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgRG93
bmxvYWQ6OnJlY2VpdmVkUmVxdWVzdFRvUGVyZm9ybURlZmF1bHRIYW5kbGluZyhjb25zdCBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBEb3dubG9hZDo6cmVjZWl2ZWRDaGFsbGVuZ2VSZWplY3Rpb24oY29uc3QgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05T
VVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UubW0J
KHJldmlzaW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02Mywz
MiArNjMsNDUgQEAgLSAoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSYpX3dlYl9hdQogCiBA
aW1wbGVtZW50YXRpb24gV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU2VuZGVyCiAKLS0g
KHZvaWQpY2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgKiljaGFsbGVuZ2UKK3N0YXRpYyB2b2lkIGNoZWNrQ2hhbGxlbmdlKE5TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgKmNoYWxsZW5nZSkKIHsKICAgICBpZiAoW2NoYWxsZW5nZSBj
bGFzc10gIT0gW1dLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBjbGFzc10pCiAgICAgICAg
IFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJU
aGUgY2hhbGxlbmdlIHdhcyBub3Qgc2VudCBieSB0aGUgcmVjZWl2ZXIuIl07Cit9CiAKKy0gKHZv
aWQpY2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgKiljaGFsbGVuZ2UKK3sKKyAgICBjaGVja0NoYWxsZW5nZShjaGFsbGVuZ2UpOwogICAg
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkmIHdlYkNoYWxsZW5nZSA9ICgoV0tOU1VSTEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlKS5fd2ViX2F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlUHJveHk7CiAgICAgd2ViQ2hhbGxlbmdlLmxpc3RlbmVyKCktPmNhbmNlbCgpOwogfQog
CiAtICh2b2lkKWNvbnRpbnVlV2l0aG91dENyZWRlbnRpYWxGb3JBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZQogewotICAgIGlm
IChbY2hhbGxlbmdlIGNsYXNzXSAhPSBbV0tOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGNs
YXNzXSkKLSAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0
aW9uIGZvcm1hdDpAIlRoZSBjaGFsbGVuZ2Ugd2FzIG5vdCBzZW50IGJ5IHRoZSByZWNlaXZlci4i
XTsKLQorICAgIGNoZWNrQ2hhbGxlbmdlKGNoYWxsZW5nZSk7CiAgICAgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eSYgd2ViQ2hhbGxlbmdlID0gKChXS05TVVJMQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UgKiljaGFsbGVuZ2UpLl93ZWJfYXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKICAg
ICB3ZWJDaGFsbGVuZ2UubGlzdGVuZXIoKS0+dXNlQ3JlZGVudGlhbChudWxscHRyKTsKIH0KIAog
LSAodm9pZCl1c2VDcmVkZW50aWFsOihOU1VSTENyZWRlbnRpYWwgKiljcmVkZW50aWFsIGZvckF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hh
bGxlbmdlCiB7Ci0gICAgaWYgKFtjaGFsbGVuZ2UgY2xhc3NdICE9IFtXS05TVVJMQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UgY2xhc3NdKQotICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZh
bGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiVGhlIGNoYWxsZW5nZSB3YXMgbm90IHNlbnQg
YnkgdGhlIHJlY2VpdmVyLiJdOworICAgIGNoZWNrQ2hhbGxlbmdlKGNoYWxsZW5nZSk7CisgICAg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSYgd2ViQ2hhbGxlbmdlID0gKChXS05TVVJMQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UpLl93ZWJfYXV0aGVudGljYXRpb25DaGFs
bGVuZ2VQcm94eTsKKyAgICB3ZWJDaGFsbGVuZ2UubGlzdGVuZXIoKS0+dXNlQ3JlZGVudGlhbChX
ZWJDcmVkZW50aWFsOjpjcmVhdGUoY29yZShjcmVkZW50aWFsKSkuZ2V0KCkpOworfQogCistICh2
b2lkKXBlcmZvcm1EZWZhdWx0SGFuZGxpbmdGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNV
UkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZQoreworICAgIGNoZWNrQ2hhbGxl
bmdlKGNoYWxsZW5nZSk7CiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSYgd2ViQ2hh
bGxlbmdlID0gKChXS05TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2UpLl93
ZWJfYXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKKyAgICB3ZWJDaGFsbGVuZ2UubGlzdGVu
ZXIoKS0+cGVyZm9ybURlZmF1bHRIYW5kbGluZygpOworfQogCi0gICAgd2ViQ2hhbGxlbmdlLmxp
c3RlbmVyKCktPnVzZUNyZWRlbnRpYWwoV2ViQ3JlZGVudGlhbDo6Y3JlYXRlKGNvcmUoY3JlZGVu
dGlhbCkpLmdldCgpKTsKKy0gKHZvaWQpcmVqZWN0UHJvdGVjdGlvblNwYWNlQW5kQ29udGludWVX
aXRoQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hhbGxlbmdlCit7
CisgICAgY2hlY2tDaGFsbGVuZ2UoY2hhbGxlbmdlKTsKKyAgICBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5JiB3ZWJDaGFsbGVuZ2UgPSAoKFdLTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSAqKWNoYWxsZW5nZSkuX3dlYl9hdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OworICAgIHdl
YkNoYWxsZW5nZS5saXN0ZW5lcigpLT5yZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSgp
OwogfQogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
TmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgJKHJldmlz
aW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZp
Z2F0aW9uRGVsZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAg
c3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IAogCiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlOihfV0tS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50cylwcm9ncmVzc0V2ZW50czsKIAorLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsU2VuZFJlcXVlc3RGb3JBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZTsKIC0gKEJP
T0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2FuQXV0aGVudGljYXRlQWdhaW5zdFBy
b3RlY3Rpb25TcGFjZTooTlNVUkxQcm90ZWN0aW9uU3BhY2UgKilwcm90ZWN0aW9uU3BhY2U7CiAt
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZTsK
IApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmNwcAko
cmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
Myw2ICs4MywyNiBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6OmNhbmNlCiAg
ICAgbV9jaGFsbGVuZ2VJRCA9IDA7CiB9CiAKK3ZvaWQgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQ
cm94eTo6cGVyZm9ybURlZmF1bHRIYW5kbGluZygpCit7CisgICAgaWYgKCFtX2NoYWxsZW5nZUlE
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkF1
dGhlbnRpY2F0aW9uTWFuYWdlcjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZyhtX2NoYWxsZW5nZUlE
KSwgMCk7CisKKyAgICBtX2NoYWxsZW5nZUlEID0gMDsKK30KKwordm9pZCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5OjpyZWplY3RQcm90ZWN0aW9uU3BhY2VBbmRDb250aW51ZSgpCit7Cisg
ICAgaWYgKCFtX2NoYWxsZW5nZUlEKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OkF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6UmVqZWN0UHJvdGVjdGlv
blNwYWNlQW5kQ29udGludWUobV9jaGFsbGVuZ2VJRCksIDApOworCisgICAgbV9jaGFsbGVuZ2VJ
RCA9IDA7Cit9CisKIFdlYkNyZWRlbnRpYWwqIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk6
OnByb3Bvc2VkQ3JlZGVudGlhbCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3dlYkNyZWRlbnRpYWwp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmgJKHJldmlz
aW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9B
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDYgKzUy
LDggQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgdXNlQ3JlZGVudGlhbChXZWJDcmVkZW50aWFs
Kik7CiAgICAgdm9pZCBjYW5jZWwoKTsKKyAgICB2b2lkIHBlcmZvcm1EZWZhdWx0SGFuZGxpbmco
KTsKKyAgICB2b2lkIHJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlKCk7CiAKICAgICBB
dXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIqIGxpc3RlbmVyKCkgY29uc3QgeyByZXR1cm4g
bV9saXN0ZW5lci5nZXQoKTsgfQogICAgIFdlYkNyZWRlbnRpYWwqIHByb3Bvc2VkQ3JlZGVudGlh
bCgpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uRGVjaXNpb25M
aXN0ZW5lci5jcHAJKHJldmlzaW9uIDE2OTc3OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Miw2ICs1MiwxOCBAQCB2b2lkIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25M
aXN0ZW5lcjo6Y2FuCiAgICAgICAgIG1fY2hhbGxlbmdlUHJveHktPmNhbmNlbCgpOwogfQogCit2
b2lkIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjo6cGVyZm9ybURlZmF1bHRIYW5kbGlu
ZygpCit7CisgICAgaWYgKG1fY2hhbGxlbmdlUHJveHkpCisgICAgICAgIG1fY2hhbGxlbmdlUHJv
eHktPnBlcmZvcm1EZWZhdWx0SGFuZGxpbmcoKTsKK30KKwordm9pZCBBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXI6OnJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENvbnRpbnVlKCkKK3sKKyAg
ICBpZiAobV9jaGFsbGVuZ2VQcm94eSkKKyAgICAgICAgbV9jaGFsbGVuZ2VQcm94eS0+cmVqZWN0
UHJvdGVjdGlvblNwYWNlQW5kQ29udGludWUoKTsKK30KKwogdm9pZCBBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXI6OmRldGFjaENoYWxsZW5nZSgpCiB7CiAgICAgbV9jaGFsbGVuZ2VQcm94
eSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5l
ci5oCShyZXZpc2lvbiAxNjk3NzgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDcgKzQ0LDkgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgdXNlQ3JlZGVudGlhbChX
ZWJDcmVkZW50aWFsKik7CiAgICAgdm9pZCBjYW5jZWwoKTsKLSAgICAKKyAgICB2b2lkIHBlcmZv
cm1EZWZhdWx0SGFuZGxpbmcoKTsKKyAgICB2b2lkIHJlamVjdFByb3RlY3Rpb25TcGFjZUFuZENv
bnRpbnVlKCk7CisKICAgICB2b2lkIGRldGFjaENoYWxsZW5nZSgpOwogCiBwcml2YXRlOgpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUu
aAkocmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05h
dmlnYXRpb25TdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsNiArMTQ1LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRmFpbE5hdmlnYXRpb25XaXRoRXJyb3IgOiAxOwog
CiAgICAgICAgIGJvb2wgd2ViVmlld1JlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlIDogMTsKKyAg
ICAgICAgYm9vbCB3ZWJWaWV3V2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNo
IDogMTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3Rh
dGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL05hdmln
YXRpb25TdGF0ZS5tbQkocmV2aXNpb24gMTY5Nzc4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTI2LDYgKzEy
Niw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWcKICAgICBtX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld05hdmlnYXRpb25EaWRGYWlsUHJvdmlzaW9u
YWxMb2FkSW5TdWJmcmFtZVdpdGhFcnJvciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKF93ZWJWaWV3Om5hdmlnYXRpb246ZGlkRmFpbFByb3Zpc2lvbmFsTG9hZEluU3Vi
ZnJhbWU6d2l0aEVycm9yOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3TmF2aWdhdGlvbkRpZEZpbmlzaERvY3VtZW50TG9hZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3Om5hdmlnYXRpb25EaWRGaW5pc2hEb2N1bWVudExv
YWQ6KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdSZW5kZXJpbmdQ
cm9ncmVzc0RpZENoYW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OnJlbmRlcmluZ1Byb2dyZXNzRGlkQ2hhbmdlOildOworICAgIG1fbmF2aWdhdGlv
bkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzp3aWxsU2VuZFJlcXVlc3RGb3JBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTopXTsKICAgICBtX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOildOwogICAgIG1fbmF2
aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOildOwogICAgIG1fbmF2aWdhdGlvbkRl
bGVnYXRlTWV0aG9kcy53ZWJWaWV3V2ViUHJvY2Vzc0RpZENyYXNoID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdXZWJQcm9jZXNzRGlkQ3Jhc2g6KV07CkBA
IC01ODEsNiArNTgyLDkgQEAgdm9pZCBOYXZpZ2F0aW9uU3RhdGU6OkxvYWRlckNsaWVudDo6ZGlk
TAogCiBib29sIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVB
Z2FpbnN0UHJvdGVjdGlvblNwYWNlSW5GcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktp
dDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6V2ViUHJvdGVjdGlvblNwYWNlKiBwcm90ZWN0aW9u
U3BhY2UpCiB7CisgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3V2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGljYXRpb25DaGFsbGVuZ2Up
CisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgaWYgKCFtX25hdmlnYXRpb25TdGF0ZS5tX25h
dmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTkzLDYgKzU5NywxNSBA
QCBib29sIE5hdmlnYXRpb25TdGF0ZTo6TG9hZGVyQ2xpZW50OjpjYW5BCiAKIHZvaWQgTmF2aWdh
dGlvblN0YXRlOjpMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUluRnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkqLCBX
ZWJLaXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkqIGF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKQogeworICAgIGlmIChtX25hdmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld1dpbGxTZW5kUmVxdWVzdEZvckF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSB7
CisgICAgICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gbV9uYXZpZ2F0aW9uU3RhdGUubV9u
YXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCk7CisgICAgICAgIGlmICghbmF2aWdhdGlvbkRlbGVnYXRl
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tOYXZp
Z2F0aW9uRGVsZWdhdGVQcml2YXRlPj4obmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpKSBfd2ViVmll
dzptX25hdmlnYXRpb25TdGF0ZS5tX3dlYlZpZXcgd2lsbFNlbmRSZXF1ZXN0Rm9yQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6d3JhcHBlcigqYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpXTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICghbV9uYXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0
aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UpCiAgICAgICAgIHJldHVybjsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>