<?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>42366</bug_id>
          
          <creation_ts>2010-07-15 06:41:36 -0700</creation_ts>
          <short_desc>[Qt] Improve test coverage for the QScriptValue</short_desc>
          <delta_ts>2010-07-27 15:16:31 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jędrzej Nowacki">jedrzej.nowacki</reporter>
          <assigned_to name="Jędrzej Nowacki">jedrzej.nowacki</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>kenneth</cc>
    
    <cc>kent.hansen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>251841</commentid>
    <comment_count>0</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-15 06:41:36 -0700</bug_when>
    <thetext>QtScript have a great test coverage, but it could be even better.

Now the QScriptValue autotest use a set of values to check API, the set is initialized before each test case. Because of a lazy nature of a QScriptValue object, it is not perfect. The value after first contact with an engine get bound to it, so all other tests check modified version of the value. This was the main cause why bug 42363 was found in a benchmarks and not in an autotests.

I propose to recreate all values before each test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256602</commentid>
    <comment_count>1</comment_count>
      <attachid>62691</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-07-27 08:07:04 -0700</bug_when>
    <thetext>Created attachment 62691
Fix v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256826</commentid>
    <comment_count>2</comment_count>
      <attachid>62691</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-07-27 14:16:33 -0700</bug_when>
    <thetext>Comment on attachment 62691
Fix v1

Good work!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256880</commentid>
    <comment_count>3</comment_count>
      <attachid>62691</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-27 15:16:27 -0700</bug_when>
    <thetext>Comment on attachment 62691
Fix v1

Clearing flags on attachment: 62691

Committed r64165: &lt;http://trac.webkit.org/changeset/64165&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256881</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-27 15:16:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62691</attachid>
            <date>2010-07-27 08:07:04 -0700</date>
            <delta_ts>2010-07-27 15:16:27 -0700</delta_ts>
            <desc>Fix v1</desc>
            <filename>qsv.diff</filename>
            <type>text/plain</type>
            <size>111342</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3Jl
L3F0L0NoYW5nZUxvZwppbmRleCAyMzAzYTUzLi4wZTZlN2UyIDEwMDY0NAotLS0gYS9KYXZhU2Ny
aXB0Q29yZS9xdC9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNzUgQEAKKzIwMTAtMDctMjcgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93
YWNraUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXBkYXRlIHRoZSBRU2NyaXB0VmFsdWUgYXV0b3Rlc3RzIHN1aXRlLgorCisgICAg
ICAgIFFTY3JpcHRWYWx1ZSBnZW5lcmF0ZWQgZmlsZXMgd2VyZSB1cGRhdGVkLCBjaGFuZ2VzIGFy
ZToKKyAgICAgICAgIC0gTW9yZSB0ZXN0ZWQgdmFsdWVzIChmb3IgZXhhbXBsZSBRU0U6Om5ld09i
amVjdCgpIGFuZCBRU0U6Om5ld0FycmF5KCkpCisgICAgICAgICAtIFRlc3RlZCB2YWx1ZXMgYXJl
IHJlY3JlYXRlZCBiZWZvcmUgZWFjaCB0ZXN0IGFuZCBhcmUgbm90IHJldXNlZC4KKyAgICAgICAg
IFRoZSBjaGFuZ2UgaW1wbGllcyBiZXR0ZXIgY29kZSBjb3ZlcmFnZSBhbmQgc29tZSBleHBlY3Rl
ZCByZXN1bHQgY2hhbmdlcy4KKyAgICAgICAgIC0gQSBuZXcgdGVzdCB0byBjaGVjayBjb3B5IGFu
ZCBhc3NpZ24gZnVuY3Rpb25zLgorICAgICAgICAgLSBUZXN0cyBhcmUgdXNpbmcgc3RhbmRhcmQg
UVRlc3RMaWIgaW50ZXJmYWNlLCB3aXRob3V0IGFueSBjdXN0b20gbWFjcm9zLgorCisgICAgICAg
IFtRdF0gSW1wcm92ZSB0ZXN0IGNvdmVyYWdlIGZvciB0aGUgUVNjcmlwdFZhbHVlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjM2NgorCisgICAgICAg
ICogdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwOgorICAgICAgICAodHN0
X1FTY3JpcHRWYWx1ZTo6dHN0X1FTY3JpcHRWYWx1ZSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZh
bHVlOjp+dHN0X1FTY3JpcHRWYWx1ZSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjphc3Np
Z25BbmRDb3B5Q29uc3RydWN0X2RhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6YXNz
aWduQW5kQ29weUNvbnN0cnVjdCk6CisgICAgICAgICogdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9x
c2NyaXB0dmFsdWUuaDoKKyAgICAgICAgKiB0ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2
YWx1ZV9nZW5lcmF0ZWRfY29tcGFyaXNvbi5jcHA6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVl
OjplcXVhbHNfZGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjplcXVhbHMpOgorICAg
ICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6c3RyaWN0bHlFcXVhbHNfZGF0YSk6CisgICAgICAgICh0
c3RfUVNjcmlwdFZhbHVlOjpzdHJpY3RseUVxdWFscyk6CisgICAgICAgICh0c3RfUVNjcmlwdFZh
bHVlOjppbnN0YW5jZU9mX2RhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aW5zdGFu
Y2VPZik6CisgICAgICAgICogdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2Vu
ZXJhdGVkX2luaXQuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aW5pdFNjcmlwdFZh
bHVlcyk6CisgICAgICAgICogdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2Vu
ZXJhdGVkX2lzdHlwZS5jcHA6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjppc1ZhbGlkX2Rh
dGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aXNWYWxpZCk6CisgICAgICAgICh0c3Rf
UVNjcmlwdFZhbHVlOjppc0Jvb2xfZGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjpp
c0Jvb2wpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aXNCb29sZWFuX2RhdGEpOgorICAg
ICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aXNCb29sZWFuKToKKyAgICAgICAgKHRzdF9RU2NyaXB0
VmFsdWU6OmlzTnVtYmVyX2RhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aXNOdW1i
ZXIpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aXNGdW5jdGlvbl9kYXRhKToKKyAgICAg
ICAgKHRzdF9RU2NyaXB0VmFsdWU6OmlzRnVuY3Rpb24pOgorICAgICAgICAodHN0X1FTY3JpcHRW
YWx1ZTo6aXNOdWxsX2RhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aXNOdWxsKToK
KyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6OmlzU3RyaW5nX2RhdGEpOgorICAgICAgICAodHN0
X1FTY3JpcHRWYWx1ZTo6aXNTdHJpbmcpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6aXNV
bmRlZmluZWRfZGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjppc1VuZGVmaW5lZCk6
CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjppc09iamVjdF9kYXRhKToKKyAgICAgICAgKHRz
dF9RU2NyaXB0VmFsdWU6OmlzT2JqZWN0KToKKyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6Omlz
QXJyYXlfZGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjppc0FycmF5KToKKyAgICAg
ICAgKHRzdF9RU2NyaXB0VmFsdWU6OmlzRXJyb3JfZGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlw
dFZhbHVlOjppc0Vycm9yKToKKyAgICAgICAgKiB0ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3Jp
cHR2YWx1ZV9nZW5lcmF0ZWRfdG90eXBlLmNwcDoKKyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6
OnRvU3RyaW5nX2RhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmcpOgor
ICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9OdW1iZXJfZGF0YSk6CisgICAgICAgICh0c3Rf
UVNjcmlwdFZhbHVlOjp0b051bWJlcik6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjp0b0Jv
b2xfZGF0YSk6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjp0b0Jvb2wpOgorICAgICAgICAo
dHN0X1FTY3JpcHRWYWx1ZTo6dG9Cb29sZWFuX2RhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRW
YWx1ZTo6dG9Cb29sZWFuKToKKyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6OnRvSW50ZWdlcl9k
YXRhKToKKyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6OnRvSW50ZWdlcik6CisgICAgICAgICh0
c3RfUVNjcmlwdFZhbHVlOjp0b0ludDMyX2RhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1
ZTo6dG9JbnQzMik6CisgICAgICAgICh0c3RfUVNjcmlwdFZhbHVlOjp0b1VJbnQzMl9kYXRhKToK
KyAgICAgICAgKHRzdF9RU2NyaXB0VmFsdWU6OnRvVUludDMyKToKKyAgICAgICAgKHRzdF9RU2Ny
aXB0VmFsdWU6OnRvVUludDE2X2RhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9V
SW50MTYpOgorCiAyMDEwLTA3LTIzICBKZWRyemVqIE5vd2Fja2kgIDxqZWRyemVqLm5vd2Fja2lA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3Rz
dF9xc2NyaXB0dmFsdWUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVl
L3RzdF9xc2NyaXB0dmFsdWUuY3BwCmluZGV4IGE4MjM0N2UuLmUwNGQzZTkgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNw
cAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2
YWx1ZS5jcHAKQEAgLTIxLDQwICsyMSwxNSBAQAogI2luY2x1ZGUgPFF0Q29yZS9xbnVtZXJpYy5o
PgogCiB0c3RfUVNjcmlwdFZhbHVlOjp0c3RfUVNjcmlwdFZhbHVlKCkKLSAgICA6IGVuZ2luZSgw
KQorICAgIDogbV9lbmdpbmUoMCkKIHsKIH0KIAogdHN0X1FTY3JpcHRWYWx1ZTo6fnRzdF9RU2Ny
aXB0VmFsdWUoKQogewotICAgIGRlbGV0ZSBlbmdpbmU7CisgICAgZGVsZXRlIG1fZW5naW5lOwog
fQogCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmRhdGFIZWxwZXIoSW5pdERhdGFGdW5jdGlvbiBp
bml0LCBEZWZpbmVEYXRhRnVuY3Rpb24gZGVmaW5lKQotewotICAgIFFUZXN0OjphZGRDb2x1bW48
UVN0cmluZz4oIl9fZXhwcmVzc2lvbl9fIik7Ci0gICAgKHRoaXMtPippbml0KSgpOwotICAgIFFI
YXNoPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT46OmNvbnN0X2l0ZXJhdG9yIGl0OwotICAgIGZvciAo
aXQgPSBtX3ZhbHVlcy5jb25zdEJlZ2luKCk7IGl0ICE9IG1fdmFsdWVzLmNvbnN0RW5kKCk7ICsr
aXQpIHsKLSAgICAgICAgbV9jdXJyZW50RXhwcmVzc2lvbiA9IGl0LmtleSgpOwotICAgICAgICAo
dGhpcy0+KmRlZmluZSkoaXQua2V5KCkudG9MYXRpbjEoKSk7Ci0gICAgfQotICAgIG1fY3VycmVu
dEV4cHJlc3Npb24gPSBRU3RyaW5nKCk7Ci19Ci0KLVFUZXN0RGF0YSYgdHN0X1FTY3JpcHRWYWx1
ZTo6bmV3Um93KGNvbnN0IGNoYXIqIHRhZykKLXsKLSAgICByZXR1cm4gUVRlc3Q6Om5ld1Jvdyh0
YWcpIDw8IG1fY3VycmVudEV4cHJlc3Npb247Ci19Ci0KLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6
dGVzdEhlbHBlcihUZXN0RnVuY3Rpb24gZnVuKQotewotICAgIFFGRVRDSChRU3RyaW5nLCBfX2V4
cHJlc3Npb25fXyk7Ci0gICAgUVNjcmlwdFZhbHVlIHZhbHVlID0gbV92YWx1ZXMudmFsdWUoX19l
eHByZXNzaW9uX18pOwotICAgICh0aGlzLT4qZnVuKShfX2V4cHJlc3Npb25fXy50b0xhdGluMSgp
LCB2YWx1ZSk7Ci19Ci0KLQogdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpjdG9yKCkKIHsKICAgICBR
U2NyaXB0RW5naW5lIGVuZzsKQEAgLTEyODUsNCArMTI2MCwzNyBAQCB2b2lkIHRzdF9RU2NyaXB0
VmFsdWU6Omdsb2JhbE9iamVjdENoYW5nZXMoKQogICAgIFFWRVJJRlkoIW9iamVjdC5wcm9wZXJ0
eSgiZm9vIiwgUVNjcmlwdFZhbHVlOjpSZXNvbHZlTG9jYWwpLmlzVmFsaWQoKSk7CiB9CiAKK3Zv
aWQgdHN0X1FTY3JpcHRWYWx1ZTo6YXNzaWduQW5kQ29weUNvbnN0cnVjdF9kYXRhKCkKK3sKKyAg
ICBRVGVzdDo6YWRkQ29sdW1uPFFTY3JpcHRWYWx1ZT4oInZhbHVlIik7CisgICAgaWYgKG1fZW5n
aW5lKQorICAgICAgICBkZWxldGUgbV9lbmdpbmU7CisgICAgbV9lbmdpbmUgPSBuZXcgUVNjcmlw
dEVuZ2luZTsKKyAgICAvLyBDb3B5ICYgYXNzaWduIGNvZGUgaXMgdGhlIHNhbWUgZm9yIGFsbCB0
eXBlcywgc28gaXQgaXMgZW5vdWdoIHRvIGNoZWNrIG9ubHkgYSBmZXcgdmFsdWUuCisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAgUVBhaXI8UVN0cmluZywg
UVNjcmlwdFZhbHVlPiB0ZXN0Y2FzZSA9IGluaXRTY3JpcHRWYWx1ZXMoaSk7CisgICAgICAgIFFU
ZXN0OjpuZXdSb3codGVzdGNhc2UuZmlyc3QudG9Bc2NpaSgpLmNvbnN0RGF0YSgpKSA8PCB0ZXN0
Y2FzZS5zZWNvbmQ7CisgICAgfQorfQorCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmFzc2lnbkFu
ZENvcHlDb25zdHJ1Y3QoKQoreworICAgIFFGRVRDSChRU2NyaXB0VmFsdWUsIHZhbHVlKTsKKyAg
ICBRU2NyaXB0VmFsdWUgY29weSh2YWx1ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJRU2NyaXB0VmFs
dWUoUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpIiwgIkZJWE1FOiBXZWJLaXQgYnVnIDQzMDM4Iiwg
QWJvcnQpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5k
ZWZpbmVkVmFsdWUpIiwgIkZJWE1FOiBXZWJLaXQgYnVnIDQzMDM4IiwgQWJvcnQpOworICAgIFFD
T01QQVJFKGNvcHkuc3RyaWN0bHlFcXVhbHModmFsdWUpLCAhdmFsdWUuaXNOdW1iZXIoKSB8fCAh
cUlzTmFOKHZhbHVlLnRvTnVtYmVyKCkpKTsKKyAgICBRQ09NUEFSRShjb3B5LmVuZ2luZSgpLCB2
YWx1ZS5lbmdpbmUoKSk7CisKKyAgICBRU2NyaXB0VmFsdWUgYXNzaWduZWQgPSBjb3B5OworICAg
IFFDT01QQVJFKGFzc2lnbmVkLnN0cmljdGx5RXF1YWxzKHZhbHVlKSwgIWNvcHkuaXNOdW1iZXIo
KSB8fCAhcUlzTmFOKGNvcHkudG9OdW1iZXIoKSkpOworICAgIFFDT01QQVJFKGFzc2lnbmVkLmVu
Z2luZSgpLCBhc3NpZ25lZC5lbmdpbmUoKSk7CisKKyAgICBRU2NyaXB0VmFsdWUgb3RoZXIoIXZh
bHVlLnRvQm9vbCgpKTsKKyAgICBhc3NpZ25lZCA9IG90aGVyOworICAgIFFWRVJJRlkoIWFzc2ln
bmVkLnN0cmljdGx5RXF1YWxzKGNvcHkpKTsKKyAgICBRVkVSSUZZKGFzc2lnbmVkLnN0cmljdGx5
RXF1YWxzKG90aGVyKSk7CisgICAgUUNPTVBBUkUoYXNzaWduZWQuZW5naW5lKCksIG90aGVyLmVu
Z2luZSgpKTsKK30KKwogUVRFU1RfTUFJTih0c3RfUVNjcmlwdFZhbHVlKQpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaCBi
L0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgK
aW5kZXggNDFiOTljZC4uN2I3ZDliYyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvdGVz
dHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9x
dC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oCkBAIC0yOSw2ICsyOSw4IEBA
CiAKIFFfREVDTEFSRV9NRVRBVFlQRShRU2NyaXB0VmFsdWUqKTsKIFFfREVDTEFSRV9NRVRBVFlQ
RShRU2NyaXB0VmFsdWUpOwordHlwZWRlZiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+IFFQ
YWlyUVN0cmluZ0FuZFFTY3JpcHRWYWx1ZTsKK1FfREVDTEFSRV9NRVRBVFlQRShRUGFpclFTdHJp
bmdBbmRRU2NyaXB0VmFsdWUpOwogCiBjbGFzcyB0c3RfUVNjcmlwdFZhbHVlIDogcHVibGljIFFP
YmplY3QgewogICAgIFFfT0JKRUNUCkBAIC02MSwxNCArNjMsMjIgQEAgcHJpdmF0ZSBzbG90czoK
ICAgICB2b2lkIHByb3BlcnR5RmxhZ19kYXRhKCk7CiAgICAgdm9pZCBwcm9wZXJ0eUZsYWcoKTsK
ICAgICB2b2lkIGdsb2JhbE9iamVjdENoYW5nZXMoKTsKKyAgICB2b2lkIGFzc2lnbkFuZENvcHlD
b25zdHJ1Y3RfZGF0YSgpOworICAgIHZvaWQgYXNzaWduQW5kQ29weUNvbnN0cnVjdCgpOwogCiAg
ICAgLy8gR2VuZXJhdGVkIHRlc3QgZnVuY3Rpb25zLgorICAgIHZvaWQgaXNBcnJheV9kYXRhKCk7
CisgICAgdm9pZCBpc0FycmF5KCk7CisKICAgICB2b2lkIGlzQm9vbF9kYXRhKCk7CiAgICAgdm9p
ZCBpc0Jvb2woKTsKIAogICAgIHZvaWQgaXNCb29sZWFuX2RhdGEoKTsKICAgICB2b2lkIGlzQm9v
bGVhbigpOwogCisgICAgdm9pZCBpc0Vycm9yX2RhdGEoKTsKKyAgICB2b2lkIGlzRXJyb3IoKTsK
KwogICAgIHZvaWQgaXNOdW1iZXJfZGF0YSgpOwogICAgIHZvaWQgaXNOdW1iZXIoKTsKIApAQCAt
MTI0LDEwOCArMTM0LDEwIEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBpbnN0YW5jZU9mKCk7
CiAKIHByaXZhdGU6Ci0gICAgdHlwZWRlZiB2b2lkICh0c3RfUVNjcmlwdFZhbHVlOjoqSW5pdERh
dGFGdW5jdGlvbikoKTsKLSAgICB0eXBlZGVmIHZvaWQgKHRzdF9RU2NyaXB0VmFsdWU6OipEZWZp
bmVEYXRhRnVuY3Rpb24pKGNvbnN0IGNoYXIqKTsKLSAgICB2b2lkIGRhdGFIZWxwZXIoSW5pdERh
dGFGdW5jdGlvbiBpbml0LCBEZWZpbmVEYXRhRnVuY3Rpb24gZGVmaW5lKTsKLSAgICBRVGVzdERh
dGEmIG5ld1Jvdyhjb25zdCBjaGFyKiB0YWcpOwotCi0gICAgdHlwZWRlZiB2b2lkICh0c3RfUVNj
cmlwdFZhbHVlOjoqVGVzdEZ1bmN0aW9uKShjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZhbHVl
Jik7Ci0gICAgdm9pZCB0ZXN0SGVscGVyKFRlc3RGdW5jdGlvbiBmdW4pOwotCi0gICAgLy8gR2Vu
ZXJhdGVkIGZ1bmN0aW9ucwotCi0gICAgdm9pZCBpbml0U2NyaXB0VmFsdWVzKCk7Ci0KLSAgICB2
b2lkIGlzQm9vbF9pbml0RGF0YSgpOwotICAgIHZvaWQgaXNCb29sX21ha2VEYXRhKGNvbnN0IGNo
YXIqIGV4cHIpOwotICAgIHZvaWQgaXNCb29sX3Rlc3QoY29uc3QgY2hhciogZXhwciwgY29uc3Qg
UVNjcmlwdFZhbHVlJiB2YWx1ZSk7Ci0KLSAgICB2b2lkIGlzQm9vbGVhbl9pbml0RGF0YSgpOwot
ICAgIHZvaWQgaXNCb29sZWFuX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpOwotICAgIHZvaWQg
aXNCb29sZWFuX3Rlc3QoY29uc3QgY2hhciogZXhwciwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1
ZSk7Ci0KLSAgICB2b2lkIGlzTnVtYmVyX2luaXREYXRhKCk7Ci0gICAgdm9pZCBpc051bWJlcl9t
YWtlRGF0YShjb25zdCBjaGFyKiBleHByKTsKLSAgICB2b2lkIGlzTnVtYmVyX3Rlc3QoY29uc3Qg
Y2hhciogZXhwciwgY29uc3QgUVNjcmlwdFZhbHVlJik7Ci0KLSAgICB2b2lkIGlzRnVuY3Rpb25f
aW5pdERhdGEoKTsKLSAgICB2b2lkIGlzRnVuY3Rpb25fbWFrZURhdGEoY29uc3QgY2hhciogZXhw
cik7Ci0gICAgdm9pZCBpc0Z1bmN0aW9uX3Rlc3QoY29uc3QgY2hhciogZXhwciwgY29uc3QgUVNj
cmlwdFZhbHVlJiB2YWx1ZSk7Ci0KLSAgICB2b2lkIGlzTnVsbF9pbml0RGF0YSgpOwotICAgIHZv
aWQgaXNOdWxsX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpOwotICAgIHZvaWQgaXNOdWxsX3Rl
c3QoY29uc3QgY2hhciogZXhwciwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSk7Ci0KLSAgICB2
b2lkIGlzT2JqZWN0X2luaXREYXRhKCk7Ci0gICAgdm9pZCBpc09iamVjdF9tYWtlRGF0YShjb25z
dCBjaGFyKiBleHByKTsKLSAgICB2b2lkIGlzT2JqZWN0X3Rlc3QoY29uc3QgY2hhciogZXhwciwg
Y29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSk7Ci0KLSAgICB2b2lkIGlzU3RyaW5nX2luaXREYXRh
KCk7Ci0gICAgdm9pZCBpc1N0cmluZ19tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKTsKLSAgICB2
b2lkIGlzU3RyaW5nX3Rlc3QoY29uc3QgY2hhciogZXhwciwgY29uc3QgUVNjcmlwdFZhbHVlJiB2
YWx1ZSk7Ci0KLSAgICB2b2lkIGlzVW5kZWZpbmVkX2luaXREYXRhKCk7Ci0gICAgdm9pZCBpc1Vu
ZGVmaW5lZF9tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKTsKLSAgICB2b2lkIGlzVW5kZWZpbmVk
X3Rlc3QoY29uc3QgY2hhciogZXhwciwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSk7Ci0KLSAg
ICB2b2lkIGlzVmFsaWRfaW5pdERhdGEoKTsKLSAgICB2b2lkIGlzVmFsaWRfbWFrZURhdGEoY29u
c3QgY2hhciogZXhwcik7Ci0gICAgdm9pZCBpc1ZhbGlkX3Rlc3QoY29uc3QgY2hhciogZXhwciwg
Y29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSk7Ci0KLSAgICB2b2lkIHRvU3RyaW5nX2luaXREYXRh
KCk7Ci0gICAgdm9pZCB0b1N0cmluZ19tYWtlRGF0YShjb25zdCBjaGFyKik7Ci0gICAgdm9pZCB0
b1N0cmluZ190ZXN0KGNvbnN0IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmKTsKKyAgICAvLyBH
ZW5lcmF0ZWQgZnVuY3Rpb24KKyAgICBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+IGluaXRT
Y3JpcHRWYWx1ZXModWludCBpZHgpOwogCi0gICAgdm9pZCB0b051bWJlcl9pbml0RGF0YSgpOwot
ICAgIHZvaWQgdG9OdW1iZXJfbWFrZURhdGEoY29uc3QgY2hhciopOwotICAgIHZvaWQgdG9OdW1i
ZXJfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZhbHVlJik7Ci0KLSAgICB2b2lkIHRv
Qm9vbF9pbml0RGF0YSgpOwotICAgIHZvaWQgdG9Cb29sX21ha2VEYXRhKGNvbnN0IGNoYXIqKTsK
LSAgICB2b2lkIHRvQm9vbF90ZXN0KGNvbnN0IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmKTsK
LQotICAgIHZvaWQgdG9Cb29sZWFuX2luaXREYXRhKCk7Ci0gICAgdm9pZCB0b0Jvb2xlYW5fbWFr
ZURhdGEoY29uc3QgY2hhciopOwotICAgIHZvaWQgdG9Cb29sZWFuX3Rlc3QoY29uc3QgY2hhcios
IGNvbnN0IFFTY3JpcHRWYWx1ZSYpOwotCi0gICAgdm9pZCB0b0ludGVnZXJfaW5pdERhdGEoKTsK
LSAgICB2b2lkIHRvSW50ZWdlcl9tYWtlRGF0YShjb25zdCBjaGFyKik7Ci0gICAgdm9pZCB0b0lu
dGVnZXJfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZhbHVlJik7Ci0KLSAgICB2b2lk
IHRvSW50MzJfaW5pdERhdGEoKTsKLSAgICB2b2lkIHRvSW50MzJfbWFrZURhdGEoY29uc3QgY2hh
ciopOwotICAgIHZvaWQgdG9JbnQzMl90ZXN0KGNvbnN0IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFs
dWUmKTsKLQotICAgIHZvaWQgdG9VSW50MzJfaW5pdERhdGEoKTsKLSAgICB2b2lkIHRvVUludDMy
X21ha2VEYXRhKGNvbnN0IGNoYXIqKTsKLSAgICB2b2lkIHRvVUludDMyX3Rlc3QoY29uc3QgY2hh
ciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYpOwotCi0gICAgdm9pZCB0b1VJbnQxNl9pbml0RGF0YSgp
OwotICAgIHZvaWQgdG9VSW50MTZfbWFrZURhdGEoY29uc3QgY2hhciopOwotICAgIHZvaWQgdG9V
SW50MTZfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZhbHVlJik7Ci0KLSAgICB2b2lk
IGVxdWFsc19pbml0RGF0YSgpOwotICAgIHZvaWQgZXF1YWxzX21ha2VEYXRhKGNvbnN0IGNoYXIq
KTsKLSAgICB2b2lkIGVxdWFsc190ZXN0KGNvbnN0IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUm
KTsKLQotICAgIHZvaWQgc3RyaWN0bHlFcXVhbHNfaW5pdERhdGEoKTsKLSAgICB2b2lkIHN0cmlj
dGx5RXF1YWxzX21ha2VEYXRhKGNvbnN0IGNoYXIqKTsKLSAgICB2b2lkIHN0cmljdGx5RXF1YWxz
X3Rlc3QoY29uc3QgY2hhciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYpOwotCi0gICAgdm9pZCBpbnN0
YW5jZU9mX2luaXREYXRhKCk7Ci0gICAgdm9pZCBpbnN0YW5jZU9mX21ha2VEYXRhKGNvbnN0IGNo
YXIqKTsKLSAgICB2b2lkIGluc3RhbmNlT2ZfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlw
dFZhbHVlJik7Ci0KLXByaXZhdGU6Ci0gICAgUVNjcmlwdEVuZ2luZSogZW5naW5lOwotICAgIFFI
YXNoPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4gbV92YWx1ZXM7Ci0gICAgUVN0cmluZyBtX2N1cnJl
bnRFeHByZXNzaW9uOworICAgIFFTY3JpcHRFbmdpbmUqIG1fZW5naW5lOwogfTsKIAotI2RlZmlu
ZSBERUZJTkVfVEVTVF9GVU5DVElPTihuYW1lKSBcCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6Om5h
bWUjI19kYXRhKCkgeyBkYXRhSGVscGVyKCZ0c3RfUVNjcmlwdFZhbHVlOjpuYW1lIyNfaW5pdERh
dGEsICZ0c3RfUVNjcmlwdFZhbHVlOjpuYW1lIyNfbWFrZURhdGEpOyB9IFwKLXZvaWQgdHN0X1FT
Y3JpcHRWYWx1ZTo6bmFtZSgpIHsgdGVzdEhlbHBlcigmdHN0X1FTY3JpcHRWYWx1ZTo6bmFtZSMj
X3Rlc3QpOyB9Ci0KLQotCiAjZW5kaWYgLy8gdHN0X3FzY3JpcHR2YWx1ZV9oCmRpZmYgLS1naXQg
YS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9n
ZW5lcmF0ZWRfY29tcGFyaXNvbi5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0
dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRfY29tcGFyaXNvbi5jcHAKaW5kZXggNzU4
NmIxNS4uMzIwOTUzMCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlw
dHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkX2NvbXBhcmlzb24uY3BwCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dlbmVy
YXRlZF9jb21wYXJpc29uLmNwcApAQCAtMjMsMTQgKzIzLDcgQEAKIAogI2luY2x1ZGUgInRzdF9x
c2NyaXB0dmFsdWUuaCIKIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjplcXVhbHNfaW5pdERhdGEo
KQotewotICAgIFFUZXN0OjphZGRDb2x1bW48UVNjcmlwdFZhbHVlPigib3RoZXIiKTsKLSAgICBR
VGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJleHBlY3RlZCIpOwotICAgIGluaXRTY3JpcHRWYWx1ZXMo
KTsKLX0KLQotc3RhdGljIFFTdHJpbmcgZXF1YWxzX2FycmF5W10gPSB7CitzdGF0aWMgY29uc3Qg
UVN0cmluZyBlcXVhbHNfYXJyYXlbXSA9IHsKICAgICAiUVNjcmlwdFZhbHVlKCkgPD0+IFFTY3Jp
cHRWYWx1ZSgpIiwKICAgICAiUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFs
dWUpIDw9PiBRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSkiLAogICAg
ICJRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSkgPD0+IFFTY3JpcHRW
YWx1ZShRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkiLApAQCAtODQsNiArNzcsNyBAQCBzdGF0aWMg
UVN0cmluZyBlcXVhbHNfYXJyYXlbXSA9IHsKICAgICAiUVNjcmlwdFZhbHVlKGZhbHNlKSA8PT4g
ZW5naW5lLT5ldmFsdWF0ZShcIjAuMFwiKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShmYWxzZSkgPD0+
IGVuZ2luZS0+ZXZhbHVhdGUoXCInJ1wiKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShmYWxzZSkgPD0+
IGVuZ2luZS0+ZXZhbHVhdGUoXCInMCdcIikiLAorICAgICJRU2NyaXB0VmFsdWUoZmFsc2UpIDw9
PiBlbmdpbmUtPm5ld0FycmF5KCkiLAogICAgICJRU2NyaXB0VmFsdWUoaW50KDEyMikpIDw9PiBR
U2NyaXB0VmFsdWUoaW50KDEyMikpIiwKICAgICAiUVNjcmlwdFZhbHVlKGludCgxMjIpKSA8PT4g
UVNjcmlwdFZhbHVlKDAsIGludCgxMjIpKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShpbnQoMTIyKSkg
PD0+IFFTY3JpcHRWYWx1ZShlbmdpbmUsIGludCgxMjIpKSIsCkBAIC0xMTgsNiArMTEyLDcgQEAg
c3RhdGljIFFTdHJpbmcgZXF1YWxzX2FycmF5W10gPSB7CiAgICAgIlFTY3JpcHRWYWx1ZSgwKSA8
PT4gZW5naW5lLT5ldmFsdWF0ZShcIjAuMFwiKSIsCiAgICAgIlFTY3JpcHRWYWx1ZSgwKSA8PT4g
ZW5naW5lLT5ldmFsdWF0ZShcIicnXCIpIiwKICAgICAiUVNjcmlwdFZhbHVlKDApIDw9PiBlbmdp
bmUtPmV2YWx1YXRlKFwiJzAnXCIpIiwKKyAgICAiUVNjcmlwdFZhbHVlKDApIDw9PiBlbmdpbmUt
Pm5ld0FycmF5KCkiLAogICAgICJRU2NyaXB0VmFsdWUoMC4wKSA8PT4gUVNjcmlwdFZhbHVlKGZh
bHNlKSIsCiAgICAgIlFTY3JpcHRWYWx1ZSgwLjApIDw9PiBRU2NyaXB0VmFsdWUoMCkiLAogICAg
ICJRU2NyaXB0VmFsdWUoMC4wKSA8PT4gUVNjcmlwdFZhbHVlKDAuMCkiLApAQCAtMTQ0LDYgKzEz
OSw3IEBAIHN0YXRpYyBRU3RyaW5nIGVxdWFsc19hcnJheVtdID0gewogICAgICJRU2NyaXB0VmFs
dWUoMC4wKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIjAuMFwiKSIsCiAgICAgIlFTY3JpcHRWYWx1
ZSgwLjApIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiJydcIikiLAogICAgICJRU2NyaXB0VmFsdWUo
MC4wKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIicwJ1wiKSIsCisgICAgIlFTY3JpcHRWYWx1ZSgw
LjApIDw9PiBlbmdpbmUtPm5ld0FycmF5KCkiLAogICAgICJRU2NyaXB0VmFsdWUoMTIzLjApIDw9
PiBRU2NyaXB0VmFsdWUoMTIzLjApIiwKICAgICAiUVNjcmlwdFZhbHVlKDEyMy4wKSA8PT4gUVNj
cmlwdFZhbHVlKFFTdHJpbmcoXCIxMjNcIikpIiwKICAgICAiUVNjcmlwdFZhbHVlKDEyMy4wKSA8
PT4gUVNjcmlwdFZhbHVlKDAsIDEyMy4wKSIsCkBAIC0yMzksNiArMjM1LDcgQEAgc3RhdGljIFFT
dHJpbmcgZXF1YWxzX2FycmF5W10gPSB7CiAgICAgIlFTY3JpcHRWYWx1ZShRU3RyaW5nKFwiXCIp
KSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIjBcIikiLAogICAgICJRU2NyaXB0VmFsdWUoUVN0cmlu
ZyhcIlwiKSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCIwLjBcIikiLAogICAgICJRU2NyaXB0VmFs
dWUoUVN0cmluZyhcIlwiKSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCInJ1wiKSIsCisgICAgIlFT
Y3JpcHRWYWx1ZShRU3RyaW5nKFwiXCIpKSA8PT4gZW5naW5lLT5uZXdBcnJheSgpIiwKICAgICAi
UVNjcmlwdFZhbHVlKFFTdHJpbmcoKSkgPD0+IFFTY3JpcHRWYWx1ZShmYWxzZSkiLAogICAgICJR
U2NyaXB0VmFsdWUoUVN0cmluZygpKSA8PT4gUVNjcmlwdFZhbHVlKDApIiwKICAgICAiUVNjcmlw
dFZhbHVlKFFTdHJpbmcoKSkgPD0+IFFTY3JpcHRWYWx1ZSgwLjApIiwKQEAgLTI2MSw2ICsyNTgs
NyBAQCBzdGF0aWMgUVN0cmluZyBlcXVhbHNfYXJyYXlbXSA9IHsKICAgICAiUVNjcmlwdFZhbHVl
KFFTdHJpbmcoKSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCIwXCIpIiwKICAgICAiUVNjcmlwdFZh
bHVlKFFTdHJpbmcoKSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCIwLjBcIikiLAogICAgICJRU2Ny
aXB0VmFsdWUoUVN0cmluZygpKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIicnXCIpIiwKKyAgICAi
UVNjcmlwdFZhbHVlKFFTdHJpbmcoKSkgPD0+IGVuZ2luZS0+bmV3QXJyYXkoKSIsCiAgICAgIlFT
Y3JpcHRWYWx1ZShRU3RyaW5nKFwiMFwiKSkgPD0+IFFTY3JpcHRWYWx1ZShmYWxzZSkiLAogICAg
ICJRU2NyaXB0VmFsdWUoUVN0cmluZyhcIjBcIikpIDw9PiBRU2NyaXB0VmFsdWUoMCkiLAogICAg
ICJRU2NyaXB0VmFsdWUoUVN0cmluZyhcIjBcIikpIDw9PiBRU2NyaXB0VmFsdWUoMC4wKSIsCkBA
IC0zMzksNiArMzM3LDcgQEAgc3RhdGljIFFTdHJpbmcgZXF1YWxzX2FycmF5W10gPSB7CiAgICAg
IlFTY3JpcHRWYWx1ZSgwLCBmYWxzZSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCIwLjBcIikiLAog
ICAgICJRU2NyaXB0VmFsdWUoMCwgZmFsc2UpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiJydcIiki
LAogICAgICJRU2NyaXB0VmFsdWUoMCwgZmFsc2UpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiJzAn
XCIpIiwKKyAgICAiUVNjcmlwdFZhbHVlKDAsIGZhbHNlKSA8PT4gZW5naW5lLT5uZXdBcnJheSgp
IiwKICAgICAiUVNjcmlwdFZhbHVlKDAsIGludCgxMjIpKSA8PT4gUVNjcmlwdFZhbHVlKGludCgx
MjIpKSIsCiAgICAgIlFTY3JpcHRWYWx1ZSgwLCBpbnQoMTIyKSkgPD0+IFFTY3JpcHRWYWx1ZSgw
LCBpbnQoMTIyKSkiLAogICAgICJRU2NyaXB0VmFsdWUoMCwgaW50KDEyMikpIDw9PiBRU2NyaXB0
VmFsdWUoZW5naW5lLCBpbnQoMTIyKSkiLApAQCAtMzczLDYgKzM3Miw3IEBAIHN0YXRpYyBRU3Ry
aW5nIGVxdWFsc19hcnJheVtdID0gewogICAgICJRU2NyaXB0VmFsdWUoMCwgMCkgPD0+IGVuZ2lu
ZS0+ZXZhbHVhdGUoXCIwLjBcIikiLAogICAgICJRU2NyaXB0VmFsdWUoMCwgMCkgPD0+IGVuZ2lu
ZS0+ZXZhbHVhdGUoXCInJ1wiKSIsCiAgICAgIlFTY3JpcHRWYWx1ZSgwLCAwKSA8PT4gZW5naW5l
LT5ldmFsdWF0ZShcIicwJ1wiKSIsCisgICAgIlFTY3JpcHRWYWx1ZSgwLCAwKSA8PT4gZW5naW5l
LT5uZXdBcnJheSgpIiwKICAgICAiUVNjcmlwdFZhbHVlKDAsIDAuMCkgPD0+IFFTY3JpcHRWYWx1
ZShmYWxzZSkiLAogICAgICJRU2NyaXB0VmFsdWUoMCwgMC4wKSA8PT4gUVNjcmlwdFZhbHVlKDAp
IiwKICAgICAiUVNjcmlwdFZhbHVlKDAsIDAuMCkgPD0+IFFTY3JpcHRWYWx1ZSgwLjApIiwKQEAg
LTM5OSw2ICszOTksNyBAQCBzdGF0aWMgUVN0cmluZyBlcXVhbHNfYXJyYXlbXSA9IHsKICAgICAi
UVNjcmlwdFZhbHVlKDAsIDAuMCkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCIwLjBcIikiLAogICAg
ICJRU2NyaXB0VmFsdWUoMCwgMC4wKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIicnXCIpIiwKICAg
ICAiUVNjcmlwdFZhbHVlKDAsIDAuMCkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCInMCdcIikiLAor
ICAgICJRU2NyaXB0VmFsdWUoMCwgMC4wKSA8PT4gZW5naW5lLT5uZXdBcnJheSgpIiwKICAgICAi
UVNjcmlwdFZhbHVlKDAsIDEyMy4wKSA8PT4gUVNjcmlwdFZhbHVlKDEyMy4wKSIsCiAgICAgIlFT
Y3JpcHRWYWx1ZSgwLCAxMjMuMCkgPD0+IFFTY3JpcHRWYWx1ZShRU3RyaW5nKFwiMTIzXCIpKSIs
CiAgICAgIlFTY3JpcHRWYWx1ZSgwLCAxMjMuMCkgPD0+IFFTY3JpcHRWYWx1ZSgwLCAxMjMuMCki
LApAQCAtNDk0LDYgKzQ5NSw3IEBAIHN0YXRpYyBRU3RyaW5nIGVxdWFsc19hcnJheVtdID0gewog
ICAgICJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZyhcIlwiKSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUo
XCIwXCIpIiwKICAgICAiUVNjcmlwdFZhbHVlKDAsIFFTdHJpbmcoXCJcIikpIDw9PiBlbmdpbmUt
PmV2YWx1YXRlKFwiMC4wXCIpIiwKICAgICAiUVNjcmlwdFZhbHVlKDAsIFFTdHJpbmcoXCJcIikp
IDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiJydcIikiLAorICAgICJRU2NyaXB0VmFsdWUoMCwgUVN0
cmluZyhcIlwiKSkgPD0+IGVuZ2luZS0+bmV3QXJyYXkoKSIsCiAgICAgIlFTY3JpcHRWYWx1ZSgw
LCBRU3RyaW5nKCkpIDw9PiBRU2NyaXB0VmFsdWUoZmFsc2UpIiwKICAgICAiUVNjcmlwdFZhbHVl
KDAsIFFTdHJpbmcoKSkgPD0+IFFTY3JpcHRWYWx1ZSgwKSIsCiAgICAgIlFTY3JpcHRWYWx1ZSgw
LCBRU3RyaW5nKCkpIDw9PiBRU2NyaXB0VmFsdWUoMC4wKSIsCkBAIC01MTYsNiArNTE4LDcgQEAg
c3RhdGljIFFTdHJpbmcgZXF1YWxzX2FycmF5W10gPSB7CiAgICAgIlFTY3JpcHRWYWx1ZSgwLCBR
U3RyaW5nKCkpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiMFwiKSIsCiAgICAgIlFTY3JpcHRWYWx1
ZSgwLCBRU3RyaW5nKCkpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiMC4wXCIpIiwKICAgICAiUVNj
cmlwdFZhbHVlKDAsIFFTdHJpbmcoKSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCInJ1wiKSIsCisg
ICAgIlFTY3JpcHRWYWx1ZSgwLCBRU3RyaW5nKCkpIDw9PiBlbmdpbmUtPm5ld0FycmF5KCkiLAog
ICAgICJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZyhcIjBcIikpIDw9PiBRU2NyaXB0VmFsdWUoZmFs
c2UpIiwKICAgICAiUVNjcmlwdFZhbHVlKDAsIFFTdHJpbmcoXCIwXCIpKSA8PT4gUVNjcmlwdFZh
bHVlKDApIiwKICAgICAiUVNjcmlwdFZhbHVlKDAsIFFTdHJpbmcoXCIwXCIpKSA8PT4gUVNjcmlw
dFZhbHVlKDAuMCkiLApAQCAtNTkzLDYgKzU5Niw3IEBAIHN0YXRpYyBRU3RyaW5nIGVxdWFsc19h
cnJheVtdID0gewogICAgICJRU2NyaXB0VmFsdWUoZW5naW5lLCBmYWxzZSkgPD0+IGVuZ2luZS0+
ZXZhbHVhdGUoXCIwLjBcIikiLAogICAgICJRU2NyaXB0VmFsdWUoZW5naW5lLCBmYWxzZSkgPD0+
IGVuZ2luZS0+ZXZhbHVhdGUoXCInJ1wiKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIGZh
bHNlKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIicwJ1wiKSIsCisgICAgIlFTY3JpcHRWYWx1ZShl
bmdpbmUsIGZhbHNlKSA8PT4gZW5naW5lLT5uZXdBcnJheSgpIiwKICAgICAiUVNjcmlwdFZhbHVl
KGVuZ2luZSwgaW50KDEyMikpIDw9PiBRU2NyaXB0VmFsdWUoaW50KDEyMikpIiwKICAgICAiUVNj
cmlwdFZhbHVlKGVuZ2luZSwgaW50KDEyMikpIDw9PiBRU2NyaXB0VmFsdWUoMCwgaW50KDEyMikp
IiwKICAgICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwgaW50KDEyMikpIDw9PiBRU2NyaXB0VmFsdWUo
ZW5naW5lLCBpbnQoMTIyKSkiLApAQCAtNjI3LDYgKzYzMSw3IEBAIHN0YXRpYyBRU3RyaW5nIGVx
dWFsc19hcnJheVtdID0gewogICAgICJRU2NyaXB0VmFsdWUoZW5naW5lLCAwKSA8PT4gZW5naW5l
LT5ldmFsdWF0ZShcIjAuMFwiKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIDApIDw9PiBl
bmdpbmUtPmV2YWx1YXRlKFwiJydcIikiLAogICAgICJRU2NyaXB0VmFsdWUoZW5naW5lLCAwKSA8
PT4gZW5naW5lLT5ldmFsdWF0ZShcIicwJ1wiKSIsCisgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUs
IDApIDw9PiBlbmdpbmUtPm5ld0FycmF5KCkiLAogICAgICJRU2NyaXB0VmFsdWUoZW5naW5lLCAw
LjApIDw9PiBRU2NyaXB0VmFsdWUoZmFsc2UpIiwKICAgICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwg
MC4wKSA8PT4gUVNjcmlwdFZhbHVlKDApIiwKICAgICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMC4w
KSA8PT4gUVNjcmlwdFZhbHVlKDAuMCkiLApAQCAtNjUzLDYgKzY1OCw3IEBAIHN0YXRpYyBRU3Ry
aW5nIGVxdWFsc19hcnJheVtdID0gewogICAgICJRU2NyaXB0VmFsdWUoZW5naW5lLCAwLjApIDw9
PiBlbmdpbmUtPmV2YWx1YXRlKFwiMC4wXCIpIiwKICAgICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwg
MC4wKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIicnXCIpIiwKICAgICAiUVNjcmlwdFZhbHVlKGVu
Z2luZSwgMC4wKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIicwJ1wiKSIsCisgICAgIlFTY3JpcHRW
YWx1ZShlbmdpbmUsIDAuMCkgPD0+IGVuZ2luZS0+bmV3QXJyYXkoKSIsCiAgICAgIlFTY3JpcHRW
YWx1ZShlbmdpbmUsIDEyMy4wKSA8PT4gUVNjcmlwdFZhbHVlKDEyMy4wKSIsCiAgICAgIlFTY3Jp
cHRWYWx1ZShlbmdpbmUsIDEyMy4wKSA8PT4gUVNjcmlwdFZhbHVlKFFTdHJpbmcoXCIxMjNcIikp
IiwKICAgICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMTIzLjApIDw9PiBRU2NyaXB0VmFsdWUoMCwg
MTIzLjApIiwKQEAgLTc0OCw2ICs3NTQsNyBAQCBzdGF0aWMgUVN0cmluZyBlcXVhbHNfYXJyYXlb
XSA9IHsKICAgICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIlwiKSkgPD0+IGVuZ2lu
ZS0+ZXZhbHVhdGUoXCIwXCIpIiwKICAgICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhc
IlwiKSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCIwLjBcIikiLAogICAgICJRU2NyaXB0VmFsdWUo
ZW5naW5lLCBRU3RyaW5nKFwiXCIpKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIicnXCIpIiwKKyAg
ICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIlwiKSkgPD0+IGVuZ2luZS0+bmV3QXJy
YXkoKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoKSkgPD0+IFFTY3JpcHRW
YWx1ZShmYWxzZSkiLAogICAgICJRU2NyaXB0VmFsdWUoZW5naW5lLCBRU3RyaW5nKCkpIDw9PiBR
U2NyaXB0VmFsdWUoMCkiLAogICAgICJRU2NyaXB0VmFsdWUoZW5naW5lLCBRU3RyaW5nKCkpIDw9
PiBRU2NyaXB0VmFsdWUoMC4wKSIsCkBAIC03NzAsNiArNzc3LDcgQEAgc3RhdGljIFFTdHJpbmcg
ZXF1YWxzX2FycmF5W10gPSB7CiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoKSkg
PD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCIwXCIpIiwKICAgICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwg
UVN0cmluZygpKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIjAuMFwiKSIsCiAgICAgIlFTY3JpcHRW
YWx1ZShlbmdpbmUsIFFTdHJpbmcoKSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCInJ1wiKSIsCisg
ICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoKSkgPD0+IGVuZ2luZS0+bmV3QXJyYXko
KSIsCiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoXCIwXCIpKSA8PT4gUVNjcmlw
dFZhbHVlKGZhbHNlKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoXCIwXCIp
KSA8PT4gUVNjcmlwdFZhbHVlKDApIiwKICAgICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmlu
ZyhcIjBcIikpIDw9PiBRU2NyaXB0VmFsdWUoMC4wKSIsCkBAIC04MTAsNyArODE4LDYgQEAgc3Rh
dGljIFFTdHJpbmcgZXF1YWxzX2FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJb
XVwiKSA8PT4gUVNjcmlwdFZhbHVlKGVuZ2luZSwgMC4wKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVh
dGUoXCJbXVwiKSA8PT4gUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIlwiKSkiLAogICAg
ICJlbmdpbmUtPmV2YWx1YXRlKFwiW11cIikgPD0+IFFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJp
bmcoKSkiLAotICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiW11cIikgPD0+IGVuZ2luZS0+ZXZhbHVh
dGUoXCJbXVwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJbXVwiKSA8PT4gZW5naW5lLT5l
dmFsdWF0ZShcImZhbHNlXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIltdXCIpIDw9PiBl
bmdpbmUtPmV2YWx1YXRlKFwiMFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJbXVwiKSA8
PT4gZW5naW5lLT5ldmFsdWF0ZShcIjAuMFwiKSIsCkBAIC04NTQsMTEgKzg2MSw2IEBAIHN0YXRp
YyBRU3RyaW5nIGVxdWFsc19hcnJheVtdID0gewogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiQXJy
YXlcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJBcnJheVwiKSIsCiAgICAgImVuZ2luZS0+ZXZh
bHVhdGUoXCJOdW1iZXJcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJOdW1iZXJcIikiLAogICAg
ICJlbmdpbmUtPmV2YWx1YXRlKFwiRnVuY3Rpb25cIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJG
dW5jdGlvblwiKSIsCi0gICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVy
biAxOyB9KVwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJuIDE7
IH0pXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJuICdj
aWFvJzsgfSlcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAn
Y2lhbyc7IH0pXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhy
b3cgbmV3IEVycm9yKCdmb28nIH0pXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9u
KCkgeyB0aHJvdyBuZXcgRXJyb3IoJ2ZvbycgfSlcIikiLAotICAgICJlbmdpbmUtPmV2YWx1YXRl
KFwiL2Zvby9cIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCIvZm9vL1wiKSIsCi0gICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCJuZXcgT2JqZWN0KClcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcg
T2JqZWN0KClcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IEFycmF5KClcIikgPD0+
IFFTY3JpcHRWYWx1ZShmYWxzZSkiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IEFycmF5
KClcIikgPD0+IFFTY3JpcHRWYWx1ZSgwKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcg
QXJyYXkoKVwiKSA8PT4gUVNjcmlwdFZhbHVlKDAuMCkiLApAQCAtODc0LDE3ICs4NzYsMTEgQEAg
c3RhdGljIFFTdHJpbmcgZXF1YWxzX2FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUo
XCJuZXcgQXJyYXkoKVwiKSA8PT4gUVNjcmlwdFZhbHVlKGVuZ2luZSwgMC4wKSIsCiAgICAgImVu
Z2luZS0+ZXZhbHVhdGUoXCJuZXcgQXJyYXkoKVwiKSA8PT4gUVNjcmlwdFZhbHVlKGVuZ2luZSwg
UVN0cmluZyhcIlwiKSkiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IEFycmF5KClcIikg
PD0+IFFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoKSkiLAotICAgICJlbmdpbmUtPmV2YWx1
YXRlKFwibmV3IEFycmF5KClcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgQXJyYXkoKVwi
KSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgQXJyYXkoKVwiKSA8PT4gZW5naW5lLT5l
dmFsdWF0ZShcImZhbHNlXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBBcnJheSgp
XCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiMFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUo
XCJuZXcgQXJyYXkoKVwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIjAuMFwiKSIsCiAgICAgImVu
Z2luZS0+ZXZhbHVhdGUoXCJuZXcgQXJyYXkoKVwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIicn
XCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBFcnJvcigpXCIpIDw9PiBlbmdpbmUt
PmV2YWx1YXRlKFwibmV3IEVycm9yKClcIikiLAotICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiYSA9
IG5ldyBPYmplY3QoIGEuZm9vID0gMjI7IGEuZm9vXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwi
YSA9IG5ldyBPYmplY3QoIGEuZm9vID0gMjI7IGEuZm9vXCIpIiwKLSAgICAiZW5naW5lLT5ldmFs
dWF0ZShcIlVuZGVmaW5lZFwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIlVuZGVmaW5lZFwiKSIs
Ci0gICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJOdWxsXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwi
TnVsbFwiKSIsCi0gICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJUcnVlXCIpIDw9PiBlbmdpbmUtPmV2
YWx1YXRlKFwiVHJ1ZVwiKSIsCi0gICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJGYWxzZVwiKSA8PT4g
ZW5naW5lLT5ldmFsdWF0ZShcIkZhbHNlXCIpIiwKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShcImEg
PSBuZXcgT2JqZWN0KCk7IGEuZm9vID0gMjI7IGEuZm9vXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRl
KFwiYSA9IG5ldyBPYmplY3QoKTsgYS5mb28gPSAyMjsgYS5mb29cIikiLAogICAgICJlbmdpbmUt
PmV2YWx1YXRlKFwidW5kZWZpbmVkXCIpIDw9PiBRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpV
bmRlZmluZWRWYWx1ZSkiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwidW5kZWZpbmVkXCIpIDw9
PiBRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpIiwKICAgICAiZW5naW5lLT5l
dmFsdWF0ZShcInVuZGVmaW5lZFwiKSA8PT4gUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6
VW5kZWZpbmVkVmFsdWUpIiwKQEAgLTkzNyw2ICs5MzMsNyBAQCBzdGF0aWMgUVN0cmluZyBlcXVh
bHNfYXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcImZhbHNlXCIpIDw9PiBlbmdp
bmUtPmV2YWx1YXRlKFwiMC4wXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcImZhbHNlXCIp
IDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiJydcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwi
ZmFsc2VcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCInMCdcIikiLAorICAgICJlbmdpbmUtPmV2
YWx1YXRlKFwiZmFsc2VcIikgPD0+IGVuZ2luZS0+bmV3QXJyYXkoKSIsCiAgICAgImVuZ2luZS0+
ZXZhbHVhdGUoXCIxMjJcIikgPD0+IFFTY3JpcHRWYWx1ZShpbnQoMTIyKSkiLAogICAgICJlbmdp
bmUtPmV2YWx1YXRlKFwiMTIyXCIpIDw9PiBRU2NyaXB0VmFsdWUoMCwgaW50KDEyMikpIiwKICAg
ICAiZW5naW5lLT5ldmFsdWF0ZShcIjEyMlwiKSA8PT4gUVNjcmlwdFZhbHVlKGVuZ2luZSwgaW50
KDEyMikpIiwKQEAgLTk3MSw2ICs5NjgsNyBAQCBzdGF0aWMgUVN0cmluZyBlcXVhbHNfYXJyYXlb
XSA9IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIjBcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUo
XCIwLjBcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiMFwiKSA8PT4gZW5naW5lLT5ldmFs
dWF0ZShcIicnXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIjBcIikgPD0+IGVuZ2luZS0+
ZXZhbHVhdGUoXCInMCdcIikiLAorICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiMFwiKSA8PT4gZW5n
aW5lLT5uZXdBcnJheSgpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIjAuMFwiKSA8PT4gUVNj
cmlwdFZhbHVlKGZhbHNlKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIwLjBcIikgPD0+IFFT
Y3JpcHRWYWx1ZSgwKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIwLjBcIikgPD0+IFFTY3Jp
cHRWYWx1ZSgwLjApIiwKQEAgLTk5Nyw2ICs5OTUsNyBAQCBzdGF0aWMgUVN0cmluZyBlcXVhbHNf
YXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIjAuMFwiKSA8PT4gZW5naW5lLT5l
dmFsdWF0ZShcIjAuMFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIwLjBcIikgPD0+IGVu
Z2luZS0+ZXZhbHVhdGUoXCInJ1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIwLjBcIikg
PD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCInMCdcIikiLAorICAgICJlbmdpbmUtPmV2YWx1YXRlKFwi
MC4wXCIpIDw9PiBlbmdpbmUtPm5ld0FycmF5KCkiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwi
MTIzLjBcIikgPD0+IFFTY3JpcHRWYWx1ZSgxMjMuMCkiLAogICAgICJlbmdpbmUtPmV2YWx1YXRl
KFwiMTIzLjBcIikgPD0+IFFTY3JpcHRWYWx1ZShRU3RyaW5nKFwiMTIzXCIpKSIsCiAgICAgImVu
Z2luZS0+ZXZhbHVhdGUoXCIxMjMuMFwiKSA8PT4gUVNjcmlwdFZhbHVlKDAsIDEyMy4wKSIsCkBA
IC0xMDY4LDYgKzEwNjcsNyBAQCBzdGF0aWMgUVN0cmluZyBlcXVhbHNfYXJyYXlbXSA9IHsKICAg
ICAiZW5naW5lLT5ldmFsdWF0ZShcIicnXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiMFwiKSIs
CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCInJ1wiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIjAu
MFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCInJ1wiKSA8PT4gZW5naW5lLT5ldmFsdWF0
ZShcIicnXCIpIiwKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicnXCIpIDw9PiBlbmdpbmUtPm5l
d0FycmF5KCkiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiJzAnXCIpIDw9PiBRU2NyaXB0VmFs
dWUoZmFsc2UpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicwJ1wiKSA8PT4gUVNjcmlwdFZh
bHVlKDApIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicwJ1wiKSA8PT4gUVNjcmlwdFZhbHVl
KDAuMCkiLApAQCAtMTExNSw0MSArMTExNSw3MyBAQCBzdGF0aWMgUVN0cmluZyBlcXVhbHNfYXJy
YXlbXSA9IHsKICAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIDw9PiBlbmdpbmUtPmV2YWx1
YXRlKFwidW5kZWZpbmVkXCIpIiwKICAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIDw9PiBl
bmdpbmUtPmV2YWx1YXRlKFwibnVsbFwiKSIsCiAgICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUo
KSA8PT4gZW5naW5lLT5udWxsVmFsdWUoKSIsCi0gICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUo
KSA8PT4gZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIn07CisgICAgImVuZ2luZS0+dW5kZWZpbmVk
VmFsdWUoKSA8PT4gZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIiwKKyAgICAiZW5naW5lLT5uZXdB
cnJheSgpIDw9PiBRU2NyaXB0VmFsdWUoZmFsc2UpIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgp
IDw9PiBRU2NyaXB0VmFsdWUoMCkiLAorICAgICJlbmdpbmUtPm5ld0FycmF5KCkgPD0+IFFTY3Jp
cHRWYWx1ZSgwLjApIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgpIDw9PiBRU2NyaXB0VmFsdWUo
UVN0cmluZyhcIlwiKSkiLAorICAgICJlbmdpbmUtPm5ld0FycmF5KCkgPD0+IFFTY3JpcHRWYWx1
ZShRU3RyaW5nKCkpIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgpIDw9PiBRU2NyaXB0VmFsdWUo
MCwgZmFsc2UpIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgpIDw9PiBRU2NyaXB0VmFsdWUoMCwg
MCkiLAorICAgICJlbmdpbmUtPm5ld0FycmF5KCkgPD0+IFFTY3JpcHRWYWx1ZSgwLCAwLjApIiwK
KyAgICAiZW5naW5lLT5uZXdBcnJheSgpIDw9PiBRU2NyaXB0VmFsdWUoMCwgUVN0cmluZyhcIlwi
KSkiLAorICAgICJlbmdpbmUtPm5ld0FycmF5KCkgPD0+IFFTY3JpcHRWYWx1ZSgwLCBRU3RyaW5n
KCkpIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgpIDw9PiBRU2NyaXB0VmFsdWUoZW5naW5lLCBm
YWxzZSkiLAorICAgICJlbmdpbmUtPm5ld0FycmF5KCkgPD0+IFFTY3JpcHRWYWx1ZShlbmdpbmUs
IDApIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgpIDw9PiBRU2NyaXB0VmFsdWUoZW5naW5lLCAw
LjApIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgpIDw9PiBRU2NyaXB0VmFsdWUoZW5naW5lLCBR
U3RyaW5nKFwiXCIpKSIsCisgICAgImVuZ2luZS0+bmV3QXJyYXkoKSA8PT4gUVNjcmlwdFZhbHVl
KGVuZ2luZSwgUVN0cmluZygpKSIsCisgICAgImVuZ2luZS0+bmV3QXJyYXkoKSA8PT4gZW5naW5l
LT5ldmFsdWF0ZShcImZhbHNlXCIpIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgpIDw9PiBlbmdp
bmUtPmV2YWx1YXRlKFwiMFwiKSIsCisgICAgImVuZ2luZS0+bmV3QXJyYXkoKSA8PT4gZW5naW5l
LT5ldmFsdWF0ZShcIjAuMFwiKSIsCisgICAgImVuZ2luZS0+bmV3QXJyYXkoKSA8PT4gZW5naW5l
LT5ldmFsdWF0ZShcIicnXCIpIn07CiAKLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6ZXF1YWxzX21h
a2VEYXRhKGNvbnN0IGNoYXIgKmV4cHIpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmVxdWFsc19k
YXRhKCkKIHsKLSAgICBzdGF0aWMgUVNldDxRU3RyaW5nPiBlcXVhbHM7Ci0gICAgaWYgKGVxdWFs
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgZXF1YWxzLnJlc2VydmUoMTA4NSk7Ci0gICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDg1OyArK2kpCi0gICAgICAgICAgICBlcXVhbHMuaW5z
ZXJ0KGVxdWFsc19hcnJheVtpXSk7Ci0gICAgfQotICAgIFFIYXNoPFFTdHJpbmcsIFFTY3JpcHRW
YWx1ZT46OmNvbnN0X2l0ZXJhdG9yIGl0OwotICAgIGZvciAoaXQgPSBtX3ZhbHVlcy5jb25zdEJl
Z2luKCk7IGl0ICE9IG1fdmFsdWVzLmNvbnN0RW5kKCk7ICsraXQpIHsKLSAgICAgICAgUVN0cmlu
ZyB0YWcgPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCIlMjAgPD0+ICUyMSIpLmFyZyhleHByKS5hcmco
aXQua2V5KCkpOwotICAgICAgICBuZXdSb3codGFnLnRvTGF0aW4xKCkpIDw8IGl0LnZhbHVlKCkg
PDwgZXF1YWxzLmNvbnRhaW5zKHRhZyk7CisgICAgUVRlc3Q6OmFkZENvbHVtbjxRU2NyaXB0VmFs
dWU+KCJ2YWx1ZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48UVNjcmlwdFZhbHVlPigib3RoZXIi
KTsKKyAgICBRVGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJleHBlY3RlZCIpOworICAgIGlmIChtX2Vu
Z2luZSkKKyAgICAgICAgZGVsZXRlIG1fZW5naW5lOworICAgIG1fZW5naW5lID0gbmV3IFFTY3Jp
cHRFbmdpbmUoKTsKKyAgICBRU2V0PFFTdHJpbmc+IGVxdWFsczsKKyAgICBlcXVhbHMucmVzZXJ2
ZSgxMTExKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTExMTsgKytpKQorICAgICAg
ICBlcXVhbHMuaW5zZXJ0KGVxdWFsc19hcnJheVtpXSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IDEzNTsgKytpKSB7CisgICAgICAgIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4g
dmFsdWUxID0gaW5pdFNjcmlwdFZhbHVlcyhpKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBqID0g
MDsgaiA8IDEzNTsgKytqKSB7CisgICAgICAgICAgICBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFs
dWU+IHZhbHVlMiA9IGluaXRTY3JpcHRWYWx1ZXMoaik7CisgICAgICAgICAgICBRU3RyaW5nIHRh
ZyA9IFFTdHJpbmc6OmZyb21MYXRpbjEoIiUyMCA8PT4gJTIxIikuYXJnKHZhbHVlMS5maXJzdCwg
dmFsdWUyLmZpcnN0KTsKKyAgICAgICAgICAgIFFUZXN0OjpuZXdSb3codGFnLnRvQXNjaWkoKS5j
b25zdERhdGEoKSkgPDwgdmFsdWUxLnNlY29uZCA8PCB2YWx1ZTIuc2Vjb25kIDw8IGVxdWFscy5j
b250YWlucyh0YWcpOyAgICAgICAgfQogICAgIH0KIH0KIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVl
OjplcXVhbHNfdGVzdChjb25zdCBjaGFyICosIGNvbnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCit2
b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmVxdWFscygpCiB7CisgICAgUUZFVENIKFFTY3JpcHRWYWx1
ZSwgdmFsdWUpOwogICAgIFFGRVRDSChRU2NyaXB0VmFsdWUsIG90aGVyKTsKICAgICBRRkVUQ0go
Ym9vbCwgZXhwZWN0ZWQpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZhbHVlKHFJbmYoKSkg
PD0+IFFTY3JpcHRWYWx1ZShcIi1JbmZpbml0eVwiKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAz
OCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZShxSW5mKCkpIDw9
PiBRU2NyaXB0VmFsdWUoMCwgXCItSW5maW5pdHlcIikiLCAiRklYTUU6IFdlYktpdCBidWcgNDMw
MzgiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJRU2NyaXB0VmFsdWUoLXFJbmYoKSkg
PD0+IFFTY3JpcHRWYWx1ZShcIi1JbmZpbml0eVwiKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAz
OCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZSgtcUluZigpKSA8
PT4gUVNjcmlwdFZhbHVlKDAsIFwiLUluZmluaXR5XCIpIiwgIkZJWE1FOiBXZWJLaXQgYnVnIDQz
MDM4IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZhbHVlKFwiLUluZmlu
aXR5XCIpIDw9PiBRU2NyaXB0VmFsdWUocUluZigpKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAz
OCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZShcIi1JbmZpbml0
eVwiKSA8PT4gUVNjcmlwdFZhbHVlKC1xSW5mKCkpIiwgIkZJWE1FOiBXZWJLaXQgYnVnIDQzMDM4
IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZhbHVlKFwiLUluZmluaXR5
XCIpIDw9PiBRU2NyaXB0VmFsdWUoMCwgcUluZigpKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAz
OCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZShcIi1JbmZpbml0
eVwiKSA8PT4gUVNjcmlwdFZhbHVlKDAsIC1xSW5mKCkpIiwgIkZJWE1FOiBXZWJLaXQgYnVnIDQz
MDM4IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZhbHVlKDAsIHFJbmYo
KSkgPD0+IFFTY3JpcHRWYWx1ZShcIi1JbmZpbml0eVwiKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0
MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZSgwLCBxSW5m
KCkpIDw9PiBRU2NyaXB0VmFsdWUoMCwgXCItSW5maW5pdHlcIikiLCAiRklYTUU6IFdlYktpdCBi
dWcgNDMwMzgiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJRU2NyaXB0VmFsdWUoMCwg
LXFJbmYoKSkgPD0+IFFTY3JpcHRWYWx1ZShcIi1JbmZpbml0eVwiKSIsICJGSVhNRTogV2ViS2l0
IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZSgw
LCAtcUluZigpKSA8PT4gUVNjcmlwdFZhbHVlKDAsIFwiLUluZmluaXR5XCIpIiwgIkZJWE1FOiBX
ZWJLaXQgYnVnIDQzMDM4IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZh
bHVlKDAsIFwiLUluZmluaXR5XCIpIDw9PiBRU2NyaXB0VmFsdWUocUluZigpKSIsICJGSVhNRTog
V2ViS2l0IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRW
YWx1ZSgwLCBcIi1JbmZpbml0eVwiKSA8PT4gUVNjcmlwdFZhbHVlKC1xSW5mKCkpIiwgIkZJWE1F
OiBXZWJLaXQgYnVnIDQzMDM4IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlw
dFZhbHVlKDAsIFwiLUluZmluaXR5XCIpIDw9PiBRU2NyaXB0VmFsdWUoMCwgcUluZigpKSIsICJG
SVhNRTogV2ViS2l0IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFT
Y3JpcHRWYWx1ZSgwLCBcIi1JbmZpbml0eVwiKSA8PT4gUVNjcmlwdFZhbHVlKDAsIC1xSW5mKCkp
IiwgIkZJWE1FOiBXZWJLaXQgYnVnIDQzMDM4IiwgQ29udGludWUpOwogICAgIFFDT01QQVJFKHZh
bHVlLmVxdWFscyhvdGhlciksIGV4cGVjdGVkKTsKIH0KIAotREVGSU5FX1RFU1RfRlVOQ1RJT04o
ZXF1YWxzKQotCi0KLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6c3RyaWN0bHlFcXVhbHNfaW5pdERh
dGEoKQotewotICAgIFFUZXN0OjphZGRDb2x1bW48UVNjcmlwdFZhbHVlPigib3RoZXIiKTsKLSAg
ICBRVGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJleHBlY3RlZCIpOwotICAgIGluaXRTY3JpcHRWYWx1
ZXMoKTsKLX0KLQotc3RhdGljIFFTdHJpbmcgc3RyaWN0bHlFcXVhbHNfYXJyYXlbXSA9IHsKK3N0
YXRpYyBjb25zdCBRU3RyaW5nIHN0cmljdGx5RXF1YWxzX2FycmF5W10gPSB7CiAgICAgIlFTY3Jp
cHRWYWx1ZSgpIDw9PiBRU2NyaXB0VmFsdWUoKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShRU2NyaXB0
VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSA8PT4gUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5k
ZWZpbmVkVmFsdWUpIiwKICAgICAiUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVk
VmFsdWUpIDw9PiBRU2NyaXB0VmFsdWUoMCwgUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSki
LApAQCAtMTUxNSw3ICsxNTQ3LDYgQEAgc3RhdGljIFFTdHJpbmcgc3RyaWN0bHlFcXVhbHNfYXJy
YXlbXSA9IHsKICAgICAiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIjEyM1wiKSkgPD0+
IFFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoXCIxMjNcIikpIiwKICAgICAiUVNjcmlwdFZh
bHVlKGVuZ2luZSwgUVN0cmluZyhcIjEyM1wiKSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCInMTIz
J1wiKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoXCIxLjIzXCIpKSA8PT4g
UVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIjEuMjNcIikpIiwKLSAgICAiZW5naW5lLT5l
dmFsdWF0ZShcIltdXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiW11cIikiLAogICAgICJlbmdp
bmUtPmV2YWx1YXRlKFwie31cIikgPD0+IFFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6OlVuZGVm
aW5lZFZhbHVlKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJ7fVwiKSA8PT4gUVNjcmlwdFZh
bHVlKDAsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwKICAgICAiZW5naW5lLT5ldmFs
dWF0ZShcInt9XCIpIDw9PiBRU2NyaXB0VmFsdWUoZW5naW5lLCBRU2NyaXB0VmFsdWU6OlVuZGVm
aW5lZFZhbHVlKSIsCkBAIC0xNTMxLDE4ICsxNTYyLDcgQEAgc3RhdGljIFFTdHJpbmcgc3RyaWN0
bHlFcXVhbHNfYXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIkFycmF5XCIpIDw9
PiBlbmdpbmUtPmV2YWx1YXRlKFwiQXJyYXlcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwi
TnVtYmVyXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiTnVtYmVyXCIpIiwKICAgICAiZW5naW5l
LT5ldmFsdWF0ZShcIkZ1bmN0aW9uXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiRnVuY3Rpb25c
IikiLAotICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSlc
IikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAxOyB9KVwiKSIs
Ci0gICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAnY2lhbyc7IH0p
XCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gJ2NpYW8nOyB9
KVwiKSIsCi0gICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHRocm93IG5ldyBF
cnJvcignZm9vJyB9KVwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhy
b3cgbmV3IEVycm9yKCdmb28nIH0pXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIi9mb28v
XCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIikiLAotICAgICJlbmdpbmUtPmV2YWx1
YXRlKFwibmV3IE9iamVjdCgpXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwibmV3IE9iamVjdCgp
XCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBBcnJheSgpXCIpIDw9PiBlbmdpbmUt
PmV2YWx1YXRlKFwibmV3IEFycmF5KClcIikiLAotICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3
IEVycm9yKClcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgRXJyb3IoKVwiKSIsCi0gICAg
ImVuZ2luZS0+ZXZhbHVhdGUoXCJhID0gbmV3IE9iamVjdCggYS5mb28gPSAyMjsgYS5mb29cIikg
PD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJhID0gbmV3IE9iamVjdCggYS5mb28gPSAyMjsgYS5mb29c
IikiLAotICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiVW5kZWZpbmVkXCIpIDw9PiBlbmdpbmUtPmV2
YWx1YXRlKFwiVW5kZWZpbmVkXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIk51bGxcIikg
PD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJOdWxsXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShc
IlRydWVcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJUcnVlXCIpIiwKLSAgICAiZW5naW5lLT5l
dmFsdWF0ZShcIkZhbHNlXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiRmFsc2VcIikiLAorICAg
ICJlbmdpbmUtPmV2YWx1YXRlKFwiYSA9IG5ldyBPYmplY3QoKTsgYS5mb28gPSAyMjsgYS5mb29c
IikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJhID0gbmV3IE9iamVjdCgpOyBhLmZvbyA9IDIyOyBh
LmZvb1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJ1bmRlZmluZWRcIikgPD0+IFFTY3Jp
cHRWYWx1ZShRU2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSIsCiAgICAgImVuZ2luZS0+ZXZh
bHVhdGUoXCJ1bmRlZmluZWRcIikgPD0+IFFTY3JpcHRWYWx1ZSgwLCBRU2NyaXB0VmFsdWU6OlVu
ZGVmaW5lZFZhbHVlKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJ1bmRlZmluZWRcIikgPD0+
IFFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwKQEAg
LTE2NTQsMzkgKzE2NzQsNjYgQEAgc3RhdGljIFFTdHJpbmcgc3RyaWN0bHlFcXVhbHNfYXJyYXlb
XSA9IHsKICAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIDw9PiBlbmdpbmUtPmV2YWx1YXRl
KFwidW5kZWZpbmVkXCIpIiwKICAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIDw9PiBlbmdp
bmUtPnVuZGVmaW5lZFZhbHVlKCkifTsKIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpzdHJpY3Rs
eUVxdWFsc19tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKQordm9pZCB0c3RfUVNjcmlwdFZhbHVl
OjpzdHJpY3RseUVxdWFsc19kYXRhKCkKIHsKLSAgICBzdGF0aWMgUVNldDxRU3RyaW5nPiBlcXVh
bHM7Ci0gICAgaWYgKGVxdWFscy5pc0VtcHR5KCkpIHsKLSAgICAgICAgZXF1YWxzLnJlc2VydmUo
NTAzKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDUwMzsgKytpKQotICAgICAg
ICAgICAgZXF1YWxzLmluc2VydChzdHJpY3RseUVxdWFsc19hcnJheVtpXSk7Ci0gICAgfQotICAg
IFFIYXNoPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT46OmNvbnN0X2l0ZXJhdG9yIGl0OwotICAgIGZv
ciAoaXQgPSBtX3ZhbHVlcy5jb25zdEJlZ2luKCk7IGl0ICE9IG1fdmFsdWVzLmNvbnN0RW5kKCk7
ICsraXQpIHsKLSAgICAgICAgUVN0cmluZyB0YWcgPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCIlMjAg
PD0+ICUyMSIpLmFyZyhleHByKS5hcmcoaXQua2V5KCkpOwotICAgICAgICBuZXdSb3codGFnLnRv
TGF0aW4xKCkpIDw8IGl0LnZhbHVlKCkgPDwgZXF1YWxzLmNvbnRhaW5zKHRhZyk7CisgICAgUVRl
c3Q6OmFkZENvbHVtbjxRU2NyaXB0VmFsdWU+KCJ2YWx1ZSIpOworICAgIFFUZXN0OjphZGRDb2x1
bW48UVNjcmlwdFZhbHVlPigib3RoZXIiKTsKKyAgICBRVGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJl
eHBlY3RlZCIpOworICAgIGlmIChtX2VuZ2luZSkKKyAgICAgICAgZGVsZXRlIG1fZW5naW5lOwor
ICAgIG1fZW5naW5lID0gbmV3IFFTY3JpcHRFbmdpbmUoKTsKKyAgICBRU2V0PFFTdHJpbmc+IGVx
dWFsczsKKyAgICBlcXVhbHMucmVzZXJ2ZSg0OTEpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCA0OTE7ICsraSkKKyAgICAgICAgZXF1YWxzLmluc2VydChzdHJpY3RseUVxdWFsc19hcnJh
eVtpXSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEzNTsgKytpKSB7CisgICAgICAg
IFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4gdmFsdWUxID0gaW5pdFNjcmlwdFZhbHVlcyhp
KTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IDEzNTsgKytqKSB7CisgICAgICAg
ICAgICBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+IHZhbHVlMiA9IGluaXRTY3JpcHRWYWx1
ZXMoaik7CisgICAgICAgICAgICBRU3RyaW5nIHRhZyA9IFFTdHJpbmc6OmZyb21MYXRpbjEoIiUy
MCA8PT4gJTIxIikuYXJnKHZhbHVlMS5maXJzdCwgdmFsdWUyLmZpcnN0KTsKKyAgICAgICAgICAg
IFFUZXN0OjpuZXdSb3codGFnLnRvQXNjaWkoKS5jb25zdERhdGEoKSkgPDwgdmFsdWUxLnNlY29u
ZCA8PCB2YWx1ZTIuc2Vjb25kIDw8IGVxdWFscy5jb250YWlucyh0YWcpOyAgICAgICAgfQogICAg
IH0KIH0KIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpzdHJpY3RseUVxdWFsc190ZXN0KGNvbnN0
IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQordm9pZCB0c3RfUVNjcmlwdFZhbHVl
OjpzdHJpY3RseUVxdWFscygpCiB7CisgICAgUUZFVENIKFFTY3JpcHRWYWx1ZSwgdmFsdWUpOwog
ICAgIFFGRVRDSChRU2NyaXB0VmFsdWUsIG90aGVyKTsKICAgICBRRkVUQ0goYm9vbCwgZXhwZWN0
ZWQpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5kZWZp
bmVkVmFsdWUpIDw9PiBRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSki
LCAiRklYTUU6IFdlYktpdCBidWcgNDMwMzgiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlM
KCJRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSkgPD0+IFFTY3JpcHRW
YWx1ZSgwLCBRU2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSIsICJGSVhNRTogV2ViS2l0IGJ1
ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZShRU2Ny
aXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSA8PT4gUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVNjcmlw
dFZhbHVlOjpVbmRlZmluZWRWYWx1ZSkiLCAiRklYTUU6IFdlYktpdCBidWcgNDMwMzgiLCBDb250
aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpVbmRl
ZmluZWRWYWx1ZSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJ7fVwiKSIsICJGSVhNRTogV2ViS2l0
IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZShR
U2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcInVuZGVm
aW5lZFwiKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQ
RUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSA8PT4g
ZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIiwgIkZJWE1FOiBXZWJLaXQgYnVnIDQzMDM4IiwgQ29u
dGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6TnVs
bFZhbHVlKSA8PT4gUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSIsICJGSVhN
RTogV2ViS2l0IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3Jp
cHRWYWx1ZShRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkgPD0+IFFTY3JpcHRWYWx1ZSgwLCBRU2Ny
aXB0VmFsdWU6Ok51bGxWYWx1ZSkiLCAiRklYTUU6IFdlYktpdCBidWcgNDMwMzgiLCBDb250aW51
ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpOdWxsVmFs
dWUpIDw9PiBRU2NyaXB0VmFsdWUoZW5naW5lLCBRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkiLCAi
RklYTUU6IFdlYktpdCBidWcgNDMwMzgiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJR
U2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpIDw9PiBlbmdpbmUtPmV2YWx1YXRl
KFwibnVsbFwiKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBR
RVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkgPD0+IGVu
Z2luZS0+bnVsbFZhbHVlKCkiLCAiRklYTUU6IFdlYktpdCBidWcgNDMwMzgiLCBDb250aW51ZSk7
CisgICAgUUVYUEVDVF9GQUlMKCJRU2NyaXB0VmFsdWUodHJ1ZSkgPD0+IFFTY3JpcHRWYWx1ZSh0
cnVlKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNU
X0ZBSUwoIlFTY3JpcHRWYWx1ZSh0cnVlKSA8PT4gUVNjcmlwdFZhbHVlKDAsIHRydWUpIiwgIkZJ
WE1FOiBXZWJLaXQgYnVnIDQzMDM4IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNj
cmlwdFZhbHVlKGZhbHNlKSA8PT4gUVNjcmlwdFZhbHVlKGZhbHNlKSIsICJGSVhNRTogV2ViS2l0
IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZShm
YWxzZSkgPD0+IFFTY3JpcHRWYWx1ZSgwLCBmYWxzZSkiLCAiRklYTUU6IFdlYktpdCBidWcgNDMw
MzgiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJRU2NyaXB0VmFsdWUoMCwgUVNjcmlw
dFZhbHVlOjpVbmRlZmluZWRWYWx1ZSkgPD0+IFFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6OlVu
ZGVmaW5lZFZhbHVlKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAg
ICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZSgwLCBRU2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZh
bHVlKSA8PT4gUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwg
IkZJWE1FOiBXZWJLaXQgYnVnIDQzMDM4IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgi
UVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIDw9PiBRU2NyaXB0
VmFsdWUoZW5naW5lLCBRU2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSIsICJGSVhNRTogV2Vi
S2l0IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1
ZSgwLCBRU2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShc
Int9XCIpIiwgIkZJWE1FOiBXZWJLaXQgYnVnIDQzMDM4IiwgQ29udGludWUpOworICAgIFFFWFBF
Q1RfRkFJTCgiUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIDw9
PiBlbmdpbmUtPmV2YWx1YXRlKFwidW5kZWZpbmVkXCIpIiwgIkZJWE1FOiBXZWJLaXQgYnVnIDQz
MDM4IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZhbHVlKDAsIFFTY3Jp
cHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIDw9PiBlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkiLCAi
RklYTUU6IFdlYktpdCBidWcgNDMwMzgiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJR
U2NyaXB0VmFsdWUoMCwgUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpIDw9PiBRU2NyaXB0VmFsdWUo
UVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpIiwgIkZJWE1FOiBXZWJLaXQgYnVnIDQzMDM4IiwgQ29u
dGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6
TnVsbFZhbHVlKSA8PT4gUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSIs
ICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwo
IlFTY3JpcHRWYWx1ZSgwLCBRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkgPD0+IFFTY3JpcHRWYWx1
ZShlbmdpbmUsIFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0
MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNUX0ZBSUwoIlFTY3JpcHRWYWx1ZSgwLCBRU2Ny
aXB0VmFsdWU6Ok51bGxWYWx1ZSkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJudWxsXCIpIiwgIkZJ
WE1FOiBXZWJLaXQgYnVnIDQzMDM4IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNj
cmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSA8PT4gZW5naW5lLT5udWxsVmFs
dWUoKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAzOCIsIENvbnRpbnVlKTsKKyAgICBRRVhQRUNU
X0ZBSUwoIlFTY3JpcHRWYWx1ZSgwLCB0cnVlKSA8PT4gUVNjcmlwdFZhbHVlKHRydWUpIiwgIkZJ
WE1FOiBXZWJLaXQgYnVnIDQzMDM4IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNj
cmlwdFZhbHVlKDAsIHRydWUpIDw9PiBRU2NyaXB0VmFsdWUoMCwgdHJ1ZSkiLCAiRklYTUU6IFdl
YktpdCBidWcgNDMwMzgiLCBDb250aW51ZSk7CisgICAgUUVYUEVDVF9GQUlMKCJRU2NyaXB0VmFs
dWUoMCwgZmFsc2UpIDw9PiBRU2NyaXB0VmFsdWUoZmFsc2UpIiwgIkZJWE1FOiBXZWJLaXQgYnVn
IDQzMDM4IiwgQ29udGludWUpOworICAgIFFFWFBFQ1RfRkFJTCgiUVNjcmlwdFZhbHVlKDAsIGZh
bHNlKSA8PT4gUVNjcmlwdFZhbHVlKDAsIGZhbHNlKSIsICJGSVhNRTogV2ViS2l0IGJ1ZyA0MzAz
OCIsIENvbnRpbnVlKTsKICAgICBRQ09NUEFSRSh2YWx1ZS5zdHJpY3RseUVxdWFscyhvdGhlciks
IGV4cGVjdGVkKTsKIH0KIAotREVGSU5FX1RFU1RfRlVOQ1RJT04oc3RyaWN0bHlFcXVhbHMpCi0K
LQotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppbnN0YW5jZU9mX2luaXREYXRhKCkKLXsKLSAgICBR
VGVzdDo6YWRkQ29sdW1uPFFTY3JpcHRWYWx1ZT4oIm90aGVyIik7Ci0gICAgUVRlc3Q6OmFkZENv
bHVtbjxib29sPigiZXhwZWN0ZWQiKTsKLSAgICBpbml0U2NyaXB0VmFsdWVzKCk7Ci19Ci0KLXN0
YXRpYyBRU3RyaW5nIGluc3RhbmNlT2ZfYXJyYXlbXSA9IHsKK3N0YXRpYyBjb25zdCBRU3RyaW5n
IGluc3RhbmNlT2ZfYXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIltdXCIpIDw9
PiBlbmdpbmUtPmV2YWx1YXRlKFwiT2JqZWN0XCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShc
IltdXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiQXJyYXlcIikiLAogICAgICJlbmdpbmUtPmV2
YWx1YXRlKFwiRGF0ZS5wcm90b3R5cGVcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJPYmplY3Rc
IikiLApAQCAtMTcwNSwzOCArMTc1Miw0OCBAQCBzdGF0aWMgUVN0cmluZyBpbnN0YW5jZU9mX2Fy
cmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAx
OyB9KVwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIkZ1bmN0aW9uXCIpIiwKICAgICAiZW5naW5l
LT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJuICdjaWFvJzsgfSlcIikgPD0+IGVuZ2lu
ZS0+ZXZhbHVhdGUoXCJPYmplY3RcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0
aW9uKCkgeyByZXR1cm4gJ2NpYW8nOyB9KVwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIkZ1bmN0
aW9uXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3
IEVycm9yKCdmb28nIH0pXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiT2JqZWN0XCIpIiwKKyAg
ICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdmb28n
KTsgfSlcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJPYmplY3RcIikiLAorICAgICJlbmdpbmUt
PmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ2ZvbycpOyB9KVwiKSA8
PT4gZW5naW5lLT5ldmFsdWF0ZShcIkZ1bmN0aW9uXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0
ZShcIi9mb28vXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiT2JqZWN0XCIpIiwKICAgICAiZW5n
aW5lLT5ldmFsdWF0ZShcIm5ldyBPYmplY3QoKVwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIk9i
amVjdFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgQXJyYXkoKVwiKSA8PT4gZW5n
aW5lLT5ldmFsdWF0ZShcIk9iamVjdFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcg
QXJyYXkoKVwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIkFycmF5XCIpIiwKICAgICAiZW5naW5l
LT5ldmFsdWF0ZShcIm5ldyBFcnJvcigpXCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiT2JqZWN0
XCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcImEgPSBuZXcgT2JqZWN0KCBhLmZvbyA9IDIy
OyBhLmZvb1wiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIk9iamVjdFwiKSIsCiAgICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCJVbmRlZmluZWRcIikgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJPYmplY3Rc
IikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiTnVsbFwiKSA8PT4gZW5naW5lLT5ldmFsdWF0
ZShcIk9iamVjdFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJUcnVlXCIpIDw9PiBlbmdp
bmUtPmV2YWx1YXRlKFwiT2JqZWN0XCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIkZhbHNl
XCIpIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiT2JqZWN0XCIpIn07CisgICAgImVuZ2luZS0+ZXZh
bHVhdGUoXCJGYWxzZVwiKSA8PT4gZW5naW5lLT5ldmFsdWF0ZShcIk9iamVjdFwiKSIsCisgICAg
ImVuZ2luZS0+bmV3T2JqZWN0KCkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJPYmplY3RcIikiLAor
ICAgICJlbmdpbmUtPm5ld0FycmF5KCkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJPYmplY3RcIiki
LAorICAgICJlbmdpbmUtPm5ld0FycmF5KCkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUoXCJBcnJheVwi
KSIsCisgICAgImVuZ2luZS0+bmV3QXJyYXkoMTApIDw9PiBlbmdpbmUtPmV2YWx1YXRlKFwiT2Jq
ZWN0XCIpIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgxMCkgPD0+IGVuZ2luZS0+ZXZhbHVhdGUo
XCJBcnJheVwiKSJ9OwogCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6Omluc3RhbmNlT2ZfbWFrZURh
dGEoY29uc3QgY2hhciAqZXhwcikKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aW5zdGFuY2VPZl9k
YXRhKCkKIHsKLSAgICBzdGF0aWMgUVNldDxRU3RyaW5nPiBlcXVhbHM7Ci0gICAgaWYgKGVxdWFs
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgZXF1YWxzLnJlc2VydmUoMjkpOwotICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgMjk7ICsraSkKLSAgICAgICAgICAgIGVxdWFscy5pbnNlcnQo
aW5zdGFuY2VPZl9hcnJheVtpXSk7Ci0gICAgfQotICAgIFFIYXNoPFFTdHJpbmcsIFFTY3JpcHRW
YWx1ZT46OmNvbnN0X2l0ZXJhdG9yIGl0OwotICAgIGZvciAoaXQgPSBtX3ZhbHVlcy5jb25zdEJl
Z2luKCk7IGl0ICE9IG1fdmFsdWVzLmNvbnN0RW5kKCk7ICsraXQpIHsKLSAgICAgICAgUVN0cmlu
ZyB0YWcgPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCIlMjAgPD0+ICUyMSIpLmFyZyhleHByKS5hcmco
aXQua2V5KCkpOwotICAgICAgICBuZXdSb3codGFnLnRvTGF0aW4xKCkpIDw8IGl0LnZhbHVlKCkg
PDwgZXF1YWxzLmNvbnRhaW5zKHRhZyk7CisgICAgUVRlc3Q6OmFkZENvbHVtbjxRU2NyaXB0VmFs
dWU+KCJ2YWx1ZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48UVNjcmlwdFZhbHVlPigib3RoZXIi
KTsKKyAgICBRVGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJleHBlY3RlZCIpOworICAgIGlmIChtX2Vu
Z2luZSkKKyAgICAgICAgZGVsZXRlIG1fZW5naW5lOworICAgIG1fZW5naW5lID0gbmV3IFFTY3Jp
cHRFbmdpbmUoKTsKKyAgICBRU2V0PFFTdHJpbmc+IGVxdWFsczsKKyAgICBlcXVhbHMucmVzZXJ2
ZSgzNCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDM0OyArK2kpCisgICAgICAgIGVx
dWFscy5pbnNlcnQoaW5zdGFuY2VPZl9hcnJheVtpXSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IDEzNTsgKytpKSB7CisgICAgICAgIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4g
dmFsdWUxID0gaW5pdFNjcmlwdFZhbHVlcyhpKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBqID0g
MDsgaiA8IDEzNTsgKytqKSB7CisgICAgICAgICAgICBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFs
dWU+IHZhbHVlMiA9IGluaXRTY3JpcHRWYWx1ZXMoaik7CisgICAgICAgICAgICBRU3RyaW5nIHRh
ZyA9IFFTdHJpbmc6OmZyb21MYXRpbjEoIiUyMCA8PT4gJTIxIikuYXJnKHZhbHVlMS5maXJzdCwg
dmFsdWUyLmZpcnN0KTsKKyAgICAgICAgICAgIFFUZXN0OjpuZXdSb3codGFnLnRvQXNjaWkoKS5j
b25zdERhdGEoKSkgPDwgdmFsdWUxLnNlY29uZCA8PCB2YWx1ZTIuc2Vjb25kIDw8IGVxdWFscy5j
b250YWlucyh0YWcpOyAgICAgICAgfQogICAgIH0KIH0KIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVl
OjppbnN0YW5jZU9mX3Rlc3QoY29uc3QgY2hhciAqLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVl
KQordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppbnN0YW5jZU9mKCkKIHsKKyAgICBRRkVUQ0goUVNj
cmlwdFZhbHVlLCB2YWx1ZSk7CiAgICAgUUZFVENIKFFTY3JpcHRWYWx1ZSwgb3RoZXIpOwogICAg
IFFGRVRDSChib29sLCBleHBlY3RlZCk7CiAgICAgUUNPTVBBUkUodmFsdWUuaW5zdGFuY2VPZihv
dGhlciksIGV4cGVjdGVkKTsKIH0KLQotREVGSU5FX1RFU1RfRlVOQ1RJT04oaW5zdGFuY2VPZikK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNj
cmlwdHZhbHVlX2dlbmVyYXRlZF9pbml0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3Fz
Y3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZF9pbml0LmNwcAppbmRleCBiNjhh
YWYyLi40Yzk3ZGQ0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0
dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWRfaW5pdC5jcHAKKysrIGIvSmF2YVNjcmlw
dENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkX2lu
aXQuY3BwCkBAIC0yNCwxNDIgKzI0LDE0NiBAQAogI2luY2x1ZGUgInRzdF9xc2NyaXB0dmFsdWUu
aCIKIAogCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmluaXRTY3JpcHRWYWx1ZXMoKQorUVBhaXI8
UVN0cmluZywgUVNjcmlwdFZhbHVlPiB0c3RfUVNjcmlwdFZhbHVlOjppbml0U2NyaXB0VmFsdWVz
KHVpbnQgaWR4KQogewotICAgIG1fdmFsdWVzLmNsZWFyKCk7Ci0gICAgaWYgKGVuZ2luZSkKLSAg
ICAgICAgZGVsZXRlIGVuZ2luZTsKLSAgICBlbmdpbmUgPSBuZXcgUVNjcmlwdEVuZ2luZTsKLSAg
ICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFM
VUUoUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpKTsKLSAgICBERUZJ
TkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpKTsKLSAg
ICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUodHJ1ZSkpOwotICAgIERFRklORV9URVNU
X1ZBTFVFKFFTY3JpcHRWYWx1ZShmYWxzZSkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3Jp
cHRWYWx1ZShpbnQoMTIyKSkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSh1
aW50KDEyNCkpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoMCkpOwotICAg
IERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLjApKTsKLSAgICBERUZJTkVfVEVTVF9W
QUxVRShRU2NyaXB0VmFsdWUoMTIzLjApKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0
VmFsdWUoNi4zN2UtOCkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgtNi4z
N2UtOCkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgweDQzMjExMjM0KSk7
Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKDB4MTAwMDApKTsKLSAgICBERUZJ
TkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoMHgxMDAwMSkpOwotICAgIERFRklORV9URVNUX1ZB
TFVFKFFTY3JpcHRWYWx1ZShxU05hTigpKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlw
dFZhbHVlKHFRTmFOKCkpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUocUlu
ZigpKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKC1xSW5mKCkpKTsKLSAg
ICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoIk5hTiIpKTsKLSAgICBERUZJTkVfVEVT
VF9WQUxVRShRU2NyaXB0VmFsdWUoIkluZmluaXR5IikpOwotICAgIERFRklORV9URVNUX1ZBTFVF
KFFTY3JpcHRWYWx1ZSgiLUluZmluaXR5IikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3Jp
cHRWYWx1ZSgiY2lhbyIpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoUVN0
cmluZzo6ZnJvbUxhdGluMSgiY2lhbyIpKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlw
dFZhbHVlKFFTdHJpbmcoIiIpKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVl
KFFTdHJpbmcoKSkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZShRU3RyaW5n
KCIwIikpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoUVN0cmluZygiMTIz
IikpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoUVN0cmluZygiMTIuNCIp
KSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6
VW5kZWZpbmVkVmFsdWUpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoMCwg
UVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0
VmFsdWUoMCwgdHJ1ZSkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLCBm
YWxzZSkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLCBpbnQoMTIyKSkp
OwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLCB1aW50KDEyNCkpKTsKLSAg
ICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoMCwgMCkpOwotICAgIERFRklORV9URVNU
X1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLCAwLjApKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2Ny
aXB0VmFsdWUoMCwgMTIzLjApKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUo
MCwgNi4zN2UtOCkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLCAtNi4z
N2UtOCkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLCAweDQzMjExMjM0
KSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKDAsIDB4MTAwMDApKTsKLSAg
ICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoMCwgMHgxMDAwMSkpOwotICAgIERFRklO
RV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLCBxU05hTigpKSk7Ci0gICAgREVGSU5FX1RFU1Rf
VkFMVUUoUVNjcmlwdFZhbHVlKDAsIHFRTmFOKCkpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShR
U2NyaXB0VmFsdWUoMCwgcUluZigpKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZh
bHVlKDAsIC1xSW5mKCkpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoMCwg
Ik5hTiIpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoMCwgIkluZmluaXR5
IikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLCAiLUluZmluaXR5Iikp
OwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLCAiY2lhbyIpKTsKLSAgICBE
RUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoMCwgUVN0cmluZzo6ZnJvbUxhdGluMSgiY2lh
byIpKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKDAsIFFTdHJpbmcoIiIp
KSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKDAsIFFTdHJpbmcoKSkpOwot
ICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZSgwLCBRU3RyaW5nKCIwIikpKTsKLSAg
ICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoMCwgUVN0cmluZygiMTIzIikpKTsKLSAg
ICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoMCwgUVN0cmluZygiMTIuMyIpKSk7Ci0g
ICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVNjcmlwdFZhbHVlOjpV
bmRlZmluZWRWYWx1ZSkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZShlbmdp
bmUsIFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNj
cmlwdFZhbHVlKGVuZ2luZSwgdHJ1ZSkpOwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRW
YWx1ZShlbmdpbmUsIGZhbHNlKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVl
KGVuZ2luZSwgaW50KDEyMikpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUo
ZW5naW5lLCB1aW50KDEyNCkpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUo
ZW5naW5lLCAwKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKGVuZ2luZSwg
MC4wKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKGVuZ2luZSwgMTIzLjAp
KTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoZW5naW5lLCA2LjM3ZS04KSk7
Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKGVuZ2luZSwgLTYuMzdlLTgpKTsK
LSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoZW5naW5lLCAweDQzMjExMjM0KSk7
Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKGVuZ2luZSwgMHgxMDAwMCkpOwot
ICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZShlbmdpbmUsIDB4MTAwMDEpKTsKLSAg
ICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoZW5naW5lLCBxU05hTigpKSk7Ci0gICAg
REVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKGVuZ2luZSwgcVFOYU4oKSkpOwotICAgIERF
RklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZShlbmdpbmUsIHFJbmYoKSkpOwotICAgIERFRklO
RV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZShlbmdpbmUsIC1xSW5mKCkpKTsKLSAgICBERUZJTkVf
VEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoZW5naW5lLCAiTmFOIikpOwotICAgIERFRklORV9URVNU
X1ZBTFVFKFFTY3JpcHRWYWx1ZShlbmdpbmUsICJJbmZpbml0eSIpKTsKLSAgICBERUZJTkVfVEVT
VF9WQUxVRShRU2NyaXB0VmFsdWUoZW5naW5lLCAiLUluZmluaXR5IikpOwotICAgIERFRklORV9U
RVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZShlbmdpbmUsICJjaWFvIikpOwotICAgIERFRklORV9URVNU
X1ZBTFVFKFFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmc6OmZyb21MYXRpbjEoImNpYW8iKSkp
OwotICAgIERFRklORV9URVNUX1ZBTFVFKFFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoIiIp
KSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZygp
KSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZygi
MCIpKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmlu
ZygiMTIzIikpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShRU2NyaXB0VmFsdWUoZW5naW5lLCBR
U3RyaW5nKCIxLjIzIikpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPmV2YWx1YXRl
KCJbXSIpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPmV2YWx1YXRlKCJ7fSIpKTsK
LSAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPmV2YWx1YXRlKCJPYmplY3QucHJvdG90eXBl
IikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+ZXZhbHVhdGUoIkRhdGUucHJvdG90
eXBlIikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+ZXZhbHVhdGUoIkFycmF5LnBy
b3RvdHlwZSIpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPmV2YWx1YXRlKCJGdW5j
dGlvbi5wcm90b3R5cGUiKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0
ZSgiRXJyb3IucHJvdG90eXBlIikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+ZXZh
bHVhdGUoIk9iamVjdCIpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPmV2YWx1YXRl
KCJBcnJheSIpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPmV2YWx1YXRlKCJOdW1i
ZXIiKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgiRnVuY3Rpb24i
KSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgiKGZ1bmN0aW9uKCkg
eyByZXR1cm4gMTsgfSkiKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0
ZSgiKGZ1bmN0aW9uKCkgeyByZXR1cm4gJ2NpYW8nOyB9KSIpKTsKLSAgICBERUZJTkVfVEVTVF9W
QUxVRShlbmdpbmUtPmV2YWx1YXRlKCIoZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcignZm9v
JyB9KSIpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPmV2YWx1YXRlKCIvZm9vLyIp
KTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPmV2YWx1YXRlKCJuZXcgT2JqZWN0KCki
KSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgibmV3IEFycmF5KCki
KSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgibmV3IEVycm9yKCki
KSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgiYSA9IG5ldyBPYmpl
Y3QoIGEuZm9vID0gMjI7IGEuZm9vIikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+
ZXZhbHVhdGUoIlVuZGVmaW5lZCIpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPmV2
YWx1YXRlKCJOdWxsIikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+ZXZhbHVhdGUo
IlRydWUiKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgiRmFsc2Ui
KSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgidW5kZWZpbmVkIikp
OwotICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+ZXZhbHVhdGUoIm51bGwiKSk7Ci0gICAg
REVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgidHJ1ZSIpKTsKLSAgICBERUZJTkVf
VEVTVF9WQUxVRShlbmdpbmUtPmV2YWx1YXRlKCJmYWxzZSIpKTsKLSAgICBERUZJTkVfVEVTVF9W
QUxVRShlbmdpbmUtPmV2YWx1YXRlKCIxMjIiKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5n
aW5lLT5ldmFsdWF0ZSgiMTI0IikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+ZXZh
bHVhdGUoIjAiKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgiMC4w
IikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+ZXZhbHVhdGUoIjEyMy4wIikpOwot
ICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+ZXZhbHVhdGUoIjYuMzdlLTgiKSk7Ci0gICAg
REVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgiLTYuMzdlLTgiKSk7Ci0gICAgREVG
SU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgiMHg0MzIxMTIzNCIpKTsKLSAgICBERUZJ
TkVfVEVTVF9WQUxVRShlbmdpbmUtPmV2YWx1YXRlKCIweDEwMDAwIikpOwotICAgIERFRklORV9U
RVNUX1ZBTFVFKGVuZ2luZS0+ZXZhbHVhdGUoIjB4MTAwMDEiKSk7Ci0gICAgREVGSU5FX1RFU1Rf
VkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgiTmFOIikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKGVu
Z2luZS0+ZXZhbHVhdGUoIkluZmluaXR5IikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2lu
ZS0+ZXZhbHVhdGUoIi1JbmZpbml0eSIpKTsKLSAgICBERUZJTkVfVEVTVF9WQUxVRShlbmdpbmUt
PmV2YWx1YXRlKCInY2lhbyciKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFs
dWF0ZSgiJyciKSk7Ci0gICAgREVGSU5FX1RFU1RfVkFMVUUoZW5naW5lLT5ldmFsdWF0ZSgiJzAn
IikpOwotICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+ZXZhbHVhdGUoIicxMjMnIikpOwot
ICAgIERFRklORV9URVNUX1ZBTFVFKGVuZ2luZS0+ZXZhbHVhdGUoIicxMi40JyIpKTsKLSAgICBE
RUZJTkVfVEVTVF9WQUxVRShlbmdpbmUtPm51bGxWYWx1ZSgpKTsKLSAgICBERUZJTkVfVEVTVF9W
QUxVRShlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkpOworICAgIFFTY3JpcHRFbmdpbmUqIGVuZ2lu
ZSA9IG1fZW5naW5lOworICAgIHN3aXRjaCAoaWR4KSB7CisgICAgY2FzZSAwOiByZXR1cm4gUVBh
aXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKCkiLCBRU2NyaXB0VmFsdWUo
KSk7CisgICAgY2FzZSAxOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNj
cmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwgUVNjcmlwdFZhbHVlKFFT
Y3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpKTsKKyAgICBjYXNlIDI6IHJldHVybiBRUGFpcjxR
U3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpOdWxsVmFs
dWUpIiwgUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSk7CisgICAgY2FzZSAz
OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKHRydWUp
IiwgUVNjcmlwdFZhbHVlKHRydWUpKTsKKyAgICBjYXNlIDQ6IHJldHVybiBRUGFpcjxRU3RyaW5n
LCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoZmFsc2UpIiwgUVNjcmlwdFZhbHVlKGZhbHNl
KSk7CisgICAgY2FzZSA1OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNj
cmlwdFZhbHVlKGludCgxMjIpKSIsIFFTY3JpcHRWYWx1ZShpbnQoMTIyKSkpOworICAgIGNhc2Ug
NjogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSh1aW50
KDEyNCkpIiwgUVNjcmlwdFZhbHVlKHVpbnQoMTI0KSkpOworICAgIGNhc2UgNzogcmV0dXJuIFFQ
YWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgwKSIsIFFTY3JpcHRWYWx1
ZSgwKSk7CisgICAgY2FzZSA4OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigi
UVNjcmlwdFZhbHVlKDAuMCkiLCBRU2NyaXB0VmFsdWUoMC4wKSk7CisgICAgY2FzZSA5OiByZXR1
cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKDEyMy4wKSIsIFFT
Y3JpcHRWYWx1ZSgxMjMuMCkpOworICAgIGNhc2UgMTA6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBR
U2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoNi4zN2UtOCkiLCBRU2NyaXB0VmFsdWUoNi4zN2Ut
OCkpOworICAgIGNhc2UgMTE6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJR
U2NyaXB0VmFsdWUoLTYuMzdlLTgpIiwgUVNjcmlwdFZhbHVlKC02LjM3ZS04KSk7CisgICAgY2Fz
ZSAxMjogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgw
eDQzMjExMjM0KSIsIFFTY3JpcHRWYWx1ZSgweDQzMjExMjM0KSk7CisgICAgY2FzZSAxMzogcmV0
dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgweDEwMDAwKSIs
IFFTY3JpcHRWYWx1ZSgweDEwMDAwKSk7CisgICAgY2FzZSAxNDogcmV0dXJuIFFQYWlyPFFTdHJp
bmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgweDEwMDAxKSIsIFFTY3JpcHRWYWx1ZSgw
eDEwMDAxKSk7CisgICAgY2FzZSAxNTogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1
ZT4oIlFTY3JpcHRWYWx1ZShxU05hTigpKSIsIFFTY3JpcHRWYWx1ZShxU05hTigpKSk7CisgICAg
Y2FzZSAxNjogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1
ZShxUU5hTigpKSIsIFFTY3JpcHRWYWx1ZShxUU5hTigpKSk7CisgICAgY2FzZSAxNzogcmV0dXJu
IFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZShxSW5mKCkpIiwgUVNj
cmlwdFZhbHVlKHFJbmYoKSkpOworICAgIGNhc2UgMTg6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBR
U2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoLXFJbmYoKSkiLCBRU2NyaXB0VmFsdWUoLXFJbmYo
KSkpOworICAgIGNhc2UgMTk6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJR
U2NyaXB0VmFsdWUoXCJOYU5cIikiLCBRU2NyaXB0VmFsdWUoIk5hTiIpKTsKKyAgICBjYXNlIDIw
OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKFwiSW5m
aW5pdHlcIikiLCBRU2NyaXB0VmFsdWUoIkluZmluaXR5IikpOworICAgIGNhc2UgMjE6IHJldHVy
biBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoXCItSW5maW5pdHlc
IikiLCBRU2NyaXB0VmFsdWUoIi1JbmZpbml0eSIpKTsKKyAgICBjYXNlIDIyOiByZXR1cm4gUVBh
aXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKFwiY2lhb1wiKSIsIFFTY3Jp
cHRWYWx1ZSgiY2lhbyIpKTsKKyAgICBjYXNlIDIzOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNj
cmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKFFTdHJpbmc6OmZyb21MYXRpbjEoXCJjaWFvXCIpKSIs
IFFTY3JpcHRWYWx1ZShRU3RyaW5nOjpmcm9tTGF0aW4xKCJjaWFvIikpKTsKKyAgICBjYXNlIDI0
OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKFFTdHJp
bmcoXCJcIikpIiwgUVNjcmlwdFZhbHVlKFFTdHJpbmcoIiIpKSk7CisgICAgY2FzZSAyNTogcmV0
dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZShRU3RyaW5nKCkp
IiwgUVNjcmlwdFZhbHVlKFFTdHJpbmcoKSkpOworICAgIGNhc2UgMjY6IHJldHVybiBRUGFpcjxR
U3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoUVN0cmluZyhcIjBcIikpIiwgUVNj
cmlwdFZhbHVlKFFTdHJpbmcoIjAiKSkpOworICAgIGNhc2UgMjc6IHJldHVybiBRUGFpcjxRU3Ry
aW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoUVN0cmluZyhcIjEyM1wiKSkiLCBRU2Ny
aXB0VmFsdWUoUVN0cmluZygiMTIzIikpKTsKKyAgICBjYXNlIDI4OiByZXR1cm4gUVBhaXI8UVN0
cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKFFTdHJpbmcoXCIxMi40XCIpKSIsIFFT
Y3JpcHRWYWx1ZShRU3RyaW5nKCIxMi40IikpKTsKKyAgICBjYXNlIDI5OiByZXR1cm4gUVBhaXI8
UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6VW5k
ZWZpbmVkVmFsdWUpIiwgUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFs
dWUpKTsKKyAgICBjYXNlIDMwOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigi
UVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSIsIFFTY3JpcHRWYWx1ZSgw
LCBRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkpOworICAgIGNhc2UgMzE6IHJldHVybiBRUGFpcjxR
U3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoMCwgdHJ1ZSkiLCBRU2NyaXB0VmFs
dWUoMCwgdHJ1ZSkpOworICAgIGNhc2UgMzI6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0
VmFsdWU+KCJRU2NyaXB0VmFsdWUoMCwgZmFsc2UpIiwgUVNjcmlwdFZhbHVlKDAsIGZhbHNlKSk7
CisgICAgY2FzZSAzMzogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3Jp
cHRWYWx1ZSgwLCBpbnQoMTIyKSkiLCBRU2NyaXB0VmFsdWUoMCwgaW50KDEyMikpKTsKKyAgICBj
YXNlIDM0OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVl
KDAsIHVpbnQoMTI0KSkiLCBRU2NyaXB0VmFsdWUoMCwgdWludCgxMjQpKSk7CisgICAgY2FzZSAz
NTogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgwLCAw
KSIsIFFTY3JpcHRWYWx1ZSgwLCAwKSk7CisgICAgY2FzZSAzNjogcmV0dXJuIFFQYWlyPFFTdHJp
bmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgwLCAwLjApIiwgUVNjcmlwdFZhbHVlKDAs
IDAuMCkpOworICAgIGNhc2UgMzc6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+
KCJRU2NyaXB0VmFsdWUoMCwgMTIzLjApIiwgUVNjcmlwdFZhbHVlKDAsIDEyMy4wKSk7CisgICAg
Y2FzZSAzODogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1
ZSgwLCA2LjM3ZS04KSIsIFFTY3JpcHRWYWx1ZSgwLCA2LjM3ZS04KSk7CisgICAgY2FzZSAzOTog
cmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgwLCAtNi4z
N2UtOCkiLCBRU2NyaXB0VmFsdWUoMCwgLTYuMzdlLTgpKTsKKyAgICBjYXNlIDQwOiByZXR1cm4g
UVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKDAsIDB4NDMyMTEyMzQp
IiwgUVNjcmlwdFZhbHVlKDAsIDB4NDMyMTEyMzQpKTsKKyAgICBjYXNlIDQxOiByZXR1cm4gUVBh
aXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKDAsIDB4MTAwMDApIiwgUVNj
cmlwdFZhbHVlKDAsIDB4MTAwMDApKTsKKyAgICBjYXNlIDQyOiByZXR1cm4gUVBhaXI8UVN0cmlu
ZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKDAsIDB4MTAwMDEpIiwgUVNjcmlwdFZhbHVl
KDAsIDB4MTAwMDEpKTsKKyAgICBjYXNlIDQzOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlw
dFZhbHVlPigiUVNjcmlwdFZhbHVlKDAsIHFTTmFOKCkpIiwgUVNjcmlwdFZhbHVlKDAsIHFTTmFO
KCkpKTsKKyAgICBjYXNlIDQ0OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigi
UVNjcmlwdFZhbHVlKDAsIHFRTmFOKCkpIiwgUVNjcmlwdFZhbHVlKDAsIHFRTmFOKCkpKTsKKyAg
ICBjYXNlIDQ1OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZh
bHVlKDAsIHFJbmYoKSkiLCBRU2NyaXB0VmFsdWUoMCwgcUluZigpKSk7CisgICAgY2FzZSA0Njog
cmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgwLCAtcUlu
ZigpKSIsIFFTY3JpcHRWYWx1ZSgwLCAtcUluZigpKSk7CisgICAgY2FzZSA0NzogcmV0dXJuIFFQ
YWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgwLCBcIk5hTlwiKSIsIFFT
Y3JpcHRWYWx1ZSgwLCAiTmFOIikpOworICAgIGNhc2UgNDg6IHJldHVybiBRUGFpcjxRU3RyaW5n
LCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoMCwgXCJJbmZpbml0eVwiKSIsIFFTY3JpcHRW
YWx1ZSgwLCAiSW5maW5pdHkiKSk7CisgICAgY2FzZSA0OTogcmV0dXJuIFFQYWlyPFFTdHJpbmcs
IFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgwLCBcIi1JbmZpbml0eVwiKSIsIFFTY3JpcHRW
YWx1ZSgwLCAiLUluZmluaXR5IikpOworICAgIGNhc2UgNTA6IHJldHVybiBRUGFpcjxRU3RyaW5n
LCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoMCwgXCJjaWFvXCIpIiwgUVNjcmlwdFZhbHVl
KDAsICJjaWFvIikpOworICAgIGNhc2UgNTE6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0
VmFsdWU+KCJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZzo6ZnJvbUxhdGluMShcImNpYW9cIikpIiwg
UVNjcmlwdFZhbHVlKDAsIFFTdHJpbmc6OmZyb21MYXRpbjEoImNpYW8iKSkpOworICAgIGNhc2Ug
NTI6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoMCwg
UVN0cmluZyhcIlwiKSkiLCBRU2NyaXB0VmFsdWUoMCwgUVN0cmluZygiIikpKTsKKyAgICBjYXNl
IDUzOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKDAs
IFFTdHJpbmcoKSkiLCBRU2NyaXB0VmFsdWUoMCwgUVN0cmluZygpKSk7CisgICAgY2FzZSA1NDog
cmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgwLCBRU3Ry
aW5nKFwiMFwiKSkiLCBRU2NyaXB0VmFsdWUoMCwgUVN0cmluZygiMCIpKSk7CisgICAgY2FzZSA1
NTogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZSgwLCBR
U3RyaW5nKFwiMTIzXCIpKSIsIFFTY3JpcHRWYWx1ZSgwLCBRU3RyaW5nKCIxMjMiKSkpOworICAg
IGNhc2UgNTY6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFs
dWUoMCwgUVN0cmluZyhcIjEyLjNcIikpIiwgUVNjcmlwdFZhbHVlKDAsIFFTdHJpbmcoIjEyLjMi
KSkpOworICAgIGNhc2UgNTc6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJR
U2NyaXB0VmFsdWUoZW5naW5lLCBRU2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSIsIFFTY3Jp
cHRWYWx1ZShlbmdpbmUsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpKTsKKyAgICBjYXNl
IDU4OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKGVu
Z2luZSwgUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpIiwgUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVNj
cmlwdFZhbHVlOjpOdWxsVmFsdWUpKTsKKyAgICBjYXNlIDU5OiByZXR1cm4gUVBhaXI8UVN0cmlu
ZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKGVuZ2luZSwgdHJ1ZSkiLCBRU2NyaXB0VmFs
dWUoZW5naW5lLCB0cnVlKSk7CisgICAgY2FzZSA2MDogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFT
Y3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZShlbmdpbmUsIGZhbHNlKSIsIFFTY3JpcHRWYWx1ZShl
bmdpbmUsIGZhbHNlKSk7CisgICAgY2FzZSA2MTogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3Jp
cHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZShlbmdpbmUsIGludCgxMjIpKSIsIFFTY3JpcHRWYWx1ZShl
bmdpbmUsIGludCgxMjIpKSk7CisgICAgY2FzZSA2MjogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFT
Y3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZShlbmdpbmUsIHVpbnQoMTI0KSkiLCBRU2NyaXB0VmFs
dWUoZW5naW5lLCB1aW50KDEyNCkpKTsKKyAgICBjYXNlIDYzOiByZXR1cm4gUVBhaXI8UVN0cmlu
ZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMCkiLCBRU2NyaXB0VmFsdWUo
ZW5naW5lLCAwKSk7CisgICAgY2FzZSA2NDogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRW
YWx1ZT4oIlFTY3JpcHRWYWx1ZShlbmdpbmUsIDAuMCkiLCBRU2NyaXB0VmFsdWUoZW5naW5lLCAw
LjApKTsKKyAgICBjYXNlIDY1OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigi
UVNjcmlwdFZhbHVlKGVuZ2luZSwgMTIzLjApIiwgUVNjcmlwdFZhbHVlKGVuZ2luZSwgMTIzLjAp
KTsKKyAgICBjYXNlIDY2OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiUVNj
cmlwdFZhbHVlKGVuZ2luZSwgNi4zN2UtOCkiLCBRU2NyaXB0VmFsdWUoZW5naW5lLCA2LjM3ZS04
KSk7CisgICAgY2FzZSA2NzogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFT
Y3JpcHRWYWx1ZShlbmdpbmUsIC02LjM3ZS04KSIsIFFTY3JpcHRWYWx1ZShlbmdpbmUsIC02LjM3
ZS04KSk7CisgICAgY2FzZSA2ODogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4o
IlFTY3JpcHRWYWx1ZShlbmdpbmUsIDB4NDMyMTEyMzQpIiwgUVNjcmlwdFZhbHVlKGVuZ2luZSwg
MHg0MzIxMTIzNCkpOworICAgIGNhc2UgNjk6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0
VmFsdWU+KCJRU2NyaXB0VmFsdWUoZW5naW5lLCAweDEwMDAwKSIsIFFTY3JpcHRWYWx1ZShlbmdp
bmUsIDB4MTAwMDApKTsKKyAgICBjYXNlIDcwOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlw
dFZhbHVlPigiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMHgxMDAwMSkiLCBRU2NyaXB0VmFsdWUoZW5n
aW5lLCAweDEwMDAxKSk7CisgICAgY2FzZSA3MTogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3Jp
cHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZShlbmdpbmUsIHFTTmFOKCkpIiwgUVNjcmlwdFZhbHVlKGVu
Z2luZSwgcVNOYU4oKSkpOworICAgIGNhc2UgNzI6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2Ny
aXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBxUU5hTigpKSIsIFFTY3JpcHRWYWx1ZShl
bmdpbmUsIHFRTmFOKCkpKTsKKyAgICBjYXNlIDczOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNj
cmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKGVuZ2luZSwgcUluZigpKSIsIFFTY3JpcHRWYWx1ZShl
bmdpbmUsIHFJbmYoKSkpOworICAgIGNhc2UgNzQ6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2Ny
aXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoZW5naW5lLCAtcUluZigpKSIsIFFTY3JpcHRWYWx1ZShl
bmdpbmUsIC1xSW5mKCkpKTsKKyAgICBjYXNlIDc1OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNj
cmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKGVuZ2luZSwgXCJOYU5cIikiLCBRU2NyaXB0VmFsdWUo
ZW5naW5lLCAiTmFOIikpOworICAgIGNhc2UgNzY6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2Ny
aXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBcIkluZmluaXR5XCIpIiwgUVNjcmlwdFZh
bHVlKGVuZ2luZSwgIkluZmluaXR5IikpOworICAgIGNhc2UgNzc6IHJldHVybiBRUGFpcjxRU3Ry
aW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBcIi1JbmZpbml0eVwiKSIs
IFFTY3JpcHRWYWx1ZShlbmdpbmUsICItSW5maW5pdHkiKSk7CisgICAgY2FzZSA3ODogcmV0dXJu
IFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFwiY2lh
b1wiKSIsIFFTY3JpcHRWYWx1ZShlbmdpbmUsICJjaWFvIikpOworICAgIGNhc2UgNzk6IHJldHVy
biBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBRU3Ry
aW5nOjpmcm9tTGF0aW4xKFwiY2lhb1wiKSkiLCBRU2NyaXB0VmFsdWUoZW5naW5lLCBRU3RyaW5n
Ojpmcm9tTGF0aW4xKCJjaWFvIikpKTsKKyAgICBjYXNlIDgwOiByZXR1cm4gUVBhaXI8UVN0cmlu
ZywgUVNjcmlwdFZhbHVlPigiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIlwiKSkiLCBR
U2NyaXB0VmFsdWUoZW5naW5lLCBRU3RyaW5nKCIiKSkpOworICAgIGNhc2UgODE6IHJldHVybiBR
UGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBRU3RyaW5n
KCkpIiwgUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZygpKSk7CisgICAgY2FzZSA4MjogcmV0
dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFT
dHJpbmcoXCIwXCIpKSIsIFFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoIjAiKSkpOworICAg
IGNhc2UgODM6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJRU2NyaXB0VmFs
dWUoZW5naW5lLCBRU3RyaW5nKFwiMTIzXCIpKSIsIFFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJp
bmcoIjEyMyIpKSk7CisgICAgY2FzZSA4NDogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRW
YWx1ZT4oIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoXCIxLjIzXCIpKSIsIFFTY3JpcHRW
YWx1ZShlbmdpbmUsIFFTdHJpbmcoIjEuMjMiKSkpOworICAgIGNhc2UgODU6IHJldHVybiBRUGFp
cjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJlbmdpbmUtPmV2YWx1YXRlKFwiW11cIikiLCBlbmdp
bmUtPmV2YWx1YXRlKCJbXSIpKTsKKyAgICBjYXNlIDg2OiByZXR1cm4gUVBhaXI8UVN0cmluZywg
UVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcInt9XCIpIiwgZW5naW5lLT5ldmFsdWF0
ZSgie30iKSk7CisgICAgY2FzZSA4NzogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1
ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCJPYmplY3QucHJvdG90eXBlXCIpIiwgZW5naW5lLT5ldmFs
dWF0ZSgiT2JqZWN0LnByb3RvdHlwZSIpKTsKKyAgICBjYXNlIDg4OiByZXR1cm4gUVBhaXI8UVN0
cmluZywgUVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIkRhdGUucHJvdG90eXBlXCIp
IiwgZW5naW5lLT5ldmFsdWF0ZSgiRGF0ZS5wcm90b3R5cGUiKSk7CisgICAgY2FzZSA4OTogcmV0
dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCJBcnJh
eS5wcm90b3R5cGVcIikiLCBlbmdpbmUtPmV2YWx1YXRlKCJBcnJheS5wcm90b3R5cGUiKSk7Cisg
ICAgY2FzZSA5MDogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oImVuZ2luZS0+
ZXZhbHVhdGUoXCJGdW5jdGlvbi5wcm90b3R5cGVcIikiLCBlbmdpbmUtPmV2YWx1YXRlKCJGdW5j
dGlvbi5wcm90b3R5cGUiKSk7CisgICAgY2FzZSA5MTogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFT
Y3JpcHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCJFcnJvci5wcm90b3R5cGVcIikiLCBlbmdp
bmUtPmV2YWx1YXRlKCJFcnJvci5wcm90b3R5cGUiKSk7CisgICAgY2FzZSA5MjogcmV0dXJuIFFQ
YWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCJPYmplY3RcIiki
LCBlbmdpbmUtPmV2YWx1YXRlKCJPYmplY3QiKSk7CisgICAgY2FzZSA5MzogcmV0dXJuIFFQYWly
PFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCJBcnJheVwiKSIsIGVu
Z2luZS0+ZXZhbHVhdGUoIkFycmF5IikpOworICAgIGNhc2UgOTQ6IHJldHVybiBRUGFpcjxRU3Ry
aW5nLCBRU2NyaXB0VmFsdWU+KCJlbmdpbmUtPmV2YWx1YXRlKFwiTnVtYmVyXCIpIiwgZW5naW5l
LT5ldmFsdWF0ZSgiTnVtYmVyIikpOworICAgIGNhc2UgOTU6IHJldHVybiBRUGFpcjxRU3RyaW5n
LCBRU2NyaXB0VmFsdWU+KCJlbmdpbmUtPmV2YWx1YXRlKFwiRnVuY3Rpb25cIikiLCBlbmdpbmUt
PmV2YWx1YXRlKCJGdW5jdGlvbiIpKTsKKyAgICBjYXNlIDk2OiByZXR1cm4gUVBhaXI8UVN0cmlu
ZywgUVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJu
IDE7IH0pXCIpIiwgZW5naW5lLT5ldmFsdWF0ZSgiKGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSki
KSk7CisgICAgY2FzZSA5NzogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oImVu
Z2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAnY2lhbyc7IH0pXCIpIiwgZW5n
aW5lLT5ldmFsdWF0ZSgiKGZ1bmN0aW9uKCkgeyByZXR1cm4gJ2NpYW8nOyB9KSIpKTsKKyAgICBj
YXNlIDk4OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFs
dWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdmb28nKTsgfSlcIikiLCBlbmdp
bmUtPmV2YWx1YXRlKCIoZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcignZm9vJyk7IH0pIikp
OworICAgIGNhc2UgOTk6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJlbmdp
bmUtPmV2YWx1YXRlKFwiL2Zvby9cIikiLCBlbmdpbmUtPmV2YWx1YXRlKCIvZm9vLyIpKTsKKyAg
ICBjYXNlIDEwMDogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oImVuZ2luZS0+
ZXZhbHVhdGUoXCJuZXcgT2JqZWN0KClcIikiLCBlbmdpbmUtPmV2YWx1YXRlKCJuZXcgT2JqZWN0
KCkiKSk7CisgICAgY2FzZSAxMDE6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+
KCJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IEFycmF5KClcIikiLCBlbmdpbmUtPmV2YWx1YXRlKCJu
ZXcgQXJyYXkoKSIpKTsKKyAgICBjYXNlIDEwMjogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3Jp
cHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgRXJyb3IoKVwiKSIsIGVuZ2luZS0+ZXZh
bHVhdGUoIm5ldyBFcnJvcigpIikpOworICAgIGNhc2UgMTAzOiByZXR1cm4gUVBhaXI8UVN0cmlu
ZywgUVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcImEgPSBuZXcgT2JqZWN0KCk7IGEu
Zm9vID0gMjI7IGEuZm9vXCIpIiwgZW5naW5lLT5ldmFsdWF0ZSgiYSA9IG5ldyBPYmplY3QoKTsg
YS5mb28gPSAyMjsgYS5mb28iKSk7CisgICAgY2FzZSAxMDQ6IHJldHVybiBRUGFpcjxRU3RyaW5n
LCBRU2NyaXB0VmFsdWU+KCJlbmdpbmUtPmV2YWx1YXRlKFwiVW5kZWZpbmVkXCIpIiwgZW5naW5l
LT5ldmFsdWF0ZSgiVW5kZWZpbmVkIikpOworICAgIGNhc2UgMTA1OiByZXR1cm4gUVBhaXI8UVN0
cmluZywgUVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIk51bGxcIikiLCBlbmdpbmUt
PmV2YWx1YXRlKCJOdWxsIikpOworICAgIGNhc2UgMTA2OiByZXR1cm4gUVBhaXI8UVN0cmluZywg
UVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIlRydWVcIikiLCBlbmdpbmUtPmV2YWx1
YXRlKCJUcnVlIikpOworICAgIGNhc2UgMTA3OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlw
dFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIkZhbHNlXCIpIiwgZW5naW5lLT5ldmFsdWF0ZSgi
RmFsc2UiKSk7CisgICAgY2FzZSAxMDg6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFs
dWU+KCJlbmdpbmUtPmV2YWx1YXRlKFwidW5kZWZpbmVkXCIpIiwgZW5naW5lLT5ldmFsdWF0ZSgi
dW5kZWZpbmVkIikpOworICAgIGNhc2UgMTA5OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlw
dFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIm51bGxcIikiLCBlbmdpbmUtPmV2YWx1YXRlKCJu
dWxsIikpOworICAgIGNhc2UgMTEwOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVl
PigiZW5naW5lLT5ldmFsdWF0ZShcInRydWVcIikiLCBlbmdpbmUtPmV2YWx1YXRlKCJ0cnVlIikp
OworICAgIGNhc2UgMTExOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiZW5n
aW5lLT5ldmFsdWF0ZShcImZhbHNlXCIpIiwgZW5naW5lLT5ldmFsdWF0ZSgiZmFsc2UiKSk7Cisg
ICAgY2FzZSAxMTI6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJlbmdpbmUt
PmV2YWx1YXRlKFwiMTIyXCIpIiwgZW5naW5lLT5ldmFsdWF0ZSgiMTIyIikpOworICAgIGNhc2Ug
MTEzOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0
ZShcIjEyNFwiKSIsIGVuZ2luZS0+ZXZhbHVhdGUoIjEyNCIpKTsKKyAgICBjYXNlIDExNDogcmV0
dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCIwXCIp
IiwgZW5naW5lLT5ldmFsdWF0ZSgiMCIpKTsKKyAgICBjYXNlIDExNTogcmV0dXJuIFFQYWlyPFFT
dHJpbmcsIFFTY3JpcHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCIwLjBcIikiLCBlbmdpbmUt
PmV2YWx1YXRlKCIwLjAiKSk7CisgICAgY2FzZSAxMTY6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBR
U2NyaXB0VmFsdWU+KCJlbmdpbmUtPmV2YWx1YXRlKFwiMTIzLjBcIikiLCBlbmdpbmUtPmV2YWx1
YXRlKCIxMjMuMCIpKTsKKyAgICBjYXNlIDExNzogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3Jp
cHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCI2LjM3ZS04XCIpIiwgZW5naW5lLT5ldmFsdWF0
ZSgiNi4zN2UtOCIpKTsKKyAgICBjYXNlIDExODogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3Jp
cHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCItNi4zN2UtOFwiKSIsIGVuZ2luZS0+ZXZhbHVh
dGUoIi02LjM3ZS04IikpOworICAgIGNhc2UgMTE5OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNj
cmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIjB4NDMyMTEyMzRcIikiLCBlbmdpbmUtPmV2
YWx1YXRlKCIweDQzMjExMjM0IikpOworICAgIGNhc2UgMTIwOiByZXR1cm4gUVBhaXI8UVN0cmlu
ZywgUVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIjB4MTAwMDBcIikiLCBlbmdpbmUt
PmV2YWx1YXRlKCIweDEwMDAwIikpOworICAgIGNhc2UgMTIxOiByZXR1cm4gUVBhaXI8UVN0cmlu
ZywgUVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIjB4MTAwMDFcIikiLCBlbmdpbmUt
PmV2YWx1YXRlKCIweDEwMDAxIikpOworICAgIGNhc2UgMTIyOiByZXR1cm4gUVBhaXI8UVN0cmlu
ZywgUVNjcmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIk5hTlwiKSIsIGVuZ2luZS0+ZXZh
bHVhdGUoIk5hTiIpKTsKKyAgICBjYXNlIDEyMzogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3Jp
cHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCJJbmZpbml0eVwiKSIsIGVuZ2luZS0+ZXZhbHVh
dGUoIkluZmluaXR5IikpOworICAgIGNhc2UgMTI0OiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNj
cmlwdFZhbHVlPigiZW5naW5lLT5ldmFsdWF0ZShcIi1JbmZpbml0eVwiKSIsIGVuZ2luZS0+ZXZh
bHVhdGUoIi1JbmZpbml0eSIpKTsKKyAgICBjYXNlIDEyNTogcmV0dXJuIFFQYWlyPFFTdHJpbmcs
IFFTY3JpcHRWYWx1ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCInY2lhbydcIikiLCBlbmdpbmUtPmV2
YWx1YXRlKCInY2lhbyciKSk7CisgICAgY2FzZSAxMjY6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBR
U2NyaXB0VmFsdWU+KCJlbmdpbmUtPmV2YWx1YXRlKFwiJydcIikiLCBlbmdpbmUtPmV2YWx1YXRl
KCInJyIpKTsKKyAgICBjYXNlIDEyNzogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1
ZT4oImVuZ2luZS0+ZXZhbHVhdGUoXCInMCdcIikiLCBlbmdpbmUtPmV2YWx1YXRlKCInMCciKSk7
CisgICAgY2FzZSAxMjg6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJlbmdp
bmUtPmV2YWx1YXRlKFwiJzEyMydcIikiLCBlbmdpbmUtPmV2YWx1YXRlKCInMTIzJyIpKTsKKyAg
ICBjYXNlIDEyOTogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oImVuZ2luZS0+
ZXZhbHVhdGUoXCInMTIuNCdcIikiLCBlbmdpbmUtPmV2YWx1YXRlKCInMTIuNCciKSk7CisgICAg
Y2FzZSAxMzA6IHJldHVybiBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJlbmdpbmUtPm51
bGxWYWx1ZSgpIiwgZW5naW5lLT5udWxsVmFsdWUoKSk7CisgICAgY2FzZSAxMzE6IHJldHVybiBR
UGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+KCJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkiLCBl
bmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkpOworICAgIGNhc2UgMTMyOiByZXR1cm4gUVBhaXI8UVN0
cmluZywgUVNjcmlwdFZhbHVlPigiZW5naW5lLT5uZXdPYmplY3QoKSIsIGVuZ2luZS0+bmV3T2Jq
ZWN0KCkpOworICAgIGNhc2UgMTMzOiByZXR1cm4gUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVl
PigiZW5naW5lLT5uZXdBcnJheSgpIiwgZW5naW5lLT5uZXdBcnJheSgpKTsKKyAgICBjYXNlIDEz
NDogcmV0dXJuIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4oImVuZ2luZS0+bmV3QXJyYXko
MTApIiwgZW5naW5lLT5uZXdBcnJheSgxMCkpOworICAgIH0KKyAgICBRX0FTU0VSVChmYWxzZSk7
CisgICAgcmV0dXJuIHFNYWtlUGFpcihRU3RyaW5nKCksIFFTY3JpcHRWYWx1ZSgpKTsKIH0KZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlw
dHZhbHVlX2dlbmVyYXRlZF9pc3R5cGUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNj
cmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkX2lzdHlwZS5jcHAKaW5kZXggZjFk
ZTc3ZC4uNDMzNTk3ZiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlw
dHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkX2lzdHlwZS5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVk
X2lzdHlwZS5jcHAKQEAgLTI1LDEzICsyNSw3IEBACiAjaW5jbHVkZSAidHN0X3FzY3JpcHR2YWx1
ZS5oIgogCiAKLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNWYWxpZF9pbml0RGF0YSgpCi17Ci0g
ICAgUVRlc3Q6OmFkZENvbHVtbjxib29sPigiZXhwZWN0ZWQiKTsKLSAgICBpbml0U2NyaXB0VmFs
dWVzKCk7Ci19Ci0KLXN0YXRpYyBRU3RyaW5nIGlzVmFsaWRfYXJyYXlbXSA9IHsKK3N0YXRpYyBj
b25zdCBRU3RyaW5nIGlzVmFsaWRfYXJyYXlbXSA9IHsKICAgICAiUVNjcmlwdFZhbHVlKFFTY3Jp
cHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwKICAgICAiUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1
ZTo6TnVsbFZhbHVlKSIsCiAgICAgIlFTY3JpcHRWYWx1ZSh0cnVlKSIsCkBAIC0xMjksMTIgKzEy
MywxMiBAQCBzdGF0aWMgUVN0cmluZyBpc1ZhbGlkX2FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+
ZXZhbHVhdGUoXCJGdW5jdGlvblwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rp
b24oKSB7IHJldHVybiAxOyB9KVwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rp
b24oKSB7IHJldHVybiAnY2lhbyc7IH0pXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihm
dW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdmb28nIH0pXCIpIiwKKyAgICAiZW5naW5lLT5l
dmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdmb28nKTsgfSlcIikiLAog
ICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRl
KFwibmV3IE9iamVjdCgpXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBBcnJheSgp
XCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBFcnJvcigpXCIpIiwKLSAgICAiZW5n
aW5lLT5ldmFsdWF0ZShcImEgPSBuZXcgT2JqZWN0KCBhLmZvbyA9IDIyOyBhLmZvb1wiKSIsCisg
ICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJhID0gbmV3IE9iamVjdCgpOyBhLmZvbyA9IDIyOyBhLmZv
b1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJVbmRlZmluZWRcIikiLAogICAgICJlbmdp
bmUtPmV2YWx1YXRlKFwiTnVsbFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJUcnVlXCIp
IiwKQEAgLTE2MiwzNiArMTU2LDM3IEBAIHN0YXRpYyBRU3RyaW5nIGlzVmFsaWRfYXJyYXlbXSA9
IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicxMjMnXCIpIiwKICAgICAiZW5naW5lLT5ldmFs
dWF0ZShcIicxMi40J1wiKSIsCiAgICAgImVuZ2luZS0+bnVsbFZhbHVlKCkiLAotICAgICJlbmdp
bmUtPnVuZGVmaW5lZFZhbHVlKCkifTsKKyAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIiwK
KyAgICAiZW5naW5lLT5uZXdPYmplY3QoKSIsCisgICAgImVuZ2luZS0+bmV3QXJyYXkoKSIsCisg
ICAgImVuZ2luZS0+bmV3QXJyYXkoMTApIn07CiAKLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNW
YWxpZF9tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKQordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpp
c1ZhbGlkX2RhdGEoKQogewotICAgIHN0YXRpYyBRU2V0PFFTdHJpbmc+IGlzVmFsaWQ7Ci0gICAg
aWYgKGlzVmFsaWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGlzVmFsaWQucmVzZXJ2ZSgxMzEpOwot
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTMxOyArK2kpCi0gICAgICAgICAgICBp
c1ZhbGlkLmluc2VydChpc1ZhbGlkX2FycmF5W2ldKTsKKyAgICBRVGVzdDo6YWRkQ29sdW1uPFFT
Y3JpcHRWYWx1ZT4oInZhbHVlIik7CisgICAgUVRlc3Q6OmFkZENvbHVtbjxib29sPigiZXhwZWN0
ZWQiKTsKKyAgICBpZiAobV9lbmdpbmUpCisgICAgICAgIGRlbGV0ZSBtX2VuZ2luZTsKKyAgICBt
X2VuZ2luZSA9IG5ldyBRU2NyaXB0RW5naW5lKCk7CisgICAgUVNldDxRU3RyaW5nPiBleHBlY3Rl
ZFZhbHVlOworICAgIGV4cGVjdGVkVmFsdWUucmVzZXJ2ZSgxMzQpOworICAgIGZvciAodWludCBp
ID0gMDsgaSA8IDEzNDsgKytpKQorICAgICAgICBleHBlY3RlZFZhbHVlLmluc2VydChpc1ZhbGlk
X2FycmF5W2ldKTsKKyAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCAxMzU7ICsraSkgeworICAgICAg
ICBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+IHRlc3RjYXNlID0gaW5pdFNjcmlwdFZhbHVl
cyhpKTsKKyAgICAgICAgUVRlc3Q6Om5ld1Jvdyh0ZXN0Y2FzZS5maXJzdC50b0FzY2lpKCkuY29u
c3REYXRhKCkpIDw8IHRlc3RjYXNlLnNlY29uZCA8PCBleHBlY3RlZFZhbHVlLmNvbnRhaW5zKHRl
c3RjYXNlLmZpcnN0KTsKICAgICB9Ci0gICAgbmV3Um93KGV4cHIpIDw8IGlzVmFsaWQuY29udGFp
bnMoZXhwcik7CiB9CiAKLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNWYWxpZF90ZXN0KGNvbnN0
IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQordm9pZCB0c3RfUVNjcmlwdFZhbHVl
Ojppc1ZhbGlkKCkKIHsKKyAgICBRRkVUQ0goUVNjcmlwdFZhbHVlLCB2YWx1ZSk7CiAgICAgUUZF
VENIKGJvb2wsIGV4cGVjdGVkKTsKICAgICBRQ09NUEFSRSh2YWx1ZS5pc1ZhbGlkKCksIGV4cGVj
dGVkKTsKICAgICBRQ09NUEFSRSh2YWx1ZS5pc1ZhbGlkKCksIGV4cGVjdGVkKTsKIH0KIAotREVG
SU5FX1RFU1RfRlVOQ1RJT04oaXNWYWxpZCkKLQotCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6Omlz
Qm9vbF9pbml0RGF0YSgpCi17Ci0gICAgUVRlc3Q6OmFkZENvbHVtbjxib29sPigiZXhwZWN0ZWQi
KTsKLSAgICBpbml0U2NyaXB0VmFsdWVzKCk7Ci19Ci0KLXN0YXRpYyBRU3RyaW5nIGlzQm9vbF9h
cnJheVtdID0geworc3RhdGljIGNvbnN0IFFTdHJpbmcgaXNCb29sX2FycmF5W10gPSB7CiAgICAg
IlFTY3JpcHRWYWx1ZSh0cnVlKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShmYWxzZSkiLAogICAgICJR
U2NyaXB0VmFsdWUoMCwgdHJ1ZSkiLApAQCAtMjAxLDM0ICsxOTYsMzIgQEAgc3RhdGljIFFTdHJp
bmcgaXNCb29sX2FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJ0cnVlXCIpIiwK
ICAgICAiZW5naW5lLT5ldmFsdWF0ZShcImZhbHNlXCIpIn07CiAKLXZvaWQgdHN0X1FTY3JpcHRW
YWx1ZTo6aXNCb29sX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpCit2b2lkIHRzdF9RU2NyaXB0
VmFsdWU6OmlzQm9vbF9kYXRhKCkKIHsKLSAgICBzdGF0aWMgUVNldDxRU3RyaW5nPiBpc0Jvb2w7
Ci0gICAgaWYgKGlzQm9vbC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaXNCb29sLnJlc2VydmUoOCk7
Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA4OyArK2kpCi0gICAgICAgICAgICBp
c0Jvb2wuaW5zZXJ0KGlzQm9vbF9hcnJheVtpXSk7CisgICAgUVRlc3Q6OmFkZENvbHVtbjxRU2Ny
aXB0VmFsdWU+KCJ2YWx1ZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48Ym9vbD4oImV4cGVjdGVk
Iik7CisgICAgaWYgKG1fZW5naW5lKQorICAgICAgICBkZWxldGUgbV9lbmdpbmU7CisgICAgbV9l
bmdpbmUgPSBuZXcgUVNjcmlwdEVuZ2luZSgpOworICAgIFFTZXQ8UVN0cmluZz4gZXhwZWN0ZWRW
YWx1ZTsKKyAgICBleHBlY3RlZFZhbHVlLnJlc2VydmUoOCk7CisgICAgZm9yICh1aW50IGkgPSAw
OyBpIDwgODsgKytpKQorICAgICAgICBleHBlY3RlZFZhbHVlLmluc2VydChpc0Jvb2xfYXJyYXlb
aV0pOworICAgIGZvciAodWludCBpID0gMDsgaSA8IDEzNTsgKytpKSB7CisgICAgICAgIFFQYWly
PFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4gdGVzdGNhc2UgPSBpbml0U2NyaXB0VmFsdWVzKGkpOwor
ICAgICAgICBRVGVzdDo6bmV3Um93KHRlc3RjYXNlLmZpcnN0LnRvQXNjaWkoKS5jb25zdERhdGEo
KSkgPDwgdGVzdGNhc2Uuc2Vjb25kIDw8IGV4cGVjdGVkVmFsdWUuY29udGFpbnModGVzdGNhc2Uu
Zmlyc3QpOwogICAgIH0KLSAgICBuZXdSb3coZXhwcikgPDwgaXNCb29sLmNvbnRhaW5zKGV4cHIp
OwogfQogCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzQm9vbF90ZXN0KGNvbnN0IGNoYXIqLCBj
b25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppc0Jvb2wo
KQogeworICAgIFFGRVRDSChRU2NyaXB0VmFsdWUsIHZhbHVlKTsKICAgICBRRkVUQ0goYm9vbCwg
ZXhwZWN0ZWQpOwogICAgIFFDT01QQVJFKHZhbHVlLmlzQm9vbCgpLCBleHBlY3RlZCk7CiAgICAg
UUNPTVBBUkUodmFsdWUuaXNCb29sKCksIGV4cGVjdGVkKTsKIH0KIAotREVGSU5FX1RFU1RfRlVO
Q1RJT04oaXNCb29sKQotCi0KLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNCb29sZWFuX2luaXRE
YXRhKCkKLXsKLSAgICBRVGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJleHBlY3RlZCIpOwotICAgIGlu
aXRTY3JpcHRWYWx1ZXMoKTsKLX0KLQotc3RhdGljIFFTdHJpbmcgaXNCb29sZWFuX2FycmF5W10g
PSB7CitzdGF0aWMgY29uc3QgUVN0cmluZyBpc0Jvb2xlYW5fYXJyYXlbXSA9IHsKICAgICAiUVNj
cmlwdFZhbHVlKHRydWUpIiwKICAgICAiUVNjcmlwdFZhbHVlKGZhbHNlKSIsCiAgICAgIlFTY3Jp
cHRWYWx1ZSgwLCB0cnVlKSIsCkBAIC0yMzgsMzQgKzIzMSwzMiBAQCBzdGF0aWMgUVN0cmluZyBp
c0Jvb2xlYW5fYXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcInRydWVcIikiLAog
ICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiZmFsc2VcIikifTsKIAotdm9pZCB0c3RfUVNjcmlwdFZh
bHVlOjppc0Jvb2xlYW5fbWFrZURhdGEoY29uc3QgY2hhciogZXhwcikKK3ZvaWQgdHN0X1FTY3Jp
cHRWYWx1ZTo6aXNCb29sZWFuX2RhdGEoKQogewotICAgIHN0YXRpYyBRU2V0PFFTdHJpbmc+IGlz
Qm9vbGVhbjsKLSAgICBpZiAoaXNCb29sZWFuLmlzRW1wdHkoKSkgewotICAgICAgICBpc0Jvb2xl
YW4ucmVzZXJ2ZSg4KTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDg7ICsraSkK
LSAgICAgICAgICAgIGlzQm9vbGVhbi5pbnNlcnQoaXNCb29sZWFuX2FycmF5W2ldKTsKKyAgICBR
VGVzdDo6YWRkQ29sdW1uPFFTY3JpcHRWYWx1ZT4oInZhbHVlIik7CisgICAgUVRlc3Q6OmFkZENv
bHVtbjxib29sPigiZXhwZWN0ZWQiKTsKKyAgICBpZiAobV9lbmdpbmUpCisgICAgICAgIGRlbGV0
ZSBtX2VuZ2luZTsKKyAgICBtX2VuZ2luZSA9IG5ldyBRU2NyaXB0RW5naW5lKCk7CisgICAgUVNl
dDxRU3RyaW5nPiBleHBlY3RlZFZhbHVlOworICAgIGV4cGVjdGVkVmFsdWUucmVzZXJ2ZSg4KTsK
KyAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCA4OyArK2kpCisgICAgICAgIGV4cGVjdGVkVmFsdWUu
aW5zZXJ0KGlzQm9vbGVhbl9hcnJheVtpXSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMTM1
OyArK2kpIHsKKyAgICAgICAgUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPiB0ZXN0Y2FzZSA9
IGluaXRTY3JpcHRWYWx1ZXMoaSk7CisgICAgICAgIFFUZXN0OjpuZXdSb3codGVzdGNhc2UuZmly
c3QudG9Bc2NpaSgpLmNvbnN0RGF0YSgpKSA8PCB0ZXN0Y2FzZS5zZWNvbmQgPDwgZXhwZWN0ZWRW
YWx1ZS5jb250YWlucyh0ZXN0Y2FzZS5maXJzdCk7CiAgICAgfQotICAgIG5ld1JvdyhleHByKSA8
PCBpc0Jvb2xlYW4uY29udGFpbnMoZXhwcik7CiB9CiAKLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6
aXNCb29sZWFuX3Rlc3QoY29uc3QgY2hhciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCit2
b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzQm9vbGVhbigpCiB7CisgICAgUUZFVENIKFFTY3JpcHRW
YWx1ZSwgdmFsdWUpOwogICAgIFFGRVRDSChib29sLCBleHBlY3RlZCk7CiAgICAgUUNPTVBBUkUo
dmFsdWUuaXNCb29sZWFuKCksIGV4cGVjdGVkKTsKICAgICBRQ09NUEFSRSh2YWx1ZS5pc0Jvb2xl
YW4oKSwgZXhwZWN0ZWQpOwogfQogCi1ERUZJTkVfVEVTVF9GVU5DVElPTihpc0Jvb2xlYW4pCi0K
LQotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppc051bWJlcl9pbml0RGF0YSgpCi17Ci0gICAgUVRl
c3Q6OmFkZENvbHVtbjxib29sPigiZXhwZWN0ZWQiKTsKLSAgICBpbml0U2NyaXB0VmFsdWVzKCk7
Ci19Ci0KLXN0YXRpYyBRU3RyaW5nIGlzTnVtYmVyX2FycmF5W10gPSB7CitzdGF0aWMgY29uc3Qg
UVN0cmluZyBpc051bWJlcl9hcnJheVtdID0gewogICAgICJRU2NyaXB0VmFsdWUoaW50KDEyMikp
IiwKICAgICAiUVNjcmlwdFZhbHVlKHVpbnQoMTI0KSkiLAogICAgICJRU2NyaXB0VmFsdWUoMCki
LApAQCAtMzA4LDYgKzI5OSw3IEBAIHN0YXRpYyBRU3RyaW5nIGlzTnVtYmVyX2FycmF5W10gPSB7
CiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIHFRTmFOKCkpIiwKICAgICAiUVNjcmlwdFZhbHVl
KGVuZ2luZSwgcUluZigpKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShlbmdpbmUsIC1xSW5mKCkpIiwK
KyAgICAiZW5naW5lLT5ldmFsdWF0ZShcImEgPSBuZXcgT2JqZWN0KCk7IGEuZm9vID0gMjI7IGEu
Zm9vXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIjEyMlwiKSIsCiAgICAgImVuZ2luZS0+
ZXZhbHVhdGUoXCIxMjRcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiMFwiKSIsCkBAIC0z
MjIsMzQgKzMxNCwzMiBAQCBzdGF0aWMgUVN0cmluZyBpc051bWJlcl9hcnJheVtdID0gewogICAg
ICJlbmdpbmUtPmV2YWx1YXRlKFwiSW5maW5pdHlcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRl
KFwiLUluZmluaXR5XCIpIn07CiAKLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNOdW1iZXJfbWFr
ZURhdGEoY29uc3QgY2hhciogZXhwcikKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNOdW1iZXJf
ZGF0YSgpCiB7Ci0gICAgc3RhdGljIFFTZXQ8UVN0cmluZz4gaXNOdW1iZXI7Ci0gICAgaWYgKGlz
TnVtYmVyLmlzRW1wdHkoKSkgewotICAgICAgICBpc051bWJlci5yZXNlcnZlKDU1KTsKLSAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDU1OyArK2kpCi0gICAgICAgICAgICBpc051bWJl
ci5pbnNlcnQoaXNOdW1iZXJfYXJyYXlbaV0pOworICAgIFFUZXN0OjphZGRDb2x1bW48UVNjcmlw
dFZhbHVlPigidmFsdWUiKTsKKyAgICBRVGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJleHBlY3RlZCIp
OworICAgIGlmIChtX2VuZ2luZSkKKyAgICAgICAgZGVsZXRlIG1fZW5naW5lOworICAgIG1fZW5n
aW5lID0gbmV3IFFTY3JpcHRFbmdpbmUoKTsKKyAgICBRU2V0PFFTdHJpbmc+IGV4cGVjdGVkVmFs
dWU7CisgICAgZXhwZWN0ZWRWYWx1ZS5yZXNlcnZlKDU2KTsKKyAgICBmb3IgKHVpbnQgaSA9IDA7
IGkgPCA1NjsgKytpKQorICAgICAgICBleHBlY3RlZFZhbHVlLmluc2VydChpc051bWJlcl9hcnJh
eVtpXSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMTM1OyArK2kpIHsKKyAgICAgICAgUVBh
aXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPiB0ZXN0Y2FzZSA9IGluaXRTY3JpcHRWYWx1ZXMoaSk7
CisgICAgICAgIFFUZXN0OjpuZXdSb3codGVzdGNhc2UuZmlyc3QudG9Bc2NpaSgpLmNvbnN0RGF0
YSgpKSA8PCB0ZXN0Y2FzZS5zZWNvbmQgPDwgZXhwZWN0ZWRWYWx1ZS5jb250YWlucyh0ZXN0Y2Fz
ZS5maXJzdCk7CiAgICAgfQotICAgIG5ld1JvdyhleHByKSA8PCBpc051bWJlci5jb250YWlucyhl
eHByKTsKIH0KIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppc051bWJlcl90ZXN0KGNvbnN0IGNo
YXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpp
c051bWJlcigpCiB7CisgICAgUUZFVENIKFFTY3JpcHRWYWx1ZSwgdmFsdWUpOwogICAgIFFGRVRD
SChib29sLCBleHBlY3RlZCk7CiAgICAgUUNPTVBBUkUodmFsdWUuaXNOdW1iZXIoKSwgZXhwZWN0
ZWQpOwogICAgIFFDT01QQVJFKHZhbHVlLmlzTnVtYmVyKCksIGV4cGVjdGVkKTsKIH0KIAotREVG
SU5FX1RFU1RfRlVOQ1RJT04oaXNOdW1iZXIpCi0KLQotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpp
c0Z1bmN0aW9uX2luaXREYXRhKCkKLXsKLSAgICBRVGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJleHBl
Y3RlZCIpOwotICAgIGluaXRTY3JpcHRWYWx1ZXMoKTsKLX0KLQotc3RhdGljIFFTdHJpbmcgaXNG
dW5jdGlvbl9hcnJheVtdID0geworc3RhdGljIGNvbnN0IFFTdHJpbmcgaXNGdW5jdGlvbl9hcnJh
eVtdID0gewogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiRnVuY3Rpb24ucHJvdG90eXBlXCIpIiwK
ICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIk9iamVjdFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVh
dGUoXCJBcnJheVwiKSIsCkBAIC0zNTcsNzAgKzM0Nyw2NyBAQCBzdGF0aWMgUVN0cmluZyBpc0Z1
bmN0aW9uX2FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJGdW5jdGlvblwiKSIs
CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAxOyB9KVwiKSIs
CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAnY2lhbyc7IH0p
XCIpIiwKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVy
cm9yKCdmb28nKTsgfSlcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIikifTsK
IAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppc0Z1bmN0aW9uX21ha2VEYXRhKGNvbnN0IGNoYXIq
IGV4cHIpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzRnVuY3Rpb25fZGF0YSgpCiB7Ci0gICAg
c3RhdGljIFFTZXQ8UVN0cmluZz4gaXNGdW5jdGlvbjsKLSAgICBpZiAoaXNGdW5jdGlvbi5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgaXNGdW5jdGlvbi5yZXNlcnZlKDgpOwotICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgODsgKytpKQotICAgICAgICAgICAgaXNGdW5jdGlvbi5pbnNlcnQo
aXNGdW5jdGlvbl9hcnJheVtpXSk7CisgICAgUVRlc3Q6OmFkZENvbHVtbjxRU2NyaXB0VmFsdWU+
KCJ2YWx1ZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48Ym9vbD4oImV4cGVjdGVkIik7CisgICAg
aWYgKG1fZW5naW5lKQorICAgICAgICBkZWxldGUgbV9lbmdpbmU7CisgICAgbV9lbmdpbmUgPSBu
ZXcgUVNjcmlwdEVuZ2luZSgpOworICAgIFFTZXQ8UVN0cmluZz4gZXhwZWN0ZWRWYWx1ZTsKKyAg
ICBleHBlY3RlZFZhbHVlLnJlc2VydmUoOSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgOTsg
KytpKQorICAgICAgICBleHBlY3RlZFZhbHVlLmluc2VydChpc0Z1bmN0aW9uX2FycmF5W2ldKTsK
KyAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCAxMzU7ICsraSkgeworICAgICAgICBRUGFpcjxRU3Ry
aW5nLCBRU2NyaXB0VmFsdWU+IHRlc3RjYXNlID0gaW5pdFNjcmlwdFZhbHVlcyhpKTsKKyAgICAg
ICAgUVRlc3Q6Om5ld1Jvdyh0ZXN0Y2FzZS5maXJzdC50b0FzY2lpKCkuY29uc3REYXRhKCkpIDw8
IHRlc3RjYXNlLnNlY29uZCA8PCBleHBlY3RlZFZhbHVlLmNvbnRhaW5zKHRlc3RjYXNlLmZpcnN0
KTsKICAgICB9Ci0gICAgbmV3Um93KGV4cHIpIDw8IGlzRnVuY3Rpb24uY29udGFpbnMoZXhwcik7
CiB9CiAKLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNGdW5jdGlvbl90ZXN0KGNvbnN0IGNoYXIq
LCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppc0Z1
bmN0aW9uKCkKIHsKKyAgICBRRkVUQ0goUVNjcmlwdFZhbHVlLCB2YWx1ZSk7CiAgICAgUUZFVENI
KGJvb2wsIGV4cGVjdGVkKTsKICAgICBRQ09NUEFSRSh2YWx1ZS5pc0Z1bmN0aW9uKCksIGV4cGVj
dGVkKTsKICAgICBRQ09NUEFSRSh2YWx1ZS5pc0Z1bmN0aW9uKCksIGV4cGVjdGVkKTsKIH0KIAot
REVGSU5FX1RFU1RfRlVOQ1RJT04oaXNGdW5jdGlvbikKLQotCi12b2lkIHRzdF9RU2NyaXB0VmFs
dWU6OmlzTnVsbF9pbml0RGF0YSgpCi17Ci0gICAgUVRlc3Q6OmFkZENvbHVtbjxib29sPigiZXhw
ZWN0ZWQiKTsKLSAgICBpbml0U2NyaXB0VmFsdWVzKCk7Ci19Ci0KLXN0YXRpYyBRU3RyaW5nIGlz
TnVsbF9hcnJheVtdID0geworc3RhdGljIGNvbnN0IFFTdHJpbmcgaXNOdWxsX2FycmF5W10gPSB7
CiAgICAgIlFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkiLAogICAgICJRU2Ny
aXB0VmFsdWUoMCwgUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpIiwKICAgICAiUVNjcmlwdFZhbHVl
KGVuZ2luZSwgUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0
ZShcIm51bGxcIikiLAogICAgICJlbmdpbmUtPm51bGxWYWx1ZSgpIn07CiAKLXZvaWQgdHN0X1FT
Y3JpcHRWYWx1ZTo6aXNOdWxsX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpCit2b2lkIHRzdF9R
U2NyaXB0VmFsdWU6OmlzTnVsbF9kYXRhKCkKIHsKLSAgICBzdGF0aWMgUVNldDxRU3RyaW5nPiBp
c051bGw7Ci0gICAgaWYgKGlzTnVsbC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaXNOdWxsLnJlc2Vy
dmUoNSk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCA1OyArK2kpCi0gICAgICAg
ICAgICBpc051bGwuaW5zZXJ0KGlzTnVsbF9hcnJheVtpXSk7CisgICAgUVRlc3Q6OmFkZENvbHVt
bjxRU2NyaXB0VmFsdWU+KCJ2YWx1ZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48Ym9vbD4oImV4
cGVjdGVkIik7CisgICAgaWYgKG1fZW5naW5lKQorICAgICAgICBkZWxldGUgbV9lbmdpbmU7Cisg
ICAgbV9lbmdpbmUgPSBuZXcgUVNjcmlwdEVuZ2luZSgpOworICAgIFFTZXQ8UVN0cmluZz4gZXhw
ZWN0ZWRWYWx1ZTsKKyAgICBleHBlY3RlZFZhbHVlLnJlc2VydmUoNSk7CisgICAgZm9yICh1aW50
IGkgPSAwOyBpIDwgNTsgKytpKQorICAgICAgICBleHBlY3RlZFZhbHVlLmluc2VydChpc051bGxf
YXJyYXlbaV0pOworICAgIGZvciAodWludCBpID0gMDsgaSA8IDEzNTsgKytpKSB7CisgICAgICAg
IFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4gdGVzdGNhc2UgPSBpbml0U2NyaXB0VmFsdWVz
KGkpOworICAgICAgICBRVGVzdDo6bmV3Um93KHRlc3RjYXNlLmZpcnN0LnRvQXNjaWkoKS5jb25z
dERhdGEoKSkgPDwgdGVzdGNhc2Uuc2Vjb25kIDw8IGV4cGVjdGVkVmFsdWUuY29udGFpbnModGVz
dGNhc2UuZmlyc3QpOwogICAgIH0KLSAgICBuZXdSb3coZXhwcikgPDwgaXNOdWxsLmNvbnRhaW5z
KGV4cHIpOwogfQogCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzTnVsbF90ZXN0KGNvbnN0IGNo
YXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpp
c051bGwoKQogeworICAgIFFGRVRDSChRU2NyaXB0VmFsdWUsIHZhbHVlKTsKICAgICBRRkVUQ0go
Ym9vbCwgZXhwZWN0ZWQpOwogICAgIFFDT01QQVJFKHZhbHVlLmlzTnVsbCgpLCBleHBlY3RlZCk7
CiAgICAgUUNPTVBBUkUodmFsdWUuaXNOdWxsKCksIGV4cGVjdGVkKTsKIH0KIAotREVGSU5FX1RF
U1RfRlVOQ1RJT04oaXNOdWxsKQotCi0KLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNTdHJpbmdf
aW5pdERhdGEoKQotewotICAgIFFUZXN0OjphZGRDb2x1bW48Ym9vbD4oImV4cGVjdGVkIik7Ci0g
ICAgaW5pdFNjcmlwdFZhbHVlcygpOwotfQotCi1zdGF0aWMgUVN0cmluZyBpc1N0cmluZ19hcnJh
eVtdID0geworc3RhdGljIGNvbnN0IFFTdHJpbmcgaXNTdHJpbmdfYXJyYXlbXSA9IHsKICAgICAi
UVNjcmlwdFZhbHVlKFwiTmFOXCIpIiwKICAgICAiUVNjcmlwdFZhbHVlKFwiSW5maW5pdHlcIiki
LAogICAgICJRU2NyaXB0VmFsdWUoXCItSW5maW5pdHlcIikiLApAQCAtNDU3LDM0ICs0NDQsMzIg
QEAgc3RhdGljIFFTdHJpbmcgaXNTdHJpbmdfYXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFs
dWF0ZShcIicxMjMnXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicxMi40J1wiKSJ9Owog
Ci12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzU3RyaW5nX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4
cHIpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzU3RyaW5nX2RhdGEoKQogewotICAgIHN0YXRp
YyBRU2V0PFFTdHJpbmc+IGlzU3RyaW5nOwotICAgIGlmIChpc1N0cmluZy5pc0VtcHR5KCkpIHsK
LSAgICAgICAgaXNTdHJpbmcucmVzZXJ2ZSgzNSk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCAzNTsgKytpKQotICAgICAgICAgICAgaXNTdHJpbmcuaW5zZXJ0KGlzU3RyaW5nX2Fy
cmF5W2ldKTsKKyAgICBRVGVzdDo6YWRkQ29sdW1uPFFTY3JpcHRWYWx1ZT4oInZhbHVlIik7Cisg
ICAgUVRlc3Q6OmFkZENvbHVtbjxib29sPigiZXhwZWN0ZWQiKTsKKyAgICBpZiAobV9lbmdpbmUp
CisgICAgICAgIGRlbGV0ZSBtX2VuZ2luZTsKKyAgICBtX2VuZ2luZSA9IG5ldyBRU2NyaXB0RW5n
aW5lKCk7CisgICAgUVNldDxRU3RyaW5nPiBleHBlY3RlZFZhbHVlOworICAgIGV4cGVjdGVkVmFs
dWUucmVzZXJ2ZSgzNSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMzU7ICsraSkKKyAgICAg
ICAgZXhwZWN0ZWRWYWx1ZS5pbnNlcnQoaXNTdHJpbmdfYXJyYXlbaV0pOworICAgIGZvciAodWlu
dCBpID0gMDsgaSA8IDEzNTsgKytpKSB7CisgICAgICAgIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRW
YWx1ZT4gdGVzdGNhc2UgPSBpbml0U2NyaXB0VmFsdWVzKGkpOworICAgICAgICBRVGVzdDo6bmV3
Um93KHRlc3RjYXNlLmZpcnN0LnRvQXNjaWkoKS5jb25zdERhdGEoKSkgPDwgdGVzdGNhc2Uuc2Vj
b25kIDw8IGV4cGVjdGVkVmFsdWUuY29udGFpbnModGVzdGNhc2UuZmlyc3QpOwogICAgIH0KLSAg
ICBuZXdSb3coZXhwcikgPDwgaXNTdHJpbmcuY29udGFpbnMoZXhwcik7CiB9CiAKLXZvaWQgdHN0
X1FTY3JpcHRWYWx1ZTo6aXNTdHJpbmdfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZh
bHVlJiB2YWx1ZSkKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNTdHJpbmcoKQogeworICAgIFFG
RVRDSChRU2NyaXB0VmFsdWUsIHZhbHVlKTsKICAgICBRRkVUQ0goYm9vbCwgZXhwZWN0ZWQpOwog
ICAgIFFDT01QQVJFKHZhbHVlLmlzU3RyaW5nKCksIGV4cGVjdGVkKTsKICAgICBRQ09NUEFSRSh2
YWx1ZS5pc1N0cmluZygpLCBleHBlY3RlZCk7CiB9CiAKLURFRklORV9URVNUX0ZVTkNUSU9OKGlz
U3RyaW5nKQotCi0KLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNVbmRlZmluZWRfaW5pdERhdGEo
KQotewotICAgIFFUZXN0OjphZGRDb2x1bW48Ym9vbD4oImV4cGVjdGVkIik7Ci0gICAgaW5pdFNj
cmlwdFZhbHVlcygpOwotfQotCi1zdGF0aWMgUVN0cmluZyBpc1VuZGVmaW5lZF9hcnJheVtdID0g
eworc3RhdGljIGNvbnN0IFFTdHJpbmcgaXNVbmRlZmluZWRfYXJyYXlbXSA9IHsKICAgICAiUVNj
cmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwKICAgICAiUVNjcmlwdFZh
bHVlKDAsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwKICAgICAiUVNjcmlwdFZhbHVl
KGVuZ2luZSwgUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSkiLApAQCAtNDkyLDM3ICs0Nzcs
MzUgQEAgc3RhdGljIFFTdHJpbmcgaXNVbmRlZmluZWRfYXJyYXlbXSA9IHsKICAgICAiZW5naW5l
LT5ldmFsdWF0ZShcInVuZGVmaW5lZFwiKSIsCiAgICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUo
KSJ9OwogCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzVW5kZWZpbmVkX21ha2VEYXRhKGNvbnN0
IGNoYXIqIGV4cHIpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzVW5kZWZpbmVkX2RhdGEoKQog
ewotICAgIHN0YXRpYyBRU2V0PFFTdHJpbmc+IGlzVW5kZWZpbmVkOwotICAgIGlmIChpc1VuZGVm
aW5lZC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaXNVbmRlZmluZWQucmVzZXJ2ZSg2KTsKLSAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDY7ICsraSkKLSAgICAgICAgICAgIGlzVW5kZWZp
bmVkLmluc2VydChpc1VuZGVmaW5lZF9hcnJheVtpXSk7CisgICAgUVRlc3Q6OmFkZENvbHVtbjxR
U2NyaXB0VmFsdWU+KCJ2YWx1ZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48Ym9vbD4oImV4cGVj
dGVkIik7CisgICAgaWYgKG1fZW5naW5lKQorICAgICAgICBkZWxldGUgbV9lbmdpbmU7CisgICAg
bV9lbmdpbmUgPSBuZXcgUVNjcmlwdEVuZ2luZSgpOworICAgIFFTZXQ8UVN0cmluZz4gZXhwZWN0
ZWRWYWx1ZTsKKyAgICBleHBlY3RlZFZhbHVlLnJlc2VydmUoNik7CisgICAgZm9yICh1aW50IGkg
PSAwOyBpIDwgNjsgKytpKQorICAgICAgICBleHBlY3RlZFZhbHVlLmluc2VydChpc1VuZGVmaW5l
ZF9hcnJheVtpXSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMTM1OyArK2kpIHsKKyAgICAg
ICAgUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPiB0ZXN0Y2FzZSA9IGluaXRTY3JpcHRWYWx1
ZXMoaSk7CisgICAgICAgIFFUZXN0OjpuZXdSb3codGVzdGNhc2UuZmlyc3QudG9Bc2NpaSgpLmNv
bnN0RGF0YSgpKSA8PCB0ZXN0Y2FzZS5zZWNvbmQgPDwgZXhwZWN0ZWRWYWx1ZS5jb250YWlucyh0
ZXN0Y2FzZS5maXJzdCk7CiAgICAgfQotICAgIG5ld1JvdyhleHByKSA8PCBpc1VuZGVmaW5lZC5j
b250YWlucyhleHByKTsKIH0KIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppc1VuZGVmaW5lZF90
ZXN0KGNvbnN0IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQordm9pZCB0c3RfUVNj
cmlwdFZhbHVlOjppc1VuZGVmaW5lZCgpCiB7CisgICAgUUZFVENIKFFTY3JpcHRWYWx1ZSwgdmFs
dWUpOwogICAgIFFGRVRDSChib29sLCBleHBlY3RlZCk7CiAgICAgUUNPTVBBUkUodmFsdWUuaXNV
bmRlZmluZWQoKSwgZXhwZWN0ZWQpOwogICAgIFFDT01QQVJFKHZhbHVlLmlzVW5kZWZpbmVkKCks
IGV4cGVjdGVkKTsKIH0KIAotREVGSU5FX1RFU1RfRlVOQ1RJT04oaXNVbmRlZmluZWQpCiAKIAog
Ci0KLQotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppc09iamVjdF9pbml0RGF0YSgpCi17Ci0gICAg
UVRlc3Q6OmFkZENvbHVtbjxib29sPigiZXhwZWN0ZWQiKTsKLSAgICBpbml0U2NyaXB0VmFsdWVz
KCk7Ci19Ci0KLXN0YXRpYyBRU3RyaW5nIGlzT2JqZWN0X2FycmF5W10gPSB7CitzdGF0aWMgY29u
c3QgUVN0cmluZyBpc09iamVjdF9hcnJheVtdID0gewogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwi
W11cIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiT2JqZWN0LnByb3RvdHlwZVwiKSIsCiAg
ICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJEYXRlLnByb3RvdHlwZVwiKSIsCkBAIC01MzUsMzMgKzUx
OCwxMDUgQEAgc3RhdGljIFFTdHJpbmcgaXNPYmplY3RfYXJyYXlbXSA9IHsKICAgICAiZW5naW5l
LT5ldmFsdWF0ZShcIkZ1bmN0aW9uXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5j
dGlvbigpIHsgcmV0dXJuIDE7IH0pXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5j
dGlvbigpIHsgcmV0dXJuICdjaWFvJzsgfSlcIikiLAotICAgICJlbmdpbmUtPmV2YWx1YXRlKFwi
KGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ2ZvbycgfSlcIikiLAorICAgICJlbmdpbmUt
PmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ2ZvbycpOyB9KVwiKSIs
CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIvZm9vL1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVh
dGUoXCJuZXcgT2JqZWN0KClcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IEFycmF5
KClcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IEVycm9yKClcIikiLAotICAgICJl
bmdpbmUtPmV2YWx1YXRlKFwiYSA9IG5ldyBPYmplY3QoIGEuZm9vID0gMjI7IGEuZm9vXCIpIiwK
ICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIlVuZGVmaW5lZFwiKSIsCiAgICAgImVuZ2luZS0+ZXZh
bHVhdGUoXCJOdWxsXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIlRydWVcIikiLAotICAg
ICJlbmdpbmUtPmV2YWx1YXRlKFwiRmFsc2VcIikifTsKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShc
IkZhbHNlXCIpIiwKKyAgICAiZW5naW5lLT5uZXdPYmplY3QoKSIsCisgICAgImVuZ2luZS0+bmV3
QXJyYXkoKSIsCisgICAgImVuZ2luZS0+bmV3QXJyYXkoMTApIn07CiAKLXZvaWQgdHN0X1FTY3Jp
cHRWYWx1ZTo6aXNPYmplY3RfbWFrZURhdGEoY29uc3QgY2hhciogZXhwcikKK3ZvaWQgdHN0X1FT
Y3JpcHRWYWx1ZTo6aXNPYmplY3RfZGF0YSgpCiB7Ci0gICAgc3RhdGljIFFTZXQ8UVN0cmluZz4g
aXNPYmplY3Q7Ci0gICAgaWYgKGlzT2JqZWN0LmlzRW1wdHkoKSkgewotICAgICAgICBpc09iamVj
dC5yZXNlcnZlKDIyKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDIyOyArK2kp
Ci0gICAgICAgICAgICBpc09iamVjdC5pbnNlcnQoaXNPYmplY3RfYXJyYXlbaV0pOworICAgIFFU
ZXN0OjphZGRDb2x1bW48UVNjcmlwdFZhbHVlPigidmFsdWUiKTsKKyAgICBRVGVzdDo6YWRkQ29s
dW1uPGJvb2w+KCJleHBlY3RlZCIpOworICAgIGlmIChtX2VuZ2luZSkKKyAgICAgICAgZGVsZXRl
IG1fZW5naW5lOworICAgIG1fZW5naW5lID0gbmV3IFFTY3JpcHRFbmdpbmUoKTsKKyAgICBRU2V0
PFFTdHJpbmc+IGV4cGVjdGVkVmFsdWU7CisgICAgZXhwZWN0ZWRWYWx1ZS5yZXNlcnZlKDI0KTsK
KyAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCAyNDsgKytpKQorICAgICAgICBleHBlY3RlZFZhbHVl
Lmluc2VydChpc09iamVjdF9hcnJheVtpXSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMTM1
OyArK2kpIHsKKyAgICAgICAgUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPiB0ZXN0Y2FzZSA9
IGluaXRTY3JpcHRWYWx1ZXMoaSk7CisgICAgICAgIFFUZXN0OjpuZXdSb3codGVzdGNhc2UuZmly
c3QudG9Bc2NpaSgpLmNvbnN0RGF0YSgpKSA8PCB0ZXN0Y2FzZS5zZWNvbmQgPDwgZXhwZWN0ZWRW
YWx1ZS5jb250YWlucyh0ZXN0Y2FzZS5maXJzdCk7CiAgICAgfQotICAgIG5ld1JvdyhleHByKSA8
PCBpc09iamVjdC5jb250YWlucyhleHByKTsKIH0KIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpp
c09iamVjdF90ZXN0KGNvbnN0IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKQordm9p
ZCB0c3RfUVNjcmlwdFZhbHVlOjppc09iamVjdCgpCiB7CisgICAgUUZFVENIKFFTY3JpcHRWYWx1
ZSwgdmFsdWUpOwogICAgIFFGRVRDSChib29sLCBleHBlY3RlZCk7CiAgICAgUUNPTVBBUkUodmFs
dWUuaXNPYmplY3QoKSwgZXhwZWN0ZWQpOwogICAgIFFDT01QQVJFKHZhbHVlLmlzT2JqZWN0KCks
IGV4cGVjdGVkKTsKIH0KIAotREVGSU5FX1RFU1RfRlVOQ1RJT04oaXNPYmplY3QpCitzdGF0aWMg
Y29uc3QgUVN0cmluZyBpc0FycmF5X2FycmF5W10gPSB7CisgICAgImVuZ2luZS0+ZXZhbHVhdGUo
XCJbXVwiKSIsCisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJBcnJheS5wcm90b3R5cGVcIikiLAor
ICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IEFycmF5KClcIikiLAorICAgICJlbmdpbmUtPm5l
d0FycmF5KCkiLAorICAgICJlbmdpbmUtPm5ld0FycmF5KDEwKSJ9OworCit2b2lkIHRzdF9RU2Ny
aXB0VmFsdWU6OmlzQXJyYXlfZGF0YSgpCit7CisgICAgUVRlc3Q6OmFkZENvbHVtbjxRU2NyaXB0
VmFsdWU+KCJ2YWx1ZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48Ym9vbD4oImV4cGVjdGVkIik7
CisgICAgaWYgKG1fZW5naW5lKQorICAgICAgICBkZWxldGUgbV9lbmdpbmU7CisgICAgbV9lbmdp
bmUgPSBuZXcgUVNjcmlwdEVuZ2luZSgpOworICAgIFFTZXQ8UVN0cmluZz4gZXhwZWN0ZWRWYWx1
ZTsKKyAgICBleHBlY3RlZFZhbHVlLnJlc2VydmUoNSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBp
IDwgNTsgKytpKQorICAgICAgICBleHBlY3RlZFZhbHVlLmluc2VydChpc0FycmF5X2FycmF5W2ld
KTsKKyAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCAxMzU7ICsraSkgeworICAgICAgICBRUGFpcjxR
U3RyaW5nLCBRU2NyaXB0VmFsdWU+IHRlc3RjYXNlID0gaW5pdFNjcmlwdFZhbHVlcyhpKTsKKyAg
ICAgICAgUVRlc3Q6Om5ld1Jvdyh0ZXN0Y2FzZS5maXJzdC50b0FzY2lpKCkuY29uc3REYXRhKCkp
IDw8IHRlc3RjYXNlLnNlY29uZCA8PCBleHBlY3RlZFZhbHVlLmNvbnRhaW5zKHRlc3RjYXNlLmZp
cnN0KTsKKyAgICB9Cit9CisKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNBcnJheSgpCit7Cisg
ICAgUUZFVENIKFFTY3JpcHRWYWx1ZSwgdmFsdWUpOworICAgIFFGRVRDSChib29sLCBleHBlY3Rl
ZCk7CisgICAgUUNPTVBBUkUodmFsdWUuaXNBcnJheSgpLCBleHBlY3RlZCk7CisgICAgUUNPTVBB
UkUodmFsdWUuaXNBcnJheSgpLCBleHBlY3RlZCk7Cit9CisKK3N0YXRpYyBjb25zdCBRU3RyaW5n
IGlzRXJyb3JfYXJyYXlbXSA9IHsKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShcIkVycm9yLnByb3Rv
dHlwZVwiKSIsCisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgRXJyb3IoKVwiKSIsCisgICAg
ImVuZ2luZS0+ZXZhbHVhdGUoXCJVbmRlZmluZWRcIikiLAorICAgICJlbmdpbmUtPmV2YWx1YXRl
KFwiTnVsbFwiKSIsCisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJUcnVlXCIpIiwKKyAgICAiZW5n
aW5lLT5ldmFsdWF0ZShcIkZhbHNlXCIpIn07CisKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNF
cnJvcl9kYXRhKCkKK3sKKyAgICBRVGVzdDo6YWRkQ29sdW1uPFFTY3JpcHRWYWx1ZT4oInZhbHVl
Iik7CisgICAgUVRlc3Q6OmFkZENvbHVtbjxib29sPigiZXhwZWN0ZWQiKTsKKyAgICBpZiAobV9l
bmdpbmUpCisgICAgICAgIGRlbGV0ZSBtX2VuZ2luZTsKKyAgICBtX2VuZ2luZSA9IG5ldyBRU2Ny
aXB0RW5naW5lKCk7CisgICAgUVNldDxRU3RyaW5nPiBleHBlY3RlZFZhbHVlOworICAgIGV4cGVj
dGVkVmFsdWUucmVzZXJ2ZSg2KTsKKyAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCA2OyArK2kpCisg
ICAgICAgIGV4cGVjdGVkVmFsdWUuaW5zZXJ0KGlzRXJyb3JfYXJyYXlbaV0pOworICAgIGZvciAo
dWludCBpID0gMDsgaSA8IDEzNTsgKytpKSB7CisgICAgICAgIFFQYWlyPFFTdHJpbmcsIFFTY3Jp
cHRWYWx1ZT4gdGVzdGNhc2UgPSBpbml0U2NyaXB0VmFsdWVzKGkpOworICAgICAgICBRVGVzdDo6
bmV3Um93KHRlc3RjYXNlLmZpcnN0LnRvQXNjaWkoKS5jb25zdERhdGEoKSkgPDwgdGVzdGNhc2Uu
c2Vjb25kIDw8IGV4cGVjdGVkVmFsdWUuY29udGFpbnModGVzdGNhc2UuZmlyc3QpOworICAgIH0K
K30KKwordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjppc0Vycm9yKCkKK3sKKyAgICBRRkVUQ0goUVNj
cmlwdFZhbHVlLCB2YWx1ZSk7CisgICAgUUZFVENIKGJvb2wsIGV4cGVjdGVkKTsKKyAgICBRQ09N
UEFSRSh2YWx1ZS5pc0Vycm9yKCksIGV4cGVjdGVkKTsKKyAgICBRQ09NUEFSRSh2YWx1ZS5pc0Vy
cm9yKCksIGV4cGVjdGVkKTsKK30KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3Rz
L3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZF90b3R5cGUuY3BwIGIvSmF2
YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJh
dGVkX3RvdHlwZS5jcHAKaW5kZXggYTk0NmFlZi4uZWFhNWQxNCAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVk
X3RvdHlwZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3Rz
dF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkX3RvdHlwZS5jcHAKQEAgLTIzLDE1ICsyMyw3IEBACiAK
ICNpbmNsdWRlICJ0c3RfcXNjcmlwdHZhbHVlLmgiCiAKLQotCi12b2lkIHRzdF9RU2NyaXB0VmFs
dWU6OnRvU3RyaW5nX2luaXREYXRhKCkKLXsKLSAgICBRVGVzdDo6YWRkQ29sdW1uPFFTdHJpbmc+
KCJleHBlY3RlZCIpOwotICAgIGluaXRTY3JpcHRWYWx1ZXMoKTsKLX0KLQotc3RhdGljIFFTdHJp
bmcgdG9TdHJpbmdfdGFnQXJyYXlbXSA9IHsKK3N0YXRpYyBjb25zdCBRU3RyaW5nIHRvU3RyaW5n
X3RhZ0FycmF5W10gPSB7CiAgICAgIlFTY3JpcHRWYWx1ZSgpIiwKICAgICAiUVNjcmlwdFZhbHVl
KFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwKICAgICAiUVNjcmlwdFZhbHVlKFFTY3Jp
cHRWYWx1ZTo6TnVsbFZhbHVlKSIsCkBAIC0xMzAsMTIgKzEyMiwxMiBAQCBzdGF0aWMgUVN0cmlu
ZyB0b1N0cmluZ190YWdBcnJheVtdID0gewogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiRnVuY3Rp
b25cIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsg
fSlcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gJ2Np
YW8nOyB9KVwiKSIsCi0gICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHRocm93
IG5ldyBFcnJvcignZm9vJyB9KVwiKSIsCisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rp
b24oKSB7IHRocm93IG5ldyBFcnJvcignZm9vJyk7IH0pXCIpIiwKICAgICAiZW5naW5lLT5ldmFs
dWF0ZShcIi9mb28vXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBPYmplY3QoKVwi
KSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgQXJyYXkoKVwiKSIsCiAgICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCJuZXcgRXJyb3IoKVwiKSIsCi0gICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJh
ID0gbmV3IE9iamVjdCggYS5mb28gPSAyMjsgYS5mb29cIikiLAorICAgICJlbmdpbmUtPmV2YWx1
YXRlKFwiYSA9IG5ldyBPYmplY3QoKTsgYS5mb28gPSAyMjsgYS5mb29cIikiLAogICAgICJlbmdp
bmUtPmV2YWx1YXRlKFwiVW5kZWZpbmVkXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIk51
bGxcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiVHJ1ZVwiKSIsCkBAIC0xNjMsOSArMTU1
LDEyIEBAIHN0YXRpYyBRU3RyaW5nIHRvU3RyaW5nX3RhZ0FycmF5W10gPSB7CiAgICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCInMTIzJ1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCInMTIuNCdc
IikiLAogICAgICJlbmdpbmUtPm51bGxWYWx1ZSgpIiwKLSAgICAiZW5naW5lLT51bmRlZmluZWRW
YWx1ZSgpIn07CisgICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSIsCisgICAgImVuZ2luZS0+
bmV3T2JqZWN0KCkiLAorICAgICJlbmdpbmUtPm5ld0FycmF5KCkiLAorICAgICJlbmdpbmUtPm5l
d0FycmF5KDEwKSJ9OwogCi1zdGF0aWMgUVN0cmluZyB0b1N0cmluZ192YWx1ZUFycmF5W10gPSB7
CitzdGF0aWMgY29uc3QgUVN0cmluZyB0b1N0cmluZ192YWx1ZUFycmF5W10gPSB7CiAgICAgIiIs
ICJ1bmRlZmluZWQiLAogICAgICJudWxsIiwgInRydWUiLAogICAgICJmYWxzZSIsICIxMjIiLApA
QCAtMjE1LDkgKzIxMCw5IEBAIHN0YXRpYyBRU3RyaW5nIHRvU3RyaW5nX3ZhbHVlQXJyYXlbXSA9
IHsKICAgICAiZnVuY3Rpb24gT2JqZWN0KCkge1xuICAgIFtuYXRpdmUgY29kZV1cbn0iLCAiZnVu
Y3Rpb24gQXJyYXkoKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIsCiAgICAgImZ1bmN0aW9uIE51
bWJlcigpIHtcbiAgICBbbmF0aXZlIGNvZGVdXG59IiwgImZ1bmN0aW9uIEZ1bmN0aW9uKCkge1xu
ICAgIFtuYXRpdmUgY29kZV1cbn0iLAogICAgICJmdW5jdGlvbiAoKSB7IHJldHVybiAxOyB9Iiwg
ImZ1bmN0aW9uICgpIHsgcmV0dXJuICdjaWFvJzsgfSIsCi0gICAgIlN5bnRheEVycm9yOiBQYXJz
ZSBlcnJvciIsICIvZm9vLyIsCisgICAgImZ1bmN0aW9uICgpIHsgdGhyb3cgbmV3IEVycm9yKCdm
b28nKTsgfSIsICIvZm9vLyIsCiAgICAgIltvYmplY3QgT2JqZWN0XSIsICIiLAotICAgICJFcnJv
cjogVW5rbm93biBlcnJvciIsICJTeW50YXhFcnJvcjogUGFyc2UgZXJyb3IiLAorICAgICJFcnJv
cjogVW5rbm93biBlcnJvciIsICIyMiIsCiAgICAgIlJlZmVyZW5jZUVycm9yOiBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBVbmRlZmluZWQiLCAiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFi
bGU6IE51bGwiLAogICAgICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogVHJ1
ZSIsICJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogRmFsc2UiLAogICAgICJ1
bmRlZmluZWQiLCAibnVsbCIsCkBAIC0yMzEsMzYgKzIyNiwzNiBAQCBzdGF0aWMgUVN0cmluZyB0
b1N0cmluZ192YWx1ZUFycmF5W10gPSB7CiAgICAgIi1JbmZpbml0eSIsICJjaWFvIiwKICAgICAi
IiwgIjAiLAogICAgICIxMjMiLCAiMTIuNCIsCi0gICAgIm51bGwiLCAidW5kZWZpbmVkIn07Cisg
ICAgIm51bGwiLCAidW5kZWZpbmVkIiwKKyAgICAiW29iamVjdCBPYmplY3RdIiwgIiIsCisgICAg
IiwsLCwsLCwsLCJ9OwogCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nX21ha2VEYXRh
KGNvbnN0IGNoYXIqIGV4cHIpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nX2RhdGEo
KQogewotICAgIHN0YXRpYyBRSGFzaDxRU3RyaW5nLCBRU3RyaW5nPiB0b1N0cmluZzsKLSAgICBp
ZiAodG9TdHJpbmcuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRvU3RyaW5nLnJlc2VydmUoMTMyKTsK
LSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEzMjsgKytpKQotICAgICAgICAgICAg
dG9TdHJpbmcuaW5zZXJ0KHRvU3RyaW5nX3RhZ0FycmF5W2ldLCB0b1N0cmluZ192YWx1ZUFycmF5
W2ldKTsKKyAgICBRVGVzdDo6YWRkQ29sdW1uPFFTY3JpcHRWYWx1ZT4oInZhbHVlIik7CisgICAg
UVRlc3Q6OmFkZENvbHVtbjxRU3RyaW5nPigiZXhwZWN0ZWQiKTsKKyAgICBpZiAobV9lbmdpbmUp
CisgICAgICAgIGRlbGV0ZSBtX2VuZ2luZTsKKyAgICBtX2VuZ2luZSA9IG5ldyBRU2NyaXB0RW5n
aW5lKCk7CisgICAgUUhhc2g8UVN0cmluZywgUVN0cmluZz4gZXhwZWN0ZWRWYWx1ZTsKKyAgICBl
eHBlY3RlZFZhbHVlLnJlc2VydmUoMTM1KTsKKyAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCAxMzU7
ICsraSkKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZS5pbnNlcnQodG9TdHJpbmdfdGFnQXJyYXlbaV0s
IHRvU3RyaW5nX3ZhbHVlQXJyYXlbaV0pOworICAgIGZvciAodWludCBpID0gMDsgaSA8IDEzNTsg
KytpKSB7CisgICAgICAgIFFQYWlyPFFTdHJpbmcsIFFTY3JpcHRWYWx1ZT4gdGVzdGNhc2UgPSBp
bml0U2NyaXB0VmFsdWVzKGkpOworICAgICAgICBRVGVzdDo6bmV3Um93KHRlc3RjYXNlLmZpcnN0
LnRvQXNjaWkoKS5jb25zdERhdGEoKSkgPDwgdGVzdGNhc2Uuc2Vjb25kIDw8IGV4cGVjdGVkVmFs
dWVbdGVzdGNhc2UuZmlyc3RdOwogICAgIH0KLSAgICBuZXdSb3coZXhwcikgPDwgdG9TdHJpbmcu
dmFsdWUoZXhwcik7CiB9CiAKLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdfdGVzdChj
b25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSkKK3ZvaWQgdHN0X1FTY3JpcHRW
YWx1ZTo6dG9TdHJpbmcoKQogeworICAgIFFGRVRDSChRU2NyaXB0VmFsdWUsIHZhbHVlKTsKICAg
ICBRRkVUQ0goUVN0cmluZywgZXhwZWN0ZWQpOwogICAgIFFDT01QQVJFKHZhbHVlLnRvU3RyaW5n
KCksIGV4cGVjdGVkKTsKICAgICBRQ09NUEFSRSh2YWx1ZS50b1N0cmluZygpLCBleHBlY3RlZCk7
CiB9CiAKLURFRklORV9URVNUX0ZVTkNUSU9OKHRvU3RyaW5nKQotCi0KLXZvaWQgdHN0X1FTY3Jp
cHRWYWx1ZTo6dG9OdW1iZXJfaW5pdERhdGEoKQotewotICAgIFFUZXN0OjphZGRDb2x1bW48cXNy
ZWFsPigiZXhwZWN0ZWQiKTsKLSAgICBpbml0U2NyaXB0VmFsdWVzKCk7Ci19Ci0KLXN0YXRpYyBR
U3RyaW5nIHRvTnVtYmVyX3RhZ0FycmF5W10gPSB7CitzdGF0aWMgY29uc3QgUVN0cmluZyB0b051
bWJlcl90YWdBcnJheVtdID0gewogICAgICJRU2NyaXB0VmFsdWUoKSIsCiAgICAgIlFTY3JpcHRW
YWx1ZShRU2NyaXB0VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShR
U2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkiLApAQCAtMzU5LDEyICszNTQsMTIgQEAgc3RhdGljIFFT
dHJpbmcgdG9OdW1iZXJfdGFnQXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIkZ1
bmN0aW9uXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJu
IDE7IH0pXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJu
ICdjaWFvJzsgfSlcIikiLAotICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyB0
aHJvdyBuZXcgRXJyb3IoJ2ZvbycgfSlcIikiLAorICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1
bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ2ZvbycpOyB9KVwiKSIsCiAgICAgImVuZ2luZS0+
ZXZhbHVhdGUoXCIvZm9vL1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgT2JqZWN0
KClcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IEFycmF5KClcIikiLAogICAgICJl
bmdpbmUtPmV2YWx1YXRlKFwibmV3IEVycm9yKClcIikiLAotICAgICJlbmdpbmUtPmV2YWx1YXRl
KFwiYSA9IG5ldyBPYmplY3QoIGEuZm9vID0gMjI7IGEuZm9vXCIpIiwKKyAgICAiZW5naW5lLT5l
dmFsdWF0ZShcImEgPSBuZXcgT2JqZWN0KCk7IGEuZm9vID0gMjI7IGEuZm9vXCIpIiwKICAgICAi
ZW5naW5lLT5ldmFsdWF0ZShcIlVuZGVmaW5lZFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUo
XCJOdWxsXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIlRydWVcIikiLApAQCAtMzkyLDgg
KzM4NywxMiBAQCBzdGF0aWMgUVN0cmluZyB0b051bWJlcl90YWdBcnJheVtdID0gewogICAgICJl
bmdpbmUtPmV2YWx1YXRlKFwiJzEyMydcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiJzEy
LjQnXCIpIiwKICAgICAiZW5naW5lLT5udWxsVmFsdWUoKSIsCi0gICAgImVuZ2luZS0+dW5kZWZp
bmVkVmFsdWUoKSJ9Owotc3RhdGljIHFzcmVhbCB0b051bWJlcl92YWx1ZUFycmF5W10gPSB7Cisg
ICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSIsCisgICAgImVuZ2luZS0+bmV3T2JqZWN0KCki
LAorICAgICJlbmdpbmUtPm5ld0FycmF5KCkiLAorICAgICJlbmdpbmUtPm5ld0FycmF5KDEwKSJ9
OworCitzdGF0aWMgY29uc3QgcXNyZWFsIHRvTnVtYmVyX3ZhbHVlQXJyYXlbXSA9IHsKICAgICAw
LCBxUU5hTigpLCAwLCAxLCAwLCAxMjIsIDEyNCwgMCwgMCwgMTIzLAogICAgIDYuMzY5OTk5OTk5
OTk5OTk5ZS0wOCwgLTYuMzY5OTk5OTk5OTk5OTk5ZS0wOCwgMTEyNjI0MDgyMCwgNjU1MzYsIDY1
NTM3LCBxUU5hTigpLCBxUU5hTigpLCBxSW5mKCksIHFJbmYoKSwgcVFOYU4oKSwKICAgICBxSW5m
KCksIHFJbmYoKSwgcVFOYU4oKSwgcVFOYU4oKSwgMCwgMCwgMCwgMTIzLCAxMi40LCBxUU5hTigp
LApAQCAtNDA0LDIzICs0MDMsMzEgQEAgc3RhdGljIHFzcmVhbCB0b051bWJlcl92YWx1ZUFycmF5
W10gPSB7CiAgICAgNjU1MzcsIHFRTmFOKCksIHFRTmFOKCksIHFJbmYoKSwgcUluZigpLCBxUU5h
TigpLCBxSW5mKCksIHFJbmYoKSwgcVFOYU4oKSwgcVFOYU4oKSwKICAgICAwLCAwLCAwLCAxMjMs
IDEuMjMsIDAsIHFRTmFOKCksIHFRTmFOKCksIHFRTmFOKCksIDAsCiAgICAgcVFOYU4oKSwgcVFO
YU4oKSwgcVFOYU4oKSwgcVFOYU4oKSwgcVFOYU4oKSwgcVFOYU4oKSwgcVFOYU4oKSwgcVFOYU4o
KSwgcVFOYU4oKSwgcVFOYU4oKSwKLSAgICBxUU5hTigpLCAwLCBxUU5hTigpLCBxUU5hTigpLCBx
UU5hTigpLCBxUU5hTigpLCBxUU5hTigpLCBxUU5hTigpLCBxUU5hTigpLCAwLAorICAgIHFRTmFO
KCksIDAsIHFRTmFOKCksIDIyLCBxUU5hTigpLCBxUU5hTigpLCBxUU5hTigpLCBxUU5hTigpLCBx
UU5hTigpLCAwLAogICAgIDEsIDAsIDEyMiwgMTI0LCAwLCAwLCAxMjMsIDYuMzY5OTk5OTk5OTk5
OTk5ZS0wOCwgLTYuMzY5OTk5OTk5OTk5OTk5ZS0wOCwgMTEyNjI0MDgyMCwKICAgICA2NTUzNiwg
NjU1MzcsIHFRTmFOKCksIHFJbmYoKSwgcUluZigpLCBxUU5hTigpLCAwLCAwLCAxMjMsIDEyLjQs
Ci0gICAgMCwgcVFOYU4oKX07Ci12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvTnVtYmVyX21ha2VE
YXRhKGNvbnN0IGNoYXIqIGV4cHIpCisgICAgMCwgcVFOYU4oKSwgcVFOYU4oKSwgMCwgcVFOYU4o
KX07CisKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9OdW1iZXJfZGF0YSgpCiB7Ci0gICAgc3Rh
dGljIFFIYXNoPFFTdHJpbmcsIHFzcmVhbD4gdG9OdW1iZXI7Ci0gICAgaWYgKHRvTnVtYmVyLmlz
RW1wdHkoKSkgewotICAgICAgICB0b051bWJlci5yZXNlcnZlKDEzMik7Ci0gICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCAxMzI7ICsraSkKLSAgICAgICAgICAgIHRvTnVtYmVyLmluc2Vy
dCh0b051bWJlcl90YWdBcnJheVtpXSwgdG9OdW1iZXJfdmFsdWVBcnJheVtpXSk7CisgICAgUVRl
c3Q6OmFkZENvbHVtbjxRU2NyaXB0VmFsdWU+KCJ2YWx1ZSIpOworICAgIFFUZXN0OjphZGRDb2x1
bW48cXNyZWFsPigiZXhwZWN0ZWQiKTsKKyAgICBpZiAobV9lbmdpbmUpCisgICAgICAgIGRlbGV0
ZSBtX2VuZ2luZTsKKyAgICBtX2VuZ2luZSA9IG5ldyBRU2NyaXB0RW5naW5lKCk7CisgICAgUUhh
c2g8UVN0cmluZywgcXNyZWFsPiBleHBlY3RlZFZhbHVlOworICAgIGV4cGVjdGVkVmFsdWUucmVz
ZXJ2ZSgxMzUpOworICAgIGZvciAodWludCBpID0gMDsgaSA8IDEzNTsgKytpKQorICAgICAgICBl
eHBlY3RlZFZhbHVlLmluc2VydCh0b051bWJlcl90YWdBcnJheVtpXSwgdG9OdW1iZXJfdmFsdWVB
cnJheVtpXSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMTM1OyArK2kpIHsKKyAgICAgICAg
UVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPiB0ZXN0Y2FzZSA9IGluaXRTY3JpcHRWYWx1ZXMo
aSk7CisgICAgICAgIFFUZXN0OjpuZXdSb3codGVzdGNhc2UuZmlyc3QudG9Bc2NpaSgpLmNvbnN0
RGF0YSgpKSA8PCB0ZXN0Y2FzZS5zZWNvbmQgPDwgZXhwZWN0ZWRWYWx1ZVt0ZXN0Y2FzZS5maXJz
dF07CiAgICAgfQotICAgIG5ld1JvdyhleHByKSA8PCB0b051bWJlci52YWx1ZShleHByKTsKIH0K
IAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b051bWJlcl90ZXN0KGNvbnN0IGNoYXIqLCBjb25z
dCBRU2NyaXB0VmFsdWUmIHZhbHVlKQordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b051bWJlcigp
CiB7CisgICAgUUZFVENIKFFTY3JpcHRWYWx1ZSwgdmFsdWUpOwogICAgIFFGRVRDSChxc3JlYWws
IGV4cGVjdGVkKTsKICAgICBpZiAocUlzTmFOKGV4cGVjdGVkKSkgewogICAgICAgICBRVkVSSUZZ
KHFJc05hTih2YWx1ZS50b051bWJlcigpKSk7CkBAIC00MzUsMTYgKzQ0Miw3IEBAIHZvaWQgdHN0
X1FTY3JpcHRWYWx1ZTo6dG9OdW1iZXJfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZh
bHVlJiB2YWx1ZSkKICAgICBRQ09NUEFSRSh2YWx1ZS50b051bWJlcigpLCBleHBlY3RlZCk7CiB9
CiAKLURFRklORV9URVNUX0ZVTkNUSU9OKHRvTnVtYmVyKQotCi0KLXZvaWQgdHN0X1FTY3JpcHRW
YWx1ZTo6dG9Cb29sX2luaXREYXRhKCkKLXsKLSAgICBRVGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJl
eHBlY3RlZCIpOwotICAgIGluaXRTY3JpcHRWYWx1ZXMoKTsKLX0KLQotc3RhdGljIFFTdHJpbmcg
dG9Cb29sX3RhZ0FycmF5W10gPSB7CitzdGF0aWMgY29uc3QgUVN0cmluZyB0b0Jvb2xfdGFnQXJy
YXlbXSA9IHsKICAgICAiUVNjcmlwdFZhbHVlKCkiLAogICAgICJRU2NyaXB0VmFsdWUoUVNjcmlw
dFZhbHVlOjpVbmRlZmluZWRWYWx1ZSkiLAogICAgICJRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVl
OjpOdWxsVmFsdWUpIiwKQEAgLTU0MywxMiArNTQxLDEyIEBAIHN0YXRpYyBRU3RyaW5nIHRvQm9v
bF90YWdBcnJheVtdID0gewogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiRnVuY3Rpb25cIikiLAog
ICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSlcIikiLAog
ICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gJ2NpYW8nOyB9KVwi
KSIsCi0gICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJv
cignZm9vJyB9KVwiKSIsCisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHRo
cm93IG5ldyBFcnJvcignZm9vJyk7IH0pXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIi9m
b28vXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBPYmplY3QoKVwiKSIsCiAgICAg
ImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgQXJyYXkoKVwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVh
dGUoXCJuZXcgRXJyb3IoKVwiKSIsCi0gICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJhID0gbmV3IE9i
amVjdCggYS5mb28gPSAyMjsgYS5mb29cIikiLAorICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiYSA9
IG5ldyBPYmplY3QoKTsgYS5mb28gPSAyMjsgYS5mb29cIikiLAogICAgICJlbmdpbmUtPmV2YWx1
YXRlKFwiVW5kZWZpbmVkXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIk51bGxcIikiLAog
ICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiVHJ1ZVwiKSIsCkBAIC01NzYsOSArNTc0LDEyIEBAIHN0
YXRpYyBRU3RyaW5nIHRvQm9vbF90YWdBcnJheVtdID0gewogICAgICJlbmdpbmUtPmV2YWx1YXRl
KFwiJzEyMydcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiJzEyLjQnXCIpIiwKICAgICAi
ZW5naW5lLT5udWxsVmFsdWUoKSIsCi0gICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSJ9Owor
ICAgICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkiLAorICAgICJlbmdpbmUtPm5ld09iamVjdCgp
IiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgpIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgxMCki
fTsKIAotc3RhdGljIGJvb2wgdG9Cb29sX3ZhbHVlQXJyYXlbXSA9IHsKK3N0YXRpYyBjb25zdCBi
b29sIHRvQm9vbF92YWx1ZUFycmF5W10gPSB7CiAgICAgZmFsc2UsIGZhbHNlLAogICAgIGZhbHNl
LCB0cnVlLAogICAgIGZhbHNlLCB0cnVlLApAQCAtNjQ0LDM2ICs2NDUsMzYgQEAgc3RhdGljIGJv
b2wgdG9Cb29sX3ZhbHVlQXJyYXlbXSA9IHsKICAgICB0cnVlLCB0cnVlLAogICAgIGZhbHNlLCB0
cnVlLAogICAgIHRydWUsIHRydWUsCi0gICAgZmFsc2UsIGZhbHNlfTsKKyAgICBmYWxzZSwgZmFs
c2UsCisgICAgdHJ1ZSwgdHJ1ZSwKKyAgICB0cnVlfTsKIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVl
Ojp0b0Jvb2xfbWFrZURhdGEoY29uc3QgY2hhciogZXhwcikKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1
ZTo6dG9Cb29sX2RhdGEoKQogewotICAgIHN0YXRpYyBRSGFzaDxRU3RyaW5nLCBib29sPiB0b0Jv
b2w7Ci0gICAgaWYgKHRvQm9vbC5pc0VtcHR5KCkpIHsKLSAgICAgICAgdG9Cb29sLnJlc2VydmUo
MTMyKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEzMjsgKytpKQotICAgICAg
ICAgICAgdG9Cb29sLmluc2VydCh0b0Jvb2xfdGFnQXJyYXlbaV0sIHRvQm9vbF92YWx1ZUFycmF5
W2ldKTsKKyAgICBRVGVzdDo6YWRkQ29sdW1uPFFTY3JpcHRWYWx1ZT4oInZhbHVlIik7CisgICAg
UVRlc3Q6OmFkZENvbHVtbjxib29sPigiZXhwZWN0ZWQiKTsKKyAgICBpZiAobV9lbmdpbmUpCisg
ICAgICAgIGRlbGV0ZSBtX2VuZ2luZTsKKyAgICBtX2VuZ2luZSA9IG5ldyBRU2NyaXB0RW5naW5l
KCk7CisgICAgUUhhc2g8UVN0cmluZywgYm9vbD4gZXhwZWN0ZWRWYWx1ZTsKKyAgICBleHBlY3Rl
ZFZhbHVlLnJlc2VydmUoMTM1KTsKKyAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCAxMzU7ICsraSkK
KyAgICAgICAgZXhwZWN0ZWRWYWx1ZS5pbnNlcnQodG9Cb29sX3RhZ0FycmF5W2ldLCB0b0Jvb2xf
dmFsdWVBcnJheVtpXSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMTM1OyArK2kpIHsKKyAg
ICAgICAgUVBhaXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPiB0ZXN0Y2FzZSA9IGluaXRTY3JpcHRW
YWx1ZXMoaSk7CisgICAgICAgIFFUZXN0OjpuZXdSb3codGVzdGNhc2UuZmlyc3QudG9Bc2NpaSgp
LmNvbnN0RGF0YSgpKSA8PCB0ZXN0Y2FzZS5zZWNvbmQgPDwgZXhwZWN0ZWRWYWx1ZVt0ZXN0Y2Fz
ZS5maXJzdF07CiAgICAgfQotICAgIG5ld1JvdyhleHByKSA8PCB0b0Jvb2wudmFsdWUoZXhwcik7
CiB9CiAKLXZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9Cb29sX3Rlc3QoY29uc3QgY2hhciosIGNv
bnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvQm9vbCgp
CiB7CisgICAgUUZFVENIKFFTY3JpcHRWYWx1ZSwgdmFsdWUpOwogICAgIFFGRVRDSChib29sLCBl
eHBlY3RlZCk7CiAgICAgUUNPTVBBUkUodmFsdWUudG9Cb29sKCksIGV4cGVjdGVkKTsKICAgICBR
Q09NUEFSRSh2YWx1ZS50b0Jvb2woKSwgZXhwZWN0ZWQpOwogfQogCi1ERUZJTkVfVEVTVF9GVU5D
VElPTih0b0Jvb2wpCi0KLQotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b0Jvb2xlYW5faW5pdERh
dGEoKQotewotICAgIFFUZXN0OjphZGRDb2x1bW48Ym9vbD4oImV4cGVjdGVkIik7Ci0gICAgaW5p
dFNjcmlwdFZhbHVlcygpOwotfQotCi1zdGF0aWMgUVN0cmluZyB0b0Jvb2xlYW5fdGFnQXJyYXlb
XSA9IHsKK3N0YXRpYyBjb25zdCBRU3RyaW5nIHRvQm9vbGVhbl90YWdBcnJheVtdID0gewogICAg
ICJRU2NyaXB0VmFsdWUoKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6OlVuZGVm
aW5lZFZhbHVlKSIsCiAgICAgIlFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSki
LApAQCAtNzcyLDEyICs3NzMsMTIgQEAgc3RhdGljIFFTdHJpbmcgdG9Cb29sZWFuX3RhZ0FycmF5
W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJGdW5jdGlvblwiKSIsCiAgICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAxOyB9KVwiKSIsCiAgICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAnY2lhbyc7IH0pXCIpIiwKLSAgICAi
ZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdmb28nIH0p
XCIpIiwKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVy
cm9yKCdmb28nKTsgfSlcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIikiLAog
ICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IE9iamVjdCgpXCIpIiwKICAgICAiZW5naW5lLT5l
dmFsdWF0ZShcIm5ldyBBcnJheSgpXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBF
cnJvcigpXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcImEgPSBuZXcgT2JqZWN0KCBhLmZv
byA9IDIyOyBhLmZvb1wiKSIsCisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJhID0gbmV3IE9iamVj
dCgpOyBhLmZvbyA9IDIyOyBhLmZvb1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJVbmRl
ZmluZWRcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiTnVsbFwiKSIsCiAgICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCJUcnVlXCIpIiwKQEAgLTgwNSw5ICs4MDYsMTIgQEAgc3RhdGljIFFTdHJp
bmcgdG9Cb29sZWFuX3RhZ0FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCInMTIz
J1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCInMTIuNCdcIikiLAogICAgICJlbmdpbmUt
Pm51bGxWYWx1ZSgpIiwKLSAgICAiZW5naW5lLT51bmRlZmluZWRWYWx1ZSgpIn07CisgICAgImVu
Z2luZS0+dW5kZWZpbmVkVmFsdWUoKSIsCisgICAgImVuZ2luZS0+bmV3T2JqZWN0KCkiLAorICAg
ICJlbmdpbmUtPm5ld0FycmF5KCkiLAorICAgICJlbmdpbmUtPm5ld0FycmF5KDEwKSJ9OwogCi1z
dGF0aWMgYm9vbCB0b0Jvb2xlYW5fdmFsdWVBcnJheVtdID0geworc3RhdGljIGNvbnN0IGJvb2wg
dG9Cb29sZWFuX3ZhbHVlQXJyYXlbXSA9IHsKICAgICBmYWxzZSwgZmFsc2UsCiAgICAgZmFsc2Us
IHRydWUsCiAgICAgZmFsc2UsIHRydWUsCkBAIC04NzMsMzYgKzg3NywzNiBAQCBzdGF0aWMgYm9v
bCB0b0Jvb2xlYW5fdmFsdWVBcnJheVtdID0gewogICAgIHRydWUsIHRydWUsCiAgICAgZmFsc2Us
IHRydWUsCiAgICAgdHJ1ZSwgdHJ1ZSwKLSAgICBmYWxzZSwgZmFsc2V9OworICAgIGZhbHNlLCBm
YWxzZSwKKyAgICB0cnVlLCB0cnVlLAorICAgIHRydWV9OwogCi12b2lkIHRzdF9RU2NyaXB0VmFs
dWU6OnRvQm9vbGVhbl9tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKQordm9pZCB0c3RfUVNjcmlw
dFZhbHVlOjp0b0Jvb2xlYW5fZGF0YSgpCiB7Ci0gICAgc3RhdGljIFFIYXNoPFFTdHJpbmcsIGJv
b2w+IHRvQm9vbGVhbjsKLSAgICBpZiAodG9Cb29sZWFuLmlzRW1wdHkoKSkgewotICAgICAgICB0
b0Jvb2xlYW4ucmVzZXJ2ZSgxMzIpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
MTMyOyArK2kpCi0gICAgICAgICAgICB0b0Jvb2xlYW4uaW5zZXJ0KHRvQm9vbGVhbl90YWdBcnJh
eVtpXSwgdG9Cb29sZWFuX3ZhbHVlQXJyYXlbaV0pOworICAgIFFUZXN0OjphZGRDb2x1bW48UVNj
cmlwdFZhbHVlPigidmFsdWUiKTsKKyAgICBRVGVzdDo6YWRkQ29sdW1uPGJvb2w+KCJleHBlY3Rl
ZCIpOworICAgIGlmIChtX2VuZ2luZSkKKyAgICAgICAgZGVsZXRlIG1fZW5naW5lOworICAgIG1f
ZW5naW5lID0gbmV3IFFTY3JpcHRFbmdpbmUoKTsKKyAgICBRSGFzaDxRU3RyaW5nLCBib29sPiBl
eHBlY3RlZFZhbHVlOworICAgIGV4cGVjdGVkVmFsdWUucmVzZXJ2ZSgxMzUpOworICAgIGZvciAo
dWludCBpID0gMDsgaSA8IDEzNTsgKytpKQorICAgICAgICBleHBlY3RlZFZhbHVlLmluc2VydCh0
b0Jvb2xlYW5fdGFnQXJyYXlbaV0sIHRvQm9vbGVhbl92YWx1ZUFycmF5W2ldKTsKKyAgICBmb3Ig
KHVpbnQgaSA9IDA7IGkgPCAxMzU7ICsraSkgeworICAgICAgICBRUGFpcjxRU3RyaW5nLCBRU2Ny
aXB0VmFsdWU+IHRlc3RjYXNlID0gaW5pdFNjcmlwdFZhbHVlcyhpKTsKKyAgICAgICAgUVRlc3Q6
Om5ld1Jvdyh0ZXN0Y2FzZS5maXJzdC50b0FzY2lpKCkuY29uc3REYXRhKCkpIDw8IHRlc3RjYXNl
LnNlY29uZCA8PCBleHBlY3RlZFZhbHVlW3Rlc3RjYXNlLmZpcnN0XTsKICAgICB9Ci0gICAgbmV3
Um93KGV4cHIpIDw8IHRvQm9vbGVhbi52YWx1ZShleHByKTsKIH0KIAotdm9pZCB0c3RfUVNjcmlw
dFZhbHVlOjp0b0Jvb2xlYW5fdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZhbHVlJiB2
YWx1ZSkKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9Cb29sZWFuKCkKIHsKKyAgICBRRkVUQ0go
UVNjcmlwdFZhbHVlLCB2YWx1ZSk7CiAgICAgUUZFVENIKGJvb2wsIGV4cGVjdGVkKTsKICAgICBR
Q09NUEFSRSh2YWx1ZS50b0Jvb2xlYW4oKSwgZXhwZWN0ZWQpOwogICAgIFFDT01QQVJFKHZhbHVl
LnRvQm9vbGVhbigpLCBleHBlY3RlZCk7CiB9CiAKLURFRklORV9URVNUX0ZVTkNUSU9OKHRvQm9v
bGVhbikKLQotCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvSW50ZWdlcl9pbml0RGF0YSgpCi17
Ci0gICAgUVRlc3Q6OmFkZENvbHVtbjxxc3JlYWw+KCJleHBlY3RlZCIpOwotICAgIGluaXRTY3Jp
cHRWYWx1ZXMoKTsKLX0KLQotc3RhdGljIFFTdHJpbmcgdG9JbnRlZ2VyX3RhZ0FycmF5W10gPSB7
CitzdGF0aWMgY29uc3QgUVN0cmluZyB0b0ludGVnZXJfdGFnQXJyYXlbXSA9IHsKICAgICAiUVNj
cmlwdFZhbHVlKCkiLAogICAgICJRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRW
YWx1ZSkiLAogICAgICJRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpIiwKQEAg
LTEwMDEsMTIgKzEwMDUsMTIgQEAgc3RhdGljIFFTdHJpbmcgdG9JbnRlZ2VyX3RhZ0FycmF5W10g
PSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJGdW5jdGlvblwiKSIsCiAgICAgImVuZ2luZS0+
ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAxOyB9KVwiKSIsCiAgICAgImVuZ2luZS0+
ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAnY2lhbyc7IH0pXCIpIiwKLSAgICAiZW5n
aW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdmb28nIH0pXCIp
IiwKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9y
KCdmb28nKTsgfSlcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIikiLAogICAg
ICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IE9iamVjdCgpXCIpIiwKICAgICAiZW5naW5lLT5ldmFs
dWF0ZShcIm5ldyBBcnJheSgpXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBFcnJv
cigpXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcImEgPSBuZXcgT2JqZWN0KCBhLmZvbyA9
IDIyOyBhLmZvb1wiKSIsCisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJhID0gbmV3IE9iamVjdCgp
OyBhLmZvbyA9IDIyOyBhLmZvb1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJVbmRlZmlu
ZWRcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiTnVsbFwiKSIsCiAgICAgImVuZ2luZS0+
ZXZhbHVhdGUoXCJUcnVlXCIpIiwKQEAgLTEwMzQsOCArMTAzOCwxMiBAQCBzdGF0aWMgUVN0cmlu
ZyB0b0ludGVnZXJfdGFnQXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicxMjMn
XCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicxMi40J1wiKSIsCiAgICAgImVuZ2luZS0+
bnVsbFZhbHVlKCkiLAotICAgICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkifTsKLXN0YXRpYyBx
c3JlYWwgdG9JbnRlZ2VyX3ZhbHVlQXJyYXlbXSA9IHsKKyAgICAiZW5naW5lLT51bmRlZmluZWRW
YWx1ZSgpIiwKKyAgICAiZW5naW5lLT5uZXdPYmplY3QoKSIsCisgICAgImVuZ2luZS0+bmV3QXJy
YXkoKSIsCisgICAgImVuZ2luZS0+bmV3QXJyYXkoMTApIn07CisKK3N0YXRpYyBjb25zdCBxc3Jl
YWwgdG9JbnRlZ2VyX3ZhbHVlQXJyYXlbXSA9IHsKICAgICAwLCAwLCAwLCAxLCAwLCAxMjIsIDEy
NCwgMCwgMCwgMTIzLAogICAgIDAsIDAsIDExMjYyNDA4MjAsIDY1NTM2LCA2NTUzNywgMCwgMCwg
cUluZigpLCBxSW5mKCksIDAsCiAgICAgcUluZigpLCBxSW5mKCksIDAsIDAsIDAsIDAsIDAsIDEy
MywgMTIsIDAsCkBAIC0xMDQ2LDIzICsxMDU0LDMxIEBAIHN0YXRpYyBxc3JlYWwgdG9JbnRlZ2Vy
X3ZhbHVlQXJyYXlbXSA9IHsKICAgICA2NTUzNywgMCwgMCwgcUluZigpLCBxSW5mKCksIDAsIHFJ
bmYoKSwgcUluZigpLCAwLCAwLAogICAgIDAsIDAsIDAsIDEyMywgMSwgMCwgMCwgMCwgMCwgMCwK
ICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAotICAgIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMjIsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAgMSwg
MCwgMTIyLCAxMjQsIDAsIDAsIDEyMywgMCwgMCwgMTEyNjI0MDgyMCwKICAgICA2NTUzNiwgNjU1
MzcsIDAsIHFJbmYoKSwgcUluZigpLCAwLCAwLCAwLCAxMjMsIDEyLAotICAgIDAsIDB9Owotdm9p
ZCB0c3RfUVNjcmlwdFZhbHVlOjp0b0ludGVnZXJfbWFrZURhdGEoY29uc3QgY2hhciogZXhwcikK
KyAgICAwLCAwLCAwLCAwLCAwfTsKKwordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b0ludGVnZXJf
ZGF0YSgpCiB7Ci0gICAgc3RhdGljIFFIYXNoPFFTdHJpbmcsIHFzcmVhbD4gdG9JbnRlZ2VyOwot
ICAgIGlmICh0b0ludGVnZXIuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHRvSW50ZWdlci5yZXNlcnZl
KDEzMik7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMzI7ICsraSkKLSAgICAg
ICAgICAgIHRvSW50ZWdlci5pbnNlcnQodG9JbnRlZ2VyX3RhZ0FycmF5W2ldLCB0b0ludGVnZXJf
dmFsdWVBcnJheVtpXSk7CisgICAgUVRlc3Q6OmFkZENvbHVtbjxRU2NyaXB0VmFsdWU+KCJ2YWx1
ZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48cXNyZWFsPigiZXhwZWN0ZWQiKTsKKyAgICBpZiAo
bV9lbmdpbmUpCisgICAgICAgIGRlbGV0ZSBtX2VuZ2luZTsKKyAgICBtX2VuZ2luZSA9IG5ldyBR
U2NyaXB0RW5naW5lKCk7CisgICAgUUhhc2g8UVN0cmluZywgcXNyZWFsPiBleHBlY3RlZFZhbHVl
OworICAgIGV4cGVjdGVkVmFsdWUucmVzZXJ2ZSgxMzUpOworICAgIGZvciAodWludCBpID0gMDsg
aSA8IDEzNTsgKytpKQorICAgICAgICBleHBlY3RlZFZhbHVlLmluc2VydCh0b0ludGVnZXJfdGFn
QXJyYXlbaV0sIHRvSW50ZWdlcl92YWx1ZUFycmF5W2ldKTsKKyAgICBmb3IgKHVpbnQgaSA9IDA7
IGkgPCAxMzU7ICsraSkgeworICAgICAgICBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+IHRl
c3RjYXNlID0gaW5pdFNjcmlwdFZhbHVlcyhpKTsKKyAgICAgICAgUVRlc3Q6Om5ld1Jvdyh0ZXN0
Y2FzZS5maXJzdC50b0FzY2lpKCkuY29uc3REYXRhKCkpIDw8IHRlc3RjYXNlLnNlY29uZCA8PCBl
eHBlY3RlZFZhbHVlW3Rlc3RjYXNlLmZpcnN0XTsKICAgICB9Ci0gICAgbmV3Um93KGV4cHIpIDw8
IHRvSW50ZWdlci52YWx1ZShleHByKTsKIH0KIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b0lu
dGVnZXJfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSkKK3ZvaWQg
dHN0X1FTY3JpcHRWYWx1ZTo6dG9JbnRlZ2VyKCkKIHsKKyAgICBRRkVUQ0goUVNjcmlwdFZhbHVl
LCB2YWx1ZSk7CiAgICAgUUZFVENIKHFzcmVhbCwgZXhwZWN0ZWQpOwogICAgIGlmIChxSXNJbmYo
ZXhwZWN0ZWQpKSB7CiAgICAgICAgIFFWRVJJRlkocUlzSW5mKHZhbHVlLnRvSW50ZWdlcigpKSk7
CkBAIC0xMDczLDE2ICsxMDg5LDcgQEAgdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b0ludGVnZXJf
dGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSkKICAgICBRQ09NUEFS
RSh2YWx1ZS50b0ludGVnZXIoKSwgZXhwZWN0ZWQpOwogfQogCi1ERUZJTkVfVEVTVF9GVU5DVElP
Tih0b0ludGVnZXIpCi0KLQotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b0ludDMyX2luaXREYXRh
KCkKLXsKLSAgICBRVGVzdDo6YWRkQ29sdW1uPHFpbnQzMj4oImV4cGVjdGVkIik7Ci0gICAgaW5p
dFNjcmlwdFZhbHVlcygpOwotfQotCi1zdGF0aWMgUVN0cmluZyB0b0ludDMyX3RhZ0FycmF5W10g
PSB7CitzdGF0aWMgY29uc3QgUVN0cmluZyB0b0ludDMyX3RhZ0FycmF5W10gPSB7CiAgICAgIlFT
Y3JpcHRWYWx1ZSgpIiwKICAgICAiUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVk
VmFsdWUpIiwKICAgICAiUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSIsCkBA
IC0xMTgxLDEyICsxMTg4LDEyIEBAIHN0YXRpYyBRU3RyaW5nIHRvSW50MzJfdGFnQXJyYXlbXSA9
IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIkZ1bmN0aW9uXCIpIiwKICAgICAiZW5naW5lLT5l
dmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0pXCIpIiwKICAgICAiZW5naW5lLT5l
dmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJuICdjaWFvJzsgfSlcIikiLAotICAgICJlbmdp
bmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ2ZvbycgfSlcIiki
LAorICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3Io
J2ZvbycpOyB9KVwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIvZm9vL1wiKSIsCiAgICAg
ImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgT2JqZWN0KClcIikiLAogICAgICJlbmdpbmUtPmV2YWx1
YXRlKFwibmV3IEFycmF5KClcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IEVycm9y
KClcIikiLAotICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiYSA9IG5ldyBPYmplY3QoIGEuZm9vID0g
MjI7IGEuZm9vXCIpIiwKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShcImEgPSBuZXcgT2JqZWN0KCk7
IGEuZm9vID0gMjI7IGEuZm9vXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIlVuZGVmaW5l
ZFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJOdWxsXCIpIiwKICAgICAiZW5naW5lLT5l
dmFsdWF0ZShcIlRydWVcIikiLApAQCAtMTIxNCw5ICsxMjIxLDEyIEBAIHN0YXRpYyBRU3RyaW5n
IHRvSW50MzJfdGFnQXJyYXlbXSA9IHsKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicxMjMnXCIp
IiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIicxMi40J1wiKSIsCiAgICAgImVuZ2luZS0+bnVs
bFZhbHVlKCkiLAotICAgICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkifTsKKyAgICAiZW5naW5l
LT51bmRlZmluZWRWYWx1ZSgpIiwKKyAgICAiZW5naW5lLT5uZXdPYmplY3QoKSIsCisgICAgImVu
Z2luZS0+bmV3QXJyYXkoKSIsCisgICAgImVuZ2luZS0+bmV3QXJyYXkoMTApIn07CiAKLXN0YXRp
YyBxaW50MzIgdG9JbnQzMl92YWx1ZUFycmF5W10gPSB7CitzdGF0aWMgY29uc3QgcWludDMyIHRv
SW50MzJfdmFsdWVBcnJheVtdID0gewogICAgIDAsIDAsCiAgICAgMCwgMSwKICAgICAwLCAxMjIs
CkBAIC0xMjY4LDcgKzEyNzgsNyBAQCBzdGF0aWMgcWludDMyIHRvSW50MzJfdmFsdWVBcnJheVtd
ID0gewogICAgIDAsIDAsCiAgICAgMCwgMCwKICAgICAwLCAwLAotICAgIDAsIDAsCisgICAgMCwg
MjIsCiAgICAgMCwgMCwKICAgICAwLCAwLAogICAgIDAsIDAsCkBAIC0xMjgyLDM2ICsxMjkyLDM2
IEBAIHN0YXRpYyBxaW50MzIgdG9JbnQzMl92YWx1ZUFycmF5W10gPSB7CiAgICAgMCwgMCwKICAg
ICAwLCAwLAogICAgIDEyMywgMTIsCi0gICAgMCwgMH07CisgICAgMCwgMCwKKyAgICAwLCAwLAor
ICAgIDB9OwogCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvSW50MzJfbWFrZURhdGEoY29uc3Qg
Y2hhciogZXhwcikKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9JbnQzMl9kYXRhKCkKIHsKLSAg
ICBzdGF0aWMgUUhhc2g8UVN0cmluZywgcWludDMyPiB0b0ludDMyOwotICAgIGlmICh0b0ludDMy
LmlzRW1wdHkoKSkgewotICAgICAgICB0b0ludDMyLnJlc2VydmUoMTMyKTsKLSAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IDEzMjsgKytpKQotICAgICAgICAgICAgdG9JbnQzMi5pbnNl
cnQodG9JbnQzMl90YWdBcnJheVtpXSwgdG9JbnQzMl92YWx1ZUFycmF5W2ldKTsKKyAgICBRVGVz
dDo6YWRkQ29sdW1uPFFTY3JpcHRWYWx1ZT4oInZhbHVlIik7CisgICAgUVRlc3Q6OmFkZENvbHVt
bjxxaW50MzI+KCJleHBlY3RlZCIpOworICAgIGlmIChtX2VuZ2luZSkKKyAgICAgICAgZGVsZXRl
IG1fZW5naW5lOworICAgIG1fZW5naW5lID0gbmV3IFFTY3JpcHRFbmdpbmUoKTsKKyAgICBRSGFz
aDxRU3RyaW5nLCBxaW50MzI+IGV4cGVjdGVkVmFsdWU7CisgICAgZXhwZWN0ZWRWYWx1ZS5yZXNl
cnZlKDEzNSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMTM1OyArK2kpCisgICAgICAgIGV4
cGVjdGVkVmFsdWUuaW5zZXJ0KHRvSW50MzJfdGFnQXJyYXlbaV0sIHRvSW50MzJfdmFsdWVBcnJh
eVtpXSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMTM1OyArK2kpIHsKKyAgICAgICAgUVBh
aXI8UVN0cmluZywgUVNjcmlwdFZhbHVlPiB0ZXN0Y2FzZSA9IGluaXRTY3JpcHRWYWx1ZXMoaSk7
CisgICAgICAgIFFUZXN0OjpuZXdSb3codGVzdGNhc2UuZmlyc3QudG9Bc2NpaSgpLmNvbnN0RGF0
YSgpKSA8PCB0ZXN0Y2FzZS5zZWNvbmQgPDwgZXhwZWN0ZWRWYWx1ZVt0ZXN0Y2FzZS5maXJzdF07
CiAgICAgfQotICAgIG5ld1JvdyhleHByKSA8PCB0b0ludDMyLnZhbHVlKGV4cHIpOwogfQogCi12
b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvSW50MzJfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNj
cmlwdFZhbHVlJiB2YWx1ZSkKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9JbnQzMigpCiB7Cisg
ICAgUUZFVENIKFFTY3JpcHRWYWx1ZSwgdmFsdWUpOwogICAgIFFGRVRDSChxaW50MzIsIGV4cGVj
dGVkKTsKICAgICBRQ09NUEFSRSh2YWx1ZS50b0ludDMyKCksIGV4cGVjdGVkKTsKICAgICBRQ09N
UEFSRSh2YWx1ZS50b0ludDMyKCksIGV4cGVjdGVkKTsKIH0KIAotREVGSU5FX1RFU1RfRlVOQ1RJ
T04odG9JbnQzMikKLQotCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvVUludDMyX2luaXREYXRh
KCkKLXsKLSAgICBRVGVzdDo6YWRkQ29sdW1uPHF1aW50MzI+KCJleHBlY3RlZCIpOwotICAgIGlu
aXRTY3JpcHRWYWx1ZXMoKTsKLX0KLQotc3RhdGljIFFTdHJpbmcgdG9VSW50MzJfdGFnQXJyYXlb
XSA9IHsKK3N0YXRpYyBjb25zdCBRU3RyaW5nIHRvVUludDMyX3RhZ0FycmF5W10gPSB7CiAgICAg
IlFTY3JpcHRWYWx1ZSgpIiwKICAgICAiUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5kZWZp
bmVkVmFsdWUpIiwKICAgICAiUVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSIs
CkBAIC0xNDEwLDEyICsxNDIwLDEyIEBAIHN0YXRpYyBRU3RyaW5nIHRvVUludDMyX3RhZ0FycmF5
W10gPSB7CiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJGdW5jdGlvblwiKSIsCiAgICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAxOyB9KVwiKSIsCiAgICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJldHVybiAnY2lhbyc7IH0pXCIpIiwKLSAgICAi
ZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdmb28nIH0p
XCIpIiwKKyAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVy
cm9yKCdmb28nKTsgfSlcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIikiLAog
ICAgICJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IE9iamVjdCgpXCIpIiwKICAgICAiZW5naW5lLT5l
dmFsdWF0ZShcIm5ldyBBcnJheSgpXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBF
cnJvcigpXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcImEgPSBuZXcgT2JqZWN0KCBhLmZv
byA9IDIyOyBhLmZvb1wiKSIsCisgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJhID0gbmV3IE9iamVj
dCgpOyBhLmZvbyA9IDIyOyBhLmZvb1wiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJVbmRl
ZmluZWRcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiTnVsbFwiKSIsCiAgICAgImVuZ2lu
ZS0+ZXZhbHVhdGUoXCJUcnVlXCIpIiwKQEAgLTE0NDMsOSArMTQ1MywxMiBAQCBzdGF0aWMgUVN0
cmluZyB0b1VJbnQzMl90YWdBcnJheVtdID0gewogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiJzEy
MydcIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiJzEyLjQnXCIpIiwKICAgICAiZW5naW5l
LT5udWxsVmFsdWUoKSIsCi0gICAgImVuZ2luZS0+dW5kZWZpbmVkVmFsdWUoKSJ9OworICAgICJl
bmdpbmUtPnVuZGVmaW5lZFZhbHVlKCkiLAorICAgICJlbmdpbmUtPm5ld09iamVjdCgpIiwKKyAg
ICAiZW5naW5lLT5uZXdBcnJheSgpIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgxMCkifTsKIAot
c3RhdGljIHF1aW50MzIgdG9VSW50MzJfdmFsdWVBcnJheVtdID0geworc3RhdGljIGNvbnN0IHF1
aW50MzIgdG9VSW50MzJfdmFsdWVBcnJheVtdID0gewogICAgIDAsIDAsCiAgICAgMCwgMSwKICAg
ICAwLCAxMjIsCkBAIC0xNDk3LDcgKzE1MTAsNyBAQCBzdGF0aWMgcXVpbnQzMiB0b1VJbnQzMl92
YWx1ZUFycmF5W10gPSB7CiAgICAgMCwgMCwKICAgICAwLCAwLAogICAgIDAsIDAsCi0gICAgMCwg
MCwKKyAgICAwLCAyMiwKICAgICAwLCAwLAogICAgIDAsIDAsCiAgICAgMCwgMCwKQEAgLTE1MTEs
MzYgKzE1MjQsMzYgQEAgc3RhdGljIHF1aW50MzIgdG9VSW50MzJfdmFsdWVBcnJheVtdID0gewog
ICAgIDAsIDAsCiAgICAgMCwgMCwKICAgICAxMjMsIDEyLAotICAgIDAsIDB9OworICAgIDAsIDAs
CisgICAgMCwgMCwKKyAgICAwfTsKIAotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b1VJbnQzMl9t
YWtlRGF0YShjb25zdCBjaGFyKiBleHByKQordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b1VJbnQz
Ml9kYXRhKCkKIHsKLSAgICBzdGF0aWMgUUhhc2g8UVN0cmluZywgcXVpbnQzMj4gdG9VSW50MzI7
Ci0gICAgaWYgKHRvVUludDMyLmlzRW1wdHkoKSkgewotICAgICAgICB0b1VJbnQzMi5yZXNlcnZl
KDEzMik7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMzI7ICsraSkKLSAgICAg
ICAgICAgIHRvVUludDMyLmluc2VydCh0b1VJbnQzMl90YWdBcnJheVtpXSwgdG9VSW50MzJfdmFs
dWVBcnJheVtpXSk7CisgICAgUVRlc3Q6OmFkZENvbHVtbjxRU2NyaXB0VmFsdWU+KCJ2YWx1ZSIp
OworICAgIFFUZXN0OjphZGRDb2x1bW48cXVpbnQzMj4oImV4cGVjdGVkIik7CisgICAgaWYgKG1f
ZW5naW5lKQorICAgICAgICBkZWxldGUgbV9lbmdpbmU7CisgICAgbV9lbmdpbmUgPSBuZXcgUVNj
cmlwdEVuZ2luZSgpOworICAgIFFIYXNoPFFTdHJpbmcsIHF1aW50MzI+IGV4cGVjdGVkVmFsdWU7
CisgICAgZXhwZWN0ZWRWYWx1ZS5yZXNlcnZlKDEzNSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBp
IDwgMTM1OyArK2kpCisgICAgICAgIGV4cGVjdGVkVmFsdWUuaW5zZXJ0KHRvVUludDMyX3RhZ0Fy
cmF5W2ldLCB0b1VJbnQzMl92YWx1ZUFycmF5W2ldKTsKKyAgICBmb3IgKHVpbnQgaSA9IDA7IGkg
PCAxMzU7ICsraSkgeworICAgICAgICBRUGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+IHRlc3Rj
YXNlID0gaW5pdFNjcmlwdFZhbHVlcyhpKTsKKyAgICAgICAgUVRlc3Q6Om5ld1Jvdyh0ZXN0Y2Fz
ZS5maXJzdC50b0FzY2lpKCkuY29uc3REYXRhKCkpIDw8IHRlc3RjYXNlLnNlY29uZCA8PCBleHBl
Y3RlZFZhbHVlW3Rlc3RjYXNlLmZpcnN0XTsKICAgICB9Ci0gICAgbmV3Um93KGV4cHIpIDw8IHRv
VUludDMyLnZhbHVlKGV4cHIpOwogfQogCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvVUludDMy
X3Rlc3QoY29uc3QgY2hhciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCit2b2lkIHRzdF9R
U2NyaXB0VmFsdWU6OnRvVUludDMyKCkKIHsKKyAgICBRRkVUQ0goUVNjcmlwdFZhbHVlLCB2YWx1
ZSk7CiAgICAgUUZFVENIKHF1aW50MzIsIGV4cGVjdGVkKTsKICAgICBRQ09NUEFSRSh2YWx1ZS50
b1VJbnQzMigpLCBleHBlY3RlZCk7CiAgICAgUUNPTVBBUkUodmFsdWUudG9VSW50MzIoKSwgZXhw
ZWN0ZWQpOwogfQogCi1ERUZJTkVfVEVTVF9GVU5DVElPTih0b1VJbnQzMikKLQotCi12b2lkIHRz
dF9RU2NyaXB0VmFsdWU6OnRvVUludDE2X2luaXREYXRhKCkKLXsKLSAgICBRVGVzdDo6YWRkQ29s
dW1uPHF1aW50MTY+KCJleHBlY3RlZCIpOwotICAgIGluaXRTY3JpcHRWYWx1ZXMoKTsKLX0KLQot
c3RhdGljIFFTdHJpbmcgdG9VSW50MTZfdGFnQXJyYXlbXSA9IHsKK3N0YXRpYyBjb25zdCBRU3Ry
aW5nIHRvVUludDE2X3RhZ0FycmF5W10gPSB7CiAgICAgIlFTY3JpcHRWYWx1ZSgpIiwKICAgICAi
UVNjcmlwdFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwKICAgICAiUVNjcmlw
dFZhbHVlKFFTY3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSIsCkBAIC0xNjM5LDEyICsxNjUyLDEyIEBA
IHN0YXRpYyBRU3RyaW5nIHRvVUludDE2X3RhZ0FycmF5W10gPSB7CiAgICAgImVuZ2luZS0+ZXZh
bHVhdGUoXCJGdW5jdGlvblwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24o
KSB7IHJldHVybiAxOyB9KVwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24o
KSB7IHJldHVybiAnY2lhbyc7IH0pXCIpIiwKLSAgICAiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5j
dGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdmb28nIH0pXCIpIiwKKyAgICAiZW5naW5lLT5ldmFs
dWF0ZShcIihmdW5jdGlvbigpIHsgdGhyb3cgbmV3IEVycm9yKCdmb28nKTsgfSlcIikiLAogICAg
ICJlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIikiLAogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwi
bmV3IE9iamVjdCgpXCIpIiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBBcnJheSgpXCIp
IiwKICAgICAiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBFcnJvcigpXCIpIiwKLSAgICAiZW5naW5l
LT5ldmFsdWF0ZShcImEgPSBuZXcgT2JqZWN0KCBhLmZvbyA9IDIyOyBhLmZvb1wiKSIsCisgICAg
ImVuZ2luZS0+ZXZhbHVhdGUoXCJhID0gbmV3IE9iamVjdCgpOyBhLmZvbyA9IDIyOyBhLmZvb1wi
KSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJVbmRlZmluZWRcIikiLAogICAgICJlbmdpbmUt
PmV2YWx1YXRlKFwiTnVsbFwiKSIsCiAgICAgImVuZ2luZS0+ZXZhbHVhdGUoXCJUcnVlXCIpIiwK
QEAgLTE2NzIsOSArMTY4NSwxMiBAQCBzdGF0aWMgUVN0cmluZyB0b1VJbnQxNl90YWdBcnJheVtd
ID0gewogICAgICJlbmdpbmUtPmV2YWx1YXRlKFwiJzEyMydcIikiLAogICAgICJlbmdpbmUtPmV2
YWx1YXRlKFwiJzEyLjQnXCIpIiwKICAgICAiZW5naW5lLT5udWxsVmFsdWUoKSIsCi0gICAgImVu
Z2luZS0+dW5kZWZpbmVkVmFsdWUoKSJ9OworICAgICJlbmdpbmUtPnVuZGVmaW5lZFZhbHVlKCki
LAorICAgICJlbmdpbmUtPm5ld09iamVjdCgpIiwKKyAgICAiZW5naW5lLT5uZXdBcnJheSgpIiwK
KyAgICAiZW5naW5lLT5uZXdBcnJheSgxMCkifTsKIAotc3RhdGljIHF1aW50MTYgdG9VSW50MTZf
dmFsdWVBcnJheVtdID0geworc3RhdGljIGNvbnN0IHF1aW50MTYgdG9VSW50MTZfdmFsdWVBcnJh
eVtdID0gewogICAgIDAsIDAsCiAgICAgMCwgMSwKICAgICAwLCAxMjIsCkBAIC0xNzI2LDcgKzE3
NDIsNyBAQCBzdGF0aWMgcXVpbnQxNiB0b1VJbnQxNl92YWx1ZUFycmF5W10gPSB7CiAgICAgMCwg
MCwKICAgICAwLCAwLAogICAgIDAsIDAsCi0gICAgMCwgMCwKKyAgICAwLCAyMiwKICAgICAwLCAw
LAogICAgIDAsIDAsCiAgICAgMCwgMCwKQEAgLTE3NDAsMjQgKzE3NTYsMzEgQEAgc3RhdGljIHF1
aW50MTYgdG9VSW50MTZfdmFsdWVBcnJheVtdID0gewogICAgIDAsIDAsCiAgICAgMCwgMCwKICAg
ICAxMjMsIDEyLAotICAgIDAsIDB9OworICAgIDAsIDAsCisgICAgMCwgMCwKKyAgICAwfTsKIAot
dm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b1VJbnQxNl9tYWtlRGF0YShjb25zdCBjaGFyKiBleHBy
KQordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b1VJbnQxNl9kYXRhKCkKIHsKLSAgICBzdGF0aWMg
UUhhc2g8UVN0cmluZywgcXVpbnQxNj4gdG9VSW50MTY7Ci0gICAgaWYgKHRvVUludDE2LmlzRW1w
dHkoKSkgewotICAgICAgICB0b1VJbnQxNi5yZXNlcnZlKDEzMik7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCAxMzI7ICsraSkKLSAgICAgICAgICAgIHRvVUludDE2Lmluc2VydCh0
b1VJbnQxNl90YWdBcnJheVtpXSwgdG9VSW50MTZfdmFsdWVBcnJheVtpXSk7CisgICAgUVRlc3Q6
OmFkZENvbHVtbjxRU2NyaXB0VmFsdWU+KCJ2YWx1ZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48
cXVpbnQxNj4oImV4cGVjdGVkIik7CisgICAgaWYgKG1fZW5naW5lKQorICAgICAgICBkZWxldGUg
bV9lbmdpbmU7CisgICAgbV9lbmdpbmUgPSBuZXcgUVNjcmlwdEVuZ2luZSgpOworICAgIFFIYXNo
PFFTdHJpbmcsIHF1aW50MTY+IGV4cGVjdGVkVmFsdWU7CisgICAgZXhwZWN0ZWRWYWx1ZS5yZXNl
cnZlKDEzNSk7CisgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMTM1OyArK2kpCisgICAgICAgIGV4
cGVjdGVkVmFsdWUuaW5zZXJ0KHRvVUludDE2X3RhZ0FycmF5W2ldLCB0b1VJbnQxNl92YWx1ZUFy
cmF5W2ldKTsKKyAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCAxMzU7ICsraSkgeworICAgICAgICBR
UGFpcjxRU3RyaW5nLCBRU2NyaXB0VmFsdWU+IHRlc3RjYXNlID0gaW5pdFNjcmlwdFZhbHVlcyhp
KTsKKyAgICAgICAgUVRlc3Q6Om5ld1Jvdyh0ZXN0Y2FzZS5maXJzdC50b0FzY2lpKCkuY29uc3RE
YXRhKCkpIDw8IHRlc3RjYXNlLnNlY29uZCA8PCBleHBlY3RlZFZhbHVlW3Rlc3RjYXNlLmZpcnN0
XTsKICAgICB9Ci0gICAgbmV3Um93KGV4cHIpIDw8IHRvVUludDE2LnZhbHVlKGV4cHIpOwogfQog
Ci12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvVUludDE2X3Rlc3QoY29uc3QgY2hhciosIGNvbnN0
IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvVUludDE2KCkK
IHsKKyAgICBRRkVUQ0goUVNjcmlwdFZhbHVlLCB2YWx1ZSk7CiAgICAgUUZFVENIKHF1aW50MTYs
IGV4cGVjdGVkKTsKICAgICBRQ09NUEFSRSh2YWx1ZS50b1VJbnQxNigpLCBleHBlY3RlZCk7CiAg
ICAgUUNPTVBBUkUodmFsdWUudG9VSW50MTYoKSwgZXhwZWN0ZWQpOwogfQotCi1ERUZJTkVfVEVT
VF9GVU5DVElPTih0b1VJbnQxNikK
</data>

          </attachment>
      

    </bug>

</bugzilla>