<?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>144524</bug_id>
          
          <creation_ts>2015-05-02 10:21:46 -0700</creation_ts>
          <short_desc>Detune DFG::PhantomInsertionPhase to insert Phantoms maximally late so as to avoid querying bytecode liveness</short_desc>
          <delta_ts>2015-05-02 15:12:16 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1091104</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-02 10:21:46 -0700</bug_when>
    <thetext>This would be a reduction in compile times but also a reduction in throughput of DFG-compiled code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091143</commentid>
    <comment_count>1</comment_count>
      <attachid>252249</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-02 14:54:35 -0700</bug_when>
    <thetext>Created attachment 252249
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1091146</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-02 15:12:16 -0700</bug_when>
    <thetext>This doesn&apos;t appear to be better.


Benchmark report for SunSpider on dethklok (MacBookPro9,1).

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r183718)
&quot;DetunedPhantoms&quot; at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r183721)

Collected 100 samples per benchmark/VM, with 100 VM invocations per benchmark. Emitted a call to gc()
between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the
jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times
with 95% confidence intervals in milliseconds.

                                  TipOfTree              DetunedPhantoms                                  

3d-cube                         5.3233+-0.1250            5.3042+-0.0305        
3d-morph                        5.8984+-0.0865     ?      6.0443+-0.1219        ? might be 1.0247x slower
3d-raytrace                     6.6861+-0.1187     ?      6.7050+-0.1079        ?
access-binary-trees             2.3390+-0.0453     ?      2.3773+-0.0768        ? might be 1.0163x slower
access-fannkuch                 6.1774+-0.0777     ?      6.2872+-0.1330        ? might be 1.0178x slower
access-nbody                    3.0041+-0.0607     !      3.1383+-0.0699        ! definitely 1.0447x slower
access-nsieve                   3.4737+-0.0548     ^      3.3286+-0.0287        ^ definitely 1.0436x faster
bitops-3bit-bits-in-byte        1.6361+-0.0336     ?      1.6433+-0.0260        ?
bitops-bits-in-byte             3.3886+-0.0184     ?      3.4225+-0.0354        ? might be 1.0100x slower
bitops-bitwise-and              2.2676+-0.0617            2.2475+-0.0544        
bitops-nsieve-bits              3.1754+-0.0249     !      3.5718+-0.0273        ! definitely 1.1248x slower
controlflow-recursive           2.3645+-0.0415     ?      2.3792+-0.0828        ?
crypto-aes                      4.5778+-0.0557     ?      4.6347+-0.0830        ? might be 1.0124x slower
crypto-md5                      2.9661+-0.0220     ^      2.7761+-0.0197        ^ definitely 1.0685x faster
crypto-sha1                     2.7874+-0.0541     ?      2.8665+-0.0833        ? might be 1.0284x slower
date-format-tofte               9.9556+-0.3853            9.5920+-0.0543          might be 1.0379x faster
date-format-xparb               6.0086+-0.1248     ?      6.0508+-0.1489        ?
math-cordic                     3.3141+-0.0825     ^      3.1275+-0.0485        ^ definitely 1.0596x faster
math-partial-sums               5.4121+-0.0999     ?      5.5348+-0.1023        ? might be 1.0227x slower
math-spectral-norm              2.0055+-0.0378     !      2.2018+-0.1111        ! definitely 1.0979x slower
regexp-dna                      7.7860+-0.2137            7.7783+-0.2062        
string-base64                   4.9737+-0.1368            4.8204+-0.1130          might be 1.0318x faster
string-fasta                    6.8986+-0.1180     ?      7.0080+-0.1314        ? might be 1.0159x slower
string-tagcloud                10.1560+-0.2007           10.0309+-0.2097          might be 1.0125x faster
string-unpack-code             20.0669+-0.3698     ?     20.3773+-0.5218        ? might be 1.0155x slower
string-validate-input           4.9601+-0.0374     ?      4.9744+-0.0369        ?

&lt;arithmetic&gt;                    5.2924+-0.0265     ?      5.3163+-0.0297        ? might be 1.0045x slower</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252249</attachid>
            <date>2015-05-02 14:54:35 -0700</date>
            <delta_ts>2015-05-02 14:54:35 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>8473</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgzNzIyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBA
CisyMDE1LTA1LTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RGV0dW5lIERGRzo6UGhhbnRvbUluc2VydGlvblBoYXNlIHRvIGluc2VydCBQaGFudG9tcyBtYXhp
bWFsbHkgbGF0ZSBzbyBhcyB0byBhdm9pZCBxdWVyeWluZyBieXRlY29kZSBsaXZlbmVzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0NTI0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGlz
IHJlZHVjZXMgdGhlIHByZWNpc2lvbiBvZiBQaGFudG9tIGluc2VydGlvbiBmb3IgdGhvc2UgYmFz
aWMgYmxvY2tzIHdoZXJlIHByZWNpc2UKKyAgICAgICAgaW5zZXJ0aW9uIGlzIG5vdCBuZWVkZWQg
Zm9yIGNvcnJlY3RuZXNzLiBUaGlzIGluY3JlYXNlcyByZWdpc3RlciBwcmVzc3VyZSBhbmQgdGhl
IGFtb3VudCBvZgorICAgICAgICBzcGlsbHMsIGJ1dCBncmVhdGx5IHJlZHVjZXMgdGhlIGV4ZWN1
dGlvbiB0aW1lIGNvc3Qgb2YgdGhlIFBoYW50b21JbnNlcnRpb25QaGFzZS4KKyAgICAgICAgCisg
ICAgICAgIFN0aWxsIGEgd29yayBpbiBwcm9ncmVzcy4gSSBoYXZlbid0IG1lYXN1cmVkIHBlcmZv
cm1hbmNlIHlldC4KKworICAgICAgICAqIGRmZy9ERkdQaGFudG9tSW5zZXJ0aW9uUGhhc2UuY3Bw
OgorCiAyMDE1LTA1LTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgYWRkIGEgRklYTUUgcmVmZXJlbmNpbmcgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDUyNy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHUGhhbnRvbUluc2VydGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1BoYW50b21JbnNlcnRpb25QaGFzZS5jcHAJKHJldmlzaW9u
IDE4MzcyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGhhbnRvbUluc2VydGlv
blBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsMjQgKzgxLDEyIEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgdm9pZCBoYW5kbGVCbG9jayhCYXNpY0Jsb2NrKiBibG9jaykKICAgICB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBGb3IgYmxvY2tzIHRoYXQgaGF2ZSBsb3cgcmVnaXN0ZXIgcHJlc3N1
cmUsIGl0IHdvdWxkIG1ha2UgdGhlIG1vc3Qgc2Vuc2UgdG8KLSAgICAgICAgLy8gc2ltcGx5IGlu
c2VydCBQaGFudG9tcyBhdCB0aGUgbGFzdCBwb2ludCBwb3NzaWJsZSBzaW5jZSB0aGF0IHdvdWxk
IG9idmlhdGUgdGhlIG5lZWQgdG8KLSAgICAgICAgLy8gcXVlcnkgYnl0ZWNvZGUgbGl2ZW5lc3M6
Ci0gICAgICAgIC8vCi0gICAgICAgIC8vIC0gSWYgd2UgTW92SGludCBAeCBpbnRvIGxvYzQyIHRo
ZW4gcHV0IGEgUGhhbnRvbSBvbiB0aGUgbGFzdCBNb3ZIaW50ZWQgdmFsdWUgaW4gbG9jNDIuCi0g
ICAgICAgIC8vIC0gQXQgdGhlIGVuZCBvZiB0aGUgYmxvY2sgcHV0IFBoYW50b21zIGZvciBlYWNo
IE1vdkhpbnRlZCB2YWx1ZS4KLSAgICAgICAgLy8KLSAgICAgICAgLy8gVGhpcyB3aWxsIGRlZmlu
aXRlbHkgbm90IHdvcmsgaWYgdGhlcmUgYXJlIGFueSBwaGFudG9tIGFsbG9jYXRpb25zLiBGb3Ig
dGhvc2UgYmxvY2tzCi0gICAgICAgIC8vIHdoZXJlIHRoaXMgd291bGQgYmUgbGVnYWwsIGl0IHJl
bWFpbnMgdG8gYmUgc2VlbiBob3cgcHJvZml0YWJsZSBpdCB3b3VsZCBiZSBldmVuIGlmIHRoZXJl
Ci0gICAgICAgIC8vIHdhcyBoaWdoIHJlZ2lzdGVyIHByZXNzdXJlLiBBZnRlciBhbGwsIGEgUGhh
bnRvbSB3b3VsZCBjYXVzZSBhIHNwaWxsIGJ1dCBpdCB3b3VsZG4ndAotICAgICAgICAvLyBjYXVz
ZSBhIGZpbGwuCi0gICAgICAgIC8vCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDQ1MjQKKyAgICAgICAgLy8gQXR0ZW1wdCBmYXN0IGluc2VydGlv
biB0aGF0IGluc2VydHMgbGVzcyBlZmZpY2llbnQgUGhhbnRvbXMgYnV0IGRvZXMgc28gbW9yZSBx
dWlja2x5LgorICAgICAgICBpZiAoYXR0ZW1wdEZhc3RJbnNlcnRpb24oYmxvY2spKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgcmVzZXQoKTsKICAgICAgICAgCi0gICAg
ICAgIG1fdmFsdWVzLmZpbGwobnVsbHB0cik7Ci0KLSAgICAgICAgRXBvY2ggY3VycmVudEVwb2No
ID0gRXBvY2g6OmZpcnN0KCk7Ci0gICAgICAgIHVuc2lnbmVkIGxhc3RFeGl0aW5nSW5kZXggPSAw
OwogICAgICAgICBmb3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9IDA7IG5vZGVJbmRleCA8IGJsb2Nr
LT5zaXplKCk7ICsrbm9kZUluZGV4KSB7CiAgICAgICAgICAgICBOb2RlKiBub2RlID0gYmxvY2st
PmF0KG5vZGVJbmRleCk7CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKQEAgLTEyMyw1NSArMTEx
LDEzMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAobWF5RXhpdChtX2dyYXBoLCBub2RlKSkgewot
ICAgICAgICAgICAgICAgIGN1cnJlbnRFcG9jaC5idW1wKCk7Ci0gICAgICAgICAgICAgICAgbGFz
dEV4aXRpbmdJbmRleCA9IG5vZGVJbmRleDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgbV9ncmFwaC5kb1RvQ2hpbGRyZW4oCi0gICAgICAgICAgICAgICAgbm9kZSwK
LSAgICAgICAgICAgICAgICBbJl0gKEVkZ2UgZWRnZSkgewotICAgICAgICAgICAgICAgICAgICBl
ZGdlLT5zZXRFcG9jaChjdXJyZW50RXBvY2gpOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBub2RlLT5zZXRFcG9jaChjdXJyZW50RXBvY2gpOworICAgICAg
ICAgICAgaGFuZGxlTm9kZUVwb2NoKG5vZGVJbmRleCwgbm9kZSk7CiAKICAgICAgICAgICAgIGZv
ckFsbEtpbGxlZE9wZXJhbmRzKAogICAgICAgICAgICAgICAgIG1fZ3JhcGgsIG5vZGUsIGJsb2Nr
LT50cnlBdChub2RlSW5kZXggKyAxKSwKICAgICAgICAgICAgICAgICBbJl0gKFZpcnR1YWxSZWdp
c3RlciByZWcpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhTG9nKCIgICAgS2lsbGVkIG9wZXJhbmQ6ICIsIHJlZywgIlxuIik7
Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBOb2RlKiBraWxsZWRO
b2RlID0gbV92YWx1ZXMub3BlcmFuZChyZWcpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIWtp
bGxlZE5vZGUpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IG5lZWQgdG8gaW5zZXJ0IGEg
UGhhbnRvbSBpZiB0aGUgbm9kZSBoYXNuJ3QgYmVlbiB1c2VkIHNpbmNlIHRoZSBsYXN0Ci0gICAg
ICAgICAgICAgICAgICAgIC8vIGV4aXQsIGFuZCB3YXMgYm9ybiBiZWZvcmUgdGhlIGxhc3QgZXhp
dC4KLSAgICAgICAgICAgICAgICAgICAgaWYgKGtpbGxlZE5vZGUtPmVwb2NoKCkgPT0gY3VycmVu
dEVwb2NoKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGRhdGFMb2coCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBJbnNl
cnRpbmcgUGhhbnRvbSBvbiAiLCBraWxsZWROb2RlLCAiIGFmdGVyICIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYmxvY2stPmF0KGxhc3RFeGl0aW5nSW5kZXgpLCAiXG4iKTsKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgLy8gV2UgaGF2ZSBleGFjdCByZWYgY291bnRzLCBzbyBjcmVhdGluZyBhIG5ldyB1c2UgbWVh
bnMgdGhhdCB3ZSBoYXZlIHRvCi0gICAgICAgICAgICAgICAgICAgIC8vIGluY3JlbWVudCB0aGUg
cmVmIGNvdW50LgotICAgICAgICAgICAgICAgICAgICBraWxsZWROb2RlLT5wb3N0Zml4UmVmKCk7
Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBtX2luc2VydGlvblNl
dC5pbnNlcnROb2RlKAotICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEV4aXRpbmdJbmRleCAr
IDEsIFNwZWNOb25lLCBQaGFudG9tLAotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmF0
KGxhc3RFeGl0aW5nSW5kZXgpLT5vcmlnaW4sIGtpbGxlZE5vZGUtPmRlZmF1bHRFZGdlKCkpOwot
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIGluc2VydFBoYW50b20oYmxvY2ss
IHJlZyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOworICAgIH0KKyAgICAKKyAgICBib29sIGF0
dGVtcHRGYXN0SW5zZXJ0aW9uKEJhc2ljQmxvY2sqIGJsb2NrKQorICAgIHsKKyAgICAgICAgcmVz
ZXQoKTsKKyAgICAgICAgCisgICAgICAgIGZvciAodW5zaWduZWQgbm9kZUluZGV4ID0gMDsgbm9k
ZUluZGV4IDwgYmxvY2stPnNpemUoKTsgKytub2RlSW5kZXgpIHsKKyAgICAgICAgICAgIE5vZGUq
IG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICAgICAgICAgIGRhdGFMb2coIkNvbnNpZGVyaW5nICIsIG5vZGUsICJcbiIpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKKyAgICAgICAgICAg
IGNhc2UgTW92SGludDoKKyAgICAgICAgICAgICAgICBpbnNlcnRQaGFudG9tKGJsb2NrLCBub2Rl
LT51bmxpbmtlZExvY2FsKCkpOworICAgICAgICAgICAgICAgIG1fdmFsdWVzLm9wZXJhbmQobm9k
ZS0+dW5saW5rZWRMb2NhbCgpKSA9IG5vZGUtPmNoaWxkMSgpLm5vZGUoKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgWm9tYmllSGlu
dDoKKyAgICAgICAgICAgICAgICBpbnNlcnRQaGFudG9tKGJsb2NrLCBub2RlLT51bmxpbmtlZExv
Y2FsKCkpOworICAgICAgICAgICAgICAgIG1fdmFsdWVzLm9wZXJhbmQobm9kZS0+dW5saW5rZWRM
b2NhbCgpKSA9IG51bGxwdHI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAg
IGNhc2UgU2V0TG9jYWw6CisgICAgICAgICAgICBjYXNlIEdldExvY2FsOgorICAgICAgICAgICAg
Y2FzZSBTZXRBcmd1bWVudDogeworICAgICAgICAgICAgICAgIFZpcnR1YWxSZWdpc3RlciByZWcg
PSBub2RlLT5sb2NhbCgpOworICAgICAgICAgICAgICAgIGluc2VydFBoYW50b20oYmxvY2ssIHJl
Zyk7CisgICAgICAgICAgICAgICAgbV92YWx1ZXMub3BlcmFuZChyZWcpID0gbnVsbHB0cjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGNhc2UgUGhhbnRvbURpcmVjdEFyZ3VtZW50czoKKyAgICAgICAgICAgIGNhc2Ug
UGhhbnRvbUNsb25lZEFyZ3VtZW50czoKKyAgICAgICAgICAgICAgICAvLyBEZWFsaW5nIHdpdGgg
dGhlc2Ugbm9kZXMgcmVxdWlyZXMgcHJlY2lzZSBsaXZlbmVzcy4gSGVuY2Vmb3J0aCB3ZSBpbnNl
cnQgUGhhbnRvbXMKKyAgICAgICAgICAgICAgICAvLyBwcmVjaXNlbHkgZm9yIHRoaXMgYmxvY2su
IEJ1dCwgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgUGhhbnRvbXMgd2UgaW5zZXJ0ZWQK
KyAgICAgICAgICAgICAgICAvLyBzbyBmYXIgZ2V0IGluc2VydGVkIGZvciByZWFsLgorICAgICAg
ICAgICAgICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOworICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGhhbmRsZU5vZGVFcG9jaChub2RlSW5kZXgsIG5vZGUpOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX3ZhbHVlcy5zaXplKCk7IGktLTspIHsK
KyAgICAgICAgICAgIGlmIChOb2RlKiBub2RlID0gbV92YWx1ZXNbaV0pCisgICAgICAgICAgICAg
ICAgaW5zZXJ0UGhhbnRvbShibG9jaywgbm9kZSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAg
ICAgIG1faW5zZXJ0aW9uU2V0LmV4ZWN1dGUoYmxvY2spOworICAgICAgICAKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIAorICAgIHZvaWQgcmVzZXQoKQorICAgIHsKKyAgICAgICAg
bV92YWx1ZXMuZmlsbChudWxscHRyKTsKKyAgICAgICAgbV9jdXJyZW50RXBvY2ggPSBFcG9jaDo6
Zmlyc3QoKTsKKyAgICAgICAgbV9sYXN0RXhpdGluZ0luZGV4ID0gMDsKKyAgICB9CisgICAgCisg
ICAgdm9pZCBoYW5kbGVOb2RlRXBvY2godW5zaWduZWQgbm9kZUluZGV4LCBOb2RlKiBub2RlKQor
ICAgIHsKKyAgICAgICAgaWYgKG1heUV4aXQobV9ncmFwaCwgbm9kZSkpIHsKKyAgICAgICAgICAg
IG1fY3VycmVudEVwb2NoLmJ1bXAoKTsKKyAgICAgICAgICAgIG1fbGFzdEV4aXRpbmdJbmRleCA9
IG5vZGVJbmRleDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgbV9ncmFwaC5kb1RvQ2hp
bGRyZW4oCisgICAgICAgICAgICBub2RlLAorICAgICAgICAgICAgWyZdIChFZGdlIGVkZ2UpIHsK
KyAgICAgICAgICAgICAgICBlZGdlLT5zZXRFcG9jaChtX2N1cnJlbnRFcG9jaCk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgCisgICAgICAgIG5vZGUtPnNldEVwb2NoKG1fY3VycmVudEVwb2No
KTsKKyAgICB9CisgICAgCisgICAgdm9pZCBpbnNlcnRQaGFudG9tKEJhc2ljQmxvY2sqIGJsb2Nr
LCBWaXJ0dWFsUmVnaXN0ZXIgcmVnKQorICAgIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgICAgICBkYXRhTG9nKCIgICAgS2lsbGVkIG9wZXJhbmQ6ICIsIHJlZywgIlxuIik7CisgICAg
ICAgIAorICAgICAgICBpbnNlcnRQaGFudG9tKGJsb2NrLCBtX3ZhbHVlcy5vcGVyYW5kKHJlZykp
OworICAgIH0KKyAgICAKKyAgICB2b2lkIGluc2VydFBoYW50b20oQmFzaWNCbG9jayogYmxvY2ss
IE5vZGUqIGtpbGxlZE5vZGUpCisgICAgeworICAgICAgICBpZiAoIWtpbGxlZE5vZGUpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICAvLyBXZSBvbmx5IG5lZWQgdG8gaW5z
ZXJ0IGEgUGhhbnRvbSBpZiB0aGUgbm9kZSBoYXNuJ3QgYmVlbiB1c2VkIHNpbmNlIHRoZSBsYXN0
CisgICAgICAgIC8vIGV4aXQsIGFuZCB3YXMgYm9ybiBiZWZvcmUgdGhlIGxhc3QgZXhpdC4KKyAg
ICAgICAgaWYgKGtpbGxlZE5vZGUtPmVwb2NoKCkgPT0gbV9jdXJyZW50RXBvY2gpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAg
ICAgZGF0YUxvZygKKyAgICAgICAgICAgICAgICAiICAgIEluc2VydGluZyBQaGFudG9tIG9uICIs
IGtpbGxlZE5vZGUsICIgYWZ0ZXIgIiwKKyAgICAgICAgICAgICAgICBibG9jay0+YXQobV9sYXN0
RXhpdGluZ0luZGV4KSwgIlxuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIFdl
IGhhdmUgZXhhY3QgcmVmIGNvdW50cywgc28gY3JlYXRpbmcgYSBuZXcgdXNlIG1lYW5zIHRoYXQg
d2UgaGF2ZSB0bworICAgICAgICAvLyBpbmNyZW1lbnQgdGhlIHJlZiBjb3VudC4KKyAgICAgICAg
a2lsbGVkTm9kZS0+cG9zdGZpeFJlZigpOworICAgICAgICAKKyAgICAgICAgbV9pbnNlcnRpb25T
ZXQuaW5zZXJ0Tm9kZSgKKyAgICAgICAgICAgIG1fbGFzdEV4aXRpbmdJbmRleCArIDEsIFNwZWNO
b25lLCBQaGFudG9tLAorICAgICAgICAgICAgYmxvY2stPmF0KG1fbGFzdEV4aXRpbmdJbmRleCkt
Pm9yaWdpbiwga2lsbGVkTm9kZS0+ZGVmYXVsdEVkZ2UoKSk7CiAgICAgfQogICAgIAogICAgIElu
c2VydGlvblNldCBtX2luc2VydGlvblNldDsKICAgICBPcGVyYW5kczxOb2RlKj4gbV92YWx1ZXM7
CisgICAgRXBvY2ggbV9jdXJyZW50RXBvY2g7CisgICAgdW5zaWduZWQgbV9sYXN0RXhpdGluZ0lu
ZGV4OwogfTsKIAogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>