<?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>161065</bug_id>
          
          <creation_ts>2016-08-22 18:27:04 -0700</creation_ts>
          <short_desc>Adopted custom element&apos;s callbacks should continue to work</short_desc>
          <delta_ts>2016-09-01 15:00:58 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>154907</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1222050</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-22 18:27:04 -0700</bug_when>
    <thetext>When a custom element is adopted into another document,
its callbacks should continue to function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222052</commentid>
    <comment_count>1</comment_count>
      <attachid>286645</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-22 18:42:26 -0700</bug_when>
    <thetext>Created attachment 286645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222584</commentid>
    <comment_count>2</comment_count>
      <attachid>286830</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-23 21:25:54 -0700</bug_when>
    <thetext>Created attachment 286830
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222585</commentid>
    <comment_count>3</comment_count>
      <attachid>286830</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-23 21:26:25 -0700</bug_when>
    <thetext>Comment on attachment 286830
Patch for landing

Wait for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222592</commentid>
    <comment_count>4</comment_count>
      <attachid>286833</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-23 22:10:14 -0700</bug_when>
    <thetext>Created attachment 286833
Fixed GTK+/EFL builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222593</commentid>
    <comment_count>5</comment_count>
      <attachid>286833</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-23 22:10:31 -0700</bug_when>
    <thetext>Comment on attachment 286833
Fixed GTK+/EFL builds

Waiting for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222594</commentid>
    <comment_count>6</comment_count>
      <attachid>286834</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-23 22:14:51 -0700</bug_when>
    <thetext>Created attachment 286834
One more build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1223800</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-26 17:05:54 -0700</bug_when>
    <thetext>Committed r205060: &lt;http://trac.webkit.org/changeset/205060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225550</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-09-01 15:00:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/28090377&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286645</attachid>
            <date>2016-08-22 18:42:26 -0700</date>
            <delta_ts>2016-08-23 21:25:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161065-20160822184028.patch</filename>
            <type>text/plain</type>
            <size>46805</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNhYmZmYTNhNmMxN2Iw
YWE4ZmIzNDNjNGI0ODA2ZWZmNWQyMzlhYi4uM2I5Y2VkNDQxNjAzNDMxZjBiZWI1Y2YwYTUwN2E3
MTQ0M2JmZTZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA4LTIyICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkb3B0ZWQgY3VzdG9tIGVs
ZW1lbnQncyBjYWxsYmFja3Mgc2hvdWxkIGNvbnRpbnVlIHRvIHdvcmsKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTA2NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBjdXN0b20gZWxlbWVudCBp
cyBhZG9wdGVkIGludG8gYW5vdGhlciBkb2N1bWVudCwgaXRzIHJlYWN0aW9uIGNhbGxiYWNrcyBu
ZWVkIHRvIGNvbnRpbnVlIHRvIHdvcmsuCisgICAgICAgIEJlY2F1c2UgYSBkaWZmZXJlbnQgZG9j
dW1lbnQgbWF5IGhhdmUgaXRzIG93biBnbG9iYWwgb2JqZWN0LCBlYWNoIGN1c3RvbSBlbGVtZW50
IG5lZWRzIHRvIHJlbWVtYmVyIGl0cworICAgICAgICBvcmlnaW5hbCBnbG9iYWwgb2JqZWN0IG9y
IEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZS4gVGhpcyBwYXRjaCBhZGRzIHRoZSBsYXR0ZXIgdG8g
dGhlIGVsZW1lbnQgcmFyZSBkYXRhLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2N1c3RvbS1lbGVt
ZW50cy9jb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3VzdG9t
LWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbAorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
Q3VzdG9tRWxlbWVudEludGVyZmFjZTo6Y29uc3RydWN0RWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVtZW50KToKKyAgICAgICAg
KiBkb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
ZmluZEludGVyZmFjZUZvckN1c3RvbUVsZW1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVDb25uZWN0ZWRDYWxsYmFja0lm
TmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjpl
bnF1ZXVlRGlzY29ubmVjdGVkQ2FsbGJhY2tJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpD
dXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZUF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFj
a0lmTmVlZGVkKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjppbnNlcnRlZEludG8pOiBJbnZva2UgY2FsbGJhY2tzIGV2ZW4gd2hlbiB0aGUg
Y3VycmVudCBkb2N1bWVudCBpcyBub3QgYSBIVE1MIGRvY3VtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6cmVtb3ZlZEZyb20pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OnNldEN1c3RvbUVsZW1lbnRJc1Jlc29sdmVkKTogTW92ZWQgZnJvbSBOb2RlLiBBZGQgdGhl
IGVsZW1lbnQgaW50ZXJmYWNlIHRvIHRoZSByYXJlIGRhdGEuCisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpjdXN0b21FbGVtZW50SW50ZXJmYWNlKTogQWRkZWQuCisgICAgICAgICogZG9tL0Vs
ZW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmNwcDoKKyAgICAgICAgKiBk
b20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6
OmN1c3RvbUVsZW1lbnRJbnRlcmZhY2UpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnRSYXJlRGF0YTo6c2V0Q3VzdG9tRWxlbWVudEludGVyZmFjZSk6IEFkZGVkLgorICAgICAgICAq
IGRvbS9Ob2RlLmg6CisgICAgICAgICgoV2ViQ29yZTo6Tm9kZTo6c2V0Q3VzdG9tRWxlbWVudElz
UmVzb2x2ZWQpOiBEZWxldGVkLgorCiAyMDE2LTA4LTE5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmFtZSBDdXN0b21FbGVtZW50c1JlZ2lzdHJ5IHRvIEN1
c3RvbUVsZW1lbnRSZWdpc3RyeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKaW5kZXggNzQ0MjY1MDRjOWJlNTE0MGQz
OWU3NzBhNjU2MjNhMDNjM2UwNjY4ZS4uMTRkNzcwYWRlNTE5YzRmZTQxN2NjYmM3YWZhZTU0NWU1
MjJjN2E1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21F
bGVtZW50SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCkBAIC05OCw3ICs5OCw3IEBAIFJlZlB0cjxFbGVtZW50
PiBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OmNvbnN0cnVjdEVsZW1lbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0CiAgICAgRWxlbWVudCogd3JhcHBlZEVsZW1lbnQgPSBKU0VsZW1lbnQ6OnRvV3Jh
cHBlZChuZXdFbGVtZW50KTsKICAgICBpZiAoIXdyYXBwZWRFbGVtZW50KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICB3cmFwcGVkRWxlbWVudC0+c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2
ZWQoKTsKKyAgICB3cmFwcGVkRWxlbWVudC0+c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQoKnRo
aXMpOwogICAgIHJldHVybiB3cmFwcGVkRWxlbWVudDsKIH0KIApAQCAtMTQ3LDggKzE0Nyw3IEBA
IHZvaWQgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudChFbGVtZW50JiBl
bGVtZW50KQogICAgICAgICB0aHJvd0ludmFsaWRTdGF0ZUVycm9yKCpzdGF0ZSwgIkN1c3RvbSBl
bGVtZW50IGNvbnN0cnVjdG9yIGZhaWxlZCB0byB1cGdyYWRlIGFuIGVsZW1lbnQiKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KLSAgICB3cmFwcGVkRWxlbWVudC0+c2V0Q3VzdG9tRWxlbWVudElz
UmVzb2x2ZWQoKTsKLSAgICBBU1NFUlQod3JhcHBlZEVsZW1lbnQtPmlzQ3VzdG9tRWxlbWVudCgp
KTsKKyAgICB3cmFwcGVkRWxlbWVudC0+c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQoKnRoaXMp
OwogfQogCiB2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6aW52b2tlQ2FsbGJhY2soRWxl
bWVudCYgZWxlbWVudCwgSlNPYmplY3QqIGNhbGxiYWNrLCBjb25zdCBXVEY6OkZ1bmN0aW9uPHZv
aWQoRXhlY1N0YXRlKiwgTWFya2VkQXJndW1lbnRCdWZmZXImKT4mIGFkZEFyZ3VtZW50cykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuY3BwCmlu
ZGV4IGMyZjVkNGQ4NWNhYzUwZjNiMDU1OTA5MWU4ODExZTc3YmRjYmMwOGUuLjllMmNmYWRjNTVl
MzBkNDAyNTZmNDFkMWZmYjhjYWVmYTA2MGQzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmNwcApAQCAtMTA2LDIzICsxMDYsOSBAQCB2
b2lkIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlRWxlbWVudFVwZ3JhZGUoRWxl
bWVudCYgZWxlbWVudCwgSlNDdXN0bwogICAgICAgICBxdWV1ZS0+bV9pdGVtcy5hcHBlbmQoe0N1
c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRlbTo6VHlwZTo6RWxlbWVudFVwZ3JhZGUsIGVsZW1l
bnQsIGVsZW1lbnRJbnRlcmZhY2V9KTsKIH0KIAotc3RhdGljIEpTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZSogZmluZEludGVyZmFjZUZvckN1c3RvbUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKLXsK
LSAgICBBU1NFUlQoZWxlbWVudC5pc0N1c3RvbUVsZW1lbnQoKSk7Ci0gICAgYXV0byogd2luZG93
ID0gZWxlbWVudC5kb2N1bWVudCgpLmRvbVdpbmRvdygpOwotICAgIGlmICghd2luZG93KQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGF1dG8qIHJlZ2lzdHJ5ID0gd2luZG93LT5jdXN0
b21FbGVtZW50UmVnaXN0cnkoKTsKLSAgICBpZiAoIXJlZ2lzdHJ5KQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIHJldHVybiByZWdpc3RyeS0+ZmluZEludGVyZmFjZShlbGVtZW50LnRh
Z1FOYW1lKCkpOwotfQotCiB2b2lkIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVl
Q29ubmVjdGVkQ2FsbGJhY2tJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8q
IGVsZW1lbnRJbnRlcmZhY2UgPSBmaW5kSW50ZXJmYWNlRm9yQ3VzdG9tRWxlbWVudChlbGVtZW50
KTsKKyAgICBhdXRvKiBlbGVtZW50SW50ZXJmYWNlID0gZWxlbWVudC5jdXN0b21FbGVtZW50SW50
ZXJmYWNlKCk7CiAgICAgaWYgKCFlbGVtZW50SW50ZXJmYWNlKQogICAgICAgICByZXR1cm47CiAK
QEAgLTEzMiw3ICsxMTgsNyBAQCB2b2lkIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1
ZXVlQ29ubmVjdGVkQ2FsbGJhY2tJZk5lZWRlZChFbGVtZW50JiBlbGVtZQogCiB2b2lkIEN1c3Rv
bUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlRGlzY29ubmVjdGVkQ2FsbGJhY2tJZk5lZWRl
ZChFbGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSBmaW5k
SW50ZXJmYWNlRm9yQ3VzdG9tRWxlbWVudChlbGVtZW50KTsKKyAgICBhdXRvKiBlbGVtZW50SW50
ZXJmYWNlID0gZWxlbWVudC5jdXN0b21FbGVtZW50SW50ZXJmYWNlKCk7CiAgICAgaWYgKCFlbGVt
ZW50SW50ZXJmYWNlKQogICAgICAgICByZXR1cm47CiAKQEAgLTE0Miw3ICsxMjgsNyBAQCB2b2lk
IEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlRGlzY29ubmVjdGVkQ2FsbGJhY2tJ
Zk5lZWRlZChFbGVtZW50JiBlbAogCiB2b2lkIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjpl
bnF1ZXVlQXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuZXdWYWx1ZSkKIHsKLSAgICBhdXRvKiBlbGVt
ZW50SW50ZXJmYWNlID0gZmluZEludGVyZmFjZUZvckN1c3RvbUVsZW1lbnQoZWxlbWVudCk7Cisg
ICAgYXV0byogZWxlbWVudEludGVyZmFjZSA9IGVsZW1lbnQuY3VzdG9tRWxlbWVudEludGVyZmFj
ZSgpOwogICAgIGlmICghZWxlbWVudEludGVyZmFjZSB8fCAhZWxlbWVudEludGVyZmFjZS0+b2Jz
ZXJ2ZXNBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKSkpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGRjYmY4NmQxNWU3YjljN2UyNGI3NmQ1NmQ3
Nzk4YjdlOWIxMjJjZjQuLjRlMDM3ZTkzNTcwYzhlYzMzMDNjMDNkMzhkYWZjZWQ5MDFlYzRhMTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE1NzQsNyArMTU3NCw4IEBAIE5vZGU6Okluc2Vy
dGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgRWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5v
ZGUmIGluc2VydGlvCiAgICAgLy8gVGhpcyBlbGVtZW50IGlzIG5ldyB0byB0aGUgc2hhZG93IHRy
ZWUgKGFuZCBpdHMgdHJlZSBzY29wZSkgb25seSBpZiB0aGUgcGFyZW50IGludG8gd2hpY2ggdGhp
cyBlbGVtZW50CiAgICAgLy8gb3IgaXRzIGFuY2VzdG9yIGlzIGluc2VydGVkIGJlbG9uZ3MgdG8g
dGhlIHNhbWUgdHJlZSBzY29wZSBhcyB0aGlzIGVsZW1lbnQncy4KICAgICBUcmVlU2NvcGUqIG5l
d1Njb3BlID0gJmluc2VydGlvblBvaW50LnRyZWVTY29wZSgpOwotICAgIEhUTUxEb2N1bWVudCog
bmV3RG9jdW1lbnQgPSAhd2FzSW5Eb2N1bWVudCAmJiBpbkRvY3VtZW50KCkgJiYgaXM8SFRNTERv
Y3VtZW50PihuZXdTY29wZS0+ZG9jdW1lbnRTY29wZSgpKSA/ICZkb3duY2FzdDxIVE1MRG9jdW1l
bnQ+KG5ld1Njb3BlLT5kb2N1bWVudFNjb3BlKCkpIDogbnVsbHB0cjsKKyAgICBib29sIGJlY29t
ZUNvbm5lY3RlZCA9ICF3YXNJbkRvY3VtZW50ICYmIGluRG9jdW1lbnQoKTsKKyAgICBIVE1MRG9j
dW1lbnQqIG5ld0RvY3VtZW50ID0gYmVjb21lQ29ubmVjdGVkICYmIGlzPEhUTUxEb2N1bWVudD4o
bmV3U2NvcGUtPmRvY3VtZW50U2NvcGUoKSkgPyAmZG93bmNhc3Q8SFRNTERvY3VtZW50PihuZXdT
Y29wZS0+ZG9jdW1lbnRTY29wZSgpKSA6IG51bGxwdHI7CiAgICAgaWYgKG5ld1Njb3BlICE9ICZ0
cmVlU2NvcGUoKSkKICAgICAgICAgbmV3U2NvcGUgPSBudWxscHRyOwogCkBAIC0xNjAwLDcgKzE2
MDEsNyBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IEVsZW1lbnQ6Omluc2Vy
dGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpbwogICAgIH0KIAogI2lmIEVOQUJMRShDVVNU
T01fRUxFTUVOVFMpCi0gICAgaWYgKG5ld0RvY3VtZW50ICYmIFVOTElLRUxZKGlzQ3VzdG9tRWxl
bWVudCgpKSkKKyAgICBpZiAoYmVjb21lQ29ubmVjdGVkICYmIFVOTElLRUxZKGlzQ3VzdG9tRWxl
bWVudCgpKSkKICAgICAgICAgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVDb25u
ZWN0ZWRDYWxsYmFja0lmTmVlZGVkKCp0aGlzKTsKICNlbmRpZgogCkBAIC0xNjIyLDcgKzE2MjMs
OCBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmIGluc2VydGlvblBv
aW50KQogCiAgICAgaWYgKGluc2VydGlvblBvaW50LmlzSW5UcmVlU2NvcGUoKSkgewogICAgICAg
ICBUcmVlU2NvcGUqIG9sZFNjb3BlID0gJmluc2VydGlvblBvaW50LnRyZWVTY29wZSgpOwotICAg
ICAgICBIVE1MRG9jdW1lbnQqIG9sZERvY3VtZW50ID0gaW5Eb2N1bWVudCgpICYmIGlzPEhUTUxE
b2N1bWVudD4ob2xkU2NvcGUtPmRvY3VtZW50U2NvcGUoKSkgPyAmZG93bmNhc3Q8SFRNTERvY3Vt
ZW50PihvbGRTY29wZS0+ZG9jdW1lbnRTY29wZSgpKSA6IG51bGxwdHI7CisgICAgICAgIGJvb2wg
YmVjb21lRGlzY29ubmVjdGVkID0gaW5Eb2N1bWVudCgpOworICAgICAgICBIVE1MRG9jdW1lbnQq
IG9sZERvY3VtZW50ID0gYmVjb21lRGlzY29ubmVjdGVkICYmIGlzPEhUTUxEb2N1bWVudD4ob2xk
U2NvcGUtPmRvY3VtZW50U2NvcGUoKSkgPyAmZG93bmNhc3Q8SFRNTERvY3VtZW50PihvbGRTY29w
ZS0+ZG9jdW1lbnRTY29wZSgpKSA6IG51bGxwdHI7CiAKICAgICAgICAgLy8gQ29udGFpbmVyTm9k
ZTo6cmVtb3ZlQmV0d2VlbiBhbHdheXMgc2V0cyB0aGUgcmVtb3ZlZCBjaGlkJ3MgdHJlZSBzY29w
ZSB0byBEb2N1bWVudCdzIGJ1dCBJblRyZWVTY29wZSBmbGFnIGlzIHVuc2V0IGluIE5vZGU6OnJl
bW92ZWRGcm9tLgogICAgICAgICAvLyBTbyB0aGlzIGVsZW1lbnQgaGFzIGJlZW4gcmVtb3ZlZCBm
cm9tIHRoZSBvbGQgdHJlZSBzY29wZSBvbmx5IGlmIEluVHJlZVNjb3BlIGZsYWcgaXMgc2V0IGFu
ZCB0aGlzIGVsZW1lbnQncyB0cmVlIHNjb3BlIGlzIERvY3VtZW50J3MuCkBAIC0xNjUxLDcgKzE2
NTMsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmIGluc2VydGlv
blBvaW50KQogICAgICAgICB9CiAKICNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQotICAgICAg
ICBpZiAob2xkRG9jdW1lbnQgJiYgVU5MSUtFTFkoaXNDdXN0b21FbGVtZW50KCkpKQorICAgICAg
ICBpZiAoYmVjb21lRGlzY29ubmVjdGVkICYmIFVOTElLRUxZKGlzQ3VzdG9tRWxlbWVudCgpKSkK
ICAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlRGlzY29ubmVj
dGVkQ2FsbGJhY2tJZk5lZWRlZCgqdGhpcyk7CiAjZW5kaWYKICAgICB9CkBAIC0xODIxLDYgKzE4
MjMsMjcgQEAgU2hhZG93Um9vdCYgRWxlbWVudDo6ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgp
CiAgICAgcmV0dXJuICpzaGFkb3dSb290OwogfQogCisgICAgCisjaWYgRU5BQkxFKENVU1RPTV9F
TEVNRU5UUykKKwordm9pZCBFbGVtZW50OjpzZXRDdXN0b21FbGVtZW50SXNSZXNvbHZlZChKU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UmIGVsZW1lbnRJbnRlcmZhY2UpCit7CisgICAgY2xlYXJGbGFn
KElzRWRpdGluZ1RleHRPclVucmVzb2x2ZWRDdXN0b21FbGVtZW50RmxhZyk7CisgICAgc2V0Rmxh
ZyhJc0N1c3RvbUVsZW1lbnQpOworICAgIGVuc3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldEN1c3Rv
bUVsZW1lbnRJbnRlcmZhY2UoZWxlbWVudEludGVyZmFjZSk7Cit9CisKK0pTQ3VzdG9tRWxlbWVu
dEludGVyZmFjZSogRWxlbWVudDo6Y3VzdG9tRWxlbWVudEludGVyZmFjZSgpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKGlzQ3VzdG9tRWxlbWVudCgpKTsKKyAgICBpZiAoIWhhc1JhcmVEYXRhKCkpCisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBlbGVtZW50UmFyZURhdGEoKS0+Y3Vz
dG9tRWxlbWVudEludGVyZmFjZSgpOworfQorCisjZW5kaWYKKworCiBjb25zdCBBdG9taWNTdHJp
bmcmIEVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKICAgICByZXR1cm4gcHNldWRv
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA5MjAwMTE0MGJjODExZDQzNzZjMjNmZTc0N2Y4NTRj
MGFhZGRmY2Y2Li5kZTAyYjNhZGQ1NDAyNzEzNzRkOTE0NTgwMWY4ZTExZjE4YzI1NGZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgRE9NVG9rZW5MaXN0OwogY2xh
c3MgRWxlbWVudFJhcmVEYXRhOwogY2xhc3MgSFRNTERvY3VtZW50OwogY2xhc3MgSW50U2l6ZTsK
K2NsYXNzIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBj
bGFzcyBMb2NhbGU7CiBjbGFzcyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ7CkBAIC0yNzIsNiArMjcz
LDExIEBAIHB1YmxpYzoKICAgICBTaGFkb3dSb290KiB1c2VyQWdlbnRTaGFkb3dSb290KCkgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgU2hhZG93Um9vdCYgZW5zdXJlVXNlckFnZW50U2hhZG93
Um9vdCgpOwogCisjaWYgRU5BQkxFKENVU1RPTV9FTEVNRU5UUykKKyAgICB2b2lkIHNldEN1c3Rv
bUVsZW1lbnRJc1Jlc29sdmVkKEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSYpOworICAgIEpTQ3Vz
dG9tRWxlbWVudEludGVyZmFjZSogY3VzdG9tRWxlbWVudEludGVyZmFjZSgpIGNvbnN0OworI2Vu
ZGlmCisKICAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgbm90IGJlIHZpcnR1YWwsIGRvIG5vdCBv
dmVycmlkZSB0aGlzLgogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJh
cmVEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCmluZGV4
IDg4N2NiZWFhNDhkNDc4ZTMxZDRjZjM2MjNhMWEzOWI1ZjlhZmE4MjIuLmFjYTM0NjNhNzNhMTRh
YzRhOGRhY2VmMTAwNjkxNzRmYmUwYzM1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50UmFyZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0cnVjdCBTYW1lU2l6ZUFzRWxlbWVudFJhcmVE
YXRhIDogTm9kZVJhcmVEYXRhIHsKICAgICBSZWdpb25PdmVyc2V0U3RhdGUgcmVnaW9uT3ZlcnNl
dFN0YXRlOwogICAgIExheW91dFNpemUgc2l6ZUZvclJlc2l6aW5nOwogICAgIEludFBvaW50IHNh
dmVkTGF5ZXJTY3JvbGxQb3NpdGlvbjsKLSAgICB2b2lkKiBwb2ludGVyc1s3XTsKKyAgICB2b2lk
KiBwb2ludGVyc1s4XTsKIH07CiAKIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEVsZW1lbnRSYXJlRGF0
YSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNFbGVtZW50UmFyZURhdGEpLCAiRWxlbWVudFJhcmVEYXRh
IHNob3VsZCBzdGF5IHNtYWxsIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5k
ZXggMWZmYTBhOWJlMTg0MTg5M2JmNjYyZjE2NTY2NDRjNzViNTkzNzk5OS4uODkwOTViZGJhYTRj
ZDY5MjgyNDdhYzEzOTdiMWEyNjE1ZmMwOGZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaApAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiRE9NVG9rZW5MaXN0LmgiCiAj
aW5jbHVkZSAiRGF0YXNldERPTVN0cmluZ01hcC5oIgorI2luY2x1ZGUgIkpTQ3VzdG9tRWxlbWVu
dEludGVyZmFjZS5oIgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgogI2luY2x1ZGUgIk5vZGVS
YXJlRGF0YS5oIgogI2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQuaCIKQEAgLTkzLDYgKzk0LDkgQEAg
cHVibGljOgogICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBtX3No
YWRvd1Jvb3QuZ2V0KCk7IH0KICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUmVmUHRyPFNoYWRvd1Jv
b3Q+JiYgc2hhZG93Um9vdCkgeyBtX3NoYWRvd1Jvb3QgPSBXVEZNb3ZlKHNoYWRvd1Jvb3QpOyB9
CiAKKyAgICBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UqIGN1c3RvbUVsZW1lbnRJbnRlcmZhY2Uo
KSB7IHJldHVybiBtX2N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuZ2V0KCk7IH0KKyAgICB2b2lkIHNl
dEN1c3RvbUVsZW1lbnRJbnRlcmZhY2UoSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlJiBjdXN0b21F
bGVtZW50SW50ZXJmYWNlKSB7IG1fY3VzdG9tRWxlbWVudEludGVyZmFjZSA9ICZjdXN0b21FbGVt
ZW50SW50ZXJmYWNlOyB9CisKICAgICBOYW1lZE5vZGVNYXAqIGF0dHJpYnV0ZU1hcCgpIGNvbnN0
IHsgcmV0dXJuIG1fYXR0cmlidXRlTWFwLmdldCgpOyB9CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGVN
YXAoc3RkOjp1bmlxdWVfcHRyPE5hbWVkTm9kZU1hcD4gYXR0cmlidXRlTWFwKSB7IG1fYXR0cmli
dXRlTWFwID0gV1RGTW92ZShhdHRyaWJ1dGVNYXApOyB9CiAKQEAgLTE0OSw2ICsxNTMsNyBAQCBw
cml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxEYXRhc2V0RE9NU3RyaW5nTWFwPiBtX2RhdGFz
ZXQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPERPTVRva2VuTGlzdD4gbV9jbGFzc0xpc3Q7CiAgICAg
UmVmUHRyPFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdDsKKyAgICBSZWZQdHI8SlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlPiBtX2N1c3RvbUVsZW1lbnRJbnRlcmZhY2U7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPE5hbWVkTm9kZU1hcD4gbV9hdHRyaWJ1dGVNYXA7CiAKICAgICBSZWZQdHI8UHNldWRvRWxl
bWVudD4gbV9iZWZvcmVQc2V1ZG9FbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggNDRlOGI1ZjAxODhh
ODc1MjhmMGU0OTdhYzNhNzMxZWU5Mzc2MGQ5ZC4uODM3M2ZjYTRmZWYxMGQ1ODdlMzAwNDMzNWRh
MGU3NzRlZTQwMzY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yNjgsNyArMjY4LDYgQEAgcHVibGljOgog
CiAgICAgYm9vbCBpc1VucmVzb2x2ZWRDdXN0b21FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gaXNF
bGVtZW50Tm9kZSgpICYmIGdldEZsYWcoSXNFZGl0aW5nVGV4dE9yVW5yZXNvbHZlZEN1c3RvbUVs
ZW1lbnRGbGFnKTsgfQogICAgIHZvaWQgc2V0SXNVbnJlc29sdmVkQ3VzdG9tRWxlbWVudCgpIHsg
c2V0RmxhZyhJc0VkaXRpbmdUZXh0T3JVbnJlc29sdmVkQ3VzdG9tRWxlbWVudEZsYWcpOyB9Ci0g
ICAgdm9pZCBzZXRDdXN0b21FbGVtZW50SXNSZXNvbHZlZCgpOwogI2VuZGlmCiAKICAgICAvLyBS
ZXR1cm5zIG51bGwsIGEgY2hpbGQgb2YgU2hhZG93Um9vdCwgb3IgYSBsZWdhY3kgc2hhZG93IHJv
b3QuCkBAIC03NzAsMTYgKzc2OSw2IEBAIGlubGluZSBDb250YWluZXJOb2RlKiBOb2RlOjpwYXJl
bnROb2RlR3VhcmFudGVlZEhvc3RGcmVlKCkgY29uc3QKICAgICByZXR1cm4gcGFyZW50Tm9kZSgp
OwogfQogCi0jaWYgRU5BQkxFKENVU1RPTV9FTEVNRU5UUykKLQotaW5saW5lIHZvaWQgTm9kZTo6
c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQoKQotewotICAgIGNsZWFyRmxhZyhJc0VkaXRpbmdU
ZXh0T3JVbnJlc29sdmVkQ3VzdG9tRWxlbWVudEZsYWcpOwotICAgIHNldEZsYWcoSXNDdXN0b21F
bGVtZW50KTsKLX0KLQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2lmIEVO
QUJMRShUUkVFX0RFQlVHR0lORykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MzYwMzkzNzE1ODEyYzEzZmQyYWU0ZmE3NTY5
NTVhZGMwNTE0NjZiLi5hZjcwMzU4NzZlNTgyYzdmMDExMjgxMTJmMTc0NTZmMzYxZWQ2MTI1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTYtMDgtMjIgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQWRvcHRlZCBjdXN0b20gZWxlbWVudCdzIGNhbGxiYWNrcyBz
aG91bGQgY29udGludWUgdG8gd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTYxMDY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBjYXNlcyBmb3IgYWRvcHRpbmcgY3VzdG9tIGVsZW1l
bnRzIGludG8gdmFyaW91cyBraW5kcyBvZiBkb2N1bWVudHMuCisKKyAgICAgICAgKiBmYXN0L2N1
c3RvbS1lbGVtZW50cy9jb25uZWN0ZWQtY2FsbGJhY2tzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2N1c3RvbS1lbGVtZW50cy9jb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWw6CisgICAgICAg
ICogZmFzdC9jdXN0b20tZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3MtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNsYXNzLmh0
bWw6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNr
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVj
dGVkLWNhbGxiYWNrcy5odG1sOgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291
cmNlcy9kb2N1bWVudC10eXBlcy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9jdXN0b20tZWxl
bWVudHMvcmVzb3VyY2VzL2VtcHR5LWh0bWwtZG9jdW1lbnQuaHRtbDogQWRkZWQuCisKIDIwMTYt
MDgtMTkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVuYW1l
IEN1c3RvbUVsZW1lbnRzUmVnaXN0cnkgdG8gQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9jb25uZWN0ZWQtY2FsbGJhY2tz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3Rl
ZC1jYWxsYmFja3MtZXhwZWN0ZWQudHh0CmluZGV4IGI1MzdiNTczMTE0Njk2YzQyZDc3MzI2MWFm
NTJiYzgzNThjNGM0MjQuLjFiZjNmZTNmZTNlZWNiNTc3ZjUxYTFiZDEyMTMzNWQ2NjIyYmMyNjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1j
YWxsYmFja3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1l
bnRzL2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDQzIEBACiAK
IFBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0
b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgbm9kZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1GQUlMIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGlu
dG8gYSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0
ZWRDYWxsYmFjayBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQg
MiBnb3QgMAotUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgYSBjdXN0b20gZWxlbWVudCBp
bnRvIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sg
Ci1GQUlMIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgd2lu
ZG93LWxlc3MgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJh
Y2sgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDIgZ290IDAK
LVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGNvbm5lY3RlZCBzaGFkb3cg
dHJlZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5z
ZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIHNoYWRvdyB0cmVlIHdpdGggYSBjdXN0b20gZWxl
bWVudCBpbnRvIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2Fs
bGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBz
aGFkb3cgdHJlZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sg
CitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9j
dW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIElu
c2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIGRvY3VtZW50
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRp
bmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcg
YSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdz
IHRvIGEgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxi
YWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgb2Yg
YSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxi
YWNrIAorUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBh
IGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBj
b25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBh
IHNoYWRvdyB0cmVlIGluIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNo
YWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG9mIGEgdGVtcGxh
dGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BB
U1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVl
IHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IG5v
dCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBh
IGN1c3RvbSBlbGVtZW50IGludG8gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0
b20gZWxlbWVudCBpbnRvIGEgbmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNv
bm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
c2hhZG93IHRyZWUgaW4gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29u
bmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0
b20gZWxlbWVudCBpbnRvIGEgbmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNv
bm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
ZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgbmV3IGRvY3VtZW50IG11c3Qg
bm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5n
IGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9m
IGN1c3RvbSBlbGVtZW50IGludG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50
IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9z
dCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBl
bGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBjbG9u
ZWQgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNr
IAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgY3JlYXRl
ZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVk
Q2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBp
bnRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBl
bGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRl
SFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBh
IGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVu
dCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQg
Y3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRv
IGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Ig
b2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVE
b2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1Mg
SW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgSFRNTCBk
b2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEg
Y3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1
bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5z
ZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQg
YmVsb25ncyB0byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0
IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGlu
ZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNl
c3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBj
dXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBpbiBhbiBpZnJh
bWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2Vy
dGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQg
aW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRy
ZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3Qgbm90IGVucXVl
dWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9t
IGVsZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3Rv
ciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBt
dXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5n
IGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgSFRNTCBkb2N1bWVudCBm
ZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAK
K1BBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8g
YSBIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhSIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNv
bm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
ZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgSFRNTCBkb2N1bWVudCBmZXRj
aGVkIGJ5IFhIUiBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sg
CisKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvY29ubmVj
dGVkLWNhbGxiYWNrcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvY29u
bmVjdGVkLWNhbGxiYWNrcy5odG1sCmluZGV4IGQxYTVhOTJkMDhmN2ZjY2Y3YmRmZmZkYmRlMjlm
NmFjMjEwMWU4ZjYuLmVlMjNhOWJjOWZhNWRmZjlkYjQ0NGE3NTlmNjFiYzA0MDkzYmYxNmYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxs
YmFja3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9jb25uZWN0
ZWQtY2FsbGJhY2tzLmh0bWwKQEAgLTcsNiArNyw3IEBACiA8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvY3VzdG9tLyNkZm4tY29u
bmVjdGVkLWNhbGxiYWNrIj4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvZG9jdW1lbnQt
dHlwZXMuanMiPjwvc2NyaXB0PgogPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzJz4KIDwvaGVhZD4KIDxib2R5PgpAQCAtMjAsODQgKzIx
LDY4IEBAIGNsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsKIH0KIGN1
c3RvbUVsZW1lbnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQnLCBNeUN1c3RvbUVsZW1lbnQp
OwogCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7Ci19LCAnSW5zZXJ0aW5nIGEgY3Vz
dG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5l
Y3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0KLSAgICBjYWxs
cyA9IFtdOwotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LSAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoY2FsbHMsIFtdKTsKLX0sICdJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0
YWNoZWQgbm9kZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sn
KTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICB2YXIgZG9jdW1lbnRXaXRob3V0
V2luZG93ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7Ci0K
LSAgICBjYWxscyA9IFtdOwotICAgIGRvY3VtZW50V2l0aG91dFdpbmRvdy5ib2R5LmFwcGVuZENo
aWxkKGluc3RhbmNlKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3Rl
ZCcsIGluc3RhbmNlXSk7Ci19LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHdp
bmRvdy1sZXNzIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxi
YWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFyIHBhcmVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHBhcmVudC5hcHBlbmRDaGlsZChpbnN0
YW5jZSk7Ci0KLSAgICBjYWxscyA9IFtdOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
cGFyZW50KTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZCcsIGlu
c3RhbmNlXSk7Ci19LCAnSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGEgY3VzdG9tIGVsZW1lbnQg
aW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNr
Jyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFyIHBhcmVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHBhcmVudC5hcHBlbmRDaGlsZChpbnN0YW5j
ZSk7Ci0gICAgdmFyIGRvY3VtZW50V2l0aG91dFdpbmRvdyA9IGRvY3VtZW50LmltcGxlbWVudGF0
aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1bWVu
dFdpdGhvdXRXaW5kb3cuYm9keS5hcHBlbmRDaGlsZChwYXJlbnQpOwotICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdJbnNlcnRpbmcg
YW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIHdpbmRvdy1sZXNzIGRvY3VtZW50
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVu
Y3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215
LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAn
Y2xvc2VkJ30pOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaG9zdCk7Ci0KLSAgICBj
YWxscyA9IFtdOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdJ
bnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgY29ubmVjdGVkIHNoYWRvdyB0cmVlIG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rp
b24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1
c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xv
c2VkJ30pOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAgY2Fs
bHMgPSBbXTsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpOwotICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdJbnNl
cnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgc2hhZG93IHRyZWUgd2l0aCBhIGN1c3RvbSBlbGVt
ZW50IGludG8gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxs
YmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBob3N0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0
dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhj
YWxscywgW10pOwotfSwgJ0luc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hl
ZCBzaGFkb3cgdHJlZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJh
Y2snKTsKK0RvY3VtZW50VHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoZW50cnkpIHsKKyAgICB2YXIg
ZG9jdW1lbnROYW1lID0gZW50cnkubmFtZTsKKyAgICB2YXIgZ2V0RG9jdW1lbnQgPSBlbnRyeS5j
cmVhdGU7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4g
Z2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0
YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAg
ICAgICAgICBjYWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBl
bmRDaGlsZChpbnN0YW5jZSk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxz
LCBbJ2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdJbnNlcnRp
bmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKKworICAgIHByb21pc2VfdGVzdChm
dW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24g
KGRvYykgeworICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAgICAgICAgIHZhciBwYXJlbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChp
bnN0YW5jZSk7CisgICAgICAgICAgICBjYWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3Vt
ZW50RWxlbWVudC5hcHBlbmRDaGlsZChwYXJlbnQpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOworICAgICAgICB9KTsKKyAg
ICB9LCAnSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSAnICsg
ZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFj
aycpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdl
dERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2YXIgaW5zdGFu
Y2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgICAg
ICAgICAgdmFyIGhvc3QgPSBkb2MuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJywgJ2RpdicpOworICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0
dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVs
ZW1lbnQuYXBwZW5kQ2hpbGQoaG9zdCk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAg
ICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKKyAgICAg
ICAgfSk7CisgICAgfSwgJ0luc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cg
dHJlZSBpbiBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNv
bm5lY3RlZENhbGxiYWNrJyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAg
ICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAg
ICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVt
ZW50Jyk7CisgICAgICAgICAgICB2YXIgaG9zdCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnZGl2Jyk7CisgICAgICAgICAgICB2YXIgc2hhZG93
Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworICAgICAgICAgICAg
c2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisKKyAgICAgICAgICAgIGNhbGxzID0g
W107CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOwor
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0
YW5jZV0pOworICAgICAgICB9KTsKKyAgICB9LCAnSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBv
ZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAo
ZG9jKSB7CisgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2MuY3JlYXRl
RWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2RpdicpOworICAgICAg
ICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9
KTsKKworICAgICAgICAgICAgY2FsbHMgPSBbXTsKKyAgICAgICAgICAgIHNoYWRvd1Jvb3QuYXBw
ZW5kQ2hpbGQoaW5zdGFuY2UpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxs
cywgW10pOworICAgICAgICB9KTsKKyAgICB9LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQg
aW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhICcgKyBkb2N1bWVu
dE5hbWUgKyAnIG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycp
OworfSk7CiAKIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3MtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3MtZXhwZWN0
ZWQudHh0CmluZGV4IGE4NTg2OWM2ZGJkMjJhZDBmNjE4YzUxYjA4MmZjNDM0ZWJlYzc0YzUuLmY5
MWM0OTU0NmRlZDdlNGIyZmI4MmY4NjhhMTRmYTdhMWJjNGM1MTggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNsYXNzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kZWZpbmVkLXBzZXVk
by1jbGFzcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKLVBBU1MgVGhlIGRlZmluZWQg
ZmxhZyBvZiBhIGN1c3RvbSBlbGVtZW50IG11c3QgYmUgc2V0IGlmIGEgY3VzdG9tIGVsZW1lbnQg
aGFzIG5vdCBiZWVuIHVwZ3JhZGVkIHlldCAKK1BBU1MgVGhlIGRlZmluZWQgZmxhZyBvZiBhIGN1
c3RvbSBlbGVtZW50IG11c3Qgbm90IGJlIHNldCBpZiBhIGN1c3RvbSBlbGVtZW50IGhhcyBub3Qg
YmVlbiB1cGdyYWRlZCB5ZXQgCiBQQVNTIFRoZSBkZWZpbmVkIGZsYWcgb2YgYSBjdXN0b20gZWxl
bWVudCBtdXN0IGJlIHNldCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgc3VjY2Vzc2Z1bGx5IHVw
Z3JhZGVkIAogUEFTUyBUaGUgZGVmaW5lZCBmbGFnIG9mIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCBi
ZSBzZXQgaWYgdGhlcmUgaXMgYSBtYXRjaGluZyBkZWZpbml0aW9uIAogUEFTUyBUaGUgZGVmaW5l
ZCBmbGFnIG9mIGEgY3VzdG9tIGVsZW1lbnQgY3JlYXRlZCBieSBIVE1MIHBhcnNlciBtdXN0IGJl
IHVuc2V0IGlmIHRoZXJlIGlzIG5vIG1hdGNoaW5nIGRlZmluaXRpb24gCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kZWZpbmVkLXBzZXVkby1jbGFzcy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3Mu
aHRtbAppbmRleCA4NTZjZWY1M2QxM2RhODc1MTZjMTlhYzc0NzI2MjhjNDA0ZjMzY2RjLi5iYjU5
YjlkMzVkN2VlYjVkODA0NWMyZjMzYzk2ODZjMjRlNmQ5YzYyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kZWZpbmVkLXBzZXVkby1jbGFzcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNsYXNzLmh0
bWwKQEAgLTE2LDcgKzE2LDcgQEAgdmFyIHVwZ3JhZGVDYW5kaWRhdGUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdteS1lbGVtZW50Jyk7CiAKIHRlc3QoZnVuY3Rpb24gKCkgewogICAgIGFzc2Vy
dF9mYWxzZSh1cGdyYWRlQ2FuZGlkYXRlLm1hdGNoZXMoJzpkZWZpbmVkJykpOwotfSwgJ1RoZSBk
ZWZpbmVkIGZsYWcgb2YgYSBjdXN0b20gZWxlbWVudCBtdXN0IGJlIHNldCBpZiBhIGN1c3RvbSBl
bGVtZW50IGhhcyBub3QgYmVlbiB1cGdyYWRlZCB5ZXQnKTsKK30sICdUaGUgZGVmaW5lZCBmbGFn
IG9mIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCBub3QgYmUgc2V0IGlmIGEgY3VzdG9tIGVsZW1lbnQg
aGFzIG5vdCBiZWVuIHVwZ3JhZGVkIHlldCcpOwogCiB2YXIgbWF0Y2hJbnNpZGVDb25zdHJ1Y3Rv
cjsKIGNsYXNzIE15RWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVk
LWNhbGxiYWNrcy1leHBlY3RlZC50eHQKaW5kZXggYTNhZmM1NjVlODBiMzU3NjY5YjRhNzljNDNi
M2QwMDNhY2E5ODc0My4uMmNlNmMzMWYwYjI4NDMzNGZhNzkwZmVjN2Y5MDBlZTU3YWMzMDYwZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVk
LWNhbGxiYWNrcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxl
bWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsNDMg
QEAKIAogUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBtdXN0
IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3Zpbmcg
YSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWhlZCBub2RlIG11c3Qgbm90IGVucXVldWUgYW5k
IGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLUZBSUwgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVu
dCBmcm9tIGEgd2luZG93LWxlc3MgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlz
Y29ubmVjdGVkQ2FsbGJhY2sgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4
cGVjdGVkIDIgZ290IDAKLVBBU1MgUmVtb3ZpbmcgYW4gYW5jZXN0b3Igb2YgYSBjdXN0b20gZWxl
bWVudCBmcm9tIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVk
Q2FsbGJhY2sgCi1GQUlMIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZy
b20gYSBhIHdpbmRvdy1sZXNzIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nv
bm5lY3RlZENhbGxiYWNrIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBl
Y3RlZCAyIGdvdCAwCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGNvbm5l
Y3RlZCBzaGFkb3cgdHJlZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxs
YmFjayAKLVBBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgc2hhZG93IHRyZWUgd2l0
aCBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9r
ZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBm
cm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRp
c2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20g
ZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVj
dGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRv
dyB0cmVlIGluIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVk
Q2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVt
ZW50IGZyb20gYWRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENh
bGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hlZCBz
aGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVs
ZW1lbnQgZnJvbSBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYW4gYW5jZXN0
b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVu
dCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVt
b3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBv
ZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVk
Q2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVt
ZW50IGZyb20gYWRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxl
bWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1l
bnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNj
b25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEg
bmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNr
IAorUEFTUyBSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgbmV3
IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhIG5l
dyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAK
K1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBh
bmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNr
IAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hlZCBzaGFkb3cg
dHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBuZXcgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVt
ZW50IGZyb20gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29u
bmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVt
ZW50IGZyb20gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29u
bmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNo
YWRvdyB0cmVlIGluIGEgY2xvbmVkIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRp
c2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBj
dXN0b20gZWxlbWVudCBmcm9tIGFjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQg
ZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGNsb25lZCBkb2N1
bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQ
QVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IGNyZWF0ZWQgYnkg
Y3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENh
bGxiYWNrIAorUEFTUyBSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9t
IGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVs
ZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVlIGluIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVI
VE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sg
CitQQVNTIFJlbW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20g
YWRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVt
ZW50IGZyb20gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBkb2N1bWVu
dCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQg
ZnJvbSBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYW4gYW5j
ZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBj
cmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFj
ayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4g
YSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIHRoZSBzaGFkb3cg
aG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYUhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBj
cmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFj
ayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93
IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURv
Y3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAK
K1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgaW4gYW4gaWZy
YW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBS
ZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgaW4g
YW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhIGRv
Y3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRD
YWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1l
bnQgZnJvbSBhZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRp
c2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20g
YSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBkb2N1bWVudCBpbiBhbiBp
ZnJhbWUgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBIVE1MIGRvY3VtZW50IGZldGNo
ZWQgYnkgWEhSIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgSFRNTCBk
b2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0
ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgc2hhZG93
IHRyZWUgaW4gYSBIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhSIG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhv
c3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIGFIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhS
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1v
dmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJl
bG9uZ3MgdG8gYSBIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhSIG11c3Qgbm90IGVucXVldWUg
YW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKKwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2tzLmh0
bWwKaW5kZXggNGIzNzVjMjVmZmM4Y2I2ZTM4OTdjZmZhMDQwNTZjMmZkZThjYjI4Mi4uNTY1NGQz
ODA4MzQ4ZTdlNGE5MTBjODhjNTU2NGY3M2NkMDU5Njg1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3Mu
aHRtbApAQCAtNyw2ICs3LDcgQEAKIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL3dlYmNvbXBvbmVudHMvc3BlYy9jdXN0b20vI2Rmbi1jb25uZWN0ZWQtY2FsbGJh
Y2siPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9kb2N1bWVudC10eXBlcy5qcyI+PC9z
Y3JpcHQ+CiA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5jc3MnPgogPC9oZWFkPgogPGJvZHk+CkBAIC0yMCw5MyArMjEsNzMgQEAgY2xhc3Mg
TXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewogfQogY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CiAKLXRlc3QoZnVu
Y3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215
LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnN0YW5j
ZSk7Ci0KLSAgICBjYWxscyA9IFtdOwotICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaW5z
dGFuY2UpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlzY29ubmVjdGVkJywg
aW5zdGFuY2VdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVu
dCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0
KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKLSAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAg
Y2FsbHMgPSBbXTsKLSAgICBwYXJlbnQucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoY2FsbHMsIFtdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50
IGZyb20gYSBkZXRhaGVkIG5vZGUgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3Rl
ZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFyIGRvY3Vt
ZW50V2l0aG91dFdpbmRvdyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1
bWVudCgpOwotICAgIGRvY3VtZW50V2l0aG91dFdpbmRvdy5ib2R5LmFwcGVuZENoaWxkKGluc3Rh
bmNlKTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgZG9jdW1lbnRXaXRob3V0V2luZG93LmJvZHku
cmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsn
ZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50
IGZyb20gYSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNj
b25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFu
Y2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZh
ciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYXJlbnQuYXBw
ZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFyZW50
KTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwYXJl
bnQpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlzY29ubmVjdGVkJywgaW5z
dGFuY2VdKTsKLX0sICdSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBhIGN1c3RvbSBlbGVtZW50IGZy
b20gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFj
aycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBwYXJlbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaW5zdGFu
Y2UpOwotICAgIHZhciBkb2N1bWVudFdpdGhvdXRXaW5kb3cgPSBkb2N1bWVudC5pbXBsZW1lbnRh
dGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKLSAgICBkb2N1bWVudFdpdGhvdXRXaW5kb3cuYm9k
eS5hcHBlbmRDaGlsZChwYXJlbnQpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1bWVudFdp
dGhvdXRXaW5kb3cuYm9keS5yZW1vdmVDaGlsZChwYXJlbnQpOwotICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoY2FsbHMsIFsnZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdSZW1vdmluZyBh
biBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgYSB3aW5kb3ctbGVzcyBkb2N1bWVu
dCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0
KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsKLSAgICB2
YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwotICAg
IHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAg
ICBzaGFkb3dSb290LnJlbW92ZUNoaWxkKGluc3RhbmNlKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1
YWxzKGNhbGxzLCBbJ2Rpc2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7Ci19LCAnUmVtb3ZpbmcgYSBj
dXN0b20gZWxlbWVudCBmcm9tIGEgY29ubmVjdGVkIHNoYWRvdyB0cmVlIG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewot
ICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVt
ZW50Jyk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwot
ICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoaG9zdCk7Ci0KLSAgICBjYWxscyA9IFtdOwotICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoaG9zdCk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNj
b25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotfSwgJ1JlbW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBh
IHNoYWRvdyB0cmVlIHdpdGggYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2snKTsKLQotdGVzdChmdW5jdGlv
biAoKSB7Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3Vz
dG9tLWVsZW1lbnQnKTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOwotICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9z
ZWQnfSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0KLSAgICBjYWxs
cyA9IFtdOwotICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoY2FsbHMsIFtdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50
IGZyb20gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
ZGlzY29ubmVjdGVkQ2FsbGJhY2snKTsKLQorRG9jdW1lbnRUeXBlcy5mb3JFYWNoKGZ1bmN0aW9u
IChlbnRyeSkgeworICAgIHZhciBkb2N1bWVudE5hbWUgPSBlbnRyeS5uYW1lOworICAgIHZhciBn
ZXREb2N1bWVudCA9IGVudHJ5LmNyZWF0ZTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAo
KSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgewor
ICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3Vz
dG9tLWVsZW1lbnQnKTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hp
bGQoaW5zdGFuY2UpOworICAgICAgICAgICAgY2FsbHMgPSBbXTsKKyAgICAgICAgICAgIGRvYy5k
b2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOworICAgICAgICAgICAgYXNzZXJ0
X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOworICAgICAg
ICB9KTsKKyAgICB9LCAnUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgJyArIGRvY3Vt
ZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sn
KTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBnZXRE
b2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGluc3RhbmNl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAgICAg
ICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAg
ICAgIHBhcmVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisgICAgICAgICAgICBkb2MuZG9jdW1l
bnRFbGVtZW50LmFwcGVuZENoaWxkKHBhcmVudCk7CisgICAgICAgICAgICBjYWxscyA9IFtdOwor
ICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChwYXJlbnQpOworICAg
ICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0
YW5jZV0pOworICAgICAgICB9KTsKKyAgICB9LCAnUmVtb3ZpbmcgYW4gYW5jZXN0b3Igb2YgY3Vz
dG9tIGVsZW1lbnQgZnJvbSBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rp
b24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2Mp
IHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215
LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2YXIgaG9zdCA9IGRvYy5jcmVhdGVFbGVt
ZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnZGl2Jyk7CisgICAgICAgICAg
ICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwor
ICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChob3N0KTsKKyAgICAg
ICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworCisgICAgICAgICAgICBj
YWxscyA9IFtdOworICAgICAgICAgICAgc2hhZG93Um9vdC5yZW1vdmVDaGlsZChpbnN0YW5jZSk7
CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Rpc2Nvbm5lY3RlZCcs
IGluc3RhbmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVt
ZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7CisKKyAgICBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0
aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2YXIgaG9zdCA9IGRvYy5j
cmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnZGl2Jyk7Cisg
ICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xv
c2VkJ30pOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Cisg
ICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOworCisgICAg
ICAgICAgICBjYWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5yZW1v
dmVDaGlsZChob3N0KTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsn
ZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ1JlbW92aW5n
IHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYScgKyBkb2N1bWVudE5h
bWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7CisK
KyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1l
bnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2
YXIgaG9zdCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwnLCAnZGl2Jyk7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hh
ZG93KHttb2RlOiAnY2xvc2VkJ30pOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChpbnN0YW5jZSk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBzaGFk
b3dSb290LnJlbW92ZUNoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoY2FsbHMsIFtdKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ1JlbW92aW5nIGEgY3VzdG9t
IGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhICcg
KyBkb2N1bWVudE5hbWUgKyAnIG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0
ZWRDYWxsYmFjaycpOworfSk7CiAKIDwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2RvY3VtZW50LXR5
cGVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA3ZWU1YTkwM2JiNWUzZThhZjA0ZTRlNWIwMWY3MjlkZmRkZDZi
NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9y
ZXNvdXJjZXMvZG9jdW1lbnQtdHlwZXMuanMKQEAgLTAsMCArMSw3NCBAQAorY29uc3QgRG9jdW1l
bnRUeXBlcyA9IFsKKyAgICB7CisgICAgICAgIG5hbWU6ICdkb2N1bWVudCcsCisgICAgICAgIGNy
ZWF0ZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRvY3VtZW50KTsgfQor
ICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVt
ZW50JywKKyAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4g
bmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgICB2YXIgdGVt
cGxhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnLCAndGVtcGxhdGUnKTsKKyAgICAgICAgICAgICAgICB2YXIgZG9jID0gdGVtcGxhdGUu
Y29udGVudC5vd25lckRvY3VtZW50OworICAgICAgICAgICAgICAgIGlmICghZG9jLmRvY3VtZW50
RWxlbWVudCkKKyAgICAgICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVF
bGVtZW50KCdodG1sJykpOworICAgICAgICAgICAgICAgIHJlc29sdmUoZG9jKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICduZXcgZG9j
dW1lbnQnLAorICAgICAgICBjcmVhdGU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkgeworICAgICAgICAgICAgICAgIHZhciBk
b2MgPSBuZXcgRG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZG9j
LmNyZWF0ZUVsZW1lbnQoJ2h0bWwnKSk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShkb2MpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTog
J2Nsb25lZCBkb2N1bWVudCcsCisgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7CisgICAgICAgICAg
ICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmNsb25lTm9kZShmYWxzZSk7CisgICAgICAgICAgICAg
ICAgZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCdodG1sJykpOworICAgICAgICAg
ICAgICAgIHJlc29sdmUoZG9jKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfSwK
KyAgICB7CisgICAgICAgIG5hbWU6ICdkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1
bWVudCcsCisgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UucmVzb2x2ZShkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1l
bnQoKSk7CisgICAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ0hUTUwgZG9j
dW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCcsCisgICAgICAgIGNyZWF0ZTogZnVuY3Rp
b24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkb2N1bWVudC5pbXBs
ZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcs
ICdodG1sJywgbnVsbCkpOworICAgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6
ICdkb2N1bWVudCBpbiBhbiBpZnJhbWUnLAorICAgICAgICBjcmVhdGU6IGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgICAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2lmcmFtZScpOworICAgICAgICAgICAgICAgIGlmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7
IHJlc29sdmUoaWZyYW1lLmNvbnRlbnREb2N1bWVudCk7IH0KKyAgICAgICAgICAgICAgICBpZnJh
bWUub25lcnJvciA9IGZ1bmN0aW9uICgpIHsgcmVqZWN0KCdGYWlsZWQgdG8gbG9hZCBhbiBlbXB0
eSBpZnJhbWUnKTsgfQorICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg
ICAgIG5hbWU6ICdIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhSJywKKyAgICAgICAgY3JlYXRl
OiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24g
KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0
cFJlcXVlc3QoKTsKKyAgICAgICAgICAgICAgICB4aHIub3BlbignR0VUJywgJ3Jlc291cmNlcy9l
bXB0eS1odG1sLWRvY3VtZW50Lmh0bWwnKTsKKyAgICAgICAgICAgICAgICB4aHIub3ZlcnJpZGVN
aW1lVHlwZSgndGV4dC94bWwnKTsKKyAgICAgICAgICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rp
b24gKCkgeyByZXNvbHZlKHhoci5yZXNwb25zZVhNTCk7IH0KKyAgICAgICAgICAgICAgICB4aHIu
b25lcnJvciA9IGZ1bmN0aW9uICgpIHsgcmVqZWN0KCdGYWlsZWQgdG8gZmV0Y2ggdGhlIGRvY3Vt
ZW50Jyk7IH0KKyAgICAgICAgICAgICAgICB4aHIuc2VuZCgpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKyAgICB9CitdOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9lbXB0eS1odG1s
LWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJj
ZXMvZW1wdHktaHRtbC1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhY2EzZjQ5ZmQxNTg0MGEz
Njg4YTEwYTkxYjU2NTI0NTY2ODkzYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvZW1wdHktaHRtbC1kb2N1bWVudC5odG1sCkBA
IC0wLDAgKzEsNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286830</attachid>
            <date>2016-08-23 21:25:54 -0700</date>
            <delta_ts>2016-08-23 22:10:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-161065-20160823212354.patch</filename>
            <type>text/plain</type>
            <size>45739</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA4LTIzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkb3B0ZWQgY3VzdG9tIGVsZW1l
bnQncyBjYWxsYmFja3Mgc2hvdWxkIGNvbnRpbnVlIHRvIHdvcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTA2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAgICAgICAgV2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGFk
b3B0ZWQgaW50byBhbm90aGVyIGRvY3VtZW50LCBpdHMgcmVhY3Rpb24gY2FsbGJhY2tzIG5lZWQg
dG8gY29udGludWUgdG8gd29yay4KKyAgICAgICAgQmVjYXVzZSBhIGRpZmZlcmVudCBkb2N1bWVu
dCBtYXkgaGF2ZSBpdHMgb3duIGdsb2JhbCBvYmplY3QsIGVhY2ggY3VzdG9tIGVsZW1lbnQgbmVl
ZHMgdG8gcmVtZW1iZXIgaXRzCisgICAgICAgIG9yaWdpbmFsIGdsb2JhbCBvYmplY3Qgb3IgSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlLiBUaGlzIHBhdGNoIGFkZHMgdGhlIGxhdHRlciB0byB0aGUg
ZWxlbWVudCByYXJlIGRhdGEuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3VzdG9tLWVsZW1lbnRz
L2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jdXN0b20tZWxl
bWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21FbGVtZW50SW50ZXJmYWNlOjpjb25zdHJ1Y3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFkZUVsZW1lbnQpOgorICAgICAgICAqIGRv
bS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5k
SW50ZXJmYWNlRm9yQ3VzdG9tRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpD
dXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZUNvbm5lY3RlZENhbGxiYWNrSWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVl
dWVEaXNjb25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3Rv
bUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlQXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrSWZO
ZWVkZWQpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6Omluc2VydGVkSW50byk6IEludm9rZSBjYWxsYmFja3MgZXZlbiB3aGVuIHRoZSBjdXJy
ZW50IGRvY3VtZW50IGlzIG5vdCBhIEhUTUwgZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpyZW1vdmVkRnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQpOiBNb3ZlZCBmcm9tIE5vZGUuIEFkZCB0aGUgZWxl
bWVudCBpbnRlcmZhY2UgdG8gdGhlIHJhcmUgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmN1c3RvbUVsZW1lbnRJbnRlcmZhY2UpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVu
dC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuY3BwOgorICAgICAgICAqIGRvbS9F
bGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6Y3Vz
dG9tRWxlbWVudEludGVyZmFjZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJh
cmVEYXRhOjpzZXRDdXN0b21FbGVtZW50SW50ZXJmYWNlKTogQWRkZWQuCisgICAgICAgICogZG9t
L05vZGUuaDoKKyAgICAgICAgKChXZWJDb3JlOjpOb2RlOjpzZXRDdXN0b21FbGVtZW50SXNSZXNv
bHZlZCk6IERlbGV0ZWQuCisKIDIwMTYtMDgtMjMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiAhdmlldygpLmxheW91dFN0YXRlRW5h
YmxlZCgpIHx8IHN0eWxlKCkuc3R5bGVUeXBlKCkgPT0gRklSU1RfTEVUVEVSIGluIFdlYkNvcmU6
OlJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlLmNwcAkocmV2aXNpb24gMjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgs
NyBAQCBSZWZQdHI8RWxlbWVudD4gSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlCiAgICAgRWxlbWVu
dCogd3JhcHBlZEVsZW1lbnQgPSBKU0VsZW1lbnQ6OnRvV3JhcHBlZChuZXdFbGVtZW50KTsKICAg
ICBpZiAoIXdyYXBwZWRFbGVtZW50KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB3cmFw
cGVkRWxlbWVudC0+c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQoKTsKKyAgICB3cmFwcGVkRWxl
bWVudC0+c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQoKnRoaXMpOwogICAgIHJldHVybiB3cmFw
cGVkRWxlbWVudDsKIH0KIApAQCAtMTQ3LDggKzE0Nyw3IEBAIHZvaWQgSlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlOjp1cGdyYWRlRWwKICAgICAgICAgdGhyb3dJbnZhbGlkU3RhdGVFcnJvcigqc3Rh
dGUsICJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBmYWlsZWQgdG8gdXBncmFkZSBhbiBlbGVt
ZW50Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgd3JhcHBlZEVsZW1lbnQtPnNldEN1
c3RvbUVsZW1lbnRJc1Jlc29sdmVkKCk7Ci0gICAgQVNTRVJUKHdyYXBwZWRFbGVtZW50LT5pc0N1
c3RvbUVsZW1lbnQoKSk7CisgICAgd3JhcHBlZEVsZW1lbnQtPnNldEN1c3RvbUVsZW1lbnRJc1Jl
c29sdmVkKCp0aGlzKTsKIH0KIAogdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6Omludm9r
ZUNhbGxiYWNrKEVsZW1lbnQmIGVsZW1lbnQsIEpTT2JqZWN0KiBjYWxsYmFjaywgY29uc3QgV1RG
OjpGdW5jdGlvbjx2b2lkKEV4ZWNTdGF0ZSosIE1hcmtlZEFyZ3VtZW50QnVmZmVyJik+JiBhZGRB
cmd1bWVudHMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9u
UXVldWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50
UmVhY3Rpb25RdWV1ZS5jcHAJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiwy
MyArMTA2LDkgQEAgdm9pZCBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZQogICAg
ICAgICBxdWV1ZS0+bV9pdGVtcy5hcHBlbmQoe0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRl
bTo6VHlwZTo6RWxlbWVudFVwZ3JhZGUsIGVsZW1lbnQsIGVsZW1lbnRJbnRlcmZhY2V9KTsKIH0K
IAotc3RhdGljIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSogZmluZEludGVyZmFjZUZvckN1c3Rv
bUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICBBU1NFUlQoZWxlbWVudC5pc0N1c3Rv
bUVsZW1lbnQoKSk7Ci0gICAgYXV0byogd2luZG93ID0gZWxlbWVudC5kb2N1bWVudCgpLmRvbVdp
bmRvdygpOwotICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IGF1dG8qIHJlZ2lzdHJ5ID0gd2luZG93LT5jdXN0b21FbGVtZW50UmVnaXN0cnkoKTsKLSAgICBp
ZiAoIXJlZ2lzdHJ5KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiByZWdp
c3RyeS0+ZmluZEludGVyZmFjZShlbGVtZW50LnRhZ1FOYW1lKCkpOwotfQotCiB2b2lkIEN1c3Rv
bUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlQ29ubmVjdGVkQ2FsbGJhY2tJZk5lZWRlZChF
bGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSBmaW5kSW50
ZXJmYWNlRm9yQ3VzdG9tRWxlbWVudChlbGVtZW50KTsKKyAgICBhdXRvKiBlbGVtZW50SW50ZXJm
YWNlID0gZWxlbWVudC5jdXN0b21FbGVtZW50SW50ZXJmYWNlKCk7CiAgICAgaWYgKCFlbGVtZW50
SW50ZXJmYWNlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzMiw3ICsxMTgsNyBAQCB2b2lkIEN1
c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlCiAKIHZvaWQgQ3VzdG9tRWxlbWVudFJl
YWN0aW9uUXVldWU6OmVucXVldWVEaXNjb25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQm
IGVsZW1lbnQpCiB7Ci0gICAgYXV0byogZWxlbWVudEludGVyZmFjZSA9IGZpbmRJbnRlcmZhY2VG
b3JDdXN0b21FbGVtZW50KGVsZW1lbnQpOworICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSBl
bGVtZW50LmN1c3RvbUVsZW1lbnRJbnRlcmZhY2UoKTsKICAgICBpZiAoIWVsZW1lbnRJbnRlcmZh
Y2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTQyLDcgKzEyOCw3IEBAIHZvaWQgQ3VzdG9tRWxl
bWVudFJlYWN0aW9uUXVldWU6OmVucXVldWUKIAogdm9pZCBDdXN0b21FbGVtZW50UmVhY3Rpb25R
dWV1ZTo6ZW5xdWV1ZUF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQmIGVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpCiB7Ci0gICAgYXV0
byogZWxlbWVudEludGVyZmFjZSA9IGZpbmRJbnRlcmZhY2VGb3JDdXN0b21FbGVtZW50KGVsZW1l
bnQpOworICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSBlbGVtZW50LmN1c3RvbUVsZW1lbnRJ
bnRlcmZhY2UoKTsKICAgICBpZiAoIWVsZW1lbnRJbnRlcmZhY2UgfHwgIWVsZW1lbnRJbnRlcmZh
Y2UtPm9ic2VydmVzQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkpKQogICAgICAg
ICByZXR1cm47CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDIwNDg4MykK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3
NCw3ICsxNTc0LDggQEAgTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBFbGVtZQog
ICAgIC8vIFRoaXMgZWxlbWVudCBpcyBuZXcgdG8gdGhlIHNoYWRvdyB0cmVlIChhbmQgaXRzIHRy
ZWUgc2NvcGUpIG9ubHkgaWYgdGhlIHBhcmVudCBpbnRvIHdoaWNoIHRoaXMgZWxlbWVudAogICAg
IC8vIG9yIGl0cyBhbmNlc3RvciBpcyBpbnNlcnRlZCBiZWxvbmdzIHRvIHRoZSBzYW1lIHRyZWUg
c2NvcGUgYXMgdGhpcyBlbGVtZW50J3MuCiAgICAgVHJlZVNjb3BlKiBuZXdTY29wZSA9ICZpbnNl
cnRpb25Qb2ludC50cmVlU2NvcGUoKTsKLSAgICBIVE1MRG9jdW1lbnQqIG5ld0RvY3VtZW50ID0g
IXdhc0luRG9jdW1lbnQgJiYgaW5Eb2N1bWVudCgpICYmIGlzPEhUTUxEb2N1bWVudD4obmV3U2Nv
cGUtPmRvY3VtZW50U2NvcGUoKSkgPyAmZG93bmNhc3Q8SFRNTERvY3VtZW50PihuZXdTY29wZS0+
ZG9jdW1lbnRTY29wZSgpKSA6IG51bGxwdHI7CisgICAgYm9vbCBiZWNvbWVDb25uZWN0ZWQgPSAh
d2FzSW5Eb2N1bWVudCAmJiBpbkRvY3VtZW50KCk7CisgICAgSFRNTERvY3VtZW50KiBuZXdEb2N1
bWVudCA9IGJlY29tZUNvbm5lY3RlZCAmJiBpczxIVE1MRG9jdW1lbnQ+KG5ld1Njb3BlLT5kb2N1
bWVudFNjb3BlKCkpID8gJmRvd25jYXN0PEhUTUxEb2N1bWVudD4obmV3U2NvcGUtPmRvY3VtZW50
U2NvcGUoKSkgOiBudWxscHRyOwogICAgIGlmIChuZXdTY29wZSAhPSAmdHJlZVNjb3BlKCkpCiAg
ICAgICAgIG5ld1Njb3BlID0gbnVsbHB0cjsKIApAQCAtMTYwMCw3ICsxNjAxLDcgQEAgTm9kZTo6
SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBFbGVtZQogICAgIH0KIAogI2lmIEVOQUJMRShD
VVNUT01fRUxFTUVOVFMpCi0gICAgaWYgKG5ld0RvY3VtZW50ICYmIFVOTElLRUxZKGlzQ3VzdG9t
RWxlbWVudCgpKSkKKyAgICBpZiAoYmVjb21lQ29ubmVjdGVkICYmIFVOTElLRUxZKGlzQ3VzdG9t
RWxlbWVudCgpKSkKICAgICAgICAgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVD
b25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKCp0aGlzKTsKICNlbmRpZgogCkBAIC0xNjIyLDcgKzE2
MjMsOCBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmCiAKICAgICBp
ZiAoaW5zZXJ0aW9uUG9pbnQuaXNJblRyZWVTY29wZSgpKSB7CiAgICAgICAgIFRyZWVTY29wZSog
b2xkU2NvcGUgPSAmaW5zZXJ0aW9uUG9pbnQudHJlZVNjb3BlKCk7Ci0gICAgICAgIEhUTUxEb2N1
bWVudCogb2xkRG9jdW1lbnQgPSBpbkRvY3VtZW50KCkgJiYgaXM8SFRNTERvY3VtZW50PihvbGRT
Y29wZS0+ZG9jdW1lbnRTY29wZSgpKSA/ICZkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KG9sZFNjb3Bl
LT5kb2N1bWVudFNjb3BlKCkpIDogbnVsbHB0cjsKKyAgICAgICAgYm9vbCBiZWNvbWVEaXNjb25u
ZWN0ZWQgPSBpbkRvY3VtZW50KCk7CisgICAgICAgIEhUTUxEb2N1bWVudCogb2xkRG9jdW1lbnQg
PSBiZWNvbWVEaXNjb25uZWN0ZWQgJiYgaXM8SFRNTERvY3VtZW50PihvbGRTY29wZS0+ZG9jdW1l
bnRTY29wZSgpKSA/ICZkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KG9sZFNjb3BlLT5kb2N1bWVudFNj
b3BlKCkpIDogbnVsbHB0cjsKIAogICAgICAgICAvLyBDb250YWluZXJOb2RlOjpyZW1vdmVCZXR3
ZWVuIGFsd2F5cyBzZXRzIHRoZSByZW1vdmVkIGNoaWQncyB0cmVlIHNjb3BlIHRvIERvY3VtZW50
J3MgYnV0IEluVHJlZVNjb3BlIGZsYWcgaXMgdW5zZXQgaW4gTm9kZTo6cmVtb3ZlZEZyb20uCiAg
ICAgICAgIC8vIFNvIHRoaXMgZWxlbWVudCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIG9sZCB0
cmVlIHNjb3BlIG9ubHkgaWYgSW5UcmVlU2NvcGUgZmxhZyBpcyBzZXQgYW5kIHRoaXMgZWxlbWVu
dCdzIHRyZWUgc2NvcGUgaXMgRG9jdW1lbnQncy4KQEAgLTE2NTEsNyArMTY1Myw3IEBAIHZvaWQg
RWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYKICAgICAgICAgfQogCiAjaWYgRU5B
QkxFKENVU1RPTV9FTEVNRU5UUykKLSAgICAgICAgaWYgKG9sZERvY3VtZW50ICYmIFVOTElLRUxZ
KGlzQ3VzdG9tRWxlbWVudCgpKSkKKyAgICAgICAgaWYgKGJlY29tZURpc2Nvbm5lY3RlZCAmJiBV
TkxJS0VMWShpc0N1c3RvbUVsZW1lbnQoKSkpCiAgICAgICAgICAgICBDdXN0b21FbGVtZW50UmVh
Y3Rpb25RdWV1ZTo6ZW5xdWV1ZURpc2Nvbm5lY3RlZENhbGxiYWNrSWZOZWVkZWQoKnRoaXMpOwog
I2VuZGlmCiAgICAgfQpAQCAtMTgyMSw2ICsxODIzLDI3IEBAIFNoYWRvd1Jvb3QmIEVsZW1lbnQ6
OmVuc3VyZVVzZXJBZ2VudFNoYWQKICAgICByZXR1cm4gKnNoYWRvd1Jvb3Q7CiB9CiAKKyAgICAK
KyNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQorCit2b2lkIEVsZW1lbnQ6OnNldEN1c3RvbUVs
ZW1lbnRJc1Jlc29sdmVkKEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSYgZWxlbWVudEludGVyZmFj
ZSkKK3sKKyAgICBjbGVhckZsYWcoSXNFZGl0aW5nVGV4dE9yVW5yZXNvbHZlZEN1c3RvbUVsZW1l
bnRGbGFnKTsKKyAgICBzZXRGbGFnKElzQ3VzdG9tRWxlbWVudCk7CisgICAgZW5zdXJlRWxlbWVu
dFJhcmVEYXRhKCkuc2V0Q3VzdG9tRWxlbWVudEludGVyZmFjZShlbGVtZW50SW50ZXJmYWNlKTsK
K30KKworSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKiBFbGVtZW50OjpjdXN0b21FbGVtZW50SW50
ZXJmYWNlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNDdXN0b21FbGVtZW50KCkpOworICAgIGlm
ICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGVs
ZW1lbnRSYXJlRGF0YSgpLT5jdXN0b21FbGVtZW50SW50ZXJmYWNlKCk7Cit9CisKKyNlbmRpZgor
CisKIGNvbnN0IEF0b21pY1N0cmluZyYgRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAog
ewogICAgIHJldHVybiBwc2V1ZG8oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNpb24g
MjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDQsNiArNDQsNyBAQCBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURh
dGE7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgSlNDdXN0b21F
bGVtZW50SW50ZXJmYWNlOwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIExvY2FsZTsKIGNs
YXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKQEAgLTI3Miw2ICsyNzMsMTEgQEAgcHVibGljOgog
ICAgIFNoYWRvd1Jvb3QqIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBTaGFkb3dSb290JiBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CiAKKyNpZiBF
TkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQorICAgIHZvaWQgc2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2
ZWQoSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlJik7CisgICAgSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlKiBjdXN0b21FbGVtZW50SW50ZXJmYWNlKCkgY29uc3Q7CisjZW5kaWYKKwogICAgIC8vIEZJ
WE1FOiB0aGlzIHNob3VsZCBub3QgYmUgdmlydHVhbCwgZG8gbm90IG92ZXJyaWRlIHRoaXMuCiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCShyZXZpc2lvbiAyMDQ4
ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQsNyArNDQsNyBAQCBzdHJ1Y3QgU2FtZVNpemVBc0VsZW1lbnRSYXJlRGF0YSA6
IE5vZGVSCiAgICAgUmVnaW9uT3ZlcnNldFN0YXRlIHJlZ2lvbk92ZXJzZXRTdGF0ZTsKICAgICBM
YXlvdXRTaXplIHNpemVGb3JSZXNpemluZzsKICAgICBJbnRQb2ludCBzYXZlZExheWVyU2Nyb2xs
UG9zaXRpb247Ci0gICAgdm9pZCogcG9pbnRlcnNbN107CisgICAgdm9pZCogcG9pbnRlcnNbOF07
CiB9OwogCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihFbGVtZW50UmFyZURhdGEpID09IHNpemVvZihT
YW1lU2l6ZUFzRWxlbWVudFJhcmVEYXRhKSwgIkVsZW1lbnRSYXJlRGF0YSBzaG91bGQgc3RheSBz
bWFsbCIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkocmV2aXNpb24g
MjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNp
bmNsdWRlICJEYXRhc2V0RE9NU3RyaW5nTWFwLmgiCisjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVkZSAiTm9kZVJh
cmVEYXRhLmgiCiAjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgpAQCAtOTMsNiArOTQsMTEgQEAg
cHVibGljOgogICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBtX3No
YWRvd1Jvb3QuZ2V0KCk7IH0KICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUmVmUHRyPFNoYWRvd1Jv
b3Q+JiYgc2hhZG93Um9vdCkgeyBtX3NoYWRvd1Jvb3QgPSBXVEZNb3ZlKHNoYWRvd1Jvb3QpOyB9
CiAKKyNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQorICAgIEpTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZSogY3VzdG9tRWxlbWVudEludGVyZmFjZSgpIHsgcmV0dXJuIG1fY3VzdG9tRWxlbWVudElu
dGVyZmFjZS5nZXQoKTsgfQorICAgIHZvaWQgc2V0Q3VzdG9tRWxlbWVudEludGVyZmFjZShKU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UmIGN1c3RvbUVsZW1lbnRJbnRlcmZhY2UpIHsgbV9jdXN0b21F
bGVtZW50SW50ZXJmYWNlID0gJmN1c3RvbUVsZW1lbnRJbnRlcmZhY2U7IH0KKyNlbmRpZgorCiAg
ICAgTmFtZWROb2RlTWFwKiBhdHRyaWJ1dGVNYXAoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0
ZU1hcC5nZXQoKTsgfQogICAgIHZvaWQgc2V0QXR0cmlidXRlTWFwKHN0ZDo6dW5pcXVlX3B0cjxO
YW1lZE5vZGVNYXA+IGF0dHJpYnV0ZU1hcCkgeyBtX2F0dHJpYnV0ZU1hcCA9IFdURk1vdmUoYXR0
cmlidXRlTWFwKTsgfQogCkBAIC0xNDksNiArMTU1LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RGF0YXNldERPTVN0cmluZ01hcD4gbV9kYXRhc2V0OwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxET01Ub2tlbkxpc3Q+IG1fY2xhc3NMaXN0OwogICAgIFJlZlB0cjxTaGFkb3dSb290PiBt
X3NoYWRvd1Jvb3Q7CisgICAgUmVmUHRyPEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZT4gbV9jdXN0
b21FbGVtZW50SW50ZXJmYWNlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxOYW1lZE5vZGVNYXA+IG1f
YXR0cmlidXRlTWFwOwogCiAgICAgUmVmUHRyPFBzZXVkb0VsZW1lbnQ+IG1fYmVmb3JlUHNldWRv
RWxlbWVudDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAkocmV2aXNpb24gMjA0ODgzKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjY3LDcgKzI2Nyw2IEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgaXNVbnJlc29sdmVkQ3VzdG9tRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IGlzRWxlbWVudE5vZGUoKSAmJiBnZXRGbGFnKElzRWRpdGluZ1RleHRPclVucmVzb2x2ZWRDdXN0
b21FbGVtZW50RmxhZyk7IH0KICAgICB2b2lkIHNldElzVW5yZXNvbHZlZEN1c3RvbUVsZW1lbnQo
KSB7IHNldEZsYWcoSXNFZGl0aW5nVGV4dE9yVW5yZXNvbHZlZEN1c3RvbUVsZW1lbnRGbGFnKTsg
fQotICAgIHZvaWQgc2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQoKTsKICNlbmRpZgogCiAgICAg
Ly8gUmV0dXJucyBudWxsLCBhIGNoaWxkIG9mIFNoYWRvd1Jvb3QsIG9yIGEgbGVnYWN5IHNoYWRv
dyByb290LgpAQCAtNzY5LDE2ICs3NjgsNiBAQCBpbmxpbmUgQ29udGFpbmVyTm9kZSogTm9kZTo6
cGFyZW50Tm9kZUd1CiAgICAgcmV0dXJuIHBhcmVudE5vZGUoKTsKIH0KIAotI2lmIEVOQUJMRShD
VVNUT01fRUxFTUVOVFMpCi0KLWlubGluZSB2b2lkIE5vZGU6OnNldEN1c3RvbUVsZW1lbnRJc1Jl
c29sdmVkKCkKLXsKLSAgICBjbGVhckZsYWcoSXNFZGl0aW5nVGV4dE9yVW5yZXNvbHZlZEN1c3Rv
bUVsZW1lbnRGbGFnKTsKLSAgICBzZXRGbGFnKElzQ3VzdG9tRWxlbWVudCk7Ci19Ci0KLSNlbmRp
ZgotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcp
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMDQ4NjApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxNi0wOC0yMyAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBBZG9wdGVkIGN1c3RvbSBlbGVtZW50J3MgY2Fs
bGJhY2tzIHNob3VsZCBjb250aW51ZSB0byB3b3JrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwNjUKKworICAgICAgICBSZXZpZXdlZCBieSBBbmRy
ZWFzIEtsaW5nLgorCisgICAgICAgIEFkZGVkIHRlc3QgY2FzZXMgZm9yIGFkb3B0aW5nIGN1c3Rv
bSBlbGVtZW50cyBpbnRvIHZhcmlvdXMga2luZHMgb2YgZG9jdW1lbnRzLgorCisgICAgICAgICog
ZmFzdC9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sOgor
ICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNsYXNzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9kZWZpbmVkLXBzZXVkby1j
bGFzcy5odG1sOgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1j
YWxsYmFja3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL2Rp
c2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbDoKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50
cy9yZXNvdXJjZXMvZG9jdW1lbnQtdHlwZXMuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Vz
dG9tLWVsZW1lbnRzL3Jlc291cmNlcy9lbXB0eS1odG1sLWRvY3VtZW50Lmh0bWw6IEFkZGVkLgor
CiAyMDE2LTA4LTIzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
QVNTRVJUSU9OIEZBSUxFRDogaGFzT3ZlcmZsb3dpbmdDZWxsID09IHRoaXMtPmhhc092ZXJmbG93
aW5nQ2VsbCgpIGluIFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Y29tcHV0ZU92ZXJmbG93
RnJvbUNlbGxzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9jb25uZWN0
ZWQtY2FsbGJhY2tzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2N1c3RvbS1lbGVtZW50cy9jb25uZWN0ZWQtY2FsbGJhY2tzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjA0ODgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVk
LWNhbGxiYWNrcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEsNDMgQEAK
IAogUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1
c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBub2RlIG11c3Qgbm90IGVucXVldWUgYW5kIGlu
dm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLUZBSUwgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQg
aW50byBhIHdpbmRvdy1sZXNzIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5l
Y3RlZENhbGxiYWNrIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3Rl
ZCAyIGdvdCAwCi1QQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBhIGN1c3RvbSBlbGVtZW50
IGludG8gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFj
ayAKLUZBSUwgSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSB3
aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxs
YmFjayBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMiBnb3Qg
MAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgY29ubmVjdGVkIHNoYWRv
dyB0cmVlIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBJ
bnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgc2hhZG93IHRyZWUgd2l0aCBhIGN1c3RvbSBl
bGVtZW50IGludG8gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRD
YWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVk
IHNoYWRvdyB0cmVlIG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFj
ayAKK1BBU1MgSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBk
b2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1Mg
SW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgZG9jdW1l
bnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2Vy
dGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQg
bXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGlu
ZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9u
Z3MgdG8gYSBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2Fs
bGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBv
ZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2Fs
bGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRv
IGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRv
IGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyB0aGUg
c2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgb2YgYSB0ZW1w
bGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRy
ZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3Qg
bm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5n
IGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIG5ldyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGlu
dm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1
c3RvbSBlbGVtZW50IGludG8gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
Y29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8g
YSBzaGFkb3cgdHJlZSBpbiBhIG5ldyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBj
b25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1
c3RvbSBlbGVtZW50IGludG8gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
Y29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8g
YSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBuZXcgZG9jdW1lbnQgbXVz
dCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRp
bmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgY2xvbmVkIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Ig
b2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1l
bnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgY2xvbmVkIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBo
b3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9t
IGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGNs
b25lZCBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJh
Y2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBjcmVh
dGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0
ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50
IGludG8gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9t
IGVsZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVh
dGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sg
CitQQVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRv
IGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVt
ZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBkb2N1bWVu
dCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGlu
dG8gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3Rv
ciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0
ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFT
UyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSBIVE1M
IGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2Yg
YSBjdXN0b20gZWxlbWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURv
Y3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJ
bnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhh
dCBiZWxvbmdzIHRvIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11
c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0
aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGFuIGFu
Y2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVz
dCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBh
IGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIGRvY3VtZW50IGluIGFuIGlm
cmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5z
ZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVu
dCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sg
CitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cg
dHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBub3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0
b20gZWxlbWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGFuIGFuY2Vz
dG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhS
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRp
bmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSBIVE1MIGRvY3VtZW50
IGZldGNoZWQgYnkgWEhSIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNr
IAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50
byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
Y29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8g
YSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBIVE1MIGRvY3VtZW50IGZl
dGNoZWQgYnkgWEhSIG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFj
ayAKKwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9jb25uZWN0ZWQt
Y2FsbGJhY2tzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxl
bWVudHMvY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sCShyZXZpc2lvbiAyMDQ4ODMpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9jb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTcsNiArNyw3IEBACiA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby93ZWJjb21wb25lbnRzL3NwZWMvY3VzdG9tLyNkZm4tY29ubmVjdGVk
LWNhbGxiYWNrIj4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvZG9jdW1lbnQtdHlwZXMu
anMiPjwvc2NyaXB0PgogPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPScuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuY3NzJz4KIDwvaGVhZD4KIDxib2R5PgpAQCAtMjAsODQgKzIxLDY4IEBA
IGNsYXNzIE15Q3VzdG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW4KIH0KIGN1c3RvbUVsZW1l
bnRzLmRlZmluZSgnbXktY3VzdG9tLWVsZW1lbnQnLCBNeUN1c3RvbUVsZW1lbnQpOwogCi10ZXN0
KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdteS1jdXN0b20tZWxlbWVudCcpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxz
LCBbJ2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7Ci19LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1l
bnQgaW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxi
YWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0KLSAgICBjYWxscyA9IFtdOwot
ICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYXJl
bnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMs
IFtdKTsKLX0sICdJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgbm9k
ZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKLQotdGVz
dChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICB2YXIgZG9jdW1lbnRXaXRob3V0V2luZG93ID0g
ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7Ci0KLSAgICBjYWxs
cyA9IFtdOwotICAgIGRvY3VtZW50V2l0aG91dFdpbmRvdy5ib2R5LmFwcGVuZENoaWxkKGluc3Rh
bmNlKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZCcsIGluc3Rh
bmNlXSk7Ci19LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHdpbmRvdy1sZXNz
IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrJyk7Ci0K
LXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHBhcmVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0K
LSAgICBjYWxscyA9IFtdOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFyZW50KTsK
LSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7
Ci19LCAnSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRv
Y3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRl
c3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOwotICAgIHBhcmVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0gICAg
dmFyIGRvY3VtZW50V2l0aG91dFdpbmRvdyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0
ZUhUTUxEb2N1bWVudCgpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1bWVudFdpdGhvdXRX
aW5kb3cuYm9keS5hcHBlbmRDaGlsZChwYXJlbnQpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
Y2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdJbnNlcnRpbmcgYW4gYW5jZXN0
b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIHdpbmRvdy1sZXNzIGRvY3VtZW50IG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkg
ewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1l
bGVtZW50Jyk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LSAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30p
OwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaG9zdCk7Ci0KLSAgICBjYWxscyA9IFtd
OwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdJbnNlcnRpbmcg
YSBjdXN0b20gZWxlbWVudCBpbnRvIGEgY29ubmVjdGVkIHNoYWRvdyB0cmVlIG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewot
ICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVt
ZW50Jyk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwot
ICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAgY2FsbHMgPSBbXTsK
LSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpOwotICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdJbnNlcnRpbmcgdGhl
IHNoYWRvdyBob3N0IG9mIGEgc2hhZG93IHRyZWUgd2l0aCBhIGN1c3RvbSBlbGVtZW50IGludG8g
YSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOwot
Ci10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBob3N0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRv
dyh7bW9kZTogJ2Nsb3NlZCd9KTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgc2hhZG93Um9vdC5h
cHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgW10p
OwotfSwgJ0luc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cg
dHJlZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKK0Rv
Y3VtZW50VHlwZXMuZm9yRWFjaChmdW5jdGlvbiAoZW50cnkpIHsKKyAgICB2YXIgZG9jdW1lbnRO
YW1lID0gZW50cnkubmFtZTsKKyAgICB2YXIgZ2V0RG9jdW1lbnQgPSBlbnRyeS5jcmVhdGU7CisK
KyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1l
bnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICBj
YWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChp
bnN0YW5jZSk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5l
Y3RlZCcsIGluc3RhbmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdJbnNlcnRpbmcgYSBjdXN0
b20gZWxlbWVudCBpbnRvIGEgJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAo
KSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgewor
ICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3Vz
dG9tLWVsZW1lbnQnKTsKKyAgICAgICAgICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7
CisgICAgICAgICAgICBjYWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVu
dC5hcHBlbmRDaGlsZChwYXJlbnQpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhj
YWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOworICAgICAgICB9KTsKKyAgICB9LCAnSW5z
ZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSAnICsgZG9jdW1lbnRO
YW1lICsgJyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOworCisg
ICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50
KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgICAgICAgICAgdmFy
IGhvc3QgPSBkb2MuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
JywgJ2RpdicpOworICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRv
dyh7bW9kZTogJ2Nsb3NlZCd9KTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQoaG9zdCk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBz
aGFkb3dSb290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKKyAgICAgICAgfSk7Cisg
ICAgfSwgJ0luc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBh
ICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENh
bGxiYWNrJyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1
cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBp
bnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Cisg
ICAgICAgICAgICB2YXIgaG9zdCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwnLCAnZGl2Jyk7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhv
c3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworICAgICAgICAgICAgc2hhZG93Um9v
dC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAg
ICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwor
ICAgICAgICB9KTsKKyAgICB9LCAnSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3Rv
bSBlbGVtZW50IGludG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYW5kIGlu
dm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7Cisg
ICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0
b20tZWxlbWVudCcpOworICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2MuY3JlYXRlRWxlbWVudE5T
KCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2RpdicpOworICAgICAgICAgICAgdmFy
IHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKKworICAg
ICAgICAgICAgY2FsbHMgPSBbXTsKKyAgICAgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQo
aW5zdGFuY2UpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgW10pOwor
ICAgICAgICB9KTsKKyAgICB9LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRl
dGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhICcgKyBkb2N1bWVudE5hbWUgKyAn
IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOworfSk7CiAK
IDwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVu
dHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNsYXNzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMjA0ODgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVu
dHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3MtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogCi1QQVNTIFRoZSBkZWZpbmVkIGZsYWcgb2YgYSBjdXN0b20gZWxlbWVudCBt
dXN0IGJlIHNldCBpZiBhIGN1c3RvbSBlbGVtZW50IGhhcyBub3QgYmVlbiB1cGdyYWRlZCB5ZXQg
CitQQVNTIFRoZSBkZWZpbmVkIGZsYWcgb2YgYSBjdXN0b20gZWxlbWVudCBtdXN0IG5vdCBiZSBz
ZXQgaWYgYSBjdXN0b20gZWxlbWVudCBoYXMgbm90IGJlZW4gdXBncmFkZWQgeWV0IAogUEFTUyBU
aGUgZGVmaW5lZCBmbGFnIG9mIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCBiZSBzZXQgd2hlbiBhIGN1
c3RvbSBlbGVtZW50IGlzIHN1Y2Nlc3NmdWxseSB1cGdyYWRlZCAKIFBBU1MgVGhlIGRlZmluZWQg
ZmxhZyBvZiBhIGN1c3RvbSBlbGVtZW50IG11c3QgYmUgc2V0IGlmIHRoZXJlIGlzIGEgbWF0Y2hp
bmcgZGVmaW5pdGlvbiAKIFBBU1MgVGhlIGRlZmluZWQgZmxhZyBvZiBhIGN1c3RvbSBlbGVtZW50
IGNyZWF0ZWQgYnkgSFRNTCBwYXJzZXIgbXVzdCBiZSB1bnNldCBpZiB0aGVyZSBpcyBubyBtYXRj
aGluZyBkZWZpbml0aW9uIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMv
ZGVmaW5lZC1wc2V1ZG8tY2xhc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2N1c3RvbS1lbGVtZW50cy9kZWZpbmVkLXBzZXVkby1jbGFzcy5odG1sCShyZXZpc2lvbiAyMDQ4
ODMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kZWZpbmVkLXBzZXVkby1j
bGFzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw3ICsxNiw3IEBAIHZhciB1cGdyYWRlQ2Fu
ZGlkYXRlID0gZG9jdW1lbnQuY3JlYXRlRWwKIAogdGVzdChmdW5jdGlvbiAoKSB7CiAgICAgYXNz
ZXJ0X2ZhbHNlKHVwZ3JhZGVDYW5kaWRhdGUubWF0Y2hlcygnOmRlZmluZWQnKSk7Ci19LCAnVGhl
IGRlZmluZWQgZmxhZyBvZiBhIGN1c3RvbSBlbGVtZW50IG11c3QgYmUgc2V0IGlmIGEgY3VzdG9t
IGVsZW1lbnQgaGFzIG5vdCBiZWVuIHVwZ3JhZGVkIHlldCcpOworfSwgJ1RoZSBkZWZpbmVkIGZs
YWcgb2YgYSBjdXN0b20gZWxlbWVudCBtdXN0IG5vdCBiZSBzZXQgaWYgYSBjdXN0b20gZWxlbWVu
dCBoYXMgbm90IGJlZW4gdXBncmFkZWQgeWV0Jyk7CiAKIHZhciBtYXRjaEluc2lkZUNvbnN0cnVj
dG9yOwogY2xhc3MgTXlFbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQgewpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGlz
Y29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIwNDg4MykKKysrIExh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsxLDQzIEBACiAKIFBBU1MgUmVtb3Zp
bmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQg
ZnJvbSBhIGRldGFoZWQgbm9kZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVk
Q2FsbGJhY2sgCi1GQUlMIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHdpbmRvdy1s
ZXNzIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNr
IGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAyIGdvdCAwCi1Q
QVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3Vt
ZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotRkFJTCBS
ZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgYSB3aW5kb3ctbGVz
cyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayBh
c3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMiBnb3QgMAotUEFT
UyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBjb25uZWN0ZWQgc2hhZG93IHRyZWUg
bXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIFJlbW92
aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIHNoYWRvdyB0cmVlIHdpdGggYSBjdXN0b20gZWxlbWVu
dCBmcm9tIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2Fs
bGJhY2sgCi1QQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNo
YWRvdyB0cmVlIG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFj
ayAKK1BBU1MgUmVtb3ZpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRv
Y3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFT
UyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhIGRvY3Vt
ZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBS
ZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIGFkb2N1bWVu
dCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVt
b3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBi
ZWxvbmdzIHRvIGEgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5l
Y3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1
bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29u
bmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVt
ZW50IGZyb20gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVs
ZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVlIGluIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVt
ZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBS
ZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIGFkb2N1bWVu
dCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVj
dGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFj
aGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUg
ZWxlbWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sg
CitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIG5ldyBkb2N1bWVudCBtdXN0
IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3Zpbmcg
YW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIG5ldyBkb2N1bWVudCBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBj
dXN0b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4gYSBuZXcgZG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIHRo
ZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYW5ldyBkb2N1bWVudCBtdXN0
IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3Zpbmcg
YSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdz
IHRvIGEgbmV3IGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0
ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgY2xvbmVk
IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgY2xvbmVk
IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhIGNs
b25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFj
ayAKK1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJv
bSBhY2xvbmVkIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENh
bGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hlZCBz
aGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBub3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1
c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVu
dCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVt
b3ZpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IGNyZWF0
ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5l
Y3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFk
b3cgdHJlZSBpbiBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyB0
aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIGFkb2N1bWVudCBjcmVhdGVk
IGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0
ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNo
ZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVh
dGVIVE1MRG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENh
bGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBIVE1MIGRvY3Vt
ZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlz
Y29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBl
bGVtZW50IGZyb20gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVz
dCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5n
IGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVlIGluIGEgSFRNTCBkb2N1bWVudCBj
cmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5l
Y3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20g
ZWxlbWVudCBmcm9tIGFIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVz
dCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5n
IGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25n
cyB0byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IG5vdCBl
bnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEg
Y3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYW4gYW5jZXN0
b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBj
dXN0b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBpbiBhbiBpZnJh
bWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJl
bW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYWRvY3VtZW50
IGluIGFuIGlmcmFtZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFj
ayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93
IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3Qgbm90IGVu
cXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBj
dXN0b20gZWxlbWVudCBmcm9tIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYW4g
YW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBi
eSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNT
IFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVlIGluIGEgSFRNTCBk
b2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0
ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVs
ZW1lbnQgZnJvbSBhSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxl
bWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgSFRNTCBk
b2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29u
bmVjdGVkQ2FsbGJhY2sgCisKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVu
dHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbAkocmV2aXNp
b24gMjA0ODgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGlzY29ubmVj
dGVkLWNhbGxiYWNrcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDYgKzcsNyBAQAogPGxpbmsg
cmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9zcGVj
L2N1c3RvbS8jZGZuLWNvbm5lY3RlZC1jYWxsYmFjayI+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4vcmVz
b3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzIj48L3NjcmlwdD4KIDxsaW5rIHJlbD0nc3R5bGVzaGVl
dCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+CiA8L2hlYWQ+CiA8Ym9k
eT4KQEAgLTIwLDkzICsyMSw3MyBAQCBjbGFzcyBNeUN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBIVE1M
RWxlbWVuCiB9CiBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ215LWN1c3RvbS1lbGVtZW50JywgTXlD
dXN0b21FbGVtZW50KTsKIAotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGluc3RhbmNlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgZG9j
dW1lbnQuYm9keS5yZW1vdmVDaGlsZChpbnN0YW5jZSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotfSwgJ1JlbW92aW5nIGEgY3Vz
dG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nv
bm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFy
IHBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHBhcmVudC5hcHBl
bmRDaGlsZChpbnN0YW5jZSk7Ci0KLSAgICBjYWxscyA9IFtdOwotICAgIHBhcmVudC5yZW1vdmVD
aGlsZChpbnN0YW5jZSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgW10pOwotfSwg
J1JlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFoZWQgbm9kZSBtdXN0IG5vdCBl
bnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKLQotdGVzdChmdW5jdGlvbiAo
KSB7Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9t
LWVsZW1lbnQnKTsKLSAgICB2YXIgZG9jdW1lbnRXaXRob3V0V2luZG93ID0gZG9jdW1lbnQuaW1w
bGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7Ci0gICAgZG9jdW1lbnRXaXRob3V0V2lu
ZG93LmJvZHkuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBk
b2N1bWVudFdpdGhvdXRXaW5kb3cuYm9keS5yZW1vdmVDaGlsZChpbnN0YW5jZSk7Ci0gICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotfSwg
J1JlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHdpbmRvdy1sZXNzIGRvY3VtZW50IG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVu
Y3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215
LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotICAgIHBhcmVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0gICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChwYXJlbnQpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1
bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBhcmVudCk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhj
YWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotfSwgJ1JlbW92aW5nIGFuIGFuY2Vz
dG9yIG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAg
IHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50
Jyk7Ci0gICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAg
IHBhcmVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0gICAgdmFyIGRvY3VtZW50V2l0aG91dFdp
bmRvdyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOwotICAg
IGRvY3VtZW50V2l0aG91dFdpbmRvdy5ib2R5LmFwcGVuZENoaWxkKHBhcmVudCk7Ci0KLSAgICBj
YWxscyA9IFtdOwotICAgIGRvY3VtZW50V2l0aG91dFdpbmRvdy5ib2R5LnJlbW92ZUNoaWxkKHBh
cmVudCk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBp
bnN0YW5jZV0pOwotfSwgJ1JlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZy
b20gYSBhIHdpbmRvdy1sZXNzIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nv
bm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFy
IGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGhvc3QpOwotICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFk
b3coe21vZGU6ICdjbG9zZWQnfSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5j
ZSk7Ci0KLSAgICBjYWxscyA9IFtdOwotICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoaW5zdGFu
Y2UpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlzY29ubmVjdGVkJywgaW5z
dGFuY2VdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBjb25uZWN0ZWQg
c2hhZG93IHRyZWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sn
KTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hT
aGFkb3coe21vZGU6ICdjbG9zZWQnfSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0
YW5jZSk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsKLQotICAgIGNhbGxz
ID0gW107Ci0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChob3N0KTsKLSAgICBhc3NlcnRf
YXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Rpc2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7Ci19LCAnUmVt
b3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgc2hhZG93IHRyZWUgd2l0aCBhIGN1c3RvbSBlbGVt
ZW50IGZyb20gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRD
YWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBob3N0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0
LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENo
aWxkKGluc3RhbmNlKTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgc2hhZG93Um9vdC5yZW1vdmVD
aGlsZChpbnN0YW5jZSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgW10pOwotfSwg
J1JlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIG11
c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOwotCitEb2N1
bWVudFR5cGVzLmZvckVhY2goZnVuY3Rpb24gKGVudHJ5KSB7CisgICAgdmFyIGRvY3VtZW50TmFt
ZSA9IGVudHJ5Lm5hbWU7CisgICAgdmFyIGdldERvY3VtZW50ID0gZW50cnkuY3JlYXRlOworCisg
ICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50
KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgICAgICAgICAgZG9j
LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisgICAgICAgICAgICBjYWxs
cyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChpbnN0
YW5jZSk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Rpc2Nvbm5l
Y3RlZCcsIGluc3RhbmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdSZW1vdmluZyBhIGN1c3Rv
bSBlbGVtZW50IGZyb20gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVldWUgYW5kIGlu
dm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7
CisgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1j
dXN0b20tZWxlbWVudCcpOworICAgICAgICAgICAgdmFyIHBhcmVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKGluc3RhbmNl
KTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQocGFyZW50KTsK
KyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50
LnJlbW92ZUNoaWxkKHBhcmVudCk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNh
bGxzLCBbJ2Rpc2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdS
ZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgJyArIGRvY3VtZW50
TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2snKTsK
KworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBnZXREb2N1
bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGluc3RhbmNlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAgICAgICAg
IHZhciBob3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCcsICdkaXYnKTsKKyAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hT
aGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50
LmFwcGVuZENoaWxkKGhvc3QpOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChp
bnN0YW5jZSk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBzaGFkb3dS
b290LnJlbW92ZUNoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoY2FsbHMsIFsnZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKKyAgICAgICAgfSk7CisgICAg
fSwgJ1JlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVlIGluIGEgJyAr
IGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2Fs
bGJhY2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVy
biBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGlu
c3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAg
ICAgICAgICAgIHZhciBob3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCcsICdkaXYnKTsKKyAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9z
dC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CisgICAgICAgICAgICBzaGFkb3dSb290
LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQu
YXBwZW5kQ2hpbGQoaG9zdCk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAg
ICBkb2MuZG9jdW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKGhvc3QpOworICAgICAgICAgICAgYXNz
ZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOworICAg
ICAgICB9KTsKKyAgICB9LCAnUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVs
ZW1lbnQgZnJvbSBhJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
ZGlzY29ubmVjdGVkQ2FsbGJhY2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7
CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAg
ICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9t
LWVsZW1lbnQnKTsKKyAgICAgICAgICAgIHZhciBob3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygn
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdkaXYnKTsKKyAgICAgICAgICAgIHZhciBz
aGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CisgICAgICAg
ICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKworICAgICAgICAgICAgY2Fs
bHMgPSBbXTsKKyAgICAgICAgICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOwor
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgW10pOworICAgICAgICB9KTsK
KyAgICB9LCAnUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93
IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBub3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7Cit9KTsKIAogPC9zY3JpcHQ+
CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJj
ZXMvZG9jdW1lbnQtdHlwZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0
b20tZWxlbWVudHMvcmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzCShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9kb2N1bWVudC10eXBl
cy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc0IEBACitjb25zdCBEb2N1bWVudFR5cGVz
ID0gWworICAgIHsKKyAgICAgICAgbmFtZTogJ2RvY3VtZW50JywKKyAgICAgICAgY3JlYXRlOiBm
dW5jdGlvbiAoKSB7IHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQpOyB9CisgICAgfSwK
KyAgICB7CisgICAgICAgIG5hbWU6ICdkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQnLAor
ICAgICAgICBjcmVhdGU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbiAocmVzb2x2ZSkgeworICAgICAgICAgICAgICAgIHZhciB0ZW1wbGF0ZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcs
ICd0ZW1wbGF0ZScpOworICAgICAgICAgICAgICAgIHZhciBkb2MgPSB0ZW1wbGF0ZS5jb250ZW50
Lm93bmVyRG9jdW1lbnQ7CisgICAgICAgICAgICAgICAgaWYgKCFkb2MuZG9jdW1lbnRFbGVtZW50
KQorICAgICAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnQo
J2h0bWwnKSk7CisgICAgICAgICAgICAgICAgcmVzb2x2ZShkb2MpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ25ldyBkb2N1bWVudCcs
CisgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQ
cm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7CisgICAgICAgICAgICAgICAgdmFyIGRvYyA9IG5l
dyBEb2N1bWVudCgpOworICAgICAgICAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChkb2MuY3JlYXRl
RWxlbWVudCgnaHRtbCcpKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKGRvYyk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnY2xvbmVk
IGRvY3VtZW50JywKKyAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsKKyAgICAgICAgICAgICAgICB2
YXIgZG9jID0gZG9jdW1lbnQuY2xvbmVOb2RlKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBkb2Mu
YXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnQoJ2h0bWwnKSk7CisgICAgICAgICAgICAgICAg
cmVzb2x2ZShkb2MpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9LAorICAgIHsK
KyAgICAgICAgbmFtZTogJ2RvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50JywK
KyAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlz
ZS5yZXNvbHZlKGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpKTsK
KyAgICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnSFRNTCBkb2N1bWVudCBj
cmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50JywKKyAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7
CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRvY3VtZW50LmltcGxlbWVudGF0
aW9uLmNyZWF0ZURvY3VtZW50KCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2h0bWwn
LCBudWxsKSk7CisgICAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ2RvY3Vt
ZW50IGluIGFuIGlmcmFtZScsCisgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1l
Jyk7CisgICAgICAgICAgICAgICAgaWZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsgcmVzb2x2
ZShpZnJhbWUuY29udGVudERvY3VtZW50KTsgfQorICAgICAgICAgICAgICAgIGlmcmFtZS5vbmVy
cm9yID0gZnVuY3Rpb24gKCkgeyByZWplY3QoJ0ZhaWxlZCB0byBsb2FkIGFuIGVtcHR5IGlmcmFt
ZScpOyB9CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUp
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICAgbmFt
ZTogJ0hUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFInLAorICAgICAgICBjcmVhdGU6IGZ1bmN0
aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOworICAgICAgICAgICAgICAgIHhoci5vcGVuKCdHRVQnLCAncmVzb3VyY2VzL2VtcHR5LWh0
bWwtZG9jdW1lbnQuaHRtbCcpOworICAgICAgICAgICAgICAgIHhoci5vdmVycmlkZU1pbWVUeXBl
KCd0ZXh0L3htbCcpOworICAgICAgICAgICAgICAgIHhoci5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7
IHJlc29sdmUoeGhyLnJlc3BvbnNlWE1MKTsgfQorICAgICAgICAgICAgICAgIHhoci5vbmVycm9y
ID0gZnVuY3Rpb24gKCkgeyByZWplY3QoJ0ZhaWxlZCB0byBmZXRjaCB0aGUgZG9jdW1lbnQnKTsg
fQorICAgICAgICAgICAgICAgIHhoci5zZW5kKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgIH0KK107ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2VtcHR5LWh0bWwtZG9jdW1lbnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJj
ZXMvZW1wdHktaHRtbC1kb2N1bWVudC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9lbXB0eS1odG1sLWRvY3VtZW50Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286833</attachid>
            <date>2016-08-23 22:10:14 -0700</date>
            <delta_ts>2016-08-23 22:14:48 -0700</delta_ts>
            <desc>Fixed GTK+/EFL builds</desc>
            <filename>bug-161065-20160823220815.patch</filename>
            <type>text/plain</type>
            <size>45776</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA4LTIzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkb3B0ZWQgY3VzdG9tIGVsZW1l
bnQncyBjYWxsYmFja3Mgc2hvdWxkIGNvbnRpbnVlIHRvIHdvcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTA2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAgICAgICAgV2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGFk
b3B0ZWQgaW50byBhbm90aGVyIGRvY3VtZW50LCBpdHMgcmVhY3Rpb24gY2FsbGJhY2tzIG5lZWQg
dG8gY29udGludWUgdG8gd29yay4KKyAgICAgICAgQmVjYXVzZSBhIGRpZmZlcmVudCBkb2N1bWVu
dCBtYXkgaGF2ZSBpdHMgb3duIGdsb2JhbCBvYmplY3QsIGVhY2ggY3VzdG9tIGVsZW1lbnQgbmVl
ZHMgdG8gcmVtZW1iZXIgaXRzCisgICAgICAgIG9yaWdpbmFsIGdsb2JhbCBvYmplY3Qgb3IgSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlLiBUaGlzIHBhdGNoIGFkZHMgdGhlIGxhdHRlciB0byB0aGUg
ZWxlbWVudCByYXJlIGRhdGEuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3VzdG9tLWVsZW1lbnRz
L2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jdXN0b20tZWxl
bWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21FbGVtZW50SW50ZXJmYWNlOjpjb25zdHJ1Y3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFkZUVsZW1lbnQpOgorICAgICAgICAqIGRv
bS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5k
SW50ZXJmYWNlRm9yQ3VzdG9tRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpD
dXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZUNvbm5lY3RlZENhbGxiYWNrSWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVl
dWVEaXNjb25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3Rv
bUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlQXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrSWZO
ZWVkZWQpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6Omluc2VydGVkSW50byk6IEludm9rZSBjYWxsYmFja3MgZXZlbiB3aGVuIHRoZSBjdXJy
ZW50IGRvY3VtZW50IGlzIG5vdCBhIEhUTUwgZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpyZW1vdmVkRnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQpOiBNb3ZlZCBmcm9tIE5vZGUuIEFkZCB0aGUgZWxl
bWVudCBpbnRlcmZhY2UgdG8gdGhlIHJhcmUgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmN1c3RvbUVsZW1lbnRJbnRlcmZhY2UpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVu
dC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuY3BwOgorICAgICAgICAqIGRvbS9F
bGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6Y3Vz
dG9tRWxlbWVudEludGVyZmFjZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJh
cmVEYXRhOjpzZXRDdXN0b21FbGVtZW50SW50ZXJmYWNlKTogQWRkZWQuCisgICAgICAgICogZG9t
L05vZGUuaDoKKyAgICAgICAgKChXZWJDb3JlOjpOb2RlOjpzZXRDdXN0b21FbGVtZW50SXNSZXNv
bHZlZCk6IERlbGV0ZWQuCisKIDIwMTYtMDgtMjMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiAhdmlldygpLmxheW91dFN0YXRlRW5h
YmxlZCgpIHx8IHN0eWxlKCkuc3R5bGVUeXBlKCkgPT0gRklSU1RfTEVUVEVSIGluIFdlYkNvcmU6
OlJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlLmNwcAkocmV2aXNpb24gMjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgs
NyBAQCBSZWZQdHI8RWxlbWVudD4gSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlCiAgICAgRWxlbWVu
dCogd3JhcHBlZEVsZW1lbnQgPSBKU0VsZW1lbnQ6OnRvV3JhcHBlZChuZXdFbGVtZW50KTsKICAg
ICBpZiAoIXdyYXBwZWRFbGVtZW50KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB3cmFw
cGVkRWxlbWVudC0+c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQoKTsKKyAgICB3cmFwcGVkRWxl
bWVudC0+c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQoKnRoaXMpOwogICAgIHJldHVybiB3cmFw
cGVkRWxlbWVudDsKIH0KIApAQCAtMTQ3LDggKzE0Nyw3IEBAIHZvaWQgSlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlOjp1cGdyYWRlRWwKICAgICAgICAgdGhyb3dJbnZhbGlkU3RhdGVFcnJvcigqc3Rh
dGUsICJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBmYWlsZWQgdG8gdXBncmFkZSBhbiBlbGVt
ZW50Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgd3JhcHBlZEVsZW1lbnQtPnNldEN1
c3RvbUVsZW1lbnRJc1Jlc29sdmVkKCk7Ci0gICAgQVNTRVJUKHdyYXBwZWRFbGVtZW50LT5pc0N1
c3RvbUVsZW1lbnQoKSk7CisgICAgd3JhcHBlZEVsZW1lbnQtPnNldEN1c3RvbUVsZW1lbnRJc1Jl
c29sdmVkKCp0aGlzKTsKIH0KIAogdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6Omludm9r
ZUNhbGxiYWNrKEVsZW1lbnQmIGVsZW1lbnQsIEpTT2JqZWN0KiBjYWxsYmFjaywgY29uc3QgV1RG
OjpGdW5jdGlvbjx2b2lkKEV4ZWNTdGF0ZSosIE1hcmtlZEFyZ3VtZW50QnVmZmVyJik+JiBhZGRB
cmd1bWVudHMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9u
UXVldWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50
UmVhY3Rpb25RdWV1ZS5jcHAJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiwy
MyArMTA2LDkgQEAgdm9pZCBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZQogICAg
ICAgICBxdWV1ZS0+bV9pdGVtcy5hcHBlbmQoe0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRl
bTo6VHlwZTo6RWxlbWVudFVwZ3JhZGUsIGVsZW1lbnQsIGVsZW1lbnRJbnRlcmZhY2V9KTsKIH0K
IAotc3RhdGljIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSogZmluZEludGVyZmFjZUZvckN1c3Rv
bUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICBBU1NFUlQoZWxlbWVudC5pc0N1c3Rv
bUVsZW1lbnQoKSk7Ci0gICAgYXV0byogd2luZG93ID0gZWxlbWVudC5kb2N1bWVudCgpLmRvbVdp
bmRvdygpOwotICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IGF1dG8qIHJlZ2lzdHJ5ID0gd2luZG93LT5jdXN0b21FbGVtZW50UmVnaXN0cnkoKTsKLSAgICBp
ZiAoIXJlZ2lzdHJ5KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiByZWdp
c3RyeS0+ZmluZEludGVyZmFjZShlbGVtZW50LnRhZ1FOYW1lKCkpOwotfQotCiB2b2lkIEN1c3Rv
bUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlQ29ubmVjdGVkQ2FsbGJhY2tJZk5lZWRlZChF
bGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSBmaW5kSW50
ZXJmYWNlRm9yQ3VzdG9tRWxlbWVudChlbGVtZW50KTsKKyAgICBhdXRvKiBlbGVtZW50SW50ZXJm
YWNlID0gZWxlbWVudC5jdXN0b21FbGVtZW50SW50ZXJmYWNlKCk7CiAgICAgaWYgKCFlbGVtZW50
SW50ZXJmYWNlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzMiw3ICsxMTgsNyBAQCB2b2lkIEN1
c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlCiAKIHZvaWQgQ3VzdG9tRWxlbWVudFJl
YWN0aW9uUXVldWU6OmVucXVldWVEaXNjb25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQm
IGVsZW1lbnQpCiB7Ci0gICAgYXV0byogZWxlbWVudEludGVyZmFjZSA9IGZpbmRJbnRlcmZhY2VG
b3JDdXN0b21FbGVtZW50KGVsZW1lbnQpOworICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSBl
bGVtZW50LmN1c3RvbUVsZW1lbnRJbnRlcmZhY2UoKTsKICAgICBpZiAoIWVsZW1lbnRJbnRlcmZh
Y2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTQyLDcgKzEyOCw3IEBAIHZvaWQgQ3VzdG9tRWxl
bWVudFJlYWN0aW9uUXVldWU6OmVucXVldWUKIAogdm9pZCBDdXN0b21FbGVtZW50UmVhY3Rpb25R
dWV1ZTo6ZW5xdWV1ZUF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQmIGVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpCiB7Ci0gICAgYXV0
byogZWxlbWVudEludGVyZmFjZSA9IGZpbmRJbnRlcmZhY2VGb3JDdXN0b21FbGVtZW50KGVsZW1l
bnQpOworICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSBlbGVtZW50LmN1c3RvbUVsZW1lbnRJ
bnRlcmZhY2UoKTsKICAgICBpZiAoIWVsZW1lbnRJbnRlcmZhY2UgfHwgIWVsZW1lbnRJbnRlcmZh
Y2UtPm9ic2VydmVzQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkpKQogICAgICAg
ICByZXR1cm47CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDIwNDg4MykK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3
NCw3ICsxNTc0LDggQEAgTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBFbGVtZQog
ICAgIC8vIFRoaXMgZWxlbWVudCBpcyBuZXcgdG8gdGhlIHNoYWRvdyB0cmVlIChhbmQgaXRzIHRy
ZWUgc2NvcGUpIG9ubHkgaWYgdGhlIHBhcmVudCBpbnRvIHdoaWNoIHRoaXMgZWxlbWVudAogICAg
IC8vIG9yIGl0cyBhbmNlc3RvciBpcyBpbnNlcnRlZCBiZWxvbmdzIHRvIHRoZSBzYW1lIHRyZWUg
c2NvcGUgYXMgdGhpcyBlbGVtZW50J3MuCiAgICAgVHJlZVNjb3BlKiBuZXdTY29wZSA9ICZpbnNl
cnRpb25Qb2ludC50cmVlU2NvcGUoKTsKLSAgICBIVE1MRG9jdW1lbnQqIG5ld0RvY3VtZW50ID0g
IXdhc0luRG9jdW1lbnQgJiYgaW5Eb2N1bWVudCgpICYmIGlzPEhUTUxEb2N1bWVudD4obmV3U2Nv
cGUtPmRvY3VtZW50U2NvcGUoKSkgPyAmZG93bmNhc3Q8SFRNTERvY3VtZW50PihuZXdTY29wZS0+
ZG9jdW1lbnRTY29wZSgpKSA6IG51bGxwdHI7CisgICAgYm9vbCBiZWNvbWVDb25uZWN0ZWQgPSAh
d2FzSW5Eb2N1bWVudCAmJiBpbkRvY3VtZW50KCk7CisgICAgSFRNTERvY3VtZW50KiBuZXdEb2N1
bWVudCA9IGJlY29tZUNvbm5lY3RlZCAmJiBpczxIVE1MRG9jdW1lbnQ+KG5ld1Njb3BlLT5kb2N1
bWVudFNjb3BlKCkpID8gJmRvd25jYXN0PEhUTUxEb2N1bWVudD4obmV3U2NvcGUtPmRvY3VtZW50
U2NvcGUoKSkgOiBudWxscHRyOwogICAgIGlmIChuZXdTY29wZSAhPSAmdHJlZVNjb3BlKCkpCiAg
ICAgICAgIG5ld1Njb3BlID0gbnVsbHB0cjsKIApAQCAtMTYwMCw3ICsxNjAxLDcgQEAgTm9kZTo6
SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBFbGVtZQogICAgIH0KIAogI2lmIEVOQUJMRShD
VVNUT01fRUxFTUVOVFMpCi0gICAgaWYgKG5ld0RvY3VtZW50ICYmIFVOTElLRUxZKGlzQ3VzdG9t
RWxlbWVudCgpKSkKKyAgICBpZiAoYmVjb21lQ29ubmVjdGVkICYmIFVOTElLRUxZKGlzQ3VzdG9t
RWxlbWVudCgpKSkKICAgICAgICAgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVD
b25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKCp0aGlzKTsKICNlbmRpZgogCkBAIC0xNjIyLDcgKzE2
MjMsOCBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmCiAKICAgICBp
ZiAoaW5zZXJ0aW9uUG9pbnQuaXNJblRyZWVTY29wZSgpKSB7CiAgICAgICAgIFRyZWVTY29wZSog
b2xkU2NvcGUgPSAmaW5zZXJ0aW9uUG9pbnQudHJlZVNjb3BlKCk7Ci0gICAgICAgIEhUTUxEb2N1
bWVudCogb2xkRG9jdW1lbnQgPSBpbkRvY3VtZW50KCkgJiYgaXM8SFRNTERvY3VtZW50PihvbGRT
Y29wZS0+ZG9jdW1lbnRTY29wZSgpKSA/ICZkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KG9sZFNjb3Bl
LT5kb2N1bWVudFNjb3BlKCkpIDogbnVsbHB0cjsKKyAgICAgICAgYm9vbCBiZWNvbWVEaXNjb25u
ZWN0ZWQgPSBpbkRvY3VtZW50KCk7CisgICAgICAgIEhUTUxEb2N1bWVudCogb2xkRG9jdW1lbnQg
PSBiZWNvbWVEaXNjb25uZWN0ZWQgJiYgaXM8SFRNTERvY3VtZW50PihvbGRTY29wZS0+ZG9jdW1l
bnRTY29wZSgpKSA/ICZkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KG9sZFNjb3BlLT5kb2N1bWVudFNj
b3BlKCkpIDogbnVsbHB0cjsKIAogICAgICAgICAvLyBDb250YWluZXJOb2RlOjpyZW1vdmVCZXR3
ZWVuIGFsd2F5cyBzZXRzIHRoZSByZW1vdmVkIGNoaWQncyB0cmVlIHNjb3BlIHRvIERvY3VtZW50
J3MgYnV0IEluVHJlZVNjb3BlIGZsYWcgaXMgdW5zZXQgaW4gTm9kZTo6cmVtb3ZlZEZyb20uCiAg
ICAgICAgIC8vIFNvIHRoaXMgZWxlbWVudCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIG9sZCB0
cmVlIHNjb3BlIG9ubHkgaWYgSW5UcmVlU2NvcGUgZmxhZyBpcyBzZXQgYW5kIHRoaXMgZWxlbWVu
dCdzIHRyZWUgc2NvcGUgaXMgRG9jdW1lbnQncy4KQEAgLTE2NTEsNyArMTY1Myw3IEBAIHZvaWQg
RWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYKICAgICAgICAgfQogCiAjaWYgRU5B
QkxFKENVU1RPTV9FTEVNRU5UUykKLSAgICAgICAgaWYgKG9sZERvY3VtZW50ICYmIFVOTElLRUxZ
KGlzQ3VzdG9tRWxlbWVudCgpKSkKKyAgICAgICAgaWYgKGJlY29tZURpc2Nvbm5lY3RlZCAmJiBV
TkxJS0VMWShpc0N1c3RvbUVsZW1lbnQoKSkpCiAgICAgICAgICAgICBDdXN0b21FbGVtZW50UmVh
Y3Rpb25RdWV1ZTo6ZW5xdWV1ZURpc2Nvbm5lY3RlZENhbGxiYWNrSWZOZWVkZWQoKnRoaXMpOwog
I2VuZGlmCiAgICAgfQpAQCAtMTgyMSw2ICsxODIzLDI3IEBAIFNoYWRvd1Jvb3QmIEVsZW1lbnQ6
OmVuc3VyZVVzZXJBZ2VudFNoYWQKICAgICByZXR1cm4gKnNoYWRvd1Jvb3Q7CiB9CiAKKyAgICAK
KyNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQorCit2b2lkIEVsZW1lbnQ6OnNldEN1c3RvbUVs
ZW1lbnRJc1Jlc29sdmVkKEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSYgZWxlbWVudEludGVyZmFj
ZSkKK3sKKyAgICBjbGVhckZsYWcoSXNFZGl0aW5nVGV4dE9yVW5yZXNvbHZlZEN1c3RvbUVsZW1l
bnRGbGFnKTsKKyAgICBzZXRGbGFnKElzQ3VzdG9tRWxlbWVudCk7CisgICAgZW5zdXJlRWxlbWVu
dFJhcmVEYXRhKCkuc2V0Q3VzdG9tRWxlbWVudEludGVyZmFjZShlbGVtZW50SW50ZXJmYWNlKTsK
K30KKworSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKiBFbGVtZW50OjpjdXN0b21FbGVtZW50SW50
ZXJmYWNlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNDdXN0b21FbGVtZW50KCkpOworICAgIGlm
ICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGVs
ZW1lbnRSYXJlRGF0YSgpLT5jdXN0b21FbGVtZW50SW50ZXJmYWNlKCk7Cit9CisKKyNlbmRpZgor
CisKIGNvbnN0IEF0b21pY1N0cmluZyYgRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAog
ewogICAgIHJldHVybiBwc2V1ZG8oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNpb24g
MjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDQsNiArNDQsNyBAQCBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURh
dGE7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgSlNDdXN0b21F
bGVtZW50SW50ZXJmYWNlOwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIExvY2FsZTsKIGNs
YXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKQEAgLTI3Miw2ICsyNzMsMTEgQEAgcHVibGljOgog
ICAgIFNoYWRvd1Jvb3QqIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBTaGFkb3dSb290JiBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CiAKKyNpZiBF
TkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQorICAgIHZvaWQgc2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2
ZWQoSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlJik7CisgICAgSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlKiBjdXN0b21FbGVtZW50SW50ZXJmYWNlKCkgY29uc3Q7CisjZW5kaWYKKwogICAgIC8vIEZJ
WE1FOiB0aGlzIHNob3VsZCBub3QgYmUgdmlydHVhbCwgZG8gbm90IG92ZXJyaWRlIHRoaXMuCiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCShyZXZpc2lvbiAyMDQ4
ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQsNyArNDQsNyBAQCBzdHJ1Y3QgU2FtZVNpemVBc0VsZW1lbnRSYXJlRGF0YSA6
IE5vZGVSCiAgICAgUmVnaW9uT3ZlcnNldFN0YXRlIHJlZ2lvbk92ZXJzZXRTdGF0ZTsKICAgICBM
YXlvdXRTaXplIHNpemVGb3JSZXNpemluZzsKICAgICBJbnRQb2ludCBzYXZlZExheWVyU2Nyb2xs
UG9zaXRpb247Ci0gICAgdm9pZCogcG9pbnRlcnNbN107CisgICAgdm9pZCogcG9pbnRlcnNbOF07
CiB9OwogCiBzdGF0aWNfYXNzZXJ0KHNpemVvZihFbGVtZW50UmFyZURhdGEpID09IHNpemVvZihT
YW1lU2l6ZUFzRWxlbWVudFJhcmVEYXRhKSwgIkVsZW1lbnRSYXJlRGF0YSBzaG91bGQgc3RheSBz
bWFsbCIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkocmV2aXNpb24g
MjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNp
bmNsdWRlICJEYXRhc2V0RE9NU3RyaW5nTWFwLmgiCisjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVkZSAiTm9kZVJh
cmVEYXRhLmgiCiAjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgpAQCAtOTMsNiArOTQsMTEgQEAg
cHVibGljOgogICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBtX3No
YWRvd1Jvb3QuZ2V0KCk7IH0KICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUmVmUHRyPFNoYWRvd1Jv
b3Q+JiYgc2hhZG93Um9vdCkgeyBtX3NoYWRvd1Jvb3QgPSBXVEZNb3ZlKHNoYWRvd1Jvb3QpOyB9
CiAKKyNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQorICAgIEpTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZSogY3VzdG9tRWxlbWVudEludGVyZmFjZSgpIHsgcmV0dXJuIG1fY3VzdG9tRWxlbWVudElu
dGVyZmFjZS5nZXQoKTsgfQorICAgIHZvaWQgc2V0Q3VzdG9tRWxlbWVudEludGVyZmFjZShKU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UmIGN1c3RvbUVsZW1lbnRJbnRlcmZhY2UpIHsgbV9jdXN0b21F
bGVtZW50SW50ZXJmYWNlID0gJmN1c3RvbUVsZW1lbnRJbnRlcmZhY2U7IH0KKyNlbmRpZgorCiAg
ICAgTmFtZWROb2RlTWFwKiBhdHRyaWJ1dGVNYXAoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0
ZU1hcC5nZXQoKTsgfQogICAgIHZvaWQgc2V0QXR0cmlidXRlTWFwKHN0ZDo6dW5pcXVlX3B0cjxO
YW1lZE5vZGVNYXA+IGF0dHJpYnV0ZU1hcCkgeyBtX2F0dHJpYnV0ZU1hcCA9IFdURk1vdmUoYXR0
cmlidXRlTWFwKTsgfQogCkBAIC0xNDksNiArMTU1LDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8RGF0YXNldERPTVN0cmluZ01hcD4gbV9kYXRhc2V0OwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxET01Ub2tlbkxpc3Q+IG1fY2xhc3NMaXN0OwogICAgIFJlZlB0cjxTaGFkb3dSb290PiBt
X3NoYWRvd1Jvb3Q7CisjaWYgRU5BQkxFKENVU1RPTV9FTEVNRU5UUykKKyAgICBSZWZQdHI8SlND
dXN0b21FbGVtZW50SW50ZXJmYWNlPiBtX2N1c3RvbUVsZW1lbnRJbnRlcmZhY2U7CisjZW5kaWYK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1hcDsKIAogICAg
IFJlZlB0cjxQc2V1ZG9FbGVtZW50PiBtX2JlZm9yZVBzZXVkb0VsZW1lbnQ7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI2Nyw3ICsyNjcsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzVW5y
ZXNvbHZlZEN1c3RvbUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBpc0VsZW1lbnROb2RlKCkgJiYg
Z2V0RmxhZyhJc0VkaXRpbmdUZXh0T3JVbnJlc29sdmVkQ3VzdG9tRWxlbWVudEZsYWcpOyB9CiAg
ICAgdm9pZCBzZXRJc1VucmVzb2x2ZWRDdXN0b21FbGVtZW50KCkgeyBzZXRGbGFnKElzRWRpdGlu
Z1RleHRPclVucmVzb2x2ZWRDdXN0b21FbGVtZW50RmxhZyk7IH0KLSAgICB2b2lkIHNldEN1c3Rv
bUVsZW1lbnRJc1Jlc29sdmVkKCk7CiAjZW5kaWYKIAogICAgIC8vIFJldHVybnMgbnVsbCwgYSBj
aGlsZCBvZiBTaGFkb3dSb290LCBvciBhIGxlZ2FjeSBzaGFkb3cgcm9vdC4KQEAgLTc2OSwxNiAr
NzY4LDYgQEAgaW5saW5lIENvbnRhaW5lck5vZGUqIE5vZGU6OnBhcmVudE5vZGVHdQogICAgIHJl
dHVybiBwYXJlbnROb2RlKCk7CiB9CiAKLSNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQotCi1p
bmxpbmUgdm9pZCBOb2RlOjpzZXRDdXN0b21FbGVtZW50SXNSZXNvbHZlZCgpCi17Ci0gICAgY2xl
YXJGbGFnKElzRWRpdGluZ1RleHRPclVucmVzb2x2ZWRDdXN0b21FbGVtZW50RmxhZyk7Ci0gICAg
c2V0RmxhZyhJc0N1c3RvbUVsZW1lbnQpOwotfQotCi0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MjA0ODYwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTYtMDgtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgQWRvcHRlZCBjdXN0b20gZWxlbWVudCdzIGNhbGxiYWNrcyBzaG91bGQgY29udGlu
dWUgdG8gd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYxMDY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAgICAg
ICBBZGRlZCB0ZXN0IGNhc2VzIGZvciBhZG9wdGluZyBjdXN0b20gZWxlbWVudHMgaW50byB2YXJp
b3VzIGtpbmRzIG9mIGRvY3VtZW50cy4KKworICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRz
L2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3VzdG9t
LWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbDoKKyAgICAgICAgKiBmYXN0L2N1c3Rv
bS1lbGVtZW50cy9kZWZpbmVkLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9jdXN0b20tZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3MuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2tzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2tz
Lmh0bWw6CisgICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2RvY3VtZW50
LXR5cGVzLmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJj
ZXMvZW1wdHktaHRtbC1kb2N1bWVudC5odG1sOiBBZGRlZC4KKwogMjAxNi0wOC0yMyAgWmFsYW4g
QnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IGhh
c092ZXJmbG93aW5nQ2VsbCA9PSB0aGlzLT5oYXNPdmVyZmxvd2luZ0NlbGwoKSBpbiBXZWJDb3Jl
OjpSZW5kZXJUYWJsZVNlY3Rpb246OmNvbXB1dGVPdmVyZmxvd0Zyb21DZWxscwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvY29u
bmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIwNDg4MykKKysrIExheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsxLDQzIEBACiAKIFBBU1MgSW5zZXJ0aW5nIGEg
Y3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNv
bm5lY3RlZENhbGxiYWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
ZGV0YWNoZWQgbm9kZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJh
Y2sgCi1GQUlMIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSB3aW5kb3ctbGVzcyBk
b2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayBhc3NlcnRf
YXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMiBnb3QgMAotUEFTUyBJbnNl
cnRpbmcgYW4gYW5jZXN0b3Igb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgbXVz
dCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1GQUlMIEluc2VydGluZyBh
biBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgd2luZG93LWxlc3MgZG9jdW1lbnQg
bXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgYXNzZXJ0X2FycmF5X2Vx
dWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDIgZ290IDAKLVBBU1MgSW5zZXJ0aW5nIGEg
Y3VzdG9tIGVsZW1lbnQgaW50byBhIGNvbm5lY3RlZCBzaGFkb3cgdHJlZSBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cg
aG9zdCBvZiBhIHNoYWRvdyB0cmVlIHdpdGggYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1l
bnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2Vy
dGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSBtdXN0IG5v
dCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBh
biBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBl
bGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0
IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBp
bnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgbXVz
dCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRp
bmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRp
bmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG9mIGEgdGVt
cGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAK
K1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEg
ZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNv
bm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3Vz
dG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3Vz
dG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBh
IGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGlu
dG8gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJh
Y2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEg
bmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSBu
ZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQ
QVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEg
bmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRy
ZWUgdGhhdCBiZWxvbmdzIHRvIGEgbmV3IGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGlu
dm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQg
aW50byBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRD
YWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGlu
dG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2Fs
bGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJl
ZSBpbiBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRD
YWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVt
ZW50IGludG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVj
dGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRh
Y2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBu
b3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcg
YSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9j
dW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIElu
c2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgY3Jl
YXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVj
dGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFk
b3cgdHJlZSBpbiBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhl
IHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IGNyZWF0ZWQg
YnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENh
bGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQg
c2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVI
VE1MRG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNr
IAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBj
cmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3Rl
ZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQg
aW50byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9t
IGVsZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5
IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNr
IAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50
byBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVs
ZW1lbnQgaW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIEhUTUwg
ZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBp
bnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50
IGludG8gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29u
bmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxl
bWVudCBpbnRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRv
IGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhv
c3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBj
dXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRv
IGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25u
ZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhU
TUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVj
dGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVu
dCBpbnRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGlu
dm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQg
aW50byBhIHNoYWRvdyB0cmVlIGluIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0
IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIHRo
ZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBIVE1MIGRvY3VtZW50IGZl
dGNoZWQgYnkgWEhSIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRy
ZWUgdGhhdCBiZWxvbmdzIHRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IG5v
dCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCisKIApJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxs
YmFja3MuaHRtbAkocmV2aXNpb24gMjA0ODgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20t
ZWxlbWVudHMvY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDYg
KzcsNyBAQAogPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2Vi
Y29tcG9uZW50cy9zcGVjL2N1c3RvbS8jZGZuLWNvbm5lY3RlZC1jYWxsYmFjayI+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4vcmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzIj48L3NjcmlwdD4KIDxsaW5r
IHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+
CiA8L2hlYWQ+CiA8Ym9keT4KQEAgLTIwLDg0ICsyMSw2OCBAQCBjbGFzcyBNeUN1c3RvbUVsZW1l
bnQgZXh0ZW5kcyBIVE1MRWxlbWVuCiB9CiBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ215LWN1c3Rv
bS1lbGVtZW50JywgTXlDdXN0b21FbGVtZW50KTsKIAotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAg
dmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQn
KTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnN0
YW5jZSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0
YW5jZV0pOwotfSwgJ0luc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBt
dXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0
aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1j
dXN0b20tZWxlbWVudCcpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICB2YXIgcGFyZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgcGFyZW50LmFwcGVuZENoaWxkKGluc3Rh
bmNlKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbXSk7Ci19LCAnSW5zZXJ0aW5n
IGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRldGFjaGVkIG5vZGUgbXVzdCBub3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAg
IHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50
Jyk7Ci0gICAgdmFyIGRvY3VtZW50V2l0aG91dFdpbmRvdyA9IGRvY3VtZW50LmltcGxlbWVudGF0
aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1bWVu
dFdpdGhvdXRXaW5kb3cuYm9keS5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0gICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotfSwgJ0luc2VydGlu
ZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsK
LSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxl
bWVudCcpOwotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
LSAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBhcmVudCk7Ci0gICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotfSwgJ0luc2VydGluZyBhbiBh
bmNlc3RvciBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAg
ICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVu
dCcpOwotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAg
ICBwYXJlbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIHZhciBkb2N1bWVudFdpdGhvdXRX
aW5kb3cgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKLQot
ICAgIGNhbGxzID0gW107Ci0gICAgZG9jdW1lbnRXaXRob3V0V2luZG93LmJvZHkuYXBwZW5kQ2hp
bGQocGFyZW50KTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZCcs
IGluc3RhbmNlXSk7Ci19LCAnSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50
IGludG8gYSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25u
ZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2Ug
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBo
b3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHNoYWRvd1Jvb3Qg
PSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKLSAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGhvc3QpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBzaGFkb3dSb290LmFw
cGVuZENoaWxkKGluc3RhbmNlKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nv
bm5lY3RlZCcsIGluc3RhbmNlXSk7Ci19LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50
byBhIGNvbm5lY3RlZCBzaGFkb3cgdHJlZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0
ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBob3N0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBo
b3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKLSAgICBzaGFkb3dSb290LmFwcGVu
ZENoaWxkKGluc3RhbmNlKTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChob3N0KTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5l
Y3RlZCcsIGluc3RhbmNlXSk7Ci19LCAnSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIHNo
YWRvdyB0cmVlIHdpdGggYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7
Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVs
ZW1lbnQnKTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7
Ci0KLSAgICBjYWxscyA9IFtdOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2Up
OwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFtdKTsKLX0sICdJbnNlcnRpbmcgYSBj
dXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgbXVzdCBub3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrJyk7CitEb2N1bWVudFR5cGVzLmZvckVhY2go
ZnVuY3Rpb24gKGVudHJ5KSB7CisgICAgdmFyIGRvY3VtZW50TmFtZSA9IGVudHJ5Lm5hbWU7Cisg
ICAgdmFyIGdldERvY3VtZW50ID0gZW50cnkuY3JlYXRlOworCisgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAo
ZG9jKSB7CisgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgICAgICAgICAgY2FsbHMgPSBbXTsKKyAgICAgICAg
ICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwor
ICAgICAgICB9KTsKKyAgICB9LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhICcg
KyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxi
YWNrJyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4g
Z2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0
YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAg
ICAgICAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAg
ICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworICAgICAgICAgICAgY2FsbHMg
PSBbXTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQocGFyZW50
KTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkJywg
aW5zdGFuY2VdKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ0luc2VydGluZyBhbiBhbmNlc3RvciBv
ZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5j
dGlvbiAoKSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRv
YykgeworICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
bXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAgICAgICAgIHZhciBob3N0ID0gZG9jLmNyZWF0ZUVs
ZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdkaXYnKTsKKyAgICAgICAg
ICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7
CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOworCisg
ICAgICAgICAgICBjYWxscyA9IFtdOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGls
ZChpbnN0YW5jZSk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nv
bm5lY3RlZCcsIGluc3RhbmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdJbnNlcnRpbmcgYSBj
dXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSAnICsgZG9jdW1lbnROYW1lICsg
JyBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOworCisgICAgcHJv
bWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhl
bihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgICAgICAgICAgdmFyIGhvc3Qg
PSBkb2MuY3JlYXRlRWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2Rp
dicpOworICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9k
ZTogJ2Nsb3NlZCd9KTsKKyAgICAgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFu
Y2UpOworCisgICAgICAgICAgICBjYWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50
RWxlbWVudC5hcHBlbmRDaGlsZChob3N0KTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoY2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKKyAgICAgICAgfSk7CisgICAgfSwg
J0luc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgJyAr
IGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJh
Y2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBn
ZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGluc3Rh
bmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAg
ICAgICAgIHZhciBob3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCcsICdkaXYnKTsKKyAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5h
dHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107
CisgICAgICAgICAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKyAgICAgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFtdKTsKKyAgICAgICAgfSk7CisgICAgfSwg
J0luc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0
aGF0IGJlbG9uZ3MgdG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IG5vdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKK30pOwogCiA8L3NjcmlwdD4KIDwvYm9keT4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNs
YXNzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1l
bGVtZW50cy9kZWZpbmVkLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIwNDg4
MykKKysrIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNs
YXNzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIAotUEFTUyBU
aGUgZGVmaW5lZCBmbGFnIG9mIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCBiZSBzZXQgaWYgYSBjdXN0
b20gZWxlbWVudCBoYXMgbm90IGJlZW4gdXBncmFkZWQgeWV0IAorUEFTUyBUaGUgZGVmaW5lZCBm
bGFnIG9mIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCBub3QgYmUgc2V0IGlmIGEgY3VzdG9tIGVsZW1l
bnQgaGFzIG5vdCBiZWVuIHVwZ3JhZGVkIHlldCAKIFBBU1MgVGhlIGRlZmluZWQgZmxhZyBvZiBh
IGN1c3RvbSBlbGVtZW50IG11c3QgYmUgc2V0IHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBzdWNj
ZXNzZnVsbHkgdXBncmFkZWQgCiBQQVNTIFRoZSBkZWZpbmVkIGZsYWcgb2YgYSBjdXN0b20gZWxl
bWVudCBtdXN0IGJlIHNldCBpZiB0aGVyZSBpcyBhIG1hdGNoaW5nIGRlZmluaXRpb24gCiBQQVNT
IFRoZSBkZWZpbmVkIGZsYWcgb2YgYSBjdXN0b20gZWxlbWVudCBjcmVhdGVkIGJ5IEhUTUwgcGFy
c2VyIG11c3QgYmUgdW5zZXQgaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgZGVmaW5pdGlvbiAKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNsYXNz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGVm
aW5lZC1wc2V1ZG8tY2xhc3MuaHRtbAkocmV2aXNpb24gMjA0ODgzKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9jdXN0b20tZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3MuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTYsNyArMTYsNyBAQCB2YXIgdXBncmFkZUNhbmRpZGF0ZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsCiAKIHRlc3QoZnVuY3Rpb24gKCkgewogICAgIGFzc2VydF9mYWxzZSh1cGdyYWRlQ2Fu
ZGlkYXRlLm1hdGNoZXMoJzpkZWZpbmVkJykpOwotfSwgJ1RoZSBkZWZpbmVkIGZsYWcgb2YgYSBj
dXN0b20gZWxlbWVudCBtdXN0IGJlIHNldCBpZiBhIGN1c3RvbSBlbGVtZW50IGhhcyBub3QgYmVl
biB1cGdyYWRlZCB5ZXQnKTsKK30sICdUaGUgZGVmaW5lZCBmbGFnIG9mIGEgY3VzdG9tIGVsZW1l
bnQgbXVzdCBub3QgYmUgc2V0IGlmIGEgY3VzdG9tIGVsZW1lbnQgaGFzIG5vdCBiZWVuIHVwZ3Jh
ZGVkIHlldCcpOwogCiB2YXIgbWF0Y2hJbnNpZGVDb25zdHJ1Y3RvcjsKIGNsYXNzIE15RWxlbWVu
dCBleHRlbmRzIEhUTUxFbGVtZW50IHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3Mt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMDQ4ODMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3Rv
bS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2tzLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwxMCArMSw0MyBAQAogCiBQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQg
ZnJvbSBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxi
YWNrIAotUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhaGVkIG5vZGUg
bXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAotRkFJTCBSZW1v
dmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayBhc3NlcnRfYXJyYXlfZXF1YWxz
OiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMiBnb3QgMAotUEFTUyBSZW1vdmluZyBhbiBhbmNl
c3RvciBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKLUZBSUwgUmVtb3ZpbmcgYW4gYW5jZXN0b3Ig
b2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGEgd2luZG93LWxlc3MgZG9jdW1lbnQgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgYXNzZXJ0X2FycmF5X2VxdWFsczog
bGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDIgZ290IDAKLVBBU1MgUmVtb3ZpbmcgYSBjdXN0b20g
ZWxlbWVudCBmcm9tIGEgY29ubmVjdGVkIHNoYWRvdyB0cmVlIG11c3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qg
b2YgYSBzaGFkb3cgdHJlZSB3aXRoIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBSZW1vdmlu
ZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSBtdXN0IG5vdCBl
bnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFu
IGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20g
ZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBo
b3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1l
bnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50
IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1Mg
UmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBl
bGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFT
UyBSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQg
b2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3Rl
ZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cg
dHJlZSBpbiBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBo
b3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVt
ZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBS
ZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0
IGJlbG9uZ3MgdG8gYSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBub3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1
c3RvbSBlbGVtZW50IGZyb20gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
ZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3Rv
bSBlbGVtZW50IGZyb20gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlz
Y29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBh
IHNoYWRvdyB0cmVlIGluIGEgbmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRp
c2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBj
dXN0b20gZWxlbWVudCBmcm9tIGFuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
ZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJv
bSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIG5ldyBkb2N1bWVudCBt
dXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJl
bW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYW4gYW5j
ZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0
b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIHRo
ZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYWNsb25lZCBkb2N1bWVudCBt
dXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3Zp
bmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxv
bmdzIHRvIGEgY2xvbmVkIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNj
b25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEg
ZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9m
IGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1
bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1Mg
UmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVu
dCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBk
aXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEg
Y3VzdG9tIGVsZW1lbnQgZnJvbSBhZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1l
bnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJl
bW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQg
YmVsb25ncyB0byBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3Qg
bm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3Zp
bmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0
ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgSFRNTCBk
b2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZy
b20gYSBzaGFkb3cgdHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1
bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1Mg
UmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhSFRNTCBk
b2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZy
b20gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBIVE1MIGRvY3VtZW50
IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRp
c2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20g
YSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVj
dGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50
IGZyb20gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlz
Y29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBh
IHNoYWRvdyB0cmVlIGluIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhv
c3Qgb2YgYSBjdXN0b20gZWxlbWVudCBmcm9tIGFkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEg
Y3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0
byBhIGRvY3VtZW50IGluIGFuIGlmcmFtZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlz
Y29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBh
IEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlz
Y29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBl
bGVtZW50IGZyb20gYSBIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhSIG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBl
bGVtZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBY
SFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJl
bW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYUhUTUwgZG9j
dW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVk
Q2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVk
IHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBY
SFIgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorCiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxs
YmFja3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50
cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWwJKHJldmlzaW9uIDIwNDg4MykKKysrIExheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNyw2ICs3LDcgQEAKIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmNvbXBvbmVudHMvc3BlYy9jdXN0b20vI2Rmbi1jb25uZWN0
ZWQtY2FsbGJhY2siPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9kb2N1bWVudC10eXBl
cy5qcyI+PC9zY3JpcHQ+CiA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5jc3MnPgogPC9oZWFkPgogPGJvZHk+CkBAIC0yMCw5MyArMjEsNzMg
QEAgY2xhc3MgTXlDdXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbgogfQogY3VzdG9tRWxl
bWVudHMuZGVmaW5lKCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CiAKLXRl
c3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChp
bnN0YW5jZSk7Ci0KLSAgICBjYWxscyA9IFtdOwotICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoaW5zdGFuY2UpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlzY29ubmVj
dGVkJywgaW5zdGFuY2VdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBk
b2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOwot
Ci10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwot
Ci0gICAgY2FsbHMgPSBbXTsKLSAgICBwYXJlbnQucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOwotICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFtdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBl
bGVtZW50IGZyb20gYSBkZXRhaGVkIG5vZGUgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNv
bm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFy
IGRvY3VtZW50V2l0aG91dFdpbmRvdyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhU
TUxEb2N1bWVudCgpOwotICAgIGRvY3VtZW50V2l0aG91dFdpbmRvdy5ib2R5LmFwcGVuZENoaWxk
KGluc3RhbmNlKTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgZG9jdW1lbnRXaXRob3V0V2luZG93
LmJvZHkucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2Fs
bHMsIFsnZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBl
bGVtZW50IGZyb20gYSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9r
ZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIg
aW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwot
ICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYXJl
bnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
cGFyZW50KTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChwYXJlbnQpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlzY29ubmVjdGVk
JywgaW5zdGFuY2VdKTsKLX0sICdSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBhIGN1c3RvbSBlbGVt
ZW50IGZyb20gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRD
YWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBwYXJlbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYXJlbnQuYXBwZW5kQ2hpbGQo
aW5zdGFuY2UpOwotICAgIHZhciBkb2N1bWVudFdpdGhvdXRXaW5kb3cgPSBkb2N1bWVudC5pbXBs
ZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKLSAgICBkb2N1bWVudFdpdGhvdXRXaW5k
b3cuYm9keS5hcHBlbmRDaGlsZChwYXJlbnQpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1
bWVudFdpdGhvdXRXaW5kb3cuYm9keS5yZW1vdmVDaGlsZChwYXJlbnQpOwotICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoY2FsbHMsIFsnZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdSZW1v
dmluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgYSB3aW5kb3ctbGVzcyBk
b2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOwot
Ci10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBob3N0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsK
LSAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30p
OwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAgY2FsbHMgPSBb
XTsKLSAgICBzaGFkb3dSb290LnJlbW92ZUNoaWxkKGluc3RhbmNlKTsKLSAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGNhbGxzLCBbJ2Rpc2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7Ci19LCAnUmVtb3Zp
bmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgY29ubmVjdGVkIHNoYWRvdyB0cmVlIG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24g
KCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3Rv
bS1lbGVtZW50Jyk7Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKLSAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2Vk
J30pOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaG9zdCk7Ci0KLSAgICBjYWxscyA9IFtdOwotICAgIGRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoaG9zdCk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywg
WydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotfSwgJ1JlbW92aW5nIHRoZSBzaGFkb3cgaG9z
dCBvZiBhIHNoYWRvdyB0cmVlIHdpdGggYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQg
bXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2snKTsKLQotdGVzdChm
dW5jdGlvbiAoKSB7Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
bXktY3VzdG9tLWVsZW1lbnQnKTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOwotICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6
ICdjbG9zZWQnfSk7Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0KLSAg
ICBjYWxscyA9IFtdOwotICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOwotICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFtdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBl
bGVtZW50IGZyb20gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBp
bnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2snKTsKLQorRG9jdW1lbnRUeXBlcy5mb3JFYWNoKGZ1
bmN0aW9uIChlbnRyeSkgeworICAgIHZhciBkb2N1bWVudE5hbWUgPSBlbnRyeS5uYW1lOworICAg
IHZhciBnZXREb2N1bWVudCA9IGVudHJ5LmNyZWF0ZTsKKworICAgIHByb21pc2VfdGVzdChmdW5j
dGlvbiAoKSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRv
YykgeworICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
bXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBw
ZW5kQ2hpbGQoaW5zdGFuY2UpOworICAgICAgICAgICAgY2FsbHMgPSBbXTsKKyAgICAgICAgICAg
IGRvYy5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOworICAgICAgICAgICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwor
ICAgICAgICB9KTsKKyAgICB9LCAnUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgJyAr
IGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2Fs
bGJhY2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVy
biBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGlu
c3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAg
ICAgICAgICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAg
ICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisgICAgICAgICAgICBkb2Mu
ZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHBhcmVudCk7CisgICAgICAgICAgICBjYWxscyA9
IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChwYXJlbnQp
OworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQn
LCBpbnN0YW5jZV0pOworICAgICAgICB9KTsKKyAgICB9LCAnUmVtb3ZpbmcgYW4gYW5jZXN0b3Ig
b2YgY3VzdG9tIGVsZW1lbnQgZnJvbSBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7CisKKyAgICBwcm9taXNlX3Rlc3Qo
ZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9u
IChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2YXIgaG9zdCA9IGRvYy5jcmVh
dGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnZGl2Jyk7CisgICAg
ICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2Vk
J30pOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChob3N0KTsK
KyAgICAgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworCisgICAgICAg
ICAgICBjYWxscyA9IFtdOworICAgICAgICAgICAgc2hhZG93Um9vdC5yZW1vdmVDaGlsZChpbnN0
YW5jZSk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Rpc2Nvbm5l
Y3RlZCcsIGluc3RhbmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdSZW1vdmluZyBhIGN1c3Rv
bSBlbGVtZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7CisKKyAgICBwcm9t
aXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVu
KGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2YXIgaG9zdCA9
IGRvYy5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnZGl2
Jyk7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2Rl
OiAnY2xvc2VkJ30pOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5j
ZSk7CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOwor
CisgICAgICAgICAgICBjYWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVu
dC5yZW1vdmVDaGlsZChob3N0KTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2Fs
bHMsIFsnZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ1Jl
bW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYScgKyBkb2N1
bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNr
Jyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0
RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAg
ICAgICB2YXIgaG9zdCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwnLCAnZGl2Jyk7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0
YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBl
bmRDaGlsZChpbnN0YW5jZSk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAg
ICBzaGFkb3dSb290LnJlbW92ZUNoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoY2FsbHMsIFtdKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ1JlbW92aW5nIGEg
Y3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0
byBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNj
b25uZWN0ZWRDYWxsYmFjaycpOworfSk7CiAKIDwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNl
cy9kb2N1bWVudC10eXBlcy5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1
c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvZG9jdW1lbnQtdHlwZXMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw3NCBAQAorY29uc3QgRG9jdW1lbnRUeXBlcyA9IFsKKyAgICB7CisgICAgICAg
IG5hbWU6ICdkb2N1bWVudCcsCisgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeyByZXR1cm4g
UHJvbWlzZS5yZXNvbHZlKGRvY3VtZW50KTsgfQorICAgIH0sCisgICAgeworICAgICAgICBuYW1l
OiAnZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50JywKKyAgICAgICAgY3JlYXRlOiBmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29s
dmUpIHsKKyAgICAgICAgICAgICAgICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAndGVtcGxhdGUnKTsKKyAgICAg
ICAgICAgICAgICB2YXIgZG9jID0gdGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50OworICAg
ICAgICAgICAgICAgIGlmICghZG9jLmRvY3VtZW50RWxlbWVudCkKKyAgICAgICAgICAgICAgICAg
ICAgZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCdodG1sJykpOworICAgICAgICAg
ICAgICAgIHJlc29sdmUoZG9jKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfSwK
KyAgICB7CisgICAgICAgIG5hbWU6ICduZXcgZG9jdW1lbnQnLAorICAgICAgICBjcmVhdGU6IGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVz
b2x2ZSkgeworICAgICAgICAgICAgICAgIHZhciBkb2MgPSBuZXcgRG9jdW1lbnQoKTsKKyAgICAg
ICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnQoJ2h0bWwnKSk7Cisg
ICAgICAgICAgICAgICAgcmVzb2x2ZShkb2MpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0K
KyAgICB9LAorICAgIHsKKyAgICAgICAgbmFtZTogJ2Nsb25lZCBkb2N1bWVudCcsCisgICAgICAg
IGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1
bmN0aW9uIChyZXNvbHZlKSB7CisgICAgICAgICAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmNs
b25lTm9kZShmYWxzZSk7CisgICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVh
dGVFbGVtZW50KCdodG1sJykpOworICAgICAgICAgICAgICAgIHJlc29sdmUoZG9jKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdkb2N1
bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCcsCisgICAgICAgIGNyZWF0ZTogZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkb2N1bWVudC5p
bXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKSk7CisgICAgICAgIH0KKyAgICB9LAor
ICAgIHsKKyAgICAgICAgbmFtZTogJ0hUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1
bWVudCcsCisgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJu
IFByb21pc2UucmVzb2x2ZShkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgn
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdodG1sJywgbnVsbCkpOworICAgICAgICB9
CisgICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdkb2N1bWVudCBpbiBhbiBpZnJhbWUnLAor
ICAgICAgICBjcmVhdGU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgdmFyIGlm
cmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgICAgICAgICAgICAg
IGlmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7IHJlc29sdmUoaWZyYW1lLmNvbnRlbnREb2N1
bWVudCk7IH0KKyAgICAgICAgICAgICAgICBpZnJhbWUub25lcnJvciA9IGZ1bmN0aW9uICgpIHsg
cmVqZWN0KCdGYWlsZWQgdG8gbG9hZCBhbiBlbXB0eSBpZnJhbWUnKTsgfQorICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdIVE1MIGRvY3VtZW50IGZl
dGNoZWQgYnkgWEhSJywKKyAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
ICAgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgICAgICAg
ICB4aHIub3BlbignR0VUJywgJ3Jlc291cmNlcy9lbXB0eS1odG1sLWRvY3VtZW50Lmh0bWwnKTsK
KyAgICAgICAgICAgICAgICB4aHIub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC94bWwnKTsKKyAgICAg
ICAgICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24gKCkgeyByZXNvbHZlKHhoci5yZXNwb25z
ZVhNTCk7IH0KKyAgICAgICAgICAgICAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uICgpIHsgcmVq
ZWN0KCdGYWlsZWQgdG8gZmV0Y2ggdGhlIGRvY3VtZW50Jyk7IH0KKyAgICAgICAgICAgICAgICB4
aHIuc2VuZCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CitdOwpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1l
bnRzL3Jlc291cmNlcy9lbXB0eS1odG1sLWRvY3VtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2VtcHR5LWh0bWwtZG9jdW1l
bnQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50
cy9yZXNvdXJjZXMvZW1wdHktaHRtbC1kb2N1bWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPC9ib2R5PgorPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286834</attachid>
            <date>2016-08-23 22:14:51 -0700</date>
            <delta_ts>2016-08-23 22:14:51 -0700</delta_ts>
            <desc>One more build fix</desc>
            <filename>bug-161065-20160823221252.patch</filename>
            <type>text/plain</type>
            <size>45821</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE2LTA4LTIzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFkb3B0ZWQgY3VzdG9tIGVsZW1l
bnQncyBjYWxsYmFja3Mgc2hvdWxkIGNvbnRpbnVlIHRvIHdvcmsKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTA2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFuZHJlYXMgS2xpbmcuCisKKyAgICAgICAgV2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIGFk
b3B0ZWQgaW50byBhbm90aGVyIGRvY3VtZW50LCBpdHMgcmVhY3Rpb24gY2FsbGJhY2tzIG5lZWQg
dG8gY29udGludWUgdG8gd29yay4KKyAgICAgICAgQmVjYXVzZSBhIGRpZmZlcmVudCBkb2N1bWVu
dCBtYXkgaGF2ZSBpdHMgb3duIGdsb2JhbCBvYmplY3QsIGVhY2ggY3VzdG9tIGVsZW1lbnQgbmVl
ZHMgdG8gcmVtZW1iZXIgaXRzCisgICAgICAgIG9yaWdpbmFsIGdsb2JhbCBvYmplY3Qgb3IgSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlLiBUaGlzIHBhdGNoIGFkZHMgdGhlIGxhdHRlciB0byB0aGUg
ZWxlbWVudCByYXJlIGRhdGEuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3VzdG9tLWVsZW1lbnRz
L2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9jdXN0b20tZWxl
bWVudHMvZGlzY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0
b21FbGVtZW50SW50ZXJmYWNlOjpjb25zdHJ1Y3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFkZUVsZW1lbnQpOgorICAgICAgICAqIGRv
bS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaW5k
SW50ZXJmYWNlRm9yQ3VzdG9tRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpD
dXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZUNvbm5lY3RlZENhbGxiYWNrSWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVl
dWVEaXNjb25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3Rv
bUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlQXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrSWZO
ZWVkZWQpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6Omluc2VydGVkSW50byk6IEludm9rZSBjYWxsYmFja3MgZXZlbiB3aGVuIHRoZSBjdXJy
ZW50IGRvY3VtZW50IGlzIG5vdCBhIEhUTUwgZG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50OjpyZW1vdmVkRnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQpOiBNb3ZlZCBmcm9tIE5vZGUuIEFkZCB0aGUgZWxl
bWVudCBpbnRlcmZhY2UgdG8gdGhlIHJhcmUgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1l
bnQ6OmN1c3RvbUVsZW1lbnRJbnRlcmZhY2UpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vRWxlbWVu
dC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuY3BwOgorICAgICAgICAqIGRvbS9F
bGVtZW50UmFyZURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6Y3Vz
dG9tRWxlbWVudEludGVyZmFjZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJh
cmVEYXRhOjpzZXRDdXN0b21FbGVtZW50SW50ZXJmYWNlKTogQWRkZWQuCisgICAgICAgICogZG9t
L05vZGUuaDoKKyAgICAgICAgKChXZWJDb3JlOjpOb2RlOjpzZXRDdXN0b21FbGVtZW50SXNSZXNv
bHZlZCk6IERlbGV0ZWQuCisKIDIwMTYtMDgtMjMgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiAhdmlldygpLmxheW91dFN0YXRlRW5h
YmxlZCgpIHx8IHN0eWxlKCkuc3R5bGVUeXBlKCkgPT0gRklSU1RfTEVUVEVSIGluIFdlYkNvcmU6
OlJlbmRlcklubGluZTo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlLmNwcAkocmV2aXNpb24gMjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgs
NyBAQCBSZWZQdHI8RWxlbWVudD4gSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlCiAgICAgRWxlbWVu
dCogd3JhcHBlZEVsZW1lbnQgPSBKU0VsZW1lbnQ6OnRvV3JhcHBlZChuZXdFbGVtZW50KTsKICAg
ICBpZiAoIXdyYXBwZWRFbGVtZW50KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB3cmFw
cGVkRWxlbWVudC0+c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQoKTsKKyAgICB3cmFwcGVkRWxl
bWVudC0+c2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2ZWQoKnRoaXMpOwogICAgIHJldHVybiB3cmFw
cGVkRWxlbWVudDsKIH0KIApAQCAtMTQ3LDggKzE0Nyw3IEBAIHZvaWQgSlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlOjp1cGdyYWRlRWwKICAgICAgICAgdGhyb3dJbnZhbGlkU3RhdGVFcnJvcigqc3Rh
dGUsICJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBmYWlsZWQgdG8gdXBncmFkZSBhbiBlbGVt
ZW50Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgd3JhcHBlZEVsZW1lbnQtPnNldEN1
c3RvbUVsZW1lbnRJc1Jlc29sdmVkKCk7Ci0gICAgQVNTRVJUKHdyYXBwZWRFbGVtZW50LT5pc0N1
c3RvbUVsZW1lbnQoKSk7CisgICAgd3JhcHBlZEVsZW1lbnQtPnNldEN1c3RvbUVsZW1lbnRJc1Jl
c29sdmVkKCp0aGlzKTsKIH0KIAogdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6Omludm9r
ZUNhbGxiYWNrKEVsZW1lbnQmIGVsZW1lbnQsIEpTT2JqZWN0KiBjYWxsYmFjaywgY29uc3QgV1RG
OjpGdW5jdGlvbjx2b2lkKEV4ZWNTdGF0ZSosIE1hcmtlZEFyZ3VtZW50QnVmZmVyJik+JiBhZGRB
cmd1bWVudHMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9u
UXVldWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50
UmVhY3Rpb25RdWV1ZS5jcHAJKHJldmlzaW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2Rv
bS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNiwy
MyArMTA2LDkgQEAgdm9pZCBDdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZTo6ZW5xdWV1ZQogICAg
ICAgICBxdWV1ZS0+bV9pdGVtcy5hcHBlbmQoe0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRl
bTo6VHlwZTo6RWxlbWVudFVwZ3JhZGUsIGVsZW1lbnQsIGVsZW1lbnRJbnRlcmZhY2V9KTsKIH0K
IAotc3RhdGljIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSogZmluZEludGVyZmFjZUZvckN1c3Rv
bUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKLXsKLSAgICBBU1NFUlQoZWxlbWVudC5pc0N1c3Rv
bUVsZW1lbnQoKSk7Ci0gICAgYXV0byogd2luZG93ID0gZWxlbWVudC5kb2N1bWVudCgpLmRvbVdp
bmRvdygpOwotICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IGF1dG8qIHJlZ2lzdHJ5ID0gd2luZG93LT5jdXN0b21FbGVtZW50UmVnaXN0cnkoKTsKLSAgICBp
ZiAoIXJlZ2lzdHJ5KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiByZWdp
c3RyeS0+ZmluZEludGVyZmFjZShlbGVtZW50LnRhZ1FOYW1lKCkpOwotfQotCiB2b2lkIEN1c3Rv
bUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlQ29ubmVjdGVkQ2FsbGJhY2tJZk5lZWRlZChF
bGVtZW50JiBlbGVtZW50KQogewotICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSBmaW5kSW50
ZXJmYWNlRm9yQ3VzdG9tRWxlbWVudChlbGVtZW50KTsKKyAgICBhdXRvKiBlbGVtZW50SW50ZXJm
YWNlID0gZWxlbWVudC5jdXN0b21FbGVtZW50SW50ZXJmYWNlKCk7CiAgICAgaWYgKCFlbGVtZW50
SW50ZXJmYWNlKQogICAgICAgICByZXR1cm47CiAKQEAgLTEzMiw3ICsxMTgsNyBAQCB2b2lkIEN1
c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlCiAKIHZvaWQgQ3VzdG9tRWxlbWVudFJl
YWN0aW9uUXVldWU6OmVucXVldWVEaXNjb25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQm
IGVsZW1lbnQpCiB7Ci0gICAgYXV0byogZWxlbWVudEludGVyZmFjZSA9IGZpbmRJbnRlcmZhY2VG
b3JDdXN0b21FbGVtZW50KGVsZW1lbnQpOworICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSBl
bGVtZW50LmN1c3RvbUVsZW1lbnRJbnRlcmZhY2UoKTsKICAgICBpZiAoIWVsZW1lbnRJbnRlcmZh
Y2UpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTQyLDcgKzEyOCw3IEBAIHZvaWQgQ3VzdG9tRWxl
bWVudFJlYWN0aW9uUXVldWU6OmVucXVldWUKIAogdm9pZCBDdXN0b21FbGVtZW50UmVhY3Rpb25R
dWV1ZTo6ZW5xdWV1ZUF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFja0lmTmVlZGVkKEVsZW1lbnQmIGVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmV3VmFsdWUpCiB7Ci0gICAgYXV0
byogZWxlbWVudEludGVyZmFjZSA9IGZpbmRJbnRlcmZhY2VGb3JDdXN0b21FbGVtZW50KGVsZW1l
bnQpOworICAgIGF1dG8qIGVsZW1lbnRJbnRlcmZhY2UgPSBlbGVtZW50LmN1c3RvbUVsZW1lbnRJ
bnRlcmZhY2UoKTsKICAgICBpZiAoIWVsZW1lbnRJbnRlcmZhY2UgfHwgIWVsZW1lbnRJbnRlcmZh
Y2UtPm9ic2VydmVzQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkpKQogICAgICAg
ICByZXR1cm47CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDIwNDg4MykK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3
NCw3ICsxNTc0LDggQEAgTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBFbGVtZQog
ICAgIC8vIFRoaXMgZWxlbWVudCBpcyBuZXcgdG8gdGhlIHNoYWRvdyB0cmVlIChhbmQgaXRzIHRy
ZWUgc2NvcGUpIG9ubHkgaWYgdGhlIHBhcmVudCBpbnRvIHdoaWNoIHRoaXMgZWxlbWVudAogICAg
IC8vIG9yIGl0cyBhbmNlc3RvciBpcyBpbnNlcnRlZCBiZWxvbmdzIHRvIHRoZSBzYW1lIHRyZWUg
c2NvcGUgYXMgdGhpcyBlbGVtZW50J3MuCiAgICAgVHJlZVNjb3BlKiBuZXdTY29wZSA9ICZpbnNl
cnRpb25Qb2ludC50cmVlU2NvcGUoKTsKLSAgICBIVE1MRG9jdW1lbnQqIG5ld0RvY3VtZW50ID0g
IXdhc0luRG9jdW1lbnQgJiYgaW5Eb2N1bWVudCgpICYmIGlzPEhUTUxEb2N1bWVudD4obmV3U2Nv
cGUtPmRvY3VtZW50U2NvcGUoKSkgPyAmZG93bmNhc3Q8SFRNTERvY3VtZW50PihuZXdTY29wZS0+
ZG9jdW1lbnRTY29wZSgpKSA6IG51bGxwdHI7CisgICAgYm9vbCBiZWNvbWVDb25uZWN0ZWQgPSAh
d2FzSW5Eb2N1bWVudCAmJiBpbkRvY3VtZW50KCk7CisgICAgSFRNTERvY3VtZW50KiBuZXdEb2N1
bWVudCA9IGJlY29tZUNvbm5lY3RlZCAmJiBpczxIVE1MRG9jdW1lbnQ+KG5ld1Njb3BlLT5kb2N1
bWVudFNjb3BlKCkpID8gJmRvd25jYXN0PEhUTUxEb2N1bWVudD4obmV3U2NvcGUtPmRvY3VtZW50
U2NvcGUoKSkgOiBudWxscHRyOwogICAgIGlmIChuZXdTY29wZSAhPSAmdHJlZVNjb3BlKCkpCiAg
ICAgICAgIG5ld1Njb3BlID0gbnVsbHB0cjsKIApAQCAtMTYwMCw3ICsxNjAxLDcgQEAgTm9kZTo6
SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBFbGVtZQogICAgIH0KIAogI2lmIEVOQUJMRShD
VVNUT01fRUxFTUVOVFMpCi0gICAgaWYgKG5ld0RvY3VtZW50ICYmIFVOTElLRUxZKGlzQ3VzdG9t
RWxlbWVudCgpKSkKKyAgICBpZiAoYmVjb21lQ29ubmVjdGVkICYmIFVOTElLRUxZKGlzQ3VzdG9t
RWxlbWVudCgpKSkKICAgICAgICAgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVD
b25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKCp0aGlzKTsKICNlbmRpZgogCkBAIC0xNjIyLDcgKzE2
MjMsOCBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRhaW5lck5vZGUmCiAKICAgICBp
ZiAoaW5zZXJ0aW9uUG9pbnQuaXNJblRyZWVTY29wZSgpKSB7CiAgICAgICAgIFRyZWVTY29wZSog
b2xkU2NvcGUgPSAmaW5zZXJ0aW9uUG9pbnQudHJlZVNjb3BlKCk7Ci0gICAgICAgIEhUTUxEb2N1
bWVudCogb2xkRG9jdW1lbnQgPSBpbkRvY3VtZW50KCkgJiYgaXM8SFRNTERvY3VtZW50PihvbGRT
Y29wZS0+ZG9jdW1lbnRTY29wZSgpKSA/ICZkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KG9sZFNjb3Bl
LT5kb2N1bWVudFNjb3BlKCkpIDogbnVsbHB0cjsKKyAgICAgICAgYm9vbCBiZWNvbWVEaXNjb25u
ZWN0ZWQgPSBpbkRvY3VtZW50KCk7CisgICAgICAgIEhUTUxEb2N1bWVudCogb2xkRG9jdW1lbnQg
PSBiZWNvbWVEaXNjb25uZWN0ZWQgJiYgaXM8SFRNTERvY3VtZW50PihvbGRTY29wZS0+ZG9jdW1l
bnRTY29wZSgpKSA/ICZkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KG9sZFNjb3BlLT5kb2N1bWVudFNj
b3BlKCkpIDogbnVsbHB0cjsKIAogICAgICAgICAvLyBDb250YWluZXJOb2RlOjpyZW1vdmVCZXR3
ZWVuIGFsd2F5cyBzZXRzIHRoZSByZW1vdmVkIGNoaWQncyB0cmVlIHNjb3BlIHRvIERvY3VtZW50
J3MgYnV0IEluVHJlZVNjb3BlIGZsYWcgaXMgdW5zZXQgaW4gTm9kZTo6cmVtb3ZlZEZyb20uCiAg
ICAgICAgIC8vIFNvIHRoaXMgZWxlbWVudCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIG9sZCB0
cmVlIHNjb3BlIG9ubHkgaWYgSW5UcmVlU2NvcGUgZmxhZyBpcyBzZXQgYW5kIHRoaXMgZWxlbWVu
dCdzIHRyZWUgc2NvcGUgaXMgRG9jdW1lbnQncy4KQEAgLTE2NTEsNyArMTY1Myw3IEBAIHZvaWQg
RWxlbWVudDo6cmVtb3ZlZEZyb20oQ29udGFpbmVyTm9kZSYKICAgICAgICAgfQogCiAjaWYgRU5B
QkxFKENVU1RPTV9FTEVNRU5UUykKLSAgICAgICAgaWYgKG9sZERvY3VtZW50ICYmIFVOTElLRUxZ
KGlzQ3VzdG9tRWxlbWVudCgpKSkKKyAgICAgICAgaWYgKGJlY29tZURpc2Nvbm5lY3RlZCAmJiBV
TkxJS0VMWShpc0N1c3RvbUVsZW1lbnQoKSkpCiAgICAgICAgICAgICBDdXN0b21FbGVtZW50UmVh
Y3Rpb25RdWV1ZTo6ZW5xdWV1ZURpc2Nvbm5lY3RlZENhbGxiYWNrSWZOZWVkZWQoKnRoaXMpOwog
I2VuZGlmCiAgICAgfQpAQCAtMTgyMSw2ICsxODIzLDI3IEBAIFNoYWRvd1Jvb3QmIEVsZW1lbnQ6
OmVuc3VyZVVzZXJBZ2VudFNoYWQKICAgICByZXR1cm4gKnNoYWRvd1Jvb3Q7CiB9CiAKKyAgICAK
KyNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQorCit2b2lkIEVsZW1lbnQ6OnNldEN1c3RvbUVs
ZW1lbnRJc1Jlc29sdmVkKEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSYgZWxlbWVudEludGVyZmFj
ZSkKK3sKKyAgICBjbGVhckZsYWcoSXNFZGl0aW5nVGV4dE9yVW5yZXNvbHZlZEN1c3RvbUVsZW1l
bnRGbGFnKTsKKyAgICBzZXRGbGFnKElzQ3VzdG9tRWxlbWVudCk7CisgICAgZW5zdXJlRWxlbWVu
dFJhcmVEYXRhKCkuc2V0Q3VzdG9tRWxlbWVudEludGVyZmFjZShlbGVtZW50SW50ZXJmYWNlKTsK
K30KKworSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKiBFbGVtZW50OjpjdXN0b21FbGVtZW50SW50
ZXJmYWNlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaXNDdXN0b21FbGVtZW50KCkpOworICAgIGlm
ICghaGFzUmFyZURhdGEoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGVs
ZW1lbnRSYXJlRGF0YSgpLT5jdXN0b21FbGVtZW50SW50ZXJmYWNlKCk7Cit9CisKKyNlbmRpZgor
CisKIGNvbnN0IEF0b21pY1N0cmluZyYgRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAog
ewogICAgIHJldHVybiBwc2V1ZG8oKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNpb24g
MjA0ODgzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDQsNiArNDQsNyBAQCBjbGFzcyBET01Ub2tlbkxpc3Q7CiBjbGFzcyBFbGVtZW50UmFyZURh
dGE7CiBjbGFzcyBIVE1MRG9jdW1lbnQ7CiBjbGFzcyBJbnRTaXplOworY2xhc3MgSlNDdXN0b21F
bGVtZW50SW50ZXJmYWNlOwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIExvY2FsZTsKIGNs
YXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKQEAgLTI3Miw2ICsyNzMsMTEgQEAgcHVibGljOgog
ICAgIFNoYWRvd1Jvb3QqIHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBTaGFkb3dSb290JiBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CiAKKyNpZiBF
TkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQorICAgIHZvaWQgc2V0Q3VzdG9tRWxlbWVudElzUmVzb2x2
ZWQoSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlJik7CisgICAgSlNDdXN0b21FbGVtZW50SW50ZXJm
YWNlKiBjdXN0b21FbGVtZW50SW50ZXJmYWNlKCkgY29uc3Q7CisjZW5kaWYKKwogICAgIC8vIEZJ
WE1FOiB0aGlzIHNob3VsZCBub3QgYmUgdmlydHVhbCwgZG8gbm90IG92ZXJyaWRlIHRoaXMuCiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCShyZXZpc2lvbiAyMDQ4
ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDQsNyArNDQsMTEgQEAgc3RydWN0IFNhbWVTaXplQXNFbGVtZW50UmFyZURhdGEg
OiBOb2RlUgogICAgIFJlZ2lvbk92ZXJzZXRTdGF0ZSByZWdpb25PdmVyc2V0U3RhdGU7CiAgICAg
TGF5b3V0U2l6ZSBzaXplRm9yUmVzaXppbmc7CiAgICAgSW50UG9pbnQgc2F2ZWRMYXllclNjcm9s
bFBvc2l0aW9uOworI2lmIEVOQUJMRShDVVNUT01fRUxFTUVOVFMpCisgICAgdm9pZCogcG9pbnRl
cnNbOF07CisjZWxzZQogICAgIHZvaWQqIHBvaW50ZXJzWzddOworI2VuZGlmCiB9OwogCiBzdGF0
aWNfYXNzZXJ0KHNpemVvZihFbGVtZW50UmFyZURhdGEpID09IHNpemVvZihTYW1lU2l6ZUFzRWxl
bWVudFJhcmVEYXRhKSwgIkVsZW1lbnRSYXJlRGF0YSBzaG91bGQgc3RheSBzbWFsbCIpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAkocmV2aXNpb24gMjA0ODgzKQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NCw2ICsyNCw3IEBACiAKICNpbmNsdWRlICJET01Ub2tlbkxpc3QuaCIKICNpbmNsdWRlICJEYXRh
c2V0RE9NU3RyaW5nTWFwLmgiCisjaW5jbHVkZSAiSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmgi
CiAjaW5jbHVkZSAiTmFtZWROb2RlTWFwLmgiCiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCiAj
aW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgpAQCAtOTMsNiArOTQsMTEgQEAgcHVibGljOgogICAg
IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBtX3NoYWRvd1Jvb3QuZ2V0
KCk7IH0KICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUmVmUHRyPFNoYWRvd1Jvb3Q+JiYgc2hhZG93
Um9vdCkgeyBtX3NoYWRvd1Jvb3QgPSBXVEZNb3ZlKHNoYWRvd1Jvb3QpOyB9CiAKKyNpZiBFTkFC
TEUoQ1VTVE9NX0VMRU1FTlRTKQorICAgIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSogY3VzdG9t
RWxlbWVudEludGVyZmFjZSgpIHsgcmV0dXJuIG1fY3VzdG9tRWxlbWVudEludGVyZmFjZS5nZXQo
KTsgfQorICAgIHZvaWQgc2V0Q3VzdG9tRWxlbWVudEludGVyZmFjZShKU0N1c3RvbUVsZW1lbnRJ
bnRlcmZhY2UmIGN1c3RvbUVsZW1lbnRJbnRlcmZhY2UpIHsgbV9jdXN0b21FbGVtZW50SW50ZXJm
YWNlID0gJmN1c3RvbUVsZW1lbnRJbnRlcmZhY2U7IH0KKyNlbmRpZgorCiAgICAgTmFtZWROb2Rl
TWFwKiBhdHRyaWJ1dGVNYXAoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZU1hcC5nZXQoKTsg
fQogICAgIHZvaWQgc2V0QXR0cmlidXRlTWFwKHN0ZDo6dW5pcXVlX3B0cjxOYW1lZE5vZGVNYXA+
IGF0dHJpYnV0ZU1hcCkgeyBtX2F0dHJpYnV0ZU1hcCA9IFdURk1vdmUoYXR0cmlidXRlTWFwKTsg
fQogCkBAIC0xNDksNiArMTU1LDkgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0
YXNldERPTVN0cmluZ01hcD4gbV9kYXRhc2V0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Ub2tl
bkxpc3Q+IG1fY2xhc3NMaXN0OwogICAgIFJlZlB0cjxTaGFkb3dSb290PiBtX3NoYWRvd1Jvb3Q7
CisjaWYgRU5BQkxFKENVU1RPTV9FTEVNRU5UUykKKyAgICBSZWZQdHI8SlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlPiBtX2N1c3RvbUVsZW1lbnRJbnRlcmZhY2U7CisjZW5kaWYKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1hcDsKIAogICAgIFJlZlB0cjxQc2V1
ZG9FbGVtZW50PiBtX2JlZm9yZVBzZXVkb0VsZW1lbnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlz
aW9uIDIwNDg4MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI2Nyw3ICsyNjcsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzVW5yZXNvbHZlZEN1c3Rv
bUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBpc0VsZW1lbnROb2RlKCkgJiYgZ2V0RmxhZyhJc0Vk
aXRpbmdUZXh0T3JVbnJlc29sdmVkQ3VzdG9tRWxlbWVudEZsYWcpOyB9CiAgICAgdm9pZCBzZXRJ
c1VucmVzb2x2ZWRDdXN0b21FbGVtZW50KCkgeyBzZXRGbGFnKElzRWRpdGluZ1RleHRPclVucmVz
b2x2ZWRDdXN0b21FbGVtZW50RmxhZyk7IH0KLSAgICB2b2lkIHNldEN1c3RvbUVsZW1lbnRJc1Jl
c29sdmVkKCk7CiAjZW5kaWYKIAogICAgIC8vIFJldHVybnMgbnVsbCwgYSBjaGlsZCBvZiBTaGFk
b3dSb290LCBvciBhIGxlZ2FjeSBzaGFkb3cgcm9vdC4KQEAgLTc2OSwxNiArNzY4LDYgQEAgaW5s
aW5lIENvbnRhaW5lck5vZGUqIE5vZGU6OnBhcmVudE5vZGVHdQogICAgIHJldHVybiBwYXJlbnRO
b2RlKCk7CiB9CiAKLSNpZiBFTkFCTEUoQ1VTVE9NX0VMRU1FTlRTKQotCi1pbmxpbmUgdm9pZCBO
b2RlOjpzZXRDdXN0b21FbGVtZW50SXNSZXNvbHZlZCgpCi17Ci0gICAgY2xlYXJGbGFnKElzRWRp
dGluZ1RleHRPclVucmVzb2x2ZWRDdXN0b21FbGVtZW50RmxhZyk7Ci0gICAgc2V0RmxhZyhJc0N1
c3RvbUVsZW1lbnQpOwotfQotCi0jZW5kaWYKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
aWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA0ODYwKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTYtMDgtMjMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRv
cHRlZCBjdXN0b20gZWxlbWVudCdzIGNhbGxiYWNrcyBzaG91bGQgY29udGludWUgdG8gd29yawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxMDY1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAgICAgICBBZGRlZCB0ZXN0
IGNhc2VzIGZvciBhZG9wdGluZyBjdXN0b20gZWxlbWVudHMgaW50byB2YXJpb3VzIGtpbmRzIG9m
IGRvY3VtZW50cy4KKworICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1j
YWxsYmFja3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL2Nv
bm5lY3RlZC1jYWxsYmFja3MuaHRtbDoKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9k
ZWZpbmVkLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jdXN0b20t
ZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3MuaHRtbDoKKyAgICAgICAgKiBmYXN0L2N1c3Rv
bS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2tzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0ZWQtY2FsbGJhY2tzLmh0bWw6CisgICAg
ICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvZW1wdHktaHRt
bC1kb2N1bWVudC5odG1sOiBBZGRlZC4KKwogMjAxNi0wOC0yMyAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IGhhc092ZXJmbG93aW5n
Q2VsbCA9PSB0aGlzLT5oYXNPdmVyZmxvd2luZ0NlbGwoKSBpbiBXZWJDb3JlOjpSZW5kZXJUYWJs
ZVNlY3Rpb246OmNvbXB1dGVPdmVyZmxvd0Zyb21DZWxscwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVkLWNhbGxiYWNrcy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvY29ubmVjdGVkLWNhbGxi
YWNrcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIwNDg4MykKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xLDEwICsxLDQzIEBACiAKIFBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1l
bnQgaW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxi
YWNrIAotUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgbm9k
ZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1GQUlMIElu
c2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0
IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayBhc3NlcnRfYXJyYXlfZXF1YWxz
OiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMiBnb3QgMAotUEFTUyBJbnNlcnRpbmcgYW4gYW5j
ZXN0b3Igb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1GQUlMIEluc2VydGluZyBhbiBhbmNlc3RvciBv
ZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgd2luZG93LWxlc3MgZG9jdW1lbnQgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3Ro
cyBkaWZmZXIsIGV4cGVjdGVkIDIgZ290IDAKLVBBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1l
bnQgaW50byBhIGNvbm5lY3RlZCBzaGFkb3cgdHJlZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBj
b25uZWN0ZWRDYWxsYmFjayAKLVBBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIHNo
YWRvdyB0cmVlIHdpdGggYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCi1QQVNTIEluc2VydGluZyBhIGN1c3Rv
bSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSBtdXN0IG5vdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBv
ZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
Y29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8g
YSBzaGFkb3cgdHJlZSBpbiBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5l
Y3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9t
IGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3Rl
ZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNo
ZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20g
ZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1
ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0
b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVu
dCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0
aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHNoYWRvdyB0cmVlIGluIGEgZG9jdW1lbnQgb2Yg
YSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxi
YWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQg
aW50byBhIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGlu
dm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQg
aW50byBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50IG9m
IGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVk
Q2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBuZXcgZG9j
dW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIElu
c2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgbmV3IGRvY3VtZW50
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRp
bmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSBuZXcgZG9jdW1lbnQg
bXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGlu
ZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgbmV3IGRvY3VtZW50
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRp
bmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxv
bmdzIHRvIGEgbmV3IGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0
ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGNsb25l
ZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BB
U1MgSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSBjbG9uZWQg
ZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNT
IEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBhIGNsb25l
ZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BB
U1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBj
bG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sg
CitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cg
dHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxl
bWVudCBpbnRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBl
bnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhbiBh
bmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVh
dGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sg
CitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBzaGFkb3cgdHJlZSBpbiBh
IGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgdGhlIHNoYWRvdyBob3N0
IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRN
TERvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFT
UyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUg
dGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQg
bXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNl
cnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNy
ZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBJbnNlcnRpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwg
ZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9r
ZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50
byBhIHNoYWRvdyB0cmVlIGluIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3Vt
ZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNl
cnRpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwgZG9j
dW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBj
b25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBh
IGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIEhUTUwgZG9jdW1lbnQgY3Jl
YXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVj
dGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1
bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJh
Y2sgCitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEg
ZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENh
bGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgc2hhZG93IHRy
ZWUgaW4gYSBkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29u
bmVjdGVkQ2FsbGJhY2sgCitQQVNTIEluc2VydGluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0
b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQg
aW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVu
dCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgZG9jdW1lbnQg
aW4gYW4gaWZyYW1lIG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFj
ayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIEhUTUwgZG9jdW1lbnQg
ZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sg
CitQQVNTIEluc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBpbnRvIGEgSFRN
TCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0
ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIHNoYWRv
dyB0cmVlIGluIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IGVucXVldWUgYW5k
IGludm9rZSBjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9z
dCBvZiBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhS
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBJbnNlcnRp
bmcgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxv
bmdzIHRvIGEgSFRNTCBkb2N1bWVudCBmZXRjaGVkIGJ5IFhIUiBtdXN0IG5vdCBlbnF1ZXVlIGFu
ZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2sgCisKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
dXN0b20tZWxlbWVudHMvY29ubmVjdGVkLWNhbGxiYWNrcy5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbAko
cmV2aXNpb24gMjA0ODgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvY29u
bmVjdGVkLWNhbGxiYWNrcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDYgKzcsNyBAQAogPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL3czYy5naXRodWIuaW8vd2ViY29tcG9uZW50cy9z
cGVjL2N1c3RvbS8jZGZuLWNvbm5lY3RlZC1jYWxsYmFjayI+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4v
cmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzIj48L3NjcmlwdD4KIDxsaW5rIHJlbD0nc3R5bGVz
aGVldCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+CiA8L2hlYWQ+CiA8
Ym9keT4KQEAgLTIwLDg0ICsyMSw2OCBAQCBjbGFzcyBNeUN1c3RvbUVsZW1lbnQgZXh0ZW5kcyBI
VE1MRWxlbWVuCiB9CiBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ215LWN1c3RvbS1lbGVtZW50Jywg
TXlDdXN0b21FbGVtZW50KTsKIAotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGluc3RhbmNl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKLQotICAgIGNh
bGxzID0gW107Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0gICAg
YXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotfSwg
J0luc2VydGluZyBhIGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAg
ICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVu
dCcpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICB2YXIgcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7Ci0gICAgcGFyZW50LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKLSAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbXSk7Ci19LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVs
ZW1lbnQgaW50byBhIGRldGFjaGVkIG5vZGUgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNv
bm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5j
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFy
IGRvY3VtZW50V2l0aG91dFdpbmRvdyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhU
TUxEb2N1bWVudCgpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1bWVudFdpdGhvdXRXaW5k
b3cuYm9keS5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhj
YWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotfSwgJ0luc2VydGluZyBhIGN1c3RvbSBl
bGVtZW50IGludG8gYSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9r
ZSBjb25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5z
dGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAg
IHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYXJlbnQu
YXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKHBhcmVudCk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywg
Wydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOwotfSwgJ0luc2VydGluZyBhbiBhbmNlc3RvciBvZiBh
IGN1c3RvbSBlbGVtZW50IGludG8gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBj
b25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFu
Y2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZh
ciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYXJlbnQuYXBw
ZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIHZhciBkb2N1bWVudFdpdGhvdXRXaW5kb3cgPSBkb2N1
bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKLQotICAgIGNhbGxzID0g
W107Ci0gICAgZG9jdW1lbnRXaXRob3V0V2luZG93LmJvZHkuYXBwZW5kQ2hpbGQocGFyZW50KTsK
LSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7
Ci19LCAnSW5zZXJ0aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGludG8gYSB3aW5k
b3ctbGVzcyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFj
aycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBob3N0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFj
aFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGhvc3QpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGlu
c3RhbmNlKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZCcsIGlu
c3RhbmNlXSk7Ci19LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhIGNvbm5lY3Rl
ZCBzaGFkb3cgdHJlZSBtdXN0IGVucXVldWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycp
OwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBob3N0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2Jyk7Ci0gICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNo
YWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsKLSAgICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGluc3Rh
bmNlKTsKLQotICAgIGNhbGxzID0gW107Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCho
b3N0KTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZCcsIGluc3Rh
bmNlXSk7Ci19LCAnSW5zZXJ0aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIHNoYWRvdyB0cmVlIHdp
dGggYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7Ci0gICAgdmFyIGlu
c3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKLSAg
ICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwotICAgIHZhciBzaGFk
b3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7Ci0KLSAgICBjYWxs
cyA9IFtdOwotICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoY2FsbHMsIFtdKTsKLX0sICdJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVu
dCBpbnRvIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGNvbm5lY3RlZENhbGxiYWNrJyk7CitEb2N1bWVudFR5cGVzLmZvckVhY2goZnVuY3Rpb24gKGVu
dHJ5KSB7CisgICAgdmFyIGRvY3VtZW50TmFtZSA9IGVudHJ5Lm5hbWU7CisgICAgdmFyIGdldERv
Y3VtZW50ID0gZW50cnkuY3JlYXRlOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAg
ICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20t
ZWxlbWVudCcpOworICAgICAgICAgICAgY2FsbHMgPSBbXTsKKyAgICAgICAgICAgIGRvYy5kb2N1
bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworICAgICAgICAgICAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhjYWxscywgWydjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOworICAgICAgICB9KTsK
KyAgICB9LCAnSW5zZXJ0aW5nIGEgY3VzdG9tIGVsZW1lbnQgaW50byBhICcgKyBkb2N1bWVudE5h
bWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrJyk7CisKKyAg
ICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQo
KS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2YXIg
cGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICBwYXJl
bnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworICAgICAgICAgICAgY2FsbHMgPSBbXTsKKyAgICAg
ICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQocGFyZW50KTsKKyAgICAgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnY29ubmVjdGVkJywgaW5zdGFuY2VdKTsK
KyAgICAgICAgfSk7CisgICAgfSwgJ0luc2VydGluZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxl
bWVudCBpbnRvIGEgJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2Ug
Y29ubmVjdGVkQ2FsbGJhY2snKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAg
ICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVs
ZW1lbnQnKTsKKyAgICAgICAgICAgIHZhciBob3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygnaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdkaXYnKTsKKyAgICAgICAgICAgIHZhciBzaGFk
b3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7CisgICAgICAgICAg
ICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOworCisgICAgICAgICAgICBj
YWxscyA9IFtdOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7
CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Nvbm5lY3RlZCcsIGlu
c3RhbmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdJbnNlcnRpbmcgYSBjdXN0b20gZWxlbWVu
dCBpbnRvIGEgc2hhZG93IHRyZWUgaW4gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IGVucXVl
dWUgYW5kIGludm9rZSBjb25uZWN0ZWRDYWxsYmFjaycpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1
bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAo
ZG9jKSB7CisgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdteS1jdXN0b20tZWxlbWVudCcpOworICAgICAgICAgICAgdmFyIGhvc3QgPSBkb2MuY3JlYXRl
RWxlbWVudE5TKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2RpdicpOworICAgICAg
ICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9
KTsKKyAgICAgICAgICAgIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworCisgICAg
ICAgICAgICBjYWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBl
bmRDaGlsZChob3N0KTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsn
Y29ubmVjdGVkJywgaW5zdGFuY2VdKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ0luc2VydGluZyB0
aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVudCBpbnRvIGEgJyArIGRvY3VtZW50TmFt
ZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29ubmVjdGVkQ2FsbGJhY2snKTsKKworICAg
IHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgp
LnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAgICAgICAgIHZhciBo
b3N0ID0gZG9jLmNyZWF0ZUVsZW1lbnROUygnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcs
ICdkaXYnKTsKKyAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3co
e21vZGU6ICdjbG9zZWQnfSk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAg
ICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoY2FsbHMsIFtdKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ0luc2VydGluZyBh
IGN1c3RvbSBlbGVtZW50IGludG8gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3Mg
dG8gYSAnICsgZG9jdW1lbnROYW1lICsgJyBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgY29u
bmVjdGVkQ2FsbGJhY2snKTsKK30pOwogCiA8L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNsYXNzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kZWZp
bmVkLXBzZXVkby1jbGFzcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIwNDg4MykKKysrIExheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNsYXNzLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIAotUEFTUyBUaGUgZGVmaW5lZCBm
bGFnIG9mIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCBiZSBzZXQgaWYgYSBjdXN0b20gZWxlbWVudCBo
YXMgbm90IGJlZW4gdXBncmFkZWQgeWV0IAorUEFTUyBUaGUgZGVmaW5lZCBmbGFnIG9mIGEgY3Vz
dG9tIGVsZW1lbnQgbXVzdCBub3QgYmUgc2V0IGlmIGEgY3VzdG9tIGVsZW1lbnQgaGFzIG5vdCBi
ZWVuIHVwZ3JhZGVkIHlldCAKIFBBU1MgVGhlIGRlZmluZWQgZmxhZyBvZiBhIGN1c3RvbSBlbGVt
ZW50IG11c3QgYmUgc2V0IHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBzdWNjZXNzZnVsbHkgdXBn
cmFkZWQgCiBQQVNTIFRoZSBkZWZpbmVkIGZsYWcgb2YgYSBjdXN0b20gZWxlbWVudCBtdXN0IGJl
IHNldCBpZiB0aGVyZSBpcyBhIG1hdGNoaW5nIGRlZmluaXRpb24gCiBQQVNTIFRoZSBkZWZpbmVk
IGZsYWcgb2YgYSBjdXN0b20gZWxlbWVudCBjcmVhdGVkIGJ5IEhUTUwgcGFyc2VyIG11c3QgYmUg
dW5zZXQgaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgZGVmaW5pdGlvbiAKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNsYXNzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8t
Y2xhc3MuaHRtbAkocmV2aXNpb24gMjA0ODgzKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20t
ZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTYs
NyArMTYsNyBAQCB2YXIgdXBncmFkZUNhbmRpZGF0ZSA9IGRvY3VtZW50LmNyZWF0ZUVsCiAKIHRl
c3QoZnVuY3Rpb24gKCkgewogICAgIGFzc2VydF9mYWxzZSh1cGdyYWRlQ2FuZGlkYXRlLm1hdGNo
ZXMoJzpkZWZpbmVkJykpOwotfSwgJ1RoZSBkZWZpbmVkIGZsYWcgb2YgYSBjdXN0b20gZWxlbWVu
dCBtdXN0IGJlIHNldCBpZiBhIGN1c3RvbSBlbGVtZW50IGhhcyBub3QgYmVlbiB1cGdyYWRlZCB5
ZXQnKTsKK30sICdUaGUgZGVmaW5lZCBmbGFnIG9mIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCBub3Qg
YmUgc2V0IGlmIGEgY3VzdG9tIGVsZW1lbnQgaGFzIG5vdCBiZWVuIHVwZ3JhZGVkIHlldCcpOwog
CiB2YXIgbWF0Y2hJbnNpZGVDb25zdHJ1Y3RvcjsKIGNsYXNzIE15RWxlbWVudCBleHRlbmRzIEhU
TUxFbGVtZW50IHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nv
bm5lY3RlZC1jYWxsYmFja3MtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAyMDQ4ODMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9k
aXNjb25uZWN0ZWQtY2FsbGJhY2tzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwx
MCArMSw0MyBAQAogCiBQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3Vt
ZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBS
ZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhaGVkIG5vZGUgbXVzdCBub3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxiYWNrIAotRkFJTCBSZW1vdmluZyBhIGN1c3Rv
bSBlbGVtZW50IGZyb20gYSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGlu
dm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRp
ZmZlciwgZXhwZWN0ZWQgMiBnb3QgMAotUEFTUyBSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBhIGN1
c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNj
b25uZWN0ZWRDYWxsYmFjayAKLUZBSUwgUmVtb3ZpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVs
ZW1lbnQgZnJvbSBhIGEgd2luZG93LWxlc3MgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZv
a2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZm
ZXIsIGV4cGVjdGVkIDIgZ290IDAKLVBBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9t
IGEgY29ubmVjdGVkIHNoYWRvdyB0cmVlIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5l
Y3RlZENhbGxiYWNrIAotUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBzaGFkb3cg
dHJlZSB3aXRoIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRvY3VtZW50IG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAotUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBl
bGVtZW50IGZyb20gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBp
bnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9m
IGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBk
aXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9t
IGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNj
b25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3Vz
dG9tIGVsZW1lbnQgZnJvbSBhZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29u
bmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRl
dGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50IG11c3Qgbm90IGVu
cXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBj
dXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBh
biBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgb2YgYSB0ZW1wbGF0
ZSBlbGVtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAor
UEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cgdHJlZSBpbiBhIGRv
Y3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNj
b25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3Vz
dG9tIGVsZW1lbnQgZnJvbSBhZG9jdW1lbnQgb2YgYSB0ZW1wbGF0ZSBlbGVtZW50IG11c3QgZW5x
dWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1
c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hlZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8g
YSBkb2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50
IGZyb20gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVk
Q2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZy
b20gYSBuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2Fs
bGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVl
IGluIGEgbmV3IGRvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENh
bGxiYWNrIAorUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0b20gZWxlbWVu
dCBmcm9tIGFuZXcgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVk
Q2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVk
IHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIG5ldyBkb2N1bWVudCBtdXN0IG5vdCBlbnF1
ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3Vz
dG9tIGVsZW1lbnQgZnJvbSBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9r
ZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYW4gYW5jZXN0b3Igb2YgY3Vz
dG9tIGVsZW1lbnQgZnJvbSBhIGNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9r
ZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBm
cm9tIGEgc2hhZG93IHRyZWUgaW4gYSBjbG9uZWQgZG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIHRoZSBzaGFkb3cgaG9z
dCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYWNsb25lZCBkb2N1bWVudCBtdXN0IGVucXVldWUg
YW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20g
ZWxlbWVudCBmcm9tIGEgZGV0YWNoZWQgc2hhZG93IHRyZWUgdGhhdCBiZWxvbmdzIHRvIGEgY2xv
bmVkIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxs
YmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgY3Jl
YXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29u
bmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVt
ZW50IGZyb20gYSBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBj
dXN0b20gZWxlbWVudCBmcm9tIGEgc2hhZG93IHRyZWUgaW4gYSBkb2N1bWVudCBjcmVhdGVkIGJ5
IGNyZWF0ZUhUTUxEb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRD
YWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgdGhlIHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1l
bnQgZnJvbSBhZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3Vz
dG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBh
IGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlSFRNTERvY3VtZW50IG11c3Qgbm90IGVucXVldWUg
YW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgYSBjdXN0b20g
ZWxlbWVudCBmcm9tIGEgSFRNTCBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11
c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmlu
ZyBhbiBhbmNlc3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgSFRNTCBkb2N1bWVudCBjcmVh
dGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3Rl
ZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBzaGFkb3cg
dHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCBtdXN0IGVu
cXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjayAKK1BBU1MgUmVtb3ZpbmcgdGhl
IHNoYWRvdyBob3N0IG9mIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhSFRNTCBkb2N1bWVudCBjcmVh
dGVkIGJ5IGNyZWF0ZURvY3VtZW50IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3Rl
ZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkZXRhY2hl
ZCBzaGFkb3cgdHJlZSB0aGF0IGJlbG9uZ3MgdG8gYSBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkg
Y3JlYXRlRG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENh
bGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBp
biBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sg
CitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1
bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2Fs
bGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIHNoYWRvdyB0cmVl
IGluIGEgZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nv
bm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyB0aGUgc2hhZG93IGhvc3Qgb2YgYSBjdXN0
b20gZWxlbWVudCBmcm9tIGFkb2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGFuZCBp
bnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1l
bnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhIGRvY3VtZW50
IGluIGFuIGlmcmFtZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2Fs
bGJhY2sgCitQQVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIEhUTUwgZG9jdW1l
bnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2Fs
bGJhY2sgCitQQVNTIFJlbW92aW5nIGFuIGFuY2VzdG9yIG9mIGN1c3RvbSBlbGVtZW50IGZyb20g
YSBIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhSIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRp
c2Nvbm5lY3RlZENhbGxiYWNrIAorUEFTUyBSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20g
YSBzaGFkb3cgdHJlZSBpbiBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBlbnF1
ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQQVNTIFJlbW92aW5nIHRoZSBz
aGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYUhUTUwgZG9jdW1lbnQgZmV0Y2hl
ZCBieSBYSFIgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2sgCitQ
QVNTIFJlbW92aW5nIGEgY3VzdG9tIGVsZW1lbnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVl
IHRoYXQgYmVsb25ncyB0byBhIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgbXVzdCBub3Qg
ZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrIAorCiAKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kaXNjb25uZWN0
ZWQtY2FsbGJhY2tzLmh0bWwJKHJldmlzaW9uIDIwNDg4MykKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y3VzdG9tLWVsZW1lbnRzL2Rpc2Nvbm5lY3RlZC1jYWxsYmFja3MuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNyw2ICs3LDcgQEAKIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3dlYmNvbXBvbmVudHMvc3BlYy9jdXN0b20vI2Rmbi1jb25uZWN0ZWQtY2FsbGJhY2si
PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9kb2N1bWVudC10eXBlcy5qcyI+PC9zY3Jp
cHQ+CiA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9Jy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5jc3MnPgogPC9oZWFkPgogPGJvZHk+CkBAIC0yMCw5MyArMjEsNzMgQEAgY2xhc3MgTXlD
dXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbgogfQogY3VzdG9tRWxlbWVudHMuZGVmaW5l
KCdteS1jdXN0b20tZWxlbWVudCcsIE15Q3VzdG9tRWxlbWVudCk7CiAKLXRlc3QoZnVuY3Rpb24g
KCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3Rv
bS1lbGVtZW50Jyk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0K
LSAgICBjYWxscyA9IFtdOwotICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaW5zdGFuY2Up
OwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlzY29ubmVjdGVkJywgaW5zdGFu
Y2VdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBkb2N1bWVudCBtdXN0
IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0
aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1j
dXN0b20tZWxlbWVudCcpOwotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKLSAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAgY2FsbHMg
PSBbXTsKLSAgICBwYXJlbnQucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoY2FsbHMsIFtdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20g
YSBkZXRhaGVkIG5vZGUgbXVzdCBub3QgZW5xdWV1ZSBhbmQgaW52b2tlIGNvbm5lY3RlZENhbGxi
YWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7Ci0gICAgdmFyIGRvY3VtZW50V2l0
aG91dFdpbmRvdyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgp
OwotICAgIGRvY3VtZW50V2l0aG91dFdpbmRvdy5ib2R5LmFwcGVuZENoaWxkKGluc3RhbmNlKTsK
LQotICAgIGNhbGxzID0gW107Ci0gICAgZG9jdW1lbnRXaXRob3V0V2luZG93LmJvZHkucmVtb3Zl
Q2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlzY29u
bmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20g
YSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0
ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBwYXJl
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYXJlbnQuYXBwZW5kQ2hp
bGQoaW5zdGFuY2UpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFyZW50KTsKLQot
ICAgIGNhbGxzID0gW107Ci0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwYXJlbnQpOwot
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlzY29ubmVjdGVkJywgaW5zdGFuY2Vd
KTsKLX0sICdSZW1vdmluZyBhbiBhbmNlc3RvciBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYSBk
b2N1bWVudCBtdXN0IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOwot
Ci10ZXN0KGZ1bmN0aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdteS1jdXN0b20tZWxlbWVudCcpOwotICAgIHZhciBwYXJlbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwot
ICAgIHZhciBkb2N1bWVudFdpdGhvdXRXaW5kb3cgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5j
cmVhdGVIVE1MRG9jdW1lbnQoKTsKLSAgICBkb2N1bWVudFdpdGhvdXRXaW5kb3cuYm9keS5hcHBl
bmRDaGlsZChwYXJlbnQpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBkb2N1bWVudFdpdGhvdXRX
aW5kb3cuYm9keS5yZW1vdmVDaGlsZChwYXJlbnQpOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
Y2FsbHMsIFsnZGlzY29ubmVjdGVkJywgaW5zdGFuY2VdKTsKLX0sICdSZW1vdmluZyBhbiBhbmNl
c3RvciBvZiBjdXN0b20gZWxlbWVudCBmcm9tIGEgYSB3aW5kb3ctbGVzcyBkb2N1bWVudCBtdXN0
IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxsYmFjaycpOwotCi10ZXN0KGZ1bmN0
aW9uICgpIHsKLSAgICB2YXIgaW5zdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdteS1j
dXN0b20tZWxlbWVudCcpOwotICAgIHZhciBob3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7Ci0gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChob3N0KTsKLSAgICB2YXIgc2hh
ZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwotICAgIHNoYWRv
d1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotCi0gICAgY2FsbHMgPSBbXTsKLSAgICBzaGFk
b3dSb290LnJlbW92ZUNoaWxkKGluc3RhbmNlKTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNh
bGxzLCBbJ2Rpc2Nvbm5lY3RlZCcsIGluc3RhbmNlXSk7Ci19LCAnUmVtb3ZpbmcgYSBjdXN0b20g
ZWxlbWVudCBmcm9tIGEgY29ubmVjdGVkIHNoYWRvdyB0cmVlIG11c3QgZW5xdWV1ZSBhbmQgaW52
b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7Ci0KLXRlc3QoZnVuY3Rpb24gKCkgewotICAgIHZh
ciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7
Ci0gICAgdmFyIGhvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKLSAgICB2YXIg
c2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOwotICAgIHNo
YWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaG9zdCk7Ci0KLSAgICBjYWxscyA9IFtdOwotICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoaG9zdCk7Ci0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0
ZWQnLCBpbnN0YW5jZV0pOwotfSwgJ1JlbW92aW5nIHRoZSBzaGFkb3cgaG9zdCBvZiBhIHNoYWRv
dyB0cmVlIHdpdGggYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgZG9jdW1lbnQgbXVzdCBlbnF1ZXVl
IGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2snKTsKLQotdGVzdChmdW5jdGlvbiAoKSB7
Ci0gICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVs
ZW1lbnQnKTsKLSAgICB2YXIgaG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwot
ICAgIHZhciBzaGFkb3dSb290ID0gaG9zdC5hdHRhY2hTaGFkb3coe21vZGU6ICdjbG9zZWQnfSk7
Ci0gICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7Ci0KLSAgICBjYWxscyA9IFtd
OwotICAgIHNoYWRvd1Jvb3QucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOwotICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoY2FsbHMsIFtdKTsKLX0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZyb20g
YSBkZXRhY2hlZCBzaGFkb3cgdHJlZSBtdXN0IG5vdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29u
bmVjdGVkQ2FsbGJhY2snKTsKLQorRG9jdW1lbnRUeXBlcy5mb3JFYWNoKGZ1bmN0aW9uIChlbnRy
eSkgeworICAgIHZhciBkb2N1bWVudE5hbWUgPSBlbnRyeS5uYW1lOworICAgIHZhciBnZXREb2N1
bWVudCA9IGVudHJ5LmNyZWF0ZTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAg
ICAgICAgdmFyIGluc3RhbmNlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVs
ZW1lbnQnKTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaW5z
dGFuY2UpOworICAgICAgICAgICAgY2FsbHMgPSBbXTsKKyAgICAgICAgICAgIGRvYy5kb2N1bWVu
dEVsZW1lbnQucmVtb3ZlQ2hpbGQoaW5zdGFuY2UpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0pOworICAgICAgICB9KTsK
KyAgICB9LCAnUmVtb3ZpbmcgYSBjdXN0b20gZWxlbWVudCBmcm9tIGEgJyArIGRvY3VtZW50TmFt
ZSArICcgbXVzdCBlbnF1ZXVlIGFuZCBpbnZva2UgZGlzY29ubmVjdGVkQ2FsbGJhY2snKTsKKwor
ICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVu
dCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnbXktY3VzdG9tLWVsZW1lbnQnKTsKKyAgICAgICAgICAgIHZh
ciBwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAgICAgICAgIHBh
cmVudC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVt
ZW50LmFwcGVuZENoaWxkKHBhcmVudCk7CisgICAgICAgICAgICBjYWxscyA9IFtdOworICAgICAg
ICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZChwYXJlbnQpOworICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhjYWxscywgWydkaXNjb25uZWN0ZWQnLCBpbnN0YW5jZV0p
OworICAgICAgICB9KTsKKyAgICB9LCAnUmVtb3ZpbmcgYW4gYW5jZXN0b3Igb2YgY3VzdG9tIGVs
ZW1lbnQgZnJvbSBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhbmQgaW52b2tl
IGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkg
eworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAg
ICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3Rv
bS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2YXIgaG9zdCA9IGRvYy5jcmVhdGVFbGVtZW50TlMo
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnZGl2Jyk7CisgICAgICAgICAgICB2YXIg
c2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30pOworICAgICAg
ICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChob3N0KTsKKyAgICAgICAgICAg
IHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoaW5zdGFuY2UpOworCisgICAgICAgICAgICBjYWxscyA9
IFtdOworICAgICAgICAgICAgc2hhZG93Um9vdC5yZW1vdmVDaGlsZChpbnN0YW5jZSk7CisgICAg
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbJ2Rpc2Nvbm5lY3RlZCcsIGluc3Rh
bmNlXSk7CisgICAgICAgIH0pOworICAgIH0sICdSZW1vdmluZyBhIGN1c3RvbSBlbGVtZW50IGZy
b20gYSBzaGFkb3cgdHJlZSBpbiBhICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBh
bmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChk
b2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2YXIgaG9zdCA9IGRvYy5jcmVhdGVF
bGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnZGl2Jyk7CisgICAgICAg
ICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHttb2RlOiAnY2xvc2VkJ30p
OworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0YW5jZSk7CisgICAgICAg
ICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGhvc3QpOworCisgICAgICAgICAg
ICBjYWxscyA9IFtdOworICAgICAgICAgICAgZG9jLmRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGls
ZChob3N0KTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoY2FsbHMsIFsnZGlzY29u
bmVjdGVkJywgaW5zdGFuY2VdKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ1JlbW92aW5nIHRoZSBz
aGFkb3cgaG9zdCBvZiBhIGN1c3RvbSBlbGVtZW50IGZyb20gYScgKyBkb2N1bWVudE5hbWUgKyAn
IG11c3QgZW5xdWV1ZSBhbmQgaW52b2tlIGRpc2Nvbm5lY3RlZENhbGxiYWNrJyk7CisKKyAgICBw
cm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50
aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciBpbnN0YW5jZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ215LWN1c3RvbS1lbGVtZW50Jyk7CisgICAgICAgICAgICB2YXIgaG9z
dCA9IGRvYy5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAn
ZGl2Jyk7CisgICAgICAgICAgICB2YXIgc2hhZG93Um9vdCA9IGhvc3QuYXR0YWNoU2hhZG93KHtt
b2RlOiAnY2xvc2VkJ30pOworICAgICAgICAgICAgc2hhZG93Um9vdC5hcHBlbmRDaGlsZChpbnN0
YW5jZSk7CisKKyAgICAgICAgICAgIGNhbGxzID0gW107CisgICAgICAgICAgICBzaGFkb3dSb290
LnJlbW92ZUNoaWxkKGluc3RhbmNlKTsKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
Y2FsbHMsIFtdKTsKKyAgICAgICAgfSk7CisgICAgfSwgJ1JlbW92aW5nIGEgY3VzdG9tIGVsZW1l
bnQgZnJvbSBhIGRldGFjaGVkIHNoYWRvdyB0cmVlIHRoYXQgYmVsb25ncyB0byBhICcgKyBkb2N1
bWVudE5hbWUgKyAnIG11c3Qgbm90IGVucXVldWUgYW5kIGludm9rZSBkaXNjb25uZWN0ZWRDYWxs
YmFjaycpOworfSk7CiAKIDwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9kb2N1bWVudC10
eXBlcy5qcwkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50
cy9yZXNvdXJjZXMvZG9jdW1lbnQtdHlwZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3
NCBAQAorY29uc3QgRG9jdW1lbnRUeXBlcyA9IFsKKyAgICB7CisgICAgICAgIG5hbWU6ICdkb2N1
bWVudCcsCisgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeyByZXR1cm4gUHJvbWlzZS5yZXNv
bHZlKGRvY3VtZW50KTsgfQorICAgIH0sCisgICAgeworICAgICAgICBuYW1lOiAnZG9jdW1lbnQg
b2YgYSB0ZW1wbGF0ZSBlbGVtZW50JywKKyAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHsKKyAgICAg
ICAgICAgICAgICB2YXIgdGVtcGxhdGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAndGVtcGxhdGUnKTsKKyAgICAgICAgICAgICAgICB2
YXIgZG9jID0gdGVtcGxhdGUuY29udGVudC5vd25lckRvY3VtZW50OworICAgICAgICAgICAgICAg
IGlmICghZG9jLmRvY3VtZW50RWxlbWVudCkKKyAgICAgICAgICAgICAgICAgICAgZG9jLmFwcGVu
ZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCdodG1sJykpOworICAgICAgICAgICAgICAgIHJlc29s
dmUoZG9jKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg
ICAgIG5hbWU6ICduZXcgZG9jdW1lbnQnLAorICAgICAgICBjcmVhdGU6IGZ1bmN0aW9uICgpIHsK
KyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSkgeworICAg
ICAgICAgICAgICAgIHZhciBkb2MgPSBuZXcgRG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICBk
b2MuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZUVsZW1lbnQoJ2h0bWwnKSk7CisgICAgICAgICAgICAg
ICAgcmVzb2x2ZShkb2MpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9LAorICAg
IHsKKyAgICAgICAgbmFtZTogJ2Nsb25lZCBkb2N1bWVudCcsCisgICAgICAgIGNyZWF0ZTogZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNv
bHZlKSB7CisgICAgICAgICAgICAgICAgdmFyIGRvYyA9IGRvY3VtZW50LmNsb25lTm9kZShmYWxz
ZSk7CisgICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCdo
dG1sJykpOworICAgICAgICAgICAgICAgIHJlc29sdmUoZG9jKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdkb2N1bWVudCBjcmVhdGVk
IGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCcsCisgICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgewor
ICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkb2N1bWVudC5pbXBsZW1lbnRhdGlv
bi5jcmVhdGVIVE1MRG9jdW1lbnQoKSk7CisgICAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAg
ICAgbmFtZTogJ0hUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCcsCisgICAg
ICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVz
b2x2ZShkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCcsICdodG1sJywgbnVsbCkpOworICAgICAgICB9CisgICAgfSwKKyAg
ICB7CisgICAgICAgIG5hbWU6ICdkb2N1bWVudCBpbiBhbiBpZnJhbWUnLAorICAgICAgICBjcmVh
dGU6IGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlv
biAocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgICAgICAgICAgICAgIGlmcmFtZS5vbmxv
YWQgPSBmdW5jdGlvbiAoKSB7IHJlc29sdmUoaWZyYW1lLmNvbnRlbnREb2N1bWVudCk7IH0KKyAg
ICAgICAgICAgICAgICBpZnJhbWUub25lcnJvciA9IGZ1bmN0aW9uICgpIHsgcmVqZWN0KCdGYWls
ZWQgdG8gbG9hZCBhbiBlbXB0eSBpZnJhbWUnKTsgfQorICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9Cisg
ICAgfSwKKyAgICB7CisgICAgICAgIG5hbWU6ICdIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhS
JywKKyAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICByZXR1cm4gbmV3
IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIHZh
ciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgICAgICAgICB4aHIub3Blbign
R0VUJywgJ3Jlc291cmNlcy9lbXB0eS1odG1sLWRvY3VtZW50Lmh0bWwnKTsKKyAgICAgICAgICAg
ICAgICB4aHIub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC94bWwnKTsKKyAgICAgICAgICAgICAgICB4
aHIub25sb2FkID0gZnVuY3Rpb24gKCkgeyByZXNvbHZlKHhoci5yZXNwb25zZVhNTCk7IH0KKyAg
ICAgICAgICAgICAgICB4aHIub25lcnJvciA9IGZ1bmN0aW9uICgpIHsgcmVqZWN0KCdGYWlsZWQg
dG8gZmV0Y2ggdGhlIGRvY3VtZW50Jyk7IH0KKyAgICAgICAgICAgICAgICB4aHIuc2VuZCgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CitdOwpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNl
cy9lbXB0eS1odG1sLWRvY3VtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2VtcHR5LWh0bWwtZG9jdW1lbnQuaHRtbAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMv
ZW1wdHktaHRtbC1kb2N1bWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>