<?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>236318</bug_id>
          
          <creation_ts>2022-02-08 11:34:21 -0800</creation_ts>
          <short_desc>Don&apos;t return an empty value from AbortController.signal.reason and make it harder to return empty values from JSValueInWrappedObject</short_desc>
          <delta_ts>2022-02-09 01:17:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mark.lam</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1838799</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-02-08 11:34:21 -0800</bug_when>
    <thetext>&lt;rdar://88580935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838801</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-08 11:35:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/88643006&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838986</commentid>
    <comment_count>2</comment_count>
      <attachid>451336</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-02-08 19:48:35 -0800</bug_when>
    <thetext>Created attachment 451336
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838990</commentid>
    <comment_count>3</comment_count>
      <attachid>451336</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-02-08 20:00:22 -0800</bug_when>
    <thetext>Comment on attachment 451336
patch

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

&gt; Source/WebCore/bindings/js/JSValueInWrappedObject.h:-47
&gt; -    operator JSC::JSValue() const;

Maybe make this private so that the compiler complains if someone tries to cast?

&gt; Source/WebCore/bindings/js/JSValueInWrappedObject.h:83
&gt; +    if (m_nonCell)
&gt; +        return true;
&gt; +    return !!m_cell;

You can express this as:
    return m_nonCell || m_cell;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838991</commentid>
    <comment_count>4</comment_count>
      <attachid>451336</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-02-08 20:01:33 -0800</bug_when>
    <thetext>Comment on attachment 451336
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838998</commentid>
    <comment_count>5</comment_count>
      <attachid>451337</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-02-08 20:34:22 -0800</bug_when>
    <thetext>Created attachment 451337
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1838999</commentid>
    <comment_count>6</comment_count>
      <attachid>451338</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-02-08 20:35:26 -0800</bug_when>
    <thetext>Created attachment 451338
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839053</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-09 01:17:11 -0800</bug_when>
    <thetext>Committed r289462 (247005@main): &lt;https://commits.webkit.org/247005@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 451338.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451336</attachid>
            <date>2022-02-08 19:48:35 -0800</date>
            <delta_ts>2022-02-08 20:34:22 -0800</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>18174</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4OTQ1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDIyLTAyLTA4ICBTYWFtIEJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IHJldHVybiBhbiBlbXB0
eSB2YWx1ZSBmcm9tIEFib3J0Q29udHJvbGxlci5zaWduYWwucmVhc29uIGFuZCBtYWtlIGl0IGhh
cmRlciB0byByZXR1cm4gZW1wdHkgdmFsdWVzIGZyb20gSlNWYWx1ZUluV3JhcHBlZE9iamVjdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MzE4Cisg
ICAgICAgIDxyZGFyOi8vODg1ODA5MzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB3ZSBtaWdodCBub3QgYWNj
aWRlbnRhbGx5IHJldHVybiB0aGUgZW1wdHkgdmFsdWUgdG8KKyAgICAgICAgSmF2YVNjcmlwdCBj
b2RlIGZyb20gSlNWYWx1ZUluV3JhcHBlZE9iamVjdC4gUHJldmlvdXNseSwgSlNWYWx1ZUluV3Jh
cHBlZE9iamVjdAorICAgICAgICBoYWQgYW4gIm9wZXJhdG9yIEpTVmFsdWUoKSIgbWV0aG9kLiBU
aGlzIHBhdGNoIHJlbW92ZXMgdGhhdCwgYWRkcyBhIG5ldworICAgICAgICBjb252ZXJzaW9uIG1l
dGhvZCBmb3IgY29udmVydGluZyBiZXR3ZWVuIEpTVmFsdWVJbldyYXBwZWRPYmplY3QgYW5kIEpT
VmFsdWUsCisgICAgICAgIGFuZCBtYWtlcyBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0IHJldHVybiB1
bmRlZmluZWQgaW5zaWRlIHRoaXMgbWV0aG9kCisgICAgICAgIHdoZW4gaXQgdXNlZCB0byByZXR1
cm4gdGhlIGVtcHR5IHZhbHVlLiBUaGlzIGZpeGVzIGEgY3Jhc2ggd2hlcmUgd2UnZCByZXR1cm4K
KyAgICAgICAgdGhlIGVtcHR5IHZhbHVlIHRvIEpTIEpJVCBjb2RlLCBhbmQgY3Jhc2ggZGVyZWZl
cmVuY2luZyBhIG51bGxwdHIuIEl0J3MgbmV2ZXIKKyAgICAgICAgdmFsaWQgZm9yIGEgSlMgZnVu
Y3Rpb24gY2FsbCAob3IgZ2V0dGVyLCBldGMpIHRvIHJldHVybiB0aGUgZW1wdHkgdmFsdWUuCisK
KyAgICAgICAgVGVzdDogZmFzdC9kb20vQWJvcnRTaWduYWwtcmVhc29uLWNyYXNoLTIuaHRtbAor
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb0J1ZmZlcjo6Z2V0Q2hhbm5lbERhdGEpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
SlNBcnJheSk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTT2JqZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvV29ya2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNDdXN0b21FdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U0N1c3RvbUV2ZW50OjpkZXRhaWwgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9N
Q29udmVydEFueS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNDb252ZXJ0ZXI8SURMQW55Pjo6Y29u
dmVydCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZlbnQ6OmRhdGEgY29uc3QpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50OjptZXRob2REZXRhaWxzIGNv
bnN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZlbnRDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNQb3BTdGF0ZUV2ZW50OjpzdGF0ZSBjb25zdCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SlNWYWx1ZUluV3JhcHBlZE9iamVjdDo6Z2V0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNWYWx1ZUluV3JhcHBlZE9iamVjdDo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpjYWNoZWRQcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
VmFsdWVJbldyYXBwZWRPYmplY3Q6Om9wZXJhdG9yIEpTQzo6SlNWYWx1ZSBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogZG9tL0Fib3J0U2lnbmFsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFi
b3J0U2lnbmFsOjpzaWduYWxGb2xsb3cpOgorICAgICAgICAoV2ViQ29yZTo6QWJvcnRTaWduYWw6
OnRocm93SWZBYm9ydGVkKToKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFcnJvckV2ZW50OjplcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpFcnJvckV2
ZW50Ojp0cnlTZXJpYWxpemVFcnJvcik6CisgICAgICAgICogZG9tL1BvcFN0YXRlRXZlbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UG9wU3RhdGVFdmVudDo6dHJ5U2VyaWFsaXplU3RhdGUpOgor
ICAgICAgICAqIHBhZ2UvSGlzdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Ojpj
YWNoZWRTdGF0ZSk6CisKIDIwMjItMDItMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBGaWxlUmVhZGVyU3luYyBzaG91bGQgYmUgZXhwb3NlZCB0byBzaGFyZWQg
d29ya2VycwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0J1ZmZlci5jcHAJKHJldmlzaW9uIDI4OTM4MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDcg
QEAgRXhjZXB0aW9uT3I8SlNDOjpKU1ZhbHVlPiBBdWRpb0J1ZmZlcjo6ZwogICAgIGlmIChnbG9i
YWxPYmplY3Qud29ybGRJc05vcm1hbCgpKSB7CiAgICAgICAgIGlmICghbV9jaGFubmVsV3JhcHBl
cnNbY2hhbm5lbEluZGV4XSkKICAgICAgICAgICAgIG1fY2hhbm5lbFdyYXBwZXJzW2NoYW5uZWxJ
bmRleF0uc2V0V2Vha2x5KGNvbnN0cnVjdEpTQXJyYXkoKSk7Ci0gICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxKU0M6OkpTVmFsdWU+KG1fY2hhbm5lbFdyYXBwZXJzW2NoYW5uZWxJbmRleF0pOwor
ICAgICAgICByZXR1cm4gbV9jaGFubmVsV3JhcHBlcnNbY2hhbm5lbEluZGV4XS5nZXRWYWx1ZSgp
OwogICAgIH0KICAgICByZXR1cm4gY29uc3RydWN0SlNBcnJheSgpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJv
Y2Vzc29yLmNwcAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCwx
MiArNjAsMTIgQEAgc3RhdGljIHVuc2lnbmVkIGJ1c0NoYW5uZWxDb3VudChjb25zdCBBdQogCiBz
dGF0aWMgSlNBcnJheSogdG9KU0FycmF5KEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIHdyYXBwZXIp
CiB7Ci0gICAgcmV0dXJuIHdyYXBwZXIgPyBqc0Nhc3Q8SlNBcnJheSo+KHN0YXRpY19jYXN0PEpT
VmFsdWU+KHdyYXBwZXIpKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHdyYXBwZXIgPyBqc0Nhc3Q8
SlNBcnJheSo+KHdyYXBwZXIuZ2V0VmFsdWUoKSkgOiBudWxscHRyOwogfQogCiBzdGF0aWMgSlNP
YmplY3QqIHRvSlNPYmplY3QoSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgd3JhcHBlcikKIHsKLSAg
ICByZXR1cm4gd3JhcHBlciA/IGpzQ2FzdDxKU09iamVjdCo+KHN0YXRpY19jYXN0PEpTVmFsdWU+
KHdyYXBwZXIpKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHdyYXBwZXIgPyBqc0Nhc3Q8SlNPYmpl
Y3QqPih3cmFwcGVyLmdldFZhbHVlKCkpIDogbnVsbHB0cjsKIH0KIAogc3RhdGljIEpTRmxvYXQz
MkFycmF5KiBjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheShKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2Jq
ZWN0LCB1bnNpZ25lZCBsZW5ndGgsIGNvbnN0IGZsb2F0KiBkYXRhID0gbnVsbHB0cikKQEAgLTIy
MywxNSArMjIzLDE1IEBAIHZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW0K
ICAgICAvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgd2UgY2FjaGUgdGhlIGFycmF5cyBwYXNz
ZWQgdG8gSlMgYW5kIHJlY29uc3RydWN0IHRoZW0gb25seSB3aGVuIHRoZSB0b3BvbG9neSBjaGFu
Z2VzLgogICAgIGlmICghY29weURhdGFGcm9tQnVzZXNUb0pTQXJyYXkodm0sIGdsb2JhbE9iamVj
dCwgaW5wdXRzLCB0b0pTQXJyYXkobV9qc0lucHV0cykpKQogICAgICAgICBtX2pzSW5wdXRzID0g
eyBjb25zdHJ1Y3RGcm96ZW5KU0FycmF5KHZtLCBnbG9iYWxPYmplY3QsIGlucHV0cywgU2hvdWxk
UG9wdWxhdGVXaXRoQnVzRGF0YTo6WWVzKSB9OwotICAgIGFyZ3MuYXBwZW5kKG1fanNJbnB1dHMp
OworICAgIGFyZ3MuYXBwZW5kKG1fanNJbnB1dHMuZ2V0VmFsdWUoKSk7CiAKICAgICBpZiAoIXpl
cm9KU0FycmF5KHZtLCBnbG9iYWxPYmplY3QsIG91dHB1dHMsIHRvSlNBcnJheShtX2pzT3V0cHV0
cykpKQogICAgICAgICBtX2pzT3V0cHV0cyA9IHsgY29uc3RydWN0RnJvemVuSlNBcnJheSh2bSwg
Z2xvYmFsT2JqZWN0LCBvdXRwdXRzLCBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhOjpObykgfTsK
LSAgICBhcmdzLmFwcGVuZChtX2pzT3V0cHV0cyk7CisgICAgYXJncy5hcHBlbmQobV9qc091dHB1
dHMuZ2V0VmFsdWUoKSk7CiAKICAgICBpZiAoIWNvcHlEYXRhRnJvbVBhcmFtZXRlck1hcFRvSlNP
YmplY3Qodm0sIGdsb2JhbE9iamVjdCwgcGFyYW1WYWx1ZXNNYXAsIHRvSlNPYmplY3QobV9qc1Bh
cmFtVmFsdWVzKSkpCiAgICAgICAgIG1fanNQYXJhbVZhbHVlcyA9IHsgY29uc3RydWN0RnJvemVu
S2V5VmFsdWVPYmplY3Qodm0sIGdsb2JhbE9iamVjdCwgcGFyYW1WYWx1ZXNNYXApIH07Ci0gICAg
YXJncy5hcHBlbmQobV9qc1BhcmFtVmFsdWVzKTsKKyAgICBhcmdzLmFwcGVuZChtX2pzUGFyYW1W
YWx1ZXMuZ2V0VmFsdWUoKSk7CiB9CiAKIGJvb2wgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9j
ZXNzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1
ZGlvQnVzPj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9GbG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbikK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRXZlbnRDdXN0b20uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRXZlbnRD
dXN0b20uY3BwCShyZXZpc2lvbiAyODkzODMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbUV2ZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsOCArMzcsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBKU0M6OkpTVmFsdWUgSlNDdXN0b21FdmVudDo6ZGV0YWls
KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGNhY2hlZFByb3BlcnR5VmFsdWUobGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXMsIHdy
YXBwZWQoKS5jYWNoZWREZXRhaWwoKSwgW3RoaXNdIHsKLSAgICAgICAgSlNDOjpKU1ZhbHVlIGRl
dGFpbCA9IHdyYXBwZWQoKS5kZXRhaWwoKTsKLSAgICAgICAgcmV0dXJuIGRldGFpbCA/IGRldGFp
bCA6IEpTQzo6anNOdWxsKCk7CisgICAgICAgIHJldHVybiB3cmFwcGVkKCkuZGV0YWlsKCkuZ2V0
VmFsdWUoSlNDOjpqc051bGwoKSk7CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydEFueS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydEFueS5oCShyZXZpc2lvbiAyODkzODMpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRBbnkuaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJK
U0RPTUNvbnZlcnRCYXNlLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5LDYgKzYwLDExIEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEpTQ29udmVydGVyPElETEFueT4gewogICAgIHsKICAgICAgICAgcmV0dXJuIHZhbHVlLmdl
dCgpOwogICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udmVydChjb25zdCBKU1Zh
bHVlSW5XcmFwcGVkT2JqZWN0JiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB2YWx1ZS5n
ZXRWYWx1ZSgpOworICAgIH0KIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IFZhcmlhZGljQ29udmVy
dGVyPElETEFueT4gewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NSw4ICs1NSw4IEBAIEpTQzo6SlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6cG9ydHMoSlND
OjoKIEpTQzo6SlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShKU0M6OkpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0KSBjb25zdAogewogICAgIHJldHVybiBjYWNoZWRQcm9wZXJ0
eVZhbHVlKGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzLCB3cmFwcGVkKCkuY2FjaGVkRGF0YSgp
LCBbdGhpcywgJmxleGljYWxHbG9iYWxPYmplY3RdIHsKLSAgICAgICAgcmV0dXJuIFdURjo6c3dp
dGNoT24od3JhcHBlZCgpLmRhdGEoKSwgW10gKEpTQzo6SlNWYWx1ZSBkYXRhKSB7Ci0gICAgICAg
ICAgICByZXR1cm4gZGF0YSA/IGRhdGEgOiBKU0M6OmpzTnVsbCgpOworICAgICAgICByZXR1cm4g
V1RGOjpzd2l0Y2hPbih3cmFwcGVkKCkuZGF0YSgpLCBbXSAoY29uc3QgSlNWYWx1ZUluV3JhcHBl
ZE9iamVjdCYgZGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIGRhdGEuZ2V0VmFsdWUoSlNDOjpq
c051bGwoKSk7CiAgICAgICAgIH0sIFt0aGlzLCAmbGV4aWNhbEdsb2JhbE9iamVjdF0gKGNvbnN0
IFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiBkYXRhKSB7CiAgICAgICAgICAgICAvLyBGSVhN
RTogSXMgaXQgYmVzdCB0byBoYW5kbGUgZXJyb3JzIGJ5IHJldHVybmluZyBudWxsIHJhdGhlciB0
aGFuIHRocm93aW5nIGFuIGV4Y2VwdGlvbj8KICAgICAgICAgICAgIHJldHVybiBkYXRhLT5kZXNl
cmlhbGl6ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLnBv
cnRzKCksIFNlcmlhbGl6YXRpb25FcnJvck1vZGU6Ok5vblRocm93aW5nKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Q3VzdG9tLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BheW1lbnRNZXRo
b2RDaGFuZ2VFdmVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDI4OTM4MykKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Q3VzdG9tLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzMsOCArMzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBKU0M6OkpT
VmFsdWUgSlNQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQ6Om1ldGhvZERldGFpbHMoSlNDOjpKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gY2Fj
aGVkUHJvcGVydHlWYWx1ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpcywgd3JhcHBlZCgpLmNh
Y2hlZE1ldGhvZERldGFpbHMoKSwgW3RoaXMsICZsZXhpY2FsR2xvYmFsT2JqZWN0XSB7Ci0gICAg
ICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKHdyYXBwZWQoKS5tZXRob2REZXRhaWxzKCksIFtdKEpT
Qzo6SlNWYWx1ZSBtZXRob2REZXRhaWxzKSAtPiBKU0M6OkpTVmFsdWUgewotICAgICAgICAgICAg
cmV0dXJuIG1ldGhvZERldGFpbHMgPyBtZXRob2REZXRhaWxzIDogSlNDOjpqc051bGwoKTsKKyAg
ICAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24od3JhcHBlZCgpLm1ldGhvZERldGFpbHMoKSwgW10o
Y29uc3QgSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgbWV0aG9kRGV0YWlscykgLT4gSlNDOjpKU1Zh
bHVlIHsKKyAgICAgICAgICAgIHJldHVybiBtZXRob2REZXRhaWxzLmdldFZhbHVlKEpTQzo6anNO
dWxsKCkpOwogICAgICAgICB9LCBbJmxleGljYWxHbG9iYWxPYmplY3RdKGNvbnN0IFBheW1lbnRN
ZXRob2RDaGFuZ2VFdmVudDo6TWV0aG9kRGV0YWlsc0Z1bmN0aW9uJiBmdW5jdGlvbikgLT4gSlND
OjpKU1ZhbHVlIHsKICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0KS5nZXQoKTsKICAgICAgICAgfSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1BvcFN0YXRlRXZlbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDI4OTM4MykK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDggQEAgSlNWYWx1ZSBKU1BvcFN0YXRlRXZlbnQ6
OnN0YXRlKEpTR2xvYmFsTwogCiAgICAgUG9wU3RhdGVFdmVudCYgZXZlbnQgPSB3cmFwcGVkKCk7
CiAKLSAgICBpZiAoSlNDOjpKU1ZhbHVlIGV2ZW50U3RhdGUgPSBldmVudC5zdGF0ZSgpKSB7Cisg
ICAgaWYgKGV2ZW50LnN0YXRlKCkpIHsKKyAgICAgICAgSlNDOjpKU1ZhbHVlIGV2ZW50U3RhdGUg
PSBldmVudC5zdGF0ZSgpLmdldFZhbHVlKCk7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBz
dXJlIGEgUG9wU3RhdGVFdmVudCBkb2VzIG5vdCBsZWFrIG9iamVjdHMgaW4gaXRzIGxleGljYWxH
bG9iYWxPYmplY3QgcHJvcGVydHkgYWNyb3NzIGlzb2xhdGVkIERPTSB3b3JsZHMuCiAgICAgICAg
IC8vIElkZWFsbHksIHdlIHdvdWxkIGNoZWNrIHRoYXQgdGhlIHdvcmxkcyBoYXZlIGRpZmZlcmVu
dCBwcml2aWxlZ2VzIGJ1dCB0aGF0J3Mgbm90IHBvc3NpYmxlIHlldC4KICAgICAgICAgaWYgKCFp
c1dvcmxkQ29tcGF0aWJsZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBldmVudFN0YXRlKSkgewpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVmFsdWVJbldyYXBwZWRP
YmplY3QuaAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMyArNDQsMTMg
QEAgcHVibGljOgogICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QoSlNWYWx1ZUluV3JhcHBlZE9i
amVjdCYmKSA9IGRlZmF1bHQ7CiAgICAgSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgb3BlcmF0b3I9
KEpTVmFsdWVJbldyYXBwZWRPYmplY3QmJikgPSBkZWZhdWx0OwogCi0gICAgb3BlcmF0b3IgSlND
OjpKU1ZhbHVlKCkgY29uc3Q7CiAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0Owog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+IHZvaWQgdmlzaXQoVmlzaXRvciYpIGNvbnN0
OwogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIHZvaWQgc2V0KEpTQzo6Vk0mLCBjb25zdCBKU0M6
OkpTQ2VsbCogb3duZXIsIEpTQzo6SlNWYWx1ZSk7CiAgICAgdm9pZCBzZXRXZWFrbHkoSlNDOjpK
U1ZhbHVlKTsKKyAgICBKU0M6OkpTVmFsdWUgZ2V0VmFsdWUoSlNDOjpKU1ZhbHVlIG51bGxWYWx1
ZSA9IEpTQzo6anNVbmRlZmluZWQoKSkgY29uc3Q7CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRo
aXMgb25jZSBJREJSZXF1ZXN0IHNlbWFudGljIGJ1ZyBpcyBmaXhlZC4KICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2Mjc4CkBAIC02OSwxNiArNjksMTgg
QEAgaW5saW5lIEpTVmFsdWVJbldyYXBwZWRPYmplY3Q6OkpTVmFsdWVJbgogICAgIHNldFdlYWts
eSh2YWx1ZSk7CiB9CiAKLWlubGluZSBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0OjpvcGVyYXRvciBK
U0M6OkpTVmFsdWUoKSBjb25zdAoraW5saW5lIEpTQzo6SlNWYWx1ZSBKU1ZhbHVlSW5XcmFwcGVk
T2JqZWN0OjpnZXRWYWx1ZShKU0M6OkpTVmFsdWUgbnVsbFZhbHVlKSBjb25zdAogewogICAgIGlm
IChtX25vbkNlbGwpCiAgICAgICAgIHJldHVybiBtX25vbkNlbGw7Ci0gICAgcmV0dXJuIG1fY2Vs
bC5nZXQoKTsKKyAgICByZXR1cm4gbV9jZWxsID8gbV9jZWxsLmdldCgpIDogbnVsbFZhbHVlOwog
fQogCiBpbmxpbmUgSlNWYWx1ZUluV3JhcHBlZE9iamVjdDo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIEpTQzo6SlNWYWx1ZSB7ICp0aGlzIH0ub3BlcmF0b3IgYm9vbCgpOwor
ICAgIGlmIChtX25vbkNlbGwpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiAhIW1f
Y2VsbDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmlzaXRvcj4KQEAgLTEyNSwxMiArMTI3LDEy
IEBAIGlubGluZSB2b2lkIEpTVmFsdWVJbldyYXBwZWRPYmplY3Q6OnNldFcKIAogaW5saW5lIEpT
Qzo6SlNWYWx1ZSBjYWNoZWRQcm9wZXJ0eVZhbHVlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIGNvbnN0IEpTRE9NT2JqZWN0JiBvd25lciwgSlNWYWx1ZUluV3JhcHBl
ZE9iamVjdCYgY2FjaGVkVmFsdWUsIGNvbnN0IEZ1bmN0aW9uPEpTQzo6SlNWYWx1ZSgpPiYgZnVu
Y3Rpb24pCiB7Ci0gICAgaWYgKGNhY2hlZFZhbHVlICYmIGlzV29ybGRDb21wYXRpYmxlKGxleGlj
YWxHbG9iYWxPYmplY3QsIGNhY2hlZFZhbHVlKSkKLSAgICAgICAgcmV0dXJuIGNhY2hlZFZhbHVl
OworICAgIGlmIChjYWNoZWRWYWx1ZSAmJiBpc1dvcmxkQ29tcGF0aWJsZShsZXhpY2FsR2xvYmFs
T2JqZWN0LCBjYWNoZWRWYWx1ZS5nZXRWYWx1ZSgpKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlZFZh
bHVlLmdldFZhbHVlKCk7CiAgICAgYXV0byB2YWx1ZSA9IGZ1bmN0aW9uKCk7CiAgICAgY2FjaGVk
VmFsdWUuc2V0KGxleGljYWxHbG9iYWxPYmplY3Qudm0oKSwgJm93bmVyLCBjbG9uZUFjcm9zc1dv
cmxkcyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBvd25lciwgdmFsdWUpKTsKLSAgICBBU1NFUlQoaXNX
b3JsZENvbXBhdGlibGUobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FjaGVkVmFsdWUpKTsKLSAgICBy
ZXR1cm4gY2FjaGVkVmFsdWU7CisgICAgQVNTRVJUKGlzV29ybGRDb21wYXRpYmxlKGxleGljYWxH
bG9iYWxPYmplY3QsIGNhY2hlZFZhbHVlLmdldFZhbHVlKCkpKTsKKyAgICByZXR1cm4gY2FjaGVk
VmFsdWUuZ2V0VmFsdWUoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0Fib3J0U2lnbmFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vQWJvcnRTaWduYWwuY3BwCShyZXZpc2lvbiAyODkzODMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vQWJvcnRTaWduYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNyArMTE0LDcg
QEAgdm9pZCBBYm9ydFNpZ25hbDo6c2lnbmFsRm9sbG93KEFib3J0U2lnbgogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAoc2lnbmFsLmFib3J0ZWQoKSkgewotICAgICAgICBzaWduYWxBYm9ydChz
aWduYWwucmVhc29uKCkpOworICAgICAgICBzaWduYWxBYm9ydChzaWduYWwucmVhc29uKCkuZ2V0
VmFsdWUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2
b2lkIEFib3J0U2lnbmFsOjpzaWduYWxGb2xsb3coQWJvcnRTaWduCiAgICAgbV9mb2xsb3dpbmdT
aWduYWwgPSBzaWduYWw7CiAgICAgc2lnbmFsLmFkZEFsZ29yaXRobShbd2Vha1RoaXMgPSBXZWFr
UHRyIHsgdGhpcyB9XSB7CiAgICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgIHdlYWtU
aGlzLT5zaWduYWxBYm9ydCh3ZWFrVGhpcy0+bV9mb2xsb3dpbmdTaWduYWwgPyBzdGF0aWNfY2Fz
dDxKU0M6OkpTVmFsdWU+KHdlYWtUaGlzLT5tX2ZvbGxvd2luZ1NpZ25hbC0+cmVhc29uKCkpIDog
SlNDOjpqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5zaWduYWxBYm9ydCh3
ZWFrVGhpcy0+bV9mb2xsb3dpbmdTaWduYWwgPyB3ZWFrVGhpcy0+bV9mb2xsb3dpbmdTaWduYWwt
PnJlYXNvbigpLmdldFZhbHVlKCkgOiBKU0M6OmpzVW5kZWZpbmVkKCkpOwogICAgIH0pOwogfQog
CkBAIC0xNTAsNyArMTUwLDcgQEAgdm9pZCBBYm9ydFNpZ25hbDo6dGhyb3dJZkFib3J0ZWQoSlND
OjpKUwogCiAgICAgYXV0byYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIHRocm93RXhjZXB0aW9uKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgbV9yZWFzb24pOworICAgIHRocm93RXhjZXB0aW9u
KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgbV9yZWFzb24uZ2V0VmFsdWUoKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5jcHAJ
KHJldmlzaW9uIDI4OTM4MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzcsMTAgKzc3LDEwIEBAIEV2ZW50SW50ZXJmYWNlIEVycm9yRXZl
bnQ6OmV2ZW50SW50ZXJmYWMKIAogSlNWYWx1ZSBFcnJvckV2ZW50OjplcnJvcihKU0dsb2JhbE9i
amVjdCYgZ2xvYmFsT2JqZWN0KQogeyAgICAKLSAgICBKU1ZhbHVlIGVycm9yID0gbV9lcnJvcjsK
LSAgICBpZiAoIWVycm9yKQorICAgIGlmICghbV9lcnJvcikKICAgICAgICAgcmV0dXJuIGpzTnVs
bCgpOwogCisgICAgSlNWYWx1ZSBlcnJvciA9IG1fZXJyb3IuZ2V0VmFsdWUoKTsKICAgICBpZiAo
IWlzV29ybGRDb21wYXRpYmxlKGdsb2JhbE9iamVjdCwgZXJyb3IpKSB7CiAgICAgICAgIC8vIFdl
IG5lZWQgdG8gbWFrZSBzdXJlIEVycm9yRXZlbnRzIGRvIG5vdCBsZWFrIHRoZWlyIGVycm9yIHBy
b3BlcnR5IGFjcm9zcyBpc29sYXRlZCBET00gd29ybGRzLgogICAgICAgICAvLyBJZGVhbGx5LCB3
ZSB3b3VsZCBjaGVjayB0aGF0IHRoZSB3b3JsZHMgaGF2ZSBkaWZmZXJlbnQgcHJpdmlsZWdlcyBi
dXQgdGhhdCdzIG5vdCBwb3NzaWJsZSB5ZXQuCkBAIC05Niw3ICs5Niw3IEBAIEpTVmFsdWUgRXJy
b3JFdmVudDo6ZXJyb3IoSlNHbG9iYWxPYmplY3QKIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IEVycm9yRXZlbnQ6OnRyeVNlcmlhbGl6ZUVycm9yKEpTR2xvYmFsT2JqZWN0JiBleGVjKQog
ewogICAgIGlmICghbV9zZXJpYWxpemVkRXJyb3IgJiYgIW1fdHJpZWRUb1NlcmlhbGl6ZSkgewot
ICAgICAgICBtX3NlcmlhbGl6ZWRFcnJvciA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
KGV4ZWMsIG1fZXJyb3IsIFNlcmlhbGl6YXRpb25FcnJvck1vZGU6Ok5vblRocm93aW5nKTsKKyAg
ICAgICAgbV9zZXJpYWxpemVkRXJyb3IgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShl
eGVjLCBtX2Vycm9yLmdldFZhbHVlKCksIFNlcmlhbGl6YXRpb25FcnJvck1vZGU6Ok5vblRocm93
aW5nKTsKICAgICAgICAgbV90cmllZFRvU2VyaWFsaXplID0gdHJ1ZTsKICAgICB9CiAgICAgcmV0
dXJuIG1fc2VyaWFsaXplZEVycm9yOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1BvcFN0YXRl
RXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qb3BTdGF0ZUV2ZW50
LmNwcAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1BvcFN0YXRlRXZl
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSw3ICs3MSw3IEBAIFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IFBvcFN0YXRlRXYKICAgICBBU1NFUlQobV9zdGF0ZSk7CiAgICAgCiAgICAg
aWYgKCFtX3NlcmlhbGl6ZWRTdGF0ZSAmJiAhbV90cmllZFRvU2VyaWFsaXplKSB7Ci0gICAgICAg
IG1fc2VyaWFsaXplZFN0YXRlID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoZXhlY3V0
aW9uU3RhdGUsIG1fc3RhdGUsIFNlcmlhbGl6YXRpb25FcnJvck1vZGU6Ok5vblRocm93aW5nKTsK
KyAgICAgICAgbV9zZXJpYWxpemVkU3RhdGUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZShleGVjdXRpb25TdGF0ZSwgbV9zdGF0ZS5nZXRWYWx1ZSgpLCBTZXJpYWxpemF0aW9uRXJyb3JN
b2RlOjpOb25UaHJvd2luZyk7CiAgICAgICAgIG1fdHJpZWRUb1NlcmlhbGl6ZSA9IHRydWU7CiAg
ICAgfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuY3BwCShyZXZpc2lvbiAyODkzODMp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTQsNyArMTE0LDcgQEAgYm9vbCBIaXN0b3J5OjpzdGF0ZUNoYW5nZWQoKSBjb25zdAogSlNWYWx1
ZUluV3JhcHBlZE9iamVjdCYgSGlzdG9yeTo6Y2FjaGVkU3RhdGUoKQogewogICAgIGlmIChtX2Nh
Y2hlZFN0YXRlICYmIHN0YXRlQ2hhbmdlZCgpKQotICAgICAgICBtX2NhY2hlZFN0YXRlID0geyB9
OworICAgICAgICBtX2NhY2hlZFN0YXRlLmNsZWFyKCk7CiAgICAgcmV0dXJuIG1fY2FjaGVkU3Rh
dGU7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4OTM4MykKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAyLTA4ICBTYWFtIEJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IHJldHVybiBhbiBlbXB0
eSB2YWx1ZSBmcm9tIEFib3J0Q29udHJvbGxlci5zaWduYWwucmVhc29uIGFuZCBtYWtlIGl0IGhh
cmRlciB0byByZXR1cm4gZW1wdHkgdmFsdWVzIGZyb20gSlNWYWx1ZUluV3JhcHBlZE9iamVjdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MzE4Cisg
ICAgICAgIDxyZGFyOi8vODg1ODA5MzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9BYm9ydFNpZ25hbC1yZWFzb24tY3Jhc2gtMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0Fib3J0U2lnbmFsLXJlYXNv
bi1jcmFzaC0yLmh0bWw6IEFkZGVkLgorCiAyMDIyLTAyLTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBMaWJXZWJSVENDb2RlY3MgU2hhcmVkVmlkZW9GcmFt
ZVdyaXRlcnMgY2FuIGRlYWRsb2NrIGluIGNhc2Ugb2YgR1BVUHJvY2VzcyBjcmFzaApJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vQWJvcnRTaWduYWwtcmVhc29uLWNyYXNoLTItZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0Fib3J0U2lnbmFsLXJlYXNv
bi1jcmFzaC0yLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9BYm9ydFNpZ25hbC1yZWFzb24tY3Jhc2gtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMiBAQAorVGVzdCBzaG91bGQgbm90IGNyYXNoCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9BYm9ydFNpZ25hbC1yZWFzb24tY3Jh
c2gtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0Fib3J0U2lnbmFs
LXJlYXNvbi1jcmFzaC0yLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vQWJvcnRTaWduYWwtcmVhc29uLWNyYXNoLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZGVzY3Jp
cHRpb24oIlRlc3Qgc2hvdWxkIG5vdCBjcmFzaCIpOword2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworKGFzeW5jICgpID0+IHsKKyAgICB0cnkgeworICAgICAgICBsZXQgYWJvcnRDb250cm9s
bGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpOworICAgICAgICBhYm9ydENvbnRyb2xsZXIuYWJv
cnQoKTsKKyAgICAgICAgR0NDb250cm9sbGVyLmNvbGxlY3QoKTsKKyAgICAgICAgbGV0IHggPSBh
Ym9ydENvbnRyb2xsZXIuc2lnbmFsLnJlYXNvbjsKKyAgICAgICAgdHJ5IHsgeC5mb287IH0gY2F0
Y2ggeyB9CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0gY2F0Y2goZSkgeworICAgICAg
ICBjb25zb2xlLmxvZygic2F3IGV4Y2VwdGlvbiEhISIpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9Cit9KSgpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="478041"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
    <flag name="commit-queue"
          id="478042"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451337</attachid>
            <date>2022-02-08 20:34:22 -0800</date>
            <delta_ts>2022-02-08 20:35:26 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>18137</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4OTQ1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDIyLTAyLTA4ICBTYWFtIEJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IHJldHVybiBhbiBlbXB0
eSB2YWx1ZSBmcm9tIEFib3J0Q29udHJvbGxlci5zaWduYWwucmVhc29uIGFuZCBtYWtlIGl0IGhh
cmRlciB0byByZXR1cm4gZW1wdHkgdmFsdWVzIGZyb20gSlNWYWx1ZUluV3JhcHBlZE9iamVjdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MzE4Cisg
ICAgICAgIDxyZGFyOi8vODg1ODA5MzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0u
CisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB3ZSBtaWdodCBub3QgYWNjaWRlbnRh
bGx5IHJldHVybiB0aGUgZW1wdHkgdmFsdWUgdG8KKyAgICAgICAgSmF2YVNjcmlwdCBjb2RlIGZy
b20gSlNWYWx1ZUluV3JhcHBlZE9iamVjdC4gUHJldmlvdXNseSwgSlNWYWx1ZUluV3JhcHBlZE9i
amVjdAorICAgICAgICBoYWQgYW4gIm9wZXJhdG9yIEpTVmFsdWUoKSIgbWV0aG9kLiBUaGlzIHBh
dGNoIHJlbW92ZXMgdGhhdCwgYWRkcyBhIG5ldworICAgICAgICBjb252ZXJzaW9uIG1ldGhvZCBm
b3IgY29udmVydGluZyBiZXR3ZWVuIEpTVmFsdWVJbldyYXBwZWRPYmplY3QgYW5kIEpTVmFsdWUs
CisgICAgICAgIGFuZCBtYWtlcyBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0IHJldHVybiB1bmRlZmlu
ZWQgaW5zaWRlIHRoaXMgbWV0aG9kCisgICAgICAgIHdoZW4gaXQgdXNlZCB0byByZXR1cm4gdGhl
IGVtcHR5IHZhbHVlLiBUaGlzIGZpeGVzIGEgY3Jhc2ggd2hlcmUgd2UnZCByZXR1cm4KKyAgICAg
ICAgdGhlIGVtcHR5IHZhbHVlIHRvIEpTIEpJVCBjb2RlLCBhbmQgY3Jhc2ggZGVyZWZlcmVuY2lu
ZyBhIG51bGxwdHIuIEl0J3MgbmV2ZXIKKyAgICAgICAgdmFsaWQgZm9yIGEgSlMgZnVuY3Rpb24g
Y2FsbCAob3IgZ2V0dGVyLCBldGMpIHRvIHJldHVybiB0aGUgZW1wdHkgdmFsdWUuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9kb20vQWJvcnRTaWduYWwtcmVhc29uLWNyYXNoLTIuaHRtbAorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0J1ZmZlcjo6Z2V0Q2hhbm5lbERhdGEpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNBcnJh
eSk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvV29ya2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNDdXN0b21FdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3Rv
bUV2ZW50OjpkZXRhaWwgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dEFueS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNDb252ZXJ0ZXI8SURMQW55Pjo6Y29udmVydCk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZlbnQ6OmRhdGEgY29uc3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50OjptZXRob2REZXRhaWxzIGNvbnN0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZlbnRDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNQb3BTdGF0ZUV2ZW50OjpzdGF0ZSBjb25zdCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNW
YWx1ZUluV3JhcHBlZE9iamVjdDo6Z2V0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNWYWx1ZUluV3JhcHBlZE9iamVjdDo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpjYWNoZWRQcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVmFsdWVJ
bldyYXBwZWRPYmplY3Q6Om9wZXJhdG9yIEpTQzo6SlNWYWx1ZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogZG9tL0Fib3J0U2lnbmFsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFib3J0U2ln
bmFsOjpzaWduYWxGb2xsb3cpOgorICAgICAgICAoV2ViQ29yZTo6QWJvcnRTaWduYWw6OnRocm93
SWZBYm9ydGVkKToKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFcnJvckV2ZW50OjplcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpFcnJvckV2ZW50Ojp0
cnlTZXJpYWxpemVFcnJvcik6CisgICAgICAgICogZG9tL1BvcFN0YXRlRXZlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wU3RhdGVFdmVudDo6dHJ5U2VyaWFsaXplU3RhdGUpOgorICAgICAg
ICAqIHBhZ2UvSGlzdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5OjpjYWNoZWRT
dGF0ZSk6CisKIDIwMjItMDItMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaWxlUmVhZGVyU3luYyBzaG91bGQgYmUgZXhwb3NlZCB0byBzaGFyZWQgd29ya2Vy
cwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
ci5jcHAJKHJldmlzaW9uIDI4OTM4MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9CdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDcgQEAgRXhj
ZXB0aW9uT3I8SlNDOjpKU1ZhbHVlPiBBdWRpb0J1ZmZlcjo6ZwogICAgIGlmIChnbG9iYWxPYmpl
Y3Qud29ybGRJc05vcm1hbCgpKSB7CiAgICAgICAgIGlmICghbV9jaGFubmVsV3JhcHBlcnNbY2hh
bm5lbEluZGV4XSkKICAgICAgICAgICAgIG1fY2hhbm5lbFdyYXBwZXJzW2NoYW5uZWxJbmRleF0u
c2V0V2Vha2x5KGNvbnN0cnVjdEpTQXJyYXkoKSk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxKU0M6OkpTVmFsdWU+KG1fY2hhbm5lbFdyYXBwZXJzW2NoYW5uZWxJbmRleF0pOworICAgICAg
ICByZXR1cm4gbV9jaGFubmVsV3JhcHBlcnNbY2hhbm5lbEluZGV4XS5nZXRWYWx1ZSgpOwogICAg
IH0KICAgICByZXR1cm4gY29uc3RydWN0SlNBcnJheSgpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
LmNwcAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxMiArNjAs
MTIgQEAgc3RhdGljIHVuc2lnbmVkIGJ1c0NoYW5uZWxDb3VudChjb25zdCBBdQogCiBzdGF0aWMg
SlNBcnJheSogdG9KU0FycmF5KEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIHdyYXBwZXIpCiB7Ci0g
ICAgcmV0dXJuIHdyYXBwZXIgPyBqc0Nhc3Q8SlNBcnJheSo+KHN0YXRpY19jYXN0PEpTVmFsdWU+
KHdyYXBwZXIpKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHdyYXBwZXIgPyBqc0Nhc3Q8SlNBcnJh
eSo+KHdyYXBwZXIuZ2V0VmFsdWUoKSkgOiBudWxscHRyOwogfQogCiBzdGF0aWMgSlNPYmplY3Qq
IHRvSlNPYmplY3QoSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgd3JhcHBlcikKIHsKLSAgICByZXR1
cm4gd3JhcHBlciA/IGpzQ2FzdDxKU09iamVjdCo+KHN0YXRpY19jYXN0PEpTVmFsdWU+KHdyYXBw
ZXIpKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHdyYXBwZXIgPyBqc0Nhc3Q8SlNPYmplY3QqPih3
cmFwcGVyLmdldFZhbHVlKCkpIDogbnVsbHB0cjsKIH0KIAogc3RhdGljIEpTRmxvYXQzMkFycmF5
KiBjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheShKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCB1
bnNpZ25lZCBsZW5ndGgsIGNvbnN0IGZsb2F0KiBkYXRhID0gbnVsbHB0cikKQEAgLTIyMywxNSAr
MjIzLDE1IEBAIHZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW0KICAgICAv
LyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgd2UgY2FjaGUgdGhlIGFycmF5cyBwYXNzZWQgdG8g
SlMgYW5kIHJlY29uc3RydWN0IHRoZW0gb25seSB3aGVuIHRoZSB0b3BvbG9neSBjaGFuZ2VzLgog
ICAgIGlmICghY29weURhdGFGcm9tQnVzZXNUb0pTQXJyYXkodm0sIGdsb2JhbE9iamVjdCwgaW5w
dXRzLCB0b0pTQXJyYXkobV9qc0lucHV0cykpKQogICAgICAgICBtX2pzSW5wdXRzID0geyBjb25z
dHJ1Y3RGcm96ZW5KU0FycmF5KHZtLCBnbG9iYWxPYmplY3QsIGlucHV0cywgU2hvdWxkUG9wdWxh
dGVXaXRoQnVzRGF0YTo6WWVzKSB9OwotICAgIGFyZ3MuYXBwZW5kKG1fanNJbnB1dHMpOworICAg
IGFyZ3MuYXBwZW5kKG1fanNJbnB1dHMuZ2V0VmFsdWUoKSk7CiAKICAgICBpZiAoIXplcm9KU0Fy
cmF5KHZtLCBnbG9iYWxPYmplY3QsIG91dHB1dHMsIHRvSlNBcnJheShtX2pzT3V0cHV0cykpKQog
ICAgICAgICBtX2pzT3V0cHV0cyA9IHsgY29uc3RydWN0RnJvemVuSlNBcnJheSh2bSwgZ2xvYmFs
T2JqZWN0LCBvdXRwdXRzLCBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhOjpObykgfTsKLSAgICBh
cmdzLmFwcGVuZChtX2pzT3V0cHV0cyk7CisgICAgYXJncy5hcHBlbmQobV9qc091dHB1dHMuZ2V0
VmFsdWUoKSk7CiAKICAgICBpZiAoIWNvcHlEYXRhRnJvbVBhcmFtZXRlck1hcFRvSlNPYmplY3Qo
dm0sIGdsb2JhbE9iamVjdCwgcGFyYW1WYWx1ZXNNYXAsIHRvSlNPYmplY3QobV9qc1BhcmFtVmFs
dWVzKSkpCiAgICAgICAgIG1fanNQYXJhbVZhbHVlcyA9IHsgY29uc3RydWN0RnJvemVuS2V5VmFs
dWVPYmplY3Qodm0sIGdsb2JhbE9iamVjdCwgcGFyYW1WYWx1ZXNNYXApIH07Ci0gICAgYXJncy5h
cHBlbmQobV9qc1BhcmFtVmFsdWVzKTsKKyAgICBhcmdzLmFwcGVuZChtX2pzUGFyYW1WYWx1ZXMu
Z2V0VmFsdWUoKSk7CiB9CiAKIGJvb2wgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9jZXNzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVz
Pj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9G
bG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbikKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRXZlbnRDdXN0b20uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRXZlbnRDdXN0b20u
Y3BwCShyZXZpc2lvbiAyODkzODMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbUV2ZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsOCArMzcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBKU0M6OkpTVmFsdWUgSlNDdXN0b21FdmVudDo6ZGV0YWlsKEpTQzo6
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGNhY2hlZFByb3BlcnR5VmFsdWUobGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXMsIHdyYXBwZWQo
KS5jYWNoZWREZXRhaWwoKSwgW3RoaXNdIHsKLSAgICAgICAgSlNDOjpKU1ZhbHVlIGRldGFpbCA9
IHdyYXBwZWQoKS5kZXRhaWwoKTsKLSAgICAgICAgcmV0dXJuIGRldGFpbCA/IGRldGFpbCA6IEpT
Qzo6anNOdWxsKCk7CisgICAgICAgIHJldHVybiB3cmFwcGVkKCkuZGV0YWlsKCkuZ2V0VmFsdWUo
SlNDOjpqc051bGwoKSk7CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29udmVydEFueS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29udmVydEFueS5oCShyZXZpc2lvbiAyODkzODMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRBbnkuaAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnZlcnRCYXNlLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5LDYgKzYwLDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEpT
Q29udmVydGVyPElETEFueT4gewogICAgIHsKICAgICAgICAgcmV0dXJuIHZhbHVlLmdldCgpOwog
ICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udmVydChjb25zdCBKU1ZhbHVlSW5X
cmFwcGVkT2JqZWN0JiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB2YWx1ZS5nZXRWYWx1
ZSgpOworICAgIH0KIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IFZhcmlhZGljQ29udmVydGVyPElE
TEFueT4gewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRD
dXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NSw4ICs1NSw4IEBAIEpTQzo6SlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6cG9ydHMoSlNDOjoKIEpT
Qzo6SlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0KSBjb25zdAogewogICAgIHJldHVybiBjYWNoZWRQcm9wZXJ0eVZhbHVl
KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzLCB3cmFwcGVkKCkuY2FjaGVkRGF0YSgpLCBbdGhp
cywgJmxleGljYWxHbG9iYWxPYmplY3RdIHsKLSAgICAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
d3JhcHBlZCgpLmRhdGEoKSwgW10gKEpTQzo6SlNWYWx1ZSBkYXRhKSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZGF0YSA/IGRhdGEgOiBKU0M6OmpzTnVsbCgpOworICAgICAgICByZXR1cm4gV1RGOjpz
d2l0Y2hPbih3cmFwcGVkKCkuZGF0YSgpLCBbXSAoY29uc3QgSlNWYWx1ZUluV3JhcHBlZE9iamVj
dCYgZGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIGRhdGEuZ2V0VmFsdWUoSlNDOjpqc051bGwo
KSk7CiAgICAgICAgIH0sIFt0aGlzLCAmbGV4aWNhbEdsb2JhbE9iamVjdF0gKGNvbnN0IFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiBkYXRhKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogSXMg
aXQgYmVzdCB0byBoYW5kbGUgZXJyb3JzIGJ5IHJldHVybmluZyBudWxsIHJhdGhlciB0aGFuIHRo
cm93aW5nIGFuIGV4Y2VwdGlvbj8KICAgICAgICAgICAgIHJldHVybiBkYXRhLT5kZXNlcmlhbGl6
ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLnBvcnRzKCks
IFNlcmlhbGl6YXRpb25FcnJvck1vZGU6Ok5vblRocm93aW5nKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Q3VzdG9tLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BheW1lbnRNZXRob2RDaGFu
Z2VFdmVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDI4OTM4MykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Q3VzdG9tLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMsOCArMzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBKU0M6OkpTVmFsdWUg
SlNQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQ6Om1ldGhvZERldGFpbHMoSlNDOjpKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gY2FjaGVkUHJv
cGVydHlWYWx1ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpcywgd3JhcHBlZCgpLmNhY2hlZE1l
dGhvZERldGFpbHMoKSwgW3RoaXMsICZsZXhpY2FsR2xvYmFsT2JqZWN0XSB7Ci0gICAgICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKHdyYXBwZWQoKS5tZXRob2REZXRhaWxzKCksIFtdKEpTQzo6SlNW
YWx1ZSBtZXRob2REZXRhaWxzKSAtPiBKU0M6OkpTVmFsdWUgewotICAgICAgICAgICAgcmV0dXJu
IG1ldGhvZERldGFpbHMgPyBtZXRob2REZXRhaWxzIDogSlNDOjpqc051bGwoKTsKKyAgICAgICAg
cmV0dXJuIFdURjo6c3dpdGNoT24od3JhcHBlZCgpLm1ldGhvZERldGFpbHMoKSwgW10oY29uc3Qg
SlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgbWV0aG9kRGV0YWlscykgLT4gSlNDOjpKU1ZhbHVlIHsK
KyAgICAgICAgICAgIHJldHVybiBtZXRob2REZXRhaWxzLmdldFZhbHVlKEpTQzo6anNOdWxsKCkp
OwogICAgICAgICB9LCBbJmxleGljYWxHbG9iYWxPYmplY3RdKGNvbnN0IFBheW1lbnRNZXRob2RD
aGFuZ2VFdmVudDo6TWV0aG9kRGV0YWlsc0Z1bmN0aW9uJiBmdW5jdGlvbikgLT4gSlNDOjpKU1Zh
bHVlIHsKICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0KS5n
ZXQoKTsKICAgICAgICAgfSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Bv
cFN0YXRlRXZlbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDI4OTM4MykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU3LDcgKzU3LDggQEAgSlNWYWx1ZSBKU1BvcFN0YXRlRXZlbnQ6OnN0YXRl
KEpTR2xvYmFsTwogCiAgICAgUG9wU3RhdGVFdmVudCYgZXZlbnQgPSB3cmFwcGVkKCk7CiAKLSAg
ICBpZiAoSlNDOjpKU1ZhbHVlIGV2ZW50U3RhdGUgPSBldmVudC5zdGF0ZSgpKSB7CisgICAgaWYg
KGV2ZW50LnN0YXRlKCkpIHsKKyAgICAgICAgSlNDOjpKU1ZhbHVlIGV2ZW50U3RhdGUgPSBldmVu
dC5zdGF0ZSgpLmdldFZhbHVlKCk7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIGEg
UG9wU3RhdGVFdmVudCBkb2VzIG5vdCBsZWFrIG9iamVjdHMgaW4gaXRzIGxleGljYWxHbG9iYWxP
YmplY3QgcHJvcGVydHkgYWNyb3NzIGlzb2xhdGVkIERPTSB3b3JsZHMuCiAgICAgICAgIC8vIElk
ZWFsbHksIHdlIHdvdWxkIGNoZWNrIHRoYXQgdGhlIHdvcmxkcyBoYXZlIGRpZmZlcmVudCBwcml2
aWxlZ2VzIGJ1dCB0aGF0J3Mgbm90IHBvc3NpYmxlIHlldC4KICAgICAgICAgaWYgKCFpc1dvcmxk
Q29tcGF0aWJsZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBldmVudFN0YXRlKSkgewpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVmFsdWVJbldyYXBwZWRPYmplY3Qu
aAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNWYWx1
ZUluV3JhcHBlZE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMyArNDQsMTMgQEAgcHVi
bGljOgogICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QoSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYm
KSA9IGRlZmF1bHQ7CiAgICAgSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgb3BlcmF0b3I9KEpTVmFs
dWVJbldyYXBwZWRPYmplY3QmJikgPSBkZWZhdWx0OwogCi0gICAgb3BlcmF0b3IgSlNDOjpKU1Zh
bHVlKCkgY29uc3Q7CiAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0OwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+IHZvaWQgdmlzaXQoVmlzaXRvciYpIGNvbnN0OwogICAg
IHZvaWQgY2xlYXIoKTsKIAogICAgIHZvaWQgc2V0KEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTQ2Vs
bCogb3duZXIsIEpTQzo6SlNWYWx1ZSk7CiAgICAgdm9pZCBzZXRXZWFrbHkoSlNDOjpKU1ZhbHVl
KTsKKyAgICBKU0M6OkpTVmFsdWUgZ2V0VmFsdWUoSlNDOjpKU1ZhbHVlIG51bGxWYWx1ZSA9IEpT
Qzo6anNVbmRlZmluZWQoKSkgY29uc3Q7CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25j
ZSBJREJSZXF1ZXN0IHNlbWFudGljIGJ1ZyBpcyBmaXhlZC4KICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2Mjc4CkBAIC02OSwxNiArNjksMTYgQEAgaW5s
aW5lIEpTVmFsdWVJbldyYXBwZWRPYmplY3Q6OkpTVmFsdWVJbgogICAgIHNldFdlYWtseSh2YWx1
ZSk7CiB9CiAKLWlubGluZSBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0OjpvcGVyYXRvciBKU0M6OkpT
VmFsdWUoKSBjb25zdAoraW5saW5lIEpTQzo6SlNWYWx1ZSBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0
OjpnZXRWYWx1ZShKU0M6OkpTVmFsdWUgbnVsbFZhbHVlKSBjb25zdAogewogICAgIGlmIChtX25v
bkNlbGwpCiAgICAgICAgIHJldHVybiBtX25vbkNlbGw7Ci0gICAgcmV0dXJuIG1fY2VsbC5nZXQo
KTsKKyAgICByZXR1cm4gbV9jZWxsID8gbV9jZWxsLmdldCgpIDogbnVsbFZhbHVlOwogfQogCiBp
bmxpbmUgSlNWYWx1ZUluV3JhcHBlZE9iamVjdDo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIEpTQzo6SlNWYWx1ZSB7ICp0aGlzIH0ub3BlcmF0b3IgYm9vbCgpOworICAgIHJl
dHVybiBtX25vbkNlbGwgfHwgbV9jZWxsOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9y
PgpAQCAtMTI1LDEyICsxMjUsMTIgQEAgaW5saW5lIHZvaWQgSlNWYWx1ZUluV3JhcHBlZE9iamVj
dDo6c2V0VwogCiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGNhY2hlZFByb3BlcnR5VmFsdWUoSlNDOjpK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgY29uc3QgSlNET01PYmplY3QmIG93
bmVyLCBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0JiBjYWNoZWRWYWx1ZSwgY29uc3QgRnVuY3Rpb248
SlNDOjpKU1ZhbHVlKCk+JiBmdW5jdGlvbikKIHsKLSAgICBpZiAoY2FjaGVkVmFsdWUgJiYgaXNX
b3JsZENvbXBhdGlibGUobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FjaGVkVmFsdWUpKQotICAgICAg
ICByZXR1cm4gY2FjaGVkVmFsdWU7CisgICAgaWYgKGNhY2hlZFZhbHVlICYmIGlzV29ybGRDb21w
YXRpYmxlKGxleGljYWxHbG9iYWxPYmplY3QsIGNhY2hlZFZhbHVlLmdldFZhbHVlKCkpKQorICAg
ICAgICByZXR1cm4gY2FjaGVkVmFsdWUuZ2V0VmFsdWUoKTsKICAgICBhdXRvIHZhbHVlID0gZnVu
Y3Rpb24oKTsKICAgICBjYWNoZWRWYWx1ZS5zZXQobGV4aWNhbEdsb2JhbE9iamVjdC52bSgpLCAm
b3duZXIsIGNsb25lQWNyb3NzV29ybGRzKGxleGljYWxHbG9iYWxPYmplY3QsIG93bmVyLCB2YWx1
ZSkpOwotICAgIEFTU0VSVChpc1dvcmxkQ29tcGF0aWJsZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBj
YWNoZWRWYWx1ZSkpOwotICAgIHJldHVybiBjYWNoZWRWYWx1ZTsKKyAgICBBU1NFUlQoaXNXb3Js
ZENvbXBhdGlibGUobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FjaGVkVmFsdWUuZ2V0VmFsdWUoKSkp
OworICAgIHJldHVybiBjYWNoZWRWYWx1ZS5nZXRWYWx1ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRTaWduYWwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5jcHAJKHJldmlzaW9uIDI4
OTM4MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIEFib3J0U2lnbmFsOjpzaWduYWxGb2xsb3coQWJv
cnRTaWduCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChzaWduYWwuYWJvcnRlZCgpKSB7Ci0g
ICAgICAgIHNpZ25hbEFib3J0KHNpZ25hbC5yZWFzb24oKSk7CisgICAgICAgIHNpZ25hbEFib3J0
KHNpZ25hbC5yZWFzb24oKS5nZXRWYWx1ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgQWJvcnRTaWduYWw6OnNpZ25hbEZvbGxvdyhBYm9ydFNp
Z24KICAgICBtX2ZvbGxvd2luZ1NpZ25hbCA9IHNpZ25hbDsKICAgICBzaWduYWwuYWRkQWxnb3Jp
dGhtKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyB0aGlzIH1dIHsKICAgICAgICAgaWYgKHdlYWtUaGlz
KQotICAgICAgICAgICAgd2Vha1RoaXMtPnNpZ25hbEFib3J0KHdlYWtUaGlzLT5tX2ZvbGxvd2lu
Z1NpZ25hbCA/IHN0YXRpY19jYXN0PEpTQzo6SlNWYWx1ZT4od2Vha1RoaXMtPm1fZm9sbG93aW5n
U2lnbmFsLT5yZWFzb24oKSkgOiBKU0M6OmpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgd2Vh
a1RoaXMtPnNpZ25hbEFib3J0KHdlYWtUaGlzLT5tX2ZvbGxvd2luZ1NpZ25hbCA/IHdlYWtUaGlz
LT5tX2ZvbGxvd2luZ1NpZ25hbC0+cmVhc29uKCkuZ2V0VmFsdWUoKSA6IEpTQzo6anNVbmRlZmlu
ZWQoKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIEFib3J0U2lnbmFs
Ojp0aHJvd0lmQWJvcnRlZChKU0M6OkpTCiAKICAgICBhdXRvJiB2bSA9IGxleGljYWxHbG9iYWxP
YmplY3Qudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgdGhyb3dFeGNlcHRpb24oJmxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBtX3JlYXNvbik7
CisgICAgdGhyb3dFeGNlcHRpb24oJmxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBtX3JlYXNv
bi5nZXRWYWx1ZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FcnJvckV2ZW50LmNwcAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0Vycm9yRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NywxMCArNzcsMTAgQEAgRXZl
bnRJbnRlcmZhY2UgRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhYwogCiBKU1ZhbHVlIEVycm9yRXZl
bnQ6OmVycm9yKEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7ICAgIAotICAgIEpTVmFs
dWUgZXJyb3IgPSBtX2Vycm9yOwotICAgIGlmICghZXJyb3IpCisgICAgaWYgKCFtX2Vycm9yKQog
ICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAKKyAgICBKU1ZhbHVlIGVycm9yID0gbV9lcnJvci5n
ZXRWYWx1ZSgpOwogICAgIGlmICghaXNXb3JsZENvbXBhdGlibGUoZ2xvYmFsT2JqZWN0LCBlcnJv
cikpIHsKICAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgRXJyb3JFdmVudHMgZG8gbm90
IGxlYWsgdGhlaXIgZXJyb3IgcHJvcGVydHkgYWNyb3NzIGlzb2xhdGVkIERPTSB3b3JsZHMuCiAg
ICAgICAgIC8vIElkZWFsbHksIHdlIHdvdWxkIGNoZWNrIHRoYXQgdGhlIHdvcmxkcyBoYXZlIGRp
ZmZlcmVudCBwcml2aWxlZ2VzIGJ1dCB0aGF0J3Mgbm90IHBvc3NpYmxlIHlldC4KQEAgLTk2LDcg
Kzk2LDcgQEAgSlNWYWx1ZSBFcnJvckV2ZW50OjplcnJvcihKU0dsb2JhbE9iamVjdAogUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gRXJyb3JFdmVudDo6dHJ5U2VyaWFsaXplRXJyb3IoSlNH
bG9iYWxPYmplY3QmIGV4ZWMpCiB7CiAgICAgaWYgKCFtX3NlcmlhbGl6ZWRFcnJvciAmJiAhbV90
cmllZFRvU2VyaWFsaXplKSB7Ci0gICAgICAgIG1fc2VyaWFsaXplZEVycm9yID0gU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpjcmVhdGUoZXhlYywgbV9lcnJvciwgU2VyaWFsaXphdGlvbkVycm9yTW9k
ZTo6Tm9uVGhyb3dpbmcpOworICAgICAgICBtX3NlcmlhbGl6ZWRFcnJvciA9IFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6Y3JlYXRlKGV4ZWMsIG1fZXJyb3IuZ2V0VmFsdWUoKSwgU2VyaWFsaXphdGlv
bkVycm9yTW9kZTo6Tm9uVGhyb3dpbmcpOwogICAgICAgICBtX3RyaWVkVG9TZXJpYWxpemUgPSB0
cnVlOwogICAgIH0KICAgICByZXR1cm4gbV9zZXJpYWxpemVkRXJyb3I7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL1BvcFN0YXRlRXZlbnQuY3BwCShyZXZpc2lvbiAyODkzODMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vUG9wU3RhdGVFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDcg
QEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gUG9wU3RhdGVFdgogICAgIEFTU0VSVCht
X3N0YXRlKTsKICAgICAKICAgICBpZiAoIW1fc2VyaWFsaXplZFN0YXRlICYmICFtX3RyaWVkVG9T
ZXJpYWxpemUpIHsKLSAgICAgICAgbV9zZXJpYWxpemVkU3RhdGUgPSBTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmNyZWF0ZShleGVjdXRpb25TdGF0ZSwgbV9zdGF0ZSwgU2VyaWFsaXphdGlvbkVycm9y
TW9kZTo6Tm9uVGhyb3dpbmcpOworICAgICAgICBtX3NlcmlhbGl6ZWRTdGF0ZSA9IFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGV4ZWN1dGlvblN0YXRlLCBtX3N0YXRlLmdldFZhbHVlKCks
IFNlcmlhbGl6YXRpb25FcnJvck1vZGU6Ok5vblRocm93aW5nKTsKICAgICAgICAgbV90cmllZFRv
U2VyaWFsaXplID0gdHJ1ZTsKICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0hpc3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5j
cHAJKHJldmlzaW9uIDI4OTM4MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCBib29sIEhpc3Rvcnk6OnN0YXRlQ2hh
bmdlZCgpIGNvbnN0CiBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0JiBIaXN0b3J5OjpjYWNoZWRTdGF0
ZSgpCiB7CiAgICAgaWYgKG1fY2FjaGVkU3RhdGUgJiYgc3RhdGVDaGFuZ2VkKCkpCi0gICAgICAg
IG1fY2FjaGVkU3RhdGUgPSB7IH07CisgICAgICAgIG1fY2FjaGVkU3RhdGUuY2xlYXIoKTsKICAg
ICByZXR1cm4gbV9jYWNoZWRTdGF0ZTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjg5MzgzKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMjItMDItMDggIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
RG9uJ3QgcmV0dXJuIGFuIGVtcHR5IHZhbHVlIGZyb20gQWJvcnRDb250cm9sbGVyLnNpZ25hbC5y
ZWFzb24gYW5kIG1ha2UgaXQgaGFyZGVyIHRvIHJldHVybiBlbXB0eSB2YWx1ZXMgZnJvbSBKU1Zh
bHVlSW5XcmFwcGVkT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzYzMTgKKyAgICAgICAgPHJkYXI6Ly84ODU4MDkzNT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL0Fib3J0U2ln
bmFsLXJlYXNvbi1jcmFzaC0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vQWJvcnRTaWduYWwtcmVhc29uLWNyYXNoLTIuaHRtbDogQWRkZWQuCisKIDIwMjItMDItMDgg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIExpYldlYlJUQ0Nv
ZGVjcyBTaGFyZWRWaWRlb0ZyYW1lV3JpdGVycyBjYW4gZGVhZGxvY2sgaW4gY2FzZSBvZiBHUFVQ
cm9jZXNzIGNyYXNoCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9BYm9ydFNpZ25hbC1yZWFz
b24tY3Jhc2gtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vQWJvcnRTaWduYWwtcmVhc29uLWNyYXNoLTItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0Fib3J0U2lnbmFsLXJlYXNvbi1jcmFzaC0yLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitUZXN0IHNob3VsZCBub3Qg
Y3Jhc2gKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0Fi
b3J0U2lnbmFsLXJlYXNvbi1jcmFzaC0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vQWJvcnRTaWduYWwtcmVhc29uLWNyYXNoLTIuaHRtbAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9BYm9ydFNpZ25hbC1yZWFzb24tY3Jhc2gtMi5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCBzaG91bGQgbm90IGNyYXNoIik7Cit3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisoYXN5bmMgKCkgPT4geworICAgIHRyeSB7CisgICAg
ICAgIGxldCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7CisgICAgICAg
IGFib3J0Q29udHJvbGxlci5hYm9ydCgpOworICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgp
OworICAgICAgICBsZXQgeCA9IGFib3J0Q29udHJvbGxlci5zaWduYWwucmVhc29uOworICAgICAg
ICB0cnkgeyB4LmZvbzsgfSBjYXRjaCB7IH0KKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
fSBjYXRjaChlKSB7CisgICAgICAgIGNvbnNvbGUubG9nKCJzYXcgZXhjZXB0aW9uISEhIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30pKCk7CisKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451338</attachid>
            <date>2022-02-08 20:35:26 -0800</date>
            <delta_ts>2022-02-09 01:17:15 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>18131</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4OTQ1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDIyLTAyLTA4ICBTYWFtIEJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IHJldHVybiBhbiBlbXB0
eSB2YWx1ZSBmcm9tIEFib3J0Q29udHJvbGxlci5zaWduYWwucmVhc29uIGFuZCBtYWtlIGl0IGhh
cmRlciB0byByZXR1cm4gZW1wdHkgdmFsdWVzIGZyb20gSlNWYWx1ZUluV3JhcHBlZE9iamVjdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2MzE4Cisg
ICAgICAgIDxyZGFyOi8vODg1ODA5MzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0u
CisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyBpdCBzbyB3ZSBtaWdodCBub3QgYWNjaWRlbnRh
bGx5IHJldHVybiB0aGUgZW1wdHkgdmFsdWUgdG8KKyAgICAgICAgSmF2YVNjcmlwdCBjb2RlIGZy
b20gSlNWYWx1ZUluV3JhcHBlZE9iamVjdC4gUHJldmlvdXNseSwgSlNWYWx1ZUluV3JhcHBlZE9i
amVjdAorICAgICAgICBoYWQgYW4gIm9wZXJhdG9yIEpTVmFsdWUoKSIgbWV0aG9kLiBUaGlzIHBh
dGNoIHJlbW92ZXMgdGhhdCwgYWRkcyBhIG5ldworICAgICAgICBjb252ZXJzaW9uIG1ldGhvZCBm
b3IgY29udmVydGluZyBiZXR3ZWVuIEpTVmFsdWVJbldyYXBwZWRPYmplY3QgYW5kIEpTVmFsdWUs
CisgICAgICAgIGFuZCBtYWtlcyBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0IHJldHVybiB1bmRlZmlu
ZWQgaW5zaWRlIHRoaXMgbWV0aG9kCisgICAgICAgIHdoZW4gaXQgdXNlZCB0byByZXR1cm4gdGhl
IGVtcHR5IHZhbHVlLiBUaGlzIGZpeGVzIGEgY3Jhc2ggd2hlcmUgd2UnZCByZXR1cm4KKyAgICAg
ICAgdGhlIGVtcHR5IHZhbHVlIHRvIEpTIEpJVCBjb2RlLCBhbmQgY3Jhc2ggZGVyZWZlcmVuY2lu
ZyBhIG51bGxwdHIuIEl0J3MgbmV2ZXIKKyAgICAgICAgdmFsaWQgZm9yIGEgSlMgZnVuY3Rpb24g
Y2FsbCAob3IgZ2V0dGVyLCBldGMpIHRvIHJldHVybiB0aGUgZW1wdHkgdmFsdWUuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9kb20vQWJvcnRTaWduYWwtcmVhc29uLWNyYXNoLTIuaHRtbAorCisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdWRpb0J1ZmZlcjo6Z2V0Q2hhbm5lbERhdGEpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNBcnJh
eSk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvV29ya2xldFByb2Nlc3Nvcjo6YnVpbGRKU0FyZ3VtZW50cyk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNDdXN0b21FdmVudEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3Rv
bUV2ZW50OjpkZXRhaWwgY29uc3QpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dEFueS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNDb252ZXJ0ZXI8SURMQW55Pjo6Y29udmVydCk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNNZXNzYWdlRXZlbnQ6OmRhdGEgY29uc3QpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50OjptZXRob2REZXRhaWxzIGNvbnN0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BvcFN0YXRlRXZlbnRDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNQb3BTdGF0ZUV2ZW50OjpzdGF0ZSBjb25zdCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNW
YWx1ZUluV3JhcHBlZE9iamVjdDo6Z2V0VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNWYWx1ZUluV3JhcHBlZE9iamVjdDo6b3BlcmF0b3IgYm9vbCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpjYWNoZWRQcm9wZXJ0eVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVmFsdWVJ
bldyYXBwZWRPYmplY3Q6Om9wZXJhdG9yIEpTQzo6SlNWYWx1ZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogZG9tL0Fib3J0U2lnbmFsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFib3J0U2ln
bmFsOjpzaWduYWxGb2xsb3cpOgorICAgICAgICAoV2ViQ29yZTo6QWJvcnRTaWduYWw6OnRocm93
SWZBYm9ydGVkKToKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFcnJvckV2ZW50OjplcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpFcnJvckV2ZW50Ojp0
cnlTZXJpYWxpemVFcnJvcik6CisgICAgICAgICogZG9tL1BvcFN0YXRlRXZlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wU3RhdGVFdmVudDo6dHJ5U2VyaWFsaXplU3RhdGUpOgorICAgICAg
ICAqIHBhZ2UvSGlzdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5OjpjYWNoZWRT
dGF0ZSk6CisKIDIwMjItMDItMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaWxlUmVhZGVyU3luYyBzaG91bGQgYmUgZXhwb3NlZCB0byBzaGFyZWQgd29ya2Vy
cwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
ci5jcHAJKHJldmlzaW9uIDI4OTM4MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9CdWZmZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDcgQEAgRXhj
ZXB0aW9uT3I8SlNDOjpKU1ZhbHVlPiBBdWRpb0J1ZmZlcjo6ZwogICAgIGlmIChnbG9iYWxPYmpl
Y3Qud29ybGRJc05vcm1hbCgpKSB7CiAgICAgICAgIGlmICghbV9jaGFubmVsV3JhcHBlcnNbY2hh
bm5lbEluZGV4XSkKICAgICAgICAgICAgIG1fY2hhbm5lbFdyYXBwZXJzW2NoYW5uZWxJbmRleF0u
c2V0V2Vha2x5KGNvbnN0cnVjdEpTQXJyYXkoKSk7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxKU0M6OkpTVmFsdWU+KG1fY2hhbm5lbFdyYXBwZXJzW2NoYW5uZWxJbmRleF0pOworICAgICAg
ICByZXR1cm4gbV9jaGFubmVsV3JhcHBlcnNbY2hhbm5lbEluZGV4XS5nZXRWYWx1ZSgpOwogICAg
IH0KICAgICByZXR1cm4gY29uc3RydWN0SlNBcnJheSgpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3JrbGV0UHJvY2Vzc29y
LmNwcAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1dvcmtsZXRQcm9jZXNzb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxMiArNjAs
MTIgQEAgc3RhdGljIHVuc2lnbmVkIGJ1c0NoYW5uZWxDb3VudChjb25zdCBBdQogCiBzdGF0aWMg
SlNBcnJheSogdG9KU0FycmF5KEpTVmFsdWVJbldyYXBwZWRPYmplY3QmIHdyYXBwZXIpCiB7Ci0g
ICAgcmV0dXJuIHdyYXBwZXIgPyBqc0Nhc3Q8SlNBcnJheSo+KHN0YXRpY19jYXN0PEpTVmFsdWU+
KHdyYXBwZXIpKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHdyYXBwZXIgPyBqc0Nhc3Q8SlNBcnJh
eSo+KHdyYXBwZXIuZ2V0VmFsdWUoKSkgOiBudWxscHRyOwogfQogCiBzdGF0aWMgSlNPYmplY3Qq
IHRvSlNPYmplY3QoSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgd3JhcHBlcikKIHsKLSAgICByZXR1
cm4gd3JhcHBlciA/IGpzQ2FzdDxKU09iamVjdCo+KHN0YXRpY19jYXN0PEpTVmFsdWU+KHdyYXBw
ZXIpKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIHdyYXBwZXIgPyBqc0Nhc3Q8SlNPYmplY3QqPih3
cmFwcGVyLmdldFZhbHVlKCkpIDogbnVsbHB0cjsKIH0KIAogc3RhdGljIEpTRmxvYXQzMkFycmF5
KiBjb25zdHJ1Y3RKU0Zsb2F0MzJBcnJheShKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCB1
bnNpZ25lZCBsZW5ndGgsIGNvbnN0IGZsb2F0KiBkYXRhID0gbnVsbHB0cikKQEAgLTIyMywxNSAr
MjIzLDE1IEBAIHZvaWQgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpidWlsZEpTQXJndW0KICAgICAv
LyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgd2UgY2FjaGUgdGhlIGFycmF5cyBwYXNzZWQgdG8g
SlMgYW5kIHJlY29uc3RydWN0IHRoZW0gb25seSB3aGVuIHRoZSB0b3BvbG9neSBjaGFuZ2VzLgog
ICAgIGlmICghY29weURhdGFGcm9tQnVzZXNUb0pTQXJyYXkodm0sIGdsb2JhbE9iamVjdCwgaW5w
dXRzLCB0b0pTQXJyYXkobV9qc0lucHV0cykpKQogICAgICAgICBtX2pzSW5wdXRzID0geyBjb25z
dHJ1Y3RGcm96ZW5KU0FycmF5KHZtLCBnbG9iYWxPYmplY3QsIGlucHV0cywgU2hvdWxkUG9wdWxh
dGVXaXRoQnVzRGF0YTo6WWVzKSB9OwotICAgIGFyZ3MuYXBwZW5kKG1fanNJbnB1dHMpOworICAg
IGFyZ3MuYXBwZW5kKG1fanNJbnB1dHMuZ2V0VmFsdWUoKSk7CiAKICAgICBpZiAoIXplcm9KU0Fy
cmF5KHZtLCBnbG9iYWxPYmplY3QsIG91dHB1dHMsIHRvSlNBcnJheShtX2pzT3V0cHV0cykpKQog
ICAgICAgICBtX2pzT3V0cHV0cyA9IHsgY29uc3RydWN0RnJvemVuSlNBcnJheSh2bSwgZ2xvYmFs
T2JqZWN0LCBvdXRwdXRzLCBTaG91bGRQb3B1bGF0ZVdpdGhCdXNEYXRhOjpObykgfTsKLSAgICBh
cmdzLmFwcGVuZChtX2pzT3V0cHV0cyk7CisgICAgYXJncy5hcHBlbmQobV9qc091dHB1dHMuZ2V0
VmFsdWUoKSk7CiAKICAgICBpZiAoIWNvcHlEYXRhRnJvbVBhcmFtZXRlck1hcFRvSlNPYmplY3Qo
dm0sIGdsb2JhbE9iamVjdCwgcGFyYW1WYWx1ZXNNYXAsIHRvSlNPYmplY3QobV9qc1BhcmFtVmFs
dWVzKSkpCiAgICAgICAgIG1fanNQYXJhbVZhbHVlcyA9IHsgY29uc3RydWN0RnJvemVuS2V5VmFs
dWVPYmplY3Qodm0sIGdsb2JhbE9iamVjdCwgcGFyYW1WYWx1ZXNNYXApIH07Ci0gICAgYXJncy5h
cHBlbmQobV9qc1BhcmFtVmFsdWVzKTsKKyAgICBhcmdzLmFwcGVuZChtX2pzUGFyYW1WYWx1ZXMu
Z2V0VmFsdWUoKSk7CiB9CiAKIGJvb2wgQXVkaW9Xb3JrbGV0UHJvY2Vzc29yOjpwcm9jZXNzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8QXVkaW9CdXM+PiYgaW5wdXRzLCBWZWN0b3I8UmVmPEF1ZGlvQnVz
Pj4mIG91dHB1dHMsIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9G
bG9hdEFycmF5Pj4mIHBhcmFtVmFsdWVzTWFwLCBib29sJiB0aHJld0V4Y2VwdGlvbikKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRXZlbnRDdXN0b20uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRXZlbnRDdXN0b20u
Y3BwCShyZXZpc2lvbiAyODkzODMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbUV2ZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsOCArMzcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBKU0M6OkpTVmFsdWUgSlNDdXN0b21FdmVudDo6ZGV0YWlsKEpTQzo6
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGNhY2hlZFByb3BlcnR5VmFsdWUobGV4aWNhbEdsb2JhbE9iamVjdCwgKnRoaXMsIHdyYXBwZWQo
KS5jYWNoZWREZXRhaWwoKSwgW3RoaXNdIHsKLSAgICAgICAgSlNDOjpKU1ZhbHVlIGRldGFpbCA9
IHdyYXBwZWQoKS5kZXRhaWwoKTsKLSAgICAgICAgcmV0dXJuIGRldGFpbCA/IGRldGFpbCA6IEpT
Qzo6anNOdWxsKCk7CisgICAgICAgIHJldHVybiB3cmFwcGVkKCkuZGV0YWlsKCkuZ2V0VmFsdWUo
SlNDOjpqc051bGwoKSk7CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29udmVydEFueS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29udmVydEFueS5oCShyZXZpc2lvbiAyODkzODMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRBbnkuaAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnZlcnRCYXNlLmgiCisjaW5jbHVkZSAiSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5LDYgKzYwLDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEpT
Q29udmVydGVyPElETEFueT4gewogICAgIHsKICAgICAgICAgcmV0dXJuIHZhbHVlLmdldCgpOwog
ICAgIH0KKworICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udmVydChjb25zdCBKU1ZhbHVlSW5X
cmFwcGVkT2JqZWN0JiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiB2YWx1ZS5nZXRWYWx1
ZSgpOworICAgIH0KIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IFZhcmlhZGljQ29udmVydGVyPElE
TEFueT4gewpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRD
dXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NSw4ICs1NSw4IEBAIEpTQzo6SlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6cG9ydHMoSlNDOjoKIEpT
Qzo6SlNWYWx1ZSBKU01lc3NhZ2VFdmVudDo6ZGF0YShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0KSBjb25zdAogewogICAgIHJldHVybiBjYWNoZWRQcm9wZXJ0eVZhbHVl
KGxleGljYWxHbG9iYWxPYmplY3QsICp0aGlzLCB3cmFwcGVkKCkuY2FjaGVkRGF0YSgpLCBbdGhp
cywgJmxleGljYWxHbG9iYWxPYmplY3RdIHsKLSAgICAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
d3JhcHBlZCgpLmRhdGEoKSwgW10gKEpTQzo6SlNWYWx1ZSBkYXRhKSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZGF0YSA/IGRhdGEgOiBKU0M6OmpzTnVsbCgpOworICAgICAgICByZXR1cm4gV1RGOjpz
d2l0Y2hPbih3cmFwcGVkKCkuZGF0YSgpLCBbXSAoY29uc3QgSlNWYWx1ZUluV3JhcHBlZE9iamVj
dCYgZGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIGRhdGEuZ2V0VmFsdWUoSlNDOjpqc051bGwo
KSk7CiAgICAgICAgIH0sIFt0aGlzLCAmbGV4aWNhbEdsb2JhbE9iamVjdF0gKGNvbnN0IFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiBkYXRhKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogSXMg
aXQgYmVzdCB0byBoYW5kbGUgZXJyb3JzIGJ5IHJldHVybmluZyBudWxsIHJhdGhlciB0aGFuIHRo
cm93aW5nIGFuIGV4Y2VwdGlvbj8KICAgICAgICAgICAgIHJldHVybiBkYXRhLT5kZXNlcmlhbGl6
ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QoKSwgd3JhcHBlZCgpLnBvcnRzKCks
IFNlcmlhbGl6YXRpb25FcnJvck1vZGU6Ok5vblRocm93aW5nKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Q3VzdG9tLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BheW1lbnRNZXRob2RDaGFu
Z2VFdmVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDI4OTM4MykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50Q3VzdG9tLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMsOCArMzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBKU0M6OkpTVmFsdWUg
SlNQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQ6Om1ldGhvZERldGFpbHMoSlNDOjpKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gY2FjaGVkUHJv
cGVydHlWYWx1ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCAqdGhpcywgd3JhcHBlZCgpLmNhY2hlZE1l
dGhvZERldGFpbHMoKSwgW3RoaXMsICZsZXhpY2FsR2xvYmFsT2JqZWN0XSB7Ci0gICAgICAgIHJl
dHVybiBXVEY6OnN3aXRjaE9uKHdyYXBwZWQoKS5tZXRob2REZXRhaWxzKCksIFtdKEpTQzo6SlNW
YWx1ZSBtZXRob2REZXRhaWxzKSAtPiBKU0M6OkpTVmFsdWUgewotICAgICAgICAgICAgcmV0dXJu
IG1ldGhvZERldGFpbHMgPyBtZXRob2REZXRhaWxzIDogSlNDOjpqc051bGwoKTsKKyAgICAgICAg
cmV0dXJuIFdURjo6c3dpdGNoT24od3JhcHBlZCgpLm1ldGhvZERldGFpbHMoKSwgW10oY29uc3Qg
SlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgbWV0aG9kRGV0YWlscykgLT4gSlNDOjpKU1ZhbHVlIHsK
KyAgICAgICAgICAgIHJldHVybiBtZXRob2REZXRhaWxzLmdldFZhbHVlKEpTQzo6anNOdWxsKCkp
OwogICAgICAgICB9LCBbJmxleGljYWxHbG9iYWxPYmplY3RdKGNvbnN0IFBheW1lbnRNZXRob2RD
aGFuZ2VFdmVudDo6TWV0aG9kRGV0YWlsc0Z1bmN0aW9uJiBmdW5jdGlvbikgLT4gSlNDOjpKU1Zh
bHVlIHsKICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0KS5n
ZXQoKTsKICAgICAgICAgfSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Bv
cFN0YXRlRXZlbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDI4OTM4MykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU3LDcgKzU3LDggQEAgSlNWYWx1ZSBKU1BvcFN0YXRlRXZlbnQ6OnN0YXRl
KEpTR2xvYmFsTwogCiAgICAgUG9wU3RhdGVFdmVudCYgZXZlbnQgPSB3cmFwcGVkKCk7CiAKLSAg
ICBpZiAoSlNDOjpKU1ZhbHVlIGV2ZW50U3RhdGUgPSBldmVudC5zdGF0ZSgpKSB7CisgICAgaWYg
KGV2ZW50LnN0YXRlKCkpIHsKKyAgICAgICAgSlNDOjpKU1ZhbHVlIGV2ZW50U3RhdGUgPSBldmVu
dC5zdGF0ZSgpLmdldFZhbHVlKCk7CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gbWFrZSBzdXJlIGEg
UG9wU3RhdGVFdmVudCBkb2VzIG5vdCBsZWFrIG9iamVjdHMgaW4gaXRzIGxleGljYWxHbG9iYWxP
YmplY3QgcHJvcGVydHkgYWNyb3NzIGlzb2xhdGVkIERPTSB3b3JsZHMuCiAgICAgICAgIC8vIElk
ZWFsbHksIHdlIHdvdWxkIGNoZWNrIHRoYXQgdGhlIHdvcmxkcyBoYXZlIGRpZmZlcmVudCBwcml2
aWxlZ2VzIGJ1dCB0aGF0J3Mgbm90IHBvc3NpYmxlIHlldC4KICAgICAgICAgaWYgKCFpc1dvcmxk
Q29tcGF0aWJsZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBldmVudFN0YXRlKSkgewpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNWYWx1ZUluV3JhcHBlZE9iamVjdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVmFsdWVJbldyYXBwZWRPYmplY3Qu
aAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNWYWx1
ZUluV3JhcHBlZE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMyArNDQsMTMgQEAgcHVi
bGljOgogICAgIEpTVmFsdWVJbldyYXBwZWRPYmplY3QoSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYm
KSA9IGRlZmF1bHQ7CiAgICAgSlNWYWx1ZUluV3JhcHBlZE9iamVjdCYgb3BlcmF0b3I9KEpTVmFs
dWVJbldyYXBwZWRPYmplY3QmJikgPSBkZWZhdWx0OwogCi0gICAgb3BlcmF0b3IgSlNDOjpKU1Zh
bHVlKCkgY29uc3Q7CiAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0OwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFZpc2l0b3I+IHZvaWQgdmlzaXQoVmlzaXRvciYpIGNvbnN0OwogICAg
IHZvaWQgY2xlYXIoKTsKIAogICAgIHZvaWQgc2V0KEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTQ2Vs
bCogb3duZXIsIEpTQzo6SlNWYWx1ZSk7CiAgICAgdm9pZCBzZXRXZWFrbHkoSlNDOjpKU1ZhbHVl
KTsKKyAgICBKU0M6OkpTVmFsdWUgZ2V0VmFsdWUoSlNDOjpKU1ZhbHVlIG51bGxWYWx1ZSA9IEpT
Qzo6anNVbmRlZmluZWQoKSkgY29uc3Q7CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25j
ZSBJREJSZXF1ZXN0IHNlbWFudGljIGJ1ZyBpcyBmaXhlZC4KICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM2Mjc4CkBAIC02OSwxNiArNjksMTYgQEAgaW5s
aW5lIEpTVmFsdWVJbldyYXBwZWRPYmplY3Q6OkpTVmFsdWVJbgogICAgIHNldFdlYWtseSh2YWx1
ZSk7CiB9CiAKLWlubGluZSBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0OjpvcGVyYXRvciBKU0M6OkpT
VmFsdWUoKSBjb25zdAoraW5saW5lIEpTQzo6SlNWYWx1ZSBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0
OjpnZXRWYWx1ZShKU0M6OkpTVmFsdWUgbnVsbFZhbHVlKSBjb25zdAogewogICAgIGlmIChtX25v
bkNlbGwpCiAgICAgICAgIHJldHVybiBtX25vbkNlbGw7Ci0gICAgcmV0dXJuIG1fY2VsbC5nZXQo
KTsKKyAgICByZXR1cm4gbV9jZWxsID8gbV9jZWxsLmdldCgpIDogbnVsbFZhbHVlOwogfQogCiBp
bmxpbmUgSlNWYWx1ZUluV3JhcHBlZE9iamVjdDo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIEpTQzo6SlNWYWx1ZSB7ICp0aGlzIH0ub3BlcmF0b3IgYm9vbCgpOworICAgIHJl
dHVybiBtX25vbkNlbGwgfHwgbV9jZWxsOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWaXNpdG9y
PgpAQCAtMTI1LDEyICsxMjUsMTIgQEAgaW5saW5lIHZvaWQgSlNWYWx1ZUluV3JhcHBlZE9iamVj
dDo6c2V0VwogCiBpbmxpbmUgSlNDOjpKU1ZhbHVlIGNhY2hlZFByb3BlcnR5VmFsdWUoSlNDOjpK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgY29uc3QgSlNET01PYmplY3QmIG93
bmVyLCBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0JiBjYWNoZWRWYWx1ZSwgY29uc3QgRnVuY3Rpb248
SlNDOjpKU1ZhbHVlKCk+JiBmdW5jdGlvbikKIHsKLSAgICBpZiAoY2FjaGVkVmFsdWUgJiYgaXNX
b3JsZENvbXBhdGlibGUobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FjaGVkVmFsdWUpKQotICAgICAg
ICByZXR1cm4gY2FjaGVkVmFsdWU7CisgICAgaWYgKGNhY2hlZFZhbHVlICYmIGlzV29ybGRDb21w
YXRpYmxlKGxleGljYWxHbG9iYWxPYmplY3QsIGNhY2hlZFZhbHVlLmdldFZhbHVlKCkpKQorICAg
ICAgICByZXR1cm4gY2FjaGVkVmFsdWUuZ2V0VmFsdWUoKTsKICAgICBhdXRvIHZhbHVlID0gZnVu
Y3Rpb24oKTsKICAgICBjYWNoZWRWYWx1ZS5zZXQobGV4aWNhbEdsb2JhbE9iamVjdC52bSgpLCAm
b3duZXIsIGNsb25lQWNyb3NzV29ybGRzKGxleGljYWxHbG9iYWxPYmplY3QsIG93bmVyLCB2YWx1
ZSkpOwotICAgIEFTU0VSVChpc1dvcmxkQ29tcGF0aWJsZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBj
YWNoZWRWYWx1ZSkpOwotICAgIHJldHVybiBjYWNoZWRWYWx1ZTsKKyAgICBBU1NFUlQoaXNXb3Js
ZENvbXBhdGlibGUobGV4aWNhbEdsb2JhbE9iamVjdCwgY2FjaGVkVmFsdWUuZ2V0VmFsdWUoKSkp
OworICAgIHJldHVybiBjYWNoZWRWYWx1ZS5nZXRWYWx1ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQWJvcnRTaWduYWwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5jcHAJKHJldmlzaW9uIDI4
OTM4MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9BYm9ydFNpZ25hbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIEFib3J0U2lnbmFsOjpzaWduYWxGb2xsb3coQWJv
cnRTaWduCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChzaWduYWwuYWJvcnRlZCgpKSB7Ci0g
ICAgICAgIHNpZ25hbEFib3J0KHNpZ25hbC5yZWFzb24oKSk7CisgICAgICAgIHNpZ25hbEFib3J0
KHNpZ25hbC5yZWFzb24oKS5nZXRWYWx1ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgQWJvcnRTaWduYWw6OnNpZ25hbEZvbGxvdyhBYm9ydFNp
Z24KICAgICBtX2ZvbGxvd2luZ1NpZ25hbCA9IHNpZ25hbDsKICAgICBzaWduYWwuYWRkQWxnb3Jp
dGhtKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyB0aGlzIH1dIHsKICAgICAgICAgaWYgKHdlYWtUaGlz
KQotICAgICAgICAgICAgd2Vha1RoaXMtPnNpZ25hbEFib3J0KHdlYWtUaGlzLT5tX2ZvbGxvd2lu
Z1NpZ25hbCA/IHN0YXRpY19jYXN0PEpTQzo6SlNWYWx1ZT4od2Vha1RoaXMtPm1fZm9sbG93aW5n
U2lnbmFsLT5yZWFzb24oKSkgOiBKU0M6OmpzVW5kZWZpbmVkKCkpOworICAgICAgICAgICAgd2Vh
a1RoaXMtPnNpZ25hbEFib3J0KHdlYWtUaGlzLT5tX2ZvbGxvd2luZ1NpZ25hbCA/IHdlYWtUaGlz
LT5tX2ZvbGxvd2luZ1NpZ25hbC0+cmVhc29uKCkuZ2V0VmFsdWUoKSA6IEpTQzo6anNVbmRlZmlu
ZWQoKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIEFib3J0U2lnbmFs
Ojp0aHJvd0lmQWJvcnRlZChKU0M6OkpTCiAKICAgICBhdXRvJiB2bSA9IGxleGljYWxHbG9iYWxP
YmplY3Qudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgdGhyb3dFeGNlcHRpb24oJmxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBtX3JlYXNvbik7
CisgICAgdGhyb3dFeGNlcHRpb24oJmxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBtX3JlYXNv
bi5nZXRWYWx1ZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FcnJvckV2ZW50LmNwcAkocmV2aXNpb24gMjg5MzgzKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0Vycm9yRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NywxMCArNzcsMTAgQEAgRXZl
bnRJbnRlcmZhY2UgRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhYwogCiBKU1ZhbHVlIEVycm9yRXZl
bnQ6OmVycm9yKEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCiB7ICAgIAotICAgIEpTVmFs
dWUgZXJyb3IgPSBtX2Vycm9yOwotICAgIGlmICghZXJyb3IpCisgICAgaWYgKCFtX2Vycm9yKQog
ICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAKKyAgICBKU1ZhbHVlIGVycm9yID0gbV9lcnJvci5n
ZXRWYWx1ZSgpOwogICAgIGlmICghaXNXb3JsZENvbXBhdGlibGUoZ2xvYmFsT2JqZWN0LCBlcnJv
cikpIHsKICAgICAgICAgLy8gV2UgbmVlZCB0byBtYWtlIHN1cmUgRXJyb3JFdmVudHMgZG8gbm90
IGxlYWsgdGhlaXIgZXJyb3IgcHJvcGVydHkgYWNyb3NzIGlzb2xhdGVkIERPTSB3b3JsZHMuCiAg
ICAgICAgIC8vIElkZWFsbHksIHdlIHdvdWxkIGNoZWNrIHRoYXQgdGhlIHdvcmxkcyBoYXZlIGRp
ZmZlcmVudCBwcml2aWxlZ2VzIGJ1dCB0aGF0J3Mgbm90IHBvc3NpYmxlIHlldC4KQEAgLTk2LDcg
Kzk2LDcgQEAgSlNWYWx1ZSBFcnJvckV2ZW50OjplcnJvcihKU0dsb2JhbE9iamVjdAogUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gRXJyb3JFdmVudDo6dHJ5U2VyaWFsaXplRXJyb3IoSlNH
bG9iYWxPYmplY3QmIGV4ZWMpCiB7CiAgICAgaWYgKCFtX3NlcmlhbGl6ZWRFcnJvciAmJiAhbV90
cmllZFRvU2VyaWFsaXplKSB7Ci0gICAgICAgIG1fc2VyaWFsaXplZEVycm9yID0gU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOjpjcmVhdGUoZXhlYywgbV9lcnJvciwgU2VyaWFsaXphdGlvbkVycm9yTW9k
ZTo6Tm9uVGhyb3dpbmcpOworICAgICAgICBtX3NlcmlhbGl6ZWRFcnJvciA9IFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6Y3JlYXRlKGV4ZWMsIG1fZXJyb3IuZ2V0VmFsdWUoKSwgU2VyaWFsaXphdGlv
bkVycm9yTW9kZTo6Tm9uVGhyb3dpbmcpOwogICAgICAgICBtX3RyaWVkVG9TZXJpYWxpemUgPSB0
cnVlOwogICAgIH0KICAgICByZXR1cm4gbV9zZXJpYWxpemVkRXJyb3I7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vUG9wU3RhdGVFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL1BvcFN0YXRlRXZlbnQuY3BwCShyZXZpc2lvbiAyODkzODMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vUG9wU3RhdGVFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDcg
QEAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gUG9wU3RhdGVFdgogICAgIEFTU0VSVCht
X3N0YXRlKTsKICAgICAKICAgICBpZiAoIW1fc2VyaWFsaXplZFN0YXRlICYmICFtX3RyaWVkVG9T
ZXJpYWxpemUpIHsKLSAgICAgICAgbV9zZXJpYWxpemVkU3RhdGUgPSBTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmNyZWF0ZShleGVjdXRpb25TdGF0ZSwgbV9zdGF0ZSwgU2VyaWFsaXphdGlvbkVycm9y
TW9kZTo6Tm9uVGhyb3dpbmcpOworICAgICAgICBtX3NlcmlhbGl6ZWRTdGF0ZSA9IFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGV4ZWN1dGlvblN0YXRlLCBtX3N0YXRlLmdldFZhbHVlKCks
IFNlcmlhbGl6YXRpb25FcnJvck1vZGU6Ok5vblRocm93aW5nKTsKICAgICAgICAgbV90cmllZFRv
U2VyaWFsaXplID0gdHJ1ZTsKICAgICB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0hpc3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5j
cHAJKHJldmlzaW9uIDI4OTM4MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNCw3ICsxMTQsNyBAQCBib29sIEhpc3Rvcnk6OnN0YXRlQ2hh
bmdlZCgpIGNvbnN0CiBKU1ZhbHVlSW5XcmFwcGVkT2JqZWN0JiBIaXN0b3J5OjpjYWNoZWRTdGF0
ZSgpCiB7CiAgICAgaWYgKG1fY2FjaGVkU3RhdGUgJiYgc3RhdGVDaGFuZ2VkKCkpCi0gICAgICAg
IG1fY2FjaGVkU3RhdGUgPSB7IH07CisgICAgICAgIG1fY2FjaGVkU3RhdGUuY2xlYXIoKTsKICAg
ICByZXR1cm4gbV9jYWNoZWRTdGF0ZTsKIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjg5MzgzKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMjItMDItMDggIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
RG9uJ3QgcmV0dXJuIGFuIGVtcHR5IHZhbHVlIGZyb20gQWJvcnRDb250cm9sbGVyLnNpZ25hbC5y
ZWFzb24gYW5kIG1ha2UgaXQgaGFyZGVyIHRvIHJldHVybiBlbXB0eSB2YWx1ZXMgZnJvbSBKU1Zh
bHVlSW5XcmFwcGVkT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzYzMTgKKyAgICAgICAgPHJkYXI6Ly84ODU4MDkzNT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICAqIGZhc3QvZG9tL0Fib3J0U2lnbmFsLXJl
YXNvbi1jcmFzaC0yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vQWJv
cnRTaWduYWwtcmVhc29uLWNyYXNoLTIuaHRtbDogQWRkZWQuCisKIDIwMjItMDItMDggIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIExpYldlYlJUQ0NvZGVjcyBT
aGFyZWRWaWRlb0ZyYW1lV3JpdGVycyBjYW4gZGVhZGxvY2sgaW4gY2FzZSBvZiBHUFVQcm9jZXNz
IGNyYXNoCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9BYm9ydFNpZ25hbC1yZWFzb24tY3Jh
c2gtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vQWJv
cnRTaWduYWwtcmVhc29uLWNyYXNoLTItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0Fib3J0U2lnbmFsLXJlYXNvbi1jcmFzaC0yLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitUZXN0IHNob3VsZCBub3QgY3Jhc2gK
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0Fib3J0U2ln
bmFsLXJlYXNvbi1jcmFzaC0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vQWJvcnRTaWduYWwtcmVhc29uLWNyYXNoLTIuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9BYm9ydFNpZ25hbC1yZWFzb24tY3Jhc2gtMi5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCBzaG91bGQgbm90IGNyYXNoIik7Cit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisoYXN5bmMgKCkgPT4geworICAgIHRyeSB7CisgICAgICAgIGxl
dCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7CisgICAgICAgIGFib3J0
Q29udHJvbGxlci5hYm9ydCgpOworICAgICAgICBHQ0NvbnRyb2xsZXIuY29sbGVjdCgpOworICAg
ICAgICBsZXQgeCA9IGFib3J0Q29udHJvbGxlci5zaWduYWwucmVhc29uOworICAgICAgICB0cnkg
eyB4LmZvbzsgfSBjYXRjaCB7IH0KKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSBjYXRj
aChlKSB7CisgICAgICAgIGNvbnNvbGUubG9nKCJzYXcgZXhjZXB0aW9uISEhIik7CisgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgIH0KK30pKCk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>