<?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>170137</bug_id>
          
          <creation_ts>2017-03-27 13:41:06 -0700</creation_ts>
          <short_desc>WebAssembly: misc memory testing</short_desc>
          <delta_ts>2017-03-27 16:24:37 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>159775</blocked>
    
    <blocked>169976</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="JF Bastien">jfbastien</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1291596</commentid>
    <comment_count>0</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-03-27 13:41:06 -0700</bug_when>
    <thetext>We&apos;re missing a bunch of sanity checks for wasm memory. The error messages are confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291597</commentid>
    <comment_count>1</comment_count>
      <attachid>305503</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-03-27 13:44:48 -0700</bug_when>
    <thetext>Created attachment 305503
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291656</commentid>
    <comment_count>2</comment_count>
      <attachid>305503</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2017-03-27 15:54:29 -0700</bug_when>
    <thetext>Comment on attachment 305503
patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291667</commentid>
    <comment_count>3</comment_count>
      <attachid>305503</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-27 16:24:34 -0700</bug_when>
    <thetext>Comment on attachment 305503
patch

Clearing flags on attachment: 305503

Committed r214438: &lt;http://trac.webkit.org/changeset/214438&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1291668</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-27 16:24:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>305503</attachid>
            <date>2017-03-27 13:44:48 -0700</date>
            <delta_ts>2017-03-27 16:24:34 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-memory-test.patch</filename>
            <type>text/plain</type>
            <size>16798</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA4ZmYyMGYxOWRkNmY4M2EyOTRjNjY5MDYxN2Y5NTE0NjJiMGQ4NGIzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBNb24sIDI3IE1hciAyMDE3IDEzOjQ0OjA3IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gbWVtb3J5
LXRlc3QKCi0tLQogSlNUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMTQgKysrCiBKU1Rlc3RzL3dhc20vYXNzZXJ0LmpzICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAxNiArKy0KIC4uLi93YXNtL2Z1bmN0aW9uLXRlc3RzL21lbW9yeS1pbXBv
cnQtYW5kLWdyb3cuanMgIHwgMTMxICsrKysrKysrKysrKysrKysrKysrKwogLi4uL2Z1bmN0aW9u
LXRlc3RzL21lbW9yeS1zZWN0aW9uLWFuZC1pbXBvcnQuanMgICAgfCAgMzEgKysrKysKIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgIHwgIDEwICsrCiAu
Li4vd2FzbS9qcy9XZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3IuY3BwICAgICB8ICAzMiAr
Ky0tLQogNiBmaWxlcyBjaGFuZ2VkLCAyMTIgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0p
CiBjcmVhdGUgbW9kZSAxMDA2NDQgSlNUZXN0cy93YXNtL2Z1bmN0aW9uLXRlc3RzL21lbW9yeS1p
bXBvcnQtYW5kLWdyb3cuanMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBKU1Rlc3RzL3dhc20vZnVuY3Rp
b24tdGVzdHMvbWVtb3J5LXNlY3Rpb24tYW5kLWltcG9ydC5qcwoKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDVmOWQ5YS4uNzYyNjc5NSAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxNy0wMy0yNyAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViQXNzZW1ibHk6IG1pc2MgbWVtb3J5IHRlc3RpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDEzNworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2FzbS9hc3NlcnQuanM6
IGhhbmRsZSBuZXdsaW5lcyBpbiBjb2RlIHdlIHByaW50IG91dCwgYXZvaWQgcmVnZXgKKyAgICAg
ICAgKiB3YXNtL2Z1bmN0aW9uLXRlc3RzL21lbW9yeS1pbXBvcnQtYW5kLWdyb3cuanM6IEFkZGVk
LgorICAgICAgICAoY29uc3QuaW5zdGFudGlhdGUpOgorICAgICAgICAoY29uc3QudGVzdCk6Cisg
ICAgICAgICogd2FzbS9mdW5jdGlvbi10ZXN0cy9tZW1vcnktc2VjdGlvbi1hbmQtaW1wb3J0Lmpz
OiBBZGRlZC4KKyAgICAgICAgKGNvbnN0Lmluc3RhbnRpYXRlKToKKwogMjAxNy0wMy0yMyAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBVc2Ug
anNOb250cml2aWFsU3RyaW5nIGFncmVzc2l2ZWx5IGZvciBUb1N0cmluZyhJbnQ1MikKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvd2FzbS9hc3NlcnQuanMgYi9KU1Rlc3RzL3dhc20vYXNzZXJ0LmpzCmlu
ZGV4IGQxYWEwODcuLmU5ZGIwYTkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9hc3NlcnQuanMK
KysrIGIvSlNUZXN0cy93YXNtL2Fzc2VydC5qcwpAQCAtMTExLDkgKzExMSw2IEBAIGV4cG9ydCBj
b25zdCBsZSA9IChsaHMsIHJocywgbXNnKSA9PiB7CiAgICAgICAgIF9mYWlsKGBFeHBlY3RlZDog
IiR7bGhzfSIgPiAiJHtyaHN9ImAsIG1zZyk7CiB9OwogCi0vLyBJZ25vcmUgc291cmNlIGluZm9y
bWF0aW9uIGF0IHRoZSBlbmQgb2YgdGhlIGVycm9yIG1lc3NhZ2UgaWYgdGhlIGV4cGVjdGVkIG1l
c3NhZ2UgZGlkbid0IHNwZWNpZnkgdGhhdCBpbmZvcm1hdGlvbi4gU29tZXRpbWVzIGl0IGNoYW5n
ZXMsIG9yIGl0J3MgdHJpY2t5IHRvIGdldCBqdXN0IHJpZ2h0LgotY29uc3QgX3NvdXJjZVJlID0g
bmV3IFJlZ0V4cCgvKCBcKGV2YWx1YXRpbmcgJy4qJ1wpKXwoIFwoSW4gLipcKSkvKTsKLQogY29u
c3QgX3Rocm93cyA9IChmdW5jLCB0eXBlLCBtZXNzYWdlLCAuLi5hcmdzKSA9PiB7CiAgICAgdHJ5
IHsKICAgICAgICAgZnVuYyguLi5hcmdzKTsKQEAgLTEyMSw5ICsxMTgsMTYgQEAgY29uc3QgX3Ro
cm93cyA9IChmdW5jLCB0eXBlLCBtZXNzYWdlLCAuLi5hcmdzKSA9PiB7CiAgICAgICAgIGlmIChl
IGluc3RhbmNlb2YgdHlwZSkgewogICAgICAgICAgICAgaWYgKGUubWVzc2FnZSA9PT0gbWVzc2Fn
ZSkKICAgICAgICAgICAgICAgICByZXR1cm4gZTsKLSAgICAgICAgICAgIGNvbnN0IGNsZWFuTWVz
c2FnZSA9IGUubWVzc2FnZS5yZXBsYWNlKF9zb3VyY2VSZSwgJycpOwotICAgICAgICAgICAgaWYg
KGNsZWFuTWVzc2FnZSA9PT0gbWVzc2FnZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZTsKKyAg
ICAgICAgICAgIC8vIElnbm9yZSBzb3VyY2UgaW5mb3JtYXRpb24gYXQgdGhlIGVuZCBvZiB0aGUg
ZXJyb3IgbWVzc2FnZSBpZiB0aGUKKyAgICAgICAgICAgIC8vIGV4cGVjdGVkIG1lc3NhZ2UgZGlk
bid0IHNwZWNpZnkgdGhhdCBpbmZvcm1hdGlvbi4gU29tZXRpbWVzIGl0CisgICAgICAgICAgICAv
LyBjaGFuZ2VzLCBvciBpdCdzIHRyaWNreSB0byBnZXQganVzdCByaWdodC4KKyAgICAgICAgICAg
IGNvbnN0IGV2YWx1YXRpbmdJbmRleCA9IGUubWVzc2FnZS5pbmRleE9mKCIgKGV2YWx1YXRpbmcg
JyIpOworICAgICAgICAgICAgaWYgKGV2YWx1YXRpbmdJbmRleCAhPT0gLTEpIHsKKyAgICAgICAg
ICAgICAgICBjb25zdCBjbGVhbk1lc3NhZ2UgPSBlLm1lc3NhZ2Uuc3Vic3RyaW5nKDAsIGV2YWx1
YXRpbmdJbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKGNsZWFuTWVzc2FnZSA9PT0gbWVzc2Fn
ZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm4gZTsKICAgICAgICAgfQogICAgICAgICBfZmFpbChgRXhwZWN0ZWQgdG8gdGhy
b3cgYSAke3R5cGUubmFtZX0gd2l0aCBtZXNzYWdlICIke21lc3NhZ2V9IiwgZ290ICR7ZS5uYW1l
fSB3aXRoIG1lc3NhZ2UgIiR7ZS5tZXNzYWdlfSJgKTsKICAgICB9CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3dhc20vZnVuY3Rpb24tdGVzdHMvbWVtb3J5LWltcG9ydC1hbmQtZ3Jvdy5qcyBiL0pTVGVz
dHMvd2FzbS9mdW5jdGlvbi10ZXN0cy9tZW1vcnktaW1wb3J0LWFuZC1ncm93LmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0Y2U1OWQKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL3dhc20vZnVuY3Rpb24tdGVzdHMvbWVtb3J5LWltcG9ydC1hbmQtZ3Jvdy5qcwpAQCAt
MCwwICsxLDEzMSBAQAoraW1wb3J0IEJ1aWxkZXIgZnJvbSAnLi4vQnVpbGRlci5qcyc7CitpbXBv
cnQgKiBhcyBhc3NlcnQgZnJvbSAnLi4vYXNzZXJ0LmpzJzsKKworY29uc3QgcGFnZVNpemUgPSA2
NCAqIDEwMjQ7CisKK2NvbnN0IHZlcmJvc2UgPSBmYWxzZTsKKworLy8gaHR0cHM6Ly9naXRodWIu
Y29tL1dlYkFzc2VtYmx5L2Rlc2lnbi9ibG9iL21hc3Rlci9Nb2R1bGVzLm1kI2ltcG9ydHMKKy8v
IFNheXM6CisvLworLy8gQSBsaW5lYXIgbWVtb3J5IGltcG9ydCBpbmNsdWRlcyB0aGUgc2FtZSBz
ZXQgb2YgZmllbGRzIGRlZmluZWQgaW4gdGhlIExpbmVhcgorLy8gTWVtb3J5IHNlY3Rpb246IGlu
aXRpYWwgbGVuZ3RoIGFuZCBvcHRpb25hbCBtYXhpbXVtIGxlbmd0aC4gVGhlIGhvc3QKKy8vIGVu
dmlyb25tZW50IG11c3Qgb25seSBhbGxvdyBpbXBvcnRzIG9mIFdlYkFzc2VtYmx5IGxpbmVhciBt
ZW1vcmllcyB0aGF0IGhhdmUKKy8vIGluaXRpYWwgbGVuZ3RoIGdyZWF0ZXItb3ItZXF1YWwgdGhh
biB0aGUgaW5pdGlhbCBsZW5ndGggZGVjbGFyZWQgaW4gdGhlCisvLyBpbXBvcnQgYW5kIHRoYXQg
aGF2ZSBtYXhpbXVtIGxlbmd0aCBsZXNzLW9yLWVxdWFsIHRoYW4gdGhlIG1heGltdW0gbGVuZ3Ro
CisvLyBkZWNsYXJlZCBpbiB0aGUgaW1wb3J0LiBUaGlzIGVuc3VyZXMgdGhhdCBzZXBhcmF0ZSBj
b21waWxhdGlvbiBjYW4gYXNzdW1lOgorLy8gbWVtb3J5IGFjY2Vzc2VzIGJlbG93IHRoZSBkZWNs
YXJlZCBpbml0aWFsIGxlbmd0aCBhcmUgYWx3YXlzIGluLWJvdW5kcywKKy8vIGFjY2Vzc2VzIGFi
b3ZlIHRoZSBkZWNsYXJlZCBtYXhpbXVtIGxlbmd0aCBhcmUgYWx3YXlzIG91dC1vZi1ib3VuZHMg
YW5kIGlmCisvLyBpbml0aWFsIGVxdWFscyBtYXhpbXVtLCB0aGUgbGVuZ3RoIGlzIGZpeGVkLgor
Citjb25zdCBpbnN0YW50aWF0ZSA9IChidWlsZGVyLCBpbXBvcnRPYmplY3QgPSB1bmRlZmluZWQp
ID0+IHsKKyAgICByZXR1cm4gbmV3IFdlYkFzc2VtYmx5Lkluc3RhbmNlKAorICAgICAgICBuZXcg
V2ViQXNzZW1ibHkuTW9kdWxlKAorICAgICAgICAgICAgYnVpbGRlci5XZWJBc3NlbWJseSgpLmdl
dCgpKSwKKyAgICAgICAgaW1wb3J0T2JqZWN0KTsKK307CisKK2NvbnN0IHRlc3QgPSAobWVtb3J5
VG9JbXBvcnQsIGltcG9ydGVkTWVtb3J5RGVjbGFyYXRpb24sIGdyb3dNZW1vcnlUb0ltcG9ydEJ5
ID0gdW5kZWZpbmVkLCBncm93SW1wb3J0ZWRNZW1vcnlEZWNsYXJhdGlvbkJ5ID0gdW5kZWZpbmVk
LCBleHBlY3RlZEZpbmFsKSA9PiB7CisgICAgY29uc3QgYnVpbGRlcjAgPSAobmV3IEJ1aWxkZXIo
KSkKKyAgICAgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkK
KyAgICAgICAgICAuTWVtb3J5KCkuSW5pdGlhbE1heFBhZ2VzKG1lbW9yeVRvSW1wb3J0LmluaXRp
YWwsIG1lbW9yeVRvSW1wb3J0Lm1heGltdW0pLkVuZCgpCisgICAgICAgICAgLkV4cG9ydCgpCisg
ICAgICAgICAgICAgIC5GdW5jdGlvbigiY3VycmVudCIpLkZ1bmN0aW9uKCJncm93IikuRnVuY3Rp
b24oImdldCIpCisgICAgICAgICAgICAgIC5NZW1vcnkoIm1lbW9yeSIsIDApCisgICAgICAgICAg
LkVuZCgpCisgICAgICAgICAgLkNvZGUoKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oImN1cnJl
bnQiLCB7IHBhcmFtczogW10sIHJldDogImkzMiIgfSkuQ3VycmVudE1lbW9yeSgwKS5SZXR1cm4o
KS5FbmQoKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oImdyb3ciLCB7IHBhcmFtczogWyJpMzIi
XSwgcmV0OiAiaTMyIiB9KS5HZXRMb2NhbCgwKS5Hcm93TWVtb3J5KDApLlJldHVybigpLkVuZCgp
CisgICAgICAgICAgICAgIC5GdW5jdGlvbigiZ2V0IiwgeyBwYXJhbXM6IFsiaTMyIl0sIHJldDog
ImkzMiIgfSkuR2V0TG9jYWwoMCkuSTMyTG9hZCgyLCAwKS5SZXR1cm4oKS5FbmQoKQorICAgICAg
ICAgIC5FbmQoKTsKKworICAgIGNvbnN0IGJ1aWxkZXIxID0gKG5ldyBCdWlsZGVyKCkpCisgICAg
ICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgICAgIC5JbXBvcnQoKS5NZW1vcnkoImltcCIsICJt
ZW1vcnkiLCBpbXBvcnRlZE1lbW9yeURlY2xhcmF0aW9uKS5FbmQoKQorICAgICAgICAgIC5GdW5j
dGlvbigpLkVuZCgpCisgICAgICAgICAgLkV4cG9ydCgpCisgICAgICAgICAgICAgIC5GdW5jdGlv
bigiY3VycmVudCIpLkZ1bmN0aW9uKCJncm93IikuRnVuY3Rpb24oImdldCIpCisgICAgICAgICAg
ICAgIC5NZW1vcnkoIm1lbW9yeSIsIDApCisgICAgICAgICAgLkVuZCgpCisgICAgICAgICAgLkNv
ZGUoKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oImN1cnJlbnQiLCB7IHBhcmFtczogW10sIHJl
dDogImkzMiIgfSkuQ3VycmVudE1lbW9yeSgwKS5SZXR1cm4oKS5FbmQoKQorICAgICAgICAgICAg
ICAuRnVuY3Rpb24oImdyb3ciLCB7IHBhcmFtczogWyJpMzIiXSwgcmV0OiAiaTMyIiB9KS5HZXRM
b2NhbCgwKS5Hcm93TWVtb3J5KDApLlJldHVybigpLkVuZCgpCisgICAgICAgICAgICAgIC5GdW5j
dGlvbigiZ2V0IiwgeyBwYXJhbXM6IFsiaTMyIl0sIHJldDogImkzMiIgfSkuR2V0TG9jYWwoMCku
STMyTG9hZCgyLCAwKS5SZXR1cm4oKS5FbmQoKQorICAgICAgICAgIC5FbmQoKTsKKworICAgIGNv
bnN0IGkwID0gaW5zdGFudGlhdGUoYnVpbGRlcjApOworICAgIGNvbnN0IGkxID0gaW5zdGFudGlh
dGUoYnVpbGRlcjEsIHsgaW1wOiB7IG1lbW9yeTogaTAuZXhwb3J0cy5tZW1vcnkgfSB9KTsKKyAg
ICBhc3NlcnQuZXEoaTAuZXhwb3J0cy5jdXJyZW50KCksIGkxLmV4cG9ydHMuY3VycmVudCgpKTsK
KyAgICBhc3NlcnQuZXEoaTAuZXhwb3J0cy5jdXJyZW50KCksIG1lbW9yeVRvSW1wb3J0LmluaXRp
YWwpOworCisgICAgaWYgKGdyb3dNZW1vcnlUb0ltcG9ydEJ5ICE9PSB1bmRlZmluZWQpIHsKKyAg
ICAgICAgY29uc3QgZ3JvdyA9IGkwLmV4cG9ydHMuZ3Jvdyhncm93TWVtb3J5VG9JbXBvcnRCeSk7
CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcHJpbnQoYGN1cnJlbnRzOiAke2kw
LmV4cG9ydHMuY3VycmVudCgpfSBhbmQgJHtpMS5leHBvcnRzLmN1cnJlbnQoKX0gLS0gZ3JvdyBy
ZXN1bHQ6ICR7Z3Jvd31gKTsKKyAgICB9CisKKyAgICBpZiAoZ3Jvd0ltcG9ydGVkTWVtb3J5RGVj
bGFyYXRpb25CeSAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgIGNvbnN0IGdyb3cgPSBpMS5leHBv
cnRzLmdyb3coZ3Jvd0ltcG9ydGVkTWVtb3J5RGVjbGFyYXRpb25CeSk7CisgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgcHJpbnQoYGN1cnJlbnRzOiAke2kwLmV4cG9ydHMuY3VycmVu
dCgpfSBhbmQgJHtpMS5leHBvcnRzLmN1cnJlbnQoKX0gLS0gZ3JvdyByZXN1bHQ6ICR7Z3Jvd31g
KTsKKyAgICB9CisKKyAgICBhc3NlcnQuZXEoaTAuZXhwb3J0cy5jdXJyZW50KCksIGkxLmV4cG9y
dHMuY3VycmVudCgpKTsKKyAgICBhc3NlcnQuZXEoaTAuZXhwb3J0cy5jdXJyZW50KCksIGV4cGVj
dGVkRmluYWwpOworfTsKKworY29uc3QgdSA9IHVuZGVmaW5lZDsKKworLy8gSWRlbnRpY2FsIEp1
c3QgV29ya3MuCit0ZXN0KHsgaW5pdGlhbDogMiwgbWF4aW11bTogNCB9LCB7IGluaXRpYWw6IDIs
IG1heGltdW06IDQgfSwgMCwgdSwgMik7Cit0ZXN0KHsgaW5pdGlhbDogMiwgbWF4aW11bTogNCB9
LCB7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgMSwgdSwgMyk7Cit0ZXN0KHsgaW5pdGlhbDog
MiwgbWF4aW11bTogNCB9LCB7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgMiwgdSwgNCk7Cit0
ZXN0KHsgaW5pdGlhbDogMiwgbWF4aW11bTogNCB9LCB7IGluaXRpYWw6IDIsIG1heGltdW06IDQg
fSwgMywgdSwgMik7Cit0ZXN0KHsgaW5pdGlhbDogMiwgbWF4aW11bTogNCB9LCB7IGluaXRpYWw6
IDIsIG1heGltdW06IDQgfSwgdSwgMCwgMik7Cit0ZXN0KHsgaW5pdGlhbDogMiwgbWF4aW11bTog
NCB9LCB7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgdSwgMSwgMyk7Cit0ZXN0KHsgaW5pdGlh
bDogMiwgbWF4aW11bTogNCB9LCB7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgdSwgMiwgNCk7
Cit0ZXN0KHsgaW5pdGlhbDogMiwgbWF4aW11bTogNCB9LCB7IGluaXRpYWw6IDIsIG1heGltdW06
IDQgfSwgdSwgMywgMik7CisKKy8vIEFsbG93ZWQ6IGltcG9ydGVkIGluaXRpYWwgaXMgZ3JlYXRl
ciB0aGFuIGRlY2xhcmVkLgordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBpbml0
aWFsOiAxLCBtYXhpbXVtOiA0IH0sIDAsIHUsIDIpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGlt
dW06IDQgfSwgeyBpbml0aWFsOiAxLCBtYXhpbXVtOiA0IH0sIDEsIHUsIDMpOwordGVzdCh7IGlu
aXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBpbml0aWFsOiAxLCBtYXhpbXVtOiA0IH0sIDIsIHUs
IDQpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBpbml0aWFsOiAxLCBtYXhp
bXVtOiA0IH0sIDMsIHUsIDIpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBp
bml0aWFsOiAwLCBtYXhpbXVtOiA0IH0sIDAsIHUsIDIpOwordGVzdCh7IGluaXRpYWw6IDIsIG1h
eGltdW06IDQgfSwgeyBpbml0aWFsOiAwLCBtYXhpbXVtOiA0IH0sIDEsIHUsIDMpOwordGVzdCh7
IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBpbml0aWFsOiAwLCBtYXhpbXVtOiA0IH0sIDIs
IHUsIDQpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBpbml0aWFsOiAwLCBt
YXhpbXVtOiA0IH0sIDMsIHUsIDIpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwg
eyBpbml0aWFsOiAxLCBtYXhpbXVtOiA0IH0sIHUsIDAsIDIpOwordGVzdCh7IGluaXRpYWw6IDIs
IG1heGltdW06IDQgfSwgeyBpbml0aWFsOiAxLCBtYXhpbXVtOiA0IH0sIHUsIDEsIDMpOwordGVz
dCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBpbml0aWFsOiAxLCBtYXhpbXVtOiA0IH0s
IHUsIDIsIDQpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBpbml0aWFsOiAx
LCBtYXhpbXVtOiA0IH0sIHUsIDMsIDIpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQg
fSwgeyBpbml0aWFsOiAwLCBtYXhpbXVtOiA0IH0sIHUsIDAsIDIpOwordGVzdCh7IGluaXRpYWw6
IDIsIG1heGltdW06IDQgfSwgeyBpbml0aWFsOiAwLCBtYXhpbXVtOiA0IH0sIHUsIDEsIDMpOwor
dGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBpbml0aWFsOiAwLCBtYXhpbXVtOiA0
IH0sIHUsIDIsIDQpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBpbml0aWFs
OiAwLCBtYXhpbXVtOiA0IH0sIHUsIDMsIDIpOworCisvLyBBbGxvd2VkOiBpbXBvcnRlZCBtYXhp
bXVtIGlzIGxlc3NlciB0aGFuIGRlY2xhcmVkLgordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06
IDMgfSwgeyBpbml0aWFsOiAyLCBtYXhpbXVtOiA0IH0sIDAsIHUsIDIpOwordGVzdCh7IGluaXRp
YWw6IDIsIG1heGltdW06IDMgfSwgeyBpbml0aWFsOiAyLCBtYXhpbXVtOiA0IH0sIDEsIHUsIDMp
OwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDMgfSwgeyBpbml0aWFsOiAyLCBtYXhpbXVt
OiA0IH0sIDIsIHUsIDIpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDIgfSwgeyBpbml0
aWFsOiAyLCBtYXhpbXVtOiA0IH0sIDAsIHUsIDIpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGlt
dW06IDIgfSwgeyBpbml0aWFsOiAyLCBtYXhpbXVtOiA0IH0sIDEsIHUsIDIpOwordGVzdCh7IGlu
aXRpYWw6IDIsIG1heGltdW06IDMgfSwgeyBpbml0aWFsOiAyLCBtYXhpbXVtOiA0IH0sIHUsIDAs
IDIpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDMgfSwgeyBpbml0aWFsOiAyLCBtYXhp
bXVtOiA0IH0sIHUsIDEsIDMpOwordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDMgfSwgeyBp
bml0aWFsOiAyLCBtYXhpbXVtOiA0IH0sIHUsIDIsIDIpOwordGVzdCh7IGluaXRpYWw6IDIsIG1h
eGltdW06IDIgfSwgeyBpbml0aWFsOiAyLCBtYXhpbXVtOiA0IH0sIHUsIDAsIDIpOwordGVzdCh7
IGluaXRpYWw6IDIsIG1heGltdW06IDIgfSwgeyBpbml0aWFsOiAyLCBtYXhpbXVtOiA0IH0sIHUs
IDEsIDIpOworCisvLyBBbGxvd2VkOiBubyBkZWNsYXJlZCBtYXhpbXVtLCBzYW1lIGFzIGFib3Zl
LgordGVzdCh7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgeyBpbml0aWFsOiAyIH0sIDAsIHUs
IDIpOworCisvLyBEaXNhbGxvd2VkOiBpbXBvcnRlZCBpbml0aWFsIGlzIGxlc3NlciB0aGFuIGRl
Y2xhcmVkLgorYXNzZXJ0LnRocm93cygoKSA9PiB0ZXN0KHsgaW5pdGlhbDogMSwgbWF4aW11bTog
NCB9LCB7IGluaXRpYWw6IDIsIG1heGltdW06IDQgfSwgdSwgdSwgMiksIFdlYkFzc2VtYmx5Lkxp
bmtFcnJvciwgYE1lbW9yeSBpbXBvcnQgcHJvdmlkZWQgYW4gJ2luaXRpYWwnIHRoYXQgaXMgc21h
bGxlciB0aGFuIHRoZSBtb2R1bGUncyBkZWNsYXJlZCAnaW5pdGlhbCcgaW1wb3J0IG1lbW9yeSBz
aXplYCk7Cithc3NlcnQudGhyb3dzKCgpID0+IHRlc3QoeyBpbml0aWFsOiAwLCBtYXhpbXVtOiA0
IH0sIHsgaW5pdGlhbDogMiwgbWF4aW11bTogNCB9LCB1LCB1LCAyKSwgV2ViQXNzZW1ibHkuTGlu
a0Vycm9yLCBgTWVtb3J5IGltcG9ydCBwcm92aWRlZCBhbiAnaW5pdGlhbCcgdGhhdCBpcyBzbWFs
bGVyIHRoYW4gdGhlIG1vZHVsZSdzIGRlY2xhcmVkICdpbml0aWFsJyBpbXBvcnQgbWVtb3J5IHNp
emVgKTsKKworLy8gRGlzYWxsb3dlZDogaW1wb3J0ZWQgbWF4aW11bSBpcyBncmVhdGVyIHRoYW4g
ZGVjbGFyZWQuCithc3NlcnQudGhyb3dzKCgpID0+IHRlc3QoeyBpbml0aWFsOiAyLCBtYXhpbXVt
OiA1IH0sIHsgaW5pdGlhbDogMiwgbWF4aW11bTogNCB9LCB1LCB1LCAyKSwgV2ViQXNzZW1ibHku
TGlua0Vycm9yLCBgTWVtb3J5IGltcG9ydCBwcm92aWRlZCBhICdtYXhpbXVtJyB0aGF0IGlzIGxh
cmdlciB0aGFuIHRoZSBtb2R1bGUncyBkZWNsYXJlZCAnbWF4aW11bScgaW1wb3J0IG1lbW9yeSBz
aXplYCk7CisKKy8vIERpc2FsbG93ZWQ6IG5vIGltcG9ydGVkIG1heGltdW0sIHNhbWUgYXMgYWJv
dmUuCithc3NlcnQudGhyb3dzKCgpID0+IHRlc3QoeyBpbml0aWFsOiAyIH0sIHsgaW5pdGlhbDog
MiwgbWF4aW11bTogNCB9LCAwLCB1LCAyKSwgV2ViQXNzZW1ibHkuTGlua0Vycm9yLCBgTWVtb3J5
IGltcG9ydCBkaWQgbm90IGhhdmUgYSAnbWF4aW11bScgYnV0IHRoZSBtb2R1bGUgcmVxdWlyZXMg
dGhhdCBpdCBkb2VzYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vZnVuY3Rpb24tdGVzdHMv
bWVtb3J5LXNlY3Rpb24tYW5kLWltcG9ydC5qcyBiL0pTVGVzdHMvd2FzbS9mdW5jdGlvbi10ZXN0
cy9tZW1vcnktc2VjdGlvbi1hbmQtaW1wb3J0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmQwOWE4NzgKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL3dhc20vZnVuY3Rp
b24tdGVzdHMvbWVtb3J5LXNlY3Rpb24tYW5kLWltcG9ydC5qcwpAQCAtMCwwICsxLDMxIEBACitp
bXBvcnQgQnVpbGRlciBmcm9tICcuLi9CdWlsZGVyLmpzJzsKK2ltcG9ydCAqIGFzIGFzc2VydCBm
cm9tICcuLi9hc3NlcnQuanMnOworCitjb25zdCBpbnN0YW50aWF0ZSA9IChidWlsZGVyLCBpbXBv
cnRPYmplY3QgPSB1bmRlZmluZWQpID0+IHsKKyAgICByZXR1cm4gbmV3IFdlYkFzc2VtYmx5Lklu
c3RhbmNlKAorICAgICAgICBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKAorICAgICAgICAgICAgYnVp
bGRlci5XZWJBc3NlbWJseSgpLmdldCgpKSwKKyAgICAgICAgaW1wb3J0T2JqZWN0KTsKK307CisK
K2NvbnN0IGluaXRpYWwgPSAwOworY29uc3QgbWF4aW11bSA9IDI7CisKK2NvbnN0IGJ1aWxkZXIw
ID0gKG5ldyBCdWlsZGVyKCkpCisgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAuRnVuY3Rpb24o
KS5FbmQoKQorICAgICAgLk1lbW9yeSgpLkluaXRpYWxNYXhQYWdlcyhpbml0aWFsLCBtYXhpbXVt
KS5FbmQoKQorICAgICAgLkV4cG9ydCgpCisgICAgICAgICAgLk1lbW9yeSgibWVtb3J5IiwgMCkK
KyAgICAgIC5FbmQoKQorICAgICAgLkNvZGUoKS5FbmQoKTsKKworY29uc3QgYnVpbGRlcjEgPSAo
bmV3IEJ1aWxkZXIoKSkKKyAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgIC5JbXBvcnQoKS5NZW1v
cnkoImltcCIsICJtZW1vcnkiLCB7IGluaXRpYWw6IGluaXRpYWwsIG1heGltdW06IG1heGltdW0g
fSkuRW5kKCkKKyAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisgICAgICAuTWVtb3J5KCkuSW5pdGlh
bE1heFBhZ2VzKGluaXRpYWwsIG1heGltdW0pLkVuZCgpCisgICAgICAuQ29kZSgpLkVuZCgpOwor
Citjb25zdCBpMCA9IGluc3RhbnRpYXRlKGJ1aWxkZXIwKTsKK2Fzc2VydC50aHJvd3MoKCkgPT4g
aW5zdGFudGlhdGUoYnVpbGRlcjEsIHsgaW1wOiB7IG1lbW9yeTogaTAuZXhwb3J0cy5tZW1vcnkg
fSB9KSwgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLCBgV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNu
J3QgcGFyc2UgYXQgYnl0ZSAzNCAvIDQwOiBNZW1vcnkgc2VjdGlvbiBjYW5ub3QgZXhpc3QgaWYg
YW4gSW1wb3J0IGhhcyBhIG1lbW9yeWApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYmVm
MGZmZi4uNzJiOGY0NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTctMDMtMjcgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAg
IFdlYkFzc2VtYmx5OiBtaXNjIG1lbW9yeSB0ZXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzAxMzcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlJbnN0YW5jZUNv
bnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2ViQXNzZW1ibHlJbnN0YW5jZUNvbnN0cnVj
dG9yOjpjcmVhdGVJbnN0YW5jZSk6IGltcHJvdmUgZXJyb3IgbWVzc2FnZXMKKwogMjAxNy0wMy0y
NCAgSkYgQmFzdGllbiAgPGpmYmFzdGllbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQXNzZW1i
bHk6IHNwZWMtdGVzdHMvbWVtb3J5Lndhc3QuanMgZmFpbHMgaW4gZGVidWcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUluc3Rh
bmNlQ29uc3RydWN0b3IuY3BwCmluZGV4IGFjMzE4MWIuLjE2ZmM4ZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5SW5zdGFuY2VDb25zdHJ1Y3Rv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlJbnN0
YW5jZUNvbnN0cnVjdG9yLmNwcApAQCAtMTY4LDE2ICsxNjgsMTYgQEAgSlNXZWJBc3NlbWJseUlu
c3RhbmNlKiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmNyZWF0ZUluc3RhbmNlKEV4
ZWNTdGF0ZSoKICAgICAgICAgICAgIGlmICghdGFibGUpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGV4ZWMsIHZtLCBBU0NJSUxp
dGVyYWwoIlRhYmxlIGltcG9ydCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgV2ViQXNzZW1ibHkuVGFi
bGUiKSkpOwogCi0gICAgICAgICAgICB1aW50MzJfdCBleHBlY3RlZEluaXRpYWwgPSBtb2R1bGVJ
bmZvcm1hdGlvbi50YWJsZUluZm9ybWF0aW9uLmluaXRpYWwoKTsKLSAgICAgICAgICAgIHVpbnQz
Ml90IGFjdHVhbEluaXRpYWwgPSB0YWJsZS0+c2l6ZSgpOwotICAgICAgICAgICAgaWYgKGFjdHVh
bEluaXRpYWwgPCBleHBlY3RlZEluaXRpYWwpCisgICAgICAgICAgICB1aW50MzJfdCBkZWNsYXJl
ZEluaXRpYWwgPSBtb2R1bGVJbmZvcm1hdGlvbi50YWJsZUluZm9ybWF0aW9uLmluaXRpYWwoKTsK
KyAgICAgICAgICAgIHVpbnQzMl90IGltcG9ydGVkSW5pdGlhbCA9IHRhYmxlLT5zaXplKCk7Cisg
ICAgICAgICAgICBpZiAoaW1wb3J0ZWRJbml0aWFsIDwgZGVjbGFyZWRJbml0aWFsKQogICAgICAg
ICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihl
eGVjLCB2bSwgQVNDSUlMaXRlcmFsKCJUYWJsZSBpbXBvcnQgcHJvdmlkZWQgYW4gJ2luaXRpYWwn
IHRoYXQgaXMgdG9vIHNtYWxsIikpKTsKIAotICAgICAgICAgICAgaWYgKHN0ZDo6b3B0aW9uYWw8
dWludDMyX3Q+IGV4cGVjdGVkTWF4aW11bSA9IG1vZHVsZUluZm9ybWF0aW9uLnRhYmxlSW5mb3Jt
YXRpb24ubWF4aW11bSgpKSB7Ci0gICAgICAgICAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJf
dD4gYWN0dWFsTWF4aW11bSA9IHRhYmxlLT5tYXhpbXVtKCk7Ci0gICAgICAgICAgICAgICAgaWYg
KCFhY3R1YWxNYXhpbXVtKQorICAgICAgICAgICAgaWYgKHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+
IGRlY2xhcmVkTWF4aW11bSA9IG1vZHVsZUluZm9ybWF0aW9uLnRhYmxlSW5mb3JtYXRpb24ubWF4
aW11bSgpKSB7CisgICAgICAgICAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gaW1wb3J0
ZWRNYXhpbXVtID0gdGFibGUtPm1heGltdW0oKTsKKyAgICAgICAgICAgICAgICBpZiAoIWltcG9y
dGVkTWF4aW11bSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVK
U1dlYkFzc2VtYmx5TGlua0Vycm9yKGV4ZWMsIHZtLCBBU0NJSUxpdGVyYWwoIlRhYmxlIGltcG9y
dCBkb2VzIG5vdCBoYXZlIGEgJ21heGltdW0nIGJ1dCB0aGUgbW9kdWxlIHJlcXVpcmVzIHRoYXQg
aXQgZG9lcyIpKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCphY3R1YWxNYXhpbXVtID4gKmV4cGVj
dGVkTWF4aW11bSkKKyAgICAgICAgICAgICAgICBpZiAoKmltcG9ydGVkTWF4aW11bSA+ICpkZWNs
YXJlZE1heGltdW0pCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRl
SlNXZWJBc3NlbWJseUxpbmtFcnJvcihleGVjLCB2bSwgQVNDSUlMaXRlcmFsKCJJbXBvcnRlZCBU
YWJsZSdzICdtYXhpbXVtJyBpcyBsYXJnZXIgdGhhbiB0aGUgbW9kdWxlJ3MgZXhwZWN0ZWQgJ21h
eGltdW0nIikpKTsKICAgICAgICAgICAgIH0KIApAQCAtMTk2LDE4ICsxOTYsMTggQEAgSlNXZWJB
c3NlbWJseUluc3RhbmNlKiBXZWJBc3NlbWJseUluc3RhbmNlQ29uc3RydWN0b3I6OmNyZWF0ZUlu
c3RhbmNlKEV4ZWNTdGF0ZSoKICAgICAgICAgICAgIGlmICghbWVtb3J5KQogICAgICAgICAgICAg
ICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihleGVjLCB2
bSwgQVNDSUlMaXRlcmFsKCJNZW1vcnkgaW1wb3J0IGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBXZWJB
c3NlbWJseS5NZW1vcnkiKSkpOwogCi0gICAgICAgICAgICBXYXNtOjpQYWdlQ291bnQgZXhwZWN0
ZWRJbml0aWFsID0gbW9kdWxlSW5mb3JtYXRpb24ubWVtb3J5LmluaXRpYWwoKTsKLSAgICAgICAg
ICAgIFdhc206OlBhZ2VDb3VudCBhY3R1YWxJbml0aWFsID0gbWVtb3J5LT5tZW1vcnkoKS5pbml0
aWFsKCk7Ci0gICAgICAgICAgICBpZiAoYWN0dWFsSW5pdGlhbCA8IGV4cGVjdGVkSW5pdGlhbCkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5r
RXJyb3IoZXhlYywgdm0sIEFTQ0lJTGl0ZXJhbCgiTWVtb3J5IGltcG9ydCBwcm92aWRlZCBhbiAn
aW5pdGlhbCcgdGhhdCBpcyB0b28gc21hbGwiKSkpOworICAgICAgICAgICAgV2FzbTo6UGFnZUNv
dW50IGRlY2xhcmVkSW5pdGlhbCA9IG1vZHVsZUluZm9ybWF0aW9uLm1lbW9yeS5pbml0aWFsKCk7
CisgICAgICAgICAgICBXYXNtOjpQYWdlQ291bnQgaW1wb3J0ZWRJbml0aWFsID0gbWVtb3J5LT5t
ZW1vcnkoKS5pbml0aWFsKCk7CisgICAgICAgICAgICBpZiAoaW1wb3J0ZWRJbml0aWFsIDwgZGVj
bGFyZWRJbml0aWFsKQorICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNX
ZWJBc3NlbWJseUxpbmtFcnJvcihleGVjLCB2bSwgQVNDSUlMaXRlcmFsKCJNZW1vcnkgaW1wb3J0
IHByb3ZpZGVkIGFuICdpbml0aWFsJyB0aGF0IGlzIHNtYWxsZXIgdGhhbiB0aGUgbW9kdWxlJ3Mg
ZGVjbGFyZWQgJ2luaXRpYWwnIGltcG9ydCBtZW1vcnkgc2l6ZSIpKSk7CiAKLSAgICAgICAgICAg
IGlmIChXYXNtOjpQYWdlQ291bnQgZXhwZWN0ZWRNYXhpbXVtID0gbW9kdWxlSW5mb3JtYXRpb24u
bWVtb3J5Lm1heGltdW0oKSkgewotICAgICAgICAgICAgICAgIFdhc206OlBhZ2VDb3VudCBhY3R1
YWxNYXhpbXVtID0gbWVtb3J5LT5tZW1vcnkoKS5tYXhpbXVtKCk7Ci0gICAgICAgICAgICAgICAg
aWYgKCFhY3R1YWxNYXhpbXVtKQorICAgICAgICAgICAgaWYgKFdhc206OlBhZ2VDb3VudCBkZWNs
YXJlZE1heGltdW0gPSBtb2R1bGVJbmZvcm1hdGlvbi5tZW1vcnkubWF4aW11bSgpKSB7CisgICAg
ICAgICAgICAgICAgV2FzbTo6UGFnZUNvdW50IGltcG9ydGVkTWF4aW11bSA9IG1lbW9yeS0+bWVt
b3J5KCkubWF4aW11bSgpOworICAgICAgICAgICAgICAgIGlmICghaW1wb3J0ZWRNYXhpbXVtKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlM
aW5rRXJyb3IoZXhlYywgdm0sIEFTQ0lJTGl0ZXJhbCgiTWVtb3J5IGltcG9ydCBkaWQgbm90IGhh
dmUgYSAnbWF4aW11bScgYnV0IHRoZSBtb2R1bGUgcmVxdWlyZXMgdGhhdCBpdCBkb2VzIikpKTsK
IAotICAgICAgICAgICAgICAgIGlmIChhY3R1YWxNYXhpbXVtID4gZXhwZWN0ZWRNYXhpbXVtKQot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlM
aW5rRXJyb3IoZXhlYywgdm0sIEFTQ0lJTGl0ZXJhbCgiTWVtb3J5IGltcG9ydHMgJ21heGltdW0n
IGlzIGxhcmdlciB0aGFuIHRoZSBtb2R1bGUncyBleHBlY3RlZCAnbWF4aW11bSciKSkpOworICAg
ICAgICAgICAgICAgIGlmIChpbXBvcnRlZE1heGltdW0gPiBkZWNsYXJlZE1heGltdW0pCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtF
cnJvcihleGVjLCB2bSwgQVNDSUlMaXRlcmFsKCJNZW1vcnkgaW1wb3J0IHByb3ZpZGVkIGEgJ21h
eGltdW0nIHRoYXQgaXMgbGFyZ2VyIHRoYW4gdGhlIG1vZHVsZSdzIGRlY2xhcmVkICdtYXhpbXVt
JyBpbXBvcnQgbWVtb3J5IHNpemUiKSkpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAv
LyBpaS4gQXBwZW5kIHYgdG8gbWVtb3JpZXMuCi0tIAoyLjEwLjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>