<?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>155828</bug_id>
          
          <creation_ts>2016-03-23 20:24:12 -0700</creation_ts>
          <short_desc>[JSC] In some cases, the integer range optimization phase never converges</short_desc>
          <delta_ts>2016-03-24 02:03:00 -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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</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>1177592</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-23 20:24:12 -0700</bug_when>
    <thetext>[JSC] In some cases, the integer range optimization phase never converges</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177598</commentid>
    <comment_count>1</comment_count>
      <attachid>274815</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-23 21:22:37 -0700</bug_when>
    <thetext>Created attachment 274815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177600</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-23 21:23:59 -0700</bug_when>
    <thetext>I intentionally do not change filter() accordingly to keep this fix simple.

I don&apos;t see any perf impact from the extra filter:
                                                  Conf#1                    Conf#2                                      
SunSpider:
   3d-cube                                    5.0348+-0.0498     ?      5.0705+-0.0465        ?
   3d-morph                                   5.1344+-0.0981     ?      5.1557+-0.0728        ?
   3d-raytrace                                5.5740+-0.0858            5.5391+-0.0596        
   access-binary-trees                        2.1304+-0.0450     ?      2.1397+-0.0692        ?
   access-fannkuch                            6.0844+-0.1923            5.9501+-0.0993          might be 1.0226x faster
   access-nbody                               2.5194+-0.0380     ?      2.5352+-0.0512        ?
   access-nsieve                              2.9987+-0.0299            2.9967+-0.0182        
   bitops-3bit-bits-in-byte                   1.1130+-0.0152     ?      1.1317+-0.0215        ? might be 1.0168x slower
   bitops-bits-in-byte                        2.7345+-0.0122     ?      2.7670+-0.0403        ? might be 1.0119x slower
   bitops-bitwise-and                         2.0148+-0.0278     ?      2.0207+-0.0272        ?
   bitops-nsieve-bits                         3.0779+-0.0118            3.0749+-0.0085        
   controlflow-recursive                      2.3003+-0.0109     ?      2.3289+-0.0408        ? might be 1.0125x slower
   crypto-aes                                 3.9760+-0.0526            3.9565+-0.0368        
   crypto-md5                                 2.4385+-0.0147     !      2.5295+-0.0718        ! definitely 1.0373x slower
   crypto-sha1                                2.3283+-0.0197            2.3244+-0.0325        
   date-format-tofte                          6.6788+-0.1469     ?      6.7074+-0.0749        ?
   date-format-xparb                          4.8527+-0.2047            4.8119+-0.0740        
   math-cordic                                2.8317+-0.0519            2.8009+-0.0218          might be 1.0110x faster
   math-partial-sums                          4.9172+-0.0915            4.7855+-0.0473          might be 1.0275x faster
   math-spectral-norm                         1.9773+-0.0262            1.9745+-0.0235        
   regexp-dna                                 6.3657+-0.2314            6.3456+-0.1636        
   string-base64                              4.4586+-0.0960     ?      4.7087+-0.2580        ? might be 1.0561x slower
   string-fasta                               5.8521+-0.0698     ?      5.9636+-0.2139        ? might be 1.0191x slower
   string-tagcloud                            8.0364+-0.0846     ?      8.0531+-0.0896        ?
   string-unpack-code                        19.0781+-0.5818           19.0359+-0.5866        
   string-validate-input                      4.2418+-0.0385     ?      4.3085+-0.0843        ? might be 1.0157x slower

   &lt;arithmetic&gt;                               4.5673+-0.0288     ?      4.5775+-0.0293        ? might be 1.0022x slower

                                                  Conf#1                    Conf#2                                      
Octane:
   encrypt                                   0.16117+-0.00044    ?     0.16144+-0.00081       ?
   decrypt                                   2.79873+-0.00563    ?     2.80439+-0.01049       ?
   deltablue                        x2       0.13942+-0.00218          0.13862+-0.00219       
   earley                                    0.28200+-0.00124          0.28189+-0.00114       
   boyer                                     4.93616+-0.05738          4.88540+-0.06582         might be 1.0104x faster
   navier-stokes                    x2       4.92159+-0.01435          4.91695+-0.00767       
   raytrace                         x2       0.88911+-0.00229          0.88805+-0.00189       
   richards                         x2       0.08201+-0.00066          0.08118+-0.00050         might be 1.0102x faster
   splay                            x2       0.34694+-0.00252    ?     0.34791+-0.00189       ?
   regexp                           x2      19.54577+-0.18981    ?    19.71274+-0.12276       ?
   pdfjs                            x2      38.59829+-0.18960         38.43783+-0.17575       
   mandreel                         x2      42.22717+-0.10168    ?    42.33948+-0.07730       ?
   gbemu                            x2      24.37448+-0.17681         24.11620+-0.14455         might be 1.0107x faster
   closure                                   0.55011+-0.00131          0.54880+-0.00146       
   jquery                                    7.13691+-0.02993          7.11495+-0.02169       
   box2d                            x2       9.07796+-0.03644          9.03238+-0.03638       
   zlib                             x2     361.34559+-4.38287        360.57960+-2.40219       
   typescript                       x2     628.50105+-2.30263    ?   633.14951+-3.76226       ?

   &lt;geometric&gt;                               5.12001+-0.00867          5.11163+-0.00784         might be 1.0016x faster

                                                  Conf#1                    Conf#2                                      
Kraken:
   ai-astar                                   86.674+-0.359      ?      86.729+-0.315         ?
   audio-beat-detection                       44.944+-0.325             44.797+-0.131         
   audio-dft                                  97.668+-1.186             97.245+-1.015         
   audio-fft                                  35.403+-0.038      ?      35.757+-0.472         ? might be 1.0100x slower
   audio-oscillator                           47.843+-0.059      ?      48.316+-0.604         ?
   imaging-darkroom                           60.341+-0.456             60.219+-0.179         
   imaging-desaturate                         44.254+-0.124      ?      44.647+-0.679         ?
   imaging-gaussian-blur                      63.901+-1.488             63.038+-1.316           might be 1.0137x faster
   json-parse-financial                       36.969+-0.307      ?      37.253+-0.673         ?
   json-stringify-tinderbox                   22.608+-0.594      ?      23.068+-0.850         ? might be 1.0203x slower
   stanford-crypto-aes                        39.017+-0.246      ?      39.182+-0.423         ?
   stanford-crypto-ccm                        34.571+-0.776             34.113+-0.902           might be 1.0134x faster
   stanford-crypto-pbkdf2                     99.872+-3.240             97.883+-0.112           might be 1.0203x faster
   stanford-crypto-sha256-iterative           37.688+-0.512             37.379+-0.079         

   &lt;arithmetic&gt;                               53.697+-0.267             53.545+-0.142           might be 1.0028x faster

                                                  Conf#1                    Conf#2                                      
AsmBench:
   bigfib.cpp                               437.7203+-3.0106     ?    438.3455+-3.0468        ?
   cray.c                                   360.3849+-1.2944     ?    360.5656+-1.5716        ?
   dry.c                                    432.7108+-17.3113         432.5710+-20.1896       
   FloatMM.c                                715.6900+-0.9884     ?    715.8090+-1.0900        ?
   gcc-loops.cpp                           3655.9495+-4.6668     ?   3658.3011+-5.2491        ?
   n-body.c                                 809.0068+-1.6828          808.6148+-2.3095        
   Quicksort.c                              391.0468+-1.5917          390.1796+-0.8404        
   stepanov_container.cpp                  3254.3714+-12.4799    ?   3255.9057+-7.6753        ?
   Towers.c                                 268.3456+-1.6323          267.4682+-0.5150        

   &lt;geometric&gt;                              715.5762+-2.7843          715.2596+-3.5572          might be 1.0004x faster

                                                  Conf#1                    Conf#2                                      
Geomean of preferred means:
   &lt;scaled-result&gt;                           30.7870+-0.0625           30.7667+-0.0739          might be 1.0007x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177601</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-03-23 21:24:15 -0700</bug_when>
    <thetext>rdar://problem/25155460</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177607</commentid>
    <comment_count>4</comment_count>
      <attachid>274815</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-03-23 22:04:32 -0700</bug_when>
    <thetext>Comment on attachment 274815
Patch

Nice!  This feels like a robust solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177650</commentid>
    <comment_count>5</comment_count>
      <attachid>274815</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-24 02:02:57 -0700</bug_when>
    <thetext>Comment on attachment 274815
Patch

Clearing flags on attachment: 274815

Committed r198621: &lt;http://trac.webkit.org/changeset/198621&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1177651</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-24 02:03:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274815</attachid>
            <date>2016-03-23 21:22:37 -0700</date>
            <delta_ts>2016-03-24 02:02:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155828-20160323212239.patch</filename>
            <type>text/plain</type>
            <size>10723</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4NTk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
YWRlYTMwZjMzZGU0NDFiYjNhYzM1ZTk4NWE5ZTAxOTFjODNjZTlkLi5iNGQ4Y2E4NzFhNWUyNWMz
OWY0M2IwOGQ2M2ZhYWQ2NWViYzVhMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3MyBAQAorMjAxNi0wMy0yMyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBJbiBzb21lIGNhc2VzLCB0aGUgaW50ZWdlciByYW5nZSBv
cHRpbWl6YXRpb24gcGhhc2UgbmV2ZXIgY29udmVyZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU4MjgKKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
MjUxNTU0NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbiBjZXJ0YWluIGNvbmRpdGlvbnMsIHRoZSBpbnRlZ2VyIHJhbmdlIG9wdGltaXphdGlvbiBw
aGFzZSBjb250aW51b3VzbHkKKyAgICAgICAgY2hhbmdlcyB0aGUgcmVwcmVzZW50YXRpb24gb2Yg
dGhlIHNhbWUgdHJ1dGgsIHByZXZlbnRpbmcgaXQgZnJvbQorICAgICAgICBjb252ZXJnaW5nIHRv
IGEgc3RhYmxlIHN0YXRlLgorCisgICAgICAgIFRoZSBidWcgc3RhcnRzIGJ5IGhhdmluZyB0aGUg
c2FtZSBncm91bmQgdHJ1dGggaW5jb21taW5nIGludG8gYSBibG9jaworICAgICAgICBpbiBkaWZm
ZXJlbnQgdmFsaWQgZm9ybXMuIEZvciBleGFtcGxlLCB5b3UgY2FuIGhhdmUgeCA8IDQyIGNvbWlu
ZyBhczoKKyAgICAgICAgICAgIDEpIHggPCA0MgorICAgICAgICAgICAgMikgeCA8IDQxICsgMQor
ICAgICAgICAgICAgMykgeCA8IDQzIC0gMQorCisgICAgICAgIEhhdmluZyB0aG9zZSAzIGFsb25l
IGNvbWluZyBmcm9tIHByZWRlY2Vzc29ycyB3b3VsZCBiZSBva2F5LCB3ZSB3b3VsZAorICAgICAg
ICBqdXN0IGFjY3VtdWxhdGUgdGhlbS4gVGhlIHByb2JsZW0gaXMgd2hlbiB5b3UgaGF2ZSBhIGNv
bWJpbmF0aW9uCisgICAgICAgIG9mIHJ1bGUgdGhhdCBmaWx0ZXIgb3V0IHRoZSBwcmV2aW91c2x5
IG9idGFpbmVkIHRydXRoLCB0aGVuIGFkZCBhIG5ldworICAgICAgICBmb3JtIG9mIHRoZSBzYW1l
IHRydXRoLgorCisgICAgICAgIExldCdzIHVzZSB0aGUgdGVzdCBjYXNlIGFzIGFuIGV4YW1wbGUu
IFdlIGhhdmUgdHdvIGluY29taW5nIGJsb2NrczoKKyAgICAgICAgICAgIEJsb2NrICMxOgorICAg
ICAgICAgICAgICAtaSA8IDQyCisgICAgICAgICAgICAgIC1pICE9IDQxCisgICAgICAgICAgICBC
bG9jayAjMjoKKyAgICAgICAgICAgICAgLWkgPCA0MQorICAgICAgICAgICAgICAtaSA9PSA0MiAt
IDQyIChpID09IDAgcmVmaW5pbmcgdGhlIHJ1bGUgYWJvdmUpLgorCisgICAgICAgIExldCBzYXkg
dGhhdCBvdXIgY29uZGl0aW9ucyBhdCBoZWFkIGFyZSBub3cgW2kgPCA0MSwgaSA8IDQyIC0gMV0u
CisKKyAgICAgICAgSWYgd2UgbWVyZ2UgYmxvY2sgIzI6CisgICAgICAgICAgICAgIC1pIDwgNDIg
YW5kIGkgPCA0MSAgICAgIC0+IGkgPCA0MgorICAgICAgICAgICAgICAtaSA8IDQyIGFuZCBpIDwg
NDIgLSAxICAtPiBpIDwgNDIKKyAgICAgICAgICAgICAgLWkgIT0gNDEgYW5kIGkgPCA0MSAgICAg
LT4gaSA8IDQxCisgICAgICAgICAgICAgIC1pICE9IDQxIGFuZCBpIDwgNDIgLSAxIC0+IG5vdGhp
bmcKKworICAgICAgICBUaGUgbmV3IGhlYWQgaXM6IFtpIDwgNDEsIGkgPCA0Ml0KKworICAgICAg
ICBJZiB3ZSBtZXJnZSBibG9jayAjMToKKyAgICAgICAgICAgICAgLWkgPCA0MSBhbmQgaSA8IDQx
ICAgICAgIC0+IGkgPCA0MQorICAgICAgICAgICAgICAtaSA8IDQxIGFuZCBpIDwgNDIgICAgICAg
LT4gaSA8IDQyCisgICAgICAgICAgICAgIC1pID09IDQyIC0gNDIgYW5kIGkgPCA0MSAtPiAoaSA8
IDQxIGFuZCBpIDwgNDIgLSAxKQorICAgICAgICAgICAgICAtaSA9PSA0MiAtIDQyIGFuZCBpIDwg
NDIgLT4gaSA8IDQyCisKKyAgICAgICAgQWZ0ZXIgZmlsdGVyLCB3ZSBhcmUgYmFjayB0byBbaSA8
IDQxLCBpIDwgNDIgLSAxXS4KKworICAgICAgICBUaGVyZSBhcmUgc2V2ZXJhbCB2YXJpYXRpb25z
IG9mIHRoaXMgaWRlYSB3aGVyZSB0aGUgc2FtZSB0cnV0aAorICAgICAgICByb3RhdGUgZGlmZmVy
ZW50IGZvcm1zIHdpdGggZWFjaCBtZXJnZSgpLgorCisgICAgICAgIE9uZSBwb3NzaWJsZSBzb2x1
dGlvbiBpcyB0byBtYWtlIGZpbHRlcigpIG1vcmUgYWdncmVzc2l2ZQorICAgICAgICB0byBhdm9p
ZCB0aGUgYmV0dGVyIGZvcm0gb2NjdXJpbmcgYXQgbWVyZ2UoKS4gSSdsbCBwcm9iYWJseQorICAg
ICAgICBkbyB0aGF0IGF0IHNvbWUgcG9pbnQgYnV0IHRoYXQgc2VlbXMgZnJhZ2lsZSBzaW5jZSB0
aGUgc2FtZQorICAgICAgICBwcm9ibGVtIGNvdWxkIHJlYXBwZWFyIGlmIG1lcmdlKCkgaXMgbGF0
ZXIgaW1wcm92ZWQuCisKKyAgICAgICAgRm9yIHRoaXMgcGF0Y2gsIEkgd2VudCB3aXRoIGEgbW9y
ZSBnZW5lcmljIHNvbHV0aW9uIGFmdGVyCisgICAgICAgIG1lcmdlKCk6IGlmIHRoZSBnZW5lcmF0
ZWQgZm9ybSBpcyBlcXVpdmFsZW50IHRvIG9uZSB0aGF0CisgICAgICAgIHByZXZpb3VzbHkgZXhp
c3RlZCBhdCBoZWFkLCBwaWNrIHRoZSBleGlzdGluZyBmb3JtLgorCisgICAgICAgIEluIHRoZSBw
cmV2aW91cyBleGFtcGxlLCB3aGF0IGhhcHBlbnMgaXMgd2Ugb25seSBoYXZlCisgICAgICAgIGVp
dGhlciBbaSA8IDQxXSBvciBbaSA8IDQyIC0gMV0gYnV0IG5ldmVyIGJvdGggc2ltdWx0YW5lb3Vz
bHkuCisKKyAgICAgICAgKiBkZmcvREZHSW50ZWdlclJhbmdlT3B0aW1pemF0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9pbnRlZ2VyLXJhbmdlLW9wdGltaXphdGlvbi1jb25z
dGFudC1yZXByZXNlbnRhdGlvbi0xLmpzOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9zdHJlc3Mv
aW50ZWdlci1yYW5nZS1vcHRpbWl6YXRpb24tY29uc3RhbnQtcmVwcmVzZW50YXRpb24tMi5qczog
QWRkZWQuCisgICAgICAgIFR3byB2YXJpYXRpb24uIE9uZSB0aW1lb3V0IGluIHJlbGVhc2UgYmVj
YXVzZSBvZiB0aGUgYWRkaXRpb25hbCBmbGFncy4KKyAgICAgICAgVGhlIG90aGVyIGlzIGdldHMg
bW9yZSB0eXBlIG9mIHJ1biBidXQgb25seSBhc3NlcnQgaW4gZGVidWcuCisKIDIwMTYtMDMtMjMg
IE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgSmF2YVNjcmlw
dENvcmUgQXJyYXlQcm90b3R5cGU6OmpvaW4gc2hvdWxkbid0IGNhY2hlIGJ1dHRlcmZseSB3aGVu
IGl0IG1ha2VzIGVmZmVjdGZ1bCBjYWxscwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdJbnRlZ2VyUmFuZ2VPcHRpbWl6YXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcAppbmRl
eCAwMDAyYzQzNGE4ZDlkYzY4OTBlYzdiYzZhZDRjZmUwZGNiYzEwMWU1Li4yOWFmNWJkYTBjMzQ0
ZTU4Njg1MmZjNGM2MjlkZjIxNGVjZTJiNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ludGVnZXJSYW5nZU9wdGltaXphdGlvblBoYXNlLmNw
cApAQCAtNDIsNiArNDIsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiBuYW1l
c3BhY2UgewogCiBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKK2NvbnN0IHVuc2lnbmVkIGdp
dmVVcFRocmVzaG9sZCA9IDUwOwogCiBpbnQ2NF90IGNsYW1wZWRTdW1JbXBsKCkgeyByZXR1cm4g
MDsgfQogCkBAIC0yMTcsNiArMjE4LDE5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fbGVm
dCA9PSBvdGhlci5tX2xlZnQKICAgICAgICAgICAgICYmIG1fcmlnaHQgPT0gb3RoZXIubV9yaWdo
dDsKICAgICB9CisKKyAgICBib29sIGlzRXF1aXZhbGVudFRvKGNvbnN0IFJlbGF0aW9uc2hpcCYg
b3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBpZiAobV9sZWZ0ICE9IG90aGVyLm1fbGVmdCB8
fCBtX2tpbmQgIT0gb3RoZXIubV9raW5kKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgICAgIGlmICgqdGhpcyA9PSBvdGhlcikKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgICAgIGlmIChtX3JpZ2h0LT5pc0ludDMyQ29uc3RhbnQoKSAmJiBvdGhlci5tX3JpZ2h0LT5p
c0ludDMyQ29uc3RhbnQoKSkKKyAgICAgICAgICAgIHJldHVybiAobV9yaWdodC0+YXNJbnQzMigp
ICsgbV9vZmZzZXQpID09IChvdGhlci5tX3JpZ2h0LT5hc0ludDMyKCkgKyBvdGhlci5tX29mZnNl
dCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAgICAgCiAgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IFJlbGF0aW9uc2hpcCYgb3RoZXIpIGNvbnN0CiAgICAgewpAQCAtMTA3Miw2ICsx
MDg2LDE5IEBAIHB1YmxpYzoKICAgICAgICAgLy8gdGhlIGNvbW1lbnQgYWJvdmUgUmVsYXRpb25z
aGlwOjptZXJnZSgpIGZvciBkZXRhaWxzLgogICAgICAgICBib29sIGNoYW5nZWQgPSB0cnVlOwog
ICAgICAgICB3aGlsZSAoY2hhbmdlZCkgeworICAgICAgICAgICAgKyttX2l0ZXJhdGlvbnM7Cisg
ICAgICAgICAgICBpZiAobV9pdGVyYXRpb25zID49IGdpdmVVcFRocmVzaG9sZCkgeworICAgICAg
ICAgICAgICAgIC8vIFRoaXMgY2FzZSBpcyBub3QgbmVjZXNzYXJpbHkgd3JvbmcgYnV0IGl0IGNh
biBiZSBhIHNpZ24gdGhhdCB0aGlzIHBoYXNlCisgICAgICAgICAgICAgICAgLy8gZG9lcyBub3Qg
Y29udmVyZ2UuCisgICAgICAgICAgICAgICAgLy8gSWYgeW91IGhpdCB0aGlzIGFzc2VydGlvbiBm
b3IgYSBsZWdpdGltYXRlIGNhc2UsIHVwZGF0ZSB0aGUgZ2l2ZVVwVGhyZXNob2xkCisgICAgICAg
ICAgICAgICAgLy8gdG8gdGhlIHNtYWxsZXN0IHZhbHVlcyB0aGF0IGNvbnZlcmdlcy4KKyAgICAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKworICAgICAgICAgICAgICAgIC8vIElu
IHJlbGVhc2UsIGRvIG5vdCByaXNrIGhvbGRpbmcgdGhlIHRocmVhZCBmb3IgdG9vIGxvbmcgc2lu
Y2UgdGhpcyBwaGFzZQorICAgICAgICAgICAgICAgIC8vIGlzIHJlYWxseSBzbG93LgorICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgY2hh
bmdlZCA9IGZhbHNlOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwb3N0T3JkZXJJbmRleCA9
IHBvc3RPcmRlci5zaXplKCk7IHBvc3RPcmRlckluZGV4LS07KSB7CiAgICAgICAgICAgICAgICAg
QmFzaWNCbG9jayogYmxvY2sgPSBwb3N0T3JkZXJbcG9zdE9yZGVySW5kZXhdOwpAQCAtMTY4Miw3
ICsxNzA5LDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKKwor
ICAgICAgICAgICAgVmVjdG9yPFJlbGF0aW9uc2hpcD4gY29uc3RhbnRSZWxhdGlvbnNoaXBzQXRI
ZWFkOworICAgICAgICAgICAgZm9yIChSZWxhdGlvbnNoaXAmIHJlbGF0aW9uc2hpcEF0SGVhZCA6
IGVudHJ5LnZhbHVlKSB7CisgICAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uc2hpcEF0SGVhZC5y
aWdodCgpLT5pc0ludDMyQ29uc3RhbnQoKSkKKyAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRS
ZWxhdGlvbnNoaXBzQXRIZWFkLmFwcGVuZChyZWxhdGlvbnNoaXBBdEhlYWQpOworICAgICAgICAg
ICAgfQorCiAgICAgICAgICAgICBWZWN0b3I8UmVsYXRpb25zaGlwPiBtZXJnZWRSZWxhdGlvbnNo
aXBzOwogICAgICAgICAgICAgZm9yIChSZWxhdGlvbnNoaXAgdGFyZ2V0UmVsYXRpb25zaGlwIDog
ZW50cnkudmFsdWUpIHsKICAgICAgICAgICAgICAgICBmb3IgKFJlbGF0aW9uc2hpcCBzb3VyY2VS
ZWxhdGlvbnNoaXAgOiBpdGVyLT52YWx1ZSkgewpAQCAtMTY5Myw2ICsxNzI2LDI0IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgICAgICAgICBbJl0gKFJlbGF0aW9uc2hpcCBuZXdSZWxhdGlv
bnNoaXApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgIEdvdCAiLCBuZXdSZWxhdGlv
bnNoaXAsICJcbiIpOworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1JlbGF0
aW9uc2hpcC5yaWdodCgpLT5pc0ludDMyQ29uc3RhbnQoKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBXZSBjYW4gcHJvZHVjZSBhIHJlbGF0aW9uc2hpcCB3aXRoIGEgY29u
c3RhbnQgZXF1aXZhbGVudCB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBh
biBleGlzdGluZyByZWxhdGlvbnNoaXAgeWV0IG9mIGEgZGlmZmVyZW50IGZvcm0uIEZvciBleGFt
cGxlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAgICAgQGEgPT0gQGIoNDIpICsgMAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyAgICAgQGEgPT0gQGMoNDEpICsgMQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBX
ZSBkbyBub3Qgd2FudCB0byBwZXJwZXR1YWxseSBzd2l0Y2ggYmV0d2VlbiB0aG9zZSB0d28gZm9y
bXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIGFsd2F5cyBwcmVm
ZXIgdGhlIG9uZSBhbHJlYWR5IGF0IGhlYWQuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yIChSZWxhdGlvbnNoaXAmIGV4aXN0aW5nUmVsYXRpb25zaGlwQXRIZWFkIDogY29u
c3RhbnRSZWxhdGlvbnNoaXBzQXRIZWFkKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoZXhpc3RpbmdSZWxhdGlvbnNoaXBBdEhlYWQuaXNFcXVpdmFsZW50VG8obmV3
UmVsYXRpb25zaGlwKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5ld1JlbGF0aW9uc2hpcCA9IGV4aXN0aW5nUmVsYXRpb25zaGlwQXRIZWFkOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZmlsdGVyKCkgdG8g
YXZvaWQgZXhwb25lbnRpYWwgZXhwbG9zaW9uIG9mIGlkZW50aWNhbAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHJlbGF0aW9uc2hpcHMuIFdlIGRvIHRoaXMgaGVyZSB0byBhdm9pZCBt
YWtpbmcgc2V0T25lU2lkZSgpIGRvCkBAIC0xNzY0LDYgKzE4MTUsOCBAQCBwcml2YXRlOgogICAg
IEJsb2NrU2V0IG1fc2VlbkJsb2NrczsKICAgICBCbG9ja01hcDxSZWxhdGlvbnNoaXBNYXA+IG1f
cmVsYXRpb25zaGlwc0F0SGVhZDsKICAgICBJbnNlcnRpb25TZXQgbV9pbnNlcnRpb25TZXQ7CisK
KyAgICB1bnNpZ25lZCBtX2l0ZXJhdGlvbnMgeyAwIH07CiB9OwogICAgIAogfSAvLyBhbm9ueW1v
dXMgbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2ludGVnZXItcmFuZ2Utb3B0aW1pemF0aW9uLWNvbnN0YW50LXJlcHJlc2VudGF0aW9uLTEu
anMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ludGVnZXItcmFuZ2Utb3B0
aW1pemF0aW9uLWNvbnN0YW50LXJlcHJlc2VudGF0aW9uLTEuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBjNzRi
Njc5YzNmMmZmZTE5M2EyOGFmMTc5MTljZmRhZjJjYjY4YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50ZWdlci1yYW5nZS1vcHRpbWl6YXRp
b24tY29uc3RhbnQtcmVwcmVzZW50YXRpb24tMS5qcwpAQCAtMCwwICsxLDQ2IEBACisvL0AgcnVu
KCJpbnRlZ2VyLXJhbmdlLW9wdGltaXphdGlvbi1jb25zdGFudC1yZXByZXNlbnRhdGlvbiIsICpO
T19DSklUX09QVElPTlMsICItLXVzZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiKQorLy9AIHJ1bigiaW50
ZWdlci1yYW5nZS1vcHRpbWl6YXRpb24tY29uc3RhbnQtcmVwcmVzZW50YXRpb24iLCAqRlRMX09Q
VElPTlMsICItLXVzZUNvbmN1cnJlbnRKSVQ9ZmFsc2UiKQorCitmdW5jdGlvbiBvcGFxdWUoKQor
eworICAgIC8vIFRoaXMgZXhpc3RzIHRvIGhpZGUgc2lkZSBlZmZlY3RzIHRvIHRoZSBvcHRpbWl6
ZXIuCit9Citub0lubGluZShvcGFxdWUpOworCitmdW5jdGlvbiB0ZXN0KGksIG9wYXF1ZUNvbmRp
dGlvbikgeworICAgIGRvIHsKKyAgICAgICAgaWYgKG9wYXF1ZUNvbmRpdGlvbiA9PSAxKSB7Cisg
ICAgICAgICAgICBpZiAoaSA8IDQyKSB7CisgICAgICAgICAgICAgICAgb3BhcXVlKGkpOworICAg
ICAgICAgICAgICAgIGlmIChpICE9IDQxKSB7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChvcGFx
dWVDb25kaXRpb24gPT0gMikgeworICAgICAgICAgICAgaWYgKGkgPCA0MikgeworICAgICAgICAg
ICAgICAgIG9wYXF1ZShpKTsKKyAgICAgICAgICAgICAgICBpZiAoaSA8IDQxKSB7CisgICAgICAg
ICAgICAgICAgICAgIG9wYXF1ZShpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gMCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IHdoaWxl
ICh0cnVlKTsKKworICAgIG9wYXF1ZShpKTsKKyAgICBvcGFxdWUoNDIpOworICAgIG9wYXF1ZSg0
MSk7CisgICAgcmV0dXJuIGk7Cit9Citub0lubGluZSh0ZXN0KTsKKworZnVuY3Rpb24gbG9vcCgp
IHsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNjsgKytpKQorICAgICAgICB0ZXN0KDEsIDEp
OworfQorbm9JbmxpbmUobG9vcCk7Citub0RGRyhsb29wKTsKKworbG9vcCgpOwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvaW50ZWdlci1yYW5nZS1vcHRpbWl6YXRpb24tY29uc3RhbnQtcmVwcmVzZW50YXRp
b24tMi5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvaW50ZWdlci1yYW5n
ZS1vcHRpbWl6YXRpb24tY29uc3RhbnQtcmVwcmVzZW50YXRpb24tMi5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
YmZjODU5OWY5YWI3MjFhMWFmN2IxYTBjYjY2NzIxMzMwZWM0ZGQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9pbnRlZ2VyLXJhbmdlLW9wdGlt
aXphdGlvbi1jb25zdGFudC1yZXByZXNlbnRhdGlvbi0yLmpzCkBAIC0wLDAgKzEsNDMgQEAKK2Z1
bmN0aW9uIG9wYXF1ZSgpCit7CisgICAgLy8gVGhpcyBleGlzdHMgdG8gaGlkZSBzaWRlIGVmZmVj
dHMgdG8gdGhlIG9wdGltaXplci4KK30KK25vSW5saW5lKG9wYXF1ZSk7CisKK2Z1bmN0aW9uIHRl
c3QoaSwgb3BhcXVlQ29uZGl0aW9uKSB7CisgICAgZG8geworICAgICAgICBpZiAob3BhcXVlQ29u
ZGl0aW9uID09IDEpIHsKKyAgICAgICAgICAgIGlmIChpIDwgNDIpIHsKKyAgICAgICAgICAgICAg
ICBvcGFxdWUoaSk7CisgICAgICAgICAgICAgICAgaWYgKGkgIT0gNDEpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICB9IGVsc2UgaWYgKG9wYXF1ZUNvbmRpdGlvbiA9PSAyKSB7CisgICAgICAgICAgICBpZiAoaSA8
IDQyKSB7CisgICAgICAgICAgICAgICAgb3BhcXVlKGkpOworICAgICAgICAgICAgICAgIGlmIChp
IDwgNDEpIHsKKyAgICAgICAgICAgICAgICAgICAgb3BhcXVlKGkpOworICAgICAgICAgICAgICAg
ICAgICBpZiAoaSA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0gd2hpbGUgKHRydWUpOworCisgICAgb3BhcXVlKGkpOworICAgIG9wYXF1ZSg0
Mik7CisgICAgb3BhcXVlKDQxKTsKKyAgICByZXR1cm4gaTsKK30KK25vSW5saW5lKHRlc3QpOwor
CitmdW5jdGlvbiBsb29wKCkgeworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU2OyArK2kpCisg
ICAgICAgIHRlc3QoMSwgMSk7Cit9Citub0lubGluZShsb29wKTsKK25vREZHKGxvb3ApOworCits
b29wKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>