<?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>213681</bug_id>
          
          <creation_ts>2020-06-27 10:04:15 -0700</creation_ts>
          <short_desc>Fix missing exception check in createIDBKeyFromValue().</short_desc>
          <delta_ts>2020-06-27 15:14:10 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1666787</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-27 10:04:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/64804893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666789</commentid>
    <comment_count>1</comment_count>
      <attachid>402962</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-27 10:11:46 -0700</bug_when>
    <thetext>Created attachment 402962
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666790</commentid>
    <comment_count>2</comment_count>
      <attachid>402962</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-27 10:15:45 -0700</bug_when>
    <thetext>Comment on attachment 402962
proposed patch.

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

&gt; Source/WebCore/bridge/objc/WebScriptObject.mm:286
&gt; +    bool isSafe =  BindingSecurity::shouldAllowAccessToDOMWindow(_private-&gt;originRootObject-&gt;globalObject(), target-&gt;wrapped());

Will remove extra space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666791</commentid>
    <comment_count>3</comment_count>
      <attachid>402963</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-27 10:27:06 -0700</bug_when>
    <thetext>Created attachment 402963
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666796</commentid>
    <comment_count>4</comment_count>
      <attachid>402963</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-27 10:42:56 -0700</bug_when>
    <thetext>Comment on attachment 402963
proposed patch.

r=me if the bots are happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666797</commentid>
    <comment_count>5</comment_count>
      <attachid>402963</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-27 10:57:05 -0700</bug_when>
    <thetext>Comment on attachment 402963
proposed patch.

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

&gt; Source/WebCore/bridge/objc/WebScriptObject.mm:287
&gt; +    bool isSafe = BindingSecurity::shouldAllowAccessToDOMWindow(_private-&gt;originRootObject-&gt;globalObject(), target-&gt;wrapped());
&gt; +    CLEAR_AND_RETURN_IF_EXCEPTION(scope, false);

This call to BindingSecurity::shouldAllowAccessToDOMWindow() will never throw because it uses a default argument SecurityReportingOption = LogSecurityError.  I&apos;ll change this CLEAR_AND_RETURN_IF_EXCEPTION to an EXCEPTION_ASSERT_UNUSED to assert that no exception is thrown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666799</commentid>
    <comment_count>6</comment_count>
      <attachid>402966</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-27 11:02:35 -0700</bug_when>
    <thetext>Created attachment 402966
patch for landing.

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666812</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-27 15:14:09 -0700</bug_when>
    <thetext>Committed r263628: &lt;https://trac.webkit.org/changeset/263628&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402966.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402962</attachid>
            <date>2020-06-27 10:11:46 -0700</date>
            <delta_ts>2020-06-27 10:27:06 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-213681.patch</filename>
            <type>text/plain</type>
            <size>18957</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzYyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA2LTI3ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbWlzc2luZyBleGNlcHRpb24g
Y2hlY2sgaW4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2ODEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzY0ODA0ODkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL21pc3NpbmctZXhjZXB0aW9uLWNoZWNrLWluLUlE
QktleS5odG1sCisKKyAgICAgICAgQWxzbyBmaXhlZCB1cCBtaXNjZWxsYW5lb3VzIG90aGVyIGV4
Y2VwdGlvbiBjaGVjayByZWxhdGVkIGNvZGUgdG8gZW5hYmxlIHRoZQorICAgICAgICBuZXcgdGVz
dCB0byBydW4gd2l0aCBleGNlcHRpb24gY2hlY2sgdmFsaWRhdGlvbi4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlSURCS2V5RnJvbVZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmdT
ZWN1cml0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFs
bG93QWNjZXNzVG9ET01XaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnVwZGF0ZURvY3Vt
ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V2luZG93OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjppbml0
U2NyaXB0Rm9yV2luZG93UHJveHkpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5p
dGlvbik6CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlT3BlcmF0aW9uQm9keURlZmluaXRpb24pOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyR2V0dGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhj
aXRpbmdGdW5jdGlvbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2Jq
ZWN0UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3ZlcmxvYWREaXNwYXRjaGVyKToK
KyAgICAgICAgKiBicmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICgtW1dl
YlNjcmlwdE9iamVjdCBfaXNTYWZlU2NyaXB0XSk6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJD
b3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjppbmplY3RJ
bnRlcm5hbHNPYmplY3QpOgorCiAyMDIwLTA2LTI3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmVxdWlyZSA8Zm9ybT4gdG8gYmUgY29ubmVjdGVkCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAko
cmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGlu
Z1V0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Nyw2ICsxODcsOCBAQCBzdGF0aWMg
Y29uc3Qgc2l6ZV90IG1heGltdW1EZXB0aCA9IDIwMDA7CiBzdGF0aWMgUmVmUHRyPElEQktleT4g
Y3JlYXRlSURCS2V5RnJvbVZhbHVlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlLCBWZWN0b3I8SlNBcnJheSo+JiBzdGFjaykKIHsKICAgICBWTSYgdm0g
PSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOworCiAgICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkgJiYgIXN0ZDo6aXNuYW4o
dmFsdWUudG9OdW1iZXIoJmxleGljYWxHbG9iYWxPYmplY3QpKSkKICAgICAgICAgcmV0dXJuIElE
QktleTo6Y3JlYXRlTnVtYmVyKHZhbHVlLnRvTnVtYmVyKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSk7
CiAKQEAgLTIxNSw2ICsyMTcsNyBAQCBzdGF0aWMgUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5
RnJvbVZhCiAgICAgICAgICAgICBWZWN0b3I8UmVmUHRyPElEQktleT4+IHN1YmtleXM7CiAgICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAg
ICAgICAgSlNWYWx1ZSBpdGVtID0gYXJyYXktPmdldEluZGV4KCZsZXhpY2FsR2xvYmFsT2JqZWN0
LCBpKTsKKyAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
ICAgICAgICAgICAgICAgIFJlZlB0cjxJREJLZXk+IHN1YmtleSA9IGNyZWF0ZUlEQktleUZyb21W
YWx1ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBpdGVtLCBzdGFjayk7CiAgICAgICAgICAgICAgICAg
aWYgKCFzdWJrZXkpCiAgICAgICAgICAgICAgICAgICAgIHN1YmtleXMuYXBwZW5kKElEQktleTo6
Y3JlYXRlSW52YWxpZCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
QmluZGluZ1NlY3VyaXR5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUJpbmRpbmdTZWN1cml0eS5jcHAJKHJldmlzaW9uIDI2MzYxOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZ1NlY3VyaXR5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODcsNyArODcsMTIgQEAgYm9vbCBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93
QWNjZXNzVAogCiBib29sIEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdp
bmRvdyhKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgRE9NV2luZG93JiBnbG9i
YWxPYmplY3QsIFN0cmluZyYgbWVzc2FnZSkKIHsKLSAgICBpZiAoQmluZGluZ1NlY3VyaXR5Ojpz
aG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxP
YmplY3QsIERvTm90UmVwb3J0U2VjdXJpdHlFcnJvcikpCisgICAgVk0mIHZtID0gbGV4aWNhbEds
b2JhbE9iamVjdC52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZt
KTsKKworICAgIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3Vs
ZEFsbG93QWNjZXNzVG9ET01XaW5kb3coJmxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dCwgRG9Ob3RSZXBvcnRTZWN1cml0eUVycm9yKTsKKyAgICBFWENFUFRJT05fQVNTRVJUKCFzY29w
ZS5leGNlcHRpb24oKSk7CisgICAgaWYgKHNob3VsZEFsbG93QWNjZXNzKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBtZXNzYWdlID0gZ2xvYmFsT2JqZWN0LmNyb3NzRG9tYWluQWNjZXNzRXJy
b3JNZXNzYWdlKGFjdGl2ZURPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSW5jbHVkZVRh
cmdldE9yaWdpbjo6Tm8pOwogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAkocmV2aXNpb24gMjYzNjE5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTI2LDEwICsxMjYsMTQgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OnVwZGF0
ZURvY3VtZW50KCkKICAgICAvLyBSZWFjaGluZyBoZXJlLCB0aGUgYXR0cmlidXRlcyBvZiAiZG9j
dW1lbnQiIHByb3BlcnR5IHNob3VsZCBiZSBuZXZlciBjaGFuZ2VkLgogICAgIEFTU0VSVChtX3dy
YXBwZWQtPmRvY3VtZW50KCkpOwogICAgIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0ID0gdGhpczsKKyAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOworICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKwogICAgIGJvb2wgc2hvdWxk
VGhyb3dSZWFkT25seUVycm9yID0gZmFsc2U7CiAgICAgYm9vbCBpZ25vcmVSZWFkT25seUVycm9y
cyA9IHRydWU7CiAgICAgYm9vbCBwdXRSZXN1bHQgPSBmYWxzZTsKLSAgICBzeW1ib2xUYWJsZVB1
dFRvdWNoV2F0Y2hwb2ludFNldCh0aGlzLCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBzdGF0aWNfY2Fz
dDxKU1ZNQ2xpZW50RGF0YSo+KGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCkuY2xpZW50RGF0YSkt
PmJ1aWx0aW5OYW1lcygpLmRvY3VtZW50UHVibGljTmFtZSgpLCB0b0pTKGxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXMsIG1fd3JhcHBlZC0+ZG9jdW1lbnQoKSksIHNob3VsZFRocm93UmVhZE9ubHlF
cnJvciwgaWdub3JlUmVhZE9ubHlFcnJvcnMsIHB1dFJlc3VsdCk7CisgICAgc3ltYm9sVGFibGVQ
dXRUb3VjaFdhdGNocG9pbnRTZXQodGhpcywgbGV4aWNhbEdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCkuZG9jdW1l
bnRQdWJsaWNOYW1lKCksIHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpcywgbV93cmFwcGVk
LT5kb2N1bWVudCgpKSwgc2hvdWxkVGhyb3dSZWFkT25seUVycm9yLCBpZ25vcmVSZWFkT25seUVy
cm9ycywgcHV0UmVzdWx0KTsKKyAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24o
KSk7CiB9CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpTRE9NV2luZG93QmFzZTo6c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lvbiAyNjM2MTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5OSw3ICsyOTksNyBAQCBib29sIEpTRE9NV2luZG93OjpwdXQoSlNDZWxsKiBjZWxs
LCBKU0dsCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6
cHV0KHRoaXNPYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgQmFzZTo6cHV0KHRoaXNPYmpl
Y3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpKTsKIH0K
IAogYm9vbCBKU0RPTVdpbmRvdzo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwg
Ym9vbCBzaG91bGRUaHJvdykKQEAgLTQxOCwxNiArNDE4LDE5IEBAIHZvaWQgSlNET01XaW5kb3c6
OmdldE93blByb3BlcnR5TmFtZXMoSlMKIGJvb2wgSlNET01XaW5kb3c6OmRlZmluZU93blByb3Bl
cnR5KEpTQzo6SlNPYmplY3QqIG9iamVjdCwgSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBKU0M6OlBy
b3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKIHsKICAgICBK
U0M6OlZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCiAgICAgSlNET01XaW5kb3cqIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpOwogICAgIC8vIE9ubHkgYWxsb3cgZGVmaW5p
bmcgcHJvcGVydGllcyBpbiB0aGlzIHdheSBieSBmcmFtZXMgaW4gdGhlIHNhbWUgb3JpZ2luLCBh
cyBpdCBhbGxvd3Mgc2V0dGVycyB0byBiZSBpbnRyb2R1Y2VkLgogICAgIGlmICghQmluZGluZ1Nl
Y3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNPYmplY3QtPndyYXBwZWQoKSwgVGhyb3dTZWN1cml0eUVycm9yKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIGZhbHNlKTsKIAor
ICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpKTsKICAgICAvLyBEb24ndCBh
bGxvdyBzaGFkb3dpbmcgbG9jYXRpb24gdXNpbmcgYWNjZXNzb3IgcHJvcGVydGllcy4KICAgICBp
ZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpICYmIHByb3BlcnR5TmFtZSA9PSBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAibG9jYXRpb24iKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KHRoaXNPYmplY3QsIGxl
eGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cp
OworICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgQmFzZTo6ZGVmaW5lT3duUHJvcGVydHko
dGhpc09iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
LCBzaG91bGRUaHJvdykpOwogfQogCiBKU1ZhbHVlIEpTRE9NV2luZG93OjpnZXRQcm90b3R5cGUo
SlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNw
cAkocmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NCw4ICsyNjQsMTEgQEAgdm9pZCBT
Y3JpcHRDb250cm9sbGVyOjpnZXRBbGxXb3JsZHMoVmVjdAogdm9pZCBTY3JpcHRDb250cm9sbGVy
Ojppbml0U2NyaXB0Rm9yV2luZG93UHJveHkoSlNXaW5kb3dQcm94eSYgd2luZG93UHJveHkpCiB7
CiAgICAgYXV0byYgd29ybGQgPSB3aW5kb3dQcm94eS53b3JsZCgpOworICAgIEpTQzo6Vk0mIHZt
ID0gd29ybGQudm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7
CiAKICAgICBqc0Nhc3Q8SlNET01XaW5kb3cqPih3aW5kb3dQcm94eS53aW5kb3coKSktPnVwZGF0
ZURvY3VtZW50KCk7CisgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkpOwog
CiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKSkKICAgICAg
ICAgZG9jdW1lbnQtPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kaWRDcmVhdGVXaW5kb3dQcm94
eSh3aW5kb3dQcm94eSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkK
QEAgLTQ5NzQsMTAgKzQ5NzQsMTIgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlR2V0dGVyQm9keURl
ZmluaXRpbwogICAgICAgICAhJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RG9Ob3RD
aGVja1NlY3VyaXR5T25HZXR0ZXJ9KSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RP
TUJpbmRpbmdTZWN1cml0eS5oIiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgaWYgKCRpbnRlcmZh
Y2UtPnR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RP
TVdpbmRvdygmbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC53cmFwcGVkKCksIFRocm93
U2VjdXJpdHlFcnJvcikpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBib29sIHNob3VsZEFsbG93QWNjZXNzID0gQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0Fj
Y2Vzc1RvRE9NV2luZG93KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LndyYXBwZWQo
KSwgVGhyb3dTZWN1cml0eUVycm9yKTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRB
bGxvd0FjY2Vzc1RvRE9NV2luZG93KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0Lndy
YXBwZWQoKS53aW5kb3coKSwgVGhyb3dTZWN1cml0eUVycm9yKSlcbiIpOworICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5n
U2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coJmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNPYmplY3Qud3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpO1xu
Iik7CiAgICAgICAgIH0KKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEVYQ0VQVElP
Tl9BU1NFUlQoIXRocm93U2NvcGUuZXhjZXB0aW9uKCkgfHwgIXNob3VsZEFsbG93QWNjZXNzKTtc
biIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCFzaG91bGRBbGxvd0Fj
Y2VzcylcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpO1xuIik7CiAgICAgfQogICAgIApAQCAtNTEwNywxMCArNTEwOSwxMiBAQCBz
dWIgR2VuZXJhdGVBdHRyaWJ1dGVTZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgaWYgKCRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NoZWNrU2VjdXJpdHl9ICYmICEkYXR0cmlidXRlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntEb05vdENoZWNrU2VjdXJpdHl9ICYmICEkYXR0cmlidXRlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntEb05vdENoZWNrU2VjdXJpdHlPblNldHRlcn0pIHsKICAgICAg
ICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQmluZGluZ1NlY3VyaXR5LmgiLCAkY29uZGl0aW9u
YWwpOwogICAgICAgICBpZiAoJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiRE9NV2luZG93Iikg
ewotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICghQmluZGluZ1NlY3Vy
aXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aGlzT2JqZWN0LndyYXBwZWQoKSwgVGhyb3dTZWN1cml0eUVycm9yKSlcbiIpOworICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5k
aW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coJmxleGljYWxHbG9iYWxP
YmplY3QsIHRoaXNPYmplY3Qud3JhcHBlZCgpLCBUaHJvd1NlY3VyaXR5RXJyb3IpO1xuIik7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYg
KCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coJmxleGljYWxH
bG9iYWxPYmplY3QsIHRoaXNPYmplY3Qud3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5
RXJyb3IpKVxuIik7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYm9vbCBz
aG91bGRBbGxvd0FjY2VzcyA9IEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RP
TVdpbmRvdygmbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC53cmFwcGVkKCkud2luZG93
KCksIFRocm93U2VjdXJpdHlFcnJvcik7XG4iKTsKICAgICAgICAgfQorICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgRVhDRVBUSU9OX0FTU0VSVCghdGhyb3dTY29wZS5leGNlcHRpb24o
KSB8fCAhc2hvdWxkQWxsb3dBY2Nlc3MpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBpZiAoIXNob3VsZEFsbG93QWNjZXNzKVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIik7CiAgICAgfQogICAgIApAQCAtNTMy
OCwxMiArNTMzMiwxMyBAQCBzdWIgR2VuZXJhdGVPcGVyYXRpb25Cb2R5RGVmaW5pdGlvbgogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01CaW5kaW5nU2Vj
dXJpdHkuaCIsICRjb25kaXRpb25hbCk7CiAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+dHlw
ZS0+bmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdp
bmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYXN0ZWRUaGlzLT53cmFwcGVkKCksIFRocm93U2Vj
dXJpdHlFcnJvcikpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYm9vbCBzaG91bGRBbGxvd0FjY2Vz
cyA9IEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBjYXN0ZWRUaGlzLT53cmFwcGVkKCksIFRocm93U2VjdXJpdHlFcnJvcik7
XG4iKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9N
V2luZG93KGxleGljYWxHbG9iYWxPYmplY3QsIGNhc3RlZFRoaXMtPndyYXBwZWQoKS53aW5kb3co
KSwgVGhyb3dTZWN1cml0eUVycm9yKSlcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtc
biIpOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBib29sIHNob3Vs
ZEFsbG93QWNjZXNzID0gQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2lu
ZG93KGxleGljYWxHbG9iYWxPYmplY3QsIGNhc3RlZFRoaXMtPndyYXBwZWQoKS53aW5kb3coKSwg
VGhyb3dTZWN1cml0eUVycm9yKTtcbiIpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIEVYQ0VQVElPTl9BU1NFUlQoIXRocm93U2NvcGUuZXhjZXB0
aW9uKCkgfHwgIXNob3VsZEFsbG93QWNjZXNzKTtcbiIpOworICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIGlmICghc2hvdWxkQWxsb3dBY2Nlc3MpXG4iKTsKKyAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1Vu
ZGVmaW5lZCgpKTtcbiIpOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
QWN0aXZlRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxOCw3ICsyMTgsOSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0
QWN0aXZlRE9NT2JqCiB7CiAgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwogICAgIFVOVVNF
RF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6
c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdygmbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09i
amVjdC53cmFwcGVkKCkud2luZG93KCksIFRocm93U2VjdXJpdHlFcnJvcikpCisgICAgYm9vbCBz
aG91bGRBbGxvd0FjY2VzcyA9IEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RP
TVdpbmRvdygmbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC53cmFwcGVkKCkud2luZG93
KCksIFRocm93U2VjdXJpdHlFcnJvcik7CisgICAgRVhDRVBUSU9OX0FTU0VSVCghdGhyb3dTY29w
ZS5leGNlcHRpb24oKSB8fCAhc2hvdWxkQWxsb3dBY2Nlc3MpOworICAgIGlmICghc2hvdWxkQWxs
b3dBY2Nlc3MpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIGF1dG8mIGltcGwg
PSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlM8SURMTG9u
Zz4obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgaW1wbC5leGNpdGluZ0F0dHIoKSk7
CkBAIC0yMzUsNyArMjM3LDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdAogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBVTlVTRURf
UEFSQU0oY2FsbEZyYW1lKTsKICAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgaWYg
KCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEds
b2JhbE9iamVjdCwgY2FzdGVkVGhpcy0+d3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5
RXJyb3IpKQorICAgIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNo
b3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVkVGhp
cy0+d3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpOworICAgIEVYQ0VQVElP
Tl9BU1NFUlQoIXRocm93U2NvcGUuZXhjZXB0aW9uKCkgfHwgIXNob3VsZEFsbG93QWNjZXNzKTsK
KyAgICBpZiAoIXNob3VsZEFsbG93QWNjZXNzKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVk
KCk7CiAgICAgaWYgKFVOTElLRUxZKGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCkBA
IC0zMDcsNyArMzExLDkgQEAgc3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dAogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBVTlVTRURfUEFS
QU0oY2FsbEZyYW1lKTsKICAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgaWYgKCFC
aW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2Jh
bE9iamVjdCwgY2FzdGVkVGhpcy0+d3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJy
b3IpKQorICAgIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3Vs
ZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVkVGhpcy0+
d3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpOworICAgIEVYQ0VQVElPTl9B
U1NFUlQoIXRocm93U2NvcGUuZXhjZXB0aW9uKCkgfHwgIXNob3VsZEFsbG93QWNjZXNzKTsKKyAg
ICBpZiAoIXNob3VsZEFsbG93QWNjZXNzKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogICAgIFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCk7CiAgICAgVU5VU0VEX1BBUkFNKHZtKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0JKHJldmlzaW9uIDI2MzYxOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjc1LDEwICsyNzUsMTcgQEAgLSAoQk9PTClfaXNTYWZlU2NyaXB0CiAgICAgLy8gSXQncyBu
b3QgYWN0dWFsbHkgY29ycmVjdCB0byBjYWxsIHNob3VsZEFsbG93QWNjZXNzVG9GcmFtZSBpbiB0
aGlzIHdheSBiZWNhdXNlCiAgICAgLy8gSlNET01XaW5kb3dCYXNlKiBpc24ndCB0aGUgcmlnaHQg
b2JqZWN0IHRvIHJlcHJlc2VudCB0aGUgY3VycmVudGx5IGV4ZWN1dGluZwogICAgIC8vIEphdmFT
Y3JpcHQuIEluc3RlYWQsIHdlIHNob3VsZCB1c2UgSlNHbG9iYWxPYmplY3QsIGxpa2Ugd2UgZG8g
ZWxzZXdoZXJlLgotICAgIGF1dG8qIHRhcmdldCA9IEpTQzo6anNEeW5hbWljQ2FzdDxKU0RPTVdp
bmRvd0Jhc2UqPihyb290LT5nbG9iYWxPYmplY3QoKS0+dm0oKSwgcm9vdC0+Z2xvYmFsT2JqZWN0
KCkpOworICAgIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHJvb3QtPmdsb2Jh
bE9iamVjdCgpOworICAgIEpTQzo6Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKworICAgIGF1dG8qIHRhcmdldCA9
IEpTQzo6anNEeW5hbWljQ2FzdDxKU0RPTVdpbmRvd0Jhc2UqPih2bSwgZ2xvYmFsT2JqZWN0KTsK
ICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBCaW5k
aW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coX3ByaXZhdGUtPm9yaWdp
blJvb3RPYmplY3QtPmdsb2JhbE9iamVjdCgpLCB0YXJnZXQtPndyYXBwZWQoKSk7CisgICAgCisg
ICAgYm9vbCBpc1NhZmUgPSAgQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9N
V2luZG93KF9wcml2YXRlLT5vcmlnaW5Sb290T2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgdGFyZ2V0
LT53cmFwcGVkKCkpOworICAgIENMRUFSX0FORF9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBm
YWxzZSk7CisgICAgcmV0dXJuIGlzU2FmZTsKIH0KIAogLSAoSlNHbG9iYWxDb250ZXh0UmVmKV9n
bG9iYWxDb250ZXh0UmVmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVU
ZXN0U3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwCShyZXZpc2lvbiAyNjM2MTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4
LDYgKzU4LDcgQEAgdm9pZCBpbmplY3RJbnRlcm5hbHNPYmplY3QoSlNDb250ZXh0UmVmIAogewog
ICAgIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gdG9KUyhjb250ZXh0KTsK
ICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAg
ICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IHNjcmlwdENvbnRleHQgPSBnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
QEAgLTY2LDYgKzY3LDcgQEAgdm9pZCBpbmplY3RJbnRlcm5hbHNPYmplY3QoSlNDb250ZXh0UmVm
IAogICAgICAgICBPcHRpb25zOjp1c2VEb2xsYXJWTSgpID0gdHJ1ZTsKICAgICAgICAgZ2xvYmFs
T2JqZWN0LT5leHBvc2VEb2xsYXJWTSh2bSk7CiAgICAgfQorICAgIEVYQ0VQVElPTl9BU1NFUlQo
IXNjb3BlLmV4Y2VwdGlvbigpKTsKIH0KIAogdm9pZCByZXNldEludGVybmFsc09iamVjdChKU0Nv
bnRleHRSZWYgY29udGV4dCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzYxOSkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA2LTI3
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbWlzc2luZyBl
eGNlcHRpb24gY2hlY2sgaW4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKCkuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2ODEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzY0ODA0ODkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2st
aW4tSURCS2V5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2staW4tSURCS2V5Lmh0bWw6IEFkZGVkLgorCiAyMDIw
LTA2LTI2ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dMSUJdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9u
cyBhZnRlciByMjYzNjA5LgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbWlz
c2luZy1leGNlcHRpb24tY2hlY2staW4tSURCS2V5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9taXNzaW5nLWV4Y2VwdGlvbi1jaGVjay1p
bi1JREJLZXktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21pc3NpbmctZXhjZXB0aW9uLWNoZWNrLWluLUlEQktleS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IFR5cGVF
cnJvcjogVHlwZSBlcnJvcgorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg4CisgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg4CisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4MApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2staW4tSURCS2V5Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2staW4t
SURCS2V5Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2staW4tSURCS2V5Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGpzY09wdGlvbnM9LS12YWxpZGF0ZUV4Y2VwdGlvbkNoZWNrcz10cnVlLGR1bXBTaW11bGF0ZWRU
aHJvd3M9dHJ1ZSBdIC0tPgorCis8c2NyaXB0PgorbGV0IGEgPSBbXTsKK09iamVjdC5kZWZpbmVQ
cm9wZXJ0eShhLCAwLCB7CisgICAgZ2V0OiBEYXRlLnByb3RvdHlwZS5nZXRTZWNvbmRzCit9KTsK
K0lEQktleVJhbmdlLm9ubHkoYSk7Cis8L3NjcmlwdD4K
</data>
<flag name="review"
          id="418358"
          type_id="1"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402963</attachid>
            <date>2020-06-27 10:27:06 -0700</date>
            <delta_ts>2020-06-27 11:02:35 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-213681.patch</filename>
            <type>text/plain</type>
            <size>21008</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzYyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA2LTI3ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbWlzc2luZyBleGNlcHRpb24g
Y2hlY2sgaW4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2ODEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzY0ODA0ODkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL21pc3NpbmctZXhjZXB0aW9uLWNoZWNrLWluLUlE
QktleS5odG1sCisKKyAgICAgICAgQWxzbyBmaXhlZCB1cCBtaXNjZWxsYW5lb3VzIG90aGVyIGV4
Y2VwdGlvbiBjaGVjayByZWxhdGVkIGNvZGUgdG8gZW5hYmxlIHRoZQorICAgICAgICBuZXcgdGVz
dCB0byBydW4gd2l0aCBleGNlcHRpb24gY2hlY2sgdmFsaWRhdGlvbi4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlSURCS2V5RnJvbVZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmdT
ZWN1cml0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFs
bG93QWNjZXNzVG9ET01XaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnVwZGF0ZURvY3Vt
ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V2luZG93OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjppbml0
U2NyaXB0Rm9yV2luZG93UHJveHkpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5p
dGlvbik6CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlT3BlcmF0aW9uQm9keURlZmluaXRpb24pOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyR2V0dGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhj
aXRpbmdGdW5jdGlvbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2Jq
ZWN0UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3ZlcmxvYWREaXNwYXRjaGVyKToK
KyAgICAgICAgKiBicmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICgtW1dl
YlNjcmlwdE9iamVjdCBfaXNTYWZlU2NyaXB0XSk6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJD
b3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjppbmplY3RJ
bnRlcm5hbHNPYmplY3QpOgorCiAyMDIwLTA2LTI3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmVxdWlyZSA8Zm9ybT4gdG8gYmUgY29ubmVjdGVkCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAko
cmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGlu
Z1V0aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgTWljaGFlbCBQcnVldHQgPG1pY2hhZWxANjhrLm9yZz4KLSAqIENvcHly
aWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg3LDYgKzE4Nyw4IEBAIHN0YXRpYyBj
b25zdCBzaXplX3QgbWF4aW11bURlcHRoID0gMjAwMDsKIHN0YXRpYyBSZWZQdHI8SURCS2V5PiBj
cmVhdGVJREJLZXlGcm9tVmFsdWUoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVmFsdWUgdmFsdWUsIFZlY3RvcjxKU0FycmF5Kj4mIHN0YWNrKQogewogICAgIFZNJiB2bSA9
IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CisKICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSAmJiAhc3RkOjppc25hbih2
YWx1ZS50b051bWJlcigmbGV4aWNhbEdsb2JhbE9iamVjdCkpKQogICAgICAgICByZXR1cm4gSURC
S2V5OjpjcmVhdGVOdW1iZXIodmFsdWUudG9OdW1iZXIoJmxleGljYWxHbG9iYWxPYmplY3QpKTsK
IApAQCAtMjE1LDYgKzIxNyw3IEBAIHN0YXRpYyBSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlG
cm9tVmEKICAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8SURCS2V5Pj4gc3Via2V5czsKICAgICAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAg
ICAgICBKU1ZhbHVlIGl0ZW0gPSBhcnJheS0+Z2V0SW5kZXgoJmxleGljYWxHbG9iYWxPYmplY3Qs
IGkpOworICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAg
ICAgICAgICAgICAgICAgUmVmUHRyPElEQktleT4gc3Via2V5ID0gY3JlYXRlSURCS2V5RnJvbVZh
bHVlKGxleGljYWxHbG9iYWxPYmplY3QsIGl0ZW0sIHN0YWNrKTsKICAgICAgICAgICAgICAgICBp
ZiAoIXN1YmtleSkKICAgICAgICAgICAgICAgICAgICAgc3Via2V5cy5hcHBlbmQoSURCS2V5Ojpj
cmVhdGVJbnZhbGlkKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nU2VjdXJpdHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQmluZGluZ1NlY3VyaXR5LmNwcAkocmV2aXNpb24gMjYzNjE5KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nU2VjdXJpdHkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJy
aSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwNC0yMDExLCAy
MDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJp
Z2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgogICogIENvcHlyaWdo
dCAoQykgMjAxMyBNaWNoYWVsIFBydWV0dCA8bWljaGFlbEA2OGsub3JnPgogICoKQEAgLTg3LDcg
Kzg3LDEyIEBAIGJvb2wgQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1QKIAogYm9v
bCBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIERPTVdpbmRvdyYgZ2xvYmFsT2JqZWN0LCBTdHJp
bmcmIG1lc3NhZ2UpCiB7Ci0gICAgaWYgKEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nl
c3NUb0RPTVdpbmRvdygmbGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBEb05vdFJl
cG9ydFNlY3VyaXR5RXJyb3IpKQorICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0o
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisKKyAgICBib29s
IHNob3VsZEFsbG93QWNjZXNzID0gQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1Rv
RE9NV2luZG93KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIERvTm90UmVwb3J0
U2VjdXJpdHlFcnJvcik7CisgICAgRVhDRVBUSU9OX0FTU0VSVF9VTlVTRUQoc2NvcGUsICFzY29w
ZS5leGNlcHRpb24oKSk7CisgICAgaWYgKHNob3VsZEFsbG93QWNjZXNzKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBtZXNzYWdlID0gZ2xvYmFsT2JqZWN0LmNyb3NzRG9tYWluQWNjZXNzRXJy
b3JNZXNzYWdlKGFjdGl2ZURPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSW5jbHVkZVRh
cmdldE9yaWdpbjo6Tm8pOwogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAkocmV2aXNpb24gMjYzNjE5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAyMDAwIEhhcnJp
IFBvcnRlbiAocG9ydGVuQGtkZS5vcmcpCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2IEpvbiBTaGll
ciAoanNoaWVyQGlhc3RhdGUuZWR1KQotICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNldmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNldmVkLgogICogIENvcHlyaWdodCAoQykgMjAwNiBBbGV4
ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQogICogIENvcHlyaWdodCAoYykgMjAxNSBD
YW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTI2LDEwICsxMjYsMTQgQEAg
dm9pZCBKU0RPTVdpbmRvd0Jhc2U6OnVwZGF0ZURvY3VtZW50KCkKICAgICAvLyBSZWFjaGluZyBo
ZXJlLCB0aGUgYXR0cmlidXRlcyBvZiAiZG9jdW1lbnQiIHByb3BlcnR5IHNob3VsZCBiZSBuZXZl
ciBjaGFuZ2VkLgogICAgIEFTU0VSVChtX3dyYXBwZWQtPmRvY3VtZW50KCkpOwogICAgIEpTR2xv
YmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gdGhpczsKKyAgICBWTSYgdm0gPSBsZXhp
Y2FsR2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1ND
T1BFKHZtKTsKKwogICAgIGJvb2wgc2hvdWxkVGhyb3dSZWFkT25seUVycm9yID0gZmFsc2U7CiAg
ICAgYm9vbCBpZ25vcmVSZWFkT25seUVycm9ycyA9IHRydWU7CiAgICAgYm9vbCBwdXRSZXN1bHQg
PSBmYWxzZTsKLSAgICBzeW1ib2xUYWJsZVB1dFRvdWNoV2F0Y2hwb2ludFNldCh0aGlzLCBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KGxleGljYWxHbG9i
YWxPYmplY3QtPnZtKCkuY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLmRvY3VtZW50UHVibGlj
TmFtZSgpLCB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXMsIG1fd3JhcHBlZC0+ZG9jdW1l
bnQoKSksIHNob3VsZFRocm93UmVhZE9ubHlFcnJvciwgaWdub3JlUmVhZE9ubHlFcnJvcnMsIHB1
dFJlc3VsdCk7CisgICAgc3ltYm9sVGFibGVQdXRUb3VjaFdhdGNocG9pbnRTZXQodGhpcywgbGV4
aWNhbEdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnRE
YXRhKS0+YnVpbHRpbk5hbWVzKCkuZG9jdW1lbnRQdWJsaWNOYW1lKCksIHRvSlMobGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpcywgbV93cmFwcGVkLT5kb2N1bWVudCgpKSwgc2hvdWxkVGhyb3dSZWFk
T25seUVycm9yLCBpZ25vcmVSZWFkT25seUVycm9ycywgcHV0UmVzdWx0KTsKKyAgICBFWENFUFRJ
T05fQVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2VwdGlvbigpKTsKIH0KIAogU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogSlNET01XaW5kb3dCYXNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAJKHJldmlzaW9uIDI2MzYxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOTksNyArMjk5LDcgQEAgYm9vbCBKU0RPTVdp
bmRvdzo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2Nv
cGUsIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBzbG90KSk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3c6OnB1dEJ5SW5kZXgoSlND
ZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQg
aW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC00MTgsMTYgKzQxOCwx
OSBAQCB2b2lkIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTCiBib29sIEpTRE9N
V2luZG93OjpkZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkpTT2JqZWN0KiBvYmplY3QsIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6UHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgY29uc3QgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGJvb2wg
c2hvdWxkVGhyb3cpCiB7CiAgICAgSlNDOjpWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52
bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKwogICAgIEpT
RE9NV2luZG93KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRE9NV2luZG93Kj4ob2JqZWN0KTsKICAg
ICAvLyBPbmx5IGFsbG93IGRlZmluaW5nIHByb3BlcnRpZXMgaW4gdGhpcyB3YXkgYnkgZnJhbWVz
IGluIHRoZSBzYW1lIG9yaWdpbiwgYXMgaXQgYWxsb3dzIHNldHRlcnMgdG8gYmUgaW50cm9kdWNl
ZC4KICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRv
dyhsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LT53cmFwcGVkKCksIFRocm93U2VjdXJp
dHlFcnJvcikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVU
VVJOKHNjb3BlLCBmYWxzZSk7CiAKKyAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRp
b24oKSk7CiAgICAgLy8gRG9uJ3QgYWxsb3cgc2hhZG93aW5nIGxvY2F0aW9uIHVzaW5nIGFjY2Vz
c29yIHByb3BlcnRpZXMuCiAgICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3Io
KSAmJiBwcm9wZXJ0eU5hbWUgPT0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImxvY2F0aW9u
IikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Q
cm9wZXJ0eSh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IsIHNob3VsZFRocm93KTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEJh
c2U6OmRlZmluZU93blByb3BlcnR5KHRoaXNPYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpKTsKIH0KIAogSlNWYWx1ZSBKU0RP
TVdpbmRvdzo6Z2V0UHJvdG90eXBlKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBs
ZXhpY2FsR2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDI2MzYxOSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NjQsOCArMjY0LDExIEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6Z2V0QWxsV29ybGRzKFZlY3QK
IHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdEZvcldpbmRvd1Byb3h5KEpTV2luZG93
UHJveHkmIHdpbmRvd1Byb3h5KQogewogICAgIGF1dG8mIHdvcmxkID0gd2luZG93UHJveHkud29y
bGQoKTsKKyAgICBKU0M6OlZNJiB2bSA9IHdvcmxkLnZtKCk7CisgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogCiAgICAganNDYXN0PEpTRE9NV2luZG93Kj4od2luZG93
UHJveHkud2luZG93KCkpLT51cGRhdGVEb2N1bWVudCgpOworICAgIEVYQ0VQVElPTl9BU1NFUlRf
VU5VU0VEKHNjb3BlLCAhc2NvcGUuZXhjZXB0aW9uKCkpOwogCiAgICAgaWYgKERvY3VtZW50KiBk
b2N1bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQtPmNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpLT5kaWRDcmVhdGVXaW5kb3dQcm94eSh3aW5kb3dQcm94eSk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQkocmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTQ5NzQsMTAgKzQ5NzQsMTIg
QEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlR2V0dGVyQm9keURlZmluaXRpbwogICAgICAgICAhJGF0
dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXJ9
KSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUJpbmRpbmdTZWN1cml0eS5oIiwg
JGNvbmRpdGlvbmFsKTsKICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRP
TVdpbmRvdyIpIHsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIUJp
bmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdygmbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc09iamVjdC53cmFwcGVkKCksIFRocm93U2VjdXJpdHlFcnJvcikpXG4iKTsK
KyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBib29sIHNob3VsZEFsbG93QWNj
ZXNzID0gQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KCZsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LndyYXBwZWQoKSwgVGhyb3dTZWN1cml0eUVycm9y
KTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93
KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LndyYXBwZWQoKS53aW5kb3coKSwgVGhy
b3dTZWN1cml0eUVycm9yKSlcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93
QWNjZXNzVG9ET01XaW5kb3coJmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3Qud3JhcHBl
ZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpO1xuIik7CiAgICAgICAgIH0KKyAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEVYQ0VQVElPTl9BU1NFUlQoIXRocm93U2NvcGUu
ZXhjZXB0aW9uKCkgfHwgIXNob3VsZEFsbG93QWNjZXNzKTtcbiIpOworICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgaWYgKCFzaG91bGRBbGxvd0FjY2VzcylcbiIpOwogICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpO1xuIik7CiAg
ICAgfQogICAgIApAQCAtNTEwNywxMCArNTEwOSwxMiBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVT
ZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0NoZWNrU2VjdXJpdHl9ICYmICEkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntE
b05vdENoZWNrU2VjdXJpdHl9ICYmICEkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntE
b05vdENoZWNrU2VjdXJpdHlPblNldHRlcn0pIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IkpTRE9NQmluZGluZ1NlY3VyaXR5LmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAgICBpZiAoJGlu
dGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vz
c1RvRE9NV2luZG93KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LndyYXBwZWQoKSwg
VGhyb3dTZWN1cml0eUVycm9yKSlcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFs
bG93QWNjZXNzVG9ET01XaW5kb3coJmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3Qud3Jh
cHBlZCgpLCBUaHJvd1NlY3VyaXR5RXJyb3IpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNo
b3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coJmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmpl
Y3Qud3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpKVxuIik7CisgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYm9vbCBzaG91bGRBbGxvd0FjY2VzcyA9IEJp
bmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdygmbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc09iamVjdC53cmFwcGVkKCkud2luZG93KCksIFRocm93U2VjdXJpdHlFcnJv
cik7XG4iKTsKICAgICAgICAgfQorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgRVhD
RVBUSU9OX0FTU0VSVCghdGhyb3dTY29wZS5leGNlcHRpb24oKSB8fCAhc2hvdWxkQWxsb3dBY2Nl
c3MpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIXNob3VsZEFs
bG93QWNjZXNzKVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0
dXJuIGZhbHNlO1xuIik7CiAgICAgfQogICAgIApAQCAtNTMyOCwxMiArNTMzMiwxMyBAQCBzdWIg
R2VuZXJhdGVPcGVyYXRpb25Cb2R5RGVmaW5pdGlvbgogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIsICRjb25kaXRpb25h
bCk7CiAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiRE9NV2luZG93
IikgewotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIUJpbmRp
bmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBjYXN0ZWRUaGlzLT53cmFwcGVkKCksIFRocm93U2VjdXJpdHlFcnJvcikpXG4iKTsKLSAg
ICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgYm9vbCBzaG91bGRBbGxvd0FjY2VzcyA9IEJpbmRpbmdTZWN1cml0eTo6
c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYXN0ZWRU
aGlzLT53cmFwcGVkKCksIFRocm93U2VjdXJpdHlFcnJvcik7XG4iKTsKICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICghQmlu
ZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxP
YmplY3QsIGNhc3RlZFRoaXMtPndyYXBwZWQoKS53aW5kb3coKSwgVGhyb3dTZWN1cml0eUVycm9y
KSlcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOworICAgICAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBib29sIHNob3VsZEFsbG93QWNjZXNzID0gQmluZGlu
Z1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxPYmpl
Y3QsIGNhc3RlZFRoaXMtPndyYXBwZWQoKS53aW5kb3coKSwgVGhyb3dTZWN1cml0eUVycm9yKTtc
biIpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IEVYQ0VQVElPTl9BU1NFUlQoIXRocm93U2NvcGUuZXhjZXB0aW9uKCkgfHwgIXNob3VsZEFsbG93
QWNjZXNzKTtcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICgh
c2hvdWxkQWxsb3dBY2Nlc3MpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOwogICAg
ICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAko
cmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw3ICsy
MTgsOSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFs
T2JqZWN0KTsKLSAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RP
TVdpbmRvdygmbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC53cmFwcGVkKCkud2luZG93
KCksIFRocm93U2VjdXJpdHlFcnJvcikpCisgICAgYm9vbCBzaG91bGRBbGxvd0FjY2VzcyA9IEJp
bmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdygmbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpc09iamVjdC53cmFwcGVkKCkud2luZG93KCksIFRocm93U2VjdXJpdHlFcnJv
cik7CisgICAgRVhDRVBUSU9OX0FTU0VSVCghdGhyb3dTY29wZS5leGNlcHRpb24oKSB8fCAhc2hv
dWxkQWxsb3dBY2Nlc3MpOworICAgIGlmICghc2hvdWxkQWxsb3dBY2Nlc3MpCiAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQo
KTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgaW1wbC5leGNpdGluZ0F0dHIoKSk7CkBAIC0yMzUsNyArMjM3LDkgQEAg
c3RhdGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFVOVVNFRF9QQVJB
TShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKICAg
ICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNo
b3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVkVGhp
cy0+d3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpKQorICAgIGJvb2wgc2hv
dWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01X
aW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVkVGhpcy0+d3JhcHBlZCgpLndpbmRvdygp
LCBUaHJvd1NlY3VyaXR5RXJyb3IpOworICAgIEVYQ0VQVElPTl9BU1NFUlQoIXRocm93U2NvcGUu
ZXhjZXB0aW9uKCkgfHwgIXNob3VsZEFsbG93QWNjZXNzKTsKKyAgICBpZiAoIXNob3VsZEFsbG93
QWNjZXNzKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwog
ICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CiAgICAgaWYgKFVOTElLRUxZ
KGNhbGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCkBAIC0zMDcsNyArMzExLDkgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFVOVVNFRF9QQVJBTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKICAgICBV
TlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3Vs
ZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVkVGhpcy0+
d3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpKQorICAgIGJvb2wgc2hvdWxk
QWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5k
b3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVkVGhpcy0+d3JhcHBlZCgpLndpbmRvdygpLCBU
aHJvd1NlY3VyaXR5RXJyb3IpOworICAgIEVYQ0VQVElPTl9BU1NFUlQoIXRocm93U2NvcGUuZXhj
ZXB0aW9uKCkgfHwgIXNob3VsZEFsbG93QWNjZXNzKTsKKyAgICBpZiAoIXNob3VsZEFsbG93QWNj
ZXNzKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
IFZNJiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgVU5VU0VEX1BB
UkFNKHZtKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVj
dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRP
YmplY3QubW0JKHJldmlzaW9uIDI2MzYxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpj
L1dlYlNjcmlwdE9iamVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3NSwxMCArMjc1LDE3IEBA
IC0gKEJPT0wpX2lzU2FmZVNjcmlwdAogICAgIC8vIEl0J3Mgbm90IGFjdHVhbGx5IGNvcnJlY3Qg
dG8gY2FsbCBzaG91bGRBbGxvd0FjY2Vzc1RvRnJhbWUgaW4gdGhpcyB3YXkgYmVjYXVzZQogICAg
IC8vIEpTRE9NV2luZG93QmFzZSogaXNuJ3QgdGhlIHJpZ2h0IG9iamVjdCB0byByZXByZXNlbnQg
dGhlIGN1cnJlbnRseSBleGVjdXRpbmcKICAgICAvLyBKYXZhU2NyaXB0LiBJbnN0ZWFkLCB3ZSBz
aG91bGQgdXNlIEpTR2xvYmFsT2JqZWN0LCBsaWtlIHdlIGRvIGVsc2V3aGVyZS4KLSAgICBhdXRv
KiB0YXJnZXQgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4ocm9vdC0+Z2xv
YmFsT2JqZWN0KCktPnZtKCksIHJvb3QtPmdsb2JhbE9iamVjdCgpKTsKKyAgICBKU0M6OkpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSByb290LT5nbG9iYWxPYmplY3QoKTsKKyAgICBKU0M6
OlZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9D
QVRDSF9TQ09QRSh2bSk7CisKKyAgICBhdXRvKiB0YXJnZXQgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8
SlNET01XaW5kb3dCYXNlKj4odm0sIGdsb2JhbE9iamVjdCk7CiAgICAgaWYgKCF0YXJnZXQpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gQmluZGluZ1NlY3VyaXR5OjpzaG91bGRB
bGxvd0FjY2Vzc1RvRE9NV2luZG93KF9wcml2YXRlLT5vcmlnaW5Sb290T2JqZWN0LT5nbG9iYWxP
YmplY3QoKSwgdGFyZ2V0LT53cmFwcGVkKCkpOworICAgIAorICAgIGJvb2wgaXNTYWZlID0gQmlu
ZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KF9wcml2YXRlLT5vcmln
aW5Sb290T2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgdGFyZ2V0LT53cmFwcGVkKCkpOworICAgIENM
RUFSX0FORF9SRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CisgICAgcmV0dXJuIGlz
U2FmZTsKIH0KIAogLSAoSlNHbG9iYWxDb250ZXh0UmVmKV9nbG9iYWxDb250ZXh0UmVmCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3Bw
CShyZXZpc2lvbiAyNjM2MTkpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVU
ZXN0U3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDE1IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU4LDYgKzU4LDcgQEAgdm9p
ZCBpbmplY3RJbnRlcm5hbHNPYmplY3QoSlNDb250ZXh0UmVmIAogewogICAgIEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gdG9KUyhjb250ZXh0KTsKICAgICBWTSYgdm0gPSBs
ZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENI
X1NDT1BFKHZtKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAgICAgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGxleGljYWxH
bG9iYWxPYmplY3QpOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdENvbnRleHQg
PSBnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKQEAgLTY2LDYgKzY3LDcg
QEAgdm9pZCBpbmplY3RJbnRlcm5hbHNPYmplY3QoSlNDb250ZXh0UmVmIAogICAgICAgICBPcHRp
b25zOjp1c2VEb2xsYXJWTSgpID0gdHJ1ZTsKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5leHBvc2VE
b2xsYXJWTSh2bSk7CiAgICAgfQorICAgIEVYQ0VQVElPTl9BU1NFUlRfVU5VU0VEKHNjb3BlLCAh
c2NvcGUuZXhjZXB0aW9uKCkpOwogfQogCiB2b2lkIHJlc2V0SW50ZXJuYWxzT2JqZWN0KEpTQ29u
dGV4dFJlZiBjb250ZXh0KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjYzNjE5KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDYtMjcg
IE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBtaXNzaW5nIGV4
Y2VwdGlvbiBjaGVjayBpbiBjcmVhdGVJREJLZXlGcm9tVmFsdWUoKS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzY4MQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjQ4MDQ4OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9taXNzaW5nLWV4Y2VwdGlvbi1jaGVjay1p
bi1JREJLZXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9taXNzaW5nLWV4Y2VwdGlvbi1jaGVjay1pbi1JREJLZXkuaHRtbDogQWRkZWQuCisKIDIwMjAt
MDYtMjYgIERpZWdvIFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R0xJQl0gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZy4gVXBkYXRlIHRlc3QgZXhwZWN0YXRpb25z
IGFmdGVyIHIyNjM2MDkuCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9taXNz
aW5nLWV4Y2VwdGlvbi1jaGVjay1pbi1JREJLZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21pc3NpbmctZXhjZXB0aW9uLWNoZWNrLWlu
LUlEQktleS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2staW4tSURCS2V5LWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogVHlwZUVy
cm9yOiBUeXBlIGVycm9yCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDgKKyAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDgKKyAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDc4NHgwCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9taXNzaW5nLWV4Y2VwdGlvbi1jaGVjay1pbi1JREJLZXkuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9taXNzaW5nLWV4Y2VwdGlvbi1jaGVjay1pbi1J
REJLZXkuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9taXNzaW5nLWV4Y2VwdGlvbi1jaGVjay1pbi1JREJLZXkuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
anNjT3B0aW9ucz0tLXZhbGlkYXRlRXhjZXB0aW9uQ2hlY2tzPXRydWUsZHVtcFNpbXVsYXRlZFRo
cm93cz10cnVlIF0gLS0+CisKKzxzY3JpcHQ+CitsZXQgYSA9IFtdOworT2JqZWN0LmRlZmluZVBy
b3BlcnR5KGEsIDAsIHsKKyAgICBnZXQ6IERhdGUucHJvdG90eXBlLmdldFNlY29uZHMKK30pOwor
SURCS2V5UmFuZ2Uub25seShhKTsKKzwvc2NyaXB0Pgo=
</data>
<flag name="review"
          id="418360"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402966</attachid>
            <date>2020-06-27 11:02:35 -0700</date>
            <delta_ts>2020-06-27 15:14:10 -0700</delta_ts>
            <desc>patch for landing.</desc>
            <filename>bug-213681.patch</filename>
            <type>text/plain</type>
            <size>21009</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzYyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA2LTI3ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbWlzc2luZyBleGNlcHRpb24g
Y2hlY2sgaW4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2ODEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzY0ODA0ODkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAg
IFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL21pc3NpbmctZXhjZXB0aW9uLWNoZWNrLWluLUlEQktl
eS5odG1sCisKKyAgICAgICAgQWxzbyBmaXhlZCB1cCBtaXNjZWxsYW5lb3VzIG90aGVyIGV4Y2Vw
dGlvbiBjaGVjayByZWxhdGVkIGNvZGUgdG8gZW5hYmxlIHRoZQorICAgICAgICBuZXcgdGVzdCB0
byBydW4gd2l0aCBleGNlcHRpb24gY2hlY2sgdmFsaWRhdGlvbi4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
SURCS2V5RnJvbVZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmdTZWN1
cml0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93
QWNjZXNzVG9ET01XaW5kb3cpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnVwZGF0ZURvY3VtZW50
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjppbml0U2Ny
aXB0Rm9yV2luZG93UHJveHkpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJCb2R5RGVmaW5pdGlv
bik6CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW9uKToKKyAg
ICAgICAgKEdlbmVyYXRlT3BlcmF0aW9uQm9keURlZmluaXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyR2V0dGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZUZ1bmN0aW9uRXhjaXRp
bmdGdW5jdGlvbkJvZHkpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0QWN0aXZlRE9NT2JqZWN0
UHJvdG90eXBlRnVuY3Rpb25PdmVybG9hZGVkTWV0aG9kT3ZlcmxvYWREaXNwYXRjaGVyKToKKyAg
ICAgICAgKiBicmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmplY3QubW06CisgICAgICAgICgtW1dlYlNj
cmlwdE9iamVjdCBfaXNTYWZlU2NyaXB0XSk6CisgICAgICAgICogdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZVRlc3RTdXBwb3J0OjppbmplY3RJbnRl
cm5hbHNPYmplY3QpOgorCiAyMDIwLTA2LTI3ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmVxdWlyZSA8Zm9ybT4gdG8gYmUgY29ubmVjdGVkCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAkocmV2
aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0
aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTIgTWljaGFlbCBQcnVldHQgPG1pY2hhZWxANjhrLm9yZz4KLSAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTg3LDYgKzE4Nyw4IEBAIHN0YXRpYyBjb25z
dCBzaXplX3QgbWF4aW11bURlcHRoID0gMjAwMDsKIHN0YXRpYyBSZWZQdHI8SURCS2V5PiBjcmVh
dGVJREJLZXlGcm9tVmFsdWUoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VmFsdWUgdmFsdWUsIFZlY3RvcjxKU0FycmF5Kj4mIHN0YWNrKQogewogICAgIFZNJiB2bSA9IGxl
eGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CisKICAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSAmJiAhc3RkOjppc25hbih2YWx1
ZS50b051bWJlcigmbGV4aWNhbEdsb2JhbE9iamVjdCkpKQogICAgICAgICByZXR1cm4gSURCS2V5
OjpjcmVhdGVOdW1iZXIodmFsdWUudG9OdW1iZXIoJmxleGljYWxHbG9iYWxPYmplY3QpKTsKIApA
QCAtMjE1LDYgKzIxNyw3IEBAIHN0YXRpYyBSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9t
VmEKICAgICAgICAgICAgIFZlY3RvcjxSZWZQdHI8SURCS2V5Pj4gc3Via2V5czsKICAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAg
ICBKU1ZhbHVlIGl0ZW0gPSBhcnJheS0+Z2V0SW5kZXgoJmxleGljYWxHbG9iYWxPYmplY3QsIGkp
OworICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAg
ICAgICAgICAgICAgUmVmUHRyPElEQktleT4gc3Via2V5ID0gY3JlYXRlSURCS2V5RnJvbVZhbHVl
KGxleGljYWxHbG9iYWxPYmplY3QsIGl0ZW0sIHN0YWNrKTsKICAgICAgICAgICAgICAgICBpZiAo
IXN1YmtleSkKICAgICAgICAgICAgICAgICAgICAgc3Via2V5cy5hcHBlbmQoSURCS2V5OjpjcmVh
dGVJbnZhbGlkKCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nU2VjdXJpdHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQmluZGluZ1NlY3VyaXR5LmNwcAkocmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nU2VjdXJpdHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDYgKzEsNiBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQ
b3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwNC0yMDExLCAyMDEz
LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgQ29weXJpZ2h0
IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgogICogIENvcHlyaWdodCAo
QykgMjAxMyBNaWNoYWVsIFBydWV0dCA8bWljaGFlbEA2OGsub3JnPgogICoKQEAgLTg3LDcgKzg3
LDEyIEBAIGJvb2wgQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1QKIAogYm9vbCBC
aW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIERPTVdpbmRvdyYgZ2xvYmFsT2JqZWN0LCBTdHJpbmcm
IG1lc3NhZ2UpCiB7Ci0gICAgaWYgKEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NU
b0RPTVdpbmRvdygmbGV4aWNhbEdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBEb05vdFJlcG9y
dFNlY3VyaXR5RXJyb3IpKQorICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7CisKKyAgICBib29sIHNo
b3VsZEFsbG93QWNjZXNzID0gQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9N
V2luZG93KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIERvTm90UmVwb3J0U2Vj
dXJpdHlFcnJvcik7CisgICAgRVhDRVBUSU9OX0FTU0VSVF9VTlVTRUQoc2NvcGUsICFzY29wZS5l
eGNlcHRpb24oKSk7CisgICAgaWYgKHNob3VsZEFsbG93QWNjZXNzKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBtZXNzYWdlID0gZ2xvYmFsT2JqZWN0LmNyb3NzRG9tYWluQWNjZXNzRXJyb3JN
ZXNzYWdlKGFjdGl2ZURPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0KSwgSW5jbHVkZVRhcmdl
dE9yaWdpbjo6Tm8pOwogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAkocmV2aXNpb24gMjYzNjE5KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw3ICsxLDcgQEAKIC8qCiAgKiAgQ29weXJpZ2h0IChDKSAyMDAwIEhhcnJpIFBv
cnRlbiAocG9ydGVuQGtkZS5vcmcpCiAgKiAgQ29weXJpZ2h0IChDKSAyMDA2IEpvbiBTaGllciAo
anNoaWVyQGlhc3RhdGUuZWR1KQotICogIENvcHlyaWdodCAoQykgMjAwMy0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNldmVkLgorICogIENvcHlyaWdodCAoQykgMjAwMy0yMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNldmVkLgogICogIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkg
UHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQogICogIENvcHlyaWdodCAoYykgMjAxNSBDYW5v
biBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAtMTI2LDEwICsxMjYsMTQgQEAgdm9p
ZCBKU0RPTVdpbmRvd0Jhc2U6OnVwZGF0ZURvY3VtZW50KCkKICAgICAvLyBSZWFjaGluZyBoZXJl
LCB0aGUgYXR0cmlidXRlcyBvZiAiZG9jdW1lbnQiIHByb3BlcnR5IHNob3VsZCBiZSBuZXZlciBj
aGFuZ2VkLgogICAgIEFTU0VSVChtX3dyYXBwZWQtPmRvY3VtZW50KCkpOwogICAgIEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0ID0gdGhpczsKKyAgICBWTSYgdm0gPSBsZXhpY2Fs
R2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BF
KHZtKTsKKwogICAgIGJvb2wgc2hvdWxkVGhyb3dSZWFkT25seUVycm9yID0gZmFsc2U7CiAgICAg
Ym9vbCBpZ25vcmVSZWFkT25seUVycm9ycyA9IHRydWU7CiAgICAgYm9vbCBwdXRSZXN1bHQgPSBm
YWxzZTsKLSAgICBzeW1ib2xUYWJsZVB1dFRvdWNoV2F0Y2hwb2ludFNldCh0aGlzLCBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KGxleGljYWxHbG9iYWxP
YmplY3QtPnZtKCkuY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpLmRvY3VtZW50UHVibGljTmFt
ZSgpLCB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXMsIG1fd3JhcHBlZC0+ZG9jdW1lbnQo
KSksIHNob3VsZFRocm93UmVhZE9ubHlFcnJvciwgaWdub3JlUmVhZE9ubHlFcnJvcnMsIHB1dFJl
c3VsdCk7CisgICAgc3ltYm9sVGFibGVQdXRUb3VjaFdhdGNocG9pbnRTZXQodGhpcywgbGV4aWNh
bEdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRh
KS0+YnVpbHRpbk5hbWVzKCkuZG9jdW1lbnRQdWJsaWNOYW1lKCksIHRvSlMobGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhpcywgbV93cmFwcGVkLT5kb2N1bWVudCgpKSwgc2hvdWxkVGhyb3dSZWFkT25s
eUVycm9yLCBpZ25vcmVSZWFkT25seUVycm9ycywgcHV0UmVzdWx0KTsKKyAgICBFWENFUFRJT05f
QVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2VwdGlvbigpKTsKIH0KIAogU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogSlNET01XaW5kb3dCYXNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAJKHJldmlzaW9uIDI2MzYxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOTksNyArMjk5LDcgQEAgYm9vbCBKU0RPTVdpbmRv
dzo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
Ci0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUs
IEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBzbG90KSk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3c6OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5k
ZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC00MTgsMTYgKzQxOCwxOSBA
QCB2b2lkIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTCiBib29sIEpTRE9NV2lu
ZG93OjpkZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkpTT2JqZWN0KiBvYmplY3QsIEpTQzo6SlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgY29uc3QgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGJvb2wgc2hv
dWxkVGhyb3cpCiB7CiAgICAgSlNDOjpWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgp
OworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKwogICAgIEpTRE9N
V2luZG93KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRE9NV2luZG93Kj4ob2JqZWN0KTsKICAgICAv
LyBPbmx5IGFsbG93IGRlZmluaW5nIHByb3BlcnRpZXMgaW4gdGhpcyB3YXkgYnkgZnJhbWVzIGlu
IHRoZSBzYW1lIG9yaWdpbiwgYXMgaXQgYWxsb3dzIHNldHRlcnMgdG8gYmUgaW50cm9kdWNlZC4K
ICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LT53cmFwcGVkKCksIFRocm93U2VjdXJpdHlF
cnJvcikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCBmYWxzZSk7CiAKKyAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24o
KSk7CiAgICAgLy8gRG9uJ3QgYWxsb3cgc2hhZG93aW5nIGxvY2F0aW9uIHVzaW5nIGFjY2Vzc29y
IHByb3BlcnRpZXMuCiAgICAgaWYgKGRlc2NyaXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSAm
JiBwcm9wZXJ0eU5hbWUgPT0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImxvY2F0aW9uIikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9w
ZXJ0eSh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3IsIHNob3VsZFRocm93KTsKKyAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEJhc2U6
OmRlZmluZU93blByb3BlcnR5KHRoaXNPYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpKTsKIH0KIAogSlNWYWx1ZSBKU0RPTVdp
bmRvdzo6Z2V0UHJvdG90eXBlKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2FsR2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDI2MzYxOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQs
OCArMjY0LDExIEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6Z2V0QWxsV29ybGRzKFZlY3QKIHZv
aWQgU2NyaXB0Q29udHJvbGxlcjo6aW5pdFNjcmlwdEZvcldpbmRvd1Byb3h5KEpTV2luZG93UHJv
eHkmIHdpbmRvd1Byb3h5KQogewogICAgIGF1dG8mIHdvcmxkID0gd2luZG93UHJveHkud29ybGQo
KTsKKyAgICBKU0M6OlZNJiB2bSA9IHdvcmxkLnZtKCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfQ0FUQ0hfU0NPUEUodm0pOwogCiAgICAganNDYXN0PEpTRE9NV2luZG93Kj4od2luZG93UHJv
eHkud2luZG93KCkpLT51cGRhdGVEb2N1bWVudCgpOworICAgIEVYQ0VQVElPTl9BU1NFUlRfVU5V
U0VEKHNjb3BlLCAhc2NvcGUuZXhjZXB0aW9uKCkpOwogCiAgICAgaWYgKERvY3VtZW50KiBkb2N1
bWVudCA9IG1fZnJhbWUuZG9jdW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQtPmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT5kaWRDcmVhdGVXaW5kb3dQcm94eSh3aW5kb3dQcm94eSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQkocmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTQ5NzQsMTAgKzQ5NzQsMTIgQEAg
c3ViIEdlbmVyYXRlQXR0cmlidXRlR2V0dGVyQm9keURlZmluaXRpbwogICAgICAgICAhJGF0dHJp
YnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RG9Ob3RDaGVja1NlY3VyaXR5T25HZXR0ZXJ9KSB7
CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUJpbmRpbmdTZWN1cml0eS5oIiwgJGNv
bmRpdGlvbmFsKTsKICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIkRPTVdp
bmRvdyIpIHsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIUJpbmRp
bmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdygmbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc09iamVjdC53cmFwcGVkKCksIFRocm93U2VjdXJpdHlFcnJvcikpXG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBib29sIHNob3VsZEFsbG93QWNjZXNz
ID0gQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KCZsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LndyYXBwZWQoKSwgVGhyb3dTZWN1cml0eUVycm9yKTtc
biIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KCZs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LndyYXBwZWQoKS53aW5kb3coKSwgVGhyb3dT
ZWN1cml0eUVycm9yKSlcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNj
ZXNzVG9ET01XaW5kb3coJmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3Qud3JhcHBlZCgp
LndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpO1xuIik7CiAgICAgICAgIH0KKyAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIEVYQ0VQVElPTl9BU1NFUlQoIXRocm93U2NvcGUuZXhj
ZXB0aW9uKCkgfHwgIXNob3VsZEFsbG93QWNjZXNzKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgaWYgKCFzaG91bGRBbGxvd0FjY2VzcylcbiIpOwogICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpO1xuIik7CiAgICAg
fQogICAgIApAQCAtNTEwNywxMCArNTEwOSwxMiBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVTZXR0
ZXJCb2R5RGVmaW5pdGlvCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e0NoZWNrU2VjdXJpdHl9ICYmICEkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntEb05v
dENoZWNrU2VjdXJpdHl9ICYmICEkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntEb05v
dENoZWNrU2VjdXJpdHlPblNldHRlcn0pIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpT
RE9NQmluZGluZ1NlY3VyaXR5LmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAgICBpZiAoJGludGVy
ZmFjZS0+dHlwZS0+bmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1Rv
RE9NV2luZG93KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LndyYXBwZWQoKSwgVGhy
b3dTZWN1cml0eUVycm9yKSlcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93
QWNjZXNzVG9ET01XaW5kb3coJmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3Qud3JhcHBl
ZCgpLCBUaHJvd1NlY3VyaXR5RXJyb3IpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3Vs
ZEFsbG93QWNjZXNzVG9ET01XaW5kb3coJmxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3Qu
d3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpKVxuIik7CisgICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYm9vbCBzaG91bGRBbGxvd0FjY2VzcyA9IEJpbmRp
bmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdygmbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc09iamVjdC53cmFwcGVkKCkud2luZG93KCksIFRocm93U2VjdXJpdHlFcnJvcik7
XG4iKTsKICAgICAgICAgfQorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgRVhDRVBU
SU9OX0FTU0VSVCghdGhyb3dTY29wZS5leGNlcHRpb24oKSB8fCAhc2hvdWxkQWxsb3dBY2Nlc3Mp
O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIXNob3VsZEFsbG93
QWNjZXNzKVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJu
IGZhbHNlO1xuIik7CiAgICAgfQogICAgIApAQCAtNTMyOCwxMiArNTMzMiwxMyBAQCBzdWIgR2Vu
ZXJhdGVPcGVyYXRpb25Cb2R5RGVmaW5pdGlvbgogICAgICAgICAgICAgCiAgICAgICAgICAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiSlNET01CaW5kaW5nU2VjdXJpdHkuaCIsICRjb25kaXRpb25hbCk7
CiAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiRE9NV2luZG93Iikg
ewotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIUJpbmRpbmdT
ZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0
LCBjYXN0ZWRUaGlzLT53cmFwcGVkKCksIFRocm93U2VjdXJpdHlFcnJvcikpXG4iKTsKLSAgICAg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgYm9vbCBzaG91bGRBbGxvd0FjY2VzcyA9IEJpbmRpbmdTZWN1cml0eTo6c2hv
dWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBjYXN0ZWRUaGlz
LT53cmFwcGVkKCksIFRocm93U2VjdXJpdHlFcnJvcik7XG4iKTsKICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICghQmluZGlu
Z1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxPYmpl
Y3QsIGNhc3RlZFRoaXMtPndyYXBwZWQoKS53aW5kb3coKSwgVGhyb3dTZWN1cml0eUVycm9yKSlc
biIpOwotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBib29sIHNob3VsZEFsbG93QWNjZXNzID0gQmluZGluZ1Nl
Y3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxPYmplY3Qs
IGNhc3RlZFRoaXMtPndyYXBwZWQoKS53aW5kb3coKSwgVGhyb3dTZWN1cml0eUVycm9yKTtcbiIp
OwogICAgICAgICAgICAgfQorICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEVY
Q0VQVElPTl9BU1NFUlQoIXRocm93U2NvcGUuZXhjZXB0aW9uKCkgfHwgIXNob3VsZEFsbG93QWNj
ZXNzKTtcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICghc2hv
dWxkQWxsb3dBY2Nlc3MpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOwogICAgICAg
ICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAkocmV2
aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw3ICsyMTgs
OSBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHRocm93U2NvcGUpOwogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KTsKLSAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdp
bmRvdygmbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC53cmFwcGVkKCkud2luZG93KCks
IFRocm93U2VjdXJpdHlFcnJvcikpCisgICAgYm9vbCBzaG91bGRBbGxvd0FjY2VzcyA9IEJpbmRp
bmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdygmbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhpc09iamVjdC53cmFwcGVkKCkud2luZG93KCksIFRocm93U2VjdXJpdHlFcnJvcik7
CisgICAgRVhDRVBUSU9OX0FTU0VSVCghdGhyb3dTY29wZS5leGNlcHRpb24oKSB8fCAhc2hvdWxk
QWxsb3dBY2Nlc3MpOworICAgIGlmICghc2hvdWxkQWxsb3dBY2Nlc3MpCiAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwogICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsK
ICAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlM8SURMTG9uZz4obGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgaW1wbC5leGNpdGluZ0F0dHIoKSk7CkBAIC0yMzUsNyArMjM3LDkgQEAgc3Rh
dGljIGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFVOVVNFRF9QQVJBTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKICAgICBV
TlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3Vs
ZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVkVGhpcy0+
d3JhcHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpKQorICAgIGJvb2wgc2hvdWxk
QWxsb3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5k
b3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVkVGhpcy0+d3JhcHBlZCgpLndpbmRvdygpLCBU
aHJvd1NlY3VyaXR5RXJyb3IpOworICAgIEVYQ0VQVElPTl9BU1NFUlQoIXRocm93U2NvcGUuZXhj
ZXB0aW9uKCkgfHwgIXNob3VsZEFsbG93QWNjZXNzKTsKKyAgICBpZiAoIXNob3VsZEFsbG93QWNj
ZXNzKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAg
IGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CiAgICAgaWYgKFVOTElLRUxZKGNh
bGxGcmFtZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCkBAIC0zMDcsNyArMzExLDkgQEAgc3RhdGlj
IGlubGluZSBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdAogICAgIFVOVVNFRF9QQVJBTShsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBVTlVTRURfUEFSQU0oY2FsbEZyYW1lKTsKICAgICBVTlVT
RURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFs
bG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVkVGhpcy0+d3Jh
cHBlZCgpLndpbmRvdygpLCBUaHJvd1NlY3VyaXR5RXJyb3IpKQorICAgIGJvb2wgc2hvdWxkQWxs
b3dBY2Nlc3MgPSBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3co
bGV4aWNhbEdsb2JhbE9iamVjdCwgY2FzdGVkVGhpcy0+d3JhcHBlZCgpLndpbmRvdygpLCBUaHJv
d1NlY3VyaXR5RXJyb3IpOworICAgIEVYQ0VQVElPTl9BU1NFUlQoIXRocm93U2NvcGUuZXhjZXB0
aW9uKCkgfHwgIXNob3VsZEFsbG93QWNjZXNzKTsKKyAgICBpZiAoIXNob3VsZEFsbG93QWNjZXNz
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIFZN
JiB2bSA9IEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgVU5VU0VEX1BBUkFN
KHZtKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dlYlNjcmlwdE9iamVjdC5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9XZWJTY3JpcHRPYmpl
Y3QubW0JKHJldmlzaW9uIDI2MzYxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL1dl
YlNjcmlwdE9iamVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3NSwxMCArMjc1LDE3IEBAIC0g
KEJPT0wpX2lzU2FmZVNjcmlwdAogICAgIC8vIEl0J3Mgbm90IGFjdHVhbGx5IGNvcnJlY3QgdG8g
Y2FsbCBzaG91bGRBbGxvd0FjY2Vzc1RvRnJhbWUgaW4gdGhpcyB3YXkgYmVjYXVzZQogICAgIC8v
IEpTRE9NV2luZG93QmFzZSogaXNuJ3QgdGhlIHJpZ2h0IG9iamVjdCB0byByZXByZXNlbnQgdGhl
IGN1cnJlbnRseSBleGVjdXRpbmcKICAgICAvLyBKYXZhU2NyaXB0LiBJbnN0ZWFkLCB3ZSBzaG91
bGQgdXNlIEpTR2xvYmFsT2JqZWN0LCBsaWtlIHdlIGRvIGVsc2V3aGVyZS4KLSAgICBhdXRvKiB0
YXJnZXQgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3dCYXNlKj4ocm9vdC0+Z2xvYmFs
T2JqZWN0KCktPnZtKCksIHJvb3QtPmdsb2JhbE9iamVjdCgpKTsKKyAgICBKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSByb290LT5nbG9iYWxPYmplY3QoKTsKKyAgICBKU0M6OlZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRD
SF9TQ09QRSh2bSk7CisKKyAgICBhdXRvKiB0YXJnZXQgPSBKU0M6OmpzRHluYW1pY0Nhc3Q8SlNE
T01XaW5kb3dCYXNlKj4odm0sIGdsb2JhbE9iamVjdCk7CiAgICAgaWYgKCF0YXJnZXQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxv
d0FjY2Vzc1RvRE9NV2luZG93KF9wcml2YXRlLT5vcmlnaW5Sb290T2JqZWN0LT5nbG9iYWxPYmpl
Y3QoKSwgdGFyZ2V0LT53cmFwcGVkKCkpOworICAgIAorICAgIGJvb2wgaXNTYWZlID0gQmluZGlu
Z1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KF9wcml2YXRlLT5vcmlnaW5S
b290T2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgdGFyZ2V0LT53cmFwcGVkKCkpOworICAgIEVYQ0VQ
VElPTl9BU1NFUlRfVU5VU0VEKHNjb3BlLCAhc2NvcGUuZXhjZXB0aW9uKCkpOworICAgIHJldHVy
biBpc1NhZmU7CiB9CiAKIC0gKEpTR2xvYmFsQ29udGV4dFJlZilfZ2xvYmFsQ29udGV4dFJlZgpJ
bmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
LmNwcAkocmV2aXNpb24gMjYzNjE5KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJD
b3JlVGVzdFN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxMSwgMjAxNSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OCw2ICs1OCw3IEBA
IHZvaWQgaW5qZWN0SW50ZXJuYWxzT2JqZWN0KEpTQ29udGV4dFJlZiAKIHsKICAgICBKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCA9IHRvSlMoY29udGV4dCk7CiAgICAgVk0mIHZt
ID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9D
QVRDSF9TQ09QRSh2bSk7CiAgICAgSlNMb2NrSG9sZGVyIGxvY2sodm0pOwogICAgIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRDb250
ZXh0ID0gZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CkBAIC02Niw2ICs2
Nyw3IEBAIHZvaWQgaW5qZWN0SW50ZXJuYWxzT2JqZWN0KEpTQ29udGV4dFJlZiAKICAgICAgICAg
T3B0aW9uczo6dXNlRG9sbGFyVk0oKSA9IHRydWU7CiAgICAgICAgIGdsb2JhbE9iamVjdC0+ZXhw
b3NlRG9sbGFyVk0odm0pOwogICAgIH0KKyAgICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRChzY29w
ZSwgIXNjb3BlLmV4Y2VwdGlvbigpKTsKIH0KIAogdm9pZCByZXNldEludGVybmFsc09iamVjdChK
U0NvbnRleHRSZWYgY29udGV4dCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzYxOSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA2
LTI3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbWlzc2lu
ZyBleGNlcHRpb24gY2hlY2sgaW4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKCkuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2ODEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzY0ODA0ODkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6
LgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2st
aW4tSURCS2V5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVk
ZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2staW4tSURCS2V5Lmh0bWw6IEFkZGVkLgorCiAyMDIw
LTA2LTI2ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dMSUJdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIFVwZGF0ZSB0ZXN0IGV4cGVjdGF0aW9u
cyBhZnRlciByMjYzNjA5LgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbWlz
c2luZy1leGNlcHRpb24tY2hlY2staW4tSURCS2V5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9taXNzaW5nLWV4Y2VwdGlvbi1jaGVjay1p
bi1JREJLZXktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21pc3NpbmctZXhjZXB0aW9uLWNoZWNrLWluLUlEQktleS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IFR5cGVF
cnJvcjogVHlwZSBlcnJvcgorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg4CisgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg4CisgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSA3ODR4MApJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2staW4tSURCS2V5Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2staW4t
SURCS2V5Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIvbWlzc2luZy1leGNlcHRpb24tY2hlY2staW4tSURCS2V5Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IGpzY09wdGlvbnM9LS12YWxpZGF0ZUV4Y2VwdGlvbkNoZWNrcz10cnVlLGR1bXBTaW11bGF0ZWRU
aHJvd3M9dHJ1ZSBdIC0tPgorCis8c2NyaXB0PgorbGV0IGEgPSBbXTsKK09iamVjdC5kZWZpbmVQ
cm9wZXJ0eShhLCAwLCB7CisgICAgZ2V0OiBEYXRlLnByb3RvdHlwZS5nZXRTZWNvbmRzCit9KTsK
K0lEQktleVJhbmdlLm9ubHkoYSk7Cis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>