<?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>78174</bug_id>
          
          <creation_ts>2012-02-08 16:11:41 -0800</creation_ts>
          <short_desc>[PerformanceTests] sunspider-crypto-md5.html and sunspider-crypto-sha1.html are timing out on cr-mac perf bot</short_desc>
          <delta_ts>2012-02-08 23:14:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (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>77037</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>abarth</cc>
    
    <cc>mjs</cc>
    
    <cc>morrita</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>552592</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-08 16:11:41 -0800</bug_when>
    <thetext>See http://build.webkit.org/builders/Chromium%20Mac%20Release%20%28Perf%29/builds/238/steps/perf-test/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552612</commentid>
    <comment_count>1</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-08 16:30:11 -0800</bug_when>
    <thetext>These tests are distributed under BSD-license:

/*
 * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
 * in FIPS PUB 180-1
 * Version 2.1a Copyright Paul Johnston 2000 - 2002.
 * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
 * Distributed under the BSD License
 * See http://pajhome.org.uk/crypt/md5 for details.
 */

But on the other hand, we already have Sunspier under PerformanceTests/SunSpider.
So I guess it&apos;s OK to have them, especially WebKit binary doesn&apos;t contains them at all.
I&apos;ll pull them back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552621</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-02-08 16:39:37 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; These tests are distributed under BSD-license:
&gt; 
&gt; /*
&gt;  * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined
&gt;  * in FIPS PUB 180-1
&gt;  * Version 2.1a Copyright Paul Johnston 2000 - 2002.
&gt;  * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
&gt;  * Distributed under the BSD License
&gt;  * See http://pajhome.org.uk/crypt/md5 for details.
&gt;  */
&gt; 
&gt; But on the other hand, we already have Sunspier under PerformanceTests/SunSpider.
&gt; So I guess it&apos;s OK to have them, especially WebKit binary doesn&apos;t contains them at all.
&gt; I&apos;ll pull them back.

Okay. Btw, can we just share SunSpider .js files instead of having an extra copy inside Dromaeo/resources?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552644</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-08 16:59:24 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Okay. Btw, can we just share SunSpider .js files instead of having an extra copy inside Dromaeo/resources?
Not automatically. It appends a boilerplate html round these JS files. 
I think we can just keep it as is, especially because there are several version of SunSupider.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552696</commentid>
    <comment_count>4</comment_count>
      <attachid>126207</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-08 17:49:08 -0800</bug_when>
    <thetext>Created attachment 126207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552888</commentid>
    <comment_count>5</comment_count>
      <attachid>126207</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-08 23:14:39 -0800</bug_when>
    <thetext>Comment on attachment 126207
Patch

Clearing flags on attachment: 126207

Committed r107184: &lt;http://trac.webkit.org/changeset/107184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552890</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-08 23:14:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126207</attachid>
            <date>2012-02-08 17:49:08 -0800</date>
            <delta_ts>2012-02-08 23:14:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78174-20120209104905.patch</filename>
            <type>text/plain</type>
            <size>18767</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MTM1CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQyODU1N2NkNWMx
ZGQyZGQ3MGVmMGM3OWQxNzAyNjNlNGM2N2JhZjguLjFmNGZmZmZhMmNhM2M5MjExODg5MWFmYjNm
YjI2YWQ2OGY5MjY4MmIgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDIt
MDggIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Bl
cmZvcm1hbmNlVGVzdHNdIHN1bnNwaWRlci1jcnlwdG8tbWQ1Lmh0bWwgYW5kIHN1bnNwaWRlci1j
cnlwdG8tc2hhMS5odG1sIGFyZSB0aW1pbmcgb3V0IG9uIGNyLW1hYyBwZXJmIGJvdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzgxNzQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQdWxsZWQgYmFjayByZW1v
dmVkIGZpbGVzLgorCisgICAgICAgICogRHJvbWFlby9yZXNvdXJjZXMvZHJvbWFlby93ZWIvdGVz
dHMvc3Vuc3BpZGVyLWNyeXB0by1tZDUuaHRtbDogQWRkZWQuCisgICAgICAgICogRHJvbWFlby9y
ZXNvdXJjZXMvZHJvbWFlby93ZWIvdGVzdHMvc3Vuc3BpZGVyLWNyeXB0by1zaGExLmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTAyLTAyICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtQZXJmb3JtYW5jZVRlc3RzXSBFYWNoIERyb21hZW8gdGVzdCBuZWVkcyBp
dHMgbGFuZGluZyBodG1sLgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9Ecm9tYWVvL3Jl
c291cmNlcy9kcm9tYWVvL3dlYi90ZXN0cy9zdW5zcGlkZXItY3J5cHRvLW1kNS5odG1sIGIvUGVy
Zm9ybWFuY2VUZXN0cy9Ecm9tYWVvL3Jlc291cmNlcy9kcm9tYWVvL3dlYi90ZXN0cy9zdW5zcGlk
ZXItY3J5cHRvLW1kNS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzYWVjNTVhY2E5MDY0MjQwYjAxZWUyOWVl
NzhmOTFkNDQ2ODVmNDYKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0Ryb21h
ZW8vcmVzb3VyY2VzL2Ryb21hZW8vd2ViL3Rlc3RzL3N1bnNwaWRlci1jcnlwdG8tbWQ1Lmh0bWwK
QEAgLTAsMCArMSwzMDAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vaHRtbHJ1
bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorLyoKKyAqIEEgSmF2YVNjcmlwdCBpbXBsZW1l
bnRhdGlvbiBvZiB0aGUgUlNBIERhdGEgU2VjdXJpdHksIEluYy4gTUQ1IE1lc3NhZ2UKKyAqIERp
Z2VzdCBBbGdvcml0aG0sIGFzIGRlZmluZWQgaW4gUkZDIDEzMjEuCisgKiBWZXJzaW9uIDIuMSBD
b3B5cmlnaHQgKEMpIFBhdWwgSm9obnN0b24gMTk5OSAtIDIwMDIuCisgKiBPdGhlciBjb250cmli
dXRvcnM6IEdyZWcgSG9sdCwgQW5kcmV3IEtlcGVydCwgWWRuYXIsIExvc3RpbmV0CisgKiBEaXN0
cmlidXRlZCB1bmRlciB0aGUgQlNEIExpY2Vuc2UKKyAqIFNlZSBodHRwOi8vcGFqaG9tZS5vcmcu
dWsvY3J5cHQvbWQ1IGZvciBtb3JlIGluZm8uCisgKi8KKworLyoKKyAqIENvbmZpZ3VyYWJsZSB2
YXJpYWJsZXMuIFlvdSBtYXkgbmVlZCB0byB0d2VhayB0aGVzZSB0byBiZSBjb21wYXRpYmxlIHdp
dGgKKyAqIHRoZSBzZXJ2ZXItc2lkZSwgYnV0IHRoZSBkZWZhdWx0cyB3b3JrIGluIG1vc3QgY2Fz
ZXMuCisgKi8KK3ZhciBoZXhjYXNlID0gMDsgIC8qIGhleCBvdXRwdXQgZm9ybWF0LiAwIC0gbG93
ZXJjYXNlOyAxIC0gdXBwZXJjYXNlICAgICAgICAqLwordmFyIGI2NHBhZCAgPSAiIjsgLyogYmFz
ZS02NCBwYWQgY2hhcmFjdGVyLiAiPSIgZm9yIHN0cmljdCBSRkMgY29tcGxpYW5jZSAgICovCit2
YXIgY2hyc3ogICA9IDg7ICAvKiBiaXRzIHBlciBpbnB1dCBjaGFyYWN0ZXIuIDggLSBBU0NJSTsg
MTYgLSBVbmljb2RlICAgICAgKi8KKworLyoKKyAqIFRoZXNlIGFyZSB0aGUgZnVuY3Rpb25zIHlv
dSdsbCB1c3VhbGx5IHdhbnQgdG8gY2FsbAorICogVGhleSB0YWtlIHN0cmluZyBhcmd1bWVudHMg
YW5kIHJldHVybiBlaXRoZXIgaGV4IG9yIGJhc2UtNjQgZW5jb2RlZCBzdHJpbmdzCisgKi8KK2Z1
bmN0aW9uIGhleF9tZDUocyl7IHJldHVybiBiaW5sMmhleChjb3JlX21kNShzdHIyYmlubChzKSwg
cy5sZW5ndGggKiBjaHJzeikpO30KK2Z1bmN0aW9uIGI2NF9tZDUocyl7IHJldHVybiBiaW5sMmI2
NChjb3JlX21kNShzdHIyYmlubChzKSwgcy5sZW5ndGggKiBjaHJzeikpO30KK2Z1bmN0aW9uIHN0
cl9tZDUocyl7IHJldHVybiBiaW5sMnN0cihjb3JlX21kNShzdHIyYmlubChzKSwgcy5sZW5ndGgg
KiBjaHJzeikpO30KK2Z1bmN0aW9uIGhleF9obWFjX21kNShrZXksIGRhdGEpIHsgcmV0dXJuIGJp
bmwyaGV4KGNvcmVfaG1hY19tZDUoa2V5LCBkYXRhKSk7IH0KK2Z1bmN0aW9uIGI2NF9obWFjX21k
NShrZXksIGRhdGEpIHsgcmV0dXJuIGJpbmwyYjY0KGNvcmVfaG1hY19tZDUoa2V5LCBkYXRhKSk7
IH0KK2Z1bmN0aW9uIHN0cl9obWFjX21kNShrZXksIGRhdGEpIHsgcmV0dXJuIGJpbmwyc3RyKGNv
cmVfaG1hY19tZDUoa2V5LCBkYXRhKSk7IH0KKworLyoKKyAqIFBlcmZvcm0gYSBzaW1wbGUgc2Vs
Zi10ZXN0IHRvIHNlZSBpZiB0aGUgVk0gaXMgd29ya2luZworICovCitmdW5jdGlvbiBtZDVfdm1f
dGVzdCgpCit7CisgIHJldHVybiBoZXhfbWQ1KCJhYmMiKSA9PSAiOTAwMTUwOTgzY2QyNGZiMGQ2
OTYzZjdkMjhlMTdmNzIiOworfQorCisvKgorICogQ2FsY3VsYXRlIHRoZSBNRDUgb2YgYW4gYXJy
YXkgb2YgbGl0dGxlLWVuZGlhbiB3b3JkcywgYW5kIGEgYml0IGxlbmd0aAorICovCitmdW5jdGlv
biBjb3JlX21kNSh4LCBsZW4pCit7CisgIC8qIGFwcGVuZCBwYWRkaW5nICovCisgIHhbbGVuID4+
IDVdIHw9IDB4ODAgPDwgKChsZW4pICUgMzIpOworICB4WygoKGxlbiArIDY0KSA+Pj4gOSkgPDwg
NCkgKyAxNF0gPSBsZW47CisKKyAgdmFyIGEgPSAgMTczMjU4NDE5MzsKKyAgdmFyIGIgPSAtMjcx
NzMzODc5OworICB2YXIgYyA9IC0xNzMyNTg0MTk0OworICB2YXIgZCA9ICAyNzE3MzM4Nzg7CisK
KyAgZm9yKHZhciBpID0gMDsgaSA8IHgubGVuZ3RoOyBpICs9IDE2KQorICB7CisgICAgdmFyIG9s
ZGEgPSBhOworICAgIHZhciBvbGRiID0gYjsKKyAgICB2YXIgb2xkYyA9IGM7CisgICAgdmFyIG9s
ZGQgPSBkOworCisgICAgYSA9IG1kNV9mZihhLCBiLCBjLCBkLCB4W2krIDBdLCA3ICwgLTY4MDg3
NjkzNik7CisgICAgZCA9IG1kNV9mZihkLCBhLCBiLCBjLCB4W2krIDFdLCAxMiwgLTM4OTU2NDU4
Nik7CisgICAgYyA9IG1kNV9mZihjLCBkLCBhLCBiLCB4W2krIDJdLCAxNywgIDYwNjEwNTgxOSk7
CisgICAgYiA9IG1kNV9mZihiLCBjLCBkLCBhLCB4W2krIDNdLCAyMiwgLTEwNDQ1MjUzMzApOwor
ICAgIGEgPSBtZDVfZmYoYSwgYiwgYywgZCwgeFtpKyA0XSwgNyAsIC0xNzY0MTg4OTcpOworICAg
IGQgPSBtZDVfZmYoZCwgYSwgYiwgYywgeFtpKyA1XSwgMTIsICAxMjAwMDgwNDI2KTsKKyAgICBj
ID0gbWQ1X2ZmKGMsIGQsIGEsIGIsIHhbaSsgNl0sIDE3LCAtMTQ3MzIzMTM0MSk7CisgICAgYiA9
IG1kNV9mZihiLCBjLCBkLCBhLCB4W2krIDddLCAyMiwgLTQ1NzA1OTgzKTsKKyAgICBhID0gbWQ1
X2ZmKGEsIGIsIGMsIGQsIHhbaSsgOF0sIDcgLCAgMTc3MDAzNTQxNik7CisgICAgZCA9IG1kNV9m
ZihkLCBhLCBiLCBjLCB4W2krIDldLCAxMiwgLTE5NTg0MTQ0MTcpOworICAgIGMgPSBtZDVfZmYo
YywgZCwgYSwgYiwgeFtpKzEwXSwgMTcsIC00MjA2Myk7CisgICAgYiA9IG1kNV9mZihiLCBjLCBk
LCBhLCB4W2krMTFdLCAyMiwgLTE5OTA0MDQxNjIpOworICAgIGEgPSBtZDVfZmYoYSwgYiwgYywg
ZCwgeFtpKzEyXSwgNyAsICAxODA0NjAzNjgyKTsKKyAgICBkID0gbWQ1X2ZmKGQsIGEsIGIsIGMs
IHhbaSsxM10sIDEyLCAtNDAzNDExMDEpOworICAgIGMgPSBtZDVfZmYoYywgZCwgYSwgYiwgeFtp
KzE0XSwgMTcsIC0xNTAyMDAyMjkwKTsKKyAgICBiID0gbWQ1X2ZmKGIsIGMsIGQsIGEsIHhbaSsx
NV0sIDIyLCAgMTIzNjUzNTMyOSk7CisKKyAgICBhID0gbWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSsg
MV0sIDUgLCAtMTY1Nzk2NTEwKTsKKyAgICBkID0gbWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSsgNl0s
IDkgLCAtMTA2OTUwMTYzMik7CisgICAgYyA9IG1kNV9nZyhjLCBkLCBhLCBiLCB4W2krMTFdLCAx
NCwgIDY0MzcxNzcxMyk7CisgICAgYiA9IG1kNV9nZyhiLCBjLCBkLCBhLCB4W2krIDBdLCAyMCwg
LTM3Mzg5NzMwMik7CisgICAgYSA9IG1kNV9nZyhhLCBiLCBjLCBkLCB4W2krIDVdLCA1ICwgLTcw
MTU1ODY5MSk7CisgICAgZCA9IG1kNV9nZyhkLCBhLCBiLCBjLCB4W2krMTBdLCA5ICwgIDM4MDE2
MDgzKTsKKyAgICBjID0gbWQ1X2dnKGMsIGQsIGEsIGIsIHhbaSsxNV0sIDE0LCAtNjYwNDc4MzM1
KTsKKyAgICBiID0gbWQ1X2dnKGIsIGMsIGQsIGEsIHhbaSsgNF0sIDIwLCAtNDA1NTM3ODQ4KTsK
KyAgICBhID0gbWQ1X2dnKGEsIGIsIGMsIGQsIHhbaSsgOV0sIDUgLCAgNTY4NDQ2NDM4KTsKKyAg
ICBkID0gbWQ1X2dnKGQsIGEsIGIsIGMsIHhbaSsxNF0sIDkgLCAtMTAxOTgwMzY5MCk7CisgICAg
YyA9IG1kNV9nZyhjLCBkLCBhLCBiLCB4W2krIDNdLCAxNCwgLTE4NzM2Mzk2MSk7CisgICAgYiA9
IG1kNV9nZyhiLCBjLCBkLCBhLCB4W2krIDhdLCAyMCwgIDExNjM1MzE1MDEpOworICAgIGEgPSBt
ZDVfZ2coYSwgYiwgYywgZCwgeFtpKzEzXSwgNSAsIC0xNDQ0NjgxNDY3KTsKKyAgICBkID0gbWQ1
X2dnKGQsIGEsIGIsIGMsIHhbaSsgMl0sIDkgLCAtNTE0MDM3ODQpOworICAgIGMgPSBtZDVfZ2co
YywgZCwgYSwgYiwgeFtpKyA3XSwgMTQsICAxNzM1MzI4NDczKTsKKyAgICBiID0gbWQ1X2dnKGIs
IGMsIGQsIGEsIHhbaSsxMl0sIDIwLCAtMTkyNjYwNzczNCk7CisKKyAgICBhID0gbWQ1X2hoKGEs
IGIsIGMsIGQsIHhbaSsgNV0sIDQgLCAtMzc4NTU4KTsKKyAgICBkID0gbWQ1X2hoKGQsIGEsIGIs
IGMsIHhbaSsgOF0sIDExLCAtMjAyMjU3NDQ2Myk7CisgICAgYyA9IG1kNV9oaChjLCBkLCBhLCBi
LCB4W2krMTFdLCAxNiwgIDE4MzkwMzA1NjIpOworICAgIGIgPSBtZDVfaGgoYiwgYywgZCwgYSwg
eFtpKzE0XSwgMjMsIC0zNTMwOTU1Nik7CisgICAgYSA9IG1kNV9oaChhLCBiLCBjLCBkLCB4W2kr
IDFdLCA0ICwgLTE1MzA5OTIwNjApOworICAgIGQgPSBtZDVfaGgoZCwgYSwgYiwgYywgeFtpKyA0
XSwgMTEsICAxMjcyODkzMzUzKTsKKyAgICBjID0gbWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSsgN10s
IDE2LCAtMTU1NDk3NjMyKTsKKyAgICBiID0gbWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSsxMF0sIDIz
LCAtMTA5NDczMDY0MCk7CisgICAgYSA9IG1kNV9oaChhLCBiLCBjLCBkLCB4W2krMTNdLCA0ICwg
IDY4MTI3OTE3NCk7CisgICAgZCA9IG1kNV9oaChkLCBhLCBiLCBjLCB4W2krIDBdLCAxMSwgLTM1
ODUzNzIyMik7CisgICAgYyA9IG1kNV9oaChjLCBkLCBhLCBiLCB4W2krIDNdLCAxNiwgLTcyMjUy
MTk3OSk7CisgICAgYiA9IG1kNV9oaChiLCBjLCBkLCBhLCB4W2krIDZdLCAyMywgIDc2MDI5MTg5
KTsKKyAgICBhID0gbWQ1X2hoKGEsIGIsIGMsIGQsIHhbaSsgOV0sIDQgLCAtNjQwMzY0NDg3KTsK
KyAgICBkID0gbWQ1X2hoKGQsIGEsIGIsIGMsIHhbaSsxMl0sIDExLCAtNDIxODE1ODM1KTsKKyAg
ICBjID0gbWQ1X2hoKGMsIGQsIGEsIGIsIHhbaSsxNV0sIDE2LCAgNTMwNzQyNTIwKTsKKyAgICBi
ID0gbWQ1X2hoKGIsIGMsIGQsIGEsIHhbaSsgMl0sIDIzLCAtOTk1MzM4NjUxKTsKKworICAgIGEg
PSBtZDVfaWkoYSwgYiwgYywgZCwgeFtpKyAwXSwgNiAsIC0xOTg2MzA4NDQpOworICAgIGQgPSBt
ZDVfaWkoZCwgYSwgYiwgYywgeFtpKyA3XSwgMTAsICAxMTI2ODkxNDE1KTsKKyAgICBjID0gbWQ1
X2lpKGMsIGQsIGEsIGIsIHhbaSsxNF0sIDE1LCAtMTQxNjM1NDkwNSk7CisgICAgYiA9IG1kNV9p
aShiLCBjLCBkLCBhLCB4W2krIDVdLCAyMSwgLTU3NDM0MDU1KTsKKyAgICBhID0gbWQ1X2lpKGEs
IGIsIGMsIGQsIHhbaSsxMl0sIDYgLCAgMTcwMDQ4NTU3MSk7CisgICAgZCA9IG1kNV9paShkLCBh
LCBiLCBjLCB4W2krIDNdLCAxMCwgLTE4OTQ5ODY2MDYpOworICAgIGMgPSBtZDVfaWkoYywgZCwg
YSwgYiwgeFtpKzEwXSwgMTUsIC0xMDUxNTIzKTsKKyAgICBiID0gbWQ1X2lpKGIsIGMsIGQsIGEs
IHhbaSsgMV0sIDIxLCAtMjA1NDkyMjc5OSk7CisgICAgYSA9IG1kNV9paShhLCBiLCBjLCBkLCB4
W2krIDhdLCA2ICwgIDE4NzMzMTMzNTkpOworICAgIGQgPSBtZDVfaWkoZCwgYSwgYiwgYywgeFtp
KzE1XSwgMTAsIC0zMDYxMTc0NCk7CisgICAgYyA9IG1kNV9paShjLCBkLCBhLCBiLCB4W2krIDZd
LCAxNSwgLTE1NjAxOTgzODApOworICAgIGIgPSBtZDVfaWkoYiwgYywgZCwgYSwgeFtpKzEzXSwg
MjEsICAxMzA5MTUxNjQ5KTsKKyAgICBhID0gbWQ1X2lpKGEsIGIsIGMsIGQsIHhbaSsgNF0sIDYg
LCAtMTQ1NTIzMDcwKTsKKyAgICBkID0gbWQ1X2lpKGQsIGEsIGIsIGMsIHhbaSsxMV0sIDEwLCAt
MTEyMDIxMDM3OSk7CisgICAgYyA9IG1kNV9paShjLCBkLCBhLCBiLCB4W2krIDJdLCAxNSwgIDcx
ODc4NzI1OSk7CisgICAgYiA9IG1kNV9paShiLCBjLCBkLCBhLCB4W2krIDldLCAyMSwgLTM0MzQ4
NTU1MSk7CisKKyAgICBhID0gc2FmZV9hZGQoYSwgb2xkYSk7CisgICAgYiA9IHNhZmVfYWRkKGIs
IG9sZGIpOworICAgIGMgPSBzYWZlX2FkZChjLCBvbGRjKTsKKyAgICBkID0gc2FmZV9hZGQoZCwg
b2xkZCk7CisgIH0KKyAgcmV0dXJuIEFycmF5KGEsIGIsIGMsIGQpOworCit9CisKKy8qCisgKiBU
aGVzZSBmdW5jdGlvbnMgaW1wbGVtZW50IHRoZSBmb3VyIGJhc2ljIG9wZXJhdGlvbnMgdGhlIGFs
Z29yaXRobSB1c2VzLgorICovCitmdW5jdGlvbiBtZDVfY21uKHEsIGEsIGIsIHgsIHMsIHQpCit7
CisgIHJldHVybiBzYWZlX2FkZChiaXRfcm9sKHNhZmVfYWRkKHNhZmVfYWRkKGEsIHEpLCBzYWZl
X2FkZCh4LCB0KSksIHMpLGIpOworfQorZnVuY3Rpb24gbWQ1X2ZmKGEsIGIsIGMsIGQsIHgsIHMs
IHQpCit7CisgIHJldHVybiBtZDVfY21uKChiICYgYykgfCAoKH5iKSAmIGQpLCBhLCBiLCB4LCBz
LCB0KTsKK30KK2Z1bmN0aW9uIG1kNV9nZyhhLCBiLCBjLCBkLCB4LCBzLCB0KQoreworICByZXR1
cm4gbWQ1X2NtbigoYiAmIGQpIHwgKGMgJiAofmQpKSwgYSwgYiwgeCwgcywgdCk7Cit9CitmdW5j
dGlvbiBtZDVfaGgoYSwgYiwgYywgZCwgeCwgcywgdCkKK3sKKyAgcmV0dXJuIG1kNV9jbW4oYiBe
IGMgXiBkLCBhLCBiLCB4LCBzLCB0KTsKK30KK2Z1bmN0aW9uIG1kNV9paShhLCBiLCBjLCBkLCB4
LCBzLCB0KQoreworICByZXR1cm4gbWQ1X2NtbihjIF4gKGIgfCAofmQpKSwgYSwgYiwgeCwgcywg
dCk7Cit9CisKKy8qCisgKiBDYWxjdWxhdGUgdGhlIEhNQUMtTUQ1LCBvZiBhIGtleSBhbmQgc29t
ZSBkYXRhCisgKi8KK2Z1bmN0aW9uIGNvcmVfaG1hY19tZDUoa2V5LCBkYXRhKQoreworICB2YXIg
YmtleSA9IHN0cjJiaW5sKGtleSk7CisgIGlmKGJrZXkubGVuZ3RoID4gMTYpIGJrZXkgPSBjb3Jl
X21kNShia2V5LCBrZXkubGVuZ3RoICogY2hyc3opOworCisgIHZhciBpcGFkID0gQXJyYXkoMTYp
LCBvcGFkID0gQXJyYXkoMTYpOworICBmb3IodmFyIGkgPSAwOyBpIDwgMTY7IGkrKykKKyAgewor
ICAgIGlwYWRbaV0gPSBia2V5W2ldIF4gMHgzNjM2MzYzNjsKKyAgICBvcGFkW2ldID0gYmtleVtp
XSBeIDB4NUM1QzVDNUM7CisgIH0KKworICB2YXIgaGFzaCA9IGNvcmVfbWQ1KGlwYWQuY29uY2F0
KHN0cjJiaW5sKGRhdGEpKSwgNTEyICsgZGF0YS5sZW5ndGggKiBjaHJzeik7CisgIHJldHVybiBj
b3JlX21kNShvcGFkLmNvbmNhdChoYXNoKSwgNTEyICsgMTI4KTsKK30KKworLyoKKyAqIEFkZCBp
bnRlZ2Vycywgd3JhcHBpbmcgYXQgMl4zMi4gVGhpcyB1c2VzIDE2LWJpdCBvcGVyYXRpb25zIGlu
dGVybmFsbHkKKyAqIHRvIHdvcmsgYXJvdW5kIGJ1Z3MgaW4gc29tZSBKUyBpbnRlcnByZXRlcnMu
CisgKi8KK2Z1bmN0aW9uIHNhZmVfYWRkKHgsIHkpCit7CisgIHZhciBsc3cgPSAoeCAmIDB4RkZG
RikgKyAoeSAmIDB4RkZGRik7CisgIHZhciBtc3cgPSAoeCA+PiAxNikgKyAoeSA+PiAxNikgKyAo
bHN3ID4+IDE2KTsKKyAgcmV0dXJuIChtc3cgPDwgMTYpIHwgKGxzdyAmIDB4RkZGRik7Cit9CisK
Ky8qCisgKiBCaXR3aXNlIHJvdGF0ZSBhIDMyLWJpdCBudW1iZXIgdG8gdGhlIGxlZnQuCisgKi8K
K2Z1bmN0aW9uIGJpdF9yb2wobnVtLCBjbnQpCit7CisgIHJldHVybiAobnVtIDw8IGNudCkgfCAo
bnVtID4+PiAoMzIgLSBjbnQpKTsKK30KKworLyoKKyAqIENvbnZlcnQgYSBzdHJpbmcgdG8gYW4g
YXJyYXkgb2YgbGl0dGxlLWVuZGlhbiB3b3JkcworICogSWYgY2hyc3ogaXMgQVNDSUksIGNoYXJh
Y3RlcnMgPjI1NSBoYXZlIHRoZWlyIGhpLWJ5dGUgc2lsZW50bHkgaWdub3JlZC4KKyAqLworZnVu
Y3Rpb24gc3RyMmJpbmwoc3RyKQoreworICB2YXIgYmluID0gQXJyYXkoKTsKKyAgdmFyIG1hc2sg
PSAoMSA8PCBjaHJzeikgLSAxOworICBmb3IodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aCAqIGNo
cnN6OyBpICs9IGNocnN6KQorICAgIGJpbltpPj41XSB8PSAoc3RyLmNoYXJDb2RlQXQoaSAvIGNo
cnN6KSAmIG1hc2spIDw8IChpJTMyKTsKKyAgcmV0dXJuIGJpbjsKK30KKworLyoKKyAqIENvbnZl
cnQgYW4gYXJyYXkgb2YgbGl0dGxlLWVuZGlhbiB3b3JkcyB0byBhIHN0cmluZworICovCitmdW5j
dGlvbiBiaW5sMnN0cihiaW4pCit7CisgIHZhciBzdHIgPSAiIjsKKyAgdmFyIG1hc2sgPSAoMSA8
PCBjaHJzeikgLSAxOworICBmb3IodmFyIGkgPSAwOyBpIDwgYmluLmxlbmd0aCAqIDMyOyBpICs9
IGNocnN6KQorICAgIHN0ciArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKChiaW5baT4+NV0gPj4+IChp
ICUgMzIpKSAmIG1hc2spOworICByZXR1cm4gc3RyOworfQorCisvKgorICogQ29udmVydCBhbiBh
cnJheSBvZiBsaXR0bGUtZW5kaWFuIHdvcmRzIHRvIGEgaGV4IHN0cmluZy4KKyAqLworZnVuY3Rp
b24gYmlubDJoZXgoYmluYXJyYXkpCit7CisgIHZhciBoZXhfdGFiID0gaGV4Y2FzZSA/ICIwMTIz
NDU2Nzg5QUJDREVGIiA6ICIwMTIzNDU2Nzg5YWJjZGVmIjsKKyAgdmFyIHN0ciA9ICIiOworICBm
b3IodmFyIGkgPSAwOyBpIDwgYmluYXJyYXkubGVuZ3RoICogNDsgaSsrKQorICB7CisgICAgc3Ry
ICs9IGhleF90YWIuY2hhckF0KChiaW5hcnJheVtpPj4yXSA+PiAoKGklNCkqOCs0KSkgJiAweEYp
ICsKKyAgICAgICAgICAgaGV4X3RhYi5jaGFyQXQoKGJpbmFycmF5W2k+PjJdID4+ICgoaSU0KSo4
ICApKSAmIDB4Rik7CisgIH0KKyAgcmV0dXJuIHN0cjsKK30KKworLyoKKyAqIENvbnZlcnQgYW4g
YXJyYXkgb2YgbGl0dGxlLWVuZGlhbiB3b3JkcyB0byBhIGJhc2UtNjQgc3RyaW5nCisgKi8KK2Z1
bmN0aW9uIGJpbmwyYjY0KGJpbmFycmF5KQoreworICB2YXIgdGFiID0gIkFCQ0RFRkdISUpLTE1O
T1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iOworICB2
YXIgc3RyID0gIiI7CisgIGZvcih2YXIgaSA9IDA7IGkgPCBiaW5hcnJheS5sZW5ndGggKiA0OyBp
ICs9IDMpCisgIHsKKyAgICB2YXIgdHJpcGxldCA9ICgoKGJpbmFycmF5W2kgICA+PiAyXSA+PiA4
ICogKCBpICAgJTQpKSAmIDB4RkYpIDw8IDE2KQorICAgICAgICAgICAgICAgIHwgKCgoYmluYXJy
YXlbaSsxID4+IDJdID4+IDggKiAoKGkrMSklNCkpICYgMHhGRikgPDwgOCApCisgICAgICAgICAg
ICAgICAgfCAgKChiaW5hcnJheVtpKzIgPj4gMl0gPj4gOCAqICgoaSsyKSU0KSkgJiAweEZGKTsK
KyAgICBmb3IodmFyIGogPSAwOyBqIDwgNDsgaisrKQorICAgIHsKKyAgICAgIGlmKGkgKiA4ICsg
aiAqIDYgPiBiaW5hcnJheS5sZW5ndGggKiAzMikgc3RyICs9IGI2NHBhZDsKKyAgICAgIGVsc2Ug
c3RyICs9IHRhYi5jaGFyQXQoKHRyaXBsZXQgPj4gNiooMy1qKSkgJiAweDNGKTsKKyAgICB9Cisg
IH0KKyAgcmV0dXJuIHN0cjsKK30KKwordmFyIHBsYWluVGV4dCA9ICJSZWJlbGxpb3VzIHN1Ympl
Y3RzLCBlbmVtaWVzIHRvIHBlYWNlLFxuXAorUHJvZmFuZXJzIG9mIHRoaXMgbmVpZ2hib3VyLXN0
YWluZWQgc3RlZWwsLS1cblwKK1dpbGwgdGhleSBub3QgaGVhcj8gV2hhdCwgaG8hIHlvdSBtZW4s
IHlvdSBiZWFzdHMsXG5cCitUaGF0IHF1ZW5jaCB0aGUgZmlyZSBvZiB5b3VyIHBlcm5pY2lvdXMg
cmFnZVxuXAorV2l0aCBwdXJwbGUgZm91bnRhaW5zIGlzc3VpbmcgZnJvbSB5b3VyIHZlaW5zLFxu
XAorT24gcGFpbiBvZiB0b3J0dXJlLCBmcm9tIHRob3NlIGJsb29keSBoYW5kc1xuXAorVGhyb3cg
eW91ciBtaXN0ZW1wZXInZCB3ZWFwb25zIHRvIHRoZSBncm91bmQsXG5cCitBbmQgaGVhciB0aGUg
c2VudGVuY2Ugb2YgeW91ciBtb3ZlZCBwcmluY2UuXG5cCitUaHJlZSBjaXZpbCBicmF3bHMsIGJy
ZWQgb2YgYW4gYWlyeSB3b3JkLFxuXAorQnkgdGhlZSwgb2xkIENhcHVsZXQsIGFuZCBNb250YWd1
ZSxcblwKK0hhdmUgdGhyaWNlIGRpc3R1cmInZCB0aGUgcXVpZXQgb2Ygb3VyIHN0cmVldHMsXG5c
CitBbmQgbWFkZSBWZXJvbmEncyBhbmNpZW50IGNpdGl6ZW5zXG5cCitDYXN0IGJ5IHRoZWlyIGdy
YXZlIGJlc2VlbWluZyBvcm5hbWVudHMsXG5cCitUbyB3aWVsZCBvbGQgcGFydGlzYW5zLCBpbiBo
YW5kcyBhcyBvbGQsXG5cCitDYW5rZXInZCB3aXRoIHBlYWNlLCB0byBwYXJ0IHlvdXIgY2Fua2Vy
J2QgaGF0ZTpcblwKK0lmIGV2ZXIgeW91IGRpc3R1cmIgb3VyIHN0cmVldHMgYWdhaW4sXG5cCitZ
b3VyIGxpdmVzIHNoYWxsIHBheSB0aGUgZm9yZmVpdCBvZiB0aGUgcGVhY2UuXG5cCitGb3IgdGhp
cyB0aW1lLCBhbGwgdGhlIHJlc3QgZGVwYXJ0IGF3YXk6XG5cCitZb3UgQ2FwdWxldDsgc2hhbGwg
Z28gYWxvbmcgd2l0aCBtZTpcblwKK0FuZCwgTW9udGFndWUsIGNvbWUgeW91IHRoaXMgYWZ0ZXJu
b29uLFxuXAorVG8ga25vdyBvdXIgZnVydGhlciBwbGVhc3VyZSBpbiB0aGlzIGNhc2UsXG5cCitU
byBvbGQgRnJlZS10b3duLCBvdXIgY29tbW9uIGp1ZGdtZW50LXBsYWNlLlxuXAorT25jZSBtb3Jl
LCBvbiBwYWluIG9mIGRlYXRoLCBhbGwgbWVuIGRlcGFydC4iCisKK2ZvciAodmFyIGkgPSAwOyBp
IDwyOyBpKyspIHsKKyAgICBwbGFpblRleHQgKz0gcGxhaW5UZXh0OworfQorCit3aW5kb3cub25s
b2FkID0gZnVuY3Rpb24oKXsgc3RhcnRUZXN0KCJzdW5zcGlkZXItY3J5cHRvLW1kNSIsICdiZDRk
MDhlMScpOworCit0ZXN0KCJNRDUiLCBmdW5jdGlvbigpeworICAgICAgICB2YXIgbWQ1T3V0cHV0
ID0gaGV4X21kNShwbGFpblRleHQpOworfSk7CisKK2VuZFRlc3QoKTsgfTsKKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VU
ZXN0cy9Ecm9tYWVvL3Jlc291cmNlcy9kcm9tYWVvL3dlYi90ZXN0cy9zdW5zcGlkZXItY3J5cHRv
LXNoYTEuaHRtbCBiL1BlcmZvcm1hbmNlVGVzdHMvRHJvbWFlby9yZXNvdXJjZXMvZHJvbWFlby93
ZWIvdGVzdHMvc3Vuc3BpZGVyLWNyeXB0by1zaGExLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVjYWY2ZWZm
YzI2MTBlNjY2YWFjOTk1NDIxODc5ODBmYmZhYTM0ZgotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvRHJvbWFlby9yZXNvdXJjZXMvZHJvbWFlby93ZWIvdGVzdHMvc3Vuc3BpZGVy
LWNyeXB0by1zaGExLmh0bWwKQEAgLTAsMCArMSwyMzggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vaHRtbHJ1bm5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorLyoKKyAqIEEg
SmF2YVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2VjdXJlIEhhc2ggQWxnb3JpdGhtLCBT
SEEtMSwgYXMgZGVmaW5lZAorICogaW4gRklQUyBQVUIgMTgwLTEKKyAqIFZlcnNpb24gMi4xYSBD
b3B5cmlnaHQgUGF1bCBKb2huc3RvbiAyMDAwIC0gMjAwMi4KKyAqIE90aGVyIGNvbnRyaWJ1dG9y
czogR3JlZyBIb2x0LCBBbmRyZXcgS2VwZXJ0LCBZZG5hciwgTG9zdGluZXQKKyAqIERpc3RyaWJ1
dGVkIHVuZGVyIHRoZSBCU0QgTGljZW5zZQorICogU2VlIGh0dHA6Ly9wYWpob21lLm9yZy51ay9j
cnlwdC9tZDUgZm9yIGRldGFpbHMuCisgKi8KKworLyoKKyAqIENvbmZpZ3VyYWJsZSB2YXJpYWJs
ZXMuIFlvdSBtYXkgbmVlZCB0byB0d2VhayB0aGVzZSB0byBiZSBjb21wYXRpYmxlIHdpdGgKKyAq
IHRoZSBzZXJ2ZXItc2lkZSwgYnV0IHRoZSBkZWZhdWx0cyB3b3JrIGluIG1vc3QgY2FzZXMuCisg
Ki8KK3ZhciBoZXhjYXNlID0gMDsgIC8qIGhleCBvdXRwdXQgZm9ybWF0LiAwIC0gbG93ZXJjYXNl
OyAxIC0gdXBwZXJjYXNlICAgICAgICAqLwordmFyIGI2NHBhZCAgPSAiIjsgLyogYmFzZS02NCBw
YWQgY2hhcmFjdGVyLiAiPSIgZm9yIHN0cmljdCBSRkMgY29tcGxpYW5jZSAgICovCit2YXIgY2hy
c3ogICA9IDg7ICAvKiBiaXRzIHBlciBpbnB1dCBjaGFyYWN0ZXIuIDggLSBBU0NJSTsgMTYgLSBV
bmljb2RlICAgICAgKi8KKworLyoKKyAqIFRoZXNlIGFyZSB0aGUgZnVuY3Rpb25zIHlvdSdsbCB1
c3VhbGx5IHdhbnQgdG8gY2FsbAorICogVGhleSB0YWtlIHN0cmluZyBhcmd1bWVudHMgYW5kIHJl
dHVybiBlaXRoZXIgaGV4IG9yIGJhc2UtNjQgZW5jb2RlZCBzdHJpbmdzCisgKi8KK2Z1bmN0aW9u
IGhleF9zaGExKHMpe3JldHVybiBiaW5iMmhleChjb3JlX3NoYTEoc3RyMmJpbmIocykscy5sZW5n
dGggKiBjaHJzeikpO30KK2Z1bmN0aW9uIGI2NF9zaGExKHMpe3JldHVybiBiaW5iMmI2NChjb3Jl
X3NoYTEoc3RyMmJpbmIocykscy5sZW5ndGggKiBjaHJzeikpO30KK2Z1bmN0aW9uIHN0cl9zaGEx
KHMpe3JldHVybiBiaW5iMnN0cihjb3JlX3NoYTEoc3RyMmJpbmIocykscy5sZW5ndGggKiBjaHJz
eikpO30KK2Z1bmN0aW9uIGhleF9obWFjX3NoYTEoa2V5LCBkYXRhKXsgcmV0dXJuIGJpbmIyaGV4
KGNvcmVfaG1hY19zaGExKGtleSwgZGF0YSkpO30KK2Z1bmN0aW9uIGI2NF9obWFjX3NoYTEoa2V5
LCBkYXRhKXsgcmV0dXJuIGJpbmIyYjY0KGNvcmVfaG1hY19zaGExKGtleSwgZGF0YSkpO30KK2Z1
bmN0aW9uIHN0cl9obWFjX3NoYTEoa2V5LCBkYXRhKXsgcmV0dXJuIGJpbmIyc3RyKGNvcmVfaG1h
Y19zaGExKGtleSwgZGF0YSkpO30KKworLyoKKyAqIFBlcmZvcm0gYSBzaW1wbGUgc2VsZi10ZXN0
IHRvIHNlZSBpZiB0aGUgVk0gaXMgd29ya2luZworICovCitmdW5jdGlvbiBzaGExX3ZtX3Rlc3Qo
KQoreworICByZXR1cm4gaGV4X3NoYTEoImFiYyIpID09ICJhOTk5M2UzNjQ3MDY4MTZhYmEzZTI1
NzE3ODUwYzI2YzljZDBkODlkIjsKK30KKworLyoKKyAqIENhbGN1bGF0ZSB0aGUgU0hBLTEgb2Yg
YW4gYXJyYXkgb2YgYmlnLWVuZGlhbiB3b3JkcywgYW5kIGEgYml0IGxlbmd0aAorICovCitmdW5j
dGlvbiBjb3JlX3NoYTEoeCwgbGVuKQoreworICAvKiBhcHBlbmQgcGFkZGluZyAqLworICB4W2xl
biA+PiA1XSB8PSAweDgwIDw8ICgyNCAtIGxlbiAlIDMyKTsKKyAgeFsoKGxlbiArIDY0ID4+IDkp
IDw8IDQpICsgMTVdID0gbGVuOworCisgIHZhciB3ID0gQXJyYXkoODApOworICB2YXIgYSA9ICAx
NzMyNTg0MTkzOworICB2YXIgYiA9IC0yNzE3MzM4Nzk7CisgIHZhciBjID0gLTE3MzI1ODQxOTQ7
CisgIHZhciBkID0gIDI3MTczMzg3ODsKKyAgdmFyIGUgPSAtMTAwOTU4OTc3NjsKKworICBmb3Io
dmFyIGkgPSAwOyBpIDwgeC5sZW5ndGg7IGkgKz0gMTYpCisgIHsKKyAgICB2YXIgb2xkYSA9IGE7
CisgICAgdmFyIG9sZGIgPSBiOworICAgIHZhciBvbGRjID0gYzsKKyAgICB2YXIgb2xkZCA9IGQ7
CisgICAgdmFyIG9sZGUgPSBlOworCisgICAgZm9yKHZhciBqID0gMDsgaiA8IDgwOyBqKyspCisg
ICAgeworICAgICAgaWYoaiA8IDE2KSB3W2pdID0geFtpICsgal07CisgICAgICBlbHNlIHdbal0g
PSByb2wod1tqLTNdIF4gd1tqLThdIF4gd1tqLTE0XSBeIHdbai0xNl0sIDEpOworICAgICAgdmFy
IHQgPSBzYWZlX2FkZChzYWZlX2FkZChyb2woYSwgNSksIHNoYTFfZnQoaiwgYiwgYywgZCkpLAor
ICAgICAgICAgICAgICAgICAgICAgICBzYWZlX2FkZChzYWZlX2FkZChlLCB3W2pdKSwgc2hhMV9r
dChqKSkpOworICAgICAgZSA9IGQ7CisgICAgICBkID0gYzsKKyAgICAgIGMgPSByb2woYiwgMzAp
OworICAgICAgYiA9IGE7CisgICAgICBhID0gdDsKKyAgICB9CisKKyAgICBhID0gc2FmZV9hZGQo
YSwgb2xkYSk7CisgICAgYiA9IHNhZmVfYWRkKGIsIG9sZGIpOworICAgIGMgPSBzYWZlX2FkZChj
LCBvbGRjKTsKKyAgICBkID0gc2FmZV9hZGQoZCwgb2xkZCk7CisgICAgZSA9IHNhZmVfYWRkKGUs
IG9sZGUpOworICB9CisgIHJldHVybiBBcnJheShhLCBiLCBjLCBkLCBlKTsKKworfQorCisvKgor
ICogUGVyZm9ybSB0aGUgYXBwcm9wcmlhdGUgdHJpcGxldCBjb21iaW5hdGlvbiBmdW5jdGlvbiBm
b3IgdGhlIGN1cnJlbnQKKyAqIGl0ZXJhdGlvbgorICovCitmdW5jdGlvbiBzaGExX2Z0KHQsIGIs
IGMsIGQpCit7CisgIGlmKHQgPCAyMCkgcmV0dXJuIChiICYgYykgfCAoKH5iKSAmIGQpOworICBp
Zih0IDwgNDApIHJldHVybiBiIF4gYyBeIGQ7CisgIGlmKHQgPCA2MCkgcmV0dXJuIChiICYgYykg
fCAoYiAmIGQpIHwgKGMgJiBkKTsKKyAgcmV0dXJuIGIgXiBjIF4gZDsKK30KKworLyoKKyAqIERl
dGVybWluZSB0aGUgYXBwcm9wcmlhdGUgYWRkaXRpdmUgY29uc3RhbnQgZm9yIHRoZSBjdXJyZW50
IGl0ZXJhdGlvbgorICovCitmdW5jdGlvbiBzaGExX2t0KHQpCit7CisgIHJldHVybiAodCA8IDIw
KSA/ICAxNTE4NTAwMjQ5IDogKHQgPCA0MCkgPyAgMTg1OTc3NTM5MyA6CisgICAgICAgICAodCA8
IDYwKSA/IC0xODk0MDA3NTg4IDogLTg5OTQ5NzUxNDsKK30KKworLyoKKyAqIENhbGN1bGF0ZSB0
aGUgSE1BQy1TSEExIG9mIGEga2V5IGFuZCBzb21lIGRhdGEKKyAqLworZnVuY3Rpb24gY29yZV9o
bWFjX3NoYTEoa2V5LCBkYXRhKQoreworICB2YXIgYmtleSA9IHN0cjJiaW5iKGtleSk7CisgIGlm
KGJrZXkubGVuZ3RoID4gMTYpIGJrZXkgPSBjb3JlX3NoYTEoYmtleSwga2V5Lmxlbmd0aCAqIGNo
cnN6KTsKKworICB2YXIgaXBhZCA9IEFycmF5KDE2KSwgb3BhZCA9IEFycmF5KDE2KTsKKyAgZm9y
KHZhciBpID0gMDsgaSA8IDE2OyBpKyspCisgIHsKKyAgICBpcGFkW2ldID0gYmtleVtpXSBeIDB4
MzYzNjM2MzY7CisgICAgb3BhZFtpXSA9IGJrZXlbaV0gXiAweDVDNUM1QzVDOworICB9CisKKyAg
dmFyIGhhc2ggPSBjb3JlX3NoYTEoaXBhZC5jb25jYXQoc3RyMmJpbmIoZGF0YSkpLCA1MTIgKyBk
YXRhLmxlbmd0aCAqIGNocnN6KTsKKyAgcmV0dXJuIGNvcmVfc2hhMShvcGFkLmNvbmNhdChoYXNo
KSwgNTEyICsgMTYwKTsKK30KKworLyoKKyAqIEFkZCBpbnRlZ2Vycywgd3JhcHBpbmcgYXQgMl4z
Mi4gVGhpcyB1c2VzIDE2LWJpdCBvcGVyYXRpb25zIGludGVybmFsbHkKKyAqIHRvIHdvcmsgYXJv
dW5kIGJ1Z3MgaW4gc29tZSBKUyBpbnRlcnByZXRlcnMuCisgKi8KK2Z1bmN0aW9uIHNhZmVfYWRk
KHgsIHkpCit7CisgIHZhciBsc3cgPSAoeCAmIDB4RkZGRikgKyAoeSAmIDB4RkZGRik7CisgIHZh
ciBtc3cgPSAoeCA+PiAxNikgKyAoeSA+PiAxNikgKyAobHN3ID4+IDE2KTsKKyAgcmV0dXJuICht
c3cgPDwgMTYpIHwgKGxzdyAmIDB4RkZGRik7Cit9CisKKy8qCisgKiBCaXR3aXNlIHJvdGF0ZSBh
IDMyLWJpdCBudW1iZXIgdG8gdGhlIGxlZnQuCisgKi8KK2Z1bmN0aW9uIHJvbChudW0sIGNudCkK
K3sKKyAgcmV0dXJuIChudW0gPDwgY250KSB8IChudW0gPj4+ICgzMiAtIGNudCkpOworfQorCisv
KgorICogQ29udmVydCBhbiA4LWJpdCBvciAxNi1iaXQgc3RyaW5nIHRvIGFuIGFycmF5IG9mIGJp
Zy1lbmRpYW4gd29yZHMKKyAqIEluIDgtYml0IGZ1bmN0aW9uLCBjaGFyYWN0ZXJzID4yNTUgaGF2
ZSB0aGVpciBoaS1ieXRlIHNpbGVudGx5IGlnbm9yZWQuCisgKi8KK2Z1bmN0aW9uIHN0cjJiaW5i
KHN0cikKK3sKKyAgdmFyIGJpbiA9IEFycmF5KCk7CisgIHZhciBtYXNrID0gKDEgPDwgY2hyc3op
IC0gMTsKKyAgZm9yKHZhciBpID0gMDsgaSA8IHN0ci5sZW5ndGggKiBjaHJzejsgaSArPSBjaHJz
eikKKyAgICBiaW5baT4+NV0gfD0gKHN0ci5jaGFyQ29kZUF0KGkgLyBjaHJzeikgJiBtYXNrKSA8
PCAoMzIgLSBjaHJzeiAtIGklMzIpOworICByZXR1cm4gYmluOworfQorCisvKgorICogQ29udmVy
dCBhbiBhcnJheSBvZiBiaWctZW5kaWFuIHdvcmRzIHRvIGEgc3RyaW5nCisgKi8KK2Z1bmN0aW9u
IGJpbmIyc3RyKGJpbikKK3sKKyAgdmFyIHN0ciA9ICIiOworICB2YXIgbWFzayA9ICgxIDw8IGNo
cnN6KSAtIDE7CisgIGZvcih2YXIgaSA9IDA7IGkgPCBiaW4ubGVuZ3RoICogMzI7IGkgKz0gY2hy
c3opCisgICAgc3RyICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKGJpbltpPj41XSA+Pj4gKDMyIC0g
Y2hyc3ogLSBpJTMyKSkgJiBtYXNrKTsKKyAgcmV0dXJuIHN0cjsKK30KKworLyoKKyAqIENvbnZl
cnQgYW4gYXJyYXkgb2YgYmlnLWVuZGlhbiB3b3JkcyB0byBhIGhleCBzdHJpbmcuCisgKi8KK2Z1
bmN0aW9uIGJpbmIyaGV4KGJpbmFycmF5KQoreworICB2YXIgaGV4X3RhYiA9IGhleGNhc2UgPyAi
MDEyMzQ1Njc4OUFCQ0RFRiIgOiAiMDEyMzQ1Njc4OWFiY2RlZiI7CisgIHZhciBzdHIgPSAiIjsK
KyAgZm9yKHZhciBpID0gMDsgaSA8IGJpbmFycmF5Lmxlbmd0aCAqIDQ7IGkrKykKKyAgeworICAg
IHN0ciArPSBoZXhfdGFiLmNoYXJBdCgoYmluYXJyYXlbaT4+Ml0gPj4gKCgzIC0gaSU0KSo4KzQp
KSAmIDB4RikgKworICAgICAgICAgICBoZXhfdGFiLmNoYXJBdCgoYmluYXJyYXlbaT4+Ml0gPj4g
KCgzIC0gaSU0KSo4ICApKSAmIDB4Rik7CisgIH0KKyAgcmV0dXJuIHN0cjsKK30KKworLyoKKyAq
IENvbnZlcnQgYW4gYXJyYXkgb2YgYmlnLWVuZGlhbiB3b3JkcyB0byBhIGJhc2UtNjQgc3RyaW5n
CisgKi8KK2Z1bmN0aW9uIGJpbmIyYjY0KGJpbmFycmF5KQoreworICB2YXIgdGFiID0gIkFCQ0RF
RkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
Ky8iOworICB2YXIgc3RyID0gIiI7CisgIGZvcih2YXIgaSA9IDA7IGkgPCBiaW5hcnJheS5sZW5n
dGggKiA0OyBpICs9IDMpCisgIHsKKyAgICB2YXIgdHJpcGxldCA9ICgoKGJpbmFycmF5W2kgICA+
PiAyXSA+PiA4ICogKDMgLSAgaSAgICU0KSkgJiAweEZGKSA8PCAxNikKKyAgICAgICAgICAgICAg
ICB8ICgoKGJpbmFycmF5W2krMSA+PiAyXSA+PiA4ICogKDMgLSAoaSsxKSU0KSkgJiAweEZGKSA8
PCA4ICkKKyAgICAgICAgICAgICAgICB8ICAoKGJpbmFycmF5W2krMiA+PiAyXSA+PiA4ICogKDMg
LSAoaSsyKSU0KSkgJiAweEZGKTsKKyAgICBmb3IodmFyIGogPSAwOyBqIDwgNDsgaisrKQorICAg
IHsKKyAgICAgIGlmKGkgKiA4ICsgaiAqIDYgPiBiaW5hcnJheS5sZW5ndGggKiAzMikgc3RyICs9
IGI2NHBhZDsKKyAgICAgIGVsc2Ugc3RyICs9IHRhYi5jaGFyQXQoKHRyaXBsZXQgPj4gNiooMy1q
KSkgJiAweDNGKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIHN0cjsKK30KKworCit2YXIgcGxhaW5U
ZXh0ID0gIlR3byBob3VzZWhvbGRzLCBib3RoIGFsaWtlIGluIGRpZ25pdHksXG5cCitJbiBmYWly
IFZlcm9uYSwgd2hlcmUgd2UgbGF5IG91ciBzY2VuZSxcblwKK0Zyb20gYW5jaWVudCBncnVkZ2Ug
YnJlYWsgdG8gbmV3IG11dGlueSxcblwKK1doZXJlIGNpdmlsIGJsb29kIG1ha2VzIGNpdmlsIGhh
bmRzIHVuY2xlYW4uXG5cCitGcm9tIGZvcnRoIHRoZSBmYXRhbCBsb2lucyBvZiB0aGVzZSB0d28g
Zm9lc1xuXAorQSBwYWlyIG9mIHN0YXItY3Jvc3MnZCBsb3ZlcnMgdGFrZSB0aGVpciBsaWZlO1xu
XAorV2hvbGUgbWlzYWR2ZW50dXJlZCBwaXRlb3VzIG92ZXJ0aHJvd3NcblwKK0RvIHdpdGggdGhl
aXIgZGVhdGggYnVyeSB0aGVpciBwYXJlbnRzJyBzdHJpZmUuXG5cCitUaGUgZmVhcmZ1bCBwYXNz
YWdlIG9mIHRoZWlyIGRlYXRoLW1hcmsnZCBsb3ZlLFxuXAorQW5kIHRoZSBjb250aW51YW5jZSBv
ZiB0aGVpciBwYXJlbnRzJyByYWdlLFxuXAorV2hpY2gsIGJ1dCB0aGVpciBjaGlsZHJlbidzIGVu
ZCwgbm91Z2h0IGNvdWxkIHJlbW92ZSxcblwKK0lzIG5vdyB0aGUgdHdvIGhvdXJzJyB0cmFmZmlj
IG9mIG91ciBzdGFnZTtcblwKK1RoZSB3aGljaCBpZiB5b3Ugd2l0aCBwYXRpZW50IGVhcnMgYXR0
ZW5kLFxuXAorV2hhdCBoZXJlIHNoYWxsIG1pc3MsIG91ciB0b2lsIHNoYWxsIHN0cml2ZSB0byBt
ZW5kLiI7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwyOyBpKyspIHsKKyAgICBwbGFpblRleHQgKz0g
cGxhaW5UZXh0OworfQorCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKXsgc3RhcnRUZXN0KCJz
dW5zcGlkZXItY3J5cHRvLXNoYTEiLCAnYjFmYzE2OGEnKTsKKwordGVzdCgiU0hBMSBIYXNoaW5n
IiwgZnVuY3Rpb24oKXsKKyAgICAgICAgdmFyIHNoYTFPdXRwdXQgPSBoZXhfc2hhMShwbGFpblRl
eHQpOworfSk7CisKK2VuZFRlc3QoKTsgfTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+PC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>