<?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>88344</bug_id>
          
          <creation_ts>2012-06-05 10:35:39 -0700</creation_ts>
          <short_desc>Fix FastMalloc.cpp compile error for MSVC in 64-bit</short_desc>
          <delta_ts>2012-11-13 15:44:53 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>89366</dependson>
    
    <dependson>102145</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">alex.christensen</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>mrowe</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>641696</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-05 10:35:39 -0700</bug_when>
    <thetext>Source/WTF/wtf/FastMalloc.cpp does not compile for 64 bit machines.  Line 2477 tries to make an array of size 0.  I suggest this line be changed from 

  char pad_[(64 - (sizeof(TCMalloc_Central_FreeList) % 64)) % 64];

(which evaluates to 0 when sizeof(TCMalloc_Central_FreeList) is a multiple of 64) to this:

  char pad_[64 - (sizeof(TCMalloc_Central_FreeList) % 64)];

This will not change anything for a 32 bit machine, and it will create a 64 byte pad on a 64 bit machine, which will use a little extra memory, but it will compile correctly and still pad to a multiple of 64 bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641784</commentid>
    <comment_count>1</comment_count>
      <attachid>145851</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-05 11:56:43 -0700</bug_when>
    <thetext>Created attachment 145851
patch

patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641940</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-05 15:29:00 -0700</bug_when>
    <thetext>Thank you for preparing a nice patch with ChangeLog! To follow through on the process, please set &quot;review?&quot; flag via patch details, so that it gets into review queue.

I have a question: what platforms does this actually fix? WebKit certainly compiles fine for 64-bit Mac, so the patch description is incomplete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642594</commentid>
    <comment_count>3</comment_count>
      <attachid>145851</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-06 10:37:27 -0700</bug_when>
    <thetext>Comment on attachment 145851
patch

Visual Studio x64 compiler sees an array of length 0 without this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644470</commentid>
    <comment_count>4</comment_count>
      <attachid>145851</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-08 01:40:46 -0700</bug_when>
    <thetext>Comment on attachment 145851
patch

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

&gt; Source/WTF/wtf/FastMalloc.cpp:2477
&gt; -  char pad_[(64 - (sizeof(TCMalloc_Central_FreeList) % 64)) % 64];
&gt; +    char pad[64 - (sizeof(TCMalloc_Central_FreeList) % 64)];

Clearly, whoever wrote this code didn&apos;t test it :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644472</commentid>
    <comment_count>5</comment_count>
      <attachid>145851</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-08 01:42:19 -0700</bug_when>
    <thetext>Comment on attachment 145851
patch

Assuming you&apos;re not a committer, if you wanted your patch to be committed, please let me know if set cq? flag as well so that other committers may land this patch on behalf of you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644473</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-08 01:43:09 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 145851 [details])
&gt; Assuming you&apos;re not a committer, if you wanted your patch to be committed, please let me know if set cq? flag as well so that other committers may land this patch on behalf of you.

Ugh... I meant to say:

Please let me know if you wanted your patch to be committed, or set cq? flag as well so that other committers may land this patch on behalf of you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644845</commentid>
    <comment_count>7</comment_count>
      <attachid>145851</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-08 11:07:15 -0700</bug_when>
    <thetext>Comment on attachment 145851
patch

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

&gt;&gt; Source/WTF/wtf/FastMalloc.cpp:2477
&gt;&gt;   private:
&gt;&gt; -  char pad_[(64 - (sizeof(TCMalloc_Central_FreeList) % 64)) % 64];
&gt;&gt; +    char pad[64 - (sizeof(TCMalloc_Central_FreeList) % 64)];
&gt; 
&gt; Clearly, whoever wrote this code didn&apos;t test it :(

On my second thought you should wrap this with
#if sizeof(TCMalloc_Central_FreeList) % 64
#endif
so that we don&apos;t increase the size when sizeof(TCMalloc_Central_FreeList) is a multiple of 64.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647150</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-12 11:52:33 -0700</bug_when>
    <thetext>The preprocessor cannot use the sizeof operator.  Since this would add a maximum of 64 bytes per TCMalloc_Central_FreeListPadded and there is only an array of kNumClasses of these objects, and kNumClasses is 68, this would use a maximum of 4420 bytes.  I don&apos;t think this is anything to worry about.

Commit it!

(In reply to comment #7)
&gt; (From update of attachment 145851 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145851&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/FastMalloc.cpp:2477
&gt; &gt;&gt;   private:
&gt; &gt;&gt; -  char pad_[(64 - (sizeof(TCMalloc_Central_FreeList) % 64)) % 64];
&gt; &gt;&gt; +    char pad[64 - (sizeof(TCMalloc_Central_FreeList) % 64)];
&gt; &gt; 
&gt; &gt; Clearly, whoever wrote this code didn&apos;t test it :(
&gt; 
&gt; On my second thought you should wrap this with
&gt; #if sizeof(TCMalloc_Central_FreeList) % 64
&gt; #endif
&gt; so that we don&apos;t increase the size when sizeof(TCMalloc_Central_FreeList) is a multiple of 64.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647172</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-12 12:24:10 -0700</bug_when>
    <thetext>&gt; The preprocessor cannot use the sizeof operator.

Why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647176</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-12 12:28:37 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; The preprocessor cannot use the sizeof operator.  Since this would add a maximum of 64 bytes per TCMalloc_Central_FreeListPadded and there is only an array of kNumClasses of these objects, and kNumClasses is 68, this would use a maximum of 4420 bytes.  I don&apos;t think this is anything to worry about.

Oops, you&apos;re right. However, we can use template specialization based on sizeof.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647177</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-06-12 12:29:33 -0700</bug_when>
    <thetext>Sorry, yes, why Ryosuke said.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647315</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-12 14:14:49 -0700</bug_when>
    <thetext>Using template specialization would change a lot of the pointer types, especially when OS(DARWIN) is true.  This would require a bit more surgery on this cpp file.  Would it be worth restructuring the whole file just to save 6k of memory in a global variable with one instance?

(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; The preprocessor cannot use the sizeof operator.  Since this would add a maximum of 64 bytes per TCMalloc_Central_FreeListPadded and there is only an array of kNumClasses of these objects, and kNumClasses is 68, this would use a maximum of 4420 bytes.  I don&apos;t think this is anything to worry about.
&gt; 
&gt; Oops, you&apos;re right. However, we can use template specialization based on sizeof.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647354</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-12 14:42:33 -0700</bug_when>
    <thetext>scratch that.  I got it working with specialized templates and am uploading a new patch.

(In reply to comment #12)
&gt; Using template specialization would change a lot of the pointer types, especially when OS(DARWIN) is true.  This would require a bit more surgery on this cpp file.  Would it be worth restructuring the whole file just to save 6k of memory in a global variable with one instance?
&gt; 
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #8)
&gt; &gt; &gt; The preprocessor cannot use the sizeof operator.  Since this would add a maximum of 64 bytes per TCMalloc_Central_FreeListPadded and there is only an array of kNumClasses of these objects, and kNumClasses is 68, this would use a maximum of 4420 bytes.  I don&apos;t think this is anything to worry about.
&gt; &gt; 
&gt; &gt; Oops, you&apos;re right. However, we can use template specialization based on sizeof.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647356</commentid>
    <comment_count>14</comment_count>
      <attachid>147167</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-12 14:43:03 -0700</bug_when>
    <thetext>Created attachment 147167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647393</commentid>
    <comment_count>15</comment_count>
      <attachid>147167</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-12 15:07:47 -0700</bug_when>
    <thetext>Comment on attachment 147167
Patch

Attachment 147167 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12817031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647574</commentid>
    <comment_count>16</comment_count>
      <attachid>147167</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-12 18:37:27 -0700</bug_when>
    <thetext>Comment on attachment 147167
Patch

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

&gt; Source/WTF/wtf/FastMalloc.cpp:2489
&gt; +static TCMalloc_Central_FreeListPadded&lt;(64 - (sizeof(TCMalloc_Central_FreeList) % 64)) % 64&gt; central_cache[kNumClasses];

Oh, you should probably put this back in struct and just pass sizeof as the argument.
Aldo, please typedef it so that users of this type doesn&apos;t need to know the trick we&apos;re using.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649253</commentid>
    <comment_count>17</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-14 09:53:59 -0700</bug_when>
    <thetext>&gt; Oh, you should probably put this back in struct and just pass sizeof as the argument.
I would have to pass at least sizeof(TCMalloc_Central_FreeList)%64.
&gt; Aldo, please typedef it so that users of this type doesn&apos;t need to know the trick we&apos;re using.
Using typedef causes problems because of line 499.  It must already be declared as a class, or we&apos;ll have to do some major reordering.

Since this problem only arises with Visual Studio x64 compiler, I&apos;m uploading a patch that just uses precompiler directives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649267</commentid>
    <comment_count>18</comment_count>
      <attachid>147609</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-14 10:06:29 -0700</bug_when>
    <thetext>Created attachment 147609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649271</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-14 10:13:00 -0700</bug_when>
    <thetext>Why is it okay not to pad?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649276</commentid>
    <comment_count>20</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-14 10:26:32 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Why is it okay not to pad?
You&apos;re right.  Just because the size is a multiple of 64 bytes right now doesn&apos;t mean it won&apos;t change.  I&apos;ll add a padding template for MSVC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649280</commentid>
    <comment_count>21</comment_count>
      <attachid>147611</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-14 10:34:13 -0700</bug_when>
    <thetext>Created attachment 147611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649285</commentid>
    <comment_count>22</comment_count>
      <attachid>147611</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-14 10:40:36 -0700</bug_when>
    <thetext>Comment on attachment 147611
Patch

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

&gt; Source/WTF/wtf/FastMalloc.cpp:2484
&gt; +#if COMPILER(MSVC)
&gt; +template &lt;int SizeToPad&gt; class TCMalloc_Central_FreeListPadded : public TCMalloc_Central_FreeList {
&gt; + private:
&gt; +    char pad[64 - SizeToPad];
&gt; +};
&gt; +template &lt;&gt; class TCMalloc_Central_FreeListPadded&lt;0&gt; : public TCMalloc_Central_FreeList { };
&gt; +#else
&gt;  class TCMalloc_Central_FreeListPadded : public TCMalloc_Central_FreeList {
&gt;   private:
&gt;    char pad_[(64 - (sizeof(TCMalloc_Central_FreeList) % 64)) % 64];
&gt;  };
&gt; +#endif

Why do we not want to use this template for other compilers? I don&apos;t see any benefit in that.
All I&apos;ve asked you to do is to do
typedef TCMalloc_Central_FreeListPadded&lt;sizeof(TCMalloc_Central_FreeList) % 64&gt; TCMalloc_Central_FreeListPadded;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649327</commentid>
    <comment_count>23</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-14 11:22:47 -0700</bug_when>
    <thetext>&gt; Why do we not want to use this template for other compilers? I don&apos;t see any benefit in that.
The problem only exists for MSVC.  It can apparently be compiled for 64 bit and 32 bit on a mac.
&gt; All I&apos;ve asked you to do is to do
&gt; typedef TCMalloc_Central_FreeListPadded&lt;sizeof(TCMalloc_Central_FreeList) % 64&gt; TCMalloc_Central_FreeListPadded;
That redefines WTF::TCMalloc_Central_FreeListPadded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649342</commentid>
    <comment_count>24</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-14 11:37:28 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; That redefines WTF::TCMalloc_Central_FreeListPadded.

But but you can use a slightly different name for the templated version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649400</commentid>
    <comment_count>25</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-14 12:59:18 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; That redefines WTF::TCMalloc_Central_FreeListPadded.
&gt; 
&gt; But but you can use a slightly different name for the templated version.

Doing this requires some reordering of the code, but it can be done.  I&apos;m uploading a patch that adds the specialized template and reorders class definitions so everything compiles correctly with the new typedef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649401</commentid>
    <comment_count>26</comment_count>
      <attachid>147635</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-14 13:01:01 -0700</bug_when>
    <thetext>Created attachment 147635
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649402</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 13:03:29 -0700</bug_when>
    <thetext>Attachment 147635 did not pass style-queue:

Source/WTF/wtf/FastMalloc.cpp:1117:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1119:  The parameter name &quot;N&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WTF/wtf/FastMalloc.cpp:1122:  The parameter name &quot;N&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WTF/wtf/FastMalloc.cpp:1125:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1131:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1131:  tc_length is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1159:  Use 0 or null instead of NULL (even in *comments*).  [readability/null] [4]
Source/WTF/wtf/FastMalloc.cpp:1163:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1164:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1165:  Use 0 or null instead of NULL (even in *comments*).  [readability/null] [4]
Source/WTF/wtf/FastMalloc.cpp:1176:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WTF/wtf/FastMalloc.cpp:1198:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1199:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1203:  locked_size_class is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1207:  lock_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1210:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1210:  Extra space between size_t and size_class_  [whitespace/declaration] [3]
Source/WTF/wtf/FastMalloc.cpp:1210:  size_class_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1211:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1211:  Extra space between Span and empty_  [whitespace/declaration] [3]
Source/WTF/wtf/FastMalloc.cpp:1211:  empty_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1212:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1212:  Extra space between Span and nonempty_  [whitespace/declaration] [3]
Source/WTF/wtf/FastMalloc.cpp:1212:  nonempty_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1213:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1213:  Extra space between size_t and counter_  [whitespace/declaration] [3]
Source/WTF/wtf/FastMalloc.cpp:1213:  counter_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1215:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1218:  tc_slots_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1220:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1222:  used_slots_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1223:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1226:  cache_size_Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Fa...&quot; exit_code: 1
 is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1260:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WTF/wtf/FastMalloc.cpp:1291:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1293:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1293:  kernel_supports_tls is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1294:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1297:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1298:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1302:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1303:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1305:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1305:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WTF/wtf/FastMalloc.cpp:1308:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WTF/wtf/FastMalloc.cpp:1310:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1312:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/WTF/wtf/FastMalloc.cpp:1313:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/WTF/wtf/FastMalloc.cpp:1314:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1320:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 50 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649430</commentid>
    <comment_count>28</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-14 13:29:20 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; That redefines WTF::TCMalloc_Central_FreeListPadded.
&gt; &gt; 
&gt; &gt; But but you can use a slightly different name for the templated version.
&gt; 
&gt; Doing this requires some reordering of the code, but it can be done.  I&apos;m uploading a patch that adds the specialized template and reorders class definitions so everything compiles correctly with the new typedef.

oh oops, okay, then let&apos;s just use the template directly. By the way, template argument should probably be size_t instead of int.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649446</commentid>
    <comment_count>29</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-14 13:45:31 -0700</bug_when>
    <thetext>&gt; oh oops, okay, then let&apos;s just use the template directly. By the way, template argument should probably be size_t instead of int.

even using a template directly requires reordering like I did because of line 499:
class TCMalloc_Central_FreeListPadded;

which would have to be changed to 
template &lt;int&gt; class TCMalloc_Central_FreeListPadded;

All the pointers to TCMalloc_Central_FreeListPadded* would have to be changed to TCMalloc_Central_FreeListPadded&lt;...sizeof...&gt;* which means TCMalloc_Central_FreeList would have to already have been defined.

Basically there are two fixes:
1) use specialized templates for MSVC
2) reorder the whole cpp file

Which would be better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650272</commentid>
    <comment_count>30</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-06-15 09:56:16 -0700</bug_when>
    <thetext>If you are going to move code around, then please do that in a patch that makes no changes other than moving code. You can then follow up with a patch that makes any changes needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651549</commentid>
    <comment_count>31</comment_count>
      <attachid>148131</attachid>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-18 11:13:10 -0700</bug_when>
    <thetext>Created attachment 148131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651554</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-18 11:15:33 -0700</bug_when>
    <thetext>Attachment 148131 did not pass style-queue:

Source/WTF/wtf/FastMalloc.cpp:1293:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WTF/wtf/FastMalloc.cpp:970:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WTF/wtf/FastMalloc.cpp:1114:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1116:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1118:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1118:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1119:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1120:  The parameter name &quot;N&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WTF/wtf/FastMalloc.cpp:1120:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1122:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1123:  The parameter name &quot;N&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WTF/wtf/FastMalloc.cpp:1123:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1125:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1126:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1126:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1129:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1131:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1132:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1132:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1132:  tc_length is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1135:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1138:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1139:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1140:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1154:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1158:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1159:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1160:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1160:  Use 0 or null instead of NULL (even in *comments*).  [readability/null] [4]
Source/WTF/wtf/FastMalloc.cpp:1161:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1163:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1164:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1164:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1165:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1165:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1166:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1166:  Use 0 or null instead of NULL (even in *comments*).  [readability/null] [4]
Source/WTF/wtf/FastMalloc.cpp:1167:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1169:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1170:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1171:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1172:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1174:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1175:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1176:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1177:  The parameter name &quot;object&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WTF/wtf/FastMalloc.cpp:1177:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1179:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1180:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1181:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1182:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1184:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1185:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1185:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1186:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1186:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1187:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1188:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1190:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1191:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1192:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1193:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1194:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1195:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1197:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1198:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1198:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1199:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1199:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1200:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1200:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1201:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1201:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1202:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1203:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1204:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1204:  locked_size_class is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1206:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1206:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1207:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1208:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1208:  lock_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1210:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1211:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1211:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1211:  Extra space between size_t and size_class_  [whitespace/declaration] [3]
Source/WTF/wtf/FastMalloc.cpp:1211:  size_class_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1212:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1212:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1212:  Extra space between Span and empty_  [whitespace/declaration] [3]
Source/WTF/wtf/FastMalloc.cpp:1212:  empty_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1213:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1213:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1213:  Extra space between Span and nonempty_  [whitespace/declaration] [3]
Source/WTF/wtf/FastMalloc.cpp:1213:  nonempty_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1214:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1214:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1214:  Extra space between size_t and counter_  [whitespace/declaration] [3]
Source/WTF/wtf/FastMalloc.cpp:1214:  counter_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1216:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1216:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1217:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1218:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1219:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1219:  tc_slots_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1221:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1221:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1222:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1223:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1223:  used_slots_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1224:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1224:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1225:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1226:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1227:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1227:  cache_size_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1233:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1233:  pad_ is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1260:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WTF/wtf/FastMalloc.cpp:1279:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1290:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1291:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1293:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1293:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1293:  kernel_supports_tls is incoFailed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/wtf/Fa...&quot; exit_code: 1
rrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/WTF/wtf/FastMalloc.cpp:1294:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1294:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1296:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Source/WTF/wtf/FastMalloc.cpp:1297:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1298:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1302:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1303:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1305:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1305:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WTF/wtf/FastMalloc.cpp:1308:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WTF/wtf/FastMalloc.cpp:1310:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1312:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/WTF/wtf/FastMalloc.cpp:1313:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/WTF/wtf/FastMalloc.cpp:1314:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1318:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1320:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WTF/wtf/FastMalloc.cpp:1323:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1324:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1326:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1329:  One space before end of line comments  [whitespace/comments] [5]
Source/WTF/wtf/FastMalloc.cpp:1330:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 147 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651560</commentid>
    <comment_count>33</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-18 11:24:20 -0700</bug_when>
    <thetext>The code doesn&apos;t pass the style checks, but all I did is put a few entire sections earlier in the code.  Should this be committed followed by another small patch adding the specialized template?  I could even do a typedef in the small patch that follows this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651574</commentid>
    <comment_count>34</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-18 11:32:32 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; The code doesn&apos;t pass the style checks, but all I did is put a few entire sections earlier in the code.  Should this be committed followed by another small patch adding the specialized template?  I could even do a typedef in the small patch that follows this.

Please file a new bug, block this bug with that new bug, and then post the refactoring patch there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652518</commentid>
    <comment_count>35</comment_count>
    <who name="Alex Christensen">alex.christensen</who>
    <bug_when>2012-06-19 09:22:42 -0700</bug_when>
    <thetext>&gt; Please file a new bug, block this bug with that new bug, and then post the refactoring patch there.

Done.  Bug 89366.  It doesn&apos;t pass the style check, but all I did was move existing code.  Could somebody go review it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766036</commentid>
    <comment_count>36</comment_count>
      <attachid>173984</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2012-11-13 14:07:16 -0800</bug_when>
    <thetext>Created attachment 173984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766043</commentid>
    <comment_count>37</comment_count>
      <attachid>173984</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2012-11-13 14:15:23 -0800</bug_when>
    <thetext>Comment on attachment 173984
Patch

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

&gt; Source/WTF/wtf/FastMalloc.cpp:1246
&gt; +// Zero-size specialization to avoid compiler error when TCMallo_Central_FreeList happens

&quot;TCMallo_Central_FreeList&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766047</commentid>
    <comment_count>38</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2012-11-13 14:16:41 -0800</bug_when>
    <thetext>(In reply to comment #37)
&gt; (From update of attachment 173984 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173984&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/FastMalloc.cpp:1246
&gt; &gt; +// Zero-size specialization to avoid compiler error when TCMallo_Central_FreeList happens
&gt; 
&gt; &quot;TCMallo_Central_FreeList&quot;

Hmm.  I&apos;ll fix that when I land it.  I&apos;m waiting for EWS to complete a few ports first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766069</commentid>
    <comment_count>39</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2012-11-13 14:40:25 -0800</bug_when>
    <thetext>Committed r134490: &lt;http://trac.webkit.org/changeset/134490&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766088</commentid>
    <comment_count>40</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-11-13 15:01:55 -0800</bug_when>
    <thetext>This has broken the Apple Lion builds.

http://build.webkit.org/builders/Apple%20Lion%20Release%20%28Build%29/builds/6429/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766097</commentid>
    <comment_count>41</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-13 15:11:35 -0800</bug_when>
    <thetext>(In reply to comment #40)
&gt; This has broken the Apple Lion builds.
&gt; 
&gt; http://build.webkit.org/builders/Apple%20Lion%20Release%20%28Build%29/builds/6429/steps/compile-webkit/logs/stdio

Oops, fixed in r134493.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766121</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 15:42:51 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 102145</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145851</attachid>
            <date>2012-06-05 11:56:43 -0700</date>
            <delta_ts>2012-06-12 14:42:57 -0700</delta_ts>
            <desc>patch</desc>
            <filename>FASTMALLOC_64_BIT.patch</filename>
            <type>text/plain</type>
            <size>1203</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTk1MDgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTA1ICBBbGV4IENocmlzdGVuc2VuICA8
YWxleC5jaHJpc3RlbnNlbkBmbGV4c2ltLmNvbT4KKworICAgICAgICBmaXggRmFzdE1hbGxvYy5j
cHAgY29tcGlsZSBlcnJvciBmb3IgNjQgYml0IG1hY2hpbmVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODM0NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAg
ICAoVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZCk6CisKIDIwMTItMDYtMDQgIFRha2Fz
aGkgVG95b3NoaW1hICA8dG95b3NoaW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtXZWJTb2Nr
ZXRdIFNlbmQgcmVxdWlyZXMgc3VwZXIgbGluZWFyIHRpbWUgYWdhaW5zdCBkYXRhIHNpemUKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL0Zhc3RNYWxsb2MuY3BwCShyZXZpc2lvbiAxMTk0OTkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9GYXN0TWFsbG9jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ3NCw3ICsyNDc0LDcgQEAKIC8v
IFBhZCBlYWNoIENlbnRyYWxDYWNoZSBvYmplY3QgdG8gbXVsdGlwbGUgb2YgNjQgYnl0ZXMKIGNs
YXNzIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3RQYWRkZWQgOiBwdWJsaWMgVENNYWxsb2NfQ2Vu
dHJhbF9GcmVlTGlzdCB7CiAgcHJpdmF0ZToKLSAgY2hhciBwYWRfWyg2NCAtIChzaXplb2YoVENN
YWxsb2NfQ2VudHJhbF9GcmVlTGlzdCkgJSA2NCkpICUgNjRdOworICAgIGNoYXIgcGFkWzY0IC0g
KHNpemVvZihUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0KSAlIDY0KV07CiB9OwogCiAvLy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147167</attachid>
            <date>2012-06-12 14:43:03 -0700</date>
            <delta_ts>2012-06-14 10:06:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88344-20120612154213.patch</filename>
            <type>text/plain</type>
            <size>1931</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMjAxMjEpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2LTEyICBBbGV4IENocmlzdGVuc2VuICA8
YWxleC5jaHJpc3RlbnNlbkBmbGV4c2ltLmNvbT4KKworICAgICAgICBGaXggRmFzdE1hbGxvYy5j
cHAgY29tcGlsZSBlcnJvciBmb3IgTVNWQyBpbiA2NC1iaXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAg
IChXVEYpOgorICAgICAgICAoVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZCk6CisKIDIw
MTItMDYtMTEgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4K
IAogICAgICAgICBVc2luZyBleHRyZXJuYWwgSUNVIGxpYnJhcnkgb24gY2FzZSB1bnNlbnNpdGl2
ZSBkcml2ZXMgd2lsbCBub3Qgd29yawpJbmRleDogU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAJKHJldmlzaW9u
IDEyMDEyMCkKKysrIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNDcyLDEwICsyNDcyLDEzIEBAIGNsYXNzIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Qg
ewogfTsKIAogLy8gUGFkIGVhY2ggQ2VudHJhbENhY2hlIG9iamVjdCB0byBtdWx0aXBsZSBvZiA2
NCBieXRlcwordGVtcGxhdGUgPGludCBQYWRTaXplPgogY2xhc3MgVENNYWxsb2NfQ2VudHJhbF9G
cmVlTGlzdFBhZGRlZCA6IHB1YmxpYyBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0IHsKICBwcml2
YXRlOgotICBjaGFyIHBhZF9bKDY0IC0gKHNpemVvZihUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0
KSAlIDY0KSkgJSA2NF07CisgICAgY2hhciBwYWRbUGFkU2l6ZV07CiB9OwordGVtcGxhdGUgPD4K
K2NsYXNzIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3RQYWRkZWQ8MD4gOiBwdWJsaWMgVENNYWxs
b2NfQ2VudHJhbF9GcmVlTGlzdCB7IH07CiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gR2xvYmFsIHZhcmlh
YmxlcwpAQCAtMjQ4Myw3ICsyNDg2LDcgQEAgY2xhc3MgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlz
dFBhZGRlZCA6CiAKIC8vIENlbnRyYWwgY2FjaGUgLS0gYSBjb2xsZWN0aW9uIG9mIGZyZWUtbGlz
dHMsIG9uZSBwZXIgc2l6ZS1jbGFzcy4KIC8vIFdlIGhhdmUgYSBzZXBhcmF0ZSBsb2NrIHBlciBm
cmVlLWxpc3QgdG8gcmVkdWNlIGNvbnRlbnRpb24uCi1zdGF0aWMgVENNYWxsb2NfQ2VudHJhbF9G
cmVlTGlzdFBhZGRlZCBjZW50cmFsX2NhY2hlW2tOdW1DbGFzc2VzXTsKK3N0YXRpYyBUQ01hbGxv
Y19DZW50cmFsX0ZyZWVMaXN0UGFkZGVkPCg2NCAtIChzaXplb2YoVENNYWxsb2NfQ2VudHJhbF9G
cmVlTGlzdCkgJSA2NCkpICUgNjQ+IGNlbnRyYWxfY2FjaGVba051bUNsYXNzZXNdOwogCiAvLyBQ
YWdlLWxldmVsIGFsbG9jYXRvcgogc3RhdGljIEFsbG9jQWxpZ25tZW50SW50ZWdlciBwYWdlaGVh
cF9tZW1vcnlbKHNpemVvZihUQ01hbGxvY19QYWdlSGVhcCkgKyBzaXplb2YoQWxsb2NBbGlnbm1l
bnRJbnRlZ2VyKSAtIDEpIC8gc2l6ZW9mKEFsbG9jQWxpZ25tZW50SW50ZWdlcildOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147609</attachid>
            <date>2012-06-14 10:06:29 -0700</date>
            <delta_ts>2012-06-14 10:34:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88344-20120614110537.patch</filename>
            <type>text/plain</type>
            <size>1272</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMjAzMzYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2LTE0ICBBbGV4IENocmlzdGVuc2VuICA8
YWxleC5jaHJpc3RlbnNlbkBmbGV4c2ltLmNvbT4KKworICAgICAgICBGaXggRmFzdE1hbGxvYy5j
cHAgY29tcGlsZSBlcnJvciBmb3IgTVNWQyBpbiA2NC1iaXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAg
IChUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0UGFkZGVkKToKKyAgICAgICAgYWRkZWQgI2lmIHRv
IHdvcmsgd2l0aCBNU1ZDIHg2NCBjb21waWxlcgorCiAyMDEyLTA2LTEzICBBcm5hdWQgUmVuZXZp
ZXIgIDxhcm5vQHJlbmV2aWVyLm5ldD4KIAogICAgICAgICBtYWtlIHN1cmUgaGVhZGVycyBhcmUg
aW5jbHVkZWQgb25seSBvbmNlIHBlciBmaWxlCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9GYXN0TWFs
bG9jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAkocmV2
aXNpb24gMTIwMzI5KQorKysgU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI0NzEsOCArMjQ3MSwxMCBAQCBjbGFzcyBUQ01hbGxvY19DZW50cmFsX0ZyZWVM
aXN0IHsKIAogLy8gUGFkIGVhY2ggQ2VudHJhbENhY2hlIG9iamVjdCB0byBtdWx0aXBsZSBvZiA2
NCBieXRlcwogY2xhc3MgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZCA6IHB1YmxpYyBU
Q01hbGxvY19DZW50cmFsX0ZyZWVMaXN0IHsKKyNpZiAoQ1BVKFg4NikgJiYgQ09NUElMRVIoTVNW
QykpIHx8ICghQ09NUElMRVIoTVNWQykpCiAgcHJpdmF0ZToKICAgY2hhciBwYWRfWyg2NCAtIChz
aXplb2YoVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdCkgJSA2NCkpICUgNjRdOworI2VuZGlmCiB9
OwogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147611</attachid>
            <date>2012-06-14 10:34:13 -0700</date>
            <delta_ts>2012-06-14 13:00:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88344-20120614113321.patch</filename>
            <type>text/plain</type>
            <size>2117</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMjAzMzYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2LTE0ICBBbGV4IENocmlzdGVuc2VuICA8
YWxleC5jaHJpc3RlbnNlbkBmbGV4c2ltLmNvbT4KKworICAgICAgICBGaXggRmFzdE1hbGxvYy5j
cHAgY29tcGlsZSBlcnJvciBmb3IgTVNWQyBpbiA2NC1iaXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAg
IChUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0UGFkZGVkKToKKyAgICAgICAgYWRkZWQgI2lmIGFu
ZCBzcGVjaWFsaXplZCB0ZW1wbGF0ZXMgdG8gd29yayB3aXRoIE1TVkMgeDY0IGNvbXBpbGVyCisK
IDIwMTItMDYtMTMgIEFybmF1ZCBSZW5ldmllciAgPGFybm9AcmVuZXZpZXIubmV0PgogCiAgICAg
ICAgIG1ha2Ugc3VyZSBoZWFkZXJzIGFyZSBpbmNsdWRlZCBvbmx5IG9uY2UgcGVyIGZpbGUKSW5k
ZXg6IFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL0Zhc3RNYWxsb2MuY3BwCShyZXZpc2lvbiAxMjAzMjkpCisrKyBTb3VyY2UvV1RGL3d0
Zi9GYXN0TWFsbG9jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ3MCwxMCArMjQ3MCwxOCBAQCBj
bGFzcyBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0IHsKIH07CiAKIC8vIFBhZCBlYWNoIENlbnRy
YWxDYWNoZSBvYmplY3QgdG8gbXVsdGlwbGUgb2YgNjQgYnl0ZXMKKyNpZiBDT01QSUxFUihNU1ZD
KQordGVtcGxhdGUgPGludCBTaXplVG9QYWQ+IGNsYXNzIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxp
c3RQYWRkZWQgOiBwdWJsaWMgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdCB7CisgcHJpdmF0ZToK
KyAgICBjaGFyIHBhZFs2NCAtIFNpemVUb1BhZF07Cit9OwordGVtcGxhdGUgPD4gY2xhc3MgVENN
YWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZDwwPiA6IHB1YmxpYyBUQ01hbGxvY19DZW50cmFs
X0ZyZWVMaXN0IHsgfTsKKyNlbHNlCiBjbGFzcyBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0UGFk
ZGVkIDogcHVibGljIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3QgewogIHByaXZhdGU6CiAgIGNo
YXIgcGFkX1soNjQgLSAoc2l6ZW9mKFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3QpICUgNjQpKSAl
IDY0XTsKIH07CisjZW5kaWYKIAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBHbG9iYWwgdmFyaWFibGVzCkBA
IC0yNDgxLDcgKzI0ODksMTEgQEAgY2xhc3MgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRl
ZCA6CiAKIC8vIENlbnRyYWwgY2FjaGUgLS0gYSBjb2xsZWN0aW9uIG9mIGZyZWUtbGlzdHMsIG9u
ZSBwZXIgc2l6ZS1jbGFzcy4KIC8vIFdlIGhhdmUgYSBzZXBhcmF0ZSBsb2NrIHBlciBmcmVlLWxp
c3QgdG8gcmVkdWNlIGNvbnRlbnRpb24uCisjaWYgQ09NUElMRVIoTVNWQykKK3N0YXRpYyBUQ01h
bGxvY19DZW50cmFsX0ZyZWVMaXN0UGFkZGVkPHNpemVvZihUQ01hbGxvY19DZW50cmFsX0ZyZWVM
aXN0KSAlIDY0PiBjZW50cmFsX2NhY2hlW2tOdW1DbGFzc2VzXTsKKyNlbHNlCiBzdGF0aWMgVENN
YWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZCBjZW50cmFsX2NhY2hlW2tOdW1DbGFzc2VzXTsK
KyNlbmRpZgogCiAvLyBQYWdlLWxldmVsIGFsbG9jYXRvcgogc3RhdGljIEFsbG9jQWxpZ25tZW50
SW50ZWdlciBwYWdlaGVhcF9tZW1vcnlbKHNpemVvZihUQ01hbGxvY19QYWdlSGVhcCkgKyBzaXpl
b2YoQWxsb2NBbGlnbm1lbnRJbnRlZ2VyKSAtIDEpIC8gc2l6ZW9mKEFsbG9jQWxpZ25tZW50SW50
ZWdlcildOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147635</attachid>
            <date>2012-06-14 13:01:01 -0700</date>
            <delta_ts>2012-06-18 11:13:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88344-20120614140009.patch</filename>
            <type>text/plain</type>
            <size>21679</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMjAzNTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTE0ICBBbGV4IENocmlzdGVuc2VuICA8
YWxleC5jaHJpc3RlbnNlbkBmbGV4c2ltLmNvbT4KKworICAgICAgICBGaXggRmFzdE1hbGxvYy5j
cHAgY29tcGlsZSBlcnJvciBmb3IgTVNWQyBpbiA2NC1iaXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAg
IChXVEYpOgorICAgICAgICAoVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdCk6CisgICAgICAgIChX
VEY6OlRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6Omxlbmd0aCk6CisgICAgICAgIChXVEY6OlRD
TWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Q6OnRjX2xlbmd0aCk6CisgICAgICAgIChXVEY6OlRDTWFs
bG9jX0NlbnRyYWxfRnJlZUxpc3Q6OmVudW1lcmF0ZUZyZWVPYmplY3RzKToKKyAgICAgICAgKFRD
TWFsbG9jX0NlbnRyYWxfRnJlZUxpc3RQYWRkZWRfVGVtcGxhdGUpOgorICAgICAgICBhZGRlZCBz
cGVjaWFsaXplZCB0ZW1wbGF0ZSB0aGF0IHBhZHMgb25seSB3aGVuIG5lZWRlZCAoZml4ZXMgTVNW
QyB4NjQgY29tcGlsZXIgZXJyb3IpCisgICAgICAgIChGYXN0TWFsbG9jWm9uZSk6CisgICAgICAg
IChXVEY6OkZhc3RNYWxsb2Nab25lOjpnb29kU2l6ZSk6CisgICAgICAgIChXVEY6OkZhc3RNYWxs
b2Nab25lOjpjaGVjayk6CisgICAgICAgIChXVEY6OkZhc3RNYWxsb2Nab25lOjpwcmludCk6Cisg
ICAgICAgIChXVEY6OkZhc3RNYWxsb2Nab25lOjpsb2cpOgorICAgICAgICAoV1RGOjpGYXN0TWFs
bG9jWm9uZTo6Zm9yY2VMb2NrKToKKyAgICAgICAgKFdURjo6RmFzdE1hbGxvY1pvbmU6OmZvcmNl
VW5sb2NrKToKKyAgICAgICAgKFdURjo6RmFzdE1hbGxvY1pvbmU6OnN0YXRpc3RpY3MpOgorICAg
ICAgICAoV1RGOjpGYXN0TWFsbG9jWm9uZTo6em9uZVZhbGxvYyk6CisgICAgICAgIChXVEY6OkZh
c3RNYWxsb2Nab25lOjp6b25lRGVzdHJveSk6CisgICAgICAgIChXVEY6Oktlcm5lbFN1cHBvcnRz
VExTKToKKyAgICAgICAgKFdURjo6Q2hlY2tJZktlcm5lbFN1cHBvcnRzVExTKToKKyAgICAgICAg
KFRDTWFsbG9jX1RocmVhZENhY2hlKToKKwogMjAxMi0wNi0xMyAgQXJuYXVkIFJlbmV2aWVyICA8
YXJub0ByZW5ldmllci5uZXQ+CiAKICAgICAgICAgbWFrZSBzdXJlIGhlYWRlcnMgYXJlIGluY2x1
ZGVkIG9ubHkgb25jZSBwZXIgZmlsZQpJbmRleDogU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAJKHJldmlzaW9u
IDEyMDM0MykKKysrIFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00OTQsMTAzICs0OTQsNiBAQCBuYW1lc3BhY2UgV1RGIHsKICNkZWZpbmUgTUVTU0FHRSBM
T0dfRVJST1IKICNkZWZpbmUgQ0hFQ0tfQ09ORElUSU9OIEFTU0VSVAogCi0jaWYgT1MoREFSV0lO
KQotc3RydWN0IFNwYW47Ci1jbGFzcyBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0UGFkZGVkOwot
Y2xhc3MgVENNYWxsb2NfUGFnZUhlYXA7Ci1jbGFzcyBUQ01hbGxvY19UaHJlYWRDYWNoZTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBQYWdlSGVhcEFsbG9jYXRvcjsKLQotY2xhc3MgRmFz
dE1hbGxvY1pvbmUgewotcHVibGljOgotICAgIHN0YXRpYyB2b2lkIGluaXQoKTsKLQotICAgIHN0
YXRpYyBrZXJuX3JldHVybl90IGVudW1lcmF0ZSh0YXNrX3QsIHZvaWQqLCB1bnNpZ25lZCB0eXBl
TW1hc2ssIHZtX2FkZHJlc3NfdCB6b25lQWRkcmVzcywgbWVtb3J5X3JlYWRlcl90LCB2bV9yYW5n
ZV9yZWNvcmRlcl90KTsKLSAgICBzdGF0aWMgc2l6ZV90IGdvb2RTaXplKG1hbGxvY196b25lX3Qq
LCBzaXplX3Qgc2l6ZSkgeyByZXR1cm4gc2l6ZTsgfQotICAgIHN0YXRpYyBib29sZWFuX3QgY2hl
Y2sobWFsbG9jX3pvbmVfdCopIHsgcmV0dXJuIHRydWU7IH0KLSAgICBzdGF0aWMgdm9pZCAgcHJp
bnQobWFsbG9jX3pvbmVfdCosIGJvb2xlYW5fdCkgeyB9Ci0gICAgc3RhdGljIHZvaWQgbG9nKG1h
bGxvY196b25lX3QqLCB2b2lkKikgeyB9Ci0gICAgc3RhdGljIHZvaWQgZm9yY2VMb2NrKG1hbGxv
Y196b25lX3QqKSB7IH0KLSAgICBzdGF0aWMgdm9pZCBmb3JjZVVubG9jayhtYWxsb2Nfem9uZV90
KikgeyB9Ci0gICAgc3RhdGljIHZvaWQgc3RhdGlzdGljcyhtYWxsb2Nfem9uZV90KiwgbWFsbG9j
X3N0YXRpc3RpY3NfdCogc3RhdHMpIHsgbWVtc2V0KHN0YXRzLCAwLCBzaXplb2YobWFsbG9jX3N0
YXRpc3RpY3NfdCkpOyB9Ci0KLXByaXZhdGU6Ci0gICAgRmFzdE1hbGxvY1pvbmUoVENNYWxsb2Nf
UGFnZUhlYXAqLCBUQ01hbGxvY19UaHJlYWRDYWNoZSoqLCBUQ01hbGxvY19DZW50cmFsX0ZyZWVM
aXN0UGFkZGVkKiwgUGFnZUhlYXBBbGxvY2F0b3I8U3Bhbj4qLCBQYWdlSGVhcEFsbG9jYXRvcjxU
Q01hbGxvY19UaHJlYWRDYWNoZT4qKTsKLSAgICBzdGF0aWMgc2l6ZV90IHNpemUobWFsbG9jX3pv
bmVfdCosIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCogem9uZU1hbGxvYyhtYWxsb2Nf
em9uZV90Kiwgc2l6ZV90KTsKLSAgICBzdGF0aWMgdm9pZCogem9uZUNhbGxvYyhtYWxsb2Nfem9u
ZV90Kiwgc2l6ZV90IG51bUl0ZW1zLCBzaXplX3Qgc2l6ZSk7Ci0gICAgc3RhdGljIHZvaWQgem9u
ZUZyZWUobWFsbG9jX3pvbmVfdCosIHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCogem9uZVJlYWxs
b2MobWFsbG9jX3pvbmVfdCosIHZvaWQqLCBzaXplX3QpOwotICAgIHN0YXRpYyB2b2lkKiB6b25l
VmFsbG9jKG1hbGxvY196b25lX3QqLCBzaXplX3QpIHsgTE9HX0VSUk9SKCJ2YWxsb2MgaXMgbm90
IHN1cHBvcnRlZCIpOyByZXR1cm4gMDsgfQotICAgIHN0YXRpYyB2b2lkIHpvbmVEZXN0cm95KG1h
bGxvY196b25lX3QqKSB7IH0KLQotICAgIG1hbGxvY196b25lX3QgbV96b25lOwotICAgIFRDTWFs
bG9jX1BhZ2VIZWFwKiBtX3BhZ2VIZWFwOwotICAgIFRDTWFsbG9jX1RocmVhZENhY2hlKiogbV90
aHJlYWRIZWFwczsKLSAgICBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0UGFkZGVkKiBtX2NlbnRy
YWxDYWNoZXM7Ci0gICAgUGFnZUhlYXBBbGxvY2F0b3I8U3Bhbj4qIG1fc3BhbkFsbG9jYXRvcjsK
LSAgICBQYWdlSGVhcEFsbG9jYXRvcjxUQ01hbGxvY19UaHJlYWRDYWNoZT4qIG1fcGFnZUhlYXBB
bGxvY2F0b3I7Ci19OwotCi0jZW5kaWYKLQotI2VuZGlmCi0KLSNpZm5kZWYgV1RGX0NIQU5HRVMK
LS8vIFRoaXMgI2lmZGVmIHNob3VsZCBhbG1vc3QgbmV2ZXIgYmUgc2V0LiAgU2V0IE5PX1RDTUFM
TE9DX1NBTVBMRVMgaWYKLS8vIHlvdSdyZSBwb3J0aW5nIHRvIGEgc3lzdGVtIHdoZXJlIHlvdSBy
ZWFsbHkgY2FuJ3QgZ2V0IGEgc3RhY2t0cmFjZS4KLSNpZmRlZiBOT19UQ01BTExPQ19TQU1QTEVT
Ci0vLyBXZSB1c2UgI2RlZmluZSBzbyBjb2RlIGNvbXBpbGVzIGV2ZW4gaWYgeW91ICNpbmNsdWRl
IHN0YWNrdHJhY2UuaCBzb21laG93LgotIyBkZWZpbmUgR2V0U3RhY2tUcmFjZShzdGFjaywgZGVw
dGgsIHNraXApICAoMCkKLSNlbHNlCi0jIGluY2x1ZGUgPGdvb2dsZS9zdGFja3RyYWNlLmg+Ci0j
ZW5kaWYKLSNlbmRpZgotCi0vLyBFdmVuIGlmIHdlIGhhdmUgc3VwcG9ydCBmb3IgdGhyZWFkLWxv
Y2FsIHN0b3JhZ2UgaW4gdGhlIGNvbXBpbGVyCi0vLyBhbmQgbGlua2VyLCB0aGUgT1MgbWF5IG5v
dCBzdXBwb3J0IGl0LiAgV2UgbmVlZCB0byBjaGVjayB0aGF0IGF0Ci0vLyBydW50aW1lLiAgUmln
aHQgbm93LCB3ZSBoYXZlIHRvIGtlZXAgYSBtYW51YWwgc2V0IG9mICJiYWQiIE9TZXMuCi0jaWYg
ZGVmaW5lZChIQVZFX1RMUykKLSAgc3RhdGljIGJvb2wga2VybmVsX3N1cHBvcnRzX3RscyA9IGZh
bHNlOyAgICAgIC8vIGJlIGNvbnNlcnZhdGl2ZQotICBzdGF0aWMgaW5saW5lIGJvb2wgS2VybmVs
U3VwcG9ydHNUTFMoKSB7Ci0gICAgcmV0dXJuIGtlcm5lbF9zdXBwb3J0c190bHM7Ci0gIH0KLSMg
aWYgIUhBVkVfREVDTF9VTkFNRSAgIC8vIGlmIHRvbyBvbGQgZm9yIHVuYW1lLCBwcm9iYWJseSB0
b28gb2xkIGZvciBUTFMKLSAgICBzdGF0aWMgdm9pZCBDaGVja0lmS2VybmVsU3VwcG9ydHNUTFMo
KSB7Ci0gICAgICBrZXJuZWxfc3VwcG9ydHNfdGxzID0gZmFsc2U7Ci0gICAgfQotIyBlbHNlCi0j
ICAgaW5jbHVkZSA8c3lzL3V0c25hbWUuaD4gICAgLy8gREVDTF9VTkFNRSBjaGVja2VkIGZvciA8
c3lzL3V0c25hbWUuaD4gdG9vCi0gICAgc3RhdGljIHZvaWQgQ2hlY2tJZktlcm5lbFN1cHBvcnRz
VExTKCkgewotICAgICAgc3RydWN0IHV0c25hbWUgYnVmOwotICAgICAgaWYgKHVuYW1lKCZidWYp
ICE9IDApIHsgICAvLyBzaG91bGQgYmUgaW1wb3NzaWJsZQotICAgICAgICBNRVNTQUdFKCJ1bmFt
ZSBmYWlsZWQgYXNzdW1pbmcgbm8gVExTIHN1cHBvcnQgKGVycm5vPSVkKVxuIiwgZXJybm8pOwot
ICAgICAgICBrZXJuZWxfc3VwcG9ydHNfdGxzID0gZmFsc2U7Ci0gICAgICB9IGVsc2UgaWYgKHN0
cmNhc2VjbXAoYnVmLnN5c25hbWUsICJsaW51eCIpID09IDApIHsKLSAgICAgICAgLy8gVGhlIGxp
bnV4IGNhc2U6IHRoZSBmaXJzdCBrZXJuZWwgdG8gc3VwcG9ydCBUTFMgd2FzIDIuNi4wCi0gICAg
ICAgIGlmIChidWYucmVsZWFzZVswXSA8ICcyJyAmJiBidWYucmVsZWFzZVsxXSA9PSAnLicpICAg
IC8vIDAueCBvciAxLngKLSAgICAgICAgICBrZXJuZWxfc3VwcG9ydHNfdGxzID0gZmFsc2U7Ci0g
ICAgICAgIGVsc2UgaWYgKGJ1Zi5yZWxlYXNlWzBdID09ICcyJyAmJiBidWYucmVsZWFzZVsxXSA9
PSAnLicgJiYKLSAgICAgICAgICAgICAgICAgYnVmLnJlbGVhc2VbMl0gPj0gJzAnICYmIGJ1Zi5y
ZWxlYXNlWzJdIDwgJzYnICYmCi0gICAgICAgICAgICAgICAgIGJ1Zi5yZWxlYXNlWzNdID09ICcu
JykgICAgICAgICAgICAgICAgICAgICAgIC8vIDIuMCAtIDIuNQotICAgICAgICAgIGtlcm5lbF9z
dXBwb3J0c190bHMgPSBmYWxzZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgIGtlcm5lbF9zdXBw
b3J0c190bHMgPSB0cnVlOwotICAgICAgfSBlbHNlIHsgICAgICAgIC8vIHNvbWUgb3RoZXIga2Vy
bmVsLCB3ZSdsbCBiZSBvcHRpbWlzaXRpYwotICAgICAgICBrZXJuZWxfc3VwcG9ydHNfdGxzID0g
dHJ1ZTsKLSAgICAgIH0KLSAgICAgIC8vIFRPRE8oY3NpbHZlcnMpOiBWTE9HKDEpIHRoZSB0bHMg
c3RhdHVzIG9uY2Ugd2Ugc3VwcG9ydCBSQVdfVkxPRwotICAgIH0KLSMgIGVuZGlmICAvLyBIQVZF
X0RFQ0xfVU5BTUUKLSNlbmRpZiAgICAvLyBIQVZFX1RMUwotCi0vLyBfX1RIUk9XIGlzIGRlZmlu
ZWQgaW4gZ2xpYmMgc3lzdGVtcy4gIEl0IG1lYW5zLCBjb3VudGVyLWludHVpdGl2ZWx5LAotLy8g
IlRoaXMgZnVuY3Rpb24gd2lsbCBuZXZlciB0aHJvdyBhbiBleGNlcHRpb24uIiAgSXQncyBhbiBv
cHRpb25hbAotLy8gb3B0aW1pemF0aW9uIHRvb2wsIGJ1dCB3ZSBtYXkgbmVlZCB0byB1c2UgaXQg
dG8gbWF0Y2ggZ2xpYmMgcHJvdG90eXBlcy4KLSNpZm5kZWYgX19USFJPVyAgICAvLyBJIGd1ZXNz
IHdlJ3JlIG5vdCBvbiBhIGdsaWJjIHN5c3RlbQotIyBkZWZpbmUgX19USFJPVyAgIC8vIF9fVEhS
T1cgaXMganVzdCBhbiBvcHRpbWl6YXRpb24sIHNvIG9rIHRvIG1ha2UgaXQgIiIKLSNlbmRpZgot
CiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIC8vIENvbmZpZ3VyYXRpb24KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNzc1LDcg
KzY3OCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqU0xMX1BvcCh2b2lkICoqbGlzdCkKICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotCiAvLyBSZW1vdmUgTiBlbGVtZW50cyBmcm9tIGEgbGlua2VkIGxp
c3QgdG8gd2hpY2ggaGVhZCBwb2ludHMuICBoZWFkIHdpbGwgYmUKIC8vIG1vZGlmaWVkIHRvIHBv
aW50IHRvIHRoZSBuZXcgaGVhZC4gIHN0YXJ0IGFuZCBlbmQgd2lsbCBwb2ludCB0byB0aGUgZmly
c3QKIC8vIGFuZCBsYXN0IG5vZGVzIG9mIHRoZSByYW5nZS4gIE5vdGUgdGhhdCBlbmQgd2lsbCBw
b2ludCB0byBOVUxMIGFmdGVyIHRoaXMKQEAgLTEyMDIsNiArMTEwNCwyMzIgQEAgc3RhdGljIGlu
bGluZSB2b2lkIERMTF9QcmVwZW5kKFNwYW4qIGxpcwogICBsaXN0LT5uZXh0ID0gc3BhbjsKIH0K
IAorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisvLyBEYXRhIGtlcHQgcGVyIHNpemUtY2xhc3MgaW4gY2VudHJhbCBj
YWNoZQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKK2NsYXNzIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3Qgewor
cHVibGljOgorICAgIHZvaWQgSW5pdChzaXplX3QgY2wpOworCisgICAgLy8gVGhlc2UgbWV0aG9k
cyBhbGwgZG8gaW50ZXJuYWwgbG9ja2luZy4KKworICAgIC8vIEluc2VydCB0aGUgc3BlY2lmaWVk
IHJhbmdlIGludG8gdGhlIGNlbnRyYWwgZnJlZWxpc3QuICBOIGlzIHRoZSBudW1iZXIgb2YKKyAg
ICAvLyBlbGVtZW50cyBpbiB0aGUgcmFuZ2UuCisgICAgdm9pZCBJbnNlcnRSYW5nZSh2b2lkICpz
dGFydCwgdm9pZCAqZW5kLCBpbnQgTik7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBhY3R1YWwgbnVt
YmVyIG9mIGZldGNoZWQgZWxlbWVudHMgaW50byBOLgorICAgIHZvaWQgUmVtb3ZlUmFuZ2Uodm9p
ZCAqKnN0YXJ0LCB2b2lkICoqZW5kLCBpbnQgKk4pOworCisgICAgLy8gUmV0dXJucyB0aGUgbnVt
YmVyIG9mIGZyZWUgb2JqZWN0cyBpbiBjYWNoZS4KKyAgICBzaXplX3QgbGVuZ3RoKCkgeworICAg
ICAgICBTcGluTG9ja0hvbGRlciBoKCZsb2NrXyk7CisgICAgICAgIHJldHVybiBjb3VudGVyXzsK
KyAgICB9CisKKyAgICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZnJlZSBvYmplY3RzIGluIHRo
ZSB0cmFuc2ZlciBjYWNoZS4KKyAgICBpbnQgdGNfbGVuZ3RoKCkgeworICAgICAgICBTcGluTG9j
a0hvbGRlciBoKCZsb2NrXyk7CisgICAgICAgIHJldHVybiB1c2VkX3Nsb3RzXyAqIG51bV9vYmpl
Y3RzX3RvX21vdmVbc2l6ZV9jbGFzc19dOworICAgIH0KKworI2lmZGVmIFdURl9DSEFOR0VTCisg
ICAgdGVtcGxhdGUgPGNsYXNzIEZpbmRlciwgY2xhc3MgUmVhZGVyPgorICAgIHZvaWQgZW51bWVy
YXRlRnJlZU9iamVjdHMoRmluZGVyJiBmaW5kZXIsIGNvbnN0IFJlYWRlciYgcmVhZGVyLCBUQ01h
bGxvY19DZW50cmFsX0ZyZWVMaXN0KiByZW1vdGVDZW50cmFsRnJlZUxpc3QpCisgICAgeworICAg
ICAgICBmb3IgKFNwYW4qIHNwYW4gPSAmZW1wdHlfOyBzcGFuICYmIHNwYW4gIT0gJmVtcHR5Xzsg
c3BhbiA9IChzcGFuLT5uZXh0ID8gcmVhZGVyKHNwYW4tPm5leHQpIDogMCkpCisgICAgICAgICAg
ICBBU1NFUlQoIXNwYW4tPm9iamVjdHMpOworCisgICAgICAgIEFTU0VSVCghbm9uZW1wdHlfLm9i
amVjdHMpOworICAgICAgICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IG5vbmVtcHR5T2Zmc2V0ID0g
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJm5vbmVtcHR5XykgLSByZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPih0aGlzKTsKKworICAgICAgICBTcGFuKiByZW1vdGVOb25lbXB0eSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8U3Bhbio+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlbW90ZUNl
bnRyYWxGcmVlTGlzdCkgKyBub25lbXB0eU9mZnNldCk7CisgICAgICAgIFNwYW4qIHJlbW90ZVNw
YW4gPSBub25lbXB0eV8ubmV4dDsKKworICAgICAgICBmb3IgKFNwYW4qIHNwYW4gPSByZWFkZXIo
cmVtb3RlU3Bhbik7IHNwYW4gJiYgcmVtb3RlU3BhbiAhPSByZW1vdGVOb25lbXB0eTsgcmVtb3Rl
U3BhbiA9IHNwYW4tPm5leHQsIHNwYW4gPSAoc3Bhbi0+bmV4dCA/IHJlYWRlcihzcGFuLT5uZXh0
KSA6IDApKSB7CisgICAgICAgICAgICBmb3IgKHZvaWQqIG5leHRPYmplY3QgPSBzcGFuLT5vYmpl
Y3RzOyBuZXh0T2JqZWN0OyBuZXh0T2JqZWN0ID0gcmVhZGVyLm5leHRFbnRyeUluTGlua2VkTGlz
dChyZWludGVycHJldF9jYXN0PHZvaWQqKj4obmV4dE9iamVjdCkpKQorICAgICAgICAgICAgICAg
IGZpbmRlci52aXNpdChuZXh0T2JqZWN0KTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCitw
cml2YXRlOgorICAgIC8vIFJFUVVJUkVTOiBsb2NrXyBpcyBoZWxkCisgICAgLy8gUmVtb3ZlIG9i
amVjdCBmcm9tIGNhY2hlIGFuZCByZXR1cm4uCisgICAgLy8gUmV0dXJuIE5VTEwgaWYgbm8gZnJl
ZSBlbnRyaWVzIGluIGNhY2hlLgorICAgIHZvaWQqIEZldGNoRnJvbVNwYW5zKCk7CisKKyAgICAv
LyBSRVFVSVJFUzogbG9ja18gaXMgaGVsZAorICAgIC8vIFJlbW92ZSBvYmplY3QgZnJvbSBjYWNo
ZSBhbmQgcmV0dXJuLiAgRmV0Y2hlcworICAgIC8vIGZyb20gcGFnZWhlYXAgaWYgY2FjaGUgaXMg
ZW1wdHkuICBPbmx5IHJldHVybnMKKyAgICAvLyBOVUxMIG9uIGFsbG9jYXRpb24gZmFpbHVyZS4K
KyAgICB2b2lkKiBGZXRjaEZyb21TcGFuc1NhZmUoKTsKKworICAgIC8vIFJFUVVJUkVTOiBsb2Nr
XyBpcyBoZWxkCisgICAgLy8gUmVsZWFzZSBhIGxpbmtlZCBsaXN0IG9mIG9iamVjdHMgdG8gc3Bh
bnMuCisgICAgLy8gTWF5IHRlbXBvcmFyaWx5IHJlbGVhc2UgbG9ja18uCisgICAgdm9pZCBSZWxl
YXNlTGlzdFRvU3BhbnModm9pZCAqc3RhcnQpOworCisgICAgLy8gUkVRVUlSRVM6IGxvY2tfIGlz
IGhlbGQKKyAgICAvLyBSZWxlYXNlIGFuIG9iamVjdCB0byBzcGFucy4KKyAgICAvLyBNYXkgdGVt
cG9yYXJpbHkgcmVsZWFzZSBsb2NrXy4KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgUmVsZWFzZVRv
U3BhbnModm9pZCogb2JqZWN0KTsKKworICAgIC8vIFJFUVVJUkVTOiBsb2NrXyBpcyBoZWxkCisg
ICAgLy8gUG9wdWxhdGUgY2FjaGUgYnkgZmV0Y2hpbmcgZnJvbSB0aGUgcGFnZSBoZWFwLgorICAg
IC8vIE1heSB0ZW1wb3JhcmlseSByZWxlYXNlIGxvY2tfLgorICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBQb3B1bGF0ZSgpOworCisgICAgLy8gUkVRVUlSRVM6IGxvY2sgaXMgaGVsZC4KKyAgICAvLyBU
cmllcyB0byBtYWtlIHJvb20gZm9yIGEgVENFbnRyeS4gSWYgdGhlIGNhY2hlIGlzIGZ1bGwgaXQg
d2lsbCB0cnkgdG8KKyAgICAvLyBleHBhbmQgaXQgYXQgdGhlIGNvc3Qgb2Ygc29tZSBvdGhlciBj
YWNoZSBzaXplLiBSZXR1cm4gZmFsc2UgaWYgdGhlcmUgaXMKKyAgICAvLyBubyBzcGFjZS4KKyAg
ICBib29sIE1ha2VDYWNoZVNwYWNlKCk7CisKKyAgICAvLyBSRVFVSVJFUzogbG9ja18gZm9yIGxv
Y2tlZF9zaXplX2NsYXNzIGlzIGhlbGQuCisgICAgLy8gUGlja3MgYSAicmFuZG9tIiBzaXplIGNs
YXNzIHRvIHN0ZWFsIFRDRW50cnkgc2xvdCBmcm9tLiBJbiByZWFsaXR5IGl0CisgICAgLy8ganVz
dCBpdGVyYXRlcyBvdmVyIHRoZSBzaXplY2xhc3NlcyBidXQgZG9lcyBzbyB3aXRob3V0IHRha2lu
ZyBhIGxvY2suCisgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgLy8gTWF5IHRl
bXBvcmFyaWx5IGxvY2sgYSAicmFuZG9tIiBzaXplIGNsYXNzLgorICAgIHN0YXRpYyBBTFdBWVNf
SU5MSU5FIGJvb2wgRXZpY3RSYW5kb21TaXplQ2xhc3Moc2l6ZV90IGxvY2tlZF9zaXplX2NsYXNz
LCBib29sIGZvcmNlKTsKKworICAgIC8vIFJFUVVJUkVTOiBsb2NrXyBpcyAqbm90KiBoZWxkLgor
ICAgIC8vIFRyaWVzIHRvIHNocmluayB0aGUgQ2FjaGUuIElmIGZvcmNlIGlzIHRydWUgaXQgd2ls
bCByZWxhc2Ugb2JqZWN0cyB0bworICAgIC8vIHNwYW5zIGlmIGl0IGFsbG93cyBpdCB0byBzaHJp
bmsgdGhlIGNhY2hlLiAgUmV0dXJuIGZhbHNlIGlmIGl0IGZhaWxlZCB0bworICAgIC8vIHNocmlu
ayB0aGUgY2FjaGUuICBEZWNyZW1lbnRzIGNhY2hlX3NpemVfIG9uIHN1Y2NlZXNzLgorICAgIC8v
IE1heSB0ZW1wb3JhcmlseSB0YWtlIGxvY2tfLiBJZiBpdCB0YWtlcyBsb2NrXywgdGhlIGxvY2tl
ZF9zaXplX2NsYXNzCisgICAgLy8gbG9jayBpcyByZWxlYXNlZCB0byB0aGUgdGhyZWFkIGZyb20g
aG9sZGluZyB0d28gc2l6ZSBjbGFzcyBsb2NrcworICAgIC8vIGNvbmN1cnJlbnRseSB3aGljaCBj
b3VsZCBsZWFkIHRvIGEgZGVhZGxvY2suCisgICAgYm9vbCBTaHJpbmtDYWNoZShpbnQgbG9ja2Vk
X3NpemVfY2xhc3MsIGJvb2wgZm9yY2UpOworCisgICAgLy8gVGhpcyBsb2NrIHByb3RlY3RzIGFs
bCB0aGUgZGF0YSBtZW1iZXJzLiBjYWNoZWRfZW50cmllcyBhbmQgY2FjaGVfc2l6ZV8KKyAgICAv
LyBtYXkgYmUgbG9va2VkIGF0IHdpdGhvdXQgaG9sZGluZyB0aGUgbG9jay4KKyAgICBTcGluTG9j
ayBsb2NrXzsKKworICAgIC8vIFdlIGtlZXAgbGlua2VkIGxpc3RzIG9mIGVtcHR5IGFuZCBub24t
ZW1wdHkgc3BhbnMuCisgICAgc2l6ZV90ICAgc2l6ZV9jbGFzc187ICAgICAvLyBNeSBzaXplIGNs
YXNzCisgICAgU3BhbiAgICAgZW1wdHlfOyAgICAgICAgICAvLyBEdW1teSBoZWFkZXIgZm9yIGxp
c3Qgb2YgZW1wdHkgc3BhbnMKKyAgICBTcGFuICAgICBub25lbXB0eV87ICAgICAgIC8vIER1bW15
IGhlYWRlciBmb3IgbGlzdCBvZiBub24tZW1wdHkgc3BhbnMKKyAgICBzaXplX3QgICBjb3VudGVy
XzsgICAgICAgIC8vIE51bWJlciBvZiBmcmVlIG9iamVjdHMgaW4gY2FjaGUgZW50cnkKKworICAg
IC8vIEhlcmUgd2UgcmVzZXJ2ZSBzcGFjZSBmb3IgVENFbnRyeSBjYWNoZSBzbG90cy4gIFNpbmNl
IG9uZSBzaXplIGNsYXNzIGNhbgorICAgIC8vIGVuZCB1cCBnZXR0aW5nIGFsbCB0aGUgVENFbnRy
aWVzIHF1b3RhIGluIHRoZSBzeXN0ZW0gd2UganVzdCBwcmVhbGxvY2F0ZQorICAgIC8vIHN1ZmZp
Y2llbnQgbnVtYmVyIG9mIGVudHJpZXMgaGVyZS4KKyAgICBUQ0VudHJ5IHRjX3Nsb3RzX1trTnVt
VHJhbnNmZXJFbnRyaWVzXTsKKworICAgIC8vIE51bWJlciBvZiBjdXJyZW50bHkgdXNlZCBjYWNo
ZWQgZW50cmllcyBpbiB0Y19zbG90c18uICBUaGlzIHZhcmlhYmxlIGlzCisgICAgLy8gdXBkYXRl
ZCB1bmRlciBhIGxvY2sgYnV0IGNhbiBiZSByZWFkIHdpdGhvdXQgb25lLgorICAgIGludDMyX3Qg
dXNlZF9zbG90c187CisgICAgLy8gVGhlIGN1cnJlbnQgbnVtYmVyIG9mIHNsb3RzIGZvciB0aGlz
IHNpemUgY2xhc3MuICBUaGlzIGlzIGFuCisgICAgLy8gYWRhcHRpdmUgdmFsdWUgdGhhdCBpcyBp
bmNyZWFzZWQgaWYgdGhlcmUgaXMgbG90cyBvZiB0cmFmZmljCisgICAgLy8gb24gYSBnaXZlbiBz
aXplIGNsYXNzLgorICAgIGludDMyX3QgY2FjaGVfc2l6ZV87Cit9OworCisvLyBQYWQgZWFjaCBD
ZW50cmFsQ2FjaGUgb2JqZWN0IHRvIG11bHRpcGxlIG9mIDY0IGJ5dGVzIGlmIGl0IGlzIG5vdCBh
bHJlYWR5Cit0ZW1wbGF0ZSA8aW50IFNpemVUb1BhZD4KK2NsYXNzIFRDTWFsbG9jX0NlbnRyYWxf
RnJlZUxpc3RQYWRkZWRfVGVtcGxhdGUgOiBwdWJsaWMgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlz
dCB7Citwcml2YXRlOgorICAgIGNoYXIgcGFkWzY0IC0gU2l6ZVRvUGFkXTsKK307Cit0ZW1wbGF0
ZSA8PiBjbGFzcyBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0UGFkZGVkX1RlbXBsYXRlPDA+IDog
cHVibGljIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3QgeyB9OwordHlwZWRlZiBUQ01hbGxvY19D
ZW50cmFsX0ZyZWVMaXN0UGFkZGVkX1RlbXBsYXRlPHNpemVvZihUQ01hbGxvY19DZW50cmFsX0Zy
ZWVMaXN0KSAlIDY0PiBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0UGFkZGVkOworCisjaWYgT1Mo
REFSV0lOKQorY2xhc3MgVENNYWxsb2NfUGFnZUhlYXA7CitjbGFzcyBUQ01hbGxvY19UaHJlYWRD
YWNoZTsKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBQYWdlSGVhcEFsbG9jYXRvcjsKKwor
Y2xhc3MgRmFzdE1hbGxvY1pvbmUgeworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGluaXQoKTsK
KworICAgIHN0YXRpYyBrZXJuX3JldHVybl90IGVudW1lcmF0ZSh0YXNrX3QsIHZvaWQqLCB1bnNp
Z25lZCB0eXBlTW1hc2ssIHZtX2FkZHJlc3NfdCB6b25lQWRkcmVzcywgbWVtb3J5X3JlYWRlcl90
LCB2bV9yYW5nZV9yZWNvcmRlcl90KTsKKyAgICBzdGF0aWMgc2l6ZV90IGdvb2RTaXplKG1hbGxv
Y196b25lX3QqLCBzaXplX3Qgc2l6ZSkgeyByZXR1cm4gc2l6ZTsgfQorICAgIHN0YXRpYyBib29s
ZWFuX3QgY2hlY2sobWFsbG9jX3pvbmVfdCopIHsgcmV0dXJuIHRydWU7IH0KKyAgICBzdGF0aWMg
dm9pZCAgcHJpbnQobWFsbG9jX3pvbmVfdCosIGJvb2xlYW5fdCkgeyB9CisgICAgc3RhdGljIHZv
aWQgbG9nKG1hbGxvY196b25lX3QqLCB2b2lkKikgeyB9CisgICAgc3RhdGljIHZvaWQgZm9yY2VM
b2NrKG1hbGxvY196b25lX3QqKSB7IH0KKyAgICBzdGF0aWMgdm9pZCBmb3JjZVVubG9jayhtYWxs
b2Nfem9uZV90KikgeyB9CisgICAgc3RhdGljIHZvaWQgc3RhdGlzdGljcyhtYWxsb2Nfem9uZV90
KiwgbWFsbG9jX3N0YXRpc3RpY3NfdCogc3RhdHMpIHsgbWVtc2V0KHN0YXRzLCAwLCBzaXplb2Yo
bWFsbG9jX3N0YXRpc3RpY3NfdCkpOyB9CisKK3ByaXZhdGU6CisgICAgRmFzdE1hbGxvY1pvbmUo
VENNYWxsb2NfUGFnZUhlYXAqLCBUQ01hbGxvY19UaHJlYWRDYWNoZSoqLCBUQ01hbGxvY19DZW50
cmFsX0ZyZWVMaXN0UGFkZGVkKiwgUGFnZUhlYXBBbGxvY2F0b3I8U3Bhbj4qLCBQYWdlSGVhcEFs
bG9jYXRvcjxUQ01hbGxvY19UaHJlYWRDYWNoZT4qKTsKKyAgICBzdGF0aWMgc2l6ZV90IHNpemUo
bWFsbG9jX3pvbmVfdCosIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCogem9uZU1hbGxv
YyhtYWxsb2Nfem9uZV90Kiwgc2l6ZV90KTsKKyAgICBzdGF0aWMgdm9pZCogem9uZUNhbGxvYyht
YWxsb2Nfem9uZV90Kiwgc2l6ZV90IG51bUl0ZW1zLCBzaXplX3Qgc2l6ZSk7CisgICAgc3RhdGlj
IHZvaWQgem9uZUZyZWUobWFsbG9jX3pvbmVfdCosIHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCog
em9uZVJlYWxsb2MobWFsbG9jX3pvbmVfdCosIHZvaWQqLCBzaXplX3QpOworICAgIHN0YXRpYyB2
b2lkKiB6b25lVmFsbG9jKG1hbGxvY196b25lX3QqLCBzaXplX3QpIHsgTE9HX0VSUk9SKCJ2YWxs
b2MgaXMgbm90IHN1cHBvcnRlZCIpOyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyB2b2lkIHpvbmVE
ZXN0cm95KG1hbGxvY196b25lX3QqKSB7IH0KKworICAgIG1hbGxvY196b25lX3QgbV96b25lOwor
ICAgIFRDTWFsbG9jX1BhZ2VIZWFwKiBtX3BhZ2VIZWFwOworICAgIFRDTWFsbG9jX1RocmVhZENh
Y2hlKiogbV90aHJlYWRIZWFwczsKKyAgICBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0UGFkZGVk
KiBtX2NlbnRyYWxDYWNoZXM7CisgICAgUGFnZUhlYXBBbGxvY2F0b3I8U3Bhbj4qIG1fc3BhbkFs
bG9jYXRvcjsKKyAgICBQYWdlSGVhcEFsbG9jYXRvcjxUQ01hbGxvY19UaHJlYWRDYWNoZT4qIG1f
cGFnZUhlYXBBbGxvY2F0b3I7Cit9OworCisjZW5kaWYKKworI2VuZGlmCisKKyNpZm5kZWYgV1RG
X0NIQU5HRVMKKy8vIFRoaXMgI2lmZGVmIHNob3VsZCBhbG1vc3QgbmV2ZXIgYmUgc2V0LiBTZXQg
Tk9fVENNQUxMT0NfU0FNUExFUyBpZgorLy8geW91J3JlIHBvcnRpbmcgdG8gYSBzeXN0ZW0gd2hl
cmUgeW91IHJlYWxseSBjYW4ndCBnZXQgYSBzdGFja3RyYWNlLgorI2lmZGVmIE5PX1RDTUFMTE9D
X1NBTVBMRVMKKy8vIFdlIHVzZSAjZGVmaW5lIHNvIGNvZGUgY29tcGlsZXMgZXZlbiBpZiB5b3Ug
I2luY2x1ZGUgc3RhY2t0cmFjZS5oIHNvbWVob3cuCisjIGRlZmluZSBHZXRTdGFja1RyYWNlKHN0
YWNrLCBkZXB0aCwgc2tpcCkgICgwKQorI2Vsc2UKKyMgaW5jbHVkZSA8Z29vZ2xlL3N0YWNrdHJh
Y2UuaD4KKyNlbmRpZgorI2VuZGlmCisKKy8vIEV2ZW4gaWYgd2UgaGF2ZSBzdXBwb3J0IGZvciB0
aHJlYWQtbG9jYWwgc3RvcmFnZSBpbiB0aGUgY29tcGlsZXIKKy8vIGFuZCBsaW5rZXIsIHRoZSBP
UyBtYXkgbm90IHN1cHBvcnQgaXQuIFdlIG5lZWQgdG8gY2hlY2sgdGhhdCBhdAorLy8gcnVudGlt
ZS4gIFJpZ2h0IG5vdywgd2UgaGF2ZSB0byBrZWVwIGEgbWFudWFsIHNldCBvZiAiYmFkIiBPU2Vz
LgorI2lmIGRlZmluZWQoSEFWRV9UTFMpCitzdGF0aWMgYm9vbCBrZXJuZWxfc3VwcG9ydHNfdGxz
ID0gZmFsc2U7ICAgICAgLy8gYmUgY29uc2VydmF0aXZlCitzdGF0aWMgaW5saW5lIGJvb2wgS2Vy
bmVsU3VwcG9ydHNUTFMoKSB7CisgICAgcmV0dXJuIGtlcm5lbF9zdXBwb3J0c190bHM7Cit9Cisj
IGlmICFIQVZFX0RFQ0xfVU5BTUUgICAvLyBpZiB0b28gb2xkIGZvciB1bmFtZSwgcHJvYmFibHkg
dG9vIG9sZCBmb3IgVExTCitzdGF0aWMgdm9pZCBDaGVja0lmS2VybmVsU3VwcG9ydHNUTFMoKSB7
CisgICAga2VybmVsX3N1cHBvcnRzX3RscyA9IGZhbHNlOworfQorIyBlbHNlCisjICAgaW5jbHVk
ZSA8c3lzL3V0c25hbWUuaD4gICAgLy8gREVDTF9VTkFNRSBjaGVja2VkIGZvciA8c3lzL3V0c25h
bWUuaD4gdG9vCitzdGF0aWMgdm9pZCBDaGVja0lmS2VybmVsU3VwcG9ydHNUTFMoKSB7CisgICAg
c3RydWN0IHV0c25hbWUgYnVmOworICAgIGlmICh1bmFtZSgmYnVmKSAhPSAwKSB7ICAgLy8gc2hv
dWxkIGJlIGltcG9zc2libGUKKyAgICAgICAgTUVTU0FHRSgidW5hbWUgZmFpbGVkIGFzc3VtaW5n
IG5vIFRMUyBzdXBwb3J0IChlcnJubz0lZClcbiIsIGVycm5vKTsKKyAgICAgICAga2VybmVsX3N1
cHBvcnRzX3RscyA9IGZhbHNlOworICAgIH0gZWxzZSBpZiAoc3RyY2FzZWNtcChidWYuc3lzbmFt
ZSwgImxpbnV4IikgPT0gMCkgeworICAgICAgICAvLyBUaGUgbGludXggY2FzZTogdGhlIGZpcnN0
IGtlcm5lbCB0byBzdXBwb3J0IFRMUyB3YXMgMi42LjAKKyAgICAgICAgaWYgKGJ1Zi5yZWxlYXNl
WzBdIDwgJzInICYmIGJ1Zi5yZWxlYXNlWzFdID09ICcuJykgICAgLy8gMC54IG9yIDEueAorICAg
ICAgICAgICAga2VybmVsX3N1cHBvcnRzX3RscyA9IGZhbHNlOworICAgICAgICBlbHNlIGlmIChi
dWYucmVsZWFzZVswXSA9PSAnMicgJiYgYnVmLnJlbGVhc2VbMV0gPT0gJy4nICYmCisgICAgICAg
ICAgICAgICAgIGJ1Zi5yZWxlYXNlWzJdID49ICcwJyAmJiBidWYucmVsZWFzZVsyXSA8ICc2JyAm
JgorICAgICAgICAgICAgICAgICBidWYucmVsZWFzZVszXSA9PSAnLicpICAgICAgICAgICAgICAg
ICAgICAgICAvLyAyLjAgLSAyLjUKKyAgICAgICAgICAgIGtlcm5lbF9zdXBwb3J0c190bHMgPSBm
YWxzZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAga2VybmVsX3N1cHBvcnRzX3RscyA9IHRy
dWU7CisgICAgfSBlbHNlIHsgLy8gc29tZSBvdGhlciBrZXJuZWwsIHdlJ2xsIGJlIG9wdGltaXNp
dGljCisgICAgICAgICAga2VybmVsX3N1cHBvcnRzX3RscyA9IHRydWU7CisgICAgfQorICAgIC8v
IFRPRE8oY3NpbHZlcnMpOiBWTE9HKDEpIHRoZSB0bHMgc3RhdHVzIG9uY2Ugd2Ugc3VwcG9ydCBS
QVdfVkxPRworfQorIyAgZW5kaWYgLy8gSEFWRV9ERUNMX1VOQU1FCisjZW5kaWYgLy8gSEFWRV9U
TFMKKworLy8gX19USFJPVyBpcyBkZWZpbmVkIGluIGdsaWJjIHN5c3RlbXMuIEl0IG1lYW5zLCBj
b3VudGVyLWludHVpdGl2ZWx5LAorLy8gIlRoaXMgZnVuY3Rpb24gd2lsbCBuZXZlciB0aHJvdyBh
biBleGNlcHRpb24uIiBJdCdzIGFuIG9wdGlvbmFsCisvLyBvcHRpbWl6YXRpb24gdG9vbCwgYnV0
IHdlIG1heSBuZWVkIHRvIHVzZSBpdCB0byBtYXRjaCBnbGliYyBwcm90b3R5cGVzLgorI2lmbmRl
ZiBfX1RIUk9XIC8vIEkgZ3Vlc3Mgd2UncmUgbm90IG9uIGEgZ2xpYmMgc3lzdGVtCisjZGVmaW5l
IF9fVEhST1cgLy8gX19USFJPVyBpcyBqdXN0IGFuIG9wdGltaXphdGlvbiwgc28gb2sgdG8gbWFr
ZSBpdCAiIgorI2VuZGlmCisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIFN0YWNrIHRyYWNlcyBr
ZXB0IGZvciBzYW1wbGVkIGFsbG9jYXRpb25zCiAvLyAgIFRoZSBmb2xsb3dpbmcgc3RhdGUgaXMg
cHJvdGVjdGVkIGJ5IHBhZ2VoZWFwX2xvY2tfLgpAQCAtMjM0OCwxMzQgKzI0NzYsNiBAQCBjbGFz
cyBUQ01hbGxvY19UaHJlYWRDYWNoZSB7CiB9OwogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIERhdGEga2Vw
dCBwZXIgc2l6ZS1jbGFzcyBpbiBjZW50cmFsIGNhY2hlCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotY2xhc3Mg
VENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdCB7Ci0gcHVibGljOgotICB2b2lkIEluaXQoc2l6ZV90
IGNsKTsKLQotICAvLyBUaGVzZSBtZXRob2RzIGFsbCBkbyBpbnRlcm5hbCBsb2NraW5nLgotCi0g
IC8vIEluc2VydCB0aGUgc3BlY2lmaWVkIHJhbmdlIGludG8gdGhlIGNlbnRyYWwgZnJlZWxpc3Qu
ICBOIGlzIHRoZSBudW1iZXIgb2YKLSAgLy8gZWxlbWVudHMgaW4gdGhlIHJhbmdlLgotICB2b2lk
IEluc2VydFJhbmdlKHZvaWQgKnN0YXJ0LCB2b2lkICplbmQsIGludCBOKTsKLQotICAvLyBSZXR1
cm5zIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGZldGNoZWQgZWxlbWVudHMgaW50byBOLgotICB2b2lk
IFJlbW92ZVJhbmdlKHZvaWQgKipzdGFydCwgdm9pZCAqKmVuZCwgaW50ICpOKTsKLQotICAvLyBS
ZXR1cm5zIHRoZSBudW1iZXIgb2YgZnJlZSBvYmplY3RzIGluIGNhY2hlLgotICBzaXplX3QgbGVu
Z3RoKCkgewotICAgIFNwaW5Mb2NrSG9sZGVyIGgoJmxvY2tfKTsKLSAgICByZXR1cm4gY291bnRl
cl87Ci0gIH0KLQotICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZnJlZSBvYmplY3RzIGluIHRo
ZSB0cmFuc2ZlciBjYWNoZS4KLSAgaW50IHRjX2xlbmd0aCgpIHsKLSAgICBTcGluTG9ja0hvbGRl
ciBoKCZsb2NrXyk7Ci0gICAgcmV0dXJuIHVzZWRfc2xvdHNfICogbnVtX29iamVjdHNfdG9fbW92
ZVtzaXplX2NsYXNzX107Ci0gIH0KLQotI2lmZGVmIFdURl9DSEFOR0VTCi0gIHRlbXBsYXRlIDxj
bGFzcyBGaW5kZXIsIGNsYXNzIFJlYWRlcj4KLSAgdm9pZCBlbnVtZXJhdGVGcmVlT2JqZWN0cyhG
aW5kZXImIGZpbmRlciwgY29uc3QgUmVhZGVyJiByZWFkZXIsIFRDTWFsbG9jX0NlbnRyYWxfRnJl
ZUxpc3QqIHJlbW90ZUNlbnRyYWxGcmVlTGlzdCkKLSAgewotICAgIGZvciAoU3Bhbiogc3BhbiA9
ICZlbXB0eV87IHNwYW4gJiYgc3BhbiAhPSAmZW1wdHlfOyBzcGFuID0gKHNwYW4tPm5leHQgPyBy
ZWFkZXIoc3Bhbi0+bmV4dCkgOiAwKSkKLSAgICAgIEFTU0VSVCghc3Bhbi0+b2JqZWN0cyk7Ci0K
LSAgICBBU1NFUlQoIW5vbmVtcHR5Xy5vYmplY3RzKTsKLSAgICBzdGF0aWMgY29uc3QgcHRyZGlm
Zl90IG5vbmVtcHR5T2Zmc2V0ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJm5vbmVt
cHR5XykgLSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPih0aGlzKTsKLQotICAgIFNwYW4q
IHJlbW90ZU5vbmVtcHR5ID0gcmVpbnRlcnByZXRfY2FzdDxTcGFuKj4ocmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4ocmVtb3RlQ2VudHJhbEZyZWVMaXN0KSArIG5vbmVtcHR5T2Zmc2V0KTsKLSAgICBT
cGFuKiByZW1vdGVTcGFuID0gbm9uZW1wdHlfLm5leHQ7Ci0KLSAgICBmb3IgKFNwYW4qIHNwYW4g
PSByZWFkZXIocmVtb3RlU3Bhbik7IHNwYW4gJiYgcmVtb3RlU3BhbiAhPSByZW1vdGVOb25lbXB0
eTsgcmVtb3RlU3BhbiA9IHNwYW4tPm5leHQsIHNwYW4gPSAoc3Bhbi0+bmV4dCA/IHJlYWRlcihz
cGFuLT5uZXh0KSA6IDApKSB7Ci0gICAgICBmb3IgKHZvaWQqIG5leHRPYmplY3QgPSBzcGFuLT5v
YmplY3RzOyBuZXh0T2JqZWN0OyBuZXh0T2JqZWN0ID0gcmVhZGVyLm5leHRFbnRyeUluTGlua2Vk
TGlzdChyZWludGVycHJldF9jYXN0PHZvaWQqKj4obmV4dE9iamVjdCkpKQotICAgICAgICBmaW5k
ZXIudmlzaXQobmV4dE9iamVjdCk7Ci0gICAgfQotICB9Ci0jZW5kaWYKLQotIHByaXZhdGU6Ci0g
IC8vIFJFUVVJUkVTOiBsb2NrXyBpcyBoZWxkCi0gIC8vIFJlbW92ZSBvYmplY3QgZnJvbSBjYWNo
ZSBhbmQgcmV0dXJuLgotICAvLyBSZXR1cm4gTlVMTCBpZiBubyBmcmVlIGVudHJpZXMgaW4gY2Fj
aGUuCi0gIHZvaWQqIEZldGNoRnJvbVNwYW5zKCk7Ci0KLSAgLy8gUkVRVUlSRVM6IGxvY2tfIGlz
IGhlbGQKLSAgLy8gUmVtb3ZlIG9iamVjdCBmcm9tIGNhY2hlIGFuZCByZXR1cm4uICBGZXRjaGVz
Ci0gIC8vIGZyb20gcGFnZWhlYXAgaWYgY2FjaGUgaXMgZW1wdHkuICBPbmx5IHJldHVybnMKLSAg
Ly8gTlVMTCBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCi0gIHZvaWQqIEZldGNoRnJvbVNwYW5zU2Fm
ZSgpOwotCi0gIC8vIFJFUVVJUkVTOiBsb2NrXyBpcyBoZWxkCi0gIC8vIFJlbGVhc2UgYSBsaW5r
ZWQgbGlzdCBvZiBvYmplY3RzIHRvIHNwYW5zLgotICAvLyBNYXkgdGVtcG9yYXJpbHkgcmVsZWFz
ZSBsb2NrXy4KLSAgdm9pZCBSZWxlYXNlTGlzdFRvU3BhbnModm9pZCAqc3RhcnQpOwotCi0gIC8v
IFJFUVVJUkVTOiBsb2NrXyBpcyBoZWxkCi0gIC8vIFJlbGVhc2UgYW4gb2JqZWN0IHRvIHNwYW5z
LgotICAvLyBNYXkgdGVtcG9yYXJpbHkgcmVsZWFzZSBsb2NrXy4KLSAgQUxXQVlTX0lOTElORSB2
b2lkIFJlbGVhc2VUb1NwYW5zKHZvaWQqIG9iamVjdCk7Ci0KLSAgLy8gUkVRVUlSRVM6IGxvY2tf
IGlzIGhlbGQKLSAgLy8gUG9wdWxhdGUgY2FjaGUgYnkgZmV0Y2hpbmcgZnJvbSB0aGUgcGFnZSBo
ZWFwLgotICAvLyBNYXkgdGVtcG9yYXJpbHkgcmVsZWFzZSBsb2NrXy4KLSAgQUxXQVlTX0lOTElO
RSB2b2lkIFBvcHVsYXRlKCk7Ci0KLSAgLy8gUkVRVUlSRVM6IGxvY2sgaXMgaGVsZC4KLSAgLy8g
VHJpZXMgdG8gbWFrZSByb29tIGZvciBhIFRDRW50cnkuICBJZiB0aGUgY2FjaGUgaXMgZnVsbCBp
dCB3aWxsIHRyeSB0bwotICAvLyBleHBhbmQgaXQgYXQgdGhlIGNvc3Qgb2Ygc29tZSBvdGhlciBj
YWNoZSBzaXplLiAgUmV0dXJuIGZhbHNlIGlmIHRoZXJlIGlzCi0gIC8vIG5vIHNwYWNlLgotICBi
b29sIE1ha2VDYWNoZVNwYWNlKCk7Ci0KLSAgLy8gUkVRVUlSRVM6IGxvY2tfIGZvciBsb2NrZWRf
c2l6ZV9jbGFzcyBpcyBoZWxkLgotICAvLyBQaWNrcyBhICJyYW5kb20iIHNpemUgY2xhc3MgdG8g
c3RlYWwgVENFbnRyeSBzbG90IGZyb20uICBJbiByZWFsaXR5IGl0Ci0gIC8vIGp1c3QgaXRlcmF0
ZXMgb3ZlciB0aGUgc2l6ZWNsYXNzZXMgYnV0IGRvZXMgc28gd2l0aG91dCB0YWtpbmcgYSBsb2Nr
LgotICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KLSAgLy8gTWF5IHRlbXBvcmFyaWx5IGxv
Y2sgYSAicmFuZG9tIiBzaXplIGNsYXNzLgotICBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIEV2
aWN0UmFuZG9tU2l6ZUNsYXNzKHNpemVfdCBsb2NrZWRfc2l6ZV9jbGFzcywgYm9vbCBmb3JjZSk7
Ci0KLSAgLy8gUkVRVUlSRVM6IGxvY2tfIGlzICpub3QqIGhlbGQuCi0gIC8vIFRyaWVzIHRvIHNo
cmluayB0aGUgQ2FjaGUuICBJZiBmb3JjZSBpcyB0cnVlIGl0IHdpbGwgcmVsYXNlIG9iamVjdHMg
dG8KLSAgLy8gc3BhbnMgaWYgaXQgYWxsb3dzIGl0IHRvIHNocmluayB0aGUgY2FjaGUuICBSZXR1
cm4gZmFsc2UgaWYgaXQgZmFpbGVkIHRvCi0gIC8vIHNocmluayB0aGUgY2FjaGUuICBEZWNyZW1l
bnRzIGNhY2hlX3NpemVfIG9uIHN1Y2NlZXNzLgotICAvLyBNYXkgdGVtcG9yYXJpbHkgdGFrZSBs
b2NrXy4gIElmIGl0IHRha2VzIGxvY2tfLCB0aGUgbG9ja2VkX3NpemVfY2xhc3MKLSAgLy8gbG9j
ayBpcyByZWxlYXNlZCB0byB0aGUgdGhyZWFkIGZyb20gaG9sZGluZyB0d28gc2l6ZSBjbGFzcyBs
b2NrcwotICAvLyBjb25jdXJyZW50bHkgd2hpY2ggY291bGQgbGVhZCB0byBhIGRlYWRsb2NrLgot
ICBib29sIFNocmlua0NhY2hlKGludCBsb2NrZWRfc2l6ZV9jbGFzcywgYm9vbCBmb3JjZSk7Ci0K
LSAgLy8gVGhpcyBsb2NrIHByb3RlY3RzIGFsbCB0aGUgZGF0YSBtZW1iZXJzLiAgY2FjaGVkX2Vu
dHJpZXMgYW5kIGNhY2hlX3NpemVfCi0gIC8vIG1heSBiZSBsb29rZWQgYXQgd2l0aG91dCBob2xk
aW5nIHRoZSBsb2NrLgotICBTcGluTG9jayBsb2NrXzsKLQotICAvLyBXZSBrZWVwIGxpbmtlZCBs
aXN0cyBvZiBlbXB0eSBhbmQgbm9uLWVtcHR5IHNwYW5zLgotICBzaXplX3QgICBzaXplX2NsYXNz
XzsgICAgIC8vIE15IHNpemUgY2xhc3MKLSAgU3BhbiAgICAgZW1wdHlfOyAgICAgICAgICAvLyBE
dW1teSBoZWFkZXIgZm9yIGxpc3Qgb2YgZW1wdHkgc3BhbnMKLSAgU3BhbiAgICAgbm9uZW1wdHlf
OyAgICAgICAvLyBEdW1teSBoZWFkZXIgZm9yIGxpc3Qgb2Ygbm9uLWVtcHR5IHNwYW5zCi0gIHNp
emVfdCAgIGNvdW50ZXJfOyAgICAgICAgLy8gTnVtYmVyIG9mIGZyZWUgb2JqZWN0cyBpbiBjYWNo
ZSBlbnRyeQotCi0gIC8vIEhlcmUgd2UgcmVzZXJ2ZSBzcGFjZSBmb3IgVENFbnRyeSBjYWNoZSBz
bG90cy4gIFNpbmNlIG9uZSBzaXplIGNsYXNzIGNhbgotICAvLyBlbmQgdXAgZ2V0dGluZyBhbGwg
dGhlIFRDRW50cmllcyBxdW90YSBpbiB0aGUgc3lzdGVtIHdlIGp1c3QgcHJlYWxsb2NhdGUKLSAg
Ly8gc3VmZmljaWVudCBudW1iZXIgb2YgZW50cmllcyBoZXJlLgotICBUQ0VudHJ5IHRjX3Nsb3Rz
X1trTnVtVHJhbnNmZXJFbnRyaWVzXTsKLQotICAvLyBOdW1iZXIgb2YgY3VycmVudGx5IHVzZWQg
Y2FjaGVkIGVudHJpZXMgaW4gdGNfc2xvdHNfLiAgVGhpcyB2YXJpYWJsZSBpcwotICAvLyB1cGRh
dGVkIHVuZGVyIGEgbG9jayBidXQgY2FuIGJlIHJlYWQgd2l0aG91dCBvbmUuCi0gIGludDMyX3Qg
dXNlZF9zbG90c187Ci0gIC8vIFRoZSBjdXJyZW50IG51bWJlciBvZiBzbG90cyBmb3IgdGhpcyBz
aXplIGNsYXNzLiAgVGhpcyBpcyBhbgotICAvLyBhZGFwdGl2ZSB2YWx1ZSB0aGF0IGlzIGluY3Jl
YXNlZCBpZiB0aGVyZSBpcyBsb3RzIG9mIHRyYWZmaWMKLSAgLy8gb24gYSBnaXZlbiBzaXplIGNs
YXNzLgotICBpbnQzMl90IGNhY2hlX3NpemVfOwotfTsKLQotLy8gUGFkIGVhY2ggQ2VudHJhbENh
Y2hlIG9iamVjdCB0byBtdWx0aXBsZSBvZiA2NCBieXRlcwotY2xhc3MgVENNYWxsb2NfQ2VudHJh
bF9GcmVlTGlzdFBhZGRlZCA6IHB1YmxpYyBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0IHsKLSBw
cml2YXRlOgotICBjaGFyIHBhZF9bKDY0IC0gKHNpemVvZihUQ01hbGxvY19DZW50cmFsX0ZyZWVM
aXN0KSAlIDY0KSkgJSA2NF07Ci19OwotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIEdsb2JhbCB2YXJpYWJs
ZXMKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148131</attachid>
            <date>2012-06-18 11:13:10 -0700</date>
            <delta_ts>2012-11-13 14:07:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88344-20120618121214.patch</filename>
            <type>text/plain</type>
            <size>21244</size>
            <attacher name="Alex Christensen">alex.christensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMjA2MDkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTE4ICBBbGV4IENocmlzdGVuc2VuICA8
YWxleC5jaHJpc3RlbnNlbkBmbGV4c2ltLmNvbT4KKworICAgICAgICBGaXggRmFzdE1hbGxvYy5j
cHAgY29tcGlsZSBlcnJvciBmb3IgTVNWQyBpbiA2NC1iaXQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MzQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvRmFzdE1hbGxvYy5jcHA6CisgICAgICAg
IFJlb3JkZXJlZCBkZWZpbml0aW9ucyB0byBwcmVwYXJlIGZvciBhZGRpbmcgc3BlY2lhbGl6ZWQg
dGVtcGxhdGUKKyAgICAgICAgKFdURik6CisgICAgICAgIChUQ01hbGxvY19DZW50cmFsX0ZyZWVM
aXN0KToKKyAgICAgICAgKFdURjo6VENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdDo6bGVuZ3RoKToK
KyAgICAgICAgKFdURjo6VENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdDo6dGNfbGVuZ3RoKToKKyAg
ICAgICAgKFdURjo6VENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdDo6ZW51bWVyYXRlRnJlZU9iamVj
dHMpOgorICAgICAgICAoVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZCk6CisgICAgICAg
IChGYXN0TWFsbG9jWm9uZSk6CisgICAgICAgIChXVEY6OkZhc3RNYWxsb2Nab25lOjpnb29kU2l6
ZSk6CisgICAgICAgIChXVEY6OkZhc3RNYWxsb2Nab25lOjpjaGVjayk6CisgICAgICAgIChXVEY6
OkZhc3RNYWxsb2Nab25lOjpwcmludCk6CisgICAgICAgIChXVEY6OkZhc3RNYWxsb2Nab25lOjps
b2cpOgorICAgICAgICAoV1RGOjpGYXN0TWFsbG9jWm9uZTo6Zm9yY2VMb2NrKToKKyAgICAgICAg
KFdURjo6RmFzdE1hbGxvY1pvbmU6OmZvcmNlVW5sb2NrKToKKyAgICAgICAgKFdURjo6RmFzdE1h
bGxvY1pvbmU6OnN0YXRpc3RpY3MpOgorICAgICAgICAoV1RGOjpGYXN0TWFsbG9jWm9uZTo6em9u
ZVZhbGxvYyk6CisgICAgICAgIChXVEY6OkZhc3RNYWxsb2Nab25lOjp6b25lRGVzdHJveSk6Cisg
ICAgICAgIChXVEY6Oktlcm5lbFN1cHBvcnRzVExTKToKKyAgICAgICAgKFdURjo6Q2hlY2tJZktl
cm5lbFN1cHBvcnRzVExTKToKKyAgICAgICAgKFRDTWFsbG9jX1RocmVhZENhY2hlKToKKwogMjAx
Mi0wNi0xOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMDQ4NSBhbmQgcjEyMDU4Mi4KSW5kZXg6
IFNvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL0Zhc3RNYWxsb2MuY3BwCShyZXZpc2lvbiAxMjA2MDgpCisrKyBTb3VyY2UvV1RGL3d0Zi9G
YXN0TWFsbG9jLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDk0LDEwMyArNDk0LDYgQEAgbmFtZXNw
YWNlIFdURiB7CiAjZGVmaW5lIE1FU1NBR0UgTE9HX0VSUk9SCiAjZGVmaW5lIENIRUNLX0NPTkRJ
VElPTiBBU1NFUlQKIAotI2lmIE9TKERBUldJTikKLXN0cnVjdCBTcGFuOwotY2xhc3MgVENNYWxs
b2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZDsKLWNsYXNzIFRDTWFsbG9jX1BhZ2VIZWFwOwotY2xh
c3MgVENNYWxsb2NfVGhyZWFkQ2FjaGU7Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgUGFn
ZUhlYXBBbGxvY2F0b3I7Ci0KLWNsYXNzIEZhc3RNYWxsb2Nab25lIHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgdm9pZCBpbml0KCk7Ci0KLSAgICBzdGF0aWMga2Vybl9yZXR1cm5fdCBlbnVtZXJhdGUo
dGFza190LCB2b2lkKiwgdW5zaWduZWQgdHlwZU1tYXNrLCB2bV9hZGRyZXNzX3Qgem9uZUFkZHJl
c3MsIG1lbW9yeV9yZWFkZXJfdCwgdm1fcmFuZ2VfcmVjb3JkZXJfdCk7Ci0gICAgc3RhdGljIHNp
emVfdCBnb29kU2l6ZShtYWxsb2Nfem9uZV90Kiwgc2l6ZV90IHNpemUpIHsgcmV0dXJuIHNpemU7
IH0KLSAgICBzdGF0aWMgYm9vbGVhbl90IGNoZWNrKG1hbGxvY196b25lX3QqKSB7IHJldHVybiB0
cnVlOyB9Ci0gICAgc3RhdGljIHZvaWQgIHByaW50KG1hbGxvY196b25lX3QqLCBib29sZWFuX3Qp
IHsgfQotICAgIHN0YXRpYyB2b2lkIGxvZyhtYWxsb2Nfem9uZV90Kiwgdm9pZCopIHsgfQotICAg
IHN0YXRpYyB2b2lkIGZvcmNlTG9jayhtYWxsb2Nfem9uZV90KikgeyB9Ci0gICAgc3RhdGljIHZv
aWQgZm9yY2VVbmxvY2sobWFsbG9jX3pvbmVfdCopIHsgfQotICAgIHN0YXRpYyB2b2lkIHN0YXRp
c3RpY3MobWFsbG9jX3pvbmVfdCosIG1hbGxvY19zdGF0aXN0aWNzX3QqIHN0YXRzKSB7IG1lbXNl
dChzdGF0cywgMCwgc2l6ZW9mKG1hbGxvY19zdGF0aXN0aWNzX3QpKTsgfQotCi1wcml2YXRlOgot
ICAgIEZhc3RNYWxsb2Nab25lKFRDTWFsbG9jX1BhZ2VIZWFwKiwgVENNYWxsb2NfVGhyZWFkQ2Fj
aGUqKiwgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZCosIFBhZ2VIZWFwQWxsb2NhdG9y
PFNwYW4+KiwgUGFnZUhlYXBBbGxvY2F0b3I8VENNYWxsb2NfVGhyZWFkQ2FjaGU+Kik7Ci0gICAg
c3RhdGljIHNpemVfdCBzaXplKG1hbGxvY196b25lX3QqLCBjb25zdCB2b2lkKik7Ci0gICAgc3Rh
dGljIHZvaWQqIHpvbmVNYWxsb2MobWFsbG9jX3pvbmVfdCosIHNpemVfdCk7Ci0gICAgc3RhdGlj
IHZvaWQqIHpvbmVDYWxsb2MobWFsbG9jX3pvbmVfdCosIHNpemVfdCBudW1JdGVtcywgc2l6ZV90
IHNpemUpOwotICAgIHN0YXRpYyB2b2lkIHpvbmVGcmVlKG1hbGxvY196b25lX3QqLCB2b2lkKik7
Ci0gICAgc3RhdGljIHZvaWQqIHpvbmVSZWFsbG9jKG1hbGxvY196b25lX3QqLCB2b2lkKiwgc2l6
ZV90KTsKLSAgICBzdGF0aWMgdm9pZCogem9uZVZhbGxvYyhtYWxsb2Nfem9uZV90Kiwgc2l6ZV90
KSB7IExPR19FUlJPUigidmFsbG9jIGlzIG5vdCBzdXBwb3J0ZWQiKTsgcmV0dXJuIDA7IH0KLSAg
ICBzdGF0aWMgdm9pZCB6b25lRGVzdHJveShtYWxsb2Nfem9uZV90KikgeyB9Ci0KLSAgICBtYWxs
b2Nfem9uZV90IG1fem9uZTsKLSAgICBUQ01hbGxvY19QYWdlSGVhcCogbV9wYWdlSGVhcDsKLSAg
ICBUQ01hbGxvY19UaHJlYWRDYWNoZSoqIG1fdGhyZWFkSGVhcHM7Ci0gICAgVENNYWxsb2NfQ2Vu
dHJhbF9GcmVlTGlzdFBhZGRlZCogbV9jZW50cmFsQ2FjaGVzOwotICAgIFBhZ2VIZWFwQWxsb2Nh
dG9yPFNwYW4+KiBtX3NwYW5BbGxvY2F0b3I7Ci0gICAgUGFnZUhlYXBBbGxvY2F0b3I8VENNYWxs
b2NfVGhyZWFkQ2FjaGU+KiBtX3BhZ2VIZWFwQWxsb2NhdG9yOwotfTsKLQotI2VuZGlmCi0KLSNl
bmRpZgotCi0jaWZuZGVmIFdURl9DSEFOR0VTCi0vLyBUaGlzICNpZmRlZiBzaG91bGQgYWxtb3N0
IG5ldmVyIGJlIHNldC4gIFNldCBOT19UQ01BTExPQ19TQU1QTEVTIGlmCi0vLyB5b3UncmUgcG9y
dGluZyB0byBhIHN5c3RlbSB3aGVyZSB5b3UgcmVhbGx5IGNhbid0IGdldCBhIHN0YWNrdHJhY2Uu
Ci0jaWZkZWYgTk9fVENNQUxMT0NfU0FNUExFUwotLy8gV2UgdXNlICNkZWZpbmUgc28gY29kZSBj
b21waWxlcyBldmVuIGlmIHlvdSAjaW5jbHVkZSBzdGFja3RyYWNlLmggc29tZWhvdy4KLSMgZGVm
aW5lIEdldFN0YWNrVHJhY2Uoc3RhY2ssIGRlcHRoLCBza2lwKSAgKDApCi0jZWxzZQotIyBpbmNs
dWRlIDxnb29nbGUvc3RhY2t0cmFjZS5oPgotI2VuZGlmCi0jZW5kaWYKLQotLy8gRXZlbiBpZiB3
ZSBoYXZlIHN1cHBvcnQgZm9yIHRocmVhZC1sb2NhbCBzdG9yYWdlIGluIHRoZSBjb21waWxlcgot
Ly8gYW5kIGxpbmtlciwgdGhlIE9TIG1heSBub3Qgc3VwcG9ydCBpdC4gIFdlIG5lZWQgdG8gY2hl
Y2sgdGhhdCBhdAotLy8gcnVudGltZS4gIFJpZ2h0IG5vdywgd2UgaGF2ZSB0byBrZWVwIGEgbWFu
dWFsIHNldCBvZiAiYmFkIiBPU2VzLgotI2lmIGRlZmluZWQoSEFWRV9UTFMpCi0gIHN0YXRpYyBi
b29sIGtlcm5lbF9zdXBwb3J0c190bHMgPSBmYWxzZTsgICAgICAvLyBiZSBjb25zZXJ2YXRpdmUK
LSAgc3RhdGljIGlubGluZSBib29sIEtlcm5lbFN1cHBvcnRzVExTKCkgewotICAgIHJldHVybiBr
ZXJuZWxfc3VwcG9ydHNfdGxzOwotICB9Ci0jIGlmICFIQVZFX0RFQ0xfVU5BTUUgICAvLyBpZiB0
b28gb2xkIGZvciB1bmFtZSwgcHJvYmFibHkgdG9vIG9sZCBmb3IgVExTCi0gICAgc3RhdGljIHZv
aWQgQ2hlY2tJZktlcm5lbFN1cHBvcnRzVExTKCkgewotICAgICAga2VybmVsX3N1cHBvcnRzX3Rs
cyA9IGZhbHNlOwotICAgIH0KLSMgZWxzZQotIyAgIGluY2x1ZGUgPHN5cy91dHNuYW1lLmg+ICAg
IC8vIERFQ0xfVU5BTUUgY2hlY2tlZCBmb3IgPHN5cy91dHNuYW1lLmg+IHRvbwotICAgIHN0YXRp
YyB2b2lkIENoZWNrSWZLZXJuZWxTdXBwb3J0c1RMUygpIHsKLSAgICAgIHN0cnVjdCB1dHNuYW1l
IGJ1ZjsKLSAgICAgIGlmICh1bmFtZSgmYnVmKSAhPSAwKSB7ICAgLy8gc2hvdWxkIGJlIGltcG9z
c2libGUKLSAgICAgICAgTUVTU0FHRSgidW5hbWUgZmFpbGVkIGFzc3VtaW5nIG5vIFRMUyBzdXBw
b3J0IChlcnJubz0lZClcbiIsIGVycm5vKTsKLSAgICAgICAga2VybmVsX3N1cHBvcnRzX3RscyA9
IGZhbHNlOwotICAgICAgfSBlbHNlIGlmIChzdHJjYXNlY21wKGJ1Zi5zeXNuYW1lLCAibGludXgi
KSA9PSAwKSB7Ci0gICAgICAgIC8vIFRoZSBsaW51eCBjYXNlOiB0aGUgZmlyc3Qga2VybmVsIHRv
IHN1cHBvcnQgVExTIHdhcyAyLjYuMAotICAgICAgICBpZiAoYnVmLnJlbGVhc2VbMF0gPCAnMicg
JiYgYnVmLnJlbGVhc2VbMV0gPT0gJy4nKSAgICAvLyAwLnggb3IgMS54Ci0gICAgICAgICAga2Vy
bmVsX3N1cHBvcnRzX3RscyA9IGZhbHNlOwotICAgICAgICBlbHNlIGlmIChidWYucmVsZWFzZVsw
XSA9PSAnMicgJiYgYnVmLnJlbGVhc2VbMV0gPT0gJy4nICYmCi0gICAgICAgICAgICAgICAgIGJ1
Zi5yZWxlYXNlWzJdID49ICcwJyAmJiBidWYucmVsZWFzZVsyXSA8ICc2JyAmJgotICAgICAgICAg
ICAgICAgICBidWYucmVsZWFzZVszXSA9PSAnLicpICAgICAgICAgICAgICAgICAgICAgICAvLyAy
LjAgLSAyLjUKLSAgICAgICAgICBrZXJuZWxfc3VwcG9ydHNfdGxzID0gZmFsc2U7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICBrZXJuZWxfc3VwcG9ydHNfdGxzID0gdHJ1ZTsKLSAgICAgIH0gZWxz
ZSB7ICAgICAgICAvLyBzb21lIG90aGVyIGtlcm5lbCwgd2UnbGwgYmUgb3B0aW1pc2l0aWMKLSAg
ICAgICAga2VybmVsX3N1cHBvcnRzX3RscyA9IHRydWU7Ci0gICAgICB9Ci0gICAgICAvLyBUT0RP
KGNzaWx2ZXJzKTogVkxPRygxKSB0aGUgdGxzIHN0YXR1cyBvbmNlIHdlIHN1cHBvcnQgUkFXX1ZM
T0cKLSAgICB9Ci0jICBlbmRpZiAgLy8gSEFWRV9ERUNMX1VOQU1FCi0jZW5kaWYgICAgLy8gSEFW
RV9UTFMKLQotLy8gX19USFJPVyBpcyBkZWZpbmVkIGluIGdsaWJjIHN5c3RlbXMuICBJdCBtZWFu
cywgY291bnRlci1pbnR1aXRpdmVseSwKLS8vICJUaGlzIGZ1bmN0aW9uIHdpbGwgbmV2ZXIgdGhy
b3cgYW4gZXhjZXB0aW9uLiIgIEl0J3MgYW4gb3B0aW9uYWwKLS8vIG9wdGltaXphdGlvbiB0b29s
LCBidXQgd2UgbWF5IG5lZWQgdG8gdXNlIGl0IHRvIG1hdGNoIGdsaWJjIHByb3RvdHlwZXMuCi0j
aWZuZGVmIF9fVEhST1cgICAgLy8gSSBndWVzcyB3ZSdyZSBub3Qgb24gYSBnbGliYyBzeXN0ZW0K
LSMgZGVmaW5lIF9fVEhST1cgICAvLyBfX1RIUk9XIGlzIGp1c3QgYW4gb3B0aW1pemF0aW9uLCBz
byBvayB0byBtYWtlIGl0ICIiCi0jZW5kaWYKLQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBDb25maWd1cmF0
aW9uCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEwNjQsNyArOTY3LDcgQEAgY2xhc3MgUGFnZUhlYXBBbGxv
Y2F0b3IgewogICB9CiAjZW5kaWYKIH07Ci0KKwkKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIFNw
YW4gLSBhIGNvbnRpZ3VvdXMgcnVuIG9mIHBhZ2VzCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0x
MjAyLDYgKzExMDUsMjMxIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBETExfUHJlcGVuZChTcGFuKiBs
aXMKICAgbGlzdC0+bmV4dCA9IHNwYW47CiB9CiAKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gRGF0YSBrZXB0
IHBlciBzaXplLWNsYXNzIGluIGNlbnRyYWwgY2FjaGUKKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitjbGFzcyBU
Q01hbGxvY19DZW50cmFsX0ZyZWVMaXN0IHsKKyBwdWJsaWM6CisgIHZvaWQgSW5pdChzaXplX3Qg
Y2wpOworCisgIC8vIFRoZXNlIG1ldGhvZHMgYWxsIGRvIGludGVybmFsIGxvY2tpbmcuCisKKyAg
Ly8gSW5zZXJ0IHRoZSBzcGVjaWZpZWQgcmFuZ2UgaW50byB0aGUgY2VudHJhbCBmcmVlbGlzdC4g
IE4gaXMgdGhlIG51bWJlciBvZgorICAvLyBlbGVtZW50cyBpbiB0aGUgcmFuZ2UuCisgIHZvaWQg
SW5zZXJ0UmFuZ2Uodm9pZCAqc3RhcnQsIHZvaWQgKmVuZCwgaW50IE4pOworCisgIC8vIFJldHVy
bnMgdGhlIGFjdHVhbCBudW1iZXIgb2YgZmV0Y2hlZCBlbGVtZW50cyBpbnRvIE4uCisgIHZvaWQg
UmVtb3ZlUmFuZ2Uodm9pZCAqKnN0YXJ0LCB2b2lkICoqZW5kLCBpbnQgKk4pOworCisgIC8vIFJl
dHVybnMgdGhlIG51bWJlciBvZiBmcmVlIG9iamVjdHMgaW4gY2FjaGUuCisgIHNpemVfdCBsZW5n
dGgoKSB7CisgICAgU3BpbkxvY2tIb2xkZXIgaCgmbG9ja18pOworICAgIHJldHVybiBjb3VudGVy
XzsKKyAgfQorCisgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBmcmVlIG9iamVjdHMgaW4gdGhl
IHRyYW5zZmVyIGNhY2hlLgorICBpbnQgdGNfbGVuZ3RoKCkgeworICAgIFNwaW5Mb2NrSG9sZGVy
IGgoJmxvY2tfKTsKKyAgICByZXR1cm4gdXNlZF9zbG90c18gKiBudW1fb2JqZWN0c190b19tb3Zl
W3NpemVfY2xhc3NfXTsKKyAgfQorCisjaWZkZWYgV1RGX0NIQU5HRVMKKyAgdGVtcGxhdGUgPGNs
YXNzIEZpbmRlciwgY2xhc3MgUmVhZGVyPgorICB2b2lkIGVudW1lcmF0ZUZyZWVPYmplY3RzKEZp
bmRlciYgZmluZGVyLCBjb25zdCBSZWFkZXImIHJlYWRlciwgVENNYWxsb2NfQ2VudHJhbF9GcmVl
TGlzdCogcmVtb3RlQ2VudHJhbEZyZWVMaXN0KQorICB7CisgICAgZm9yIChTcGFuKiBzcGFuID0g
JmVtcHR5Xzsgc3BhbiAmJiBzcGFuICE9ICZlbXB0eV87IHNwYW4gPSAoc3Bhbi0+bmV4dCA/IHJl
YWRlcihzcGFuLT5uZXh0KSA6IDApKQorICAgICAgQVNTRVJUKCFzcGFuLT5vYmplY3RzKTsKKwor
ICAgIEFTU0VSVCghbm9uZW1wdHlfLm9iamVjdHMpOworICAgIHN0YXRpYyBjb25zdCBwdHJkaWZm
X3Qgbm9uZW1wdHlPZmZzZXQgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPigmbm9uZW1w
dHlfKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHRoaXMpOworCisgICAgU3Bhbiog
cmVtb3RlTm9uZW1wdHkgPSByZWludGVycHJldF9jYXN0PFNwYW4qPihyZWludGVycHJldF9jYXN0
PGNoYXIqPihyZW1vdGVDZW50cmFsRnJlZUxpc3QpICsgbm9uZW1wdHlPZmZzZXQpOworICAgIFNw
YW4qIHJlbW90ZVNwYW4gPSBub25lbXB0eV8ubmV4dDsKKworICAgIGZvciAoU3Bhbiogc3BhbiA9
IHJlYWRlcihyZW1vdGVTcGFuKTsgc3BhbiAmJiByZW1vdGVTcGFuICE9IHJlbW90ZU5vbmVtcHR5
OyByZW1vdGVTcGFuID0gc3Bhbi0+bmV4dCwgc3BhbiA9IChzcGFuLT5uZXh0ID8gcmVhZGVyKHNw
YW4tPm5leHQpIDogMCkpIHsKKyAgICAgIGZvciAodm9pZCogbmV4dE9iamVjdCA9IHNwYW4tPm9i
amVjdHM7IG5leHRPYmplY3Q7IG5leHRPYmplY3QgPSByZWFkZXIubmV4dEVudHJ5SW5MaW5rZWRM
aXN0KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihuZXh0T2JqZWN0KSkpCisgICAgICAgIGZpbmRl
ci52aXNpdChuZXh0T2JqZWN0KTsKKyAgICB9CisgIH0KKyNlbmRpZgorCisgcHJpdmF0ZToKKyAg
Ly8gUkVRVUlSRVM6IGxvY2tfIGlzIGhlbGQKKyAgLy8gUmVtb3ZlIG9iamVjdCBmcm9tIGNhY2hl
IGFuZCByZXR1cm4uCisgIC8vIFJldHVybiBOVUxMIGlmIG5vIGZyZWUgZW50cmllcyBpbiBjYWNo
ZS4KKyAgdm9pZCogRmV0Y2hGcm9tU3BhbnMoKTsKKworICAvLyBSRVFVSVJFUzogbG9ja18gaXMg
aGVsZAorICAvLyBSZW1vdmUgb2JqZWN0IGZyb20gY2FjaGUgYW5kIHJldHVybi4gIEZldGNoZXMK
KyAgLy8gZnJvbSBwYWdlaGVhcCBpZiBjYWNoZSBpcyBlbXB0eS4gIE9ubHkgcmV0dXJucworICAv
LyBOVUxMIG9uIGFsbG9jYXRpb24gZmFpbHVyZS4KKyAgdm9pZCogRmV0Y2hGcm9tU3BhbnNTYWZl
KCk7CisKKyAgLy8gUkVRVUlSRVM6IGxvY2tfIGlzIGhlbGQKKyAgLy8gUmVsZWFzZSBhIGxpbmtl
ZCBsaXN0IG9mIG9iamVjdHMgdG8gc3BhbnMuCisgIC8vIE1heSB0ZW1wb3JhcmlseSByZWxlYXNl
IGxvY2tfLgorICB2b2lkIFJlbGVhc2VMaXN0VG9TcGFucyh2b2lkICpzdGFydCk7CisKKyAgLy8g
UkVRVUlSRVM6IGxvY2tfIGlzIGhlbGQKKyAgLy8gUmVsZWFzZSBhbiBvYmplY3QgdG8gc3BhbnMu
CisgIC8vIE1heSB0ZW1wb3JhcmlseSByZWxlYXNlIGxvY2tfLgorICBBTFdBWVNfSU5MSU5FIHZv
aWQgUmVsZWFzZVRvU3BhbnModm9pZCogb2JqZWN0KTsKKworICAvLyBSRVFVSVJFUzogbG9ja18g
aXMgaGVsZAorICAvLyBQb3B1bGF0ZSBjYWNoZSBieSBmZXRjaGluZyBmcm9tIHRoZSBwYWdlIGhl
YXAuCisgIC8vIE1heSB0ZW1wb3JhcmlseSByZWxlYXNlIGxvY2tfLgorICBBTFdBWVNfSU5MSU5F
IHZvaWQgUG9wdWxhdGUoKTsKKworICAvLyBSRVFVSVJFUzogbG9jayBpcyBoZWxkLgorICAvLyBU
cmllcyB0byBtYWtlIHJvb20gZm9yIGEgVENFbnRyeS4gIElmIHRoZSBjYWNoZSBpcyBmdWxsIGl0
IHdpbGwgdHJ5IHRvCisgIC8vIGV4cGFuZCBpdCBhdCB0aGUgY29zdCBvZiBzb21lIG90aGVyIGNh
Y2hlIHNpemUuICBSZXR1cm4gZmFsc2UgaWYgdGhlcmUgaXMKKyAgLy8gbm8gc3BhY2UuCisgIGJv
b2wgTWFrZUNhY2hlU3BhY2UoKTsKKworICAvLyBSRVFVSVJFUzogbG9ja18gZm9yIGxvY2tlZF9z
aXplX2NsYXNzIGlzIGhlbGQuCisgIC8vIFBpY2tzIGEgInJhbmRvbSIgc2l6ZSBjbGFzcyB0byBz
dGVhbCBUQ0VudHJ5IHNsb3QgZnJvbS4gIEluIHJlYWxpdHkgaXQKKyAgLy8ganVzdCBpdGVyYXRl
cyBvdmVyIHRoZSBzaXplY2xhc3NlcyBidXQgZG9lcyBzbyB3aXRob3V0IHRha2luZyBhIGxvY2su
CisgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAvLyBNYXkgdGVtcG9yYXJpbHkgbG9j
ayBhICJyYW5kb20iIHNpemUgY2xhc3MuCisgIHN0YXRpYyBBTFdBWVNfSU5MSU5FIGJvb2wgRXZp
Y3RSYW5kb21TaXplQ2xhc3Moc2l6ZV90IGxvY2tlZF9zaXplX2NsYXNzLCBib29sIGZvcmNlKTsK
KworICAvLyBSRVFVSVJFUzogbG9ja18gaXMgKm5vdCogaGVsZC4KKyAgLy8gVHJpZXMgdG8gc2hy
aW5rIHRoZSBDYWNoZS4gIElmIGZvcmNlIGlzIHRydWUgaXQgd2lsbCByZWxhc2Ugb2JqZWN0cyB0
bworICAvLyBzcGFucyBpZiBpdCBhbGxvd3MgaXQgdG8gc2hyaW5rIHRoZSBjYWNoZS4gIFJldHVy
biBmYWxzZSBpZiBpdCBmYWlsZWQgdG8KKyAgLy8gc2hyaW5rIHRoZSBjYWNoZS4gIERlY3JlbWVu
dHMgY2FjaGVfc2l6ZV8gb24gc3VjY2Vlc3MuCisgIC8vIE1heSB0ZW1wb3JhcmlseSB0YWtlIGxv
Y2tfLiAgSWYgaXQgdGFrZXMgbG9ja18sIHRoZSBsb2NrZWRfc2l6ZV9jbGFzcworICAvLyBsb2Nr
IGlzIHJlbGVhc2VkIHRvIHRoZSB0aHJlYWQgZnJvbSBob2xkaW5nIHR3byBzaXplIGNsYXNzIGxv
Y2tzCisgIC8vIGNvbmN1cnJlbnRseSB3aGljaCBjb3VsZCBsZWFkIHRvIGEgZGVhZGxvY2suCisg
IGJvb2wgU2hyaW5rQ2FjaGUoaW50IGxvY2tlZF9zaXplX2NsYXNzLCBib29sIGZvcmNlKTsKKwor
ICAvLyBUaGlzIGxvY2sgcHJvdGVjdHMgYWxsIHRoZSBkYXRhIG1lbWJlcnMuICBjYWNoZWRfZW50
cmllcyBhbmQgY2FjaGVfc2l6ZV8KKyAgLy8gbWF5IGJlIGxvb2tlZCBhdCB3aXRob3V0IGhvbGRp
bmcgdGhlIGxvY2suCisgIFNwaW5Mb2NrIGxvY2tfOworCisgIC8vIFdlIGtlZXAgbGlua2VkIGxp
c3RzIG9mIGVtcHR5IGFuZCBub24tZW1wdHkgc3BhbnMuCisgIHNpemVfdCAgIHNpemVfY2xhc3Nf
OyAgICAgLy8gTXkgc2l6ZSBjbGFzcworICBTcGFuICAgICBlbXB0eV87ICAgICAgICAgIC8vIER1
bW15IGhlYWRlciBmb3IgbGlzdCBvZiBlbXB0eSBzcGFucworICBTcGFuICAgICBub25lbXB0eV87
ICAgICAgIC8vIER1bW15IGhlYWRlciBmb3IgbGlzdCBvZiBub24tZW1wdHkgc3BhbnMKKyAgc2l6
ZV90ICAgY291bnRlcl87ICAgICAgICAvLyBOdW1iZXIgb2YgZnJlZSBvYmplY3RzIGluIGNhY2hl
IGVudHJ5CisKKyAgLy8gSGVyZSB3ZSByZXNlcnZlIHNwYWNlIGZvciBUQ0VudHJ5IGNhY2hlIHNs
b3RzLiAgU2luY2Ugb25lIHNpemUgY2xhc3MgY2FuCisgIC8vIGVuZCB1cCBnZXR0aW5nIGFsbCB0
aGUgVENFbnRyaWVzIHF1b3RhIGluIHRoZSBzeXN0ZW0gd2UganVzdCBwcmVhbGxvY2F0ZQorICAv
LyBzdWZmaWNpZW50IG51bWJlciBvZiBlbnRyaWVzIGhlcmUuCisgIFRDRW50cnkgdGNfc2xvdHNf
W2tOdW1UcmFuc2ZlckVudHJpZXNdOworCisgIC8vIE51bWJlciBvZiBjdXJyZW50bHkgdXNlZCBj
YWNoZWQgZW50cmllcyBpbiB0Y19zbG90c18uICBUaGlzIHZhcmlhYmxlIGlzCisgIC8vIHVwZGF0
ZWQgdW5kZXIgYSBsb2NrIGJ1dCBjYW4gYmUgcmVhZCB3aXRob3V0IG9uZS4KKyAgaW50MzJfdCB1
c2VkX3Nsb3RzXzsKKyAgLy8gVGhlIGN1cnJlbnQgbnVtYmVyIG9mIHNsb3RzIGZvciB0aGlzIHNp
emUgY2xhc3MuICBUaGlzIGlzIGFuCisgIC8vIGFkYXB0aXZlIHZhbHVlIHRoYXQgaXMgaW5jcmVh
c2VkIGlmIHRoZXJlIGlzIGxvdHMgb2YgdHJhZmZpYworICAvLyBvbiBhIGdpdmVuIHNpemUgY2xh
c3MuCisgIGludDMyX3QgY2FjaGVfc2l6ZV87Cit9OworCisvLyBQYWQgZWFjaCBDZW50cmFsQ2Fj
aGUgb2JqZWN0IHRvIG11bHRpcGxlIG9mIDY0IGJ5dGVzCitjbGFzcyBUQ01hbGxvY19DZW50cmFs
X0ZyZWVMaXN0UGFkZGVkIDogcHVibGljIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3QgeworIHBy
aXZhdGU6CisgIGNoYXIgcGFkX1soNjQgLSAoc2l6ZW9mKFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxp
c3QpICUgNjQpKSAlIDY0XTsKK307CisKKyNpZiBPUyhEQVJXSU4pCitzdHJ1Y3QgU3BhbjsKK2Ns
YXNzIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3RQYWRkZWQ7CitjbGFzcyBUQ01hbGxvY19QYWdl
SGVhcDsKK2NsYXNzIFRDTWFsbG9jX1RocmVhZENhY2hlOwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IGNsYXNzIFBhZ2VIZWFwQWxsb2NhdG9yOworCitjbGFzcyBGYXN0TWFsbG9jWm9uZSB7CitwdWJs
aWM6CisgICAgc3RhdGljIHZvaWQgaW5pdCgpOworCisgICAgc3RhdGljIGtlcm5fcmV0dXJuX3Qg
ZW51bWVyYXRlKHRhc2tfdCwgdm9pZCosIHVuc2lnbmVkIHR5cGVNbWFzaywgdm1fYWRkcmVzc190
IHpvbmVBZGRyZXNzLCBtZW1vcnlfcmVhZGVyX3QsIHZtX3JhbmdlX3JlY29yZGVyX3QpOworICAg
IHN0YXRpYyBzaXplX3QgZ29vZFNpemUobWFsbG9jX3pvbmVfdCosIHNpemVfdCBzaXplKSB7IHJl
dHVybiBzaXplOyB9CisgICAgc3RhdGljIGJvb2xlYW5fdCBjaGVjayhtYWxsb2Nfem9uZV90Kikg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0YXRpYyB2b2lkICBwcmludChtYWxsb2Nfem9uZV90Kiwg
Ym9vbGVhbl90KSB7IH0KKyAgICBzdGF0aWMgdm9pZCBsb2cobWFsbG9jX3pvbmVfdCosIHZvaWQq
KSB7IH0KKyAgICBzdGF0aWMgdm9pZCBmb3JjZUxvY2sobWFsbG9jX3pvbmVfdCopIHsgfQorICAg
IHN0YXRpYyB2b2lkIGZvcmNlVW5sb2NrKG1hbGxvY196b25lX3QqKSB7IH0KKyAgICBzdGF0aWMg
dm9pZCBzdGF0aXN0aWNzKG1hbGxvY196b25lX3QqLCBtYWxsb2Nfc3RhdGlzdGljc190KiBzdGF0
cykgeyBtZW1zZXQoc3RhdHMsIDAsIHNpemVvZihtYWxsb2Nfc3RhdGlzdGljc190KSk7IH0KKwor
cHJpdmF0ZToKKyAgICBGYXN0TWFsbG9jWm9uZShUQ01hbGxvY19QYWdlSGVhcCosIFRDTWFsbG9j
X1RocmVhZENhY2hlKiosIFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3RQYWRkZWQqLCBQYWdlSGVh
cEFsbG9jYXRvcjxTcGFuPiosIFBhZ2VIZWFwQWxsb2NhdG9yPFRDTWFsbG9jX1RocmVhZENhY2hl
PiopOworICAgIHN0YXRpYyBzaXplX3Qgc2l6ZShtYWxsb2Nfem9uZV90KiwgY29uc3Qgdm9pZCop
OworICAgIHN0YXRpYyB2b2lkKiB6b25lTWFsbG9jKG1hbGxvY196b25lX3QqLCBzaXplX3QpOwor
ICAgIHN0YXRpYyB2b2lkKiB6b25lQ2FsbG9jKG1hbGxvY196b25lX3QqLCBzaXplX3QgbnVtSXRl
bXMsIHNpemVfdCBzaXplKTsKKyAgICBzdGF0aWMgdm9pZCB6b25lRnJlZShtYWxsb2Nfem9uZV90
Kiwgdm9pZCopOworICAgIHN0YXRpYyB2b2lkKiB6b25lUmVhbGxvYyhtYWxsb2Nfem9uZV90Kiwg
dm9pZCosIHNpemVfdCk7CisgICAgc3RhdGljIHZvaWQqIHpvbmVWYWxsb2MobWFsbG9jX3pvbmVf
dCosIHNpemVfdCkgeyBMT0dfRVJST1IoInZhbGxvYyBpcyBub3Qgc3VwcG9ydGVkIik7IHJldHVy
biAwOyB9CisgICAgc3RhdGljIHZvaWQgem9uZURlc3Ryb3kobWFsbG9jX3pvbmVfdCopIHsgfQor
CisgICAgbWFsbG9jX3pvbmVfdCBtX3pvbmU7CisgICAgVENNYWxsb2NfUGFnZUhlYXAqIG1fcGFn
ZUhlYXA7CisgICAgVENNYWxsb2NfVGhyZWFkQ2FjaGUqKiBtX3RocmVhZEhlYXBzOworICAgIFRD
TWFsbG9jX0NlbnRyYWxfRnJlZUxpc3RQYWRkZWQqIG1fY2VudHJhbENhY2hlczsKKyAgICBQYWdl
SGVhcEFsbG9jYXRvcjxTcGFuPiogbV9zcGFuQWxsb2NhdG9yOworICAgIFBhZ2VIZWFwQWxsb2Nh
dG9yPFRDTWFsbG9jX1RocmVhZENhY2hlPiogbV9wYWdlSGVhcEFsbG9jYXRvcjsKK307CisKKyNl
bmRpZgorCisjZW5kaWYKKworI2lmbmRlZiBXVEZfQ0hBTkdFUworLy8gVGhpcyAjaWZkZWYgc2hv
dWxkIGFsbW9zdCBuZXZlciBiZSBzZXQuICBTZXQgTk9fVENNQUxMT0NfU0FNUExFUyBpZgorLy8g
eW91J3JlIHBvcnRpbmcgdG8gYSBzeXN0ZW0gd2hlcmUgeW91IHJlYWxseSBjYW4ndCBnZXQgYSBz
dGFja3RyYWNlLgorI2lmZGVmIE5PX1RDTUFMTE9DX1NBTVBMRVMKKy8vIFdlIHVzZSAjZGVmaW5l
IHNvIGNvZGUgY29tcGlsZXMgZXZlbiBpZiB5b3UgI2luY2x1ZGUgc3RhY2t0cmFjZS5oIHNvbWVo
b3cuCisjIGRlZmluZSBHZXRTdGFja1RyYWNlKHN0YWNrLCBkZXB0aCwgc2tpcCkgICgwKQorI2Vs
c2UKKyMgaW5jbHVkZSA8Z29vZ2xlL3N0YWNrdHJhY2UuaD4KKyNlbmRpZgorI2VuZGlmCisKKy8v
IEV2ZW4gaWYgd2UgaGF2ZSBzdXBwb3J0IGZvciB0aHJlYWQtbG9jYWwgc3RvcmFnZSBpbiB0aGUg
Y29tcGlsZXIKKy8vIGFuZCBsaW5rZXIsIHRoZSBPUyBtYXkgbm90IHN1cHBvcnQgaXQuICBXZSBu
ZWVkIHRvIGNoZWNrIHRoYXQgYXQKKy8vIHJ1bnRpbWUuICBSaWdodCBub3csIHdlIGhhdmUgdG8g
a2VlcCBhIG1hbnVhbCBzZXQgb2YgImJhZCIgT1Nlcy4KKyNpZiBkZWZpbmVkKEhBVkVfVExTKQor
ICBzdGF0aWMgYm9vbCBrZXJuZWxfc3VwcG9ydHNfdGxzID0gZmFsc2U7ICAgICAgLy8gYmUgY29u
c2VydmF0aXZlCisgIHN0YXRpYyBpbmxpbmUgYm9vbCBLZXJuZWxTdXBwb3J0c1RMUygpIHsKKyAg
ICByZXR1cm4ga2VybmVsX3N1cHBvcnRzX3RsczsKKyAgfQorIyBpZiAhSEFWRV9ERUNMX1VOQU1F
ICAgLy8gaWYgdG9vIG9sZCBmb3IgdW5hbWUsIHByb2JhYmx5IHRvbyBvbGQgZm9yIFRMUworICAg
IHN0YXRpYyB2b2lkIENoZWNrSWZLZXJuZWxTdXBwb3J0c1RMUygpIHsKKyAgICAgIGtlcm5lbF9z
dXBwb3J0c190bHMgPSBmYWxzZTsKKyAgICB9CisjIGVsc2UKKyMgICBpbmNsdWRlIDxzeXMvdXRz
bmFtZS5oPiAgICAvLyBERUNMX1VOQU1FIGNoZWNrZWQgZm9yIDxzeXMvdXRzbmFtZS5oPiB0b28K
KyAgICBzdGF0aWMgdm9pZCBDaGVja0lmS2VybmVsU3VwcG9ydHNUTFMoKSB7CisgICAgICBzdHJ1
Y3QgdXRzbmFtZSBidWY7CisgICAgICBpZiAodW5hbWUoJmJ1ZikgIT0gMCkgeyAgIC8vIHNob3Vs
ZCBiZSBpbXBvc3NpYmxlCisgICAgICAgIE1FU1NBR0UoInVuYW1lIGZhaWxlZCBhc3N1bWluZyBu
byBUTFMgc3VwcG9ydCAoZXJybm89JWQpXG4iLCBlcnJubyk7CisgICAgICAgIGtlcm5lbF9zdXBw
b3J0c190bHMgPSBmYWxzZTsKKyAgICAgIH0gZWxzZSBpZiAoc3RyY2FzZWNtcChidWYuc3lzbmFt
ZSwgImxpbnV4IikgPT0gMCkgeworICAgICAgICAvLyBUaGUgbGludXggY2FzZTogdGhlIGZpcnN0
IGtlcm5lbCB0byBzdXBwb3J0IFRMUyB3YXMgMi42LjAKKyAgICAgICAgaWYgKGJ1Zi5yZWxlYXNl
WzBdIDwgJzInICYmIGJ1Zi5yZWxlYXNlWzFdID09ICcuJykgICAgLy8gMC54IG9yIDEueAorICAg
ICAgICAgIGtlcm5lbF9zdXBwb3J0c190bHMgPSBmYWxzZTsKKyAgICAgICAgZWxzZSBpZiAoYnVm
LnJlbGVhc2VbMF0gPT0gJzInICYmIGJ1Zi5yZWxlYXNlWzFdID09ICcuJyAmJgorICAgICAgICAg
ICAgICAgICBidWYucmVsZWFzZVsyXSA+PSAnMCcgJiYgYnVmLnJlbGVhc2VbMl0gPCAnNicgJiYK
KyAgICAgICAgICAgICAgICAgYnVmLnJlbGVhc2VbM10gPT0gJy4nKSAgICAgICAgICAgICAgICAg
ICAgICAgLy8gMi4wIC0gMi41CisgICAgICAgICAga2VybmVsX3N1cHBvcnRzX3RscyA9IGZhbHNl
OworICAgICAgICBlbHNlCisgICAgICAgICAga2VybmVsX3N1cHBvcnRzX3RscyA9IHRydWU7Cisg
ICAgICB9IGVsc2UgeyAgICAgICAgLy8gc29tZSBvdGhlciBrZXJuZWwsIHdlJ2xsIGJlIG9wdGlt
aXNpdGljCisgICAgICAgIGtlcm5lbF9zdXBwb3J0c190bHMgPSB0cnVlOworICAgICAgfQorICAg
ICAgLy8gVE9ETyhjc2lsdmVycyk6IFZMT0coMSkgdGhlIHRscyBzdGF0dXMgb25jZSB3ZSBzdXBw
b3J0IFJBV19WTE9HCisgICAgfQorIyAgZW5kaWYgIC8vIEhBVkVfREVDTF9VTkFNRQorI2VuZGlm
ICAgIC8vIEhBVkVfVExTCisKKy8vIF9fVEhST1cgaXMgZGVmaW5lZCBpbiBnbGliYyBzeXN0ZW1z
LiAgSXQgbWVhbnMsIGNvdW50ZXItaW50dWl0aXZlbHksCisvLyAiVGhpcyBmdW5jdGlvbiB3aWxs
IG5ldmVyIHRocm93IGFuIGV4Y2VwdGlvbi4iICBJdCdzIGFuIG9wdGlvbmFsCisvLyBvcHRpbWl6
YXRpb24gdG9vbCwgYnV0IHdlIG1heSBuZWVkIHRvIHVzZSBpdCB0byBtYXRjaCBnbGliYyBwcm90
b3R5cGVzLgorI2lmbmRlZiBfX1RIUk9XICAgIC8vIEkgZ3Vlc3Mgd2UncmUgbm90IG9uIGEgZ2xp
YmMgc3lzdGVtCisjIGRlZmluZSBfX1RIUk9XICAgLy8gX19USFJPVyBpcyBqdXN0IGFuIG9wdGlt
aXphdGlvbiwgc28gb2sgdG8gbWFrZSBpdCAiIgorI2VuZGlmCisKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIC8vIFN0YWNrIHRyYWNlcyBrZXB0IGZvciBzYW1wbGVkIGFsbG9jYXRpb25zCiAvLyAgIFRo
ZSBmb2xsb3dpbmcgc3RhdGUgaXMgcHJvdGVjdGVkIGJ5IHBhZ2VoZWFwX2xvY2tfLgpAQCAtMjM0
OCwxMzQgKzI0NzYsNiBAQCBjbGFzcyBUQ01hbGxvY19UaHJlYWRDYWNoZSB7CiB9OwogCiAvLy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLS8vIERhdGEga2VwdCBwZXIgc2l6ZS1jbGFzcyBpbiBjZW50cmFsIGNhY2hlCi0v
Ly0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotY2xhc3MgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdCB7Ci0gcHVibGlj
OgotICB2b2lkIEluaXQoc2l6ZV90IGNsKTsKLQotICAvLyBUaGVzZSBtZXRob2RzIGFsbCBkbyBp
bnRlcm5hbCBsb2NraW5nLgotCi0gIC8vIEluc2VydCB0aGUgc3BlY2lmaWVkIHJhbmdlIGludG8g
dGhlIGNlbnRyYWwgZnJlZWxpc3QuICBOIGlzIHRoZSBudW1iZXIgb2YKLSAgLy8gZWxlbWVudHMg
aW4gdGhlIHJhbmdlLgotICB2b2lkIEluc2VydFJhbmdlKHZvaWQgKnN0YXJ0LCB2b2lkICplbmQs
IGludCBOKTsKLQotICAvLyBSZXR1cm5zIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGZldGNoZWQgZWxl
bWVudHMgaW50byBOLgotICB2b2lkIFJlbW92ZVJhbmdlKHZvaWQgKipzdGFydCwgdm9pZCAqKmVu
ZCwgaW50ICpOKTsKLQotICAvLyBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZnJlZSBvYmplY3RzIGlu
IGNhY2hlLgotICBzaXplX3QgbGVuZ3RoKCkgewotICAgIFNwaW5Mb2NrSG9sZGVyIGgoJmxvY2tf
KTsKLSAgICByZXR1cm4gY291bnRlcl87Ci0gIH0KLQotICAvLyBSZXR1cm5zIHRoZSBudW1iZXIg
b2YgZnJlZSBvYmplY3RzIGluIHRoZSB0cmFuc2ZlciBjYWNoZS4KLSAgaW50IHRjX2xlbmd0aCgp
IHsKLSAgICBTcGluTG9ja0hvbGRlciBoKCZsb2NrXyk7Ci0gICAgcmV0dXJuIHVzZWRfc2xvdHNf
ICogbnVtX29iamVjdHNfdG9fbW92ZVtzaXplX2NsYXNzX107Ci0gIH0KLQotI2lmZGVmIFdURl9D
SEFOR0VTCi0gIHRlbXBsYXRlIDxjbGFzcyBGaW5kZXIsIGNsYXNzIFJlYWRlcj4KLSAgdm9pZCBl
bnVtZXJhdGVGcmVlT2JqZWN0cyhGaW5kZXImIGZpbmRlciwgY29uc3QgUmVhZGVyJiByZWFkZXIs
IFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3QqIHJlbW90ZUNlbnRyYWxGcmVlTGlzdCkKLSAgewot
ICAgIGZvciAoU3Bhbiogc3BhbiA9ICZlbXB0eV87IHNwYW4gJiYgc3BhbiAhPSAmZW1wdHlfOyBz
cGFuID0gKHNwYW4tPm5leHQgPyByZWFkZXIoc3Bhbi0+bmV4dCkgOiAwKSkKLSAgICAgIEFTU0VS
VCghc3Bhbi0+b2JqZWN0cyk7Ci0KLSAgICBBU1NFUlQoIW5vbmVtcHR5Xy5vYmplY3RzKTsKLSAg
ICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IG5vbmVtcHR5T2Zmc2V0ID0gcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oJm5vbmVtcHR5XykgLSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIq
Pih0aGlzKTsKLQotICAgIFNwYW4qIHJlbW90ZU5vbmVtcHR5ID0gcmVpbnRlcnByZXRfY2FzdDxT
cGFuKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4ocmVtb3RlQ2VudHJhbEZyZWVMaXN0KSArIG5v
bmVtcHR5T2Zmc2V0KTsKLSAgICBTcGFuKiByZW1vdGVTcGFuID0gbm9uZW1wdHlfLm5leHQ7Ci0K
LSAgICBmb3IgKFNwYW4qIHNwYW4gPSByZWFkZXIocmVtb3RlU3Bhbik7IHNwYW4gJiYgcmVtb3Rl
U3BhbiAhPSByZW1vdGVOb25lbXB0eTsgcmVtb3RlU3BhbiA9IHNwYW4tPm5leHQsIHNwYW4gPSAo
c3Bhbi0+bmV4dCA/IHJlYWRlcihzcGFuLT5uZXh0KSA6IDApKSB7Ci0gICAgICBmb3IgKHZvaWQq
IG5leHRPYmplY3QgPSBzcGFuLT5vYmplY3RzOyBuZXh0T2JqZWN0OyBuZXh0T2JqZWN0ID0gcmVh
ZGVyLm5leHRFbnRyeUluTGlua2VkTGlzdChyZWludGVycHJldF9jYXN0PHZvaWQqKj4obmV4dE9i
amVjdCkpKQotICAgICAgICBmaW5kZXIudmlzaXQobmV4dE9iamVjdCk7Ci0gICAgfQotICB9Ci0j
ZW5kaWYKLQotIHByaXZhdGU6Ci0gIC8vIFJFUVVJUkVTOiBsb2NrXyBpcyBoZWxkCi0gIC8vIFJl
bW92ZSBvYmplY3QgZnJvbSBjYWNoZSBhbmQgcmV0dXJuLgotICAvLyBSZXR1cm4gTlVMTCBpZiBu
byBmcmVlIGVudHJpZXMgaW4gY2FjaGUuCi0gIHZvaWQqIEZldGNoRnJvbVNwYW5zKCk7Ci0KLSAg
Ly8gUkVRVUlSRVM6IGxvY2tfIGlzIGhlbGQKLSAgLy8gUmVtb3ZlIG9iamVjdCBmcm9tIGNhY2hl
IGFuZCByZXR1cm4uICBGZXRjaGVzCi0gIC8vIGZyb20gcGFnZWhlYXAgaWYgY2FjaGUgaXMgZW1w
dHkuICBPbmx5IHJldHVybnMKLSAgLy8gTlVMTCBvbiBhbGxvY2F0aW9uIGZhaWx1cmUuCi0gIHZv
aWQqIEZldGNoRnJvbVNwYW5zU2FmZSgpOwotCi0gIC8vIFJFUVVJUkVTOiBsb2NrXyBpcyBoZWxk
Ci0gIC8vIFJlbGVhc2UgYSBsaW5rZWQgbGlzdCBvZiBvYmplY3RzIHRvIHNwYW5zLgotICAvLyBN
YXkgdGVtcG9yYXJpbHkgcmVsZWFzZSBsb2NrXy4KLSAgdm9pZCBSZWxlYXNlTGlzdFRvU3BhbnMo
dm9pZCAqc3RhcnQpOwotCi0gIC8vIFJFUVVJUkVTOiBsb2NrXyBpcyBoZWxkCi0gIC8vIFJlbGVh
c2UgYW4gb2JqZWN0IHRvIHNwYW5zLgotICAvLyBNYXkgdGVtcG9yYXJpbHkgcmVsZWFzZSBsb2Nr
Xy4KLSAgQUxXQVlTX0lOTElORSB2b2lkIFJlbGVhc2VUb1NwYW5zKHZvaWQqIG9iamVjdCk7Ci0K
LSAgLy8gUkVRVUlSRVM6IGxvY2tfIGlzIGhlbGQKLSAgLy8gUG9wdWxhdGUgY2FjaGUgYnkgZmV0
Y2hpbmcgZnJvbSB0aGUgcGFnZSBoZWFwLgotICAvLyBNYXkgdGVtcG9yYXJpbHkgcmVsZWFzZSBs
b2NrXy4KLSAgQUxXQVlTX0lOTElORSB2b2lkIFBvcHVsYXRlKCk7Ci0KLSAgLy8gUkVRVUlSRVM6
IGxvY2sgaXMgaGVsZC4KLSAgLy8gVHJpZXMgdG8gbWFrZSByb29tIGZvciBhIFRDRW50cnkuICBJ
ZiB0aGUgY2FjaGUgaXMgZnVsbCBpdCB3aWxsIHRyeSB0bwotICAvLyBleHBhbmQgaXQgYXQgdGhl
IGNvc3Qgb2Ygc29tZSBvdGhlciBjYWNoZSBzaXplLiAgUmV0dXJuIGZhbHNlIGlmIHRoZXJlIGlz
Ci0gIC8vIG5vIHNwYWNlLgotICBib29sIE1ha2VDYWNoZVNwYWNlKCk7Ci0KLSAgLy8gUkVRVUlS
RVM6IGxvY2tfIGZvciBsb2NrZWRfc2l6ZV9jbGFzcyBpcyBoZWxkLgotICAvLyBQaWNrcyBhICJy
YW5kb20iIHNpemUgY2xhc3MgdG8gc3RlYWwgVENFbnRyeSBzbG90IGZyb20uICBJbiByZWFsaXR5
IGl0Ci0gIC8vIGp1c3QgaXRlcmF0ZXMgb3ZlciB0aGUgc2l6ZWNsYXNzZXMgYnV0IGRvZXMgc28g
d2l0aG91dCB0YWtpbmcgYSBsb2NrLgotICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KLSAg
Ly8gTWF5IHRlbXBvcmFyaWx5IGxvY2sgYSAicmFuZG9tIiBzaXplIGNsYXNzLgotICBzdGF0aWMg
QUxXQVlTX0lOTElORSBib29sIEV2aWN0UmFuZG9tU2l6ZUNsYXNzKHNpemVfdCBsb2NrZWRfc2l6
ZV9jbGFzcywgYm9vbCBmb3JjZSk7Ci0KLSAgLy8gUkVRVUlSRVM6IGxvY2tfIGlzICpub3QqIGhl
bGQuCi0gIC8vIFRyaWVzIHRvIHNocmluayB0aGUgQ2FjaGUuICBJZiBmb3JjZSBpcyB0cnVlIGl0
IHdpbGwgcmVsYXNlIG9iamVjdHMgdG8KLSAgLy8gc3BhbnMgaWYgaXQgYWxsb3dzIGl0IHRvIHNo
cmluayB0aGUgY2FjaGUuICBSZXR1cm4gZmFsc2UgaWYgaXQgZmFpbGVkIHRvCi0gIC8vIHNocmlu
ayB0aGUgY2FjaGUuICBEZWNyZW1lbnRzIGNhY2hlX3NpemVfIG9uIHN1Y2NlZXNzLgotICAvLyBN
YXkgdGVtcG9yYXJpbHkgdGFrZSBsb2NrXy4gIElmIGl0IHRha2VzIGxvY2tfLCB0aGUgbG9ja2Vk
X3NpemVfY2xhc3MKLSAgLy8gbG9jayBpcyByZWxlYXNlZCB0byB0aGUgdGhyZWFkIGZyb20gaG9s
ZGluZyB0d28gc2l6ZSBjbGFzcyBsb2NrcwotICAvLyBjb25jdXJyZW50bHkgd2hpY2ggY291bGQg
bGVhZCB0byBhIGRlYWRsb2NrLgotICBib29sIFNocmlua0NhY2hlKGludCBsb2NrZWRfc2l6ZV9j
bGFzcywgYm9vbCBmb3JjZSk7Ci0KLSAgLy8gVGhpcyBsb2NrIHByb3RlY3RzIGFsbCB0aGUgZGF0
YSBtZW1iZXJzLiAgY2FjaGVkX2VudHJpZXMgYW5kIGNhY2hlX3NpemVfCi0gIC8vIG1heSBiZSBs
b29rZWQgYXQgd2l0aG91dCBob2xkaW5nIHRoZSBsb2NrLgotICBTcGluTG9jayBsb2NrXzsKLQot
ICAvLyBXZSBrZWVwIGxpbmtlZCBsaXN0cyBvZiBlbXB0eSBhbmQgbm9uLWVtcHR5IHNwYW5zLgot
ICBzaXplX3QgICBzaXplX2NsYXNzXzsgICAgIC8vIE15IHNpemUgY2xhc3MKLSAgU3BhbiAgICAg
ZW1wdHlfOyAgICAgICAgICAvLyBEdW1teSBoZWFkZXIgZm9yIGxpc3Qgb2YgZW1wdHkgc3BhbnMK
LSAgU3BhbiAgICAgbm9uZW1wdHlfOyAgICAgICAvLyBEdW1teSBoZWFkZXIgZm9yIGxpc3Qgb2Yg
bm9uLWVtcHR5IHNwYW5zCi0gIHNpemVfdCAgIGNvdW50ZXJfOyAgICAgICAgLy8gTnVtYmVyIG9m
IGZyZWUgb2JqZWN0cyBpbiBjYWNoZSBlbnRyeQotCi0gIC8vIEhlcmUgd2UgcmVzZXJ2ZSBzcGFj
ZSBmb3IgVENFbnRyeSBjYWNoZSBzbG90cy4gIFNpbmNlIG9uZSBzaXplIGNsYXNzIGNhbgotICAv
LyBlbmQgdXAgZ2V0dGluZyBhbGwgdGhlIFRDRW50cmllcyBxdW90YSBpbiB0aGUgc3lzdGVtIHdl
IGp1c3QgcHJlYWxsb2NhdGUKLSAgLy8gc3VmZmljaWVudCBudW1iZXIgb2YgZW50cmllcyBoZXJl
LgotICBUQ0VudHJ5IHRjX3Nsb3RzX1trTnVtVHJhbnNmZXJFbnRyaWVzXTsKLQotICAvLyBOdW1i
ZXIgb2YgY3VycmVudGx5IHVzZWQgY2FjaGVkIGVudHJpZXMgaW4gdGNfc2xvdHNfLiAgVGhpcyB2
YXJpYWJsZSBpcwotICAvLyB1cGRhdGVkIHVuZGVyIGEgbG9jayBidXQgY2FuIGJlIHJlYWQgd2l0
aG91dCBvbmUuCi0gIGludDMyX3QgdXNlZF9zbG90c187Ci0gIC8vIFRoZSBjdXJyZW50IG51bWJl
ciBvZiBzbG90cyBmb3IgdGhpcyBzaXplIGNsYXNzLiAgVGhpcyBpcyBhbgotICAvLyBhZGFwdGl2
ZSB2YWx1ZSB0aGF0IGlzIGluY3JlYXNlZCBpZiB0aGVyZSBpcyBsb3RzIG9mIHRyYWZmaWMKLSAg
Ly8gb24gYSBnaXZlbiBzaXplIGNsYXNzLgotICBpbnQzMl90IGNhY2hlX3NpemVfOwotfTsKLQot
Ly8gUGFkIGVhY2ggQ2VudHJhbENhY2hlIG9iamVjdCB0byBtdWx0aXBsZSBvZiA2NCBieXRlcwot
Y2xhc3MgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZCA6IHB1YmxpYyBUQ01hbGxvY19D
ZW50cmFsX0ZyZWVMaXN0IHsKLSBwcml2YXRlOgotICBjaGFyIHBhZF9bKDY0IC0gKHNpemVvZihU
Q01hbGxvY19DZW50cmFsX0ZyZWVMaXN0KSAlIDY0KSkgJSA2NF07Ci19OwotCi0vLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIC8vIEdsb2JhbCB2YXJpYWJsZXMKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173984</attachid>
            <date>2012-11-13 14:07:16 -0800</date>
            <delta_ts>2012-11-13 14:15:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88344-20121113140533.patch</filename>
            <type>text/plain</type>
            <size>2157</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMzQ0ODApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTEzICBCcmVudCBGdWxnaGFtICA8YmZ1
bGdoYW1Ad2Via2l0Lm9yZz4gYW5kIEFsZXggQ2hyaXN0ZW5zZW4gPGFsZXguY2hyaXN0ZW5zZW5A
ZmxleHNpbS5jb20+CisKKyAgICAgICAgRml4IEZhc3RNYWxsb2MuY3BwIGNvbXBpbGUgZXJyb3Ig
Zm9yIE1TVkMgaW4gNjQtYml0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODgzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNU1ZDIHdpbGwgbm90IGNvbXBpbGUgYXJyYXkgZGVjbGFyYXRpb25zIG9mIHpl
cm8gc2l6ZS4gVGhlIGV4aXN0aW5nCisgICAgICAgIHBhZGRpbmcgbWF0aCBmb3IgVENNYWxsb2Nf
Q2VudHJhbF9GcmVlTGlzdFBhZGRlZCB3b3VsZCBldmFsdWF0ZQorICAgICAgICB0byB6ZXJvIG9u
IDY0LWJpdCBtYWNoaW5lcywgcHJldmVudGluZyB0aGUgY29tcGlsZSBmcm9tIGZpbmlzaGluZy4K
KworICAgICAgICAqIHd0Zi9GYXN0TWFsbG9jLmNwcDoKKyAgICAgICAgKFRDTWFsbG9jX0NlbnRy
YWxfRnJlZUxpc3RQYWRkZWRfVGVtcGxhdGUpOiBBZGQgbmV3IHRlbXBsYXRlIChhbmQKKyAgICAg
ICAgemVyby1zaXplIHNwZWNpYWxpemF0aW9uKSB0byBwcm92aWRlIHByb3BlciBiZWhhdmlvciB1
bmRlciA2NC1iaXQKKyAgICAgICAgV2luZG93cyBidWlsZC4KKwogMjAxMi0xMS0xMyAgQnJlbnQg
RnVsZ2hhbSA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4gYW5kIEFsZXggQ2hyaXN0ZW5zZW4gIDxhbGV4
LmNocmlzdGVuc2VuQGZsZXhzaW0uY29tPgogCiAgICAgICAgIEZhc3RNYWxsb2MuY3BwIG5lZWRz
IHRvIGJlIHJlb3JkZXJlZCBiZWZvcmUgcGFkZGluZyBidWcgY2FuIGJlIGZpeGVkCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0
Zi9GYXN0TWFsbG9jLmNwcAkocmV2aXNpb24gMTM0NDc5KQorKysgU291cmNlL1dURi93dGYvRmFz
dE1hbGxvYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMzcsMTEgKzEyMzcsMTkgQEAgY2xhc3Mg
VENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdCB7CiAjZW5kaWYKIAogLy8gUGFkIGVhY2ggQ2VudHJh
bENhY2hlIG9iamVjdCB0byBtdWx0aXBsZSBvZiA2NCBieXRlcwotY2xhc3MgVENNYWxsb2NfQ2Vu
dHJhbF9GcmVlTGlzdFBhZGRlZCA6IHB1YmxpYyBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0IHsK
LSBwcml2YXRlOgotICBjaGFyIHBhZF9bKDY0IC0gKHNpemVvZihUQ01hbGxvY19DZW50cmFsX0Zy
ZWVMaXN0KSAlIDY0KSkgJSA2NF07Cit0ZW1wbGF0ZSA8c2l6ZV90IFNpemVUb1BhZD4KK2NsYXNz
IFRDTWFsbG9jX0NlbnRyYWxfRnJlZUxpc3RQYWRkZWRfVGVtcGxhdGUgOiBwdWJsaWMgVENNYWxs
b2NfQ2VudHJhbF9GcmVlTGlzdCB7Citwcml2YXRlOgorICAgIGNoYXIgcGFkWzY0IC0gU2l6ZVRv
UGFkXTsKIH07CiAKKy8vIFplcm8tc2l6ZSBzcGVjaWFsaXphdGlvbiB0byBhdm9pZCBjb21waWxl
ciBlcnJvciB3aGVuIFRDTWFsbG9fQ2VudHJhbF9GcmVlTGlzdCBoYXBwZW5zCisvLyB0byBiZSBl
eGFjdGx5IDY0IGJ5dGVzLgordGVtcGxhdGUgPD4gY2xhc3MgVENNYWxsb2NfQ2VudHJhbF9GcmVl
TGlzdFBhZGRlZF9UZW1wbGF0ZTwwPiA6IHB1YmxpYyBUQ01hbGxvY19DZW50cmFsX0ZyZWVMaXN0
IHsKK307CisKK3R5cGVkZWYgVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdFBhZGRlZF9UZW1wbGF0
ZTxzaXplb2YoVENNYWxsb2NfQ2VudHJhbF9GcmVlTGlzdCkgJSA2ND4gVENNYWxsb2NfQ2VudHJh
bF9GcmVlTGlzdFBhZGRlZDsKKwogI2lmIENPTVBJTEVSKENMQU5HKSAmJiBkZWZpbmVkKF9faGFz
X3dhcm5pbmcpCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAjZW5kaWYK
</data>
<flag name="review"
          id="188857"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>