<?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>152736</bug_id>
          
          <creation_ts>2016-01-05 10:31:27 -0800</creation_ts>
          <short_desc>Make ftl-polymorphic-xxx tests more polymorphic.</short_desc>
          <delta_ts>2016-01-05 12:39:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Local 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>
          <dependson>152708</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1152751</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-05 10:31:27 -0800</bug_when>
    <thetext>This is needed to show the benefits of the bug fix in r194560: &lt;http://trac.webkit.org/r194560&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152760</commentid>
    <comment_count>1</comment_count>
      <attachid>268291</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-05 10:53:01 -0800</bug_when>
    <thetext>Created attachment 268291
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152761</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-05 10:54:24 -0800</bug_when>
    <thetext>Benchmark results:

32-bit x86:
                                   base32                    new32                                       

ftl-polymorphic-bitand       438.6813+-5.5200     ^    419.3707+-8.7194        ^ definitely 1.0460x faster
ftl-polymorphic-bitor        436.4698+-9.0457          423.4412+-13.4575         might be 1.0308x faster
ftl-polymorphic-bitxor       435.5074+-7.7446          420.9383+-10.8230         might be 1.0346x faster
ftl-polymorphic-div         1035.5532+-19.3121    ^    888.5800+-12.8470       ^ definitely 1.1654x faster
ftl-polymorphic-lshift       477.8201+-7.1122     ?    484.8278+-3.9323        ? might be 1.0147x slower
ftl-polymorphic-mul          734.8997+-13.1643    ^    556.3594+-2.5985        ^ definitely 1.3209x faster
ftl-polymorphic-rshift       471.3873+-11.0434    ?    485.7097+-6.5891        ? might be 1.0304x slower
ftl-polymorphic-sub          664.7216+-24.3030    ^    485.1122+-7.4716        ^ definitely 1.3702x faster
ftl-polymorphic-urshift      556.2922+-7.1576     ^    489.4644+-20.6402       ^ definitely 1.1365x faster

&lt;geometric&gt;                  558.4487+-2.4824     ^    503.1079+-5.0828        ^ definitely 1.1100x faster

64-bit x86_64:
                                   base64                    new64                                       

ftl-polymorphic-bitand       429.4120+-11.6639    ^    158.4169+-9.2592        ^ definitely 2.7106x faster
ftl-polymorphic-bitor        426.9303+-6.4924     ^    158.1396+-3.5201        ^ definitely 2.6997x faster
ftl-polymorphic-bitxor       433.5088+-2.9996     ^    157.8170+-4.6547        ^ definitely 2.7469x faster
ftl-polymorphic-div         1043.1423+-9.7208     ^    615.3205+-2.7054        ^ definitely 1.6953x faster
ftl-polymorphic-lshift       510.7916+-10.2317    ^    201.7161+-9.6339        ^ definitely 2.5322x faster
ftl-polymorphic-mul          617.5995+-20.1207    ^    302.7993+-7.9359        ^ definitely 2.0396x faster
ftl-polymorphic-rshift       522.7670+-23.1329    ^    203.2807+-7.0183        ^ definitely 2.5717x faster
ftl-polymorphic-sub          530.7805+-3.3946     ^    233.0609+-16.9867       ^ definitely 2.2774x faster
ftl-polymorphic-urshift      581.1417+-12.3496    ^    216.1865+-7.5609        ^ definitely 2.6881x faster

&lt;geometric&gt;                  544.6146+-6.9738     ^    225.6836+-2.9312        ^ definitely 2.4132x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152833</commentid>
    <comment_count>3</comment_count>
      <attachid>268291</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-05 12:39:04 -0800</bug_when>
    <thetext>Comment on attachment 268291
proposed patch.

Clearing flags on attachment: 268291

Committed r194597: &lt;http://trac.webkit.org/changeset/194597&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152834</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-05 12:39:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268291</attachid>
            <date>2016-01-05 10:53:01 -0800</date>
            <delta_ts>2016-01-05 12:39:04 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-152736.patch</filename>
            <type>text/plain</type>
            <size>15312</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5NDU4OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE2LTAxLTA1ICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGZ0bC1wb2x5bW9ycGhpYy14eHggdGVzdHMg
bW9yZSBwb2x5bW9ycGhpYy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1MjczNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIDEuIENoYW5nZSB0aGUgdGVzdCBkcml2ZXIgdG8gYWx0ZXJuYXRlIGlucHV0cyBi
ZXR3ZWVuIG51bWVyaWMgb3BlcmFuZHMgYW5kCisgICAgICAgICAgIGFuIG9iamVjdCB3aXRoIGEg
dmFsdWVPZigpIG1ldGhvZC4KKyAgICAgICAgMi4gQ2hhbmdlZCBidXN5IHdvcmsgYmxvYiB0byB1
c2UgdGhlIG9wZXJhdG9yIGJlaW5nIHRlc3RlZCBpbnN0ZWFkIG9mIGFsd2F5cyB1c2luZworICAg
ICAgICAgICB0aGUgKyBvcGVyYXRvci4KKyAgICAgICAgMy4gVXBkYXRlZCB0ZXN0IHJlc3VsdHMu
CisKKyAgICAgICAgV2l0aCB0aGVzZSBjaGFuZ2UsIHRoZSB0ZXN0cyBlYWNoIHRyaWdnZXJzIGFy
b3VuZCA0OTAwMCsgc3BlY3VsYXRpb24gZmFpbHVyZXMgd2hlbgorICAgICAgICBydW4gYXMgYSBi
ZW5jaG1hcmsgb24gdGhlIFZNIGJlZm9yZSB0aGUgZml4IGZvciBodHRwczovL3dlYmtpdC5vcmcv
Yi8xNTI3MDgKKyAgICAgICAgbGFuZGVkIChpbiByMTk0NTYwOiA8aHR0cDovL3RyYWMud2Via2l0
Lm9yZy9yMTk0NTYwPikuICBBZnRlciB0aGUgZml4LCB0aGUKKyAgICAgICAgbnVtYmVyIG9mIHNw
ZWN1bGF0aW9uIGZhaWx1cmVzIGlzIGFyb3VuZCAxMSBvciBsb3dlci4KKworICAgICAgICBUaGUg
YmVuY2htYXJrIHBlcmYgd2l0aCB0aGVzZSB0ZXN0cyBzaG93cyBhYm91dCBhIDEwJSBnYWluIG9u
IHg4NiAoMzItYml0IHdpdGggbm8KKyAgICAgICAgRlRMKSBhbmQgYWJvdXQgMnggb24geDg2XzY0
ICg2NC1iaXQgd2l0aCBGVEwpLgorCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
ZnRsLXBvbHltb3JwaGljLWJpdGFuZC5qczoKKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9mdGwtcG9seW1vcnBoaWMtYml0b3IuanM6CisgICAgICAgICoganMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvZnRsLXBvbHltb3JwaGljLWJpdHhvci5qczoKKyAgICAgICAgKiBqcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9mdGwtcG9seW1vcnBoaWMtZGl2LmpzOgorICAgICAgICAqIGpzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2Z0bC1wb2x5bW9ycGhpYy1sc2hpZnQuanM6CisgICAgICAgICoganMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvZnRsLXBvbHltb3JwaGljLW11bC5qczoKKyAgICAgICAgKiBq
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mdGwtcG9seW1vcnBoaWMtcnNoaWZ0LmpzOgorICAgICAg
ICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Z0bC1wb2x5bW9ycGhpYy1zdWIuanM6CisgICAg
ICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZnRsLXBvbHltb3JwaGljLXVyc2hpZnQuanM6
CisKIDIwMTYtMDEtMDUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIEluZGV4ZWREQiBUZXN0RXhwZWN0YXRpb25zIGdhcmRlbmluZy4KSW5kZXg6IExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Z0bC1wb2x5bW9ycGhpYy1iaXRhbmQuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZnRsLXBvbHlt
b3JwaGljLWJpdGFuZC5qcwkocmV2aXNpb24gMTk0NTg5KQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvZnRsLXBvbHltb3JwaGljLWJpdGFuZC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMTUsOCArMTUsMTUgQEAgZnVuY3Rpb24gZm9vKGEsIGIpIHsKICAgICAgICAgICAgIHRl
bXAgPSBiICYgMTsKICAgICAgICAgcmVzdWx0ICs9IHRlbXA7CiAgICAgfQotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDsgaSsrKQotICAgICAgICByZXN1bHQgKz0gaTsKKworICAgIC8vIEJ1
c3kgd29yayBqdXN0IHRvIGFsbG93IHRoZSBERkcgYW5kIEZUTCB0byBvcHRpbWl6ZSB0aGlzIG91
dC4gSWYgdGhlIGFib3ZlIGNhdXNlcworICAgIC8vIHVzIHRvIHNwZWN1bGF0aW9uIGZhaWwgb3V0
IHRvIHRoZSBiYXNlbGluZSwgdGhpcyBidXN5IHdvcmsgd2lsbCB0YWtlIGEgbG90IGxvbmdlcgor
ICAgIC8vIHRvIHJ1bi4KKyAgICAvLyBUaGlzIGxvb3AgYmVsb3cgYWxzbyBnZXRzIHRoZSBERkcg
dG8gY29tcGlsZSB0aGlzIGZ1bmN0aW9uIHNvb25lci4KKyAgICB2YXIgb3JpZ1Jlc3VsdCA9IHJl
c3VsdDsKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgcmVzdWx0
ID0gcmVzdWx0ICYgaTsKKyAgICByZXN1bHQgPSBvcmlnUmVzdWx0ID4gcmVzdWx0ID8gb3JpZ1Jl
c3VsdCA6IHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0OwogfQogbm9JbmxpbmUoZm9vKTsKQEAg
LTI2LDE2ICszMywxOSBAQCB2YXIgZXhwZWN0ZWRSZXN1bHQ7CiBpZiAodGhpcy53aW5kb3cpIHsK
ICAgICAvLyBUaGUgbGF5b3V0IHRlc3QgZG9lc24ndCBsaWtlIHRvbyBtYW55IGl0ZXJhdGlvbnMg
YW5kIG1heSB0aW1lIG91dC4KICAgICBpdGVyYXRpb25zID0gMTAwMDA7Ci0gICAgZXhwZWN0ZWRS
ZXN1bHQgPSA0OTk1OTk5MTgwOworICAgIGV4cGVjdGVkUmVzdWx0ID0gNDk5NjYwOwogfSBlbHNl
IHsKICAgICBpdGVyYXRpb25zID0gMTAwMDAwOwotICAgIGV4cGVjdGVkUmVzdWx0ID0gNDk5NTU0
OTkxODA7CisgICAgZXhwZWN0ZWRSZXN1bHQgPSA0OTk5NjYwOwogfQogCiAKIGZvciAodmFyIGkg
PSAwOyBpIDw9IGl0ZXJhdGlvbnM7IGkrKykgewotICAgIG8xLmkgPSBpICsgMjsKLSAgICByZXN1
bHQgKz0gZm9vKG8xLCAxMCk7CisgICAgbzEuaSA9IGk7CisgICAgaWYgKGkgJSAyKQorICAgICAg
ICByZXN1bHQgKz0gZm9vKG8xLCAxMCk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgKz0gZm9v
KGksIDEwKTsKIH0KIAogaWYgKHJlc3VsdCAhPSBleHBlY3RlZFJlc3VsdCkKSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Z0bC1wb2x5bW9ycGhpYy1iaXRvci5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mdGwtcG9s
eW1vcnBoaWMtYml0b3IuanMJKHJldmlzaW9uIDE5NDU4OSkKKysrIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2Z0bC1wb2x5bW9ycGhpYy1iaXRvci5qcwkod29ya2luZyBjb3B5
KQpAQCAtMTUsOCArMTUsMTUgQEAgZnVuY3Rpb24gZm9vKGEsIGIpIHsKICAgICAgICAgICAgIHRl
bXAgPSBiIHwgMTsKICAgICAgICAgcmVzdWx0ICs9IHRlbXA7CiAgICAgfQotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDsgaSsrKQotICAgICAgICByZXN1bHQgKz0gaTsKKworICAgIC8vIEJ1
c3kgd29yayBqdXN0IHRvIGFsbG93IHRoZSBERkcgYW5kIEZUTCB0byBvcHRpbWl6ZSB0aGlzIG91
dC4gSWYgdGhlIGFib3ZlIGNhdXNlcworICAgIC8vIHVzIHRvIHNwZWN1bGF0aW9uIGZhaWwgb3V0
IHRvIHRoZSBiYXNlbGluZSwgdGhpcyBidXN5IHdvcmsgd2lsbCB0YWtlIGEgbG90IGxvbmdlcgor
ICAgIC8vIHRvIHJ1bi4KKyAgICAvLyBUaGlzIGxvb3AgYmVsb3cgYWxzbyBnZXRzIHRoZSBERkcg
dG8gY29tcGlsZSB0aGlzIGZ1bmN0aW9uIHNvb25lci4KKyAgICB2YXIgb3JpZ1Jlc3VsdCA9IHJl
c3VsdDsKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgcmVzdWx0
ID0gcmVzdWx0IHwgaTsKKyAgICByZXN1bHQgPSBvcmlnUmVzdWx0ID4gcmVzdWx0ID8gb3JpZ1Jl
c3VsdCA6IHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0OwogfQogbm9JbmxpbmUoZm9vKTsKQEAg
LTI2LDE2ICszMywxOSBAQCB2YXIgZXhwZWN0ZWRSZXN1bHQ7CiBpZiAodGhpcy53aW5kb3cpIHsK
ICAgICAvLyBUaGUgbGF5b3V0IHRlc3QgZG9lc24ndCBsaWtlIHRvbyBtYW55IGl0ZXJhdGlvbnMg
YW5kIG1heSB0aW1lIG91dC4KICAgICBpdGVyYXRpb25zID0gMTAwMDA7Ci0gICAgZXhwZWN0ZWRS
ZXN1bHQgPSA1NDk2MjQ5NDkwOworICAgIGV4cGVjdGVkUmVzdWx0ID0gNTA1NzAwNTkxOwogfSBl
bHNlIHsKICAgICBpdGVyYXRpb25zID0gMTAwMDAwOwotICAgIGV4cGVjdGVkUmVzdWx0ID0gOTk5
NTc5OTk0OTA7CisgICAgZXhwZWN0ZWRSZXN1bHQgPSA1MDA1NjkxMjIyMzsKIH0KIAogCiBmb3Ig
KHZhciBpID0gMDsgaSA8PSBpdGVyYXRpb25zOyBpKyspIHsKLSAgICBvMS5pID0gaSArIDI7Ci0g
ICAgcmVzdWx0ICs9IGZvbyhvMSwgMTApOworICAgIG8xLmkgPSBpOworICAgIGlmIChpICUgMikK
KyAgICAgICAgcmVzdWx0ICs9IGZvbyhvMSwgMTApOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0
ICs9IGZvbyhpLCAxMCk7CiB9CiAKIGlmIChyZXN1bHQgIT0gZXhwZWN0ZWRSZXN1bHQpCkluZGV4
OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mdGwtcG9seW1vcnBoaWMtYml0
eG9yLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2Z0bC1wb2x5bW9ycGhpYy1iaXR4b3IuanMJKHJldmlzaW9uIDE5NDU4OSkKKysrIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Z0bC1wb2x5bW9ycGhpYy1iaXR4b3IuanMJKHdv
cmtpbmcgY29weSkKQEAgLTE1LDggKzE1LDE1IEBAIGZ1bmN0aW9uIGZvbyhhLCBiKSB7CiAgICAg
ICAgICAgICB0ZW1wID0gYiBeIDE7CiAgICAgICAgIHJlc3VsdCArPSB0ZW1wOwogICAgIH0KLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKLSAgICAgICAgcmVzdWx0ICs9IGk7CisK
KyAgICAvLyBCdXN5IHdvcmsganVzdCB0byBhbGxvdyB0aGUgREZHIGFuZCBGVEwgdG8gb3B0aW1p
emUgdGhpcyBvdXQuIElmIHRoZSBhYm92ZSBjYXVzZXMKKyAgICAvLyB1cyB0byBzcGVjdWxhdGlv
biBmYWlsIG91dCB0byB0aGUgYmFzZWxpbmUsIHRoaXMgYnVzeSB3b3JrIHdpbGwgdGFrZSBhIGxv
dCBsb25nZXIKKyAgICAvLyB0byBydW4uCisgICAgLy8gVGhpcyBsb29wIGJlbG93IGFsc28gZ2V0
cyB0aGUgREZHIHRvIGNvbXBpbGUgdGhpcyBmdW5jdGlvbiBzb29uZXIuCisgICAgdmFyIG9yaWdS
ZXN1bHQgPSByZXN1bHQ7CisgICAgZm9yICh2YXIgaSA9IDE7IGkgPCAxMDAwOyBpKyspCisgICAg
ICAgIHJlc3VsdCA9IHJlc3VsdCBeIGk7CisgICAgcmVzdWx0ID0gb3JpZ1Jlc3VsdCA+IHJlc3Vs
dCA/IG9yaWdSZXN1bHQgOiByZXN1bHQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIG5vSW5saW5l
KGZvbyk7CkBAIC0yNiwxNiArMzMsMTkgQEAgdmFyIGV4cGVjdGVkUmVzdWx0OwogaWYgKHRoaXMu
d2luZG93KSB7CiAgICAgLy8gVGhlIGxheW91dCB0ZXN0IGRvZXNuJ3QgbGlrZSB0b28gbWFueSBp
dGVyYXRpb25zIGFuZCBtYXkgdGltZSBvdXQuCiAgICAgaXRlcmF0aW9ucyA9IDEwMDAwOwotICAg
IGV4cGVjdGVkUmVzdWx0ID0gNTQ5NTc0OTgxMDsKKyAgICBleHBlY3RlZFJlc3VsdCA9IDUwMDA1
MDM0MDsKIH0gZWxzZSB7CiAgICAgaXRlcmF0aW9ucyA9IDEwMDAwMDsKLSAgICBleHBlY3RlZFJl
c3VsdCA9IDk5OTUyOTk5ODEwOworICAgIGV4cGVjdGVkUmVzdWx0ID0gNTAwMDA1MDAzNDA7CiB9
CiAKIAogZm9yICh2YXIgaSA9IDA7IGkgPD0gaXRlcmF0aW9uczsgaSsrKSB7Ci0gICAgbzEuaSA9
IGkgKyAyOwotICAgIHJlc3VsdCArPSBmb28obzEsIDEwKTsKKyAgICBvMS5pID0gaTsKKyAgICBp
ZiAoaSAlIDIpCisgICAgICAgIHJlc3VsdCArPSBmb28obzEsIDEwKTsKKyAgICBlbHNlCisgICAg
ICAgIHJlc3VsdCArPSBmb28oaSwgMTApOwogfQogCiBpZiAocmVzdWx0ICE9IGV4cGVjdGVkUmVz
dWx0KQpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZnRsLXBvbHlt
b3JwaGljLWRpdi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9mdGwtcG9seW1vcnBoaWMtZGl2LmpzCShyZXZpc2lvbiAxOTQ1ODkpCisrKyBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mdGwtcG9seW1vcnBoaWMtZGl2LmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0xMywxMSArMTMsMjAgQEAgZnVuY3Rpb24gZm9vKGEsIGIpIHsKICAg
ICAgICAgICAgIHRlbXAgPSBhIC8gYjsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGVtcCA9
IGIgLyAxOwotICAgICAgICB0ZW1wID0gdGVtcCB8IDA7CiAgICAgICAgIHJlc3VsdCArPSB0ZW1w
OwogICAgIH0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKLSAgICAgICAgcmVz
dWx0ICs9IGk7CisKKyAgICAvLyBSZW1vdmUgcm91bmRpbmcgZXJyb3JzIHNvIHdlIGNhbiBoYXZl
IGEgcHJlZGljdGFibGUgdGVzdCByZXN1bHQuCisgICAgcmVzdWx0ID0gcmVzdWx0IHwgMDsKKwor
ICAgIC8vIEJ1c3kgd29yayBqdXN0IHRvIGFsbG93IHRoZSBERkcgYW5kIEZUTCB0byBvcHRpbWl6
ZSB0aGlzIG91dC4gSWYgdGhlIGFib3ZlIGNhdXNlcworICAgIC8vIHVzIHRvIHNwZWN1bGF0aW9u
IGZhaWwgb3V0IHRvIHRoZSBiYXNlbGluZSwgdGhpcyBidXN5IHdvcmsgd2lsbCB0YWtlIGEgbG90
IGxvbmdlcgorICAgIC8vIHRvIHJ1bi4KKyAgICAvLyBUaGlzIGxvb3AgYmVsb3cgYWxzbyBnZXRz
IHRoZSBERkcgdG8gY29tcGlsZSB0aGlzIGZ1bmN0aW9uIHNvb25lci4KKyAgICB2YXIgb3JpZ1Jl
c3VsdCA9IHJlc3VsdDsKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8IDEwMDA7IGkrKykKKyAgICAg
ICAgcmVzdWx0ID0gcmVzdWx0IC8gaTsKKyAgICByZXN1bHQgPSBvcmlnUmVzdWx0ID4gcmVzdWx0
ID8gb3JpZ1Jlc3VsdCA6IHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0OwogfQogbm9JbmxpbmUo
Zm9vKTsKQEAgLTI3LDE2ICszNiwxOSBAQCB2YXIgZXhwZWN0ZWRSZXN1bHQ7CiBpZiAodGhpcy53
aW5kb3cpIHsKICAgICAvLyBUaGUgbGF5b3V0IHRlc3QgZG9lc24ndCBsaWtlIHRvbyBtYW55IGl0
ZXJhdGlvbnMgYW5kIG1heSB0aW1lIG91dC4KICAgICBpdGVyYXRpb25zID0gMTAwMDA7Ci0gICAg
ZXhwZWN0ZWRSZXN1bHQgPSA1MDQ1NDgwMzkwOworICAgIGV4cGVjdGVkUmVzdWx0ID0gNTAwMDI4
MTQ7CiB9IGVsc2UgewogICAgIGl0ZXJhdGlvbnMgPSAxMDAwMDA7Ci0gICAgZXhwZWN0ZWRSZXN1
bHQgPSA1NDk1MDMwMDM5MDsKKyAgICBleHBlY3RlZFJlc3VsdCA9IDUwMDAwMTc1OTU7CiB9CiAK
IAogZm9yICh2YXIgaSA9IDA7IGkgPD0gaXRlcmF0aW9uczsgaSsrKSB7Ci0gICAgbzEuaSA9IGkg
KyAyOwotICAgIHJlc3VsdCArPSBmb28obzEsIDEwKTsKKyAgICBvMS5pID0gaTsKKyAgICBpZiAo
aSAlIDIpCisgICAgICAgIHJlc3VsdCArPSBmb28obzEsIDEwKTsKKyAgICBlbHNlCisgICAgICAg
IHJlc3VsdCArPSBmb28oaSwgMTApOwogfQogCiBpZiAocmVzdWx0ICE9IGV4cGVjdGVkUmVzdWx0
KQpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZnRsLXBvbHltb3Jw
aGljLWxzaGlmdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9mdGwtcG9seW1vcnBoaWMtbHNoaWZ0LmpzCShyZXZpc2lvbiAxOTQ1ODkpCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mdGwtcG9seW1vcnBoaWMtbHNoaWZ0
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw4ICsxNSwxNSBAQCBmdW5jdGlvbiBmb28oYSwgYikg
ewogICAgICAgICAgICAgdGVtcCA9IGIgPDwgMTsKICAgICAgICAgcmVzdWx0ICs9IHRlbXA7CiAg
ICAgfQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKQotICAgICAgICByZXN1bHQg
Kz0gaTsKKworICAgIC8vIEJ1c3kgd29yayBqdXN0IHRvIGFsbG93IHRoZSBERkcgYW5kIEZUTCB0
byBvcHRpbWl6ZSB0aGlzIG91dC4gSWYgdGhlIGFib3ZlIGNhdXNlcworICAgIC8vIHVzIHRvIHNw
ZWN1bGF0aW9uIGZhaWwgb3V0IHRvIHRoZSBiYXNlbGluZSwgdGhpcyBidXN5IHdvcmsgd2lsbCB0
YWtlIGEgbG90IGxvbmdlcgorICAgIC8vIHRvIHJ1bi4KKyAgICAvLyBUaGlzIGxvb3AgYmVsb3cg
YWxzbyBnZXRzIHRoZSBERkcgdG8gY29tcGlsZSB0aGlzIGZ1bmN0aW9uIHNvb25lci4KKyAgICB2
YXIgb3JpZ1Jlc3VsdCA9IHJlc3VsdDsKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8IDEwMDA7IGkr
KykKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0IDw8IGk7CisgICAgcmVzdWx0ID0gb3JpZ1Jlc3Vs
dCA+IHJlc3VsdCA/IG9yaWdSZXN1bHQgOiByZXN1bHQ7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IG5vSW5saW5lKGZvbyk7CkBAIC0yNiwxNiArMzMsMTkgQEAgdmFyIGV4cGVjdGVkUmVzdWx0Owog
aWYgKHRoaXMud2luZG93KSB7CiAgICAgLy8gVGhlIGxheW91dCB0ZXN0IGRvZXNuJ3QgbGlrZSB0
b28gbWFueSBpdGVyYXRpb25zIGFuZCBtYXkgdGltZSBvdXQuCiAgICAgaXRlcmF0aW9ucyA9IDEw
MDAwOwotICAgIGV4cGVjdGVkUmVzdWx0ID0gNTE3MjUwOTY4ODIwOworICAgIGV4cGVjdGVkUmVz
dWx0ID0gNTEyMDUwNjM5MDAwOwogfSBlbHNlIHsKICAgICBpdGVyYXRpb25zID0gMTAwMDAwOwot
ICAgIGV4cGVjdGVkUmVzdWx0ID0gNTEyNTI1MDk5Njg4MjA7CisgICAgZXhwZWN0ZWRSZXN1bHQg
PSA1MTIwMDUxMTQzOTAwMDsKIH0KIAogCiBmb3IgKHZhciBpID0gMDsgaSA8PSBpdGVyYXRpb25z
OyBpKyspIHsKLSAgICBvMS5pID0gaSArIDI7Ci0gICAgcmVzdWx0ICs9IGZvbyhvMSwgMTApOwor
ICAgIG8xLmkgPSBpOworICAgIGlmIChpICUgMikKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhvMSwg
MTApOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhpLCAxMCk7CiB9CiAKIGlmIChy
ZXN1bHQgIT0gZXhwZWN0ZWRSZXN1bHQpCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9mdGwtcG9seW1vcnBoaWMtbXVsLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Z0bC1wb2x5bW9ycGhpYy1tdWwuanMJKHJldmlz
aW9uIDE5NDU4OSkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Z0bC1w
b2x5bW9ycGhpYy1tdWwuanMJKHdvcmtpbmcgY29weSkKQEAgLTEzLDggKzEzLDE1IEBAIGZ1bmN0
aW9uIGZvbyhhLCBiKSB7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlc3VsdCArPSBiICog
MTsKICAgICB9Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspCi0gICAgICAgIHJl
c3VsdCArPSBpOworCisgICAgLy8gQnVzeSB3b3JrIGp1c3QgdG8gYWxsb3cgdGhlIERGRyBhbmQg
RlRMIHRvIG9wdGltaXplIHRoaXMgb3V0LiBJZiB0aGUgYWJvdmUgY2F1c2VzCisgICAgLy8gdXMg
dG8gc3BlY3VsYXRpb24gZmFpbCBvdXQgdG8gdGhlIGJhc2VsaW5lLCB0aGlzIGJ1c3kgd29yayB3
aWxsIHRha2UgYSBsb3QgbG9uZ2VyCisgICAgLy8gdG8gcnVuLgorICAgIC8vIFRoaXMgbG9vcCBi
ZWxvdyBhbHNvIGdldHMgdGhlIERGRyB0byBjb21waWxlIHRoaXMgZnVuY3Rpb24gc29vbmVyLgor
ICAgIHZhciBvcmlnUmVzdWx0ID0gcmVzdWx0OworICAgIGZvciAodmFyIGkgPSAxOyBpIDwgMTAw
MDsgaSsrKQorICAgICAgICByZXN1bHQgPSByZXN1bHQgKiBpOworICAgIHJlc3VsdCA9IG9yaWdS
ZXN1bHQgPCByZXN1bHQgPyBvcmlnUmVzdWx0IDogcmVzdWx0OwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiBub0lubGluZShmb28pOwpAQCAtMjQsMTYgKzMxLDE5IEBAIHZhciBleHBlY3RlZFJlc3Vs
dDsKIGlmICh0aGlzLndpbmRvdykgewogICAgIC8vIFRoZSBsYXlvdXQgdGVzdCBkb2Vzbid0IGxp
a2UgdG9vIG1hbnkgaXRlcmF0aW9ucyBhbmQgbWF5IHRpbWUgb3V0LgogICAgIGl0ZXJhdGlvbnMg
PSAxMDAwMDsKLSAgICBleHBlY3RlZFJlc3VsdCA9IDk5OTc5OTUyMDA7CisgICAgZXhwZWN0ZWRS
ZXN1bHQgPSA1MDAwNDk1NjAwOwogfSBlbHNlIHsKICAgICBpdGVyYXRpb25zID0gMTAwMDAwOwot
ICAgIGV4cGVjdGVkUmVzdWx0ID0gNTQ5OTc1NDk1MjAwOworICAgIGV4cGVjdGVkUmVzdWx0ID0g
NTAwMDA0OTk1NjAwOwogfQogCiAKIGZvciAodmFyIGkgPSAwOyBpIDw9IGl0ZXJhdGlvbnM7IGkr
KykgewotICAgIG8xLmkgPSBpICsgMjsKLSAgICByZXN1bHQgKz0gZm9vKG8xLCAxMCk7CisgICAg
bzEuaSA9IGk7CisgICAgaWYgKGkgJSAyKQorICAgICAgICByZXN1bHQgKz0gZm9vKG8xLCAxMCk7
CisgICAgZWxzZQorICAgICAgICByZXN1bHQgKz0gZm9vKGksIDEwKTsKIH0KIAogaWYgKHJlc3Vs
dCAhPSBleHBlY3RlZFJlc3VsdCkKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2Z0bC1wb2x5bW9ycGhpYy1yc2hpZnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZnRsLXBvbHltb3JwaGljLXJzaGlmdC5qcwkocmV2
aXNpb24gMTk0NTg5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZnRs
LXBvbHltb3JwaGljLXJzaGlmdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMTUsOCArMTUsMTUgQEAg
ZnVuY3Rpb24gZm9vKGEsIGIpIHsKICAgICAgICAgICAgIHRlbXAgPSBiID4+IDE7CiAgICAgICAg
IHJlc3VsdCArPSB0ZW1wOwogICAgIH0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkr
KykKLSAgICAgICAgcmVzdWx0ICs9IGk7CisKKyAgICAvLyBCdXN5IHdvcmsganVzdCB0byBhbGxv
dyB0aGUgREZHIGFuZCBGVEwgdG8gb3B0aW1pemUgdGhpcyBvdXQuIElmIHRoZSBhYm92ZSBjYXVz
ZXMKKyAgICAvLyB1cyB0byBzcGVjdWxhdGlvbiBmYWlsIG91dCB0byB0aGUgYmFzZWxpbmUsIHRo
aXMgYnVzeSB3b3JrIHdpbGwgdGFrZSBhIGxvdCBsb25nZXIKKyAgICAvLyB0byBydW4uCisgICAg
Ly8gVGhpcyBsb29wIGJlbG93IGFsc28gZ2V0cyB0aGUgREZHIHRvIGNvbXBpbGUgdGhpcyBmdW5j
dGlvbiBzb29uZXIuCisgICAgdmFyIG9yaWdSZXN1bHQgPSByZXN1bHQ7CisgICAgZm9yICh2YXIg
aSA9IDE7IGkgPCAxMDAwOyBpKyspCisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCA+PiBpOworICAg
IHJlc3VsdCA9IG9yaWdSZXN1bHQgPiByZXN1bHQgPyBvcmlnUmVzdWx0IDogcmVzdWx0OwogICAg
IHJldHVybiByZXN1bHQ7CiB9CiBub0lubGluZShmb28pOwpAQCAtMjYsMTYgKzMzLDE5IEBAIHZh
ciBleHBlY3RlZFJlc3VsdDsKIGlmICh0aGlzLndpbmRvdykgewogICAgIC8vIFRoZSBsYXlvdXQg
dGVzdCBkb2Vzbid0IGxpa2UgdG9vIG1hbnkgaXRlcmF0aW9ucyBhbmQgbWF5IHRpbWUgb3V0Lgog
ICAgIGl0ZXJhdGlvbnMgPSAxMDAwMDsKLSAgICBleHBlY3RlZFJlc3VsdCA9IDQ5OTU5Mzk0MjA7
CisgICAgZXhwZWN0ZWRSZXN1bHQgPSA0Mzk4NDA7CiB9IGVsc2UgewogICAgIGl0ZXJhdGlvbnMg
PSAxMDAwMDA7Ci0gICAgZXhwZWN0ZWRSZXN1bHQgPSA0OTk5ODgzMjE0MDsKKyAgICBleHBlY3Rl
ZFJlc3VsdCA9IDQ4MzMwODAwOwogfQogCiAKIGZvciAodmFyIGkgPSAwOyBpIDw9IGl0ZXJhdGlv
bnM7IGkrKykgewotICAgIG8xLmkgPSBpICsgMjsKLSAgICByZXN1bHQgKz0gZm9vKG8xLCAxMCk7
CisgICAgbzEuaSA9IGk7CisgICAgaWYgKGkgJSAyKQorICAgICAgICByZXN1bHQgKz0gZm9vKG8x
LCAxMCk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgKz0gZm9vKGksIDEwKTsKIH0KIAogaWYg
KHJlc3VsdCAhPSBleHBlY3RlZFJlc3VsdCkKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2Z0bC1wb2x5bW9ycGhpYy1zdWIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZnRsLXBvbHltb3JwaGljLXN1Yi5qcwkocmV2
aXNpb24gMTk0NTg5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvZnRs
LXBvbHltb3JwaGljLXN1Yi5qcwkod29ya2luZyBjb3B5KQpAQCAtMTcsNiArMTcsMTUgQEAgZnVu
Y3Rpb24gZm9vKGEsIGIpIHsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmVzdWx0ICs9IGIg
LSAxOwogICAgIH0KKworICAgIC8vIEJ1c3kgd29yayBqdXN0IHRvIGFsbG93IHRoZSBERkcgYW5k
IEZUTCB0byBvcHRpbWl6ZSB0aGlzIG91dC4gSWYgdGhlIGFib3ZlIGNhdXNlcworICAgIC8vIHVz
IHRvIHNwZWN1bGF0aW9uIGZhaWwgb3V0IHRvIHRoZSBiYXNlbGluZSwgdGhpcyBidXN5IHdvcmsg
d2lsbCB0YWtlIGEgbG90IGxvbmdlcgorICAgIC8vIHRvIHJ1bi4KKyAgICAvLyBUaGlzIGxvb3Ag
YmVsb3cgYWxzbyBnZXRzIHRoZSBERkcgdG8gY29tcGlsZSB0aGlzIGZ1bmN0aW9uIHNvb25lci4K
KyAgICB2YXIgb3JpZ1Jlc3VsdCA9IHJlc3VsdDsKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8IDEw
MDA7IGkrKykKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0IC0gaTsKKyAgICByZXN1bHQgPSBvcmln
UmVzdWx0IDwgcmVzdWx0ID8gb3JpZ1Jlc3VsdCA6IHJlc3VsdDsKICAgICByZXR1cm4gcmVzdWx0
OwogfQogbm9JbmxpbmUoZm9vKTsKQEAgLTI2LDE3ICszNSwxOSBAQCB2YXIgZXhwZWN0ZWRSZXN1
bHQ7CiBpZiAodGhpcy53aW5kb3cpIHsKICAgICAvLyBUaGUgbGF5b3V0IHRlc3QgZG9lc24ndCBs
aWtlIHRvbyBtYW55IGl0ZXJhdGlvbnMgYW5kIG1heSB0aW1lIG91dC4KICAgICBpdGVyYXRpb25z
ID0gMTAwMDA7Ci0gICAgZXhwZWN0ZWRSZXN1bHQgPSAyMDAwMjA7CisgICAgZXhwZWN0ZWRSZXN1
bHQgPSAtNDQ5NjQ0ODA2MDsKIH0gZWxzZSB7CiAgICAgaXRlcmF0aW9ucyA9IDEwMDAwMDsKLSAg
ICBleHBlY3RlZFJlc3VsdCA9IDIwMDAwMjA7CisgICAgZXhwZWN0ZWRSZXN1bHQgPSA0MDAwMTk0
MDsKIH0KIAogCiBmb3IgKHZhciBpID0gMDsgaSA8PSBpdGVyYXRpb25zOyBpKyspIHsKLSAgICBv
MS5pID0gaSArIDI7Ci0gICAgbzIuaSA9IGk7Ci0gICAgcmVzdWx0ICs9IGZvbyhvMSwgbzIpOwor
ICAgIG8xLmkgPSBpOworICAgIGlmIChpICUgMikKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhvMSwg
MTApOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhpLCAxMCk7CiB9CiAKIGlmIChy
ZXN1bHQgIT0gZXhwZWN0ZWRSZXN1bHQpCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9mdGwtcG9seW1vcnBoaWMtdXJzaGlmdC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9mdGwtcG9seW1vcnBoaWMtdXJzaGlmdC5q
cwkocmV2aXNpb24gMTk0NTg5KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvZnRsLXBvbHltb3JwaGljLXVyc2hpZnQuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1LDggKzE1
LDE1IEBAIGZ1bmN0aW9uIGZvbyhhLCBiKSB7CiAgICAgICAgICAgICB0ZW1wID0gYiA+Pj4gMTsK
ICAgICAgICAgcmVzdWx0ICs9IHRlbXA7CiAgICAgfQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDsgaSsrKQotICAgICAgICByZXN1bHQgKz0gaTsKKworICAgIC8vIEJ1c3kgd29yayBqdXN0
IHRvIGFsbG93IHRoZSBERkcgYW5kIEZUTCB0byBvcHRpbWl6ZSB0aGlzIG91dC4gSWYgdGhlIGFi
b3ZlIGNhdXNlcworICAgIC8vIHVzIHRvIHNwZWN1bGF0aW9uIGZhaWwgb3V0IHRvIHRoZSBiYXNl
bGluZSwgdGhpcyBidXN5IHdvcmsgd2lsbCB0YWtlIGEgbG90IGxvbmdlcgorICAgIC8vIHRvIHJ1
bi4KKyAgICAvLyBUaGlzIGxvb3AgYmVsb3cgYWxzbyBnZXRzIHRoZSBERkcgdG8gY29tcGlsZSB0
aGlzIGZ1bmN0aW9uIHNvb25lci4KKyAgICB2YXIgb3JpZ1Jlc3VsdCA9IHJlc3VsdDsKKyAgICBm
b3IgKHZhciBpID0gMTsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ID4+
PiBpOworICAgIHJlc3VsdCA9IG9yaWdSZXN1bHQgPiByZXN1bHQgPyBvcmlnUmVzdWx0IDogcmVz
dWx0OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiBub0lubGluZShmb28pOwpAQCAtMjYsMTYgKzMz
LDE5IEBAIHZhciBleHBlY3RlZFJlc3VsdDsKIGlmICh0aGlzLndpbmRvdykgewogICAgIC8vIFRo
ZSBsYXlvdXQgdGVzdCBkb2Vzbid0IGxpa2UgdG9vIG1hbnkgaXRlcmF0aW9ucyBhbmQgbWF5IHRp
bWUgb3V0LgogICAgIGl0ZXJhdGlvbnMgPSAxMDAwMDsKLSAgICBleHBlY3RlZFJlc3VsdCA9IDQ5
OTU5Mzk0MjA7CisgICAgZXhwZWN0ZWRSZXN1bHQgPSA0Mzk4NDA7CiB9IGVsc2UgewogICAgIGl0
ZXJhdGlvbnMgPSAxMDAwMDA7Ci0gICAgZXhwZWN0ZWRSZXN1bHQgPSA0OTk5ODgzMjE0MDsKKyAg
ICBleHBlY3RlZFJlc3VsdCA9IDQ4MzMwODAwOwogfQogCiAKIGZvciAodmFyIGkgPSAwOyBpIDw9
IGl0ZXJhdGlvbnM7IGkrKykgewotICAgIG8xLmkgPSBpICsgMjsKLSAgICByZXN1bHQgKz0gZm9v
KG8xLCAxMCk7CisgICAgbzEuaSA9IGk7CisgICAgaWYgKGkgJSAyKQorICAgICAgICByZXN1bHQg
Kz0gZm9vKG8xLCAxMCk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgKz0gZm9vKGksIDEwKTsK
IH0KIAogaWYgKHJlc3VsdCAhPSBleHBlY3RlZFJlc3VsdCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>