<?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>100942</bug_id>
          
          <creation_ts>2012-11-01 04:12:03 -0700</creation_ts>
          <short_desc>[EFL][WK2] Add --window-size command line option to EFL MiniBrowser</short_desc>
          <delta_ts>2012-11-05 02:34:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>756070</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-01 04:12:03 -0700</bug_when>
    <thetext>Would be nice to add --window-size command line option to EFL MiniBrowser (same Qt MiniBrowser has).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757242</commentid>
    <comment_count>1</comment_count>
      <attachid>172075</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-02 09:06:40 -0700</bug_when>
    <thetext>Created attachment 172075
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757254</commentid>
    <comment_count>2</comment_count>
      <attachid>172075</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-02 09:17:34 -0700</bug_when>
    <thetext>Comment on attachment 172075
patch

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

&gt; Tools/MiniBrowser/efl/main.c:42
&gt; +static char *window_size_string = NULL;

Does this one really need to be global? Can it be defined in elm_main() instead?

&gt; Tools/MiniBrowser/efl/main.c:44
&gt; +static int window_width = 800;

If you do it this way, then the command line argument affects the size of ALL future windows, not just the main one. I don&apos;t think we want this behavior, do we?

&gt; Tools/MiniBrowser/efl/main.c:964
&gt; +#define MAX_LENGTH 3

Why #define instead of a simple const int?

&gt; Tools/MiniBrowser/efl/main.c:966
&gt; +    Eina_Strbuf *buf;

Those variables can be defined as they are needed, right? We don&apos;t really need to define all of them at the beginning of the function (unless in pedantic mode).

&gt; Tools/MiniBrowser/efl/main.c:979
&gt; +    for (c = input_string; c!= delimeter; ++c)

eina_strbuf_append_n() ?

&gt; Tools/MiniBrowser/efl/main.c:993
&gt; +    for (c = delimeter + 1; c!= input_string + string_length; ++c)

eina_strbuf_append_n() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757255</commentid>
    <comment_count>3</comment_count>
      <attachid>172075</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-02 09:18:08 -0700</bug_when>
    <thetext>Comment on attachment 172075
patch

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

Nice

&gt; Tools/MiniBrowser/efl/main.c:964
&gt; +#define MAX_LENGTH 3

why not just static unsigned ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757256</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-02 09:19:38 -0700</bug_when>
    <thetext>
&gt; If you do it this way, then the command line argument affects the size of ALL future windows, not just the main one. I don&apos;t think we want this behavior, do we?

Isn&apos;t that OK? Think if I want to emulate the size of the iPhone, then I would like all new windows to start out using the same size</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757258</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-02 09:24:46 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; If you do it this way, then the command line argument affects the size of ALL future windows, not just the main one. I don&apos;t think we want this behavior, do we?
&gt; 
&gt; Isn&apos;t that OK? Think if I want to emulate the size of the iPhone, then I would like all new windows to start out using the same size

If that&apos;s the use case, then ok. I just wanted to highlight this and make sure it is the expected behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757344</commentid>
    <comment_count>6</comment_count>
      <attachid>172075</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-02 10:58:28 -0700</bug_when>
    <thetext>Comment on attachment 172075
patch

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

&gt; Tools/MiniBrowser/efl/main.c:962
&gt; +parse_window_size(const char *input_string, int *width, int *height)

Actually, using eina_str_split_full() may help simplify this function:
http://docs.enlightenment.org/auto/eina/group__Eina__String__Group.html#gac408efa406ea8e03d0f6b989ef579a29</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758325</commentid>
    <comment_count>7</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 01:27:47 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 172075 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172075&amp;action=review
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:962
&gt; &gt; +parse_window_size(const char *input_string, int *width, int *height)
&gt; 
&gt; Actually, using eina_str_split_full() may help simplify this function:
&gt; http://docs.enlightenment.org/auto/eina/group__Eina__String__Group.html#gac408efa406ea8e03d0f6b989ef579a29

thanks for the hint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758326</commentid>
    <comment_count>8</comment_count>
      <attachid>172291</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 01:28:19 -0800</bug_when>
    <thetext>Created attachment 172291
patch v2

using eina_str_split_full</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758328</commentid>
    <comment_count>9</comment_count>
      <attachid>172291</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-05 01:33:13 -0800</bug_when>
    <thetext>Comment on attachment 172291
patch v2

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

&gt; Tools/MiniBrowser/efl/main.c:966
&gt; +    char **arr;

Pirate day? :) arrrrr

&gt; Tools/MiniBrowser/efl/main.c:973
&gt; +    if (elements == 2 &amp;&amp; (strlen(arr[0]) &lt;= max_length) &amp;&amp; (strlen(arr[1]) &lt;= max_length)) {
&gt; +
&gt; +        parsed_width = atoi(arr[0]);

why this newline?

&gt; Tools/MiniBrowser/efl/main.c:983
&gt; +    free(arr[0]);
&gt; +    free(arr);

What about arr[1]?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758329</commentid>
    <comment_count>10</comment_count>
      <attachid>172291</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-05 01:33:29 -0800</bug_when>
    <thetext>Comment on attachment 172291
patch v2

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

&gt; Tools/MiniBrowser/efl/main.c:963
&gt; +    static const unsigned max_length = 3;

Maximum resolution of 999x999?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758332</commentid>
    <comment_count>11</comment_count>
      <attachid>172291</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 01:40:32 -0800</bug_when>
    <thetext>Comment on attachment 172291
patch v2

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

&gt;&gt; Tools/MiniBrowser/efl/main.c:963
&gt;&gt; +    static const unsigned max_length = 3;
&gt; 
&gt; Maximum resolution of 999x999?

Well yes, what&apos;s your suggestion? ;)

&gt;&gt; Tools/MiniBrowser/efl/main.c:966
&gt;&gt; +    char **arr;
&gt; 
&gt; Pirate day? :) arrrrr

took naming from http://docs.enlightenment.org/auto/eina/eina_str_01_8c-example.html#a1

&gt;&gt; Tools/MiniBrowser/efl/main.c:973
&gt;&gt; +        parsed_width = atoi(arr[0]);
&gt; 
&gt; why this newline?

it&apos;s more readable imho, but I can remove it if you want

&gt;&gt; Tools/MiniBrowser/efl/main.c:983
&gt;&gt; +    free(arr);
&gt; 
&gt; What about arr[1]?

http://docs.enlightenment.org/auto/eina/group__Eina__String__Group.html#ga601dd2f2032b2a09184164db6f36cc87
To free it, free the first element of the array and the array itself</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758335</commentid>
    <comment_count>12</comment_count>
      <attachid>172291</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-05 01:41:20 -0800</bug_when>
    <thetext>Comment on attachment 172291
patch v2

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

&gt; Tools/MiniBrowser/efl/main.c:969
&gt; +    arr = eina_str_split_full(input_string, &quot;x&quot;, 0, &amp;elements);

eina_str_split_full(input_string, &quot;x&quot;, 2, &amp;elements); ?

since we know we want 2 strings max.

&gt;&gt; Tools/MiniBrowser/efl/main.c:983
&gt;&gt; +    free(arr);
&gt; 
&gt; What about arr[1]?

It is probably safer to iterate over the array and free the elements until you find a NULL element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758338</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-05 01:41:56 -0800</bug_when>
    <thetext>Sizes bigger than 1024 are pretty common today :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758340</commentid>
    <comment_count>14</comment_count>
      <attachid>172293</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 01:45:46 -0800</bug_when>
    <thetext>Created attachment 172293
patch v3

max length=4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758341</commentid>
    <comment_count>15</comment_count>
      <attachid>172294</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 01:49:18 -0800</bug_when>
    <thetext>Created attachment 172294
patch v3

max length=4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758342</commentid>
    <comment_count>16</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-05 01:51:30 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 172291 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=172291&amp;action=review
&gt; 
&gt; &gt; Tools/MiniBrowser/efl/main.c:969
&gt; &gt; +    arr = eina_str_split_full(input_string, &quot;x&quot;, 0, &amp;elements);
&gt; 
&gt; eina_str_split_full(input_string, &quot;x&quot;, 2, &amp;elements); ?
&gt; 
&gt; since we know we want 2 strings max.

elements==2 is validation, so would keep &apos;0&apos;
&gt; 
&gt; &gt;&gt; Tools/MiniBrowser/efl/main.c:983
&gt; &gt;&gt; +    free(arr);
&gt; &gt; 
&gt; &gt; What about arr[1]?
&gt; 
&gt; It is probably safer to iterate over the array and free the elements until you find a NULL element.

As already replied in comment #11 
To free it, free the first element of the array and the array itself.
This is EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758364</commentid>
    <comment_count>17</comment_count>
      <attachid>172294</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 02:34:27 -0800</bug_when>
    <thetext>Comment on attachment 172294
patch v3

Clearing flags on attachment: 172294

Committed r133450: &lt;http://trac.webkit.org/changeset/133450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758365</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 02:34:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172075</attachid>
            <date>2012-11-02 09:06:40 -0700</date>
            <delta_ts>2012-11-05 01:28:19 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug100942</filename>
            <type>text/plain</type>
            <size>4423</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGIwM2ZhMDE4MDQ4NmMzODVjZDc0NzY0NDM5NTdjODJiZDhlY2Q1NGQKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IE5vdiAxIDE3OjIzOjUxIDIwMTIgKzAyMDAKCiAgICBidWcxMDA5NDIKCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzU4ODRhYy4uNmYxMGYy
YyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDEyLTExLTAyICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBv
emRueWFrb3ZAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIC0td2luZG93LXNp
emUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBFRkwgTWluaUJyb3dzZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDk0MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHdpbmRvdy1zaXplICgtcykg
Y29tbWFuZCBsaW5lIG9wdGlvbiB0byBFRkwgTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9lZmwvbWFpbi5jOgorICAgICAgICAod2luZG93X2NyZWF0ZSk6CisgICAgICAgIChw
YXJzZV93aW5kb3dfc2l6ZSk6CisgICAgICAgIChlbG1fbWFpbik6CisKIDIwMTItMTEtMDIgIENo
cmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBb
RUZMXVtXSzJdIEFkZCBIVFRQIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQgdG8gTWluaUJyb3dzZXIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2VmbC9tYWluLmMgYi9Ub29scy9NaW5pQnJv
d3Nlci9lZmwvbWFpbi5jCmluZGV4IDc1M2FhNmUuLjk4OGU4YTUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L01pbmlCcm93c2VyL2VmbC9tYWluLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4u
YwpAQCAtMjUsOCArMjUsNiBAQAogI2luY2x1ZGUgPEVsZW1lbnRhcnkuaD4KICNpbmNsdWRlIDxF
dmFzLmg+CiAKLXN0YXRpYyBjb25zdCBpbnQgREVGQVVMVF9XSURUSCA9IDgwMDsKLXN0YXRpYyBj
b25zdCBpbnQgREVGQVVMVF9IRUlHSFQgPSA2MDA7CiBzdGF0aWMgY29uc3QgY2hhciBERUZBVUxU
X1VSTFtdID0gImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iOwogc3RhdGljIGNvbnN0IGNoYXIgQVBQ
X05BTUVbXSA9ICJFRkwgTWluaUJyb3dzZXIiOwogc3RhdGljIGNvbnN0IGludCBUT09MX0JBUl9J
Q09OX1NJWkUgPSAyNDsKQEAgLTQxLDcgKzM5LDEwIEBAIHN0YXRpYyBjb25zdCBpbnQgVE9PTF9C
QVJfQlVUVE9OX1NJWkUgPSAzMjsKIHN0YXRpYyBpbnQgdmVyYm9zZSA9IDE7CiBzdGF0aWMgRWlu
YV9MaXN0ICp3aW5kb3dzID0gTlVMTDsKIHN0YXRpYyBjaGFyICpldmFzX2VuZ2luZV9uYW1lID0g
TlVMTDsKK3N0YXRpYyBjaGFyICp3aW5kb3dfc2l6ZV9zdHJpbmcgPSBOVUxMOwogc3RhdGljIEVp
bmFfQm9vbCBmcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWQgPSBFSU5BX0ZBTFNFOworc3RhdGljIGlu
dCB3aW5kb3dfd2lkdGggPSA4MDA7CitzdGF0aWMgaW50IHdpbmRvd19oZWlnaHQgPSA2MDA7CiAK
IHN0YXRpYyBFd2tfVmlld19TbWFydF9DbGFzcyogbWluaUJyb3dzZXJWaWV3U21hcnRDbGFzcygp
CiB7CkBAIC02Nyw2ICs2OCw4IEBAIHN0YXRpYyBjb25zdCBFY29yZV9HZXRvcHQgb3B0aW9ucyA9
IHsKICAgICBFSU5BX1RSVUUsIHsKICAgICAgICAgRUNPUkVfR0VUT1BUX1NUT1JFX1NUUgogICAg
ICAgICAgICAgKCdlJywgImVuZ2luZSIsICJlY29yZS1ldmFzIGVuZ2luZSB0byB1c2UuIiksCisg
ICAgICAgIEVDT1JFX0dFVE9QVF9TVE9SRV9TVFIKKyAgICAgICAgICAgICgncycsICJ3aW5kb3ct
c2l6ZSIsICJ3aW5kb3cgc2l6ZSBpbiBmb2xsb3dpbmcgZm9ybWF0ICh3aWR0aCl4KGhlaWdodCku
IiksCiAgICAgICAgIEVDT1JFX0dFVE9QVF9DQUxMQkFDS19OT0FSR1MKICAgICAgICAgICAgICgn
RScsICJsaXN0LWVuZ2luZXMiLCAibGlzdCBlY29yZS1ldmFzIGVuZ2luZXMuIiwKICAgICAgICAg
ICAgICBlY29yZV9nZXRvcHRfY2FsbGJhY2tfZWNvcmVfZXZhc19saXN0X2VuZ2luZXMsIE5VTEwp
LApAQCAtOTQ3LDcgKzk1MCw3IEBAIHN0YXRpYyBCcm93c2VyX1dpbmRvdyAqd2luZG93X2NyZWF0
ZShjb25zdCBjaGFyICp1cmwpCiAgICAgaWYgKHVybCkKICAgICAgICAgZXdrX3ZpZXdfdXJsX3Nl
dChhcHBfZGF0YS0+d2VidmlldywgdXJsKTsKIAotICAgIGV2YXNfb2JqZWN0X3Jlc2l6ZShhcHBf
ZGF0YS0+d2luZG93LCBERUZBVUxUX1dJRFRILCBERUZBVUxUX0hFSUdIVCk7CisgICAgZXZhc19v
YmplY3RfcmVzaXplKGFwcF9kYXRhLT53aW5kb3csIHdpbmRvd193aWR0aCwgd2luZG93X2hlaWdo
dCk7CiAgICAgZXZhc19vYmplY3Rfc2hvdyhhcHBfZGF0YS0+d2luZG93KTsKIAogICAgIHZpZXdf
Zm9jdXNfc2V0KGFwcF9kYXRhLCBFSU5BX1RSVUUpOwpAQCAtOTU1LDYgKzk1OCw0OSBAQCBzdGF0
aWMgQnJvd3Nlcl9XaW5kb3cgKndpbmRvd19jcmVhdGUoY29uc3QgY2hhciAqdXJsKQogICAgIHJl
dHVybiBhcHBfZGF0YTsKIH0KIAorc3RhdGljIHZvaWQKK3BhcnNlX3dpbmRvd19zaXplKGNvbnN0
IGNoYXIgKmlucHV0X3N0cmluZywgaW50ICp3aWR0aCwgaW50ICpoZWlnaHQpCit7CisjZGVmaW5l
IE1BWF9MRU5HVEggMworICAgIGNvbnN0IGNoYXIqIGRlbGltZXRlciA9IHN0cnJjaHIoaW5wdXRf
c3RyaW5nLCAneCcpOworICAgIEVpbmFfU3RyYnVmICpidWY7CisgICAgaW50IHBhcnNlZF93aWR0
aDsKKyAgICBpbnQgcGFyc2VkX2hlaWdodDsKKyAgICBpbnQgc3RyaW5nX2xlbmd0aDsKKyAgICBj
aGFyKiBjOworCisgICAgaWYgKCFkZWxpbWV0ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChkZWxpbWV0ZXIgLSBpbnB1dF9zdHJpbmcgPiBNQVhfTEVOR1RIKQorICAgICAgICByZXR1cm47
CisKKyAgICBidWYgPSBlaW5hX3N0cmJ1Zl9uZXcoKTsKKyAgICBmb3IgKGMgPSBpbnB1dF9zdHJp
bmc7IGMhPSBkZWxpbWV0ZXI7ICsrYykKKyAgICAgICAgZWluYV9zdHJidWZfYXBwZW5kX2NoYXIo
YnVmLCAqYyk7CisKKyAgICBwYXJzZWRfd2lkdGggPSBhdG9pKGVpbmFfc3RyYnVmX3N0cmluZ19n
ZXQoYnVmKSk7CisgICAgaWYgKHdpZHRoICYmIHBhcnNlZF93aWR0aCkKKyAgICAgICAgKndpZHRo
ID0gcGFyc2VkX3dpZHRoOworCisgICAgZWluYV9zdHJidWZfcmVzZXQoYnVmKTsKKworICAgIHN0
cmluZ19sZW5ndGggPSBzdHJsZW4oaW5wdXRfc3RyaW5nKTsKKworICAgIGlmICgoaW5wdXRfc3Ry
aW5nICsgc3RyaW5nX2xlbmd0aCAtIDEpIC0gZGVsaW1ldGVyICA+IE1BWF9MRU5HVEgpCisgICAg
ICAgIHJldHVybjsKKworICAgIGZvciAoYyA9IGRlbGltZXRlciArIDE7IGMhPSBpbnB1dF9zdHJp
bmcgKyBzdHJpbmdfbGVuZ3RoOyArK2MpCisgICAgICAgIGVpbmFfc3RyYnVmX2FwcGVuZF9jaGFy
KGJ1ZiwgKmMpOworCisgICAgcGFyc2VkX2hlaWdodCA9IGF0b2koZWluYV9zdHJidWZfc3RyaW5n
X2dldChidWYpKTsKKyAgICBpZiAoaGVpZ2h0ICYmIHBhcnNlZF9oZWlnaHQpCisgICAgICAgICpo
ZWlnaHQgPSBwYXJzZWRfaGVpZ2h0OworCisgICAgZWluYV9zdHJidWZfZnJlZShidWYpOworI3Vu
ZGVmIE1BWF9MRU5HVEgKK30KKwogRUFQSV9NQUlOIGludAogZWxtX21haW4oaW50IGFyZ2MsIGNo
YXIgKmFyZ3ZbXSkKIHsKQEAgLTk2NCw2ICsxMDEwLDcgQEAgZWxtX21haW4oaW50IGFyZ2MsIGNo
YXIgKmFyZ3ZbXSkKIAogICAgIEVjb3JlX0dldG9wdF9WYWx1ZSB2YWx1ZXNbXSA9IHsKICAgICAg
ICAgRUNPUkVfR0VUT1BUX1ZBTFVFX1NUUihldmFzX2VuZ2luZV9uYW1lKSwKKyAgICAgICAgRUNP
UkVfR0VUT1BUX1ZBTFVFX1NUUih3aW5kb3dfc2l6ZV9zdHJpbmcpLAogICAgICAgICBFQ09SRV9H
RVRPUFRfVkFMVUVfQk9PTChxdWl0T3B0aW9uKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVF
X0JPT0woZnJhbWVfZmxhdHRlbmluZ19lbmFibGVkKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX1ZB
TFVFX0JPT0wocXVpdE9wdGlvbiksCkBAIC05OTUsNiArMTA0Miw5IEBAIGVsbV9tYWluKGludCBh
cmdjLCBjaGFyICphcmd2W10pCiAgICAgfQogI2VuZGlmCiAKKyAgICBpZiAod2luZG93X3NpemVf
c3RyaW5nKQorICAgICAgICBwYXJzZV93aW5kb3dfc2l6ZSh3aW5kb3dfc2l6ZV9zdHJpbmcsICZ3
aW5kb3dfd2lkdGgsICZ3aW5kb3dfaGVpZ2h0KTsKKwogICAgIGlmIChhcmdzIDwgYXJnYykgewog
ICAgICAgICBjaGFyICp1cmwgPSB1cmxfZnJvbV91c2VyX2lucHV0KGFyZ3ZbYXJnc10pOwogICAg
ICAgICB3aW5kb3cgPSB3aW5kb3dfY3JlYXRlKHVybCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172291</attachid>
            <date>2012-11-05 01:28:19 -0800</date>
            <delta_ts>2012-11-05 01:45:46 -0800</delta_ts>
            <desc>patch v2</desc>
            <filename>bug100942_v2</filename>
            <type>text/plain</type>
            <size>3972</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDBjNWRjOTc2N2U0MWU5YTgzZDM0YmE4ODg4ZDRhOGM0ODNhMjgxYmIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IE5vdiAxIDE3OjIzOjUxIDIwMTIgKzAyMDAKCiAgICBidWcxMDA5NDIKCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGU2NjYzMi4uYzEwZTY5
NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDEyLTExLTAyICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBv
emRueWFrb3ZAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIC0td2luZG93LXNp
emUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBFRkwgTWluaUJyb3dzZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDk0MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHdpbmRvdy1zaXplICgtcykg
Y29tbWFuZCBsaW5lIG9wdGlvbiB0byBFRkwgTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9lZmwvbWFpbi5jOgorICAgICAgICAod2luZG93X2NyZWF0ZSk6CisgICAgICAgIChw
YXJzZV93aW5kb3dfc2l6ZSk6CisgICAgICAgIChlbG1fbWFpbik6CisKIDIwMTItMTEtMDMgIEJh
bGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBz
ZXRQbGF0Zm9ybVN0cmF0ZWdpZXMgYWx3YXlzIGFzc2VydHMgYWZ0ZXIgcjEzMjc0NApkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2Vm
bC9tYWluLmMKaW5kZXggNzUzYWE2ZS4uNTNhZjM3YyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJy
b3dzZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC0y
NSw4ICsyNSw2IEBACiAjaW5jbHVkZSA8RWxlbWVudGFyeS5oPgogI2luY2x1ZGUgPEV2YXMuaD4K
IAotc3RhdGljIGNvbnN0IGludCBERUZBVUxUX1dJRFRIID0gODAwOwotc3RhdGljIGNvbnN0IGlu
dCBERUZBVUxUX0hFSUdIVCA9IDYwMDsKIHN0YXRpYyBjb25zdCBjaGFyIERFRkFVTFRfVVJMW10g
PSAiaHR0cDovL3d3dy5nb29nbGUuY29tLyI7CiBzdGF0aWMgY29uc3QgY2hhciBBUFBfTkFNRVtd
ID0gIkVGTCBNaW5pQnJvd3NlciI7CiBzdGF0aWMgY29uc3QgaW50IFRPT0xfQkFSX0lDT05fU0la
RSA9IDI0OwpAQCAtNDIsNiArNDAsOCBAQCBzdGF0aWMgaW50IHZlcmJvc2UgPSAxOwogc3RhdGlj
IEVpbmFfTGlzdCAqd2luZG93cyA9IE5VTEw7CiBzdGF0aWMgY2hhciAqZXZhc19lbmdpbmVfbmFt
ZSA9IE5VTEw7CiBzdGF0aWMgRWluYV9Cb29sIGZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZCA9IEVJ
TkFfRkFMU0U7CitzdGF0aWMgaW50IHdpbmRvd193aWR0aCA9IDgwMDsKK3N0YXRpYyBpbnQgd2lu
ZG93X2hlaWdodCA9IDYwMDsKIAogc3RhdGljIEV3a19WaWV3X1NtYXJ0X0NsYXNzKiBtaW5pQnJv
d3NlclZpZXdTbWFydENsYXNzKCkKIHsKQEAgLTY3LDYgKzY3LDggQEAgc3RhdGljIGNvbnN0IEVj
b3JlX0dldG9wdCBvcHRpb25zID0gewogICAgIEVJTkFfVFJVRSwgewogICAgICAgICBFQ09SRV9H
RVRPUFRfU1RPUkVfU1RSCiAgICAgICAgICAgICAoJ2UnLCAiZW5naW5lIiwgImVjb3JlLWV2YXMg
ZW5naW5lIHRvIHVzZS4iKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1NUT1JFX1NUUgorICAgICAg
ICAgICAgKCdzJywgIndpbmRvdy1zaXplIiwgIndpbmRvdyBzaXplIGluIGZvbGxvd2luZyBmb3Jt
YXQgKHdpZHRoKXgoaGVpZ2h0KS4iKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX0NBTExCQUNLX05P
QVJHUwogICAgICAgICAgICAgKCdFJywgImxpc3QtZW5naW5lcyIsICJsaXN0IGVjb3JlLWV2YXMg
ZW5naW5lcy4iLAogICAgICAgICAgICAgIGVjb3JlX2dldG9wdF9jYWxsYmFja19lY29yZV9ldmFz
X2xpc3RfZW5naW5lcywgTlVMTCksCkBAIC05NDcsNyArOTQ5LDcgQEAgc3RhdGljIEJyb3dzZXJf
V2luZG93ICp3aW5kb3dfY3JlYXRlKGNvbnN0IGNoYXIgKnVybCkKICAgICBpZiAodXJsKQogICAg
ICAgICBld2tfdmlld191cmxfc2V0KGFwcF9kYXRhLT53ZWJ2aWV3LCB1cmwpOwogCi0gICAgZXZh
c19vYmplY3RfcmVzaXplKGFwcF9kYXRhLT53aW5kb3csIERFRkFVTFRfV0lEVEgsIERFRkFVTFRf
SEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwX2RhdGEtPndpbmRvdywgd2luZG93
X3dpZHRoLCB3aW5kb3dfaGVpZ2h0KTsKICAgICBldmFzX29iamVjdF9zaG93KGFwcF9kYXRhLT53
aW5kb3cpOwogCiAgICAgdmlld19mb2N1c19zZXQoYXBwX2RhdGEsIEVJTkFfVFJVRSk7CkBAIC05
NTUsMTUgKzk1Nyw0MyBAQCBzdGF0aWMgQnJvd3Nlcl9XaW5kb3cgKndpbmRvd19jcmVhdGUoY29u
c3QgY2hhciAqdXJsKQogICAgIHJldHVybiBhcHBfZGF0YTsKIH0KIAorc3RhdGljIHZvaWQKK3Bh
cnNlX3dpbmRvd19zaXplKGNvbnN0IGNoYXIgKmlucHV0X3N0cmluZywgaW50ICp3aWR0aCwgaW50
ICpoZWlnaHQpCit7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heF9sZW5ndGggPSAzOwor
ICAgIGludCBwYXJzZWRfd2lkdGg7CisgICAgaW50IHBhcnNlZF9oZWlnaHQ7CisgICAgY2hhciAq
KmFycjsKKyAgICB1bnNpZ25lZCBlbGVtZW50czsKKworICAgIGFyciA9IGVpbmFfc3RyX3NwbGl0
X2Z1bGwoaW5wdXRfc3RyaW5nLCAieCIsIDAsICZlbGVtZW50cyk7CisKKyAgICBpZiAoZWxlbWVu
dHMgPT0gMiAmJiAoc3RybGVuKGFyclswXSkgPD0gbWF4X2xlbmd0aCkgJiYgKHN0cmxlbihhcnJb
MV0pIDw9IG1heF9sZW5ndGgpKSB7CisKKyAgICAgICAgcGFyc2VkX3dpZHRoID0gYXRvaShhcnJb
MF0pOworICAgICAgICBpZiAod2lkdGggJiYgcGFyc2VkX3dpZHRoKQorICAgICAgICAgICAgKndp
ZHRoID0gcGFyc2VkX3dpZHRoOworCisgICAgICAgIHBhcnNlZF9oZWlnaHQgPSBhdG9pKGFyclsx
XSk7CisgICAgICAgIGlmIChoZWlnaHQgJiYgcGFyc2VkX2hlaWdodCkKKyAgICAgICAgICAgICpo
ZWlnaHQgPSBwYXJzZWRfaGVpZ2h0OworICAgIH0KKworICAgIGZyZWUoYXJyWzBdKTsKKyAgICBm
cmVlKGFycik7Cit9CisKIEVBUElfTUFJTiBpbnQKIGVsbV9tYWluKGludCBhcmdjLCBjaGFyICph
cmd2W10pCiB7CiAgICAgaW50IGFyZ3MgPSAxOwogICAgIHVuc2lnbmVkIGNoYXIgcXVpdE9wdGlv
biA9IDA7CiAgICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRvdzsKKyAgICBjaGFyICp3aW5kb3dfc2l6
ZV9zdHJpbmcgPSBOVUxMOwogCiAgICAgRWNvcmVfR2V0b3B0X1ZhbHVlIHZhbHVlc1tdID0gewog
ICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKGV2YXNfZW5naW5lX25hbWUpLAorICAgICAg
ICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKHdpbmRvd19zaXplX3N0cmluZyksCiAgICAgICAgIEVD
T1JFX0dFVE9QVF9WQUxVRV9CT09MKHF1aXRPcHRpb24pLAogICAgICAgICBFQ09SRV9HRVRPUFRf
VkFMVUVfQk9PTChmcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWQpLAogICAgICAgICBFQ09SRV9HRVRP
UFRfVkFMVUVfQk9PTChxdWl0T3B0aW9uKSwKQEAgLTk5NSw2ICsxMDI1LDkgQEAgZWxtX21haW4o
aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICB9CiAjZW5kaWYKIAorICAgIGlmICh3aW5kb3df
c2l6ZV9zdHJpbmcpCisgICAgICAgIHBhcnNlX3dpbmRvd19zaXplKHdpbmRvd19zaXplX3N0cmlu
ZywgJndpbmRvd193aWR0aCwgJndpbmRvd19oZWlnaHQpOworCiAgICAgaWYgKGFyZ3MgPCBhcmdj
KSB7CiAgICAgICAgIGNoYXIgKnVybCA9IHVybF9mcm9tX3VzZXJfaW5wdXQoYXJndlthcmdzXSk7
CiAgICAgICAgIHdpbmRvdyA9IHdpbmRvd19jcmVhdGUodXJsKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172293</attachid>
            <date>2012-11-05 01:45:46 -0800</date>
            <delta_ts>2012-11-05 01:49:18 -0800</delta_ts>
            <desc>patch v3</desc>
            <filename>bug100942_v3</filename>
            <type>text/plain</type>
            <size>3972</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDBjNWRjOTc2N2U0MWU5YTgzZDM0YmE4ODg4ZDRhOGM0ODNhMjgxYmIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IE5vdiAxIDE3OjIzOjUxIDIwMTIgKzAyMDAKCiAgICBidWcxMDA5NDIKCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGU2NjYzMi4uYzEwZTY5
NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDEyLTExLTAyICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBv
emRueWFrb3ZAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIC0td2luZG93LXNp
emUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBFRkwgTWluaUJyb3dzZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDk0MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHdpbmRvdy1zaXplICgtcykg
Y29tbWFuZCBsaW5lIG9wdGlvbiB0byBFRkwgTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9lZmwvbWFpbi5jOgorICAgICAgICAod2luZG93X2NyZWF0ZSk6CisgICAgICAgIChw
YXJzZV93aW5kb3dfc2l6ZSk6CisgICAgICAgIChlbG1fbWFpbik6CisKIDIwMTItMTEtMDMgIEJh
bGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBz
ZXRQbGF0Zm9ybVN0cmF0ZWdpZXMgYWx3YXlzIGFzc2VydHMgYWZ0ZXIgcjEzMjc0NApkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2Vm
bC9tYWluLmMKaW5kZXggNzUzYWE2ZS4uNTNhZjM3YyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJy
b3dzZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC0y
NSw4ICsyNSw2IEBACiAjaW5jbHVkZSA8RWxlbWVudGFyeS5oPgogI2luY2x1ZGUgPEV2YXMuaD4K
IAotc3RhdGljIGNvbnN0IGludCBERUZBVUxUX1dJRFRIID0gODAwOwotc3RhdGljIGNvbnN0IGlu
dCBERUZBVUxUX0hFSUdIVCA9IDYwMDsKIHN0YXRpYyBjb25zdCBjaGFyIERFRkFVTFRfVVJMW10g
PSAiaHR0cDovL3d3dy5nb29nbGUuY29tLyI7CiBzdGF0aWMgY29uc3QgY2hhciBBUFBfTkFNRVtd
ID0gIkVGTCBNaW5pQnJvd3NlciI7CiBzdGF0aWMgY29uc3QgaW50IFRPT0xfQkFSX0lDT05fU0la
RSA9IDI0OwpAQCAtNDIsNiArNDAsOCBAQCBzdGF0aWMgaW50IHZlcmJvc2UgPSAxOwogc3RhdGlj
IEVpbmFfTGlzdCAqd2luZG93cyA9IE5VTEw7CiBzdGF0aWMgY2hhciAqZXZhc19lbmdpbmVfbmFt
ZSA9IE5VTEw7CiBzdGF0aWMgRWluYV9Cb29sIGZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZCA9IEVJ
TkFfRkFMU0U7CitzdGF0aWMgaW50IHdpbmRvd193aWR0aCA9IDgwMDsKK3N0YXRpYyBpbnQgd2lu
ZG93X2hlaWdodCA9IDYwMDsKIAogc3RhdGljIEV3a19WaWV3X1NtYXJ0X0NsYXNzKiBtaW5pQnJv
d3NlclZpZXdTbWFydENsYXNzKCkKIHsKQEAgLTY3LDYgKzY3LDggQEAgc3RhdGljIGNvbnN0IEVj
b3JlX0dldG9wdCBvcHRpb25zID0gewogICAgIEVJTkFfVFJVRSwgewogICAgICAgICBFQ09SRV9H
RVRPUFRfU1RPUkVfU1RSCiAgICAgICAgICAgICAoJ2UnLCAiZW5naW5lIiwgImVjb3JlLWV2YXMg
ZW5naW5lIHRvIHVzZS4iKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1NUT1JFX1NUUgorICAgICAg
ICAgICAgKCdzJywgIndpbmRvdy1zaXplIiwgIndpbmRvdyBzaXplIGluIGZvbGxvd2luZyBmb3Jt
YXQgKHdpZHRoKXgoaGVpZ2h0KS4iKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX0NBTExCQUNLX05P
QVJHUwogICAgICAgICAgICAgKCdFJywgImxpc3QtZW5naW5lcyIsICJsaXN0IGVjb3JlLWV2YXMg
ZW5naW5lcy4iLAogICAgICAgICAgICAgIGVjb3JlX2dldG9wdF9jYWxsYmFja19lY29yZV9ldmFz
X2xpc3RfZW5naW5lcywgTlVMTCksCkBAIC05NDcsNyArOTQ5LDcgQEAgc3RhdGljIEJyb3dzZXJf
V2luZG93ICp3aW5kb3dfY3JlYXRlKGNvbnN0IGNoYXIgKnVybCkKICAgICBpZiAodXJsKQogICAg
ICAgICBld2tfdmlld191cmxfc2V0KGFwcF9kYXRhLT53ZWJ2aWV3LCB1cmwpOwogCi0gICAgZXZh
c19vYmplY3RfcmVzaXplKGFwcF9kYXRhLT53aW5kb3csIERFRkFVTFRfV0lEVEgsIERFRkFVTFRf
SEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwX2RhdGEtPndpbmRvdywgd2luZG93
X3dpZHRoLCB3aW5kb3dfaGVpZ2h0KTsKICAgICBldmFzX29iamVjdF9zaG93KGFwcF9kYXRhLT53
aW5kb3cpOwogCiAgICAgdmlld19mb2N1c19zZXQoYXBwX2RhdGEsIEVJTkFfVFJVRSk7CkBAIC05
NTUsMTUgKzk1Nyw0MyBAQCBzdGF0aWMgQnJvd3Nlcl9XaW5kb3cgKndpbmRvd19jcmVhdGUoY29u
c3QgY2hhciAqdXJsKQogICAgIHJldHVybiBhcHBfZGF0YTsKIH0KIAorc3RhdGljIHZvaWQKK3Bh
cnNlX3dpbmRvd19zaXplKGNvbnN0IGNoYXIgKmlucHV0X3N0cmluZywgaW50ICp3aWR0aCwgaW50
ICpoZWlnaHQpCit7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heF9sZW5ndGggPSAzOwor
ICAgIGludCBwYXJzZWRfd2lkdGg7CisgICAgaW50IHBhcnNlZF9oZWlnaHQ7CisgICAgY2hhciAq
KmFycjsKKyAgICB1bnNpZ25lZCBlbGVtZW50czsKKworICAgIGFyciA9IGVpbmFfc3RyX3NwbGl0
X2Z1bGwoaW5wdXRfc3RyaW5nLCAieCIsIDAsICZlbGVtZW50cyk7CisKKyAgICBpZiAoZWxlbWVu
dHMgPT0gMiAmJiAoc3RybGVuKGFyclswXSkgPD0gbWF4X2xlbmd0aCkgJiYgKHN0cmxlbihhcnJb
MV0pIDw9IG1heF9sZW5ndGgpKSB7CisKKyAgICAgICAgcGFyc2VkX3dpZHRoID0gYXRvaShhcnJb
MF0pOworICAgICAgICBpZiAod2lkdGggJiYgcGFyc2VkX3dpZHRoKQorICAgICAgICAgICAgKndp
ZHRoID0gcGFyc2VkX3dpZHRoOworCisgICAgICAgIHBhcnNlZF9oZWlnaHQgPSBhdG9pKGFyclsx
XSk7CisgICAgICAgIGlmIChoZWlnaHQgJiYgcGFyc2VkX2hlaWdodCkKKyAgICAgICAgICAgICpo
ZWlnaHQgPSBwYXJzZWRfaGVpZ2h0OworICAgIH0KKworICAgIGZyZWUoYXJyWzBdKTsKKyAgICBm
cmVlKGFycik7Cit9CisKIEVBUElfTUFJTiBpbnQKIGVsbV9tYWluKGludCBhcmdjLCBjaGFyICph
cmd2W10pCiB7CiAgICAgaW50IGFyZ3MgPSAxOwogICAgIHVuc2lnbmVkIGNoYXIgcXVpdE9wdGlv
biA9IDA7CiAgICAgQnJvd3Nlcl9XaW5kb3cgKndpbmRvdzsKKyAgICBjaGFyICp3aW5kb3dfc2l6
ZV9zdHJpbmcgPSBOVUxMOwogCiAgICAgRWNvcmVfR2V0b3B0X1ZhbHVlIHZhbHVlc1tdID0gewog
ICAgICAgICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKGV2YXNfZW5naW5lX25hbWUpLAorICAgICAg
ICBFQ09SRV9HRVRPUFRfVkFMVUVfU1RSKHdpbmRvd19zaXplX3N0cmluZyksCiAgICAgICAgIEVD
T1JFX0dFVE9QVF9WQUxVRV9CT09MKHF1aXRPcHRpb24pLAogICAgICAgICBFQ09SRV9HRVRPUFRf
VkFMVUVfQk9PTChmcmFtZV9mbGF0dGVuaW5nX2VuYWJsZWQpLAogICAgICAgICBFQ09SRV9HRVRP
UFRfVkFMVUVfQk9PTChxdWl0T3B0aW9uKSwKQEAgLTk5NSw2ICsxMDI1LDkgQEAgZWxtX21haW4o
aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICB9CiAjZW5kaWYKIAorICAgIGlmICh3aW5kb3df
c2l6ZV9zdHJpbmcpCisgICAgICAgIHBhcnNlX3dpbmRvd19zaXplKHdpbmRvd19zaXplX3N0cmlu
ZywgJndpbmRvd193aWR0aCwgJndpbmRvd19oZWlnaHQpOworCiAgICAgaWYgKGFyZ3MgPCBhcmdj
KSB7CiAgICAgICAgIGNoYXIgKnVybCA9IHVybF9mcm9tX3VzZXJfaW5wdXQoYXJndlthcmdzXSk7
CiAgICAgICAgIHdpbmRvdyA9IHdpbmRvd19jcmVhdGUodXJsKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172294</attachid>
            <date>2012-11-05 01:49:18 -0800</date>
            <delta_ts>2012-11-05 02:34:26 -0800</delta_ts>
            <desc>patch v3</desc>
            <filename>bug100942_v3</filename>
            <type>text/plain</type>
            <size>3970</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDhlYzU2YThiYmM1NmZmNDNjODE3OWZmMjYxYzcxNzFhOGYxMGVlZjgKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IE5vdiAxIDE3OjIzOjUxIDIwMTIgKzAyMDAKCiAgICBidWcxMDA5NDIKCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZGU2NjYzMi4uYzEwZTY5
NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDEyLTExLTAyICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBv
emRueWFrb3ZAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdW1dLMl0gQWRkIC0td2luZG93LXNp
emUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBFRkwgTWluaUJyb3dzZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDk0MgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHdpbmRvdy1zaXplICgtcykg
Y29tbWFuZCBsaW5lIG9wdGlvbiB0byBFRkwgTWluaUJyb3dzZXIuCisKKyAgICAgICAgKiBNaW5p
QnJvd3Nlci9lZmwvbWFpbi5jOgorICAgICAgICAod2luZG93X2NyZWF0ZSk6CisgICAgICAgIChw
YXJzZV93aW5kb3dfc2l6ZSk6CisgICAgICAgIChlbG1fbWFpbik6CisKIDIwMTItMTEtMDMgIEJh
bGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBz
ZXRQbGF0Zm9ybVN0cmF0ZWdpZXMgYWx3YXlzIGFzc2VydHMgYWZ0ZXIgcjEzMjc0NApkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZWZsL21haW4uYyBiL1Rvb2xzL01pbmlCcm93c2VyL2Vm
bC9tYWluLmMKaW5kZXggNzUzYWE2ZS4uNTZlMDk5MiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJy
b3dzZXIvZWZsL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9lZmwvbWFpbi5jCkBAIC0y
NSw4ICsyNSw2IEBACiAjaW5jbHVkZSA8RWxlbWVudGFyeS5oPgogI2luY2x1ZGUgPEV2YXMuaD4K
IAotc3RhdGljIGNvbnN0IGludCBERUZBVUxUX1dJRFRIID0gODAwOwotc3RhdGljIGNvbnN0IGlu
dCBERUZBVUxUX0hFSUdIVCA9IDYwMDsKIHN0YXRpYyBjb25zdCBjaGFyIERFRkFVTFRfVVJMW10g
PSAiaHR0cDovL3d3dy5nb29nbGUuY29tLyI7CiBzdGF0aWMgY29uc3QgY2hhciBBUFBfTkFNRVtd
ID0gIkVGTCBNaW5pQnJvd3NlciI7CiBzdGF0aWMgY29uc3QgaW50IFRPT0xfQkFSX0lDT05fU0la
RSA9IDI0OwpAQCAtNDIsNiArNDAsOCBAQCBzdGF0aWMgaW50IHZlcmJvc2UgPSAxOwogc3RhdGlj
IEVpbmFfTGlzdCAqd2luZG93cyA9IE5VTEw7CiBzdGF0aWMgY2hhciAqZXZhc19lbmdpbmVfbmFt
ZSA9IE5VTEw7CiBzdGF0aWMgRWluYV9Cb29sIGZyYW1lX2ZsYXR0ZW5pbmdfZW5hYmxlZCA9IEVJ
TkFfRkFMU0U7CitzdGF0aWMgaW50IHdpbmRvd193aWR0aCA9IDgwMDsKK3N0YXRpYyBpbnQgd2lu
ZG93X2hlaWdodCA9IDYwMDsKIAogc3RhdGljIEV3a19WaWV3X1NtYXJ0X0NsYXNzKiBtaW5pQnJv
d3NlclZpZXdTbWFydENsYXNzKCkKIHsKQEAgLTY3LDYgKzY3LDggQEAgc3RhdGljIGNvbnN0IEVj
b3JlX0dldG9wdCBvcHRpb25zID0gewogICAgIEVJTkFfVFJVRSwgewogICAgICAgICBFQ09SRV9H
RVRPUFRfU1RPUkVfU1RSCiAgICAgICAgICAgICAoJ2UnLCAiZW5naW5lIiwgImVjb3JlLWV2YXMg
ZW5naW5lIHRvIHVzZS4iKSwKKyAgICAgICAgRUNPUkVfR0VUT1BUX1NUT1JFX1NUUgorICAgICAg
ICAgICAgKCdzJywgIndpbmRvdy1zaXplIiwgIndpbmRvdyBzaXplIGluIGZvbGxvd2luZyBmb3Jt
YXQgKHdpZHRoKXgoaGVpZ2h0KS4iKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX0NBTExCQUNLX05P
QVJHUwogICAgICAgICAgICAgKCdFJywgImxpc3QtZW5naW5lcyIsICJsaXN0IGVjb3JlLWV2YXMg
ZW5naW5lcy4iLAogICAgICAgICAgICAgIGVjb3JlX2dldG9wdF9jYWxsYmFja19lY29yZV9ldmFz
X2xpc3RfZW5naW5lcywgTlVMTCksCkBAIC05NDcsNyArOTQ5LDcgQEAgc3RhdGljIEJyb3dzZXJf
V2luZG93ICp3aW5kb3dfY3JlYXRlKGNvbnN0IGNoYXIgKnVybCkKICAgICBpZiAodXJsKQogICAg
ICAgICBld2tfdmlld191cmxfc2V0KGFwcF9kYXRhLT53ZWJ2aWV3LCB1cmwpOwogCi0gICAgZXZh
c19vYmplY3RfcmVzaXplKGFwcF9kYXRhLT53aW5kb3csIERFRkFVTFRfV0lEVEgsIERFRkFVTFRf
SEVJR0hUKTsKKyAgICBldmFzX29iamVjdF9yZXNpemUoYXBwX2RhdGEtPndpbmRvdywgd2luZG93
X3dpZHRoLCB3aW5kb3dfaGVpZ2h0KTsKICAgICBldmFzX29iamVjdF9zaG93KGFwcF9kYXRhLT53
aW5kb3cpOwogCiAgICAgdmlld19mb2N1c19zZXQoYXBwX2RhdGEsIEVJTkFfVFJVRSk7CkBAIC05
NTUsMTUgKzk1Nyw0MiBAQCBzdGF0aWMgQnJvd3Nlcl9XaW5kb3cgKndpbmRvd19jcmVhdGUoY29u
c3QgY2hhciAqdXJsKQogICAgIHJldHVybiBhcHBfZGF0YTsKIH0KIAorc3RhdGljIHZvaWQKK3Bh
cnNlX3dpbmRvd19zaXplKGNvbnN0IGNoYXIgKmlucHV0X3N0cmluZywgaW50ICp3aWR0aCwgaW50
ICpoZWlnaHQpCit7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heF9sZW5ndGggPSA0Owor
ICAgIGludCBwYXJzZWRfd2lkdGg7CisgICAgaW50IHBhcnNlZF9oZWlnaHQ7CisgICAgY2hhciAq
KmFycjsKKyAgICB1bnNpZ25lZCBlbGVtZW50czsKKworICAgIGFyciA9IGVpbmFfc3RyX3NwbGl0
X2Z1bGwoaW5wdXRfc3RyaW5nLCAieCIsIDAsICZlbGVtZW50cyk7CisKKyAgICBpZiAoZWxlbWVu
dHMgPT0gMiAmJiAoc3RybGVuKGFyclswXSkgPD0gbWF4X2xlbmd0aCkgJiYgKHN0cmxlbihhcnJb
MV0pIDw9IG1heF9sZW5ndGgpKSB7CisgICAgICAgIHBhcnNlZF93aWR0aCA9IGF0b2koYXJyWzBd
KTsKKyAgICAgICAgaWYgKHdpZHRoICYmIHBhcnNlZF93aWR0aCkKKyAgICAgICAgICAgICp3aWR0
aCA9IHBhcnNlZF93aWR0aDsKKworICAgICAgICBwYXJzZWRfaGVpZ2h0ID0gYXRvaShhcnJbMV0p
OworICAgICAgICBpZiAoaGVpZ2h0ICYmIHBhcnNlZF9oZWlnaHQpCisgICAgICAgICAgICAqaGVp
Z2h0ID0gcGFyc2VkX2hlaWdodDsKKyAgICB9CisKKyAgICBmcmVlKGFyclswXSk7CisgICAgZnJl
ZShhcnIpOworfQorCiBFQVBJX01BSU4gaW50CiBlbG1fbWFpbihpbnQgYXJnYywgY2hhciAqYXJn
dltdKQogewogICAgIGludCBhcmdzID0gMTsKICAgICB1bnNpZ25lZCBjaGFyIHF1aXRPcHRpb24g
PSAwOwogICAgIEJyb3dzZXJfV2luZG93ICp3aW5kb3c7CisgICAgY2hhciAqd2luZG93X3NpemVf
c3RyaW5nID0gTlVMTDsKIAogICAgIEVjb3JlX0dldG9wdF9WYWx1ZSB2YWx1ZXNbXSA9IHsKICAg
ICAgICAgRUNPUkVfR0VUT1BUX1ZBTFVFX1NUUihldmFzX2VuZ2luZV9uYW1lKSwKKyAgICAgICAg
RUNPUkVfR0VUT1BUX1ZBTFVFX1NUUih3aW5kb3dfc2l6ZV9zdHJpbmcpLAogICAgICAgICBFQ09S
RV9HRVRPUFRfVkFMVUVfQk9PTChxdWl0T3B0aW9uKSwKICAgICAgICAgRUNPUkVfR0VUT1BUX1ZB
TFVFX0JPT0woZnJhbWVfZmxhdHRlbmluZ19lbmFibGVkKSwKICAgICAgICAgRUNPUkVfR0VUT1BU
X1ZBTFVFX0JPT0wocXVpdE9wdGlvbiksCkBAIC05OTUsNiArMTAyNCw5IEBAIGVsbV9tYWluKGlu
dCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgfQogI2VuZGlmCiAKKyAgICBpZiAod2luZG93X3Np
emVfc3RyaW5nKQorICAgICAgICBwYXJzZV93aW5kb3dfc2l6ZSh3aW5kb3dfc2l6ZV9zdHJpbmcs
ICZ3aW5kb3dfd2lkdGgsICZ3aW5kb3dfaGVpZ2h0KTsKKwogICAgIGlmIChhcmdzIDwgYXJnYykg
ewogICAgICAgICBjaGFyICp1cmwgPSB1cmxfZnJvbV91c2VyX2lucHV0KGFyZ3ZbYXJnc10pOwog
ICAgICAgICB3aW5kb3cgPSB3aW5kb3dfY3JlYXRlKHVybCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>