<?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>40118</bug_id>
          
          <creation_ts>2010-06-03 06:35:55 -0700</creation_ts>
          <short_desc>Web Inspector [JSC]: Implement ScriptCallStack::stackTrace</short_desc>
          <delta_ts>2012-07-04 14:37:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>90115</dependson>
          <blocked>65533</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>afscian</cc>
    
    <cc>barraclough</cc>
    
    <cc>bweinstein</cc>
    
    <cc>efidler</cc>
    
    <cc>fredliu</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>jochen</cc>
    
    <cc>joepeck</cc>
    
    <cc>jrogers</cc>
    
    <cc>kpiascik</cc>
    
    <cc>mark.lam</cc>
    
    <cc>michschn</cc>
    
    <cc>oliver</cc>
    
    <cc>philn</cc>
    
    <cc>rik</cc>
    
    <cc>tim.c.quinn</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>233739</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-06-03 06:35:55 -0700</bug_when>
    <thetext>// Returns false if there is no running JavaScript or if fetching the stack failed.
    // Sets stackTrace to be an array of stack frame objects.
    // A stack frame object looks like:
    // {
    //   scriptName: &lt;file name for the associated script resource&gt;
    //   functionName: &lt;name of the JavaScript function&gt;
    //   lineNumber: &lt;1 based line number&gt;
    //   column: &lt;1 based column offset on the line&gt;
    // }
    static bool stackTrace(int frameLimit, ScriptState* state, ScriptArray&amp; stackTrace);

This is used by Timeline records.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233740</commentid>
    <comment_count>1</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-06-03 06:38:39 -0700</bug_when>
    <thetext>This is something V8 has, that we need to make JSC have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431159</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Schneider">michschn</who>
    <bug_when>2011-07-01 08:03:35 -0700</bug_when>
    <thetext>What is the status of this bug? I assume the missing implementation is now in WebKit/Source/WebCore/bindings/js/ScriptCallStackFactory.cpp, createScriptCallStack(size_t, bool)?

I was looking into this a bit and hoped that the following implementation would work:

PassRefPtr&lt;ScriptCallStack&gt; createScriptCallStack(size_t maxStackSize, bool)
{
    JSC::ExecState* exec = JSMainThreadExecState::currentState();
    if (exec == 0)
      return 0;
    return createScriptCallStack(exec, maxStackSize);
}

Unfortunately, JSMainThreadExecState::currentState() tracks the entry points in to JavaScript only, thus we see the bottom of the stack only, which is empty. Given the current use of currentState(), I assume that JSMainThreadExecState::currentState() might as well return the top stack frame without breaking existing clients. Also, I think it would be fair for the currentState() method&apos;s contract to state that the return value is the top-most frame in case we left the context of the script engine only. While in the context of JSC, we have an ExecState handy anyways and can generate a stack trace from that, if needed; currentState() would only be required to return any frame of the current stak in that case, which could still be the bottom frame. If updating the currentState() is not feasible for some reason, the current frame could be stored in JSGlobalData or another JSMainThreadExecState structure.

Currently, I see three options to achieve this:
1) Track the exit points: Is the assumption correct that leaving JSC is only possible via implementations of ExecutableBase? If so, these implementations could be used as a guard to update JSMainThreadExecState::currentState().
2) Track the current stack frame whenever code is executed with a new stack frame. It seems as if there are not too may places in the code which do this. This could, however, add a speed-penalty to the execution.
3) Make the ExecState a double linked list, which could be used to walk to the top of the stack if required. However, I&apos;m not sure if this would work for JITed code, and it does not sound like a good idea anyways :)

Is there another, better way to achieve this? @ggaren: can you estimate how much work it would be to provide a patch for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>431422</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-07-01 14:04:01 -0700</bug_when>
    <thetext>&gt; Currently, I see three options to achieve this:
&gt; 1) Track the exit points: Is the assumption correct that leaving JSC is only possible via implementations of ExecutableBase? If so, these implementations could be used as a guard to update JSMainThreadExecState::currentState().

Not quite. ExecutableBase is just the data structure that represents executable code. Entering and exiting executable code is managed by the JIT and the interpreter.

&gt; 2) Track the current stack frame whenever code is executed with a new stack frame. It seems as if there are not too may places in the code which do this. This could, however, add a speed-penalty to the execution.

Indeed, this is a known performance regression.

&gt; 3) Make the ExecState a double linked list, which could be used to walk to the top of the stack if required. However, I&apos;m not sure if this would work for JITed code, and it does not sound like a good idea anyways :)

This just begs the original question, since you need a pointer to the head of the list for this to work for you.

I think the right way to do this is for the JIT and Interpreter to track entry and exit points into the VM, but not track intermediate call frame changes that happen within the VM.

&gt; @ggaren: can you estimate how much work it would be to provide a patch for this?

For someone unfamiliar with the code, my guess is a few weeks to a month.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436705</commentid>
    <comment_count>4</comment_count>
      <attachid>100721</attachid>
    <who name="Michael Schneider">michschn</who>
    <bug_when>2011-07-13 15:27:32 -0700</bug_when>
    <thetext>Created attachment 100721
Diff of changes done to track exit points in code generated out of IDL files.

(In reply to comment #3)

&gt; This just begs the original question, since you need a pointer to the head of the list for this to work for you.

I would assume one could start walking from WebCore&apos;s JSMainThreadExecState::currentState(). Not a JSC feature, but what I would expect to be correct for the timeline.

&gt; I think the right way to do this is for the JIT and Interpreter to track entry and exit points into the VM, but not track intermediate call frame changes that happen within the VM.

I started looking around in the JSC code, but then it occurred to me that a simpler, WebCore only solution could do it: Currently, JSMainThreadExecState tracks selected entry points to JSC. The exit points are defined by IDL, so why not logging the ExecState in the code generated out of these definitions? I tested this (for now just function calls and custom property getters/setters). I used it with the timeline and got reasonable stack traces with it.

@ggaren: Is this a feasible way of doing this? By doing so I can avoid introducing a thread global state and  runtime overhead to the JSC. I guess the question is how many exit points I actually covered by this change and how hard it is to cover the rest. Please let me know what you think of this approach, so that I can either refine it - or start working on a thread state patch for JSC, if it turns out that this approach is bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436716</commentid>
    <comment_count>5</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-07-13 15:45:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=100721) [details]
&gt; Diff of changes done to track exit points in code generated out of IDL files.
&gt; 
&gt; (In reply to comment #3)
&gt; 
&gt; &gt; This just begs the original question, since you need a pointer to the head of the list for this to work for you.
&gt; 
&gt; I would assume one could start walking from WebCore&apos;s JSMainThreadExecState::currentState(). Not a JSC feature, but what I would expect to be correct for the timeline.
&gt; 
&gt; &gt; I think the right way to do this is for the JIT and Interpreter to track entry and exit points into the VM, but not track intermediate call frame changes that happen within the VM.
&gt; 
&gt; I started looking around in the JSC code, but then it occurred to me that a simpler, WebCore only solution could do it: Currently, JSMainThreadExecState tracks selected entry points to JSC. The exit points are defined by IDL, so why not logging the ExecState in the code generated out of these definitions? I tested this (for now just function calls and custom property getters/setters). I used it with the timeline and got reasonable stack traces with it.
&gt; 
&gt; @ggaren: Is this a feasible way of doing this? By doing so I can avoid introducing a thread global state and  runtime overhead to the JSC. I guess the question is how many exit points I actually covered by this change and how hard it is to cover the rest. Please let me know what you think of this approach, so that I can either refine it - or start working on a thread state patch for JSC, if it turns out that this approach is bad.

We&apos;re working on implementing Error.stack that will introduce logic to JSC to allow it to provide correct stack traces at all times, across arbitrary boundaries.  This will eventually lead to dropping the JSC-inspectors current mechanism for tracking callframes, etc when debugging, and just generally lead to a better life for all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437072</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Schneider">michschn</who>
    <bug_when>2011-07-14 07:14:17 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; We&apos;re working on implementing Error.stack that will introduce logic to JSC to allow it to provide correct stack traces at all times, across arbitrary boundaries.  This will eventually lead to dropping the JSC-inspectors current mechanism for tracking callframes, etc when debugging, and just generally lead to a better life for all.

That is great news - do you have a timeline on when this is going to be committed?
Will this change allow to get the stack trace even without the respective JSC::ExecState handy, ie will it be easy to implement ScriptCallStackFactory::createScriptCallStack(size_t, bool)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445345</commentid>
    <comment_count>7</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-08-02 10:27:14 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; We&apos;re working on implementing Error.stack that will introduce logic to JSC to allow it to provide correct stack traces at all times, across arbitrary boundaries.  This will eventually lead to dropping the JSC-inspectors current mechanism for tracking callframes, etc when debugging, and just generally lead to a better life for all.
&gt; 
&gt; That is great news - do you have a timeline on when this is going to be committed?
&gt; Will this change allow to get the stack trace even without the respective JSC::ExecState handy, ie will it be easy to implement ScriptCallStackFactory::createScriptCallStack(size_t, bool)?

Technically yes, but only due to commonJSGlobalData.  It would be much better if you could provide either a World pointer or callframe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511744</commentid>
    <comment_count>8</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2011-11-30 07:43:28 -0800</bug_when>
    <thetext>Bug 73099 is another feature that needed this support in JSC before it will work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627684</commentid>
    <comment_count>9</comment_count>
      <attachid>142716</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-05-18 07:35:53 -0700</bug_when>
    <thetext>Created attachment 142716
patch for PR40118</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627694</commentid>
    <comment_count>10</comment_count>
      <attachid>142716</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-18 07:48:05 -0700</bug_when>
    <thetext>Comment on attachment 142716
patch for PR40118

Attachment 142716 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12725509</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627695</commentid>
    <comment_count>11</comment_count>
      <attachid>142716</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-18 07:51:02 -0700</bug_when>
    <thetext>Comment on attachment 142716
patch for PR40118

Attachment 142716 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12722817</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627706</commentid>
    <comment_count>12</comment_count>
      <attachid>142716</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-18 08:20:26 -0700</bug_when>
    <thetext>Comment on attachment 142716
patch for PR40118

Attachment 142716 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12719871</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627708</commentid>
    <comment_count>13</comment_count>
      <attachid>142716</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-18 08:23:13 -0700</bug_when>
    <thetext>Comment on attachment 142716
patch for PR40118

Attachment 142716 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12725513</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627713</commentid>
    <comment_count>14</comment_count>
      <attachid>142716</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-05-18 08:28:30 -0700</bug_when>
    <thetext>Comment on attachment 142716
patch for PR40118

Attachment 142716 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12727385</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627738</commentid>
    <comment_count>15</comment_count>
      <attachid>142716</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-18 08:59:20 -0700</bug_when>
    <thetext>Comment on attachment 142716
patch for PR40118

Attachment 142716 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12716919</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627851</commentid>
    <comment_count>16</comment_count>
      <attachid>142747</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-05-18 11:28:01 -0700</bug_when>
    <thetext>Created attachment 142747
patch for PR40118</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627926</commentid>
    <comment_count>17</comment_count>
      <attachid>142747</attachid>
    <who name="">jochen</who>
    <bug_when>2012-05-18 12:29:32 -0700</bug_when>
    <thetext>Comment on attachment 142747
patch for PR40118

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

&gt; Source/WebCore/bindings/js/ScriptCallStackFactory.cpp:60
&gt; +    if (exec) {

any reason not to just return createScriptCallStack(exec, maxStackSize)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627964</commentid>
    <comment_count>18</comment_count>
      <attachid>142747</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-05-18 12:59:31 -0700</bug_when>
    <thetext>Comment on attachment 142747
patch for PR40118

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

&gt; Source/JavaScriptCore/interpreter/Interpreter.h:180
&gt; +        UString getSourceURL() const
&gt; +        {
&gt; +            bool hasSourceURLInfo = !sourceURL.isNull() &amp;&amp; !sourceURL.isEmpty();
&gt; +            String traceLine;
&gt; +
&gt; +            switch (codeType) {
&gt; +            case StackFrameEvalCode:
&gt; +            case StackFrameFunctionCode:
&gt; +            case StackFrameGlobalCode:
&gt; +                if (hasSourceURLInfo)
&gt; +                    traceLine = sourceURL.ascii().data();
&gt; +                else
&gt; +                    traceLine = &quot;&quot;;
&gt; +                break;
&gt; +            case StackFrameNativeCode:
&gt; +                traceLine = &quot;[native code]&quot;;
&gt; +                break;
&gt; +            default:
&gt; +                traceLine = &quot;&quot;;
&gt; +            }
&gt; +            return traceLine.impl();
&gt; +        }
&gt; +        UString getFunctionName(CallFrame* callFrame) const
&gt; +        {
&gt; +            String traceLine;
&gt; +            JSObject* stackFrameCallee = callee.get();
&gt; +
&gt; +            switch (codeType) {
&gt; +            case StackFrameEvalCode:
&gt; +                traceLine = &quot;eval code&quot;;
&gt; +                break;
&gt; +            case StackFrameNativeCode: {
&gt; +                if (callee) {
&gt; +                    UString functionName = getCalculatedDisplayName(callFrame, stackFrameCallee);
&gt; +                    traceLine = functionName.ascii().data();
&gt; +                } else
&gt; +                    traceLine = &quot;&quot;;
&gt; +                break;
&gt; +            }
&gt; +            case StackFrameFunctionCode: {
&gt; +                UString functionName = getCalculatedDisplayName(callFrame, stackFrameCallee);
&gt; +                traceLine = functionName.ascii().data();
&gt; +                break;
&gt; +            }
&gt; +            case StackFrameGlobalCode:
&gt; +                traceLine = &quot;global code&quot;;
&gt; +                break;
&gt; +            default:
&gt; +                traceLine = &quot;&quot;;
&gt; +            }
&gt; +            return traceLine.impl();
&gt; +        }
&gt; +        unsigned getLineNumber() const
&gt; +        {
&gt; +            return line &gt; -1 ? line : 0;
&gt; +        }
&gt;      };

StackFrame already has a toString method, this just seems like a huge amount of code duplication, if there are problems with the current toString behaviour we should just fix that.

&gt;&gt; Source/WebCore/bindings/js/ScriptCallStackFactory.cpp:60
&gt;&gt; +    if (exec) {
&gt; 
&gt; any reason not to just return createScriptCallStack(exec, maxStackSize)?

Yeah, this api should just take a World as input -- taking a world allows us to get the global data, and allows us in future to give each world its own globla data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628084</commentid>
    <comment_count>19</comment_count>
    <who name="sfa">afscian</who>
    <bug_when>2012-05-18 14:33:08 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 142747 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=142747&amp;action=review
&gt; 
&gt; &gt;      };
&gt; 
&gt; StackFrame already has a toString method, this just seems like a huge amount of code duplication, if there are problems with the current toString behaviour we should just fix that.

The construction of the Inspector stack trace needs the fn/url/line as separate items so I could have asked for the toString() and parsed it to extract the items but the toString() format has the optional &apos;@&apos; and could be problematic to parse reliably. That lead me to create the fn/url/line member fns by extracting the logic from toString() but refactoring toString() in terms of the member fns adds inefficiency. I don&apos;t mind doing it if you feel that is best (I agree it is best from the maintenance viewpoint).

I could submit a followup patch (to this PR) that refactors toString() to use the member fns:

        UString toString(CallFrame* callFrame) const
        {   String traceLine;
            UString functionName = getFunctionName(callFrame);
            UString sourceURL = getSourceURL();
            char const *urlSeparator = ( functionName.isEmpty() || sourceURL.isEmpty() ) ? &quot;&quot; : &quot;@&quot;;
            if (line &gt; -1)
                traceLine = String::format(&quot;%s%s%s:%d&quot;, functionName.ascii().data(), urlSeparator, sourceURL.ascii().data(), line);
            else
                traceLine = String::format(&quot;%s%s%s&quot;, functionName.ascii().data(), urlSeparator, sourceURL.ascii().data());
            return traceLine.impl();
        }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632747</commentid>
    <comment_count>20</comment_count>
      <attachid>143824</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-05-24 07:11:11 -0700</bug_when>
    <thetext>Created attachment 143824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632760</commentid>
    <comment_count>21</comment_count>
      <attachid>143824</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-24 07:20:49 -0700</bug_when>
    <thetext>Comment on attachment 143824
Patch

Attachment 143824 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12803162</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632762</commentid>
    <comment_count>22</comment_count>
      <attachid>143824</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-05-24 07:23:20 -0700</bug_when>
    <thetext>Comment on attachment 143824
Patch

Attachment 143824 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12800196</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632771</commentid>
    <comment_count>23</comment_count>
      <attachid>143824</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-24 07:27:31 -0700</bug_when>
    <thetext>Comment on attachment 143824
Patch

Attachment 143824 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12803165</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632862</commentid>
    <comment_count>24</comment_count>
      <attachid>143840</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-05-24 09:14:29 -0700</bug_when>
    <thetext>Created attachment 143840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650801</commentid>
    <comment_count>25</comment_count>
      <attachid>143840</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-16 09:08:16 -0700</bug_when>
    <thetext>Comment on attachment 143840
Patch

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

I&apos;m not a reviewer, neither so familiar with this part of code. But I am trying to give some coding style suggestions:

&gt; Source/JavaScriptCore/interpreter/Interpreter.h:87
&gt; +            char const *urlSeparator = (functionName.isEmpty() || sourceURL.isEmpty()) ? &quot;&quot; : &quot;@&quot;;

const char* is more popular in webkit rather than char const*. I don&apos;t know why &quot;Type *varName&quot; didn&apos;t trigger a style error, but usually we use &quot;Type* varName&quot;.

&gt; Source/JavaScriptCore/interpreter/Interpreter.h:91
&gt; +            if (line &gt; -1)
&gt; +                traceLine = String::format(&quot;%s%s%s:%d&quot;, functionName.ascii().data(), urlSeparator, sourceURL.ascii().data(), line);
&gt; +            else
&gt; +                traceLine = String::format(&quot;%s%s%s&quot;, functionName.ascii().data(), urlSeparator, sourceURL.ascii().data());

Could functionName.ascii().data() or sourceURL.ascii().data() be null? I would use StringBuilder rather than String::format.

&gt; Source/JavaScriptCore/interpreter/Interpreter.h:113
&gt; +                traceLine = &quot;&quot;;
&gt; +            }

should we put a break here?

&gt; Source/JavaScriptCore/interpreter/Interpreter.h:146
&gt; +        unsigned getLineNumber() const

webkit code perfers foo() to getFoo() in this case there is no argument. same thing for getFunctionName and getSourceURL

Also, any reason why we need to make these get functions inline? I would move them to .cpp file

&gt; Source/WebCore/bindings/js/ScriptCallStackFactory.cpp:60
&gt; +    JSC::ExecState* exec = JSMainThreadExecState::currentState();
&gt; +    if (exec) {

could be if (JSC::ExecState* exec = JSMainThreadExecState::currentState()) {

&gt; Source/WebCore/bindings/js/ScriptCallStackFactory.cpp:63
&gt; +        for (Vector&lt;StackFrame&gt;::iterator iter = stackTrace.begin(); iter &lt; stackTrace.end(); iter++) {

should be const_iterator?

&gt; Source/WebCore/bindings/js/ScriptCallStackFactory.cpp:65
&gt; +            frames.append(ScriptCallFrame(ustringToString(level.getFunctionName(exec)), ustringToString(level.getSourceURL()), level.getLineNumber()));

So finally we need a WTF::String. Why do we return a UString in getSourceURL?

&gt; Source/WebCore/bindings/js/ScriptCallStackFactory.cpp:70
&gt; +    if (!frames.size() &amp;&amp; !emptyIsAllowed) {

frame.isEmpty() is better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650852</commentid>
    <comment_count>26</comment_count>
      <attachid>143840</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-06-16 12:54:51 -0700</bug_when>
    <thetext>Comment on attachment 143840
Patch

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

r- here, far too much of your code is blindly assuming ascii names, UString and String are both utf16, calling ascii potentially loses data so you shouldn&apos;t be calling it outside of debug code.

&gt;&gt; Source/JavaScriptCore/interpreter/Interpreter.h:87
&gt;&gt; +            char const *urlSeparator = (functionName.isEmpty() || sourceURL.isEmpty()) ? &quot;&quot; : &quot;@&quot;;
&gt; 
&gt; const char* is more popular in webkit rather than char const*. I don&apos;t know why &quot;Type *varName&quot; didn&apos;t trigger a style error, but usually we use &quot;Type* varName&quot;.

Why are you modifying the toString behaviour of stackframe?

&gt; Source/JavaScriptCore/interpreter/Interpreter.h:138
&gt; +        UString getFunctionName(CallFrame* callFrame) const
&gt; +        {
&gt;              String traceLine;
&gt;              JSObject* stackFrameCallee = callee.get();
&gt;  
&gt;              switch (codeType) {
&gt;              case StackFrameEvalCode:
&gt; -                if (hasSourceURLInfo) {
&gt; -                    traceLine = hasLineInfo ? String::format(&quot;eval code@%s:%d&quot;, sourceURL.ascii().data(), line) 
&gt; -                                            : String::format(&quot;eval code@%s&quot;, sourceURL.ascii().data());
&gt; -                } else
&gt; -                    traceLine = String::format(&quot;eval code&quot;);
&gt; +                traceLine = &quot;eval code&quot;;
&gt;                  break;
&gt;              case StackFrameNativeCode: {
&gt;                  if (callee) {
&gt;                      UString functionName = getCalculatedDisplayName(callFrame, stackFrameCallee);
&gt; -                    traceLine = String::format(&quot;%s@[native code]&quot;, functionName.ascii().data());
&gt; +                    traceLine = functionName.ascii().data();
&gt;                  } else
&gt; -                    traceLine = &quot;[native code]&quot;;
&gt; +                    traceLine = &quot;&quot;;
&gt;                  break;
&gt;              }
&gt;              case StackFrameFunctionCode: {
&gt;                  UString functionName = getCalculatedDisplayName(callFrame, stackFrameCallee);
&gt; -                if (hasSourceURLInfo) {
&gt; -                    traceLine = hasLineInfo ? String::format(&quot;%s@%s:%d&quot;, functionName.ascii().data(), sourceURL.ascii().data(), line)
&gt; -                                            : String::format(&quot;%s@%s&quot;, functionName.ascii().data(), sourceURL.ascii().data());
&gt; -                } else
&gt; -                    traceLine = String::format(&quot;%s\n&quot;, functionName.ascii().data());
&gt; +                traceLine = functionName.ascii().data();
&gt;                  break;
&gt;              }
&gt;              case StackFrameGlobalCode:

You&apos;re making this just store the function name, so there&apos;s no reason copy into a separate 8 bit buffer.  It&apos;s a) expensive, and b) potentially data losing.  just use ustringToString() that&apos;s going to be a trivial increment  of a refcount.

&gt;&gt; Source/WebCore/bindings/js/ScriptCallStackFactory.cpp:60
&gt;&gt; +    if (exec) {
&gt; 
&gt; could be if (JSC::ExecState* exec = JSMainThreadExecState::currentState()) {

A better approach would be
if (!exec)
    return ...;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651536</commentid>
    <comment_count>27</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-18 10:57:35 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; A better approach would be
&gt; if (!exec)
&gt;     return ...;

I noticed there are still some functional code running for !exec case. They are probably unnecessary though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652450</commentid>
    <comment_count>28</comment_count>
      <attachid>148334</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-06-19 07:53:43 -0700</bug_when>
    <thetext>Created attachment 148334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652452</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 07:57:29 -0700</bug_when>
    <thetext>Attachment 148334 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/interpreter/Interpreter.h:81:  The parameter name &quot;callFrame&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/interpreter/Interpreter.h:83:  The parameter name &quot;callFrame&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 5 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>652454</commentid>
    <comment_count>30</comment_count>
    <who name="sfa">afscian</who>
    <bug_when>2012-06-19 08:02:03 -0700</bug_when>
    <thetext>New patch submitted, it is hoped that this one addresses all the comments. The refactoring of toString was done based on previous comments. I maintained the style used in the other prototypes of Interpreter.h also WRT argument naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652467</commentid>
    <comment_count>31</comment_count>
      <attachid>148334</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-19 08:24:16 -0700</bug_when>
    <thetext>Comment on attachment 148334
Patch

Attachment 148334 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12987089</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652470</commentid>
    <comment_count>32</comment_count>
      <attachid>148339</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-06-19 08:24:38 -0700</bug_when>
    <thetext>Created attachment 148339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652474</commentid>
    <comment_count>33</comment_count>
      <attachid>148339</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-19 08:37:00 -0700</bug_when>
    <thetext>Comment on attachment 148339
Patch

Attachment 148339 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12990015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652491</commentid>
    <comment_count>34</comment_count>
      <attachid>148339</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-19 08:44:18 -0700</bug_when>
    <thetext>Comment on attachment 148339
Patch

Attachment 148339 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12976633</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652512</commentid>
    <comment_count>35</comment_count>
      <attachid>148347</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-06-19 09:11:39 -0700</bug_when>
    <thetext>Created attachment 148347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652523</commentid>
    <comment_count>36</comment_count>
      <attachid>148347</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-19 09:30:38 -0700</bug_when>
    <thetext>Comment on attachment 148347
Patch

Attachment 148347 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12976644</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652546</commentid>
    <comment_count>37</comment_count>
      <attachid>148352</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-06-19 10:05:52 -0700</bug_when>
    <thetext>Created attachment 148352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652595</commentid>
    <comment_count>38</comment_count>
    <who name="sfa">afscian</who>
    <bug_when>2012-06-19 10:52:49 -0700</bug_when>
    <thetext>The StackTrace member functions are back to being inline in the current patch to cleanup the Win and Mac64 linkage issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656558</commentid>
    <comment_count>39</comment_count>
      <attachid>149291</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-06-25 07:51:16 -0700</bug_when>
    <thetext>Created attachment 149291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658785</commentid>
    <comment_count>40</comment_count>
      <attachid>149291</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-06-27 12:37:49 -0700</bug_when>
    <thetext>Comment on attachment 149291
Patch

looks good to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658802</commentid>
    <comment_count>41</comment_count>
      <attachid>149291</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 12:55:02 -0700</bug_when>
    <thetext>Comment on attachment 149291
Patch

Clearing flags on attachment: 149291

Committed r121359: &lt;http://trac.webkit.org/changeset/121359&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>658803</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 12:55:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659011</commentid>
    <comment_count>43</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-27 17:32:40 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 90115</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659025</commentid>
    <comment_count>44</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-06-27 17:56:20 -0700</bug_when>
    <thetext>(In reply to comment #43)
&gt; Re-opened since this is blocked by 90115

Can someone please attach or link to the failing tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663064</commentid>
    <comment_count>45</comment_count>
      <attachid>150821</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-07-04 10:51:58 -0700</bug_when>
    <thetext>Created attachment 150821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663066</commentid>
    <comment_count>46</comment_count>
      <attachid>150821</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-07-04 10:55:23 -0700</bug_when>
    <thetext>Comment on attachment 150821
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663089</commentid>
    <comment_count>47</comment_count>
      <attachid>150830</attachid>
    <who name="sfa">afscian</who>
    <bug_when>2012-07-04 12:08:20 -0700</bug_when>
    <thetext>Created attachment 150830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663168</commentid>
    <comment_count>48</comment_count>
      <attachid>150830</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-04 14:37:10 -0700</bug_when>
    <thetext>Comment on attachment 150830
Patch

Clearing flags on attachment: 150830

Committed r121871: &lt;http://trac.webkit.org/changeset/121871&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663169</commentid>
    <comment_count>49</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-04 14:37:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>100721</attachid>
            <date>2011-07-13 15:27:32 -0700</date>
            <delta_ts>2011-07-13 15:27:32 -0700</delta_ts>
            <desc>Diff of changes done to track exit points in code generated out of IDL files.</desc>
            <filename>TimelineStackTraces.diff</filename>
            <type>application/octet-stream</type>
            <size>4036</size>
            <attacher name="Michael Schneider">michschn</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRl
LmgKaW5kZXggNDM2ZGU1ZS4uNWQxMWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgKQEAgLTU0LDcgKzU0LDYgQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gSlNDOjpldmFsdWF0ZShleGVjLCBjaGFpbiwgc291cmNlLCB0aGlz
VmFsdWUpOwogICAgIH07CiAKLXByb3RlY3RlZDoKICAgICBleHBsaWNpdCBKU01haW5UaHJlYWRF
eGVjU3RhdGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIDogbV9wcmV2aW91c1N0YXRl
KHNfbWFpblRocmVhZFN0YXRlKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKaW5kZXggYTI2NjQ0OS4uN2IxMzVi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNr
RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0
YWNrRmFjdG9yeS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJTY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5LmgiCiAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU01h
aW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMuaCIKICNpbmNs
dWRlICJTY3JpcHRDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKQEAg
LTQ4LDkgKzQ5LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhz
aXplX3QsIGJvb2wpCitQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrKHNpemVfdCBtYXhTdGFja1NpemUsIGJvb2wgLyogZW1wdHlTdGFja0lzQWxsb3dlZCAq
LykKIHsKLSAgICByZXR1cm4gMDsKKyAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IEpTTWFpblRo
cmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCk7CisgICAgaWYgKGV4ZWMgPT0gMCkKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGNyZWF0ZVNjcmlwdENhbGxTdGFjayhleGVjLCBtYXhT
dGFja1NpemUpOwogfQogCiBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0
Q2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tTaXplKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpp
bmRleCBkYWUxYzMyLi44NTI2M2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTU0OSw2ICsxNTQ5LDkgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiSlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNs
b3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJilcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgSlNNYWluVGhyZWFkRXhlY1N0YXRlIGN1cnJlbnRTdGF0ZShleGVjKTtcbiIpOworICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIn0gPSAxOwor
CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBj
YXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7
XG4iKTsKIAogICAgICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDaGVja0RvbWFpblNlY3VyaXR5In0gJiYgCkBAIC0xNzIwLDYgKzE3MjMsOSBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgInZvaWQgJHtwdXRGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpXG4iKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUgY3VycmVudFN0
YXRlKGV4ZWMpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCJ9ID0gMTsKKwogCiAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tEb21haW5TZWN1cml0
eSJ9ICYmICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05v
dENoZWNrRG9tYWluU2VjdXJpdHkifSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgewpAQCAtMTg5MCw3ICsxODk2LDkgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMICR7ZnVuY3Rpb25OYW1lfShFeGVjU3Rh
dGUqIGV4ZWMpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU01haW5UaHJlYWRFeGVjU3RhdGUg
Y3VycmVudFN0YXRlKGV4ZWMpO1xuIik7CiAKKyAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpT
TWFpblRocmVhZEV4ZWNTdGF0ZS5oIn0gPSAxOwogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
PHJ1bnRpbWUvRXJyb3IuaD4ifSA9IDE7CiAKICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9q
cy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJD
b3JlVGVzdFN1cHBvcnQuY3BwCmluZGV4IGJiYzgzYjcuLjM0YjIyYjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgIkludGVybmFscy5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiSlNJ
bnRlcm5hbHMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVk
ZSA8aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg+CkBAIC00NiwzICs0Nyw5IEBAIHZvaWQgaW5qZWN0
SW50ZXJuYWxzT2JqZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0KQogfQogCiB9CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworSlNDOjpFeGVjU3RhdGUqIEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6c19t
YWluVGhyZWFkU3RhdGUgPSAwOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142716</attachid>
            <date>2012-05-18 07:35:53 -0700</date>
            <delta_ts>2012-05-18 11:28:01 -0700</delta_ts>
            <desc>patch for PR40118</desc>
            <filename>0001-Web-Inspector-JSC-Implement-ScriptCallStack-stackTra.patch</filename>
            <type>text/plain</type>
            <size>7560</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">RnJvbSA4NDVjNmMwOWZkZDY3NzUyOTcyZDlkNWNhYjBjNDE4YzZmMjg1ZjlkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRob255IFNjaWFuIDxhc2NpYW5AcmltLmNvbT4KRGF0ZTog
RnJpLCAxOCBNYXkgMjAxMiAxMDoyOTo0NiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIFdlYiBJbnNw
ZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UKIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDExOAoKUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgpTb3VyY2UvSmF2YVNjcmlwdENvcmU6CgpBZGRlZCBtZW1iZXIgZnVuY3Rp
b25zIHRvIGV4cG9zZSBmdW5jdGlvbiBuYW1lLCB1cmxTdHJpbmcsIGFuZCBsaW5lICMuCgoqIGlu
dGVycHJldGVyL0ludGVycHJldGVyLmg6CihKU0M6OlN0YWNrRnJhbWU6OmdldFNvdXJjZVVSTCk6
CihKU0M6OlN0YWNrRnJhbWU6OmdldEZ1bmN0aW9uTmFtZSk6CihKU0M6OlN0YWNrRnJhbWU6Omdl
dExpbmVOdW1iZXIpOgoKU291cmNlL1dlYkNvcmU6CgpJbXBsZW1lbnRlZCBzdHViIGZvciBjcmVh
dGVTY3JpcHRDYWxsU3RhY2sgdG8gY2FsbCBpbnRvIEludGVycHJldGVyIGFuZCBleHRyYWN0IHRo
ZQpjdXJyZW50IHN0YWNrIGZyYW1lcywgaXRlcmF0ZSB0aHJvdWdoIHRoZSBmcmFtZXMgYW5kIGNy
ZWF0ZSB0aGUgcmV0dXJuIHJlc3VsdCByZXF1aXJlZC4KCk5vIG5ldyB0ZXN0cywgdGVzdGVkIG1h
bnVhbGx5LgoKKiBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoKKFdlYkNv
cmU6OmNyZWF0ZVNjcmlwdENhbGxTdGFjayk6Ci0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaCAgICB8ICAgNTcgKysrKysrKysrKysrKysr
KysrKysKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxNSArKysrKysKIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0Zh
Y3RvcnkuY3BwIHwgICAyNCArKysrKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlv
bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggOGNkYWI4
NS4uMDIxN2RmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDUtMTggIEFudGhvbnkgU2NpYW4gIDxhc2NpYW5AcmltLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yIFtKU0NdOiBJbXBsZW1lbnQgU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDExOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG1lbWJl
ciBmdW5jdGlvbnMgdG8gZXhwb3NlIGZ1bmN0aW9uIG5hbWUsIHVybFN0cmluZywgYW5kIGxpbmUg
Iy4KKworICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6
OlN0YWNrRnJhbWU6OmdldFNvdXJjZVVSTCk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6Omdl
dEZ1bmN0aW9uTmFtZSk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmdldExpbmVOdW1iZXIp
OgorCiAyMDEyLTA1LTAzICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAgICAgICAgIE11dGV4
IGZhaWx1cmUgd2hlbiBIYXNoVGFibGUgaXMgbWVtb3J5IG1vdmVkIGluIGRlYnVnIGJ1aWxkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCmluZGV4
IDUxODgxYTUuLjMzMWYyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMCw2ICsxMjEsNjIgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gdHJhY2VMaW5lLmltcGwo
KTsKICAgICAgICAgfQorICAgICAgICBVU3RyaW5nIGdldFNvdXJjZVVSTCgpIGNvbnN0CisgICAg
ICAgIHsKKyAgICAgICAgICAgIGJvb2wgaGFzU291cmNlVVJMSW5mbyA9ICFzb3VyY2VVUkwuaXNO
dWxsKCkgJiYgIXNvdXJjZVVSTC5pc0VtcHR5KCk7CisgICAgICAgICAgICBTdHJpbmcgdHJhY2VM
aW5lOworCisgICAgICAgICAgICBzd2l0Y2ggKGNvZGVUeXBlKSB7CisgICAgICAgICAgICBjYXNl
IFN0YWNrRnJhbWVFdmFsQ29kZToKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0aW9u
Q29kZToKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUdsb2JhbENvZGU6CisgICAgICAgICAg
ICAgICAgaWYgKGhhc1NvdXJjZVVSTEluZm8pCisgICAgICAgICAgICAgICAgICAgIHRyYWNlTGlu
ZSA9IHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9ICIiOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lTmF0aXZlQ29kZToKKyAgICAgICAgICAgICAgICB0
cmFjZUxpbmUgPSAiW25hdGl2ZSBjb2RlXSI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9ICIiOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRyYWNlTGluZS5pbXBsKCk7CisgICAgICAgIH0K
KyAgICAgICAgVVN0cmluZyBnZXRGdW5jdGlvbk5hbWUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIGNv
bnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZyB0cmFjZUxpbmU7CisgICAgICAgICAg
ICBKU09iamVjdCogc3RhY2tGcmFtZUNhbGxlZSA9IGNhbGxlZS5nZXQoKTsKKworICAgICAgICAg
ICAgc3dpdGNoIChjb2RlVHlwZSkgeworICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lRXZhbENv
ZGU6CisgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gImV2YWwgY29kZSI7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOiB7Cisg
ICAgICAgICAgICAgICAgaWYgKGNhbGxlZSkgeworICAgICAgICAgICAgICAgICAgICBVU3RyaW5n
IGZ1bmN0aW9uTmFtZSA9IGdldENhbGN1bGF0ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNr
RnJhbWVDYWxsZWUpOworICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBmdW5jdGlvbk5h
bWUuYXNjaWkoKS5kYXRhKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIHRyYWNlTGluZSA9ICIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lRnVuY3Rpb25Db2RlOiB7CisgICAgICAg
ICAgICAgICAgVVN0cmluZyBmdW5jdGlvbk5hbWUgPSBnZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUo
Y2FsbEZyYW1lLCBzdGFja0ZyYW1lQ2FsbGVlKTsKKyAgICAgICAgICAgICAgICB0cmFjZUxpbmUg
PSBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVHbG9iYWxDb2RlOgorICAg
ICAgICAgICAgICAgIHRyYWNlTGluZSA9ICJnbG9iYWwgY29kZSI7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9
ICIiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRyYWNlTGluZS5pbXBsKCk7
CisgICAgICAgIH0KKyAgICAgICAgdW5zaWduZWQgZ2V0TGluZU51bWJlcigpIGNvbnN0CisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lID4gLTEgPyBsaW5lIDogMDsKKyAgICAgICAg
fQogICAgIH07CiAKICAgICBjbGFzcyBUb3BDYWxsRnJhbWVTZXR0ZXIgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDViNWVmMTguLmIyZDAxNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNS0x
OCAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMTE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgc3R1YiBm
b3IgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrIHRvIGNhbGwgaW50byBJbnRlcnByZXRlciBhbmQgZXh0
cmFjdCB0aGUKKyAgICAgICAgY3VycmVudCBzdGFjayBmcmFtZXMsIGl0ZXJhdGUgdGhyb3VnaCB0
aGUgZnJhbWVzIGFuZCBjcmVhdGUgdGhlIHJldHVybiByZXN1bHQgcmVxdWlyZWQuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCB0ZXN0ZWQgbWFudWFsbHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNj
cmlwdENhbGxTdGFjayk6CisKIDIwMTItMDUtMTYgIEphc29uIExpdSAgPGphc29uLmxpdUB0b3Jj
aG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnldIHhociByZXF1ZXN0IHRvIG5v
biBleGlzdGVudCBmaWxlIHJlc3BvbnNlIGlzIDAgYW5kIG5vdCA0MDQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCmluZGV4
IDliNDQ2ZTMuLjNjZjE5OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDYgKzM0
LDcgQEAKIAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxGcmFtZS5oIgog
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpAQCAtNTEsOSArNTMsMjcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1QYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKHNpemVfdCwgYm9vbCkKK1Bh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soc2l6ZV90IG1h
eFN0YWNrU2l6ZSwgYm9vbCBlbXB0eUlzQWxsb3dlZCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICBW
ZWN0b3I8U2NyaXB0Q2FsbEZyYW1lPiBmcmFtZXM7CisgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMg
PSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpOworICAgIGlmIChleGVjKSB7
CisgICAgICAgIFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNlOworICAgICAgICBJbnRlcnBy
ZXRlcjo6Z2V0U3RhY2tUcmFjZSgmZXhlYy0+Z2xvYmFsRGF0YSgpLCAtMSwgc3RhY2tUcmFjZSk7
CisgICAgICAgIGZvciAoVmVjdG9yPFN0YWNrRnJhbWU+OjppdGVyYXRvciBpdGVyID0gc3RhY2tU
cmFjZS5iZWdpbigpOyBpdGVyIDwgc3RhY2tUcmFjZS5lbmQoKTsgaXRlcisrKSB7CisgICAgICAg
ICAgICBTdGFja0ZyYW1lIGxldmVsID0gKml0ZXI7CisgICAgICAgICAgICBmcmFtZXMuYXBwZW5k
KFNjcmlwdENhbGxGcmFtZSh1c3RyaW5nVG9TdHJpbmcobGV2ZWwuZ2V0RnVuY3Rpb25OYW1lKGV4
ZWMpKSwgdXN0cmluZ1RvU3RyaW5nKGxldmVsLmdldFNvdXJjZVVSTCgpKSwgbGV2ZWwuZ2V0TGlu
ZU51bWJlcigpKSk7CisgICAgICAgICAgICBpZiAoZnJhbWVzLnNpemUoKSA+PSBtYXhTdGFja1Np
emUpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFm
cmFtZXMuc2l6ZSgpICYmICFlbXB0eUlzQWxsb3dlZCkgeworICAgICAgICAvLyBObyBmcmFtZXMg
Zm91bmQuIEl0IG1heSBoYXBwZW4gaW4gdGhlIGNhc2Ugd2hlcmUKKyAgICAgICAgLy8gYSBib3Vu
ZCBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBuYXRpdmUgY29kZSBmb3IgZXhhbXBsZS4KKyAgICAg
ICAgLy8gRmFsbGJhY2sgdG8gc2V0dGluZyBsaW5lTnVtYmVyIHRvIDAsIGFuZCBzb3VyY2UgYW5k
IGZ1bmN0aW9uIG5hbWUgdG8gInVuZGVmaW5lZCIuCisgICAgICAgIGZyYW1lcy5hcHBlbmQoU2Ny
aXB0Q2FsbEZyYW1lKCJ1bmRlZmluZWQiLCAidW5kZWZpbmVkIiwgMCkpOworICAgIH0KKyAgICBy
ZXR1cm4gU2NyaXB0Q2FsbFN0YWNrOjpjcmVhdGUoZnJhbWVzKTsKIH0KIAogUGFzc1JlZlB0cjxT
Y3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU0M6OkV4ZWNTdGF0ZSogZXhl
Yywgc2l6ZV90IG1heFN0YWNrU2l6ZSkKLS0gCjEuNy4xMAoK
</data>
<flag name="commit-queue"
          id="149107"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142747</attachid>
            <date>2012-05-18 11:28:01 -0700</date>
            <delta_ts>2012-05-24 09:14:23 -0700</delta_ts>
            <desc>patch for PR40118</desc>
            <filename>0001-Web-Inspector-JSC-Implement-ScriptCallStack-stackTra.patch</filename>
            <type>text/plain</type>
            <size>7577</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">RnJvbSBmOWRmNzBlNzMyYWFlZWQ5ZTM5NTcxZTU4YTExN2E4ZGY0ZDhiNjM5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRob255IFNjaWFuIDxhc2NpYW5AcmltLmNvbT4KRGF0ZTog
RnJpLCAxOCBNYXkgMjAxMiAxMDoyOTo0NiAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIFdlYiBJbnNw
ZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UKIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDExOAoKUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgpTb3VyY2UvSmF2YVNjcmlwdENvcmU6CgpBZGRlZCBtZW1iZXIgZnVuY3Rp
b25zIHRvIGV4cG9zZSBmdW5jdGlvbiBuYW1lLCB1cmxTdHJpbmcsIGFuZCBsaW5lICMuCgoqIGlu
dGVycHJldGVyL0ludGVycHJldGVyLmg6CihKU0M6OlN0YWNrRnJhbWU6OmdldFNvdXJjZVVSTCk6
CihKU0M6OlN0YWNrRnJhbWU6OmdldEZ1bmN0aW9uTmFtZSk6CihKU0M6OlN0YWNrRnJhbWU6Omdl
dExpbmVOdW1iZXIpOgoKU291cmNlL1dlYkNvcmU6CgpJbXBsZW1lbnRlZCBzdHViIGZvciBjcmVh
dGVTY3JpcHRDYWxsU3RhY2sgdG8gY2FsbCBpbnRvIEludGVycHJldGVyIGFuZCBleHRyYWN0IHRo
ZQpjdXJyZW50IHN0YWNrIGZyYW1lcywgaXRlcmF0ZSB0aHJvdWdoIHRoZSBmcmFtZXMgYW5kIGNy
ZWF0ZSB0aGUgcmV0dXJuIHJlc3VsdCByZXF1aXJlZC4KCk5vIG5ldyB0ZXN0cywgdGVzdGVkIG1h
bnVhbGx5LgoKKiBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoKKFdlYkNv
cmU6OmNyZWF0ZVNjcmlwdENhbGxTdGFjayk6Ci0tLQogU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrCiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaCAgICB8ICAgNTcgKysrKysrKysrKysrKysr
KysrKysKIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAxNSArKysrKysKIC4uLi9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0Zh
Y3RvcnkuY3BwIHwgICAyNCArKysrKysrKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlv
bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggZThhYWM0
NS4uNGU2ZDRkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTItMDUtMTggIEFudGhvbnkgU2NpYW4gIDxhc2NpYW5AcmltLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yIFtKU0NdOiBJbXBsZW1lbnQgU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDExOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG1lbWJl
ciBmdW5jdGlvbnMgdG8gZXhwb3NlIGZ1bmN0aW9uIG5hbWUsIHVybFN0cmluZywgYW5kIGxpbmUg
Iy4KKworICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmg6CisgICAgICAgIChKU0M6
OlN0YWNrRnJhbWU6OmdldFNvdXJjZVVSTCk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6Omdl
dEZ1bmN0aW9uTmFtZSk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmdldExpbmVOdW1iZXIp
OgorCiAyMDEyLTA1LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgU2V0dGluZyBhcnJheSBpbmRleCAtMSBhbmQgbG9vcGluZyBvdmVyIGFycmF5IGNhdXNlcyBi
YWQgYmVoYXZpb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRl
ci9JbnRlcnByZXRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVy
cHJldGVyLmgKaW5kZXggYWRiMjNmMi4uYjVmNGU2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTIwLDYgKzEyMSw2
MiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiB0
cmFjZUxpbmUuaW1wbCgpOwogICAgICAgICB9CisgICAgICAgIFVTdHJpbmcgZ2V0U291cmNlVVJM
KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgYm9vbCBoYXNTb3VyY2VVUkxJbmZvID0g
IXNvdXJjZVVSTC5pc051bGwoKSAmJiAhc291cmNlVVJMLmlzRW1wdHkoKTsKKyAgICAgICAgICAg
IFN0cmluZyB0cmFjZUxpbmU7CisKKyAgICAgICAgICAgIHN3aXRjaCAoY29kZVR5cGUpIHsKKyAg
ICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUV2YWxDb2RlOgorICAgICAgICAgICAgY2FzZSBTdGFj
a0ZyYW1lRnVuY3Rpb25Db2RlOgorICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lR2xvYmFsQ29k
ZToKKyAgICAgICAgICAgICAgICBpZiAoaGFzU291cmNlVVJMSW5mbykKKyAgICAgICAgICAgICAg
ICAgICAgdHJhY2VMaW5lID0gc291cmNlVVJMLmFzY2lpKCkuZGF0YSgpOworICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gIiI7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOgorICAg
ICAgICAgICAgICAgIHRyYWNlTGluZSA9ICJbbmF0aXZlIGNvZGVdIjsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgdHJhY2VMaW5l
ID0gIiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJhY2VMaW5lLmltcGwo
KTsKKyAgICAgICAgfQorICAgICAgICBVU3RyaW5nIGdldEZ1bmN0aW9uTmFtZShDYWxsRnJhbWUq
IGNhbGxGcmFtZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIHRyYWNlTGlu
ZTsKKyAgICAgICAgICAgIEpTT2JqZWN0KiBzdGFja0ZyYW1lQ2FsbGVlID0gY2FsbGVlLmdldCgp
OworCisgICAgICAgICAgICBzd2l0Y2ggKGNvZGVUeXBlKSB7CisgICAgICAgICAgICBjYXNlIFN0
YWNrRnJhbWVFdmFsQ29kZToKKyAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSAiZXZhbCBjb2Rl
IjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZU5h
dGl2ZUNvZGU6IHsKKyAgICAgICAgICAgICAgICBpZiAoY2FsbGVlKSB7CisgICAgICAgICAgICAg
ICAgICAgIFVTdHJpbmcgZnVuY3Rpb25OYW1lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNh
bGxGcmFtZSwgc3RhY2tGcmFtZUNhbGxlZSk7CisgICAgICAgICAgICAgICAgICAgIHRyYWNlTGlu
ZSA9IGZ1bmN0aW9uTmFtZS5hc2NpaSgpLmRhdGEoKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gIiI7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVGdW5jdGlvbkNv
ZGU6IHsKKyAgICAgICAgICAgICAgICBVU3RyaW5nIGZ1bmN0aW9uTmFtZSA9IGdldENhbGN1bGF0
ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNrRnJhbWVDYWxsZWUpOworICAgICAgICAgICAg
ICAgIHRyYWNlTGluZSA9IGZ1bmN0aW9uTmFtZS5hc2NpaSgpLmRhdGEoKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUds
b2JhbENvZGU6CisgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gImdsb2JhbCBjb2RlIjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgdHJhY2VMaW5lID0gIiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJh
Y2VMaW5lLmltcGwoKTsKKyAgICAgICAgfQorICAgICAgICB1bnNpZ25lZCBnZXRMaW5lTnVtYmVy
KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGxpbmUgPiAtMSA/IGxpbmUg
OiAwOworICAgICAgICB9CiAgICAgfTsKIAogICAgIGNsYXNzIFRvcENhbGxGcmFtZVNldHRlciB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZmVlNzA3OC4uNGZmYjU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDEyLTA1LTE4ICBBbnRob255IFNjaWFuICA8YXNjaWFuQHJpbS5jb20+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvciBbSlNDXTogSW1wbGVtZW50IFNjcmlwdENhbGxTdGFjazo6c3RhY2tU
cmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAx
MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnRlZCBzdHViIGZvciBjcmVhdGVTY3JpcHRDYWxsU3RhY2sgdG8gY2FsbCBpbnRvIEludGVy
cHJldGVyIGFuZCBleHRyYWN0IHRoZQorICAgICAgICBjdXJyZW50IHN0YWNrIGZyYW1lcywgaXRl
cmF0ZSB0aHJvdWdoIHRoZSBmcmFtZXMgYW5kIGNyZWF0ZSB0aGUgcmV0dXJuIHJlc3VsdCByZXF1
aXJlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRlc3RlZCBtYW51YWxseS4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKToKKwogMjAxMi0wNS0xOCAgS2VudGFybyBIYXJh
ICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XVtSZWZhY3RvcmluZ10gUmVt
b3ZlIFY4UHJveHk6OnRocm93RXJyb3IoY29uc3QgY2hhciosIEVycm9yVHlwZSwgdjg6Oklzb2xh
dGUqPTApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxs
U3RhY2tGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxT
dGFja0ZhY3RvcnkuY3BwCmluZGV4IGNjZjY3M2YuLmIyNzQwNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKQEAgLTMzLDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUg
IlNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpAQCAtNTEs
OSArNTMsMjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogCi1QYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0
YWNrKHNpemVfdCwgYm9vbCkKK1Bhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3Jp
cHRDYWxsU3RhY2soc2l6ZV90IG1heFN0YWNrU2l6ZSwgYm9vbCBlbXB0eUlzQWxsb3dlZCkKIHsK
LSAgICByZXR1cm4gMDsKKyAgICBWZWN0b3I8U2NyaXB0Q2FsbEZyYW1lPiBmcmFtZXM7CisgICAg
SlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0
ZSgpOworICAgIGlmIChleGVjKSB7CisgICAgICAgIFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1Ry
YWNlOworICAgICAgICBJbnRlcnByZXRlcjo6Z2V0U3RhY2tUcmFjZSgmZXhlYy0+Z2xvYmFsRGF0
YSgpLCBzdGFja1RyYWNlKTsKKyAgICAgICAgZm9yIChWZWN0b3I8U3RhY2tGcmFtZT46Oml0ZXJh
dG9yIGl0ZXIgPSBzdGFja1RyYWNlLmJlZ2luKCk7IGl0ZXIgPCBzdGFja1RyYWNlLmVuZCgpOyBp
dGVyKyspIHsKKyAgICAgICAgICAgIFN0YWNrRnJhbWUgbGV2ZWwgPSAqaXRlcjsKKyAgICAgICAg
ICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKHVzdHJpbmdUb1N0cmluZyhsZXZlbC5n
ZXRGdW5jdGlvbk5hbWUoZXhlYykpLCB1c3RyaW5nVG9TdHJpbmcobGV2ZWwuZ2V0U291cmNlVVJM
KCkpLCBsZXZlbC5nZXRMaW5lTnVtYmVyKCkpKTsKKyAgICAgICAgICAgIGlmIChmcmFtZXMuc2l6
ZSgpID49IG1heFN0YWNrU2l6ZSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgIH0KKyAgICBpZiAoIWZyYW1lcy5zaXplKCkgJiYgIWVtcHR5SXNBbGxvd2VkKSB7CisgICAg
ICAgIC8vIE5vIGZyYW1lcyBmb3VuZC4gSXQgbWF5IGhhcHBlbiBpbiB0aGUgY2FzZSB3aGVyZQor
ICAgICAgICAvLyBhIGJvdW5kIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5hdGl2ZSBjb2RlIGZv
ciBleGFtcGxlLgorICAgICAgICAvLyBGYWxsYmFjayB0byBzZXR0aW5nIGxpbmVOdW1iZXIgdG8g
MCwgYW5kIHNvdXJjZSBhbmQgZnVuY3Rpb24gbmFtZSB0byAidW5kZWZpbmVkIi4KKyAgICAgICAg
ZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoInVuZGVmaW5lZCIsICJ1bmRlZmluZWQiLCAw
KSk7CisgICAgfQorICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNyZWF0ZShmcmFtZXMpOwog
fQogCiBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tTaXplKQotLSAKMS43LjEwCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143824</attachid>
            <date>2012-05-24 07:11:11 -0700</date>
            <delta_ts>2012-05-24 07:36:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40118-20120524101110.patch</filename>
            <type>text/plain</type>
            <size>6677</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
Y2RhYjg1Mzc4OTEwMjdiMWNiNzc4YTFlN2UzZjI0NjZiNWNiNmMxLi4wMjE3ZGYzYzg5MjUwNTc2
NTRlMWRjNTA4NjVjMWNiMDJlNWQ4NzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMi0wNS0xOCAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6
OnN0YWNrVHJhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBleHBvc2UgZnVuY3Rpb24gbmFtZSwgdXJsU3Ry
aW5nLCBhbmQgbGluZSAjLgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoK
KyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6Z2V0U291cmNlVVJMKToKKyAgICAgICAgKEpTQzo6
U3RhY2tGcmFtZTo6Z2V0RnVuY3Rpb25OYW1lKToKKyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6
Z2V0TGluZU51bWJlcik6CisKIDIwMTItMDUtMDMgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CiAK
ICAgICAgICAgTXV0ZXggZmFpbHVyZSB3aGVuIEhhc2hUYWJsZSBpcyBtZW1vcnkgbW92ZWQgaW4g
ZGVidWcgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1YjVlZjE4YmVmNmVmNWIwNTQ0NWE2ZWU3OTRkNzc3
MTU0MzNjNTlmLi5iMmQwMTU1ZTgyN2M0MTU5NjFlNzg4NWM4NThhOTcyMThkODhkZGZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDUtMTggIEFudGhvbnkgU2NpYW4gIDxhc2Np
YW5AcmltLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yIFtKU0NdOiBJbXBsZW1lbnQgU2Ny
aXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MDExOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEltcGxlbWVudGVkIHN0dWIgZm9yIGNyZWF0ZVNjcmlwdENhbGxTdGFj
ayB0byBjYWxsIGludG8gSW50ZXJwcmV0ZXIgYW5kIGV4dHJhY3QgdGhlCisgICAgICAgIGN1cnJl
bnQgc3RhY2sgZnJhbWVzLCBpdGVyYXRlIHRocm91Z2ggdGhlIGZyYW1lcyBhbmQgY3JlYXRlIHRo
ZSByZXR1cm4gcmVzdWx0IHJlcXVpcmVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGVzdGVk
IG1hbnVhbGx5LgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9y
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTY3JpcHRDYWxsU3RhY2spOgorCiAyMDEy
LTA1LTE2ICBKYXNvbiBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAg
ICAgIFtCbGFja0JlcnJ5XSB4aHIgcmVxdWVzdCB0byBub24gZXhpc3RlbnQgZmlsZSByZXNwb25z
ZSBpcyAwIGFuZCBub3QgNDA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0ludGVycHJldGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuaAppbmRleCA1MTg4MWE1NjU1YzYzOTUwMTdiOGNlZWMxMjM5YTBkNGJm
MDVmYTgzLi4zMzFmMjEwOTI3Njk1YTc3N2I0YTEyOWIyMGMzYmU1MzgxOTBiNzJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaApAQCAtMSw1
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1p
dGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xMjAsNiArMTIxLDYyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgcmV0dXJuIHRyYWNlTGluZS5pbXBsKCk7CiAgICAgICAgIH0KKyAgICAgICAgVVN0
cmluZyBnZXRTb3VyY2VVUkwoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBib29sIGhh
c1NvdXJjZVVSTEluZm8gPSAhc291cmNlVVJMLmlzTnVsbCgpICYmICFzb3VyY2VVUkwuaXNFbXB0
eSgpOworICAgICAgICAgICAgU3RyaW5nIHRyYWNlTGluZTsKKworICAgICAgICAgICAgc3dpdGNo
IChjb2RlVHlwZSkgeworICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lRXZhbENvZGU6CisgICAg
ICAgICAgICBjYXNlIFN0YWNrRnJhbWVGdW5jdGlvbkNvZGU6CisgICAgICAgICAgICBjYXNlIFN0
YWNrRnJhbWVHbG9iYWxDb2RlOgorICAgICAgICAgICAgICAgIGlmIChoYXNTb3VyY2VVUkxJbmZv
KQorICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBzb3VyY2VVUkwuYXNjaWkoKS5kYXRh
KCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUg
PSAiIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFt
ZU5hdGl2ZUNvZGU6CisgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gIltuYXRpdmUgY29kZV0i
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgICAgICB0cmFjZUxpbmUgPSAiIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVy
biB0cmFjZUxpbmUuaW1wbCgpOworICAgICAgICB9CisgICAgICAgIFVTdHJpbmcgZ2V0RnVuY3Rp
b25OYW1lKENhbGxGcmFtZSogY2FsbEZyYW1lKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAg
ICBTdHJpbmcgdHJhY2VMaW5lOworICAgICAgICAgICAgSlNPYmplY3QqIHN0YWNrRnJhbWVDYWxs
ZWUgPSBjYWxsZWUuZ2V0KCk7CisKKyAgICAgICAgICAgIHN3aXRjaCAoY29kZVR5cGUpIHsKKyAg
ICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUV2YWxDb2RlOgorICAgICAgICAgICAgICAgIHRyYWNl
TGluZSA9ICJldmFsIGNvZGUiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBTdGFja0ZyYW1lTmF0aXZlQ29kZTogeworICAgICAgICAgICAgICAgIGlmIChjYWxsZWUp
IHsKKyAgICAgICAgICAgICAgICAgICAgVVN0cmluZyBmdW5jdGlvbk5hbWUgPSBnZXRDYWxjdWxh
dGVkRGlzcGxheU5hbWUoY2FsbEZyYW1lLCBzdGFja0ZyYW1lQ2FsbGVlKTsKKyAgICAgICAgICAg
ICAgICAgICAgdHJhY2VMaW5lID0gZnVuY3Rpb25OYW1lLmFzY2lpKCkuZGF0YSgpOworICAgICAg
ICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSAiIjsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgU3Rh
Y2tGcmFtZUZ1bmN0aW9uQ29kZTogeworICAgICAgICAgICAgICAgIFVTdHJpbmcgZnVuY3Rpb25O
YW1lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNhbGxGcmFtZSwgc3RhY2tGcmFtZUNhbGxl
ZSk7CisgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gZnVuY3Rpb25OYW1lLmFzY2lpKCkuZGF0
YSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
Y2FzZSBTdGFja0ZyYW1lR2xvYmFsQ29kZToKKyAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSAi
Z2xvYmFsIGNvZGUiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSAiIjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHJldHVybiB0cmFjZUxpbmUuaW1wbCgpOworICAgICAgICB9CisgICAgICAgIHVuc2ln
bmVkIGdldExpbmVOdW1iZXIoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
bGluZSA+IC0xID8gbGluZSA6IDA7CisgICAgICAgIH0KICAgICB9OwogCiAgICAgY2xhc3MgVG9w
Q2FsbEZyYW1lU2V0dGVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKaW5kZXggOWI0NDZlM2Q0MDY2ZjQwOTk5ZmMxYmYy
NjE1MmZmZDVmYjRiZDY4Ny4uM2NmMTk5YWU1Yjc3NTE1MTdjZWNjZTc3NmRlM2E3ZmJlZmY3ZDNk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNr
RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0
YWNrRmFjdG9yeS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChjKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMsNiArMzQsNyBAQAogCiAjaW5jbHVk
ZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CisjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJn
dW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0
Q2FsbFN0YWNrLmgiCkBAIC01MSw5ICs1MywyNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLVBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soc2l6ZV90LCBib29sKQorUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhzaXplX3QgbWF4U3RhY2tTaXplLCBib29s
IGVtcHR5SXNBbGxvd2VkKQogewotICAgIHJldHVybiAwOworICAgIFZlY3RvcjxTY3JpcHRDYWxs
RnJhbWU+IGZyYW1lczsKKyAgICBKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IEpTTWFpblRocmVhZEV4
ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCk7CisgICAgaWYgKGV4ZWMpIHsKKyAgICAgICAgVmVjdG9y
PFN0YWNrRnJhbWU+IHN0YWNrVHJhY2U7CisgICAgICAgIEludGVycHJldGVyOjpnZXRTdGFja1Ry
YWNlKCZleGVjLT5nbG9iYWxEYXRhKCksIC0xLCBzdGFja1RyYWNlKTsKKyAgICAgICAgZm9yIChW
ZWN0b3I8U3RhY2tGcmFtZT46Oml0ZXJhdG9yIGl0ZXIgPSBzdGFja1RyYWNlLmJlZ2luKCk7IGl0
ZXIgPCBzdGFja1RyYWNlLmVuZCgpOyBpdGVyKyspIHsKKyAgICAgICAgICAgIFN0YWNrRnJhbWUg
bGV2ZWwgPSAqaXRlcjsKKyAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1l
KHVzdHJpbmdUb1N0cmluZyhsZXZlbC5nZXRGdW5jdGlvbk5hbWUoZXhlYykpLCB1c3RyaW5nVG9T
dHJpbmcobGV2ZWwuZ2V0U291cmNlVVJMKCkpLCBsZXZlbC5nZXRMaW5lTnVtYmVyKCkpKTsKKyAg
ICAgICAgICAgIGlmIChmcmFtZXMuc2l6ZSgpID49IG1heFN0YWNrU2l6ZSkKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWZyYW1lcy5zaXplKCkgJiYg
IWVtcHR5SXNBbGxvd2VkKSB7CisgICAgICAgIC8vIE5vIGZyYW1lcyBmb3VuZC4gSXQgbWF5IGhh
cHBlbiBpbiB0aGUgY2FzZSB3aGVyZQorICAgICAgICAvLyBhIGJvdW5kIGZ1bmN0aW9uIGlzIGNh
bGxlZCBmcm9tIG5hdGl2ZSBjb2RlIGZvciBleGFtcGxlLgorICAgICAgICAvLyBGYWxsYmFjayB0
byBzZXR0aW5nIGxpbmVOdW1iZXIgdG8gMCwgYW5kIHNvdXJjZSBhbmQgZnVuY3Rpb24gbmFtZSB0
byAidW5kZWZpbmVkIi4KKyAgICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoInVu
ZGVmaW5lZCIsICJ1bmRlZmluZWQiLCAwKSk7CisgICAgfQorICAgIHJldHVybiBTY3JpcHRDYWxs
U3RhY2s6OmNyZWF0ZShmcmFtZXMpOwogfQogCiBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3Rh
Y2tTaXplKQo=
</data>
<flag name="commit-queue"
          id="150487"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143840</attachid>
            <date>2012-05-24 09:14:29 -0700</date>
            <delta_ts>2012-06-19 07:53:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40118-20120524121428.patch</filename>
            <type>text/plain</type>
            <size>8711</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
OGFhYzQ1MTA1OGZjNmUyZWVmYjc4OGY0YTc4ODkxZTg4OWNkNjVkLi5lNzFmMGI4NmEwMGUxN2Mw
ZjEwMjBmZWFlNDcxNzY2YjcwZWEzMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMi0wNS0yNCAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6
OnN0YWNrVHJhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBleHBvc2UgZnVuY3Rpb24gbmFtZSwgdXJsU3Ry
aW5nLCBhbmQgbGluZSAjLgorICAgICAgICBSZWZhY3RvcmVkIHRvU3RyaW5nIHRvIG1ha2UgdXNl
IG9mIHRoZSBuZXcgbWVtYmVyIGZ1bmN0aW9ucy4KKworICAgICAgICAqIGludGVycHJldGVyL0lu
dGVycHJldGVyLmg6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmdldFNvdXJjZVVSTCk6Cisg
ICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmdldEZ1bmN0aW9uTmFtZSk6CisgICAgICAgIChKU0M6
OlN0YWNrRnJhbWU6OmdldExpbmVOdW1iZXIpOgorCiAyMDEyLTA1LTE3ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgU2V0dGluZyBhcnJheSBpbmRleCAtMSBhbmQg
bG9vcGluZyBvdmVyIGFycmF5IGNhdXNlcyBiYWQgYmVoYXZpb3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZWU3
MDc4ZTAxN2Y5M2E1MGI5MzFkMmUzMTdhZjIzNzBjMmRhMWI2Li40ZmZiNTRkN2QzYmRkZDM2YTg5
Mjc1MzY5NWY1MjRlZTViNTM0NWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MDUtMTggIEFudGhvbnkgU2NpYW4gIDxhc2NpYW5AcmltLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yIFtKU0NdOiBJbXBsZW1lbnQgU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDExOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudGVkIHN0
dWIgZm9yIGNyZWF0ZVNjcmlwdENhbGxTdGFjayB0byBjYWxsIGludG8gSW50ZXJwcmV0ZXIgYW5k
IGV4dHJhY3QgdGhlCisgICAgICAgIGN1cnJlbnQgc3RhY2sgZnJhbWVzLCBpdGVyYXRlIHRocm91
Z2ggdGhlIGZyYW1lcyBhbmQgY3JlYXRlIHRoZSByZXR1cm4gcmVzdWx0IHJlcXVpcmVkLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgdGVzdGVkIG1hbnVhbGx5LgorCisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVTY3JpcHRDYWxsU3RhY2spOgorCiAyMDEyLTA1LTE4ICBLZW50YXJvIEhhcmEgIDxoYXJha2Vu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdW1JlZmFjdG9yaW5nXSBSZW1vdmUgVjhQcm94
eTo6dGhyb3dFcnJvcihjb25zdCBjaGFyKiwgRXJyb3JUeXBlLCB2ODo6SXNvbGF0ZSo9MCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKaW5kZXgg
YWRiMjNmMjM3MjM4NGRhZjg4M2IxNGVmZjhiYWY1ZGM1ZmU2ZGY0MS4uZGY0MjgwNjRhMmJlMDIx
ZmU5ZjMwN2I5YzRmZGE0ZjFmODExY2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODAsNDYgKzgxLDcyIEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBVU3RyaW5nIHNvdXJjZVVSTDsKICAgICAgICAgVVN0cmlu
ZyB0b1N0cmluZyhDYWxsRnJhbWUqIGNhbGxGcmFtZSkgY29uc3QKICAgICAgICAgeworICAgICAg
ICAgICAgU3RyaW5nIHRyYWNlTGluZTsKKyAgICAgICAgICAgIFVTdHJpbmcgZnVuY3Rpb25OYW1l
ID0gZ2V0RnVuY3Rpb25OYW1lKGNhbGxGcmFtZSk7CisgICAgICAgICAgICBVU3RyaW5nIHNvdXJj
ZVVSTCA9IGdldFNvdXJjZVVSTCgpOworICAgICAgICAgICAgY2hhciBjb25zdCAqdXJsU2VwYXJh
dG9yID0gKGZ1bmN0aW9uTmFtZS5pc0VtcHR5KCkgfHwgc291cmNlVVJMLmlzRW1wdHkoKSkgPyAi
IiA6ICJAIjsKKyAgICAgICAgICAgIGlmIChsaW5lID4gLTEpCisgICAgICAgICAgICAgICAgdHJh
Y2VMaW5lID0gU3RyaW5nOjpmb3JtYXQoIiVzJXMlczolZCIsIGZ1bmN0aW9uTmFtZS5hc2NpaSgp
LmRhdGEoKSwgdXJsU2VwYXJhdG9yLCBzb3VyY2VVUkwuYXNjaWkoKS5kYXRhKCksIGxpbmUpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmluZzo6Zm9y
bWF0KCIlcyVzJXMiLCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCksIHVybFNlcGFyYXRvciwg
c291cmNlVVJMLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIHJldHVybiB0cmFjZUxpbmUu
aW1wbCgpOworICAgICAgICB9CisgICAgICAgIFVTdHJpbmcgZ2V0U291cmNlVVJMKCkgY29uc3QK
KyAgICAgICAgewogICAgICAgICAgICAgYm9vbCBoYXNTb3VyY2VVUkxJbmZvID0gIXNvdXJjZVVS
TC5pc051bGwoKSAmJiAhc291cmNlVVJMLmlzRW1wdHkoKTsKLSAgICAgICAgICAgIGJvb2wgaGFz
TGluZUluZm8gPSBsaW5lID4gLTE7CisgICAgICAgICAgICBTdHJpbmcgdHJhY2VMaW5lOworCisg
ICAgICAgICAgICBzd2l0Y2ggKGNvZGVUeXBlKSB7CisgICAgICAgICAgICBjYXNlIFN0YWNrRnJh
bWVFdmFsQ29kZToKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0aW9uQ29kZToKKyAg
ICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUdsb2JhbENvZGU6CisgICAgICAgICAgICAgICAgaWYg
KGhhc1NvdXJjZVVSTEluZm8pCisgICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IHNvdXJj
ZVVSTC5hc2NpaSgpLmRhdGEoKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIHRyYWNlTGluZSA9ICIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBTdGFja0ZyYW1lTmF0aXZlQ29kZToKKyAgICAgICAgICAgICAgICB0cmFjZUxpbmUg
PSAiW25hdGl2ZSBjb2RlXSI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9ICIiOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgcmV0dXJuIHRyYWNlTGluZS5pbXBsKCk7CisgICAgICAgIH0KKyAgICAgICAg
VVN0cmluZyBnZXRGdW5jdGlvbk5hbWUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIGNvbnN0CisgICAg
ICAgIHsKICAgICAgICAgICAgIFN0cmluZyB0cmFjZUxpbmU7CiAgICAgICAgICAgICBKU09iamVj
dCogc3RhY2tGcmFtZUNhbGxlZSA9IGNhbGxlZS5nZXQoKTsKIAogICAgICAgICAgICAgc3dpdGNo
IChjb2RlVHlwZSkgewogICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lRXZhbENvZGU6Ci0gICAg
ICAgICAgICAgICAgaWYgKGhhc1NvdXJjZVVSTEluZm8pIHsKLSAgICAgICAgICAgICAgICAgICAg
dHJhY2VMaW5lID0gaGFzTGluZUluZm8gPyBTdHJpbmc6OmZvcm1hdCgiZXZhbCBjb2RlQCVzOiVk
Iiwgc291cmNlVVJMLmFzY2lpKCkuZGF0YSgpLCBsaW5lKSAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmc6OmZvcm1hdCgiZXZhbCBjb2RlQCVzIiwg
c291cmNlVVJMLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gU3RyaW5nOjpmb3JtYXQoImV2YWwgY29kZSIpOwor
ICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9ICJldmFsIGNvZGUiOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lTmF0aXZlQ29kZTogewogICAgICAg
ICAgICAgICAgIGlmIChjYWxsZWUpIHsKICAgICAgICAgICAgICAgICAgICAgVVN0cmluZyBmdW5j
dGlvbk5hbWUgPSBnZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUoY2FsbEZyYW1lLCBzdGFja0ZyYW1l
Q2FsbGVlKTsKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gU3RyaW5nOjpmb3JtYXQo
IiVzQFtuYXRpdmUgY29kZV0iLCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCkpOworICAgICAg
ICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCk7CiAg
ICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9ICJb
bmF0aXZlIGNvZGVdIjsKKyAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gIiI7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlIFN0YWNr
RnJhbWVGdW5jdGlvbkNvZGU6IHsKICAgICAgICAgICAgICAgICBVU3RyaW5nIGZ1bmN0aW9uTmFt
ZSA9IGdldENhbGN1bGF0ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNrRnJhbWVDYWxsZWUp
OwotICAgICAgICAgICAgICAgIGlmIChoYXNTb3VyY2VVUkxJbmZvKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHRyYWNlTGluZSA9IGhhc0xpbmVJbmZvID8gU3RyaW5nOjpmb3JtYXQoIiVzQCVzOiVk
IiwgZnVuY3Rpb25OYW1lLmFzY2lpKCkuZGF0YSgpLCBzb3VyY2VVUkwuYXNjaWkoKS5kYXRhKCks
IGxpbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3Ry
aW5nOjpmb3JtYXQoIiVzQCVzIiwgZnVuY3Rpb25OYW1lLmFzY2lpKCkuZGF0YSgpLCBzb3VyY2VV
UkwuYXNjaWkoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgICAgICB0cmFjZUxpbmUgPSBTdHJpbmc6OmZvcm1hdCgiJXNcbiIsIGZ1bmN0aW9uTmFtZS5h
c2NpaSgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gZnVuY3Rpb25OYW1l
LmFzY2lpKCkuZGF0YSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lR2xvYmFsQ29kZToKLSAgICAgICAgICAgICAgICBp
ZiAoaGFzU291cmNlVVJMSW5mbykgewotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBo
YXNMaW5lSW5mbyA/IFN0cmluZzo6Zm9ybWF0KCJnbG9iYWwgY29kZUAlczolZCIsIHNvdXJjZVVS
TC5hc2NpaSgpLmRhdGEoKSwgbGluZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiBTdHJpbmc6OmZvcm1hdCgiZ2xvYmFsIGNvZGVAJXMiLCBzb3VyY2VVUkwu
YXNjaWkoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
ICAgICB0cmFjZUxpbmUgPSBTdHJpbmc6OmZvcm1hdCgiZ2xvYmFsIGNvZGUiKTsKLSAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gImdsb2JhbCBjb2RlIjsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICAgICAgdHJhY2VMaW5lID0gIiI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4g
dHJhY2VMaW5lLmltcGwoKTsKICAgICAgICAgfQorICAgICAgICB1bnNpZ25lZCBnZXRMaW5lTnVt
YmVyKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGxpbmUgPiAtMSA/IGxp
bmUgOiAwOworICAgICAgICB9CiAgICAgfTsKIAogICAgIGNsYXNzIFRvcENhbGxGcmFtZVNldHRl
ciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3Rh
Y2tGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFj
a0ZhY3RvcnkuY3BwCmluZGV4IGNjZjY3M2ZkNDEyNTNkZGJkY2MwZDc5NGYxMWQ2OGM5ZjRiNmZh
MmQuLmIyNzQwNmQ2YzBiNTMxNGYxZDA0ODVjZTUzMDhkYjBiN2YwOGNlYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKQEAgLTMzLDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpT
TWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2lu
Y2x1ZGUgIlNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpA
QCAtNTEsOSArNTMsMjcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OwogCi1QYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0
Q2FsbFN0YWNrKHNpemVfdCwgYm9vbCkKK1Bhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVh
dGVTY3JpcHRDYWxsU3RhY2soc2l6ZV90IG1heFN0YWNrU2l6ZSwgYm9vbCBlbXB0eUlzQWxsb3dl
ZCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICBWZWN0b3I8U2NyaXB0Q2FsbEZyYW1lPiBmcmFtZXM7
CisgICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJl
bnRTdGF0ZSgpOworICAgIGlmIChleGVjKSB7CisgICAgICAgIFZlY3RvcjxTdGFja0ZyYW1lPiBz
dGFja1RyYWNlOworICAgICAgICBJbnRlcnByZXRlcjo6Z2V0U3RhY2tUcmFjZSgmZXhlYy0+Z2xv
YmFsRGF0YSgpLCBzdGFja1RyYWNlKTsKKyAgICAgICAgZm9yIChWZWN0b3I8U3RhY2tGcmFtZT46
Oml0ZXJhdG9yIGl0ZXIgPSBzdGFja1RyYWNlLmJlZ2luKCk7IGl0ZXIgPCBzdGFja1RyYWNlLmVu
ZCgpOyBpdGVyKyspIHsKKyAgICAgICAgICAgIFN0YWNrRnJhbWUgbGV2ZWwgPSAqaXRlcjsKKyAg
ICAgICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKHVzdHJpbmdUb1N0cmluZyhs
ZXZlbC5nZXRGdW5jdGlvbk5hbWUoZXhlYykpLCB1c3RyaW5nVG9TdHJpbmcobGV2ZWwuZ2V0U291
cmNlVVJMKCkpLCBsZXZlbC5nZXRMaW5lTnVtYmVyKCkpKTsKKyAgICAgICAgICAgIGlmIChmcmFt
ZXMuc2l6ZSgpID49IG1heFN0YWNrU2l6ZSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KKyAgICBpZiAoIWZyYW1lcy5zaXplKCkgJiYgIWVtcHR5SXNBbGxvd2VkKSB7
CisgICAgICAgIC8vIE5vIGZyYW1lcyBmb3VuZC4gSXQgbWF5IGhhcHBlbiBpbiB0aGUgY2FzZSB3
aGVyZQorICAgICAgICAvLyBhIGJvdW5kIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5hdGl2ZSBj
b2RlIGZvciBleGFtcGxlLgorICAgICAgICAvLyBGYWxsYmFjayB0byBzZXR0aW5nIGxpbmVOdW1i
ZXIgdG8gMCwgYW5kIHNvdXJjZSBhbmQgZnVuY3Rpb24gbmFtZSB0byAidW5kZWZpbmVkIi4KKyAg
ICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoInVuZGVmaW5lZCIsICJ1bmRlZmlu
ZWQiLCAwKSk7CisgICAgfQorICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNyZWF0ZShmcmFt
ZXMpOwogfQogCiBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0
YWNrKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tTaXplKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148334</attachid>
            <date>2012-06-19 07:53:43 -0700</date>
            <delta_ts>2012-06-19 08:24:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40118-20120619105343.patch</filename>
            <type>text/plain</type>
            <size>9765</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Y2QyOWM1NGI2NzczMWY3NjM3YjIxMjk2NmEyYTBhMmJiZjU3ZWNkLi5jNzFlNDU1YTFmYzU3MmFj
MTc4YjMzZGYyMGE4MmRlYzI2YzgzZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxMi0wNi0xOSAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6
OnN0YWNrVHJhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBleHBvc2UgZnVuY3Rpb24gbmFtZSwgdXJsU3Ry
aW5nLCBhbmQgbGluZSAjLgorICAgICAgICBSZWZhY3RvcmVkIHRvU3RyaW5nIHRvIG1ha2UgdXNl
IG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMgdG8gcmVkdWNlCisgICAgICAgIGR1cGxpY2F0ZWQg
Y29kZSBmb3IgZnV0dXJlIG1haW50ZW5hbmNlLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCBy
ZWZhY3RvcmluZyBvZiB0b1N0cmluZyBieSB0cmFjaW5nIHRocm93biBleGNlcHRpb25zLgorCisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpTdGFj
a0ZyYW1lOjp0b1N0cmluZyk6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpTdGFja0Zy
YW1lOjpmcmllbmRseVNvdXJjZVVSTCk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmZyaWVu
ZGx5RnVuY3Rpb25OYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5oOgor
ICAgICAgICAoU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmZyaWVuZGx5
TGluZU51bWJlcik6CisKIDIwMTItMDUtMTQgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CiAKICAg
ICAgICAgREZHIEpJVCBkaWRuJ3Qgd29yayB3aXRoIEFSTSBFQUJJLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJm
MzNhMzZmMDk0MmRkOWY5N2M1NWEzOGI1Zjg4YTQwOTQ0MTRmOGQuLmRkODljODNjYzczYTg5NWVm
MTcwNjgzMjUzOWMyMmZmMzZiNWJkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAx
Mi0wNi0xOSAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMTE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQg
c3R1YiBmb3IgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrIHRvIGNhbGwgaW50bworICAgICAgICBJbnRl
cnByZXRlciBhbmQgZXh0cmFjdCB0aGUgY3VycmVudCBzdGFjayBmcmFtZXMsIGl0ZXJhdGUKKyAg
ICAgICAgdGhyb3VnaCB0aGUgZnJhbWVzIGFuZCBjcmVhdGUgdGhlIHJldHVybiByZXN1bHQgcmVx
dWlyZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBtYW51YWxseSB0ZXN0ZWQgdGhyb3duIGV4
Y2VwdGlvbiBhbmQgaW5zcGVjdG9yCisgICAgICAgIHRyYWNlYmFja3MuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVNjcmlwdENhbGxTdGFjayk6CisKIDIwMTItMDYtMTIgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMjAwMzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcAppbmRleCBhMzU4YjlhYjA0ZDQ2MWNiZTI2ZmQwZDFkNWVmYWI5MjBkYzUz
ZDJkLi4yZDJjM2EzNzAzNTM5ZDZkMzQ0NGUyOTdhNzcxYzNlZjcwM2YxZTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDYW1lcm9uIFp3
YXJpY2ggPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc2LDYgKzc3LDY3IEBAIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBKU0MgewogCitVU3RyaW5nIFN0YWNrRnJhbWU6OnRvU3RyaW5nKENh
bGxGcmFtZSogY2FsbEZyYW1lKSBjb25zdAoreworICAgIFN0cmluZ0J1aWxkZXIgdHJhY2VCdWls
ZDsKKyAgICBTdHJpbmcgZnVuY3Rpb25OYW1lID0gZnJpZW5kbHlGdW5jdGlvbk5hbWUoY2FsbEZy
YW1lKTsKKyAgICBTdHJpbmcgc291cmNlVVJMID0gZnJpZW5kbHlTb3VyY2VVUkwoKTsKKyAgICB0
cmFjZUJ1aWxkLmFwcGVuZChmdW5jdGlvbk5hbWUpOworICAgIGlmICghZnVuY3Rpb25OYW1lLmlz
RW1wdHkoKSAmJiAhc291cmNlVVJMLmlzRW1wdHkoKSkKKyAgICAgICAgdHJhY2VCdWlsZC5hcHBl
bmQoJ0AnKTsKKyAgICB0cmFjZUJ1aWxkLmFwcGVuZChzb3VyY2VVUkwpOworICAgIGlmIChsaW5l
ID4gLTEpIHsKKyAgICAgICAgdHJhY2VCdWlsZC5hcHBlbmQoJzonKTsKKyAgICAgICAgdHJhY2VC
dWlsZC5hcHBlbmQoU3RyaW5nOjpudW1iZXIobGluZSkpOworICAgIH0KKyAgICByZXR1cm4gdHJh
Y2VCdWlsZC50b1N0cmluZygpLmltcGwoKTsKK30KKworU3RyaW5nIFN0YWNrRnJhbWU6OmZyaWVu
ZGx5U291cmNlVVJMKCkgY29uc3QKK3sKKyAgICBTdHJpbmcgdHJhY2VMaW5lOworCisgICAgc3dp
dGNoIChjb2RlVHlwZSkgeworICAgIGNhc2UgU3RhY2tGcmFtZUV2YWxDb2RlOgorICAgIGNhc2Ug
U3RhY2tGcmFtZUZ1bmN0aW9uQ29kZToKKyAgICBjYXNlIFN0YWNrRnJhbWVHbG9iYWxDb2RlOgor
ICAgICAgICBpZiAoIXNvdXJjZVVSTC5pc0VtcHR5KCkpCisgICAgICAgICAgICB0cmFjZUxpbmUg
PSBzb3VyY2VVUkwuaW1wbCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0YWNrRnJhbWVO
YXRpdmVDb2RlOgorICAgICAgICB0cmFjZUxpbmUgPSAiW25hdGl2ZSBjb2RlXSI7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBpZiAodHJhY2VMaW5lLmlzRW1wdHkoKSkKKyAgICAgICAgdHJh
Y2VMaW5lID0gIiI7CisgICAgcmV0dXJuIHRyYWNlTGluZTsKK30KKworU3RyaW5nIFN0YWNrRnJh
bWU6OmZyaWVuZGx5RnVuY3Rpb25OYW1lKENhbGxGcmFtZSogY2FsbEZyYW1lKSBjb25zdAorewor
ICAgIFN0cmluZyB0cmFjZUxpbmU7CisgICAgSlNPYmplY3QqIHN0YWNrRnJhbWVDYWxsZWUgPSBj
YWxsZWUuZ2V0KCk7CisKKyAgICBzd2l0Y2ggKGNvZGVUeXBlKSB7CisgICAgY2FzZSBTdGFja0Zy
YW1lRXZhbENvZGU6CisgICAgICAgIHRyYWNlTGluZSA9ICJldmFsIGNvZGUiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOgorICAgICAgICBpZiAoY2FsbGVl
KQorICAgICAgICAgICAgdHJhY2VMaW5lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNhbGxG
cmFtZSwgc3RhY2tGcmFtZUNhbGxlZSkuaW1wbCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFN0YWNrRnJhbWVGdW5jdGlvbkNvZGU6CisgICAgICAgIHRyYWNlTGluZSA9IGdldENhbGN1bGF0
ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNrRnJhbWVDYWxsZWUpLmltcGwoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTdGFja0ZyYW1lR2xvYmFsQ29kZToKKyAgICAgICAgdHJhY2VM
aW5lID0gImdsb2JhbCBjb2RlIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICh0cmFj
ZUxpbmUuaXNFbXB0eSgpKQorICAgICAgICB0cmFjZUxpbmUgPSAiIjsKKyAgICByZXR1cm4gdHJh
Y2VMaW5lOworfQorCiAvLyBSZXR1cm5zIHRoZSBkZXB0aCBvZiB0aGUgc2NvcGUgY2hhaW4gd2l0
aGluIGEgZ2l2ZW4gY2FsbCBmcmFtZS4KIHN0YXRpYyBpbnQgZGVwdGgoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIFNjb3BlQ2hhaW5Ob2RlKiBzYykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmgKaW5kZXggYWRiMjNmMjM3MjM4NGRhZjg4M2IxNGVm
ZjhiYWY1ZGM1ZmU2ZGY0MS4uNzU4ZDczYzFlODMzN2Q0MzkwY2UyZjhlYTY2ZTI4NDVjYzY1ZGJj
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmgKQEAgLTc4LDQ3ICs3OCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3Ryb25nPEV4
ZWN1dGFibGVCYXNlPiBleGVjdXRhYmxlOwogICAgICAgICBpbnQgbGluZTsKICAgICAgICAgVVN0
cmluZyBzb3VyY2VVUkw7Ci0gICAgICAgIFVTdHJpbmcgdG9TdHJpbmcoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpIGNvbnN0CisgICAgICAgIFVTdHJpbmcgdG9TdHJpbmcoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpIGNvbnN0OworICAgICAgICBTdHJpbmcgZnJpZW5kbHlTb3VyY2VVUkwoKSBjb25zdDsKKyAg
ICAgICAgU3RyaW5nIGZyaWVuZGx5RnVuY3Rpb25OYW1lKENhbGxGcmFtZSogY2FsbEZyYW1lKSBj
b25zdDsKKyAgICAgICAgdW5zaWduZWQgZnJpZW5kbHlMaW5lTnVtYmVyKCkgY29uc3QKICAgICAg
ICAgewotICAgICAgICAgICAgYm9vbCBoYXNTb3VyY2VVUkxJbmZvID0gIXNvdXJjZVVSTC5pc051
bGwoKSAmJiAhc291cmNlVVJMLmlzRW1wdHkoKTsKLSAgICAgICAgICAgIGJvb2wgaGFzTGluZUlu
Zm8gPSBsaW5lID4gLTE7Ci0gICAgICAgICAgICBTdHJpbmcgdHJhY2VMaW5lOwotICAgICAgICAg
ICAgSlNPYmplY3QqIHN0YWNrRnJhbWVDYWxsZWUgPSBjYWxsZWUuZ2V0KCk7Ci0KLSAgICAgICAg
ICAgIHN3aXRjaCAoY29kZVR5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUV2YWxD
b2RlOgotICAgICAgICAgICAgICAgIGlmIChoYXNTb3VyY2VVUkxJbmZvKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHRyYWNlTGluZSA9IGhhc0xpbmVJbmZvID8gU3RyaW5nOjpmb3JtYXQoImV2YWwg
Y29kZUAlczolZCIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSwgbGluZSkgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nOjpmb3JtYXQoImV2YWwg
Y29kZUAlcyIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmluZzo6Zm9ybWF0KCJldmFs
IGNvZGUiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgU3RhY2tG
cmFtZU5hdGl2ZUNvZGU6IHsKLSAgICAgICAgICAgICAgICBpZiAoY2FsbGVlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIFVTdHJpbmcgZnVuY3Rpb25OYW1lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlO
YW1lKGNhbGxGcmFtZSwgc3RhY2tGcmFtZUNhbGxlZSk7Ci0gICAgICAgICAgICAgICAgICAgIHRy
YWNlTGluZSA9IFN0cmluZzo6Zm9ybWF0KCIlc0BbbmF0aXZlIGNvZGVdIiwgZnVuY3Rpb25OYW1l
LmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgdHJhY2VMaW5lID0gIltuYXRpdmUgY29kZV0iOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lRnVuY3Rpb25Db2Rl
OiB7Ci0gICAgICAgICAgICAgICAgVVN0cmluZyBmdW5jdGlvbk5hbWUgPSBnZXRDYWxjdWxhdGVk
RGlzcGxheU5hbWUoY2FsbEZyYW1lLCBzdGFja0ZyYW1lQ2FsbGVlKTsKLSAgICAgICAgICAgICAg
ICBpZiAoaGFzU291cmNlVVJMSW5mbykgewotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUg
PSBoYXNMaW5lSW5mbyA/IFN0cmluZzo6Zm9ybWF0KCIlc0AlczolZCIsIGZ1bmN0aW9uTmFtZS5h
c2NpaSgpLmRhdGEoKSwgc291cmNlVVJMLmFzY2lpKCkuZGF0YSgpLCBsaW5lKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZzo6Zm9ybWF0KCIlc0Al
cyIsIGZ1bmN0aW9uTmFtZS5hc2NpaSgpLmRhdGEoKSwgc291cmNlVVJMLmFzY2lpKCkuZGF0YSgp
KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5l
ID0gU3RyaW5nOjpmb3JtYXQoIiVzXG4iLCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCkpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSBT
dGFja0ZyYW1lR2xvYmFsQ29kZToKLSAgICAgICAgICAgICAgICBpZiAoaGFzU291cmNlVVJMSW5m
bykgewotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBoYXNMaW5lSW5mbyA/IFN0cmlu
Zzo6Zm9ybWF0KCJnbG9iYWwgY29kZUAlczolZCIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSwg
bGluZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTdHJp
bmc6OmZvcm1hdCgiZ2xvYmFsIGNvZGVAJXMiLCBzb3VyY2VVUkwuYXNjaWkoKS5kYXRhKCkpOwot
ICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBT
dHJpbmc6OmZvcm1hdCgiZ2xvYmFsIGNvZGUiKTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gdHJhY2VMaW5lLmltcGwoKTsKKyAgICAgICAg
ICAgIHJldHVybiBsaW5lID4gLTEgPyBsaW5lIDogMDsKICAgICAgICAgfQogICAgIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3Rv
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9y
eS5jcHAKaW5kZXggY2NmNjczZmQ0MTI1M2RkYmRjYzBkNzk0ZjExZDY4YzlmNGI2ZmEyZC4uNjJm
NjQzNDdhMzA0ZDM4NDAzODA0OGY5NDllZjhiZDBmMTAzNmQwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExp
bWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMzMsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNNYWluVGhy
ZWFkRXhlY1N0YXRlLmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAi
U2NyaXB0Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBAIC01MSw5
ICs1MywyNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiAKLVBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3Rh
Y2soc2l6ZV90LCBib29sKQorUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlw
dENhbGxTdGFjayhzaXplX3QgbWF4U3RhY2tTaXplLCBib29sIGVtcHR5SXNBbGxvd2VkKQogewot
ICAgIHJldHVybiAwOworICAgIFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+IGZyYW1lczsKKyAgICBp
ZiAoSlNDOjpFeGVjU3RhdGUqIGV4ZWMgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRT
dGF0ZSgpKSB7CisgICAgICAgIFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNlOworICAgICAg
ICBJbnRlcnByZXRlcjo6Z2V0U3RhY2tUcmFjZSgmZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdGFja1Ry
YWNlKTsKKyAgICAgICAgZm9yIChWZWN0b3I8U3RhY2tGcmFtZT46OmNvbnN0X2l0ZXJhdG9yIGl0
ZXIgPSBzdGFja1RyYWNlLmJlZ2luKCk7IGl0ZXIgPCBzdGFja1RyYWNlLmVuZCgpOyBpdGVyKysp
IHsKKyAgICAgICAgICAgIFN0YWNrRnJhbWUgbGV2ZWwgPSAqaXRlcjsKKyAgICAgICAgICAgIGZy
YW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKGxldmVsLmZyaWVuZGx5RnVuY3Rpb25OYW1lKGV4
ZWMpLCBsZXZlbC5mcmllbmRseVNvdXJjZVVSTCgpLCBsZXZlbC5mcmllbmRseUxpbmVOdW1iZXIo
KSkpOworICAgICAgICAgICAgaWYgKGZyYW1lcy5zaXplKCkgPj0gbWF4U3RhY2tTaXplKQorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmIChmcmFtZXMuaXNF
bXB0eSgpICYmICFlbXB0eUlzQWxsb3dlZCkgeworICAgICAgICAvLyBObyBmcmFtZXMgZm91bmQu
IEl0IG1heSBoYXBwZW4gaW4gdGhlIGNhc2Ugd2hlcmUKKyAgICAgICAgLy8gYSBib3VuZCBmdW5j
dGlvbiBpcyBjYWxsZWQgZnJvbSBuYXRpdmUgY29kZSBmb3IgZXhhbXBsZS4KKyAgICAgICAgLy8g
RmFsbGJhY2sgdG8gc2V0dGluZyBsaW5lTnVtYmVyIHRvIDAsIGFuZCBzb3VyY2UgYW5kIGZ1bmN0
aW9uIG5hbWUgdG8gInVuZGVmaW5lZCIuCisgICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2Fs
bEZyYW1lKCJ1bmRlZmluZWQiLCAidW5kZWZpbmVkIiwgMCkpOworICAgIH0KKyAgICByZXR1cm4g
U2NyaXB0Q2FsbFN0YWNrOjpjcmVhdGUoZnJhbWVzKTsKIH0KIAogUGFzc1JlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgc2l6
ZV90IG1heFN0YWNrU2l6ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148339</attachid>
            <date>2012-06-19 08:24:38 -0700</date>
            <delta_ts>2012-06-19 09:11:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40118-20120619112438.patch</filename>
            <type>text/plain</type>
            <size>9745</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Y2QyOWM1NGI2NzczMWY3NjM3YjIxMjk2NmEyYTBhMmJiZjU3ZWNkLi5jNzFlNDU1YTFmYzU3MmFj
MTc4YjMzZGYyMGE4MmRlYzI2YzgzZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxMi0wNi0xOSAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6
OnN0YWNrVHJhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBleHBvc2UgZnVuY3Rpb24gbmFtZSwgdXJsU3Ry
aW5nLCBhbmQgbGluZSAjLgorICAgICAgICBSZWZhY3RvcmVkIHRvU3RyaW5nIHRvIG1ha2UgdXNl
IG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMgdG8gcmVkdWNlCisgICAgICAgIGR1cGxpY2F0ZWQg
Y29kZSBmb3IgZnV0dXJlIG1haW50ZW5hbmNlLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCBy
ZWZhY3RvcmluZyBvZiB0b1N0cmluZyBieSB0cmFjaW5nIHRocm93biBleGNlcHRpb25zLgorCisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpTdGFj
a0ZyYW1lOjp0b1N0cmluZyk6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpTdGFja0Zy
YW1lOjpmcmllbmRseVNvdXJjZVVSTCk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmZyaWVu
ZGx5RnVuY3Rpb25OYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5oOgor
ICAgICAgICAoU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmZyaWVuZGx5
TGluZU51bWJlcik6CisKIDIwMTItMDUtMTQgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CiAKICAg
ICAgICAgREZHIEpJVCBkaWRuJ3Qgd29yayB3aXRoIEFSTSBFQUJJLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJm
MzNhMzZmMDk0MmRkOWY5N2M1NWEzOGI1Zjg4YTQwOTQ0MTRmOGQuLmRkODljODNjYzczYTg5NWVm
MTcwNjgzMjUzOWMyMmZmMzZiNWJkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAx
Mi0wNi0xOSAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMTE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQg
c3R1YiBmb3IgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrIHRvIGNhbGwgaW50bworICAgICAgICBJbnRl
cnByZXRlciBhbmQgZXh0cmFjdCB0aGUgY3VycmVudCBzdGFjayBmcmFtZXMsIGl0ZXJhdGUKKyAg
ICAgICAgdGhyb3VnaCB0aGUgZnJhbWVzIGFuZCBjcmVhdGUgdGhlIHJldHVybiByZXN1bHQgcmVx
dWlyZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBtYW51YWxseSB0ZXN0ZWQgdGhyb3duIGV4
Y2VwdGlvbiBhbmQgaW5zcGVjdG9yCisgICAgICAgIHRyYWNlYmFja3MuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVNjcmlwdENhbGxTdGFjayk6CisKIDIwMTItMDYtMTIgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMjAwMzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcAppbmRleCBhMzU4YjlhYjA0ZDQ2MWNiZTI2ZmQwZDFkNWVmYWI5MjBkYzUz
ZDJkLi4yZDJjM2EzNzAzNTM5ZDZkMzQ0NGUyOTdhNzcxYzNlZjcwM2YxZTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDYW1lcm9uIFp3
YXJpY2ggPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc2LDYgKzc3LDY3IEBAIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBKU0MgewogCitVU3RyaW5nIFN0YWNrRnJhbWU6OnRvU3RyaW5nKENh
bGxGcmFtZSogY2FsbEZyYW1lKSBjb25zdAoreworICAgIFN0cmluZ0J1aWxkZXIgdHJhY2VCdWls
ZDsKKyAgICBTdHJpbmcgZnVuY3Rpb25OYW1lID0gZnJpZW5kbHlGdW5jdGlvbk5hbWUoY2FsbEZy
YW1lKTsKKyAgICBTdHJpbmcgc291cmNlVVJMID0gZnJpZW5kbHlTb3VyY2VVUkwoKTsKKyAgICB0
cmFjZUJ1aWxkLmFwcGVuZChmdW5jdGlvbk5hbWUpOworICAgIGlmICghZnVuY3Rpb25OYW1lLmlz
RW1wdHkoKSAmJiAhc291cmNlVVJMLmlzRW1wdHkoKSkKKyAgICAgICAgdHJhY2VCdWlsZC5hcHBl
bmQoJ0AnKTsKKyAgICB0cmFjZUJ1aWxkLmFwcGVuZChzb3VyY2VVUkwpOworICAgIGlmIChsaW5l
ID4gLTEpIHsKKyAgICAgICAgdHJhY2VCdWlsZC5hcHBlbmQoJzonKTsKKyAgICAgICAgdHJhY2VC
dWlsZC5hcHBlbmQoU3RyaW5nOjpudW1iZXIobGluZSkpOworICAgIH0KKyAgICByZXR1cm4gdHJh
Y2VCdWlsZC50b1N0cmluZygpLmltcGwoKTsKK30KKworU3RyaW5nIFN0YWNrRnJhbWU6OmZyaWVu
ZGx5U291cmNlVVJMKCkgY29uc3QKK3sKKyAgICBTdHJpbmcgdHJhY2VMaW5lOworCisgICAgc3dp
dGNoIChjb2RlVHlwZSkgeworICAgIGNhc2UgU3RhY2tGcmFtZUV2YWxDb2RlOgorICAgIGNhc2Ug
U3RhY2tGcmFtZUZ1bmN0aW9uQ29kZToKKyAgICBjYXNlIFN0YWNrRnJhbWVHbG9iYWxDb2RlOgor
ICAgICAgICBpZiAoIXNvdXJjZVVSTC5pc0VtcHR5KCkpCisgICAgICAgICAgICB0cmFjZUxpbmUg
PSBzb3VyY2VVUkwuaW1wbCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0YWNrRnJhbWVO
YXRpdmVDb2RlOgorICAgICAgICB0cmFjZUxpbmUgPSAiW25hdGl2ZSBjb2RlXSI7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBpZiAodHJhY2VMaW5lLmlzRW1wdHkoKSkKKyAgICAgICAgdHJh
Y2VMaW5lID0gIiI7CisgICAgcmV0dXJuIHRyYWNlTGluZTsKK30KKworU3RyaW5nIFN0YWNrRnJh
bWU6OmZyaWVuZGx5RnVuY3Rpb25OYW1lKENhbGxGcmFtZSogY2FsbEZyYW1lKSBjb25zdAorewor
ICAgIFN0cmluZyB0cmFjZUxpbmU7CisgICAgSlNPYmplY3QqIHN0YWNrRnJhbWVDYWxsZWUgPSBj
YWxsZWUuZ2V0KCk7CisKKyAgICBzd2l0Y2ggKGNvZGVUeXBlKSB7CisgICAgY2FzZSBTdGFja0Zy
YW1lRXZhbENvZGU6CisgICAgICAgIHRyYWNlTGluZSA9ICJldmFsIGNvZGUiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOgorICAgICAgICBpZiAoY2FsbGVl
KQorICAgICAgICAgICAgdHJhY2VMaW5lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNhbGxG
cmFtZSwgc3RhY2tGcmFtZUNhbGxlZSkuaW1wbCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFN0YWNrRnJhbWVGdW5jdGlvbkNvZGU6CisgICAgICAgIHRyYWNlTGluZSA9IGdldENhbGN1bGF0
ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNrRnJhbWVDYWxsZWUpLmltcGwoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTdGFja0ZyYW1lR2xvYmFsQ29kZToKKyAgICAgICAgdHJhY2VM
aW5lID0gImdsb2JhbCBjb2RlIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICh0cmFj
ZUxpbmUuaXNFbXB0eSgpKQorICAgICAgICB0cmFjZUxpbmUgPSAiIjsKKyAgICByZXR1cm4gdHJh
Y2VMaW5lOworfQorCiAvLyBSZXR1cm5zIHRoZSBkZXB0aCBvZiB0aGUgc2NvcGUgY2hhaW4gd2l0
aGluIGEgZ2l2ZW4gY2FsbCBmcmFtZS4KIHN0YXRpYyBpbnQgZGVwdGgoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIFNjb3BlQ2hhaW5Ob2RlKiBzYykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmgKaW5kZXggYWRiMjNmMjM3MjM4NGRhZjg4M2IxNGVm
ZjhiYWY1ZGM1ZmU2ZGY0MS4uMTQ4NjUzNTFiNjczNTIxMDg2MGFjMjQ2YzIwNGRiN2Y3OWJjYzk0
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmgKQEAgLTc4LDQ3ICs3OCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3Ryb25nPEV4
ZWN1dGFibGVCYXNlPiBleGVjdXRhYmxlOwogICAgICAgICBpbnQgbGluZTsKICAgICAgICAgVVN0
cmluZyBzb3VyY2VVUkw7Ci0gICAgICAgIFVTdHJpbmcgdG9TdHJpbmcoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpIGNvbnN0CisgICAgICAgIFVTdHJpbmcgdG9TdHJpbmcoQ2FsbEZyYW1lKikgY29uc3Q7
CisgICAgICAgIFN0cmluZyBmcmllbmRseVNvdXJjZVVSTCgpIGNvbnN0OworICAgICAgICBTdHJp
bmcgZnJpZW5kbHlGdW5jdGlvbk5hbWUoQ2FsbEZyYW1lKikgY29uc3Q7CisgICAgICAgIHVuc2ln
bmVkIGZyaWVuZGx5TGluZU51bWJlcigpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGJv
b2wgaGFzU291cmNlVVJMSW5mbyA9ICFzb3VyY2VVUkwuaXNOdWxsKCkgJiYgIXNvdXJjZVVSTC5p
c0VtcHR5KCk7Ci0gICAgICAgICAgICBib29sIGhhc0xpbmVJbmZvID0gbGluZSA+IC0xOwotICAg
ICAgICAgICAgU3RyaW5nIHRyYWNlTGluZTsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBzdGFja0Zy
YW1lQ2FsbGVlID0gY2FsbGVlLmdldCgpOwotCi0gICAgICAgICAgICBzd2l0Y2ggKGNvZGVUeXBl
KSB7Ci0gICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVFdmFsQ29kZToKLSAgICAgICAgICAgICAg
ICBpZiAoaGFzU291cmNlVVJMSW5mbykgewotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUg
PSBoYXNMaW5lSW5mbyA/IFN0cmluZzo6Zm9ybWF0KCJldmFsIGNvZGVAJXM6JWQiLCBzb3VyY2VV
UkwuYXNjaWkoKS5kYXRhKCksIGxpbmUpIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6IFN0cmluZzo6Zm9ybWF0KCJldmFsIGNvZGVAJXMiLCBzb3VyY2VVUkwu
YXNjaWkoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
ICAgICB0cmFjZUxpbmUgPSBTdHJpbmc6OmZvcm1hdCgiZXZhbCBjb2RlIik7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOiB7Ci0g
ICAgICAgICAgICAgICAgaWYgKGNhbGxlZSkgewotICAgICAgICAgICAgICAgICAgICBVU3RyaW5n
IGZ1bmN0aW9uTmFtZSA9IGdldENhbGN1bGF0ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNr
RnJhbWVDYWxsZWUpOwotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBTdHJpbmc6OmZv
cm1hdCgiJXNAW25hdGl2ZSBjb2RlXSIsIGZ1bmN0aW9uTmFtZS5hc2NpaSgpLmRhdGEoKSk7Ci0g
ICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9ICJb
bmF0aXZlIGNvZGVdIjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0aW9uQ29kZTogewotICAgICAgICAgICAgICAg
IFVTdHJpbmcgZnVuY3Rpb25OYW1lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNhbGxGcmFt
ZSwgc3RhY2tGcmFtZUNhbGxlZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGhhc1NvdXJjZVVSTElu
Zm8pIHsKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gaGFzTGluZUluZm8gPyBTdHJp
bmc6OmZvcm1hdCgiJXNAJXM6JWQiLCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCksIHNvdXJj
ZVVSTC5hc2NpaSgpLmRhdGEoKSwgbGluZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOiBTdHJpbmc6OmZvcm1hdCgiJXNAJXMiLCBmdW5jdGlvbk5hbWUuYXNj
aWkoKS5kYXRhKCksIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmluZzo6Zm9ybWF0KCIl
c1xuIiwgZnVuY3Rpb25OYW1lLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUdsb2JhbENvZGU6
Ci0gICAgICAgICAgICAgICAgaWYgKGhhc1NvdXJjZVVSTEluZm8pIHsKLSAgICAgICAgICAgICAg
ICAgICAgdHJhY2VMaW5lID0gaGFzTGluZUluZm8gPyBTdHJpbmc6OmZvcm1hdCgiZ2xvYmFsIGNv
ZGVAJXM6JWQiLCBzb3VyY2VVUkwuYXNjaWkoKS5kYXRhKCksIGxpbmUpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nOjpmb3JtYXQoImdsb2JhbCBj
b2RlQCVzIiwgc291cmNlVVJMLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gU3RyaW5nOjpmb3JtYXQoImdsb2Jh
bCBjb2RlIik7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgcmV0dXJuIHRyYWNlTGluZS5pbXBsKCk7CisgICAgICAgICAgICByZXR1cm4gbGluZSA+IC0x
ID8gbGluZSA6IDA7CiAgICAgICAgIH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCmluZGV4IGNjZjY3M2Zk
NDEyNTNkZGJkY2MwZDc5NGYxMWQ2OGM5ZjRiNmZhMmQuLjYyZjY0MzQ3YTMwNGQzODQwMzgwNDhm
OTQ5ZWY4YmQwZjEwMzZkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDYgKzM0
LDcgQEAKIAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxGcmFtZS5oIgog
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpAQCAtNTEsOSArNTMsMjYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1QYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKHNpemVfdCwgYm9vbCkKK1Bh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soc2l6ZV90IG1h
eFN0YWNrU2l6ZSwgYm9vbCBlbXB0eUlzQWxsb3dlZCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICBW
ZWN0b3I8U2NyaXB0Q2FsbEZyYW1lPiBmcmFtZXM7CisgICAgaWYgKEpTQzo6RXhlY1N0YXRlKiBl
eGVjID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSkgeworICAgICAgICBW
ZWN0b3I8U3RhY2tGcmFtZT4gc3RhY2tUcmFjZTsKKyAgICAgICAgSW50ZXJwcmV0ZXI6OmdldFN0
YWNrVHJhY2UoJmV4ZWMtPmdsb2JhbERhdGEoKSwgc3RhY2tUcmFjZSk7CisgICAgICAgIGZvciAo
VmVjdG9yPFN0YWNrRnJhbWU+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gc3RhY2tUcmFjZS5iZWdp
bigpOyBpdGVyIDwgc3RhY2tUcmFjZS5lbmQoKTsgaXRlcisrKSB7CisgICAgICAgICAgICBTdGFj
a0ZyYW1lIGxldmVsID0gKml0ZXI7CisgICAgICAgICAgICBmcmFtZXMuYXBwZW5kKFNjcmlwdENh
bGxGcmFtZShsZXZlbC5mcmllbmRseUZ1bmN0aW9uTmFtZShleGVjKSwgbGV2ZWwuZnJpZW5kbHlT
b3VyY2VVUkwoKSwgbGV2ZWwuZnJpZW5kbHlMaW5lTnVtYmVyKCkpKTsKKyAgICAgICAgICAgIGlm
IChmcmFtZXMuc2l6ZSgpID49IG1heFN0YWNrU2l6ZSkKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoZnJhbWVzLmlzRW1wdHkoKSAmJiAhZW1wdHlJc0Fs
bG93ZWQpIHsKKyAgICAgICAgLy8gTm8gZnJhbWVzIGZvdW5kLiBJdCBtYXkgaGFwcGVuIGluIHRo
ZSBjYXNlIHdoZXJlCisgICAgICAgIC8vIGEgYm91bmQgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20g
bmF0aXZlIGNvZGUgZm9yIGV4YW1wbGUuCisgICAgICAgIC8vIEZhbGxiYWNrIHRvIHNldHRpbmcg
bGluZU51bWJlciB0byAwLCBhbmQgc291cmNlIGFuZCBmdW5jdGlvbiBuYW1lIHRvICJ1bmRlZmlu
ZWQiLgorICAgICAgICBmcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZSgidW5kZWZpbmVkIiwg
InVuZGVmaW5lZCIsIDApKTsKKyAgICB9CisgICAgcmV0dXJuIFNjcmlwdENhbGxTdGFjazo6Y3Jl
YXRlKGZyYW1lcyk7CiB9CiAKIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3Jp
cHRDYWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIHNpemVfdCBtYXhTdGFja1NpemUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148347</attachid>
            <date>2012-06-19 09:11:39 -0700</date>
            <delta_ts>2012-06-19 10:05:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40118-20120619121138.patch</filename>
            <type>text/plain</type>
            <size>9799</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Y2QyOWM1NGI2NzczMWY3NjM3YjIxMjk2NmEyYTBhMmJiZjU3ZWNkLi5jNzFlNDU1YTFmYzU3MmFj
MTc4YjMzZGYyMGE4MmRlYzI2YzgzZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxMi0wNi0xOSAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6
OnN0YWNrVHJhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBleHBvc2UgZnVuY3Rpb24gbmFtZSwgdXJsU3Ry
aW5nLCBhbmQgbGluZSAjLgorICAgICAgICBSZWZhY3RvcmVkIHRvU3RyaW5nIHRvIG1ha2UgdXNl
IG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMgdG8gcmVkdWNlCisgICAgICAgIGR1cGxpY2F0ZWQg
Y29kZSBmb3IgZnV0dXJlIG1haW50ZW5hbmNlLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCBy
ZWZhY3RvcmluZyBvZiB0b1N0cmluZyBieSB0cmFjaW5nIHRocm93biBleGNlcHRpb25zLgorCisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpTdGFj
a0ZyYW1lOjp0b1N0cmluZyk6CisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpTdGFja0Zy
YW1lOjpmcmllbmRseVNvdXJjZVVSTCk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmZyaWVu
ZGx5RnVuY3Rpb25OYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRlci5oOgor
ICAgICAgICAoU3RhY2tGcmFtZSk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmZyaWVuZGx5
TGluZU51bWJlcik6CisKIDIwMTItMDUtMTQgIFlvbmcgTGkgIDx5b2xpQHJpbS5jb20+CiAKICAg
ICAgICAgREZHIEpJVCBkaWRuJ3Qgd29yayB3aXRoIEFSTSBFQUJJLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJm
MzNhMzZmMDk0MmRkOWY5N2M1NWEzOGI1Zjg4YTQwOTQ0MTRmOGQuLmRkODljODNjYzczYTg5NWVm
MTcwNjgzMjUzOWMyMmZmMzZiNWJkZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAx
Mi0wNi0xOSAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMTE4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQg
c3R1YiBmb3IgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrIHRvIGNhbGwgaW50bworICAgICAgICBJbnRl
cnByZXRlciBhbmQgZXh0cmFjdCB0aGUgY3VycmVudCBzdGFjayBmcmFtZXMsIGl0ZXJhdGUKKyAg
ICAgICAgdGhyb3VnaCB0aGUgZnJhbWVzIGFuZCBjcmVhdGUgdGhlIHJldHVybiByZXN1bHQgcmVx
dWlyZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBtYW51YWxseSB0ZXN0ZWQgdGhyb3duIGV4
Y2VwdGlvbiBhbmQgaW5zcGVjdG9yCisgICAgICAgIHRyYWNlYmFja3MuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVNjcmlwdENhbGxTdGFjayk6CisKIDIwMTItMDYtMTIgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxMjAwMzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcAppbmRleCBhMzU4YjlhYjA0ZDQ2MWNiZTI2ZmQwZDFkNWVmYWI5MjBkYzUz
ZDJkLi4yZDJjM2EzNzAzNTM5ZDZkMzQ0NGUyOTdhNzcxYzNlZjcwM2YxZTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDYW1lcm9uIFp3
YXJpY2ggPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc2LDYgKzc3LDY3IEBAIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBKU0MgewogCitVU3RyaW5nIFN0YWNrRnJhbWU6OnRvU3RyaW5nKENh
bGxGcmFtZSogY2FsbEZyYW1lKSBjb25zdAoreworICAgIFN0cmluZ0J1aWxkZXIgdHJhY2VCdWls
ZDsKKyAgICBTdHJpbmcgZnVuY3Rpb25OYW1lID0gZnJpZW5kbHlGdW5jdGlvbk5hbWUoY2FsbEZy
YW1lKTsKKyAgICBTdHJpbmcgc291cmNlVVJMID0gZnJpZW5kbHlTb3VyY2VVUkwoKTsKKyAgICB0
cmFjZUJ1aWxkLmFwcGVuZChmdW5jdGlvbk5hbWUpOworICAgIGlmICghZnVuY3Rpb25OYW1lLmlz
RW1wdHkoKSAmJiAhc291cmNlVVJMLmlzRW1wdHkoKSkKKyAgICAgICAgdHJhY2VCdWlsZC5hcHBl
bmQoJ0AnKTsKKyAgICB0cmFjZUJ1aWxkLmFwcGVuZChzb3VyY2VVUkwpOworICAgIGlmIChsaW5l
ID4gLTEpIHsKKyAgICAgICAgdHJhY2VCdWlsZC5hcHBlbmQoJzonKTsKKyAgICAgICAgdHJhY2VC
dWlsZC5hcHBlbmQoU3RyaW5nOjpudW1iZXIobGluZSkpOworICAgIH0KKyAgICByZXR1cm4gdHJh
Y2VCdWlsZC50b1N0cmluZygpLmltcGwoKTsKK30KKworU3RyaW5nIFN0YWNrRnJhbWU6OmZyaWVu
ZGx5U291cmNlVVJMKCkgY29uc3QKK3sKKyAgICBTdHJpbmcgdHJhY2VMaW5lOworCisgICAgc3dp
dGNoIChjb2RlVHlwZSkgeworICAgIGNhc2UgU3RhY2tGcmFtZUV2YWxDb2RlOgorICAgIGNhc2Ug
U3RhY2tGcmFtZUZ1bmN0aW9uQ29kZToKKyAgICBjYXNlIFN0YWNrRnJhbWVHbG9iYWxDb2RlOgor
ICAgICAgICBpZiAoIXNvdXJjZVVSTC5pc0VtcHR5KCkpCisgICAgICAgICAgICB0cmFjZUxpbmUg
PSBzb3VyY2VVUkwuaW1wbCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN0YWNrRnJhbWVO
YXRpdmVDb2RlOgorICAgICAgICB0cmFjZUxpbmUgPSAiW25hdGl2ZSBjb2RlXSI7CisgICAgICAg
IGJyZWFrOworICAgIH0KKyAgICBpZiAodHJhY2VMaW5lLmlzRW1wdHkoKSkKKyAgICAgICAgdHJh
Y2VMaW5lID0gIiI7CisgICAgcmV0dXJuIHRyYWNlTGluZTsKK30KKworU3RyaW5nIFN0YWNrRnJh
bWU6OmZyaWVuZGx5RnVuY3Rpb25OYW1lKENhbGxGcmFtZSogY2FsbEZyYW1lKSBjb25zdAorewor
ICAgIFN0cmluZyB0cmFjZUxpbmU7CisgICAgSlNPYmplY3QqIHN0YWNrRnJhbWVDYWxsZWUgPSBj
YWxsZWUuZ2V0KCk7CisKKyAgICBzd2l0Y2ggKGNvZGVUeXBlKSB7CisgICAgY2FzZSBTdGFja0Zy
YW1lRXZhbENvZGU6CisgICAgICAgIHRyYWNlTGluZSA9ICJldmFsIGNvZGUiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOgorICAgICAgICBpZiAoY2FsbGVl
KQorICAgICAgICAgICAgdHJhY2VMaW5lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNhbGxG
cmFtZSwgc3RhY2tGcmFtZUNhbGxlZSkuaW1wbCgpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFN0YWNrRnJhbWVGdW5jdGlvbkNvZGU6CisgICAgICAgIHRyYWNlTGluZSA9IGdldENhbGN1bGF0
ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNrRnJhbWVDYWxsZWUpLmltcGwoKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBTdGFja0ZyYW1lR2xvYmFsQ29kZToKKyAgICAgICAgdHJhY2VM
aW5lID0gImdsb2JhbCBjb2RlIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICh0cmFj
ZUxpbmUuaXNFbXB0eSgpKQorICAgICAgICB0cmFjZUxpbmUgPSAiIjsKKyAgICByZXR1cm4gdHJh
Y2VMaW5lOworfQorCiAvLyBSZXR1cm5zIHRoZSBkZXB0aCBvZiB0aGUgc2NvcGUgY2hhaW4gd2l0
aGluIGEgZ2l2ZW4gY2FsbCBmcmFtZS4KIHN0YXRpYyBpbnQgZGVwdGgoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIFNjb3BlQ2hhaW5Ob2RlKiBzYykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmgKaW5kZXggYWRiMjNmMjM3MjM4NGRhZjg4M2IxNGVm
ZjhiYWY1ZGM1ZmU2ZGY0MS4uMGJhZmVmOWY2ZTk5NWE4NjIyZTZkNTRlYTY0NGIyMTdkYmU4NDI5
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVy
LmgKQEAgLTc4LDQ3ICs3OCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgU3Ryb25nPEV4
ZWN1dGFibGVCYXNlPiBleGVjdXRhYmxlOwogICAgICAgICBpbnQgbGluZTsKICAgICAgICAgVVN0
cmluZyBzb3VyY2VVUkw7Ci0gICAgICAgIFVTdHJpbmcgdG9TdHJpbmcoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUpIGNvbnN0CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFVTdHJpbmcgdG9TdHJpbmco
Q2FsbEZyYW1lKikgY29uc3Q7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyBmcmll
bmRseVNvdXJjZVVSTCgpIGNvbnN0OworICAgICAgICBKU19FWFBPUlRfUFJJVkFURSBTdHJpbmcg
ZnJpZW5kbHlGdW5jdGlvbk5hbWUoQ2FsbEZyYW1lKikgY29uc3Q7CisgICAgICAgIHVuc2lnbmVk
IGZyaWVuZGx5TGluZU51bWJlcigpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGJvb2wg
aGFzU291cmNlVVJMSW5mbyA9ICFzb3VyY2VVUkwuaXNOdWxsKCkgJiYgIXNvdXJjZVVSTC5pc0Vt
cHR5KCk7Ci0gICAgICAgICAgICBib29sIGhhc0xpbmVJbmZvID0gbGluZSA+IC0xOwotICAgICAg
ICAgICAgU3RyaW5nIHRyYWNlTGluZTsKLSAgICAgICAgICAgIEpTT2JqZWN0KiBzdGFja0ZyYW1l
Q2FsbGVlID0gY2FsbGVlLmdldCgpOwotCi0gICAgICAgICAgICBzd2l0Y2ggKGNvZGVUeXBlKSB7
Ci0gICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVFdmFsQ29kZToKLSAgICAgICAgICAgICAgICBp
ZiAoaGFzU291cmNlVVJMSW5mbykgewotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBo
YXNMaW5lSW5mbyA/IFN0cmluZzo6Zm9ybWF0KCJldmFsIGNvZGVAJXM6JWQiLCBzb3VyY2VVUkwu
YXNjaWkoKS5kYXRhKCksIGxpbmUpIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA6IFN0cmluZzo6Zm9ybWF0KCJldmFsIGNvZGVAJXMiLCBzb3VyY2VVUkwuYXNj
aWkoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAg
ICB0cmFjZUxpbmUgPSBTdHJpbmc6OmZvcm1hdCgiZXZhbCBjb2RlIik7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOiB7Ci0gICAg
ICAgICAgICAgICAgaWYgKGNhbGxlZSkgewotICAgICAgICAgICAgICAgICAgICBVU3RyaW5nIGZ1
bmN0aW9uTmFtZSA9IGdldENhbGN1bGF0ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNrRnJh
bWVDYWxsZWUpOwotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBTdHJpbmc6OmZvcm1h
dCgiJXNAW25hdGl2ZSBjb2RlXSIsIGZ1bmN0aW9uTmFtZS5hc2NpaSgpLmRhdGEoKSk7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9ICJbbmF0
aXZlIGNvZGVdIjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0aW9uQ29kZTogewotICAgICAgICAgICAgICAgIFVT
dHJpbmcgZnVuY3Rpb25OYW1lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNhbGxGcmFtZSwg
c3RhY2tGcmFtZUNhbGxlZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGhhc1NvdXJjZVVSTEluZm8p
IHsKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gaGFzTGluZUluZm8gPyBTdHJpbmc6
OmZvcm1hdCgiJXNAJXM6JWQiLCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCksIHNvdXJjZVVS
TC5hc2NpaSgpLmRhdGEoKSwgbGluZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiBTdHJpbmc6OmZvcm1hdCgiJXNAJXMiLCBmdW5jdGlvbk5hbWUuYXNjaWko
KS5kYXRhKCksIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmluZzo6Zm9ybWF0KCIlc1xu
IiwgZnVuY3Rpb25OYW1lLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUdsb2JhbENvZGU6Ci0g
ICAgICAgICAgICAgICAgaWYgKGhhc1NvdXJjZVVSTEluZm8pIHsKLSAgICAgICAgICAgICAgICAg
ICAgdHJhY2VMaW5lID0gaGFzTGluZUluZm8gPyBTdHJpbmc6OmZvcm1hdCgiZ2xvYmFsIGNvZGVA
JXM6JWQiLCBzb3VyY2VVUkwuYXNjaWkoKS5kYXRhKCksIGxpbmUpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nOjpmb3JtYXQoImdsb2JhbCBjb2Rl
QCVzIiwgc291cmNlVVJMLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gU3RyaW5nOjpmb3JtYXQoImdsb2JhbCBj
b2RlIik7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIHRyYWNlTGluZS5pbXBsKCk7CisgICAgICAgICAgICByZXR1cm4gbGluZSA+IC0xID8g
bGluZSA6IDA7CiAgICAgICAgIH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCmluZGV4IGNjZjY3M2ZkNDEy
NTNkZGJkY2MwZDc5NGYxMWQ2OGM5ZjRiNmZhMmQuLjYyZjY0MzQ3YTMwNGQzODQwMzgwNDhmOTQ5
ZWY4YmQwZjEwMzZkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMzLDYgKzM0LDcg
QEAKIAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgorI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1
ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxGcmFtZS5oIgogI2lu
Y2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpAQCAtNTEsOSArNTMsMjYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCi1QYXNzUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKHNpemVfdCwgYm9vbCkKK1Bhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soc2l6ZV90IG1heFN0
YWNrU2l6ZSwgYm9vbCBlbXB0eUlzQWxsb3dlZCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICBWZWN0
b3I8U2NyaXB0Q2FsbEZyYW1lPiBmcmFtZXM7CisgICAgaWYgKEpTQzo6RXhlY1N0YXRlKiBleGVj
ID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3RhdGUoKSkgeworICAgICAgICBWZWN0
b3I8U3RhY2tGcmFtZT4gc3RhY2tUcmFjZTsKKyAgICAgICAgSW50ZXJwcmV0ZXI6OmdldFN0YWNr
VHJhY2UoJmV4ZWMtPmdsb2JhbERhdGEoKSwgc3RhY2tUcmFjZSk7CisgICAgICAgIGZvciAoVmVj
dG9yPFN0YWNrRnJhbWU+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gc3RhY2tUcmFjZS5iZWdpbigp
OyBpdGVyIDwgc3RhY2tUcmFjZS5lbmQoKTsgaXRlcisrKSB7CisgICAgICAgICAgICBTdGFja0Zy
YW1lIGxldmVsID0gKml0ZXI7CisgICAgICAgICAgICBmcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxG
cmFtZShsZXZlbC5mcmllbmRseUZ1bmN0aW9uTmFtZShleGVjKSwgbGV2ZWwuZnJpZW5kbHlTb3Vy
Y2VVUkwoKSwgbGV2ZWwuZnJpZW5kbHlMaW5lTnVtYmVyKCkpKTsKKyAgICAgICAgICAgIGlmIChm
cmFtZXMuc2l6ZSgpID49IG1heFN0YWNrU2l6ZSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICBpZiAoZnJhbWVzLmlzRW1wdHkoKSAmJiAhZW1wdHlJc0FsbG93
ZWQpIHsKKyAgICAgICAgLy8gTm8gZnJhbWVzIGZvdW5kLiBJdCBtYXkgaGFwcGVuIGluIHRoZSBj
YXNlIHdoZXJlCisgICAgICAgIC8vIGEgYm91bmQgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gbmF0
aXZlIGNvZGUgZm9yIGV4YW1wbGUuCisgICAgICAgIC8vIEZhbGxiYWNrIHRvIHNldHRpbmcgbGlu
ZU51bWJlciB0byAwLCBhbmQgc291cmNlIGFuZCBmdW5jdGlvbiBuYW1lIHRvICJ1bmRlZmluZWQi
LgorICAgICAgICBmcmFtZXMuYXBwZW5kKFNjcmlwdENhbGxGcmFtZSgidW5kZWZpbmVkIiwgInVu
ZGVmaW5lZCIsIDApKTsKKyAgICB9CisgICAgcmV0dXJuIFNjcmlwdENhbGxTdGFjazo6Y3JlYXRl
KGZyYW1lcyk7CiB9CiAKIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRD
YWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIHNpemVfdCBtYXhTdGFja1NpemUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148352</attachid>
            <date>2012-06-19 10:05:52 -0700</date>
            <delta_ts>2012-06-25 07:51:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40118-20120619130551.patch</filename>
            <type>text/plain</type>
            <size>9128</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Y2QyOWM1NGI2NzczMWY3NjM3YjIxMjk2NmEyYTBhMmJiZjU3ZWNkLi4wMzkxNDJhNzBjYzllMjIw
MDZhMmY1ZWFjOTk3MDBjNjZhNzhlMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0wNi0xOSAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6
OnN0YWNrVHJhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBleHBvc2UgZnVuY3Rpb24gbmFtZSwgdXJsU3Ry
aW5nLCBhbmQgbGluZSAjLgorICAgICAgICBSZWZhY3RvcmVkIHRvU3RyaW5nIHRvIG1ha2UgdXNl
IG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMgdG8gcmVkdWNlCisgICAgICAgIGR1cGxpY2F0ZWQg
Y29kZSBmb3IgZnV0dXJlIG1haW50ZW5hbmNlLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCBy
ZWZhY3RvcmluZyBvZiB0b1N0cmluZyBieSB0cmFjaW5nIHRocm93biBleGNlcHRpb25zLgorCisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAgICAgICAgKFN0YWNrRnJhbWUp
OgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjp0b1N0cmluZyk6CisgICAgICAgIChKU0M6OlN0
YWNrRnJhbWU6OmZyaWVuZGx5U291cmNlVVJMKToKKyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6
ZnJpZW5kbHlGdW5jdGlvbk5hbWUpOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjpmcmllbmRs
eUxpbmVOdW1iZXIpOgorCiAyMDEyLTA1LTE0ICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAg
ICAgICAgIERGRyBKSVQgZGlkbid0IHdvcmsgd2l0aCBBUk0gRUFCSS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZjMzYTM2ZjA5NDJkZDlmOTdjNTVhMzhiNWY4OGE0MDk0NDE0ZjhkLi5kZDg5YzgzY2M3M2E4OTVl
ZjE3MDY4MzI1MzljMjJmZjM2YjViZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTItMDYtMTkgIEFudGhvbnkgU2NpYW4gIDxhc2NpYW5AcmltLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yIFtKU0NdOiBJbXBsZW1lbnQgU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDExOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudGVk
IHN0dWIgZm9yIGNyZWF0ZVNjcmlwdENhbGxTdGFjayB0byBjYWxsIGludG8KKyAgICAgICAgSW50
ZXJwcmV0ZXIgYW5kIGV4dHJhY3QgdGhlIGN1cnJlbnQgc3RhY2sgZnJhbWVzLCBpdGVyYXRlCisg
ICAgICAgIHRocm91Z2ggdGhlIGZyYW1lcyBhbmQgY3JlYXRlIHRoZSByZXR1cm4gcmVzdWx0IHJl
cXVpcmVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbWFudWFsbHkgdGVzdGVkIHRocm93biBl
eGNlcHRpb24gYW5kIGluc3BlY3RvcgorICAgICAgICB0cmFjZWJhY2tzLgorCisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVTY3JpcHRDYWxsU3RhY2spOgorCiAyMDEyLTA2LTEyICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTIwMDM2LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuaAppbmRleCBhZGIyM2YyMzcyMzg0ZGFmODgzYjE0ZWZmOGJhZjVkYzVmZTZkZjQx
Li43M2Y0MGRiYjdjZTIwODg5MjlhOTAwNTFmMGQ5YTkzZGQ0ZDk2MTEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
OSw2ICs0MCw3IEBACiAjaW5jbHVkZSAiUmVnaXN0ZXJGaWxlLmgiCiAKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CiAKQEAgLTgwLDQ1ICs4Miw2NSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
VVN0cmluZyBzb3VyY2VVUkw7CiAgICAgICAgIFVTdHJpbmcgdG9TdHJpbmcoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGJvb2wgaGFzU291cmNlVVJM
SW5mbyA9ICFzb3VyY2VVUkwuaXNOdWxsKCkgJiYgIXNvdXJjZVVSTC5pc0VtcHR5KCk7Ci0gICAg
ICAgICAgICBib29sIGhhc0xpbmVJbmZvID0gbGluZSA+IC0xOworICAgICAgICAgICAgU3RyaW5n
QnVpbGRlciB0cmFjZUJ1aWxkOworICAgICAgICAgICAgU3RyaW5nIGZ1bmN0aW9uTmFtZSA9IGZy
aWVuZGx5RnVuY3Rpb25OYW1lKGNhbGxGcmFtZSk7CisgICAgICAgICAgICBTdHJpbmcgc291cmNl
VVJMID0gZnJpZW5kbHlTb3VyY2VVUkwoKTsKKyAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBwZW5k
KGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICBpZiAoIWZ1bmN0aW9uTmFtZS5pc0VtcHR5KCkg
JiYgIXNvdXJjZVVSTC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgdHJhY2VCdWlsZC5hcHBl
bmQoJ0AnKTsKKyAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBwZW5kKHNvdXJjZVVSTCk7CisgICAg
ICAgICAgICBpZiAobGluZSA+IC0xKSB7CisgICAgICAgICAgICAgICAgdHJhY2VCdWlsZC5hcHBl
bmQoJzonKTsKKyAgICAgICAgICAgICAgICB0cmFjZUJ1aWxkLmFwcGVuZChTdHJpbmc6Om51bWJl
cihsaW5lKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJhY2VCdWlsZC50
b1N0cmluZygpLmltcGwoKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZnJpZW5kbHlTb3Vy
Y2VVUkwoKSBjb25zdAorICAgICAgICB7CiAgICAgICAgICAgICBTdHJpbmcgdHJhY2VMaW5lOwot
ICAgICAgICAgICAgSlNPYmplY3QqIHN0YWNrRnJhbWVDYWxsZWUgPSBjYWxsZWUuZ2V0KCk7CiAK
ICAgICAgICAgICAgIHN3aXRjaCAoY29kZVR5cGUpIHsKICAgICAgICAgICAgIGNhc2UgU3RhY2tG
cmFtZUV2YWxDb2RlOgotICAgICAgICAgICAgICAgIGlmIChoYXNTb3VyY2VVUkxJbmZvKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IGhhc0xpbmVJbmZvID8gU3RyaW5nOjpmb3Jt
YXQoImV2YWwgY29kZUAlczolZCIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSwgbGluZSkgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nOjpmb3Jt
YXQoImV2YWwgY29kZUAlcyIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmluZzo6Zm9y
bWF0KCJldmFsIGNvZGUiKTsKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0aW9uQ29k
ZToKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUdsb2JhbENvZGU6CisgICAgICAgICAgICAg
ICAgaWYgKCFzb3VyY2VVUkwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICB0cmFjZUxp
bmUgPSBzb3VyY2VVUkwuaW1wbCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSBTdGFja0ZyYW1lTmF0aXZlQ29kZTogewotICAgICAgICAgICAgICAgIGlmIChjYWxs
ZWUpIHsKLSAgICAgICAgICAgICAgICAgICAgVVN0cmluZyBmdW5jdGlvbk5hbWUgPSBnZXRDYWxj
dWxhdGVkRGlzcGxheU5hbWUoY2FsbEZyYW1lLCBzdGFja0ZyYW1lQ2FsbGVlKTsKLSAgICAgICAg
ICAgICAgICAgICAgdHJhY2VMaW5lID0gU3RyaW5nOjpmb3JtYXQoIiVzQFtuYXRpdmUgY29kZV0i
LCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSAiW25hdGl2ZSBjb2RlXSI7CisgICAgICAg
ICAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOgorICAgICAgICAgICAgICAgIHRyYWNlTGlu
ZSA9ICJbbmF0aXZlIGNvZGVdIjsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0aW9uQ29kZTogewotICAgICAgICAg
ICAgICAgIFVTdHJpbmcgZnVuY3Rpb25OYW1lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNh
bGxGcmFtZSwgc3RhY2tGcmFtZUNhbGxlZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGhhc1NvdXJj
ZVVSTEluZm8pIHsKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gaGFzTGluZUluZm8g
PyBTdHJpbmc6OmZvcm1hdCgiJXNAJXM6JWQiLCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCks
IHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSwgbGluZSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmc6OmZvcm1hdCgiJXNAJXMiLCBmdW5jdGlvbk5h
bWUuYXNjaWkoKS5kYXRhKCksIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmluZzo6Zm9y
bWF0KCIlc1xuIiwgZnVuY3Rpb25OYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGlm
ICh0cmFjZUxpbmUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9ICIiOwor
ICAgICAgICAgICAgcmV0dXJuIHRyYWNlTGluZTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcg
ZnJpZW5kbHlGdW5jdGlvbk5hbWUoQ2FsbEZyYW1lKiBjYWxsRnJhbWUpIGNvbnN0CisgICAgICAg
IHsKKyAgICAgICAgICAgIFN0cmluZyB0cmFjZUxpbmU7CisgICAgICAgICAgICBKU09iamVjdCog
c3RhY2tGcmFtZUNhbGxlZSA9IGNhbGxlZS5nZXQoKTsKKworICAgICAgICAgICAgc3dpdGNoIChj
b2RlVHlwZSkgeworICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lRXZhbENvZGU6CisgICAgICAg
ICAgICAgICAgdHJhY2VMaW5lID0gImV2YWwgY29kZSI7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOgorICAgICAgICAgICAgICAg
IGlmIChjYWxsZWUpCisgICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IGdldENhbGN1bGF0
ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNrRnJhbWVDYWxsZWUpLmltcGwoKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0aW9uQ29k
ZToKKyAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBnZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUo
Y2FsbEZyYW1lLCBzdGFja0ZyYW1lQ2FsbGVlKS5pbXBsKCk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVHbG9iYWxDb2Rl
OgotICAgICAgICAgICAgICAgIGlmIChoYXNTb3VyY2VVUkxJbmZvKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHRyYWNlTGluZSA9IGhhc0xpbmVJbmZvID8gU3RyaW5nOjpmb3JtYXQoImdsb2JhbCBj
b2RlQCVzOiVkIiwgc291cmNlVVJMLmFzY2lpKCkuZGF0YSgpLCBsaW5lKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN0cmluZzo6Zm9ybWF0KCJnbG9iYWwg
Y29kZUAlcyIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAgfSBl
bHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmluZzo6Zm9ybWF0KCJnbG9i
YWwgY29kZSIpOwotICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0cmFjZUxp
bmUgPSAiZ2xvYmFsIGNvZGUiOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQotICAgICAgICAgICAgcmV0dXJuIHRyYWNlTGluZS5pbXBsKCk7CisgICAgICAgICAgICBpZiAo
dHJhY2VMaW5lLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSAiIjsKKyAg
ICAgICAgICAgIHJldHVybiB0cmFjZUxpbmU7CisgICAgICAgIH0KKyAgICAgICAgdW5zaWduZWQg
ZnJpZW5kbHlMaW5lTnVtYmVyKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
IGxpbmUgPiAtMSA/IGxpbmUgOiAwOwogICAgICAgICB9CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAppbmRl
eCBjY2Y2NzNmZDQxMjUzZGRiZGNjMGQ3OTRmMTFkNjhjOWY0YjZmYTJkLi42MmY2NDM0N2EzMDRk
Mzg0MDM4MDQ4Zjk0OWVmOGJkMGYxMDM2ZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0zMyw2ICszNCw3IEBACiAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3Rh
dGUuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxs
RnJhbWUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKQEAgLTUxLDkgKzUzLDI2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAot
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhzaXplX3Qs
IGJvb2wpCitQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNr
KHNpemVfdCBtYXhTdGFja1NpemUsIGJvb2wgZW1wdHlJc0FsbG93ZWQpCiB7Ci0gICAgcmV0dXJu
IDA7CisgICAgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4gZnJhbWVzOworICAgIGlmIChKU0M6OkV4
ZWNTdGF0ZSogZXhlYyA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZTo6Y3VycmVudFN0YXRlKCkpIHsK
KyAgICAgICAgVmVjdG9yPFN0YWNrRnJhbWU+IHN0YWNrVHJhY2U7CisgICAgICAgIEludGVycHJl
dGVyOjpnZXRTdGFja1RyYWNlKCZleGVjLT5nbG9iYWxEYXRhKCksIHN0YWNrVHJhY2UpOworICAg
ICAgICBmb3IgKFZlY3RvcjxTdGFja0ZyYW1lPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IHN0YWNr
VHJhY2UuYmVnaW4oKTsgaXRlciA8IHN0YWNrVHJhY2UuZW5kKCk7IGl0ZXIrKykgeworICAgICAg
ICAgICAgU3RhY2tGcmFtZSBsZXZlbCA9ICppdGVyOworICAgICAgICAgICAgZnJhbWVzLmFwcGVu
ZChTY3JpcHRDYWxsRnJhbWUobGV2ZWwuZnJpZW5kbHlGdW5jdGlvbk5hbWUoZXhlYyksIGxldmVs
LmZyaWVuZGx5U291cmNlVVJMKCksIGxldmVsLmZyaWVuZGx5TGluZU51bWJlcigpKSk7CisgICAg
ICAgICAgICBpZiAoZnJhbWVzLnNpemUoKSA+PSBtYXhTdGFja1NpemUpCisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGZyYW1lcy5pc0VtcHR5KCkgJiYg
IWVtcHR5SXNBbGxvd2VkKSB7CisgICAgICAgIC8vIE5vIGZyYW1lcyBmb3VuZC4gSXQgbWF5IGhh
cHBlbiBpbiB0aGUgY2FzZSB3aGVyZQorICAgICAgICAvLyBhIGJvdW5kIGZ1bmN0aW9uIGlzIGNh
bGxlZCBmcm9tIG5hdGl2ZSBjb2RlIGZvciBleGFtcGxlLgorICAgICAgICAvLyBGYWxsYmFjayB0
byBzZXR0aW5nIGxpbmVOdW1iZXIgdG8gMCwgYW5kIHNvdXJjZSBhbmQgZnVuY3Rpb24gbmFtZSB0
byAidW5kZWZpbmVkIi4KKyAgICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoInVu
ZGVmaW5lZCIsICJ1bmRlZmluZWQiLCAwKSk7CisgICAgfQorICAgIHJldHVybiBTY3JpcHRDYWxs
U3RhY2s6OmNyZWF0ZShmcmFtZXMpOwogfQogCiBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3Rh
Y2tTaXplKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149291</attachid>
            <date>2012-06-25 07:51:16 -0700</date>
            <delta_ts>2012-07-04 10:51:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40118-20120625105116.patch</filename>
            <type>text/plain</type>
            <size>9060</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Y2QyOWM1NGI2NzczMWY3NjM3YjIxMjk2NmEyYTBhMmJiZjU3ZWNkLi4wMzkxNDJhNzBjYzllMjIw
MDZhMmY1ZWFjOTk3MDBjNjZhNzhlMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMi0wNi0xOSAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6
OnN0YWNrVHJhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBleHBvc2UgZnVuY3Rpb24gbmFtZSwgdXJsU3Ry
aW5nLCBhbmQgbGluZSAjLgorICAgICAgICBSZWZhY3RvcmVkIHRvU3RyaW5nIHRvIG1ha2UgdXNl
IG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMgdG8gcmVkdWNlCisgICAgICAgIGR1cGxpY2F0ZWQg
Y29kZSBmb3IgZnV0dXJlIG1haW50ZW5hbmNlLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCBy
ZWZhY3RvcmluZyBvZiB0b1N0cmluZyBieSB0cmFjaW5nIHRocm93biBleGNlcHRpb25zLgorCisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAgICAgICAgKFN0YWNrRnJhbWUp
OgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjp0b1N0cmluZyk6CisgICAgICAgIChKU0M6OlN0
YWNrRnJhbWU6OmZyaWVuZGx5U291cmNlVVJMKToKKyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6
ZnJpZW5kbHlGdW5jdGlvbk5hbWUpOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjpmcmllbmRs
eUxpbmVOdW1iZXIpOgorCiAyMDEyLTA1LTE0ICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAg
ICAgICAgIERGRyBKSVQgZGlkbid0IHdvcmsgd2l0aCBBUk0gRUFCSS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBi
ZjMzYTM2ZjA5NDJkZDlmOTdjNTVhMzhiNWY4OGE0MDk0NDE0ZjhkLi5kZDg5YzgzY2M3M2E4OTVl
ZjE3MDY4MzI1MzljMjJmZjM2YjViZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTItMDYtMTkgIEFudGhvbnkgU2NpYW4gIDxhc2NpYW5AcmltLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yIFtKU0NdOiBJbXBsZW1lbnQgU2NyaXB0Q2FsbFN0YWNrOjpzdGFja1RyYWNlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDExOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudGVk
IHN0dWIgZm9yIGNyZWF0ZVNjcmlwdENhbGxTdGFjayB0byBjYWxsIGludG8KKyAgICAgICAgSW50
ZXJwcmV0ZXIgYW5kIGV4dHJhY3QgdGhlIGN1cnJlbnQgc3RhY2sgZnJhbWVzLCBpdGVyYXRlCisg
ICAgICAgIHRocm91Z2ggdGhlIGZyYW1lcyBhbmQgY3JlYXRlIHRoZSByZXR1cm4gcmVzdWx0IHJl
cXVpcmVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbWFudWFsbHkgdGVzdGVkIHRocm93biBl
eGNlcHRpb24gYW5kIGluc3BlY3RvcgorICAgICAgICB0cmFjZWJhY2tzLgorCisgICAgICAgICog
YmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpjcmVhdGVTY3JpcHRDYWxsU3RhY2spOgorCiAyMDEyLTA2LTEyICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTIwMDM2LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0ludGVycHJldGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuaAppbmRleCBhZGIyM2YyMzcyMzg0ZGFmODgzYjE0ZWZmOGJhZjVkYzVmZTZkZjQx
Li4xZmJjZmU2YzJjM2JjZTY3OTk1OWY1NzllZTA0N2RjNTRlZjQwNjg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaApAQCAtMSw1ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
OSw2ICs0MCw3IEBACiAjaW5jbHVkZSAiUmVnaXN0ZXJGaWxlLmgiCiAKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CiAKQEAgLTgwLDQ1ICs4Miw2MSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
VVN0cmluZyBzb3VyY2VVUkw7CiAgICAgICAgIFVTdHJpbmcgdG9TdHJpbmcoQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGJvb2wgaGFzU291cmNlVVJM
SW5mbyA9ICFzb3VyY2VVUkwuaXNOdWxsKCkgJiYgIXNvdXJjZVVSTC5pc0VtcHR5KCk7Ci0gICAg
ICAgICAgICBib29sIGhhc0xpbmVJbmZvID0gbGluZSA+IC0xOworICAgICAgICAgICAgU3RyaW5n
QnVpbGRlciB0cmFjZUJ1aWxkOworICAgICAgICAgICAgU3RyaW5nIGZ1bmN0aW9uTmFtZSA9IGZy
aWVuZGx5RnVuY3Rpb25OYW1lKGNhbGxGcmFtZSk7CisgICAgICAgICAgICBTdHJpbmcgc291cmNl
VVJMID0gZnJpZW5kbHlTb3VyY2VVUkwoKTsKKyAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBwZW5k
KGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICBpZiAoIWZ1bmN0aW9uTmFtZS5pc0VtcHR5KCkg
JiYgIXNvdXJjZVVSTC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgdHJhY2VCdWlsZC5hcHBl
bmQoJ0AnKTsKKyAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBwZW5kKHNvdXJjZVVSTCk7CisgICAg
ICAgICAgICBpZiAobGluZSA+IC0xKSB7CisgICAgICAgICAgICAgICAgdHJhY2VCdWlsZC5hcHBl
bmQoJzonKTsKKyAgICAgICAgICAgICAgICB0cmFjZUJ1aWxkLmFwcGVuZChTdHJpbmc6Om51bWJl
cihsaW5lKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJhY2VCdWlsZC50
b1N0cmluZygpLmltcGwoKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZnJpZW5kbHlTb3Vy
Y2VVUkwoKSBjb25zdAorICAgICAgICB7CiAgICAgICAgICAgICBTdHJpbmcgdHJhY2VMaW5lOwot
ICAgICAgICAgICAgSlNPYmplY3QqIHN0YWNrRnJhbWVDYWxsZWUgPSBjYWxsZWUuZ2V0KCk7CiAK
ICAgICAgICAgICAgIHN3aXRjaCAoY29kZVR5cGUpIHsKICAgICAgICAgICAgIGNhc2UgU3RhY2tG
cmFtZUV2YWxDb2RlOgotICAgICAgICAgICAgICAgIGlmIChoYXNTb3VyY2VVUkxJbmZvKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IGhhc0xpbmVJbmZvID8gU3RyaW5nOjpmb3Jt
YXQoImV2YWwgY29kZUAlczolZCIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSwgbGluZSkgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nOjpmb3Jt
YXQoImV2YWwgY29kZUAlcyIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmluZzo6Zm9y
bWF0KCJldmFsIGNvZGUiKTsKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0aW9uQ29k
ZToKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUdsb2JhbENvZGU6CisgICAgICAgICAgICAg
ICAgaWYgKCFzb3VyY2VVUkwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICB0cmFjZUxp
bmUgPSBzb3VyY2VVUkwuaW1wbCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSBTdGFja0ZyYW1lTmF0aXZlQ29kZTogewotICAgICAgICAgICAgICAgIGlmIChjYWxs
ZWUpIHsKLSAgICAgICAgICAgICAgICAgICAgVVN0cmluZyBmdW5jdGlvbk5hbWUgPSBnZXRDYWxj
dWxhdGVkRGlzcGxheU5hbWUoY2FsbEZyYW1lLCBzdGFja0ZyYW1lQ2FsbGVlKTsKLSAgICAgICAg
ICAgICAgICAgICAgdHJhY2VMaW5lID0gU3RyaW5nOjpmb3JtYXQoIiVzQFtuYXRpdmUgY29kZV0i
LCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSAiW25hdGl2ZSBjb2RlXSI7CisgICAgICAg
ICAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOgorICAgICAgICAgICAgICAgIHRyYWNlTGlu
ZSA9ICJbbmF0aXZlIGNvZGVdIjsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0aW9uQ29kZTogewotICAgICAgICAg
ICAgICAgIFVTdHJpbmcgZnVuY3Rpb25OYW1lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNh
bGxGcmFtZSwgc3RhY2tGcmFtZUNhbGxlZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGhhc1NvdXJj
ZVVSTEluZm8pIHsKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gaGFzTGluZUluZm8g
PyBTdHJpbmc6OmZvcm1hdCgiJXNAJXM6JWQiLCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCks
IHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSwgbGluZSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmc6OmZvcm1hdCgiJXNAJXMiLCBmdW5jdGlvbk5h
bWUuYXNjaWkoKS5kYXRhKCksIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmluZzo6Zm9y
bWF0KCIlc1xuIiwgZnVuY3Rpb25OYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIHJl
dHVybiB0cmFjZUxpbmUuaXNOdWxsKCkgPyBlbXB0eVN0cmluZygpIDogdHJhY2VMaW5lOworICAg
ICAgICB9CisgICAgICAgIFN0cmluZyBmcmllbmRseUZ1bmN0aW9uTmFtZShDYWxsRnJhbWUqIGNh
bGxGcmFtZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIHRyYWNlTGluZTsK
KyAgICAgICAgICAgIEpTT2JqZWN0KiBzdGFja0ZyYW1lQ2FsbGVlID0gY2FsbGVlLmdldCgpOwor
CisgICAgICAgICAgICBzd2l0Y2ggKGNvZGVUeXBlKSB7CisgICAgICAgICAgICBjYXNlIFN0YWNr
RnJhbWVFdmFsQ29kZToKKyAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSAiZXZhbCBjb2RlIjsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZU5hdGl2
ZUNvZGU6CisgICAgICAgICAgICAgICAgaWYgKGNhbGxlZSkKKyAgICAgICAgICAgICAgICAgICAg
dHJhY2VMaW5lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNhbGxGcmFtZSwgc3RhY2tGcmFt
ZUNhbGxlZSkuaW1wbCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBTdGFja0ZyYW1lRnVuY3Rpb25Db2RlOgorICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IGdl
dENhbGN1bGF0ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNrRnJhbWVDYWxsZWUpLmltcGwo
KTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNh
c2UgU3RhY2tGcmFtZUdsb2JhbENvZGU6Ci0gICAgICAgICAgICAgICAgaWYgKGhhc1NvdXJjZVVS
TEluZm8pIHsKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gaGFzTGluZUluZm8gPyBT
dHJpbmc6OmZvcm1hdCgiZ2xvYmFsIGNvZGVAJXM6JWQiLCBzb3VyY2VVUkwuYXNjaWkoKS5kYXRh
KCksIGxpbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog
U3RyaW5nOjpmb3JtYXQoImdsb2JhbCBjb2RlQCVzIiwgc291cmNlVVJMLmFzY2lpKCkuZGF0YSgp
KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5l
ID0gU3RyaW5nOjpmb3JtYXQoImdsb2JhbCBjb2RlIik7Ci0gICAgICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9ICJnbG9iYWwgY29kZSI7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gdHJhY2VMaW5lLmlt
cGwoKTsKKyAgICAgICAgICAgIHJldHVybiB0cmFjZUxpbmUuaXNOdWxsKCkgPyBlbXB0eVN0cmlu
ZygpIDogdHJhY2VMaW5lOworICAgICAgICB9CisgICAgICAgIHVuc2lnbmVkIGZyaWVuZGx5TGlu
ZU51bWJlcigpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5lID4gLTEg
PyBsaW5lIDogMDsKICAgICAgICAgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKaW5kZXggY2NmNjczZmQ0
MTI1M2RkYmRjYzBkNzk0ZjExZDY4YzlmNGI2ZmEyZC4uNjJmNjQzNDdhMzA0ZDM4NDAzODA0OGY5
NDllZjhiZDBmMTAzNmQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMsNiArMzQs
NyBAQAogCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
SlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCiAjaW5j
bHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbEZyYW1lLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBAIC01MSw5ICs1MywyNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLVBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soc2l6ZV90LCBib29sKQorUGFz
c1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhzaXplX3QgbWF4
U3RhY2tTaXplLCBib29sIGVtcHR5SXNBbGxvd2VkKQogewotICAgIHJldHVybiAwOworICAgIFZl
Y3RvcjxTY3JpcHRDYWxsRnJhbWU+IGZyYW1lczsKKyAgICBpZiAoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpKSB7CisgICAgICAgIFZl
Y3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNlOworICAgICAgICBJbnRlcnByZXRlcjo6Z2V0U3Rh
Y2tUcmFjZSgmZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdGFja1RyYWNlKTsKKyAgICAgICAgZm9yIChW
ZWN0b3I8U3RhY2tGcmFtZT46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBzdGFja1RyYWNlLmJlZ2lu
KCk7IGl0ZXIgPCBzdGFja1RyYWNlLmVuZCgpOyBpdGVyKyspIHsKKyAgICAgICAgICAgIFN0YWNr
RnJhbWUgbGV2ZWwgPSAqaXRlcjsKKyAgICAgICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2Fs
bEZyYW1lKGxldmVsLmZyaWVuZGx5RnVuY3Rpb25OYW1lKGV4ZWMpLCBsZXZlbC5mcmllbmRseVNv
dXJjZVVSTCgpLCBsZXZlbC5mcmllbmRseUxpbmVOdW1iZXIoKSkpOworICAgICAgICAgICAgaWYg
KGZyYW1lcy5zaXplKCkgPj0gbWF4U3RhY2tTaXplKQorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisgICAgfQorICAgIGlmIChmcmFtZXMuaXNFbXB0eSgpICYmICFlbXB0eUlzQWxs
b3dlZCkgeworICAgICAgICAvLyBObyBmcmFtZXMgZm91bmQuIEl0IG1heSBoYXBwZW4gaW4gdGhl
IGNhc2Ugd2hlcmUKKyAgICAgICAgLy8gYSBib3VuZCBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBu
YXRpdmUgY29kZSBmb3IgZXhhbXBsZS4KKyAgICAgICAgLy8gRmFsbGJhY2sgdG8gc2V0dGluZyBs
aW5lTnVtYmVyIHRvIDAsIGFuZCBzb3VyY2UgYW5kIGZ1bmN0aW9uIG5hbWUgdG8gInVuZGVmaW5l
ZCIuCisgICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKCJ1bmRlZmluZWQiLCAi
dW5kZWZpbmVkIiwgMCkpOworICAgIH0KKyAgICByZXR1cm4gU2NyaXB0Q2FsbFN0YWNrOjpjcmVh
dGUoZnJhbWVzKTsKIH0KIAogUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlw
dENhbGxTdGFjayhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgc2l6ZV90IG1heFN0YWNrU2l6ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150821</attachid>
            <date>2012-07-04 10:51:58 -0700</date>
            <delta_ts>2012-07-04 12:08:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40118-20120704135156.patch</filename>
            <type>text/plain</type>
            <size>21478</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxNDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
YTQwMmU0NTFlMTNhNmE4ZmQwM2MyZGEyMzAwMTg3MTIwNGQ3ZDBhLi45ZTJiODI4NWY5MTYxOGU5
OTU2MGYxYzk5ZTg3ODcyMjNkNjgzMmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxMi0wNy0wNCAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6
OnN0YWNrVHJhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBleHBvc2UgZnVuY3Rpb24gbmFtZSwgdXJsU3Ry
aW5nLCBhbmQgbGluZSAjLgorICAgICAgICBSZWZhY3RvcmVkIHRvU3RyaW5nIHRvIG1ha2UgdXNl
IG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMgdG8gcmVkdWNlCisgICAgICAgIGR1cGxpY2F0ZWQg
Y29kZSBmb3IgZnV0dXJlIG1haW50ZW5hbmNlLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCBy
ZWZhY3RvcmluZyBvZiB0b1N0cmluZyBieSB0cmFjaW5nIHRocm93biBleGNlcHRpb25zLgorCisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAgICAgICAgKEpTQzo6U3RhY2tG
cmFtZTo6dG9TdHJpbmcpOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjpmcmllbmRseVNvdXJj
ZVVSTCk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmZyaWVuZGx5RnVuY3Rpb25OYW1lKToK
KyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6ZnJpZW5kbHlMaW5lTnVtYmVyKToKKwogMjAxMi0w
Ni0yOCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ2xhc3Np
ZnkgZm9ybSBjb250cm9sIHN0YXRlcyBieSB0aGVpciBvd25lciBmb3JtcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDlhOWFjNzA2YzAyYmNhNWMwZTFjYTczZDhlOTdjOTc0ZGRlODc2MTYuLmFhYWNlYTgyOTVjNmE0
NjBjMzY1MTEyOGI5MjExODgwNjgwOTY1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAor
MjAxMi0wNy0wNCAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMTE4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
ZWQgc3R1YiBmb3IgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrIHRvIGNhbGwgaW50bworICAgICAgICBJ
bnRlcnByZXRlciBhbmQgZXh0cmFjdCB0aGUgY3VycmVudCBzdGFjayBmcmFtZXMsIGl0ZXJhdGUK
KyAgICAgICAgdGhyb3VnaCB0aGUgZnJhbWVzIGFuZCBjcmVhdGUgdGhlIHJldHVybiByZXN1bHQg
cmVxdWlyZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBtYW51YWxseSB0ZXN0ZWQgdGhyb3du
IGV4Y2VwdGlvbiBhbmQgaW5zcGVjdG9yCisgICAgICAgIHRyYWNlYmFja3MuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZVNjcmlwdENhbGxTdGFjayk6CisKIDIwMTItMDYtMjggIEphbWVzIFJvYmluc29u
ICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFNob3VsZCBzY2hl
ZHVsZSBhIGNvbW1pdCB3aGVuIGRyb3BwaW5nIGNvbnRlbnRzIHRleHR1cmVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5oCmluZGV4IGFkYjIzZjIz
NzIzODRkYWY4ODNiMTRlZmY4YmFmNWRjNWZlNmRmNDEuLmJhMmY0ZmFjNGNiNDk3NWM4MzE1ODRl
ODljNDIzM2VlMjU4MTZjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9JbnRlcnByZXRlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5oCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykg
MjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDYgKzQwLDcgQEAKICNpbmNsdWRlICJS
ZWdpc3RlckZpbGUuaCIKIAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtODAsNDUgKzgy
LDYzIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBVU3RyaW5nIHNvdXJjZVVSTDsKICAgICAg
ICAgVVN0cmluZyB0b1N0cmluZyhDYWxsRnJhbWUqIGNhbGxGcmFtZSkgY29uc3QKICAgICAgICAg
ewotICAgICAgICAgICAgYm9vbCBoYXNTb3VyY2VVUkxJbmZvID0gIXNvdXJjZVVSTC5pc051bGwo
KSAmJiAhc291cmNlVVJMLmlzRW1wdHkoKTsKLSAgICAgICAgICAgIGJvb2wgaGFzTGluZUluZm8g
PSBsaW5lID4gLTE7CisgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIHRyYWNlQnVpbGQ7CisgICAg
ICAgICAgICBTdHJpbmcgZnVuY3Rpb25OYW1lID0gZnJpZW5kbHlGdW5jdGlvbk5hbWUoY2FsbEZy
YW1lKTsKKyAgICAgICAgICAgIFN0cmluZyBzb3VyY2VVUkwgPSBmcmllbmRseVNvdXJjZVVSTCgp
OworICAgICAgICAgICAgdHJhY2VCdWlsZC5hcHBlbmQoZnVuY3Rpb25OYW1lKTsKKyAgICAgICAg
ICAgIGlmICghc291cmNlVVJMLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIGlmICghZnVu
Y3Rpb25OYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgdHJhY2VCdWlsZC5hcHBl
bmQoJ0AnKTsKKyAgICAgICAgICAgICAgICB0cmFjZUJ1aWxkLmFwcGVuZChzb3VyY2VVUkwpOwor
ICAgICAgICAgICAgICAgIGlmIChsaW5lID4gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJh
Y2VCdWlsZC5hcHBlbmQoJzonKTsKKyAgICAgICAgICAgICAgICAgICAgdHJhY2VCdWlsZC5hcHBl
bmQoU3RyaW5nOjpudW1iZXIobGluZSkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHJldHVybiB0cmFjZUJ1aWxkLnRvU3RyaW5nKCkuaW1wbCgpOworICAg
ICAgICB9CisgICAgICAgIFN0cmluZyBmcmllbmRseVNvdXJjZVVSTCgpIGNvbnN0CisgICAgICAg
IHsKICAgICAgICAgICAgIFN0cmluZyB0cmFjZUxpbmU7Ci0gICAgICAgICAgICBKU09iamVjdCog
c3RhY2tGcmFtZUNhbGxlZSA9IGNhbGxlZS5nZXQoKTsKIAogICAgICAgICAgICAgc3dpdGNoIChj
b2RlVHlwZSkgewogICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lRXZhbENvZGU6Ci0gICAgICAg
ICAgICAgICAgaWYgKGhhc1NvdXJjZVVSTEluZm8pIHsKLSAgICAgICAgICAgICAgICAgICAgdHJh
Y2VMaW5lID0gaGFzTGluZUluZm8gPyBTdHJpbmc6OmZvcm1hdCgiZXZhbCBjb2RlQCVzOiVkIiwg
c291cmNlVVJMLmFzY2lpKCkuZGF0YSgpLCBsaW5lKSAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmc6OmZvcm1hdCgiZXZhbCBjb2RlQCVzIiwgc291
cmNlVVJMLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgdHJhY2VMaW5lID0gU3RyaW5nOjpmb3JtYXQoImV2YWwgY29kZSIpOworICAg
ICAgICAgICAgY2FzZSBTdGFja0ZyYW1lRnVuY3Rpb25Db2RlOgorICAgICAgICAgICAgY2FzZSBT
dGFja0ZyYW1lR2xvYmFsQ29kZToKKyAgICAgICAgICAgICAgICBpZiAoIXNvdXJjZVVSTC5pc0Vt
cHR5KCkpCisgICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IHNvdXJjZVVSTC5pbXBsKCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVOYXRp
dmVDb2RlOiB7Ci0gICAgICAgICAgICAgICAgaWYgKGNhbGxlZSkgewotICAgICAgICAgICAgICAg
ICAgICBVU3RyaW5nIGZ1bmN0aW9uTmFtZSA9IGdldENhbGN1bGF0ZWREaXNwbGF5TmFtZShjYWxs
RnJhbWUsIHN0YWNrRnJhbWVDYWxsZWUpOwotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUg
PSBTdHJpbmc6OmZvcm1hdCgiJXNAW25hdGl2ZSBjb2RlXSIsIGZ1bmN0aW9uTmFtZS5hc2NpaSgp
LmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRy
YWNlTGluZSA9ICJbbmF0aXZlIGNvZGVdIjsKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZU5h
dGl2ZUNvZGU6CisgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gIltuYXRpdmUgY29kZV0iOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSBT
dGFja0ZyYW1lRnVuY3Rpb25Db2RlOiB7Ci0gICAgICAgICAgICAgICAgVVN0cmluZyBmdW5jdGlv
bk5hbWUgPSBnZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUoY2FsbEZyYW1lLCBzdGFja0ZyYW1lQ2Fs
bGVlKTsKLSAgICAgICAgICAgICAgICBpZiAoaGFzU291cmNlVVJMSW5mbykgewotICAgICAgICAg
ICAgICAgICAgICB0cmFjZUxpbmUgPSBoYXNMaW5lSW5mbyA/IFN0cmluZzo6Zm9ybWF0KCIlc0Al
czolZCIsIGZ1bmN0aW9uTmFtZS5hc2NpaSgpLmRhdGEoKSwgc291cmNlVVJMLmFzY2lpKCkuZGF0
YSgpLCBsaW5lKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6
IFN0cmluZzo6Zm9ybWF0KCIlc0AlcyIsIGZ1bmN0aW9uTmFtZS5hc2NpaSgpLmRhdGEoKSwgc291
cmNlVVJMLmFzY2lpKCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgdHJhY2VMaW5lID0gU3RyaW5nOjpmb3JtYXQoIiVzXG4iLCBmdW5jdGlvbk5h
bWUuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAgcmV0dXJuIHRyYWNlTGluZS5pc051bGwo
KSA/IGVtcHR5U3RyaW5nKCkgOiB0cmFjZUxpbmU7CisgICAgICAgIH0KKyAgICAgICAgU3RyaW5n
IGZyaWVuZGx5RnVuY3Rpb25OYW1lKENhbGxGcmFtZSogY2FsbEZyYW1lKSBjb25zdAorICAgICAg
ICB7CisgICAgICAgICAgICBTdHJpbmcgdHJhY2VMaW5lOworICAgICAgICAgICAgSlNPYmplY3Qq
IHN0YWNrRnJhbWVDYWxsZWUgPSBjYWxsZWUuZ2V0KCk7CisKKyAgICAgICAgICAgIHN3aXRjaCAo
Y29kZVR5cGUpIHsKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUV2YWxDb2RlOgorICAgICAg
ICAgICAgICAgIHRyYWNlTGluZSA9ICJldmFsIGNvZGUiOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lTmF0aXZlQ29kZToKKyAgICAgICAgICAgICAg
ICBpZiAoY2FsbGVlKQorICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBnZXRDYWxjdWxh
dGVkRGlzcGxheU5hbWUoY2FsbEZyYW1lLCBzdGFja0ZyYW1lQ2FsbGVlKS5pbXBsKCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVGdW5jdGlvbkNv
ZGU6CisgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1l
KGNhbGxGcmFtZSwgc3RhY2tGcmFtZUNhbGxlZSkuaW1wbCgpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgY2FzZSBTdGFja0ZyYW1lR2xvYmFsQ29k
ZToKLSAgICAgICAgICAgICAgICBpZiAoaGFzU291cmNlVVJMSW5mbykgewotICAgICAgICAgICAg
ICAgICAgICB0cmFjZUxpbmUgPSBoYXNMaW5lSW5mbyA/IFN0cmluZzo6Zm9ybWF0KCJnbG9iYWwg
Y29kZUAlczolZCIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSwgbGluZSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmc6OmZvcm1hdCgiZ2xvYmFs
IGNvZGVAJXMiLCBzb3VyY2VVUkwuYXNjaWkoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSBTdHJpbmc6OmZvcm1hdCgiZ2xv
YmFsIGNvZGUiKTsKLSAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdHJhY2VM
aW5lID0gImdsb2JhbCBjb2RlIjsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHJldHVybiB0cmFjZUxpbmUuaW1wbCgpOworICAgICAgICAgICAgcmV0
dXJuIHRyYWNlTGluZS5pc051bGwoKSA/IGVtcHR5U3RyaW5nKCkgOiB0cmFjZUxpbmU7CisgICAg
ICAgIH0KKyAgICAgICAgdW5zaWduZWQgZnJpZW5kbHlMaW5lTnVtYmVyKCkgY29uc3QKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIGxpbmUgPiAtMSA/IGxpbmUgOiAwOwogICAgICAgICB9
CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q2FsbFN0YWNrRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
YWxsU3RhY2tGYWN0b3J5LmNwcAppbmRleCBjY2Y2NzNmZDQxMjUzZGRiZGNjMGQ3OTRmMTFkNjhj
OWY0YjZmYTJkLi4zYmI2OWY0MmM4ZjlhMjYzOGRkMmQ4ODI1NzEyYzNiNmUxZDcwNzUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWxsU3RhY2tGYWN0
b3J5LmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJj
aCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMyw2ICszNCw3IEBACiAKICNpbmNsdWRlICJJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKKyNpbmNs
dWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRlICJTY3JpcHRBcmd1bWVudHMu
aCIKICNpbmNsdWRlICJTY3JpcHRDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3Rh
Y2suaCIKQEAgLTUxLDkgKzUzLDI1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIAotUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0
ZVNjcmlwdENhbGxTdGFjayhzaXplX3QsIGJvb2wpCitQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKHNpemVfdCBtYXhTdGFja1NpemUsIGJvb2wgZW1wdHlJ
c0FsbG93ZWQpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgVmVjdG9yPFNjcmlwdENhbGxGcmFtZT4g
ZnJhbWVzOworICAgIGlmIChKU0M6OkV4ZWNTdGF0ZSogZXhlYyA9IEpTTWFpblRocmVhZEV4ZWNT
dGF0ZTo6Y3VycmVudFN0YXRlKCkpIHsKKyAgICAgICAgVmVjdG9yPFN0YWNrRnJhbWU+IHN0YWNr
VHJhY2U7CisgICAgICAgIEludGVycHJldGVyOjpnZXRTdGFja1RyYWNlKCZleGVjLT5nbG9iYWxE
YXRhKCksIHN0YWNrVHJhY2UpOworICAgICAgICBmb3IgKFZlY3RvcjxTdGFja0ZyYW1lPjo6Y29u
c3RfaXRlcmF0b3IgaXRlciA9IHN0YWNrVHJhY2UuYmVnaW4oKTsgaXRlciA8IHN0YWNrVHJhY2Uu
ZW5kKCk7IGl0ZXIrKykgeworICAgICAgICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJh
bWUoaXRlci0+ZnJpZW5kbHlGdW5jdGlvbk5hbWUoZXhlYyksIGl0ZXItPmZyaWVuZGx5U291cmNl
VVJMKCksIGl0ZXItPmZyaWVuZGx5TGluZU51bWJlcigpKSk7CisgICAgICAgICAgICBpZiAoZnJh
bWVzLnNpemUoKSA+PSBtYXhTdGFja1NpemUpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisgICAgaWYgKGZyYW1lcy5pc0VtcHR5KCkgJiYgIWVtcHR5SXNBbGxvd2Vk
KSB7CisgICAgICAgIC8vIE5vIGZyYW1lcyBmb3VuZC4gSXQgbWF5IGhhcHBlbiBpbiB0aGUgY2Fz
ZSB3aGVyZQorICAgICAgICAvLyBhIGJvdW5kIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5hdGl2
ZSBjb2RlIGZvciBleGFtcGxlLgorICAgICAgICAvLyBGYWxsYmFjayB0byBzZXR0aW5nIGxpbmVO
dW1iZXIgdG8gMCwgYW5kIHNvdXJjZSBhbmQgZnVuY3Rpb24gbmFtZSB0byAidW5kZWZpbmVkIi4K
KyAgICAgICAgZnJhbWVzLmFwcGVuZChTY3JpcHRDYWxsRnJhbWUoInVuZGVmaW5lZCIsICJ1bmRl
ZmluZWQiLCAwKSk7CisgICAgfQorICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNyZWF0ZShm
cmFtZXMpOwogfQogCiBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tTaXplKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGFjYjUzYTFhMzExOTBlN2Y5Mzk2ZjZlZWYzZDRjYzg0ZGRkN2IyYmIuLjUyYWU3MzIzYjM0NjYx
MGM0YjFhYTMxMWEyNTEyMzFlOTdlZDBhOTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMi0w
Ny0wNCAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6OnN0YWNrVHJhY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwMTE4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCB0ZXN0IHJl
c3VsdHMgbm93IHRoYXQgY3JlYXRlU2NyaXB0Q2FsbFN0YWNrIGlzIGZ1bmN0aW9uYWwuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9n
Z2luZy1hc3luYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9zY3JpcHQtYXMtdGV4dC1sb2FkaW5nLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9uLWZyYW1lLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbGF5b3V0LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbWFyay10
aW1lbGluZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGlu
c3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lLXN0YW1wLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZXItZXhwZWN0ZWQudHh0OgorCiAy
MDEyLTA2LTI4ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3Bs
aXQgZmxleCBpbnRvIGZsZXgtZ3Jvdy9mbGV4LXNocmluay9mbGV4LWJhc2lzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9y
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xl
LXJlc291cmNlLWVycm9ycy1leHBlY3RlZC50eHQKaW5kZXggYWFiMTcxNTg1YTZjMWVhNzdjN2Ux
ZmE3ZWJkZmU1YzI1Zjc1ZDUzMi4uMWQ3NDg2MWFiNjc1NDFiZTJlNTYwODMzOWJiYWM1ZTIzMTU5
MGIxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWV4cGVjdGVkLnR4dApAQCAtNCw1
ICs0LDUgQEAgVGVzdHMgdGhhdCBlcnJvcnMgdG8gbG9hZCBhIHJlc291cmNlIGNhdXNlIGVycm9y
IG1lc3NhZ2VzIHRvIGJlIGxvZ2dlZCB0byBjb25zb2wKIEdFVCBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL21pc3NpbmcuY3NzIDQwNCAoTm90IEZvdW5kKSBjb25zb2xlLXJlc291cmNl
LWVycm9ycy1pZnJhbWUuaHRtbDozIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWVycm9yLWxldmVs
CiBHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9ub24tZXhpc3RlbnQtaWZyYW1l
Lmh0bWwgNDA0IChOb3QgRm91bmQpIG5vbi1leGlzdGVudC1pZnJhbWUuaHRtbDoxIGNvbnNvbGUt
bWVzc2FnZSBjb25zb2xlLWVycm9yLWxldmVsCiBHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9ub24tZXhpc3RlbnQtc2NyaXB0LmpzIDQwNCAoTm90IEZvdW5kKSBjb25zb2xlLXJl
c291cmNlLWVycm9ycy1pZnJhbWUuaHRtbDo0IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWVycm9y
LWxldmVsCi1HRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9ub24tZXhpc3RlbnQt
eGhyIDQwNCAoTm90IEZvdW5kKSBub24tZXhpc3RlbnQteGhyOjEgY29uc29sZS1tZXNzYWdlIGNv
bnNvbGUtZXJyb3ItbGV2ZWwKK0dFVCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25v
bi1leGlzdGVudC14aHIgNDA0IChOb3QgRm91bmQpIFtuYXRpdmUgY29kZV06MXNlbmQgW25hdGl2
ZSBjb2RlXToxbG9hZFhIUiBjb25zb2xlLXJlc291cmNlLWVycm9ycy5odG1sOjE4cGVyZm9ybUFj
dGlvbnMgY29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbDoxMGV2YWwgY29kZWV2YWwgW25hdGl2
ZSBjb2RlXToxX2V2YWx1YXRlT25fZXZhbHVhdGVBbmRXcmFwZXZhbHVhdGUoYW5vbnltb3VzIGZ1
bmN0aW9uKSBbbmF0aXZlIGNvZGVdOjEgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2
ZWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS14aHItbG9nZ2luZy1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLWV4cGVjdGVkLnR4dAppbmRleCAw
ZGY4YTM1NGRiODM2Y2RiMjRiMWE3MDFkMzA3NDkyZTNjMzVmZjM2Li5mYjU5OWZmMjJjYjJhNzgz
Y2E3NTI5MjEyZTQxMWIwNWFjZWI3YTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWFz
eW5jLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0
OiBEb25lLgogVGVzdHMgdGhhdCBYTUxIdHRwUmVxdWVzdCBMb2dnaW5nIHdvcmtzIHdoZW4gRW5h
YmxlZCBhbmQgZG9lc24ndCBzaG93IGxvZ3Mgd2hlbiBEaXNhYmxlZCBmb3IgYXN5bmNocm9ub3Vz
IFhIUnMuCiAKIEJ1ZyA3OTIyOQotWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwiLiBuZXR3b3JrLXRl
c3QuanM6MzkKK1hIUiBmaW5pc2hlZCBsb2FkaW5nOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sIi4gW25hdGl2ZSBjb2RlXToxCiBEb25l
LiBjb25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLmh0bWw6MTQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5n
LWV4cGVjdGVkLnR4dAppbmRleCA5OGU0ODgxOTIwZDAzMGYxZWI2NTk5YTY0NzZmMjY4MGY1ODc3
OTFhLi41YTFhNTY2MWE5NjgzMzQ1ODAxZmY5NTI5OWRkODRmYmYwOTk4YjdjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xl
LXhoci1sb2dnaW5nLWV4cGVjdGVkLnR4dApAQCAtMTEsMTcgKzExLDE3IEBAIENPTlNPTEUgTUVT
U0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2lu
c3BlY3Rvci9yZXNvCiBUZXN0cyB0aGF0IFhNTEh0dHBSZXF1ZXN0IExvZ2dpbmcgd29ya3Mgd2hl
biBFbmFibGVkIGFuZCBkb2Vzbid0IHNob3cgbG9ncyB3aGVuIERpc2FibGVkLgogCiBzZW5kaW5n
IGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbCBjb25zb2xlLXhoci1s
b2dnaW5nLmh0bWw6MTAKLVhIUiBmaW5pc2hlZCBsb2FkaW5nOiAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sIi4KK1hIUiBmaW5pc2hlZCBs
b2FkaW5nOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4
aXN0cy5odG1sIi4gW25hdGl2ZSBjb2RlXToxCiBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVz
b3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5odG1sIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDox
MAotR0VUIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1kb2Vz
LW5vdC1leGlzdC5odG1sIDQwNCAoTm90IEZvdW5kKSByZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4
aXN0Lmh0bWw6MQotWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlcy94aHItZG9lcy1ub3QtZXhpc3QuaHRtbCIuCitHRVQgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0
bWwgNDA0IChOb3QgRm91bmQpIFtuYXRpdmUgY29kZV06MQorWEhSIGZpbmlzaGVkIGxvYWRpbmc6
ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZG9lcy1ub3Qt
ZXhpc3QuaHRtbCIuIFtuYXRpdmUgY29kZV06MQogc2VuZGluZyBhIFBPU1QgcmVxdWVzdCB0byBy
ZXNvdXJjZXMvcG9zdC10YXJnZXQuY2dpIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMAotWEhS
IGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291
cmNlcy9wb3N0LXRhcmdldC5jZ2kiLgorWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2kiLiBbbmF0aXZl
IGNvZGVdOjEKIHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byBodHRwOi8vbG9jYWxob3N0OjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwgY29uc29sZS14aHItbG9nZ2luZy5o
dG1sOjEwCiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAv
aW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwuIE9yaWdpbiBodHRwOi8vMTI3LjAu
MC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgog
c2VuZGluZyBhIEdFVCByZXF1ZXN0IHRvIHJlc291cmNlcy94aHItZXhpc3RzLmh0bWwgY29uc29s
ZS14aHItbG9nZ2luZy5odG1sOjEwCiBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2Vz
L3hoci1kb2VzLW5vdC1leGlzdC5odG1sIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMAotR0VU
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1l
eGlzdC5odG1sIDQwNCAoTm90IEZvdW5kKSByZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0
bWw6MQorR0VUIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1k
b2VzLW5vdC1leGlzdC5odG1sIDQwNCAoTm90IEZvdW5kKSBbbmF0aXZlIGNvZGVdOjEKIHNlbmRp
bmcgYSBQT1NUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaSBjb25zb2xlLXho
ci1sb2dnaW5nLmh0bWw6MTAKIHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byBodHRwOi8vbG9jYWxo
b3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwgY29uc29sZS14aHIt
bG9nZ2luZy5odG1sOjEwCiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxo
b3N0OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwuIE9yaWdpbiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9zY3JpcHQtYXMtdGV4dC1sb2FkaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvc2NyaXB0LWFzLXRleHQtbG9hZGluZy1leHBlY3Rl
ZC50eHQKaW5kZXggYzExNzY4MzE4NTUwNDIyNDM2OGZiZmRiNGRmNzA5MzkxMWJhZDUyMi4uOTEy
MWEwODlhM2Y1MjY5MGQzNTE0ZmZhYzFkYzE5ZTY5YWZkOTIxYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9zY3JpcHQtYXMtdGV4dC1sb2FkaW5n
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3NjcmlwdC1hcy10ZXh0LWxvYWRpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAog
VGVzdHMgY29uc29sZSBtZXNzYWdlIHdoZW4gc2NyaXB0IGlzIGxvYWRlZCB3aXRoIGluY29ycmVj
dCB0ZXh0L2h0bWwgbWltZSB0eXBlLgogCiBCdWcgNjk5NzIKLVJlc291cmNlIGludGVycHJldGVk
IGFzIFNjcmlwdCBidXQgdHJhbnNmZXJyZWQgd2l0aCBNSU1FIHR5cGUgdGV4dC9wbGFpbjogImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LWFz
LXRleHQucGhwIi4KK1Jlc291cmNlIGludGVycHJldGVkIGFzIFNjcmlwdCBidXQgdHJhbnNmZXJy
ZWQgd2l0aCBNSU1FIHR5cGUgdGV4dC9wbGFpbjogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQucGhwIi4gW25hdGl2ZSBjb2Rl
XToxCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGlu
ZS1hbmltYXRpb24tZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3RlZC50eHQKaW5kZXggZTQ3MTZj
NDk1MmIxYWJmZGQ0N2IwNDdjNWNiMTI2MzNkNWI0MjE1Mi4uMTVkNzhmNmEwMDVlMTJkN2M4MzA5
NDYxMGRmNDg4OTk0ODVjMWM3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rp
bWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3Rl
ZC50eHQKQEAgLTMsNiArMyw3IEBAIFRlc3RzIHRoZSBUaW1lbGluZSBldmVudHMgZm9yIEFuaW1h
dGlvbiBGcmFtZSBmZWF0dXJlCiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgUHJvcGVydGllczoKIHsK
ICAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgorICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgogICAg
IGRhdGEgOiB7CiAgICAgICAgIGlkIDogPG51bWJlcj4KICAgICB9CkBAIC0yOSw2ICszMCw3IEBA
IEZpcmVBbmltYXRpb25GcmFtZSBQcm9wZXJ0aWVzOgogQ2FuY2VsQW5pbWF0aW9uRnJhbWUgUHJv
cGVydGllczoKIHsKICAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgorICAgIHN0YWNrVHJhY2UgOiA8
b2JqZWN0PgogICAgIGRhdGEgOiB7CiAgICAgICAgIGlkIDogPG51bWJlcj4KICAgICB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbGF5b3V0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlv
dXQtZXhwZWN0ZWQudHh0CmluZGV4IGUxZGJhNmY4MDUzMjBmODg4NTBhZmRhOGVkNTAxNTIwYTFm
ZTNmMjcuLmJmNTExNTgzOGYzZjQ3OTBiNGFjMTlmOTI0ZjVkNzA4OTMxNjZhOGUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlvdXQtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlv
dXQtZXhwZWN0ZWQudHh0CkBAIC00LDYgKzQsNyBAQCBUZXN0IGRhdGEKIExheW91dCBQcm9wZXJ0
aWVzOgogewogICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+CisgICAgc3RhY2tUcmFjZSA6IDxvYmpl
Y3Q+CiAgICAgZGF0YSA6IHsKICAgICB9CiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW1hcmstdGltZWxp
bmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5l
LW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0CmluZGV4IDdhMjJjOWViYmMzMjMwMmU2YjQyMDAz
ZjJkMzgwNGZkNmU1ZjEwNzguLjJmMWNjMTA2M2E5NGI1ZDNiYmRiMThiZmQ5MDI0MzM3YzdlMzdi
ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1t
YXJrLXRpbWVsaW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQKQEAgLTMsNiArMyw3IEBA
IFRlc3RzIHRoZSBUaW1lbGluZSBBUEkgbWFyayBmZWF0dXJlCiBUaW1lU3RhbXAgUHJvcGVydGll
czoKIHsKICAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgorICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0
PgogICAgIGRhdGEgOiB7CiAgICAgICAgIG1lc3NhZ2UgOiAiTUFSSyBUSU1FTElORSIKICAgICB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0
d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxp
bmUvdGltZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKaW5kZXggZDJjZGE1MDU4
NzQ3YjY4N2MzM2UzNjk0MDc4MGNmZjM1ODU0M2M0NC4uMjE4NmNjMWE2MTFjM2U2ZjJkM2RmOTU4
NDFlN2NkNTVkMmU3ZDlmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVs
aW5lL3RpbWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVk
LnR4dApAQCAtNiw2ICs2LDcgQEAgU2NyaXB0IHJlc291cmNlIGxvYWRlZAogUmVzb3VyY2VTZW5k
UmVxdWVzdCBQcm9wZXJ0aWVzOgogewogICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+CisgICAgc3Rh
Y2tUcmFjZSA6IDxvYmplY3Q+CiAgICAgZGF0YSA6IHsKICAgICAgICAgcmVxdWVzdElkIDogPHN0
cmluZz4KICAgICAgICAgdXJsIDogPHN0cmluZz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0CmluZGV4IDU2
YWZkYTRjYmM3NzA5ZGM4NTBhNmY4NzU3NmZjN2I3ZWY0MzY2M2EuLjEyYmVkYTgyMzg1MTQ1ZWI4
YzYzYWY4NzRmMGQzYWZlNDAxNDBlZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dApAQCAtMyw2ICsz
LDcgQEAgVGVzdHMgdGhlIFRpbWVsaW5lIEFQSSBpbnN0cnVtZW50YXRpb24gb2YgYSBwYWludCBl
dmVudAogUGFpbnQgUHJvcGVydGllczoKIHsKICAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgorICAg
IHN0YWNrVHJhY2UgOiA8b2JqZWN0PgogICAgIGRhdGEgOiB7CiAgICAgICAgIHggOiAwCiAgICAg
ICAgIHkgOiAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGlt
ZWxpbmUvdGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKaW5kZXggYjM2Y2QwNTZlMmE4
NDI2NjY2OGU2ZDA2NDBhZTM1YzI2MDI3MzllZi4uOTIyNjM1OWQ2NmYwY2RiNDIwYjI3NTI2Zjc4
OGE1ODBiOTk0MTdmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci90aW1lbGluZS90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0
LDcgQEAgVGVzdCBkYXRhCiBQYXJzZUhUTUwgUHJvcGVydGllczoKIHsKICAgICBzdGFydFRpbWUg
OiA8bnVtYmVyPgorICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgogICAgIGRhdGEgOiB7CiAgICAg
ICAgIGxlbmd0aCA6IDkKICAgICAgICAgc3RhcnRMaW5lIDogMApAQCAtMjAsNiArMjEsNyBAQCBQ
YXJzZUhUTUwgUHJvcGVydGllczoKIFBhcnNlSFRNTCBQcm9wZXJ0aWVzOgogewogICAgIHN0YXJ0
VGltZSA6IDxudW1iZXI+CisgICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+CiAgICAgZGF0YSA6IHsK
ICAgICAgICAgbGVuZ3RoIDogMQogICAgICAgICBzdGFydExpbmUgOiAwCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZS1zdGFtcC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZS1zdGFt
cC1leHBlY3RlZC50eHQKaW5kZXggNDk3OWU4MzdkMzg4YzUzMWMyNDc5YWI3YTUxM2NmZmIxYzcx
M2NiNy4uOWM1YzFlNzNlYjZlZDAyNzQ3ZGU0N2VhZmZkYmJkOWM3ZGYyY2ZkYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWUtc3RhbXAtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10
aW1lLXN0YW1wLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAgVGVzdHMgdGhlIFRpbWVsaW5l
IEFQSSB0aW1lU3RhbXAgZmVhdHVyZQogVGltZVN0YW1wIFByb3BlcnRpZXM6CiB7CiAgICAgc3Rh
cnRUaW1lIDogPG51bWJlcj4KKyAgICBzdGFja1RyYWNlIDogPG9iamVjdD4KICAgICBkYXRhIDog
ewogICAgICAgICBtZXNzYWdlIDogIlRJTUUgU1RBTVAiCiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lci1leHBlY3RlZC50
eHQKaW5kZXggMGJkMTkyNjBjM2M1MDBhOThhMWNhN2Q1NDhkNWI4M2I5N2U2NDVlNS4uZTUzMzg4
YTg5NzM0ZjBmMDg0MjRmMGNmNGNiOGU3OTFhZTJkMzVkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVyLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZXItZXhwZWN0ZWQudHh0
CkBAIC0zLDYgKzMsNyBAQCBUZXN0cyB0aGUgVGltZWxpbmUgZXZlbnRzIGZvciBUaW1lcnMKIFRp
bWVySW5zdGFsbCBQcm9wZXJ0aWVzOgogewogICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+CisgICAg
c3RhY2tUcmFjZSA6IDxvYmplY3Q+CiAgICAgZGF0YSA6IHsKICAgICAgICAgdGltZXJJZCA6IDxu
dW1iZXI+CiAgICAgICAgIHRpbWVvdXQgOiAxMApAQCAtMTcsNiArMTgsNyBAQCBUaW1lckluc3Rh
bGwgUHJvcGVydGllczoKIFRpbWVySW5zdGFsbCBQcm9wZXJ0aWVzOgogewogICAgIHN0YXJ0VGlt
ZSA6IDxudW1iZXI+CisgICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+CiAgICAgZGF0YSA6IHsKICAg
ICAgICAgdGltZXJJZCA6IDxudW1iZXI+CiAgICAgICAgIHRpbWVvdXQgOiAyMApAQCAtNzMsNiAr
NzUsNyBAQCBUaW1lckZpcmUgUHJvcGVydGllczoKIFRpbWVyUmVtb3ZlIFByb3BlcnRpZXM6CiB7
CiAgICAgc3RhcnRUaW1lIDogPG51bWJlcj4KKyAgICBzdGFja1RyYWNlIDogPG9iamVjdD4KICAg
ICBkYXRhIDogewogICAgICAgICB0aW1lcklkIDogPG51bWJlcj4KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150830</attachid>
            <date>2012-07-04 12:08:20 -0700</date>
            <delta_ts>2012-07-04 14:37:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40118-20120704150819.patch</filename>
            <type>text/plain</type>
            <size>22298</size>
            <attacher name="sfa">afscian</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZmU1ODU1YWY4NDk4OWQ1ODI1NmRlZDQyZmY1NWI2MTM2Nzc3YTY4Li4xYjAxOTFmNDEzMzA2Y2Iz
ZjI2ZjAzMTQ4ZjA5ZWUzZjZiZTk1OGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxMi0wNy0wNCAgQW50aG9ueSBTY2lhbiAgPGFzY2lhbkByaW0uY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3IgW0pTQ106IEltcGxlbWVudCBTY3JpcHRDYWxsU3RhY2s6
OnN0YWNrVHJhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBleHBvc2UgZnVuY3Rpb24gbmFtZSwgdXJsU3Ry
aW5nLCBhbmQgbGluZSAjLgorICAgICAgICBSZWZhY3RvcmVkIHRvU3RyaW5nIHRvIG1ha2UgdXNl
IG9mIHRoZXNlIG1lbWJlciBmdW5jdGlvbnMgdG8gcmVkdWNlCisgICAgICAgIGR1cGxpY2F0ZWQg
Y29kZSBmb3IgZnV0dXJlIG1haW50ZW5hbmNlLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCBy
ZWZhY3RvcmluZyBvZiB0b1N0cmluZyBieSB0cmFjaW5nIHRocm93biBleGNlcHRpb25zLgorCisg
ICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaDoKKyAgICAgICAgKEpTQzo6U3RhY2tG
cmFtZTo6dG9TdHJpbmcpOgorICAgICAgICAoSlNDOjpTdGFja0ZyYW1lOjpmcmllbmRseVNvdXJj
ZVVSTCk6CisgICAgICAgIChKU0M6OlN0YWNrRnJhbWU6OmZyaWVuZGx5RnVuY3Rpb25OYW1lKToK
KyAgICAgICAgKEpTQzo6U3RhY2tGcmFtZTo6ZnJpZW5kbHlMaW5lTnVtYmVyKToKKwogMjAxMi0w
Ny0wNCAgSm9obiBNZWxsb3IgIDxqb2hubWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRleHQg
QXV0b3NpemluZzogQWRkIGNvbXBpbGUgZmxhZyBhbmQgcnVudGltZSBzZXR0aW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggODFjZDc4MDliMjVmNjhkYjA3MTcxZmU3N2UyMmI0ZjhkMjVkNTU2NC4uOWQ1ODU5NzBh
MTA3YTAwNmI5ZThkNjU0ZDUyMTJlNWEzNjE1NjEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTA3LTA0ICBBbnRob255IFNjaWFuICA8YXNjaWFuQHJpbS5jb20+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvciBbSlNDXTogSW1wbGVtZW50IFNjcmlwdENhbGxTdGFjazo6c3RhY2tU
cmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAx
MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBs
ZW1lbnRlZCBzdHViIGZvciBjcmVhdGVTY3JpcHRDYWxsU3RhY2sgdG8gY2FsbCBpbnRvCisgICAg
ICAgIEludGVycHJldGVyIGFuZCBleHRyYWN0IHRoZSBjdXJyZW50IHN0YWNrIGZyYW1lcywgaXRl
cmF0ZQorICAgICAgICB0aHJvdWdoIHRoZSBmcmFtZXMgYW5kIGNyZWF0ZSB0aGUgcmV0dXJuIHJl
c3VsdCByZXF1aXJlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG1hbnVhbGx5IHRlc3RlZCB0
aHJvd24gZXhjZXB0aW9uIGFuZCBpbnNwZWN0b3IKKyAgICAgICAgdHJhY2ViYWNrcy4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrKToKKwogMjAxMi0wNy0wNCAgSm9obiBNZWxs
b3IgIDxqb2hubWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRleHQgQXV0b3NpemluZzogQWRk
IGJhc2ljIGZyYW1ld29yawpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0ludGVycHJldGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuaAppbmRleCBhZGIyM2YyMzcyMzg0ZGFmODgzYjE0ZWZmOGJhZjVkYzVmZTZk
ZjQxLi5iYTJmNGZhYzRjYjQ5NzVjODMxNTg0ZTg5YzQyMzNlZTI1ODE2Yzg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaApAQCAtMSw1ICsx
LDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVk
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zOSw2ICs0MCw3IEBACiAjaW5jbHVkZSAiUmVnaXN0ZXJGaWxlLmgiCiAKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFt
ZXNwYWNlIEpTQyB7CiAKQEAgLTgwLDQ1ICs4Miw2MyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgVVN0cmluZyBzb3VyY2VVUkw7CiAgICAgICAgIFVTdHJpbmcgdG9TdHJpbmcoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIGJvb2wgaGFzU291cmNl
VVJMSW5mbyA9ICFzb3VyY2VVUkwuaXNOdWxsKCkgJiYgIXNvdXJjZVVSTC5pc0VtcHR5KCk7Ci0g
ICAgICAgICAgICBib29sIGhhc0xpbmVJbmZvID0gbGluZSA+IC0xOworICAgICAgICAgICAgU3Ry
aW5nQnVpbGRlciB0cmFjZUJ1aWxkOworICAgICAgICAgICAgU3RyaW5nIGZ1bmN0aW9uTmFtZSA9
IGZyaWVuZGx5RnVuY3Rpb25OYW1lKGNhbGxGcmFtZSk7CisgICAgICAgICAgICBTdHJpbmcgc291
cmNlVVJMID0gZnJpZW5kbHlTb3VyY2VVUkwoKTsKKyAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBw
ZW5kKGZ1bmN0aW9uTmFtZSk7CisgICAgICAgICAgICBpZiAoIXNvdXJjZVVSTC5pc0VtcHR5KCkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoIWZ1bmN0aW9uTmFtZS5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBwZW5kKCdAJyk7CisgICAgICAgICAgICAgICAgdHJh
Y2VCdWlsZC5hcHBlbmQoc291cmNlVVJMKTsKKyAgICAgICAgICAgICAgICBpZiAobGluZSA+IC0x
KSB7CisgICAgICAgICAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBwZW5kKCc6Jyk7CisgICAgICAg
ICAgICAgICAgICAgIHRyYWNlQnVpbGQuYXBwZW5kKFN0cmluZzo6bnVtYmVyKGxpbmUpKTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJhY2VC
dWlsZC50b1N0cmluZygpLmltcGwoKTsKKyAgICAgICAgfQorICAgICAgICBTdHJpbmcgZnJpZW5k
bHlTb3VyY2VVUkwoKSBjb25zdAorICAgICAgICB7CiAgICAgICAgICAgICBTdHJpbmcgdHJhY2VM
aW5lOwotICAgICAgICAgICAgSlNPYmplY3QqIHN0YWNrRnJhbWVDYWxsZWUgPSBjYWxsZWUuZ2V0
KCk7CiAKICAgICAgICAgICAgIHN3aXRjaCAoY29kZVR5cGUpIHsKICAgICAgICAgICAgIGNhc2Ug
U3RhY2tGcmFtZUV2YWxDb2RlOgotICAgICAgICAgICAgICAgIGlmIChoYXNTb3VyY2VVUkxJbmZv
KSB7Ci0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IGhhc0xpbmVJbmZvID8gU3RyaW5n
Ojpmb3JtYXQoImV2YWwgY29kZUAlczolZCIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSwgbGlu
ZSkgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5n
Ojpmb3JtYXQoImV2YWwgY29kZUAlcyIsIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmlu
Zzo6Zm9ybWF0KCJldmFsIGNvZGUiKTsKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0
aW9uQ29kZToKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUdsb2JhbENvZGU6CisgICAgICAg
ICAgICAgICAgaWYgKCFzb3VyY2VVUkwuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICB0
cmFjZUxpbmUgPSBzb3VyY2VVUkwuaW1wbCgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBTdGFja0ZyYW1lTmF0aXZlQ29kZTogewotICAgICAgICAgICAgICAgIGlm
IChjYWxsZWUpIHsKLSAgICAgICAgICAgICAgICAgICAgVVN0cmluZyBmdW5jdGlvbk5hbWUgPSBn
ZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUoY2FsbEZyYW1lLCBzdGFja0ZyYW1lQ2FsbGVlKTsKLSAg
ICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gU3RyaW5nOjpmb3JtYXQoIiVzQFtuYXRpdmUg
Y29kZV0iLCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5kYXRhKCkpOwotICAgICAgICAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSAiW25hdGl2ZSBjb2RlXSI7Cisg
ICAgICAgICAgICBjYXNlIFN0YWNrRnJhbWVOYXRpdmVDb2RlOgorICAgICAgICAgICAgICAgIHRy
YWNlTGluZSA9ICJbbmF0aXZlIGNvZGVdIjsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFtZUZ1bmN0aW9uQ29kZTogewotICAg
ICAgICAgICAgICAgIFVTdHJpbmcgZnVuY3Rpb25OYW1lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlO
YW1lKGNhbGxGcmFtZSwgc3RhY2tGcmFtZUNhbGxlZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGhh
c1NvdXJjZVVSTEluZm8pIHsKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gaGFzTGlu
ZUluZm8gPyBTdHJpbmc6OmZvcm1hdCgiJXNAJXM6JWQiLCBmdW5jdGlvbk5hbWUuYXNjaWkoKS5k
YXRhKCksIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSwgbGluZSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmc6OmZvcm1hdCgiJXNAJXMiLCBmdW5j
dGlvbk5hbWUuYXNjaWkoKS5kYXRhKCksIHNvdXJjZVVSTC5hc2NpaSgpLmRhdGEoKSk7Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9IFN0cmlu
Zzo6Zm9ybWF0KCIlc1xuIiwgZnVuY3Rpb25OYW1lLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAg
ICAgIHJldHVybiB0cmFjZUxpbmUuaXNOdWxsKCkgPyBlbXB0eVN0cmluZygpIDogdHJhY2VMaW5l
OworICAgICAgICB9CisgICAgICAgIFN0cmluZyBmcmllbmRseUZ1bmN0aW9uTmFtZShDYWxsRnJh
bWUqIGNhbGxGcmFtZSkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgU3RyaW5nIHRyYWNl
TGluZTsKKyAgICAgICAgICAgIEpTT2JqZWN0KiBzdGFja0ZyYW1lQ2FsbGVlID0gY2FsbGVlLmdl
dCgpOworCisgICAgICAgICAgICBzd2l0Y2ggKGNvZGVUeXBlKSB7CisgICAgICAgICAgICBjYXNl
IFN0YWNrRnJhbWVFdmFsQ29kZToKKyAgICAgICAgICAgICAgICB0cmFjZUxpbmUgPSAiZXZhbCBj
b2RlIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgU3RhY2tGcmFt
ZU5hdGl2ZUNvZGU6CisgICAgICAgICAgICAgICAgaWYgKGNhbGxlZSkKKyAgICAgICAgICAgICAg
ICAgICAgdHJhY2VMaW5lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGNhbGxGcmFtZSwgc3Rh
Y2tGcmFtZUNhbGxlZSkuaW1wbCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBTdGFja0ZyYW1lRnVuY3Rpb25Db2RlOgorICAgICAgICAgICAgICAgIHRyYWNlTGlu
ZSA9IGdldENhbGN1bGF0ZWREaXNwbGF5TmFtZShjYWxsRnJhbWUsIHN0YWNrRnJhbWVDYWxsZWUp
LmltcGwoKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGNhc2UgU3RhY2tGcmFtZUdsb2JhbENvZGU6Ci0gICAgICAgICAgICAgICAgaWYgKGhhc1Nv
dXJjZVVSTEluZm8pIHsKLSAgICAgICAgICAgICAgICAgICAgdHJhY2VMaW5lID0gaGFzTGluZUlu
Zm8gPyBTdHJpbmc6OmZvcm1hdCgiZ2xvYmFsIGNvZGVAJXM6JWQiLCBzb3VyY2VVUkwuYXNjaWko
KS5kYXRhKCksIGxpbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDogU3RyaW5nOjpmb3JtYXQoImdsb2JhbCBjb2RlQCVzIiwgc291cmNlVVJMLmFzY2lpKCku
ZGF0YSgpKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgdHJh
Y2VMaW5lID0gU3RyaW5nOjpmb3JtYXQoImdsb2JhbCBjb2RlIik7Ci0gICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIHRyYWNlTGluZSA9ICJnbG9iYWwgY29kZSI7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gdHJhY2VM
aW5lLmltcGwoKTsKKyAgICAgICAgICAgIHJldHVybiB0cmFjZUxpbmUuaXNOdWxsKCkgPyBlbXB0
eVN0cmluZygpIDogdHJhY2VMaW5lOworICAgICAgICB9CisgICAgICAgIHVuc2lnbmVkIGZyaWVu
ZGx5TGluZU51bWJlcigpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsaW5l
ID4gLTEgPyBsaW5lIDogMDsKICAgICAgICAgfQogICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKaW5kZXggY2Nm
NjczZmQ0MTI1M2RkYmRjYzBkNzk0ZjExZDY4YzlmNGI2ZmEyZC4uM2JiNjlmNDJjOGY5YTI2Mzhk
ZDJkODgyNTcxMmMzYjZlMWQ3MDc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzMs
NiArMzQsNyBAQAogCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCisjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgi
CiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbEZyYW1l
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBAIC01MSw5ICs1MywyNSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLVBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soc2l6ZV90LCBib29s
KQorUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhzaXpl
X3QgbWF4U3RhY2tTaXplLCBib29sIGVtcHR5SXNBbGxvd2VkKQogewotICAgIHJldHVybiAwOwor
ICAgIFZlY3RvcjxTY3JpcHRDYWxsRnJhbWU+IGZyYW1lczsKKyAgICBpZiAoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMgPSBKU01haW5UaHJlYWRFeGVjU3RhdGU6OmN1cnJlbnRTdGF0ZSgpKSB7CisgICAg
ICAgIFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNlOworICAgICAgICBJbnRlcnByZXRlcjo6
Z2V0U3RhY2tUcmFjZSgmZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdGFja1RyYWNlKTsKKyAgICAgICAg
Zm9yIChWZWN0b3I8U3RhY2tGcmFtZT46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBzdGFja1RyYWNl
LmJlZ2luKCk7IGl0ZXIgPCBzdGFja1RyYWNlLmVuZCgpOyBpdGVyKyspIHsKKyAgICAgICAgICAg
IGZyYW1lcy5hcHBlbmQoU2NyaXB0Q2FsbEZyYW1lKGl0ZXItPmZyaWVuZGx5RnVuY3Rpb25OYW1l
KGV4ZWMpLCBpdGVyLT5mcmllbmRseVNvdXJjZVVSTCgpLCBpdGVyLT5mcmllbmRseUxpbmVOdW1i
ZXIoKSkpOworICAgICAgICAgICAgaWYgKGZyYW1lcy5zaXplKCkgPj0gbWF4U3RhY2tTaXplKQor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmIChmcmFtZXMu
aXNFbXB0eSgpICYmICFlbXB0eUlzQWxsb3dlZCkgeworICAgICAgICAvLyBObyBmcmFtZXMgZm91
bmQuIEl0IG1heSBoYXBwZW4gaW4gdGhlIGNhc2Ugd2hlcmUKKyAgICAgICAgLy8gYSBib3VuZCBm
dW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBuYXRpdmUgY29kZSBmb3IgZXhhbXBsZS4KKyAgICAgICAg
Ly8gRmFsbGJhY2sgdG8gc2V0dGluZyBsaW5lTnVtYmVyIHRvIDAsIGFuZCBzb3VyY2UgYW5kIGZ1
bmN0aW9uIG5hbWUgdG8gInVuZGVmaW5lZCIuCisgICAgICAgIGZyYW1lcy5hcHBlbmQoU2NyaXB0
Q2FsbEZyYW1lKCJ1bmRlZmluZWQiLCAidW5kZWZpbmVkIiwgMCkpOworICAgIH0KKyAgICByZXR1
cm4gU2NyaXB0Q2FsbFN0YWNrOjpjcmVhdGUoZnJhbWVzKTsKIH0KIAogUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFjayhKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
c2l6ZV90IG1heFN0YWNrU2l6ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMDQ5MTJlNzg0NWI4N2I1NzZjYWE0YjYzYjM1
NWFhMTM0NTYxZmFlLi5jNjlkOTEwMmJiZTNhYjc2NmU2NTRjYTlmZTc2ODNmZDQ0MWJlYTQ1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTItMDctMDQgIEFudGhvbnkgU2NpYW4gIDxhc2NpYW5A
cmltLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yIFtKU0NdOiBJbXBsZW1lbnQgU2NyaXB0
Q2FsbFN0YWNrOjpzdGFja1RyYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MDExOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0ZWQgdGVzdCByZXN1bHRzIG5vdyB0aGF0IGNyZWF0ZVNjcmlwdENh
bGxTdGFjayBpcyBmdW5jdGlvbmFsLgorCisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
Y29uc29sZS1yZXNvdXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctYXN5bmMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvc2NyaXB0LWFzLXRl
eHQtbG9hZGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L3RpbWVsaW5lL3RpbWVsaW5lLWxheW91dC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFpbnQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1wYXJzZS1odG1s
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGlt
ZS1zdGFtcC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLXRpbWVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLWV4cGVjdGVkLnR4dDoK
KwogMjAxMi0wNy0wNCAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjE3NjcuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291cmNlLWVycm9ycy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXJlc291
cmNlLWVycm9ycy1leHBlY3RlZC50eHQKaW5kZXggYWFiMTcxNTg1YTZjMWVhNzdjN2UxZmE3ZWJk
ZmU1YzI1Zjc1ZDUzMi4uMWQ3NDg2MWFiNjc1NDFiZTJlNTYwODMzOWJiYWM1ZTIzMTU5MGIxNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS1yZXNv
dXJjZS1lcnJvcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL2NvbnNvbGUtcmVzb3VyY2UtZXJyb3JzLWV4cGVjdGVkLnR4dApAQCAtNCw1ICs0LDUg
QEAgVGVzdHMgdGhhdCBlcnJvcnMgdG8gbG9hZCBhIHJlc291cmNlIGNhdXNlIGVycm9yIG1lc3Nh
Z2VzIHRvIGJlIGxvZ2dlZCB0byBjb25zb2wKIEdFVCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5z
cGVjdG9yL21pc3NpbmcuY3NzIDQwNCAoTm90IEZvdW5kKSBjb25zb2xlLXJlc291cmNlLWVycm9y
cy1pZnJhbWUuaHRtbDozIGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWVycm9yLWxldmVsCiBHRVQg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9ub24tZXhpc3RlbnQtaWZyYW1lLmh0bWwg
NDA0IChOb3QgRm91bmQpIG5vbi1leGlzdGVudC1pZnJhbWUuaHRtbDoxIGNvbnNvbGUtbWVzc2Fn
ZSBjb25zb2xlLWVycm9yLWxldmVsCiBHRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9ub24tZXhpc3RlbnQtc2NyaXB0LmpzIDQwNCAoTm90IEZvdW5kKSBjb25zb2xlLXJlc291cmNl
LWVycm9ycy1pZnJhbWUuaHRtbDo0IGNvbnNvbGUtbWVzc2FnZSBjb25zb2xlLWVycm9yLWxldmVs
Ci1HRVQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9ub24tZXhpc3RlbnQteGhyIDQw
NCAoTm90IEZvdW5kKSBub24tZXhpc3RlbnQteGhyOjEgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUt
ZXJyb3ItbGV2ZWwKK0dFVCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL25vbi1leGlz
dGVudC14aHIgNDA0IChOb3QgRm91bmQpIFtuYXRpdmUgY29kZV06MXNlbmQgW25hdGl2ZSBjb2Rl
XToxbG9hZFhIUiBjb25zb2xlLXJlc291cmNlLWVycm9ycy5odG1sOjE4cGVyZm9ybUFjdGlvbnMg
Y29uc29sZS1yZXNvdXJjZS1lcnJvcnMuaHRtbDoxMGV2YWwgY29kZWV2YWwgW25hdGl2ZSBjb2Rl
XToxX2V2YWx1YXRlT25fZXZhbHVhdGVBbmRXcmFwZXZhbHVhdGUoYW5vbnltb3VzIGZ1bmN0aW9u
KSBbbmF0aXZlIGNvZGVdOjEgY29uc29sZS1tZXNzYWdlIGNvbnNvbGUtZXJyb3ItbGV2ZWwKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHIt
bG9nZ2luZy1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLWV4cGVjdGVkLnR4dAppbmRleCAwZGY4YTM1
NGRiODM2Y2RiMjRiMWE3MDFkMzA3NDkyZTNjMzVmZjM2Li5mYjU5OWZmMjJjYjJhNzgzY2E3NTI5
MjEyZTQxMWIwNWFjZWI3YTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLWV4
cGVjdGVkLnR4dApAQCAtMyw2ICszLDYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE0OiBEb25l
LgogVGVzdHMgdGhhdCBYTUxIdHRwUmVxdWVzdCBMb2dnaW5nIHdvcmtzIHdoZW4gRW5hYmxlZCBh
bmQgZG9lc24ndCBzaG93IGxvZ3Mgd2hlbiBEaXNhYmxlZCBmb3IgYXN5bmNocm9ub3VzIFhIUnMu
CiAKIEJ1ZyA3OTIyOQotWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwiLiBuZXR3b3JrLXRlc3QuanM6
MzkKK1hIUiBmaW5pc2hlZCBsb2FkaW5nOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rv
ci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sIi4gW25hdGl2ZSBjb2RlXToxCiBEb25lLiBjb25z
b2xlLXhoci1sb2dnaW5nLWFzeW5jLmh0bWw6MTQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29sZS14aHItbG9nZ2luZy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVj
dGVkLnR4dAppbmRleCA5OGU0ODgxOTIwZDAzMGYxZWI2NTk5YTY0NzZmMjY4MGY1ODc3OTFhLi41
YTFhNTY2MWE5NjgzMzQ1ODAxZmY5NTI5OWRkODRmYmYwOTk4YjdjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1s
b2dnaW5nLWV4cGVjdGVkLnR4dApAQCAtMTEsMTcgKzExLDE3IEBAIENPTlNPTEUgTUVTU0FHRTog
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL2luc3BlY3Rv
ci9yZXNvCiBUZXN0cyB0aGF0IFhNTEh0dHBSZXF1ZXN0IExvZ2dpbmcgd29ya3Mgd2hlbiBFbmFi
bGVkIGFuZCBkb2Vzbid0IHNob3cgbG9ncyB3aGVuIERpc2FibGVkLgogCiBzZW5kaW5nIGEgR0VU
IHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1leGlzdHMuaHRtbCBjb25zb2xlLXhoci1sb2dnaW5n
Lmh0bWw6MTAKLVhIUiBmaW5pc2hlZCBsb2FkaW5nOiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2lu
c3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5odG1sIi4KK1hIUiBmaW5pc2hlZCBsb2FkaW5n
OiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5o
dG1sIi4gW25hdGl2ZSBjb2RlXToxCiBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2Vz
L3hoci1kb2VzLW5vdC1leGlzdC5odG1sIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMAotR0VU
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1l
eGlzdC5odG1sIDQwNCAoTm90IEZvdW5kKSByZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0
bWw6MQotWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlcy94aHItZG9lcy1ub3QtZXhpc3QuaHRtbCIuCitHRVQgaHR0cDovLzEyNy4w
LjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWwgNDA0
IChOb3QgRm91bmQpIFtuYXRpdmUgY29kZV06MQorWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZG9lcy1ub3QtZXhpc3Qu
aHRtbCIuIFtuYXRpdmUgY29kZV06MQogc2VuZGluZyBhIFBPU1QgcmVxdWVzdCB0byByZXNvdXJj
ZXMvcG9zdC10YXJnZXQuY2dpIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMAotWEhSIGZpbmlz
aGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9w
b3N0LXRhcmdldC5jZ2kiLgorWEhSIGZpbmlzaGVkIGxvYWRpbmc6ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvaW5zcGVjdG9yL3Jlc291cmNlcy9wb3N0LXRhcmdldC5jZ2kiLiBbbmF0aXZlIGNvZGVd
OjEKIHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwgY29uc29sZS14aHItbG9nZ2luZy5odG1sOjEw
CiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAvaW5zcGVj
dG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgw
MDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgogc2VuZGlu
ZyBhIEdFVCByZXF1ZXN0IHRvIHJlc291cmNlcy94aHItZXhpc3RzLmh0bWwgY29uc29sZS14aHIt
bG9nZ2luZy5odG1sOjEwCiBzZW5kaW5nIGEgR0VUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3hoci1k
b2VzLW5vdC1leGlzdC5odG1sIGNvbnNvbGUteGhyLWxvZ2dpbmcuaHRtbDoxMAotR0VUIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1kb2VzLW5vdC1leGlzdC5o
dG1sIDQwNCAoTm90IEZvdW5kKSByZXNvdXJjZXMveGhyLWRvZXMtbm90LWV4aXN0Lmh0bWw6MQor
R0VUIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvcmVzb3VyY2VzL3hoci1kb2VzLW5v
dC1leGlzdC5odG1sIDQwNCAoTm90IEZvdW5kKSBbbmF0aXZlIGNvZGVdOjEKIHNlbmRpbmcgYSBQ
T1NUIHJlcXVlc3QgdG8gcmVzb3VyY2VzL3Bvc3QtdGFyZ2V0LmNnaSBjb25zb2xlLXhoci1sb2dn
aW5nLmh0bWw6MTAKIHNlbmRpbmcgYSBHRVQgcmVxdWVzdCB0byBodHRwOi8vbG9jYWxob3N0Ojgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwgY29uc29sZS14aHItbG9nZ2lu
Zy5odG1sOjEwCiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojgw
MDAvaW5zcGVjdG9yL3Jlc291cmNlcy94aHItZXhpc3RzLmh0bWwuIE9yaWdpbiBodHRwOi8vMTI3
LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9z
Y3JpcHQtYXMtdGV4dC1sb2FkaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvc2NyaXB0LWFzLXRleHQtbG9hZGluZy1leHBlY3RlZC50eHQK
aW5kZXggYzExNzY4MzE4NTUwNDIyNDM2OGZiZmRiNGRmNzA5MzkxMWJhZDUyMi4uOTEyMWEwODlh
M2Y1MjY5MGQzNTE0ZmZhYzFkYzE5ZTY5YWZkOTIxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9zY3JpcHQtYXMtdGV4dC1sb2FkaW5nLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Nj
cmlwdC1hcy10ZXh0LWxvYWRpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogVGVzdHMg
Y29uc29sZSBtZXNzYWdlIHdoZW4gc2NyaXB0IGlzIGxvYWRlZCB3aXRoIGluY29ycmVjdCB0ZXh0
L2h0bWwgbWltZSB0eXBlLgogCiBCdWcgNjk5NzIKLVJlc291cmNlIGludGVycHJldGVkIGFzIFNj
cmlwdCBidXQgdHJhbnNmZXJyZWQgd2l0aCBNSU1FIHR5cGUgdGV4dC9wbGFpbjogImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQu
cGhwIi4KK1Jlc291cmNlIGludGVycHJldGVkIGFzIFNjcmlwdCBidXQgdHJhbnNmZXJyZWQgd2l0
aCBNSU1FIHR5cGUgdGV4dC9wbGFpbjogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZXMvc2NyaXB0LWFzLXRleHQucGhwIi4gW25hdGl2ZSBjb2RlXToxCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmlt
YXRpb24tZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3RlZC50eHQKaW5kZXggZTQ3MTZjNDk1MmIx
YWJmZGQ0N2IwNDdjNWNiMTI2MzNkNWI0MjE1Mi4uMTVkNzhmNmEwMDVlMTJkN2M4MzA5NDYxMGRm
NDg4OTk0ODVjMWM3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5l
L3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLWFuaW1hdGlvbi1mcmFtZS1leHBlY3RlZC50eHQK
QEAgLTMsNiArMyw3IEBAIFRlc3RzIHRoZSBUaW1lbGluZSBldmVudHMgZm9yIEFuaW1hdGlvbiBG
cmFtZSBmZWF0dXJlCiBSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgUHJvcGVydGllczoKIHsKICAgICBz
dGFydFRpbWUgOiA8bnVtYmVyPgorICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgogICAgIGRhdGEg
OiB7CiAgICAgICAgIGlkIDogPG51bWJlcj4KICAgICB9CkBAIC0yOSw2ICszMCw3IEBAIEZpcmVB
bmltYXRpb25GcmFtZSBQcm9wZXJ0aWVzOgogQ2FuY2VsQW5pbWF0aW9uRnJhbWUgUHJvcGVydGll
czoKIHsKICAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgorICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0
PgogICAgIGRhdGEgOiB7CiAgICAgICAgIGlkIDogPG51bWJlcj4KICAgICB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbGF5b3V0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlvdXQtZXhw
ZWN0ZWQudHh0CmluZGV4IGUxZGJhNmY4MDUzMjBmODg4NTBhZmRhOGVkNTAxNTIwYTFmZTNmMjcu
LmJmNTExNTgzOGYzZjQ3OTBiNGFjMTlmOTI0ZjVkNzA4OTMxNjZhOGUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlvdXQtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1sYXlvdXQtZXhw
ZWN0ZWQudHh0CkBAIC00LDYgKzQsNyBAQCBUZXN0IGRhdGEKIExheW91dCBQcm9wZXJ0aWVzOgog
ewogICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+CisgICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+CiAg
ICAgZGF0YSA6IHsKICAgICB9CiAgICAgY2hpbGRyZW4gOiA8b2JqZWN0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW1hcmstdGltZWxpbmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLW1hcmst
dGltZWxpbmUtZXhwZWN0ZWQudHh0CmluZGV4IDdhMjJjOWViYmMzMjMwMmU2YjQyMDAzZjJkMzgw
NGZkNmU1ZjEwNzguLjJmMWNjMTA2M2E5NGI1ZDNiYmRiMThiZmQ5MDI0MzM3YzdlMzdiZjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1tYXJrLXRp
bWVsaW5lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtbWFyay10aW1lbGluZS1leHBlY3RlZC50eHQKQEAgLTMsNiArMyw3IEBAIFRlc3Rz
IHRoZSBUaW1lbGluZSBBUEkgbWFyayBmZWF0dXJlCiBUaW1lU3RhbXAgUHJvcGVydGllczoKIHsK
ICAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgorICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgogICAg
IGRhdGEgOiB7CiAgICAgICAgIG1lc3NhZ2UgOiAiTUFSSyBUSU1FTElORSIKICAgICB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtbmV0d29yay1y
ZXNvdXJjZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGlt
ZWxpbmUtbmV0d29yay1yZXNvdXJjZS1leHBlY3RlZC50eHQKaW5kZXggZDJjZGE1MDU4NzQ3YjY4
N2MzM2UzNjk0MDc4MGNmZjM1ODU0M2M0NC4uMjE4NmNjMWE2MTFjM2U2ZjJkM2RmOTU4NDFlN2Nk
NTVkMmU3ZDlmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3Rp
bWVsaW5lLW5ldHdvcmstcmVzb3VyY2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1uZXR3b3JrLXJlc291cmNlLWV4cGVjdGVkLnR4dApA
QCAtNiw2ICs2LDcgQEAgU2NyaXB0IHJlc291cmNlIGxvYWRlZAogUmVzb3VyY2VTZW5kUmVxdWVz
dCBQcm9wZXJ0aWVzOgogewogICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+CisgICAgc3RhY2tUcmFj
ZSA6IDxvYmplY3Q+CiAgICAgZGF0YSA6IHsKICAgICAgICAgcmVxdWVzdElkIDogPHN0cmluZz4K
ICAgICAgICAgdXJsIDogPHN0cmluZz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci90aW1lbGluZS90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtcGFpbnQtZXhwZWN0ZWQudHh0CmluZGV4IDU2YWZkYTRj
YmM3NzA5ZGM4NTBhNmY4NzU3NmZjN2I3ZWY0MzY2M2EuLjEyYmVkYTgyMzg1MTQ1ZWI4YzYzYWY4
NzRmMGQzYWZlNDAxNDBlZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1l
bGluZS90aW1lbGluZS1wYWludC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3RpbWVsaW5lL3RpbWVsaW5lLXBhaW50LWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAg
VGVzdHMgdGhlIFRpbWVsaW5lIEFQSSBpbnN0cnVtZW50YXRpb24gb2YgYSBwYWludCBldmVudAog
UGFpbnQgUHJvcGVydGllczoKIHsKICAgICBzdGFydFRpbWUgOiA8bnVtYmVyPgorICAgIHN0YWNr
VHJhY2UgOiA8b2JqZWN0PgogICAgIGRhdGEgOiB7CiAgICAgICAgIHggOiAwCiAgICAgICAgIHkg
OiAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUt
cGFyc2UtaHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUv
dGltZWxpbmUtcGFyc2UtaHRtbC1leHBlY3RlZC50eHQKaW5kZXggYjM2Y2QwNTZlMmE4NDI2NjY2
OGU2ZDA2NDBhZTM1YzI2MDI3MzllZi4uOTIyNjM1OWQ2NmYwY2RiNDIwYjI3NTI2Zjc4OGE1ODBi
OTk0MTdmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVs
aW5lLXBhcnNlLWh0bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90
aW1lbGluZS90aW1lbGluZS1wYXJzZS1odG1sLWV4cGVjdGVkLnR4dApAQCAtNCw2ICs0LDcgQEAg
VGVzdCBkYXRhCiBQYXJzZUhUTUwgUHJvcGVydGllczoKIHsKICAgICBzdGFydFRpbWUgOiA8bnVt
YmVyPgorICAgIHN0YWNrVHJhY2UgOiA8b2JqZWN0PgogICAgIGRhdGEgOiB7CiAgICAgICAgIGxl
bmd0aCA6IDkKICAgICAgICAgc3RhcnRMaW5lIDogMApAQCAtMjAsNiArMjEsNyBAQCBQYXJzZUhU
TUwgUHJvcGVydGllczoKIFBhcnNlSFRNTCBQcm9wZXJ0aWVzOgogewogICAgIHN0YXJ0VGltZSA6
IDxudW1iZXI+CisgICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+CiAgICAgZGF0YSA6IHsKICAgICAg
ICAgbGVuZ3RoIDogMQogICAgICAgICBzdGFydExpbmUgOiAwCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZS1zdGFtcC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZS1zdGFtcC1leHBl
Y3RlZC50eHQKaW5kZXggNDk3OWU4MzdkMzg4YzUzMWMyNDc5YWI3YTUxM2NmZmIxYzcxM2NiNy4u
OWM1YzFlNzNlYjZlZDAyNzQ3ZGU0N2VhZmZkYmJkOWM3ZGYyY2ZkYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWUtc3RhbXAtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lLXN0
YW1wLWV4cGVjdGVkLnR4dApAQCAtMyw2ICszLDcgQEAgVGVzdHMgdGhlIFRpbWVsaW5lIEFQSSB0
aW1lU3RhbXAgZmVhdHVyZQogVGltZVN0YW1wIFByb3BlcnRpZXM6CiB7CiAgICAgc3RhcnRUaW1l
IDogPG51bWJlcj4KKyAgICBzdGFja1RyYWNlIDogPG9iamVjdD4KICAgICBkYXRhIDogewogICAg
ICAgICBtZXNzYWdlIDogIlRJTUUgU1RBTVAiCiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS10aW1lci1leHBlY3RlZC50eHQKaW5k
ZXggMGJkMTkyNjBjM2M1MDBhOThhMWNhN2Q1NDhkNWI4M2I5N2U2NDVlNS4uZTUzMzg4YTg5NzM0
ZjBmMDg0MjRmMGNmNGNiOGU3OTFhZTJkMzVkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3RpbWVsaW5lL3RpbWVsaW5lLXRpbWVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtdGltZXItZXhwZWN0ZWQudHh0CkBAIC0z
LDYgKzMsNyBAQCBUZXN0cyB0aGUgVGltZWxpbmUgZXZlbnRzIGZvciBUaW1lcnMKIFRpbWVySW5z
dGFsbCBQcm9wZXJ0aWVzOgogewogICAgIHN0YXJ0VGltZSA6IDxudW1iZXI+CisgICAgc3RhY2tU
cmFjZSA6IDxvYmplY3Q+CiAgICAgZGF0YSA6IHsKICAgICAgICAgdGltZXJJZCA6IDxudW1iZXI+
CiAgICAgICAgIHRpbWVvdXQgOiAxMApAQCAtMTcsNiArMTgsNyBAQCBUaW1lckluc3RhbGwgUHJv
cGVydGllczoKIFRpbWVySW5zdGFsbCBQcm9wZXJ0aWVzOgogewogICAgIHN0YXJ0VGltZSA6IDxu
dW1iZXI+CisgICAgc3RhY2tUcmFjZSA6IDxvYmplY3Q+CiAgICAgZGF0YSA6IHsKICAgICAgICAg
dGltZXJJZCA6IDxudW1iZXI+CiAgICAgICAgIHRpbWVvdXQgOiAyMApAQCAtNzMsNiArNzUsNyBA
QCBUaW1lckZpcmUgUHJvcGVydGllczoKIFRpbWVyUmVtb3ZlIFByb3BlcnRpZXM6CiB7CiAgICAg
c3RhcnRUaW1lIDogPG51bWJlcj4KKyAgICBzdGFja1RyYWNlIDogPG9iamVjdD4KICAgICBkYXRh
IDogewogICAgICAgICB0aW1lcklkIDogPG51bWJlcj4KICAgICB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXho
ci1sb2dnaW5nLWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUteGhyLWxvZ2dpbmctYXN5bmMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBkZjhhMzU0ZGI4MzZjZGIyNGIxYTcwMWQzMDc0OTJlM2MzNWZm
MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRw
L3Rlc3RzL2luc3BlY3Rvci9jb25zb2xlLXhoci1sb2dnaW5nLWFzeW5jLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDggQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxNDogRG9uZS4KK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxNDogRG9uZS4KK1Rlc3RzIHRoYXQgWE1MSHR0cFJlcXVlc3QgTG9nZ2lu
ZyB3b3JrcyB3aGVuIEVuYWJsZWQgYW5kIGRvZXNuJ3Qgc2hvdyBsb2dzIHdoZW4gRGlzYWJsZWQg
Zm9yIGFzeW5jaHJvbm91cyBYSFJzLgorCitCdWcgNzkyMjkKK1hIUiBmaW5pc2hlZCBsb2FkaW5n
OiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL2luc3BlY3Rvci9yZXNvdXJjZXMveGhyLWV4aXN0cy5o
dG1sIi4gbmV0d29yay10ZXN0LmpzOjM5CitEb25lLiBjb25zb2xlLXhoci1sb2dnaW5nLWFzeW5j
Lmh0bWw6MTQKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>