<?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>90823</bug_id>
          
          <creation_ts>2012-07-09 14:27:16 -0700</creation_ts>
          <short_desc>Ease printf debugging in WebKit.</short_desc>
          <delta_ts>2013-03-06 12:07:55 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexis Menard (darktears)">menard</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>abecsi</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>dbates</cc>
    
    <cc>fpizlo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hugo.lima</cc>
    
    <cc>jesus</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>mburtin</cc>
    
    <cc>mjs</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>rakuco</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>665175</commentid>
    <comment_count>0</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-09 14:27:16 -0700</bug_when>
    <thetext>Ease printf debugging in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665178</commentid>
    <comment_count>1</comment_count>
      <attachid>151321</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-09 14:29:00 -0700</bug_when>
    <thetext>Created attachment 151321
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665181</commentid>
    <comment_count>2</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-09 14:31:02 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=151321) [details]
&gt; Patch

Some work in progress/idea.

Obviously need to be finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665184</commentid>
    <comment_count>3</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-07-09 14:32:25 -0700</bug_when>
    <thetext>see discussion here: https://bugs.webkit.org/show_bug.cgi?id=79176</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665377</commentid>
    <comment_count>4</comment_count>
      <attachid>151321</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-09 18:22:36 -0700</bug_when>
    <thetext>Comment on attachment 151321
Patch

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

&gt; Source/WTF/wtf/DebugHelpers.h:32
&gt; +#include &quot;windows.h&quot;

&lt;windows.h&gt;?

&gt; Source/WTF/wtf/DebugHelpers.h:61
&gt; +            OutputDebugString((wchar_t*)output.utf8().data());

I think it is better to use OutputDebugStringW(wchar_t* utf16ButNoSurrogate) or converting code page CP_ACP with OutputDebugStringA(char* mbcsStringButNotUTF8)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665413</commentid>
    <comment_count>5</comment_count>
      <attachid>151321</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-09 19:10:02 -0700</bug_when>
    <thetext>Comment on attachment 151321
Patch

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

&gt;&gt; Source/WTF/wtf/DebugHelpers.h:32
&gt;&gt; +#include &quot;windows.h&quot;
&gt; 
&gt; &lt;windows.h&gt;?

Well for OutputDebugString. I don&apos;t have a Windows machine to test so I would rely on someone else to guide me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665733</commentid>
    <comment_count>6</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-10 07:09:08 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 151321 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151321&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WTF/wtf/DebugHelpers.h:32
&gt; &gt;&gt; +#include &quot;windows.h&quot;
&gt; &gt; 
&gt; &gt; &lt;windows.h&gt;?
&gt; 
&gt; Well for OutputDebugString. I don&apos;t have a Windows machine to test so I would rely on someone else to guide me.

Ah I just saw, yes of course with &lt;&gt; it&apos;s better :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665759</commentid>
    <comment_count>7</comment_count>
      <attachid>151461</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-10 07:52:04 -0700</bug_when>
    <thetext>Created attachment 151461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665776</commentid>
    <comment_count>8</comment_count>
      <attachid>151461</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-10 08:43:46 -0700</bug_when>
    <thetext>Comment on attachment 151461
Patch

Attachment 151461 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13183080</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665779</commentid>
    <comment_count>9</comment_count>
      <attachid>151465</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-10 08:46:31 -0700</bug_when>
    <thetext>Created attachment 151465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665793</commentid>
    <comment_count>10</comment_count>
      <attachid>151465</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-10 09:11:19 -0700</bug_when>
    <thetext>Comment on attachment 151465
Patch

Attachment 151465 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13053003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665814</commentid>
    <comment_count>11</comment_count>
      <attachid>151470</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-10 09:45:53 -0700</bug_when>
    <thetext>Created attachment 151470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665816</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-10 09:48:58 -0700</bug_when>
    <thetext>Attachment 151470 did not pass style-queue:

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/GNUmak...&quot; exit_code: 1
Source/WTF/wtf/DebugHelpers.h:52:  Missing spaces around &lt;  [whitespace/operators] [3]
Total errors found: 1 in 10 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>665891</commentid>
    <comment_count>13</comment_count>
      <attachid>151489</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-10 11:08:46 -0700</bug_when>
    <thetext>Created attachment 151489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666539</commentid>
    <comment_count>14</comment_count>
      <attachid>151489</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-07-11 02:09:05 -0700</bug_when>
    <thetext>Comment on attachment 151489
Patch

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

My informal comments on the patch. In general I think this is useful stuff.

&gt; Source/WTF/wtf/DebugHelpers.h:76
&gt; +    inline WTFDebug&amp; space()
&gt; +    {
&gt; +        m_stream-&gt;m_space = true;
&gt; +        m_stream-&gt;buffer.append(&apos; &apos;);
&gt; +        return *this;
&gt; +    }
&gt; +    inline WTFDebug&amp; nospace()
&gt; +    {
&gt; +        m_stream-&gt;m_space = false;
&gt; +        return *this;
&gt; +    }
&gt; +    inline WTFDebug&amp; maybeSpace()
&gt; +    {
&gt; +        if (m_stream-&gt;m_space)
&gt; +            m_stream-&gt;buffer.append(&apos; &apos;);
&gt; +        return *this;
&gt; +    }

It&apos;s not clear when is maybeSpace() supposed to be used. Could you give an example?

&gt; Source/WTF/wtf/DebugHelpers.h:145
&gt; +    class Stream : public RefCounted&lt;Stream&gt; {

Why is it refcounted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666684</commentid>
    <comment_count>15</comment_count>
      <attachid>151489</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-11 05:12:43 -0700</bug_when>
    <thetext>Comment on attachment 151489
Patch

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

&gt;&gt; Source/WTF/wtf/DebugHelpers.h:76
&gt;&gt; +    }
&gt; 
&gt; It&apos;s not clear when is maybeSpace() supposed to be used. Could you give an example?

All the overload of &lt;&lt; use it. And you have the concept with inline WTFDebug&amp; operator&lt;&lt;(WTFDebug debug, const Vector&lt;T&gt;&amp; vector). I set the debug.nospace() in that function, all overloads (depending the template value) which will be used after will have a no space. But the regular case they have a space, that&apos;s why the maybeSpace().

&gt;&gt; Source/WTF/wtf/DebugHelpers.h:145
&gt;&gt; +    class Stream : public RefCounted&lt;Stream&gt; {
&gt; 
&gt; Why is it refcounted?

When using the default copy constructor m_stream will not be deep copied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682173</commentid>
    <comment_count>16</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2012-07-30 10:44:04 -0700</bug_when>
    <thetext>Huge discussion on mailing list... on the bug report... so... Any conclusions?

Btw, I&apos;m pro-debug-header-for-printf-style-debug-and-happiness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683396</commentid>
    <comment_count>17</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-07-31 12:49:33 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Huge discussion on mailing list... on the bug report... so... Any conclusions?
&gt; 
&gt; Btw, I&apos;m pro-debug-header-for-printf-style-debug-and-happiness.

Based on the feedback of webkit-dev I will make another proposal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762872</commentid>
    <comment_count>18</comment_count>
      <attachid>173272</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-11-09 05:21:57 -0800</bug_when>
    <thetext>Created attachment 173272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762881</commentid>
    <comment_count>19</comment_count>
      <attachid>173274</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-11-09 05:28:02 -0800</bug_when>
    <thetext>Created attachment 173274
WIP that I have locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762888</commentid>
    <comment_count>20</comment_count>
      <attachid>173272</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-11-09 05:36:32 -0800</bug_when>
    <thetext>Comment on attachment 173272
Patch

I don&apos;t think the flag is needed. It&apos;s one file to build so it&apos;s fine and you just don&apos;t include it if you don&apos;t need it. If I recall correctly on the ML it was wtfPrint that people preferred. Also it seems to be a better place on WTF than WebCore. It will not work on Mac also, it seems you need to output in stderr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762930</commentid>
    <comment_count>21</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-11-09 06:06:16 -0800</bug_when>
    <thetext>When I have tried to use the &lt;&lt; operator over WTF and isolate the world of debuggers like I did in this patch on it (rather than adding in IntRect the way we use debug with it), I&apos;ve noticed that it would create a cyclic dependency over WTF and WebCore. WTF should not need to use types like WebCore&apos;s IntRect on it. Obviously this just happened because I&apos;ve went into this isolated approach, but this brought my attention to whether we should put this debug after all. I&apos;ve decided to move to WebCore instead. Is this a bad move?

It&apos;s also by purpose that I didn&apos;t put space between debugs. I&apos;ve went into a simplistic approach, the user should be free to print the way he wants to, like: debug(__PRETTY_FUNCTION__, &quot;: &quot;, rect, &quot;\n&quot;);

I&apos;ve decided to put a flag just to avoid breakage or including unnecessary functions over platforms that don&apos;t really think it is useful. But for the others that think it can be helpful, then you should pass --debug-helpers on build to enable it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762931</commentid>
    <comment_count>22</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-11-09 06:07:37 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; When I have tried to use the &lt;&lt; operator over WTF and isolate the world of debuggers like I did in this patch on it (rather than adding in IntRect the way we use debug with it), I&apos;ve noticed that it would create a cyclic dependency over WTF and WebCore. WTF should not need to use types like WebCore&apos;s IntRect on it. Obviously this just happened because I&apos;ve went into this isolated approach, but this brought my attention to whether we should put this debug after all. I&apos;ve decided to move to WebCore instead. Is this a bad move?
&gt; 
&gt; It&apos;s also by purpose that I didn&apos;t put space between debugs. I&apos;ve went into a simplistic approach, the user should be free to print the way he wants to, like: debug(__PRETTY_FUNCTION__, &quot;: &quot;, rect, &quot;\n&quot;);
&gt; 
&gt; I&apos;ve decided to put a flag just to avoid breakage or including unnecessary functions over platforms that don&apos;t really think it is useful. But for the others that think it can be helpful, then you should pass --debug-helpers on build to enable it.

s/to whether we should/to where we should</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762962</commentid>
    <comment_count>23</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-11-09 06:40:45 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; When I have tried to use the &lt;&lt; operator over WTF and isolate the world of debuggers like I did in this patch on it (rather than adding in IntRect the way we use debug with it), I&apos;ve noticed that it would create a cyclic dependency over WTF and WebCore. WTF should not need to use types like WebCore&apos;s IntRect on it. Obviously this just happened because I&apos;ve went into this isolated approach, but this brought my attention to whether we should put this debug after all. I&apos;ve decided to move to WebCore instead. Is this a bad move?
&gt; 

People didn&apos;t want &lt;&lt; so you should not worry about those.

&gt; It&apos;s also by purpose that I didn&apos;t put space between debugs. I&apos;ve went into a simplistic approach, the user should be free to print the way he wants to, like: debug(__PRETTY_FUNCTION__, &quot;: &quot;, rect, &quot;\n&quot;);
&gt; 

ok.

&gt; I&apos;ve decided to put a flag just to avoid breakage or including unnecessary functions over platforms that don&apos;t really think it is useful. But for the others that think it can be helpful, then you should pass --debug-helpers on build to enable it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838699</commentid>
    <comment_count>24</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-21 12:28:29 -0800</bug_when>
    <thetext>*** Bug 110452 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849080</commentid>
    <comment_count>25</comment_count>
      <attachid>173272</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-03-06 10:59:49 -0800</bug_when>
    <thetext>Comment on attachment 173272
Patch

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

&gt; configure.ac:543
&gt; +# check whether to enable DebugHelpers.h support
&gt; +AC_MSG_CHECKING([whether to enable DebugHelpers.h support])
&gt; +AC_ARG_ENABLE(debug_helpers,
&gt; +              AC_HELP_STRING([--enable-debug-helpers],
&gt; +                             [enable support for DebugHelpers.h [default=no]]),
&gt; +              [],[enable_debug_helpers=&quot;no&quot;])
&gt; +AC_MSG_RESULT([$enable_debug_helpers])

This change and the change to the makefile shouldn&apos;t be necessary. Please see: http://trac.webkit.org/wiki/AddingFeatures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849084</commentid>
    <comment_count>26</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-03-06 11:01:59 -0800</bug_when>
    <thetext>A feature flag for easier printf support? That seems a bit overkill, but I don&apos;t know the whole story.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849106</commentid>
    <comment_count>27</comment_count>
    <who name="Hugo Parente Lima">hugo.lima</who>
    <bug_when>2013-03-06 11:15:02 -0800</bug_when>
    <thetext>The original idea was to have only a header in WebKit source used by nobody, so when someone want to debug something he just include this header and enjoy the happiness of an ease print-style-debug :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849166</commentid>
    <comment_count>28</comment_count>
      <attachid>173272</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-06 12:07:55 -0800</bug_when>
    <thetext>Comment on attachment 173272
Patch

Have you seen wtf/DataLog and wtf/PrintStream?  Would that do what you want?

In particular you can make any object printable by just implementing WTF::printInternal(PrintStream&amp;, const YourType&amp;)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151321</attachid>
            <date>2012-07-09 14:29:00 -0700</date>
            <delta_ts>2012-07-10 07:51:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90823-20120709182833.patch</filename>
            <type>text/plain</type>
            <size>9119</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGZlNDBlYjkzNzY4NDhlYTgyZTgzYjEw
ZjllNzgyMGM1MDllMjdhMDMuLmNlNzczZjFkMTgxODliYTM4YTNiNzU5YzRmNGVmZDFjODRmY2M1
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDctMDkgIEFsZXhpcyBNZW5hcmQgIDxhbGV4
aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgRWFzZSBwcmludGYgZGVidWdnaW5n
IGluIFdlYktpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIGEgbmV3IGhlbHBlciBmdW5jdGlvbiB0byBoZWxwIGRlYnVnZ2luZy4KKwor
ICAgICAgICAqIFdURi5wcm86CisgICAgICAgICogd3RmL0RlYnVnSGVscGVycy5oOiBBZGRlZC4K
KyAgICAgICAgKFdURik6CisgICAgICAgIChXVEZEZWJ1Zyk6CisgICAgICAgIChXVEY6OldURkRl
YnVnOjpXVEZEZWJ1Zyk6CisgICAgICAgIChXVEY6OldURkRlYnVnOjpvcGVyYXRvcj0pOgorICAg
ICAgICAoV1RGOjpXVEZEZWJ1Zzo6fldURkRlYnVnKToKKyAgICAgICAgKFdURjo6V1RGRGVidWc6
OnNwYWNlKToKKyAgICAgICAgKFdURjo6V1RGRGVidWc6Om5vc3BhY2UpOgorICAgICAgICAoV1RG
OjpXVEZEZWJ1Zzo6bWF5YmVTcGFjZSk6CisgICAgICAgIChXVEY6OldURkRlYnVnOjpvcGVyYXRv
cjw8KToKKyAgICAgICAgKFN0cmVhbSk6CisgICAgICAgIChXVEY6OldURkRlYnVnOjpTdHJlYW06
OmNyZWF0ZSk6CisgICAgICAgIChXVEY6OldURkRlYnVnOjpTdHJlYW06OlN0cmVhbSk6CisgICAg
ICAgIChXVEY6Ond0Zik6CisgICAgICAgIChXVEY6Ond0ZkZhdGFsKToKKyAgICAgICAgKFdURjo6
b3BlcmF0b3I8PCk6CisKIDIwMTItMDctMDggIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21i
b3NAbm9raWEuY29tPgogCiAgICAgICAgIEludHJvZHVjZSBhIGJ1aWxkIGZsYWcgZm9yIGxvdyBx
dWFsaXR5IEpQRUcgaW1hZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAxZjhlMjRjMjlkYmI2YjJjZjE5MTQ1
OGJjNWJhY2ExMjk5MTFlYi4uOTM2OGRmMTA2OTBhYWYzNjdiODNiMjMxNDAxNDlhYmM4ZmQwZTkz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA3LTA5ICBBbGV4aXMgTWVuYXJk
ICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIEVhc2UgcHJpbnRmIGRl
YnVnZ2luZyBpbiBXZWJLaXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MDgyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvSW50UmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA3LTA5ICBNYXR0IEZhbGtlbmhhZ2VuICA8ZmFsa2Vu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgRU5BQkxFX0RJQUxPR19FTEVNRU5UIGFuZCBz
a2VsZXRvbiBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dU
Ri9XVEYucHJvCmluZGV4IDA5NjJlZjBiNTBhNTE3YmQwZTJkNDU2MmRmOGRlZmQ2ZjUxYTFmMDQu
LmJmZTAzOTI2OGMwMzZjMDQ4ZGI2NmNhZjRjOWQ5NDQyNTFjN2Q3MDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTM0LDYgKzM0LDcg
QEAgSEVBREVSUyArPSBcCiAgICAgQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuaCBcCiAg
ICAgQ3VycmVudFRpbWUuaCBcCiAgICAgRGF0ZU1hdGguaCBcCisgICAgRGVidWdIZWxwZXJzLmgg
XAogICAgIERlY2ltYWxOdW1iZXIuaCBcCiAgICAgRGVjb2Rlci5oIFwKICAgICBEYXRhTG9nLmgg
XCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0RlYnVnSGVscGVycy5oIGIvU291cmNlL1dU
Ri93dGYvRGVidWdIZWxwZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzkxZDg5MGNhNDg0YjcxZmY1ZTEwZDRl
ZWM1MWM5MjFkMmU4YTQ3NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0RlYnVn
SGVscGVycy5oCkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIERlYnVnSGVscGVyc19oCisjZGVmaW5lIERlYnVnSGVscGVyc19oCisKKyNpbmNsdWRl
IDxzdGRpby5oPgorCisjaWYgT1MoV0lORE9XUykKKyNpbmNsdWRlICJ3aW5kb3dzLmgiCisjZW5k
aWYKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBXVEYgeworCitjbGFzcyBXVEZEZWJ1ZyB7CitwdWJsaWM6CisgICAgZW51bSBEZWJ1Z01zZ1R5
cGUgeyBEZWJ1Z01zZywgRmF0YWxNc2d9OworICAgIGlubGluZSBXVEZEZWJ1ZyhEZWJ1Z01zZ1R5
cGUgdHlwZSkgeyBtX3N0cmVhbSA9IFN0cmVhbTo6Y3JlYXRlKHR5cGUpOyB9CisgICAgaW5saW5l
IFdURkRlYnVnKGNvbnN0IFdURkRlYnVnICZvdGhlcikgOiBtX3N0cmVhbShvdGhlci5tX3N0cmVh
bSkgeyB9CisgICAgaW5saW5lIFdURkRlYnVnICZvcGVyYXRvcj0oY29uc3QgV1RGRGVidWcgJm90
aGVyKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMgIT0gJm90aGVyKSB7CisgICAgICAgICAgICBX
VEZEZWJ1ZyBjb3B5KG90aGVyKTsKKyAgICAgICAgICAgIG1fc3RyZWFtID0gY29weS5tX3N0cmVh
bTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIGlubGluZSB+
V1RGRGVidWcoKQorICAgIHsKKyAgICAgICAgICAgIC8vIE91dHB1dCB0aGUgbWVzc2FnZS4KKyAg
ICAgICAgICAgIFN0cmluZyBvdXRwdXQgPSBtX3N0cmVhbS0+YnVmZmVyLnRvU3RyaW5nKCk7Cisj
aWYgT1MoV0lORE9XUykKKyAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCh3Y2hhcl90Kilv
dXRwdXQudXRmOCgpLmRhdGEoKSk7CisjZWxzZQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs
ICIlc1xuIiwgb3V0cHV0LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgZmZsdXNoKHN0ZGVy
cik7CisjZW5kaWYKKyAgICAgICAgICAgICBpZiAobV9zdHJlYW0tPm1fdHlwZSA9PSBGYXRhbE1z
ZykKKyAgICAgICAgICAgICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgICBpbmxpbmUgV1RGRGVi
dWcgJnNwYWNlKCkgeyBtX3N0cmVhbS0+bV9zcGFjZSA9IHRydWU7IG1fc3RyZWFtLT5idWZmZXIu
YXBwZW5kKCcgJyk7IHJldHVybiAqdGhpczsgfQorICAgIGlubGluZSBXVEZEZWJ1ZyAmbm9zcGFj
ZSgpIHsgbV9zdHJlYW0tPm1fc3BhY2UgPSBmYWxzZTsgcmV0dXJuICp0aGlzOyB9CisgICAgaW5s
aW5lIFdURkRlYnVnICZtYXliZVNwYWNlKCkKKyAgICB7CisgICAgICAgIGlmIChtX3N0cmVhbS0+
bV9zcGFjZSkKKyAgICAgICAgICAgIG1fc3RyZWFtLT5idWZmZXIuYXBwZW5kKCcgJyk7CisgICAg
ICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnICZvcGVyYXRvcjw8
KGNvbnN0IGNoYXIqIG1lc3NhZ2UpIHsgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpm
cm9tVVRGOChtZXNzYWdlKSk7IHJldHVybiBtYXliZVNwYWNlKCk7IH0KKyAgICBpbmxpbmUgV1RG
RGVidWcgJm9wZXJhdG9yPDwoYm9vbCBiKSB7IG1fc3RyZWFtLT5idWZmZXIuYXBwZW5kKGIgPyAi
dHJ1ZSIgOiAiZmFsc2UiKTsgcmV0dXJuIG1heWJlU3BhY2UoKTsgfQorICAgIGlubGluZSBXVEZE
ZWJ1ZyAmb3BlcmF0b3I8PChjaGFyIGMpIHsgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoYyk7IHJl
dHVybiBtYXliZVNwYWNlKCk7IH0KKyAgICBpbmxpbmUgV1RGRGVidWcgJm9wZXJhdG9yPDwoc2ln
bmVkIHNob3J0IG4pIHsgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIobikp
OyByZXR1cm4gbWF5YmVTcGFjZSgpOyB9CisgICAgaW5saW5lIFdURkRlYnVnICZvcGVyYXRvcjw8
KHVuc2lnbmVkIHNob3J0IG4pIHsgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1i
ZXIobikpOyByZXR1cm4gbWF5YmVTcGFjZSgpOyB9CisgICAgaW5saW5lIFdURkRlYnVnICZvcGVy
YXRvcjw8KHNpZ25lZCBpbnQgbikgeyBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6Om51
bWJlcihuKSk7IHJldHVybiBtYXliZVNwYWNlKCk7IH0KKyAgICBpbmxpbmUgV1RGRGVidWcgJm9w
ZXJhdG9yPDwodW5zaWduZWQgaW50IG4pIHsgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5n
OjpudW1iZXIobikpOyByZXR1cm4gbWF5YmVTcGFjZSgpOyB9CisgICAgaW5saW5lIFdURkRlYnVn
ICZvcGVyYXRvcjw8KHNpZ25lZCBsb25nIG4pIHsgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3Ry
aW5nOjpudW1iZXIobikpOyByZXR1cm4gbWF5YmVTcGFjZSgpOyB9CisgICAgaW5saW5lIFdURkRl
YnVnICZvcGVyYXRvcjw8KHVuc2lnbmVkIGxvbmcgbikgeyBtX3N0cmVhbS0+YnVmZmVyLmFwcGVu
ZChTdHJpbmc6Om51bWJlcihuKSk7IHJldHVybiBtYXliZVNwYWNlKCk7IH0KKyAgICBpbmxpbmUg
V1RGRGVidWcgJm9wZXJhdG9yPDwoZmxvYXQgbikgeyBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChT
dHJpbmc6Om51bWJlcihuKSk7IHJldHVybiBtYXliZVNwYWNlKCk7IH0KKyAgICBpbmxpbmUgV1RG
RGVidWcgJm9wZXJhdG9yPDwoZG91YmxlIG4pIHsgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3Ry
aW5nOjpudW1iZXIobikpOyByZXR1cm4gbWF5YmVTcGFjZSgpOyB9CisgICAgaW5saW5lIFdURkRl
YnVnICZvcGVyYXRvcjw8KGNvbnN0IFN0cmluZyAmIHN0cmluZykgeyBtX3N0cmVhbS0+YnVmZmVy
LmFwcGVuZCgnXCInKTsgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoc3RyaW5nKTsgbV9zdHJlYW0t
PmJ1ZmZlci5hcHBlbmQoJ1wiJyk7IHJldHVybiBtYXliZVNwYWNlKCk7IH0KKyAgICBpbmxpbmUg
V1RGRGVidWcgJm9wZXJhdG9yPDwoY29uc3Qgdm9pZCogcHRyKSB7IG1fc3RyZWFtLT5idWZmZXIu
YXBwZW5kKFN0cmluZzo6Zm9ybWF0KCIlcFxuIiwgcHRyKSk7IHJldHVybiBtYXliZVNwYWNlKCk7
IH0KK3ByaXZhdGU6CisgICAgY2xhc3MgU3RyZWFtIDogcHVibGljIFJlZkNvdW50ZWQ8U3RyZWFt
PiB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHJlYW0+IGNyZWF0
ZShEZWJ1Z01zZ1R5cGUgdHlwZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFN0cmVhbSh0eXBlKSk7
IH0KKyAgICAgICAgU3RyaW5nQnVpbGRlciBidWZmZXI7CisgICAgICAgIERlYnVnTXNnVHlwZSBt
X3R5cGU7CisgICAgICAgIGJvb2wgbV9zcGFjZTsKKyAgICBwcml2YXRlOgorICAgICAgICBTdHJl
YW0oRGVidWdNc2dUeXBlIHQpIDogbV90eXBlKHQpLCBtX3NwYWNlKHRydWUpIHsgfQorICAgIH07
CisgICAgUmVmUHRyPFN0cmVhbT4gbV9zdHJlYW07Cit9OworCitpbmxpbmUgV1RGRGVidWcgd3Rm
KCkgeyByZXR1cm4gV1RGRGVidWcoV1RGRGVidWc6OkRlYnVnTXNnKTsgfQoraW5saW5lIFdURkRl
YnVnIHd0ZkZhdGFsKCkgeyByZXR1cm4gV1RGRGVidWcoV1RGRGVidWc6OkZhdGFsTXNnKTsgfQor
Cit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2lubGluZSBXVEZEZWJ1ZyBvcGVyYXRvcjw8KFdURkRlYnVn
IGRlYnVnLCBjb25zdCBWZWN0b3I8VD4gJnZlY3RvcikKK3sKKyAgICBkZWJ1Zy5ub3NwYWNlKCkg
PDwgIlZlY3RvciAoIjsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlY3Rvci5zaXplKCk7
ICsraSkgeworICAgICAgICBpZiAoaSkKKyAgICAgICAgICAgIGRlYnVnIDw8ICIsICI7CisgICAg
ICAgIGRlYnVnIDw8IHZlY3Rvci5hdChpKTsKKyAgICB9CisgICAgZGVidWcgPDwgJyknOworICAg
IHJldHVybiBkZWJ1Zy5zcGFjZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlm
IC8vIERlYnVnSGVscGVyc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbnRSZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lu
dFJlY3QuY3BwCmluZGV4IGRmYTJmOTFmMThhNTk3M2VjOGZhOTNhZDVjNThmZDk2NWJkZDU0Yjgu
LmUzNzRjNjM4MjA2MDA3MjE0Njc2NTU3NTA3MTY5M2NmYmY0N2FjNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuY3BwCkBAIC0xNzIsNCArMTcyLDkgQEAg
SW50UmVjdCB1bmlvblJlY3QoY29uc3QgVmVjdG9yPEludFJlY3Q+JiByZWN0cykKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCitXVEY6OldURkRlYnVnICZvcGVyYXRvcjw8KFdURjo6V1RGRGVidWcg
JmRlYnVnLCBjb25zdCBJbnRSZWN0ICZyZWN0KQoreworICAgIHJldHVybiBkZWJ1Zy5ub3NwYWNl
KCkgPDwgIkludFJlY3QoIiA8PCByZWN0LngoKSA8PCAnLCcgPDwgcmVjdC55KCkgPDwgJyAnIDw8
IHJlY3Qud2lkdGgoKSA8PCAneCcgPDwgcmVjdC5oZWlnaHQoKSA8PCAiKSI7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ludFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJl
Y3QuaAppbmRleCA5YTlhN2Y3ZTVjNTkwZTVkZjc0OTkyNDlmOWI1YThjZWNjZDM5MDY3Li4zNjQz
NmVhYzE0MGUyMzJkZmM3ZWY4YTg2MDNjMGJkMmJkNjUzOWNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIElu
dFJlY3RfaAogCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKKyNpbmNsdWRlIDx3dGYvRGVidWdIZWxw
ZXJzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgVVNFKENHKSB8fCBVU0UoU0tJ
QV9PTl9NQUNfQ0hST01JVU0pCkBAIC0yNDYsNiArMjQ3LDggQEAgcHJpdmF0ZToKICAgICBJbnRT
aXplIG1fc2l6ZTsKIH07CiAKK1dURjo6V1RGRGVidWcgJm9wZXJhdG9yPDwoV1RGOjpXVEZEZWJ1
ZyAmLCBjb25zdCBJbnRSZWN0ICYpOworCiBpbmxpbmUgSW50UmVjdCBpbnRlcnNlY3Rpb24oY29u
c3QgSW50UmVjdCYgYSwgY29uc3QgSW50UmVjdCYgYikKIHsKICAgICBJbnRSZWN0IGMgPSBhOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151461</attachid>
            <date>2012-07-10 07:52:04 -0700</date>
            <delta_ts>2012-07-10 08:46:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90823-20120710115201.patch</filename>
            <type>text/plain</type>
            <size>15884</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDViOWI2ODk4ZDlmOWI4NGEwZmM5MjNi
YTVlNGUwY2Q1NjNiN2ZiMTQuLjZkNTJiYzA1MjUwODJhYzZkNzk0YTAyMjVlZWE3Y2ZmNDkwODEy
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDctMTAgIEFsZXhpcyBNZW5hcmQgIDxhbGV4
aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgRWFzZSBwcmludGYgZGVidWdnaW5n
IGluIFdlYktpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIGEgbmV3IGhlbHBlciBmdW5jdGlvbiB0byBoZWxwIGRlYnVnZ2luZyBsb2Nh
bGx5LgorICAgICAgICBEZWJ1ZyBjYWxscyBhcmUgbm90IG1lYW50IHRvIGJlIGtlcHQgaW4gV2Vi
S2l0IHNvdXJjZSBjb2RlLiBUaGlzIGlzCisgICAgICAgIGp1c3QgdG8gZWFzZSBwcmludGYgYmFz
ZWQgZGVidWdnaW5nIHdoZW4gaXQncyBuZWVkZWQuIFlvdSBjYW4gdXNlCisgICAgICAgIHRoZSBm
ZWF0dXJlIHRoaXMgd2F5IHd0ZkxvZygpIDw8ICJIZWxsbyBXb3JsZCIgPDwgYVR5cGUuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBpOgorICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAq
IFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9EZWJ1Z0hlbHBl
cnMuaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGRGVidWcpOgorICAgICAg
ICAoV1RGOjpXVEZEZWJ1Zzo6V1RGRGVidWcpOgorICAgICAgICAoV1RGOjpXVEZEZWJ1Zzo6fldU
RkRlYnVnKToKKwogMjAxMi0wNy0wNSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIElOTElORV9BUk1fRlVOQ1RJT04odGhpbmd5KSBzaG91bGQgbWFrZSB0aGluZ3kg
YmUgdGh1bWIyIGlmIHdlJ3JlIHVzaW5nIHRodW1iMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MjVjZDZhMzhm
Yzc3NmYwZTg0Zjc0ODA1ZGRmODI0MDAzMDM0YjguLmY5NTdkMGQzYjE2ZmE3NGRhM2MxMDZjYThi
NWUwNGY4MmU4ZTk5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wNy0xMCAg
QWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBF
YXNlIHByaW50ZiBkZWJ1Z2dpbmcgaW4gV2ViS2l0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdHJlYW0gb3BlcmF0b3IgZm9yIGluUmVjdCB0
byBoYXZlIHByZXR0eSBvdXRwdXQgd2hlbgorICAgICAgICB1c2luZyBpdCB3aXRoIHd0ZkxvZygp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyA6IEl0J3MgYSB0cml2aWFsIHBhdGNoIGFuZCB0aGlz
IGNvZGUgaXMgdXNlZCB3aGVuIGRlYnVnZ2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKwogMjAxMi0wNy0wOCAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZla2dhbGF0
YWdlQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDb2RlR2VuZXJhdG9ySW5z
cGVjdG9yLnB5IHNob3VsZCBub3QgZ2VuZXJhdGUgc3RhdGVtZW50cyB3aXRoIG5vIGVmZmVjdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM1ZjQ4YTZjZTU1OWEyNGNjMjBiNzA3NThkZjhiYzRh
ODRkYzllZWQuLjJiNjM2ZDgyYWQxZmQ0MjE1NmQyNDFmMzJmZGU3MDA0ODBmZTBiYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTMyLDYgKzMyLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAg
IFNvdXJjZS9XVEYvd3RmL0RhdGFMb2cuaCBcCiAgICAgU291cmNlL1dURi93dGYvRGF0ZU1hdGgu
Y3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oIFwKKyAgICBTb3VyY2UvV1RGL3d0
Zi9EZWJ1Z0hlbHBlcnMuaCBcCiAgICAgU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5jcHAg
XAogICAgIFNvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaCBcCiAgICAgU291cmNlL1dURi93
dGYvRGVjb2Rlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2Uv
V1RGL1dURi5neXBpCmluZGV4IDg2NzU4NTUwNjFkMzc0ZWZhZmZlN2Q2MmUxNTNkZWIxMWJiYWQw
MzkuLmFhY2EyYzM5OTU5MTc5MWQ4YjU1MDNmYWY2MmQyZGZhYWM2MTBkYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtMjIsNiAr
MjIsNyBAQAogICAgICAgICAgICAgJ3d0Zi9DdXJyZW50VGltZS5oJywKICAgICAgICAgICAgICd3
dGYvRGF0YUxvZy5oJywKICAgICAgICAgICAgICd3dGYvRGF0ZU1hdGguaCcsCisgICAgICAgICAg
ICAnd3RmL0RlYnVnSGVscGVycy5oJywKICAgICAgICAgICAgICd3dGYvRGVjaW1hbE51bWJlci5o
JywKICAgICAgICAgICAgICd3dGYvRGVjb2Rlci5oJywKICAgICAgICAgICAgICd3dGYvRGVxdWUu
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8K
aW5kZXggMDk2MmVmMGI1MGE1MTdiZDBlMmQ0NTYyZGY4ZGVmZDZmNTFhMWYwNC4uYmZlMDM5MjY4
YzAzNmMwNDhkYjY2Y2FmNGM5ZDk0NDI1MWM3ZDcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMzQsNiArMzQsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIFwKICAgICBDdXJyZW50
VGltZS5oIFwKICAgICBEYXRlTWF0aC5oIFwKKyAgICBEZWJ1Z0hlbHBlcnMuaCBcCiAgICAgRGVj
aW1hbE51bWJlci5oIFwKICAgICBEZWNvZGVyLmggXAogICAgIERhdGFMb2cuaCBcIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52
Y3Byb2ovV1RGLnZjcHJvagppbmRleCAyMTkwZGFlMWVmZmVhZTMzOTUzMzI3ZTNjYjczZTc3ZTZl
ZTQ2ZDU4Li40NDdjZjA2ODNjM2NhOTViNzZlY2I5NTI4Y2NkYTFhY2U2MTM5ZWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dU
Ri52Y3Byb2ovV1RGLnZjcHJvagpAQCAtNjgxLDYgKzY4MSwxMCBAQAogCQkJPgogCQk8L0ZpbGU+
CiAJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEZWJ1Z0hlbHBlcnMuaCIKKwkJCT4K
KwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGVjaW1hbE51bWJl
ci5jcHAiCiAJCQk+CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDc3MjA0NjFlMjY0NjYxZmM4ZTk0MzVlOTA4ODE2NzRiY2QxYjc2NTguLmNl
YjdmYmVlM2M4ZDY1OTg5NWYyYzU0NWZhNjE4ZGU4ZmRiMDdhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw5ICs3LDkgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLworCQkwRkQ4MUFDNTE1NEZCMjJFMDA5
ODNFNzIgLyogRmFzdEJpdFZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDNGNjExRjE1NjVG
MEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDNGNjExRDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAg
Ki87IH07CiAJCTE0M0Y2MTIwMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDNGNjExRTE1NjVGMEY5MDBE
QjUxNEEgLyogUkFNU2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTBGRDgxQUM1MTU0RkIyMkUwMDk4M0U3MiAvKiBGYXN0Qml0VmVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4MUFDNDE1
NEZCMjJFMDA5ODNFNzIgLyogRmFzdEJpdFZlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKCk7IH07IH07CiAJCTQzMzBGMzhGMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMzMEYz
OEUxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmluZy5jcHAgKi87IH07CiAJCTRGMDMyMUJDMTU2
QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5Lmgg
Ki87IH07CiAJCUE4NzZEQkQ4MTUxODE2RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3NkRCRDcxNTE4MTZFNTAw
REFEQjk1IC8qIFBsYXRmb3JtLmggKi87IH07CkBAIC0yNDIsMTIgKzI0MiwxMyBAQAogCQlBOEE0
NzQ4NjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzM3QTE1MUE4MjVCMDA0MTIzRkYg
LyogV1RGVGhyZWFkRGF0YS5jcHAgKi87IH07CiAJCUE4QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAv
KiBXVEZUaHJlYWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oICovOyB9
OwogCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYg
LyogY29uZmlnLmggKi87IH07CisJCUUxNUQwNzQ3MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hl
bHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
NUQwNzQ2MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hlbHBlcnMuaCAqLzsgfTsKIC8qIEVuZCBQ
QlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rp
b24gKi8KKwkJMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFzdEJpdFZlY3Rvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNDNGNjExRDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSQU1TaXplLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQzRjYxMUUxNTY1RjBGOTAwREI1MTRBIC8qIFJB
TVNpemUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUkFNU2l6ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkQ4MUFDNDE1NEZCMjJFMDA5ODNFNzIgLyogRmFz
dEJpdFZlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYXN0Qml0VmVj
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMzBGMzhFMTU3NDVCMDUwMEFB
RkE4RiAvKiBVUkxTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVVJMU3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYwMzIxQkIx
NTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJpdEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjQ3QjYy
MTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRo
ID0gbGliV1RGLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC00OTAs
NiArNDkxLDcgQEAKIAkJQThBNDczN0ExNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV1RGVGhyZWFkRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNG
RiAvKiBXVEZUaHJlYWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdU
RlRocmVhZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDc0OEIxNTFB
ODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE1RDA3NDYxNUFDNjk1
NzAwMzhGMjUwIC8qIERlYnVnSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZWJ1Z0hlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQ
QlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxk
UGhhc2Ugc2VjdGlvbiAqLwpAQCAtNTc4LDYgKzU4MCw3IEBACiAJCQkJQThBNDcyNzgxNTFBODI1
QTAwNDEyM0ZGIC8qIERhdGFMb2cuaCAqLywKIAkJCQlBOEE0NzI3OTE1MUE4MjVBMDA0MTIzRkYg
LyogRGF0ZU1hdGguY3BwICovLAogCQkJCUE4QTQ3MjdBMTUxQTgyNUEwMDQxMjNGRiAvKiBEYXRl
TWF0aC5oICovLAorCQkJCUUxNUQwNzQ2MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hlbHBlcnMu
aCAqLywKIAkJCQlBOEE0NzI3QjE1MUE4MjVBMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAg
Ki8sCiAJCQkJQThBNDcyN0MxNTFBODI1QTAwNDEyM0ZGIC8qIERlY2ltYWxOdW1iZXIuaCAqLywK
IAkJCQlBOEE0NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICovLApAQCAtMTA0MSw2
ICsxMDQ0LDcgQEAKIAkJCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNDNGNjEyMDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZEODFBQzUxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0
b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxNUQwNzQ3MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1
Z0hlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVi
dWdIZWxwZXJzLmggYi9Tb3VyY2UvV1RGL3d0Zi9EZWJ1Z0hlbHBlcnMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
OWJjMTZiN2Q4MDQ0NTRhYzljM2ZhNjg1YmNlMDFjZmVjOWIxMzU3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvRGVidWdIZWxwZXJzLmgKQEAgLTAsMCArMSwxNzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGVidWdIZWxwZXJzX2gKKyNkZWZpbmUgRGVi
dWdIZWxwZXJzX2gKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpZiBPUyhXSU5ET1dTKQorI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFdURkRlYnVnIHsKK3B1Ymxp
YzoKKyAgICBlbnVtIERlYnVnTXNnVHlwZSB7IERlYnVnTXNnLCBGYXRhbE1zZyB9OworICAgIGlu
bGluZSBXVEZEZWJ1ZyhEZWJ1Z01zZ1R5cGUgdHlwZSkgOiBtX3N0cmVhbShTdHJlYW06OmNyZWF0
ZSh0eXBlKSkgeyB9CisgICAgaW5saW5lIH5XVEZEZWJ1ZygpCisgICAgeworICAgICAgICAgICAg
Ly8gT3V0cHV0IHRoZSBtZXNzYWdlLgorICAgICAgICAgICAgU3RyaW5nIG91dHB1dCA9IG1fc3Ry
ZWFtLT5idWZmZXIudG9TdHJpbmcoKTsKKyNpZiBPUyhXSU5ET1dTKQorICAgICAgICAgICAgT3V0
cHV0RGVidWdTdHJpbmdXKHN0YXRpY19jYXN0PHdjaGFyX3QqPihvdXRwdXQudXRmOCgpLmRhdGEo
KSk7CisjZWxzZQorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlc1xuIiwgb3V0cHV0LnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgZmZsdXNoKHN0ZGVycik7CisjZW5kaWYKKyAgICAg
ICAgICAgICBpZiAobV9zdHJlYW0tPm1fdHlwZSA9PSBGYXRhbE1zZykKKyAgICAgICAgICAgICAg
ICAgZXhpdCgxKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBzcGFjZSgpCisgICAgewor
ICAgICAgICBtX3N0cmVhbS0+bV9zcGFjZSA9IHRydWU7CisgICAgICAgIG1fc3RyZWFtLT5idWZm
ZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgaW5saW5l
IFdURkRlYnVnJiBub3NwYWNlKCkKKyAgICB7CisgICAgICAgIG1fc3RyZWFtLT5tX3NwYWNlID0g
ZmFsc2U7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVn
JiBtYXliZVNwYWNlKCkKKyAgICB7CisgICAgICAgIGlmIChtX3N0cmVhbS0+bV9zcGFjZSkKKyAg
ICAgICAgICAgIG1fc3RyZWFtLT5idWZmZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KGNvbnN0IGNoYXIq
IG1lc3NhZ2UpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6
OmZyb21VVEY4KG1lc3NhZ2UpKTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9
CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KGJvb2wgdmFsdWUpCisgICAgeworICAg
ICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZCh2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwor
ICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcm
IG9wZXJhdG9yPDwoY2hhciBjaGFyYWN0ZXIpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVm
ZmVyLmFwcGVuZChjaGFyYWN0ZXIpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAg
IH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoc2lnbmVkIHNob3J0IHZhbHVlKQor
ICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIodmFs
dWUpKTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdU
RkRlYnVnJiBvcGVyYXRvcjw8KHVuc2lnbmVkIHNob3J0IHZhbHVlKQorICAgIHsKKyAgICAgICAg
bV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAg
cmV0dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRv
cjw8KHNpZ25lZCBpbnQgdmFsdWUpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFw
cGVuZChTdHJpbmc6Om51bWJlcih2YWx1ZSkpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgp
OworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwodW5zaWduZWQgaW50IHZh
bHVlKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1i
ZXIodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5s
aW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KHNpZ25lZCBsb25nIHZhbHVlKQorICAgIHsKKyAgICAg
ICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAg
ICAgcmV0dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVy
YXRvcjw8KHVuc2lnbmVkIGxvbmcgdmFsdWUpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVm
ZmVyLmFwcGVuZChTdHJpbmc6Om51bWJlcih2YWx1ZSkpOworICAgICAgICByZXR1cm4gbWF5YmVT
cGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoZmxvYXQgdmFs
dWUpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6Om51bWJl
cih2YWx1ZSkpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxp
bmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoZG91YmxlIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9z
dHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0
dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5h
cHBlbmQoJ1wiJyk7CisgICAgICAgIG1fc3RyZWFtLT5idWZmZXIuYXBwZW5kKHN0cmluZyk7Cisg
ICAgICAgIG1fc3RyZWFtLT5idWZmZXIuYXBwZW5kKCdcIicpOworICAgICAgICByZXR1cm4gbWF5
YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoY29uc3Qg
dm9pZCogcHRyKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5n
Ojpmb3JtYXQoIiVwIiwgcHRyKSk7CisgICAgICAgIHJldHVybiBtYXliZVNwYWNlKCk7CisgICAg
fQorcHJpdmF0ZToKKyAgICBjbGFzcyBTdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxTdHJlYW0+
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmVhbT4gY3JlYXRl
KERlYnVnTXNnVHlwZSB0eXBlKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3RyZWFtKHR5cGUpKTsg
fQorICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1ZmZlcjsKKyAgICAgICAgRGVidWdNc2dUeXBlIG1f
dHlwZTsKKyAgICAgICAgYm9vbCBtX3NwYWNlOworICAgIHByaXZhdGU6CisgICAgICAgIFN0cmVh
bShEZWJ1Z01zZ1R5cGUgdHlwZSkKKyAgICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAg
ICwgbV9zcGFjZSh0cnVlKQorICAgICAgICB7IH0KKyAgICB9OworICAgIFJlZlB0cjxTdHJlYW0+
IG1fc3RyZWFtOworfTsKKworaW5saW5lIFdURkRlYnVnIHd0ZkxvZygpIHsgcmV0dXJuIFdURkRl
YnVnKFdURkRlYnVnOjpEZWJ1Z01zZyk7IH0KK2lubGluZSBXVEZEZWJ1ZyB3dGZGYXRhbCgpIHsg
cmV0dXJuIFdURkRlYnVnKFdURkRlYnVnOjpGYXRhbE1zZyk7IH0KKwordGVtcGxhdGUgPGNsYXNz
IFQ+CitpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoV1RGRGVidWcgZGVidWcsIGNvbnN0IFZl
Y3RvcjxUPiYgdmVjdG9yKQoreworICAgIGRlYnVnLm5vc3BhY2UoKSA8PCAiVmVjdG9yICgiOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAg
IGlmIChpKQorICAgICAgICAgICAgZGVidWcgPDwgIiwgIjsKKyAgICAgICAgZGVidWcgPDwgdmVj
dG9yLmF0KGkpOworICAgIH0KKyAgICBkZWJ1ZyA8PCAnKSc7CisgICAgcmV0dXJuIGRlYnVnLnNw
YWNlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRGVidWdIZWxwZXJz
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5jcHAKaW5kZXgg
ZGZhMmY5MWYxOGE1OTczZWM4ZmE5M2FkNWM1OGZkOTY1YmRkNTRiOC4uYjM0ODQ1YzRlZDJhZjZm
NmY1ZTMxMGNhM2YyMTA0YWMwZDMxYmJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW50UmVjdC5jcHAKQEAgLTE3Miw0ICsxNzIsOSBAQCBJbnRSZWN0IHVuaW9uUmVj
dChjb25zdCBWZWN0b3I8SW50UmVjdD4mIHJlY3RzKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
K1dURjo6V1RGRGVidWcmIG9wZXJhdG9yPDwoV1RGOjpXVEZEZWJ1ZyYgZGVidWcsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIGRlYnVnLm5vc3BhY2UoKSA8PCAiSW50UmVjdCgi
IDw8IHJlY3QueCgpIDw8ICcsJyA8PCByZWN0LnkoKSA8PCAnICcgPDwgcmVjdC53aWR0aCgpIDw8
ICd4JyA8PCByZWN0LmhlaWdodCgpIDw8ICIpIjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCmluZGV4IDlhOWE3
ZjdlNWM1OTBlNWRmNzQ5OTI0OWY5YjVhOGNlY2NkMzkwNjcuLjliNjAxNzcwYjQ4YjI1MTU4MDk1
MGJmZTllMzNmNjFhNmNkODk5ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ludFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbnRSZWN0LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgSW50UmVjdF9oCiAKICNpbmNs
dWRlICJJbnRQb2ludC5oIgorI2luY2x1ZGUgPHd0Zi9EZWJ1Z0hlbHBlcnMuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKICNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBX09OX01BQ19DSFJPTUlV
TSkKQEAgLTI0Niw2ICsyNDcsOCBAQCBwcml2YXRlOgogICAgIEludFNpemUgbV9zaXplOwogfTsK
IAorV1RGOjpXVEZEZWJ1ZyYgb3BlcmF0b3I8PChXVEY6OldURkRlYnVnJiwgY29uc3QgSW50UmVj
dCYpOworCiBpbmxpbmUgSW50UmVjdCBpbnRlcnNlY3Rpb24oY29uc3QgSW50UmVjdCYgYSwgY29u
c3QgSW50UmVjdCYgYikKIHsKICAgICBJbnRSZWN0IGMgPSBhOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151465</attachid>
            <date>2012-07-10 08:46:31 -0700</date>
            <delta_ts>2012-07-10 09:45:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90823-20120710124627.patch</filename>
            <type>text/plain</type>
            <size>15860</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDViOWI2ODk4ZDlmOWI4NGEwZmM5MjNi
YTVlNGUwY2Q1NjNiN2ZiMTQuLjZkNTJiYzA1MjUwODJhYzZkNzk0YTAyMjVlZWE3Y2ZmNDkwODEy
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDctMTAgIEFsZXhpcyBNZW5hcmQgIDxhbGV4
aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgRWFzZSBwcmludGYgZGVidWdnaW5n
IGluIFdlYktpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIGEgbmV3IGhlbHBlciBmdW5jdGlvbiB0byBoZWxwIGRlYnVnZ2luZyBsb2Nh
bGx5LgorICAgICAgICBEZWJ1ZyBjYWxscyBhcmUgbm90IG1lYW50IHRvIGJlIGtlcHQgaW4gV2Vi
S2l0IHNvdXJjZSBjb2RlLiBUaGlzIGlzCisgICAgICAgIGp1c3QgdG8gZWFzZSBwcmludGYgYmFz
ZWQgZGVidWdnaW5nIHdoZW4gaXQncyBuZWVkZWQuIFlvdSBjYW4gdXNlCisgICAgICAgIHRoZSBm
ZWF0dXJlIHRoaXMgd2F5IHd0ZkxvZygpIDw8ICJIZWxsbyBXb3JsZCIgPDwgYVR5cGUuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBpOgorICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAq
IFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9EZWJ1Z0hlbHBl
cnMuaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGRGVidWcpOgorICAgICAg
ICAoV1RGOjpXVEZEZWJ1Zzo6V1RGRGVidWcpOgorICAgICAgICAoV1RGOjpXVEZEZWJ1Zzo6fldU
RkRlYnVnKToKKwogMjAxMi0wNy0wNSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIElOTElORV9BUk1fRlVOQ1RJT04odGhpbmd5KSBzaG91bGQgbWFrZSB0aGluZ3kg
YmUgdGh1bWIyIGlmIHdlJ3JlIHVzaW5nIHRodW1iMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MjVjZDZhMzhm
Yzc3NmYwZTg0Zjc0ODA1ZGRmODI0MDAzMDM0YjguLmY5NTdkMGQzYjE2ZmE3NGRhM2MxMDZjYThi
NWUwNGY4MmU4ZTk5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wNy0xMCAg
QWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBF
YXNlIHByaW50ZiBkZWJ1Z2dpbmcgaW4gV2ViS2l0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdHJlYW0gb3BlcmF0b3IgZm9yIGluUmVjdCB0
byBoYXZlIHByZXR0eSBvdXRwdXQgd2hlbgorICAgICAgICB1c2luZyBpdCB3aXRoIHd0ZkxvZygp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyA6IEl0J3MgYSB0cml2aWFsIHBhdGNoIGFuZCB0aGlz
IGNvZGUgaXMgdXNlZCB3aGVuIGRlYnVnZ2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKwogMjAxMi0wNy0wOCAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZla2dhbGF0
YWdlQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDb2RlR2VuZXJhdG9ySW5z
cGVjdG9yLnB5IHNob3VsZCBub3QgZ2VuZXJhdGUgc3RhdGVtZW50cyB3aXRoIG5vIGVmZmVjdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM1ZjQ4YTZjZTU1OWEyNGNjMjBiNzA3NThkZjhiYzRh
ODRkYzllZWQuLjJiNjM2ZDgyYWQxZmQ0MjE1NmQyNDFmMzJmZGU3MDA0ODBmZTBiYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTMyLDYgKzMyLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAg
IFNvdXJjZS9XVEYvd3RmL0RhdGFMb2cuaCBcCiAgICAgU291cmNlL1dURi93dGYvRGF0ZU1hdGgu
Y3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oIFwKKyAgICBTb3VyY2UvV1RGL3d0
Zi9EZWJ1Z0hlbHBlcnMuaCBcCiAgICAgU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5jcHAg
XAogICAgIFNvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaCBcCiAgICAgU291cmNlL1dURi93
dGYvRGVjb2Rlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2Uv
V1RGL1dURi5neXBpCmluZGV4IDg2NzU4NTUwNjFkMzc0ZWZhZmZlN2Q2MmUxNTNkZWIxMWJiYWQw
MzkuLmFhY2EyYzM5OTU5MTc5MWQ4YjU1MDNmYWY2MmQyZGZhYWM2MTBkYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtMjIsNiAr
MjIsNyBAQAogICAgICAgICAgICAgJ3d0Zi9DdXJyZW50VGltZS5oJywKICAgICAgICAgICAgICd3
dGYvRGF0YUxvZy5oJywKICAgICAgICAgICAgICd3dGYvRGF0ZU1hdGguaCcsCisgICAgICAgICAg
ICAnd3RmL0RlYnVnSGVscGVycy5oJywKICAgICAgICAgICAgICd3dGYvRGVjaW1hbE51bWJlci5o
JywKICAgICAgICAgICAgICd3dGYvRGVjb2Rlci5oJywKICAgICAgICAgICAgICd3dGYvRGVxdWUu
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8K
aW5kZXggMDk2MmVmMGI1MGE1MTdiZDBlMmQ0NTYyZGY4ZGVmZDZmNTFhMWYwNC4uYmZlMDM5MjY4
YzAzNmMwNDhkYjY2Y2FmNGM5ZDk0NDI1MWM3ZDcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMzQsNiArMzQsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIFwKICAgICBDdXJyZW50
VGltZS5oIFwKICAgICBEYXRlTWF0aC5oIFwKKyAgICBEZWJ1Z0hlbHBlcnMuaCBcCiAgICAgRGVj
aW1hbE51bWJlci5oIFwKICAgICBEZWNvZGVyLmggXAogICAgIERhdGFMb2cuaCBcIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52
Y3Byb2ovV1RGLnZjcHJvagppbmRleCAyMTkwZGFlMWVmZmVhZTMzOTUzMzI3ZTNjYjczZTc3ZTZl
ZTQ2ZDU4Li40NDdjZjA2ODNjM2NhOTViNzZlY2I5NTI4Y2NkYTFhY2U2MTM5ZWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dU
Ri52Y3Byb2ovV1RGLnZjcHJvagpAQCAtNjgxLDYgKzY4MSwxMCBAQAogCQkJPgogCQk8L0ZpbGU+
CiAJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEZWJ1Z0hlbHBlcnMuaCIKKwkJCT4K
KwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGVjaW1hbE51bWJl
ci5jcHAiCiAJCQk+CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDc3MjA0NjFlMjY0NjYxZmM4ZTk0MzVlOTA4ODE2NzRiY2QxYjc2NTguLmNl
YjdmYmVlM2M4ZDY1OTg5NWYyYzU0NWZhNjE4ZGU4ZmRiMDdhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw5ICs3LDkgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLworCQkwRkQ4MUFDNTE1NEZCMjJFMDA5
ODNFNzIgLyogRmFzdEJpdFZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDNGNjExRjE1NjVG
MEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDNGNjExRDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAg
Ki87IH07CiAJCTE0M0Y2MTIwMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDNGNjExRTE1NjVGMEY5MDBE
QjUxNEEgLyogUkFNU2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTBGRDgxQUM1MTU0RkIyMkUwMDk4M0U3MiAvKiBGYXN0Qml0VmVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4MUFDNDE1
NEZCMjJFMDA5ODNFNzIgLyogRmFzdEJpdFZlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKCk7IH07IH07CiAJCTQzMzBGMzhGMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMzMEYz
OEUxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmluZy5jcHAgKi87IH07CiAJCTRGMDMyMUJDMTU2
QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5Lmgg
Ki87IH07CiAJCUE4NzZEQkQ4MTUxODE2RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3NkRCRDcxNTE4MTZFNTAw
REFEQjk1IC8qIFBsYXRmb3JtLmggKi87IH07CkBAIC0yNDIsMTIgKzI0MiwxMyBAQAogCQlBOEE0
NzQ4NjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzM3QTE1MUE4MjVCMDA0MTIzRkYg
LyogV1RGVGhyZWFkRGF0YS5jcHAgKi87IH07CiAJCUE4QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAv
KiBXVEZUaHJlYWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oICovOyB9
OwogCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYg
LyogY29uZmlnLmggKi87IH07CisJCUUxNUQwNzQ3MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hl
bHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
NUQwNzQ2MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hlbHBlcnMuaCAqLzsgfTsKIC8qIEVuZCBQ
QlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rp
b24gKi8KKwkJMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFzdEJpdFZlY3Rvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNDNGNjExRDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSQU1TaXplLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQzRjYxMUUxNTY1RjBGOTAwREI1MTRBIC8qIFJB
TVNpemUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUkFNU2l6ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkQ4MUFDNDE1NEZCMjJFMDA5ODNFNzIgLyogRmFz
dEJpdFZlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYXN0Qml0VmVj
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMzBGMzhFMTU3NDVCMDUwMEFB
RkE4RiAvKiBVUkxTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVVJMU3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYwMzIxQkIx
NTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJpdEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjQ3QjYy
MTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRo
ID0gbGliV1RGLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC00OTAs
NiArNDkxLDcgQEAKIAkJQThBNDczN0ExNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV1RGVGhyZWFkRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNG
RiAvKiBXVEZUaHJlYWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdU
RlRocmVhZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDc0OEIxNTFB
ODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE1RDA3NDYxNUFDNjk1
NzAwMzhGMjUwIC8qIERlYnVnSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZWJ1Z0hlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQ
QlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxk
UGhhc2Ugc2VjdGlvbiAqLwpAQCAtNTc4LDYgKzU4MCw3IEBACiAJCQkJQThBNDcyNzgxNTFBODI1
QTAwNDEyM0ZGIC8qIERhdGFMb2cuaCAqLywKIAkJCQlBOEE0NzI3OTE1MUE4MjVBMDA0MTIzRkYg
LyogRGF0ZU1hdGguY3BwICovLAogCQkJCUE4QTQ3MjdBMTUxQTgyNUEwMDQxMjNGRiAvKiBEYXRl
TWF0aC5oICovLAorCQkJCUUxNUQwNzQ2MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hlbHBlcnMu
aCAqLywKIAkJCQlBOEE0NzI3QjE1MUE4MjVBMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAg
Ki8sCiAJCQkJQThBNDcyN0MxNTFBODI1QTAwNDEyM0ZGIC8qIERlY2ltYWxOdW1iZXIuaCAqLywK
IAkJCQlBOEE0NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICovLApAQCAtMTA0MSw2
ICsxMDQ0LDcgQEAKIAkJCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNDNGNjEyMDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZEODFBQzUxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0
b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxNUQwNzQ3MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1
Z0hlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVi
dWdIZWxwZXJzLmggYi9Tb3VyY2UvV1RGL3d0Zi9EZWJ1Z0hlbHBlcnMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
YmZkODUwYjI2MzMyYjI0M2M2ODlhNzYyYjA5ZTNmYTQ0ZmNmNTJiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvRGVidWdIZWxwZXJzLmgKQEAgLTAsMCArMSwxNzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGVidWdIZWxwZXJzX2gKKyNkZWZpbmUgRGVi
dWdIZWxwZXJzX2gKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpZiBPUyhXSU5ET1dTKQorI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFdURkRlYnVnIHsKK3B1Ymxp
YzoKKyAgICBlbnVtIERlYnVnTXNnVHlwZSB7IERlYnVnTXNnLCBGYXRhbE1zZyB9OworICAgIGlu
bGluZSBXVEZEZWJ1ZyhEZWJ1Z01zZ1R5cGUgdHlwZSkgOiBtX3N0cmVhbShTdHJlYW06OmNyZWF0
ZSh0eXBlKSkgeyB9CisgICAgaW5saW5lIH5XVEZEZWJ1ZygpCisgICAgeworICAgICAgICAvLyBP
dXRwdXQgdGhlIG1lc3NhZ2UuCisgICAgICAgIFN0cmluZyBvdXRwdXQgPSBtX3N0cmVhbS0+YnVm
ZmVyLnRvU3RyaW5nKCk7CisjaWYgT1MoV0lORE9XUykKKyAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmdXKHJlaW50ZXJwcmV0X2Nhc3Q8d2NoYXJfdCo+KG91dHB1dC51dGY4KCkuZGF0YSgpKSk7Cisj
ZWxzZQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBvdXRwdXQudXRmOCgpLmRhdGEo
KSk7CisgICAgICAgIGZmbHVzaChzdGRlcnIpOworI2VuZGlmCisgICAgICAgIGlmIChtX3N0cmVh
bS0+bV90eXBlID09IEZhdGFsTXNnKQorICAgICAgICAgICAgZXhpdCgxKTsKKyAgICB9CisgICAg
aW5saW5lIFdURkRlYnVnJiBzcGFjZSgpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+bV9zcGFj
ZSA9IHRydWU7CisgICAgICAgIG1fc3RyZWFtLT5idWZmZXIuYXBwZW5kKCcgJyk7CisgICAgICAg
IHJldHVybiAqdGhpczsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBub3NwYWNlKCkKKyAg
ICB7CisgICAgICAgIG1fc3RyZWFtLT5tX3NwYWNlID0gZmFsc2U7CisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBtYXliZVNwYWNlKCkKKyAgICB7Cisg
ICAgICAgIGlmIChtX3N0cmVhbS0+bV9zcGFjZSkKKyAgICAgICAgICAgIG1fc3RyZWFtLT5idWZm
ZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgaW5saW5l
IFdURkRlYnVnJiBvcGVyYXRvcjw8KGNvbnN0IGNoYXIqIG1lc3NhZ2UpCisgICAgeworICAgICAg
ICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UpKTsKKyAg
ICAgICAgcmV0dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBv
cGVyYXRvcjw8KGJvb2wgdmFsdWUpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFw
cGVuZCh2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFj
ZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoY2hhciBjaGFyYWN0
ZXIpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChjaGFyYWN0ZXIpOwor
ICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcm
IG9wZXJhdG9yPDwoc2lnbmVkIHNob3J0IHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0t
PmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG1h
eWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KHVuc2ln
bmVkIHNob3J0IHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQo
U3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3BhY2UoKTsKKyAg
ICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KHNpZ25lZCBpbnQgdmFsdWUpCisg
ICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6Om51bWJlcih2YWx1
ZSkpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RG
RGVidWcmIG9wZXJhdG9yPDwodW5zaWduZWQgaW50IHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9z
dHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0
dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8
KHNpZ25lZCBsb25nIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBl
bmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3BhY2UoKTsK
KyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KHVuc2lnbmVkIGxvbmcgdmFs
dWUpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6Om51bWJl
cih2YWx1ZSkpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxp
bmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoZmxvYXQgdmFsdWUpCisgICAgeworICAgICAgICBtX3N0
cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6Om51bWJlcih2YWx1ZSkpOworICAgICAgICByZXR1
cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwo
ZG91YmxlIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3Ry
aW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9
CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KGNvbnN0IFN0cmluZyYgc3RyaW5nKQor
ICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoJ1wiJyk7CisgICAgICAgIG1f
c3RyZWFtLT5idWZmZXIuYXBwZW5kKHN0cmluZyk7CisgICAgICAgIG1fc3RyZWFtLT5idWZmZXIu
YXBwZW5kKCdcIicpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBp
bmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoY29uc3Qgdm9pZCogcHRyKQorICAgIHsKKyAgICAg
ICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiVwIiwgcHRyKSk7Cisg
ICAgICAgIHJldHVybiBtYXliZVNwYWNlKCk7CisgICAgfQorcHJpdmF0ZToKKyAgICBjbGFzcyBT
dHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxTdHJlYW0+IHsKKyAgICBwdWJsaWM6CisgICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFN0cmVhbT4gY3JlYXRlKERlYnVnTXNnVHlwZSB0eXBlKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgU3RyZWFtKHR5cGUpKTsgfQorICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1ZmZlcjsKKyAgICAgICAgRGVidWdNc2dUeXBlIG1fdHlwZTsKKyAgICAgICAgYm9vbCBtX3Nw
YWNlOworICAgIHByaXZhdGU6CisgICAgICAgIFN0cmVhbShEZWJ1Z01zZ1R5cGUgdHlwZSkKKyAg
ICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAgICwgbV9zcGFjZSh0cnVlKQorICAgICAg
ICB7IH0KKyAgICB9OworICAgIFJlZlB0cjxTdHJlYW0+IG1fc3RyZWFtOworfTsKKworaW5saW5l
IFdURkRlYnVnIHd0ZkxvZygpIHsgcmV0dXJuIFdURkRlYnVnKFdURkRlYnVnOjpEZWJ1Z01zZyk7
IH0KK2lubGluZSBXVEZEZWJ1ZyB3dGZGYXRhbCgpIHsgcmV0dXJuIFdURkRlYnVnKFdURkRlYnVn
OjpGYXRhbE1zZyk7IH0KKwordGVtcGxhdGUgPGNsYXNzIFQ+CitpbmxpbmUgV1RGRGVidWcmIG9w
ZXJhdG9yPDwoV1RGRGVidWcgZGVidWcsIGNvbnN0IFZlY3RvcjxUPiYgdmVjdG9yKQoreworICAg
IGRlYnVnLm5vc3BhY2UoKSA8PCAiVmVjdG9yICgiOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChpKQorICAgICAgICAgICAgZGVi
dWcgPDwgIiwgIjsKKyAgICAgICAgZGVidWcgPDwgdmVjdG9yLmF0KGkpOworICAgIH0KKyAgICBk
ZWJ1ZyA8PCAnKSc7CisgICAgcmV0dXJuIGRlYnVnLnNwYWNlKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdURgorCisjZW5kaWYgLy8gRGVidWdIZWxwZXJzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5jcHAKaW5kZXggZGZhMmY5MWYxOGE1OTczZWM4ZmE5M2Fk
NWM1OGZkOTY1YmRkNTRiOC4uYjM0ODQ1YzRlZDJhZjZmNmY1ZTMxMGNhM2YyMTA0YWMwZDMxYmJj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5jcHAKQEAg
LTE3Miw0ICsxNzIsOSBAQCBJbnRSZWN0IHVuaW9uUmVjdChjb25zdCBWZWN0b3I8SW50UmVjdD4m
IHJlY3RzKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK1dURjo6V1RGRGVidWcmIG9wZXJhdG9y
PDwoV1RGOjpXVEZEZWJ1ZyYgZGVidWcsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgcmV0
dXJuIGRlYnVnLm5vc3BhY2UoKSA8PCAiSW50UmVjdCgiIDw8IHJlY3QueCgpIDw8ICcsJyA8PCBy
ZWN0LnkoKSA8PCAnICcgPDwgcmVjdC53aWR0aCgpIDw8ICd4JyA8PCByZWN0LmhlaWdodCgpIDw8
ICIpIjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW50UmVjdC5oCmluZGV4IDlhOWE3ZjdlNWM1OTBlNWRmNzQ5OTI0OWY5YjVh
OGNlY2NkMzkwNjcuLjliNjAxNzcwYjQ4YjI1MTU4MDk1MGJmZTllMzNmNjFhNmNkODk5ZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKQEAgLTI3LDYgKzI3
LDcgQEAKICNkZWZpbmUgSW50UmVjdF9oCiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgorI2luY2x1
ZGUgPHd0Zi9EZWJ1Z0hlbHBlcnMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBV
U0UoQ0cpIHx8IFVTRShTS0lBX09OX01BQ19DSFJPTUlVTSkKQEAgLTI0Niw2ICsyNDcsOCBAQCBw
cml2YXRlOgogICAgIEludFNpemUgbV9zaXplOwogfTsKIAorV1RGOjpXVEZEZWJ1ZyYgb3BlcmF0
b3I8PChXVEY6OldURkRlYnVnJiwgY29uc3QgSW50UmVjdCYpOworCiBpbmxpbmUgSW50UmVjdCBp
bnRlcnNlY3Rpb24oY29uc3QgSW50UmVjdCYgYSwgY29uc3QgSW50UmVjdCYgYikKIHsKICAgICBJ
bnRSZWN0IGMgPSBhOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151470</attachid>
            <date>2012-07-10 09:45:53 -0700</date>
            <delta_ts>2012-07-10 11:08:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90823-20120710134550.patch</filename>
            <type>text/plain</type>
            <size>15895</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDViOWI2ODk4ZDlmOWI4NGEwZmM5MjNi
YTVlNGUwY2Q1NjNiN2ZiMTQuLjZkNTJiYzA1MjUwODJhYzZkNzk0YTAyMjVlZWE3Y2ZmNDkwODEy
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDctMTAgIEFsZXhpcyBNZW5hcmQgIDxhbGV4
aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgRWFzZSBwcmludGYgZGVidWdnaW5n
IGluIFdlYktpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIGEgbmV3IGhlbHBlciBmdW5jdGlvbiB0byBoZWxwIGRlYnVnZ2luZyBsb2Nh
bGx5LgorICAgICAgICBEZWJ1ZyBjYWxscyBhcmUgbm90IG1lYW50IHRvIGJlIGtlcHQgaW4gV2Vi
S2l0IHNvdXJjZSBjb2RlLiBUaGlzIGlzCisgICAgICAgIGp1c3QgdG8gZWFzZSBwcmludGYgYmFz
ZWQgZGVidWdnaW5nIHdoZW4gaXQncyBuZWVkZWQuIFlvdSBjYW4gdXNlCisgICAgICAgIHRoZSBm
ZWF0dXJlIHRoaXMgd2F5IHd0ZkxvZygpIDw8ICJIZWxsbyBXb3JsZCIgPDwgYVR5cGUuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBpOgorICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAq
IFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9EZWJ1Z0hlbHBl
cnMuaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGRGVidWcpOgorICAgICAg
ICAoV1RGOjpXVEZEZWJ1Zzo6V1RGRGVidWcpOgorICAgICAgICAoV1RGOjpXVEZEZWJ1Zzo6fldU
RkRlYnVnKToKKwogMjAxMi0wNy0wNSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIElOTElORV9BUk1fRlVOQ1RJT04odGhpbmd5KSBzaG91bGQgbWFrZSB0aGluZ3kg
YmUgdGh1bWIyIGlmIHdlJ3JlIHVzaW5nIHRodW1iMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MjVjZDZhMzhm
Yzc3NmYwZTg0Zjc0ODA1ZGRmODI0MDAzMDM0YjguLmY5NTdkMGQzYjE2ZmE3NGRhM2MxMDZjYThi
NWUwNGY4MmU4ZTk5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wNy0xMCAg
QWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBF
YXNlIHByaW50ZiBkZWJ1Z2dpbmcgaW4gV2ViS2l0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdHJlYW0gb3BlcmF0b3IgZm9yIGluUmVjdCB0
byBoYXZlIHByZXR0eSBvdXRwdXQgd2hlbgorICAgICAgICB1c2luZyBpdCB3aXRoIHd0ZkxvZygp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyA6IEl0J3MgYSB0cml2aWFsIHBhdGNoIGFuZCB0aGlz
IGNvZGUgaXMgdXNlZCB3aGVuIGRlYnVnZ2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKwogMjAxMi0wNy0wOCAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZla2dhbGF0
YWdlQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDb2RlR2VuZXJhdG9ySW5z
cGVjdG9yLnB5IHNob3VsZCBub3QgZ2VuZXJhdGUgc3RhdGVtZW50cyB3aXRoIG5vIGVmZmVjdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM1ZjQ4YTZjZTU1OWEyNGNjMjBiNzA3NThkZjhiYzRh
ODRkYzllZWQuLjJiNjM2ZDgyYWQxZmQ0MjE1NmQyNDFmMzJmZGU3MDA0ODBmZTBiYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTMyLDYgKzMyLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAg
IFNvdXJjZS9XVEYvd3RmL0RhdGFMb2cuaCBcCiAgICAgU291cmNlL1dURi93dGYvRGF0ZU1hdGgu
Y3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oIFwKKyAgICBTb3VyY2UvV1RGL3d0
Zi9EZWJ1Z0hlbHBlcnMuaCBcCiAgICAgU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5jcHAg
XAogICAgIFNvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaCBcCiAgICAgU291cmNlL1dURi93
dGYvRGVjb2Rlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2Uv
V1RGL1dURi5neXBpCmluZGV4IDg2NzU4NTUwNjFkMzc0ZWZhZmZlN2Q2MmUxNTNkZWIxMWJiYWQw
MzkuLmFhY2EyYzM5OTU5MTc5MWQ4YjU1MDNmYWY2MmQyZGZhYWM2MTBkYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtMjIsNiAr
MjIsNyBAQAogICAgICAgICAgICAgJ3d0Zi9DdXJyZW50VGltZS5oJywKICAgICAgICAgICAgICd3
dGYvRGF0YUxvZy5oJywKICAgICAgICAgICAgICd3dGYvRGF0ZU1hdGguaCcsCisgICAgICAgICAg
ICAnd3RmL0RlYnVnSGVscGVycy5oJywKICAgICAgICAgICAgICd3dGYvRGVjaW1hbE51bWJlci5o
JywKICAgICAgICAgICAgICd3dGYvRGVjb2Rlci5oJywKICAgICAgICAgICAgICd3dGYvRGVxdWUu
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8K
aW5kZXggMDk2MmVmMGI1MGE1MTdiZDBlMmQ0NTYyZGY4ZGVmZDZmNTFhMWYwNC4uYmZlMDM5MjY4
YzAzNmMwNDhkYjY2Y2FmNGM5ZDk0NDI1MWM3ZDcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMzQsNiArMzQsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIFwKICAgICBDdXJyZW50
VGltZS5oIFwKICAgICBEYXRlTWF0aC5oIFwKKyAgICBEZWJ1Z0hlbHBlcnMuaCBcCiAgICAgRGVj
aW1hbE51bWJlci5oIFwKICAgICBEZWNvZGVyLmggXAogICAgIERhdGFMb2cuaCBcIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52
Y3Byb2ovV1RGLnZjcHJvagppbmRleCAyMTkwZGFlMWVmZmVhZTMzOTUzMzI3ZTNjYjczZTc3ZTZl
ZTQ2ZDU4Li40NDdjZjA2ODNjM2NhOTViNzZlY2I5NTI4Y2NkYTFhY2U2MTM5ZWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dU
Ri52Y3Byb2ovV1RGLnZjcHJvagpAQCAtNjgxLDYgKzY4MSwxMCBAQAogCQkJPgogCQk8L0ZpbGU+
CiAJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEZWJ1Z0hlbHBlcnMuaCIKKwkJCT4K
KwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGVjaW1hbE51bWJl
ci5jcHAiCiAJCQk+CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDc3MjA0NjFlMjY0NjYxZmM4ZTk0MzVlOTA4ODE2NzRiY2QxYjc2NTguLmNl
YjdmYmVlM2M4ZDY1OTg5NWYyYzU0NWZhNjE4ZGU4ZmRiMDdhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw5ICs3LDkgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLworCQkwRkQ4MUFDNTE1NEZCMjJFMDA5
ODNFNzIgLyogRmFzdEJpdFZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDNGNjExRjE1NjVG
MEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDNGNjExRDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAg
Ki87IH07CiAJCTE0M0Y2MTIwMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDNGNjExRTE1NjVGMEY5MDBE
QjUxNEEgLyogUkFNU2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTBGRDgxQUM1MTU0RkIyMkUwMDk4M0U3MiAvKiBGYXN0Qml0VmVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4MUFDNDE1
NEZCMjJFMDA5ODNFNzIgLyogRmFzdEJpdFZlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKCk7IH07IH07CiAJCTQzMzBGMzhGMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMzMEYz
OEUxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmluZy5jcHAgKi87IH07CiAJCTRGMDMyMUJDMTU2
QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5Lmgg
Ki87IH07CiAJCUE4NzZEQkQ4MTUxODE2RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3NkRCRDcxNTE4MTZFNTAw
REFEQjk1IC8qIFBsYXRmb3JtLmggKi87IH07CkBAIC0yNDIsMTIgKzI0MiwxMyBAQAogCQlBOEE0
NzQ4NjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzM3QTE1MUE4MjVCMDA0MTIzRkYg
LyogV1RGVGhyZWFkRGF0YS5jcHAgKi87IH07CiAJCUE4QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAv
KiBXVEZUaHJlYWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oICovOyB9
OwogCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYg
LyogY29uZmlnLmggKi87IH07CisJCUUxNUQwNzQ3MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hl
bHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
NUQwNzQ2MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hlbHBlcnMuaCAqLzsgfTsKIC8qIEVuZCBQ
QlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rp
b24gKi8KKwkJMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFzdEJpdFZlY3Rvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNDNGNjExRDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSQU1TaXplLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQzRjYxMUUxNTY1RjBGOTAwREI1MTRBIC8qIFJB
TVNpemUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUkFNU2l6ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkQ4MUFDNDE1NEZCMjJFMDA5ODNFNzIgLyogRmFz
dEJpdFZlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYXN0Qml0VmVj
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMzBGMzhFMTU3NDVCMDUwMEFB
RkE4RiAvKiBVUkxTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVVJMU3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYwMzIxQkIx
NTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJpdEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjQ3QjYy
MTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRo
ID0gbGliV1RGLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC00OTAs
NiArNDkxLDcgQEAKIAkJQThBNDczN0ExNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV1RGVGhyZWFkRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNG
RiAvKiBXVEZUaHJlYWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdU
RlRocmVhZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDc0OEIxNTFB
ODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE1RDA3NDYxNUFDNjk1
NzAwMzhGMjUwIC8qIERlYnVnSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZWJ1Z0hlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQ
QlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxk
UGhhc2Ugc2VjdGlvbiAqLwpAQCAtNTc4LDYgKzU4MCw3IEBACiAJCQkJQThBNDcyNzgxNTFBODI1
QTAwNDEyM0ZGIC8qIERhdGFMb2cuaCAqLywKIAkJCQlBOEE0NzI3OTE1MUE4MjVBMDA0MTIzRkYg
LyogRGF0ZU1hdGguY3BwICovLAogCQkJCUE4QTQ3MjdBMTUxQTgyNUEwMDQxMjNGRiAvKiBEYXRl
TWF0aC5oICovLAorCQkJCUUxNUQwNzQ2MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hlbHBlcnMu
aCAqLywKIAkJCQlBOEE0NzI3QjE1MUE4MjVBMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAg
Ki8sCiAJCQkJQThBNDcyN0MxNTFBODI1QTAwNDEyM0ZGIC8qIERlY2ltYWxOdW1iZXIuaCAqLywK
IAkJCQlBOEE0NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICovLApAQCAtMTA0MSw2
ICsxMDQ0LDcgQEAKIAkJCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNDNGNjEyMDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZEODFBQzUxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0
b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxNUQwNzQ3MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1
Z0hlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVi
dWdIZWxwZXJzLmggYi9Tb3VyY2UvV1RGL3d0Zi9EZWJ1Z0hlbHBlcnMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ODhiZWI5OGZhNzg4OWJjZDU5YzMzMzM3MmFmOTJjZmI4MjA4YzYyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvRGVidWdIZWxwZXJzLmgKQEAgLTAsMCArMSwxNzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGVidWdIZWxwZXJzX2gKKyNkZWZpbmUgRGVi
dWdIZWxwZXJzX2gKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpZiBPUyhXSU5ET1dTKQorI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFdURkRlYnVnIHsKK3B1Ymxp
YzoKKyAgICBlbnVtIERlYnVnTXNnVHlwZSB7IERlYnVnTXNnLCBGYXRhbE1zZyB9OworICAgIGlu
bGluZSBXVEZEZWJ1ZyhEZWJ1Z01zZ1R5cGUgdHlwZSkgOiBtX3N0cmVhbShTdHJlYW06OmNyZWF0
ZSh0eXBlKSkgeyB9CisgICAgaW5saW5lIH5XVEZEZWJ1ZygpCisgICAgeworICAgICAgICAvLyBP
dXRwdXQgdGhlIG1lc3NhZ2UuCisgICAgICAgIFN0cmluZyBvdXRwdXQgPSBtX3N0cmVhbS0+YnVm
ZmVyLnRvU3RyaW5nKCk7CisjaWYgT1MoV0lORE9XUykKKyAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmdXKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgCisgICAgICAgICAgICAgICAgICAgICAgICAgICB3
Y2hhcl90Kj4ob3V0cHV0LnV0ZjgoKS5kYXRhKCkpKTsKKyNlbHNlCisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiJXNcbiIsIG91dHB1dC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgZmZsdXNoKHN0
ZGVycik7CisjZW5kaWYKKyAgICAgICAgaWYgKG1fc3RyZWFtLT5tX3R5cGUgPT0gRmF0YWxNc2cp
CisgICAgICAgICAgICBleGl0KDEpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIHNwYWNl
KCkKKyAgICB7CisgICAgICAgIG1fc3RyZWFtLT5tX3NwYWNlID0gdHJ1ZTsKKyAgICAgICAgbV9z
dHJlYW0tPmJ1ZmZlci5hcHBlbmQoJyAnKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0K
KyAgICBpbmxpbmUgV1RGRGVidWcmIG5vc3BhY2UoKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0t
Pm1fc3BhY2UgPSBmYWxzZTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICBpbmxp
bmUgV1RGRGVidWcmIG1heWJlU3BhY2UoKQorICAgIHsKKyAgICAgICAgaWYgKG1fc3RyZWFtLT5t
X3NwYWNlKQorICAgICAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoJyAnKTsKKyAgICAg
ICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwo
Y29uc3QgY2hhciogbWVzc2FnZSkKKyAgICB7CisgICAgICAgIG1fc3RyZWFtLT5idWZmZXIuYXBw
ZW5kKFN0cmluZzo6ZnJvbVVURjgobWVzc2FnZSkpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFj
ZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoYm9vbCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIG1fc3RyZWFtLT5idWZmZXIuYXBwZW5kKHZhbHVlID8gInRydWUiIDog
ImZhbHNlIik7CisgICAgICAgIHJldHVybiBtYXliZVNwYWNlKCk7CisgICAgfQorICAgIGlubGlu
ZSBXVEZEZWJ1ZyYgb3BlcmF0b3I8PChjaGFyIGNoYXJhY3RlcikKKyAgICB7CisgICAgICAgIG1f
c3RyZWFtLT5idWZmZXIuYXBwZW5kKGNoYXJhY3Rlcik7CisgICAgICAgIHJldHVybiBtYXliZVNw
YWNlKCk7CisgICAgfQorICAgIGlubGluZSBXVEZEZWJ1ZyYgb3BlcmF0b3I8PChzaWduZWQgc2hv
cnQgdmFsdWUpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6
Om51bWJlcih2YWx1ZSkpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAg
ICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwodW5zaWduZWQgc2hvcnQgdmFsdWUpCisgICAg
eworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6Om51bWJlcih2YWx1ZSkp
OworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVi
dWcmIG9wZXJhdG9yPDwoc2lnbmVkIGludCB2YWx1ZSkKKyAgICB7CisgICAgICAgIG1fc3RyZWFt
LT5idWZmZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CisgICAgICAgIHJldHVybiBt
YXliZVNwYWNlKCk7CisgICAgfQorICAgIGlubGluZSBXVEZEZWJ1ZyYgb3BlcmF0b3I8PCh1bnNp
Z25lZCBpbnQgdmFsdWUpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChT
dHJpbmc6Om51bWJlcih2YWx1ZSkpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAg
IH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoc2lnbmVkIGxvbmcgdmFsdWUpCisg
ICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6Om51bWJlcih2YWx1
ZSkpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RG
RGVidWcmIG9wZXJhdG9yPDwodW5zaWduZWQgbG9uZyB2YWx1ZSkKKyAgICB7CisgICAgICAgIG1f
c3RyZWFtLT5idWZmZXIuYXBwZW5kKFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CisgICAgICAgIHJl
dHVybiBtYXliZVNwYWNlKCk7CisgICAgfQorICAgIGlubGluZSBXVEZEZWJ1ZyYgb3BlcmF0b3I8
PChmbG9hdCB2YWx1ZSkKKyAgICB7CisgICAgICAgIG1fc3RyZWFtLT5idWZmZXIuYXBwZW5kKFN0
cmluZzo6bnVtYmVyKHZhbHVlKSk7CisgICAgICAgIHJldHVybiBtYXliZVNwYWNlKCk7CisgICAg
fQorICAgIGlubGluZSBXVEZEZWJ1ZyYgb3BlcmF0b3I8PChkb3VibGUgdmFsdWUpCisgICAgewor
ICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6Om51bWJlcih2YWx1ZSkpOwor
ICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcm
IG9wZXJhdG9yPDwoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBtX3N0cmVh
bS0+YnVmZmVyLmFwcGVuZCgnXCInKTsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQo
c3RyaW5nKTsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoJ1wiJyk7CisgICAgICAg
IHJldHVybiBtYXliZVNwYWNlKCk7CisgICAgfQorICAgIGlubGluZSBXVEZEZWJ1ZyYgb3BlcmF0
b3I8PChjb25zdCB2b2lkKiBwdHIpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFw
cGVuZChTdHJpbmc6OmZvcm1hdCgiJXAiLCBwdHIpKTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3Bh
Y2UoKTsKKyAgICB9Citwcml2YXRlOgorICAgIGNsYXNzIFN0cmVhbSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFN0cmVhbT4geworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U3Ry
ZWFtPiBjcmVhdGUoRGVidWdNc2dUeXBlIHR5cGUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHJl
YW0odHlwZSkpOyB9CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVmZmVyOworICAgICAgICBEZWJ1
Z01zZ1R5cGUgbV90eXBlOworICAgICAgICBib29sIG1fc3BhY2U7CisgICAgcHJpdmF0ZToKKyAg
ICAgICAgU3RyZWFtKERlYnVnTXNnVHlwZSB0eXBlKQorICAgICAgICAgIDogbV90eXBlKHR5cGUp
CisgICAgICAgICAgLCBtX3NwYWNlKHRydWUpCisgICAgICAgIHsgfQorICAgIH07CisgICAgUmVm
UHRyPFN0cmVhbT4gbV9zdHJlYW07Cit9OworCitpbmxpbmUgV1RGRGVidWcgd3RmTG9nKCkgeyBy
ZXR1cm4gV1RGRGVidWcoV1RGRGVidWc6OkRlYnVnTXNnKTsgfQoraW5saW5lIFdURkRlYnVnIHd0
ZkZhdGFsKCkgeyByZXR1cm4gV1RGRGVidWcoV1RGRGVidWc6OkZhdGFsTXNnKTsgfQorCit0ZW1w
bGF0ZSA8Y2xhc3MgVD4KK2lubGluZSBXVEZEZWJ1ZyYgb3BlcmF0b3I8PChXVEZEZWJ1ZyBkZWJ1
ZywgY29uc3QgVmVjdG9yPFQ+JiB2ZWN0b3IpCit7CisgICAgZGVidWcubm9zcGFjZSgpIDw8ICJW
ZWN0b3IgKCI7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2ZWN0b3Iuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgaWYgKGkpCisgICAgICAgICAgICBkZWJ1ZyA8PCAiLCAiOworICAgICAgICBk
ZWJ1ZyA8PCB2ZWN0b3IuYXQoaSk7CisgICAgfQorICAgIGRlYnVnIDw8ICcpJzsKKyAgICByZXR1
cm4gZGVidWcuc3BhY2UoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBE
ZWJ1Z0hlbHBlcnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW50UmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0
LmNwcAppbmRleCBkZmEyZjkxZjE4YTU5NzNlYzhmYTkzYWQ1YzU4ZmQ5NjViZGQ1NGI4Li5iMzQ4
NDVjNGVkMmFmNmY2ZjVlMzEwY2EzZjIxMDRhYzBkMzFiYmM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmNwcApAQCAtMTcyLDQgKzE3Miw5IEBAIEludFJl
Y3QgdW5pb25SZWN0KGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMpCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAorV1RGOjpXVEZEZWJ1ZyYgb3BlcmF0b3I8PChXVEY6OldURkRlYnVnJiBkZWJ1
ZywgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1cm4gZGVidWcubm9zcGFjZSgpIDw8
ICJJbnRSZWN0KCIgPDwgcmVjdC54KCkgPDwgJywnIDw8IHJlY3QueSgpIDw8ICcgJyA8PCByZWN0
LndpZHRoKCkgPDwgJ3gnIDw8IHJlY3QuaGVpZ2h0KCkgPDwgIikiOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbnRSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgK
aW5kZXggOWE5YTdmN2U1YzU5MGU1ZGY3NDk5MjQ5ZjliNWE4Y2VjY2QzOTA2Ny4uOWI2MDE3NzBi
NDhiMjUxNTgwOTUwYmZlOWUzM2Y2MWE2Y2Q4OTllZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ludFJlY3QuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBJbnRSZWN0
X2gKIAogI2luY2x1ZGUgIkludFBvaW50LmgiCisjaW5jbHVkZSA8d3RmL0RlYnVnSGVscGVycy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogI2lmIFVTRShDRykgfHwgVVNFKFNLSUFfT05f
TUFDX0NIUk9NSVVNKQpAQCAtMjQ2LDYgKzI0Nyw4IEBAIHByaXZhdGU6CiAgICAgSW50U2l6ZSBt
X3NpemU7CiB9OwogCitXVEY6OldURkRlYnVnJiBvcGVyYXRvcjw8KFdURjo6V1RGRGVidWcmLCBj
b25zdCBJbnRSZWN0Jik7CisKIGlubGluZSBJbnRSZWN0IGludGVyc2VjdGlvbihjb25zdCBJbnRS
ZWN0JiBhLCBjb25zdCBJbnRSZWN0JiBiKQogewogICAgIEludFJlY3QgYyA9IGE7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151489</attachid>
            <date>2012-07-10 11:08:46 -0700</date>
            <delta_ts>2012-11-09 05:21:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90823-20120710150843.patch</filename>
            <type>text/plain</type>
            <size>15866</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDViOWI2ODk4ZDlmOWI4NGEwZmM5MjNi
YTVlNGUwY2Q1NjNiN2ZiMTQuLjZkNTJiYzA1MjUwODJhYzZkNzk0YTAyMjVlZWE3Y2ZmNDkwODEy
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDctMTAgIEFsZXhpcyBNZW5hcmQgIDxhbGV4
aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgRWFzZSBwcmludGYgZGVidWdnaW5n
IGluIFdlYktpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkwODIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlIGEgbmV3IGhlbHBlciBmdW5jdGlvbiB0byBoZWxwIGRlYnVnZ2luZyBsb2Nh
bGx5LgorICAgICAgICBEZWJ1ZyBjYWxscyBhcmUgbm90IG1lYW50IHRvIGJlIGtlcHQgaW4gV2Vi
S2l0IHNvdXJjZSBjb2RlLiBUaGlzIGlzCisgICAgICAgIGp1c3QgdG8gZWFzZSBwcmludGYgYmFz
ZWQgZGVidWdnaW5nIHdoZW4gaXQncyBuZWVkZWQuIFlvdSBjYW4gdXNlCisgICAgICAgIHRoZSBm
ZWF0dXJlIHRoaXMgd2F5IHd0ZkxvZygpIDw8ICJIZWxsbyBXb3JsZCIgPDwgYVR5cGUuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBpOgorICAgICAg
ICAqIFdURi5wcm86CisgICAgICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAq
IFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9EZWJ1Z0hlbHBl
cnMuaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGRGVidWcpOgorICAgICAg
ICAoV1RGOjpXVEZEZWJ1Zzo6V1RGRGVidWcpOgorICAgICAgICAoV1RGOjpXVEZEZWJ1Zzo6fldU
RkRlYnVnKToKKwogMjAxMi0wNy0wNSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIElOTElORV9BUk1fRlVOQ1RJT04odGhpbmd5KSBzaG91bGQgbWFrZSB0aGluZ3kg
YmUgdGh1bWIyIGlmIHdlJ3JlIHVzaW5nIHRodW1iMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1MjVjZDZhMzhm
Yzc3NmYwZTg0Zjc0ODA1ZGRmODI0MDAzMDM0YjguLmY5NTdkMGQzYjE2ZmE3NGRhM2MxMDZjYThi
NWUwNGY4MmU4ZTk5OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wNy0xMCAg
QWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBF
YXNlIHByaW50ZiBkZWJ1Z2dpbmcgaW4gV2ViS2l0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBzdHJlYW0gb3BlcmF0b3IgZm9yIGluUmVjdCB0
byBoYXZlIHByZXR0eSBvdXRwdXQgd2hlbgorICAgICAgICB1c2luZyBpdCB3aXRoIHd0ZkxvZygp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyA6IEl0J3MgYSB0cml2aWFsIHBhdGNoIGFuZCB0aGlz
IGNvZGUgaXMgdXNlZCB3aGVuIGRlYnVnZ2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlKToKKwogMjAxMi0wNy0wOCAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZla2dhbGF0
YWdlQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDb2RlR2VuZXJhdG9ySW5z
cGVjdG9yLnB5IHNob3VsZCBub3QgZ2VuZXJhdGUgc3RhdGVtZW50cyB3aXRoIG5vIGVmZmVjdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGM1ZjQ4YTZjZTU1OWEyNGNjMjBiNzA3NThkZjhiYzRh
ODRkYzllZWQuLjJiNjM2ZDgyYWQxZmQ0MjE1NmQyNDFmMzJmZGU3MDA0ODBmZTBiYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTMyLDYgKzMyLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAg
IFNvdXJjZS9XVEYvd3RmL0RhdGFMb2cuaCBcCiAgICAgU291cmNlL1dURi93dGYvRGF0ZU1hdGgu
Y3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oIFwKKyAgICBTb3VyY2UvV1RGL3d0
Zi9EZWJ1Z0hlbHBlcnMuaCBcCiAgICAgU291cmNlL1dURi93dGYvRGVjaW1hbE51bWJlci5jcHAg
XAogICAgIFNvdXJjZS9XVEYvd3RmL0RlY2ltYWxOdW1iZXIuaCBcCiAgICAgU291cmNlL1dURi93
dGYvRGVjb2Rlci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2Uv
V1RGL1dURi5neXBpCmluZGV4IDg2NzU4NTUwNjFkMzc0ZWZhZmZlN2Q2MmUxNTNkZWIxMWJiYWQw
MzkuLmFhY2EyYzM5OTU5MTc5MWQ4YjU1MDNmYWY2MmQyZGZhYWM2MTBkYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtMjIsNiAr
MjIsNyBAQAogICAgICAgICAgICAgJ3d0Zi9DdXJyZW50VGltZS5oJywKICAgICAgICAgICAgICd3
dGYvRGF0YUxvZy5oJywKICAgICAgICAgICAgICd3dGYvRGF0ZU1hdGguaCcsCisgICAgICAgICAg
ICAnd3RmL0RlYnVnSGVscGVycy5oJywKICAgICAgICAgICAgICd3dGYvRGVjaW1hbE51bWJlci5o
JywKICAgICAgICAgICAgICd3dGYvRGVjb2Rlci5oJywKICAgICAgICAgICAgICd3dGYvRGVxdWUu
aCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8K
aW5kZXggMDk2MmVmMGI1MGE1MTdiZDBlMmQ0NTYyZGY4ZGVmZDZmNTFhMWYwNC4uYmZlMDM5MjY4
YzAzNmMwNDhkYjY2Y2FmNGM5ZDk0NDI1MWM3ZDcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYucHJvCisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMzQsNiArMzQsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oIFwKICAgICBDdXJyZW50
VGltZS5oIFwKICAgICBEYXRlTWF0aC5oIFwKKyAgICBEZWJ1Z0hlbHBlcnMuaCBcCiAgICAgRGVj
aW1hbE51bWJlci5oIFwKICAgICBEZWNvZGVyLmggXAogICAgIERhdGFMb2cuaCBcIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52
Y3Byb2ovV1RGLnZjcHJvagppbmRleCAyMTkwZGFlMWVmZmVhZTMzOTUzMzI3ZTNjYjczZTc3ZTZl
ZTQ2ZDU4Li40NDdjZjA2ODNjM2NhOTViNzZlY2I5NTI4Y2NkYTFhY2U2MTM5ZWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dU
Ri52Y3Byb2ovV1RGLnZjcHJvagpAQCAtNjgxLDYgKzY4MSwxMCBAQAogCQkJPgogCQk8L0ZpbGU+
CiAJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEZWJ1Z0hlbHBlcnMuaCIKKwkJCT4K
KwkJPC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGVjaW1hbE51bWJl
ci5jcHAiCiAJCQk+CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDc3MjA0NjFlMjY0NjYxZmM4ZTk0MzVlOTA4ODE2NzRiY2QxYjc2NTguLmNl
YjdmYmVlM2M4ZDY1OTg5NWYyYzU0NWZhNjE4ZGU4ZmRiMDdhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNyw5ICs3LDkgQEAKIAlvYmplY3RzID0gewog
CiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLworCQkwRkQ4MUFDNTE1NEZCMjJFMDA5
ODNFNzIgLyogRmFzdEJpdFZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkxNDNGNjExRjE1NjVG
MEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDNGNjExRDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5jcHAg
Ki87IH07CiAJCTE0M0Y2MTIwMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDNGNjExRTE1NjVGMEY5MDBE
QjUxNEEgLyogUkFNU2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTBGRDgxQUM1MTU0RkIyMkUwMDk4M0U3MiAvKiBGYXN0Qml0VmVjdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4MUFDNDE1
NEZCMjJFMDA5ODNFNzIgLyogRmFzdEJpdFZlY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKCk7IH07IH07CiAJCTQzMzBGMzhGMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJpbmcu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDMzMEYz
OEUxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmluZy5jcHAgKi87IH07CiAJCTRGMDMyMUJDMTU2
QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5Lmgg
Ki87IH07CiAJCUE4NzZEQkQ4MTUxODE2RTUwMERBREI5NSAvKiBQbGF0Zm9ybS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3NkRCRDcxNTE4MTZFNTAw
REFEQjk1IC8qIFBsYXRmb3JtLmggKi87IH07CkBAIC0yNDIsMTIgKzI0MiwxMyBAQAogCQlBOEE0
NzQ4NjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzM3QTE1MUE4MjVCMDA0MTIzRkYg
LyogV1RGVGhyZWFkRGF0YS5jcHAgKi87IH07CiAJCUE4QTQ3NDg3MTUxQTgyNUIwMDQxMjNGRiAv
KiBXVEZUaHJlYWREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEE0NzM3QjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oICovOyB9
OwogCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzQ4QjE1MUE4MjY0MDA0MTIzRkYg
LyogY29uZmlnLmggKi87IH07CisJCUUxNUQwNzQ3MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hl
bHBlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
NUQwNzQ2MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hlbHBlcnMuaCAqLzsgfTsKIC8qIEVuZCBQ
QlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rp
b24gKi8KKwkJMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFzdEJpdFZlY3Rvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNDNGNjExRDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSQU1TaXplLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQzRjYxMUUxNTY1RjBGOTAwREI1MTRBIC8qIFJB
TVNpemUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUkFNU2l6ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkQ4MUFDNDE1NEZCMjJFMDA5ODNFNzIgLyogRmFz
dEJpdFZlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYXN0Qml0VmVj
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMzBGMzhFMTU3NDVCMDUwMEFB
RkE4RiAvKiBVUkxTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVVJMU3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEYwMzIxQkIx
NTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJpdEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjQ3QjYy
MTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRo
ID0gbGliV1RGLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC00OTAs
NiArNDkxLDcgQEAKIAkJQThBNDczN0ExNTFBODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV1RGVGhyZWFkRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MzdCMTUxQTgyNUIwMDQxMjNG
RiAvKiBXVEZUaHJlYWREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdU
RlRocmVhZERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDc0OEIxNTFB
ODI2NDAwNDEyM0ZGIC8qIGNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBjb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE1RDA3NDYxNUFDNjk1
NzAwMzhGMjUwIC8qIERlYnVnSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEZWJ1Z0hlbHBlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQ
QlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxk
UGhhc2Ugc2VjdGlvbiAqLwpAQCAtNTc4LDYgKzU4MCw3IEBACiAJCQkJQThBNDcyNzgxNTFBODI1
QTAwNDEyM0ZGIC8qIERhdGFMb2cuaCAqLywKIAkJCQlBOEE0NzI3OTE1MUE4MjVBMDA0MTIzRkYg
LyogRGF0ZU1hdGguY3BwICovLAogCQkJCUE4QTQ3MjdBMTUxQTgyNUEwMDQxMjNGRiAvKiBEYXRl
TWF0aC5oICovLAorCQkJCUUxNUQwNzQ2MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1Z0hlbHBlcnMu
aCAqLywKIAkJCQlBOEE0NzI3QjE1MUE4MjVBMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAg
Ki8sCiAJCQkJQThBNDcyN0MxNTFBODI1QTAwNDEyM0ZGIC8qIERlY2ltYWxOdW1iZXIuaCAqLywK
IAkJCQlBOEE0NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICovLApAQCAtMTA0MSw2
ICsxMDQ0LDcgQEAKIAkJCQlBOEE0NzQ4QzE1MUE4MjY0MDA0MTIzRkYgLyogY29uZmlnLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxNDNGNjEyMDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZEODFBQzUxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0
b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxNUQwNzQ3MTVBQzY5NTcwMDM4RjI1MCAvKiBEZWJ1
Z0hlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGVi
dWdIZWxwZXJzLmggYi9Tb3VyY2UvV1RGL3d0Zi9EZWJ1Z0hlbHBlcnMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
YTA1M2VlZTA1MmFjYjY0N2Y1ODllM2VkNTM3NDE4MWNiM2QzZWI3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvRGVidWdIZWxwZXJzLmgKQEAgLTAsMCArMSwxNzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGVidWdIZWxwZXJzX2gKKyNkZWZpbmUgRGVi
dWdIZWxwZXJzX2gKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpZiBPUyhXSU5ET1dTKQorI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KKyNlbmRpZgorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIFdURkRlYnVnIHsKK3B1Ymxp
YzoKKyAgICBlbnVtIERlYnVnTXNnVHlwZSB7IERlYnVnTXNnLCBGYXRhbE1zZyB9OworICAgIGlu
bGluZSBXVEZEZWJ1ZyhEZWJ1Z01zZ1R5cGUgdHlwZSkgOiBtX3N0cmVhbShTdHJlYW06OmNyZWF0
ZSh0eXBlKSkgeyB9CisgICAgaW5saW5lIH5XVEZEZWJ1ZygpCisgICAgeworICAgICAgICAvLyBP
dXRwdXQgdGhlIG1lc3NhZ2UuCisgICAgICAgIFN0cmluZyBvdXRwdXQgPSBtX3N0cmVhbS0+YnVm
ZmVyLnRvU3RyaW5nKCk7CisjaWYgT1MoV0lORE9XUykKKyAgICAgICAgT3V0cHV0RGVidWdTdHJp
bmdXKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgd2NoYXJfdCo+KG91dHB1dC51dGY4KCkuZGF0YSgp
KSk7CisjZWxzZQorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzXG4iLCBvdXRwdXQudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgIGZmbHVzaChzdGRlcnIpOworI2VuZGlmCisgICAgICAgIGlmICht
X3N0cmVhbS0+bV90eXBlID09IEZhdGFsTXNnKQorICAgICAgICAgICAgZXhpdCgxKTsKKyAgICB9
CisgICAgaW5saW5lIFdURkRlYnVnJiBzcGFjZSgpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+
bV9zcGFjZSA9IHRydWU7CisgICAgICAgIG1fc3RyZWFtLT5idWZmZXIuYXBwZW5kKCcgJyk7Cisg
ICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBub3NwYWNl
KCkKKyAgICB7CisgICAgICAgIG1fc3RyZWFtLT5tX3NwYWNlID0gZmFsc2U7CisgICAgICAgIHJl
dHVybiAqdGhpczsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBtYXliZVNwYWNlKCkKKyAg
ICB7CisgICAgICAgIGlmIChtX3N0cmVhbS0+bV9zcGFjZSkKKyAgICAgICAgICAgIG1fc3RyZWFt
LT5idWZmZXIuYXBwZW5kKCcgJyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAg
aW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KGNvbnN0IGNoYXIqIG1lc3NhZ2UpCisgICAgewor
ICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2Up
KTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRl
YnVnJiBvcGVyYXRvcjw8KGJvb2wgdmFsdWUpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVm
ZmVyLmFwcGVuZCh2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOworICAgICAgICByZXR1cm4gbWF5
YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoY2hhciBj
aGFyYWN0ZXIpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChjaGFyYWN0
ZXIpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RG
RGVidWcmIG9wZXJhdG9yPDwoc2lnbmVkIHNob3J0IHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9z
dHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0
dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8
KHVuc2lnbmVkIHNob3J0IHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5h
cHBlbmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3BhY2Uo
KTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KHNpZ25lZCBpbnQgdmFs
dWUpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6Om51bWJl
cih2YWx1ZSkpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxp
bmUgV1RGRGVidWcmIG9wZXJhdG9yPDwodW5zaWduZWQgaW50IHZhbHVlKQorICAgIHsKKyAgICAg
ICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAg
ICAgcmV0dXJuIG1heWJlU3BhY2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVy
YXRvcjw8KHNpZ25lZCBsb25nIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZl
ci5hcHBlbmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3Bh
Y2UoKTsKKyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KHVuc2lnbmVkIGxv
bmcgdmFsdWUpCisgICAgeworICAgICAgICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6
Om51bWJlcih2YWx1ZSkpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAg
ICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoZmxvYXQgdmFsdWUpCisgICAgeworICAgICAg
ICBtX3N0cmVhbS0+YnVmZmVyLmFwcGVuZChTdHJpbmc6Om51bWJlcih2YWx1ZSkpOworICAgICAg
ICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0KKyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJh
dG9yPDwoZG91YmxlIHZhbHVlKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBl
bmQoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIG1heWJlU3BhY2UoKTsK
KyAgICB9CisgICAgaW5saW5lIFdURkRlYnVnJiBvcGVyYXRvcjw8KGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQorICAgIHsKKyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoJ1wiJyk7CisgICAg
ICAgIG1fc3RyZWFtLT5idWZmZXIuYXBwZW5kKHN0cmluZyk7CisgICAgICAgIG1fc3RyZWFtLT5i
dWZmZXIuYXBwZW5kKCdcIicpOworICAgICAgICByZXR1cm4gbWF5YmVTcGFjZSgpOworICAgIH0K
KyAgICBpbmxpbmUgV1RGRGVidWcmIG9wZXJhdG9yPDwoY29uc3Qgdm9pZCogcHRyKQorICAgIHsK
KyAgICAgICAgbV9zdHJlYW0tPmJ1ZmZlci5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiVwIiwgcHRy
KSk7CisgICAgICAgIHJldHVybiBtYXliZVNwYWNlKCk7CisgICAgfQorcHJpdmF0ZToKKyAgICBj
bGFzcyBTdHJlYW0gOiBwdWJsaWMgUmVmQ291bnRlZDxTdHJlYW0+IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0cmVhbT4gY3JlYXRlKERlYnVnTXNnVHlwZSB0eXBl
KSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3RyZWFtKHR5cGUpKTsgfQorICAgICAgICBTdHJpbmdC
dWlsZGVyIGJ1ZmZlcjsKKyAgICAgICAgRGVidWdNc2dUeXBlIG1fdHlwZTsKKyAgICAgICAgYm9v
bCBtX3NwYWNlOworICAgIHByaXZhdGU6CisgICAgICAgIFN0cmVhbShEZWJ1Z01zZ1R5cGUgdHlw
ZSkKKyAgICAgICAgICA6IG1fdHlwZSh0eXBlKQorICAgICAgICAgICwgbV9zcGFjZSh0cnVlKQor
ICAgICAgICB7IH0KKyAgICB9OworICAgIFJlZlB0cjxTdHJlYW0+IG1fc3RyZWFtOworfTsKKwor
aW5saW5lIFdURkRlYnVnIHd0ZkxvZygpIHsgcmV0dXJuIFdURkRlYnVnKFdURkRlYnVnOjpEZWJ1
Z01zZyk7IH0KK2lubGluZSBXVEZEZWJ1ZyB3dGZGYXRhbCgpIHsgcmV0dXJuIFdURkRlYnVnKFdU
RkRlYnVnOjpGYXRhbE1zZyk7IH0KKwordGVtcGxhdGUgPGNsYXNzIFQ+CitpbmxpbmUgV1RGRGVi
dWcmIG9wZXJhdG9yPDwoV1RGRGVidWcgZGVidWcsIGNvbnN0IFZlY3RvcjxUPiYgdmVjdG9yKQor
eworICAgIGRlYnVnLm5vc3BhY2UoKSA8PCAiVmVjdG9yICgiOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChpKQorICAgICAgICAg
ICAgZGVidWcgPDwgIiwgIjsKKyAgICAgICAgZGVidWcgPDwgdmVjdG9yLmF0KGkpOworICAgIH0K
KyAgICBkZWJ1ZyA8PCAnKSc7CisgICAgcmV0dXJuIGRlYnVnLnNwYWNlKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRGVidWdIZWxwZXJzX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5jcHAKaW5kZXggZGZhMmY5MWYxOGE1OTczZWM4
ZmE5M2FkNWM1OGZkOTY1YmRkNTRiOC4uYjM0ODQ1YzRlZDJhZjZmNmY1ZTMxMGNhM2YyMTA0YWMw
ZDMxYmJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50
UmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5j
cHAKQEAgLTE3Miw0ICsxNzIsOSBAQCBJbnRSZWN0IHVuaW9uUmVjdChjb25zdCBWZWN0b3I8SW50
UmVjdD4mIHJlY3RzKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK1dURjo6V1RGRGVidWcmIG9w
ZXJhdG9yPDwoV1RGOjpXVEZEZWJ1ZyYgZGVidWcsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7Cisg
ICAgcmV0dXJuIGRlYnVnLm5vc3BhY2UoKSA8PCAiSW50UmVjdCgiIDw8IHJlY3QueCgpIDw8ICcs
JyA8PCByZWN0LnkoKSA8PCAnICcgPDwgcmVjdC53aWR0aCgpIDw8ICd4JyA8PCByZWN0LmhlaWdo
dCgpIDw8ICIpIjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCmluZGV4IDlhOWE3ZjdlNWM1OTBlNWRmNzQ5OTI0
OWY5YjVhOGNlY2NkMzkwNjcuLjliNjAxNzcwYjQ4YjI1MTU4MDk1MGJmZTllMzNmNjFhNmNkODk5
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKQEAgLTI3
LDYgKzI3LDcgQEAKICNkZWZpbmUgSW50UmVjdF9oCiAKICNpbmNsdWRlICJJbnRQb2ludC5oIgor
I2luY2x1ZGUgPHd0Zi9EZWJ1Z0hlbHBlcnMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
ICNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBX09OX01BQ19DSFJPTUlVTSkKQEAgLTI0Niw2ICsyNDcs
OCBAQCBwcml2YXRlOgogICAgIEludFNpemUgbV9zaXplOwogfTsKIAorV1RGOjpXVEZEZWJ1ZyYg
b3BlcmF0b3I8PChXVEY6OldURkRlYnVnJiwgY29uc3QgSW50UmVjdCYpOworCiBpbmxpbmUgSW50
UmVjdCBpbnRlcnNlY3Rpb24oY29uc3QgSW50UmVjdCYgYSwgY29uc3QgSW50UmVjdCYgYikKIHsK
ICAgICBJbnRSZWN0IGMgPSBhOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173272</attachid>
            <date>2012-11-09 05:21:57 -0800</date>
            <delta_ts>2013-03-06 12:07:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90823-20121109102008.patch</filename>
            <type>text/plain</type>
            <size>19191</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU1NWFjNTFmYjEzOGEy
M2M3NjUwM2VmNTgzMDNjOTQwYWQ1NGUzNy4uNjBiMzg1ZmU2ODJiYTFkYjdmYzBkMDY3YmFhNjRm
OWVjYmY4YTcxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTA5ICBSYWZh
ZWwgQnJhbmRhbyAgPHJhZmFlbC5sb2JvQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgRWFzZSBw
cmludGYgZGVidWdnaW5nIGluIFdlYktpdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkwODIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkZWQgV2ViQ29yZTo6ZGVidWcoKSBmb3IgcHJpbnRpbmcgcHVy
cG9zZXMuCisgICAgICAgIFRoaXMgY29kZSBpcyBwcm90ZWN0ZWQgYnkgRU5BQkxFKERFQlVHX0hF
TFBFUlMpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQsIHRoaXMgaXMganVzdCBmb3Ig
ZGVidWdnaW5nLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFr
ZWZpbGUuZmVhdHVyZXMuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0
Zm9ybS9EZWJ1Z0hlbHBlcnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6ZGVidWcpOgorICAgICAgICAqIHBsYXRmb3JtL0RlYnVnSGVscGVycy5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6ZGVidWcpOgorCiAy
MDEyLTExLTA4ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogQWRkIG9wdGlvbiB0byBkaXNhYmxlIHJ1bGVycyAoRWxlbWVu
dHMgcGFuZWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGU2NmJmMDU0N2NiODA4ODVlYjc0NjIw
MWIwY2VkOWZiNDczN2FlMTEuLmZlZWZjYWU4OTJkNDdmYzBlOGExMDgzNDA0NmNhZTNkMTViNDI5
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yNDIsNiArMjQyLDE1IEBAIGVsc2UKIGZlYXR1
cmVfZGVmaW5lc19vdmVycmlkZXMgKz0gRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTj0wCiBl
bmRpZiAjIEVORCBFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OCiAKKyMgLS0tCisjIERlYnVn
SGVscGVycy5oIFN1cHBvcnQKKyMgLS0tCitpZiBFTkFCTEVfREVCVUdfSEVMUEVSUworZmVhdHVy
ZV9kZWZpbmVzX292ZXJyaWRlcyArPSBFTkFCTEVfREVCVUdfSEVMUEVSUz0xCitlbHNlCitmZWF0
dXJlX2RlZmluZXNfb3ZlcnJpZGVzICs9IEVOQUJMRV9ERUJVR19IRUxQRVJTPTAKK2VuZGlmICAj
IEVORCBFTkFCTEVfREVCVUdfSEVMUEVSUworCiAjIC0tLS0KICMgU2hhZGVycwogIyAtLS0tCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5mZWF0dXJlcy5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmZlYXR1cmVzLmFtCmluZGV4IDBlYjEzNzc2ODBlNzZlZTUw
NGJlYmE1ODFhZWUzNDljNjc0ODA3NjQuLjMxNjNhMzViOGUzYzExMTMxZDlkYzU4NWRjNTE4ZGNl
MTY4OTY3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmZlYXR1cmVz
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmZlYXR1cmVzLmFtCkBAIC0yNCw2
ICsyNCw3IEBAIGZlYXR1cmVfZGVmaW5lc19kZWZhdWx0cyArPSBcCiAJRU5BQkxFX0RBU0hCT0FS
RF9TVVBQT1JUPTAgXAogCUVOQUJMRV9EQVRBTElTVF9FTEVNRU5UPTAgXAogCUVOQUJMRV9EQVRB
X1RSQU5TRkVSX0lURU1TPTAgXAorCUVOQUJMRV9ERUJVR19IRUxQRVJTPTAgXAogCUVOQUJMRV9E
RVRBSUxTX0VMRU1FTlQ9MSBcCiAJRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTj0wIFwKIAlFTkFC
TEVfRElBTE9HX0VMRU1FTlQ9MCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4
ZTQ4OTlhMTM0ODg2Mjk2NzYxMTc1MmMwYzg5Y2FkZjAzZWFhZGNhLi4xYTZkNTk1OTEyY2NkZjZi
NzVmZmFjNDRmZTZhZDEzZWFlYzI5ZmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTQyNTYsNiArNDI1Niw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRGF0ZUNvbXBvbmVudHMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RGF0ZVRpbWVDaG9vc2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGVUaW1lQ2hv
b3NlckNsaWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EZWJ1Z0hlbHBlcnMuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVjaW1hbC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RlY2ltYWwuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEu
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCmluZGV4IDlhMjljZWY1YmExOWUyYTg2Zjg3MmUyOGVlMWFiN2NjODgy
NDI1N2EuLmFiNGM2OTdkMzZlY2IxNjg5YzIxZTY0MWNkMTI0OWIyZTk5ZDg5YTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQpAQCAtOTQ0LDYgKzk0NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL0NvbnRl
bnRUeXBlLmNwcCBcCiAgICAgcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIFwKICAgICBw
bGF0Zm9ybS9EYXRlQ29tcG9uZW50cy5jcHAgXAorICAgIHBsYXRmb3JtL0RlYnVnSGVscGVycy5j
cHAgXAogICAgIHBsYXRmb3JtL0RlY2ltYWwuY3BwIFwKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5j
cHAgXAogICAgIHBsYXRmb3JtL0RyYWdJbWFnZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDll
NzVjOGQ4YjljNWYxZTcwZTg0NGQ3MGMxMjRlMmRiMjczYTQyYmIuLmVmZTA4NGQ1MTE3MDY3MDE5
ODU5ODJlOWVmZGEwZDk4YWI4NGIzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTI3Nyw2ICsyNzcs
OCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0Nvb2tpZXNTdHJhdGVneS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9DdXJzb3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRGF0ZUNvbXBv
bmVudHMuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vRGVidWdIZWxwZXJzLmNwcCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vRGVidWdIZWxwZXJzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L0RlY2ltYWwuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vRHJhZ0RhdGEuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vRHJhZ0ltYWdlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRGVidWdIZWxwZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlYnVn
SGVscGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY1Yzg4MzdhZmE1Nzk1ODUwZWFmNjcwYzJkNTUyODc1
ZTMyOGI0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlYnVn
SGVscGVycy5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRlYnVnSGVscGVycy5oIgorCisjaWYgRU5B
QkxFKERFQlVHX0hFTFBFUlMpCisKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJG
bG9hdFNpemUuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgor
I2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxjc3RkbGliPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIGRlYnVnKGNvbnN0IGNoYXIqIHZh
bHVlKSB7IHByaW50ZigiJXMiLCB2YWx1ZSk7IH0KKwordm9pZCBkZWJ1Zyhib29sIHZhbHVlKSB7
IHByaW50ZigiJXMiLCB2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOyB9CisKK3ZvaWQgZGVidWco
Y2hhciB2YWx1ZSkgeyBwcmludGYoIiVjIiwgdmFsdWUpOyB9CisKK3ZvaWQgZGVidWcoY29uc3Qg
dm9pZCogdmFsdWUpIHsgcHJpbnRmKCIlcCIsIHZhbHVlKTsgfQorCit2b2lkIGRlYnVnKGNvbnN0
IENTdHJpbmcmIHZhbHVlKSB7IGRlYnVnKHZhbHVlLmRhdGEoKSk7IH0KKwordm9pZCBkZWJ1Zyhj
b25zdCBXVEY6OlN0cmluZyYgdmFsdWUpIHsgZGVidWcodmFsdWUudXRmOCgpKTsgfQorCit2b2lk
IGRlYnVnKHNpZ25lZCBzaG9ydCB2YWx1ZSkgeyBkZWJ1ZyhTdHJpbmc6Om51bWJlcih2YWx1ZSkp
OyB9CisKK3ZvaWQgZGVidWcodW5zaWduZWQgc2hvcnQgdmFsdWUpIHsgZGVidWcoU3RyaW5nOjpu
dW1iZXIodmFsdWUpKTsgfQorCit2b2lkIGRlYnVnKHNpZ25lZCBpbnQgdmFsdWUpIHsgZGVidWco
U3RyaW5nOjpudW1iZXIodmFsdWUpKTsgfQorCit2b2lkIGRlYnVnKHVuc2lnbmVkIHZhbHVlKSB7
IGRlYnVnKFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7IH0KKwordm9pZCBkZWJ1ZyhzaWduZWQgbG9u
ZyB2YWx1ZSkgeyBkZWJ1ZyhTdHJpbmc6Om51bWJlcih2YWx1ZSkpOyB9CisKK3ZvaWQgZGVidWco
dW5zaWduZWQgbG9uZyB2YWx1ZSkgeyBkZWJ1ZyhTdHJpbmc6Om51bWJlcih2YWx1ZSkpOyB9CisK
K3ZvaWQgZGVidWcoZmxvYXQgdmFsdWUpIHsgZGVidWcoU3RyaW5nOjpudW1iZXIodmFsdWUpKTsg
fQorCit2b2lkIGRlYnVnKGRvdWJsZSB2YWx1ZSkgeyBkZWJ1ZyhTdHJpbmc6Om51bWJlcih2YWx1
ZSkpOyB9CisKK3ZvaWQgZGVidWcoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBkZWJ1ZygiSW50U2l6
ZSgiLCBzaXplLndpZHRoKCksICd4Jywgc2l6ZS5oZWlnaHQoKSwgJyknKTsgfQorCit2b2lkIGRl
YnVnKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkgeyBkZWJ1ZygiRmxvYXRTaXplKCIsIHNpemUud2lk
dGgoKSwgJ3gnLCBzaXplLmhlaWdodCgpLCAnKScpOyB9CisKK3ZvaWQgZGVidWcoY29uc3QgSW50
UmVjdCYgcmVjdCkgeyBkZWJ1ZygiSW50UmVjdCgiLCByZWN0LngoKSwgJywnLCByZWN0LnkoKSwg
JyAnLCByZWN0LndpZHRoKCksICd4JywgcmVjdC5oZWlnaHQoKSwgJyknKTsgfQorCit2b2lkIGRl
YnVnKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkgeyBkZWJ1ZygiRmxvYXRSZWN0KCIsIHJlY3QueCgp
LCAnLCcsIHJlY3QueSgpLCAnICcsIHJlY3Qud2lkdGgoKSwgJ3gnLCByZWN0LmhlaWdodCgpLCAn
KScpOyB9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIGRlYnVnKGNvbnN0IFdURjo6VmVj
dG9yPFQ+JiB2ZWN0b3IpCit7CisgICAgZGVidWcoIlZlY3RvciAoIik7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB2ZWN0b3Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGkpCisgICAg
ICAgICAgICBkZWJ1ZygiLCAiKTsKKyAgICAgICAgZGVidWcodmVjdG9yLmF0KGkpKTsKKyAgICB9
CisgICAgZGVidWcoJyknKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RlYnVnSGVscGVycy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGVidWdIZWxwZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDUyYmZiNjEy
MDA5NmI3YmIwODBlOGRiYWNlMjdiNGUwMmU3M2NiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RlYnVnSGVscGVycy5oCkBAIC0wLDAgKzEsMjUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERlYnVnSGVscGVyc19oCisjZGVmaW5lIERl
YnVnSGVscGVyc19oCisKKyNpZiBFTkFCTEUoREVCVUdfSEVMUEVSUykKKworI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW50UmVj
dDsKK2NsYXNzIEludFNpemU7CitjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBGbG9hdFNpemU7CisK
K3ZvaWQgZGVidWcoY29uc3QgY2hhciopOworCit2b2lkIGRlYnVnKGJvb2wpOworCit2b2lkIGRl
YnVnKGNoYXIpOworCit2b2lkIGRlYnVnKGNvbnN0IHZvaWQqKTsKKwordm9pZCBkZWJ1Zyhjb25z
dCBDU3RyaW5nJik7CisKK3ZvaWQgZGVidWcoY29uc3QgV1RGOjpTdHJpbmcmKTsKKwordm9pZCBk
ZWJ1ZyhzaWduZWQgc2hvcnQpOworCit2b2lkIGRlYnVnKHVuc2lnbmVkIHNob3J0KTsKKwordm9p
ZCBkZWJ1ZyhzaWduZWQgaW50KTsKKwordm9pZCBkZWJ1Zyh1bnNpZ25lZCk7CisKK3ZvaWQgZGVi
dWcoc2lnbmVkIGxvbmcpOworCit2b2lkIGRlYnVnKHVuc2lnbmVkIGxvbmcpOworCit2b2lkIGRl
YnVnKGZsb2F0KTsKKwordm9pZCBkZWJ1Zyhkb3VibGUpOworCit2b2lkIGRlYnVnKGNvbnN0IElu
dFNpemUmKTsKKwordm9pZCBkZWJ1Zyhjb25zdCBGbG9hdFNpemUmKTsKKwordm9pZCBkZWJ1Zyhj
b25zdCBJbnRSZWN0Jik7CisKK3ZvaWQgZGVidWcoY29uc3QgRmxvYXRSZWN0Jik7CisKK3RlbXBs
YXRlPHR5cGVuYW1lIFQ+IHZvaWQgZGVidWcoY29uc3QgV1RGOjpWZWN0b3I8VD4mKTsKKwordGVt
cGxhdGU8dHlwZW5hbWUgQSwgdHlwZW5hbWUgQj4KK3ZvaWQgZGVidWcoQSBhLCBCIGIpCit7Cisg
ICAgZGVidWcoYSk7CisgICAgZGVidWcoYik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEEsIHR5
cGVuYW1lIEIsIHR5cGVuYW1lIEM+Cit2b2lkIGRlYnVnKEEgYSwgQiBiLCBDIGMpCit7CisgICAg
ZGVidWcoYSk7CisgICAgZGVidWcoYik7CisgICAgZGVidWcoYyk7Cit9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIEEsIHR5cGVuYW1lIEIsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIEQ+Cit2b2lkIGRlYnVn
KEEgYSwgQiBiLCBDIGMsIEQgZCkKK3sKKyAgICBkZWJ1ZyhhKTsKKyAgICBkZWJ1ZyhiKTsKKyAg
ICBkZWJ1ZyhjKTsKKyAgICBkZWJ1ZyhkKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgQSwgdHlw
ZW5hbWUgQiwgdHlwZW5hbWUgQywgdHlwZW5hbWUgRCwgdHlwZW5hbWUgRT4KK3ZvaWQgZGVidWco
QSBhLCBCIGIsIEMgYywgRCBkLCBFIGUpCit7CisgICAgZGVidWcoYSk7CisgICAgZGVidWcoYik7
CisgICAgZGVidWcoYyk7CisgICAgZGVidWcoZCk7CisgICAgZGVidWcoZSk7Cit9CisKK3RlbXBs
YXRlPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEIsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIEQsIHR5cGVu
YW1lIEUsIHR5cGVuYW1lIEY+Cit2b2lkIGRlYnVnKEEgYSwgQiBiLCBDIGMsIEQgZCwgRSBlLCBG
IGYpCit7CisgICAgZGVidWcoYSk7CisgICAgZGVidWcoYik7CisgICAgZGVidWcoYyk7CisgICAg
ZGVidWcoZCk7CisgICAgZGVidWcoZSk7CisgICAgZGVidWcoZik7Cit9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIEEsIHR5cGVuYW1lIEIsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIEQsIHR5cGVuYW1lIEUs
IHR5cGVuYW1lIEYsIHR5cGVuYW1lIEc+Cit2b2lkIGRlYnVnKEEgYSwgQiBiLCBDIGMsIEQgZCwg
RSBlLCBGIGYsIEcgZykKK3sKKyAgICBkZWJ1ZyhhKTsKKyAgICBkZWJ1ZyhiKTsKKyAgICBkZWJ1
ZyhjKTsKKyAgICBkZWJ1ZyhkKTsKKyAgICBkZWJ1ZyhlKTsKKyAgICBkZWJ1ZyhmKTsKKyAgICBk
ZWJ1ZyhnKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgQSwgdHlwZW5hbWUgQiwgdHlwZW5hbWUg
QywgdHlwZW5hbWUgRCwgdHlwZW5hbWUgRSwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgRywgdHlwZW5h
bWUgSD4KK3ZvaWQgZGVidWcoQSBhLCBCIGIsIEMgYywgRCBkLCBFIGUsIEYgZiwgRyBnLCBIIGgp
Cit7CisgICAgZGVidWcoYSk7CisgICAgZGVidWcoYik7CisgICAgZGVidWcoYyk7CisgICAgZGVi
dWcoZCk7CisgICAgZGVidWcoZSk7CisgICAgZGVidWcoZik7CisgICAgZGVidWcoZyk7CisgICAg
ZGVidWcoaCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEIsIHR5cGVuYW1l
IEMsIHR5cGVuYW1lIEQsIHR5cGVuYW1lIEUsIHR5cGVuYW1lIEYsIHR5cGVuYW1lIEcsIHR5cGVu
YW1lIEgsIHR5cGVuYW1lIEk+Cit2b2lkIGRlYnVnKEEgYSwgQiBiLCBDIGMsIEQgZCwgRSBlLCBG
IGYsIEcgZywgSCBoLCBJIGkpCit7CisgICAgZGVidWcoYSk7CisgICAgZGVidWcoYik7CisgICAg
ZGVidWcoYyk7CisgICAgZGVidWcoZCk7CisgICAgZGVidWcoZSk7CisgICAgZGVidWcoZik7Cisg
ICAgZGVidWcoZyk7CisgICAgZGVidWcoaCk7CisgICAgZGVidWcoaSk7Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIEEsIHR5cGVuYW1lIEIsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIEQsIHR5cGVuYW1l
IEUsIHR5cGVuYW1lIEYsIHR5cGVuYW1lIEcsIHR5cGVuYW1lIEgsIHR5cGVuYW1lIEksIHR5cGVu
YW1lIEo+Cit2b2lkIGRlYnVnKEEgYSwgQiBiLCBDIGMsIEQgZCwgRSBlLCBGIGYsIEcgZywgSCBo
LCBJIGksIEogaikKK3sKKyAgICBkZWJ1ZyhhKTsKKyAgICBkZWJ1ZyhiKTsKKyAgICBkZWJ1Zyhj
KTsKKyAgICBkZWJ1ZyhkKTsKKyAgICBkZWJ1ZyhlKTsKKyAgICBkZWJ1ZyhmKTsKKyAgICBkZWJ1
ZyhnKTsKKyAgICBkZWJ1ZyhoKTsKKyAgICBkZWJ1ZyhpKTsKKyAgICBkZWJ1ZyhqKTsKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUgQSwgdHlwZW5hbWUgQiwgdHlwZW5hbWUgQywgdHlwZW5hbWUgRCwg
dHlwZW5hbWUgRSwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgRywgdHlwZW5hbWUgSCwgdHlwZW5hbWUg
SSwgdHlwZW5hbWUgSiwgdHlwZW5hbWUgSz4KK3ZvaWQgZGVidWcoQSBhLCBCIGIsIEMgYywgRCBk
LCBFIGUsIEYgZiwgRyBnLCBIIGgsIEkgaSwgSiBqLCBLIGspCit7CisgICAgZGVidWcoYSk7Cisg
ICAgZGVidWcoYik7CisgICAgZGVidWcoYyk7CisgICAgZGVidWcoZCk7CisgICAgZGVidWcoZSk7
CisgICAgZGVidWcoZik7CisgICAgZGVidWcoZyk7CisgICAgZGVidWcoaCk7CisgICAgZGVidWco
aSk7CisgICAgZGVidWcoaik7CisgICAgZGVidWcoayk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IEEsIHR5cGVuYW1lIEIsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIEQsIHR5cGVuYW1lIEUsIHR5cGVu
YW1lIEYsIHR5cGVuYW1lIEcsIHR5cGVuYW1lIEgsIHR5cGVuYW1lIEksIHR5cGVuYW1lIEosIHR5
cGVuYW1lIEssIHR5cGVuYW1lIEw+Cit2b2lkIGRlYnVnKEEgYSwgQiBiLCBDIGMsIEQgZCwgRSBl
LCBGIGYsIEcgZywgSCBoLCBJIGksIEogaiwgSyBrLCBMIGwpCit7CisgICAgZGVidWcoYSk7Cisg
ICAgZGVidWcoYik7CisgICAgZGVidWcoYyk7CisgICAgZGVidWcoZCk7CisgICAgZGVidWcoZSk7
CisgICAgZGVidWcoZik7CisgICAgZGVidWcoZyk7CisgICAgZGVidWcoaCk7CisgICAgZGVidWco
aSk7CisgICAgZGVidWcoaik7CisgICAgZGVidWcoayk7CisgICAgZGVidWcobCk7Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEIsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIEQsIHR5
cGVuYW1lIEUsIHR5cGVuYW1lIEYsIHR5cGVuYW1lIEcsIHR5cGVuYW1lIEgsIHR5cGVuYW1lIEks
IHR5cGVuYW1lIEosIHR5cGVuYW1lIEssIHR5cGVuYW1lIEwsIHR5cGVuYW1lIE0+Cit2b2lkIGRl
YnVnKEEgYSwgQiBiLCBDIGMsIEQgZCwgRSBlLCBGIGYsIEcgZywgSCBoLCBJIGksIEogaiwgSyBr
LCBMIGwsIE0gbSkKK3sKKyAgICBkZWJ1ZyhhKTsKKyAgICBkZWJ1ZyhiKTsKKyAgICBkZWJ1Zyhj
KTsKKyAgICBkZWJ1ZyhkKTsKKyAgICBkZWJ1ZyhlKTsKKyAgICBkZWJ1ZyhmKTsKKyAgICBkZWJ1
ZyhnKTsKKyAgICBkZWJ1ZyhoKTsKKyAgICBkZWJ1ZyhpKTsKKyAgICBkZWJ1ZyhqKTsKKyAgICBk
ZWJ1ZyhrKTsKKyAgICBkZWJ1ZyhsKTsKKyAgICBkZWJ1ZyhtKTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgQSwgdHlwZW5hbWUgQiwgdHlwZW5hbWUgQywgdHlwZW5hbWUgRCwgdHlwZW5hbWUgRSwg
dHlwZW5hbWUgRiwgdHlwZW5hbWUgRywgdHlwZW5hbWUgSCwgdHlwZW5hbWUgSSwgdHlwZW5hbWUg
SiwgdHlwZW5hbWUgSywgdHlwZW5hbWUgTCwgdHlwZW5hbWUgTSwgdHlwZW5hbWUgTj4KK3ZvaWQg
ZGVidWcoQSBhLCBCIGIsIEMgYywgRCBkLCBFIGUsIEYgZiwgRyBnLCBIIGgsIEkgaSwgSiBqLCBL
IGssIEwgbCwgTSBtLCBOIG4pCit7CisgICAgZGVidWcoYSk7CisgICAgZGVidWcoYik7CisgICAg
ZGVidWcoYyk7CisgICAgZGVidWcoZCk7CisgICAgZGVidWcoZSk7CisgICAgZGVidWcoZik7Cisg
ICAgZGVidWcoZyk7CisgICAgZGVidWcoaCk7CisgICAgZGVidWcoaSk7CisgICAgZGVidWcoaik7
CisgICAgZGVidWcoayk7CisgICAgZGVidWcobCk7CisgICAgZGVidWcobSk7CisgICAgZGVidWco
bik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShERUJV
R19IRUxQRVJTKQorCisjZW5kaWYgLy8gRGVidWdIZWxwZXJzX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJl
cy5jbWFrZQppbmRleCA4YTM2NzdiZDZhMzAzYzU2N2I4ZGJkYWI2OTMyNjI1NjBjYjNjNWM2Li41
MTcwNzI1MzY1NzE5M2VkMGQwZjM2YjgwZWM3OGFlODIzODg3ZGFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZl
YXR1cmVzLmNtYWtlCkBAIC0zOCw2ICszOCw3IEBAIE1BQ1JPIChXRUJLSVRfT1BUSU9OX0JFR0lO
KQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIg
IlRvZ2dsZSBDdXN0b20gU2NoZW1lIEhhbmRsZXIgc3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9P
UFRJT05fREVGSU5FKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UICJUb2dnbGUgSFRNTDUgZGF0YWxp
c3Qgc3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9EQVRBX1RS
QU5TRkVSX0lURU1TICJUb2dnbGUgSFRNTDUgZGF0YSB0cmFuc2ZlciBpdGVtcyBzdXBwb3J0IiBP
RkYpCisgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0RFQlVHX0hFTFBFUlMgIlRvZ2ds
ZSBEZWJ1Z0hlbHBlcnMuaCBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUo
RU5BQkxFX0RFVEFJTFNfRUxFTUVOVCAiVG9nZ2xlIEhUTUw1IGRldGFpbHMgc3VwcG9ydCIgT04p
CiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiAiVG9n
Z2xlIERldmljZU9yaWVudGF0aW9uIHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RF
RklORShFTkFCTEVfRElBTE9HX0VMRU1FTlQgIlRvZ2dsZSBEaWFsb2cgRWxlbWVudCBzdXBwb3J0
IiBPRkYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZSBiL1NvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlCmluZGV4IDM5YmIwMmIyZDA0ODkxNzlkNGI3Yjg1NzU4MTNmYTI1
ZTA5YTJhOWMuLjY0ZmQ4OWQ3ZDgxOGY5NzMxYzA5MTk3ZWMyYTJmMWNlNjc4OTRjZTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZWNvbmZp
Zy5oLmNtYWtlCkBAIC0zMSw2ICszMSw3IEBACiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfQ1VTVE9N
X1NDSEVNRV9IQU5ETEVSCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREFUQUxJU1RfRUxFTUVOVAog
I2NtYWtlZGVmaW5lMDEgRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMKKyNjbWFrZWRlZmluZTAx
IEVOQUJMRV9ERUJVR19IRUxQRVJTCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREVUQUlMU19FTEVN
RU5UCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OCiAjY21ha2VkZWZp
bmUwMSBFTkFCTEVfRElBTE9HX0VMRU1FTlQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MGEwMDQxZjhmOGRjNGRlNjE2YjBhN2QzMGE4NTdkM2Jk
MGFmYjliLi4xM2UyMmZjZTcyOGY4YzI3MTI3YzY1Nzc3YTE5NTE1OTlkYzczY2M2IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMTEtMDkgIFJhZmFlbCBCcmFuZGFvICA8cmFmYWVsLmxvYm9Ab3BlbmJvc3NhLm9y
Zz4KKworICAgICAgICBFYXNlIHByaW50ZiBkZWJ1Z2dpbmcgaW4gV2ViS2l0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA4MjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVy
bC9GZWF0dXJlTGlzdC5wbToKKyAgICAgICAgQWRkZWQgREVCVUdfSEVMUEVSUyBmbGFnIHN1cHBv
cnQuCisKIDIwMTItMTEtMDggIERvbWluaWsgUsO2dHRzY2hlcyAgPGRvbWluaWsucm90dHNjaGVz
QGludGVsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMzODU5Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCmluZGV4IGIzNGFlYzc0YjJhZWVi
MDkxODQ4YjAxYWJjZTFhN2IzMmI5ZjJjMjkuLmExNGUxNmI1YTYxZDk4ZDE1YTUwYTU0ODE1NWRm
ZDYxNDE5ZmJlMjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJl
TGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KQEAg
LTY1LDYgKzY1LDcgQEAgbXkgKAogICAgICRjdXN0b21TY2hlbWVIYW5kbGVyU3VwcG9ydCwKICAg
ICAkZGF0YVRyYW5zZmVySXRlbXNTdXBwb3J0LAogICAgICRkYXRhbGlzdFN1cHBvcnQsCisgICAg
JGRlYnVnSGVscGVyc1N1cHBvcnQsCiAgICAgJGRldGFpbHNTdXBwb3J0LAogICAgICRkZXZpY2VP
cmllbnRhdGlvblN1cHBvcnQsCiAgICAgJGRpYWxvZ0VsZW1lbnRTdXBwb3J0LApAQCAtMjEzLDYg
KzIxNCw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAiZGF0YS10cmFuc2Zl
ci1pdGVtcyIsIGRlc2MgPT4gIlRvZ2dsZSBEYXRhIFRyYW5zZmVyIEl0ZW1zIHN1cHBvcnQiLAog
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyIsIGRlZmF1bHQgPT4g
MCwgdmFsdWUgPT4gXCRkYXRhVHJhbnNmZXJJdGVtc1N1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9u
ID0+ICJkZWJ1Zy1oZWxwZXJzIiwgZGVzYyA9PiAiVG9nZ2xlIERlYnVnSGVscGVycy5oIHN1cHBv
cnQiLAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVCVUdfSEVMUEVSUyIsIGRlZmF1bHQgPT4g
MCwgdmFsdWUgPT4gXCRkZWJ1Z0hlbHBlcnNTdXBwb3J0IH0sCisKICAgICB7IG9wdGlvbiA9PiAi
ZGV0YWlscyIsIGRlc2MgPT4gIlRvZ2dsZSBEZXRhaWxzIHN1cHBvcnQiLAogICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfREVUQUlMU19FTEVNRU5UIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGRl
dGFpbHNTdXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRl
eCA5MzRlNjM3NjQxYzMyYzc0ZDZlMGEwMGQ0YTg4YWQ2OTEyMTc0ZDJlLi40ODgyMjU3MzE3MmIy
MzJhYjBhODdhZGZjZTgwZGNlZmU5ZDk2MWRkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMDkgIFJhZmFlbCBCcmFuZGFvICA8
cmFmYWVsLmxvYm9Ab3BlbmJvc3NhLm9yZz4KKworICAgICAgICBFYXNlIHByaW50ZiBkZWJ1Z2dp
bmcgaW4gV2ViS2l0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTA4MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKQorCisgICAg
ICAgIEFkZGVkIHN1cHBvcnQgZm9yIEVOQUJMRShERUJVR19IRUxQRVJTKS4KKworICAgICAgICAq
IFNvdXJjZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21h
a2Vjb25maWcuaC5jbWFrZToKKyAgICAgICAgKiBjb25maWd1cmUuYWM6CisKIDIwMTItMTEtMDgg
IFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzM4NjUuCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMg
Yi9jb25maWd1cmUuYWMKaW5kZXggNTkzZTAxNDcxZWFiYzY1YTM1ZjY5Mjc0Y2Y5YjM0NmU5Yzgw
MTExZi4uNTVlMmZkM2NmMTM0OGFlYzM1ZDAzNDU2ZjkyNDcxMzlmMDI5OWI2NCAxMDA2NDQKLS0t
IGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtNTM0LDYgKzUzNCwxNCBAQCBB
Q19BUkdfRU5BQkxFKGRlYnVnLAogICAgICAgICAgICAgICBbXSxbZW5hYmxlX2RlYnVnPSJubyJd
KQogQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9kZWJ1Z10pCiAKKyMgY2hlY2sgd2hldGhlciB0byBl
bmFibGUgRGVidWdIZWxwZXJzLmggc3VwcG9ydAorQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRv
IGVuYWJsZSBEZWJ1Z0hlbHBlcnMuaCBzdXBwb3J0XSkKK0FDX0FSR19FTkFCTEUoZGVidWdfaGVs
cGVycywKKyAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWRlYnVnLWhlbHBl
cnNdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5hYmxlIHN1cHBvcnQgZm9yIERl
YnVnSGVscGVycy5oIFtkZWZhdWx0PW5vXV0pLAorICAgICAgICAgICAgICBbXSxbZW5hYmxlX2Rl
YnVnX2hlbHBlcnM9Im5vIl0pCitBQ19NU0dfUkVTVUxUKFskZW5hYmxlX2RlYnVnX2hlbHBlcnNd
KQorCiAjIGNoZWNrIHdoZXRoZXIgdG8gZW5hYmxlIG9wdGltaXplZCBidWlsZHMKIEFDX01TR19D
SEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgb3B0aW1pemVkIGJ1aWxkc10pCiBBQ19BUkdfRU5B
QkxFKG9wdGltaXphdGlvbnMsCkBAIC0xMjE1LDYgKzEyMjMsOSBAQCBBTV9DT05ESVRJT05BTChb
RU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTl0sW3Rlc3QgIiRlbmFibGVfY3NzX2RldmljZV9h
ZGFwdGF0aQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9DU1NfRklMVEVSU10sW3Rlc3QgIiRlbmFi
bGVfY3NzX2ZpbHRlcnMiID0gInllcyJdKQogQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9DU1NfU0hB
REVSU10sW3Rlc3QgIiRlbmFibGVfY3NzX3NoYWRlcnMiID0gInllcyJdKQogCisjIERlYnVnZ2lu
ZyBmZWF0dXJlcyBjb25kaXRpb25hbAorQU1fQ09ORElUSU9OQUwoW0VOQUJMRV9ERUJVR19IRUxQ
RVJTXSxbdGVzdCAiJGVuYWJsZV9kZWJ1Z19oZWxwZXJzIiA9ICJ5ZXMiXSkKKwogIyBHdGsgY29u
ZGl0aW9uYWxzCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0lOVFJPU1BFQ1RJT05dLFt0ZXN0ICIk
ZW5hYmxlX2ludHJvc3BlY3Rpb24iID0gInllcyJdKQogCkBAIC0xMjY1LDYgKzEyNzYsNyBAQCBC
dWlsZCBjb25maWd1cmF0aW9uOgogIEZvbnQgYmFja2VuZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDogJHdpdGhfZm9udF9iYWNrZW5kCiAgT3B0aW1pemVkIG1l
bW9yeSBhbGxvY2F0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX2Zh
c3RfbWFsbG9jCiAgQWNjZWxlcmF0ZWQgcmVuZGVyaW5nIGJhY2tlbmQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiAkYWNjZWxlcmF0aW9uX2JhY2tlbmRfZGVzY3JpcHRpb24KKyBEZWJ1Z0hl
bHBlcnMuaCBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFi
bGVfZGVidWdfaGVscGVycwogCiBGZWF0dXJlczoKID09PT09PT0K
</data>
<flag name="review"
          id="187909"
          type_id="1"
          status="-"
          setter="menard"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>173274</attachid>
            <date>2012-11-09 05:28:02 -0800</date>
            <delta_ts>2012-11-09 09:04:55 -0800</delta_ts>
            <desc>WIP that I have locally.</desc>
            <filename>DebugHelpers.h</filename>
            <type>text/plain</type>
            <size>6525</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">LyoKICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQogKgogKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCiAqIGFyZSBtZXQ6CiAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgogKgogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCiAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAogKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCiAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwogKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCiAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCiAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwogKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgogKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQogKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCiAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICov
CgojaWZuZGVmIERlYnVnSGVscGVyc19oCiNkZWZpbmUgRGVidWdIZWxwZXJzX2gKCiNpbmNsdWRl
IDxzdGRpby5oPgoKI2lmIE9TKFdJTkRPV1MpCiNpbmNsdWRlIDx3aW5kb3dzLmg+CiNlbmRpZgoK
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgoKbmFtZXNwYWNlIFdURiB7CiAgICAKICAgIGVu
dW0gQnJlYWtMaW5lIHsgTm9CcmVhaywgQnJlYWsgfTsKICAgIAogICAgaW5saW5lIHZvaWQgd3Rm
UHJpbnQoYm9vbCB2YWx1ZSwgQnJlYWtMaW5lIGJyZWFrTGluZSA9IEJyZWFrKQogICAgewogICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCB2YWx1ZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogICAg
ICAgIGlmIChicmVha0xpbmUgPT0gQnJlYWspCiAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
XG4iKTsKICAgIH0KICAgIAogICAgaW5saW5lIHZvaWQgd3RmUHJpbnQoY29uc3QgU3RyaW5nJiBz
dHJpbmcsIEJyZWFrTGluZSBicmVha0xpbmUgPSBCcmVhaykKICAgIHsKICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIlwiJXNcIiIsIHN0cmluZy51dGY4KCkuZGF0YSgpKTsKICAgICAgICBpZiAoYnJl
YWtMaW5lID09IEJyZWFrKQogICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CiAgICB9
CiAgICAKICAgIGlubGluZSB2b2lkIHd0ZlByaW50KGNoYXIqIGNoYXJhY3RlciwgQnJlYWtMaW5l
IGJyZWFrTGluZSA9IEJyZWFrKQogICAgewogICAgICAgIGZwcmludGYoc3RkZXJyLCAiXCIlc1wi
IiwgY2hhcmFjdGVyKTsKICAgICAgICBpZiAoYnJlYWtMaW5lID09IEJyZWFrKQogICAgICAgICAg
ICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CiAgICB9CiAgICAKICAgIGlubGluZSB2b2lkIHd0ZlBy
aW50KGNoYXIgY2hhcmFjdGVyLCBCcmVha0xpbmUgYnJlYWtMaW5lID0gQnJlYWspCiAgICB7CiAg
ICAgICAgZnByaW50ZihzdGRlcnIsICJcIiVjXCIiLCBjaGFyYWN0ZXIpOwogICAgICAgIGlmIChi
cmVha0xpbmUgPT0gQnJlYWspCiAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKICAg
IH0KICAgIAogICAgaW5saW5lIHZvaWQgd3RmUHJpbnQoc2hvcnQgdmFsdWUsIEJyZWFrTGluZSBi
cmVha0xpbmUgPSBCcmVhaykKICAgIHsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVpIiwgdmFs
dWUpOwogICAgICAgIGlmIChicmVha0xpbmUgPT0gQnJlYWspCiAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiXG4iKTsKICAgIH0KICAgIAogICAgaW5saW5lIHZvaWQgd3RmUHJpbnQodW5zaWdu
ZWQgc2hvcnQgdmFsdWUsIEJyZWFrTGluZSBicmVha0xpbmUgPSBCcmVhaykKICAgIHsKICAgICAg
ICBmcHJpbnRmKHN0ZGVyciwgIiV1IiwgdmFsdWUpOwogICAgICAgIGlmIChicmVha0xpbmUgPT0g
QnJlYWspCiAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKICAgIH0KICAgIAogICAg
aW5saW5lIHZvaWQgd3RmUHJpbnQoaW50IHZhbHVlLCBCcmVha0xpbmUgYnJlYWtMaW5lID0gQnJl
YWspCiAgICB7CiAgICAgICAgZnByaW50ZihzdGRlcnIsICIlaSIsIHZhbHVlKTsKICAgICAgICBp
ZiAoYnJlYWtMaW5lID09IEJyZWFrKQogICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7
CiAgICB9CiAgICAKICAgIGlubGluZSB2b2lkIHd0ZlByaW50KHVuc2lnbmVkIHZhbHVlLCBCcmVh
a0xpbmUgYnJlYWtMaW5lID0gQnJlYWspCiAgICB7CiAgICAgICAgZnByaW50ZihzdGRlcnIsICIl
dSIsIHZhbHVlKTsKICAgICAgICBpZiAoYnJlYWtMaW5lID09IEJyZWFrKQogICAgICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIlxuIik7CiAgICB9CiAgICAKICAgIGlubGluZSB2b2lkIHd0ZlByaW50
KGxvbmcgdmFsdWUsIEJyZWFrTGluZSBicmVha0xpbmUgPSBCcmVhaykKICAgIHsKICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIiVsZCIsIHZhbHVlKTsKICAgICAgICBpZiAoYnJlYWtMaW5lID09IEJy
ZWFrKQogICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CiAgICB9CiAgICAKICAgIGlu
bGluZSB2b2lkIHd0ZlByaW50KHVuc2lnbmVkIGxvbmcgdmFsdWUsIEJyZWFrTGluZSBicmVha0xp
bmUgPSBCcmVhaykKICAgIHsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVsdSIsIHZhbHVlKTsK
ICAgICAgICBpZiAoYnJlYWtMaW5lID09IEJyZWFrKQogICAgICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIlxuIik7CiAgICB9CiAgICAKICAgIGlubGluZSB2b2lkIHd0ZlByaW50KGZsb2F0IHZhbHVl
LCBCcmVha0xpbmUgYnJlYWtMaW5lID0gQnJlYWspCiAgICB7CiAgICAgICAgZnByaW50ZihzdGRl
cnIsICIlcyIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICBp
ZiAoYnJlYWtMaW5lID09IEJyZWFrKQogICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7
CiAgICB9CiAgICAKICAgIGlubGluZSB2b2lkIHd0ZlByaW50KGRvdWJsZSB2YWx1ZSwgQnJlYWtM
aW5lIGJyZWFrTGluZSA9IEJyZWFrKQogICAgewogICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMi
LCBTdHJpbmc6Om51bWJlcih2YWx1ZSkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgaWYgKGJyZWFr
TGluZSA9PSBCcmVhaykKICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwogICAgfQog
ICAgCiAgICBpbmxpbmUgdm9pZCB3dGZQcmludCh2b2lkKiBwdHIsIEJyZWFrTGluZSBicmVha0xp
bmUgPSBCcmVhaykKICAgIHsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVwIiwgcHRyKTsKICAg
ICAgICBpZiAoYnJlYWtMaW5lID09IEJyZWFrKQogICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IlxuIik7CiAgICB9CiAgICAKICAgIHRlbXBsYXRlPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEI+CiAg
ICBpbmxpbmUgdm9pZCB3dGZQcmludChBIGEsIEIgYikKICAgIHsKICAgICAgICB3dGZQcmludChh
LCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAiKTsKICAgICAgICB3dGZQcmlu
dChiLCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CiAgICB9CiAgICAK
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEIsIHR5cGVuYW1lIEM+CiAgICBpbmxp
bmUgdm9pZCB3dGZQcmludChBIGEsIEIgYiwgQyBjKQogICAgewogICAgICAgIHd0ZlByaW50KGEs
IE5vQnJlYWspOwogICAgICAgIGZwcmludGYoc3RkZXJyLCAiICIpOwogICAgICAgIHd0ZlByaW50
KGIsIE5vQnJlYWspOwogICAgICAgIGZwcmludGYoc3RkZXJyLCAiICIpOwogICAgICAgIHd0ZlBy
aW50KGMsIE5vQnJlYWspOwogICAgICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKICAgIH0KICAg
IAogICAgdGVtcGxhdGU8dHlwZW5hbWUgQSwgdHlwZW5hbWUgQiwgdHlwZW5hbWUgQywgdHlwZW5h
bWUgRD4KICAgIGlubGluZSB2b2lkIHd0ZlByaW50KEEgYSwgQiBiLCBDIGMsIEQgZCkKICAgIHsK
ICAgICAgICB3dGZQcmludChhLCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAi
KTsKICAgICAgICB3dGZQcmludChiLCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IiAiKTsKICAgICAgICB3dGZQcmludChjLCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIiAiKTsKICAgICAgICB3dGZQcmludChkLCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIlxuIik7CiAgICB9CiAgICAKICAgIHRlbXBsYXRlPHR5cGVuYW1lIEEsIHR5cGVuYW1l
IEIsIHR5cGVuYW1lIEMsIHR5cGVuYW1lIEQsIHR5cGVuYW1lIEU+CiAgICBpbmxpbmUgdm9pZCB3
dGZQcmludChBIGEsIEIgYiwgQyBjLCBEIGQsIEUgZSkKICAgIHsKICAgICAgICB3dGZQcmludChh
LCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAiKTsKICAgICAgICB3dGZQcmlu
dChiLCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAiKTsKICAgICAgICB3dGZQ
cmludChjLCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAiKTsKICAgICAgICB3
dGZQcmludChkLCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAiKTsKICAgICAg
ICB3dGZQcmludChlLCBOb0JyZWFrKTsKICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CiAg
ICB9CiAgICAKICAgIHRlbXBsYXRlPHR5cGVuYW1lIEEsIHR5cGVuYW1lIEIsIHR5cGVuYW1lIEMs
IHR5cGVuYW1lIEQsIHR5cGVuYW1lIEUsIHR5cGVuYW1lIEY+CiAgICBpbmxpbmUgdm9pZCB3dGZQ
cmludChBIGEsIEIgYiwgQyBjLCBEIGQsIEUgZSwgRiBmKQogICAgewogICAgICAgIHd0ZlByaW50
KGEsIE5vQnJlYWspOwogICAgICAgIGZwcmludGYoc3RkZXJyLCAiICIpOwogICAgICAgIHd0ZlBy
aW50KGIsIE5vQnJlYWspOwogICAgICAgIGZwcmludGYoc3RkZXJyLCAiICIpOwogICAgICAgIHd0
ZlByaW50KGMsIE5vQnJlYWspOwogICAgICAgIGZwcmludGYoc3RkZXJyLCAiICIpOwogICAgICAg
IHd0ZlByaW50KGQsIE5vQnJlYWspOwogICAgICAgIGZwcmludGYoc3RkZXJyLCAiICIpOwogICAg
ICAgIHd0ZlByaW50KGUsIE5vQnJlYWspOwogICAgICAgIGZwcmludGYoc3RkZXJyLCAiICIpOwog
ICAgICAgIHd0ZlByaW50KGYsIE5vQnJlYWspOwogICAgICAgIGZwcmludGYoc3RkZXJyLCAiXG4i
KTsKICAgIH0KICAgIAogICAgdGVtcGxhdGUgPGNsYXNzIFQ+CiAgICBpbmxpbmUgdm9pZCB3dGZQ
cmludChjb25zdCBWZWN0b3I8VD4mIHZlY3RvciwgQnJlYWtMaW5lIGJyZWFrTGluZSA9IEJyZWFr
KQogICAgewogICAgICAgIGZwcmludGYoc3RkZXJyLCAiV1RGOjpWZWN0b3IgKCIpOwogICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmVjdG9yLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAg
IGlmIChpKQogICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIsICIpOwogICAgICAgICAg
ICB3dGZQcmludCh2ZWN0b3IuYXQoaSksIE5vQnJlYWspOwogICAgICAgIH0KICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIikiKTsKICAgICAgICBpZiAoYnJlYWtMaW5lID09IEJyZWFrKQogICAgICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgIlxuIik7CiAgICB9CiAgICAKfSAvLyBuYW1lc3BhY2UgV1RG
CgojZW5kaWYgLy8gRGVidWdIZWxwZXJzX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>