<?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>155066</bug_id>
          
          <creation_ts>2016-03-05 13:18:18 -0800</creation_ts>
          <short_desc>[JSC] Improve DFG&apos;s Int32 ArithMul if one operand is a constant</short_desc>
          <delta_ts>2016-07-06 01:49:57 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159419</see_also>
          <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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1171248</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-05 13:18:18 -0800</bug_when>
    <thetext>[JSC] Improve DFG&apos;s Int32 ArithMul if one operand is a constant</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171249</commentid>
    <comment_count>1</comment_count>
      <attachid>273095</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-05 13:20:56 -0800</bug_when>
    <thetext>Created attachment 273095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171251</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-05 13:24:03 -0800</bug_when>
    <thetext>On x86:

                                                  Conf#1                    Conf#2                                      
SunSpider:
   3d-cube                                    4.8574+-0.0942     ?      4.9586+-0.4402        ? might be 1.0208x slower
   3d-morph                                   5.4292+-0.1108            5.2627+-0.1277          might be 1.0316x faster
   3d-raytrace                                5.7309+-0.0814     ?      5.7358+-0.1402        ?
   access-binary-trees                        2.1811+-0.0356     ?      2.2704+-0.1346        ? might be 1.0409x slower
   access-fannkuch                            6.0306+-0.0310     ?      6.1673+-0.1569        ? might be 1.0227x slower
   access-nbody                               2.6757+-0.0282     ?      2.7220+-0.0931        ? might be 1.0173x slower
   access-nsieve                              3.0526+-0.1448     ?      3.1037+-0.0760        ? might be 1.0168x slower
   bitops-3bit-bits-in-byte                   1.1945+-0.0199            1.1929+-0.0217        
   bitops-bits-in-byte                        3.4227+-0.1034            3.3877+-0.0882          might be 1.0103x faster
   bitops-bitwise-and                         2.0744+-0.0540     ?      2.0977+-0.0887        ? might be 1.0112x slower
   bitops-nsieve-bits                         3.0978+-0.0797            3.0790+-0.0487        
   controlflow-recursive                      2.3872+-0.0456     ?      2.3875+-0.0353        ?
   crypto-aes                                 4.0471+-0.0578     ?      4.0732+-0.1036        ?
   crypto-md5                                 2.6192+-0.0518     ?      2.6222+-0.0522        ?
   crypto-sha1                                2.4140+-0.0805            2.3640+-0.0562          might be 1.0211x faster
   date-format-tofte                          6.9142+-0.1727            6.8816+-0.2214        
   date-format-xparb                          4.9666+-0.1661     ?      4.9904+-0.2258        ?
   math-cordic                                2.9794+-0.0564            2.9450+-0.0476          might be 1.0117x faster
   math-partial-sums                          4.9584+-0.0882     ?      5.1454+-0.1990        ? might be 1.0377x slower
   math-spectral-norm                         2.0969+-0.0865            2.0386+-0.0222          might be 1.0286x faster
   regexp-dna                                 6.2249+-0.3411            6.0432+-0.0780          might be 1.0301x faster
   string-base64                              4.6161+-0.1515            4.5806+-0.1563        
   string-fasta                               5.9429+-0.0534     ?      6.0599+-0.1392        ? might be 1.0197x slower
   string-tagcloud                            8.3477+-0.3241            8.1136+-0.0791          might be 1.0289x faster
   string-unpack-code                        19.3762+-0.7380           19.3469+-0.5949        
   string-validate-input                      4.2718+-0.0704            4.2703+-0.0463        

   &lt;arithmetic&gt;                               4.6888+-0.0323            4.6862+-0.0348          might be 1.0006x faster

                                                  Conf#1                    Conf#2                                      
Octane:
   encrypt                                   0.16074+-0.00373          0.16054+-0.00255       
   decrypt                                   2.84634+-0.01231    ?     2.90101+-0.05048       ? might be 1.0192x slower
   deltablue                        x2       0.13985+-0.00333    ?     0.14099+-0.00498       ?
   earley                                    0.28637+-0.00466    ?     0.29061+-0.00613       ? might be 1.0148x slower
   boyer                                     4.83655+-0.14904          4.82590+-0.10295       
   navier-stokes                    x2       4.95935+-0.04868    ?     5.04649+-0.09020       ? might be 1.0176x slower
   raytrace                         x2       0.91296+-0.01631          0.90195+-0.01531         might be 1.0122x faster
   richards                         x2       0.08361+-0.00153          0.08264+-0.00172         might be 1.0118x faster
   splay                            x2       0.35900+-0.00737          0.35345+-0.00570         might be 1.0157x faster
   regexp                           x2      22.74265+-0.20699         22.61226+-0.27018       
   pdfjs                            x2      39.10015+-0.67469    ?    39.20070+-0.58727       ?
   mandreel                         x2      43.56655+-0.79587         43.51428+-0.73368       
   gbemu                            x2      25.43622+-0.68800         25.12550+-0.26923         might be 1.0124x faster
   closure                                   0.57296+-0.01032          0.57119+-0.00617       
   jquery                                    7.56814+-0.15480          7.53549+-0.15188       
   box2d                            x2       9.46705+-0.10887          9.45053+-0.18078       
   zlib                             x2     386.78442+-6.43039        382.73842+-10.62118        might be 1.0106x faster
   typescript                       x2     670.32375+-9.92398        663.69694+-7.88898       

   &lt;geometric&gt;                               5.31266+-0.02572          5.29786+-0.02609         might be 1.0028x faster

                                                  Conf#1                    Conf#2                                      
Kraken:
   ai-astar                                   98.730+-2.492             98.202+-1.550         
   audio-beat-detection                       48.095+-0.461             47.844+-0.747         
   audio-dft                                  98.439+-1.589      ?      98.719+-1.726         ?
   audio-fft                                  35.763+-0.031      ?      35.839+-0.112         ?
   audio-oscillator                           49.159+-0.611      ?      50.012+-1.183         ? might be 1.0173x slower
   imaging-darkroom                           60.761+-0.648      ?      61.739+-1.542         ? might be 1.0161x slower
   imaging-desaturate                         48.170+-2.823             44.998+-1.174           might be 1.0705x faster
   imaging-gaussian-blur                      69.332+-2.026             67.029+-2.817           might be 1.0343x faster
   json-parse-financial                       37.904+-0.657             37.619+-0.590         
   json-stringify-tinderbox                   25.889+-0.869             25.392+-0.641           might be 1.0196x faster
   stanford-crypto-aes                        40.299+-0.574      ?      40.782+-1.057         ? might be 1.0120x slower
   stanford-crypto-ccm                        37.424+-1.511             36.843+-1.109           might be 1.0158x faster
   stanford-crypto-pbkdf2                    102.496+-1.580            101.809+-1.012         
   stanford-crypto-sha256-iterative           39.130+-0.571      ?      39.223+-0.565         ?

   &lt;arithmetic&gt;                               56.542+-0.345             56.146+-0.378           might be 1.0070x faster

                                                  Conf#1                    Conf#2                                      
AsmBench:
   bigfib.cpp                               439.7751+-6.6319     ?    441.5120+-7.3034        ?
   cray.c                                   370.3835+-6.3444          369.3076+-4.2756        
   dry.c                                    438.1455+-20.7315         434.1410+-25.0515       
   FloatMM.c                                727.2488+-18.5120         717.0821+-10.0868         might be 1.0142x faster
   gcc-loops.cpp                           3769.6583+-86.5835        3717.7134+-55.0558         might be 1.0140x faster
   n-body.c                                 818.7570+-10.4321         810.6736+-4.3607        
   Quicksort.c                              406.9741+-8.7269          399.8831+-8.3981          might be 1.0177x faster
   stepanov_container.cpp                  3321.5985+-45.1519    ?   3356.6512+-81.9616       ? might be 1.0106x slower
   Towers.c                                 270.9259+-1.7801     ?    271.2108+-4.7590        ?

   &lt;geometric&gt;                              729.3612+-6.2916          725.1048+-5.9318          might be 1.0059x faster

                                                  Conf#1                    Conf#2                                      
Geomean of preferred means:
   &lt;scaled-result&gt;                           31.8351+-0.1122           31.7059+-0.0901          might be 1.0041x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171259</commentid>
    <comment_count>3</comment_count>
      <attachid>273095</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-05 13:54:05 -0800</bug_when>
    <thetext>Comment on attachment 273095
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:3682
&gt; +    case Int32Use:
&gt; +        if (node-&gt;child2()-&gt;isInt32Constant()) {

I think that the more canonical way to structure this control flow is:

    case Int32Use: {
        if (node-&gt;child2()-&gt;isInt32Constant()) {
            ...
            return;
        }
        ...
        return;
    }

This gets rid of an &quot;else&quot; clause.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171492</commentid>
    <comment_count>4</comment_count>
      <attachid>273156</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-06 18:13:40 -0800</bug_when>
    <thetext>Created attachment 273156
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171503</commentid>
    <comment_count>5</comment_count>
      <attachid>273156</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-06 19:20:58 -0800</bug_when>
    <thetext>Comment on attachment 273156
Patch for landing

Clearing flags on attachment: 273156

Committed r197655: &lt;http://trac.webkit.org/changeset/197655&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1171504</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-06 19:21:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273095</attachid>
            <date>2016-03-05 13:20:56 -0800</date>
            <delta_ts>2016-03-06 18:13:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155066-20160305132042.patch</filename>
            <type>text/plain</type>
            <size>7935</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OTdiN2NhODRhZmE4NjI0NGE0YzA5NDM2MTdlNGIzNDM3N2Q2MmFkLi44OTM3MDJiNTFkMDYwNDFk
MDA1NzJjNTcxZGM2YjczMDdjZGJkN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxNi0wMy0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW0pTQ10gSW1wcm92ZSBERkcncyBJbnQzMiBBcml0aE11bCBpZiBv
bmUgb3BlcmFuZCBpcyBhIGNvbnN0YW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTUwNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIG11bHRpcGx5aW5nIGFuIGludGVnZXIgYnkgYSBjb25zdGFu
dCwgREZHIHdhcyBkb2luZyBxdWl0ZQorICAgICAgICBhIGJpdCB3b3JzZSB0aGFuIGJhc2VsaW5l
IEpJVC4KKyAgICAgICAgV2Ugd2VyZSBsb2FkaW5nIHRoZSBjb25zdGFudCBpbnRvIGEgcmVnaXN0
ZXIsIGRvaW5nIHRoZSBtdWx0aXBseSwKKyAgICAgICAgdGhlIGNoZWNraW5nIHRoZSByZXN1bHQg
YW5kIGJvdGggb3BlcmFuZHMgZm9yIG5lZ2F0aXZlIHplcm8uCisKKyAgICAgICAgVGhpcyBwYXRj
aCBjaGFuZ2VzOgorICAgICAgICAtVXNlIHRoZSBtdWx0aXBseS1ieS1pbW1lZGlhdGUgZm9ybSBv
biB4ODYuCisgICAgICAgIC1EbyBhcyBmZXcgY2hlY2tzIGFzIHBvc3NpYmxlIHRvIGRldGVjdCBu
ZWdhdGl2ZS16ZXJvLgorCisgICAgICAgIEluIG1vc3QgY2FzZXMsIHRoaXMgcmVkdWNlIHRoZSBu
ZWdhdGl2ZS16ZXJvIGNoZWNrcworICAgICAgICB0byB6ZXJvIG9yIG9uZSBURVNUK0pVTVAuCisK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TWFj
cm9Bc3NlbWJsZXI6Om11bDMyKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNdWwpOgor
CiAyMDE2LTAzLTA0ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBUaHJvdyBhd2F5IGNvbXBpbGVkIFJlZ0V4cCBjb2RlIHdoZW4gbmF2aWdhdGluZyB0
byBhIG5ldyBwYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlci5oCmluZGV4IDBiMWNjYjdlNzEwMTQ5NWI1YjZlY2NkOGZmMGM4NDMzZDg4NmUx
ZGYuLmI1NWY2Y2RmZjY4M2JiNDBjMzU0NjM3MDlkMGQyMTUyNjY3NzA5NTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgKQEAgLTExNCw2
ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjpicmFuY2gz
MjsKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6Om1vdmU7CiAgICAgdXNpbmcgTWFjcm9B
c3NlbWJsZXJCYXNlOjphZGQzMjsKKyAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6Om11bDMy
OwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6YW5kMzI7CiAgICAgdXNpbmcgTWFjcm9B
c3NlbWJsZXJCYXNlOjpicmFuY2hBZGQzMjsKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6
OmJyYW5jaE11bDMyOwpAQCAtMTQ2Miw2ICsxNDYzLDI3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IGFkZFB0cihpbW0uYXNUcnVzdGVkSW1tMzIoKSwgZGVzdCk7CiAgICAgfQogCisgICAgdm9pZCBt
dWwzMihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCisgICAgewor
ICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1tKSkgeworICAgICAgICAgICAgaWYgKHNyYyAhPSBk
ZXN0IHx8IGhhdmVTY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHNyYyA9PSBkZXN0KSB7CisgICAgICAgICAgICAgICAgICAgIG1vdmUoc3JjLCBzY3Jh
dGNoUmVnaXN0ZXJGb3JCbGluZGluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgc3JjID0gc2Ny
YXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgbG9hZFhvckJsaW5kZWRDb25zdGFudCh4b3JCbGluZENvbnN0YW50KGltbSksIGRlc3Qp
OworICAgICAgICAgICAgICAgIG11bDMyKHNyYywgZGVzdCk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIHNj
cmF0Y2ggcmVnaXN0ZXIgYXZhaWxhYmxlIGZvciB1c2UsIHdlJ2xsIGp1c3QKKyAgICAgICAgICAg
IC8vIHBsYWNlIGEgcmFuZG9tIG51bWJlciBvZiBub3BzLgorICAgICAgICAgICAgdWludDMyX3Qg
bm9wQ291bnQgPSByYW5kb20oKSAmIDM7CisgICAgICAgICAgICB3aGlsZSAobm9wQ291bnQtLSkK
KyAgICAgICAgICAgICAgICBub3AoKTsKKyAgICAgICAgfQorICAgICAgICBtdWwzMihpbW0uYXNU
cnVzdGVkSW1tMzIoKSwgc3JjLCBkZXN0KTsKKyAgICB9CisKICAgICB2b2lkIGFuZDMyKEltbTMy
IGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYgKHNob3VsZEJsaW5kKGlt
bSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKaW5kZXggNmMyNDk0MmYwM2UxZDgxMDg1ZGIyMzE0Mzk5YTYyMDQ1YTViYWJlNy4uMjRhMGJi
ZWI1NGRlMmVmNGY2ZjRmNmY3ZmU3NjdjODYxN2Y5MTZlNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTM2NzgsMzkgKzM2NzgsNzAg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTmVnYXRlKE5vZGUqIG5vZGUpCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNdWwoTm9kZSogbm9kZSkKIHsKICAgICBz
d2l0Y2ggKG5vZGUtPmJpbmFyeVVzZUtpbmQoKSkgewotICAgIGNhc2UgSW50MzJVc2U6IHsKLSAg
ICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7Ci0g
ICAgICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwot
ICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMpOworICAgIGNhc2UgSW50MzJVc2U6Cisg
ICAgICAgIGlmIChub2RlLT5jaGlsZDIoKS0+aXNJbnQzMkNvbnN0YW50KCkpIHsKKyAgICAgICAg
ICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKIAotICAgICAgICBHUFJSZWcgcmVn
MSA9IG9wMS5ncHIoKTsKLSAgICAgICAgR1BSUmVnIHJlZzIgPSBvcDIuZ3ByKCk7CisgICAgICAg
ICAgICBpbnQzMl90IGltbSA9IG5vZGUtPmNoaWxkMigpLT5hc0ludDMyKCk7CisgICAgICAgICAg
ICBHUFJSZWcgb3AxR1BSID0gb3AxLmdwcigpOworICAgICAgICAgICAgR1BSUmVnIHJlc3VsdEdQ
UiA9IHJlc3VsdC5ncHIoKTsKIAotICAgICAgICAvLyBXZSBjYW4gcGVyZm9ybSB0cnVuY2F0ZWQg
bXVsdGlwbGljYXRpb25zIGlmIHdlIGdldCB0byB0aGlzIHBvaW50LCBiZWNhdXNlIGlmIHRoZQot
ICAgICAgICAvLyBmaXh1cCBwaGFzZSBjb3VsZCBub3QgcHJvdmUgdGhhdCBpdCB3b3VsZCBiZSBz
YWZlLCBpdCB3b3VsZCBoYXZlIHR1cm5lZCB1cyBpbnRvCi0gICAgICAgIC8vIGEgZG91YmxlIG11
bHRpcGxpY2F0aW9uLgotICAgICAgICBpZiAoIXNob3VsZENoZWNrT3ZlcmZsb3cobm9kZS0+YXJp
dGhNb2RlKCkpKSB7Ci0gICAgICAgICAgICBtX2ppdC5tb3ZlKHJlZzEsIHJlc3VsdC5ncHIoKSk7
Ci0gICAgICAgICAgICBtX2ppdC5tdWwzMihyZWcyLCByZXN1bHQuZ3ByKCkpOworICAgICAgICAg
ICAgaWYgKCFzaG91bGRDaGVja092ZXJmbG93KG5vZGUtPmFyaXRoTW9kZSgpKSkKKyAgICAgICAg
ICAgICAgICBtX2ppdC5tdWwzMihJbW0zMihpbW0pLCBvcDFHUFIsIHJlc3VsdEdQUik7CisgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE92ZXJmbG93
LCBKU1ZhbHVlUmVncygpLCAwLAorICAgICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hNdWwz
MihNYWNyb0Fzc2VtYmxlcjo6T3ZlcmZsb3csIG9wMUdQUiwgSW1tMzIoaW1tKSwgcmVzdWx0R1BS
KSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIFRoZSBvbmx5IHdheSB0byBjcmVh
dGUgbmVnYXRpdmUgemVybyB3aXRoIGEgY29uc3RhbnQgaXM6CisgICAgICAgICAgICAvLyAtbmVn
YXRpdmUtb3AxICogMC4KKyAgICAgICAgICAgIC8vIC16ZXJvLW9wMSAqIG5lZ2F0aXZlIGNvbnN0
YW50LgorICAgICAgICAgICAgaWYgKHNob3VsZENoZWNrTmVnYXRpdmVaZXJvKG5vZGUtPmFyaXRo
TW9kZSgpKSkgeworICAgICAgICAgICAgICAgIGlmICghaW1tKQorICAgICAgICAgICAgICAgICAg
ICBzcGVjdWxhdGlvbkNoZWNrKE5lZ2F0aXZlWmVybywgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQu
YnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpTaWduZWQsIG9wMUdQUikpOworICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKGltbSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNob3Vs
ZENoZWNrT3ZlcmZsb3cobm9kZS0+YXJpdGhNb2RlKCkpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgc3BlY3VsYXRpb25DaGVjayhOZWdhdGl2ZVplcm8sIEpTVmFsdWVSZWdzKCksIDAsIG1faml0
LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgcmVzdWx0R1BSKSk7CisgICAgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hl
Y2soTmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoTWFj
cm9Bc3NlbWJsZXI6Olplcm8sIG9wMUdQUikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgaW50MzJSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsKICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCi0gICAgICAgICAgICAg
ICAgT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsCi0gICAgICAgICAgICAgICAgbV9qaXQuYnJh
bmNoTXVsMzIoTWFjcm9Bc3NlbWJsZXI6Ok92ZXJmbG93LCByZWcxLCByZWcyLCByZXN1bHQuZ3By
KCkpKTsKLSAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgIC8vIENoZWNrIGZvciBuZWdh
dGl2ZSB6ZXJvLCBpZiB0aGUgdXNlcnMgb2YgdGhpcyBub2RlIGNhcmUgYWJvdXQgc3VjaCB0aGlu
Z3MuCi0gICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhub2RlLT5hcml0aE1vZGUo
KSkpIHsKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHJlc3VsdE5vblplcm8gPSBt
X2ppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIHJlc3VsdC5ncHIoKSk7
Ci0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE5lZ2F0aXZlWmVybywgSlNWYWx1ZVJlZ3Mo
KSwgMCwgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Okxlc3NUaGFuLCByZWcxLCBUcnVz
dGVkSW1tMzIoMCkpKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soTmVnYXRpdmVaZXJv
LCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6TGVzc1Ro
YW4sIHJlZzIsIFRydXN0ZWRJbW0zMigwKSkpOwotICAgICAgICAgICAgcmVzdWx0Tm9uWmVyby5s
aW5rKCZtX2ppdCk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIFNwZWN1bGF0ZUludDMyT3BlcmFu
ZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOworICAgICAgICAgICAgU3BlY3VsYXRlSW50MzJP
cGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMpOwogCi0gICAgICAgIGludDMyUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9k
ZSk7CisgICAgICAgICAgICBHUFJSZWcgcmVnMSA9IG9wMS5ncHIoKTsKKyAgICAgICAgICAgIEdQ
UlJlZyByZWcyID0gb3AyLmdwcigpOworCisgICAgICAgICAgICAvLyBXZSBjYW4gcGVyZm9ybSB0
cnVuY2F0ZWQgbXVsdGlwbGljYXRpb25zIGlmIHdlIGdldCB0byB0aGlzIHBvaW50LCBiZWNhdXNl
IGlmIHRoZQorICAgICAgICAgICAgLy8gZml4dXAgcGhhc2UgY291bGQgbm90IHByb3ZlIHRoYXQg
aXQgd291bGQgYmUgc2FmZSwgaXQgd291bGQgaGF2ZSB0dXJuZWQgdXMgaW50bworICAgICAgICAg
ICAgLy8gYSBkb3VibGUgbXVsdGlwbGljYXRpb24uCisgICAgICAgICAgICBpZiAoIXNob3VsZENo
ZWNrT3ZlcmZsb3cobm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgbV9qaXQu
bW92ZShyZWcxLCByZXN1bHQuZ3ByKCkpOworICAgICAgICAgICAgICAgIG1faml0Lm11bDMyKHJl
ZzIsIHJlc3VsdC5ncHIoKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IHNwZWN1bGF0aW9uQ2hlY2soCisgICAgICAgICAgICAgICAgICAgIE92ZXJmbG93LCBKU1ZhbHVl
UmVncygpLCAwLAorICAgICAgICAgICAgICAgICAgICBtX2ppdC5icmFuY2hNdWwzMihNYWNyb0Fz
c2VtYmxlcjo6T3ZlcmZsb3csIHJlZzEsIHJlZzIsIHJlc3VsdC5ncHIoKSkpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIG5lZ2F0aXZl
IHplcm8sIGlmIHRoZSB1c2VycyBvZiB0aGlzIG5vZGUgY2FyZSBhYm91dCBzdWNoIHRoaW5ncy4K
KyAgICAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhub2RlLT5hcml0aE1vZGUo
KSkpIHsKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCByZXN1bHROb25aZXJv
ID0gbV9qaXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLCByZXN1bHQuZ3By
KCkpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soTmVnYXRpdmVaZXJvLCBKU1Zh
bHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6OlNpZ25lZCwg
cmVnMSkpOworICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soTmVnYXRpdmVaZXJvLCBK
U1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6OlNpZ25l
ZCwgcmVnMikpOworICAgICAgICAgICAgICAgIHJlc3VsdE5vblplcm8ubGluaygmbV9qaXQpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQzMlJlc3VsdChyZXN1bHQuZ3ByKCksIG5v
ZGUpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0jaWYgVVNFKEpT
VkFMVUU2NCkgICAKKworI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgY2FzZSBJbnQ1MlJlcFVzZTog
ewogICAgICAgICBBU1NFUlQoc2hvdWxkQ2hlY2tPdmVyZmxvdyhub2RlLT5hcml0aE1vZGUoKSkp
OwogICAgICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273156</attachid>
            <date>2016-03-06 18:13:40 -0800</date>
            <delta_ts>2016-03-06 19:20:58 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-155066-20160306181324.patch</filename>
            <type>text/plain</type>
            <size>6059</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3NjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
MmM0ODk3NThhZmFlNDlhMWFjMmU4MzM2YjNiMTA0MTIxNWE4OTNlLi44MjBhYTBmMjhlNThkOTFi
ZDM3ZmU4YzQ1MjdlZGQ3N2Q5MzA2MDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxNi0wMy0wNiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgW0pTQ10gSW1wcm92ZSBERkcncyBJbnQzMiBBcml0aE11bCBpZiBv
bmUgb3BlcmFuZCBpcyBhIGNvbnN0YW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTUwNjYKKworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXps
by4KKworICAgICAgICBXaGVuIG11bHRpcGx5aW5nIGFuIGludGVnZXIgYnkgYSBjb25zdGFudCwg
REZHIHdhcyBkb2luZyBxdWl0ZQorICAgICAgICBhIGJpdCB3b3JzZSB0aGFuIGJhc2VsaW5lIEpJ
VC4KKyAgICAgICAgV2Ugd2VyZSBsb2FkaW5nIHRoZSBjb25zdGFudCBpbnRvIGEgcmVnaXN0ZXIs
IGRvaW5nIHRoZSBtdWx0aXBseSwKKyAgICAgICAgdGhlIGNoZWNraW5nIHRoZSByZXN1bHQgYW5k
IGJvdGggb3BlcmFuZHMgZm9yIG5lZ2F0aXZlIHplcm8uCisKKyAgICAgICAgVGhpcyBwYXRjaCBj
aGFuZ2VzOgorICAgICAgICAtVXNlIHRoZSBtdWx0aXBseS1ieS1pbW1lZGlhdGUgZm9ybSBvbiB4
ODYuCisgICAgICAgIC1EbyBhcyBmZXcgY2hlY2tzIGFzIHBvc3NpYmxlIHRvIGRldGVjdCBuZWdh
dGl2ZS16ZXJvLgorCisgICAgICAgIEluIG1vc3QgY2FzZXMsIHRoaXMgcmVkdWNlIHRoZSBuZWdh
dGl2ZS16ZXJvIGNoZWNrcworICAgICAgICB0byB6ZXJvIG9yIG9uZSBURVNUK0pVTVAuCisKKyAg
ICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXI6Om11bDMyKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJpdGhNdWwpOgorCiAy
MDE2LTAzLTA2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtb
R2V0UHJvdG90eXBlT2ZdXSBzaG91bGQgYmUgYSBmdWxseSB2aXJ0dWFsIG1ldGhvZCBpbiB0aGUg
bWV0aG9kIHRhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyLmgKaW5kZXggMGIxY2NiN2U3MTAxNDk1YjViNmVjY2Q4ZmYwYzg0MzNkODg2ZTFk
Zi4uYjU1ZjZjZGZmNjgzYmI0MGMzNTQ2MzcwOWQwZDIxNTI2Njc3MDk1OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaApAQCAtMTE0LDYg
KzExNCw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlckJhc2U6OmJyYW5jaDMy
OwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6bW92ZTsKICAgICB1c2luZyBNYWNyb0Fz
c2VtYmxlckJhc2U6OmFkZDMyOworICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6bXVsMzI7
CiAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXJCYXNlOjphbmQzMjsKICAgICB1c2luZyBNYWNyb0Fz
c2VtYmxlckJhc2U6OmJyYW5jaEFkZDMyOwogICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyQmFzZTo6
YnJhbmNoTXVsMzI7CkBAIC0xNDYyLDYgKzE0NjMsMjcgQEAgcHVibGljOgogICAgICAgICAgICAg
YWRkUHRyKGltbS5hc1RydXN0ZWRJbW0zMigpLCBkZXN0KTsKICAgICB9CiAKKyAgICB2b2lkIG11
bDMyKEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKKyAgICB7Cisg
ICAgICAgIGlmIChzaG91bGRCbGluZChpbW0pKSB7CisgICAgICAgICAgICBpZiAoc3JjICE9IGRl
c3QgfHwgaGF2ZVNjcmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCkpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoc3JjID09IGRlc3QpIHsKKyAgICAgICAgICAgICAgICAgICAgbW92ZShzcmMsIHNjcmF0
Y2hSZWdpc3RlckZvckJsaW5kaW5nKCkpOworICAgICAgICAgICAgICAgICAgICBzcmMgPSBzY3Jh
dGNoUmVnaXN0ZXJGb3JCbGluZGluZygpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBsb2FkWG9yQmxpbmRlZENvbnN0YW50KHhvckJsaW5kQ29uc3RhbnQoaW1tKSwgZGVzdCk7
CisgICAgICAgICAgICAgICAgbXVsMzIoc3JjLCBkZXN0KTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIGEgc2Ny
YXRjaCByZWdpc3RlciBhdmFpbGFibGUgZm9yIHVzZSwgd2UnbGwganVzdAorICAgICAgICAgICAg
Ly8gcGxhY2UgYSByYW5kb20gbnVtYmVyIG9mIG5vcHMuCisgICAgICAgICAgICB1aW50MzJfdCBu
b3BDb3VudCA9IHJhbmRvbSgpICYgMzsKKyAgICAgICAgICAgIHdoaWxlIChub3BDb3VudC0tKQor
ICAgICAgICAgICAgICAgIG5vcCgpOworICAgICAgICB9CisgICAgICAgIG11bDMyKGltbS5hc1Ry
dXN0ZWRJbW0zMigpLCBzcmMsIGRlc3QpOworICAgIH0KKwogICAgIHZvaWQgYW5kMzIoSW1tMzIg
aW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoc2hvdWxkQmxpbmQoaW1t
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAppbmRleCBmYmMxZDI5YjdiMjc1MmI2YWVjMTRmOGEwYWVmYmI1MzFmNWI4MTlhLi45ODUxYjg2
YmNhZGNkYmI0MTIyYzg0OTVmMzA2YjA3MTRlZDExMmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMzY5Miw2ICszNjkyLDM4IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE11bChOb2RlKiBub2RlKQogewogICAg
IHN3aXRjaCAobm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgY2FzZSBJbnQzMlVzZTogewor
ICAgICAgICBpZiAobm9kZS0+Y2hpbGQyKCktPmlzSW50MzJDb25zdGFudCgpKSB7CisgICAgICAg
ICAgICBTcGVjdWxhdGVJbnQzMk9wZXJhbmQgb3AxKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKKyAg
ICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcyk7CisKKyAgICAgICAgICAgIGludDMy
X3QgaW1tID0gbm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKTsKKyAgICAgICAgICAgIEdQUlJlZyBv
cDFHUFIgPSBvcDEuZ3ByKCk7CisgICAgICAgICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0
LmdwcigpOworCisgICAgICAgICAgICBpZiAoIXNob3VsZENoZWNrT3ZlcmZsb3cobm9kZS0+YXJp
dGhNb2RlKCkpKQorICAgICAgICAgICAgICAgIG1faml0Lm11bDMyKEltbTMyKGltbSksIG9wMUdQ
UiwgcmVzdWx0R1BSKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHNwZWN1
bGF0aW9uQ2hlY2soT3ZlcmZsb3csIEpTVmFsdWVSZWdzKCksIDAsCisgICAgICAgICAgICAgICAg
ICAgIG1faml0LmJyYW5jaE11bDMyKE1hY3JvQXNzZW1ibGVyOjpPdmVyZmxvdywgb3AxR1BSLCBJ
bW0zMihpbW0pLCByZXN1bHRHUFIpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8g
VGhlIG9ubHkgd2F5IHRvIGNyZWF0ZSBuZWdhdGl2ZSB6ZXJvIHdpdGggYSBjb25zdGFudCBpczoK
KyAgICAgICAgICAgIC8vIC1uZWdhdGl2ZS1vcDEgKiAwLgorICAgICAgICAgICAgLy8gLXplcm8t
b3AxICogbmVnYXRpdmUgY29uc3RhbnQuCisgICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tOZWdh
dGl2ZVplcm8obm9kZS0+YXJpdGhNb2RlKCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpbW0p
CisgICAgICAgICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soTmVnYXRpdmVaZXJvLCBKU1Zh
bHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6OlNpZ25lZCwg
b3AxR1BSKSk7CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoaW1tIDwgMCkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoc2hvdWxkQ2hlY2tPdmVyZmxvdyhub2RlLT5hcml0aE1vZGUoKSkpCisg
ICAgICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE5lZ2F0aXZlWmVybywgSlNW
YWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoVGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBy
ZXN1bHRHUFIpKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICAgICAgc3BlY3VsYXRpb25DaGVjayhOZWdhdGl2ZVplcm8sIEpTVmFsdWVSZWdzKCksIDAsIG1f
aml0LmJyYW5jaFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6WmVybywgb3AxR1BSKSk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnQzMlJlc3VsdChyZXN1
bHRHUFIsIG5vZGUpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgICAgIFNw
ZWN1bGF0ZUludDMyT3BlcmFuZCBvcDEodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBT
cGVjdWxhdGVJbnQzMk9wZXJhbmQgb3AyKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsKICAgICAgICAg
R1BSVGVtcG9yYXJ5IHJlc3VsdCh0aGlzKTsKQEAgLTM3MTQsMTYgKzM3NDYsMTYgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFyaXRoTXVsKE5vZGUqIG5vZGUpCiAgICAgICAgIC8vIENo
ZWNrIGZvciBuZWdhdGl2ZSB6ZXJvLCBpZiB0aGUgdXNlcnMgb2YgdGhpcyBub2RlIGNhcmUgYWJv
dXQgc3VjaCB0aGluZ3MuCiAgICAgICAgIGlmIChzaG91bGRDaGVja05lZ2F0aXZlWmVybyhub2Rl
LT5hcml0aE1vZGUoKSkpIHsKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHJlc3Vs
dE5vblplcm8gPSBtX2ppdC5icmFuY2hUZXN0MzIoTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sIHJl
c3VsdC5ncHIoKSk7Ci0gICAgICAgICAgICBzcGVjdWxhdGlvbkNoZWNrKE5lZ2F0aXZlWmVybywg
SlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6Okxlc3NUaGFu
LCByZWcxLCBUcnVzdGVkSW1tMzIoMCkpKTsKLSAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
TmVnYXRpdmVaZXJvLCBKU1ZhbHVlUmVncygpLCAwLCBtX2ppdC5icmFuY2gzMihNYWNyb0Fzc2Vt
Ymxlcjo6TGVzc1RoYW4sIHJlZzIsIFRydXN0ZWRJbW0zMigwKSkpOworICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjayhOZWdhdGl2ZVplcm8sIEpTVmFsdWVSZWdzKCksIDAsIG1faml0LmJyYW5j
aFRlc3QzMihNYWNyb0Fzc2VtYmxlcjo6U2lnbmVkLCByZWcxKSk7CisgICAgICAgICAgICBzcGVj
dWxhdGlvbkNoZWNrKE5lZ2F0aXZlWmVybywgSlNWYWx1ZVJlZ3MoKSwgMCwgbV9qaXQuYnJhbmNo
VGVzdDMyKE1hY3JvQXNzZW1ibGVyOjpTaWduZWQsIHJlZzIpKTsKICAgICAgICAgICAgIHJlc3Vs
dE5vblplcm8ubGluaygmbV9qaXQpOwogICAgICAgICB9CiAKICAgICAgICAgaW50MzJSZXN1bHQo
cmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKLSNpZiBV
U0UoSlNWQUxVRTY0KSAgIAorCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICBjYXNlIEludDUyUmVw
VXNlOiB7CiAgICAgICAgIEFTU0VSVChzaG91bGRDaGVja092ZXJmbG93KG5vZGUtPmFyaXRoTW9k
ZSgpKSk7CiAgICAgICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>