<?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>93078</bug_id>
          
          <creation_ts>2012-08-03 01:17:20 -0700</creation_ts>
          <short_desc>Improve SharedBuffer testing</short_desc>
          <delta_ts>2016-03-21 17:36:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>155739</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>hyatt</cc>
    
    <cc>jianli</cc>
    
    <cc>kling</cc>
    
    <cc>mitz</cc>
    
    <cc>pfeldman</cc>
    
    <cc>psolanki</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>xiaomings</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>686378</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-03 01:17:20 -0700</bug_when>
    <thetext>After SharedBuffer::copy(), SharedBuffer::append() often causes segmentation fault,
because copy() calls clone-&gt;m_buffer.append(m_segments[i], segmentSize) even if
&apos;i&apos; is the last index. The data size of m_segments.last() is often less than
segmentSize. So, in the cloned instance m_size &lt; (m_buffer.size() + SUM(m_segments[i].size())).
This patch appends the exact size of the last segment instead of segmentSize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686387</commentid>
    <comment_count>1</comment_count>
      <attachid>156284</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-03 01:20:10 -0700</bug_when>
    <thetext>Created attachment 156284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686858</commentid>
    <comment_count>2</comment_count>
      <attachid>156284</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-03 09:49:50 -0700</bug_when>
    <thetext>Comment on attachment 156284
Patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        No new tests - no new testable functionality.

This doesn&apos;t make sense to me. It&apos;s not just new functionality that we require tests for, we definitely require tests for crash fixes too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687373</commentid>
    <comment_count>3</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-03 21:54:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 156284 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=156284&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:16
&gt; &gt; +        No new tests - no new testable functionality.
&gt; 
&gt; This doesn&apos;t make sense to me. It&apos;s not just new functionality that we require tests for, we definitely require tests for crash fixes too.

Thank you for your advice.

Could you explain how I can test this crash fix? Or is it ok to change the changelog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687379</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-03 22:12:36 -0700</bug_when>
    <thetext>As you mentioned in bug description, this issue often causes segmentation faults. To create a regression test, you need to simulate the conditions in which the crash occurs.

Are you seeing that on a live web site?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687386</commentid>
    <comment_count>5</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-03 22:40:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; As you mentioned in bug description, this issue often causes segmentation faults. To create a regression test, you need to simulate the conditions in which the crash occurs.
&gt; 
&gt; Are you seeing that on a live web site?

No, currently there are only two sites that use SharedBuffer::copy(): ImageDocument::finish() and IconDatabase::setIconDataForIconURL().
It seems those cases do not use append after copy.

I found this bug when I implemented parallel image decoder (Bug 90375).
As I mentioned, I often encountered segmentation fault when running parallel image decoder, because it uses copy and append.

I&apos;ve tried to make a test, but I&apos;m not sure how to test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687403</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-08-03 23:53:51 -0700</bug_when>
    <thetext>You haven&apos;t mentioned it before. Please give this as a reason why this cannot be changed in ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687405</commentid>
    <comment_count>7</comment_count>
      <attachid>156520</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-04 00:05:15 -0700</bug_when>
    <thetext>Created attachment 156520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687408</commentid>
    <comment_count>8</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-04 00:15:42 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; You haven&apos;t mentioned it before. Please give this as a reason why this cannot be changed in ChangeLog.

I&apos;m sorry if the changelog was confusing. I submitted a new patch after amending the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691369</commentid>
    <comment_count>9</comment_count>
      <attachid>157432</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-09 04:51:09 -0700</bug_when>
    <thetext>Created attachment 157432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691370</commentid>
    <comment_count>10</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-09 04:52:43 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=157432) [details]
&gt; Patch

Remove the invalid assertion that I wrote in the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806124</commentid>
    <comment_count>11</comment_count>
    <who name="Xiaoming Shi">xiaomings</who>
    <bug_when>2013-01-14 00:06:30 -0800</bug_when>
    <thetext>I have also hit this issue this week. Just wonder when this patch will be committed.

Also, the line in the patch:

+        unsigned positionInSegment = offsetInSegment(m_size - m_buffer.size());

will make positionInSegment to 0 if the size of the last segment is segmentSize. You can use:

unsigned positionInSegment = m_size - m_buffer.size() - secondToLast * segmentSize;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806146</commentid>
    <comment_count>12</comment_count>
      <attachid>182524</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-14 01:17:35 -0800</bug_when>
    <thetext>Created attachment 182524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806150</commentid>
    <comment_count>13</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-14 01:20:10 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; I have also hit this issue this week. Just wonder when this patch will be committed.

Could you explain how you encounter this bug. reviewers needs layout tests but I can not make test as I mentioned changelog.

&gt; unsigned positionInSegment = m_size - m_buffer.size() - secondToLast * segmentSize;

you&apos;re right! thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806152</commentid>
    <comment_count>14</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-14 01:23:01 -0800</bug_when>
    <thetext>ping. We are waiting for reivew :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807500</commentid>
    <comment_count>15</comment_count>
    <who name="Xiaoming Shi">xiaomings</who>
    <bug_when>2013-01-15 11:26:56 -0800</bug_when>
    <thetext>I encountered this bug when I was debugging WebKit, where I cloned a SharedBuffer and later compared it with the original one. So I cannot provide a test case either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810760</commentid>
    <comment_count>16</comment_count>
      <attachid>182524</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-18 10:02:53 -0800</bug_when>
    <thetext>Comment on attachment 182524
Patch

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

I&apos;ve been asked to review this patch, but I cannot figure out the relationship between the many data members in this class. It has m_buffer, m_segments, m_purgeableBuffer, m_dataArray, m_cfData. Which of these can be non-empty simultaneously? This class doesn&apos;t even have assertions to ensure such invariants at runtime!

What does it mean that the buffer is &quot;shared&quot;?

It appears that copy() should be doing more or less the same thing as data(), but the implementations have nothing in common.

I suspect that there are bigger design issues with this class than just this crash in an unused code path. It needs to be clarified how this class is expected to be used via better design.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Internal review by Jae Hyun Park.

This comment is unhelpful. What is internal review? Do reviewers or people reading ChangeLogs need to know who performed it?

At the very least, please clarify such comments in the future (maybe &quot;Company100 internal review by Jae Hyun Park&quot;)? Or better yet, just omit them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811252</commentid>
    <comment_count>17</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-18 18:54:32 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 182524 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182524&amp;action=review

Your opinion is valuable, but I&apos;d like to little bit more focus on this patch.

&gt; I&apos;ve been asked to review this patch, but I cannot figure out the relationship between the many data members in this class. It has m_buffer, m_segments, m_purgeableBuffer, m_dataArray, m_cfData. Which of these can be non-empty simultaneously? This class doesn&apos;t even have assertions to ensure such invariants at runtime!

I agree.  Only m_buffer and m_segments are necessary.
m_purgeableBuffer, m_dataArray, m_cfData are memory optimization for only Apple AFAIK. I wish we will refactor this class more succinct later.

&gt; What does it mean that the buffer is &quot;shared&quot;?

This class&apos;s main purpose is to store network data. For example, we receive image date via many packet. SharedBuffer stores data in many packet in not-continuous memory.
We can rename this class later if we think &apos;shared&apos; does not make sense.
 
&gt; It appears that copy() should be doing more or less the same thing as data(), but the implementations have nothing in common.

data() and copy() are different.
data() moves all data into continuous memory and returns the first pointer of buffer. for example, many image decoder library needs continuous data.
copy() is clone. copy() creates new SharedBuffer. Two SharedBuffer does not share one real buffer.

&gt; I suspect that there are bigger design issues with this class than just this crash in an unused code path. It needs to be clarified how this class is expected to be used via better design.

I wish we will execute your opinion later as well as I wish this patch land. Some people are waiting.


&gt; At the very least, please clarify such comments in the future (maybe &quot;Company100 internal review by Jae Hyun Park&quot;)? Or better yet, just omit them.

My company needs to give credit all contributors of the patch. I&apos;ll rephrase &quot;Company100 internal review by Jae Hyun Park&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811275</commentid>
    <comment_count>18</comment_count>
      <attachid>182524</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-18 20:30:20 -0800</bug_when>
    <thetext>Comment on attachment 182524
Patch

I should have actually marked this reviewed. Making semi-arbitatry modifications to support use cases that do not exist in WebKit truck is not the right way forward.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811326</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-01-18 23:45:46 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; (From update of attachment 182524 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182524&amp;action=review
&gt; 
&gt; Your opinion is valuable, but I&apos;d like to little bit more focus on this patch.

Everything Alexey said was directly related to his review of this patch.

&gt; &gt; I&apos;ve been asked to review this patch, but I cannot figure out the relationship between the many data members in this class. It has m_buffer, m_segments, m_purgeableBuffer, m_dataArray, m_cfData. Which of these can be non-empty simultaneously? This class doesn&apos;t even have assertions to ensure such invariants at runtime!
&gt; 
&gt; I agree.  Only m_buffer and m_segments are necessary.
&gt; m_purgeableBuffer, m_dataArray, m_cfData are memory optimization for only Apple AFAIK. I wish we will refactor this class more succinct later.

Apple introduced this class and Apple did most of the initial work on it.  Removing Apple performance optimizations would cause a regression in a tested port and would not be allowed.

Alexey was not saying &quot;this class is too complicated and needs to be simplified.&quot;  He was just stating &quot;this class is complicated and it is not at all certain what invariants exist.  There should be ASSERTs at the very least to enforce invariants that do exist.&quot;

&gt; &gt; What does it mean that the buffer is &quot;shared&quot;?
&gt; 
&gt; This class&apos;s main purpose is to store network data. For example, we receive image date via many packet. SharedBuffer stores data in many packet in not-continuous memory.
&gt; We can rename this class later if we think &apos;shared&apos; does not make sense.

This is simply wrong, and is a misunderstanding of a fundamental class in WebCore.

SharedBuffer was introduced in http://trac.webkit.org/changeset/18621

Back before SharedBuffer it was introduced, we referred to *contiguous* blobs of data by char* (unsafe), Vector&lt;char&gt; (slow, as the full buffer was copied a lot), or platform specific buffers such as NSdata (unfortunate, because it was platform specific)

The original purpose behind SharedBuffer was to make a RefCounted contiguous buffer that was platform independent.  It had the ability from day one to wrap platform buffers, though, for efficiencies sake.

SharedBuffer picked up the ability to wrap non-contiguous buffers later.  

&gt; &gt; It appears that copy() should be doing more or less the same thing as data(), but the implementations have nothing in common.
&gt; 
&gt; data() and copy() are different.
&gt; data() moves all data into continuous memory and returns the first pointer of buffer. for example, many image decoder library needs continuous data.
&gt; copy() is clone. copy() creates new SharedBuffer. Two SharedBuffer does not share one real buffer.
&gt; 
&gt; &gt; I suspect that there are bigger design issues with this class than just this crash in an unused code path. It needs to be clarified how this class is expected to be used via better design.
&gt; 
&gt; I wish we will execute your opinion later as well as I wish this patch land. Some people are waiting.

Alexey has been a reviewer in the open source project since before SharedBuffer was introduced.

His opinion is not dismissible just because some people - who appear to be quite new to the project and don&apos;t fully appreciate the history of what they are changing - want this to land soon.

As a reviewer, he has said it is not clear to him that this patch is correct.

If the correctness of a patch is called in to question by a reviewer it is the burden of the patch submitter to prove it is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811337</commentid>
    <comment_count>20</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-01-19 00:23:22 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #17)
&gt; &gt; (In reply to comment #16)
&gt; &gt; &gt; (From update of attachment 182524 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182524&amp;action=review
&gt; If the correctness of a patch is called in to question by a reviewer it is the burden of the patch submitter to prove it is correct.

I fully respect webkit developers&apos; all history and effort. I never think his opinion can be dismissible. If you felt this, it is due to my sentence that can cause misunderstanding easily.
If Alexey and you felt bad, I&apos;m very sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811340</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-19 00:31:18 -0800</bug_when>
    <thetext>&gt; data() and copy() are different.
&gt; data() moves all data into continuous memory and returns the first pointer of buffer. for example, many image decoder library needs continuous data.
&gt; copy() is clone. copy() creates new SharedBuffer. Two SharedBuffer does not share one real buffer.

Both functions build a contiguous buffer, but look at different data members. In particular, copy() ignores m_dataArray.

It&apos;s unclear why copy() even strives to build a contiguous buffer, or to avoid sharing any data with the original. This is very inefficient, and is not regular behavior for copying, which could just reference immutable objects (like CFDataRefs). If there is a reason for that, it needs to be clarified through comments and better naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911182</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-23 17:07:08 -0700</bug_when>
    <thetext>It seems like this got fixed in Blink: https://chromium.googlesource.com/chromium/blink/+/b69f2c01cf57f3a699006fbd692c70bd176946e4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176849</commentid>
    <comment_count>23</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-03-21 14:53:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/25277829&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176852</commentid>
    <comment_count>24</comment_count>
      <attachid>274624</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-03-21 14:56:33 -0700</bug_when>
    <thetext>Created attachment 274624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176853</commentid>
    <comment_count>25</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-03-21 14:58:11 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; It seems like this got fixed in Blink:
&gt; https://chromium.googlesource.com/chromium/blink/+/
&gt; b69f2c01cf57f3a699006fbd692c70bd176946e4

I imported those tests into WebKit ToT (see updated patch for this bug), and I do not see any errors, even under GuardMalloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176867</commentid>
    <comment_count>26</comment_count>
      <attachid>274624</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-03-21 15:31:49 -0700</bug_when>
    <thetext>Comment on attachment 274624
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        Add three test cases from the Blink project that cover various append,
&gt; +        copy, and createArrayBuffer calls.

Can we attribute to a Blink commit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176881</commentid>
    <comment_count>27</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-03-21 17:06:54 -0700</bug_when>
    <thetext>Committed r198507: &lt;http://trac.webkit.org/changeset/198507&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156284</attachid>
            <date>2012-08-03 01:20:10 -0700</date>
            <delta_ts>2012-08-04 00:05:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93078-20120803171940.patch</filename>
            <type>text/plain</type>
            <size>2276</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGIzMWI0OGQ0MTQ1ZGFh
ZGM3OGMzMTA3ZWM5ZjMyODhlNTU4NmUyMC4uYmI5YTIyNTBjN2M4ZWY2YTRiM2M5NzA5ZWVmYmFi
MjQ0YmFiNWFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4LTAzICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFNoYXJlZEJ1
ZmZlcjo6Y29weSgpIGNhbiBjYXVzZSBzZWdtZW50YXRpb24gZmF1bHQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzA3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludGVybmFsIHJldmlldyBieSBKYWUg
SHl1biBQYXJrLgorCisgICAgICAgIEFmdGVyIFNoYXJlZEJ1ZmZlcjo6Y29weSgpLCBTaGFyZWRC
dWZmZXI6OmFwcGVuZCgpIG9mdGVuIGNhdXNlcyBzZWdtZW50YXRpb24gZmF1bHQsCisgICAgICAg
IGJlY2F1c2UgY29weSgpIGNhbGxzIGNsb25lLT5tX2J1ZmZlci5hcHBlbmQobV9zZWdtZW50c1tp
XSwgc2VnbWVudFNpemUpIGV2ZW4gaWYKKyAgICAgICAgJ2knIGlzIHRoZSBsYXN0IGluZGV4LiBU
aGUgZGF0YSBzaXplIG9mIG1fc2VnbWVudHMubGFzdCgpIGlzIG9mdGVuIGxlc3MgdGhhbgorICAg
ICAgICBzZWdtZW50U2l6ZS4gU28sIGluIHRoZSBjbG9uZWQgaW5zdGFuY2UgbV9zaXplIDwgKG1f
YnVmZmVyLnNpemUoKSArIFNVTShtX3NlZ21lbnRzW2ldLnNpemUoKSkpLgorICAgICAgICBUaGlz
IHBhdGNoIGFwcGVuZHMgdGhlIGV4YWN0IHNpemUgb2YgdGhlIGxhc3Qgc2VnbWVudCBpbnN0ZWFk
IG9mIHNlZ21lbnRTaXplLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIG5vIG5ldyB0ZXN0YWJs
ZSBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y29weSk6CisKIDIwMTItMDctMTkgIEh1
YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgQWRkIHBh
cmFsbGVsIGltYWdlIGRlY29kZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TaGFyZWRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVy
LmNwcAppbmRleCA5YjhkNTAzYmY5YjFlZjY3NzE5Nzc5Y2YzYmNmYjE3MmQyMzNjYTJiLi4wNGQx
Mjk5NmI2YWZjZDJhYTk0NDQ4NTk3YjNkZGZlZDMwZDY2MjBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTIxMyw4ICsyMTMsMTUgQEAgUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6Y29weSgpIGNvbnN0CiAgICAgY2xvbmUtPm1fc2l6
ZSA9IG1fc2l6ZTsKICAgICBjbG9uZS0+bV9idWZmZXIucmVzZXJ2ZUNhcGFjaXR5KG1fc2l6ZSk7
CiAgICAgY2xvbmUtPm1fYnVmZmVyLmFwcGVuZChtX2J1ZmZlci5kYXRhKCksIG1fYnVmZmVyLnNp
emUoKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2VnbWVudHMuc2l6ZSgpOyAr
K2kpCi0gICAgICAgIGNsb25lLT5tX2J1ZmZlci5hcHBlbmQobV9zZWdtZW50c1tpXSwgc2VnbWVu
dFNpemUpOworICAgIGlmICghbV9zZWdtZW50cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgdW5zaWdu
ZWQgc2Vjb25kVG9MYXN0ID0gbV9zZWdtZW50cy5zaXplKCkgLSAxOworICAgICAgICBBU1NFUlQo
c2Vjb25kVG9MYXN0ID4gbV9zZWdtZW50cy5zaXplKCkpOworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgc2Vjb25kVG9MYXN0OyArK2kpCisgICAgICAgICAgICBjbG9uZS0+bV9idWZm
ZXIuYXBwZW5kKG1fc2VnbWVudHNbaV0sIHNlZ21lbnRTaXplKTsKKworICAgICAgICB1bnNpZ25l
ZCBwb3NpdGlvbkluU2VnbWVudCA9IG9mZnNldEluU2VnbWVudChtX3NpemUgLSBtX2J1ZmZlci5z
aXplKCkpOworICAgICAgICBjbG9uZS0+bV9idWZmZXIuYXBwZW5kKG1fc2VnbWVudHMubGFzdCgp
LCBwb3NpdGlvbkluU2VnbWVudCk7CisgICAgfQogICAgIHJldHVybiBjbG9uZTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156520</attachid>
            <date>2012-08-04 00:05:15 -0700</date>
            <delta_ts>2012-08-09 04:51:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93078-20120804160441.patch</filename>
            <type>text/plain</type>
            <size>2419</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0Njg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdiMmEyMTRhYTM0Zjcz
NGQ0ZmVlOTJmMjNlNTIwN2FhYTNkYzU5Mi4uMDI3YWY2NWEwYWFmNzcwOTk4ZDI1MGUxNDAzOWQy
OGM5ODVmMjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA4LTAzICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFNoYXJlZEJ1
ZmZlcjo6Y29weSgpIGNhbiBjYXVzZSBzZWdtZW50YXRpb24gZmF1bHQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzA3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludGVybmFsIHJldmlldyBieSBKYWUg
SHl1biBQYXJrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgYSBwb3RlbnRpYWwgYnVnIGZpeC4K
KyAgICAgICAgQWZ0ZXIgU2hhcmVkQnVmZmVyOjpjb3B5KCksIFNoYXJlZEJ1ZmZlcjo6YXBwZW5k
KCkgY2FuIGNhdXNlIHNlZ21lbnRhdGlvbiBmYXVsdCwKKyAgICAgICAgYmVjYXVzZSBjb3B5KCkg
Y2FsbHMgY2xvbmUtPm1fYnVmZmVyLmFwcGVuZChtX3NlZ21lbnRzW2ldLCBzZWdtZW50U2l6ZSkg
ZXZlbiBpZgorICAgICAgICAnaScgaXMgdGhlIGxhc3QgaW5kZXguIFRoZSBkYXRhIHNpemUgb2Yg
bV9zZWdtZW50cy5sYXN0KCkgaXMgb2Z0ZW4gbGVzcyB0aGFuCisgICAgICAgIHNlZ21lbnRTaXpl
LiBTbywgaW4gdGhlIGNsb25lZCBpbnN0YW5jZSBtX3NpemUgPCAobV9idWZmZXIuc2l6ZSgpICsg
U1VNKG1fc2VnbWVudHNbaV0uc2l6ZSgpKSkuCisgICAgICAgIFRoaXMgcGF0Y2ggYXBwZW5kcyB0
aGUgZXhhY3Qgc2l6ZSBvZiB0aGUgbGFzdCBzZWdtZW50IGluc3RlYWQgb2Ygc2VnbWVudFNpemUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJdCdzIGhhcmQgdG8gdGVzdCB0aGlzIGNyYXNoIGZp
eCBpbiBEUlQsIGJlY2F1c2UgdGhlcmUgYXJlCisgICAgICAgIG5vIGNsaWVudHMgdGhhdCBjYWxs
IGFwcGVuZCgpIGFmdGVyIGNvcHkoKS4KKworICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNvcHkpOgorCiAyMDEyLTA4
LTAzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGlzYWJsaW5n
IGV2YWwgY2hhbmdlcyB0aGUgdGltaW5nIG9mIERpZENyZWF0ZVNjcmlwdENvbnRleHQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDliOGQ1MDNiZjliMWVmNjc3
MTk3NzljZjNiY2ZiMTcyZDIzM2NhMmIuLjA0ZDEyOTk2YjZhZmNkMmFhOTQ0NDg1OTdiM2RkZmVk
MzBkNjYyMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcApAQCAt
MjEzLDggKzIxMywxNSBAQCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpj
b3B5KCkgY29uc3QKICAgICBjbG9uZS0+bV9zaXplID0gbV9zaXplOwogICAgIGNsb25lLT5tX2J1
ZmZlci5yZXNlcnZlQ2FwYWNpdHkobV9zaXplKTsKICAgICBjbG9uZS0+bV9idWZmZXIuYXBwZW5k
KG1fYnVmZmVyLmRhdGEoKSwgbV9idWZmZXIuc2l6ZSgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9zZWdtZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgY2xvbmUtPm1fYnVmZmVy
LmFwcGVuZChtX3NlZ21lbnRzW2ldLCBzZWdtZW50U2l6ZSk7CisgICAgaWYgKCFtX3NlZ21lbnRz
LmlzRW1wdHkoKSkgeworICAgICAgICB1bnNpZ25lZCBzZWNvbmRUb0xhc3QgPSBtX3NlZ21lbnRz
LnNpemUoKSAtIDE7CisgICAgICAgIEFTU0VSVChzZWNvbmRUb0xhc3QgPiBtX3NlZ21lbnRzLnNp
emUoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzZWNvbmRUb0xhc3Q7ICsr
aSkKKyAgICAgICAgICAgIGNsb25lLT5tX2J1ZmZlci5hcHBlbmQobV9zZWdtZW50c1tpXSwgc2Vn
bWVudFNpemUpOworCisgICAgICAgIHVuc2lnbmVkIHBvc2l0aW9uSW5TZWdtZW50ID0gb2Zmc2V0
SW5TZWdtZW50KG1fc2l6ZSAtIG1fYnVmZmVyLnNpemUoKSk7CisgICAgICAgIGNsb25lLT5tX2J1
ZmZlci5hcHBlbmQobV9zZWdtZW50cy5sYXN0KCksIHBvc2l0aW9uSW5TZWdtZW50KTsKKyAgICB9
CiAgICAgcmV0dXJuIGNsb25lOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157432</attachid>
            <date>2012-08-09 04:51:09 -0700</date>
            <delta_ts>2013-01-14 01:17:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93078-20120809205041.patch</filename>
            <type>text/plain</type>
            <size>2391</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzVjNWFiNjdmZjUzMjYy
NWU5ZGZlNmYzYjE0MTkxMDMzNGNjMmNiYS4uMDk0YTZiMDFhZGNhNDhkMjRlOWUzZjUyZGY0NDFh
MDgzM2UxMjY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA4LTA5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFNoYXJlZEJ1
ZmZlcjo6Y29weSgpIGNhbiBjYXVzZSBzZWdtZW50YXRpb24gZmF1bHQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzA3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludGVybmFsIHJldmlldyBieSBKYWUg
SHl1biBQYXJrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgYSBwb3RlbnRpYWwgYnVnIGZpeC4K
KyAgICAgICAgQWZ0ZXIgU2hhcmVkQnVmZmVyOjpjb3B5KCksIFNoYXJlZEJ1ZmZlcjo6YXBwZW5k
KCkgY2FuIGNhdXNlIHNlZ21lbnRhdGlvbiBmYXVsdCwKKyAgICAgICAgYmVjYXVzZSBjb3B5KCkg
Y2FsbHMgY2xvbmUtPm1fYnVmZmVyLmFwcGVuZChtX3NlZ21lbnRzW2ldLCBzZWdtZW50U2l6ZSkg
ZXZlbiBpZgorICAgICAgICAnaScgaXMgdGhlIGxhc3QgaW5kZXguIFRoZSBkYXRhIHNpemUgb2Yg
bV9zZWdtZW50cy5sYXN0KCkgaXMgb2Z0ZW4gbGVzcyB0aGFuCisgICAgICAgIHNlZ21lbnRTaXpl
LiBTbywgaW4gdGhlIGNsb25lZCBpbnN0YW5jZSBtX3NpemUgPCAobV9idWZmZXIuc2l6ZSgpICsg
U1VNKG1fc2VnbWVudHNbaV0uc2l6ZSgpKSkuCisgICAgICAgIFRoaXMgcGF0Y2ggYXBwZW5kcyB0
aGUgZXhhY3Qgc2l6ZSBvZiB0aGUgbGFzdCBzZWdtZW50IGluc3RlYWQgb2Ygc2VnbWVudFNpemUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJdCdzIGhhcmQgdG8gdGVzdCB0aGlzIGNyYXNoIGZp
eCBpbiBEUlQsIGJlY2F1c2UgdGhlcmUgYXJlCisgICAgICAgIG5vIGNsaWVudHMgdGhhdCBjYWxs
IGFwcGVuZCgpIGFmdGVyIGNvcHkoKS4KKworICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNvcHkpOgorCiAyMDEyLTA4
LTA4ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCiAgICAgICAg
IFNldCBtX2lzQ29tcGxldGUgdG8gdHJ1ZSBpbiBCaXRtYXBJbWFnZShOYXRpdmVJbWFnZVB0ciwg
SW1hZ2VPYnNlcnZlciopLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hh
cmVkQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAK
aW5kZXggYmM2YzMwOWRhMGQyMTU1YzRmOTE4M2I2ZmRmNjE2NzY0ODM1MzgwMS4uYjBmOGU5YTEy
NWMwNzY0MDYxYjliMWI1M2U4MjFjOTA5OTE5YzQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TaGFyZWRCdWZmZXIuY3BwCkBAIC0yMTMsOCArMjEzLDE0IEBAIFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBTaGFyZWRCdWZmZXI6OmNvcHkoKSBjb25zdAogICAgIGNsb25lLT5tX3NpemUgPSBt
X3NpemU7CiAgICAgY2xvbmUtPm1fYnVmZmVyLnJlc2VydmVDYXBhY2l0eShtX3NpemUpOwogICAg
IGNsb25lLT5tX2J1ZmZlci5hcHBlbmQobV9idWZmZXIuZGF0YSgpLCBtX2J1ZmZlci5zaXplKCkp
OwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgKytpKQot
ICAgICAgICBjbG9uZS0+bV9idWZmZXIuYXBwZW5kKG1fc2VnbWVudHNbaV0sIHNlZ21lbnRTaXpl
KTsKKyAgICBpZiAoIW1fc2VnbWVudHMuaXNFbXB0eSgpKSB7CisgICAgICAgIHVuc2lnbmVkIHNl
Y29uZFRvTGFzdCA9IG1fc2VnbWVudHMuc2l6ZSgpIC0gMTsKKyAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHNlY29uZFRvTGFzdDsgKytpKQorICAgICAgICAgICAgY2xvbmUtPm1fYnVm
ZmVyLmFwcGVuZChtX3NlZ21lbnRzW2ldLCBzZWdtZW50U2l6ZSk7CisKKyAgICAgICAgdW5zaWdu
ZWQgcG9zaXRpb25JblNlZ21lbnQgPSBvZmZzZXRJblNlZ21lbnQobV9zaXplIC0gbV9idWZmZXIu
c2l6ZSgpKTsKKyAgICAgICAgY2xvbmUtPm1fYnVmZmVyLmFwcGVuZChtX3NlZ21lbnRzLmxhc3Qo
KSwgcG9zaXRpb25JblNlZ21lbnQpOworICAgIH0KICAgICByZXR1cm4gY2xvbmU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182524</attachid>
            <date>2013-01-14 01:17:35 -0800</date>
            <delta_ts>2016-03-21 14:56:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93078-20130114181402.patch</filename>
            <type>text/plain</type>
            <size>2422</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdlOThiMjM5NTIyZmNl
NGRkYjFhNzg3MmNhMDIzZTkxNTgwYjdkZC4uYWJjYmRhNDExZTQ3Y2VlMDVjM2IxZDk3NWVkY2I5
NDMwOTMzN2EzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAxLTE0ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFNoYXJlZEJ1
ZmZlcjo6Y29weSgpIGNhbiBjYXVzZSBzZWdtZW50YXRpb24gZmF1bHQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzA3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludGVybmFsIHJldmlldyBieSBKYWUg
SHl1biBQYXJrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgYSBwb3RlbnRpYWwgYnVnIGZpeC4K
KyAgICAgICAgQWZ0ZXIgU2hhcmVkQnVmZmVyOjpjb3B5KCksIFNoYXJlZEJ1ZmZlcjo6YXBwZW5k
KCkgY2FuIGNhdXNlIHNlZ21lbnRhdGlvbiBmYXVsdCwKKyAgICAgICAgYmVjYXVzZSBjb3B5KCkg
Y2FsbHMgY2xvbmUtPm1fYnVmZmVyLmFwcGVuZChtX3NlZ21lbnRzW2ldLCBzZWdtZW50U2l6ZSkg
ZXZlbiBpZgorICAgICAgICAnaScgaXMgdGhlIGxhc3QgaW5kZXguIFRoZSBkYXRhIHNpemUgb2Yg
bV9zZWdtZW50cy5sYXN0KCkgaXMgb2Z0ZW4gbGVzcyB0aGFuCisgICAgICAgIHNlZ21lbnRTaXpl
LiBTbywgaW4gdGhlIGNsb25lZCBpbnN0YW5jZSBtX3NpemUgPCAobV9idWZmZXIuc2l6ZSgpICsg
U1VNKG1fc2VnbWVudHNbaV0uc2l6ZSgpKSkuCisgICAgICAgIFRoaXMgcGF0Y2ggYXBwZW5kcyB0
aGUgZXhhY3Qgc2l6ZSBvZiB0aGUgbGFzdCBzZWdtZW50IGluc3RlYWQgb2Ygc2VnbWVudFNpemUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBJdCdzIGhhcmQgdG8gdGVzdCB0aGlzIGNyYXNoIGZp
eCBpbiBEUlQsIGJlY2F1c2UgdGhlcmUgYXJlCisgICAgICAgIG5vIGNsaWVudHMgdGhhdCBjYWxs
IGFwcGVuZCgpIGFmdGVyIGNvcHkoKS4KKworICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNvcHkpOgorCiAyMDEzLTAx
LTE0ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBOYXRpdmUgTWVtb3J5IEluc3RydW1lbnRhdGlvbjogZml4IGluc3RydW1l
bnRhdGlvbiBmb3IgYWxyZWFkeSBpbnN0cnVtZW50ZWQgY2xhc3NlcyAzLzMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCmluZGV4IDBhYzZhYjQ0YTJiZWQwNDk1Yjg0NWE5
NDdlN2VkYTJhNGU2YTc5OGUuLjc2Nzk3MWRjMjZiOWUyNzBhODkxYzlmMWQzNjdjOTI4M2I4MTkz
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcApAQCAtMjQxLDgg
KzI0MSwxNCBAQCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjb3B5KCkg
Y29uc3QKICAgICBjbG9uZS0+bV9zaXplID0gbV9zaXplOwogICAgIGNsb25lLT5tX2J1ZmZlci5y
ZXNlcnZlQ2FwYWNpdHkobV9zaXplKTsKICAgICBjbG9uZS0+bV9idWZmZXIuYXBwZW5kKG1fYnVm
ZmVyLmRhdGEoKSwgbV9idWZmZXIuc2l6ZSgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV9zZWdtZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgY2xvbmUtPm1fYnVmZmVyLmFwcGVu
ZChtX3NlZ21lbnRzW2ldLCBzZWdtZW50U2l6ZSk7CisgICAgaWYgKCFtX3NlZ21lbnRzLmlzRW1w
dHkoKSkgeworICAgICAgICB1bnNpZ25lZCBsYXN0SW5kZXggPSBtX3NlZ21lbnRzLnNpemUoKSAt
IDE7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsYXN0SW5kZXg7ICsraSkKKyAg
ICAgICAgICAgIGNsb25lLT5tX2J1ZmZlci5hcHBlbmQobV9zZWdtZW50c1tpXSwgc2VnbWVudFNp
emUpOworCisgICAgICAgIHVuc2lnbmVkIHBvc2l0aW9uSW5TZWdtZW50ID0gbV9zaXplIC0gbV9i
dWZmZXIuc2l6ZSgpIC0gbGFzdEluZGV4ICogc2VnbWVudFNpemU7CisgICAgICAgIGNsb25lLT5t
X2J1ZmZlci5hcHBlbmQobV9zZWdtZW50cy5sYXN0KCksIHBvc2l0aW9uSW5TZWdtZW50KTsKKyAg
ICB9CiAgICAgcmV0dXJuIGNsb25lOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274624</attachid>
            <date>2016-03-21 14:56:33 -0700</date>
            <delta_ts>2016-03-21 15:31:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93078-20160321145633.patch</filename>
            <type>text/plain</type>
            <size>7526</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5ODQ0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTAzLTIxICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgU2hhcmVkQnVm
ZmVyIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkzMDc4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNTI3NzgyOT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBhbiBvcmlnaW5h
bCBwYXRjaCBieSBIdWFuZyBEb25nc3VuZyA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+LgorCisg
ICAgICAgIEFkZCB0aHJlZSB0ZXN0IGNhc2VzIGZyb20gdGhlIEJsaW5rIHByb2plY3QgdGhhdCBj
b3ZlciB2YXJpb3VzIGFwcGVuZCwKKyAgICAgICAgY29weSwgYW5kIGNyZWF0ZUFycmF5QnVmZmVy
IGNhbGxzLgorCisgICAgICAgIFRlc3RlZCBieSBUZXN0V2ViS2l0QVBJLgorCisgICAgICAgICog
cGxhdGZvcm0vU2hhcmVkQnVmZmVyLmg6IE1hcmsgYSBmZXcgbWV0aG9kcyBhcyBXRUJDT1JFX0VY
UE9SVCBzbyB0aGV5CisgICAgICAgIGNhbiBiZSB1c2VkIGJ5IFRlc3RXZWJLaXRBUEkuCisKIDIw
MTYtMDMtMTggIFpodW8gTGkgIDx6YWNobGlAYXBwbGUuY29tPgogCiAgICAgICAgIE5lZWQgdG8g
Zm9yd2FyZCBkZWNsYXJlIE5TU2Nyb2xsZXJJbXBTUEk6OnNjcm9sbGVyTGF5b3V0RGlyZWN0aW9u
LgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmgJKHJldmlzaW9uIDE5
ODQ0NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBjb25z
dCBjaGFyKiBkYXRhKCkgY29uc3Q7CiAgICAgLy8gQ3JlYXRlcyBhbiBBcnJheUJ1ZmZlciBhbmQg
Y29waWVzIHRoaXMgU2hhcmVkQnVmZmVyJ3MgY29udGVudHMgdG8gdGhhdAogICAgIC8vIEFycmF5
QnVmZmVyIHdpdGhvdXQgbWVyZ2luZyBzZWdtZW50ZWQgYnVmZmVycyBpbnRvIGEgZmxhdCBidWZm
ZXIuCi0gICAgUmVmUHRyPEFycmF5QnVmZmVyPiBjcmVhdGVBcnJheUJ1ZmZlcigpIGNvbnN0Owor
ICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxBcnJheUJ1ZmZlcj4gY3JlYXRlQXJyYXlCdWZmZXIo
KSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIHNpemUoKSBjb25zdDsKIApA
QCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVu
ZChTaGFyZWRCdWZmZXIqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZChjb25zdCBj
aGFyKiwgdW5zaWduZWQpOwotICAgIHZvaWQgYXBwZW5kKGNvbnN0IFZlY3RvcjxjaGFyPiYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwZW5kKGNvbnN0IFZlY3RvcjxjaGFyPiYpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwogICAgIGNvbnN0IGNoYXIqIHBsYXRmb3Jt
RGF0YSgpIGNvbnN0OwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTk4NDk5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDMtMjEgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wcm92ZSBTaGFyZWRCdWZmZXIgdGVzdGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMwNzgKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1Mjc3ODI5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhc2VkIG9uIGFuIG9yaWdpbmFsIHBhdGNoIGJ5IEh1
YW5nIERvbmdzdW5nIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4uCisKKyAgICAgICAgQWRkIHRo
cmVlIHRlc3QgY2FzZXMgZnJvbSB0aGUgQmxpbmsgcHJvamVjdCB0aGF0IGNvdmVyIHZhcmlvdXMg
YXBwZW5kLAorICAgICAgICBjb3B5LCBhbmQgY3JlYXRlQXJyYXlCdWZmZXIgY2FsbHMuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisKIDIwMTYtMDMtMjAgIERhbiBCZXJuc3Rl
aW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBEZXRlcm1pbmUgVEFSR0VUX01B
Q19PU19YX1ZFUlNJT05fTUFKT1IgZnJvbSBNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgcmF0aGVy
IHRoYW4gZnJvbSBNQUNfT1NfWF9WRVJTSU9OX01BSk9SCkluZGV4OiBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAkocmV2aXNpb24gMTk4
NDQ2KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw3IEBACiAvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAx
NSBDYW5vbiBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTE2LDQgKzExOCw3NyBAQCBURVNUX0YoU2hhcmVkQnVmZmVyVGVzdCwgYXBw
ZW5kQnVmZmVyQ3JlCiAgICAgRVhQRUNUX0VRKCdhJywgYnVmZmVyLT5kYXRhKClbc3RybGVuKFNo
YXJlZEJ1ZmZlclRlc3REYXRhKV0pOwogfQogCitURVNUX0YoU2hhcmVkQnVmZmVyVGVzdCwgY3Jl
YXRlQXJyYXlCdWZmZXIpCit7CisgICAgY2hhciB0ZXN0RGF0YTBbXSA9ICJIZWxsbyI7CisgICAg
Y2hhciB0ZXN0RGF0YTFbXSA9ICJXb3JsZCI7CisgICAgY2hhciB0ZXN0RGF0YTJbXSA9ICJHb29k
YnllIjsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzaGFyZWRCdWZmZXIgPSBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZSh0ZXN0RGF0YTAsIHN0cmxlbih0ZXN0RGF0YTApKTsKKyAgICBzaGFyZWRCdWZm
ZXItPmFwcGVuZCh0ZXN0RGF0YTEsIHN0cmxlbih0ZXN0RGF0YTEpKTsKKyAgICBzaGFyZWRCdWZm
ZXItPmFwcGVuZCh0ZXN0RGF0YTIsIHN0cmxlbih0ZXN0RGF0YTIpKTsKKyAgICBSZWZQdHI8QXJy
YXlCdWZmZXI+IGFycmF5QnVmZmVyID0gc2hhcmVkQnVmZmVyLT5jcmVhdGVBcnJheUJ1ZmZlcigp
OworICAgIGNoYXIgZXhwZWN0ZWRDb25jYXRlbmF0aW9uW10gPSAiSGVsbG9Xb3JsZEdvb2RieWUi
OworICAgIEFTU0VSVF9FUShzdHJsZW4oZXhwZWN0ZWRDb25jYXRlbmF0aW9uKSwgYXJyYXlCdWZm
ZXItPmJ5dGVMZW5ndGgoKSk7CisgICAgRVhQRUNUX0VRKDAsIG1lbWNtcChleHBlY3RlZENvbmNh
dGVuYXRpb24sIGFycmF5QnVmZmVyLT5kYXRhKCksIHN0cmxlbihleHBlY3RlZENvbmNhdGVuYXRp
b24pKSk7Cit9CisKK1RFU1RfRihTaGFyZWRCdWZmZXJUZXN0LCBjcmVhdGVBcnJheUJ1ZmZlckxh
cmdlU2VnbWVudHMpCit7CisgICAgVmVjdG9yPGNoYXI+IHZlY3RvcjAoMHg0MDAwLCAnYScpOwor
ICAgIFZlY3RvcjxjaGFyPiB2ZWN0b3IxKDB4NDAwMCwgJ2InKTsKKyAgICBWZWN0b3I8Y2hhcj4g
dmVjdG9yMigweDQwMDAsICdjJyk7CisKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzaGFyZWRC
dWZmZXIgPSBTaGFyZWRCdWZmZXI6OmFkb3B0VmVjdG9yKHZlY3RvcjApOworICAgIHNoYXJlZEJ1
ZmZlci0+YXBwZW5kKHZlY3RvcjEpOworICAgIHNoYXJlZEJ1ZmZlci0+YXBwZW5kKHZlY3RvcjIp
OworICAgIFJlZlB0cjxBcnJheUJ1ZmZlcj4gYXJyYXlCdWZmZXIgPSBzaGFyZWRCdWZmZXItPmNy
ZWF0ZUFycmF5QnVmZmVyKCk7CisgICAgQVNTRVJUX0VRKDB4NDAwMFUgKyAweDQwMDBVICsgMHg0
MDAwVSwgYXJyYXlCdWZmZXItPmJ5dGVMZW5ndGgoKSk7CisgICAgaW50IHBvc2l0aW9uID0gMDsK
KyAgICBmb3IgKGludCBpID0gMDsgaSA8IDB4NDAwMDsgKytpKSB7CisgICAgICAgIEVYUEVDVF9F
USgnYScsIHN0YXRpY19jYXN0PGNoYXIqPihhcnJheUJ1ZmZlci0+ZGF0YSgpKVtwb3NpdGlvbl0p
OworICAgICAgICArK3Bvc2l0aW9uOworICAgIH0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDB4
NDAwMDsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgnYicsIHN0YXRpY19jYXN0PGNoYXIqPihh
cnJheUJ1ZmZlci0+ZGF0YSgpKVtwb3NpdGlvbl0pOworICAgICAgICArK3Bvc2l0aW9uOworICAg
IH0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDB4NDAwMDsgKytpKSB7CisgICAgICAgIEVYUEVD
VF9FUSgnYycsIHN0YXRpY19jYXN0PGNoYXIqPihhcnJheUJ1ZmZlci0+ZGF0YSgpKVtwb3NpdGlv
bl0pOworICAgICAgICArK3Bvc2l0aW9uOworICAgIH0KK30KKworVEVTVF9GKFNoYXJlZEJ1ZmZl
clRlc3QsIGNvcHkpCit7CisgICAgY2hhciB0ZXN0RGF0YVtdID0gIkhhYml0YXNzZSBpbnRlZ2Vy
IGVyb3MgdGluY2lkdW50IGEgc2NlbGVyaXNxdWUhIEVuaW0gZWxpdD8gU2NlbGVyaXNxdWUgbWFn
bmlzLCIKKyAgICAiZXQgbW9udGVzIHVsdHJpY2VzIHRyaXN0aXF1ZSBhISBQaWQuIFZlbGl0IHR1
cnBpcywgZGFwaWJ1cyBpbnRlZ2VyIHJob25jdXMgc29jaWlzIGFtZXQgZmFjaWxpc2lzLCIKKyAg
ICAiYWRpcGlzY2luZyBwdWx2aW5hciBuYXNjZXR1ciBtYWduaXMgdGVtcG9yIHNpdCBwdWx2aW5h
ciwgbWFzc2EgdXJuYSBlbmltIHBvcnR0aXRvciBzb2NpaXMgc29jaWlzIHByb2luIGVuaW0/Igor
ICAgICJMZWN0dXMsIHBsYXRlYSBkb2xvciwgaW50ZWdlciBhLiBBIGhhYml0YXNzZSBoYWMgbnVu
YywgbnVuYywgbmVjIHBsYWNlcmF0IHZ1dCBpbiBzaXQgbnVuYyBuZWMsIHNlZC4gU29jaWlzLCIK
KyAgICAidnV0ISBIYWMsIHZlbGl0IHJob25jdXMgZmFjaWxpc2lzLiBSaG9uY3VzIGV0LCBlbmlt
LCBzZWQgZXQgaW4gdHJpc3RpcXVlIG51bmMgbW9udGVzLCIKKyAgICAibmF0b3F1ZSBudW5jIHNh
Z2l0dGlzIGVsZW1lbnR1bSBwYXJ0dXJpZW50IHBsYWNlcmF0IGRvbG9yIGludGVnZXI/IFB1bHZp
bmFyLCIKKyAgICAibWFnbmlzIGRpZ25pc3NpbSBwb3J0dGl0b3IgYWMgcHVsdmluYXIgbWlkIHRl
bXBvci4gQSByaXN1cyBzZWQgbWlkISBNYWduaXMgZWxpdCBkdWlzIHVybmEsIgorICAgICJjcmFz
IG1hc3NhLCBtYWduYSBkdWlzLiBWdXQgbWFnbmlzIHBpZCBhISBQZW5hdGlidXMgYWxpcXVldCBw
b3J0dGl0b3IgbnVuYywgYWRpcGlzY2luZyBtYXNzYSBvZGlvIGx1bmRpdW0sIgorICAgICJyaXN1
cyBlbGVtZW50dW0gYWMgdHVycGlzIG1hc3NhIHBlbGxlbnRlc3F1ZSBwYXJ0dXJpZW50IGF1Z3Vl
LiBQdXJ1cyBhbWV0IHR1cnBpcyBwaWQgYWxpcXVhbT8iCisgICAgIkRvbG9yIGVzdCB0aW5jaWR1
bnQ/IERvbG9yPyBEaWduaXNzaW0gcG9ydHRpdG9yIHNpdCBpbiBhbGlxdWFtISBUaW5jaWR1bnQs
IG5vbiBudW5jLCByaG9uY3VzIGRpY3R1bXN0ISIKKyAgICAiUG9ydGEgYXVndWUgZXRpYW0uIEN1
cnN1cyBhdWd1ZSBudW5jIGxhY3VzIHNjZWxlcmlzcXVlLiBSaG9uY3VzIGxlY3R1cywgaW50ZWdl
ciBoYWMsIG5lYyBwdWx2aW5hciBhdWd1ZSBtYXNzYSwiCisgICAgImludGVnZXIgYW1ldCBuaXNp
IGZhY2lsaXNpcz8gQSEgQSwgZW5pbSB2ZWxpdCBwdWx2aW5hciBlbGl0IGluIG5vbiBzY2VsZXJp
c3F1ZSBpbiBldCB1bHRyaWNpZXMgYW1ldCBlc3QhIgorICAgICJpbiBwb3J0dGl0b3IgbW9udGVz
IGxvcmVtIGV0LCBoYWMgYWxpcXVldCBwZWxsZW50ZXNxdWUgYSBzZWQ/IEF1Z3VlIG1pZCBwdXJ1
cyByaWRpY3VsdXMgdmVsIGRhcGlidXMsIgorICAgICJzYWdpdHRpcyBzZWQsIHRvcnRvciBhdWN0
b3IgbmFzY2V0dXIgcmhvbmN1cyBuZWMsIHJob25jdXMsIG1hZ25hIGludGVnZXIuIFNpdCBldSBt
YXNzYSB2dXQ/IgorICAgICJQb3J0YSBhdWd1ZSBwb3J0dGl0b3IgZWxlbWVudHVtLCBlbmltLCBy
aG9uY3VzIHB1bHZpbmFyIGR1aXMgaW50ZWdlciBzY2VsZXJpc3F1ZSByaG9uY3VzIG5hdG9xdWUs
IgorICAgICJtYXR0aXMgZGlnbmlzc2ltIG1hc3NhIGFjIHB1bHZpbmFyIHVybmEsIG51bmMgdXQu
IFNhZ2l0dGlzLCBhbGlxdWV0IHBlbmF0aWJ1cyBwcm9pbiBsb3JlbSwgcHVsdmluYXIgbGVjdHVz
LCIKKyAgICAiYXVndWUgcHJvaW4hIEFjLCBhcmN1IHF1aXMuIFBsYWNlcmF0IGhhYml0YXNzZSwg
cmlkaWN1bHVzIHJpZGljdWx1cy4iOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN0cmxlbih0ZXN0
RGF0YSk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2hhcmVkQnVmZmVyID0gU2hhcmVkQnVm
ZmVyOjpjcmVhdGUodGVzdERhdGEsIGxlbmd0aCk7CisgICAgc2hhcmVkQnVmZmVyLT5hcHBlbmQo
dGVzdERhdGEsIGxlbmd0aCk7CisgICAgc2hhcmVkQnVmZmVyLT5hcHBlbmQodGVzdERhdGEsIGxl
bmd0aCk7CisgICAgc2hhcmVkQnVmZmVyLT5hcHBlbmQodGVzdERhdGEsIGxlbmd0aCk7CisgICAg
Ly8gc2hhcmVkQnVmZmVyIG11c3QgY29udGFpbiBkYXRhIG1vcmUgdGhhbiBzZWdtZW50U2l6ZSAo
PSAweDEwMDApIHRvIGNoZWNrIGNvcHkoKS4KKyAgICBBU1NFUlRfRVEobGVuZ3RoICogNCwgc2hh
cmVkQnVmZmVyLT5zaXplKCkpOworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGNsb25lID0gc2hh
cmVkQnVmZmVyLT5jb3B5KCk7CisgICAgQVNTRVJUX0VRKGxlbmd0aCAqIDQsIGNsb25lLT5zaXpl
KCkpOworICAgIEFTU0VSVF9FUSgwLCBtZW1jbXAoY2xvbmUtPmRhdGEoKSwgc2hhcmVkQnVmZmVy
LT5kYXRhKCksIGNsb25lLT5zaXplKCkpKTsKKyAgICBjbG9uZS0+YXBwZW5kKHRlc3REYXRhLCBs
ZW5ndGgpOworICAgIEFTU0VSVF9FUShsZW5ndGggKiA1LCBjbG9uZS0+c2l6ZSgpKTsKK30KKwog
fQo=
</data>
<flag name="review"
          id="299035"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>