<?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>113668</bug_id>
          
          <creation_ts>2013-03-31 17:38:52 -0700</creation_ts>
          <short_desc>fourthTier: FTL JIT should support GetByVal on Int32 arrays</short_desc>
          <delta_ts>2013-03-31 21:19:14 -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>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>112840</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>866846</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-31 17:38:52 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866848</commentid>
    <comment_count>1</comment_count>
      <attachid>195910</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-31 17:48:44 -0700</bug_when>
    <thetext>Created attachment 195910
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866849</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-31 17:50:58 -0700</bug_when>
    <thetext>This allows me to measure this program, and see what is going on:

function foo(o) {
    var result = 0;
    for (var i = 0; i &lt; o.length; ++i)
        result += o[i];
    return result;
}

var array = [];
for (var i = 0; i &lt; 1000; ++i)
    array.push(i);

eval(&quot;// Blah&quot;); // prevent DFG compilation of global code.

function run(whichRun, numRuns) {
    eval(&quot;// Blah&quot;); // prevent DFG compilation of this function.
    
    var result = 0;
    var before = preciseTime();
    for (var i = 0; i &lt; numRuns; ++i)
        result += foo(array);
    var after = preciseTime();
    
    var expected = numRuns * (array.length - 1) * array.length / 2;
    if (result != expected)
        throw &quot;Error: bad result: &quot; + result + &quot;; expected: &quot; + expected;
    print(whichRun + &quot;: &quot; + numRuns +&quot; iterations took &quot; + (after - before) * 1000 + &quot; ms.&quot;);
}

run(&quot;Warmup&quot;, 1000);
run(&quot;Warmup&quot;, 10000);
run(&quot;Measurement&quot;, 100000);


Here are the results without FTL:

[pizlo@dethklok OpenSource] DYLD_FRAMEWORK_PATH=WebKitBuild/Release/ WebKitBuild/Release/jsc --useExperimentalFTL=false test3.js
Warmup: 1000 iterations took 3.092050552368164 ms.
Warmup: 10000 iterations took 20.300865173339844 ms.
Measurement: 100000 iterations took 198.03905487060547 ms.


And with FTL:

[pizlo@dethklok OpenSource] DYLD_FRAMEWORK_PATH=WebKitBuild/Release/ WebKitBuild/Release/jsc --useExperimentalFTL=true test3.js
Warmup: 1000 iterations took 6.757020950317383 ms.
Warmup: 10000 iterations took 14.333009719848633 ms.
Measurement: 100000 iterations took 141.18385314941406 ms.


It&apos;s interesting that we pay a ~3.7ms cost to compile this function, but it pays off not too long after that.  Note that 3.7ms includes doing all of the initialization that the FTL does (JIT execution engine creation, module creation, blah, blah).  I suspect we can bring this down if we wanted to just by doing smarter things on our end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866853</commentid>
    <comment_count>3</comment_count>
      <attachid>195912</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-31 18:01:40 -0700</bug_when>
    <thetext>Created attachment 195912
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866866</commentid>
    <comment_count>4</comment_count>
      <attachid>195912</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-03-31 19:23:24 -0700</bug_when>
    <thetext>Comment on attachment 195912
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=195912&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        Also adds an option to enable LICM. LICM isn&apos;t doing me any good right

Since people in this project might not know what LICM is, can you please expand this abbreviation the first time you use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866891</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-31 21:18:26 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 195912 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=195912&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:10
&gt; &gt; +        Also adds an option to enable LICM. LICM isn&apos;t doing me any good right
&gt; 
&gt; Since people in this project might not know what LICM is, can you please expand this abbreviation the first time you use it.

Yup, will do!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>866893</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-31 21:19:14 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/147297</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195910</attachid>
            <date>2013-03-31 17:48:44 -0700</date>
            <delta_ts>2013-03-31 18:01:40 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>3203</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3MjkyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDEzLTAzLTMxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogRlRMIEpJVCBzaG91bGQgc3VwcG9ydCBHZXRCeVZhbCBvbiBJbnQzMiBhcnJh
eXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzY2
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAg
ICAgSXQgYWN0dWFsbHkgYWxyZWFkeSBzdXBwb3J0ZWQgdGhpcywgYnV0IG5lZWRlZCB0byBiZSB0
b2xkIHRoYXQgaXQgZGlkLgorICAgICAgICAKKyAgICAgICAgQWxzbyBhZGRzIGFuIG9wdGlvbiB0
byBlbmFibGUgTElDTS4gTElDTSBpc24ndCBkb2luZyBtZSBhbnkgZ29vZCByaWdodAorICAgICAg
ICBub3csIGJ1dCBJIGd1ZXNzIEknbGwgaGF2ZSB0byBwbGF5IHdpdGggaXQgbW9yZS4KKworICAg
ICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNv
bXBpbGUpOgorICAgICAgICAqIGZ0bC9GVExDb21waWxlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRM
Ojpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAg
ICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21waWxlR2V0QnlWYWwpOgorICAgICAgICAq
IHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAoSlNDKToKKwogMjAxMy0wMy0zMSAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIGZvdXJ0aFRpZXI6IEZUTCBKSVQg
c2hvdWxkIHN1cHBseSBUQkFBIG1ldGEtZGF0YSB0byBMTFZNCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lvbiAxNDcyODYpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMSw2ICsxMDEsNyBAQCBib29sIGNhbkNvbXBpbGUoR3JhcGgmIGdyYXBoKQog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAg
ICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgeworICAgICAgICAg
ICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgICAgICAgICAgICAgIGNhc2UgQXJyYXk6OkNv
bnRpZ3VvdXM6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENvbXBpbGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHJl
dmlzaW9uIDE0NzI4NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDggQEAgdm9pZCBjb21waWxlKFN0YXRlJiBz
dGF0ZSwgUmVmUHRyPEpTQzo6SgogICAgIExMVk1BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhw
YXNzKTsKICAgICBMTFZNQWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKHBhc3MpOwogICAgIExM
Vk1BZGRQcm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MocGFzcyk7CisgICAgaWYgKE9wdGlvbnM6
OmVuYWJsZUxMVk1MSUNNKCkpCisgICAgICAgIExMVk1BZGRMSUNNUGFzcyhwYXNzKTsKICAgICBM
TFZNQWRkR1ZOUGFzcyhwYXNzKTsKICAgICBMTFZNQWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNzKHBh
c3MpOwogICAgIExMVk1SdW5QYXNzTWFuYWdlcihwYXNzLCBzdGF0ZS5tb2R1bGUpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJl
dmlzaW9uIDE0NzI5MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0xMVk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDIsNiArNjAyLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1fbm9kZS0+Y2hpbGQzKCkpOwogICAg
ICAgICAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgeworICAg
ICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czog
ewogICAgICAgICAgICAgaWYgKG1fbm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKSB7CiAg
ICAgICAgICAgICAgICAgc3BlY3VsYXRlKApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTQ3MjkyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIFwKICAgICB2KGJvb2wsIHVzZUV4cGVyaW1lbnRhbEZUTCwgZmFsc2Up
IFwKICAgICB2KGJvb2wsIHVzZUZUTFRCQUEsIHRydWUpIFwKKyAgICB2KGJvb2wsIGVuYWJsZUxM
Vk1MSUNNLCB0cnVlKSBcCiAgICAgXAogICAgIHYoYm9vbCwgZW5hYmxlUHJvZmlsZXIsIGZhbHNl
KSBcCiAgICAgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195912</attachid>
            <date>2013-03-31 18:01:40 -0700</date>
            <delta_ts>2013-03-31 19:23:24 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>3758</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ3MjkyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEzLTAzLTMxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Zm91cnRoVGllcjogRlRMIEpJVCBzaG91bGQgc3VwcG9ydCBHZXRCeVZhbCBvbiBJbnQzMiBhcnJh
eXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzY2
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAg
ICAgSXQgYWN0dWFsbHkgYWxyZWFkeSBzdXBwb3J0ZWQgdGhpcywgYnV0IG5lZWRlZCB0byBiZSB0
b2xkIHRoYXQgaXQgZGlkLgorICAgICAgICAKKyAgICAgICAgQWxzbyBhZGRzIGFuIG9wdGlvbiB0
byBlbmFibGUgTElDTS4gTElDTSBpc24ndCBkb2luZyBtZSBhbnkgZ29vZCByaWdodAorICAgICAg
ICBub3csIGJ1dCBJIGd1ZXNzIEknbGwgaGF2ZSB0byBwbGF5IHdpdGggaXQgbW9yZS4gQW5kIHRo
aXMgYWRkcyB0aGUKKyAgICAgICAgYWJpbGl0eSB0byB0d2VhayB0aGUgTExWTSBvcHRpbWl6YXRp
b24gbGV2ZWwgZnJvbSB0aGUgY29tbWFuZC1saW5lLgorCisgICAgICAgICogZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICog
ZnRsL0ZUTENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGUpOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvTExWTS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJE
RkdUb0xMVk06OmNvbXBpbGVHZXRCeVZhbCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6
CisgICAgICAgIChKU0MpOgorCiAyMDEzLTAzLTMxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgZm91cnRoVGllcjogRlRMIEpJVCBzaG91bGQgc3VwcGx5IFRCQUEg
bWV0YS1kYXRhIHRvIExMVk0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2Fw
YWJpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHAJKHJldmlzaW9uIDE0NzI4NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEw
MSw3IEBAIGJvb2wgY2FuQ29tcGlsZShHcmFwaCYgZ3JhcGgpCiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlIEdldEJ5VmFsOgogICAgICAgICAgICAgICAgIHN3aXRjaCAo
bm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBBcnJheTo6
SW50MzI6CiAgICAgICAgICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVsdDoKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkocmV2aXNpb24gMTQ3Mjg2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTQsNyArNTQsNyBAQCB2b2lkIGNvbXBpbGUoU3RhdGUmIHN0YXRlLCBSZWZQdHI8SlNDOjpK
CiAgICAgTExWTUV4ZWN1dGlvbkVuZ2luZVJlZiBlbmdpbmU7CiAgICAgY2hhciogZXJyb3IgPSAw
OwogICAgIAotICAgIGlmIChMTFZNQ3JlYXRlSklUQ29tcGlsZXJGb3JNb2R1bGUoJmVuZ2luZSwg
c3RhdGUubW9kdWxlLCAyLCAmZXJyb3IpKSB7CisgICAgaWYgKExMVk1DcmVhdGVKSVRDb21waWxl
ckZvck1vZHVsZSgmZW5naW5lLCBzdGF0ZS5tb2R1bGUsIE9wdGlvbnM6Omxsdm1PcHRpbWl6YXRp
b25MZXZlbCgpLCAmZXJyb3IpKSB7CiAgICAgICAgIGRhdGFMb2coIkZBVEFMOiBDb3VsZCBub3Qg
Y3JlYXRlIExMVk0gZXhlY3V0aW9uIGVuZ2luZTogIiwgZXJyb3IsICJcbiIpOwogICAgICAgICBD
UkFTSCgpOwogICAgIH0KQEAgLTY0LDYgKzY0LDggQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0
ZSwgUmVmUHRyPEpTQzo6SgogICAgIExMVk1BZGRDb25zdGFudFByb3BhZ2F0aW9uUGFzcyhwYXNz
KTsKICAgICBMTFZNQWRkSW5zdHJ1Y3Rpb25Db21iaW5pbmdQYXNzKHBhc3MpOwogICAgIExMVk1B
ZGRQcm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MocGFzcyk7CisgICAgaWYgKE9wdGlvbnM6OmVu
YWJsZUxMVk1MSUNNKCkpCisgICAgICAgIExMVk1BZGRMSUNNUGFzcyhwYXNzKTsKICAgICBMTFZN
QWRkR1ZOUGFzcyhwYXNzKTsKICAgICBMTFZNQWRkQ0ZHU2ltcGxpZmljYXRpb25QYXNzKHBhc3Mp
OwogICAgIExMVk1SdW5QYXNzTWFuYWdlcihwYXNzLCBzdGF0ZS5tb2R1bGUpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlz
aW9uIDE0NzI5MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xM
Vk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDIsNiArNjAyLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgTFZhbHVlIHN0b3JhZ2UgPSBsb3dTdG9yYWdlKG1fbm9kZS0+Y2hpbGQzKCkpOwogICAgICAg
ICAKICAgICAgICAgc3dpdGNoIChtX25vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgeworICAgICAg
ICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czogewog
ICAgICAgICAgICAgaWYgKG1fbm9kZS0+YXJyYXlNb2RlKCkuaXNJbkJvdW5kcygpKSB7CiAgICAg
ICAgICAgICAgICAgc3BlY3VsYXRlKApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaAkocmV2aXNpb24gMTQ3MjkyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw4IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIFwKICAgICB2KGJvb2wsIHVzZUV4cGVyaW1lbnRhbEZUTCwgZmFsc2UpIFwK
ICAgICB2KGJvb2wsIHVzZUZUTFRCQUEsIHRydWUpIFwKKyAgICB2KGJvb2wsIGVuYWJsZUxMVk1M
SUNNLCB0cnVlKSBcCisgICAgdih1bnNpZ25lZCwgbGx2bU9wdGltaXphdGlvbkxldmVsLCAyKSBc
CiAgICAgXAogICAgIHYoYm9vbCwgZW5hYmxlUHJvZmlsZXIsIGZhbHNlKSBcCiAgICAgXAo=
</data>
<flag name="review"
          id="217880"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>